PCI Express (PCIe) 기술 심층 분석 (Revision 6.4 기준)
PCI Express (PCIe)는 데스크톱부터 엑사스케일 슈퍼컴퓨터까지 모든 컴퓨팅 플랫폼을 아우르는 범용 고속 I/O 인터커넥트입니다.
과거의 병렬 버스 방식(PCI)이 가졌던 한계를 극복하기 위해 등장한 직렬(Serial) 인터페이스인 PCIe는, 소프트웨어 호환성(Load-Store 아키텍처)을 유지하면서도 물리 계층을 끊임없이 진화시켜 왔습니다.
이 글은 가장 최신 사양인 PCI Express® Base Specification Revision 6.4 (June 05, 2025)를 기준으로, Gen 6의 혁신적인 변화와 CXL 지원 메커니즘을 분석합니다.
1. 아키텍처 및 계층 구조 (Layered Architecture)
PCIe는 유연성과 확장성을 위해 명확하게 구분된 3계층 구조를 가집니다.
1.1 트랜잭션 계층 (Transaction Layer)
- TLP (Transaction Layer Packet): 데이터 전송의 기본 단위입니다. 상위 소프트웨어의 요청을 받아
Read,Write,Message등의 트랜잭션 패킷을 생성합니다. - 주소 공간: 단순 메모리 맵핑을 넘어 Memory, I/O, Configuration, Message의 4가지 주소 공간을 지원하여 다양한 시스템 요구사항을 수용합니다.
- 신용 기반 흐름 제어 (Credit-Based Flow Control):
- 송신자가 수신자의 버퍼 여유 공간(Credit)을 알고 있을 때만 데이터를 보냅니다. 따라서 네트워크 혼잡으로 인한 패킷 손실이 발생하지 않습니다.
- Rev 6.4 특징: 자원 효율성을 높이기 위해 공유 흐름 제어(Shared Flow Control) 메커니즘이 최적화되었습니다.
1.2 데이터 링크 계층 (Data Link Layer)
- 신뢰성 보장: TLP에 시퀀스 번호(Sequence Number)와 LCRC(Link CRC)를 붙여 전송합니다.
- Ack/Nak 프로토콜: 수신 측에서 오류를 감지하면(NAK), 송신 측은 해당 패킷을 재전송(Replay)합니다. 이 과정은 하드웨어적으로 처리되므로 매우 빠릅니다.
1.3 물리 계층 (Physical Layer)
- 이중 심플렉스 (Dual Simplex): 송신(Tx)과 수신(Rx) 레인이 분리되어 동시에 데이터를 주고받을 수 있습니다.
- 확장성: 링크 초기화(Training) 시 협상을 통해 x1, x2, x4, x8, x16 레인 폭을 동적으로 결정합니다.
- 인코딩의 진화:
- Gen 1/2: 8b/10b (20% 오버헤드)
- Gen 3/4/5: 128b/130b (약 1.5% 오버헤드)
- Gen 6 (Rev 6.4): 1b/1b PAM4 (사실상 오버헤드 없음, FEC 별도 적용)
2. 핵심 기술 변화: Gen 6의 혁신 (Flit Mode & PAM4)
PCIe 6.0(Base 6.4)은 단순히 속도만 빨라진 것이 아닙니다. 64.0 GT/s라는 속도를 달성하기 위해 전송 방식의 패러다임을 바꿨습니다.
2.1 PAM4 신호 방식 (Pulse Amplitude Modulation 4-levels)
기존 NRZ 방식은 0과 1 두 가지 전압만 사용했습니다. 하지만 주파수를 계속 올리면 신호 감쇄가 심해져 한계에 봉착합니다.
- 해결책: 한 번의 클럭 사이클(UI)에 4가지 전압 레벨(00, 01, 10, 11)을 사용하여 2비트를 전송합니다.
- 결과: 주파수 대역폭을 늘리지 않고도 전송 속도를 2배(32G -> 64G)로 높였습니다.
2.2 Flit Mode (Flow Control Unit Mode)
PAM4는 신호 간격이 좁아져 비트 오류율(BER)이 필연적으로 높아집니다. 이를 해결하기 위해 오류 정정(FEC)이 필수적인데, 가변 길이 패킷에서는 FEC 적용이 어렵습니다.
- 고정 크기 패킷: 64.0 GT/s 이상에서는 모든 데이터를 256바이트 고정 크기의 Flit으로 묶어서 보냅니다.
- 구성: Flit 내부에는 TLP, DLLP뿐만 아니라 FEC(Forward Error Correction) 코드가 포함되어 있어, 별도의 재전송 없이도 비트 에러를 즉시 수정할 수 있습니다.
2.3 L0p 저전력 상태
- 동적 대역폭 조절: Flit Mode에서는 링크가 활성(L0) 상태일 때도 트래픽이 적으면 일부 레인(Lane)만 꺼서 전력을 아낄 수 있습니다. 기존처럼 복잡한 Recovery 과정을 거치지 않아도 되므로 반응 속도가 매우 빠릅니다.
3. CXL (Compute Express Link) 지원: “대체 프로토콜”
PCIe 6.4 사양서는 CXL 프로토콜 자체를 정의하지 않지만, CXL이 PCIe 물리 계층(PHY) 위에서 기생(Piggyback)하여 동작할 수 있도록 문을 열어두었습니다. 이를 ‘대체 프로토콜(Alternate Protocol)’이라고 합니다.
3.1 대체 프로토콜 협상 (Alternate Protocol Negotiation)
부팅 시 링크가 연결될 때(Training), 이 장치가 순수 PCIe인지 CXL인지 어떻게 알 수 있을까요?
- Modified TS1/TS2: 링크 초기화 단계에서 주고받는 훈련 시퀀스(Ordered Sets)를 변형하여 사용합니다.
- Vendor ID: 여기에 Alternate Protocol Vendor ID를 실어 보냅니다. CXL 컨소시엄의 ID가 확인되면, PCIe PHY는 CXL 모드로 동작 모드를 전환합니다.
3.2 PCIe 스펙 내의 CXL 흔적들
- DVSEC: CXL은 PCIe의 표준 확장 기능인 DVSEC (Designated Vendor-Specific Extended Capability)을 통해 CXL 전용 레지스터를 탐색하고 제어합니다.
- Flit 호환: CXL 3.0 이상은 PCIe 6.0의 Flit 구조(256B)와 매우 유사한 포맷을 사용하여, 하드웨어 설계를 재사용하고 지연 시간을 최소화합니다.
요약: PCIe 세대별 진화
| 세대 | 전송 속도 (GT/s) | x16 대역폭 (GB/s) | 인코딩 | 주요 특징 |
|---|---|---|---|---|
| Gen 4 | 16.0 | 64 | 128b/130b | 속도 경쟁 재점화 |
| Gen 5 | 32.0 | 128 | 128b/130b | CXL 1.1/2.0 도입 |
| Gen 6 (Rev 6.4) | 64.0 | 256 | PAM4 / 1b/1b | Flit Mode, FEC, L0p |
PCIe 6.4는 단순한 I/O 인터페이스를 넘어, CXL을 통해 메모리와 가속기를 통합하는 차세대 시스템의 중추(Backbone)로 거듭났습니다. PAM4와 Flit Mode의 도입은 다소 복잡성을 높였지만, AI 시대가 요구하는 대역폭을 충족하기 위한 필수적인 진화였습니다.