PCI Express

维基百科,自由的百科全书
跳转至: 导航搜索
PCI Express
Pci-express-logo.gif
PCI Express 的標誌
英文全名 Peripheral Component
Interconnect Express
中文全名 快捷外設互聯標準
發明日期 2004年
發明者 Intel
最多連接 每接口 1 個
带宽

每條匯流排

  • v1.x: 250MB/s (2.5GT/s)
  • v2.0: 500MB/s (5GT/s)
  • v3.0: 985MB/s (8GT/s)
  • v4.0: 1969MB/s (16GT/s)

16條匯流排

  • v1.x: 4GB/s (40GT/s)
  • v2.0: 8GB/s (80GT/s)
  • v3.0: 15.75GB/s (128GT/s)
  • v4.0: 31.51GB/s (256GT/s)
類別 串行
熱插拔 支援 (依制式而定)
外置介面 支援 (External PCI Express)

PCI Express,簡稱PCI-E,是電腦匯流排PCI的一種,它沿用了現有的PCI編程概念及通訊標準,但建基於更快的串行通信系統。英特爾是該介面的主要支援者。PCIe仅应用于内部互连。由于PCIe是基于现有的PCI系统,只需修改物理层而无须修改软件就可将现有PCI系统转换为PCIe。PCIe拥有更快的速率,以取代几乎全部现有的内部总线(包括AGPPCI)。英特爾希望将来能用一个PCIe控制器和所有外部設備交流,取代现有的南桥北桥方案。

除了这些,PCIe设备能够支援热拔插以及热交换特性,支援的三种电压分别为+3.3V、3.3Vaux以及+12V。考虑到现在顯示卡功耗的日益增加,PCIe而后在规范中改善了直接从插槽中取电的功率限制,16x的最大提供功率达到了75W[1],比AGP 8X接口有了很大的提升。基本可以满足當時(2004年)的中高階显卡的需求。这一点可以从AGP、PCIe两个不同版本的6600GT顯示卡上就能明显地看到,后者并不需要外接电源。PCIe只是南桥的扩展总线,它与操作系统无关,所以也保证了它与原有PCI的兼容性,也就是说在很长一段时间内在主板上PCIe接口将和PCI接口共存,这也给用户的升级带来了方便。由此可见,PCIe最大的意义在于它的通用性,不仅可以让它用于南桥和其他设备的连接,也可以延伸到芯片组间的连接,甚至也可以用于连接圖形處理器,这样,整个I/O系统重新统一起来,将更进一步简化计算机系统,增加计算机可移植性模块化

历史[编辑]

在2001年的春季英特尔开发者论坛IDF)上Intel公布了取代PCI总线的第三代I/O技术,被称为“3GIO”。该总线的规范由Intel支持的AWG(Arapahoe Work Group)负责制定。2002年4月17日,AWG正式宣布3GIO 1.0规范草稿制定完毕,移交PCI特殊兴趣组织(PCI-SIG)进行审核,2002年7月23日经过审核后正式公布,改名为“PCI Express”,并根据开发蓝图2006年正式推出Spec 2.0(2.0规范)。[2]

版本 資料傳輸頻寬 單向單通道頻寬 雙向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 77W 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年[3]

以2.0為例:5Gb/s => 每秒5Gbit的數據總傳輸率 但編碼方式為8/10(每10個bit只有8個實際有效資料),即為 4Gb/s = 500MByte/s(3.0 編碼方式為128/130)。

PCI Express與其他傳輸規格比較[编辑]

PCI Express x16 插槽
PCI Express x1 插槽

PCIe的規範主要是為了提升電腦內部所有匯流排的速度,因此頻寬有多種不同規格標準,其中PCIe x16是專為顯示卡所設計的部分。AGP的資料傳輸效率最高為2.1GB/s,不過對上PCIe x16的8GB/s,很明顯的就分出勝負,但8GB/s只有指資料傳輸的理想值,並不是使用PCIe介面的顯示卡,就能夠有突飛猛進的效能表現,實際的測試數據上並不會有這麼大的差異存在。 [4] [5]

傳輸通道數 腳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
規格 匯流排寬度 工作時脈 資料速率
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
AGP 2X 32 位元 66 MHz *2=532 MB/s
AGP 4X 32 位元 66 MHz *4=1.0 GB/s
AGP 8X 32 位元 66 MHz *8=2.1 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-E串行总线带宽(MB/s) = 串行总线时钟频率(MHz) * 串行总线位宽(bit/8 = B) * 串行总线管线 * 编码方式 * 每时钟传输几组数据(cycle),例:双工PCI-E 1.0 X1,其带宽 = 2500*1/8*1*8/10*1*2=500 MB/s。

PCI Express 1.0总线频率 2500 MHz,这是在 100 MHz 的基准频率通过锁相环振荡器(Phase Lock Loop,PLL)达到的。PCI-E 2.0 总线频率从2.5GHz提高到5GHz,3.0则提高到8GHz,编码方式变成128/130。

PCI Express的硬件协议[编辑]

PCIe的连接是建立在一个双向的序列的(1-bit)点对点连接基础之上,这称之为“传输通道”。与PCI 连接形成鲜明对比的是PCI是基于总线控制,所有设备共同分享的单向32位并行总线。PCIe是一个多层协议,由一个对话层,一个数据交换层和一个物理层构成。物理层又可进一步分为逻辑子层和电气子层。逻辑子层又可分为物理代码子层(PCS)和介质接入控制子层(MAC)。

物理层[编辑]

各式不同的PCI Express插槽(由上而下:x4, x16, x1,與 x16),相較於傳統的32-bit PCI插槽(最下方),取自於DFI的LanParty nF4 Ultra-D機板

于使用电力方面,每组流水线使用两个单向的低电压差分信号(LVDS)合计达到2.5兆波特。传送及接收不同数据会使用不同的传输通道,每一通道可运作四项资料。两个PCIe设备之间的连接成为“链接”,这形成了1组或更多的传输通道。各个设备最少支援1传输通道(x1)的链接。也可以有2,4,8,16,32个通道的链接。这可以更好的提供双向兼容性(x2模式将用于内部接口而非插槽模式)。PCIe卡能使用在至少与之传输通道相当的插槽上(例如x1接口的卡也能工作在x4或x16的插槽上)。一个支援较多传输通道的插槽可以建立较少的传输通道(例如8个通道的插槽能支援1个通道)。PCIe设备之间的链接将使用两设备中较少通道数的作为标准。一个支援较多通道的设备不能在支援较少通道的插槽上正常工作,例如x4接口的卡不能在x1的插槽上正常工作(插不入),但它能在x4的插槽上只建立1个传输通道(x1)。PCIe卡能在同一数据传输通道内传输包括中断在内的全部控制信息。这也方便了与PCI的兼容。多传输通道上的数据传输采取交叉存取,这意味着连续字节交叉存取在不同的通道上。这一特性被称之为“数据条纹”,需要非常复杂的硬件支援连续数据的同步存取,也对链接的数据吞吐量要求极高。由于数据填充的需求,数据交叉存取不需要缩小数据包。与其它高速数传输协议一样,时钟信息必须嵌入信号中。在物理层上,PCIe采用常见的8B/10B代码方式来确保连续的1和0字符串长度符合标准,这样保证接收端不会误读。编码方案用10位编码比特代替8个未编码比特来传输数据,占用20%的总带宽。到了PCIe 3.0,采用128B/130B代码方式,仅占用1.538%的总带宽。有些协议(如SONET)使用另外的编码结构如“不规则”在数据流中嵌入时钟信息。PCIe的特性也定义了一种“不规则化”的运算方法,但这种方法与SONET完全不同,它的方法主要用来避免数据传输过程中的数据重复而出现数据散射。第一代PCIe采用2.5兆位单信号传输率,PCI-SIG计划在未来版本中增强到5~10兆位

数据链接层[编辑]

数据链接层采用按序的交换层信息包(Transaction Layer Packets,TLPs),是由交换层生成,按32位循环冗余校验码(CRC,本文中用LCRC)进行数据保护,采用著名的协议(Ack and Nak signaling)的信息包。TLPs能通过LCRC校验和连续性校验的称为Ack(命令正确应答);没有通过校验的称为Nak(没有应答)。没有应答的TLPs或者等待逾時的TLPs会被重新传输。这些内容存储在数据链接层的缓存内。这样可以确保TLPs的传输不受电子噪音干扰。PCIe對於ACK有所規範,在收到TLP封包之後,在一定時間內必須回應ACK,也就是ACK延遲(ACK Latency)的等待時間。因應ACK/NAK流程的需要,必須實作出重新播送緩衝器(Replay Buffer)。

Ack和Nak信号由低层的信息包传送,这些包被称为数据链接层信息包(Data Link Layer Packet,DLLP)。DLLP也用来传送两个互连设备的交换层之间的流控制信息和实现电源管理功能。

交换层[编辑]

PCI Express采用分离交换(数据提交和应答在时间上分离),可保证传输通道在目标端设备等待发送回应信息传送其它数据信息。它采用了可信性流控制。这一模式下,一个设备广播它可接收缓存的初始可信信号量。链接另一方的设备会在发送数据时统计每一发送的TLP所占用的可信信号量,直至达到接收端初始可信信号最高值。接收端在处理完毕缓存中的TLP后,它会回送发送端一个比初始值更大的可信信号量。可信信号统计是定制的标准计数器,这一算法的优势,相对于其他算法,如握手传输协议等,在于可信信号的回传反应时间不会影响系统性能,因为如果双方设备的缓存足够大的话,是不会出现达到可信信号最高值的情况,这样发送数据不会停顿。第一代PCIe标称可支援每传输通道单向每秒250兆字节的数据传输率。这一数字是根据物理信号率2500兆波特除以编码率(10位/每字节)计算而得。这意味着一个16通道(x16)的PCIe卡理论上可以达到单向250*16=4000兆字节/秒(3.7G字节/每秒)。实际的传输率要根据数据有效载荷率,即依赖于数据的本身特性,这是由更高层(软件)应用程序和中间协议层决定。PCI Express与其它高速序列连接系统相似,它依赖于传输的鲁棒性(CRC校验Ack算法)。长时间连续的单向数据传输(如高速存储设备)会造成>95%的PCIe通道数据占用率。这样的传输受益于增加的传输通道,但大多数应用程序如USB乙太網路控制器会把传输内容拆成小的数据包,同时还会强制加上确认信号。这类数据传输由于增加了数据包的解析和强制中断,降低了传输通道的效率。这种效率的降低并非只出现在PCIe上。

制式标准[编辑]

RS-232接口的PCIe x1卡
  • 半高卡
  • Mini Card:用以代替Mini PCI卡(支援x1 PCIe、USB 2.0和SMBus总线接口)。
  • ExpressCard:类似PC卡接口标准(支援x1 PCIe、USB 2.0、热插拔)。
  • PCI Express ExpressModule:支援熱插拔的接口標準用於伺服器和工作站上。
  • XMC:類似CMCPMC接口標準(支援x4 PCIe或串行 RapidI/O)。
  • AdvancedTCA:用以代替Compact PCI卡,支援串行背板拓撲結構基礎。
  • AMC:AdvancedTCA規範的補充,支援處理器和I/O模塊在ATCA板上(x1、x2、x4 或 x8 PCIe)。
  • PCI Express 外置接線[6]
  • Mobile PCI Express Module (MXM) NVIDIA所發明的圖形模塊規範。
  • Advanced eXpress I/O Module (AXIOM) 圖形模塊,由ATI認可。
  • Thunderbolt

竞争协议[编辑]

基于高速序列构架产生了很多传输标准。包括HyperTransportInfiniBandRapidIOStarFabric等等。这些均有业界的不同企业支援,背后也都有大量的资金投入标准的研究开发,所以每一标准都声称自己与众不同,独占优势。主要的差异在于可扩展性、灵活性与反应时间、单位成本的取舍平衡各不相同。其中的一个例子是在传输包上增加一个复杂的头信息以支援复杂路由传输(PCI Express不支援这种方式)。这样的信息增加降低了接口的有效带宽也使传输更复杂,但是相应创造了新的软件支援此功能。这种架构下需要软件追踪网络拓扑结构的变化以实现系统支援热插拔。InfiniBand和StarFabric标准即能实现这以功能。另一个例子是缩小信息包以减少反应时间。较小的信息包意味着包头占用了包的更大百分比,这样又降低了有效带宽。能实现此功能的标准是RapidIO和HyperTransport。PCI Express取中庸之道,定位于设计成一种系统互连接口而非一种设备接口或路由网络协议。另外为了针对软件透明,它的设计目标限制了它作为协议,也在某种程度上增加了它的反应时间。

前景[编辑]

技嘉GV-NX62TC256D8顯示卡,採用PCI Express x16插槽

在2005年,PCIe已近乎成为新的个人电脑主機板标准。关于此有不少评论,但最基本的原因是它对于软件开发者完全透明——为PCI所设计的操作系统可以不做任何代码修改来启动PCIe设备。其二,它能增强系统性能,还有强有力的品牌认知。

大部分新型的AMDnVidia显卡都使用了PCIe标准。nVidia在它新开发的SLI上采用了PCIe的高速数据传输,这使得两块相同芯片组显卡可同时工作于一台电脑之上。AMD公司也基于PCIe开发了一种两个GPU一同運作的技術,称为CrossFireExpressCard刚刚出现在笔记本电脑上,但由于大部分笔记本电脑仅有一个插槽,目前无法将现有的Cardbus接口完全淘汰,升级成新的快速卡插槽。桌上型電腦就没有这种问题,因为它的多个插槽可以同时支援PCIe和老的PCI。

參考文獻[编辑]

  1. ^ Desktop Boards — Some PCI Express* Graphics cards require extra power. 03-Jun-2004. "25W-75W graphics cards are powered through the desktop board's PCI Express x16 connector" 
  2. ^ PCI Express-en.wikipedia.org. en.wikipedia.org. [2009-6-22]. 
  3. ^ PCI-SIG ANNOUNCES PCI EXPRESS 4.0 EVOLUTION TO 16GT/S, TWICE THE THROUGHPUT OF PCI EXPRESS 3.0 TECHNOLOGY
  4. ^ Mechanical Drawing for PCI Express Connector. [2007-12-07]. 
  5. ^ FCi schematic for PCIe connectors. [2007-12-07]. 
  6. ^ PCI Express External Cabling 1.0 Specification. [2007-02-09]. 

參見[编辑]