串行RapidIO针对高性能嵌入式系统芯片间和板间互连而设计,它将是未来十几年中嵌入式系统互连的最佳选择。
本文比较RapidIO和传统互连技术的优点;介绍RapidIO协议架构,包格式,互连拓扑结构以及串行RapidIO物理层规范。介绍串行RapidIO在无线基础设施方面的应用。
RapidIO 与传统嵌入互连方式的比较随着高性能嵌入式系统的不断发展,芯片间及板间互连对带宽、成本、灵活性及可靠性的要求越来越高,传统的互连方式,如处理器总线、PCI总线和以太网,都难以满足新的需求 。
处理器总线主要用作外部存储器接口,如德州仪器(TI) C6000系列DSP的外部存储器接口,可支持外接同步SDRAM、SBSRAM及FIFO,也可支持异步SRAM、FLASH等。外部存储器接口也可用作与板内FPGA或ASIC芯片互连,这种情况下,FPGA或ASIC模拟一个DSP支持的存储器接口,DSP则把FPGA或ASIC当作存储器来访问。这类同步接口带宽可达10Gbps,如德州仪器TMS320C6455 DSP的DDR2接口最大带宽为17.066Gbps,SBSRAM接口最大带宽为8.533Gbps。然而,这种接口也存在一些局限性:
- 接口管脚多,硬件设计困难。常见的DDR2接口有70~80个管脚;
- 只能用于板内互连,无法用于板间互连;
- 不是点对点的对等互连,DSP始终是主设备,其它器件只能做从设备。
PCI是广泛用于计算机内器件互连的技术。传统PCI技术也采样类似于上述存储器接口的并行总线方式,如TMS320C6455 DSP的PCI接口,有32bits数据总线,最高时钟速度为66MHz,共有42个管脚。最新的串行PCI Express技术采用与串行RapidIO(SRIO, Serial RapidIO)类似的物理层传输技术,使得带宽达到10Gbps左右。但由于其主要的应用仍是计算机,而且为了兼容传统PCI技术,使得它在嵌入式设备方面的应用具有一定的局限性,如不支持点对点对等通信等。
众所周知,以太网是使用最广泛的局域网互连技术,它也被扩展应用到嵌入式设备互连,但它的局限性也是显而易见的:
- 不支持硬件纠错,软件协议栈开销较大;
- 打包效率低,有效传输带宽因此而减小;
- 只支持消息传输模式,不支持对对端设备的直接存储器访问(DMA, Direct Memory Access)。
针对嵌入式系统的需求以及传统互连方式的局限性,RapidIO标准按如下目标被制定:
- 针对嵌入式系统机框内高速互连应用而设计。
- 简化协议及流控机制,限制软件复杂度,使得纠错重传机制乃至整个协议栈易于用硬件实现。
- 提高打包效率,减小传输时延。
- 减少管脚,降低成本。
- 简化交换芯片的实现,避免交换芯片中的包类型解析。
- 分层协议结构,支持多种传输模式,支持多种物理层技术,灵活且易于扩展。
图1展示了RapidIO互连在嵌入式系统中的应用。
图1 RapidIO在嵌入式系统中的应用
表1总结比较了的三种带宽能达到10Gbps的互连技术:以太网,PCI Express和串行RapidIO,从中可以看出串行RapidIO是最适合高性能嵌入式系统互连的技术。
表1 10G级互连技术比较
| 软件实现TCP/IP 协议栈的以太网 | 4x PCI Express | 4x SRIO | 备注 | 软件开销 | 高 | 中 | 低 | SRIO 协议栈简单,一般都由硬件实现,软件开销很小 | 硬件纠错重传 | 不支持 | 支持 | 支持 | | 传输模式 | 消息 | DMA | DMA,消息 | | 拓扑结构 | 任意 | PCI树 | 任意 | SRIO支持直接点对点或通过交换器件实现的各种拓扑结构 | 直接点对点对等互连 | 支持 | 不支持 | 支持 | SRIO互连双方可对等的发起传输。 | 传输距离 | 长 | 中 | 中 | SRIO针对嵌入式设备内部互连,传输距离一般小于1米 | 数据包最大有效载荷长度 | 1500字节 | 4096字节 | 256字节 | 嵌入式通信系统对实时性要求高,SRIO小包传输可减少传输时延 | 打包效率 (以传输256字节数据为例) | 79% (TCP包) | 82% | 92~94% | 打包效率是有效载荷长度与总包长的比率。SRIO支持多种高效包格式。 | 串行RapidIO协议 |