PCIe设备配置空间详解:扩展与能力结构

需积分: 48 511 下载量 46 浏览量 更新于2024-08-10 收藏 4.96MB PDF 举报
"PCIe设备的扩展配置空间-赛灵思zynq7020芯片技术手册" PCI Express(PCIe)是一种高速接口标准,用于连接计算机系统中的外部设备,如显卡、网卡和硬盘等。在PCIe设备中,除了基本的64字节配置空间,还存在扩展配置空间,用于存放更复杂的功能和设备特性。 4.3章节重点讨论了PCIe设备的扩展配置空间。基本配置空间,即0x00到0x3F的地址范围,是所有PCI设备必须支持的,它包含了设备的基本信息和控制寄存器。而在PCI/PCI-X和PCIe设备中,扩展配置空间从0x40到0xFF,这部分主要用于存储MSI(Message Signaled Interrupts)或MSI-X中断机制以及电源管理相关的Capability结构。MSI和MSI-X是高效中断处理机制,取代传统的INTx中断,提高系统性能。 PCIe设备进一步支持从0x100到0xFFF的扩展配置空间,最大可达4KB。这个扩展空间是PCI设备不具备的,它包含了PCIe设备特有的Capability结构,如PCIe Capability结构,用于定义PCIe设备的特性,如速度、数据宽度等。Capability结构是以链表的形式组织,每个结构都有一个唯一的ID和一个指针,指向链表中的下一个结构,最后一个结构的指针为0,形成一个单向链表。 在访问这些配置空间时,x86处理器使用CONFIG_ADDRESS和CONFIG_DATA寄存器来访问0x00到0xFF,而通过ECAM(Extended Configuration Address Space Mapping)方式访问0x000到0xFFF。相反,PowerPC处理器则使用CFG_ADDR和CFG_DATA寄存器来访问整个配置空间。 PCI-X和PCIe规范要求设备必须支持Capability结构,这些结构通过Capabilities Pointer寄存器在基本配置空间中链接。Capability结构链表中包含了各种功能的描述,例如电源管理、中断处理、PCIe总线相关设置等。 PCIe设备的配置空间设计允许设备根据需要支持更多的高级特性,如高效中断处理和电源管理,同时也提供了扩展性,使得不同类型的PCIe设备能根据自身需求定制其配置寄存器,增强了系统的灵活性和兼容性。理解这些配置空间和Capability结构对于理解和调试PCIe设备的硬件问题至关重要。