《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识(9)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识(8)

1.3 PCI总线的存储器读写总线事务

总线的基本任务是实现数据传送,将一组数据从一个设备传送到另一个设备。当然,总线也可以将一个设备的数据广播到多个设备。在处理器系统中,这些数据传送都要依赖一定的规则,PCI总线也不例外。

PCI总线使用单端并行数据线采用地址译码方式进行数据传递,而采用ID译码方式进行配置信息的传递。其中,地址译码方式使用地址信号;而ID译码方式使用PCI设备的ID号,包括Bus Number(总线号)、Device Number(设备号)、Function Number(功能号)和Register Number(寄存器号)。下面以前文中的处理器系统为例,简要介绍PCI总线支持的总线事务及其传送方式。

《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识(9)_第1张图片

由前文中的表可知:

PCI总线支持多种事务。本节重点介绍存储器读写总线事务与I/O读写总线事务。值得注意的是,PCI设备只有在系统软件初始化配置空间之后,才能够被其它主设备访问

PCI设备的配置空间被初始化之后,该设备在当前的PCI总线树上拥有一个独立的PCI总线地址空间,即BAR(Base Address Register)寄存器所描述的空间

处理器与PCI设备进行数据交换、或者PCI设备之间进行存储器数据交换时,都将通过PCI总线地址完成。而PCI设备与主存储器进行DMA操作时,使用的也是PCI总线域的地址,而不是存储器域的地址。此时HOST主桥将完成PCI总线地址到存储器域地址的转换,不同的HOST主桥进行地址转换时使用的方法并不相同。

PCI总线的配置读写总线事务与HOST主桥和PCI桥相关,因此读者需要了解HOST主桥和PCI桥的详细实现机制之后,才能深入理解这部分内容。在下文中,假定所使用的的PCI设备的配置空间已经被系统软件初始化。

PCI总线支持以下几类存储器读写总线事务

(1)HOST处理器对PCI设备的BAR空间进行数据读写,BAR空间可以使用存储器或I/O译码方式。HOST处理器使用PCI总线的存储器读写总线事务I/O读写总线事务访问PCI设备的BAR空间。

(2)PCI设备之间的数据传递。在PCI总线上的两个设备可以直接通信,如一个PCI设备可以访问另外一个设备的BAR空间。不过这种数据传递在PC处理器系统中较少使用

(3)PCI设备对主存储器进行读写,即DMA读写操作DMA读写操作在所有处理器系统中都较为常用,也是PCI总线数据传送的重点。在多数情况下,DMA读写操作结束后将伴随着中断的产生。PCI设备可以使用INTA#、INTB#、INTC#和INTD#信号提交中断请求也可以使用MSI机制提交中断请求

更多内容请看下回。

你可能感兴趣的:(PCI,PCIe)