JPH0887399A - 冗長なシフト数予測とシフト誤り補正を用いた正規化装置 - Google Patents

冗長なシフト数予測とシフト誤り補正を用いた正規化装置

Info

Publication number
JPH0887399A
JPH0887399A JP6222950A JP22295094A JPH0887399A JP H0887399 A JPH0887399 A JP H0887399A JP 6222950 A JP6222950 A JP 6222950A JP 22295094 A JP22295094 A JP 22295094A JP H0887399 A JPH0887399 A JP H0887399A
Authority
JP
Japan
Prior art keywords
shift
digit
result
normalization
addition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6222950A
Other languages
English (en)
Other versions
JP3257278B2 (ja
Inventor
Hiromichi Yamada
弘道 山田
Fumio Murabayashi
文夫 村林
Tatsumi Yamauchi
辰美 山内
Takashi Hotta
多加志 堀田
Hideo Sawamoto
英雄 澤本
Takahiro Nishiyama
隆裕 西山
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/ja
Priority to US08/530,471 priority patent/US5684729A/en
Publication of JPH0887399A publication Critical patent/JPH0887399A/ja
Application granted granted Critical
Publication of JP3257278B2 publication Critical patent/JP3257278B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】浮動小数点演算の主要な処理の一つである正規
化処理に要する時間を短縮し、高速な演算の実行を可能
とすること。 【構成】加減算の入力データを用いて、加減算結果を正
規化するために必要なシフト数をnビットの誤差範囲内
で高速に予測する手段11と、この予測したシフト数と
正しいシフト数の差を検出する手段13と、予測したシ
フト数で正規化を行った結果を0からnビットの任意に
シフトする手段を設ける。これによって、シフト数の予
測が誤った場合でも正しい正規化結果を得ることができ
る。 【効果】加減算回路10とシフト数冗長予測回路11が
同時に動作可能となるため、浮動小数点演算全体の処理
時間が短縮され、高速な演算が可能になる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は正規化処理を必要とする
浮動小数点数の加算,積和演算を行う浮動小数点演算装
置に関する。
【0002】
【従来の技術】浮動小数点数を計算機上で表現する方法
としては、IEEE−754 で定められた標準形式が一般に用
いられる。符号s,指数部e,小数部fからなるデータ
で表現された浮動小数点数は、以下の式で表される数値
をとる。
【0003】 (−1)^s×2^(e−b)×(1.f) …(1) ここで、bは指数バイアスと呼ばれ、指数部eの最大値
の約半分の値である。また、小数部fには整数の1が付
加され、整数部と小数部を合わせて仮数部と呼ぶ。この
ようにして表された数値を正規化数と呼んでいる。
【0004】次に、浮動小数点演算処理について説明す
る。簡単のため符号1ビット,指数部3ビット,小数部
4ビットとして、式(2),(3)で表される2つの浮動
小数点数の減算を考える。
【0005】 (−1)^0×2^(4−b)×(1.0011) …(2) (−1)^0×2^(2−b)×(1.0001) …(3) まず、減算を行う前に2つの数値の指数部を大きい方に
一致させる。このとき指数部の小さい方の仮数部を指数
部の差分だけ下位方向にシフトする。この処理を桁合わ
せと呼び、式(3)を式(4)へ変換する。
【0006】 (−1)^0×2^(4−b)×(0.010001) …(4) 次に、式(2)の仮数部から式(4)の仮数部を減算す
る。その結果を式(5)に示す。
【0007】 (−1)^0×2^(4−b)×(0.111011) …(5) 式(5)の仮数部は、整数部が0であり正規化数とはな
らない。これを正規化数にするために、まず仮数部の最
上位1(最上位桁から見て最初に1となる桁)を見つ
け、この桁が整数部にくるように仮数部全体をシフトす
る。次に、指数部から仮数部をシフトした数を減ずる。
この処理を正規化と呼び、式(5)を式(6)に変換す
る。
【0008】 (−1)^0×2^(3−b)×(1.11011) …(6) 式(6)の小数部は5桁であるため、これをフォーマッ
トの桁数(4桁)に縮めるための演算を行う。これを丸
め処理と呼ぶ。式(6)を丸めた例を式(7)に示す。
【0009】 (−1)^0×2^(3−b)×(1.1110) …(7) 以上が浮動小数点演算処理の一例である。この様な浮動
小数点数の演算を行う方法の従来例としては、特開平2
−232723 号に述べられている方法がある。この方法を
用いた演算装置を図16を用いて説明する。
【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が生成される。
【0011】
【発明が解決しようとする課題】しかしながら、従来の
演算装置では加減算結果を用いて正規化シフト数を計算
していたため、正規化処理に時間がかかり高速化の妨げ
となっていた。
【0012】本発明の目的は、正規化処理をより高速に
行うことのできる演算方式を提供することにある。ま
た、本発明の他の目的は、正規化処理を高速化すること
により、浮動小数点数の加減算,積和演算をより高速に
行うことのできる浮動小数点演算装置を提供することに
ある。
【0013】
【課題を解決するための手段】上記目的を達成するため
に本発明の浮動小数点演算装置では、正規化シフト数を
加減算の入力データを用いてnビットの誤差内で予測す
るシフト数冗長予測手段と、予測したシフト数と正確な
シフト数との差分を検出するシフト誤り検出手段と、予
測したシフト数を用いて正規化シフトした結果をシフト
誤りの数だけシフトするnビットシフタを備えている。
【0014】ここで、シフト数冗長予測手段に用いる演
算アルゴリズムについて説明する。本アルゴリズムは、
加減算処理に必要な長いビットにわたる桁上げ伝播およ
び論理段数を必要とせず、たかだか2ビット間の信号伝
播と論理段数2段で、加減算結果の最上位桁から連続す
る“0”を1ビットの誤差内で求めることができる。ま
ず、補数処理を施した後のデータを、A,Bとする。
【0015】 A=A[0]A[1]…A[n] …(8) B=B[0]B[1]…B[n] …(9) 次に、A,Bに式(10),(11)の2つの演算を施
す。
【0016】 X=A^B …(10) P=A||B …(11) ここで、“^”は、排他的論理和の演算子、“||”
は、論理和の演算子である。次に、X,Pに式(12)
の演算を施す。
【0017】 Z=X^(P<<1) …(12) ここで、“<<”は、シフト演算子で、“P<<1”
は、Pを左に1ビットシフトするという意味である。但
し、シフト前の最上位桁を越える桁は無視する。式(1
2)のZが、加算結果の最上位桁から連続する“0”を
表す。実際に、具体的な数値を用いて説明する。
【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”以外を正確に計算
することができるからである。これについて、証明を行
う。
【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)のよう
に変形される。
【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が予測可能なことが証
明された。
【0021】
【作用】上記のように、正規化シフト数を加減算の入力
データを用いてnビットの誤差内で予測することによ
り、正規化シフト数計算と加減算とが並列に実行可能に
なる。また、シフト誤り検出と正規化シフト補正によ
り、正しい正規化結果を生成可能になる。
【0022】
【実施例】図2は、本発明を用いた計算機システムの例
である。プロセッサ21,メモリ22,ハードディスク
23からなる計算機が複数台、総合ネットワーク20を
介して接続される。係る計算機システムにおいて、本発
明は数値計算処理を司るプロセッサ21に適用される。
【0023】図3は、プロセッサ21の例である。デー
タ及び命令を高速にアクセスできるように、データキャ
ッシュ30,命令キャッシュ33を内蔵する。仮想アド
レスから物理アドレスへのメモリアドレス変換は、デー
タTLB31と命令TLB32を用いて行う。この制御は
メモリ制御ユニット34が行う。整数演算は、汎用レジ
スタ35,ALU36,ALU37で行う。命令アドレ
スの計算は、アドレス加算器38を用いて行う。浮動小
数点演算は、浮動小数点レジスタ40,浮動小数点加算
器41,浮動小数点乗算器42,浮動小数点除算器43
で行う。これらの制御は命令制御ユニット39が行う。
科学技術計算やコンピュータ・グラフィックス等の計算
機利用分野では、非常に高い浮動小数点演算性能が必要
である。特に、浮動小数点加算は浮動小数点演算命令の
中でも使用頻度が高く、高速演算が可能な浮動小数点加
算器は重要である。本発明は、係る浮動小数点加算器4
1に適用される。
【0024】図4は、浮動小数点加算器41の実施例で
ある。図4において、10は加減算回路、11はシフト
数冗長予測回路、12は正規化シフト回路、13はシフ
ト誤り検出回路、14は正規化シフト補正回路、15は
桁合わせ回路、16は丸め回路、17は指数部補正回
路、18は指数部選択回路である。本実施例の演算装置
は、2つの入力オペランド(110,111)をオペレ
ーションの指示(112)に従い加算または減算し、正規
化および丸めの処理を行った結果(119)を出力す
る。
【0025】これより以降、IEEE−754 倍精度フォーマ
ットを例に説明を行うが、本発明の効果はこれに限られ
るわけではなく、単精度フォーマットや4倍精度フォー
マットにも、またIEEEフォーマット以外にも広く利
用可能である。
【0026】以下、本実施例について図表を用いて詳細
に説明する。
【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桁までに制限しても演算精度上何ら問題
ない。
【0028】
【表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として用いる。
【0030】
【表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が求まる。
【0032】次に、シフト数冗長予測回路11について
説明する。図7は、シフト数冗長予測回路11の一例で
ある。桁合わせ回路15の出力する仮数部fa(11
3),fb(114)および補数制御信号117,11
8を用いて、加減算回路10の出力103の最上位桁か
ら見て最初に1となる桁から整数部までの桁数を1ビッ
トの誤差内で予測する。
【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検出が可能であ
る。
【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は後の計算に用いられないため
である。
【0035】図10に、バイトシフト数計算回路64の
例を示す。優先順位判定回路63のうち、上位側6つが
出力するブロックOR信号(133〜138)がバイト
シフト数計算回路64に入力される。この回路は、最上
位に最も近い1の信号のみを1とし、それ以外を全て0
とするように動作する。信号133〜138が全て0の
場合には、最も下位の優先順位判定回路64のブロック
ORが1であるとみなす。このようにして生成された7
ビットの信号y0 y1…y6 がバイトシフト数を示す
信号147となる。
【0036】再び図7に戻って、ビットシフト数計算回
路65の説明を行う。7つの優先順位判定回路63が出
力するブロック内優先順位信号139〜146を、バイ
トシフト数147で選択し、ビットシフト数148とす
る。
【0037】以上のようにして求められたバイトシフト
数147およびビットシフト数148が、シフト数冗長予
測結果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)を生
成する。
【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)が得られる。
【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を
小数点のすぐ左に戻すためのシフトは必要ない。
【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とする。
【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は正規化数と
はならない。
【0043】
【表3】
【0044】
【表4】
【0045】図15には、本発明を用いた別の実施例で
ある浮動小数点積和演算器のブロック図を示す。この装
置は、3入力オペランド170,171,172をオペ
レーションの指示173に従い、オペランド170と1
71の積にオペランド172を加算もしくは減算し、正
規化および丸めを施して結果119を生成する。図4の
実施例装置と異なる点は、桁合わせ回路15が積和演算
回路80に置き換えられている点である。積和演算回路
80の出力する2つの仮数部174,175は、加減算
回路10にて加算または減算が行われ、174冗長シフ
ト数予測回路11にて正規化シフト数の予測が行われ
る。
【0046】
【発明の効果】本発明の効果を図17および図18をを
用いて説明する。
【0047】図17は、図4の実施例装置と図16の従
来装置について、演算時間を決定する要因であるクリテ
ィカルパスの比較を行った図である。同図(a)は、従
来装置のクリティカルパスを示す。図16において、桁
合わせ回路15の出力信号113をパスの始点、正規化
シフト回路12の出力信号105をパスの終点とした。
図17(b)は、図4の実施例装値のクリティカルパス
を示す。図4において、桁合わせ回路15の出力信号1
13をパスの始点、正規化シフト補正回路14の出力信
号107をパスの終点とした。図17(a)では、加減
算,シフト数計算,正規化シフトが逐次処理となってい
るのに対し、同図(b)では、加減算とシフト数計算が
並列処理となって論理段数が大きく減少している。正規
化シフトの後に、シフト誤り検出と正規化シフト補正と
いう新たな処理が必要になるものの、クリティカルパス
全体としては高速化されている。
【0048】図18は、図4の実施例と図16の従来装
置について、演算時間の比較を行った図である。横軸
は、演算時間を表す。同図(b)からわかるように、シ
フト数計算が加減算と同時に行えるようになったため、
正規化に要する時間が従来装置の半分以下になってい
る。加減算と正規化の処理で比較すると従来に比べ30
%以上、浮動小数点加算の処理全体で比較すると15%
以上の高速化の効果が得られている。
【0049】また、本発明を実施するにあたっては、従
来装置に比べ、シフト数冗長予測回路中の連続0検出
と、正規化シフト補正回路に要する論理回路が新たなハ
ードウエアとして必要となるが、これらに必要なゲート
数は、浮動小数点加算器全体の1〜2%程度であり、ゲ
ート数の増加も少なく抑えることができる。
【図面の簡単な説明】
【図1】本発明の特徴を最もよく表す正規化装置のブロ
ック図である。
【図2】本発明を用いた計算機システムの一例である。
【図3】図2のプロセッサ21のブロック図で、本発明
を適用したプロセッサの一例である。
【図4】本発明の実施例の一つである浮動小数点加算器
のブロック図である。
【図5】浮動小数点数の表現方法の一例である。
【図6】図4の加減算回路10の詳細ブロック図であ
る。
【図7】図4のシフト数冗長予測回路の詳細ブロック図
である。
【図8】図7の連続0検出回路62の詳細論理図であ
る。
【図9】図7の優先順位判定回路63の詳細論理図であ
る。
【図10】図7のバイトシフト数計算回路64の詳細論
理図である。
【図11】図4の正規化シフト回路12のブロック図で
ある。
【図12】図4の正規化シフト補正回路14のブロック
図である。
【図13】図4の丸め回路16のブロック図である。
【図14】図4の指数部補正回路17のブロック図であ
る。
【図15】本発明の実施例の一つである浮動小数点積和
演算器のブロック図である。
【図16】従来の浮動小数点加算器のブロック図であ
る。
【図17】浮動小数点加算器のクリティカルパスを従来
装置と本発明の実施例装置とで比較した図である。
【図18】浮動小数点加算器の演算時間を従来装置と本
発明の実施例装置とで比較した図である。
【符号の説明】
10…加減算回路、11…シフト数冗長予測回路、12
…正規化シフト回路、13…シフト誤り検出回路、14
…正規化シフト補正回路、15…桁合わせ回路、16…
丸め回路、17…正規化シフトに伴う指数部補正回路、
18…指数部選択回路。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G06F 17/10 (72)発明者 堀田 多加志 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 澤本 英雄 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内 (72)発明者 西山 隆裕 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】少なくとも1つはその最上位桁を1とする
    正規化表現された2つの正の2進数オペランドを入力
    し、加算もしくは減算オペレーションの指定によって、
    前記2つのオペランドを加算、または減算する加減算手
    段と、 前記加減算の結果最も上位に来る1の桁が前記正規化表
    現の最上位桁に来るように加減算結果全体をシフトする
    正規化シフト手段と、 前記加減算の結果最も上位に来る1の桁から前記正規化
    表現の最上位桁までの桁数を、前記2つの2進数オペラ
    ンドを用いてn桁の誤差内で予測するシフト数冗長予測
    手段と、 前記正規化シフトの結果最も上位に来る1の桁が前記正
    規化表現の最上位桁とずれた場合に、この差を検出する
    シフト誤り検出手段と、 0からnの任意の数でシフトを行う正規化シフト補正手
    段とを有し、 前記加減算手段による加算結果は、前記シフト数冗長予
    測手段の予測結果を用いて前記正規化シフト手段により
    シフトされ、このシフト結果は前記シフト誤り検出結果
    を用いて前記正規化シフト補正手段によりシフトされ、
    正規化結果として出力されることを特徴とする正規化装
    置。
  2. 【請求項2】請求項1の正規化装置において、前記シフ
    ト数冗長予測手段は1桁の誤差内で予測を行い、シフト
    誤り補正は、0または1桁のシフトを行うことを特徴と
    する正規化装置。
  3. 【請求項3】正規化表現された2つの浮動小数点オペラ
    ンドを入力し、両者の指数部の比較と差計算を行い、指
    数部の小さいオペランドの仮数部を指数部の差だけ下位
    方向にシフトする桁合わせ手段と、 加算もしくは減算のオペレーションの指定と、前記入力
    オペランドの符号とによって、桁合わせ後の2つの仮数
    部を加算、または減算する加減算手段と、 前記加減算の結果最も上位に来る1の桁が前記正規化表
    現の最上位桁に来るように加減算結果全体をシフトする
    正規化シフト手段と、 前記正規化シフトの結果が前記正規化表現における所定
    の桁数を越える場合に、これを丸めモードに従って桁数
    を縮める丸め手段と、 前記加減算の結果最も上位に来る1の桁から前記正規化
    表現の最上位桁までの桁数を、前記桁合わせ後の2つの
    仮数部を用いてn桁の誤差内で予測するシフト数冗長予
    測手段と、 前記正規化シフトの結果最も上位に来る1の桁が前記正
    規化表現の最上位桁とずれた場合に、この差を検出する
    シフト誤り検出手段と、 0からnの任意の数でシフトを行う正規化シフト補正手
    段とを有し、 前記加減算手段による加算結果は、前記シフト数冗長予
    測手段の予測結果を用いて前記正規化シフト手段により
    シフトされ、このシフト結果は前記シフト誤り検出結果
    を用いて前記正規化シフト補正手段によりシフトされ、
    正規化結果として出力されることを特徴とする正規化装
    置。
  4. 【請求項4】請求項3の浮動小数点演算装置において、
    前記シフト数冗長予測手段は1桁の誤差内で予測を行
    い、シフト誤り補正は、0または1桁のシフトを行うこ
    とを特徴とする浮動小数点演算装置。
  5. 【請求項5】正規化表現された3つの浮動小数点オペラ
    ンドを入力し、このうち2つのオペランドの積を計算し
    た後、3つ目のオペランドと指数部の比較と差計算を行
    い、指数部の小さい方の仮数部を指数部の差だけ下位方
    向にシフトする積和演算手段と、 加算もしくは減算のオペレーションの指定と、前記入力
    オペランドの符号とによって、前記積和演算後の2つの
    仮数部を加算、または減算する加減算手段と、 前記加減算の結果最も上位に来る1の桁が前記正規化表
    現の最上位桁に来るように加減算結果全体をシフトする
    正規化シフト手段と、 前記正規化シフトの結果が前記正規化表現における所定
    の桁数を越える場合に、これを丸めモードに従って桁数
    を縮める丸め手段と、 前記加減算の結果最も上位に来る1の桁から前記正規化
    表現の最上位桁までの桁数を、前記積和演算後の2つの
    仮数部を用いてn桁の誤差内で予測するシフト数冗長予
    測手段と、 前記正規化シフトの結果最も上位に来る1の桁が前記正
    規化表現の最上位桁とずれた場合に、この差を検出する
    シフト誤り検出手段と、 0からnの任意の数でシフトを行う正規化シフト補正手
    段とを有し、 前記加減算手段による加算結果は、前記シフト数冗長予
    測手段の予測結果を用いて前記正規化シフト手段により
    シフトされ、このシフト結果は前記シフト誤り検出結果
    を用いて前記正規化シフト補正手段によりシフトされ、
    正規化結果として出力されることを特徴とする正規化装
    置。
  6. 【請求項6】請求項5の浮動小数点演算装置において、
    前記シフト数冗長予測手段は1桁の誤差内で予測を行
    い、シフト誤り補正は、0または1桁のシフトを行うこ
    とを特徴とする浮動小数点演算装置。
  7. 【請求項7】請求項1の正規化装置において、前記シフ
    ト数冗長予測手段は、加算オペレーションの場合には2
    つの2進数オペランドを、減算オペレーションの場合に
    は一方のオペランドは1の補数を用いて、これらを桁ご
    とに排他的論理和(XOR)信号と1桁下位の論理和
    (OR)信号の排他的論理和をとり、この信号を最上位
    桁から見て最初に1となる桁までの桁数をシフト数とす
    ることにより、これが正確なシフト数に対し1桁の誤差
    内で算出され、シフト誤り補正は、0または1桁のシフ
    トを行うことを特徴とする正規化装置。
  8. 【請求項8】請求項3の浮動小数点演算装置において、
    前記シフト数冗長予測手段は、加算オペレーションの場
    合には桁合わせ後の2つの仮数部を、減算オペレーショ
    ンの場合には桁合わせ後の仮数部の一方は1の補数を用
    いて、これらを桁ごとに排他的論理和(XOR)信号と
    1桁下位の論理和(OR)信号の排他的論理和をとり、
    この信号を最上位桁から見て最初に1となる桁までの桁
    数をシフト数とすることにより、これが正確なシフト数
    に対し1桁の誤差内で算出され、シフト誤り補正は、0
    または1桁のシフトを行うことを特徴とする浮動小数点
    演算装置。
  9. 【請求項9】請求項5の浮動小数点演算装置において、
    前記シフト数冗長予測手段は、加算オペレーションの場
    合には積和演算後の2つの仮数部を、減算オペレーショ
    ンの場合には積和演算後の仮数部の一方は1の補数を用
    いて、これらを桁ごとに排他的論理和(XOR)信号と
    1桁下位の論理和(OR)信号の排他的論理和をとり、
    この信号を最上位桁から見て最初に1となる桁までの桁
    数をシフト数とすることにより、これが正確なシフト数
    に対し1桁の誤差内で算出され、シフト誤り補正は、0
    または1桁のシフトを行うことを特徴とする浮動小数点
    演算装置。
JP22295094A 1994-09-19 1994-09-19 冗長なシフト数予測とシフト誤り補正を用いた正規化装置 Expired - Fee Related JP3257278B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP22295094A JP3257278B2 (ja) 1994-09-19 1994-09-19 冗長なシフト数予測とシフト誤り補正を用いた正規化装置
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 (ja) 1994-09-19 1994-09-19 冗長なシフト数予測とシフト誤り補正を用いた正規化装置

Publications (2)

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

Family

ID=16790423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22295094A Expired - Fee Related JP3257278B2 (ja) 1994-09-19 1994-09-19 冗長なシフト数予測とシフト誤り補正を用いた正規化装置

Country Status (1)

Country Link
JP (1) JP3257278B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013543174A (ja) * 2010-09-24 2013-11-28 インテル・コーポレーション ベクトル整数乗算加算命令のための機能ユニット
US10579333B2 (en) 2017-05-22 2020-03-03 Fujitsu Limited Arithmetic unit and control method for arithmetic unit
CN117420981A (zh) * 2023-10-24 2024-01-19 上海合芯数字科技有限公司 二进制数基础运算检错方法及装置、存储介质和终端

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013543174A (ja) * 2010-09-24 2013-11-28 インテル・コーポレーション ベクトル整数乗算加算命令のための機能ユニット
JP2015111421A (ja) * 2010-09-24 2015-06-18 インテル・コーポレーション ベクトル機能ユニット、方法、およびコンピューティングシステム
US10579333B2 (en) 2017-05-22 2020-03-03 Fujitsu Limited Arithmetic unit and control method for arithmetic unit
CN117420981A (zh) * 2023-10-24 2024-01-19 上海合芯数字科技有限公司 二进制数基础运算检错方法及装置、存储介质和终端

Also Published As

Publication number Publication date
JP3257278B2 (ja) 2002-02-18

Similar Documents

Publication Publication Date Title
JPH02294819A (ja) 浮動小数点数演算処理装置
JPH07225671A (ja) 結果正規化機構と動作の方法
JP3313560B2 (ja) 浮動小数点演算処理装置
JPH0544046B2 (ja)
US7912890B2 (en) Method and apparatus for decimal number multiplication using hardware for binary number operations
CN116643718A (zh) 一种流水线结构的浮点融合乘加装置、方法及处理器
KR100465371B1 (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
JP2003196079A (ja) 積和演算装置、及び積和演算方法
CN108694037B (zh) 用于在执行浮点减法时估计移位量的装置和方法
JP4388980B2 (ja) 浮動小数点数の除算または平方根演算を行う演算装置及び演算方法
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
JPH02294731A (ja) 浮動小数点数演算処理装置及び除数倍数生成装置
JP3257278B2 (ja) 冗長なシフト数予測とシフト誤り補正を用いた正規化装置
JPH09244874A (ja) 最上位有効ビット位置予測方法
US20070038693A1 (en) Method and Processor for Performing a Floating-Point Instruction Within a Processor
EP1282034A2 (en) Elimination of rounding step in the short path of a floating point adder
US20140059104A1 (en) Arithmetic circuit for calculating correction value
JP4439060B2 (ja) 浮動小数点加算器
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
JP3233432B2 (ja) 乗算器
JP3517162B2 (ja) 除算・開平演算装置
JP3187402B2 (ja) 浮動小数点データ加減算回路
JPH08202530A (ja) 正規化前丸め手段を有する浮動小数点加減算処理装置及び方法
JP2555135B2 (ja) 演算回路
JP2003029960A (ja) 浮動小数点加算器のショートパスにおける丸めステップの排除

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