>
首页 » 技术文章 » 在软件无线电调制解调器功能中使用硬件加速单元

在软件无线电调制解调器功能中使用硬件加速单元

作者:Altera公司 Joel A. Seely  时间:2005-10-15 14:16  来源:本站原创

前言
FPGA已经不再单纯应用在芯片与系统之间的直接互联层,在软件无线电(SDR)中,FPGA逐渐被用做通用运算架构来实现硬件加速单元,在降低成本和功耗的基础上提高了性能。SDR调制解调器的典型实现包括通用处理器(GPP)、DSP和FPGA。而且,FPGA架构可以结合专用硬件加速单元,用来卸载GPP或DSP。软核微处理器可以结合定制逻辑,扩展其内核,也可以将分立的硬件加速协处理器添加到系统中。此外,还可将通用布线资源放在FPGA中,这些硬件加速单元可以并行运行,进一步增强系统的整体运算输出能力。本文将讨论三种不同类型的硬件加速单元,以及它们通过软件实现的性能。
表 1 使用软件与使用硬件定制指令来实行算法之间的处理能力比较


图1 在系统内的硬件加速协处理器


图2 组合FFT/FIR ASIP体系结构


SDR系统体系结构
GPP、DSP和FPGA可应用于SDR系统的不同单元。然而,在这些单元之间仍然有相当多的功能重叠。例如,在DSP上执行的算法可以用GPP来实现(虽然会慢一些),或是重新编写HDL,作为一个协处理器或硬件加速单元在FPGA上运行。

硬件加速
多种方式可以使用FPGA实现硬件加速,可以归纳为三种基本体系结构:定制指令、定制外设做为协处理器,以及动态重新配置专用处理器。这些硬件加速方法具有不同的特性和独特的优势。掌握这些方面的使用以及在哪里使用,将有助于在系统体系结构中更好地使用FPGA资源,以便在SDR应用中卸载DSP和GPP。

软核处理器与定制指令
随着大型FPGA的出现,可以被嵌入到FPGA中的小巧但功能强大的处理器也出现了,这些软核处理器是可配置的IP比特流,可以下载到FPGA之中。它们甚至具有业界标准的工具组,包括编译器、指令集仿真器、全套软件调试工具,以及集成开发环境。任何一位嵌入式软件工程师都非常熟悉这些工具组,因此将处理器做为比特流下载到FPGA中的操作比较简单。然而,这些软核处理器具有很大的灵活性。在下载处理器之前,设计人员可以平衡考虑尺寸大小和速度要求,以选择不同的配置选项。设计人员也可以增加多种外设来实现内存控制、通信、I/O等等。
定制指令进一步提高了软核处理器的灵活性,可以当做软核微处理器算术逻辑单元(ALU)的硬件辅助专用算法。这些新的硬件指令可以替代算法中对时间要求高的部分,重新分配软件算法到硬件模块中。带有定制指令的RISC微处理器模糊了RISC与CISC之间的界线,因为定制指令单元可以是多周期的硬件模块,可配合嵌入在RISC处理器中采用单一周期的标准指令,共同执行复杂的算法。并且可以添加多个定制指令到ALU中,仅受FPGA资源以及在软核处理器开放代码表中开放位置数量的限制。
当需要加速的算法是被经常调用的相对基元运算,并对存储在本地寄存器中的数据进行操作时,使用定制指令将是最有效的方式。浮点运算指令便是一个很好的例子。浮点算术指令可以做为库子程序来运行,由编译器在处理器中自动调用,而不需要专用的浮点指令硬件。这些浮点算法需要多个时钟周期来运行。在通常采用这些算法的应用中,与其使用软件源代码,不如将其局部化为几个功能调用来实现。这些算法也可以由扩展软核微处理器ALU的定制指令来实现。表1 所示为几个软件库子程序与使用定制指令执行相同功能的比较。注意:即使在这种情况下,由于对定制指令的设计考虑不同,例如硬件实施中选择的流水线数量等,比较结果也会有较大的差异。
将循环冗余校验(CRC)算法加到该表中,用于比较定制指令。虽然由定制指令实现CRC的确比仅采用软件来实现这一算法有一定的优势,当在大容量存储器块中运行该算法时,仍然会有其它效率更高、整体处理能力更强大的硬件加速单元实现方法。

硬件加速协处理器
由于定制指令是与软核微处理器相关的ALU扩展,因此可以在FPGA内部或外部采用硬件加速协处理器来加速处理器。图 1所示为采用协处理器的架构,在这个设计之中,处理器可以是FPGA外部GPP或DSP,也可以是FPGA内部的处理器(可以是硬核或软核处理器)。协处理器的一个关键优势是它可以包封在直接存储器访问(DMA)中。
硬件加速协处理器通过定制指令实现的场合具有以下一个或多个共同特性:
算法不仅仅采用寄存器变量(非基元)
运算更加复杂(通常是软件中的一个子程序)
数据转换在大型数据模块中完成
表2所示为在SDR应用之中采用硬件加速协处理器与仅使用软件来实现某些算法的性能表现实例。SDR可以充分利用各种DSP,实现高级应用级硬件加速。
专用指令集处理器
专用指令集处理器(ASIP)是一种特殊类型的硬件加速协处理器。ASIP同时具有软件的灵活性和专用硬件的高性能。ASIP处理器执行特定任务或一组相关任务。ASIP的一种实现方式是通过改变大型建构模块的功能互联,实现处理器内部拓扑改动。
软件无线电采用软件实现算法,以改善其可移植性、降低成本,提高重新定位能力。然而要达到成本与性能上的要求,则必须使用专用硬件。在FPGA中采用ASIP的价值在于它们是由较小的建构模块组成,可以快速地被重新配置,以执行多种高级功能。与SDR相关的例子是快速傅利叶变换(FFT)和有限冲击响应(FIR)滤波器。这两种高级算法可以共享多个通用子模块。通过改变这些子模块之间的互联,ASIP便可以在硬件中以FFT来替代FIR。图 2所示是在一个ASIP体系结构中实现FFT/FIR ASIP。采用简单的微码指令集来配置硬件模块,根据需要执行FIR或者FFT功能。
对在TI 公司的C62x DSP上执行1024个点的radix-2 FFT和在FIR/FFT ASIP上实现相同滤波功能的软/硬件进行比较的结果为:C62x DSP花了20840个时钟周期,而ASIP花了21850个时钟周期,两者整体处理能力相当接近。但是,对于相同的算法,ASIP在相对尺寸大小、功耗与成本节省上都优于完全采用DSP的方案。对于专用SDR算法能够从DSP卸载到FPGA、以降低对DSP处理能力要求的场合,采用ASIP能够达到更好的效果。

结语
软件无线电需要强大的处理能力来实现波形的可移植性,以及所承诺的可重新配置能力。由FPGA实现硬件加速是较好的选择,有助于实现SDR。

相关推荐

FPGA在TD-SCDMA通用开发平台中的应用

FPGA  TD-SCDMA  软件无线电  2011-04-28

基于软件无线电的直扩通信终端设计与仿真

软件无线电  通信终端  2011-02-11

德州仪器推出业界最低功耗250MSPS 14位ADC

2009-12-04

R&S公司力推基于软件无线电的无线电监测和测试技术

基于软件无线电思想的数字通信终端接口电路

四通道可编程数字下变频器HSP50216及其在软件无线电中的应用

在线研讨会
焦点