JP2938547B2 - 演算処理装置 - Google Patents
演算処理装置Info
- Publication number
- JP2938547B2 JP2938547B2 JP27353490A JP27353490A JP2938547B2 JP 2938547 B2 JP2938547 B2 JP 2938547B2 JP 27353490 A JP27353490 A JP 27353490A JP 27353490 A JP27353490 A JP 27353490A JP 2938547 B2 JP2938547 B2 JP 2938547B2
- Authority
- JP
- Japan
- Prior art keywords
- digital data
- digit
- rounding
- value
- circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 58
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000014509 gene expression Effects 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 238000002940 Newton-Raphson method Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000006467 substitution reaction Methods 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000003252 repetitive effect Effects 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
-
- 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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
-
- 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/544—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 for evaluating functions by calculation
-
- 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/544—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 for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
- G06F7/5525—Roots or inverse roots of single operands
-
- 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/49952—Sticky bit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
- G06F7/49947—Rounding
- G06F7/49957—Implementation of IEEE-754 Standard
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 産業上の利用分野 本発明は、算術演算処理方式に係り、特に近似演算に
よって求めた演算結果から真値を丸めることによって得
られる値と同じ結果を得る演算処理装置に関するもので
ある。
よって求めた演算結果から真値を丸めることによって得
られる値と同じ結果を得る演算処理装置に関するもので
ある。
従来の技術 演算処理装置において、関数の解を高速に求める方法
として収束型演算がある。例えば、除算や平方根演算な
どは、ニュートンラフソン法により、加算と乗算を繰り
返すことにより行なうことができる。この方法によれ
ば、Z=X/Yの除算は、最初の1/Yの近似値R0をテーブル
を引いて求め、 Ri=Ri-1(2−Ri-1Y) (1) の漸化式をn回繰り返し用いて1/Yの近似解Rnを求める
ことができ、その後、RnとXを乗算してX/Yの近似値を
得ることができる。
として収束型演算がある。例えば、除算や平方根演算な
どは、ニュートンラフソン法により、加算と乗算を繰り
返すことにより行なうことができる。この方法によれ
ば、Z=X/Yの除算は、最初の1/Yの近似値R0をテーブル
を引いて求め、 Ri=Ri-1(2−Ri-1Y) (1) の漸化式をn回繰り返し用いて1/Yの近似解Rnを求める
ことができ、その後、RnとXを乗算してX/Yの近似値を
得ることができる。
また平方根演算Y=X1/2についても、最初の1/X1/2の
近似値R0をテーブルを引いて求め、(1)式の変わりに
次の漸化式 Ri=(1/2)Ri-1(3−Rl-1 2X) (2) をn回繰り返し用いて1/X1/2の近似根Rnを求めることが
でき、その後、RnとXを乗算してX1/2の近似値を得るこ
とができる。
近似値R0をテーブルを引いて求め、(1)式の変わりに
次の漸化式 Ri=(1/2)Ri-1(3−Rl-1 2X) (2) をn回繰り返し用いて1/X1/2の近似根Rnを求めることが
でき、その後、RnとXを乗算してX1/2の近似値を得るこ
とができる。
従来は、演算結果として前述のようにして必要とされ
る精度の近似値を求め、その近似値を直接、指定された
丸めモードで決められた有効桁数に丸めて最終結果とし
ていた。
る精度の近似値を求め、その近似値を直接、指定された
丸めモードで決められた有効桁数に丸めて最終結果とし
ていた。
発明が解決しようとする課題 以上説明したような演算方式では、近似演算によって
得られた近似値を直接丸めることにより結果を得てい
た。丸めの方法として、幾つかの方法がある。例えば、
IEEE754の浮動小数点規格では、4つの丸めモードが定
められている。すなわち、最近接丸め(round to neare
st)、正方向丸め(round toward +infinity)、負方
向丸め(round toward −infinity)、零方向丸め(rou
nd toward zero)である。これらの丸めを正確に行なう
ためには、最小有効桁の1桁下位までの正確な値と最小
有効桁の2桁下位以下の値が零であるかどうかの情報が
必要となる。しかしながら、前述のような関数の近似解
を求めるような演算においては、その演算アルゴリズム
と用いるハードウェアから最大誤差は予測できるが得ら
れた結果が真値に対してどれだけの誤差を持つかは分か
らない。したがって得られた近似解から得られる最小有
効桁の1桁下位までの値と最小有効桁の2桁下位以下の
値が零であるかどうかの情報は、真値に対するそれらの
情報と異なっている可能性があり、近似解を直接丸める
ことにより得られる結果は、真値を丸めることにより得
られる結果と異る場合がある。近似値を丸めた結果が、
真値を丸めた結果と異なる割合は、近似値の精度に依存
し、精度を高くすればするほどその割合は下がる。しか
し、演算精度を上げるには演算時間が長くかかったり、
あるいは用いるハードウェアの演算の桁数を大きくしな
ければならないという問題点を有していた。
得られた近似値を直接丸めることにより結果を得てい
た。丸めの方法として、幾つかの方法がある。例えば、
IEEE754の浮動小数点規格では、4つの丸めモードが定
められている。すなわち、最近接丸め(round to neare
st)、正方向丸め(round toward +infinity)、負方
向丸め(round toward −infinity)、零方向丸め(rou
nd toward zero)である。これらの丸めを正確に行なう
ためには、最小有効桁の1桁下位までの正確な値と最小
有効桁の2桁下位以下の値が零であるかどうかの情報が
必要となる。しかしながら、前述のような関数の近似解
を求めるような演算においては、その演算アルゴリズム
と用いるハードウェアから最大誤差は予測できるが得ら
れた結果が真値に対してどれだけの誤差を持つかは分か
らない。したがって得られた近似解から得られる最小有
効桁の1桁下位までの値と最小有効桁の2桁下位以下の
値が零であるかどうかの情報は、真値に対するそれらの
情報と異なっている可能性があり、近似解を直接丸める
ことにより得られる結果は、真値を丸めることにより得
られる結果と異る場合がある。近似値を丸めた結果が、
真値を丸めた結果と異なる割合は、近似値の精度に依存
し、精度を高くすればするほどその割合は下がる。しか
し、演算精度を上げるには演算時間が長くかかったり、
あるいは用いるハードウェアの演算の桁数を大きくしな
ければならないという問題点を有していた。
本発明は、係る点に鑑みてなされたもので、得られた
関数の近似値から、真値を丸めた場合と同じ結果を得る
演算処理装置を提供することを目的とする。
関数の近似値から、真値を丸めた場合と同じ結果を得る
演算処理装置を提供することを目的とする。
課題を解決するための手段 本発明(1)は、上記目的を達成するため、与えられ
た値Xに対して、関数FによりY=F(X)を求める演
算において、真値との誤差が最終解の最下位桁の2桁下
位の桁の大きさより小さい精度で近似解Yaを求める第1
の関数演算装置と、最終解の最下位桁より1桁以上下位
で、且つ近似解Yaの最大誤差より大きい最小重みの桁の
1桁以上上位の桁の範囲のうちいずれかが最下位桁とな
る精度で、前記近似解Yaを丸めて近似解Yaに最も近い暫
定解Yrを求める第1の丸め処理回路と、前記暫定解Yrか
ら関数Fの逆関数F-1によりXr=F-1(Yr)を求める第2
の関数演算装置と、XとXrとの大小関係に基づいて、真
値Yを暫定解Yrとの大小関係を判断する比較回路と、前
記真値Yと暫定解Yrとの大小関係の判断結果に応じて暫
定解Yrを所定のまるめを行うことにより、最終解Yeを得
る第2の丸め処理回路とを包含する演算処理装置であ
る。
た値Xに対して、関数FによりY=F(X)を求める演
算において、真値との誤差が最終解の最下位桁の2桁下
位の桁の大きさより小さい精度で近似解Yaを求める第1
の関数演算装置と、最終解の最下位桁より1桁以上下位
で、且つ近似解Yaの最大誤差より大きい最小重みの桁の
1桁以上上位の桁の範囲のうちいずれかが最下位桁とな
る精度で、前記近似解Yaを丸めて近似解Yaに最も近い暫
定解Yrを求める第1の丸め処理回路と、前記暫定解Yrか
ら関数Fの逆関数F-1によりXr=F-1(Yr)を求める第2
の関数演算装置と、XとXrとの大小関係に基づいて、真
値Yを暫定解Yrとの大小関係を判断する比較回路と、前
記真値Yと暫定解Yrとの大小関係の判断結果に応じて暫
定解Yrを所定のまるめを行うことにより、最終解Yeを得
る第2の丸め処理回路とを包含する演算処理装置であ
る。
また本発明(2)は、本発明(1)における、真値Y
と暫定解Yrの大小関係の判断を、近似解Yaと暫定解Yr
を、逆関数Xrと与えられた値Xとの差の絶対値の最大値
が、与えられたXの最下位桁の1桁下位の桁の重みより
も小さくなるように求め、前記Xの最下位桁の重みを持
つ逆関数Xrの桁の1桁以上下位の桁の値を検査して、逆
関数XrとXとの大小関係を判断することにより行うもの
である。
と暫定解Yrの大小関係の判断を、近似解Yaと暫定解Yr
を、逆関数Xrと与えられた値Xとの差の絶対値の最大値
が、与えられたXの最下位桁の1桁下位の桁の重みより
も小さくなるように求め、前記Xの最下位桁の重みを持
つ逆関数Xrの桁の1桁以上下位の桁の値を検査して、逆
関数XrとXとの大小関係を判断することにより行うもの
である。
作用 本発明は上記した構成により、第1の関数演算装置に
より、真値との誤差が最終解の最下位桁の2桁下位の大
きさより小さい精度で近似解が求められる。この近似解
Yaは、演算アルゴリズムと用いるハードウェアによって
決まる精度を有し、一般に最終解の桁数に比較して十分
大きな桁数を持っている。このYaから最終解の最下位桁
より1桁多い桁数で表現できる最も近い暫定解Yrを求め
れば、最下位桁の1桁下位の桁まで正確に求められたこ
とになる。この暫定解Yrより逆関数Xr=F-1(Yr)を求
め、与えられた値Xと比較することにより、暫定解と真
値との大小関係を判断し、この大小関係の判断結果に応
じて暫定解Yrの丸めを行うことにより、真値を丸めた場
合と同じ結果を得ることができる。
より、真値との誤差が最終解の最下位桁の2桁下位の大
きさより小さい精度で近似解が求められる。この近似解
Yaは、演算アルゴリズムと用いるハードウェアによって
決まる精度を有し、一般に最終解の桁数に比較して十分
大きな桁数を持っている。このYaから最終解の最下位桁
より1桁多い桁数で表現できる最も近い暫定解Yrを求め
れば、最下位桁の1桁下位の桁まで正確に求められたこ
とになる。この暫定解Yrより逆関数Xr=F-1(Yr)を求
め、与えられた値Xと比較することにより、暫定解と真
値との大小関係を判断し、この大小関係の判断結果に応
じて暫定解Yrの丸めを行うことにより、真値を丸めた場
合と同じ結果を得ることができる。
また、本発明は、上記した構成により、暫定解Yrから
求められた逆関数Xrと与えられた値Xとの差の絶対値の
最大値が、与えられたXの最下位桁の1桁下位の桁の重
みよりも小さくなるように求められているので、逆関数
Xrと与えられた値Xとの減算を行なうことなく、逆関数
XrのXの最下位桁の1桁以上下位の桁の値を検査するこ
とにより、真値Yと暫定解Yrの大小関係を判断すること
ができる。
求められた逆関数Xrと与えられた値Xとの差の絶対値の
最大値が、与えられたXの最下位桁の1桁下位の桁の重
みよりも小さくなるように求められているので、逆関数
Xrと与えられた値Xとの減算を行なうことなく、逆関数
XrのXの最下位桁の1桁以上下位の桁の値を検査するこ
とにより、真値Yと暫定解Yrの大小関係を判断すること
ができる。
実施例 本発明の実施例を図を参照して説明する。第1図は、
本発明の演算処理方式の処理の流れを示す流れ図であ
る。第1図において、101は与えられた関数Fの近似演
算処理102、109は丸め処理、103は与えられた関数Fの
逆関数演算処理、104、105は比較判断処理、106、107お
よび108は値の代入処理である。次に処理の流れを詳細
に説明する。
本発明の演算処理方式の処理の流れを示す流れ図であ
る。第1図において、101は与えられた関数Fの近似演
算処理102、109は丸め処理、103は与えられた関数Fの
逆関数演算処理、104、105は比較判断処理、106、107お
よび108は値の代入処理である。次に処理の流れを詳細
に説明する。
まず、近似演算処理101は、与えられた値Xに対し
て、関数F(X)の近似演算を行ない近似解を求める。
この近似解は、例えばニュートンラフソン法等によって
求めることができ、その場合には、乗算器と加算器を用
いることにより演算される。この演算においては、真値
との誤差が最終解に必要な最小有効桁の2桁下位の桁の
大きさより小さい精度で近似解を求める。例えばIEEE75
4規格の倍精度を例にとれば、仮数部の有効桁数が53
桁、最上位桁が20の重みの桁となり、最下位桁が2-52の
重みの桁となり、求められた近似解の仮数部Yaは、真値
の仮数部をYとすれば、 |Y−Ya|<2-54 (3) が成り立つ。第2図は、本発明を説明するための数直線
図である。第2図において、3桁の数字は、それぞれ上
位から最小有効桁、下位1桁目および2桁目の値、すな
わち2-52、2-53、2-54桁の目盛を示す。したがって、第
2図の1目盛りは2-54の間隔を有する。例えば、真値Y
が第2図の数直線上で、201で示す点にあると仮定す
る。真値Yは無限の精度と桁数を持っているため、無限
小の目盛上に存在する。一方、近似解Yaは演算アルゴリ
ズムと用いるハードウェアによって決まる桁数を持って
おり、通常、最大誤差すなわち2-54の桁よりさらに下位
桁までの桁数を持つ。この場合には、(3)式から近似
解Yaは、第2図において点202から点203で示される2点
間の2-53の領域200に存在することになる。
て、関数F(X)の近似演算を行ない近似解を求める。
この近似解は、例えばニュートンラフソン法等によって
求めることができ、その場合には、乗算器と加算器を用
いることにより演算される。この演算においては、真値
との誤差が最終解に必要な最小有効桁の2桁下位の桁の
大きさより小さい精度で近似解を求める。例えばIEEE75
4規格の倍精度を例にとれば、仮数部の有効桁数が53
桁、最上位桁が20の重みの桁となり、最下位桁が2-52の
重みの桁となり、求められた近似解の仮数部Yaは、真値
の仮数部をYとすれば、 |Y−Ya|<2-54 (3) が成り立つ。第2図は、本発明を説明するための数直線
図である。第2図において、3桁の数字は、それぞれ上
位から最小有効桁、下位1桁目および2桁目の値、すな
わち2-52、2-53、2-54桁の目盛を示す。したがって、第
2図の1目盛りは2-54の間隔を有する。例えば、真値Y
が第2図の数直線上で、201で示す点にあると仮定す
る。真値Yは無限の精度と桁数を持っているため、無限
小の目盛上に存在する。一方、近似解Yaは演算アルゴリ
ズムと用いるハードウェアによって決まる桁数を持って
おり、通常、最大誤差すなわち2-54の桁よりさらに下位
桁までの桁数を持つ。この場合には、(3)式から近似
解Yaは、第2図において点202から点203で示される2点
間の2-53の領域200に存在することになる。
次に、102の丸め処理により、近似演算処理101で求め
られた近似解Yaを丸める。この場合に、最終解の最小有
効桁より1桁以上下位で、且つ近似解Yaの最大誤差より
大きい最小重みの桁の1桁以上上位の桁の範囲のうちい
ずれかが最下位桁となる精度で、近似解Yaを丸めて近似
解Yaに最も近い暫定解Yrを求める。例えば、有効桁数よ
り1桁だけ多い54桁の暫定解Yrを求めれば、第2図の数
直線上では、暫定解Yrは点204あるいは点205の2点のい
ずれかである。すなわち、近似解Yaが点202と点206との
間に存在するように求められた場合には、点204が暫定
解Yrとなり、近似解Yaが点203と点206との間に存在する
ように求められた場合には、点205が暫定解Yrとなる。
したがって、 |Y−Yr|<2-53 (4) が成り立つ。すなわち、このYrの値は最小有効桁の1桁
下位の桁まで求められたことになる。
られた近似解Yaを丸める。この場合に、最終解の最小有
効桁より1桁以上下位で、且つ近似解Yaの最大誤差より
大きい最小重みの桁の1桁以上上位の桁の範囲のうちい
ずれかが最下位桁となる精度で、近似解Yaを丸めて近似
解Yaに最も近い暫定解Yrを求める。例えば、有効桁数よ
り1桁だけ多い54桁の暫定解Yrを求めれば、第2図の数
直線上では、暫定解Yrは点204あるいは点205の2点のい
ずれかである。すなわち、近似解Yaが点202と点206との
間に存在するように求められた場合には、点204が暫定
解Yrとなり、近似解Yaが点203と点206との間に存在する
ように求められた場合には、点205が暫定解Yrとなる。
したがって、 |Y−Yr|<2-53 (4) が成り立つ。すなわち、このYrの値は最小有効桁の1桁
下位の桁まで求められたことになる。
次に、103の逆関数演算処理により、この暫定解Yrよ
り逆関数Xr=F-1(Yr)を求める。
り逆関数Xr=F-1(Yr)を求める。
次に、104の比較判断処理により、逆関数Xrと与えら
れた値Xとを比較する。この判断において、XrとXが等
しい場合には、暫定解として求めたYrが真値Yと等しい
ことを示している。このような場合には、106の処理に
より添付桁Sを0とする。また、与えられた値XがXrと
比較して異なる場合には、暫定解Yrが真値Yとの間に誤
差を持っていることを示している。このような場合に
は、105の比較判断処理において、暫定解Yrが真値Yに
対してどちら側に誤差を持っているかを判断する。すな
わち、与えられた値XとXrとの大小関係と関数Fの性質
から、真値Yと暫定解Yrの大小関係を判断する。この大
小関係の判断は、与えられた関数Fが単調増加関数ある
いは単調減少関数である場合には、XとXrの大小関係か
ら容易に判断できる。たとえば、関数Fが単調増加関数
の場合に、XがXrより大きい場合には、真値Yは暫定解
Yrより大きく、XがXrより小さい場合には、真値Yは暫
定解Yrより小さい。以上のような判断から、真値Yが暫
定解Yrより小さい場合には107の処理により、添付桁S
を−1とし、真値Yが暫定解Yrより大きい場合には108
の処理により、添付桁Sを1とする。第2図の例では、
暫定解Yrが点204である場合にはSは1になり、暫定解Y
rが点205である場合にはSは−1となる。
れた値Xとを比較する。この判断において、XrとXが等
しい場合には、暫定解として求めたYrが真値Yと等しい
ことを示している。このような場合には、106の処理に
より添付桁Sを0とする。また、与えられた値XがXrと
比較して異なる場合には、暫定解Yrが真値Yとの間に誤
差を持っていることを示している。このような場合に
は、105の比較判断処理において、暫定解Yrが真値Yに
対してどちら側に誤差を持っているかを判断する。すな
わち、与えられた値XとXrとの大小関係と関数Fの性質
から、真値Yと暫定解Yrの大小関係を判断する。この大
小関係の判断は、与えられた関数Fが単調増加関数ある
いは単調減少関数である場合には、XとXrの大小関係か
ら容易に判断できる。たとえば、関数Fが単調増加関数
の場合に、XがXrより大きい場合には、真値Yは暫定解
Yrより大きく、XがXrより小さい場合には、真値Yは暫
定解Yrより小さい。以上のような判断から、真値Yが暫
定解Yrより小さい場合には107の処理により、添付桁S
を−1とし、真値Yが暫定解Yrより大きい場合には108
の処理により、添付桁Sを1とする。第2図の例では、
暫定解Yrが点204である場合にはSは1になり、暫定解Y
rが点205である場合にはSは−1となる。
最後に、109の丸め処理により、暫定解Yrの最下位桁
の1桁下位に添付桁Sを加えて、結果が有効桁数になる
ように指定された丸めモードで丸めを行ない演算結果Ye
が求められる。暫定解Yrの最下位桁の1桁下位に添付桁
Sを加えたデータの桁数は、有効桁数より2桁多いもの
となり、第2図では点206で表される。第2図から分か
るように、点206および真値201が、最小有効桁が1だけ
異なる2つの点204と点207との間にあり、さらに点204
と点207の中間点205の同じ側にあるので、有効桁数に丸
めを行なった場合には、同じ結果を得ることができる。
の1桁下位に添付桁Sを加えて、結果が有効桁数になる
ように指定された丸めモードで丸めを行ない演算結果Ye
が求められる。暫定解Yrの最下位桁の1桁下位に添付桁
Sを加えたデータの桁数は、有効桁数より2桁多いもの
となり、第2図では点206で表される。第2図から分か
るように、点206および真値201が、最小有効桁が1だけ
異なる2つの点204と点207との間にあり、さらに点204
と点207の中間点205の同じ側にあるので、有効桁数に丸
めを行なった場合には、同じ結果を得ることができる。
第5図は、第1図に示した本発明の演算処理を実現す
る演算処理装置の実施例を示すブロック図である。この
演算装置は関数F(X)を求める装置であり、第5図に
おいて、501・503・504は選択回路、502は関数演算装置
であり、関数Y=F(X)の近似値とその逆関数X=F
-1(Y)を求める機能を持ち、また505は加減算丸め処
理回路、506はレジスタ、507は添付桁生成回路である。
る演算処理装置の実施例を示すブロック図である。この
演算装置は関数F(X)を求める装置であり、第5図に
おいて、501・503・504は選択回路、502は関数演算装置
であり、関数Y=F(X)の近似値とその逆関数X=F
-1(Y)を求める機能を持ち、また505は加減算丸め処
理回路、506はレジスタ、507は添付桁生成回路である。
次に、第5図のブロック図の動作を、第1図の流れ図
を用いて説明する。まず、第1図の近似演算101では、
Xが第5図の選択回路501により選択されて関数演算装
置502に入力される。
を用いて説明する。まず、第1図の近似演算101では、
Xが第5図の選択回路501により選択されて関数演算装
置502に入力される。
次に、関数演算装置502は、入力された値Xに対して、
関数F(X)の近似演算を行ない近似解Yaを求める。こ
の演算においては、真値Yとの誤差が最終解に必要な最
小有効桁の2桁下位の桁の大きさより小さい精度で求め
る。
関数F(X)の近似演算を行ない近似解Yaを求める。こ
の演算においては、真値Yとの誤差が最終解に必要な最
小有効桁の2桁下位の桁の大きさより小さい精度で求め
る。
次に、第1図の中間丸め処理102は、第5図の加減算
丸め処理回路505で行なわれる。この場合に、選択回路5
03が関数演算装置502の出力を選択し、選択回路504が0
を選択するように制御される。加減算丸め処理回路505
は、最終解の最小有効桁より1桁以上下位で、且つ近似
解Yaの最大誤差より大きい最小重みの桁の1桁以上上位
の桁の範囲のうちいずれかが最下位桁となる精度で、近
似解Yaを丸めて近似解Yaに最も近い暫定解Yrを求めて出
力し、同時に暫定解Yrをレジスタ506に格納する。
丸め処理回路505で行なわれる。この場合に、選択回路5
03が関数演算装置502の出力を選択し、選択回路504が0
を選択するように制御される。加減算丸め処理回路505
は、最終解の最小有効桁より1桁以上下位で、且つ近似
解Yaの最大誤差より大きい最小重みの桁の1桁以上上位
の桁の範囲のうちいずれかが最下位桁となる精度で、近
似解Yaを丸めて近似解Yaに最も近い暫定解Yrを求めて出
力し、同時に暫定解Yrをレジスタ506に格納する。
次に、第1図の逆関数演算処理103は、第5図の関数
演算装置502で行なわれる。すなわち、選択回路501は加
減算丸め処理回路505の結果すなわち暫定解Yrを選択す
るように制御され、関数演算装置502は、入力された暫
定解Yrに対する逆関数値Xr=F-1(Yr)を求める。この
演算は、誤差なく正確に行なわれて出力される。
演算装置502で行なわれる。すなわち、選択回路501は加
減算丸め処理回路505の結果すなわち暫定解Yrを選択す
るように制御され、関数演算装置502は、入力された暫
定解Yrに対する逆関数値Xr=F-1(Yr)を求める。この
演算は、誤差なく正確に行なわれて出力される。
次に、第1図の比較判断処理104および105と、値の代
入処理106・107および108は、加減算丸め処理回路505お
よび添付桁生成回路507で行なわれる。まず、選択回路5
03が関数演算装置502の出力すなわち逆関数値Xrを選択
し、選択回路504が与えられた値Xを選択するように制
御される。さらに、加減算丸め処理回路505が入力され
た逆関数値Xrから、与えられた値Xを減算してXr−Xを
出力する。この減算により、逆関数Xrと与えられた値X
とが比較される。添付桁生成回路507では、この減算に
よって得られた結果Xr−Xを入力し、Xr−Xが0の場合
には添付桁Sを0として出力する。また、Xr−Xが0で
ない場合には、第1図の流れ図の説明で述べたように、
与えられた値XとXrとの大小関係すなわちXr−Xが正で
あるか負であるかの情報と関数Fの性質から、真値Yと
暫定解Yrの大小関係を判断し、真値Yが暫定解Yrより小
さい場合には添付桁Sを−1とし、真値Yが暫定解Yrよ
り大きい場合には添付桁Sを1として出力する。
入処理106・107および108は、加減算丸め処理回路505お
よび添付桁生成回路507で行なわれる。まず、選択回路5
03が関数演算装置502の出力すなわち逆関数値Xrを選択
し、選択回路504が与えられた値Xを選択するように制
御される。さらに、加減算丸め処理回路505が入力され
た逆関数値Xrから、与えられた値Xを減算してXr−Xを
出力する。この減算により、逆関数Xrと与えられた値X
とが比較される。添付桁生成回路507では、この減算に
よって得られた結果Xr−Xを入力し、Xr−Xが0の場合
には添付桁Sを0として出力する。また、Xr−Xが0で
ない場合には、第1図の流れ図の説明で述べたように、
与えられた値XとXrとの大小関係すなわちXr−Xが正で
あるか負であるかの情報と関数Fの性質から、真値Yと
暫定解Yrの大小関係を判断し、真値Yが暫定解Yrより小
さい場合には添付桁Sを−1とし、真値Yが暫定解Yrよ
り大きい場合には添付桁Sを1として出力する。
最後に、第1図の最終丸め処理109は、第5図の加減
算丸め処理回路で行なわれる。
算丸め処理回路で行なわれる。
すなわち、選択回路503がレジスタ506の出力すなわち
暫定解Yrを選択し、選択回路504が0を選択するように
制御される。加減算丸め処理回路505は、入力された暫
定解Yrの最下位桁の1桁下位に、添付桁生成回路507か
ら入力される添付桁Sを加えて、結果が有効桁数になる
ように指定された丸めモードで丸めを行ない演算結果Ye
が求められる。
暫定解Yrを選択し、選択回路504が0を選択するように
制御される。加減算丸め処理回路505は、入力された暫
定解Yrの最下位桁の1桁下位に、添付桁生成回路507か
ら入力される添付桁Sを加えて、結果が有効桁数になる
ように指定された丸めモードで丸めを行ない演算結果Ye
が求められる。
以上のようにして、関数Y=F(X)の真値を丸めた
値と同一の演算結果Yeが演算される。
値と同一の演算結果Yeが演算される。
第3図は、本発明を除算に適用した場合の演算処理の
流れを示す流れ図である。第3図の処理は、第1図にお
ける関数Fを除算に置き換えたものであり、すなわちZ
=F(Y)=X/Yを求めるものである。簡単のため、以
下の説明ではIEEE754規格の倍精度を例とし、さらに正
規化された仮数部の演算について説明する。すなわち、
仮数部の有効桁数が53桁、最上位桁が20の重みの桁、最
下位桁が2-52の重みの桁である。さらに被除数Xおよび
除数Yを共に正数とすれば、1≦X,Y<2の関係にあ
る。
流れを示す流れ図である。第3図の処理は、第1図にお
ける関数Fを除算に置き換えたものであり、すなわちZ
=F(Y)=X/Yを求めるものである。簡単のため、以
下の説明ではIEEE754規格の倍精度を例とし、さらに正
規化された仮数部の演算について説明する。すなわち、
仮数部の有効桁数が53桁、最上位桁が20の重みの桁、最
下位桁が2-52の重みの桁である。さらに被除数Xおよび
除数Yを共に正数とすれば、1≦X,Y<2の関係にあ
る。
第3図において、301は第1図における関数Fの近似
演算処理101に対応するものであり、与えられた正の値
X、Yの除算X/Yの近似商Zaを求める近似除算処理であ
る。302、308は丸め処理であり、第1図における102お
よび109と同様の丸め処理を行なう。303は第1図におけ
る逆関数演算処理に対応するものであり、Z=X/Yの逆
関数すなわち積Zr×Yを求める乗算処理である。304は
比較判断処理であり、第1図における104と105に対応し
ている。また、305、306および307は、値の代入処理で
あり、第1図における106、107および108にそれぞれ対
応している。
演算処理101に対応するものであり、与えられた正の値
X、Yの除算X/Yの近似商Zaを求める近似除算処理であ
る。302、308は丸め処理であり、第1図における102お
よび109と同様の丸め処理を行なう。303は第1図におけ
る逆関数演算処理に対応するものであり、Z=X/Yの逆
関数すなわち積Zr×Yを求める乗算処理である。304は
比較判断処理であり、第1図における104と105に対応し
ている。また、305、306および307は、値の代入処理で
あり、第1図における106、107および108にそれぞれ対
応している。
除算の処理の流れを第3図を用いて説明する。ここで
は、まず被除数Xが除数Yより小さくない場合を考えれ
ば、商Z=X/Yは1≦Z<2となる。まず、301の近似除
算処理において近似商Zaを求める。この近似商Zaの精度
は、真値Z=X/Yとの誤差が最終解に必要な最小有効桁
の2桁下位の桁の大きさより小さい精度である。したが
って、倍精度フォーマットにおける最小有効桁の重みが
2-52なので求められた近似商Zaは、 |Z−Za|<2-54 (5) が成り立つ。
は、まず被除数Xが除数Yより小さくない場合を考えれ
ば、商Z=X/Yは1≦Z<2となる。まず、301の近似除
算処理において近似商Zaを求める。この近似商Zaの精度
は、真値Z=X/Yとの誤差が最終解に必要な最小有効桁
の2桁下位の桁の大きさより小さい精度である。したが
って、倍精度フォーマットにおける最小有効桁の重みが
2-52なので求められた近似商Zaは、 |Z−Za|<2-54 (5) が成り立つ。
次に、丸め処理302において、近似商Zaを丸める。こ
の場合に、最終の商の最小有効桁より1桁以上下位で、
且つ近似商Zaの最大誤差より大きい最小重みの桁の1桁
以上上位の桁の範囲のうちいずれかが最下位桁となる精
度で、近似商Zaを丸めて近似商Zaに最も近い暫定商Zrを
求める。例えば、有効桁数より1桁だけ多い54桁の暫定
商Zrを求めれば |Z−Zr|<2-53 (6) となる。
の場合に、最終の商の最小有効桁より1桁以上下位で、
且つ近似商Zaの最大誤差より大きい最小重みの桁の1桁
以上上位の桁の範囲のうちいずれかが最下位桁となる精
度で、近似商Zaを丸めて近似商Zaに最も近い暫定商Zrを
求める。例えば、有効桁数より1桁だけ多い54桁の暫定
商Zrを求めれば |Z−Zr|<2-53 (6) となる。
次に、303の乗算処理により、この暫定商ZrよりZ=X
/Yの逆関数すなわち積Xr=Zr×Yを求める。
/Yの逆関数すなわち積Xr=Zr×Yを求める。
次に、304の比較判断処理により、積Xrと与えられた
値Xとを比較することにより、暫定商Zrが真値Zに対し
てどちら側に誤差を持っているかを判断する。この場合
には、与えられた値XとYが正とすれば除算X/Yにおい
ては、Xに対してZが単調増加関数であるために、Xと
Xrの比較のみで添付桁Sを求めることができる。すなわ
ち、XがXrより小さい場合には、真値Zは暫定商Zrより
小さいので305の処理により添付桁Sを−1とし、XとX
rが等しい場合には、真値Zは暫定商Zrと等しいので306
の処理により添付桁Sを0とし、XがXrより大きい場合
には、真値Zは暫定商Zrより大きいので307の処理によ
り添付桁Sを1とする。
値Xとを比較することにより、暫定商Zrが真値Zに対し
てどちら側に誤差を持っているかを判断する。この場合
には、与えられた値XとYが正とすれば除算X/Yにおい
ては、Xに対してZが単調増加関数であるために、Xと
Xrの比較のみで添付桁Sを求めることができる。すなわ
ち、XがXrより小さい場合には、真値Zは暫定商Zrより
小さいので305の処理により添付桁Sを−1とし、XとX
rが等しい場合には、真値Zは暫定商Zrと等しいので306
の処理により添付桁Sを0とし、XがXrより大きい場合
には、真値Zは暫定商Zrより大きいので307の処理によ
り添付桁Sを1とする。
最後に、308の丸め処理により、暫定商Zrの最下位桁
の1桁下位に添付桁Sを加えて、結果が有効桁数になる
ように指定された丸めモードで丸めを行なうことによ
り、真値を丸めた場合と同じ除算結果Zeが求められる。
の1桁下位に添付桁Sを加えて、結果が有効桁数になる
ように指定された丸めモードで丸めを行なうことによ
り、真値を丸めた場合と同じ除算結果Zeが求められる。
次に、被除数Xが除数Yより小さい場合には、商Z=
X/Yは1/2<Z<1となる。この場合には、商Zの20の桁
の値は0になるため、最終商の最小有効桁は、被除数X
が除数Yより大きい場合に比較して1桁小さい2-53の桁
になるので、近似商Zaは |Z−Za|<2-55 (7) が成り立つ。また、暫定商Zrは少なくとも2-54の桁ま
で、すなわち20の桁を含めて55桁以上必要である。近似
商Zaが(7)式で表される場合には暫定商Zrを |Z−Zr|<2-54 (8) が成り立つように求め、さらに、308の丸め処理におい
て2-53の桁までに丸めるようにして、被除数Xが除数Y
より大きい場合と同様に処理すればよい。
X/Yは1/2<Z<1となる。この場合には、商Zの20の桁
の値は0になるため、最終商の最小有効桁は、被除数X
が除数Yより大きい場合に比較して1桁小さい2-53の桁
になるので、近似商Zaは |Z−Za|<2-55 (7) が成り立つ。また、暫定商Zrは少なくとも2-54の桁ま
で、すなわち20の桁を含めて55桁以上必要である。近似
商Zaが(7)式で表される場合には暫定商Zrを |Z−Zr|<2-54 (8) が成り立つように求め、さらに、308の丸め処理におい
て2-53の桁までに丸めるようにして、被除数Xが除数Y
より大きい場合と同様に処理すればよい。
以上の説明では、被除数Xが除数Yより大きい場合と
そうでない場合について分けて述べたが、被除数Xが除
数Yより大きい場合にも、暫定商Zrを(8)式が成り立
つように1桁だけ精度よく求めておくことにより、最終
の丸め処理308での丸める桁が1桁異なることを除い
て、被除数Xが除数Yより大きくない場合と同様に除算
処理を行なうことができ、演算の制御を簡単にすること
ができる。
そうでない場合について分けて述べたが、被除数Xが除
数Yより大きい場合にも、暫定商Zrを(8)式が成り立
つように1桁だけ精度よく求めておくことにより、最終
の丸め処理308での丸める桁が1桁異なることを除い
て、被除数Xが除数Yより大きくない場合と同様に除算
処理を行なうことができ、演算の制御を簡単にすること
ができる。
第6図は、第3図に示した本発明の除算などの収束型
演算を実現する演算処理装置の実施例を示すブロック図
である。第6図において、601・602・611はそれぞれX
レジスタ、YレジスタおよびTレジスタ、603は逆数の
初期値などを格納している定数ROM、604・605・608・60
9は選択回路、606は乗算回路、607は定数生成回路、610
は加減算丸め処理回路、612は添付桁生成回路、613・61
4はそれぞれデータバスAおよびデータバスBである。
演算を実現する演算処理装置の実施例を示すブロック図
である。第6図において、601・602・611はそれぞれX
レジスタ、YレジスタおよびTレジスタ、603は逆数の
初期値などを格納している定数ROM、604・605・608・60
9は選択回路、606は乗算回路、607は定数生成回路、610
は加減算丸め処理回路、612は添付桁生成回路、613・61
4はそれぞれデータバスAおよびデータバスBである。
次に、第6図のブロック図の動作を説明する。以下の
説明では、簡単のため正規化された仮数部の演算につい
てのみ述べる。
説明では、簡単のため正規化された仮数部の演算につい
てのみ述べる。
除算を行なう場合について、第3図の流れ図を用いて
説明する。
説明する。
まず、被除数Xおよび除数YがそれぞれデータバスA
およびデータバスBを介して、XレジスタおよびYレジ
スタに入力され格納され、第3図の近似除算301が開始
される。この近似除算では、乗算と加減算の繰り返しに
より近似商Zaが求められる。例えば、ニュートンラフソ
ン法によれば、Z=X/Yの除算は、最初の1/Yの近似値R0
をテーブルを引いて求め、(1)式の漸化式をn回繰り
返し用いて1/Yの近似値Rnを求めることができ、その
後、RnとXを乗算してX/Yの近似値を得ることができ
る。ニュートンラフソン法を用いた、第6図の演算装置
の構成による近似商Zaの求め方を説明すれば以下のよう
になる。
およびデータバスBを介して、XレジスタおよびYレジ
スタに入力され格納され、第3図の近似除算301が開始
される。この近似除算では、乗算と加減算の繰り返しに
より近似商Zaが求められる。例えば、ニュートンラフソ
ン法によれば、Z=X/Yの除算は、最初の1/Yの近似値R0
をテーブルを引いて求め、(1)式の漸化式をn回繰り
返し用いて1/Yの近似値Rnを求めることができ、その
後、RnとXを乗算してX/Yの近似値を得ることができ
る。ニュートンラフソン法を用いた、第6図の演算装置
の構成による近似商Zaの求め方を説明すれば以下のよう
になる。
1)Yレジスタ602から除数YをデータバスB614を介し
て定数ROMに入力し、Yの逆数1/Yの近似値R0を求め出力
する。
て定数ROMに入力し、Yの逆数1/Yの近似値R0を求め出力
する。
2)選択回路604が定数ROMの出力すなわちR0を選択し、
Yレジスタ602の除数YがデータバスB614および選択回
路605を介して乗算器606に入力されるように制御し、R0
と除数Yの積R0・Yを求める。
Yレジスタ602の除数YがデータバスB614および選択回
路605を介して乗算器606に入力されるように制御し、R0
と除数Yの積R0・Yを求める。
3)選択回路608が、定数生成回路607により生成した値
2を選択し、選択回路609が乗算器606の出力すなわちR0
・Yを選択するように制御し、加減算丸め処理回路610
により減算を行ない、さらに乗算器606に入力できる桁
数になるように丸めを行なって2−R0・Yを求める。
2を選択し、選択回路609が乗算器606の出力すなわちR0
・Yを選択するように制御し、加減算丸め処理回路610
により減算を行ない、さらに乗算器606に入力できる桁
数になるように丸めを行なって2−R0・Yを求める。
4)乗算器606に、データバスA613および選択回路604を
介して加減算丸め処理回路610の演算結果2−R0・Yが
入力され、さらに選択回路605を介して定数ROMの出力R0
入力されるように制御し、R0と2−R0・Yの積すなわち
R0・(2−R0・Y)を求める。
介して加減算丸め処理回路610の演算結果2−R0・Yが
入力され、さらに選択回路605を介して定数ROMの出力R0
入力されるように制御し、R0と2−R0・Yの積すなわち
R0・(2−R0・Y)を求める。
5)選択回路608が、乗算器606の出力すなわちR0・(2
−R0・Y)を選択し、選択回路609が0を選択するよう
に制御し、乗算器606に入力できる桁数になるようにR0
・(2−R0・Y)を丸めてR1を求める。さらに、この結
果R1をTレジスタ611に格納する。
−R0・Y)を選択し、選択回路609が0を選択するよう
に制御し、乗算器606に入力できる桁数になるようにR0
・(2−R0・Y)を丸めてR1を求める。さらに、この結
果R1をTレジスタ611に格納する。
6)上記2)3)4)5)の処理における定数ROMの出
力R0の代わりに、Tレジスタ611に格納されたR1を用い
てR2求め、十分な精度が得られるまで、これらの処理を
繰り返し行なってRnを求める。
力R0の代わりに、Tレジスタ611に格納されたR1を用い
てR2求め、十分な精度が得られるまで、これらの処理を
繰り返し行なってRnを求める。
7)乗算器606に、データバスAおよび選択回路604を介
して、繰り返し演算によって得られた結果Rnが入力さ
れ、データバスB614および選択回路605を介してXレジ
スタ601に格納された被除数Xが入力されるように制御
し、Rnと被除数Xの積すなわち商X/Yの近似値Za=Rn・
Xを求める。
して、繰り返し演算によって得られた結果Rnが入力さ
れ、データバスB614および選択回路605を介してXレジ
スタ601に格納された被除数Xが入力されるように制御
し、Rnと被除数Xの積すなわち商X/Yの近似値Za=Rn・
Xを求める。
以上のようにして、近似除算を行ない近似商Zaを求め
る。この場合に、この近似商Zaの精度は、真値Z=X/Y
との誤差が最終解に必要な最小有効桁の2桁下位の桁の
大きさより小さい精度で求められているものとする。
る。この場合に、この近似商Zaの精度は、真値Z=X/Y
との誤差が最終解に必要な最小有効桁の2桁下位の桁の
大きさより小さい精度で求められているものとする。
次に、第3図の中間丸め処理302は、第6図の加減算
丸め処理回路610で行なわれる。この場合に選択回路608
が乗算器606の出力すなわち近似商Zaを選択し、選択回
路609が0を選択するように制御される。加減算丸め処
理回路610は、最終の商の最小有効桁より1桁以上下位
で、且つ近似商Zaの最大誤差より大きい最小重みの桁の
1桁以上上位の桁の範囲のうちいずれかが最下位桁とな
る精度で、近似商Zaを丸めて近似商Zaに最も近い暫定商
Zrを求めて出力し、同時に暫定商ZrをTレジスタ611に
格納する。
丸め処理回路610で行なわれる。この場合に選択回路608
が乗算器606の出力すなわち近似商Zaを選択し、選択回
路609が0を選択するように制御される。加減算丸め処
理回路610は、最終の商の最小有効桁より1桁以上下位
で、且つ近似商Zaの最大誤差より大きい最小重みの桁の
1桁以上上位の桁の範囲のうちいずれかが最下位桁とな
る精度で、近似商Zaを丸めて近似商Zaに最も近い暫定商
Zrを求めて出力し、同時に暫定商ZrをTレジスタ611に
格納する。
次に、第3図の乗算処理303は、第6図の乗算器606で
行なわれる。すなわち、選択回路604は加減算丸め処理
回路610の結果すなわち暫定商Zrを選択し、データバス
Bおよび選択回路605を介してYレジスタ602の除数Y
が、乗算器606に入力されるように制御し、入力された
暫定商Zrに対する逆関数すなわち暫定商Zrと除数Yの積
Xr=Zr・Yを求める。
行なわれる。すなわち、選択回路604は加減算丸め処理
回路610の結果すなわち暫定商Zrを選択し、データバス
Bおよび選択回路605を介してYレジスタ602の除数Y
が、乗算器606に入力されるように制御し、入力された
暫定商Zrに対する逆関数すなわち暫定商Zrと除数Yの積
Xr=Zr・Yを求める。
次に、第3図の比較判断処理304と、値の代入処理305
・306および307は、加減算丸め処理回路610および添付
桁生成回路612で行なわれる。まず、選択回路608が乗算
器606の出力すなわちXrを選択し、データバスBおよび
選択回路609を介してXレジスタ601の被除数Xが、加減
算丸め処理回路610に入力されるように制御される。さ
らに、加減算丸め処理回路610が入力されたXrから、与
えられた被除数Xを減算してXr−Xを出力する。この減
算により、Xrと被除数Xとが比較される。添付桁生成回
路612では、この減算によって得られた結果Xr−Xを入
力し、Xr−Xが0の場合には添付桁Sを0とし、Xr−X
が負となった場合には添付桁Sを1とし、Xr−Xが正と
なった場合には添付桁Sを−1として出力する。
・306および307は、加減算丸め処理回路610および添付
桁生成回路612で行なわれる。まず、選択回路608が乗算
器606の出力すなわちXrを選択し、データバスBおよび
選択回路609を介してXレジスタ601の被除数Xが、加減
算丸め処理回路610に入力されるように制御される。さ
らに、加減算丸め処理回路610が入力されたXrから、与
えられた被除数Xを減算してXr−Xを出力する。この減
算により、Xrと被除数Xとが比較される。添付桁生成回
路612では、この減算によって得られた結果Xr−Xを入
力し、Xr−Xが0の場合には添付桁Sを0とし、Xr−X
が負となった場合には添付桁Sを1とし、Xr−Xが正と
なった場合には添付桁Sを−1として出力する。
最後に、第3図の最終丸め処理308は、第6図の加減
算丸め処理回路で行なわれる。
算丸め処理回路で行なわれる。
すなわち、選択回路608がTレジスタ611の出力すなわ
ち暫定商Zrを選択し、選択回路609が0を選択するよう
に制御される。加減算丸め処理回路610は、入力された
暫定商Zrの最下位桁の1桁下位に、添付桁生成回路612
から入力される添付桁Sを加えて、結果が有効桁数にな
るように指定された丸めモードで丸めを行ない除算結果
Zeが求められる。
ち暫定商Zrを選択し、選択回路609が0を選択するよう
に制御される。加減算丸め処理回路610は、入力された
暫定商Zrの最下位桁の1桁下位に、添付桁生成回路612
から入力される添付桁Sを加えて、結果が有効桁数にな
るように指定された丸めモードで丸めを行ない除算結果
Zeが求められる。
以上のようにして、商Z=X/Yの真値を丸めた値と同
一の除算結果Zeが演算される。以上の説明では、被除数
と除数が共に正したがって商が正の場合について述べた
が、その他の場合についても同様にして演算できる。こ
の場合に、添付桁の生成方法のみが変わる。すなわち、
正あるいは負の被除数Xと除数Yに対する商Z=X/Yの
演算において、被除数Xの符号と商Zの符号が同じ場合
には、暫定商Zrに対する積Xr=Zr・Yと被除数Xとが等
しい場合に添付桁Sを0とし、積Xrが被除数Xより大き
い場合に添付桁Sを−1とし、積Xrが被除数Xより小さ
い場合に添付桁Sを1とする。一方、被除数Xの符号と
商Zの符号が異なる場合においては、積Xrと被除数Xと
が等しい場合に添付桁Sを0とし、積Xrが被除数Xより
大きい場合に添付桁Sを1とし、積Xrが被除数Xより小
さい場合に添付桁Sを−1とすればよい。
一の除算結果Zeが演算される。以上の説明では、被除数
と除数が共に正したがって商が正の場合について述べた
が、その他の場合についても同様にして演算できる。こ
の場合に、添付桁の生成方法のみが変わる。すなわち、
正あるいは負の被除数Xと除数Yに対する商Z=X/Yの
演算において、被除数Xの符号と商Zの符号が同じ場合
には、暫定商Zrに対する積Xr=Zr・Yと被除数Xとが等
しい場合に添付桁Sを0とし、積Xrが被除数Xより大き
い場合に添付桁Sを−1とし、積Xrが被除数Xより小さ
い場合に添付桁Sを1とする。一方、被除数Xの符号と
商Zの符号が異なる場合においては、積Xrと被除数Xと
が等しい場合に添付桁Sを0とし、積Xrが被除数Xより
大きい場合に添付桁Sを1とし、積Xrが被除数Xより小
さい場合に添付桁Sを−1とすればよい。
第4図は、本発明を平方根演算に適用した場合の演算
処理の流れを示す流れ図である。第4図の処理は、第1
図における関数Fを平方根演算に置き換えたものであり
すなわちY=F(X)=X1/2を求めるものである。
処理の流れを示す流れ図である。第4図の処理は、第1
図における関数Fを平方根演算に置き換えたものであり
すなわちY=F(X)=X1/2を求めるものである。
第4図において、401は第1図における関数Fの近似
演算処理101に対応するものであり、与えられた正の値
Xの平方根X1/2の近似平方根処理である。402、408は丸
め処理であり、第1図における102および109と同様の丸
め処理を行なう。403は第1図における逆関数演算処理
に対応するものであり、Y=X1/2の逆関数すなわち積Yr
2を求める乗算処理である。404は比較判断処理であり、
第1図における104と105に対応している。この場合に
も、除算と同様に、Xに対してYが単調増加関数である
ために、XとXrの比較のみで添付桁Sを求めることがで
きる。また、405、406および407は第1図における106、
107および108にそれぞれ対応している。
演算処理101に対応するものであり、与えられた正の値
Xの平方根X1/2の近似平方根処理である。402、408は丸
め処理であり、第1図における102および109と同様の丸
め処理を行なう。403は第1図における逆関数演算処理
に対応するものであり、Y=X1/2の逆関数すなわち積Yr
2を求める乗算処理である。404は比較判断処理であり、
第1図における104と105に対応している。この場合に
も、除算と同様に、Xに対してYが単調増加関数である
ために、XとXrの比較のみで添付桁Sを求めることがで
きる。また、405、406および407は第1図における106、
107および108にそれぞれ対応している。
以下の説明では、IEEE754規格の倍精度を例とし、さ
らに正規化された仮数部の演算について説明する。すな
わち、仮数部の有効桁数が53桁、最上位桁が20の重みの
桁、最下位桁が2-52の重みの桁である。浮動小数点デー
タの平方根を考える場合には、与えられるXとしては、
1≦X<4を考える必要がある。すなわち、浮動小数点
データの指数の値が偶数である場合にはXとして1≦X
<2の値域を考慮すればよい。しかし、指数の値が奇数
である場合には、仮数部を左に1桁シフトし、そのシフ
トされた仮数部の平方根を求めなければならないので、
Xとして2≦X<4の値域を考慮しなければならない。
したがって、浮動小数点データの指数の値が偶数である
場合と奇数である場合について同様な処理を考慮すれ
ば、与えられるXとしては、1≦X<4を考えればよ
い。したがって、平方根Y=X1/2の値域は1≦Y<2と
なる。
らに正規化された仮数部の演算について説明する。すな
わち、仮数部の有効桁数が53桁、最上位桁が20の重みの
桁、最下位桁が2-52の重みの桁である。浮動小数点デー
タの平方根を考える場合には、与えられるXとしては、
1≦X<4を考える必要がある。すなわち、浮動小数点
データの指数の値が偶数である場合にはXとして1≦X
<2の値域を考慮すればよい。しかし、指数の値が奇数
である場合には、仮数部を左に1桁シフトし、そのシフ
トされた仮数部の平方根を求めなければならないので、
Xとして2≦X<4の値域を考慮しなければならない。
したがって、浮動小数点データの指数の値が偶数である
場合と奇数である場合について同様な処理を考慮すれ
ば、与えられるXとしては、1≦X<4を考えればよ
い。したがって、平方根Y=X1/2の値域は1≦Y<2と
なる。
次に、平方根演算の処理の流れを第4図を用いて説明
する。まず、401の近似平方根処理において近似平方根Y
aを求める。この近似平方根Yaの精度は、真値Y=X1/2
との誤差が最終解に必要な最小有効桁の2桁下位の桁の
大きさより小さい精度である。したがって、倍精度フォ
ーマットにおける最小有効桁の重みが2-52なので求めら
れた近似平方根Yaは、 |Y−Ya|<2-54 (9) が成り立つ。
する。まず、401の近似平方根処理において近似平方根Y
aを求める。この近似平方根Yaの精度は、真値Y=X1/2
との誤差が最終解に必要な最小有効桁の2桁下位の桁の
大きさより小さい精度である。したがって、倍精度フォ
ーマットにおける最小有効桁の重みが2-52なので求めら
れた近似平方根Yaは、 |Y−Ya|<2-54 (9) が成り立つ。
次に、丸め処理402において近似平方根Yaを丸める。
この場合に、最終の平方根の最小有効桁より1桁以上下
位で、且つ近似平方根Yaの最大誤差より大きい最小重み
の桁の1桁以上上位の桁の範囲のうちいずれかが最下位
桁となる精度で、近似平方根Yaを丸めて近似平方根Yaに
最も近い暫定平方根Yrを求める。例えば、有効桁数より
1桁だけ多い54桁の暫定平方根Yrを求めれば |Y−Yr|<2-53 (10) となる。
この場合に、最終の平方根の最小有効桁より1桁以上下
位で、且つ近似平方根Yaの最大誤差より大きい最小重み
の桁の1桁以上上位の桁の範囲のうちいずれかが最下位
桁となる精度で、近似平方根Yaを丸めて近似平方根Yaに
最も近い暫定平方根Yrを求める。例えば、有効桁数より
1桁だけ多い54桁の暫定平方根Yrを求めれば |Y−Yr|<2-53 (10) となる。
次に403の乗算処理により、この暫定平方根YrよりY
=X1/2の逆関数すなわち積Xr=Yr2を求める。
=X1/2の逆関数すなわち積Xr=Yr2を求める。
次に、404の比較判断処理により、積Xrと与えられた
値Xとを比較することにより、暫定平方根Yrが真値Yに
対してどちら側に誤差を持っているかを判断する。この
場合には平方根Y=X1/2においては、Xに対してYが単
調増加関数であるために、XとXrの比較のみで添付桁S
を求めることができる。すなわち、XがXrより小さい場
合には、真値Yは暫定平方根Yrより小さいので405の処
理により添付桁Sを−1とし、XとXrが等しい場合に
は、真値Yは暫定平方根Yrと等しいので406の処理によ
り添付桁Sを0とし、XがXrより大きい場合には、真値
Yは暫定平方根Yrより大きいので407の処理により添付
桁Sを1とする。
値Xとを比較することにより、暫定平方根Yrが真値Yに
対してどちら側に誤差を持っているかを判断する。この
場合には平方根Y=X1/2においては、Xに対してYが単
調増加関数であるために、XとXrの比較のみで添付桁S
を求めることができる。すなわち、XがXrより小さい場
合には、真値Yは暫定平方根Yrより小さいので405の処
理により添付桁Sを−1とし、XとXrが等しい場合に
は、真値Yは暫定平方根Yrと等しいので406の処理によ
り添付桁Sを0とし、XがXrより大きい場合には、真値
Yは暫定平方根Yrより大きいので407の処理により添付
桁Sを1とする。
最後に、408の丸め処理により、暫定平方根Yrの最下
位桁の1桁下位に添付桁Sを加えて、結果が有効桁数に
なるように指定された丸めモードで丸めを行なうことに
より、真値を丸めた場合と同じ平方根の結果Yeが求めら
れる。
位桁の1桁下位に添付桁Sを加えて、結果が有効桁数に
なるように指定された丸めモードで丸めを行なうことに
より、真値を丸めた場合と同じ平方根の結果Yeが求めら
れる。
次に、第6図の収束型演算を実現する演算処理装置用
いて平方根演算を行なう場合について、第4図の流れ図
を用いて説明する。
いて平方根演算を行なう場合について、第4図の流れ図
を用いて説明する。
まず、被演算数XがそれぞれデータバスAを介して、
Xレジスタに入力され格納され、第4図の近似平方根演
算401が開始される。この近似平方根演算では、除算の
場合と同様に乗算と加減算の繰り返しにより近似平方根
Yaが求められる。例えばニュートンラフソン法によれ
ば、Y=X1/2の平方根演算は、最初の1/X1/2の近似値R0
をテーブルを引いて求め、(2)式の漸化式をn回繰り
返し用いて1/X1/2の近似値Rnを求めることができ、その
後、RnとXを乗算してX1/2の近似値Yaを得ることができ
る。ニュートンラフソン法を用いた、第6図の演算装置
の構成による近似平方根Yaの演算は、除算について述べ
たようにして容易に行なえる。したがって、ここでは近
似平方根Yaが乗算器606の出力から得られた後の処理に
ついて述べる。この場合に、この近似平方根Yaの精度
は、真値Y=X1/2との誤差が最終解に必要な最小有効桁
の2桁下位の桁の大きさより小さい精度で求められてい
るものとする。
Xレジスタに入力され格納され、第4図の近似平方根演
算401が開始される。この近似平方根演算では、除算の
場合と同様に乗算と加減算の繰り返しにより近似平方根
Yaが求められる。例えばニュートンラフソン法によれ
ば、Y=X1/2の平方根演算は、最初の1/X1/2の近似値R0
をテーブルを引いて求め、(2)式の漸化式をn回繰り
返し用いて1/X1/2の近似値Rnを求めることができ、その
後、RnとXを乗算してX1/2の近似値Yaを得ることができ
る。ニュートンラフソン法を用いた、第6図の演算装置
の構成による近似平方根Yaの演算は、除算について述べ
たようにして容易に行なえる。したがって、ここでは近
似平方根Yaが乗算器606の出力から得られた後の処理に
ついて述べる。この場合に、この近似平方根Yaの精度
は、真値Y=X1/2との誤差が最終解に必要な最小有効桁
の2桁下位の桁の大きさより小さい精度で求められてい
るものとする。
次に、第4図の中間丸め処理402は、第6図の加減算
丸め処理回路610で行なわれる。この場合に、選択回路6
08が乗算器606の出力すなわち近似平方根Yaを選択し、
選択回路609が0を選択するように制御される。加減算
丸め処理回路610は、最終の平方根の最小有効桁より1
桁以上下位で、且つ近似平方根Yaの最大誤差より大きい
最小重みの桁の1桁以上上位の桁の範囲のうちいずれか
が最下位桁となる精度で、近似平方根Yaを丸めて近似平
方根Yaに最も近い暫定平方根Yrを求めて出力し、同時に
暫定平方根YrをTレジスタ611に格納する。
丸め処理回路610で行なわれる。この場合に、選択回路6
08が乗算器606の出力すなわち近似平方根Yaを選択し、
選択回路609が0を選択するように制御される。加減算
丸め処理回路610は、最終の平方根の最小有効桁より1
桁以上下位で、且つ近似平方根Yaの最大誤差より大きい
最小重みの桁の1桁以上上位の桁の範囲のうちいずれか
が最下位桁となる精度で、近似平方根Yaを丸めて近似平
方根Yaに最も近い暫定平方根Yrを求めて出力し、同時に
暫定平方根YrをTレジスタ611に格納する。
次に、第4図の平方演算処理403は、第6図の乗算器6
06で行なわれる。すなわち、選択回路604および選択回
路605が共に加減算丸め処理回路610の結果すなわち暫定
平方根Yrを選択されるように制御し、入力された暫定平
方根Yrに対する逆関数すなわち暫定平方根Yrの平方Xr=
Yr2を求める。
06で行なわれる。すなわち、選択回路604および選択回
路605が共に加減算丸め処理回路610の結果すなわち暫定
平方根Yrを選択されるように制御し、入力された暫定平
方根Yrに対する逆関数すなわち暫定平方根Yrの平方Xr=
Yr2を求める。
次に、第4図の比較判断処理404と、値の代入処理405
・406および407は、加減算丸め処理回路610および添付
桁生成回路612で行なわれる。まず、選択回路608が乗算
器606の出力すなわちXrを選択し、データバスBおよび
選択回路609を介してXレジスタ601の被演算数Xが、加
減算丸め処理回路610に入力されるように制御される。
さらに、加減算丸め処理回路610が入力されたXrから、
与えられた被演算数Xを減算してXr−Xを出力する。こ
の減算により、Xrと被演算数Xとが比較される。添付桁
生成回路612では、この減算によって得られた結果Xr−
Xを入力し、Xr−Xが0の場合には添付桁Sを0とし、
Xr−Xが負となった場合には添付桁Sを1とし、Xr−X
が正となった場合には添付桁Sを−1として出力する。
・406および407は、加減算丸め処理回路610および添付
桁生成回路612で行なわれる。まず、選択回路608が乗算
器606の出力すなわちXrを選択し、データバスBおよび
選択回路609を介してXレジスタ601の被演算数Xが、加
減算丸め処理回路610に入力されるように制御される。
さらに、加減算丸め処理回路610が入力されたXrから、
与えられた被演算数Xを減算してXr−Xを出力する。こ
の減算により、Xrと被演算数Xとが比較される。添付桁
生成回路612では、この減算によって得られた結果Xr−
Xを入力し、Xr−Xが0の場合には添付桁Sを0とし、
Xr−Xが負となった場合には添付桁Sを1とし、Xr−X
が正となった場合には添付桁Sを−1として出力する。
最後に、第4図の最終丸め処理408は、第6図の加減
算丸め処理回路で行なわれる。すなわち、選択回路608
がTレジスタ611の出力すなわち暫定平方根Yrを選択
し、選択回路609が0を選択するように制御される。加
減算丸め処理回路610は、入力された暫定平方根Yrの最
下位桁の1桁下位に、添付桁生成回路612から入力され
る添付桁Sを加えて、結果が有効桁数になるように指定
された丸めモードで丸めを行ない平方根演算結果Yeが求
められる。
算丸め処理回路で行なわれる。すなわち、選択回路608
がTレジスタ611の出力すなわち暫定平方根Yrを選択
し、選択回路609が0を選択するように制御される。加
減算丸め処理回路610は、入力された暫定平方根Yrの最
下位桁の1桁下位に、添付桁生成回路612から入力され
る添付桁Sを加えて、結果が有効桁数になるように指定
された丸めモードで丸めを行ない平方根演算結果Yeが求
められる。
以上のようにして、平方根Y=Xl/2の真値を丸めた値
と同一の平方根演算結果Yeが演算される。
と同一の平方根演算結果Yeが演算される。
なお、以上の説明では、除算と平方根演算を行なう場
合について述べたが、その他の乗算と加減算を繰り返し
行なって近似値を求めるような収束型演算についても、
同様にして演算することができる。また、第6図に示し
たブロック図の構成以外の他の構成を用いても同様な効
果が得られる。
合について述べたが、その他の乗算と加減算を繰り返し
行なって近似値を求めるような収束型演算についても、
同様にして演算することができる。また、第6図に示し
たブロック図の構成以外の他の構成を用いても同様な効
果が得られる。
以上説明したように、近似演算の結果から関数の真値
を丸めた結果と同一の演算結果を得られる。以上の説明
では、具体的な関数として除算と平方根演算について述
べたが、同様にして他の関数についても、関数の真値を
丸めた場合の結果と同一の結果を得ることができる。
を丸めた結果と同一の演算結果を得られる。以上の説明
では、具体的な関数として除算と平方根演算について述
べたが、同様にして他の関数についても、関数の真値を
丸めた場合の結果と同一の結果を得ることができる。
本発明の第2の発明を除算を例として説明する。以下
の説明では、IEEE754規格の倍精度を例とし、さらに正
規化された仮数部の演算について説明する。すなわち、
仮数部の有効桁数が53桁、最上位桁が20の重みの桁、最
下位桁が2-52の重みの桁である。さらに被除数Xおよび
除数Yを共に正数とし、正規化されているものとすれ
ば、1≦X、Y<2の関係にある。
の説明では、IEEE754規格の倍精度を例とし、さらに正
規化された仮数部の演算について説明する。すなわち、
仮数部の有効桁数が53桁、最上位桁が20の重みの桁、最
下位桁が2-52の重みの桁である。さらに被除数Xおよび
除数Yを共に正数とし、正規化されているものとすれ
ば、1≦X、Y<2の関係にある。
第3図を用いて説明したようにして、近似除算により
近似商Zaを求め、さらに近似商Zaを丸めることにより暫
定商Zrを求める。この時の暫定商Zrの真値Zとの誤差を
δで表せば、 δ=Zr−Z (11) である。この暫定商ZrよりZ=X/Yの逆関数すなわち積X
r=Zr×Yを求めれば、 Xr=Zr×Y =(Z+δ)×Y =X+δ・Y =X+Δ (12) となる。したがって、XとXrを比較すると、δ・Yだけ
Xrが大きい。暫定商Zrの誤差δの絶対値を2-54未満とす
れば、Δ=δ・Yの絶対値の最大値は、 |Δ|max=|δ・Y|max <2-54・2 <2-53 (13) となる。(13)式は、Δの絶対値を2進数で表すと、2
-53の重みの桁以上の桁が常に0であることを示してい
る。一方、被除数Xは、正規化された仮数部を仮定して
いるので、2-53の重みの桁以下の桁が常に0である。
近似商Zaを求め、さらに近似商Zaを丸めることにより暫
定商Zrを求める。この時の暫定商Zrの真値Zとの誤差を
δで表せば、 δ=Zr−Z (11) である。この暫定商ZrよりZ=X/Yの逆関数すなわち積X
r=Zr×Yを求めれば、 Xr=Zr×Y =(Z+δ)×Y =X+δ・Y =X+Δ (12) となる。したがって、XとXrを比較すると、δ・Yだけ
Xrが大きい。暫定商Zrの誤差δの絶対値を2-54未満とす
れば、Δ=δ・Yの絶対値の最大値は、 |Δ|max=|δ・Y|max <2-54・2 <2-53 (13) となる。(13)式は、Δの絶対値を2進数で表すと、2
-53の重みの桁以上の桁が常に0であることを示してい
る。一方、被除数Xは、正規化された仮数部を仮定して
いるので、2-53の重みの桁以下の桁が常に0である。
したがって、Δが正である場合のXrの各桁は、20の桁
から2-52の桁まで被除数Xの各桁の値と同じになり、2
-53の重みの桁が0であり、さらに下位の桁はΔの各桁
の値と同じになる。またΔが0である場合のXrの各桁
は、20の桁から2-52の桁まで被除数Xの各桁の値と同じ
になり、さらに下位の桁は0なる。さらにまた、Δが負
である場合のXrの各桁は、被除数XからΔの絶対値を減
算したものとなり、20の桁から2-52の桁までは被除数X
から2-52だけ小さい数の各桁の値と同じになり、2-53の
重みの桁が1であり、さらに下位の桁はΔの2の補数の
各桁の値と同じになる。以上のことから、Xrの2-53の重
みの桁以下の桁の値を検査することにより、Δの値が
正、負あるいは0であるかの判断をすることができる。
したがって(11)(12)式の関係から、暫定商Zrと真値
Zの大小関係の判断が可能となり、この判断から添付桁
Sを求めることができる。すなわち、Xrの2-53の重みの
桁が0で、且つ2-54の重みの桁以下に0でない桁がある
場合には、Δが正となり、暫定商Zrが真値Zより大きい
ので添付桁Sを−1とすればよい。また、2-53の重みの
桁以下の全ての桁が0である場合には、Δが0となり、
暫定商Zrと真値Zが等しいので、添付桁Sを0とすれば
よい。さらにまた、Xrの2-53の重みの桁が1である場合
には、Δが負となり、暫定商Zrが真値Zより小さいの
で、添付桁Sを1とすればよい。この関係を第1表に示
す。
から2-52の桁まで被除数Xの各桁の値と同じになり、2
-53の重みの桁が0であり、さらに下位の桁はΔの各桁
の値と同じになる。またΔが0である場合のXrの各桁
は、20の桁から2-52の桁まで被除数Xの各桁の値と同じ
になり、さらに下位の桁は0なる。さらにまた、Δが負
である場合のXrの各桁は、被除数XからΔの絶対値を減
算したものとなり、20の桁から2-52の桁までは被除数X
から2-52だけ小さい数の各桁の値と同じになり、2-53の
重みの桁が1であり、さらに下位の桁はΔの2の補数の
各桁の値と同じになる。以上のことから、Xrの2-53の重
みの桁以下の桁の値を検査することにより、Δの値が
正、負あるいは0であるかの判断をすることができる。
したがって(11)(12)式の関係から、暫定商Zrと真値
Zの大小関係の判断が可能となり、この判断から添付桁
Sを求めることができる。すなわち、Xrの2-53の重みの
桁が0で、且つ2-54の重みの桁以下に0でない桁がある
場合には、Δが正となり、暫定商Zrが真値Zより大きい
ので添付桁Sを−1とすればよい。また、2-53の重みの
桁以下の全ての桁が0である場合には、Δが0となり、
暫定商Zrと真値Zが等しいので、添付桁Sを0とすれば
よい。さらにまた、Xrの2-53の重みの桁が1である場合
には、Δが負となり、暫定商Zrが真値Zより小さいの
で、添付桁Sを1とすればよい。この関係を第1表に示
す。
以上のように、暫定商Zrと真値Zの大小関係の判断
を、XrとXとの減算を行なうことなく、乗算によって得
られたXrの2-53の重みの桁以下の桁の値を検査すること
により容易に行なうことができ、この判断から添付桁S
を求めることができる。
を、XrとXとの減算を行なうことなく、乗算によって得
られたXrの2-53の重みの桁以下の桁の値を検査すること
により容易に行なうことができ、この判断から添付桁S
を求めることができる。
以上の説明では、除算を行なう場合について述べた
が、この簡単な添付桁Sの決定方法は除算以外の演算に
ついても同様に用いることができる。この場合に近似演
算により求める関数Y=F(X)の近似解Yaと、この近
似解Yaを丸めて求める暫定解Yrを、暫定解Yrから求めた
関数Fの逆関数Xr=F-1(Yr)と与えられたXとの差の
絶対値の最大値が、与えられたXの最小有効桁の1桁下
位の桁の重みよりも小さくなるように求めることにより
可能となる。
が、この簡単な添付桁Sの決定方法は除算以外の演算に
ついても同様に用いることができる。この場合に近似演
算により求める関数Y=F(X)の近似解Yaと、この近
似解Yaを丸めて求める暫定解Yrを、暫定解Yrから求めた
関数Fの逆関数Xr=F-1(Yr)と与えられたXとの差の
絶対値の最大値が、与えられたXの最小有効桁の1桁下
位の桁の重みよりも小さくなるように求めることにより
可能となる。
次に、用いるアルゴリズムやハードウェアの制限か
ら、暫定解Yrから求めた関数Fの逆関数Xr=F-1(Yr)
と与えられたXとの差の絶対値の最大値が、与えられた
Xの最小有効桁の1桁下位の桁の重みよりも大きくなる
場合を考える。
ら、暫定解Yrから求めた関数Fの逆関数Xr=F-1(Yr)
と与えられたXとの差の絶対値の最大値が、与えられた
Xの最小有効桁の1桁下位の桁の重みよりも大きくなる
場合を考える。
例として、平方根演算を考える。第4図を用いて説明
したようにして、近似平方根演算により近似平方根Yaを
求め、さらに近似平方根Yaを丸めることにより暫定平方
根Yrを求める。この時の暫定平方根Yrの真値Yとの誤差
をδで表せば、 δ=Yr−Y (14) である。この暫定平方根YrよりY=X1/2の逆関数すなわ
ち積Xr=Yr2を求めれば、 Xr=Yr2 =(Y+δ)2 =X+2δ・Y+δ2 =X+Δ (15) となる。したがってXとXrを比較すると、2δ・Y+δ
2だけXrが大きい。暫定平方根Yrの誤差δの絶対値を2
-53未満とすれば、Δ=2δ・Y+|δ2の絶対値の最大
値は、 |Δ|max=|2δ・Y+δ2|max <2・2-53・2+2-106 <2-51+2-106 (16) となる。(16)式は、Δの絶対値を2進数で表現する
と、2-50の重みの桁以上の桁が常に0であることを示し
ている。一方、Xは正規化された仮数部を仮定している
ので、2-53の重みの桁以下の桁が常に0である。したが
って、与えられた値XとΔの各桁の0でない桁は、2-51
と2-52の重みの桁で重なりがあり、したがって、XとXr
の大小関係を判断するには、Xrの2-53の重みの桁以下の
桁を検査するだけでなく、さらに上位の桁についても検
査しなければならない。XとXrの大小関係の判断は、例
えば、XrからXを減算することによりΔを求めた場合に
は、(16)式からわかるように、その絶対値は2-50未満
となるので、減算結果Δの2-50の重みの桁以下の桁を検
査することにより、XとXrの大小関係を判断できる。し
たがって、この判断から暫定平方根Yrと真値Yとの大小
関係を判断して、添付桁Sを求めればよい。この場合の
減算結果Δから添付桁Sを求めるのは、除算について述
べたことと同様にして行なうことができ、この関係を第
2表に示す。
したようにして、近似平方根演算により近似平方根Yaを
求め、さらに近似平方根Yaを丸めることにより暫定平方
根Yrを求める。この時の暫定平方根Yrの真値Yとの誤差
をδで表せば、 δ=Yr−Y (14) である。この暫定平方根YrよりY=X1/2の逆関数すなわ
ち積Xr=Yr2を求めれば、 Xr=Yr2 =(Y+δ)2 =X+2δ・Y+δ2 =X+Δ (15) となる。したがってXとXrを比較すると、2δ・Y+δ
2だけXrが大きい。暫定平方根Yrの誤差δの絶対値を2
-53未満とすれば、Δ=2δ・Y+|δ2の絶対値の最大
値は、 |Δ|max=|2δ・Y+δ2|max <2・2-53・2+2-106 <2-51+2-106 (16) となる。(16)式は、Δの絶対値を2進数で表現する
と、2-50の重みの桁以上の桁が常に0であることを示し
ている。一方、Xは正規化された仮数部を仮定している
ので、2-53の重みの桁以下の桁が常に0である。したが
って、与えられた値XとΔの各桁の0でない桁は、2-51
と2-52の重みの桁で重なりがあり、したがって、XとXr
の大小関係を判断するには、Xrの2-53の重みの桁以下の
桁を検査するだけでなく、さらに上位の桁についても検
査しなければならない。XとXrの大小関係の判断は、例
えば、XrからXを減算することによりΔを求めた場合に
は、(16)式からわかるように、その絶対値は2-50未満
となるので、減算結果Δの2-50の重みの桁以下の桁を検
査することにより、XとXrの大小関係を判断できる。し
たがって、この判断から暫定平方根Yrと真値Yとの大小
関係を判断して、添付桁Sを求めればよい。この場合の
減算結果Δから添付桁Sを求めるのは、除算について述
べたことと同様にして行なうことができ、この関係を第
2表に示す。
以上述べたように、暫定解Yrから求めた関数Fの逆関
数Xr=F-1(Yr)と与えられたXとの差の絶対値の最大
値が、与えられたXの最小有効桁の1桁下位の桁の重み
よりも大きくなる場合には、Xrの2-53の重みの桁以下の
桁を検査するだけでなく、XrからXを減算し、その減算
結果Δから添付桁Sを求めなければならない。しかし、
この減算は、XrからXの全ての桁で行なう必要はない。
すなわち、大小関係を判断するのに必要な桁、したがっ
て、2-50の重みの桁以下についてのみ行なえば十分であ
る。
数Xr=F-1(Yr)と与えられたXとの差の絶対値の最大
値が、与えられたXの最小有効桁の1桁下位の桁の重み
よりも大きくなる場合には、Xrの2-53の重みの桁以下の
桁を検査するだけでなく、XrからXを減算し、その減算
結果Δから添付桁Sを求めなければならない。しかし、
この減算は、XrからXの全ての桁で行なう必要はない。
すなわち、大小関係を判断するのに必要な桁、したがっ
て、2-50の重みの桁以下についてのみ行なえば十分であ
る。
もちろん、この平方根演算をさらに精度よく行なうこ
とにより、Xrの2-53の重みの桁以下の桁を検査するだけ
で、XrとXの大小関係を判断することができる。すなわ
ち、(16)式において暫定平方根Yrの誤差δの絶対値を
2-56未満とすれば、 |Δ|max=|2δ・Y+δ2|max <2・2-56・2+2-112 <2-54+2-112 (17) となり、Δの絶対値を2進数で表すと、2-53の重みの桁
以上の桁が常に0であることを示している。このような
場合には、除算について述べたようにして、容易に添付
桁Sを求めることができる。
とにより、Xrの2-53の重みの桁以下の桁を検査するだけ
で、XrとXの大小関係を判断することができる。すなわ
ち、(16)式において暫定平方根Yrの誤差δの絶対値を
2-56未満とすれば、 |Δ|max=|2δ・Y+δ2|max <2・2-56・2+2-112 <2-54+2-112 (17) となり、Δの絶対値を2進数で表すと、2-53の重みの桁
以上の桁が常に0であることを示している。このような
場合には、除算について述べたようにして、容易に添付
桁Sを求めることができる。
第7図は、本発明の実施例の乗算器の構成を示すブロ
ック図である。第7図において、701は被乗数入力ラッ
チ、702は乗数入力ラッチ、703は減数入力ラッチ、704
は乗数リコード回路、705は部分積生成回路、706は減数
変換回路、707は部分積加算回路、708は乗算結果出力ラ
ッチである。
ック図である。第7図において、701は被乗数入力ラッ
チ、702は乗数入力ラッチ、703は減数入力ラッチ、704
は乗数リコード回路、705は部分積生成回路、706は減数
変換回路、707は部分積加算回路、708は乗算結果出力ラ
ッチである。
次に、第7図のブロック図の動作を説明する。まず、
被乗数、乗数および減数が、それぞれ被乗数ラッチ70
1、乗数ラッチ702および減数入力ラッチ703に取り込ま
れる。乗数ラッチ702に取り込まれた乗数は、乗数リコ
ード回路704に入力される。この乗数リコード回路704
は、部分積の数を減らせるためのものであり、例えば、
2ビットのブースの方法により部分積の数を入力された
乗数の桁数の約半分にすることができる。この2ビット
のブースの方法によれば、入力された2進数を2ビット
ごとに2、1、0、−1、−2のうちのいずれかの値に
変換する。次に、この乗数リコード回路704によってリ
コードされた乗数と、被乗数ラッチ701に保持された被
乗数とから、部分積生成回路705により複数の部分積が
生成される。また、減数変換回路706により、被乗数と
乗数とから生成される部分積と同一の表現形式で、減数
ラッチ703に保持された減数の符号反転値が生成され
る。この表現形式は、内部演算に2進数を用いた乗算器
では減数の2の補数表現となり、冗長2進数を用いた乗
算器においては冗長2進数となる。次に、このようにし
て生成された部分積と減数の符号反転値を、部分積加算
回路707により、順次あるいは、ツリー状に加算して、
その結果を乗算結果出力ラッチ708に出力する。したが
って、第7図の構成の乗算器を用いることにより、被乗
数と乗数との積から減数を減算した結果を得ることがで
きる。このような構成の乗算器を用いれば、前述の平方
根演算で説明したような、暫定平方根Yrから求めたXr=
Yr2と与えられたXとの差の絶対値の最大値が、与えら
れたXの最小有効桁の1桁下位の桁の重みよりも大きく
なる場合にも、容易にXrとXとの大小関係を判断でき、
添付桁Sを求めることができる。すなわち、第7図にお
いて、被乗数および乗数として共に暫定平方根Yrを入力
し、減数として与えられたXを入力する。これにより、
第7図の乗算器のブロック図の出力として、(15)式に
おけるΔが求められる。すなわち、 Δ=Yr2−X =Xr−X (18) である。このようにして求めたΔにより、第2表を用い
て添付桁Sを求めればよい。前述したように、添付桁S
を求めるためには、Δに対して全ての桁が必要なわけで
はなく、第2表からもわかるように2−50の重みの桁以
下についてのみ正しく計算すれば十分である。また、逆
関数の演算は添付桁の生成のみに用いられる。したがっ
て、第7図における減数ラッチ703と減数変換回路706
は、与えられた値Xの全ての桁に対応する桁数を必要と
せず、Δの絶対値とXとのデータの重なりのある桁とさ
らに1桁上位の桁、すなわちこの例では2-5、2-5および
2-52の桁に対応する3桁分のみ接続すればよい。以上説
明したように、第7図に示したような構成の乗算器を用
いることにより、通常の乗算器で逆関数Yr2を求め、さ
らに減算器を用いてXを減算する必要がないので、簡単
且つ高速に添付桁Sの決定が可能となる。
被乗数、乗数および減数が、それぞれ被乗数ラッチ70
1、乗数ラッチ702および減数入力ラッチ703に取り込ま
れる。乗数ラッチ702に取り込まれた乗数は、乗数リコ
ード回路704に入力される。この乗数リコード回路704
は、部分積の数を減らせるためのものであり、例えば、
2ビットのブースの方法により部分積の数を入力された
乗数の桁数の約半分にすることができる。この2ビット
のブースの方法によれば、入力された2進数を2ビット
ごとに2、1、0、−1、−2のうちのいずれかの値に
変換する。次に、この乗数リコード回路704によってリ
コードされた乗数と、被乗数ラッチ701に保持された被
乗数とから、部分積生成回路705により複数の部分積が
生成される。また、減数変換回路706により、被乗数と
乗数とから生成される部分積と同一の表現形式で、減数
ラッチ703に保持された減数の符号反転値が生成され
る。この表現形式は、内部演算に2進数を用いた乗算器
では減数の2の補数表現となり、冗長2進数を用いた乗
算器においては冗長2進数となる。次に、このようにし
て生成された部分積と減数の符号反転値を、部分積加算
回路707により、順次あるいは、ツリー状に加算して、
その結果を乗算結果出力ラッチ708に出力する。したが
って、第7図の構成の乗算器を用いることにより、被乗
数と乗数との積から減数を減算した結果を得ることがで
きる。このような構成の乗算器を用いれば、前述の平方
根演算で説明したような、暫定平方根Yrから求めたXr=
Yr2と与えられたXとの差の絶対値の最大値が、与えら
れたXの最小有効桁の1桁下位の桁の重みよりも大きく
なる場合にも、容易にXrとXとの大小関係を判断でき、
添付桁Sを求めることができる。すなわち、第7図にお
いて、被乗数および乗数として共に暫定平方根Yrを入力
し、減数として与えられたXを入力する。これにより、
第7図の乗算器のブロック図の出力として、(15)式に
おけるΔが求められる。すなわち、 Δ=Yr2−X =Xr−X (18) である。このようにして求めたΔにより、第2表を用い
て添付桁Sを求めればよい。前述したように、添付桁S
を求めるためには、Δに対して全ての桁が必要なわけで
はなく、第2表からもわかるように2−50の重みの桁以
下についてのみ正しく計算すれば十分である。また、逆
関数の演算は添付桁の生成のみに用いられる。したがっ
て、第7図における減数ラッチ703と減数変換回路706
は、与えられた値Xの全ての桁に対応する桁数を必要と
せず、Δの絶対値とXとのデータの重なりのある桁とさ
らに1桁上位の桁、すなわちこの例では2-5、2-5および
2-52の桁に対応する3桁分のみ接続すればよい。以上説
明したように、第7図に示したような構成の乗算器を用
いることにより、通常の乗算器で逆関数Yr2を求め、さ
らに減算器を用いてXを減算する必要がないので、簡単
且つ高速に添付桁Sの決定が可能となる。
以上の説明では、平方根演算について述べたが、他の
演算についても本発明を用いることにより同様の効果を
得ることができる。また、以上の説明では、ブースのリ
コード方法を用いた乗算器について述べたが、乗数のリ
コードをしなくてもよい。
演算についても本発明を用いることにより同様の効果を
得ることができる。また、以上の説明では、ブースのリ
コード方法を用いた乗算器について述べたが、乗数のリ
コードをしなくてもよい。
第8図は、第6図に示した本発明の演算処理装置をさ
らに改善した実施例を示すブロック図である。第8図に
おいて、806は第7図の説明で述べた乗算器であり、812
は添付桁生成回路であり、その他の構成要素は第6図の
同一番号で示したものと同じものである。第8図の乗算
器806は、減数としてXレジスタ601に格納されたデータ
を入力することができるように構成されている。また、
添付桁生成回路は、第6図においては加減算丸め処理回
路610の出力を入力するように構成されていたが、第8
図においては、乗算器806の出力を入力するように構成
されている。
らに改善した実施例を示すブロック図である。第8図に
おいて、806は第7図の説明で述べた乗算器であり、812
は添付桁生成回路であり、その他の構成要素は第6図の
同一番号で示したものと同じものである。第8図の乗算
器806は、減数としてXレジスタ601に格納されたデータ
を入力することができるように構成されている。また、
添付桁生成回路は、第6図においては加減算丸め処理回
路610の出力を入力するように構成されていたが、第8
図においては、乗算器806の出力を入力するように構成
されている。
第8図の構成により、第6図の説明で述べた除算の実
行時に、暫定商Zrと除数Yの積すなわちXr=Zr・Yと被
除数Xの大小関係の比較を、加減算丸め処理回路610に
より減算を行なうことなく、乗算器806の結果Xrの値に
対して第1表を用いて判断され、添付桁の生成ができ
る。したがって、加減算丸め処理回路610でのXrとXの
減算処理を省くことができるので高速に演算が可能にな
る。
行時に、暫定商Zrと除数Yの積すなわちXr=Zr・Yと被
除数Xの大小関係の比較を、加減算丸め処理回路610に
より減算を行なうことなく、乗算器806の結果Xrの値に
対して第1表を用いて判断され、添付桁の生成ができ
る。したがって、加減算丸め処理回路610でのXrとXの
減算処理を省くことができるので高速に演算が可能にな
る。
また、第6図の説明で述べた平方根演算の実行時に
は、暫定平方根Yrの平方すなわちXr=Yr2と被演算数X
の大小関係の比較判断を、乗算器806の被乗数および乗
数として共にYrを入力し、さらに減数としてXレジスタ
601に格納されている被演算数Xを入力して演算し、そ
の結果に対して表2を用いて判断することができ、添付
桁の生成ができる。したがって、加減算丸め処理回路61
0でのXrとXの減算処理を省くことができるので高速な
演算が可能になる。
は、暫定平方根Yrの平方すなわちXr=Yr2と被演算数X
の大小関係の比較判断を、乗算器806の被乗数および乗
数として共にYrを入力し、さらに減数としてXレジスタ
601に格納されている被演算数Xを入力して演算し、そ
の結果に対して表2を用いて判断することができ、添付
桁の生成ができる。したがって、加減算丸め処理回路61
0でのXrとXの減算処理を省くことができるので高速な
演算が可能になる。
発明の効果 以上説明したように、本発明によれば、近似演算によ
って求めた関数の近似解を丸めた暫定解と真値との大小
関係を容易に判断することができ、これにより、関数の
真値を丸めた場合と同一の結果を簡単且つ高速に求める
ことができるという効果を有し、実用的にきわめて有用
である。
って求めた関数の近似解を丸めた暫定解と真値との大小
関係を容易に判断することができ、これにより、関数の
真値を丸めた場合と同一の結果を簡単且つ高速に求める
ことができるという効果を有し、実用的にきわめて有用
である。
第1図は本発明の実施例の処理の流れ図、第2図は本発
明を説明する数直線図、第3図は本発明を除算に適用し
た処理の流れ図、第4図は本発明を平方根演算に適用し
た処理の流れ図、第5図は本発明の実施例の演算処理装
置を示すブロック図、第6図は本発明の他の実施例の演
算処理装置を示すブロック図、第7図は本発明の実施例
の乗算器の構成を示すブロック図、第8図は本発明の他
の実施例の演算処理装置を示すブロック図である。 101,301,401……近似演算処理、102,109,302,308,402,4
08……丸め処理、103,303,403……逆関数演算処理、10
4,105,304,404……比較判断処理、200……近似解の取り
得る領域、201……真値、502……関数演算装置、606,80
6……乗算器、505,610……加減算丸め処理装置、507,61
2,812……添付桁生成回路、705……部分積生成回路、70
6……減数変換回路、707……部分積加算回路。
明を説明する数直線図、第3図は本発明を除算に適用し
た処理の流れ図、第4図は本発明を平方根演算に適用し
た処理の流れ図、第5図は本発明の実施例の演算処理装
置を示すブロック図、第6図は本発明の他の実施例の演
算処理装置を示すブロック図、第7図は本発明の実施例
の乗算器の構成を示すブロック図、第8図は本発明の他
の実施例の演算処理装置を示すブロック図である。 101,301,401……近似演算処理、102,109,302,308,402,4
08……丸め処理、103,303,403……逆関数演算処理、10
4,105,304,404……比較判断処理、200……近似解の取り
得る領域、201……真値、502……関数演算装置、606,80
6……乗算器、505,610……加減算丸め処理装置、507,61
2,812……添付桁生成回路、705……部分積生成回路、70
6……減数変換回路、707……部分積加算回路。
Claims (11)
- 【請求項1】デジタルデータXに対して、関数Fにより
Y=F(X)で求まる真値Yの最終的な近似値を所定の
桁数で表すデジタルデータYeであって、該真値Yを所定
のまるめ方法に従って丸めた結果と一致するデジタルデ
ータYeを生成する演算処理装置であって、 デジタルデータXを入力とし、該真値Yとの誤差が該デ
ジタルデータYeの最下位桁の2桁下位の桁の重みより小
さい精度で、該真値Yの近似デジタルデータYaを出力す
る第1の関数演算装置と、 該デジタルデータYaを入力とし、最下位桁が該デジタル
データYeの最下位桁より1桁以上下位であり、かつ、デ
ジタルデータYaの最大誤差より大きい最小重みの桁より
1桁以上上位である桁の範囲のうちのいずれかであり、
デジタルデータYaに最も近い暫定値を表すデジタルデー
タYrを出力する第1の丸め処理回路と、 該デジタルデータYrを入力とし、関数Fの逆関数Xr=F
-1(Yr)を出力する第2の関数演算装置と、 該デジタルデータXと該デジタルデータXrの間において
該関数Fが単調増加関数又は単調減少関数である場合、
該デジタルデータXと該デジタルデータXrとの大小関係
に基づいて、該真値Yと該デジタルデータYrとの大小関
係を判断する比較回路と、 該真値Yと該デジタルデータYrとの大小関係の判断結果
と該所定のまるめ方法に応じて該デジタルデータYrを丸
めることにより、該デジタルデータYeを出力する第2の
丸め処理回路とを包含する演算処理装置。 - 【請求項2】前記デジタルデータYeを得る第2の丸め処
理回路は、 該真値Yと該デジタルデータYrとの大小関係に応じて、
添付桁Sとして1、0、−1のいずれかを出力する添付
桁生成回路を有し、 前記デジタルデータYrの最下位桁の1桁下位に該添付桁
Sを加え、前記所定のまるめ方法に従って丸めることに
より、前記デジタルデータYeを得ることを特徴とする特
許請求の範囲第1項記載の演算処理装置。 - 【請求項3】前記デジタルデータXrと前記デジタルデー
タXとの差の絶対値の最大値が前記デジタルデータXの
最下位桁より1桁下位の桁の重みよりも小さくなるよう
に、デジタルデータYaとデジタルデータYrとを生成し、 該真値Yと該デジタルデータYrとの大小関係を判断する
比較回路は、 前記デジタルデータXrの、前記デジタルデータXの最下
位桁の重みと同一の重みを有する桁より1桁以上下位の
桁の値を検査して、前記デジタルデータXrと前記デジタ
ルデータXの大小関係を判断し、該判断結果に基づい
て、該真値Yと該デジタルデータYrとの大小関係を判断
することを特徴とする特許請求の範囲第1項記載の演算
処理装置。 - 【請求項4】デジタルデータXおよびデジタルデータY
に対して、商Z=X/Yにより求まる真値Zの最終的な近
似値を所定の桁数で表すデジタルデータZeであって、該
真値Zを所定のまるめ方法に従って丸めた結果と一致す
るデジタルデータZeを生成する演算処理装置であって、 デジタルデータXおよびデジタルデータYを入力し、該
真値Zとの誤差が該デジタルデータZeの最下位桁の2桁
下位の桁の重みより小さい精度で、該真値Zの近似デジ
タルデータZaを出力する除算装置と、 該デジタルデータZaを入力し、最下位桁が該デジタルデ
ータZeの最下位桁より1桁以上下位であり、かつ、デジ
タルデータZaの最大誤差より大きい最小重みの桁より1
桁以上上位である桁の範囲のうちのいずれかであり、デ
ジタルデータZaに最も近い暫定値を表すデジタルデータ
Zrを出力する第1の丸め処理回路と、 該デジタルデータYと該デジタルデータZrとを入力し、
積Xr=Y×Zrを出力する乗算器と、 該デジタルデータXと該デジタルデータXrとの大小関係
に基づいて、該真値Zと該デジタルデータZrとの大小関
係を判断する比較回路と、 該真値Zと該デジタルデータZrとの大小関係の判断結果
と該所定のまるめ方法に応じて該デジタルデータZrを丸
めることにより、該デジタルデータZeを出力する第2の
丸め処理回路とを包含する演算処理装置。 - 【請求項5】前記デジタルデータZeを出力する第2の丸
め処理回路は、 該真値Zと該デジタルデータZrとの大小関係に応じて、
添付桁Sとして1、0、−1のいずれかを出力する添付
桁生成回路を有し、 前記デジタルデータZrの最下位桁の1桁下位に該添付桁
Sを加え、前記所定のまるめ方法に従って丸めることに
より、前記デジタルデータZeを出力することを特徴とす
る特許請求の範囲第4項記載の演算処理装置。 - 【請求項6】前記デジタルデータXrと前記デジタルデー
タXとの差の絶対値の最大値が前記デジタルデータXの
最下位桁より1桁下位の桁の重みよりも小さくなるよう
に、デジタルデータZaとデジタルデータZrとを生成し、 該真値Zと該デジタルデータZrとの大小関係を判断する
比較回路は、 前記デジタルデータXrの、前記デジタルデータXの最下
位桁の重みと同一の重みを有する桁より1桁以上下位の
桁の値を検査して、前記デジタルデータXrと前記デジタ
ルデータXの大小関係を判断し、該判断結果に基づい
て、該真値Zと該デジタルデータZrとの大小関係を判断
することを特徴とする特許請求の範囲第4項記載の演算
処理装置。 - 【請求項7】正のデジタルデータXに対して、平方根Y
=X1/2により求まる真値Yの最終的な近似値を所定の桁
数で表すデジタルデータYeであって、該真値Yを所定の
まるめ方法に従って丸めた結果と一致するデジタルデー
タYeを生成する演算処理装置であって、 デジタルデータXを入力し、該真値Yとの誤差が該デジ
タルデータYeの最下位桁の2桁下位の桁の重みより小さ
い精度で、該真値Yの近似デジタルデータYaを出力する
平方根演算装置と、 該デジタルデータYaを入力し、最下位桁が該デジタルデ
ータYeの最下位桁より1桁以上下位であり、かつ、デジ
タルデータYaの最大誤差より大きい最小重みの桁より1
桁以上上位である桁の範囲のうちのいずれかであり、デ
ジタルデータYaに最も近い暫定値を表すデジタルデータ
Yrを出力する第1の丸め処理回路と、 該デジタルデータYrを入力し、Xr=Yr2を出力する乗算
器と、 該デジタルデータXと該デジタルデータXrとの大小関係
に基づいて、該真値Yと該デジタルデータYrとの大小関
係を判断する比較回路と、 該真値Yと該デジタルデータYrとの大小関係の判断結果
と該所定のまるめ方法に応じて該デジタルデータYrを丸
めることにより、該デジタルデータYeを出力する第2の
丸め処理回路とを包含する演算処理装置。 - 【請求項8】前記デジタルデータYeを出力する第2の丸
め処理回路は、 該真値Yと該デジタルデータYrとの大小関係に応じて、
添付桁Sとして1、0、−1のいずれかを出力する添付
桁生成回路を有し、 前記デジタルデータYrの最下位桁の1桁下位に該添付桁
Sを加え、前記所定のまるめ方法に従って丸めることに
より、前記デジタルデータYeを出力する第2の丸め処理
回路であることを特徴とする特許請求の範囲第7項記載
の演算処理装置。 - 【請求項9】前記デジタルデータXrと前記デジタルデー
タXとの差の絶対値の最大値が前記デジタルデータXの
最下位桁より1桁下位の桁の重みよりも小さくなるよう
に、デジタルデータYaとデジタルデータYrとを生成し、 該真値Yと該デジタルデータYrとの大小関係を判断する
比較回路は、 前記デジタルデータXrの、前記デジタルデータXの最下
位桁の重みと同一の重みを有する桁より1桁以上下位の
桁の値を検査して、前記デジタルデータXrと前記デジタ
ルデータXの大小関係を判断し、該判断結果に基づい
て、該真値Yと該デジタルデータYrとの大小関係を判断
することを特徴とする特許請求の範囲第7項記載の演算
処理装置。 - 【請求項10】積Xr=Y×Zrを出力する乗算器と該真値
Zと該デジタルデータZrとの大小関係を判断する比較回
路は、 乗数および被乗数として前記デジタルデータYと前記デ
ジタルデータZr、減数として前記デジタルデータXを入
力し、該デジタルデータYと該デジタルデータZrとから
複数の部分積を生成する部分積生成回路と、 該デジタルデータXの少なくとも所定の桁以下の符号反
転値データを該部分積と同一の表現形式で生成して桁合
わせする減数変換手段と、 該部分積生成手段により生成された該複数の部分積と該
減数変換手段により生成された該符号反転値データとを
加算して加算結果を表すデジタルデータを生成する部分
積加算回路を有することを特徴とする特許請求の範囲第
4項記載の演算処理装置。 - 【請求項11】積Xr=Yr2を出力する乗算器と該真値Y
と該デジタルデータYrとの大小関係を判断する比較回路
は、 乗数および被乗数として前記デジタルデータYr、減数と
して前記デジタルデータXを入力し、該デジタルデータ
Yrとから複数の部分積を生成する部分積生成回路と、 該デジタルデータXの少なくとも所定の桁以下の符号反
転値データを該部分積と同一の表現形式で生成して桁合
わせする減数変換手段と、 該部分積生成手段により生成された該複数の部分積と該
減数変換手段により生成された該符号反転値データとを
加算して加算結果を表すデジタルデータを生成する部分
積加算回路を有することを特徴とする特許請求の範囲第
7項記載の演算処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1-268447 | 1989-10-16 | ||
JP26844789 | 1989-10-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03206557A JPH03206557A (ja) | 1991-09-09 |
JP2938547B2 true JP2938547B2 (ja) | 1999-08-23 |
Family
ID=17458636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27353490A Expired - Fee Related JP2938547B2 (ja) | 1989-10-16 | 1990-10-12 | 演算処理装置 |
Country Status (5)
Country | Link |
---|---|
US (4) | US5212661A (ja) |
EP (2) | EP0424086B1 (ja) |
JP (1) | JP2938547B2 (ja) |
KR (1) | KR940010806B1 (ja) |
DE (1) | DE69030707T2 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2783710B2 (ja) * | 1991-10-25 | 1998-08-06 | 沖電気工業株式会社 | 直交変換器 |
EP0546977A3 (en) * | 1991-12-13 | 1994-10-19 | Ibm | Method and apparatus for solving numerical problems that use a plurality of processing elements operating in parallel |
EP0578950A3 (en) * | 1992-07-15 | 1995-11-22 | Ibm | Method and apparatus for converting floating-point pixel values to byte pixel values by table lookup |
GB9312745D0 (en) * | 1993-06-21 | 1993-08-04 | Questech Ltd | Accurate digital divider |
US5612909A (en) * | 1994-09-29 | 1997-03-18 | Intel Corporation | Method and apparatus for rounding operands using previous rounding history |
US5563818A (en) * | 1994-12-12 | 1996-10-08 | International Business Machines Corporation | Method and system for performing floating-point division using selected approximation values |
US5729481A (en) * | 1995-03-31 | 1998-03-17 | International Business Machines Corporation | Method and system of rounding for quadratically converging division or square root |
US5742537A (en) * | 1995-06-30 | 1998-04-21 | Wolrich; Gilbert M. | Fast determination of floating point sticky bit from input operands |
US5726927A (en) * | 1995-09-11 | 1998-03-10 | Digital Equipment Corporation | Multiply pipe round adder |
US5729485A (en) * | 1995-09-11 | 1998-03-17 | Digital Equipment Corporation | Fast determination of carry inputs from lower order product for radix-8 odd/even multiplier array |
US5764555A (en) * | 1996-03-13 | 1998-06-09 | International Business Machines Corporation | Method and system of rounding for division or square root: eliminating remainder calculation |
EP0837390A1 (en) * | 1996-10-18 | 1998-04-22 | Texas Instruments Incorporated | Improvements in or relating to microprocessor integrated circuits |
US6223198B1 (en) | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
US6115732A (en) * | 1998-05-08 | 2000-09-05 | Advanced Micro Devices, Inc. | Method and apparatus for compressing intermediate products |
US6115733A (en) * | 1997-10-23 | 2000-09-05 | Advanced Micro Devices, Inc. | Method and apparatus for calculating reciprocals and reciprocal square roots |
US6144980A (en) * | 1998-01-28 | 2000-11-07 | Advanced Micro Devices, Inc. | Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication |
US6134574A (en) * | 1998-05-08 | 2000-10-17 | Advanced Micro Devices, Inc. | Method and apparatus for achieving higher frequencies of exactly rounded results |
US6269384B1 (en) | 1998-03-27 | 2001-07-31 | Advanced Micro Devices, Inc. | Method and apparatus for rounding and normalizing results within a multiplier |
US6289365B1 (en) * | 1997-12-09 | 2001-09-11 | Sun Microsystems, Inc. | System and method for floating-point computation |
US6393554B1 (en) | 1998-01-28 | 2002-05-21 | Advanced Micro Devices, Inc. | Method and apparatus for performing vector and scalar multiplication and calculating rounded products |
US6487575B1 (en) * | 1998-08-31 | 2002-11-26 | Advanced Micro Devices, Inc. | Early completion of iterative division |
US6341300B1 (en) | 1999-01-29 | 2002-01-22 | Sun Microsystems, Inc. | Parallel fixed point square root and reciprocal square root computation unit in a processor |
US6384748B1 (en) | 1998-12-21 | 2002-05-07 | Base One International Corporation | Method of encoding numeric data and manipulating the same |
US6351760B1 (en) | 1999-01-29 | 2002-02-26 | Sun Microsystems, Inc. | Division unit in a processor using a piece-wise quadratic approximation technique |
JP2000260137A (ja) * | 1999-03-11 | 2000-09-22 | Fujitsu Ltd | 記憶装置 |
JP3708423B2 (ja) * | 2000-10-20 | 2005-10-19 | 株式会社日鉱マテリアルズ | エポキシ樹脂用フェノール系硬化剤及びそれを用いたエポキシ樹脂組成物 |
US7031996B2 (en) * | 2000-11-02 | 2006-04-18 | Seagate Technology Llc | Calculating square root of binary numbers with fixed-point microprocessor |
US8015228B2 (en) * | 2005-02-16 | 2011-09-06 | Arm Limited | Data processing apparatus and method for performing a reciprocal operation on an input value to produce a result value |
JP4915454B2 (ja) * | 2010-02-24 | 2012-04-11 | Nttエレクトロニクス株式会社 | 演算回路及び方法 |
US9678714B2 (en) | 2014-07-11 | 2017-06-13 | Imagination Technologies Limited | Check procedure for floating point operations |
US11416218B1 (en) | 2020-07-10 | 2022-08-16 | Ali Tasdighi Far | Digital approximate squarer for machine learning |
US11467805B1 (en) | 2020-07-10 | 2022-10-11 | Ali Tasdighi Far | Digital approximate multipliers for machine learning and artificial intelligence applications |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3202805A (en) * | 1961-10-02 | 1965-08-24 | Bunker Ramo | Simultaneous digital multiply-add, multiply-subtract circuit |
DE3267489D1 (en) * | 1982-02-18 | 1986-01-02 | Itt Ind Gmbh Deutsche | Digital parallel calculating circuit for positive and negative binary numbers |
JPS61256436A (ja) * | 1985-05-10 | 1986-11-14 | Hitachi Ltd | 演算装置 |
US4758972A (en) * | 1986-06-02 | 1988-07-19 | Raytheon Company | Precision rounding in a floating point arithmetic unit |
US4817048A (en) * | 1986-08-11 | 1989-03-28 | Amdahl Corporation | Divider with quotient digit prediction |
JPS6347874A (ja) * | 1986-08-16 | 1988-02-29 | Nec Corp | 算術演算装置 |
US4785412A (en) * | 1987-07-20 | 1988-11-15 | Control Data Corporation | Double precision approximate quotient network |
US4878190A (en) * | 1988-01-29 | 1989-10-31 | Texas Instruments Incorporated | Floating point/integer processor with divide and square root functions |
US4928259A (en) * | 1988-09-23 | 1990-05-22 | Intel Corporation | Sticky bit predictor for floating-point multiplication |
WO1990005335A1 (en) * | 1988-11-04 | 1990-05-17 | Hitachi, Ltd. | Apparatus for multiplication, division and extraction of square root |
US4969118A (en) * | 1989-01-13 | 1990-11-06 | International Business Machines Corporation | Floating point unit for calculating A=XY+Z having simultaneous multiply and add |
US4941120A (en) * | 1989-04-17 | 1990-07-10 | International Business Machines Corporation | Floating point normalization and rounding prediction circuit |
USH1222H (en) * | 1991-12-30 | 1993-08-03 | Apparatus for determining sticky bit value in arithmetic operations |
-
1990
- 1990-10-11 US US07/596,116 patent/US5212661A/en not_active Expired - Fee Related
- 1990-10-12 JP JP27353490A patent/JP2938547B2/ja not_active Expired - Fee Related
- 1990-10-13 KR KR1019900016227A patent/KR940010806B1/ko not_active IP Right Cessation
- 1990-10-16 DE DE69030707T patent/DE69030707T2/de not_active Expired - Fee Related
- 1990-10-16 EP EP90311315A patent/EP0424086B1/en not_active Expired - Lifetime
- 1990-10-16 EP EP96103447A patent/EP0723218A3/en not_active Withdrawn
-
1993
- 1993-02-02 US US08/012,220 patent/US5313415A/en not_active Expired - Lifetime
-
1994
- 1994-03-29 US US08/219,560 patent/US5434809A/en not_active Expired - Lifetime
-
1995
- 1995-05-08 US US08/438,142 patent/US5633818A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69030707D1 (de) | 1997-06-19 |
US5212661A (en) | 1993-05-18 |
US5633818A (en) | 1997-05-27 |
KR910008561A (ko) | 1991-05-31 |
EP0424086A3 (en) | 1992-09-09 |
US5434809A (en) | 1995-07-18 |
EP0723218A2 (en) | 1996-07-24 |
EP0424086B1 (en) | 1997-05-14 |
EP0723218A3 (en) | 1996-07-31 |
US5313415A (en) | 1994-05-17 |
EP0424086A2 (en) | 1991-04-24 |
DE69030707T2 (de) | 1997-10-02 |
JPH03206557A (ja) | 1991-09-09 |
KR940010806B1 (ko) | 1994-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2938547B2 (ja) | 演算処理装置 | |
JP2523962B2 (ja) | 浮動小数点演算装置 | |
EP0149248A2 (en) | Method and apparatus for division using interpolation approximation | |
JPH02112023A (ja) | 基数16除算器 | |
US20070156803A1 (en) | Overflow detection and clamping with parallel operand processing for fixed-point multipliers | |
US5408426A (en) | Arithmetic unit capable of performing concurrent operations for high speed operation | |
JP3551113B2 (ja) | 除算器 | |
CN108334304B (zh) | 数字递归除法 | |
JP7285966B2 (ja) | 多入力浮動小数点加算器 | |
JPH05241787A (ja) | 算術演算におけるスティッキイ・ビット値の判別装置 | |
JPH1195982A (ja) | 演算処理回路及び演算処理方法並びに演算処理システム | |
JP2857505B2 (ja) | 除算装置 | |
JP2558669B2 (ja) | 浮動小数点演算装置 | |
JP7247418B2 (ja) | 乗算のための計算ユニット、方法及びコンピュータプログラム | |
US20030115236A1 (en) | Elimination of rounding step in the short path of a floating point adder | |
US10353671B2 (en) | Circuitry and method for performing division | |
JP2003084969A (ja) | 浮動小数点剰余演算器、情報処理装置及びコンピュータプログラム | |
EP0461241A1 (en) | Binary floating point arithmetic rounding in conformance with ieee 754-1985 standard | |
JP2518532B2 (ja) | 減算シフト型除算器 | |
JP3233432B2 (ja) | 乗算器 | |
JPH06105421B2 (ja) | 逆三角関数演算装置 | |
JPH0823812B2 (ja) | 浮動小数点データの演算方法および演算装置 | |
JP2003029960A (ja) | 浮動小数点加算器のショートパスにおける丸めステップの排除 | |
JP3100868B2 (ja) | 浮動小数点数のための算術演算装置 | |
JPH0566923A (ja) | 演算器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |