JPH0687219B2 - 制御方法 - Google Patents

制御方法

Info

Publication number
JPH0687219B2
JPH0687219B2 JP2003659A JP365990A JPH0687219B2 JP H0687219 B2 JPH0687219 B2 JP H0687219B2 JP 2003659 A JP2003659 A JP 2003659A JP 365990 A JP365990 A JP 365990A JP H0687219 B2 JPH0687219 B2 JP H0687219B2
Authority
JP
Japan
Prior art keywords
reciprocal
quotient
rounding
circuit
estimate
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 - Lifetime
Application number
JP2003659A
Other languages
English (en)
Other versions
JPH02227726A (ja
Inventor
ダニエル・コカノーガー
ピイーター・ウイリイー・マークステイン
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH02227726A publication Critical patent/JPH02227726A/ja
Publication of JPH0687219B2 publication Critical patent/JPH0687219B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明はデータ処理システム及び浮動小数点数演算の実
行に関し、さらに詳しくは、浮動小数点数除算を実行す
るデータ処理システムに関する。
B.従来の技術 従来、浮動小数点数除算は、まず除数の逆数の推定値を
発生させることにより、コンピュータで商を計算するこ
とを含んでいた。逆数を詳細にして、すなわち仮数の精
度を上げ、最後に、被除数を掛けて商を得る。この方法
はしばしば、あらゆるケースの除算で、正しい仮数の最
終ビツトを得るという点で問題があった。
過去にこの方法を使用していたコンピュータは、必ずし
も期待された結果をもたらさないことで評判が悪く、こ
れらの偏差は、正確な商を期待する場合に最も障害にな
るものであったが、前段で説明した種類の方式を使用し
たハードウェアでは、最終ビットがときどき誤ったもの
になった。
米電気電子学会により、浮動小数点数演算のための正し
い結果を記述する規格が制定された。この規格は、「米
国規格−IEEE 2進浮動小数点数演算規格(An Americ
an National Standard-IEEE Standard For Binary
Floating-Point Arithmetic)」、ANSI/IEEE Std.7
54−1985と呼ばれ、引用により本明細書に編入する。IE
EE浮動小数点規格に準拠しようとするコンピュータは、
すべての場合に正しい結果を得なければならない。
浮動小数点数除算を実行するための技法を示す特許がい
くつかある。米国特許第4442492号は、浮動小数点仮数
の適当なビットに丸めビットを挿入するための技法を含
むデータ処理システムを開示している。米国特許第4413
326号は、各々それ自体の制御用読取り専用メモリを備
えた主マイクロプロセッサ及び補助マイクロプロセッサ
を使って、可変数のステップで浮動小数点計算を実行す
るための機構を開示している。浮動小数点数演算には両
方のマイクロプロセッサが関与する。除算を実行する際
に、仮数が正規化のため予め条件づけられ、最上位ビッ
トは論理1である。仮数の先頭ビットが演算の完了を示
す1になるまで、演算が進行する。
米国特許第4481600号は、連続的繰返しから商を発生さ
せる技法を開示している。
浮動小数点数除算を扱っているその他の従来技術には、
適当な逆除数を使って商を計算する除法を開示した米国
特許第4707798号がある。この特許は、連続的繰返し処
理により中間的な商を計算した後で、検査及び訂正を行
なうのに必要な時間を短縮できる方法を開示している。
米国特許第3508038号は、分数の2進被除数を分数の2
進除数で割り算するための装置を開示しており、被除数
と除数の近似的逆数との連続的乗算を実行することによ
り商を発生させる。米国特許第4011439号は、2つの2
進数の商を発生させる、加速された方法を開示してい
る。除数アレイを使って2進除数の逆数を効果的に形成
し、逆数の被除数を乗算することにより商を求める。米
国特許第3648038号は、フロー・スルー手法を使ってあ
る数の逆数を得るための方法を開示している。この方法
では、除数の逆数に被除数を乗算して所望の商を発生さ
せる。米国特許第3633018号は、ある数の逆数を2回の
乗算で見つけ、これら2数の商を3回の乗算で見つける
ために使用される方法を開示している。米国特許第3777
132号は、除数の逆数に被除数を乗算することにより、
2進除数を実行するための方法を開示している。商は除
数の逆数と同時に発生する。
C.発明が解決しようとする課題 本発明の目的は、乗算及び加算データ処理回路を使って
実現できる、IEEE演算規格に従って浮動小数点数除算を
実行するための方法を提供することである。本発明のも
う一つの目的は、最終結果を調節するために条件付きテ
ストを使用する必要なく、事前に選択された丸め方式に
従って、仮数のビットが正しいことを保証するための方
法を提供することである。
D.課題を解決するための手段 本発明によれば、nビットの仮数を有する商を発生させ
るため、除数による被除数の浮動小数点数除算を実行す
るための方法が提供される。この方法は、(1)除数の逆
数のテーブルから除数の逆数の初期推定値にアクセスす
るステップ、(2)逆数の初期推定値から商の初期推定値
及び、対応する剰余の推定値を計算するステップ、(3)
誤差パラメータを計算し、誤差パラメータと逆数の初期
推定値、商の初期推定値、剰余の初期推定値から逆数の
現推定値、商の現推定値及び剰余の現推定値を繰返して
計算することにより、逆数推定値、商推定値及び剰余推
定値の仮数の精度を高めるステップ、(4)逆数推定値の
精度及び商推定値の精度がnビットを越えるまでステッ
プ(3)を繰返すステップ、及び(5)最後の商の現推定値に
最新の逆数の現推定値と最新の剰余推定値の積を加えた
ものから、最終の商を計算するステップから成る。
また本発明によれば、浮動小数点数除算を実行するため
の装置が提供される。この装置では、浮動小数点数除算
は、nビットの仮数を有する商を発生させる除数による
被除数の除算である。この装置は、除数の逆数の初期推
定値を計算するための回路を備える。また、逆数の初期
推定値から商の初期推定値を計算するための回路も含
む。誤差パラメータを計算し、誤差パラメータと逆数の
初期推定値とから逆数の現推定値を計算することによ
り、逆数推定値の初期推定値の精度を高めるための回路
が設けられている。逆数の現推定値から現商を計算する
ことにより、商の初期推定値の仮数の精度を高めるため
の回路も設けられている。さらに、逆数の現推定値と商
の現推定値から剰余推定値を計算するための回路も設け
られている。逆数の商及び剰余の仮数の精度は高めるた
めの回路が設けられている。逆数及び商の精度がnビッ
トを越えるまで、精度が高められる。最後に、最後の現
商に最後の現逆数と最後の剰余の積を加えたものから、
最終の商を計算する回路が設けられている。
好ましい実施例では、浮動小数点数除算を実行するため
の方法及び装置が提供される。まず、前記のように、最
近数への丸め操作による丸め方式を実現する浮動小数点
数除算を行なう。最終演算、すなわち、最終の商の計算
を実行する際に、最近数への丸めの他に、0への丸め、
負の無限大への丸め、または正の無限大への丸め等の他
の丸め方式を使用することも可能である。
さらに本発明では、正確な商がいつ計算されたかを知ら
せる機構が設けられている。これは、計算された剰余が
0になったときに行なわれる。
E.実施例 以下で考察する浮動小数点数除算を実行するための方法
は、オペランド及び結果の仮数の処理のみを扱う。指数
の処理は当技術分野では周知であるので、この考察では
扱わない。除算の5つのステップについて以下に考察す
る。
1.まず、除数の逆数の推定値を選択する。仮数がすべて
1ビットから成る除数では、除数の逆数の初期近似値の
大きさが除数の実際の逆数の大きさよりも大きいか、ま
たは等しくなければならない。好ましい実施例では、除
数の逆数の初期推定値の大きさが、最近数への丸め操作
を使って正しく丸められた除数の実逆数の大きさよりも
大きいか、または等しくなければならない。丸めについ
ては、この明細書の後の部分で考察する。
2.仮数がすべて1ビットから成る除数では、商の初期近
似値が(好ましい実施例における最近数への丸め操作を
使って正しく丸められた)実際の商よりも大きいか、ま
たは等しくなければならない。近似値の符号はオペラン
ドの符号の排他的Oである。
3.誤差パラメータの計算によって、前の近似値から逆数
の改善された近似値を発生させる。誤差パラメータ“e"
は次の通りである。
e=1.0−b*y y′=y+e*y ただし、y′は改善された近似値である。これら2つの
式の積のすべてのビットは、機械の通常の仮数長に丸め
る前に、和に関与しなければならない。
4.以下の計算により、商の前の近似値を使って、商
“q′”の改善された近似値を発生させる。
r=a−b*q q′=q+r*y ただし、yはステップ3に従って計算したものである。
前記の積のすべてのビットは、機械の通常の仮数長に丸
める前に、和に関与しなければならない。
5.商の近似値が最後の桁の1単位内で正しいことがわか
っている場合は、商の近似値を改善するために使用され
る除数の逆数の大きさは、(最近数への丸め操作を使っ
て)正しく丸められた除数の実際の逆数の大きさに等し
くなければならない。ただし、仮数がすべて1ビットか
ら成る除数では、近似値の大きさが正しく丸められた逆
数よりも最後の桁の1単位だけ小さいこともある、必要
とされる逆数は、ステップ3を繰返し適用することから
得られる。
本発明の方法をはっきり理解するには、丸めの技法も理
解しなければならない。一般に、4種類の丸めモード方
式がある。最近数への丸めと呼ばれる第1の丸めモード
は、仮数における最も近い表示可能数を選択する。第2
の方式は0への丸めであり、仮数に満たない分数ビット
を捨てる。これは一般に切捨てと呼ばれる。もう1つの
丸めモードは正の無限大への丸めであり、これは、すぐ
上の最大表示可能数への丸めによって丸めを行なうもの
である。逆に、負の無限大への丸めは、すぐ下の表示可
能数への丸めを行なうものである。実際には、最近数へ
の丸め操作が最も難しく、0への丸め操作が最も簡単で
ある。正の無限大への丸め及び負の無限大への丸め操作
は複雑さの点でその中間である。
好ましい実施例では、浮動小数点数演算装置は、1つの
原始演算 A+B*C と、その3つの変形、すなわち、(a)−A+B*C、(b)
−A−B*C及び(c)A−B*Cを実行する。この実施
例では、各原始演算は、1つの丸め誤差のみで実行され
る(すなわち、計算の最後の段階で丸めを実行する)。
この実施例では、Cオペランドに1.0を代入すると、通
常の加算及び減算が実行され、Aオペランドに0.0を代
入すると、通常の乗算が実現される。
本発明の目的は、IEEE浮動小数点規格に従った浮動小数
点数除算を実現することである。IEEE浮動小数点規格
は、引用により本明細書に合体する。
第1図は、本発明の方法を示す全体的流れ図である。本
発明の方法は、bによるaの除算を実行することであ
る。ステップ10で、無限大、0ならびに、数値を示さな
い数を計算から除外する。言い換えれば、そのような数
に出会ったときは、IEEE規格で要求される結果が返され
る。ステップ12で、現丸めモードがどのようなものであ
れ、現丸めモードを最近数への丸め操作に変更する。ス
テップ14で、除数の逆数の初期推定を行なう。除数の仮
数がすべて1ビットである場合は、逆数の大きさは1/b
の実際の大きさよりも大きくなければならない。ステッ
プ16で、逆数yをaと共に使用して、商の初期推定値を
計算する。ステップ18及び20で、逆数y及び商qを改善
する。「改善する」という言葉は、逆数及び商の仮数の
精度を高めることを意味する。ステップ18で、誤差項e
を計算する。次に、この誤差項を使って、逆数yの現推
定値を再計算する。同様にステップ20で、被除数及び除
数を商の最後の推定値と共に使用してまず剰余を計算
し、さらに、最後の商、算出した剰余及び逆数の最後の
推定値を使用して新しい商を推定することにより、商を
「改善する」。ステップ18及び20はどちらを先にしても
よく、繰返して実行することができる。ステップ22で、
逆数y及び商qが、それらの精度が結果を丸める前の仮
数の精度を越えるまで繰返して改善されたとき、最終剰
余を計算する。ステップ24で、元の丸めモードに戻る。
ステップ25で、最終の商を計算する。
第2図は、本発明の方法の第1の好ましい実施例を示
す。ステップ30で、非数値数、無限大及び0を除去し
て、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で、商の推定値を発生させる。ステップ
60で、図示の計算を実行することにより、逆数及び商の
仮数を「改善する」。ステップ62で、元の丸めモードに
戻る。ステップ64で、最終の商を計算をする。
最終の商を計算する最後のステップを含む2つの実施例
では、商がいつ正確になったか(すなわち、剰余がいつ
0になったか)の表示が与えられることに留意された
い。商の正確さに関するこの表示は、商の和の結果が正
確であることを示す。
第4図は、浮動小数点数演算装置のブロック・ダイヤグ
ラムである。この浮動小数点装置は、乗算及び加算を並
行して行なうことができる。好ましい実施例では、レジ
スタ70は40個の浮動小数点数演算ワードを含む。制御線
108を介する制御回路106の制御下で、浮動小数点数演算
データ・ワードがA演算ラッチ72にロードされる。同様
に、B演算ラッチ74及びC演算ラッチ76の内容がロード
される。A演算ラッチ72及びB演算ラッチ74の内容は乗
算機構82に供給される。B演算ラッチ74の内容は、後で
説明する乗算機構78を通過する。乗算機構82は部分積を
ラッチ86に供給し、第2の部分積をラッチ88に供給す
る。C演算ラッチ76は浮動小数点数を乗算機構80に介し
て桁合せシフタ84に供給する。桁合せシフタ84の出力は
加数ラッチ90に供給される。乗算機構82及び桁合せシフ
タ84によって操作されるレジスタの内容は、浮動小数点
数の仮数の内容であることを理解されたい。指数の乗算
は制御回路106で行なわれ、加算によって行なわれる。
指数計算の結果から、C演算ラッチの内容を適切にシフ
トさせるため、入力が桁合せシフタ84に供給され、前記
内容をA演算ラッチ72とB演算ラッチ74の積に加えるこ
とができるようになる。
3:2桁上げ保管加算機構92はラッチ86、88及び90の内容
を受け取る。2つの出力は全加算機構94に供給される。
全加算機構94の内容が正規化回路96で正規化され、次に
結果ラッチ98に記憶される。結果ラッチ98の出力は周回
増分機構100に供給される。周回増分機構100の出力はレ
ジスタ・ファイル70に、またはマルチプレクサ78の代り
として乗算機構に、またはマルチプレクサ80を介して桁
合せシフタ84に供給することができる。この浮動小数点
数演算論理装置はパイプライン方式で動作するので、マ
ルチプレクサ78及び80を設けることにより、前の命令か
らの結果を、レジスタ・ファイル70に記憶することな
く、後続の命令のために使用することができる。
除算では、制御回路106が、線104を介して除算マイクロ
コード制御回路102と共に、第1図、第2図及び第3図
に示す除算手順を実行する働きをする。
第5図は、制御回路106の制御の流れを示す。まず、ス
テップ200で浮動小数点命令を復号し、ステップ202でオ
ペランドを(レジスタ・ファイル70から)読み取る。ス
テップ204で、オペランドが(特別な場合を除外する第
2図のステップ30に対応する)通常の数であるか否かを
判定する。オペランドが通常の数でない場合は、制御の
流れはステップ206に進んで、IEEE規格に従ってそれら
の数を「除外」し、ステップ200に戻る。しかし、それ
らの数が通常の数である場合は、制御の流れはステップ
208に進み、除算命令があるかどうか判定する。除算命
令がない場合は、制御の流れはステップ216に進む。除
算命令が存在する場合は、制御の流れは除算マイクロコ
ード210に進む。除算マイクロコード210は、除算マイク
ロコード手順を開始するステップ212と、マイクロコー
ドを実行するステップ214から成る。ステップ214を終え
ると、制御の流れはステップ216に進み、乗算を実行す
る。次にステップ218で、加算を実行し、続いてステッ
プ220でレジスタ・ファイル70に書き戻す。ステップ216
(乗算ステップ)は、ステップ44での逆数による剰余r
の乗算に対応する。第5図のステップ218は、ステップ4
4での剰余と逆数の積に商の加算に対応する。レジスタ
に書き戻すステップ220は、最終の商のレジスタ・ファ
イル70への書込みに対応する。
第6図は、除算マーカ・コード210の内容を示す。ま
ず、ステップ230で、丸めモードを最近数への丸めモー
ドにリセットする。ステップ232で、逆数yを索引テー
ブルで調べて初期逆数推定値を求める。ステップ234
で、誤差項eを発生させる。ステップ236で、商qの初
期近似を行なう。ステップ238及びステップ240で、ステ
ップ240に列挙された計算を実行することにより、逆数
y及び商qの精度を高める。ステップ242で、元の丸め
モードに戻る。
前述のように、乗算ステップ216、加算ステップ218及び
書戻しステップ220は、最終の商の計算及び記憶(第2
図のステップ44)に対応する。
浮動小数点装置による演算の結果、浮動小数点数除算か
ら得られた商は、追加の回路を必要とすることなく、所
望の精度で正しいものとなる。
以下、本発明の好ましい実施例で必要とされる、ある数
の逆数の第一近似値の発生について説明する。この説明
の終りにあるテーブルは、本発明に従って近似値を発生
させる。
演算RECIP Y,Bは浮動小数点数演算である。Y及びBは
共に浮動小数点レジスタである。演算の結果はレジスタ
Yに置かれ、Bの逆数に対する近似値である。この演算
の詳細は以下の通りである。
BがNaNである場合、Y=B; そうではなくて、Bが正または負の無限大である場合、
Yは正または負の0である; そうではなくて、Bが正または負の0である場合、Yは
正または負の無限大である; そうではなくて、Bが非正規化されている場合は、正規
化された内部形式でBを表す。
Yの符号=Bの符号 Yの不偏指数=1−Bの不偏指数 Yの先頭の9個の分数*ビット=テーブル(Bの先頭の
8個の分数*ビット)。
注:「先頭の8個の分数ビット」または「先頭の9個の
分数ビット」は、IEEE様式で物理的に表示されていな
い、先頭の暗示された1ビットを排除する。言い換えれ
ば、正規化された数では、「先頭の8個の分数ビット」
は、0から始まる通常のIBMの左から右への番号付けで
は、ダブルワードのビット12−19である。
ここに示されたテーブルによれば、0、無限大及びNaN
を含む特別の場合を除いて、0≦ABS(1−BY)≦1/362
である。具体的には、すべて1の除数では、RECIP動作
の構成は、正しく丸められた結果への収束を保証するた
めに必要となる、逆数の大きさを過大に見積もる。
RECIPをコンピュータ・アーキテクチャで示す必要はな
く、その代り、DIVIDE命令による使用のためにしか使用
できなくてもよい。その場合、NaN、無限大または0を
処理する必要はない。というのは、これらのケースはハ
ードウェアにより特別なケースとして処理されるからで
ある。
下記に長様式のIEEE数に対してRECIP動作で必要な分数
を構成するために必要なテーブルを16進数で示す。(テ
ーブルの位置及び内容は16進数で示してある。テーブル
の値は長さ9ビットで左寄せしてある。) 以下、好ましい実施例に従って実行される幾つかの除算
例を示す。すべての数は16進表記法で表され、IEEE 2
進浮動小数点規格に従って、先頭ビットは符号ビットを
表し、次の11ビットは超過−1023指数を表し、残りの52
ビットは仮数を表す(この先頭ビットは正規化された数
では表示されない)。
各例の始めに、分子、分母ならびに丸めモードを示す。
好ましい実施例で生成される値を左側に示してある。こ
れらの値は、商、逆数、剰余、及び逆数の誤差に対する
連続した近似値を見つけやすくするよう意図されてい
る。終りに、本発明に従って発生される商に対して残さ
れた剰余、及び商の最も近い近似値によって残された剰
余を示す。本発明による近似では、IEEEの最近数への丸
め操作モードで必要とされる、より小さな剰余が残るこ
とに留意されたい。
各例の右側には、わずかに変更された計算が示されてお
り、本発明による規則の1つに従わない場合に商がどの
ようにずれたものになるかを示す。
ここで、除数の仮数がすべて1ビットである場合を示
す。逆数及び商の初期推定値が過大見積りではなく過小
見積りである場合は、たとえ過小見積りが近似性の点で
はるかにすぐれた推定であったとしても、繰返しによっ
て、正しく丸められた商に収束しない。
この例では、右側の正しくないバージョンでは、qfを計
算するためy4の代りにy3を使用した。除数の逆数のこれ
ら2つの近似値は1ビットしか異なっていないことに留
意されたい。たとえy3が丸めの前の65ビット以上に関し
て正しくても、規則5で要求されるように、最後の桁の
1単位内で正しい逆数の近似値から計算されたものでは
ない。したがって、最終の商を計算するには十分正確で
なかった。
前記2つの事例は、繰返し逆数法の実施が従来うまくい
かなかった「困難な除算の問題」の例である。本発明の
方法はこれらの困難を克服する。「困難な問題」が極め
てまれなことは事実である。本発明によらなくても大部
分の除算は正しく行なえるが、本発明の開示を用いる
と、丸めモードにかかわらず、かつ最後に条件付き調整
なしに、すべての除算を正しく行なうことができる。
さらに、正確な商の場合は、商の終りから2番目の近似
値が既に正しく、最終補正は正しい答に0を加えるもの
であり、常に正確な演算である。
以上、本発明をこれらの特定の実施例に関して説明して
きたが、この説明を限定的なものと解釈すべきではな
い。本発明の説明を参照すれば、開示された実施例の種
々の変形ならびに本発明のその他の実施例が、当業者に
は明らかになるはずである。したがって、頭記の特許請
求の範囲は、本発明の真の範囲に含まれるそのような変
形または実施例を含むものである F.発明の効果 上述の如く、本発明によれば、浮動小数点除算の精度の
高い実行が可能となる。
【図面の簡単な説明】
図面の簡単な説明 第1図は、浮動小数点数除算法を示す流れ図である。 第2図は、浮動小数点数除算法の第1の好ましい実施例
を示す流れ図である。 第3図は、浮動小数点数除算の第2の好ましい実施例を
示す流れ図である。 第4図は、浮動小数点数演算装置を示すブロック・ダイ
ヤグラムである。 第5図は、浮動小数点数演算装置用の制御回路の動作を
示す流れ図である。 第6図は、浮動小数点数除算制御装置の動作を示す流れ
図である。 70……レジスタ・ファイル、72、74、76……演算ラッ
チ、78、80……マルチプレクサ、82……乗算機構、84…
…桁合せシフタ、102……除算マイクロコード、106……
制御回路。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭49−96647(JP,A) 特開 昭54−136147(JP,A) 特開 昭55−20508(JP,A) 特開 昭61−262930(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】加算回路に接続された乗算回路を有し、前
    記加算回路は丸め回路に接続され、かつ前記乗算、加算
    及び丸め回路は各々制御回路に接続されているデータ処
    理システムにおいて、Nビットの仮数を有する商を発生
    させるために、除数(b)による被除数(a)の浮動小
    数点演算を実行するために前記制御回路によって実行さ
    れる制御方法であって、 (1)丸め回路の丸めモードを最近数への丸めモードに
    設定し、 (2)除数の逆数のテーブルから除数の逆数の初期の推
    定値(y)にアクセスし、 (3)前記逆数の推定値(y)と前記被除数(a)とを
    前記乗算回路において乗算することによって前記商の初
    期の推定値(q)を計算し、 (4)前記乗算回路、前記加算回路及び丸め回路を用い
    て e=1−b*y y=y+e*y を計算することによって前記逆数推定値(y)の値を改
    善し、 (5)前記乗算回路、前記加算回路及び丸め回路を用い
    て r=a−b*q q=q+r*y を計算することによって前記商推定値(q)の値を改善
    し、 (6)前記逆数推定値(y)及び前記商推定値(q)の
    精度がNビットを越えるまでステップ(4)及び(5)
    を繰り返し、 (7)丸め回路の丸めモードを元のモードに設定する 以上のステップを含む前記方法。
JP2003659A 1989-01-13 1990-01-12 制御方法 Expired - Lifetime JPH0687219B2 (ja)

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 JPH02227726A (ja) 1990-09-10
JPH0687219B2 true 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)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
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
KR940008617B1 (ko) * 1989-12-29 1994-09-24 모토로라 인코포레이티드 수렴성 디비젼에서 에러 및 예외 보정을 위한 자원 할당 방법 및 장치
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
JP2020166661A (ja) * 2019-03-29 2020-10-08 日本電気株式会社 除算装置、除算方法及びプログラム
CN115619883B (zh) * 2022-10-31 2026-04-24 上海华虹宏力半导体制造有限公司 版图数据精度的转换方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3828175A (en) * 1972-10-30 1974-08-06 Amdahl Corp Method and apparatus for division employing table-lookup and functional iteration
JPS54136147A (en) * 1978-04-13 1979-10-23 Panafacom Ltd Divider
JPS5520508A (en) * 1978-06-29 1980-02-14 Panafacom Ltd Processor for division
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 除算装置
JPS61262930A (ja) * 1985-05-17 1986-11-20 Nec Corp 除算装置

Also Published As

Publication number Publication date
DE68926289D1 (de) 1996-05-23
EP0377992A2 (en) 1990-07-18
EP0377992B1 (en) 1996-04-17
EP0377992A3 (en) 1992-01-08
JPH02227726A (ja) 1990-09-10
DE68926289T2 (de) 1996-10-10

Similar Documents

Publication Publication Date Title
US5249149A (en) Method and apparatus for performining floating point division
US6240433B1 (en) High accuracy estimates of elementary functions
US8595279B2 (en) Floating-point processor with reduced power requirements for selectable subprecision
JP3541066B2 (ja) コンピュータにおいて除算および平方根計算を実施するための方法および装置
US6360241B1 (en) Computer method and apparatus for division and square root operations using signed digit
JP6744916B2 (ja) 冗長表現を用いた、第1および第2のオペランドの積算
US5954789A (en) Quotient digit selection logic for floating point division/square root
JP6882281B2 (ja) ベクトルの処理のためのレーン位置情報
JP6803381B2 (ja) 重複ビットを使用する数値の冗長表現
US5671170A (en) Method and apparatus for correctly rounding results of division and square root computations
JPH03136129A (ja) 除算回路及び除算方法
JP2012069123A (ja) 選択可能な下位精度を有する浮動小数点プロセッサ
JP3418460B2 (ja) 倍精度除算回路および方法
US8060551B2 (en) Method and apparatus for integer division
US20080263336A1 (en) Processor Having Efficient Function Estimate Instructions
JPH0833817B2 (ja) 基数16除算器
US4594680A (en) Apparatus for performing quadratic convergence division in a large data processing system
JP6877812B2 (ja) 重複伝搬演算
US6941334B2 (en) Higher precision divide and square root approximations
US4996660A (en) Selection of divisor multipliers in a floating point divide circuit
JPH05250146A (ja) 整数累乗処理を行なうための回路及び方法
EP0377992A2 (en) Floating point division method and apparatus
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
US20040083255A1 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US6963895B1 (en) Floating point pipeline method and circuit for fast inverse square root calculations