JPH04312120A - 浮動小数点加減算器 - Google Patents
浮動小数点加減算器Info
- Publication number
- JPH04312120A JPH04312120A JP3079037A JP7903791A JPH04312120A JP H04312120 A JPH04312120 A JP H04312120A JP 3079037 A JP3079037 A JP 3079037A JP 7903791 A JP7903791 A JP 7903791A JP H04312120 A JPH04312120 A JP H04312120A
- Authority
- JP
- Japan
- Prior art keywords
- shifter
- circuit
- shift
- digits
- block
- 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.)
- Pending
Links
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】この発明は、情報処理装置におい
て入力数を加算または減算する浮動小数点加減算器に関
するものである。
て入力数を加算または減算する浮動小数点加減算器に関
するものである。
【0002】
【従来の技術】図4は、従来の浮動小数点演算装置の回
路図である。図において、101、102は浮動小数点
データの入力レジスタである。また、101a、102
aは符号部、101b、102bは指数部、101c、
102cは仮数部を表わす。103は入力の符号・指数
データより仮数のシフト量、補数化判定信号、指数中間
値、符号中間値を生成するための前処理回路である。1
04、105は仮数を前処理回路103の出力(仮数シ
フト量)に応じて0を消してシフトして右の有効数字を
シフトして桁合せ(プリスケール)する右シフタである
。106、107は104、105の出力を103の出
力(補数化信号)に応じて補数化する2の補数化回路、
108は整数加算器である。109は加算器108の結
果をその正負(Nフラグ)に応じて補数化する補数化回
路、110は排他的論理和回路、111はポスト・ノー
マライズ量検出回路である。112は指数中間値減算器
である。113は109の結果をポスト・ノーマライズ
するシフタである。
路図である。図において、101、102は浮動小数点
データの入力レジスタである。また、101a、102
aは符号部、101b、102bは指数部、101c、
102cは仮数部を表わす。103は入力の符号・指数
データより仮数のシフト量、補数化判定信号、指数中間
値、符号中間値を生成するための前処理回路である。1
04、105は仮数を前処理回路103の出力(仮数シ
フト量)に応じて0を消してシフトして右の有効数字を
シフトして桁合せ(プリスケール)する右シフタである
。106、107は104、105の出力を103の出
力(補数化信号)に応じて補数化する2の補数化回路、
108は整数加算器である。109は加算器108の結
果をその正負(Nフラグ)に応じて補数化する補数化回
路、110は排他的論理和回路、111はポスト・ノー
マライズ量検出回路である。112は指数中間値減算器
である。113は109の結果をポスト・ノーマライズ
するシフタである。
【0003】次に動作を説明する。図4で、2つの入力
数(浮動小数点データ)が入力レジスタ101、102
に保持される。保持されたこれらの入力の符号101a
、102a、同じく指数101b、102b、同じく仮
数101c、102cをみて、前処理回路103はシフ
タ104、105に与える仮数シフト数(プリスケール
量)、後で使用する2の補数化判定信号、指数中間値、
符号中間値を生成する。中間値とは結果を予測した仮の
値のことで、例えば2入力数の指数が共に12であった
とすると、結果もたぶん12と予測されるので、仮に1
2を中間値とする。これらの数値を得る生成例をまとめ
て図5に示す。
数(浮動小数点データ)が入力レジスタ101、102
に保持される。保持されたこれらの入力の符号101a
、102a、同じく指数101b、102b、同じく仮
数101c、102cをみて、前処理回路103はシフ
タ104、105に与える仮数シフト数(プリスケール
量)、後で使用する2の補数化判定信号、指数中間値、
符号中間値を生成する。中間値とは結果を予測した仮の
値のことで、例えば2入力数の指数が共に12であった
とすると、結果もたぶん12と予測されるので、仮に1
2を中間値とする。これらの数値を得る生成例をまとめ
て図5に示す。
【0004】次に、シフタ104、105で仮数101
c、102cをそれぞれ仮数シフト数だけシフト(プリ
スケール)し、その結果を2の補数化回路106、10
7でそれぞれの補数化判定信号が1のときに補数化して
出力する。該信号が0のときには補数化せずそのまま出
力する。補数化回路106、107の結果を整数加算器
108で加算する。その結果が負なら、前処理回路10
3の出力の符号中間値を論理和回路110で反転し、そ
うでなければ、前処理回路103の出力を論理和回路1
10で反転せず出力し、これが最終結果の符号となる。 ポストノーマライズ量検出回路111で補数化回路10
9の出力よりポストノーマライズ量を検出する。
c、102cをそれぞれ仮数シフト数だけシフト(プリ
スケール)し、その結果を2の補数化回路106、10
7でそれぞれの補数化判定信号が1のときに補数化して
出力する。該信号が0のときには補数化せずそのまま出
力する。補数化回路106、107の結果を整数加算器
108で加算する。その結果が負なら、前処理回路10
3の出力の符号中間値を論理和回路110で反転し、そ
うでなければ、前処理回路103の出力を論理和回路1
10で反転せず出力し、これが最終結果の符号となる。 ポストノーマライズ量検出回路111で補数化回路10
9の出力よりポストノーマライズ量を検出する。
【0005】また、前処理回路103の出力の指数中間
値を、ポストノーマライズ量検出回路111の結果によ
り減算器112で補正して、これが最終結果の指数とな
る。また、補数化回路109の出力をポストノーマライ
ズ量検出回路111の結果で、シフタ113でポストノ
ーマライズし、これが最終結果の仮数となる。このよう
な手順で求める浮動小数点加算結果が得られる。
値を、ポストノーマライズ量検出回路111の結果によ
り減算器112で補正して、これが最終結果の指数とな
る。また、補数化回路109の出力をポストノーマライ
ズ量検出回路111の結果で、シフタ113でポストノ
ーマライズし、これが最終結果の仮数となる。このよう
な手順で求める浮動小数点加算結果が得られる。
【0006】
【発明が解決しようとする課題】従来の浮動小数演算器
は以上のように構成されているので、1つの浮動小数点
加算に対して、プリスケールとポストノーマライズとい
うシフト動作を仮数部のビット数に応じた分だけ行う必
要があり、処理時間がかかるという問題点があった。こ
の発明は上記のような問題点を解消するためになされた
もので、プリスケールまたはポストノーマライズのシフ
ト動作にかかる時間を短縮し、浮動小数点加算を高速に
実行する浮動小数点加減算器を得ることを目的とする。
は以上のように構成されているので、1つの浮動小数点
加算に対して、プリスケールとポストノーマライズとい
うシフト動作を仮数部のビット数に応じた分だけ行う必
要があり、処理時間がかかるという問題点があった。こ
の発明は上記のような問題点を解消するためになされた
もので、プリスケールまたはポストノーマライズのシフ
ト動作にかかる時間を短縮し、浮動小数点加算を高速に
実行する浮動小数点加減算器を得ることを目的とする。
【0007】
【課題を解決するための手段】この発明に係る浮動小数
点加減算器は、プリスケールシフタのシフト桁数を少な
くしてシフトを高速で実行するシフタを持つ第1演算ブ
ロックと、ポストノーマライズシフタのシフト桁数を少
なくしてノーマライズを高速で実行するシフタを持つ第
2演算ブロックを備え、さらにこの2つのブロックの演
算結果のいずれが求める結果であるかを判定する回路と
、この判定結果により2つのブロックの出力を選択する
回路を備えた。
点加減算器は、プリスケールシフタのシフト桁数を少な
くしてシフトを高速で実行するシフタを持つ第1演算ブ
ロックと、ポストノーマライズシフタのシフト桁数を少
なくしてノーマライズを高速で実行するシフタを持つ第
2演算ブロックを備え、さらにこの2つのブロックの演
算結果のいずれが求める結果であるかを判定する回路と
、この判定結果により2つのブロックの出力を選択する
回路を備えた。
【0008】
【作用】この発明における浮動小数点加減算器は、2つ
の入力数の符号、指数に対応して、2つのブロックの内
、短時間でシフトされる正しいブロックの演算結果が選
択されて出力される。
の入力数の符号、指数に対応して、2つのブロックの内
、短時間でシフトされる正しいブロックの演算結果が選
択されて出力される。
【0009】
【実施例】実施例1.以下、この発明の一実施例を図に
ついて説明する。図1はこの発明の実施例を示す構成回
路図である。図において101と102は従来と同じ入
力レジスタである。また103〜112も従来の同番号
の回路に対応した同じ回路である。143は加減算結果
を補数化判定して得られた結果をさらに1ビット右また
は左にシフトしてポストノーマライズして最終結果を得
る、専用の縮小シフタである。そして、103〜112
と143で第2ブロックを構成する。
ついて説明する。図1はこの発明の実施例を示す構成回
路図である。図において101と102は従来と同じ入
力レジスタである。また103〜112も従来の同番号
の回路に対応した同じ回路である。143は加減算結果
を補数化判定して得られた結果をさらに1ビット右また
は左にシフトしてポストノーマライズして最終結果を得
る、専用の縮小シフタである。そして、103〜112
と143で第2ブロックを構成する。
【0010】一方、123は前処理回路で103と同等
回路である。126、127は補数化回路で106、1
07と同等回路、また128は整数加算器で108と同
等回路である。以下、129は出力の補数化回路、13
0は排他的論理和回路、131はポストノーマライズ量
検出回路、132は補正のための減算器であり、それぞ
れ109、110、111、112と同等である。13
3はポストノーマライズシフタであり、この場合後で説
明するように1ビット右にシフトするか、仮数分だけ左
にシフトできる桁数を持つ。また、144、145はプ
リスケールのためのシフタであるが、前処理回路の設定
指数差に対応するシフト段数の短いシフタである。そし
て、123、126〜133と144、145で第1ブ
ロックを構成する。
回路である。126、127は補数化回路で106、1
07と同等回路、また128は整数加算器で108と同
等回路である。以下、129は出力の補数化回路、13
0は排他的論理和回路、131はポストノーマライズ量
検出回路、132は補正のための減算器であり、それぞ
れ109、110、111、112と同等である。13
3はポストノーマライズシフタであり、この場合後で説
明するように1ビット右にシフトするか、仮数分だけ左
にシフトできる桁数を持つ。また、144、145はプ
リスケールのためのシフタであるが、前処理回路の設定
指数差に対応するシフト段数の短いシフタである。そし
て、123、126〜133と144、145で第1ブ
ロックを構成する。
【0011】また140は入力数の指数、仮数から第1
ブロックと第2ブロックの処理結果のいずれを最終結果
とすべきかを判定する判定回路、150は判定回路14
0によりいずれかのブロックを選択するセレクタである
。
ブロックと第2ブロックの処理結果のいずれを最終結果
とすべきかを判定する判定回路、150は判定回路14
0によりいずれかのブロックを選択するセレクタである
。
【0012】次に動作を説明する。ここで第1ブロック
か第2ブロックかの選択は有効桁が同じかまたは指数差
が2以上かで選択する場合を説明する。まず2つの入力
数(浮動小数点データ)が入力レジスタにセットされる
。判定回路140は2入力の符号101a、102aと
指数101b、102bによりどちらのブロックを選ぶ
かを判定する。判定基準は次のとおりである。
か第2ブロックかの選択は有効桁が同じかまたは指数差
が2以上かで選択する場合を説明する。まず2つの入力
数(浮動小数点データ)が入力レジスタにセットされる
。判定回路140は2入力の符号101a、102aと
指数101b、102bによりどちらのブロックを選ぶ
かを判定する。判定基準は次のとおりである。
【0013】A.101a≠102aでかつ|101b
−102b|≦1のとき第1ブロック B.101a=102aであるか、または|101b−
102b|>1のとき第2ブロック
−102b|≦1のとき第1ブロック B.101a=102aであるか、または|101b−
102b|>1のとき第2ブロック
【0014】上記Aの場合の意味するところは、2入力
の符号が違っていて、それを加算すること、そしてそれ
らの有効桁の違いが1桁、つまり指数差が1以下なので
結果はほとんど0に近いこと、つまり、プリスケールは
0つまりしなくてよいか、または小さい方の入力の0を
1つ消して右の有効数字を1ビットシフトするだけでよ
いことを意味している。144、145のシフタは1ビ
ットシフタであり、入力数はせいぜい1ビットシフトの
後、次の補数化回路に送られ、以後従来と同じ動作をす
る。この場合は演算結果はかなりの桁数ポストノーマラ
イズしなければならないと予測される。つまり、最も多
いシフトとしては、仮数部の最小桁のみに有効数字があ
る場合で、仮数ビット数左にシフトする。
の符号が違っていて、それを加算すること、そしてそれ
らの有効桁の違いが1桁、つまり指数差が1以下なので
結果はほとんど0に近いこと、つまり、プリスケールは
0つまりしなくてよいか、または小さい方の入力の0を
1つ消して右の有効数字を1ビットシフトするだけでよ
いことを意味している。144、145のシフタは1ビ
ットシフタであり、入力数はせいぜい1ビットシフトの
後、次の補数化回路に送られ、以後従来と同じ動作をす
る。この場合は演算結果はかなりの桁数ポストノーマラ
イズしなければならないと予測される。つまり、最も多
いシフトとしては、仮数部の最小桁のみに有効数字があ
る場合で、仮数ビット数左にシフトする。
【0015】Bの場合の意味するところは、2入力の有
効桁の違いが2桁以上、つまり指数差が2以上あるか、
または2入力の同符号加算なので、結果は、せいぜいオ
ーバーフローして左の1を1ビットシフトするか、また
は右に1ビットシフトするだけでよいことを意味してい
る。143は2ビットシフタであり、従来と同じ動作で
演算されてきた結果が、縮小シフタに入ってすぐにシフ
トされて結果を出す。
効桁の違いが2桁以上、つまり指数差が2以上あるか、
または2入力の同符号加算なので、結果は、せいぜいオ
ーバーフローして左の1を1ビットシフトするか、また
は右に1ビットシフトするだけでよいことを意味してい
る。143は2ビットシフタであり、従来と同じ動作で
演算されてきた結果が、縮小シフタに入ってすぐにシフ
トされて結果を出す。
【0016】図2(a)は図1の144、145のプリ
スケールシフタとして、説明を判りやすくするため、入
力数が4ビットでシフト数がせいぜい1ビットの場合の
回路を示したものである。対比のため、同じ入力数4ビ
ットに対してシフトが3ビットの回路図を図2(b)に
示す。4ビット入力で、しかもシフト差が2しかない場
合でも回路素子数の違いが明らかである。実際の例では
、24ビット入力で、シフト量が1ビットと24ビット
の場合ではシフト時間に10倍ほどの差が表れ、例えば
1.3ミクロンメータルールのゲートアレイで構成され
たシフタは、4nsと40nsのシフト時間となる。 これは入力ビット数、シフトビット数が大きくなると、
負荷素子数が多くなり、また配線長も長くなり、必然的
に実行時間が遅くなるためである。
スケールシフタとして、説明を判りやすくするため、入
力数が4ビットでシフト数がせいぜい1ビットの場合の
回路を示したものである。対比のため、同じ入力数4ビ
ットに対してシフトが3ビットの回路図を図2(b)に
示す。4ビット入力で、しかもシフト差が2しかない場
合でも回路素子数の違いが明らかである。実際の例では
、24ビット入力で、シフト量が1ビットと24ビット
の場合ではシフト時間に10倍ほどの差が表れ、例えば
1.3ミクロンメータルールのゲートアレイで構成され
たシフタは、4nsと40nsのシフト時間となる。 これは入力ビット数、シフトビット数が大きくなると、
負荷素子数が多くなり、また配線長も長くなり、必然的
に実行時間が遅くなるためである。
【0017】こうしてどちらかのブロックで処理された
結果は、セレクタ150で選択されて最終出力となる。 図3に本実施例を(a)に、従来の方式での結果(b)
と対比して処理時間が短縮される様子を示した。ブロッ
クの選択条件の設定の仕方、つまりシフタの桁数の選び
方により、また整数加算器の構成の仕方等でトータルの
演算時間は異なるが、大略本発明により加算も含めたト
ータルの処理時間は30%程度も短縮できる。
結果は、セレクタ150で選択されて最終出力となる。 図3に本実施例を(a)に、従来の方式での結果(b)
と対比して処理時間が短縮される様子を示した。ブロッ
クの選択条件の設定の仕方、つまりシフタの桁数の選び
方により、また整数加算器の構成の仕方等でトータルの
演算時間は異なるが、大略本発明により加算も含めたト
ータルの処理時間は30%程度も短縮できる。
【0018】実施例2.なお、上記実施例1では、ブロ
ック1と2の選択を指数差1以下か2以上としたがこれ
を他の数値にしてもよい。また、上記実施例1では、浮
動小数点加算器の例を説明したが、図1での103、1
23の前処理回路と、140の判定回路を変え、判定条
件を変えれば、浮動小数点減算器にもなる。さらに、プ
リスケール用のシフタは各ブロック2個の例を説明した
が、これを1個とし、0ビット以外のシフトが発生する
方のデータのプリスケールのみに使うようにしてもよい
。
ック1と2の選択を指数差1以下か2以上としたがこれ
を他の数値にしてもよい。また、上記実施例1では、浮
動小数点加算器の例を説明したが、図1での103、1
23の前処理回路と、140の判定回路を変え、判定条
件を変えれば、浮動小数点減算器にもなる。さらに、プ
リスケール用のシフタは各ブロック2個の例を説明した
が、これを1個とし、0ビット以外のシフトが発生する
方のデータのプリスケールのみに使うようにしてもよい
。
【0019】
【発明の効果】以上のようにこの発明によれば、プリス
ケールシフタとしてシフト桁数の少ないシフタを設けた
第1ブロックと、ポストノーマライズシフタとして縮小
シフタを設けた第2ブロックと、これらを選択するセレ
クタを備えたので、浮動小数点加減算が高速でできる効
果がある。
ケールシフタとしてシフト桁数の少ないシフタを設けた
第1ブロックと、ポストノーマライズシフタとして縮小
シフタを設けた第2ブロックと、これらを選択するセレ
クタを備えたので、浮動小数点加減算が高速でできる効
果がある。
【図1】本発明の一実施例である浮動小数点加算器の構
成回路図である。
成回路図である。
【図2】シフトビット数の違いにより構成回路の複雑さ
の違いを説明する図である。
の違いを説明する図である。
【図3】本発明による浮動小数点加算の時間を従来例に
よる時間と対比した図である。
よる時間と対比した図である。
【図4】従来の浮動小数点演算装置の回路図である。
【図5】従来の浮動小数点演算装置の前処理回路が生成
する各種の数値の例を示す図である。
する各種の数値の例を示す図である。
103 前処理回路
123 前処理回路
140 判定回路
143 縮小シフタ
144 短段数シフタ
145 短段数シフタ
150 セレクタ
Claims (1)
- 【請求項1】 指数、仮数からなる浮動小数点加減算
器において、加減算に先立ち仮数部の桁合わせを行うプ
リスケールシフタとしてシフト桁数を少ない数に限定し
た専用のシフタを設けた第1のブロックと、加減算結果
を指数部に移して桁合わせをするポストノーマライズシ
フタとしてシフト桁数を少ない数に限定した専用のシフ
タを設けた第2のブロックを備え、2つの入力数の符号
、指数を判定する回路を備え、この判定結果により上記
2つのブロックの出力を選択するセレクタを備えたこと
を特徴とする浮動小数点加減算器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3079037A JPH04312120A (ja) | 1991-04-11 | 1991-04-11 | 浮動小数点加減算器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3079037A JPH04312120A (ja) | 1991-04-11 | 1991-04-11 | 浮動小数点加減算器 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04312120A true JPH04312120A (ja) | 1992-11-04 |
Family
ID=13678721
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3079037A Pending JPH04312120A (ja) | 1991-04-11 | 1991-04-11 | 浮動小数点加減算器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04312120A (ja) |
-
1991
- 1991-04-11 JP JP3079037A patent/JPH04312120A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5027308A (en) | Circuit for adding/subtracting two floating point operands | |
| US6820107B1 (en) | Square root extraction circuit and floating-point square root extraction device | |
| JP3492638B2 (ja) | 浮動小数点乗算器 | |
| US4999803A (en) | Floating point arithmetic system and method | |
| US5010508A (en) | Prenormalization for a floating-point adder | |
| US5148386A (en) | Adder-subtracter for signed absolute values | |
| JPH02201645A (ja) | 例外検出回路 | |
| US6175851B1 (en) | Fast adder/subtractor for signed floating point numbers | |
| US5282156A (en) | Leading one anticipator and floating point addition/subtraction apparatus employing same | |
| JPH04332036A (ja) | 浮動小数点乗算器とその乗算方式 | |
| EP0332215B1 (en) | Operation circuit based on floating-point representation | |
| JPH076023A (ja) | 浮動小数点加算器のための仮数加算システム | |
| JPH07168696A (ja) | 2進数加算器のオーバフロー,アンダフロー処理回路 | |
| JPH09114641A (ja) | 最上位デジットを決定するための装置と方法 | |
| US5754458A (en) | Trailing bit anticipator | |
| JPH04312120A (ja) | 浮動小数点加減算器 | |
| US5408427A (en) | Detection of exponent underflow and overflow in a floating point adder | |
| JP3187402B2 (ja) | 浮動小数点データ加減算回路 | |
| JP3174974B2 (ja) | 浮動小数点演算装置および方法 | |
| JP2555135B2 (ja) | 演算回路 | |
| JP3286793B2 (ja) | キャリアウトを確定する回路及び方法 | |
| US20040220991A1 (en) | Faster shift value calculation using modified carry-lookahead adder | |
| JP2901463B2 (ja) | 加算装置 | |
| EP4485168A1 (en) | Computationally efficiently discretizing floating point numbers | |
| JPS5966790A (ja) | 演算回路 |