CN101432689A - 精度受控的迭代算术逻辑单元 - Google Patents

精度受控的迭代算术逻辑单元 Download PDF

Info

Publication number
CN101432689A
CN101432689A CNA2007800156395A CN200780015639A CN101432689A CN 101432689 A CN101432689 A CN 101432689A CN A2007800156395 A CNA2007800156395 A CN A2007800156395A CN 200780015639 A CN200780015639 A CN 200780015639A CN 101432689 A CN101432689 A CN 101432689A
Authority
CN
China
Prior art keywords
precision
result
lsb
value
iterative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007800156395A
Other languages
English (en)
Other versions
CN101432689B (zh
Inventor
肯尼思·艾伦·多克塞尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101432689A publication Critical patent/CN101432689A/zh
Application granted granted Critical
Publication of CN101432689B publication Critical patent/CN101432689B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • G06F7/537Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

精度受控的迭代算术逻辑单元
技术领域
本揭示案大体上涉及处理器,且特定来说,涉及在处理器中执行亚精度迭代算术运算。
背景技术
常规的处理器包括用于执行例如除法、平方根和超越(例如,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说明精度受控的IALU 12的一实施例。在此实施例中,IALU 12包括算术逻辑电路26。算术逻辑电路26经配置以执行例如除法、平方根和超越函数的迭代算术运算。算术逻辑电路26从包括于处理器10中的寄存器28、30接收运算数。在一实例中,所述运算数为IEEE 754单精度相容,且因此,每一寄存器28、30存储一符号位、一8位指数和一23位小数。在另一实例中,所述运算数为IEEE 754双精度相容,且因此,每一寄存器28、30存储一符号位、一11位指数和一52位小数。在其它实例中,所述运算数具有不同于IEEE 754标准的全精度,例如足够用于openGL标准或自定义应用的运算数。
仅为便于解释,接下来参考具有对应于IEEE 754单精度(本文中通常被称为单精度)的全精度的运算数来描述精度受控的IALU 12的详细操作。然而,所属领域的技术人员将易于理解,精度受控的IALU 12的一个或一个以上实施例完全能够处理具有任何位精度的运算数,且因此,可在达不到全精度的情况下终止迭代算术运算,无不管哪一精度界定全精度。
返回到图2,算术逻辑电路26以迭代方式处理从运算数寄存器28、30接收到的单精度运算数,如图3的步骤100所示。响应于PBP寄存器16的内容或者一个或一个以上的指令,精度控制电路14将允许算术逻辑电路26不中断地完成迭代处理,或将如图3的步骤102所示,通过在获得全精度结果之前终止迭代处理来致使算术逻辑电路26执行“提早终止”。作为从PBP寄存器16接收的信息的一部分或由一个或一个以上指令提供时,精度控制电路14接收确定算术逻辑电路26是否较早终止处理(即,产生亚精度结果)的指示符(RDP)。在一实施例中,所述指示符为设定于PBP寄存器16中的旗标位。如果所述指示符未经设定,则如图3的步骤104所示,精度控制电路14允许算术逻辑电路26迭代到全单精度,借此产生全精度结果。然而,如果所述指示符经设定,则精度控制电路14启动控制信号(CTRL),从而致使算术逻辑电路26在为所要亚精度产生包括所需的任何舍入位在内的足够位时停止迭代,借此产生亚精度结果,如图3的步骤106所示。
PBP值指示精度控制电路14致使算术逻辑电路26终止处理时所述结果的位精度。举例来说,如果PBP值指示16位的位精度,则精度控制电路14致使算术逻辑电路26在中间结果具有足够位以产生具有16位的位精度的经适当舍入的结果时停止迭代。
在一实施例中,使用不具有PDP值的RDP位来产生预定大小的亚精度结果。在一替代实施例中,使用所述不具有RDP位的PDP值以也实现降低精度的运算。
在一实施例中,精度控制电路14包含状态机或计数器以跟踪所执行的算术迭代的数目。同样,精度控制电路14监控算术逻辑电路处理。在算术逻辑电路26产生具有足够位以产生具有匹配PBP值的位精度的经适当舍入的结果的中间结果时,精度控制电路14启动控制信号,借此使算术逻辑电路26终止处理。举例来说,精度控制电路14计数由算术逻辑电路26执行的处理循环的数目,从而使算术逻辑电路26在计数指示最终结果的位精度将匹配PBP值的位精度时终止处理。
精度受控的IALU 12将所产生的结果存储于包括在处理器10中的结果寄存器32中。结果寄存器32具有足够用于存储全精度结果的位宽度。对于单精度结果来说,寄存器32含有用于存储全精度小数结果的23位位置(其中x=23)。算术逻辑电路26在将结果存储于寄存器32中时可填补亚精度结果,因此确保寄存器32的内容具有对应于全精度的经填补位宽度。在一实施例中,算术逻辑电路26通过将足够数量的逻辑0位附加到亚精度结果而填补所述结果,使得所述经填补的亚精度结果具有等效于全精度的位宽度。IALU 12可将亚精度结果存储在结果寄存器32中,然而,x-n寄存器位将并非有效的,其中n=大于PBP值的有效位的位位置。或者,IALU 12将亚精度结果存储在另一结果寄存器(未图示)中,其中另一寄存器的位宽度对应于PBP值。
算术逻辑电路26可舍位一个或一个以上运算数最低有效位(LSB),使得经舍位的运算数具有小于全运算数精度且大于或等于与PBP值相关联的精度的位精度。算术逻辑电路26响应于从精度控制电路14接收的舍位值(TRUNC)而舍位一个或一个以上运算数LSB。精度控制电路14从PBP寄存器16或从一个或一个以上指令获得舍位值。在一实例中,算术逻辑电路26通过掩蔽一个或一个以上运算数LSB来舍位所述运算数LSB。
图4说明精度受控的IALU 12的另一实施例,其中IALU 12进一步包括用于舍入由算术逻辑电路26产生的舍入结果的舍入逻辑34。在此实施例中,算术逻辑电路26包含单精度除法器36和用于临时保持商结果的商寄存器38。常规舍入逻辑实施用于删除结果的LSB并调整所保留位的一个或一个以上舍入算法。举例来说,常规舍入逻辑实施以下舍入算法中的一者或一者以上:舍入到最接近的偶数、舍入到0、向上舍入和/或向下舍入。保护、舍入和粘性位可用于辅助舍入过程。然而,常规舍入电路难以舍入亚精度结果。在与亚精度结果相关联的位精度改变(例如,响应于PBP值的动态变化)、因此致使所述结果的LSB、保护、舍入和粘性位移动位置时,此尤其如此。
包括于精度受控的IALU 12中的舍入逻辑34通过识别特定亚精度结果的LSB来计及包括动态可变位精度在内的与亚精度结果相关联的位精度。舍入逻辑34通过使舍入值与亚精度结果的LSB对准,因此实现所述结果的适当舍入来计及所述LSB。舍入逻辑34包括舍入电路40和加法器42。舍入电路40处理PBP值以确定与特定结果相关联的哪一位位置将被有条件地递增。举例来说,响应于PBP值,舍入电路40识别存储于商寄存器38中的将被有条件地递增的结果的LSB。在一实施例中,舍入电路40包含移位器。如图5的步骤200所说明,所述移位器移动或移位舍入值,使得所述舍入值与特定亚精度结果的LSB对准。可通过将逻辑1值移位到对应于PBP值的LSB的位位置而对准所述舍入值。同样,所述舍入值包含除了对应于对应结果的LSB的位位置以外具有所有逻辑0的位模式。接着将经移位的舍入值提供到加法器42作为运算数。由算术逻辑电路26产生的亚精度结果充当另一运算数,例如,存储于商寄存器38中的结果。如图5的步骤202所说明,加法器42有条件地将经移位的舍入值加到由算术逻辑电路26产生的结果以产生精确舍入的结果。所属领域的技术人员将了解,可基于LSB、保护、舍入和粘性位结合使用各种已知有条件递增技术中的一者的舍入模式来对结果进行舍入,所述有条件递增技术中的每一者属于本文所揭示的实施例的范围内。
在另一实施例中,舍入电路40包含用于使舍入值与亚精度结果的LSB对准因此实现所述结果的适当舍入的解码器。如图6的步骤300所说明,所述解码器接收PBP值并产生对应于PBP值的舍入值。在一实施例中,舍入值包含除了对应于PBP值的LSB的位位置外具有所有逻辑0的位模式。对应于PBP值的LSB的舍入值的位位置包含逻辑1。接着将所述舍入值提供到加法器42作为运算数,且由算术逻辑电路26产生的结果充当另一运算数。如图6的步骤302所说明,加法器42有条件地将所述舍入值加到由算术逻辑电路26产生的结果以产生精确舍入结果。因此,通过适当地移位舍入值或解码PBP值以产生舍入运算数且有条件地将所述舍入运算数加到对应结果,精度受控的IALU 12能够产生精确的亚精度结果。
牢记上述范围的变化和应用,应理解,本揭示案不受前述描述限制,也不受附图限制。而是,本揭示案仅受所附权利要求书和其法定等效物限制。

Claims (33)

1.一种在处理器中执行迭代算术运算的方法,其包含:
以迭代方式处理第一位精度的运算数以获得一结果;以及
在所述结果实现小于所述第一位精度的经编程第二位精度时终止所述迭代处理。
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.根据权利要求16所述的迭代算术逻辑单元,其中所述算术逻辑电路经配置以通过掩蔽所述运算数LSB中的一者或一者以上来舍位所述运算数LSB中的一者或一者以上。
18.根据权利要求13所述的迭代算术逻辑单元,其进一步包含经配置以舍入所述结果的舍入逻辑。
19.根据权利要求18所述的迭代算术逻辑单元,其中所述舍入逻辑经配置以通过使舍入值与所述结果的最低有效位(LSB)对准以及有条件地将所述经对准的舍入值加到所述结果来舍入所述结果。
20.根据权利要求19所述的迭代算术逻辑单元,其中所述舍入逻辑经配置以通过移位所述舍入值来使所述舍入值与所述结果的所述LSB对准,使得所述舍入值具有位于对应于所述结果的所述LSB的位位置处的逻辑1。
21.根据权利要求19所述的迭代算术逻辑单元,其中所述舍入逻辑经配置以通过解码所述第二经编程位精度以产生舍入运算数来使所述舍入值与所述结果的所述LSB对准。
22.根据权利要求13所述的迭代算术逻辑单元,其中所述精度控制电路经配置以响应于由所述精度控制电路接收到的指示符而终止所述迭代处理。
23.一种处理器,其包含迭代算术逻辑单元,所述迭代算术逻辑单元经配置而以迭代方式处理第一位精度的运算数以获得一结果,且在所述结果实现小于所述第一位精度的经编程第二位精度时终止所述迭代处理。
24.根据权利要求23所述的处理器,其中所述迭代算术逻辑单元进一步经配置以填补所述结果,使得所述经填补的结果具有对应于所述第一位精度的位宽度。
25.根据权利要求23所述的处理器,其进一步包含用于存储所述结果的寄存器,所述寄存器具有小于所述第一位精度的位宽度。
26.根据权利要求23所述的处理器,其中所述迭代算术逻辑单元进一步经配置以舍入所述结果。
27.根据权利要求26所述的处理器,其中所述迭代算术逻辑单元经配置以通过使舍入值与所述结果的最低有效位(LSB)对准以及有条件地将所述经对准的舍入值加到所述结果而舍入所述结果。
28.根据权利要求27所述的处理器,其中所述迭代算术逻辑单元经配置以通过移位所述舍入值来使所述舍入值与所述结果的所述LSB对准,使得所述舍入值具有位于对应于所述结果的所述LSB的位位置处的逻辑1。
29.根据权利要求27所述的处理器,其中所述迭代算术逻辑单元经配置以通过解码所述第二经编程位精度以产生舍入运算数来使所述舍入值与所述结果的所述LSB对准。
30.根据权利要求23所述的处理器,其进一步包含存储元件,所述存储元件经配置以将所述经编程第二位精度存储为固定值或存储为动态可变值。
31.根据权利要求30所述的处理器,其中响应于由所述处理器接收到的一个或一个以上指令而修改所述存储的动态可变值。
32.根据权利要求23所述的处理器,其中所述算术逻辑单元响应于由所述处理器接收到的指示符而终止所述迭代处理。
33.根据权利要求32所述的处理器,其中所述指示符包含存储于包括在所述处理器中的寄存器中的旗标位。
CN200780015639.5A 2006-05-05 2007-04-20 精度受控的迭代算术逻辑单元 Active CN101432689B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/381,870 2006-05-05
US11/381,870 US9146706B2 (en) 2006-05-05 2006-05-05 Controlled-precision iterative arithmetic logic unit
PCT/US2007/067119 WO2007130803A2 (en) 2006-05-05 2007-04-20 Controlled-precision iterative arithmetic logic unit

Publications (2)

Publication Number Publication Date
CN101432689A true CN101432689A (zh) 2009-05-13
CN101432689B CN101432689B (zh) 2014-04-02

Family

ID=38662342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780015639.5A Active CN101432689B (zh) 2006-05-05 2007-04-20 精度受控的迭代算术逻辑单元

Country Status (11)

Country Link
US (1) US9146706B2 (zh)
EP (1) EP2021916A2 (zh)
JP (2) JP5102288B2 (zh)
KR (1) KR20090007478A (zh)
CN (1) CN101432689B (zh)
BR (1) BRPI0711301A2 (zh)
CA (1) CA2649857C (zh)
MX (1) MX2008014047A (zh)
RU (1) RU2413972C2 (zh)
TW (1) TWI350990B (zh)
WO (1) WO2007130803A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103069381A (zh) * 2010-07-01 2013-04-24 瑞典爱立信有限公司 循环浮点数生成器和循环浮点数加法器
CN107038016A (zh) * 2017-03-29 2017-08-11 广州酷狗计算机科技有限公司 一种基于gpu的浮点数转换方法及装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125621A1 (en) * 2008-11-20 2010-05-20 Advanced Micro Devices, Inc. Arithmetic processing device and methods thereof
US8495121B2 (en) * 2008-11-20 2013-07-23 Advanced Micro Devices, Inc. Arithmetic processing device and methods thereof
CN104040482B (zh) 2011-12-28 2018-02-16 英特尔公司 用于在打包数据元素上执行增量解码的系统、装置和方法
CN104025025B (zh) 2011-12-28 2018-08-28 英特尔公司 用于对打包数据元素执行增量编码的系统、装置和方法
RU2610247C1 (ru) * 2015-10-19 2017-02-08 Олег Александрович Козелков Многофункциональное логическое устройство
US10296292B2 (en) * 2016-10-20 2019-05-21 Advanced Micro Devices, Inc. Dynamic variable precision computation
US10684824B2 (en) 2018-06-06 2020-06-16 Nvidia Corporation Stochastic rounding of numerical values

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3434114A (en) * 1966-09-23 1969-03-18 Ibm Variable floating point precision
US3626427A (en) * 1967-01-13 1971-12-07 Ibm Large-scale data processing system
JPS5378742A (en) * 1976-12-23 1978-07-12 Toshiba Corp Multiplication control system
US4276607A (en) * 1979-04-09 1981-06-30 Sperry Rand Corporation Multiplier circuit which detects and skips over trailing zeros
JPS61213927A (ja) * 1985-03-18 1986-09-22 Hitachi Ltd 浮動小数点演算処理装置
US4823260A (en) 1987-11-12 1989-04-18 Intel Corporation Mixed-precision floating point operations from a single instruction opcode
US5249149A (en) 1989-01-13 1993-09-28 International Business Machines Corporation Method and apparatus for performining floating point division
DE68926289T2 (de) 1989-01-13 1996-10-10 Ibm Gleitkommadivisions-Verfahren und -Anordnung
JPH03245226A (ja) 1990-02-22 1991-10-31 Matsushita Electric Ind Co Ltd 浮動小数点乗算装置
US5128889A (en) 1990-02-22 1992-07-07 Matsushita Electric Industrial Co., Ltd. Floating-point arithmetic apparatus with compensation for mantissa truncation
JP2943255B2 (ja) * 1990-06-25 1999-08-30 日本電気株式会社 逆数算出回路
JP3199371B2 (ja) * 1990-07-30 2001-08-20 松下電器産業株式会社 丸め装置
JPH0823812B2 (ja) 1990-08-24 1996-03-06 松下電器産業株式会社 浮動小数点データの演算方法および演算装置
EP0472148B1 (en) 1990-08-24 2001-05-09 Matsushita Electric Industrial Co., Ltd. Method and apparatus for computing floating point data
US5268855A (en) 1992-09-14 1993-12-07 Hewlett-Packard Company Common format for encoding both single and double precision floating point numbers
GB2287333B (en) * 1994-03-11 1998-02-11 Advanced Risc Mach Ltd Data processing multiplier
WO1995031767A1 (en) * 1994-05-11 1995-11-23 Vlsi Technology, Inc. Floating-point processor with apparent-precision based selection of execution-precision
US6108772A (en) * 1996-06-28 2000-08-22 Intel Corporation Method and apparatus for supporting multiple floating point processing models
US6029243A (en) * 1997-09-19 2000-02-22 Vlsi Technology, Inc. Floating-point processor with operand-format precision greater than execution precision
US6490607B1 (en) 1998-01-28 2002-12-03 Advanced Micro Devices, Inc. Shared FP and SIMD 3D multiplier
US6487575B1 (en) 1998-08-31 2002-11-26 Advanced Micro Devices, Inc. Early completion of iterative division
US6173303B1 (en) * 1998-11-06 2001-01-09 National Semiconductor Corp. Multiply circuit and method that detects portions of operands whose partial products are superfluous and modifies partial product manipulation accordingly
US7237097B2 (en) * 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
RU2276805C2 (ru) 2001-07-13 2006-05-20 Интел Зао Способ и устройство для выделения целой и дробных компонент из данных с плавающей точкой
US6922714B2 (en) 2002-05-09 2005-07-26 International Business Machines Corporation Floating point unit power reduction scheme
NZ524378A (en) * 2003-02-24 2004-12-24 Tait Electronics Ltd Binary shift and subtract divider for phase lock loops
JP2004310432A (ja) 2003-04-07 2004-11-04 Casio Comput Co Ltd 演算装置及びプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103069381A (zh) * 2010-07-01 2013-04-24 瑞典爱立信有限公司 循环浮点数生成器和循环浮点数加法器
CN103069381B (zh) * 2010-07-01 2016-06-01 瑞典爱立信有限公司 循环浮点数生成器、循环浮点数加法器、生成循环浮点数方法及循环浮点数相加方法
CN107038016A (zh) * 2017-03-29 2017-08-11 广州酷狗计算机科技有限公司 一种基于gpu的浮点数转换方法及装置
CN107038016B (zh) * 2017-03-29 2019-11-15 广州酷狗计算机科技有限公司 一种基于gpu的浮点数转换方法及装置

Also Published As

Publication number Publication date
US20070260662A1 (en) 2007-11-08
EP2021916A2 (en) 2009-02-11
RU2413972C2 (ru) 2011-03-10
RU2008147911A (ru) 2010-06-10
US9146706B2 (en) 2015-09-29
KR20090007478A (ko) 2009-01-16
JP5102288B2 (ja) 2012-12-19
CA2649857C (en) 2016-01-05
CA2649857A1 (en) 2007-11-15
JP2012022691A (ja) 2012-02-02
JP5307202B2 (ja) 2013-10-02
BRPI0711301A2 (pt) 2011-11-22
WO2007130803A3 (en) 2008-06-26
CN101432689B (zh) 2014-04-02
WO2007130803A2 (en) 2007-11-15
TWI350990B (en) 2011-10-21
TW200821916A (en) 2008-05-16
JP2009536409A (ja) 2009-10-08
MX2008014047A (es) 2008-11-14

Similar Documents

Publication Publication Date Title
CN101432689A (zh) 精度受控的迭代算术逻辑单元
CN109643228B (zh) 用于浮点乘加运算的低能耗尾数乘法
US5631859A (en) Floating point arithmetic unit having logic for quad precision arithmetic
CN107077416B (zh) 用于以选择性舍入模式进行向量处理的装置和方法
KR100239029B1 (ko) 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서
US5452241A (en) System for optimizing argument reduction
US5671170A (en) Method and apparatus for correctly rounding results of division and square root computations
KR102200913B1 (ko) 풀 인-라인 비정규 서포트를 수반하는 높은 성능의 부동 소수점 덧셈기
US10416962B2 (en) Decimal and binary floating point arithmetic calculations
US10146503B2 (en) Rounding floating point numbers
US8019805B1 (en) Apparatus and method for multiple pass extended precision floating point multiplication
US9703626B2 (en) Recycling error bits in floating point units
US7752250B2 (en) Rounding floating point division results
WO2012087633A2 (en) Performing reciprocal instructions with high accuracy
US8005884B2 (en) Relaxed remainder constraints with comparison rounding
US7237000B2 (en) Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly
EP4290363A1 (en) Method and device for rounding in variable precision computing
EP4290364A1 (en) Method and device for variable precision computing
EP0461230A4 (en) Method and processor for high-speed convergence factor determination

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant