JP3306497B2 - 浮動小数点乗算器における丸め回路 - Google Patents

浮動小数点乗算器における丸め回路

Info

Publication number
JP3306497B2
JP3306497B2 JP13967592A JP13967592A JP3306497B2 JP 3306497 B2 JP3306497 B2 JP 3306497B2 JP 13967592 A JP13967592 A JP 13967592A JP 13967592 A JP13967592 A JP 13967592A JP 3306497 B2 JP3306497 B2 JP 3306497B2
Authority
JP
Japan
Prior art keywords
bits
mantissa
carry
bit
rounding
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
JP13967592A
Other languages
English (en)
Other versions
JPH05150948A (ja
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH05150948A publication Critical patent/JPH05150948A/ja
Application granted granted Critical
Publication of JP3306497B2 publication Critical patent/JP3306497B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49915Mantissa overflow or underflow in handling floating-point numbers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は浮動小数点乗算器に関
し、特に、そのような乗算器における丸めの速度を増す
方法及び装置に関する。
【0002】
【従来の技術】コンピュータで使用するための高速乗算
回路を形成する構成は様々に提案されている。基本的に
は、それぞれが先行する部分積より1ビットだけ左にず
れている複数の部分積を確定することにより、2つのn
ビット2進オペランドの積を実現する。次に、それらの
部分積を加算して、結果に到達する。部分積を迅速に加
算するために、個々の部分積を対ごとにまとめ、それら
の部分積の対をけた上げ−保存加算器により並行して加
算する2進ツリー構成が示唆されている。それらの部分
積の加算の結果を再び対ごとにまとめ、それらのグルー
プを別のけた上げ−保存加算器により並行して同じよう
に加算する。最後に残る2つの部分積を加算し終わるま
でこのプロセスを続けてゆき、積を得る。1987年2
月刊のIEEE Journal of Solid−
State Circuits第SC−22巻第1号に
掲載されたHarata他のHigh Speed M
ultiplier Using a Redunda
nt Binary Adder Treeは、そのよ
うな回路を説明している。2進ツリー乗算器の先行する
段からの2つの最後の部分積の和とけた上げを加算する
ために、けた上げ伝播加算器を使用しても良い。
【0003】それらの回路は整数の乗算に使用されても
良いし、あるいは、浮動小数点において仮数を生成する
ときに使用されても良い。浮動小数点乗算器構成で乗算
器回路を使用する場合、乗算器回路は、機械処理による
ときの2倍の数のビットを含む結果を発生するのが普通
であるので、結果を丸めなければならないことが多い。
たとえば、二倍精度2進数に関する規格は53ビットを
要求する。2つの53ビット2進数の積は106ビット
の長さである。ところが、二倍精度の結果はこの積のう
ち上位の54ビットしか使用せず、最上位ビットはあふ
れを示す。下位の53ビットは、下位ビットからけた上
げが生成されるか否か、丸めが必要であるか否か及び精
密な丸め値を確定するためにのみ使用される。
【0004】積の丸めを行うには、まず、仮数を正規化
しなければならない。2つの正規化オペランドを使用す
る2進乗算においては、そのために仮数の右へ1ビット
のシフトが要求されるだけであるので、2進小数点の左
には1つの有位ビットしかなく、指数のべきは増加す
る。仮数が正規化されるまで、丸めが実行されるビット
位置はわからない。積の下位ビットはけた上げを生成し
且つ丸めを確定する目的で使用されるだけではあるが、
上位ビットのけた上げ伝播加算器が演算を開始できるよ
うになる前に、下位ビットのけた上げ結果を生成しなけ
ればならない。上位ビットのけた上げ伝播加算が完了し
なければ、仮数を取出せず、それを正規化することもで
きないので、演算は全体として下位けた上げが生成さ
れ、そのけた上げビットが上位ビットを通って伝播して
ゆくのを待っていなければならないのが普通である。従
って、下位ビットからのけた上げはクリティカルパスに
入っている。
【0005】このような乗算器においては、丸め条件を
生成するために正規化が起こったならば、また、必要に
応じて、最下位ビットで正規化仮数に1を加算して、丸
め結果を発生するのが典型的である。この方式は乗算器
ツリーの出力側でけた上げ伝播加算器を使用し、その加
算器の出力側には増分器を使用して、丸めを発生する。
この構成の動作の速度を増すために一般的な方式は、2
つの丸め回路を並行して使用するというものである。一
方の回路は仮数があふれると仮定し、他方の回路は仮数
があふれないと仮定する。丸められていない仮数の最上
位ビットが利用可能になった時点で、正しい結果を選択
する。いずれの場合にも、従来の典型的な浮動小数点乗
算器では、下位ビットのけた上げ伝播の結果を待つこと
になる。
【0006】
【発明が解決しようとする課題】従って、本発明の目的
は、浮動小数点乗算器回路が結果に到達するまでの速度
を増すことである。本発明の別の、より特定的な目的
は、下位ビットからのけた上げ伝播の結果を待つ必要が
あることによって起こる浮動小数点乗算器回路の遅延の
大部分を排除することである。
【0007】
【課題を解決するための手段】本発明の上記の目的及び
その他の目的は、下位ビットからのキャリーインの生成
を待たずに、キャリーインが起こらなかったものと仮定
して、仮数の上位ビットを供給する手段と;下位ビット
からのキャリーインの生成を待たずに、キャリーインが
起こったものと仮定して、仮数の上位ビットを供給する
手段と;下位ビット加算器からの実際のキャリーイン及
び丸め条件に基づいて、仮数あふれがない場合に対して
選択される仮数に関する第1組の下位ビットを供給する
手段と;下位ビット加算器からの実際のキャリーイン及
び丸め条件に基づいて、仮数あふれがある場合に対して
選択される仮数に関する第2組の下位ビットを供給する
手段と;仮数の下位ビットを通ってキャリーインが伝播
するか否か及び仮数あふれが起こったか否かに基づいて
仮数の上位ビットと下位ビットを選択する手段とを具備
する浮動小数点乗算器の丸め回路において実現される。
【0008】本発明の上記の目的及び特徴並びにその他
の目的及び特徴は、添付の図面に関連する以下の詳細な
説明を参照することにより理解されるであろう。尚、図
面中、いくつかの図を通して同じ図中符号は同じ素子を
指示する。 〔表記法及び用語〕以下の詳細な説明の中には、コンピ
ュータメモリ内部にあるデータビットに関する演算を記
号によって表示している部分がある。そのような説明や
表示は、データ処理技術に熟達した人がその研究の内容
をその技術分野の他の当業者に最も有効に伝達するため
に使用する手段である。ステップは物理的量の物理的操
作を要求するステップである。通常、それらの量は記
憶、転送、組合せ、比較及びその他の方法による操作が
可能な電気的信号又は磁気信号の形態をとるが、必ずそ
うであるとは限らない。時によっては、主に一般に使用
されている用語であるという理由により、それらの信号
をビット、値、要素、記号、文字、項、数などと呼ぶと
好都合であることがわかっている。尚、それらの用語及
びそれに類する用語は、全て、適切な物理的量と関連さ
せるべきものであり、単にそのような量に便宜上付され
たラベルであるにすぎないということを忘れてはならな
い。さらに、実行される操作を、一般にはオペレータが
実行する知的動作と関連している加算又は比較などの用
語で呼ぶことが多いが、本発明の一部を成す、ここに説
明する動作のいずれをとっても、そのようなオペレータ
の能力は不要であり、多くの場合に望ましくない。動作
は機械の動作である。本発明の動作を実行するのに有用
な機械には、汎用デジタルコンピュータ又はそれに類す
る他の装置がある。あらゆる場合、コンピュータを動作
させるときの方法動作と、計算それ自体の方法との明確
な区別に留意すべきである。本発明は、電気的信号又は
他の物理的(たとえば、機械的、化学的)信号を処理し
て、他の所望の物理的信号を発生するに際してコンピュ
ータを動作させる装置に関する。
【0009】
【実施例】浮動小数点乗算器が最終結果に到達する速度
を増すために、本発明はクリティカルパスから下位けた
上げビットの生成を排除する。これを実現するための動
作を理解するために、図1に、最終積を生成する目的で
使用されるけた上げ伝播加算器の出力の様々な条件を表
すいくつかの図を示してある。そこに示されている場合
のいずれにおいても、この積MAN_PR〔105:5
2〕は、乗算器の2進ツリー構成により発生されるオペ
ランド(2つのオペランドS1〔105:52〕及びS
2〔105:52〕として指示されている)の上位ビッ
トを加算することにより発生するけた上げ伝播加算器の
出力である。初めの4つのケースは、正規化を要求する
仮数あふれが存在しないことを想定しており、下の4つ
のケースは仮数あふれが存在することを想定している。
いずれの場合にも、上方の値として仮数値を示し、その
下に2つの最下位ビットについてありうる4つの条件を
示す。
【0010】第1のケースから第4のケースでは、仮数
あふれが存在しないので、仮数を正規化する(指数を増
加し右へシフトする)必要はなく、従って、けた上げ
伝播加算器による下位ビットの加算から供給される丸め
ビットとけた上げビットは同一のビット位置で与えられ
る。第1のケースでは、下位ビットのビット51からの
桁上げはなく、丸めは不要である。従って、けた上げ伝
播加算器により発生される仮数MAN_PR〔105:
52〕は既に正しい。第2のケースでは、けた上げ伝播
加算器の下位ビットからけた上げビット(C51=1)
は生成されるが、丸めは不要であるので、丸めビットは
生成されない。図からわかるように、仮数MAN_PR
〔105:52〕の2つの最下位ビットが共に1である
場合に限って、下位ビットからのけた上げは仮数のビッ
ト54の位置を通って伝播する。このことは、図1に、
けた上げと仮数を組合せた結果の中の左側の一連の点に
より表されている。従って、2つの最下位ビット位置に
1を有する仮数MAN_PR〔105:52〕のみがけ
た上げビットC51の存在によってあふれることにな
る。
【0011】第3のケース(けた上げビットはなく、丸
めビットは存在している)は、仮数の最下位ビット位置
で1つの1のみが加算するので、第2のケースと同一で
ある。従って、第3のケースでは、2つの最下位ビット
位置に1を有する仮数MAN_PR〔105:52〕の
みがけた上げビットC51の存在によってあふれること
になる。
【0012】第4のケースでは、下位ビットからけた上
げビットC51と、丸めビットの双方が生成される。そ
れら2つのビットを加算すると、仮数の次に低いビット
位置で1が加算されることになる。図からわかるよう
に、次に低いビット位置に1を有する仮数値のみが仮数
のビット54を通ってけた上げを伝播させる。この場合
にも、それらは第4のケースの例の中の2つの最下位ビ
ットの左側の点により指示されている。
【0013】第5のケースから第8のケースは、仮数あ
ふれがあるために、仮数を正規化しなければならないこ
とを想定している。この正規化は仮数のビットを右へ位
置1つだけ移動させるもので、けた上げビットが仮数の
ビット52に注入され続けている間に下位けた上げ伝播
加算器からの丸めビットを仮数のビット53のレベルに
注入する効果をもつ。
【0014】従って、丸めビットとけた上げビットは2
つの異なるビット位置で与えられる。第5のケースで
は、下位ビットのビット51からのけた上げはなく、丸
めは不要である。そのため、けた上げ伝播加算器により
発生される仮数MAN_PR〔105:52〕は、その
仮数の最下位ビットがどのようなものであっても、既に
正しい結果となっている。ところが、第6のケースで
は、けた上げ伝播加算器の下位ビットからけた上げビッ
ト(C51=1)は生成されるが、丸めビットは生成さ
れない。図からわかるように、仮数MAN_PR〔10
5:52〕の2つの最下位ビットが共に1である場合に
限って、下位ビットからのけた上げは仮数のビット54
の位置を通って伝播する。このことも、同様に、図1の
結果の左側の一連の点により指示されている。従って、
2つの最下位ビット位置に1を有する仮数MAN_PR
〔105:52〕のみがけた上げビットC51の存在に
よってあふれを生じうる。
【0015】第7のケース(けた上げビットはないが、
丸めビットは存在している)は、仮数の次に低いビット
位置で単一の1が加算される第4のケースと同一であ
る。次に低いビット位置に1を有する仮数値MAN_P
R〔105:52〕のみが次に低いビット位置に存在す
る1によってあふれを生じて、仮数のビット54を通っ
てけた上げを伝播しうる。
【0016】第8のケースでは、けた上げビットC51
と、丸めビットの双方が存在している。それら2つのビ
ットを加算すると、最下位ビット位置の双方に1が現れ
る。図からわかるように、仮数値が最下位ビット位置の
双方に0を有している場合に限って、けた上げは仮数の
ビット54を通って伝播しない。同様に、それらの伝播
は第8のケースの例の中の2つの最下位ビットの左側の
点により指示されている。
【0017】このように、ビット54を通るけた上げが
ない仮数と、ビット54を通るけた上げがある仮数とい
う一対の仮数を生成することにより、上記のケースで表
されている全ての条件を容易に発生できることがわかる
であろう。それらの仮数は、下位ビットからのけた上げ
を待たずに生成可能である。それらの仮数は一連のマル
チプレクサに供給され、マルチプレクサの出力は丸め,
下位けた上げ及びあふれの実際の発生により選択される
ので、乗算器から結果を得るときに相当の時間を節約で
きる。
【0018】図2は、本発明を実現する回路のブロック
線図である。回路10は第1のけた上げ伝播加算器12
と、第2のけた上げ伝播加算器13とを含む。第1のけ
た上げ伝播加算器12は入力として1対のオペランドS
1〔105:52〕及びS2〔105:52〕を受信
し、それら2つの値を加算して、仮数値MAN_0〔5
3:0〕を発生する。加算器12は下位ビットから0の
キャリーインを受信するので、ビット51にけた上げが
なかったものと仮定する仮数を発生する。第2のけた上
げ伝播加算器13は入力として一対のオペランドS1
〔105:54〕及びS2〔105:54〕を受信し、
それら2つの値を加算して、仮数値MAN_4〔53:
2〕を発生する。加算器13はビット54のレベルで下
位ビットから1のキャリーインを受信するので、ビット
53を通ってけた上げが伝播したものと仮定する仮数を
発生する。
【0019】このように、これら2つのけた上げ伝播加
算器は、ビット52ではキャリーインがなく、ビット5
4へキャリーインが伝播したものと仮定して、ビット5
4〜ビット105から仮数ビットを発生する。加算器1
2からの仮数の2つの最下位ビットは脱落し、2つの加
算器12及び13からの残る数字は最終仮数の可能な2
つの上位値〔53:2〕として一対のマルチプレクサ1
5及び16のそれぞれに供給される。従って、けた上げ
伝播加算器12及び13による演算が完了したならば、
オペランドの下位ビットの加算の結果として起こるけた
上げを待たずに、直ちに2つの最下位ビットを除く仮数
値を利用できるのである。マルチプレクサ15及び16
で選択する値は図2のその他の回路により確定される。
【0020】加算器12及び13が可能な2つの仮数値
の上位ビットを生成するために動作している間、組合わ
せ論理18は2つのオペランドの下位ビットS1_M
〔50:0〕及びS2_M〔50:0〕を加算し、出力
としてけた上げビット51と、スティッキービットとを
発生する。それら2つのビットを使用して、上位ビット
位置で要求される実際の丸めとけた上げを確定する。2
進浮動小数点演算に関するIEEE規格754は、「ラ
ウンド・トゥ・ニアレスト(最も近い値への丸め)」の
デフォルト丸めモードを生成し、タイの場合には「ラウ
ンド・トゥ・ニアレスト/イーブン(最も近い値/偶数
への丸め)」を選択する。タイを解決するために、IE
EE754に従って「スティッキービット」を生成す
る。スティッキービットは、2つのオペランドのいずれ
か一方の保護ビット位置を通過するいずれかの下位ビッ
トが1であるときに1の値を有する。1のビットがなけ
れば、スティッキービットは1である。
【0021】IEEEは先に示したデフォルトモードを
規定するのみならず、他の3つのモードをも提示してい
る。それらは0に向かう丸め、正の無限大に向かう丸め
及び負の無限大に向かう丸めである。これらの丸めモー
ドに関わる丸め値は、スティッキービットの値がわかっ
ているときにそれぞれ発生されると思われる。
【0022】丸め、けた上げ及びあふれに応じて変化す
るそれぞれのオペランドS1,S2の3つのビット〔5
3:51〕は、3ビット加算器回路20に供給される。
この回路20は加算器18から生成されるけた上げビッ
トC51及びスティッキービットと、4つの丸めモード
の中のどれが希望されるかを指示する信号RAN_MO
DEとをさらに受信する。加算器回路20はそれらの信
号を丸めモードに従った方式で加算し、出力信号RN
と、出力信号RVとを発生する。信号RNは仮数のあふ
れがない場合に使用すべき丸め値であり、RVは仮数の
あふれがある場合に使用すべき丸め値である。
【0023】2ビット加算器22には最下位ビット位置
のRN値が供給される。加算器22には、けた上げ伝播
加算器12により仮数について生成され、仮数値がマル
チプレクサ15及び16へ転送されるときに脱落した2
つの最下位ビット〔52:51〕(MAN_0〔1:
0〕として示してある)も供給される。それらの値と、
けた上げビット51の値とを組合わせて、最終仮数の2
つの最下位ビットについて値RDO〔1:0〕を発生す
る。その組合わせによって、信号CNも発生する。信号
CNの値は、仮数のあふれが含まれていない場合に仮数
のビット2へのキャリーインがあるか否かを示す。この
信号CNの有無を利用して、マルチプレクサ15からの
出力を選択する。けた上げがある場合、キャリーインを
受信した加算器13が発生した値(MAN_4〔53:
2〕を選択する。また、けた上げがない場合には、キャ
リーインを伴わない加算器12が発生した値MAN_0
〔53:2〕を選択する。従って、加算器22からの信
号CNは、最終仮数のビット2へキャリーインが伝播さ
れるか否かに応じて、2つの部分仮数のうち一方を正し
く選択する。
【0024】同じように、RV値は、最下位ビット位置
の1に関連する次に低いビット位置で2ビット加算器2
3に供給される。加算器23には、けた上げ伝播加算器
12により仮数として生成されたが、マルチプレクサ1
5及び16へ転送されない2つの最下位ビット〔52:
51〕(ここではMAN_0〔1:0〕として示してあ
る)も供給される。それらの値と、けた上げビット51
の値とを組合わせて、仮数あふれの場合に使用すべき仮
数の2つの最下位ビットに関して可能な値RD4〔1:
0〕を発生する。その組合わせは、仮数のあふれが起こ
ったときに仮数のビット2へのキャリーインが存在する
か否かを示す値CVをさらに発生させる。この信号CV
の有無を利用して、マルチプレクサ16からの出力を選
択する。けた上げがある場合、キャリーインを受信した
加算器13が発生した値MAN_4〔53:2〕を選択
する。また、けた上げがない場合には、キャリーインを
伴わない加算器12が発生した値MAN_0〔53:
2〕を選択する。従って、加算器23からの信号CV
は、最終仮数のビット2へキャリーインが伝播されるか
否かに応じて、2つの部分仮数のうち一方を正しく選択
するのである。
【0025】最後に、マルチプレクサ15により転送さ
れた上位ビットを加算器22からの2つの下位ビットと
連絡して、第3のマルチプレクサ25に1つの入力とし
て供給する。同様に、マルチプレクサ16により転送さ
れた上位ビット値を2ビット加算器23により供給され
た2つの下位ビットと連絡して、第3のマルチプレクサ
25に別の入力として供給する。マルチプレクサ25が
発生する出力は、このマルチプレクサ25の右側に示し
た論理項により制御される。キャリーインを伴わない加
算器12の仮数からのあふれが起こったならば、1のキ
ャリーインを伴う加算器13の仮数からあふれが起こら
なければならない。ところが、その逆は真ではない。す
なわち、1のキャリーインによって加算器13のあふれ
は起こっても良いが、加算器12があふれている必要は
ない。
【0026】従って、けたけた上げ伝播加算器12が発
生する上位ビットが1(仮数あふれを示す)である場
合、マルチプレクサ16からの値と加算器23により発
生される値を選択する。同様に、けた上げ伝播加算器1
3が発生する上位ビットが1(仮数あふれを示す)であ
り且つ最終仮数のビット2へのキャリーインがある(C
N=1)場合には、マルチプレクサ16からの値と加算
器23により発生される結果を選択する。それらの事態
がいずれも起こらないならば、マルチプレクサ15と加
算器22により発生される仮数を選択する。
【0027】ここまで説明したような図2の回路が正し
い結果を発生しないケースが1つある。ビット51のす
ぐ左側の2つのオペランドS1及びS2の全てのビット
が1であるという条件が存在する。ビット51に1が加
算されると、けた上げは各段階を経て左へ伝播してゆく
はずである。ビット54から始まって加算を実行する加
算器13により伝播は実行されないので、このような事
態は起こらない。そこで、乗算器ツリーの出力がビット
51のすぐ左側の全て1のストリングである場合に初期
けた上げビットを同化するために、一連の半加算器から
成る回路30を使用する。
【0028】当業者にはわかるであろうが、本発明の回
路は、上位ビットについてのけた上げ伝播加算器の動作
が完了すると、動作の開始前に下位ビットからのけた上
げを待たずに、直ちに可能な仮数の最下位ビットを除く
全てのビットを生成させ、あふれを確定する。そこで、
回路は、下位ビットを与えるために、ビット51へのキ
ャリーインの値、スティッキービット及び3つのビット
位置にまたがる丸めモードを評価するだけで良い。従っ
て、けた上げビットC51は上位けた上げ伝播加算器の
全ての段を通るのではなく、3つのビット段を経て伝播
するだけで良い。このように、本発明の回路は、クリテ
ィカルパスから下位けた上げ伝播加算器により供給され
るけた上げビットをほぼ排除することにより、はるかに
急速に結果を提供する。
【0029】本発明を好ましい一実施例に関連して説明
したが、当業者により本発明の趣旨から逸脱せずに様々
な変形や変更を実施しうることは理解されるであろう。
従って、本発明は特許請求の範囲及び次の実施態様によ
って評価されるべきである。
【0030】1.仮数の下位ビットを通ってキャリーイ
ンが伝播するか否か及び仮数あふれが起こったかに否か
に基づいて仮数の上位ビットと下位ビットを選択する手
段は、仮数に関わる1組の下位ビットを供給する手段の
それぞれによりキャリーアウトが生成されるか否かを検
出する手段を具備する請求項1記載の2進ツリー浮動小
数点乗算器の丸め回路。
【0031】2.仮数の下位ビットを通ってキャリーイ
ンが伝播するか否か及び仮数あふれが起こったか否かに
基づいて仮数の上位ビットと下位ビットを選択する手段
は、仮数の上位ビットを供給する手段のそれぞれにより
供給されるビットのうち最上位のビットの条件を評価す
る手段を具備する上記1記載の2進ツリー浮動小数点乗
算器の丸め回路。
【0032】3.仮数の下位ビットを通ってキャリーイ
ンが伝播するか否か及び仮数あふれが起こったか否かに
基づいて仮数の上位ビットと下位ビットを選択する手段
は、仮数の上位ビットを供給する手段のそれぞれにより
供給されるビットのうち最上位のビットの条件を評価す
る手段を具備する請求項1記載の2進ツリー浮動小数点
乗算器の丸め回路。
【0033】4.下位ビット加算器からの実際のキャリ
ーイン及び丸め条件に基づいて仮数の第1組の下位ビッ
トを供給する手段は、キャリーインが起こらなかったも
のと仮定して仮数の上位ビットを供給する手段により生
成される最下位ビットと、下位ビットから生成される丸
め値と、下位ビットからのキャリーインとをそれらの値
が仮数あふれを伴わずに加算されるであろうように加算
する第1の加算器から成り;下位ビット加算器からの実
際のキャリーイン及び丸め条件に基づいて仮数の第2組
の下位ビットを供給する手段は、キャリーインが起こら
なかったものと仮定して仮数の上位ビットを供給する手
段により生成される最下位ビットと、下位ビットから生
成される丸め値と、下位ビットからのキャリーインとを
それらの値が仮数あふれを伴って加算されるであろうよ
うに加算する第2の加算器から成る上記1記載の2進ツ
リー浮動小数点乗算器の丸め回路。
【図面の簡単な説明】
【図1】浮動小数点乗算器回路における様々なあふれ、
キャリーイン及び丸めの可能性の結果として起こりうる
条件を示す図。
【図2】本発明に従って構成した回路のブロック線図。
【符号の説明】
12 第1のけた上げ伝播加算器 13 第2のけた上げ伝播加算器 15,16 マルチプレクサ 18 組合わせ論理 20 3ビット加算器回路 22,23 2ビット加算器 25 マルチプレクサ 30 一連の半加算器
───────────────────────────────────────────────────── フロントページの続き (73)特許権者 591064003 901 SAN ANTONIO ROA D PALO ALTO,CA 94303, U.S.A. (56)参考文献 特開 平3−18925(JP,A) 特開 平2−231629(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/52 310 G06F 7/38

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 2つの2進オペランド・ビット〔n:
    0〕の浮動小数点乗算においてビット〔2n+1:0〕
    の最終仮数を丸める、2進ツリー浮動小数点乗算器用の
    丸め回路であって、前記2進ツリー浮動小数点乗算器
    は、複数対のビット〔2n+1:0〕の部分積を複数の
    桁上げ伝播加算器で加算して前記最終加算を発生するも
    のであり、 第1の仮数のビット〔n+1:0〕を与える第1の加算
    手段(12)にして、キャリーインがビットnのレベルで起
    こらなかったものと仮定して、前記第1及び第2の部分
    積のビット〔n−1:0〕からのキャリーインの生成を
    待たずに、ビット〔2n+1:n〕の第1及び第2の部
    分積の加算を行うことによって、第1の仮数のビット
    〔n+1:0〕を与える第1の加算手段(12)を備え; 第2の仮数のビット〔n+1:2〕を与える第2の加算
    手段(13)にして、キャリーインがビットn+2のレベル
    で起こらなかったものと仮定して、前記第1及び第2の
    部分積のビット〔n+1:0〕からのキャリーインの生
    成を待たずに、ビット〔2n+1:n+2〕の第1及び
    第2の部分積の加算を行うことによって、第1の仮数の
    ビット〔n+1:2〕を与える第1の加算手段(13)を備
    え; 前記最終仮数のビット〔1:0〕の第1セットを与える
    第1の回路手段(22)にして、前記第1及び第2のビット
    〔n−2:0〕の加算からの実際のキャリーインと丸め
    条件とに基づいて、仮数あふれがない場合に対して選択
    されるものとして、前記最終仮数のビット〔1:0〕の
    第1セットを与える第1の回路手段(22)を備え、 前記最終仮数のビット〔1:0〕の第2セットを与える
    第2の回路手段(23)にして、前記第1及び第2のビット
    〔n−2:0〕の加算からの実際のキャリーインと丸め
    条件とに基づいて、仮数あふれがある場合に対して選択
    されるものとして、前記最終仮数のビット〔1:0〕の
    第2セットを与える第2の回路手段(23)を備え、 前記最終仮数のビット〔n+1:2〕およびビット
    〔1:0〕を選択するマルチプレクサ手段(15,16,25)に
    して、当該ビット〔n+1:2〕は前記第1の加算手段
    (12)で与えられる前記第1の仮数のビット〔n+1:
    2〕および前記第2の加算手段(13)で与えられる前記第
    2の仮数のビット〔n+1:2〕から、当該ビット
    〔1:0〕は前記第1の回路手段(22)で与えられるビッ
    ト〔1:0〕の前記1セットおよび前記第2の回路手段
    (23)で与えられるビット〔1:0〕の前記2セットか
    ら、キャリーインが前記最終仮数のビット〔1:0〕を
    通して伝播したか否かおよび仮数あふれが起こったか否
    かに基づいて、それぞれ選択をするマルチプレクサ手段
    (15,16,25)を備えていることを特徴とする、浮動小数点
    乗算器における丸め回路。
JP13967592A 1991-05-03 1992-05-06 浮動小数点乗算器における丸め回路 Expired - Fee Related JP3306497B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/695,423 US5150319A (en) 1991-05-03 1991-05-03 Circuitry for rounding in a floating point multiplier
US695423 1991-05-03

Publications (2)

Publication Number Publication Date
JPH05150948A JPH05150948A (ja) 1993-06-18
JP3306497B2 true JP3306497B2 (ja) 2002-07-24

Family

ID=24792917

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13967592A Expired - Fee Related JP3306497B2 (ja) 1991-05-03 1992-05-06 浮動小数点乗算器における丸め回路

Country Status (5)

Country Link
US (1) US5150319A (ja)
EP (1) EP0512686B1 (ja)
JP (1) JP3306497B2 (ja)
KR (1) KR950006582B1 (ja)
DE (1) DE69225638T2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218564A (en) * 1991-06-07 1993-06-08 National Semiconductor Corporation Layout efficient 32-bit shifter/register with 16-bit interface
JPH06348455A (ja) * 1993-06-14 1994-12-22 Matsushita Electric Ind Co Ltd 乗算における丸め込み方法及び乗算回路
EP0678813B1 (en) * 1994-03-07 1997-10-15 Nec Corporation Floating point multiplier
US5790446A (en) * 1995-07-05 1998-08-04 Sun Microsystems, Inc. Floating point multiplier with reduced critical paths using delay matching techniques
KR100290906B1 (ko) * 1998-03-10 2001-07-12 김영환 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법
US20080028014A1 (en) * 2006-07-26 2008-01-31 Hilt Jason W N-BIT 2's COMPLEMENT SYMMETRIC ROUNDING METHOD AND LOGIC FOR IMPLEMENTING THE SAME
US9489174B2 (en) 2014-09-26 2016-11-08 Imagination Technologies Limited Rounding floating point numbers
CN109634555B (zh) * 2018-12-19 2022-11-01 深圳信息职业技术学院 一种基于注入值的浮点加法尾数快速舍入方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4849923A (en) * 1986-06-27 1989-07-18 Digital Equipment Corporation Apparatus and method for execution of floating point operations
US4922446A (en) * 1988-04-01 1990-05-01 Digital Equipment Corporation Apparatus and method for floating point normalization prediction
US4972362A (en) * 1988-06-17 1990-11-20 Bipolar Integrated Technology, Inc. Method and apparatus for implementing binary multiplication using booth type multiplication
US5027308A (en) * 1989-02-14 1991-06-25 Intel Corporation Circuit for adding/subtracting two floating point operands
US4926370A (en) * 1989-04-17 1990-05-15 International Business Machines Corporation Method and apparatus for processing postnormalization and rounding in parallel
US4941120A (en) * 1989-04-17 1990-07-10 International Business Machines Corporation Floating point normalization and rounding prediction circuit
US4977535A (en) * 1989-12-08 1990-12-11 Motorola, Inc. Method of computation of normalized numbers

Also Published As

Publication number Publication date
DE69225638T2 (de) 1999-01-28
EP0512686A2 (en) 1992-11-11
US5150319A (en) 1992-09-22
EP0512686B1 (en) 1998-05-27
KR920022667A (ko) 1992-12-19
KR950006582B1 (ko) 1995-06-19
DE69225638D1 (de) 1998-07-02
JPH05150948A (ja) 1993-06-18
EP0512686A3 (en) 1993-05-19

Similar Documents

Publication Publication Date Title
US6099158A (en) Apparatus and methods for execution of computer instructions
EP0483864B1 (en) Hardware arrangement for floating-point addition and subtraction
US6647404B2 (en) Double precision floating point multiplier having a 32-bit booth-encoded array multiplier
JP2002108606A (ja) スティッキービット生成回路及び乗算器
US4941120A (en) Floating point normalization and rounding prediction circuit
EP0351242B1 (en) Floating point arithmetic units
US4866652A (en) Floating point unit using combined multiply and ALU functions
JPH02196328A (ja) 浮動小数点演算装置
JP2000259394A (ja) 浮動小数点乗算器
EP0040279A2 (en) Binary divider
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JP3306497B2 (ja) 浮動小数点乗算器における丸め回路
EP0416308A2 (en) Rectangular array signed digit multiplier
US5177703A (en) Division circuit using higher radices
US7337202B2 (en) Shift-and-negate unit within a fused multiply-adder circuit
US5117384A (en) Method and apparatus for exponent adder
JP2511527B2 (ja) 浮動小数点演算器
JPH04355827A (ja) 開平演算装置
EP1052568B1 (en) Three input split-adder
US4190894A (en) High speed parallel multiplication apparatus with single-step summand reduction
US20030084084A1 (en) Method and apparatus for a multi-purpose domino adder
JPH04172526A (ja) 浮動小数点除算器
EP0438962A2 (en) Method and apparatus for exponent adder
US6067556A (en) Method and apparatus for adding floating point numbers in a data processing system
JP2856792B2 (ja) 浮動小数点数演算装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees