100GbE 네트워크의 숨겨진 비밀: PCIe, DMA, DDIO, SDCI

by DD
1주 전
조회수 2

PCIe를 통한 I/O 장치와 CPU 간의 통신 방식 및 PCIe Gen별 성능 비교

MMIO(Memory Mapped I/O)를 활용한 장치 제어와 DMA(Direct Memory Access)를 통한 데이터 전송 방식 설명

Intel DDIOAMD SDCI와 같은 캐싱 기술을 활용한 성능 최적화 기법 소개

커널 바이패스(Kernel Bypass)하드웨어 오프로드(Hardware Offloads)를 통한 고속 네트워킹 구현

PCIe 아키텍처와 성능 분석

본문에서는 고속 네트워킹을 위한 PCIe(Peripheral Component Interconnect Express)의 중요성을 강조하며, PCIe 1.0부터 5.0까지의 세대별 대역폭(Bandwidth)인코딩 오버헤드(Encoding Overhead)를 상세히 비교한다. 특히, PCIe는 패킷 기반 프로토콜이므로 헤더 오버헤드가 존재하며, 세대별로 차이가 있음을 설명한다. PCIe Root Complex를 통해 CPU와 연결되는 PCIe 장치들은 각자의 레인(Lane)을 통해 통신하며, 고속 통신을 위해서는 모든 구성 요소가 이를 지원해야 한다.

MMIO와 DMA를 활용한 데이터 접근 방식

I/O 장치와 CPU 간의 데이터 교환을 위해 MMIO(Memory Mapped I/O)DMA(Direct Memory Access)가 사용된다. MMIO는 CPU가 I/O 장치의 레지스터/메모리에 접근하기 위해 주소 공간을 공유하는 방식이며, DMA는 CPU 개입 없이 I/O 장치가 직접 메모리에 접근할 수 있도록 한다. DMA는 CPU의 부하를 줄여주지만, 캐시 일관성(Cache Coherency) 문제로 인해 RMW(Read-modify-write) 사이클이 발생할 수 있다. 따라서 고성능 NIC는 캐시라인 정렬을 통해 이러한 문제를 완화한다.

Intel DDIO와 AMD SDCI를 활용한 캐싱 최적화

인텔의 DDIO(Data Direct I/O)는 LLC(Last Level Cache)를 DMA의 주 타겟으로 삼아 캐시 효율을 높인다. DDIO는 DMA 읽기 시 캐시를 유지하고, DMA 쓰기 시 LLC에 직접 데이터를 기록한다. AMD의 SDCI(Smart Data Cache Injection)는 특정 데이터를 코어의 L2 캐시에 직접 배치하여 L3 캐시를 우회한다. 이러한 기술들은 지연 시간(Latency)을 줄이고, 고속 네트워킹 성능을 향상시키는 데 기여한다.

커널 바이패스와 하드웨어 오프로드

고성능 NIC는 커널 바이패스(Kernel Bypass)를 통해 사용자 공간에서 직접 패킷을 처리하여 오버헤드를 줄인다. 또한, 체크섬 오프로드(Checksum Offloading), TSO(TCP Segmentation Offload), FPGA 기반의 하드웨어 오프로드를 통해 CPU의 부담을 덜어준다. 이러한 기술들은 10Gbps/50Gbps 이상의 네트워크 속도를 지원하며, 고속 네트워킹 환경에서 필수적인 요소로 자리 잡고 있다.

High Speed Networking: The View from the Machine

댓글 0

첫 번째 댓글을 남겨보세요!