Ryotta's Basic

System
🖥️ System 검증완료

title: 메모리 인터커넥트
date: 2025-06-25
category: system
tags: [interconnect, NoC, ring bus, mesh network, on-chip, SoC, CXL, PCIe, AMBA, AXI]


메모리 인터커넥트

개요

메모리 인터커넥트는 CPU, GPU, 메모리 컨트롤러, I/O 디바이스 등 SoC(System on Chip) 내부 또는 칩 간 데이터를 전달하는 통신 경로를 말한다. 인터커넥트의 성능은 시스템 전체 대역폭과 지연 시간에 직접적인 영향을 미치며, 다중 코어 시스템에서는 메모리 접근 패턴과 캐시 일관성을 결정하는 핵심 요소이다.

현대 프로세서는 단일 공유 버스 구조에서 벗어나 NoC(Network on Chip), 링 버스, 메시 네트워크 등 다양한 인터커넥트 토폴로지를 채택하고 있다. 이러한 인터커넥트는 각각의 트레이드오프를 가지며, 설계 목표에 따라 적절히 혼합되어 사용된다.

특히 최근 서버와 AI 가속기에서는 코어 수 증가뿐 아니라 메모리 채널, LLC 슬라이스, DMA 엔진, CXL/PCIe 루트 포트까지 동시에 연결해야 하므로, 단순히 "얼마나 빠른가"보다 트래픽을 어떻게 분산하고 혼잡을 제어하는지가 더 중요해졌다. 같은 공정과 같은 DRAM을 사용해도 인터커넥트 구조에 따라 tail latency, QoS, 전력 밀도가 크게 달라진다.

핵심 개념

인터커넥트 토폴로지 분류

메모리 인터커넥트는 물리적 연결 구조(토폴로지)에 따라 분류된다:

토폴로지 유형 설명 주요 특징 대표 사례
버스 (Bus) 모든 노드가 하나의 공유 통신선에 연결 단순, 저렴, 확장성 제한 ISA, PCI (구형)
크로스바 (Crossbar) 중앙 스위치가 다수의 마스터/슬레이브를 직접 연결 낮은 지연, 높은 면적 비용 L2 캐시 스위치, SoC 내부 스위치 패브릭
링 (Ring) 노드가 원형으로 연결, 양방향 또는 단방향 균일한 지연, 낮은 복잡도 Intel Client Ring Bus
메시 (Mesh) 격자형으로 노드 간 다중 경로 연결 높은 대역폭, 장애 대응 Intel Mesh on Die, ARM CMN
트리 (Tree) 계층형 구조, 루트에서 리프로 확장 캐시 일관성에 적합 AMD EPYC Infinity Fabric
토큰 링 (Token Ring) 토큰 전달 방식으로 접근 제어 충돌 없음, 결정적 지연 구형 임베디드 시스템
메모리 인터커넥트 토폴로지 비교

NoC (Network on Chip)

NoC는 칩 내부에서 패킷 교환 방식으로 데이터를 전달하는 네트워크 기반 통신 서브시스템이다. 전통적인 버스/크로스바 아키텍처 대비 확장성과 전력 효율성이 뛰어나다.

NoC의 핵심 구성 요소:
- Router: 패킷을 목적지로 라우팅
- Network Interface (NI): IP 코어와 네트워크 간 인터페이스
- Link: 라우터 간 물리적 연결 (wire, serializer, PHY 등)
- Switching Technique: Store-and-forward, Wormhole, Virtual Channel

실제 NoC는 단순 라우팅 외에도 flow control, virtual channel, QoS 우선순위, deadlock 회피를 함께 설계한다. 메모리 읽기 응답과 쓰기 배출, snoop 트래픽, DMA 트래픽이 같은 패브릭을 공유하면 지연 민감도가 다르기 때문에 우선순위 큐와 크레딧 기반 흐름 제어가 중요하다.

NoC 토폴로지 비교:

토폴로지 직경 노드당 degree 대역폭 라우팅 복잡도 면적 오버헤드
2D Mesh O(√N) 4 중간 낮음 낮음
Torus O(√N) 4 중간 중간 낮음
Fat Tree O(log N) 가변 높음 중간 중간
Butterfly O(log N) 고정 높음 높음 중간
Octagon 고정 3~4 중간 낮음 낮음

링 버스 (Ring Bus)

링 버스는 노드가 원형으로 연결되어 있는 인터커넥트 구조이다. 각 노드는 두 개의 인접 노드와 연결되어 있으며, 데이터는 시계방향 또는 양방향으로 전달된다.

Intel Ring Bus 사례 (Haswell-Broadwell):
- 4~8코어까지 효율적
- 코어당 L3 슬라이스가 링에 연결
- 메모리 컨트롤러, PCIe 컨트롤러도 링에 참여
- 단일 방향 또는 양방향 지원

링 버스의 특징:
- 균일한 평균 지연 시간
- 낮은 면적 오버헤드
- 중간 정도의 대역폭
- 코어 수가 많아지면 지연 증가 (N/4 홉 평균)

링 버스 구조 예시

메시 네트워크 (Mesh Network)

메시 네트워크는 격자형으로 노드가 연결되어 있어 다중 경로를 제공하는 인터커넥트 구조이다.

Intel Mesh on Die (Skylake-SP 이후):
- 코어 수가 12개 이상일 때 메시 구조로 전환
- 각 코어가 메시의 노드(라우터)에 연결
- 메모리 컨트롤러, 가속기 등이 메시 노드로 참여
- 다중 경로로 높은 대역폭 제공

메시 네트워크의 장점:
- 높은 대역폭: 다중 병렬 경로
- 장애 대응: 경로 장애 시 우회 가능
- 확장성: 코어 수 증가에 따른 성능 저하 완화
- 균일한 대역폭 분배

메시 인터커넥트 구조 예시

인터커넥트 설계 지표

메모리 인터커넥트를 평가할 때는 평균 지연 시간만 보면 충분하지 않다. 실제 제품에서는 다음 지표를 함께 본다.

지표 의미 설계 영향
Bisection Bandwidth 네트워크를 반으로 나눴을 때 동시에 통과 가능한 총 대역폭 대규모 코어 수에서 병목 위치를 결정
Hop Count 소스에서 목적지까지 거치는 링크/라우터 수 평균 지연, 동적 전력에 직접 영향
QoS Isolation 서로 다른 트래픽 클래스 간 간섭 억제 능력 CPU, GPU, DMA 혼재 시 tail latency 완화
Coherence Traffic Cost snoop/directory 트래픽이 차지하는 비중 멀티소켓, 대형 LLC 시스템의 확장성 좌우
Area per Port 포트 추가당 스위치/배선 면적 증가량 크로스바에서 특히 급격히 증가

비교/분석

인터커넥트 유형별 비교

항목 공유 버스 링 버스 메시 네트워크 NoC (Packet)
대역폭 낮음 (공유) 중간 높음 (병렬 경로) 높음 (다중 경로)
지연 시간 높음 (중재 대기) 중간 (N/4 홉) 낮음 (직접 경로) 중간 (라우팅 오버헤드)
면적 매우 낮음 낮음 중간 중간~높음
전력 낮음 중간 중간~높음 높음 (라우터)
확장성 Poor (2~8코어) Good (4~12코어) Excellent (12+코어) Excellent
라우팅 단순 (중재 기반) 단순 (토큰/크레딧) 중간 (XY 라우팅 등) 높음 (테이블 기반)
대표 사례 구형 SoC Intel Ring Intel Mesh, NVLink ARM CMN-700

주요 상용 인터커넥트 사양

인터커넥트 제조사 대역폭 범위 특징
Intel Ring Bus Intel 구현/세대별 상이 4~12코어급 클라이언트 다이, L3 슬라이스 연결
Intel Mesh on Die Intel 구현/세대별 상이 서버 다이 중심, 다중 경로
AMD Infinity Fabric AMD 링크 폭/클럭에 따라 상이 CCD 연결, NUMA 지원
NVIDIA NVLink NVIDIA 세대별 상이 GPU-GPU, GPU-CPU 연결
ARM CMN-700 ARM 메쉬 크기/포트 구성에 따라 상이 Arm 서버, 다중 클러스터
AMBA AXI ARM 버스 폭/클럭에 따라 상이 SoC 내부 IP 연결
PCIe 5.0 PCIe SIG x16 기준 최대 64 GB/s 칩 간/외부 연결
CXL 2.0 CXL Consortium x16 기준 최대 64 GB/s 메모리 풀링, 확장

메모리 인터커넥트 계층 구조

메모리 인터커넥트는 시스템 계층에 따라 여러 종류가 공존한다:

┌─────────────────────────────────────────────────┐
│                 칩 간 (Die-to-Die)               │
│  Intel EMIB, AMD Infinity Fabric, TSMC CoWoS    │
├─────────────────────────────────────────────────┤
│                 칩 내부 (On-Die)                  │
│  Intel Mesh, AMD IF, ARM CMN-700, NoC           │
├─────────────────────────────────────────────────┤
│              프로세서-메모리 (Host-Memory)          │
│  DDR5, HBM, GDDR6/7, LPDDR5/6                  │
├─────────────────────────────────────────────────┤
│              프로세서-I/O (Host-I/O)              │
│  PCIe, CXL, NVLink, UCIe                        │
├─────────────────────────────────────────────────┤
│              I/O 디바이스 (Device)                 │
│  NVMe, Ethernet, InfiniBand                      │
└─────────────────────────────────────────────────┘

칩 내부 인터커넥트와 칩 외부 인터커넥트는 분리해서 보는 것이 좋다. On-die 패브릭은 짧은 거리에서 높은 주파수와 낮은 pJ/bit를 목표로 하지만, 칩렛/패키지/소켓 간 인터커넥트는 PHY, 재전송, 에러 보호, 패키지 제약까지 포함하므로 같은 "대역폭"이라도 지연과 전력 특성이 크게 다르다.

동작 원리

1단계: 메모리 요청 생성

CPU 코어가 캐시 미스 시 메모리 컨트롤러에 접근 요청을 전달한다:

  1. L1/L2 캐시 미스 발생
  2. L3 캐시(또는 공유 캐시)에서 검색
  3. L3 미스 시 메모리 컨트롤러에 DRAM 접근 요청
  4. 인터커넥트를 통해 메모리 컨트롤러에 패킷 전달

2단계: 인터커넥트 라우팅

요청이 인터커넥트를 통과할 때의 라우팅 과정:

Ring Bus 동작:
1. 소스 노드에서 패킷을 다음 홉 노드로 전달
2. 각 노드는 패킷의 목적지 주소를 확인
3. 목적지가 아니면 다음 홉으로 포워딩
4. 목적지 도달 시 패킷 수신

Mesh Network 동작:
1. 소스 노드에서 XY 라우팅(먼저 X축, 그 다음 Y축)으로 패킷 전달
2. 각 라우터에서 다음 홉 결정
3. 다중 경로 가능 시 최적 경로 선택
4. 목적지 라우터에서 패킷 수신

NoC 패킷 처리 동작:
1. 요청을 flit 단위로 분할하고 헤더에 목적지/트래픽 클래스를 기록
2. NI가 크레딧 상태를 확인한 뒤 주입(injection)
3. 각 라우터가 입력 버퍼, VC 할당, 스위치 할당을 순서대로 수행
4. 혼잡 시 백프레셔로 상류 주입 속도를 늦춤
5. 목적지 NI가 패킷을 재조립해 코어 또는 메모리 컨트롤러로 전달

NoC 라우터 및 NI 구조 예시

3단계: 메모리 컨트롤러 처리

메모리 컨트롤러가 DRAM에 접근:

  1. 인터커넥트에서 패킷 수신
  2. DRAM 주소 디코딩 및 뱅크 활성화
  3. 읽기/쓰기 트랜잭션 수행
  4. 응답 데이터를 인터커넥트를 통해 반환

4단계: 캐시 일관성 유지

멀티코어 시스템에서 캐시 일관성을 위한 인터커넥트 동작:

  1. Snoop 프로토콜: 다른 코어의 캐시 상태 확인 요청
  2. Directory 프로토콜: 중앙 디렉토리에서 캐시 라인 소유권 추적
  3. MESIF/MOESI 상태 전이: 캐시 라인 상태 변경에 따른 인터커넥트 트래픽

5단계: 응답 반환

처리된 데이터가 인터커넥트를 통해 원래 요청 코어로 반환:

  1. 메모리 컨트롤러에서 응답 패킷 생성
  2. 인터커넥트를 통해 라우팅
  3. 원래 요청 코어에 데이터 전달
  4. 캐시에 데이터 저장 및 상태 갱신

장단점

장점 단점
SoC 내부 고속 데이터 전달 높은 설계 복잡도
다중 코어/가속기 간 효율적 통신 면적/전력 오버헤드
확장 가능한 아키텍처 라우팅 알고리즘 복잡성
캐시 일관성 프로토콜 지원 코어 수 증가 시 지연 증가
다양한 IP 블록 통합 가능 소프트웨어 최적화 필요
표준화된 프로토콜 (AMBA, AXI) 비용 증가 (고급 공정)

관련 기술

  • NUMA Architecture: 멀티소켓 인터커넥트와 NUMA 메모리 접근
  • Memory Controller: 통합 메모리 컨트롤러와 인터커넥트 연결
  • CPU Cache Architecture: 캐시 계층과 인터커넥트 대역폭 요구
  • CXL Version Comparison: CXL 인터커넥트 표준
  • PCIe Gen5/Gen6: PCIe 고속 직렬 인터커넥트
  • AMBA/AXI Protocol: SoC 내부 IP 연결 표준 버스 프로토콜
  • UCIe 칩렛 인터커넥트: 칩렛 간 인터커넥트 표준
  • Intel EMIB (Embedded Multi-die Interconnect Bridge): 다이 간 고밀도 연결 기술
  • TSMC CoWoS (Chip on Wafer on Substrate): 2.5D 패키징 인터커넥트 기술
  • AMD Infinity Fabric: AMD 프로세서의 On-Die 및 칩 간 인터커넥트

참고 문헌

  • William J. Dally, Brian Towles, Principles and Practices of Interconnection Networks, Morgan Kaufmann.
  • ARM, CMN-700 Coherent Mesh Network Technical Overview.
  • Intel, Intel 64 and IA-32 Architectures Optimization Reference Manual.
  • AMD, Infinity Architecture White Paper.
  • CXL Consortium, Compute Express Link Specification.

핵심 정리

메모리 인터커넥트는 현대 프로세서의 핵심 구성 요소로, CPU 코어, 메모리 컨트롤러, I/O 디바이스 간 데이터 전달 경로를 제공한다. 공유 버스에서 링, 메시, NoC로의 진화는 다중 코어 확장성과 메모리 대역폭 확보에 기여했으며, Intel Mesh on Die, AMD Infinity Fabric, ARM CMN 같은 구현이 이를 보여준다. 적절한 인터커넥트 토폴로지 선택은 시스템 성능, 면적, 전력, QoS 간의 균형을 결정하며, CXL과 UCIe 같은 칩 외부 표준과의 결합은 향후 이종 컴퓨팅 시스템의 기반이 된다.