PCI、PCI-X与PCI-E
PCI-Xv1.0版本是1999年正式发表的,是对现有的PCI总线的继承和发展,它将PCI的性能推向顶峰。PCI-X总线操作采用分离事务处理方式,消除了等待状态,大幅度地提高了总线的利用率。PCI-X总线带宽最高达1.066GB/S(133MHz/64-bit)。PCI-X是共事总线结构式向交换式总线结构过渡的产物。在高性能服务产品中为提高I/O吞吐率已采用PCI-X总线结构。
pci-X是pci的一个扩展,而pci-e是一个脱胎换骨
PCI-X是由IBM,HP,Compaq提出来的,它是并行接口,是PCI的修正,也就是兼容PCI。PCI总线的时钟频率是33Mhz、总线宽度32bit,理论传输速度:32bit*33MHz=1056Mbit/s=132MB/s
PCI-X总线宽度从PCI的32bit提高到64bit,总线频率提高到最高133MHz,理论传输速度达到64bit*133MHz=1GB/s,新的PCI-X2.0(PCI-X266)版本更加入了双倍读取速度,在时钟的上升和下降沿都传送数据,使得PCI-X的理论速度再提高一倍,达到2.1GB/s
PCI-E也叫PCI-Express、PCIe,是由Intel提出来的,它是串行接口,不兼容PCI。PCI-E和PCI总线最大的区别在于PCI-E采用了点到点的传输技术,交换器替代了原先的主控器,当一个设备与另一个设备进行数据交换的时候,他们的通信是相对独立的,多个通信连接之间并不影响,允许并发形式传输;PCIExpress可以大幅提高中央处理器(CPU)和图形处理器(GPU)之间的带宽。
启用了QoS(Quality ofService,服务质量),将数据打包采用分组交换方式传送。PCI-E交换机和PCI-E设备之间建立的连接叫做Link,每一个Link则是由一个或者多个Lane组成,每个Lane在一个时钟内能够双向传送1byte的数据,全双工工作。PCI-E支持Lane之间的合并,可以在一个Link内加入更多的Lane来加快PCI-E的速度。现在应用的PCI-E*16就是用16个Lane来实现高速数据传输的,只含有一个Lane的Link我们称为*1Link,含有两个Lane的Link称为*2 Link。
一个Lane的数据传输率能达到2.5Gbps/每方向,PCI-E*16就是有16个Lane构成一个Link,其传输速度可达1.5Gbps*16=40Gbps=5GByte/s/方向
二..
PCI发展简史:
自从周边设备扩展接口(PCI)总线1992年问世以来,它就成为了迄今为止最成功的接口规范之一,广泛用于声卡、显示卡、网络设备(包括Modem)及I/0等接口,因此实际上,它已取代了工业标准结构(ISA)接口,成为了各种体系的一个标准规范。最初设计这个接口和总线的PCI SIG(PCI特别兴趣小组)现在还在不断发展和管理这一接口的规范和标准。PCI SIG 由 Compaq 牵头,成员包括3Com,Adaptec,AMD,Gateway,IBM,Intel,Phoenix Technologies 和 TexasInstruments等。PCI SIG 核准了 PCI 局部总线规范 V2.2,这也就是我们今天所看到的 PCI 总线。
最初,PCI采用的是 33MHz 工作频率,32位总线,最大带宽 133MB/秒的设计,这在 80486 时代,相对于当时 8MHz、16位总线、最大带宽 8 MB/秒的 ISA总线,简直是划时代的飞跃。通过极为严格的芯片组设计,PCI 局部总线规范 V2.2 目前允许PCI总线达到 66MHz。64位、66MHz的PCI总线最大带宽有533MB/秒,但是,你看看目前的处理器的速度和前端总线的发展,你就会明白这个“改进”的总线只是一个“补丁”。
由康柏、IBM、HP等顶级服务器厂商组成的PCISIG(PCI特别兴趣小组)在1999年提出了PCI-X的规范。PCI-X 既可使用32 位也可使用 64 位宽度的总线,工作频率提升到 133 MHz,允许的最大带宽达 1066 MB/秒。
性能比较:
PCI-X沿袭了标准PCI的许多技术特色,在原有技术的基础上增加了许多新的技术特征。首先就是64-BIT数据位宽,仅此一项就可以提升一倍的带宽,然后PCI-X的工作频率为133MHz,是旧式PCI总线33MHz工作频率的4倍,也是传统64-BITPCI66MHz工作频率的两倍!数据位宽是原来的两倍,工作频率是原来的四倍,合算起来,PCI-X就能够提供旧式PCI总线8倍的带宽!PCI-X沿袭了标准PCI的许多技术特色,在原有技术的基础上增加了许多新的技术特征。首先就是64-BIT数据位宽,仅此一项就可以提升一倍的带宽,然后PCI-X的工作频率为133MHz,是旧式PCI总线33MHz工作频率的4倍,也是传统64-BITPCI66MHz工作频率的两倍!数据位宽是原来的两倍,工作频率是原来的四倍,合算起来,PCI-X就能够提供旧式PCI总线8倍的带宽!
PCI协议标准 --总线数据位宽 --总线工作频率 ---理论最大带宽
PCI2.2 ----------32-BIT ------33MHz--------133MB/s
PCI2.2 ----------32-BIT ------64MHz--------266MB/s
PCI2.2 ----------64-BIT ------33MHz--------266MB/s
PCI2.2 ----------64-BIT ------66MHz--------533MB/s
PCI-X1.0 -------64-BIT -----最高133MHz---最大1.06GB/s
PCI-X技术特性:
除了工作频率和数据位宽的提升,PCI-X总线也有更为先进的解释和传送数据的方式,效率更高。共有五个关键技术帮助它完成任务:
1. 特征段
2. 分离事务(多任务)
3. 减少时钟周期的占用(等待状态)
4. 128 位标准尺寸数据块
5, 增强了奇偶错误管理
下面我们就来一一解释一下:
1. 特征段:
特征段可能是最重要的技术,它增加了追踪穿过总线的数据的能力,可以把它在队列中向前移动,增强并行穿越总线的能力。每件 PCI-X总线上的事务都附带一个 36位的特征域。这个域包含了一些信息,有事务从哪儿开始,它需要按什么顺序插入,事务有多长和是否需要缓冲检测。特征段包含四个部分:序列信息、不严格的次序结构、事务字节数量,以及“非缓存一致”事务。(1) 序列信息
这是特征段的一部分,它详细说明了事务来自什么地方,哪种总线,整个事务有多大。它将在整个特征段要被引用,并且有助于提高总线管理的效率。
(2) 不严格的次序结构
最初的 PCI体系处理数据的方式类似于“令牌环”网络。因为它没有办法说明哪儿一起特定事务发生在什么地方,必须按照特定的顺序接收和传送数据。它从第一组总线(0)出发,经过每一个插槽,然后开始下一组总线(1),再继续直到它又达到第一组总线。这样它才不会迷路和丢失事务。
PCI-X有一个“不严格次序”位,一旦控制器和设备驱动程序设置了该位,就允许一件事务获得超过所有其它目前在总线中的事务的优先权。这样PCI-总线或者 PCI-PCI 桥接器可以根据那儿有内存空间,或者那个设备可用来重新排列总线上的事务。通过这种方法,系统可以利用PCI-X 总线实现效率最大化。
(3) 事务字节数量
在 PCI V2.2规范中,没有办法知道哪个请求最大,因此,每次数据请求都分配两条高速缓存队列。这种情况在 PCI-X中不会出现。在特征段中包含了下次请求提取的字节数量。就象你从互联网上下载文件时,它会报告已经收到了多少数据,还剩多少数据需要下载一样,每个事务,都有一个字节数量统计还剩多少字节的数据。这样,高速缓存的使用效率更高,桥接器也不需要一直保留事务等待缓存队列清空了。
(4) “非缓存一致”事务
要很清楚的描绘出处理器缓存和系统内存里到底发生了些什么是一件非常困难的工作,多处理器系统就更不用说了。处理器和 I/O子系统之间的需要保持视图的事务被称为“缓存一致”事务。PCI总线在把数据写到处理器缓存之前,先使用了一个“探测”循环来扫描以重载数据。尽管这个过程非常短,但还是会争夺带宽而导致性能问题。 只要驱动器和控制器能够支持,PCI-X在特征段中使用了一个“无探测”位。这被称为“非缓存一致”事务。取消了“探测”扫描,总线排除了处理器-内存总线上的任何额外工作。
2. 分离事务(多任务)
分离事务允许一个正在向某个特定目标设备请求数据的设备,在目标设备准备好发送数据之前处理来临的其它任何事情。在目前的 PCI体系中,请求将停止处理新的数据直到与它的目标之间的数据处理完毕。换句话说,它一次只能处理一条请求。
3. 减少时钟周期的占用(等待状态)
当设备正在等待来自其它设备的信号或者数据时,这些处于等待状态时消耗的额外的时钟周期都了白白浪费了的。根据前面的描述,利用分离事务能够消除这种消耗。另外一个消除等待状态的办法是把没有准备好发送数据的设备从总线上移走。这样做,总线带宽可以腾出来供其它事务使用。减少等待状态的数量,可以最佳化地利用总线。
4. 128-位标准尺寸数据块
如果接收的数据是标准化的,处理器的工作效率就更高。Intel 的IA-64 处理器使用自然排列的 128-位指令,现在 PCI-X也采用了同样的方法。通过总线的数据都是同样大小的块,这样就提供了更多的流水线机制,改善了处理器的管理。
5, 增强了奇偶错误管理
当主板超频之后,在当前的 PCI环境下,奇偶错误是最大的烦恼。正如前面所说的,当你提升了时钟速度之后,相应地就减少了总线上设备译解请求的时间。所以,出现奇偶错误的可能性就大大增加了。最糟糕的情况下,将出现不可修复的错误锁住总线,只有重新启动才能解决问题。
PCI-X在提高了时钟频率的同时减少了问题的发生,而且通过增加指令数来解释和管理它们所遇到的错误。如果操作系统和 PCI-X驱动程序都支持奇偶错误管理,问题可能会在产生更严重的后果之前被解决。这些增强包括错误是通知用户,重复执行指令,重置适配器,在适配器失败前将之关闭。最坏的情况下可能没有选择,只有重新启动了,但这些增强可以减少此类情况的发生。
目前支持PIC-X的主要是一些要求高带宽、高传输率的千兆以太网卡和高数据吞吐量的磁盘阵列控制卡。随着市场的发展,支持PCI-X的设备将会越来越多。而PCI-X标准也在不断提升中,在研究中的PCI-266规范将达到2.1GB的带宽,PCI-533将达到4.3GB的带宽。
三.
在目前的结构中,外围设备(网络,存储和视频)使用像PCI或PCI-X那样的平行总线来连接的。平行总线已从32位33兆的PCI发展到了64位133兆的PCI-X。随着平行总线的时钟速率的增加这些总线支持的插槽数目就减少。平行总线通常包含地址/数据信号和一些边带信号。边带信号用来表示总线上数据的方向和事务处理的类型,还能用于表示中断或总线主控请求。一个典型的64位PCI-X总线在总共127个信号管脚中可包含64条地址/数据线和33个左右的边带信号。
由于网络、存储和视频的带宽需求已经增长,一些设计师们正着眼于把点到点的结构作为有潜力的解决方案。在基于总线的结构中,带宽是由总线中所有的设备来共享的。在PCI-Express点到点的结构中,每个设备都由一个专用连接而不必要共享带宽。点到点的结构还有其它的优点。一个典型的PCI-Express连接使用两个LVDS(低电压差分信号)对,一对用于发送,一对用于接收。在这个结构中没有边带信号。下面的图显示了一个点到点的通道,它有两个差分对(一个发送一个接收)和一个地信号。一个PCI-Express通道在每个方向同时以2.5Gb/s传送数据并使用8b/10b编码。
PCI-Express提供了超越总线型PCI-X的一些优点。优点之一是为应用裁剪带宽的能力。PCI-Express信道能聚集以增加总带宽。PCI-Express通道的有效组合为x1,x2,x4,x8,x16和x32。可用的带宽直接与通道的数目成比例。通道数加倍带宽也加倍。一个10Gb以太网控制器可以使用4条PCI-Express通道来与控制器的带宽相匹配。由于PCI-Express通道不是被多个设备共享的,它的结构本质上是可热替换的。PCI-Express使用消息传递来处理一些PCI所提供的边带信号。
PCI-Express还提供了把大的信道分成小的信道的能力。一个8通道的PCI-Express连接能分为二个4通道的连接,四个2通道的连接,或八个1通道的连接。PCI-Express另一个优点是减少通道所需的信号数目。在传统的PCI中约有127个管脚。如果芯片厂商有兴趣提供多个PCI总线来增加额外的带宽,那么他们要为每段总线增加127个管脚。相比之下,4通道的PCI-Express连接是20个管脚。这对芯片厂商会造成重复PCI总线的困难,其主要成本之一是封装。一个有趣的度量单位是每管脚的带宽。全部管脚计数包括芯片厂商使用不同的技术所需要的地址、数据、边带、电源和地线连接。由于PCI-Express的可扩展,它的每管脚的带宽从1信道至16信道保持相同。
用于母板的器件从PCI到PCI-Express的转变将在2004年出现。转向PCI-Express的主要驱动力是每管脚的带宽,可扩展性,和带宽。从软件的观点PCI-Express看起来就象PCI。PCI-Express的设计师们要维持与为PCI设备编写的所有软件都兼容。一个仍要回答的问题是何时我们可以看到基于PCI-Express的插板。现在标准已有了,这只不过是市场采用率的事情了。