目前PCIe总线规范,依然在迅猛发展,但并不是所有PCIe设备都支持这些在PCIe总线的最新规范中提及的概念。一般说来,PCIe总线规范提出的新的概念,最先在x86处理器系统的Chipset和Intel设计的PCIe设备中出现。
(6)中断机制
PCI总线上的设备可以通过四根中断请求信号INTA~D#向处理器提交中断请求。与ISA总线上的设备不同,PCI总线上的设备可以共享这些中断请求信号,不同的PCI设备可以将这些中断请求信号“线与”后,与中断控制器的中断请求引脚连接。PCI设备的配置空间记录了该设备使用这四根中断请求信号的信息。
PCI总线还进一步提出了MSI(MessageSignalInterrupt)机制,该机制使用存储器写总线事务传递中断请求,并可以使用x86处理器FSB(FrontSideBus)总线提供的InterruptMessage总线事务,从而提高了PCI设备的中断请求效率。
虽然从现代总线技术的角度上看,PCI总线仍有许多不足之处,但也不能否认PCI总线已经获得了巨大的成功,不仅x86处理器将PCI总线作为标准的局部总线连接各类外部设备,PowerPC、MIPS和ARM[1]处理器也将PCI总线作为标准局部总线。除此之外,基于PCI总线的外部设备,如以太网控制器、声卡、硬盘控制器等,也已经成为主流。
--------------------------------------------------------------------------------
[1]在ARM处理器中,使用SoC平台总线,即AMBA总线,连接片内设备。但是某些ARM生产厂商,依然使用AMBA-to-PCI桥推出PCI总线,以连接PCI设备。
第2章PCI总线的桥与配置
在PCI体系结构中,含有两类桥片,一类是HOST主桥,另一类是PCI桥。在每一个PCI设备中(包括PCI桥)都含有一个配置空间。这个配置空间由HOST主桥管理,而PCI桥可以转发来自HOST主桥的配置访问。在PCI总线中,PCIAgent设备使用的配置空间与PCI桥使用的配置空间有些差别,但这些配置空间都是由处理器通过HOST主桥管理。
第3章PCI总线的数据交换
PCIAgent设备之间,以及HOST处理器和PCIAgent设备之间可以使用存储器读写和I/O读写等总线事务进行数据传送。在大多数情况下,PCI桥不直接与PCI设备或者HOST主桥进行数据交换,PCI桥仅转发来自PCIAgent设备或者HOST主桥的数据。
PCIAgent设备间的数据交换,并不是本章讨论的重点。本章更侧重讲述PCIAgent设备使用DMA机制读写主存储器的数据,以及HOST处理器如何访问PCI设备的BAR空间。本章还使用了一定的篇幅讨论在PCI总线中与Cache相关的总线事务,并在最后一节介绍预读机制。