1 PCIe概述
1 .1 基本简介
PCI-Express(peripheral component interconnect express)
是一种高速串行计算机扩展总线标准,它原来的名称为“3GIO”,是由英特尔在2001年提出的,旨在替代旧的PCI,PCI-X和AGP总线标准。
PCI-Express是用来互联诸如计算和通信平台应用中外围设备的第三代高性能I/O总线。第一代包括ISA、EISA、VESA和微通道(Micro Channel)总线,而第二代总线则包括了PCI、AGP和PCI-X。PCIe是一种能够应用与移动设备、台式电脑、工作站、服务器、嵌入式计算和通信平台等所有周边的I/O设备互联的总线。
1.2 PCI、PCI-X和PCIe
PCIe作为PCI和PCI-X的发展版本,其基本向后兼容,继承了第二代总线体系结构的有用特点,并有所突破。例如PCIe采用了与PCI与PCI-X相同的使用和读写通信模型。PCIe支持常见的事物,如存储器读写、IO读写、配置读写等事物。
在向PCIe进化的过程当中,PCIe最为明显的变化就是改变的体系结构:
(1) PCI、PCI-X:总线体系结构是多点(multi-drop)并行互连总线,其中多台设备共享一条总线,在一条PCI总线上可以挂接多个PCI设备,这些PCI设备通过一系列信号线与PCI总线相连,这些信号由地址/数据信号、控制信号、仲裁信号、中断信号等组成,是通过总线周期来实现的;
(2) PCIe:能后实现两台设备之间的通信的串行、点对点类型的互连,多个PCIe设备使用交换器(Switch)实现互连;采用基于交换器的技术来互连大量设备,在串行互连上进行通信是利用基于数据包的通信协议来实现的。
PCIe与PCI的区别,如下表格所示
1.3 PCIe发展版本
PCIe版本发展经历大版本4次更新,每次之后会有一次小版本更新如1.1、2.1、3.1,小版本基本没什么特殊变化,均是基于大版本的优化。
(1)PCIe 1.0
2003年,PCI-SIG推出了PCIe 1.0a,每通道数据速率为250 MB / s,传输速率为每秒2.5 gigatransfer(GT / s)。 传输速率表示为每秒传输量,而不是每秒位数,因为传输量包括不提供额外吞吐量的开销位; PCIe 1.x使用8b / 10b编码方案,导致占用了20% (= 2/10)的原始信道带宽。
(2)PCIe 2.0
PCI-SIG于2007年1月15日宣布推出PCI Express Base 2.0规范。PCIe 2.0标准将PCIe 1.0至5 GT / s的传输速率提高了一倍,每通道吞吐量从250 MB / s上升到500 MB / s。因此,32通道PCIe连接器(×32)可支持高达16 GB / s的总吞吐量。PCIe 2.0主板插槽与PCIe v1.x卡完全向后兼容。 PCIe 2.0卡也通常使用PCI Express 1.1的可用带宽向下兼容PCIe 1.x主板。总体来说,为v2.0设计的显卡或主板将与另一个v1.1或v1.0a配合使用。
(3)PCIe 3.0
PCI Express 3.0基本规范版本3.0在多个延迟之后于2010年11月提供。 2007年8月,PCI-SIG宣布PCI Express 3.0将以每秒8吉比特的速度(GT / s)进行比特率,并且将与现有的PCI Express实现向后兼容。PCI Express3.0将编码方案从之前的8b / 10b编码升级到128b / 130b,将带宽开销从PCI Express 2.0的20%降低到大约1.54%(= 2/130)。这通过称为“加扰”的技术来实现,该技术将已知的二进制多项式应用于反馈拓扑中的数据流。
(4)PCIe 4.0
2011年11月29日,PCI-SIG宣布PCI Express 4.0提供16Gb / s比特率,使PCI Express 3.0提供的带宽增加一倍,同时保持软件支持和二手机械接口的向后兼容性。
表1 PCIe版本更迭
1.4 PCIe数据链路通道
将两台设备连接在一起的一个PCI Express互联称为一条链路。一条链路在每个方向上可以有x1、x2、x4、x8、x12、x16、x32个信号对,这些信号可以称为通道,设计者根据需求确实实现通道。
链路 | 特点 | ||||||
---|---|---|---|---|---|---|---|
PCIe链路宽度 | x1 | x2 | x4 | x8 | x12 | x16 | x32 |
总带宽(GB/s) | 0.5 | 1 | 2 | 4 | 6 | 8 | 16 |