浮点数乘法计算的方法、装置和算术逻辑单元制造方法及图纸

技术编号:29283161 阅读:59 留言:0更新日期:2021-07-16 23:35
本申请实施例公开了一种浮点数乘法计算的方法、装置和算术逻辑单元,属于数据处理领域。所述方法包括:获取多个待计算的第一精度浮点数;对每个待计算的第一精度浮点数进行分解,得到至少两个第二精度浮点数,其中,所述第二精度浮点数的精度低于所述第一精度浮点数的精度;确定各种由分解自不同的第一精度浮点数的两个第二精度浮点数组成的组合;将每种组合中的第二精度浮点数输入第二精度乘法器中,得到每种组合对应的中间计算结果;基于每种组合对应的中间计算结果,确定所述多个待计算的第一精度浮点数的计算结果。采用本申请,可以节省计算资源。节省计算资源。节省计算资源。

【技术实现步骤摘要】
浮点数乘法计算的方法、装置和算术逻辑单元


[0001]本申请涉及数据处理
,特别涉及一种浮点数乘法计算的方法、装置和算术逻辑单元。

技术介绍

[0002]浮点数是计算机中一种重要的数字格式,在计算机中浮点数由符号、阶码和尾数三部分组成。为了满足不同业务对数据精度的不同需求,在计算机的处理器中通常需要具有对不同精度浮点数的乘法运算能力。
[0003]目前,为了实现对不同精度浮点数的乘法需求,通常会对应精度需求设计多个独立的乘法器。例如,需要处理器同时支持半精度、单精度和双精度的乘法运算,则需要在处理器中独立的至少三个乘法器,使其分别满足半精度、单精度和双精度乘法。
[0004]在实现本申请的过程中,专利技术人发现相关技术至少存在以下问题:
[0005]在处理器中独立设计多个分别支持不同精度的乘法器,当系统只使用其中一种精度的乘法器计算时,其余精度的乘法器处于闲置状态,十分浪费计算资源。

技术实现思路

[0006]为了解决相关技术中计算资源浪费的问题,本申请实施例提供了一种浮点数乘法计算的方法、装置和算术逻辑单元。所述技术方案如下:
[0007]第一方面,提供了一种浮点数乘法计算的方法,该方法包括:
[0008]获取多个待计算的第一精度浮点数;
[0009]对每个待计算的第一精度浮点数进行分解,得到至少两个第二精度浮点数,其中,所述第二精度浮点数的精度低于所述第一精度浮点数的精度;
[0010]确定各种由分解自不同的第一精度浮点数的两个第二精度浮点数组成的组合;
[0011]将每种组合中的第二精度浮点数输入第二精度乘法器中,得到每种组合对应的中间计算结果;
[0012]基于每种组合对应的中间计算结果,确定所述多个待计算的第一精度浮点数的计算结果。
[0013]本申请实施例所示的方案中,浮点数由符号、阶码和尾数三部分组成,而整数为1,在浮点数的表示中可以省略。对于待计算的第一精度浮点数,可以先进行分解。此处,对于第一精度浮点数进行分解,即,将第一精度浮点数的整数和尾数由多个第二精度浮点数的和来表示。这里,第二精度浮点数的精度要低于第一精度的精度。例如,第一精度浮点数为单精度浮点数,则第二精度浮点数可以为半精度浮点数。又例如,第一精度浮点数为双精度浮点数,则第二精度浮点数可以为单精度浮点数或者半精度浮点数。对于分解后的第二精度浮点数,可以将分解自不同的第一精度浮点数的两个第二精度浮点数进行组合,然后,对于得到的每个组合输入到用于计算第二精度浮点数乘法的第二精度乘法器中。则,第二精度乘法器可以输出每组第二精度浮点数对应的中间计算结果。最后,对多个中间计算结果
进行处理,即可得到多个待计算的第一精度浮点数的计算结果。
[0014]可见,在本申请实施例所示的方案中,计算第一精度浮点数的乘法的过程中,不必使用精度较高的第一精度乘法器,而只需要使用精度相对较低的第二精度乘法器即可。也即是,在仅部署有第二精度乘法器的处理单元中,除了可以正常计算第二精度浮点数乘法外,还可以计算精度更高的第一精度浮点数的乘法,这样可以有效的利用计算资源,可以节省单独部署第一精度乘法器的成本。
[0015]在一种可能的实现方式中,所述对每个待计算的第一精度浮点数进行分解,得到至少两个第二精度浮点数,之后还包括:
[0016]确定每个第二精度浮点数对应的阶码位移值;
[0017]所述基于每种组合对应的中间计算结果,确定所述多个待计算的第一精度浮点数的计算结果,包括:
[0018]分别基于每种组合中的第二精度浮点数对应的阶码位移值,调整每种组合对应的中间计算结果的阶码,得到调整后的中间计算结果;
[0019]将每种组合对应的调整后的中间计算结果进行求和运算,得到所述多个第一精度浮点数的计算结果。
[0020]本申请实施例所示的方案中,在对于第一精度浮点数进行分解时,要使用第二精度浮点数来分别表示出该第一精度浮点数的不同位数的尾数。同时还可以得到每个第二精度浮点数对应的阶码位移值,该阶码位移值可以包括第一精度浮点数的阶码,还可以包括有该第二精度浮点数所表示的尾数在第一精度浮点数中的固定阶码位移值。下面对于固定阶码位移值进行说明。
[0021]例如,对于一个单精度浮点数0 10000000 00000010100000100110011,符号为“0”,阶码为“10000000”,尾数为“00000010100000100110011”,如果要使用半精度浮点数表示尾数中的第11bit到第21bit,“00001001100”,实际要表示的数为“0.00000000000 0001001100”,那么,可以提取出固定阶码位移值-11。
[0022]相应的,对应每种组对应的中间计算结果的阶码,需要使用第二精度浮点数对应的阶码位移值进行调整。最后,对于调整后的中间计算结果可以输入累加器,进行累加计算得到最后的计算结果。
[0023]在一种可能的实现方式中,所述分别基于每种组合中的第二精度浮点数对应的阶码位移值,调整每种组合对应的中间计算结果的阶码,得到调整后的中间计算结果,包括:
[0024]将每种组合的第二精度浮点数对应的中间计算结果的阶码,加上每种组合的第二精度浮点数对应的阶码位移值,得到调整后的中间计算结果。
[0025]本申请实施例所示的方案中,每个第二精度浮点数对应有阶码位移值,在得到通过第二精度乘法器得到中间结果后,对于每种组合对应的中间计算结果,需要使用未参加计算的每个第二精度浮点数的阶码位移值,与该中间计算结果的阶码相加,得到调整后的中间计算结果。
[0026]在一种可能的实现方式中,所述中间计算结果为第一精度中间计算结果,所述计算结果为第一精度计算结果。
[0027]本申请实施例所示的方案中,对于第一精度浮点数的乘法计算,仍然可以得到第一精度的计算结果,即精度不会降低。
[0028]在一种可能的实现方式中,所述第一精度浮点数为单精度浮点数,所述第二精度浮点数为半精度浮点数,所述第一精度中间计算结果为单精度中间计算结果,所述第一精度计算结果为单精度计算结果,所述第二精度乘法器为半精度乘法器;或者,
[0029]所述第一精度浮点数为双精度浮点数,所述第二精度浮点数为单精度浮点数,所述第一精度中间计算结果为双精度中间计算结果,所述第一精度计算结果为双精度计算结果,所述第二精度乘法器为单精度乘法器。
[0030]本申请实施例所示的方案中,可以实现待计算的单精度浮点数,通过半精度乘法器,最终得到单精度计算结果,无需使用单精度乘法器,即可实现单精度乘法计算,节省计算资源。也可以实现待计算的双精度浮点数,通过单精度乘法器,最终得到双精度计算结果,无需使用双精度乘法器,即可实现双精度乘法计算,节省计算资源。
[0031]在一种可能的实现方式中,所述将每种组合中的第二精度浮点数输入第二精度乘法器中,得到每种组合对应的中间计算结果,包括:
[0032]将本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器中的算术逻辑单元,其特征在于,所述算术逻辑单元包括浮点数分解电路、第二精度乘法器、阶码调整电路和累加器,其中:所述浮点数分解电路,用于将输入的每个待计算的第一精度浮点数分解为至少两个第二精度浮点数,并向所述阶码调整电路输出每个第二精度浮点数对应的阶码位移值,其中,所述第二精度浮点数的精度低于所述第一精度浮点数的精度;所述第二精度乘法器,用于接收分解自不同的第一精度浮点数的两个第二精度浮点数组成的组合,将每种组合中的第二精度浮点数进行乘法运算,向所述阶码调整电路输出每种组合对应的中间计算结果;所述阶码调整调整电路,用于基于输入的每种组合中的第二精度浮点数对应的阶码位移值,调整输入的每种组合对应的中间计算结果的阶码,向所述累加器输出调整后的中间计算结果;所述累加器,用于将输入的每种组合对应的调整后的中间计算结果进行求和运算,输出所述多个第一精度浮点数的计算结果。2.根据权利要求1所述的算术逻辑单元,其特征在于,所述阶码调整调整电路,用于将输入的每种组合中的第二精度浮点数对应的阶码位移值,与输入的每种组合对应的中间计算结果的阶码相加,向所述累加器输出调整后的中间计算结果。3.根据权利要求1所述的算术逻辑单元,其特征在于,所述中间计算结果为第一精度中间计算结果,所述计算结果为第一精度计算结果。4.根据权利要求3所述的算术逻辑单元,其特征在于,所述第一精度浮点数为单精度浮点数,所述第二精度浮点数为半精度浮点数,所述第一精度中间计算结果为单精度中间计算结果,所述第一精度计算结果为单精度计算结果,所述第二精度乘法器为半精度乘法器;或者,所述第一精度浮点数为双精度浮点数,所述第二精度浮点数为单精度浮点数,所述第一精度中间计算结果为双精度中间计算结果,所述第一精度计算结果为双精度计算结果,所述第二精度乘法器为单精度乘法器。5.根据权利要求1所述的算术逻辑单元,其特征在于,所述算术逻辑单元还包括格式转换电路;所述第二精度乘法器,具体用于将每种组合中的第二精度浮点数进行乘法运算,向所述格式转换电路输出每种组合对应的第一精度中间计算结果;所述格式转换电路,用于将输入的每个第一精度中间计算结果进行格式转换,向所述阶码调整电路输出每种组合对应的第三精度中间计算结果,其中,所述第三精度中间计算结果的精度高于所述第一精度中间计算结果;所述阶码调整调整电路,用于基于输入的每种组合中的第二精度浮点数对应的阶码位移值,调整输入的每种组合对应的第三精度中间计算结果的阶码,向所述累加器输出调整后的第三精度中间计算结果;所述累加器,用于将输入的每种组合对应的调整后的第三精度中间计算结果进行求和运算,输出所述多个第一精度浮点数的第三精度计算结果。6.根据权利要求5所述的算术逻辑单元,其特征在于,所述格式转换电路,用于:将输入的每个第一精度中间计算结果的阶码和尾数分别进行补零处理,向所述阶码调
整电路输出每种组合对应的第三精度中间计算结果。7.根据权利要求5或6所述算术逻辑单元,其特征在于,所述第一精度浮点数为单精度浮点数,所述第二精度浮点数为半精度浮点数,所述第一精度中间计算结果为单精度中间计算结果,所述第三精度中间计算结果为双精度中间计算结果,所述第三精度计算结果为双精度计算结果,所述第二精度乘法器为半精度乘法器。8.根据权利要求1所述的算术逻辑单元,其特征在于,所述算术逻辑单元还包括格式转换电路;所述第二精度乘法器,用于将每种组合中的第二精度浮点数进行乘法运算,向所述格式转换电路输出每种组合对应的第三精度中间计算结果;所述格式转换电路,用于将输入的每个第三精度中间计算结果进行格式转换,向所述阶码调整电路输出每种组合对应的第一精度中间计算结果;所述阶码调整调整电路,用于基于输入的每种组合中的第二精度浮点数对应的阶码位移值,调整输入的每种组合对应的第一精度中间计算结果的阶码,向所述累加器输出调整后的第一精度中间计算结果;所述累加器,用于将输入的每种组合对应的调整后的第一精度中间计算结果进行求和运算,输出所述多个第一精度浮点数的第一精度计算结果。9.根据权利要求8所述的算术逻辑单元,其特征在于,所述第一精度浮点数为双精度浮点数,所述第二精度浮点数为半精度浮点数,所述第三精度中间计算结果为单精度中间计算结果,所述第一精度中间计算结果为双精度中间计算结果,所述第一精度计算结果为双精度计算结果,所述第二精度乘法器为半精度乘法器。10.根据权利要求1-9中任一项所述的算术逻辑单元,其特征在于,所述算术逻辑单元还包括,计算模式切换电路,其中:所述计算模式切换电路,用于在设置为第二精度浮点数计算模式时,将所述浮点数分解电路和所述阶码调整电路置为无效;所述第二精度乘法器,用于接收所述算数逻辑单元外部的输入的多组待计算的第二精度浮点数,对每组第二精度浮点数进行乘法运算,输入每组待计算的第二精度浮点数对应的中间计算结果;所累加器,用于将输入的每组待计算的第二精度浮点数对应的中间计算结果进行求和运算,输出所述多组待计算的第二精度浮点数的计算结果。11.一种浮点数乘法计算的方法,其特征在于,所述方法包括:获取多个待计算的第一精度浮点数;对每个待计算的第一精度浮点数进行分解,得到至少两个第二精度浮点数,其中,所述第二精度浮点数的精度低于所述第一精度浮点数的精度;确定各种由分解自不同的第一精度浮点数的两个第二精度浮点数组成的组合;将每种组合中的第二精度浮点数输入第二精度乘法器中,得到每种组合对应的中间计算结果;基于每种组合对应的中间计算结果,确定所述多个待计算的第一精度浮点数的计算结果。12.根据权利要求11所述的方法,其特征在于,所述对每个待计算的第一精度浮点数进
行分解,得到至少两个第二精度浮点数,之后还包括:确定每个第二精度浮点数对应的阶码位移值;所述基于每种组合对应的中间计算结果,确定所述多个待计算的第一精度浮点数的计算结果,包括:分别基于每种组合中的第二精度浮点数对应的阶码位移值,调整每种组合对应的中间计算结果的阶码,得到调整后的中间计算结果;将每种组合对应的调...

【专利技术属性】
技术研发人员:林腾毅潘秋萍沈胜宇徐晓忻张伟
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1