CN108694037B - 用于在执行浮点减法时估计移位量的装置和方法 - Google Patents
用于在执行浮点减法时估计移位量的装置和方法 Download PDFInfo
- Publication number
- CN108694037B CN108694037B CN201711385896.XA CN201711385896A CN108694037B CN 108694037 B CN108694037 B CN 108694037B CN 201711385896 A CN201711385896 A CN 201711385896A CN 108694037 B CN108694037 B CN 108694037B
- Authority
- CN
- China
- Prior art keywords
- bit
- value
- shift
- bit string
- exponent
- 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.)
- Active
Links
- 238000007667 floating Methods 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 title claims abstract description 11
- 238000004364 calculation method Methods 0.000 claims abstract description 61
- 238000004458 analytical method Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 32
- 238000001514 detection method Methods 0.000 claims description 14
- 230000001419 dependent effect Effects 0.000 claims description 3
- 230000011664 signaling Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000007792 addition Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 241001591005 Siga Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/50—Adding; Subtracting
- G06F7/504—Adding; Subtracting in bit-serial fashion, i.e. having a single digit-handling circuit treating all denominations after each other
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49921—Saturation, i.e. clipping the result to a minimum or maximum value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本公开涉及用于在执行浮点减法时估计移位量的装置和方法。提供了用于在执行减法运算生成差值时估计移位量的装置和方法。移位估计电路确定将被应用于差值的估计移位量。移位估计电路包括有效数分析电路,用于根据对两个浮点运算数的有效数值的分析生成第一位串,第一位串标识差值内的被预测为具有被设置为确定值的位的最高有效位位置。移位限制电路由指数值生成标识移位限制位位置的第二位串。移位限制电路具有计算电路,计算电路用于针对第二位串的位位置的至少一个子集中的每个位位置执行使用指数值的位的关联计算以确定针对第二位串内的该位位置的值。组合电路由第一位串和第二位串生成组合位串,移位确定电路根据组合位串确定估计移位量。
Description
技术领域
本公开涉及用于在执行浮点减法时估计移位量的装置和方法。
背景技术
在数据处理系统中使用浮点(FP)表示是很常见的。浮点数包括有效数和指示有效数的位的有效性的指数。归一化的浮点数的有效数至少为1且小于2,因此格式为1.xxxxx。当从另一浮点数中减去一个浮点数时,结果可能是非常小的数字,即可能有大量的前导零。为了寻求将结果的有效数重新归一化,可以对通过从另一有效数中减去一个有效数而获得的差值执行左移操作。
已知使用前导零预测器电路(LZA电路)来基于对有效数的分析来预测差值中将存在多少前导零,其中该前导零信息被用于确定要应用于差值的左移以便寻求对差值进行归一化。
但是,对于小于1.0的数字进行归一化要求将指数递减以补偿对差值进行的调整。当指数已经很小时,指数递减就成了一个问题,因为FP数不能具有低于预定的最小值的真指数。因此,任何提出的由LZA产生的左移都需要被限定,以便不应用导致指数递减到最小值以下的左移。
期望提供一种有效的机制来执行对使用诸如LZA电路之类的电路所产生的移位量的这种限定。
发明内容
在一个示例布置中,提供了一种装置,包括:处理电路,用于执行减法运算以从第一浮点运算数的第一有效数值中减去第二浮点运算数的第二有效数值,来生成差值;以及移位估计电路,用于确定将被应用于差值的估计移位量,移位估计电路包括:有效数分析电路,用于根据对第一有效数值和第二有效数值的分析生成第一位串,第一位串标识差值内的最高有效位位置,最高有效位位置被预测为具有被设置为确定值的位;移位限制电路,用于由指数值生成标识移位限制位位置的第二位串,移位限制电路具有计算电路,计算电路用于针对第二位串的位位置的至少一个子集中的每个位位置执行使用指数值的位的关联计算以确定针对第二位串内的该位位置的值,关联计算针对不同的位位置是不同的;组合电路,用于由第一位串和第二位串生成组合位串;以及移位确定电路,用于根据组合位串确定估计移位量。
在另一示例布置中,提供了一种在使用处理电路执行减法运算以从第一浮点运算数的第一有效数值中减去第二浮点运算数的第二有效数值来生成差值时确定估计移位量的方法,估计移位量然后被应用于差值,该方法包括:从对第一有效数值和第二有效数值的分析中生成第一位串,第一位串标识差值内的最高有效位位置,最高有效位位置被预测为具有被设置为确定值的位;通过使用计算电路针对第二位串的位位置的至少一个子集中的每个位位置执行使用指数值的位的关联计算以确定针对第二位串内的该位位置的值,由指数值生成标识移位限制位位置的第二位串,关联计算针对不同的位位置是不同的;由第一位串和第二位串生成组合位串;以及根据组合位串确定估计移位量。
在又一示例配置中,提供了一种装置,包括:用于执行减法运算以从第一浮点运算数的第一有效数值中减去第二浮点运算数的第二有效数值,来生成差值的处理装置;以及用于确定将被应用于差值的估计移位量的移位估计装置,移位估计装置包括:用于根据对第一有效数值和第二有效数值的分析生成第一位串的有效数分析装置,第一位串标识差值内的最高有效位位置,最高有效位位置被预测为具有被设置为确定值的位;用于由指数值生成标识移位限制位位置的第二位串的移位限制装置,移位限制装置具有用于针对第二位串的位位置的至少一个子集中的每个位位置执行使用指数值的位的关联计算以确定针对第二位串内的该位位置的值的计算装置,关联计算针对不同的位位置是不同的;用于由第一位串和第二位串生成组合位串的组合装置;以及用于根据组合位串确定估计移位量的移位确定装置。
附图说明
将仅通过示例的方式参照附图中所示的实施例进一步描述本技术,其中:
图1是示出根据一个实施例的装置的图;
图2是示出根据一个实施例的图1的装置的操作的流程图;
图3是示出根据一个实施例的图1的构建限制块40内提供的组件的框图;以及
图4是示出针对特定示例场景的图3中示出的组件的操作的图。
具体实施方式
在参考附图讨论实施例之前,提供实施例的以下描述。
在一个实施例中,提供了一种装置,其具有用于对第一和第二浮点运算数执行减法运算的处理电路。在一个实施例中,在执行减法运算之前,第一和第二浮点运算数被布置为具有相同的指数值,并且分别具有相关联的第一和第二有效数值。在执行减法运算期间,处理电路然后被布置为从第一有效数值中减去第二有效数值以生成差值。
此外,移位估计电路用于确定将被应用于差值的估计移位量。移位估计电路包括有效数分析电路,用于根据对第一和第二有效数值的分析生成第一位串,该第一位串标识差值内的最高有效位位置,最高有效位位置被预测为具有被设置为确定值的位。应该注意的是,有效数分析电路使用第一和第二有效数值执行其分析,并且通常在计算差值之前进行操作。因此,所标识的最高有效位位置是一种预测。有效数分析电路可以以各种方式形成,但是在一个实施例中使用已知的前导零预测器(LZA)组件,其可以高精度地预测最高有效位位置。在一个特定实施例中,由于从低阶位的进位输出(carry-out)的可能性,所以预测将最多偏离一个位位置。
然而,根据所描述的技术,不是直接使用第一位串来确定估计移位量,而是通过将由有效数分析电路产生的第一位串与第二位串组合来首先生成组合位串。具体地,在所描述的实施例中,还提供移位限制电路作为移位估计电路的一部分,以由指数值生成标识移位限制位位置的第二位串。移位限制电路具有计算电路,用于针对第二位串的位位置的至少一个子集中的每个位位置执行使用指数值的位的关联计算,以确定第二位串内的位位置的值。关联计算对于不同的位位置是不同的。已经发现,通过将计算电路布置为以上述方式操作,直接使用指数值的位作为输入,可以相对快速地生成第二位串,并且在一个实施例中可以与生成第一位串并行地生成第二位串。
然后使用组合电路来根据第一位串和第二位串生成组合位串,此后,移位确定电路从组合位串确定估计移位量。
这种方法提供了一种非常有效的机制来限定包含在由有效数分析电路产生的第一位串中的信息,从而确保不应用会使指数需要调整超过允许的最小指数值的左移。因为移位限制电路直接使用指数值的位针对第二位串的位位置的至少一个子集内的每个位位置执行关联计算,所以不需要试图计算指数值与允许的最小指数值之间的差值,从而能够非常有效地执行对左移量的限定。
在一个实施例中,所述位位置的至少一个子集包括数量上至少等于所述差值中的位位置的数量的位位置。因此,对于要应用于差值的每个可能的移位量,将由移位限制电路执行计算以用第二位串确定相应位位置的值。虽然在一个实施例中,第二位串可以仅包括与差值数量相同的位,但是在一些实施例中,可能对其位数是2的幂的值进行操作更为容易,因此第二位串(甚至和第一位串)可以被用预定值(例如逻辑0值)来填充在一定数目的最低有效位位置中。作为特定示例,当处理双精度浮点乘积和/或值的减法时,可以生成106位的差值,并且可以通过附加22个全部被设置为零的最低有效位来分别将第一位串和第二位串从106位的值扩展到128位的值。
针对第二位串的位位置的至少一个子集内的每个位位置的关联计算可以采取各种形式,但是在一些实施例中,该关联计算至少在逻辑上等同于至多使用一次指数值的每个位的计算。在一个实施例中,针对每个位位置的计算实际上最多使用一次指数值的每个位。在一个特定实施例中,对于所述至少一个子集中除最高有效位位置之外的所有位位置,关联计算使用一次指数值的每一位,但是对于最高有效位位置,指数值中除了最低有效位之外的所有位被使用一次。
关联计算本身可以采用各种形式,但是在一个实施例中,针对第二位串的位位置的所述至少一个子集中的每个位位置的关联计算对指数值的位执行一系列逻辑运算。如本文中所使用的,逻辑运算是根据布尔(Boolean)逻辑规律对产生结果的二进制数字进行操作的运算。在一个特定实施例中,一系列逻辑运算包括AND、OR和NOT运算中的一个或多个。
在一个实施例中,有效数分析电路和移位限制电路被设置为并行操作,使得在不影响确定估计移位量的整体性能的情况下产生第二位串。
在一个特定实施例中,移位限制电路具有不大于有效数分析电路的逻辑深度的逻辑深度,并且因此移位限制电路的操作不会在确定估计移位量时引入任何延迟。因此,引入的唯一延迟是生成由移位确定电路使用的组合位串时所涉及的延迟,但是在一个实施例中,可以使用单个2输入OR门函数来实现对组合位串的生成,从而引入非常小的延迟。因此,这提供了非常有效的机制来限定左移量以考虑对指数值的允许的最大调整。
在一个实施例中,有效数分析电路被布置成生成第一位串,使得第一位串内的位位置被设置为第一值以标识最高有效位位置;移位限制电路被布置为生成第二位串,使得第二位串内的位位置被设置为第一值以标识移位限制位位置;并且移位确定电路被布置为通过检测组合位串内的被设置为与所述第一值不同的第二值的前导(leading)位位置的数量来确定估计移位量。
移位限制电路可以被布置成以各种方式操作,但是在一个实施例中,移位限制电路生成第二位串,使得第二位串内的至多一个位位置被设置为第一值。相应地,如果一个位位置被设置为第一值,则这将指示移位限制位位置,并且如果没有位位置被设置为第一值,则这将指示没有由于指数值而需要对移位的限制。具体地,在该情况下,已经评估指数值足够大,使得即使考虑到差值中所包含的位的数目而应用了最大左移,经调整的指数值仍将在允许范围内。
组合电路可以以各种方式操作,但是在一个实施例中,组合电路对第一位串和第二位串执行逻辑OR运算以生成组合位串。
在一个实施例中,第一值是逻辑1值,第二值是逻辑0值。在替代实施例中可以理解,如果需要,这些值可以翻转。
此外,在一个实施例中,所确定的值是逻辑1值。因此,有效数分析电路标识差值内被预测为具有被设置为逻辑1值的位的最高有效位位置。在替代实施例中,如果以适当方式表示被操纵的数字,则所确定的值可以是逻辑0值。
计算电路可以以各种方式布置。然而,在一个实施例中,当指数值足够大以允许其被调整足以补偿差值的最大可能移位量的量时,计算电路不包括限制检测电路以设置无限制标记。当设置无限制标记时,计算电路被布置为生成标识不存在移位限制位位置的第二位串的默认位序列。这提供了有效的机制,用于检测何时指数值不需要对将由第一位串直接确定的估计移位量进行任何限制。
可以以各种方式来组织无限制检测电路,但是在一个实施例中,无限制检测电路对指数值的多个最高有效位执行逻辑OR操作,最高有效位的数目取决于用于指定指数值的位的数目和最大可能的移位量。具体地,如果使用足够数量的位来表示指数值,则其可以对足够大的值进行编码,使得考虑了应用于差值的最大可能移位的经调整的指数值仍将在允许范围内,并且如果指数值的任何相关最高有效位被设置为标识该指数值实际上至少足够大以使得上述条件成立,那么被设置的那些位中的任一位的存在将导致无限制标记被设置。
在存在被设置的无限制标记的情况下生成的默认位序列可以采取各种形式,但是在一个实施例中,该默认位序列是全零位序列。
在一个实施例中,计算电路被布置成在指数值是用于正常浮点值的最小指数值和用于低于正常(subnormal)浮点值的保留指数值中的一个时,设置第二位串中的最高有效位位置以标识移位限制位位置,从而对第二位串中的最高有效位位置的设置使得移位确定电路确定估计移位量以指示不对差值应用移位。
相应地,计算电路被布置为使得如果指数值已经是用于正常浮点值的最小指数值,则将设置第二位串中的最高有效位位置以防止差值的任何移位。类似地,计算电路将确保:如果指数值已经是用于低于正常浮点值的保留指数值,则第二位串中的最高有效位位置被设置,同样因为不应当对差值应用移位。
在一个实施例中,指数值被表示为偏置指数值,并且计算电路被布置为当偏置指数值是1或0时,设置第二位串中的最高有效位位置以标识移位限制位位置。因此,在这样的实施例中,偏置指数1和0都指代同一最小指数值,其中偏置指数为1表示最小指数值与归一化的有效数(即1.xxxxx形式的有效数)相关联,而偏置指数为0表示最小指数值与形式为0.xxxxx的非归一化有效数相关联。
在一个特定实施例中,当偏置指数值为1或0时,计算电路内所需的使得能够设置第二位串中的最高有效位置的功能通过如下操作来实现:将针对最高有效位位置的关联计算布置为忽略指数值的位值0,因此在指数值的最低有效位位置方面,不区分逻辑0值或逻辑1值。
在一个实施例中,所述装置还包括低于正常状况检测电路,用于确定何时估计移位量被移位限制位位置约束,而不是由差值内的被预测为具有被设置为确定值的位的最高有效位位置约束,并且基于这样的检测发出信号以使得结果指数被设置为用于低于正常浮点值的保留指数值。根据对由移位估计电路产生的第一位串和第二位串的分析来生成该触发信号可能是有益的,因为如果已知在第二位串内编码的移位限制位位置将限制估计移位量,还已知移位后的差值将在低于正常范围内,那么应将指数设置为保留指数值,即上述偏置指数示例中的值0。
现在将参考附图来描述特定实施例。
浮点(FP)是使用少量位来近似实数的有用方法。IEEE 754-2008FP标准提出了用于FP数的多种不同格式,其中一些是二进制64位(也称为双精度或DP)、二进制32位(也称为单精度或SP)和二进制16位(也称为半精度或HP)。数字64、32和16是指每种格式所需的位的数目。
表示方式
FP数与科学课程中教授的“科学记数法”非常相似,其中,代替负两百万,将记为-2.0×106。该数的部分是符号(在这种情况下是负号)、有效数(2.0)、指数的底数(10)和指数(6)。所有这些部分在FP数中都是类似的,虽然有不同之处,但最重要的是组成部分以二进制数存储,指数的底数始终为2。
更确切地说,FP数都由一个符号位、一些偏置的指数位以及一些小数位组成。具体而言,感兴趣的格式包括以下几个部分:
格式 | 符号 | 指数 | 小数 | 指数偏置 |
DP[63:0] | 63 | 62:52(11位) | 51:0(52位) | 1023 |
SP[31:0] | 31 | 30:23(8位) | 22:0(23位) | 127 |
HP[15:0] | 15 | 14:10(5位) | 9:0(10位) | 15 |
负数的符号是1,正数的符号是0。每个数字(包括零)都有符号。
指数是经偏置的,这意味着真实指数不同于存储在数字中的指数。例如,经偏置的SP指数长度为8位,范围从0到255。指数0和255是特殊情况,但所有其他指数都有偏置127,这意味着真实指数比经偏置的指数小127。最小的经偏置的指数为1,其对应于真实指数-126。最大的经偏差的指数为254,其相当于真实指数127。HP和DP指数原理与此相同,偏置见上表。
SP指数255(或DP指数2047或HP指数31)被保留用于无穷(infinity)和特殊符号,其被称为NaN(不是数字)。无穷(可以是正或是负)具有零小数。具有指数255和非零小数的任何数都是NaN。无穷提供了饱和度值,所以它实际上意味着“该计算的结果是比我们可以用这种格式表示的数更大的数”之类。NaN被返回用于在实数上没有数学定义的运算,例如,被零除或取负数的平方根。
以任何格式的指数零被保留用于低于正常的数字和零。正常数字表示值:
-1符号×1.小数×2e
其中e是从偏置指数所计算的真实指数。术语1.小数被称为有效数,1不是作为FP数的一部分存储,而是从指数推断出。除零和最大指数以外的所有指数都表示形式为1.小数的有效数。指数零指示形式为0.小数的有效数,以及等于给定格式下的1-偏置的真实指数。这样的数被称为低于正常(历史上,这些数字被称为反常规(denormal),但现代用法偏好术语“低于正常”)。
指数和小数均等于零的数是零。
下表中有一些HP格式的示例数。这些条目是二进制的,添加了“_”字符以提高可读性。请注意,低于正常条目(表的第4行,零指数)会产生与上一行中的正常条目不同的有效数。
符号 | 5位指数 | 10位小数 | 11位有效数 | 值 |
0 | 01111 | 00_0000_0000 | 100_0000_0000 | 1.0×20 |
1 | 01110 | 10_0000_0000 | 110_0000_0000 | -1.1×2-1 |
0 | 00001 | 10_0000_0000 | 110_0000_0000 | 1.1×2-14 |
0 | 00000 | 10_0000_0000 | 010_0000_0000 | 0.1×2-14 |
1 | 11111 | 00_0000_0000 | -无穷 | |
0 | 11111 | 00_1111_0011 | NaN |
FP实现方式的复杂性的很大一部分是由于低于正常情形,因此它们通常由微代码或软件来处理。一些处理器处理硬件中的低于正常情形,与软件或微代码实现方式相比,将这些运算加速了10到100倍。
这里描述的实施例提供了用于估计要应用于差值的移位量的有效机制,其中,该差值是通过将两个浮点操作数的有效数相减而获得的。如前所述,已知的LZA电路可以尝试基于对有效数的分析来预测在差值中将存在多少前导零,前导零信息被用于确定要应用于差值的左移以尝试归一化差值。
当将两个有效数相减时,所得到的差值可能会表示为小于1.0的数,因此需要通过执行左移操作来归一化该差值。但是,对小于1.0的数进行的归一化要求将指数递减以补偿对差值进行的调整。考虑下面的示例:
有4个前导零,所以需要左移4个位位置以进行归一化。但是请注意0.0001*2^e=0.0010*2^(e-1)
(或者例如.1*2^2=4的二分之一=2=1.0*2^1)
当指数e接近最小指数(偏置指数0和1都是IEEE 754格式中相同的最小指数)时,问题就出现了。不能进行左移并且递减这些指数。
因此,具有偏置指数0或1的结果根本不能被左移。具有偏置指数2的结果可以被左移至多一个位位置。具有偏置指数j>1的结果可以被左移至多j-1个位位置。
因此,虽然标准的LZA电路可以通过分析两个输入有效数来确定对结果进行归一化所需的左移的估计,但是该左移量需要被限定,以使得不会应用导致指数被递减到最小值以下的左移。因此,归一化问题是左移:
min(LZA,e-emin)。
但是,要确定e-emin需要执行减法运算,并且这可能显著影响LZA计算的性能。通常情况下,与可以执行基于有效数的标准LZA计算的时间相比,e-emin不能够被足够早地进行计算,这会进一步影响性能。
本文描述的实施例提供了在不需要直接计算差值e-emin的情形下,用于限定由标准LZA分析产生的左移量的机制。此外,所描述的用于确定指数是否将限制左移的机制使用对指数值的位执行的简单逻辑运算,并且不需要诸如移位操作之类的任何时间密集的计算。实际上,在所描述的特定实施例中,用于确定指数值是否将限制左移的电路具有的逻辑深度不大于用于在标准LZA计算期间根据对两个输入有效数的分析来创建位串的逻辑深度,因此在计算出位串时,确定指数值是否会限制左移所必要的信息也是可用的。这提供了特别有效的实现方式。
图1是示出根据一个实施例的装置的图示。在该示例中,假设正在运算双精度浮点数。此外,两个输入有效数的有效数路径的大小是106位,这允许任一操作数来表示两个双精度数的不舍入乘积。根据双精度格式,指数值包括11位。
在一个实施例中,图1所示的电路存在于近路径处理电路内,并且用于在两个输入浮点操作数具有相等、或至多相差1的指数时,计算该两个输入浮点操作数之间的差。当不满足该条件时,差值计算将替代地使用许多已知标准技术中的任意一种来在远路径处理电路内执行。
如图所示,若每个输入浮点操作数的指数值的位零不相同,则提供右移一位块10,其将有效数b右移一位,由此来指示指数相差1。在一个实施例中,在两个有效数输入siga和sigb被提供给图1所示的电路时,已知siga具有比sigb更大或与sigb相同的指数,从而若实际上指数值相差1,则sigb需要被右移。在替代实施例中,可以稍后进行该评估并且装置可被布置为执行两个单独的计算,一个计算是从第一操作数减去第二操作数,并且另一计算是从第二操作数减去第一操作数,基于哪个操作数具有较大指数的稍后确定,稍后来确定哪个(若存在)是正确结果。如前面提到的,若指数相差2或更多,则所使用的结果实际上是由不同的逻辑电路产生的结果。
为了以下讨论的目的,通过路径8接收到的有效数值将被称为第一有效数,并且通过路径12输出的有效数值(其可选地已经被移位器10右移一位)将被称为第二有效数,并且电路15、20被用于从第一有效数减去第二有效数。具体地,使用加法器电路20来执行二进制补码相加,第二有效数的位被反相器15反相,并且加法器接收进位值1。因此,来自加法器20的求和输出表示通过从第一有效数减去第二有效数获得的差值。该值然后由移位电路25进行左移运算,左移的量由图1所示的经修改的LZA电路30来确定。
经修改的LZA电路30包括两个位串构建块35、40。第一位串由构建w块35产生,该块接收第一有效数和第二有效数,并且执行对这些有效数的分析以便产生对将在差值内出现的前导零的数目的估计。可以使用任意标准LZA电路来实现构建w块35。如本领域技术人员将理解的,来自构建w块35的输出将是第一位串,其中,最高有效逻辑1值在由加法器20计算的差值中预期存在前导1的位位置中。由于从低阶位进位输出的可能性,由构建w块35执行的该预测在一个实施例中将最多出去(out)一个位位置。以标准方式,稍后可以确定该预测是否出去一个位位置,稍后在处理路径内进行后续调整(图1未示出)。
还如图1所示,提供了构建限制块40,其与构建w块35并行操作,并且基于对指数的评估来生成用于标识移位限制位位置的第二位串。具体地,被提供给构建限制块40的expa值表示第一有效数和第二有效数共用的指数值,并且基于该共用指数值,构建限制块40被布置为单纯地基于应用于指数值的位序列的简单逻辑运算来生成第二位串。具体地,如稍后将更详细地讨论的,对于可以与差值的可能的左移量相关联的每个位位置,使用指数值的位来执行关联计算以确定该位位置的值。在一个实施例中,在与第二位串内的任意特定位位置相关联的计算期间,指数值的每个位最多被使用一次。
在图1所示的示例中,假设生成106位的第二位串(以及相应的106位的第一位串),以使得每个位串中的位数与由加法器电路20产生的差值中的位数相匹配,并且因此,两个位串都包括与差值的每个可能的左移量相关联的信息。在这样的布置中,在构建限制块40内,将针对第二位串中的106个位位置中的每个位位置执行单独的计算。对于每个位位置,所执行的计算可以不同于针对任意其他位位置所执行的计算,但每个计算将涉及使用指数值的位来执行的简单逻辑运算,在一个实施例中,逻辑运算包括AND、OR和NOT运算中的一个或多个。
由于构建限制块40所执行的简单逻辑运算以及这些逻辑运算直接对指数值的位进行运算的事实,可以相对快速地生成第二位串,并且在一个实施例中,构建限制块40电路的逻辑深度不大于构建w电路35的逻辑深度。具体地,通过布置构建限制块40来针对位串中的每个位位置执行简单逻辑运算的序列,直接使用指数值的位,不需要执行任何时间密集的减法或移位运算,并且这使得能够至少与第一位串一样快速地生成第二位串。
该两个位串然后被提供给组合电路45,在一个实施例中,组合电路45对两个输入位串执行简单OR运算,以便生成组合位串,该组合位串然后被输出到计数前导零(CLZ)电路50。CLZ电路50可以以标准方式运算,但不是直接对构建w块35的输出进行运算,它现在使用由组合电路45产生的组合位串,并且对组合位串中的前导零的数目进行计数以便确定左移量,该左移量然后被编码在输出到左移电路25的七位值中。将理解的是,由于最大左移量是106位,因此所有可能的左移量可被编码在由CLZ电路50输出的七位左移值内。
在来自CLZ电路50的左移指示的控制下,差值然后被左移电路25左移,然后输出被传送到舍入电路55,在舍入电路55中,执行舍入运算以产生与用于双精度有效数的标准格式相一致的包括53个位的输出有效数值。
通过布置电路来如图1所示地进行操作,这提供了用于限定根据对两个输入有效数的分析所产生的左移量的高效机制,以便确保不应用超过考虑指数值的适当的最大左移的左移。具体地,将理解的是,若由构建限制块40输出的第二位串在比由构建w块35产生的第一位串中的最高有效1更高的有效位位置处具有最高有效1,则在组合两个位串之后,由CLZ电路50检测到的前导零的数目将由构建限制块40所产生的第二位串中的前导1确定,从而产生比来自构建w块35的输出由CLZ电路50直接分析的情况更低的左移量。
在一个实施例中,当指数值是用于正常浮点值的最小指数值或用于低于正常浮点值的预留指数值时,与106位第二位串的最高有效位位置相关联的计算电路被布置为将该最高有效位设置为逻辑1值。因此,根据上面讨论的IEEE 754格式,若偏置指数是1或0,则第二位串中的最高有效位将被设置。将理解的是,这将意味着CLZ电路50将不会检测到任何前导零,并且将不会应用左移。因此,电路可以自动地考虑这样的事实,偏置指数1或偏置指数0实际上指代相同的最小指数值,从而若偏置指数值是1或0,则防止任何左移。
能够确定左移是否被第二位串限制也是有用的。具体地,若第二位串中的最高有效1和第一位串中的最高有效1处于相同的位位置,则这将指示由第一位串指示的左移位量被允许执行,但将导致指数然后取用于正常浮点值的最小指数值,即偏置指数值1。然而,若替代地左移量被第二位串中的最高有效1限制,则这指示差值将被进行不足以使其能够被完全归一化的左移(即被转换为形式为1.xxx的有效数),因而这意味着相关联的偏置指数应具有值0,这指示该结果是低于正常的结果。
在一个实施例中,提供了低于正常状况检测电路60,其可以基于对分别由构建w块35和构建限制块40输出的第一位串和第二位串的分析来做出该确定。具体地,当低于正常状况检测电路60检测到第二位串将限制左移量时,其设置被转发到指数处理电路(图1未示出)的输出,以使得结果指数被设置为偏置指数零,以标识低于正常的结果。
关于图1所示的经修改的LZA电路30的时序影响,通过直接根据指数值的十一位来计算第二位串的每个位的值,已经发现该计算可以利用大约五个2输入门的逻辑深度来完成。实际上,这结果是表示比构建w块35所需的逻辑深度略低的逻辑深度。因此,与直接使用来自构建w块35的输出的CLZ电路50有关的唯一额外延迟是组合第一位串和第二位串的2输入OR门。然而,如上面讨论的,经修改的LZA电路30能够自动地限定来自构建w块35的输出,以便防止应用要求指数递减到最小允许值以下的左移,从而避免需要采取任意其他步骤来实现该限定。
图2是示出图1的电路的操作的流程图。在步骤100处,确定操作数b的指数是否比操作数a的指数小1,并且如果是,则在步骤105处,使用移位电路10将有效数b右移一位。如此前讨论的,在步骤100处,可以仅假设若两个指数的位零不同,则指数b比指数a小1,稍后确定实际上是否是指数b比指数a小1的情况。在这样的情况下,图1的电路可以被使用两次以执行两个不同的计算,第一计算是opa-opb并且第二计算是opb-opa,然后根据哪个操作数具有较低的值指数的后续确定来稍后选择适当的结果。还如此前讨论的,还可以是指数差是2或更多的情况,在该情况下,将使用其他电路来执行浮点操作数的减法。
如步骤110所示,与通过电路20计算差值并行地,并行执行以下步骤115和120。具体地,在步骤115处,由块35构建第一位串以标识差值中被预测为具有逻辑1值的最高有效位位置,这根据对两个输入有效数的分析来直接执行。
并行地,在步骤120处,使用块40通过根据指数值的位直接计算第二位串的位的至少一个子集中的每个位的值,来构建标识移位限制位位置的第二位串(本文还称为限制串)。在图1所示的示例中,假设所产生的两个位串具有与差值中的位数相同的位数,从而在这种情况下,在生成第二位串时,针对限制串中的每个位位置执行计算。然而,在一些实施例中,可以简化实现方式以对具有位数为2的幂的值进行运算。因此,可以布置块35、40中的每一个产生128位的串。在该情况下,串中的最高有效106个位可以由相关的块来计算,其余的22个最低有效位仅是填充位,并且被设置为预定值,例如,逻辑0值。通过添加全被设置为零的22个最低有效位来将位串扩展到128位对于由CLZ块50执行的计算没有影响,该计算是对前导零的数目进行计数(即从最高有效位位置开始),因而不影响用于控制左移电路25的左移量。在步骤115和120之后,在步骤125处,逻辑地组合第一位串和第二位串,在一个实施例中,通过执行OR运算来逻辑地组合第一位串和第二位串。然后,在步骤130处,对组合位串中的前导零的数目进行计数以便确定左移量,并且向左移电路25发布相应的输出值以标识该左移量。
图3是示出根据一个实施例的在构建限制块40内提供的组件的框图。在该示例中,假设指数值具有存在可能的指数值的至少一个子集的足够的位,该子集足够大以至于从不需要对根据有效数确定的左移量施加任何限制。因此,指数值的一定数目的最高有效位(图3中称为最高有效X位)可被提供给无限制检测电路200。在一个实施例中,无限制检测电路可以对这些最高有效位执行简单OR运算,以使得若任意这些最高有效位被设置,则由无限制检测电路200输出逻辑1值。在一个实施例中,该值然后由反相器205反相,并且作为输入被提供给与第二位串中的相应的位位置相关联的单独的计算块中的每一个。其余的指数位(图3中称为N-X位,假设指数一共具有N个位)然后也被提供给各个计算块210、215、220、225。如此前讨论的,在一个实施例中,可以从被提供给与限制串的最高有效位位置相关联的计算块210的位中省略指数值的位零。在该示例中,假设产生M位限制串,并且相应地,块210与最高有效位位置相关联。通过从到计算块210的输入中省略指数值的最低有效位,计算块可以检测其中所有其他指数位均为零的情况,指示偏置指数是1或0,并且在该情况下,将位限制[M-1]设置为1。在适当的时候,这将导致CLZ电路50检测不到前导零,因而不应用左移。
在计算块210、215、220、225中的每一个内,可以对指数位序列应用简单逻辑运算以产生用于相关联的LIM位位置的相应输出位。所执行的实际计算将取决于差值的大小以及指数值中的位数。
若限制位串中的位数M等于由求和块20计算的差值中的位数,则将为每个位位置提供相应的计算块。然而,若限制串按照此前讨论的方式被填充,以便例如确保限制串具有等于2的幂的位数,则较低有效位中的一个或多个可能不需要任何明确的计算块,因而为了说明这一点,计算块225由图3中的虚线框标识。具体地,如此前讨论的,若限制串按照该方式被填充,则限制串的一定数目的最低有效位可被全部设置为零。例如,对于其中差值可以表示106位的双精度数字,限制串可被填充为128位数字。类似地,对于单精度操作数,差值可以是48位,并且限制位串可被填充为产生64位位串。此外,对于其中差值可以是22位的半精度操作数,限制位串可被填充为形成32位值。由于差值在右边被填充,即在一定数目的最低有效位位置中填充,该填充范围中的任意指数限制指示将不影响由CLZ电路50计算的左移位,因而这些填充位位置可以将它们的值设置为任何任意值。
图4示意性地示出了针对具体示例的可以由图3所示的组件执行的计算,在该具体示例中,差值是6位差值,并且指数值是5位指数值。由于差值是6位,因而最大左移是6位,若指数的最高有效两个位中的任一个被设置为逻辑1值,则这将指示该指数值足够大,它将不会对可用的最大左移施加任何限制。因此,无限制检测电路200可以接收指数位4和3,并且对这些指数值执行逻辑OR运算以便生成无限制信号,其在图4中被称为“exp_ge_8”。若指数的位4或位3被设置,则该值将因而被设置为逻辑1值,并且如图4的其余部分所示,该无限制信号的反相版本然后被提供给与限制位串中的每个位位置相关联的计算电路中的每一个。在该示例中,产生8位限制位串以便产生位数是2的幂的限制位串。最高有效位位置计算块(图3中的计算块210)通过使用由反相器205输出的无限制信号的反相版本、以及指数位2和1的反相值来执行逻辑AND运算以产生lim[7]值。若所有指数值4到1都是逻辑0值,则lim[7]将因而被设置为逻辑1值,但如果这些位中的任一个被设置为逻辑1值,则lim[7]将被设置为零。当lim[7]被设置为1时,这将指示不允许移位,并且根据图1的此前的讨论将理解的是,在该情况下,CLZ电路50将确定在由组合电路45产生的组合位串中将不存在前导零。
对于其他限制位位置中的每一个,将看出的是,所有的指数位被使用一次。若指数值的位1被设置为1并且所有其他指数位被设置为零,则lim[6]信号将被设置为1。因此,在该示例中,指数具有值2,因而允许1位移位。
由与限制位串中的各个位位置相关联的其他计算块中的每一个执行的计算也在图4中给出。在每种情况下,可以看出,若指数值具有大于1的值j,则移位限制位位置将被设置为标识可以执行最多j-1个位位置的左移。
如图4所示,不需要针对lim[0]进行计算,并且该输出可被设置为任意值,因为它从不用作对于6位差异的限制。
根据上述实施例,将理解的是,这些实施例允许直接根据偏置指数来构建左移限制串,并且正确地考虑最小指数值以及正常/低于正常边界。可以通过针对每个有效位位置(即对应于可能的左移量的位位置)执行仅需要对指数值的各个位应用简单逻辑运算的计算,来快速地构建左移限制串,从而允许实现用于限定由两个输入有效数的比较所指示的左移量的一种非常有效的机制。不需要单独的减法运算来计算e-emin,并且替代地,在用于构建第二位串的逻辑中隐式地处理该差值。
在本申请中,词语“被配置为...”用于表示装置的元件具有能够执行所定义的操作的配置。在该上下文中,“配置”表示硬件或软件的互连的布置或方式布置或方式。例如,装置可以具有提供所定义的操作的专用硬件,或可被编程为执行该功能的处理器或其他处理设备。“被配置为”并不意味着需要以任何方式来改变装置元件以便提供所定义的操作。
尽管本文已经参考附图详细描述了本发明的说明性实施例,但将理解的是,本发明不限于这些精确的实施例,并且可以由本领域技术人员实现各种改变、添加、以及修改,而不脱离如所附权利要求限定的本发明的范围和精神。例如,从属权利要求的特征的各种组合可以与独立权利要求的特征相一致,而不脱离本发明的范围。
Claims (20)
1. 一种数据处理装置,包括:
处理电路,用于执行减法运算以从第一浮点运算数的第一有效数值中减去第二浮点运算数的第二有效数值,来生成差值;以及
移位估计电路,用于确定将被应用于所述差值的估计移位量,所述移位估计电路包括:
有效数分析电路,用于根据对所述第一有效数值和所述第二有效数值的分析来生成第一位串,所述第一位串标识所述差值内的最高有效位位置,所述最高有效位位置被预测为具有被设置为确定值的位;
移位限制电路,用于由指数值生成标识移位限制位位置的第二位串,所述移位限制电路具有计算电路,所述计算电路用于针对所述第二位串的位位置的至少一个子集中的每个位位置执行使用所述指数值的位的关联计算,以确定针对所述第二位串内的该位位置的值,所述关联计算针对不同的位位置是不同的;
组合电路,用于由所述第一位串和所述第二位串生成组合位串;以及
移位确定电路,用于根据所述组合位串确定所述估计移位量。
2.如权利要求1所述的数据处理装置,其中,在所述减法运算被执行之前,所述第一浮点运算数和所述第二浮点运算数被布置为具有相同的指数值,并且该指数值是由所述移位限制电路使用的所述指数值。
3.如权利要求1所述的数据处理装置,其中,位位置的所述至少一个子集包括至少等于所述差值中的位位置的数目的多个位位置。
4.如权利要求1所述的数据处理装置,其中,针对所述第二位串的位位置的所述至少一个子集中的每个位位置的关联计算至少在逻辑上等同于至多使用一次所述指数值的每个位的计算。
5.如权利要求4所述的数据处理装置,其中,针对所述第二位串的位位置的所述至少一个子集中的每个位位置的关联计算对所述指数值的位执行一系列逻辑运算。
6.如权利要求5所述的数据处理装置,其中所述一系列逻辑运算包括与运算、或运算和非运算中的一个或多个。
7.如权利要求1所述的数据处理装置,其中,所述有效数分析电路和所述移位限制电路被布置为并行操作。
8.如权利要求7所述的数据处理装置,其中所述移位限制电路的逻辑深度不大于所述有效数分析电路的逻辑深度。
9.如权利要求1所述的数据处理装置,其中:
所述有效数分析电路被布置为生成第一位串,使得所述第一位串内的位位置被设置为第一值以标识所述最高有效位位置;
所述移位限制电路被布置为生成第二位串,使得所述第二位串内的位位置被设置为所述第一值以标识所述移位限制位位置;以及
所述移位确定电路被布置为通过检测所述组合位串内的被设置为与所述第一值不同的第二值的前导位位置的数目来确定所述估计移位量。
10.如权利要求9所述的数据处理装置,其中,所述移位限制电路被布置为生成所述第二位串,使得所述第二位串内的至多一个位位置被设置为所述第一值。
11.如权利要求9所述的数据处理装置,其中,所述组合电路被布置为对所述第一位串和所述第二位串执行逻辑或运算以生成所述组合位串。
12.如权利要求9所述的数据处理装置,其中,所述第一值是逻辑1值,并且所述第二值是逻辑0值。
13.如权利要求1所述的数据处理装置,其中,所述确定值是逻辑1值。
14. 如权利要求1所述的数据处理装置,其中:
所述计算电路包括无限制检测电路,用于当所述指数值足够大以允许其被调整足以补偿所述差值的最大可能移位量的量时,设置无限制标记;以及
所述计算电路被布置为:当所述无限制标记被设置时,生成标识所述移位限制位位置不存在的所述第二位串的默认位序列。
15.如权利要求14所述的数据处理装置,其中,所述无限制检测电路对所述指数值的多个最高有效位执行逻辑或运算,所述最高有效位的数目取决于用于指定所述指数值的位的数目和所述最大可能移位量。
16.如权利要求14所述的数据处理装置,其中,所述默认位序列是全零位序列。
17.如权利要求1所述的数据处理装置,其中:
所述计算电路被布置为当所述指数值是用于正常浮点值的最小指数值和用于低于正常浮点值的预留指数值之一时,设置所述第二位串中的最高有效位位置以标识所述移位限制位位置,所述第二位串中的所述最高有效位位置的设置使得所述移位确定电路确定所述估计移位量以指示不对所述差值应用移位。
18.如权利要求17所述的数据处理装置,其中,所述指数值被表示为偏置指数值,并且所述计算电路被布置为当所述偏置指数值为1或0时设置所述第二位串中的最高有效位位置以标识所述移位限制位位置。
19.如权利要求1所述的数据处理装置,还包括:低于正常状况检测电路,用于确定所述估计移位量何时被所述移位限制位位置约束、而不是被所述差值内的被预测为具有被设置为确定值的位的所述最高有效位位置约束,并且基于这样的检测发出信号以使得结果指数被设置为用于低于正常浮点值的预留指数值。
20.一种在使用处理电路执行减法运算以从第一浮点运算数的第一有效数值中减去第二浮点运算数的第二有效数值来生成差值时确定估计移位量的方法,所述估计移位量然后被应用于所述差值,所述方法包括:
根据对所述第一有效数值和所述第二有效数值的分析来生成第一位串,所述第一位串标识所述差值内的最高有效位位置,所述最高有效位位置被预测为具有被设置为确定值的位;
通过以下操作由指数值生成标识移位限制位位置的第二位串,所述操作为使用计算电路针对所述第二位串的位位置的至少一个子集中的每个位位置执行使用所述指数值的位的关联计算以确定针对所述第二位串内的该位位置的值,所述关联计算针对不同的位位置是不同的;
由所述第一位串和所述第二位串生成组合位串;以及
根据所述组合位串确定所述估计移位量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/473,841 US10140093B2 (en) | 2017-03-30 | 2017-03-30 | Apparatus and method for estimating a shift amount when performing floating-point subtraction |
US15/473,841 | 2017-03-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108694037A CN108694037A (zh) | 2018-10-23 |
CN108694037B true CN108694037B (zh) | 2023-12-01 |
Family
ID=61731173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711385896.XA Active CN108694037B (zh) | 2017-03-30 | 2017-12-20 | 用于在执行浮点减法时估计移位量的装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10140093B2 (zh) |
CN (1) | CN108694037B (zh) |
GB (1) | GB2565385B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200293289A1 (en) * | 2019-03-13 | 2020-09-17 | Micron Technology, Inc. | Bit string conversion |
US10990389B2 (en) * | 2019-04-29 | 2021-04-27 | Micron Technology, Inc. | Bit string operations using a computing tile |
US11163533B2 (en) * | 2019-07-18 | 2021-11-02 | International Business Machines Corporation | Floating point unit for exponential function implementation |
US10778245B1 (en) * | 2019-08-20 | 2020-09-15 | Micron Technology, Inc. | Bit string conversion |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298367B1 (en) * | 1998-04-06 | 2001-10-02 | Advanced Micro Devices, Inc. | Floating point addition pipeline including extreme value, comparison and accumulate functions |
CN102495714A (zh) * | 2011-01-05 | 2012-06-13 | 威盛电子股份有限公司 | 执行浮点减法的装置与方法及预测符号数字的装置与方法 |
CN102520906A (zh) * | 2011-12-13 | 2012-06-27 | 中国科学院自动化研究所 | 支持定浮点可重构的向量长度可配置的向量点积累加网络 |
CN104991757A (zh) * | 2015-06-26 | 2015-10-21 | 浪潮(北京)电子信息产业有限公司 | 一种浮点处理方法及浮点处理器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940311A (en) * | 1996-04-30 | 1999-08-17 | Texas Instruments Incorporated | Immediate floating-point operand reformatting in a microprocessor |
US5923577A (en) * | 1996-10-21 | 1999-07-13 | Samsung Electronics Company, Ltd. | Method and apparatus for generating an initial estimate for a floating point reciprocal |
JP3544846B2 (ja) * | 1997-02-13 | 2004-07-21 | 株式会社東芝 | 論理回路及び浮動小数点演算装置 |
US5943249A (en) | 1997-04-25 | 1999-08-24 | International Business Machines Corporation | Method and apparatus to perform pipelined denormalization of floating-point results |
US6405232B1 (en) * | 1999-08-19 | 2002-06-11 | National Semiconductor Corporation | Leading bit prediction with in-parallel correction |
US8250126B2 (en) * | 2007-12-26 | 2012-08-21 | Oracle America, Inc. | Efficient leading zero anticipator |
US8214417B2 (en) | 2008-08-14 | 2012-07-03 | Oracle America, Inc. | Subnormal number handling in floating point adder without detection of subnormal numbers before exponent subtraction |
US8965945B2 (en) | 2011-02-17 | 2015-02-24 | Arm Limited | Apparatus and method for performing floating point addition |
US9317250B2 (en) | 2012-11-12 | 2016-04-19 | Advanced Micro Devices, Inc. | Floating point multiply-add unit with denormal number support |
US9830129B2 (en) | 2013-11-21 | 2017-11-28 | Samsung Electronics Co., Ltd. | High performance floating-point adder with full in-line denormal/subnormal support |
-
2017
- 2017-03-30 US US15/473,841 patent/US10140093B2/en active Active
- 2017-12-20 CN CN201711385896.XA patent/CN108694037B/zh active Active
-
2018
- 2018-02-09 GB GB1802120.4A patent/GB2565385B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298367B1 (en) * | 1998-04-06 | 2001-10-02 | Advanced Micro Devices, Inc. | Floating point addition pipeline including extreme value, comparison and accumulate functions |
CN102495714A (zh) * | 2011-01-05 | 2012-06-13 | 威盛电子股份有限公司 | 执行浮点减法的装置与方法及预测符号数字的装置与方法 |
CN102520906A (zh) * | 2011-12-13 | 2012-06-27 | 中国科学院自动化研究所 | 支持定浮点可重构的向量长度可配置的向量点积累加网络 |
CN104991757A (zh) * | 2015-06-26 | 2015-10-21 | 浪潮(北京)电子信息产业有限公司 | 一种浮点处理方法及浮点处理器 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的浮点运算单元的设计方法;许秋华;刘伟;;大众科技(第10期);第21-23页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108694037A (zh) | 2018-10-23 |
GB201802120D0 (en) | 2018-03-28 |
GB2565385B (en) | 2019-08-21 |
GB2565385A (en) | 2019-02-13 |
US20180285076A1 (en) | 2018-10-04 |
US10140093B2 (en) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5996946B2 (ja) | 浮動小数点加算器 | |
CN108694037B (zh) | 用于在执行浮点减法时估计移位量的装置和方法 | |
US9483232B2 (en) | Data processing apparatus and method for multiplying floating point operands | |
US8499017B2 (en) | Apparatus and method for performing fused multiply add floating point operation | |
JP6415236B2 (ja) | 浮動小数点加算ユニットを含む装置及びシステム、並びに浮動小数点加算方法 | |
US10338889B2 (en) | Apparatus and method for controlling rounding when performing a floating point operation | |
KR20080055985A (ko) | 선택가능 준정밀도를 가진 부동―소수점 프로세서 | |
US7668892B2 (en) | Data processing apparatus and method for normalizing a data value | |
US7437400B2 (en) | Data processing apparatus and method for performing floating point addition | |
US20070038693A1 (en) | Method and Processor for Performing a Floating-Point Instruction Within a Processor | |
US10275218B1 (en) | Apparatus and method for subtracting significand values of floating-point operands | |
GB2559039B (en) | Leading zero anticipation | |
JPH02294731A (ja) | 浮動小数点数演算処理装置及び除数倍数生成装置 | |
CN113874833A (zh) | 多输入浮点加法器 | |
US8250126B2 (en) | Efficient leading zero anticipator | |
KR101922462B1 (ko) | 데이터 처리장치 및 이진수에 대해 시프트 기능을 수행하는 방법 | |
US7386580B2 (en) | Data processing apparatus and method for computing an absolute difference between first and second data elements | |
US10331406B2 (en) | Handling floating-point operations | |
Reddy et al. | A novel low power error detection logic for inexact leading zero anticipator in floating point units | |
Khobragade et al. | Floating point unit using error correction scheme and modified anticipator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |