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

本文详细介绍了PCI总线的存储器读写事务,包括PCI总线事务的时序、Posted和Non-Posted传送方式、HOST处理器访问PCI设备的机制以及PCI设备读写主存储器的DMA操作。内容涵盖总线事务的控制信号、地址周期、数据周期、数据传送方式以及Delayed传送方式,旨在揭示PCI总线高效数据传输的原理。
摘要由CSDN通过智能技术生成

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

PCI总线使用单端并行数据线,采用地址译码方式进行数据传递,而采用ID译码方式进行配置信息的传递。其中地址译码方式使用地址信号,而ID译码方式使用PCI设备的ID号,包括Bus NumberDevice NumberFunction NumberRegister Number。下文将以11中的处理器系统为例,简要介绍PCI总线支持的总线事务及其传送方式。

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

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

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

PCI总线的配置读写总线事务与HOST主桥与PCI桥相关,因此读者需要了解HOST主桥和PCI桥的详细实现机制之后,才能深入理解这部分内容。本篇将在第2.4节详细介绍这些内容。在下文中,我们假定所使用的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机制提交中断请求。

1.3.1 PCI总线事务的时序

PCI总线使用第1.2节所述的信号进行数据和配置信息的传递,一个PCI总线事务的基本访问时序如13所示,与PCI总线事务相关的控制信号有FRAME#IRDY#TRDY#DEVSEL#等其他信号。

 

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

当一个PCI主设备需要使用PCI总线时,需要首先发送REQ#信号,通过总线仲裁获得总线使用权,即GNT#信号有效后,使用以下步骤完成一个完整PCI总线事务,对目标设备进行存储器或者I/O地址空间的读写访问。

(1)      PCI主设备获得总线使用权之后,将在CLK1的上升沿置FRAME#信号有效,启动PCI总线事务。当PCI总线事务结束后,FRAME#信号将被置为无效。

(2)      PCI总线周期的第一个时钟周期(CLK1的上升沿到CLK2的上升沿之间)为地址周期。在地址周期中,PCI主设备将访问的目的地址和总线命令分别驱动到AD[31:0]C/BE#信号上。如果当前总线命令是配置读写,那么IDSEL信号线也被置为有效,IDSEL信号与PCI总线的AD[31:11]相连,详见第2.4.4节。

(3)      IRDY#TRDY#DEVSEL#信号都有效后,总线事务将使用数据周期,进行数据传递。当IRDY#TRDY#信号没有同时有效时,PCI总线不能进行数据传递,PCI总线使用这两个信号进行传送控制。

(4)      PCI总线支持突发周期,因此在地址周期之后可以有多个数据周期,可以传送多组数据。而目标设备并不知道突发周期的长度,如果目标设备不能继续接收数据时,可以disconnect当前总线事务。值得注意的是,只有存储器读写总线事务可以使用突发周期。

一个完整的PCI总线事务远比上述过程复杂的多,因为PCI总线还支持许多传送方式,如双地址周期、fast back-to-back(快速背靠背)、插入等待状态、重试和断连、总线上的错误处理等一系列总线事务。本篇不一一介绍这些传送方式。

1.3.2 PostedNon-Posted传送方式

PCI总线规定了两类数据传送方式,分别是PostedNon-Posted数据传送方式。其中使用Posted数据传送方式的总线事务也被称为Posted总线事务;而使用Non-Posted数据传送方式的总线事务也被称为Non-Posted总线事务。

其中Posted总线事务指PCI主设备向PCI目标设备进行数据传递时,当数据到达PCI桥后,即由PCI桥接管来自上游总线的总线事务,并将其转发到下游总线。采用这种数据传送方式,在数据还没有到达最终的目的地之前,PCI总线就可以结束当前总线事务,从而在一定程度上解决了PCI总线的拥塞。

Non-Posted总线事务是指PCI主设备向PCI目标设备进行数据传递时,数据必须到达最终目的地之后,才能结束当前总线事务的一种数据传递方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值