# Day 001 (2026-07-21, 周一) · 主题: PCIe总线拓扑 ## 📖 学习 (30min) ### PCIe体系结构 - PCIe是点对点串行总线,替代了旧的PCI/PCI-X并行总线 - 分层结构:Root Complex → PCI Bridge → Endpoint - Root Complex集成在CPU中,是CPU和PCIe的桥梁 - 每个PCIe设备有唯一的BDF地址:Bus:Device.Function ### 关键概念 1. **Root Complex (RC)**: 连接CPU和PCIe总线,负责: - CPU地址 ↔ PCIe地址转换 - 生成PCIe配置请求 - 管理中断 2. **PCI Bridge**: 扩展PCIe端口,像网络交换机 - 上游口(Upstream)连RC或其他Bridge - 下游口(Downstream)连设备或其他Bridge 3. **Endpoint**: 最终设备 - 网卡(NIC)、显卡(GPU)、SSD(NVMe) - 通过BAR(Base Address Register)暴露寄存器 4. **BDF地址**: Bus:Device.Function - Bus: 8位,最多256条总线 - Device: 5位,每条总线最多32个设备 - Function: 3位,每个设备最多8个功能 ## 🔧 动手 (60min) ### 1. 获取本机PCIe拓扑 ```bash root@ubuntu:~# lspci -tv -[0000:00]-+-00.0 Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge +-01.0-[01]-- +-07.0 Intel Corporation 82371AB/EB/MB PIIX4 ISA +-07.1 Intel Corporation 82371AB/EB/MB PIIX4 IDE +-07.3 Intel Corporation 82371AB/EB/MB PIIX4 ACPI +-07.7 VMware Virtual Machine Communication Interface +-0f.0 VMware SVGA II Adapter +-10.0 Broadcom / LSI 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI +-11.0-[02]--+-00.0 VMware USB1.1 UHCI Controller | +-01.0 Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) | +-02.0 VMware USB2 EHCI Controller | +-03.0 VMware SATA AHCI controller | \-04.0 Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) +-15.0-[03]----00.0 VMware VMXNET3 Ethernet Controller +-15.1-[04]-- ... ``` **拓扑分析**: - 这是VMware虚拟机环境 - 主桥:Intel 440BX/ZX/DX (很老的芯片组,1998年) - 总线00: Root Complex + 传统PCI设备 - 总线01: 空桥(可能是PCIe扩展槽) - 总线02: PCI Bridge 00:11.0 下游,连接4个设备 - 总线03: PCI Bridge 00:15.0 下游,连接VMXNET3网卡 ### 2. 读取网卡详细信息 (02:01.0) ```bash root@ubuntu:~# lspci -vvv -s 02:01.0 02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01) DeviceName: Ethernet2 Subsystem: VMware PRO/1000 MT Single Port Adapter Physical Slot: 33 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR-