CN104462016A - 一种矢量运算核以及矢量处理器 - Google Patents

一种矢量运算核以及矢量处理器 Download PDF

Info

Publication number
CN104462016A
CN104462016A CN201310433489.7A CN201310433489A CN104462016A CN 104462016 A CN104462016 A CN 104462016A CN 201310433489 A CN201310433489 A CN 201310433489A CN 104462016 A CN104462016 A CN 104462016A
Authority
CN
China
Prior art keywords
data
operation result
input
selector switch
output terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310433489.7A
Other languages
English (en)
Other versions
CN104462016B (zh
Inventor
华力
林文琼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201310433489.7A priority Critical patent/CN104462016B/zh
Priority to US15/023,617 priority patent/US9910671B2/en
Priority to PCT/CN2014/077914 priority patent/WO2015039452A1/zh
Priority to EP14846444.9A priority patent/EP3048538B1/en
Publication of CN104462016A publication Critical patent/CN104462016A/zh
Application granted granted Critical
Publication of CN104462016B publication Critical patent/CN104462016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30061Multi-way branch instructions, e.g. CASE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Discrete Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种矢量运算核和矢量处理器,矢量运算核采用两个三输入加法器与四个数据取反器,使输入加法器的数据能够灵活地取反。矢量处理器中除了设有上述的矢量运算核外,还包括控制单元,控制矢量运算核中的选择器和取反器,本发明的矢量处理器可以实现同时支持基2,基3,基5快速傅里叶里种的蝴蝶运算。本发明的矢量运算核可以广泛应用于多模兼容的移动终端芯片中的可编程矢量处理器设计中。

Description

一种矢量运算核以及矢量处理器
技术领域:
本发明属于芯片设计中的矢量处理器(vector processor)领域,具体涉及一种实现快速傅里叶(Fast-Fourier Transform)中的蝴蝶运算的矢量运算器。
背景技术:
目前通信协议有GSM、UMTS、WLAN、TD-SCDMA和LTE等等多种模式,采用原有的ASIC设计方法来实现多模兼容的移动终端芯片必然面临面积大且缺乏灵活性等等缺点。当前的SDR(软件无线电software-definedradio)技术是解决目前多模通信终端芯片设计问题的极具潜力的技术。可编程矢量处理器(programmable vector processor)是SDR技术的核心架构。为了支持多模基带的处理,矢量处理器必须能每秒执行数G操作,并且作为移动终端需要满足功耗在几百mW左右。
其中的运算单元是矢量处理器的核心运算部分,其性能决定了整个处理器性能,其功耗也占到处理器近一半的功耗,其设计和实现非常关键。
矢量运算器可以有很多结构,可以实现一般乘法、加法、乘加,还可以实现复数乘法、加法、乘加,以及特定快速傅里叶的蝴蝶运算,这些都取决于矢量运算器的结构。但是现有一般的方案都只能进行基2快速傅里叶中的蝴蝶运算,无法直接完成基3快速傅里叶中的蝴蝶运算。或者可以通过多组复数加与复数累加的指令组合来完成基3快速傅里叶中的蝴蝶运算,但是增加了指令的数量,运算效率较低,同时也提高了编程的难度,编程效率也大大降低。分析上述现有技术主要原因是在于传统的矢量运算器在进行复数的蝶形运算时,不能灵活地对乘法结果进行取反运算,使得每条蝶形支路只能进行固定的乘加或乘减,所以只能完成基2快速傅里叶里的蝴蝶运算。
发明内容:
本发明解决的技术问题之一是提出了一种矢量运算核,可以灵活的实现各种蝴蝶运算。
本发明解决的技术问题之一是提出了一种矢量处理器,可以实现同时支持基2,基3,基5快速傅里叶中的蝴蝶运算。
本发明提出的矢量运算核,包括:第一运算支路和第二运算支路;所述第一运算支路包括:输入端1、2、3,乘法器7,二选一选择器9,取反器11、12,三输入加法器15和输出端17;所述第二运算支路包括:输入端4、5、6,乘法器8,二选一选择器10,取反器13、14,三输入加法器16和输出端18;所述取反器11、12、13、14用于控制其输出数据的符号;输入端1的数据输入到选择器9的一个选择输入端上,输入端2、3的数据输入到乘法器7的两个输入端上,乘法器7的输出数据分成两个支路分别输入到取反器11、13的输入端上;输入端6的数据输入到选择器10的一个选择输入端上,输入端4、5的数据输入到乘法器8的两个输入端上,乘法器8的输出数据分成两个支路分别输入到取反器12、14的输入端上;选择器9,取反器11、12的输出数据分别输入到加法器15的三个输入端上;选择器10,取反器13、14的输出数据分别输入到加法器16的三个输入端上;加法器15的输出数据分成两个支路分别输入到输出端17上和选择器9的另一个选择输入端上;加法器16的输出数据分成两个支路分别输入到输出端18上和选择器10的另一个选择输入端上。
进一步的,在输入端1和选择器9之间,输入端6和选择器10之间分别设有一个寄存器;在乘法器7、8的输出端,加法器15、16的输出端上分别设有一个寄存器。
本发明提出的本发明提出的矢量处理器,包括:控制单元以及上述的矢量运算核;所述控制单元用于控制所述矢量运算核中的选择器9、10的输入有效端,还用于控制所述矢量运算核中的取反器11、12、13、14的输出数据符号。
采用本发明的矢量运算核与现有的矢量运算核相比,由于少用了一个两输入加法器,将两个两输入加法器用三输入加法器替换,使得芯片的面积与功耗方面均有所减少。采用本发明的矢量处理器可以同时支持基2,基3,基5快速傅里叶中的蝴蝶运算;在同时计算基2蝴蝶运算的两条支路时,由于将乘法运算的次数减少一半,大大降低了电路功耗。
附图说明:
图1是现有技术中的一种矢量运算核的原理框图;
图2是现有技术中的另一种矢量运算核的原理框图;
图3是本发明提出的矢量运算核的原理框图;
图4是本发明基2快速傅里叶运算的实部运算图;
图5是本发明基2快速傅里叶运算的虚部运算图;
图6a是本发明基3快速傅里叶运算的实部运算第一次运算图;
图6b是本发明基3快速傅里叶运算的实部运算第二次运算图;
图7a是本发明基3快速傅里叶运算的虚部运算第一次运算图;
图7b是本发明基3快速傅里叶运算的虚部运算第二次运算图;
图8a是本发明基5快速傅里叶运算的X2,X3实部运算第一次运算图;
图8b是本发明基5快速傅里叶运算的X2,X3实部运算第二次运算图;
图8c是本发明基5快速傅里叶运算的X2,X3实部运算第三次运算图;
图8d是本发明基5快速傅里叶运算的X2,X3实部运算第四次运算图;
图9a是本发明基5快速傅里叶运算的X2,X3虚部运算第一次运算图;
图9b是本发明基5快速傅里叶运算的X2,X3虚部运算第二次运算图;
图9c是本发明基5快速傅里叶运算的X2,X3虚部运算第三次运算图;
图9d是本发明基5快速傅里叶运算的X2,X3虚部运算第四次运算图;
图10a是本发明基5快速傅里叶运算的X4,X5实部运算第一次运算图;
图10b是本发明基5快速傅里叶运算的X4,X5实部运算第二次运算图;
图10c是本发明基5快速傅里叶运算的X4,X5实部运算第三次运算图;
图10d是本发明基5快速傅里叶运算的X4,X5实部运算第四次运算图;
图11a是本发明基5快速傅里叶运算的X4,X5虚部运算第一次运算图;
图11b是本发明基5快速傅里叶运算的X4,X5虚部运算第二次运算图;
图11c是本发明基5快速傅里叶运算的X4,X5虚部运算第三次运算图;
图11d是本发明基5快速傅里叶运算的X4,X5虚部运算第四次运算图。
具体实施方式:
下面结合附图,并通过具体实施例详细说明本发明技术方案的实现方式。
图1为现有技术中的一种矢量运算核的架构,该架构为传统的矢量运算核架构,由两个乘法器和两个加法器组成。图2为现有技术中另一种矢量运算核的架构,该矢量运算核由两个乘法器和三个加法器组成。这两种现有的矢量运算核构建的矢量处理器都没有办法同时实现支持基2,基3,基5快速傅里叶中的蝴蝶运算。
图3为本发明提出的矢量运算核架构,采用两个三输入加法器与四个数据取反器,使输入加法器的数据能够灵活地取反,用该矢量运算核构建的矢量处理器可以实现同时支持基2,基3,基5快速傅里叶里种的蝴蝶运算。图3显示了矢量运算核的基本架构。为了简化描述,图中只显示该运算核用了两阶来实现,即分成3级流水线实现。在实际的硬件实现时,该运算核可以采用不同的阶数来实现。其所需要的实现阶数取决于其最高操作频率和所采用的工艺,比如时钟频率要求800M,那么该运算核用三阶,即分成4级流水线实现,而假如时钟频率要求200M,那么该运算核就可以分成1级流水线实现。即根据时钟频率要求划分流水阶数,本申请只是以3级流水线为例子进行说明。
如图3所示,矢量运算核中包括第一运算支路和第二运算支路。其中第一运算支路包括:输入端1、2、3,乘法器7,二选一选择器9,取反器11、12,三输入加法器15和输出端17;第二运算支路包括:输入端4、5、6,乘法器8,二选一选择器10,取反器13、14,三输入加法器16和输出端18。取反器11、12、13、14可以根据运算的需要灵活的进行取反操作。
输入端1的数据输入到选择器9的一个选择输入端上,输入端2、3的数据输入到乘法器7的两个输入端上,乘法器7的输出数据分成两个支路分别输入到取反器11、13的输入端上;输入端6的数据输入到选择器10的一个选择输入端上,输入端4、5的数据输入到乘法器8的两个输入端上,乘法器8的输出数据分成两个支路分别输入到取反器12、14的输入端上;选择器9,取反器11、12的输出数据分别输入到加法器15的三个输入端上;选择器10,取反器13、14的输出数据分别输入到加法器16的三个输入端上;加法器15的输出数据分成两个支路分别输入到输出端17上和选择器9的另一个选择输入端上;加法器16的输出数据分成两个支路分别输入到输出端18上和选择器10的另一个选择输入端上。
在一种实施例中,在输入端1和选择器9之间,输入端6和选择器10之间分别设有一个寄存器;在乘法器7、8的输出端,加法器15、16的输出端上分别设有一个寄存器。如图3所示,共设置了6个寄存器。
上述的矢量运算核可以作为矢量处理器的核心运算部分,此时矢量处理器至少包括:控制单元以及权利要求1或2所述的矢量运算核;控制单元用于控制矢量运算核中的选择器9、10的输入有效端,还用于控制矢量运算核中的取反器11、12、13、14的输出数据符号。由于矢量运算核的功耗一般占到矢量处理器近一半,由于上述矢量运算核减少了运算次数和运算器件,所以采用了上述矢量运算核的矢量处理器的功耗将大大降低。
以下分别以基2,基3,基5快速傅里叶中的蝴蝶运算为例,具体说明本发明矢量处理器的运算处理过程:
一、基2快速傅里叶中的蝴蝶运算实现
基2FFT蝴蝶运算可以描述如下:
X1=C+AB    (1a)
X2=C-AB    (1b)
其中,A,B和C都是复数矢量,B是旋转因子,X1,X2为基2快速傅里叶蝴蝶运算输出矢量。
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
X1=X1r+j X1i
X2=X2r+j X2i
则公式(1a)、(1b)可改写为:
X1r=Cr+[Ar*Br–Ai*Bi]
X2r=Cr-[Ar*Br–Ai*Bi]    (2)
X1i=Ci+[Ar*Bi+Ai*Br]
X2i=Ci-[Ar*Bi+Ai*Br]    (3)
其中公式(2)为X1、X2的实部运算式,公式(3)为X1、X2的虚部运算式。
如图4所示的实部运算图,图中实线标示数据流向,输入端1、2、3、4、5、6分别输入Cr、Ar、Br、Ai、Bi、Cr数据,取反器11、14控制其输出数据的符号为正,取反器12、13控制其输出数据的符号为负,选择器9选择输入端1的数据输入有效,选择器10选择输入端6的数据输入有效,输出端17输出X1的实部运算结果X1r,输出端18输出X2的实部运算结果X2r。
如图5所示的虚部运算图,图中实线标示数据流向,输入端1、2、3、4、5、6分别输入Ci、Ar、Bi、Ai、Br、Ci数据,取反器11、12控制其输出数据的符号为正,取反器13、14控制其输出数据的符号为负,选择器9选择输入端1的数据输入有效,选择器10选择输入端6的数据输入有效,输出端17输出X1的虚部运算结果X1i,输出端18输出X2的虚部运算结果X2i。
二、基3快速傅里叶中的蝴蝶运算实现
基3FFT蝴蝶运算可以描述如下:
X1=A+B+C                  (4a)
X2=A+B*w1+C*w2               (4b)
X3=A+B*conj(w1)+C*conj(w2)   (4c)
其中,A,B和C都是复数矢量,w1,w2是旋转因子,X1,X2,X3为基3快速傅里叶蝴蝶运算输出矢量。
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
W1=W1r+j W1i
W2=W2r+j W2i
X1=X1r+j X1i
X2=X2r+j X2i
X3=X3r+j X3i
则(4a)、(4b)、(4c)可改写为:
X1r=Ar+Br+Cr
X1i=Ai+Bi+Ci    (5)
X2r=Ar+[Br*W1r–Bi*W1i]+[Cr*W2r-Ci*W2i]
X3r=Ar+[Br*W1r+Bi*W1i]+[Cr*W2r+Ci*W2i]    (6)
X2i=Ai+[Br*W1i+Bi*W1r]+[Cr*W2i+Ci*W2r]
X3i=Ai+[-Br*W1i+Bi*W1r]+[-Cr*W2i+Ci*W2r]    (7)
式(5)的实现可以通过加法和累加指令完成,本发明的优化主要针对式(6),式(7)。
如图6所示的实部运算中包括两次运算过程,图6a为第一次运算图,图6b为第二次运算图,图中实线标示数据流向。第一次运算中输入端1、2、3、4、5、6分别输入Ar、Br、W1r、Bi、W1i、Ar数据,取反器11、13、14控制其输出数据的符号为正,取反器12控制其输出数据的符号为负,选择器9选择输入端1的数据输入有效,选择器10选择输入端6的数据输入有效,输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W2r、Ci、W2i数据,取反器11、13、14控制其输出数据的符号为正,取反器12控制其输出数据的符号为负,选择器9选择输出端17第一次运算中输出的运算结果输入有效,选择器10选择输出端18第一次运算中输出的运算结果输入有效;输出端17输出的第二次运算结果作为X2的实部运算结果X2r,输出端18输出的第二次运算结果作为X3的实部运算结果X3r。
如图7所示的虚部运算中包括两次运算过程,图7a为第一次运算图,图7b为第二次运算图。第一次运算中输入端1、2、3、4、5、6分别输入Ai、Br、W1i、Bi、W1r、Ai数据,取反器11、12、14控制其输出数据的符号为正,取反器13控制其输出数据的符号为负,选择器9选择输入端1的数据输入有效,选择器10选择输入端6的数据输入有效,输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W2i、Ci、W2r数据,取反器11、12、14控制其输出数据的符号为正,取反器13控制其输出数据的符号为负,选择器9选择输出端17第一次运算中输出的运算结果输入有效,选择器10选择输出端18第一次运算中输出的运算结果输入有效;输出端17输出的第二次运算结果作为X2的虚部运算结果X2i,输出端18输出的第二次运算结果作为X3的虚部运算结果X3i。
三、基5快速傅里叶中的蝴蝶运算实现
基5FFT蝴蝶运算可以描述如下:
X1=A+B+C+D+E    (8a)
X2=A+B*w1+C*w2+D*w3+E*w4
(8b)
X3=A+B*conj(w1)+C*conj(w2)+D*conj(w3)+E*conj(w4)
(8c)
X4=A+B*w3+C*w1+D*w4+E*w2
(8d)
X5=A+B*conj(w3)+C*conj(w1)+D*conj(w4)+E*conj(w2)
(8e)
其中,A,B,C,D和E都是复数矢量,w1,w2,w3,w4是旋转因子,X1,X2,X3,X4,X5为基5快速傅里叶蝴蝶运算输出矢量。
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
D=Dr+j Di
E=Er+j Ei
W1=W1r+j W1i
W2=W2r+j W2i
W3=W3r+j W3i
W4=W4r+j W4i
X1=X1r+j X1i
X2=X2r+j X2i
X3=X3r+j X3i
X4=X4r+j X4i
X5=X5r+j X5i
则公式(8a)、(8b)、(8c)、(8d)、(8e)可改写为:
X1r=Ar+Br+Cr+Dr+Er
X1i=Ai+Bi+Ci+Di+Ei
(9)
X2r=Ar+[Br*W1r–Bi*W1i]+[Cr*W2r-Ci*W2i]
+[Dr*W3r–Di*W3i]+[Er*W4r-Ei*W4i]
X3r=Ar+[Br*W1r+Bi*W1i]+[Cr*W2r+Ci*W2i]
+[Dr*W3r+Di*W3i]+[Er*W4r+Ei*W4i]
(10)
X2i=Ai+[Br*W1i+Bi*W1r]+[Cr*W2i+Ci*W2r]
+[Dr*W3i+Di*W3r]+[Er*W4i+Ei*W4r]
X3i=Ai+[-Br*W1i+Bi*W1r]+[-Cr*W2i+Ci*W2r]
+[-Dr*W3i+Di*W3r]+[-Er*W4i+Ei*W4r]
(11)
X4r=Ar+[Br*W3r–Bi*W3i]+[Cr*W1r-Ci*W1i]
+[Dr*W4r–Di*W4i]+[Er*W2r-Ei*W2i]
X5r=Ar+[Br*W3r+Bi*W3i]+[Cr*W1r+Ci*W1i]
+[Dr*W4r+Di*W4i]+[Er*W2r+Ei*W2i]
(12)
X4i=Ai+[Br*W3i+Bi*W3r]+[Cr*W1i+Ci*W1r]
+[Dr*W4i+Di*W4r]+[Er*W2i+Ei*W2r]
X5i=Ai+[-Br*W3i+Bi*W3r]+[-Cr*W1i+Ci*W1r]
+[-Dr*W4i+Di*W4r]+[-Er*W2i+Ei*W2r]
(13)
由式(9),(10),(11),(12),(13)可以看出,其处理的方式与式(5),(6),(7)类似。具体的处理过程:式(9)采用加法和累加指令完成。
式(10)处理见图8,包括四次运算,分别为运算图图8a、图8b、图8c和图8d,图中实线标示数据流向。第一次运算中输入端1、2、3、4、5、6分别输入Ar、Br、W1r、Bi、W1i、Ar数据,取反器11、13、14控制其输出数据的符号为正,取反器12控制其输出数据的符号为负,选择器9选择输入端1的数据输入有效,选择器10选择输入端6的数据输入有效,输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W2r、Ci、W2i数据,取反器11、13、14控制其输出数据的符号为正,取反器12控制其输出数据的符号为负,选择器9选择输出端17第一次运算中输出的运算结果输入有效,选择器10选择输出端18第一次运算中输出的运算结果输入有效,输出端17输出的运算结果作为第三次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第三次运算中选择器10的数据选择输入;第三次运算中输入端2、3、4、5分别输入Dr、W3r、Di、W3i数据,取反器11、13、14控制其输出数据的符号为正,取反器12控制其输出数据的符号为负,选择器9选择输出端17第二次运算中输出的运算结果输入有效,选择器10选择输出端18第二次运算中输出的运算结果输入有效,输出端17输出的运算结果作为第四次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第四次运算中选择器10的数据选择输入;第四次运算中输入端2、3、4、5分别输入Er、W4r、Ei、W4i数据,取反器11、13、14控制其输出数据的符号为正,取反器12控制其输出数据的符号为负,选择器9选择输出端17第三次运算中输出的运算结果输入有效,选择器10选择输出端18第三次运算中输出的运算结果输入有效;输出端17输出的第四次运算结果作为X2的实部运算结果X2r,输出端18输出的第四次运算结果作为X3的实部运算结果X3r。
式(11)处理见图9,包括四次运算,分别为运算图图8a、图8b、图8c和图8d,图中实线标示数据流向。第一次运算中输入端1、2、3、4、5、6分别输入Ai、Br、W1i、Bi、W1r、Ai数据,取反器11、12、14控制其输出数据的符号为正,取反器13控制其输出数据的符号为负,选择器9选择输入端1的数据输入有效,选择器10选择输入端6的数据输入有效,输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W2i、Ci、W2r数据,取反器11、12、14控制其输出数据的符号为正,取反器13控制其输出数据的符号为负,选择器9选择输出端17第一次运算中输出的运算结果输入有效,选择器10选择输出端18第一次运算中输出的运算结果输入有效,输出端17输出的运算结果作为第三次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第三次运算中选择器10的数据选择输入;第三次运算中输入端2、3、4、5分别输入Dr、W3i、Di、W3r数据,取反器11、12、14控制其输出数据的符号为正,取反器13控制其输出数据的符号为负,选择器9选择输出端17第二次运算中输出的运算结果输入有效,选择器10选择输出端18第二次运算中输出的运算结果输入有效,输出端17输出的运算结果作为第四次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第四次运算中选择器10的数据选择输入;第四次运算中输入端2、3、4、5分别输入Er、W4i、Ei、W4r数据,取反器11、12、14控制其输出数据的符号为正,取反器13控制其输出数据的符号为负,选择器9选择输出端17第三次运算中输出的运算结果输入有效,选择器10选择输出端18第三次运算中输出的运算结果输入有效;输出端17输出的第四次运算结果作为X2的虚部运算结果X2i,输出端18输出的第四次运算结果作为X3的虚部运算结果X3i。
式(12)处理见图10,包括四次运算,分别为运算图图8a、图8b、图8c和图8d,图中实线标示数据流向。第一次运算中输入端1、2、3、4、5、6分别输入Ar、Br、W3r、Bi、W3i、Ar数据,取反器11、13、14控制其输出数据的符号为正,取反器12控制其输出数据的符号为负,选择器9选择输入端1的数据输入有效,选择器10选择输入端6的数据输入有效,输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W1r、Ci、W1i数据,取反器11、13、14控制其输出数据的符号为正,取反器12控制其输出数据的符号为负,选择器9选择输出端17第一次运算中输出的运算结果输入有效,选择器10选择输出端18第一次运算中输出的运算结果输入有效,输出端17输出的运算结果作为第三次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第三次运算中选择器10的数据选择输入;第三次运算中输入端2、3、4、5分别输入Dr、W4r、Di、W4i数据,取反器11、13、14控制其输出数据的符号为正,取反器12控制其输出数据的符号为负,选择器9选择输出端17第二次运算中输出的运算结果输入有效,选择器10选择输出端18第二次运算中输出的运算结果输入有效,输出端17输出的运算结果作为第四次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第四次运算中选择器10的数据选择输入;第四次运算中输入端2、3、4、5分别输入Er、W2r、Ei、W2i数据,取反器11、13、14控制其输出数据的符号为正,取反器12控制其输出数据的符号为负,选择器9选择输出端17第三次运算中输出的运算结果输入有效,选择器10选择输出端18第三次运算中输出的运算结果输入有效;输出端17输出的第四次运算结果作为X4的实部运算结果X4r,输出端18输出的第四次运算结果作为X5的实部运算结果X5r。
式(13)处理见图11,包括四次运算,分别为运算图图8a、图8b、图8c和图8d,图中实线标示数据流向。第一次运算中输入端1、2、3、4、5、6分别输入Ai、Br、W3i、Bi、W3r、Ai数据,取反器11、12、14控制其输出数据的符号为正,取反器13控制其输出数据的符号为负,选择器9选择输入端1的数据输入有效,选择器10选择输入端6的数据输入有效,输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W1i、Ci、W1r数据,取反器11、12、14控制其输出数据的符号为正,取反器13控制其输出数据的符号为负,选择器9选择输出端17第一次运算中输出的运算结果输入有效,选择器10选择输出端18第一次运算中输出的运算结果输入有效,输出端17输出的运算结果作为第三次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第三次运算中选择器10的数据选择输入;第三次运算中输入端2、3、4、5分别输入Dr、W4i、Di、W4r数据,取反器11、12、14控制其输出数据的符号为正,取反器13控制其输出数据的符号为负,选择器9选择输出端17第二次运算中输出的运算结果输入有效,选择器10选择输出端18第二次运算中输出的运算结果输入有效,输出端17输出的运算结果作为第四次运算中选择器9的数据选择输入,输出端18输出的运算结果作为第四次运算中选择器10的数据选择输入;第四次运算中输入端2、3、4、5分别输入Er、W2i、Ei、W2r数据,取反器11、12、14控制其输出数据的符号为正,取反器13控制其输出数据的符号为负,选择器9选择输出端17第三次运算中输出的运算结果输入有效,选择器10选择输出端18第三次运算中输出的运算结果输入有效;输出端17输出的第四次运算结果作为X4的虚部运算结果X4i,输出端18输出的第四次运算结果作为X5的虚部运算结果X5i。
以上所述实施例,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种矢量运算核,其特征在于,包括:第一运算支路和第二运算支路;所述第一运算支路包括:输入端1、2、3,乘法器7,二选一选择器9,取反器11、12,三输入加法器15和输出端17;所述第二运算支路包括:输入端4、5、6,乘法器8,二选一选择器10,取反器13、14,三输入加法器16和输出端18;所述取反器11、12、13、14用于控制其输出数据的符号;
输入端1的数据输入到选择器9的一个选择输入端上,输入端2、3的数据输入到乘法器7的两个输入端上,乘法器7的输出数据分成两个支路分别输入到取反器11、13的输入端上;输入端6的数据输入到选择器10的一个选择输入端上,输入端4、5的数据输入到乘法器8的两个输入端上,乘法器8的输出数据分成两个支路分别输入到取反器12、14的输入端上;选择器9,取反器11、12的输出数据分别输入到加法器15的三个输入端上;选择器10,取反器13、14的输出数据分别输入到加法器16的三个输入端上;加法器15的输出数据分成两个支路分别输入到输出端17上和选择器9的另一个选择输入端上;加法器16的输出数据分成两个支路分别输入到输出端18上和选择器10的另一个选择输入端上。
2.根据权利要求1所述的矢量运算核,其特征在于,在输入端1和选择器9之间,输入端6和选择器10之间分别设有一个寄存器;在乘法器7、8的输出端,加法器15、16的输出端上分别设有一个寄存器。
3.一种矢量处理器,其特征在于,包括:控制单元以及权利要求1或2所述的矢量运算核;所述控制单元用于控制所述矢量运算核中的选择器9、10的输入有效端,还用于控制所述矢量运算核中的取反器11、12、13、14的输出数据符号。
4.根据权利要求3所述的矢量处理器,当用于实现以下的基2快速傅里叶蝴蝶运算的实部运算时:
X1=C+AB
X2=C-AB
其中,A,B和C都是复数矢量,B是旋转因子,X1,X2为基2快速傅里叶蝴蝶运算输出矢量;进行实部虚部分解后,
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
X1=X1r+j X1i
X2=X2r+j X2i
X1、X2的实部运算结果为,
X1r=Cr+[Ar*Br–Ai*Bi]
X2r=Cr-[Ar*Br–Ai*Bi],
其特征在于,输入端1、2、3、4、5、6分别输入Cr、Ar、Br、Ai、Bi、Cr数据,所述取反器11、14控制其输出数据的符号为正,所述取反器12、13控制其输出数据的符号为负,所述选择器9选择输入端1的数据输入有效,所述选择器10选择输入端6的数据输入有效,所述输出端17输出X1的实部运算结果X1r,所述输出端18输出X2的实部运算结果X2r。
5.根据权利要求3或4所述的矢量处理器,当用于实现以下的基2快速傅里叶蝴蝶运算的虚部运算时:
X1=C+AB
X2=C-AB
其中,A,B和C都是复数矢量,B是旋转因子,X1,X2为基2快速傅里叶蝴蝶运算输出矢量;进行实部虚部分解后,
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
X1=X1r+j X1i
X2=X2r+j X2i
X1、X2的虚部运算结果为,
X1i=Ci+[Ar*Bi+Ai*Br]
X2i=Ci-[Ar*Bi+Ai*Br],
其特征在于,输入端1、2、3、4、5、6分别输入Ci、Ar、Bi、Ai、Br、Ci数据,所述取反器11、12控制其输出数据的符号为正,所述取反器13、14控制其输出数据的符号为负,所述选择器9选择输入端1的数据输入有效,所述选择器10选择输入端6的数据输入有效,所述输出端17输出X1的虚部运算结果X1i,所述输出端18输出X2的虚部运算结果X2i。
6.根据权利要求3所述的矢量处理器,当用于实现以下的基3快速傅里叶蝴蝶运算的X2、X3实部运算时:
X1=A+B+C
X2=A+B*w1+C*w2
X3=A+B*conj(w1)+C*conj(w2)
其中,A,B和C都是复数矢量,w1,w2是旋转因子,X1,X2,X3为基3快速傅里叶蝴蝶运算输出矢量;进行实部虚部分解后,
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
W1=W1r+j W1i
W2=W2r+j W2i
X1=X1r+j X1i
X2=X2r+j X2i
X3=X3r+j X3i
X1、X2、X3的实部、虚部运算结果为,
X1r=Ar+Br+Cr
X1i=Ai+Bi+Ci
X2r=Ar+[Br*W1r–Bi*W1i]+[Cr*W2r-Ci*W2i]
X3r=Ar+[Br*W1r+Bi*W1i]+[Cr*W2r+Ci*W2i]
X2i=Ai+[Br*W1i+Bi*W1r]+[Cr*W2i+Ci*W2r]
X3i=Ai+[-Br*W1i+Bi*W1r]+[-Cr*W2i+Ci*W2r],
其特征在于,包括两次运算过程;第一次运算中输入端1、2、3、4、5、6分别输入Ar、Br、W1r、Bi、W1i、Ar数据,所述取反器11、13、14控制其输出数据的符号为正,所述取反器12控制其输出数据的符号为负,所述选择器9选择输入端1的数据输入有效,所述选择器10选择输入端6的数据输入有效,所述输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W2r、Ci、W2i数据,所述取反器11、13、14控制其输出数据的符号为正,所述取反器12控制其输出数据的符号为负,所述选择器9选择输出端17第一次运算中输出的运算结果输入有效,所述选择器10选择输出端18第一次运算中输出的运算结果输入有效;所述输出端17输出的第二次运算结果作为X2的实部运算结果X2r,所述输出端18输出的第二次运算结果作为X3的实部运算结果X3r。
7.根据权利要求3或6所述的矢量处理器,当用于实现以下的基3快速傅里叶蝴蝶运算的X2、X3虚部运算时:
X1=A+B+C
X2=A+B*w1+C*w2
X3=A+B*conj(w1)+C*conj(w2)
其中,A,B和C都是复数矢量,w1,w2是旋转因子,,X1,X2,X3为基3快速傅里叶蝴蝶运算输出矢量;进行实部虚部分解后,
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
W1=W1r+j W1i
W2=W2r+j W2i
X1=X1r+j X1i
X2=X2r+j X2i
X3=X3r+j X3i
X1、X2、X3的实部、虚部运算结果为,
X1r=Ar+Br+Cr
X1i=Ai+Bi+Ci
X2r=Ar+[Br*W1r–Bi*W1i]+[Cr*W2r-Ci*W2i]
X3r=Ar+[Br*W1r+Bi*W1i]+[Cr*W2r+Ci*W2i]
X2i=Ai+[Br*W1i+Bi*W1r]+[Cr*W2i+Ci*W2r]
X3i=Ai+[-Br*W1i+Bi*W1r]+[-Cr*W2i+Ci*W2r],
其特征在于,包括两次运算过程;第一次运算中输入端1、2、3、4、5、6分别输入Ai、Br、W1i、Bi、W1r、Ai数据,所述取反器11、12、14控制其输出数据的符号为正,所述取反器13控制其输出数据的符号为负,所述选择器9选择输入端1的数据输入有效,所述选择器10选择输入端6的数据输入有效,所述输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W2i、Ci、W2r数据,所述取反器11、12、14控制其输出数据的符号为正,所述取反器13控制其输出数据的符号为负,所述选择器9选择输出端17第一次运算中输出的运算结果输入有效,所述选择器10选择输出端18第一次运算中输出的运算结果输入有效;所述输出端17输出的第二次运算结果作为X2的虚部运算结果X2i,所述输出端18输出的第二次运算结果作为X3的虚部运算结果X3i。
8.根据权利要求3所述的矢量处理器,当用于实现以下的基5快速傅里叶蝴蝶运算的X2、X3实部运算时:
X1=A+B+C+D+E
X2=A+B*w1+C*w2+D*w3+E*w4
X3=A+B*conj(w1)+C*conj(w2)+D*conj(w3)+E*conj(w4)
X4=A+B*w3+C*w1+D*w4+E*w2
X5=A+B*conj(w3)+C*conj(w1)+D*conj(w4)+E*conj(w2)
其中,A,B,C,D和E都是复数矢量,w1,w2,w3,w4是旋转因子,X1,X2,X3,X4,X5为基5快速傅里叶蝴蝶运算输出矢量;进行实部虚部分解后,
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
D=Dr+j Di
E=Er+j Ei
W1=W1r+j W1i
W2=W2r+j W2i
W3=W3r+j W3i
W4=W4r+j W4i
X1=X1r+j X1i
X2=X2r+j X2i
X3=X3r+j X3i
X4=X4r+j X4i
X5=X5r+j X5i
X1、X2、X3、X4、X5的实部、虚部运算结果为,
X1r=Ar+Br+Cr+Dr+Er
X1i=Ai+Bi+Ci+Di+Ei
X2r=Ar+[Br*W1r–Bi*W1i]+[Cr*W2r-Ci*W2i]
+[Dr*W3r–Di*W3i]+[Er*W4r-Ei*W4i]
X3r=Ar+[Br*W1r+Bi*W1i]+[Cr*W2r+Ci*W2i]
+[Dr*W3r+Di*W3i]+[Er*W4r+Ei*W4i]
X2i=Ai+[Br*W1i+Bi*W1r]+[Cr*W2i+Ci*W2r]
+[Dr*W3i+Di*W3r]+[Er*W4i+Ei*W4r]
X3i=Ai+[-Br*W1i+Bi*W1r]+[-Cr*W2i+Ci*W2r]
+[-Dr*W3i+Di*W3r]+[-Er*W4i+Ei*W4r]
X4r=Ar+[Br*W3r–Bi*W3i]+[Cr*W1r-Ci*W1i]
+[Dr*W4r–Di*W4i]+[Er*W2r-Ei*W2i]
X5r=Ar+[Br*W3r+Bi*W3i]+[Cr*W1r+Ci*W1i]
+[Dr*W4r+Di*W4i]+[Er*W2r+Ei*W2i]
X4i=Ai+[Br*W3i+Bi*W3r]+[Cr*W1i+Ci*W1r]
+[Dr*W4i+Di*W4r]+[Er*W2i+Ei*W2r]
X5i=Ai+[-Br*W3i+Bi*W3r]+[-Cr*W1i+Ci*W1r]
+[-Dr*W4i+Di*W4r]+[-Er*W2i+Ei*W2r],
其特征在于,包括四次运算过程;第一次运算中输入端1、2、3、4、5、6分别输入Ar、Br、W1r、Bi、W1i、Ar数据,所述取反器11、13、14控制其输出数据的符号为正,所述取反器12控制其输出数据的符号为负,所述选择器9选择输入端1的数据输入有效,所述选择器10选择输入端6的数据输入有效,所述输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W2r、Ci、W2i数据,所述取反器11、13、14控制其输出数据的符号为正,所述取反器12控制其输出数据的符号为负,所述选择器9选择输出端17第一次运算中输出的运算结果输入有效,所述选择器10选择输出端18第一次运算中输出的运算结果输入有效,所述输出端17输出的运算结果作为第三次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第三次运算中选择器10的数据选择输入;第三次运算中输入端2、3、4、5分别输入Dr、W3r、Di、W3i数据,所述取反器11、13、14控制其输出数据的符号为正,所述取反器12控制其输出数据的符号为负,所述选择器9选择输出端17第二次运算中输出的运算结果输入有效,所述选择器10选择输出端18第二次运算中输出的运算结果输入有效,所述输出端17输出的运算结果作为第四次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第四次运算中选择器10的数据选择输入;第四次运算中输入端2、3、4、5分别输入Er、W4r、Ei、W4i数据,所述取反器11、13、14控制其输出数据的符号为正,所述取反器12控制其输出数据的符号为负,所述选择器9选择输出端17第三次运算中输出的运算结果输入有效,所述选择器10选择输出端18第三次运算中输出的运算结果输入有效;所述输出端17输出的第四次运算结果作为X2的实部运算结果X2r,所述输出端18输出的第四次运算结果作为X3的实部运算结果X3r。
9.根据权利要求3所述的矢量处理器,当用于实现以下的基5快速傅里叶蝴蝶运算的X2、X3虚部运算时:
X1=A+B+C+D+E
X2=A+B*w1+C*w2+D*w3+E*w4
X3=A+B*conj(w1)+C*conj(w2)+D*conj(w3)+E*conj(w4)
X4=A+B*w3+C*w1+D*w4+E*w2
X5=A+B*conj(w3)+C*conj(w1)+D*conj(w4)+E*conj(w2)
其中,A,B,C,D和E都是复数矢量,w1,w2,w3,w4是旋转因子,X1,X2,X3,X4,X5为基5快速傅里叶蝴蝶运算输出矢量;进行实部虚部分解后,
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
D=Dr+j Di
E=Er+j Ei
W1=W1r+j W1i
W2=W2r+j W2i
W3=W3r+j W3i
W4=W4r+j W4i
X1=X1r+j X1i
X2=X2r+j X2i
X3=X3r+j X3i
X4=X4r+j X4i
X5=X5r+j X5i
X1、X2、X3、X4、X5的实部、虚部运算结果为,
X1r=Ar+Br+Cr+Dr+Er
X1i=Ai+Bi+Ci+Di+Ei
X2r=Ar+[Br*W1r–Bi*W1i]+[Cr*W2r-Ci*W2i]
+[Dr*W3r–Di*W3i]+[Er*W4r-Ei*W4i]
X3r=Ar+[Br*W1r+Bi*W1i]+[Cr*W2r+Ci*W2i]
+[Dr*W3r+Di*W3i]+[Er*W4r+Ei*W4i]
X2i=Ai+[Br*W1i+Bi*W1r]+[Cr*W2i+Ci*W2r]
+[Dr*W3i+Di*W3r]+[Er*W4i+Ei*W4r]
X3i=Ai+[-Br*W1i+Bi*W1r]+[-Cr*W2i+Ci*W2r]
+[-Dr*W3i+Di*W3r]+[-Er*W4i+Ei*W4r]
X4r=Ar+[Br*W3r–Bi*W3i]+[Cr*W1r-Ci*W1i]
+[Dr*W4r–Di*W4i]+[Er*W2r-Ei*W2i]
X5r=Ar+[Br*W3r+Bi*W3i]+[Cr*W1r+Ci*W1i]
+[Dr*W4r+Di*W4i]+[Er*W2r+Ei*W2i]
X4i=Ai+[Br*W3i+Bi*W3r]+[Cr*W1i+Ci*W1r]
+[Dr*W4i+Di*W4r]+[Er*W2i+Ei*W2r]
X5i=Ai+[-Br*W3i+Bi*W3r]+[-Cr*W1i+Ci*W1r]
+[-Dr*W4i+Di*W4r]+[-Er*W2i+Ei*W2r],
其特征在于,包括四次运算过程;第一次运算中输入端1、2、3、4、5、6分别输入Ai、Br、W1i、Bi、W1r、Ai数据,所述取反器11、12、14控制其输出数据的符号为正,所述取反器13控制其输出数据的符号为负,所述选择器9选择输入端1的数据输入有效,所述选择器10选择输入端6的数据输入有效,所述输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W2i、Ci、W2r数据,所述取反器11、12、14控制其输出数据的符号为正,所述取反器13控制其输出数据的符号为负,所述选择器9选择输出端17第一次运算中输出的运算结果输入有效,所述选择器10选择输出端18第一次运算中输出的运算结果输入有效,所述输出端17输出的运算结果作为第三次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第三次运算中选择器10的数据选择输入;第三次运算中输入端2、3、4、5分别输入Dr、W3i、Di、W3r数据,所述取反器11、12、14控制其输出数据的符号为正,所述取反器13控制其输出数据的符号为负,所述选择器9选择输出端17第二次运算中输出的运算结果输入有效,所述选择器10选择输出端18第二次运算中输出的运算结果输入有效,所述输出端17输出的运算结果作为第四次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第四次运算中选择器10的数据选择输入;第四次运算中输入端2、3、4、5分别输入Er、W4i、Ei、W4r数据,所述取反器11、12、14控制其输出数据的符号为正,所述取反器13控制其输出数据的符号为负,所述选择器9选择输出端17第三次运算中输出的运算结果输入有效,所述选择器10选择输出端18第三次运算中输出的运算结果输入有效;所述输出端17输出的第四次运算结果作为X2的虚部运算结果X2i,所述输出端18输出的第四次运算结果作为X3的虚部运算结果X3i。
10.根据权利要求3所述的矢量处理器,当用于实现以下的基5快速傅里叶蝴蝶运算的X4、X5实部运算时:
X1=A+B+C+D+E
X2=A+B*w1+C*w2+D*w3+E*w4
X3=A+B*conj(w1)+C*conj(w2)+D*conj(w3)+E*conj(w4)
X4=A+B*w3+C*w1+D*w4+E*w2
X5=A+B*conj(w3)+C*conj(w1)+D*conj(w4)+E*conj(w2)
其中,A,B,C,D和E都是复数矢量,w1,w2,w3,w4是旋转因子,X1,X2,X3,X4,X5为基5快速傅里叶蝴蝶运算输出矢量;进行实部虚部分解后,
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
D=Dr+j Di
E=Er+j Ei
W1=W1r+j W1i
W2=W2r+j W2i
W3=W3r+j W3i
W4=W4r+j W4i
X1=X1r+j X1i
X2=X2r+j X2i
X3=X3r+j X3i
X4=X4r+j X4i
X5=X5r+j X5i
X1、X2、X3、X4、X5的实部、虚部运算结果为,
X1r=Ar+Br+Cr+Dr+Er
X1i=Ai+Bi+Ci+Di+Ei
X2r=Ar+[Br*W1r–Bi*W1i]+[Cr*W2r-Ci*W2i]
+[Dr*W3r–Di*W3i]+[Er*W4r-Ei*W4i]
X3r=Ar+[Br*W1r+Bi*W1i]+[Cr*W2r+Ci*W2i]
+[Dr*W3r+Di*W3i]+[Er*W4r+Ei*W4i]
X2i=Ai+[Br*W1i+Bi*W1r]+[Cr*W2i+Ci*W2r]
+[Dr*W3i+Di*W3r]+[Er*W4i+Ei*W4r]
X3i=Ai+[-Br*W1i+Bi*W1r]+[-Cr*W2i+Ci*W2r]
+[-Dr*W3i+Di*W3r]+[-Er*W4i+Ei*W4r]
X4r=Ar+[Br*W3r–Bi*W3i]+[Cr*W1r-Ci*W1i]
+[Dr*W4r–Di*W4i]+[Er*W2r-Ei*W2i]
X5r=Ar+[Br*W3r+Bi*W3i]+[Cr*W1r+Ci*W1i]
+[Dr*W4r+Di*W4i]+[Er*W2r+Ei*W2i]
X4i=Ai+[Br*W3i+Bi*W3r]+[Cr*W1i+Ci*W1r]
+[Dr*W4i+Di*W4r]+[Er*W2i+Ei*W2r]
X5i=Ai+[-Br*W3i+Bi*W3r]+[-Cr*W1i+Ci*W1r]
+[-Dr*W4i+Di*W4r]+[-Er*W2i+Ei*W2r],
其特征在于,包括四次运算过程;第一次运算中输入端1、2、3、4、5、6分别输入Ar、Br、W3r、Bi、W3i、Ar数据,所述取反器11、13、14控制其输出数据的符号为正,所述取反器12控制其输出数据的符号为负,所述选择器9选择输入端1的数据输入有效,所述选择器10选择输入端6的数据输入有效,所述输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W1r、Ci、W1i数据,所述取反器11、13、14控制其输出数据的符号为正,所述取反器12控制其输出数据的符号为负,所述选择器9选择输出端17第一次运算中输出的运算结果输入有效,所述选择器10选择输出端18第一次运算中输出的运算结果输入有效,所述输出端17输出的运算结果作为第三次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第三次运算中选择器10的数据选择输入;第三次运算中输入端2、3、4、5分别输入Dr、W4r、Di、W4i数据,所述取反器11、13、14控制其输出数据的符号为正,所述取反器12控制其输出数据的符号为负,所述选择器9选择输出端17第二次运算中输出的运算结果输入有效,所述选择器10选择输出端18第二次运算中输出的运算结果输入有效,所述输出端17输出的运算结果作为第四次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第四次运算中选择器10的数据选择输入;第四次运算中输入端2、3、4、5分别输入Er、W2r、Ei、W2i数据,所述取反器11、13、14控制其输出数据的符号为正,所述取反器12控制其输出数据的符号为负,所述选择器9选择输出端17第三次运算中输出的运算结果输入有效,所述选择器10选择输出端18第三次运算中输出的运算结果输入有效;所述输出端17输出的第四次运算结果作为X4的实部运算结果X4r,所述输出端18输出的第四次运算结果作为X5的实部运算结果X5r。
11.根据权利要求3或8或9或10所述的矢量处理器,当用于实现以下的基5快速傅里叶蝴蝶运算的X4、X5虚部运算时:
X1=A+B+C+D+E
X2=A+B*w1+C*w2+D*w3+E*w4
X3=A+B*conj(w1)+C*conj(w2)+D*conj(w3)+E*conj(w4)
X4=A+B*w3+C*w1+D*w4+E*w2
X5=A+B*conj(w3)+C*conj(w1)+D*conj(w4)+E*conj(w2)
其中,A,B,C,D和E都是复数矢量,w1,w2,w3,w4是旋转因子,X1,X2,X3,X4,X5为基5快速傅里叶蝴蝶运算输出矢量;进行实部虚部分解后,
A=Ar+j Ai
B=Br+j Bi
C=Cr+j Ci
D=Dr+j Di
E=Er+j Ei
W1=W1r+j W1i
W2=W2r+j W2i
W3=W3r+j W3i
W4=W4r+j W4i
X1=X1r+j X1i
X2=X2r+j X2i
X3=X3r+j X3i
X4=X4r+j X4i
X5=X5r+j X5i
X1、X2、X3、X4、X5的实部、虚部运算结果为,
X1r=Ar+Br+Cr+Dr+Er
X1i=Ai+Bi+Ci+Di+Ei
X2r=Ar+[Br*W1r–Bi*W1i]+[Cr*W2r-Ci*W2i]
+[Dr*W3r–Di*W3i]+[Er*W4r-Ei*W4i]
X3r=Ar+[Br*W1r+Bi*W1i]+[Cr*W2r+Ci*W2i]
+[Dr*W3r+Di*W3i]+[Er*W4r+Ei*W4i]
X2i=Ai+[Br*W1i+Bi*W1r]+[Cr*W2i+Ci*W2r]
+[Dr*W3i+Di*W3r]+[Er*W4i+Ei*W4r]
X3i=Ai+[-Br*W1i+Bi*W1r]+[-Cr*W2i+Ci*W2r]
+[-Dr*W3i+Di*W3r]+[-Er*W4i+Ei*W4r]
X4r=Ar+[Br*W3r–Bi*W3i]+[Cr*W1r-Ci*W1i]
+[Dr*W4r–Di*W4i]+[Er*W2r-Ei*W2i]
X5r=Ar+[Br*W3r+Bi*W3i]+[Cr*W1r+Ci*W1i]
+[Dr*W4r+Di*W4i]+[Er*W2r+Ei*W2i]
X4i=Ai+[Br*W3i+Bi*W3r]+[Cr*W1i+Ci*W1r]
+[Dr*W4i+Di*W4r]+[Er*W2i+Ei*W2r]
X5i=Ai+[-Br*W3i+Bi*W3r]+[-Cr*W1i+Ci*W1r]
+[-Dr*W4i+Di*W4r]+[-Er*W2i+Ei*W2r],
其特征在于,包括四次运算过程;第一次运算中输入端1、2、3、4、5、6分别输入Ai、Br、W3i、Bi、W3r、Ai数据,所述取反器11、12、14控制其输出数据的符号为正,所述取反器13控制其输出数据的符号为负,所述选择器9选择输入端1的数据输入有效,所述选择器10选择输入端6的数据输入有效,所述输出端17输出的运算结果作为第二次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第二次运算中选择器10的数据选择输入;第二次运算中输入端2、3、4、5分别输入Cr、W1i、Ci、W1r数据,所述取反器11、12、14控制其输出数据的符号为正,所述取反器13控制其输出数据的符号为负,所述选择器9选择输出端17第一次运算中输出的运算结果输入有效,所述选择器10选择输出端18第一次运算中输出的运算结果输入有效,所述输出端17输出的运算结果作为第三次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第三次运算中选择器10的数据选择输入;第三次运算中输入端2、3、4、5分别输入Dr、W4i、Di、W4r数据,所述取反器11、12、14控制其输出数据的符号为正,所述取反器13控制其输出数据的符号为负,所述选择器9选择输出端17第二次运算中输出的运算结果输入有效,所述选择器10选择输出端18第二次运算中输出的运算结果输入有效,所述输出端17输出的运算结果作为第四次运算中选择器9的数据选择输入,所述输出端18输出的运算结果作为第四次运算中选择器10的数据选择输入;第四次运算中输入端2、3、4、5分别输入Er、W2i、Ei、W2r数据,所述取反器11、12、14控制其输出数据的符号为正,所述取反器13控制其输出数据的符号为负,所述选择器9选择输出端17第三次运算中输出的运算结果输入有效,所述选择器10选择输出端18第三次运算中输出的运算结果输入有效;所述输出端17输出的第四次运算结果作为X4的虚部运算结果X4i,所述输出端18输出的第四次运算结果作为X5的虚部运算结果X5i。
CN201310433489.7A 2013-09-22 2013-09-22 一种矢量运算核以及矢量处理器 Active CN104462016B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201310433489.7A CN104462016B (zh) 2013-09-22 2013-09-22 一种矢量运算核以及矢量处理器
US15/023,617 US9910671B2 (en) 2013-09-22 2014-05-20 Vector operation core and vector processor
PCT/CN2014/077914 WO2015039452A1 (zh) 2013-09-22 2014-05-20 一种矢量运算核以及矢量处理器
EP14846444.9A EP3048538B1 (en) 2013-09-22 2014-05-20 Vector operation core and vector processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310433489.7A CN104462016B (zh) 2013-09-22 2013-09-22 一种矢量运算核以及矢量处理器

Publications (2)

Publication Number Publication Date
CN104462016A true CN104462016A (zh) 2015-03-25
CN104462016B CN104462016B (zh) 2018-06-05

Family

ID=52688161

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310433489.7A Active CN104462016B (zh) 2013-09-22 2013-09-22 一种矢量运算核以及矢量处理器

Country Status (4)

Country Link
US (1) US9910671B2 (zh)
EP (1) EP3048538B1 (zh)
CN (1) CN104462016B (zh)
WO (1) WO2015039452A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107544942A (zh) * 2017-07-13 2018-01-05 天津大学 一种快速傅里叶变换的vlsi设计方法
CN115712505A (zh) * 2022-11-25 2023-02-24 湖南胜云光电科技有限公司 一种寄存器中分配电信号的数据处理系统

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462016B (zh) * 2013-09-22 2018-06-05 南京中兴软件有限责任公司 一种矢量运算核以及矢量处理器
JP2018156266A (ja) * 2017-03-16 2018-10-04 富士通株式会社 演算器および演算器の制御方法
US10534838B2 (en) 2017-09-29 2020-01-14 Intel Corporation Bit matrix multiplication
US10664277B2 (en) 2017-09-29 2020-05-26 Intel Corporation Systems, apparatuses and methods for dual complex by complex conjugate multiply of signed words
US10514924B2 (en) 2017-09-29 2019-12-24 Intel Corporation Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
US10802826B2 (en) 2017-09-29 2020-10-13 Intel Corporation Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
US11256504B2 (en) 2017-09-29 2022-02-22 Intel Corporation Apparatus and method for complex by complex conjugate multiplication
US10795676B2 (en) * 2017-09-29 2020-10-06 Intel Corporation Apparatus and method for multiplication and accumulation of complex and real packed data elements
US10552154B2 (en) 2017-09-29 2020-02-04 Intel Corporation Apparatus and method for multiplication and accumulation of complex and real packed data elements
US11243765B2 (en) 2017-09-29 2022-02-08 Intel Corporation Apparatus and method for scaling pre-scaled results of complex multiply-accumulate operations on packed real and imaginary data elements
US11074073B2 (en) 2017-09-29 2021-07-27 Intel Corporation Apparatus and method for multiply, add/subtract, and accumulate of packed data elements
US10795677B2 (en) 2017-09-29 2020-10-06 Intel Corporation Systems, apparatuses, and methods for multiplication, negation, and accumulation of vector packed signed values

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0889416A2 (en) * 1997-06-30 1999-01-07 Lucent Technologies Inc. Digital signal processor architecture optimized for performing fast fourier transforms
EP1271338A2 (en) * 2001-06-29 2003-01-02 Nec Corporation Pipeline processor for complex vector operation
CN101836202A (zh) * 2008-06-09 2010-09-15 慧帝科技(深圳)有限公司 快速傅立叶变换/反快速傅立叶变换运算核

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4689762A (en) * 1984-09-10 1987-08-25 Sanders Associates, Inc. Dynamically configurable fast Fourier transform butterfly circuit
EP1516467B1 (en) * 2002-06-27 2023-04-26 Samsung Electronics Co., Ltd. Modulation apparatus using mixed-radix fast fourier transform
KR100492091B1 (ko) 2002-12-10 2005-06-01 삼성전자주식회사 프로그래머블 프로세서에서의 고속 푸리에 변환 연산회로및 연산방법
US8266196B2 (en) * 2005-03-11 2012-09-11 Qualcomm Incorporated Fast Fourier transform twiddle multiplication
ATE443896T1 (de) * 2007-06-28 2009-10-15 Ericsson Telefon Ab L M Verfahren und vorrichtung zur transformationsberechnung
JP4995987B2 (ja) * 2009-07-31 2012-08-08 株式会社東芝 信号受信装置および通信システム
US8194532B1 (en) * 2010-01-25 2012-06-05 Xilinx, Inc. Mixed radix discrete fourier transform
CN201993753U (zh) * 2011-01-19 2011-09-28 东南大学 一种应用于fft/ifft的基4蝶形单元电路
CN102760117B (zh) * 2011-04-28 2016-03-30 深圳市中兴微电子技术有限公司 一种实现矢量运算的方法和系统
CN103631759B (zh) * 2012-08-22 2018-02-13 中兴通讯股份有限公司 一种实现快速傅立叶变换/离散傅立叶变换的装置及方法
CN104462016B (zh) * 2013-09-22 2018-06-05 南京中兴软件有限责任公司 一种矢量运算核以及矢量处理器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0889416A2 (en) * 1997-06-30 1999-01-07 Lucent Technologies Inc. Digital signal processor architecture optimized for performing fast fourier transforms
EP1271338A2 (en) * 2001-06-29 2003-01-02 Nec Corporation Pipeline processor for complex vector operation
CN101836202A (zh) * 2008-06-09 2010-09-15 慧帝科技(深圳)有限公司 快速傅立叶变换/反快速傅立叶变换运算核

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107544942A (zh) * 2017-07-13 2018-01-05 天津大学 一种快速傅里叶变换的vlsi设计方法
CN107544942B (zh) * 2017-07-13 2020-10-02 天津大学 一种快速傅里叶变换的vlsi设计方法
CN115712505A (zh) * 2022-11-25 2023-02-24 湖南胜云光电科技有限公司 一种寄存器中分配电信号的数据处理系统
CN115712505B (zh) * 2022-11-25 2023-06-30 湖南胜云光电科技有限公司 一种寄存器中分配电信号的数据处理系统

Also Published As

Publication number Publication date
US9910671B2 (en) 2018-03-06
US20160210146A1 (en) 2016-07-21
EP3048538B1 (en) 2022-10-19
CN104462016B (zh) 2018-06-05
EP3048538A4 (en) 2017-04-05
EP3048538A1 (en) 2016-07-27
WO2015039452A1 (zh) 2015-03-26

Similar Documents

Publication Publication Date Title
CN104462016A (zh) 一种矢量运算核以及矢量处理器
US9792118B2 (en) Vector processing engines (VPEs) employing a tapped-delay line(s) for providing precision filter vector processing operations with reduced sample re-fetching and power consumption, and related vector processor systems and methods
US9880845B2 (en) Vector processing engines (VPEs) employing format conversion circuitry in data flow paths between vector data memory and execution units to provide in-flight format-converting of input vector data to execution units for vector processing operations, and related vector processor systems and methods
US9684509B2 (en) Vector processing engines (VPEs) employing merging circuitry in data flow paths between execution units and vector data memory to provide in-flight merging of output vector data stored to vector data memory, and related vector processing instructions, systems, and methods
US9977676B2 (en) Vector processing engines (VPEs) employing reordering circuitry in data flow paths between execution units and vector data memory to provide in-flight reordering of output vector data stored to vector data memory, and related vector processor systems and methods
CN102103479B (zh) 浮点运算器及浮点运算的处理方法
Aksoy et al. Search algorithms for the multiple constant multiplications problem: Exact and approximate
US9619227B2 (en) Vector processing engines (VPEs) employing tapped-delay line(s) for providing precision correlation / covariance vector processing operations with reduced sample re-fetching and power consumption, and related vector processor systems and methods
CN103999078A (zh) 具有包含用于fir滤波的矢量卷积函数的指令集的矢量处理器
KR20150132287A (ko) 멀티-모드 래딕스-2x 버터플라이 벡터 프로세싱 회로들, 및 연관된 벡터 프로세서들을 제공하기 위한 프로그램 가능한 데이터 경로 구성들을 가지는 벡터 프로세싱 엔진들, 시스템들, 및 방법들
CN102760117B (zh) 一种实现矢量运算的方法和系统
CN104679474A (zh) 有限域gf(2^227)上的乘法器及模乘算法
CN102360281B (zh) 用于微处理器的多功能定点乘加单元mac运算装置
CN107391439B (zh) 一种可配置快速傅里叶变换的处理方法
CN104657334B (zh) 一种快速傅里叶变化的基2-4-8混合基蝶算器及其应用
Kumar et al. Small area reconfigurable FFT design by Vedic Mathematics
CN102073621A (zh) 一种应用于fft/ifft的基4蝶形单元电路及其处理方法
CN103262067B (zh) 一种数据处理方法、数据处理装置和通信系统
CN103235717B (zh) 具有多态指令集体系结构的处理器
CN102012802B (zh) 面向向量处理器数据交换的方法及装置
CN103731386A (zh) 一种基于gpp和simd技术的高速调制方法
Banerjee et al. A Novel Paradigm of CORDIC-Based FFT Architecture Framed on the Optimality of High-Radix Computation
CN102693118A (zh) 一种标量浮点运算加速器
CN202281998U (zh) 一种标量浮点运算加速器
CN104734668A (zh) 一种插值滤波器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20180428

Address after: 210012 No. 68, Bauhinia Road, Ningnan street, Yuhuatai District, Nanjing, Jiangsu

Applicant after: Nanjing Zhongxing Software Co.,Ltd.

Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen

Applicant before: ZTE Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190905

Address after: 518057 Nanshan District science and Technology Industrial Park, Guangdong high tech Industrial Park, ZTE building

Patentee after: ZTE Corp.

Address before: 210012 Nanjing, Yuhuatai District, South Street, Bauhinia Road, No. 68

Patentee before: Nanjing Zhongxing Software Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221130

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen

Patentee before: ZTE Corp.

TR01 Transfer of patent right