PCIe是如何工作的——How PCI Express Works

时间:2024-05-23 19:53:28

PCI(Peripheral Component Interconnect)插槽是计算机体系中很重要的一个部分,这也让大多数人都习以为常了。多年以来,PCI已经成为了一个通用的、有用的方法来连接声卡、显卡、网卡到主板上。

但是PCI也有缺点。随着处理器、显卡、声卡和网卡变得越来越快、越来越强大,PCI却一成不变。它还是有固定的32位的宽度,并且只能同时互联5个设备。尽管最新的64位的PCI-X有着更大的带宽,但是这样的64位宽度却引起了一些其他的问题。


一个叫做PCI Express的新的协议消除了很多缺点,提供了更大的带宽,并且和现有的操作系统兼容。在这篇文章里,我会分析是什么使得PCIe和PCI不同。我也会来分析PCIe是怎么让计算机更快的,怎么能增强了图形处理的性能,并且为啥能取代AGP插槽。

高速串行互联

在计算机的早期,大量的数据通过串行连接进行传输。计算机把数据分成包,然后每次从一个地方到另一个地方传输一个包。串行连接很可靠但也很低效,所以厂商们开始使用并行连接来一次性传输多份数据。

后来发现并行连接有着天然的问题,尤其当速度越来越快的时候——比如,导线会相互之间产生影响——所以现在又回到了高度优化过的串行连接。硬件的发展以及对于包的分解、标记和重组的进步使得串行连接变得更快,如USB 2.0和FireWire。

PCI Express是一个串行连接,工作原理更像上一个网络而不是总线。不同于一条总线处理多个源传输的数据,PCIe有一个交换机来控制串行通讯的点对点连接。这些连接和交换机配合得很好,直接把数据传输到了需要送到的设备上。每个设备都有它自己专用的连接,所以多个设备就不用像普通的总线那样来共享带宽了。


当电脑启动的时候,PCIe决定了哪些设备上插在主板上的。然后它识别出设备之间的连接,创建了一个图来决定数据的流向,并且协商好了每条连接的宽度。这些连接和设备的识别与PCI使用的是相同的协议,所以PCIe不需要软件或操作系统有任何的修改。

PCIe是如何工作的——How PCI Express Works

PCI Express的连接中的每个lane由两对导线组成——一个来发送另一个来接受。数据包以每个时钟一个包的速率通过lane来传输。一个 x1 的连接,即最小的PCIe连接,只有一个lane即四根导线。在每个方向的传输上都可以达到 1bit每时钟。一个 x2 的连接由八根导线每次传输 2bit,一个 x4 的每次 4bit,以此类推。其他的配置选择有 x12, x16和 x32。


PCI Express对于台式机和笔记本都是可用的。使用PCIe会降低主板的生产成本,因为它的连接要比PCI需要更少的针脚。它也可以支持更多的设备,包括以太网卡、USC 2.0和显卡。

但一个串行连接是如何做到比32根导线的PCI或者64根线的PCIx更快的呢?在下一节我们会来分析PCIe是使用串行连接来如何提供这个大的带宽。


PCIe是如何工作的——How PCI Express Works

32位的PCI总线最大频率可以达到 33 MHz,对应最大传输速度是 133 MB/s。64位的PCI-x总线宽度则是PCI总线的两倍。不同的PCI-X规范允许不同的数据传输速率,每秒可以传输 512MB 到 1GB 之间。

一根PCI Express lane则可以在量高方向上传输 200MB/s 的数据。x16 的PCIe连接可以达到惊人的 6.4GB/s,而且是每个方向上。在这种高速支持下,x1 的连接可以轻易支持 GB 级别的网络连接、声卡和应用。x16的连接则可以轻易支持更强劲的图形接口。

这怎么可能呢?有几点简单的优势使得这种串行连接的巨大提升变得可能。
- 对于数据传输顺序的优化,使得系统可以把更重要的数据优先传输来避免瓶颈
- 依赖于时间的实时数据传输
- 用于制作导线的物理材料的发展
- 更好的握手协议和错误检测
- 更优的算法来实现数据的拆分和重组

并且,既然每个设备都有自己专用的、和交换机之间的点对点连接,多个源传输的信号不需要像总线上那样互相协调。


被降低的总线速度

干涉和信号衰减在并行连接中很常见。劣质的材料,相邻导线的交叉信号导致的噪声,使得连接的速度下降。PCI-X提供的更大的带宽意味着传输更多数据的同时也会产生更多的噪声。同时,PCI协议也没有对数据的优先进行处理,使得更重要的数据会被总线的瓶颈所阻碍。使用AGP(Accelerated Graphics Port)插槽来为显卡提供服务,虽然这大大降低了总线的负载压力,但对于更快的处理器和IO设备来说仍然不够。


我们已经认可现在PCIe已经可以完全取代AGP接口。x16的 PCIe 插槽可以比现有的 AGP x8 连接每秒传输多得多的数据。另外,一个 x16 的插槽可以为显卡提供 75w 的功率, 相对而言 AGP x8 的连接之能提供 25w 或 42w。但是PCIe对于未来图形的发展有着更大的适配潜力。

PCIe是如何工作的——How PCI Express Works

有了正确的硬件,一个拥有两个 x16 PCIe 接口的主板可以同时支持两个显卡。不少厂商正在利用这个特点来研发和生产系统:NVDIA的Scalable Link Interface (SLI):有一个支持SLI的主板,两个SLI接口的显卡和一个SLI连接器,一个用户可以在同一个系统中放置两个显卡。这两张卡通过把屏幕分成两半来协同工作。每个卡控制屏幕的一半,而连接器则用来确保所有的一切都能够正确地同步。


ATI(现AMD)交叉火力技术:两个 ATI Radeon 显卡,一个有着混合引擎芯片插在适配的主板上。ATI的技术主要是图像质量而不要求匹配的显卡,尽管高性能的系统必须有着匹配的显卡。交叉火力技术把渲染的工作通过三个方式分开了:

  • 把屏幕分成两半从而把每一半的工作交给一个显卡
  • 把屏幕分成多条横线从而让每个显卡渲染单号横线,另外一个渲染双号横线
  • 让每个显卡交替地渲染帧图像

Alienware(外星人)的Video Array技术:两个现有的显卡可以合在一起,通过一个Video Merger Hub和相应的软件。这个系统会使用特制的冷却和电力系统来处理所有散热和电力的需求。外星人的技术甚至可以支持高达 4 个显卡。

既然PCI、PCI-X和PCIExpress都是相互兼容的,这三个就可以同时存在。更进一步来说,显卡在PCIe连接上达到来最快的传输速度。网卡、声卡以及其他的外设,则在发展中显得更慢了。但是既然PCIe和现有的操作系统兼容,并且能提供更快的速度,它就很可能会最终取代PCI成为PC的标准。渐渐的,基于PCI的设备就会被淘汰。


比较小的PCIe卡可以插在更大的PCIe插槽中。计算机只是简单的忽略了多余的连接。比如,x4的卡可以插在x16的插槽中。然而一个x16的插槽相对于x4的插槽来说,则是太大了。


相关文章


更多链接