电信、网络和宽带应用都需要高速互连的系统架构,而序列和并列RapidIO恰好能在嵌入式系统内提供超大频宽及轻量的通信能力。RapidIO的主要设计目的为支持系统内通信、并提供一套轻量级协议,以减少软件对系统处理器的冲击。
随着现今嵌入式系统的持续发展,一般的效能已不能满足现代科技的需求,因此,现在有许多嵌入式系统都与Serial RapidIO 整合,进而提供最快速、可靠的高效能。此篇文章主要探讨Serial RapidIO能谓嵌入式系统带来的效应,以及如何有效的将Serial RapidIO应用在嵌入式系统中,协助工程师将相关技术进行最有效的运用。
正当现代嵌入式应用的效能需求大幅提高时,这些应用必须同时拥有精密直接的对等通信能力、高度可靠性、高质量服务、分布处理架构,以及互用性 (interoperability)。快速且具弹性I/O的高效能DSP能满足目前各种应用的实时处理需求。而嵌入式组件也已开始将业界标准的序列RapidIO (sRIO) 总线技术整合至芯片中,以提供高效能的封包交换式互连技术来满足业界对可靠性、更大频宽和更快总线速度的需求。这种开放标准、庞大频宽和系统层级互连能力可减少切换和处理器汇集 (processor aggregation) 所需的额外零件,进而降低系统总成本。
了解多任务处理应用需求
嵌入式系统包含分散在单一系统单芯片里的多任务处理单元,这些处理单元分别负责执行整体应用所需的不同功能,包括信号处理、数据处理和控制。还有些系统将多个不同处理单元分散到电路板上的各个组件,在这种情形下,这些组件必须相互联系以便共享数据和状态,进而完成系统处理作业。随着组件数目增加,通信线路也变得越来越多,而处理器之间的通信互连需求也相对更高。
互连需求可分为功能性(functional)及非功能性 (non-functional) 两大类。功能性需求包括对等通信和支持不同的组件架构,非功能性需求则包括低延迟时间、可扩展频宽和其它因可靠性、弹性和效率 (就硬件和软件效能而言) 等考虑而产生的需求。弹性是其中特别重要的因素,因为随着应用空间的差异,将有许多系统设计方案可供选择。
RapidIO解决互连的问题
目前已有许多常见方法可解决网络互连的问题,包括:
●桥接:由外部组件执行协议和实体的转换。
●弹性界面:采用可配置组态的组件以支持多种互连架构和总线。
●多种组件版本:芯片制造商提供支持不同界面的多种组件。
许多多任务处理器算法如DSP算法都必须在处理同一问题的多个运算节点间传送大量数据。因此,系统的整体效能常受到系统互连架构的传输效能限制,而解决这种互连问题的方法之一便是采用RapidIO (RIO,www.rapidio.org)。RapidIO是业界标准的封包交换式高速互连架构,目前有越来越多的嵌入式系统开始采用此架构支持需要这种互连及通信模式的应用。RapidIO的主要设计目的是提供一套轻量级协议,降低软件对系统处理器的冲击,并以支持系统内的通信为主。这套架构不但具备优异的兼容性,还采用可靠而高效能的封包交换技术,故能于芯片间和电路板间提供更大的通信频宽。
为了提供可扩充性和未来功能强化的可能性,并继续维持与旧产品的兼容性,RapidIO采用由实体层、传输层和逻辑层构成的三层硬件架构。因此RapidIO拥有不需修改传输层或实体层规格就能在逻辑层规格中增加新交易类型 (transaction type)的优异弹性。
实体层包含电气信号和链路层级交握机制 (link level handshaking mechanisms) 以及CRC错误侦测。RapidIO是一种8或16位宽的并列界面,执行速率为250MHz~1GHz,而且频率信号的两个边缘都会触发数据动作。RapidIO在交换式环境中的封包路由则是由传输层决定,这套架构采用目标导向的路由方式 (destination based routing) 根据封包内含的装置ID将封包送到正确装置。这套架构的最上层是逻辑层,负责定义封包类型与功能。RapidIO的每个封包最多能携带256 byte的资料。
芯片内建序列RapidIO (sRIO)
序列RapidIO (sRIO) 为RapidIO的另一种技术。sRIO是点对点的交换式序列互连技术,因其与并列RapidIO技术并不兼容,所以开发人员须选择正确的并列与序列联机组合。sRIO的信号速率是每个差动传送和接收对 (又称为 “lanes”) 为1.25、2.5或3.125Gbps,能让每个lane在每个方向提供高达312.5MBps的信号速率。每个sRIO连接埠都能设为1-lane或4-lane,使每个端口的最大数据速率达到1.25Gbps。
sRIO的多架构支持能力不但使支持多任务处理应用更容易,还能省下原本所需的汇集逻辑电路 (aggregation logic)。例如在视频基础设施应用里,实体层数据传输单元利用模拟并序/序并转换技术 (SERDES) 从数据串流中将频率还原,并纳入8B/10B编码功能。这个序列规格还支持1-lane (1x) 和4-lane (4x) 连接埠;基本上,一个1x sRIO链路就能在装置之间传送两个信道的高画质1080i原始视频,一个4x链路更能在装置之间轻松传送4个通道的高画质1080p原始视频,并同时有多余频宽供其它应用使用。
这种序列架构的每个封包最多可携带256byte的数据量,而且也无法提供如PCI Express或并列RapidIO等互连架构的扩充性。举例来说,计算机应用常透过PCI总线将多个磁盘信道与系统连接。随着磁盘数据产出增加,系统也必须提高总线频率以提供更大产出,但却会导致每段总线所能支持的装置数目减少;此时,系统必须使用更多段总线才能连接同样数目的装置。PCI-to-PCI桥接组件虽能解决此问题,但只适用树状架构,而这种架构的系统延迟时间和成本却会随着更多PCI装置连接到系统而增加。相形之下,利用RapidIO亦可提高系统层级的效能,除此之外,由于RapidIO采用点对点架构,因此移除装置时几乎不会对相邻装置或次系统造成任何电路冲击。
德州仪器 (TI) TMS320C6455 DSP组件内提供一组sRIO总线接口,此组件也是RIO和sRIO在嵌入式应用里日益广泛的例证之一。此界面可增加高阶和多通道应用的效能与I/O频宽,例如视频与语音转码、视频会议服务器、高画质视频编码和无线基地台收发器。sRIO不但将延迟时间减低,还提供庞大的10Gbps全双工频宽和低接脚数的互连能力,故能消除I/O瓶颈,将系统效能提高最多至12倍。这个芯片内建的sRIO还能连接协力厂商工具、FPGA、sRIO交换器和内建sRIO的嵌入式处理器。
软件与基础设施
除了sRIO提供的原始效能外,软件开发人员不需做低阶组件程序设计,就能开发应用软件。目前已有数家嵌入式处理器厂商在核心软件层提供sRIO支持,如TI的实时操作系统和DSP/BIOS核心基础软件就包含一组sRIO讯息队列应用程序界面 (Message Queue API),能让开发人员在高阶抽象层开发应用软件。
在含有大量DSP的基础设施应用中使用sRIO还能在组件数目、电路板面积和/或组件成本等方面降低系统成本。举例来说,目前新开发的嵌入式系统都会扩大使用DMA和其它能高速移动数据的智能型外围。目前的点对多点 (multi drop) 互连架构若不使用更多的信号/接脚和连接器,就无法支持所需频宽,但增加信号/接脚和连接器却会提高系统成本。sRIO则能在大量DSP的配合下,以不影响成本的方式解决这个问题。
不同的应用需要不同的系统架构,sRIO提供高度弹性,协助系统开发人员将以sRIO为基础的网络规划为环状或格状架构。sRIO采用来源路由 (source routing),而不是广播路由 (broadcast routing),因此在整个架构里,只有传送者与接收者之间的路径需要处理传输作业,此举将能为系统内其它DSP组件提供更多频宽,让这些组件同时相互通信。sRIO还能在无论是否提供当地联机及连接到ASIC和FPGA的情况下,透过交换器将多个处理单元串连;此外,sRIO还能将多个处理单元连接成星状架构 (图3显示5个 DSP 互相连结的状况)。
最后,RapidIO还提供良好的互用性 (interoperability),使采用RapidIO的系统更容易导入各种不同的应用。RapidIO的互用性测试是以相关标准机构所制定的RapidIO互连规格装置互用性与符合性检查清单 (RapidIO Interconnect Specification Device Interoperability and Compliance Checklists) 为基础,这份清单主要提供多任务处理和多信道信号处理解决方案给开发工程师参考,做为他们的RapidIO技术使用指南。举例来说,装置互用性测试的第一步是确保“装置A”与“装置B”之间的互用性通过测试。目前市场上已有许多sRIO开发系统,开发人员在设计电路板前可利用这些系统评估sRIO系统和制造原型。整体而言,设计人员已能在市场取得sRIO系统开发所需的全部重要组件。