PCIe PHY 내부: 엔드‑투‑엔드 전송 및 수신 경로
발행: (2026년 3월 28일 PM 09:23 GMT+9)
4 분 소요
원문: Dev.to
Source: Dev.to
이 문서는 PCIe 개요와 물리 계층 기본 사항을 바탕으로, 전송 및 수신 경로를 통해 데이터가 어떻게 흐르는지에 대한 엔드‑투‑엔드 관점을 제공합니다. 초점은 트랜잭션 레이어 패킷(TLP)이 고속 직렬 비트 스트림으로 변환되고 수신기에서 재구성되는 과정에 있습니다.
송신기 (예: 루트 컴플렉스가 메모리 쓰기 TLP를 전송)
데이터 링크 레이어
- Seq# + TLP 헤더 + 데이터 + LCRC (병렬 바이트)
물리 계층
프레이밍 / 블록 형성
- Gen1/2: STP + TLP + END (스트림에 삽입된 제어 심볼)
- Gen3+: 데이터가 128‑비트 블록으로 조직됨 (패킷 경계는 추론되며 명시적 STP/END 없음)
스크램블러
- 비트 스트림을 LFSR 시퀀스와 XOR → 전이 밀도와 EMI 감소를 위한 무작위 데이터
인코더 / 블록 인코딩
- Gen1/2 (8b/10b): 8‑비트 → 10‑비트 심볼 (DC 밸런스 + 제어 인코딩)
- Gen3/4/5 (128b/130b): 128‑비트 블록 + 2‑비트 동기 헤더 → 130‑비트 블록
전송 PLL / 클록 생성
- 기준 클록(예: 100 MHz) → 고속 직렬 레이트 생성(예: Gen3의 경우 8.0 GT/s)
직렬 변환기
- 병렬 블록 → 직렬 비트 스트림 (Gen3의 경우 비트 시간 ≈ 125 ps)
차동 드라이버
- Tx⁺ / Tx⁻ 쌍 구동
- 비트는 극성으로 인코딩 (Tx⁺ > Tx⁻ 또는 Tx⁺ < Tx⁻)
- ≈ 800 mVpp 차동(구현에 따라 다름)
직렬 링크
Tx⁺ ──|── Tx⁻ (PCIe 직렬 링크, 예: 8.0 GT/s)
수신기 (예: 엔드포인트가 메모리 쓰기 TLP를 수신)
물리 계층
차동 수신기
- (Rx⁺ − Rx⁻) 감지 → 직렬 비트 스트림 복구(노이즈 억제)
클록 데이터 복구(CDR)
- 데이터 전이에서 클록 추출
- 위상 검출기 → 루프 필터 → VCO
- 유닛 인터벌(UI) 중앙에 맞춰 샘플링
역직렬 변환기
- 직렬 스트림 → 병렬 블록(예: Gen3+에서는 130‑비트 블록)
디코더 / 블록 디코딩
- Gen1/2: 10‑비트 → 8‑비트 심볼
- Gen3/4/5: 2‑비트 동기 헤더 제거 → 128‑비트 스크램블된 데이터 복구
디스크램블러
- 동일한 LFSR 시퀀스와 XOR → 원본 데이터 복원
디프레이밍 / 패킷 재구성
- Gen1/2: STP / END 심볼 감지
- Gen3+: 프로토콜 구조에서 패킷 경계 추론
데이터 링크 레이어
- Seq# + TLP 헤더 + 데이터 + LCRC
- LCRC 검증
- 시퀀스 추적
- DLLP를 통한 ACK/NACK