操作数处理系统、方法及处理器技术方案

技术编号:31579335 阅读:22 留言:0更新日期:2021-12-25 11:22
本发明专利技术提供了一种操作数处理系统、方法及处理器,包括:预处理模块根据精度转换指令,通过目标格式的精度值和源操作数的精度值,确定源操作数的待舍入宽度,随机数发生器根据待舍入宽度,生成一个随机数,随机数的宽度与待舍入宽度相同;移位器将随机数与源操作数的最低位对齐,得到对齐数;加法器将源操作数与对齐数进行加和操作,得到加和结果;多路选择器将加和结果的最低位舍去,得到目标格式的目标操作数。本发明专利技术中,在无偏舍入的过程中,所有运算操作都由纯硬件装置完成,降低了整个过程的指令数量,从而降低了计算时间,提升了处理效率。提升了处理效率。提升了处理效率。

【技术实现步骤摘要】
操作数处理系统、方法及处理器


[0001]本专利技术实施例涉及通信
,尤其涉及一种操作数处理、方法及处理器。

技术介绍

[0002]在机器学习、金融分析等领域中,出于对相关算法模型的模型精度需求,往往需要对模型中的操作数进行优化,以在保证模型精度的前提下,尽可能的提升模型计算效率。
[0003]相关技术中,对模型中的操作数的优化方法可以为:将模型中高精度的操作数通过无偏舍入的方式,转化为低精度的操作数,从而使得模型需要的计算资源降低,从而提升了效率。具体的,目前采用纯软件模拟的方式,实现操作数的无偏舍入,即无偏舍入以第一精度值的操作数为输入,无偏舍入过程的每一个操作都通过多条指令来实现,直到通过多步操作计算得到目标操作数,且目标操作数的精度值达到低于第一精度值的第二精度值,即完成无偏舍入操作。
[0004]但是,目前方案中,按照纯软件模拟的方式实现操作数的无偏舍入,由于实现过程中所采用的指令过多,会导致整个过程消耗大量的时间,导致处理效率严重下降。

技术实现思路

[0005]本专利技术实施例提供一种操作数处理系统、方法及处理器,以解决相关技术中按照纯软件模拟的方式实现操作数的无偏舍入,会导致整个过程消耗大量的时间,导致处理效率严重下降的问题。
[0006]第一方面,提供了一种操作数处理系统,所述系统包括:
[0007]预处理模块、随机数生成器、移位器、加法器和多路选择器,所述预处理模块、所述随机数生成器、所述移位器、所述加法器和所述多路选择器之间依次连接;
>[0008]所述预处理模块用于:获取精度转换指令,并根据所述精度转换指令,通过目标格式的精度值和源操作数的精度值,确定所述源操作数的待舍入宽度;
[0009]所述随机数发生器用于:根据所述待舍入宽度,生成一个随机数,所述随机数的宽度与所述待舍入宽度相同;
[0010]所述移位器用于:将所述随机数与所述源操作数的最低位对齐,得到对齐数;
[0011]所述加法器用于:将所述源操作数与所述对齐数进行加和操作,得到加和结果;
[0012]所述多路选择器用于:将所述加和结果的最低位舍去,得到所述目标格式的目标操作数。
[0013]可选的,在所述源格式为定点数格式的情况下;所述预处理模块包括:减法器子模块;
[0014]所述预处理模块具体用于:根据所述精度转换指令,通过所述减法器子模块,计算所述源操作数的精度值与所述目标格式的精度值的差值,并将所述差值确定为所述待舍入宽度。
[0015]可选的,在所述源格式为浮点数格式时的情况下;所述预处理模块包括:格式转换
子模块和减法器子模块;
[0016]所述预处理模块具体用于:
[0017]根据所述精度转换指令,通过所述格式转换子模块将所述源操作数的格式转换为定点数格式,得到新的源操作数;
[0018]在所述新的源操作数的精度值小于或等于所述目标格式的精度值的情况下,确定所述待舍入宽度为0;
[0019]在所述新的源操作数的精度值大于所述目标格式的精度值的情况下,通过所述减法器子模块,计算所述新的源操作数的精度值与所述目标格式的精度值的差值,并将所述差值确定为所述待舍入宽度。
[0020]可选的,所述移位器具体用于:将所述随机数与所述源操作数对齐,得到一个与所述源操作数的宽度相同的对齐数,其中,所述随机数的最低位放置于所述对齐数的最低位的位置,所述对齐数中除了所述最低位的随机数,其他位设置为0。
[0021]可选的,所述加法器具体用于:在将所述对齐数的小数点与所述源操作数的小数点对齐后,进行所述对齐数与所述源操作数的加和操作,得到所述加和结果。
[0022]可选的,所述多路选择器具体用于:将所述加和结果中与所述随机数对应的最低位舍去,得到所述目标操作数。
[0023]可选的,所述精度转换指令包括:源寄存器的第一寄存器标识、目的寄存器的第二寄存器标识、源操作数精度指示寄存器的第三寄存器标识和目的操作数精度指示寄存器的第四寄存器标识;所述预处理模块包括:译码子模块;
[0024]所述预处理模块还用于:通过所述译码子模块对所述精度转换指令进行译码操作,得到所述第一寄存器标识、所述第二寄存器标识、所述第三寄存器标识和所述第四寄存器标识;
[0025]根据所述第一寄存器标识,从所述源寄存器中得到所述源操作数;
[0026]根据所述第三寄存器标识,从所述源操作数精度指示寄存器中得到所述源操作数的精度值;
[0027]根据所述第四寄存器标识,从所述目的操作数精度指示寄存器中得到所述目标格式的精度值。
[0028]可选的,在所述多路选择器将所述加和结果的最低位舍去,得到所述目标格式的目标操作数之后,所述多路选择器还用于:根据所述第二寄存器标识,将所述目标操作数添加至所述目的寄存器。
[0029]可选的,所述目标格式具有预设的可表达范围;
[0030]在所述源操作数的值大于或等于所述可表达范围的最大值时,将所述源操作数的值替换为所述最大值;
[0031]在所述源操作数的值小于或等于所述可表达范围的最小值时,将所述源操作数的值替换为所述最小值。
[0032]可选的,所述随机数发生器包括:线性反馈移位寄存器。
[0033]第二方面,提供了一种处理器,所述处理器包括:
[0034]取指模块、译码模块和功能模块;
[0035]所述取指模块用于:获取精度转换指令;
[0036]所述译码模块用于:对所述精度转换指令进行译码操作,得到所述源格式的源操作数、所述目标格式和所述目标格式的精度值;
[0037]所述功能模块用于:通过所述目标格式的精度值和所述源操作数的精度值,确定所述源操作数的待舍入宽度;
[0038]根据所述待舍入宽度,生成一个随机数,所述随机数的宽度与所述待舍入宽度相同;
[0039]将所述随机数与所述源操作数的最低位对齐,得到对齐数;
[0040]将所述源操作数与所述对齐数进行加和操作,得到加和结果;
[0041]将所述加和结果的最低位舍去,得到所述目标格式的目标操作数。
[0042]可选的,所述功能模块包括:
[0043]预处理模块、随机数生成器、移位器、加法器和多路选择器;
[0044]所述预处理模块用于:通过所述目标格式的精度值和所述源操作数的精度值,确定所述源操作数的待舍入宽度;
[0045]所述随机数发生器用于:根据所述待舍入宽度,生成一个随机数,所述随机数的宽度与所述待舍入宽度相同;
[0046]所述移位器用于:将所述随机数与所述源操作数的最低位对齐,得到对齐数;
[0047]所述加法器用于:将所述源操作数与所述对齐数进行加和操作,得到加和结果;
[0048]所述多路选择器用于:将所述加和结果的最低位舍去,得到所述目标格式的目标操作数。
[0049]可选的,在所述源格式为定点数格式的情况本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种操作数处理系统,其特征在于,所述系统包括:预处理模块、随机数生成器、移位器、加法器和多路选择器,所述预处理模块、所述随机数生成器、所述移位器、所述加法器和所述多路选择器之间依次连接;所述预处理模块用于:获取精度转换指令,并根据所述精度转换指令,通过目标格式的精度值和源操作数的精度值,确定所述源操作数的待舍入宽度;所述随机数发生器用于:根据所述待舍入宽度,生成一个随机数,所述随机数的宽度与所述待舍入宽度相同;所述移位器用于:将所述随机数与所述源操作数的最低位对齐,得到对齐数;所述加法器用于:将所述源操作数与所述对齐数进行加和操作,得到加和结果;所述多路选择器用于:将所述加和结果的最低位舍去,得到所述目标格式的目标操作数。2.根据权利要求1所述的系统,其特征在于,所述预处理模块包括:减法器子模块;所述预处理模块具体用于:根据所述精度转换指令,通过所述减法器子模块,计算所述源操作数的精度值与所述目标格式的精度值的差值,并将所述差值确定为所述待舍入宽度,所述源操作数的源格式为定点数格式。3.根据权利要求2所述的系统,其特征在于,在所述源操作数的源格式为浮点数格式的情况下;所述预处理模块还包括:格式转换子模块;所述预处理模块具体用于:根据所述精度转换指令,通过所述格式转换子模块将所述源操作数转换为定点数格式,得到新的源操作数;在所述新的源操作数的精度值小于或等于所述目标格式的精度值的情况下,确定所述待舍入宽度为0;在所述新的源操作数的精度值大于所述目标格式的精度值的情况下,通过所述减法器子模块,计算所述新的源操作数的精度值与所述目标格式的精度值的差值,并将所述差值确定为所述待舍入宽度。4.根据权利要求1

3任一项所述的系统,其特征在于,所述移位器具体用于:将所述随机数与所述源操作数对齐,得到一个与所述源操作数的宽度相同的对齐数,其中,所述随机数的最低位放置于所述对齐数的最低位的位置,所述对齐数中除了所述最低位的随机数,其他位设置为0。5.根据权利要求1

3任一项所述的系统,其特征在于,所述加法器具体用于:在将所述对齐数的小数点与所述源操作数的小数点对齐后,进行所述对齐数与所述源操作数的加和操作,得到所述加和结果。6.根据权利要求1

5任一项所述的系统,其特征在于,所述精度转换指令包括:源寄存器的第一寄存器标识、目的寄存器的第二寄存器标识、源操作数精度指示寄存器的第三寄存器标识和目的操作数精度指示寄存器的第四寄存器标识;所述预处理模块包括:译码子模块;所述预处理模块还用于:通过所述译码子模块对所述精度转换指令进行译码操作,得到所述第一寄存器标识、所述第二寄存器标识、所述第三寄存器标识和所述第四寄存器标识;
根据所述第一寄存器标识,从所述源寄存器中得到所述源操作数;根据所述第三寄存器标识,从所述源操作数精度指示寄存器中得到所述源操作数的精度值;根据所述第四寄存器标识,从所述目的操作数精度指示寄存器中得到所述目标格式的精度值。7.根据权利要求6所述的系统,其特征在于,在所述多路选择器将所述加和结果的最低位舍去,得到所述目标格式的目标操作数之后,所述多路选择器还用于:根据所述第二寄存器标识,将所述目标操作数添加至所述目的寄存器。8.根据权利要求1所述的系统,其特征在于,所述随机数发生器包括:线性反馈移位寄存器。9.一种处理器,其特征在于,所述处理器包括:取指模块、译码模块和功能模块;所述取指模块用于:获取精度转换指令;所述译码模块用于:对所述精度转换指令进行译码操作,得到所述源格式的源操作数、所述目标格式和所述目标格式的精度值;所述功能模块用于:通过所述目标格式的精度值...

【专利技术属性】
技术研发人员:杨灿郑雅文邢金璋
申请(专利权)人:龙芯中科技术股份有限公司
类型:发明
国别省市:

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

1