JP3313002B2 - 浮動小数点演算装置 - Google Patents

浮動小数点演算装置

Info

Publication number
JP3313002B2
JP3313002B2 JP29973394A JP29973394A JP3313002B2 JP 3313002 B2 JP3313002 B2 JP 3313002B2 JP 29973394 A JP29973394 A JP 29973394A JP 29973394 A JP29973394 A JP 29973394A JP 3313002 B2 JP3313002 B2 JP 3313002B2
Authority
JP
Japan
Prior art keywords
bit
mantissa
circuit
result
gate
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
JP29973394A
Other languages
English (en)
Other versions
JPH08161152A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP29973394A priority Critical patent/JP3313002B2/ja
Priority to US08/556,727 priority patent/US5831884A/en
Publication of JPH08161152A publication Critical patent/JPH08161152A/ja
Application granted granted Critical
Publication of JP3313002B2 publication Critical patent/JP3313002B2/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/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/485Adding; Subtracting

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、浮動小数点演算装置
に関し、特に正規化処理における桁落ち予測回路の高速
化および回路規模の縮小化に関するものである。
【0002】
【従来の技術】浮動小数点形式の加減算では、差の小さ
い2つの値を減算したときに桁落ちが生じるので、それ
を規定のフォーマットに正規化する必要がある。ここで
桁落ちとは、差の小さい2つの値を減算したときに演算
結果の先頭に「0」が並ぶ現象であり、規定のフォーマ
ットへの正規化とは最上位ビットが「1」をとるように
シフト演算をすることである。ただし、これはIEEE
規格の場合であり、他の規格ではフォーマットが若干異
なる。IEEE規格の場合、この桁落ちは最大で仮数部
のビット幅分だけ生じるので、倍精度形式では最大53
ビットのシフト動作が必要になる。また、シフトのため
には先頭に並ぶ「0」の数をカウントしてシフト量を求
めなければならない。このため浮動小数点演算のハード
ウエアではこの処理に伴う遅延が大きくなる。この問題
点を解決して高速化を図るための代表的な手段は、加減
算が終了する前に2つの入力データからシフト量を求め
る方法である。この方法によると、加減算を実行する回
路と桁落ち予測回路が並列動作できるので、「0」をカ
ウントするための遅延が短縮される。また、この方法で
は、シフト量をどのようにして求め、またそれを高速に
実行するかと、シフト動作をいかにして高速化するかが
重要になり、そのための発明がこれまでになされてき
た。以下にその一例を従来例として説明する。
【0003】図8は、例えば、特開平6−95851号
公報に記載されている浮動小数点演算装置の全体構成の
概略図である。特に、正規化処理回路の部分を示した。
この構成では、先行ゼロ予測器1(以下、LZPとす
る)によって、正確なシフト量を求め、シフタの制御線
を動作させる。ここで、その予測には加減算に用いられ
るレジスタ2の2つの入力信号(A、B)と加減算器3
から出力されるボロー信号が用いられ、結果はシフト動
作の制御信号としてシフタ4に送出される。シフタ4で
は、正規化補正が行われ、正規化した結果5が得られ
る。この例では、シフト量の予測が正確であることが特
徴であるので、それを実現するLZP1について次に詳
しく述べる。
【0004】図9にLZP1の構成を示す。倍精度デー
タの仮数部は53ビットで構成される。下位に3ビット
を付加して56ビットとしてと8ビットの集合7に7分
割し、それぞれの集合間の関係を基に先行「1」を含む
集合がどのブロックかを求めるバイト処理と、各バイト
内のどのビットが先行「1」となるかを求めるビット処
理に階層化することで高速化している。
【0005】図9の第1ステージ6では、2つの入力A
とBの各バイト毎に対して減算と比較を行う。LZP1
の論理は各バイト毎の順序づけに依存しているので、A
≧BとA<Bの両方に対応するように2重化されてい
る。この第1ステージでは最終的にAi=Bi、Ai=Bi
+1、Ai>Bi+1、Bi=Ai+1、Bi>Ai+1のい
ずれかであるかを決定する必要がある。このため第1ス
テージは図10に示すようにAi−Bi−1、Ai−Bi−
2、Bi−Ai−1、Bi−Ai−2の4個の8ビット減算
器から構成され、それぞれボロー信号が比較結果として
第2ステージ8に送信される。
【0006】図11は、第2ステージ8を構成する駆動
回路9の詳細図である。第2ステージ8では、第1ステ
ージ6の結果を用いて各バイトブロック間の関係を求
め、対応するどのバイトブロックが先行「1」を含むか
含まないかを示す駆動信号と、対応するバイトブロック
からのボロー信号を生成する。この第2ステージ8も第
1ステージ6と同様にA−Bに対する回路とB−Aに対
する回路の2つの系に二重化されている。この二重化系
のどちらを選択するかはこの第2ステージ8の最後に、
加減算器3からのボロー信号によって行われる。ボロー
信号が「0」の場合にA−Bの系が選択され、ボロー信
号が「1」の場合にはB−Aの系が選ばれる。
【0007】また、次の第3ステージ10でもこのボロ
ー信号を用いて、第1ステージ6のAi−Bi−1とBi
−Ai−1のいずれかを最初に選択しており、ボロー信
号が「0」の場合にAi−Bi−1が選択され、ボロー信
号が「1」の場合にはBi−Ai−1が選ばれる。図1
2に第3ステージ10を構成する駆動回路11の詳細図
を示す。第3ステージ10では、回路ブロック13でバ
イトデータ中で「1」が立つ最上位ビットを検索し、回
路ブロック14ではバイトデータ中で「0」となる最下
位ビットを検索している。これら2つの回路ブロックの
結果は当該バイトのボロー信号とともに解析され、そこ
から選ばれた特定のビットのみが「1」となり残りのビ
ットは「0」となる。ここで、回路ブロック15では、
特定のビットが、バイト様式結果の最上位の「1」であ
り、また、このバイトからボローがある(従って、実際
の結果バイトが、バイト様式に等しいとき)とき、また
はこの特定ビットが、最下位のゼロであり、最下位より
1つ上位のビットが最上位の「1」であり、かつバイト
からのボローがない場合、その特定ビットが全体として
の結果の先行「1」として選ばれる。当該バイトブロッ
クが先行「1」を含まない場合もあるので、最後に駆動
信号によってこの出力はすべて「0」にするか、第3ス
テージ10で求めた値を出力するかが選ばれる。
【0008】
【発明が解決しようとする課題】従来の浮動小数点演算
装置は、以上のように構成されていたので、シフト量を
正確に求められる利点があるものの、その解析には非常
に複雑な処理を要する。例えば、バイト毎に7分割され
ているものの予測のために第1ステージで8ビットの減
算を実行する必要があり、かつ第3ステージでも8ビッ
トの入力を受ける多入力論理を実行する必要がある。
【0009】これらのことは、ハードウエアで実現する
際には、速度とハードウエア量の両面において障害とな
る。8ビットに分割されても減算器では、キャリーの伝
搬は不可避であって遅延を招くし、全ビット分の回路を
設けなければならない上に多重化されているので回路規
模も大きくなる。また、図12の回路は、多入力論理を
含めて5段階のゲートで構成されており、遅延が大き
い。
【0010】すなわち、従来の浮動小数点演算装置は、
予測のための回路の遅延が大きく、その規模も大きくな
るという問題点があった。そして、それは予測値を求め
る手順が複雑であることに起因している。
【0011】この発明は、かかる問題点を解決するため
になされたものであり、浮動小数点演算装置の正規化処
理における桁落ち予測回路の回路構成を簡単にして、浮
動小数点演算装置の回路規模の縮小化および処理の高速
化を得ることを目的とする。
【0012】
【課題を解決するための手段】この発明に係る浮動小数
点演算装置は、第1の仮数部のi番目(iは整数;1≦
i≦m)のビットと第2の仮数部のi番目のビットとの
論理積演算により第1の結果を生成し、第1の仮数部の
i番目のビットと第2の仮数部のi番目のビットとの論
理和否定演算により第2の結果を生成し、第1の結果と
第2の結果との論理和演算により第3の結果を生成し、
第1の仮数部のi−1番目のビットと第2の仮数部のi
−1番目のビットとの論理和演算により第4の結果を生
成し、第3の結果と第4の結果との論理積演算によりi
番目の桁落ち予測ビットEiを生成する桁落ち予測回路
を備えたものである。
【0013】また、桁落ち予測回路は、第1の仮数部の
i番目のビットと第2の仮数部のi番目のビットとの論
理和否定演算を行うNORゲートと、第1の仮数部のi
番目のビットと第2の仮数部のi番目のビットとの論理
積否定演算を行うNANDゲートと、NORゲートから
の出力を反転するインバータと、インバータからの出
力、第1の仮数部のi−1番目のビットと第2の仮数部
のi−1番目のビットとの論理和否定演算の結果と第N
ANDゲートからの出力を受け取り論理演算を行い桁落
ち予測ビットEiを出力するAND−OR−NOT型複
合ゲートとを有するように構成したものである。
【0014】また、桁落ち予測回路は、第1の仮数部の
i番目のビットと第2の仮数部のi番目のビットとの論
理和否定演算を行うNORゲートと、NORゲートから
の出力、第1の仮数部のi番目のビットと第2の仮数部
のi番目のビットを受け取り、論理演算を行うAND−
OR−NOT型複合ゲートと、第1の仮数部のi−1番
目のビットと第2の仮数部のi−1番目のビットとの論
理和否定演算の結果とAND−OR−NOT型複合ゲー
トからの出力との論理和否定演算を行い桁落ち予測ビッ
トEiを出力するNORゲートとを有するように構成し
たものである。
【0015】また、桁落ち予測回路は、第1の仮数部の
i番目のビットと第2の仮数部のi番目のビットとの論
理和を出力する第1の論理和素子と、第1の論理和素子
からの出力を反転するインバータと、仮数部のi番目の
ビットと第2の仮数部のi番目のビットとの論理積を出
力する第1の論理積素子と、インバータからの出力と第
1の論理積素子からの出力との論理和を出力する第2の
論理和素子と、第1の仮数部のi−1番目のビットと第
2の仮数部のi−1番目のビットとの論理和と第2の論
理和素子からの出力との論理積を行い桁落ち予測ビット
Eiを出力する第2の論理積素子とを有するように構成
したものである。
【0016】また、桁落ち予測回路は、第1の仮数部の
i番目のビットを反転する第1のインバータと、第1の
インバータからの出力を反転する第2のインバータと、
第2の仮数部のi番目のビットに基づき、第1のインバ
ータからの出力か、第2のインバータからの出力かのど
ちらかを選択する選択回路と、第1の仮数部のi−1番
目のビットと第2の仮数部のi−1番目のビットとの論
理和否定演算の結果と選択回路からの出力との論理和否
定演算を行い桁落ち予測ビットEiを出力するNORゲ
ートとを有するように構成したものである。
【0017】さらに、この発明の浮動小数点演算装置
は、第1の仮数部および第2の仮数部とを受け取り、演
算処理を行う加算回路と、第1の仮数部と第2の仮数部
とを受け取り、桁落ち予測を行う桁落ち予測回路からの
予測結果を受け取り、予測結果に基づき、加算回路から
の演算結果を正規化する正規化処理部と、加算回路から
の演算結果に対し、丸め処理を行う丸め処理部と、正規
化処理部からの処理結果と、丸め処理部からの処理結果
とを受け取り、加算回路からの加算結果に基づき、どち
らか一方を選択するセレクタ回路と、セレクタ回路から
の選択結果を受け取り、選択結果が、正規化処理部から
の処理結果の場合には、その選択結果を1ビット左にシ
フトし、選択結果が、丸め処理部からの処理結果の場合
には、その選択結果を1ビット左あるいは右ににシフト
する補正回路とを備えるようにしたものである。
【0018】また、この発明の浮動小数点演算装置は、
第1の仮数部のi番目のビットと第2の仮数部のi番目
のビットとの論理和否定演算によりジェネレート信号G
iを出力するNORゲートと、NORゲートからの出
力、第1の仮数部のi番目のビットと第2の仮数部のi
番目のビットの論理演算によりプロバゲート信号Piを
出力するAND−OR−NOT型複合型ゲートと、プロ
バゲートPiと仮数部のi−1番目のビットのジェネレ
ート信号Gi−1との論理和否定により、桁落ち予測ビ
ットEiを出力するNORゲートとを備えた加算回路を
備えるようにしたものである。
【0019】
【作用】上記のように構成された浮動小数点演算装置
で、桁落ち予測を行う場合、桁落ち予測ビットの生成が
簡単なロジックで求められる。また、正規化処理用の補
正回路を丸め処理の補正回路に含めたので、正規化処理
用の補正回路が削除された。さらに、桁上げ先見加算を
行う加算回路で生成された信号を用いて、桁落ち予測を
行い、加算回路とは別に設けられていた桁落ち予測回路
が削除された。
【0020】
【実施例】
実施例1.図1は、この発明における浮動小数点演算装
置の回路構成を示した図である。この回路は、特に、浮
動小数点演算装置における加算処理、正規化処理および
丸め処理を実行する部分を示している。この回路には、
仮数部A、仮数部B(IEEE754規格における倍精
度フォーマットでは、52ビットである。)が入力され
る。
【0021】16、17はビット反転回路であり、2の
補数表現に変更するための回路である。ビット反転回路
16は、仮数部Aを受け取り、仮数部Aの各ビットを反
転させ(「0」→「1」あるいは「1」→「0」)、ビ
ット反転回路17は、仮数Bのビットを反転させる
(「0」→「1」あるいは「1」→「0」)。仮数部A
から仮数部Bのうちどちらのビットを2の補数表現にす
るかは、制御回路18により選択される。制御回路18
から加算器回路19へは、2の補数表現のための加算値
「1」が出力される。加算器回路19は、ビット反転回
路16からの仮数部A’とビット反転回路17からの仮
数部B'との加算処理を行う回路である。20は桁落ち
予測回路であり、ビット反転回路16、ビット反転回路
17からの仮数部A'および仮数部B'を受け取り、加算
器回路19の仮数部A'と仮数部B'との加算すなわち仮
数部Aと仮数部Bの減算による桁落ちを予測する回路で
ある。この実施例では、特に(仮数部A−仮数部B)の
減算処理を行う場合について述べる。また、「1」、
「0」は、2進数表現である。21は0カウンタ回路で
あり、桁落ち予測回路20からの予測結果を受け取り、
予測結果において、最上位の「1」が現れるまで、
「0」が何個並んでいるかがカウントされる。例えば、
「0.001・・・」であれば、3個とカウントされ
る。22はバレルシフタ回路であり、0カウンタ回路2
1から、何個「0」が並んでいるかの結果を受け取り、
その分だけ加算結果を左にシフトする。例えば、「0.
001・・・」であれば、3ビット左にシフトして、
「1.000・・・」とする。23は補正シフタ1回路
であり、桁落ち予測回路20により予測して、バレルシ
フタ回路22でシフトしたシフト量が1ビット不足して
する場合が発生するので、補正シフタ1回路23によ
り、1ビット左にシフトさせるための回路である。桁落
ち予測回路20、0カウンタ回路21、バレルシフタ回
路22および補正シフタ1回路が、大きく分けて、正規
化処理を行う部分である。
【0022】24はインクリメンタ回路であり、加算器
回路19からの加算結果を受け取り、丸め処理、つまり
加算結果の最下位ビットの桁あふれを四捨五入して丸め
るための回路である。丸め処理を行う必要があるかどう
かは、制御回路18からの制御信号に基づいて判断され
る。25は補正シフタ2回路であり、インクリメンタ回
路24からデータを受け取って、補正が必要な場合には
補正処理を行う回路である。
【0023】26は丸めデコーダおよび桁落ち検出回路
であり、制御回路18からの制御信号に基づき、加算器
回路19からのデータのビット列を調べて、補正シフタ
1回路からのデータか、補正シフタ2回路からのデータ
か、つまり、正規化処理した方のデータか、丸め処理し
た方のデータかのどちらかのデータをセレクタ回路27
で選択させるための制御を行う回路である。なお、浮動
小数点演算における正規化処理、丸め処理の一般的な説
明については省略する。
【0024】また、この実施例では、桁落ちに関する説
明の都合上、減算処理を説明していくことにする。減算
処理においては、2の補数表現を行うために、例えば、
(仮数部A−仮数部B)の場合、制御回路18の制御に
より、ビット反転回路17に入力された仮数部Bのビッ
ト反転処理が行われ、仮数部B'として加算器回路19
に出力される。ビット反転回路16は、仮数部Aのビッ
ト反転処理を実行せずに、仮数部A'として加算器回路
19に出力する。つまり、減数(仮数部B)の方を2の
補数表現する。加算器回路19では、仮数部A’と仮数
部B'の加算が実行される。
【0025】次に、この発明の特徴である桁落ち予測回
路20について詳細に説明する。桁落ち予測回路20
は、浮動小数点演算処理を高速に実行するために考え出
されたものであり、その特徴は、加算器回路19の加算
結果を待たずに、加算器回路19の計算後に桁落ちが何
ビット発生するかを加算器回路19に入力される仮数部
A'および仮数部B'により予測するための回路である。
例えば、加算器回路19における加算結果(「0.00
・・」)を何ビットシフトさせれば、正規化(「
00・・」)されるかを予測するものである。ただし、
その予測には、1ビットの位置のずれを含んでいること
があるので、補正シフタ1回路23が必要となる。
【0026】図2は、桁落ち予測回路20の詳細な回路
構成を示した図である。28〜33はNORゲートであ
り、仮数部Aの各ビット(A0'〜Am')と仮数部Bの各
ビット(B0'〜Bm')とを受け取り、論理和否定演算を
行い、その演算結果を出力する。34〜38はNAND
ゲートであり、仮数部Aの各ビット(A0'〜Am')と仮
数部Bの各ビット(B0'〜Bm')とを受け取り、論理積
否定演算を行い、その演算結果を出力する。39〜43
はインバータであり、NORゲート28〜32の出力を
受け取り、その出力の反転を行う。44〜48、49〜
53で構成されるゲートは、AND−OR−NOT型複
合ゲートであり、インバータ39〜43からの出力信号
とNANDゲート34〜38からの出力信号と、NOR
ゲート29〜33の出力信号とを受け取り、論理演算を
行い、その演算結果を予測ビットE0〜Emとして出力す
る。予測ビットE0〜Emは、0カウンタ回路21に出力
される。
【0027】予測ビットEi(0≦i≦m;mは整数)
は、ビット反転回路16、17からの仮数部A、Bのi
番目のビットA'i、B'i(0≦i≦m;mは整数)とi
−1番目のAi-1'、Bi-1'とから導かれる。すなわち、
予測ビットEiを出力するための上記のAND−0R−
NOT型複合ゲートは、NAND側の入力端子の一方
で、インバータ39〜43からの出力信号を受け取り、
他方で、NANDゲート34〜38からの出力信号を受
け取る。さらに、NOR側の入力端子で、i-1番目のN
ORゲート29〜33の出力信号を受け取るように構成
される。すなわち、この実施例においては、予測ビット
生成をたった3段のCMOSゲートで構成することがで
きる。
【0028】予測ビットEi(0≦i≦m)の値は、N
ORゲート29〜33からの信号が「1」の時、すなわ
ちAiー1'=0であって、Bi-1'=0の時には、必ずEi
=0となる。次に、NORゲート29〜33からの信号
が「1」の時には、上記AND−OR−NOT型複合ゲ
ートに入力される値(NAND側44〜48)によって
決まる。したがって、Ai'=0、Bi'=0となり、NO
Rゲート28〜32の出力が「1」となって、インバー
タ39〜43により反転されて「0」になるか、もしく
は、Ai'=1、Bi'=1となって、NANDゲート34
〜38からの出力が「0」になったとき、Ei=1とな
り、それ以外の条件すなわちAi'=1であって、Bi'=
0、もしくはAi'=0であってBi'=1の時にはEi=
0となる。ただし、E0については、予測した値が1ビ
ットの誤差を含んでいることを考慮して、常にE0=1
にしておく。
【0029】さて、加算器回路19に具体的な仮数部
A、Bのビット列を与えた時に、この桁落ち予測回路2
0において予測論理がどのような結果を与えるのかにつ
いて調べ、その予測結果と加算器回路19の加算結果と
を比較する。桁落ちが発生する代表的な例を3つ挙げて
説明する。この実施例では、仮数部A、仮数部Bは整数
であって、必ず大きい値から小さい値を引くようにする
ことを前提とする。(仮数部A>仮数部B)仮数部A、
仮数部Bは、16ビットとする。
【0030】(a)上位ビット並びが同じとき 仮数部A + 1001 1100 1010 0001 仮数部B − 1001 1100 1000 1001 加算結果S = 0000 0000 0001 1000 ビット反転回路16、17から出力された表現で記載す
ると、 仮数部A' +0 1001 1100 1010 0001 仮数部B' +1 0110 0011 0111 0110+1 P PPPP PPPP PPGP KPPP 加算結果S =0 0000 0000 000 1000 予測結果E 0 0000 0000 000 1001 となる。(上位に付加したビットはサインビットであ
り、正(0)か負(1)かを示す。)
【0031】ここで、Pi、Ki、Giは、浮動小数点演
算においては、よく使用されるものであり、Piはプロ
パゲート信号、Kiはキル信号、Giはジェネレート信号
であり、Pi=Ai'(+)Bi'、Ki=バー(Ai'+B
i')、Gi=Ai'・Bi'で表される。「(+)」は排他
的論理和、「+」は論理和、「・」は論理積を示す。上
記のビット列においては、仮数部A>仮数部Bなので、
ビット並びが同じでなくなる部分の先頭ビットは必ず
「Ai=1(Ai'=1)、Bi=0(Bi'=1)」とな
る。よって、必ずPPP・・・PPGとなり、PPP・
・・PPKとはならない。ただし、PPP・・・PPG
KKKのように「Gの後にKが続く場合」には、Gの位
置で「1」が立たずに「0」が立つ場合もあるので注意
が必要である。まとめると、PPP・・・PGG、PP
P・・・PGPのところで「1」が立つ。正確には、
「GGの並びの場合」あるいは「GPの並びであって下
位からの桁上げ(キャリー)がある場合」には、上位側
(GGの最初のG、GPのGの位置のEiビット)に
「1」が立ち、「GPの並びであって下位からのキャリ
ーがない場合」には、下位側(Pの位置のEiビット)
に「1」が立つことになる。
【0032】(b)仮数部A=1000001・・・、
仮数部B=0111110・・・のとき 仮数部A + 1000 0000 1010 0001 仮数部B − 0111 1111 0110 1001 加算結果S = 0000 0001 0011 1000 ビット反転回路16、17から出力された表現で記載す
ると、 仮数部A' +0 1000 0000 1010 0001 仮数部B' +1 1000 0000 1001 0110+1 P GKKK KKKK GKPP KPPP 加算結果S =0 0000 000 0011 1000 予測結果E 0 0000 000 0100 1001 となる。よってこの場合には、PGKKK・・・KGと
なる。
【0033】(C)仮数部A=1000001・・・、
仮数部B=0111111・・・のとき 仮数部A + 1000 0000 1010 0001 仮数部B − 0111 1111 1110 1001 加算結果S = 0000 0000 1011 1000 ビット反転回路16、17から出力された表現で記載す
ると、 仮数部A' +0 1000 0000 1010 0001 仮数部B' +1 1000 0000 0001 0110+1 P GKKK KKKK PKPP KPPP 加算結果S =0 0000 0000 011 1000 予測結果E 0 0000 000 0100 1001 となる。よって、この場合では、PGKKK・・・KP
となる。
【0034】バレルシフタ回路22へは、上述した3つ
の例で示した加算器回路19からの加算結果Siと、桁
落ち予測回路20で得られた予測結果Eiに基づいた、
0カウンタ回路21からの加算結果Siのビットのシフ
ト量とが出力される。そして、そのシフト量に基づい
て、加算結果Siをシフトし、シフトした結果を補正シ
フタ1回路23へ出力する。
【0035】上述した例(b)のように予測結果Eの先
行「1」と、加算結果Sの先行「1」とが一致すること
が望ましいが、例(a)や(c)のように、この桁落ち
予測回路20の予測結果Eiが、実際の先行「1」より
も1ビット上位側に先行「1」を出力してしまうことが
ある。このため、この予測ミスを補正するために、補正
シフタ1回路23を設けている。補正シフタ1回路23
の追加により、遅延とハードウエア規模の増大をもたら
すが、1ビットシフトを扱う補正シフタ1回路23に関
しては、遅延もハードウエア量もそれほど大きくなく、
この発明の桁落ち予測回路20と0カウンタ回路21か
らなる部分の構成の遅延短縮とハードウエア量の削減を
含めて考えれば、全体として改善効果が大きくなる。先
行「1」のずれについては、制御回路18により、バレ
ルシフタ回路22から出力されたビット列に1ビットず
れがあるかどうかを検知し(例えば、「.1・・」の
下線の値を検知する)、ずれがある場合には、補正シフ
タ1回路23に制御信号を出力し(図示せず)、ビット
列の1ビットシフトが行われる。補正シフタ1回路2
3、補正シフタ2回路25は、従来のシフタ回路を使用
すれば実現できる。この発明における桁落ち予測回路2
0の回路構成の基となる論理式の導き方について以下に
述べる。この実施例では、「仮数部A,Bともに正の数
であり、必ず大きい値から小さい値を引き、正の値を出
力する」ように構成しているので、(I)Ai'=Aiなら
ばBi'=バーBi、(II)Ai'=バーAiならばBi'=B
i、(III)常にAs=Bs=Ss=0ということを前提
条件とする。2進数の加算において、i番目の和Siは
i番目の入力Ai'とBi'および下位ビットからの桁上げ
信号Ci-1に対して次式で与えられる。
【0036】 Si=Ai'(+)Bi'(+)Ci-1 ・・・(1) Ci-1=Ai-1'・Bi-1'+(Ai-1'(+)Bi-1')・Ci-2 ・・・(2)
【0037】また、多くの文献が桁上げ先見加算器の理
解を助けるために、Pi=Ai'(+)Bi'、Gi=Ai'・
Bi'、Ki=バー(Ai'+Bi')の置き換えを用いて次
式のようになる。なお、定義式から明らかなように、P
i=バー(Gi+Ki)、Gi=バー(Pi+Ki)、Ki=
バー(Gi+Pi)である。なお、『バー』は、信号の反
転を示す。
【0038】 Si =Pi(+)Ci-1 ・・・(1') Ci-1=Gi-1+Pi-1・Ci-2 ・・・(2')
【0039】式(1')に式(2')を代入して、排他的
論理和を展開すると式(3)になる。 Si=Pi(+)(Gi-1+Pi-1・Ci-2) =バー(Pi)・(Gi-1+Pi-1・Ci-2)+Pi・バー(Gi-1+Pi-1・C i-2) ・・・(3)
【0040】続いて、式(3)の簡単化について考えて
みる。0カウンタ回路21の入力に与えるビット列は
「1」が立つ先頭ビットのみが有意義であり、1ビット
のずれは後段の補正シフタ1回路23で容易に補正でき
る。そこで、この1ビットのずれを許すことで、式の簡
単化を試みる。例えば、式(3)の第1項に注目する
と、バー(Pi)・Pi-1=1が常に成り立てばCi-2を
消去できることが分かる。つまり、Pi=0、Pi-1=1
である。1ビットのずれを認めるので、SiおよびSi-1
の2ビットについて調べる。式(3)と式(1')にバ
ー(Pi)・Pi-1=1を代入すると次のようになる。
【0041】 Si =バー(Pi)・(Gi-1+Pi-1・Ci-2)+Pi・バー(Gi-1+Pi-1・ Ci-2) =バー(Pi)・Gi-1+バー(Pi)・Pi-1・Ci-2 =バー(Pi)・バー(Pi-1+Ki-1)+バー(Pi)・Pi-1・Ci-2 =Ci-2 ・・・(4) Si-1=Pi(+)Ci-2 =バー(Pi-1)・Ci-2+Pi-1・バー(Ci-2) =バー(Ci-2) ・・・(5)
【0042】式(4)(5)から明らかなように、バー
(Pi)・Pi-1=1ならば、SiおよびSi-1のどちらか
のビットに必ず「1」が立つ。したがって、1ビットの
ずれを許せば、バー(Pi)・Pi-1=1のとき、Si=
1としてもよい。そこで、Siの代わりに式(3)とバ
ー(Pi)・Pi-1の論理和を採ったものをDiと置く
と、式(6)が得られる。必ず「1」が立つように、バ
ー(Pi)・Pi-1を加えることにする。
【0043】 Di=バー(Pi)・(Gi-1+Pi-1・Ci-2)+Pi・バー(Gi-1+Pi-1 ・Ci-2)+バー(Pi)・Pi-1 =バー(Pi)・(Gi-1+Pi-1)+Pi・バー(Gi-1+Pi-1・Ci-2) ・・・(6)
【0044】この式(6)では、例えば、バー(Pi)
・Pi-1・バー(Ci-2)=1(バー(Pi)・Pi-1=1
の条件を満たし、かつバー(Ci-2)=1の条件も満た
す)の場合に、Si=0、Si-1=1となるところを強制
的にDi=1としてしまうため、1ビット上位側へのず
れを含んでいる。(Si=0となるところをSi=1とな
っている。)また、このずれは、式(6)の第1項によ
るものであり、式(3)のままである第2項はずれを含
んでいない。したがって、第2項の論理を1ビット下位
のi−1ビット目で調べても、ずれは1ビット以内に収
まっている。式(6)を変形し、iビットに関して記述
すると式(7)になる。式(3)と同様に、Piが
「0」か「1」かで出力が選択される形式に変形する。
【0045】Di’=バー(Pi)・(Gi-1+Pi-1)
+Pi-1・バー(Gi-2+Pi-2・Ci-3) ここで、式(3)と同様に、Piが「0」か「1」か
で、出力が選択されるような形式に、(バー(Pi)+
Pi-1)を乗じて変形する。 左辺=Di'・(バー(Pi)+Pi-1) =Di' 右辺={バー(Pi)・(Gi-1+Pi-1)+Pi-1・バー(Gi-2+Pi-2・Ci- 3)}・(バー(Pi)+Pi-1) =バー(Pi)・(Gi-1+Pi-1)+(バー(Pi)+Pi)・Pi-1・バー (Gi-2+Pi-2・Ci-3) =バー(Pi)・(Gi-1+Pi-1)+Pi・Pi-1・バー(Ci-2) ・・・(7)
【0046】一方、加算器回路19の最上位ビットから
の桁上げをCm、仮数部A'、B'の符号を表す信号をそ
れぞれAs'、Bs'とおくと加算器回路19の符号出力S
sは式(8)で得られる。(As、Bs:仮数部A、Bの
符号ビット、Ss:加算器回路19の出力信号Sにおけ
る符号ビット)
【0047】 Ss=As'(+)Bs'(+)Cm ・・・(8) 上述した(I)〜(III)の前提条件から、減算時には、
As'(+)Bs'=1、Ss=0となるので、常にCm=1
である。一方、Cmは、式(2')の展開から式(9)で
表現できる。ここでは、最上位ビットをサフィックスm
で表している。
【0048】 Cm=Gm+(Pm・Cm-1) =Gm+(Pm・Gm-1)+(Pm・Pm-1・Cm-2) =Gm+(Pm・Gm-1)+(Pm・Pm-1・Gm-2)+…+(Pm・Pm-1・… ・Pi+1・Gi)+(Pm・Pm-1・…・Pi+1・Pi・Ci-1) : : =Gm+(Pm・Gm-1)+(Pm・Pm-1・Gm-2)+…+(Pm・Pm-1・… ・Pi+1・Gi)+(Pm・Pm-1・…・Pi+1・Pi・Gi-1)+…+(Pm ・Pm-1・…・P2・P1・G0)+(Pm・Pm-1・…・P2・P1・P0・ C in) =1 ・・・(9) (加算器回路19のキャリー入力Cinは、「A+バー
(B)+1」の「1」の相当し、減算時には、常にCm
=1)
【0049】Pi、Gi、Kiの定義により、Pi=バー
(Gi+Ki)、Gi=バー(Pi+Ki)であるので、式
(9)の各項はいずれか1項のみが「1」となり、残り
の項は「0」となる。すなわち、先頭からj番目のビッ
トまでPm=Pm-1=…=Pj+1=Pj=1が並べば、その
次のビットj−1にGj-1=1が立つ(Pm〜Pj=1な
らばGm〜Gj=0となり、Gj-1=1のとき、Pi=バー
(Gi+Ki)より、Pjー1=0となる)。先頭からPi
が並ぶ場合にSiはすべて「0」となるので(例(a)
の通り)、この部分で先頭の「1」が立つことはない。
式(1')(2')から、Pi=1、Si=0のとき、Ci-
1=Gi-1+Pi-1・Ci-2=1となる。
【0050】したがって、 Pi・(Gi-1+Pi-1・Ci-2) =Pi・Gi-1+Pi・Pi-1・Ci-2 =1 Pi-1・Ci-2=1の条件は、Pi-1=1に置き換えられ
るので、 Pi・Pi-1+Pi・Gi-1=1 ・・・(10) のときに、前述のDi'を強制的に「0」にする必要があ
るので、式(10)の反転を式(7)に乗じる。乗じた
ものをEiとする。
【0051】 Ei={バー(Pi)・(Gi-1+Pi-1)+Pi・Pi-1・バー(Gi-2+Pi-2 ・Ci-3)}・バー(Pi-1+Pi・Gi-1) ={バー(Pi)・(Gi-1+Pi-1)+Pi・Pi-1・バー(Gi-2+Pi-2 ・Ci-3)}・(バー(Pi・Pi-1)・バー(Pi・Gi-1)) =Pi・(Gi-1+Pi-1) =バーPi・バーKi-1 ={Ai'・Bi’+バー(Ai'+Bi')}・(Ai-1'+Bi-1') ・・・(11) となり、式(10)が成り立つときは、Ei=0とな
る。ただし、Eiは式(7)から導出するため、Di'と
同様に1ビットのずれを含んでいる。この式(11)が
最終的に得られる評価式である。この値に対して、先頭
から並ぶ「0」の数を数えれば最大1個のずれで実際の
「0」の数を予測できる。
【0052】ここで、念のために、式(6)の第2項を
1ビットずらして得られた式(7)にバー(Pi・Pi-1
+Pi・Gi-1)を乗じたことが先頭の「0」の並びに影
響を与えないことを確かめる。式(6)の第2項は、 (バー(Pi)+Pi)・Pi-1・バー(Gi-2+Pi-2・Ci-3) =バー(Pi)・Pi-1・バー(Ci-2)+Pi・Pi-1・バー(Ci-2) ・・・(12) であるので、バー(Pi-1+Pi・Gi-1)を乗じたこと
で消去されたのは、Pi・Pi-1・バー(Ci-2)=1の
場合だけである。この場合には、Piもしくは更に上位
のPj(m>j>i)において式(12)の右辺第1項が
「1」となる(すなわちEiが「1」となる)ので、こ
こでSi-1が先頭の「1」になることはない。ここで、
この右辺第1項が式(11)ではPi・Pi-1に含まれて
いる。このように、式(10)の反転を乗じたとしても
先頭の「1」が強制的に消去されることはない。
【0053】このようにして導かれた式(11)に基づ
き、図2に示した桁落ち予測回路20の回路構成を実現
した。ただし、1ビットのずれを含む場合は、バレルシ
フタ回路22でのシフトの後に、補正シフト1回路23
における1ビットのシフト処理が必要となる。
【0054】以上のように、1ビットの予測ずれを許す
ことにより、予測ビットEiを導き出すためのロジック
(式)の簡単化が図れ、この式(11)に基づいて、桁
落ち予測回路20をNORゲート28〜33、NAND
ゲート34〜38、インバータ39〜43、44〜4
8、49〜53で構成されるAND−OR−NOT型複
合ゲートの少ない論理素子で構成することができるの
で、桁落ち予測回路20のハードウエア量を低減するこ
とができる。
【0055】なお、図2に示した桁落ち予測回路20
は、NMOS、CMOS、BiCMOS技術における一
般的なロジックゲートでの実現を意図して記述したが、
この回路の実現手段は、必ずしもCMOSである必要は
なく、回路技術に依存しない。式(11)を回路技術に
依存しない論理図で記述すると図13のような回路構成
になる。130〜135、146〜150はORゲー
ト、136〜140、151〜155はANDゲート、
141〜145はインバータである。図13のEiに対
する論理は、式(11)をすなおに論理図表現したもの
であって、式(11)そのものといえるが、ORゲート
からの出力信号を隣接するビットで共有することで、全
体の論理規模を小さくしていることに式(11)との表
現の違いがある。ここで、図13は論理図であるので、
個々の図面要素(素子)は、具体的な実現手段としての
回路構成とは1対1には対応しない。図13中の1ビッ
ト分(点線部分)のセルをCMOSゲートに置き換える
と、図14に示したような回路構成になる。157はN
ORゲート、163はNANDゲート、158はNAN
Dゲート、165はNORゲート、159〜162、1
64はインバータである。この図14に示した1ビット
分のセルを最適化するために、冗長なインバータを削除
し、かつ複合ゲートを構成すると図15のような回路構
成になる。166はインバータ、167および168で
構成されるゲートは、AND−OR−NOT型複合ゲー
トである。図15に示した1ビット分のセルが、図2に
示した桁落ち予測回路20の1ビット分のセルである。
【0056】実施例2.次に、この発明の第2の実施例
について説明する。この実施例では、図1に記載した浮
動小数点演算装置のハードウエア量の低減を図る。図1
に記載した浮動小数点演算装置では、1ビットのずれを
補正するために、補正シフタ1回路23を設けている。
補正シフタ1回路23の追加は、遅延およびハードウエ
ア量に対して、その増大を招くことになる。
【0057】バレルシフタ回路22から補正シフタ1回
路23へ出力される信号は、「1.・・・」、「0.1
・・」の場合が考えられる。「0.1・・・」の場合に
は、補正シフタ1回路23により、1ビット左にシフト
させ、「1.・・・」の場合には、そのままセレクタ回
路27に出力させる。
【0058】一方、インクリメンタ回路24から補正シ
フタ2回路25へ出力される信号は、「1・.・・
・」、「00.1・・」、「01.0・・」の場合が考
えられる。「1・.・・・」の場合には、右に1ビット
シフトし、「00.1・・・」の場合には、左に1ビッ
トシフトし、「01.・・・」の場合には、シフトせず
に、そのままセレクタ回路27へ出力する。なお、最上
位ビットの左のビットは、オーバーフロービットであ
る。正規化処理の場合には、特にオーバーフロービット
を設ける必要はないため、上記の実施例1では、オーバ
ーフロービットは省いて説明している。
【0059】丸め処理用の補正シフタ2回路25は、正
規化処理用の補正シフタ1回路23に必要な機能を包含
しているので、丸め処理用の補正シフタ2回路25を正
規化処理用の補正シフタ回路としても利用できる。
【0060】図3は、正規化処理用の補正シフタ1回路
23の機能を補正シフタ2回路25に含めたときの浮動
小数点演算装置を示した図である。この図では、補正シ
フタ2回路25をセレクタ回路27の後段に設けた。バ
レルシフタ回路22とインクリメンタ回路24からの信
号がセレクタ回路27に出力され、丸めデコーダおよび
桁落ち検出回路26の制御により、どちらかの信号が選
択され、選択された信号が補正シフタ2回路に出力され
る。
【0061】バレルシフタ回路22からの出力信号は、
オーバーフロービットがないため、インクリメンタ回路
24からの信号のビット幅よりも1ビット少なくなって
いる。そのために、補正シフタ2回路25が受け取る信
号の幅が、正規化処理と丸め処理とでは異なる。
【0062】そこで、信号幅を同一にするために、正規
化処理において、バレルシフタ回路22からの信号に、
丸め処理用のオーバーフロービットに相当するビット、
例えば「0」を付加する。付加する「0」は、図示して
いないが、バレルシフタ回路22から出力された信号
に、制御回路18から付加させ、セレクタ回路27に出
力させるようにする。
【0063】以上のように、正規化処理用の補正シフタ
回路と丸め処理用の補正シフタ回路とを補正シフタ2回
路25で共通化したので、実施例1の浮動小数点演算装
置に比べて、ハードウエア量の低減を図ることができ
る。
【0064】実施例3.次に、この発明の第3の実施例
について説明する。図4は、浮動小数点演算装置を示し
た図である。図において、16〜26は、図1の回路構
成と同一である。54は桁落ち予測論理を付加した加算
回路であり、予測論理付加算器回路54の詳細な回路構
成を図5に示す。55はNORゲート、56、57で構
成されるゲートは、AND−OR−NOT型複合ゲー
ト、58はNORゲート、59〜61はインバータ、6
2〜65はトランスミッションゲートである。図5に
は、予測論理付加算器回路54のi番目の全加算器のみ
の回路構成を示すが、実際は、この回路が複数個と桁上
げ先見のための回路が備わっている。従来の桁上げ先見
加算回路において、予測ビットEiを生成させるため
に、桁上げ先見加算回路で生成あるいは入力されるA
i'、Bi'、Gi-1(バー(Ai-1'+Bi-1'))、Ci-1の
(特にAi'、Bi'、Gi-1(バー(Ai-1'+Bi-1'))
の信号を使用することで、上述の式(11)の回路構成
が実現されることに着目して、予測ビットEiを生成す
るように構成した。また、この回路で生成されるバー
(Ai'+Bi')、Pi、Ci、Siは、次段(図示せず)
の回路に出力される。予測論理付加算器回路54で生成
されたEiは、0カウンタ回路21に出力する。0カウ
ンタ回路21から後の処理は図1で示した回路と同様に
実行される。ただし、E0については、E0=1として、
例えば、制御回路18から予測論理付加算器回路54を
介して、0カウンタ回路21へ出力される。なお、Pi
はプロパゲート信号、Giはジェネレート信号である。
【0065】以上のように、浮動小数点演算装置におい
て、桁落ち予測回路20を削除して、予測付加算器回路
54内で予測ビットEiを生成させるように構成したの
で、全体としてトランジスタ数が減り、浮動小数点演算
装置の回路規模を縮小することができる。
【0066】実施例4.図6は、この発明の第4の実施
例における桁落ち予測回路20の詳細な回路構成を示し
た図である。この実施例では、図2の桁落ち予測回路2
0の回路構成のトランジスタ数を減少させた回路構成を
示した。66〜71はNORゲート、72〜76および
77〜81で構成されるゲートは、AND−OR−NO
T型複合ゲート、82〜86はNORゲートである。こ
の回路は上述した式(11)に基づいて構成している。
他の回路(0カウンタ回路21など)については、図1
と同じ構成である。ビット反転回路16、17から仮数
部A'、B'を受け取り、桁落ち予測を行い、予測ビット
Eiを生成し、0カウンタ回路21へ出力する。Eiを生
成する回路は、3つの論理素子(例えば、NORゲート
66、AND−OR−NOT複合ゲート(77、7
2)、NORゲート82)からなるので、図2の回路構
成に比べてトランジスタ数が減少する。
【0067】なお、図2の回路構成と図6の回路構成と
を比較すると、図6のように桁落ち予測回路20を構成
した方がトランジスタ数は減るが、遅延ということを考
えると、各論理素子の特性から、図2に記載した回路構
成の方が高速となる。以上のように、図6のように構成
したことにより、図2に記載した回路構成よりもトラン
ジスタ数が減り、桁落ち予測回路20の回路規模を縮小
することができる。
【0068】実施例5.図7は、この発明の第5の実施
例における桁落ち予測回路20の詳細な回路構成を示し
た図である。この実施例では、図2の桁落ち予測回路回
路20の回路構成よりも高速に動作する回路構成を示し
た。87〜101はインバータ、102〜106はNO
Rゲート、107〜116はトランスミッションゲー
ト、117〜121はNORゲートである。ここでは、
高速動作させるために、トランスミッションゲート、イ
ンバータを使用している。回路構成は、上述の式(1
1)に基づいて構成されている。他の回路(0カウンタ
回路21など)については、図1と同じ構成である。ビ
ット反転回路16、17から仮数部A'、B'を受け取
り、仮数部B’の値に応じて、トランスミッションゲー
ト107〜116がONあるいはOFFし、インバータ
87、90、93、96、99か、インバータ88、9
1、94、97、100かのどちらかの出力をNORゲ
ート117〜121に出力し、NORゲート102〜1
06からの出力とにより、予測ビットEiを生成し、予
測ビットEiを0カウンタ回路21へ出力する。なお、
トランジスタ数に関しては、図2の回路よりも多くな
る。
【0069】以上のように、図7のように構成したこと
により、図2に記載した回路構成よりも高速に桁落ち予
測を行うことができる。
【0070】
【発明の効果】この発明の浮動小数点演算装置は、以上
のように構成されているので、桁落ち予測ビットの生成
が簡単なロジックで求められ、回路規模の縮小化および
処理の高速化を図ることができる。また、正規化処理用
の補正回路を丸め処理の補正回路に含めることで、正規
化処理用の補正回路が削除されたので、浮動小数点演算
装置の回路規模を縮小できる。また、桁上げ先見加算を
行う加算器回路で生成された信号を用いて、桁落ち予測
を行うことで、加算回路とは別に設けられていた桁落ち
予測回路が削除されるので、浮動小数点演算装置の回路
規模を縮小できる。
【図面の簡単な説明】
【図1】この発明における浮動小数点演算装置の回路構
成を示した図である。
【図2】図2は、図1の桁落ち予測回路20の詳細な回
路構成を示した図である。
【図3】この発明の第2の実施例を示す浮動小数点演算
装置を示した図である。
【図4】図4は、第3の実施例を示す浮動小数点演算装
置を示した図である。
【図5】図4の予測論理付加算器回路54の詳細な回路
構成を示した図である。
【図6】この発明の第4の実施例における桁落ち予測回
路20の詳細な回路構成を示した図である。
【図7】図7は、この発明の第5の実施例における桁落
ち予測回路20の詳細な回路構成を示した図である。
【図8】従来の浮動小数点演算装置の全体構成の概略図
である。
【図9】図8のLZP1の詳細な回路構成を示した図で
ある。
【図10】図8のLZP1の第1ステージ6を構成する
回路の詳細図である。
【図11】図8のLZP1の第2ステージ8を構成する
駆動回路9の詳細図である。
【図12】図8のLZP1の第3ステージ10を構成す
る駆動回路11の詳細図である。
【図13】この発明における浮動小数点演算装置の回路
構成を示した図である。
【図14】図13に示された1ビット分のセルをCMO
Sゲートに置き換えた図である。
【図15】図14に示した1ビット分のセルを最適化し
た図である。
【符号の説明】
16〜17…ビット反転回路;19…加算器回路;20
…桁落ち予測回路;21…0カウンタ回路;22…バレ
ルシフタ回路;23…補正シフタ1回路;28〜33、
55、、58、66〜71、82〜86、102〜10
6、117〜121、157、165…NORゲート;
34〜38、163…NANDゲート;39〜43、5
9〜61、87〜101、141〜145、159〜1
62、164、166…インバータ;62〜65、10
7〜116…トランスミッションゲート;54…予測論
理付加算器回路;130〜135、146〜150…O
Rゲート;136〜140、151〜155…ANDゲ
ート。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/50 G06F 7/00

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 加算回路に入力されるmビットの第1の
    仮数部と第2の仮数部とを受け取り、前記第1および第
    2の仮数部から、正規化処理のための桁落ち予測を行う
    桁落ち予測回路を備えた浮動小数点演算装置において、 前記桁落ち予測回路は、前記第1の仮数部のi番目(i
    は整数;1≦i≦m)のビットと前記第2の仮数部のi
    番目のビットとの論理積演算により第1の結果を生成
    し、前記第1の仮数部のi番目のビットと前記第2の仮
    数部のi番目のビットとの論理和否定演算により第2の
    結果を生成し、前記第1の結果と第2の結果との論理和
    演算により第3の結果を生成し、前記第1の仮数部のi
    −1番目のビットと前記第2の仮数部のi−1番目のビ
    ットとの論理和演算により第4の結果を生成し、前記第
    3の結果と前記第4の結果との論理積演算によりi番目
    の桁落ち予測ビットEiを生成することを特徴とする浮
    動小数点演算装置。
  2. 【請求項2】 前記桁落ち予測回路は、前記第1の仮数
    部のi番目のビットと前記第2の仮数部のi番目のビッ
    トとの論理和否定演算を行うNORゲートと、前記第1
    の仮数部のi番目のビットと前記第2の仮数部のi番目
    のビットとの論理積否定演算を行うNANDゲートと、
    前記NORゲートからの出力を反転するインバータと、
    前記インバータからの出力、前記第1の仮数部のi−1
    番目のビットと前記第2の仮数部のi−1番目のビット
    との論理和否定演算の結果と前記第NANDゲートから
    の出力を受け取り論理演算を行い桁落ち予測ビットEi
    を出力するAND−OR−NOT型複合ゲートとを有す
    ることを特徴とする請求項第1項記載の浮動小数点演算
    装置。
  3. 【請求項3】 前記桁落ち予測回路は、前記第1の仮数
    部のi番目のビットと前記第2の仮数部のi番目のビッ
    トとの論理和否定演算を行うNORゲートと、前記NO
    Rゲートからの出力、前記第1の仮数部のi番目のビッ
    トと前記第2の仮数部のi番目のビットを受け取り、論
    理演算を行うAND−OR−NOT型複合ゲートと、前
    記第1の仮数部のi−1番目のビットと前記第2の仮数
    部のi−1番目のビットとの論理和否定演算の結果と前
    記AND−OR−NOT型複合ゲートからの出力との論
    理和否定演算を行い桁落ち予測ビットEiを出力するN
    ORゲートとを有することを特徴とする請求項第1項記
    載の浮動小数点演算装置。
  4. 【請求項4】 前記桁落ち予測回路は、前記第1の仮数
    部のi番目のビットと前記第2の仮数部のi番目のビッ
    トとの論理和を出力する第1の論理和素子と、前記第1
    の論理和素子からの出力を反転するインバータと、前記
    仮数部のi番目のビットと前記第2の仮数部のi番目の
    ビットとの論理積を出力する第1の論理積素子と、前記
    インバータからの出力と前記第1の論理積素子からの出
    力との論理和を出力する第2の論理和素子と、前記第1
    の仮数部のi−1番目のビットと前記第2の仮数部のi
    −1番目のビットとの論理和と前記第2の論理和素子か
    らの出力との論理積を行い桁落ち予測ビットEiを出力
    する第2の論理積素子とを有することを特徴とする請求
    項第1項記載の浮動小数点演算装置。
  5. 【請求項5】 前記桁落ち予測回路は、前記第1の仮数
    部のi番目のビットを反転する第1のインバータと、前
    記第1のインバータからの出力を反転する第2のインバ
    ータと、前記第2の仮数部のi番目のビットに基づき、
    前記第1のインバータからの出力か、前記第2のインバ
    ータからの出力かのどちらかを選択する選択回路と、前
    記第1の仮数部のi−1番目のビットと前記第2の仮数
    部のi−1番目のビットとの論理和否定演算の結果と前
    記選択回路からの出力との論理和否定演算を行い桁落ち
    予測ビットEiを出力するNORゲートとを有すること
    を特徴とする請求項第1項記載の浮動小数点演算装置。
  6. 【請求項6】 前記桁落ち予測ビットの最下位ビットE
    0は、論理値「1」であることを特徴とする請求項第1
    項ないし第5項のいずれかに記載の浮動小数点演算装
    置。
  7. 【請求項7】 第1の仮数部および第2の仮数部とを受
    け取り、演算処理を行う加算回路と、 前記第1の仮数部と前記第2の仮数部とを受け取り、桁
    落ち予測を行う桁落ち予測回路からの予測結果を受け取
    り、前記予測結果に基づき、前記加算回路からの演算結
    果を正規化する正規化処理部と、 前記加算回路からの演算結果に対し、丸め処理を行う丸
    め処理部と、 前記正規化処理部からの処理結果と、前記丸め処理部か
    らの処理結果とを受け取り、前記加算回路からの加算結
    果に基づき、どちらか一方を選択するセレクタ回路と、 前記セレクタ回路からの選択結果を受け取り、前記選択
    結果が、前記正規化処理部からの処理結果の場合には、
    その選択結果を1ビット左にシフトし、前記選択結果
    が、前記丸め処理部からの処理結果の場合には、その選
    択結果を1ビット左あるいは右ににシフトする補正回路
    とを備えたことを特徴とする浮動小数点演算装置。
  8. 【請求項8】 前記桁落ち予測結果は、請求項第1項な
    いし請求項第5項のいずれか記載の桁落ち予測回路で生
    成されたものであることを特徴とする請求項第7項記載
    の浮動小数点演算装置。
  9. 【請求項9】 mビットの第1の仮数部と第2の仮数部
    とを受け取り、桁上げ先見加算処理を行う加算回路を備
    えた浮動小数点演算処理装置において、 前記加算回路は、前記第1の仮数部のi番目のビットと
    前記第2の仮数部のi番目のビットとの論理和否定演算
    によりジェネレート信号Giを出力するNORゲート
    と、 前記NORゲートからの出力、前記第1の仮数部のi番
    目のビットと前記第2の仮数部のi番目のビットの論理
    演算によりプロバゲート信号Piを出力するAND−O
    R−NOT型複合型ゲートと、 前記プロバゲートPiと前記仮数部のi−1番目のビッ
    トのジェネレート信号Gi−1との論理和否定により、
    桁落ち予測ビットEiを出力するNORゲートとを備え
    たことを特徴とする浮動小数点演算装置。
JP29973394A 1994-12-02 1994-12-02 浮動小数点演算装置 Expired - Fee Related JP3313002B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP29973394A JP3313002B2 (ja) 1994-12-02 1994-12-02 浮動小数点演算装置
US08/556,727 US5831884A (en) 1994-12-02 1995-11-13 Apparatus for performing arithmetic operation of floating point numbers capable of improving speed of operation by performing canceling prediction operation in parallel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29973394A JP3313002B2 (ja) 1994-12-02 1994-12-02 浮動小数点演算装置

Publications (2)

Publication Number Publication Date
JPH08161152A JPH08161152A (ja) 1996-06-21
JP3313002B2 true JP3313002B2 (ja) 2002-08-12

Family

ID=17876311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29973394A Expired - Fee Related JP3313002B2 (ja) 1994-12-02 1994-12-02 浮動小数点演算装置

Country Status (2)

Country Link
US (1) US5831884A (ja)
JP (1) JP3313002B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3544846B2 (ja) * 1997-02-13 2004-07-21 株式会社東芝 論理回路及び浮動小数点演算装置
US6178437B1 (en) * 1998-08-25 2001-01-23 International Business Machines Corporation Method and apparatus for anticipating leading digits and normalization shift amounts in a floating-point processor
US6571267B1 (en) 1999-03-10 2003-05-27 Kabushiki Kaisha Toshiba Floating point addition/subtraction execution unit
US6499044B1 (en) * 1999-11-12 2002-12-24 Jeffrey S. Brooks Leading zero/one anticipator for floating point
GB0112275D0 (en) * 2001-05-21 2001-07-11 Micron Technology Inc Method and circuit for normalization of floating point significands in a simd array mpp
US7024439B2 (en) * 2002-01-24 2006-04-04 Intel Corporation Leading Zero Anticipatory (LZA) algorithm and logic for high speed arithmetic units
JP2006127469A (ja) * 2004-09-28 2006-05-18 Renesas Technology Corp 演算装置
US7899860B2 (en) * 2005-07-26 2011-03-01 Stmicroelectronics S.R.L. Method and system for high-speed floating-point operations and related computer program product
US8015230B2 (en) * 2007-06-08 2011-09-06 Apple Inc. Fast modular zero sum and ones sum determination
US8250126B2 (en) * 2007-12-26 2012-08-21 Oracle America, Inc. Efficient leading zero anticipator
US8620983B2 (en) * 2011-01-05 2013-12-31 Via Technologies, Inc. Leading sign digit predictor for floating point near subtractor

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60124729A (ja) * 1983-12-09 1985-07-03 Fujitsu Ltd 浮動小数点加減算方式
US4758974A (en) * 1985-01-29 1988-07-19 American Telephone And Telegraph Company, At&T Bell Laboratories Most significant digit location
JPH0644225B2 (ja) * 1986-03-27 1994-06-08 日本電気株式会社 浮動小数点丸め正規化回路
JPH01152534A (ja) * 1987-12-09 1989-06-15 Nec Corp 浮動小数点演算回路
US4922446A (en) * 1988-04-01 1990-05-01 Digital Equipment Corporation Apparatus and method for floating point normalization prediction
JPH02214931A (ja) * 1989-02-16 1990-08-27 Oki Electric Ind Co Ltd 浮動小数点演算回路
US4941120A (en) * 1989-04-17 1990-07-10 International Business Machines Corporation Floating point normalization and rounding prediction circuit
JPH03269620A (ja) * 1990-03-20 1991-12-02 Fujitsu Ltd 浮動小数点数加算方法およびその回路
JPH0823812B2 (ja) * 1990-08-24 1996-03-06 松下電器産業株式会社 浮動小数点データの演算方法および演算装置
US5282156A (en) * 1991-01-31 1994-01-25 Matsushita Electric Industrial Co., Ltd. Leading one anticipator and floating point addition/subtraction apparatus employing same
JPH0731591B2 (ja) * 1991-01-31 1995-04-10 松下電器産業株式会社 先行1検出回路および浮動小数点加減算装置
US5204825A (en) * 1991-08-30 1993-04-20 Weitek Corporation Method and apparatus for exact leading zero prediction for a floating-point adder
JP2723707B2 (ja) * 1991-09-17 1998-03-09 日本電気アイシーマイコンシステム株式会社 正規化回路
JPH05241792A (ja) * 1992-02-27 1993-09-21 Nec Corp 浮動小数点加減算方式および装置
JP2752564B2 (ja) * 1992-07-06 1998-05-18 松下電器産業株式会社 先行1予測装置及び浮動小数点加減算装置
US5343413A (en) * 1992-07-06 1994-08-30 Matsushita Electric Industrial Co., Ltd. Leading one anticipator and floating point addition/subtraction apparatus
JPH0635671A (ja) * 1992-07-14 1994-02-10 Matsushita Electric Ind Co Ltd 浮動小数点加減算装置
JPH0659858A (ja) * 1992-08-10 1994-03-04 Mitsubishi Electric Corp 浮動小数点演算装置
US5317527A (en) * 1993-02-10 1994-05-31 Digital Equipment Corporation Leading one/zero bit detector for floating point operation
US5574670A (en) * 1994-08-24 1996-11-12 Advanced Micro Devices, Inc. Apparatus and method for determining a number of digits leading a particular digit
US5586069A (en) * 1994-09-30 1996-12-17 Vlsi Technology, Inc. Arithmetic logic unit with zero sum prediction

Also Published As

Publication number Publication date
US5831884A (en) 1998-11-03
JPH08161152A (ja) 1996-06-21

Similar Documents

Publication Publication Date Title
US4707800A (en) Adder/substractor for variable length numbers
Lang et al. Floating-point multiply-add-fused with reduced latency
US6381624B1 (en) Faster multiply/accumulator
US4908788A (en) Shift control signal generation circuit for floating-point arithmetic operation
JPH0542011B2 (ja)
JP3313002B2 (ja) 浮動小数点演算装置
JP2618374B2 (ja) 最上位の数字の位置の検出
US4878192A (en) Arithmetic processor and divider using redundant signed digit arithmetic
US5471414A (en) Fast static CMOS adder
US6085211A (en) Logic circuit and floating-point arithmetic unit
US6018756A (en) Reduced-latency floating-point pipeline using normalization shifts of both operands
US8620983B2 (en) Leading sign digit predictor for floating point near subtractor
JPH08212058A (ja) 加算オーバフロ検出回路
US4866655A (en) Arithmetic processor and divider using redundant signed digit
US4873660A (en) Arithmetic processor using redundant signed digit arithmetic
JP3753275B2 (ja) 最上位有効ビット位置予測方法
JPH09222991A (ja) 加算方法および加算器
US5140546A (en) Adder circuit apparatus
JP3429927B2 (ja) 浮動小数点演算装置の正規化回路装置
JP5549743B2 (ja) 10進絶対値加算器
JPH063578B2 (ja) 演算処理装置
US11294630B2 (en) Adder-subtractor circuit and method of controlling adder-subtractor circuit
US20050210086A1 (en) Data processing apparatus and method for computing an absolute difference between first and second data elements
US5926407A (en) Combined add/shift structure
JP2752564B2 (ja) 先行1予測装置及び浮動小数点加減算装置

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080531

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080531

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090531

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100531

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110531

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110531

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110531

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120531

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120531

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130531

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140531

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees