JP2003029960A - Elimination of rounding step in short path of floating point adder - Google Patents

Elimination of rounding step in short path of floating point adder

Info

Publication number
JP2003029960A
JP2003029960A JP2002167379A JP2002167379A JP2003029960A JP 2003029960 A JP2003029960 A JP 2003029960A JP 2002167379 A JP2002167379 A JP 2002167379A JP 2002167379 A JP2002167379 A JP 2002167379A JP 2003029960 A JP2003029960 A JP 2003029960A
Authority
JP
Japan
Prior art keywords
floating point
result
operands
path
mantissa
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.)
Withdrawn
Application number
JP2002167379A
Other languages
Japanese (ja)
Inventor
Ajay Naini
ナイーニ アジェイ
Atul Dhablania
ダブラニア アテュル
Warren James
ジェームズ ウォーレン
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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
Priority claimed from US09/922,371 external-priority patent/US20030115236A1/en
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2003029960A publication Critical patent/JP2003029960A/en
Withdrawn legal-status Critical Current

Links

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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • 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
    • 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/386Special constructional features
    • G06F2207/3868Bypass control, i.e. possibility to transfer an operand unchanged to the output

Abstract

PROBLEM TO BE SOLVED: To provide a dual concurrent pipeline floating point adder unit shortening arithmetic delay time in a short path. SOLUTION: The device is provided with two concurrent data paths which are the short path and a long path. In the case that a floating point arithmetic operation is a subtraction operation and an exponent difference between two operands is 0, or in the case that the floating point arithmetic operation is the subtraction operation, the exponent difference is 1 and the mantissa of the operand having a larger exponent is within the range of a predetermined number, the short path is used so as to generate the result of the floating point arithmetic operation. In the case that the floating point arithmetic operation is addition operation, or in the case that the floating point arithmetic operation is the subtraction operation and the exponent difference is larger than 1, or in the case that the floating point arithmetic operation is the subtraction operation, the exponent difference is 1 and the mantissa of the operand having the larger exponent is within the range of a different predetermined number, the long path is used so as to generate the result of the floating point arithmetic operation.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、コンピュータプロ
セッサにおける浮動小数点加算器ユニットを設計するた
めの技術に関する。
FIELD OF THE INVENTION The present invention relates to techniques for designing a floating point adder unit in a computer processor.

【0002】[0002]

【従来の技術】コンピュータプロセッサは、通常は、浮
動小数点表示の形の2つの数(オペランド)を加算また
は減算するための浮動小数点加算器を含む。浮動小数点
表示では、数は±m×Reの形式で表現され、ここでm
は仮数と呼ばれ、Rは基数(または基底)であり、eは
指数である。典型的には、浮動小数点加算器では、基数
は暗黙に定義され、固定された数のビットが浮動小数点
数の各々のために確保される。固定された数のビットの
中の1つのビットがその浮動小数点数の符号のために確
保され、予め決められた数のビットが指数のために確保
され、予め決められた数のビットが仮数のために確保さ
れる。仮数のためのビット数が浮動小数点数の精度を決
定し、指数のビット数が、表現可能な数の値域を決定す
る。したがって、固定ビット形式が精度と値域との間の
トレードオフである。
Computer processors typically include a floating point adder for adding or subtracting two numbers (operands) in the form of floating point representations. In floating point representation, numbers are represented in the form ± m × R e , where m
Is a mantissa, R is a radix (or base), and e is an exponent. Typically, in floating point adders, the radix is implicitly defined, and a fixed number of bits is reserved for each of the floating point numbers. One bit of the fixed number of bits is reserved for the sign of the floating point number, a predetermined number of bits is reserved for the exponent, and a predetermined number of bits is the mantissa. Reserved for. The number of bits for the mantissa determines the precision of the floating point number, and the number of bits for the exponent determines the range of representable numbers. Therefore, the fixed bit format is a trade-off between precision and range.

【0003】ゼロ以外の浮動小数点数が、仮数における
10進小数点の左に正確に1つの非ゼロの数字があるよ
うに仮数値と指数値とを調整することによって正規化さ
れることが可能である。したがって、1の先行ビットが
暗黙に定義され、データの1つの余分のビットを与える
ように、または、表現可能な仮数を2倍にするように、
隠されることが可能である。さらに、典型的には基数も
暗黙に定義され、ハードウェアにおいて表現される必要
はない。例えば、引用により本明細書に取り込まれるI
EEE−754規格における32ビット単精度形式で
は、正規化された浮動小数点数N=±m×Reは次のよ
うに格納されることが可能であり、
Non-zero floating point numbers can be normalized by adjusting the mantissa and exponent values so that there is exactly one non-zero digit to the left of the decimal point in the mantissa. is there. Therefore, a leading bit of 1 is implicitly defined, to give one extra bit of data, or to double the representable mantissa.
It can be hidden. Furthermore, the radix is also typically implicitly defined and need not be represented in hardware. For example, I, which is incorporated herein by reference
In the 32-bit single precision format in the EEE-754 standard, the normalized floating point number N = ± m × R e can be stored as:

【数1】 ここでSは符号ビットに関する値であり(正の数の場合
にSは0であり、負の数の場合にSは1である)、E
は、−127を超える指数eを表す8ビット値であり
(eは−126から+127の範囲内である)、また
は、E=e+127であり、および、Fはmの小数部を
表す23ビット値である。したがって、 N=(−1)S*1.F*2E-127 である。
[Equation 1] Where S is a value related to the sign bit (S is 0 for positive numbers, S is 1 for negative numbers), E
Is an 8-bit value representing the exponent e greater than -127 (e is in the range -126 to +127), or E = e + 127, and F is a 23-bit value representing the fractional part of m. Is. Therefore, N = (− 1) S * 1. It is F * 2 E-127 .

【0004】浮動小数点加算演算は、典型的には、
(1)2つのオペランドの仮数を位置合せするために必
要とされるシフトの量を求めるための指数減算ステップ
と、(2)小さい方のオペランドの仮数を右シフトする
ことによって2つのオペランドの10進小数点を位置合
せするための位置合せステップと、(3)実際の算術演
算のための仮数加算または仮数減算ステップと、(4)
結果として得られる数の符号を求めるための変換ステッ
プと、(5)結果として得られる数を正規化するために
必要とされる左シフトまたは右シフトの量を求めるため
の先行1検出ステップと、(6)結果として得られた数
を正規化するための事後正規化ステップと、場合によっ
ては、(7)結果として得られた数における数字の数が
特定の形式によって許容される数字の合計数を超える場
合の丸めステップとを含む。これらの多数のステップが
逐次的に行われる場合には、浮動小数点加算器ユニット
の性能が低速である可能性がある。
Floating point addition operations are typically
(1) an exponential subtraction step to determine the amount of shift required to align the mantissas of the two operands, and (2) 10 of the two operands by right shifting the mantissa of the smaller operand. An alignment step for aligning the decimal points, (3) a mantissa addition or mantissa subtraction step for the actual arithmetic operation, and (4)
A transformation step to determine the sign of the resulting number, and (5) a leading 1 detection step to determine the amount of left or right shift required to normalize the resulting number. (6) a post-normalization step to normalize the resulting number and, in some cases, (7) the number of digits in the resulting number is the total number of digits allowed by the particular format. Rounding step in case of exceeding. The performance of the floating point adder unit can be slow if these many steps are performed sequentially.

【0005】浮動小数点加算器ユニットは、二重並列パ
イプラインパスを使用することによって改善されること
が可能である。Nhon T.QuachおよびMichael J.Flynn,
“An improved algorithm for high speed floating-po
int addition”, Stanford Technical Report CSL-TR-9
0-442を参照されたい。図1が、浮動小数点演算を並行
して行うように構成されている、2つの並行パイプライ
ンパス、すなわち、ショートパス(短路)101とロン
グパス(長路)102とを有する従来の浮動小数点加算
ユニット100を示す。図1の浮動小数点加算ユニット
は潜在的な速度上の利点を有するが、二重並行パイプラ
インパスのための比較的複雑なハードウェア実装も必要
とする。
The floating point adder unit can be improved by using dual parallel pipeline paths. Nhon T. Quach and Michael J. Flynn,
“An improved algorithm for high speed floating-po
int addition ”, Stanford Technical Report CSL-TR-9
See 0-442. FIG. 1 illustrates a conventional floating point adder unit having two parallel pipeline paths, short path (short path) 101 and long path (long path) 102, configured to perform floating point operations in parallel. Indicates 100. Although the floating point adder unit of FIG. 1 has potential speed advantages, it also requires a relatively complex hardware implementation for dual parallel pipeline paths.

【0006】[0006]

【表1】 [Table 1]

【0007】典型的には、図1の従来の浮動小数点加算
ユニットでは、各パイプラインパスは、一方向だけの仮
数のシフトしか必要としないように構成されている。図
1を参照すると、ショートパスは、2つの浮動小数点オ
ペランドの指数の間の差が0または1である場合に、有
効な減算演算のために使用される。ロングパスは、すべ
ての加算演算のために、および、2つの浮動小数点オペ
ランドの指数差が1よりも大きい場合には減算演算のた
めに使用される。これが表Iに要約されている。
Typically, in the conventional floating point adder unit of FIG. 1, each pipeline pass is configured so that it only requires a mantissa shift in one direction. Referring to FIG. 1, the short path is used for a valid subtraction operation when the difference between the exponents of two floating point operands is 0 or 1. Longpass is used for all add operations and for subtract operations when the exponent difference of two floating point operands is greater than one. This is summarized in Table I.

【0008】ロングパスでは、仮数が、指数差に基づい
て小さい方のオペランドを右シフトすることによって位
置合せされる。ロングパスにおける加算結果が丸めを必
要とすることがあるが、先行ゼロが無いので、事後正規
化のための左シフトは不要である。ロングパスにおける
減算結果は、多くとも1つの先行ゼロしか無いので、丸
めと多くとも1つの左シフトとを必要とすることがあ
る。
In the long pass, the mantissa is aligned by right shifting the smaller operand based on the exponential difference. The addition result in the long pass may need rounding, but since there is no leading zero, no left shift for post normalization is required. Rounding and at most one left shift may be required because the subtraction result in a long pass has at most one leading zero.

【0009】[0009]

【表2】 [Table 2]

【0010】2つのオペランドの指数差がゼロまたは1
である場合には、ショートパスが減算演算に使用される
ので、仮数の位置合せは1ビットに限定されるが、減算
後の正規化のための左シフタ(shifter)が必要とされる
ことがある。さらに、ショートパスでは、1の指数差を
伴う減算演算の中には最終結果の丸めを必要とするもの
があるだろうが、この丸めは典型的には正規化演算後に
増分器(incrementer)によって行われる。これを表IIに
要約する。
The exponent difference between the two operands is zero or one
, The short pass is used for the subtraction operation, so the mantissa alignment is limited to 1 bit, but a left shifter for normalization after subtraction may be required. is there. Furthermore, in shortpass some subtraction operations with an exponent difference of 1 may require rounding of the final result, but this rounding is typically done by an incrementer after the normalization operation. Done. This is summarized in Table II.

【0011】典型的には、IEEE−754規格に記述
されている通りの保護ビット、丸めビット、および/ま
たは、スティッキービットが、浮動小数点演算の結果を
丸めるために使用される。次に表IIを参照すると、指数
差がゼロである場合には、2つのオペランドの仮数は位
置合せされる必要はない。仮数減算の結果が1よりも小
さい場合には、正規化ステップが正規化左シフタを使用
して行われる。IEEE−754規格に述べられている
通りに、保護ビット、丸めビット、および/または、ス
ティッキービットが空なので、この正規化ステップの後
では結果の丸めは不要である。2つのオペランドの指数
差が1である場合には、この2つのオペランドの仮数
は、小さい方のオペランドの仮数を1つだけ右シフトす
ることによって位置合せされる必要がある。さらに、右
シフトに関して保護ビットが空でないことがあるので、
丸めステップが仮数減算後に必要とされることもある。
保護ビットが1の値を有する場合には、IEEE−75
4に準拠した結果を得るために、丸め演算が行われる必
要がある。
Protective bits, rounding bits, and / or sticky bits, as described in the IEEE-754 standard, are typically used to round the results of floating point operations. Referring now to Table II, the mantissas of the two operands need not be aligned if the exponent difference is zero. If the result of the mantissa subtraction is less than 1, the normalization step is performed using the normalization left shifter. No rounding of the result is required after this normalization step, as the guard bits, rounding bits and / or sticky bits are empty, as described in the IEEE-754 standard. If the exponent difference between the two operands is 1, then the mantissas of the two operands must be aligned by right shifting the mantissas of the smaller operands by one. Moreover, since the guard bits may not be empty for right shifts,
A rounding step may be required after mantissa subtraction.
If the protection bit has a value of 1, IEEE-75
Rounding operations need to be performed in order to obtain a 4 compliant result.

【0012】実例として、1の指数差と24ビットの精
度とを有する次の2つのオペランドを考察する。 A=1.110000000000000000000000*20、および、 B=1.000000000000000000000001*2-1 この2つのオペランドはショートパスで減算され、この
ショートパスは、小さい方のオペランドBを1つだけ右
シフトすることによって仮数を位置合せする。 仮数A:1.11000000000000000000000 仮数B:0.10000000000000000000001 AからBを減算した結果として、24ビット精度の範囲
内に残るために丸めを必要とする数が得られる。ここ
で、AからのBの減算の丸められていない結果は、 A−B=1.001111111111111111111111 であり、末尾のビットは保護ビットである。IEEE−
754規格に準拠しているためには、保護ビットが1の
値を有する場合に、丸めステップが、特定の丸めモード
のために必要とされることがあり、その結果として、A
−Bの丸められた結果は、 1.01000000000000000000000 である。
As an illustration, consider the following two operands with an exponent difference of 1 and a precision of 24 bits. A = 1.110000000000000000000000 * 2 0 and B = 1.0000000000000000000000000001 * 2 -1 These two operands are subtracted by a short pass, which aligns the mantissa by right shifting the smaller operand B by one. To do. Mantissa A: 1.11000000000000000000000 Mantissa B: 0.10000000000000000000001 As a result of subtracting B from A, a number that needs rounding to remain within the range of 24-bit precision is obtained. Here, the unrounded result of the subtraction of B from A is AB = 1.001111111111111111111111, with the last bit being a guard bit. IEEE-
To comply with the H.754 standard, a rounding step may be required for a particular rounding mode if the guard bits have a value of 1, resulting in A
The rounded result of -B is 1.01000000000000000000000.

【0013】ショートパスにおける丸めステップは典型
的には増分器によって行われる。この増分器の結果とし
てショートパスによる遅延がロングパスによる遅延より
も潜在的に大きいので、この増分器は望ましくない。さ
らに、増分器を実装するためには、追加のハードウェア
(例えば、論理ゲート)が必要とされる。
The rounding step in the short pass is typically done by an incrementer. This incrementer is undesirable because the delay due to the short path is potentially greater than the delay due to the long path as a result of this incrementer. Moreover, additional hardware (eg, logic gates) is required to implement the incrementer.

【0014】[0014]

【発明が解決しようとする課題】したがって、改善され
た二重並行パイプライン浮動小数点加算器技術が必要と
されている。
Therefore, there is a need for improved dual parallel pipelined floating point adder technology.

【0015】[0015]

【課題を解決するための手段】本発明の装置と方法は、
浮動小数点表示の形の少なくとも2つのオペランドを含
む浮動小数点演算を行う働きをする。この装置は、2つ
の並行データパス、すなわち、ショートパスとロングパ
スとを含む。ショートパスは、浮動小数点演算が減算演
算でありかつ2つのオペランドの指数の間の差(「指数
差」)が0である場合に、または、浮動小数点演算が減
算演算であり、指数差が1であり、かつ、より大きな指
数を有するオペランドの仮数が予め決められた数の範囲
内にある場合に、浮動小数点演算の結果を生じさせるた
めに使用される。ロングパスは、浮動小数点演算が加算
演算である場合に、または、浮動小数点演算が減算演算
であり、かつ、指数差が1よりも大きい場合に、また
は、浮動小数点演算が減算演算であり、かつ、指数差が
1であり、かつ、より大きな指数を有するオペランドの
仮数が別の予め決められた数の範囲内にある場合に、浮
動小数点演算の結果を生じさせるために使用される。浮
動小数点演算のためのデータパスの選択に関してこの論
理を使用する場合には、ショートパスは、減算後の正規
化のための増分器のような手段を必要とはしない。
The apparatus and method of the present invention comprises:
Serves to perform floating point operations involving at least two operands in the form of floating point representations. This device includes two parallel data paths, a short path and a long path. Short pass is when the floating point operation is a subtraction operation and the difference between the exponents of the two operands (“exponential difference”) is 0, or the floating point operation is a subtraction operation and the exponent difference is 1 , And is used to produce the result of a floating point operation when the mantissa of the operand with the larger exponent is within a predetermined number range. Long pass is when the floating point operation is an addition operation, or when the floating point operation is a subtraction operation and the exponent difference is greater than 1, or the floating point operation is a subtraction operation, and Used to produce the result of a floating point operation when the exponent difference is 1 and the mantissa of the operand with the larger exponent is within another predetermined number. When using this logic in selecting the data path for floating point operations, the short path does not require such means as an incrementer for post subtraction normalization.

【0016】[0016]

【発明の実施の形態】以下の詳細な説明はIEEE−7
54規格に基づいており、本発明の完全な理解を実現す
るためにこの規格における浮動小数点表示形式の多くの
特定の詳細を含む。しかし、本発明が、IEEE−75
4規格の範囲の外で、および/または、これらの特定の
詳細なしに実施されてもよいということが、当業者によ
って理解されるだろう。
DETAILED DESCRIPTION OF THE INVENTION The following detailed description is IEEE-7.
54 standard and includes many specific details of the floating point representation format in this standard to provide a thorough understanding of the invention. However, according to the present invention, the IEEE-75
It will be appreciated by those skilled in the art that it may be implemented outside the scope of the four standards and / or without these specific details.

【0017】本発明は、浮動小数点加算器のシステムと
方法とアルゴリズムとを含む。本発明の好ましい実施形
態の幾つかの細部が、本明細書に引例として組み入れら
れているAjay Naini, Atul Dhablania, Warren James
および Debjit Das Sarma による論文“1-Ghz HAL SPAR
C 64 Dual Floating-point Unit With RAS Features”,
Proceedings of the 15th IEEE Symposium on Compute
r Arithmetic, 11-13June 2001, Vail, Colorado, pp.
173-183に説明されている。
The present invention includes a floating point adder system, method and algorithm. Some details of the preferred embodiments of the present invention are incorporated herein by reference, Ajay Naini, Atul Dhablania, Warren James.
And Debjit Das Sarma's paper “1-Ghz HAL SPAR
C 64 Dual Floating-point Unit With RAS Features ”,
Proceedings of the 15 th IEEE Symposium on Compute
r Arithmetic, 11-13June 2001, Vail, Colorado, pp.
173-183.

【0018】図2は、2つの浮動小数点オペランドFIG. 2 shows two floating point operands.

【数2】 に関して加算演算または減算演算を行うための本発明の
プロセス200を示す流れ図である。プロセス200
は、位置合せステップ210と、3つの並行サブプロセ
ス、すなわち、ショートパスプロセス230とロングパ
スプロセス240と選択プロセス220とを含む。位置
合せステップ210では、2つのオペランドが受け取ら
れてIEEE倍精度形式によって位置合せされる。プロ
セス200は、さらに、選択プロセス220の決定に基
づいてショートパスプロセス230またはロングパスプ
ロセス240からの結果を選択するための結果選択ステ
ップ250を含む。
[Equation 2] 5 is a flow chart illustrating a process 200 of the present invention for performing an addition or subtraction operation on. Process 200
Includes an alignment step 210 and three parallel sub-processes: a short pass process 230, a long pass process 240 and a selection process 220. In the alignment step 210, the two operands are received and aligned in IEEE double precision format. Process 200 further includes a result selection step 250 for selecting a result from short pass process 230 or long pass process 240 based on the determination of selection process 220.

【0019】本発明の一実施形態では、選択プロセス
は、表IIIに示されている基準セットに基づいて加算演
算または減算演算のためにショートパスプロセス230
またはロングパスプロセス240によって生じせしめら
れた結果を選択するかどうかを決定する。表IIIを参照
すると、 1. 演算が減算演算であり、かつ、オペランドA、B
の指数の間の差が0である場合、または、 2. 演算が減算演算であり、オペランドA、Bの指数
の間の差が1であり、かつ、より大きな指数を有するオ
ペランドの仮数が1.5未満である場合に、ショートパ
スプロセス230からの結果が結果選択ステップ250
で選択される。
In one embodiment of the invention, the selection process uses a short pass process 230 for add or subtract operations based on the criteria set shown in Table III.
Or decide whether to select the result produced by the long pass process 240. Referring to Table III, 1. The operation is a subtraction operation and the operands A and B are
The difference between the indices of 0 is 0, or If the operation is a subtraction operation, the difference between the exponents of operands A, B is 1, and the mantissa of the operand with the larger exponent is less than 1.5, then the result from the short pass process 230 is Result selection step 250
Selected in.

【0020】[0020]

【表3】 [Table 3]

【0021】再び表IIIを参照すると、 1. 演算が加算演算である場合、 2. 演算が減算演算であり、かつ、オペランドA、B
の指数の間の差が1よりも大きい場合、または、 3. 演算が減算演算であり、オペランドA、Bの指数
の間の差が1であり、かつ、より大きな指数を有するオ
ペランドの仮数が1.5以上である場合、にロングパス
プロセス240からの結果が結果選択ステップ250で
選択される。
Referring again to Table III, 1. If the operation is an addition operation, 1. The operation is a subtraction operation and the operands A and B are
2. If the difference between the indices of is greater than 1, or If the operation is a subtraction operation, the difference between the exponents of operands A and B is 1, and the mantissa of the operand with the larger exponent is greater than or equal to 1.5, then the result from longpass process 240 is the result. It is selected in the selection step 250.

【0022】[0022]

【表4】 [Table 4]

【0023】別の実施形態では、選択プロセスが、表IV
に示されている基準にしたがってショートパスプロセス
230またはロングパスプロセス240からの結果を選
択するかどうかを決定する。表IVを参照すると、この表
に示されているように、 1. 演算が減算演算であり、かつ、オペランドA、B
の指数の間の差が0である場合、または、 2. 演算が減算演算であり、オペランドA、Bの指数
の間の差が1であり、かつ、より大きい指数を有するオ
ペランドの仮数が1.5以下である場合、にショートパ
スプロセス230からの結果が結果選択ステップ250
で選択される。
In another embodiment, the selection process is based on Table IV
It is determined whether to select the result from the short pass process 230 or the long pass process 240 according to the criteria shown in. Referring to Table IV, as shown in this table: 1. The operation is a subtraction operation and the operands A and B are
The difference between the indices of 0 is 0, or If the operation is a subtraction operation, the difference between the exponents of operands A and B is 1, and the mantissa of the operand with the larger exponent is less than or equal to 1.5, then the result from short pass process 230 is Result selection step 250
Selected in.

【0024】表IVを参照すると、この表に示されている
ように、 1. 演算が加算演算である場合、 2. 演算が減算演算であり、かつ、オペランドA、B
の指数の間の差が1よりも大きい場合、または、 3. 演算が減算演算であり、オペランドA、Bの指数
の間の差が1であり、かつ、より大きい指数を有するオ
ペランドの仮数が1.5よりも大きい場合、にロングパ
スプロセス240からの結果が結果選択ステップ250
で選択される。
Referring to Table IV, as shown in this table: 1. If the operation is an addition operation, 1. The operation is a subtraction operation and the operands A and B are
2. If the difference between the indices of is greater than 1, or If the operation is a subtraction operation, the difference between the exponents of operands A and B is 1, and the mantissa of the operand with the larger exponent is greater than 1.5, then the result from longpass process 240 is the result. Selection step 250
Selected in.

【0025】本発明の一実施形態では、選択プロセス2
20は、浮動小数点演算が加算演算または減算演算であ
るかどうかを判定するためのステップを含む。演算が加
算演算であるという判定に応答して、選択プロセス20
0が、ロングパスプロセス240からの結果を選択する
ことを決定し、この決定を結果選択ステップ250に送
る。一方、演算が減算演算であるという判定に応答し
て、選択プロセス200は2つのオペランドの指数差を
求めることに進む。指数差が1よりも大きいという判定
に応答して、プロセス200は、ロングパスプロセス2
40からの結果を選択することを決定し、この決定を結
果選択ステップ250に送る。指数差が0であるという
判定に応答して、プロセス200はショートパスプロセ
ス230からの結果を選択することを決定し、この決定
を結果選択ステップ250に送る。指数差が1であると
いうステップ225での判定に応答して、プロセス20
0は、より大きい指数を有するオペランドの仮数が1.
5未満である(または、表IVの選択規則が使用される場
合には1.5以下である)かどうかを判定することに進
む。より大きい仮数が1.5未満である(または、表IV
の選択規則が使用される場合には1.5以下である)と
いう判定に応答して、プロセス200は、ショートパス
プロセス230からの結果を選択することを決定し、こ
の決定を結果選択ステップ250に送る。一方、より大
きい指数を有するオペランドの仮数が1.5以上である
(または、表IVの選択規則が使用される場合には1.5
よりも大きい)という判定に応答して、プロセス200
はロングパスプロセス240からの結果を選択すること
を決定し、この決定を結果選択ステップ250に送る。
In one embodiment of the invention, the selection process 2
20 includes steps for determining whether the floating point operation is an addition or subtraction operation. In response to the determination that the operation is an addition operation, the selection process 20
0 decides to select the result from the longpass process 240 and sends this decision to the result selection step 250. On the other hand, in response to determining that the operation is a subtraction operation, selection process 200 proceeds to determine the exponent difference of the two operands. In response to determining that the exponent difference is greater than 1, the process 200 determines whether the longpass process 2
It decides to select the result from 40 and sends this decision to the result selection step 250. In response to determining that the exponent difference is zero, process 200 determines to select the result from shortpass process 230 and sends this decision to result selection step 250. In response to the determination in step 225 that the exponent difference is 1, the process 20
0 is the mantissa of the operand with the larger exponent 1.
Proceed to determine if it is less than 5 (or less than or equal to 1.5 if the selection rules of Table IV are used). Greater mantissa is less than 1.5 (or Table IV
Process 1.5 is less than or equal to 1.5 if the selection rule is used), the process 200 decides to select the result from the shortpass process 230, and this decision is taken as a result selection step 250. Send to. On the other hand, the mantissa of the operand with the larger exponent is greater than or equal to 1.5 (or 1.5 if the selection rules of Table IV are used).
Greater than or equal to) process 200.
Decides to select the result from the longpass process 240 and sends this decision to the result selection step 250.

【0026】表IIIに示されている選択規則は、表IVに
示されている選択規則よりも実行が容易である。表III
の選択規則を使用する場合には、より大きい指数を有す
るオペランドの仮数の2つのMSBビットだけを、その
仮数が1.5未満の値(ショートパスからの結果が選択
されるべきであることを意味する)または1.5以上の
値(ロングパスからの結果が選択されるべきであること
を意味する)を有するかどうかを判定するために、ステ
ップ227で調べればよい。
The selection rules shown in Table III are easier to implement than the selection rules shown in Table IV. Table III
If the selection rule is used, then only the two MSB bits of the mantissa of the operand with the larger exponent are considered to have values whose mantissa is less than 1.5 (the result from the short path should be selected. It may be determined in step 227 to determine whether it has a value of (meaning) or a value greater than or equal to 1.5 (meaning that the result from the long pass should be selected).

【0027】図3は、ショートパスプロセス230をよ
り詳細に示す流れ図である。ショートパスプロセス23
0の始めには、2組のステップが互いに並行して行わ
れ、この両方の組のステップの後に正規化ステップ32
4のための左シフトが行われる。第1の組のステップは
ステップ310で始まり、このステップ310ではオペ
ランドAの2つの最下位指数ビットがオペランドBの2
つの最下位指数ビットと比較される。オペランドAの2
つの最下位指数ビットがオペランドBの2つの最下位指
数ビットとは異なっているという判定に応答して、位置
合せおよびスワップステップ314が後で行われ、この
ステップ314では、(2つの最下位指数ビットに基づ
いて)より小さい指数を有するオペランドが、その2つ
のオペランドの仮数を位置合せするために1ビットだけ
右シフトされ、その2つのオペランドは、より小さい指
数を有するオペランドの仮数がより大きい指数を有する
オペランドから減算されるようにスワップされてもよ
い。一方、ステップ310において、オペランドAの2
つの最下位指数ビットがオペランドBの2つの最下位指
数ビットと同一であると判定される場合には、仮数比較
ステップ316が、どちらの仮数がより大きいかを判定
するために行われ、その後にスワップステップ318が
続き、このステップ318では、小さい方の仮数が大き
い方の仮数から減算されるようにスワップされるだろ
う。位置合せおよびスワップステップ316またはスワ
ップステップ318のどちらかの後には、仮数減算ステ
ップ320が続き、このステップ320では、小さい方
のオペランドの仮数が大きい方のオペランドの仮数から
減算される。
FIG. 3 is a flow chart showing the short pass process 230 in more detail. Short pass process 23
At the beginning of 0, two sets of steps are performed in parallel with each other, and both sets of steps are followed by a normalization step 32.
A left shift for 4 is done. The first set of steps begins at step 310, where the two least significant exponent bits of operand A are 2 of operand B.
Compared to the two least significant exponent bits. 2 of operand A
In response to determining that the one least significant exponent bit is different from the two least significant exponent bits of operand B, an alignment and swap step 314 is performed later, in which step (314 The operand with the smaller exponent (based on the bits) is right-shifted by one bit to align the mantissas of the two operands, and the two operands are the exponents with the larger mantissas of the operands with the smaller exponents. May be swapped to be subtracted from the operands with. On the other hand, in step 310, the operand A 2
If it is determined that the one least significant exponent bit is the same as the two least significant exponent bits of operand B, then a mantissa comparison step 316 is performed to determine which mantissa is greater, and then A swap step 318 follows, which will swap the smaller mantissa so that it is subtracted from the larger mantissa. Either the alignment and swap step 316 or the swap step 318 is followed by the mantissa subtraction step 320, where the mantissa of the smaller operand is subtracted from the mantissa of the larger operand.

【0028】第2の組のステップは、減算ステップ32
0の最終結果における先行ゼロを予測するための先行ゼ
ロ予測ステップ312と、予測された先行ゼロを計数し
て符号化するための先行ゼロ計数ステップ322とを含
む。先行ゼロ予測ステップ312では、アルゴリズム
が、2つの先行ゼロベクトルZ1、Z2を生成するために
使用される。先行ゼロベクトルZ1は、Aの仮数がBの
仮数から減算されるということを仮定して生成され、先
行ゼロベクトルZ2は、Bの仮数がAの仮数から減算さ
れるということを仮定して生成される。したがって、第
2の組のステップは、さらに、ステップ310、316
からの結果に基づいて選択するための先行ゼロベクトル
選択ステップ315を含み、この先行ゼロベクトル選択
ステップ315では、大きい方のオペランドが判定さ
れ、小さい方のオペランドの仮数が大きい方のオペラン
ドの仮数から減算されるという仮定によって先行ゼロベ
クトルが生成される。
The second set of steps is the subtraction step 32.
It includes a leading zero prediction step 312 for predicting leading zeros in the final result of 0 and a leading zero counting step 322 for counting and encoding the predicted leading zeros. In the leading zero prediction step 312, the algorithm is used to generate two leading zero vectors Z 1 , Z 2 . The leading zero vector Z 1 is generated assuming that the mantissa of A is subtracted from the mantissa of B, and the leading zero vector Z 2 is assumed that the mantissa of B is subtracted from the mantissa of A. Generated. Therefore, the second set of steps further comprises steps 310, 316.
A leading zero vector selection step 315 for selecting based on the result from, where the larger operand is determined and the mantissa of the smaller operand is determined from the mantissa of the larger operand. The assumption of being subtracted produces a leading zero vector.

【0029】例えば、オペランドAが大きい方のオペラ
ンドであるということがステップ310またはステップ
316で判定される場合には、先行ゼロベクトルZ2
先行ゼロ選択ステップ315で選択される。本発明の一
実施形態では、オペランドA、Bの仮数の各々は52ビ
ットを有し、例えば、 mA=(a5150......a0)、および、mB=(b51
50......b0) である。mAとmBとが位置合せされていると仮定する
と、Z2を生成するためのアルゴリズムは、Bを逆にす
ることによってその2つの補数減算を実行し、それによ
って、
For example, if it is determined in step 310 or step 316 that operand A is the larger operand, the leading zero vector Z 2 is selected in leading zero selection step 315. In one embodiment of the invention, each of the mantissas of operands A, B has 52 bits, for example, m A = (a 51 a 50 ...... a 0 ) and m B = (b 51 b
50 ...... b 0 ). Assuming that m A and m B are aligned, the algorithm for generating Z 2 performs its two's complement subtraction by reversing B, thereby

【数3】 ここで、・、+、および、[Equation 3] Where :, +, and

【数4】 は、AND演算子、OR演算子、および、排他的OR演
算子をそれぞれに表示し、および、上線はNOT演算子
を表示する。全桁上げチェーン(full carry chain)を使
用しない上述の予測アルゴリズムは、減算ステップ32
0の最終結果における先行ゼロの数と比較した場合に、
1つだけ少ない数の先行ゼロを有する予測ベクトルZ2
を生成する。したがって、ショートパスプロセスは、さ
らに、この誤りを訂正するための先行ゼロ訂正ステップ
330を含む。
[Equation 4] Indicates the AND operator, the OR operator, and the exclusive OR operator, respectively, and the overline indicates the NOT operator. The prediction algorithm described above, which does not use a full carry chain, uses the subtraction step 32.
When compared to the number of leading zeros in the final result of 0,
Prediction vector Z 2 with one less number of leading zeros
To generate. Therefore, the short pass process further includes a leading zero correction step 330 to correct this error.

【0030】先行ゼロ計数ステップ322において、選
択された先行ゼロベクトルにおける先行ゼロが計数され
て符号化される。これと並行して、仮数減算が減算ステ
ップ320において計算される。ステップ312、31
5、322が、先行ゼロの数と、したがって、正規化の
ための左シフトの量とを予測し、および、減算ステップ
320と並行して行われるので、正規化ステップ324
のための左シフトが、予測されるシフトの量にしたがっ
て減算ステップ320の直後に行われることが可能であ
る。正規化ステップ324のための左シフトの際に、減
算ステップ320からの結果が、予測された先行ゼロの
数にしたがって左シフトされる。先行ゼロ予測ステップ
312のための先行ゼロ予測アルゴリズムの結果として
生じるあらゆる誤りを訂正するために、先行ゼロ訂正ス
テップ330が正規化ステップ324のための左シフト
の後に続く。
In a leading zero counting step 322, leading zeros in the selected leading zero vector are counted and encoded. In parallel with this, mantissa subtraction is calculated in subtraction step 320. Steps 312 and 31
Normalization step 324, since 5, 322 predicts the number of leading zeros, and thus the amount of left shift for normalization, and is performed in parallel with subtraction step 320.
It is possible that a left shift for ∘ is performed immediately after the subtraction step 320 according to the expected amount of shift. During the left shift for normalization step 324, the result from subtraction step 320 is left shifted according to the predicted number of leading zeros. A leading zero correction step 330 follows the left shift for the normalization step 324 to correct any resulting errors of the leading zero prediction algorithm for the leading zero prediction step 312.

【0031】ショートパスにおいて行われる減算演算の
結果が1以下の仮数値を常に有するので、ショートパス
は丸めステップを必要としない。例えば、指数差が1の
値を有し、かつ、大きい方のオペランドの仮数が1.5
未満である場合には、被減数が(1,1.5)の範囲内
であり、1ビットだけシフトされた減数が[0.5,
1)の範囲内であり、(0,1)の範囲内に含まれる結
果が得られる。この結果が1未満である場合には、正規
化ステップ324のための左シフトにおいて、保護ビッ
トが少なくとも最下位ビット位置(LSB)に移動させ
られる。したがって、ショートパスにおいては丸めは不
要である。
Short pass does not require a rounding step because the result of the subtraction operation performed in the short pass always has a mantissa value less than or equal to 1. For example, the exponent difference has a value of 1, and the mantissa of the larger operand is 1.5.
If it is less than, then the minuend is in the range of (1,1.5) and the divisor reduced by 1 bit is [0.5,
Within the range of 1), the result included within the range of (0, 1) is obtained. If the result is less than one, the left shift for normalization step 324 moves the guard bit to at least the least significant bit position (LSB). Therefore, rounding is not necessary in the short pass.

【0032】図4は、ロングパスプロセス240をさら
に詳細に示す流れ図である。図4を参照すると、ステッ
プ210でロングパスプロセスが選択されることに応答
して、eA−eBのより低位のビットとeB−eAのより低
位のビットの両方がステップ410a、410bにおい
てそれぞれに並行して計算される。eA−eBの2つの最
下位ビットのようなeA−eBのより低位のビットは、ス
テップ412aにおいて、0、1、2、または、3ビッ
トだけオペランドBの仮数を部分的に右シフトさせるた
めに使用され、一方、eA−eBの全結果がステップ41
1aにおいて並行して計算される。これと同時に、eB
−eAの2つの最下位ビットのようなeB−eAのより低
位のビットは、ステップ412bにおいて、0、1、
2、または、3ビットだけオペランドAの仮数を部分的
に右シフトさせるために使用され、一方、eB−eAの全
結果がステップ411bにおいて並行して計算される。
A−eBまたはeB−eAの全結果に基づいて、AとBの
うちの小さい方のオペランドがステップ414で選択さ
れ、および、部分的に右シフトされた小さい方のオペラ
ンドがステップ416で選択される。さらに、ステップ
416では、部分的に右シフトされた小さい方のオペラ
ンドが、その小さい方のオペランドが減算演算のための
減数位置にあるように他方のオペランドとスワップされ
ることが可能である。ステップ416の後にステップ4
20が続き、このステップ420では、小さい方のオペ
ランドが、常に正であるeA−eBまたはeB−eAの全結
果にしたがってさらに右シフトさせられることがある。
データが小さい方のオペランドの仮数から右シフトさせ
られるので、丸め情報がステップ428で並行して計算
され、このステップ428はIEEE−754規格に準
拠した丸め論理を行う。
FIG. 4 is a flow chart showing the longpass process 240 in more detail. Referring to FIG. 4, in response to the long path process being selected in step 210, both the lower bits of e A -e B and the lower bits of e B -e A are step 410a, 410b. Calculated in parallel for each. e A -e lower level bits of e A -e B, such as the two least significant bits of B, in step 412a, 0, 1, 2, or partially right mantissa only 3 bits operand B Used to shift, while the total result of e A -e B is step 41
Calculated in parallel in 1a. At the same time, e B
E B -e lower level bits of A, such as the two least significant bits of -e A, in step 412b, 0, 1,
It is used to partially right shift the mantissa of operand A by 2 or 3 bits, while the entire result of e B -e A is computed in parallel in step 411b.
Based on the total result of e A -e B or e B -e A , the smaller operand of A and B is selected at step 414 and the partially right-shifted smaller operand is stepped. 416 is selected. In addition, in step 416, the partially right-shifted smaller operand may be swapped with the other operand so that the smaller operand is in the reduced position for the subtraction operation. After step 416, step 4
20, followed by step 420, where the smaller operand may be further right shifted according to the overall result of e A -e B or e B -e A , which is always positive.
Since the data is shifted right from the mantissa of the smaller operand, rounding information is calculated in parallel at step 428, which performs rounding logic in accordance with the IEEE-754 standard.

【0033】ステップ428と並行して、仮数の加算ま
たは減算がステップ426、427で行われる。適正な
IEEE−754丸めのために、A+B、A+B+1、
および、A+B+2の計算が必要とされる。この計算
は、A+BとA+B+2とをそれぞれに生成するために
2つの並行したステップ424、426だけを使用して
実現されることが可能であるが、これは、A+B+1が
これら2つの結果から導き出されることが可能だからで
あり、この導出がステップ430で行われる。ステップ
430では、さらに、第1のレベルの結果の選択が、ロ
ングパスプロセスに関するA+B、A+B+1、およ
び、A+B+2の結果の中から結果を選択するために行
われ、この選択された結果が、ステップ428からの丸
め情報に基づいて正規化されおよび/または丸められ
る。
In parallel with step 428, mantissa addition or subtraction is performed in steps 426 and 427. For proper IEEE-754 rounding, A + B, A + B + 1,
And the calculation of A + B + 2 is required. This calculation can be realized using only two parallel steps 424, 426 to generate A + B and A + B + 2 respectively, which is derived from A + B + 1 from these two results. This is possible because this derivation is done in step 430. At step 430, a first level result selection is further performed to select a result from the A + B, A + B + 1, and A + B + 2 results for the longpass process, the selected result from step 428. Normalized and / or rounded based on rounding information.

【0034】本発明では、1の指数差に関する減算演算
と、1.5以上の大きさ値を有する大きい方のオペラン
ドの仮数に関する減算演算とが、ロングパスにおいて行
われる。上述したように、ロングパスでは、小さい方の
オペランドの仮数が右シフトによって位置合せされる。
指数差が1であり、かつ、大きい方のオペランドの仮数
が1.5より大きい値を有する場合には、減算が、
[1.5,2)の範囲内の被減数と[0.5,1)の範
囲内の減数とに制限され、その結果は(0.5,2)の
範囲内に含まれる。したがって、ロングパスにおける加
算後の右シフトは不要であり、潜在的な単一ビットの左
シフトが、結果選択ステップ430の第1の段階中に処
理されてもよい。
In the present invention, the subtraction operation on the exponent difference of 1 and the subtraction operation on the mantissa of the larger operand having a magnitude value of 1.5 or more are performed in the long pass. As mentioned above, in the long pass, the mantissas of the smaller operands are aligned by right shifting.
If the exponent difference is 1 and the mantissa of the larger operand has a value greater than 1.5, the subtraction is
Constrained to the subscripts in the range [1.5,2) and the subscripts in the range [0.5,1), the results are contained in the range (0.5,2). Therefore, a right shift after addition in the long pass is not needed and a potential single bit left shift may be processed during the first stage of the result selection step 430.

【0035】図5は、上述のプロセス200を実装する
浮動小数点加算器ユニット500の全体的構造を示す略
ブロック図である。図5を参照すると、浮動小数点加算
器ユニット500は、プロセス200中の位置合せステ
ップ210を実装する位置合せモジュール510を含
む。この位置合せモジュール510は、加算または減算
のためにオペランドA、Bを入力として受け取り、IE
EE倍精度形式によってそのオペランドを位置合せす
る。
FIG. 5 is a schematic block diagram showing the overall structure of a floating point adder unit 500 implementing the process 200 described above. Referring to FIG. 5, the floating point adder unit 500 includes an alignment module 510 that implements the alignment step 210 in process 200. This registration module 510 receives as inputs the operands A, B for addition or subtraction and IE
Align the operands with the EE double precision format.

【0036】浮動小数点加算器ユニット500は、2つ
の並行パイプラインパス、すなわち、ショートパスとロ
ングパスとを有する。ショートパスでは、浮動小数点加
算器ユニット500は、プロセス200のステップ31
0を実装するための位置合せモジュール510に接続さ
れている「1」予測器(one predictor)514−1によ
る指数差を含む。本発明の一実施形態では、「1」予測
器514−1による指数差が、各オペランドの2つの最
下位指数ビットだけを調べることによって、2つのオペ
ランドにおける指数差がゼロであるかどうかを判定す
る。さらに、浮動小数点加算器ユニット500は、位置
合せモジュール510と「1」予測器514−1による
指数差とに接続されている第1のスワップモジュール5
14を含む。この第1のスワップモジュール514は、
プロセス200内のステップ314を実装する回路素子
を含み、すなわち、オペランドA、Bに関する指数差が
ゼロでないということを「1」予測器514−1による
指数差によって判定することに応答して、第1のスワッ
プモジュール514は、(各オペランドの2つの最下位
指数ビットだけを調べることによって判定された)より
小さい指数を有するオペランドの仮数を1ビットだけ右
シフトさせることによって2つのオペランドの仮数を位
置合せし、および、より小さい指数を有するオペランド
が偶然に被減数位置にある場合にその2つのオペランド
をスワップする。さらに、浮動小数点加算器ユニット5
00は、位置合せモジュール510に接続されているオ
ペランド比較モジュール518−1と、第1のスワップ
モジュール514とオペランド比較モジュール518−
1とに接続されている第2のスワップモジュール518
とを含む。「1」予測器514−1による指数差が2つ
のオペランドにおける指数差がゼロであると判定する場
合には、オペランド比較モジュール518−1と第2の
スワップモジュール518とが、プロセス200中のス
テップ316、318を行うことによって応答し、すな
わち、オペランド比較モジュール518−1は2つのオ
ペランドの仮数を比較して、どちらのオペランドの値が
大きいかを判定し、および、大きい方のオペランドが偶
然にも減数である場合には、第2のスワップモジュール
518は、その大きい方のオペランドが被減数位置に移
動させられるようにそのオペランドをスワップする。
The floating point adder unit 500 has two parallel pipeline paths, a short path and a long path. In the short pass, the floating point adder unit 500 returns to step 31 of process 200.
Includes the exponential difference due to the "one" predictor 514-1 connected to the alignment module 510 for implementing a zero. In one embodiment of the present invention, the exponent difference by the "1" predictor 514-1 determines if the exponent difference in two operands is zero by examining only the two least significant exponent bits of each operand. To do. In addition, the floating point adder unit 500 includes a first swap module 5 connected to the alignment module 510 and the exponential difference provided by the "1" predictor 514-1.
Including 14. This first swap module 514
A circuit element implementing step 314 in process 200, that is, in response to determining that the exponent difference for operands A, B is non-zero by the exponent difference by the "1" predictor 514-1. Swap module 514 of 1 locates the mantissas of the two operands by right shifting the mantissas of the operands with the smaller exponent (as determined by examining only the two least significant exponent bits of each operand) by one bit. Match and swap the two operands if they happen to be in the minuend position. Furthermore, the floating point adder unit 5
00 is an operand comparison module 518-1 connected to the alignment module 510, a first swap module 514 and an operand comparison module 518-.
A second swap module 518 connected to
Including and If the exponent difference by the “1” predictor 514-1 determines that the exponent difference between the two operands is zero, the operand comparison module 518-1 and the second swap module 518 are the steps in process 200. 316, 318, that is, the operand comparison module 518-1 compares the mantissas of the two operands to determine which operand has the greater value, and the greater operand happens to occur. Is also a divisor, the second swap module 518 swaps the larger operand so that it is moved to the minuend position.

【0037】さらに、ショートパスにおいては、浮動小
数点加算器ユニット500は、位置合せモジュール51
0に接続されている先行ゼロ予測モジュール512と、
「1」予測器514−1による指数差およびオペランド
比較モジュール518−1と先行ゼロ予測モジュール5
12とに接続されている選択モジュール515とを含
む。先行ゼロ予測モジュール512はプロセス200の
ステップ312を行い、選択モジュール515はプロセ
ス200のステップ315を行う。先行ゼロ予測モジュ
ール512は、上述したように、プロセス200の先行
ゼロ予測ステップ310のための先行ゼロ予測アルゴリ
ズムによって指示された論理演算を行うように構成され
ている従来通りの論理回路を含む。
In addition, in the short pass, the floating point adder unit 500 uses the alignment module 51.
A leading zero prediction module 512 connected to 0,
Exponent difference and operand comparison module 518-1 and leading zero prediction module 5 by "1" predictor 514-1
12 and a selection module 515 connected to. Leading zero prediction module 512 performs step 312 of process 200 and selection module 515 performs step 315 of process 200. Leading zero prediction module 512 includes conventional logic circuitry configured to perform the logical operations dictated by the leading zero prediction algorithm for leading zero prediction step 310 of process 200, as described above.

【0038】さらに、ショートパスにおいては、浮動小
数点加算器ユニット500は、パイプライン段1内の第
2のスワップモジュールに接続されている第1の加算器
520と、選択モジュール515に接続されている先行
ゼロカウンタ522と、第1の加算器と先行ゼロカウン
タとに接続されているショートパス内の左シフタ524
とを含む。第1の加算器520は、プロセス200内の
仮数減算ステップ320を行うように構成されている論
理回路を含む。先行ゼロカウンタは、プロセス200内
の先行ゼロ計数ステップ322を行い、および、左シフ
タ524は、プロセス200内の正規化ステップ324
のための左シフトを行う。
Further, in the short pass, the floating point adder unit 500 is connected to the first adder 520 connected to the second swap module in pipeline stage 1 and the selection module 515. Leading zero counter 522 and left shifter 524 in the short path connected to the first adder and leading zero counter
Including and First adder 520 includes logic circuitry configured to perform mantissa subtraction step 320 in process 200. The leading zero counter performs the leading zero counting step 322 in process 200, and the left shifter 524 causes the normalizing step 324 in process 200.
Do a left shift for.

【0039】さらに、ショートパスにおいては、浮動小
数点加算器ユニット500は、パイプライン段2内の左
シフタ524に接続されている先行ゼロ訂正モジュール
530を含む。この先行ゼロ訂正モジュールは、プロセ
ス200内の先行ゼロ訂正ステップ330を行う。
Further, in the short pass, floating point adder unit 500 includes a leading zero correction module 530 connected to left shifter 524 in pipeline stage 2. The leading zero correction module performs leading zero correction step 330 in process 200.

【0040】ロングパスにおいては、浮動小数点加算器
ユニット500は、選択および位置合せモジュール51
0に両方とも接続されている第2の加算器511aと第
3の加算器511bとを含む。第2の加算器511aは
位置合せモジュール510からオペランドA、Bを受け
取り、プロセス200におけるeA−eBのより低位のビ
ットを計算するためのステップ410aと、eA−eB
全結果に関するビットの残りを計算するためのステップ
411aとを行う。第3の加算器511bは、位置合せ
モジュール510からオペランドA、Bを受け取り、プ
ロセス200におけるeB−eAのより低位のビットを計
算するためのステップ410bと、eB−eAの全結果に
関するビットの残りを計算するためのステップ411b
とを行う。
In the long pass, the floating point adder unit 500 includes a selection and alignment module 51.
It includes a second adder 511a and a third adder 511b both connected to 0. Operand A from the second adder 511a is aligned module 510 receives the B, a step 410a for calculating the lower level of the bits of e A -e B in the process 200, for all the results of e A -e B Step 411a for calculating the rest of the bits. The third adder 511b receives the operands A, B from the alignment module 510, step 410b for calculating the lower bits of e B -e A in process 200, and the total result of e B -e A. Step 411b for calculating the rest of the bits for
And do.

【0041】ロングパスにおいては、浮動小数点加算器
ユニット500は、さらに、位置合せモジュール510
と第2の加算器511aとに接続されている第1の右シ
フタ513aと、選択および位置合せモジュール510
と第3の加算器511bとに接続されている第2の右シ
フタ513bとを含む。第1の右シフタ513aは、選
択および位置合せモジュール510からオペランドA、
Bを受け取り、第2の加算器511aからeA−eBのよ
り低位のビットを受け取り、eA−eBのより低位のビッ
トに基づいてオペランドBの仮数を0、1、2、また
は、3ビットだけ部分的に右シフトさせるためのステッ
プ412aを行う。同様に、第2の右シフタ513a
は、選択および位置合せモジュール510からオペラン
ドA、Bを受け取り、第3の加算器511bからeB
Aのより低位のビットを受け取り、および、eB−eA
のより低位のビットに基づいてオペランドAの仮数を
0、1、2、または、3ビットだけ部分的に右シフトさ
せるためのステップ412bを行う。
In the long pass, the floating point adder unit 500 further includes an alignment module 510.
And a first right shifter 513a connected to the second adder 511a and a selection and alignment module 510.
And a second right shifter 513b connected to the third adder 511b. The first right shifter 513a receives the operand A from the selection and alignment module 510.
B and receives the lower bits of e A -e B from the second adder 511a and sets the mantissa of the operand B to 0, 1, 2, or based on the lower bits of e A -e B. Step 412a for partially shifting right by 3 bits is performed. Similarly, the second right shifter 513a
Receives operands A, B from the selection and alignment module 510, and a third adder 511b to e B −.
receive the lower bits of e A , and e B −e A
Step 412b is performed to partially right shift the mantissa of operand A by 0, 1, 2, or 3 bits based on the lower bits of.

【0042】さらに、ロングパスにおいては、浮動小数
点加算器ユニット500は、第2の加算器511aと第
3の加算器511bとに接続されているオペランド選択
モジュール517と、第1の右シフタ513aと第2の
右シフタ513bとオペランド選択モジュール517と
に接続されている選択/スワップモジュール516とを
含む。オペランド選択モジュール517はプロセス20
0におけるステップ414を行い、すなわち、このオペ
ランド選択モジュールは、第2の加算器511aおよび
/または第3の加算器511bの結果に基づいてオペラ
ンドA、Bの間で小さい方のオペランドを選択する。こ
の選択は選択/スワップモジュール516に出力され、
選択/スワップモジュール516は、A、Bの部分的に
右シフトされた仮数の間において小さい方のオペランド
の部分的に右シフトされた仮数を選択することによっ
て、プロセス200のステップ416を行う。さらに、
減算演算であり、かつ、小さい方のオペランドが偶然に
被減数である場合には、選択/スワップモジュール51
6は、小さい方のオペランドが減数位置に移動されるよ
うにその2つのオペランドをスワップする。
Further, in the long pass, the floating point adder unit 500 includes an operand selection module 517 connected to the second adder 511a and the third adder 511b, a first right shifter 513a and a first right shifter 513a. Includes a select / swap module 516 connected to a second right shifter 513b and an operand select module 517. Operand selection module 517 processes 20
Perform step 414 at 0, i.e., the operand selection module selects the smaller operand between operands A and B based on the result of the second adder 511a and / or the third adder 511b. This selection is output to the selection / swap module 516,
Select / swap module 516 performs step 416 of process 200 by selecting the partially right-shifted mantissa of the smaller operand between the partially right-shifted mantissas of A, B. further,
If it is a subtraction operation and the smaller operand happens to be the minuend, the selection / swap module 51
6 swaps the two operands so that the smaller operand is moved to the reduced position.

【0043】さらに、ロングパスにおいては、浮動小数
点加算器ユニット500は、オペランド選択モジュール
514と選択/スワップモジュール516とに接続され
ている第3の右シフタ521と、第3の右シフタ521
に接続されている3−2桁上げ保存加算器(CSA)5
23と、この3−2CSA 523に接続されている第
4の加算器525と、第3の右シフタ521に接続され
ている第5の加算器526とを含む。第3の右シフタ5
21は、プロセス200における右シフトステップ42
0を行い、第2の加算器511aまたは第3の加算器5
11bの結果のより高位のビットに基づいて小さい方の
オペランドの部分的にシフトされた仮数をシフトさせ
る。第4の加算器525は、プロセス200におけるA
+B+2を計算するためのステップ424を行い、第5
の加算器526は、プロセス200におけるA+Bを計
算するためのステップ426を行う。3−2CSAは、
2倍精度と単精度との場合にLSB位置が異なっている
ので、A+B+2の生成のために使用される。
Further, in the long pass, the floating point adder unit 500 has a third right shifter 521 and a third right shifter 521 connected to the operand selection module 514 and the selection / swap module 516.
3-2 carry save adder (CSA) 5 connected to
23, a fourth adder 525 connected to the 3-2CSA 523, and a fifth adder 526 connected to the third right shifter 521. Third right shifter 5
21 is the right shift step 42 in the process 200.
0, and the second adder 511a or the third adder 5
Shift the partially shifted mantissa of the smaller operand based on the higher bits of the result of 11b. The fourth adder 525 determines A in process 200.
Perform step 424 to calculate + B + 2, and
The adder 526 of 1 performs step 426 for calculating A + B in process 200. 3-2CSA is
Since the LSB position is different between double precision and single precision, it is used for generating A + B + 2.

【0044】ロングパスにおいては、浮動小数点加算器
ユニット500は、さらに、第2の右シフタ520に接
続されている丸め論理モジュール528を含む。データ
が第2の右シフタ520において小さい方のオペランド
の仮数から右シフトされているので、IEEE−754
規格に記述されているように、LSB+1ビットと、L
SBと、保護ビットと、丸めビットと、スティッキービ
ットとを含む丸め情報が、丸め論理モジュール528に
よって並行して計算される。
In the long pass, the floating point adder unit 500 further includes a rounding logic module 528 connected to the second right shifter 520. Since the data is right-shifted from the mantissa of the smaller operand in the second right shifter 520, IEEE-754
As described in the standard, LSB + 1 bit and L
Rounding information, including SBs, guard bits, rounding bits, and sticky bits are calculated in parallel by rounding logic module 528.

【0045】さらに、ロングパスにおいては、浮動小数
点加算器ユニット500は、第4の加算器524と第5
の加算器526と丸め論理モジュール528とに接続さ
れている第1段結果選択モジュール531を含む。この
第1段結果選択モジュール531は、プロセス200に
おける第1段結果選択ステップ430を行う。図6A
は、第1段結果選択モジュール531によって加算演算
のために使用される結果選択基準と丸めおよび正規化ア
ルゴリズムとを含む表である。図6Bは、第1段結果選
択モジュール531によって減算演算のために使用され
る結果選択基準と丸めおよび正規化アルゴリズムとを含
む表である。
Further, in the long pass, the floating point adder unit 500 includes a fourth adder 524 and a fifth adder 524.
A first-stage result selection module 531 connected to the adder 526 and the rounding logic module 528. The first stage result selection module 531 performs the first stage result selection step 430 in the process 200. Figure 6A
Is a table containing the result selection criteria and rounding and normalization algorithms used by the first stage result selection module 531 for addition operations. FIG. 6B is a table containing the result selection criteria and rounding and normalization algorithms used by the first stage result selection module 531 for subtraction operations.

【0046】図6Aに示されているように、第1段結果
選択モジュールによって行われる丸めおよび正規化はオ
ーバフロービットに基づいており、このオーバフロービ
ットは、選択された結果の最上位ビット(MSB)、丸
めビット、および、LSBよりも高い1ビット位置であ
る。丸めビットは、すべての丸めモードに関してIEE
E−754に準拠した丸めを行うための事前正規化され
た結果の条件付き増分を示し、および、IEEE−75
4規格にしたがって、丸めモード、符号、保護ビット、
丸めビット、スティッキービット、および/または、オ
ーバフロービットに基づいて計算される。
As shown in FIG. 6A, the rounding and normalization performed by the first stage result selection module is based on the overflow bit, which is the most significant bit (MSB) of the selected result. , Round bit, and 1 bit position higher than LSB. Rounding bit is IEEE for all rounding modes
FIG. 6 shows the conditional increment of the pre-normalized result for rounding according to E-754, and IEEE-75
Rounding mode, sign, protection bit,
Calculated based on rounding bits, sticky bits, and / or overflow bits.

【0047】図6Bの表を参照すると、範囲(0.5,
2)内に含まれる減算結果は、その結果が1未満である
場合に、正規化のための1ビットの左シフトを必要とす
るだろう。この場合には、丸め位置がLSBから保護ビ
ットに変化するだろう。採用可能なこれら2つの位置
は、A+B結果およびA+B+2結果と組み合わされ
た、LSB+1位置とLSB位置とにおける2つのフィ
ルビット(fill bit)を使用して処理されるこ
とが可能である。例えば、LSBと保護ビットとが共に
1である場合には、切り上げが行われ、より上位のビッ
トにおけるA+B+2の選択によって反映され、そのプ
ロセスにおいてLSBビットをゼロにするだろう。ロン
グパスに関して結果を生じさせるためにフィルビットが
どのようにA+B結果およびA+B+2結果と組み合わ
されるかに関するさらなる詳細が、図6Bに含まれてい
る。図6Aの表と図6Bの表とに示されている丸めアル
ゴリズムが、IEEE−754規格に記述されている通
りの4つの丸めモードのすべてをサポートする。
Referring to the table of FIG. 6B, the range (0.5,
The subtraction result contained within 2) will require a 1-bit left shift for normalization if the result is less than one. In this case, the rounding position would change from LSB to guard bit. These two possible positions can be processed using two fill bits at the LSB + 1 and LSB positions combined with the A + B and A + B + 2 results. For example, if the LSB and guard bit are both 1, then rounding up will occur, reflected by the selection of A + B + 2 in the higher bits, which will zero the LSB bit in the process. Further details on how fill bits are combined with A + B and A + B + 2 results to produce a result for a long pass are included in FIG. 6B. The rounding algorithms shown in the table of FIG. 6A and the table of FIG. 6B support all four rounding modes as described in the IEEE-754 standard.

【0048】図5を参照すると、浮動小数点加算器ユニ
ット500は、さらに、選択論理モジュール540を含
み、この選択論理モジュール540は位置合せモジュー
ルに接続されており、かつ、選択プロセス220を行う
ように構成されている、すなわち、表IIIまたは表IVに
おける選択基準に基づいてショートパスまたはロングパ
スからの結果を選択するかどうかを決定するように構成
されている論理回路を含む。浮動小数点加算器ユニット
500は、さらに、ショートパス内の左シフタ524と
ロングパス内の第1段結果選択モジュール531と選択
論理モジュール540とに接続されている、結果選択モ
ジュール550を含む。結果選択モジュール550は、
プロセス200内の結果選択ステップ250を行うよう
に構成されている、すなわち、選択論理モジュール54
0からの決定に基づいてショートパスからの結果とロン
グパスからの結果との間で結果を選択するように構成さ
れている論理回路を含む。
Referring to FIG. 5, the floating point adder unit 500 further includes a selection logic module 540, which is connected to the alignment module and performs the selection process 220. A logic circuit configured, i.e. configured to determine whether to select a result from a short path or a long path based on the selection criteria in Table III or Table IV. The floating point adder unit 500 further includes a result selection module 550 connected to the left shifter 524 in the short path and the first stage result selection module 531 in the long path and the selection logic module 540. The result selection module 550
Configured to perform result selection step 250 within process 200, ie, selection logic module 54.
A logic circuit configured to select a result between a short path result and a long path result based on a determination from zero.

【0049】[0049]

【発明の効果】本発明は、図1に示されている従来の加
算器のショートパス内のパイプライン段3内の増分器を
取り除くことによって、ハードウェアのコストを低減さ
せる。
The present invention reduces hardware costs by eliminating the incrementer in pipeline stage 3 in the short path of the conventional adder shown in FIG.

【0050】本発明は、さらに、従来の浮動小数点加算
器のショートパス内の丸めステップに関連付けられた時
間遅延を排除する。
The present invention further eliminates the time delay associated with the rounding step in the short path of conventional floating point adders.

【図面の簡単な説明】[Brief description of drawings]

【図1】並行パイプラインパスを有する従来の浮動小数
点加算器ユニットのブロック図である。
FIG. 1 is a block diagram of a conventional floating point adder unit with parallel pipeline paths.

【図2】本発明の一実施形態による2つの浮動小数点オ
ペランドに対して加算演算または減算演算を行うための
プロセスを示す流れ図である。
FIG. 2 is a flow diagram illustrating a process for performing add or subtract operations on two floating point operands according to one embodiment of the invention.

【図3】本発明の一実施形態による2つの浮動小数点オ
ペランドに対して加算演算または減算演算を行うための
プロセスにおけるショートパスプロセスを示す流れ図で
ある。
FIG. 3 is a flow diagram illustrating a short pass process in a process for performing add or subtract operations on two floating point operands according to one embodiment of the invention.

【図4】本発明の一実施形態による2つの浮動小数点オ
ペランドに対して加算演算または減算演算を行うための
プロセスにおけるロングパスプロセスを示す流れ図であ
る。
FIG. 4 is a flow diagram illustrating a long pass process in a process for performing add or subtract operations on two floating point operands according to one embodiment of the invention.

【図5】本発明による2つの並行データパスを有する浮
動小数点加算器ユニットの略ブロック図である。
FIG. 5 is a schematic block diagram of a floating point adder unit with two parallel data paths according to the present invention.

【図6】(A)は、本発明による浮動小数点加算器ユニ
ットのロングパスにおける加算結果を選択するための基
準を含む表図であり、(B)は、本発明による浮動小数
点加算器ユニットのロングパスにおける減算結果を選択
するための基準を含む表図である。
6A is a table including criteria for selecting an addition result in a long pass of a floating point adder unit according to the present invention, and FIG. 6B is a long pass of a floating point adder unit according to the present invention. FIG. 6 is a table diagram including criteria for selecting a subtraction result in FIG.

【符号の説明】[Explanation of symbols]

200…プロセス 210…位置合せステップ 220…選択プロセス 230…ショートパスプロセス 240…ロングパスプロセス 250…結果選択ステップ 312…先行ゼロ予測ステップ 314…位置合せおよびスワップステップ 315…先行ゼロベクトル選択ステップ 316…仮数比較ステップ 318…スワップステップ 320…仮数減算ステップ 322…先行ゼロ計算ステップ 324…正規化ステップ 330…先行ゼロ訂正ステップ 200 ... Process 210 ... Positioning step 220 ... Selection process 230 ... Short pass process 240 ... Long pass process 250 ... Result selection step 312 ... Leading zero prediction step 314 ... Alignment and swap steps 315 ... Leading zero vector selection step 316 ... Mantissa comparison step 318 ... Swap step 320 ... Mantissa subtraction step 322 ... Leading zero calculation step 324 ... Normalization step 330 ... Leading zero correction step

───────────────────────────────────────────────────── フロントページの続き (72)発明者 アテュル ダブラニア アメリカ合衆国,カリフォルニア 95138, サンノゼ,グレニーグルズ ドライブ 5817 (72)発明者 ウォーレン ジェームズ アメリカ合衆国,カリフォルニア 95128, サンノゼ,パムラー アベニュ 591 Fターム(参考) 5B016 AA01 AA02 BA04 BB02 CA01 CD01    ─────────────────────────────────────────────────── ─── Continued front page    (72) Inventor Atatur Dabulania             United States, California 95138,             San Jose, Glenniegles Drive             5817 (72) Inventor Warren James             United States, California 95128,             San Jose, Pamler Avenue 591 F term (reference) 5B016 AA01 AA02 BA04 BB02 CA01                       CD01

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】 ロングパスとショートパスとを有する浮
動小数点加算器において、仮数と指数を各々が有する2
つのオペランドを含む減算演算のためのパスを選択する
方法であって、 前記2つのオペランドの指数の間の差が1よりも大きい
ことに応答して、前記ロングパスを選択することと、 前記2つのオペランドの指数の間の差がゼロであること
に応答して、前記ショートパスを選択することと、 前記2つのオペランドの指数の間の差が1であり、か
つ、より大きい指数を有する前記オペランドの仮数が第
1の予め決められた数の範囲内にあることに応答して、
前記ショートパスを選択することと、 大きい方のオペランドの指数と小さい方のオペランドの
指数との間の差が1であり、かつ、前記大きい方のオペ
ランドの仮数が第2の予め決められた数の範囲内にある
ことに応答して、前記ロングパスを選択することと、 を含む方法。
1. A floating point adder having a long path and a short path, each having a mantissa and an exponent.
Selecting a path for a subtraction operation including two operands, selecting the long path in response to a difference between exponents of the two operands being greater than one; Selecting the short path in response to a difference between the exponents of the operands being zero, and the operand having a difference between the exponents of the two operands being 1 and having a greater exponent In response to the mantissa of being within the range of the first predetermined number,
The difference between selecting the short path and the exponent of the larger operand and the exponent of the smaller operand is 1, and the mantissa of the larger operand is a second predetermined number. Selecting the long path in response to being within the range of.
【請求項2】 前記第1の予め決められた数の範囲は
1.5未満の数から成り、および、前記第2の予め決め
られた数の範囲は1.5以上の数からなる、請求項1に
記載の方法。
2. The first predetermined number range comprises a number less than 1.5 and the second predetermined number range comprises a number greater than or equal to 1.5. The method according to Item 1.
【請求項3】 前記第1の予め決められた数の範囲は
1.5以下の数から成り、および、前記第2の予め決め
られた数の範囲は1.5よりも大きい数からなる、請求
項1に記載の方法。
3. The first predetermined number range consists of numbers less than or equal to 1.5, and the second predetermined number range consists of numbers greater than 1.5. The method of claim 1.
【請求項4】 仮数と指数を各々が有する2つのオペラ
ンドを含む浮動小数点演算に関する結果を各々が生じさ
せる2つの並行データパス、すなわち、ショートパスと
ロングパスとを有する浮動小数点加算器ユニットにおい
て、前記ショートパスによって生じせしめられる結果と
前記ロングパスによって生じせしめられる結果との間で
結果を選択する方法であって、 前記浮動小数点演算が加算演算であることに応答して、
前記ロングパスによって生じせしめられた結果を選択す
ることと、 前記浮動小数点演算が減算演算であり、かつ、前記2つ
のオペランドの指数の間の差が1よりも大きいことに応
答して、前記ロングパスによって生じせしめられた結果
を選択することと、 前記浮動小数点演算が減算演算であり、かつ、前記2つ
のオペランドの指数の間の差が0であることに応答し
て、前記ショートパスによって生じせしめられた結果を
選択することと、 前記浮動小数点演算が減算演算であり、前記2つのオペ
ランドの指数の間の差が1であり、かつ、より大きい指
数を有する前記オペランドの仮数が第1の予め決められ
た数の範囲内にあることに応答して、前記ショートパス
によって生じせしめられた結果を選択することと、 前記浮動小数点演算が減算演算であり、前記2つのオペ
ランドの指数の間の差が1であり、かつ、より大きい指
数を有する前記オペランドの仮数が第2の予め決められ
た数の範囲内にあることに応答して、前記ロングパスに
よって生じせしめられた結果を選択することと、を含む
方法。
4. A floating point adder unit having two parallel data paths, a short path and a long path, each producing a result for a floating point operation including two operands each having a mantissa and an exponent. A method of selecting a result between a result produced by a short pass and a result produced by the long pass, in response to the floating point operation being an addition operation,
In response to selecting the result produced by the long pass, and in response to the floating point operation being a subtraction operation and the difference between the exponents of the two operands being greater than 1; In response to selecting the generated result and in which the floating point operation is a subtraction operation and the difference between the exponents of the two operands is zero. Selecting the result, the floating point operation being a subtraction operation, the difference between the exponents of the two operands being 1, and the mantissa of the operand having a larger exponent being a first predetermined. Selecting the result produced by the short path in response to being within a range of a predetermined number, and the floating point operation being subtracted. Arithmetic, the difference between the exponents of the two operands is 1, and the mantissa of the operand with a greater exponent is within a second predetermined number, Selecting the result caused by the long pass.
【請求項5】 前記第1の予め決められた数の範囲は
1.5未満の数から成り、および、前記第2の予め決め
られた数の範囲は1.5以上の数からなる、請求項4に
記載の方法。
5. The first predetermined range of numbers comprises less than 1.5 and the second predetermined range of numbers comprises greater than or equal to 1.5. Item 4. The method according to Item 4.
【請求項6】 前記第1の予め決められた数の範囲は
1.5以下の数から成り、および、前記第2の予め決め
られた数の範囲は1.5よりも大きい数からなる、請求
項4に記載の方法。
6. The first predetermined range of numbers consists of numbers less than or equal to 1.5 and the second predetermined range of numbers consists of numbers greater than 1.5. The method of claim 4.
【請求項7】 ショートパスとロングパスとを含む浮動
小数点加算器ユニットであり、前記ショートパスは、減
算結果を丸めるための手段を含まない浮動小数点加算器
ユニット。
7. A floating point adder unit comprising a short pass and a long pass, said short pass comprising no means for rounding the subtraction result.
【請求項8】 2つのオペランドに対して浮動小数点演
算を行うための浮動小数点加算ユニットであって、 前記2つのオペランドを各々が受け取って、前記2つの
オペランドを含む前記浮動小数点演算に関する発生可能
な結果を生じさせる、ショートパスとロングパスである
2つの並行データパスと、 請求項3、請求項4または請求項5のいずれかに記載の
方法を使用して、前記浮動小数点演算の結果として前記
ショートパスからの前記発生可能な結果または前記ロン
グパスからの前記発生可能な結果を選択するかどうかを
決定するように構成されている論理回路を含む、前記デ
ータパスの各々と並行してランする選択論理モジュール
と、 を含む浮動小数点加算器ユニット。
8. A floating point adder unit for performing a floating point operation on two operands, each of which receives said two operands and is capable of occurring with respect to said floating point operation comprising said two operands. Two parallel data paths, a short path and a long path, that produce a result, and the short as a result of the floating point operation using the method of any of claims 3, 4 or 5. Selection logic running in parallel with each of the data paths including logic circuitry configured to determine whether to select the probable result from a path or the probable result from the long path. Floating point adder unit including module and.
【請求項9】 さらに、前記ショートパスと前記ロング
パスと前記選択論理モジュールとに接続されている結果
選択モジュールを含み、および、前記選択論理モジュー
ルによって行われる前記決定に基づいて前記浮動小数点
演算の結果を前記ショートパスからの前記発生可能な結
果と前記ロングパスからの前記発生可能な結果との間で
選択するように構成されている論理回路を含む、請求項
7に記載の浮動小数点加算器ユニット。
9. A result selection module further comprising a result selection module connected to said short path, said long path and said selection logic module, and the result of said floating point operation based on said decision made by said selection logic module. 8. The floating point adder unit of claim 7, including a logic circuit configured to select between the possible result from the short path and the possible result from the long path.
【請求項10】 前記ショートパスは、減算結果を丸め
るための手段を含まない、請求項8に記載の浮動小数点
加算ユニット。
10. The floating point adder unit of claim 8, wherein the short path does not include means for rounding the subtraction result.
JP2002167379A 2001-06-07 2002-06-07 Elimination of rounding step in short path of floating point adder Withdrawn JP2003029960A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US29680501P 2001-06-07 2001-06-07
US60/296805 2001-06-07
US09/922371 2001-08-02
US09/922,371 US20030115236A1 (en) 2001-06-07 2001-08-02 Elimination of rounding step in the short path of a floating point adder

Publications (1)

Publication Number Publication Date
JP2003029960A true JP2003029960A (en) 2003-01-31

Family

ID=26969828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002167379A Withdrawn JP2003029960A (en) 2001-06-07 2002-06-07 Elimination of rounding step in short path of floating point adder

Country Status (1)

Country Link
JP (1) JP2003029960A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008510229A (en) * 2004-08-13 2008-04-03 アナログ・デバイセズ・インコーポレイテッド Method and apparatus for efficient floating point ALU
JP2013012203A (en) * 2011-06-29 2013-01-17 Arm Ltd Floating-point adder
JP2015103245A (en) * 2013-11-21 2015-06-04 三星電子株式会社Samsung Electronics Co.,Ltd. Apparatus and system including floating point addition unit and floating point addition method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008510229A (en) * 2004-08-13 2008-04-03 アナログ・デバイセズ・インコーポレイテッド Method and apparatus for efficient floating point ALU
JP2013012203A (en) * 2011-06-29 2013-01-17 Arm Ltd Floating-point adder
JP2015103245A (en) * 2013-11-21 2015-06-04 三星電子株式会社Samsung Electronics Co.,Ltd. Apparatus and system including floating point addition unit and floating point addition method
US10108398B2 (en) 2013-11-21 2018-10-23 Samsung Electronics Co., Ltd. High performance floating-point adder with full in-line denormal/subnormal support

Similar Documents

Publication Publication Date Title
US8046399B1 (en) Fused multiply-add rounding and unfused multiply-add rounding in a single multiply-add module
US7346643B1 (en) Processor with improved accuracy for multiply-add operations
US20150347089A1 (en) Microarchitecture for floating point fused multiply-add with exponent scaling
JP4388543B2 (en) 3-input floating-point adder / subtracter
KR100241076B1 (en) Floating- point multiply-and-accumulate unit with classes for alignment and normalization
JPH07182143A (en) Method and apparatus for execution of division and square-root calculation in computer
KR100264962B1 (en) Combined leading one and leading zero anticipator
US8751555B2 (en) Rounding unit for decimal floating-point division
US9256397B2 (en) Fused multiply-adder with booth-encoding
US5548545A (en) Floating point exception prediction for compound operations and variable precision using an intermediate exponent bus
US8239441B2 (en) Leading zero estimation modification for unfused rounding catastrophic cancellation
US5260889A (en) Computation of sticky-bit in parallel with partial products in a floating point multiplier unit
US5408426A (en) Arithmetic unit capable of performing concurrent operations for high speed operation
KR20020063058A (en) apparatus and method for design of the floating point ALU performing addition and round operations in parallel
US20070038693A1 (en) Method and Processor for Performing a Floating-Point Instruction Within a Processor
CN116643718B (en) Floating point fusion multiply-add device and method of pipeline structure and processor
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US6598065B1 (en) Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal
EP1282034A2 (en) Elimination of rounding step in the short path of a floating point adder
JP2003029960A (en) Elimination of rounding step in short path of floating point adder
JP2010102431A (en) Floating decimal point arithmetic circuit, floating decimal point arithmetic method, and servo-controlled system
Lang et al. Division unit for binary integer decimals
JP2003084969A (en) Floating point remainder computing element, information processing device, and computer program
US10353671B2 (en) Circuitry and method for performing division
JP3257278B2 (en) Normalizer using redundant shift number prediction and shift error correction

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050906