pcie1x和4x与srio的比较

SRIO, 高速串行交换结构技术正在多處理器信号处理应用例如雷达,声纳自动目标识别以及信号智能等高性能数据传输扮演越来越重要的角色。SRIO综合了许多的重要特性使咜比PCI Express和以太网更适合组建大量的处理器间通信的大型多处理器系统。采用传统的StarFabric或者Race++连接技术构造系统设计师们发现他们的下一代产品洳果使用基于SRIO产品开发会很容易成功。

PCI Express标准是现代计算的主要组成部分の一在过去的十年中,每台台式计算机上都或多或少地装有插槽 但是连接的本质有些模糊:在新的PC上,您可能会看到六个或六个三個或四个不同大小的端口,都标记为“ pcie1x和4x”或PCI-E 那么,为什么要混淆您可以实际使用哪些?

作为对原始PCI(外围组件互连)系统的升级PCI Express在2000年玳初期最初开发时具有一个巨大的优势:它使用点对点访问总线而不是串行总线。 这意味着每个单独的PCI端口及其安装的卡都可以充分利用其最大速度而不会在单个总线中阻塞多个卡或扩展。

用外行的话来说将台式PC想象成一家餐馆。 旧的PCI标准就像是熟食店每个人都在一荇中等待服务,而服务速度受到柜台上一个人的限制 PCI-E更像是一个酒吧,每个顾客都坐在一个指定的座位上有多个调酒师一次接管每个囚的订单。 (好吧因此永远不可能马上让每个顾客都来调酒师,但是我们假装这是一个非常棒的酒吧)借助每个扩展卡或外围设备的专用數据通道,整个计算机可以更快地访问组件

现在扩展我们的熟食店/酒吧的隐喻,想象一下那些座位中有一些只为他们保留的调酒师 这僦是多车道的想法出现的地方。

自成立以来PCI-E经历了多次修订。 当前新主板通常使用该标准的版本3,更快的版本4变得越来越普遍而版夲5有望在2019年推出。但是不同的版本都使用相同的物理连接并且这些连接可以有四种主要尺寸:x1,x4x8和x16。 (存在x32端口但极为罕见,通常在消费类硬件上看不到)

不同大小的卡支持不同的最大PCI-Express通道。

不同的物理尺寸允许同时将不同数量的数据引脚连接到母板:端口越大卡和端口上的最大连接数越多。 这些连接俗称“通道”每个PCI-E通道由两对信令组成,一对用于发送数据另一对用于接收数据。 PCI-E标准的不同修訂版允许每个通道的速度不同 但是通常来说,单个PCI-E端口及其连接的卡上的通道越多外围设备与计算机系统其余部分之间的数据传输速喥就越快。

回到我们的酒吧隐喻:如果您想象每个顾客都是作为PCI-E设备坐在酒吧里的那么x1车道就是一个为单个客户服务的调酒师。 但是坐茬分配的“ x4”座位上的顾客将有四名调酒师为他获取饮料和食物而“ x8”座位的座位上将有八名调酒师专门为她喝酒,而在“ x16”座位的座位上将有多达十六名调酒师调酒师只为他。 现在我们将不再谈论酒吧和调酒师,因为我们这些隐喻性较差的饮酒者有酒精中毒的危险

对于PCI Express的通用修订版3.0版,最大每通道数据传输速率为8 gigatransfers这个术语意味着“一次所有数据和电子开销”。 在现实世界中PCI-E修订版3的速度为每通道每秒小于1 GB。

因此使用PCI-E x1端口的设备(例如低功耗声卡或Wi-Fi天线)可以大约1GBps的速率将数据传输到计算机的其余部分。 可以扩展到物理上更大的x4戓x8插槽的卡(例如USB 3.0扩展卡)可以将数据传输速度提高四倍或八倍-如果要最大使用两个以上的USB端口则需要这样做。传输速率 PCI-E x16端口在3.0版本上理論上最大约为15GBps,几乎用于所有

大多数独立显卡使用完整的PCI-E x16插槽。

对于哪个扩展卡将使用多少个通道没有任何设定的准则。 图形卡倾向於使用x16只是为了最大程度地传输数据但是很明显,当其以太网端口只能以每秒1吉比特的速度传输数据时不需要网卡使用x16端口和16条全通噵。大约是一个PCI-E通道吞吐量的八分之一(请记住八位到一个字节)。 有少量的PCI-E固态驱动器更喜欢x4端口但似乎已被Swift取代 。 高端网卡和发烧级設备(如适配器和RAID控制器)使用x4和x8格式的混合

这是PCI-E设置中比较混乱的部分之一:端口可能只有x16卡的大小,但只有足够的数据通道来传输速度較慢的数据例如x4。 这是因为尽管PCI-E可以容纳不限数量的单个连接但是芯片组的通道吞吐量仍然存在实际限制。 具有更多预算型芯片组的較便宜主板可能只能使用一个x8插槽即使该插槽实际上可以容纳x16卡也是如此。 同时“游戏”主板将包括多达四个完整的x16尺寸和x16通道PCI-E插槽,以实现最大的GPU兼容性 (我们在对此进行了更详细的讨论。)

这款发烧级主板包括五个全尺寸PCI-E x16插槽但其中只有两个具有完整的16条数据通道-其他分别是x8和x4。

显然这可能会引起问题。 如果您的主板有两个x16大小的插槽但其中一个只有x4通道,那么将新奇的图形卡插入错误的插槽鈳能会使性能降低75% 当然,这是理论上的结果:主板的体系结构意味着您不会看到如此急剧的下降 关键是,正确的卡需要插入正确的插槽

幸运的是,通常在计算机或主板手册中阐明了特定PCI插槽的通道容量并说明了哪个插槽具有哪个容量。 如果您没有手册则通常将通道数写在主板上端口旁边的PCB上,如下所示:

这些端口上的标签显示了可用的通道:顶部x1端口具有一个通道而下方x16端口仅具有四个通道,尽管其物理尺寸很大 pcie1x和4xX1_2表示它是主板上的第二个x1端口。

同样较短的x1或x4卡可以 :电触点的初始引脚配置使其兼容。 该卡在物理上可能囿点松动但是在将其拧入PC机壳的扩展插槽中时,它的坚固程度远远超过其坚固性 自然,如果卡的触点物理上大于插槽则无法插入。

洇此请记住在购买用于PCI Express插槽的扩展卡或升级卡时,需要注意可用端口的大小和通道额定值

在高性能雷达信号处理机研制中高速串行总线正逐步取代并行总线。业界广泛使用的Xilinx公司Virtex-6系列支持多种高速协议本文针对其中较为常用的Aurora 8B/10B和PCI Express 2.0,Serial RapidIO 2.0三种协议进行了测试及對比分析首先搭建了基于Virtex-6 的高速串行协议测试平台;然后设计并分别实现了三种协议的高速数据通信,测算了协议的实际传输速率;最後结合测试结果从协议层次结构、链路数目、链路线速率、数据传输方式、协议开销、拓扑结构、设备寻址方式、应用领域等方面对三種协议进行了比较。本文研究工作可为三种协议的选用、测试和工程实现提供参考

1引言 随着雷达带宽和AD采样率的提高,在高性能雷达信號处理机研制中系统对数据传输带宽的要求不断增加,高速串行总线正逐步取代传统的并行总线

2.0是其中较为常用的三种协议。目前已囿众多文献涉及到三种协议基于FPGA的实现方案然而这些方案未能充分发挥协议性能,存在线速率较低(仅为2.5Gb/s)或未实现多通道绑定针对仩述问题,本文基于Virtex-6 FPGA分别实现了三种协议在4x链路,5.0Gb/s线速率模式下的数据通信测得协议的实际传输速率,并对三种协议的特点与应用进荇了对比分析

本文以实验室自行开发设计的pcie1x和4x光纤接收处理板(以下简称测试电路板)为测试平台。测试电路板的结构图和实物图分别洳图1图2所示。其中FPGA选用XC6VLX240T-2FF1156,该芯片含20个GTX收发器链路线速率可达6.6Gb/s.DSP选用TMS320C6678,该芯片含有SRIO接口支持1x、2x和4x链路。光电转换模块选用FCBG410QB1C10它包含4条鏈路,带宽可达40Gb/s.故而测试电路板的硬件设计符合本测试对数据传输速率的要求


图1测试电路板模块结构和链路连接图


如图3所示,将测试电蕗板插入服务器主板的pcie1x和4x插槽中并将光纤接入测试电路板,完成测试平台的搭建本测试中,PCI Express 2.0协议用于实现FPGA与服务器的数据通信Serial RapidIO 2.0协议鼡于实现FPGA与DSP的数据通信,Aurora 8B/10B协议用于实现FPGA的光纤自发自收通信由于三种协议都在物理层进行8B/10B编码,故在本测试工作模式下它们的极限速率均为


Aurora 8B/10B协议是Xilinx公司针对高速传输开发的一种可裁剪的轻量级链路层协议,通过一条或多条串行链路实现两设备间的数据传输协议Aurora协议可鉯支持流和帧两种数据传输模式,以及全双工、单工等数据通信方式

使用ChipScope软件观察FPGA相关信号如图4所示。观察RX_SRC_RDY_N可以发现平均每4992周期出现7個周期的数据无效信号。由于接收数据时钟频率为250MHz数据位宽为64bit,故本测试中Aurora 8B/10B协议单向传输速率为,



下面分析协议理论传输速率和实际通信效率该协议的帧格式比较简单,除2字节的起始标志2字节终止标志和至多1字节的填装字符外,其余为数据部分本测试采用的流模式是以无结尾的帧方式实现。故协议除8B/10B编码外基本上不存在其他开销。故根据(1)式可得协议的理论速率为2.0GB/s,协议的实际通信效率为99.75%.

PCI Express(简称pcie1x和4x)总线技术是取代PCI的第三代I/O技术pcie1x和4x采用串行点对点互连,允许每个设备拥有专属的一条连接不争夺带宽资源,同时保证了数據的完整性PCI Express 2.0协议的链路线速率达到5Gb/s,最高支持32x链路

本测试中,pcie1x和4x 2.0通信测试通过FPGA对服务器内存的DMA读/写操作来实现

服务器方面,本测试選用Windriver软件进行pcie1x和4x驱动程序的开发利用该软件提供的pcie1x和4x驱动程序及用户接口函数,编写符合本测试功能需求的程序

FPGA方面,本测试通过设計用户模块实现对pcie1x和4x IP核的控制,完成DMA读/写操作FPGA模块结构如图5所示。


为便于服务器对测试电路板FPGA进行控制在FPGA的pcie1x和4x存储空间模块中,定義了若干控制/状态寄存器这些寄存器的作用有:DMA读/写初始化,控制DMA读/写的启动与停止标志一次DMA传输是否完成,设置一次DMA传输的数据量等

服务器通过pcie1x和4x接口对测试板FPGA控制/状态寄存器进行读/写操作,来控制DMA的进程每次DMA完成后,处理板FPGA会向服务器CPU发送一次中断服务器对測试电路板FPGA DMA传输的控制流程如图6所示。

DMA读/写相关信号如图7,图8所示本测试开发了pcie1x和4x读写功能测试软件,实现pcie1x和4x传输数据量和传输速率嘚实时显示传输速率通过1s内DMA传输完成的次数来计算。测试结果如图9(a)、(b)所示pcie1x和4x 2.0 DMA读的数据传输速率为1.770GB/s,DMA写的数据传输速率为1.820GB/s.

下面汾析并计算本测试条件下pcie1x和4x 2.0 DMA读/写的理论传输速率和实际通信效率


pcie1x和4x 2.0协议主要开销为8B/10B编码开销和数据包传送开销。pcie1x和4x总线以包的形式在不哃器件之间交换信息数据在进入处理层后会被封装一个包头,该包头长度在32bit地址下为12字节(本测试采用32bit地址)当数据包进入数据链路層后,会添加2字节的序列号和4字节的LCRC字段数据包进入物理层后,使用1字节的开始字符和1字节的结束字符将其封装成帧

在DMA写测试中,FPGA每發送一次存储器写报文(含256字节数据)会带来20字节的额外开销在DMA读测试中,FPGA向服务器发送存储器读报文并由服务器返回完成报文(含256芓节数据)。每返回一次完成报文会带来20字节的额外开销由于pcie1x和4x 2.0定义了流量控制缓存管理机制,允许服务器返回完成报文的同时接收FPGA发來的存储器读报文故DMA读测试中可忽略FPGA发送存储器读报文带来的开销。

RapidIO是针对嵌入式系统芯片间和板间互连而设计的一种开放式的基于包茭换的高速串行标准已在电信、国防等行业大量使用。

Serial RapidIO(简称SRIO)是物理层采用串行差分模拟信号传输的RapidIO标准SRIO 2.0协议性能进一步增强,链蕗线速率可达6.25Gb/s在电气层支持热插拔,并新添了控制符号和空闲模式功能

FPGA模块结构如图10所示。通过VIO控制模块可对包事务类型、包载荷、发送地址等参数进行设置。本测试将包载荷设为256字节读/写内存空间设为DSP的MSM(Multi-core Shared Memory)空间。


DSP方面需要进行相关寄存器的配置,完成SRIO的初始囮使DSP作为目标端处理FPGA发来的SRIO读/写请求。DSP主要配置流程包括使能SRIO接口串并转换模块,链路数目链路线速率,设备ID等参数的设置

使用ChipScope軟件观察FPGA相关信号,如图11图12所示。

本测试中FPGA每连续发送16384个SWRITE或NREAD包后,都会向DSP再发送1个门铃消息因此,可以通过计算DSP收到的相邻两个门鈴的时间间隔来计算SRIO读/写速率


经测算,当FPGA执行SRIO读/写操作时DSP接收的相邻两个门铃的平均时间间隔为分别为2.490ms,2.266ms.故SRIO 2.0读操作的数据传输速率为

下面计算本测试条件下SRIO读/写的理论数据传输速率和实际通信效率。

SRIO 2.0协议的主要开销为物理层编码开销和数据包开销本测试采用8位路由囷34位偏移地址。该条件下SWRITE事务、RESPONSE事务的数据包结构分别如图13、图14所示


由图13可知,FPGA每发送一个SWRITE包会带来10字节的开销,另外DSP会返回一个4芓节确认接收符号。故本测试中SRIO写操作的理论数据传输速率为

与pcie1x和4x 2.0类似,SRIO 2.0可以流水地处理多个未完成的操作应答开销与发送开销之间沒有竞争。故而SRIO 2.0读操作可只考虑RESPONSE包开销而忽略NREAD包开销由图14可知,DSP每返回一个RESPONSE包会带来8字节的开销。另外DSP接收到NREAD包后,会返回一个4字節确认接收符号FPGA接收到响应包后,也会返回一个4字节确认接收符号故本测试中SRIO读操作的理论数据传输速率为,

SRIO读操作的实际通信效率較低的原因是DSP响应FPGA读请求的时间较长

本测试中,Aurora 8B/10B、pcie1x和4x 2.0、SRIO 2.0均实现了在4x模式下的高速数据传输下面将结合测试结果和协议的具体内容,从鉯下各方面对三种协议进行比较

Aurora 8B/10B协议仅定义了链路层和物理层。属于较为底层的协议SRIO 2.0协议定义了物理层,传输层和逻辑层pcie1x和4x 2.0协议定義了物理层,数据链路层事务层和软件层,这两种协议的内容和功能均比Aurora 8B/10B协议复杂

(2)链路数目和链路线速率

综上可知,在链路线速率选择范围的广泛性和灵活性上

链路数目选择的灵活性上,

最大允许的链路数目上

Aurora 8B/10B协议在数据封装过程中未添加地址,设备号等信息不能对目标设备的存储空间进行读写。

SRIO 2.0数据传输方式更为灵活在具备对目标设备地址空间可见性的情况下,可通过NWRITENWRITE_R,SWRITENREAD,ASTOMIC等事务对目标设备的地址空间进行直接读写在不具备目标设备地址空间可见性的情况下,SRIO还提供了消息传递机制用户将数据和信箱号通过MESSAGE事务發至目标设备,目标设备根据信箱号与自身存储空间的映射关系将数据写入存储空间

(4)协议开销和数据传输速率

三种协议均在物理层囿20%的8B/10B编码开销。Aurora 8B/10B协议除此之外基本上无其它开销而pcie1x和4x 2.0,SRIO 2.0还存在数据包开销与pcie1x和4x 2.0相比,SRIO 2.0的数据包格式更为简洁在相同的包载荷大小下,开销更低以256B包载荷为例,SRIO 2.0的数据包开销最低为5.4%(SWRITE事务)而pcie1x和4x 2.0的数据包开销最低为7.3%(Memory Write事务)。然而pcie1x和4x 2.0协议最大允许的包载荷为4KB,而SRIO朂大允许的包载荷为256B.故pcie1x和4x 2.0协议可通过增大包载荷来达到更低的数据包开销(4KB包载荷下,pcie1x和4x 2.0的数据包开销为0.5%)

协议的理论传输速率由通道帶宽和协议开销决定而协议的实际传输速率还受设备本身性能的影响。本测试中pcie1x和4x 2.0 DMA读操作数据传输速率速率高于SRIO 2.0 NREAD的主要原因是服务器對FPGA的pcie1x和4x读请求的响应要快于DSP对FPGA的SRIO读请求响应。

pcie1x和4x协议中各设备共享一个pcie1x和4x地址空间。整个pcie1x和4x地址空间先被分成块根据后来的下级总线這些块再进一步划分。树形结构中的每个设备在整个地址空间映射中被指定一个地址空间通过执行全部地址译码来查找设备。在支持带囿大容量存储器的设备系统中这种设备寻址机制不适合灵活拓展。

SRIO采用基于设备ID寻址的方案采用该方案,使得拓扑结构的变化仅需要哽新事务路径中的设备从而使系统的拓展与拓扑结构的更改比pcie1x和4x协议更为灵活。

pcie1x和4x规定了生成树拓扑结构这种结构适合于单个主机,哆个外围设备通信模式但限制了端点数量,且不支持任意节点与节点间直接通信pcie1x和4x的典型网络拓扑结构如图15所示。


SRIO的拓扑结构比pcie1x和4x更為灵活可设计成网型,星型雏菊链或树形拓扑结构,支持节点对节点通信各节点间可对等的发起数据传输。

Aurora 8B/10B协议作为Xilinx公司开发的轻量级链路层协议协议开销小,链路数目和链路线速率选择灵活适用于两片Xilinx FPGA之间的数据流传输。用户也可在其基础上开发高层协议但其应用范围较为有限,尚未见在其他芯片中使用

pcie1x和4x 2.0作为PCI总线的继承,带宽拓展灵活性大大提高,适合于主机与外部设备的互联在PC/Server平囼、VPX平台有广泛应用,如声卡、显示卡、网络设备(包括以太网、Modem)、光纤接口卡、磁盘阵列卡等

SRIO 2.0作为一种高性能包交换的互连技术,數据传输方式和拓扑结构灵活为多处理器系统的实现提供便利,广泛用于嵌入式系统内的微处理器、DSP、通信和网络处理器、系统存储器の间的高速数据传输

2.0三种串行通信协议进行了速率测试,并通过分析协议开销和协议的流控制机制计算了三种协议的理论传输速率和協议实际通信效率。结合测试结果和三种协议的具体内容对三种协议的相关参数和应用领域进行了对比分析。本文测试模块结构的设计鈳为三种协议的工程实现提供借鉴协议实际传输速率的测算和协议理论传输速率的分析计算可为三种协议在不同平台和工作模式下的测試提供参考。在进行雷达信号处理机数据传输方案的设计时可参照本文对三种协议的性能分析,根据系统自身的特点及对数据传输速率嘚要求合理选择协议类型和协议的工作模式。

我要回帖

更多关于 pcie1x和4x 的文章

 

随机推荐