与
PCI
总线不同,
PCIe
总线使用端到端的连接方式,在一条
PCIe
链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。
PCIe
总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次。
PCIe
总线使用的层次结构与网络协议栈较为类似。
4.1.1
端到端的数据传递
PCIe
链路使用“端到端的数据传送方式”,发送端和接收端中都含有
TX(
发送逻辑
)
和
RX(
接收逻辑
)
,其结构如
图
4
‑
1
所示。
由上图所示,在
PCIe
总线的物理链路的一个数据通路
(Lane)
中,由两组差分信号,共
4
根信号线组成。其中发送端的
TX
部件与接收端的
RX
部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的
RX
部件与接收端的
TX
部件使用另一组差分信号连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。一个
PCIe
链路可以由多个
Lane
组成。
高速差分信号电气规范要求其发送端串接一个电容,以进行
AC
耦合。该电容也被称为
AC
耦合电容。
PCIe
链路使用差分信号进行数据传送,一个差分信号由
D+
和
D-
两根信号组成,信号接收端通过比较这两个信号的差值,判断发送端发送的是逻辑“
1
”还是逻辑“
0
”。
与单端信号相比,差分信号抗干扰的能力更强,因为差分信号在布线时要求“等长”、“等宽”、“贴近”,而且在同层。因此外部干扰噪声将被“同值”而且“同时”加载到
D+
和
D-
两根信号上,其差值在理想情况下为
0
,对信号的逻辑值产生的影响较小。因此差分信号可以使用更高的总线频率。
此外使用差分信号能有效抑制电磁干扰
EMI(Electro Magnetic Interference)
。由于差分信号
D+
与
D
–
距离
很近而且信号幅值相等、极性相反。这两根线与地线间耦合电磁场的幅值相等,将相互抵消,因此差分信号对外界的电磁干扰较小。当然差分信号的缺点也是显而易见的,一是差分信号使用两根信号传送一位数据;二是差分信号的布线相对严格一些。
PCIe
链路可以由多条
Lane
组成,目前
PCIe
链路可以支持
1
、
2
、
4
、
8
、
12
、
16
和
32
个
Lane
,即
×1
、
×2
、
×4
、
×8
、
×12
、
×16
和
×32
宽度的
PCIe
链路。每一个
Lane
上使用的总线频率与
PCIe
总线使用的版本相关。
第
1
个
PCIe
总线规范为
V1.0
,之后依次为
V1.0a
,
V1.1
,
V2.0
和
V2.1
。目前
PCIe
总线的最新规范为
V2.1
,而
V3.0
正在开发过程中,预计在
2010
年发布。不同的
PCIe
总线规范所定义的总线频率和链路编码方式并不相同,如
表
4
‑
1
所示。
表
4
‑
1
PCIe
总线规范与总线频率和编码的关系
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
如上表所示,不同的
PCIe
总线规范使用的总线频率并不相同,其使用的数据编码方式也不相同。
PCIe
总线
V1.x
和
V2.0
规范在物理层中使用
8/10b
编码,即在
PCIe
链路上的
10 bit
中含有
8 bit
的有效数据;而
V3.0
规范使用
128/130b
编码方式,即在
PCIe
链路上的
130 bit
中含有
128 bit
的有效数据。
由上表所示,
V3.0
规范使用的总线频率虽然只有
4GHz
,但是其有效带宽是
V2.x
的两倍。
下文将以
V2.x
规范为例,说明不同宽度
PCIe
链路所能提供的峰值带宽,如
表
4
‑
2
所示。
表
4
‑
2
PCIe
总线的峰值带宽
|
|
|
|