JPH0594280A - 逆数の計算方法と、該方法を実施するためのコンピユータ - Google Patents
逆数の計算方法と、該方法を実施するためのコンピユータInfo
- Publication number
- JPH0594280A JPH0594280A JP8316391A JP8316391A JPH0594280A JP H0594280 A JPH0594280 A JP H0594280A JP 8316391 A JP8316391 A JP 8316391A JP 8316391 A JP8316391 A JP 8316391A JP H0594280 A JPH0594280 A JP H0594280A
- Authority
- JP
- Japan
- Prior art keywords
- value
- bits
- reciprocal
- given
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/035—Reduction of table size
- G06F1/0356—Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
-
- 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
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/12—Reciprocal functions
-
- 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/5354—Using table lookup, e.g. for digit selection in division by digit recurrence
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 逆数の計算方法と、該方法を実施するための
コンピュータ 【構成】 本発明は、数Dの逆数Iを計算するためにデ
ジタルコンピュータで使用することのできる方法に関す
る。本発明では、逆数は、逆数表を基に得られる第1の
値I0 に基づいた線形近似により得られる近似値に相補
訂正Cjlを適用した後I2 により概算される。訂正値C
jlは、縮小された寸法の表に記憶される予備設定データ
CBl およびHj から得られる。本発明はまた上記の方
法を実施するためのデジタルコンピュータに関する。
コンピュータ 【構成】 本発明は、数Dの逆数Iを計算するためにデ
ジタルコンピュータで使用することのできる方法に関す
る。本発明では、逆数は、逆数表を基に得られる第1の
値I0 に基づいた線形近似により得られる近似値に相補
訂正Cjlを適用した後I2 により概算される。訂正値C
jlは、縮小された寸法の表に記憶される予備設定データ
CBl およびHj から得られる。本発明はまた上記の方
法を実施するためのデジタルコンピュータに関する。
Description
【0001】
【産業上の利用分野】本発明は、デジタルコンピュータ
で使用することのできる、逆数の計算方法に関する。
で使用することのできる、逆数の計算方法に関する。
【0002】逆数の計算は、除算、特に浮動小数点形式
の十進法を用いた除算においてよく用いられる。特に、
2つの数の除算の結果は、除数の逆数による被除数の単
純な乗算で得られる。
の十進法を用いた除算においてよく用いられる。特に、
2つの数の除算の結果は、除数の逆数による被除数の単
純な乗算で得られる。
【0003】典型的には、数Dの逆数Iの除算または計
算は、下記の2つの主なグループに分けられる方法で達
成される。即ち、 ──減算と連続的なシフトを用いる方法と、 ──再帰方程式: In+1 =In ×(2−(D×In )) (ただし、InはIに向かって収束する)による、ニュ
ートンのアルゴリズムにほぼ基づいた反復法である。
算は、下記の2つの主なグループに分けられる方法で達
成される。即ち、 ──減算と連続的なシフトを用いる方法と、 ──再帰方程式: In+1 =In ×(2−(D×In )) (ただし、InはIに向かって収束する)による、ニュ
ートンのアルゴリズムにほぼ基づいた反復法である。
【0004】実際には、減算とシフト法で、各段階で1
つまたは2つだけの追加有効数字を得ることができる。
従って、これらの方法は、沢山のオペレータを必要と
し、このような回路は、一般に速度が遅く、集積化する
のが難しい。
つまたは2つだけの追加有効数字を得ることができる。
従って、これらの方法は、沢山のオペレータを必要と
し、このような回路は、一般に速度が遅く、集積化する
のが難しい。
【0005】除算の性能を最も重視する科学用電子計算
機では、一般に反復法が好まれている。ニュートンの方
法を正規化した数に適用すると、反復毎の演算結果の精
度を2倍にすることができる。しかし、各演算は、順番
に行う2つの乗算を必要としている。これら乗算は並列
化することができない。さらに、反復回数を減らすた
め、一般に逆数表を用いて反復の初期値を得る。この場
合、初期値の精度は逆数表の物理的な大きさにより制限
される。例えば、約22nの精度、すなわち2n個の有効
ビットの場合、逆数表の増分iを2-nに等しく選択され
るならば、2n-1 個のエントリを必要とする。
機では、一般に反復法が好まれている。ニュートンの方
法を正規化した数に適用すると、反復毎の演算結果の精
度を2倍にすることができる。しかし、各演算は、順番
に行う2つの乗算を必要としている。これら乗算は並列
化することができない。さらに、反復回数を減らすた
め、一般に逆数表を用いて反復の初期値を得る。この場
合、初期値の精度は逆数表の物理的な大きさにより制限
される。例えば、約22nの精度、すなわち2n個の有効
ビットの場合、逆数表の増分iを2-nに等しく選択され
るならば、2n-1 個のエントリを必要とする。
【0006】本発明は、上に述べた問題点を解決し、あ
るいはそれらの影響を小さくすることができ、回路の数
および寸法を減少して、オペレータを統合することが可
能な新規な逆数計算方法を提案することを目的とする。
るいはそれらの影響を小さくすることができ、回路の数
および寸法を減少して、オペレータを統合することが可
能な新規な逆数計算方法を提案することを目的とする。
【0007】さらに詳細には、本発明によれば、 a)与えられた数Dを2進数に変換し且つ正規化し、 b)入力値Xj =1/2+(j×2-n)(ただし、jは
0から2n-1 −1までの整数)に対応する数Dのn個の
上位ビットに基づいて、数Dの逆数の第1の近似値I0
を逆数表T1中で検索し、 c)値Dをその区間内に含む区間ij=〔Xj ,(Xj
+i)〕(但し、i=2-n)での逆数偏差勾配G0 =Δ
I0 /iを偏差表T2で検索し、 d)線形近似により、アルゴリズムIl =I0 +(d×
G0 )(但し、d=D−Xj で、G0 は代数値として入
力される)を用いて第2の値Il を決定し、 e)基本区間iB =〔XjB,(XjB+i)〕での偏差E
=I−I1 を表す、符号付あるいは符号付でない、予め
設定した基本訂正値CBlをdに基づいて訂正表T3で
検索し、 f)Xj に基づいてスケールファクタHj をスケール表
T4で検索し、 g)訂正値Cjl=CBl ×Hj を決定し、 h)第3の近似値I2 =I1 +Cjlを決定する 各操作を含むことを特徴とする数Dの逆数Iを計算する
方法が提供される。
0から2n-1 −1までの整数)に対応する数Dのn個の
上位ビットに基づいて、数Dの逆数の第1の近似値I0
を逆数表T1中で検索し、 c)値Dをその区間内に含む区間ij=〔Xj ,(Xj
+i)〕(但し、i=2-n)での逆数偏差勾配G0 =Δ
I0 /iを偏差表T2で検索し、 d)線形近似により、アルゴリズムIl =I0 +(d×
G0 )(但し、d=D−Xj で、G0 は代数値として入
力される)を用いて第2の値Il を決定し、 e)基本区間iB =〔XjB,(XjB+i)〕での偏差E
=I−I1 を表す、符号付あるいは符号付でない、予め
設定した基本訂正値CBlをdに基づいて訂正表T3で
検索し、 f)Xj に基づいてスケールファクタHj をスケール表
T4で検索し、 g)訂正値Cjl=CBl ×Hj を決定し、 h)第3の近似値I2 =I1 +Cjlを決定する 各操作を含むことを特徴とする数Dの逆数Iを計算する
方法が提供される。
【0008】従って、本発明の原理は、第1の値I
0 (これ自体は逆数表から得られる)に基づく線形近似
により得られた近似値I1に相補訂正を適用することで
ある。訂正値は、寸法を小さくした表に記憶された予め
設定したデータから得られる。このように、時間の前半
で、ニュートンの反復法を用いることなく、容易に集積
化可能な寸法の表から相当の精度(28ビット) の逆数を
得ることができる。
0 (これ自体は逆数表から得られる)に基づく線形近似
により得られた近似値I1に相補訂正を適用することで
ある。訂正値は、寸法を小さくした表に記憶された予め
設定したデータから得られる。このように、時間の前半
で、ニュートンの反復法を用いることなく、容易に集積
化可能な寸法の表から相当の精度(28ビット) の逆数を
得ることができる。
【0009】本発明の方法の第1の変形例において、本
方法は、k番目の反復が、アルゴリズム: INk =INk-1 ×{2−(D×INk-1 )} (ただし、IN0 =I2 )により与えられるニュートン
の反復法を用いる演算を含む。
方法は、k番目の反復が、アルゴリズム: INk =INk-1 ×{2−(D×INk-1 )} (ただし、IN0 =I2 )により与えられるニュートン
の反復法を用いる演算を含む。
【0010】本発明の別の変形例では、訂正表T3のエ
ントリは、Dのn個の最上位ビットの後に続くm個のビ
ットと、l×2-m-n≦d<(l+1)×2-m-n(ただ
し、lは0〜2m −1の整数である)場合、CBl =I
{Xjb+(l×2-m-n)}−I1 {Xjb+(l×
2-m-n)}とに基づいて行う。
ントリは、Dのn個の最上位ビットの後に続くm個のビ
ットと、l×2-m-n≦d<(l+1)×2-m-n(ただ
し、lは0〜2m −1の整数である)場合、CBl =I
{Xjb+(l×2-m-n)}−I1 {Xjb+(l×
2-m-n)}とに基づいて行う。
【0011】スケール表T4中のHj が、式Hj =(X
jb/Xj )3 により与えられる。2つの表T3およびT
4を設けることにより、その出力に値Cjlを直接与える
同等の訂正表と比較して、オペレータのサイズを実質的
に改善することが可能である。
jb/Xj )3 により与えられる。2つの表T3およびT
4を設けることにより、その出力に値Cjlを直接与える
同等の訂正表と比較して、オペレータのサイズを実質的
に改善することが可能である。
【0012】本発明の方法は、特に、ベクトルコンピュ
ータ等のデジタルコンピュータのプロセッサにおいて、
浮動小数点形式の変数を含む科学用電子計算機を実現す
るために適用することができる。
ータ等のデジタルコンピュータのプロセッサにおいて、
浮動小数点形式の変数を含む科学用電子計算機を実現す
るために適用することができる。
【0013】本発明はまた、上記した方法を実施するた
めのデジタルコンピュータであって、そのプロセッサの
少なくとも1つに、数Dの2進数への変換し且つ正規化
するための手段と、数Dのn個の上位ビットに応じてア
ドレス指定され、出力I0 を与える逆数表T1と、数D
のn個の上位ビットに応じてアドレス指定され、出力G
0 を与える偏差勾配表T2と、乗数入力に数Dのn個の
上位ビットに続く少なくともm個のビットを受け、被乗
数入力にG0 を受けて、出力S1を与える第1乗算回路
M1と、数Dのn個の上位ビットに続くmビットに応じ
てアドレス指定され、出力CBl を与える訂正表T3
と、数Dのn個の上位ビットに応じてアドレス指定さ
れ、出力Hj を与えるスケール表T4と、入力にCBl
とHj を受け、出力Cjlを与える第2乗算回路M2と、
Io 、S1 およびCjlを受ける3つの入力を備え、出力
I2を与える加算手段(A1、A2)とを含むことを特
徴とするデジタルコンピュータに関する。
めのデジタルコンピュータであって、そのプロセッサの
少なくとも1つに、数Dの2進数への変換し且つ正規化
するための手段と、数Dのn個の上位ビットに応じてア
ドレス指定され、出力I0 を与える逆数表T1と、数D
のn個の上位ビットに応じてアドレス指定され、出力G
0 を与える偏差勾配表T2と、乗数入力に数Dのn個の
上位ビットに続く少なくともm個のビットを受け、被乗
数入力にG0 を受けて、出力S1を与える第1乗算回路
M1と、数Dのn個の上位ビットに続くmビットに応じ
てアドレス指定され、出力CBl を与える訂正表T3
と、数Dのn個の上位ビットに応じてアドレス指定さ
れ、出力Hj を与えるスケール表T4と、入力にCBl
とHj を受け、出力Cjlを与える第2乗算回路M2と、
Io 、S1 およびCjlを受ける3つの入力を備え、出力
I2を与える加算手段(A1、A2)とを含むことを特
徴とするデジタルコンピュータに関する。
【0014】本発明のコンピュータの望ましい変形例で
は、表T2、乗算回路M1および加算手段A1、A2
が、符号付オペランド上で動作することを特徴とする。
従って少なくともさらに1ビットの精度を得ることが可
能である。
は、表T2、乗算回路M1および加算手段A1、A2
が、符号付オペランド上で動作することを特徴とする。
従って少なくともさらに1ビットの精度を得ることが可
能である。
【0015】本発明のその他の利点および特徴は、添付
の図面を参照にして以下の非限定的な説明から明らかに
する。
の図面を参照にして以下の非限定的な説明から明らかに
する。
【0016】本発明は、精度が、コンピュータにより使
用されているフォーマットの寸法に制限される固定小数
点形式または浮動小数点形式で表された数の逆数の計算
に広く適用可能である。浮動小数点形式の数の場合に
は、本発明は、この数の仮数の逆数を計算するのに直接
適用可能である。
用されているフォーマットの寸法に制限される固定小数
点形式または浮動小数点形式で表された数の逆数の計算
に広く適用可能である。浮動小数点形式の数の場合に
は、本発明は、この数の仮数の逆数を計算するのに直接
適用可能である。
【0017】例外なく乗算器を含む科学用電子計算機に
おいては、本発明に従う逆数の計算により、追加的な補
正を行うことなく除算を実施可能となることは明らかで
ある。
おいては、本発明に従う逆数の計算により、追加的な補
正を行うことなく除算を実施可能となることは明らかで
ある。
【0018】全ての逆数計算は、固定小数点形式の数の
逆数、または(浮動小数点形式の場合の)仮数(2進数
に変換されて、基数2に正規化され(この場合最上位ビ
ット(MSB)は1に等しい)、10進数での値が0.5 〜
1である)の逆数を計算することに関することに留意し
なければならない。実際、その他の演算はすべて、2の
羃による乗算もしくは除算、すなわち、シフト操作であ
る。2進数への変換、正規化およびシフトのための演算
は従来通りであるので、以下には詳しく説明しない。こ
れらの演算をデジタルコンピュータ中で実施するための
手段および回路についても同じである。従って、本発明
の方法において実施すべき最初の演算は、この演算が前
もって為されていない場合には、問題となる数の2進数
への変換ならびに正規化である。
逆数、または(浮動小数点形式の場合の)仮数(2進数
に変換されて、基数2に正規化され(この場合最上位ビ
ット(MSB)は1に等しい)、10進数での値が0.5 〜
1である)の逆数を計算することに関することに留意し
なければならない。実際、その他の演算はすべて、2の
羃による乗算もしくは除算、すなわち、シフト操作であ
る。2進数への変換、正規化およびシフトのための演算
は従来通りであるので、以下には詳しく説明しない。こ
れらの演算をデジタルコンピュータ中で実施するための
手段および回路についても同じである。従って、本発明
の方法において実施すべき最初の演算は、この演算が前
もって為されていない場合には、問題となる数の2進数
への変換ならびに正規化である。
【0019】例として与えられ、本発明をなんら制限し
ない以下の説明では、逆数Iの計算所望する数Dが、2
進数に変換され正規化された浮動小数点形式の数の仮数
として選択される。特に、科学用電子計算機で使用され
る浮動小数点形式は32ビット(単精度の浮動小数点表
現)または64ビット(倍精度の浮動小数点表現)であ
り、それぞれ24および56ビットの仮数を有する。
ない以下の説明では、逆数Iの計算所望する数Dが、2
進数に変換され正規化された浮動小数点形式の数の仮数
として選択される。特に、科学用電子計算機で使用され
る浮動小数点形式は32ビット(単精度の浮動小数点表
現)または64ビット(倍精度の浮動小数点表現)であ
り、それぞれ24および56ビットの仮数を有する。
【0020】図1は、本発明の方法の機能を概略的に示
す図であり、各演算は、次の参照番号a)〜h)で表さ
れる。 a)Dの正規化、 b)〔a)に基づく〕I0 の決定、 c)〔a)に基づく〕G0 の決定、 d1)〔a)およびc)に基づく〕d=D−Xj として
のd×G0 の計算、 d2)〔b)およびd1)に基づく〕I1 =I0 +(d
×G0 )の計算、 e)〔a)に基づく〕CBl の決定、 f)〔a)に基づく〕Hj の決定、 g)〔e)およびf)に基づく〕Cjl=Hj ×CBlの
計算、 h)〔d2)およびh)に基づく〕I2 =I1 +Cjlの
計算。
す図であり、各演算は、次の参照番号a)〜h)で表さ
れる。 a)Dの正規化、 b)〔a)に基づく〕I0 の決定、 c)〔a)に基づく〕G0 の決定、 d1)〔a)およびc)に基づく〕d=D−Xj として
のd×G0 の計算、 d2)〔b)およびd1)に基づく〕I1 =I0 +(d
×G0 )の計算、 e)〔a)に基づく〕CBl の決定、 f)〔a)に基づく〕Hj の決定、 g)〔e)およびf)に基づく〕Cjl=Hj ×CBlの
計算、 h)〔d2)およびh)に基づく〕I2 =I1 +Cjlの
計算。
【0021】さらに、本発明の方法の変形例において、
ニュートンの方法による反復の出発値IN0 として、I
2 を使用する。結果はIN2 である。
ニュートンの方法による反復の出発値IN0 として、I
2 を使用する。結果はIN2 である。
【0022】以下に、使用した各記号の定義、ならびに
各演算がどのようにして行われるかについての詳細を説
明する。しかし、図1に示した一連の演算は、近似値I
2が循環式の反復なしで得られ、グループe)、f)お
よびg)などのいくつかの演算は、例えば、「パイプラ
イン」アーキテクチャとして知られる方法を利用して、
グループb)、c)、d1)およびd2)の演算と並行
して実施可能であることを示している。この機能構造
は、計算速度の観点から特に有利である。
各演算がどのようにして行われるかについての詳細を説
明する。しかし、図1に示した一連の演算は、近似値I
2が循環式の反復なしで得られ、グループe)、f)お
よびg)などのいくつかの演算は、例えば、「パイプラ
イン」アーキテクチャとして知られる方法を利用して、
グループb)、c)、d1)およびd2)の演算と並行
して実施可能であることを示している。この機能構造
は、計算速度の観点から特に有利である。
【0023】0.5 ≦D<1のとき、I=1/D(ただ
し、IおよびDは、使用した浮動小数点形式により定義
される有限精度pの値である)を計算するものとする。
Dは2進数:D=0.1a2 ・・・ap をしている。
し、IおよびDは、使用した浮動小数点形式により定義
される有限精度pの値である)を計算するものとする。
Dは2進数:D=0.1a2 ・・・ap をしている。
【0024】従って、Dの逆数は、2進数: I=1/D=1.b1 ・・・bp (1<I≦2)、なら
びに D=0.100 ・・・0の場合、I=10.000・・・0 をしている。
びに D=0.100 ・・・0の場合、I=10.000・・・0 をしている。
【0025】この値は、図2に示した曲線Y(X)=1
/Xと関連つけられる。この曲線は、区間0.5 〜1で2
n-1 個のセグメントに分割され、各区間ij(寸法i=
2-n)は、Dの逆数の第1近似値I0 を与える逆数表T
1の2n-1 個のエントリXjの1つに対応する。図3
は、図2の区間ij=〔Xj ,Xj+i〕を拡大して示
す図である。尚、明瞭化のため、2つの線図で示した曲
線は意図的に変形してある。
/Xと関連つけられる。この曲線は、区間0.5 〜1で2
n-1 個のセグメントに分割され、各区間ij(寸法i=
2-n)は、Dの逆数の第1近似値I0 を与える逆数表T
1の2n-1 個のエントリXjの1つに対応する。図3
は、図2の区間ij=〔Xj ,Xj+i〕を拡大して示
す図である。尚、明瞭化のため、2つの線図で示した曲
線は意図的に変形してある。
【0026】定義 以下の記載では、次のように定義した様々な記号を用い
る。
る。
【0027】*Xj 表T1のエントリ値は、式Xj = 0.5+(j×2-n) (ただし、jは0から2n-1 −1の整数である)により
与えられる。Xjの値は、Dの次に低い値が選択され
る。ただし、Xj ≦D<X'j=Xj +1である。
与えられる。Xjの値は、Dの次に低い値が選択され
る。ただし、Xj ≦D<X'j=Xj +1である。
【0028】従って、Xj は、Dのn個の上位ビット
(MSBを含んでMSBからn個の上位ビット)に対応
する。実際には、10進小数点の後の位2〜n(正規化の
後の位1のビットは常に1に等しい)までの(n−1)
ビットだけが表T1をアドレス指定するのに使用され
る。以下にさらに明らかにされる理由のために、表T1
の出力値Ioは、n+mの精度で与えなければならず、
これに保護ビットの数gを加える。これら保護ビットg
は、中間の計算の過程で精度を維持するために用いられ
る。
(MSBを含んでMSBからn個の上位ビット)に対応
する。実際には、10進小数点の後の位2〜n(正規化の
後の位1のビットは常に1に等しい)までの(n−1)
ビットだけが表T1をアドレス指定するのに使用され
る。以下にさらに明らかにされる理由のために、表T1
の出力値Ioは、n+mの精度で与えなければならず、
これに保護ビットの数gを加える。これら保護ビットg
は、中間の計算の過程で精度を維持するために用いられ
る。
【0029】別段の記載がない限り、以後、I0 =yj
=1/Xj であるとする。
=1/Xj であるとする。
【0030】*d Ilを計算するための線形近似に用いられるシフトd
は、式d=D−Xj (ただし、0≦d<i)により与え
られる。
は、式d=D−Xj (ただし、0≦d<i)により与え
られる。
【0031】変数dは、数Dのn個の最初の上位ビット
に続くp−n個のビットにより2進数で表される。しか
し、I2の計算の最終精度がpより小さく場合には、d
の値はm+gに切り捨てることができる(これにより、
dとして、丸められた値d=D−Xj −εを与える)。
次に、I2の計算に組み込まれない残りの下位ビットの
値は無視する。しかし、これらのビットは、使用した表
の寸法を考慮してI2について得られた精度が不充分で
あれば、Iを計算する(例えば、ニュートンのアルゴリ
ズムにより)のに使用する。このような状況は、倍精度
浮動小数点形式で逆数を計算するとき現れる。
に続くp−n個のビットにより2進数で表される。しか
し、I2の計算の最終精度がpより小さく場合には、d
の値はm+gに切り捨てることができる(これにより、
dとして、丸められた値d=D−Xj −εを与える)。
次に、I2の計算に組み込まれない残りの下位ビットの
値は無視する。しかし、これらのビットは、使用した表
の寸法を考慮してI2について得られた精度が不充分で
あれば、Iを計算する(例えば、ニュートンのアルゴリ
ズムにより)のに使用する。このような状況は、倍精度
浮動小数点形式で逆数を計算するとき現れる。
【0032】*G0 yj の2つの連続した値、即ちyj =1/Xj とy'j=
1/{Xj +1}の間の偏差ΔI0 により、区間ij=
〔Xj ,Xj +i〕における逆数偏差勾配G0 =ΔI0
/iを計算することができる。この偏差勾配Goは、表
T1に使用されたものと同じエントリに基づき、精度n
+m+gで表T2により与えられる。
1/{Xj +1}の間の偏差ΔI0 により、区間ij=
〔Xj ,Xj +i〕における逆数偏差勾配G0 =ΔI0
/iを計算することができる。この偏差勾配Goは、表
T1に使用されたものと同じエントリに基づき、精度n
+m+gで表T2により与えられる。
【0033】*Cjl 近似値I2 を得るためI1 に施すべき相補訂正Cjlの値
は、問題の区間ijおよびdに応じて異なる。これを行
うためには、各区間ijを2m 個のセグメントに分割す
る。セグメント各々の寸法は2-n-mである。従って、区
間ijにおいて、Xjl=Xj +(l×2-n-m)(ただし
lは0〜2m −1の整数である)の各々の値について曲
線Cj =Dj(X) =Y(X)を描くことが可能である。
この曲線は、区間ij=〔Xj ,Xj +i〕での逆数曲
線(Y)Xと、弦Dj(X)(従って、直線Yj Y'j)
の間の偏差を表す。一度曲線Cj が得られると、dに関
連する訂正の値は、l×2-n-m≦d<(l+1)×2
-n-mの場合、Cjl=Cj (Xjl)により与えられる。
は、問題の区間ijおよびdに応じて異なる。これを行
うためには、各区間ijを2m 個のセグメントに分割す
る。セグメント各々の寸法は2-n-mである。従って、区
間ijにおいて、Xjl=Xj +(l×2-n-m)(ただし
lは0〜2m −1の整数である)の各々の値について曲
線Cj =Dj(X) =Y(X)を描くことが可能である。
この曲線は、区間ij=〔Xj ,Xj +i〕での逆数曲
線(Y)Xと、弦Dj(X)(従って、直線Yj Y'j)
の間の偏差を表す。一度曲線Cj が得られると、dに関
連する訂正の値は、l×2-n-m≦d<(l+1)×2
-n-mの場合、Cjl=Cj (Xjl)により与えられる。
【0034】変位dl=Xjl−Xj は、数Dのn個の上
位ビットに続くm個のビット〔ただしm<(p−n)〕
の内容により2進数で表される。
位ビットに続くm個のビット〔ただしm<(p−n)〕
の内容により2進数で表される。
【0035】図2は、0.5 〜1の間の様々な区間ij=
〔Xj ,Xj +i〕について一連の曲線Cj を示すもの
である。明らかに、Xjlの各値について、加えるべき訂
正値を即座に与える訂正表を提供することが理論的に考
えられる。しかし、このような表の物理的寸法(2
n+m-1 個のエントリ)は、寸法が2-n-mの区間で構成さ
れた逆数表に対して、僅かな寸法上の利点しかないこと
を意味する。
〔Xj ,Xj +i〕について一連の曲線Cj を示すもの
である。明らかに、Xjlの各値について、加えるべき訂
正値を即座に与える訂正表を提供することが理論的に考
えられる。しかし、このような表の物理的寸法(2
n+m-1 個のエントリ)は、寸法が2-n-mの区間で構成さ
れた逆数表に対して、僅かな寸法上の利点しかないこと
を意味する。
【0036】本発明の主な特徴の1つは、様々な曲線C
j (放物線状をなす)の明らかな類似性の利点を利用し
て、問題のセグメントijを示すスケールファクタHj
による単純な乗算によって基本曲線CBから全ての曲線
Cjを導き出すことである。表T3およびT4の容量と
同等の直接訂正表の寸法は、表T3の寸法の2n-1 倍と
あるはずである。図2において、基本曲線CB=C
jbは、例えば左から3番目のセグメント、即ち、jb=
2のときのiBから与えられる。曲線CBは表T3中に
記憶され、そのエントリ(数2m )は、Xjlのm個の下
位ビット(LSBを含んでLSBからm個の下位ビッ
ト)によりアドレス指定され、その出力CBl は、I2
について必要な精度で与えられる。スケールファクタH
j自体は別の表T4に記憶され、この表はXj 、即ち、
Dの最上位ビットに続くn−1個のビットからアドレス
指定することができる。
j (放物線状をなす)の明らかな類似性の利点を利用し
て、問題のセグメントijを示すスケールファクタHj
による単純な乗算によって基本曲線CBから全ての曲線
Cjを導き出すことである。表T3およびT4の容量と
同等の直接訂正表の寸法は、表T3の寸法の2n-1 倍と
あるはずである。図2において、基本曲線CB=C
jbは、例えば左から3番目のセグメント、即ち、jb=
2のときのiBから与えられる。曲線CBは表T3中に
記憶され、そのエントリ(数2m )は、Xjlのm個の下
位ビット(LSBを含んでLSBからm個の下位ビッ
ト)によりアドレス指定され、その出力CBl は、I2
について必要な精度で与えられる。スケールファクタH
j自体は別の表T4に記憶され、この表はXj 、即ち、
Dの最上位ビットに続くn−1個のビットからアドレス
指定することができる。
【0037】アルゴリズムIo→I1→I2の精度とH
jの計算: A)ニュートンの反復法 前述の定義を用いて、逆数Iは次のように表すことがで
きる。 I=1/D =1/(Xj +d) =(1/Xj )×{1/(1+d/Xj )} =yj ×1/(1+d・yj ) (1) (ただし、d・yj <i・yj <2-n×2≪1)
jの計算: A)ニュートンの反復法 前述の定義を用いて、逆数Iは次のように表すことがで
きる。 I=1/D =1/(Xj +d) =(1/Xj )×{1/(1+d/Xj )} =yj ×1/(1+d・yj ) (1) (ただし、d・yj <i・yj <2-n×2≪1)
【0038】限定された展開により、Iは式: I=yj{1−d・yj+d2・yj 2−d3・yj 3・・・} (2) I=yj{1−(D−Xj)・yj+d2・yj 2−d3・yj 3・・・} (3) I=yj(2−D・yj) +d2・yj 3・(1−d・yj+d2・yj 2 ・・・) (4) により表される。
【0039】式4が、IN0 =1/Xj として、ニュー
トンの方法を用いた結果生じる誤差を示すことに留意す
べきである。最大誤差ENは、式d2・yj 3により与え
られ、 0.5から1の区間でのその最大値はyj =2およ
びd=iにより与えられる。その結果、IN<8i2 、
従って、IN<2-(n-3)となる。
トンの方法を用いた結果生じる誤差を示すことに留意す
べきである。最大誤差ENは、式d2・yj 3により与え
られ、 0.5から1の区間でのその最大値はyj =2およ
びd=iにより与えられる。その結果、IN<8i2 、
従って、IN<2-(n-3)となる。
【0040】B.線形近似法(I1 の計算) I0 =yj =1/Xj からの線形近似によるI1 の計算
は、 I1=yj+{(y'j−yj)×(d/i)}=I0(G0×d) (5) のように表すことができる。
は、 I1=yj+{(y'j−yj)×(d/i)}=I0(G0×d) (5) のように表すことができる。
【0041】この式では、I0 およびG0 は表T1およ
びT2により与えられ、n+m+gビットに切り捨てら
れ、丸められる。さらに、d=D−Xj−εの丸めた値
は、Dを左側のnビット切り捨ててm+gビットに丸め
ることにより得られる。G0 の最上位ビットはゼロであ
り、これによって表T2をある程度簡略化し、寸法縮小
することが可能になることに留意すべきである。
びT2により与えられ、n+m+gビットに切り捨てら
れ、丸められる。さらに、d=D−Xj−εの丸めた値
は、Dを左側のnビット切り捨ててm+gビットに丸め
ることにより得られる。G0 の最上位ビットはゼロであ
り、これによって表T2をある程度簡略化し、寸法縮小
することが可能になることに留意すべきである。
【0042】また、y'jは、 y'j=1/(Xj+i) =(1/Xj)・[1/{1+(i/Xj)}] =yj・{1/(1+(i・yj)} (6) 従って、限定された展開、i・yj<2-(n-1)により y'j=yj・(1−i・yj+i2・yj 2−i3・yj 3 ・・・) (7) のように表すことができる。
【0043】次に、式(5)は、 I1=yj{1+(d/i)・(Xj・y'j−1) } (8) と表すことができ、従って、式(7)を用いて、 I1=yj{1+(d/i)・(−i・yj+i2・yj 2・・・)}(9) I1=yj{1−d・yj+d・i・yj 2−d・i2yj 3+・・・} (10) のように表すことができる。
【0044】線形近似方法の結果生じる誤差ELは、 EL=(1/D)=I1 (ただし、1/DおよびI1 は、それぞれ式(2)およ
び(10)によって与えられる)、従って、 EL=yj・(1−d・yj+d2・yj 2・・・) −(1−d・yj+d・i・yj 2・・・) EL=yj 3・{d・(d−i)}{1−d・yj+d2・yj 2・・・} (11) (ただし、d・yj<2-n×2≪1) により与えられる。
び(10)によって与えられる)、従って、 EL=yj・(1−d・yj+d2・yj 2・・・) −(1−d・yj+d・i・yj 2・・・) EL=yj 3・{d・(d−i)}{1−d・yj+d2・yj 2・・・} (11) (ただし、d・yj<2-n×2≪1) により与えられる。
【0045】dとの比較により、誤差ELはd=d−i
=i/2のとき最大である。従って、 EL<(i2/4)・yj 3<(8i2)/4=2-(2n-1) =ELMAX となる。
=i/2のとき最大である。従って、 EL<(i2/4)・yj 3<(8i2)/4=2-(2n-1) =ELMAX となる。
【0046】その結果、I0 の同じ精度について(Dの
n個の最上位ビットにアドレス指定される逆数表)、線
形近似は、2n−1個の有効ビットの精度を与え、これ
は、ニュートンの方法による最初の反復の精度より4倍
優れている。
n個の最上位ビットにアドレス指定される逆数表)、線
形近似は、2n−1個の有効ビットの精度を与え、これ
は、ニュートンの方法による最初の反復の精度より4倍
優れている。
【0047】不確定性(区間ijにおけるELの最大
値)は、X=0.5 (y=2)で最大で、X=1(Y=
1)の近傍で最小である。ELについて、図2は、Xの
関数として誤差変化曲線Cj (I0 =yjに基づく)を
示し、誤差ELは実際常に負である。
値)は、X=0.5 (y=2)で最大で、X=1(Y=
1)の近傍で最小である。ELについて、図2は、Xの
関数として誤差変化曲線Cj (I0 =yjに基づく)を
示し、誤差ELは実際常に負である。
【0048】C.相補訂正のための近似(I2 の計算)
式(11)は、 EL=yj 3・{d・(d−i)}・{1+f(d・yj)} (12) (ただし、f(d・yj)=−d・yj+d2・yj 2・・・・ (13) のように表される。
式(11)は、 EL=yj 3・{d・(d−i)}・{1+f(d・yj)} (12) (ただし、f(d・yj)=−d・yj+d2・yj 2・・・・ (13) のように表される。
【0049】f(d・yj)≪1のとき、区間ijにおい
てdの関数としてELを与える曲線Cj ≒yj 3・d・
(d−i)の比例係数が存在し、上述した訂正方法は正し
いことが証明される。また、表T3中のdの関数(さら
に具体的には、各値d1 の関数として)として基本訂正
値CBl 、ならびに表T4のXj の関数としてスケール
係数Hj を保持することが可能である。
てdの関数としてELを与える曲線Cj ≒yj 3・d・
(d−i)の比例係数が存在し、上述した訂正方法は正し
いことが証明される。また、表T3中のdの関数(さら
に具体的には、各値d1 の関数として)として基本訂正
値CBl 、ならびに表T4のXj の関数としてスケール
係数Hj を保持することが可能である。
【0050】基本曲線CBを構成するために用いられる
基準区間において、iB=Xjb〔ただし、Xjb+iは2
m 個の小区間に分割される〕、d1 を表すdの値のm個
の上位ビット(即ち、Dのn個の上位ビットに続くm個
のビット)表T3をアドレス指定するのにように機能す
る。
基準区間において、iB=Xjb〔ただし、Xjb+iは2
m 個の小区間に分割される〕、d1 を表すdの値のm個
の上位ビット(即ち、Dのn個の上位ビットに続くm個
のビット)表T3をアドレス指定するのにように機能す
る。
【0051】最終的な誤差は、区間 0.5から1に対する
近似値f(d・yj)=cteによる誤差である。
近似値f(d・yj)=cteによる誤差である。
【0052】 Hj =Cj/Cjb =(yj 3/yjb 3)×{d・(d−i)} /[{d・(d−i)}×{1+fj(d)}/{1+fjb(d)} (14) (ただし、d=i) と仮定する。
【0053】Hj がdとは無関係で、yj だけに応じて
変化するものとすると、fj(D)はfjb(d)にほぼ等し
くなければならない。このとき、式(13)は、 1+f(d)=1−d・y+d2・y2・・・ =1/(1+d・y) (15) のように表されるので、 Hj = (yj 3/yjb 3)×{(1+d・yjb)/(1+d・yj )} Hj =K×(yj/yjb)3 (16) 従って、 K=(1+d・yj )/(1+d・yjb)) ≒(1+d・yjb)×(1−yj ) K≒1−{d・(yj−yjb)} (17) (ただし、dの上限はiに等しく、(yj−yjb)の上
限は1に等しく、訂正の計算用の単位に対してd・(yj
−yjb)の上限=i=2-nである。これはELMAX=
2-(2n-1) との組合せで、比例係数Hj を適用すること
により得られるI2 について3n−1ビットの精度を与
える。
変化するものとすると、fj(D)はfjb(d)にほぼ等し
くなければならない。このとき、式(13)は、 1+f(d)=1−d・y+d2・y2・・・ =1/(1+d・y) (15) のように表されるので、 Hj = (yj 3/yjb 3)×{(1+d・yjb)/(1+d・yj )} Hj =K×(yj/yjb)3 (16) 従って、 K=(1+d・yj )/(1+d・yjb)) ≒(1+d・yjb)×(1−yj ) K≒1−{d・(yj−yjb)} (17) (ただし、dの上限はiに等しく、(yj−yjb)の上
限は1に等しく、訂正の計算用の単位に対してd・(yj
−yjb)の上限=i=2-nである。これはELMAX=
2-(2n-1) との組合せで、比例係数Hj を適用すること
により得られるI2 について3n−1ビットの精度を与
える。
【0054】等式(16)から、Hj=(yj/yjb)3=(xjb
/xj)3ということができる。
/xj)3ということができる。
【0055】さらに、C(Xjl)に等しい近似一定値の
幅i×2-mのdの周囲のサブセグメント全体について、
使用による別の誤差の原因がある。この結果生じた最大
誤差は、C0 0.5;(0.5 +2-m-n)の第1サブセグメ
ント(j=0およびl=0)に対応し、C0( 0.5+2
-m-n)=8×2-m-n×2-n=2-(2n+m-3) に等しい。
幅i×2-mのdの周囲のサブセグメント全体について、
使用による別の誤差の原因がある。この結果生じた最大
誤差は、C0 0.5;(0.5 +2-m-n)の第1サブセグメ
ント(j=0およびl=0)に対応し、C0( 0.5+2
-m-n)=8×2-m-n×2-n=2-(2n+m-3) に等しい。
【0056】従って、表3の精度(2n+m−3)が、
比例係数を用いて得られる精度(3n−1)と少なくと
もほぼ同じ大きさであることが重要である。これはm≧
n+2について確認される。
比例係数を用いて得られる精度(3n−1)と少なくと
もほぼ同じ大きさであることが重要である。これはm≧
n+2について確認される。
【0057】このように、相補訂正により、mをn+2
以上に選択すると、n個のビットの追加精度を得ること
が可能になる。
以上に選択すると、n個のビットの追加精度を得ること
が可能になる。
【0058】例として、本発明の計算方法により、ニュ
ートンの反復法を使用することなく、n=8およびm=
10の値で単精度浮動小数点形式の24ビットの仮数の逆数
を得ることが可能となる。この場合、Ioは、n=8個
の有効ビットで表T1から得られ、I1は2n−1=15
個の有効ビットで得られ、I2は正規化に先立つ3n−
1=23個の有効ビットで得られ、従って、正規化後の24
番目のビットに1つの誤差が考えられる。
ートンの反復法を使用することなく、n=8およびm=
10の値で単精度浮動小数点形式の24ビットの仮数の逆数
を得ることが可能となる。この場合、Ioは、n=8個
の有効ビットで表T1から得られ、I1は2n−1=15
個の有効ビットで得られ、I2は正規化に先立つ3n−
1=23個の有効ビットで得られ、従って、正規化後の24
番目のビットに1つの誤差が考えられる。
【0059】以上までの説明において、I0 =1/
Xj 、即ち、問題の区間ijの下限Xj に基づき、この
場合負の一定符号を持つ誤差を常に参照にしてきた。符
号付誤差と共に作動することにより、絶対値の半分最大
誤差を減らすことができる。従って、線形近似により、
I1について2n個の有効ビットを得ることが可能にな
る。1つの符号ビットを適応させるため、表T2は若干
修正される。しかし、T2の要素G0 の最上位ビットは
構成によりゼロであることを考慮して、上記符号ビット
のためのスペースはT2に容易に見出される。
Xj 、即ち、問題の区間ijの下限Xj に基づき、この
場合負の一定符号を持つ誤差を常に参照にしてきた。符
号付誤差と共に作動することにより、絶対値の半分最大
誤差を減らすことができる。従って、線形近似により、
I1について2n個の有効ビットを得ることが可能にな
る。1つの符号ビットを適応させるため、表T2は若干
修正される。しかし、T2の要素G0 の最上位ビットは
構成によりゼロであることを考慮して、上記符号ビット
のためのスペースはT2に容易に見出される。
【0060】寸法形状の観点から、弦Yj Y'jに対応す
る図3の直線Dj(X)は、|EMAXj|/2に等しい
値だけ図面の鉛直方向に下方にDSj(X)中へと並進
移動させる。この場合、線形近似の出発値はIo=IS
o(Xj)=(1/Xj)−|EMAXj|/2となる。
る図3の直線Dj(X)は、|EMAXj|/2に等しい
値だけ図面の鉛直方向に下方にDSj(X)中へと並進
移動させる。この場合、線形近似の出発値はIo=IS
o(Xj)=(1/Xj)−|EMAXj|/2となる。
【0061】同様に、様々な曲線Cj を鉛直方向の並進
運動により変形させ、図2に示した符号付曲線CSj を
与える。このような構成では、曲線CSj の中央軸は軸
OXと一致する。この修正により、相補訂正後の1つ以
上の追加有効ビットをさらに得ることができる。再び与
えられた値を用いて、得られた結果は25個の有効ビット
であり、これらは単精度浮動小数点形式計算に使用する
ことができる。値n=9およびm=11で、符号付訂正を
用いて、I1 が2n=18個の有効ビットで、またI2 が
3n+1=28個の有効ビットで得られる。次にI2 の値
をニュートンの方法による反復の出発値INOとして使
用する場合には、第1反復において、56個の有効ビット
を持つ結果IN1が得られ、これは倍精度浮動小数点形
式(56ビット仮数)中の数の逆数を計算するのに充分で
ある。
運動により変形させ、図2に示した符号付曲線CSj を
与える。このような構成では、曲線CSj の中央軸は軸
OXと一致する。この修正により、相補訂正後の1つ以
上の追加有効ビットをさらに得ることができる。再び与
えられた値を用いて、得られた結果は25個の有効ビット
であり、これらは単精度浮動小数点形式計算に使用する
ことができる。値n=9およびm=11で、符号付訂正を
用いて、I1 が2n=18個の有効ビットで、またI2 が
3n+1=28個の有効ビットで得られる。次にI2 の値
をニュートンの方法による反復の出発値INOとして使
用する場合には、第1反復において、56個の有効ビット
を持つ結果IN1が得られ、これは倍精度浮動小数点形
式(56ビット仮数)中の数の逆数を計算するのに充分で
ある。
【0062】本発明に従う逆数計算装置の実施例 図4は、前述の方法を実施するための本発明に従う装置
の実施例を示す。このような装置は、通常の2進デジタ
ルコンピュータの処理ユニットあるいはプロセッサに組
み込まれている。図4に示されてはいないが、この装置
には、浮動小数点形式の数を処理する回路、ならびに固
定小数点形式の数を処理する回路の両方に使用すること
ができる通常の正規化回路が付属している。特に、基数
2の正規化回路は、数Dの第1最上位ビットとして逆数
(または仮数)が求められる数の第1ビット(その値は
1である)を位置付けるのに必要なシフトを実施し、指
数部の対応する修正を行う。逆数計算の最終的結果は、
後の使用のために適したフォーマット中で再び正規化し
てもよい。
の実施例を示す。このような装置は、通常の2進デジタ
ルコンピュータの処理ユニットあるいはプロセッサに組
み込まれている。図4に示されてはいないが、この装置
には、浮動小数点形式の数を処理する回路、ならびに固
定小数点形式の数を処理する回路の両方に使用すること
ができる通常の正規化回路が付属している。特に、基数
2の正規化回路は、数Dの第1最上位ビットとして逆数
(または仮数)が求められる数の第1ビット(その値は
1である)を位置付けるのに必要なシフトを実施し、指
数部の対応する修正を行う。逆数計算の最終的結果は、
後の使用のために適したフォーマット中で再び正規化し
てもよい。
【0063】従って、この装置は、入力レジスタRD
(12)を備え、入力レジスタは3つのフィールド:Dの
n個の上位ビットを持つフィールドXj、次のm個のビ
ットを持つフィールドDL、ならびにg個の保護ビット
を持つフィールドQに分割される。Bのフォーマットが
I2 のフォーマットより大きい場合には、Dの最下位ビ
ットはI2のために使用しないが、その代わり、最終回
のニュートン反復に使用する。
(12)を備え、入力レジスタは3つのフィールド:Dの
n個の上位ビットを持つフィールドXj、次のm個のビ
ットを持つフィールドDL、ならびにg個の保護ビット
を持つフィールドQに分割される。Bのフォーマットが
I2 のフォーマットより大きい場合には、Dの最下位ビ
ットはI2のために使用しないが、その代わり、最終回
のニュートン反復に使用する。
【0064】本発明に従う装置は、VLSIにより容易
に集積可能に設計される。特に、これはプログラム可能
な読取り専用メモリ(PROMs)の形態で作成される
四つの表T1〜T4を含む。特に、表T1(14)、T2
(16)およびT4(20)は、Dのn個の上位ビットを基
にしてアドレス指定される。実際には、これら表のエン
トリ数は、Xj の位2〜nの位置のビットだけを考慮に
入れて2n-1 に減らすことができる。
に集積可能に設計される。特に、これはプログラム可能
な読取り専用メモリ(PROMs)の形態で作成される
四つの表T1〜T4を含む。特に、表T1(14)、T2
(16)およびT4(20)は、Dのn個の上位ビットを基
にしてアドレス指定される。実際には、これら表のエン
トリ数は、Xj の位2〜nの位置のビットだけを考慮に
入れて2n-1 に減らすことができる。
【0065】その出力で逆数表T1は値Ioを提供し、
その寸法は検索される最終精度に必要な寸法より大き
い。従って、表T1の寸法は((n+m+g)×2n-1)で
ある。
その寸法は検索される最終精度に必要な寸法より大き
い。従って、表T1の寸法は((n+m+g)×2n-1)で
ある。
【0066】偏差表T2は出力値Goを提供し、これは
符号付でも符号付でなくてもよく、線形近似を計算する
のに用いる。Goの寸法は、検索される精度に必要な寸
法より大きいので、表T2は理論寸法((n+m+g)×
2n-1)である。実際には、T2に入力された逆数偏差の
値は、Goのn個の上位ビットがゼロである、もしくは
符号を表すような値である。すなわち、Goが符号であ
るならば、符号に従って0または1となる符号を表す1
ビットの除く全ビットがゼロである。従って、構成によ
り、T2の寸法を縮小し、Dのフォーマットの特徴に合
わせて、Goの再フォーマット形成および再フレーム付
けが可能なT2の出力回路を提供することができる。
符号付でも符号付でなくてもよく、線形近似を計算する
のに用いる。Goの寸法は、検索される精度に必要な寸
法より大きいので、表T2は理論寸法((n+m+g)×
2n-1)である。実際には、T2に入力された逆数偏差の
値は、Goのn個の上位ビットがゼロである、もしくは
符号を表すような値である。すなわち、Goが符号であ
るならば、符号に従って0または1となる符号を表す1
ビットの除く全ビットがゼロである。従って、構成によ
り、T2の寸法を縮小し、Dのフォーマットの特徴に合
わせて、Goの再フォーマット形成および再フレーム付
けが可能なT2の出力回路を提供することができる。
【0067】その出力で、スケール表T4は寸法がほぼ
n個のビットのスケール係数Hjの値を提供し、上の記
載に従う最終精度を保証する(式(17)から引き出され
た結論を参照)。表T4は寸法(n×2n-1)である。
n個のビットのスケール係数Hjの値を提供し、上の記
載に従う最終精度を保証する(式(17)から引き出され
た結論を参照)。表T4は寸法(n×2n-1)である。
【0068】訂正表T3(18)はフィールドDLのm個
のビットに基づいてアドレス指定され、従って2m 個の
エントリを備える。その出力で、表T3は、mがn+2
以上に選択されたとき、寸法が約nビットの基本訂正係
数CBlの値を提供する。
のビットに基づいてアドレス指定され、従って2m 個の
エントリを備える。その出力で、表T3は、mがn+2
以上に選択されたとき、寸法が約nビットの基本訂正係
数CBlの値を提供する。
【0069】表の正確な寸法は、上に与えた基本値に基
づき、それぞれの応用例に応じて定義されるが、これら
の値は、保護ビットの数を減らすことに価値があると証
明される限り、シミュレーションによる最適化が可能で
あることに留意すべきである。いくつかの場合には、R
DのフィールドQの保護ビットの数gは、出力Io、S
1 およびCjlについて選択されるものとは異なることも
ある(ここでは、保護ビットのビット数は便宜性からg
に等しく選択した)。
づき、それぞれの応用例に応じて定義されるが、これら
の値は、保護ビットの数を減らすことに価値があると証
明される限り、シミュレーションによる最適化が可能で
あることに留意すべきである。いくつかの場合には、R
DのフィールドQの保護ビットの数gは、出力Io、S
1 およびCjlについて選択されるものとは異なることも
ある(ここでは、保護ビットのビット数は便宜性からg
に等しく選択した)。
【0070】さらに、本発明に従う装置は、2つの乗算
回路M1(22)およびM2(24)を備え、3つの入力I0 、
S1 およびCjlと1つの出力を備える加算手段が、図4
に示したように配置される2つの加算回路A1(26)およ
びA2(28)により構成される。しかし、本発明の範囲を
越えることなく、2つの加算器A1およびA2の代わり
に、3つの入力を備える単一加算回路(図示せず)を使
用してもよい。
回路M1(22)およびM2(24)を備え、3つの入力I0 、
S1 およびCjlと1つの出力を備える加算手段が、図4
に示したように配置される2つの加算回路A1(26)およ
びA2(28)により構成される。しかし、本発明の範囲を
越えることなく、2つの加算器A1およびA2の代わり
に、3つの入力を備える単一加算回路(図示せず)を使
用してもよい。
【0071】乗算器M1は線形近似による値I1 の計算
に導入すべき訂正を計算するのに使用する。M1の2つ
のオペランドは、T2の出力値G0 と、最寄りのεへの
すなわちε以下の誤差をもった移動d=D−Xj を表す
Dの(m+g)個の最下位ビットである。再び、G0 の
(m+g)個の最下位ビットだけを用いて、乗算器の寸
法を((m+g)×(m+g))とすることもできる。この
乗算器は、乗算演算器の仮数のものであれば有利であ
る。乗算器M1の出力値S1は適切にフレーム付けさ
れ、n+m+gビットに切り捨てられた後、加算器A1
の2つの入力の1つに与えられる。加算器A1の他方の
入力は表T1により提供された値I0 を受ける。G
0 (およびS1 )が符号付の値で表される場合、加算器
A1は加算器/減算器タイプを選択する。
に導入すべき訂正を計算するのに使用する。M1の2つ
のオペランドは、T2の出力値G0 と、最寄りのεへの
すなわちε以下の誤差をもった移動d=D−Xj を表す
Dの(m+g)個の最下位ビットである。再び、G0 の
(m+g)個の最下位ビットだけを用いて、乗算器の寸
法を((m+g)×(m+g))とすることもできる。この
乗算器は、乗算演算器の仮数のものであれば有利であ
る。乗算器M1の出力値S1は適切にフレーム付けさ
れ、n+m+gビットに切り捨てられた後、加算器A1
の2つの入力の1つに与えられる。加算器A1の他方の
入力は表T1により提供された値I0 を受ける。G
0 (およびS1 )が符号付の値で表される場合、加算器
A1は加算器/減算器タイプを選択する。
【0072】乗算器M2は訂正係数Cjlを計算するのに
使用される。上の説明に従い、この乗算器の寸法は小さ
い(n×n)。M2の2つのオペランドは、表4の出力
値Hj 、ならびに表T3の出力値CBlにより構成され
る。表T3に記憶されている値が符号付でない場合に
は、同じことが乗算器M2の出力値Cjlにも言える。こ
の出力値Cjlは、加算器A2に適切にロードできるよう
に、切り捨てられ、n+m+gにフレーム付けされる。
その結果、加算器A2のオペランドはCjlおよびI1 で
あり、後者は乗算器M1から送られる。符号付された、
あるいは場合によって符号付されていない加算器A2
は、最大3n−1有効ビット(あるいは、符号付された
近似値を計算する場合には最大3n+1有効ビット)を
持つn+m+gビットのフォーマット中で、値I2 をそ
の出力に送る。
使用される。上の説明に従い、この乗算器の寸法は小さ
い(n×n)。M2の2つのオペランドは、表4の出力
値Hj 、ならびに表T3の出力値CBlにより構成され
る。表T3に記憶されている値が符号付でない場合に
は、同じことが乗算器M2の出力値Cjlにも言える。こ
の出力値Cjlは、加算器A2に適切にロードできるよう
に、切り捨てられ、n+m+gにフレーム付けされる。
その結果、加算器A2のオペランドはCjlおよびI1 で
あり、後者は乗算器M1から送られる。符号付された、
あるいは場合によって符号付されていない加算器A2
は、最大3n−1有効ビット(あるいは、符号付された
近似値を計算する場合には最大3n+1有効ビット)を
持つn+m+gビットのフォーマット中で、値I2 をそ
の出力に送る。
【0073】最後に、装置は、I2に基づき少なくとも
1つのニュトン反復を実施するためのハードウエア手段
を含む。この反復は、特定回路の数を減らすためのプロ
グラミングにより行うことができる。この場合、コンピ
ュータの特殊性に応じて異なる基数(例えば、基数16)
への正規化操作がA2の出力でI2の値について行われ
る。他方で、この操作は、ニュートン反復が特殊なマイ
クロプログラム回路により為された場合(図1に示す場
合のように)には必要ではない。
1つのニュトン反復を実施するためのハードウエア手段
を含む。この反復は、特定回路の数を減らすためのプロ
グラミングにより行うことができる。この場合、コンピ
ュータの特殊性に応じて異なる基数(例えば、基数16)
への正規化操作がA2の出力でI2の値について行われ
る。他方で、この操作は、ニュートン反復が特殊なマイ
クロプログラム回路により為された場合(図1に示す場
合のように)には必要ではない。
【0074】以上の説明から、単精度浮動小数点形式の
仮数の逆数は、ニュートンの方法(これは乗算器の大寸
法の補助セットを必要とする)を使用することなく、小
寸法の追加表(T3およびT4)を加えるだけで計算す
ることができる。さらに、主要乗算器M1が、ウォレス
(Wallace) の木として知られる構造に配置された加算器
を備える場合には、加算器A1およびA2はこの構造に
容易に集積することができる。最後に、2つの乗算器M
1およびM2は独立して、しかも同時に作動することに
留意されたい。これは、分割操作が行われる速度のため
に科学用電子計算機では重要な事項である。
仮数の逆数は、ニュートンの方法(これは乗算器の大寸
法の補助セットを必要とする)を使用することなく、小
寸法の追加表(T3およびT4)を加えるだけで計算す
ることができる。さらに、主要乗算器M1が、ウォレス
(Wallace) の木として知られる構造に配置された加算器
を備える場合には、加算器A1およびA2はこの構造に
容易に集積することができる。最後に、2つの乗算器M
1およびM2は独立して、しかも同時に作動することに
留意されたい。これは、分割操作が行われる速度のため
に科学用電子計算機では重要な事項である。
【図1】本発明の方法の機能を概略的に説明するための
図である。
図である。
【図2】区間〔0.5;1〕の曲線Y(X)=1/X、Cj
およびCSjを概略的に示す図である。
およびCSjを概略的に示す図である。
【図3】区間ij=〔Xj,((Xj)+i)〕での図1
の曲線Y(X)およびCjを拡大して概略的に示す図で
ある。
の曲線Y(X)およびCjを拡大して概略的に示す図で
ある。
【図4】デジタルコンピュータで本発明の方法を実施す
るための装置を概略的に示す図である。
るための装置を概略的に示す図である。
12 入力レジスタ 14 逆数表T1 16 偏差表T2 18 訂正表T3 20 スケール表T4 22 乗算回路M1 24 乗算回路M2 26 加算回路A1 28 加算回路A2
Claims (15)
- 【請求項1】 a)与えられた数Dを2進数に変換し且つ正規化し、 b)入力値Xj =1/2+(j×2-n)(ただし、jは
0から2n-1 −1までの整数)に対応する数Dのn個の
上位ビットに基づいて、数Dの逆数の第1の近似値Io
を逆数表T1中で検索し、 c)値Dをその区間内に含む区間ij=〔Xj ,Xj+
i〕(但しi=2-n)での逆数偏差勾配GO=ΔIO/i
を偏差表T2で検索し、 d)線形近似により、アルゴリズムI1 =I0 +(d×
G0 )(但し、d=D−Xj で、G0 は代数値として入
力される)を用いて第2の値I1 を決定し、 e)基本区間iB =〔XjB,XjB+i〕での偏差E=I
−I1 を表す、符号付あるいは符号付でない、予め設定
した基本訂正値CBl をdに基づいて訂正表T3で検索
し、 f)Xj に基づいてスケールファクタHj をスケール表
T4で検索し、 g)訂正値Cjl=CBl ×Hj を決定し、 h)第3の近似値I2 =I1 +Cjlを決定する各操作を
含むことを特徴とする数Dの逆数Iを計算する方法。 - 【請求項2】k番目の反復が、アルゴリズム: INk =(INk-1 −1)×{2−(D×INk-1 )} (ただし、IN0 =I2 )により与えられるニュートン
の反復法を用いる演算を含むことを特徴とする請求項1
記載の方法。 - 【請求項3】逆数偏差勾配Goが負で、式: G0 ={I0 (Xj +i)−I0 (Xj ) }/i により与えられることを特徴とする請求項1および2の
いずれか1項に記載の製造方法。 - 【請求項4】I0 が、式:I0 =yj =1/Xj により
与えられることを特徴とする請求項1〜3のいずれか1
項に記載の方法。 - 【請求項5】I0 が、式:IS0 (Xj )=(1/
Xj )−(EMAXj /2) (ただし、EMAXj は、曲線Y(X)=1/Xと、区
間ij=〔Xj ,Xj +1〕での曲線Y(X)の弦Dj
(X)との間の最大偏差の絶対値を表す)により与えら
れることを特徴とする請求項1〜3のいずれか1項に記
載の方法。 - 【請求項6】上記訂正表T3のエントリが、数Dのn個
の上位ビットに続くm個のビットに基づいて行われ、
(l×2-m-n)≦d<(l+1)×2-m-n(ただし、l
は0〜2m −1の整数である)の場合、CBl =I{X
jb+(l×2-m-n)}−Il {Xjb+(l×2-m-n)}
であることを特徴とする請求項1〜5のいずれか1項に
記載の方法。 - 【請求項7】Hj が、式:Hj =(Xjb/Xj )3により
与えられることを特徴とする請求項1〜6のいずれか1
項に記載の方法。 - 【請求項8】nおよびmの値が、近似値I2 におけるN
個の有効ビット(例えば、N=32)を有する数の逆数を
計算するために選択されることを特徴とする請求項1〜
7のいずれか1項に記載の方法。 - 【請求項9】nおよびmの値が、単一のニュートン法で
の反復IN1 でのN’個の有効ビット(例えば、N=6
4)を有するで数の逆数を計算するために選択されるこ
とを特徴とする請求項2〜7のいずれか1項に記載の方
法。 - 【請求項10】符号付き浮動小数点形式の数の仮数の逆数
を計算するために使用されることを特徴とする請求項1
〜9のいずれか1項に記載の方法。 - 【請求項11】請求項1〜10のいずれか1項に記載の方法
を実施するためのデジタルコンピュータであって、その
プロセッサの少なくとも1つに、 数Dの2進数への変換し且つ正規化するための手段と、 数Dのn個の上位ビットに応じてアドレス指定され、出
力I0 を与える逆数表T1と、 数Dのn個の上位ビットに応じてアドレス指定され、出
力G0 を与える偏差勾配表T2と、 乗数入力に数Dのn個の上位ビットに続く少なくともm
個のビットを受け、被乗数入力にG0 を受けて、出力S
1 を与える第1乗算回路M1と、 数Dのn個の上位ビットに続くmビットに応じてアドレ
ス指定され、出力CBl を与える訂正表T3と、 数Dのn個の上位ビットに応じてアドレス指定され、出
力Hj を与えるスケール表T4と、 入力にCBl とHj を受け、出力Cjlを与える第2乗算
回路M2と、 I0 、S1 およびCjlを受ける3つの入力を備え、出力
I2 を与える加算手段(A1、A2)とを含むことを特
徴とするデジタルコンピュータ。 - 【請求項12】値I2 に基づいて、ニュートン法によりプ
ログラムされた反復処理を実施するためのハードウエア
およびソフトウエアを含むことを特徴とする請求項11記
載のコンピュータ。 - 【請求項13】上記表T2、乗算器M1および加算手段A
1、A2が符号付オペランドで動作することを特徴とす
る請求項1〜12のいずれか1項に記載のコンピュータ。 - 【請求項14】寸法I0 、G0 、S1 、I1 およびI
2 が、n+m+g(ただしg≧0)に等しいことを特徴
とする請求項11〜13のいずれか1項に記載のコンピュー
タ。 - 【請求項15】上記表T3が、2m (ただし、m≧n+
2)個のエントリを含むことを特徴とする請求項11〜13
のいずれか1項に記載のコンピュータ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR9003605A FR2660086B1 (fr) | 1990-03-21 | 1990-03-21 | Procede pour calculer l'inverse d'un nombre et calculateur pour la mise en óoeuvre dudit procede. |
| FR9003605 | 1990-03-21 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0594280A true JPH0594280A (ja) | 1993-04-16 |
| JP3195609B2 JP3195609B2 (ja) | 2001-08-06 |
Family
ID=9394952
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP08316391A Expired - Fee Related JP3195609B2 (ja) | 1990-03-21 | 1991-03-22 | 逆数計算装置及び逆数計算装置を備えたコンピュータ |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP0448448B1 (ja) |
| JP (1) | JP3195609B2 (ja) |
| CA (1) | CA2038463C (ja) |
| DE (1) | DE69128656T2 (ja) |
| FR (1) | FR2660086B1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11669304B2 (en) | 2021-02-08 | 2023-06-06 | Kioxia Corporation | Arithmetic device and arithmetic circuit for performing multiplication and division |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS60142738A (ja) * | 1983-12-30 | 1985-07-27 | Hitachi Ltd | 内挿近似を使用する除算装置 |
| JPS60181924A (ja) * | 1984-02-10 | 1985-09-17 | プライム・コンピユータ・インコーポレイテツド | 10進数字処理方法および装置 |
| JPS63163630A (ja) * | 1986-12-26 | 1988-07-07 | Hitachi Ltd | 逆数演算方式 |
| JPH02156328A (ja) * | 1988-12-08 | 1990-06-15 | Toshiba Corp | 逆数回路 |
| JPH03156531A (ja) * | 1989-08-16 | 1991-07-04 | Matsushita Electric Ind Co Ltd | 除算装置 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4482975A (en) * | 1982-03-29 | 1984-11-13 | Motorola, Inc. | Function generator |
-
1990
- 1990-03-21 FR FR9003605A patent/FR2660086B1/fr not_active Expired - Lifetime
-
1991
- 1991-03-14 EP EP19910400700 patent/EP0448448B1/fr not_active Expired - Lifetime
- 1991-03-14 DE DE1991628656 patent/DE69128656T2/de not_active Expired - Fee Related
- 1991-03-18 CA CA 2038463 patent/CA2038463C/fr not_active Expired - Fee Related
- 1991-03-22 JP JP08316391A patent/JP3195609B2/ja not_active Expired - Fee Related
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS60142738A (ja) * | 1983-12-30 | 1985-07-27 | Hitachi Ltd | 内挿近似を使用する除算装置 |
| JPS60181924A (ja) * | 1984-02-10 | 1985-09-17 | プライム・コンピユータ・インコーポレイテツド | 10進数字処理方法および装置 |
| JPS63163630A (ja) * | 1986-12-26 | 1988-07-07 | Hitachi Ltd | 逆数演算方式 |
| JPH02156328A (ja) * | 1988-12-08 | 1990-06-15 | Toshiba Corp | 逆数回路 |
| JPH03156531A (ja) * | 1989-08-16 | 1991-07-04 | Matsushita Electric Ind Co Ltd | 除算装置 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11669304B2 (en) | 2021-02-08 | 2023-06-06 | Kioxia Corporation | Arithmetic device and arithmetic circuit for performing multiplication and division |
Also Published As
| Publication number | Publication date |
|---|---|
| DE69128656D1 (de) | 1998-02-19 |
| EP0448448B1 (fr) | 1998-01-14 |
| DE69128656T2 (de) | 1998-05-14 |
| JP3195609B2 (ja) | 2001-08-06 |
| FR2660086B1 (fr) | 1992-06-05 |
| EP0448448A1 (fr) | 1991-09-25 |
| FR2660086A1 (fr) | 1991-09-27 |
| CA2038463C (fr) | 1995-01-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0149248B1 (en) | Method and apparatus for division using interpolation approximation | |
| US6240433B1 (en) | High accuracy estimates of elementary functions | |
| JPH08185309A (ja) | 4倍精度演算の実行方法 | |
| GB2278940A (en) | Floating point arithmetic unit | |
| US11074041B2 (en) | Method and system for elastic precision enhancement using dynamic shifting in neural networks | |
| WO2018138469A1 (en) | An apparatus and method for processing input operand values | |
| US5274580A (en) | Method for calculating the inverse of a number, and computer for performing the method | |
| Murillo et al. | PLAUs: Posit logarithmic approximate units to implement low-cost operations with real numbers | |
| JP2504102B2 (ja) | 逆三角関数演算装置 | |
| Singh et al. | Design and synthesis of goldschmidt algorithm based floating point divider on FPGA | |
| JP2822399B2 (ja) | 対数関数演算装置 | |
| JP2508784B2 (ja) | 指数関数演算装置 | |
| Muller et al. | Semi-logarithmic number systems | |
| Yu et al. | Efficient CORDIC designs for multi-mode OFDM FFT | |
| JPH0594280A (ja) | 逆数の計算方法と、該方法を実施するためのコンピユータ | |
| US5602768A (en) | Method and apparatus for reducing the processing time required to solve square root problems | |
| US6366939B1 (en) | Apparatus for computing exponential and trigonometric functions | |
| Mishra et al. | Design and implementation of a low power area efficient Bfloat16 based CORDIC processor | |
| CN118302744A (zh) | 用于机器学习的浮点对数系统缩放系统 | |
| Gustafsson et al. | Arithmetic | |
| US7266578B2 (en) | Method and hardware for computing reciprocal square root and program for the same | |
| Vázquez et al. | Implementation of the exponential function in a floating-point unit | |
| Özkılbaç et al. | Design and Accuracy Analysis of the Posit Number Representation–Decimal Conversion Algorithm | |
| Aoki et al. | High-radix CORDIC algorithms for VLSI signal processing | |
| Pazhani et al. | High-speed and area-efficient modified binary divider |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |