JPH02227726A - 制御方法 - Google Patents
制御方法Info
- Publication number
- JPH02227726A JPH02227726A JP2003659A JP365990A JPH02227726A JP H02227726 A JPH02227726 A JP H02227726A JP 2003659 A JP2003659 A JP 2003659A JP 365990 A JP365990 A JP 365990A JP H02227726 A JPH02227726 A JP H02227726A
- Authority
- JP
- Japan
- Prior art keywords
- estimate
- quotient
- reciprocal
- current
- calculating
- 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
- 238000000034 method Methods 0.000 title claims description 41
- 238000012545 processing Methods 0.000 abstract description 5
- 230000007246 mechanism Effects 0.000 description 8
- 238000007792 addition Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 2
- 206010017577 Gait disturbance Diseases 0.000 description 1
- 241000282320 Panthera leo Species 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5351—Multiplicative non-restoring division, e.g. SRT, using multiplication in quotient selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5355—Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5356—Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
-
- 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/487—Multiplying; Dividing
- G06F7/4873—Dividing
-
- 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
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明はデータ処理システム及び浮動小数点数演算の実
行に関し、さらに詳しくは、浮動小数点数除算を実行す
るデータ処理システムに関する。
行に関し、さらに詳しくは、浮動小数点数除算を実行す
るデータ処理システムに関する。
B、従来の技術
従来、浮動小数点数除算は、まず除数の逆数の推定値を
発生させることにより、コンピュータで商を計算するこ
とを含んでいた。逆数を詳細にして、すなわち仮数の精
度を上げ、最後に、被除数を掛けて商を得る。この方法
はしばしば、あらゆるケースの除算で、正しい仮数の最
終ビットを得るという点で問題があった。
発生させることにより、コンピュータで商を計算するこ
とを含んでいた。逆数を詳細にして、すなわち仮数の精
度を上げ、最後に、被除数を掛けて商を得る。この方法
はしばしば、あらゆるケースの除算で、正しい仮数の最
終ビットを得るという点で問題があった。
過去にこの方法を使用していたコンピュータは、必ずし
も期待された結果をもたらさないことで評判が悪く、こ
れらの偏差は、正確な商を期待する場合に最も障害にな
るものであったが、前段で説明した種類の方式を使用し
たハードウェアでは、最終ビットがときどき誤ったもの
になった。
も期待された結果をもたらさないことで評判が悪く、こ
れらの偏差は、正確な商を期待する場合に最も障害にな
るものであったが、前段で説明した種類の方式を使用し
たハードウェアでは、最終ビットがときどき誤ったもの
になった。
米電気電子学会により、浮動小数点数演算のだめの正し
い結果を記述する規格が制定された。この規格は、「米
国規格−IEEE 2進浮動小数点数演算規格(An
American National 5tandar
dIEEE 5tanclard For Binar
y Floating−PointArithmeti
c) J N ANS I/ I EEE S t
d。
い結果を記述する規格が制定された。この規格は、「米
国規格−IEEE 2進浮動小数点数演算規格(An
American National 5tandar
dIEEE 5tanclard For Binar
y Floating−PointArithmeti
c) J N ANS I/ I EEE S t
d。
754−1985と呼ばれ、引用により本明細書に編入
する。I EEE浮動小数点規格に準拠しようとするコ
ンピュータは、すべての場合に正しい結果を得なければ
ならない。
する。I EEE浮動小数点規格に準拠しようとするコ
ンピュータは、すべての場合に正しい結果を得なければ
ならない。
浮動小数点数除算を実行するだめの技法を示す特許がい
くつかある。米国特許第4442492号は、浮動小数
点仮数の適当なビットに丸めビットを挿入するための技
法を含むデータ処理システムを開示している。米国特許
第4413326号は、各々それ自体の制御用読取り専
用メモリを備えた主マイクロプロセッサ及び補助マイク
ロプロセッサを使って、可変数のステップで浮動小数点
計算を実行するための機構を開示している。浮動小数点
数演算には両方のマイクロプロセッサが関与する。除算
を実行する際に、仮数が正規化のため予め条件づけられ
、最上位ビットは論理1である。仮数の先頭ビットが演
算の完了を示す1になるまで、演算が進行する。
くつかある。米国特許第4442492号は、浮動小数
点仮数の適当なビットに丸めビットを挿入するための技
法を含むデータ処理システムを開示している。米国特許
第4413326号は、各々それ自体の制御用読取り専
用メモリを備えた主マイクロプロセッサ及び補助マイク
ロプロセッサを使って、可変数のステップで浮動小数点
計算を実行するための機構を開示している。浮動小数点
数演算には両方のマイクロプロセッサが関与する。除算
を実行する際に、仮数が正規化のため予め条件づけられ
、最上位ビットは論理1である。仮数の先頭ビットが演
算の完了を示す1になるまで、演算が進行する。
米国特許第4481600号は、連続的繰返しから商を
発生させる技法を開示している。
発生させる技法を開示している。
浮動小数点数除算を扱っているその他の従来技術には、
適当な逆除数を使って商を計算する除法を開示した米国
特許第4707798号がある。
適当な逆除数を使って商を計算する除法を開示した米国
特許第4707798号がある。
この特許は、連続的繰返し処理により中間的な商を計算
した後で、検査及び訂正を行なうのに必要な時間を短縮
できる方法を開示している。
した後で、検査及び訂正を行なうのに必要な時間を短縮
できる方法を開示している。
]0
米国特許第3508038号は、分数の2進被除数を分
数の2進除数で割り算するための装置を開示しており、
被除数と除数の近似的逆数との連続的乗算を実行するこ
とにより商を発生させる。
数の2進除数で割り算するための装置を開示しており、
被除数と除数の近似的逆数との連続的乗算を実行するこ
とにより商を発生させる。
米国特許第4011439号は、2つの2進数の商を発
生させる、加速された方法を開示している。
生させる、加速された方法を開示している。
除数アレイを使って2進除数の逆数を効果的に形成し、
逆数と被除数を乗算することにより商を求める。米国特
許第3648038号は、フロー・スルー手法を使っで
ある数の逆数を得るための方法を開示している。この方
法では、除数の逆数に被除数を乗算して所望の商を発生
させる。米国特許第3E133018号は、ある数の逆
数を2回の乗算で見つけ、これら2数の商を3回の乗算
で見つけるために使用される方法を開示している。米国
特許第3777132号は、除数の逆数に被除数を乗算
することにより、2進除算を実行するための方法を開示
している。商は除数の逆数と同時に発生する。
逆数と被除数を乗算することにより商を求める。米国特
許第3648038号は、フロー・スルー手法を使っで
ある数の逆数を得るための方法を開示している。この方
法では、除数の逆数に被除数を乗算して所望の商を発生
させる。米国特許第3E133018号は、ある数の逆
数を2回の乗算で見つけ、これら2数の商を3回の乗算
で見つけるために使用される方法を開示している。米国
特許第3777132号は、除数の逆数に被除数を乗算
することにより、2進除算を実行するための方法を開示
している。商は除数の逆数と同時に発生する。
C0発明が解決しようとする課題
本発明の目的は、乗算及び加算データ処理回路を使って
実現できる、IEEE演算規格に従って浮動小数点数除
算を実行するための方法を提供することである。本発明
のもう一つの目的は、最終結果を調節するために条件付
きテストを使用する必要なく、事前に選択された丸め方
式に従って、仮数のビットが正しいことを保証するため
の方法を提供することである。
実現できる、IEEE演算規格に従って浮動小数点数除
算を実行するための方法を提供することである。本発明
のもう一つの目的は、最終結果を調節するために条件付
きテストを使用する必要なく、事前に選択された丸め方
式に従って、仮数のビットが正しいことを保証するため
の方法を提供することである。
06課題を解決するための手段
本発明によれば、nビットの仮数を有する商を発生させ
るため、除数による被除数の浮動小数点数除算を実行す
るための方法が提供される。この方法は、(1)除数の
逆数のテーブルから除数の逆数の初期推定値にアクセス
するステップ、(2)逆数の初期推定値から商の初期推
定値及び、対応する剰余の推定値を計算するステップ、
(3)誤差パラメータを計算し、誤差パラメータと逆数
の初期推定値、商の初期推定値、剰余の初期推定値から
逆数の現推定値、商の現推定値及び剰余の現推定値を繰
返して計算することにより、逆数推定値、商推定値及び
剰余推定値の仮数の精度を高めるステップ、(4)逆数
推定値の精度及び商推定値の精度がnビットを越えるま
でステップ(3)を繰返すステップ、及び(5)最後の
商の現推定値に最新の逆数の現推定値と最新の剰余推定
値の積を加えたものから、最終の商を計算するステップ
から成る。
るため、除数による被除数の浮動小数点数除算を実行す
るための方法が提供される。この方法は、(1)除数の
逆数のテーブルから除数の逆数の初期推定値にアクセス
するステップ、(2)逆数の初期推定値から商の初期推
定値及び、対応する剰余の推定値を計算するステップ、
(3)誤差パラメータを計算し、誤差パラメータと逆数
の初期推定値、商の初期推定値、剰余の初期推定値から
逆数の現推定値、商の現推定値及び剰余の現推定値を繰
返して計算することにより、逆数推定値、商推定値及び
剰余推定値の仮数の精度を高めるステップ、(4)逆数
推定値の精度及び商推定値の精度がnビットを越えるま
でステップ(3)を繰返すステップ、及び(5)最後の
商の現推定値に最新の逆数の現推定値と最新の剰余推定
値の積を加えたものから、最終の商を計算するステップ
から成る。
また本発明によれば、浮動小数点数除算を実行するため
の装置が提供される。この装置では、浮動小数点数除算
は、nビットの仮数を有する商を発生させる除数による
被除数の除算である。この装置は、除数の逆数の初期推
定値を計算するための回路を備える。また、逆数の初期
推定値から商の初期推定値を計算するための回路も含む
。誤差パラメータを計算し、誤差パラメータと逆数の初
期推定値とから逆数の現推定値を計算することにより、
逆数推定値の初期推定値の精度を高めるための回路が設
けられている。逆数の現推定値がら現商を計算すること
により、商の初期推定値の仮数の精度を高めるための回
路も設けられている。
の装置が提供される。この装置では、浮動小数点数除算
は、nビットの仮数を有する商を発生させる除数による
被除数の除算である。この装置は、除数の逆数の初期推
定値を計算するための回路を備える。また、逆数の初期
推定値から商の初期推定値を計算するための回路も含む
。誤差パラメータを計算し、誤差パラメータと逆数の初
期推定値とから逆数の現推定値を計算することにより、
逆数推定値の初期推定値の精度を高めるための回路が設
けられている。逆数の現推定値がら現商を計算すること
により、商の初期推定値の仮数の精度を高めるための回
路も設けられている。
さらに、逆数の現推定値と商の現推定値から剰余推定値
を計算するための回路も設けられている。
を計算するための回路も設けられている。
逆数の商及び剰余の仮数の精度は高めるための回路が設
けられている。逆数及び商の精度がnビットを越えるま
で、精度が高められる。最後に、最後の現商に最後の現
逆数と最後の剰余の積を加えたものから、最終の商を計
算する回路が設けられている。
けられている。逆数及び商の精度がnビットを越えるま
で、精度が高められる。最後に、最後の現商に最後の現
逆数と最後の剰余の積を加えたものから、最終の商を計
算する回路が設けられている。
好ましい実施例では、浮動小数点数除算を実行するため
の方法及び装置が提供される。まず、前記のように、最
近数への丸め操作による丸め方式を実現する浮動小数点
数除算を行なう。最終演算、すなわち、最終の商の計算
を実行する際に、最近数への丸めの他に、0への丸め、
負の無限大への丸め、または正の無限大への丸め等の他
の丸め方式を使用することも可能である。
の方法及び装置が提供される。まず、前記のように、最
近数への丸め操作による丸め方式を実現する浮動小数点
数除算を行なう。最終演算、すなわち、最終の商の計算
を実行する際に、最近数への丸めの他に、0への丸め、
負の無限大への丸め、または正の無限大への丸め等の他
の丸め方式を使用することも可能である。
さらに本発明では、正確な商がいつ計算されたかを知ら
せる機構が設けられている。これは、計算された剰余が
Oになったときに行なわれる。
せる機構が設けられている。これは、計算された剰余が
Oになったときに行なわれる。
E、実施例
以下で考察する浮動小数点数除算を実行するための方法
は、オペランド及び結果の仮数の処理のみを扱う。指数
の処理は当技術分野では周知であるので、この考察では
扱わない。除算の5つのステップについて以下に考察す
る。
は、オペランド及び結果の仮数の処理のみを扱う。指数
の処理は当技術分野では周知であるので、この考察では
扱わない。除算の5つのステップについて以下に考察す
る。
1、まず、除数の逆数の推定値を選択する。仮数がすべ
て1ビツトから成る除数では、除数の逆数の初期近似値
の大きさが除数の実際の逆数の大きさよりも大きいか、
または等しくなければならない。好ましい実施例では、
除数の逆数の初期推定値の大きさが、最近数への丸め操
作を使って正しく丸められた除数の実逆数の大きさより
も大きいか、または等しくなければならない。丸めにつ
いては、この明細書の後の部分で考察する。
て1ビツトから成る除数では、除数の逆数の初期近似値
の大きさが除数の実際の逆数の大きさよりも大きいか、
または等しくなければならない。好ましい実施例では、
除数の逆数の初期推定値の大きさが、最近数への丸め操
作を使って正しく丸められた除数の実逆数の大きさより
も大きいか、または等しくなければならない。丸めにつ
いては、この明細書の後の部分で考察する。
2、仮数がすべて1ビツトから成る除数では、商の初期
近似値が(好ましい実施例における最近数への丸め操作
を使って正しく丸められた)実際の商よりも大きいか、
または等しくなければならない。近似値の符号はオペラ
ンドの符号の排他的0である。
近似値が(好ましい実施例における最近数への丸め操作
を使って正しく丸められた)実際の商よりも大きいか、
または等しくなければならない。近似値の符号はオペラ
ンドの符号の排他的0である。
3、誤差パラメータの計算によって、前の近似値から逆
数の改善された近似値を発生させる。誤差パラメータ“
e“は次の通りである。
数の改善された近似値を発生させる。誤差パラメータ“
e“は次の通りである。
e = 1.0 − b*y
y’= y + e*Yただし、V
’は改善された近似値である。これら2つの式の積のす
べてのビットは、機械の通常の仮数長に丸める前に、和
に関与しなければならない。
’は改善された近似値である。これら2つの式の積のす
べてのビットは、機械の通常の仮数長に丸める前に、和
に関与しなければならない。
4、以下の計算により、商の前の近似値を使って、商″
q″”の改善された近似値を発生させる。
q″”の改善された近似値を発生させる。
r = a−b*q
q’= q 十 r*yただし、yは
ステップ3に従って計算したものである。前記の積のす
べてのビットは、機械の通常の仮数長に丸める前に、和
に関与しなければならない。
ステップ3に従って計算したものである。前記の積のす
べてのビットは、機械の通常の仮数長に丸める前に、和
に関与しなければならない。
5、商の近似値が最後の桁の1単位内で正しいことがわ
かっている場合は、商の近似値を改善するために使用さ
れる除数の逆数の大きさは、(最近数への丸め操作を使
って)正しく丸められた除数の実際の逆数の大きさに等
しくなければならない。ただし、仮数がすべて1ビツト
から成る除数では、近似値の大きさが正しく丸められた
逆数よりも最後の桁の1単位だけ小さいこともある、必
要とされる逆数は、ステップ3を繰返し適用することか
ら得られる。
かっている場合は、商の近似値を改善するために使用さ
れる除数の逆数の大きさは、(最近数への丸め操作を使
って)正しく丸められた除数の実際の逆数の大きさに等
しくなければならない。ただし、仮数がすべて1ビツト
から成る除数では、近似値の大きさが正しく丸められた
逆数よりも最後の桁の1単位だけ小さいこともある、必
要とされる逆数は、ステップ3を繰返し適用することか
ら得られる。
本発明の方法をはっきり理解するには、丸めの技法も理
解しなければならない。一般に、4種類の丸めモード方
式がある。最近数への丸めと呼ばれる第1の丸めモード
は、仮数における最も近い表示可能数を選択する。第2
の方式は0への丸めであり、仮数に満たない分数ビット
を捨てる。これは一般に切捨てと呼ばれる。もう1つの
丸めモードは正の無限大への丸めであり、これは、すぐ
上の最大表示可能数への丸めによって丸めを行なうもの
である。逆に、負の無限大への丸めは、すぐ下の表示可
能数への丸めを行なうものである。実際には、最近数へ
の丸め操作が最も難しく、Oへの丸め操作が最も簡単で
ある。正の無限大への丸め及び負の無限大への丸め操作
は複雑さの点でその中間である。
解しなければならない。一般に、4種類の丸めモード方
式がある。最近数への丸めと呼ばれる第1の丸めモード
は、仮数における最も近い表示可能数を選択する。第2
の方式は0への丸めであり、仮数に満たない分数ビット
を捨てる。これは一般に切捨てと呼ばれる。もう1つの
丸めモードは正の無限大への丸めであり、これは、すぐ
上の最大表示可能数への丸めによって丸めを行なうもの
である。逆に、負の無限大への丸めは、すぐ下の表示可
能数への丸めを行なうものである。実際には、最近数へ
の丸め操作が最も難しく、Oへの丸め操作が最も簡単で
ある。正の無限大への丸め及び負の無限大への丸め操作
は複雑さの点でその中間である。
好ましい実施例では、浮動小数点数演算装置は、1つの
原始演算 A + B*C と、その3つの変形、すなわち、(a)−A+B*C,
(b)−A−B*C及び(c)A−B*Cを実行する。
原始演算 A + B*C と、その3つの変形、すなわち、(a)−A+B*C,
(b)−A−B*C及び(c)A−B*Cを実行する。
この実施例では、各原始演算は、1つの丸め誤差のみで
実行される(すなわち、計算の最後の段階で丸めを実行
する)。この実施例では、Cオペランドに1.0を代入
すると、通常の加算及び減算が実行され、Aオペランド
にO20を代入すると、通常の乗算が実現される。
実行される(すなわち、計算の最後の段階で丸めを実行
する)。この実施例では、Cオペランドに1.0を代入
すると、通常の加算及び減算が実行され、Aオペランド
にO20を代入すると、通常の乗算が実現される。
本発明の目的は、■EEE浮動小数点規格に従った浮動
小数点数除算を実現することである。IEEE浮動小数
点規格は、引用により本明細書に合体する。
小数点数除算を実現することである。IEEE浮動小数
点規格は、引用により本明細書に合体する。
第1図は、本発明の方法を示す全体的流れ図である。本
発明の方法は、bによるaの除算を実行することである
。ステップ10で、無限大、0ならびに、数値を示さな
い数を計算から除外す石。
発明の方法は、bによるaの除算を実行することである
。ステップ10で、無限大、0ならびに、数値を示さな
い数を計算から除外す石。
言い換えれば、そのような数に出会ったときは′、IE
EE規格で要求される結果が返される。ステップ12で
、現丸めモードがどのようなものであれ、現丸めモード
を最近数への丸め操作に変更する。
EE規格で要求される結果が返される。ステップ12で
、現丸めモードがどのようなものであれ、現丸めモード
を最近数への丸め操作に変更する。
ステップ14で、除数の逆数の初期推定を行なう。
除数の仮数がすべて1ビツトである場合は、逆数の大き
さは1/bの実際の大きさよりも大きくなければならな
い。ステップ16で、逆数yをaと共に使用して、商の
初期推定値を計算する。ステップ18及び20で、逆数
y及び商qを改善する。
さは1/bの実際の大きさよりも大きくなければならな
い。ステップ16で、逆数yをaと共に使用して、商の
初期推定値を計算する。ステップ18及び20で、逆数
y及び商qを改善する。
「改善する」という言葉は、逆数及び商の仮数の精度を
高めることを意味する。ステップ18で、誤差項eを計
算する。次に、この誤差項を使って、逆数yの現推定値
を再計算する。同様にステップ20で、被除数及び除数
を商の最後の推定値と共に使用してまず剰余を計算し、
さらに、最後の商、算出した剰余及び逆数の最後の推定
値を使用して新しい商を推定することにより、商を「改
善する」。ステップ18及び20はどちらを先にしても
よく、繰返して実行することができる。ステップ22で
、逆数y及び商qが、それらの精度が結果を丸める前の
仮数の精度を越えるまで繰返して改善されたとき、最終
剰余を計算する。ステップ24で、元の丸めモードに戻
る。ステップ25で、最終の商を計算する。
高めることを意味する。ステップ18で、誤差項eを計
算する。次に、この誤差項を使って、逆数yの現推定値
を再計算する。同様にステップ20で、被除数及び除数
を商の最後の推定値と共に使用してまず剰余を計算し、
さらに、最後の商、算出した剰余及び逆数の最後の推定
値を使用して新しい商を推定することにより、商を「改
善する」。ステップ18及び20はどちらを先にしても
よく、繰返して実行することができる。ステップ22で
、逆数y及び商qが、それらの精度が結果を丸める前の
仮数の精度を越えるまで繰返して改善されたとき、最終
剰余を計算する。ステップ24で、元の丸めモードに戻
る。ステップ25で、最終の商を計算する。
第2図は、本発明の方法の第1の好ましい実施例を示す
。ステップ30で、非数値数、無限大及びOを除去して
、IEEE規格で要求される結果を返す。ステップ32
で、現丸めモードを最近数への丸め操作に変更する。ス
テップ34で、付録Aに示すテーブルにアクセスするこ
とにより、逆数yの初期推定を行なう。ステップ36で
、誤差項eを計算する。ステップ38で、商qの最初の
近似を行なう。ステップ40で、図示の手順に従って計
算を実行することにより、商q及び逆数yを「改善する
」。ステップ42で、元の丸めモードに戻る。ステップ
44で、最終の商を計算する。
。ステップ30で、非数値数、無限大及びOを除去して
、IEEE規格で要求される結果を返す。ステップ32
で、現丸めモードを最近数への丸め操作に変更する。ス
テップ34で、付録Aに示すテーブルにアクセスするこ
とにより、逆数yの初期推定を行なう。ステップ36で
、誤差項eを計算する。ステップ38で、商qの最初の
近似を行なう。ステップ40で、図示の手順に従って計
算を実行することにより、商q及び逆数yを「改善する
」。ステップ42で、元の丸めモードに戻る。ステップ
44で、最終の商を計算する。
第3図は、本発明の方法の第2の好ましい実施例を示す
。ステップ50で、非数値数、無限大及び0を前と同様
に除去する。ステップ52で、この現丸めモードを最近
数に変更する。ステップ54で、付録Aのテーブルに従
って逆数の初期推定を行なう。次に誤差項eの計算及び
それに続く逆数の計算によって逆数の精度を高める。ス
テップ56で、最新の逆数推定値を使って誤差項eを再
計算する。ステップ58で、商の推定値を発生させる。
。ステップ50で、非数値数、無限大及び0を前と同様
に除去する。ステップ52で、この現丸めモードを最近
数に変更する。ステップ54で、付録Aのテーブルに従
って逆数の初期推定を行なう。次に誤差項eの計算及び
それに続く逆数の計算によって逆数の精度を高める。ス
テップ56で、最新の逆数推定値を使って誤差項eを再
計算する。ステップ58で、商の推定値を発生させる。
ステップ60で、図示の計算を実行することにより、逆
数及び商の仮数を「改善する」。ステップ62で、元の
丸めモードに戻る。ステップ64で、最終の商を計算す
る。
数及び商の仮数を「改善する」。ステップ62で、元の
丸めモードに戻る。ステップ64で、最終の商を計算す
る。
最終の商を計算する最後のステップを含む2つの実施例
では、商がいつ正確になったか(すなわち、剰余がいつ
0になったか)の表示が与えられることに留意されたい
。商の正確さに関するこの表示は、商の和の結果が正確
であることを示す。
では、商がいつ正確になったか(すなわち、剰余がいつ
0になったか)の表示が与えられることに留意されたい
。商の正確さに関するこの表示は、商の和の結果が正確
であることを示す。
第4図は、浮動小数点数演算装置のブロック・ダイヤグ
ラムである。この浮動小数点装置は、乗算及び加算を並
行して行なうことができる。好ましい実施例では、レジ
スタ70は40個の浮動小数点数演算ワードを含む。制
御線108を介する制御回路106の制御下で、浮動小
数点数演算データ・ワードがA演算ラッチ72にロード
される。
ラムである。この浮動小数点装置は、乗算及び加算を並
行して行なうことができる。好ましい実施例では、レジ
スタ70は40個の浮動小数点数演算ワードを含む。制
御線108を介する制御回路106の制御下で、浮動小
数点数演算データ・ワードがA演算ラッチ72にロード
される。
同様に、B演算ラッチ74及びC演算ラッチ76の内容
がロードされる。A演算ラッチ72及びB演算ラッチ7
4の内容は乗算機構82に供給される。B演算ラッチ7
4の内容は、後で説明する乗算機構78を通過する。乗
算機構82は部分積をラッチ86に供給し、第2の部分
積をラッチ88に供給する。C演算ラッチ76は浮動小
数点数を乗算機構80を介して桁合せシフタ84に供給
する。桁合せシフタ84の出力は加数ラッチ90に供給
される。乗算機構82及び桁合せシフタ84によって操
作されるレジスタの内容は、浮動小数点数の仮数の内容
であることを理解されたい。指数の乗算は制御回路10
6で行なわれ、加算によって行なわれる。指数計算の結
果から、C演算ラッチの内容を適切にシフトさせるため
、入力が桁合せシフタ84に供給され、前記内容をA演
算ラッチア2とB演算ラッチ74の積に加えることがで
きるようになる。
がロードされる。A演算ラッチ72及びB演算ラッチ7
4の内容は乗算機構82に供給される。B演算ラッチ7
4の内容は、後で説明する乗算機構78を通過する。乗
算機構82は部分積をラッチ86に供給し、第2の部分
積をラッチ88に供給する。C演算ラッチ76は浮動小
数点数を乗算機構80を介して桁合せシフタ84に供給
する。桁合せシフタ84の出力は加数ラッチ90に供給
される。乗算機構82及び桁合せシフタ84によって操
作されるレジスタの内容は、浮動小数点数の仮数の内容
であることを理解されたい。指数の乗算は制御回路10
6で行なわれ、加算によって行なわれる。指数計算の結
果から、C演算ラッチの内容を適切にシフトさせるため
、入力が桁合せシフタ84に供給され、前記内容をA演
算ラッチア2とB演算ラッチ74の積に加えることがで
きるようになる。
3:2桁上げ保管加算機構92はラッチ86.88及び
90の内容を受は取る。2つの出力は全加算機構94に
供給される。全加算機構94の内容が正規化回路96で
正規化され、次に結果ラッチ98に記憶される。結果ラ
ッチ98の出力は周回増分機構100に供給される。周
回増分機構100の出力はレジスタ・ファイル70に、
またはマルチプレクサ78の代りとして乗算機構に、ま
たはマルチプレクサ80を介して桁合せシフタ84に供
給することができる。この浮動小数点数演算論理装置は
パイプライン方式で動作するので、マルチプレクサ78
及び80を設けることにより、前の命令からの結果を、
レジスタ・ファイル70に記憶することなく、後続の命
令のために使用することができる。
90の内容を受は取る。2つの出力は全加算機構94に
供給される。全加算機構94の内容が正規化回路96で
正規化され、次に結果ラッチ98に記憶される。結果ラ
ッチ98の出力は周回増分機構100に供給される。周
回増分機構100の出力はレジスタ・ファイル70に、
またはマルチプレクサ78の代りとして乗算機構に、ま
たはマルチプレクサ80を介して桁合せシフタ84に供
給することができる。この浮動小数点数演算論理装置は
パイプライン方式で動作するので、マルチプレクサ78
及び80を設けることにより、前の命令からの結果を、
レジスタ・ファイル70に記憶することなく、後続の命
令のために使用することができる。
除算では、制御回路106が、線104を介して除算マ
イクロコード制御回路102と共に、第1図、第2図及
び第3図に示す除算手順を実行する働きをする。
イクロコード制御回路102と共に、第1図、第2図及
び第3図に示す除算手順を実行する働きをする。
第5図は、制御回路106の制御の流れを示す。
まず、ステップ200で浮動小数点命令を復号し、ステ
ップ202でオペランドを(レジスタ・ファイル70か
ら)読み取る。ステップ204で、オペランドが(特別
な場合を除外する第2図のステップ30に対応する)通
常の数であるか否かを判定する。オペランドが通常の数
でない場合は、制御の流れはステップ206に進んで、
■EEE規格に従ってそれらの数を「除外」シ、ステッ
プ200に戻る。しかし、それらの数が通常の数である
場合は、制御の流れはステップ208に進み、除算命令
があるかどうか判定する。除算命令がない場合は、制御
の流れはステップ216に進む。除算命令が存在する場
合は、制御の流れは除算マイクロコード210に進む。
ップ202でオペランドを(レジスタ・ファイル70か
ら)読み取る。ステップ204で、オペランドが(特別
な場合を除外する第2図のステップ30に対応する)通
常の数であるか否かを判定する。オペランドが通常の数
でない場合は、制御の流れはステップ206に進んで、
■EEE規格に従ってそれらの数を「除外」シ、ステッ
プ200に戻る。しかし、それらの数が通常の数である
場合は、制御の流れはステップ208に進み、除算命令
があるかどうか判定する。除算命令がない場合は、制御
の流れはステップ216に進む。除算命令が存在する場
合は、制御の流れは除算マイクロコード210に進む。
除算マイクロコード210は、除算マイクロコード手順
を開始するステップ212と、マイクロコードを実行す
るステップ214がら成る。ステップ214を終えると
、制御の流れはステップ216に進み、乗算を実行する
。次にステップ218で、加算を実行し、続いてステッ
プ220でレジスタ・ファイル70に書き戻す。ステッ
プ216(乗算ステップ)は、ステップ44ての逆数に
よる剰余rの乗算に対応する。第5図のステップ218
は、ステップ44での剰余と逆数の積に商の加算に対応
する。レジスタに書き戻すステップ220は、最終の商
のレジスタ・ファイル70への書込みに対応する。
を開始するステップ212と、マイクロコードを実行す
るステップ214がら成る。ステップ214を終えると
、制御の流れはステップ216に進み、乗算を実行する
。次にステップ218で、加算を実行し、続いてステッ
プ220でレジスタ・ファイル70に書き戻す。ステッ
プ216(乗算ステップ)は、ステップ44ての逆数に
よる剰余rの乗算に対応する。第5図のステップ218
は、ステップ44での剰余と逆数の積に商の加算に対応
する。レジスタに書き戻すステップ220は、最終の商
のレジスタ・ファイル70への書込みに対応する。
第6図は、除算マーカ・コード210の内容を示す。ま
ず、ステップ230で、丸めモードを最近数への丸めモ
ードにリセットする。ステップ232で、逆数yを索引
テーブルで調べて初期逆数推定値を求める。ステップ2
34で、誤差項eを発生させる。ステップ236で、商
qの初期近似を行なう。ステップ238及びステップ2
40で、ステップ240に列挙された計算を実行するこ
とにより、逆数y及び商qの精度を高める。ステップ2
42で、元の丸めモードに戻る。
ず、ステップ230で、丸めモードを最近数への丸めモ
ードにリセットする。ステップ232で、逆数yを索引
テーブルで調べて初期逆数推定値を求める。ステップ2
34で、誤差項eを発生させる。ステップ236で、商
qの初期近似を行なう。ステップ238及びステップ2
40で、ステップ240に列挙された計算を実行するこ
とにより、逆数y及び商qの精度を高める。ステップ2
42で、元の丸めモードに戻る。
前述のように、乗算ステップ216、加算ステップ21
8及び書戻しステップ220は、最終の商の計算及び記
憶(第2図のステップ44)に対応する。
8及び書戻しステップ220は、最終の商の計算及び記
憶(第2図のステップ44)に対応する。
浮動小数点装置による演算の結果、浮動小数点数除算か
ら得られた商は、追加の回路を必要とすることなく、所
望の精度で正しいものとなる。
ら得られた商は、追加の回路を必要とすることなく、所
望の精度で正しいものとなる。
以下、本発明の好ましい実施例で必要とされる、ある数
の逆数の第一近似値の発生について説明する。この説明
の終りにあるテーブルは、本発明に従って近似値を発生
させる。
の逆数の第一近似値の発生について説明する。この説明
の終りにあるテーブルは、本発明に従って近似値を発生
させる。
演算RECIP Y、Bは浮動小数点数演算である。
Y及びBは共に浮動小数点レジスタである。
演算の結果はレジスタYに置かれ、Bの逆数に対する近
似値である。この演算の詳細は以下の通りである。
似値である。この演算の詳細は以下の通りである。
BがNaNである場合、Y 二 B;
そうではなくて、Bが正または負の無限大である場合、
Yは正または負のOである; そうではなくて、Bが正または負の0である場合、Yは
正または負の無限大である; そうではなくて、Bが非正規化されている場合は、正規
化された内部形式でBを表す。
Yは正または負のOである; そうではなくて、Bが正または負の0である場合、Yは
正または負の無限大である; そうではなくて、Bが非正規化されている場合は、正規
化された内部形式でBを表す。
Yの符号 = Bの符号
Yの不偏指数 = 1−Bの不偏指数
Yの先頭の9個の分数*ビット = テーブル(Bの先
頭の8個の分数*ビット)。
頭の8個の分数*ビット)。
注:「先頭の8個の分数ビット」または「先頭の9個の
分数ビット」は、IEEE様式で物理的に表示されてい
ない、先頭の暗示された1ビツトを排除する。言い換え
れば、正規化された数では、「先頭の8個の分数ビット
」は、Oから始まる通常のIBMの左から右への番号付
けでは、ダブルワードのビット12−19である。
分数ビット」は、IEEE様式で物理的に表示されてい
ない、先頭の暗示された1ビツトを排除する。言い換え
れば、正規化された数では、「先頭の8個の分数ビット
」は、Oから始まる通常のIBMの左から右への番号付
けでは、ダブルワードのビット12−19である。
ここに示されたテーブルによれば、0、無限大及びNa
Nを含む特別の場合を除いて、0≦ABS(1−BY)
≦1/362である。具体的には、すべて1の除数では
、RECIP動作の構成は、正しく丸められた結果への
収束を保証するために必要となる、逆数の大きさを過大
に見積もる。
Nを含む特別の場合を除いて、0≦ABS(1−BY)
≦1/362である。具体的には、すべて1の除数では
、RECIP動作の構成は、正しく丸められた結果への
収束を保証するために必要となる、逆数の大きさを過大
に見積もる。
RECIPをコンピュータ・アーキテクチャで示す必要
はなく、その代り、DIvIDE命令による使用のため
にしか使用できなくてもよい。その場合、N a N
%無限大またはOを処理する必要はない。というのは、
これらのケースはハードウェアにより特別なケースとし
て処理されるからである。
はなく、その代り、DIvIDE命令による使用のため
にしか使用できなくてもよい。その場合、N a N
%無限大またはOを処理する必要はない。というのは、
これらのケースはハードウェアにより特別なケースとし
て処理されるからである。
下記に長様式のIEEE数に対してRECIP動作で必
要な分数を構成するために必要なテーブルを16進数で
示す。(テーブルの位置及び内容は16進数で示しであ
る。テーブルの値は長さ9ビツトで左寄せしである。) ff0 1 fd。
要な分数を構成するために必要なテーブルを16進数で
示す。(テーブルの位置及び内容は16進数で示しであ
る。テーブルの値は長さ9ビツトで左寄せしである。) ff0 1 fd。
2 fb。
f90
f70
f50
f38
f18
ef8
ed8
0 eco
11 ea。
2 ea0
3 e68
4 e48
5 e30
16 el。
17 df。
8 dd8
19 dc。
0 dao
1 d88
2 d68
3 d50
4 d38
5 d18
26 do。
7 ea8
8 cc8
9 cbo
0 c98
1 ea0
2 c68
3 c50
4 c30
5 c18
36 co。
7 be8
38 bd。
9 bb8
0 hao
1 b88
2 b70
3 b58
4 b40
5 b28
6 b18
47 bo。
8 ea8
9 ado
0 ab8
1 ea8
2 a90
3 a78
4 ea0
5 a50
6 a38
7 a20
58 al。
99f8
09eO
19d0
29b8
39a0
696B
28f0
38eO
48c8
58b8
68aO
67e8
77d8
87c8
97b8
07a8
B 740
1006f8
1016e8
1026d8
1036c8
1046b8
1056a8
1175f0
1185e0
1195dO
1205c0
1215b0
1225a8
1265ES8
1344f8
1354f0
1364eO
1374d0
1384c0
1394b8
1404a8
1543f8
1553e8
1563e0
1573dO
1583a0
1593b8
1603a8
1613a0
1?2320
1?3310
1762f0
1772e8
1782d8
1792dO
1802c8
1812b8
1822b0
1832aO
1B6280
2001fO
2011e8
2021e0
2031d0
2041c8
2051c0
2061b8
2071b0
2081aO
2260f8
2270f0
2280e8
2290e0
2300d8
2310dO
2320c8
2330cO
2340b0
2350a8
2360aO
2430B8
以下、好ましい実施例に従って実行される幾つかの除算
例を示す。すべての数は16進表記法で表され、IEE
E2進浮動小数点規格に従って、先頭ビットは符号ビッ
トを表し、次の11ビツトは超過−1023指数を表し
、残りの52ビツトは仮数を表す(この先頭ビットは正
規化された数では表示されない)。
例を示す。すべての数は16進表記法で表され、IEE
E2進浮動小数点規格に従って、先頭ビットは符号ビッ
トを表し、次の11ビツトは超過−1023指数を表し
、残りの52ビツトは仮数を表す(この先頭ビットは正
規化された数では表示されない)。
各側の始めに、分子、分母ならびに丸めモードを示す。
好ましい実施例で生成される値を左側に示しである。こ
れらの値は、商、逆数、剰余、及び逆数の誤差に対する
連続した近似値を見つけやすくするよう意図されている
。終りに、本発明に従って発生される商に対して残され
た剰余、及び商の最も近い近似値によって残された剰余
を示す。
れらの値は、商、逆数、剰余、及び逆数の誤差に対する
連続した近似値を見つけやすくするよう意図されている
。終りに、本発明に従って発生される商に対して残され
た剰余、及び商の最も近い近似値によって残された剰余
を示す。
本発明による近似では、■EEEの最近数への丸め操作
モードで必要とされる、より小さな剰余が残ることに留
意されたい。
モードで必要とされる、より小さな剰余が残ることに留
意されたい。
各側の右側には、わずかに変更された計算が示されてお
り、本発明による規則の1つに従わない場合に商がどの
ようにずれたものになるかを示す。
り、本発明による規則の1つに従わない場合に商がどの
ようにずれたものになるかを示す。
分子: 3FFAAAMAAAAAAA8丸めトド:
最近数 y =3FEOO80000000000e =BF5
FFFFFFFFFF9FDq = 3FEAB7FF
FFFFFFFDyl =3FDFFFF800000
003r =BF6AAAAAΔAAAA4FEel
=3ECFFFFFFFFFFFFDy =3FEOO
80000000000e−BF5FFFFFFFFF
F9FDq −3FEAB7FFFFFFFFFDy
C3FDFFFF800000003r=BF6ΔAA
AΔΔAAAA/IFEe1−3ECFFFFFFFF
FFFFDrl =BE4AAAAAABFFFFFE
r1=BE4AAAAAABFFFFFE別の剰余
BC9FFFFFFFFFFFFEここで、除数の仮
数がすべて1ビツトである場合を示す。逆数及び商の初
期推定値が過大見積りではなく過小見積りである場合は
、たとえ過小見積りが近似性の点ではるかにすぐれた推
定であったとしても、繰返しによって、正しく丸められ
た商に収束しない。
最近数 y =3FEOO80000000000e =BF5
FFFFFFFFFF9FDq = 3FEAB7FF
FFFFFFFDyl =3FDFFFF800000
003r =BF6AAAAAΔAAAA4FEel
=3ECFFFFFFFFFFFFDy =3FEOO
80000000000e−BF5FFFFFFFFF
F9FDq −3FEAB7FFFFFFFFFDy
C3FDFFFF800000003r=BF6ΔAA
AΔΔAAAA/IFEe1−3ECFFFFFFFF
FFFFDrl =BE4AAAAAABFFFFFE
r1=BE4AAAAAABFFFFFE別の剰余
BC9FFFFFFFFFFFFEここで、除数の仮
数がすべて1ビツトである場合を示す。逆数及び商の初
期推定値が過大見積りではなく過小見積りである場合は
、たとえ過小見積りが近似性の点ではるかにすぐれた推
定であったとしても、繰返しによって、正しく丸められ
た商に収束しない。
分子: 3ffO000000000000分母:
3fffffffffffffff丸めトド:最近数 yl =3FDFFFF800000001
yl= 3FEOOOOOOOOOOOOOql
=3FEOOOOOO2000000q1=3FEOO
OOOOOOOOOOOq2 =3FEOOOOOOO
OOOOO1q2=3FEOOOOOOOOOOOOO
e3 =3CAOOOOOOOOOOOOOe3−BC
AOOOOOOOOOOOOOy4 =3FEOOOO
OOOOOOOOOy’1−31νE00000000
00000qf =3FEOOOOOOOOOOOO1
qf=3FEOOOOOOOOOOOOOこの例では、
右側の正しくないバージョンでは、Qfを計算するため
y4の代りにy3を使用した。
3fffffffffffffff丸めトド:最近数 yl =3FDFFFF800000001
yl= 3FEOOOOOOOOOOOOOql
=3FEOOOOOO2000000q1=3FEOO
OOOOOOOOOOOq2 =3FEOOOOOOO
OOOOO1q2=3FEOOOOOOOOOOOOO
e3 =3CAOOOOOOOOOOOOOe3−BC
AOOOOOOOOOOOOOy4 =3FEOOOO
OOOOOOOOOy’1−31νE00000000
00000qf =3FEOOOOOOOOOOOO1
qf=3FEOOOOOOOOOOOOOこの例では、
右側の正しくないバージョンでは、Qfを計算するため
y4の代りにy3を使用した。
除数の逆数のこれら2つの近似値は1ビツトしが異なっ
ていないことに留意されたい。たとえy3が丸めの前の
65ビツト以上に関して正しくても、規則5で要求され
るように、最後の桁の1単位内で正しい逆数の近似値か
ら計算されたものではない。したがって、最終の商を計
算するには十分正確でなかった。
ていないことに留意されたい。たとえy3が丸めの前の
65ビツト以上に関して正しくても、規則5で要求され
るように、最後の桁の1単位内で正しい逆数の近似値か
ら計算されたものではない。したがって、最終の商を計
算するには十分正確でなかった。
前記2つの事例は、繰返し逆数法の実施が従来うまくい
かなかった「困難な除算の問題」の例である。本発明の
方法はこれらの困難を克服する。
かなかった「困難な除算の問題」の例である。本発明の
方法はこれらの困難を克服する。
「困難な問題」が極めてまれなことは事実である。
本発明によらなくても大部分の除算は正しく行なえるが
、本発明の開示を用いると、丸めモードにかかわらず、
かつ最後に条件付き調整なしに、すべての除算を正しく
行なうことができる。
、本発明の開示を用いると、丸めモードにかかわらず、
かつ最後に条件付き調整なしに、すべての除算を正しく
行なうことができる。
さらに、正確な商の場合は、商の終りから2番目の近似
値が既に正しく、最終補正は正しい答に0を加えるもの
であり、常に正確な演算である。
値が既に正しく、最終補正は正しい答に0を加えるもの
であり、常に正確な演算である。
以上、本発明をこれらの特定の実施例に関して説明して
きたが、この説明を限定的なものと解釈すべきではない
。本発明の説明を参照すれば、開示された実施例の種々
の変形ならびに本発明のその他の実施例が、当業者には
明らかになるはずである。したがって、頭記の特許請求
の範囲は、本発明の真の範囲に含まれるそのような変形
または実施例を含むものである F9発明の効果 上述の如く、本発明によれば、浮動小数点除算の精度の
高い実行が可能となる。
きたが、この説明を限定的なものと解釈すべきではない
。本発明の説明を参照すれば、開示された実施例の種々
の変形ならびに本発明のその他の実施例が、当業者には
明らかになるはずである。したがって、頭記の特許請求
の範囲は、本発明の真の範囲に含まれるそのような変形
または実施例を含むものである F9発明の効果 上述の如く、本発明によれば、浮動小数点除算の精度の
高い実行が可能となる。
第1図は、浮動小数点数除算法を示す流れ図である。
第2図は、浮動小数点数除算法の第1の好ましい実施例
を示す流れ図である。 第3図は、浮動小数点数除算の第2の好ましい実施例を
示す流れ図である。 第4図は、浮動小数点数演算装置を示すブロック・ダイ
ヤグラムである。 第5図は、浮動小数点数演算装置用の制御回路の動作を
示す流れ図である。 第6図は、浮動小数点数除算制御装置の動作を示す流れ
図である。 70・・・・レジスタ・ファイル、72.74.76・
・・・演算ラッチ、78.80・・・・マルチプレクサ
、82・・・・乗算機構、84・・・・桁合せシフタ、
102・・・・除算マイクロコード、106・・・・制
御回路。
を示す流れ図である。 第3図は、浮動小数点数除算の第2の好ましい実施例を
示す流れ図である。 第4図は、浮動小数点数演算装置を示すブロック・ダイ
ヤグラムである。 第5図は、浮動小数点数演算装置用の制御回路の動作を
示す流れ図である。 第6図は、浮動小数点数除算制御装置の動作を示す流れ
図である。 70・・・・レジスタ・ファイル、72.74.76・
・・・演算ラッチ、78.80・・・・マルチプレクサ
、82・・・・乗算機構、84・・・・桁合せシフタ、
102・・・・除算マイクロコード、106・・・・制
御回路。
Claims (6)
- (1)Nビットの仮数を有する商を発生させるために、
除数による被除数の浮動小数点数除算を実行するための
方法であって、 (a)除数の逆数のテーブルから前記除数の逆数の初期
推定値にアクセスするステップと、(b)前記逆数の前
記初期推定値から、前記商の初期推定値及び対応する剰
余の推定値を計算するステップと、 (c)誤差パラメータを計算し、前記誤差パラメータ及
び前記初期逆数推定値、初期商推定値及び初期剰余推定
値から、現逆数推定値、現商推定値及び現剰余推定値を
繰り返し計算することにより、前記逆数推定値、商推定
値及び剰余推定値の前記仮数の前記精度を高めるステッ
プと、 (d)前記逆数推定値及び前記商推定値の前記精度がN
ビットを越えるまでステップ(c)を繰り返すステップ
と、 (e)前記最後の現商推定値に前記最後の現逆数推定値
と前記最後の剰余推定値の積を加えたものから、最終の
商を計算するステップ を含む方法。 - (2)Nビットの仮数を有する商を発生させるために、
除数による被除数の浮動小数点数除算を実行するための
方法であって、 (a)前記除数の逆数の初期推定値を計算するステップ
と、 (b)前記逆数の前記初期推定値から前記商の初期推定
値を計算するステップと、 (c)誤差パラメータを計算し、前記誤差パラメータ及
び前記逆数の前記初期推定値から前記逆数の現推定値を
計算することにより、前記逆数の前記初期推定値の前記
精度を高めるステップと、(d)前記逆数の前記現推定
値から現商を計算することにより、前記商の前記初期推
定値の前記仮数の前記精度を高めるステップと、 (e)前記現逆数推定値及び前記現商推定値から剰余の
推定値を計算するステップと、 (f)前記逆数推定値及び前記商推定値がNビットを越
えるまで、ステップ(c)、(d)及び(e)を繰り返
すステップと、 (g)前記最後の現商推定値に前記最新の現逆数推定値
と前記最新の剰余推定値との積を加えたものから最終の
商を計算するステップ を含む方法。 - (3)Nビット精度の丸められた仮数を有する商を発生
させるために、除数による被除数の浮動小数点数除算を
実行するための方法であって、 (a)前記除数の逆数の初期推定値を計算するステップ
と、 (b)前記逆数の前記初期推定値から前記商の初期推定
値を計算し、最近数への丸め操作によって丸めを行なう
ステップと、 (c)誤差パラメータを計算し、前記誤差パラメータ及
び前記逆数の前記初期推定値から前記逆数の現推定値を
計算し、最近数への丸め操作によって丸めを行なうこと
により、前記逆数の前記初期推定値の前記精度を高める
ステップと、 (d)前記逆数の前記現推定値から現商を計算し、最近
数への丸め操作によって丸めを行なうことにより、前記
商の前記初期推定値の前記仮数の前記精度を高めるステ
ップと、 (e)前記現在の逆数推定値及び前記現商推定値から剰
余の推定値を計算し、最近数への丸め操作によって丸め
を行なうステップと、 (f)前記逆数推定値及び前記商推定値の精度がNビッ
トを越えるまで、ステップ(c)、(d)及び(e)を
繰り返すステップと、 (g)前記最後の現商推定値に前記最新の現逆数推定値
と前記最新の剰余推定値との積を加えたものから最終の
商を計算し、最近数への丸め操作以外の操作によって丸
めを行なうステップ を含む方法。 - (4)Nビットの仮数を有する商を発生させるために、
除数による被除数の浮動小数点数除算を実行するための
装置であって、 除数の逆数のテーブルから前記除数の逆数の初期推定値
にアクセスするための手段と、 前記逆数の前記初期推定値から前記商の初期推定値及び
対応する剰余推定値を計算するための手段と、 誤差パラメータを計算し、前記逆数推定値及び前記商推
定値の前記精度がNビットを越えるまで、前記誤差パラ
メータ及び前記初期逆数推定値、初期商推定値、初期剰
余推定値から現逆数推定値、現商推定値及び現剰余推定
値を繰り返して計算することにより、前記逆数推定値、
商推定値及び剰余推定値の前記精度を高めるための手段
と、前記最後の現商推定値に前記最新の現逆数推定値と
前記最新の剰余推定値との積を加えたものから、最終の
商を計算するための手段 を含む装置。 - (5)Nビットの仮数を有する商を発生させるために、
除数による被除数の浮動小数点数除算を実行するための
装置であって、 前記除数の逆数の初期推定値を計算するための手段と、 前記逆数の前記初期推定値から前記商の初期推定値を計
算するための手段と、 誤差パラメータを計算し、前記誤差パラメータ及び前記
逆数の前記初期推定値から前記逆数の現推定値を計算す
ることにより、前記逆数の前記初期推定値の前記精度を
高めるための手段と、前記逆数の前記現推定値から現商
を計算することにより、前記商の前記初期推定値の前記
仮数の前記精度を高めるための手段と、 前記現逆数推定値及び前記現商推定値から剰余の推定値
を計算するための手段と、 前記逆数推定値及び前記商推定値の前記精度がNビット
を越えるまで、前記現逆数、商及び剰余の現推定値の前
記仮数の前記精度を高めるための手段と、 前記最後の現商推定値に前記最新の現逆数推定値と前記
最新の剰余推定値との積を加えたものから、最終の商を
計算するための手段 を含む装置。 - (6)Nビット精度の丸められた仮数を有する商を発生
させるために、除数による被除数の浮動小数点数除算を
実行するための装置であって、 前記除数の逆数の初期推定値を計算するための手段と、 前記逆数の前記初期推定値から前記商の初期推定値を計
算し、最近数への丸め操作によって丸めを行なうための
手段と、 誤差パラメータを計算し、前記誤差パラメータ及び前記
逆数の前記初期推定値から前記逆数の現推定値を計算し
、最近数への丸め操作によって丸めを行なうことにより
、前記逆数の前記初期推定値の前記仮数の前記精度を高
めるための手段と、前記逆数の前記現推定値から現商を
計算し、最近数への丸め操作によって丸めを行なうこと
により、前記商の前記初期推定値の前記仮数の前記精度
を高めるための手段と、 前記現逆数推定値及び前記現商推定値から剰余の推定値
を計算し、最近数への丸め操作によって丸めを行なうた
めの手段と、 前記逆数推定値及び前記商推定値の前記精度がNビット
を越えるまで、前記逆数及び商の前記現推定値の前記仮
数の前記精度を高めるための手段と、 前記最後の現商推定値に前記最新の現逆数推定値と前記
最新の剰余推定値との積を加えたものから、最終の商を
計算し、最近数への丸め操作以外の丸めを行なうための
手段 を含む装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29777189A | 1989-01-13 | 1989-01-13 | |
US297771 | 1989-01-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02227726A true JPH02227726A (ja) | 1990-09-10 |
JPH0687219B2 JPH0687219B2 (ja) | 1994-11-02 |
Family
ID=23147678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003659A Expired - Lifetime JPH0687219B2 (ja) | 1989-01-13 | 1990-01-12 | 制御方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0377992B1 (ja) |
JP (1) | JPH0687219B2 (ja) |
DE (1) | DE68926289T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020166661A (ja) * | 2019-03-29 | 2020-10-08 | 日本電気株式会社 | 除算装置、除算方法及びプログラム |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5046038A (en) * | 1989-07-07 | 1991-09-03 | Cyrix Corporation | Method and apparatus for performing division using a rectangular aspect ratio multiplier |
WO1991010190A1 (en) * | 1989-12-29 | 1991-07-11 | Motorola, Inc. | Methods and apparatus for efficient resource allocation for error and exception handling in convergent division |
US5341321A (en) * | 1993-05-05 | 1994-08-23 | Hewlett-Packard Company | Floating point arithmetic unit using modified Newton-Raphson technique for division and square root |
GB2372353A (en) * | 2000-12-20 | 2002-08-21 | Sicon Video Corp | Method and apparatus for calculating a reciprocal |
US9146706B2 (en) | 2006-05-05 | 2015-09-29 | Qualcomm Incorporated | Controlled-precision iterative arithmetic logic unit |
US20120059866A1 (en) * | 2010-09-03 | 2012-03-08 | Advanced Micro Devices, Inc. | Method and apparatus for performing floating-point division |
US8775494B2 (en) | 2011-03-01 | 2014-07-08 | Nvidia Corporation | System and method for testing whether a result is correctly rounded |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4996647A (ja) * | 1972-10-30 | 1974-09-12 | ||
JPS54136147A (en) * | 1978-04-13 | 1979-10-23 | Panafacom Ltd | Divider |
JPS5520508A (en) * | 1978-06-29 | 1980-02-14 | Panafacom Ltd | Processor for division |
JPS61262930A (ja) * | 1985-05-17 | 1986-11-20 | Nec Corp | 除算装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4594680A (en) * | 1983-05-04 | 1986-06-10 | Sperry Corporation | Apparatus for performing quadratic convergence division in a large data processing system |
JPS60164837A (ja) * | 1984-02-07 | 1985-08-27 | Nec Corp | 除算装置 |
-
1989
- 1989-12-20 DE DE1989626289 patent/DE68926289T2/de not_active Expired - Fee Related
- 1989-12-20 EP EP19890313402 patent/EP0377992B1/en not_active Expired - Lifetime
-
1990
- 1990-01-12 JP JP2003659A patent/JPH0687219B2/ja not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4996647A (ja) * | 1972-10-30 | 1974-09-12 | ||
JPS54136147A (en) * | 1978-04-13 | 1979-10-23 | Panafacom Ltd | Divider |
JPS5520508A (en) * | 1978-06-29 | 1980-02-14 | Panafacom Ltd | Processor for division |
JPS61262930A (ja) * | 1985-05-17 | 1986-11-20 | Nec Corp | 除算装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020166661A (ja) * | 2019-03-29 | 2020-10-08 | 日本電気株式会社 | 除算装置、除算方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JPH0687219B2 (ja) | 1994-11-02 |
EP0377992A3 (en) | 1992-01-08 |
EP0377992A2 (en) | 1990-07-18 |
EP0377992B1 (en) | 1996-04-17 |
DE68926289T2 (de) | 1996-10-10 |
DE68926289D1 (de) | 1996-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5249149A (en) | Method and apparatus for performining floating point division | |
JP6495220B2 (ja) | 選択可能な副精度に対して、低減された電力要求を有する浮動小数点プロセッサ | |
JP4953644B2 (ja) | 正規化および丸め処理前にフィードバックを行う浮動小数点ユニットのためのシステムおよび方法 | |
JP3541066B2 (ja) | コンピュータにおいて除算および平方根計算を実施するための方法および装置 | |
US8046399B1 (en) | Fused multiply-add rounding and unfused multiply-add rounding in a single multiply-add module | |
US20110106868A1 (en) | Floating point multiplier with partial product shifting circuitry for result alignment | |
US10338889B2 (en) | Apparatus and method for controlling rounding when performing a floating point operation | |
US20080208945A1 (en) | Method to compute an approximation to the reciprocal of the square root of a floating point number in ieee format | |
US8060551B2 (en) | Method and apparatus for integer division | |
US20230092574A1 (en) | Single-cycle kulisch accumulator | |
US5943249A (en) | Method and apparatus to perform pipelined denormalization of floating-point results | |
US20080263336A1 (en) | Processor Having Efficient Function Estimate Instructions | |
US5260889A (en) | Computation of sticky-bit in parallel with partial products in a floating point multiplier unit | |
US20070038693A1 (en) | Method and Processor for Performing a Floating-Point Instruction Within a Processor | |
JPH02227726A (ja) | 制御方法 | |
US4996660A (en) | Selection of divisor multipliers in a floating point divide circuit | |
US6598065B1 (en) | Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal | |
Bruguera | Low-latency and high-bandwidth pipelined radix-64 division and square root unit | |
US6963895B1 (en) | Floating point pipeline method and circuit for fast inverse square root calculations | |
Jaiswal et al. | Taylor series based architecture for quadruple precision floating point division | |
JP2002023997A (ja) | 浮動小数点演算のための選択ベースの丸め方法 | |
JP4428778B2 (ja) | 演算装置及び演算方法並びに計算装置 | |
JP3541086B2 (ja) | 除算結果、及び開平算結果に正確な丸め処理を行う方法、及び装置 | |
Piso et al. | Obtaining accurate error expressions and bounds for floating-point multiplicative algorithms | |
JP2022173719A (ja) | 演算処理装置および演算方法 |