← PCIe 상세 목차

Hardware · PCIe detailed manual 07 · Linux v6.18.37

7. 실측, register trace와 Linux log를 하나의 사건으로 합친다

유용한 bring-up 보고서는 scope 캡처, PHY status, DWC register, AER, Linux log가 같은 boot ID와 시간축을 공유합니다. 성공/실패 스크린샷을 나열하는 대신 처음 달라진 checkpoint를 자동으로 찾을 수 있는 형식으로 저장합니다.

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

CHAPTER 07

7. 실측, register trace와 Linux log를 하나의 사건으로 합친다

유용한 bring-up 보고서는 scope 캡처, PHY status, DWC register, AER, Linux log가 같은 boot ID와 시간축을 공유합니다. 성공/실패 스크린샷을 나열하는 대신 처음 달라진 checkpoint를 자동으로 찾을 수 있는 형식으로 저장합니다.

장비와 software evidence의 역할

증거확정할 수 있는 것확정할 수 없는 것추천 저장 형식
Oscilloscoperail, REFCLK, PERST# timing/swingLTSSM/TLP 의미원본 waveform + annotated PNG
TDR/VNAimpedance, insertion/return lossruntime protocol stateS-parameter와 board revision
Protocol analyzerTS/DLLP/TLP/AER 사건SoC 내부 AXI/IOMMU 상태trace + timestamp bookmark
PHY eye/BERlane analog margin과 errorConfiguration routinglane/temp/rate별 CSV
DWC register traceLTSSM, target/current link 정책board analog waveformtimestamped raw hex CSV
Linux dynamic debug함수 순서와 반환값signal integrity 자체boot ID 포함 text log
ftrace/tracepointdriver와 IRQ/DMA 시간 관계PHY analog 원인trace-cmd/perf data
AER counterprotocol error 분류와 증가량근본 물리 원인 단독 확정test 전후 delta

처음 실패 경계를 찾는 판정표

관측PHYLTSSMConfig우선 결론다음 측정
DBI도 읽히지 않음미확정미확정불가core clock/reset/address bankDBI ID/reset value와 bus fault
PHY PLL lock, Detect 고정부분 통과Detect불가receiver detect/PERST#/lanelane별 detect와 endpoint pin
Polling 반복Tx/Rx 동작Polling불가TS lock/clock/SI/lane mapblock lock, TS decode, analyzer
Recovery.Equalization 반복기본 path 통과Recovery불가 또는 불안정Gen3+ margin/presetGen1 비교, lane별 FOM
L0, Vendor ID 0xffff통과L0실패CFG iATU/BDF/routingConfig TLP와 iATU dump
Vendor ID 정상, BAR all-ones통과L0부분 통과resource/decode/powerCommand/BAR/bridge window
DMA에서만 AER통과L0통과address/IOMMU/transactionRequester ID, IOVA, AER
L1SS 복귀에서만 실패초기 통과PM 복귀이전엔 통과refclock/wake/ASPMCLKREQ#, PHY wake latency

REFCLK 구조를 테스트 조건에 포함한다

Common clock은 양쪽 포트가 공통 기준 클록을 사용한다. SRNS는 분리 REFCLK에 SSC가 없는 구조, SRIS는 분리 REFCLK에 독립 SSC를 사용하는 구조다. 양쪽 포트·보드·폼팩터가 실제로 지원하는 모드와 설정을 먼저 확인한다. PCI-SIG의 2013 SRIS ECN 개요는 독립 SSC에 따른 SKP 요구 변경과 해당 구조의 L0s 미지원을 명시한다. 이를 근거로 모든 포트가 SRIS를 지원한다고 결론 내릴 수는 없다.

지원되는 비교 구성에서는 보드·속도·폭·온도를 맞추고 LTSSM 이력, SKP·elastic 상태, PHY lock과 AER 증가량을 같은 조건으로 수집한다. 독립 SSC는 수신 측 클록 편차 처리 요구를 더 크게 할 수 있지만, Polling·Recovery 반복이나 equalization 실패를 SRIS의 필연적 결과로 보지 않는다. 클록 오차 보상과 lane 정렬을 구분하고, 첫 실패 사건을 preset·FOM·BER 검증과 대조한다.

Intel 600 Series PCH 문서처럼 SRIS를 특정 커넥터와 정적 설정에 한정하는 구현도 있다. 그 문서의 편차·지연 값이나 지원 제한을 다른 장치의 규칙으로 복사하지 않는다. 공유 자료인 Deepak Kumar Lnu의 클록 모드 설명은 검증 가설의 출발점이며 실측 결과가 아니다. 저전력에서만 문제가 생기면 L1.2 추가 복귀 지연도 따로 확인한다.

그림 1. 「7. 실측, register trace와 Linux log를 하나의 사건으로 합친다」의 실행 순서왼쪽부터 신호나 데이터를 처리하는 순서를 나타냅니다. 각 단계에서 확인할 항목을 함께 표시했습니다.
01 boot ID 부여
02 scope trigger
03 PHY status sampling
04 LTSSM transition trace
05 Config/AER dump
06 Linux trace
07 성공 boot와 자동 diff
08 첫 divergence 보고

실제 검증 절차

순서실행남길 증거판정 목적
1boot마다 board revision, silicon revision, DWC/PHY version, kernel commit와 DT hash를 기록합니다.재현 환경이 한 행으로 식별서로 다른 조건의 log 혼합 방지
2scope trigger 기준 사건을 PERST# deassert 또는 LTSSM enable로 고정합니다.hardware/software timestamp offset 계산파형과 log를 같은 시간축에 배치
3성공 10회와 실패 10회의 transition/counter를 diff합니다.항상 먼저 달라지는 field마지막 timeout log 대신 첫 원인 후보
4수정 후 동일 조건과 횟수로 재시험하고 AER delta까지 비교합니다.성공률뿐 아니라 error margin 개선우연한 단발 성공 배제

주의Linux에서 'link up' 한 줄이 출력됐다고 해서 PHY margin, Data Link 안정성, Configuration routing, DMA와 power-management 복귀까지 검증된 것은 아닙니다.

SKP 관측은 실제 인코딩과 클록 조건부터 고정합니다

Gen6 지원 장치라는 이름만으로 현재 링크가 PAM4나 FLIT 모드라고 판정하지 않습니다. 실제 협상 속도·폭, 인코딩, FLIT 모드, Common Clock·SRNS·SRIS와 SSC 조건을 먼저 기록합니다. 8 GT/s의 128b/130b SKP 설명을 64·128 GT/s의 1b/1b 구간까지 같은 주기로 확장하지 않습니다. SRNS도 별도 클록의 차이를 처리해야 하므로 SSC가 없다는 사실만으로 SKP가 불필요해지지 않습니다.

L0p의 폭 전환과 SKP 경계는 관련되지만, EIOS가 항상 SKP를 대신한다는 규칙으로 단순화할 수 없습니다. PCI-SIG의 L0p 개념 설명과 Synopsys의 인코딩·클록별 검증 예를 출발점으로 삼고, 실제 설계의 규격 버전과 IP가 노출하는 상태를 대조합니다. 초기 설명 자료를 모든 최종 상태 전이의 규정으로 대신하지 않습니다.

관측 가능한 경우 SKP·SDS·EIOS·EIEOS, LTSSM, lane별 상태와 elastic-buffer 이벤트를 같은 시간축에 놓습니다. 소프트웨어에 노출되지 않는 내부 상태를 AER 로그만으로 복원했다고 하지 않습니다. VIP의 오류 주입·폭 전환 성공은 해당 시뮬레이션 조건의 증거이며 실제 보드의 신호 품질이나 모든 클록 조합의 통과 증거가 아닙니다.

PHY·FEC·재전송·응용 결과를 한 카운터로 합치지 않습니다

Gen6의 64 GT/s PAM4와 256-byte FLIT에서는 Link Up만으로 부하 중 오류 여유를 확인할 수 없습니다. 같은 보드·채널·retimer 구성과 양쪽 포트의 버전, 속도·폭·FLIT 모드, REFCLK·SSC, 온도·전압·트래픽 패턴을 기록한 뒤 관측 결과를 비교합니다. Retimer가 반드시 필요한 구성이라거나 임의 횟수의 반복이 모든 제품의 합격 기준이라는 뜻은 아닙니다.

PHY lane 오류, FEC 정정, CRC 실패와 replay, AER, 응용의 처리량·지연은 서로 다른 관측 지점입니다. 정정된 오류가 모두 AER에 나타나거나, AER가 조용하면 PHY 오류도 없었다고 가정하지 않습니다. 실제 장치가 제공하는 카운터만 사용하고 제공하지 않는 값은 미확인으로 남깁니다. 누적값의 차이를 볼 때도 리셋·링크 재훈련과 측정 구간을 맞춥니다.

PCI-SIG FEC 설명의 설계 목표를 특정 IP의 전체 지연 보증으로 옮기지 않습니다. FEC 정정 지연, 재전송 지연과 애플리케이션 지연을 구별해야 합니다. 검증용 VIP·testbench에서 오류를 주입한 결과도 같은 조건과 기대 상태 전이를 적어야 의미가 있습니다. 여기서는 하드웨어 시험이나 오류 주입을 실행하지 않았습니다.

English summary. Pin the negotiated encoding, clock architecture and transition state. Correlate exposed PHY, FEC, CRC/replay and software observations without treating AER silence or Link Up as a measured channel-margin guarantee.

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

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

Synopsys PCIe 5.0 PHY

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

같은 링크라도 eye를 본 위치가 다르면 결과가 다릅니다

외부 계측기로 본 보드 핀의 파형과 수신기 내부 equalizer 뒤의 eye는 같은 측정면이 아닙니다. AMD AM002의 GTY/GTYP RX margin 설명은 외부 eye가 닫혀 보여도 내부 equalization 뒤에는 열릴 수 있음을 설명합니다. 반대로 외부 파형이 보기 좋다고 Configuration·DMA와 오류 복구까지 정상인 것은 아닙니다.

같은 문서의 통계적 eye scan은 기준 데이터 샘플러와 수평·수직 위치를 옮긴 샘플러의 불일치를 세어 eye 안의 오류 비율 분포를 추정합니다. 이미 알고 있는 송신 패턴과 수신 비트를 직접 비교하는 PRBS 오류 시험과 측정 정의가 다릅니다. 'BER'라는 표제만 보고 두 시험의 분모·오류 정의·관찰 시간을 같다고 놓지 않습니다.

모든 트랜시버 도구가 같은 지표를 제공하지도 않습니다. Vivado 2022.2 UG936의 PS-GTR 흐름은 사용자 데이터 eye scan을 지원하지만 bit/error count가 없어 BER을 제공하지 않는다고 명시합니다. 이 제한을 GTY 전체나 다른 버전의 공통 규칙으로 확대하지 않습니다.

기록에는 보드·PHY·도구 버전, lane·속도·패턴·온도, preset·equalizer 설정, 외부 프로브 위치 또는 내부 측정점, 관찰 시간과 가능한 표본·오류 수를 넣습니다. 같은 실행의 LTSSM 이력과 AER 증가량을 연결하고 서로 다른 설정의 그림을 성공/실패 쌍으로 섞지 않습니다. 이 절은 측정 해석의 기준이며, 실제 계측·BER 시험·규격 적합성 인증을 수행한 결과가 아닙니다.

English summary. State whether an eye is measured at an external probe point or after receiver equalization. Statistical sampler disagreement and a known-pattern error test are different measurements. The cited 2022.2 PS-GTR flow does not provide BER; do not generalize its limitation to every transceiver.