早在2001年的春季IDF(Intel开发者论坛)上,Intel公司已经宣布要用一种新的技术取代PCI总线和多种芯片的内部连接,并称之为第三代I/O总线技术(3rd Generation I/O,也就是3GIO);到了2001年底,包括Intel、AMD、DELL、IBM等20多家业界主导公司加入了PCI-SIG(PCI特殊兴趣小组)并开始起草3GIO规范的草案;2002年草案完成,并把3GIO正式命名为PCI Express。而在春季IDF 2003上,Intel公布了PCI Express的产品开发计划。目前PCI Express技术的915系列主板产品和不少显卡都已经能在市面上买到了,那PCI EXPRESS的技术特点究竟是什么呢?
PCI Express技术要点
从并行到串行的转变
与传统PCI以及更早期的计算机总线的共享并行架构相比,PCI Express采用设备间的点对点串行连接(serial interface)。如此一来即允许每个设备都有自己的专用连接,是独占的,并不需要向整个总线请求带宽,同时利用串行的连接特点将能轻松将数据传输速度提到一个很高的频率,达到远超出PCI总线的传输速率。单个基本的PCI Express连接是一种单双单工连接,一个单独的基本的PCI Express串行连接就是两个独立的通过不同的低电压对驱动信号实现的连接,一个接受对和一个发送对(共四组线路)。一个微分信号在两个接口之间有电压差来传递。
第一代的PCI Express连接将提供2.5Gbit/s的单向单线连接传输速率。相对于传统PCI总线在单一时间周期内只能实现单向传输,PCI Express的双单工连接能提供更高的传输速率和质量,它们之间的差异跟半双工和全双工类似。同时PCI Express串行连接使用了内嵌时钟技术(8b/10b编码模式),时钟信息直接写入数据流中,这对比大多数并行总线要额外传输保持同步的时钟信号来说更能节省传输的通道和提高传输效率.
与Serial ATA类似,串行连接能大大减少电缆间的信号干扰和电磁干扰,由于传输线条数有所减少,更能节省空间和连接更远的距离(单位时间内传输的数据流比并行总线中独立时钟信号的数据流更能传送更远的距离)。当然,一个PCI Express连接可以由多个“通道”组成,每个通道包括前面所提的单双工连接(两对线路)。
在设备和芯片之间的连接就能实现串行的多通道连接,每个通道相互独立。一个PCI Express连接可以被配置成x1,x2,x4,x8,x12,x16和x32的数据带宽。x1的通道能实现单向312.5MB/秒(2.5Gbit/s * 1 / 8位)的传输速率,同理x32通道连接就能提供10GB/秒的速率,但考虑使用8b/10b编码实际上有20%左右的消耗,实际的传输速率大概是8GB/秒(x32单向)。
分层分包协议
PCI Express包含3个协议层:事物层(Transaction)、数据链路层(Data Link)和物理层(Physical),当数据在设备间传输时,每个设备都会被看成一个协议栈(protocol stack)。
数据传输过程
在发送端,数据先在事务层被分成数据包,然后继续到下一层数据连接层和物理层,每一层都将在原有的数据上加入新的头信息或尾部信息,最后通过物理连接传输到接受端设备的协议栈中;再接受端经过相反次序通过协议栈将在发送端的分包还原出来。
在三层中都各司其职,其中物理层负责组装和分解处理层数据,同时掌握连接结构以及信号的控制,保证数据能实现端到端的通信,使合法的数据从发送端传输到整个PCI Express架构。顺利达到接受端。而数据连接层则保证连接完整无缺地从一端传输到另一端,采用了Ack/Nack协议技术,能检测错误并进行修正。
数据包处理和插槽
PCI Express数据包处理包含4种基本的处理类型:内存事务处理、I/O事务处理、配置事务处理和信息处理。
PCI Express数据处理
采用基本的流控制来保证接受端设备有足够的缓冲资源接受来自发送端的数据(包括数据的容量和类型)。PCI Express的接口根据总线位宽不同而有所差异,包括x1、x4、x8以及x16(x2模式将用于内部接口而非插槽模式)目前的PCI接口将保留(就如当初PCI代替ISA时也在主板上留下ISA槽一样)。较短的PCI Express卡可以插入较长的的PCI Express插槽中使用(也就是说低位宽的能插入高位宽的插槽使用)。
可升级插槽设计
同时PCI Express卡能够支持热拔插以及热交换特性,支持的三种电压分别为+3.3V、3.3Vaux以及+12V。考虑到现在显卡功耗的日益上涨,PCI Express而后在规范中改善了直接从插槽中取电的功率限制,16x的最大提供功率达到了70W,比AGP8X接口有了很大的提高。基本可以满足未来中高端显卡的需求。这一点可以从AGP、PCI Express两个不同版本的6600GT上就能明显地看到,后者并不需要外接电源。
PCI Express支持的电压
PCI Express虚拟通道及通信量等级
此外,PCI Express也支持每个连接的虚拟多通道。在一个小连接上可以存在最大8个独立控制的通讯。每个通讯都可以根据数据包的通信量等级(Traffic Class,TC)性质得到不同的处理。对于在PCI Express中传输的数据包而言,在每一个转换或连接终端,都要查验TC信息,并据此进行适当的处理。在数据包头部的TC描述符由3个bit组成,可以表示不同的TC等级。这和我们在网络技术中看到的QOS实际上起到一个作用,就是保证那些需要实时处理的数据拥有较高的传输优先权,避免数据传输延迟。
PCI Express现有应用
除了显卡外,千兆以太网卡,电视卡,视频编辑卡等,都已经出现。