1、PCIe概述:PCIe是什么?为什么需要PCIe?PCIe与PCI/PCI-X的区别

大家好,我是老张。做硬件这行十几年了,今天咱们聊聊PCIe。

很多刚入行的工程师问我:PCIe到底是个啥?为什么现在几乎所有的高速接口都在用PCIe?它跟老前辈PCI、PCI-X又有什么不同?

嗯,这些问题问得好。咱们一个一个来拆解。

1.1 PCIe是什么?

PCIe,全称是Peripheral Component Interconnect Express。翻译过来就是「外围组件互连快速通道」。

说白了,它是一种高速串行总线标准。用来连接CPU和外部设备,比如显卡、SSD、网卡、FPGA加速卡等等。

我习惯把它理解成「数据高速公路」。CPU是城市中心,外设是郊区工厂,PCIe就是连接它们的高速公路。数据在这条路上跑得越快,系统性能就越好。

核心特点:

  • 串行传输:数据一位一位地传,不像老式总线那样并行传
  • 差分信号:一对线传一个信号,抗干扰能力强
  • 点对点连接:每个设备独享带宽,不共享
  • 可扩展:x1、x4、x8、x16,通道数越多越快

举个例子。你插一张显卡到主板上,那个长长的金色手指插槽,就是PCIe x16插槽。显卡和CPU之间通过这个插槽通信,传输游戏画面数据。

1.2 为什么需要PCIe?

这个问题其实很有意思。你想想看,在PCIe出现之前,计算机里用的是PCI总线和PCI-X总线。它们有什么问题?

第一个问题:带宽不够。

PCI总线是33MHz或66MHz,32位宽,理论带宽只有133MB/s或266MB/s。到了PCI-X,虽然频率提到了133MHz,带宽到了1GB/s左右,但依然不够用。

我记得2005年左右,千兆网卡开始普及。一块千兆网卡理论吞吐量是125MB/s,再加上其他设备,PCI总线很快就撑爆了。

第二个问题:共享总线。

PCI是共享总线架构。什么意思?所有设备挂在同一条总线上,谁要用总线,得先申请。就像一条单车道,所有车都得排队走。一个设备占着总线,其他设备就得等着。

我在项目中遇到过这种情况:一台服务器插了4块千兆网卡,跑着跑着就丢包。查了半天,发现是PCI总线带宽被占满了,网卡之间互相抢资源。

第三个问题:并行信号的天生缺陷。

PCI是并行总线,32根数据线同时传。频率一高,信号之间的串扰、时钟偏移问题就特别严重。频率上不去,带宽就上不去。

PCIe的出现,就是为了解决这些问题。

我的建议:如果你现在还在用PCI接口的设备,赶紧换吧。PCIe不仅快,而且稳定得多。尤其是做服务器或者高性能计算,PCIe是绕不开的。

1.3 PCIe与PCI/PCI-X的区别

咱们用一张表来对比,一目了然。

特性 PCI PCI-X PCIe
架构 共享并行总线 共享并行总线 点对点串行
传输方式 并行(32/64位) 并行(64位) 串行(差分对)
时钟频率 33/66 MHz 66/133 MHz 2.5/5/8/16 GHz
单通道带宽 133/266 MB/s 532 MB/s ~ 1 GB/s 250 MB/s ~ 2 GB/s(每通道)
可扩展性 固定宽度 固定宽度 x1/x4/x8/x16/x32
热插拔 不支持 部分支持 支持
信号线数量 多(约50-80根) 多(约80-100根) 少(每通道4根)

从这张表能看出什么?

第一,架构完全不同。

PCI和PCI-X是共享总线,所有设备抢一条路。PCIe是点对点,每个设备有自己的专用通道。这就像从「单车道」变成了「多车道高速公路」,每辆车都有自己的车道。

第二,串行比并行快。

很多人不理解:并行不是一次传多位吗?为什么反而慢?

原因很简单:并行信号频率上不去。32根线同时传,信号到达时间有微小差异,频率一高就出错。串行虽然一次只传1位,但频率可以做到很高。PCIe 4.0单通道就能跑到16 GT/s,比PCI快了上千倍。

第三,引脚数少了很多。

PCI需要几十根信号线,PCI-X更多。PCIe一个x1通道只需要4根线(两对差分信号)。这意味着PCB布线更简单,板子可以做得更小。

我做过一个项目,要在小尺寸板卡上集成4个PCIe设备。如果用PCI,光走线就占满两层板。换成PCIe,轻松搞定。

避坑指南:我曾经遇到过客户把PCIe设备插到PCI插槽里,结果烧了。虽然物理尺寸上PCIe x1和PCI插槽有点像,但电气定义完全不同。千万别混插!

1.4 实际应用中的选择

现在市面上主流的接口是PCIe 3.0和4.0。PCIe 5.0也开始出现在高端平台上了。

我个人的经验是:

  • 普通办公、家用:PCIe 3.0 x16就够用了,显卡、SSD都能跑满
  • 游戏、设计:建议PCIe 4.0,尤其是NVMe SSD,速度翻倍
  • 服务器、数据中心:PCIe 4.0或5.0,网卡、GPU、FPGA都需要高带宽
  • 嵌入式、工业:PCIe 2.0或3.0,够用且稳定

嗯,这里要注意一点:PCIe是向下兼容的。你插一张PCIe 4.0的显卡到PCIe 3.0的插槽上,能工作,但速度会降到3.0的水平。反过来也一样。

好了,这一章就聊到这儿。下一章咱们深入PCIe的体系结构,看看它内部是怎么工作的。

本章小结:

  • PCIe是高速串行总线,替代了老旧的PCI/PCI-X
  • 点对点架构,每个设备独享带宽
  • 串行传输,频率高,速度快
  • 引脚少,布线简单,支持热插拔
  • 选择版本时根据实际需求来,不必盲目追新

公众号:蓝海资料掘金营,微信deep3321