【技术实现步骤摘要】
一种浮点数据处理方法、装置及存储介质
[0001]本申请涉及计算机处理器领域,尤其涉及一种浮点数据处理方法及装置。
技术介绍
[0002]随着人工智能、物联网、区块链、数字信号处理等技术的发展,对处理器的计算能力的要求越来越高,在从移动设备、笔记本电脑、台式机到服务器的所有计算机系统中,浮点数的计算都是一个非常重要的组成部分。高性能处理器中通常会设置浮点运算部件以对浮点数进行浮点运算。其中,浮点数主要由符号位S、阶码Exp、以及尾数Mantissa三个部分组成,符号位用于表示浮点数的正负,阶码用于表示小数点在该数中的位置,它是一个带符号的整数,尾数用于表示数的有效数值。以及,浮点数据包括多种格式,例如包括IEEE 754标准数据格式、BF16数据格式(16位脑浮点,brain floating point)等。
[0003]其中,由于不同格式之间的浮点数据很难统一计算,因此现有的处理器通常在硬件上一般只支持一种特定的浮点数据格式。则当利用现有处理器处理不同格式的浮点数据时,处理效率较低,复杂度较高、耗时长。
技术实现思路
[0004]本申请提供一种浮点数据处理方法及浮点数据处理装置,以至少解决相关技术中的浮点数据处理效率低、耗时长、复杂度高的技术问题。
[0005]本申请第一方面实施例提出一种浮点数据处理方法,包括:当浮点数据由除浮点运算部件和浮点寄存器堆部件之外的部件输入至浮点寄存器堆部件时,对所述浮点数据进行拆分处理以将所述浮点数据的格式由浮点原始格式转换为浮点内部格式;其中,浮点 ...
【技术保护点】
【技术特征摘要】
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.一种浮点数据处理装置,其特征在于,包括:拆分模块,用于当将浮点数据由除浮点运算部件和浮点寄存器堆部件之外的部件输入至浮点寄存器堆部件时,对所述浮点数据进行拆分处理以将所述浮点数据的格式由浮点原始格式转换为浮点内部格式;其中,浮点内部格式下浮点数据所指示的数值与浮点原始格...
【专利技术属性】
技术研发人员:郇丹丹,赵继业,李祖松,
申请(专利权)人:北京微核芯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。