1.1 PCIe 特征
PCIe 的英文全称是Peripheral Component Interconnect Express,是由PCI总线拓展而来,下面是PCIe总线的重要特征。
(1)全双工点对点串行连接。
全双工是指连接的双方可以同时接收和发送,并且互不干扰。
串行连接是指其通过高速差分信号对(Serial Differential Pair) 逐位传输数据的通信方式,相对于并行传输方式,具有抗共模噪声强、速率可拓展(提升通道数或每通道的速率)、布线相对简单的优势。
点对点是指该条总线上只有收发双方,所以可以独占总线的带宽。
(2)灵活的link位宽
PCIe的连接可以是x1、x2、x4、x8、x12、x16、x32,x12和x32市面上用的比较少。这里的xN是指每个连接有多少组差分对,比如x2是指两组,而每组由发送和接收2个差分对组成,所以一共有4个差分对。xN里的这个N是多少,就代表了这个link有N个lanes。
(3)灵活的link速率
PCIe连接的线速率有很多种,跟PCIe协议的代别有关。目前市面上3.0居多,已经可以满足大部分应用的需求,而4.0以上线速率非常高,对板材的质量要求很苛刻,所以价格昂贵。
带宽的计算方式,Bandwidth = 线速率 x lane数 x 编码效率
例如PCIe 2.0 x4 的单向(发送或接收)有效带宽为 5GT/s x 4 x 0.8(8b/10b编码) = 16Gbit/s = 2 GB/s。
1.2 拓扑结构
PCIe的拓扑结构里主要有四种类型,根复合体(Root Complex)、交换机(Switch)、端点设备(Endpoint)和桥(PCIe bridge)。
根复合体(Root Complex,简称RC) 是连接CPU与PCIe设备的核心枢纽,承担着拓扑起点、协议转换和系统管理等关键作用。
Switch(交换机) 的作用是扩展PCIe通道并智能管理数据流,类似于网络交换机在以太网中的角色。
Endpoint是指直接执行特定功能的终端设备,它是PCIe拓扑结构中的数据生产者或消费者,与根复合体(Root Complex)或交换机(Switch)通信,比如数据采集卡、网卡、FPGA、GPU、USB控制器等。
Bridge(桥) 的作用是 连接不同总线协议或拓扑域,实现设备间的兼容性和数据转发,比如PCIe to PCI 桥,可以兼容旧的PCI设备。
1.3 lane数和线速率协商
有的时候我们一个x16的插槽插上了一个x8的卡,那么它们lane数和线速率具体的协商结果是怎样的呢?主要遵循一下几个规则。
(1)最大lane数不超过插槽的物理限制
比如一个插槽是x8的,那么最多只能插x8的卡,因此能够运行的最大lane数就是8。
(2)实际lane数和运行模式有关
比如一个x16插槽运行在x4,如果插入一个x8的卡,那么实际运行也是x4,但如果插入一个x2的卡,那么最终协商结果运行在x2模式下。
(3)实际运行线速率由两者共同支持的最低版本决定
PCIe2.0的卡槽和PCIe3.0的卡,最终协商速率为5GT/s,PCIe4.0的卡槽和PCIe2.0的卡,协商结果依旧为5GT/s。
1.4线序和极性
发送和接收方之间连接的lanes线序可以翻转,即图中两种方式的连接都可行,这样的好处是使布局布线更加方便,不用交叉,通常交叉意味着PCB层数需要更多,增加成本,也不利于信号完整性。
同样是为了布局布线方便,每个lane之间的极性也可以翻转,每条lane都必须在训练阶段独立的支持极性的自动检测和纠正。和lane线序不同的是,极性自动翻转是PCIe设备必须支持的。
1.5接口类型
目前PCIe的接口类型主要有以下几类。 金手指就是插槽类型的接口主要在台式机里比较常见,M.2、U.2接口常见于SSD设备。
各种PCIe接口图片如下所示:


