JP2676410B2 - ステイツキ‐ビツト値を予測する回路およびその方法 - Google Patents

ステイツキ‐ビツト値を予測する回路およびその方法

Info

Publication number
JP2676410B2
JP2676410B2 JP1220508A JP22050889A JP2676410B2 JP 2676410 B2 JP2676410 B2 JP 2676410B2 JP 1220508 A JP1220508 A JP 1220508A JP 22050889 A JP22050889 A JP 22050889A JP 2676410 B2 JP2676410 B2 JP 2676410B2
Authority
JP
Japan
Prior art keywords
trailing
operand
encoder
bit
zero
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 - Lifetime
Application number
JP1220508A
Other languages
English (en)
Other versions
JPH02115928A (ja
Inventor
デビツド・ガルビ
レス・コーン
Original Assignee
インテル・コーポレーシヨン
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 インテル・コーポレーシヨン filed Critical インテル・コーポレーシヨン
Publication of JPH02115928A publication Critical patent/JPH02115928A/ja
Application granted granted Critical
Publication of JP2676410B2 publication Critical patent/JP2676410B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/52Multiplying; Dividing
    • 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/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
    • 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/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • 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
    • G06F7/49952Sticky bit

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデジタル乗算器の分野に関し,特に,ステイ
ツキービツトの予測に関する。
〔従来の技術及び発明が解決しようとする問題点〕
2つの数の乗算は数学では基本的な算術演算として知
られているが,そのような演算をコンピユータ又はプロ
セツサで実行する場合,2つの数の積を求めるためにハー
ドウエア回路を使用するという問題が必然的に生じる。
プロセツサは半導体デバイス,すなわち,シリコンチツ
プにまで縮小されるので,2つの数を乗算する上で最良の
方式を決定する役割を担うのは付加的な拘束条件であ
る。2つの数を乗算するために利用できる方式は種々あ
るが、最も良く知られている方法は1つは,積を計算す
るために,ウオレストリーなどの木構造を使用するもの
である。さらに,非常に大きな数や前常に小さな数を含
む高精度の計算が要求されるたびに,プロセツサは,積
を得な高度な演算のために,浮動小数点乗算を実行す
る。
通常,浮動小数点乗算器においては,被乗数と乗数の
小数部は,積を引出すために,高速木構造乗算器を使用
して乗算される。様々な浮動小数点規格を利用すること
ができるが,最も良く知られているものの1つはIEEE
(電気電子学会)の2進浮動小数点規格754である。こ
の浮動小数点規格のまるめ条件によれば,浮動小数点乗
算を実行する際に,まるめビツトと,ステイツキービツ
トとを使用しなければならない。まるめビツトは,まる
められていない小数部積の中で,結果小数部において使
用される最下位ビツトより位置1つ分だけ下位にあるビ
ツトとして定義されている。ステイツキービツトは,ま
るめられていない小数部積の中で,まるめビツトより下
位にある全てのビツトの論理和として定義されている。
従来の既存の実現方式では,ステイツキービツトの計算
が可能となる前に,小数部積の全て又は一部を計算する
ことが必要である。すなわち,小数部積が計算された後
に,ステイツキービツトを決定するために,適切なビツ
トの論理和が求められることになる。
従来の方法の別の高速実現方法においては,ステイツ
キービツトは,積がいくつかの過程を経て計算される間
に計算される。この従来の方法は、第1のクロツクサイ
クルで,小数部積の最下位の若干のビツトを計算し,第
2のクロツクサイクルの間に,小数部積の次の若干のビ
ツトが計算される。そして,第1のクロツクサイクルか
ら得られた小数部積ビツトの論理和は,この第2のクロ
ツクサイクルの間に計算される。追加のクロツクサイク
ルごとに小数部積の新たな若干のビツトと,先のクロツ
クサイクルで計算された小数部積のビツトの論理和とが
計算される。積を計算するためにはいくつかのクロツク
サイクルが必要であるので,この方法によりステイツキ
ービツトを計算することに問題はないのであるが,この
より高速の方法を実現したとしても,尚,ステイツキー
ビツトを決定するための論理和の計算を実行可能とする
前に,小数部積又はその一部を計算しなければならない
ということに変わりはない。
従来の方法の欠点は,小数部積の計算後に始めてステ
イツキービツトの計算が可能になることを考えられば,
自ら明らかである。これは,ステイツキービツトが既知
の値となるまでまるめ演算を開始できず,また,小数部
積の下半分がわかるまでステイツキービツトを決定でき
ないという事態を招くので,処理動作をさらに遅らせて
しまう。従つて,積を取出す前に又はそれと同時にステ
イツキービツトの計算を可能にするような方式を開発す
れば有利である。プロセツサが2つの小数部の積を求め
ている間にステイツキービツトを決定するためには,単
に,並列処理方式を実行すれば良い。小数部積の下半分
が計算されたときにステイツキービツトはわかるので,
この並列処理方式はプロセツサの乗算演算における遅延
を短縮することができる。この方法は,プロセツサの速
度が向上する点と,演算を従来より短時間で実行しなけ
ればならないという点で,特に重要である。
〔問題点を解決するための手段〕
本発明は,浮動小数点乗算演算が適用される場合にス
テイツキービツトの値を予測する回路及び方法を記載す
る。被乗数オペランド小数部と乗数オペランド小数部
は,それぞれ,トレーリングゼロエンコーダに入力とし
て結合される。各トレーリングゼロエンコーダは,対応
する小数部における後続のゼロの数を確定する。この数
は,2つのトレーリングゼロエンコーダから,後続のゼロ
カウントとして提供される。それぞれのオペランド小数
部の後続のゼロの数の和は,この後,ステイツキービツ
トを求めるために,定数と比較される。
好ましい実施例は,後続のゼロのカウントを得るため
に,トレーリングゼロエンコーダのそれぞれについて,
特別の回路を実現する。各トレーリングゼロエンコーダ
は,複数の列を成して配置された複数のエンコーダから
構成される。オペランド小数部は第1列のエンコーダに
入力として結合され,各列のエンコーダの出力は後続す
る列のエンコーダに結合される。第1列のエンコーダは
後続のゼロのカウントの最下位ビットを提供し,それぞ
れ後続する列は,最終列に達するまでは,後続のゼロの
カウントの次に上位のビツトを提供し続け,最終列のエ
ンコーダは後続のゼロのカウントの最上位ビツトを提供
する。さらに,ゼロでない最下位ビツトを有する適正な
エンコーダの出力を選択するために,様々なエンコーダ
にマルチプレクサが結合されている。
〔実施例〕
以下,浮動小数点乗算のステイツキービツトを予測す
る回路及び方法を説明する。以下の説明中,本発明の理
解を深めるために特定の回路などの特定の詳細な事項を
数多く挙げるが,そのような特定の詳細な事項を抜きに
しても本発明を実施しうることは当業者には自明であろ
う。また,周知の構造及び方法については,本発明を無
用に不明瞭にしないために詳細に説明しなかつた場合も
ある。
第1図に関して説明すると,2つの数X及びYの乗算演
算が示されている。第1の数Xは,この例では,被乗数
であり,第2の数Yは乗数である。さらに,図示される
通り,2つの数X及びYは8つの数値位置を有する。Xと
Yは,共に,1以上であり且つ厳密には2より小さいの
で,正規化数である。X0〜X6が全てゼロであれば,Xは正
確に1と等しくなるであろう。X0〜X6が全て1であれ
ば,Xは2よりわずかに小さくなるであろう。Xについて
可能な値の範囲を表記法〔1,2)により記述することが
できるが,その場合,角括弧は1が区間に含まれること
を示し,丸括弧は2が区間に含まれないことを示す。
これら2つの数X及びYについて乗算演算が実行され
ると,積Zが得られる。積Zは16の数値位置を有する。
XとYは範囲〔1,2)にあるので,XとYの積は範囲〔1,
4)にある。XとYの積の最上位ビツト,この列ではZ15
は,積が範囲〔1,2)にあるか,又は範囲〔2,4)にある
かを決定する。Z15が0であれば,積Zは範囲〔1,2)に
あり,Z15が1であれば,積は範囲〔2,4)にある。
積Zが取出された後は,その積の上位小数部のみが使
用されるのが普通である。たとえば,XとYを8つの数字
位置0〜7により表示した場合,積も8つの数字位置を
有することになる。さらに,積Zは,通常,正規化数で
あるので,まるめられていない積ビツトは,Z15が1であ
るか否かに従つて,Z6〜Z15又はZ7〜Z14のいずれかとな
る。1つの正規化数の最上位ビツトは1でなければなら
ない。小数部の下半分,すなわち,Z7〜Z0又はZ6〜Z0
実際の積には表示されない。未使用の数字の最上位のも
のはまるめビツトと呼ばれる。ステイツキービツトは,
まるめビツトより下位にある全てのビツトの論理和であ
る。Z15がゼロであれば,まるめビツトはZ6であり,ス
テイツキービツトはビツトZ0〜Z5の論理和となるであろ
う。Z15が1であれば,まるめビツトはZ7であり,ステ
イツキービツトはビツトZ0の論理和となるであろ
う。
まるめビツトとステイツキービツトは,小数部積の上
位部分がまるめを実行するために増分されるか,又は不
変のままであるかを決定する。たとえば,IEEE浮動小数
点規格754の正の無限大に向かうまるめモードの場合に
は,小数部積が正であり且つまるめビツト又はステイツ
キービツトのいずれか一方が1であれば,小数部積の上
位部分は増分される。ステイツキービツトが1であるこ
とは,完全小数部積(Z0〜Z15)が小数部積の上位部分
より大きいことを示す。従つて,正の無限大に向かつて
まるめるとき,結果が正であり且つステイツキービツト
が1であれば,小数部積の上位部分を増分しなければな
らない。
先に〔従来の技術〕の項で述べたように,従来の方法
では,ステイツキービツトを決定するのに先立つて積を
解く必要がある。すなわち,まるめビツトより下位であ
るビツトの計算は,乗算の全て又は一部を実際に実行す
ることによつて始めて可能であつた。本発明は,小数部
積が範囲〔1,2)にあると仮定して,オペランド小数部
からステイツキービツトを予測する。このようなステイ
ツキービツトの予測は小数部積の計算と並行して実行さ
れる。
第2図に関して説明する。本発明は,積の中の後尾の
0の数は被乗数と乗数とにおける後続の0の数の和に等
しいということを考慮する。第2図には,その仮定とし
ての1例が示されている。Xが後続の5つの0を有し,Y
は後続の4つの0を有するならば,その積は後続の合わ
せて9つ(5+4)の0を有することになる。ステイツ
キービツトはビツトZ0〜Z5の論理和である(小数部積が
範囲〔1,2)にあると仮定する)ので,小数部積が6つ
以上のゼロを有する場合,ステイツキービツトはゼロに
なる。この例では,小数部積は9つのゼロを有してお
り,従つて,ステイツキービツトはゼロということはな
るであろう。このように,被乗数及び乗数の小数部の後
続の0の数をカウントし,後続のゼロの数の和を定数と
比較することにより,ステイツキービツトの値を予測す
ることができる。
2つの数が公知の方法を利用して乗算されている間
に,別個の回路でこの予測を実行することができるの
で,2つの数の乗算中にステイツキービツトを並行して予
測することが可能である。従つて,本発明の趣旨は,被
乗算及び乗算における後続の0を総数を決定することに
よりステイツキービツト値を予測することである。すな
わち,ステイツキービツトは,下位小数部積の論理和を
求めるのではなく,オペランドの小数部から予測される
のである。
第3図に関して説明すると,本発明の回路のブロツク
線図が示されている。回路10は,トレーリングゼロエン
コーダ11及び12から構成される。トレーリングゼロエン
コーダ11はその入力として被乗数の小数部を受取るよう
に結合され,トレーリングゼロエンコーダ12はその入力
として乗数の小数部を受取るように結合されている。そ
れぞれのエンコーダ11及び12は,対応するオペランドの
小数部に含まれる後続のゼロの数を決定する。トレーリ
ングゼロエンコーダ11及び12はキヤリー保存加算器13に
結合されており,そこで,それぞれのエンコーダ11,12
の出力がその対応するオペランド小数部の後続のゼロの
数を表示する。キヤリー保存加算器13は,さらに,その
入力として定数を受取るように結合される。この定数
は,ステイツキービツトが0である場合にキヤリールツ
クアヘツド回路(けた上げ先見回路)16の実行を生じさ
せるように設定される。キヤリー保存加算器13は2つの
数(C及びS)を発生するが,それらの数の和は加算器
の3つの入力の和に等しい。キラリー保存加算器の動作
は従来の技術で良く知られており,さらに,そのような
キヤリー保存加算器はShlomo Waser,Michael Flynn共著
「Introduction to Arilthmetic for Digital Systems
Designers」(1982年刊)の103〜104ページにも記載さ
れている。
キヤリー保存加算器13の2つの出力はキヤリールツク
アヘツド回路16に結合され,そこで,この回路がステイ
ツキービツトを決定する。たとえば,オペランドの小数
部が第1図に示すように8ビツトの数であれば,後続の
ゼロのカウントの和が6以上である場合に,ステイツキ
ービツトはゼロになると考えられる。この例では,後続
のゼロのカウントの和に定数として10を加算することが
できるである。キヤリールツクアヘツド回路は,2つの後
続のゼロカウントと定数10との和が16以上になるか否か
を判定する。それら3つの数の和が16以上であれば,ス
テイツキービツトはゼロになるものと考える。
キヤリー保存加算器13及びキヤリールツクアヘツド回
路16の目的は,2つの後続のゼロのカウントの和が定数よ
り大きいか否かを判定することである。このタスクを実
行するためにこの回路の数多くの変形を使用して良いこ
とは当業者には自明であろう。そう1つの変形例が第5
図に示されている。ただし,本発明が第3図及び第5図
に示す2つの変形例に限定されないことは明白である。
第5図に関して説明すると,ステイツキービツトを予
測する第3図の回路の別の実施例が示されている。第3
図のトレーリングゼロエンコーダ11及び12のような2つ
のトレーリングゼロエンコーダの出力は加算器47に供給
され,加算器47は0の総数の和を計算し,それを出力と
して比較器48に供給する。比較器は別の入力として定数
を受取るように結合されている。比較器の出力はステイ
ツキービツトの値を表わす。第1図の例をとれば,第5
図の場合の定数は5となる。加算器47からの後続のゼロ
のカウントの和が6以上である場合に,比較器はステイ
ツキービツトをゼロにすると考えられる。
第4図に関して説明すると,後続のゼロのカウントを
決定する回路20が示されている。回路20は第3図のトレ
ーリングゼロエンコーダ11及び12にそれぞれ含まれる。
回路20の第1のレベルは,入力としてオペランド小数部
の1つを受取る複数のエンコーダ21−1から構成され
る。13のエンコーダ21−1に図示されているが,各エン
コーダの小数部の4つの異なるビツトを受取る。好まし
い実施例のプロセツサは,その浮動小数点乗算に際し
て,52ビツトのオペランド小数部について演算を実行す
るように設計されているので,52ビツトのオペランド小
数部を受取るように合わせて13のエンコーダ21が設けら
れている。この例ではオペランド小数部に関して特定の
ビツト数が挙げられているが,オペランド小数部を構成
するビツトの数は設計ごとに設定されるもので,実際を
プロセツサの構成によつて決まる。
各エンコーダ21は入力として4つのビツトを受取り,2
ビツト出力と,セツト信号とを発生する。各エンコーダ
21からのセツト信号は4つの入力の論理和演算の結果で
あるので,4つの入力が全て0であれば,セツト信号もゼ
ロになる。これに対し,エンコーダ21への4つの入力の
中の1つ以上が1の値を有する場合には,セツト信号も
1の値を有することになる。セツト信号が1であると
き,エンコーダ21からの他の2本の出力線は,真先に現
われる1のビツト位置を表わすコードを提供する。エン
コーダ21の機能を実行するために様々な従来のエンコー
ダを使用することができるが,そのようなエンコーダの
1例はTexas Instruments,Inc.製造のPart No.74148で
ある。
仮定として1例を挙げると,与えられたオペランドの
小数部に後続する21個の0がある場合,最初の1のビツ
トはビツト位置22(図中符号22でも示してある)に現わ
れるため、エンコーダ23からのセツト値は1となり,エ
ンコーダ23の出力は,その第2の入力がエンコーダ23に
真先に現われた1であることを示すために,01などの値
を有する。ビツト22が1の値を有していれば,後続する
ビツト値は後続のゼロのカウントの決定に関与しない。
この例では,エンコーダ23より下位にあるエンコーダの
セツト信号値は0の値を有するので,それらのエンコー
ダの出力は「留意不要」状態にある。
複数の第2レベルのエンコーダ21−2は,レベル1の
エンコーダ21−2のセツト信号を入力として受信するた
めに設けられる。エンコーダ21−2はレベル1のエンコ
ーダ21−1と同等であるので,レベル2のエンコーダは
4つの入力を受取り,セツト信号と,1の値を有するレベ
ル1の最初のセツト信号の位置を示す位置コードとを発
生するように構成される。レベル2では3つのエンコー
ダ21−2が使用され,レベル1のエンコーダ21−1の中
の12個からのセツト信号が入力としてレベル2のエンコ
ーダ21−2に結合されることになる。様々のレベルで実
際に使用されるべきエンコーダ21の数がオペランド小数
部を構成する実際のビツト数によつて決まるのは自明で
ある。
レベル2のエンコーダ21−2からのセツト信号は,レ
ベル3のエンコーダ21−3に結合される。レベル1の残
るエンコーダ(13番目の位置のエンコーダ)の出力は,
第4の入力として,レベル3のエンコーダ21−3に結合
される。レベル1のエンコーダ21−1が4つずつのグル
ープに分けられるときに,レベル1の13番目のエンコー
ダはそれらのグループに属さない単独のエンコーダであ
るので,このエンコーダについてはレベル2のエンコー
ダは不要である。当然のことながら,レベル1に別のエ
ンコーダがあれば,レベル1の13番目及び14番目のエン
コーダに対してレベル2のエンコーダを使用しなければ
ならないであろう。様々なレベルにある様々のエンコー
ダ21は,上位のビツト位置を表わすエンコーダが上位の
入力位置を有する入力として次のレベルのエンコーダに
結合されるように配置されることになつている。これ
は,1の値を有する最初の小数部ビツトの相対位置を維持
するために必要であり,この最初の1のビツトより下位
にある全てのビツトを0の値を有するように変換する。
適切なエンコーダ出力を選択するために,2つのレベル
で4:1マルチプレクサ(MUX)25を利用する。回路20にお
いては,レベル2のエンコーダごとに1つの4:1 MUX25
−2が設けられている。レベル1のそれぞれのエンコー
ダに対して,その出力は,関連するレベル2のエンコー
ダ21−2に対するMUX25−2に結合される。最初の1の
設定値を有するレベル1のエンコーダの出力を選択する
ために,関連するエンコーダ21−2から対応するMUX25
−2に適切な制御信号(CTL)が供給される。従つて,
上述の例では,最初の1のビツト位置22に現われるの
で,エンコーダ23の出力はそのエンコーダ23と関連する
MUX25−2を介して結合される。
第3のレベルのエンコーダ21−3と関連するMUX25−
3はレベル2のエンコーダ21−2から入力を直接受取る
と共に,対応する第1のレベルのエンコーダ21−1から
もレベル2のエンコーダと関連するMUX25−2を介して
入力を受取る。また,レベル1の最上位のエンコーダの
出力もマルチプレクサ25−3に結合される。このレベル
1の最上位のエンコーダと関連するレベル2のエンコー
ダはないので,第4図に示すように,MUX25−3には2つ
の0が入力される。レベル3のエンコーダ21−3の出力
は後続のゼロのカウントに関して2つの最上位ビツトを
提供し,一方,レベル3のエンコーダ21−3と関連する
4:1MUX25は,同様に後続のゼロのカウントを決定する2
対のビツトを提供する。制御(CTL)信号線は、MUX25に
制御信号を供給するために,親エンコーダ21からMUX25
に結合される。
後続のゼロのカウントを決定する6つのビツトのう
ち,2つの最上位ビツトは,レベル1のエンコーダの4つ
のグループの中のどれがオペランド小数部における最初
の1のビツト(最下位の1のビツト値)を有するかを決
定する。中央の2つのビツトは,レベル1のどのエンコ
ーダ21−1が最下位の1のビツトを有するかを示す。最
後の2つの最下位ビツトは,レベル1の選択されたエン
コーダ21−1のどのビツトが最下位の1のビツトを有す
るかを示す。従つて,6本の信号線は,オペランド小数部
において最下位の1のビツトを有するビツトを正確に決
定する。最下位の1のビツトより下位にある全てのビツ
トは0の値を有する。
オペランド小数部にある実際のビツト数が上記の例と
は異なる場合には,第4図の構造に対して必要に応じて
回路を省略又は追加できることは自明である。実際のレ
ベル数,並びにそれぞれのレベルに含まれるエンコーダ
21及びMUX25の数は,オペランド小数部の実際のビツト
数と,使用するエンコーダ及びMUXの種類とによつて決
まる。
本発明の実施によつてステイツキービツトを予測する
ことにより,ステイツキービツトの計算は乗算演算の重
要な経路から外されるので,最終的な積を計算するとき
にステイツキービツトを利用することができる。ステイ
ツキービツトを予測するために並行処理を使用すること
は,少数のクロツクサイクルで又は唯1回のクロツクサ
イクルで浮動小数点乗算を実行することができるプロセ
ツサにおいては重要である。好ましい実施例のステイツ
キービツト予測装置は,実現されているように,クロツ
クサイクルごとに新たな単精度乗算を完了し且つ2回の
クロツクサイクルごとに倍精度乗算を完了することがで
きるプロセツサに利用される。数値プロセツサにおける
本発明を使用する単精度乗算と,倍精度乗算の待ち時間
は,それぞれ,3クロツク分と4クロツク分である。
先に説明したように,ステイツキービツト予測装置
は,小数部積が範囲〔1,2)にあるものと仮定して,ス
テイツキービツトを予測する。小数部積が範囲〔2,4)
にある場合のステイツキービツトを求めるときには,後
続のゼロのカウントの和を異なる定数と比較することが
できるであろう。小数部積が範囲〔2,4)にある場合の
ステイツキービツトを求める別の方法は,範囲〔1,2)
のステイツキービツトと,範囲〔1,2)のまるめビツト
との論理和を計算するものである。本発明を適用するに
当たつては,この第2の方法を採用する。2つの8ビツ
トキヤリールツクアヘツド回路を使用して,演算の99.6
%において小数部積の範囲と,まるめビツトとを決定す
る。それらのキヤリールツクアヘツド回路が小数部積の
範囲又はまるめビツトのいずれか一方を決定できない場
合には,その計算を実行するために,さらに2つのクロ
ツクサイクルが余分に使用される。
通常は,ステイツキービツトとまるめビツトは,和が
小数部積の上位部分を成すような2つの数のまるめ及び
加算を共に実行するために1回の桁上げ伝播加算を使用
することができるように,十分高速で計算される。ステ
イツキービツト予測装置は,小数部積の上位部分をまる
めのために増分すべきか否かの計算と並行して小数部積
を積算することを可能にする。
尚,後続の0の数を確定するために他の様々な構造を
利用できること,及び第4図に示すような後尾ゼロエン
コーダは単に後続の0の数をカウントするための方式の
1つにすぎないことは明白であろう。
以上,ステイツキービツト予測装置について説明し
た。
【図面の簡単な説明】
第1図は,2つのオペランド小数部の乗算演算及びその結
果として得られる積を示す図,第2図は,オペランド小
数部における後続のゼロの合計により後続のゼロのカウ
ントを求める過程を示す図,第3図は,好ましい実施例
のステイツキービツト予測装置の概略ブロツク図,第4
図は,第3図に示されるトレーリングゼロエンコーダの
概略ブロツク図,第5図は,ステイツキービツト予測装
置の別の実施例の概略ブロツク線図である。 11,12……トレーリングゼロエンコーダ,13……キヤリー
保存加算器,16……キヤリールツクアヘツド回路,21−1,
21−2,21−3……エンコーダ,23……エンコーダ,25−2,
25−3……マルチプレクサ(MUX),47……加算器,48…
…比較器。

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】2つの数を乗算する際にステイツキービツ
    ト値を予測する回路において, 第1のオペランド小数部における後続のゼロの数を確定
    する第1のトレーリングゼロエンコーダと, 第2のオペランド小数部における後続のゼロの数を確定
    する第2のトレーリングゼロエンコーダと; 前記第1及び第2のトレーリングゼロエンコーダの出力
    を受取るように結合され,2つの前記オペランド小数部に
    おける後続のゼロの総数を確定するために前記出力の和
    を提供する加算器と; 前記加算器に結合されて,前記ステイツキービツト値を
    決定する比較手段とを具備する回路。
  2. 【請求項2】浮動小数点乗算演算を実行するために被乗
    数オペランド小数部と,乗数オペランド小数部とを乗算
    するに際して,前記2つのオペランド小数部の積のまる
    めビツトより下位であるビツトの論理和として規定され
    るステイツキービツトの値を予測する回路において, 前記被乗数オペランド小数部を受取るように結合され
    て,前記被乗数オペランド小数部における後続のゼロの
    数を確定する第1のトレーリングゼロエンコーダと; 前記乗数オペランド小数部を受取るように結合されて,
    前記乗数オペランド小数部における後続のゼロの数を確
    定する第2のトレーリングゼロエンコーダと; 前記第1及び第2のトレーリングゼロエンコーダの出力
    を入力として受取るように結合され,ゼロの総数の和を
    提供する加算器と; 前記加算器に結合されて,前記和が定数より大きいか否
    かを判定することにより、前記ステイツキービツトを決
    定する比較手段とを具備する回路。
  3. 【請求項3】浮動小数点乗算演算を実行するために被乗
    数オペランド小数部と,乗数オペランド小数部とを乗算
    するに際して,前記2つのオペランド小数部の積のまる
    めビツトより下位であるビツトの論理和として規定され
    るステイツキービツト値を予測する方法において, 前記オペランド小数部のそれぞれについて,それぞれ対
    応するオペランド小数部における後続のゼロの数を確定
    するトレーリングゼロエンコーダを設ける過程と, 前記オペランド小数部をそれぞれ対応するトレーリング
    ゼロエンコーダに入力する過程と; 前記トレーリングゼロエンコーダのそれぞれにおいて,
    それぞれ対応するオペランド小数部の中のゼロでない最
    下位ビツトを確定する過程と; 前記トレーリングゼロエンコーダのそれぞれから,前記
    ゼロでない最下位ビツトより下位であるビツトの数のカ
    ウントを提供する過程であつて,前記カウントはそれぞ
    れのオペランド小数部における後続のゼロの数であるも
    のと; 前記2つのオペランド小数部の前記後続のゼロの数を加
    算して,和を提供する過程と; 前記ステイツキービツトの値を決定するために前記和を
    定数と比較する過程とから成る方法。
JP1220508A 1988-09-23 1989-08-29 ステイツキ‐ビツト値を予測する回路およびその方法 Expired - Lifetime JP2676410B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/248,740 US4928259A (en) 1988-09-23 1988-09-23 Sticky bit predictor for floating-point multiplication
US248,740 1988-09-23

Publications (2)

Publication Number Publication Date
JPH02115928A JPH02115928A (ja) 1990-04-27
JP2676410B2 true JP2676410B2 (ja) 1997-11-17

Family

ID=22940472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1220508A Expired - Lifetime JP2676410B2 (ja) 1988-09-23 1989-08-29 ステイツキ‐ビツト値を予測する回路およびその方法

Country Status (5)

Country Link
US (1) US4928259A (ja)
JP (1) JP2676410B2 (ja)
KR (1) KR0138903B1 (ja)
DE (1) DE3926876C2 (ja)
GB (1) GB2223111B (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212661A (en) * 1989-10-16 1993-05-18 Matsushita Electric Industrial Co., Ltd. Apparatus for performing floating point arithmetic operation and rounding the result thereof
US5128889A (en) * 1990-02-22 1992-07-07 Matsushita Electric Industrial Co., Ltd. Floating-point arithmetic apparatus with compensation for mantissa truncation
US5113364A (en) * 1990-10-29 1992-05-12 Motorola, Inc. Concurrent sticky-bit detection and multiplication in a multiplier circuit
US5218564A (en) * 1991-06-07 1993-06-08 National Semiconductor Corporation Layout efficient 32-bit shifter/register with 16-bit interface
EP0609372A1 (en) * 1991-10-24 1994-08-10 Intel Corporation Data processing system
US5361370A (en) * 1991-10-24 1994-11-01 Intel Corporation Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port
US5260889A (en) * 1992-03-31 1993-11-09 Intel Corporation Computation of sticky-bit in parallel with partial products in a floating point multiplier unit
US5359548A (en) * 1992-04-15 1994-10-25 Fujitsu Limited Floating-point arithmetic system having multiple-input addition and subtraction means
US5568410A (en) * 1994-09-29 1996-10-22 International Business Machines Corporation Method and apparatus for determining the amount of leading zeros or ones in a binary data field
US5867722A (en) * 1995-04-25 1999-02-02 United Microelectronics Corporation Sticky bit detector for a floating-point processor
US5742537A (en) * 1995-06-30 1998-04-21 Wolrich; Gilbert M. Fast determination of floating point sticky bit from input operands
JPH09204295A (ja) * 1996-01-29 1997-08-05 Kofu Nippon Denki Kk スティッキービット検出回路
US6044391A (en) * 1997-06-25 2000-03-28 Sun Microsystems, Inc. Method of generating the sticky-bit from the input operands
US5944773A (en) * 1997-06-25 1999-08-31 Sun Microsystems, Inc. Floating-point multiplier circuit for generating the sticky-bit from the input operands
JP3418711B2 (ja) 1998-12-25 2003-06-23 富士通株式会社 スティッキービット値予測回路及びこれを備えた半導体装置
TW569090B (en) * 2001-07-17 2004-01-01 Taiwan Semiconductor Mfg Priority address encoder and method of the same
EP1739547A1 (en) * 2005-07-01 2007-01-03 STMicroelectronics (Research & Development) Limited Performing rounding in an arithmetic operation
WO2023215048A1 (en) * 2022-05-05 2023-11-09 SiFive, Inc. Floating-point multiplier using zero counters

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4270167A (en) * 1978-06-30 1981-05-26 Intel Corporation Apparatus and method for cooperative and concurrent coprocessing of digital information
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
US4484259A (en) * 1980-02-13 1984-11-20 Intel Corporation Fraction bus for use in a numeric data processor
US4748575A (en) * 1984-12-21 1988-05-31 Zilog, Inc. Circuit for detecting trailing zeros in numbers
US4758972A (en) * 1986-06-02 1988-07-19 Raytheon Company Precision rounding in a floating point arithmetic unit

Also Published As

Publication number Publication date
GB2223111B (en) 1992-07-22
KR0138903B1 (ko) 1998-06-15
GB2223111A (en) 1990-03-28
GB8909516D0 (en) 1989-06-14
DE3926876C2 (de) 1996-08-14
US4928259A (en) 1990-05-22
DE3926876A1 (de) 1990-03-29
JPH02115928A (ja) 1990-04-27
KR900005284A (ko) 1990-04-13

Similar Documents

Publication Publication Date Title
JP2676410B2 (ja) ステイツキ‐ビツト値を予測する回路およびその方法
JP3689183B2 (ja) 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算
JP3492638B2 (ja) 浮動小数点乗算器
JP2002108606A (ja) スティッキービット生成回路及び乗算器
Lang et al. A radix-10 combinational multiplier
US5798955A (en) High-speed division and square root calculation unit
JPH02294819A (ja) 浮動小数点数演算処理装置
CA1142650A (en) Binary divider with carry-save adders
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US7725522B2 (en) High-speed integer multiplier unit handling signed and unsigned operands and occupying a small area
Takagi et al. A hardware algorithm for integer division
US5734599A (en) Performing a population count using multiplication
JPH08212058A (ja) 加算オーバフロ検出回路
JPH04205026A (ja) 除算回路
US5867413A (en) Fast method of floating-point multiplication and accumulation
US4815019A (en) Fast ALU equals zero circuit
JPH07107664B2 (ja) 乗算回路
US6182105B1 (en) Multiple-operand addition with intermediate saturation
US6988120B2 (en) Arithmetic unit and method thereof
JPH04172526A (ja) 浮動小数点除算器
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
JP2002023997A (ja) 浮動小数点演算のための選択ベースの丸め方法
He et al. Multiply-add fused float point unit with on-fly denormalized number processing
Andersen et al. A systolic ON-LINE non-restoring division scheme