面向向量处理器的浮点复数块FIR的向量化实现方法技术

技术编号:6806095 阅读:246 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种面向向量处理器的浮点复数块FIR的向量化实现方法,包括以下步骤:(1)输入向量数据x,系数数据h;将向量数据x的虚部和实部分别连续存放,将系数数据h的虚部和实部分别连续存放;向量处理器包括p个处理单元;(2)将向量数据x的实部和虚部、系数数据h的实部和虚部并行加载到向量处理器的同一个处理单元的不同局部寄存器中;(3)p个处理单元中的每个处理单元在本单元内执行向量数据x和系数数据h的复数乘法并将乘法的结果进行累加;(4)p个处理单元的计算完成,输出p个结果。本发明专利技术具有原理简单、操作方便、能够高效计算并能缩短整个算法的运算时间、能提高处理器计算资源使用效率等优点。

【技术实现步骤摘要】

本专利技术涉及FIR滤波器向量化领域,特指一种浮点复数块FIR向量化实现方法。
技术介绍
随着4G无线通信、雷达信号处理、高清视频和数字图像处理等计算密集型应用的计算需求越来越高,单芯片难以满足应用需求,多核处理器尤其是其中的向量处理器得到了广泛的应用。如图1所示,是向量处理器的一般结构示意图,向量处理器一般由P个处理单元(PE)组成,通常支持基于向量的数据加载和存储。每个PE包含独立的多个功能部件,一般包括移位部件(BP)、算术部件(ALU)、乘法部件(MUL)等,每个PE包行一组局部寄存器,所有PE的同一编号的局部寄存器在逻辑上又组成一个向量寄存器。例如图1所示 PEO-PV1的RO寄存器在逻辑上组成了向量寄存器VR0,每个PE所对应的RO称为向量寄存器的一个元素。向量处理器采用SIMD的方式,在同一条向量指令的控制下,ρ个PE同时对各自的局部寄存器进行相同操作,用以开发应用程序的数据级并行性。每个PE对应多个存储体(bankO,bankl, bank2, bank3),数据映射到不同的存储体能够避免存储冲突。向量处理器包含大量功能单元,适合处理包含大量高密集运算的任务,如矩阵分解、FFT运算、HR(Finite Impulse Response)滤波运算等。然而,很多高密集运算的任务由于算法本身的特性,向量化处理困难,如何将这些算法高效的映射到向量处理器,即这些算法的向量化方法,是提高向量处理器使用效率的关键。例如,浮点复数块FIR的向量化, 浮点复数的实部与虚部都是32位,如果按照通常的实部与虚部相间隔的方法放置数据,那么,一个复数的实部与虚部被分别加载到不同PE的局部寄存器,后续的复数乘法和累加非常困难,系数长度与PE数量的不匹配导致不能充分利用向量处理器所有可并行的运算资源。HR滤波器是输入信号流χ 与冲击响应h的离散卷积,一个系数长度为ν的 FIR滤波器计算公式如下ν-1yn=Yjhxn_k(1)k 二 Q其中hk(0彡k彡V-1)是滤波器系数,xn_k是输入信号。每一输出7 的计算需要V 次乘法和V-I次加法。HR滤波器的计算包括两层循环,通常的向量化方法是向量化内循环,即计算每个输出值所需要的内循环计算向量化,分配到各个PE并行执行,将方程(1)展开得到方程(2) 所示yn = XA+Xn-^+...+Xn-L1V1(2)其中的xnhQ,Xn^h1,…,Xn^1Iv1分别在每个PE并行执行,执行完以后,对所有PE 执行规约求和操作,得到一个输出值yn。这种方法的优点是程序简单,只有一层循环,尤其是当系数长度ν是PE数量P的整数倍时,且向量处理器提供规约求和操作,能够取得较高效的计算性能。但是,存在的缺点是非常明显的(1)向量处理器一般只支持定点加法规约,而浮点加法规约的硬件成本高,一般不支持;( 对于浮点复数滤波数据,由于复数的实部与虚部在不同PE的局部寄存器中,实现复数的乘法和累加困难;(3)当系数ν不是PE数量ρ的整数倍时,难以充分发挥全部PE的并行计算能力,编程控制和软件流水困难,限制了许多FIR的应用。
技术实现思路
本专利技术所要解决的技术问题是针对现有技术存在的问题,本专利技术提供一种原理简单、操作方便、能够高效计算并能缩短整个算法的运算时间、提高处理器计算资源使用效率的面向向量处理器的浮点复数块FIR的向量化实现方法。为解决上述技术问题,本专利技术采用以下技术方案一种面向向量处理器的浮点复数块FIR的向量化实现方法,包括以下步骤(1)输入向量数据X、系数数据h ;将所述向量数据χ的虚部和实部分别连续存放, 将所述系数数据h的虚部和实部分别连续存放;所述向量处理器包括ρ个处理单元;(2)将向量数据χ的实部和虚部、系数数据h的实部和虚部并行加载到向量处理器的同一个处理单元的不同局部寄存器中;(3)所述ρ个处理单元中的每个处理单元在本单元内执行向量数据χ和系数数据 h的复数乘法并将乘法的结果进行累加;个处理单元的计算完成,输出ρ个结果。作为本专利技术的进一步改进所述向量数据χ的实部存放在地址VARl开始的连续区域;输入向量数据χ的虚部存放在地址VAR2开始的连续区域;系数数据h的实部存放在地址VAR3开始的连续区域,并且每个实部重复存储P个;系数数据h的虚部存放在地址VAR4开始的连续区域,并且每个虚部重复存储P个,所述VAR1、VAR2、VAR3和VAR4分别映射到不同的存储体中。与现有技术相比,本专利技术的优点在于1、本专利技术的面向向量处理器的浮点复数块FIR的向量化实现方法,能够适用于各种系数长度的HR计算,不受限于系数长度是否是PE数量的整数倍,不受限于向量处理器是否支持PE间的加法归约,能够充分挖掘向量处理器的指令级和数据级并行性,发挥向量处理器的所有处理单元的并行计算性能,缩短浮点复数块FIR的计算时间,可高效的支持各种系数长度的浮点复数块FIR向量化;2、本专利技术的面向向量处理器的浮点复数块FIR的向量化实现方法,实现简单、成本低廉、操作十分方便、可靠性好;在实现相同功能的情况下,可降低硬件的功耗。附图说明图1是向量处理器的一般结构示意图;图2是本专利技术具体实施例的总流程示意图;图3是本专利技术的向量数据χ和系数数据h的初始存放地址示意图;图4是本专利技术的向量处理器的浮点复数块FIR向量化的伪代码段。具体实施方式以下将结合说明书附图和具体实施例对本专利技术作进一步详细说明。如图2所示,本专利技术的面向向量处理器的浮点复数块FIR的向量化实现方法,包括以下步骤1、输入向量数据X,长度为η ;系数数据h,长度为ν ;将向量数据χ的虚部和实部分别连续存放,将系数数据h的虚部和实部分别连续存放;向量处理器包括P个处理单元,每个处理单元对应多个存储体;如图3所示,向量数据χ的实部存放在地址VARl开始的连续区域;输入向量数据 χ的虚部存放在地址VAR2开始的连续区域;系数数据h的实部存放在地址VAR3开始的连续区域,并且每个实部重复存储ρ个,如图3中的连续ρ个h . r ;系数数据h的虚部存放在地址VAR4开始的连续区域,并且每个虚部重复存储ρ个,即图3中的连续ρ个h W]. i ; VAR1、VAR2、VAR3和VAR4分别映射到不同的存储体中。VAR1、VAR2、VAR3和VAR4的计算方法为图3显示每一行的数据宽度是ρ个字,即 4*ρ字节,假定每个PE对应b个存储体(图1中的bank数量),则与的第1个存储体地址对齐的地址为4p^3*s,其中s是整数。选择合适的整数s使得如邮补是空闲的存储地址。由此确定VARl = 4s*p*b,使得VARl是空闲的,且与的第1个存储体地址对齐。VARl作为输入向量数据χ的实部存放在地址;VAR2作为输入向量数据χ的虚部存放在地址,它与VARl的间隔至少是输入向量数据X的实部数据长度4*n,为确保VARl与VAR2对应到的不同存储体,可选择一定的偏移量 4*! ,即 VAR2 = VARl+4*n+4*m1 = VAR1+4* (n+m》;VAR3作为系数数据h的实部存放在地址,它与VARl的间隔至少是输入向量数据χ 的虚部数据长度4*η,即VAR3 = VAR2+4*n ;VAR4作为系数数据h的虚部存放在地址,它与VAR3的间隔至少是系数数据h的实部数据长度本文档来自技高网
...

【技术保护点】
1.一种面向向量处理器的浮点复数块FIR的向量化实现方法,其特征在于包括以下步骤:(1)输入向量数据x、系数数据h;将所述向量数据x的虚部和实部分别连续存放,将所述系数数据h的虚部和实部分别连续存放;所述向量处理器包括p个处理单元;(2)将向量数据x的实部和虚部、系数数据h的实部和虚部并行加载到向量处理器的同一个处理单元的不同局部寄存器中;(3)所述p个处理单元中的每个处理单元在本单元内执行向量数据x和系数数据h的复数乘法并将乘法的结果进行累加;(4)p个处理单元的计算完成,输出p个结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘仲陈书明郭阳陈跃跃陈海燕龚国辉万江华孙海燕阳柳陈胜刚
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1