Intel Fan-out Fabric
개요
Intel Fan-out Fabric은 Intel이 모든 CPU에 공통으로 적용하는 공식 제품명이나 고정된 interconnect 표준이 아니다. 이 문서에서는 fan-out을 고정된 토폴로지가 아니라, 하나의 요청이나 coherence transaction의 목적지를 core, cache, CHA, memory controller, I/O agent 중에서 선택하고 필요한 경로로 분기하는 인터커넥트 동작으로 정의한다. Intel Mesh, tile과 package fabric을 함께 살펴보되, 논리적인 traffic distribution과 실제 물리 topology는 구분한다. 물리 topology는 제품에 따라 mesh, tiled mesh, bridge 또는 die-to-die link로 달라질 수 있다.
Intel Mesh는 이 동작을 이해하기 위한 공개 사례다. Intel Xeon Scalable과 Xeon Phi 계열의 공개 자료에서는 core, local cache, distributed Caching/Home Agent(CHA)가 fabric의 여러 지점에 분산되고, 요청은 주소가 지정한 home과 coherence 상태에 따라 해당 CHA, 다른 cache 또는 tile, memory interface와 I/O agent로 전달된다. 따라서 여기서 말하는 fan-out은 모든 요청을 중앙에서 broadcast한다는 뜻이 아니다. 여러 requester가 여러 home과 service endpoint를 공유하고, coherence에 필요한 경우에만 owner, sharer, memory 또는 I/O service 쪽으로 transaction이 추가로 분기되는 구조를 가리킨다. 제품별 router, virtual channel(VC), buffer와 route policy는 공개 범위가 제한되므로, 공개 사실과 일반적인 fabric 분석 모델을 구분해 기술한다.
제공된 Intel 발표 자료 「Diamond Rapids — Intel’s next generation Xeon CPU」는 이 일반 모델을 차세대 Xeon의 구체적인 기능 분할과 연결한다. 자료는 Fan-out Fabric Architecture를 CBB(Compute Building Block)와 Fabric Hub를 확장하는 방향으로 제시하고, 메모리와 I/O를 Fabric Hub에 중앙화한 뒤 여러 CBB가 이를 공유하는 구성을 보여준다. 다만 발표 자료는 개발 중인 코드명과 공개 상한을 다루며, 내부 router, home hash, VC, buffer 깊이와 정확한 패킷 경로까지 공개한 설계 사양은 아니다.
핵심 개념
1. Fan-out의 의미와 범위
디지털 설계에서 fan-out은 하나의 구동점이 연결하는 수신점 수를 뜻한다. CPU fabric에서는 이를 전기 신호의 고정 배선 수보다 넓게 사용해, 하나의 요청이 주소·coherence 상태·traffic class에 따라 여러 가능한 service endpoint 중 하나 또는 여러 곳으로 분기되는 논리적 도달 범위를 설명한다.
| 용어 | 의미 | Intel fabric에서의 해석 | 혼동하면 안 되는 것 |
|---|---|---|---|
| Fan-out | 한 source의 논리적 도달 범위가 여러 destination으로 분기되는 현상 | home CHA, LLC, MC, I/O 또는 coherence 대상 선택 | 항상 실제 multicast 또는 broadcast라는 뜻이 아님 |
| Fan-in | 여러 source가 하나의 service 또는 link로 모이는 현상 | 여러 core가 같은 CHA, memory controller, gateway를 공유 | source 수가 늘면 service queue가 병목이 될 수 있음 |
| Broadcast | 모든 또는 정의된 수신자에게 같은 메시지를 전달 | 일부 snoop·invalidate 모델에서 가능한 control 동작 | Intel Mesh의 모든 요청이 broadcast된다고 단정할 수 없음 |
| Multicast | 선택된 여러 수신자에게 같은 메시지를 복제 | sharer invalidate, ownership 또는 ordered control traffic의 분석 모델 | 실제 복제 지점과 protocol은 제품별로 다름 |
| Mesh | router와 link의 물리·논리 topology | fan-out traffic을 여러 경로로 분산하는 on-die 기반 | mesh 자체가 fan-out 정책이나 coherence protocol은 아님 |
| Fabric | 전송, routing, flow control, coherence와 QoS를 포함한 시스템 구조 | fan-out과 fan-in을 실제 transaction으로 구현하는 계층 | 단순 배선 도식과 동일하지 않음 |
Fan-out의 반대편에는 fan-in이 항상 존재한다. 하나의 memory controller로 향하는 요청은 여러 core에서 fan-in되고, 하나의 write ownership 변경은 여러 sharer로 fan-out될 수 있다. 그러므로 endpoint 수를 늘리는 것만으로 성능이 결정되지 않으며, 분기 이후의 service capacity와 수렴 지점의 queue를 함께 봐야 한다.
2. Intel 공개 사례와 분석 모델
Intel Mesh 자료는 core, cache bank, memory controller와 I/O controller를 rows와 columns에 배치하고 switch와 link로 연결하는 구조를 설명한다. KNL에 대한 연구는 64~72 core가 38 tile의 2D mesh에 배치되고, 각 tile에 두 core, local cache와 CHA가 존재한다고 정리한다. Xeon Scalable의 대표적인 28-core XCC 공개 분석은 6×6 mesh와 최대 36 stop을 보여주며, core 외에 memory controller, UPI, PCIe/PCH와 integrated package device stop이 함께 포함된다.
이 사례들은 다수 endpoint에 도달 가능한 coherent mesh라는 fan-out 분석의 근거가 되지만, 다음 세부를 모두 공개하지는 않는다.
| 계층 | 공개 자료로 확인되는 범위 | 이 문서에서의 사용 |
|---|---|---|
| Intel Mesh | rows·columns, mesh stop, local cache와 CHA, memory·I/O 연결 | 다수 endpoint를 연결하는 on-die fabric의 기준 |
| KNL 연구 대상 | 38-tile 2D mesh, distributed CHA, MESIF, 4개 parallel network | 주소 home과 coherence fan-out의 관찰 사례 |
| Skylake-SP 분석 | 대표 28-core XCC, 6×6, 최대 36 stop | fan-out destination이 core 외 agent까지 넓어지는 사례 |
| Sapphire Rapids | 여러 compute die를 EMIB로 연결하는 tile/package 사례 | die 내부 fan-out과 tile boundary의 계층화 |
| 내부 RTL | exact multicast tree, VC, buffer depth, arbitration, retry와 route | 공개되지 않은 부분은 모델 가정 또는 측정 대상으로 남김 |
Intel Fan-out Fabric이라는 제목은 위의 공개 사례를 하나의 제품 구현으로 묶는 표현이 아니다. 특히 Sapphire Rapids의 multi-die package가 존재한다는 사실만으로 package 전체가 하나의 중앙 fan-out switch를 사용한다고 결론 내릴 수 없다. 그림의 hub와 branch는 요청 분기와 service 수렴을 설명하는 개념 모델이다.
3. Endpoint와 분기 계층
fan-out fabric은 한 단계의 switch가 모든 endpoint를 직접 구동하는 구조로만 만들지 않는다. 규모가 커질수록 다음 계층을 분리한다.
- Requester endpoint: core cache, DMA, I/O 또는 accelerator가 transaction을 만든다.
- Local ingress: source tile 또는 mesh stop이 요청을 fabric에 주입한다.
- Home selection: address mapping과 directory가 line의 home CHA, LLC slice 또는 service domain을 정한다.
- Branch arbitration: 목적지 방향, credit, queue, QoS와 ordering을 보고 output을 선택한다.
- Service endpoint: LLC, owner cache, memory controller, I/O agent가 요청을 처리한다.
- Response convergence: data, ownership response와 acknowledgement를 request ID에 맞춰 source로 반환한다.
이 구조에서 fan-out degree는 전체 endpoint 수와 같지 않다. 하나의 read miss는 보통 하나의 home CHA로 먼저 향한 뒤 필요한 owner 또는 memory controller로 이어지는 directed path를 사용한다. 반면 write sharing은 directory가 알고 있는 sharer 집합에 invalidate 또는 acknowledgement를 보낼 수 있다. 따라서 workload별 실제 branch degree, 복제되는 flit 수와 branch가 다시 합쳐지는 지점을 측정해야 한다.
4. Distributed CHA와 주소 fan-out
CHA는 cache line의 home과 coherence directory를 분산해 중앙 directory의 단일 병목을 줄이는 역할을 한다. KNL 연구는 모든 tile이 directory 일부를 담당하고, local state로 해결되지 않는 out-of-tile access가 적절한 CHA를 조회한다고 설명한다. memory block에서 CHA로 가는 mapping은 Intel이 공개하지 않은 pseudo-random 함수로 분석되었으며, 이 때문에 물리적으로 가까운 core가 항상 가까운 directory를 얻는 것은 아니다.
연구에서 보고된 KNL 관찰값은 다음과 같다.
| 관찰 | 값 | 해석 범위 |
|---|---|---|
| Mesh layout | 38 tiles, 64~72 cores | KNL 연구 대상의 구조 |
| Directory access variation | 최대 32 CPU cycles | 고정 Intel Mesh 전체의 보편 수치가 아닌 측정 결과 |
| Minimum measured latency | 117 cycles | 특정 KNL x200 7210 실험 조건 |
| Extreme overhead | 약 27% | 위 최소값 대비 특정 block 접근의 차이 |
| Routing model | vertical 1 cycle, horizontal 2 cycles | KNL 연구에서 관찰한 YX 모델 |
| Parallel networks | 4개 | 해당 KNL architecture 설명 |
고정 memory block에서 access latency가 최대 32 cycle 달라졌다는 결과는 평균적으로 UMA처럼 보이는 시스템에도 fine-grained locality가 존재함을 보여준다. 이 수치를 최신 Xeon의 fan-out latency나 모든 Intel fabric의 branch cost로 일반화해서는 안 된다. 중요한 결론은 endpoint 수가 많아질수록 home mapping과 directory traffic도 fan-out 성능의 일부가 된다는 것이다.
5. Fan-out과 coherence traffic
cache-coherent CPU의 fan-out은 data payload만 분기하는 문제가 아니다. home CHA가 directory를 조회한 후 최신 line을 가진 owner에게 forward를 요청하거나, 여러 sharer에게 invalidate를 보낼 수 있다. control traffic이 data traffic과 동일한 router·link·buffer를 공유하면 작은 invalidate 메시지도 data latency와 tail latency를 늘릴 수 있다.
| transaction | 가능한 fan-out 또는 fan-in | 주된 비용 |
|---|---|---|
| Read miss, LLC hit | requester → home CHA/LLC, response → requester | source-to-home route, LLC lookup, return path |
| Read miss, remote owner | requester → home CHA → owner cache → requester | directory lookup, owner forward, response convergence |
| Write ownership | requester → home CHA → sharer 집합 | invalidate replication, ordering, acknowledgement |
| Memory miss | requester → home CHA → memory controller | home queue, controller queue, DRAM service |
| I/O access | core 또는 DMA → I/O home/agent | ordering, I/O bridge, QoS와 backpressure |
| All-to-all | 여러 requester → 여러 home와 service | link cut, distributed queue, arbitration |
MESIF 같은 coherence protocol의 state machine과 fabric route는 별도 계층이지만, 실제 성능에서는 서로 분리되지 않는다. 연구는 KNL에서 directory 정보가 data owner와 멀리 있을 때 requestor, directory CHA, forwarder 사이에 추가 경로가 생긴다고 설명한다. 그러므로 평균 link utilization만 보지 말고 home 조회, owner forward, invalidate와 acknowledgement를 traffic class별로 분리해야 한다.
6. Branch capacity와 혼잡
분기 가능한 목적지가 많아도 각 branch의 capacity가 자동으로 합산되는 것은 아니다. source가 N개이고 branch i에 offered load lambda_i, branch의 service capacity가 C_i라면 다음 조건을 확인해야 한다.
lambda_i <= C_i for each branch i
lambda_total <= sum(C_i) only when branches are independent
B_sustained <= min(C_ingress, C_home,
C_branch_cut, C_service)
실제 fabric에서는 branch가 완전히 독립적이지 않다. 여러 경로가 중앙 cut, home CHA, memory controller, package gateway 또는 response link를 공유할 수 있다. 한 branch의 service가 느리면 downstream buffer가 차고 credit이 줄어들어 upstream injection을 막는다. 이 backpressure는 local mesh가 한가해 보여도 공통 fan-in 지점 때문에 core stall을 만들 수 있다.
혼잡을 읽을 때의 대표 지표는 다음과 같다.
| 지표 | 의미 | 발견하는 문제 |
|---|---|---|
| Branch utilization | 특정 output 또는 gateway의 busy 비율 | 특정 destination으로 집중되는 hotspot |
| Queue occupancy | 입력·출력 buffer에 머무는 flit 수 | service 또는 downstream link 부족 |
| Credit stall | credit 부족으로 전송하지 못한 시간 | backpressure와 buffer sizing 문제 |
| Fan-out replication | 한 control request에서 생성된 message 수 | sharing과 invalidate가 만드는 traffic 증폭 |
| Home concentration | 요청이 몰린 CHA·LLC slice 비율 | address mapping, placement 또는 workload hotspot |
| Tail latency | p95·p99 request completion time | 평균값에 숨은 arbitration과 retry 비용 |
| Cut utilization | 여러 branch가 공유하는 절단면의 사용률 | topology의 aggregate bandwidth 한계 |
7. Mesh, tile과 package boundary
fan-out의 물리 범위가 하나의 die를 넘으면 local mesh와 package-level link를 별도 계층으로 계산해야 한다. Intel Tiled Mesh와 Modular Mesh 문서에서 설명했듯이, source tile의 local route를 마친 packet은 tile gateway, EMIB 또는 다른 die-to-die adapter를 거쳐 destination tile의 local fabric으로 들어갈 수 있다. 이때 package link는 새로운 fan-out topology라기보다 branch boundary와 protocol·전력·열 제약을 추가하는 계층이다.
| 범위 | fan-out 대상 | 추가되는 문제 |
|---|---|---|
| Core·cache local mesh | local LLC slice, CHA, nearby endpoint | router arbitration, local queue, home locality |
| Die-wide mesh | remote CHA, MC, I/O stop | hop, central cut, distributed directory traffic |
| Tile-to-tile package | 다른 compute tile의 fabric | gateway, die-to-die PHY, link training, retry |
| Socket-to-socket | remote socket home·memory | UPI 또는 socket link, NUMA locality, remote service |
| External I/O fabric | PCIe·CXL device와 memory system | protocol ordering, DMA competition, QoS |
UCIe는 package-level die-to-die physical layer, protocol stack과 software model을 표준화하는 공개 표준이다. UCIe를 사용할 수 있다는 사실이 해당 chiplet 내부의 Intel cache coherence 또는 fan-out policy를 결정하지는 않는다. package link의 peak rate와 coherent fabric의 sustained bandwidth도 같은 지표가 아니다.
8. Intel 사실과 분석 가정의 구분
| 주장 | 안전한 표현 | 피해야 할 표현 |
|---|---|---|
| Intel Mesh | Intel Xeon Scalable·Xeon Phi 계열에 mesh와 distributed coherence 사례가 공개됨 | 모든 Intel CPU가 같은 mesh stop과 route를 사용함 |
| KNL 38-tile layout | 연구 대상 KNL x200 7210의 layout과 측정 결과 | 최신 Xeon의 고정 topology와 cycle로 일반화 |
| 6×6, 36 stop | 28-core Skylake-SP XCC의 대표 공개 분석 | 모든 Xeon SKU가 36 stop을 가짐 |
| Four-tile package | Sapphire Rapids의 multi-die·EMIB package 분석 사례 | 모든 tile이 동일한 fan-out router를 공유함 |
| Distributed directory | 각 tile의 CHA가 directory 일부를 담당하는 모델과 연구 관찰 | Intel의 모든 세대에서 같은 hash·directory 정책을 사용함 |
| Fan-out branch | request 또는 coherence event의 논리적 분기 모델 | 실제 제품에 중앙 fan-out switch가 존재한다고 단정 |
| Link capacity | 측정·datasheet·명시된 model parameter로 기록 | endpoint 수만으로 aggregate bandwidth를 계산 |
| VC·buffer·route | 공개 자료가 있으면 SKU와 출처를 명시 | 공개되지 않은 RTL을 고정 사실로 작성 |
9. Diamond Rapids의 CBB·Fabric Hub 계층
Diamond Rapids 발표 자료의 구조는 fan-out을 단순한 논리 분기만이 아니라 계산 블록을 반복하고, 메모리·I/O·가속기 기능을 Fabric Hub에 모아 공유하는 시스템 구성으로 보여준다. 자료의 아키텍처 여정은 Ring, Mesh, Tiled Mesh, Modular Mesh, 3D Mesh로 확장되며, Diamond Rapids는 그 다음 단계의 Fan-out Fabric Architecture로 소개된다. 이 명칭을 모든 Intel 제품에 공통인 고정 토폴로지로 확대하지 않고, 해당 발표 자료가 제시한 제품 방향으로 읽어야 한다.
| 발표 자료의 블록 | 자료에 기재된 내용 | Fan-out 분석에서의 역할 |
|---|---|---|
| Compute Building Block (CBB) | Core Chiplet, cores + L2$, Base Tile의 shared LLC, 3D Xbar | 여러 계산 requester를 반복 배치하고 shared LLC·Fabric Hub로 연결하는 source 집합 |
| Core Chiplet | 칩렛당 최대 16 cores | CBB 내부의 코어·L2 requester 규모를 확장하는 단위 |
| Fabric Hub | 중앙화된 I/O·memory, Unified Memory Fabric, Flexbus I/O Fabric | 여러 CBB의 memory·I/O·coherence 요청이 모이는 기능적 fan-in 경계 |
| Memory subsystem | 최대 1.6 TB/s, DDR5·MRDIMM·CXL memory 경로 | Memory Controller, Home Agent/HSF, MSE, MVF를 통한 memory service 분기 |
| Flexible I/O subsystem | PCIe Gen6, CXL 3.0, UPI 3 조합, I/O cache, 가속기 | I/O request와 accelerator traffic을 선택적인 Flexbus endpoint로 전달 |
| Package construction | 4 CBB, 2 Fabric Hub Tile, 4 Base Tile, 16 Core Chiplets, HBI/Foveros 3D Direct, UCIe-S substrate copper links | CBB·hub·package 경계를 계층별로 분리해 확장하는 물리적 구성 사례 |
자료의 그림은 네 개의 CBB가 두 개의 Fabric Hub 주변에 배치되는 구조를 보여준다. 따라서 여기서 hub는 공개된 기능 집계 위치를 뜻하며, 모든 트랜잭션이 하나의 중앙 crossbar와 단일 queue를 통과한다는 뜻은 아니다. 실제 병목은 CBB ingress, hub 내부 memory/I/O path, Home Agent·HSF, controller queue와 package link 중 어느 경계가 공통으로 공유되는지에 따라 달라진다.
발표 자료의 Diamond Rapids SoC 개요에는 네 CBB, 전체 CBB에 걸친 최대 1.28 GB LLC, 최대 256 cores, 16 memory channels, 최대 8000 MT/s DDR5, 최대 12800 MT/s MRDIMM, 128 lanes와 PCIe Gen6·CXL 3.0·UPI 3가 기재되어 있다. 이 숫자는 자료가 제시한 up to capability이며, 단일 SKU의 동시 구성이나 sustained application bandwidth로 해석하지 않는다. 또한 Fabric Hub별 4 x 16 high-speed I/O lanes와 추가 PCIe Gen4 platform-infrastructure lanes라는 설명과 SoC 개요의 128 lanes는 서로 다른 집계 범위일 수 있으므로 단순 합산하지 않는다.
메모리 경로에는 DDR 또는 CXL memory encryption을 지원하는 MSE, DDR access scheduling·ECC·power management·row-hammer protection을 담당하는 MC, on-die HSF를 포함하는 HA, CXL memory의 1LM·Flat2LM과 mirroring을 지원하는 MVF가 자료에 제시된다. 자료는 기존 DRAM-resident directory state를 on-die snoop filter directory로 옮겨 full ECC protection을 보존하고, cache lookup latency와 coherence traffic을 줄이는 방향도 설명한다. 이는 Diamond Rapids의 공개 기능 설명이며, HSF entry 수와 lookup pipeline 같은 구현 세부를 의미하지 않는다.
비교/분석
1. Fan-out은 topology가 아니라 traffic pattern이다
| 항목 | Ring | Monolithic Mesh | Fan-out Fabric 분석 | Tiled/Package Fabric |
|---|---|---|---|---|
| 분류 | topology | topology | traffic distribution과 service 관계 | 계층형 physical scope |
| 기본 경로 | ring stop 순회 | row·column router hop | home 선택 후 여러 endpoint로 분기 | local mesh + tile boundary + remote local mesh |
| fan-in 위험 | ring segment, bridge | CHA·MC egress, central cut | branch, home, service queue | gateway, package link, remote home |
| fan-out 사례 | 방향을 따라 순차 전달 | 여러 route와 distributed home | owner, sharer, MC, I/O 선택·복제 | tile 간 remote service와 coherence |
| 확장 기준 | stop 수와 ring bandwidth | cut capacity와 wire length | branch capacity, replication, hotspot | local/global capacity와 boundary cost |
| 주의점 | 먼 stop의 hop 증가 | 실제 route·VC는 SKU별 상이 | fan-out을 중앙 broadcast로 오해하지 않음 | package가 coherent라는 사실과 동일 latency를 구분 |
Fan-out 분석을 별도 topology로 취급하면 ring과 mesh를 잘못 비교하게 된다. 같은 Intel Mesh에서도 local LLC hit는 낮은 fan-out으로 끝날 수 있고, write-sharing workload는 같은 physical mesh에서 여러 CHA와 owner에 control message를 만들 수 있다. 비교의 단위는 topology 이름이 아니라 동일한 traffic matrix에서 branch와 service가 소비한 capacity여야 한다.
2. 중앙 star와 분산 mesh fan-out
| 항목 | 중앙 star 또는 hub | 분산 mesh fan-out |
|---|---|---|
| 경로 | requester → central hub → endpoint | requester → 여러 router·home → endpoint |
| 장점 | route가 단순하고 정책 집중 | 여러 link와 home에서 병렬 처리 가능 |
| 병목 | hub port, central buffer, single cut | hotspot link, home concentration, branch cut |
| 지연 예측 | hub queue가 지배 | source-home 거리와 queue 분포가 지배 |
| 확장 비용 | hub port와 crossbar가 빠르게 증가 | router·link·buffer·routing 검증 증가 |
| 고장 범위 | hub fault가 넓은 범위에 영향 | distributed fault containment 여지 |
| 적합한 부하 | 소수 endpoint, 낮은 route 복잡도 | 많은 core·cache·memory·I/O와 병렬 traffic |
분산 mesh도 특정 CHA, memory controller 또는 package gateway가 논리적 hub처럼 동작할 수 있다. central hub가 없다는 topology 설명만으로 hotspot이 사라지는 것은 아니다. address mapping이 한 home으로 요청을 집중하거나 coherence sharer가 한 region에 몰리면 분산 fabric 안에 virtual hub가 생긴다.
3. Diamond Rapids 발표 구조와 일반 fan-out 모델
Diamond Rapids 자료는 계산·메모리·I/O를 기능 기반으로 나누고 이를 반복 가능한 블록으로 확장한다는 점에서 기존 분석 모델의 구체적인 사례가 된다. 그러나 발표 자료의 Fabric Hub를 일반적인 중앙 star와 동일시하면 안 된다.
| 비교 항목 | 일반 fan-out 분석 모델 | Diamond Rapids 자료에서 확인되는 사례 | 해석상의 제한 |
|---|---|---|---|
| 계산 source | 여러 core·cache requester | 4개의 CBB, Core Chiplet과 Base Tile의 shared LLC | 실제 CBB 간 link topology와 port 수는 공개되지 않음 |
| 기능 집계 | home·memory·I/O service의 논리적 집계 | 2개의 Fabric Hub Tile, Unified Memory Fabric, Flexbus I/O | hub가 단일 blocking crossbar라는 근거는 없음 |
| coherence | home directory·snoop·owner·sharer | HA·HSF, on-die snoop filter directory, I/O cache filtering | exact coherence state와 replication rule은 공개되지 않음 |
| memory endpoint | MC·DRAM·CXL service | DDR5, MRDIMM, CXL memory, MSE·MC·MVF | 1.6 TB/s는 memory subsystem 자료 수치이지 모든 workload의 보장치가 아님 |
| package 확장 | tile gateway·die-to-die boundary | HBI/Foveros 3D Direct, UCIe-S substrate copper links | package link peak와 coherent sustained bandwidth는 별도 측정 대상 |
| I/O 분기 | I/O agent·accelerator endpoint | PCIe Gen6, CXL 3.0, UPI 3, QAT·DSA·IAA | x16 port가 어떤 조합으로 구성되는지는 SKU·설정별 확인 필요 |
자료의 128 lanes는 PCIe Gen6, CXL 3.0, UPI 3에 사용할 수 있는 I/O 자원 규모를 요약한 표현으로 읽어야 한다. 슬라이드에는 각 x16이 이 세 인터페이스 중 하나 또는 일부 조합으로 사용될 수 있다고 적혀 있으므로, 128 lanes를 세 프로토콜의 동시 독립 대역폭 합계로 계산하지 않는다. 마찬가지로 자료의 memory subsystem 최대 1.6 TB/s와 양방향 I/O 대역폭 표기는 인터페이스·구성 상한이며, CBB 수에 곱해 전체 fabric throughput을 산출하는 값이 아니다.
4. Request 유형별 비용
| workload | 예상 분기 형태 | 주요 병목 | 필요한 관측 |
|---|---|---|---|
| Same-home local hit | source → nearby CHA·LLC → source | local router와 LLC service | source-home distance, LLC queue |
| Remote LLC hit | source → home CHA → remote LLC → source | home route와 response path | home distribution, round-trip latency |
| Remote owner forward | source → home → owner → source | directory와 owner data path | forward count, owner distance, p99 |
| Write sharing | source → home → sharer set → acknowledgement | invalidate replication, ordering | sharer 수, control flit, ack wait |
| Memory streaming | 많은 source → MC set | MC queue, branch cut, DRAM service | per-MC load, queue time, sustained bandwidth |
| Uniform all-to-all | 모든 source → 다수 home | aggregate cut와 router contention | max link utilization, VC stall |
| Single-home hotspot | 다수 source → 하나의 home | home agent와 egress queue | home concentration, backpressure |
5. 지연과 처리량 모델
단일 request의 fan-out latency를 다음처럼 분리하면 topology hop과 service·coherence 비용을 섞지 않을 수 있다.
L_total = L_injection
+ L_source_route
+ L_home_lookup
+ L_branch_arbitration
+ L_data_or_control_service
+ L_response_convergence
+ L_queue_retry
coherence message가 여러 endpoint에 복제되면 completion은 모든 필수 response 중 늦은 경로에 영향을 받을 수 있다.
L_coherence = L_home
+ max(L_invalidate_i + L_ack_i for i in required_sharers)
+ L_owner_or_memory_service
+ L_return
위 식은 일반적인 분석 모델이며 Intel 특정 SKU의 고정 cycle 식이 아니다. max가 실제 protocol의 정확한 completion rule이라는 뜻도 아니다. ordered acknowledgement, timeout, retry, speculative response 여부가 구현마다 다르므로 측정 시 request class와 completion event를 먼저 정의해야 한다.
fan-out fabric의 aggregate 처리량은 다음과 같이 상한을 잡을 수 있다.
B_system <= min(sum of requester injection capacity,
home and directory capacity,
branch or cut capacity,
destination service capacity,
response capacity)
branch 수를 늘려도 home directory와 memory service가 그대로면 처리량은 증가하지 않는다. 반대로 각 service endpoint가 충분해도 branch를 공유하는 global link의 capacity가 부족하면 all-to-all workload에서 먼저 포화된다.
6. 배치와 주소 mapping의 trade-off
| 목표 | 유리한 방법 | 숨은 비용 |
|---|---|---|
| 낮은 local latency | requester를 home CHA·LLC와 가깝게 배치 | 다른 requester의 branch와 link가 집중될 수 있음 |
| 높은 aggregate bandwidth | home·MC·I/O를 여러 region에 분산 | remote path, mapping과 scheduling 복잡성 |
| 낮은 coherence traffic | shared data의 owner·sharer를 제한 | parallelism 감소, synchronization 비용 |
| 높은 memory throughput | 여러 MC branch에 address를 interleave | 특정 CHA directory 또는 cut hotspot |
| 낮은 tail latency | traffic class와 QoS로 control path 보호 | buffer·VC·starvation 검증 비용 |
| package 확장 | local fabric과 tile boundary를 계층화 | gateway, PHY, power·thermal·retry 비용 |
KNL 연구의 pseudo-random CHA mapping 사례는 물리적 근접성만으로 address home을 예측할 수 없다는 점을 보여준다. 최신 제품의 placement 최적화에서는 CPU affinity, memory placement, address sweep과 uncore counter를 함께 사용하고, SKU·firmware·NUMA mode를 실험 조건에 기록해야 한다.
동작 원리
1단계: Requester가 transaction 생성
core의 L1/L2 miss, write, prefetch 또는 DMA request가 발생하면 endpoint는 physical address, operation type, ordering과 coherence attribute를 포함하는 내부 transaction을 만든다. 이 시점의 core stall과 fabric injection 대기를 분리해야 한다.
T0: cache miss 또는 I/O request 감지
T1: endpoint queue에 transaction 삽입
T2: local ingress가 fabric credit 확인
T3: 첫 router 또는 gateway arbitration
입력 queue가 가득 차면 request가 fabric에 아직 들어가지 않았는데도 core가 지연될 수 있다. 반대로 queue가 비어 있어도 목적지 branch 또는 home service가 바쁘면 이후 구간에서 backpressure가 발생한다.
2단계: Home CHA와 service domain 선택
주소 mapping과 directory는 cache line이 어느 LLC slice·CHA에 속하는지, memory controller 또는 I/O target이 어디인지 결정한다. 개념적인 destination은 다음처럼 표현할 수 있다.
destination = {
home_id,
tile_or_die_id,
local_agent_id,
request_class,
coherence_state
}
router 또는 home agent는 다음을 판단한다.
- source에 local cache hit 또는 충분한 permission이 있는지 확인한다.
- local service로 끝나지 않으면 address home CHA를 선택한다.
- home directory가 owner·sharer·memory target을 확인한다.
- 필요한 branch와 traffic class의 credit·queue 상태를 확인한다.
- ordering을 보존할 route를 선택하고, 불가능하면 대기 또는 backpressure를 적용한다.
Intel 제품별 address hash, home mapping과 route selection의 세부는 공개 범위가 제한된다. core 번호와 물리적 인접성만으로 destination을 복원했다고 쓰지 않고, 실험적으로 관찰한 mapping과 모델 가정을 분리한다.
3단계: Branch arbitration과 분기
동일한 output link를 여러 입력이 요구하면 arbiter가 전송 순서를 정한다. 가능한 정책은 round-robin, age, priority 또는 traffic class 기반 조합이지만, 특정 Intel fabric의 실제 정책으로 단정할 수 없다.
source ingress
-> local router
-> selected home branch
-> home CHA / directory
branch arbitration에서 확인할 상태는 다음과 같다.
- downstream buffer의 credit 또는 ready 상태
- data, coherence control, I/O와 latency-sensitive class의 우선순위
- 같은 branch를 사용하는 requester 수와 age
- destination service가 요청을 수락할 수 있는지 여부
- retry·replay 또는 error containment 상태
한 class를 계속 우선하면 다른 class가 starvation을 겪을 수 있다. 반대로 공정성만 강제하면 긴 coherence transaction이 latency-sensitive request를 지연시킬 수 있다. QoS 정책은 평균 처리량과 p99 latency를 함께 평가해야 한다.
4단계: Home directory와 data service
home CHA에 도착한 request는 cache tag, line state와 directory metadata를 조회한다. 가능한 흐름은 다음과 같다.
- LLC가 line과 permission을 보유하면 data와 response를 source로 반환한다.
- 다른 cache가 최신 owner라면 owner cache에 forward 또는 ownership request를 보낸다.
- line이 cache에 없으면 memory controller 또는 적절한 I/O service로 요청한다.
- write 또는 ownership 변경이면 관련 sharer에 invalidate를 보낸다.
- 필요한 data와 acknowledgement를 모아 request completion을 만든다.
이때 home과 data owner가 같은 위치라는 보장은 없다. KNL 연구의 경로 사례처럼 directory metadata가 data forwarder와 먼 tile에 있으면, payload가 짧아도 control path가 길어질 수 있다. fan-out 분석에서는 home lookup latency, owner forward latency, memory service latency를 별도 counter 또는 model term으로 기록한다.
5단계: Coherence event의 선택적 fan-out
read miss는 대개 한 home으로 향하는 directed request지만, write-sharing은 directory가 여러 sharer를 대상으로 control transaction을 만들 수 있다. 일반적인 모델은 다음과 같다.
write requester
-> home CHA
-> sharer A: invalidate
-> sharer B: invalidate
-> owner C: ownership or data response
<- acknowledgement convergence
실제 구현은 broadcast, multicast tree, serialized invalidation 또는 directory-specific optimization 중 하나일 수 있다. 공개 자료에 없는 replication point와 ordering rule을 Intel 고정 동작으로 쓰지 않는다. 측정에서는 sharer 수, control message 수, ack 대기, data response를 분리해야 한다.
6단계: Tile·package boundary 통과
destination이 다른 tile 또는 die에 있다면 source local mesh의 branch gateway가 packet을 package-level interface로 넘긴다. 일반적인 계층은 다음과 같다.
source endpoint
-> source local mesh
-> tile gateway
-> die-to-die adapter or package link
-> destination gateway
-> destination local mesh
-> home CHA / MC / I/O
package link는 lane alignment, link training, clock·power domain crossing, CRC·retry와 reset을 추가할 수 있다. EMIB 또는 UCIe의 physical/package 연결은 local fabric의 router hop과 다른 비용 항목이다. package peak bandwidth를 Intel coherent fabric의 sustained branch capacity로 직접 대체하지 않는다.
7단계: Response convergence와 관측
data, ownership response와 acknowledgement는 request ID 및 ordering rule에 따라 source endpoint로 돌아온다. response가 원래 branch와 항상 동일한 path를 사용한다고 단정할 수 없으므로, forward와 reverse path를 별도로 계측한다.
| 구간 | 기록할 항목 |
|---|---|
| Injection | core stall, endpoint queue, first arbitration |
| Home selection | address mapping, home CHA·LLC, destination class |
| Branch | output busy, arbitration wait, credit stall, queue occupancy |
| Coherence | snoop·invalidate·forward·ack message 수 |
| Service | LLC hit/miss, MC queue, DRAM service, I/O completion |
| Package | gateway busy, link retry, training·power state |
| Response | reverse path, request matching, completion event |
| Outcome | p50/p95/p99 latency, throughput, energy per bit |
최소 검증 workload는 local-only, nearest-home, uniform random, all-to-all, single-home hotspot, write-sharing과 remote-memory로 나눈다. 평균 latency만 비교하면 branch queue가 만든 tail latency와 coherence replication을 놓칠 수 있다.
8단계: Diamond Rapids 경로에 대입하기
발표 자료에 공개된 블록을 일반적인 fan-out transaction에 대응시키면 다음과 같은 계층으로 읽을 수 있다.
- CBB 내부 처리: Core Chiplet의 core와 L2$에서 miss 또는 ownership request가 발생하고, 3D Xbar가 Base Tile의 shared LLC로 연결한다.
- CBB에서 Fabric Hub로 이동: LLC에서 해결되지 않은 요청은 address home, coherence 상태와 traffic class에 따라 Fabric Hub의 memory 또는 I/O 경계로 향한다. 자료는 이 내부 이동의 정확한 router 수와 경로를 공개하지 않는다.
- Memory service: HA·HSF가 home과 snoop 상태를 처리하고, MC가 DDR access를 스케줄링한다. 필요하면 MSE가 DDR 또는 CXL memory encryption 경계를 제공하고, MVF가 CXL 1LM·Flat2LM 또는 mirroring 경로를 지원한다.
- I/O·accelerator service: Flexbus I/O Fabric은 PCIe Gen6, CXL 3.0, UPI 3로 설정될 수 있는 I/O PHY·interconnect와 I/O cache, QAT·DSA·IAA accelerator complex로 요청을 분기한다. 발표 자료는 Fabric Hub마다 두 accelerator complex를 설명한다.
- 응답과 coherence 수렴: data, permission, invalidate acknowledgement는 HSF·coherence path와 request ID에 따라 CBB의 source로 돌아온다. on-die snoop filter는 DRAM에 directory state를 저장하던 경로와 비교되는 공개 방향이지만, response route와 completion rule은 공개되지 않았다.
이 경로는 제품 발표의 기능 블록을 현재 문서의 source → home → branch → service → response 모델에 연결한 것이다. 따라서 CBB와 Fabric Hub의 이름은 자료에 근거하지만, CBB당 고정 branch 수, Fabric Hub의 단일 queue, HSF의 정확한 lookup cycle은 모델 가정 또는 silicon 측정으로 남겨야 한다.
장단점
| 장점 | 단점 및 주의점 |
|---|---|
| 많은 core·cache·memory·I/O endpoint를 공통 fabric에 연결할 수 있음 | endpoint 수 증가로 route, coherence와 QoS 검증 복잡도가 증가함 |
| distributed home과 여러 link를 활용해 중앙 directory 병목을 완화할 수 있음 | address home, branch cut 또는 service egress가 virtual hub가 될 수 있음 |
| local traffic과 remote traffic을 계층적으로 분리할 수 있음 | remote home과 package boundary가 latency tail을 키울 수 있음 |
| traffic class와 flow control로 data·control 요청을 조절할 수 있음 | VC, buffer와 priority 정책이 area·전력·deadlock 검증 비용을 만듦 |
| tile·die-to-die 구조로 reticle, 수율과 process mix 선택지를 넓힐 수 있음 | gateway·PHY·retry·열·전력 경계를 별도로 검증해야 함 |
| workload에 따라 destination과 service를 병렬로 사용할 수 있음 | all-to-all, write-sharing과 single-home 부하에서 fan-out traffic이 증폭됨 |
| telemetry로 link·home·queue hotspot을 찾아 배치 최적화 가능 | 공개 PMU만으로 내부 branch와 exact home mapping이 모두 보이지 않을 수 있음 |
| Diamond Rapids 자료처럼 CBB를 반복하고 memory·I/O를 Fabric Hub로 집계하면 기능별 확장과 공통 service 관리를 함께 설계할 수 있음 | CBB ingress와 Fabric Hub의 memory·I/O 경계가 여러 requester의 공통 cut이 될 수 있어 hub queue·service capacity를 별도로 확인해야 함 |
| on-die snoop filter와 MSE·MC·MVF를 memory subsystem에 통합하면 coherence·ECC·암호화 경계를 한 계층에서 관리할 수 있음 | 기능 통합이 내부 directory·coherence·보안 경계의 검증 범위를 줄인다는 뜻은 아니며, 공개 자료만으로 내부 비용을 산정할 수 없음 |
선택과 검증 기준
Fan-out Fabric을 Intel의 공식 제품명이나 고정 RTL로 쓰지 않고, 공개된 mesh·tile·CHA 구조를 분석하는 traffic pattern으로 정의한다.- fan-out degree와 endpoint 수를 구분하고, 실제 workload의 branch replication과 sharer 수를 측정한다.
C_system = endpoint 수 × link rate로 계산하지 말고 ingress, home, cut, service, response capacity 중 최소값을 확인한다.- local LLC hit, remote LLC hit, remote owner forward, memory miss, write-sharing과 all-to-all을 별도 workload로 실행한다.
- home CHA concentration, branch utilization, queue occupancy, credit stall, control flit, retry와 p99 latency를 함께 기록한다.
- KNL의 38-tile·32-cycle·117-cycle 수치는 KNL 연구 조건에 한정하고 최신 Intel SKU 수치로 일반화하지 않는다.
- 6×6·36-stop은 28-core Skylake-SP XCC의 대표 공개 분석이며, 모든 Xeon SKU의 고정 구성으로 쓰지 않는다.
- EMIB, UCIe와 package link의 peak rate를 on-die coherent fabric의 sustained bandwidth 또는 cycle latency로 변환하지 않는다.
- 주소 mapping, home hash, multicast 방식, VC, buffer depth와 arbitration이 공개되지 않았다면 모델 가정 또는 silicon 측정으로 표시한다.
- die·tile 경계를 넘는 요청은 local route, gateway, package link, remote service와 reverse path를 따로 측정한다.
관련 기술
- CPU Fabric 아키텍처 개요: topology, fabric, chiplet과 계층별 연결 범위
- CPU 인터커넥트 설계 지표: hop latency, bisection, congestion, QoS와 전력 측정
- Intel Ring 인터커넥트: ring stop과 segment 병목
- Intel Mesh 인터커넥트: planar mesh, distributed LLC와 CHA
- Intel Tiled Mesh: compute tile과 package boundary
- Intel Modular Mesh: local module, gateway와 global routing
- 메모리 인터커넥트: router, link와 flow control
- 캐시 일관성 프로토콜: snoop, directory와 MESI/MOESI message
- NUMA 아키텍처: local·remote memory locality
- UCIe 칩렛 인터커넥트: package-level die-to-die adapter와 protocol
참고 문헌 및 표준
- Intel, Intel Xeon Processor Scalable Family Technical Overview: Xeon Scalable mesh와 platform fabric 개요.
- Intel, 4th Gen Intel Xeon Processor Scalable Family Technical Overview: Sapphire Rapids 제품과 compute tile의 공식 개요.
- Intel Foundry, Advanced Packaging: EMIB와 Foveros를 포함하는 package 기술 개요.
- Patrick Kennedy, The New Intel Mesh Interconnect Architecture and Platform Implications, ServeTheHome, 2017: Skylake-SP 28-core XCC의 6×6 mesh와 36-stop 분석.
- Patrick Kennedy, Things are getting Meshy: Next-Generation Intel Skylake-SP CPUs Mesh Architecture, ServeTheHome, 2017: ring에서 mesh로의 전환과 memory·I/O stop의 개념 설명.
- btarunr, Intel “Sapphire Rapids” Xeon 4-tile MCM Annotated, TechPowerUp, 2022: four-die package와 EMIB, tile 내부 자원에 대한 공개 분석.
- Steve Kommrusch et al., “Coherence Traffic in Manycore Processors with Opaque Distributed Directories”, arXiv:2011.05422, 2020: KNL의 distributed CHA, address-to-CHA mapping, coherence traffic과 latency 측정.
- UCIe Consortium, UCIe Specifications: package-level die-to-die physical layer, protocol stack, manageability와 3D package 표준.
- Intel, Diamond Rapids — Intel’s next generation Xeon CPU, Krishnakanth Sistla (Intel Fellow, Chief Architect Xeon Performance), 제공된 발표 자료, slides 3–21: Fan-out Fabric Architecture, CBB·Fabric Hub, Unified Memory Fabric, Flexbus I/O, Diamond Rapids SoC 공개 상한과 package 구성.
핵심 정리
Intel Fan-out Fabric은 Intel의 공식 단일 제품명이 아니라, 많은 requester가 여러 home·service endpoint에 도달하고 coherence event가 선택적으로 분기되는 traffic 분석 용어다.- Intel Mesh의 distributed CHA는 중앙 directory 병목을 줄일 수 있지만, address-to-home mapping과 source-home 거리 때문에 평균 UMA와 실제 per-access latency가 달라질 수 있다.
- fan-out 성능은 endpoint 수보다 branch·cut·home·service·response capacity의 최소값, coherence message replication과 queueing에 의해 결정된다.
- KNL의 38-tile, 최대 32-cycle variation과 117-cycle minimum은 특정 연구 조건이며 최신 Intel 제품의 고정 fan-out latency로 일반화하면 안 된다.
- Intel mesh, tile, EMIB와 UCIe는 서로 다른 topology·package·protocol 계층이므로, local route와 package boundary를 나눠 측정하고 공개 사실과 모델 가정을 명시해야 한다. Diamond Rapids 발표 자료는 이 계층을 4 CBB, 2 Fabric Hub, Unified Memory Fabric과 Flexbus I/O라는 구체적인 기능 분할로 보여주지만, 내부 route와 sustained throughput까지 확정하지는 않는다.