硬件与软件对实现非递归滤波算法影响的研究

2018-01-08 22:07叶海雄陶宁蓉王世明LaurentCabaretLionelLacassagne
电子设计工程 2017年16期
关键词:寄存器功耗内存

叶海雄 ,陶宁蓉 ,王世明 ,Laurent Cabaret,Lionel Lacassagne

(1.上海海洋大学 工程学院,上海201306;2.巴黎南大学 计算机学院,埃松 奥赛91405;3.巴黎皮埃尔和玛丽居里大学 计算机学院,巴黎 朱西厄75006)

硬件与软件对实现非递归滤波算法影响的研究

叶海雄1,2,陶宁蓉1,王世明1,Laurent Cabaret2,Lionel Lacassagne3

(1.上海海洋大学 工程学院,上海201306;2.巴黎南大学 计算机学院,埃松 奥赛91405;3.巴黎皮埃尔和玛丽居里大学 计算机学院,巴黎 朱西厄75006)

以信号处理中非递归型Finite Impulse Response(FIR)滤波器作为研究对象,针对硬件电路设计中存在的面积、功耗和计算性能的问题,通过利用Catapult C高层次综合工具先优化单个FIR滤波,再级联滤波算法的方法以改善滤波的能耗。同时FIR滤波算法在STxP70专用微处理器中采用单指令多数据Single Instruction Multiple Data(SIMD)VECx技术以加速电路的计算性能,分析与评估硬件与软件对实现FIR滤波算法的影响。实验结果表明,采用硬件等效替代的方法能使单个FIR滤波能耗降低6倍,级联滤波能耗降低7倍,满足了绿色环保的电路设计理念。采用软件的SIMD技术可实现数据向量化加速计算,计算加速比提高4倍以上。

信号处理;高层次综合工具;专用微处理器;SIMD

设计大规模集成电路领域中高层次综合设计方法从算法抽象描述层面到物理行为实现层面减少中间步骤,在保证电路的性能的前提下能够缩短产品开发周期。最新推出的高层次综合工具的编译器具备操作展开循环、软件流水线和使用多面体模型安排循环体的时序等软件优化功能[1]。此外工具还能分析多媒体应用领域的计算机语义[2]。文献[3-5]描述了Compann、Paro、MMAlpha等高层次综合工具使用多面体模型分析并转换循环体的能力。文献[6]描述了Array-OL工具操作数组并生成VHDL语言以快速评估电路性能。输入语言为C或C++语言的Catapult C高层次综合工具[7],通过浮点型到定点型的转换,接口定义、元器件库资源调用、时序安排等,最后生成RTL级VHDL或Verilog硬件语言,利用Design Compiler[8]软件在门级层面评估电路的特征,Scverify软件能在C语言和VHDL语言上协同仿真以确保电路功能的准确性。另外Catapult C工具中间距启动ii值可改变电路特性,ii值越大,表示电路面积大、功耗高。反之亦然。

1 非递归型FIR滤波算法及优化方法

1.1 FIR滤波算法

非递归型FIR滤波器[9-11]在信号处理、多媒体、图像处理、模式识别等方面得到广泛应用。输入信号x(k)与冲击响应(系数 bk),阶数为n-1的FIR滤波器的数学表达式如下:

在式(1)中,若系数 bk与数据 x(n-k)的类型为浮点型,可以保证计算结果y(n)精确度,但会导致硬件电路设计的面积和功耗额外开销。本文假设编码位数长度足够并希望计算的结果与专用微处理器的结果作对比,故采用长度分别为8位的定点型系数和数据[12],用Q8表示。式(1)中加入r项以修正由于截取操作带来的计算误差,系数需要左移8位,即乘以28,最后的结果y(n)右移8位,即除以28。本文以3个系数的滤波为例,其数学表达式展开如下:

式(2)所对应的算法分别为寄存器FIR3滤波算法(Reg版)和循环使用寄存器FIR3滤波算法(Rot版)。为了防止循环中边界溢出,本文采用的滤波器计数都从i=2开始。对于循环中边界问题,假设信号x(n)是无限信号的一部分,前两个输出信号值复制输入信号的值。读取与写入数据分别在两个不同的内存中以避免同时访问内存地址引起冲突。Reg版是指从单门输入内存中读取数据与系数进行乘加运算,计算结果写入输出内存。Rot版与Reg版相比,增加了两个移位寄存器以保存两个数据用于下次计算。

1.2 硬件资源调用

增加数据通路的方法可以增加读取数据量间接提升计算性能。在Catapult C高层次综合工具中,可调用的硬件资源有单门内存:做一次FIR3计算需要3个时钟周期完成数据的读取;双门内存可同时在内存中读写数据,需要3/2=2个时钟周期完成FIR3数据的读取;3个交错单门内存:可以同时从3个单门内存分别读取FIR3的数据,做一次计算只需要1个时钟周期。如果总数据量与交错单门内存非整数倍,状态机将被创建以管理和分配内存数据。该状态机将增大硬件电路面积和功耗。

表1 寄存器FIR3滤波算法

表2 循环使用寄存器FIR3滤波算法

1.3 级联FIR滤波算法的优化方法

单个滤波器有时未能完全满足过滤的要求,级联滤波方法的使用为了进一步去除噪声。级联两个非递归型滤波器,有以下3种情况:

1)如果两个滤波器数据相互独立,只需要一个中间内存T保存第一个滤波器所有的计算结果并用于第二个滤波的计算,如图1中第一行。

2)两个滤波器中间只需加入一个First In First Out(FIFO)寄存器,如图1中间行。

3)一个新的滤波器等效替代两个滤波器,如图1最后一行。

根据离散卷积公式

如果把式(2)代入式(3)中,可以得到 5个系数c0、c1、c2、c3和 c4的值。

从编译的角度,编译器能够合并多个循环体,即合并一个滤波器可以看成合并一个操作。合并的关键是为了节约中间内存的使用。由式(4)看,两个2阶的FIR3滤波器串联,可以用1个4阶的FIR5滤波器以等效替代。扩展到n阶与m阶FIR滤波器级联,可以得到p阶新滤波器,其系数个数为m+n+1。

图1 级联2xFIR3滤波算法的优化方法

2 STxP70专用微处理器与算法转换

STxP70[13]是ST公司自主研发的具有32位精简指令集低功耗专用微处理器。在CMOS 65纳米工艺下,最高工作频率为450兆赫,面积约为40千门。它带有紧密耦合程序存储器(TCPM)和紧密耦合数据存储器(TCDM),访问内存延迟时间可设置为1、2和10时钟周期,还有64/128位矢量扩展用于单指令多数据流结构(SIMD)[14]等多个硬件扩展模式。

2.1 VECx扩展

VECx扩展模式是ST公司针对信号处理中低功耗多媒体嵌入式应用领域设计的。它的基本指令有读取/保存指令、算术指令、比较指令和混合数据指令,还有16位累加指令、求平均值指令等。当需要滤波时,专用指令用于完成16位乘加运算、进位并输出8位的计算结果:acc16<--h8 x h8+acc16,y8=(acc16+128) >> 8,以高效化数据计算,

在CMOS 65纳米工艺下,它的最高工作频率为420兆赫,面积约为190千门,或为0.42 mm2。直接测量VECx功耗的任务是艰巨困难的,结合ST公司的经验数据,本文假设STxP70微处理器与VECx扩展的面积的比值与其功耗的比值相关联,即功耗的比值为190/40=4.75倍。

2.2 单指令多数据结构(SIMD)算法

本文评估滤波算法转换在标量和SIMD向量版本上的性能。采用K阶滤波器,用FIRk表示,k取奇数,其范围为1~9。FIRk滤波器标量版的算法与高层次综合的算法相一致。向量化算法采用Motorola公司Altivec[15]的设计模式,对非对齐的向量进行计算避免因非对齐访问造成的性能损失。

在精简指令微处理器中,加速计算性能的难点在于大部分信号处理算法存在内存容量问题。其原因是算术强度,即计算操作次数与访问内存次数的比值是很弱的,访问内存的延迟时间在算术计算时间面前常常被隐藏。FIRk滤波器一共需要2k+1次算术操作和2k+1次访问内存次数,故算术强度为1。当滤波器的系数是固定,可在循环体外预先读取系数,则访问内存次数缩减到k次,算术强度为2。但对系数的保存需要更多的寄存器可能会导致编译器在编译时代码溢出。设计模式是针对因访问内存而引起的低计算强度的问题而使用的。它能够重新组织计算以最大化平行计算为目的,在寄存器中创建非对齐向量用于加载操作。

图2展示了VECx结构:内存被划分为64位的块(即8小方块x8位)。当从一个64位块读取数据,加载指令进行8小方块x8位转换成8小方块x16位的强行转换。在两个加载数据的向量寄存器v0与v1。非对齐向量u1与u2使用SIMD指令VECx_VSHLUIH在v0与v1中计算。在此之后,只需要计算寄存器中每个系数与数据的乘加。在VECx中,2次64位数据加载可计算滤波器的大小最大为FIR9。保存指令的方式与加载指令相反。

图2 FIRk的SIMD非对齐向量计算

3 实验分析与评估

为了测试硬件与软件算法优化方法,实验在Intel多核CPU 3.2 GHz、Solaris Sun平台上,使用ST公司的CMOS 65纳米工艺库和Synopsys公司Design Compile工具进行仿真实验。得到电路面积、静态功耗、动态功耗、时间等结果。通过计算总时间与总功耗的乘积再除以滤波长度,得到单位能耗,用cpp表示。

3.1 CatapultC实验结果与分析

图表3、4的实验条件是在工作频率为200兆赫到800兆赫下,每200兆赫采样并显示平均值。ST公司相同工艺的1024x8字节的内存的面积为15 000μm2,能耗为14 pJ/point。换而言之,一个内存的面积2倍大于滤波器本身的面积。这也是取消级联滤波器中间内存的原因所在。

图3 单个FIR3滤波、2xFIR3与FIR5的面积

图4 单个FIR3滤波、2xFIR3与FIR5的能耗

算法版本编号为1-4所对应的版本为SP+Reg、DP+Reg、3xSP+Reg、SP+Rot。

从图3、4中可以看出,单个FIR3滤波器下,相比Reg算法,SP Rot和3xSP Reg算法在能耗方面优势明显。Rot算法采用移位操作且间距启动值ii为1,使能耗节省5.87倍,而为此付出是是面积只增大19%。2xFIR3在FIFO寄存器滤波下,调用硬件资源的方式,3个交错内存能使能耗降低3.61倍。而软件Rot版能在此基础上,再节省1.5倍,总共节省5.55倍,而面积增加58%。FIR5滤波下,调用硬件资源的方式,5个交错内存能使能耗降低2.25倍。而软件Rot版能在此基础上,再节省1.75倍,总共节省6.39倍,而面积增加47%。

等效替代的SP Rot版与FIFO的SP Rot版相比,面积和能耗都节省14%。最后,SP Rot版比3xSP Reg优势明显。

3.2 STxP70实验结果分析

图5 标量版非递归型FIR滤波器的性能

图6 向量版非递归型FIR滤波器的性能

图5、6显示了非递归FIR滤波器在STxP70的标量和向量版上的性能。比较所有标量版,当TCDM为1个时钟周期,即内存读取数据速度短,Rot版比Reg版速度快30%;当内存为2个时钟周期,Rot版比Reg版速度快一倍;当内存为10个时钟周期,Reg版速度一直较慢。比较所有向量版,当内存为1个时钟周期,Reg版比Rot版的速度更快,因为在Rot算法中从一个寄存器中复制数据到另一个寄存器的时间开销很长;当内存为2个时钟周期,Rot版比Reg版速度快20%以上;当内存为10个时钟周期,Rot版与Reg版速度相近。相比Rot标量版与SIMD版,它们的比值取决于内存速度。当TCDM为1个时钟周期,FIR3、FIR5的标量版与SIMD版的比值分别为5.4和4.69。当内存为10个时钟周期,比值分别为7.4和7.0。当内存为1个时钟周期中,VECx中的计算非对齐寄存器混合指令丢失加速度的现象是不可忽略的。

表3 在执行时间和能耗上比较算法在Catapult C与STxP70影响

从表3中可以看出,在执行时间方面,FIR3与FIR5,Catapult C是STxP70微处理器的2.95倍、3.87倍。在能耗方面相差61倍与50倍。但是STxP70微处理器让设计者重复使用码可,提高设计灵活性。

4 结 论

文中针对非递归型FIR滤波器,基于Catapult C与STxP70微处理器,研究了不同版本的算法以评估算法优化对ASIC设计能耗的影响和算法转换对微处理器性能的影响。实验表明,通过算法优化与算法转换,电路在能耗和性能方面有显著提高,达到了绿色环保设计效果。下一步工作将采用元函数的宏定义,通过先手工、后让编译器自动转换信号处理中硬件与软件算法以提高电路设计效率。

[1]Kennedy K,Allen J R.Optimizing compilers for modern architectures:a dependence-based approach[M].Optimizing compilers for modern architectures:Morgan Kaufmann Publishers,2002.

[2]Beux S L,Moss L,Marquet P,et al.A high level synthesis flow using model driven engineering[M].Algorithm-Architecture Matching for Signal and Image Processing.Springer Netherlands,2011.

[3]Stefanov T,Zissulescu C,Turjan A,et al.System design using Khan process networks:the Compaan/Laura approach[J].2004(1):340-345.

[4]Bednara M,Teich,J&#,rgen.Automatic synthesis of FPGA processor arrays from loop algorithms[J].Journal of Supercomputing,2003,26(2):149-165.

[5]Mozipo A,Massicotte D,Quinton P,et al.Automatic synthesis of parallel architecture for kalman filtering using MMAlpha[C]//International Conference on Parallel Computing in Electrical Engineering.1998:1081-1083.

[6]Amar A,Boulet P,Dumont P.Projection of the Array-OL specification language onto the Kahn process network computation model[J].Proceedings of the International Symposium on Parallel Architectures,Algorithmsand Networks,ISPAN,2006(5):496-503.

[7]Fingeroff M.High-Level Synthesis Blue Book[M].Xlibris Corporation,2010.

[8] Сурков А В,Surkov A V.Synthesis of burstmode asynchronous schemes using Synopsys Design Compiler[J].2014,44:24-30.

[9]徐远泽,戴立新,高晓蓉,等.FIR滤波器的FPGA实现方法[J].现代电子技术,2010,33(22):64-67.

[10]李伟,武鹏飞,陈宏霖.基于DSP Builder的分布式算法的FIR数字低通滤波器设计[J].计算机应用,2015(s2):335-338.

[11]赵岸,颜毅华,陈林杰,等.基于FPGA的高速FIR数字滤波器设计的改进方法[J].天文研究与技术,2015,12(1):109-116.

[12]Menard D,Serizel R,Rocher R,et al.Accuracy constraint determination in fixed-point system design[J].Eurasip Journal on Embedded Systems,2008(1):1-12.

[13]Janin Y,Bertin V,Chauvet H,et al.Designing tightly-coupled extension units for the STxP70 processor[J].2013(1):1052-1053.

[14]解庆春,张云泉,王可,等.SIMD技术与向量数学库研究[J].计算机科学,2011,38(7):298-301.

[15]邓豹,刘照青.基于AltiVec技术的PowerPC处理器矢量运算性能测试[J].计算机测量与控制,2015,23(6):2113-2115.

Research on the hardware and software impact on the non-recursive FIR filter algorithm implementation

YE Hai-xiong1,2,TAO Ning-rong1,WANG Shi-ming1,Laurent Cabaret2,Lionel Lacassagne3
(1.School of Engineering Science and Technology,Shanghai Ocean University,Shanghai 201306,China;2.Laboratire Recherche d’informatique,Paris Sud University,Orsay 91405,France;3.Laboratiore d’Informatique de Paris,Pierre et Marie Curie University,Jussieu 75006,France)

This paper discussed the non-recursive FIR filter in signal processing,the face to the problems on area,power consumption of the electronic circuit.Through the use of Catapult C High-Level synthesis tool,we optimized a single non-recursive FIR filter algorithm,then cascade filter algorithm,in order to achieve improving the energy consumption.Through the use of dedicated microprocessor STxP70,we used the SIMD VECx technique to improve the computing performance.Finally we analyzed and evaluated the impacts of the FIR filter algorithms implementation.The experimental results showed the optimizations algorithms are very efficient,it can be reduced 6 times for the single filter and 7 times for the fusion filter on energy consumption.The circuit is ecologic.And software optimizations algorithms with SIMD technique can be increased 4 times for the computation acceleration.

signal processing; high-level synthesis tool;microprocessor;SIMD

TN4

A

1674-6236(2017)16-0001-05

2016-09-25稿件编号:201609227

国家自然科学基金项目(71501125);上海市青年教师高校新进教师培训及科研启动基金(ZZHY14033);上海海洋大学博士科研启动基金(2030214300082)

叶海雄(1982—),男,浙江万象人,博士,讲师。研究方向:信号、图像处理、嵌入式系统、ASIC和SOC。

猜你喜欢
寄存器功耗内存
基于任务映射的暗硅芯片功耗预算方法
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
Lite寄存器模型的设计与实现
“春夏秋冬”的内存
分簇结构向量寄存器分配策略研究*
揭开GPU功耗的面纱
数字电路功耗的分析及优化
IGBT模型优化及其在Buck变换器中的功耗分析
基于内存的地理信息访问技术
高速数模转换器AD9779/AD9788的应用