JP3257278B2 - Normalizer using redundant shift number prediction and shift error correction - Google Patents

Normalizer using redundant shift number prediction and shift error correction

Info

Publication number
JP3257278B2
JP3257278B2 JP22295094A JP22295094A JP3257278B2 JP 3257278 B2 JP3257278 B2 JP 3257278B2 JP 22295094 A JP22295094 A JP 22295094A JP 22295094 A JP22295094 A JP 22295094A JP 3257278 B2 JP3257278 B2 JP 3257278B2
Authority
JP
Japan
Prior art keywords
shift
digit
result
addition
subtraction
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.)
Expired - Fee Related
Application number
JP22295094A
Other languages
Japanese (ja)
Other versions
JPH0887399A (en
Inventor
弘道 山田
文夫 村林
辰美 山内
多加志 堀田
英雄 澤本
隆裕 西山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP22295094A priority Critical patent/JP3257278B2/en
Priority to US08/530,471 priority patent/US5684729A/en
Publication of JPH0887399A publication Critical patent/JPH0887399A/en
Application granted granted Critical
Publication of JP3257278B2 publication Critical patent/JP3257278B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は正規化処理を必要とする
浮動小数点数の加算,積和演算を行う浮動小数点演算装
置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a floating-point arithmetic unit for performing addition and multiply-accumulate operations on floating-point numbers requiring normalization processing.

【0002】[0002]

【従来の技術】浮動小数点数を計算機上で表現する方法
としては、IEEE−754 で定められた標準形式が一般に用
いられる。符号s,指数部e,小数部fからなるデータ
で表現された浮動小数点数は、以下の式で表される数値
をとる。
2. Description of the Related Art As a method of expressing a floating point number on a computer, a standard format defined by IEEE-754 is generally used. A floating-point number represented by data including a sign s, an exponent part e, and a decimal part f takes a numerical value represented by the following equation.

【0003】 (−1)^s×2^(e−b)×(1.f) …(1) ここで、bは指数バイアスと呼ばれ、指数部eの最大値
の約半分の値である。また、小数部fには整数の1が付
加され、整数部と小数部を合わせて仮数部と呼ぶ。この
ようにして表された数値を正規化数と呼んでいる。
(-1) {s × 2} (e−b) × (1.f) (1) where b is called an exponential bias, and is a value that is about half of the maximum value of the exponent part e. is there. An integer 1 is added to the decimal part f, and the integer part and the decimal part are collectively called a mantissa part. The numerical value represented in this way is called a normalized number.

【0004】次に、浮動小数点演算処理について説明す
る。簡単のため符号1ビット,指数部3ビット,小数部
4ビットとして、式(2),(3)で表される2つの浮動
小数点数の減算を考える。
Next, the floating point arithmetic processing will be described. For simplicity, consider the subtraction of two floating-point numbers represented by equations (2) and (3) with 1 bit for the sign, 3 bits for the exponent part, and 4 bits for the decimal part.

【0005】 (−1)^0×2^(4−b)×(1.0011) …(2) (−1)^0×2^(2−b)×(1.0001) …(3) まず、減算を行う前に2つの数値の指数部を大きい方に
一致させる。このとき指数部の小さい方の仮数部を指数
部の差分だけ下位方向にシフトする。この処理を桁合わ
せと呼び、式(3)を式(4)へ変換する。
(-1) {0 × 2} (4-b) × (1.0011) (2) (-1) {0 × 2} (2-b) × (1.0001) (3) First, before performing the subtraction, match the exponents of the two numerical values to the larger one. At this time, the mantissa having the smaller exponent is shifted downward by the difference of the exponent. This processing is called digit alignment, and converts equation (3) into equation (4).

【0006】 (−1)^0×2^(4−b)×(0.010001) …(4) 次に、式(2)の仮数部から式(4)の仮数部を減算す
る。その結果を式(5)に示す。
(-1) {0 × 2} (4-b) × (0.010001) (4) Next, the mantissa of equation (4) is subtracted from the mantissa of equation (2). The result is shown in equation (5).

【0007】 (−1)^0×2^(4−b)×(0.111011) …(5) 式(5)の仮数部は、整数部が0であり正規化数とはな
らない。これを正規化数にするために、まず仮数部の最
上位1(最上位桁から見て最初に1となる桁)を見つ
け、この桁が整数部にくるように仮数部全体をシフトす
る。次に、指数部から仮数部をシフトした数を減ずる。
この処理を正規化と呼び、式(5)を式(6)に変換す
る。
(-1) {0 × 2} (4-b) × (0.111011) (5) In the mantissa part of the equation (5), the integer part is 0 and is not a normalized number. In order to make this a normalized number, the most significant 1 of the mantissa is first found (the first digit to be 1 when viewed from the most significant digit), and the entire mantissa is shifted such that this digit comes to the integer part. Next, the number obtained by shifting the mantissa part from the exponent part is subtracted.
This process is called normalization, and converts equation (5) into equation (6).

【0008】 (−1)^0×2^(3−b)×(1.11011) …(6) 式(6)の小数部は5桁であるため、これをフォーマッ
トの桁数(4桁)に縮めるための演算を行う。これを丸
め処理と呼ぶ。式(6)を丸めた例を式(7)に示す。
(-1) {0 × 2} (3-b) × (1.11011) (6) Since the decimal part of the equation (6) has 5 digits, it is converted to the number of digits of the format (4 digits). ) Is performed. This is called a rounding process. Equation (7) shows an example of rounding equation (6).

【0009】 (−1)^0×2^(3−b)×(1.1110) …(7) 以上が浮動小数点演算処理の一例である。この様な浮動
小数点数の演算を行う方法の従来例としては、特開平2
−232723 号に述べられている方法がある。この方法を
用いた演算装置を図16を用いて説明する。
(-1) {0 × 2} (3-b) × (1.110) (7) The above is an example of the floating-point arithmetic processing. As a conventional example of such a method of calculating a floating-point number, Japanese Patent Laid-Open No.
There is a method described in -232723. An arithmetic device using this method will be described with reference to FIG.

【0010】桁合わせ回路15は、加減算を施すべき2
つの浮動小数点数オペランド110,111を入力し、
両方の指数部を大きい方の値に一致させ、指数部の小さ
い方の仮数部を指数部の差だけ下位方向にシフトする。
加減算回路10は、オペレーションの指示112と入力
オペランド110,111の符号の組合わせ,指数部,
仮数部の大小関係等に対応して桁合わせ後の仮数部11
3,114の加減算を行う。シフト数計算回路90は、
加減算結果103の最上位1の桁から整数部までの桁数
をシフト数180として計算する。正規化シフト回路1
2は、シフト数180を用いて、加減算結果103をシ
フトする。丸め回路16は、正規化シフト結果105を
フォーマットの桁数に縮めるための演算を行う。指数部
補正回路17は、桁合わせ回路15が出力する指数部1
15からシフト数180を減じた値116とこれに1を
加えた値117を出力する。指数部選択回路18は、丸
め結果115に応じて、補正後の指数部116,117
のいずれかを選択する。以上の処理によって浮動小数点
数の演算結果119が生成される。
The digit matching circuit 15 performs addition and subtraction on 2
Input two floating point operands 110 and 111,
Both exponents are matched to the larger value, and the smaller mantissa of the exponent is shifted downward by the difference of the exponents.
The addition / subtraction circuit 10 includes a combination of an operation instruction 112 and signs of input operands 110 and 111, an exponent part,
The mantissa part 11 after digit matching corresponding to the magnitude relation of the mantissa part, etc.
Addition and subtraction of 3,114 are performed. The shift number calculation circuit 90
The number of digits from the first digit to the integer part of the addition / subtraction result 103 is calculated as the shift number 180. Normalized shift circuit 1
2 shifts the addition / subtraction result 103 using the shift number 180. The rounding circuit 16 performs an operation for reducing the normalized shift result 105 to the number of digits of the format. The exponent part correction circuit 17 outputs the exponent part 1 output from the digit matching circuit 15.
A value 116 obtained by subtracting the shift number 180 from 15 and a value 117 obtained by adding 1 to the value 116 are output. The exponent part selecting circuit 18 corrects the exponent parts 116 and 117 according to the rounding result 115.
Select one of Through the above processing, the calculation result 119 of the floating-point number is generated.

【0011】[0011]

【発明が解決しようとする課題】しかしながら、従来の
演算装置では加減算結果を用いて正規化シフト数を計算
していたため、正規化処理に時間がかかり高速化の妨げ
となっていた。
However, in the conventional arithmetic unit, since the normalized shift number is calculated using the result of addition and subtraction, the normalization process takes a long time, which hinders an increase in speed.

【0012】本発明の目的は、正規化処理をより高速に
行うことのできる演算方式を提供することにある。ま
た、本発明の他の目的は、正規化処理を高速化すること
により、浮動小数点数の加減算,積和演算をより高速に
行うことのできる浮動小数点演算装置を提供することに
ある。
An object of the present invention is to provide an arithmetic method capable of performing normalization processing at higher speed. Another object of the present invention is to provide a floating-point arithmetic device that can perform addition and subtraction of floating-point numbers and product-sum operation at higher speed by speeding up normalization processing.

【0013】[0013]

【課題を解決するための手段】上記目的を達成するため
に本発明の浮動小数点演算装置では、正規化シフト数を
加減算の入力データを用いてnビットの誤差内で予測す
るシフト数冗長予測手段と、予測したシフト数と正確な
シフト数との差分を検出するシフト誤り検出手段と、予
測したシフト数を用いて正規化シフトした結果をシフト
誤りの数だけシフトするnビットシフタを備えている。
In order to achieve the above object, a floating point arithmetic unit according to the present invention uses a shift number redundant prediction means for predicting a normalized shift number within an n-bit error using input data for addition and subtraction. A shift error detecting means for detecting a difference between the predicted shift number and the accurate shift number, and an n-bit shifter for shifting the result of the normalized shift using the predicted shift number by the number of shift errors.

【0014】ここで、シフト数冗長予測手段に用いる演
算アルゴリズムについて説明する。本アルゴリズムは、
加減算処理に必要な長いビットにわたる桁上げ伝播およ
び論理段数を必要とせず、たかだか2ビット間の信号伝
播と論理段数2段で、加減算結果の最上位桁から連続す
る“0”を1ビットの誤差内で求めることができる。ま
ず、補数処理を施した後のデータを、A,Bとする。
Here, the operation algorithm used for the shift number redundancy prediction means will be described. This algorithm is
The carry propagation over a long bit and the number of logic stages required for the addition / subtraction process are not required, and the signal propagation between at most two bits and the number of logic stages are two stages. Can be sought within. First, the data after the complement processing is A and B.

【0015】 A=A[0]A[1]…A[n] …(8) B=B[0]B[1]…B[n] …(9) 次に、A,Bに式(10),(11)の2つの演算を施
す。
A = A [0] A [1]... A [n] (8) B = B [0] B [1]... B [n] (9) 10) and (11) are performed.

【0016】 X=A^B …(10) P=A||B …(11) ここで、“^”は、排他的論理和の演算子、“||”
は、論理和の演算子である。次に、X,Pに式(12)
の演算を施す。
X = A ^ B (10) P = A || B (11) where “^” is an exclusive OR operator, and “||”
Is a logical OR operator. Next, X and P are expressed by equation (12).
Is performed.

【0017】 Z=X^(P<<1) …(12) ここで、“<<”は、シフト演算子で、“P<<1”
は、Pを左に1ビットシフトするという意味である。但
し、シフト前の最上位桁を越える桁は無視する。式(1
2)のZが、加算結果の最上位桁から連続する“0”を
表す。実際に、具体的な数値を用いて説明する。
Z = X ^ (P << 1) (12) where “<<” is a shift operator and “P << 1”
Means that P is shifted one bit to the left. However, digits beyond the highest digit before the shift are ignored. Equation (1
Z in 2) represents “0” that continues from the most significant digit of the addition result. Actually, description will be made using specific numerical values.

【0018】 A=01011001 …(13) B=10111101 …(14) として、これらを式(10),(11)に代入すると、 X=11100100 …(15) P=11111101 …(16) となる。これらを式(12)に代入して、 Z=00011110 …(17) という結果を得る。これは、AとBを加算した結果、上
位3桁は“0”が連続し、4桁目で初めて“1”となる
ことを示す。実際に、AとBを加算した結果は、 S=00010110 …(18) となり、式(17)と式(18)で最上位1の桁が一致
している。もう1つの例を示すと、 A=01010001 …(19) B=10111101 …(20) X=11101100 …(21) P=11111101 …(22) Z=00010110 …(23) S=00001110 …(24) となり、式(23)と式(24)で最上位1の桁が一致
しない。このように、式(12)の演算結果の最上位1
の桁は、加算結果のそれと等しいか、1桁上位のいずれ
かとなる。これは、式(12)が、加算結果の最上位桁か
ら連続する“0”のうち最後の“0”以外を正確に計算
することができるからである。これについて、証明を行
う。
A = 010110100 (13) B = 10111101 (14) When these are substituted into Expressions (10) and (11), X = 11100100 (15) P = 11111101 (16) By substituting these into equation (12), the following result is obtained: Z = 00011110 (17). This indicates that, as a result of adding A and B, "0" continues in the upper three digits, and "1" becomes the first in the fourth digit. Actually, the result of adding A and B is as follows: S = 00001010 (18), and the most significant digit of the expression (17) and the expression (18) match. Another example is as follows: A = 01000011 (19) B = 101111101 ... (20) X = 11101100 ... (21) P = 11111101 ... (22) Z = 000110110 ... (23) S = 000011010 ... (24) Thus, the most significant digit does not match in Expression (23) and Expression (24). As described above, the most significant 1 in the calculation result of Expression (12)
Is either equal to that of the addition result or one digit higher. This is because equation (12) can accurately calculate a value other than the last “0” among the consecutive “0” s from the most significant digit of the addition result. Proof about this.

【0019】式(8),(9)を加算した結果のi桁目をS
[i]、i+1桁目をS[i+1]とすると、 S[i]=X[i]^C[i+1] …(25) =X[i]^(G[i+1]|(P[i+1]&C[i+2])) …(26) S[i+1]=X[i+1]^C[i+2] …(27) ここで、X[i+1],G[i+1],P[i+1]
は、それぞれi+1桁目の2入力の排他的論理和,論理
積,論理和であり、C[i+1]は、i+1桁目からi
桁目への桁上がりである。また、記号“^”,“&”,
“|”は、それぞれ排他的論理和,論理積,論理和のビ
ット演算子を意味する。ここで、S[i]とS[i+
1]がいずれも“0”であるとしたときの式(26)の
変形を行う。まず、式(27)より、 X[i+1]^C[i+2]=0 …(28) X[i+1]=C[i+2] …(29) が導かれる。次に、式(29)を式(26)に代入し
て、 X[i]^(G[i+1]|(P[i+1]&X[i+1]))=0 …(30) が導かれ、ここで、 G[i+1]|(P[i+1]&X[i+1])=P[i+1] …(31) であることから、式(30)はさらに式(32)のよう
に変形される。
The i-th digit of the result of adding the expressions (8) and (9) is S
When [i] and the (i + 1) th digit are S [i + 1], S [i] = X [i] ^ C [i + 1] (25) = X [i] ^ (G [i + 1] | (P [i + 1] & C [i + 2])) (26) S [i + 1] = X [i + 1] ^ C [i + 2] (27) where X [i + 1], G [i + 1], P [i + 1]
Are exclusive OR, AND, and OR of the two inputs at the (i + 1) th digit, respectively, and C [i + 1] is i
The carry to the digit. The symbols “記号”, “&”,
“|” Means a bit operator of exclusive OR, logical product, and logical OR, respectively. Here, S [i] and S [i +
1] is “0”, and the equation (26) is modified. First, from Expression (27), X [i + 1]] C [i + 2] = 0 (28) X [i + 1] = C [i + 2] (29) is derived. Next, the expression (29) is substituted into the expression (26), and X [i] ^ (G [i + 1] | (P [i + 1] & X [i + 1])) = 0 (30) is derived. Since G [i + 1] | (P [i + 1] & X [i + 1]) = P [i + 1] (31), Expression (30) is further transformed into Expression (32).

【0020】 X[i]^P[i+1]=0 …(32) すなわち、S[i]とS[i+1]がいずれも“0”の
場合には、式(32)が成立する。これを拡張して考え
ると、加算結果の最上位桁からi+1桁目までがすべて
“0”の場合には、最上位桁からi桁目について、式
(32)が成立することになる。これは、式(12)の
最上位桁からi桁目がすべて“0”となるということに
等しい。以上により、式(12)の結果を用いれば、1
桁の誤差内で加算結果の最上位1が予測可能なことが証
明された。
X [i] ^ P [i + 1] = 0 (32) That is, when both S [i] and S [i + 1] are “0”, equation (32) is established. When this is extended, when all the digits from the most significant digit to the (i + 1) th digit of the addition result are “0”, Expression (32) is established for the i-th digit from the most significant digit. This is equivalent to the fact that all the i-th digits from the most significant digit of Expression (12) are “0”. From the above, using the result of equation (12), 1
It has been proved that the most significant 1 of the addition result can be predicted within an order of magnitude error.

【0021】[0021]

【作用】上記のように、正規化シフト数を加減算の入力
データを用いてnビットの誤差内で予測することによ
り、正規化シフト数計算と加減算とが並列に実行可能に
なる。また、シフト誤り検出と正規化シフト補正によ
り、正しい正規化結果を生成可能になる。
As described above, by predicting the normalized shift number within an n-bit error using the input data for addition and subtraction, the calculation of the normalized shift number and the addition and subtraction can be performed in parallel. Further, a correct normalization result can be generated by the shift error detection and the normalization shift correction.

【0022】[0022]

【実施例】図2は、本発明を用いた計算機システムの例
である。プロセッサ21,メモリ22,ハードディスク
23からなる計算機が複数台、総合ネットワーク20を
介して接続される。係る計算機システムにおいて、本発
明は数値計算処理を司るプロセッサ21に適用される。
FIG. 2 shows an example of a computer system using the present invention. A plurality of computers including a processor 21, a memory 22, and a hard disk 23 are connected via a general network 20. In such a computer system, the present invention is applied to a processor 21 that performs a numerical calculation process.

【0023】図3は、プロセッサ21の例である。デー
タ及び命令を高速にアクセスできるように、データキャ
ッシュ30,命令キャッシュ33を内蔵する。仮想アド
レスから物理アドレスへのメモリアドレス変換は、デー
タTLB31と命令TLB32を用いて行う。この制御は
メモリ制御ユニット34が行う。整数演算は、汎用レジ
スタ35,ALU36,ALU37で行う。命令アドレ
スの計算は、アドレス加算器38を用いて行う。浮動小
数点演算は、浮動小数点レジスタ40,浮動小数点加算
器41,浮動小数点乗算器42,浮動小数点除算器43
で行う。これらの制御は命令制御ユニット39が行う。
科学技術計算やコンピュータ・グラフィックス等の計算
機利用分野では、非常に高い浮動小数点演算性能が必要
である。特に、浮動小数点加算は浮動小数点演算命令の
中でも使用頻度が高く、高速演算が可能な浮動小数点加
算器は重要である。本発明は、係る浮動小数点加算器4
1に適用される。
FIG. 3 shows an example of the processor 21. A data cache 30 and an instruction cache 33 are built in so that data and instructions can be accessed at high speed. The memory address conversion from the virtual address to the physical address is performed using the data TLB31 and the instruction TLB32. This control is performed by the memory control unit 34. The integer operation is performed by the general-purpose registers 35, the ALU 36, and the ALU 37. The calculation of the instruction address is performed using the address adder 38. The floating-point operation includes a floating-point register 40, a floating-point adder 41, a floating-point multiplier 42, and a floating-point divider 43.
Do with. These controls are performed by the instruction control unit 39.
2. Description of the Related Art Very high floating-point arithmetic performance is required in computer applications such as scientific computing and computer graphics. In particular, floating-point addition is frequently used among floating-point operation instructions, and a floating-point adder capable of high-speed operation is important. The present invention relates to such a floating point adder 4.
Applies to 1.

【0024】図4は、浮動小数点加算器41の実施例で
ある。図4において、10は加減算回路、11はシフト
数冗長予測回路、12は正規化シフト回路、13はシフ
ト誤り検出回路、14は正規化シフト補正回路、15は
桁合わせ回路、16は丸め回路、17は指数部補正回
路、18は指数部選択回路である。本実施例の演算装置
は、2つの入力オペランド(110,111)をオペレ
ーションの指示(112)に従い加算または減算し、正規
化および丸めの処理を行った結果(119)を出力す
る。
FIG. 4 shows an embodiment of the floating point adder 41. In FIG. 4, 10 is an addition / subtraction circuit, 11 is a shift number redundancy prediction circuit, 12 is a normalized shift circuit, 13 is a shift error detection circuit, 14 is a normalized shift correction circuit, 15 is a digit matching circuit, 16 is a rounding circuit, Reference numeral 17 denotes an exponent part correction circuit, and reference numeral 18 denotes an exponent part selection circuit. The arithmetic unit according to the present embodiment adds or subtracts two input operands (110, 111) according to the operation instruction (112), and outputs a result (119) obtained by performing normalization and rounding processing.

【0025】これより以降、IEEE−754 倍精度フォーマ
ットを例に説明を行うが、本発明の効果はこれに限られ
るわけではなく、単精度フォーマットや4倍精度フォー
マットにも、またIEEEフォーマット以外にも広く利
用可能である。
Hereinafter, the IEEE-754 double-precision format will be described as an example. However, the effects of the present invention are not limited to this, and the present invention is not limited to a single-precision format, a quad-precision format, and other than the IEEE format. Is also widely available.

【0026】以下、本実施例について図表を用いて詳細
に説明する。
Hereinafter, this embodiment will be described in detail with reference to the drawings.

【0027】まず、桁合わせ回路15について説明す
る。図5は、桁合わせ回路15の入力オペランド(11
0,111)のフォーマットと、桁合わせ結果の仮数部
fa(113),fb(114)を示す。表1は、桁合
わせ回路15の機能を示す。桁合わせ後の指数部ec
(115)は、2つの入力オペランド(110,111)
の指数部e1,e2のうち大きい方の値をとる。桁合わ
せ後の仮数部fa(113)は、指数部の大きい方の小数部
に整数値1を付加した値である。桁合わせ後のもう一方
の仮数部fb(114)は、指数部の小さい方の小数部
に整数値1を付加した後、これを指数部の差だけ下位方
向にシフトした値である。ここで、fb(114)の最
下位桁の信号b55は、シフトによって55桁目から桁
落ちした全信号のORである。本実施例が対象とする加
算または減算に限って言えば、このように桁合わせの桁
数を小数部55桁までに制限しても演算精度上何ら問題
ない。
First, the digit matching circuit 15 will be described. FIG. 5 shows the input operand (11
0, 111) and the mantissa parts fa (113), fb (114) of the digit alignment result. Table 1 shows the function of the digit matching circuit 15. Exponent part ec after digit alignment
(115) is the two input operands (110, 111)
Take the larger value of the exponent parts e1 and e2. The mantissa part fa (113) after digit alignment is a value obtained by adding an integer value 1 to the larger decimal part of the exponent part. The other mantissa part fb (114) after the digit alignment is a value obtained by adding an integer value 1 to the smaller fraction part of the exponent part and shifting it downward by the difference of the exponent part. Here, the signal b55 of the least significant digit of fb (114) is the OR of all the signals dropped from the 55th digit by the shift. Speaking of the addition or subtraction targeted by the present embodiment, there is no problem in calculation accuracy even if the number of digits for digit alignment is limited to 55 decimal places.

【0028】[0028]

【表1】 [Table 1]

【0029】オペレーションの指示(112)と入力オ
ペランド(110,111)の符号s1,s2の値によ
って、桁合わせ後の仮数部の処理が実質加算(fa+f
b),実質減算A(fa−fb),実質減算B(fb−f
a)のいずれかに決まる。この処理を加減算回路10で
行わせるために、桁合わせ回路で補数制御信号116を
生成する。表2に示すのは、補数制御信号116の一例
で、117,118,119の3信号より成る。117
は、実質減算Bの場合に1となる信号で、桁合わせ後の
仮数部faの補数をとるために用いる。118は、実質
減算Aの場合に1となる信号で、桁合わせ後の仮数部f
bの補数をとるために用いる。119は、実質減算Aま
たは実質減算Bの場合に1となる信号で、加減算回路1
0で減算を行うときに補数の1として用いる。
According to the operation instruction (112) and the values of the signs s1 and s2 of the input operands (110 and 111), the processing of the mantissa after digit alignment is substantially added (fa + f).
b), substantial subtraction A (fa−fb), substantial subtraction B (fb−f
a). In order for this processing to be performed by the addition / subtraction circuit 10, a complement control signal 116 is generated by the digit alignment circuit. Table 2 shows an example of the complement control signal 116, which is composed of three signals 117, 118 and 119. 117
Is a signal that becomes 1 in the case of the substantial subtraction B, and is used to take the complement of the mantissa part fa after digit alignment. Reference numeral 118 denotes a signal which becomes 1 in the case of the substantial subtraction A.
Used to take the complement of b. 119 is a signal which becomes 1 in the case of the substantial subtraction A or the substantial subtraction B.
It is used as the complement of 1 when performing subtraction with 0.

【0030】[0030]

【表2】 [Table 2]

【0031】次に、加減算回路10について説明する。
図6は、加減算回路10の一例で、LSIによく用いら
れる桁上げ先見加算器のブロック図である。補数回路5
0,51は、実質減算の場合に仮数部fa(113)ま
たは仮数部fb(114)の補数をとる回路である。補
数制御は、それぞれ信号117,118を用いて行う。
補数回路50,51の出力120,121は、まず数ビ
ットを単位とするいくつかのフィールドに分けて、これ
らフィールド毎に加算を行う。52は、下位からの桁上
がりがないと仮定した加算回路、53は、下位からの桁
上がりがあると仮定した加算回路、54は、補数制御信
号119を最下位桁への桁上がりとして用いる加算回路
である。ここで、図中左が上位桁側であるとする。加算
回路52,53,54は、各フィールドの和122と桁
上がり123を計算する。このうち桁上がり123を桁
上げ伝搬回路55に入力し、各フィールドへの正しい桁
上がり124が計算される。56は、加算結果選択回路
で、桁上がり124を用いて、フィールド毎に加算回路
52または加算回路53の和122のうち正しい方を選
択する。以上の処理によって、加減算結果S1 S0.s
1…s55が求まる。
Next, the addition / subtraction circuit 10 will be described.
FIG. 6 is a block diagram of an example of the add / subtract circuit 10, which is a carry look-ahead adder often used in an LSI. Complement circuit 5
Numerals 0 and 51 are circuits that take the complement of the mantissa part fa (113) or the mantissa part fb (114) in the case of substantial subtraction. Complement control is performed using signals 117 and 118, respectively.
The outputs 120 and 121 of the complement circuits 50 and 51 are first divided into several fields each having several bits, and the addition is performed for each of these fields. 52, an adder circuit assuming that there is no carry from the lower order; 53, an adder circuit assuming that there is a carry from the lower order; 54, an adder using the complement control signal 119 as a carry to the least significant digit Circuit. Here, it is assumed that the left side in the figure is the upper digit side. The adders 52, 53 and 54 calculate the sum 122 and carry 123 of each field. The carry 123 is input to the carry propagation circuit 55, and the correct carry 124 for each field is calculated. Reference numeral 56 denotes an addition result selection circuit that selects the correct one of the sum 122 of the addition circuit 52 or the addition circuit 53 for each field using the carry 124. By the above processing, the addition / subtraction result S1 S0.s
1 ... s55 is obtained.

【0032】次に、シフト数冗長予測回路11について
説明する。図7は、シフト数冗長予測回路11の一例で
ある。桁合わせ回路15の出力する仮数部fa(11
3),fb(114)および補数制御信号117,11
8を用いて、加減算回路10の出力103の最上位桁か
ら見て最初に1となる桁から整数部までの桁数を1ビッ
トの誤差内で予測する。
Next, the shift number redundancy prediction circuit 11 will be described. FIG. 7 is an example of the shift number redundancy prediction circuit 11. The mantissa part fa (11) output from the digit matching circuit 15
3), fb (114) and complement control signals 117, 11
Using 8, the number of digits from the first digit when viewed from the most significant digit of the output 103 of the addition / subtraction circuit 10 to the integer part is predicted within a 1-bit error.

【0033】図7において、補数回路60,61は、実
質減算の場合に仮数部fa(113)または仮数部fb
(114)の補数をとる回路である。補数制御は、それ
ぞれ信号117,118を用いて行う。連続0の検出回
路62は、補数回路60,61の出力信号130,13
1を加算した場合に、その結果の最上位桁から下位方向
に連続する0を求める回路である。図8に、連続0の検
出回路62の詳細回路図を示す。この回路は、補数回路
60,61の出力信号130,131を各ビット毎に、
OR(論理和)およびXOR(排他的論理和)をとった
後、XOR信号と1ビット下のOR信号のXORをと
る。この結果生成される55ビットの信号z0 z1 z
2…z54が連続0検出結果132となる。この信号
は、z0が小数点のすぐ左の整数部に対応し、z1…z
54が小数部1桁目から54桁目に対応する。例えば、
z0…z5がすべて0で、z6が1である場合には、加
算結果の最上位1は小数部第6桁目だと考え、シフト数
を6とする。但し、この値は1ビットの誤差を含んでお
り、この例の場合には加算結果の最上位1は小数部第6
桁目ではなく第5桁目であり、シフト数は5とするのが
正しいというように、シフト数を1だけ多く予測してし
まう場合がある。これは、正確な連続0検出のためには
連続する0の最後の桁に正しい桁上がりを入力する必要
があるのに、図8の回路では正しい桁上がりの替わりに
すぐ下の桁の信号のORを用いるためである。このよう
に1ビットの誤差があるものの、図8に示す回路はわず
かXOR回路2段で、加算結果の連続0検出が可能であ
る。
In FIG. 7, the complement circuits 60 and 61 provide a mantissa part fa (113) or a mantissa part fb
This is a circuit that takes the complement of (114). Complement control is performed using signals 117 and 118, respectively. The continuous 0 detection circuit 62 outputs the output signals 130, 13 of the complement circuits 60, 61.
When 1 is added, this circuit obtains 0s consecutive from the most significant digit to the lower direction of the result. FIG. 8 shows a detailed circuit diagram of the detection circuit 62 for continuous 0. This circuit converts the output signals 130 and 131 of the complement circuits 60 and 61 for each bit,
After taking OR (logical sum) and XOR (exclusive OR), XOR of the XOR signal and the OR signal one bit lower is taken. The resulting 55-bit signal z0 z1 z
2... Z54 become the continuous 0 detection result 132. In this signal, z0 corresponds to the integer part immediately to the left of the decimal point, and z1.
54 corresponds to the first to 54th digits of the decimal part. For example,
If z0... z5 are all 0 and z6 is 1, the most significant 1 of the addition result is considered to be the sixth digit of the decimal part, and the shift number is set to 6. However, this value includes a one-bit error. In this example, the most significant one of the addition result is the sixth decimal part.
It is not the digit but the fifth digit, and the shift number may be predicted to be increased by one, as in the case where it is correct to set the shift number to 5. This means that the correct carry must be input to the last digit of consecutive 0s for accurate consecutive 0 detection, but the circuit of FIG. 8 uses the signal of the immediately lower digit instead of the correct carry. This is because OR is used. Although there is a one-bit error in this way, the circuit shown in FIG. 8 can detect consecutive zeros of the addition result with only two XOR circuits.

【0034】再び図7に戻って、シフト数冗長予測回路
11の説明を続ける。図7において、63は優先順位判
定回路、64はバイトシフト数計算回路、65はビット
シフト数計算回路である。本実施例における正規化シフ
ト回路12として、後述するように加減算結果103を
まずバイト単位にシフトし、次にビット単位のシフトを
行うといった2段シフタの例を挙げる。このようなシフ
タでは、シフト数をバイト数とビット数に分けて表し、
バイト単位のシフタとビット単位のシフタにそれぞれ入
力する必要がある。バイトシフト数計算回路64は、バ
イト単位のシフト数を意味する信号147を生成する。
ビットシフト数計算回路65は、ビット単位のシフト数
を意味する信号148を生成する。連続0検出結果13
2は、最上位桁から8ビットずつ7つの優先順位判定回
路63に入力される。図9に、最も上位側の優先順位判
定回路63の例を示す。残りの優先順位判定回路もこれ
と同一の構成である。連続0検出結果132の上位8ビ
ットの信号z0…z7を入力し、ブロックOR信号13
3とブロック内優先順位信号139を生成する。ブロッ
クOR信号133は、8ビットの入力信号のORで、こ
れが1の場合には入力信号に1が存在することを意味す
る。ブロック内優先順位信号139は、8ビットの入力
信号のうち最上位に最も近い1の桁のみを1とし、それ
以外をすべて0とした信号である。但し、入力信号の上
位7桁が全て0の場合は、図9に示すように入力信号の
8桁目の値に係わらず、この桁を1とみなしても良い。
これは、入力8ビットが全て0の場合には、このブロッ
ク内優先順位信号139は後の計算に用いられないため
である。
Returning to FIG. 7, the description of the shift number redundancy prediction circuit 11 will be continued. In FIG. 7, reference numeral 63 denotes a priority determination circuit, 64 denotes a byte shift number calculation circuit, and 65 denotes a bit shift number calculation circuit. As the normalization shift circuit 12 in this embodiment, an example of a two-stage shifter in which the addition / subtraction result 103 is first shifted in units of bytes and then shifted in units of bits as described later will be described. In such a shifter, the number of shifts is represented by the number of bytes and the number of bits,
It is necessary to input to the shifter of byte unit and the shifter of bit unit respectively. The byte shift number calculation circuit 64 generates a signal 147 indicating the shift number in byte units.
The bit shift number calculation circuit 65 generates a signal 148 indicating the shift number in bit units. Continuous 0 detection result 13
2 is input to seven priority determination circuits 63 by eight bits from the most significant digit. FIG. 9 shows an example of the highest priority determination circuit 63. The remaining priority determination circuits have the same configuration. The signals z0... Z7 of the upper 8 bits of the continuous 0 detection result 132 are input and the block OR signal 13
3 and an intra-block priority signal 139 are generated. The block OR signal 133 is an OR of an 8-bit input signal, and when this is 1, it means that 1 exists in the input signal. The in-block priority signal 139 is a signal in which only the one digit closest to the highest of the 8-bit input signal is set to 1 and all others are set to 0. However, when the upper 7 digits of the input signal are all 0, this digit may be regarded as 1 regardless of the value of the 8th digit of the input signal as shown in FIG.
This is because when the input 8 bits are all 0, the intra-block priority signal 139 is not used for subsequent calculations.

【0035】図10に、バイトシフト数計算回路64の
例を示す。優先順位判定回路63のうち、上位側6つが
出力するブロックOR信号(133〜138)がバイト
シフト数計算回路64に入力される。この回路は、最上
位に最も近い1の信号のみを1とし、それ以外を全て0
とするように動作する。信号133〜138が全て0の
場合には、最も下位の優先順位判定回路64のブロック
ORが1であるとみなす。このようにして生成された7
ビットの信号y0 y1…y6 がバイトシフト数を示す
信号147となる。
FIG. 10 shows an example of the byte shift number calculation circuit 64. The block OR signals (133 to 138) output from the upper six of the priority order determination circuits 63 are input to the byte shift number calculation circuit 64. This circuit sets only 1 signal closest to the top to 1 and sets all other signals to 0.
It works as follows. When the signals 133 to 138 are all 0, it is considered that the block OR of the lowest priority determination circuit 64 is 1. 7 generated in this way
The bit signals y0 y1... Y6 become signals 147 indicating the number of byte shifts.

【0036】再び図7に戻って、ビットシフト数計算回
路65の説明を行う。7つの優先順位判定回路63が出
力するブロック内優先順位信号139〜146を、バイ
トシフト数147で選択し、ビットシフト数148とす
る。
Returning to FIG. 7, the bit shift number calculation circuit 65 will be described. The in-block priority signals 139 to 146 output from the seven priority determination circuits 63 are selected by the byte shift number 147, and the bit shift number is 148.

【0037】以上のようにして求められたバイトシフト
数147およびビットシフト数148が、シフト数冗長予
測結果104となる。
The byte shift number 147 and the bit shift number 148 obtained as described above become the shift number redundancy prediction result 104.

【0038】次に、正規化シフト回路12について説明
する。図11は、正規化シフト回路12の一例で、バイ
ト単位のシフトとビット単位のシフトの2段でシフトを
行う回路のブロック図である。70は、7入力から1つ
を選択する回路で、これを57個使用して57ビットの
バイトシフタを構成している。各選択回路70は、加減
算回路10の出力信号103のうち、そのビットに当た
る信号を先頭に8の整数倍だけ下位にある信号を7本入
力する。入力に用いる信号が無い場合は0を入力する。
入力信号の選択は、シフト数冗長予測回路11の出力す
るバイトシフト数147を用いて行い、57ビットの信
号Y1 Y0.y1 y2…y55(150)を生成する。71
は、8入力から1つを選択する回路で、これを57個使
用して57ビットのビットシフタを構成している。各選
択回路71は、バイトシフタの出力信号150のうち、
そのビットに当たる信号を先頭に連続する8本を入力す
る。入力に用いる信号が無い場合は0を入力する。入力
信号の選択は、シフト数冗長予測回路11の出力するビ
ットシフト数148を用いて行い、57ビットの正規化
シフト結果N1 N0.n1 n2…n55(105)を生
成する。
Next, the normalization shift circuit 12 will be described. FIG. 11 is a block diagram of an example of the normalization shift circuit 12, which performs a shift in two stages of a shift in bytes and a shift in bits. Reference numeral 70 denotes a circuit for selecting one of the seven inputs, and 57 circuits are used to constitute a 57-bit byte shifter. Each of the selection circuits 70 inputs seven signals lower than the output signal 103 of the addition / subtraction circuit 10 by an integer multiple of 8, starting with the signal corresponding to that bit. If there is no signal used for input, enter 0.
Selection of an input signal is performed using the byte shift number 147 output from the shift number redundancy prediction circuit 11 to generate a 57-bit signal Y1 Y0.y1 y2... Y55 (150). 71
Is a circuit for selecting one from eight inputs, and 57 circuits are used to constitute a 57-bit bit shifter. Each of the selection circuits 71 outputs the output signal 150 of the byte shifter.
Eight consecutive signals are input starting with the signal corresponding to the bit. If there is no signal used for input, enter 0. The selection of the input signal is performed using the bit shift number 148 output from the shift number redundancy prediction circuit 11 to generate a 57-bit normalized shift result N1 N0.n1 n2... N55 (105).

【0039】次に、図12を用いてシフト誤り検出回路
13と正規化シフト補正回路14について説明する。正
規化シフト回路12の出力信号105を入力し、シフト
誤り検出回路13の結果信号106によって、信号10
5をそのままあるいは1ビット下位方向にシフトし、正
規化シフト補正結果107として出力する。72は、2
入力から1つを選択する回路で、これを56個使用して
56ビットの1ビットシフタを構成している。各選択回
路72は、正規化シフト結果信号105のうち、そのビ
ットに当たる信号とその1ビット上位の信号の2本を入
力する。入力信号の選択は、正規化シフト結果信号10
5の最上位桁の信号であるN1を用いて行う。すなわ
ち、この1ビットの信号N1そのものがシフト誤り検出
結果信号106に等しい。N1が0の場合には、正規化
シフトが正しく行われており、正規化シフトの補正は必
要ない。N1が1の場合には、正規化シフトが誤って1
ビット余計に行われているため、正規化シフトの補正が
必要である。このようにして、正しい正規化シフト結果
U0.u1 u2…u55(107)が得られる。
Next, the shift error detection circuit 13 and the normalized shift correction circuit 14 will be described with reference to FIG. The output signal 105 of the normalization shift circuit 12 is input, and the signal 10 is output by the result signal 106 of the shift error detection circuit 13.
5 is shifted as it is or one bit lower, and is output as a normalized shift correction result 107. 72 is 2
This circuit selects one of the inputs, and 56 of them are used to form a 56-bit 1-bit shifter. Each of the selection circuits 72 receives two of the normalized shift result signal 105, a signal corresponding to the bit and a signal one bit higher than the signal. The selection of the input signal is based on the normalized shift result signal 10.
This is performed using N1 which is the signal of the most significant digit of 5. That is, the 1-bit signal N1 itself is equal to the shift error detection result signal 106. When N1 is 0, the normalization shift is correctly performed, and no correction of the normalization shift is required. If N1 is 1, the normalized shift is incorrectly 1
Correction of the normalized shift is necessary because the bit shift is performed extra. In this way, correct normalized shift results U0.u1 u2... U55 (107) are obtained.

【0040】次に、丸め回路16について説明する。図
13は丸め回路16の一例を示すブロック図である。7
3は、正規化シフト補正結果107のうち上位53桁の
U0.u1 u2…u52に1を加算した値151を生成
するインクリメント回路である。74は、丸め判定回路
で、信号107のうち下位の信号u52…55を使っ
て、丸めによる桁上がり信号152を生成する。75
は、正規化シフト補正結果107とインクリメント結果
151を入力し、丸めによる桁上がり信号152がない場
合には信号107を、ある場合には信号151を選択し
丸め結果R1R0.r1…r52(115)とする、丸め
選択回路である。丸め結果の整数部を2桁求めるのは、
正規化シフト補正結果107が全て1の場合に、丸めに
よる桁上がりが発生し、最上位1の桁が整数部1桁目か
ら2桁目にずれる場合があるためである。この場合、丸
め結果115の小数部は全て0であるから、最上位1を
小数点のすぐ左に戻すためのシフトは必要ない。
Next, the rounding circuit 16 will be described. FIG. 13 is a block diagram illustrating an example of the rounding circuit 16. 7
Reference numeral 3 denotes an increment circuit for generating a value 151 obtained by adding 1 to U0.u1 u2... U52 of the upper 53 digits of the normalized shift correction result 107. Numeral 74 denotes a rounding judging circuit which generates a carry signal 152 by rounding using lower-order signals u52 to 55 of the signal 107. 75
Receives the normalized shift correction result 107 and the increment result 151, selects the signal 107 if there is no carry signal 152 due to rounding, and if so, selects the signal 151 and rounds the result R1R0.r1... R52 (115). Is a rounding selection circuit. To find the two-digit integer part of the rounding result is
This is because if the normalized shift correction result 107 is all 1, a carry may occur due to rounding, and the uppermost digit may be shifted from the first digit of the integer part to the second digit. In this case, since the decimal part of the rounding result 115 is all 0, there is no need to shift the most significant 1 to the position immediately to the left of the decimal point.

【0041】次に、指数部補正回路17について説明す
る。図14は、指数部補正回路17の一例を示すブロッ
ク図である。図14において、76は、シフト数冗長予
測結果104のうちバイトシフト数を意味する信号14
7を入力し、これを3ビット信号160に符号化する回
路である。77は、シフト数冗長予測結果104のうち
ビットシフト数を意味する信号148を入力し、これを
3ビット信号161に符号化する回路である。信号16
0の下に信号161を合わせると、シフト数冗長予測信
号104を2進数とした値162が生成される。78
は、桁合わせ回路15の出力する桁合わせ後の指数11
5からシフト数冗長予測信号の2進数値162を減算し
た値163とこれに1を加えた値164を出力する回路
である。最後に、指数部選択回路18について説明す
る。この回路は、シフト誤り検出信号106がある場合
または、丸め結果115の信号R1が1の場合に、指数
部補正回路の出力信号164を、そうでない場合に信号
163を選択し結果の指数部118とする指数部選択回
路である。以上説明した処理によって生成される信号1
18と信号115をもって、浮動小数点加算器の結果1
19とする。
Next, the exponent part correction circuit 17 will be described. FIG. 14 is a block diagram illustrating an example of the exponent part correction circuit 17. In FIG. 14, reference numeral 76 denotes a signal 14 indicating the byte shift number in the shift number redundancy prediction result 104.
7 is input, and this is a circuit for encoding this into a 3-bit signal 160. Reference numeral 77 denotes a circuit for inputting a signal 148 indicating the bit shift number in the shift number redundancy prediction result 104 and encoding the signal 148 into a 3-bit signal 161. Signal 16
When the signal 161 is adjusted below 0, a value 162 in which the shift number redundant prediction signal 104 is a binary number is generated. 78
Is the exponent 11 after digit matching output from the digit matching circuit 15.
This circuit outputs a value 163 obtained by subtracting the binary value 162 of the shift number redundancy prediction signal from 5 and a value 164 obtained by adding 1 to the value. Finally, the exponent part selection circuit 18 will be described. This circuit selects the output signal 164 of the exponent part correction circuit when the shift error detection signal 106 is present or the signal R1 of the rounding result 115 is 1, and otherwise selects the signal 163 and outputs the exponent part 118 of the result. Exponent part selection circuit. Signal 1 generated by the process described above
18 and the signal 115, the floating-point adder result 1
19 is assumed.

【0042】図4の実施例における、シフト数冗長予測
の具体例を表3および表4に示す。いずれの表も、桁合
わせ回路15の出力する仮数部113から114を減算
した場合に、正規化シフト回路12の結果105が生成
されるまでの主要信号を示している。表3は、シフト数
冗長予測が正しい例で、加減算回路10の結果信号10
3の最上位1が小数点第1桁目にあり、シフト数冗長予
測信号147,148の示す値は1(0バイト,1ビッ
ト)となっている。従って、正規化シフト結果105は
正規化数になっている。一方表4は、シフト数冗長予測
が誤る例で、加減算回路10の結果信号103の最上位
1が整数部第1桁目にあり、シフト数冗長予測信号14
7,148の示す値は1(0バイト,1ビット)となっ
ている。従って、正規化シフト結果105は正規化数と
はならない。
Tables 3 and 4 show specific examples of the shift number redundancy prediction in the embodiment of FIG. Both tables show main signals until the result 105 of the normalized shift circuit 12 is generated when the mantissa part 113 output from the digit matching circuit 15 is subtracted from 114. Table 3 shows an example in which the shift number redundancy prediction is correct.
The most significant 1 of 3 is at the first digit of the decimal point, and the value indicated by the shift number redundant prediction signal 147, 148 is 1 (0 byte, 1 bit). Therefore, the normalized shift result 105 is a normalized number. On the other hand, Table 4 shows an example in which the shift number redundancy prediction is erroneous, and the most significant 1 of the result signal 103 of the addition / subtraction circuit 10 is in the first digit of the integer part,
The value indicated by 7,148 is 1 (0 byte, 1 bit). Therefore, the normalized shift result 105 does not become a normalized number.

【0043】[0043]

【表3】 [Table 3]

【0044】[0044]

【表4】 [Table 4]

【0045】図15には、本発明を用いた別の実施例で
ある浮動小数点積和演算器のブロック図を示す。この装
置は、3入力オペランド170,171,172をオペ
レーションの指示173に従い、オペランド170と1
71の積にオペランド172を加算もしくは減算し、正
規化および丸めを施して結果119を生成する。図4の
実施例装置と異なる点は、桁合わせ回路15が積和演算
回路80に置き換えられている点である。積和演算回路
80の出力する2つの仮数部174,175は、加減算
回路10にて加算または減算が行われ、174冗長シフ
ト数予測回路11にて正規化シフト数の予測が行われ
る。
FIG. 15 is a block diagram showing a floating-point multiply-accumulate unit according to another embodiment of the present invention. This device assigns three input operands 170, 171, and 172 to operands 170 and 171 in accordance with operation instruction 173.
An operand 172 is added or subtracted from the product of 71, and normalization and rounding are performed to generate a result 119. 4 in that the digit matching circuit 15 is replaced with a product-sum operation circuit 80. The two mantissa parts 174 and 175 output from the product-sum operation circuit 80 are added or subtracted by the addition / subtraction circuit 10, and the normalized shift number is predicted by the 174 redundant shift number prediction circuit 11.

【0046】[0046]

【発明の効果】本発明の効果を図17および図18をを
用いて説明する。
The effects of the present invention will be described with reference to FIGS.

【0047】図17は、図4の実施例装置と図16の従
来装置について、演算時間を決定する要因であるクリテ
ィカルパスの比較を行った図である。同図(a)は、従
来装置のクリティカルパスを示す。図16において、桁
合わせ回路15の出力信号113をパスの始点、正規化
シフト回路12の出力信号105をパスの終点とした。
図17(b)は、図4の実施例装値のクリティカルパス
を示す。図4において、桁合わせ回路15の出力信号1
13をパスの始点、正規化シフト補正回路14の出力信
号107をパスの終点とした。図17(a)では、加減
算,シフト数計算,正規化シフトが逐次処理となってい
るのに対し、同図(b)では、加減算とシフト数計算が
並列処理となって論理段数が大きく減少している。正規
化シフトの後に、シフト誤り検出と正規化シフト補正と
いう新たな処理が必要になるものの、クリティカルパス
全体としては高速化されている。
FIG. 17 shows a comparison of the critical path, which is a factor for determining the operation time, between the embodiment apparatus of FIG. 4 and the conventional apparatus of FIG. FIG. 1A shows a critical path of the conventional device. In FIG. 16, the output signal 113 of the digit matching circuit 15 is the start point of the path, and the output signal 105 of the normalization shift circuit 12 is the end point of the path.
FIG. 17B shows a critical path of the set value of the embodiment in FIG. In FIG. 4, the output signal 1 of the digit matching circuit 15
13 is the start point of the path, and the output signal 107 of the normalized shift correction circuit 14 is the end point of the path. In FIG. 17A, addition / subtraction, calculation of the number of shifts, and normalized shift are performed sequentially, whereas in FIG. 17B, addition / subtraction and calculation of the number of shifts are performed in parallel, and the number of logic stages is greatly reduced. are doing. After the normalized shift, new processing of shift error detection and normalized shift correction is required, but the speed of the entire critical path is increased.

【0048】図18は、図4の実施例と図16の従来装
置について、演算時間の比較を行った図である。横軸
は、演算時間を表す。同図(b)からわかるように、シ
フト数計算が加減算と同時に行えるようになったため、
正規化に要する時間が従来装置の半分以下になってい
る。加減算と正規化の処理で比較すると従来に比べ30
%以上、浮動小数点加算の処理全体で比較すると15%
以上の高速化の効果が得られている。
FIG. 18 is a diagram comparing the operation time of the embodiment of FIG. 4 and the conventional device of FIG. The horizontal axis represents the operation time. As can be seen from FIG. 14B, the shift number can be calculated simultaneously with addition and subtraction.
The time required for normalization is less than half that of the conventional device. The comparison between the addition and subtraction and the normalization processing is 30
% Or more, 15% when compared in the whole floating point addition processing
The above speeding-up effect is obtained.

【0049】また、本発明を実施するにあたっては、従
来装置に比べ、シフト数冗長予測回路中の連続0検出
と、正規化シフト補正回路に要する論理回路が新たなハ
ードウエアとして必要となるが、これらに必要なゲート
数は、浮動小数点加算器全体の1〜2%程度であり、ゲ
ート数の増加も少なく抑えることができる。
Further, in implementing the present invention, a logic circuit required for a continuous zero detection in the shift number redundancy prediction circuit and a normalization shift correction circuit is required as new hardware as compared with the conventional device. The number of gates required for these is about 1 to 2% of the entire floating point adder, and an increase in the number of gates can be suppressed.

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

【図1】本発明の特徴を最もよく表す正規化装置のブロ
ック図である。
FIG. 1 is a block diagram of a normalization device that best illustrates the features of the present invention.

【図2】本発明を用いた計算機システムの一例である。FIG. 2 is an example of a computer system using the present invention.

【図3】図2のプロセッサ21のブロック図で、本発明
を適用したプロセッサの一例である。
FIG. 3 is a block diagram of a processor 21 in FIG. 2, which is an example of a processor to which the present invention is applied;

【図4】本発明の実施例の一つである浮動小数点加算器
のブロック図である。
FIG. 4 is a block diagram of a floating-point adder according to an embodiment of the present invention.

【図5】浮動小数点数の表現方法の一例である。FIG. 5 is an example of a method of expressing a floating-point number.

【図6】図4の加減算回路10の詳細ブロック図であ
る。
FIG. 6 is a detailed block diagram of the addition / subtraction circuit 10 of FIG. 4;

【図7】図4のシフト数冗長予測回路の詳細ブロック図
である。
FIG. 7 is a detailed block diagram of a shift number redundancy prediction circuit in FIG. 4;

【図8】図7の連続0検出回路62の詳細論理図であ
る。
8 is a detailed logic diagram of the continuous 0 detection circuit 62 of FIG.

【図9】図7の優先順位判定回路63の詳細論理図であ
る。
FIG. 9 is a detailed logic diagram of the priority determination circuit 63 of FIG. 7;

【図10】図7のバイトシフト数計算回路64の詳細論
理図である。
FIG. 10 is a detailed logic diagram of the byte shift number calculation circuit 64 of FIG. 7;

【図11】図4の正規化シフト回路12のブロック図で
ある。
11 is a block diagram of the normalization shift circuit 12 of FIG.

【図12】図4の正規化シフト補正回路14のブロック
図である。
FIG. 12 is a block diagram of the normalized shift correction circuit 14 of FIG.

【図13】図4の丸め回路16のブロック図である。FIG. 13 is a block diagram of the rounding circuit 16 of FIG. 4;

【図14】図4の指数部補正回路17のブロック図であ
る。
14 is a block diagram of the exponent part correction circuit 17 of FIG.

【図15】本発明の実施例の一つである浮動小数点積和
演算器のブロック図である。
FIG. 15 is a block diagram of a floating-point multiply-accumulate unit as one embodiment of the present invention.

【図16】従来の浮動小数点加算器のブロック図であ
る。
FIG. 16 is a block diagram of a conventional floating point adder.

【図17】浮動小数点加算器のクリティカルパスを従来
装置と本発明の実施例装置とで比較した図である。
FIG. 17 is a diagram comparing the critical path of the floating-point adder between the conventional apparatus and the embodiment apparatus of the present invention.

【図18】浮動小数点加算器の演算時間を従来装置と本
発明の実施例装置とで比較した図である。
FIG. 18 is a diagram comparing the operation time of the floating-point adder between the conventional device and the device according to the embodiment of the present invention.

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

10…加減算回路、11…シフト数冗長予測回路、12
…正規化シフト回路、13…シフト誤り検出回路、14
…正規化シフト補正回路、15…桁合わせ回路、16…
丸め回路、17…正規化シフトに伴う指数部補正回路、
18…指数部選択回路。
10: Addition / subtraction circuit, 11: Shift number redundancy prediction circuit, 12
... Normal shift circuit, 13 ... Shift error detection circuit, 14
... Normalized shift correction circuit, 15 ... digit alignment circuit, 16 ...
Rounding circuit, 17: exponent correction circuit accompanying the normalized shift,
18. Exponent part selection circuit.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 堀田 多加志 茨城県日立市大みか町七丁目1番1号 株式会社 日立製作所 日立研究所内 (72)発明者 澤本 英雄 神奈川県秦野市堀山下1番地 株式会社 日立製作所 汎用コンピュータ事業部 内 (72)発明者 西山 隆裕 神奈川県秦野市堀山下1番地 株式会社 日立製作所 汎用コンピュータ事業部 内 (56)参考文献 特開 平6−75752(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/50 G06F 5/01 G06F 7/00 G06F 17/10 ──────────────────────────────────────────────────続 き Continued on the front page (72) Inventor Takashi Hotta 7-1-1, Omika-cho, Hitachi City, Ibaraki Prefecture Within Hitachi Research Laboratory, Hitachi, Ltd. (72) Inventor Hideo Sawamoto 1- 1 Horiyamashita, Hadano City, Kanagawa Prefecture, Ltd. (72) Inventor Takahiro Nishiyama 1st Horiyamashita, Hadano-shi, Kanagawa Hitachi Computer, Inc. General-purpose Computer Division (56) References JP-A-6-75752 (JP, A) (58) Field surveyed (Int.Cl. 7 , DB name) G06F 7/50 G06F 5/01 G06F 7/00 G06F 17/10

Claims (3)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】少なくとも1つはその最上位桁を1とする
正規化表現された2つの正の2進数オペランドを入力
し、加算もしくは減算オペレーションの指定によって、
前記2つのオペランドを加算、または減算する加減算手
段と、 前記加減算の結果最も上位に来る1の桁が前記正規化表
現の最上位桁に来るように加減算結果全体をシフトする
正規化シフト手段と、 前記加減算の結果最も上位に来る1の桁から前記正規化
表現の最上位桁までの桁数を、前記2つの2進数オペラ
ンドを用いてn桁の誤差内で予測するシフト数冗長予測
手段と、 前記正規化シフトの結果最も上位に来る1の桁が前記正
規化表現の最上位桁とずれた場合に、この差を検出する
シフト誤り検出手段と、 0からnの任意の数でシフトを行う正規化シフト補正手
段とを有し、前記シフト数冗長予測手段は、加算オペレーションの場
合には2つの2進数オペランドを、減算オペレーション
の場合には一方のオペランドは1の補数を用いて、これ
らを桁ごとに排他的論理和(XOR)信号と1桁下位の
論理和(OR)信号の排他的論理和をとり、この信号を
最上位桁から見て最初に1となる桁までの桁数をシフト
数とすることにより、これが正確なシフト数に対し1桁
の誤差内で算出され、シフト誤り補正は、0または1桁
のシフトを行い、 前記加減算手段による加算結果は、前記シフト数冗長予
測手段の予測結果を用いて前記正規化シフト手段により
シフトされ、このシフト結果は前記シフト誤り検出結果
を用いて前記正規化シフト補正手段によりシフトされ、
正規化結果として出力されることを特徴とする正規化装
置。
At least one input is a normalized binary expression of two positive binary operands whose most significant digit is 1, and by specifying an addition or subtraction operation,
Addition / subtraction means for adding or subtracting the two operands; normalization shift means for shifting the entire addition / subtraction result so that the most significant digit of the addition / subtraction result is the most significant digit of the normalized expression; Shift number redundant prediction means for predicting the number of digits from the most significant digit of the addition / subtraction to the most significant digit of the normalized expression within an error of n digits using the two binary operands; A shift error detecting means for detecting a difference between the most significant digit of the normalized expression and the most significant digit of the normalized expression as a result of the normalized shift; and performing a shift by an arbitrary number from 0 to n. Normalization shift correction means, wherein the shift number redundancy prediction means
Subtraction operation between two binary operands if
, One operand uses one's complement,
And an exclusive OR (XOR) signal for each digit and
Exclusive OR of the logical sum (OR) signal, and this signal is
Shifts the number of digits up to the first digit when viewed from the most significant digit
By making it a number, this is one digit for the exact shift number.
Is calculated within the error of, and the shift error correction is 0 or 1 digit
And the addition result by the addition / subtraction means is shifted by the normalization shift means using the prediction result of the shift number redundancy prediction means, and the shift result is calculated by the normalization shift using the shift error detection result. Shifted by the correction means,
A normalization device output as a normalization result.
【請求項2】正規化表現された2つの浮動小数点オペラ
ンドを入力し、両者の指数部の比較と差計算を行い、指
数部の小さいオペランドの仮数部を指数部の差だけ下位
方向にシフトする桁合わせ手段と、 加算もしくは減算のオペレーションの指定と、前記入力
オペランドの符号とによって、桁合わせ後の2つの仮数
部を加算、または減算する加減算手段と、 前記加減算の結果最も上位に来る1の桁が前記正規化表
現の最上位桁に来るように加減算結果全体をシフトする
正規化シフト手段と、 前記正規化シフトの結果が前記正規化表現における所定
の桁数を越える場合に、これを丸めモードに従って桁数
を縮める丸め手段と、 前記加減算の結果最も上位に来る1の桁から前記正規化
表現の最上位桁までの桁数を、前記桁合わせ後の2つの
仮数部を用いてn桁の誤差内で予測するシフト数冗長予
測手段と、 前記正規化シフトの結果最も上位に来る1の桁が前記正
規化表現の最上位桁とずれた場合に、この差を検出する
シフト誤り検出手段と、 0からnの任意の数でシフトを行う正規化シフト補正手
段とを有し、前記シフト数冗長予測手段は、加算オペレーションの場
合には桁合わせ後の2つの仮数部を、減算オペレーショ
ンの場合には桁合わせ後の仮数部の一方は1の補数を用
いて、これらを桁ごとに排他的論理和(XOR)信号と
1桁下位の論理和(OR)信号の排他的論理和をとり、
この信号を最上位桁から見て最初に1となる桁までの桁
数をシフト数とすることにより、これが正確なシフト数
に対し1桁の誤差内で算出され、シフト誤り補正は、0
または1桁のシフトを行い、 前記加減算手段による加算結果は、前記シフト数冗長予
測手段の予測結果を用いて前記正規化シフト手段により
シフトされ、このシフト結果は前記シフト誤り検出結果
を用いて前記正規化シフト補正手段によりシフトされ、
正規化結果として出力されることを特徴とする正規化装
置。
2. An input of two normalized floating-point operands, comparison of the exponent parts of the two operands and calculation of the difference, and shifts the mantissa part of the operand having a small exponent part downward by the difference of the exponent part. Digit alignment means, addition or subtraction means for adding or subtracting two mantissa parts after digit alignment according to designation of addition or subtraction operation and the sign of the input operand; A normalizing shift means for shifting the entire result of addition / subtraction so that a digit comes to the most significant digit of the normalized expression; and, when the result of the normalized shift exceeds a predetermined number of digits in the normalized expression, rounds the result. A rounding means for reducing the number of digits in accordance with a mode; and two mantissas after the digit matching, the number of digits from the most significant digit of the result of the addition / subtraction to the most significant digit of the normalized expression. And a shift number redundant predicting means for predicting within an error of n digits by using a unit, wherein when the digit of the highest order as a result of the normalized shift is shifted from the most significant digit of the normalized expression, a shift error detecting means for detecting, and a normalization shift correction means for performing a shift from 0 in any number of n, the shift number of redundant predicting means, field addition operations
If the two mantissas after digit alignment are
In the case of ン, one of the mantissa parts after digit alignment uses 1's complement.
And an exclusive OR (XOR) signal for each digit.
Take the exclusive OR of the logical OR (OR) signal one digit lower,
Digits up to the first digit when this signal is viewed from the most significant digit
By making the number a shift number, this is the exact shift number
Is calculated within one digit error, and the shift error correction is 0
Alternatively, a one-digit shift is performed, and the addition result obtained by the addition / subtraction means is shifted by the normalization shift means using the prediction result of the shift number redundancy prediction means, and the shift result is obtained by using the shift error detection result. Shifted by the normalized shift correction means,
A normalization device output as a normalization result.
【請求項3】正規化表現された3つの浮動小数点オペラ
ンドを入力し、このうち2つのオペランドの積を計算し
た後、3つ目のオペランドと指数部の比較と差計算を行
い、指数部の小さい方の仮数部を指数部の差だけ下位方
向にシフトする積和演算手段と、 加算もしくは減算のオペレーションの指定と、前記入力
オペランドの符号とによって、前記積和演算後の2つの
仮数部を加算、または減算する加減算手段と、 前記加減算の結果最も上位に来る1の桁が前記正規化表
現の最上位桁に来るように加減算結果全体をシフトする
正規化シフト手段と、 前記正規化シフトの結果が前記正規化表現における所定
の桁数を越える場合に、これを丸めモードに従って桁数
を縮める丸め手段と、 前記加減算の結果最も上位に来る1の桁から前記正規化
表現の最上位桁までの桁数を、前記積和演算後の2つの
仮数部を用いてn桁の誤差内で予測するシフト数冗長予
測手段と、 前記正規化シフトの結果最も上位に来る1の桁が前記正
規化表現の最上位桁とずれた場合に、この差を検出する
シフト誤り検出手段と、 0からnの任意の数でシフトを行う正規化シフト補正手
段とを有し、前記シフト数冗長予測手段は、加算オペレーションの場
合には積和演算後の2つの仮数部を、減算オペレーショ
ンの場合には積和演算後の仮数部の一方は1の補数を用
いて、これらを桁ごとに排他的論理和(XOR)信号と
1桁下位の論理和(OR)信号の排他的論理和をとり、
この信号を最上位桁から見て最初に1となる桁までの桁
数をシフト数とすることにより、これが正確なシフト数
に対し1桁の誤差内で算出され、シフト誤り補正は、0
または1桁のシフトを行い、 前記加減算手段による加算結果は、前記シフト数冗長予
測手段の予測結果を用いて前記正規化シフト手段により
シフトされ、このシフト結果は前記シフト誤り検出結果
を用いて前記正規化シフト補正手段によりシフトされ、
正規化結果として出力されることを特徴とする正規化装
置。
3. The method receives three floating-point operands represented by normalization, calculates the product of two operands, compares the third operand with the exponent part, and calculates the difference. The two mantissa parts after the multiply-accumulate operation are determined by the product-sum operation means for shifting the smaller mantissa part downward by the difference of the exponent part, by specifying the addition or subtraction operation, and by the sign of the input operand. Addition / subtraction means for adding or subtracting; normalization shift means for shifting the entire addition / subtraction result such that the one digit at the highest position of the addition / subtraction comes to the highest digit of the normalized expression; When the result exceeds a predetermined number of digits in the normalized expression, a rounding means for reducing the number of digits according to a rounding mode; and A shift number redundant predicting means for predicting the number of digits up to the current most significant digit within an error of n digits using the two mantissa parts after the product-sum operation; If the digit is shifted with the most significant digit of the normalized expression has a shift error detecting means for detecting the difference, and a normalization shift correction means for performing a shift from 0 in any number of n, the The shift number redundancy prediction means is used for the addition operation.
In this case, the two mantissa parts after the product-sum operation are subtracted
In the case of one, one of the mantissa parts after the product-sum operation uses one's complement.
And an exclusive OR (XOR) signal for each digit.
Take the exclusive OR of the logical OR (OR) signal one digit lower,
Digits up to the first digit when this signal is viewed from the most significant digit
By making the number a shift number, this is the exact shift number
Is calculated within one digit error, and the shift error correction is 0
Alternatively, a one-digit shift is performed, and the addition result obtained by the addition / subtraction means is shifted by the normalization shift means using the prediction result of the shift number redundancy prediction means, and the shift result is obtained by using the shift error detection result. Shifted by the normalized shift correction means,
A normalization device output as a normalization result.
JP22295094A 1994-09-19 1994-09-19 Normalizer using redundant shift number prediction and shift error correction Expired - Fee Related JP3257278B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP22295094A JP3257278B2 (en) 1994-09-19 1994-09-19 Normalizer using redundant shift number prediction and shift error correction
US08/530,471 US5684729A (en) 1994-09-19 1995-09-19 Floating-point addition/substraction processing apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22295094A JP3257278B2 (en) 1994-09-19 1994-09-19 Normalizer using redundant shift number prediction and shift error correction

Publications (2)

Publication Number Publication Date
JPH0887399A JPH0887399A (en) 1996-04-02
JP3257278B2 true JP3257278B2 (en) 2002-02-18

Family

ID=16790423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22295094A Expired - Fee Related JP3257278B2 (en) 1994-09-19 1994-09-19 Normalizer using redundant shift number prediction and shift error correction

Country Status (1)

Country Link
JP (1) JP3257278B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8667042B2 (en) * 2010-09-24 2014-03-04 Intel Corporation Functional unit for vector integer multiply add instruction
JP6871513B2 (en) 2017-05-22 2021-05-12 富士通株式会社 Arithmetic unit and control method of arithmetic unit
CN117420981A (en) * 2023-10-24 2024-01-19 上海合芯数字科技有限公司 Binary basic operation error detection method and device, storage medium and terminal

Also Published As

Publication number Publication date
JPH0887399A (en) 1996-04-02

Similar Documents

Publication Publication Date Title
US8694572B2 (en) Decimal floating-point fused multiply-add unit
US5010508A (en) Prenormalization for a floating-point adder
JP3178746B2 (en) Format converter for floating point numbers
JPH0544046B2 (en)
US8214416B2 (en) Floating-point addition acceleration
CN116643718B (en) Floating point fusion multiply-add device and method of pipeline structure and processor
KR100465371B1 (en) apparatus and method for design of the floating point ALU performing addition and round operations in parallel
JP3313560B2 (en) Floating point processor
US20070050434A1 (en) Data processing apparatus and method for normalizing a data value
US5408426A (en) Arithmetic unit capable of performing concurrent operations for high speed operation
US7290023B2 (en) High performance implementation of exponent adjustment in a floating point design
US7401107B2 (en) Data processing apparatus and method for converting a fixed point number to a floating point number
JP3257278B2 (en) Normalizer using redundant shift number prediction and shift error correction
Tsen et al. A combined decimal and binary floating-point multiplier
KR102459011B1 (en) Leading zero anticipation
US11366638B1 (en) Floating point multiply-add, accumulate unit with combined alignment circuits
US20190121615A1 (en) Apparatus and method for subtracting significand values of floating-point operands
JPH09244874A (en) Method for predicting position of most significant digit bit
EP1282034A2 (en) Elimination of rounding step in the short path of a floating point adder
US20140059104A1 (en) Arithmetic circuit for calculating correction value
JP3233432B2 (en) Multiplier
US11983509B2 (en) Floating-point accumulator
JPH08202530A (en) Processor and method for floating decimal point addition and subtraction having before-normalization rounding means
Shapran et al. DIVISION USING THE BASE RADIX16 NUMBER SYSTEM TO FORM FRACTION DIGITS
JP2003029960A (en) Elimination of rounding step in short path of floating point adder

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071207

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081207

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081207

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091207

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees