嵌入式操作系统
基于高性能多DSP互连技术
由于现代数字信号处理器(dsp)设计、半导体工艺、并行处理和互连与传输技术的进步,现代高性能dsp的处理能力得到极大发展。但在移动通信、雷达信号处理和实时图像处理等复杂电子系统中,单片dsp的性能仍可能无法满足需求,通常需要使用多片dsp构成并行信号处理系统。
在多dsp系统中,互连技术连接dsp、接口及其他处理器,一起构成系统的静态体系结构,是数据传输的中间介质的总和。互连技术传输代表计算任务、中间数据、结果或状态控制信息的数据流,使接口与dsp中的算法模块通过数据流动态地连接起来,整合成分工协作的有机整体。
已经有一些对多dsp并行系统互连技术的综述[1][2] [3][4][5][6],但还不够全面而且没有反映高性能dsp互连技术的最新进展。因此,本文以世界主流公司的典型高性能dsp产品为例,全面总结概括高性能dsp的互连接口技术及其发展,对其互连特性进行总结和归纳分类,在此基础上全面总结给出并行信号处理系统中多dsp互连设计的总体设计考虑和实际经验。
高性能dsp互连接口技术及其发展
多dsp系统的互连以dsp自身接口为基础,下面以TI、ADI和Freescale三家公司的高性能dsp为例系统概括现有的dsp互连接口,见表1。
现有dsp的互连接口在物理层和传输控制上的特性是选择使用互连技术的基础,表2是对表1中所有的dsp互连接口的互连特性的总结。
表1 主流dsp公司典型高性能dsp的互连接口
可以看出,在越来越高的传输速率需求的推动下,高性能dsp互连接口在物理层技术的主要发展趋势是:从高电压摆幅→低电压摆幅,从单端信号→差分信号;从并行总线→串行信号线;从收发异步→收发外同步→源同步→串行码流中嵌入时钟的串行器/解串行器(SerDes);从半双工→全双工;从多点分时共享总线→点-点的专用互连;最终使接口传输速率从几十Mbps发展到目前的10Gbps。
数据的串行化意味着数据必须以分组方式传输。而由于信号完整性问题,高速串行差分线一般不允许多点负载,因此基于SerDes的互连一般是点到点的直接互连。当dsp数量较少时,可以采用dsp间两两的直接互连;当dsp数量较多时,须要采用中间dsp或用于数据传输的中间器件—交换机。
因此,物理层技术的发展推动着高性能dsp的主要互连技术从多点并行总线转向高速串行直连和分组传输交换。例如TI在2008年10月发布的3核dsp TMS320C6474、Freescale在2008年11月发布的6核dsp MSC8156,都已经取消传统意义上的数据、地址和控制三总线接口而代之以sRIO、GE之类的标准分组交换网络接口以及AIF这样的高速直连接口。
根据传输特性对互连技术的分类
互连的目的满足接口及算法链路的数据传输需要,因此互连特性往往与传输特性紧密相关。各种互连技术虽各有不同,但可以根据互连与传输的共性进行统一分类,有助于理解并选择合适的互连技术。表3是根据互连与传输的特性对现有主要dsp互连技术的分类总结。图1~图4是对典型互连技术实例的图示。
表3 互连与传输技术的分类总结
对表3补充说明如下:多点总线为多dsp共享并分时占用,不能多数据流并发传输。多点主从总线可能有主总线的桥接转换,例如PCI-HPI的PCI2040(TI)、PCI-Local总线的PCI9054(PLX)。传统互连中的数据传输过程一般都需要源、中间或目的处理器的显性或隐性(例如TDM中的时隙分配)地直接参与。而基于交换机的网络互连则一般不需要。间接传输中的中介器件、dsp或交换机可以根据需要级联。接口转换桥方式连接标准网络的实例有:专用于ADI公司SHARC及TigerSHARC的SharcFin和FINe(Bittware)、通用的TSI620(Tundra)。高端FPGA由于其丰富的接口、对几乎所有互连标准的有效支持、使用的灵活性和高性能的计算处理能力,也会在多dsp的互连中发挥重要作用。
在2003年RapidIO成为ISO/IEC 18372标准之前,还没有规范的多dsp互连网络标准,各厂商推出了多种非标准dsp互连网络、接口和交换芯片,例如:Solano(Spectrum Signal)、StarFabric(StarGen)、FPDP/sFPDP(ICS/VITA)、RaceWay(Mercury)、 SKYChannel(SKY Computer)。RapidIO是在这些技术的基础上发展起来的,特别针对高性能dsp或嵌入式系统互连优化,其产业链已经基本成熟,并开始逐步取代这些非标准互连技术。
图1 典型直接互连:链式、星型、阵列
图2 典型多点总线直接互连:对等总线、主从总线
图3 典型非网络间接互连:存储器中介(双口、FIFO、共享)、FPGA
总结高性能dsp间的数据传输及控制,可以看出,其主要发展趋势是:从dsp间的直接互连传输→通过中介dsp的间接传输→通过分组交换互连网络的间接传输;源dsp和目的dsp的关系从主从关系→对等关系;从dsp软件主动参与传输控制→硬件独立自主控制传输过程,例如sRIO由硬件完成检错和重传;从专有互连传输技术→标准互连传输技术。
图4 交换网络互连:直接接入及需要适配器接口转换
系统级设计考虑
构建多dsp并行dsp系统时,需要决策解决的系统级问题有:为主数据路径选用哪些互连技术与整体拓扑?统一互连还是混合互连技术?直接还是间接互连?如果直接互连采用何种dsp接口?如果间接互连是采用存储器、FPGA、交换机还是其他器件扩展?是否需要连接外部网络?如何处理控制、程序配置、管理等的传输需求?是否需要区分数据平面、控制/配置平面、管理平面?在控制/配置/管理平面内,又应采用何种互连技术与互连拓扑?
如何选择合适的互连技术,设计合理的互连体系结构,应当根据数字信号处理算法及其在各dsp上的分解、解耦与适配结果,考虑数据传递链路在速率、延迟、并发数等方面的性能需求,针对已有dsp接口的互连与传输特性,满足系统在控制、配置和管理方面的数据传递需要,满足系统在成本、硬软件开发复杂度、调试测试方便性、构建使用灵活性与可扩展性等使用特性上的需要。在工程中设计实际并行处理系统时,一般需要混合使用多种互连传输技术与互连拓扑架构。
经验总结
在信号处理平面:当多dsp间整体流量不大或需要共享内存且器件支持时,可以使用对等并行总线;当处理过程需要主处理器参与转移、分配、汇聚或控制时,可以选用主从并行总线;当多dsp异构、具有非对等总线接口、需要分发汇聚或需要FPGA参与处理时,可以用缓存或FPGA做中介的间接互连;当需要高性能且链路为直接点—点时,可以选用高速直接互连链路或多点总线蜕化的直接互连;当需要并发的多个高速数据流、路径需要动态变化或需要扩展性,可以采用高性能分组交换网络互连;如果dsp不具有网络接口或网络为非标准,则需要桥接器件。语音、定时特性明显的中小数据量传输可以采用McASP、TDM、McBSP等同步串行总线;对网络数据可以采用FE、GE的标准网络。
在配置、控制和管理数据平面,对低速数据可以采用串行总线如UART、I2C、CAN、UART扩展的RS485等;对于高速传输可以采用主从并行总线如PCI、HPI、DSI、UTOPIA等,或采用FE/GE、PCIe、sRIO等网络互连技术;如果需要通过外部以太网管理系统内部则需要使用FE、GE等通用网络技术。
对于系统的整体互连拓扑,当整体算法链路固定且主要为顺序传递或逐级分解/汇聚或dsp数量较少时,可以采用两dsp间点—点直接互连组成的链/环式、树/星型、二/三维规则拓扑、Mesh等拓扑结构;当需要中、低性能的多dsp间相互传输,可以采用多点总线、FPGA星型、FE/GE的星型网络拓扑;当需要较多dsp间的高性能互连、算法灵活或需要性能与规模的线性扩展时,可以使用FPGA或分组交换网络形成的星型拓扑。
结语
现代高性能多dsp并行dsp系统一般将采用分平面的混合互连与传输技术。高性能多dsp的互连和数据传输将主要是基于低压差分SerDes的全双工互连和分组数据传输。当dsp数量较少时系统级互连将以dsp间的直接互连为主,当dsp数量较多时将以交换机及交换网络为中心。多dsp互连的整体发展趋势是从局部的差异化互连→全局统一的网络互连;从直接互连/传输→通过中介的间接传输→通过互连网络的间接传输;从非标准互连→标准互连;从通用以太网→面向信号处理优化的高性能嵌入互连网络sRIO。
全部0条评论
快来发表一下你的评论吧 !