利用串行RapidIO实现FPGA协处理
时间:11-09
来源:互联网
点击:
为了支持“三重播放”应用,人们对高速通信和超快速计算的需求日益增大,这向系统开发师、算法开发师和硬件工程师等人员提出了新的挑战,要求他们将各种标准、组件和联网设备融合成一个整体。
同时,开发人员不但要跟上日益提高的性能需求,还得注意保持成本低廉有效利用基于串行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架构
同时,开发人员不但要跟上日益提高的性能需求,还得注意保持成本低廉有效利用基于串行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架构
硬件工程师 FPGA DSP 总线 嵌入式 Xilinx 收发器 相关文章:
- 周立功:如何兼顾学习ARM与FPGA(05-23)
- 学习FPGA绝佳网站推荐!!!(05-23)
- 赛灵思“授之以渔”理论:危机中如何巧降成本(06-04)
- 赛灵思详解新近推出的FPGA领域设计平台(12-16)
- 用于测试SDRAM控制器的PDMA(07-01)
- 面向FPGA的ESL工具(07-19)