一种实现矢量运算的方法和系统的制作方法

文档序号:6423284阅读:323来源:国知局
专利名称:一种实现矢量运算的方法和系统的制作方法
技术领域
本发明涉及芯片设计技术,具体涉及一种实现矢量运算的方法和系统。
背景技术
矢量处理器(vector processor)的最大特点就是能通过多个运算单元对多个数据进行并行运算。这些数据可以是实数,也可以是复数。矢量处理器的一个重要性能指标是数据吞吐率,因此如何在固定数量运算单元的基础上提高数据运算吞吐率,是个很热门的研究课题。传统的矢量运算单元一般支持实数乘加、复数乘加、实数乘累加、复数乘累加,但是不同时支持高效率的快速傅里叶(Fast-Fourier Transform, FFT)蝶形运算。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现矢量运算的方法和系统,以便在兼容实数和复数矢量运算的同时,还能够支持FFT蝶形运算。为达到上述目的,本发明的技术方案是这样实现的一种实现矢量运算的方法,该方法包括通过三阶运算器的组合实现实数和复数矢量运算;其中,所述三阶运算器的第一阶段为两个乘法器,第二阶段为一个加法器,第三阶段为两个具有累加功能的加法器;通过所述三阶运算器实现实数和复数矢量运算的同时,应用所述三阶运算器实现FFT蝶形运算。所述FFT蝶形运算是通过实部运算与虚部运算相结合实现的;其中,Xl = C+AB ;(Ia)X2 = C-AB ;(Ib)其中,A、B和C都是复数矢量,B是旋转因子。所述实部运算的过程包括通过第一阶段的两个乘法器,计算出A的实部Ar与B的实部Br相乘的结果ArBr,以及A的虚部Ai与B的虚部Bi相乘的结果AiBi ;通过第二阶段的加法器计算得到ArBr-AiBi并送入第三阶段的两个加法器,用于与C的实部Cr相加得到蝶形运算中一个分支的实部Cr+(ArBr-AiBi),还用于相减以得到蝶形运算中另一个分支的实部Cr- (ArBr-AiBi);所述虚部运算的过程包括通过第一阶段的两个乘法器,计算出A的实部Ar与B的虚部Bi相乘的结果ArBi,以及A的虚部Ai与B的实部Br相乘的结果AiBr ;通过第二阶段的加法器计算得到ArBi+AiBr并送入第三阶段两个加法器,用于与C的虚部Ci相加得到蝶形运算中一个分支的实部Ci+(ArBi+AiBr),还用于相减以得到蝶形运算中另一个分支的虚部Ci-(ArBi+AiBr)。所述累加,是通过将第三阶段中加法器的输出以循环反馈的方式重新输入该加法器实现的。该方法进一步包括将第二阶段加法器输出端的一个寄存器分别分置到第三阶段两个加法器的输入端;和/或,将第三阶段加法器输出端的两个寄存器分别反馈到第三阶段两个加法器的输入端。一种实现矢量运算的系统,该系统包括三阶运算器,用于通过三阶运算器的组合 实现实数和复数矢量运算;并且,在通过所述三阶运算器实现实数和复数矢量运算的同时,应用所述三阶运算器实现FFT蝶形运算;其中,所述三阶运算器的第一阶段为两个乘法器,第二阶段为一个加法器,第三阶段为两个具有累加功能的加法器。所述三阶运算器,具体用于通过实部运算与虚部运算相结合实现所述FFT蝶形运算;其中,Xl = C+AB ;(Ia)X2 = C-AB ;(Ib)其中,A、B和C都是复数矢量,B是旋转因子。所述三阶运算器在进行实部运算时,具体用于通过第一阶段的两个乘法器,计算出A的实部Ar与B的实部Br相乘的结果ArBr,以及A的虚部Ai与B的虚部Bi相乘的结果AiBi ;通过第二阶段的加法器计算得到ArBr-AiBi并送入第三阶段的两个加法器,用于与C的实部Cr相加得到蝶形运算中一个分支的实部Cr+(ArBr-AiBi),还用于相减以得到蝶形运算中另一个分支的实部Cr- (ArBr-AiBi);所述三阶运算器在进行虚部运算时,具体用于通过第一阶段的两个乘法器,计算出A的实部Ar与B的虚部Bi相乘的结果ArBi,以及A的虚部Ai与B的实部Br相乘的结果AiBr ;通过第二阶段的加法器计算得到ArBi+AiBr并送入第三阶段两个加法器,用于与C的虚部Ci相加得到蝶形运算中一个分支的实部Ci+(ArBi+AiBr),还用于相减以得到蝶形运算中另一个分支的虚部Ci-(ArBi+AiBr)。所述三阶运算器的第三阶段,具体用于将其中加法器的输出以循环反馈的方式重新输入所述加法器,以实现所述累加。所述第二阶段的加法器输出端的一个寄存器分别分置到第三阶段两个加法器的输入端;和/或,所述第三阶段的加法器输出端的两个寄存器分别反馈到第三阶段两个加法器的输入端。本发明实现矢量运算的方法和系统,能够兼容实数和复数矢量运算,并同时支持高效率的FFT蝶形运算。


图I为本发明一实施例的矢量运算单元原理示意图;图2为本发明实施例中FFT蝶形运算的实部运算原理示意图;图3为本发明实施例中FFT蝶形运算的虚部运算原理示意图;图4为本发明又一实施例的矢量运算单元原理示意图;图5为本发明另一实施例的矢量运算单元原理示意图;图6为本发明实施例实现矢量运算的流程简图。
具体实施例方式为了使矢量运算单元在兼容实数和复数矢量运算的同时还支持高效率的快速傅里叶蝶形运算,可以进行如图I所示的设置。为了简化描述,图中只显示矢量运算单元用了三阶来实现。在实际的硬件设计与实现里,矢量运算单元可以采用不同的阶数来实现,其所需要的实现阶数取决于其最高操作频率和所采用的工艺。具体而言,矢量运算单元的第一阶段为两个乘法器,第二阶段为一个加法器,第三阶段为两个具有累加功能的加法器,通过三阶运算器不同组合方式,可以兼容实数和复数矢量运算,并同时支持高效率的快速傅里叶蝶形运算。在图I所示的矢量运算单元中,第一阶段有两个乘法器,第二阶段有一个加法器,第三阶段有两个加法器。该运算单元有六个输An :X0、Y0、Z0、X1、Y1、Z1,以及两个输出口 out0, OUtlo表I显示矢量运算单元实现的矢量函数。在实部运算中,A0、Al为矢量A中的两个单元数据。B0、BI为矢量B中的两个单元数据。在复数运算中,Ar+jAi为矢量A的一个复数单元,Br+jBi为矢量B的一个复数单元,C = Cr+jCi为矢量C的一个复数单元。另外,在进行某些复数运算时(如乘法,复数乘加,复数乘累加),图I显示的矢量运算单元只能进行实部或者虚部运算。即在进行这些复数运算时,我们需要两个这种运算单元来完成一个完整复数单元运算。权利要求
1.一种实现矢量运算的方法,其特征在于,该方法包括 通过三阶运算器的组合实现实数和复数矢量运算;其中,所述三阶运算器的第一阶段为两个乘法器,第二阶段为一个加法器,第三阶段为两个具有累加功能的加法器; 通过所述三阶运算器实现实数和复数矢量运算的同时,应用所述三阶运算器实现FFT蝶形运算。
2.根据权利要求I所述的方法,其特征在于,所述FFT蝶形运算是通过实部运算与虚部运算相结合实现的; 其中, Xl = C+AB ;(Ia) X2 = C-AB ;(Ib) 其中,A、B和C都是复数矢量,B是旋转因子。
3.根据权利要求2所述的方法,其特征在于, 所述实部运算的过程包括 通过第一阶段的两个乘法器,计算出A的实部Ar与B的实部Br相乘的结果ArBr,以及A的虚部Ai与B的虚部Bi相乘的结果AiBi ;通过第二阶段的加法器计算得到ArBr-AiBi并送入第三阶段的两个加法器,用于与C的实部Cr相加得到蝶形运算中一个分支的实部Cr+ (ArBr-AiBi),还用于相减以得到蝶形运算中另一个分支的实部Cr-(ArBr-AiBi); 所述虚部运算的过程包括 通过第一阶段的两个乘法器,计算出A的实部Ar与B的虚部Bi相乘的结果ArBi,以及A的虚部Ai与B的实部Br相乘的结果AiBr ;通过第二阶段的加法器计算得到ArBi+AiBr并送入第三阶段两个加法器,用于与C的虚部Ci相加得到蝶形运算中一个分支的实部Ci+(ArBi+AiBr),还用于相减以得到蝶形运算中另一个分支的虚部Ci-(ArBi+AiBr)。
4.根据权利要求I至3任一项所述的方法,其特征在于,所述累加,是通过将第三阶段中加法器的输出以循环反馈的方式重新输入该加法器实现的。
5.根据权利要求4所述的方法,其特征在于,该方法进一步包括 将第二阶段加法器输出端的一个寄存器分别分置到第三阶段两个加法器的输入端;和/或, 将第三阶段加法器输出端的两个寄存器分别反馈到第三阶段两个加法器的输入端。
6.一种实现矢量运算的系统,其特征在于,该系统包括三阶运算器,用于通过三阶运算器的组合实现实数和复数矢量运算;并且,在通过所述三阶运算器实现实数和复数矢量运算的同时,应用所述三阶运算器实现FFT蝶形运算;其中, 所述三阶运算器的第一阶段为两个乘法器,第二阶段为一个加法器,第三阶段为两个具有累加功能的加法器。
7.根据权利要求6所述的系统,其特征在于,所述三阶运算器,具体用于通过实部运算与虚部运算相结合实现所述FFT蝶形运算; 其中, Xl = C+AB ;(Ia) X2 = C-AB ;(Ib) 其中,A、B和C都是复数矢量,B是旋转因子。
8.根据权利要求7所述的系统,其特征在于, 所述三阶运算器在进行实部运算时,具体用于 通过第一阶段的两个乘法器,计算出A的实部Ar与B的实部Br相乘的结果ArBr,以及A的虚部Ai与B的虚 部Bi相乘的结果AiBi ;通过第二阶段的加法器计算得到ArBr-AiBi并送入第三阶段的两个加法器,用于与C的实部Cr相加得到蝶形运算中一个分支的实部Cr+(ArBr-AiBi),还用于相减以得到蝶形运算中另一个分支的实部Cr-(ArBr-AiBi);所述三阶运算器在进行虚部运算时,具体用于 通过第一阶段的两个乘法器,计算出A的实部Ar与B的虚部Bi相乘的结果ArBi,以及A的虚部Ai与B的实部Br相乘的结果AiBr ;通过第二阶段的加法器计算得到ArBi+AiBr并送入第三阶段两个加法器,用于与C的虚部Ci相加得到蝶形运算中一个分支的实部Ci+(ArBi+AiBr),还用于相减以得到蝶形运算中另一个分支的虚部Ci-(ArBi+AiBr)。
9.根据权利要求6至8任一项所述的系统,其特征在于,所述三阶运算器的第三阶段,具体用于将其中加法器的输出以循环反馈的方式重新输入所述加法器,以实现所述累加。
10.根据权利要求9所述的系统,其特征在于, 所述第二阶段的加法器输出端的一个寄存器分别分置到第三阶段两个加法器的输入端;和/或, 所述第三阶段的加法器输出端的两个寄存器分别反馈到第三阶段两个加法器的输入端。
全文摘要
本发明公开了一种实现矢量运算的方法和系统,均可通过三阶运算器的组合实现实数和复数矢量运算;其中,所述三阶运算器的第一阶段为两个乘法器,第二阶段为一个加法器,第三阶段为两个具有累加功能的加法器;通过所述三阶运算器实现实数和复数矢量运算的同时,应用所述三阶运算器实现FFT蝶形运算。本发明实现矢量运算的技术能够兼容实数和复数矢量运算,并同时支持高效率的快速傅里叶蝶形运算。所述实数和复数运算包括复数实数乘、加、乘加、乘累加等。由于在每个时钟能产生半个FFT蝶形,因此两个这种矢量运算单元每个时钟就能产生一个完整FFT蝶形。
文档编号G06F17/14GK102760117SQ201110108880
公开日2012年10月31日 申请日期2011年4月28日 优先权日2011年4月28日
发明者华力, 林文琼, 黎立煌 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1