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

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

Info

Publication number
JPH02115928A
JPH02115928A JP1220508A JP22050889A JPH02115928A JP H02115928 A JPH02115928 A JP H02115928A JP 1220508 A JP1220508 A JP 1220508A JP 22050889 A JP22050889 A JP 22050889A JP H02115928 A JPH02115928 A JP H02115928A
Authority
JP
Japan
Prior art keywords
trailing
operand
bit
encoder
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.)
Granted
Application number
JP1220508A
Other languages
English (en)
Other versions
JP2676410B2 (ja
Inventor
David Galbi
デビツド・ガルビ
Les Kohn
レス・コーン
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデジタル乗算器の分野に関し、特K。
ステイツキービットの予測に関スる。
〔従来の技術及び発明が解決しようとする問題点〕
2つの数の乗算は数学では基本的表算術演算として知ら
れているが、そのような演算をコンピュータ又はプロセ
ッサで実行する場合、2つの数の積を求めるためにノ・
−ドウエア回路を使用するという問題が必然的に生じる
。プロセッサは半導体デバイス、すなわち、シリコンチ
ップにまで縮小されるので、2つの数を乗算する上で最
良の方式を決定する役割を担うのは付加釣力拘束条件で
らる。2つの数を乗算するために利用できる方式は種々
あるが、最も良く知られている方法の1つは。
積を計算するために、ウオレストIJ−などの木構造を
使用するものである。さらに、非常に大きな数中前常に
小さな数を含む高精度の計算が要求されるたびに、プロ
セッサは、積を得な高度な演算のために、浮動小数点乗
算を実行する。
通常、浮動小数点乗算器においては、被乗数と乗数の小
数部は、積を引出す丸めに、高速木構造乗算器を使用し
て乗算される。様に々浮動小数点規格を利用することが
できるが、最も良く知られているものの1つはIEEE
 (を気電子学会)の2進浮動小数点規格754でおる
。この浮動小数点規格のまるめ条件によれば、浮動小数
点乗算を実行する際に、まるめビットと、ステイツキー
ビットとを使用しなければならない。まるめビットは。
まるめられていない小数部積の中で、結果小数部におい
て使用される最下位ビットより位置1つ分だけ下位にあ
るビットとして定義されている。ステイツキービットは
、まるめられていない小数部積の中で、まるめビットよ
り下位にある全てのビットの論理和として定義されてい
る。従来の既存の実現方式では、ステイツキービットの
計算が可能となる前に、小数部積の全て又は一部を計算
することが必要である。すなわち、小数部積が計算され
た後に、ステイツキービットを決定するために、適切な
ビットの論理和が求められることになる。
従来の方法の別の高速実現方法においては、ステイツキ
ービットは、積がいくつかの過程を経て計算される間に
計算される。この従来の方法は、第1のクロックサイク
ルで、小数部積の最下位の若干のビットを計算し、第2
のクロックサイクルの間に、小数部積の次の若干のビッ
トが計算される。そして、第1のクロックブイクルから
得られた小数部積ビットの論理和は、この第2のクロッ
クサイクルの間に計算される。追加のクロックサイクル
ごとに小数部積の新たな若干のビットと。
先のクロックサイクルで計算された小数部積のビットの
論理和とが計算される。積を計算するためにはいくつか
のクロックサイクルが必要であるので、この方法により
スティツキ−ピントを計算することに問題はないのであ
るが、このよう高速の方法を実現したとしても、尚、ス
テイッキービットを決定するための論理和の計算を実行
可能とする前に、小数部積又はその一部を計算しなけれ
ばならないということに変わシはない。
従来の方法の欠点は、小数部積の計算後に始めてステイ
ツキービットの計算が可能になることを考えれば、自ら
明らかである。これは、ステイッキーピットが既知の値
となるまでまるめ演算を開始できず、また、小数部積の
下半分がわかるまでステイツ千−ビットを決定できない
という事態を招くので、処理動作をさらに遅らせてしま
う。従って、積を取出す前に又はそれと同時にステイッ
キービットの計算を可能にするような方式を開発すれば
有利である。プロセッサが2つの小数部の積を求めてい
る間にステイツキービットを決定スるためには、単に、
並列処理方式を実行すれば良い。小数部積の下半分が計
算されたときにステイツキービットはわかるので、この
並列処理1方式はプロセッサの乗算演算における遅延を
短縮することができる。この方法は、プロセッサの速度
が向上する点と、演算を従来より短時間で実行し表けれ
ばならないという点で、特に重要である。
〔問題点を解決するための手段〕
本発明は、浮動小数点乗算が適用される場合にステイツ
キービットの値を予測する回路及び方法を記載する。被
乗数オペランド小数部と乗数オペランド小数部は、それ
ぞれ、トレーリングゼロエンコーダに入力として結合さ
れる。各トレーリングゼロエンコーダは、対応する小数
部における後続のゼロの数を確定する。この数はi2つ
のトレーリングゴロエンコーダから、後続のゼロカウン
トとして提供される。それぞれのオペランド小数部の後
続のゼロの数の和は、この後、ステイッキービットを求
めるために、定数と比較される。
好ましい実施例は、後続のゼロのカウントを得るために
、トレーリングゼロエンコーダのそれぞれについて、特
別の回路を実現する。各トレーリングゼロエンコーダは
、複数の列を成して配置された複数のエンコーダから構
成される。オペランド小数部は第1列のエンコーダに入
力として結合され、各列のエンコーダの出力は後続する
列のエンコーダに結合される。第1列のエンコーダハ後
続のゼロのカウントの最下位ビットを提供し、それぞれ
後続する列は、最終列に達するまで、後続のゼロのカウ
ントの次に上位のビットを提供し続け、最終列のエンコ
ーダは後続のゼロのカウントの最上位ビットを提供する
。さらに、ゼロでない最下位ビットを有する適正なエン
コーダの出力を選択するために、様4表エンコーダにマ
ルチプレクサが結合されている。
〔実施例〕
以下、浮動lト数点乗算のステイッキービットを予測す
る回路及び方法を説明する。以下の説明中。
本発明の理解を深めるために特定の回路などの特定の詳
細な事項を数多く挙げるが、そのような特定の詳細な事
項を抜きにしても本発明を実施しりることは当業者には
自明であろう。また9周知の/ 構造及び方法については1本発明を無用に不明瞭にしな
いために詳細に説明しなかった場合もある。
第4図に関して説明すると、2つの数X及びYの乗算演
算が示されている。第1の数Xは、この例では、被乗数
であシ、第2の数Yは乗数である。
さらに1図示される通シ、2つの数X及びYは8つの数
値位置を有する。Xとyti+共に、1以上であり且つ
厳密には2より小さいので、正規化数である。X o 
= X 6が全てゼロであれば、Xは正確に1と等しく
なるであろう。X、−yX、が全て1であれば、Xは2
よりわずかに小さくなるであろう。
XKついて可能な値の範囲を表記法[1,2)にょシ記
述することができるが、その場合、角括弧はlが区間に
含まれることを示し、丸括弧は2が区間に含まれないこ
とを示す。
これら2つの数X及びYについて乗算演算が実行される
と、積2が得られる。積2は16の数値位置を有する。
XとYは範囲(1,2)にあるので。
XとYの積は範囲(1,4)にある。X、!−Yの積の
最上位ビット、この例ではZlBは、積が範囲〔1゜2
)Kあるか、又は範囲[2,4)にあるかを決定する。
z15が0であれば、積Zは範囲[1,2)Kあシ、z
16が1であれば、積は範囲[2,4)にある。
積2が取出された後は、その積の上位小数部のみが使用
されるのが普通である。たとえば、XとYを8つの数字
位置O〜7により表示した場合。
積も8つの数字位置を有することになる。さらに。
積2は9通常、正規化数であるので、まるめられていな
い積ビットは、ZtSが1であるか否かに従って+Z@
〜ZtS又は2γ〜Z14のいずれかとなる。
1つの正規化数の最上位ビットは1でなければならない
。小数部の下半分、すなわち+Z?〜ZO又はz6〜Z
oは実際の積には表示されない。未使用の数字の最上位
のものはまるめビットと呼ば1れる。スティンキービッ
トは、まるめビットより下位にある全てのビットの論理
和でおる。ZtSがゼo−t’6れば、するめビットは
z6であシ、ステイッキービットはビットZO%ZSの
論理和となるであろう。z15が1であれば、まるめビ
ットは2゜であり、スティンキービットはビットZ(1
−28の論理和となるであろう。
まるめビットとスティンキービットは、小数部積の上位
部分がまるめを実行するために増分されるか、又は不変
のままであるかを決定する。たとえば、IEEZ浮動小
数点規格154の正の無限大に向かうまるめモードの場
合には、小数部積が正であり且つまるめビット又はステ
ィンキービットのいずれか一方が1であれば、小数部積
の上位部分は増分される。スティンキービットが1であ
ることは、完全小数部積(Zo”Zti)が小数部積の
上位部分より大きいことを示す。従って、正の無限大に
向かってまるめるとき、結果が正でsb且つスティンキ
ービットが1であれば、小数部積の上位部分を増分し力
ければならない。
先に〔従来の技術〕の項で述べたように、従来の方法で
は、スティンキービットを決定するのに先立って積を解
く必要がある。すなわち、iるめビットより下位である
ビットの計算は2乗算の全て又は一部を実際に実行する
ことによって始めて可能であった。本発明は、小数部積
が範囲〔1゜2)にあると仮定して、オペランド小数部
からスティンキービットを予測する。このようなスティ
ンキービットの予測は小数部積の計算と並行して実行さ
れる。
第2図に関して説明する。本発明は、積の中の後尾のO
の数は被乗数と乗数とにおける後続の0の数の和に等し
いということを考慮する。第2図には、その仮定として
の1例が示されている。Xが後続の5つの0を有し、Y
は後続の4つのOを有するならば、その積は後続の合わ
せて9つ(5十4)の0を有することになる。スティン
キービットはビットz、−Z、の論理和である(小数部
積が範囲(:1.2)にあると仮定する)ので、/ト数
部積が6つ以上のゼロを有する場合、スティンキービッ
トはゼロになる。この例では、 lJS数部積は9つの
ゼロを有してお沙、従って、スティンキービットはゼロ
というととくなるであろう。このように、被乗数及び乗
数の小数部の後続の00数をカウントし、後続のゼロの
数の和を定数と比較することにより、スティンキービッ
トの値を予測することができる。
2つの数が公知の方法を利用して乗算されている間に、
別個の回路でこの予測を実行することができるので、2
つの数の乗算中にスティンキービットを並行して予測す
ることが可能である。従って9本発明の趣旨は、被乗数
及び乗数における後続の0の総数を決定することにより
スティツキ−ビット値を予測することである。すなわち
、スティンキービットは、下位小数部積の論理和を求め
るのではなく、オペランドの小数部から予測されるので
ある。
第3図に関して説明すると1本発明の回路のブロック線
図が示されている。回路10は、トレーリングゼロエン
コーダ11及び12から構成される。トレーリングゼロ
エンコーダ11はその入力として被乗数の小数部を受取
るように結合され。
トレーリングゼロエンコーダ12はその入力として乗数
の小数部を受取るように結合されている。
それぞれのエンコーダ11及び12は、対応するオペラ
ンドの小数部に含まれる後続のゼロの数を決定スる。ト
レーリングゼロエンコーダ11及び12はキャリー保存
加算器13に結合されており。
そこで、それぞれのエンコーダ11.12の出力がその
対応するオペランド小数部の後続のゼロの数を表示する
。キャリー保存加算器13は、さらに、その入力として
定数を受取るように結合される。この定数は、ステイッ
キービットが0である場合にキャリールックアヘッド回
路(けた上げ先見回路)16の実行を生じさせるように
設定される。キャリー保存加算器13は2つの数(C及
びS)を発生するが、それらの数の和は加算器の3つの
入力の和に等しい。キャリー保存加算器の動作は従来の
技術で良く知られておシ、さらに、そのようなキャリー
保存加算器は3hlomo W口sr。
Micha@l Flynn共著[1ntroduct
ion to Arith−m@tlc for Di
gital +3yalema D@mignaraJ
 (1982年刊)の103〜104ページにも記載さ
れている。
キャリー保存加算器13の2つの出力はキャリールック
アヘッド回路16に結合され、そこで。
この回路がステイツキービットを決定する。たとえば、
オペランドの小数部が第1図に示すように8ビツトの数
であれば、後続のゼロのカウントの和が6以上である場
合に、ステイッキービットはゼロになると考えられる。
この例では、後続のゼロのカウントの和に定数として1
0を加算することができるであろう。キャリールックア
ヘッド回路は、2つの後続のゼロカウントと定数10と
の和が16以上になるか否かを判定する。それら3つの
数の和が16以上であれば、ステイッキービットはゼロ
になるものと考える。
キャリー保存加算器13及びキャリールックアヘッド回
路160目的は、2つの後続のゼロのカウントの和が定
数より大きいか否かを判定することである。このタスク
を実行するためにこの回路の数多くの変形を使用して良
いことは当業者には自明であろう。その1つの変形例が
第5図に示されている。ただし9本発明が第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本の出力線は、
真先に現われる10ビット位置を表わすコードを提供す
る。エンコーダ21の機能を実行するために様々々従来
のエンコーダを使用すると゛とができるが、そのような
エンコーダの1例はT@x口Instrum@nts 
、Inc、製造のPa r t Na 74148であ
る。
仮定として1例を挙げると、与えられたオペランドの小
数部に後続する21個の0がめる場合。
最初の1のビットはビット位置22(図中符号Uでも示
しである)に現われるため、エンコーダ23からのセッ
ト値は1となシ、エンコーダ23の出力は、その第2の
入力がエンコーダ23に真先に現われた1であることを
示すために、01などの値を有する。ビット22が1の
値を有していれば。
後続するビット値は後続のゼロのカウントの決定に関与
しない。この例では、エンコーダ23より下位にあるエ
ンコーダのセット信号値は0の値を有するのでそれらの
エンコーダの出力は「留意不要」状態にある。
複数の第2レベルのエンコーダ2l−2ij+レベル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のエンコーダは不要である。当然のことなが
ら、レベルIK別のエンコーダがsれば、レベル1の1
3番目及び14番目のエンコーダに対してレベル2のエ
ンコーダを使用しなければならないであろう。
様々なレベルにおる様々のエンコーダ21は、上位のビ
ット位置を表わすエンコーダが上位の入力位置を有する
入力として次のレベルのエンコーダに結合されるように
配置されることKなっている。
これは、1の値を有する最初の小数部ビットの相対位置
を維持するために必要であり、この最初の1のピントよ
り下位にある全てのビットをOの値を有するように変換
する。
適切なエンコーダ出力を選択するために、2つのレベル
で4:1マルチプレクサ(MUX)25を利用する。回
路20においては、レベル2のエンコーダごとに1つの
4 : I MUX25−2が設けられている。レベル
1のそれぞれのエンコーダに対して、その出力は、関連
するレベル2のエンコーダ21−2に対応するMUX2
5−2に結合される。
最初の1の設定値を有するレベル1のエンコーダの出力
を選択するために、関連するエンコーダ21−2から対
応するMUX25−2に適切凌制御信号(CTL)が供
給される。従って、上述の例では。
最初の1のビットはビット位置22に現われるので、エ
ンコーダ23の出力はそのエンコーダ23と関連するM
UX25−2を介して結合される。
第3のレベルのエンコーダ21−3と関連するMUX2
5−3はレベル2のエンコーダ21−2から入力を直接
受取ると共に、対応する第1のレベルのエンコーダ21
−1から4レベル2のエンコーダと関連するMUX25
−2を介して入力を受取る。また、レベル1の最上位の
エンコーダの出力もマルチフレフサ25−3に結合され
る。このレベル1の最上位のエンコーダと関連するレベ
ル2のエンコーダはないので、第4図に示すようK 、
 MUX25−3Ka2つのOが入力される。レベル3
のエンコーダ21−3の出力は後続のゼロのカウントに
関して2つの最上位ビットを提供し、一方、レベル3の
エンコーダ21−3と関連する4:IMUX25は、同
様に後続のゼロのカウントを決定する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図の構造に対して必要に応じて回
路を省略又は追加できることは自明である。実際のレベ
ル数、並びにそれぞれのレベルに含まれるエンコーダ2
1及びMUX 25の数は、オペランド小数部の実際の
ビット数と、使用するエンコーダ及びM[]Xの種類と
によって決まる。
本発明の実施によってステイツキービットを予測するこ
とにより、ステイツキービットの計算は乗算演算の重!
!表経路から外されるので、最終的な積を計算するとき
にステイツキービットを利用することができる。ステイ
ツキービットを予測するために並行処理を使用すること
は、少数のクロックサイクルで又は唯1回のクロックサ
イクルで浮動小数点乗算を実行することができるプロセ
ッサにおいては重要である。好ましい実施例のステイツ
キービット予測装置は、実現されているように、クロッ
クサイクルごとに新たな単精度乗算を完了し且つ2回の
クロックサイクルごとに倍精度乗算を完了することがで
きるプロセッサに利用される。数値プロセッサにおける
本発明を使用する単精度乗算と1倍精度乗算の待ち時間
は、それぞれ、3クロック分と4クロック分である。
先に説明したように、ステイツキービット予測装置は、
小数部積が範囲(1,2)にあるものと仮定して、ステ
イツキービットを予測する。小数部積が範囲C2,4)
にある場合のステイツキービットを求めるときには、後
続のゼロのカウントの和を異表る定数と比較することが
できるであろう。
小数部積が範囲(2,4)にある場合のステイツキービ
ットを求める別の方法は、範囲[1,2)のステイッキ
ービットと、範囲(1,2)のまるめビットとの論理和
を計算するものである。本発明を適用するに当たっては
、この第2の方法を採用する。
2つの8ビツトキャリールックアヘッド回路を使用して
、演算の99.6%において小数部積の範囲と、まるめ
ビットとを決定する。それらのキャリールックアヘッド
回路が小数部積の範囲又はまるめビットのいずれか一方
を決定できない場合には。
その計算を実行するために、さらに2つのクロックサイ
クルが余分に使用される。
通常は、ステイツキービットとまるめビットは。
和が小数部積の上位部分を成すような2つの数のまるめ
及び加算を共に実行するために1回の桁上げ伝播加算を
使用することができるように、十分高速で計算される。
ステイツキービット予測装置は、小数部積の上位部分を
まるめのために増分すべきか否かの計算と並行して小数
部積を計算することを可能にする。
尚、後続のOの数を確定するために他の様々な構造を利
用できること、及び第4図に示すよう表後尾ゼロエンコ
ーダは単に後続の0の数をカウントするための方式の1
つにすぎないことは明白で以上、ステイツ中−ビット予
測装置について説明した。
【図面の簡単な説明】
第1図は、2つのオペランド小数部の乗算演算及びその
結果として得られる積を示す図、第2図は、オペランド
小数部における後続のゼロの合計により後続のゼロのカ
ウントを求める過程を示す図、第3図は、好ましい実施
例のステイツキービット予測装置の概略ブロック線図、
第4図は、第3図に示されるトレーリングゼロエンコー
ダの概略ブロック線図、第5図は、ステイツキービット
予測装置の別の実施例の概略ブロック線図である。 11.12・・・・トレーリングゼロエンコーダ、13
・・・・キャリー保存加算器、16・・・・キャリール
ックアヘッド回路、 21−1 、21−2.21−3
・・争・エンコーf、23・・・・エンコーダ、25−
2.25−3・・0・マルチプレクサ(MUX)、47
−・・・加X器、48・・睡・比較器。 IE’IO1

Claims (1)

  1. 【特許請求の範囲】 1)2つの数を乗算する際にステイツキービット値を予
    測する回路において、 第1のオペランド小数部における後続のゼロの数を確定
    する第1のトレーリングゼロエンコーダと、 第2のオペランド小数部における後続のゼロの数を確定
    する第2のトレーリングゼロエンコーダと; 前記第1及び第2のトレーリングゼロエンコーダの出力
    を受取るように結合され、2つの前記オペランド小数部
    における後続のゼロの総数を確定するため前記出力の和
    を提供する加算器と;前記加算器に結合されて、前記ス
    テイツキービット値を決定する比較手段とを具備する回
    路。 2)浮動小数点乗算演算を実行するために被乗数オペラ
    ンド小数部と、乗数オペランド小数部とを乗算するに際
    して、前記2つのオペランド小数部の積のまるめビット
    より下位であるビットの論理和として規定されるステイ
    ツキービットの値を予測する回路において、 前記被乗数オペランド小数部を受取るように結合されて
    、前記被乗数オペランド小数部における後続のゼロの数
    を確定する第1のトレーリングゼロエンコーダと; 前記乗数オペランド小数部を受取るように結合されて、
    前記乗数オペランド小数部における後続のゼロの数を確
    定する第2のトレーリングゼロエンコーダと; 前記第1及び第2のトレーリングゼロエンコーダの出力
    を入力として受取るように結合され、ゼロの総数の和を
    提供する加算器と; 前記加算器に結合されて、前記和が定数より大きいか否
    かを判定することにより、前記ステイツキービットを決
    定する比較手段とを具備する回路。 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
US248,740 1988-09-23
US07/248,740 US4928259A (en) 1988-09-23 1988-09-23 Sticky bit predictor for floating-point multiplication

Publications (2)

Publication Number Publication Date
JPH02115928A true JPH02115928A (ja) 1990-04-27
JP2676410B2 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
CA2122139C (en) * 1991-10-24 2000-08-29 David Leroy Sprague 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
US20230359436A1 (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
US4928259A (en) 1990-05-22
GB8909516D0 (en) 1989-06-14
DE3926876C2 (de) 1996-08-14
KR900005284A (ko) 1990-04-13
GB2223111A (en) 1990-03-28
DE3926876A1 (de) 1990-03-29
KR0138903B1 (ko) 1998-06-15
GB2223111B (en) 1992-07-22
JP2676410B2 (ja) 1997-11-17

Similar Documents

Publication Publication Date Title
JPH02115928A (ja) ステイツキ‐ビツト値を予測する回路およびその方法
JP3492638B2 (ja) 浮動小数点乗算器
US6138135A (en) Propagating NaNs during high precision calculations using lesser precision hardware
JP2002108606A (ja) スティッキービット生成回路及び乗算器
US10678509B1 (en) Software-driven design optimization for mapping between floating-point and fixed-point multiply accumulators
JPH0727456B2 (ja) 浮動小数点演算装置
KR20080055985A (ko) 선택가능 준정밀도를 가진 부동―소수점 프로세서
EP0040279B1 (en) Binary divider
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
US20130151579A1 (en) Apparatuses and related methods for overflow detection and clamping with parallel operand processing
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
JPH08212058A (ja) 加算オーバフロ検出回路
US4996660A (en) Selection of divisor multipliers in a floating point divide circuit
JPH0250492B2 (ja)
JPH04172526A (ja) 浮動小数点除算器
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
US5305247A (en) Method and processor for high-speed convergence factor determination
Prasanna et al. An efficient fused floating-point dot product unit using vedic mathematics
JP3233432B2 (ja) 乗算器
VENKATESWARLU et al. A Fused Floating-Point Three-Term Adder
KR940008610B1 (ko) 고속 수렴 인자 결정 방법 및 프로세서
Gopal A novel low power multi path double precision fused multiplier accumulator architecture
JP3124286B2 (ja) 浮動小数点数演算装置