串行RapidIO:高性能嵌入式互连技术分类:C6000RapidIO2011-10-0723:28683人阅读评论(1)收藏举报嵌入式存储expressinterface终端access目录(?)[+]摘要串行RapidIO针对高性能嵌入式系统芯片间和板间互连而设计,它将是未来十几年中嵌入式系统互连的最佳选择。本文比较RapidIO和传统互连技术的优点;介绍RapidIO协议架构,包格式,互连拓扑结构以及串行RapidIO物理层规范。介绍串行RapidIO在无线基础设施方面的应用。RapidIO与传统嵌入互连方式的比较随着高性能嵌入式系统的不断发展,芯片间及板间互连对带宽、成本、灵活性及可靠性的要求越来越高,传统的互连方式,如处理器总线、PCI总线和以太网,都难以满足新的需求。处理器总线主要用作外部存储器接口,如德州仪器(TI)C6000系列DSP的外部存储器接口,可支持外接同步SDRAM、SBSRAM及FIFO,也可支持异步SRAM、FLASH等。外部存储器接口也可用作与板内FPGA或ASIC芯片互连,这种情况下,FPGA或ASIC模拟一个DSP支持的存储器接口,DSP则把FPGA或ASIC当作存储器来访问。这类同步接口带宽可达10Gbps,如德州仪器TMS320C6455DSP的DDR2接口最大带宽为17.066Gbps,SBSRAM接口最大带宽为8.533Gbps。然而,这种接口也存在一些局限性:1.接口管脚多,硬件设计困难。常见的DDR2接口有70~80个管脚;2.只能用于板内互连,无法用于板间互连;3.不是点对点的对等互连,DSP始终是主设备,其它器件只能做从设备。PCI是广泛用于计算机内器件互连的技术。传统PCI技术也采样类似于上述存储器接口的并行总线方式,如TMS320C6455DSP的PCI接口,有32bits数据总线,最高时钟速度为66MHz,共有42个管脚。最新的串行PCIExpress技术采用与串行RapidIO(SRIO,SerialRapidIO)类似的物理层传输技术,使得带宽达到10Gbps左右。但由于其主要的应用仍是计算机,而且为了兼容传统PCI技术,使得它在嵌入式设备方面的应用具有一定的局限性,如不支持点对点对等通信等。众所周知,以太网是使用最广泛的局域网互连技术,它也被扩展应用到嵌入式设备互连,但它的局限性也是显而易见的:1.不支持硬件纠错,软件协议栈开销较大;2.打包效率低,有效传输带宽因此而减小;3.只支持消息传输模式,不支持对对端设备的直接存储器访问(DMA,DirectMemoryAccess)。针对嵌入式系统的需求以及传统互连方式的局限性,RapidIO标准按如下目标被制定:1.针对嵌入式系统机框内高速互连应用而设计。2.简化协议及流控机制,限制软件复杂度,使得纠错重传机制乃至整个协议栈易于用硬件实现。3.提高打包效率,减小传输时延。4.减少管脚,降低成本。5.简化交换芯片的实现,避免交换芯片中的包类型解析。6.分层协议结构,支持多种传输模式,支持多种物理层技术,灵活且易于扩展。图1展示了RapidIO互连在嵌入式系统中的应用。图1RapidIO在嵌入式系统中的应用表1总结比较了的三种带宽能达到10Gbps的互连技术:以太网,PCIExpress和串行RapidIO,从中可以看出串行RapidIO是最适合高性能嵌入式系统互连的技术。表110G级互连技术比较软件实现TCP/IP协议栈的以太网4xPCIExpress4xSRIO备注软件开销高中低SRIO协议栈简单,一般都由硬件实现,软件开销很小硬件纠错重传不支持支持支持传输模式消息DMADMA,消息拓扑结构任意PCI树任意SRIO支持直接点对点或通过交换器件实现的各种拓扑结构直接点对点对等互连支持不支持支持SRIO互连双方可对等的发起传输。传输距离长中中SRIO针对嵌入式设备内部互连,传输距离一般小于1米数据包最大有效载荷长度1500字节4096字节256字节嵌入式通信系统对实时性要求高,SRIO小包传输可减少传输时延打包效率(以传输256字节数据为例)79%(TCP包)82%92~94%打包效率是有效载荷长度与总包长的比率。SRIO支持多种高效包格式。串行RapidIO协议RapidIO行业协会成立于2000年,其宗旨是为嵌入式系统开发可靠的,高性能,基于包交换的互连技术。RapidIO协议的简要发展历史是:1.2001年初,最初的标准被发布2.2002年6月,1.2版标准发布3.2005年6月,1.3版标注发布串行RapidIO是物理层采用串行差分模拟信号传输的RapidIO标准。SRIO1.x标准支持的信号速度为1.25GHz、2.5GHz、3.125GHz;正在制定的RapidIO2.0标准将支持5GHz、6.25GHz.目前,几乎所有的嵌入式系统芯片及设备供应商都加入了RapidIO行业协会。德州仪器(TI)2001年加入该组织,2003年成为领导委员会成员。2005年底,德州仪器(TI)推出第一个集成SRIO(SerialRapidIO)的DSP,后来又陆续推出共5款支持SRIO的DSP,这使得RapidIO的应用全面启动。RapidIO协议结构及包格式为了满足灵活性和可扩展性的要求,RapidIO协议分为三层:逻辑层、传输层和物理层。图2说明了RapidIO协议的分层结构。图2RapidIO协议分层结构逻辑层定义了操作协议;传输层定义了包交换、路由和寻址机制;物理层定义了电气特性、链路控制和纠错重传等。象以太网一样,RapidIO也是基于包交换的互连技术。如图3所示,RapidIO包由包头、可选的载荷数据和16bitsCRC校验组成。包头的长度因为包类型不同可能是十几到二十几个字节。每包的载荷数据长度不超过256字节,这有利于减少传输时延,简化硬件实现。图3RapidIO包格式上述包格式定义兼顾了包效率及组包/解包的简单性。RapidIO交换器件仅需解析前后16bits,以及源/目地器件ID,这简化了交换器件的实现。逻辑层协议逻辑层定义了操作协议和相应的包格式。RapidIO支持的逻辑层业务主要是:直接IO/DMA(DirectIO/DirectMemoryAccess)和消息传递(MessagePassing)。直接IO/DMA模式是最简单实用的传输方式,其前提是主设备知道被访问端的存储器映射。在这种模式下,主设备可以直接读写从设备的存储器。直接IO/DMA在被访问端的功能往往完全由硬件实现,所以被访问的器件不会有任何软件负担。从功能上讲,这一特点和德州仪器DSP的传统的主机接口(HPI,HostPortInterface)类似。但和HPI口相比,SRIO(SerialRapidIO)带宽大,管脚少,传输方式更灵活。对上层应用来说,发起直接IO/DMA传输主要需提供以下参数:目地器件ID、数据长度、数据在目地器件存储器中的地址。直接IO/DMA模式又可进一步分为以下几种传输格式:1.NWRITE:写操作,不要求接收端响应。2.NWRITE_R:带响应的NWRITE(NWRITEwithResponse),要求接收端响应。3.SWRITE:流写(StreamWrite),数据长度必须是8字节的整数倍,不要求接收端响应。4.NREAD:读操作。SWRITE是最高效的传输格式;带响应的写操作或读操作效率则较低,一般只能达到不带响应的传输的效率的一半。消息传递(MessagePassing)模式则类似于以太网的传输方式,它不要求主设备知道被访问设备的存储器状况。数据在被访问设备中的位置则由邮箱号(类似于以太网协议中的端口号)确定。从设备根据接收到的包的邮箱号把数据保存到对应的缓冲区,这一过程往往无法完全由硬件实现,而需要软件协助,所以会带来一些软件负担。对上层应用来说,发起消息传递主要需提供以下参数:目地器件ID、数据长度、邮箱号。表2比较了直接IO/DMA和消息传递模式。表2直接IO/DMA和消息传递的对比直接IO/DMA消息传递主机可直接访问从机存储器?可以不可以主机需要知道从机存储器映射?需要不需要数据寻址方式存储器地址邮箱号支持的数据访问方式读/写写从机软件负担无有传输层协议RapidIO是基于包交换的互连技术,传输层定义了包交换的路由和寻址机制。RapidIO网络主要由两种器件,终端器件(EndPoint)和交换器件(Switch)组成。终端器件是数据包的源或目的地,不同的终端器件以器件ID来区分。RapidIO支持8bits或16bits器件ID,因此一个RapidIO网络最多可容纳256或65536个终端器件。与以太网类似,RapidIO也支持广播或组播,每个终端器件除了独有的器件ID外,还可配置广播或组播ID。交换器件根据包的目地器件ID进行包的转发,交换器件本身没有器件ID。RapidIO的互连拓扑结构非常灵活,除了通过交换器件外,两个终端器件也可直接互连。以德州仪器(TI)的TMS320C6455DSP为例,它有4个3.125G的SRIO口,它可支持的拓扑结构如图4所示。图4RapidIO支持灵活多样的拓扑结构物理层协议RapidIO1.x协议定义了以下两种物理层接口标准:1.8/16并行LVDS协议2.1x/4x串行协议(SRIO)并行RapidIO由于信号线较多(40~76)难以得到广泛的应用,而1x/4x串行RapidIO仅4或16个信号线,逐渐成为主流,所以本文仅介绍串行RapidIO。串行RapidIO基于现在已广泛用于背板互连的SerDes(SerializeDeserialize)技术,它采用差分交流耦合信号。差分交流耦合信号具有抗干扰强、速率高、传输距离较远等优点。差分交流耦合信号的质量不是由传统的时序参数来衡量,而是通过眼图来衡量,眼图中的“眼睛”张得越开则信号质量越好。图5是一个典型的串行RapidIO信号的眼图。图5串行RapidIO信号眼图差分信号的强弱由一对信号线的电压差值表示,串行RapidIO协议规定信号峰-峰值的范围是200mV-2000mV。信号幅度越大,则传输距离越远,RapidIO协议按信号传输距离定义两种传输指标:1.短距离传输(ShortRun),=50厘米,主要用于板内互连,推荐的发送端信号峰-峰值为500mV-1000mV2.长距离传输(LongRun),50厘米,主要用于板间或背板互连,推荐的发送端信号峰-峰值为800mV-1600mV为了支持全双工传输,串行RapidIO收发信号是独立的,所以每一个串行RapidIO口由4根信号线组成。标准的1x/4x串行RapidIO接口,支持四个口,共16根信号线。这四个口可被用作独立的接口传输不同的数据;也可合并在一起当作一个接口使用,以提高单一接口的吞吐量。德州仪器TMS320C6455DSP上集成了标准的1x/4x串行RapidIO接口,如图6所示。图6德州仪器TMS320C6455DSP1x/4x串行RapidIO接口框图发送时,逻辑层和传输层将组好的包经过CRC编码后被送到物理层的FIFO中,“8b/10b编码”模块将每8bit数据编码成10bits数据,“并/串转换”模块将10bits并行数据转换成串行bits,发送模块把数字bit转换成差分交流耦合信号在信号线上发送出去。这里的8b/10编码的主要作用是:1.保证信号有足够的跳变,以便于接收方恢复时钟。串行RapidIO没有专门的时钟信号线,接收端靠数据信号的跳变恢复时钟。所以需要把信号跳变少的8bits数据(如全0或全1)编码成有一定跳变的10bits数据。另外,也使得总体数据中0和1的个数均衡,以消除直流分量,保证交流耦合特性;2.8b/10编码可扩大符号空间,以承载带内控制符号。10bits能表示1024个符号,其中256个表示有效的8bits数据,剩下的符号中的几十个被用作控制符号。控制符号可被用作包分隔符,响应标志,或用于链路初始化,链路控制等功能;3.8b/10编码能实现一定的检错功能。1024个符号中,除了256个有效数据