RapidIO互联(精选5篇)
RapidIO互联 篇1
0 引言
随着军事电子技术的迅猛发展, 现代雷达技术日新月异, 电子设备之间的数据传输率越来越高, 尤其在现代雷达系统中, 需要高速的数据传输、采集和大吞吐量的数据传输, 来实现数据高速实时处理, 传统用于数据传输所采用的低速并行总线已经无法满足系统的要求。文中介绍的基于Rapid IO协议的高速数据互联模块, 采用了高速串行数据传输技术, 实现了基于Rapid IO协议的高速数据互联以及千兆以太网数据通信, 很好地满足了现代雷达应用实时性的要求, 广泛适用于雷达、声纳等领域。
1 模块组成及功能框图
基于Rapid IO协议的高速数据互联模块采用接口符合VPX总线规范, 支持Rapid IO传输协议。其核心部分是一片高性能FPGA (XC5VFX100T-2FFG1136I) , FPGA内嵌一片Power PC440处理器, FPGA提供2×4 Rapid IO数据通路, 4路Rocket IO数据通路, 3路千兆以太网口, 其中4路Rocket IO连接到前面板的4个光口, 2×4 Rapid IO连接到VPX插座, 3路千兆以太网口连到前面板, 模块原理框图如图1所示。
2 关键技术及设计实现
2.1 复位电路设计
高速数据互联模块的复位电路, 采用复位芯片MAX706, 以及2片74LV125, 1片3384构建复位电路, 巧妙实现了对整个模块以及系统的全方位有效复位。
SYSRST#系统复位信号是VITA46规范定义在RP0连接器B13管脚上的标准复位信号。采用以下电路设计, 模块也可作为系统控制器, 产生SYSRST#系统复位信号。Reset_button为前面板复位按钮, 用于模块复位。系统上电后, SYSRST#系统复位信号为高, FPGA加载并工作, CONF_DONE为高电平, FPGA产生MAX706的Dog_in脉冲信号, 74LV125产生模块板级主复位信号MAS-TER_RST控制FPGA中的所有逻辑及各个接口。如果实际应用中需要对系统进行复位, 只需将O_SYSRST信号置为低, 模块即可复位整个系统。复位信号产生原理如图2所示。
2.2 高速数据传输通道设计
高速数据互联模块以一片用户可编程的Xilinx Virtex-5 Pro系列的FPGA (XC5VFX100T) 为核心芯片, 采用目前广泛应用于通信系统的Rapid IO协议实现高速数据传输通道。高速数据通道的设计是本模块的重点和难点之一。
Rapid IO协议是由Motorola和Mercury等公司率先倡导的一种高性能、低引脚数, 基于数据包转换的互联体系, 是为满足现在和未来高性能嵌入式系统需求而设计的一种开放式互联技术标准。主要应用于嵌入式系统内部, 支持芯片到芯片, 板到板件的通信, 目前已经广泛应用于无线基站、成像、视频、工业控制等领域。
Rapid IO协议采用三层分级体系架构, 分别为逻辑层、传输层和物理层。逻辑层位于最高层, 定义全部协议和包的格式, 它们为端点器件发起和完成事务提供必要的信息。传输层定义了Rapid IO地址空间和在端点器件间传输包所需的路由信息。物理层规范在整个分级结构的底部, 包括器件级接口的细节, 如包传输机制、流量控制、电气性能和低级错误管理。
本模块中采用的是基于Rapid IO协议中的NWRITE事务和DOORBELL事务实现系统间的高速数据传输, 工作流程如图3所示。
高速串行收发系统主要由Rapid IO接口逻辑、数据收发缓存、收发传输控制几大部分组成。数据的收发可分为数据发送传输控制通道和数据接收传输控制通道, 发送通道和接收通道相互独立。
2.2.1 接收传输控制设计
数据由Rapid IO用户接口进入FPGA后, 首先对数据包进行类别鉴定, 分析其事务类型, 如果事务类型为NWRITE模式, 同时数据有效, 就将数据存入接收FIFO中, 如果事务类型为DOORBELL模式, 就将数据存入门铃队列。然后查询FIFO状态, 若FIFO非空且RAM_A为空, 就将数据依次写入RAM_A, RAM_B, 状态机设计如图4所示, 一旦对外的光口链路建立, 就将RAM_A和RAM_B中的数据依次打包通过光口送到外部系统。
2.2.2 发送传输控制设计
在发送传输通道的设计中, 高速数据从光口进入模块, 首先对数据包进行解析, 如果接收到的数据为特殊控制字符如:0x FFFFAAAA, 则将此字符存入门铃队列, 同时发起相应的中断, 如果是有效数据, 且RAM_C为空, 则将数据写入双口RAM, 同时经过一级FIFO缓存, 用于同步系统内外的用户时钟, 然后进入数据发送等待状态, 一旦系统对外的Rapid IO接口链路建立, 就将数据从Rapid IO接口发送至其他系统。
由于在Rapid IO协议中, 数据是以有效载荷为8~256 B的小包进行数据传输的, 因此在NWRITE模式下, 没有定义硬件的数据流起始和结束标志, 所以在本系统中收发双方约定在一帧数据收发结束后, 数据发起者发送中断 (门铃事务) , 表示一帧数据发送结束, 接收方接收到此中断后即可停止接收数据, 进入侦听状态, 等待发起者启动下一次事务。
2.3 千兆以太网通信设计
利用FPGA (XC5VFX100T) 内嵌的一片Power PC440处理器以及PHY芯片实现千兆以太网通信是本模块设计的又一难点。设计共分为两个部分, 硬件平台的搭建和软件设计。
2.3.1 硬件平台设计
Power PC440处理器核是IBM专门为XILINX公司的FPGA开发的处理器产品, 它在FPGA芯片出厂之前就已经事先植入到芯片中。Power PC440处理器硬核是一种32位哈佛结构的RISC核, 它的最高工作频率目前可达到450 MHz, 具有700D MIPS的运行速度, 是目前为内置到FPGA所开发的处理器核当中速度最快、性能最高的处理器IP核。
千兆以太网通信设计过程中, 使用EDK工具在FPGA芯片中进行软硬件协同设计, 利用EDK自身携带的标准外设IP, 如TEMAC, UART, GPIO, TIMER、中断控制、DDR设备以及接口控制器来搭建硬件平台。其中UART接口, 采用的是RS 232协议, 主要参数如下:波特率为9 600 b/s, 8位有效位, 无奇偶校验, 1位停止位。硬件平台设计如图5所示。
硬件平台中定义了PPC440处理器、系统总线、外设、以及存储器等的链接关系。平台中采用PLB高速总线将处理器和各个外设接口互联, 有效带宽可达到2.1 Gb/s, 同时提供32位的地址线和64位的数据线。
在构建好的硬件平台基础上, 对千兆以太网接口进行设置, 如图6所示。
同时还需对所有设备接口的地址空间进行配置, 如图7所示。
2.3.2 软件设计
硬件平台设计完成后, 下一步就是进行软件设计。由于FPGA内资源有限, 因此本系统中采用LWIP协议栈来实现千兆以太网的通信。
LWIP是由瑞士计算机科学院开发的一套用于嵌入式系统的TCP/IP协议栈, 既可以移植到操作系统上, 又可以独立运行的轻型嵌入式TCP/IP协议栈。其主要特点是保持TCP/IP协议主要功能的基础上减少对RAM的占用, 可以大大减少内存使用和代码大小。
千兆以太网络通信的实现除了TCP/IP协议的实现 (IP/ICMP/UDP/TCP) , 还有包括许多相关支持模块。包括操作系统模拟层、缓冲与内存管理子系统、网络接口函数等, 部分代码如图8所示。
最后使用EDK集成软件, 进行软硬件位流的合并, 生成dowmload.bit文件, 使用JTAG模式下载到FPGA芯片。经测试, 系统间通过网络设备实现了可靠稳定的数据传输。
3 信号完整性仿真
基于Rapid IO协议的高速数据互联模块的传输速率达到了3.125 Gb/s, 为了保障信号高速传输, 因此对高速信号必须进行信号完整性仿真。
选择模块中PCB走线情况最不理想的一对差分线:FX_MGTRX0_9_P, FX_MGTRX0_9_N, 利用仿真软件对该差分对的走线进行仿真, 分别提取过孔和传输线参数, 得到整个链路的S参数如图9所示。
将抽取的通道参数添加至系统Hspice仿真网标文件, 得到发送端、接收端的仿真眼图波形如图10, 图11所示。
经过时域和频域的仿真, 模块中的高速传输线可以满足3.125 Gb/s的数据传输的要求。
4 结语
基于Rapid IO协议的高速数据互联模块采用高性能FPGA, 实现了基于Rapid IO的高速数据互联以及千兆以太网通信, 经实测最高数据速率达到4.8 Gb/s。该模块现已在雷达信号处理系统中得到应用, 各项性能指标可满足雷达应用需求。
摘要:RapidIO技术是目前世界上第一个、也是惟一的嵌入式系统互连国际标准, 可以简单、高效、可靠地实现从单板到全系统的互连, 在高性能数字信号处理系统中得到广泛的应用。介绍了基于RapidIO协议的高速数据互联模块的设计方案、高速数据传输设计中的难点、以及模块的信号完整性分析。该模块现已在雷达信号处理系统中得到应用验证, 各项性能指标均能够满足应用需求, 实现了可靠稳定的高速数据传输。
关键词:RapidIO,EDK,RocketIO,LWIP,信号完整性分析
参考文献
[1]BOGATIN Eric.RapidIO嵌入式系统互联[M].北京:电子工业出版社, 2006.
[2]JOHNSON Howard.高速数字设计[M].北京:电子工业出版社, 2004.
[3]BOGATIN Eric.信号完整性分析[M].北京:电子工业出版社, 2005.
[4]Xilinx.FPGA embedded tri-mode Ethernet MAC[M].USA:Xilinx, 2009.
[5]Xilinx.可编程逻辑器件的设计与开发[M].USA:Xilinx, 2010.
[6]杨卿, 杨万麟.基于串行RapidIO协议的无线通信基带处理系统架构[J].现代电子技术, 2009, 32 (13) :103-106.
RapidIO互连技术研究 篇2
关键词:RapidIO协议,互连技术,系统互连,交换结构
在典型的嵌入式系统中,提高处理器的速度是改善系统性能的解决方案之一。高速缓存和更先进的处理器架构的使用,不断提高着微处理器的性能,但研究表明处理器总线频率的增长速度,相对处理器内核性能的增长速度较慢,而且两者之间的差距正在不断扩大。处理器速率的提高无助于改进处理器和外设芯片之间的连接或多处理器体统中多个处理器间的连接。传统的分层共享总线已无法满足未来高性能嵌入式系统的I/O性能需求和快速高效的信号处理和数据传输。系统互连,即系统内的不同组件之间通信的速率已成为制约嵌入式系统性能提高的瓶颈。RapidIO技术正是为了在嵌入式系统内提供以交换互连而非总线为基础的传输数据的标准方法,从而能够替代很多现有总线技术或基于交换的技术。
RapidIO作为目前世界上第一个、也是惟一的嵌入式系统互连的国际标准[1],随着规范的完善,各方厂商的不断加入和支持,产业链的逐渐完整使得RapidIO的生态系统已经建立起来。
1 基本原理及关键技术
RapidIO互连架构是一种高性能点对点的包交换技术,支持芯片间以及板间的互连通信,其性能能够达到1 Gbps~60 Gbps。它为嵌入式系统设计提供了高带宽,低延迟的互连解决方法。另外,它的管脚少,可充分利用板上空间。RapidIO技术对软件透明,允许任何数据协议运行,同时可通过提供自建的纠错机制和点对点架构来排除单点故障,满足嵌入式设计的可靠性需求。
1.1 协议层次结构
RapidIO采用3层分级体系结构,即逻辑层、传输层和物理层[2],其层次结构,如图1所示。逻辑层说明在RapidIO中应用程序是如何通信的,定义了报文格式及端点器件发起并完成一次事务的必要信息。目前逻辑层支持5种规范:存储器映射的I/O系统、消息传递、全局共享存储模式、流量控制和流数据。传输层定义RapidIO的地址空间并为报文在端点设备间传输提供必要的路由信息。其地址空间可以根据系统规模的大小灵活地选择为8位或者16位的器件ID。物理层描述设备级接口,说明了报文传输机制、流控机制、电气特性和底层错误处理。物理层包括8位/16位并行接口标准和1x/4x串行接口标准。
RapidIO采用的分层体系结构使其可扩展性、模块化以及重用机制成为可能,提供了在任意层次增加新的事务类型而无须更改其他层规范的灵活性。例如,将来RapidIO速度的提高和编码策略的改变只会影响到物理层的改变。新规范定义的事务将以向后兼容的方式通过现有的RapidIO网络。
1.2 包格式
RapidIO协议由两种实体组成:数据包(Packets)和控制字符(Control Symbols)。数据包提供了终端节点设备间逻辑事务处理的接口,而控制字符为物理层提供了握手机制,用于数据包的组装、应答和重传请求,以及基于硬件的错误恢复。需要注意的一点是控制字符仅对于器件间的物理连接是有效的,它并不会通过交换结构进行传播。
RapidIO的传输操作是基于请求和响应事务的。在通信过程中采用了带有Cut-Through的存储转发机制,发送的数据包将被保留在发送方的缓冲区内直到发送方收到来自下一级接收者正确接收的应答信号。在传统的存储转发机制中,数据包被缓存,并在整个数据包接收完后,转发到下一目的地址。如果数据包发生错误,由于数据包仍然保留在缓冲区,采用简单的重传机制就可以了。虽然这种方法保证了传输的可靠性,但其最大的缺点是数据包转发的延迟,且延迟时间直接正比于数据包的长度和速率。因为数据包必须在转发前接收完全并且得到正确校验。为了保留存储数据包的优点,同时提供低延迟的转发,RapidIO提供带有Cut-Through的机制。这种机制允许在接收到数据包的头部,确定了事务的类型和目的地址后,交换器件就开始进行转发操作。如果没有检查到错误,数据包将以最小的延迟经过交换结构,而如果检查到错误,RapidIO会停止数据包的发送,同时发送Stomp控制字符告知下一级的接收器件取消接收,并且向上一级发送相应控制字符要求重传该数据包。
数据包由3个层次的协议段共同组成,图2和图3分别给出了串行物理层的请求包、响应包的包格式和控制字符的格式示意图。
1.3 错误管理
RapidIO互连技术可以从所有单比特错误和大多数多比特错误中恢复,而不需要软件或高级系统干预。如果出现更多更严重的错误,它可以探察和通知软件,从而在十分可靠的操作下为出故障的设备重新安排事务。
RapidIO为数据包的保护提供了多种的错误检测机制进行错误覆盖。协议自身对容错进行了充分的考虑,首先所有的RapidIO实体都能够基于协议对数据包的字段的有效性进行检查,如使用AckID字段,以严格的顺序进行包的传送和确认,通过将帧信号视为不归零NRZ信号,覆盖意外造成的帧信号跳变错误。如果任何有差异的AckID被接收到,RapidIO实体就会假定发生了错误。而对于协议不能够进行保护的比特错误则会由CRC校验来提供保护。对于较长的数据包,CRC字段会插入到数据包中间,从而在数据包的接收中,不需要等待整个数据包接收完毕,而对有可能发生在数据包头部和开始字段的错误进行检测。对于串行RapidIO,8B/10B编码的使用为链路上发送的比特流提供了更进一步的保护。
有错误的数据包会被自动的重传而不需要软件的干预,因为数据包的存储转发机制能够保证原始的数据包一直保留在发送方缓冲区内直到发送方收到应答响应才对缓冲区的内容释放。
这些错误管理机制使得RapidIO具有很高的可靠性。当在系统中使用了CRC校验和协议中对可靠性要求的其他RapidIO特性,加上基于硬件的重传机制,在1 Gbps或者2 Gbps的数据发送数率下,串行RapidIO的误比特率能够降低到约10-19。
1.4 流控机制
流量控制是指在任意时间互连技术采用的某些规则和机制,从而决定在任意时间从可能获得的若干事务中选择哪一事务进行发送。它的目标是保证数据在系统内传输时不发生拥塞。基于总线的互连技术使用仲裁算法来确保器件进行恰当的转发操作,确保高优先级的事务优先于低优先级的事务得到转发。采用交换的互连技术,事务从系统的不同位置进入,因而无法使用集中式的仲裁机制。
RapidIO系统采用基于交换的拓扑结构,采用源路由和标记事务优先级等方法有效预防报文阻塞。每个RapidIO数据包均带有事务优先级信息,每种事务优先级均与一事务请求流相对应。事务请求流允许高优先级的请求超越低优先级的请求,而对于相同优先级的RapidIO数据包则不会重新排序。
RapidIO支持3种流控机制,即重传(Retry)、节流控制(Throttle or Receiver Controlled)和基于信用(Credit Based)的流控。
重传机制不仅用于流控,还用于硬件错误恢复。接收方由于资源缺乏或接收报文损坏而不能接收报文时,就会拒绝数据包的接收并应答一个重传控制字符,据此发送方将重传报文。节流机制使用空闲控制符,发送报文时可以在报文当中插入空闲控制符,以便器件在包间插入等待状态。另一方面,接收方也可以通过向发送方发送一个节流控制符,通知发送方通过插入空闲控制符来减慢流速。基于信用的流控机制可供带有事务缓冲区(Buffer)的器件(尤其是交换器件)使用。该策略使用特定的控制符指明接收方每种事务流对应的缓冲区现状,发送方只有在得知接收方有可用的缓冲空间时才发送报文。根据信用信息交换结构可以发现下游的阻塞情况从而可以做出更好的报文输出选择。
以上链路级流量控制机制属于物理层规范,它用控制字符进行流量控制。除了链路级流量控制机制,RapidIO还定义了一套端到端的流量控制机制,属于逻辑层事务,使用由交换或端点器件产生的特殊拥塞控制包来控制流量。通过交换结构将拥塞控制包传回给引起拥塞的源器件,持续关闭拥塞流量一段时间,通过限制源头流量来达到降低系统流量拥塞的效果。
1.5 物理接口
RapidIO的物理接口层提供两种实现机制供用户选择:8/16位并行接口和1x/4x串行接口。两种互连形式具有相同的编程模式、事务处理和寻址机制。RapidIO采用完全流水化的全双工接口,以支持多个事务在流水线的各段中依次处理。由于采用彼此独立的发送和接收链路,应答与发送不存在链路竞争问题,不像传统的PCI总线需要周转时间和仲裁等开销。
8/16位并行接口提供源同步接口,即时钟信号伴随着数据一同传输。采用源同步技术能够实现长距离高频传输。16位的接口提供一对时钟信号来控制相位偏斜。Frame信号用来标识一个报文或控制符的开始。RapidIO采用IEEE标准的低电压差分信号(LVDS)接口,支持的工作频率为250 MHz、500 MHz、750 MHz及1 GHz。数据在时钟双沿采样,持续的全双工数据带宽范围分别为:8位接口4 Gbps~30 Gbps,16位接口8 Gbps~60 Gbps。
RapidIO串行接口采用单向的差分信号线连接,便于实现要求引脚数少的系统应用。1x/4x串行链路协议扩展了RapidIO规范,使之能适合更多基于通用互连协议的应用。1 x/4x串行接口利用8 B/10 B编码策略将时钟信号嵌入数据信号中,在每个方向支持1个或4个(1x/4x)连续的差分对。RapidIO串行接口支持3种工作频率:1.25 GHz、2.5 GHz和3.125 GHz[2],持续的全双工数据带宽范围分别为:1 Gbps~4.5 Gbps(1x),4 Gbps~18 Gbps(4x)。
RapidIO允许在1x/4x串行接口和8/16位并行接口间进行直接的包交换而无需加工数据包。串行接口和并行接口具有相似的重传和错误恢复机制。
RapidIO的两种物理接口分别适用于不同的场合。8/16位并行物理接口适合于高性能、高带宽、传输距离短(1 m内的印制线或底板间互连)、引脚数目多、对延迟要求很严的应用,如用于高性能处理器互连、网络处理器互连及高性能底板的互连等。1 x/4x串行接口适合于长距离传输、引脚数目有限、延迟要求不高的应用,如用于底板控制平台/消息道、DSP等的互连。
2 RapidIO互连技术的应用
在RapidIO互连应用中,通常不会将RapidIO端点相互直接连在一起,而是通过介于期间的交换结构连接。这里的交换结构指的是提供系统互连的单个或者多个交换器件的集合。图4是一个简单的RapidIO应用网络,网络由两个基本模块来构建:端点器件(Endpoints)和交换器件(Switches)。端点器件发送和接收数据包,交换器件连接多个端点器件,将数据包从输入端口接收后经路由选择后发送到目的端口。系统中会指定一个或者多个端点器件作为交换网络的主器件。在系统启动时,主器件负责系统发现和初始化;在工作时,它将协调和监控系统运行和错误恢复。网络中所有的器件都支持使用维护包去配置和访问自身的寄存器。为充分利用系统可用带宽,RapidIO采用源路由方法路由事务,数据包传输层包含有源器件指定的目的地址,交换机中包含路由表,通过查找路由表确定输出路径,这种路由方法使得系统中的多个设备可以并行通讯。
作为系统级的互连,RapidIO互连可应用在很多场合:DSP连接、处理器和其它器件的点对点主/从连接、控制和数据背板连接、基带和RF板连接、芯片和处理器连接。这些形式的连接印证了RapidIO支持广泛应用的互连能力。同时,RapidIO互连与其它各种市场上的连接技术共存且兼容。但是其它的连接很少能在支持的广泛性上(支持芯片间连接及背板连接)、功能上和性能上与RapidIO相比。
图5是使用串行RapidIO的实现系统互连的架构图。在这种通用的拓扑结构中,串行RapidIO链路不仅在处理子系统内部提供处理器和相关ASICs间、DSP阵列的高带宽、低延迟的通信。而且通过背板实现这些子系统间的互连通信,有效的降低了板间通信的信号数目。系统中冗余的链路有效的保证了系统通信的可靠性,同时为并发传输通道提高了系统的总带宽。同时RapidIO桥接器件实现了把PCI格式的事务转换成等效的RapidIO操作,使得系统很容易地以透明方式支持PCI等既有互连技术的传输。
3 结束语
RapidIO互连有效地解决了高性能嵌入式系统包括无线基础设施器件、网络接入设备、多服务平台、高端路由器和存储设备等在可靠性和互连性方面的挑战。随着半导体与通信技术的发展,以及对总线技术的需求不断提高,RapidIO互连必将作为一种普适的总线解决方案成为嵌入式系统互连的最佳选择。
参考文献
[1]Sam Fuller.RapidIO:The Embedded System Intercon- nect [M].London:John Wiley & Sons,Inc,2005.
RapidIO互联 篇3
Rapid IO是一个开放的标准,它是由Motorola等公司率先倡导的一种新型高性能、低引脚数、基于报文交换的互联体系结构,主要用于紧耦合系统内部互联,支持芯片到芯片、板到板间的通信。Rapid IO有两种互联方法:一种是支持高性能微处理器和系统互联的并行接口;另一种是用于串联底板、DSP及其串行控制平台的串行接口。
本文测试FPGA中串行Rapid IO接口的传输性能,应用TI公司DSP芯片320C6455的Rapid IO接口和Xilinx的Virtex5系列FPGA中实现的Rapid IO核构建测试平台,实现两者之间的串行Rapid IO传输。TMS320C6455 DSP集成了一个4x的SRIO接口,传输速率支持1.25Gbps、2.5Gbps和3.125Gbps。FPGA的串行Rapid IO接口采用Xilinx的Rapid IO IP核,采用2.5Gbps的传输速率。为了对FPGA中Rapid IO后端接口的数据进行缓存,为FPGA配置了大容量的片外高速同步双口存储器。
1 Rapid IO协议及性能分析
1.1 Rapid IO协议概述
Rapid IO协议分为三层:逻辑层、传输层和物理层。逻辑层在其最高层,对Rapid IO中应用程序是如何通信的进行说明,定义全部协议和包的格式,为端点器件发起和完成事物提供必要的信息。传输层在中间层,定义Rapid IO的地址空间并为包在端点设备间传输提供必要的路由信息。物理层在最底层,描述设备间接口的细节,明确说明包传输机制、流控机制、电气特性和底层错误处理。物理层包括8位/16位并行接口标准和1x/4x串行接口标准。图1给出了Rapid IO规范层次结构。
1.2 包结构
Rapid IO包的结构支持在较宽的片上并行接口处简单构建包并进行语法分析,这将限制在较窄高频接口上进行逻辑操作的数量。以字节为单位组织包,使用32位字对齐,就可以在接收器件Rapid IO包头字段始终处于特定字节通道。也就避免了复杂的重组、通道控制和分析逻辑操作[1]。
1.3 包开销
接口需要的事物开销是任何紧耦合系统内互联技术必须考虑的关键因素。这类开销包括完成一个事物所需的比特数。一些开销实例包括仲裁、地址、事务类型、确认、错误覆盖等。Rapid IO是一种全双工接口,使用该接口可在不同阶段完全流水地处理多个未完成的操作。应答开销与发送开销之间没有竞争,典型的Rapid IO事物的总开销约为28字节,包括请求包、响应包、控制符号确认和错误检测码的开销。流写事物(SWRITE)和多数消息事物的开销较低[1]。
1.4 操作延迟
Rapid IO也存在与路由和错误管理相关的额外开销,但是,与总线相比,Rapid IO几乎没有竞争和仲裁开销,同时具有较高的操作频率和分离的、并发的应答路径。虽然将存储器或消息事物转换为Rapid IO包增加了复杂度和附加的延迟,Rapid IO协议的简单性确保了使用普通的可用技术可在100ns内完成转换操作。对通过Rapid IO交换结构器件延迟的测量结果,通常也在100ns左右。
1.5 源路由
为了最大程度地利用可用系统的带宽,Rapid IO采用源路由的方法。这意为着每个包都有一个由源指定的目的地址,专门用于引导交换结构将事物路由到那里。利用这项技术,只有发送方和接受方之间的路径会被事物占据。交换器件只需分析较少的位数就能做出路由决定,具有路由表较小、延迟较小的优点。这个方法为其它路径保留了带宽,便于系统中的其它器件彼此进行并发的通信[1]。
1.6 流量控制
Rapid IO的目标之一是尽可能限制开销和复杂度,尤其在流量控制方面。流量控制保证数据在系统内传输时不发生拥塞。Rapid IO支持三种流控机制:重传、减速和基于信用的流量控制。重传机制不仅用于流量控制,还用于硬件错误恢复。减速机制使用空闲控制符号,发送包时可以在包中插入空闲控制符号,以便器件在包间插入等待状态。接收器件也可以通过向发送器件发送一个减速控制符号,来请求发送器件通过插入空闲控制符号来减慢流速。基于信用的流量控制机制使用特定的控制符号指明接收方每种事物流对应的缓冲区现状,发送方只有在得知接收方有可用的缓冲空间时才发送包。
2 Rapid IO传输性能测试
2.1 测试平台
为了测试Xilinx Virtex5FPGA中实现的Rapid IO接口的实际传输性能,设计了DSP和FPGA之间通过Rapid IO通信的测试平台。测试中MS320C6455 DSP做主设备,FPGA中的Rapid IO接口做从设备,DSP通过Rapid IO接口对FPGA的片外同步双口进行读、写访问,两者中间通过交换芯片相连。写操作的流程为:DSP预先在DDRII存储器中构造测试数据,通过Rapid IO接口把数据以NWRITE或SWRITE的方式发送到FPGA外接的同步双口中。读操作的流程为DSP通过Rapid IO接口以NREAD的方式将写入FPGA片外双口中的数据读回。在测试系统中,DSP TMS320C6455的工作频率为800MHz[3],使用4线2.5Gbps的串行Rapid IO接口模式,FPGA的Rapid IO接口工作于和DSP的接口相同的速率模式。图2给出了测试平台示意图。
2.2 Rapid IO理论传输性能
根据Rapid IO协议计算其理论最大传输带宽,然后可以与实际测试的传输带宽进行比较。分析影响效率的因素。根据Rapid IO协议计算理论最大传输带宽如下(选择2.5Gbps*4的情况):
10Gbps*0.8=8Gbps(0.8为串行8B/10B编解码的效率)
1GByte/s*90%=0.9GByte/s=900MByte/s(典型的Rapid IO包协议开销为28Bytes,最大有效载荷为256Bytes,256/(256+28)的值约为90%)
2.3 实测传输性能测试分析
DSP的工作频率为800MHz,所用定时器周期是CPU工作周期的6倍。实际传输带宽的计算方法如下:
带宽=传输数据字节数/所用时间
所用时间=[(1/800)*6]*定时器计数值
注:定时器计数值是传输一定数量数据期间内定时器的值。
表1列出了NWRITE、SWRITE和NREAD传输方式下Rapid IO包在不同的有效数据载荷情况下的实际传输带宽。
分析表1我们可以得出以下结论:
1)NWRITE传输方式:
a)传输数据量在512Byte以内时,传输带宽随着数据量的增大而增长的比较明显,但是当一次命令传输的数据量到了512Byte时,传输带宽接近实际最大带宽,约为522MByte/s。一次命令传输数据量为256Byte(最大包)时,传输带宽为318MByte/s。
b)一次命令传输数据量大于512Byte时,实际传输带宽基本趋于稳定,NWRITE方式单向传输时,最大实际传输带宽为577MByte/s。
c)SWRITE方式传输和NWRITE方式传输实际带宽基本相同。
d)在2.5Gbps*4速率情况下,SWRITE方式和NWRITE方式传输的实际最大传输带宽和理论传输带宽比值为64%。
2)NREAD传输方式:
a)在2.5Gbps*4 NREAD方式单向传输时,512Byte以内时,读传输带宽随数据量的增大而增长较快,一次读命令传输数据量为512Byte时基本接近最带带宽,再继续增加读命令的传输数据量,传输带宽增大幅度微小。
b)一次读命令传输数据量为一个Rapid IO包的最大有效载荷256Byte时,实际传输带宽为72MByte/s,2.5Gbps*4 NREAD方式单向传输时,最大实际数据传输带宽为90MByte/s。
c)NREAD方式传输带宽只有NWRITE方式的20%。
3 影响传输效率的因素分析
通过以上的分析,得出无论是NWRITE方式,SWRITE方式还是NREAD方式,实际最大传输带宽和理论带宽都有一定的差距,在实际传输过程存在以下影响效率的因素:
a)发送方DSP处理数据的时间。接收方FPGA处理数据的时间,收到的数据先放到DPRAM,处理内核再从DPRAM中取数据也要占用一定的时间。Rapid IO分包时间。
b)测试平台中包交换芯片处理Rapid IO传输的延时。
c)Rapid IO协议传输时,通道中需要传输大量的控制符号和特殊码组字符等,用于链路维护、包定界、包确认、错误报告和错误恢复等。
d)尤其NREAD方式,传输效率很低,这是因为读操作由一个NREAD事物和一个RESPONSE事物组成,远端节点读本地存储器中的数据时,需要通过RESPONSE操作把请求数据和返回数据一起送到远端节点,所以花费的时间更长。
e)最后测试方法中存在计数计时的测量误差。
4 结论
文中设计了Rapid IO串行通信的测试平台,测试了Rapid IO在4线2.5Gbps NWRITE方式、SWRITE方式和NREAD方式下的实际传输带宽,通过实际传输带宽与计算的理论带宽对比,分析了影响传输性能的各种因素。同时得出NWRITE方式和SRWITE方式实际传输带宽基本一致,NREAD方式传输的带宽比前两种方式小,效率较低。
摘要:RapidIO是一种点对点的基于包交换的交叉开关互联技术,以其高带宽、低延时及高可靠性为高性能的嵌入式系统内部互联通信提供了良好的解决方案。该文设计了串行RapidIO的性能测试平台,在此基础上测试了FPGA上实现的串行RapidIO接口的实际传输性能,最后根据试结果分析了影响传输效率的因素。
关键词:RapidIO,DSP,传输性能
参考文献
[1]Sam Fuller.RapidIO嵌入式系统互连[M].王勇,译.北京:电子工业出版社,2006.
[2]RapidIO Trade Association.RapidIO Interconnect Specification Rev.1.2[EB/OL].http://www.rapidio.org,2002.06.
[3]TMS320C6455Serial RapidIO(SRIO)User’s Guide(SPRU976a),TI Inc[EB/OL].http://www.ti.com,2006.05.
RapidIO互联 篇4
关键词:RapidIO协议,VPX总线,FPGA
0引言
随着数字阵列技术在雷达系统中的应用, 雷达信号处理运算量大、算法结构复杂, 要求信号处理能够实时高速、高性能、高灵活地完成各项任务。对雷达的数据传输带宽、信号处理器的处理能力和信号处理可重构等提出越来越高的要求[1]。现代雷达具有数据节点分散、数据流量大、交互传输频繁、高速异步可重构、多源数据同步等特点, 这些互联架构体系的复杂要求是系统工程化应用需要直接面对的挑战。
目前大规模FPGA、多核微处理器、高性能DSP的性能大幅度提高, 使复杂信号处理算法的工程实现得以应用。高带宽、高可靠的片间和板间互联技术成为一个需要重点突破的课题。Rapid IO协议是一个开放的点对点分组交换标准, 可以提供高带宽、低延时、高可靠的数据交换通道[2], 将互联协议Rapid IO用于构建基于交叉开关的新型雷达信号处理系统是一个很好的设计方案。Rapid IO协议基于包交换的系统级互联技术, 具有比万兆以太网、PCIe更高的传输效率[3]。VPX总线是基于高速串行总线的新一代总线标准是对传统VME总线的重大革新[4], 支持数据交换系统构架, 并且兼容了PCI—Express, Rapid IO, Hypertransport等高速串行总线协议, 并继承了VME标准的机械结构及导冷抗震方面的优势。
1系统构架说明
1.1工程背景
现代雷达信号处理一般都是通过多片DSP形成处理器簇, 共同完成快速实时的运算。但是目前大多数DSP都不具备Rapid IO接口, 所以我们采用FPGA, 将DSP的总线与一个Rapid IOIP核总线相连接, 实现DSP与Rapid IO网络的通信。当然现在主流DSP如TI公司的C6678等具有Rapid IO接口, 能够直接运用。这里FPGA的Rapid IO接口设计主要是在DBF (数字波束形成) 后将数据通过交换板发送数据至对应的信号处理板, 完成数据的交换。
1.2芯片选型
我们选用Altera公司的stratix IV360芯片, Altera的Rapid IO的IP核兼容于2005年2月发布的Rapid IO互连标准1.3, 实现了4种标准速度1.25G、2.5G、3.125G和5G下1x/4x的物理层协议。同时Altera公司的SOPC工具提供了大量的成熟的IP核和可裁剪的Avalon总线, 方便的帮助用户实现模块化设计。
1.3系统结构
如图1所示为雷达系统的Rapid IO交换系统结构框图。AD数据经过数据同步和数字波束形成后, 将数据按照雷达工作模式通过Rapid IO协议将数据进行分配至对应的FPGA、DSP或者CPU等信号处理单元。而数据的交换主要通过交换网络完成的。在Rapid IO协议中, 每一个设备有唯一的Device ID标识, 在Rapid IO初始化过程中, 在各设备完成物理链路层初始化后会建立Rapid IO传输网络路由表, 网络可以通过系统设置按照一定的传输模式进行数据和消息的交互传输。根据系统需求, 这里采用4XRapid IO全交换, 传输速率为3.125G。
2 FPGA模块设计
使用Rapid IOIP核, FPGA主要完成的工作任务有系统维护模式、数据发送、数据接收和门铃模式等。这些都需要FPGA编写对应的模块。下面对相应模块的实现进行简单的说明。
2.1 System Maintenance
Altera公司的Rapid IOIP核的对Rapid IO协议的控制主要是通过对Rapid IO里的寄存器控制来实现对应的数据交换和Rapid IO状态获取的。该模块主要由以下几个部分构成:1.Rapid IO端口状态的获取, 主要包括物理层初始化、link初始化、端口初始化、数据包状态、系统工作状态等。同时对主要的错误状态能够进行自动复位等自修复功能模块。2.主要系统寄存器控制, 包括Device ID, 发送Window开启和地址设置、发送数据选用的传输模式、接收Window开启和地址设置等。3.Avalon总线的地址、数据总线、读写控制等信号的控制。
2.2 Avalon Master
Avalon_Master模块设计是一个状态机控制电路, 完成在Avalon总线上的地址、Byteenable、读写控制信号、读数据信号和写数据信号的产生与控制处理。相应地还有等待数据以及数据解析等工作。
2.3 Avalon Slave
Avalon_Slave模块是一个Avalon总线的从设备, 它组要用来接收Avalon总线上其它主设备发送过来的数据写请求、数据读请求, 同时将相应的总线规则送到数据总线上, 并同时产生数据有效信号。这个模块主要用于数据的分配到对应的信号处理板。该模块主要由以下三个部分构成:1.完成Avalon总线的数据时钟域转换, 主要通过fifo来实现。2.发送数据前完成目的地址 (Destination ID) 、Rapid IO窗口选择、Rapid IO地址的配置。3.完成Avalon总线的写控制信号、数据总线、地址总线、数据位有效控制信号的控制。
2.4 Door Bell
门铃信息的传输独立于Avalon总线, 每次能够携带16bit的传输信息。这种机制可以用于处理器递送中断信息。在这种情况下, 信息字段用来向接收者传递中断级别和目标信息。这种机制还可以用于处理器件间发送信号量。尤其在与CPU和DSP传输过程中, 这种中断显得尤为重要。
3实际测试
经过测试, 本模块实现了Rapid IO的主控功能, 通过交换板的交换芯片成功与Xilinx公司的FPGA、Power PC的CPU和C6678的DSP芯片进行了数据交互传输。传输的模式包括目前Altera公司提供的IP核支持的NWRITE、NWRITE-R、SWRITE、NREAD、MAITENANCE、DOORBELL模式。数据峰值传输效率高于70%。
4结论
本文将Rapid IO协议在FPGA中实现了数据交互设计。采用了Altera公司的FPGA芯片实现了多端口、大规模、高效率和高可靠的数据交换设计, 经过实测, 本模块成功实现了Rapid IO数据包与DSP、CPU和FPGA的数据交换, 对整个Rapid IO系统进行了初始化配置和管理。本模块已经在实际的雷达系统中应用, 并且取得了很好效果。
参考文献
[1]吴刚.Rapid IO技术在雷达系统中的应用[J].信息化研究, 2011, 37 (2) :62-64.
[2]Sam Fuller.王勇, 等, 译.Rapid IO嵌入式系统互联[M].北京:电子工业出版社, 2006.
[3]尹亚明, 李琼, 郭御风, 等.新型高性能Rapid IO互连技术研究[J].计算机工程与科学, 2004, 26 (12) :85-87.
RapidIO互联 篇5
在通信系统中,例如无线基站和SCA(软件通信体系)平台等,高速DSP(数字信号处理器)以及大规模FPGA(现场可编程门阵列)被广泛应用,器件之间的数据交互量急剧增加,系统的处理能力要求也极大增加,多种处理芯片并行处理是满足系统处理性能要求的有效解决途径,因此器件之间的互连成了十分重要的课题。DSP、FPGA等器件互连的方式有很多种,总体说来,有共享总线和点对点互连接口。共享总线由于多个器件共享带宽,降低系统数据交互效率,容易造成器件互连数据传输瓶颈;点对点互连可以使每个器件之间独立使用某个数据交互通道。但传统的接口,如多通道缓冲串口等,数据带宽有限,且不适合系统中任意器件的点对点互连,只能实现通道两端的器件互连。基于交换的互连方式是实现系统中任意器件点对点互连的有效途径,通过交换器件将器件以星形拓扑方式互连,可以实现拓扑中任意器件的数据交互,连接方式灵活,且独享接口带宽,能很好地满足系统中互连需求。SRIO(串行RapidIO)是流行的互连方式之一,具有高数据带宽、高传输效率、高可靠性等特点,很多IC制造商都在新推出的器件中集成了该接口,为SRIO的广泛应用提供了器件基础。
本文基于SRIO接口,采用SRIO交换芯片、DSP、FPGA等器件,设计了一种通用的数字信号处理模块,满足无线基站、SCA等应用领域对信号处理硬件平台的性能要求。
1 SRIO技术
RapidIO架构用于网路和通信设备,通过提供带宽、软件独立性、容错性和短等待时间,满足更高的性能要求。RapidIO互连架构的设计与流行的集成通信处理器、主机处理器以及网络DSP相兼容,是高性能包交换互连技术。它满足了高性能嵌入式系统行业对内部系统互连的需求,包括可靠性、高带宽和更快的总线速率。RapidIO互连支持片对片和板对板的通信,其性能可达到10 Gbit/s或更高。它是低迟延、基于存储器地址的协议,可升级、可靠、支持多重处理,并对应用软件透明。另外,它对操作系统软件没有影响。
RapidIO协议分为物理层、传输层和逻辑层3层。物理层负责完成信息包如何在两个物理点之间必要信息(如电气接口、流控制等);传输层负责端到端传输数据包的必要信息(如路由地址);逻辑层完成端点处理交易的必要信息(如交易类型、大小、物理地址)。SRIO提供了两种接口模式,即1x和4x。1x SRIO设备提供了收发两个单工通道,每个通道的波特率可以配置为1.25 Gbit/s、2.5 Gbit/s和3.125 Gbit/s,支持的数据速率分别为1 Gbit/s、2 Gbit/s和2.5 Gbit/s。在4x模式下,RapidIO设备提供了4对收发器,因此最高的数据速率可以达到10 Gbit/s。图1给出了4x设备的连接方式。
2 实现方案
2.1 器件选型
在该平台中,数字信号处理器件主要包括DSP和FPGA,两者之间通过SRIO交换器件实现互连。
2.1.1 SRIO交换器件
Tsi578是第三代SRIO交换机,支持80 Gbit/s的聚合带宽。借助 Tsi578系列交换机,用户可用较低的成本开发出功能强大、性能卓越的系统。Tsi578 为设计人员和架构工程师提供了极强的伸缩性,使其设计出的设备得以广泛应用。通过多种端口带宽和频率选项,可以灵活地选择端口配置。Tsi578提供了众多的增强功能,例如,通过增加多播功能提高矩阵交换能力、通过调度算法进行通信量管理、可设定缓存深度,以及监控矩阵性能,以便对通信量进行监控和管理。本方案中采用该型号芯片作为SRIO交换器件。
2.1.2 DSP
DSP采用TI公司的TMS320C6455。该款产品可实现更高性能、更精简代码、更多片上存储器以及超高带宽的集成外设,包括用于处理器间通信的SRIO总线。该款新型DSP提升了2倍至12倍的性能及 I/O 带宽,使电信、网络与视频基础设施终端设备以及高端成像系统开发人员可大幅增强系统性能,并在系统内集成更多的高带宽通道,实现更完美的影像质量。
2.1.3 FPGA
FPGA选用Altera公司的StratixⅡGX 系列。StratixⅡGX 系列是Altera第三代带有嵌入式收发器的FPGA。该系列经过优化设计,能够为不断发展的各种应用和需要高速串行I/O的协议提供功能强大的解决方案。在622 Mbit/s至6.375 Gbit/s工作范围内,经过优化的收发器具有较强的噪声抑制能力和优异的抖动性能,收发器能够以6.375 Gbit/s数据速率成功地工作在长度超过40英寸(1.25 m)的标准FR-4材料电路板和背板上。收发器含有多种特性,确保在较高数据速率下实现信号完整性,同时保持较低的功耗。
2.2 平台设计方案
平台实现框图图 2所示。
平台集成了2片TMS320C6455和2片StratixⅡGX系列FPGA,Tsi578提供了8个4x模式的 SRIO端口,DSP和FPGA分别连接到Tsi578的其中一个4x端口上,并通过SRIO接口实现互连。平台外部接口形式和板卡尺寸采用AMC(Ad M Card)标准,对外提供2个标准4x SRIO接口,用于与背板之间的数据交换。
由于TMS320C6455、FPGA以及Tsi578对上电时序和收发器工作时钟要求比较严格,下面介绍一下平台供电设计方案和时钟实现方案。
2.2.1 供电设计
该平台中,DSP、FPGA和Tsi578等所需要的电压种类较多,且对上电顺序严格,因此必须精心设计供电电路,并优化电源电路,减少电压转换器件数量,降低因开关电源造成的电磁骚扰。
TMS32C6455选用主频为850 MHz,其主要供电电压有1.2 V的内核电压、1.2V的I/O电压、3.3 V的I/O电压、1.8 V的I/O电压以及1.8 V的锁相环电压;FPGA的主要供电电压有1.2 V的内核电压、1.2 V的收发器电压、3.3 V的I/O电压等;Tsi578的主要供电电压有1.2 V的内核电压和3.3 V的I/O电压。综合上述情况,平台所需的电压值有3种,即1.2 V、1.8 V和3.3 V。虽然同一个值电压相同,但由于所要提供的对象不同,可能是内核或者收发器或者锁相环等,对电源纹波要求不同,同时需要控制其上电时序,因此需分别考虑每一个器件的供电电压提供方式,合并可以一并提供的电压。
平台供电的总电源为+12 V,该电源通过AMC接插件或电源插座输入。图 3给出了+12 V转成3.3 V、1.8 V、1.2 V的框图,这些电压必须经过处理后才能被Tsi578、DSP和FPGA使用。
图4给出了Tsi578供电配置的示意图,DSP、FPGA供电的方式采用类似方法,这里不再赘述。
2.2.2 时钟设计
平台所需的时钟主要有Tsi578 SRIO使用的差分156.25 MHz、DSP和FPGA SRIO使用的差分125 MHz、Tsi578 单端100 MHz工作时钟以及DSP和FPGA单端50 MHz工作时钟。平台采用一片IDT5V9885和MAX3624实现各种时钟信号。
MAX3624可以提供3路差分时钟,频率可以配置成125 MHz和156.25 MHz,分别供给2片DSP和Tsi578;IDT5V9885提供2路125 MHz差分时钟,供给2片FPGA;同时IDT5V9885提供4路单端时钟,配置成50 MHz,分别供给DSP和FPGA;晶振产生Tsi578的单端100 MHz工作时钟。
2.2.3 电路板设计
由于平台集成了Tsi578、2片DSP和FPGA,整个模块的功耗比较大,因此在布局时必须要考虑散热问题,合理布局大功率器件。根据AMC板卡的结构特点,平台的布局可以参考图5。
电路板设计时还有一个重点是SRIO信号布线。Tsi578、DSP以及FPGA的手册中都给出了一些常规的SRIO布线要求,按照这些要求进行布线,一般都能满足SRIO信号完整性要求,值得注意的是,电路板设计和加工时一定要进行阻抗控制,使得差分信号的阻抗满足100 Ω。另外,电路板的层数不应少于8层,保证SRIO信号走线层紧靠参考地平面。
3 试验结果
依据本方案设计的平台已成功应用于某通信系统中,经长期试验,运行稳定,数据传输带宽高。图6是示波器测量的SRIO信号工作于1.25 Gbit/s(见图6(a))和3.125 Gbit/s(见图6(b))时的眼图。
从图6可看出,SRIO接口即使在3.125 Gbit/s模式下工作,仍然保持了很好的信号完整性,满足了SRIO信号判决条件。
该平台提供了2个主频850 MHz的DSP和2个StratixⅡGX系列FPGA,可以满足大多数情况下的数字信号处理系统要求,并且提供了两路4×SRIO信号路由到背板上,实现了与系统中其他模块的高速互连。
参考文献
[1]Tsi578 Serial RapidIO Switch User Manual[M].Tundra Sem-iconductor Corporation,2007.
[2] Tsi578 Serial RapidIO Switch Hardware Manual[M]. Tundra Semiconductor Corporation,2007.
[3]TMS320C645x Serial RapidIO User′s Guide[M].Texas In-struments Corporation,2006.