《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总线支持多种事务。本节重点介绍存储器读写总线事务与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机制提交中断请求。
更多内容请看下回。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!