包含四条指令的支持快速傅里叶变换运算的方法技术

技术编号:4251112 阅读:193 留言:0更新日期:2012-04-11 18:40
包含四条指令的支持快速傅里叶变换运算的方法,第一组合指令步骤和第二指令组合步骤,其分别包括两条先后执行的指令步骤,每条所述指令步骤均包括有操作数定义、寄存器内数据的运算关系和存储顺序;每条组合指令步骤中的前一条指令步骤的操作结果为后一条指令步骤的源操作数,执行一次两条指令组合步骤完成快速傅里叶变换的一级蝶形运算,之后将一级碟形运算的输出寄存器折叠,使用同样的该两条组合指令步骤进行下一级的蝶形运算,直到FFT运算结束。通过组合使用上述同时具备了运算和移位的功能四条指令步骤,可以省去FFT中的移位指令,并且可以在不降低浮点运算部件效率的情况下,完成快速傅里叶变换运算,减少了数据相关。

【技术实现步骤摘要】

本专利技术属于计算机处理器设计
,特别涉及一种支持快速傅里叶变换运算的方法。
技术介绍
= k = 0 , 1 ,■ ^^ 2冗 2 『w = ew = cos(-) — sin(-),w 、 # 、 #:c() = /餅[Z则=:ZX,Z nN-l,…- O,l,...,N-l(公式l)其中,W/k为旋转因子。从公式1可知,直接计算N个样本点的DFT需要0(N2)次对于公式1,若N二2M,M为正整数。可以将x(n)按奇、偶分成两组,对于偶数可表 :2r,奇数可以表示为n二2r+l,1^0, 1,…,|-1 ,于是可以将DFT化为h eve w otic/W/2—l W/2—lW/2-l W/2-l=J>々)(^ + ^ |>2(攀,(公式2)由于旋转因子WNnk具有公式3所显示的可约性,可以将公式2转换为公式4t『/=^;^ ,Fr^f=『wl,(公式3)W/2-1 W/2—1义W = X,- +『力|>2(0</2 (公式4)/■=0 /■=() _ . 2;r式中,, 一 p一,(W/2)—-户4,/WW/2-l W/2-1 AA令雄)=£> 2= J>(2,F,,k=o, 1,…,^ —1(公式5)r=0 /=0 25(= J>2(^/2= J>(21FT k=0, 1,…,1(公式6)!■=(> o , 25 那么 <formula>formula see original document page 6</formula> 由此可以将一个N点DFT分成两个N/2点的DFT,按照上述方法继续给以分解,就 可以大大减少计算量。这种方法的每一步分解都是按输入序列在时间上的次序是偶数还是 奇数来分解为2个更短的子序列,所以称之为按时间抽选的FFT。按照上面的分析,可以 推导出8点DFT,如图1所示的8点的基2DIT的FFT算法蝶形图。 FFT具有如下的一般性规律 级的概念。上述过程,将N点DFT先分成两个N/2点DFT,再是四个N/4点DFT,进 而八个N/8点DFT,直至N/2个两点DFT。每分一次,称为一级运算。可以简单计算出N点 的FFT需要L = log2N级计算。比如,8点FFT共有3级运算。 蝶形计算单元如图l所示。j, k是参与本蝶形运算单元的上、下节点的序号。很 明显,第m-l级序号为j,k的两点只参与这一个蝶形单元的运算,其输出在第m级。且这一 蝶形单元也不再涉及别的点。由于这一特点,在计算机编程时,可以将蝶形单元的输出仍放 在输入数组中,这一特点称为原位运算。 倒位序规律。由图1可以看出,变换后的输出序列X(K)依照顺序排列,但输入序 列x(n)的次序不再是原来的自然顺序,虽然看起来好像杂乱无章,但实际上是有规律可循 的。造成倒位序的原因是因为不断对输入序列x(n)做奇偶分组。通过如下表l可以清晰 的看到倒位序实现过程。 <table>table see original document page 6</column></row><table> 表1 N = 8的倒位序数 最后一列即为按奇、偶抽取所得到的顺序。 现有的支持快速傅里叶变换运算的方法,通常需要执行复杂的移位指令操作等,并且在使用相应软件算法进行编程时,需要进行大量的数据相关操作,计算复杂度高。
技术实现思路
本专利技术的目的在于,提供一种,以省去进行快速傅里叶变换运算时额外的移位指令,减少数据相关。 为实现上述目的,本专利技术采用如下技术方案 —种,包括 第一组合指令步骤和第二指令组合步骤,所述第一组合指令步骤和第二指令组合 步骤分别包括两条先后执行的指令步骤,每条所述指令步骤均包括有操作数定义、寄存器 内数据的运算关系和存储顺序;每条组合指令步骤中的前一条指令步骤的操作结果为后 一条指令步骤的源操作数,执行一次两条指令组合步骤完成快速傅里叶变换的一级蝶形运 算,之后将一级碟形运算的输出寄存器折叠,使用同样的该两条组合指令步骤进行下一级 的蝶形运算,直到快速傅里叶变换运算结束。 进一步地,所述第一组合指令步骤和第二组合指令步骤均采用第一寄存器、第二 寄存器、第三寄存器和目的结果寄存器进行蝶形运算,使用中间结果操作数寄存器保存中 间结果。 进一步地,所述第一寄存器、第二寄存器、第三寄存器、中间结果操作数寄存器中 间结果操作数寄存器和目的结果寄存器均为N位的寄存器。N的取值可以根据计算的工作 量及处理器的硬件条件设置,例如可以是32位、128位、256位、512位、1024位等。并且寄 存器中计算所使用相应位也可以根据实际需求灵活设定。 其中,所述第一组合指令步骤优选采用所述第一寄存器、第二寄存器、第三寄存器 和目的结果寄存器的高N/2位或低N/2位进行蝶形运算; 相应地,所述第二组合指令步骤优选采用所述第一寄存器、第二寄存器、第三寄存 器和目的结果寄存器的低N/2位或高N/2位进行蝶形运算。 进一步地,所述N的值优选为256,所述第一组合指令步骤和第一组合指令步骤分 别得到4个复数点数据。 进一步地,所述第一组合指令步骤包括依次执行的以下两步骤 第一指令步骤使用中间结果操作数寄存器的0-255位来保存指令结果,使用第一寄存器、第二寄存器、第三寄存器的0-127位来参与运算; 第三指令步骤使用目的结果寄存器的0-255位来保存指令结果,使用中间结果 操作数寄存器的0-255位、第二寄存器和第三寄存器的0-127位来参与运算; 所述第二组合指令步骤包括依次执行的以下两步骤 第二指令步骤使用中间结果操作数寄存器的0-255位来保存指令结果,使用第 一寄存器、第二寄存器、第三寄存器的128-255位来参与运算; 第四指令步骤使用目的结果寄存器的0-255位来保存指令结果,使用中间结果操作数寄存器的0-255位、第二寄存器和第三寄存器的128-255位来参与运算。 进一步地,所述第一组合指令步骤和第二指令组合步骤之间的运行顺序可以为串行。串行执行这两个组合指令步骤可以节省运算空间,例如所述第一组合指令步骤和第二指令组合步骤可共用中间结果操作数寄存器。 进一步地,所述第一组合指令步骤和第二指令组合步骤之间的运行顺序可以为并 行。并行执行这两个组合指令步骤可以节省计算时间,特别适合于针对多核处理器的快速 傅里叶变换运算的程序设计。 本专利技术提供的进行快速傅里叶变换运算的组合的指令集合,其同时具备了运算和移位的功能,省去了额外的移位指令。并且可以在不降低浮点运算部件效率的情况下,完成 快速傅里叶变换运算,并且在使用相应软件算法进行编程时可以减少数据相关。附图说明 图1为蝶形计算单元; 图2为本专利技术实施例的流程图; 图3为本专利技术实施例中第一指令步骤操作示意图; 图4为本专利技术实施例中第二指令步骤操作示意图; 图5为本专利技术实施例中第三指令步骤操作示意图; 图6为本专利技术实施例中第四指令步骤操作示意图; 图7为基2的8点FFT编程使用寄存器示意图。具体实施例方式如图2所示, 一种,依次包括 步骤1 :准备快速傅里叶变换运算; 步骤2 :蝶形运算步骤,包括第一组合指令步骤21和第二指令组合步骤22,所述第本文档来自技高网
...

【技术保护点】
一种包含四条指令的支持快速傅里叶变换运算的方法,其特征在于包括:    第一组合指令步骤(21)和第二指令组合步骤(22),所述第一组合指令步骤(21)和第二指令组合步骤(22)分别包括两条先后执行的指令步骤,每条所述指令步骤均包括有操作数定义、寄存器内数据的运算关系和存储顺序;每条组合指令步骤中的前一条指令步骤的操作结果为后一条指令步骤的源操作数,执行一次两条指令组合步骤完成快速傅里叶变换的一级蝶形运算,之后将一级碟形运算的输出寄存器折叠,使用同样的该两条组合指令步骤进行下一级的蝶形运算,直到快速傅里叶变换运算结束。

【技术特征摘要】
一种包含四条指令的支持快速傅里叶变换运算的方法,其特征在于包括第一组合指令步骤(21)和第二指令组合步骤(22),所述第一组合指令步骤(21)和第二指令组合步骤(22)分别包括两条先后执行的指令步骤,每条所述指令步骤均包括有操作数定义、寄存器内数据的运算关系和存储顺序;每条组合指令步骤中的前一条指令步骤的操作结果为后一条指令步骤的源操作数,执行一次两条指令组合步骤完成快速傅里叶变换的一级蝶形运算,之后将一级碟形运算的输出寄存器折叠,使用同样的该两条组合指令步骤进行下一级的蝶形运算,直到快速傅里叶变换运算结束。2. 根据权利要求1所述的包含四条指令的支持快速傅里叶变换运算的方法,其特征在于所述第一组合指令步骤(21)和第二组合指令步骤(22)均采用第一寄存器(61)、第二寄存器(62)、第三寄存器(63)和目的结果寄存器(65)进行蝶形运算,使用中间结果操作数寄存器(64)保存中间结果。3. 根据权利要求2所述的包含四条指令的支持快速傅里叶变换运算的方法,其特征在于所述第一寄存器(61)、第二寄存器(62)、第三寄存器(63)、中间结果操作数寄存器(64)和目的结果寄存器(65)均为N位的寄存器;所述第一组合指令步骤(21)采用所述第一寄存器(61)、第二寄存器(62)、第三寄存器(63)和目的结果寄存器(65)的高N/2位或低N/2位进行蝶形运算;相应地,所述第二组合指令步骤(22)采用所述第一寄存器(61)、第二寄存器(62)、第三寄存器(63)和目的结果寄存器(65)的低N/2位或高N/2位进行蝶形运算。4. 根据权利要求3所述的包含四条指令的支持快速傅里叶变换运算的方法,其特征在于所述N的值为256,所述第一组合指令步骤(21)和第二组合指令步骤(22)分别得到4个复数点数据。5. 根据权利要求4所述的包含四条指令的支持快速傅里叶变换运算的方法,其特征在于所述第一组合指令步骤(21)包括依次执行的以下两步骤第一指令步骤(10):使用中间结果操作数寄存器(64)的0-255位来保存指令结果,使用第一寄存器(61)、第二寄存器(62)、第三寄存器(63)的0-127位来参与运算;第三指令步骤(30):使用目的结果寄存器的0-255位来保存指令结果,使用中间结果操作数寄存器(64)的0-255位、第二寄存器(62)和第三寄存器(63)的0-127位来参与运算;所述第二组合指令步骤(22)包括依次执行的以下两步骤第二指令步骤(20):使用中间结果操作数寄存器(64)的0-255位来保存指令结果,使用第一寄存器(61)、第二寄存器(62)、第三寄存器(63)的128-255位来参与运算;第四指令步骤(40):使用目的结果寄存器的0-255位来保存指令结果,使用中间结果操作数寄存器(64)的0-255位、第二寄存器(62)和第三寄存器(63)的128-255位来参与运算。6. 根据权利要求5所述的包含四条指令的支持快速傅里叶变换运算的方法,其特征在于所述第一指令步骤(10)依次包括步骤(11)M:0:31] 〈-c:0:31] +D[32:63] *E步骤(12)M:32:63]〈-c:32:63] +D[32:63] *E[32:63]步骤(13)M!64:95]〈-c:0:31] -D[32:63] *E步骤(14)M:96:127]〈-c:32:63] -D[32:63] *E[32:63]步骤(15)M:128:159]〈-c:64:95] +D[96:127]*E[64:95]步骤(16)M:160:191]〈-c!96:127]+D[96:127]*E[96:127]步骤(17)M:192:223]〈-c:64:95] -D[96:127...

【专利技术属性】
技术研发人员:陈云霁钱诚
申请(专利权)人:北京天童芯源科技有限公司
类型:发明
国别省市:11[中国|北京]

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

1