一种浮点数据处理方法、装置及存储介质与流程

文档序号:26590140发布日期:2021-09-10 20:38阅读:来源:国知局

技术特征:
1.一种浮点数据处理方法,其特征在于,包括:当浮点数据由除浮点运算部件和浮点寄存器堆部件之外的部件输入至浮点寄存器堆部件时,对所述浮点数据进行拆分处理以将所述浮点数据的格式由浮点原始格式转换为浮点内部格式;其中,浮点内部格式下浮点数据所指示的数值与浮点原始格式下浮点数据所指示的数值相等;利用浮点运算部件对浮点寄存器堆部件中格式为浮点内部格式的浮点数据进行浮点运算以得到运算结果,所述运算结果的格式为浮点内部格式,以及,所述浮点运算部件在对浮点数据进行运算时,所述浮点数据的格式均为浮点内部格式;其中,当所述浮点原始格式为规格化数时,所述拆分处理包括:从所述浮点原始格式的浮点数据中拆分出符号位、阶码、和尾数,并对所述阶码增加一位数,且增加一位后的阶码与增加一位前的阶码所指示的数值相等,以及将所述阶码转换为原码。2.根据权利要求1所述的浮点数据处理方法,所述浮点原始格式满足ieee 754标准数据格式和bf16数据格式。3.根据权利要求2所述的浮点数据处理方法,其特征在于,当所述浮点原始格式为规格化数,所述拆分处理包括:从所述浮点原始格式的浮点数据中拆分出符号位、阶码、和尾数,以及,先对所述阶码增加一位数,且增加一位后的阶码对应的原码所指示的数值与增加一位前的阶码对应的原码所指示的数值相等,之后,再将增加一位后的阶码转换为原码。4.根据权利要求2所述的浮点数据处理方法,其特征在于,当所述浮点原始格式为规格化数时,所述拆分处理包括:从所述浮点原始格式的浮点数据中拆分出符号位、阶码、和尾数,以及,先将所述阶码转换为原码,再在原码格式下的阶码的最高位之前增加一位数,以将阶码原码转换为增加一位后的阶码原码,且增加一位前的阶码原码与增加一位后的阶码原码表示的数值相等。5.根据权利要求2所述的浮点数据处理方法,其特征在于,当所述浮点原始格式为非规格化数,所述拆分处理包括:对所述浮点原始格式的浮点数据进行规格化处理,从规格化处理后的浮点数据中拆分出符号位、阶码、和尾数,并将所述阶码转换为原码。6.根据权利要求5所述的浮点数据处理方法,其特征在于,所述规格化处理包括:将所述浮点原始格式的尾数用0进行第一预设位数的左移位,并将差值所对应的二进制数作为所述浮点内部格式下浮点数据的阶码,且所述浮点内部格式下浮点数据的阶码的位宽为浮点原始格式的浮点数据的阶码位宽加一;其中,所述差值由设定值与第一预设位数相减得出;所述第一预设位数为所述浮点原始格式的尾数从首位数的第一个1之前的零的个数加一;其中,所述设定值和所述第一预设位数均为十进制数,所述设定值的取值规则包括:当所述浮点数据为单精度时,所述设定值等于129;当所述浮点数据为双精度时,所述设定值等于1025;当所述浮点数据为半精度时,所述设定值等于17。7.根据权利要求2所述的浮点数据处理方法,其特征在于,所述方法还包括:浮点运算部件将运算结果传输至所述浮点寄存器堆部件中存储,所述运算结果的格式不进行转换;浮点寄存器堆部件输出所述运算结果至除所述浮点运算部件和浮点寄存器堆部件之外的部件时,对所述运算结果进行合并处理以将所述浮点内部格式转换为所述浮点原始格
式;其中,浮点原始格式下运算结果所指示的数值与浮点内部格式下运算结果所指示的数值相等。8.根据权利要求7所述的浮点数据处理方法,其特征在于,所述合并处理包括:将所述浮点内部格式的阶码去除一位,并将所述符号位、去除一位后的阶码、和尾数进行合并。9.根据权利要求8所述的浮点数据处理方法,其特征在于,所述合并处理包括:判断所述浮点内部格式下的运算结果的阶码是否落入从浮点原始格式的规格化数转换成浮点内部格式后,且位数比所述运算结果的阶码位数少一位的阶码所对应的范围内;当落入所述范围时,先将所述运算结果的阶码去除一位,且去除一位后的阶码所指示的数值与去除一位前的阶码所指示的数值相等,再将所述去除一位后的阶码转换为移码,之后,将浮点内部格式的运算结果的符号位、转换为移码之后的阶码、以及浮点内部格式的运算结果的尾数进行合并,将合并后的数据作为所述运算结果对应的浮点原始格式的浮点数据。10.根据权利要求8所述的浮点数据处理方法,其特征在于,所述合并处理包括:判断所述浮点内部格式下的运算结果的阶码是否落入从浮点原始格式的规格化数转换成浮点内部格式后,且位数比所述运算结果的阶码位数少一位的阶码所对应的范围内;当落入所述范围时,先将所述阶码转换为移码,再将转化为移码之后的阶码去除一位,且去除一位后的阶码对应的原码所指示的数值与去除一位前的阶码对应的原码所指示的数值相等,之后,将浮点内部格式的运算结果的符号位、去除一位后的阶码、以及浮点内部格式的运算结果的尾数进行合并,将合并后的数据作为所述运算结果对应的浮点原始格式的浮点数据。11.根据权利要求9所述的浮点数据处理方法,其特征在于,所述合并处理还包括:判断所述浮点内部格式下的运算结果的阶码是否落入从浮点原始格式的规格化数转换成浮点内部格式后,且位数比所述运算结果的阶码位数少一位的阶码所对应的范围内;当不落入所述范围时,将所述阶码变为全0并去除一位数以得到新的阶码,并对所述浮点内部格式的运算结果的尾数进行右移位转换,得到新的尾数;将浮点内部格式的运算结果的符号位、新的阶码、以及新的尾数进行合并,将合并后的数据作为所述运算结果对应的浮点原始格式的浮点数据。12.根据权利要求11所述的浮点数据处理方法,其特征在于,所述右移位转换包括:对所述尾数进行第二预设位数的右移位,其中,在进行右移位时先用一位1进行右移位之后全部用0进行右移位;所述第二预设位数=设定值

执行合并处理前浮点内部格式的运算结果的阶码的移码所对应的十进制数值;所述设定值的取值规则包括:当所述浮点数据为单精度时,所述设定值等于129;当所述浮点数据为双精度时,所述设定值等于1025;当所述浮点数据为半精度时,所述设定值等于17;所述第二预设位数和所述设定值为十进制数。13.一种浮点数据处理装置,其特征在于,包括:拆分模块,用于当将浮点数据由除浮点运算部件和浮点寄存器堆部件之外的部件输入至浮点寄存器堆部件时,对所述浮点数据进行拆分处理以将所述浮点数据的格式由浮点原始格式转换为浮点内部格式;其中,浮点内部格式下浮点数据所指示的数值与浮点原始格
式下浮点数据所指示的数值相等;浮点寄存器堆部件,与所述拆分模块连接,用于存储浮点内部格式的浮点数据;浮点运算部件,与所述浮点寄存器堆部件连接,用于对浮点寄存器堆部件中存储的浮点数据进行浮点运算以得到运算结果,并将运算结果输入至浮点寄存器堆部件中存储,其中,所述运算结果的格式为浮点内部格式,所述浮点运算部件在对浮点数据进行运算时,所述浮点数据的格式均为浮点内部格式;以及,当运算结果由浮点运算部件传输至浮点寄存器堆部件存储时,所述运算结果的格式不进行转换;其中,所述拆分模块用于:当所述浮点原始格式为规格化数时,从所述浮点原始格式的浮点数据中拆分出符号位、阶码、和尾数,并对所述阶码增加一位数,且增加一位后的阶码与增加一位前的阶码所指示的数值相等,以及将所述阶码转换为原码;以及,所述浮点寄存器堆部件还用于:利用不同域分别存储经所述拆分模块拆分得到的浮点数符号位、浮点数阶码原码、浮点数尾数原码。14.根据权利要求13所述的浮点数据处理装置,其特征在于,所述浮点原始格式包括ieee 754标准数据格式和bf16数据格式。15.根据权利要求14所述的浮点数据处理装置,其特征在于,所述拆分模块还用于:当所述浮点原始格式为规格化数,从所述浮点原始格式的浮点数据中拆分出符号位、阶码、和尾数,以及,先对所述阶码增加一位数,且增加一位后的阶码对应的原码所指示的数值与增加一位前的阶码对应的原码所指示的数值相等,之后,再将增加一位后的阶码转换为原码。16.根据权利要求14所述的浮点数据处理装置,其特征在于,所述拆分模块还用于:当所述浮点原始格式为规格化数时,从所述浮点原始格式的浮点数据中拆分出符号位、阶码、和尾数,以及,先将所述阶码转换为原码,再在原码格式下的阶码的最高位之前增加一位数,以将阶码原码转换为增加一位后的阶码原码,且增加一位前的阶码原码与增加一位后的阶码原码表示的数值相等。17.根据权利要求14所述的浮点数据处理装置,其特征在于,所述拆分模块还用于:当所述浮点原始格式为非规格化数,对所述浮点原始格式的浮点数据进行规格化处理,从规格化处理后的浮点数据中拆分符号位、阶码、和尾数,并将所述阶码转换为原码。18.根据权利要求17所述的浮点数据处理装置,其特征在于,所述拆分模块还用于:将所述浮点原始格式的尾数用0进行第一预设位数的左移位,并将差值所对应的二进制数作为所述浮点内部格式下浮点数据的阶码,且所述浮点内部格式下浮点数据的阶码的位宽为浮点原始格式的浮点数据的阶码位宽加一;其中,所述差值由设定值与第一预设位数相减得出;所述第一预设位数为所述浮点原始格式的尾数从首位数的第一个1之前的零的个数加一;其中,所述设定值和所述第一预设位数均为十进制数,所述设定值的取值规则包括:当所述浮点数据为单精度时,所述设定值等于129;当所述浮点数据为双精度时,所述设定值等于1025;当所述浮点数据为半精度时,所述设定值等于17。19.根据权利要求14所述的浮点数据处理装置,其特征在于,所述装置还包括:合并模块,与所述浮点寄存器堆部件连接,用于在浮点寄存器堆部件输出所述运算结果至除所述浮点运算部件和浮点寄存器堆部件之外的部件时,对所述运算结果进行合并处理以将所述浮点内部格式转换为所述浮点原始格式;其中,浮点原始格式下运算结果所指
示的数值与浮点内部格式下运算结果所指示的数值相等。20.根据权利要求19所述的浮点数据处理装置,其特征在于,所述合并模块还用于:将所述浮点内部格式的阶码去除一位,并将所述符号位、去除一位后的阶码、和尾数进行合并。21.根据权利要求20所述的浮点数据处理装置,其特征在于,所述合并模块还用于:判断所述浮点内部格式下的运算结果的阶码是否落入从浮点原始格式的规格化数转换成浮点内部格式后,且位数比所述运算结果的阶码位数少一位的阶码所对应的范围内;当落入所述范围时,先将所述运算结果的阶码去除一位,且去除一位后的阶码所指示的数值与去除一位前的阶码所指示的数值相等,再将所述去除一位后的阶码转换为移码,之后,将浮点内部格式的运算结果的符号位、转换为移码之后的阶码、以及浮点内部格式的运算结果的尾数进行合并,将合并后的数据作为所述运算结果对应的浮点原始格式的浮点数据。22.根据权利要求20所述的浮点数据处理装置,其特征在于,所述合并模块还用于:判断所述浮点内部格式下的运算结果的阶码是否落入从浮点原始格式的规格化数转换成浮点内部格式后,且位数比所述运算结果的阶码位数少一位的阶码所对应的范围内;当落入所述范围时,先将所述阶码转换为移码,再将转化为移码之后的阶码去除一位,且去除一位后的阶码对应的原码所指示的数值与去除一位前的阶码对应的原码所指示的数值相等,之后,将浮点内部格式的运算结果的符号位、去除一位后的阶码、以及浮点内部格式的运算结果的尾数进行合并,将合并后的数据作为所述运算结果对应的浮点原始格式的浮点数据。23.根据权利要求20所述的浮点数据处理装置,其特征在于,所述合并模块还用于:判断所述浮点内部格式下的运算结果的阶码是否落入从浮点原始格式的规格化数转换成浮点内部格式后,且位数比所述运算结果的阶码位数少一位的阶码所对应的范围内;当不落入所述范围时,将所述阶码变为全0并去除一位数以得到新的阶码,并对所述浮点内部格式的运算结果的尾数进行右移位转换,得到新的尾数;将浮点内部格式的运算结果的符号位、新的阶码、以及新的尾数进行合并,将合并后的数据作为所述运算结果对应的浮点原始格式的浮点数据。24.根据权利要求23所述的浮点数据处理装置,其特征在于,所述合并模块还用于:对所述尾数进行第二预设位数的右移位,其中,在进行右移位时先用一位1进行右移位之后全部用0进行右移位;所述第二预设位数=设定值

执行合并处理前浮点内部格式的运算结果的阶码的移码所对应的十进制数值;所述设定值的取值规则包括:当所述浮点数据为单精度时,所述设定值等于129;当所述浮点数据为双精度时,所述设定值等于1025;当所述浮点数据为半精度时,所述设定值等于17;所述第二预设位数和所述设定值为十进制数。25.一种计算机存储介质,其中,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现权利要求1至12任一项所述的方法。

技术总结
本申请提出一种浮点数据处理方法及装置,方法包括:当浮点数据由除浮点运算部件和浮点寄存器堆部件之外的部件输入至浮点寄存器堆部件时,对所述浮点数据进行拆分处理以将所述浮点数据的格式由浮点原始格式转换为浮点内部格式;其中,浮点内部格式下浮点数据所指示的数值与浮点原始格式下浮点数据所指示的数值相等;利用浮点运算部件对浮点寄存器堆部件中格式为浮点内部格式的浮点数据进行浮点运算以得到运算结果,所述运算结果的格式为浮点内部格式,以及,所述浮点运算部件在对浮点数据进行运算时,所述浮点数据的格式均为浮点内部格式。本申请提供的方法效率较高、成本较低、复杂度较低、且可兼容多种浮点格式、处理效率也较高。也较高。也较高。


技术研发人员:郇丹丹 赵继业 李祖松
受保护的技术使用者:北京微核芯科技有限公司
技术研发日:2021.08.16
技术公布日:2021/9/9
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1