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共享一致性不但不能提高总线传送效率,反而会降低。第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总线简介的更多相关文章
- PCI配置空间简介
一.PCI配置空间简介 PCI有三个相互独立的物理地址空间:设备存储器地址空间.I/O地址空间和配置空间.配置空间是PCI所特有的一个物理空间.由于PCI支持设备即插即用,所以PCI设备不占用固定的内 ...
- CAN总线简介
CAN总线简介 个节点,通信波特率为5Kbps~1Mbps,在通信的过程中要求每个节点的波特率保持一致(误差不能超过5%),否则会引起总线错误,从而导致节点的关闭,出现通信异常.
- AXI总线简介、ID分析、DMA、Vivado烧录、系统集成
转载:https://blog.csdn.net/CrazyUncle/article/details/89918030?depth_1-utm_source=distribute.pc_releva ...
- [转]AMBA、AHB、APB、ASB总线简介
[转]http://www.cnblogs.com/zhaozhong1989/articles/3092140.html 1.前言 随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大.数字IC ...
- CAN总线简介:如何以编程方式控制汽车
最近,我正与Voyage公司的朋友合作研究,以实现福特Fusion空调系统(A/C)的编程控制.目前,Voyage公司正努力打造自动驾驶的终极目标:能够以低廉的价格成本和广泛的投放范围,把世界任何地方 ...
- SpringCloud Bus消息总线简介
简介: SpringCloud Bus配合SpringCloud Config使用可以实现配置的动态刷新 SpringCloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了 ...
- ATA/SATA/SCSI/SAS/FC总线简介
ATA/SATA/SCSI/SAS/FC 都是应用于存储领域的总线,在当今的存储系统中,普遍应用的硬盘接口主要有 SATA . SCSI . SAS 和FC , ATA 比较古老,在一些老的低端存储系 ...
- AXI总线简介
AXI全称Advanced eXtensible Interface,是Xilinx从6系列的FPGA开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式.在ZYNQ中继续使用,版本是A ...
- 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 ...
随机推荐
- adb命令介绍与使用
DB的概念 adb的全称为Android Debug Bridge,是起到调试桥的作用.通过adb,我们可以在ecplise中方便的通过DDMS来调试Android程序,其实他就是一个debug工具. ...
- 同一台机器上多个tomcat启动造成的内存溢出问题的解决方法。
加下面这句话就行了,我是WIN10+双tomcat+nginx(本地站点),无压力.在编译器的vm option里面加哦. -server -Xms512m -Xmx1024m -XX:PermSiz ...
- Selenium UI自动化解决iframe定位问题
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6735116.html 一个阴雨霏霏 ...
- 填坑:在 SegmentFault 开发单页应用之图片引用的问题探索
前言 前段时间,SegmentFault 低调上线了 技术号 模块,方便用户对数据进行集中管理.在开发过程中,第一次引入了 MV* 框架. SF 的基本架构还是后端路由,这也使得页面频繁地整体请求,体 ...
- js调DLL类库中的方法实现(非com组件形式)
1.首先,创建一个Web空项目 2.添加一个html或aspx页面 3.页面代码如所示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...
- java签名与验签
基本概念: 加密解密 加密:发送方利用接收方的公钥对要发送的明文进行加密. 解密:接收方利用自己的私钥进行解密. 公钥和私钥配对的,用公钥加密的文件,只有对应的私钥才能解密.当然也可以反过来,用私钥加 ...
- 夏令营提高班上午上机测试 Day 4 解题报告
我要是没记错的话,今天的题难度算挺适中的. *标程来自高天宇哥哥 T1:小G的字符串 题目描述 有一天,小 L 给小 G 出了这样一道题:生成一个长度为 n 的.全由小写英文字母构成的字符串,只能使用 ...
- ASP.NET Core 发布 centos7 配置守护进程
ASP.NET Core应用程序发布linux在shell中运行是正常的.可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 ...
- python中的randint,引入模块
引入模块的方法: from 模块名 import 方法名 范例: from random import randint#使用randint需要加上这句 while True: answer=randi ...
- 快速构建一个简单的单页vue应用
技术栈 vue-cli webpack vux,vux-loader less,less-loader vue-jsonp vue-scroller ES6 vue-cli:一个vue脚手架工具,利用 ...