🧩 CPU

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 깊이와 정확한 패킷 경로까지 공개한 설계 사양은 아니다.

Intel Fan-out Fabric의 다수 endpoint 분기

핵심 개념

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를 직접 구동하는 구조로만 만들지 않는다. 규모가 커질수록 다음 계층을 분리한다.

  1. Requester endpoint: core cache, DMA, I/O 또는 accelerator가 transaction을 만든다.
  2. Local ingress: source tile 또는 mesh stop이 요청을 fabric에 주입한다.
  3. Home selection: address mapping과 directory가 line의 home CHA, LLC slice 또는 service domain을 정한다.
  4. Branch arbitration: 목적지 방향, credit, queue, QoS와 ordering을 보고 output을 선택한다.
  5. Service endpoint: LLC, owner cache, memory controller, I/O agent가 요청을 처리한다.
  6. 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별로 분리해야 한다.

Intel Fan-out Fabric의 요청과 coherence 분기 흐름

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를 실험 조건에 기록해야 한다.

Intel Fan-out Fabric의 확장성과 병목

동작 원리

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는 다음을 판단한다.

  1. source에 local cache hit 또는 충분한 permission이 있는지 확인한다.
  2. local service로 끝나지 않으면 address home CHA를 선택한다.
  3. home directory가 owner·sharer·memory target을 확인한다.
  4. 필요한 branch와 traffic class의 credit·queue 상태를 확인한다.
  5. 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를 조회한다. 가능한 흐름은 다음과 같다.

  1. LLC가 line과 permission을 보유하면 data와 response를 source로 반환한다.
  2. 다른 cache가 최신 owner라면 owner cache에 forward 또는 ownership request를 보낸다.
  3. line이 cache에 없으면 memory controller 또는 적절한 I/O service로 요청한다.
  4. write 또는 ownership 변경이면 관련 sharer에 invalidate를 보낸다.
  5. 필요한 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에 대응시키면 다음과 같은 계층으로 읽을 수 있다.

  1. CBB 내부 처리: Core Chiplet의 core와 L2$에서 miss 또는 ownership request가 발생하고, 3D Xbar가 Base Tile의 shared LLC로 연결한다.
  2. CBB에서 Fabric Hub로 이동: LLC에서 해결되지 않은 요청은 address home, coherence 상태와 traffic class에 따라 Fabric Hub의 memory 또는 I/O 경계로 향한다. 자료는 이 내부 이동의 정확한 router 수와 경로를 공개하지 않는다.
  3. Memory service: HA·HSF가 home과 snoop 상태를 처리하고, MC가 DDR access를 스케줄링한다. 필요하면 MSE가 DDR 또는 CXL memory encryption 경계를 제공하고, MVF가 CXL 1LM·Flat2LM 또는 mirroring 경로를 지원한다.
  4. 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를 설명한다.
  5. 응답과 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를 따로 측정한다.

관련 기술

참고 문헌 및 표준

  1. Intel, Intel Xeon Processor Scalable Family Technical Overview: Xeon Scalable mesh와 platform fabric 개요.
  2. Intel, 4th Gen Intel Xeon Processor Scalable Family Technical Overview: Sapphire Rapids 제품과 compute tile의 공식 개요.
  3. Intel Foundry, Advanced Packaging: EMIB와 Foveros를 포함하는 package 기술 개요.
  4. Patrick Kennedy, The New Intel Mesh Interconnect Architecture and Platform Implications, ServeTheHome, 2017: Skylake-SP 28-core XCC의 6×6 mesh와 36-stop 분석.
  5. Patrick Kennedy, Things are getting Meshy: Next-Generation Intel Skylake-SP CPUs Mesh Architecture, ServeTheHome, 2017: ring에서 mesh로의 전환과 memory·I/O stop의 개념 설명.
  6. btarunr, Intel “Sapphire Rapids” Xeon 4-tile MCM Annotated, TechPowerUp, 2022: four-die package와 EMIB, tile 내부 자원에 대한 공개 분석.
  7. 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 측정.
  8. UCIe Consortium, UCIe Specifications: package-level die-to-die physical layer, protocol stack, manageability와 3D package 표준.
  9. 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 구성.

핵심 정리

  1. Intel Fan-out Fabric은 Intel의 공식 단일 제품명이 아니라, 많은 requester가 여러 home·service endpoint에 도달하고 coherence event가 선택적으로 분기되는 traffic 분석 용어다.
  2. Intel Mesh의 distributed CHA는 중앙 directory 병목을 줄일 수 있지만, address-to-home mapping과 source-home 거리 때문에 평균 UMA와 실제 per-access latency가 달라질 수 있다.
  3. fan-out 성능은 endpoint 수보다 branch·cut·home·service·response capacity의 최소값, coherence message replication과 queueing에 의해 결정된다.
  4. KNL의 38-tile, 최대 32-cycle variation과 117-cycle minimum은 특정 연구 조건이며 최신 Intel 제품의 고정 fan-out latency로 일반화하면 안 된다.
  5. 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까지 확정하지는 않는다.