콘텐츠로 바로가기

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

  1. Pathway Physics: 전압과 클록을 통해 데이터를 비트 단위로 동기화 전송하는 기본 버스 원리를 배웁니다.
  2. Standard Interfaces: 현대 하드웨어의 혈관인 AXI나 PCIe와 같은 표준 규약을 파악합니다.
  3. Locality Fragmentation: 코어가 늘어날수록 모든 메모리에 똑같이 접근할 수 없다는 물리적 한계(NUMA)를 인식합니다.
  4. 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) = (클록 주파수 ×\times 데이터 비트 수) 공식을 통한 전송 속도 계산
  • Implement: 마스터와 슬레이브 간의 단순한 핸드쉐이킹 전송 프로토콜을 시뮬레이션하는 코드

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

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Bus (버스) 여러 개의 하드웨어 장치들이 데이터와 신호를 주고받기 위해 공유하는 물리적 전선 묶음입니다. 기본 연결 통로 Interconnect Channel '운송 수단' 비유로만 오해 P1:CS2023/MemoryHierarchy core
Arbitration 공통의 버스 자원을 쓰려는 여러 장치 중 하나를 선택하여 사용권을 부여하는 물리적 결정 과정입니다. 추천 충돌 제어 Arbiter Priority '협상'으로 오해 주의 P1:CS2023/MemoryHierarchy core
NUMA 각 프로세서가 자신에게 물리적으로 가까운 로컬 메모리를 가짐으로써 접근 속도가 차등화된 구조입니다. 실무 분산 메모리 Local Memory UMA '가상 메모리'와 혼동 P1:CS2023/Multiprocessing core
Lane (PCIe) 데이터의 송수신을 위한 차동 신호 쌍으로 구성된 최소 단위의 고속 시리얼 통로 물리입니다. 심화 대역폭 확장 Throughput x16 '도로 차선' 개념과 완벽 일치 Industry core

8. References

Primary

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 레이어의 물리적 레이아웃과 관련이 있음을 추론할 수 있는 가?