利用串行RapidIO连接功能增强DSP协处理能力
扫描二维码
随时随地手机看文章
目前,对高速通信与超快计算的需求正与日俱增。有线和无线通信标准的应用随处可见,数据处理架构每天都在扩展。较为普遍的有线通信方式是以太网(LAN、WAN和MAN网络)。手机通信是最为常见的无线通信方式,由应用了DSP的架构实现。电话作为语音连接的主要工具,目前正在不断满足日益增强的语音、视频和数据要求。
系统设计人员在创建架构时不仅需考虑三网合一模式这一高端需求,还需满足以下要求:高性能、低延迟、较低的系统成本(包括NRE)、可扩展、可延伸架构、集成现成(OTS)组件、分布式处理、支持多种标准和协议。
这些挑战涉及到两个主要方面:有线或无线架构中计算平台/箱间的连接以及这些平台/箱中的具体计算资源。
计算平台间的连接
基于标准的连接目前较为普遍。并行连接标准(PCI、PCI-X、EMIF)可以满足现在的需求,但在扩展性和延伸性方面略显不足。随着基于包处理方式的出现,使用趋势明显偏向高速串行连接(图1)。
图1:串行连接趋势。 |
台式电脑和网络工业已采用了PCI Express(PCIe)和千兆位以太网/XAUI等标准。不过,无线架构中数据处理系统的互连要求略有不同:低引脚数、背板芯片对芯片连接、带宽和速度可扩展、DMA和信息传输、支持复杂的可扩展拓扑、多点传输、高可靠性、绝对时刻同步、服务质量(QoS)。
串行RapidIO(SRIO)协议标准可轻易满足并超过大多数上述要求。因此,SRIO成了无线架构设备中数据平面连接的主要互连。
图2:SRIO网络构建模块。 |
SRIO网络围绕两个基本模块构建而成:端点和交换机(图2)。端点对包进行源端(source)和宿端(sink)处理,而交换机在端口间传送包,对其不加解析。SRIO以一个三层架构层级指定(图3):
图3:分层SRIO架构。 |
1. 物理层规范说明器件级接口的细节,如包传输机制、流量控制、电气参数及低级错误管理。
2. 传输层规范为包在端点间移动提供必需布线信息。交换机通过使用基于器件的布线在传输层中运行。
3. 逻辑层规范定义总体协议和包格式。所有包的有效载荷字节数为256或更少。事务使用指向34-/50-/66位地址空间的加载/存储/DMA操作。事务包括:NREAD-读操作(返回数据即为响应)、NWRITE-写操作,无响应、NWRITE_R-强韧型写入,响应来自目标端点、SWRITE-流式写入、ATOMIC-原子性读/改/写、MAINTENANCE-系统查找、探测、初始化、配置和维护操作。
SRIO-优势前景
以3.125Gbps运行的4通道SRIO链路可以提供10Gbps的流量,且保证数据完整性。由于SRIO类似于微处理器总线(存储器和器件寻址,而非LAN协议的软件管理),因此包处理是通过硬件实现的。这意味着可大幅削减I/O处理方面的额外开销,降低延迟并增加系统带宽。但与多数总线接口不同,SRIO接口的引脚数较少,带宽在链路为3.125Gbps的基础上可继续扩展。
平台中的计算资源
如今的应用对处理资源的数量要求较高。基于硬件的应用发展迅猛。压缩/解压缩算法、反病毒和入侵监测等防火墙应用以及要求AES、三倍DES和Skipjack等加密引擎的安全应用起初都是通过软件实现的,但目前都已转为硬件实现。这就需要带宽和处理能力能够实现共享的大型并行生态系统。系统需要使用CPU、NPU、FPGA或ASIC,从而实现共享或分布式处理。
在构建能够适应未来发展变化的系统时,需考虑所有这些针对具体应用的要求,对计算资源的要求包括:
1. 多个主机-分布式处理;
2. 直接点对点通信;
3. 多个异构操作系统;
4. 复杂拓扑结构;
5. 发现机制;
6. 多余通路(故障恢复);
7. 可支持高可靠性;
8. 无损协议;
9. 自动重新培训和器件同步;
10. 系统级错误管理;
11. 能够支持通信数据平面;
12. 多点传输;
13. 流量管理(有损)操作;
14. 链路、级别和基于流的流量控制;
15. 协议互通;
16. 较高事务并发度;
17. 模块化、可扩展;
18. 支持广泛生态系统。
由无线架构中计算器件所派生出的各种各样的要求,SRIO协议都可支持。
SRIO规范(图4)对基于包的分层架构进行了定义,可支持多个域或市场区间,从而有利于系统架构设计师设计新一代计算平台。通过将SRIO用作计算互连,可轻松实现以下功能:使架构独立;部署可靠性为运营商级的可扩展系统;实现高级流量管理;提供高性能、高流量。此外,由大批供应商构成的生态群使得OTS部件与组件的选择十分容易。[!--empirenews.page--]
RIO为基于包的协议,该协议支持:
1. 通过基于包的操作(读、写、消息)移动数据;
2. I/O非连贯功能和缓存连贯功能;
3. 通过支持数据流、数据分区和重组功能而实现高效互通和协议封装;
4. 通过启用数百万个流而实现流量管理框架,支持256流量级别和有损操作;
5.流控制,支持多个事务请求流,提供QoS;
6. 支持优先级别,从而可缓解带宽分配和事务顺序等问题,并避免死锁;
7. 支持拓扑,通过系统发现、配置和维护支持标准(树状和网格)与任意硬件(菊花链)拓扑,包括支持多个主机;
8. 错误管理和分类(可恢复、提醒和致命性)。
图4:SRIO规范。 |
Xilinx针对SRIO的IP解决方案
用于SRIO的Xilinx端点IP解决方案针对RapidIO规范(v1.3)而设计。用于SRIO的完整Xilinx端点IP解决方案包括以下部分(图5):
图5:用于SRIO的Xilinx端点IP架构。 |
1. 用于SRIO的Xilinx端点IP为软性LogiCORE解决方案。对于通过逻辑(I/O)和传输层上的目标和发起接口源出和接收用户数据,都支持完全兼容的最大有效载荷操作。
2. 缓冲层参考设计作为源代码提供,可自动重新划分包的优先级别并调整队列。
3. SRIO物理层IP可实现链路培训和初始化、发现和管理以及错误和重试恢复机制。另外,高速收发器在物理层IP中例化,可支持线速率为1.25Gbps、2.5Gbps和3.125Gbps的1通路和4通路SRIO总线链路。
4. 寄存器管理器参考设计允许SRIO主机器件设定并维护端点器件配置、链路状态、控制和超时机制。另外,寄存器管理器上提供的端口可供用户设计探测端点器件的状态。
用于SRIO的整个Xilinx端点IP LogiCORE解决方案已全面经过测试,硬件验证也已进行,目前正在就与主要SRIO器件供应商之间的协同工作能力接受测试。LogiCORE IP通过Xilinx CORE Generator软件GUI工具提供,该工具允许用户定制波特率和端点配置,并支持流量控制、重发送压缩、门铃和消息接发等扩展功能。这样,您便可创建一个灵活、可扩展的定制SRIO端点IP,对自己的应用进行优化。
Virtex-5 FPGA计算资源
用于SRIO的Xilinx端点IP可确保在使用SRIO协议的链路双方间建立高速连接。在最小的Virtex-5器件中,IP仅占用不到20%的可用逻辑资源,因此可确保用户设计使用大多数逻辑/存储器/I/O,集中实现系统应用。让我们一起看一下Virtex-5器件资源。
逻辑模块
Virtex-5逻辑架构带有基于65nm工艺的六输入查找表(LUT),可提供最高的FPGA容量。进位逻辑经过改进后,该器件的性能比之前的器件高出30%。由于所需LUT减少,该器件的功耗明显降低,且具备高度优化的对称布线架构。
存储器
Virtex-5存储器解决方案包括LUT RAM、Block RAM及与大型存储器进行接口的存储器控制器。Block RAM结构包括预制FIFO逻辑,即可用于外部存储器的嵌入式检错和纠错(ECC)逻辑。另外,Xilinx可通过存储器接口生成器(MIG)工具向系统设计中的例化存储器控制器模块提供综合设计资源。这样,您便可利用经过硬件验证的解决方案,并将精力集中于设计中的其他关键部位。
并行和串行I/O
SelectIO技术几乎可在设计中实现客户所需的任何并行源同步接口。使用SelectIO接口,可方便地针对40多种不同的电气标准创建符合行业标准的各类接口,也可创建专用接口。SelectIO接口提供的最大速率为700Mbps(单端)和1.25Gbps(差分)。
所有Virtex-5 LXT FPGA都装有一个GTP收发器,运行速度介于100Mbps到3.2Gbps之间。另外,GTP收发器在业界属于最低功率MGT之一,每个收发器的功率小于100mW。引入用来简化设计的成熟设计技术和方法后,高速串行设计的流程变得简单快捷。
另外,通过新设计工具(RocketIO收发器向导与IBERT)和新硅片性能(TX和RX均衡与内置伪随机位序列(PRBS)生成器和检查器),可以开发移植架构的各种功能和优势,从并行I/O标准到30多种串行标准及新兴的串行技术。
DSP模块
每个DSP48E Slice可提供550MHz的性能水平,允许您创建要求单精度浮点性能的各类应用,如多媒体、视频和图像应用以及数字通信。这扩展了器件的功能,使其优于之前的器件,同时还提供了功率优势,动态功耗的降低幅度超过了40%。Virtex-5 FPGA中还增加了DSP48E Slice的数量,这些模块相对于可用逻辑资源及存储器的比率从而得到了优化。
集成I/O模块
所有Virtex-5 LXT FPGA器件都具备一个端点模块,用来实现PCIe功能。通过这种硬IP端点模块,只需简单地重新进行配置即可不费吹灰之力轻松地从x1扩展至x2和x4或x8。该模块(x1、x4和x8链路)已通过严格的PCI-SIG兼容性和协同工作能力测试,用户可放心用于PCIe。
另外,所有Virtex-5 LXT FPGA器件均装有三态以太网媒体访问控制器(TEMAC),速度可达10/100/1,000Mbps。该模块可提供专用以太网功能,再结合Virtex-5 LXT RocketIO收发器和SelectIO技术,可方便您与许多网络器件进行连接。 [!--empirenews.page--]
利用针对PCIe和以太网的这两种模块,可以创建一系列定制包处理和网络产品,这些产品可大幅降低资源利用率和功耗。通过使用Xilinx FPGA中提供的这些各式资源,可以轻松创建并部署智能解决方案。
让我们看一下利用SRIO和DSP技术的一些系统设计示例。
SRIO嵌入式系统应用
可以考虑围绕基于x86架构的CPU构建一个嵌入式系统。CPU架构已高度优化,可轻易满足要求玩弄数字于股掌的各类应用。您可以轻松地在使用CPU资源的硬件和软件中实现各类算法,以执行不需要进行大量乘法运算的电子邮件、数据库管理以及文字处理等功能。性能以每秒钟所产生的指令/运算为数百万还是数十亿来衡量,而效率通过完成特定运算所需的时间/周期来衡量。
需进行大量定点和浮点运算的高性能应用在处理数据时需花费较长时间。这方面的示例包括信号过滤、快速傅里叶变换、矢量乘法和搜索、图像/视频分析和格式转换以及简单的数字处理算法。在DSP中实现的高端信号处理架构可轻松执行这些任务,并可优化此类运算。这些DSP的性能以每秒钟进行多少次乘法和累加运算来衡量。
您可以方便地设计使用CPU和DSP的嵌入式系统,以充分利用两种处理技术。图6表示使用FPGA、CPU和DSP架构的系统示例。
图6:基于CPU的可扩展、高性能、嵌入式系统。 |
高端DSP中的主要数据互连为SRIO。x86 CPU中的主要数据互连为PCIe。如图6所示,您可轻松部署FPGA以扩展DSP应用或对离散数据互连标准(如PCIe和SRIO)进行桥接。
在图6所示系统中,PCIe系统由根联合体芯片组托管。SRIO系统由DSP托管。32/64位PCIe地址空间(基址)可智能化地被映射至34/66位SRIO地址空间(基址)。PCIe应用可通过存储器或I/O读写与根联合体进行通信。这些事务会通过NRead/NWrite/SWrite轻松映射至SRIO空间。
在Xilinx FPGA中设计此类桥接功能很简单,因为这些Xilinx端点功能模块、PCIe和SRIO的后端接口都很相似。这样,“包队列”模块便可执行从PCIe到SRIO或反方向的交叉任务,从而建立可穿越两个协议域的包流。
SRIO DSP系统应用
在DSP处理为主要架构要求的应用中,系统架构可按图7进行设计。
图7:DSP密集型阵列。 |
基于Virtex-5 FPGA的DSP处理与系统中的其他DSP器件结合即可构成智能协处理解决方案。如果使用SRIO作为数据互连,整个DSP系统解决方案就可以方便地进行扩展。此类解决方案能够适应未来的发展变化,提供了延伸性,而且受多种形状因子的支持。在DSP密集型应用中,通过将相应处理任务卸载至x86架构中可实现快速数字分析或数据处理。使用Virtex-5 FPGA可轻易地连接PCIe子系统和SRIO架构,从而实现高效功能卸载。
SRIO基带系统应用
现有3G网络正在以较快的步伐迈向成熟,OEM也在为缓解特定容量和覆盖率问题而部署新的形状系数。要解决此类特殊问题,对市场趋势做出评估,基于FPGA的DSP架构是理想选择,该架构将SRIO用作数据层面标准。另外,早期DSP系统可快速升级,变为快速、低功耗FPGA DSP架构,从而获得可扩展性优势。
如图8中的系统所示,您可以对Virtex-5 FPGA进行设计,以满足现有对天线流量的线速率处理需求,还可通过SRIO提供与其他系统资源间的连接。现有早期DSP应用的固有并行连接速度较慢,因可应用于Virtex-5 FPGA的SRIO端点功能的存在,移植这些应用极为方便。
图8:可扩展基带上行链路/下行链路卡。 |
本文小结
SRIO正出现在大量新应用中,主要以有线和无线应用中的DSP为中心。在Xilinx器件中实现SRIO架构的主要优势包括:
1. 整个SRIO端点解决方案的可用性;
2. 灵活性和可扩展性,便于使用同样的硬件和软件架构制成不同级别的产品;
3. 通过新GTP收发器和65nm技术实现了低功耗;
4. 通过CORE Generator软件GUI工具轻松进行配置;
5. 与业界领先的供应商间的硬件协同工作能力经过了验证,支持其器件上的SRIO连接;
6. 通过使用PCIe和TEMAC等集成I/O模块,实现了系统集成,从而降低了总体系统成本。
另外,Virtex-5 FPGA所具备的DSP资源可在功耗、性能和带宽方面满足现有早期DSP系统的要求。更多优势还体现在系统集成方面,诸如以太网MAC的功能模块、用于PCIe的端点模块、处理器IP模块、存储元件及控制器等等。另外,由于IP核的详尽列表支持在FPGA中进行多种源整合,可以大大节省总体系统成本。