一种浮点数尾数前导零检测方法及装置制造方法及图纸

技术编号:13385857 阅读:42 留言:0更新日期:2016-07-22 00:18
本发明专利技术提供一种浮点数尾数前导零检测方法及装置,其中浮点数尾数前导零检测方法,包括:将每个取值为1的尾数在浮点数的所有尾数中的位置分别以一种进制下的数据表示;从所有在所述进制下的数据中选取最大数据,其中所述最大数据是取值大于其他数据取值的数据;依据所述浮点数的所有尾数总个数和所述最大数据,得到所述浮点数的尾数中前导零的个数。也就是说本发明专利技术将寻找取值为1的尾数的位置转换为寻找最大数据的过程,这样就不需要依次对取值为1的尾数的位置进行判断,减少判断导致的检测延迟,提高检测速度。

【技术实现步骤摘要】
一种浮点数尾数前导零检测方法及装置
本专利技术涉浮点数处理
,特别涉及一种浮点数尾数前导零检测方法及装置。
技术介绍
与定点数运算相比,浮点数运算具有运算范围宽和精度高的优点,因此浮点数运算在各种工程和算法中有着广泛的应用。但是浮点数运算过程复杂,而浮点数尾数前导零的检测是浮点数运算中一个关键的环节,对整个运算速度有重要的影响。目前常用的浮点数格式为IEEE754(InstituteofElectricalandElectronicsEngineers,美国电气和电子工程师协会)标准,浮点数精度包括:32位单精度,64位双精度和80位以上扩展双精度。对这些精度的浮点数尾数前导零检测的过程是:首先将尾数进行分组,每组依次执行一个周期,每个周期内从尾数的高位到低位依次判断1的位置;其次从尾数的最高位所在组进行判断,当尾数的最高位所在组全是零时,对下一个组进行判断,当尾数的最高位所在组不全是零时,则依次从该组的最高位到最低位寻找尾数为1的位置;最后前导零的位置即是尾数总个数减去尾数为1的位置。以32位单精度浮点数为例,将尾数分为5组,即f0-f3为第一组,f4-f7为第二组,依次类推,f20-f22为第5组,在检测时首先判断f20-f22是否全是零,如果全是零,则再执行下一周期判断f16-f19。反之,如果f20-f22不全是零,那么依次从f22到f20判断尾数为1的位置,然后再以尾数总个数减去尾数为1的位置即为前导零的个数。从这一过程可以看出寻找数值为1的最左边尾数的位置需要执行5个周期,且在每个周期内进行4次判断。但是对于64位双精度浮点数来说,为了加快运算速度,则需要增加每个分组中尾数的个数,从而增加每个周期的判断次数,降低检测速度。
技术实现思路
有鉴于此,本专利技术提供一种浮点数尾数前导零检测方法及装置,用于提高检测速度。技术方案如下:本专利技术提供一种浮点数尾数前导零检测方法,包括:将每个取值为1的尾数在浮点数的所有尾数中的位置分别以一种进制下的数据表示;从所有在所述进制下的数据中选取最大数据,其中所述最大数据是取值大于其他数据取值的数据;依据所述浮点数的所有尾数总个数和所述最大数据,得到所述浮点数的尾数中前导零的个数。优选地,在从所有在所述进制下的数据中选取最大数据之前,所述方法还包括:将每个取值为0的尾数在浮点数的所有尾数中的位置以0表示。优选地,在将每个取值为1的尾数在浮点数的所有尾数中的位置分别以一种进制下的数据表示之前,所述方法还包括:按照尾数在浮点数的所有尾数中位置的从高到低顺序,将所述浮点数中的尾数划分为至少两组。优选地,所述将每个取值为1的尾数在浮点数的所有尾数中的位置分别以一种进制下的数据表示包括:将每个取值为1的尾数在浮点数的所有尾数中的位置分别以二进制数据表示。优选地,所述从所有在所述进制下的数据中选取最大数据包括:按照所述二进制数据中位数从高到低顺序,依次选取每个所述二进制数据的第i位数据,其中i为非负整数,且i=n-1,n-2,......,0,n为所述二进制数据的总位数;基于所有所述二进制数据中所述第i位数据和第i位数据的反馈状态位,从所有所述第i位数据中选择出所述最大数据的第i位数据,其中所述反馈状态位用于指示第i位数据和第i位数据之前输入的数据所组成的二进制数据是否为最大值;在经过n次选择后得到所述最大数据。本专利技术还提供一种浮点数尾数前导零检测装置,包括:第一转换单元,用于将每个取值为1的尾数在浮点数的所有尾数中的位置分别以一种进制下的数据表示;选取单元,用于从所有在所述进制下的数据中选取最大数据,其中所述最大数据是取值大于其他数据取值的数据;检测单元,用于依据所述浮点数的所有尾数总个数和所述最大数据,得到所述浮点数的尾数中前导零的个数。优选地,所述装置还包括:第二转换单元,用于将每个取值为0的尾数在浮点数的所有尾数中的位置以0表示。优选地,所述装置还包括:划分单元,用于按照尾数在浮点数的所有尾数中位置的从高到低顺序,将所述浮点数中的尾数划分为至少两组。优选地,所述第一转换单元将每个取值为1的尾数在浮点数的所有尾数中的位置分别以二进制数据表示。优选地,所述选取单元包括:选取子单元和选择子单元;其中,所述选取子单元,用于按照所述二进制数据中位数从高到低顺序,依次选取每个所述二进制数据的第i位数据,其中i为非负整数,且i=n-1,n-2,......,0,n为所述二进制数据的总位数;所述选择子单元,用于基于所有所述二进制数据中所述第i位数据和第i位数据的反馈状态位,从所有所述第i位数据中选择出所述最大数据的第i位数据,在经过n次选择后得到所述最大数据,其中所述反馈状态位用于指示第i位数据和第i位数据之前输入的数据所组成的二进制数据是否为最大值。从上述技术方案可以看出,本专利技术提供的浮点数尾数前导零检测方法及装置通过将每个取值为1的尾数在浮点数的所有尾数中的位置分别以一种进制下的数据表示,然后从所有数据中选取最大数据,基于浮点数的所有尾数总个数和最大数据即可以得到浮点数的尾数中前导零的个数,也就是说本专利技术将寻找取值为1的尾数的位置转换为寻找最大数据的过程,这样就不需要依次对取值为1的尾数的位置进行判断,减少判断导致的检测延迟,提高检测速度。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的浮点数尾数前导零检测方法的第一种流程图;图2为本专利技术实施例提供的浮点数尾数前导零检测方法的第二种流程图;图3为本专利技术实施例提供的浮点数尾数前导零检测方法的第三种流程图;图4为本专利技术实施例提供的比较器的一种结构示意图;图5为图4所示比较器中数据输入输出情况的一种示意图;图6为图4所示比较器中数据输入输出情况的另一种示意图;图7为图4所示比较器中数据输入输出情况的再一种示意图;图8为本专利技术实施例提供的浮点数尾数前导零检测方法中最大数据选取的示意图;图9为本专利技术实施例提供的浮点数尾数前导零检测装置的第一种结构示意图;图10为本专利技术实施例提供的浮点数尾数前导零检测装置的第二种结构示意图;图11为本专利技术实施例提供的浮点数尾数前导零检测装置的第三种结构示意图;图12为本专利技术实施例提供的浮点数尾数前导零检测装置中选取单元的一种结构示意图;图13为本专利技术实施例提供的浮点数尾数前导零检测装置中选取单元的另一种结构示意图。具体实施方式本专利技术实施例提供的浮点数尾数前导零检测方法的核心思想之一是:以某种进制下的数据表示取值为1的尾数在浮点数的所有尾数中的位置,将寻找取值为1的尾数的位置转换为寻找最大数据的过程,这样就不需要依次对取值为1的尾数的位置进行判断,减少判断导致的检测延迟,提高检测速度。为了使本领域技术人员更好的理解本专利技术,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参本文档来自技高网
...
一种浮点数尾数前导零检测方法及装置

【技术保护点】
一种浮点数尾数前导零检测方法,其特征在于,包括:将每个取值为1的尾数在浮点数的所有尾数中的位置分别以一种进制下的数据表示;从所有在所述进制下的数据中选取最大数据,其中所述最大数据是取值大于其他数据取值的数据;依据所述浮点数的所有尾数总个数和所述最大数据,得到所述浮点数的尾数中前导零的个数。

【技术特征摘要】
1.一种二进制浮点数尾数前导零检测方法,其特征在于,包括:将每个取值为1的尾数在浮点数的所有尾数中的位置分别以一种进制下的数据表示;从所有在所述进制下的数据中选取最大数据,其中所述最大数据是取值大于其他数据取值的数据;依据所述浮点数的所有尾数总个数和所述最大数据,得到所述浮点数的尾数中前导零的个数。2.根据权利要求1所述的方法,其特征在于,在从所有在所述进制下的数据中选取最大数据之前,所述方法还包括:将每个取值为0的尾数在浮点数的所有尾数中的位置以0表示。3.根据权利要求2所述的方法,其特征在于,在将每个取值为1的尾数在浮点数的所有尾数中的位置分别以一种进制下的数据表示之前,所述方法还包括:按照尾数在浮点数的所有尾数中位置的从高到低顺序,将所述浮点数中的尾数划分为至少两组。4.根据权利要求1所述的方法,其特征在于,所述将每个取值为1的尾数在浮点数的所有尾数中的位置分别以一种进制下的数据表示包括:将每个取值为1的尾数在浮点数的所有尾数中的位置分别以二进制数据表示。5.根据权利要求4所述的方法,其特征在于,所述从所有在所述进制下的数据中选取最大数据包括:按照所述二进制数据中位数从高到低顺序,依次选取每个所述二进制数据的第i位数据,其中i为非负整数,且i=n-1,n-2,......,0,n为所述二进制数据的总位数;基于所有所述二进制数据中所述第i位数据和第i位数据的反馈状态位,从所有所述第i位数据中选择出所述最大数据的第i位数据,其中所述反馈状态位用于指示第i位数据和第i位数据之前输入的数据所组成的二进制数据是否为最大值...

【专利技术属性】
技术研发人员:姜莹
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:北京;11

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

1