利用串行RapidIO实现FPGA协处理
扫描二维码
随时随地手机看文章
同时,开发人员不但要跟上日益提高的性能需求,还得注意保持成本低廉有效利用基于串行RapidIO的FPGA作为DSP协处理器就能达到这些目的
由于三重播放应用集合了话音、视频和数据应用,因此必须采用新算法来设定其开发和系统优化策略的参数其间,开发人员要解决以下问题:构造可调整可扩展的架构、支持分布式处理、采用基于标准的设计,以及针对性能和成本进行优化
仔细研究一下就会发现,为满足应用需求而要、面对的这些挑战主要涉及两个主题:一是连接性,从本质上说就是实现不同设备、板卡和系统之间的“快速”数据转移;二是计算能力,指设备、板卡和系统中分别可用的处理资源
运算平台之间的连接
基于标准的设计通常比“自由发挥”的设计简单得多,也是今天的典型设计模式并行连接标准(PCI、PCI-X、EMIF等)虽能满足当前需求,但若考虑到可调整性和可扩展性就有所不足了随着分组处理技术的不断进步,连接标准的发展趋势显然倾向于高速串行连接从图1中就能看出这一趋势
诸如PCIe和GbE/XAUI之类的高速串行标准在台式机和网络行业已有应用但无线通信设施中的数据处理系统对互连方面的要求又稍有不同,它要求:
1. 管脚数少;
2. 需进行底板以及芯片到芯片的连接;
3. 带宽和速度可调;
4. 具备DMA和消息传递功能;
5. 支持复杂可调整的拓扑;
6. 支持多点传送;
7. 高度可靠;
8. 支持当日时间(time of day)同步;
9. 可提供服务质量(QoS)
图1:向串行连接的发展趋势
串行RapidIO (SRIO)协议标准可轻松满足以上大部分要求,甚至超出这些要求的标准因此,串行RapidIO已成为无线通信基础设备中用于数据层(data plane)互连的主流连接技术SRIO网络建立在两个“基本模块”基础之上:端点设备(Endpoint)和交换设备(Switch)端点设备负责收发数据包,交换设备负责在端口之间传递数据包,但不负责数据包的解释图2给出了SRIO网络的构建模块
图2:SRIO网络的构建模块
按规范定义,串行RapidIO有用3层架构,如图3所示
图3:SRIO架构
其中包含:
物理层——负责描述器件级接口规范,例如分组传输机制、流量控制、电特性以及低级错误管理
传输层——为在不同端点设备之间传送分组提供路由信息交换设备以基于器件的路由方式工作于传输层
逻辑层——定义总体的协议和分组格式每个分组最多包含256字节的载荷事务通过Load、Store或DMA操作来访问大小为34/50/66比特的地址空间
SRIO有多种优点一个运行于3.125 Gbps的4通道SRIO链路能在完全保持数据完整性的前提下提供10 Gbps的流量SRIO与微处理器总线类似,它在硬件中完成存储器和器件寻址以及分组处理这不但大大降低了用于I/O处理的开销,减小了延迟,也增大了其相对于其他总线接口的系统带宽但与大多数其他总线接口不同的是,SRIO接口的引脚数很少,而且其基于高速串行链路的可调整带宽可在1.25 - 3.125 Gbps范围内调整图4为SRIO规范的图解
图4:SRIO规范
平台中的运算资源
有了可配置的处理资源,开发人员就可以用硬件实现他们的应用,例如数据压缩和加密算法甚至过去只在软件中实现的整套防火墙和保密应用,如今都可以在硬件上实现但这样做需要具备共享带宽和强大处理能力的大型并行生态系统,也就是说,要求利用CPU、NPU、FPGA和/或ASIC进行共享式或分布式处理构建此类系统时,对运算资源的一些要求包括:
1. 支持复杂拓扑的分布式处理能力;
2. 高度可靠的直接对等通信能力;
3. 多个异构操作系统;
4. 通过多个异构操作系统支持通信数据层;
5. 具有广泛生态系统支持的模块化和可扩展平台
SRIO协议规范和架构支持嵌入式和无线基础设施领域中运算设备的不同要求有了SRIO,就可以实现系统结构的独立性,部署达到运营商级可靠度、具备高级流量管理功能,并具有高性能和高吞吐量的可扩展系统此外,广泛的供应商生态系统也更方便设计师采用现货元件构造SRIO系统SRIO是一种基于分组的协议,它支持:
1. 采用分组操作(包括读、写和消息传递)实现数据搬移;
2. I/O非一致性功能和缓存一致性功能;
3. 通过支持数据流传送和SAR功能实现高效的互通和协议封装;
4. 通过支持数百万条数据流、256种流量类别和有损操作实现一种流量管理架构;
5. 支持多事务请求流(包括配置QoS)的流量控制;
6. 为减少带宽分配、事务预定和死锁避免等问题而支持优先级划分;
7. 通过系统发现、配置和学习实现对标准拓扑(树型和网格型)和任意拓扑(菊链)等多种硬件拓扑方式的支持,包括支持多个主机;
8. 错误管理和分类(可恢复、通知和严重)
串行RapidIO的IP方案
为了在通过逻辑(I/O)和传输层IP上的目标接口和源接口收发用户数据时支持完全兼容的最大载荷操作,Xilinx等厂商根据最新的RapidIO v1.3规范设计了其端点IP解决方案
图5所示是Xilinx的一套完整的SRIO端点IP方案,它包含以下组成部分:
1. LogiCORE RapidIO 逻辑 (I/O)和传输层IP;
2. 缓冲层参考设计;
3. LogiCORE串行RapidIO物理层IP;
4. 寄存器管理器参考设计
图5:Xilinx的 SRIO端点IP架构
IP架构
Xilinx提供了缓冲层参考设计的源代码,该设计可完成分组的自动排队和优先级重新划分SRIO物理层IP可以实现链路训练和初始化、发现和管理以及错误与重试恢复机制此外,在该物理层IP中还对高速收发器进行了实例化,以便支持线速为1.25Gbps、2.5Gbps和3.125Gbps 的1通道和4通道SRIO总线连接
该方案中提供的寄存器管理器参考设计允许SRIO主设备对端点设备配置、链路状态、控制和超时机制进行配置和维护另外,该寄存器管理器还提供了可让用户设计探测端点设备状态的端口
LogiCORE则提供了完整的端点IP该IP已通过业界领先SRIO器件厂商的测试用户可通过Xilinx CoreGen GUI工具获得LogiCORECoreGen工具可以帮助用户配置波特率和端点LogiCORE支持流量控制、重传抑制、门铃和消息传递等扩展特性因此,用户可以创建一套专门针对应用需求优化了的灵活、可调整和定制化的SRIO端点IP
利用Xilinx和其他厂商提供的大多数高性能FPGA中的各种资源,系统设计师就能轻松创建并部署其智能方案,以增强产品在上市时间、可调整性、可扩展性、适应未来发展等各方面的优势下面给出了一些采用SRIO和DSP技术的系统设计实例
SRIO系统应用实例
1.嵌入式系统:像x86这样的CPU结构是针对那些无需进行大量乘法运算的一般应用优化过的相比而言,DSP结构则是针对包括滤波、FFT、矢量乘法和查找以及图像或视频分析等信号处理操作优化过的
因此,同时采用CPU和DSP的嵌入式系统可以轻松利用通用处理器和信号处理器两种结构的优势图6给出了一个此类系统的例子,其中同时包含FPGA、CPU和DSP架构
图6:基于CPU的高性能DSP子系统
在高端DSP中,串行RapidIO已成为主流数据互连方式x86 CPU中主要的数据互连则采用PCI Express实现如图6所示,对FPGA进行一些简单的配置,就能用它调整DSP应用的规模,和/或桥接几种完全不同的互连标准(如PCI Express 和串行RapidIO)
在该系统中,管理PCI Express系统的是Root Complex芯片组,SRIO系统则受一块DSP管理PCIe的32/64位地址空间(基地址)可自动映射至34/66位SRIO地址空间(基地址)PCIe应用程序通过内存或I/O读写与Root Complex芯片组通信这些事务均可通过流写入、原语和确认读/写事务(SWRITEs ATOMIC NREADs NWRITE/NWRITE_Rs)等I/O操作轻松映射至SRIO空间
在Xilinx的FPGA中设计此类桥接功能非常简单,因为PCI Express的后端接口和串行RapidIO端点的功能模块是类似的分组队列模块随后就可以实现从PCIe到SRIO或从SRIO向PCIe的转换,从而在这两个协议域之间建立数据流
2.DSP处理应用:在那些DSP处理是主要架构要求的应用中,系统结构可按图7所示方式设计
图7:需要强大DSP处理能力的器件
Xilinx Virtex-5 FPGA在该系统中就可用作其他DSP器件的协处理器如果用SRIO进行数据互连,这整套DSP系统方案还可轻松实现调整这样的方案具备可扩展性,适应未来的发展,而且还能以多种外形尺寸实现
当需要强大DSP功能的应用还需要进行快速大量的复杂运算或数据处理时,可以将这些处理任务卸载至x86 CPU中去运行Xilinx Virtex-5 FPGA允许对PCIe子系统和SRIO结构进行桥接,从而实现高效的功能卸载
3. 基带处理系统
随着3G网络快速成熟,OEM厂商将会采用新的外形尺寸的器件和设备来减少容量和覆盖方面的问题,使用SRIO并基于FPGA的DSP架构正是应对此类挑战的绝佳方案传统DSP系统也可重新调整为这种快速低功耗的基于FPGA的结构,以便充分利用FPGA的可调整性优势
在此类系统中,如图8所示,FPGA可以在满足天线业务线速处理要求的同时通过SRIO为其他系统资源提供连接而由于串行RapidIO协议提供的速度和带宽均很高,所以那些内部固有低速并行连接的现存传统DSP应用要移植到这类系统中也很简单
图8:基带处理
本文小结
串行RapidIO正在越来越多的新应用中崭露头角,特别是在采用DSP的有线和无线应用中在Xilinx器件中实现串行RapidIO主要有以下优势:
1. Xilinx提供了完整的SRIO端点方案;
2. 可利用同样的软、硬件结构,通过灵活的调整,实现不同类型的产品;
3. 由于Xilinx器件采用了新型GTP收发机和65nm 技术,因此功耗很低;
4. 通过CoreGen GUI 可实现方便的可配置性和灵活性;
5. 由于业界领先的厂商都有器件支持SRIO连接,因而硬件互通性有保证;
6. 可通过使用PCIe和TEMAC等集成IO模块实现系统集成,从而降低系统整体成本