[发明专利]GPDSP中多功能SIMD结构浮点融合乘加运算装置有效
申请号: | 201410292856.0 | 申请日: | 2014-06-25 |
公开(公告)号: | CN104111816B | 公开(公告)日: | 2017-04-12 |
发明(设计)人: | 雷元武;车文博;刘衡竹;赵芮;田甜;陈书明;彭元喜;万江华;郭阳;李振涛;马胜 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F7/57 | 分类号: | G06F7/57 |
代理公司: | 湖南兆弘专利事务所(普通合伙)43008 | 代理人: | 周长清,傅俏梅 |
地址: | 410073 湖南省长沙市砚瓦池正街47号中国*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | gpdsp 多功能 simd 结构 浮点 融合 运算 装置 | ||
技术领域
本发明涉及数字信号处理领域,尤其涉及一种GPDSP中多功能SIMD结构浮点融合乘加运算装置。
背景技术
在3D图像处理、雷达信号处理和现代通信等应用领域中通常需要超高性能的数字信号处理器(DSP)对大量数据进行处理,因此对数字信号处理器DSP的计算精度和计算速度都提出更高要求。目前,越来越多DSP芯片集成浮点FMAC(Fused Multiply ACumulators,融合乘加运算)部件,实现IEEE-754标准单精度和双精度浮点融合乘加操作,以支持通用科学计算和数字信号处理应用。
在某些信号处理系统中,同时还经常需要高性能的浮点点积和复数运算操作,例如FFT算法中核心运算单元是执行蝶形运算,完成一个N点FFT需要进行(N/2)log2N次蝶形运算,每个蝶形运算包括一个复数乘法和两个复数加法,卷积等算法中核心操则为点积运算。因此浮点复数和点积运算操作的运算性能也直接影响这些算法的运算效率。
现有技术中,DSP芯片上的FMAC部件中只有实现单/双精度浮点乘法、乘加指令,而没有单独实现点积和复数操作的指令。如TI C66XX DSP芯片,只能通过浮点乘法和浮点加法操作组合完成复数运算,运算过程中需要进行三次舍入操作,分别为2次乘法结果尾数的舍入和1次浮点加法操作的舍入。因此,传统DSP芯片上的FMAC结构在处理包含大量点积和复数操作的运算时存在以下问题:
1)浮点点积运算由两个乘法和一个加法操作完成、复数乘法操作时执行两个乘法和两个加法操作,因此处理浮点点积和复数操作时的运算效率低,很难满足高性能GPDSP(General-Purpose DSP,通用数字信号处理器)芯片对各种算法的高效支持;
2)存在多次舍入操作,导致计算精度的降低;
3)应用编程代码量大,代码访存导致的cache缺失增加;
4)硬件复用率低,功能单一,利用浮点融合乘加结构,仅实现了浮点的乘法、加法和乘加运算功能。
综上所述,需要尽可能的复用传统浮点乘加装置,提供一种可直接支持点积和复数乘法运算的SIMD结构浮点乘加运算装置。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种支持SIMD结构的浮点乘加运算并能够直接支持点积和复数乘法运算、实现方法简单、计算精度高、浮点运算效率高的GPDSP中多功能SIMD结构浮点融合乘加运算装置。
为解决上述技术问题,本发明提出的技术方案为:
一种GPDSP中多功能SIMD结构浮点融合乘加运算装置,包括:
操作数准备模块,用于将输入的各操作数的符号、指数和尾数进行分离,分别获取高位、低位乘法操作数的尾数并输出至尾数乘法模块,将各个操作数的指数以及加法操作数的尾数输出至乘加计算模块;
尾数乘法模块,用于接收操作数准备模块输出的高位、低位乘法操作数的尾数并采用4个单精度乘法器并行执行各组尾数的尾数乘法,输出各尾数乘法结果至乘加计算模块;
乘加计算模块,用于根据所述各个操作数的指数执行对阶移位,并根据所述加法操作数的尾数以及所述各尾数乘法结果执行乘加运算的尾数计算,得到尾数结果并输出。
作为本发明的进一步改进:所述乘加计算模块包括双精度复用乘加计算单元、单精度复用乘加计算单元和结果尾数加法单元,所述双精度复用乘加计算单元执行双精度乘加运算、SIMD单精度乘加运算中高位部分或复数乘法运算中实部的尾数计算,输出第一尾数中间结果;所述单精度复用乘加计算单元执行SIMD单精度乘加运算中低位部分、点积运算或复数乘法运算中虚部的尾数计算,输出第二尾数中间结果;所述结果尾数加法单元接收所述第一尾数中间结果、第二尾数中间结果分别执行尾数的加法运算,根据所执行的运算类型得到乘加运算的尾数结果。
作为本发明的进一步改进:所述双精度复用乘加计算单元包括依次连接的第一阶差计算子单元、第一对阶移位子单元以及结果压缩子单元,所述第一阶差计算子单元输入双精度乘加运算、SIMD单精度乘加运算中高位部分或复数乘法运算中实部的各操作数的指数,根据所述各操作数的指数计算指数阶差;所述第一对阶移位子单元根据计算出的所述指数阶差对所述加法操作数的尾数进行对阶移位,得到对阶移位后的结果;所述结果压缩子单元接收所述对阶移位后的结果以及所述尾数乘法模块输出的所述尾数乘法结果并执行一级部分积压缩,得到第一尾数中间结果并输出至结果尾数加法单元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410292856.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种系统读写控件分离方法及系统
- 下一篇:一种I/O请求处理方法及存储系统