🧩 CPU

Intel Mesh 인터커넥트

개요

Intel Mesh는 여러 CPU core, shared last-level cache(LLC) bank, memory controller, I/O controller를 행과 열의 격자에 배치하고, 교차점의 switch를 통해 연결하는 on-die interconnect 구조다. Intel은 Xeon Scalable Processor Family(코드명 Skylake-SP)에서 기존의 고코어 ring 확장 방식 대신 이 구조를 전면에 내세웠다. 한 방향으로 긴 ring을 순회하거나 두 ring 사이의 bridge를 통과하는 대신, 목적지까지 가로·세로로 단계적으로 이동하는 경로를 제공해 core 수와 메모리·I/O 자원이 증가할 때의 대역폭과 확장성을 개선하려는 설계다.

Mesh는 단순한 배선 모양이 아니라 router 또는 switch, link, arbitration, flow control, cache-coherence agent가 함께 동작하는 fabric이다. 공개 자료에는 전체 배치와 설계 의도가 주로 설명되어 있고, 세대별 route selection, virtual channel, buffer 깊이와 arbitration의 정확한 구현은 모두 공개되지 않는다. 따라서 이 문서는 공개된 Skylake-SP/Xeon Scalable 자료와 일반적인 2D mesh 모델을 분리해 설명한다.

Intel Mesh 구조와 주요 stop

핵심 개념

1. 2D mesh와 mesh stop

2D mesh는 각 노드가 보통 북·남·동·서 이웃과 연결되는 격자형 topology다. 노드 사이의 link는 짧은 구간의 데이터를 운반하고, 교차점의 switch 또는 router는 패킷의 목적지와 현재 방향을 보고 다음 출구를 선택한다. CPU에서는 모든 격자 위치가 동일한 core인 것이 아니라, core와 LLC bank, CHA, memory controller, PCIe/PCH, UPI 같은 서로 다른 agent가 mesh stop으로 연결된다.

구성 요소 역할 Intel Mesh에서의 해석
Mesh link 인접 switch 사이의 데이터 경로 행·열 방향의 on-die 연결. 폭과 pipeline은 세대·구현별로 다름
Switch / router 입력을 출력 link로 전환하고 경쟁을 중재 교차점에서 turn과 forwarding을 제공한다는 개념 모델
Mesh stop agent가 fabric에 요청을 넣고 받는 접속점 core뿐 아니라 LLC/CHA, memory, I/O, UPI stop을 포함
Core tile 명령 실행과 private cache의 요청 생성 L1/L2 miss가 mesh transaction으로 변환되는 출발점
LLC bank shared LLC의 물리적 일부 주소의 home에 따라 요청이 향하는 분산 cache bank
CHA Caching and Home Agent cache line home, coherence lookup과 data 경로를 담당하는 분산 agent

Intel의 architect 설명은 core, on-chip cache bank, memory controller, I/O controller를 rows와 columns로 배치하고 교차점의 wires와 switches로 연결하는 개념도를 제시한다. 여기서 말하는 mesh는 일반적인 네트워크 topology를 Intel의 coherent CPU fabric에 적용한 것이다. 구체적인 switch의 내부 pipeline을 공개된 일반도만으로 확정해서는 안 된다.

2. Skylake-SP의 분산 자원 배치

Skylake-SP 28-core XCC의 공개된 6×6 개념 배치는 총 36개의 mesh stop으로 설명된다. 28개는 core, 2개는 memory controller, 2개는 UPI, 3개는 PCIe/PCH connectivity, 1개는 Omni-Path와 같은 integrated package device용 stop이다. 각 memory controller가 3개의 DDR4 channel을 담당하는 구성으로 설명되며, 이 수치는 해당 28-core XCC 예시에 대한 것이다.

Stop 종류 28-core XCC 공개 예시 시스템 역할
Core 28 실행 코어와 private cache를 mesh에 연결
Memory controller 2 각각 여러 DDR4 channel로 DRAM 서비스 제공
UPI 2개 stop으로 표시(최대 3개 link) 다른 socket과 coherent inter-socket 트래픽 연결
PCIe / PCH 3 외부 I/O와 platform controller 경계 연결
Integrated package device 1 일부 SKU의 Omni-Path 등 package-level device
합계 36 6×6 mesh의 개념적 stop 수

모든 Skylake-SP SKU가 같은 stop 수를 갖는 것은 아니다. 공개된 비교 자료에서는 작은 die 구성에서 on-package PCIe x16 interconnect와 세 번째 UPI link가 빠질 수 있다고 설명한다. 따라서 36 stops, 6×6, 28 cores를 Intel Mesh의 보편적인 고정 사양으로 쓰기보다 대표적인 XCC 구성으로 기록해야 한다.

여기서 UPI stop 수와 UPI link 수는 같은 단위가 아니다. 28-core XCC 개념도는 두 UPI stop을 표시하지만, 상위 SKU에서 세 번째 UPI link가 추가될 수 있다. stop은 die 안의 접속 위치이고 link는 그 stop과 다른 socket 사이를 잇는 개별 연결이므로, 두 수치를 더하거나 같은 의미로 해석하면 안 된다.

3. LLC slice와 CHA의 locality

Skylake-SP의 LLC는 하나의 논리적 shared cache이지만 물리적으로 여러 bank 또는 slice로 나뉜다. 주소 mapping이 특정 LLC slice를 home으로 선택하면, 요청 core는 mesh를 통해 그 slice와 가까운 CHA에 도달한다. CHA는 cache line의 state와 directory 정보를 조회하고, 다른 cache에 최신 data가 있는지 또는 memory controller에서 가져와야 하는지를 결정한다.

이 구조에서 locality는 세 가지로 나뉜다.

  1. Core-to-home locality: 요청 core와 home LLC/CHA stop의 mesh 거리
  2. Address locality: 주소 mapping 또는 hash가 어느 slice를 선택하는지
  3. Traffic locality: 많은 core가 같은 CHA, memory controller 또는 mesh link를 동시에 사용하는지

Intel architect 설명은 분산 cache bank 사이의 latency 차이를 작게 만들어 software가 큰 unified LLC처럼 사용할 수 있다는 설계 목표를 제시한다. 그러나 실제 요청에는 link와 switch의 경로, queueing, coherence 처리, memory service가 포함된다. 공개된 개념도만으로 모든 bank의 cycle latency가 같거나 hotspot이 없다고 결론 내리면 안 된다.

Skylake-SP의 cache hierarchy 자체도 interconnect 해석에 영향을 준다. 공개 플랫폼 분석 자료는 core마다 1 MB private L2, shared non-inclusive L3를 설명한다. L2 miss가 mesh를 거쳐 LLC/CHA로 향할 수 있으므로, LLC 용량과 LLC 접근 지연, DRAM 응답 지연은 서로 다른 지표로 측정해야 한다.

4. 경로, hop과 bisection

이상적인 R × C mesh에서 source (r_s, c_s)와 destination (r_d, c_d)의 최소 link hop은 Manhattan distance로 근사할 수 있다.

h_min = |r_s - r_d| + |c_s - c_d|

결정적 XY routing이라면 한 축을 먼저 모두 이동한 뒤 다른 축을 이동한다. adaptive routing은 congestion과 사용 가능한 output을 보고 경로를 바꿀 수 있지만, Intel Mesh의 실제 알고리즘이 공개된 것은 아니다. 따라서 XY는 Intel의 고정 구현이라고 단정하지 않고 mesh를 분석하기 위한 baseline으로 사용해야 한다.

정사각 K × K mesh의 한 방향 중앙 cut은 이상적으로 K개의 link를 가른다. link 하나의 payload capacity를 C라고 두면 cut capacity는 K × C다. 반면 corner-to-corner 최소 경로는 2(K-1) link이므로, mesh가 병렬 경로를 제공해도 먼 agent의 latency와 중앙 cut의 congestion은 사라지지 않는다.

5. Mesh와 inter-socket link의 경계

on-die mesh와 UPI는 같은 시스템 fabric에 속할 수 있지만 물리적 경계가 다르다. core 또는 CHA가 다른 socket의 memory나 cache를 요청하면 먼저 local mesh를 지나 UPI stop에 도달하고, UPI PHY와 protocol을 거쳐 remote socket의 fabric으로 들어간다. 이때 추가되는 serialization, link training, retry, remote home 처리, NUMA locality 비용은 on-die mesh hop과 별도로 세어야 한다.

비교/분석

Ring과 Mesh

항목 Intel Ring 계열 Intel Mesh 계열
기본 topology ring stop이 고리로 연결 행·열의 switch와 link가 격자를 형성
먼 destination 경로 방향을 고른 뒤 여러 stop을 순회 가로·세로 방향의 여러 hop으로 이동
고코어 확장 dual ring과 bridge가 추가되며 bridge·segment 병목 stop과 link를 분산해 parallel path와 cut capacity 확대
shared LLC slice locality와 ring distance의 영향을 받음 slice/CHA와 core의 행·열 위치, home mapping의 영향을 받음
I/O 연결 특정 ring stop에 집중될 수 있음 여러 PCIe/PCH stop을 mesh에 분산할 수 있음
대표 병목 ring segment, bridge, home agent queue 특정 link/router, CHA·memory egress, 중앙 cut
물리 비용 router와 buffer가 비교적 단순할 수 있음 switch, buffer, 행·열 배선과 timing closure 비용 증가
적합한 설계 소·중규모 agent와 낮은 구조 비용 많은 core·cache·memory·I/O를 가진 server die
해석 주의점 Ring 결과를 모든 Intel CPU에 일반화할 수 없음 Skylake-SP의 공개 개념도를 모든 세대에 일반화할 수 없음

Intel이 제시한 전환의 핵심은 ring의 단순한 대체가 아니라, 증가하는 core·memory·I/O 자원에 맞춰 fabric 자원을 분산하는 것이다. Mesh의 link 수가 많다는 사실만으로 모든 요청이 빨라지는 것은 아니다. 실제 결과는 home 배치, traffic matrix, link width, switch pipeline, queueing과 coherence traffic에 의해 결정된다.

공개된 Skylake-SP 수치와 분석 모델의 구분

구분 공개 자료에서 확인되는 내용 문서에서의 사용 방법
제품·세대 Xeon Scalable Processor Family, 코드명 Skylake-SP, 2017 출시 대표 제품 사례로 명시
topology rows/columns, wires/switches, mesh stop 구조 설명과 개념 SVG에 사용
XCC 배치 28 core, 6×6, 최대 36 stop 개념도 해당 die 구성의 예시로 한정
memory 2 memory-controller stop, 각 3 DDR4 channel이라는 공개 분석 stop 배치 설명에 사용
UPI 일부 SKU에서 최대 3개의 10.4 GT/s UPI link가 공개됨 on-die mesh와 socket link를 구분
routing·VC·buffer 제품별 상세 구현은 공개 범위가 제한됨 일반 2D mesh 모델임을 표시
latency·bandwidth Intel은 낮은 latency·높은 bandwidth를 설계 목표로 설명 특정 cycle 또는 sustained rate로 오인하지 않음

성능을 읽는 지표

지표 의미 Intel Mesh에서 확인할 질문
Hop latency source와 destination 사이의 link/router 경로 비용 먼 LLC/CHA와 local LLC/CHA의 zero-load 차이는 얼마인가?
Loaded latency queue와 arbitration까지 포함한 실제 응답 지연 같은 link·CHA·memory egress를 공유할 때 p99가 얼마나 늘어나는가?
Bisection bandwidth mesh를 균등하게 나눈 cut의 capacity all-to-all·remote memory가 중앙 cut을 포화시키는가?
Hotspot ratio 최대 link 사용률 / 평균 link 사용률 특정 CHA·MC·PCIe stop으로 요청이 몰리는가?
Coherence traffic snoop, directory, invalidate, ownership, data forwarding data payload 외 control traffic이 어느 link를 점유하는가?
Remote access ratio 다른 tile·socket의 home 또는 memory를 사용하는 비율 NUMA 배치와 UPI 경계가 성능을 지배하는가?
Energy per bit link·switch·buffer·PHY에서 bit를 이동하는 비용 낮은 mesh frequency/voltage의 이점이 실제 traffic에서 유지되는가?

동작 원리

1단계: Core 요청 생성

core의 L1/L2에서 cache miss, write 또는 synchronization 요청이 생기면 cache controller가 주소, transaction type, ordering과 coherence 속성을 만든다. endpoint는 이를 mesh packet 또는 내부 flit 형식으로 바꾸고 local mesh stop의 입력 queue에 넣는다. 이때 miss 발생, queue 삽입, link 전송 시작 시점을 분리해야 core stall과 mesh injection latency를 혼동하지 않는다.

2단계: 목적지와 경로 선택

주소 mapping은 요청이 향할 LLC slice/CHA 또는 memory/I/O agent를 선택한다. router는 목적지 ID와 현재 위치를 이용해 다음 output을 정한다. 일반적인 mesh 분석 모델은 다음 순서를 사용한다.

  1. 현재 router에서 목적지의 행·열 좌표를 확인한다.
  2. 결정적 baseline이면 X축 또는 Y축 중 하나의 남은 거리를 먼저 줄인다.
  3. 여러 output이 가능한 adaptive 모델이면 queue occupancy와 credit을 고려한다.
  4. 선택된 output이 사용 가능하지 않으면 arbitration과 backpressure에 따라 대기한다.
  5. flit이 다음 router에 도착하면 같은 판단을 반복한다.

실제 Intel Mesh의 route algorithm, virtual channel 수, switch pipeline과 buffer depth는 SKU와 세대별 공개 범위를 벗어날 수 있다. 위 순서는 Intel RTL의 복원이 아니라 2D mesh 동작을 분석하기 위한 모델이다.

Intel Mesh 요청과 응답 흐름

3단계: Switch arbitration과 flow control

한 router의 여러 입력이 같은 output link를 원하면 arbiter가 전송 승자를 정한다. 구현은 round-robin, priority, age 또는 traffic class를 조합할 수 있다. 다음 router의 buffer가 가득 차면 credit-based flow control이나 ready/backpressure 신호가 upstream으로 전파되어 flit 주입이 늦어진다.

Mesh에서 throughput을 높이려면 link를 많이 배치하는 것만으로 충분하지 않다. switch arbitration이 한 class를 계속 우선하면 다른 class가 starvation을 겪을 수 있고, virtual channel로 coherence control과 data를 분리하면 buffer·area·deadlock 검증 비용이 증가한다. 이 내부 정책을 Intel Mesh의 모든 제품에 고정된 동작으로 표현하지 않아야 한다.

4단계: CHA와 coherence service

home CHA에 도착한 요청은 대략 다음의 경로로 처리된다.

  1. CHA가 해당 cache line의 tag, state와 directory 정보를 조회한다.
  2. 다른 core cache가 최신 data를 갖고 있으면 snoop, invalidate 또는 ownership 요청을 보낸다.
  3. cache에서 forward할 data가 없으면 memory controller에 DRAM 요청을 전달한다.
  4. coherence acknowledgement와 data를 수집하고 source core에 반환한다.

이 과정에서 왕복 경로는 하나의 mesh latency가 아니다. source-to-home path, CHA lookup, snoop/data forwarding, memory-controller queue, home-to-source response를 각각 기록해야 한다. 특히 shared line의 write가 잦으면 data byte보다 ownership과 invalidate control traffic이 병목이 될 수 있다.

5단계: Memory와 I/O 경계

memory 요청은 mesh의 memory-controller stop을 지나 DDR4 channel·rank·bank·row service로 넘어간다. PCIe 또는 PCH 요청은 해당 I/O stop에서 외부 link와 연결된다. 다른 socket 요청은 UPI stop과 UPI link를 거쳐 remote mesh로 이동한다.

따라서 다음의 두 경로를 구분해야 한다.

local path   = core -> mesh router(s) -> local CHA/MC/I/O
remote path  = core -> local mesh -> UPI -> remote mesh -> remote CHA/MC

두 경로의 차이를 단순히 link hop 하나의 차이로 세면 안 된다. UPI의 protocol overhead, NUMA placement, remote queue와 remote memory service가 함께 추가되기 때문이다.

6단계: 응답 반환과 관측

data 또는 coherence acknowledgement가 역방향 경로로 돌아오면 endpoint는 request ID를 매칭하고 cache state를 갱신한다. 성능 분석에서는 다음 항목을 함께 수집한다.

  • source-to-home 및 response의 hop 또는 modeled path length
  • mesh link별 busy cycle, input/output queue occupancy와 backpressure
  • CHA별 request concentration, snoop·invalidate·forwarding 비율
  • memory-controller queue time과 DRAM service time
  • local/remote access ratio, UPI utilization과 retry
  • traffic class별 p50, p95, p99 latency와 delivered throughput

Intel의 공개 개념도는 topology와 설계 목표를 보여주지만, 제품의 모든 내부 counter가 공개된 것은 아니다. 가능한 경우 controlled address experiment, PMU/uncore counter, firmware topology 정보와 cycle-accurate model의 측정 경계를 함께 기록해야 한다.

Intel Mesh 확장성과 병목

7단계: 단순 수치 예시

6×6 mesh에서 모든 방향 link가 동일한 capacity C라고 가정하면 중앙의 수직 balanced cut은 6개 link를 지나므로 이상적인 cut capacity는 다음과 같다.

B_bisection,ideal = 6 × C

좌상단 core에서 우하단 core까지의 최소 경로는 좌표 모델상 5 + 5 = 10 link hop이다. 하지만 이는 28-core XCC의 실제 physical cycle이나 특정 SKU의 route map을 뜻하지 않는다. 실제 end-to-end latency는 다음 항을 더한다.

L_total = L_injection
        + L_router/link(hops)
        + L_queue/arbitration
        + L_CHA/coherence
        + L_memory_or_IO
        + L_return

여러 core가 한 memory-controller stop에 접근하면 중앙 cut보다 destination queue가 먼저 포화될 수 있다. 반대로 all-to-all traffic은 cut capacity와 per-link utilization을 함께 압박한다. 따라서 uniform random, nearest-neighbor, all-to-all, single-hotspot을 분리해 측정해야 한다.

장단점

장점 단점 및 주의점
ring을 무리하게 늘리지 않고 많은 core·cache·I/O stop을 분산할 수 있음 switch, buffer, 행·열 배선과 timing closure가 면적·전력을 증가시킴
여러 link에서 동시에 전송할 수 있어 aggregate bandwidth를 키우기 쉬움 특정 CHA, memory controller, I/O egress 또는 cut에 hotspot이 생길 수 있음
core와 LLC/CHA의 위치를 비교적 규칙적인 grid로 표현할 수 있음 물리적 위치와 주소 home hash가 다르면 latency locality가 직관과 어긋날 수 있음
memory controller와 PCIe/PCH stop을 여러 지점에 배치해 자원 집중을 완화할 수 있음 stop 수와 resource 배치는 SKU별로 달라 제품 간 일반화가 위험함
분산 LLC와 home agent가 coherent server fabric에 참여할 수 있음 snoop, directory, invalidate, ownership control traffic이 data bandwidth를 잠식함
mesh frequency와 voltage를 낮추면서도 높은 bandwidth를 목표로 할 수 있음 공개 자료의 설계 목표를 실제 sustained throughput이나 고정 cycle latency로 오인하면 안 됨
UPI와 결합해 multi-socket 시스템의 remote 요청을 운반할 수 있음 UPI·NUMA·remote memory 비용은 on-die mesh와 별도로 측정해야 함

선택과 검증 기준

  • core와 agent 수가 작고 구현 비용·예측 가능한 낮은 구조 지연이 우선이면 ring이 충분할 수 있다.
  • shared LLC, memory channel, PCIe와 같은 agent가 많고 global traffic이 크면 mesh의 parallel path와 bisection을 검토한다.
  • mesh를 선택할 때는 평균 hop보다 worst path, per-link max utilization, CHA concentration과 p99 latency를 함께 측정한다.
  • cache-coherent workload에서는 synthetic data traffic만으로 결론을 내리지 말고 snoop·directory·invalidate를 포함한 trace를 사용한다.
  • 다중 socket에서는 local/remote memory 배치, UPI utilization, OS NUMA placement를 mesh 지표와 결합한다.
  • 공개 자료에 없는 route·buffer·arbitration 세부는 특정 Intel SKU의 측정 또는 문서 근거 없이 확정하지 않는다.

관련 기술

참고 문헌 및 표준

  1. Intel, Intel Xeon Processor Scalable Family Technical Overview: Skylake-SP의 mesh architecture와 플랫폼 개요.
  2. Akhilesh Kumar, Intel Skylake-SP CPU Architect, Intel's New Mesh Architecture: The “Superhighway” of the Data Center, HEXUS, 2017: rows/columns, switch, distributed resource와 LLC 설계 의도.
  3. Patrick Kennedy, Things are getting Meshy: Next-Generation Intel Skylake-SP CPUs Mesh Architecture, ServeTheHome, 2017: ring과 mesh의 경로·대역폭·I/O 비교.
  4. Patrick Kennedy, The New Intel Mesh Interconnect Architecture and Platform Implications, ServeTheHome, 2017: 28-core XCC의 6×6, 36-stop 개념 배치와 memory/UPI/PCIe stop.
  5. Paul Alcorn, Intel Introduces New Mesh Architecture For Xeon And Skylake-X Processors, Tom's Hardware, 2017: ring bridge 비용과 mesh switch·path의 공개 분석.
  6. Microway, Detailed Specifications of the “Skylake-SP” Intel Xeon Processor Scalable Family CPUs, 2017: Skylake-SP의 cache, memory channel과 UPI 공개 사양 요약.
  7. gem5, Garnet 2.0 documentation: 2D mesh, router pipeline, virtual channel, credit flow control을 실험하는 모델.
  8. L. Benini and G. De Micheli, “Networks on Chips: A New SoC Paradigm,” IEEE Computer, 2002, doi:10.1109/2.976921: NoC topology와 on-chip communication의 기본 배경.

핵심 정리

  1. Intel Mesh는 core, distributed LLC/CHA, memory controller와 I/O controller를 행·열 grid와 switch로 연결하는 coherent on-die fabric이다.
  2. Skylake-SP 28-core XCC의 6×6, 36-stop 배치는 공개된 대표 사례이며, 모든 Intel CPU와 SKU의 고정 구조가 아니다.
  3. Mesh는 ring보다 여러 link와 경로를 제공하지만, Manhattan hop, balanced cut, CHA·memory egress hotspot과 queueing은 여전히 latency와 throughput을 제한한다.
  4. 요청 분석은 core injection, router arbitration, CHA coherence, memory/I/O service, response traversal을 분리해야 하며, UPI와 NUMA 비용은 on-die mesh와 따로 계산해야 한다.
  5. 실제 제품의 route algorithm, VC, buffer와 arbitration이 공개되지 않은 경우에는 일반 2D mesh 모델과 측정 결과를 Intel의 확정 RTL 동작으로 표현하지 않아야 한다.