2023年12月18日发(作者:)
在软件无线电调制解调器功能中使用硬件加速单元
2005-05-29 joel a. seely, 技术行销经理 汽车、工业、军事与航天事业部,
altera公司
现场可编程门阵列(fpga)已经不再单纯应用在芯片与系统之间的直接互联层,在软件无线电(sdr)中,fpga逐渐用做通用运算架构来实现硬件加速单元,在降低成本和功耗的基础上提升性能表现。sdr调制解调器的典型实现包括通用处理器(gpp)、数字信号处理器(dsp)和fpga。而且,fpga架构可以结合专用硬件加速单元,用来卸载gpp或dsp。软核微处理器可以结合定制逻辑,扩展其内核,也可以将分立的硬件加速协处理器添加到系统中。此外,还可将通用布线资源放在fpga中,这些硬件加速单元可以并行运行,进一步增强系统的整体运算输出能力。本文将讨论三种不同类型的硬件加速单元,以及它们通过软件实现的性能。
软件无线电
随着无线标准的快速发展,要求未来无线设备能够支持多个无线接口和调制格式。通过应用可重新配置的硬件平台,sdr技术跨越多种标准,支持无线设备中的这些功能。
sdr是在联合战术无线电系统(joint tactical radio system, jtrs)基础上开发的技术,最初是为了开发软件可编程无线电系统,在美国军事服务范围内,与其它军事联盟和盟国来进行无缝实时通信。jtrs的功能与扩展性建立在称为软件通信体系的开放式体制基础之上。jtrs终端必须能够对超过25种特定无线接口
或波形之一的动态负载提供支持,这比民用情况要复杂的多。要在合理的体积之内达到所有这些功能要求,需要不同的扩展处理能力。也正是这个原因,所以多数体系都采用gpp、dsp与fpga。
sdr系统体系结构
通用处理资源gpp、dsp和fpga可应用于整体sdr系统的不同部份。图 1. 以sdr功能划分的gpp、dsp与fpga实例体系结构显示了在这些器件中,每个均以sdr进行划分的典型功能体系结构实例。然而,在这些单元之间仍然有相当多的功能重叠。例如,在dsp上执行的算法可以用gpp来实现(虽然会变的慢一些),或是重新编写hdl,作为一个协处理器或硬件加速单元在fpga上运行。
图 1. 以sdr功能划分的gpp、dsp与fpga实例体系结构
硬件加速
多种方式可以使用fpga资源实现硬件加速,可以归纳为三种基本体系结构:定制指令、定制外设做为协处理器,以及动态重新配置专用处理器。这些硬件加速方法具有不同的特性和独特的优势。掌握这些方面的使用以及在哪里使用,将有助于在系统体系结构中更好的使用fpga资源,以便在sdr应用中卸载dsp和gpp。
软核处理器与定制指令
随着大型fpga的出现,可以被嵌入到fpga中的小巧但功能强大的处理器也出现了,这些“软核”处理器是可配置的知识产权(ip)比特流,可以下载到fpga之中,与任何其它的嵌入式微处理器一样使用。它们甚至具有业界标准的工具组,
包括编译器、指令集仿真器、全套软件调试工具,以及集成开发环境。任何一位嵌入式软件工程师都非常熟悉这些工具组,因此将处理器做为比特流下载到fpga中的操作比较简单。然而,这些软核处理器具有很大的灵活性。在下载处理器之前,设计人员可以平衡考虑尺寸大小和速度要求,以选择不同的配置选项。设计人员也可以增加多种外设来实现内存控制、通信、i/o等等。
定制指令进一步提高了软核处理器的灵活性,可以当做软核微处理器算术逻辑单元(alu)的硬件辅助专用算法。这些新的硬件指令替代算法中对时间要求高的部份,重新分配软件算法到硬件模块中。带有定制指令的risc微处理器模糊了risc与cisc之间的界线,因为定制指令单元可以是多周期的硬件模块,可配合嵌入在risc处理器中采用单一周期的“标准指令”,共同执行复杂的算法。并且可以添加多个定制指令到alu中,仅受fpga资源以及在软核处理器开放代码表中开放位置数量的限制。图 2. 用定制指令扩展软核处理器alu所示为使用定制指令来扩展altera nios ii软核微处理器alu。
图 2. 用定制指令扩展软核处理器alu
何时需要使用定制指令?当需要加速的算法是被经常调用的相对基元运算,并对存储在本地寄存器中的数据进行操作时,使用定制指令将是最有效的方式。浮点运算指令便是一个很好的例子。浮点算术指令可以做为库子程序来运行,由编译器在处理器中自动调用,而不需要专用的浮点指令硬件。这些浮点算法需要多个时钟周期来运行。在通常采用这些算法的应用中,与其使用软件源代码实现,不如将其局部化为几个功能调用来实现。这些算法也可以由扩展软核微处理器alu的定制指令来实现。表1 所示为几个软件库子程序与使用定制指令执行相同功能
的比较。注意:即使在这种情况下,由于对定制指令的设计考虑不同,例如硬件实施中选择的流水线数量等,比较结果也会有较大的差异。
在本段中将循环冗余校验(crc)算法加到该表中,用于比较定制指令。虽然由定制指令实现crc的确比仅采用软件来实现这一算法有一定的优势,当在大容量存储器块中运行该算法时,仍然会有其它效率更高、整体处理能力更强大的硬件加速单元实现方法。
表 1 使用软件与使用硬件定制指令来实行算法之间的处理能力比较
硬件加速协处理器
由于定制指令是与软核微处理器相关的alu扩展,因此可以在fpga内部或外部采用硬件加速协处理器来加速处理器。图 3. 在系统内的硬件加速协处理器所示为采用协处理器的架构,在这个设计之中,处理器可以是fpga外部gpp或dsp,也可以是fpga内部的处理器(可以是硬核或软核处理器)。协处理器的一个关键优势是它可以包封在直接存储器访问(dma)中。
图 3. 在系统内的硬件加速协处理器
硬件加速协处理器通过定制指令实现的场合具有以下一个或多个共同特性:
算法不仅仅采用寄存器变量(非基元)
运算更加复杂(通常是软件中的一个子程序)
数据转换在大型数据模块中完成
表2所示为在sdr应用之中采用硬件加速协处理器与仅使用软件来实现某些算法的性能表现实例。sdr可以充分利用各种dsp,实现高级应用级硬件加速。
表 2 仅使用软件与硬件加速协处理器的处理能力比较
专用指令集处理器
专用指令集处理器(asip)是一种特殊类型的硬件加速协处理器。asip同时具有软件的灵活性和专用硬件的高效与性能表现。asip处理器执行特定任务或一组相关任务。asip的一种实现方式通过改变大型建构模块的功能互联,实现处理器内部拓扑改动。
软件无线电由软件实现算法,以改善其可移植性、降低终身成本,提高重新定位能力。然而要达到成本与性能上的要求,则必须使用专用硬件。在fpga中采用asip的价值在于它们是由较小的建构模块组成,可以快速地被重新配置,以执行多种高级功能。与sdr相关的例子是快速傅利叶变换(fft)和有限冲击响应(fir)滤波器。这两种高级算法可以共享多个通用子模块。通过改变这些子模块之间的互联,asip便可以在硬件中以fft来替代fir。图 4. 组合fft/fir asip体系结构所示是在一个asip体系结构中实现fft/fir asip。采用简单的微码指令集来配置硬件模块,根据需要执行fir或者fft功能。
图 4. 组合fft/fir asip体系结构
我们对在ti c62x dsp上执行1024个点的radix-2 fft和在fir/fft asip上实现相同滤波功能的软件/硬件进行了比较。ti花了20840个时脉周期,而asip
花了21850个时脉周期,两者整体处理能力相当接近。但是,对于相同的算法,asip在相对尺寸大小、功耗与成本节省上都优于完全采用dsp的方案。对于专用sdr算法能够从dsp卸载到fpga、以降低对dsp处理能力要求的场合,采用asip能够达到更好的结果。
结论
软件无线电需要强大的处理能力来实现波形的可移植性,以及所承诺的可重新配置能力。由fpga实现硬件加速是较好的体系结构,有助于实现sdr。
调制解调器 无线电 单元 功能 硬件加速 政治实时热点 近期时政热点新闻


发布评论