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

发布时间:2024年01月01日

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

1.5 PCI-X总线简介

PCI-X总线仍采用并行总线技术。PCI-X总线使用的大多数总线事务基于PCI总线,但是在实现细节上略有不同。PCI-X总线将工作频率提高到了533MHz,并首先引入了PME(Power Management Event)机制。除此之外,PCI-X总线还提出了许多新的特性。

1.5.1 Split总线事务

Split总线事务是PCI-X总线的一个重要特性。该总线事务替代了PCI总线的Delayed数据传送方式,从而提高了Non-Posted总线事务的传送效率。下面以存储器读为例,说明PCI-X设备如何使用Split总线事务。

PCI-X总线在进行存储器读总线事务时,总线事务的发起方(Requester)使用Split总线事务与总线事务接收端(Completer)进行数据交换,其步骤如下:

(1)Requester向Completer发起存储器读请求事务;

(2)这个存储器读请求在到达Completer之前,可能会经过多级PCI-X桥。这些PCI-X桥使用Split Response周期结束当前总线事务,释放上游PCI总线。之后继续转发这个存储器读请求,直到Completer认领这个存储器读请求总线事务。;

(3)Completer认领存储器读请求总线事务后,会记录Requester的ID号,并使用Split Response周期结束存储器读请求总线事务;

(4)Completer准备好数据后,将重新申请总线,并使用存储器读完成总线事务主动地将数据传送给Requester。在这个完成报文中包含Requester的ID号,因为完成报文使用ID路由而不是地址路由

(5)这些完成报文根据ID路由方式,最终到达Requester。Requester从完成报文中接收数据并完成整个存储器读请求。

与Delayed总线事务相比,Requester获得的数据是Completer将数据完全准备好后,由Completer主动传递的,而不是通过Requester通过多次重试获得的,因此能够提高PCI-X总线的使用效率。PCI-X总线提出的Split事务被PCIe总线继承

1.5.2 总线传送协议

PCI-X总线改变了PCI总线使用的传送协议。目标设备可以将主设备发送的命令锁存,然后在下一个时钟周期进行译码操作。与PCI总线事务相比,PCI-X总线采用的这种方式,虽然在总线的时序中多使用了一个时钟周期,但是可以有效提高PCI-X总线的运行效率

因为主设备通过数据线将命令发送到目标设备需要一定的延时。如果PCI总线频率较高,目标设备很难在一个时钟周期内接收完毕总线命令,并同时完成译码工作。而如果目标设备能够将主设备发出的命令先进行锁存,然后在下一个时钟周期进行译码,则可以有效解决这个译码时间Margin不足的问题,从而提高PCI-X总线的频率。PCI-X 1.0总线可以使用的最高总线频率为133MHz,而PCI-X 2.0总线可以使用的最高总线频率为533MHz,远比PCI总线使用的总线频率高。

除了信号传送协议外,PCI-X总线在进行DMA读写时,可以不进行Cache共享一致性操作而PCI总线进行DMA读写时,必须进行Cache一致性操作。在某些特殊情况下,DMA读写时进行时Cache共享一致性不但不能提高总线传送效率,反而会降低。

此外,PCI-X总线还支持乱序总线事务,即Relaxed Ordering该总线事务被PCIe总线继承。对于某些应用,PCI-X设备使用Relaxed ordering方式,可以有效地提高数据传送效率。但是支持Relaxed Ordering的设备,需要较多的数据缓存和硬件逻辑处理这些乱序,这为PCI-X设备的设计带来了不小的困难。

1.5.3 基于数据块的突发传送

在PCI总线中,一次突发传送的大小为2个以上的双字。一次突发传送所携带的数据越多,突发传送的总线利用率也越高。

而PCI总线的突发传送仍然存在缺陷。在PCI总线中,数据发送端知道究竟需要发送多少字节的数据,但是接收端并不清楚到底需要接收多少数据。这种不确定性,为接收端的缓冲带来了较大的挑战。

为此,PCI-X总线使用基于数据块的突发传送方式,发送端以ADB(Allowable Disconnect Boundary)为单位,将数据发送给接收端,一次突发读写为一个以上的ADB。采用这种方式,接收端可以事先预知是否有足够的接收缓冲,接收来自发送端的数据,从而可以及时断连当前总线周期,以节约PCI-X总线的带宽。在PCI-X总线中,ADB的大小为128B。

由于ADB的引入,PCI总线与Cache相关的总线事务如Memory Read Line、Memory Read Multiline和Memory Write and Invalidate,都被PCI-X总线使用与ADB相关的总线事务替代。因为通过ADB,PCI-X桥(HOST主桥)可以准确地预知即将访问的数据在Cache中的分布情况。

PCI-X总线还增加了一些其它特性,如在总线事务中增加传送字节计数,限制等待状态等机制,并增强了奇偶校验的管理方式。但是,PCI-X总线还没有普及,就被PCIe总线替代。因此,在PC领域和嵌入式领域很少有基于PCI-X总线的设备,PCI-X设备仅在一些高端服务器上出现。因此,本节不对PCI-X总线做进一步描述。事实上,PCI-X总线的许多特性都被PCIe总线继承。

1.6 小结

本章主要介绍了PCI总线的基本组成部件PCI设备如何提交中断请求,以及PCI-X总线对PCI总线的功能增强。本章的重点在于PCI总线的PostedNon-Posted总线事务,以及PCI总线如何使用Delayed传送方式处理Non-Posted总线事务,请读者务必深入理解这两种总线事务的不同。

文章来源:https://blog.csdn.net/phmatthaus/article/details/135313092
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。