【技术实现步骤摘要】
一种浮点数据处理方法及装置
本申请涉及计算机处理器领域,尤其涉及一种浮点数据处理方法及装置。
技术介绍
高性能处理器中通常会设置浮点运算部件以对浮点数进行浮点运算。其中,浮点数主要由符号位S、阶码Exp、以及尾数Mantissa三个部分组成,符号位用于表示浮点数的正负,阶码用于表示小数点在该数中的位置,它是一个带符号的整数,尾数用于表示数的有效数值。例如在IEEE754标准中符号位用于表示浮点数的正负、阶码采用移码的形式表示,尾数采用原码表示。同时,所述浮点数还包括多种格式,分别为:规格化数、非规格化数、正负零、正负无穷以及非数。正负零、正负无穷以及非数统称特殊数。其中,正负零的阶码和尾数均为全0;正负无穷的阶码为全1且尾数为全0;非数的阶码为全1且尾数不为0;非规格化数的阶码为全0且尾数不为0;其余情况表示规格化数。其中,对于规格化数而言其对应的十进制数值Value1可表示为:Value1=(-1)s×1.Mantissa×2Exp-Bias;对于非规格化数其对应的十进制数值Value2可表示为:Value2=(-1)s×0.Mantissa×2Exp-Bias+1;Bias主要指示阶码偏移,对于单精度类型的浮点数而言,Bias为127;对于双精度类型的浮点数而言,Bias为1023。浮点运算部件主要用于对格式为规格化数的浮点数进行浮点运算。并且,当浮点运算部件对浮点数进行运算所得到运算结果较小,而小于了规格化数所能指示的最小值时,则需要利用非规格化数来表示该运算结果。以及,由于浮点运算部件主要用于对规格化 ...
【技术保护点】
1.一种浮点数据处理方法,其特征在于,包括:/n当浮点数据由除浮点运算部件和浮点寄存器堆部件之外的部件输入至浮点寄存器堆部件时,对所述浮点数据进行第一处理以将所述浮点数据的格式由浮点原始格式转换为浮点内部格式;其中,浮点内部格式下浮点数据所指示的数值与浮点原始格式下浮点数据所指示的数值相等;/n利用浮点运算部件对浮点寄存器堆部件中格式为浮点内部格式的浮点数据进行浮点运算以得到运算结果,所述运算结果的格式为浮点内部格式,以及,所述浮点运算部件在对浮点数据进行运算时,所述浮点数据的格式均为浮点内部格式。/n
【技术特征摘要】
1.一种浮点数据处理方法,其特征在于,包括:
当浮点数据由除浮点运算部件和浮点寄存器堆部件之外的部件输入至浮点寄存器堆部件时,对所述浮点数据进行第一处理以将所述浮点数据的格式由浮点原始格式转换为浮点内部格式;其中,浮点内部格式下浮点数据所指示的数值与浮点原始格式下浮点数据所指示的数值相等;
利用浮点运算部件对浮点寄存器堆部件中格式为浮点内部格式的浮点数据进行浮点运算以得到运算结果,所述运算结果的格式为浮点内部格式,以及,所述浮点运算部件在对浮点数据进行运算时,所述浮点数据的格式均为浮点内部格式。
2.根据权利要求1所述的浮点数据处理方法,其特征在于,所述浮点原始格式满足IEEE754标准,所述第一处理包括:将所述浮点原始格式的阶码增加一位。
3.根据权利要求2所述的浮点数据处理方法,其特征在于,当所述浮点原始格式为规格化数时,所述第一处理包括:在所述浮点原始格式的浮点数据的阶码最高位增加一位0,并将阶码最高位增加一位0后所得的二进制数与设定值对应的二进制数相加的和所对应的二进制数作为浮点内部格式的浮点数据的阶码;
所述设定值的取值规则包括:当所述浮点数据为单精度时,所述设定值等于129;当所述浮点数据为双精度时,所述设定值等于1025,所述设定值为十进制数。
4.根据权利要求2所述的浮点数据处理方法,其特征在于,当所述浮点原始格式为非规格化数时,所述第一处理包括:将所述浮点原始格式的尾数用0进行第一预设位数的左移位,并将差值所对应的二进制数作为所述浮点内部格式下浮点数据的阶码,且所述浮点内部格式下浮点数据的阶码的位宽为浮点原始格式的浮点数据的阶码位宽加一;其中,所述差值由设定值与第一预设位数相减得出;所述第一预设位数为所述浮点原始格式的尾数从首位数的第一个1之前的零的个数加一;其中,所述设定值和所述第一预设位数均为十进制数,所述设定值的取值规则包括:当所述浮点数据为单精度时,所述设定值等于129;当所述浮点数据为双精度时,所述设定值等于1025。
5.根据权利要求2所述的浮点数据处理方法,其特征在于,
所述浮点原始格式还包括特殊数,所述特殊数包括非数、正负零、正负无穷;
当所述浮点原始格式为非数时,所述第一处理包括:在所述浮点原始格式的阶码最高位增加一位1;
当所述浮点原始格式为正负零时,所述第一处理包括:在所述浮点原始格式的阶码最高位增加一位0;
当所述浮点原始格式为正负无穷时,所述第一处理包括:在所述浮点原始格式的阶码最高位增加一位1,并将所述最高位后面的两位设置为10。
6.根据权利要求1所述的浮点数据处理方法,其特征在于,所述方法还包括:
浮点运算部件将运算结果传输至所述浮点寄存器堆部件中存储,所述运算结果的格式不进行转换;
浮点寄存器堆部件输出所述运算结果至除所述浮点运算部件和浮点寄存器堆部件之外的部件时,对所述运算结果进行第二处理以将所述浮点内部格式转换为所述浮点原始格式;其中,浮点原始格式下运算结果所指示的数值与浮点内部格式下运算结果所指示的数值相等。
7.根据权利要求6所述的浮点数据处理方法,其特征在于,所述浮点原始格式满足IEEE754标准;所述第二处理包括:将所述浮点内部格式的阶码去除一位。
8.根据权利要求7所述的浮点数据处理方法,其特征在于,所述第二处理包括:
判断所述浮点内部格式的运算结果的阶码是否在从浮点原始格式的规格化数转换成浮点内部格式后的阶码所对应的范围内;
当所述运算结果的阶码在从浮点原始格式的规格化数转换成浮点内部格式后的阶码所对应的范围内时,将浮点内部格式的运算结果的阶码所对应的二进制数与设定值对应的二进制数之差去除最高位后所得的数作为转换后的浮点原始格式的阶码;
以及,所述设定值的取值规则包括:当所述浮点数据为单精度时,所述设定值等于129;当所述浮点数据为双精度时,所述设定值等于1025,所述设定值为十进制数。
9.根据权利要求7所述的浮点数据处理方法,其特征在于,所述第二处理还包括:
判断所述浮点内部格式的运算结果的阶码是否在从浮点原始格式的非规格化数转换成浮点内部格式后的阶码所对应的范围内;
当所述运算结果的阶码在从浮点原始格式的非规格化数转换成的浮点内部格式后的阶码所对应的范围内时,将所述运算结果的阶码变为全0且去除一位,并对所述浮点内部格式的运算结果的尾数进行右移位转换,以作为转换后的浮点原始格式的尾数。
10.根据权利要求9所述的浮点数据处理方法,其特征在于,所述右移位转换是指尾数进行第二预设位数的右移位,其中,在进行右移位时先用一位1进行右移位之后全部用0进行右移位;
所述第二预设位数=设定值-执行第二处理前浮点内部格式的运算结果的阶码所对应的十进制数值;
所述设定值的取值规则包括:当所述浮点数据为单精度时,所述设定值等于129;当所述浮点数据为双精度时,所述设定值等于1025,所述第二预设位数和所述设定值为十进制数。
11.根据权利要求7所述的浮点数据处理方法,其特征在于,所述第二处理包括:
判断所述浮点内部格式的运算结果的阶码的最高三位是否为000、111或110;
当所述运算结果的阶码的最高三位为000或111时,将运算结果的阶码的最高位去除以作为所述运算结果对应的浮点原始格式的阶码;
当所述运算结果的阶码的最高三位为110时,将所述运算结果的阶码的最高位去除,并将去除了最高位后所得的数的前两位设置为11,作为所述运算结果对应的浮点原始格式的阶码。
12.一种浮点数据处理装置,其特征在于,包括:
第一转换模块,用于当将浮点数据由除浮点运算...
【专利技术属性】
技术研发人员:郇丹丹,赵继业,
申请(专利权)人:北京微核芯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。