JPH0251732A - 浮動小数点演算器 - Google Patents
浮動小数点演算器Info
- Publication number
- JPH0251732A JPH0251732A JP63201891A JP20189188A JPH0251732A JP H0251732 A JPH0251732 A JP H0251732A JP 63201891 A JP63201891 A JP 63201891A JP 20189188 A JP20189188 A JP 20189188A JP H0251732 A JPH0251732 A JP H0251732A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- data
- output
- division
- divisor
- 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.)
- Granted
Links
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概 要〕。
浮動小数点演算器、特に、浮動小数点表記法の数値につ
いて除算処理を行う技術に関し、収束法に基づき除数の
逆数を求める際に行う反復計算を高速化し、ひいては浮
動小数点除算の高速処理を実現することを目的とし、 浮動小数点表記法による2進の2つのデータに対して該
データの仮数部の乗算を行い、正規化処理を施して出力
する乗算回路と、該乗算回路から出力されたデータの各
ビットを反転させるビット反転回路と、該ビット反転回
路の出力と該乗算回路の出力のいずれか一方を制御信号
に応答して選択する回路と、該選択回路において前記乗
算回路の出力が選択された時は所定の丸めモード信号に
応答して該出力の丸め処理を行い、該選択回路において
前記ビット反転回路の出力が選択された時は前記制御信
号に応答して該出力の最下位ビットに1を加算し、それ
ぞれ得られた値に対し正規化処理を施して出力する加算
回路とを具備し、収束法に基づきA/Bの浮動小数点除
算を行う際に必要な2−BXi、ただし、Q<BX(≦
1 (i=0、l、・・・・・・)、Xoは除数の逆数
の初期値、X、は除数の逆数のi番目の近似値、の計算
を前記乗算回路、ビット反転回路および加算回路によっ
て行い、次いで該除数の逆数の近似値を指示するXi、
、 =Xi (2−BXi ) (7)計算ヲ該乗31
1回路によって行い、それぞれの計算を所定回数だけ繰
り返し実行して得られるX、。1のデータを被除数のデ
ータAと共に該乗算回路に印加することで前記A/Bの
除算を行うように構成する。
いて除算処理を行う技術に関し、収束法に基づき除数の
逆数を求める際に行う反復計算を高速化し、ひいては浮
動小数点除算の高速処理を実現することを目的とし、 浮動小数点表記法による2進の2つのデータに対して該
データの仮数部の乗算を行い、正規化処理を施して出力
する乗算回路と、該乗算回路から出力されたデータの各
ビットを反転させるビット反転回路と、該ビット反転回
路の出力と該乗算回路の出力のいずれか一方を制御信号
に応答して選択する回路と、該選択回路において前記乗
算回路の出力が選択された時は所定の丸めモード信号に
応答して該出力の丸め処理を行い、該選択回路において
前記ビット反転回路の出力が選択された時は前記制御信
号に応答して該出力の最下位ビットに1を加算し、それ
ぞれ得られた値に対し正規化処理を施して出力する加算
回路とを具備し、収束法に基づきA/Bの浮動小数点除
算を行う際に必要な2−BXi、ただし、Q<BX(≦
1 (i=0、l、・・・・・・)、Xoは除数の逆数
の初期値、X、は除数の逆数のi番目の近似値、の計算
を前記乗算回路、ビット反転回路および加算回路によっ
て行い、次いで該除数の逆数の近似値を指示するXi、
、 =Xi (2−BXi ) (7)計算ヲ該乗31
1回路によって行い、それぞれの計算を所定回数だけ繰
り返し実行して得られるX、。1のデータを被除数のデ
ータAと共に該乗算回路に印加することで前記A/Bの
除算を行うように構成する。
本発明は、浮動小数点演算器に関し、特に、浮動小数点
表記法の数値について除算処理を行う技術に関する。
表記法の数値について除算処理を行う技術に関する。
浮動小数点演算は、整数演算と比べ、ダイナミック・レ
ンジが広くかつ精度も高い。そのため、最近では各種の
高度な演算要求に沿うようなものが求められる傾向にあ
り、中でも、除算に関する高速処理が重要になってきて
いる。
ンジが広くかつ精度も高い。そのため、最近では各種の
高度な演算要求に沿うようなものが求められる傾向にあ
り、中でも、除算に関する高速処理が重要になってきて
いる。
[従来の技術〕
従来の除算の方式は、浮動小数点に限らず、大別して2
つの方法、すなわち■減算とシフト演算を用いる方法、
■ニュートン・ラプソン法等の収束法を用いる方法、に
分けられる。■の方法は、シフト操作を行った除数を被
除数から繰り返して滅じていく方法であり、その−例と
して、引き離し法が知られている。また、この引き離し
法を改良した方法としてSRT法が知られているが、こ
れは、より高速に商を得ることができるという利点を有
している。一方、“■の方法は、除数の逆数を収束法に
基づく計算によって求め、それに被除数を乗じることに
よって商を得るものである。この場合、収束までに要す
る繰り返し演算回数は、逆数の初期値が真の値に近いほ
ど少なくなる。
つの方法、すなわち■減算とシフト演算を用いる方法、
■ニュートン・ラプソン法等の収束法を用いる方法、に
分けられる。■の方法は、シフト操作を行った除数を被
除数から繰り返して滅じていく方法であり、その−例と
して、引き離し法が知られている。また、この引き離し
法を改良した方法としてSRT法が知られているが、こ
れは、より高速に商を得ることができるという利点を有
している。一方、“■の方法は、除数の逆数を収束法に
基づく計算によって求め、それに被除数を乗じることに
よって商を得るものである。この場合、収束までに要す
る繰り返し演算回数は、逆数の初期値が真の値に近いほ
ど少なくなる。
現在発表されている浮動小数点演算器では、ニュートン
・ラブラン法を用いて除算を行っているものが多い。こ
れは以下の理由による。高基数のSRT法でも1回の繰
り返しで求まる商は高々3〜4ビツトであり、最終的な
商を得るには、IEEE規格の単精度で8回程度の繰り
返し計算を必要とする。これに対しニュートン・ラプソ
ン法では、逆数の初期値をある精度内で与えれば、3〜
4回程度の収束計算で商が求まる。従って、ニュートン
・ラプソン法を用いた除算によれば、他の方法に比して
高速に商が得られるという利点がある。
・ラブラン法を用いて除算を行っているものが多い。こ
れは以下の理由による。高基数のSRT法でも1回の繰
り返しで求まる商は高々3〜4ビツトであり、最終的な
商を得るには、IEEE規格の単精度で8回程度の繰り
返し計算を必要とする。これに対しニュートン・ラプソ
ン法では、逆数の初期値をある精度内で与えれば、3〜
4回程度の収束計算で商が求まる。従って、ニュートン
・ラプソン法を用いた除算によれば、他の方法に比して
高速に商が得られるという利点がある。
以下、ニュートン・ラブラン法を用いた除算について説
明する。
明する。
除算を実行するにはまず逆数関数を求める。例えば、C
=A/Bという除算は、C=A (1/B)という逆数
の形で表現できるヶニュートン・ラプソン法を使って逆
数関数(1/B)の反復表現を得ることができる。これ
は、 X 8.、 =X 五 (2−BXi )
、ただし、i=0、■、2、・・・・・・、と表される
。ここで、X、はi=0に対する最初の除数の逆数(初
期値)、X、は(1/B)のi番目の近似値を表し、初
期値X0が不等式%式% の条件を満たす時、演算は終了する。初期値を得る代表
的な方法は、除数の上位10ビット程度をルック・アッ
プ・テーブル等のメモリ(ROM)のポインタとして使
用するというものである。
=A/Bという除算は、C=A (1/B)という逆数
の形で表現できるヶニュートン・ラプソン法を使って逆
数関数(1/B)の反復表現を得ることができる。これ
は、 X 8.、 =X 五 (2−BXi )
、ただし、i=0、■、2、・・・・・・、と表される
。ここで、X、はi=0に対する最初の除数の逆数(初
期値)、X、は(1/B)のi番目の近似値を表し、初
期値X0が不等式%式% の条件を満たす時、演算は終了する。初期値を得る代表
的な方法は、除数の上位10ビット程度をルック・アッ
プ・テーブル等のメモリ(ROM)のポインタとして使
用するというものである。
ROMからは、除数のビットが指示するアドレスの内容
が初期値として出力される。この場合、出カビット数(
初期値X0のビット数)は入力ビツト数(除数の上位1
0ビット程度)とほぼ同じである場合が普通である。浮
動小数点の除算の場合、指数部と仮数部の逆数は別々の
ルック・アップ・テーブル(ROM)から求められる。
が初期値として出力される。この場合、出カビット数(
初期値X0のビット数)は入力ビツト数(除数の上位1
0ビット程度)とほぼ同じである場合が普通である。浮
動小数点の除算の場合、指数部と仮数部の逆数は別々の
ルック・アップ・テーブル(ROM)から求められる。
次に、第3図を参照しながら従来形の除算について説明
する。第3図は従来形の一例としての浮動小数点演算器
の構成を示すもので、図示の例では、正規化数のみを扱
う浮動小数点乗算器の構成が示されている。
する。第3図は従来形の一例としての浮動小数点演算器
の構成を示すもので、図示の例では、正規化数のみを扱
う浮動小数点乗算器の構成が示されている。
まず、浮動小数点表記法による2進の2つのデータA、
Bを、 A=(−1)”2°−” (1,Fa)、B = (−
1) sb2 ”−” (x、Fb)、とし、該データ
について乗算を行う場合の処理について説明する。
Bを、 A=(−1)”2°−” (1,Fa)、B = (−
1) sb2 ”−” (x、Fb)、とし、該データ
について乗算を行う場合の処理について説明する。
(仮数部の演X)
入力データA、Bのそれぞれの仮数部(1,Fa)、(
1,Fb)は、固定小数点乗算回路10を通して、(1
,Fa) X (1,Fb)の演算が実行される。この
結果は、1、 +nrxx・・・・・・、あるいはlx
、□□・・・・・・となる。
1,Fb)は、固定小数点乗算回路10を通して、(1
,Fa) X (1,Fb)の演算が実行される。この
結果は、1、 +nrxx・・・・・・、あるいはlx
、□□・・・・・・となる。
1、XX□・・・・・・の場合は既に正規化されている
が、LX、 XXXX・・・・・・の場合には正規化処
理が必要である。
が、LX、 XXXX・・・・・・の場合には正規化処
理が必要である。
これは、データ(lx、□。・・・・・・)をシフタ1
3によって1ビツト右方向にシフトすると共に、オーバ
ーフロー指示信号F、に応答してインクリメンタ22が
指数部を+1増加することにより、実現される。
3によって1ビツト右方向にシフトすると共に、オーバ
ーフロー指示信号F、に応答してインクリメンタ22が
指数部を+1増加することにより、実現される。
次いで、正規化された数値に対し、出力データ形式に合
わせるための「丸め」処理が行われる。具体的には、丸
め処理制御回路14において、出力データ形式における
最下位ピッ) (LSB)以下の桁が切り捨てられると
共に、予め設定された丸めモード信号RMとLSB以下
の桁の値とに応じてLSBに1を加算するか否かが決定
される。このLSBに1を加算する演算はインクリメン
タ15によって実行される。この時、データが全部r1
゜であれば、オーバーフローが発生する。この場合は、
シフタ16がオーバーフロー指示信号F2に応答してデ
ータ(LSB +1)を1ビツト右方向にシフトする。
わせるための「丸め」処理が行われる。具体的には、丸
め処理制御回路14において、出力データ形式における
最下位ピッ) (LSB)以下の桁が切り捨てられると
共に、予め設定された丸めモード信号RMとLSB以下
の桁の値とに応じてLSBに1を加算するか否かが決定
される。このLSBに1を加算する演算はインクリメン
タ15によって実行される。この時、データが全部r1
゜であれば、オーバーフローが発生する。この場合は、
シフタ16がオーバーフロー指示信号F2に応答してデ
ータ(LSB +1)を1ビツト右方向にシフトする。
これによって、最終的な出力は正規化数となる。
(指数部の演算)
1段目の加算器20では(Ea+Eb)の演算が実行さ
れ、2段目の加算器21ではその結果に負数のバイアス
(−BS)が加算される。つまり、この2つの加算器に
よって(Ea + Eb −BS)の演算が実行される
。次に、3段目のインクリメンタ22では、正規化処理
によるオーバーフローの補正が必要な時+1のインクリ
メント演算が行われる。さらに4段目のインクリメンタ
23では、丸め処理によるオーバーフローの補正のため
に+1のインクリメント演算が前もって行われ、オーバ
ーフロー信号F2に基づきマルチプレクサ24において
いずれか一方の信号が選択される。
れ、2段目の加算器21ではその結果に負数のバイアス
(−BS)が加算される。つまり、この2つの加算器に
よって(Ea + Eb −BS)の演算が実行される
。次に、3段目のインクリメンタ22では、正規化処理
によるオーバーフローの補正が必要な時+1のインクリ
メント演算が行われる。さらに4段目のインクリメンタ
23では、丸め処理によるオーバーフローの補正のため
に+1のインクリメント演算が前もって行われ、オーバ
ーフロー信号F2に基づきマルチプレクサ24において
いずれか一方の信号が選択される。
(符号部の演算)
入力データA、Bのそれぞれの符号部Sa、 Sbに対
して排他的論理和ゲート30が行う排他的論理和によっ
て実行される。
して排他的論理和ゲート30が行う排他的論理和によっ
て実行される。
上述した従来形の浮動小数点乗算器を用いて除算処理を
行う場合、収束法に基づく除算に必要な2−BX、の2
進計算を1ステツプで実行することはできない。つまり
第3図の構成によれば、収束法に基づき除数の逆数を求
める際に行う反復計算、すなわちXl。、=Xi (2
−BXi )の計算を行うためには、乗算iBX、と、
?:fji算;2−BX、と、乗算; Xr (28X
; ) (7)3つ(7)算術演算を必要とし、そのた
め、全体の演算処理時間が長(なって、高速化要求に沿
い難いという不都合が生じる。
行う場合、収束法に基づく除算に必要な2−BX、の2
進計算を1ステツプで実行することはできない。つまり
第3図の構成によれば、収束法に基づき除数の逆数を求
める際に行う反復計算、すなわちXl。、=Xi (2
−BXi )の計算を行うためには、乗算iBX、と、
?:fji算;2−BX、と、乗算; Xr (28X
; ) (7)3つ(7)算術演算を必要とし、そのた
め、全体の演算処理時間が長(なって、高速化要求に沿
い難いという不都合が生じる。
また、(2−BX、)の減算については2.第3図の回
路構成のみではその演算を行うことはできず、これを行
うためには、第3図の構成に加減算回路を新たに追加す
る必要がある。仮に、そのような回路を追加して上述の
Xi、、 =Xi (2−BX、)の計算を行うにして
も、依然として、3つの算術演算を繰り返し実行しなけ
ればならず、浮動小数点除算の高速処理という観点から
、改善の余地が残されている。
路構成のみではその演算を行うことはできず、これを行
うためには、第3図の構成に加減算回路を新たに追加す
る必要がある。仮に、そのような回路を追加して上述の
Xi、、 =Xi (2−BX、)の計算を行うにして
も、依然として、3つの算術演算を繰り返し実行しなけ
ればならず、浮動小数点除算の高速処理という観点から
、改善の余地が残されている。
本発明は、かかる従来技術における課題に鑑み創作され
たもので、収束法に基づき除数の逆数を求める際に行う
反復計算を高速化し、ひいては浮動小数点除算の高速処
理を実現することができる浮動小数点演算器を提供する
ことを目的としている。
たもので、収束法に基づき除数の逆数を求める際に行う
反復計算を高速化し、ひいては浮動小数点除算の高速処
理を実現することができる浮動小数点演算器を提供する
ことを目的としている。
〔課題を解決するための手段]
上述した従来技術における課題を解決するために、本発
明の浮動小数演算器は、第1図の原理ブロック図に示さ
れるように、浮動小数点表記法による2進の2つのデー
タに対して該データの仮数部の乗算を行い、正規化処理
を施して出力する乗算回路lと、該乗算回路から出力さ
れたデータの各ビットを反転させるビット反転回路2と
、該ビット反転回路の出力と該乗算回路の出力のいずれ
か一方を制御信号Sに応答して選択する回路3と、該選
択回路において前記乗算回路の出力が選択された時は所
定の丸めモード信号Rに応答して該出力の丸め処理を行
い、該選択回路において前記ビット反転回路の出力が選
択された時は前記制御信号に応答して該出力の最下位ビ
ットに1を加算し、それぞれ得られた値に対し正規化処
理を施して出力する加算回路4とを具備し、 収束法に基づきA/Bの浮動小数点除算を行う際に必要
な2−BXi、 ただし、0<BXi≦1(i=o、1、・・・・・・)
、Xoは除数の逆数の初期値、 X、は除数の逆数のi番目の近似値、 の計算を前記乗算回路、ビット反転回路および加算回路
によって行い、次いで該除数の逆数の近似値を指示する
X、。+ =Xi (2BX= )の計算を該乗算回路
によって行い、それぞれの計算を所定回数だけ繰り返し
実行して得られるX i * lのデータを被除数のデ
ータAと共に該乗算回路に印加することで前記A/Bの
除算を行うようにしたことを特徴とする。
明の浮動小数演算器は、第1図の原理ブロック図に示さ
れるように、浮動小数点表記法による2進の2つのデー
タに対して該データの仮数部の乗算を行い、正規化処理
を施して出力する乗算回路lと、該乗算回路から出力さ
れたデータの各ビットを反転させるビット反転回路2と
、該ビット反転回路の出力と該乗算回路の出力のいずれ
か一方を制御信号Sに応答して選択する回路3と、該選
択回路において前記乗算回路の出力が選択された時は所
定の丸めモード信号Rに応答して該出力の丸め処理を行
い、該選択回路において前記ビット反転回路の出力が選
択された時は前記制御信号に応答して該出力の最下位ビ
ットに1を加算し、それぞれ得られた値に対し正規化処
理を施して出力する加算回路4とを具備し、 収束法に基づきA/Bの浮動小数点除算を行う際に必要
な2−BXi、 ただし、0<BXi≦1(i=o、1、・・・・・・)
、Xoは除数の逆数の初期値、 X、は除数の逆数のi番目の近似値、 の計算を前記乗算回路、ビット反転回路および加算回路
によって行い、次いで該除数の逆数の近似値を指示する
X、。+ =Xi (2BX= )の計算を該乗算回路
によって行い、それぞれの計算を所定回数だけ繰り返し
実行して得られるX i * lのデータを被除数のデ
ータAと共に該乗算回路に印加することで前記A/Bの
除算を行うようにしたことを特徴とする。
[作 用〕
上述した構成によれば、2−BXi (ただし、0<
BXi≦1)の2進計算を改良された浮動小数点乗算器
を用いて1ステツプで実行するようにしている。
BXi≦1)の2進計算を改良された浮動小数点乗算器
を用いて1ステツプで実行するようにしている。
従って、収束法に基づき除数の逆数を求める際に行うX
、、、=Xi (2−BX、)(7)反復計算は、−回
の反復計算につき、2−BXiの演算およびXi (2
−BX、)の演算の2つの算術演算で済み、従来形に比
してlステップ分の演算を省略できる。これは、収束法
に基づき商を求めるために通常3〜4回程度の反復計算
を必要とすることを考慮すると、全体の演算処理時間を
大幅に短縮することに寄与する。従って、浮動小数点除
算を高速に処理することが可能となる。
、、、=Xi (2−BX、)(7)反復計算は、−回
の反復計算につき、2−BXiの演算およびXi (2
−BX、)の演算の2つの算術演算で済み、従来形に比
してlステップ分の演算を省略できる。これは、収束法
に基づき商を求めるために通常3〜4回程度の反復計算
を必要とすることを考慮すると、全体の演算処理時間を
大幅に短縮することに寄与する。従って、浮動小数点除
算を高速に処理することが可能となる。
なお、本発明の他の構成上の特徴および作用の詳細につ
いては、添付図面を参照しつつ以下に記述される実施例
を用いて説明する。
いては、添付図面を参照しつつ以下に記述される実施例
を用いて説明する。
(実施例〕
第2図には本発明の一実施例としての浮動小数点演算器
の主要部の構成が示される。同図の例示は、正規化数の
みを扱う改良された浮動小数点乗算器の構成を示してい
る。
の主要部の構成が示される。同図の例示は、正規化数の
みを扱う改良された浮動小数点乗算器の構成を示してい
る。
本実施例の構成上の特徴は、仮数部演算回路においてシ
フタ13とインクリメンタ15の間に、該シフトレジス
タから出力されたデータの各ビットを反転させるビット
反転回路41と、該ビット反転回路の出力と該シフトレ
ジスタの出力のいずれか一方を除算制御信号DIVに応
答して選択するマルチプレクサ42を設けたことである
。除算処理を行う場合には、除算制御信号DIVを゛H
ルベルにしてビット反転回路41の出力を選択するよう
にし、−方、通常の乗算処理を行う場合には、除算制御
信号oxvを#Lルベルにしてシフトレジスタ16の出
力を選択するようにしている。
フタ13とインクリメンタ15の間に、該シフトレジス
タから出力されたデータの各ビットを反転させるビット
反転回路41と、該ビット反転回路の出力と該シフトレ
ジスタの出力のいずれか一方を除算制御信号DIVに応
答して選択するマルチプレクサ42を設けたことである
。除算処理を行う場合には、除算制御信号DIVを゛H
ルベルにしてビット反転回路41の出力を選択するよう
にし、−方、通常の乗算処理を行う場合には、除算制御
信号oxvを#Lルベルにしてシフトレジスタ16の出
力を選択するようにしている。
今仮に、浮動小数点表記法による2進の2つの入力デー
タD1、D2を、 D+= (1) ”2”−83(1,Fa)、Dt=
(1) ”2Eト” (1,Fb)、と表す。
タD1、D2を、 D+= (1) ”2”−83(1,Fa)、Dt=
(1) ”2Eト” (1,Fb)、と表す。
まず仮数部演算回路において、10は2つの人力データ
D1、Dtに対し該データのそれぞれの仮数部(1,F
a)、(1,Fb)を固定小数点として乗算処理する固
定小数点乗算回路を示し、該回路は、部分積生成および
加算回路11および加算回路12から構成されている。
D1、Dtに対し該データのそれぞれの仮数部(1,F
a)、(1,Fb)を固定小数点として乗算処理する固
定小数点乗算回路を示し、該回路は、部分積生成および
加算回路11および加算回路12から構成されている。
13はシフタであって、加算回路12から出力されたデ
ータに対して1ビツト右方向(最下位ビット側)にシフ
トしたデータを内部で生成し、この生成されたデータと
加算回路工2から出力されたデータのいずれか一方を、
該回路12により生成されるオーバーフロー指示信号F
1の存無に応答して選択する機能を有している。本実施
例では、オーバーフロー指示信号F、が出力された時に
、シフト処理されたデータが選択出力されるようになっ
ている。
ータに対して1ビツト右方向(最下位ビット側)にシフ
トしたデータを内部で生成し、この生成されたデータと
加算回路工2から出力されたデータのいずれか一方を、
該回路12により生成されるオーバーフロー指示信号F
1の存無に応答して選択する機能を有している。本実施
例では、オーバーフロー指示信号F、が出力された時に
、シフト処理されたデータが選択出力されるようになっ
ている。
14は丸め処理制御回路であって、通常の乗算処理を行
う場合に機能する回路である。この丸め処理制御回路1
4は、符号のデータSN (後述)と予め設定された丸
めモード信号RMに応じて、シフタ13の出力データに
対し出力データ形式におけるLSB以下の桁を切り捨て
ると共に(丸め処理)、該LSBに1を加算するか否か
を決定してその旨を指示する制御信号RCを出力する機
能を有している。
う場合に機能する回路である。この丸め処理制御回路1
4は、符号のデータSN (後述)と予め設定された丸
めモード信号RMに応じて、シフタ13の出力データに
対し出力データ形式におけるLSB以下の桁を切り捨て
ると共に(丸め処理)、該LSBに1を加算するか否か
を決定してその旨を指示する制御信号RCを出力する機
能を有している。
15はインクリメンタであって、■通常の乗算処理を行
っている場合には、丸め処理制御回路I4からの制御信
号RCに応答してマルチプレクサ42の出力データ(シ
フタ13の出力データ)のLSBにJを加算し、■除算
処理を行っている場合には、除算制御信号DIνに応答
してマルチプレクサ42の出力データ(ビット反転回路
41の出力データ)のLSBに1を加算する機能を有し
ている。この場合、インクリメンタ15は、加算された
結果のデータが正規化されていない時は、レジスタ15
と同様にオーバーフロー指示信号F2を出力する。
っている場合には、丸め処理制御回路I4からの制御信
号RCに応答してマルチプレクサ42の出力データ(シ
フタ13の出力データ)のLSBにJを加算し、■除算
処理を行っている場合には、除算制御信号DIνに応答
してマルチプレクサ42の出力データ(ビット反転回路
41の出力データ)のLSBに1を加算する機能を有し
ている。この場合、インクリメンタ15は、加算された
結果のデータが正規化されていない時は、レジスタ15
と同様にオーバーフロー指示信号F2を出力する。
16はシフタであって、シフタ13と同様、インクリメ
ンタ15から出力されたデータに対し、オーバーフロー
指示信号F2が出力された時は該データを1ビツト右方
向(最下位ビット側)にシフトして出力し、該信号F2
が出力されていない時はシフト処理を行わないでそのま
ま出力する機能を有している。この場合、出力されたデ
ータは、出力データD、の仮数部を構成する。
ンタ15から出力されたデータに対し、オーバーフロー
指示信号F2が出力された時は該データを1ビツト右方
向(最下位ビット側)にシフトして出力し、該信号F2
が出力されていない時はシフト処理を行わないでそのま
ま出力する機能を有している。この場合、出力されたデ
ータは、出力データD、の仮数部を構成する。
次に指数部演算回路を参照すると、20は人力データD
1、D2のそれぞれの指数部のデータEa、 Ebを加
算する加算器、21は加算器20の出力データ、すなわ
ち仮の指数(Ea 十Eb) 、に所定の負数のバイア
ス−BSを加算する加算器、22は加算器21の出力デ
ータ、すなわち真の指数(Ea +Eb−BS) 、に
オーバーフロー指示信号F1の“1′のデータを加算す
るインクリメンタ、23は丸め処理によるオーバーフロ
ー補正のための“1”のデータをインクリメンタ22の
出力データに加算するインクリメンタ、24はインクリ
メンタ22および23の出力のいずれか一方をオーバー
フロー指示信号P!に応答して選択するマルチプレクサ
、をそれぞれ示す。この場合、マルチプレクサ24は、
オーバーフロー指示信号F2が出力された時はインクリ
メンタ23の出力を選択し、オーバーフロー指示信号F
2が出力されていない時はインクリメンタ22の出力を
選択する。この選択されたデータは、出力データD3の
指数部を構成する。
1、D2のそれぞれの指数部のデータEa、 Ebを加
算する加算器、21は加算器20の出力データ、すなわ
ち仮の指数(Ea 十Eb) 、に所定の負数のバイア
ス−BSを加算する加算器、22は加算器21の出力デ
ータ、すなわち真の指数(Ea +Eb−BS) 、に
オーバーフロー指示信号F1の“1′のデータを加算す
るインクリメンタ、23は丸め処理によるオーバーフロ
ー補正のための“1”のデータをインクリメンタ22の
出力データに加算するインクリメンタ、24はインクリ
メンタ22および23の出力のいずれか一方をオーバー
フロー指示信号P!に応答して選択するマルチプレクサ
、をそれぞれ示す。この場合、マルチプレクサ24は、
オーバーフロー指示信号F2が出力された時はインクリ
メンタ23の出力を選択し、オーバーフロー指示信号F
2が出力されていない時はインクリメンタ22の出力を
選択する。この選択されたデータは、出力データD3の
指数部を構成する。
符号部演算回路は排他的論理和ゲート30によって構成
され、該ゲートは、入力データD5、D2のそれぞれの
符号部のデータSa、 Sbに応答して符号のデータS
Nを出力する。この符号のデータSNは、人力データD
3、D2が共に同符号の時は“0”となって「正」を指
示し、逆に異符号の時は“l”となって「負」を指示す
る。この符号のデータは、前述の丸め処理制御回路14
に供給されると共に、出力データD、の符号部を構成す
る。
され、該ゲートは、入力データD5、D2のそれぞれの
符号部のデータSa、 Sbに応答して符号のデータS
Nを出力する。この符号のデータSNは、人力データD
3、D2が共に同符号の時は“0”となって「正」を指
示し、逆に異符号の時は“l”となって「負」を指示す
る。この符号のデータは、前述の丸め処理制御回路14
に供給されると共に、出力データD、の符号部を構成す
る。
次に、第2図の浮動小数点演算器による除算処理につい
て説明する。なお、指数部および符号部の演算について
は従来形(第3図参照)と同様であるので、ここでは仮
数部の演算についてのみ説明する。
て説明する。なお、指数部および符号部の演算について
は従来形(第3図参照)と同様であるので、ここでは仮
数部の演算についてのみ説明する。
I EEE規格の浮動小数点データ・フォーマットのう
ち、正規化数の除算(C=A/B)を考える。すなわち
、 C=A/B=A (1/B) 、 ただし、A、B、Cはすべて正規化数、とすると、逆数
関数1/Bの(i+1)番目の近似値X 、* Iは、 Xi、、=Xi (2−BX、)、 ただし、O<X、<2/B (Boo)、0>Xo
>2/B (B<O)、 と表される。
ち、正規化数の除算(C=A/B)を考える。すなわち
、 C=A/B=A (1/B) 、 ただし、A、B、Cはすべて正規化数、とすると、逆数
関数1/Bの(i+1)番目の近似値X 、* Iは、 Xi、、=Xi (2−BX、)、 ただし、O<X、<2/B (Boo)、0>Xo
>2/B (B<O)、 と表される。
ここで、初期値X0をルック・アップ・テーブル等のメ
モリ(図示せず)により、 0〈X0≦1/B の範囲に設定すると、 Q<BXo≦11 、.■≦2−BX、<2、 となり、2−BX、も正規化数になる。従って、−1に
2−BX、も正規化数になる。
モリ(図示せず)により、 0〈X0≦1/B の範囲に設定すると、 Q<BXo≦11 、.■≦2−BX、<2、 となり、2−BX、も正規化数になる。従って、−1に
2−BX、も正規化数になる。
次に、2−BXi (0<BXi≦1)の計算を考え
る。0<BXi≦1より、BX、のビット反転を■7と
すると、 2−BXi−IJ双、 +LSB(1)、ただし、L
SB(1)はLSB+1を意味する、と変換できる。
る。0<BXi≦1より、BX、のビット反転を■7と
すると、 2−BXi−IJ双、 +LSB(1)、ただし、L
SB(1)はLSB+1を意味する、と変換できる。
具体的には、まず、指数部演算回路および符号部演算回
路をディセーブルにした状態で、除数Bのデータと該除
数の逆数の初期値X0のデータを入力データD0、Dt
として乗算回路IOに印加し、かつ、除算制御信号
Drνを“H″レベルする。乗算回路lOの出力BX、
はシフタ13を介してピッ1、反転回路4Iに入力され
、そこで各ビットが反転され(TfY; ) 、さらに
マルチプレクサ42で選択されてインクリメンタ15に
入力される。インクリメンタ15は、゛H″レベルの除
算制御信号DIVに応答して入力データ(丁肩)のLS
Bに1を加算する。この加算されたデータ(−BXl+
LSB(1))、すなわち2−BXi、はシフタ16を
通して正規化されデータD、として出力される(ステッ
プl)9次いで、出力されたデータ(2−BX、)を初
期値x0のデータと共に入力データD1、D2として乗
算回路10に印加し、かつ、除算制御信号1)IVを“
L″レベルする。乗算回路10の出力X、(2−BXo
)はシフタ13を介し、さらにマルチプレクサ42で選
択されてインクリメンタ15に入力される。
路をディセーブルにした状態で、除数Bのデータと該除
数の逆数の初期値X0のデータを入力データD0、Dt
として乗算回路IOに印加し、かつ、除算制御信号
Drνを“H″レベルする。乗算回路lOの出力BX、
はシフタ13を介してピッ1、反転回路4Iに入力され
、そこで各ビットが反転され(TfY; ) 、さらに
マルチプレクサ42で選択されてインクリメンタ15に
入力される。インクリメンタ15は、゛H″レベルの除
算制御信号DIVに応答して入力データ(丁肩)のLS
Bに1を加算する。この加算されたデータ(−BXl+
LSB(1))、すなわち2−BXi、はシフタ16を
通して正規化されデータD、として出力される(ステッ
プl)9次いで、出力されたデータ(2−BX、)を初
期値x0のデータと共に入力データD1、D2として乗
算回路10に印加し、かつ、除算制御信号1)IVを“
L″レベルする。乗算回路10の出力X、(2−BXo
)はシフタ13を介し、さらにマルチプレクサ42で選
択されてインクリメンタ15に入力される。
この場合、インクリメンタ15は、丸め処理制御回路1
4からの制御信号RCに基づいて丸め処理を実行する。
4からの制御信号RCに基づいて丸め処理を実行する。
同様に、インクリメンタ15の出力データはシック16
を通して正規化され、データD3として出力される(ス
テップ2)。
を通して正規化され、データD3として出力される(ス
テップ2)。
以降、上述のステップ1およびステップ2を3〜4回繰
り返し実行し、その結果得られたデータXi+l、すな
わち1/Bの(i+1)番目の近似値データ、を被除数
のデータAと共に人力データD1.0□として乗算回路
lOに印加する。この時、除算制御信号DIVを“L″
レベルし、かつ、指数部演算回路および符号部演算回路
をイネーブル状態にする。これによって、A/Bの浮動
小数点除算に基づく結果がデータD、として出力される
。
り返し実行し、その結果得られたデータXi+l、すな
わち1/Bの(i+1)番目の近似値データ、を被除数
のデータAと共に人力データD1.0□として乗算回路
lOに印加する。この時、除算制御信号DIVを“L″
レベルし、かつ、指数部演算回路および符号部演算回路
をイネーブル状態にする。これによって、A/Bの浮動
小数点除算に基づく結果がデータD、として出力される
。
このように、ニュートン・ラプソン法を用いた除算に必
要な2−BX、(0<BXi≦1)の計算を、BX、の
ビットの反転1双1のLSBに1を加算することにより
lステップで実行できる。
要な2−BX、(0<BXi≦1)の計算を、BX、の
ビットの反転1双1のLSBに1を加算することにより
lステップで実行できる。
従って、除数の逆数(1/B)を求める際に行うX、、
、=X、(2−BXi ”)の反復計算は、−回の反復
計算について、2−BX、の演算と、X。
、=X、(2−BXi ”)の反復計算は、−回の反復
計算について、2−BX、の演算と、X。
(2−BX、)の演算の2つのステップで済む。
つまり、従来形(3つのステップ)に比してlステップ
分の演算を省略できる。しかも、反復計算は3〜4回繰
り返し実行されるので、浮動小数点除算に要する全体の
演算処理時間は従来形に比して大幅に短縮される。
分の演算を省略できる。しかも、反復計算は3〜4回繰
り返し実行されるので、浮動小数点除算に要する全体の
演算処理時間は従来形に比して大幅に短縮される。
以上説明したように本発明によれば、浮動小数点乗算器
の簡単な改良のみで、収束法に基づく除数に必要な2−
BX、(0<BXi≦1)の計算を比較的短時間で行う
ことができるので、従来形に比して簡単な方法でありな
がら、浮動小数点除算の高速処理を実現することができ
る。
の簡単な改良のみで、収束法に基づく除数に必要な2−
BX、(0<BXi≦1)の計算を比較的短時間で行う
ことができるので、従来形に比して簡単な方法でありな
がら、浮動小数点除算の高速処理を実現することができ
る。
第1図は本発明による浮動小数点演算器の原理ブロック
図、 第2図は本発明の一実施例としての浮動小数点演算器の
主要部の構成を示すブロック図、第3図は従来形の一例
としての浮動小数点演算器の構成を示すブロック図、 である。 (符号の説明) ■・・・乗算回路、 2・・・ビット反転回路、
3・・・選択回路、 4・・・加算回路、A・・
・被除数、 B・・・除数、S・・・制御信号
、 R・・・丸めモード信号、Xo・・・除数
の逆数の初期値、 X、・・・除数の逆数のi番目の近似値。 第 図
図、 第2図は本発明の一実施例としての浮動小数点演算器の
主要部の構成を示すブロック図、第3図は従来形の一例
としての浮動小数点演算器の構成を示すブロック図、 である。 (符号の説明) ■・・・乗算回路、 2・・・ビット反転回路、
3・・・選択回路、 4・・・加算回路、A・・
・被除数、 B・・・除数、S・・・制御信号
、 R・・・丸めモード信号、Xo・・・除数
の逆数の初期値、 X、・・・除数の逆数のi番目の近似値。 第 図
Claims (1)
- 【特許請求の範囲】 浮動小数点表記法による2進の2つのデータに対して該
データの仮数部の乗算を行い、正規化処理を施して出力
する乗算回路(1)と、 該乗算回路から出力されたデータの各ビットを反転させ
るビット反転回路(2)と、 該ビット反転回路の出力と該乗算回路の出力のいずれか
一方を制御信号(S)に応答して選択する回路(3)と
、 該選択回路において前記乗算回路の出力が選択された時
は所定の丸めモード信号(R)に応答して該出力の丸め
処理を行い、該選択回路において前記ビット反転回路の
出力が選択された時は前記制御信号に応答して該出力の
最下位ビットに1を加算し、それぞれ得られた値に対し
正規化処理を施して出力する加算回路(4)とを具備し
、 収束法に基づきA/Bの浮動小数点除算を行う際に必要
な2−BX_i、 ただし、0<BX_i≦1(i=0、1、……)、X_
oは除数の逆数の初期値、 X_iは除数の逆数のi番目の近似値、 の計算を前記乗算回路、ビット反転回路および加算回路
によって行い、次いで該除数の逆数の近似値を指示する
X_i_+_1=X_i(2−BX_i)の計算を該乗
算回路によって行い、それぞれの計算を所定回数だけ繰
り返し実行して得られるX_i_+_1のデータを被除
数のデータAと共に該乗算回路に印加することで前記A
/Bの除算を行うようにしたことを特徴とする浮動小数
点演算器。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63201891A JP2578482B2 (ja) | 1988-08-15 | 1988-08-15 | 浮動小数点演算器 |
| US07/374,299 US4999801A (en) | 1988-07-15 | 1989-06-30 | Floating point operation unit in division and square root operations |
| EP89307180A EP0351242B1 (en) | 1988-07-15 | 1989-07-14 | Floating point arithmetic units |
| KR1019890010030A KR920005226B1 (ko) | 1988-07-15 | 1989-07-14 | 부동 소수점 연산장치 |
| DE68929114T DE68929114T2 (de) | 1988-07-15 | 1989-07-14 | Gleitkomma-arithmetische Einheiten |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63201891A JP2578482B2 (ja) | 1988-08-15 | 1988-08-15 | 浮動小数点演算器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0251732A true JPH0251732A (ja) | 1990-02-21 |
| JP2578482B2 JP2578482B2 (ja) | 1997-02-05 |
Family
ID=16448542
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63201891A Expired - Fee Related JP2578482B2 (ja) | 1988-07-15 | 1988-08-15 | 浮動小数点演算器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2578482B2 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100429195B1 (ko) * | 2000-03-16 | 2004-04-28 | 엘지전자 주식회사 | 근사값을 이용한 나누기 방법 |
| KR100480724B1 (ko) * | 2002-10-31 | 2005-04-07 | 엘지전자 주식회사 | 가변 스텝사이즈 적응형 역수기 |
| KR100528269B1 (ko) * | 1996-07-25 | 2006-02-01 | 프리스케일 세미컨덕터, 인크. | 부동소수점하드웨어를사용하여마이크로프로세서정수나눗셈연산들을실행하기위한방법및장치 |
| US9851947B2 (en) | 2014-09-19 | 2017-12-26 | Sanken Electric Co., Ltd. | Arithmetic processing method and arithmetic processor having improved fixed-point error |
-
1988
- 1988-08-15 JP JP63201891A patent/JP2578482B2/ja not_active Expired - Fee Related
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100528269B1 (ko) * | 1996-07-25 | 2006-02-01 | 프리스케일 세미컨덕터, 인크. | 부동소수점하드웨어를사용하여마이크로프로세서정수나눗셈연산들을실행하기위한방법및장치 |
| KR100429195B1 (ko) * | 2000-03-16 | 2004-04-28 | 엘지전자 주식회사 | 근사값을 이용한 나누기 방법 |
| KR100480724B1 (ko) * | 2002-10-31 | 2005-04-07 | 엘지전자 주식회사 | 가변 스텝사이즈 적응형 역수기 |
| US9851947B2 (en) | 2014-09-19 | 2017-12-26 | Sanken Electric Co., Ltd. | Arithmetic processing method and arithmetic processor having improved fixed-point error |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2578482B2 (ja) | 1997-02-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0351242B1 (en) | Floating point arithmetic units | |
| US6763368B2 (en) | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic | |
| JPH02196328A (ja) | 浮動小数点演算装置 | |
| US5157624A (en) | Machine method to perform newton iterations for reciprocal square roots | |
| GB2294565A (en) | Floating point arithmetic unit | |
| JPH04290122A (ja) | 数値表現変換装置 | |
| US5260889A (en) | Computation of sticky-bit in parallel with partial products in a floating point multiplier unit | |
| JP3436994B2 (ja) | シフト装置 | |
| JP2511527B2 (ja) | 浮動小数点演算器 | |
| JPH0251732A (ja) | 浮動小数点演算器 | |
| JP2645422B2 (ja) | 浮動小数点演算処理装置 | |
| JPH08504046A (ja) | 浮動小数点2進数を2進形式における対数に変換しまたはその逆変換をするための装置 | |
| JPH0831024B2 (ja) | 演算プロセッサ | |
| KR20010067226A (ko) | 인터폴레이션 방법 및 장치 | |
| JP2951685B2 (ja) | 固定小数点演算器 | |
| JPH0667852A (ja) | 除算器 | |
| JPH0285922A (ja) | 演算回路 | |
| JP2518532B2 (ja) | 減算シフト型除算器 | |
| JP3100868B2 (ja) | 浮動小数点数のための算術演算装置 | |
| JPH0383126A (ja) | 浮動小数点乗算器 | |
| JPS59140560A (ja) | 浮動小数点乗算器 | |
| JPS63254525A (ja) | 除算装置 | |
| JPH1185471A (ja) | 演算方法および演算装置 | |
| JPS6175431A (ja) | 演算装置 | |
| JPH04160533A (ja) | マイクロ・プロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |