当前位置: 首页 > 专利查询>ARM有限公司专利>正文

用于将浮点值四舍五入为整数浮点值的装置和方法制造方法及图纸

技术编号:10319412 阅读:129 留言:0更新日期:2014-08-13 19:56
处理电路被提供来执行用于将浮点值四舍五入为整数浮点值的操作FRINT。控制电路控制该处理电路来执行FRINT操作,以响应FRINT指令。该处理电路包括:移位电路,用于通过对基值移位来生成四舍五入值;加和电路,用于将该四舍五入值加至该浮点值的有效位数来生成和值;掩码生成电路,用于生成用来清除该和值的小数值位的掩码;以及掩蔽电路,用于将该掩码应用于该和值来生成整数浮点值。

【技术实现步骤摘要】
【国外来华专利技术】用于将浮点值四舍五入为整数浮点值的装置和方法
本专利技术涉及数据处理领域。更具体地,本专利技术涉及用于将浮点值四舍五入为整数浮点值的装置和方法。现有技术说明用于对浮点数执行算术操作的处理器已为人所知。在浮点表示法中,通过使用有效位数1.F、指数E和符号位S来表示数。符号位S表示该浮点数是正数或负数,有效位数1.F表示该浮点数的有效数字,并且,指数E表示与该有效位数相关的小数点(也称为二进制小数点)的位置。通过改变指数值,小数点可以在有效位数内向左边和右边“浮动”。这就是说对于预确定数目的位,浮点表示法可以比定点表示法(在该方法中,小数点在有效位数内具有固定位置)表示更宽范围的数。然而,额外的范围是以减少的精度为代价获得的,因为一些位用来存储指数。有时,浮点算术操作生成比用于有效位数的位的数目具有更多有效位的结果。如果发生这种情况,那么该结果被四舍五入为可以使用可用数目的有效位来表示的值。附图的图1显示了浮点数如何被储存在寄存器或存储器内。在单精度表示法中,使用32位来存储浮点数。1位用作符号位S,8位用来存储指数E,并且,23位用来存储有效位数1.F的小数部分F。小数部分的23位随同具有值1的隐含位一起组成24位有效位数1.F。首先假设小数点被放置于该有效位数的隐含位和23位存储的位之间。所存储的指数E通过固定值127进行偏移,使得在所表示的浮点数中,如果E-127是负数,那么小数点被从其初始位置向左移位E-127位(例如,如果E-127=-2,那么1.01的有效位数表示0.0101),或者,如果E-127是正数,那么小数点被从其初始位置向右移位E-127位(例如,如果E-127=2,那么1.01的有效位数表示101)。该偏移用来使得对两个浮点值的指数的比较更简单,因为小数点的正移位和负移位均可以由所存储的指数E的正值来表示。如图1所示,所存储的表达式S[31],E[30:23],F[22:0]表示具有值(-1)S*1.F[22:0]*2(E-127)的数。这种形式的单精度浮点数被认为是“标准的”。如果计算的浮点值不是标准的(例如,该值已通过将小数点置于不是该有效位数的最左边两位之间的位置来生成),那么通过将有效位数向左或向右移位并相应地调整指数直到该数为(-1)S*1.F[22:0]*2(E-127)的形式来将其标准化。还提供了双精度格式,在该格式中,采用64位存储位来表示有效位数和指数。这64位存储位包括1位符号位、11位指数以及53位有效位数1.F的52位小数部分F。在双精度格式中,指数通过值1023进行偏移。因此,在双精度格式中,所存储的表达式S[63],E[62:52],F[51:0]表示浮点值(-1)S*1.F[51:0]*2(E-1023)。在本申请中,一些示例将参照单精度浮点格式进行解释。然而,应当认识到,本专利技术还可以被应用到双精度格式(或任意其他浮点格式)中,并且,在后续的图中显示的位值可以由适合于正被使用的浮点格式的值进行替换。一种浮点操作为四舍五入为整数浮点操作(FRINT),这种操作将浮点值四舍五入为整数浮点值。例如,浮点值6.75可以被四舍五入为相邻整数值6.0或7.0中的一个。本技术旨在减少与执行FRINT操作相关联的时延。
技术实现思路
从一个方面看,本专利技术提供了一种数据处理装置,包括:处理电路,被配置来执行用于将浮点值四舍五入为整数浮点值的四舍五入为整数浮点操作,所述浮点值具有有效位数和指数;以及控制电路,被配置来控制所述处理电路,以执行所述四舍五入为整数浮点操作来响应对浮点四舍五入为整数浮点指令的执行;所述处理电路包括:移位电路,被配置来通过将基值移位移位量来生成四舍五入值,其中所述移位量依赖于所述浮点值的所述指数;加和电路,被配置来将所述四舍五入值加至所述浮点值的所述有效位数以生成和值;掩码生成电路,被配置来生成用于清除所述和值的具有与所述有效位数的小数值位位置相对应的位位置的位的掩码;以及掩蔽电路,被配置来将所述掩码应用于所述和值来生成所述整数浮点值。通常在软件中已实现了四舍五入为整数浮点操作(FRINT)。然而,本技术认识到,由于每条指令需要被分开获取、解码并运行,因此这种方法较慢。通过提供用于在硬件中执行FRINT操作的处理电路和用于控制该处理电路来执行FRINT操作以响应对单浮点四舍五入为整数浮点指令(FRINT指令)的执行的控制电路,FRINT操作可以比以前的软件实现更快地被执行。本技术还认识到,在典型的浮点硬件电路中,四舍五入被限制于发生在有效位数内的预确定的固定位置处,通常是该有效位数的最低有效位。然而,如果四舍五入只能发生在该有效位数的最低有效位,那么在经移位的值的最低有效位上执行四舍五入之前,将需要将该有效位数向右移位来将该浮点值转换为整数浮点值。然后,将需要通过将该四舍五入的值向左移位以将该值转换回标准浮点格式来对该四舍五入的值进行标准化。这样的向左移位通常对于其他浮点操作来说不是必需的,因此,将用于执行这样向左移位的硬件增加至处理电路将给处理电路增加处理周期,使得该电路复杂并且减慢了大多数其他浮点操作的处理。为了避免该问题,本技术提供了移位电路和加和电路,其中,移位电路通过将基值移位移位量来生成四舍五入值,其中,所述移位量依赖于所述将要被四舍五入的浮点值的指数,所述加和电路用于将所生成的四舍五入值加至该浮点值的有效位数。在和值中余留的任意小数值位值可以通过将掩码应用到该和值来清除。由于所述移位被应用来生成四舍五入值,因此,不需要对有效位数进行移位,所以,由有效位数和经移位的四舍五入值相加得到的和值是标准化的浮点值。不需要执行后续的向左移位,因此,可以实现用于执行该四舍五入为整数浮点操作的有效硬件机制。应当认识到,没有必要对FRINT指令的所有运行实例使用移位电路、加和电路、掩码生成电路以及掩蔽电路。可以有这样的情形,即浮点值被四舍五入后的值使得四舍五入的结果可以不需要实际执行移位、加和以及掩蔽就能容易地被确定。例如,如果将要被四舍五入的浮点值已经是一个整数,那么四舍五入将不影响其值,所以,输入值可以直接被写进输出寄存器。另外,如果该浮点值的量值小于1,那么,四舍五入的结果将是0或1,并且,这不需要对该四舍五入为整数浮点操作的完全执行便可被确定。因此,控制电路可以逐条指令地确定是否有必要使用处理电路的完整四舍五入功能。尽管通过使用等效的向左移位来构建四舍五入值是可能的,但是对于移位电路来说,将基值向右移位来生成四舍五入值最为方便。有效位数的位的数值是指数的功能。通常,这些位中的一些表示大于或等于1.0的值(整数值位),并且这些位中的一些表示小于1.0的值(小数值位)。所述四舍五入值可以在与该浮点值的有效位数的最高有效小数值位的位位置相对应的位位置处具有首非零位。所述有效位数的最高有效小数值位是表示值二分之一的位。将二分之一加至有效位数并清除和值中的任意小数值位是将浮点值四舍五入为最接近的整数的技术。其他四舍五入技术可以通过加上大于二分之一但是小于一的值来实现。在这两个情形中,四舍五入值的首非零位处于最高有效小数值位位置。基值可以具有这样的最高有效位,该最高有效位具有非零值。移位电路可以被配置来将基值向右移位(E-BI本文档来自技高网
...
用于将浮点值四舍五入为整数浮点值的装置和方法

【技术保护点】
一种数据处理装置,包括:处理电路,被配置来执行用于将浮点值四舍五入为整数浮点值的四舍五入为整数浮点操作,所述浮点值具有有效位数和指数;以及控制电路,被配置来控制所述处理电路,以执行所述四舍五入为整数浮点操作来响应对浮点四舍五入为整数浮点指令的执行;所述处理电路包括:移位电路,被配置来通过将基值移位移位量来生成四舍五入值,其中所述移位量依赖于所述浮点值的所述指数;加和电路,被配置来将所述四舍五入值加至所述浮点值的所述有效位数以生成和值;掩码生成电路,被配置来生成用于清除所述和值的具有与所述有效位数的小数值位位置相对应的位位置的位的掩码;以及掩蔽电路,被配置来将所述掩码应用于所述和值来生成所述整数浮点值。

【技术特征摘要】
【国外来华专利技术】2011.12.07 US 13/313,0621.一种数据处理装置,包括:处理电路,被配置来执行用于将浮点值四舍五入为整数浮点值的操作,所述浮点值具有有效位数和指数;以及控制电路,被配置来控制所述处理电路,以执行所述四舍五入为整数浮点操作来响应对浮点四舍五入为整数浮点指令的执行;所述处理电路包括:移位电路,被配置来通过将基值移位移位量来生成四舍五入值,其中所述移位量依赖于所述浮点值的所述指数;加和电路,被配置来将所述四舍五入值加至所述浮点值的所述有效位数以生成和值;掩码生成电路,被配置来生成掩码,所述掩码用于清除具有与所述有效位数的小数值位位置相对应的位位置的所述和值的位;以及掩蔽电路,被配置来将所述掩码应用于所述和值来生成所述整数浮点值;其中,所述处理电路具有至少一种四舍五入模式,该模式用于在所述四舍五入为整数浮点操作期间,当所述浮点值是介于两个整数浮点值之间的值时,选择将所述浮点值四舍五入为所述两个整数浮点值中的哪一个;其中,所述处理电路具有RNE四舍五入模式,所述RNE四舍五入模式为四舍五入为最接近、靠近偶数四舍五入模式,该模式用于将所述浮点值四舍五入为所述两个整数浮点值中最接近的,同时将位于所述两个整数浮点值正中间的浮点值四舍五入为所述两个整数浮点值中是偶数值的那个;并且其中,在所述RNE四舍五入模式中,如果所述浮点值位于所述两个整数浮点值正中间,并且所述有效位数的最低有效整数值位具有0位值,那么,所述掩码生成电路被配置来修正所述掩码,并且所述掩蔽电路被配置来将所述修正的掩码应用到所述和值来清除所述和值的具有与所述有效位数的所述最低有效整数值位相对应的位位置的那一位。2.如权利要求1所述的数据处理装置,其中,所述移位电路被配置来将所述基值向右移位来生成所述四舍五入值。3.如权利要求1和2中任意一项所述的数据处理装置,其中,所述四舍五入值在与所述浮点值的所述有效位数的最高有效小数值位的位位置相对应的位位置处具有首非零位。4.如权利要求1所述的数据处理装置,其中:所述基值具有非零值的最高有效位;并且所述移位电路被配置来将所述基值向右移位E-BIAS+1位位置的移位量,其中,E是所述浮点值的所述指数,并且,BIAS是所述浮点值的指数偏移。5.如权利要求1所述的数据处理装置,其中,所述掩蔽电路包括AND门,该AND门被配置来将按位AND操作应用到所述和值和所述掩码。6.如权利要求5所述的数据处理装置,其中,所述掩码的位在与所述有效位数的小数值位位置相对应的位位置处具有位值0。7.如权利要求6所述的数据处理装置,其中,所述掩码的位在与所述有效位数的整数值位位置相对应的位位置处具有位值1。8.如权利要求1所述的数据处理装置,其中,所述掩码生成电路被配置来基于所述四舍五入值生成所述掩码。9.如权利要求1所述的数据处理装置,其中,响应于对浮点加和指令的执行,所述控制电路被配置来控制所述处理电路,以使用所述移位电路和所述加和电路来执行加和操作。10.如权利要求1所述的数据处理装置,其中,所述处理电路具有多种四舍五入模式,所述浮点四舍五入为整数浮点指令指定所述多种四舍五入模式中的哪种应该被用于所述四舍五入为整数浮点操作。11.如权利要求1所述的数据处理装置,其中,所述处理电路具有RU四舍五入模式,所述RU四舍五入模式为远离零四舍五入四舍五入模式,该模式用于将所述浮点值四舍五入为所述两个整数浮点值中具有最大绝对量值的那一个。12.如权利要求11所述的数据处理装置,其中,在所述RU四舍五入模式中,所述基值的所有位具有非零位值。13.如权利要求1所述的数据处理装置,其中,在所述RNE四舍五入模式中,所述基值的最高有效位具...

【专利技术属性】
技术研发人员:大卫·雷蒙德·鲁茨内尔·伯吉斯萨布琳娜·玛丽·罗梅洛
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国;GB

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

1