数据处理方法、装置、芯片、计算机设备及存储介质制造方法及图纸

技术编号:39298671 阅读:8 留言:0更新日期:2023-11-07 11:07
本申请公开了一种数据处理方法,包括:根据第一操作数的第一指数和第二操作数的第二指数之间的大小关系,确定的左输出尾数和右输出尾数输入远端加法路径,得到远端加法尾数;基于指数差值所处的数值范围,将左输出尾数和右输出尾数输入远端减法路径或近端减法路径,得到目标减法尾数;基于第一操作数和第二操作数的符号位,对远端加法尾数和目标减法尾数进行结果选择,得到加法尾数和减法尾数;确定加法符号位和加法指数,以及减法符号位和减法指数;并生成加法结果和减法结果。本申请基于两个操作数的指数差值可选用不同的运算路径对两个操作数进行加减法的同步运算以降低运算延迟,从而提升浮点加减法的同步运算性能,降低浮点运算模块的体积。低浮点运算模块的体积。低浮点运算模块的体积。

【技术实现步骤摘要】
数据处理方法、装置、芯片、计算机设备及存储介质


[0001]本申请涉及计算机
,更具体地,涉及一种数据处理方法、装置、芯片、计算机设备及存储介质。

技术介绍

[0002]浮点(Floating Point)是一种对于实数的近似值数值表现法,由一个有效数字(即尾数)加上幂数来表示,通常是乘以某个基数的整数次指数得到。以这种表示法表示的数值,称为浮点数(Floating

Point Number)。利用浮点进行计算,称为浮点运算。
[0003]因为浮点运算具有很高的动态范围和数据精度,所以被广泛应用于业界主流的处理器中,而处理器对浮点加减法运算的使用在浮点运算中占有很高的使用频率。目前,为适配多场景下的处理器使用,经常需要对两操作数同步进行浮点数加减法运算。
[0004]相关技术通过例化单个计算单元进行浮点数加减法的同步运算,需要对在先计算的结果进行保存,该计算方法的时间复杂度较高,导致同步运算的性能低下。而通过例化两个计算单元的同步运算,使得运算模块使用面积增大,导致面效比不高。

技术实现思路

[0005]本申请实施例提供一种数据处理方法、装置、芯片、计算机设备及存储介质。旨在提升浮点数的加减同步运算性能和浮点运算模块的面效比。
[0006]一方面,本申请实施例提供一种数据处理方法,该方法包括:根据第一操作数的第一指数和第二操作数的第二指数之间的大小关系,确定左输出尾数和右输出尾数;将左输出尾数和右输出尾数输入远端加法路径,得到远端加法尾数;基于第一指数和第二指数的指数差值所处的数值范围,将左输出尾数和右输出尾数输入远端减法路径或者近端减法路径,得到目标减法尾数;通过结果选择单元基于第一操作数和第二操作数的符号位,对远端加法尾数和目标减法尾数进行结果选择,得到加法结果的加法尾数和减法结果的减法尾数;确定加法尾数对应的加法符号位和加法指数,以及减法尾数对应的减法符号位和减法指数;根据加法符号位、加法指数和加法尾数生成加法结果,以及根据减法符号位、减法指数和减法尾数生成减法结果。
[0007]另一方面,本申请实施例还提供一种数据处理装置,该装置包括:尾数确定模块,用于根据第一操作数的第一指数和第二操作数的第二指数之间的大小关系,确定左输出尾数和右输出尾数;加法运算模块,用于将左输出尾数和右输出尾数输入远端加法路径,得到远端加法尾数;减法运算模块,用于基于第一指数和第二指数的指数差值所处的数值范围,将左输出尾数和右输出尾数输入远端减法路径或者近端减法路径,得到目标减法尾数;结果选择模块,用于通过结果选择单元基于第一操作数和第二操作数的符号位,对远端加法尾数和目标减法尾数进行结果选择,得到加法结果的加法尾数和减法结果的减法尾数;结果确定模块,用于确定加法尾数对应的加法符号位和加法指数,以及减法尾数对应的减法符号位和减法指数;结果生成模块,用于根据加法符号位、加法指数和加法尾数生成加法结
果,以及根据减法符号位、减法指数和减法尾数生成减法结果。
[0008]可选地,加法运算模块用于:基于尾数交换单元将左输出尾数输入第一对阶单元,并将右输出尾数输入远端加法单元;通过第一对阶单元根据第一指数和第二指数的指数差值对左输出尾数进行对阶移位,得到远端移位尾数,并将远端移位尾数输入远端加法单元;基于远端加法单元对远端移位尾数和右输出尾数进行尾数加法运算,得到第一中间结果和第二中间结果,并将第一中间结果和第二中间结果输入第一规格化单元;通过第一规格化单元根据第一移位位宽和第二移位位宽分别对第一中间结果和第二中间结果进行规格移位,得到第一中间结果对应的第一移位结果和第二中间结果对应的第二移位结果,并将第一移位结果和第二移位结果输入第一选择单元,第一移位位宽和第二移位位宽为根据规格化标准计算得到;基于舍入单元和第一选择单元对第一移位结果和第二移位结果进行舍入操作,得到远端加法尾数。
[0009]可选地,减法运算模块包括:第一减法子模块,用于当尾数交换单元确定第一指数和第二指数的指数差值所处的数值范围不大于差值阈值时,将左输出尾数和右输出尾数输入远端减法路径,得到远端减法尾数;第二减法子模块,用于当尾数交换单元确定第一指数和第二指数的指数差值所处的数值范围大于差值阈值时,将左输出尾数和右输出尾数输入近端减法路径,得到近端减法尾数。
[0010]可选地,第一减法子模块用于:当尾数交换单元确定第一指数和第二指数的指数差值所处的数值范围不大于差值阈值时,将左输出尾数输入第一对阶单元,并将右输出尾数输入远端减法单元;通过第一对阶单元根据指数差值对左输出尾数进行对阶移位,得到远端移位尾数,并将远端移位尾数输入远端减法单元;基于远端减法单元对远端移位尾数和右输出尾数进行尾数减法运算,得到第三中间结果和第四中间结果,并将第三中间结果和第四中间结果输入第二规格化单元;通过第二规格化单元根据第三移位位宽和第四移位位宽分别对第三中间结果和第四中间结果进行规格移位,得到第三中间结果对应的第三移位结果和第四中间结果对应的第四移位结果,并将第三移位结果和第四移位结果输入第二选择单元;基于舍入单元和第二选择单元对第三移位结果和第四移位结果进行舍入操作,得到远端减法尾数。
[0011]可选地,第二减法子模块包括:尾数输入单元,用于当尾数交换单元确定第一指数和第二指数的指数差值所处的数值范围大于差值阈值时,将左输出尾数输入第二对阶单元,并将右输出尾数输入近端减法单元和编码单元;尾数移位单元,用于通过第二对阶单元根据指数差值对左输出尾数进行对阶移位,得到近端移位尾数,并将近端移位尾数输入近端减法单元和编码单元;尾数减法单元,用于基于近端减法单元对近端移位尾数和右输出尾数进行尾数减法运算,得到第五中间结果和第六中间结果,并将第五中间结果和第六中间结果输入第三规格化单元;结果移位单元,用于根据第三规格化单元、编码单元和统计单元对第五中间结果和第六中间结果进行并行规格移位,得到第五中间结果对应的第五移位结果和第六中间结果对应的第六移位结果,并将第五移位结果和第六移位结果输入调整单元;结果调整单元,用于基于移位调整单元对第五移位结果和第六移位结果进行移位调整,得到第五移位结果对应的第一调整尾数和第六移位结果对应的第二调整尾数,并将第一调整尾数和第二调整尾数输入第三选择单元;尾数选择单元,用于基于第三选择单元对第一调整尾数和第二调整尾数进行选择操作,得到近端减法尾数。
[0012]可选地,结果移位单元用于:基于编码单元对近端移位尾数和右输出尾数进行预测编码,得到前导零编码,并将前导零编码输入统计单元;根据统计单元对前导零编码进行统计操作,得到前导零个数,并将前导零个数输入第三规格化单元;通过第三规格化单元基于前导零个数对对第五中间结果和第六中间结果进行规格移位,得到第五中间结果对应的第五移位结果和第六中间结果对应的第六移位结果。
[0013]可选地,结果选择单元包括符号比较子单元、加法选择子单元、减法选择子单元和路径选择子单元,目标减法尾数为近端减法尾数和远端减法尾数中的一种;结果选择模块,包括本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:根据第一操作数的第一指数和第二操作数的第二指数之间的大小关系,确定左输出尾数和右输出尾数;将所述左输出尾数和所述右输出尾数输入远端加法路径,得到远端加法尾数;基于所述第一指数和所述第二指数的指数差值所处的数值范围,将所述左输出尾数和所述右输出尾数输入远端减法路径或者近端减法路径,得到目标减法尾数;通过结果选择单元基于第一操作数和第二操作数的符号位,对所述远端加法尾数和目标减法尾数进行结果选择,得到加法结果的加法尾数和减法结果的减法尾数;确定所述加法尾数对应的加法符号位和加法指数,以及所述减法尾数对应的减法符号位和减法指数;根据所述加法符号位、所述加法指数和所述加法尾数生成加法结果,以及根据所述减法符号位、所述减法指数和所述减法尾数生成减法结果。2.根据权利要求1所述的方法,其特征在于,所述将所述左输出尾数和所述右输出尾数输入远端加法路径,得到远端加法尾数,包括:基于尾数交换单元将所述左输出尾数输入第一对阶单元,并将所述右输出尾数输入远端加法单元;通过所述第一对阶单元根据所述第一指数和所述第二指数的指数差值对所述左输出尾数进行对阶移位,得到远端移位尾数,并将所述远端移位尾数输入所述远端加法单元;基于所述远端加法单元对所述远端移位尾数和所述右输出尾数进行尾数加法运算,得到第一中间结果和第二中间结果,并将所述第一中间结果和所述第二中间结果输入第一规格化单元;通过所述第一规格化单元根据第一移位位宽和第二移位位宽分别对所述第一中间结果和所述第二中间结果进行规格移位,得到所述第一中间结果对应的第一移位结果和所述第二中间结果对应的第二移位结果,并将所述第一移位结果和所述第二移位结果输入第一选择单元,所述第一移位位宽和第二移位位宽为根据规格化标准计算得到;基于舍入单元和所述第一选择单元对所述第一移位结果和所述第二移位结果进行舍入操作,得到远端加法尾数。3.根据权利要求1或2所述的方法,其特征在于,所述基于所述第一指数和所述第二指数的指数差值所处的数值范围,将所述左输出尾数和所述右输出尾数输入远端减法路径或者近端减法路径,得到目标减法尾数,包括:当尾数交换单元确定所述第一指数和所述第二指数的指数差值所处的数值范围不大于差值阈值时,将所述左输出尾数和所述右输出尾数输入远端减法路径,得到远端减法尾数;当尾数交换单元确定所述第一指数和所述第二指数的指数差值所处的数值范围大于差值阈值时,将所述左输出尾数和所述右输出尾数输入近端减法路径,得到近端减法尾数。4.根据权利要求3所述的方法,其特征在于,所述将所述左输出尾数和所述右输出尾数输入远端减法路径,得到远端减法尾数,包括:将所述左输出尾数输入第一对阶单元,并将所述右输出尾数输入远端减法单元;通过所述第一对阶单元根据所述指数差值对所述左输出尾数进行对阶移位,得到远端
移位尾数,并将所述远端移位尾数输入远端减法单元;基于所述远端减法单元对所述远端移位尾数和所述右输出尾数进行尾数减法运算,得到第三中间结果和第四中间结果,并将所述第三中间结果和所述第四中间结果输入第二规格化单元;通过所述第二规格化单元根据第三移位位宽和第四移位位宽分别对所述第三中间结果和所述第四中间结果进行规格移位,得到所述第三中间结果对应的第三移位结果和所述第四中间结果对应的第四移位结果,并将所述第三移位结果和所述第四移位结果输入第二选择单元;基于舍入单元和所述第二选择单元对所述第三移位结果和所述第四移位结果进行舍入操作,得到远端减法尾数。5.根据权利要求3所述的方法,其特征在于,所述将所述左输出尾数和所述右输出尾数输入近端减法路径,得到近端减法尾数,包括:将所述左输出尾数输入第二对阶单元,并将所述右输出尾数输入近端减法单元和编码单元;通过所述第二对阶单元根据所述指数差值对所述左输出尾数进行对阶移位,得到近端移位尾数,并将所述近端移位尾数输入近端减法单元和所述编码单元;基于所述近端减法单元对所述近端移位尾数和所述右输出尾数进行尾数减法运算,得到第五中间结果和第六中间结果,并将所述第五中间结果和所述第六中间结果输入第三规格化单元;根据所述第三规格化单元、所述编码单元和统计单元对所述第五中间结果和所述第六中间结果进行并行规格移位,得到所述第五中间结果对应的第五移位结果和所述第六中间结果对应的第六移位结果,并将所述第五移位结果和所述第六移位结果输入调整单元;基于移位调整单元对所述第五移位结果和所述第六移位结果进行移位调整,得到所述第五移位结果对应的第一调整尾数和所述第六移位结果对应的第二调整尾数,并将所述第一调整尾数和所述第二调整尾数输入第三选择单元;基于所述第三选择单元对所述第一调整尾数和所述第二调整尾数进行选择操作,得到近端减法尾数。6.根据权利要求5所述的方法,其特征在于,所述根据所述第三规格化单元、所述编码单元和统计单元对所述第五中间结果和所述第六中间结果进行并行规格移位,得到所述第五中间结果对应的第五移位结果和所述第六中间结果对应的第六移位结果,包括:基于所述编码单元对所述近端移位尾数和所述右输出尾数进行预测编码,得到前导零编码,并将所述前导零编码输入统计单元;根据所述统计单元对所述前导零编码进行统计操作,得到前导零个数,并将所述前导零个数输入所述第三规格化单元;通过所述第三规格化单元基于所述前导零个数对所述对所述第五中间结果和所述第六中间结果进行规格移位,得到所述第五中间结果对应的第五移位结果和所述第六中间结果对应的第六移位结果。7.根据权利要求1至6任一项所述的方法,其特征在于,所述结果选择单元包括符号比较子单元、加法选择子单元、减法选择子单元和路径选择子单元,所述目标减法尾数为近端
减法尾数和远端减法尾数中的一种;所述通过结果选择单元基于第一操作数和第二操作数的符号位,对所述远端加法尾数和目标减法尾数进行结果选择,得到加法结果的加法尾数和减法结果的减法尾数,包括:将所述远端加法尾数输入所述加法选择子单元和所述减法选择子单元;根据所述路径选择子单元对所述近端减法尾数和远端减法尾数进行尾数选择,得到减法中间尾数,并将所述减法中间尾数输入至所述加法选择子单元和所述减法选择子单元;基于所述符号比较子单元对所述第一操作数和第二操作数的符号位进行符号比较,得到比较结果,并将所述比较结果输入所述加法选择子单元和所述减法选择子单元;通过所述加法选择子单元和所述减法选择子单元基于所述比较结果进行结果选择,得到加法选择尾数和减法选择尾数;将所述加法选择尾数和所述减法选择尾数对应输入第一数据处理单元和第二数据处理单元进行数据处理,得到所述加法结果的加法尾数和所述减法结果的减法尾数。8.根据权利要求7所述的方法,其特征在于,所述通过所述加法选择子单元和所述减法选择子单元基于所述比较结果进行结果选择,得到加法选择尾数和减法选择尾数,包括:当所述加法选择子单元确定所述比较结果为符号相同时,将所述远端加法尾数作为加法选择尾数;当所述加法选择子单元确定所述比较结果为符号不同时,将所述减法中间尾数作为加法选择尾数;当所述减法选择子单元确定所述比较结果为符号相同时,将所述减法中间尾数作为减法选择尾数;当所述减法选择子单元确定所述比较结果为符号不同时,将所述远端加法尾数作为减法选择尾数。9.根据权利要求1所述的方法,其特征在于,所述根据第一操作数的第一指数和第二操作数的第二指数之间的大小关系,确定左输出尾数和右输出尾数,包括:基于指数比较单元对第一操作数的第一指数和第二操作数的第二指数进行指数预处理,得到所述第一指数和所述第二指数之间的大小关系,并将所述大小关系输入尾数交换单元;通过尾数交换单元根据所述大小关系对所述第一操作数的第一尾数和所述第二操作数的第二尾数进行尾...

【专利技术属性】
技术研发人员:任子木
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1