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

技术编号:27740499 阅读:22 留言:0更新日期:2021-03-19 13:33
本申请提出一种浮点数据处理方法及装置,方法包括:当浮点数据由除浮点运算部件和浮点寄存器堆部件之外的部件输入至浮点寄存器堆部件时,对所述浮点数据进行第一处理以将所述浮点数据的格式由浮点原始格式转换为浮点内部格式;其中,浮点内部格式下浮点数据所指示的数值与浮点原始格式下浮点数据所指示的数值相等;利用浮点运算部件对浮点寄存器堆部件中格式为浮点内部格式的浮点数据进行浮点运算以得到运算结果,所述运算结果的格式为浮点内部格式,以及,所述浮点运算部件在对浮点数据进行运算时,所述浮点数据的格式均为浮点内部格式。本申请提供的方法效率较高、成本较低、复杂度较低。

【技术实现步骤摘要】
一种浮点数据处理方法及装置
本申请涉及计算机处理器领域,尤其涉及一种浮点数据处理方法及装置。
技术介绍
高性能处理器中通常会设置浮点运算部件以对浮点数进行浮点运算。其中,浮点数主要由符号位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为根据本申请一个实施例提供的浮点数据处理方法的流程示意图;图2为根据本申请一个实施例提供的一种浮点数据处理装置的结构示意图;图3为根据本申请一个实施例提供的另一种浮点数据处理装置的结构示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨本文档来自技高网
...

【技术保护点】
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

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

1