一种单精度浮点融合点乘运算单元制造技术

技术编号:18458463 阅读:68 留言:0更新日期:2018-07-18 12:34
本公开提供了一种单精度浮点融合点乘运算单元,包括操作数提取与规格化检查模块,将操作数的符号位、指数位和尾数位进行分离,生成尾数;符号预处理模块进行乘积运算的符号判断;部分积乘积模块进行尾数的部分积乘法;指数比较与求和模块计算指数部分的阶差和大小;尾数对齐逻辑模块对较小的乘积结果进行右移对齐操作;双路加法树压缩单元对对齐后的尾数乘积结果进行四操作数的加法压缩;双加法舍入路径处理单元进位尾数求和、舍入以及尾数乘积大小比较与选择操作;规格化处理模块对尾数进行前导零检测、规格化左移操作,计算输出的符号。本公开支持单精度浮点点乘运算,实现面积小、工作速度高、计算精度高和浮点运算能效水平高。

A single precision floating-point fusion point multiplication unit

This public provides a single precision floating point fusion point multiplication unit, including the operation number extraction and the standardization check module, separating the symbol bit, the index bit and the tail number of the operand, generating the tail number; the symbol preprocessing module is the symbol judgment of the multiplication operation, and the partial product module carries out the partial product multiplication of the tail number. Method; the order difference and size of the index part of the index comparison and calculation and the calculation of the module; the tail alignment logic module has a right shift alignment of the smaller product results; the double adder tree compression unit compresses the four operand after the aligned tail multiplication results. The size comparison and selection operation of the rounding and the tail number product; the normalization module for the tail number, the normalized left shift operation, and the symbol of the output. This disclosure supports single precision floating-point multiplication operation, which has the advantages of small area, high working speed, high computation accuracy and high efficiency of floating point operation.

【技术实现步骤摘要】
一种单精度浮点融合点乘运算单元
本公开涉及数字信号处理领域,尤其涉及一种单精度浮点融合点乘运算单元。
技术介绍
在高精度科学计算、高分辨率雷达成像和三维图像处理等高性能计算应用系统中通常涉及到大量的浮点运算操作,为满足此类应用的高通量处理需求,当前主流的图像处理器GPU和数字信号处理器DSP中都集成大量符合IEEE754标准的专用浮点运算单元。在某些信号处理算法中,如快速傅里叶变换FFT,浮点点乘作为蝶形运算中浮点复数乘法的核心操作,其运算性能也直接成为影响整个算法执行效率的关键。然而,与定点数运算相比,浮点数运算更加复杂,其需要额外执行多个操作步骤,如尾数对齐、移位和舍入等,使得单个浮点运算的实现要消耗更多的硬件资源和功耗。采用传统分立浮点乘、加单元级联方式实现浮点点乘操作时,存在以下问题:(1)浮点点乘运算由两个浮点乘法和一个浮点加法构成,因此需要三个独立的浮点单元,资源复用率低,需要较大的面积和功耗;(2)分立的实现从操作数输入到计算结果输出至少要经过两级运算单元延迟,运算速度低;(3)运算过程中至少存在两次舍入操作,使得计算精度降低。由此可看出,使用分立单元级联组合成浮点点乘运算的现有实施方案,效率很低,需要提供一种直接支持浮点点乘的高密度运算单元。公开内容(一)要解决的技术问题有鉴于此,本公开提出了一种单精度浮点融合点乘运算单元FDPU(FusedDot-ProductUnit),直接将多操作数浮点点乘运算操作进行融合设计,通过共享相同算术逻辑以减少浮点运算的面积、功耗和延迟,以克服现有技术中的诸多性能缺陷。(二)技术方案本公开提供了一种单精度浮点融合点乘运算单元,用于对符合IEEE754-2008标准的四个单精度浮点操作数A、B、C和D进行运算,输出结果AB+CD,包括:操作数提取与规格化检查模块,用于将所述四个单精度浮点操作数的符号位、指数位和尾数位进行分离,并对所述指数位进行规格化检查,以生成对应四个单精度浮点操作数的四个尾数;符号预处理模块,用于接收所述符号位并分别判断A*B的符号和C*D的符号,以产生对应的标志信号sign_ab和sign_cd,判断两个所述符号是否异号,以产生标志信号op_sel;指数比较与求和模块,用于接收所述指数位,计算A*B与C*D的指数位大小、阶差以及与偏置的差,对应生成标志信号exp_comp、阶差exp_diff以及标志信号exp_t;部分积乘积模块,用于对所述四个尾数两两进行相乘,以冗余CS对的形式表示两个尾数相乘结果;尾数对齐逻辑模块,用于根据所述指数位大小,将较小的冗余CS对进行低位补零后右移exp_diff位,较大的冗余CS对低位直接补零;双路加法树压缩单元,用于根据标志信号op_sel对两个冗余CS对进行四操作数的加法压缩;双加法舍入路径处理单元,包括两个并行处理支路,分别用于接收双路加法树压缩单元的两路输出,进位尾数求和、舍入以及尾数乘积大小比较与选择操作;规格化处理模块,用于对所述双加法舍入路径处理单元的输出进行前导零检测、规格化左移操作,对指数位进行调整修正,判断输出结果的符号位。在本公开的一些实施例中,所述操作数提取与规格化检查模块分别检查单精度浮点操作数A、B、C、D的指数位是否为全0;如果否,则在尾数位的最高位前面添“1”,如果是,在尾数位的最高位前面添“0”,形成对应于单精度浮点操作数A、B、C、D的四个24bit尾数。在本公开的一些实施例中,所述符号预处理模块分别对单精度浮点操作数A和B的一对符号位、单精度浮点操作数C和D的一对符号位作“异或”逻辑,以产生标志信号sign_ab和sign_cd;标志信号sign_ab和sign_cd经过第三个“异或”逻辑生成标志信号op_sel。在本公开的一些实施例中,所述指数比较与求和模块用于对单精度浮点操作数A和B的一对指数位、单精度浮点操作数C和D的一对指数位分别进行求和,比较两个指数求和结果的大小并生成标志信号exp_comp;根据exp_comp对指数求和结果作差,生成输出阶差exp_diff;将较大的指数求和结果减去偏置得到标志信号exp_t。在本公开的一些实施例中,所述部分积乘积模块包括:两个并行的部分积乘法器,分别对单精度浮点操作数A和B的尾数、以及单精度浮点操作数C和D的尾数进行乘法运算,以生成冗余CS对形式的两个尾数乘积结果。在本公开的一些实施例中,所述尾数对齐逻辑模块按照指数求和结果的大小,将较小指数求和结果对应的冗余CS对的两个数据,分别在低位补3个“0”后进行无符号右移exp_diff位;对于较大指数求和结果对应的冗余CS对的两个数据,分别在低位补3个“0”。在本公开的一些实施例中,如果标志信号op_sel为0,所述双路加法树压缩单元对较小的CS对和较大的CS对进行求和,如果标志信号op_sel为1,所述双路加法树压缩单元求出较小的CS对与较大的CS对“差”的绝对值。在本公开的一些实施例中,所述双路加法树压缩单元包括:四个并列的2选1多路选择器和两路并列的进位保留加法器;当op_sel为0时,通过2选1多路选择器将较小的CS对和较大的CS对同时输入两路进位保留加法器,同时两路进位保留加法器的四个进位输入信号接0;当op_sel为1时,通过2选1多路选择器将较小CS对及按位取反的较大CS对输入一路进位保留加法器,将较大CS对及按位取反的较小CS对输入另一路进位保留加法器,同时两路进位保留加法器的四个进位输入信号接1。在本公开的一些实施例中,所述双加法舍入路径处理单元包括:绝对值选择模块和两路相同的加法舍入逻辑模块;所述加法舍入逻辑模块包括:第一加法器,用于对冗余CS对的低26位求和,并输出高位进位信号cout和第一计算结果;舍入逻辑模块,用于根据第一计算结果和第二加法器的冗余CS对的第26位进行逻辑运算,生成向上舍入标志信号up;第二加法器,用于接收向上舍入标志信号up,其进位输入端接高位进位信号cout,对冗余CS对的高26位求和后输出第二计算结果;所述第一计算结果和所述第二计算结果组成输出结果;左路加法舍入逻辑模块输出结果的最高位作为选择信号man_comp,所述绝对值选择模块用于选择左路加法舍入逻辑模块或者右路加法舍入逻辑模块输出结果的低52位,作为最终的尾数求和舍入结果sum。在本公开的一些实施例中,所述规格化处理模块包括:前导零检测器,用于统计双加法舍入路径处理单元输出结果sum的前导零个数norm_shift;左移运算单元,用于根据前导零个数norm_shift对尾数结果sum进行规格化左移,取移位后数据的第50位到第28位作为最终输出的尾数位man_final;指数调整模块,用于根据前导零个数norm_shift对标志信号exp_t进行修正,输出最终的指数位exp_final;输出符号逻辑,用于根据标志信号exp_comp、选择信号man_comp、标志信号sign_ab以及sign_cd进行组合逻辑运算,输出最终的符号位sign_final;符号位sign_final、指数位exp_final和尾数位man_final进行合并,输出最终符合IEEE754单精度浮点标准的点乘结果。(三)有益效果从上述技术方案可以看出,本公开具有以下有益效本文档来自技高网...

【技术保护点】
1.一种单精度浮点融合点乘运算单元,用于对符合IEEE754‑2008标准的四个单精度浮点操作数A、B、C和D进行运算,输出结果AB+CD,包括:操作数提取与规格化检查模块,用于将所述四个单精度浮点操作数的符号位、指数位和尾数位进行分离,并对所述指数位进行规格化检查,以生成对应四个单精度浮点操作数的四个尾数;符号预处理模块,用于接收所述符号位并分别判断A*B的符号和C*D的符号,以产生对应的标志信号sign_ab和sign_cd,判断两个所述符号是否异号,以产生标志信号op_sel;指数比较与求和模块,用于接收所述指数位,计算A*B与C*D的指数位大小、阶差以及与偏置的差,对应生成标志信号exp_comp、阶差exp_diff以及标志信号exp_t;部分积乘积模块,用于对所述四个尾数两两进行相乘,以冗余CS对的形式表示两个尾数相乘结果;尾数对齐逻辑模块,用于根据所述指数位大小,将较小的冗余CS对进行低位补零后右移exp_diff位,较大的冗余CS对低位直接补零;双路加法树压缩单元,用于根据标志信号op_sel对两个冗余CS对进行四操作数的加法压缩;双加法舍入路径处理单元,包括两个并行处理支路,分别用于接收双路加法树压缩单元的两路输出,进位尾数求和、舍入以及尾数乘积大小比较与选择操作;规格化处理模块,用于对所述双加法舍入路径处理单元的输出进行前导零检测、规格化左移操作,对指数位进行调整修正,判断输出结果的符号位。...

【技术特征摘要】
1.一种单精度浮点融合点乘运算单元,用于对符合IEEE754-2008标准的四个单精度浮点操作数A、B、C和D进行运算,输出结果AB+CD,包括:操作数提取与规格化检查模块,用于将所述四个单精度浮点操作数的符号位、指数位和尾数位进行分离,并对所述指数位进行规格化检查,以生成对应四个单精度浮点操作数的四个尾数;符号预处理模块,用于接收所述符号位并分别判断A*B的符号和C*D的符号,以产生对应的标志信号sign_ab和sign_cd,判断两个所述符号是否异号,以产生标志信号op_sel;指数比较与求和模块,用于接收所述指数位,计算A*B与C*D的指数位大小、阶差以及与偏置的差,对应生成标志信号exp_comp、阶差exp_diff以及标志信号exp_t;部分积乘积模块,用于对所述四个尾数两两进行相乘,以冗余CS对的形式表示两个尾数相乘结果;尾数对齐逻辑模块,用于根据所述指数位大小,将较小的冗余CS对进行低位补零后右移exp_diff位,较大的冗余CS对低位直接补零;双路加法树压缩单元,用于根据标志信号op_sel对两个冗余CS对进行四操作数的加法压缩;双加法舍入路径处理单元,包括两个并行处理支路,分别用于接收双路加法树压缩单元的两路输出,进位尾数求和、舍入以及尾数乘积大小比较与选择操作;规格化处理模块,用于对所述双加法舍入路径处理单元的输出进行前导零检测、规格化左移操作,对指数位进行调整修正,判断输出结果的符号位。2.如权利要求1所述的单精度浮点融合点乘运算单元,所述操作数提取与规格化检查模块分别检查单精度浮点操作数A、B、C、D的指数位是否为全0;如果否,则在尾数位的最高位前面添“1”,如果是,在尾数位的最高位前面添“0”,形成对应于单精度浮点操作数A、B、C、D的四个24bit尾数。3.如权利要求1所述的单精度浮点融合点乘运算单元,所述符号预处理模块分别对单精度浮点操作数A和B的一对符号位、单精度浮点操作数C和D的一对符号位作“异或”逻辑,以产生标志信号sign_ab和sign_cd;标志信号sign_ab和sign_cd经过第三个“异或”逻辑生成标志信号op_sel。4.如权利要求1所述的单精度浮点融合点乘运算单元,所述指数比较与求和模块用于对单精度浮点操作数A和B的一对指数位、单精度浮点操作数C和D的一对指数位分别进行求和,比较两个指数求和结果的大小并生成标志信号exp_comp;根据exp_comp对指数求和结果作差,生成输出阶差exp_diff;将较大的指数求和结果减去偏置得到标志信号exp_t。5.如权利要求1所述的单精度浮点融合点乘运算单元,所述部分积乘积模块包括:两个并行的部分积乘法器,分别对单精度浮点操作数A和B的尾数、以及单精度浮点操作数C和D的尾数进行乘法运算,以生成冗余CS对形式的两个尾数乘积结果。6.如权利要求1所述的单精度浮点融合点乘运算单元,所述...

【专利技术属性】
技术研发人员:魏星黄志洪杨海钢
申请(专利权)人:中国科学院电子学研究所中国科学院大学
类型:发明
国别省市:北京,11

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

1