一种浮点数处理方法及装置制造方法及图纸

技术编号:38758308 阅读:16 留言:0更新日期:2023-09-10 09:43
本公开提供了一种浮点数处理方法,包括:中央处理器识别待执行预定计算的两个浮点数,基于识别结果生成处理指令,将生成的处理指令发送至硬件加速器;硬件加速器将根据该处理指令将所述两个浮点数的指数作为整数进行对应于所述预定计算的处理,得到指数处理结果;将所述两个浮点数的尾数作为整数进行对应于所述预定计算的处理,得到尾数处理结果;根据所述尾数处理结果与所述指数处理结果,得到所述两个浮点数执行所述预定计算的结果。两个浮点数执行所述预定计算的结果。两个浮点数执行所述预定计算的结果。

【技术实现步骤摘要】
一种浮点数处理方法及装置


[0001]本公开涉及计算机
,尤其涉及一种浮点数处理方法及装置。

技术介绍

[0002]为了满足各类应用需求,需要硬件加速器具备对浮点数进行加法计算或者乘法计算的能力。然而,目前市面上的硬件加速器,通常只具有对部分精度浮点数进行计算的ALU(算数逻辑单元),或者对整数进行计算的ALU,如果想要硬件加速器实现对全部精度的浮点数进行加法计算或者乘法计算,则需要设计和开发用于对各种精度浮点数进行计算的ALU,这种方式增加了硬件的设计复杂度,同时也需要较长的研发周期。

技术实现思路

[0003]针对上述技术问题,本公开提供一种浮点数处理方法及装置,技术方案如下。
[0004]根据本公开的第一方面,提供一种浮点数处理方法,包括:
[0005]中央处理器识别待执行预定计算的两个浮点数,基于识别结果生成处理指令,将生成的处理指令发送至硬件加速器;
[0006]硬件加速器根据所述处理指令执行:
[0007]将所述两个浮点数的指数作为整数进行对应于所述预定计算的处理,得到指数处理结果;
[0008]将所述两个浮点数的尾数作为整数进行对应于所述预定计算的处理,得到尾数处理结果;
[0009]根据所述尾数处理结果与所述指数处理结果,得到所述两个浮点数执行所述预定计算的结果。
[0010]在一个实施例中,所述中央处理器识别待执行预定计算的两个浮点数,基于识别结果生成处理指令时,具体是识别待执行预定计算的两个浮点数,针对每个浮点数确定对其尾数和指数的预处理方式,以及对预处理结果进行处理的方式,针对确定的两类处理方式生成处理指令。
[0011]在一个实施例中,所述预定计算为乘法计算;所述将所述两个浮点数的指数分别作为整数进行对应于所述预定计算的处理,得到指数处理结果,包括:
[0012]对每个浮点数的指数进行拆分或转化的预处理,得到满足所要调用的整数ALU计算要求的预处理结果;调用所述整数算数逻辑单元ALU,对所述两个浮点数的指数的预处理结果进行相加,得到指数处理结果;
[0013]所述将所述两个浮点数的尾数分别作为整数进行对应于所述预定计算的处理,得到尾数处理结果,包括:
[0014]对每个浮点数的尾数进行拆分或转化的预处理,得到满足所要调用的整数ALU计算要求的预处理结果;调用所述整数算数逻辑单元ALU,对所述两个浮点数的尾数的预处理结果进行相乘,得到尾数处理结果。
[0015]在一个实施例中,所述预定计算为加法计算;
[0016]所述将所述两个浮点数的指数分别作为整数进行对应于所述预定计算的处理,得到指数处理结果,包括:
[0017]针对所述两个浮点数,调用整数算数逻辑单元ALU对所述两个浮点数的指数进行比较,将指数较小的浮点数确定为第一浮点数,将指数较大的浮点数确定为第二浮点数;
[0018]将第一浮点数的指数进行预处理调整为第二浮点数的指数,并确定调整后的指数为指数处理结果;
[0019]所述将所述两个浮点数的尾数分别作为整数进行对应于所述预定计算的处理,得到尾数处理结果,包括:
[0020]根据对第一浮点数的指数的调整对第一浮点数的尾数进行移位;
[0021]针对移位后的第一浮点数的尾数,以及第二浮点数的尾数分别进行拆分或转化的预处理,得到满足所要调用的整数ALU计算要求的预处理结果;调用所述整数算数逻辑单元ALU,对两个尾数的预处理结果进行相加,得到尾数处理结果。
[0022]在一个实施例中,所述根据所述尾数处理结果与所述指数处理结果,得到所述两个浮点数执行所述预定计算的结果,包括:
[0023]将所述尾数处理结果作为所述两个浮点数执行所述预定计算的结果的尾数,将所述指数处理结果作为所述两个浮点数执行所述预定计算的结果的指数。
[0024]根据本公开实施例的第二个方面,提供了一种浮点数处理装置,包括中央处理器以及硬件加速器;
[0025]所述中央处理器,用于识别待执行预定计算的两个浮点数,基于识别结果生成处理指令,将生成的处理指令以及所述两个浮点数发送至硬件加速器;
[0026]硬件加速器,用于根据所述处理指令执行:
[0027]将所述两个浮点数的指数作为整数进行对应于所述预定计算的处理,得到指数处理结果;
[0028]将所述两个浮点数的尾数作为整数进行对应于所述预定计算的处理,得到尾数处理结果;
[0029]根据所述尾数处理结果与所述指数处理结果,得到所述两个浮点数执行所述预定计算的结果。
[0030]在一个实施例中,所述中央处理器,具备用于识别待执行预定计算的两个浮点数,针对每个浮点数确定对其尾数和指数的预处理方式,以及对预处理结果进行处理的方式,针对确定的两类处理方式生成处理指令。
[0031]在一个实施例中,所述预定计算为乘法计算;
[0032]所述硬件加速器,具体用于对每个浮点数的指数进行拆分或转化的预处理,得到满足所要调用的整数ALU计算要求的预处理结果;调用所述整数算数逻辑单元ALU,对所述两个浮点数的指数的预处理结果进行相加,得到指数处理结果。
[0033]在一个实施例中,所述硬件加速器,具体用于对每个浮点数的尾数进行拆分或转化的预处理,得到满足所要调用的整数ALU计算要求的预处理结果;调用所述整数算数逻辑单元ALU,对所述两个浮点数的尾数的预处理结果进行相乘,得到尾数处理结果。
[0034]在一个实施例中,所述预定计算为加法计算;
[0035]所述硬件加速器,具体用于针对所述两个浮点数,调用整数算数逻辑单元ALU对所述两个浮点数的指数进行比较,将指数较小的浮点数确定为第一浮点数,将指数较大的浮点数确定为第二浮点数;将第一浮点数的指数进行预处理,调整为第二浮点数的指数,并确定调整后的指数为指数处理结果。
[0036]在一个实施例中,所述硬件加速器,具体用于根据对第一浮点数的指数的调整对第一浮点数的尾数进行移位;针对移位后的第一浮点数的尾数,以及第二浮点数的尾数分别进行拆分或转化的预处理,得到满足所要调用的整数ALU计算要求的预处理结果;调用所述整数算数逻辑单元ALU,对两个尾数的预处理结果进行相加,得到尾数处理结果。
[0037]在一个实施例中,所述硬件加速器,具体用于将所述尾数处理结果作为所述两个浮点数执行所述预定计算的结果的尾数,将所述指数处理结果作为所述两个浮点数执行所述预定计算的结果的指数。
[0038]根据本公开实施例的第三个方面,提供了一种电子设备,包括上述浮点数处理装置。
[0039]根据本公开实施例的第四个方面,提供了一种硬件加速器,包括:
[0040]存储器,用于存储中央处理器发送的处理指令;
[0041]控制器,用于读取存储器中的处理指令以执行:
[0042]将所述两个浮点数的指数作为整数进行对应于所述预定计算的处理,得到指数处理结果;将所述两个浮点数的尾数作为整数进行对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种浮点数处理方法,包括:中央处理器识别待执行预定计算的两个浮点数,基于识别结果生成处理指令,将生成的处理指令发送至硬件加速器;硬件加速器根据所述处理指令执行:将所述两个浮点数的指数作为整数进行对应于所述预定计算的处理,得到指数处理结果;将所述两个浮点数的尾数作为整数进行对应于所述预定计算的处理,得到尾数处理结果;根据所述尾数处理结果与所述指数处理结果,得到所述两个浮点数执行所述预定计算的结果。2.根据权利要求1所述的方法,所述中央处理器识别待执行预定计算的两个浮点数,基于识别结果生成处理指令,包括:中央处理器识别待执行预定计算的两个浮点数,针对每个浮点数确定对其尾数和指数的预处理方式,以及对预处理结果进行处理的方式,针对确定的两类处理方式生成处理指令。3.根据权利要求2所述的方法,所述预定计算为乘法计算;所述将所述两个浮点数的指数分别作为整数进行对应于所述预定计算的处理,得到指数处理结果,包括:对每个浮点数的指数进行拆分或转化的预处理,得到满足所要调用的整数ALU计算要求的预处理结果;调用所述整数算数逻辑单元ALU,对所述两个浮点数的指数的预处理结果进行相加,得到指数处理结果。4.根据权利要求3所述的方法,所述将所述两个浮点数的尾数分别作为整数进行对应于所述预定计算的处理,得到尾数处理结果,包括:对每个浮点数的尾数进行拆分或转化的预处理,得到满足所要调用的整数ALU计算要求的预处理结果;调用所述整数算数逻辑单元ALU,对所述两个浮点数的尾数的预处理结果进行相乘,得到尾数处理结果。5.根据权利要求2所述的方法,所述预定计算为加法计算;所述将所述两个浮点数的指数分别作为整数进行对应于所述预定计算的处理,得到指数处理结果,包括:针对所述两个浮点数,调用整数算数逻辑单元ALU对所述两个浮点数的指数进行比较,将指数较小的浮点数确定为第一浮点数,将指数较大的浮点数确定为第二浮点数;将第一浮点数的指数进行预处理调整为第二浮点数的指数,并确定调整后的指数为指数处理结果。6.根据权利要求5所述的方法,所述将所述两个浮点数的尾数分别作为整数进行对应于所述预定计算的处理,得到尾数处理结果,包括:根据对第一浮点数的指数的调整对第一浮点数的尾数进行移位;针对移位后的第一浮点数的尾数,以及第二浮点数的尾数分别进行拆分或转化的预处理,得到满足所要调用的整数ALU计算要求的预处理结果;调用所述整数算数逻辑单元ALU,
对两个尾数的预处理结果进行相加,得到尾数处理结果。7.根据权利要求1所述的方法,所述根据所述尾数处理结果与所述指数处理结果,得到所述两个浮点数执行所述预定计算的结果,包括:将所述尾数处理结果作为所述两个浮点数执行所述预定计算的结果的尾数,将所述指数处理结果作为所述两个浮点数执行所述预定计算的结果的指数。8.一种浮点数处理装置,包括中央处理器以及硬件加速器;所述中央处理器,用于识别待执行预定计算的两个浮点数,基于识别结果生成处理指令,将生成的处理指令以及所述两个浮点数发送至硬件加速器;硬件加速器,用于根据所述处理指令执行:将所述两个浮点数的指数作为整数进行对应于所述预定计算的处...

【专利技术属性】
技术研发人员:姜莹王海洋
申请(专利权)人:象帝先计算技术重庆有限公司
类型:发明
国别省市:

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

1