1.PCI
外设互联标准(或称个人电脑接口,Personal Computer Interface),实际应用中简称PCI(Peripheral Component Interconnect),是一种连接电子计算机主板和外部设备的总线标准。一般PCI设备可分为两种形式:直接布放在主板上的集成电路,在PCI规范中称作”平面设备“,另一种是安装在插槽中的扩展卡。
PCI bus常见于现代的个人计算机中,已经取代ISA和VESA局部总线,成为标准扩展总线。PCI总线最终将被PCI Express或者更先进的技术取代。
PCI是并行基于总线控制,所有设备共同分享单向32bit/64bit并行总线(半双工)。如果有多个PCI设备共用总线,他们将共享总的传输速率。
PCI标准于1993年7月被Intel发明,每个接口最多连接1个设备,可以工作在33MHz和66MHz(工作时电压33MHz为5V,66MHz为3V),2004年被PCI Express替代。
PCI插槽可以插很多类型的卡,包括网卡、声卡、调制解调器(内置Modem)、电视卡、磁盘控制器(RAID卡)、视频采集卡、IDE接口卡、IEEE1394卡、USB卡和串行等,原本也可以插显卡,但很快PCI的带宽不足以支持显卡的性能。PCI插槽通过插不同的卡几乎可以实现所有的外接功能。后来显卡使用AGP插槽,现在已被PCI Express插槽取代。
PCI接口分32bit和64bit两种。早期的PCI(PCI2.1标准)工作在32bit、33.33MHz、5V下,最大传输速度133MB/s(33.33MHz * 32bit / 8bit/byte = 133MB/s),后来又出现了PCI2.2 2.3等标准。现在PCI有32bit和64bit两种,32bit的一般用在PC上,64bit的一般应用于服务器上,64bit的要比32bit的长一些。32bit和64bit都有5v和3.3v电压两种,5v电压的是PCI2.1标准工作在33MHz,3.3v电压的是PCI2.2标准工作在66MHz的时钟频率上。频率或者位宽增加都会增加传输速率,实现也是通过这两个指标来实现的。
在PC上,64位PCI还没有成为主流。原因在于制造64位和66MHzPCI主板的难度很大。首先,使用64位PCI插槽需要64位南桥芯片组支持,该南桥控制器必须可以正确处理64位的数据。Intel和AMD都有64位的南桥可提供给主板厂商,但是价格很高;其次是因为66Mz
PCI槽对主板配套元件要求极高,且需要特殊的布线设计。这就是66MHzPCI技术一直停留在服务器领域的原因。
PCI有几种不同的接口样图:现在生产的多为通用模式的以防插错。还有64bit统一比32bit的宽出右边缺口的部分。
PCI 32bit的网卡都可以查到PCI 64bit插槽上使用。3.3v的插到3.3v的上,5v的插到5v的上。
有一些PCI网卡同时支持32位和64位标准的兼容网卡,这类网卡相比前面介绍的纯64位PCI网卡来说,在外观上也有一个明显的区别,那就是它又多了一个缺口,有3个缺口(上图右边第三个图)
PCI千兆网卡的局限性:
通常我们用的个人PC主板上的PCI总线频率位33MHz,总线位宽位32bit,PCI总线的带宽位133MB/s,换算下来是1064Gbps,理论上这是符合千兆往可的带宽的。但实际上,PCI设备是共享一个总线带宽的,像IDE总线,集成声卡等都是通过PCI总线工作的,这样自然分配给PCI千兆网卡的带宽自然就不够了。要真正的达到千兆网卡的速度,要求全双工工作,输入输出都是1Gbps,这样就要求带宽达到2Gbps,这样PCI总线是万万达不到的。因此在普通电脑上还是要采用PCI-E设备才能真正的达到千兆的速度。
2.PCI-X
PCI-X是传统PCI总线的改版,有更高的带宽。PCI-X插槽类型基本于64bit的PCI插槽相同。
PCI-X于1998年被IBM、HP和Compaq发明,64bit位宽,传输方式并发,2004年被新出的PCI Express替代。
PCI-X多用于服务器上,不过也是昙花一现。
无论PCI还是PCI-X都只是半双工的通信机制但PCI Express 却完全可以用全双工方式进行通信。此外在同一个总线里因为平行传输的关系,虽然控制器可以和每个接入的设备自动协调传输速率但却必需选用各个设备中速度最慢者的速度作为总线内共同的传输速度上限,高速设备往往因此而无用武之地。
PCI-X目前的最新版本是2.0。下面讲的的1.0版本,在外观上,它与64位PCI接口差不多。目前主要有100MHz和133MHz两种外频模式,不过目前主要用的是133MHzPCI-X接口,理论共享传输速率达到了1.06GB/s。后来推出的2.0版本,频率位266MHz和533MHz,共享传输速率为2.1GB/s和4.2GB/s。后来出的3.0标准1066MHz在PCI-E的冲击下没有了下文。
PCI-X相比PCI 32bit而言除了扩大到64bit,其余的传输协议、讯号和标准街头格式都一并兼容,因此它可以向下兼容于所有早期的+3.3V PCI 总线(但不容于最早期的+5V PCI BUS)。3.3v的PCI可以插到PCI-X中。
3.PCI-E
PCI-E于2004年被Intel发明,采用串行方式通信,支持全双工通信方式。
PCIe设备能够支持热拔插以及热交换特性,支持的三种电压分别为+3.3V、3.3Vaux以及+12V。
PCI-E的接口根据总线位宽不同而有所差异,包括X1、X4、X8以及X16,而X2模式将用于内部接口而非插槽模式。
PCI-E有向下兼容的特性。既X16的接口可以插X1、X4、X8接口的卡。
PCI-E接口样图:
图中从上到下依次是PCIEX16、X1、X4、X16,图中没有X8的,X8的长度右边部分(主接口区)长度基本是X4的2倍,略小。
PCI-E有各版本的传输速度:
版本 | 数据传输带宽 | 单向单通道带宽 | 双向16通道带宽 | 原始传输率 | 发表日期 |
---|---|---|---|---|---|
1.0 | 2Gb/s | 250MB/s | 8GB/s | 2.5GT/s | 2002年7月22日 |
1.0a | 2Gb/s | 250MB/s | 8GB/s | 2.5GT/s | 2003年4月15日 |
1.1 | 2Gb/s | 250MB/s | 8GB/s | 2.5GT/s | 2005年3月28日 |
2.0 | 4Gb/s | 500MB/s | 16GB/s | 5.0GT/s | 2006年12月20日 |
2.1 | 4Gb/s | 500MB/s | 16GB/s | 5.0GT/s | 2009年3月4日 |
3.0 | 8Gb/s | 1GB/s | 32GB/s | 8.0GT/s | 2010年11月10日 |
4.0 | 16Gb/s | 2GB/s | 64GB/s | 16.0GT/s | 2014年-2015年 |
PCI-E不同传输通道数设备的金手指数(双面金手指)和长度:
传输通道数 | 脚Pin总数 | 主接口区Pin数 | 总 长 度 | 主接口区 长度 |
---|---|---|---|---|
x1 | 36 | 14 | 25 mm | 7.65 mm |
x4 | 64 | 42 | 39 mm | 21.65 mm |
x8 | 98 | 76 | 56 mm | 38.65 mm |
x16 | 164 | 142 | 89 mm | 71.65 mm |
4.三种接口的传输速度比较
规格 | 总线宽度 | 工作时钟频率 | 数据速率 |
---|---|---|---|
PCI 2.3 | 32 比特 | 33/66 MHz | 133/266 MB/s |
PCI-X 1.0 | 64 比特 | 66/100/133 MHz | 533/800/1066 MB/s |
PCI-X 2.0(DDR) | 64 比特 | 133 MHz | 2.1 GB/s |
PCI-X 2.0(QDR) | 64 比特 | 133 MHz | 4.2 GB/s |
PCI-E 1.0 X1 | 1 比特 | 2.5 GHz | 500 MB/s(双工,文稿数据) |
PCI-E 1.0 X2 | 2 比特 | 2.5 GHz | 1 GB/s(双工) |
PCI-E 1.0 X4 | 4 比特 | 2.5 GHz | 2 GB/s(双工) |
PCI-E 1.0 X8 | 8 比特 | 2.5 GHz | 4 GB/s(双工) |
PCI-E 1.0 X16 | 16 比特 | 2.5 GHz | 8 GB/s(双工) |
PCI 64bit的数据速率乘以2。
根据上面各个接口带宽的数据我们可以看到PCI-e X1的接口可以提供单向250MB/s的带宽,普通的千兆网卡用PCI-e X1接口就可以满足了,但是万兆网卡的就至少要PCI-e X4才能刚刚满足带宽需求,因此可以解释市场上见到的万兆网卡基本上都是PCI-e X8接口的,比如Intel PRO 10GBE XF LR(10千米,采用长波模块(LR)因此传输距离可以达到10公里,及 Intel PRO 10GBE XF SR(300米)采用的是短波(SR)模块,传输距离是300米。