利用RapidIO技术搭建的可重构信号处理平台
扫描二维码
随时随地手机看文章
LINK口是一种源同步接口,可以达到很高的传输速度。但是,由于LINK口是基于电路交换的接口,连接的双方独占一条通路,LINK口一旦在硬件上连接起来,系统中的DSP网络拓扑就固定不变了。由于信号处理算法的多样性,系统中数据流的方向也很不确定,固定的DSP拓扑网络只能针对一定的算法达到最优,当数据流方向改变较大时,同样的信号处理平台的传输效率就会大大降低。这时,如果能够重新调整DSP网络的拓扑结构,会大大提高平台的性能。
为了实现系统可重构的特性,需要利用专门的FPGA芯片,将基于电路交换的LINK口转换成基于(带有路由信息的)包交换的其他格式的接口进行传输。现在比较流行的基于包交换的接口有串行 RapidIO接口、 PCI Express接口和千兆以太网接口等。
串行RapidIO、PCI Express和千兆以太网技术都可以提供高速、可靠的点对点互联。串行RapidIO技术是专门为嵌入式系统互联而设计的,只要有足够多的交换机,就可以实现任意结构的拓扑。PCI Express技术是着眼于最大的兼容PCI总线技术而设计,为了能够兼容传统的PCI总线技术,PCI Express的拓扑结构只能是树形结构。这种结构在PC机和服务器内非常适用,如果合适的话,也能用在嵌入式系统内。但在PCI Express的结构中除了要有交换机,还需要有一个根联合体来做统一的管理,这增加了硬件的开销。千兆以太网技术是百兆以太网技术的升级,最初用于局域网内和广域网内的互联,是非常可靠的互联选择。但千兆以太网技术较前2种技术的效率稍低,而且系统延时较大,不太适合实时嵌入式系统内部的互联。在这3种技术中,串行RapidIO技术是在嵌入式系统内实现互联的最佳选择[1]。
1 RapidIO技术
RapidIO是一种高性能、低引脚数、基于包交换的系统级互联协议,是专门为多种多样的嵌入式系统互联而建立的一种标准[1]。RapidIO接口主要适用于芯片到芯片和电路板到电路板之间的连接。在2008年3月由RapidIO组织公布的2.0版本的规范中,串行RapidIO链路可以支持每路1.25、2.5、3.125、5、6.25 GBaud的传输速率[2](1,2,2.5,4,5 Gb/s的有效数据率)。现在FPGA的IP核能够支持的主流配置是x1或x4的链路,每路支持2.5 Gb/s或3.125 Gb/s的传输速率。因此,如果采用x4的链路和3.125 Gb/s传输速率,就可以达到双向各12.5 Gb/s的带宽。另外,RapidIO也提供了较高级别的错误管理和错误恢复机制,是一种比较稳定和可靠的互联选择[3]。
2 系统结构设计
2.1 板卡内DSP的连接结构
DSP板是信号处理系统中最基本的组成模块,它的结构固定不变。本文选择ADI公司的TS201系列芯片。每块TS201芯片带有4个高速LINK口,其中3个LINK口用于板卡内DSP之间的连接,1个LINK口用来通过FPGA进行协议转换,转成串行RapidIO接口,实现与其他板卡之间的连接。板卡上共采用6块TS201芯片,其拓扑结构如图1所示。图中虚线部分表示DSP芯片之间的LINK口连接,实线部分表示DSP与FPGA的LINK口连接。
这种拓扑结构能够达到板卡内DSP之间较高的传输速度,因为每个DSP直接或最多经过一次中转就能与板上任意其他的DSP进行通信。[!--empirenews.page--]
2.2 板卡间DSP的连接结构
在DSP板板卡之间用RapidIO接口连接有很多好处。最直接的好处是,由于RapidIO采用的是串行总线,这使得背板上的布线设计不再困难,系统可以扩展得更大。更重要的是,由于RapidIO是以数据包的格式传送数据的,用户可以通过改变数据包包头中的路由信息来改变数据的流向。这使得系统的重构变得十分容易。DSP板在系统中的连接如图2所示。
在系统内, 任意2片(不同板卡上的)DSP芯片之间都可以建立连接。例如:如果用户想要将DSP板1上的DSP4中的数据发送给DSP板3上的DSP6,只需在系统上电时提前将DSP板1上的FPGA内部控制路由的寄存器(目标板ID号设为3,目标DSP分配的地址设置为6)通过软件设置好即可。交换机收到数据后,会根据数据包中用户配置的路由信息将数据包送往目标DSP板,然后,目标DSP板上的FPGA进一步将数据发送到目标DSP芯片。在下一次的算法设计中,如果数据的流向改变很大时,用户可以根据数据流向的特点,重新优化DSP网络的拓扑结构,以适应不同的算法。
重构DSP网络拓扑的过程在传统的信号处理平台中是很难实现的。在多数情况下,由于DSP拓扑结构不够灵活,算法设计者受限于固定的DSP拓扑结构,只能降低系统的使用效率,从而使大量的DSP资源闲置,降低了系统的处理能力。而在这种新的信号处理平台架构中,用户只需要通过软件界面设置路由信息即可完成整个平台结构的改变,系统不会因为算法的改变而降低使用效率。[!--empirenews.page--]
2.3 FPGA内部的逻辑设计
在DSP板卡上有一块Altera公司的Stratix IIGX系列的FPGA芯片。这块FPGA芯片专门用来实现LINK口与RapidIO接口之间的数据转换,将6路LINK口数据整合到1路RapidIO通路中。数据接收和发送的逻辑结构如图3所示。
当DSP发送数据时,FPGA的LINK口接收模块将收到的数据缓存到FIFO中,数据轮询状态机按顺序检查FIFO的存储状态。当FIFO内的数据满足RapidIO包最大负载(256 B)时,启动1次RapidIO数据发送操作。另外,由于LINK口传输协议不包含数据长度,所以1次LINK口传输的数据长度不可能正好是256 B的整数倍。如果当前FIFO内有低于256 B的数据,而当前LINK口又没有处于传输状态,也认为LINK口完成了1次数据发送,这时也启动一次RapidIO数据发送操作。
在每次启动RapidIO数据发送操作之前,配置寄存器模块会根据不同的DSP号将对应的路由信息输入给RapidIO的IP核。RapidIO的IP核负责将输入的路由信息和数据一起打包并发送出去。
在RapidIO的数据接收端,当RapidIO核接收到数据时,首先检查数据包包头中的目标板ID号信息。如果目标板ID号与本地的ID号一致,说明数据包是发往这个板卡的,然后RapidIO核将接收到的数据和DSP地址信息传递给数据分发状态机,由数据分发状态机根据地址信息将数据分发到对应的FIFO中。最后,由LINK口发送模块将数据传给目标DSP。
这种将不同的信号相互交织在不同时间段内,沿着同一个信道传输,在接收端再用某种方法将各个时间段内不同的信号提取出来的方式,类似于通信中的时分复用的机制。[!--empirenews.page--]
2.4 功能仿真
为了验证rapidIO IP核的逻辑功能和LINK口与rapidIO接口的转换逻辑功能,将2个rapidIO核的td[3:0],rd[3:0]对接起来。其中一个rapidIO核的后端连接发送数据包的控制逻辑,另一个rapidIO核后端连接接收数据包的控制逻辑。将LINK口逻辑、接口转换逻辑和rapidIO核逻辑串接起来,然后在数据发送端施加激励信号,在数据接收端进行数据检验。整个过程如图4所示。
在仿真过程中,最关键的部分是验证rapidIO核的逻辑功能。Altera公司提供的rapidIO IP核的逻辑层接口符合avalon总线的接口时序[4](avalon总线是由Altera公司提出,用于在基于FPGA的片上系统中连接片内处理器和片内外设的总线结构)。对rapidIO核的控制可以参照avalon规范[5]。
2.5 缺陷及解决方案
在系统中,每路LINK口实现300 MB/s的带宽,如果6路LINK口同时发送数据,总带宽将达到14 Gb/s,已经超出了RapidIO的IP核所能支持的最大带宽。这时,RapidIO链路将成为数据传输的瓶颈,从而造成DSP的传输速率降低。另外,当少于3个DSP发送数据时,又会造成RapidIO链路的浪费。这像大城市中的交通一样,在上下班高峰时道路会拥堵,在其他时间,道路又畅通无阻。生活中,很多人会避免上下班高峰时期出行。类似地,在使用此系统时,应该尽量避免在一块DSP板卡上同时发送6个DSP的数据到其他板卡。
本文提出了一种利用RapidIO技术搭建的可重构的信号处理平台,并简要介绍了其逻辑功能的实现。该平台的最大优势就是系统的可重构性。使用这样的信号处理平台,DSP工程师可以根据不同算法的数据流向重新搭建出更加优化的DSP网络拓扑结构,从而提高数据的传输效率。总之,可重构的信号处理平台能够灵活地改变系统中DSP网络的拓扑结构以适应各种数据流向的应用,为用户和国家节省大量的设备购买费用和研发时间。
参考文献
[1] FULLER S.RapidIO:The embedded system interconnect. Wiley,ISBN:978-0-470-09291-0,US.,2005.
[2] RapidIO Trade Association.RapidIO interconnect Specification Rev.2.0.www.rapidio.org,2008.
[3] BOUVIER D,RapidIO:The interconnect architecture for high performance embedded systems.www.rapidio.org,2009.
[4] Altera Corparation.RapidIO megacore function user guide. www.altera.com,2008.
[5] Altera Corparation.Avalon interface specification.www.altera.com,2008.