GPDSP中多功能SIMD结构浮点融合乘加运算装置制造方法及图纸

技术编号:10560882 阅读:136 留言:0更新日期:2014-10-22 14:38
本发明专利技术公开一种GPDSP中多功能SIMD结构浮点融合乘加装置,包括:操作数准备模块,用于将输入的各操作数的符号、指数和尾数进行分离;尾数乘法模块,用于接收操作数准备模块输出的高位、低位乘法操作数的尾数并采用4个单精度乘法器并行执行各组尾数的尾数乘法,输出各尾数乘法结果至乘加计算模块;乘加计算模块,用于根据各个操作数的指数执行对阶移位,并根据加法操作数的尾数以及各尾数乘法结果执行乘加运算的尾数计算,得到尾数结果并输出。本发明专利技术支持SIMD结构的浮点乘加运算并能够直接支持点积和复数乘法运算,具有实现方法简单、延迟小、计算精度高且浮点运算效率高的优点。

【技术实现步骤摘要】
GPDSP中多功能SIMD结构浮点融合乘加运算装置
本专利技术涉及数字信号处理领域,尤其涉及一种GPDSP中多功能SIMD结构浮点融合乘加运算装置。
技术介绍
在3D图像处理、雷达信号处理和现代通信等应用领域中通常需要超高性能的数字信号处理器(DSP)对大量数据进行处理,因此对数字信号处理器DSP的计算精度和计算速度都提出更高要求。目前,越来越多DSP芯片集成浮点FMAC(FusedMultiplyACumulators,融合乘加运算)部件,实现IEEE-754标准单精度和双精度浮点融合乘加操作,以支持通用科学计算和数字信号处理应用。在某些信号处理系统中,同时还经常需要高性能的浮点点积和复数运算操作,例如FFT算法中核心运算单元是执行蝶形运算,完成一个N点FFT需要进行(N/2)log2N次蝶形运算,每个蝶形运算包括一个复数乘法和两个复数加法,卷积等算法中核心操则为点积运算。因此浮点复数和点积运算操作的运算性能也直接影响这些算法的运算效率。现有技术中,DSP芯片上的FMAC部件中只有实现单/双精度浮点乘法、乘加指令,而没有单独实现点积和复数操作的指令。如TIC66XXDSP芯片,只能通过浮点乘法和浮点加法操作组合完成复数运算,运算过程中需要进行三次舍入操作,分别为2次乘法结果尾数的舍入和1次浮点加法操作的舍入。因此,传统DSP芯片上的FMAC结构在处理包含大量点积和复数操作的运算时存在以下问题:1)浮点点积运算由两个乘法和一个加法操作完成、复数乘法操作时执行两个乘法和两个加法操作,因此处理浮点点积和复数操作时的运算效率低,很难满足高性能GPDSP(General-PurposeDSP,通用数字信号处理器)芯片对各种算法的高效支持;2)存在多次舍入操作,导致计算精度的降低;3)应用编程代码量大,代码访存导致的cache缺失增加;4)硬件复用率低,功能单一,利用浮点融合乘加结构,仅实现了浮点的乘法、加法和乘加运算功能。综上所述,需要尽可能的复用传统浮点乘加装置,提供一种可直接支持点积和复数乘法运算的SIMD结构浮点乘加运算装置。
技术实现思路
本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种支持SIMD结构的浮点乘加运算并能够直接支持点积和复数乘法运算、实现方法简单、计算精度高、浮点运算效率高的GPDSP中多功能SIMD结构浮点融合乘加运算装置。为解决上述技术问题,本专利技术提出的技术方案为:一种GPDSP中多功能SIMD结构浮点融合乘加运算装置,包括:操作数准备模块,用于将输入的各操作数的符号、指数和尾数进行分离,分别获取高位、低位乘法操作数的尾数并输出至尾数乘法模块,将各个操作数的指数以及加法操作数的尾数输出至乘加计算模块;尾数乘法模块,用于接收操作数准备模块输出的高位、低位乘法操作数的尾数并采用4个单精度乘法器并行执行各组尾数的尾数乘法,输出各尾数乘法结果至乘加计算模块;乘加计算模块,用于根据所述各个操作数的指数执行对阶移位,并根据所述加法操作数的尾数以及所述各尾数乘法结果执行乘加运算的尾数计算,得到尾数结果并输出。作为本专利技术的进一步改进:所述乘加计算模块包括双精度复用乘加计算单元、单精度复用乘加计算单元和结果尾数加法单元,所述双精度复用乘加计算单元执行双精度乘加运算、SIMD单精度乘加运算中高位部分或复数乘法运算中实部的尾数计算,输出第一尾数中间结果;所述单精度复用乘加计算单元执行SIMD单精度乘加运算中低位部分、点积运算或复数乘法运算中虚部的尾数计算,输出第二尾数中间结果;所述结果尾数加法单元接收所述第一尾数中间结果、第二尾数中间结果分别执行尾数的加法运算,根据所执行的运算类型得到乘加运算的尾数结果。作为本专利技术的进一步改进:所述双精度复用乘加计算单元包括依次连接的第一阶差计算子单元、第一对阶移位子单元以及结果压缩子单元,所述第一阶差计算子单元输入双精度乘加运算、SIMD单精度乘加运算中高位部分或复数乘法运算中实部的各操作数的指数,根据所述各操作数的指数计算指数阶差;所述第一对阶移位子单元根据计算出的所述指数阶差对所述加法操作数的尾数进行对阶移位,得到对阶移位后的结果;所述结果压缩子单元接收所述对阶移位后的结果以及所述尾数乘法模块输出的所述尾数乘法结果并执行一级部分积压缩,得到第一尾数中间结果并输出至结果尾数加法单元。作为本专利技术的进一步改进:所述单精度复用乘加计算单元包括依次连接的第二阶差计算子单元、尾数交换子单元以及第二对阶移位子单元;所述第二阶差计算子单元输入SIMD单精度乘加运算中低位部分、点积运算或复数乘法运算中虚部的各操作数的指数,根据所述各操作数的指数计算指数阶差;所述尾数交换子单元根据所述指数阶差将SIMD单精度乘加运算中低位部分对应的尾数乘法结果与加法操作数进行尾数交换,或所述尾数交换子单元根据所述指数阶差将点积运算中两个尾数乘法结果进行尾数交换,或所述尾数交换子单元根据所述指数阶差将复数乘法运算中虚部对应的两个尾数乘法结果进行尾数交换,将指数较小的尾数输出至所述第二对阶移位子单元并根据所述指数阶差进行对阶移位,得到对阶移位后的结果,指数较大的尾数及所述对阶移位后的结果输出至结果尾数加法单元。作为本专利技术的进一步改进:所述第一阶差计算子单元、第二阶差计算子单元复用一个阶差计算部件,所述阶差计算部件包括高位部分和低位部分,所述高位部分复用计算SIMD单精度乘加运算中高部分或复数乘法运算中虚部的指数阶差,所述低位部分复用计算双精度乘加运算、SIMD单精度乘加运算中低位部分、点积或复数乘法运算中实部的指数阶差。作为本专利技术的进一步改进:所述第一对阶移位子单元采用161位对阶移位器,所述第二对阶移位子单元采用50位对阶移位器。作为本专利技术的进一步改进:所述结果尾数加法单元包括2个54位的复合加法器和一个54位的加法器;执行双精度乘加运算时,所述2个54位的复合加法器接收双精度复用乘加计算单元输出的第一尾数中间结果的低108位,进行加法运算得到低108位的尾数结果,并由所述54位的加法器根据第108位的进位计算高54位的尾数结果,得到双精度运算的尾数结果;执行SIMD单精度乘加运算时,所述2个54位的复合加法器分别接收双精度复用乘加计算单元输出的第一尾数中间结果的低108位、单精度复用乘加计算单元输出的指数较大的尾数、对阶移位后的结果,执行加法运算后得到SIMD单精度乘加运算的尾数结果。作为本专利技术的进一步改进:所述尾数乘法模块中每个所述单精度乘法器包括部分积产生单元、4级压缩单元以及尾数加法器单元;部分积产生单元接收一组尾数并通过Booth编码产生15个部分积,经2级压缩单元将所述15个部分积压缩成6个部分积,再经过2级压缩单元将所述6个部分积压缩成2个部分积,所述2个部分积输出至尾数加法器单元进行加法运算,得到尾数乘法结果。作为本专利技术的进一步改进:还包括与乘加计算模块连接的规格化处理模块,所述规格化处理模块包括前导0预测单元、规格化移位单元、指数修正单元以及舍入计算单元,所述前导0预测单元计算出乘加计算模块输出的尾数结果的前导0的个数,所述指数修正单元根据所述前导0个数对所述尾数结果的指数进行修正,所述规格化移位单元根据所述前导0个数对所述尾数结果进行规格化移位,规格化本文档来自技高网
...
GPDSP中多功能SIMD结构浮点融合乘加运算装置

【技术保护点】
GPDSP中多功能SIMD结构浮点融合乘加运算装置,其特征在于,包括:操作数准备模块(1),用于将输入的各操作数的符号、指数和尾数进行分离,分别获取高位、低位乘法操作数的尾数并输出至尾数乘法模块(2),将各个操作数的指数以及加法操作数的尾数输出至乘加计算模块(3);尾数乘法模块(2),用于接收操作数准备模块(1)输出的高位、低位乘法操作数的尾数并采用4个单精度乘法器并行执行各组尾数的尾数乘法,输出各尾数乘法结果至乘加计算模块;乘加计算模块(3),用于根据所述各个操作数的指数执行对阶移位,并根据所述加法操作数的尾数以及所述各尾数乘法结果执行乘加运算的尾数计算,得到尾数结果并输出。

【技术特征摘要】
1.GPDSP中多功能SIMD结构浮点融合乘加运算装置,其特征在于,包括:操作数准备模块(1),用于将输入的各操作数的符号、指数和尾数进行分离,分别获取高位、低位乘法操作数的尾数并输出至尾数乘法模块(2),将各个操作数的指数以及加法操作数的尾数输出至乘加计算模块(3);尾数乘法模块(2),用于接收操作数准备模块(1)输出的高位、低位乘法操作数的尾数并采用4个单精度乘法器并行执行各组尾数的尾数乘法,输出各尾数乘法结果至乘加计算模块;乘加计算模块(3),用于根据所述各个操作数的指数执行对阶移位,并根据所述加法操作数的尾数以及所述各尾数乘法结果执行乘加运算的尾数计算,得到尾数结果并输出;还包括与乘加计算模块(3)连接的规格化处理模块(4),所述规格化处理模块(4)包括前导0预测单元(41)、规格化移位单元(42)、指数修正单元(43)以及舍入计算单元(44),所述前导0预测单元(41)计算出乘加计算模块(3)输出的尾数结果的前导0的个数,所述指数修正单元(43)根据所述前导0个数对所述尾数结果的指数进行修正,所述规格化移位单元(42)根据所述前导0个数对所述尾数结果进行规格化移位,规格化移位后的尾数结果由所述舍入计算单元(44)根据舍入模式进行舍入计算,得到最终的尾数结果并写回;所述前导0预测单元(41)包括108位前导0预测子单元与51位前导0预测子单元,规格化移位单元(42)包括108位规格化移位器和50位规格化移位器;双精度乘加运算、SIMD单精度乘加运算中低位部分、点积运算、复数乘法运算中实部复用108位前导0预测子单元计算前导0个数,根据前导0个数由108位规格化移位器进行移位;SIMD单精度运算中高位部分和复数乘法运算中虚部复用51位前导0预测子单元计算前导0的个数,根据前导0个数由50位规格化移位器进行规格化移位。2.根据权利要求1所述GPDSP中多功能SIMD结构浮点融合乘加运算装置,其特征在于:所述乘加计算模块(3)包括双精度复用乘加计算单元(31)、单精度复用乘加计算单元(32)和结果尾数加法单元(33),所述双精度复用乘加计算单元(31)执行双精度乘加运算、SIMD单精度乘加运算中高位部分或复数乘法运算中实部的尾数计算,输出第一尾数中间结果;所述单精度复用乘加计算单元(32)执行SIMD单精度乘加运算中低位部分、点积运算或复数乘法运算中虚部的尾数计算,输出第二尾数中间结果;所述结果尾数加法单元(33)接收所述第一尾数中间结果、第二尾数中间结果分别执行尾数的加法运算,根据所执行的运算类型得到乘加运算的尾数结果。3.根据权利要求2所述GPDSP中多功能SIMD结构浮点融合乘加运算装置,其特征在于:所述双精度复用乘加计算单元(31)包括依次连接的第一阶差计算子单元(311)、第一对阶移位子单元(312)以及结果压缩子单元(313),所述第一阶差计算子单元(311)输入双精度乘加运算、SIMD单精度乘加运算中高位部分或复数乘法运算中实部的各操作数的指数,根据所述各操作数的指数计算指数阶差;所述第一对阶移位子单元(312)根据计算出的所述指数阶差对所述加法操作数的尾数进行对阶移位,得到对阶移位后的结果;所述结果压缩子单元(313)接收所述对阶...

【专利技术属性】
技术研发人员:雷元武车文博刘衡竹赵芮田甜陈书明彭元喜万江华郭阳李振涛马胜
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南;43

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

1