《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(2)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(1)

4.1 PCIe总线的基础知识

与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为数据发送端和数据接收端。PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次。PCIe总线使用的层次结构与网络协议栈较为类似。

4.1.1 端到端的数据传递

PCIe链路使用“端到端的数据传送方式”,发送端和接收端中都含有TX(发送逻辑)和RX(接收逻辑),其结构如图4-1所示:

《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(2)_第1张图片

由上图所示,在PCIe总线的物理链路的一个数据通路(Lane)中,由两组差分信号、共4根信号线组成。其中发送端的TX部件与接收端的RX部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的RX部件与接收端的TX部件使用另一组差分信号连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。一个PCIe链路可以由多个Lane组成。

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总线规范 总线频率 单Lane的峰值带宽/(GT/s) 编码方式
1.x 1.25 2.5 8/10b 编码
2.x 2.5 5 8/10b 编码
3.0 4 8 126/130b 编码

如上表所示,不同的PCIe总线规范使用的总线频率并不相同,其使用的数据编码方式也不相同。PCIe总线V1.x和V2.0规范在物理层中使用8/10b编码,即在PCIe链路上的10 bit中含有8 bit的有效数据;而V3.0规范使用128/130b编码方式,即在PCIe链路上的130 bit中含有128 bit的有效数据。

PCIe总线V3.0规范使用的总线频率虽然只有4GHz,但是其有效带宽是V2.x的两倍。下文将以V2.x规范为例,说明不同宽度PCIe链路所能提供的峰值带宽,如表4-2所示:

表4-2 PCIe总线的峰值带宽

PCIe总线的数据位宽 x1 x2 x4 x8 x12 x16 x32
峰值带宽/(GT/s) 5 10 20 40 60 80 160

由上表所示,x32的PCIe链路可以提供160GT/s的链路带宽,远高于PCI/PCI-X总线所能提供的峰值带宽。而即将推出的PCIe V3.0规范使用4GHz的总线频率,将进一步提高PCIe链路的峰值带宽。

特别说明:

由于此书年代久远,是十几年之前的书了,因此这部分内容在当时是这样的。但现如今PCIe总线规范早已不止3.0了。具体如下(援引PCIe标准升级历程:PCIe3.0仍是消费市场主流选择,5.0正加速推进):

传输速率和带宽大小是 PCIe 总线的核心性能,围绕这两大性能,PCIe 总线标准持续演进升级,迄今为止该标准已经历了 5 代的更新迭代。按照数据传输技术的发展,处理器I/O 带宽的需求每三年就会倍增,PCIe 也大致按照三年一代的速度更新演进。

  • PCIe 1.0 在 2003 年由 PCI-SIG 正式推出相关规范,其通道运行频率为 2.5GHz,相应的数据传输速率为250MB/s;
  • PCIe 2.0 规范发布于 2007 年 1 月,相比 PCIe 1.0,PCIe 2.0 的每通道频率翻倍达到了5GHz,相应的传输能力也翻倍,达到了 500MB/s;
  • 2010年 PCIe 3.0 规范发出,但受制于当时的技术条件,第三代 PCIe 的效率提升仅 60%;
  • PCIe 4.0 规范在第三代发布 7 年后(2017年)正式推出,数据传输速率提升到 2GB/s;
  • 由于第四代规范延迟发布,为追赶进度,仅两年后(2019年) PCIe 5.0 推出;
  • 2022 年 1 月份第六代版本的规范标准 PCIe 6.0 规范也已正式出台。

PCIe标准升级历程

《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(2)_第2张图片

在PCIe总线中,使用GT(Gigatransfer)计算PCIe链路的峰值带宽GT是在PCIe链路上传递的峰值带宽,其计算公式为总线频率×数据位宽×2。在PCIe总线中,影响有效带宽的因素有很多,因而其有效带宽较难计算。尽管如此,PCIe总线提供的有效带宽还是远高于PCI总线。PCIe总线也有其弱点,其中最突出的问题是传送延时

虽然PCIe链路使用串行方式进行数据传送,然而在芯片内部,数据总线仍然是并行的,因此PCIe链路接口需要进行串并转换,这种串并转换将产生较大的延时。除此之外PCIe总线的数据报文需要经过事务层、数据链路层和物理层,这些数据报文在穿越这些层次时,也将带来延时

在基于PCIe总线的设备中,×1的PCIe链路最为常见,而×12的PCIe链路极少出现,×4和×8的PCIe设备也不多见。Intel通常在ICH(I/O Controller Hub)中集成了多个×1的PCIe链路用来连接低速外设而在MCH(Memory Controller Hub)中集成了一个×16的PCIe链路用于连接显卡控制器。而PowerPC处理器通常能够支持×8、×4、×2和×1的PCIe链路。

PCIe总线物理链路间的数据传送使用基于时钟的同步传送机制,但是在物理链路上并没有时钟线PCIe总线的接收端含有时钟恢复模块CDR(Clock Data Recovery),CDR将从接收报文中提取接收时钟,从而进行同步数据传递

值得注意的是,在一个PCIe设备中除了需要从报文中提取时钟外,还使用了REFCLK+和REFCLK-信号对作为本地参考时钟,这个信号对的描述见下文。

更多内容请看下回。

你可能感兴趣的:(PCI,Express,PCI,PCIe)