精度受控的迭代算术逻辑单元制造技术

技术编号:2914424 阅读:196 留言:0更新日期:2012-04-11 18:40
一种包括在处理器中的精度受控的迭代算术逻辑单元(IALU)产生亚精度结果,即,具有小于全精度的位精度的结果。在一实施例中,所述精度受控的IALU包含算术逻辑电路和精度控制电路。所述算术逻辑电路经配置而以迭代方式处理第一位精度的运算数以获得一结果。所述精度控制电路经配置以在所述结果达到小于所述第一位精度的经编程第二位精度时终止所述迭代运算数处理。在一实施例中,所述精度控制电路响应于由所述控制电路接收到的指示符而致使所述算术逻辑电路终止所述迭代运算数处理。所述精度受控的IALU进一步包含经配置以舍入所述亚精度结果的舍入逻辑。

【技术实现步骤摘要】
【国外来华专利技术】
本揭示案大体上涉及处理器,且特定来说,涉及在处理器中执行亚精度迭代算术运算。
技术介绍
常规的处理器包括用于执行例如除法、平方根和超越(例如,SIN、COS)运算的迭代运算的一个或一个以上算术逻辑单元。常规上执行迭代算术运算,直到产生具有固定、经定义的位精度的结果为止。即,以迭代方式处理运算数以产生具有全精度(即,例如与结果寄存器相关联的精度或与开始运算数相关联的精度的目标精度)的结果。举例来说,电气电子工程师学会(IEEE)已定义了与二进制浮点算术相关联的标准,常被称为IEEE 754。IEEE 754标准规定关于单精度和双精度浮点运算的数字格式、基本运算、转换和异常条件。IEEE 754相符的浮点数包括三个基本成分:符号位、指数和尾数。所述尾数进一步被分解为整数部分和小数部分。仅小数位以编码方式存储。对于正规数来说,整数部分隐含地等于值1。IEEE 754相符的单精度数由符号位、8位指数和23位小数表示,而双精度数由符号位、11位指数和52位小数表示。同样,IEEE 754相符的浮点数的迭代处理产生具有24位精度(对于单精度运算数来说)和53位精度(对于双精度运算数来说)的结果。举例来说,装备有单精度IEEE 754相符的ALU的处理器产生具有24位的全精度的结果。然而,某些应用(例如openGL相符的图形应用)可不要求具有全24位的单精度的结果。同样,对于可容许小于全单精度的精度(例如,16位精度)的应用来说将结果计算到全24位单精度引起不必要的功率和处理循环消耗。一些常规处理器产生具有小于目标格式的精度的精度的结果。然而,仅在所作用于的运算数具有小于目标格式的精度时,这些处理器才终止达不到目标格式的迭代算术运算。举例来说,即使在目标寄存器格式为双精度值的格式时,双精度处理器也可对单精度运算数执行单精度运算,从而产生单精度结果。同样,一些常规算术处理是视运算数精度而定的,且因此,产生具有等效于运算数的精度的全精度的结果。结果,可能会不必要地消耗功率和处理器循环以产生具有大于某些应用可容许或可接受的精度的精度-->的结果。
技术实现思路
根据本文所教示的方法和装置,包括在处理器中的精度受控的迭代算术逻辑单元(IALU)产生亚精度结果,即,具有小于全精度的位精度的结果。在一个或一个以上实施例中,精度受控的IALU包含算术逻辑电路和精度控制电路。所述算术逻辑电路经配置而以迭代方式处理第一位精度的运算数以获得一结果。所述精度控制电路经配置以在所述结果实现小于所述第一位精度的经编程第二位精度时终止所述迭代运算数处理。如对于全精度运算的情况,降低的精度运算可产生多于最终结果中所需的位的位以实现适当的舍入。这些“舍入位”通常被称为保护、舍入和粘性位。在一实施例中,响应于由所述控制电路接收到的指示符,所述精度控制电路致使算术逻辑电路终止迭代运算数处理。精度受控的IALU进一步包含舍入逻辑,所述舍入逻辑经配置以基于舍入模式、亚精度结果的最低有效位(LSB)和舍入位在所述LSB处有条件地递增所述结果。在一实施例中,舍入逻辑经配置以通过使舍入值与所述结果的LSB对准和有条件地将所述对准的舍入值加到所述结果而舍入所述结果。因此,在至少一实施例中,在处理器中通过以迭代方式处理第一位精度的运算数以获得一结果且在所述结果实现小于所述第一位精度的经编程第二位精度时终止迭代运算数处理来产生亚精度结果。此外,可通过填补所述结果而调整所述亚精度结果的宽度,使得所述经填补的结果具有对应于所述第一位精度的位宽度。在另一实施例中,一种处理器包含精度受控的IALU。所述处理器进一步包含经配置以将所述经编程第二位精度存储为固定值或存储为动态可变值的存储元件。如果将所述经编程第二位精度存储为动态可变值,则可响应于由所述处理器接收到的一个或一个以上指令而对其进行修改。所述精度受控的IALU经配置以响应于由所述处理器接收到的指示符而终止迭代运算数处理。在一实施例中,所述指示符为存储于包括在所述处理器中的寄存器中的旗标位。当然,本揭示案不限于上述特征。所属领域的技术人员在阅读以下详细描述后和检视附图后将认识到额外特征。附图说明图1为说明包括精度受控的迭代算术逻辑单元(IALU)的处理器的一实施例的方框图。-->图2为说明图1的精度受控的IALU的一实施例的方框图。图3为说明用于执行迭代算术运算的程序逻辑的一实施例的逻辑流程图。图4为说明进一步包含舍入电路的图1的精度受控的IALU的一实施例的方框图。图5为说明用于舍入由图4的精度受控的IALU产生的亚精度结果的程序逻辑的一实施例的逻辑流程图。图6为说明用于舍入由图4的精度受控的IALU产生的亚精度结果的程序逻辑的另一实施例的逻辑流程图。具体实施方式图1说明包括一个或一个以上精度受控的迭代算术逻辑单元(IALU)12的处理器10的一实施例。在包括于IALU 12中的或与IALU 12相关联的精度控制电路14的控制下,精度受控的IALU 12经配置以在由IALU 12产生的结果获得全精度之前终止迭代算术处理。即,响应于由精度控制电路14接收到的经编程位精度(PBP)值,控制电路14致使IALU 12产生亚精度结果,即,具有小于例如与结果寄存器相关联的精度或与开始运算数相关联的精度的目标精度的位精度的结果。所述PBP值指示与由IALU 12产生的结果相关联的所要位精度。同样,响应于所述PBP值,精度控制电路14可致使IALU12在所述结果获得全精度之前终止运算数处理。由IALU 12产生的亚精度结果因此具有对应于所述PBP值且非全精度的位精度。所述PBP值可保存在包括于处理器10中的存储元件中,例如,专用或通用寄存器16或数据高速缓冲存储器18。在一实施例中,所述PBP值为硬连线的且因此不可重新编程。在另一实施例中,所述PBP值为存储在PBP寄存器16或数据高速缓冲存储器18中的动态可变值,且因此是可修改的。可将所述PBP值提供到处理器10作为一指令或指令系列的部分,例如,作为超长指令字的部分。不管所述PBP值如何产生、存储或修改,精度控制电路14使用所述PBP值以控制精度受控的IALU 12是否较早地(即,在结果实现全精度之前)终止迭代算术运算。不像常规技术,精度控制电路14可致使IALU 12不管运算数精度而在结果获得全精度之前终止迭代算术运算。而是,精度控制电路14使其较早终止逻辑基于所述PBP值,此与运算数的精度并非直接相关联。因此,精度受控的IALU 12能够产生与运算数精度无关的亚精度结果,借此减少功率消耗且在处理器10执行可容许亚精度结果的应用(例如,图形应用)时改进处理器10的性能。处理器10进一步包括指令单元20、一个或一个以上载入/存储单元22和指令高速缓冲存储器24。指令单元20提供对到例如载入/存储单元22和精度受控的IALU 12的-->各种执行单元的指令流的集中式控制。所述执行单元可并行执行多个指令。同样,处理器10可为超标量和/或超管线化的。指令和数据高速缓冲存储器18、24启用系统寄存器(未图示)和执行单元以快速地存取指令和数据。此外,可经由执行单元中的一者(例如,载入/存储单元22)而在数据高速缓冲存储器18与系统寄存器之间移动数据。图2说明精度受控的I本文档来自技高网
...

【技术保护点】
一种在处理器中执行迭代算术运算的方法,其包含: 以迭代方式处理第一位精度的运算数以获得一结果;以及 在所述结果实现小于所述第一位精度的经编程第二位精度时终止所述迭代处理。

【技术特征摘要】
【国外来华专利技术】US 2006-5-5 11/381,8701.一种在处理器中执行迭代算术运算的方法,其包含:以迭代方式处理第一位精度的运算数以获得一结果;以及在所述结果实现小于所述第一位精度的经编程第二位精度时终止所述迭代处理。2.根据权利要求1所述的方法,其进一步包含填补所述结果,使得所述经填补的结果具有对应于所述第一位精度的位宽度。3.根据权利要求2所述的方法,其中填补所述结果以使得所述经填补的结果具有对应于所述第一位精度的位宽度包含将一个或一个以上逻辑0位附加到所述结果。4.根据权利要求1所述的方法,其进一步包含将所述结果存储在具有小于所述第一位精度的位宽度的寄存器中。5.根据权利要求1所述的方法,其进一步包含在开始所述迭代处理之前舍位所述运算数的一个或一个以上最低有效位(LSB),使得所述经舍位的运算数具有小于所述第一位精度且大于或等于所述经编程第二位精度的位精度。6.根据权利要求5所述的方法,其中舍位所述运算数LSB中的一者或一者以上包含掩蔽所述运算数LSB中的一者或一者以上。7.根据权利要求1所述的方法,其进一步包含舍入所述结果。8.根据权利要求7所述的方法,其中舍入所述结果包含:使舍入值与所述结果的最低有效位(LSB)对准;以及有条件地将所述经对准的舍入值加到所述结果。9.根据权利要求8所述的方法,其中使所述舍入值与所述结果的所述LSB对准包含移位所述舍入值以使得所述舍入值具有位于对应于所述结果的所述LSB的位位置处的逻辑1。10.根据权利要求8所述的方法,其中使所述舍入值与所述结果的所述LSB对准包含解码所述第二经编程位精度以产生舍入运算数。11.根据权利要求1所述的方法,其进一步包含响应于包括在所述处理器中的寄存器的内容的改变来修改所述经编程第二位精度。12.根据权利要求1所述的方法,其进一步包含响应于由所述处理器接收到的一个或一个以上指令来修改所述经编程第二位精度。13.一种用于处理器中的迭代算术逻辑单元,其包含:算术逻辑电路,其经配置而以迭代方式处理第一位精度的运算数以获得一结果;以及精度控制电路,其经配置以在所述结果实现小于所述第一位精度的经编程第二位精度时终止所述迭代处理。14.根据权利要求13所述的迭代算术逻辑单元,其中所述算术逻辑电路进一步经配置以填补所述结果,使得所述经填补的结果具有对应于所述第一位精度的位宽度。15.根据权利要求14所述的迭代算术逻辑单元,其中所述算术逻辑电路经配置以通过将一个或一个以上逻辑0位附加到所述结果而填补所述结果,使得所述经填补的结果具有对应于所述第一位精度的位宽度。16.根据权利要求13所述的迭代算术逻辑单元,其中所述算术逻辑电路进一步经配置以舍位所述运算数的一个或一个以上最低有效位(LSB),使得所述经舍位的运算数具有小于所述第一位精度且大于或等于所述经编程第二位精度的位精度。17...

【专利技术属性】
技术研发人员:肯尼思艾伦多克塞尔
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利