PCIe Deep Dive
pcie 19
Ch 1: PCIe Fundamentals — 계층 구조와 토폴로지
PCIe 아키텍처의 기초 — point-to-point 직렬 링크, 3-Layer 모델, Root Complex·Switch·Endpoint 토폴로지, Gen 1부터 7.0까지의 진화.
Ch 2: TLP — Transaction Layer Packet
PCIe의 기본 packet인 TLP — 3/4 DW header·5 가족·split transaction·라우팅 3 방식·Producer-Consumer ordering.
Ch 3: Configuration Space — 4 KB ECAM·Capability Linked List
PCIe Configuration Space — 256 byte PCI 영역 + 4 KB Extended·Type 0/1 header·Capability chain·ECAM 메모리 매핑.
Ch 4: BAR & MMIO — Device 자원의 호스트 주소 매핑
Base Address Register — Memory·I/O·64-bit·Prefetchable·size 결정·ReBAR·SR-IOV VF BAR.
Ch 5: Interrupts — INTx·MSI·MSI-X·Interrupt Remapping
PCIe 인터럽트 메커니즘 3가지 — Legacy INTx·MSI 32 vector·MSI-X 2048 vector·IOMMU Interrupt Remapping.
Ch 6: Power Management — D-state·L-state·ASPM
PCIe 전력 관리 — Device D0~D3·Link L0~L3·ASPM·L1 substates·CLKREQ·PME 흐름.
Ch 7: Error Handling — Correctable·Uncorrectable·AER·DPC
PCIe 에러 분류·계층별 처리·AER capability·DPC containment·Linux 복구 callback.
Ch 8: Data Link Layer — DLLP·ACK/NAK·Flow Control·FLIT Mode
PCIe DLL — ACK/NAK·replay buffer·credit-based flow control·LCRC·Gen 6+ FLIT mode.
Ch 9: Physical Layer — LTSSM·Equalization·SerDes
PCIe Physical Layer — LTSSM 11 state·link training timeline·4-phase equalization·TS1/TS2·SKP·encoding 진화.
Ch 10: Linux PCI Basics — Enumeration·Driver Model·sysfs
Linux kernel의 PCIe — boot enumeration·struct pci_dev·driver matching·probe/remove·sysfs entry·ACPI 통합.
Ch 11: DMA·IOMMU — Coherent·Streaming·ATS·PRI·PASID·IOMMUFD
Linux DMA API — coherent·streaming·scatter-gather·IOMMU mapping·ATS·PRI·PASID·SVM·IOMMUFD.
Ch 12: Virtualization I — Pass-through·SR-IOV·VFIO·DPDK·SPDK
PCIe hardware virtualization — SR-IOV PF/VF·VFIO container/group/device·DPDK·SPDK·ACS·FLR.
Ch 13: Virtualization II — vIOMMU·Scalable IOV·VirtIO·IDE·TDISP
Guest 측 vIOMMU·Intel S-IOV·VirtIO·vDPA·live migration·Confidential I/O (IDE·TDISP·CMA-SPDM).
Ch 14: Linux Operations — Hot-plug·AER Recovery·DPC·ARI
PCIe 운영 — pciehp surprise·orderly hot-plug·AER recovery callback chain·DPC integration·ARI 256+ function·EEH.
Ch 15: Tools — lspci·setpci·pcimem·protocol analyzer
PCIe 디버깅 도구 — lspci 전체 옵션·setpci raw access·pcimem BAR R/W·protocol analyzer·debugfs.
Ch 16: Troubleshooting — 실무 시나리오북
Device not visible·link training fail·downgrade·CE storm·hang·ACS group·hot-plug·성능 미달·lane reversal·power budget.
Ch 17: Performance — Bandwidth·Latency·Tuning
PCIe 성능 — theoretical vs effective BW·MaxPayload·MaxReadReq·latency breakdown·NUMA·P2P·ASPM 영향·tuning.
Ch 18: Register Maps — Config Space·Capability 비트 reference
PCIe register reference — Type 0/1 header·PCIe Cap·AER·MSI·MSI-X·SR-IOV·ACS·LTR의 주요 비트 layout.
Ch 19: 고급 기능 — Lane Margining·10-bit Tag·TPH·ACS·L0p
코어 동작 너머의 PCIe spec 기능들 — Lane Margining(신호 마진 측정)·10-bit Tag(outstanding 확장)·TPH(캐시 주입 힌트)·ACS(격리)·L0p(부분폭 저전력)을 실무 관점에서 정리합니다.