← PCIe 상세 목차

Hardware · PCIe detailed manual 05 · Linux v6.18.37

5. 세대 전환과 equalization을 phase별로 분해한다

Gen1/Gen2에서 안정적이지만 Gen3 이상에서 Recovery가 반복되면 receiver detect보다 equalization과 channel margin을 봅니다. target speed, 실제 negotiated speed, 각 lane의 preset/coefficient와 FOM을 같은 표로 기록합니다.

상세 표
4
검증 행
27
절차
4 checkpoints
기준
PCIe · Linux v6.18.37

CHAPTER 05

5. 세대 전환과 equalization을 phase별로 분해한다

Gen1/Gen2에서 안정적이지만 Gen3 이상에서 Recovery가 반복되면 receiver detect보다 equalization과 channel margin을 봅니다. target speed, 실제 negotiated speed, 각 lane의 preset/coefficient와 FOM을 같은 표로 기록합니다.

PCIe 세대별 bring-up 관점

세대전송률line encoding/방식추가로 민감해지는 항목최소 검증
Gen12.5 GT/s8b/10b기본 연결, polarity, lane mapx1 L0와 config read
Gen25.0 GT/s8b/10bchannel loss와 clock margindirected speed change 안정성
Gen38.0 GT/s128b/130blink equalization, preset/coeffphase 완료와 BER/AER
Gen416.0 GT/s128b/130bchannel budget, retimer, Tx/Rx tuninglane별 margin과 Recovery 빈도
Gen532.0 GT/s128b/130b더 작은 eye, jitter, package/connector32GT/s compliance와 lane margining
Gen664.0 GT/sPAM4/FLIT modeFEC/FLIT, PAM4 margin해당 controller/PHY가 실제 지원할 때 별도 절차

Gen6·7: PAM4 신호와 FLIT 오류 처리를 구분한다

PCIe 6.0의 64 GT/s와 7.0의 128 GT/s는 PAM4를 사용하며, 두 세대의 FLIT 구성은 동일한 256바이트다. 비-FLIT 링크의 Data Link·크레딧 설명과 구분해서 읽어야 한다. 한 FLIT에 여러 패킷을 담거나 한 패킷을 여러 FLIT에 나눌 수 있으므로, TLP 영역 236바이트가 매번 유효 애플리케이션 데이터 236바이트라는 뜻은 아니다.

영역바이트역할과 범위
TLP236Transaction Layer Packet 배치 영역
DLP6Data Link Payload
CRC8앞의 TLP+DLP 242바이트에 대한 64비트 오류 검출 정보
FEC6전체 FLIT을 보호하는 오류 교정 정보

PAM4 수신에서는 오류가 연속해서 생길 수 있다. FEC로 교정하고 CRC로 남은 오류를 검출한 뒤, FLIT 단위 ACK/NAK와 replay로 재전송을 처리한다. FEC는 모든 오류를 고친다는 보장이 아니며, CRC와 replay도 별도 역할이다. PCI-SIG의 Gen6 기술 설명은 CRC 범위와 FEC의 전체 FLIT 보호를 구분한다.

x16 구성에서 Gen6의 256 GB/s와 Gen7의 512 GB/s는 양방향 합계 이론치다. 단방향 NVMe 읽기나 GPU DMA의 실측 처리량으로 해석하면 안 된다. FLIT 충전율, TLP 크기, 프로토콜 오버헤드, 재전송과 시스템 경로가 유효 전송량을 줄인다. Gen7의 속도 증가는 FLIT 필드 크기를 늘린 결과가 아니다. 수치와 동일한 필드 구성은 PCI-SIG Gen6 FAQ와 Gen7 기술 Q&A에서 확인할 수 있다.

이 절의 FLIT 형식을 기존 Gen3~5 DWC bring-up 절차에 그대로 대입하지 않는다. 컨트롤러·PHY·상대 장치의 세대 및 FLIT 지원을 먼저 확인하고, 협상된 속도·폭, 물리 오류, FLIT 교정·재전송 관찰값을 해당 구현 문서에 맞춰 나눈다. 검증되지 않은 제조사 레지스터나 고정 지연 시간을 추정하지 않는다. 함께 읽을 공유 자료는 Laxman Kumar의 FLIT 개요이며, 위 필드와 오류 처리 설명의 기준은 PCI-SIG 공개 자료다.

Gen3+ link equalization phase

Phase주요 목적누가 무엇을 결정하나남길 값실패 해석
Phase 0equalization 진입과 양 끝 준비upstream/downstream portphase request/statuscapability/진입 조건
Phase 1상대 transmitter preset 초기 설정receiver가 요청, transmitter가 적용requested/applied presetPIPE preset 적용 경계
Phase 2한 방향 transmitter 최적화receiver 평가와 coefficient/preset updateFOM, coeff statuschannel/receiver adaptation
Phase 3반대 방향 transmitter 최적화반대 port receiver가 평가lane별 completion특정 방향 SI/retimer
Completerate에서 정상 traffic 전환양쪽 portequalization complete bit, current speedstatus는 complete인데 Recovery가 반복되면 BER 확인

lane별 기록해야 할 tuning evidence

항목Controller/PHY 위치값의 의미주의점
Tx presetcontroller request/PHY Tx정의된 preset 조합숫자가 같아도 PHY implementation은 다를 수 있음
Tx coefficientpreset-to-coeff 또는 direct updatecursor/pre/post cursor 계수limit/status handshake 확인
Rx CTLEPHY고주파 보상고정값 복사보다 adaptation 결과
Rx DFE tapsPHYpost-cursor ISI 보상PVT와 lane별 차이
FOMreceiver/controller interface상대적 quality metricvendor scale을 BER로 직접 환산하지 않음
Eye/marginPHY diagnostic/lane marginingtime/voltage 여유traffic/pattern/temperature 조건 기록
Correctable AERcontroller/AERBad DLLP, Replay 등누적 counter는 test 시작 전 baseline 필요
Recovery countLTSSM historyruntime retrain 빈도L0 진입 한 번만으로 안정 판정 금지
그림 1. 「5. 세대 전환과 equalization을 phase별로 분해한다」의 실행 순서왼쪽부터 신호나 데이터를 처리하는 순서를 나타냅니다. 각 단계에서 확인할 항목을 함께 표시했습니다.
01 Gen1 L0
02 target speed 설정
03 directed speed change
04 Recovery.Speed
05 Equalization Phase 0
06 Phase 1
07 Phase 2/3
08 target Gen L0

실제 검증 절차

순서실행남길 증거판정 목적
1max-link-speed를 Gen1로 제한하고 cold/warm boot를 반복합니다.config/DMA까지 기본 path 안정equalization 이전 문제를 제거
2한 세대씩 올리며 lane별 state와 AER delta를 측정합니다.처음 실패하는 generation 확인channel margin 임계점 식별
3width를 x1부터 늘려 특정 lane의 민감도를 찾습니다.실패를 유발하는 lane maskpackage/board/connector lane 분리
4온도와 supply corner에서 같은 test를 반복합니다.PVT별 speed/width/BERroom temperature 단발 성공을 배제

주의preset 숫자 하나를 '정답값'으로 공개하는 것은 의미가 없습니다. 같은 DWC controller라도 PHY release, package, channel, endpoint와 온도에 따라 최적값이 달라집니다.

Selective NAK는 FLIT와 순서 상태를 함께 봅니다

FLIT 재전송의 단위와 TLP 경계는 일치하지 않을 수 있습니다. 하나의 TLP가 여러 FLIT에 걸치거나 여러 TLP가 함께 실릴 수 있으므로, 애플리케이션 요청 하나와 재전송 하나를 같은 것으로 세지 않습니다. 정상 전송의 암시적 순서 상태와 재전송 중 명시적 순서 번호가 쓰이는 경우를 구분해야 하며, FLIT에는 순서 관리가 없다고 설명하면 안 됩니다.

PCI-SIG Gen7 자료 15쪽의 선택적 재전송 예는 단일 오류를 처리하다 추가 오류로 Standard NAK 경로로 전환하는 모습을 보여 줍니다. Selective와 Standard는 단순히 이름만 다른 동일 재전송이 아닙니다. Payload가 없는 NOP-only FLIT는 그 예에서 순서 번호를 소비하거나 replay buffer에 저장·재전송하는 데이터 FLIT와 구별됩니다. NOP를 포함한 모든 FLIT를 같은 재전송 개수로 계산하지 않습니다.

검토할 상태는 송신 replay buffer, 수신 재정렬 상태, 연속 오류와 재시도 전환, 버퍼가 찬 조건, payload와 NOP-only 구분입니다. PHY의 SKP Ordered Set을 NAK 필드로 해석하지 않습니다. 이 자료의 도표는 프로토콜 동작 설명이며 특정 장치의 데이터 손상 재현이나 대역폭 개선 측정값이 아닙니다.

전송률이 두 배여도 Nyquist 주파수는 같을 수 있습니다

Gen5 32 GT/s NRZ와 Gen6 64 GT/s PAM4는 모두 32 GBd 심볼률에 대응하며 Nyquist 주파수는 16 GHz입니다. Gen7 128 GT/s PAM4는 64 GBd와 32 GHz에 대응합니다. 이 값은 채널 대역의 절대 상한이나 측정기의 충분 조건이 아닙니다. PCI-SIG Gen7 세대 비교표 32쪽에서 전송률·변조·주파수 항목을 각각 읽어야 합니다.

PAM4는 네 레벨 사이에 세 eye가 생깁니다. 같은 전체 전압 범위를 사용한다면 NRZ처럼 두 레벨 사이의 한 eye에 모든 여유가 있는 것이 아닙니다. Eye 높이·폭뿐 아니라 레벨 선형성, jitter, 오류율과 equalization 조건을 함께 봅니다. Nyquist 주파수가 Gen5와 같다는 사실만으로 기존 채널의 Gen6 마진이 충분하다고 결론 내릴 수 없습니다.

English summary. Replay follows FLIT sequence state, not application request boundaries. Selective replay can transition to standard replay. Compare symbol rate, three PAM4 eyes and measured channel conditions separately from the transfer-rate label.

공개적으로 다시 확인할 수 있는 자료

공개되지 않은 제조사 레지스터나 제품별 오프셋은 추측하지 않았습니다. 아래의 제조사 자료, 아키텍처 문서, Linux v6.18.37 원본으로 확인할 수 있는 내용만 다뤘습니다.

Synopsys PCIe 5.0 PHY

PHY가 담당하는 SerDes, equalization, lane margining과 진단 기능의 공개 범위