CN108287681A - 一种单精度浮点融合点乘运算单元 - Google Patents
一种单精度浮点融合点乘运算单元 Download PDFInfo
- Publication number
- CN108287681A CN108287681A CN201810153286.5A CN201810153286A CN108287681A CN 108287681 A CN108287681 A CN 108287681A CN 201810153286 A CN201810153286 A CN 201810153286A CN 108287681 A CN108287681 A CN 108287681A
- Authority
- CN
- China
- Prior art keywords
- mantissa
- precision floating
- module
- result
- floating point
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本公开提供了一种单精度浮点融合点乘运算单元,包括操作数提取与规格化检查模块,将操作数的符号位、指数位和尾数位进行分离,生成尾数;符号预处理模块进行乘积运算的符号判断;部分积乘积模块进行尾数的部分积乘法;指数比较与求和模块计算指数部分的阶差和大小;尾数对齐逻辑模块对较小的乘积结果进行右移对齐操作;双路加法树压缩单元对对齐后的尾数乘积结果进行四操作数的加法压缩;双加法舍入路径处理单元进位尾数求和、舍入以及尾数乘积大小比较与选择操作;规格化处理模块对尾数进行前导零检测、规格化左移操作,计算输出的符号。本公开支持单精度浮点点乘运算,实现面积小、工作速度高、计算精度高和浮点运算能效水平高。
Description
技术领域
本公开涉及数字信号处理领域,尤其涉及一种单精度浮点融合点乘运算单元。
背景技术
在高精度科学计算、高分辨率雷达成像和三维图像处理等高性能计算应用系统中通常涉及到大量的浮点运算操作,为满足此类应用的高通量处理需求,当前主流的图像处理器GPU和数字信号处理器DSP中都集成大量符合IEEE754标准的专用浮点运算单元。
在某些信号处理算法中,如快速傅里叶变换FFT,浮点点乘作为蝶形运算中浮点复数乘法的核心操作,其运算性能也直接成为影响整个算法执行效率的关键。然而,与定点数运算相比,浮点数运算更加复杂,其需要额外执行多个操作步骤,如尾数对齐、移位和舍入等,使得单个浮点运算的实现要消耗更多的硬件资源和功耗。
采用传统分立浮点乘、加单元级联方式实现浮点点乘操作时,存在以下问题:
(1)浮点点乘运算由两个浮点乘法和一个浮点加法构成,因此需要三个独立的浮点单元,资源复用率低,需要较大的面积和功耗;
(2)分立的实现从操作数输入到计算结果输出至少要经过两级运算单元延迟,运算速度低;
(3)运算过程中至少存在两次舍入操作,使得计算精度降低。
由此可看出,使用分立单元级联组合成浮点点乘运算的现有实施方案,效率很低,需要提供一种直接支持浮点点乘的高密度运算单元。
公开内容
(一)要解决的技术问题
有鉴于此,本公开提出了一种单精度浮点融合点乘运算单元FDPU(Fused Dot-Product Unit),直接将多操作数浮点点乘运算操作进行融合设计,通过共享相同算术逻辑以减少浮点运算的面积、功耗和延迟,以克服现有技术中的诸多性能缺陷。
(二)技术方案
本公开提供了一种单精度浮点融合点乘运算单元,用于对符合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)本公开通过两个部分积乘法器对四个输入单精度浮点数的尾数部分进行运算,而后统一进行对齐、加法树压缩、舍入求和与规格化操作。将两个单精度浮点乘法与一个单精度浮点加法进行融合设计,共享大量算术运算逻辑,只需进行一次舍入运算,从而实现较高的面积、功耗效率和运算精度。
(2)本公开采用将两个部分积乘法器的结果进行对齐后,通过双路加法树压缩单元实现同号“加”或异号“减”操作,节省了传统设计中采用进位传播加法器进行异号求补操作过程的延时开销,减少关键路径延时,从而提高工作速度。
(3)本公开采用双加法舍入路径处理单元对双路加法树压缩单元输出结果的高、低比特位分别进行加法运算,在低位向高位进位的同时进行舍入运算,并且两路并行的结构在异号运算时相当于完成了尾数比较操作,相比传统设计节省了尾数比较部分的额外资源开销,并且保证了较高的工作速度。
(4)本公开将前导零检测和规格化左移操作放置在尾数求和之后,只需实现结构简单的前导零计数电路和单个数据的左移运算,同样可降低资源开销,提高面积利用率。
附图说明
图1是本公开实施例单精度浮点融合点乘运算单元整体结构示意图;
图2是本公开实施例双路加法树压缩单元的原理示意图;
图3是本公开实施例加法舍入逻辑模块的结构示意图;
图4是本公开实施例规格化处理模块的结构示意图。
具体实施方式
下面将结合实施例和实施例中的附图,对本公开实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
如图1所示,本公开实施例的单精度浮点融合点乘运算单元,包括:操作数提取与规格化检查模块110、符号预处理模块120、部分积乘积模块130、指数比较与求和模块140、尾数对齐逻辑模块150、双路加法树压缩单元160、双加法舍入路径处理单元170和规格化处理模块180。
操作数提取与规格化检查模块110,用于分别将输入的四个单精度浮点操作数100(A、B、C、D)的1bit符号位、8bit指数位和23bit尾数位进行分离,对指数位进行规格化检查,并将符号位和指数位分别输出至符号预处理模块120和指数比较与求和模块140。对于尾数位,操作数提取与规格化检查模块110分别检查操作数A、B、C、D的8bit指数位是否为全0,如果不为全0,则在操作数对应尾数的最高位前面添“1”,否则,在操作数对应尾数的最高位前面添“0”,形成对应于操作数A、B、C、D的四个24bit尾数并输出至部分积乘法模块130中。
符号预处理模块120对操作数A和B的一对1bit符号位、操作数C和D的一对1bit符号位作“异或”逻辑,分别输出sign_ab和sign_cd。sign_ab和sign_cd经过第三个“异或”逻辑输出op_sel信号,其表示A*B和C*D是否异号。
部分积乘积模块130包含两个并行的部分积乘法器,分别对操作数A和B的24bit尾数、以及操作数C和D的24bit尾数进行乘法运算,分别输出48bit的A与B尾数乘积结果、以及48bit的C与D尾数乘积结果,尾数乘积结果以冗余CS对(Redundant Carry-and-Sum Pair)的形式来表不。
指数比较与求和模块140用于对操作数A和B的一对8bit指数位、操作数C和D的一对8bit指数位分别进行求和,比较两个指数求和结果的大小并输出标志信号exp_comp至规格化处理模块180;根据exp_comp对指数求和结果进行作差,输出阶差exp_diff至尾数对齐逻辑模块150;将较大的指数求和结果减去固定偏置后得到exp_t,并输出至规格化处理模块180。
尾数对齐逻辑模块150按照上述两个指数求和结果的大小,对于较小指数求和结果对应的尾数乘积结果CS对(以下称较小CS对),将该CS对的两个数据(smaller_sum和smaller_carry)分别在低位补3个“0”后进行无符号右移exp_diff位,然后输出51bit的CS对至双路加法树压缩单元160;对于较大指数求和结果对应的尾数乘积结果CS对(以下称较大CS对),将该CS对的两个数据(greater_sum和greater_carry)分别在低位补3个“0”后直接输出至双路加法树压缩单元160。
双路加法树压缩单元160需要根据op_sel是否等于1进行对尾数对齐逻辑模块150的输出结果进行后续操作。如果op_sel为0,表示A*B和C*D乘积结果同号,对较小CS对和较大CS对进行求和即可,否则,求出较小CS对和较大CS对“差”的绝对值。
双路加法树压缩单元160的具体结构如图2所示,包括:四个并列的51bit 2选1多路选择器210、两个并列的进位保留加法器。
四个并列的51bit 2选1多路选择器210,用于在0p_sel的控制下,分别对左支路输入的数据smaller_sum和smaller_carry、以及右支路输入的数据greater_sum和greater_carry进行取反。具体来说,
当op_sel为0(A*B和C*D乘积结果同号)时,不对smaller_sum、smaller_carry、greater_sum和greater_carry取反,smaller_sum、smaller_carry、greater_sum和greater_carry同时输入左支路进位保留加法器和右支路进位保留加法器,即左、右支路进位保留加法器的输入相同,同时将左、右支路进位保留加法器的四个进位输入信号接op_sel(0),其实质上是在进行较小CS对和较大CS对的加法。
反之,当op_sel为1(A*B和C*D乘积结果异号)时,对于左支路,较大CS对(greater_sum和greater_carry)按位取反,对于右支路,较小CS对(smaller_sum和smaller_carry)按位取反,同时将左、右支路进位保留加法器的四个进位输入信号接op_sel(1),其实质上是进行两个CS对相互的减法。
左支路进位保留加法器220输出52bit的L_sum和L_carry、右支路进位保留加法器230输出52bit的R_sum和R_carry至双加法舍入路径处理单元170。
双加法舍入路径处理单元170包括:左右两个相同的加法舍入逻辑模块171和172,用于完成尾数求和、舍入以及尾数乘积大小比较操作;也包含绝对值选择模块173,根据尾数大小指示信号man_comp,选择代表正确绝对值结果的一路输出。
以下以左支路加法舍入逻辑模块171输入L_sum和L_carry为例进行说明。加法舍入逻辑模块171的具体实现结构如图3所示,包括两个26bit加法器310和320、以及舍入逻辑模块330。输入的L_sum和L_carry分别作为sum_in和carry_in。对于52bit数据sum_in和carry_in的低26bit:sum_in[25:0]和carry_in[25:0],分别作为加法器310的输入,加法器310对sum_in[25:0]和carry_in[25:0]求和后输出高位进位信号cout和计算结果sum_t[25:0]。对于52bit数据sum_in和carry_in的高26bit:sum_in[51:26]和carry_in[51:26],分别作为加法器320的输入。加法器320的进位输入端接高位进位信号cout。舍入逻辑模块330根据加法器310计算结果和加法器320的输入(sum_in[26]和carry_in[26])进行如下述公式(1)所示的逻辑运算,生成向上舍入标志信号up,作为第三个操作数输入给加法器320。加法器320sum_in[51:26]和carry_in[51:26]求和后输出sum_t[52:26]。右支路加法舍入逻辑模块172对R_sum和R_carry的处理与上述相同,在此不再赘述。
左支路加法舍入逻辑模块171输出的最高位sum_t[52]作为绝对值选择模块173的选择信号man_comp,选择左支路加法舍入逻辑模块171或者右支路加法舍入逻辑模块172输出结果的低52位,作为最终的尾数求和舍入结果sum。
规格化处理模块180如图4所示,包括:52位前导零检测器410、左移运算单元420、指数调整模块430和输出符号逻辑440。
前导零检测器410统计双加法舍入路径处理单元170输出尾数结果sum的前导零个数norm_shift。左移运算单元420根据前导零个数norm_shift对尾数结果sum进行规格化左移,取移位后数据的第50位到第28位作为最终输出的尾数位man_final。指数调整模块430根据前导零个数norm_shift对指数比较与求和模块140的输出exp_t进行修正,输出最终的指数位exp_final。输出符号逻辑440则根据指数大小标志信号exp_comp、尾数大小指示信号man_comp、A乘B的符号sign_ab以及C乘D的符号sign_cd进行组合逻辑运算,具体如公式(2)所示,输出最终的1bit符号位sign_final。将1bit的符号位sign_final、8bit的指数位exp_final和23bit的尾数位man_final进行合并,输出最终符合IEEE754单精度浮点标准的点乘结果。
至此,已经结合附图对本实施例进行了详细描述。依据以上描述,本领域技术人员应当对本公开有了清楚的认识。
需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换,例如:
(1)实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向,并非用来限制本公开的保护范围;
(2)上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
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所述的单精度浮点融合点乘运算单元,所述尾数对齐逻辑模块按照指数求和结果的大小,将较小指数求和结果对应的冗余CS对的两个数据,分别在低位补3个“0”后进行无符号右移exp_diff位;对于较大指数求和结果对应的冗余CS对的两个数据,分别在低位补3个“0”。
7.如权利要求1所述的单精度浮点融合点乘运算单元,如果标志信号op_sel为0,所述双路加法树压缩单元对较小的CS对和较大的CS对进行求和,如果标志信号op_sel为1,所述双路加法树压缩单元求出较小的CS对与较大的CS对“差”的绝对值。
8.如权利要求7所述的单精度浮点融合点乘运算单元,所述双路加法树压缩单元包括:四个并列的2选1多路选择器和两路并列的进位保留加法器;
当op_sel为0时,通过2选1多路选择器将较小的CS对和较大的CS对同时输入两路进位保留加法器,同时两路进位保留加法器的四个进位输入信号接op_sel;
当op_sel为1时,通过2选1多路选择器将较小CS对及按位取反的较大CS对输入一路进位保留加法器,将较大CS对及按位取反的较小CS对输入另一路进位保留加法器,同时两路进位保留加法器的四个进位输入信号接op_sel。
9.如权利要求1所述的单精度浮点融合点乘运算单元,所述双加法舍入路径处理单元包括:绝对值选择模块和两路相同的加法舍入逻辑模块;
所述加法舍入逻辑模块包括:
第一加法器,用于对冗余CS对的低26位求和,并输出高位进位信号cout和第一计算结果;
舍入逻辑模块,用于根据第一计算结果和第二加法器的冗余CS对的第26位进行逻辑运算,生成向上舍入标志信号up;
第二加法器,用于接收向上舍入标志信号up,其进位输入端接高位进位信号cout,对冗余CS对的高26位求和后输出第二计算结果;所述第一计算结果和所述第二计算结果组成输出结果;
左路加法舍入逻辑模块输出结果的最高位作为选择信号man_comp,所述绝对值选择模块用于选择左路加法舍入逻辑模块或者右路加法舍入逻辑模块输出结果的低52位,作为最终的尾数求和舍入结果sum。
10.如权利要求1所述的单精度浮点融合点乘运算单元,所述规格化处理模块包括:
前导零检测器,用于统计双加法舍入路径处理单元输出结果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单精度浮点标准的点乘结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810153286.5A CN108287681B (zh) | 2018-02-14 | 2018-02-14 | 一种单精度浮点融合点乘运算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810153286.5A CN108287681B (zh) | 2018-02-14 | 2018-02-14 | 一种单精度浮点融合点乘运算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108287681A true CN108287681A (zh) | 2018-07-17 |
CN108287681B CN108287681B (zh) | 2020-12-18 |
Family
ID=62832822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810153286.5A Active CN108287681B (zh) | 2018-02-14 | 2018-02-14 | 一种单精度浮点融合点乘运算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108287681B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078292A (zh) * | 2018-10-18 | 2020-04-28 | 富士通株式会社 | 算术处理设备和控制算术处理设备的方法 |
CN111984224A (zh) * | 2020-08-24 | 2020-11-24 | 中国海洋大学 | 用于auv运动控制器的浮点数乘加ip核及控制方法 |
CN112204517A (zh) * | 2018-08-27 | 2021-01-08 | 谷歌有限责任公司 | 多输入浮点加法器 |
CN112596697A (zh) * | 2019-10-02 | 2021-04-02 | 脸谱公司 | 使用分解的分量数字的浮点乘法硬件 |
CN112949830A (zh) * | 2021-03-09 | 2021-06-11 | 上海交通大学 | 智能推断网络系统以及加法单元和池化单元电路系统 |
CN113010148A (zh) * | 2021-02-09 | 2021-06-22 | 南方科技大学 | 一种适用于混合精度神经网络的定点乘加运算单元及方法 |
CN113168310A (zh) * | 2018-12-21 | 2021-07-23 | 图核有限公司 | 用于转换数字的硬件模块 |
CN113157247A (zh) * | 2021-04-23 | 2021-07-23 | 西安交通大学 | 一种可重构整型-浮点型乘法器 |
CN113282273A (zh) * | 2020-02-19 | 2021-08-20 | 脸谱公司 | 用于多种格式的浮点运算的硬件 |
CN113590195A (zh) * | 2021-07-22 | 2021-11-02 | 中国人民解放军国防科技大学 | 支持浮点格式乘加的存算一体化dram计算部件设计 |
CN113625989A (zh) * | 2021-07-16 | 2021-11-09 | 深圳云天励飞技术股份有限公司 | 数据运算装置、方法、电子设备及存储介质 |
CN114327360A (zh) * | 2020-09-29 | 2022-04-12 | 华为技术有限公司 | 运算单元、浮点数计算的方法、装置、芯片和计算设备 |
WO2023078364A1 (zh) * | 2021-11-03 | 2023-05-11 | 深圳市中兴微电子技术有限公司 | 矩阵乘法的运算方法及装置 |
CN116643718A (zh) * | 2023-06-16 | 2023-08-25 | 合芯科技有限公司 | 一种流水线结构的浮点融合乘加装置、方法及处理器 |
CN116661734A (zh) * | 2023-07-26 | 2023-08-29 | 深存科技(无锡)有限公司 | 支持多输入多格式的低精度乘加运算器 |
CN117075842A (zh) * | 2023-08-25 | 2023-11-17 | 上海合芯数字科技有限公司 | 十进制加法器及十进制运算方法 |
CN117251132A (zh) * | 2023-09-19 | 2023-12-19 | 上海合芯数字科技有限公司 | 定浮点simd乘加指令融合处理装置、方法及处理器 |
CN117687596A (zh) * | 2023-12-20 | 2024-03-12 | 摩尔线程智能科技(北京)有限责任公司 | 运算装置及方法、芯片和电子设备 |
CN117891430A (zh) * | 2024-03-18 | 2024-04-16 | 中科亿海微电子科技(苏州)有限公司 | 一种应用于fpga嵌入式dsp的浮点乘加结构 |
CN118034642A (zh) * | 2024-03-08 | 2024-05-14 | 苏州亿铸智能科技有限公司 | 浮点运算方法、装置、电子设备及存储介质 |
WO2024120249A1 (zh) * | 2022-12-09 | 2024-06-13 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082860A (zh) * | 2007-07-03 | 2007-12-05 | 浙江大学 | 一种乘累加装置 |
CN101692202A (zh) * | 2009-09-27 | 2010-04-07 | 北京龙芯中科技术服务中心有限公司 | 一种64比特浮点乘加器及其浮点运算流水节拍处理方法 |
CN106970775A (zh) * | 2017-03-27 | 2017-07-21 | 南京大学 | 一种可重构定浮点通用加法器 |
-
2018
- 2018-02-14 CN CN201810153286.5A patent/CN108287681B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082860A (zh) * | 2007-07-03 | 2007-12-05 | 浙江大学 | 一种乘累加装置 |
CN101692202A (zh) * | 2009-09-27 | 2010-04-07 | 北京龙芯中科技术服务中心有限公司 | 一种64比特浮点乘加器及其浮点运算流水节拍处理方法 |
CN106970775A (zh) * | 2017-03-27 | 2017-07-21 | 南京大学 | 一种可重构定浮点通用加法器 |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112204517A (zh) * | 2018-08-27 | 2021-01-08 | 谷歌有限责任公司 | 多输入浮点加法器 |
CN111078292A (zh) * | 2018-10-18 | 2020-04-28 | 富士通株式会社 | 算术处理设备和控制算术处理设备的方法 |
CN113168310A (zh) * | 2018-12-21 | 2021-07-23 | 图核有限公司 | 用于转换数字的硬件模块 |
US11449309B2 (en) | 2018-12-21 | 2022-09-20 | Graphcore Limited | Hardware module for converting numbers |
CN113168310B (zh) * | 2018-12-21 | 2022-08-16 | 图核有限公司 | 用于转换数字的硬件模块 |
CN112596697A (zh) * | 2019-10-02 | 2021-04-02 | 脸谱公司 | 使用分解的分量数字的浮点乘法硬件 |
CN113282273A (zh) * | 2020-02-19 | 2021-08-20 | 脸谱公司 | 用于多种格式的浮点运算的硬件 |
CN111984224A (zh) * | 2020-08-24 | 2020-11-24 | 中国海洋大学 | 用于auv运动控制器的浮点数乘加ip核及控制方法 |
CN111984224B (zh) * | 2020-08-24 | 2024-04-23 | 中国海洋大学 | 用于auv运动控制器的浮点数乘加ip核及控制方法 |
CN114327360A (zh) * | 2020-09-29 | 2022-04-12 | 华为技术有限公司 | 运算单元、浮点数计算的方法、装置、芯片和计算设备 |
CN113010148A (zh) * | 2021-02-09 | 2021-06-22 | 南方科技大学 | 一种适用于混合精度神经网络的定点乘加运算单元及方法 |
WO2022170811A1 (zh) * | 2021-02-09 | 2022-08-18 | 南方科技大学 | 一种适用于混合精度神经网络的定点乘加运算单元及方法 |
CN112949830A (zh) * | 2021-03-09 | 2021-06-11 | 上海交通大学 | 智能推断网络系统以及加法单元和池化单元电路系统 |
CN113157247A (zh) * | 2021-04-23 | 2021-07-23 | 西安交通大学 | 一种可重构整型-浮点型乘法器 |
CN113157247B (zh) * | 2021-04-23 | 2022-10-25 | 西安交通大学 | 一种可重构整型-浮点型乘法器 |
CN113625989A (zh) * | 2021-07-16 | 2021-11-09 | 深圳云天励飞技术股份有限公司 | 数据运算装置、方法、电子设备及存储介质 |
CN113590195B (zh) * | 2021-07-22 | 2023-11-07 | 中国人民解放军国防科技大学 | 支持浮点格式乘加的存算一体化dram计算部件 |
CN113590195A (zh) * | 2021-07-22 | 2021-11-02 | 中国人民解放军国防科技大学 | 支持浮点格式乘加的存算一体化dram计算部件设计 |
WO2023078364A1 (zh) * | 2021-11-03 | 2023-05-11 | 深圳市中兴微电子技术有限公司 | 矩阵乘法的运算方法及装置 |
WO2024120249A1 (zh) * | 2022-12-09 | 2024-06-13 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116643718A (zh) * | 2023-06-16 | 2023-08-25 | 合芯科技有限公司 | 一种流水线结构的浮点融合乘加装置、方法及处理器 |
CN116643718B (zh) * | 2023-06-16 | 2024-02-23 | 合芯科技有限公司 | 一种流水线结构的浮点融合乘加装置、方法及处理器 |
CN116661734A (zh) * | 2023-07-26 | 2023-08-29 | 深存科技(无锡)有限公司 | 支持多输入多格式的低精度乘加运算器 |
CN116661734B (zh) * | 2023-07-26 | 2023-10-10 | 深存科技(无锡)有限公司 | 支持多输入多格式的低精度乘加运算器 |
CN117075842A (zh) * | 2023-08-25 | 2023-11-17 | 上海合芯数字科技有限公司 | 十进制加法器及十进制运算方法 |
CN117075842B (zh) * | 2023-08-25 | 2024-02-06 | 上海合芯数字科技有限公司 | 十进制加法器及十进制运算方法 |
CN117251132B (zh) * | 2023-09-19 | 2024-05-14 | 上海合芯数字科技有限公司 | 定浮点simd乘加指令融合处理装置、方法及处理器 |
CN117251132A (zh) * | 2023-09-19 | 2023-12-19 | 上海合芯数字科技有限公司 | 定浮点simd乘加指令融合处理装置、方法及处理器 |
CN117687596A (zh) * | 2023-12-20 | 2024-03-12 | 摩尔线程智能科技(北京)有限责任公司 | 运算装置及方法、芯片和电子设备 |
CN118034642A (zh) * | 2024-03-08 | 2024-05-14 | 苏州亿铸智能科技有限公司 | 浮点运算方法、装置、电子设备及存储介质 |
CN117891430A (zh) * | 2024-03-18 | 2024-04-16 | 中科亿海微电子科技(苏州)有限公司 | 一种应用于fpga嵌入式dsp的浮点乘加结构 |
CN117891430B (zh) * | 2024-03-18 | 2024-05-14 | 中科亿海微电子科技(苏州)有限公司 | 一种应用于fpga嵌入式dsp的浮点乘加结构 |
Also Published As
Publication number | Publication date |
---|---|
CN108287681B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108287681A (zh) | 一种单精度浮点融合点乘运算单元 | |
CN108459840A (zh) | 一种simd结构浮点融合点乘运算单元 | |
US4969118A (en) | Floating point unit for calculating A=XY+Z having simultaneous multiply and add | |
US6847985B1 (en) | Floating point divide and square root processor | |
CN101847087B (zh) | 一种支持定浮点可重构的横向求和网络结构 | |
CN101692202B (zh) | 一种64比特浮点乘加器及其浮点运算流水节拍处理方法 | |
US5148386A (en) | Adder-subtracter for signed absolute values | |
CN108255777B (zh) | 用于fpga的嵌入式浮点型dsp硬核结构 | |
CN106155627B (zh) | 基于t_cordic算法的低开销迭代三角函数装置 | |
WO2022170809A1 (zh) | 一种适用于多精度计算的可重构浮点乘加运算单元及方法 | |
KR20120053343A (ko) | 부동 소수점의 복합 연산장치 및 그 연산방법 | |
CN103809930A (zh) | 一种双精度浮点数除法器的设计方法及除法器 | |
CN117111881B (zh) | 支持多输入多格式的混合精度乘加运算器 | |
CN101371221A (zh) | 预饱和固定点乘法器 | |
CN116594590A (zh) | 一种浮点数据的多功能运算装置及方法 | |
CN107133012A (zh) | 一种高速自定义浮点复数除法器 | |
US9904514B1 (en) | Fused floating-point arithmetic circuitry | |
CN110727412B (zh) | 一种基于掩码的混合浮点乘法低功耗控制方法及装置 | |
CN116627379A (zh) | 可重构的支持多精度浮点或定点运算的方法及系统 | |
Verma et al. | Synthesis of floating-point addition clusters on FPGAs using carry-save arithmetic | |
CN106168941B (zh) | 一种支持复数乘法的fft蝶形运算硬件实现电路 | |
US5206826A (en) | Floating-point division cell | |
Gollamudi et al. | Design Of High Performance IEEE-754 Single Precision (32 bit) Floating Point Adder Using VHDL | |
Pande et al. | Design and implementation of floating point divide-add fused architecture | |
Lutz et al. | Fused FP8 4-Way Dot Product With Scaling and FP32 Accumulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |