第三代局域I/O总线的要求及使用PCI Express交换器提高性能

描述

PCI总线的出现已有10年之久,并将在未来数年继续扮演重要角色。然而,如今和与未来的处理器与I/O器件需要更高的I/O带宽,这已超出PCI 2.2或PCI-X的范围,现在业界需要制定新一代的PCI技术作为下一代平台的标准I/O总线。业界致力于创造出更高带宽的总线,目前已经有支持各种特定应用总线的PC平台,以及PCI I/O扩展总线。

在可预见的未来,处理器系统总线仍将持续提升其频率与电压,而内存带宽必须配合处理器频率的攀升而提高。芯片组通常被划分为北桥芯片(连接内存等)与南桥芯片(连接I/O等),因为内存总线通常会随着每一代处理器的演进而更新。芯片组的一项主要功能就是将这些持续改变的总线与稳定的I/O总线加以区隔。

仔细分析上个世纪90年代的PCI信号技术,我们可发现分支型(multi-drop)的平行式总线已逐渐走近其性能的极限,已无法轻易地升级频率或降低电压;其时钟同步数据传输受到信号偏移的限制,且信号路由法则已趋近FR4技术的成本效益极限。业界尝试各种方法来突破这些限制,创造出更高带宽的通用型I/O总线,导致须付出大笔成本来提升频宽,性能增加的幅度却相当小。对于提供局域I/O总线标准方面,图1所示的台式机平台解决方案仅是问题的一部分。PCI在制定规格之初并没有想到会发展至台式机平台、移动设备、服务器以及嵌入型通信等市场。

现今的应用软件对于平台硬件的性能要求日趋苛刻,尤其是I/O子系统。来自不同音频和视频来源的流数据已在台式机平台与移动平台中很常见,而在PCI 2.2或PCI-X规格中至今尚未有足够的性能来支持这类应用。诸如视频点播与音频重分布(audio re-distribution)等应用也迫使服务器需满足“实时”传送的需求。许多通信应用与嵌入型PC控制系统亦需实时处理数据。今天的平台,例如台式PC,也需以越来越高的数据流量来处理多组同步传输。同等对待所有数据已不能被接受,例如先处理流数据就更加重要,因为实时数据若处理过慢,等于没有数据一样。数据必须被加上标签,以便I/O系统能对它的数据流制定优先级来流经该平台。

总线

像千兆以太网与InfiniBand等应用,需要更高带宽的I/O。第三代I/O总线除了扩展带宽外,还需要整合一些额外的功能。

以下归纳出第三代局域I/O总线的要求:

1.支持多重市场以及新兴应用:统一式I/O架构,支持台式机、移动设备、服务器、通信平台、工作站以及嵌入型设备;

2.成本与高产量:在系统层,成本需低于(或等于)PCI架构的成本;

3.兼容PCI的软件模式:不需任何修改就能引导现有的操作系统;具有与PCI兼容的配置与设备驱动程序接口;

4.性能:通过频率以及额外的传输管线来提升性能。每个引脚的带宽很高。资源开销低。低传输延迟;

5.支持多平台连接类型:芯片对芯片,通过连接器的板对板,功能扩展底座(Docking Station),支持新的产品外型尺寸;

6.先进功能:涵盖不同的数据类型。电源管理。服务质量。支持热插拔。数据完整性与错误处理。可扩展性。支持嵌入史与通信应用的各种基本机制。

7.其它:针对簇解决方案,支持处理器、内存、线缆的协调互连机制。

加入交换器

最新的高速、低引脚数以及点对点技术发展,为增大传输带宽提供了一套具有吸引力的替代方案。PCI Express分支型的平行式总线拓扑包括一个宿主桥接器与多组端点(I/O单元);多重点对点连接架构将交换器这个新元素导入I/O系统拓扑中,结构如图1所示。交换器取代了多点下载总线,用来为I/O总线提供扇出。交换器能在不同端点之间提供对等通讯机制,若其中没有涉及高速缓存的传输,就不需要转送至宿主桥接器。交换器看似一个独立的逻辑单元,但可整合至宿主桥接器中。

低信号数、点对点连接模式可通过连接器与线缆加以建构。PCI Express能创造出新的系统划分模式。

图2至图4显示运用PCI Express架构的2004年平台。目前平台中多组类似的并行总线被连接了多组管线的PCI Express所取代。每组链接都可视需要增加更多的管线,藉此提高传输带宽。例如台式机平台的图形以及服务器平台中的总线桥接器(如PCI Express- to -PCI-X)。

总线

总线

总线

PCI Express交换器提供输出功能,并支持一系列的连接器,以增加高性能的I/O。交换器是一逻辑单元,能建置在含有宿主桥接器的元件中,或是构建成独立的元件。

业界预估PCI将被许多平台继续延用,以支持目前各种带宽较低的应用,直到有迫切性的需求出现,例如应用在新的产品外型尺寸上,届时将会全面转移至完全的PCI Express平台。

服务器平台需要更多的I/O性能与连接管道,其中包括高带宽的PCI Express,连接至PCI-X插槽、千兆以太网、以及InfiniBand架构。图3显示PCI Express如何为服务器提供与台式机系统相同的优势。PCI Express作为机体内部I/O,再搭配InfiniBand作为机体外部的I/O,提供簇系统的互连管道,让服务器能从“平行式共享总线”转移至高速的序列互连架构。

网络通讯平台可使用多个交换器,藉此提高联机效率与服务质量,来区隔不同的传输数据流。这类平台也能运用多个PCI Express链接,建构出一个模块化的I/O系统。

分层式设计

PCI Express架构采取分层式设计。新架构维持与PCI兼容的寻址模式(加载-存储架构加上一组平面式的寻址空间),确保目前所有应用程序与驱动程序不须变更即可在新平台上执行。PCI Express配置运用许多PCI即插即用规格中的标准机制。软件层负责产生读取与写入要求,这些要求的传输则由交易层透过基于分组的分离传输(split-transaction)传递至I/O器件。链路层在这些数据包中加入序列号与循环冗余码检测(CRC),建构出一套极为可靠的数据传输机制。基本物理层则由内建一个信号传送对与接收对的dual-simplex信道所组成。初期的速度为每方向每秒2.5千兆次传输,提供一个200MBps的通讯信道,带宽接近典型PCI接口的两倍。

物理层

基础PCI Express链接包含两组低电压之驱动信号对:传送信号对与接收信号对。内建之数据时脉运用8b/10b编码机制达到极高的数据传输率。初期的时脉频率为每方向每秒2.5千兆次传输,随着硅组件技术的演进,未来将可提高至每方向每秒10千兆次传输(信号在铜导线中的最高理论值)。物理层负责在两组PCI Express装置的链接层之间传送封包。

PCI Express链接层可透过增加信号对,建构多组管线,以达到带宽线性扩充的目标。物理层能搭配x1、x2、x4、x8、x12、x16以及x32管线的宽度,并以位数据来切分,如图5所示。每个位以8b/10b编码机制在各管线之间传送。对于其它功能层而言,数据的译码与重新编码都是透明化的模式。

在启始阶段,每个PCI Express链接设定都会由每个链接端点的两个代理元件相互协商管线的宽度与频率。此过程中固件或操作系统软件都没有参与。

PCI Express架构透过速度升级以及各种先进的编码技术,达到未来性能提升的目标。未来的速度、编码技术或媒介都仅能影响物理层。

链路层

链路层主要的角色是确保PCI Express链接稳定地传送数据包。链路层负责维持数据的完整性,并在交易层数据包中加入序列号与CRC。

大多数数据包都在交易层中构建。授权型(credit-based)流程控制协议确保数据包仅会在另一端有空出的缓冲区能储存接收数据包时才会送出。这种模式能预防数据包重传的状况,避免因资源限制而浪费总线带宽。当数据包损毁时,链路层会自动重新传送封包。

交易层

交易层可读写来自软件层的请求,然后创建所请求的数据包传送至链接层。所有要求都采用个别传输的模式,有时会需要响应封包。交易层也会收到发自链路层的响应数据包,并与原始的软件请求进行比对。每个数据包有一个独一无二的识别符,让响应数据包能被转送至正确的发送端。数据包格式支持32位内存寻址以及延伸型6?位内存寻址模式。封包亦具有“no-snoop”、“relaxed-ordering”以及“priority”等属性,系统能根据这些属性在I/O子系统中为数据包找出最佳的传输线路。

总线

交易层支持四种寻址空间:其中包括三种PCI寻址空间(内存、I/O以及配置),并增加一种消息空间。PCI 2.2推出一种称为消息信号中断(MSI)的系统中断传递方法。系统运用一套特殊格式的内存写入处理模式,而不是利用硬线边带信号。这是PCI 2.2系统的一项可选型功能。PCI Express规格重复运用MSI的概念作为中断处理的主要方法,并运用Message Space支持所有边带信号,例如像中断、电源管理要求以及重新激活等,其模式与带内Messages相同。PCI 2.2规格中的其它“special cycles”,像Interrupt Acknowledge,亦视为带内Messages。可以将PCI Express Messages看作是“虚拟线路”,因为它的效果就是消除各种的目前用于平台实现中的边带信号。

软件层

软件兼容性是第三代局域I/O总线最重要的特性。软件兼容有两个层面:初始化/列举以及运行阶段(run-time)。PCI具有一套鲁棒性强的初始化模块,让操作系统能搜寻所有外插硬件设备,并分配适量的系统资源例如内存、I/O空间以及中断等给这些设备,建立一个最佳化的系统环境。PCI配置空间以及I/O器件的可编程性是关键性的观念,仍被PCI Express架构所延用。事实上,所有操作系统不须任何修改就可直接导入PCI Express-based平台。

PCI支持的运行阶段软件模块是一套加载-储存式的共享内存模块,PCI Express架构仍继续延用这种技术,让所有现有软件不须修改就能继续在PCI Express平台上执行,且新软件可使用各种PCI Express的新功能。

责任编辑:gt


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分