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共享一致性不但不能提高总线传送效率,反而会降低。第3.3节将详细讨论与Cache一致性相关的PCI总线事务。

此外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总线的Posted和Non-Posted总线事务,以及PCI总线如何使用Delayed传送方式处理Non-Posted总线事务,请读者务必深入理解这两种总线事务的不同。

1.5 PCI-X总线简介的更多相关文章

  1. PCI配置空间简介

    一.PCI配置空间简介 PCI有三个相互独立的物理地址空间:设备存储器地址空间.I/O地址空间和配置空间.配置空间是PCI所特有的一个物理空间.由于PCI支持设备即插即用,所以PCI设备不占用固定的内 ...

  2. CAN总线简介

    CAN总线简介 个节点,通信波特率为5Kbps~1Mbps,在通信的过程中要求每个节点的波特率保持一致(误差不能超过5%),否则会引起总线错误,从而导致节点的关闭,出现通信异常.

  3. AXI总线简介、ID分析、DMA、Vivado烧录、系统集成

    转载:https://blog.csdn.net/CrazyUncle/article/details/89918030?depth_1-utm_source=distribute.pc_releva ...

  4. [转]AMBA、AHB、APB、ASB总线简介

    [转]http://www.cnblogs.com/zhaozhong1989/articles/3092140.html 1.前言 随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大.数字IC ...

  5. CAN总线简介:如何以编程方式控制汽车

    最近,我正与Voyage公司的朋友合作研究,以实现福特Fusion空调系统(A/C)的编程控制.目前,Voyage公司正努力打造自动驾驶的终极目标:能够以低廉的价格成本和广泛的投放范围,把世界任何地方 ...

  6. SpringCloud Bus消息总线简介

    简介: SpringCloud Bus配合SpringCloud Config使用可以实现配置的动态刷新 SpringCloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了 ...

  7. ATA/SATA/SCSI/SAS/FC总线简介

    ATA/SATA/SCSI/SAS/FC 都是应用于存储领域的总线,在当今的存储系统中,普遍应用的硬盘接口主要有 SATA . SCSI . SAS 和FC , ATA 比较古老,在一些老的低端存储系 ...

  8. AXI总线简介

    AXI全称Advanced eXtensible Interface,是Xilinx从6系列的FPGA开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式.在ZYNQ中继续使用,版本是A ...

  9. Linux usb 1. 总线简介

    文章目录 1. USB 发展历史 1.1 USB 1.0/2.0 1.2 USB 3.0 1.3 速度识别 1.4 OTG 1.5 phy 总线 1.6 传输编码方式 2. 总线拓扑 2.1 Devi ...

随机推荐

  1. 2017-12-30-如何彻底清除现存GIT仓库的大量提交历史

    layout: post title: 2017-12-30-如何彻底清除现存GIT仓库的大量提交历史 key: 20171230 tags: GIT 版本管理 问答 modify_date: 201 ...

  2. 面试中的Https

    在Http协议中有可能存在信息窃听或身份伪装的安全问题.使用HTTPS通信机制可以有效地防止这些问题. Https Http的缺点 通信使用明文(不加密),内容可能会被窃听. 不验证通信方的身份,因此 ...

  3. Android Training Note

    版本适配 Tip:为了能在几个Android版本中都能提供最好的特性和功能,你应该在你的app中使用Android Support Library,它能使你的app能在旧平台上使用最近的几个平台的AP ...

  4. 性能测试监控:Jmeter +InfluxDB +collectd +Grafana

    虚拟机ip 192.168.180.128 Influxdb Influxdb是一个开源的分布式时序.时间和指标数据库,使用go语言编写,无需外部依赖. 它有三大特性: 时序性(Time Series ...

  5. vc++调用web服务传输文件

    bool webService::UploadFile(LPWSTR appKey, LPWSTR fileName, const int len, unsigned char * buff) { t ...

  6. 手把手的SpringBoot教程,SpringBoot创建web项目(一)

    1.引子 大家好,在接下里的半个多小时,我会给大家详细的介绍SpringBoot的基本使用,相信学完这门课程以后,你会对SpringBoot有一个清晰的认识,并且能够运用这门比较新颖的技术开发一些小程 ...

  7. HTML图片上下之间的空隙是什么原因

    在这个问题上,<权威指南>该书第三版第 146 页有明确说到: 如果一个垂直元素没有基线——也就是说,这是一个图像或表单输入元素,或者其它替换元素——那么该元素低端与其父元素的基线对齐.这 ...

  8. python扒取百宝彩网站江西快三当日期号及开奖结果

    一.环境 windows10+python27 二.需求: 1.获取百宝彩网站中,江西快三当日的开奖期号和中奖号码: 2.根据输入期号,输出开奖号码: 三.上代码 #!/bin/env python ...

  9. SDN第二次作业

    作业链接 阅读文章<软件定义网络(SDN)研究进展>,并根据所阅读的文章,书写一篇博客,回答以下问题(至少3个): 为什么需要SDN?SDN特点? 随着网络规模的不断扩大,封闭的网络设备内 ...

  10. python爬虫(3)——SSL证书与Handler处理器

    一.SSL证书问题 上一篇文章,我们创建了一个小爬虫,下载了上海链家房产的几个网页.实际上我们在使用urllib联网的过程中,会遇到证书访问受限的问题. 处理HTTPS请求SSL证书验证,如果SSL证 ...