在高功用雷达信号处理机研发中,高速串行总线正逐渐替代并行总线。业界广泛运用的Xilinx公司Virtex-6系列FPGA支撑多种高速串行通讯协议,本文针对其间较为常用的Aurora 8B/10B和PCI Express 2.0,Serial RapidIO 2.0三种协议进行了测验及比照剖析。首要建立了依据Virtex-6 FPGA的高速串行协议测验渠道;然后规划并别离完结了三种协议的高速数据通讯,测算了协议的实践传输速率;最终结合测验成果,从协议层次结构、链路数目、链道路速率、数据传输方法、协议开支、拓扑结构、设备寻址方法、运用领域等方面临三种协议进行了比较。本文研究作业可为三种协议的选用、测验和工程完结供给参阅。
1导言
跟着雷达带宽和AD采样率的进步,在高功用雷达信号处理机研发中,体系对数据传输带宽的要求不断增加,高速串行总线正逐渐替代传统的并行总线。
Xilinx公司推出的Virtex-6系列FPGA,在片上集成了固化的GTX模块,以供给高速串行通讯支撑。一起Xilinx公司供给有多种串行通讯协议IP核,便于用户进行开发。Aurora 8B/10B,PCI Express 2.0和Serial RapidIO 2.0是其间较为常用的三种协议。现在已有很多文献涉及到三种协议依据FPGA的完结计划。但是这些计划未能充分发挥协议功用,存在线速率较低(仅为2.5Gb/s)或未完结多通道绑定。针对上述问题,本文依据Virtex-6 FPGA,别离完结了三种协议在4x链路,5.0Gb/s线速率方法下的数据通讯,测得协议的实践传输速率,并对三种协议的特色与运用进行了比照剖析。
2测验渠道简介
本文以实验室自行开发规划的PCIe光纤接纳处理板(以下简称测验电路板)为测验渠道。测验电路板的结构图和实物图别离如图1,图2所示。其间,FPGA选用XC6VLX240T-2FF1156,该芯片含20个GTX收发器,链道路速率可达6.6Gb/s.DSP选用TMS320C6678,该芯片含有SRIO接口,支撑1x、2x和4x链路。光电转化模块选用FCBG410QB1C10,它包含4条链路,带宽可达40Gb/s.故而测验电路板的硬件规划契合本测验对数据传输速率的要求。
图1测验电路板模块结构和链路衔接图
图2测验电路板实物图
如图3所示,将测验电路板刺进服务器主板的PCIe插槽中,并将光纤接入测验电路板,完结测验渠道的建立。本测验中,PCI Express 2.0协议用于完结FPGA与服务器的数据通讯,Serial RapidIO 2.0协议用于完结FPGA与DSP的数据通讯,Aurora 8B/10B协议用于完结FPGA的光纤自发自收通讯。因为三种协议都在物理层进行8B/10B编码,故在本测验作业方法下,它们的极限速率均为
图3测验渠道建立
3 AURORA 8B/10B通讯测验
Aurora 8B/10B协议是Xilinx公司针对高速传输开发的一种可裁剪的轻量级链路层协议,经过一条或多条串行链路完结两设备间的数据传输。协议Aurora协议能够支撑流和帧两种数据传输方法,以及全双工、单工等数据通讯方法。
本测验中,Aurora 8B/10B IP核装备为双工、流方法,参阅时钟频率250MHz.
运用ChipScope软件调查FPGA相关信号如图4所示。调查RX_SRC_RDY_N能够发现,均匀每4992周期呈现7个周期的数据无效信号。因为接纳数据时钟频率为250MHz,数据位宽为64bit,故本测验中,Aurora 8B/10B协议单向传输速率为,
图4 Aurora 8B/10B协议通讯测验信号波形
下面剖析协议理论传输速率和实践通讯功率。该协议的帧格局比较简单,除2字节的开端标志,2字节中止标志和至多1字节的填装字符外,其他为数据部分。本测验选用的流方法是以无完毕的帧方法完结。故协议除8B/10B编码外,基本上不存在其他开支。故依据(1)式可得,协议的理论速率为2.0GB/s,协议的实践通讯功率为99.75%.
4 PCI Express 2.0通讯测验
PCI Express(简称PCIe)总线技能是替代PCI的第三代I/O技能。PCIe选用串行点对点互连,答应每个设备具有专属的一条衔接,不抢夺带宽资源,一起确保了数据的完整性。PCI Express 2.0协议的链道路速率到达5Gb/s,最高支撑32x链路。
本测验中,PCIe 2.0通讯测验经过FPGA对服务器内存的DMA读/写操作来完结。
服务器方面,本测验选用Windriver软件进行PCIe驱动程序的开发。运用该软件供给的PCIe驱动程序及用户接口函数,编写契合本测验功用需求的程序。
FPGA方面,本测验经过规划用户模块,完结对PCIe IP核的操控,完结DMA读/写操作。FPGA模块结构如图5所示。
图5 PCIe 2.0通讯测验FPGA模块结构
为便于服务器对测验电路板FPGA进行操控,在FPGA的PCIe存储空间模块中,界说了若干操控/状况寄存器,这些寄存器的效果有:DMA读/写初始化,操控DMA读/写的发动与中止,标志一次DMA传输是否完结,设置一次DMA传输的数据量等。
服务器经过PCIe接口对测验板FPGA操控/状况寄存器进行读/写操作,来操控DMA的进程。每次DMA完结后,处理板FPGA会向服务器CPU发送一次中止。服务器对测验电路板FPGA DMA传输的操控流程如图6所示。
图6 PCIe 2.0 DMA传输操控流程图
本测验将TLP包载荷数设为256Bytes(IP核答应的最大值),每次DMA传输的TLP包的数量为16384,故每次DMA传输的数据量为4MB.运用ChipScope软件调查FPGA内部的PCIe 2.0 DMA读/写相关信号,如图7,图8所示。本测验开发了PCIe读写功用测验软件,完结PCIe传输数据量和传输速率的实时显现。传输速率经过1s内DMA传输完结的次数来核算。测验成果如图9(a)、(b)所示。PCIe 2.0 DMA读的数据传输速率为1.770GB/s,DMA写的数据传输速率为1.820GB/s.
图7 PCIe 2.0 DMA读测验信号波形
图8 PCIe 2.0 DMA写测验信号波形
图9 PCIe 2.0 DMA读写速率测验成果(a)DMA读测验(b)DMA写测验
下面剖析并核算本测验条件下PCIe 2.0 DMA读/写的理论传输速率和实践通讯功率。
PCIe 2.0协议首要开支为8B/10B编码开支和数据包传送开支。PCIe总线以包的方法在不同器材之间交流信息。数据在进入处理层后会被封装一个包头,该包头长度在32bit地址下为12字节(本测验选用32bit地址)。当数据包进入数据链路层后,会增加2字节的序列号和4字节的LCRC字段。数据包进入物理层后,运用1字节的开端字符和1字节的完毕字符将其封装成帧。
在DMA写测验中,FPGA每发送一次存储器写报文(含256字节数据)会带来20字节的额定开支。在DMA读测验中,FPGA向服务器发送存储器读报文,并由服务器回来完结报文(含256字节数据)。每回来一次完结报文会带来20字节的额定开支。因为PCIe 2.0界说了流量操控缓存管理机制,答应服务器回来完结报文的一起接纳FPGA发来的存储器读报文,故DMA读测验中可疏忽FPGA发送存储器读报文带来的开支。
故PCIe 2.0 DMA读/写的理论速率相同,均为
5 Serial RapidIO 2.0通讯测验
RapidIO是针对嵌入式体系芯片间和板间互连而规划的一种开放式的依据包交流的高速串行规范,已在电信、国防等职业很多运用。
Serial RapidIO(简称SRIO)是物理层选用串行差分模拟信号传输的RapidIO规范。SRIO 2.0协议功用进一步增强,链道路速率可达6.25Gb/s,在电气层支撑热插拔,并新添了操控符号和闲暇方法功用。
本测验以测验电路板FPGA作为建议端,以测验电路板DSP作为方针端。经过FPGA向DSP发送SWRITE包,进行SRIO 2.0写测验,经过FPGA向DSP发送NREAD包,DSP向FPGA回来RESPONSE包,进行SRIO 2.0读测验。
FPGA模块结构如图10所示。经过VIO操控模块,可对包业务类型、包载荷、发送地址等参数进行设置。本测验将包载荷设为256字节,读/写内存空间设为DSP的MSM(Multi-core Shared Memory)空间。
图10 SRIO 2.0通讯测验FPGA模块结构
DSP方面,需求进行相关寄存器的装备,完结SRIO的初始化,使DSP作为方针端处理FPGA发来的SRIO读/写恳求。DSP首要装备流程包含使能SRIO接口,串并转化模块,链路数目,链道路速率,设备ID等参数的设置。
运用ChipScope软件调查FPGA相关信号,如图11,图12所示。
图11 SRIO 2.0读测验信号波形
图12 SRIO 2.0写测验信号波形
本测验中,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 SRIO 2.0 SWRITE包结构
图14 SRIO 2.0 RESPONSE包结构
由图13可知,FPGA每发送一个SWRITE包,会带来10字节的开支,别的,DSP会回来一个4字节承认接纳符号。故本测验中SRIO写操作的理论数据传输速率为,
与PCIe 2.0相似,SRIO 2.0能够流水地处理多个未完结的操作,应对开支与发送开支之间没有竞赛。故而SRIO 2.0读操作可只考虑RESPONSE包开支而疏忽NREAD包开支。由图14可知,DSP每回来一个RESPONSE包,会带来8字节的开支。别的,DSP接纳到NREAD包后,会回来一个4字节承认接纳符号,FPGA接纳到呼应包后,也会回来一个4字节承认接纳符号。故本测验中SRIO读操作的理论数据传输速率为,
SRIO读操作的实践通讯功率较低的原因是DSP呼应FPGA读恳求的时刻较长。
6三种协议的剖析比较
本测验中,Aurora 8B/10B、PCIe 2.0、SRIO 2.0均完结了在4x方法下的高速数据传输。下面将结合测验成果和协议的具体内容,从以下各方面临三种协议进行比较。
(1)协议分层结构
Aurora 8B/10B协议仅界说了链路层和物理层。归于较为底层的协议。SRIO 2.0协议界说了物理层,传输层和逻辑层,PCIe 2.0协议界说了物理层,数据链路层,业务层和软件层,这两种协议的内容和功用均比Aurora 8B/10B协议杂乱。
(2)链路数目和链道路速率
Aurora 8B/10B协议在链路数目和链道路速率挑选上比较灵敏,链路数目能够在1x至16x之间自由挑选,链道路速率能够在0.5Gb/s到6.6Gb/s间自由挑选。PCIe 2.0支撑1x,2x,4x,8x,12x,16x,32x链路,链道路速率支撑2.5Gb/s和5.0Gb/s.SRIO 2.0支撑1x、2x、4x、8x和16x链路,链道路速率支撑1.25Gb/s、2.5Gb/s、3.125Gb/s、5.0Gb/s和6.25Gb/s.
综上可知,在链道路速率挑选规模的广泛性和灵敏性上,
Aurora 8B/10B>Srio 2.0>Pcie 2.0,
链路数目挑选的灵敏性上,
Aurora 8B/10B>Pcie 2.0>Srio 2.0.
最大答应的链路数目上,
Pcie 2.0>Aurora 8B/10B=Srio 2.0.
(3)数据传输方法
Aurora 8B/10B协议在数据封装过程中未增加地址,设备号等信息,不能对方针设备的存储空间进行读写。
PCIe 2.0可经过Memory Write,Memory Read,I/O Write,I/O Read业务对方针设备地址空间进行读写,但有必要具有对方针设备地址空间的可见性。
SRIO 2.0数据传输方法更为灵敏。在具有对方针设备地址空间可见性的情况下,可经过NWRITE,NWRITE_R,SWRITE,NREAD,ASTOM%&&&&&%等业务对方针设备的地址空间进行直接读写。在不具有方针设备地址空间可见性的情况下,SRIO还供给了音讯传递机制。用户将数据和信箱号经过MESSAGE业务发至方针设备,方针设备依据信箱号与本身存储空间的映射联系将数据写入存储空间。
综上可知,数据传输方法的灵敏性上,SRIO 2.0>PCIe 2.0>Aurora 8B/10B.
(4)协议开支和数据传输速率
三种协议均在物理层有20%的8B/10B编码开支。Aurora 8B/10B协议除此之外基本上无其它开支,而PCIe 2.0,SRIO 2.0还存在数据包开支。与PCIe 2.0比较,SRIO 2.0的数据包格局更为简练,在相同的包载荷巨细下,开支更低。以256B包载荷为例,SRIO 2.0的数据包开支最低为5.4%(SWRITE业务),而PCIe 2.0的数据包开支最低为7.3%(Memory Write业务)。但是,PCIe 2.0协议最大答应的包载荷为4KB,而SRIO最大答应的包载荷为256B.故PCIe 2.0协议可经过增大包载荷来到达更低的数据包开支。(4KB包载荷下,PCIe 2.0的数据包开支为0.5%)
协议的理论传输速率由通道带宽和协议开支决议,而协议的实践传输速率还受设备本身功用的影响。本测验中,PCIe 2.0 DMA读操作数据传输速率速率高于SRIO 2.0 NREAD的首要原因是服务器对FPGA的PCIe读恳求的呼应要快于DSP对FPGA的SRIO读恳求呼应。
(5)设备寻址
PCIe协议中,各设备同享一个PCIe地址空间。整个PCIe地址空间先被分成块,依据后来的下级总线这些块再进一步区分。树形结构中的每个设备在整个地址空间映射中被指定一个地址空间,经过履行悉数地址译码来查找设备。在支撑带有大容量存储器的设备体系中,这种设备寻址机制不适合灵敏拓宽。
SRIO选用依据设备ID寻址的计划。选用该计划,使得拓扑结构的改变仅需求更新业务途径中的设备,从而使体系的拓宽与拓扑结构的更改比PCIe协议更为灵敏。
Aurora 8B/10B协议未界说设备寻址机制。
(6)网络拓扑
PCIe规则了生成树拓扑结构,这种结构适合于单个主机,多个外围设备通讯方法,但约束了端点数量,且不支撑恣意节点与节点间直接通讯。PCIe的典型网络拓扑结构如图15所示。
图15 PCIe网络拓扑结构
SRIO的拓扑结构比PCIe更为灵敏,可规划成网型,星型,雏菊链或树形拓扑结构,支撑节点对节点通讯,各节点间可对等的建议数据传输。
Aurora 8B/10B协议不支撑网络拓扑结构。
(7)运用领域
Aurora 8B/10B协议作为Xilinx公司开发的轻量级链路层协议,协议开支小,链路数目和链道路速率挑选灵敏,适用于两片Xilinx FPGA之间的数据流传输。用户也可在其基础上开发高层协议。但其运用规模较为有限,没有见在其他芯片中运用。
PCIe 2.0作为PCI总线的承继,带宽,拓宽灵敏性大大进步,适合于主机与外部设备的互联,在PC/Server渠道、VPX渠道有广泛运用,如声卡、显现卡、网络设备(包含以太网、Modem)、光纤接口卡、磁盘阵列卡等。
SRIO 2.0作为一种高功用包交流的互连技能,数据传输方法和拓扑结构灵敏,为多处理器体系的完结供给便当,广泛用于嵌入式体系内的微处理器、DSP、通讯和网络处理器、体系存储器之间的高速数据传输。
7完毕语
本文依据Virtex-6 FPGA芯片,对Aurora 8B/10B,PCIe2.0,SRIO 2.0三种串行通讯协议进行了速率测验,并经过剖析协议开支和协议的流操控机制,核算了三种协议的理论传输速率和协议实践通讯功率。结合测验成果和三种协议的具体内容,对三种协议的相关参数和运用领域进行了比照剖析。本文测验模块结构的规划可为三种协议的工程完结供给学习,协议实践传输速率的测算和协议理论传输速率的剖析核算可为三种协议在不同渠道和作业方法下的测验供给参阅。在进行雷达信号处理机数据传输计划的规划时,可参照本文对三种协议的功用剖析,依据体系本身的特色及对数据传输速率的要求,合理挑选协议类型和协议的作业方法。