JP2523962B2 - 浮動小数点演算装置 - Google Patents
浮動小数点演算装置Info
- Publication number
- JP2523962B2 JP2523962B2 JP2219251A JP21925190A JP2523962B2 JP 2523962 B2 JP2523962 B2 JP 2523962B2 JP 2219251 A JP2219251 A JP 2219251A JP 21925190 A JP21925190 A JP 21925190A JP 2523962 B2 JP2523962 B2 JP 2523962B2
- Authority
- JP
- Japan
- Prior art keywords
- carry
- rounding
- digit
- result
- data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49957—Implementation of IEEE-754 Standard
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 産業上の利用分野 本発明は、浮動小数点演算装置に係り、特に浮動小数
点演算結果の仮数部の丸めを高速に行なうようにした浮
動小数点演算装置に関する。
点演算結果の仮数部の丸めを高速に行なうようにした浮
動小数点演算装置に関する。
従来の技術 従来の浮動小数点データの加減算は、例えば第8図に
示すブロック図のような構成で行なわれていた。第8図
において、Xe,Xfは入力データXのそれぞれ指数部およ
び仮数部データ、Ye,Yfは入力データYのそれぞれ指数
部および仮数部データ、801は指数比較回路、802,803,8
04は選択回路、805はシフト回路、806は加減算回路、80
7は丸め回路、808は正規化回路、Ze,Zfは出力データZ
のそれぞれ指数部および仮数部データである。なお、80
0は仮数部演算部であり、加減算回路806および丸め回路
807を含んでいる。
示すブロック図のような構成で行なわれていた。第8図
において、Xe,Xfは入力データXのそれぞれ指数部およ
び仮数部データ、Ye,Yfは入力データYのそれぞれ指数
部および仮数部データ、801は指数比較回路、802,803,8
04は選択回路、805はシフト回路、806は加減算回路、80
7は丸め回路、808は正規化回路、Ze,Zfは出力データZ
のそれぞれ指数部および仮数部データである。なお、80
0は仮数部演算部であり、加減算回路806および丸め回路
807を含んでいる。
以下に第8図のブロック図の動作を説明する。まず、
指数比較回路801により、入力データXおよびYの指数
部データXe,Yeを比較し、小さな指数の値を持つ入力デ
ータの仮数部データがシフト回路805に入力され、大き
な指数の値を持つ入力データの仮数部データが加減算回
路806に、大きな指数部データが正規化回路808に入力さ
れるように、選択回路802,803,804が制御される。また
この時、指数部データの差がシフト量としてシフト回路
805に入力される。次に、シフト回路805に入力された仮
数部データを、指数部データの差の分だけ右にシフトし
て、大きな指数の値を持つ入力データの仮数部データと
の桁合わせをする。この時、シフトにより右にはみだし
た最下位桁より下位の桁は、上位から保護桁(guard di
git)、丸め桁(round digit)、それ以下の全桁につい
ては論理和をとり添付桁(sticky digit)としてその情
報が丸めのために残される。
指数比較回路801により、入力データXおよびYの指数
部データXe,Yeを比較し、小さな指数の値を持つ入力デ
ータの仮数部データがシフト回路805に入力され、大き
な指数の値を持つ入力データの仮数部データが加減算回
路806に、大きな指数部データが正規化回路808に入力さ
れるように、選択回路802,803,804が制御される。また
この時、指数部データの差がシフト量としてシフト回路
805に入力される。次に、シフト回路805に入力された仮
数部データを、指数部データの差の分だけ右にシフトし
て、大きな指数の値を持つ入力データの仮数部データと
の桁合わせをする。この時、シフトにより右にはみだし
た最下位桁より下位の桁は、上位から保護桁(guard di
git)、丸め桁(round digit)、それ以下の全桁につい
ては論理和をとり添付桁(sticky digit)としてその情
報が丸めのために残される。
次に、加減算回路806では、2つの桁合わせされた仮
数部データを、仮数部に関する演算が加算である場合に
加算し、減算である場合に減算して丸め回路807に出力
する。仮数部に関する演算が加算か減算かは、入力デー
タの符号と演算が加算か減算かで決まる。丸め回路807
では、加減回路806の結果が負である場合には絶対値化
のために2の補数を生成し、正の場合には仮数部の演算
結果を所定の桁数に丸めて、正規化回路808に出力す
る。この丸め回路807は加算回路で構成され、演算結果
の所定の桁に丸めによる桁上げ値を加算するものであ
る。
数部データを、仮数部に関する演算が加算である場合に
加算し、減算である場合に減算して丸め回路807に出力
する。仮数部に関する演算が加算か減算かは、入力デー
タの符号と演算が加算か減算かで決まる。丸め回路807
では、加減回路806の結果が負である場合には絶対値化
のために2の補数を生成し、正の場合には仮数部の演算
結果を所定の桁数に丸めて、正規化回路808に出力す
る。この丸め回路807は加算回路で構成され、演算結果
の所定の桁に丸めによる桁上げ値を加算するものであ
る。
次に、正規化回路808により仮数部を正規化のため、
右あるいは左にシフトし、仮数部を右にシフトした場合
には、正規化回路808に入力された指数部データにその
シフト量を加算し、左にシフトした場合にはシフト量を
減算して指数部の演算を行なって、加算結果の指数部お
よび仮数部データZe,Zfを出力して演算を終了する。
右あるいは左にシフトし、仮数部を右にシフトした場合
には、正規化回路808に入力された指数部データにその
シフト量を加算し、左にシフトした場合にはシフト量を
減算して指数部の演算を行なって、加算結果の指数部お
よび仮数部データZe,Zfを出力して演算を終了する。
また、従来の浮動小数点データの乗算は、例えば第9
図に示すブロック図のような構成で行なわれれていた。
第9図において、Xe,Xfは入力データXのそれぞれ指数
部および仮数部データ、Ye,Yfは入力データYのそれぞ
れ指数部および仮数部データ、901は指数演算回路、902
は仮数部乗算部、A,Bは2つの最終部分積、903は加算回
路、904は丸め回路、905は正規化回路、Ze,Zfは出力デ
ータZのそれぞれ指数部および仮数部データである。な
お、900は仮数部演算部であり、加算回路903および丸め
回路904を含んでいる。
図に示すブロック図のような構成で行なわれれていた。
第9図において、Xe,Xfは入力データXのそれぞれ指数
部および仮数部データ、Ye,Yfは入力データYのそれぞ
れ指数部および仮数部データ、901は指数演算回路、902
は仮数部乗算部、A,Bは2つの最終部分積、903は加算回
路、904は丸め回路、905は正規化回路、Ze,Zfは出力デ
ータZのそれぞれ指数部および仮数部データである。な
お、900は仮数部演算部であり、加算回路903および丸め
回路904を含んでいる。
以下に第9図のブロック図の動作を説明する。まず、
入力データの指数部XeおよびYeを指数演算回路901に入
力し、中間的な指数の演算を行なう。具体的には、Xe+
Ye−Biの演算を行ない、正規化回路905に出力する。こ
こで、Biは浮動小数点表現における指数部のバイアス値
であり、IEEE754浮動小数点規格の単精度フォーマット
では、Bi=127であり、倍精度フォーマットでは、Bi=1
023である。
入力データの指数部XeおよびYeを指数演算回路901に入
力し、中間的な指数の演算を行なう。具体的には、Xe+
Ye−Biの演算を行ない、正規化回路905に出力する。こ
こで、Biは浮動小数点表現における指数部のバイアス値
であり、IEEE754浮動小数点規格の単精度フォーマット
では、Bi=127であり、倍精度フォーマットでは、Bi=1
023である。
この指数部演算と同時に、入力データの仮数部Xf,Yf
を仮数部乗算器902に入力し、複数の部分積の生成を行
ない、その生成された部分積を順次加算して、最終的に
2つの部分積AおよびBを生成して出力する。次に、仮
数部乗算器902の出力AおよびBを加算回路903で加算し
て丸め回路904に出力する。丸め回路904では、仮数部の
演算結果を所定の桁数に丸めて、正規化回路905に出力
する。この丸め回路904は加算回路で構成され、演算結
果の所定の桁に丸めによる桁上げ値を加算するものであ
る。最後に正規化回路905により仮数部の桁合わせおよ
び指数部の補正などを行なって、乗算結果の指数部およ
び仮数部データZe,Zfを出力して演算を終了する。
を仮数部乗算器902に入力し、複数の部分積の生成を行
ない、その生成された部分積を順次加算して、最終的に
2つの部分積AおよびBを生成して出力する。次に、仮
数部乗算器902の出力AおよびBを加算回路903で加算し
て丸め回路904に出力する。丸め回路904では、仮数部の
演算結果を所定の桁数に丸めて、正規化回路905に出力
する。この丸め回路904は加算回路で構成され、演算結
果の所定の桁に丸めによる桁上げ値を加算するものであ
る。最後に正規化回路905により仮数部の桁合わせおよ
び指数部の補正などを行なって、乗算結果の指数部およ
び仮数部データZe,Zfを出力して演算を終了する。
発明が解決しようとする課題 上記のような浮動小数点加算器の構成では、加減算回
路により仮数部の演算を完了した後、丸め回路により丸
めを開始している。この丸め回路では、加減算回路の結
果が負である場合には絶対値化のために2の補数を生成
し、正の場合には仮数部の演算結果を所定の桁数に丸め
ている。結果が負であるかどうかの判断は加減算回路の
結果の待たなければ判断できない。2の補数の生成は、
結果の各桁を論理反転して1を加算して得られる。
路により仮数部の演算を完了した後、丸め回路により丸
めを開始している。この丸め回路では、加減算回路の結
果が負である場合には絶対値化のために2の補数を生成
し、正の場合には仮数部の演算結果を所定の桁数に丸め
ている。結果が負であるかどうかの判断は加減算回路の
結果の待たなければ判断できない。2の補数の生成は、
結果の各桁を論理反転して1を加算して得られる。
また、仮数部を丸める場合に、その丸めを行なう桁位
置は仮数部に関して加算を行なう場合に2つある。すな
わち、仮数部の加算を行なった場合に、その加算によっ
て桁あふれが生じる場合と、桁あふれが生じない場合が
あるからである。仮数部の桁数は、そのフォーマットに
よって決まっているので、その桁数に合わせるために、
桁あふれが生じる場合には、生じない場合に比べて1桁
上位で丸めを行なわなければならない。同様に、仮数部
に関して減算を行なった場合には、桁落ちが生じる場合
とそうでない場合があり、2つの丸めを行なうべき桁が
ある。演算によって、桁あふれあるいは桁落ちが生じる
かどうかは、演算結果からでなければ判断できない。
置は仮数部に関して加算を行なう場合に2つある。すな
わち、仮数部の加算を行なった場合に、その加算によっ
て桁あふれが生じる場合と、桁あふれが生じない場合が
あるからである。仮数部の桁数は、そのフォーマットに
よって決まっているので、その桁数に合わせるために、
桁あふれが生じる場合には、生じない場合に比べて1桁
上位で丸めを行なわなければならない。同様に、仮数部
に関して減算を行なった場合には、桁落ちが生じる場合
とそうでない場合があり、2つの丸めを行なうべき桁が
ある。演算によって、桁あふれあるいは桁落ちが生じる
かどうかは、演算結果からでなければ判断できない。
このように、上記のような従来の浮動小数点加算器の
構成では、加減算回路により仮数部の演算結果が確定し
なければ、結果が負になったかどうか、あるいは桁あふ
れあるいは桁落ちが生じるかどうかの判断ができないた
めに、2の補数の生成あるいは丸め演算を開始できず、
加減算および丸め演算に時間がかかり、回路も複雑にな
るなどの問題点を有していた。
構成では、加減算回路により仮数部の演算結果が確定し
なければ、結果が負になったかどうか、あるいは桁あふ
れあるいは桁落ちが生じるかどうかの判断ができないた
めに、2の補数の生成あるいは丸め演算を開始できず、
加減算および丸め演算に時間がかかり、回路も複雑にな
るなどの問題点を有していた。
また、上記のような浮動小数点乗算器の構成では、加
算回路により最終的に残った部分積を加算した後に、丸
め回路により丸めを開始している。仮数部を丸める場合
に、その丸めを行なう桁位置は、乗算の場合にも2つあ
る。すなわち、仮数部の乗算を行なった場合に、その乗
算によって桁あふれが生じる場合と、桁あふれが生じな
い場合があるからである。したがって、この場合にも桁
あふれが生じるかどうかは、部分積を加算した後でなけ
れば判断できない。このように、上記のような従来の浮
動小数点乗算器の構成では、加算回路により部分積の結
果が確定しなれば丸め演算を開始できず、この加算およ
び丸め演算に時間がかかり、回路も複雑になるなどの問
題点を有していた。
算回路により最終的に残った部分積を加算した後に、丸
め回路により丸めを開始している。仮数部を丸める場合
に、その丸めを行なう桁位置は、乗算の場合にも2つあ
る。すなわち、仮数部の乗算を行なった場合に、その乗
算によって桁あふれが生じる場合と、桁あふれが生じな
い場合があるからである。したがって、この場合にも桁
あふれが生じるかどうかは、部分積を加算した後でなけ
れば判断できない。このように、上記のような従来の浮
動小数点乗算器の構成では、加算回路により部分積の結
果が確定しなれば丸め演算を開始できず、この加算およ
び丸め演算に時間がかかり、回路も複雑になるなどの問
題点を有していた。
本発明は、係る点に鑑みてなされたもので、加減算器
に回路を付加することにより、簡単な構成で仮数部の演
算、演算結果の絶対値化、さらに結果の丸めを高速に行
なう浮動小数点演算器を提供することを目的としてい
る。
に回路を付加することにより、簡単な構成で仮数部の演
算、演算結果の絶対値化、さらに結果の丸めを高速に行
なう浮動小数点演算器を提供することを目的としてい
る。
また、本発明は最終的に残った2つの部分積を加算す
る加算器に、回路を付加することにより、簡単な構成で
仮数部の演算、さらに結果の丸めを高速に行なう浮動小
数点演算器を提供することを目的としている。
る加算器に、回路を付加することにより、簡単な構成で
仮数部の演算、さらに結果の丸めを高速に行なう浮動小
数点演算器を提供することを目的としている。
課題を解決するための手段 本発明の浮動小数点演算装置は上記目的を達成するた
め、浮動小数点の仮数部に関する2つのデータの所定の
基準桁位置以上の桁について桁上げ保存により所定の演
算をして桁上げデータと和データを生成する桁上げ保存
演算器と、丸めの方向を指定する丸めモード信号と前記
仮数部に関する2つのデータから、前記所定の演算およ
び上位での丸めにより生じる前記基準桁への桁上げCHと
前記所定の演算および下位での丸めにより生じる前記基
準桁への桁上げCLとを、上位で丸める場合と下位で丸め
る場合とで一致した第1の丸め桁上げCr1と、上位で丸
める場合と下位で丸める場合とについての第2の丸め桁
上げCr2H=CH−Cr1およびCr2L=CL−Cr1とに分けて生成
する丸め桁上げ生成回路と、前記桁上げデータの前記基
準桁位置に前記第1の丸め桁上げCr1を付加したデータ
と、前記和データとを前記所定の演算をした第1の結果
と、前記第1の結果からさらに1を前記所定の演算をし
た第2の結果を出力する桁上げ伝搬演算器と、前記第1
の結果および前記第2の結果の上位桁の値と前記第2の
桁上げCr2HおよびCr2Lとによって、前記第1の結果およ
び前記第2の結果から選択して出力する選択回路とを有
する構成を採用する。
め、浮動小数点の仮数部に関する2つのデータの所定の
基準桁位置以上の桁について桁上げ保存により所定の演
算をして桁上げデータと和データを生成する桁上げ保存
演算器と、丸めの方向を指定する丸めモード信号と前記
仮数部に関する2つのデータから、前記所定の演算およ
び上位での丸めにより生じる前記基準桁への桁上げCHと
前記所定の演算および下位での丸めにより生じる前記基
準桁への桁上げCLとを、上位で丸める場合と下位で丸め
る場合とで一致した第1の丸め桁上げCr1と、上位で丸
める場合と下位で丸める場合とについての第2の丸め桁
上げCr2H=CH−Cr1およびCr2L=CL−Cr1とに分けて生成
する丸め桁上げ生成回路と、前記桁上げデータの前記基
準桁位置に前記第1の丸め桁上げCr1を付加したデータ
と、前記和データとを前記所定の演算をした第1の結果
と、前記第1の結果からさらに1を前記所定の演算をし
た第2の結果を出力する桁上げ伝搬演算器と、前記第1
の結果および前記第2の結果の上位桁の値と前記第2の
桁上げCr2HおよびCr2Lとによって、前記第1の結果およ
び前記第2の結果から選択して出力する選択回路とを有
する構成を採用する。
以下の本発明(1)〜(3)は上記構成の具体構成を
示す。
示す。
本発明(1)は、浮動小数点数の加減算において、2
つの浮動小数点数のうち指数の大きい方の第1の仮数部
データと、前記第1の仮数部に右シフトして桁合わせさ
れた指数の小さい方の第2の浮動小数点の第2の仮数部
データとを桁上げ保存の方法により加算あるいは減算し
て桁上げデータと和データを生成する桁上げ保存加減算
器と、丸めの方向を指定する丸めモード信号と前記第1
の仮数部データと前記第2の仮数部データの下位の桁と
から、添付桁の値に依存しないように生成され、且つ上
位で丸める場合と下位で丸める場合とで一致した第1の
丸め桁上げと、上位で丸める場合と下位で丸める場合と
について、添付桁の値に依存して生成される第2の丸め
桁上げを生成する丸め桁上げ生成回路と、前記桁上げデ
ータの下位に前記第1の丸め桁上げを付加して得られる
データと、前記和データとを加算あるいは減算した第1
の結果と、前記第1の結果からさらに1を加算あるいは
減算した第2の結果を出力する加減算器と、前記第2の
結果の全桁の論理反転を出力する反転回路とを有し、前
記第1の結果と前記第2の結果の上位桁の値と前記第2
の桁上げの値とによって、前記第1の結果、前記第2の
結果および前記反転回路の出力のなかから結果を選択し
て出力するようにしている。
つの浮動小数点数のうち指数の大きい方の第1の仮数部
データと、前記第1の仮数部に右シフトして桁合わせさ
れた指数の小さい方の第2の浮動小数点の第2の仮数部
データとを桁上げ保存の方法により加算あるいは減算し
て桁上げデータと和データを生成する桁上げ保存加減算
器と、丸めの方向を指定する丸めモード信号と前記第1
の仮数部データと前記第2の仮数部データの下位の桁と
から、添付桁の値に依存しないように生成され、且つ上
位で丸める場合と下位で丸める場合とで一致した第1の
丸め桁上げと、上位で丸める場合と下位で丸める場合と
について、添付桁の値に依存して生成される第2の丸め
桁上げを生成する丸め桁上げ生成回路と、前記桁上げデ
ータの下位に前記第1の丸め桁上げを付加して得られる
データと、前記和データとを加算あるいは減算した第1
の結果と、前記第1の結果からさらに1を加算あるいは
減算した第2の結果を出力する加減算器と、前記第2の
結果の全桁の論理反転を出力する反転回路とを有し、前
記第1の結果と前記第2の結果の上位桁の値と前記第2
の桁上げの値とによって、前記第1の結果、前記第2の
結果および前記反転回路の出力のなかから結果を選択し
て出力するようにしている。
本発明(2)は、浮動小数点数の乗算において、仮数
部乗算部で最終的に生成された2つの部分積の上位から
n桁(nは浮動小数点データの仮数部の有効桁数)を桁
上げ保存の方法により加算し桁上げデータと和データを
生成する桁上げ保存加算器と、丸めの方向を指定する丸
めモード信号と前記2つの部分積の上位からn−1桁を
除くデータから、添付桁の値に依存しないように生成さ
れ、且つ上位で丸める場合で下位で丸める場合とで一致
した第1の丸め桁上げと、上位で丸める場合と下位で丸
める場合とについて、添付桁の値に依存して生成される
第2の丸め桁上げを生成する丸め桁上げ生成回路と、前
記桁上げデータの下位に前記第1の丸め桁上げを添付し
て得られるデータと、前記和データとを加算した第1の
結果と、前記第1の結果からさらに1を加算した第2の
結果を出力する加算器と、前記第1の結果および前記第
2の結果の上位桁の値と前記第2の桁上げの値とによっ
て、前記第1の結果および前記第2の結果のなかから結
果を選択して出力するようにしている。
部乗算部で最終的に生成された2つの部分積の上位から
n桁(nは浮動小数点データの仮数部の有効桁数)を桁
上げ保存の方法により加算し桁上げデータと和データを
生成する桁上げ保存加算器と、丸めの方向を指定する丸
めモード信号と前記2つの部分積の上位からn−1桁を
除くデータから、添付桁の値に依存しないように生成さ
れ、且つ上位で丸める場合で下位で丸める場合とで一致
した第1の丸め桁上げと、上位で丸める場合と下位で丸
める場合とについて、添付桁の値に依存して生成される
第2の丸め桁上げを生成する丸め桁上げ生成回路と、前
記桁上げデータの下位に前記第1の丸め桁上げを添付し
て得られるデータと、前記和データとを加算した第1の
結果と、前記第1の結果からさらに1を加算した第2の
結果を出力する加算器と、前記第1の結果および前記第
2の結果の上位桁の値と前記第2の桁上げの値とによっ
て、前記第1の結果および前記第2の結果のなかから結
果を選択して出力するようにしている。
本発明(3)は、浮動小数点数の乗算において、内部
演算に冗長2進数を用いた仮数部乗算器で最終的に生成
された冗長2進数で表された乗算結果の上位からn桁
(nは浮動小数点データの仮数部の有効桁数)を桁上げ
保存の方法により2進数に変換し桁上げデータと和デー
タを生成する桁上げ保存減算器と、丸めの方向を指定す
る丸めモード信号と前記冗長2進数で表された乗算結果
の上位からn−1桁を除くデータから、添付桁の値に依
存しないように生成され、且つ上位で丸める場合と下位
で丸める場合とで一致した第1の丸め桁上げと、上位で
丸める場合と下位で丸める場合とについて、添付桁の値
に依存して生成される第2の丸め桁上げを生成する丸め
桁上げ生成回路と、前記桁上げデータの下位に前記第1
の丸め桁上げを付加して得られるデータと、前記和デー
タとを減算した第1の結果と、前記第1の結果からさら
に1を減算した第2の結果を出力する減算器と、前記第
1の結果および前記第2の結果の上位桁の値と前記第2
の桁上げの値とによって、前記第1の結果および前記第
2の結果のなかから結果を選択して出力するようにして
いる。
演算に冗長2進数を用いた仮数部乗算器で最終的に生成
された冗長2進数で表された乗算結果の上位からn桁
(nは浮動小数点データの仮数部の有効桁数)を桁上げ
保存の方法により2進数に変換し桁上げデータと和デー
タを生成する桁上げ保存減算器と、丸めの方向を指定す
る丸めモード信号と前記冗長2進数で表された乗算結果
の上位からn−1桁を除くデータから、添付桁の値に依
存しないように生成され、且つ上位で丸める場合と下位
で丸める場合とで一致した第1の丸め桁上げと、上位で
丸める場合と下位で丸める場合とについて、添付桁の値
に依存して生成される第2の丸め桁上げを生成する丸め
桁上げ生成回路と、前記桁上げデータの下位に前記第1
の丸め桁上げを付加して得られるデータと、前記和デー
タとを減算した第1の結果と、前記第1の結果からさら
に1を減算した第2の結果を出力する減算器と、前記第
1の結果および前記第2の結果の上位桁の値と前記第2
の桁上げの値とによって、前記第1の結果および前記第
2の結果のなかから結果を選択して出力するようにして
いる。
作用 本発明は上記した構成により、丸め桁上げ生成回路に
より、上位で丸める場合と下位で丸める場合とで一致し
た第1の丸め桁上げと、上位丸める場合と下位で丸める
場合とについて、添付桁の値に依存して生成される第2
の丸め桁上げを生成される。このうち、第1の丸め桁上
げだけ実行した場合の第1の結果と、第1の丸め桁上げ
だけ実行した場合の演算結果に対して、さらに1を加算
あるいは減算した第2の結果が、桁上げ保存演算器と桁
上げ伝搬演算器の2つの演算器を用いることにより求め
られる。また、反転回路の出力は、第1の結果が負にな
った場合には第1の結果の符号反転の値を出力する。結
果が負であるかどうか、あるいは上位で丸めるべきか下
位で丸めるべきかは、第2の丸め桁上げと第1あるいは
第2の結果の上位桁から判断され、それらの判断により
最終的に正しく丸められた仮数部結果を得ることができ
る。
より、上位で丸める場合と下位で丸める場合とで一致し
た第1の丸め桁上げと、上位丸める場合と下位で丸める
場合とについて、添付桁の値に依存して生成される第2
の丸め桁上げを生成される。このうち、第1の丸め桁上
げだけ実行した場合の第1の結果と、第1の丸め桁上げ
だけ実行した場合の演算結果に対して、さらに1を加算
あるいは減算した第2の結果が、桁上げ保存演算器と桁
上げ伝搬演算器の2つの演算器を用いることにより求め
られる。また、反転回路の出力は、第1の結果が負にな
った場合には第1の結果の符号反転の値を出力する。結
果が負であるかどうか、あるいは上位で丸めるべきか下
位で丸めるべきかは、第2の丸め桁上げと第1あるいは
第2の結果の上位桁から判断され、それらの判断により
最終的に正しく丸められた仮数部結果を得ることができ
る。
実施例 (実施例1) 本発明の実施例を図を参照して説明する。第1図は本
発明の第1の実施例を示すブロック図である。この回路
は、浮動小数点加減算器において、指数の値によって桁
合わせされた仮数部を加算あるいは減算し、絶対値化お
よび丸めを行なった結果を出力するものであり、前述の
第8図の従来例を示す回路における仮数部演算部800に
対応する。
発明の第1の実施例を示すブロック図である。この回路
は、浮動小数点加減算器において、指数の値によって桁
合わせされた仮数部を加算あるいは減算し、絶対値化お
よび丸めを行なった結果を出力するものであり、前述の
第8図の従来例を示す回路における仮数部演算部800に
対応する。
第1図において、101は丸め桁上げ生成回路、102は桁
上げ保存加減算器、103は加減算器、104は演算結果選択
信号生成回路、105は反転回路、106は選択回路である。
またRdは丸めモード信号、Aは桁合わせされた後の指数
の大きい方の浮動小数点データの仮数部、Bは桁合わせ
された後の指数の小さい方の浮動小数点データの仮数
部、aiおよびbi(i=0,1,…,n−1,g,r,s)は被演算数
Aおよび演算数Bの各桁の値、uiおよびvi(i=0,1,
…,n、j=0,1,…,n−1)は桁上げ保存加減算器102か
ら加減算器103に入力される桁上げ(または桁借り)U
および和(または差)Vの各桁のデータである。またP
およびQはそれぞれU±VおよびU±(V+1)のデー
タでありpi(i=0,1,…,n)、qi(i=0,1,…,n)を要
素とする。また、QrはQの全桁を論理反転したものであ
り、Cは仮数部結果である。以下の説明でが、減算時に
桁借りも桁上げと表現し、差も和と表現することにす
る。
上げ保存加減算器、103は加減算器、104は演算結果選択
信号生成回路、105は反転回路、106は選択回路である。
またRdは丸めモード信号、Aは桁合わせされた後の指数
の大きい方の浮動小数点データの仮数部、Bは桁合わせ
された後の指数の小さい方の浮動小数点データの仮数
部、aiおよびbi(i=0,1,…,n−1,g,r,s)は被演算数
Aおよび演算数Bの各桁の値、uiおよびvi(i=0,1,
…,n、j=0,1,…,n−1)は桁上げ保存加減算器102か
ら加減算器103に入力される桁上げ(または桁借り)U
および和(または差)Vの各桁のデータである。またP
およびQはそれぞれU±VおよびU±(V+1)のデー
タでありpi(i=0,1,…,n)、qi(i=0,1,…,n)を要
素とする。また、QrはQの全桁を論理反転したものであ
り、Cは仮数部結果である。以下の説明でが、減算時に
桁借りも桁上げと表現し、差も和と表現することにす
る。
第1図の回路の動作を簡単に説明すると、丸め桁上げ
生成回路101により、入力されたAとBの下位の桁と、
丸めの方向を指定する丸めモード信号Rdとから2つの丸
めのための桁上げCr1とCr2を求める。ここで、演算によ
り桁あふれあるいは桁落ちが生じる場合があるので、上
位で丸める場合と下位で丸める場合の2通りの桁上げ値
を求める。この時、上位で丸める場合と下位で丸める場
合とで加減算器を共有して用いるために、丸めによって
生じる桁上げを加える桁を同一にしている。このCr1とC
r2の和が丸めのための最下位ビットへの桁上げとなる。
この2つの桁上げのうちCr1を加減算器103に入力する。
これと同時に、桁上げ保存加減算器102により入力され
たAとBの上位n桁を加算あるいは減算し、各桁に対し
て桁上げ(または桁借り)cと和(または差)sを求
め、加減算器103に入力する。
生成回路101により、入力されたAとBの下位の桁と、
丸めの方向を指定する丸めモード信号Rdとから2つの丸
めのための桁上げCr1とCr2を求める。ここで、演算によ
り桁あふれあるいは桁落ちが生じる場合があるので、上
位で丸める場合と下位で丸める場合の2通りの桁上げ値
を求める。この時、上位で丸める場合と下位で丸める場
合とで加減算器を共有して用いるために、丸めによって
生じる桁上げを加える桁を同一にしている。このCr1とC
r2の和が丸めのための最下位ビットへの桁上げとなる。
この2つの桁上げのうちCr1を加減算器103に入力する。
これと同時に、桁上げ保存加減算器102により入力され
たAとBの上位n桁を加算あるいは減算し、各桁に対し
て桁上げ(または桁借り)cと和(または差)sを求
め、加減算器103に入力する。
加減算器103では、入力されたデータを加算あるいは
減算しP=U±VおよびQ=U±(V+1)を求め、反
転回路105および選択回路106に入力する。反転回路105
では、加減算器103で求められたQの各桁の値を論理反
転して選択回路106に入力する。反転回路105に入力され
るのは、演算が減算時にはU−(V+1)となり、この
値の各桁を論理反転することによりV−Uの結果を得ら
れる。次に、演算結果選択信号生成回路104により、丸
め桁上げ生成回路101の出力である桁上げCr2と、加減算
器103から出力されるPおよびQの上位桁から、演算結
果選択信号を生成した選択回路106に入力し、U±V、
U±(V+1)およびU±(V+1)の反転出力のうち
いずれかを選択して仮数部結果Cとして出力する。
減算しP=U±VおよびQ=U±(V+1)を求め、反
転回路105および選択回路106に入力する。反転回路105
では、加減算器103で求められたQの各桁の値を論理反
転して選択回路106に入力する。反転回路105に入力され
るのは、演算が減算時にはU−(V+1)となり、この
値の各桁を論理反転することによりV−Uの結果を得ら
れる。次に、演算結果選択信号生成回路104により、丸
め桁上げ生成回路101の出力である桁上げCr2と、加減算
器103から出力されるPおよびQの上位桁から、演算結
果選択信号を生成した選択回路106に入力し、U±V、
U±(V+1)およびU±(V+1)の反転出力のうち
いずれかを選択して仮数部結果Cとして出力する。
以下に、第1図の各回路の動作を詳細に説明する。丸
め桁上げ生成回路101は、前述のように入力されたAと
Bの下位の桁と、丸めの方向を指定する丸めモード信号
Rdとから2つの桁上げCr1とCr2を求める。
め桁上げ生成回路101は、前述のように入力されたAと
Bの下位の桁と、丸めの方向を指定する丸めモード信号
Rdとから2つの桁上げCr1とCr2を求める。
まず、この回路に入力されるデータについて述べる。
この回路に入力されるデータは、指数部のデータの差に
よってシフトされて桁合わせされた仮数部AとBであ
る。丸めを行なう場合に、演算の結果により2つの丸め
を行なう桁がある。すなわち、加算の場合には、桁上が
りにより桁あふれを生じる場合とそうでない場合によっ
て丸めを行なう桁が1桁だけ異なり、桁あふれを生じる
場合には桁あふれを生じない場合より1桁上位で丸めを
行なわなければならない。また、減算の場合には、桁上
がりにより桁落ちを生じる場合とそうでない場合があ
り、桁落ちを生じる場合には桁落ちを生ない場合より1
桁上位で丸めを行なわなければならない。したがって、
加算と減算の場合でそれぞれ2つの丸めを行なう桁位置
がある。
この回路に入力されるデータは、指数部のデータの差に
よってシフトされて桁合わせされた仮数部AとBであ
る。丸めを行なう場合に、演算の結果により2つの丸め
を行なう桁がある。すなわち、加算の場合には、桁上が
りにより桁あふれを生じる場合とそうでない場合によっ
て丸めを行なう桁が1桁だけ異なり、桁あふれを生じる
場合には桁あふれを生じない場合より1桁上位で丸めを
行なわなければならない。また、減算の場合には、桁上
がりにより桁落ちを生じる場合とそうでない場合があ
り、桁落ちを生じる場合には桁落ちを生ない場合より1
桁上位で丸めを行なわなければならない。したがって、
加算と減算の場合でそれぞれ2つの丸めを行なう桁位置
がある。
以下の説明では、加算と減算の場合で丸めを行なう桁
が一致するようじ桁合わせされているものとして説明す
る。すなわち、演算結果を上位で丸める場合にはagある
いはbgの桁がLSBとなり、下位で丸める場合にはa0ある
いはb0の桁がLSBとなるように桁合わせされているもの
とする。言い換えれば、仮数部に関する演算が加算の場
合には、指数値の大きい方の浮動小数点データの仮数部
Aの最下位桁が、保護桁の桁位置になるように桁合わせ
され、仮数部に関する演算が減算の場合には、指数値の
大きい方の浮動小数点データの仮数部Aの最下位桁が、
保護桁の桁位置の1桁上位になるように桁合わせされて
いるものとする。一方、指数値の小さい方の浮動小数点
データの仮数部は、指数値の大きい負の浮動小数点デー
タの仮数部Aの桁に対応して指数の差の分だけ右にシフ
トして桁合わせされているものとする。この場合に、右
シフトによって上位n桁から右にはみだした桁は、その
上位から保護桁agおよびbg、丸め桁arおよびbrで表わさ
れ、それ以下の桁は添付桁asおよびbsとしてその情報が
残され、正確に丸めを行なうために用いられる。通常、
添付桁の生成には時間がかかる。
が一致するようじ桁合わせされているものとして説明す
る。すなわち、演算結果を上位で丸める場合にはagある
いはbgの桁がLSBとなり、下位で丸める場合にはa0ある
いはb0の桁がLSBとなるように桁合わせされているもの
とする。言い換えれば、仮数部に関する演算が加算の場
合には、指数値の大きい方の浮動小数点データの仮数部
Aの最下位桁が、保護桁の桁位置になるように桁合わせ
され、仮数部に関する演算が減算の場合には、指数値の
大きい方の浮動小数点データの仮数部Aの最下位桁が、
保護桁の桁位置の1桁上位になるように桁合わせされて
いるものとする。一方、指数値の小さい方の浮動小数点
データの仮数部は、指数値の大きい負の浮動小数点デー
タの仮数部Aの桁に対応して指数の差の分だけ右にシフ
トして桁合わせされているものとする。この場合に、右
シフトによって上位n桁から右にはみだした桁は、その
上位から保護桁agおよびbg、丸め桁arおよびbrで表わさ
れ、それ以下の桁は添付桁asおよびbsとしてその情報が
残され、正確に丸めを行なうために用いられる。通常、
添付桁の生成には時間がかかる。
第2図は仮数部に関する演算が加算で且つ加算結果が
正になる場合に、下位の値と丸めモードに対して丸めの
ための桁上げCr1とCr2をどのようにして生成するかを示
すものである。第2図において、gは桁合わせされた後
の保護桁agとbgとを加算した値を示しており、{0,1,
2}の値を持つ。0はagとbgがともに0の場合であり、
1はいずれか一方のみが1である場合、2はともに1の
場合を示す。rもgの場合と同様にして丸め桁arおよび
brから求められたものであるが、前に述べたように加算
の場合には指数の大きいほうの浮動小数点データの仮数
部Aの最下位桁が、保護桁の桁位置になるように桁合わ
せされているので、arおよびasがともに0となり、rの
値は{0,1}のみである。また、sは下位の丸めのため
の情報として、添付桁の桁位置以下のデータが全て0で
あるかどうかの情報を含んだものである。したがて、as
が0なのでsの値は桁合わせされたBの添付桁の桁位置
以下のデータの論理和をとることにより得られる。した
がって、添付桁sのとり得る値は{0,1}のみである。
正になる場合に、下位の値と丸めモードに対して丸めの
ための桁上げCr1とCr2をどのようにして生成するかを示
すものである。第2図において、gは桁合わせされた後
の保護桁agとbgとを加算した値を示しており、{0,1,
2}の値を持つ。0はagとbgがともに0の場合であり、
1はいずれか一方のみが1である場合、2はともに1の
場合を示す。rもgの場合と同様にして丸め桁arおよび
brから求められたものであるが、前に述べたように加算
の場合には指数の大きいほうの浮動小数点データの仮数
部Aの最下位桁が、保護桁の桁位置になるように桁合わ
せされているので、arおよびasがともに0となり、rの
値は{0,1}のみである。また、sは下位の丸めのため
の情報として、添付桁の桁位置以下のデータが全て0で
あるかどうかの情報を含んだものである。したがて、as
が0なのでsの値は桁合わせされたBの添付桁の桁位置
以下のデータの論理和をとることにより得られる。した
がって、添付桁sのとり得る値は{0,1}のみである。
また、RTP、RTM、RTZおよびRTNはIEEE754浮動小数点
規格の丸めの方向を示す丸めモードであり、それぞれ正
方向丸め(round toward+infinity),負方向丸め(ro
und toward−infinity)、零方向丸め(round toward z
ero)および最近接丸め(round to nearest)の場合を
示している。仮数部は正の場合には、負方向丸め(roun
d toward−infinity)と、零方向丸め(round toward z
ero)は同じ値となる。また、CHおよびCLは、それぞれ
上位で丸めた場合と下位で丸めた場合の、LSBへの桁上
げを示している。また、CH eおよびCH oは、それぞれ最近
接丸めのモード時に上位で丸める場合のLSBの値が偶数
の場合と奇数の場合の丸めによる桁上げを示す。IEEE75
4浮動小数点規格の最近接丸めを行なう場合に丸める前
の結果に対して、表現可能な最も近い値が2つ存在する
場合には仮数部の最下位桁が0となるように丸めなけれ
ばならないと規定しており、LSBの値が偶数か奇数かに
よって丸めの桁上げが変わる。また、第2図においてSg
は、下位で丸めた場合の保護桁の加算結果を示す。
規格の丸めの方向を示す丸めモードであり、それぞれ正
方向丸め(round toward+infinity),負方向丸め(ro
und toward−infinity)、零方向丸め(round toward z
ero)および最近接丸め(round to nearest)の場合を
示している。仮数部は正の場合には、負方向丸め(roun
d toward−infinity)と、零方向丸め(round toward z
ero)は同じ値となる。また、CHおよびCLは、それぞれ
上位で丸めた場合と下位で丸めた場合の、LSBへの桁上
げを示している。また、CH eおよびCH oは、それぞれ最近
接丸めのモード時に上位で丸める場合のLSBの値が偶数
の場合と奇数の場合の丸めによる桁上げを示す。IEEE75
4浮動小数点規格の最近接丸めを行なう場合に丸める前
の結果に対して、表現可能な最も近い値が2つ存在する
場合には仮数部の最下位桁が0となるように丸めなけれ
ばならないと規定しており、LSBの値が偶数か奇数かに
よって丸めの桁上げが変わる。また、第2図においてSg
は、下位で丸めた場合の保護桁の加算結果を示す。
第2図からわかるように、これらの丸めによる桁上げ
値CHおよびCLは、{0,1,2}の値のいずれかをとる。し
たがって、{0,1,2}の桁上げを実現するために2回に
分けて桁げを行なう。すなわち、1段の桁上げ保存加算
を行ない、その後桁上げ先見などの方法により加算を行
なって桁上げを実現する。このため、桁上げ保存加算後
に桁上げCr1を加え、さらに桁上げ先見加算の結果を桁
上げCr2によって選択する構成をとる。この時、上位で
丸める場合と下位で丸める場合について桁上げCr1を一
致させる。すなわち、次式が成り立つように2つの桁上
げCr1およびCr2を求める。
値CHおよびCLは、{0,1,2}の値のいずれかをとる。し
たがって、{0,1,2}の桁上げを実現するために2回に
分けて桁げを行なう。すなわち、1段の桁上げ保存加算
を行ない、その後桁上げ先見などの方法により加算を行
なって桁上げを実現する。このため、桁上げ保存加算後
に桁上げCr1を加え、さらに桁上げ先見加算の結果を桁
上げCr2によって選択する構成をとる。この時、上位で
丸める場合と下位で丸める場合について桁上げCr1を一
致させる。すなわち、次式が成り立つように2つの桁上
げCr1およびCr2を求める。
CH=Cr1+Cr2H (1) CL=Cr1+Cr2L (2) これにより、上位で丸める場合と下位で丸める場合につ
いて同一の桁上げ保存加算器と、桁上げ先見加算器を共
有できる。また、正の桁上げCr1の生成において、添付
桁sの値に依存しないように論理を決めることにより、
桁上げ保存加算および桁上げ先見加算と決定に時間のか
かる添付桁sの生成を並列に実行することができる。表
に示した例では、Cr1の生成は保護桁gの値のみによっ
て決定している。なお、説明で示した第2図の桁上げC
r1とCr2の生成の方法は1例を示すものであり、同様の
考え方から他の組み合わせを用いても同様の効果が得ら
れる。
いて同一の桁上げ保存加算器と、桁上げ先見加算器を共
有できる。また、正の桁上げCr1の生成において、添付
桁sの値に依存しないように論理を決めることにより、
桁上げ保存加算および桁上げ先見加算と決定に時間のか
かる添付桁sの生成を並列に実行することができる。表
に示した例では、Cr1の生成は保護桁gの値のみによっ
て決定している。なお、説明で示した第2図の桁上げC
r1とCr2の生成の方法は1例を示すものであり、同様の
考え方から他の組み合わせを用いても同様の効果が得ら
れる。
また、第3図は仮数部に関する演算が減算で且つ減算
結果が正になる場合に、下位の値と丸めモードに対して
丸めのための桁上げCr1とCr2をどのようにして生成する
かを示すものである。第3図において、gは保護桁agか
らbgを減算した値を示しており、前に述べたように加算
の場合には指数の大きいほうの浮動小数点データの仮数
部Aの最下位桁が、保護桁の1桁上位の桁位置になるよ
うに桁合わせされているので、ag,arおよびasがともに
0となり、{0,−1}のいずれかの値を持つ。rもgの
場合と同様に{0,−1}のいずれかの値を持つ。また、
sは下位の丸めのための情報として、添付桁の桁位置以
下のデータが全て0であるかどうかの情報を含んだもの
である。したがって加算の場合と同様にasが0なのでs
の値が桁合わせされたBの添付桁の桁位置以下のデータ
の論理和をとることにより得られる。したがって、添付
桁sのとり得る値は{0,−1}のみである。また、RTP,
RTM,RTZ,RTN,CH,CL,CH e,CH oおよびSgは第2図で述べ
たものと同様である。
結果が正になる場合に、下位の値と丸めモードに対して
丸めのための桁上げCr1とCr2をどのようにして生成する
かを示すものである。第3図において、gは保護桁agか
らbgを減算した値を示しており、前に述べたように加算
の場合には指数の大きいほうの浮動小数点データの仮数
部Aの最下位桁が、保護桁の1桁上位の桁位置になるよ
うに桁合わせされているので、ag,arおよびasがともに
0となり、{0,−1}のいずれかの値を持つ。rもgの
場合と同様に{0,−1}のいずれかの値を持つ。また、
sは下位の丸めのための情報として、添付桁の桁位置以
下のデータが全て0であるかどうかの情報を含んだもの
である。したがって加算の場合と同様にasが0なのでs
の値が桁合わせされたBの添付桁の桁位置以下のデータ
の論理和をとることにより得られる。したがって、添付
桁sのとり得る値は{0,−1}のみである。また、RTP,
RTM,RTZ,RTN,CH,CL,CH e,CH oおよびSgは第2図で述べ
たものと同様である。
第3図からわかるように、これらの丸めによる桁上げ
値CHおよびCLは、{0,−1}の値のいずれかをとる。こ
の場合には、1段のみの減算を行なうことにより{0,−
1}の桁上げを実現することができるが、加算の場合と
構成を同じにするために、加算の場合と同様に2回に分
けて桁上げを行なう。すなわち、1段の桁上げ保存演算
を行ない、その後桁上げ先見などの方法により減算を行
なって桁上げを実現する。このため、桁上げ保存減算後
に桁上げCr1を加え、さらに桁上げ先見加算の結果を桁
上げCr2によって選択する構成をとる。この時、加算の
場合と同様に上位で丸める場合と下位で丸める場合につ
いて桁上げCr1を一致させる。すなわち、(1)(2)
式が成り立つように2つの桁上げCr1およびCr2を求め
る。これにより、上位で丸める場合と下位で丸める場合
について同一の桁上げ保存減算器と、桁上げ先見減算器
を共有できる。また、桁上げCr1の生成において、添付
桁sの値に依存しないように論理を決めることにより、
桁上げ保存減算および桁上げ先見減算と決定に時間のか
かる添付桁sの生成を並列に実行することができる。表
に示した例では、Cr1の常に0になるようにしている。
なお、説明で示した第3図の桁上げCr1とCr2の生成の方
法は1例を示すものであり、同様の考え方から他の組み
合わせを用いても同様の効果が得られる。
値CHおよびCLは、{0,−1}の値のいずれかをとる。こ
の場合には、1段のみの減算を行なうことにより{0,−
1}の桁上げを実現することができるが、加算の場合と
構成を同じにするために、加算の場合と同様に2回に分
けて桁上げを行なう。すなわち、1段の桁上げ保存演算
を行ない、その後桁上げ先見などの方法により減算を行
なって桁上げを実現する。このため、桁上げ保存減算後
に桁上げCr1を加え、さらに桁上げ先見加算の結果を桁
上げCr2によって選択する構成をとる。この時、加算の
場合と同様に上位で丸める場合と下位で丸める場合につ
いて桁上げCr1を一致させる。すなわち、(1)(2)
式が成り立つように2つの桁上げCr1およびCr2を求め
る。これにより、上位で丸める場合と下位で丸める場合
について同一の桁上げ保存減算器と、桁上げ先見減算器
を共有できる。また、桁上げCr1の生成において、添付
桁sの値に依存しないように論理を決めることにより、
桁上げ保存減算および桁上げ先見減算と決定に時間のか
かる添付桁sの生成を並列に実行することができる。表
に示した例では、Cr1の常に0になるようにしている。
なお、説明で示した第3図の桁上げCr1とCr2の生成の方
法は1例を示すものであり、同様の考え方から他の組み
合わせを用いても同様の効果が得られる。
以上説明したように、演算の種類、丸めモード、入力
データによって、丸めのための桁上げCr1とCr2を求める
のが丸め桁上げ生成回路101の機能である。
データによって、丸めのための桁上げCr1とCr2を求める
のが丸め桁上げ生成回路101の機能である。
次に、桁上げ保存加減算器102について述べる。この
回路は、入力される2つのデータの最下位桁への丸めの
ための桁上げCr1の加算を許すために、各桁ごとに桁上
げと和を求めるものであり、半加減算器によって構成で
きる。すなわち、仮数部に関する演算が加算である場合
には、半加算器として動作し、減算の場合には半減算器
として動作するようにすればよい。加算の場合には桁上
げ値CHおよびCLが{0,1,2}の値のいずれかをとるの
で、2の桁上げを実現するためには入力される2つのデ
ータの最下位桁への丸めのための桁上げCr1の値が正で
なければならない。一方、減算の場合には桁上げ値CHお
よびCLが{0,−1}の値のいずれかしかとらないので、
桁上げCr1の値は正であっても負であってもよい。i桁
目の非演算数および演算数を、それぞれaiおよびbiとす
れば、加算の場合には、 ai−bi=2ci−si (3) となるように桁上げciおよび和siを決定し、減算の場合
には桁上げCr1を正の値とする場合には、 ai−bi=−2ci+si (4) となるように桁上げciおよび和siを決定し、桁上げCr1
を負の値とする場合には、 ai−bi=−2ci+si (5) となるように桁上げciおよび和siを決定すればよい。こ
の場合の、真理値表を示せば、 となる。本実施例では桁上げCr1を正の値の場合を示し
ている。以上説明したような、半加減算器を桁数分配列
した構成が、桁上げ保存加減算器102である。
回路は、入力される2つのデータの最下位桁への丸めの
ための桁上げCr1の加算を許すために、各桁ごとに桁上
げと和を求めるものであり、半加減算器によって構成で
きる。すなわち、仮数部に関する演算が加算である場合
には、半加算器として動作し、減算の場合には半減算器
として動作するようにすればよい。加算の場合には桁上
げ値CHおよびCLが{0,1,2}の値のいずれかをとるの
で、2の桁上げを実現するためには入力される2つのデ
ータの最下位桁への丸めのための桁上げCr1の値が正で
なければならない。一方、減算の場合には桁上げ値CHお
よびCLが{0,−1}の値のいずれかしかとらないので、
桁上げCr1の値は正であっても負であってもよい。i桁
目の非演算数および演算数を、それぞれaiおよびbiとす
れば、加算の場合には、 ai−bi=2ci−si (3) となるように桁上げciおよび和siを決定し、減算の場合
には桁上げCr1を正の値とする場合には、 ai−bi=−2ci+si (4) となるように桁上げciおよび和siを決定し、桁上げCr1
を負の値とする場合には、 ai−bi=−2ci+si (5) となるように桁上げciおよび和siを決定すればよい。こ
の場合の、真理値表を示せば、 となる。本実施例では桁上げCr1を正の値の場合を示し
ている。以上説明したような、半加減算器を桁数分配列
した構成が、桁上げ保存加減算器102である。
次に、加減算器103について述べる。この回路は、丸
め桁上げ生成回路101で求められた丸め桁上げCr1と桁上
げ保存加減算器102で求められた桁上げCiで構成された
桁上げデータUと桁上げ保存加減算器102で求められた
和siで構成された和データVとから、仮数部に関する演
算が加算である場合には、P=U+VおよびQ=U+
(V+1)を求め、減算である場合には、P=U−Vお
よびQ=U−(V+1)を求めるものである。この演算
は、最下位桁への桁上げが0の時と1の時のU±Vを求
めることに対応している。この加減算器は、桁上げ先見
あるいは桁上げ選択などにより構成でき、加減算結果の
上位桁すなわちpn、pn-1およびqn-1を優先的に高速に求
めるようにしたものである。
め桁上げ生成回路101で求められた丸め桁上げCr1と桁上
げ保存加減算器102で求められた桁上げCiで構成された
桁上げデータUと桁上げ保存加減算器102で求められた
和siで構成された和データVとから、仮数部に関する演
算が加算である場合には、P=U+VおよびQ=U+
(V+1)を求め、減算である場合には、P=U−Vお
よびQ=U−(V+1)を求めるものである。この演算
は、最下位桁への桁上げが0の時と1の時のU±Vを求
めることに対応している。この加減算器は、桁上げ先見
あるいは桁上げ選択などにより構成でき、加減算結果の
上位桁すなわちpn、pn-1およびqn-1を優先的に高速に求
めるようにしたものである。
次に、演算結果選択信号生成回路104について述べ
る。この回路は、丸め桁上げ生成回路101で求められた
丸めのための桁上げCr2と、加減算器103で求められたP
およびQの上位桁pn、pn-1およびqn-1およびqn-1から、
P、QあるいはQの全桁を論理反転した結果Qrから、適
切な結果を選択するための信号を生成するものである。
る。この回路は、丸め桁上げ生成回路101で求められた
丸めのための桁上げCr2と、加減算器103で求められたP
およびQの上位桁pn、pn-1およびqn-1およびqn-1から、
P、QあるいはQの全桁を論理反転した結果Qrから、適
切な結果を選択するための信号を生成するものである。
演算結果の選択は、まず結果が正であるか負であるか
の判断をP=U−Vの結果のpnの値によって行なう。演
算結果が負になるのは、仮数部に関する演算が減算の場
合であり、且つ入力される2つの浮動小数点データの指
数部のデータが同じ場合である。このような場合には、
仮数部の結果として絶対値を出力しなければならない。
また、この場合には保護桁、丸め桁および添付桁が全て
0になるので、丸めを考慮する必要がない。演算結果が
負になった場合には、P=U−Vの結果のpnが桁あふれ
のために1になる。この場合には、演算結果としてQ=
U−(V+1)の全桁を論理反転したQrを選択して出力
する。これは、Qrが−(U−V)に等しいからである。
例えば、2進数で表した値をAとすれば、その2の補数
値すなわち符号を反転した値−Aは、Aの全桁を論理反
転し1を加えることにより生成される。すなわち −A=-A+1 (6) と表される。ここで、−はAの全桁の論理反転を示す。
したがって、P=U−Vの符号反転値−Pは、 −P=−(U−V) =−(U−(V+1))−1 =−(U−(V+1))+1−1 =−(U−(V+1)) (7) と表され、U−(V+1)すなわちPの全桁を論理反転
することにより求めることができる。
の判断をP=U−Vの結果のpnの値によって行なう。演
算結果が負になるのは、仮数部に関する演算が減算の場
合であり、且つ入力される2つの浮動小数点データの指
数部のデータが同じ場合である。このような場合には、
仮数部の結果として絶対値を出力しなければならない。
また、この場合には保護桁、丸め桁および添付桁が全て
0になるので、丸めを考慮する必要がない。演算結果が
負になった場合には、P=U−Vの結果のpnが桁あふれ
のために1になる。この場合には、演算結果としてQ=
U−(V+1)の全桁を論理反転したQrを選択して出力
する。これは、Qrが−(U−V)に等しいからである。
例えば、2進数で表した値をAとすれば、その2の補数
値すなわち符号を反転した値−Aは、Aの全桁を論理反
転し1を加えることにより生成される。すなわち −A=-A+1 (6) と表される。ここで、−はAの全桁の論理反転を示す。
したがって、P=U−Vの符号反転値−Pは、 −P=−(U−V) =−(U−(V+1))−1 =−(U−(V+1))+1−1 =−(U−(V+1)) (7) と表され、U−(V+1)すなわちPの全桁を論理反転
することにより求めることができる。
次に、P=U−Vの結果のpnが0の場合を考える。こ
の場合には、演算結果が正は判断される。演算結果が正
である場合には、まず演算結果として上位で丸めべきか
あるいは下位で丸めるべきかを判断する。この判断は、
下位で丸めた場合の結果の最上位桁の値pn-1あるいはq
n-1から行なわれる。すなわち、下位で丸める場合の丸
めのための桁上げCr2Lが0の場合には、P=U−Vの最
上位桁の値pn-1から、Cr2Lが1の場合には、Q=U−
(V+1)の最上位桁の値qn-1から判断される。下位で
丸めることは、高い精度で結果を表現することを意味し
ており、高い精度で表現してその最上位桁が1である場
合には桁あふれを起こしているので、上位で丸めた結果
を選択しなければならない。また、最上位桁が0である
場合には、正しく丸められていることを示しているの
で、下位で丸めた結果を選択すればよい。このようにし
て、下位で丸めるべきか上位で丸めるべきかを判断した
後、それに対応した丸めのための桁上げCr2LあるいはC
r2Hの値によって、0の場合にP=U−Vの結果を選択
し、1の場合にQ=U−(V+1)の結果を選択すれば
よい。
の場合には、演算結果が正は判断される。演算結果が正
である場合には、まず演算結果として上位で丸めべきか
あるいは下位で丸めるべきかを判断する。この判断は、
下位で丸めた場合の結果の最上位桁の値pn-1あるいはq
n-1から行なわれる。すなわち、下位で丸める場合の丸
めのための桁上げCr2Lが0の場合には、P=U−Vの最
上位桁の値pn-1から、Cr2Lが1の場合には、Q=U−
(V+1)の最上位桁の値qn-1から判断される。下位で
丸めることは、高い精度で結果を表現することを意味し
ており、高い精度で表現してその最上位桁が1である場
合には桁あふれを起こしているので、上位で丸めた結果
を選択しなければならない。また、最上位桁が0である
場合には、正しく丸められていることを示しているの
で、下位で丸めた結果を選択すればよい。このようにし
て、下位で丸めるべきか上位で丸めるべきかを判断した
後、それに対応した丸めのための桁上げCr2LあるいはC
r2Hの値によって、0の場合にP=U−Vの結果を選択
し、1の場合にQ=U−(V+1)の結果を選択すれば
よい。
以上のようにして、仮数部の結果を求めた後は、正規
化回路に入力して仮数部の桁合わせや、指数部の補正を
行なって、浮動小数点演算を終了する。
化回路に入力して仮数部の桁合わせや、指数部の補正を
行なって、浮動小数点演算を終了する。
以上説明したように仮数部演算器を構成することによ
り、仮数部に関する加減算と丸め、あるいは仮数部の減
算に結果が負になる場合の仮数部の絶対値化を、同じ構
成の演算器を用いて高速に処理することができる。
り、仮数部に関する加減算と丸め、あるいは仮数部の減
算に結果が負になる場合の仮数部の絶対値化を、同じ構
成の演算器を用いて高速に処理することができる。
(実施例2) 第4図は、本発明の第2の実施例を示すブロック図で
ある。この回路、浮動小数点乗算器において、仮数部乗
算器で最終的に生成された2つの部分積AおよびBを加
算および丸めを行なって、仮数部の結果を出力するもの
であり、前述の第9図の従来例を示す回路における仮数
部演算部900に対応する。第4図において、401は丸め桁
上げ生成回路、402は桁上げ保存加算器、403は加算器、
404は演算結果選択信号生成回路、405は選択回路であ
る。また、Rdは丸めモード信号、AおよびBは仮数部乗
算器で最終的に生成された2つの部分積、aiおよびb
i(i=0,1,…,n−1,g,r,s)は被加数Aおよび加数Bの
各桁の値、uiおよびvi(i=0,1,…,n、j=0,1,…,n−
1)は桁上げ保存加算器402から加算器403に入力される
桁上げUおよび和Vの各桁のデータである。また、Pお
よびQはそれぞれU+VおよびU+(V+1)のデータ
でありpi(i=0,1,…,n)、pi(i=0,1,…,n)を要素
とする。また、Cは仮数部結果である。第4図の回路の
構成は、第1図の構成と似ており、この回路では加算の
みを扱い、仮数部が負になることはない。
ある。この回路、浮動小数点乗算器において、仮数部乗
算器で最終的に生成された2つの部分積AおよびBを加
算および丸めを行なって、仮数部の結果を出力するもの
であり、前述の第9図の従来例を示す回路における仮数
部演算部900に対応する。第4図において、401は丸め桁
上げ生成回路、402は桁上げ保存加算器、403は加算器、
404は演算結果選択信号生成回路、405は選択回路であ
る。また、Rdは丸めモード信号、AおよびBは仮数部乗
算器で最終的に生成された2つの部分積、aiおよびb
i(i=0,1,…,n−1,g,r,s)は被加数Aおよび加数Bの
各桁の値、uiおよびvi(i=0,1,…,n、j=0,1,…,n−
1)は桁上げ保存加算器402から加算器403に入力される
桁上げUおよび和Vの各桁のデータである。また、Pお
よびQはそれぞれU+VおよびU+(V+1)のデータ
でありpi(i=0,1,…,n)、pi(i=0,1,…,n)を要素
とする。また、Cは仮数部結果である。第4図の回路の
構成は、第1図の構成と似ており、この回路では加算の
みを扱い、仮数部が負になることはない。
第4図の回路の動作を簡単に説明すると、丸め桁上げ
生成回路401により、入力されたAとBの下位の桁と、
丸めの方向を指定する丸めモード信号Rdとから2つの丸
めのための桁上げCr1とCr2を求める。ここで、演算によ
り桁あふれが生じる場合があるので、上位で丸める場合
と下位で丸める場合の2通りの桁上げ値を求める。この
時、上位で丸める場合と下位で丸める場合とで、加算器
を共有して用いるために、丸めによって生じる桁上げを
加える桁を同一にしている。このCr1とCr2の和が丸めの
ための最下位ビットへの桁上げとなる。この2つの桁上
げのうちCr1を加算器403に入力する。これと同時に、桁
上げ保存加算器402により入力されたAとBの上位n桁
を加算し、各桁に対して桁上げcと和sを求め、加算器
403に入力する。加算器403では、入力されたデータを加
算しP=U+VおよびQ=U+(V+1)を求め選択回
路405に入力する。次に、演算結果選択信号生成回路404
により、丸め桁上げ生成回路402の出力である桁上げCr2
と、加算器403から出力されるPおよびQの上位桁か
ら、演算結果選択信号を生成して選択回路405に入力
し、U+VおよびU+(V+1)のうちいずれかを選択
して仮数部結果Cとして出力する。
生成回路401により、入力されたAとBの下位の桁と、
丸めの方向を指定する丸めモード信号Rdとから2つの丸
めのための桁上げCr1とCr2を求める。ここで、演算によ
り桁あふれが生じる場合があるので、上位で丸める場合
と下位で丸める場合の2通りの桁上げ値を求める。この
時、上位で丸める場合と下位で丸める場合とで、加算器
を共有して用いるために、丸めによって生じる桁上げを
加える桁を同一にしている。このCr1とCr2の和が丸めの
ための最下位ビットへの桁上げとなる。この2つの桁上
げのうちCr1を加算器403に入力する。これと同時に、桁
上げ保存加算器402により入力されたAとBの上位n桁
を加算し、各桁に対して桁上げcと和sを求め、加算器
403に入力する。加算器403では、入力されたデータを加
算しP=U+VおよびQ=U+(V+1)を求め選択回
路405に入力する。次に、演算結果選択信号生成回路404
により、丸め桁上げ生成回路402の出力である桁上げCr2
と、加算器403から出力されるPおよびQの上位桁か
ら、演算結果選択信号を生成して選択回路405に入力
し、U+VおよびU+(V+1)のうちいずれかを選択
して仮数部結果Cとして出力する。
以下に、第4図の各回路の動作を詳細に説明する。
第4図の401は丸め桁上げ生成回路であり、前述のよ
うに入力されたAとBの下位の桁と、丸めの方向を指定
する丸めモード信号Rdとから2つの桁上げCr1とCr2を求
める。この回路は第1の実施例で述べた第1図の丸め桁
上げ生成回路101の加算の場合の機能と同様の機能を持
つものであり、入力される下位のデータの組み合わせが
多くなっている。
うに入力されたAとBの下位の桁と、丸めの方向を指定
する丸めモード信号Rdとから2つの桁上げCr1とCr2を求
める。この回路は第1の実施例で述べた第1図の丸め桁
上げ生成回路101の加算の場合の機能と同様の機能を持
つものであり、入力される下位のデータの組み合わせが
多くなっている。
まず、この回路に入力されるデータについて述べる。
この回路に入力されるデータは、仮数部乗算器で最終的
に生成された2つの部分積AとBである。丸めを行なう
場合に、演算の結果により2つの丸めを行なう桁があ
る。すなわち、仮数部の乗算を行なう場合に、入力され
るデータの組み合わせによって1の値を持つ最上位の桁
として2つの桁があるからである。たとえば、1≦X,Y
<2で表されるXとYの積Zは1≦Z<4となり、2進
数で表現すると、Zのとりうる値として1の値を持つ最
上位の桁が2の重みを持つ場合と1の重みを持つ場合が
ある。したがって、この場合にも加減算の場合と同様
に、上位で丸める場合と下位で丸める場合を考慮しなけ
ればならない。以下の説明では、仮数部の桁が、演算結
果を上位で丸める場合にはa0あるいはb0の桁がLSBとな
り、下位で丸める場合にはagあるいはbgの桁がLSBとな
るように桁合わせされているものとする。この場合に、
上位n桁から右にはみだした桁は、その上位から保護桁
agおよびbg、丸め桁arおよびbrで表わされ、それ以下の
桁は添付桁asおよびbsとしてその情報が残され、正確に
丸めを行なうために用いられる。
この回路に入力されるデータは、仮数部乗算器で最終的
に生成された2つの部分積AとBである。丸めを行なう
場合に、演算の結果により2つの丸めを行なう桁があ
る。すなわち、仮数部の乗算を行なう場合に、入力され
るデータの組み合わせによって1の値を持つ最上位の桁
として2つの桁があるからである。たとえば、1≦X,Y
<2で表されるXとYの積Zは1≦Z<4となり、2進
数で表現すると、Zのとりうる値として1の値を持つ最
上位の桁が2の重みを持つ場合と1の重みを持つ場合が
ある。したがって、この場合にも加減算の場合と同様
に、上位で丸める場合と下位で丸める場合を考慮しなけ
ればならない。以下の説明では、仮数部の桁が、演算結
果を上位で丸める場合にはa0あるいはb0の桁がLSBとな
り、下位で丸める場合にはagあるいはbgの桁がLSBとな
るように桁合わせされているものとする。この場合に、
上位n桁から右にはみだした桁は、その上位から保護桁
agおよびbg、丸め桁arおよびbrで表わされ、それ以下の
桁は添付桁asおよびbsとしてその情報が残され、正確に
丸めを行なうために用いられる。
第5図は、乗算結果の正の場合に、下位の値と丸めモ
ードに対して丸めのための桁上げCr1とCr2をどのように
して生成するかを示すものである。第3図において、g
は桁合わせされた後の保護桁agとbgとを加算した値を示
しており、{0,1,2}の値を持つ、0はagとbgがともに
0の場合であり、1はいずれか一方のみが1である場
合、2はともに1の場合を示す。rもgの場合と同様に
して丸め桁arおよびbrから求められたものであり、第2
図で加算の場合について述べた場合と異なりarは0とは
限らないため、rの値は{0,1,2}の値を持つ。また、
sは下位の丸めのための情報として、その桁以下の加算
により添付桁の桁位置からの桁上げの情報と、その加算
後の添付桁の桁位置以下のデータが全て0であるかどう
かの情報を含んだものである。したがって、添付桁sの
とり得る値として4つの場合がある。このことは、添付
桁の桁位置以下のデータの組み合わせを考えれば容易に
理解される。この4つの場合を、{0,1,2,3}で表わす
ことにする。ここで、{0,1,2}は桁上げがない場合、
{2,3}は桁上げがある場合であり、{0,2}は添付桁の
桁位置以下のデータが全て0である場合、{1,3}は添
付桁の桁位置以下のデータが全て0でない場合を表す。
このsの値を決定するためには、添付桁の桁位置以下の
データについて実際に加算し、添付桁からの桁上げと添
付桁以下の桁の論理和を求めることにより得られる。し
たがって、sの値を決定するには時間がかかる。また、
RTP、RTM、RTZ、RTN、CH,CL、CH e 、CH CoおよびSgは
第2図で述べたものと同様である。
ードに対して丸めのための桁上げCr1とCr2をどのように
して生成するかを示すものである。第3図において、g
は桁合わせされた後の保護桁agとbgとを加算した値を示
しており、{0,1,2}の値を持つ、0はagとbgがともに
0の場合であり、1はいずれか一方のみが1である場
合、2はともに1の場合を示す。rもgの場合と同様に
して丸め桁arおよびbrから求められたものであり、第2
図で加算の場合について述べた場合と異なりarは0とは
限らないため、rの値は{0,1,2}の値を持つ。また、
sは下位の丸めのための情報として、その桁以下の加算
により添付桁の桁位置からの桁上げの情報と、その加算
後の添付桁の桁位置以下のデータが全て0であるかどう
かの情報を含んだものである。したがって、添付桁sの
とり得る値として4つの場合がある。このことは、添付
桁の桁位置以下のデータの組み合わせを考えれば容易に
理解される。この4つの場合を、{0,1,2,3}で表わす
ことにする。ここで、{0,1,2}は桁上げがない場合、
{2,3}は桁上げがある場合であり、{0,2}は添付桁の
桁位置以下のデータが全て0である場合、{1,3}は添
付桁の桁位置以下のデータが全て0でない場合を表す。
このsの値を決定するためには、添付桁の桁位置以下の
データについて実際に加算し、添付桁からの桁上げと添
付桁以下の桁の論理和を求めることにより得られる。し
たがって、sの値を決定するには時間がかかる。また、
RTP、RTM、RTZ、RTN、CH,CL、CH e 、CH CoおよびSgは
第2図で述べたものと同様である。
第5図からわかるように、これらの丸めによる桁上げ
値CHおよびCLは、{0,1,2}の値のいずれかをとり、第
1の実施例で述べた加算の場合と同じである。したがっ
て、この場合にも同様の構成で2つの部分積の加算およ
び丸めを実現できることがわかる。また、この場合にも
桁上げCr1の生成において、添付桁sの値に依存しない
ように論理を決めており、桁上げ保存加算と決定に時間
のかかる添付桁sの生成を並列に実行することができ
る。表に示した例では、Cr1の生成は保護桁gと丸め桁
rの値のみによって決定している。なお、説明で示した
第5図の桁上げCr1とCr2の生成の方法は1例を示すもの
であり、同様の考え方から他の組み合わせを用いても同
様の効果が得られる。
値CHおよびCLは、{0,1,2}の値のいずれかをとり、第
1の実施例で述べた加算の場合と同じである。したがっ
て、この場合にも同様の構成で2つの部分積の加算およ
び丸めを実現できることがわかる。また、この場合にも
桁上げCr1の生成において、添付桁sの値に依存しない
ように論理を決めており、桁上げ保存加算と決定に時間
のかかる添付桁sの生成を並列に実行することができ
る。表に示した例では、Cr1の生成は保護桁gと丸め桁
rの値のみによって決定している。なお、説明で示した
第5図の桁上げCr1とCr2の生成の方法は1例を示すもの
であり、同様の考え方から他の組み合わせを用いても同
様の効果が得られる。
以上説明したように、丸めモード、入力データによっ
て、丸めのための桁上げCr1とCr2を求めるのが丸め桁上
げ生成回路401の機能である。
て、丸めのための桁上げCr1とCr2を求めるのが丸め桁上
げ生成回路401の機能である。
次に、桁上げ保存加算器402について述べる。この回
路は、入力される2つのデータの最下位桁への丸めのた
めの桁上げCr1の加算を許すために、各桁ごとに桁上げ
と和を求めるものであり、半加算器によって構成でき
る。この回路は、第1の実施例で述べた第1図の桁上げ
保存加減算器102の機能から減算の機能を削除したもの
である。
路は、入力される2つのデータの最下位桁への丸めのた
めの桁上げCr1の加算を許すために、各桁ごとに桁上げ
と和を求めるものであり、半加算器によって構成でき
る。この回路は、第1の実施例で述べた第1図の桁上げ
保存加減算器102の機能から減算の機能を削除したもの
である。
次に、加算器403について述べる。この回路は、丸め
桁上げ生成回路401で求められた丸め桁上げCr1と桁上げ
保存加算器402で求められた桁上げCiで構成された桁上
げデータUと桁上げ保存加算器402で求められた和siで
構成された和データVとから、P=U+VおよびQ=U
+(V+1)を求めるものであり、この場合にも、第1
の実施例で述べた第1図の加減算器103の機能から減算
の機能を除いたもので構成できる。
桁上げ生成回路401で求められた丸め桁上げCr1と桁上げ
保存加算器402で求められた桁上げCiで構成された桁上
げデータUと桁上げ保存加算器402で求められた和siで
構成された和データVとから、P=U+VおよびQ=U
+(V+1)を求めるものであり、この場合にも、第1
の実施例で述べた第1図の加減算器103の機能から減算
の機能を除いたもので構成できる。
次に、演算結果選択信号生成回路404について述べ
る。この回路は、丸め桁上げ生成回路401で求められた
丸めのための桁上げCr2と、加算器403で求められたPお
よびQの上位桁pn-1およびqn-1から、PあるいはQか
ら、適切な結果を選択するための信号を生成するもので
ある。この場合には、乗算器から出力される乗算結果
は、正の仮数部同士乗算したものなので正であることが
保証されるので、部分積の加算によって符号が反転する
ことはないので、正の値のみを考えればよい。したがっ
て、この場合にも第1の実施例で述べた第1図の演算結
果選択信号生成回路104の機能から、結果が負になる場
合に選択信号を生成する機能を除くことにより実現でき
る。
る。この回路は、丸め桁上げ生成回路401で求められた
丸めのための桁上げCr2と、加算器403で求められたPお
よびQの上位桁pn-1およびqn-1から、PあるいはQか
ら、適切な結果を選択するための信号を生成するもので
ある。この場合には、乗算器から出力される乗算結果
は、正の仮数部同士乗算したものなので正であることが
保証されるので、部分積の加算によって符号が反転する
ことはないので、正の値のみを考えればよい。したがっ
て、この場合にも第1の実施例で述べた第1図の演算結
果選択信号生成回路104の機能から、結果が負になる場
合に選択信号を生成する機能を除くことにより実現でき
る。
以上のようにして、仮数部の結果を求めた後は、正規
化回路に入力して仮数部の桁合わせや、指数部の補正を
行なって、浮動小数点乗算を終了する。
化回路に入力して仮数部の桁合わせや、指数部の補正を
行なって、浮動小数点乗算を終了する。
以上説明したように仮数部演算器を構成することによ
り、下位の添付桁以下の結果や、丸める桁を決定する以
前に部分積の加算を開始することができるので、仮数部
に関する乗算と丸めを高速に処理することができる。
り、下位の添付桁以下の結果や、丸める桁を決定する以
前に部分積の加算を開始することができるので、仮数部
に関する乗算と丸めを高速に処理することができる。
(実施例3) 第6図は、本発明の第3の実施例を示すブロック図で
ある。この回路は、浮動小数点乗算器において、内部演
算に冗長2進数を用いた仮数部乗算器を使った場合に、
乗算器で最終的に求められた冗長2進数で表された乗算
結果を通常の2進数に変換し、さらに丸めを行なって、
仮数部の結果を出力するものであり、前述の第9図の従
来例を示す回路における仮数部演算部900に対応する。
通常の2進数を用いた乗算器では共に正の最終的に残っ
た2つの部分積が入力されるが、この場合には冗長2進
数で表現された結果が入力される。冗長2進数は、各桁
の値が{1,0,−1}のいずれかの値を持つ。したがっ
て、冗長2進数を通常の2進数に変換するためには、桁
の値が1である桁のみが1である2進数データAから、
桁の値が−1である桁のみが1である2進数データBを
減算することにより実現できる。この2つの2進数デー
タAおよびBが、仮数部演算器に入力されるものとす
る。
ある。この回路は、浮動小数点乗算器において、内部演
算に冗長2進数を用いた仮数部乗算器を使った場合に、
乗算器で最終的に求められた冗長2進数で表された乗算
結果を通常の2進数に変換し、さらに丸めを行なって、
仮数部の結果を出力するものであり、前述の第9図の従
来例を示す回路における仮数部演算部900に対応する。
通常の2進数を用いた乗算器では共に正の最終的に残っ
た2つの部分積が入力されるが、この場合には冗長2進
数で表現された結果が入力される。冗長2進数は、各桁
の値が{1,0,−1}のいずれかの値を持つ。したがっ
て、冗長2進数を通常の2進数に変換するためには、桁
の値が1である桁のみが1である2進数データAから、
桁の値が−1である桁のみが1である2進数データBを
減算することにより実現できる。この2つの2進数デー
タAおよびBが、仮数部演算器に入力されるものとす
る。
第6図において、601は丸め桁上げ生成回路、602は桁
上げ保存減算器、603は減算器、604は演算結果選択信号
生成回路、605は選択回路である。また、Rdは丸めモー
ド信号、AおよびBは冗長2進数乗算器で最終的に生成
された部分積、aiおよびbi(i=0,1,…n−1,g,r,s)
はAおよびBの桁の値、uiおよびvj(i=0,1,…,n、j
=0,1,…,n−1)は桁上げ保存減算器602から減算器603
に入力される桁上げUおよび和Vの各桁のデータであ
る。また、PおよびQはそれぞれU−VおよびU−(V
+1)のデータでありpi(i=0,1,…,n)、qi(i=0,
1,…,n)を要素とする。また、Cは仮数部結果である。
第6図の回路の構成は、第4図の構成と似ており、この
回路では減算のみを扱い、仮数部が負になることはな
い。
上げ保存減算器、603は減算器、604は演算結果選択信号
生成回路、605は選択回路である。また、Rdは丸めモー
ド信号、AおよびBは冗長2進数乗算器で最終的に生成
された部分積、aiおよびbi(i=0,1,…n−1,g,r,s)
はAおよびBの桁の値、uiおよびvj(i=0,1,…,n、j
=0,1,…,n−1)は桁上げ保存減算器602から減算器603
に入力される桁上げUおよび和Vの各桁のデータであ
る。また、PおよびQはそれぞれU−VおよびU−(V
+1)のデータでありpi(i=0,1,…,n)、qi(i=0,
1,…,n)を要素とする。また、Cは仮数部結果である。
第6図の回路の構成は、第4図の構成と似ており、この
回路では減算のみを扱い、仮数部が負になることはな
い。
第6図の回路の動作を簡単に説明すると、丸め桁上げ
生成回路601により、入力されたAとBの下位の桁と、
丸めの方向を指定する丸めモード信号Rdとから2つの丸
めのための桁上げCr1とCr2を求める。この場合にも、上
位で丸める場合、上位で丸める場合と下位で丸める場合
の2通りの桁上げ値を求める。この時、上位で丸める場
合と下位で丸める場合とで、減算器を共有して用いるた
めに、丸めによって生じる桁上げを加える桁を同一にし
ている。このCr1とCr2の和が丸めのための最下位ビット
への桁上げとなる。この2つの桁上げのうちCr1を減算
器603に入力する。これと同時に、桁上げ保存減算器602
により入力されたAとBの上位n桁を減算し、各桁に対
して桁上げcと和sを求め、減算器603に入力する。減
算器603では、入力されたデータを減算しP=U−Vお
よびQ=U−(V+1)を求める選択回路605に入力す
る。次に、演算結果選択信号生成回路604により、丸め
桁上げ生成回路602の出力である桁上げCr2と、減算器60
3から出力されるPおよびQの上位桁から、演算結果選
択信号を生成して選択回路605に入力し、U−Vおよび
U−(V+1)のうちいずれかを選択して仮数部結果C
として出力する。
生成回路601により、入力されたAとBの下位の桁と、
丸めの方向を指定する丸めモード信号Rdとから2つの丸
めのための桁上げCr1とCr2を求める。この場合にも、上
位で丸める場合、上位で丸める場合と下位で丸める場合
の2通りの桁上げ値を求める。この時、上位で丸める場
合と下位で丸める場合とで、減算器を共有して用いるた
めに、丸めによって生じる桁上げを加える桁を同一にし
ている。このCr1とCr2の和が丸めのための最下位ビット
への桁上げとなる。この2つの桁上げのうちCr1を減算
器603に入力する。これと同時に、桁上げ保存減算器602
により入力されたAとBの上位n桁を減算し、各桁に対
して桁上げcと和sを求め、減算器603に入力する。減
算器603では、入力されたデータを減算しP=U−Vお
よびQ=U−(V+1)を求める選択回路605に入力す
る。次に、演算結果選択信号生成回路604により、丸め
桁上げ生成回路602の出力である桁上げCr2と、減算器60
3から出力されるPおよびQの上位桁から、演算結果選
択信号を生成して選択回路605に入力し、U−Vおよび
U−(V+1)のうちいずれかを選択して仮数部結果C
として出力する。
以下に、第6図の各回路の動作を詳細に説明する。第
6図の601は丸め桁上げ生成回路であり、前述のように
入力されたAとBの下位の桁と、丸めの方向を指定する
丸めモード信号Rdとから2つの桁上げCr1とCr2を求め
る。この回路は第1の実施例で述べた第1図の丸め桁上
げ生成回路101の減算の場合の機能と同様の機能を持つ
ものであり、入力される下位のデータの組み合わせが多
くなっている。
6図の601は丸め桁上げ生成回路であり、前述のように
入力されたAとBの下位の桁と、丸めの方向を指定する
丸めモード信号Rdとから2つの桁上げCr1とCr2を求め
る。この回路は第1の実施例で述べた第1図の丸め桁上
げ生成回路101の減算の場合の機能と同様の機能を持つ
ものであり、入力される下位のデータの組み合わせが多
くなっている。
まず、この回路に入力されるデータについて述べる。
この回路に入力されるデータは、仮数部乗算器で最終的
に生成された冗長2進数の正および負の桁のデータを表
すAとBである。この場合にも第2の実施例で述べたと
同様に、演算の結果により2つの丸めを行なう桁があ
り、演算結果を上位で丸める場合にはa0あるいはb0の桁
がLSBとなり、下位で丸める場合にはagあるいはbgの桁
がLSBとなるように桁合わせされているものとする。こ
の場合に、上位n桁から右にはみだした桁は、その上位
から保護桁agおよびbg、丸め桁arおよびbrで表わされ、
それ以下の桁は添付桁asおよびbsとしてその情報が残さ
れ、正確に丸めを行なうために用いられる。
この回路に入力されるデータは、仮数部乗算器で最終的
に生成された冗長2進数の正および負の桁のデータを表
すAとBである。この場合にも第2の実施例で述べたと
同様に、演算の結果により2つの丸めを行なう桁があ
り、演算結果を上位で丸める場合にはa0あるいはb0の桁
がLSBとなり、下位で丸める場合にはagあるいはbgの桁
がLSBとなるように桁合わせされているものとする。こ
の場合に、上位n桁から右にはみだした桁は、その上位
から保護桁agおよびbg、丸め桁arおよびbrで表わされ、
それ以下の桁は添付桁asおよびbsとしてその情報が残さ
れ、正確に丸めを行なうために用いられる。
第7図は、乗算結果が正の場合に、下位の値と丸めモ
ードに対して丸めのための桁上げCr1とCr2をどのように
して生成するかを示すものである。第3図において、g
は桁合わせされた後の保護桁agからbgを減算した値を示
しており、{1,0,−1}の値を持つ。rもgの場合と同
様にして丸め桁arおよびbrから求められたものである。
また、sは下位の丸めのための情報として、その桁以下
の減算により添付桁の桁位置から桁上げの情報と、その
減算後の添付桁の桁位置以下のデータが全て0であるか
どうかの情報を含んだものである。したがって、添付桁
sのとり得る場合としてはgやrと同様に{1,0,−1}
の3つがある。このことは、添付桁の桁位置以下のデー
タの組み合わせを考えれば容易に理解される。この3つ
の場合を、{1,0,−1}で表わすことにする。ここで、
{0,1}は桁上げがない場合、{−1}は桁上げがある
場合であり、{0}は添付桁の桁位置以下のデータが全
て0である場合、{1,−1}は添付桁の桁位置以下のデ
ータが全て0でない場合を表す。このsの値を決定する
ためには、添付桁の桁位置以下のデータについて実際に
減算し、添付桁からの桁上げと添付桁以下の桁の論理和
を求めることにより得られる。したがって、sの値を決
定するには時間がかかる。また、RTP、RTM、RTZ、TN、C
H、CL、CH e,CH oおよびSgは第2図で述べたものと同様
である。
ードに対して丸めのための桁上げCr1とCr2をどのように
して生成するかを示すものである。第3図において、g
は桁合わせされた後の保護桁agからbgを減算した値を示
しており、{1,0,−1}の値を持つ。rもgの場合と同
様にして丸め桁arおよびbrから求められたものである。
また、sは下位の丸めのための情報として、その桁以下
の減算により添付桁の桁位置から桁上げの情報と、その
減算後の添付桁の桁位置以下のデータが全て0であるか
どうかの情報を含んだものである。したがって、添付桁
sのとり得る場合としてはgやrと同様に{1,0,−1}
の3つがある。このことは、添付桁の桁位置以下のデー
タの組み合わせを考えれば容易に理解される。この3つ
の場合を、{1,0,−1}で表わすことにする。ここで、
{0,1}は桁上げがない場合、{−1}は桁上げがある
場合であり、{0}は添付桁の桁位置以下のデータが全
て0である場合、{1,−1}は添付桁の桁位置以下のデ
ータが全て0でない場合を表す。このsの値を決定する
ためには、添付桁の桁位置以下のデータについて実際に
減算し、添付桁からの桁上げと添付桁以下の桁の論理和
を求めることにより得られる。したがって、sの値を決
定するには時間がかかる。また、RTP、RTM、RTZ、TN、C
H、CL、CH e,CH oおよびSgは第2図で述べたものと同様
である。
第7図からわかるように、これらの丸めによる桁上げ
値CHおよびCLは、{1,0,−1}の値のいずれかをとる。
したがって、正と負の桁上げを実現するために前述の実
施例と同様に2回に分けて桁上げを行なう。すなわち、
1段の桁上げ保存減算を行ない、その後桁上げ先見など
の方法により減算を行なって桁上げを実現する。最終の
減算は2進数の結果を求めるため減算器により実行され
るので、負の桁上げしか許されない。このため、桁上げ
保存減算後に正の桁上げCr1を加え、さらに桁上げ先見
減算の結果を負の桁上げCr2によって選択する構成をと
る。この時、前述の実施例と同様に上位で丸める場合と
下位で丸める場合について桁上げCr1を一致させる。す
なわち、(1)(2)式が成り立つように2つの桁上げ
Cr1およびCr2を求める。これにより、上位で丸める場合
と下位で丸める場合について同一の桁上げ保存減算器
と、桁上げ先見減算器を共有できる。また、この場合に
も正の桁上げCr1の生成において、添付桁sの値に依存
しないように論理を決めることにより、桁上げ保存減算
および桁上げ先見減算と決定に時間のかかる添付桁sの
生成を並列に実行することができる。表に示した例で
は、Cr1の生成は保護桁gの値のみによって決定してい
る。なお、説明で示した第7図の桁上げCr1とCr2の生成
の方法は1例を示すものであり、同様の考え方から他の
組み合わせを用いても同様の効果が得られる。
値CHおよびCLは、{1,0,−1}の値のいずれかをとる。
したがって、正と負の桁上げを実現するために前述の実
施例と同様に2回に分けて桁上げを行なう。すなわち、
1段の桁上げ保存減算を行ない、その後桁上げ先見など
の方法により減算を行なって桁上げを実現する。最終の
減算は2進数の結果を求めるため減算器により実行され
るので、負の桁上げしか許されない。このため、桁上げ
保存減算後に正の桁上げCr1を加え、さらに桁上げ先見
減算の結果を負の桁上げCr2によって選択する構成をと
る。この時、前述の実施例と同様に上位で丸める場合と
下位で丸める場合について桁上げCr1を一致させる。す
なわち、(1)(2)式が成り立つように2つの桁上げ
Cr1およびCr2を求める。これにより、上位で丸める場合
と下位で丸める場合について同一の桁上げ保存減算器
と、桁上げ先見減算器を共有できる。また、この場合に
も正の桁上げCr1の生成において、添付桁sの値に依存
しないように論理を決めることにより、桁上げ保存減算
および桁上げ先見減算と決定に時間のかかる添付桁sの
生成を並列に実行することができる。表に示した例で
は、Cr1の生成は保護桁gの値のみによって決定してい
る。なお、説明で示した第7図の桁上げCr1とCr2の生成
の方法は1例を示すものであり、同様の考え方から他の
組み合わせを用いても同様の効果が得られる。
以上説明したように、丸めモード、入力データによっ
て、丸めのための桁上げCr1とCr2を求めるのが丸め桁上
げ生成回路601の機能である。
て、丸めのための桁上げCr1とCr2を求めるのが丸め桁上
げ生成回路601の機能である。
次に、桁上げ保存減算器602について述べる。この回
路は、入力される2つのデータの最下位桁への丸めのた
めの桁上げCr1の減算を許すために、各桁ごとに桁上げ
と和を求めるものであり、半減算器によって構成でき
る。この回路は、第1の実施例で述べた第1図の桁上げ
保存加減算器102の機能から加算の機能を削除したもの
であるが、この場合には桁上げCr1の値は前述のように
正でなければならないので、(4)式で示されるように
半減算器を構成しなければならない。
路は、入力される2つのデータの最下位桁への丸めのた
めの桁上げCr1の減算を許すために、各桁ごとに桁上げ
と和を求めるものであり、半減算器によって構成でき
る。この回路は、第1の実施例で述べた第1図の桁上げ
保存加減算器102の機能から加算の機能を削除したもの
であるが、この場合には桁上げCr1の値は前述のように
正でなければならないので、(4)式で示されるように
半減算器を構成しなければならない。
次に、減算器603について述べる。この回路は、丸め
桁上げ生成回路601で求められた丸め桁上げCr1と桁上げ
保存減算器602で求められた桁上げciで構成された桁上
げデータUと桁上げ保存減算器602で求められた和siで
構成された和データVとから、P=U−VおよびQ=U
−(V+)を求めるものであり、この場合にも、第1の
実施例で述べた第1図の加減算器103の機能から加算の
機能を除いたもので構成できる。
桁上げ生成回路601で求められた丸め桁上げCr1と桁上げ
保存減算器602で求められた桁上げciで構成された桁上
げデータUと桁上げ保存減算器602で求められた和siで
構成された和データVとから、P=U−VおよびQ=U
−(V+)を求めるものであり、この場合にも、第1の
実施例で述べた第1図の加減算器103の機能から加算の
機能を除いたもので構成できる。
次に、演算結果選択信号生成回路604について述べ
る。この回路は、丸め桁上げ生成回路601で求められた
丸めのための桁上げCr2と、減算器603で求められたPお
よびQの上位桁pn-1およびqn-1から、PあるいはQか
ら、適切な結果を選択するための信号を生成するもので
ある。この場合にも、冗長2進数乗算器から出力される
乗算結果は、正の仮数部同士乗算したものとなので正で
あることが保証されるので、AからBを減算することに
よって符号が反転することはないので、正の値のみを考
えればよい。したがって、この場合にも第1の実施例で
述べた第1図の演算結果選択信号生成回路104の機能か
ら、結果が負になる場合に選択信号を生成する機能を除
くことにより実現できる。
る。この回路は、丸め桁上げ生成回路601で求められた
丸めのための桁上げCr2と、減算器603で求められたPお
よびQの上位桁pn-1およびqn-1から、PあるいはQか
ら、適切な結果を選択するための信号を生成するもので
ある。この場合にも、冗長2進数乗算器から出力される
乗算結果は、正の仮数部同士乗算したものとなので正で
あることが保証されるので、AからBを減算することに
よって符号が反転することはないので、正の値のみを考
えればよい。したがって、この場合にも第1の実施例で
述べた第1図の演算結果選択信号生成回路104の機能か
ら、結果が負になる場合に選択信号を生成する機能を除
くことにより実現できる。
以上のようにして、仮数部の結果を求めた後は、正規
化回路に入力して仮数部の桁合わせや、指数部の補正を
行なって、浮動小数点乗算を終了する。
化回路に入力して仮数部の桁合わせや、指数部の補正を
行なって、浮動小数点乗算を終了する。
以上説明したように仮数部演算器を構成することによ
り、下位の添付桁以下の結果や、丸める桁を決定する以
前に冗長2進数の変換を開始することができるので、仮
数部に関する乗算と丸めを高速に処理することができ
る。
り、下位の添付桁以下の結果や、丸める桁を決定する以
前に冗長2進数の変換を開始することができるので、仮
数部に関する乗算と丸めを高速に処理することができ
る。
以上述べた例では、浮動小数点の加減算と乗算につい
て述べたが、他の演算、例えば乗算、平方根演算あるい
は負浮動小数点や整数とのフォーマット変換などについ
ても同様の考え方により、最終の演算と丸めを高速に実
現できる。
て述べたが、他の演算、例えば乗算、平方根演算あるい
は負浮動小数点や整数とのフォーマット変換などについ
ても同様の考え方により、最終の演算と丸めを高速に実
現できる。
発明の効果 以上述べたように、本発明の第1の実施例によれば、
浮動小数点加減算において、添付桁の生成を終了する以
前に、仮数部の加減算と丸めのための桁上げの生成を開
始できるので、仮数部の加減算と丸めおよび結果の絶対
値化などを高速に行なうことができるという結果を有す
る。また、本発明の第2の実施例によれば、浮動小数点
乗算において、添付桁の生成を終了する以前に、最終的
に求められた2つの部分積の上位部分の加算と丸めのた
めの桁上げの生成を開始できるので、最終の部分積の加
算と丸めを高速に行なうことができるという結果を有す
る。また、本発明の第3の実施例によれば、仮数部の内
部乗算に冗長2進数体系を用いた浮動小数点乗算におい
て、添付桁の生成を終了する以前に、最終的に求められ
た冗長2進数の仮数部乗算結果の上位部分の2進数への
変換と丸めのための桁上げの生成を開始できるので、最
終の2進数への変換と丸めを高速に行なうことができる
という効果を有する。さらに、本発明によれば、例えば
乗算、平方根演算あるいは負浮動小数点や整数とのフォ
ーマット変換などについても同様の考え方により、最終
の演算と丸めを高速に実現できるという結果を有し、実
用的にきわめて有用である。
浮動小数点加減算において、添付桁の生成を終了する以
前に、仮数部の加減算と丸めのための桁上げの生成を開
始できるので、仮数部の加減算と丸めおよび結果の絶対
値化などを高速に行なうことができるという結果を有す
る。また、本発明の第2の実施例によれば、浮動小数点
乗算において、添付桁の生成を終了する以前に、最終的
に求められた2つの部分積の上位部分の加算と丸めのた
めの桁上げの生成を開始できるので、最終の部分積の加
算と丸めを高速に行なうことができるという結果を有す
る。また、本発明の第3の実施例によれば、仮数部の内
部乗算に冗長2進数体系を用いた浮動小数点乗算におい
て、添付桁の生成を終了する以前に、最終的に求められ
た冗長2進数の仮数部乗算結果の上位部分の2進数への
変換と丸めのための桁上げの生成を開始できるので、最
終の2進数への変換と丸めを高速に行なうことができる
という効果を有する。さらに、本発明によれば、例えば
乗算、平方根演算あるいは負浮動小数点や整数とのフォ
ーマット変換などについても同様の考え方により、最終
の演算と丸めを高速に実現できるという結果を有し、実
用的にきわめて有用である。
第1図は本発明の第1の実施例の浮動小数点加減算器の
仮数部演算および丸め回路の構成を示すブロック図、第
2図は第1の実施例における加算の場合の丸め桁上げの
生成方法を示す真理値表を示す図、第3図は第1の実施
例における減算の場合の丸め桁上げの生成方法を示す真
理値表を示す図、第4図は本発明の第2の実施例の浮動
小数点乗算器の仮数部の最終的な部分積加算および丸め
回路の構成を示すブロック図、第5図は第2の実施例に
おける丸め桁上げの生成方法を示す真理値表を示す図、
第6図は本発明の第3の実施例の浮動小数点乗算器の仮
数部演算に冗長2進数乗算器を用いた場合の乗算結果の
2進数への変換および丸め回路の構成を示すブロック
図、第7図は第3の実施例における丸め桁上げの生成方
法を示す真理値表を示す図、第8図は従来例を示すブロ
ック図、第9図は従来例を示すブロック図である。 101,401,601……丸め桁上げ生成回路、102……桁上げ保
存加減算器、402……桁上げ保存加算器、602……桁上げ
保存減算器、103……加減算器、403……加算器、603…
…減算器、104,404,604……演算結果選択信号生成回
路、105……反転回路、106,405,605……選択回路。
仮数部演算および丸め回路の構成を示すブロック図、第
2図は第1の実施例における加算の場合の丸め桁上げの
生成方法を示す真理値表を示す図、第3図は第1の実施
例における減算の場合の丸め桁上げの生成方法を示す真
理値表を示す図、第4図は本発明の第2の実施例の浮動
小数点乗算器の仮数部の最終的な部分積加算および丸め
回路の構成を示すブロック図、第5図は第2の実施例に
おける丸め桁上げの生成方法を示す真理値表を示す図、
第6図は本発明の第3の実施例の浮動小数点乗算器の仮
数部演算に冗長2進数乗算器を用いた場合の乗算結果の
2進数への変換および丸め回路の構成を示すブロック
図、第7図は第3の実施例における丸め桁上げの生成方
法を示す真理値表を示す図、第8図は従来例を示すブロ
ック図、第9図は従来例を示すブロック図である。 101,401,601……丸め桁上げ生成回路、102……桁上げ保
存加減算器、402……桁上げ保存加算器、602……桁上げ
保存減算器、103……加減算器、403……加算器、603…
…減算器、104,404,604……演算結果選択信号生成回
路、105……反転回路、106,405,605……選択回路。
Claims (6)
- 【請求項1】浮動小数点数の仮数部に関する2つのデー
タの所定の基準桁位置以上の桁について桁上げ保存によ
り所定の演算をして桁上げデータと和データを生成する
桁上げ保存演算器と、 丸めの方向を指定する丸めモード信号と前記仮数部に関
する2つのデータから、前記所定の演算および上位での
丸めにより生じる前記基準桁への桁上げCHと前記所定の
演算および下位での丸めにより生じる前記基準桁への桁
上げCLとを、上位で丸める場合と下位で丸める場合とで
一致した第1の丸め桁上げCr1と、上位で丸める場合と
下位で丸める場合とについての第2の丸め桁上げCr2H=
CH−Cr1およびCr2L=CL−Cr1とに分けて生成する丸め桁
上げ生成回路と、 前記桁上げデータの前記基準桁位置に前記第1の丸め桁
上げCr1を付加したデータと、前記和データとを前記所
定の演算をした第1の結果と、前記第1の結果からさら
に1を前記所定の演算をした第2の結果を出力する桁上
げ伝搬演算器と、 前記第1の結果および前記第2の結果の上位桁の値と前
記第2の桁上げCr2HおよびCr2Lとによって、前記第1の
結果および前記第2の結果から選択して出力する選択回
路を有することを特徴とする浮動小数点演算装置。 - 【請求項2】所定の演算が加算であることを特徴とする
特許請求の範囲第1項記載の浮動小数点演算装置。 - 【請求項3】所定の演算が減算であることを特徴とする
特許請求の範囲第1項記載の浮動小数点演算装置。 - 【請求項4】前記桁上げ伝搬演算器の第2の結果の全桁
の論理反転を出力する反転データ生成回路を有し、選択
回路が、第1の結果および第2の結果の上位桁の値と第
2の桁上げCr2HおよびCr2Lとによって、前記第1の結
果、前記第2の結果および前記反転データ生成回路の出
力から選択して出力することを特徴とする特許請求の範
囲第3項記載の浮動小数点演算装置。 - 【請求項5】前記仮数部に関する2つのデータが冗長2
進数で表現されたデータであって、前記桁上げ保存演算
器が、前記所定の基準桁位置以上の桁について桁上げ保
存の方法により冗長2進数を2進数に変換し、桁上げデ
ータと和データを生成する桁上げ保存減算器であること
を特徴とする特許請求の範囲第1項または第3項記載の
浮動小数点演算装置。 - 【請求項6】丸め桁上げ生成回路が、仮数部に関するデ
ータの添付桁(sticky digit)の値に依存しないように
第1の丸め桁上げCr1を生成し、前記添付桁の値に依存
して第2の丸め桁上げCr2HおよびCr2Lを生成することを
特徴とする特許請求の範囲第1項から第5項の何れかに
記載の浮動小数点演算装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2219251A JP2523962B2 (ja) | 1990-08-20 | 1990-08-20 | 浮動小数点演算装置 |
EP91113851A EP0472139B1 (en) | 1990-08-20 | 1991-08-19 | A floating-point processor |
DE69132517T DE69132517T2 (de) | 1990-08-20 | 1991-08-19 | Gleitkommaprozessor |
US07/747,583 US5222037A (en) | 1990-08-20 | 1991-08-20 | Floating-point processor for performing an arithmetic operation on fixed-point part data with high speed rounding of a result |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2219251A JP2523962B2 (ja) | 1990-08-20 | 1990-08-20 | 浮動小数点演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04101215A JPH04101215A (ja) | 1992-04-02 |
JP2523962B2 true JP2523962B2 (ja) | 1996-08-14 |
Family
ID=16732596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2219251A Expired - Fee Related JP2523962B2 (ja) | 1990-08-20 | 1990-08-20 | 浮動小数点演算装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5222037A (ja) |
EP (1) | EP0472139B1 (ja) |
JP (1) | JP2523962B2 (ja) |
DE (1) | DE69132517T2 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04165530A (ja) * | 1990-10-30 | 1992-06-11 | Nec Corp | 浮動小数点乗算装置 |
JPH05241792A (ja) * | 1992-02-27 | 1993-09-21 | Nec Corp | 浮動小数点加減算方式および装置 |
JPH05318817A (ja) * | 1992-05-26 | 1993-12-03 | Minolta Camera Co Ltd | レーザプリンタ |
EP0654733B1 (en) * | 1993-11-23 | 2000-05-24 | Hewlett-Packard Company | Parallel data processing in a single processor |
US5459681A (en) * | 1993-12-20 | 1995-10-17 | Motorola, Inc. | Special functions arithmetic logic unit method and apparatus |
US5550768A (en) * | 1995-01-31 | 1996-08-27 | International Business Machines Corporation | Rounding normalizer for floating point arithmetic operations |
US5729481A (en) * | 1995-03-31 | 1998-03-17 | International Business Machines Corporation | Method and system of rounding for quadratically converging division or square root |
US5635858A (en) * | 1995-06-07 | 1997-06-03 | International Business Machines, Corporation | Zero-stopping incrementers |
US7395298B2 (en) * | 1995-08-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed data |
US5721892A (en) * | 1995-08-31 | 1998-02-24 | Intel Corporation | Method and apparatus for performing multiply-subtract operations on packed data |
US6385634B1 (en) * | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US6470370B2 (en) | 1995-09-05 | 2002-10-22 | Intel Corporation | Method and apparatus for multiplying and accumulating complex numbers in a digital filter |
US6237016B1 (en) | 1995-09-05 | 2001-05-22 | Intel Corporation | Method and apparatus for multiplying and accumulating data samples and complex coefficients |
US5936872A (en) * | 1995-09-05 | 1999-08-10 | Intel Corporation | Method and apparatus for storing complex numbers to allow for efficient complex multiplication operations and performing such complex multiplication operations |
US6058408A (en) * | 1995-09-05 | 2000-05-02 | Intel Corporation | Method and apparatus for multiplying and accumulating complex numbers in a digital filter |
US5983253A (en) * | 1995-09-05 | 1999-11-09 | Intel Corporation | Computer system for performing complex digital filters |
KR970016936A (ko) * | 1995-09-06 | 1997-04-28 | 엘리 와이스 | 최상위 디지트를 결정하는 장치 및 방법 |
US5809323A (en) * | 1995-09-19 | 1998-09-15 | International Business Machines Corporation | Method and apparatus for executing fixed-point instructions within idle execution units of a superscalar processor |
US5822459A (en) * | 1995-09-28 | 1998-10-13 | Intel Corporation | Method for processing wavelet bands |
US5621674A (en) * | 1996-02-15 | 1997-04-15 | Intel Corporation | Computer implemented method for compressing 24 bit pixels to 16 bit pixels |
US5831885A (en) * | 1996-03-04 | 1998-11-03 | Intel Corporation | Computer implemented method for performing division emulation |
US5847979A (en) * | 1996-10-31 | 1998-12-08 | Samsung Electronics Company, Ltd. | Method and apparatus for generating an initial estimate for a floating point reciprocal of a square root |
US6269384B1 (en) * | 1998-03-27 | 2001-07-31 | Advanced Micro Devices, Inc. | Method and apparatus for rounding and normalizing results within a multiplier |
JP4042364B2 (ja) * | 2001-07-27 | 2008-02-06 | 日本電気株式会社 | アドレス生成回路、選択判断回路 |
US7430578B2 (en) * | 2001-10-29 | 2008-09-30 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed byte data |
US7461116B2 (en) * | 2003-09-17 | 2008-12-02 | Agility Design Solutions Inc. | Emulation of a fixed point operation using a corresponding floating point operation |
JP4645519B2 (ja) * | 2006-04-27 | 2011-03-09 | 株式会社デンソー | 演算処理装置,制御装置およびプログラム |
JP7087918B2 (ja) * | 2018-10-31 | 2022-06-21 | 富士通株式会社 | 演算処理装置及びその制御方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE33629E (en) * | 1980-02-13 | 1991-07-02 | Intel Corporation | Numeric data processor |
US4562553A (en) * | 1984-03-19 | 1985-12-31 | Analogic Corporation | Floating point arithmetic system and method with rounding anticipation |
JPS61213927A (ja) * | 1985-03-18 | 1986-09-22 | Hitachi Ltd | 浮動小数点演算処理装置 |
US4849923A (en) * | 1986-06-27 | 1989-07-18 | Digital Equipment Corporation | Apparatus and method for execution of floating point operations |
JPH0776911B2 (ja) * | 1988-03-23 | 1995-08-16 | 松下電器産業株式会社 | 浮動小数点演算装置 |
JP3076046B2 (ja) * | 1989-01-31 | 2000-08-14 | 日本電気株式会社 | 例外検出回路 |
US5027308A (en) * | 1989-02-14 | 1991-06-25 | Intel Corporation | Circuit for adding/subtracting two floating point operands |
JPH0325527A (ja) * | 1989-06-22 | 1991-02-04 | Matsushita Electric Ind Co Ltd | デイジタル信号処理装置 |
-
1990
- 1990-08-20 JP JP2219251A patent/JP2523962B2/ja not_active Expired - Fee Related
-
1991
- 1991-08-19 EP EP91113851A patent/EP0472139B1/en not_active Expired - Lifetime
- 1991-08-19 DE DE69132517T patent/DE69132517T2/de not_active Expired - Fee Related
- 1991-08-20 US US07/747,583 patent/US5222037A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69132517D1 (de) | 2001-03-01 |
DE69132517T2 (de) | 2001-06-13 |
JPH04101215A (ja) | 1992-04-02 |
EP0472139A3 (en) | 1993-04-21 |
EP0472139B1 (en) | 2001-01-24 |
US5222037A (en) | 1993-06-22 |
EP0472139A2 (en) | 1992-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2523962B2 (ja) | 浮動小数点演算装置 | |
JP3541066B2 (ja) | コンピュータにおいて除算および平方根計算を実施するための方法および装置 | |
JP2938547B2 (ja) | 演算処理装置 | |
US5787030A (en) | Correct and efficient sticky bit calculation for exact floating point divide/square root results | |
JP4500358B2 (ja) | 演算処理装置および演算処理方法 | |
KR100203468B1 (ko) | 부동소수점수를 위한 산술연산장치 | |
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 | |
EP0613082A1 (en) | 4:2 adder and multiplier circuit employing the same | |
US5784307A (en) | Division algorithm for floating point or integer numbers | |
US5408426A (en) | Arithmetic unit capable of performing concurrent operations for high speed operation | |
US5282156A (en) | Leading one anticipator and floating point addition/subtraction apparatus employing same | |
US6847986B2 (en) | Divider | |
US5818745A (en) | Computer for performing non-restoring division | |
JP4273071B2 (ja) | 除算・開平演算器 | |
US5278782A (en) | Square root operation device | |
JP2558669B2 (ja) | 浮動小数点演算装置 | |
US5513362A (en) | Method of and apparatus for normalization of a floating point binary number | |
JP2003084969A (ja) | 浮動小数点剰余演算器、情報処理装置及びコンピュータプログラム | |
JPH04172526A (ja) | 浮動小数点除算器 | |
SU732868A1 (ru) | Устройство дл делени п-раздельных чисел | |
JP3100868B2 (ja) | 浮動小数点数のための算術演算装置 | |
JP2580413B2 (ja) | 乗算処理装置 | |
JPH0778724B2 (ja) | 除算器 | |
JPH0361224B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |