Bus Protocols & NUMA
여러 칩과 코어가 소통하는 데이터 고속도로인 버스의 규약과, 프로세서 위치에 따라 메모리 접근 속도가 달라지는 NUMA 아키텍처의 물리적 구조를 다루는 학습 노드입니다.
sys.entry
M
Me
hyunyoun's Blog
posts6 min read
1. Overview
버스 프로토콜 및 NUMA(Bus Protocols & NUMA, BPN)는 개별 코어라는 섬(Island)들을 잇는 거대한 물리적 가교이자, 대규모 컴퓨팅 시스템에서 데이터를 실어 나르는 물류 체계입니다.
학습자는 CPU와 메모리, 주변 기기 사이를 흐르는 전압 신호의 약속인 **버스 프로토콜(Bus Protocol)**의 타이밍과 제어 방식을 익히고, 수백 개의 코어가 공존할 때 발생하는 거리적 제약인 NUMA(Non-Uniform Memory Access) 아키텍처의 역학을 배웁니다. 이는 단순히 선을 연결하는 문제를 넘어, 프로세서가 자신의 로컬 메모리에 접근할 때와 원격 노드의 메모리에 접근할 때 발생하는 물리적 지연(Latency) 차이를 코드 수준에서 인지하고 최적화하는 전략적 설계 능력을 제공합니다.
2. Scope & Boundaries
In-Scope
- Bus Standards: PCI Express, AMBA(AHB/AXI) 등 산업계 표준 버스 물리
- Arbitration Logic: 여러 장치가 동시에 버스를 쓰려 할 때의 경합 해결(Priority/Round-robin)
- NUMA Topologies: 노드(Node), 도메인(Domain) 간의 연결망 물리
- Memory Interconnect: Intel QPI/UPI, AMD Infinity Fabric 등 고속 점대점 링크
Out-of-Scope
- 범용 시리얼 통신(USB, I2C, SPI)의 세부 프로토콜 (02-05 Hardware Interface 영역으로 위임)
- 소프트웨어 단위의 클러스터 네트워킹 (08. Network 영역으로 위임)
Boundaries
- BPN vs. Cache Coherence: CCM이 '데이터의 논리적 일치'를 다룬다면, BPN은 그 일치 신호를 물리적으로 실어 나르는 '전선과 통신 규약'에 집중합니다.
3. Counterexample
- 단순히 "여러 메인보드를 연결한다"는 설명은 BPN 학습이 아닙니다. 왜 특정 PCIe 레인(Lane) 수가 데이터 대역폭을 물리적으로 결정짓는지 수치로 입증할 수 있어야 하고, NUMA 시스템상에서 'First-touch' 정책이 무시되었을 때 왜 원격 메모리 접근(Remote access)으로 인해 시스템 성능이 절반 이하로 급락하는지 물리적 비유를 통해 서술하지 못한다면 BPN의 실무적 통찰이 부족한 것입니다.
4. Prerequisites
- Cache Coherence & MESI (Basic): 코어 간 대화 신호의 종류 이해가 필수입니다. (02-02-02 CCM)
- Integer & Float Representations (Recommended): 데이터 전송 단위(Word size) 지식이 권장됩니다. (02-01-02 IFR)
5. Learning Map
- Pathway Physics: 전압과 클록을 통해 데이터를 비트 단위로 동기화 전송하는 기본 버스 원리를 배웁니다.
- Standard Interfaces: 현대 하드웨어의 혈관인 AXI나 PCIe와 같은 표준 규약을 파악합니다.
- Locality Fragmentation: 코어가 늘어날수록 모든 메모리에 똑같이 접근할 수 없다는 물리적 한계(NUMA)를 인식합니다.
- Topology Tuning: '가까운 메모리'를 먼저 쓰고 코어와 데이터를 묶는 아키텍처 최적화 기법을 완성합니다.
6. Learning Topics
Basic
Core: 시스템 버스와 인터커넥트 (Bus Fundamentals)
- Why to Learn: CPU가 고립된 연산기에서 벗어나 세상(Memory, I/O)과 소통하는 유일한 통로를 이해하기 위함입니다.
- What to Learn:
- 버스 구성: 주소 버스, 데이터 버스, 제어 버스의 물리적 분리
- 동기(Synchronous) vs 비동기 버스: 클록 동기화와 핸드쉐이킹(Handshaking) 물리
- 공유 버스(Shared Bus) vs 점대점(Point-to-point) 링크의 물리적 차이
- How to Learn:
- CPU가 메모리 읽기 명령을 내릴 때 주소 비트가 버스에 실리고 응답 데이터가 돌아오는 타임라인 분석 실습
- 대역폭(Bandwidth) = (클록 주파수 데이터 비트 수) 공식을 통한 전송 속도 계산
- Implement: 마스터와 슬레이브 간의 단순한 핸드쉐이킹 전송 프로토콜을 시뮬레이션하는 코드
Recommended
Core: 중재와 표준 프로토콜 (Arbitration & PCIe)
- Why to Learn: 여러 장치가 동시에 길을 쓰려 할 때의 충돌을 막고, 세계 공통의 부품 연결 규격을 배우기 위해서입니다.
- What to Learn:
- 중재(Arbitration) 방식: 하드웨어 데이지 체인, 독립적 요구 방식 등
- PCI Express (PCIe): 레인(Lane) 기반의 고속 시리얼 전송 구조와 전송 계층 물리
- AMBA AXI/AHB: SoC(System on Chip) 내부 표준 버스의 특징
- How to Learn:
- PCIe 4.0과 5.0 명세를 비교하며 전력 소모 대비 대역폭이 어떻게 수리적으로 향상되었는지 분석
- 암바 AXI 프로토콜의 읽기/쓰기 채널 분리 구조가 파이프라이닝에 주는 이점 분석
- Implement: 우선순위 알고리즘에 따라 버스 점유권을 할당하는 미니 아비터(Arbiter) 로직
Practical
Core: NUMA 아키텍처와 지연성 (NUMA Physics)
- Why to Learn: 코어가 수백 개에 달하는 현대 서버에서 '메모리 거리'로 인한 성능 하락을 수학적으로 통제하기 위함입니다.
- What to Learn:
- NUMA 노드: 독자적인 로컬 메모리를 가진 프로세서 집합
- 로컬 vs 원격 접근 지연 시간(Latency) 차이와 물리적 비용
- CPU 아피니티(Affinity): 작업(Thread)을 특정 물리 코어에 고정하는 이유
- How to Learn:
- 리눅스
numactl --hardware명령을 통해 시스템의 NUMA 토폴로지를 확인하고 거리에 따른 비용 점수 분석 - 노드 간 연결망(Interconnect) 병목으로 인해 전체 처리량이 제한되는 현상 시뮬레이션
- 리눅스
- Implement: 현재 NUMA 노드 정보를 조회하고 데이터를 가장 가까운 노드에 할당하도록 유도하는 메모리 할당 패턴
Advanced
Core: 하이퍼트랜스포트와 인피니티 패브릭 (Advanced Interconnects)
- Why to Learn: 칩 내부와 칩 사이를 잇는 최신 기술들의 수리적 설계를 파악하여 초고성능 시스템을 이해하기 위해서입니다.
- What to Learn:
- Intel QPI/UPI, AMD Infinity Fabric의 데이터 가동 가속 물리
- 메시(Mesh) 토폴로지 vs 링(Ring) 토폴로지의 데드락 방지와 라우팅
- 원격 다이 매핑(Remote Die Mapping) 기술
- How to Learn:
- 멀티 소켓 서버에서 코어 간 통신이 단일 다이(Die) 내부 통신보다 얼마나 물리적으로 느린지 벤치마킹 연습
- 메시 아키텍처에서 패킷이 이동하는 최단 경로 'X-Y 라우팅' 알고리즘 분석
- Implement: 가상의 4x4 그리드 메시 네트워크 상에서 데이터 패킷을 전달하고 홉(Hop) 수에 따른 지연 시간을 계산하는 시뮬레이터
7. Terminology
8. References
Primary
- [P1] CS2023 - AR/Interconnects and Communication — Transport standards.
- [P2] SWEBOK v4.0 - Computing Foundations / System Bus — Hardware interface.
Secondary
- [Mindshare: PCI Express System Architecture] — The technical "Bible" for PCIe.
- [NUMA (Non-Uniform Memory Access) Handbook] — OS and hardware interaction focused.
Industry
- [ARM AMBA AXI and ACE Protocol Specification] — Industry standard for on-chip bus.
- [Intel UPI (Ultra Path Interconnect) Whitepaper] — Real-world server node connection.
9. Final Checklist
Primary
- 주소 버스가 32비트일 때, 하드웨어가 물리적으로 접근 가능한 최대 메모리 용량을 수리적으로 도출할 수 있는 가? (P1)
- '공유 버스' 방식에서 장치 수가 늘어날수록 왜 데이터 전송률이 물리적으로 제한을 받는지 병목 현상을 설명 가능한가? (P1)
Secondary
- NUMA 시스템에서 원격 접근(Remote memory access)이 로컬 접근보다 2~3배 이상 느린 물리적 근거(Hop, Interconnect latency)를 기술할 수 있는 가?
- PCIe의 '시리얼 전송' 방식이 과거의 '병렬 버스' 방식보다 왜 고주파 동작에서 더 안정적인지 스큐(Skew) 문제를 근거로 설명할 수 있는 가?
Industry
- 고성능 데이터베이스 서버 구축 시, NUMA 인식을 통한 'Memory Pinning' 전략이 서비스 응답 속도에 미치는 이점을 제안할 수 있는 가? (SFIA)
- 대규모 서버 클러스터 벤치마킹 시, 특정 코어 그룹에서만 관찰되는 성능 저하가 Interconnect 레이어의 물리적 레이아웃과 관련이 있음을 추론할 수 있는 가?