Github Page

10/28/2025

PCIe 이해 와 USB 비교

1. PCIe 의 기본 구조 
.
PCIe Layer 전체 구조 와 각 Layer 특성을 간단히 알아본 후, USB 와 같이 비교를 해보자 
일단 1차 버전으로 기본을 이해하고, USB 와 지속적으로 비교하면서 업데이를 하겠다. 

  • PCIe Layer 구조 
Ethernet 가 다르게 Layer 3개이며, USB  Layer 비슷하다고 생각되어진다.
이 부분은 나중에 다시 다루도록 하겠음 




  • PCIe 각 Layer 관련 설명
Wiki만 봐도 대충 이해는 갈 듯 하다. 


1.1  PCIe 와 USB 비교 

PCIe 와 USB 가 서로 비슷하므로, 관련 부분들을 일단 비교를 해보고 차이점을 알아보도록 하자. 

  • PCIe 와 USB 비교  
구분 PCI Express (PCIe) USB (특히 USB 3.x 기준) 차이점
Topology Point-to-Point
(Switch fabric)
Tiered Star
(Host + Hub + Device)
PCIe P2P  
USB Master-Slave 
Application Layer SW에서 보낸 Memory/Registeer 접근 요청을 처리
(e.g. Memory Read/Write, I/O, Config)
Host 에서 Description 기반의 
Class Driver 제공 및 별도 정의해서 구현가능
(e.g. Mass Storage, HID 등)
상위 연결 후 (URB)을 통신 
PCIe 자동 협상+동기화
USB Host Control 중심
Transaction Layer
(TL)
Packet 단위로 Request/Completion 처리
주소 기반(Load/Store)
USB Transfer Types
(Control/Bulk/Interrupt/Isochronous)
Transaction 을 Device 정의
PCIe는 Memory Access 중심
USB는 EndPoint 중심
Data Link Layer
(DLL)
Ack/Nak, 시퀀스 번호, CRC, 재전송 Link Command 패킷
(Flow Control, Link Management 등)
PCIe는 신뢰성(ACK/NACK) 보장
USB는 최소 Overhead
Physical Layer
(PHY)
8b/10b 또는 128b/130b
CDR, EQ(CTLE/DFE), PIPE
8b/10b(USB 3.0)
128b/132b(USB 3.1)
LFPS,
PHY PIPE
둘 다 High Speed SERDES PHY사용
둘 다 Channel 특성/속도 협상방식 다름



  • USB 관련자료 
PCIe 와 USB 간단히 비교를 해보고, 이해하자. 

  • TI USB 3.2 정보 
  1. 6  Physical Layer  --> 전체구조 파악 
  2. Section 6.9 Low-Frequency Periodic Signaling (LFPS)   -> 기능확인 (Sequence)

개인생각 
내 개인 생각이지만, 추후 CXL를 잘 사용하기 위해서는 PCIe Switch/CXL Switch 와 USB Host 연결이 중요할 듯하다.
이유는 둘 다 고속 Serial Interface 이면서, 잘 이용한다면, CXL 의 확장으로 쉽게 USB 와 연결하여 
사용할 것 같다. 
USB의 경우 역사가 깊어 Protocol 안전성 과 관련 Host Stack 이미 구현되어져 있는 게 많다. 
더불어 USB의 장점이 Device에서 Transfer Type을 설정하고, 기술하여 마음대로 전송도 가능하므로, 확장도 쉽다. 




1.2 PCIe Version 따른 개별 Layer 변화  

각 용어가 몰라도 좋으니, 그러려니 하고 넘어가도록 하며 각 변화 사항만 파악하도록 하자.

  • PCIe Version 별 각 Layer 변화 
PCIe Version Transaction Layer Data Link Layer Physical Layer (PCS / PMA / PIPE)
1.0 / 1.1 • Basic TLP (Memory, I/O, Config)
• No Atomic Ops / FLIT concept
• Basic ACK/NAK mechanism
• 8-bit Sequence Number
8b/10b Encoding (2.5 GT/s)
No standardized PIPE (Vendor-specific)
• PMA = Basic SerDes
2.0 • Adds Virtual Channels (QoS)
• Transaction Layer split enhancement
• LCRC reliability improved
• Replay buffer efficiency improved
PIPE introduced (v3.0)
5 GT/s signaling
• Same 8b/10b encoding
• PHY–MAC separation begins
3.0 • Atomic Ops added
• TLP Compression (Header Reduction)
• 16-bit Sequence Numbers
• DLLP optimization for higher throughput
128b/130b Encoding (8 GT/s)
PIPE 4.x
• Equalization / Training introduced
• Advanced LTSSM states
4.0 • Enhanced Ordering Rules
• Improved Completion Handling
• Retry buffer + Replay Timer improvement PIPE 5.1
16 GT/s, improved EQ tuning
• Enhanced Link Training sequences
• Jitter tolerance improved
5.0 • No major logical change
• Mainly supports higher bandwidth TLP
• Optimized flow control timing PIPE 6.1
32 GT/s, retimer interoperability
• Power Management enhancements (L1.1/L1.2)
6.0 FLIT-based TLP (Fixed-Length Packet) ✓
Forward Error Correction (FEC) added
Replay protocol removed (replaced by FEC)
• Simplified ACK logic
PAM-4 signaling (64 GT/s)
PIPE 6.2+
FEC engine in PHY
• LTSSM updated for FLIT and PAM-4 link training
7.0 (draft) • Continuation of FLIT architecture • TBD minor optimization PIPE 7.0 (planned)
PAM-4 extended, improved EQ/FEC interaction
• Anticipated 128 GT/s signaling


  • 주요특징정리
Transaction Layer: 3.0부터 Atomic Ops, 6.0에서 FLIT 구조로 근본적 변화
Data Link Layer: 6.0에서 FEC 도입으로 ACK/NAK 메커니즘 단순화
Physical Layer:
2.0 → PIPE 등장
3.0 → 128b/130b 전환
6.0 → PAM-4 + FEC로 신호방식 자체 변화


2. PCIe Layer 

상위 Layer 기반으로 각 기능들을 간단히 설명하도록 하겠으며, 아래와 같이 1개의 Serial 통신이 생성이 되어진다. 


2.1 Transaction Layer 


A.역할  

CPU, DMA, 또는 다른 SoC 내부 논리에서 발생한 메모리 접근, 
I/O Access, Message Transaction을  Packet(TLP, Transaction Layer Packet)으로 생성하는계층.

B.기능정리
  1. Memory Read / Write, I/O Read / Write, Configuration Read / Write 등의 Trasaction 정의
  2. 각 요청(Request)과 응답(Completion) 관리
  3. Address Translation, BAR (Base Address Register) Mapping
  4. MSI/MSI-X Interrupt 관리
  5. Flow Control 관리 
    1. Credits 방식
B.세부사항  
  1. 실제 PCIe Core (Controller) 의 대부분의 로직이 여기에 있음
  2. 펌웨어/드라이버는 주로 Transaction Layer 레벨에서 동작 (메모리 접근, DMA 제어 등)
  3. SW ↔ HW 인터페이스는 Configuration Space (PCI Config) 를 통해 이루어짐

2.2 Data Link Layer


A. 역할

Transaction Layer에서 내려온 TLP에 대해 신뢰성을 보장하고, ACK/NACK 기반의 재전송 메커니즘을 수행한다.
Network 치면, TCP와 유사할 것 같다. 
즉, “Reliable Delivery”를 담당

B. 기능정리
  1. Sequence Number 관리 (순서 보장)
  2. LCRC (Link CRC) 계산 및 검증
  3. ACK / NACK 프로토콜 (Data Link Layer Packet, DLLP 사용)
  4. Flow Control Credit 업데이트 (DLLP 통해 전송)

C. 주요패킷 종류
  1. TLP (Transaction Layer Packet): 실제 데이터
  2. DLLP (Data Link Layer Packet): 제어 정보 (ACK/NACK, Flow Control 등)

B. 세부 사항  
  1. TLP이 손상되거나 순서가 어긋나면 재전송 요청
  2. PHY 신호 오류는 Data Link Layer에서 검출하여 자동으로 복구
  3. 한 Link마다 독립적으로 동작 
    1. (ex. Root ↔ Endpoint, Switch ↔ Device)

2.3. Physical Layer


A. 역할

Data Link Layer에서 전달 받은 데이터 패킷을 직렬화(Serialize) 하여 실제 신호로 전송하고, 수신 데이터를 복원(Deserialize) 한다.
전송 매체는 AC-Coupled Differential Pair (Tx/Rx Lane) 로 구성된다.
중간에 Bypass Capacitor 사용하여 ,즉 AC로 전송을 하는 구조이다.  

B. 하부구조

A. PCS (Physical Coding Sublayer)
  1.  Encoding/Decoding
    1. 128b/130b (Gen3 이상)
    2. 8b/10b (Gen1/2)
  2. Scrambling/Descrambling (DC Balance 유지)
  3. Lane Alignment, Symbol Lock
  4. SKP Ordered Set 삽입 (Clock 보정용)
  5. PIPE 인터페이스
B. PMA (Physical Medium Attachment)
  1. Serializer / Deserializer (SerDes)
  2. Equalizer (CTLE, DFE 등)
  3. Clock Data Recovery (CDR)
  4. Transmit Driver / Receiver Front-End
  5. Eye Diagram, Pre-emphasis 등 실제 아날로그 신호 특성 조정

  • PHY 의 PCS vs PMA 비교 
구분 PCS (Physical Coding Sublayer) PMA (Physical Medium Attachment)
성격 Digtal Logic Analog/ Mixed-signal
주요 기능 • Encoding/Decoding (8b/10b, 128b/130b)
• Scrambling
• Alignment
• LTSSM
• SerDes
• Equalization
• CDR
• Voltage swing
주요 위치 Controller Side Channel(Lane) Side
주요 변화 PIPE 3.0~6.0 사이 인코딩 변화 PCIe 3.0부터 EQ·CDR 고도화


  • Serializer / Deserializer (SerDes)
  1. Controller에서 오는 병렬 데이터를 직렬 신호로 변환 (TX)
  2. 수신 시 반대로 직렬 데이터를 병렬로 복원 (RX)
  3. PCIe x1, x4, x8, x12, x16, x32 Lane  동작

  • Equalization (Channel 보정)
  1. 신호 감쇠, 반사, ISI(inter-symbol interference)를 보정
  2. 송신단 (Tx Pre-emphasis / De-emphasis)
  3. 수신단 (Rx CTLE, DFE) 조합으로 수행
  4. PCIe 3.0 이후에서 매우 중요해짐

  • CDR (Clock and Data Recovery)
  1. 수신 신호에서 클록을 복원하여 비트 타이밍 동기화 수행
    1. Inverse Filter를 사용하여 복원 
  2. Eye Diagram을 기반으로 샘플링 포인트 결정

  • Electrical Interface
  1. 전압 스윙, 신호 스펙트럼, 임피던스 매칭, EMI 최소화
  2. 실제 Package Pin / PCB Trace/ Connecter / Cable과 직접 연결

3. TI 와 AMD  PCIe Controller 분석 


TI PCIe Controller

AMD PCIe Controller 


3.1 USB-DRD(Dual Role Data) 정리  

USB의 경우, Host 와 Device 즉 Master / Slave 구조라서 각 Role 의 역할이 정해져 있으며, 협상을 통해 이를 정하는 기능이 존재했다. 
그것이 기존의 OTG이고, USB Type-C  기존 OTG에서 확장된 개념으로 생각하면 될 듯하다. 

  • i.MX6 OTG/DRD(Dural Role Data) 이해 
USB OTG(On The Go) 이해해야, DRD(Dural Role Data)  이해가 가능 

  • USB 3.0 이후 OTG 와 DRD 차이점 
USB OTG 차이를 생각하면, 단지 Host / Device Role 구분 뿐만 아니라,
USB-PD(Power Delivery)가 Source/ Sink 구분되어 
기존의 USB Host에서 만 전원을 제공하던 개념이 깨진 것이 핵심일 것 같다. 

  • USB-DRD(Dual Role Data)
AMD USB 3.2 DRD(Dual Role Data) Controller