JPH0520028A - 加減算のための浮動小数点演算装置の仮数部処理回路 - Google Patents

加減算のための浮動小数点演算装置の仮数部処理回路

Info

Publication number
JPH0520028A
JPH0520028A JP3340642A JP34064291A JPH0520028A JP H0520028 A JPH0520028 A JP H0520028A JP 3340642 A JP3340642 A JP 3340642A JP 34064291 A JP34064291 A JP 34064291A JP H0520028 A JPH0520028 A JP H0520028A
Authority
JP
Japan
Prior art keywords
bit
value
shift
intermediate result
post
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.)
Withdrawn
Application number
JP3340642A
Other languages
English (en)
Inventor
Tadahiro Yoshida
忠弘 吉田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of JPH0520028A publication Critical patent/JPH0520028A/ja
Withdrawn 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
    • 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)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 仮数部処理回路の改良を通して浮動小数点演
算装置における加減算の高速実行を実現する。 【構成】 プレシフト後の仮数部データma ,mb の加
減算の結果を第1の中間結果(中間和)R1 として出力
する演算器11と、中間和R1 に対する丸め加算の結果
を第2の中間結果(丸め結果)R2 として出力する丸め
加算器12と、丸め結果R2 に施すべきポストシフトに
関する情報を出力するためのポストシフトカウントエン
コード回路(PSCE回路)13と、丸め結果R2 を正
規化のために実際に右又は左にシフトするためのポスト
シフト回路14とを設ける。PSCE回路13は、中間
和R1 中の最初の非ゼロ値ビットの位置に応じてポスト
シフトの内容を指定するためのシフト指定部15と、丸
め加算時の桁上げのために該最初の非ゼロ値ビットの位
置の移動が生じるものと予測される場合にポストシフト
のシフト量を補正するためのシフト補正部16とを備え
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、各々符号ビットと指数
部と仮数部とを有しかつ各々正規化された2つの浮動小
数点数をオペランドとした加減算のための浮動小数点演
算装置において仮数部の加減算並びに該仮数部の加減算
の結果に対する丸め及び正規化の操作を各々実行するた
めの仮数部処理回路に関するものである。
【0002】
【従来の技術】科学技術計算の分野では、計算精度が高
いこと、表現できる数値範囲が大きいこと等の理由によ
り、コンピュータ内部での実数の表現形式として浮動小
数点数が主に用いられている。
【0003】例えばIEEE754で定められた64ビ
ット正規化倍精度浮動小数点数のフォーマットは、図5
のとおりである。同図において、Sは1ビットからなる
符号ビット、eは11ビットの指数部、mは最上位ビッ
トMから最下位ビットLに至る52ビットの仮数部であ
る。このフォーマットの浮動小数点数で表現される実数
は、 (−1)S e-1023(1.m) となる。すなわち、仮数部mの最上位ビットMより更に
上位に仮想的な非ゼロ値ビットと小数点とがくるよう
に、その分指数部eの値を調整した正規化表現形式を採
用している。
【0004】図6は、浮動小数点演算装置の内部での加
減算のための仮数部mの取扱い方法の例を示したフォー
マット図である。nビットからなる仮数部m(以下、仮
数部mのビット数をnと表わす。)の最上位ビットMよ
り更に上位には、上位から順に、図5中の符号ビットS
と、2ビットの整数部を構成する拡張ビットu及びリー
ディングビットvとがそれぞれ付加される。このうち拡
張ビットu及びリーディングビットvからなる整数部u
vには、01(u=0,v=1)の値が設定される。小
数部としてのnビットの仮数部mのうちの最下位ビット
Lより更に下位には、上位から順にガードビットgとラ
ウンドビットrとの2ビットが付加され、00(g=r
=0)の値が設定される。桁落ちの有無を表示するため
のスティッキービットsがラウンドビットrより更に下
位に付加される場合もあるが、ここではスティッキービ
ットsはないものとする。つまり、浮動小数点演算装置
の内部では、仮数部mは、 Suv M Lgr x01.x… …x00 (ただし、x:0または1) で表わされる(n+5)ビットのデータ構造を有する仮
数部データとして取り扱われるのである。
【0005】さて、2つのオペランドの各々が上記のよ
うな正規化浮動小数点数である場合の加減算は、例えば
次の(1) 〜(7) の手順で実行される。
【0006】(1) 2つのオペランドの指数部の値を比較
する。
【0007】(2) 両指数部の値が一致しない場合には指
数部の値の小さい方のオペランドの仮数部を含んだ仮数
部データを両指数部の値の差に等しいビット数だけ下位
方向へすなわち右にシフトすることにより、両オペラン
ドの仮数部データの桁を合わせる。この操作をプレシフ
トと呼ぶ。該プレシフトの際、リーディングビットvの
非ゼロ値が小数部中へ入っていき、かつ小数部の最下位
ビットLの値がガードビットg及びラウンドビットrへ
順次出ていく。
【0008】(3) 2つの仮数部データの2進加減算を実
行して第1の中間結果(中間和)を得る。この際、符号
ビットS、拡張ビットu、リーディングビットv、ガー
ドビットg及びラウンドビットrを含んだ(n+5)ビ
ットの2進加減算が実行される。ただし、減算の場合に
は、減数としての仮数部データの(n+5)ビット全て
の値を反転したうえ被減数としての仮数部データとの2
進加算を実行し、更にラウンドビットrに1を加算す
る。つまり、減数の2の補数を被減数に加えるのであ
る。
【0009】(4) 有効桁をnビットとするために、第1
の中間結果のうちのあるビットに1を加える丸め加算を
実行して第2の中間結果(丸め結果)を得る。ただし、
丸め加算の対象となるビットは、正規化をも考慮して、
最下位ビットL、ガードビットg及びラウンドビットr
の中から選定される。
【0010】例えば、第1の中間結果R1 が であるときは、非ゼロ値の拡張ビットuに続くリーディ
ングビットv以下のnビットを有効桁とするように、小
数部の最下位ビットLに1を加算する。また、第1の中
間結果R1 が のように負の値になった場合には、仮数部の丸め及び正
数化のために、該第1の中間結果R1 のうちの符号ビッ
トSを除く(n+4)ビット全ての値を反転したうえラ
ウンドビットrに1を加算することにより、第2の中間
結果を得る。なお、第1の中間結果R1 が、例えば であるときは、ラウンドビットrがnビットの有効桁の
中に含まれることになるため、丸め加算は実行されな
い。
【0011】(5) 正規化のために第2の中間結果に施す
べきポストシフトのシフト方向とシフト量とを決定す
る。これをポストシフトカウントエンコードと呼ぶ。例
えば、第2の中間結果R2 が であるときは、正規化のために該第2の中間結果R2 を
1ビット右にシフトする必要がある。また、第2の中間
結果R2 が であるときは、正規化のために該第2の中間結果R2 を
2ビット左にシフトする必要がある。
【0012】このために、整数部uvの値が00である
場合には、第2の中間結果R2 のリーディングビットv
から順に下位へ向かって最初の非ゼロ値ビットに行き当
たるまでのリーディングビットvを含めたゼロ値ビット
の個数kを調べ、このゼロ値ビットの個数kをポストシ
フトの左シフト量とする。整数部uvのうちの拡張ビッ
トuの値が1である場合にはk=−1(1ビット右へポ
ストシフト)とし、整数部uvの値が01である場合に
はk=0(ポストシフトなし)とする。
【0013】(6) 第2の中間結果R2 を (5)で得られた
シフト量k(第2の中間結果R2 に基づくポストシフト
量)に従って実際に右又は左にシフトし、そのポストシ
フト後の仮数部データのうちの小数部の最上位ビットM
から最下位ビットLまでのnビットを演算結果の仮数部
として取り出す。また、ポストシフト後の仮数部データ
中の符号ビットSを取り出して、これを演算結果の符号
ビットとする。
【0014】(7) 第2の中間結果R2 をシフト量kだけ
ポストシフトしたことに対応して、2つのオペランドの
指数部のうちの大きい方の指数部の値から該ポストシフ
トのシフト量k(=−1,0,+1,+2,…)を減じ
て得た値を演算結果の指数部とする。
【0015】以上の(1) 〜(7) の手順の手順により、丸
め加算の結果としての仮数部を有する図5の正規化フォ
ーマットを備えた演算結果が得られる。
【0016】図4は、以上の(1) 〜(7) の手順に従って
正規化浮動小数点数の加減算を実行するための従来の浮
動小数点演算装置のうちの、(3) 〜(6) の手順を実行す
るための仮数部処理回路の例を示すブロック図である。
同図において、41はプレシフトが施された2つの仮数
部データma ,mb の2進加減算を実行してその結果を
第1の中間結果(中間和)R1 として出力するための演
算器、42は該演算器41からの第1の中間結果R1 に
対する丸め及び正数化のための加算を実行してその結果
を第2の中間結果(丸め結果)R2 として出力するため
の丸め加算器、43は該丸め加算器42からの第2の中
間結果R2 に正規化のために施すべきポストシフトのシ
フト量k(=−1,0,+1,+2,…)を該第2の中
間結果R2 に基づいて決定するためのポストシフトカウ
ントエンコード回路(PSCE回路)、44は該PSC
E回路43からのシフト量kに従って丸め加算器42か
らの第2の中間結果R2 を実際に右又は左にシフトしそ
のポストシフトの結果を演算結果の仮数部データmc と
して出力するためのポストシフト回路である。
【0017】
【発明が解決しようとする課題】ところが、上記従来の
加減算のための浮動小数点演算装置の仮数部処理回路
は、第1の中間結果(中間和)R1 に対する丸め加算器
42による処理が終了するのを待って、該丸め加算器4
2から出力される第2の中間結果(丸め結果)R2に基
づいてPSCE回路43によりポストシフトカウントエ
ンコードを行う構成であったため、この構成が高速演算
のボトルネックとなっていた。
【0018】本発明の目的は、仮数部の加減算の実行並
びにその実行結果に対する丸め及び正規化の操作を行う
ための仮数部処理回路の改良を通して、浮動小数点演算
装置における加減算の高速実行を実現することにある。
【0019】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、第1の中間結果(中間和)R1 に基づい
て、丸め加算と並行してポストシフトカウントエンコー
ドを行う構成を採用したものである。
【0020】具体的に説明すると、請求項1の発明は、
各々符号ビットと指数部とnビットからなる仮数部とを
有しかつ各々正規化された2つの浮動小数点数をオペラ
ンドとした加減算のための浮動小数点演算装置において
仮数部の加減算並びに該仮数部の加減算の結果に対する
丸め及び正規化の操作を各々実行するための仮数部処理
回路であって、図1に示すように、次のような演算器1
1、丸め加算器12、ポストシフトカウントエンコード
回路(PSCE回路)13及びポストシフト回路14を
備えた構成を採用したものである。すなわち、演算器1
1は、前記2つのオペランドの各々の指数部の値が一致
しない場合には指数部の小さい方のオペランドの仮数部
が両指数部の値の差に等しいビット数だけ下位方向へプ
レシフトされた両オペランドの各々の仮数部を、前記2
つのオペランドの各々の指数部の値が一致した場合には
該プレシフトが施されない両オペランドの各々の仮数部
をそれぞれ入力データma ,mb として受け取り、かつ
該受け取った2つの入力データma ,mb の2進加減算
を実行し、かつ該2進加減算の結果を第1の中間結果R
1 として出力するものである。丸め加算器12は、該演
算器11からの第1の中間結果R1 に対する丸め加算を
実行し、かつ該丸め加算の結果を第2の中間結果R2 と
して出力するものである。PSCE回路13は、該丸め
加算器12からの第2の中間結果R2 に正規化のために
施すべきポストシフトのシフト方向とシフト量とに関す
る情報を前記演算器11からの第1の中間結果R1 に基
づいて生成し、かつ該生成した情報をポストシフト情報
k1 ,k2 として出力するものである。また、ポストシ
フト回路14は、該PSCE回路13からのポストシフ
ト情報k1 ,k2 に従って前記丸め加算器12からの第
2の中間結果R2 を上位方向又は下位方向へシフトし、
かつ該シフトの結果を演算結果の仮数部を含んだ出力デ
ータmc として出力するものである。
【0021】また、請求項2の発明における前記PSC
E回路13は、同じく図1中に示すように、次のような
シフト指定部15とシフト補正部16とを備えた構成を
採用したものである。すなわち、シフト指定部15は、
前記演算器11からの第1の中間結果R1 の上位ビット
から順に下位へ向かって最初の非ゼロ値ビットを探し、
かつ探し当てた最初の非ゼロ値ビットの位置に応じてポ
ストシフトのシフト方向とシフト量とに関する情報を生
成し、かつ該生成した情報を第1のポストシフト情報k
1 として前記ポストシフト回路14に与えるものであ
る。また、シフト補正部16は、前記演算器11からの
第1の中間結果R1 の最初の非ゼロ値ビットの位置が前
記丸め加算器12による丸め加算のために1ビットだけ
上位方向に移動すると予測される場合には、下位方向へ
1ビットの追加ポストシフトを実行すべき旨の第2のポ
ストシフト情報k2 を前記ポストシフト回路14に与え
るものである。
【0022】また、請求項3の発明では、前記演算器1
1は、次のような2つの仮数部データma ,mb を前記
入力データとして受け取ることを前提としている。すな
わち、該2つの仮数部データma ,mb は、図6に示す
ように、nビットの小数部としての前記2つのオペラン
ドの各々の仮数部mの最上位ビットMより更に上位には
上位から順に各オペランドの符号ビットSと2ビットの
整数部を構成する拡張ビットu及びリーディングビット
vとがそれぞれ付加され、かつ該各々の仮数部mの最下
位ビットLより更に下位には上位から順にガードビット
gとラウンドビットrとの2ビットがそれぞれ付加され
てなる(n+5)ビットのデータ構造を有するものであ
る。しかも、該2つの仮数部データma ,mb の各々の
拡張ビットu及びリーディングビットvからなる整数部
uvに01の値が設定されかつ両仮数部データma ,m
b の各々のガードビットg及びラウンドビットrにそれ
ぞれ0の値が設定された後に、該2つの仮数部データm
a ,mb のうちの一方の仮数部データのリーディングビ
ットvの非ゼロ値が該仮数部データの小数部m中へ入っ
ていきかつ該小数部mの最下位ビットLの値が該仮数部
データのガードビットg及びラウンドビットrへ順次出
ていくように、前記プレシフトが必要に応じて施された
ものである。請求項3の発明は、前記演算器11が以上
のような2つの仮数部データma ,mb を前記入力デー
タとして受け取ることを前提として、該演算器11、前
記丸め加算器12、並びに、前記PSCE回路13のシ
フト指定部15及びシフト補正部16の各々の機能を次
のように定めたものである。
【0023】まず、前記演算器11は、受け取ったプレ
シフト後の2つの仮数部データma,mb の(n+5)
ビットの2進加減算を実行し、かつ該加減算の結果の符
号ビットSの値が1である場合には該加減算の結果のう
ちの該符号ビットSを除く全てのビットの値を反転した
結果を、該加減算の結果の符号ビットSの値が0である
場合には該加減算の結果をそのまま、各々前記2つの仮
数部データma ,mbと同一の(n+5)ビットのデー
タ構造を有する第1の中間結果R1 として出力する機能
を有することとする。
【0024】また、前記丸め加算器12は、前記演算器
11からの第1の中間結果R1 の符号ビットSの値が0
でありかつ整数部uvの値が10又は11である場合に
は該第1の中間結果R1 の小数部mの最下位ビットLに
1を加算した結果を、前記演算器11からの第1の中間
結果R1 の符号ビットSの値が0でありかつ整数部uv
の値が01である場合には該第1の中間結果R1 のガー
ドビットgに1を加算した結果を、前記演算器11から
の第1の中間結果R1 の符号ビットSの値が0でありか
つ整数部uvの値が00でありかつ小数部mの最上位ビ
ットMの値が1である場合或いは前記演算器11からの
第1の中間結果R1 の符号ビットSの値が1である場合
には該第1の中間結果R1 のラウンドビットrに1を加
算した結果を、その他の場合には前記演算器11からの
第1の中間結果R1 をそのまま、各々前記ポストシフト
回路14への第2の中間結果R2 として出力する機能を
有することとする。
【0025】また、前記PSCE回路13のシフト指定
部15は、前記演算器11からの第1の中間結果R1 の
整数部uvの値が10又は11である場合には下位方向
へ1ビットのポストシフトを実行すべき旨の情報を、前
記演算器11からの第1の中間結果R1 の整数部uvの
値が01である場合にはポストシフトのシフト量を0と
すべき旨の情報を、前記演算器11からの第1の中間結
果R1 の整数部uvの値が00である場合には該第1の
中間結果R1のリーディングビットvから順に下位へ向
かって最初の非ゼロ値ビットに行き当たるまでの該リー
ディングビットvを含めたゼロ値ビットの個数を上位方
向へのシフト量とすべき旨の情報を、各々前記ポストシ
フト回路14への第1のポストシフト情報k1 として出
力する機能を有することとする。
【0026】また、前記PSCE回路13のシフト補正
部16は、図1中に示すように、前記演算器11からの
第1の中間結果R1 のリーディングビットvからガード
ビットgまでの(n+2)ビットが全て非ゼロ値ビット
である場合には第1の検出信号d1 を出力する第1の検
出回路17と、前記演算器11からの第1の中間結果R
1 の拡張ビットuからラウンドビットrまでの(n+
4)ビットのうち該拡張ビットuから始まる連続したゼ
ロ値ビットを除く全てのビットが非ゼロ値ビットである
場合には第2の検出信号d2 を出力する第2の検出回路
18とを有し、かつ該第1及び第2の検出信号d1 ,d
2 のうちのいずれか一方が出力されたときには前記ポス
トシフト回路14への第2のポストシフト情報k2 を出
力する機能を有することとしたものである。
【0027】また、請求項4の発明では、前記演算器1
1は、次のような2つの仮数部データma ,mb を前記
入力データとして受け取ることを前提としている。すな
わち、該2つの仮数部データma ,mb は、図6に示す
ように、nビットの小数部としての前記2つのオペラン
ドの各々の仮数部mの最上位ビットMより更に上位には
上位から順に各オペランドの符号ビットSと2ビットの
整数部を構成する拡張ビットu及びリーディングビット
vとがそれぞれ付加され、かつ該各々の仮数部mの最下
位ビットLより更に下位には上位から順にガードビット
gとラウンドビットrとスティッキービットsとの3ビ
ットがそれぞれ付加されてなる(n+6)ビットのデー
タ構造を有するものである。しかも、該2つの仮数部デ
ータma,mb の各々の拡張ビットu及びリーディング
ビットvからなる整数部uvに01の値が設定されかつ
両仮数部データma ,mb の各々のガードビットg、ラ
ウンドビットr及びスティッキービットsにそれぞれ0
の値が設定された後に、該2つの仮数部データma ,m
b のうちの一方の仮数部データのリーディングビットv
の非ゼロ値が該仮数部データの小数部m中へ入っていき
かつ該小数部mの最下位ビットLの値が該仮数部データ
のガードビットg及びラウンドビットrへ順次出ていく
ように、かつ該ラウンドビットrからの桁落ちがある場
合には該仮数部データのスティッキービットsに1の値
を設定するように、前記プレシフトが必要に応じて施さ
れたものである。請求項4の発明は、前記演算器11が
以上のような2つの仮数部データma ,mb を前記入力
データとして受け取ることを前提として、該演算器1
1、前記丸め加算器12、並びに、前記PSCE回路1
3のシフト指定部15及びシフト補正部16の各々の機
能を次のように定めたものである。
【0028】まず、前記演算器11は、受け取ったプレ
シフト後の2つの仮数部データma,mb の(n+6)
ビットの2進加減算を実行し、かつ該加減算の結果の符
号ビットSの値が1である場合には該加減算の結果のう
ちの該符号ビットSを除く全てのビットの値を反転した
結果を、該加減算の結果の符号ビットSの値が0である
場合には該加減算の結果をそのまま、各々前記2つの仮
数部データma ,mbと同一の(n+6)ビットのデー
タ構造を有する第1の中間結果R1 として出力する機能
を有することとする。
【0029】また、前記丸め加算器12は、前記演算器
11からの第1の中間結果R1 の符号ビットSの値が0
でありかつ整数部uvの値が10又は11でありかつガ
ードビットgとラウンドビットrとスティッキービット
sとの各々の値の論理和が1である場合或いは前記演算
器11からの第1の中間結果R1の符号ビットSの値が
0でありかつ整数部uvの値が10又は11でありかつ
ガードビットgとラウンドビットrとスティッキービッ
トsとの各々の値の論理和が0でありかつ小数部mのう
ちの最下位ビットLより1ビット上位のビットの値が1
である場合には該第1の中間結果R1 の小数部mの最下
位ビットLに1を加算した結果を、前記演算器11から
の第1の中間結果R1 の符号ビットSの値が0でありか
つ整数部uvの値が01でありかつラウンドビットrと
スティッキービットsとの各々の値の論理和が1である
場合或いは前記演算器11からの第1の中間結果R1 の
符号ビットSの値が0でありかつ整数部uvの値が01
でありかつラウンドビットrとスティッキービットsと
の各々の値の論理和が0でありかつ小数部mの最下位ビ
ットLの値が1である場合には該第1の中間結果R1 の
ガードビットgに1を加算した結果を、前記演算器11
からの第1の中間結果R1 の符号ビットSの値が0であ
りかつ整数部uvの値が00でありかつ小数部mの最上
位ビットMの値が1でありかつスティッキービットsの
値が1である場合、前記演算器11からの第1の中間結
果R1 の符号ビットSの値が0でありかつ整数部uvの
値が00でありかつ小数部mの最上位ビットMの値が1
でありかつスティッキービットsの値が0でありかつガ
ードビットgの値が1である場合或いは前記演算器11
からの第1の中間結果R1 の符号ビットSの値が1であ
る場合には該第1の中間結果R1のラウンドビットrに
1を加算した結果を、その他の場合には前記演算器11
からの第1の中間結果R1 をそのまま、各々前記ポスト
シフト回路14への第2の中間結果R2 として出力する
機能を有することとする。
【0030】また、前記PSCE回路13のシフト指定
部15は、前記演算器11からの第1の中間結果R1 の
整数部uvの値が10又は11である場合には下位方向
へ1ビットのポストシフトを実行すべき旨の情報を、前
記演算器11からの第1の中間結果R1 の整数部uvの
値が01である場合にはポストシフトのシフト量を0と
すべき旨の情報を、前記演算器11からの第1の中間結
果R1 の整数部uvの値が00である場合には該第1の
中間結果R1のリーディングビットvから順に下位へ向
かって最初の非ゼロ値ビットに行き当たるまでの該リー
ディングビットvを含めたゼロ値ビットの個数を上位方
向へのシフト量とすべき旨の情報を、各々前記ポストシ
フト回路14への第1のポストシフト情報k1 として出
力する機能を有することとする。
【0031】また、前記PSCE回路13のシフト補正
部16は、図1中に示すように、前記演算器11からの
第1の中間結果R1 のリーディングビットvからガード
ビットgまでの(n+2)ビットが全て非ゼロ値ビット
である場合には第1の検出信号d1 を出力する第1の検
出回路17と、前記演算器11からの第1の中間結果R
1 の拡張ビットuからラウンドビットrまでの(n+
4)ビットのうち該拡張ビットuから始まる連続したゼ
ロ値ビットを除く全てのビットが非ゼロ値ビットである
場合には第2の検出信号d2 を出力する第2の検出回路
18とを有し、かつ該第1及び第2の検出信号d1 ,d
2 のうちのいずれか一方が出力されたときには前記ポス
トシフト回路14への第2のポストシフト情報k2 を出
力する機能を有することとしたものである。
【0032】また、請求項5の発明における前記PSC
E回路13のシフト補正部16中の第2の検出回路18
は、図3に示すように、前記演算器11からの第1の中
間結果R1 の拡張ビットuからラウンドビットrまでの
(n+4)ビットのうちの拡張ビットuの値をb(n+
3)と表わし、かつラウンドビットrの値をb(0)と
表わすように(n+4)個のビット値b(i)(i=n
+3〜0)を定義したとき、次のような第1〜第3の論
理回路31〜33を備えた構成を採用したものである。
すなわち、第1の論理回路31は、i=n+2〜0の範
囲の各々のiの値について、b(i+1)とb(i)と
が一致しない場合には1を、一致した場合には0をそれ
ぞれ出力ビットの値p(i)とするものである。第2の
論理回路32は、i=n+2〜0の範囲の各々のiの値
について、b(i+1)が0でありかつb(i)が1で
ある場合には1を、その他の場合には0をそれぞれ出力
ビットの値q(i)とするものである。そして、第3の
論理回路33は、i=n+2〜0の範囲の全てのiの値
について前記第1の論理回路31の出力ビットの値p
(i)と前記第2の論理回路32の出力ビットの値q
(i)とが一致した場合に限り前記第2の検出信号d2
を出力するものである。
【0033】
【作用】請求項1の発明によれば、演算器11から出力
される第1の中間結果(中間和)R1 は、丸め加算器1
2とPSCE回路13との双方に入力される。つまり、
PSCE回路13は、丸め加算器12からの第2の中間
結果R2の出力を待ってポストシフトカウントエンコー
ドを開始するのではなくて、演算器11からの第1の中
間結果R1 に基づいて丸め加算と並行してポストシフト
カウントエンコードを実行するのである。これにより、
第1の中間結果R1 に対する丸め及び正規化の処理速度
が向上する。
【0034】また、請求項2の発明によれば、PSCE
回路13のシフト指定部15は、演算器11からの第1
の中間結果R1 中の最初の非ゼロ値ビットの位置に応じ
て、ポストシフトのシフト方向とシフト量とを指定した
第1のポストシフト情報k1をポストシフト回路14に
与える。また、PSCE回路13のシフト補正部16
は、演算器11からの第1の中間結果R1 中の最初の非
ゼロ値ビットの位置が丸め加算器12による丸め加算時
の桁上げのために1ビットだけ上位方向に移動すると予
測される場合には、下位方向へ1ビットの追加ポストシ
フトを実行すべき旨の第2のポストシフト情報k2 をポ
ストシフト回路14に与えることによりポストシフトの
シフト量を補正する。これを受けて、ポストシフト回路
14は、丸め加算器12からの第2の中間結果R2 に対
する適正なポストシフトを実行することができる。
【0035】また、請求項3の発明によれば、仮数部処
理回路の内部において、2つのオペランドのnビットの
仮数部(小数部)mは、各々符号ビットS、拡張ビット
u、リーディングビットv、ガードビットg及びラウン
ドビットrの5ビットが付加された(n+5)ビットの
データ構造を有する仮数部データma ,mb として取り
扱われる。この場合、演算器11は、2進加減算の結果
が負になった場合は該加減算の結果に正数化のための反
転操作を施したものを第1の中間結果R1 として出力す
る。丸め加算器12は、該演算器11からの第1の中間
結果R1 のうちの小数部mの最下位ビットL、ガードビ
ットg又はラウンドビットrのうちのいずれかのビット
に1を加算した結果をポストシフト回路14への第2の
中間結果R2 として出力する。この際、前記反転操作が
施された第1の中間結果R1 を丸め加算器12が受け取
った場合には、該第1の中間結果R1 のラウンドビット
rに1が加算されることによって丸め及び正数化の処理
が完了する。一方、PSCE回路13のシフト指定部1
5は、同じく演算器11からの第1の中間結果R1の中
の拡張ビットu、リーディングビットv、小数部m、ガ
ードビットg及びラウンドビットrを上位から順に調
べ、最初の非ゼロ値ビットの位置に応じて、ポストシフ
トのシフト方向とシフト量とを指定した第1のポストシ
フト情報k1 をポストシフト回路14に与える。
【0036】さて、後に詳細に説明するように、正規化
浮動小数点数をオペランドとしている関係上、演算器1
1からの第1の中間結果R1 中の最初の非ゼロ値ビット
の位置が丸め加算時の桁上げのために1ビット上位に移
動するのは、ガードビットgに1を加算する場合とラウ
ンドビットrに1を加算する場合との2つの場合に限ら
れる。
【0037】これを第1の中間結果R1 の(n+5)ビ
ットのデータ構造の面から言えば、第1の場合は、第1
の中間結果R1 のリーディングビットvからガードビッ
トgまでの(n+2)ビットが全て非ゼロ値ビットであ
る場合(以下、この状態をR1 =all 1と表わす。)に
対応する。例えば第1の中間結果R1 が であるときは、ガードビットgに1を加算することによ
り順次桁上げが生じるので、丸め加算器12から出力さ
れる第2の中間結果R2 が となるのである。
【0038】また、第2の場合は、第1の中間結果R1
の拡張ビットuからラウンドビットrまでの(n+4)
ビットのうち該拡張ビットuから始まる連続したゼロ値
ビットを除く全てのビットが非ゼロ値ビットである場合
(以下、この状態をデータが「割れて」いると呼び、R
1 =div 01と表わす。)に対応する。例えば第1の中
間結果R1 が であるときは、ラウンドビットrに1を加算することに
より順次桁上げが生じるので、丸め加算器12から出力
される第2の中間結果R2 が となるのである。
【0039】以上のとおり、第1の中間結果R1 中の最
初の非ゼロ値ビットの位置が丸め加算時に移動するの
は、R1 =all 1の場合とR1 =div 01の場合との2
つの場合に限られるのである。請求項3の発明によれ
ば、PSCE回路13のシフト補正部16は、R1 =al
l 1であることを検出したときに第1の検出信号d1 を
出力する第1の検出回路17と、R1 =div 01である
ことを検出したときに第2の検出信号d2 を出力する第
2の検出回路18とを有し、該第1及び第2の検出信号
d1 ,d2 のうちのいずれか一方が出力された場合に
は、第1の中間結果R1 に基づくシフト指定部15から
の第1のポストシフト情報k1 のみに従ったポストシフ
トを補正するように、下位方向へ1ビットの追加ポスト
シフトを実行すべき旨の第2のポストシフト情報k2を
ポストシフト回路14に与える。
【0040】また、請求項4の発明によれば、仮数部処
理回路の内部において、2つのオペランドのnビットの
仮数部(小数部)mは、各々前記ラウンドビットrより
下位にスティッキービットsが更に付加された(n+
6)ビットのデータ構造を有する仮数部データma ,m
b として取り扱われる。ただし、この場合でも、丸め加
算器12において丸めの対象となるビットは、演算器1
1からの第1の中間結果R1 のうちの小数部mの最下位
ビットL、ガードビットg又はラウンドビットrのうち
のいずれかである。そして、演算器11からの第1の中
間結果R1 中の最初の非ゼロ値ビットの位置が丸め加算
時の桁上げのために1ビット上位に移動するのは、やは
りガードビットgに1を加算する場合とラウンドビット
rに1を加算する場合との2つの場合に限られる。つま
り、第1の中間結果R1 中の最初の非ゼロ値ビットの位
置が丸め加算時に移動するのは、請求項3の発明の場合
と同じく、R1 =all 1の場合とR1 =div 01の場合
との2つの場合に限られるのである。これに対応して、
請求項4の発明に係る仮数部処理回路のPSCE回路1
3にも、請求項3の発明の場合と同じ構成のシフト指定
部15とシフト補正部16とを設けている。
【0041】また、請求項5の発明によれば、PSCE
回路13のシフト補正部16中の第2の検出回路18
は、第1〜第3の論理回路31〜33のはたらきによ
り、演算器11からの第1の中間結果R1 のデータが割
れているかどうか、すなわちR1=div 01が成立する
かどうかを検出することができる。
【0042】
【実施例】以下、本発明の実施例を、図面に基づいてか
つ数値例を挙げながら詳細に説明する。
【0043】図1は、本発明の実施例に係る加減算のた
めの浮動小数点演算装置の仮数部処理回路のブロック図
である。ただし、加減算の2つのオペランドXa ,Xb
とその演算結果Xc とは、各々図5に示す64ビット正
規化倍精度浮動小数点数フォーマットを有するものとす
る。そして、該2つのオペランドXa ,Xb 及び演算結
果Xc の各々の11ビットの指数部eをea ,eb ,e
c とし、各々の52ビットの仮数部mをμa ,μb ,μ
c とする。これら3つの仮数部μa ,μb ,μc は、各
々のビット数をnと表わすとき、浮動小数点演算装置の
内部では各々図6に示すフォーマットを有する(n+
5)ビットの仮数部データma ,mb ,mc として取り
扱われるものとする。しかも、本実施例の仮数部処理回
路に与えられる2つの仮数部データma ,mb は、指数
部の値の小さい方のオペランド例えば第2のオペランド
Xb の仮数部データmb を両オペランドXa ,Xb の指
数部の値の差(ea −eb )に等しいビット数だけ下位
方向へプレシフトすることにより、既に桁合わせが施さ
れているものとする。なお、本実施例ではスティッキー
ビットsはないものとする。
【0044】図1において、11は2つの仮数部データ
ma ,mb の2進加減算を実行してその結果を第1の中
間結果(中間和)R1 として出力するための演算器、1
2は該演算器11からの第1の中間結果R1 に対する丸
め加算を実行してその結果を第2の中間結果(丸め結
果)R2 として出力するための丸め加算器、13は該丸
め加算器12からの第2の中間結果R2 に正規化のため
に施すべきポストシフトのシフト方向とシフト量とに関
する情報を前記演算器11からの第1の中間結果R1 に
基づいて生成してその情報をポストシフト情報k1 ,k
2 として出力するためのポストシフトカウントエンコー
ド回路(PSCE回路)、14は該PSCE回路13か
らのポストシフト情報k1 ,k2 に従って前記丸め加算
器12からの第2の中間結果R2 を上位方向又は下位方
向へシフトしてその結果を演算結果の仮数部データmc
として出力するためのポストシフト回路である。
【0045】このうち演算器11は、プレシフトが施さ
れた2つの仮数部データma ,mbの入力を受けて、該
入力された2つの仮数部データma,mb の(n+5)
ビットの2進加減算を実行し、かつ該加減算の結果の符
号ビットSの値が1である場合には該加減算の結果のう
ちの該符号ビットSを除く全てのビットの値を反転した
結果を、該加減算の結果の符号ビットSの値が0である
場合には該加減算の結果をそのまま、各々図6に示した
(n+5)ビットのデータ構造を有する第1の中間結果
R1 として出力するものである。
【0046】丸め加算器12は、演算器11からの第1
の中間結果R1 の符号ビットSの値が0でありかつ整数
部uvの値が10又は11である場合には該第1の中間
結果R1 の小数部mの最下位ビットLに1を加算した結
果を、演算器11からの第1の中間結果R1 の符号ビッ
トSの値が0でありかつ整数部uvの値が01である場
合には該第1の中間結果R1 のガードビットgに1を加
算した結果を、演算器11からの第1の中間結果R1 の
符号ビットSの値が0でありかつ整数部uvの値が00
でありかつ小数部mの最上位ビットMの値が1である場
合或いは演算器11からの第1の中間結果R1 の符号ビ
ットSの値が1である場合には該第1の中間結果R1 の
ラウンドビットrに1を加算した結果を、その他の場合
には演算器11からの第1の中間結果R1 をそのまま、
各々ポストシフト回路14への第2の中間結果R2 とし
て出力するものである。
【0047】PSCE回路13は、次のようなシフト指
定部15とシフト補正部16とを備えたものである。
【0048】まず、PSCE回路13のシフト指定部1
5は、演算器11からの第1の中間結果R1 の上位ビッ
トから順に下位すなわち右へ向かって最初の非ゼロ値ビ
ットを探し、かつ探し当てた最初の非ゼロ値ビットの位
置に応じてポストシフトのシフト方向とシフト量とに関
する情報を生成し、かつ該生成した情報を第1のポスト
シフト情報k1 としてポストシフト回路14に与えるも
のである。更に詳細には、該シフト指定部15は、演算
器11からの第1の中間結果R1 の整数部uvの値が1
0又は11である場合には右に1ビットのポストシフト
を実行すべき旨の情報を、演算器11からの第1の中間
結果R1 の整数部uvの値が01である場合にはポスト
シフトのシフト量を0とすべき旨の情報を、演算器11
からの第1の中間結果R1 の整数部uvの値が00であ
る場合には該第1の中間結果R1のリーディングビット
vから順に右に向かって最初の非ゼロ値ビットに行き当
たるまでの該リーディングビットvを含めたゼロ値ビッ
トの個数を左シフト量とすべき旨の情報を、各々ポスト
シフト回路14への第1のポストシフト情報k1 として
出力する機能を有するものである。具体的には、左シフ
トの場合にはシフト量に正の符号を付したものを第1の
ポストシフト情報k1 とすることとし、1ビット右への
ポストシフトの場合はk1 =−1、ポストシフトなしの
場合はk1 =0とすればよい。つまり、第1のポストシ
フト情報k1 は、−1,0,+1,+2,…のうちのい
ずれかの値をとることとなる。
【0049】また、PSCE回路13のシフト補正部1
6は、演算器11からの第1の中間結果R1 の最初の非
ゼロ値ビットの位置が丸め加算器12による丸め加算の
ために1ビットだけ上位方向すなわち左に移動すると予
測される場合には、右に1ビットの追加ポストシフトを
実行すべき旨の第2のポストシフト情報k2 をポストシ
フト回路14に与えるものである。このために、該シフ
ト補正部16は、次のような第1及び第2の検出回路1
7,18並びにNORゲート19を備えている。すなわ
ち、第1の検出回路17は、演算器11からの第1の中
間結果R1 のリーディングビットvからガードビットg
までの(n+2)ビットが全て非ゼロ値ビットである場
合すなわちR1 =all1が成立する場合に第1の検出信
号d1 を出力するものである。また、第2の検出回路1
8は、演算器11からの第1の中間結果R1 の拡張ビッ
トuからラウンドビットrまでの(n+4)ビットのう
ち該拡張ビットuから始まる連続したゼロ値ビットを除
く全てのビットが非ゼロ値ビットである場合すなわちR
1 =div 01が成立する場合に第2の検出信号d2を出
力するものである。NORゲート19は、第1及び第2
の検出信号d1 ,d2 のうちのいずれか一方が出力され
たときに、前記ポストシフト回路14への第2のポスト
シフト情報k2 を出力するものである。
【0050】ポストシフト回路14は、該PSCE回路
13のシフト補正部16からの第2のポストシフト情報
k2 を受けない場合には同PSCE回路13のシフト指
定部15からの第1のポストシフト情報k1 (−1,
0,+1,+2,…)のみに従って丸め加算器12から
の第2の中間結果R2 に右又は左への所定量のポストシ
フトを施し、該シフト補正部16からの第2のポストシ
フト情報k2 を受けた場合にはシフト指定部15からの
第1のポストシフト情報k1 のみに従ったポストシフト
を右へ1ビットだけ補正するものである。
【0051】以上の構成を有する本実施例に係る仮数部
処理回路の動作を、以下詳細に説明する。ただし、説明
を簡単にするために2つのオペランドXa ,Xb はいず
れも正(符号ビットS=0)の浮動小数点数であるもの
としたうえ、(1) 加算(Xc=Xa +Xb )の場合と、
(2) 減算(Xc =Xa −Xb )の場合とに分けて説明す
る。
【0052】(1) 加算(Xc =Xa +Xb )の場合 まず、加算について、(1.1) ea −eb =0(プレシフ
トなし)の場合、(1.2) ea −eb =1(1ビットのプ
レシフト)の場合、及び、(1.3) ea −eb ≧2(2ビ
ット以上のプレシフト)の場合に分けて説明する。
【0053】(1.1) ea −eb =0(プレシフトなし)
の場合 計算式は、 となる。プレシフトがないので、両仮数部データma ,
mb とも整数部uvの値は01のままであり、かつガー
ドビットg及びラウンドビットrの値は00のままであ
る。この際、演算器11からの第1の中間結果(中間
和)R1 中の整数部uvの値の組み合わせは、10と1
1との2通りに限られる。
【0054】(1.1.1) uv=10の場合 演算器11からの第1の中間結果R1 が であるときは、非ゼロ値の拡張ビットuに続くリーディ
ングビットv以下のnビットを有効桁とするように、小
数部の最下位ビットLに1を加算する丸め加算と、1ビ
ット右へのポストシフトとを施す必要がある。
【0055】これに対して、本実施例の丸め加算器12
は、第1の中間結果R1 のSuvの値が010であるこ
とを検出する結果、該第1の中間結果R1 の小数部の最
下位ビットLに1を加算した結果を第2の中間結果(丸
め結果)R2 として出力する。一方、PSCE回路13
のシフト指定部15は、第1の中間結果R1 の整数部u
vの値が10であることを検出する結果、右に1ビット
のポストシフトを施すべき旨の第1のポストシフト情報
k1 を出力する。また、R1 ≠all 1(vg=00)で
あるので、PSCE回路13のシフト補正部16中の第
1の検出回路17は第1の検出信号d1 を出力しない。
また、R1 ≠div 01(u=1,gr=00)であるの
で、同シフト補正部16中の第2の検出回路18は第2
の検出信号d2 を出力しない。この結果、ポストシフト
回路14は、シフト指定部15からの第1のポストシフ
ト情報k1 のみに従って、丸め加算器12からの第2の
中間結果R2 を右に1ビットだけシフトする。
【0056】(1.1.2) uv=11の場合 演算器11からの第1の中間結果R1 が であるときは、非ゼロ値の拡張ビットuに続くリーディ
ングビットv以下のnビットを有効桁とするように、小
数部の最下位ビットLに1を加算する丸め加算と、1ビ
ット右へのポストシフトとを施す必要がある。ただし、
第1の中間結果R1 の小数部の最上位ビットMから最下
位ビットLに至るnビットの値が全て1である場合に
は、最下位ビットLへの丸め加算の結果、桁上げが拡張
ビットuへ波及するおそれがある。ところが、2つの仮
数部データma ,mbがともに最大値である場合でも、 となるため実際には第1の中間結果R1 の小数部の全ビ
ットの値が全て1となることはないので、上記のとおり
小数部の最下位ビットLに1を加算する丸め加算と、1
ビット右へのポストシフトとを施せばよい。
【0057】これに対して、本実施例の丸め加算器12
は、第1の中間結果R1 のSuvの値が011であるこ
とを検出する結果、該第1の中間結果R1 の小数部の最
下位ビットLに1を加算した結果を第2の中間結果R2
として出力する。一方、PSCE回路13のシフト指定
部15は、第1の中間結果R1 の整数部uvの値が11
であることを検出する結果、右に1ビットのポストシフ
トを施すべき旨の第1のポストシフト情報k1 を出力す
る。また、R1 ≠all 1(g=0)であるので、PSC
E回路13のシフト補正部16中の第1の検出回路17
は第1の検出信号d1 を出力しない。また、R1 ≠div
01(gr=00)であるので、同シフト補正部16中
の第2の検出回路18は第2の検出信号d2 を出力しな
い。この結果、ポストシフト回路14は、シフト指定部
15からの第1のポストシフト情報k1 のみに従って、
丸め加算器12からの第2の中間結果R2 を右に1ビッ
トだけシフトする。
【0058】(1.2) ea −eb =1(1ビットのプレシ
フト)の場合 計算式は、 となる。つまり、指数部の値の小さい方の第2のオペラ
ンドXb の仮数部データmb は、プレシフトの結果、リ
ーディングビットvの非ゼロ値が小数部の最上位ビット
Mへ移動し、かつ小数部の最下位ビットLの値がガード
ビットgへ移動した状態となっている。この際、演算器
11からの第1の中間結果R1 中の整数部uv及び小数
部の最上位ビットMの値の組み合わせは、011と10
xとの2通りに限られる。
【0059】(1.2.1) uvM=011の場合 演算器11からの第1の中間結果R1 が であるときは、非ゼロ値のリーディングビットvに続く
小数部の最上位ビットM以下のnビットを有効桁とする
ように、ガードビットgに1を加算する丸め加算を施
し、かつポストシフトなしとする必要がある。ところ
が、該第1の中間結果R1 のリーディングビットvから
ガードビットgまでの(n+2)ビットが全て非ゼロ値
ビットである場合すなわちR1 =all 1である場合に
は、ガードビットgに1を加算することにより順次桁上
げが生じるので、丸め加算器12から出力される第2の
中間結果R2 が となることが予想される。したがって、この場合には、
非ゼロ値の拡張ビットuに続くリーディングビットv以
下のnビットを有効桁とするように、第2の中間結果R
2 に1ビット右へのポストシフトを施す必要がある。
【0060】これに対応して、本実施例の仮数部処理回
路は、R1 ≠all 1である場合とR1 =all 1である場
合とで動作が異なる。
【0061】まず、R1 ≠all 1である場合には、本実
施例の丸め加算器12は、第1の中間結果R1 のSuv
の値が001であることを検出する結果、該第1の中間
結果R1 のガードビットgに1を加算した結果を第2の
中間結果R2 として出力する。一方、PSCE回路13
のシフト指定部15は、第1の中間結果R1 の整数部u
vの値が01であることを検出する結果、ポストシフト
のシフト量を0とすべき旨の第1のポストシフト情報k
1 を出力する。また、R1 ≠all 1であるので、PSC
E回路13のシフト補正部16中の第1の検出回路17
は第1の検出信号d1 を出力しない。また、R1 ≠div
01(r=0)であるので、同シフト補正部16中の第
2の検出回路18は第2の検出信号d2 を出力しない。
この結果、ポストシフト回路14は、シフト指定部15
からの第1のポストシフト情報k1 のみに従って、丸め
加算器12からの第2の中間結果R2 にポストシフトを
施さない。
【0062】これに対してR1 =all 1である場合に
は、本実施例の丸め加算器12は、R1 ≠all 1の場合
と同じくやはり第1の中間結果R1 のSuvの値が00
1であることを検出する結果、該第1の中間結果R1 の
ガードビットgに1を加算した結果すなわち を第2の中間結果R2 として出力する。一方、PSCE
回路13のシフト指定部15は、R1 ≠all 1の場合と
同じくやはり第1の中間結果R1 の整数部uvの値が0
1であることを検出する結果、ポストシフトのシフト量
を0とすべき旨の第1のポストシフト情報k1 を出力す
る。ところが、R1 =all 1であるので、PSCE回路
13のシフト補正部16中の第1の検出回路17は第1
の検出信号d1 を出力する。この結果、右に1ビットの
追加ポストシフトを実行すべき旨の第2のポストシフト
情報k2 がポストシフト回路14に与えられる。したが
って、ポストシフト回路14は、シフト指定部15から
の第1のポストシフト情報k1 とシフト補正部16から
の第2のポストシフト情報k2 とに従って、丸め加算器
12からの第2の中間結果R2 に対して右に1ビットの
適正なポストシフトを施すこととなる。
【0063】(1.2.2) uvM=10xの場合 演算器11からの第1の中間結果R1 が であるときは、非ゼロ値の拡張ビットuに続くリーディ
ングビットv以下のnビットを有効桁とするように、小
数部の最下位ビットLに1を加算する丸め加算と、1ビ
ット右へのポストシフトとを施す必要がある。
【0064】これに対する本実施例に係る仮数部処理回
路の動作は前述の(1.1.1) の場合とほぼ同様であるの
で、説明を省略する。
【0065】(1.3) ea −eb ≧2(2ビット以上のプ
レシフト)の場合 計算式は、 となる。つまり、指数部の値の小さい方の第2のオペラ
ンドXb の仮数部データmb は、プレシフトの結果、リ
ーディングビットvの非ゼロ値1が小数部中へ入ってい
き、かつ小数部の最下位ビットLの値がガードビットg
及びラウンドビットrを通して順次出ていった状態とな
っている。この際、演算器11からの第1の中間結果R
1 中の整数部uv及び小数部の最上位ビットMの値の組
み合わせは、01xと100との2通りに限られる。
【0066】(1.3.1) uvM=01xの場合 演算器11からの第1の中間結果R1 が であるときは、前述の(1.2.1) の場合と同じく、ガード
ビットgに1を加算する丸め加算を施すとともに、第1
の中間結果R1 のリーディングビットvからガードビッ
トgまでの(n+2)ビットの中に少なくとも1ビット
のゼロ値ビットがある(R1 ≠all 1)か、該(n+
2)ビットが全て非ゼロ値ビットである(R1 =all
1)かに応じて、ポストシフトのシフト量を調整する必
要がある。
【0067】これに対応した本実施例に係る仮数部処理
回路の動作は(1.2.1) の場合とほぼ同様であるので、説
明を省略する。
【0068】(1.3.2) uvM=100の場合 演算器11からの第1の中間結果R1 が であるときは、非ゼロ値の拡張ビットuに続くリーディ
ングビットv以下のnビットを有効桁とするように、小
数部の最下位ビットLに1を加算する丸め加算と、1ビ
ット右へのポストシフトとを施す必要がある。
【0069】これに対する本実施例に係る仮数部処理回
路の動作は前述の(1.1.1) の場合とほぼ同様であるの
で、説明を省略する。
【0070】(2) 減算(Xc =Xa −Xb )の場合 次に、減算について、(2.1) ea −eb =0(プレシフ
トなし)の場合、(2.2) ea −eb =1(1ビットのプ
レシフト)の場合、及び、(2.3) ea −eb ≧2(2ビ
ット以上のプレシフト)の場合に分けて説明する。
【0071】(2.1) ea −eb =0(プレシフトなし)
の場合 計算式は、 となる。ただし、演算器11は、この減算式に代えて次
の加算式 を実行する。すなわち、減数としての第2の仮数部デー
タmb の(n+5)ビット全ての値を反転(反転結果を
mb'とする。)したうえ、被減数としての第1の仮数部
データma との加算を実行し、更にラウンドビットrに
1を加算する。つまり、第2の仮数部データmb の2の
補数を第1の仮数部データma に加えた結果を第1の中
間結果(中間和)R1 として出力するのである。この
際、上記加算式中の第1の中間結果R1 における符号ビ
ットS及び整数部uvの値の組み合わせは、000と1
11との2通りに限られる。ただし、Suv=111の
場合には、減算結果が負の値(符号ビットS=1)にな
っているので、演算器11は正数化のための反転操作を
実行する。つまり、該減算結果のうちの符号ビットSを
除く(n+4)ビット全ての値を反転し、 を第1の中間結果R1 として出力する。したがって、演
算器11からの第1の中間結果R1 中の符号ビットS及
び整数部uvの値の組み合わせは、000と100との
2通りに限られる。
【0072】(2.1.1) Suv=000の場合 演算器11からの第1の中間結果R1 が であるときは、小数部中の最初の非ゼロ値ビットに続く
nビットを有効桁とする必要がある。例えば小数部の最
上位ビットMが非ゼロ値ビットである場合には、該最上
位ビットMに続くガードビットgまでのnビットを有効
桁とするように、ラウンドビットrに1を加算する丸め
加算と、1ビット左へのポストシフトとを施す必要があ
る。ところが、小数部の最上位ビットMがゼロ値ビット
でありその1ビット下位のビットが非ゼロ値ビットであ
る場合には、ラウンドビットrまでのnビットを有効桁
とするように2ビット左へのポストシフトを施す必要が
あるが、丸め加算は実行の必要がない。
【0073】これに対して、本実施例の丸め加算器12
は、第1の中間結果R1 のSuvMの値が0001であ
ることを検出した場合には該第1の中間結果R1 のラウ
ンドビットrに1を加算した結果を、第1の中間結果R
1のSuvMの値が0000であることを検出した場合
には該第1の中間結果R1 をそのまま、各々第2の中間
結果R2 として出力する。一方、PSCE回路13のシ
フト指定部15は、第1の中間結果R1 の整数部uvの
値が00であることを検出する結果、該第1の中間結果
R1 のリーディングビットvから順に下位へ向かって最
初の非ゼロ値ビットに行き当たるまでのゼロ値ビットの
個数を該リーディングビットvを含めて計数し、該ゼロ
値ビットの個数を左へのシフト量とすべき旨の第1のポ
ストシフト情報k1 を出力する。また、R1 ≠all 1
(vg=00)であるので、PSCE回路13のシフト
補正部16中の第1の検出回路17は第1の検出信号d
1 を出力しない。また、R1 ≠div 01(gr=00)
であるので、同シフト補正部16中の第2の検出回路1
8は第2の検出信号d2 を出力しない。この結果、ポス
トシフト回路14は、シフト指定部15からの第1のポ
ストシフト情報k1 のみに従って、丸め加算器12から
の第2の中間結果R2 を所定のビット数だけ左にシフト
する。
【0074】(2.1.2) Suv=100の場合 演算器11からの第1の中間結果R1 が であるとき(該第1の中間結果R1 には既に正数化のた
めの反転操作が施されている。)は、該第1の中間結果
R1 のラウンドビットrに1を加算する丸め加算を実行
することにより丸め及び正数化の処理を完了させたう
え、小数部中の最初の非ゼロ値ビットに続くnビットを
有効桁とする必要がある。ところが、この第1の中間結
果R1 の拡張ビットuからラウンドビットrまでの(n
+4)ビットのうち該拡張ビットuから始まる連続した
ゼロ値ビットを除く全てのビットが非ゼロ値ビットであ
る場合すなわちR1 =div 01である場合には、ラウン
ドビットrに1を加算することによって順次桁上げが生
じる。例えば、第1の中間結果R1 が であるときは、ラウンドビットrに1を加算することに
より順次桁上げが生じるので、丸め加算器12から出力
される第2の中間結果R2 が となって、小数部中の最初の非ゼロ値ビットの位置が1
ビットだけ左に移動することが予想される。したがっ
て、R1 =div 01である場合には、R1 ≠div 01の
場合のポストシフトに比べて左シフト量を1ビットだけ
少なくする必要がある。
【0075】これに対応して、本実施例の仮数部処理回
路は、R1 ≠div 01である場合とR1 =div 01であ
る場合とで動作が異なる。
【0076】まず、R1 ≠div 01である場合には、本
実施例の丸め加算器12は、演算器11からの第1の中
間結果R1 の符号ビットSの値が1であることを検出す
る結果、該第1の中間結果R1 のラウンドビットrに1
を加算した結果を第2の中間結果R2 として出力する。
一方、PSCE回路13のシフト指定部15は、演算器
11からの第1の中間結果R1 の整数部uvの値が00
であることを検出する結果、前述の(2.1.1) の場合と同
様に該第1の中間結果R1 のリーディングビットvから
順に下位へ向かって最初の非ゼロ値ビットに行き当たる
までのゼロ値ビットの個数を該リーディングビットvを
含めて計数し、該ゼロ値ビットの個数を左へのシフト量
とすべき旨の第1のポストシフト情報k1 を出力する。
また、R1 ≠all 1(v=0)であるので、PSCE回
路13のシフト補正部16中の第1の検出回路17は第
1の検出信号d1 を出力しない。また、R1 ≠div 01
であるので、同シフト補正部16中の第2の検出回路1
8は第2の検出信号d2 を出力しない。この結果、ポス
トシフト回路14は、シフト指定部15からの第1のポ
ストシフト情報k1 のみに従って、丸め加算器12から
の第2の中間結果R2 に左ポストシフトを施す。
【0077】これに対してR1 =div 01である場合に
は、本実施例の丸め加算器12は、R1 ≠div 01の場
合と同じくやはり第1の中間結果R1 の符号ビットSの
値が1であることを検出する結果、該第1の中間結果R
1 のラウンドビットrに1を加算する。したがって、最
初の非ゼロ値ビットの位置が移動した第2の中間結果R
2 が丸め加算器12から出力される。一方、PSCE回
路13のシフト指定部15は、R1 ≠div 01の場合と
同じくやはり第1の中間結果R1 の整数部uvの値が0
0であることを検出する結果、R1 ≠div 01の場合と
同じ内容の第1のポストシフト情報k1 を出力する。つ
まり、丸め加算器12からの第2の中間結果R2 に対し
て実際に施さなければならないポストシフトのシフト量
と第1のポストシフト情報k1 により指定されたポスト
シフトのシフト量との間に食い違いが生じるのである。
ところが、R1=div 01であるので、PSCE回路1
3のシフト補正部16中の第2の検出回路18は第2の
検出信号d2 を出力する。この結果、右に1ビットの追
加ポストシフトを実行すべき旨の第2のポストシフト情
報k2 がポストシフト回路14に与えられる。したがっ
て、前記シフト量の食い違いが解消され、ポストシフト
回路14は適正なポストシフトを施すこととなる。
【0078】(2.2) ea −eb =1(1ビットのプレシ
フト)の場合 計算式は、 となる。ただし、演算器11は、この減算式に代えて次
の加算式 を実行する。この際、演算器11からの第1の中間結果
R1 中の符号ビットS、整数部uv及び小数部の最上位
ビットMの値の組み合わせは、0010と0001と0
000との3通りに限られる。
【0079】(2.2.1) SuvM=0010の場合 演算器11からの第1の中間結果R1 が であるときは、前述の(1.2.1) の場合と同様にガードビ
ットgに1を加算する丸め加算を施す必要がある。ただ
し、R1 ≠all 1(M=0)であるのでポストシフトの
シフト量の調整は不要である。
【0080】これに対応した本実施例に係る仮数部処理
回路の動作は(1.2.1) の場合とほぼ同様であるので、説
明を省略する。
【0081】(2.2.2) SuvM=0001の場合 演算器11からの第1の中間結果R1 が であるときは、ラウンドビットrに1を加算する丸め加
算を施す必要がある。
【0082】(2.2.3) SuvM=0000の場合 演算器11からの第1の中間結果R1 が であるときは、丸め加算を施す必要がない。
【0083】これら(2.2.2) 及び(2.2.3) の場合に対応
した本実施例に係る仮数部処理回路の動作は前述の(2.
1.1) の場合とほぼ同様であるので、説明を省略する。
【0084】(2.3) ea −eb ≧2(2ビット以上のプ
レシフト)の場合 計算式は、 となる。ただし、演算器11は、この減算式に代えて次
の加算式 を実行する。この際、演算器11からの第1の中間結果
R1 中の符号ビットS、整数部uv及び小数部の最上位
ビットMの値の組み合わせは、001xと0001との
2通りに限られる。
【0085】(2.3.1) SuvM=001xの場合 演算器11からの第1の中間結果R1 が であるときは、前述の(1.2.1) の場合と同様にガードビ
ットgに1を加算する丸め加算を施す必要がある。ただ
し、小数部の最上位ビットMからガードビットgに至る
(n+1)ビットのうちの少なくとも1ビットは必ずゼ
ロ値ビットとなる。つまり、R1 =all 1となる場合は
ないので、ポストシフトのシフト量の調整は不要であ
る。
【0086】これに対応した本実施例に係る仮数部処理
回路の動作は(1.2.1) の場合とほぼ同様であるので、説
明を省略する。
【0087】(2.3.2) SuvM=0001の場合 演算器11からの第1の中間結果R1 が であるときは、該第1の中間結果R1 の小数部中の最初
の非ゼロ値ビットである最上位ビットMに続くnビット
を有効桁とするようにラウンドビットrに1を加算する
丸め加算を施すとともに、該第1の中間結果R1 の拡張
ビットuからラウンドビットrまでの(n+4)ビット
についてR1 =div 01が成り立つかどうかに応じて、
ポストシフトのシフト量を調整する必要がある。
【0088】これに対応した本実施例に係る仮数部処理
回路の動作は次のとおりである。まず、R1 ≠div 01
である場合には、本実施例の丸め加算器12は、演算器
11からの第1の中間結果R1 のSuvMの値が000
1であることを検出する結果、該第1の中間結果R1 の
ラウンドビットrに1を加算した結果を第2の中間結果
R2 として出力する。一方、PSCE回路13のシフト
指定部15は、演算器11からの第1の中間結果R1の
整数部uvの値が00であることを検出する結果、前述
の(2.1.1)の場合と同様に該第1の中間結果R1 のリー
ディングビットvから順に下位へ向かって最初の非ゼロ
値ビットに行き当たるまでのゼロ値ビットの個数を該リ
ーディングビットvを含めて計数し、該ゼロ値ビットの
個数すなわち1を左へのシフト量とすべき旨の第1のポ
ストシフト情報k1 を出力する。また、R1 ≠all 1
(v=0)であるので、PSCE回路13のシフト補正
部16中の第1の検出回路17は第1の検出信号d1 を
出力しない。また、R1 ≠div 01であるので、同シフ
ト補正部16中の第2の検出回路18は第2の検出信号
d2 を出力しない。この結果、ポストシフト回路14
は、シフト指定部15からの第1のポストシフト情報k
1のみに従って、丸め加算器12からの第2の中間結果
R2 を左に1ビットだけシフトする。
【0089】これに対してR1 =div 01である場合に
は、本実施例の丸め加算器12は、R1 ≠div 01の場
合と同じくやはり第1の中間結果R1 のSuvMの値が
0001であることを検出する結果、該第1の中間結果
R1 のラウンドビットrに1を加算する。したがって、
最初の非ゼロ値ビットの位置が小数部の最上位ビットM
からリーディングビットvへ移動した第2の中間結果R
2 が丸め加算器12から出力される。一方、PSCE回
路13のシフト指定部15は、R1 ≠div 01の場合と
同じくやはり第1の中間結果R1 の整数部uvの値が0
0であることを検出する結果、R1 ≠div 01の場合と
同じく1ビットだけ左にシフトすべき旨の第1のポスト
シフト情報k1 を出力する。ところが、R1 =div 01
であるので、PSCE回路13のシフト補正部16中の
第2の検出回路18が第2の検出信号d2 を出力する結
果、右に1ビットの追加ポストシフトを実行すべき旨の
第2のポストシフト情報k2 がポストシフト回路14に
与えられる。したがって、ポストシフト回路14は、丸
め加算器12からの第2の中間結果R2 に対するポスト
シフトを実行しない。
【0090】以上、説明を簡単にするために2つのオペ
ランドXa ,Xb はいずれも正の浮動小数点数であり、
かつ第1のオペランドXa の指数部ea の値が第2のオ
ペランドXb の指数部eb の値以上である場合に限定し
たうえ、本実施例に係る仮数部処理回路によれば常に適
正なポストシフトが実行されることを示したが、他の場
合でも同様である。つまり、本実施例によれば、いずれ
の場合でも常に適正なポストシフトが実行されるのであ
って、しかも演算器11からの第1の中間結果R1 に基
づいて丸め加算と並行してポストシフトカウントエンコ
ードが実行されるので仮数部に対する丸め及び正規化の
処理速度が向上する。
【0091】さて、図2及び図3は、各々前記PSCE
回路13のシフト補正部16中の第1及び第2の検出回
路17,18の具体的な回路構成を示したものである。
ただし、両図では、演算器11からの第1の中間結果R
1 のうちの小数部のビット数nを用いて、該第1の中間
結果R1 の拡張ビットuからラウンドビットrまでの
(n+4)ビットのうちの最も上位の拡張ビットuの値
をb(n+3)と表わし、かつ最も下位のラウンドビッ
トrの値をb(0)と表わすように、(n+4)個のビ
ット値b(i)(i=n+3〜0)を定義している。
【0092】図2に示すように、第1の検出回路17
は、複数個の2入力NANDゲート21と複数個の2入
力NORゲート22とを組み合わせた構成としている。
これにより、第1の中間結果R1 のリーディングビット
vからガードビットgまでの(n+2)ビットの値すな
わちb(i)(i=n+2〜1)が全て1であるかどう
か、つまりR1 =all 1が成立するかどうかを検出する
ことができ、R1 =all1の場合に限り第1の検出信号
d1 の論理値が1となる。
【0093】第2の検出回路18は、図3に示すように
3つの論理回路31〜33を備えたものである。このう
ち第1の論理回路31は、(n+3)個のEXCLUS
IVE−ORゲート34を備えたものであって、i=n
+2〜0の範囲の各々のiの値について、b(i+1)
とb(i)とが一致しない場合には1を、一致した場合
には0をそれぞれ出力ビットの値p(i)とするもので
ある。第2の論理回路32は、(n+3)個のNOTゲ
ート35と(n+3)個の2入力ANDゲート36とを
備えたものであって、i=n+2〜0の範囲の各々のi
の値について、b(i+1)が0でありかつb(i)が
1である場合には1を、その他の場合には0をそれぞれ
出力ビットの値q(i)とするものである。そして、第
3の論理回路33は、(n+3)個のEXCLUSIV
E−ORゲート37と、該(n+3)個のEXCLUS
IVE−ORゲート37の全ての出力が0である場合に
限り第2の検出信号d2 の論理値を1とするための2入
力NORゲート38並びに不図示の2入力NANDゲー
ト及びNOTゲートを有する組み合わせ回路とを備えた
ものである。つまり、該第3の論理回路33は、i=n
+2〜0の範囲の全てのiの値について第1の論理回路
31の出力ビットの値p(i)と第2の論理回路32の
出力ビットの値q(i)とが一致した場合に限り、演算
器11からの第1の中間結果R1 の拡張ビットuからラ
ウンドビットrまでの(n+4)ビットのうち該拡張ビ
ットuから始まる連続したゼロ値ビットを除く全てのビ
ットが非ゼロ値ビットである、つまりR1 =div 01が
成立するものとして、第2の検出信号d2 の論理値を1
とするものである。
【0094】なお、上記の出力ビット値p(i)及びq
(i)は、各々次の論理式 p(i)=b(i+1) EOR b(i) q(i)=(b(i+1)=0) AND (b(i)
=1) で表わすことができる。ただし、i=n+2〜0であ
る。
【0095】以上の構成を有する第2の検出回路18の
動作について、具体例をもって説明する。ただし、説明
を簡単にするために、ここでは第1の中間結果R1 のう
ちの小数部の最上位ビットMから最下位ビットLに至る
ビット数nを6とする。
【0096】(1) R1 =div 01の場合 例1 i (9) (8) (7) (6) (5) (4) (3) (2) (1) (0) b(i) 0 0 0 0 1 1 1 1 1 1 p(i) 0 0 0 1 0 0 0 0 0 q(i) 0 0 0 1 0 0 0 0 0 この場合には、i=8〜0の範囲の全てのiの値につい
てp(i)=q(i)となり、第2の検出信号d2 の論
理値が1となる。
【0097】(2) R1 ≠div 01の場合 例2 i (9) (8) (7) (6) (5) (4) (3) (2) (1) (0) b(i) 0 0 0 0 1 1 0 0 1 1 p(i) 0 0 0 1 0 1 0 1 0 q(i) 0 0 0 1 0 0 0 1 0 この場合には、p(3)≠q(3)となるので、第2の
検出信号d2 の論理値は0となる。
【0098】 例3 i (9) (8) (7) (6) (5) (4) (3) (2) (1) (0) b(i) 0 0 0 0 1 0 0 0 0 0 p(i) 0 0 0 1 1 1 0 0 0 q(i) 0 0 0 1 0 0 0 0 0 この場合にはp(4)≠q(4),p(3)≠q(3)
となるので、やはり第2の検出信号d2 の論理値は0と
なる。
【0099】以上のとおり、図3に示した第2の検出回
路18によれば、演算器11からの第1の中間結果(中
間和)R1 について、R1 =div 01の成立の有無を検
出することができる。しかも、図2及び図3にそれぞれ
示した第1及び第2の検出回路17,18は、各々PS
CE回路13中のシフト指定部15に比べて十分小さい
規模で実現可能である。
【0100】なお、図5に示すようにラウンドビットr
より下位にスティッキービットsが更に付加される場合
にも、本発明は適用可能である。この場合にはガードビ
ットg及びラウンドビットrだけでなくスティッキービ
ットsにも当初0の値が設定され、演算器11に入力さ
れる2つのオペランドのnビットの仮数部の各々は、合
計(n+6)ビットのデータ構造を有する仮数部データ
ma ,mb として取り扱われる。しかも、該2つの仮数
部データma ,mb は、両仮数部データのうちの指数部
の小さい方のオペランドの仮数部データのリーディング
ビットvの非ゼロ値が該仮数部データの小数部m中へ入
っていきかつ該小数部mの最下位ビットLの値が該仮数
部データのガードビットg及びラウンドビットrへ順次
出ていくように、かつ該ラウンドビットrからの桁落ち
がある場合には該仮数部データのスティッキービットs
に1の値を設定するように桁合わせのためのプレシフト
が施されたうえ、演算器11に入力データとして与えら
れる。ただし、該演算器11は、受け取った2つの仮数
部データの(n+6)ビットの2進加減算を実行すると
ともに、前記と同様に該加減算の結果に対して正数化の
ための反転操作を施したうえ、(n+6)ビットのデー
タ構造を有する第1の中間結果R1 を出力するものとす
る。
【0101】このようにスティッキービットsを導入す
る場合には、丸め加算器12は、演算器11からの第1
の中間結果R1 の符号ビットSの値が0でありかつ整数
部uvの値が10又は11でありかつガードビットgと
ラウンドビットrとスティッキービットsとの各々の値
の論理和が1である場合、或いは、演算器11からの第
1の中間結果R1 の符号ビットSの値が0でありかつ整
数部uvの値が10又は11でありかつガードビットg
とラウンドビットrとスティッキービットsとの各々の
値の論理和が0でありかつ小数部mのうちの最下位ビッ
トLより1ビット上位のビットの値が1である場合に
は、該第1の中間結果R1 の小数部mの最下位ビットL
に1を加算した結果をポストシフト回路14への第2の
中間結果R2 として出力するものとする。また、演算器
11からの第1の中間結果R1 の符号ビットSの値が0
でありかつ整数部uvの値が01でありかつラウンドビ
ットrとスティッキービットsとの各々の値の論理和が
1である場合、或いは、演算器11からの第1の中間結
果R1の符号ビットSの値が0でありかつ整数部uvの
値が01でありかつラウンドビットrとスティッキービ
ットsとの各々の値の論理和が0でありかつ小数部mの
最下位ビットLの値が1である場合には、該第1の中間
結果R1 のガードビットgに1を加算した結果をポスト
シフト回路14への第2の中間結果R2 として出力する
ものとする。また、演算器11からの第1の中間結果R
1 の符号ビットSの値が0でありかつ整数部uvの値が
00でありかつ小数部mの最上位ビットMの値が1であ
りかつスティッキービットsの値が1である場合、演算
器11からの第1の中間結果R1 の符号ビットSの値が
0でありかつ整数部uvの値が00でありかつ小数部m
の最上位ビットMの値が1でありかつスティッキービッ
トsの値が0でありかつガードビットgの値が1である
場合、或いは、演算器11からの第1の中間結果R1 の
符号ビットSの値が1である場合には、該第1の中間結
果R1 のラウンドビットrに1を加算した結果をポスト
シフト回路14への第2の中間結果R2 として出力する
ものとする。その他の場合には演算器11からの第1の
中間結果R1 をそのままポストシフト回路14への第2
の中間結果R2 として出力するものとする。
【0102】ただし、スティッキービットsを導入する
場合でもPSCE回路13のシフト指定部15及びシフ
ト補正部16の構成は変更の必要がない。つまり、演算
器11からの第1の中間結果R1 のリーディングビット
vからガードビットgまでの(n+2)ビットについて
R1 =all 1の成立の有無を調べるための第1の検出回
路17の構成も、また演算器11からの第1の中間結果
R1 の拡張ビットuからラウンドビットrまでの(n+
4)ビットについてR1 =div 01の成立の有無を調べ
るための第2の検出回路18の構成も、いずれも変更の
必要はない。
【0103】なお、以上に説明した実施例では演算器1
1における加減算の結果が負の値になった場合の仮数部
の丸め及び正数化の処理のうちの該加減算の結果に対す
る正数化のための反転操作の機能を該演算器11に持た
せている。つまり、演算器11は、正数化のための反転
回路を内蔵したものである。ただし、従来同様に丸め加
算器12が正数化のための反転回路を有する場合には、
同一の反転回路をPSCE回路13内にも設け、該PS
CE回路13内の反転回路の出力をシフト指定部15と
シフト補正部16とに分配すればよい。
【0104】また、以上の実施例の第2の検出回路18
では第1の中間結果R1 の拡張ビットuからラウンドビ
ットrまでの(n+4)ビットについてデータが「割れ
て」いるかどうかを調べていたが、スティッキービット
sの導入の有無にかかわらず、該第1の中間結果R1 の
リーディングビットvからラウンドビットrまでの(n
+3)ビットのうち該リーデイングビットvから始まる
連続したゼロ値ビットを除く全てのビットが非ゼロ値ビ
ットであるかどうかを調べるようにしてもよい。ただ
し、この場合には、ポストシフト回路14は、PSCE
回路13のシフト指定部15からの第1のポストシフト
情報k1 の値が負又は0であるときには同PSCE回路
13のシフト補正部16からの第2のポストシフト情報
k2 を無視するように構成される。
【0105】
【発明の効果】以上のとおり請求項1の発明によれば、
加減算のための演算器11からの第1の中間結果(中間
和)R1 に基づいて丸め加算と並行してポストシフトカ
ウントエンコードを行う構成を採用したので、仮数部の
加減算の実行並びに該仮数部の加減算の結果に対する丸
め及び正規化の操作を行うための仮数部処理回路の処理
速度が向上し、浮動小数点演算装置における加減算の高
速実行が実現できる。
【0106】また、請求項2の発明によれば、演算器1
1からの第1の中間結果R1 中の最初の非ゼロ値ビット
の位置に基づいてPSCE回路13のシフト指定部15
により指定したポストシフトの内容を、該第1の中間結
果R1 中の最初の非ゼロ値ビットの位置が丸め加算時に
移動するかどうかを予測して同PSCE回路13のシフ
ト補正部16により補正する構成を採用したので、適正
なポストシフトの実行を保証することができる。
【0107】また、請求項3又は4の発明によれば、R
1 =all 1又はR1 =div 01であることを検出した場
合にポストシフトのシフト量を補正する構成を採用した
ので、2つのオペランドのnビットの仮数部mに各々符
号ビットS、拡張ビットu、リーディングビットv、ガ
ードビットg及びラウンドビットr(或いは更にスティ
ッキービットs)の5〜6ビットが付加される場合の適
正なポストシフトの実行を保証することができる。
【0108】また、請求項5の発明に係るシフト補正部
16中の第2の検出回路18の具体的な回路構成によれ
ば、ハードウェアをわずかに増加させるだけで、演算器
11からの第1の中間結果R1 についてR1 =div 01
が成立するかどうかを検出することができる。
【図面の簡単な説明】
【図1】本発明の実施例に係る仮数部処理回路のブロッ
ク図である。
【図2】図1中の第1の検出回路の詳細回路図である。
【図3】図1中の第2の検出回路の詳細回路図である。
【図4】従来の仮数部処理回路の例を示すブロック図で
ある。
【図5】正規化浮動小数点数のフォーマットの例を示す
概念図である。
【図6】仮数部処理回路のための図5中の仮数部を含ん
だ仮数部データのフォーマットの例を示す概念図であ
る。
【符号の説明】
11,41…演算器 12,42…丸め加算器 13,43…ポストシフトカウントエンコード回路(P
SCE回路) 14,44…ポストシフト回路 15…シフト指定部 16…シフト補正部 17…第1の検出回路 18…第2の検出回路 31…第1の論理回路 32…第2の論理回路 33…第3の論理回路 ma ,mb ,mc …仮数部データ R1 …第1の中間結果(中間和) R2 …第2の中間結果(丸め結果) k1 …第1のポストシフト情報 k2 …第2のポストシフト情報 d1 …第1の検出信号 d2 …第2の検出信号 S …符号ビット e …指数部 m …仮数部 u …拡張ビット(整数部) v …リーディングビット(整数部) M …仮数部(小数部)の最上位ビット L …仮数部(小数部)の最下位ビット g …ガードビット r …ラウンドビット s …スティッキービット n …仮数部(小数部)のビット数

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 各々符号ビットと指数部とnビットから
    なる仮数部とを有しかつ各々正規化された2つの浮動小
    数点数をオペランドとした加減算のための浮動小数点演
    算装置において仮数部の加減算並びに該仮数部の加減算
    の結果に対する丸め及び正規化の操作を各々実行するた
    めの仮数部処理回路であって、 前記2つのオペランドの各々の指数部の値が一致しない
    場合には指数部の小さい方のオペランドの仮数部が両指
    数部の値の差に等しいビット数だけ下位方向へプレシフ
    トされた両オペランドの各々の仮数部を、前記2つのオ
    ペランドの各々の指数部の値が一致した場合には該プレ
    シフトが施されない両オペランドの各々の仮数部をそれ
    ぞれ入力データとして受け取り、かつ該受け取った2つ
    の入力データの2進加減算を実行し、かつ該2進加減算
    の結果を第1の中間結果として出力するための演算器
    と、 該演算器からの第1の中間結果に対する丸め加算を実行
    し、かつ該丸め加算の結果を第2の中間結果として出力
    するための丸め加算器と、 該丸め加算器からの第2の中間結果に正規化のために施
    すべきポストシフトのシフト方向とシフト量とに関する
    情報を前記演算器からの第1の中間結果に基づいて生成
    し、かつ該生成した情報をポストシフト情報として出力
    するためのポストシフトカウントエンコード回路と、 該ポストシフトカウントエンコード回路からのポストシ
    フト情報に従って前記丸め加算器からの第2の中間結果
    を上位方向又は下位方向へシフトし、かつ該シフトの結
    果を演算結果の仮数部として出力するためのポストシフ
    ト回路とを備えた加減算のための浮動小数点演算装置の
    仮数部処理回路。
  2. 【請求項2】 請求項1記載の加減算のための浮動小数
    点演算装置の仮数部処理回路において、 前記ポストシフトカウントエンコード回路は、 前記演算器からの第1の中間結果の上位ビットから順に
    下位へ向かって最初の非ゼロ値ビットを探し、かつ探し
    当てた最初の非ゼロ値ビットの位置に応じてポストシフ
    トのシフト方向とシフト量とに関する情報を生成し、か
    つ該生成した情報を第1のポストシフト情報として前記
    ポストシフト回路に与えるためのシフト指定部と、 前記演算器からの第1の中間結果の最初の非ゼロ値ビッ
    トの位置が前記丸め加算器による丸め加算のために1ビ
    ットだけ上位方向に移動すると予測される場合には、下
    位方向へ1ビットの追加ポストシフトを実行すべき旨の
    第2のポストシフト情報を前記ポストシフト回路に与え
    るためのシフト補正部とを備えた加減算のための浮動小
    数点演算装置の仮数部処理回路。
  3. 【請求項3】 請求項2記載の加減算のための浮動小数
    点演算装置の仮数部処理回路において、 前記演算器は、nビットの小数部としての前記2つのオ
    ペランドの各々の仮数部の最上位ビットより更に上位に
    は上位から順に各オペランドの符号ビットと2ビットの
    整数部を構成する拡張ビット及びリーディングビットと
    がそれぞれ付加され、かつ該各々の仮数部の最下位ビッ
    トより更に下位には上位から順にガードビットとラウン
    ドビットとの2ビットがそれぞれ付加されてなる(n+
    5)ビットのデータ構造を有する2つの仮数部データで
    あって、該2つの仮数部データの各々の拡張ビット及び
    リーディングビットからなる整数部に01の値が設定さ
    れかつ両仮数部データの各々のガードビット及びラウン
    ドビットにそれぞれ0の値が設定された後に、該2つの
    仮数部データのうちの一方の仮数部データのリーディン
    グビットの非ゼロ値が該仮数部データの小数部中へ入っ
    ていきかつ該小数部の最下位ビットの値が該仮数部デー
    タのガードビット及びラウンドビットへ順次出ていくよ
    うに前記プレシフトが必要に応じて施された2つの仮数
    部データを前記入力データとして受け取り、かつ該受け
    取った2つの仮数部データの(n+5)ビットの2進加
    減算を実行し、かつ該加減算の結果の符号ビットの値が
    1である場合には該加減算の結果のうちの該符号ビット
    を除く全てのビットの値を反転した結果を、該加減算の
    結果の符号ビットの値が0である場合には該加減算の結
    果をそのまま、各々前記2つの仮数部データと同一の
    (n+5)ビットのデータ構造を有する第1の中間結果
    として出力する機能を有し、 前記丸め加算器は、前記演算器からの第1の中間結果の
    符号ビットの値が0でありかつ整数部の値が10又は1
    1である場合には該第1の中間結果の小数部の最下位ビ
    ットに1を加算した結果を、前記演算器からの第1の中
    間結果の符号ビットの値が0でありかつ整数部の値が0
    1である場合には該第1の中間結果のガードビットに1
    を加算した結果を、前記演算器からの第1の中間結果の
    符号ビットの値が0でありかつ整数部の値が00であり
    かつ小数部の最上位ビットの値が1である場合或いは前
    記演算器からの第1の中間結果の符号ビットの値が1で
    ある場合には該第1の中間結果のラウンドビットに1を
    加算した結果を、その他の場合には前記演算器からの第
    1の中間結果をそのまま、各々前記ポストシフト回路へ
    の第2の中間結果として出力する機能を有し、 前記ポストシフトカウントエンコード回路のシフト指定
    部は、前記演算器からの第1の中間結果の整数部の値が
    10又は11である場合には下位方向へ1ビットのポス
    トシフトを実行すべき旨の情報を、前記演算器からの第
    1の中間結果の整数部の値が01である場合にはポスト
    シフトのシフト量を0とすべき旨の情報を、前記演算器
    からの第1の中間結果の整数部の値が00である場合に
    は該第1の中間結果のリーディングビットから順に下位
    へ向かって最初の非ゼロ値ビットに行き当たるまでの該
    リーディングビットを含めたゼロ値ビットの個数を上位
    方向へのシフト量とすべき旨の情報を、各々前記ポスト
    シフト回路への第1のポストシフト情報として出力する
    機能を有し、 前記ポストシフトカウントエンコード回路のシフト補正
    部は、前記演算器からの第1の中間結果のリーディング
    ビットからガードビットまでの(n+2)ビットが全て
    非ゼロ値ビットである場合には第1の検出信号を出力す
    る第1の検出回路と、前記演算器からの第1の中間結果
    の拡張ビットからラウンドビットまでの(n+4)ビッ
    トのうち該拡張ビットから始まる連続したゼロ値ビット
    を除く全てのビットが非ゼロ値ビットである場合には第
    2の検出信号を出力する第2の検出回路とを有し、かつ
    該第1及び第2の検出信号のうちのいずれか一方が出力
    されたときには前記ポストシフト回路への第2のポスト
    シフト情報を出力する機能を有する加減算のための浮動
    小数点演算装置の仮数部処理回路。
  4. 【請求項4】 請求項2記載の加減算のための浮動小数
    点演算装置の仮数部処理回路において、 前記演算器は、nビットの小数部としての前記2つのオ
    ペランドの各々の仮数部の最上位ビットより更に上位に
    は上位から順に各オペランドの符号ビットと2ビットの
    整数部を構成する拡張ビット及びリーディングビットと
    がそれぞれ付加され、かつ該各々の仮数部の最下位ビッ
    トより更に下位には上位から順にガードビットとラウン
    ドビットとスティッキービットとの3ビットがそれぞれ
    付加されてなる(n+6)ビットのデータ構造を有する
    2つの仮数部データであって、該2つの仮数部データの
    各々の拡張ビット及びリーディングビットからなる整数
    部に01の値が設定されかつ両仮数部データの各々のガ
    ードビット、ラウンドビット及びスティッキービットに
    それぞれ0の値が設定された後に、該2つの仮数部デー
    タのうちの一方の仮数部データのリーディングビットの
    非ゼロ値が該仮数部データの小数部中へ入っていきかつ
    該小数部の最下位ビットの値が該仮数部データのガード
    ビット及びラウンドビットへ順次出ていくようにかつ該
    ラウンドビットからの桁落ちがある場合には該仮数部デ
    ータのスティッキービットに1の値を設定するように前
    記プレシフトが必要に応じて施された2つの仮数部デー
    タを前記入力データとして受け取り、かつ該受け取った
    2つの仮数部データの(n+6)ビットの2進加減算を
    実行し、かつ該加減算の結果の符号ビットの値が1であ
    る場合には該加減算の結果のうちの該符号ビットを除く
    全てのビットの値を反転した結果を、該加減算の結果の
    符号ビットの値が0である場合には該加減算の結果をそ
    のまま、各々前記2つの仮数部データと同一の(n+
    6)ビットのデータ構造を有する第1の中間結果として
    出力する機能を有し、 前記丸め加算器は、前記演算器からの第1の中間結果の
    符号ビットの値が0でありかつ整数部の値が10又は1
    1でありかつガードビットとラウンドビットとスティッ
    キービットとの各々の値の論理和が1である場合或いは
    前記演算器からの第1の中間結果の符号ビットの値が0
    でありかつ整数部の値が10又は11でありかつガード
    ビットとラウンドビットとスティッキービットとの各々
    の値の論理和が0でありかつ小数部のうちの最下位ビッ
    トより1ビット上位のビットの値が1である場合には該
    第1の中間結果の小数部の最下位ビットに1を加算した
    結果を、前記演算器からの第1の中間結果の符号ビット
    の値が0でありかつ整数部の値が01でありかつラウン
    ドビットとスティッキービットとの各々の値の論理和が
    1である場合或いは前記演算器からの第1の中間結果の
    符号ビットの値が0でありかつ整数部の値が01であり
    かつラウンドビットとスティッキービットとの各々の値
    の論理和が0でありかつ小数部の最下位ビットの値が1
    である場合には該第1の中間結果のガードビットに1を
    加算した結果を、前記演算器からの第1の中間結果の符
    号ビットの値が0でありかつ整数部の値が00でありか
    つ小数部の最上位ビットの値が1でありかつスティッキ
    ービットの値が1である場合、前記演算器からの第1の
    中間結果の符号ビットの値が0でありかつ整数部の値が
    00でありかつ小数部の最上位ビットの値が1でありか
    つスティッキービットの値が0でありかつガードビット
    の値が1である場合或いは前記演算器からの第1の中間
    結果の符号ビットの値が1である場合には該第1の中間
    結果のラウンドビットに1を加算した結果を、その他の
    場合には前記演算器からの第1の中間結果をそのまま、
    各々前記ポストシフト回路への第2の中間結果として出
    力する機能を有し、 前記ポストシフトカウントエンコード回路のシフト指定
    部は、前記演算器からの第1の中間結果の整数部の値が
    10又は11である場合には下位方向へ1ビットのポス
    トシフトを実行すべき旨の情報を、前記演算器からの第
    1の中間結果の整数部の値が01である場合にはポスト
    シフトのシフト量を0とすべき旨の情報を、前記演算器
    からの第1の中間結果の整数部の値が00である場合に
    は該第1の中間結果のリーディングビットから順に下位
    へ向かって最初の非ゼロ値ビットに行き当たるまでの該
    リーディングビットを含めたゼロ値ビットの個数を上位
    方向へのシフト量とすべき旨の情報を、各々前記ポスト
    シフト回路への第1のポストシフト情報として出力する
    機能を有し、 前記ポストシフトカウントエンコード回路のシフト補正
    部は、前記演算器からの第1の中間結果のリーディング
    ビットからガードビットまでの(n+2)ビットが全て
    非ゼロ値ビットである場合には第1の検出信号を出力す
    る第1の検出回路と、前記演算器からの第1の中間結果
    の拡張ビットからラウンドビットまでの(n+4)ビッ
    トのうち該拡張ビットから始まる連続したゼロ値ビット
    を除く全てのビットが非ゼロ値ビットである場合には第
    2の検出信号を出力する第2の検出回路とを有し、かつ
    該第1及び第2の検出信号のうちのいずれか一方が出力
    されたときには前記ポストシフト回路への第2のポスト
    シフト情報を出力する機能を有する加減算のための浮動
    小数点演算装置の仮数部処理回路。
  5. 【請求項5】 請求項3又は4に記載の加減算のための
    浮動小数点演算装置の仮数部処理回路において、 前記ポストシフトカウントエンコード回路のシフト補正
    部中の第2の検出回路は、 前記演算器からの第1の中間結果の拡張ビットからラウ
    ンドビットまでの(n+4)ビットのうちの拡張ビット
    の値をb(n+3)と表わし、かつラウンドビットの値
    をb(0)と表わすように(n+4)個のビット値b
    (i)(i=n+3〜0)を定義したとき、 i=n+2〜0の範囲の各々のiの値について、b(i
    +1)とb(i)とが一致しない場合には1を、一致し
    た場合には0をそれぞれ出力ビットの値p(i)とする
    第1の論理回路と、 i=n+2〜0の範囲の各々のiの値について、b(i
    +1)が0でありかつb(i)が1である場合には1
    を、その他の場合には0をそれぞれ出力ビットの値q
    (i)とする第2の論理回路と、 i=n+2〜0の範囲の全てのiの値について前記第1
    の論理回路の出力ビットの値p(i)と前記第2の論理
    回路の出力ビットの値q(i)とが一致した場合に限り
    前記第2の検出信号を出力する第3の論理回路とを備え
    た加減算のための浮動小数点演算装置の仮数部処理回
    路。
JP3340642A 1990-12-28 1991-12-24 加減算のための浮動小数点演算装置の仮数部処理回路 Withdrawn JPH0520028A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP40882290 1990-12-28
JP2-408822 1990-12-28

Publications (1)

Publication Number Publication Date
JPH0520028A true JPH0520028A (ja) 1993-01-29

Family

ID=18518226

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3340642A Withdrawn JPH0520028A (ja) 1990-12-28 1991-12-24 加減算のための浮動小数点演算装置の仮数部処理回路

Country Status (2)

Country Link
US (1) US5200916A (ja)
JP (1) JPH0520028A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015111421A (ja) * 2010-09-24 2015-06-18 インテル・コーポレーション ベクトル機能ユニット、方法、およびコンピューティングシステム
KR20160033550A (ko) * 2014-09-18 2016-03-28 삼성전자주식회사 표현 가능한 수의 범위를 조절하는 방법 및 장치
JP2018097864A (ja) * 2016-12-06 2018-06-21 エイアールエム リミテッド リーディングゼロ予想

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757682A (en) * 1995-03-31 1998-05-26 International Business Machines Corporation Parallel calculation of exponent and sticky bit during normalization
GB2409074B (en) * 2001-03-14 2005-08-03 Micron Technology Inc Arithmetic pipeline
US8543632B2 (en) * 2003-06-11 2013-09-24 Stmicroelectronics, Inc. Method and system for computing alignment sticky bit in floating-point operations
US7321914B2 (en) * 2004-02-18 2008-01-22 General Motors Corporation Fast method for calculating powers of two as a floating point data type
US7774393B1 (en) * 2004-06-30 2010-08-10 Oracle America, Inc. Apparatus and method for integer to floating-point format conversion
US20110005564A1 (en) * 2005-10-11 2011-01-13 Dimerond Technologies, Inc. Method and Apparatus Pertaining to Nanoensembles Having Integral Variable Potential Junctions
JP4806453B2 (ja) * 2007-02-09 2011-11-02 富士通株式会社 演算処理装置、情報処理装置、および演算方法
US8829331B2 (en) 2012-08-10 2014-09-09 Dimerond Technologies Llc Apparatus pertaining to the co-generation conversion of light into electricity
US8586999B1 (en) 2012-08-10 2013-11-19 Dimerond Technologies, Llc Apparatus pertaining to a core of wide band-gap material having a graphene shell
US9405728B2 (en) 2013-09-05 2016-08-02 Altera Corporation Floating-point adder circuitry
CN106802783B (zh) * 2017-01-23 2019-04-23 青岛专用集成电路设计工程技术研究中心 一种小数加法结果圆整方法与装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59188740A (ja) * 1983-04-11 1984-10-26 Hitachi Ltd フロ−テイング加算器
JPH01302425A (ja) * 1988-05-31 1989-12-06 Toshiba Corp 浮動小数点加減算回路
JPH0275017A (ja) * 1988-09-09 1990-03-14 Fujitsu Ltd 浮動小数点仮数部処理回路
US4926369A (en) * 1988-10-07 1990-05-15 International Business Machines Corporation Leading 0/1 anticipator (LZA)
JP2511527B2 (ja) * 1989-07-14 1996-06-26 日本電気株式会社 浮動小数点演算器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015111421A (ja) * 2010-09-24 2015-06-18 インテル・コーポレーション ベクトル機能ユニット、方法、およびコンピューティングシステム
KR20160033550A (ko) * 2014-09-18 2016-03-28 삼성전자주식회사 표현 가능한 수의 범위를 조절하는 방법 및 장치
JP2018097864A (ja) * 2016-12-06 2018-06-21 エイアールエム リミテッド リーディングゼロ予想

Also Published As

Publication number Publication date
US5200916A (en) 1993-04-06

Similar Documents

Publication Publication Date Title
US4758972A (en) Precision rounding in a floating point arithmetic unit
EP0973089B1 (en) Method and apparatus for computing floating point data
EP0483864B1 (en) Hardware arrangement for floating-point addition and subtraction
KR100239029B1 (ko) 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서
US9608662B2 (en) Apparatus and method for converting floating-point operand into a value having a different format
US10019231B2 (en) Apparatus and method for fixed point to floating point conversion and negative power of two detector
JP2013012203A (ja) 浮動小数点加算器
JPH0520028A (ja) 加減算のための浮動小数点演算装置の仮数部処理回路
JP2618374B2 (ja) 最上位の数字の位置の検出
EP0356153B1 (en) Radix-2**n divider method and apparatus 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
US7668892B2 (en) Data processing apparatus and method for normalizing a data value
US5343413A (en) Leading one anticipator and floating point addition/subtraction apparatus
CN108694037B (zh) 用于在执行浮点减法时估计移位量的装置和方法
US6499044B1 (en) Leading zero/one anticipator for floating point
WO2016119547A1 (en) Method and apparatus for converting from integer to floating point representation
US4639887A (en) Bifurcated method and apparatus for floating point addition with decreased latency time
JP3753275B2 (ja) 最上位有効ビット位置予測方法
JP2558669B2 (ja) 浮動小数点演算装置
CN111290790B (zh) 一种定点转浮点的转换装置
KR101922462B1 (ko) 데이터 처리장치 및 이진수에 대해 시프트 기능을 수행하는 방법
EP1282034A2 (en) Elimination of rounding step in the short path of a floating point adder
US10275218B1 (en) Apparatus and method for subtracting significand values of floating-point operands
US7640286B2 (en) Data processing apparatus and method for performing floating point multiplication
JP3257278B2 (ja) 冗長なシフト数予測とシフト誤り補正を用いた正規化装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19990311