强化DPD演算性能,SoC FPGA提升蜂窝网络设备集成度
2013-11-15
蜂窝网络业者设法通过全新传输接口、传输频率、更高带宽以及增加天线的数量和更多无线基站提升网络密度,因此需要大幅降低设备的成本。另外,这些业者为降低营运成本,也需要更高运作效率和网络集成度的设备。无线基础设备制造商为提供可以符合不同要求的设备,皆在寻求更高集成度、更佳性能和灵活度高的解决方案,并且同时降低功耗和成本。
集成度是降低整体设备成本的关键,然而这必须依赖可提升功率放大器效率的高阶数字算法来降低各项运作成本,其中一项最常用的算法是数字预失真(DPD)。由于设备的配置越来越复杂,因此提升设备运作效率是一项很大的挑战。藉由先进长程演进计划(LTE-Advanced)传输技术,无线传输带宽可达到100MHz,如果厂商试图用连续频谱配置结合多种传输接口,带宽甚至可以更高。主动天线数组(AAA)和支持多重输入/输出(MIMO)技术的远程无线单元(RRU)所需的算法对带宽的要求越来越高。本文将探讨业界完全可编程系统单芯片(All Programmable SoC)组件如何为目前和未来的数字预失真系统提升性能增益,同时也可为设备厂商提供充裕的可编程能力、低成本和低功耗,并加快产品上市时程。
创建蜂窝式无线网络
业界完全可编程SoC组件结合高性能可编程逻辑(PL)架构,其中包含串行器/解串器(SERDES)和集成硬件处理子系统(PS)的数字信号处理器(DSP)模块。这个硬件处理子系统内含一个双核ARM Cortex-A9处理器、浮点运算单元(FPU)和NEON多媒体加速器及一系列丰富的外围功能,包括通用异步收发器(UART)、串行外设接口(SPI)、内部集成电路总线(I2C)、以太网(Ethernet)和内存控制器等完整无线传输所需的外围功能。有别于外部通用处理器或DSP,可编程逻辑和硬件处理子系统间的接口有大量连接,因此其带宽可以非常高;但如要用独立式解决方案处理这些连接,却不可行。此外,完全可编程SoC组件还包含硬件和软件数组,因此可在单一芯片内创建远程无线单元所需的功能,如图1所示。
可编程逻辑中丰富的DSP资源可用于创建数字上行转换(DUC)、数字下行转换(DDC)、峰波因子抑制(CFR)与数字预失真(DPD)等数字信号处理功能。此外,SERDES可支持9.8bit/s的通用型公共射频接口(CPRI)和12.5bit/s JESD204B,分别用于连接基频和数据转换器。
硬件处理子系统同时支持对称式多重处理技术(SMP)和非对称式多重处理技术(AMP)。在这个案例中预定会采用非对称式多重处理模式,因为其中一颗ARM Cortex-A9处理器被用于创建基板层级的控制功能,例如信息终止、排程、设定等级以及警示执行(裸机或更有可能是如Linux等操作系统)。而另一颗ARM Cortex-A9处理器则用以创建部分数字预失真算法,因为数字预失真算法并不保证整体都是硬件的解决方案。
数字预失真可藉由扩大其线性范围提升功率放大器效率;当驱动放大器进一步增加输出功率时,即可提升运作效率,而静态功耗会相对维持正常。数字预失真为扩充其线性范围,会使用放大器中的模拟反馈路径和大量数字处理功能计算放大器的逆向非线性系数。然后利用这些系数预先校正与驱动功率放大器的传输信号,最终可增加放大器的线性范围。
数字预失真是一个封闭回路系统,其会撷取先前的传输信号来决定放大器与这些传输信号的传输方法。数字预失真的第一个任务是要让放大器与先前的传输信号达成一致,这个过程会在一个校准模块中进行。在执行任何算法运算前,系统会用内存来校准数据;数据一旦妥善校准后即可运用自动相关矩阵运算(AMC)和系数运算(CC)算法,建立代表功率放大器逆向非线性系数的最近值。一旦产出系数后,数据路径前置失真器即运用数据预校准被传输到功率放大器的信号。
加速估计数字预失真系数
当然,这些功能可以透过许多不同的方法建立。有些比较适合用软件的方法,而有些则适用硬件,同时也有是软硬件皆适用;然而,最终还是要以所需的性能决定创建的方法。采用完全可编程SoC组件可让系统设计人员自由支配硬件和软件的最适度使用情况。就数字预失真的情况而言,由于需要非常高的采样率,因此内含高速过滤功能的数据路径预失真器通常会创建在可编程逻辑中,而产生数字预失真系数的校准和估算引擎则可于硬件处理子系统中的ARM Cortex-A9处理器中执行。
为决定什么须要采用硬件或软件创建方法,首先必须设定哪些部分需要软件。图3展示数字预失真算法中设定需要软件的部分,以期达到图2所示的三种功能。根据图3设定,不难理解数字预失真算法有97%的时间用在执行自动相关矩阵运算,所以很自然地加速这项过程成为首要任务。
ARM Cortex-A9处理器藉由丰富的运算资源可执行更多功能,而这些资源有助提升性能。举例而言,在硬件处理子系统中,每个ARM Cortex-A9处理器都内含一个浮点运算单元和一个NEON多媒体加速器。NEON单元是一个128位的单一指令多重数据(SIMD)向量协处理器,可同时执行两个32×32b乘法指令;由于NEON单元皆用于乘法累积(MAC)运算,因此非常符合自动相关矩阵运算功能所需。透过NEON模块可运用软件Intrinsics,这可以在系统组装时免除编写低阶程序的需求。因此,运用硬件处理子系统中更多的功能,可以比Microblaze等软件处理器或外接式DSP处理器大幅提升性能。
为提升数字预失真性能,设计人员须进一步利用可编程逻辑将这些功能移到硬件上。然而,由于软件是以C/C++编写,工程师需要一些时间将C/C++语言转换成可在可编程逻辑中运用VHDL或Verilog执行的硬件。
这个问题现在已可藉由各种高阶合成(HLS)工具(例如C语言至缓存器转移层级工具,C-to-RTL工具)得以解决。这些工具让具备C/C++程序经验的程序设计人员透过现场可编程门阵列(FPGA)拥有硬件能力。业界高阶合成工具可让软件和系统设计人员更容易将C/C++程序代码对应到可编程逻辑,让程序代码得以重用,并提供最佳可移植性和自由设计空间,最终达成最高生产力。
图4展示运用高阶合成工具的典型C/C++设计流程。这工具的输出是缓存器转移层级(RTL),可轻松与数据路径预失真器或上游制程等既有的硬件设计进行集成,当然也可连至数据转换器。运用这项工具,算法可快速转移至硬件,其中这项工具会使用AXI接口连至硬件处理子系统,如图5所示。
在可编程逻辑中以高频率执行自动相关矩阵运算算法,可对性能产生重大的效益,仅针对这项功能而言,其性能增益就可比软件创建的功能多七十倍,而且仅用完全可编程SoC组件中3%的逻辑。
从原来参考的C/C++程序代码进行基本优化,并运用ARM Cortex-A9处理器更有效地执行运算,结果显示仅用软件进行优化所得的性能则比没有变动的程序代码高出二至三倍。再使用NEON多媒体协处理器就能产生更多的性能增益。图5为自动相关矩阵运算架构。其中针对相关矩阵运算功能,其整体性能增益比软件创建的功能多七十倍。
最终,无线传输性能决定硬件和软件间所需的数字预失真功能分区。藉由调高频谱校准程度以达到更佳效率的做法可能影响性能,原因在于要达到这种校准程度需要更高的处理性能。其他影响性能的因素也可能是更多的传输带宽或是多个天线共享预测引擎。这只能针对单一的处理器节省空间和成本,加上采用另外的硬件加速器为许多数据路径预失真器计算系数。
在一些情况中,用ARM Cortex-A9处理器配合NEON单元执行的软件性能可能已足够,例如带宽较窄的传输配置或只有一或两个天线路径处理数据的设计,可以为那些无线传输配置降低组件占用面积和物料成本。
为将性能提升至更高的水平,设计人员可在创建自动相关矩阵运算功能时加入更多平行运算机制,只要增加支持逻辑的创建则可达到更快的更新时间。进一步的软件设定也可显示从硬件加速受惠的算法的其他面向。无论有任何需求,现在的工具和芯片都可让设计人员去探索在性能、面积和功耗间的各种取舍方法,在不受限于特定独立型组件或程序设计方式的情况下,可用最少的力气达成更高的运作效率。
无线传输基础设备需要低成本、低功耗和高可靠性。集成是达到这些目标的关键,但时至今日业界仍须在灵活度或产品上市时程方面做某种程度的让步。此外,在处理性能方面仍持续对宽带无线传输和更高作业效率有更多的要求。完全可编程SoC组件具备双核心处理器子系统、高性能和低功耗的可编程逻辑,可为目前和未来的无线传输需求提供可行解决方案。
无论是远程无线设备或者是主动式天线数组,设计人员可以打造具备更高生产力的产品,同时提供比现有的特定应用标准产品(ASSP)或特定应用集成电路(ASIC)方案更高的灵活度和性能。