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
Application number
JP2003659A
Other languages
English (en)
Other versions
JPH0687219B2 (ja
Inventor
Daniel Cocanougher
ダニエル・コカノーガー
Peter Willy Markstein
ピイーター・ウイリイー・マークステイン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
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

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5351Multiplicative non-restoring division, e.g. SRT, using multiplication in quotient selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5355Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5356Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49957Implementation 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。
754−1985と呼ばれ、引用により本明細書に編入
する。I EEE浮動小数点規格に準拠しようとするコ
ンピュータは、すべての場合に正しい結果を得なければ
ならない。
浮動小数点数除算を実行するだめの技法を示す特許がい
くつかある。米国特許第4442492号は、浮動小数
点仮数の適当なビットに丸めビットを挿入するための技
法を含むデータ処理システムを開示している。米国特許
第4413326号は、各々それ自体の制御用読取り専
用メモリを備えた主マイクロプロセッサ及び補助マイク
ロプロセッサを使って、可変数のステップで浮動小数点
計算を実行するための機構を開示している。浮動小数点
数演算には両方のマイクロプロセッサが関与する。除算
を実行する際に、仮数が正規化のため予め条件づけられ
、最上位ビットは論理1である。仮数の先頭ビットが演
算の完了を示す1になるまで、演算が進行する。
米国特許第4481600号は、連続的繰返しから商を
発生させる技法を開示している。
浮動小数点数除算を扱っているその他の従来技術には、
適当な逆除数を使って商を計算する除法を開示した米国
特許第4707798号がある。
この特許は、連続的繰返し処理により中間的な商を計算
した後で、検査及び訂正を行なうのに必要な時間を短縮
できる方法を開示している。
]0 米国特許第3508038号は、分数の2進被除数を分
数の2進除数で割り算するための装置を開示しており、
被除数と除数の近似的逆数との連続的乗算を実行するこ
とにより商を発生させる。
米国特許第4011439号は、2つの2進数の商を発
生させる、加速された方法を開示している。
除数アレイを使って2進除数の逆数を効果的に形成し、
逆数と被除数を乗算することにより商を求める。米国特
許第3648038号は、フロー・スルー手法を使っで
ある数の逆数を得るための方法を開示している。この方
法では、除数の逆数に被除数を乗算して所望の商を発生
させる。米国特許第3E133018号は、ある数の逆
数を2回の乗算で見つけ、これら2数の商を3回の乗算
で見つけるために使用される方法を開示している。米国
特許第3777132号は、除数の逆数に被除数を乗算
することにより、2進除算を実行するための方法を開示
している。商は除数の逆数と同時に発生する。
C0発明が解決しようとする課題 本発明の目的は、乗算及び加算データ処理回路を使って
実現できる、IEEE演算規格に従って浮動小数点数除
算を実行するための方法を提供することである。本発明
のもう一つの目的は、最終結果を調節するために条件付
きテストを使用する必要なく、事前に選択された丸め方
式に従って、仮数のビットが正しいことを保証するため
の方法を提供することである。
06課題を解決するための手段 本発明によれば、nビットの仮数を有する商を発生させ
るため、除数による被除数の浮動小数点数除算を実行す
るための方法が提供される。この方法は、(1)除数の
逆数のテーブルから除数の逆数の初期推定値にアクセス
するステップ、(2)逆数の初期推定値から商の初期推
定値及び、対応する剰余の推定値を計算するステップ、
(3)誤差パラメータを計算し、誤差パラメータと逆数
の初期推定値、商の初期推定値、剰余の初期推定値から
逆数の現推定値、商の現推定値及び剰余の現推定値を繰
返して計算することにより、逆数推定値、商推定値及び
剰余推定値の仮数の精度を高めるステップ、(4)逆数
推定値の精度及び商推定値の精度がnビットを越えるま
でステップ(3)を繰返すステップ、及び(5)最後の
商の現推定値に最新の逆数の現推定値と最新の剰余推定
値の積を加えたものから、最終の商を計算するステップ
から成る。
また本発明によれば、浮動小数点数除算を実行するため
の装置が提供される。この装置では、浮動小数点数除算
は、nビットの仮数を有する商を発生させる除数による
被除数の除算である。この装置は、除数の逆数の初期推
定値を計算するための回路を備える。また、逆数の初期
推定値から商の初期推定値を計算するための回路も含む
。誤差パラメータを計算し、誤差パラメータと逆数の初
期推定値とから逆数の現推定値を計算することにより、
逆数推定値の初期推定値の精度を高めるための回路が設
けられている。逆数の現推定値がら現商を計算すること
により、商の初期推定値の仮数の精度を高めるための回
路も設けられている。
さらに、逆数の現推定値と商の現推定値から剰余推定値
を計算するための回路も設けられている。
逆数の商及び剰余の仮数の精度は高めるための回路が設
けられている。逆数及び商の精度がnビットを越えるま
で、精度が高められる。最後に、最後の現商に最後の現
逆数と最後の剰余の積を加えたものから、最終の商を計
算する回路が設けられている。
好ましい実施例では、浮動小数点数除算を実行するため
の方法及び装置が提供される。まず、前記のように、最
近数への丸め操作による丸め方式を実現する浮動小数点
数除算を行なう。最終演算、すなわち、最終の商の計算
を実行する際に、最近数への丸めの他に、0への丸め、
負の無限大への丸め、または正の無限大への丸め等の他
の丸め方式を使用することも可能である。
さらに本発明では、正確な商がいつ計算されたかを知ら
せる機構が設けられている。これは、計算された剰余が
Oになったときに行なわれる。
E、実施例 以下で考察する浮動小数点数除算を実行するための方法
は、オペランド及び結果の仮数の処理のみを扱う。指数
の処理は当技術分野では周知であるので、この考察では
扱わない。除算の5つのステップについて以下に考察す
る。
1、まず、除数の逆数の推定値を選択する。仮数がすべ
て1ビツトから成る除数では、除数の逆数の初期近似値
の大きさが除数の実際の逆数の大きさよりも大きいか、
または等しくなければならない。好ましい実施例では、
除数の逆数の初期推定値の大きさが、最近数への丸め操
作を使って正しく丸められた除数の実逆数の大きさより
も大きいか、または等しくなければならない。丸めにつ
いては、この明細書の後の部分で考察する。
2、仮数がすべて1ビツトから成る除数では、商の初期
近似値が(好ましい実施例における最近数への丸め操作
を使って正しく丸められた)実際の商よりも大きいか、
または等しくなければならない。近似値の符号はオペラ
ンドの符号の排他的0である。
3、誤差パラメータの計算によって、前の近似値から逆
数の改善された近似値を発生させる。誤差パラメータ“
e“は次の通りである。
e  =  1.0 −  b*y y’=    y    +   e*Yただし、V 
’は改善された近似値である。これら2つの式の積のす
べてのビットは、機械の通常の仮数長に丸める前に、和
に関与しなければならない。
4、以下の計算により、商の前の近似値を使って、商″
q″”の改善された近似値を発生させる。
r  =  a−b*q q’=    q    十   r*yただし、yは
ステップ3に従って計算したものである。前記の積のす
べてのビットは、機械の通常の仮数長に丸める前に、和
に関与しなければならない。
5、商の近似値が最後の桁の1単位内で正しいことがわ
かっている場合は、商の近似値を改善するために使用さ
れる除数の逆数の大きさは、(最近数への丸め操作を使
って)正しく丸められた除数の実際の逆数の大きさに等
しくなければならない。ただし、仮数がすべて1ビツト
から成る除数では、近似値の大きさが正しく丸められた
逆数よりも最後の桁の1単位だけ小さいこともある、必
要とされる逆数は、ステップ3を繰返し適用することか
ら得られる。
本発明の方法をはっきり理解するには、丸めの技法も理
解しなければならない。一般に、4種類の丸めモード方
式がある。最近数への丸めと呼ばれる第1の丸めモード
は、仮数における最も近い表示可能数を選択する。第2
の方式は0への丸めであり、仮数に満たない分数ビット
を捨てる。これは一般に切捨てと呼ばれる。もう1つの
丸めモードは正の無限大への丸めであり、これは、すぐ
上の最大表示可能数への丸めによって丸めを行なうもの
である。逆に、負の無限大への丸めは、すぐ下の表示可
能数への丸めを行なうものである。実際には、最近数へ
の丸め操作が最も難しく、Oへの丸め操作が最も簡単で
ある。正の無限大への丸め及び負の無限大への丸め操作
は複雑さの点でその中間である。
好ましい実施例では、浮動小数点数演算装置は、1つの
原始演算 A  +  B*C と、その3つの変形、すなわち、(a)−A+B*C,
(b)−A−B*C及び(c)A−B*Cを実行する。
この実施例では、各原始演算は、1つの丸め誤差のみで
実行される(すなわち、計算の最後の段階で丸めを実行
する)。この実施例では、Cオペランドに1.0を代入
すると、通常の加算及び減算が実行され、Aオペランド
にO20を代入すると、通常の乗算が実現される。
本発明の目的は、■EEE浮動小数点規格に従った浮動
小数点数除算を実現することである。IEEE浮動小数
点規格は、引用により本明細書に合体する。
第1図は、本発明の方法を示す全体的流れ図である。本
発明の方法は、bによるaの除算を実行することである
。ステップ10で、無限大、0ならびに、数値を示さな
い数を計算から除外す石。
言い換えれば、そのような数に出会ったときは′、IE
EE規格で要求される結果が返される。ステップ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で、非数値数、無限大及び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で、商の推定値を発生させる。
ステップ60で、図示の計算を実行することにより、逆
数及び商の仮数を「改善する」。ステップ62で、元の
丸めモードに戻る。ステップ64で、最終の商を計算す
る。
最終の商を計算する最後のステップを含む2つの実施例
では、商がいつ正確になったか(すなわち、剰余がいつ
0になったか)の表示が与えられることに留意されたい
。商の正確さに関するこの表示は、商の和の結果が正確
であることを示す。
第4図は、浮動小数点数演算装置のブロック・ダイヤグ
ラムである。この浮動小数点装置は、乗算及び加算を並
行して行なうことができる。好ましい実施例では、レジ
スタ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の積に加えることがで
きるようになる。
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に進んで、
■EEE規格に従ってそれらの数を「除外」シ、ステッ
プ200に戻る。しかし、それらの数が通常の数である
場合は、制御の流れはステップ208に進み、除算命令
があるかどうか判定する。除算命令がない場合は、制御
の流れはステップ216に進む。除算命令が存在する場
合は、制御の流れは除算マイクロコード210に進む。
除算マイクロコード210は、除算マイクロコード手順
を開始するステップ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で、元の丸めモードに戻る。
前述のように、乗算ステップ216、加算ステップ21
8及び書戻しステップ220は、最終の商の計算及び記
憶(第2図のステップ44)に対応する。
浮動小数点装置による演算の結果、浮動小数点数除算か
ら得られた商は、追加の回路を必要とすることなく、所
望の精度で正しいものとなる。
以下、本発明の好ましい実施例で必要とされる、ある数
の逆数の第一近似値の発生について説明する。この説明
の終りにあるテーブルは、本発明に従って近似値を発生
させる。
演算RECIP  Y、Bは浮動小数点数演算である。
Y及びBは共に浮動小数点レジスタである。
演算の結果はレジスタYに置かれ、Bの逆数に対する近
似値である。この演算の詳細は以下の通りである。
BがNaNである場合、Y 二 B; そうではなくて、Bが正または負の無限大である場合、
Yは正または負のOである; そうではなくて、Bが正または負の0である場合、Yは
正または負の無限大である; そうではなくて、Bが非正規化されている場合は、正規
化された内部形式でBを表す。
Yの符号 = Bの符号 Yの不偏指数 = 1−Bの不偏指数 Yの先頭の9個の分数*ビット = テーブル(Bの先
頭の8個の分数*ビット)。
注:「先頭の8個の分数ビット」または「先頭の9個の
分数ビット」は、IEEE様式で物理的に表示されてい
ない、先頭の暗示された1ビツトを排除する。言い換え
れば、正規化された数では、「先頭の8個の分数ビット
」は、Oから始まる通常のIBMの左から右への番号付
けでは、ダブルワードのビット12−19である。
ここに示されたテーブルによれば、0、無限大及びNa
Nを含む特別の場合を除いて、0≦ABS(1−BY)
≦1/362である。具体的には、すべて1の除数では
、RECIP動作の構成は、正しく丸められた結果への
収束を保証するために必要となる、逆数の大きさを過大
に見積もる。
RECIPをコンピュータ・アーキテクチャで示す必要
はなく、その代り、DIvIDE命令による使用のため
にしか使用できなくてもよい。その場合、N a N 
%無限大またはOを処理する必要はない。というのは、
これらのケースはハードウェアにより特別なケースとし
て処理されるからである。
下記に長様式のIEEE数に対してRECIP動作で必
要な分数を構成するために必要なテーブルを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ビツトは仮数を表す(この先頭ビットは正
規化された数では表示されない)。
各側の始めに、分子、分母ならびに丸めモードを示す。
好ましい実施例で生成される値を左側に示しである。こ
れらの値は、商、逆数、剰余、及び逆数の誤差に対する
連続した近似値を見つけやすくするよう意図されている
。終りに、本発明に従って発生される商に対して残され
た剰余、及び商の最も近い近似値によって残された剰余
を示す。
本発明による近似では、■EEEの最近数への丸め操作
モードで必要とされる、より小さな剰余が残ることに留
意されたい。
各側の右側には、わずかに変更された計算が示されてお
り、本発明による規則の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ビツトである場合を示す。逆数及び商の初
期推定値が過大見積りではなく過小見積りである場合は
、たとえ過小見積りが近似性の点ではるかにすぐれた推
定であったとしても、繰返しによって、正しく丸められ
た商に収束しない。
分子:  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を使用した。
除数の逆数のこれら2つの近似値は1ビツトしが異なっ
ていないことに留意されたい。たとえy3が丸めの前の
65ビツト以上に関して正しくても、規則5で要求され
るように、最後の桁の1単位内で正しい逆数の近似値か
ら計算されたものではない。したがって、最終の商を計
算するには十分正確でなかった。
前記2つの事例は、繰返し逆数法の実施が従来うまくい
かなかった「困難な除算の問題」の例である。本発明の
方法はこれらの困難を克服する。
「困難な問題」が極めてまれなことは事実である。
本発明によらなくても大部分の除算は正しく行なえるが
、本発明の開示を用いると、丸めモードにかかわらず、
かつ最後に条件付き調整なしに、すべての除算を正しく
行なうことができる。
さらに、正確な商の場合は、商の終りから2番目の近似
値が既に正しく、最終補正は正しい答に0を加えるもの
であり、常に正確な演算である。
以上、本発明をこれらの特定の実施例に関して説明して
きたが、この説明を限定的なものと解釈すべきではない
。本発明の説明を参照すれば、開示された実施例の種々
の変形ならびに本発明のその他の実施例が、当業者には
明らかになるはずである。したがって、頭記の特許請求
の範囲は、本発明の真の範囲に含まれるそのような変形
または実施例を含むものである F9発明の効果 上述の如く、本発明によれば、浮動小数点除算の精度の
高い実行が可能となる。
【図面の簡単な説明】
第1図は、浮動小数点数除算法を示す流れ図である。 第2図は、浮動小数点数除算法の第1の好ましい実施例
を示す流れ図である。 第3図は、浮動小数点数除算の第2の好ましい実施例を
示す流れ図である。 第4図は、浮動小数点数演算装置を示すブロック・ダイ
ヤグラムである。 第5図は、浮動小数点数演算装置用の制御回路の動作を
示す流れ図である。 第6図は、浮動小数点数除算制御装置の動作を示す流れ
図である。 70・・・・レジスタ・ファイル、72.74.76・
・・・演算ラッチ、78.80・・・・マルチプレクサ
、82・・・・乗算機構、84・・・・桁合せシフタ、
102・・・・除算マイクロコード、106・・・・制
御回路。

Claims (6)

    【特許請求の範囲】
  1. (1)Nビットの仮数を有する商を発生させるために、
    除数による被除数の浮動小数点数除算を実行するための
    方法であって、 (a)除数の逆数のテーブルから前記除数の逆数の初期
    推定値にアクセスするステップと、(b)前記逆数の前
    記初期推定値から、前記商の初期推定値及び対応する剰
    余の推定値を計算するステップと、 (c)誤差パラメータを計算し、前記誤差パラメータ及
    び前記初期逆数推定値、初期商推定値及び初期剰余推定
    値から、現逆数推定値、現商推定値及び現剰余推定値を
    繰り返し計算することにより、前記逆数推定値、商推定
    値及び剰余推定値の前記仮数の前記精度を高めるステッ
    プと、 (d)前記逆数推定値及び前記商推定値の前記精度がN
    ビットを越えるまでステップ(c)を繰り返すステップ
    と、 (e)前記最後の現商推定値に前記最後の現逆数推定値
    と前記最後の剰余推定値の積を加えたものから、最終の
    商を計算するステップ を含む方法。
  2. (2)Nビットの仮数を有する商を発生させるために、
    除数による被除数の浮動小数点数除算を実行するための
    方法であって、 (a)前記除数の逆数の初期推定値を計算するステップ
    と、 (b)前記逆数の前記初期推定値から前記商の初期推定
    値を計算するステップと、 (c)誤差パラメータを計算し、前記誤差パラメータ及
    び前記逆数の前記初期推定値から前記逆数の現推定値を
    計算することにより、前記逆数の前記初期推定値の前記
    精度を高めるステップと、(d)前記逆数の前記現推定
    値から現商を計算することにより、前記商の前記初期推
    定値の前記仮数の前記精度を高めるステップと、 (e)前記現逆数推定値及び前記現商推定値から剰余の
    推定値を計算するステップと、 (f)前記逆数推定値及び前記商推定値がNビットを越
    えるまで、ステップ(c)、(d)及び(e)を繰り返
    すステップと、 (g)前記最後の現商推定値に前記最新の現逆数推定値
    と前記最新の剰余推定値との積を加えたものから最終の
    商を計算するステップ を含む方法。
  3. (3)Nビット精度の丸められた仮数を有する商を発生
    させるために、除数による被除数の浮動小数点数除算を
    実行するための方法であって、 (a)前記除数の逆数の初期推定値を計算するステップ
    と、 (b)前記逆数の前記初期推定値から前記商の初期推定
    値を計算し、最近数への丸め操作によって丸めを行なう
    ステップと、 (c)誤差パラメータを計算し、前記誤差パラメータ及
    び前記逆数の前記初期推定値から前記逆数の現推定値を
    計算し、最近数への丸め操作によって丸めを行なうこと
    により、前記逆数の前記初期推定値の前記精度を高める
    ステップと、 (d)前記逆数の前記現推定値から現商を計算し、最近
    数への丸め操作によって丸めを行なうことにより、前記
    商の前記初期推定値の前記仮数の前記精度を高めるステ
    ップと、 (e)前記現在の逆数推定値及び前記現商推定値から剰
    余の推定値を計算し、最近数への丸め操作によって丸め
    を行なうステップと、 (f)前記逆数推定値及び前記商推定値の精度がNビッ
    トを越えるまで、ステップ(c)、(d)及び(e)を
    繰り返すステップと、 (g)前記最後の現商推定値に前記最新の現逆数推定値
    と前記最新の剰余推定値との積を加えたものから最終の
    商を計算し、最近数への丸め操作以外の操作によって丸
    めを行なうステップ を含む方法。
  4. (4)Nビットの仮数を有する商を発生させるために、
    除数による被除数の浮動小数点数除算を実行するための
    装置であって、 除数の逆数のテーブルから前記除数の逆数の初期推定値
    にアクセスするための手段と、 前記逆数の前記初期推定値から前記商の初期推定値及び
    対応する剰余推定値を計算するための手段と、 誤差パラメータを計算し、前記逆数推定値及び前記商推
    定値の前記精度がNビットを越えるまで、前記誤差パラ
    メータ及び前記初期逆数推定値、初期商推定値、初期剰
    余推定値から現逆数推定値、現商推定値及び現剰余推定
    値を繰り返して計算することにより、前記逆数推定値、
    商推定値及び剰余推定値の前記精度を高めるための手段
    と、前記最後の現商推定値に前記最新の現逆数推定値と
    前記最新の剰余推定値との積を加えたものから、最終の
    商を計算するための手段 を含む装置。
  5. (5)Nビットの仮数を有する商を発生させるために、
    除数による被除数の浮動小数点数除算を実行するための
    装置であって、 前記除数の逆数の初期推定値を計算するための手段と、 前記逆数の前記初期推定値から前記商の初期推定値を計
    算するための手段と、 誤差パラメータを計算し、前記誤差パラメータ及び前記
    逆数の前記初期推定値から前記逆数の現推定値を計算す
    ることにより、前記逆数の前記初期推定値の前記精度を
    高めるための手段と、前記逆数の前記現推定値から現商
    を計算することにより、前記商の前記初期推定値の前記
    仮数の前記精度を高めるための手段と、 前記現逆数推定値及び前記現商推定値から剰余の推定値
    を計算するための手段と、 前記逆数推定値及び前記商推定値の前記精度がNビット
    を越えるまで、前記現逆数、商及び剰余の現推定値の前
    記仮数の前記精度を高めるための手段と、 前記最後の現商推定値に前記最新の現逆数推定値と前記
    最新の剰余推定値との積を加えたものから、最終の商を
    計算するための手段 を含む装置。
  6. (6)Nビット精度の丸められた仮数を有する商を発生
    させるために、除数による被除数の浮動小数点数除算を
    実行するための装置であって、 前記除数の逆数の初期推定値を計算するための手段と、 前記逆数の前記初期推定値から前記商の初期推定値を計
    算し、最近数への丸め操作によって丸めを行なうための
    手段と、 誤差パラメータを計算し、前記誤差パラメータ及び前記
    逆数の前記初期推定値から前記逆数の現推定値を計算し
    、最近数への丸め操作によって丸めを行なうことにより
    、前記逆数の前記初期推定値の前記仮数の前記精度を高
    めるための手段と、前記逆数の前記現推定値から現商を
    計算し、最近数への丸め操作によって丸めを行なうこと
    により、前記商の前記初期推定値の前記仮数の前記精度
    を高めるための手段と、 前記現逆数推定値及び前記現商推定値から剰余の推定値
    を計算し、最近数への丸め操作によって丸めを行なうた
    めの手段と、 前記逆数推定値及び前記商推定値の前記精度がNビット
    を越えるまで、前記逆数及び商の前記現推定値の前記仮
    数の前記精度を高めるための手段と、 前記最後の現商推定値に前記最新の現逆数推定値と前記
    最新の剰余推定値との積を加えたものから、最終の商を
    計算し、最近数への丸め操作以外の丸めを行なうための
    手段 を含む装置。
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 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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020166661A (ja) * 2019-03-29 2020-10-08 日本電気株式会社 除算装置、除算方法及びプログラム

Families Citing this family (7)

* 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
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 除算装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 演算処理装置および演算方法