浮点数取整的方法、装置以及电子设备制造方法及图纸

技术编号:35458824 阅读:18 留言:0更新日期:2022-11-03 12:22
本申请涉计算机领域,公开了一种浮点数取整的方法、装置以及电子设备。该方法包括:获取待取整处理的浮点数;当确定浮点数符合设定条件范围时,确定与浮点数的尾数中的整数部分以及小数部分对应的掩膜码;确定尾数中的小数部分对应的舍入值;根据掩膜码以及舍入值将尾数中的小数部分的各比特位上的值调整为舍入值,得到第一尾数;对第一尾数与舍入值进行加和处理,以得到第一和值与进位值;基于第一和值与进位值得到取整结果。因而,在实现的过程中可以采用面积较小的半加器来实现,节省资源,加快计算速度。快计算速度。快计算速度。

【技术实现步骤摘要】
浮点数取整的方法、装置以及电子设备


[0001]本申请涉及计算机
,特别是涉及一种浮点数取整的方法、装置以及电子设备。

技术介绍

[0002]随着计算机技术的发展,计算机在运行时会涉及到对浮点数取整的操作指令。其中,对浮点数取整是指,将浮点数转化为一个整数值,并且该整数值是以浮点数形式表示的。例如,对十进制值为10.1的浮点数进行四舍五入的取整操作,得到的值为10.0。在计算机中,存在不少处理器指令涉及到对浮点数取整的操作。例如,在ARM系列的CPU中涉及到浮点数取整操作的指令有VRINT、VRINTA、VRINTM、VRINTN、VRINTP、VRINTR、VRINTX、VRINTZ等。
[0003]浮点数是由符号(Sign)部分,指数(Exponent)部分,有效数(Significant)部分组成的数据。而在计算机中浮点数对应的二进制编码由3部分组成,分别是符号位(Sign Bit)S,阶码(Biased

exponent)E以及尾数(Mantissa)M,该三部分字段分别与浮点数符号部分,指数部分,有效数部分对应。其中,对于有效数部分,由于规格化的浮点数的有效数的小数点左侧总是1,所以在计算机存储中,仅将小数点右侧的二进制数存储在计算机中,而将小数点左侧的数值1隐藏。
[0004]一般来说,对浮点数取整方法是区分出尾数中的整数部分以及小数部分,并且需要确定出整数部分的最末位的位置,再根据舍入规则获取小数部分对应的舍入值,将尾数中的小数部分全部设置为0得到第一尾数,将舍入值与第一尾数的整数部分的最末位的位置上的值相加,再经过后处理得到浮点数的取整结果。
[0005]然而,在上述将舍入值与尾数中的整数部分的最末位的位置上的值相加的过程中,由于整数部分的最末位是不固定的,所以需要使用全加器来实现,而全加器一般占用硬件面积较大,且延时较长,影响性能。

技术实现思路

[0006]有鉴于此,本申请实施例提供了一种浮点数取整的方法、装置以及电子设备。本申请的技术方案为当待取整处理的浮点数符合设定条件范围时,先确定区分出尾数中的整数部分以及小数部分对应的掩膜码。确定尾数中小数部分对应的舍入值,根据掩膜码以及舍入值将尾数中的小数部分的各个比特位上的值全更改为或置为该舍入值,以得到第一尾数;将舍入值与第一尾数进行相加,得到第一和值以及进位值,根据得到的第一和值以及进位值确定浮点数的取整结果。可以理解的,当将尾数的小数部分的各个比特位上的值全更改为或置为舍入值后得到第一尾数,此时将得到的第一尾数与舍入值相加,可以达到尾数中整数部分末位与舍入值相加的效果。因而,在通过硬件实现时,可以通过半加器来实现,半加器较全加器硬件面积较小,能够节省资源,加快计算速度,另外,该方法不需要确定整数部分的最末位位置,简化了计算流程。
[0007]第一方面,本申请实施例提供了一种浮点数取整的方法,应用于电子设备,包括:
[0008]获取待取整处理的浮点数;
[0009]当确定浮点数符合设定条件范围时,确定与浮点数的尾数中的整数部分以及小数部分对应的掩膜码;
[0010]确定尾数中的小数部分对应的舍入值;
[0011]根据掩膜码以及舍入值将尾数中的小数部分的各比特位上的值调整为舍入值,得到第一尾数;
[0012]对第一尾数与舍入值进行加和处理,以得到第一和值与进位值;
[0013]基于第一和值与进位值得到取整结果。
[0014]可以理解的,当确定与浮点数的尾数中的整数部分以及小数部分对应的掩膜码,然后确定小数部分对应的舍入值,根据掩膜码以及舍入值将尾数中的小数部分的各比特位上的值调整为舍入值,得到第一尾数;对第一尾数与舍入值进行加和处理,以得到第一和值与进位值;再基于第一和值与进位值得到取整结果。当第一尾数与舍入值进行相加,实际上是第一尾数的最末位与舍入值进行相加,而第一尾数中的其它位不需要额外和其它数值进行相加(加0意味着不需要加值),所以在使用级联的加法器实现第一尾数与舍入值(舍入值为0或1)相加的过程中,第0级加法器即第一尾数的末位值与舍入值相加使用的加法器,只需要两个输入端(其中一个输入端为第一尾数的末位值,另一个输入端为舍入值),可以用半加器实现,其他级加法器也仅需要两个输入端(第一个输入端为第一尾数的对应位的比特值,第二个输入端为来自前一级的输出进位值),所以可以采用半加器来实现,半加器较全加器硬件面积较小,能够节省资源,加快计算速度。而且该方法不需要确定整数部分的最末位位置,简化了计算流程。
[0015]在上述第一方面的一种可能的实现中,上述确定浮点数符合设定条件范围,包括:
[0016]当浮点数的阶码处于浮点数的偏移量以及第一数值范围内时,确定浮点数符合设定条件范围,其中第一数值为浮点数的偏移量与尾数的位宽的和。
[0017]可以理解的,浮点数的阶码处于浮点数的偏移量以及第一数值范围内具体为当浮点数的阶码大于等于浮点数的偏移量并且小于第一数值。
[0018]在上述第一方面的一种可能的实现中,上述确定与浮点数的尾数中的整数部分以及小数部分对应的掩膜码,包括:
[0019]根据浮点数的阶码产生掩膜码;
[0020]其中,掩膜码中值为1的比特位与浮点数的尾数中的整数部分所对应,掩膜码中值为0的比特位与浮点数的尾数中的小数部分所对应。
[0021]可以理解的,掩膜码中对应的比特位上的值为1代表着尾数上对应比特位的数据属于整数部分,掩膜码中对应的比特位上的值为0代表尾数上对应比特位的数据属于小数部分的,通过掩膜码确定尾数的整数部分以及小数部分合理方便。
[0022]在上述第一方面的一种可能的实现中,根据浮点数的阶码产生掩膜码,包括,
[0023]基于浮点数中尾数的位宽确定掩膜码的位宽,
[0024]并且,确定浮点数的阶码对应的指数值,根据指数值将掩膜码对应的高比特位置1,对应的低比特位置0。
[0025]可以理解的,通过浮点数的阶码确定掩膜码,易于操作。
[0026]在上述第一方面的一种可能的实现中,上述确定小数部分对应的舍入值,包括:根据浮点数的阶码、尾数以及舍入规则确定小数部分对应的舍入值。
[0027]在上述第一方面的一种可能的实现中,上述基于第一尾数与舍入值得到第一和值与进位值,包括,
[0028]将第一尾数以及舍入值相加得到第一和值与进位值。
[0029]在上述第一方面的一种可能的实现中,上述基于第一和值与进位值得到取整结果,包括,
[0030]当进位值为0时,将第一和值作为取整结果的尾数,将浮点数的符号位作为取整结果的符号位,将浮点数的阶码作为取整结果的阶码;
[0031]当进位值为1时,将第一和值作为取整结果的尾数,将浮点数的符号位作为取整结果的符号位,将浮点数的阶码加1后的值作为取整结果的阶码。
[0032]第二方面,本申请实施例提供了一种浮点数取整装置,包括,
[0033]数据处理单元本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种浮点数取整的方法,应用于电子设备,其特征在于,包括:获取待取整处理的浮点数;当确定所述浮点数符合设定条件范围时,确定与所述浮点数的尾数中的整数部分以及小数部分对应的掩膜码;确定所述尾数中的小数部分对应的舍入值;根据所述掩膜码以及所述舍入值将所述尾数中的小数部分的各比特位上的值调整为所述舍入值,得到第一尾数;对所述第一尾数与所述舍入值进行加和处理,以得到第一和值与进位值;基于所述第一和值与所述进位值得到取整结果。2.根据权利要求1所述的方法,其特征在于,所述确定所述浮点数符合设定条件范围,包括:当所述浮点数的阶码处于所述浮点数的偏移量以及第一数值范围内时,确定所述浮点数符合设定条件范围,其中,所述第一数值为所述浮点数的偏移量与所述尾数的位宽的和。3.根据权利要求1或2所述的方法,其特征在于,所述确定与所述浮点数的尾数中的整数部分以及小数部分对应的掩膜码,包括:根据所述浮点数的阶码产生掩膜码;其中,所述掩膜码中值为1的比特位与所述浮点数的尾数中的整数部分所对应,所述掩膜码中值为0的比特位与所述浮点数的尾数中的小数部分所对应。4.根据权利要求3所述的方法,其特征在于,所述根据所述浮点数的阶码产生掩膜码,包括:基于所述浮点数中尾数的位宽确定所述掩膜码的位宽,并且,确定所述浮点数的阶码对应的指数值,根据所述指数值将所述掩膜码对应的高比特位置1,对应的低比特位置0。5.根据权利要求1所述的方法,其特征在于,所述确定所述小数部分对应的舍入值,包括:根据所述浮点数的阶码、所述尾数以及舍入规则确定所述小数部分对应的舍入值。6.根据权利要求1所述的方法,其特征在于,所述基于所述第一和值与所述进位值得到取整结果,包括,当所述进位值为0时,将所述第一和值作为所述取整结果的尾数,将所述浮点数的符号位作为所述取整结果的符号位,将所述浮点数的阶码作为所述取整结果的阶码;当所述进位值为1时,将所述第一和值作为所述取整结果的尾数,将所述浮点数的...

【专利技术属性】
技术研发人员:谭波包恒蔡亮
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:

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

1