JPH04314126A - 逆数発生装置 - Google Patents

逆数発生装置

Info

Publication number
JPH04314126A
JPH04314126A JP3079415A JP7941591A JPH04314126A JP H04314126 A JPH04314126 A JP H04314126A JP 3079415 A JP3079415 A JP 3079415A JP 7941591 A JP7941591 A JP 7941591A JP H04314126 A JPH04314126 A JP H04314126A
Authority
JP
Japan
Prior art keywords
bit
bits
data
output
multiplier
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.)
Pending
Application number
JP3079415A
Other languages
English (en)
Inventor
Shingo Kojima
小嶋 伸吾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP3079415A priority Critical patent/JPH04314126A/ja
Publication of JPH04314126A publication Critical patent/JPH04314126A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報処理装置において
浮動小数点除算を行なう数値演算プロセッサの逆数発生
装置に関する。
【0002】
【従来の技術】従来の高速除算方式の代表的なアルゴリ
ズムとしてニュートン法による逆数近似がある。これは
A/Bを計算する場合に、次のニュートンの逐次近似式
を使う。
【0003】
【0004】この式を使って1/Bの近似値を必要な精
度まで求め、その値にAを乗じで除算結果とするもので
ある。まず、このニュートンの逐次近似による逆数発生
アルゴリズムを説明する。
【0005】まず、1/Bの値を求めるということは、
f(X)=(1/X)−Bの方程式においてf(X)=
0となる解を求めることである。これをニュートンの逐
次近似式(1)に当てはめると、次の(2)式になる。
【0006】
【0007】適当な方法でxN の初期値を求めた後、
(2)式を繰り返し使って演算を進めれば2乗近似によ
りxN の精度は倍々に増えるため、必要な精度の1/
Bの近似値を求めることができる。ニュートン法および
2乗近似については、一松  信著「シリーズ新しい応
用の数学8  初等関数の数値計算」147〜149頁
を参照。
【0008】次に、この方法で64ビット長浮動小数点
データの除算を行なう場合を説明する。
【0009】浮動小数点演算に関する標準規格であるI
EEE754では、倍精度フォーマット(64ビット長
浮動小数点フォーマット)の仮数部  Mは、bN を
それぞれ1ビットのデータとすると次のように表される
【0010】 M=1.b51  b50  b49  ‥‥  b2
   b1   b0すなわち、52ビットのビット列
からなる1≦M<2の範囲のデータと規定されている。 この仮数部にさらに11ビットの指数部と1ビットの符
号が組み合わされて64ビットの浮動小数点データとな
るが、浮動小数点除算の場合は指数部は単に減算を行な
うのみであるため、被除数の仮数部の除数の仮数部の除
算を考えればよい。
【0011】仮数部における小数点以下の有効精度が5
2ビットであるため、除算のための逆数近似も52ビッ
トの精度が得られればよい。
【0012】この精度を得るための一例として、13ビ
ット精度の逆数近似値を初期値としてROMテーブルか
ら検索し、2回のニュートン近似により52ビット精度
とする場合を説明する。
【0013】次のように表されるBの逆数近似値を求め
るとする。
【0014】 B=1.b51  b50  b49  ‥‥  b2
   b1   b0このBの上位13ビット[b51
  b50  ‥  b39]をアドレスとして B0 =1.b51  b50  ‥‥  b390 
 0  ‥‥  0の逆数1/B0 が格納されている
ROMテーブルを検索し、13ビット長のデータ[x5
1  x50  ‥‥  x39]を得る。この13ビ
ットは
【0015】 1/B0 =x52.  x51  x50  x49
  x48  ‥‥とした時の[x51  x50  
‥‥  x39]の13ビットである。
【0016】なお、x52は、B0 =1.0  のと
き  x52=1、B0 >1.0  のとき  x5
2=0、となるため、ROMによる検索とは別に[b5
1  b50  ‥‥  b39]のNANDをとって
x52を発生する。
【0017】 x0 =x52.  x51  x50  ‥‥  x
39  0  0  ‥‥と考えて   X1 =X0 (2−B・X0 )  ‥‥‥‥‥
‥‥‥‥‥‥‥‥‥‥‥  (3)  X2 =X1 
(2−B・X1 )  ‥‥‥‥‥‥‥‥‥‥‥‥‥‥
‥‥  (4)のようにニュートン近似を2回繰り返せ
ばX2 は52ビット精度の1/Bの近似値となる。こ
こで各アルゴリズムにおける演算時間を比較するため、
それらのアルゴリズムをインプリメントするハードウェ
アを仮定しておく。
【0018】図5はこの場合のハードウェアの構成を示
すブロック図である。入力レジスタ11は演算対象とな
るデータが格納されている4nビット長のレジスタであ
り、第1データバス21および第2データバス22に対
して出力する場合は最上位に整数部の1を付加して53
ビット長で出力する。ショートパス機構12は第3デー
タバス23上の53ビットデータを遅延なく第1データ
バス21および第2データバス22に帰還させる回路で
、第1データバス21および第2データバス22の2つ
のデータバスに対しそれぞれ専用のショートパスがある
【0019】ROM(2)13は逆数の初期値を与える
ためのROMテーブルであり、入力レジスタ11の上位
13ビットをアドレスとして13ビットのデータを出力
するため、13ビット/語×213語のデータを持つ。 また、整数ビットを生成するため、出力した13ビット
のNANDをとって最上位ビットの上に付加し、39ビ
ットのゼロを最下位ビットの下に付加して53ビットデ
ータとした後にマルチプレクサ14に出力する。
【0020】マルチプレクサ14は乗算器15の片方の
入力を第1データバス21から取るかROMテーブル1
3から取るかを選択し、乗算器15は第1データバス2
1上の53ビットデータとマルチプレクサ14の出力と
の積を3クロックで乗算し、入力される53ビットデー
タの最上位ビットを整数ビット、最上位ビットとその下
のビットの間に小数点があるものとして入力データと同
じ形式の53ビットデータを出力すると共に、この出力
の53ビットデータを論理反転して出力する機能を持つ
【0021】また、第1データバス21は乗算器15に
被乗数オペランドを53ビット幅で転送し、第2データ
バス22は乗算器15に乗数オペランドを53ビット幅
で転送し、第3データバス23は乗算器15から乗算結
果を53ビット幅で転送し、この演算結果が53ビット
長の結果レジスタ18に格納される。
【0022】このように入力レジスタ11およびショー
トパス機構12と乗算器15は被乗数オペランドと乗数
オペランドを独立に転送できる2本のデータバスで結ば
れ、また乗算器15の出力はさらに別の第3データバス
23で結果レジスタ18およびショートパス機構12と
結ばれている。その結果、乗算器15は2つのオペラン
ドを同時に得ることができ、さらにショートパス機構1
2により直前の乗算結果を続けて次の乗算のオペランド
とすることができる。また、ショートパス機構12は直
前のショートパス転送の値を保持し続ける機能を持ち、
つまりショートパス機構12を使って第3データバス2
3から第1データバス21または第2データバス22へ
転送が行なわれた後、ショートパス機構12に第3デー
タバス23からデータが入力されなければ、以降にショ
ートパス機構12からデータを出力させた場合には最後
にショートパス機構12を使って転送を行なったデータ
が再び読み出せる。
【0023】なお、ROMテーブル13の検索には1ク
ロックかかるものとする。このハードウェアに従来例の
アルゴリズムをインプリメントした場合の逆数算出動作
を図6のタイミング図に示す。
【0024】まず、初期値X0 を得るため、t2 で
入力レジスタ11の上位13ビットを使ってROMテー
ブル13を検索する。t3で‘B’を第1データバス2
1より乗算器15へ転送し、t4 でROMテーブル1
3から出力された‘X0 ’との乗算を行なう。(3)
式では、数値‘2’と乗算結果との減算を行なわなけれ
ばならないが、Bは浮動小数点データの仮数部であり、
X0 はBの逆数の近似値であるため、1≦B<2、1
/2<X0 ≦1であるから、0.5<B・X0<2と
なり、次式が得られる。
【0025】
【0026】よって、この論理反転値を[2−B・X0
 ]の代わりとして演算を進める。この論理反転値を第
3データバス23に出力し、さらにショートパス機構1
2を使って直ちに第1データバス21経由で乗算器15
に戻す(t5 )。また、マルチプレクサ14により再
びX0 をROMテーブル13から乗算器15に出力し
、B・X0 の反転信号とX0 との乗算を行ない、(
3)式の計算を完了する(t6 )。
【0027】t6 の乗算結果X1 を第3データバス
23に出力し、ショートパス機構12を使って直ちに第
2データバス22経由で乗算器15に戻す(t7 )。 同時に第1データバス21を使ってBを入力レジスタ1
1から乗算器15に転送し(t8 )、t9 でX1 
とBとの乗算を行なう。この乗算結果B・X1 の反転
値を(4)式の2−B・X1 の代わりとする。
【0028】B・X1 の反転値を第3データバス23
からショートパス機構12、第1データバス21と経由
させて乗算器15に与え(t10)、第2データバス2
2用のショートパス機構12に保持されているX1とt
11で乗算し、X2 を得る。第3データバス23を使
って結果レジスタ18へX2 を転送し、処理を終了す
る。この動作により52ビット精度で1/Bの近似値が
得られる。
【0029】このように、(13ビット/語)×213
語(=106,946ビット)のROMテーブルを使っ
た従来例では逆数の近似値を求めるために、13クロッ
クを要する。
【0030】次に、この従来例を高速化するためにRO
Mテーブルを大型化し、ニュートン近似1回のみで52
ビット精度の逆数近似を行なう第2の従来例を説明する
【0031】ニュートン近似1回のみで52ビット精度
を得るためには、初期値として26ビットの値が必要で
あるが、これ以外は第1例の前半と同様である。従って
、ハードウェアの構成もROMテーブル13へのアドレ
スが入力レジスタ11の上位26ビットとなり、出力が
26ビット長となる以外は変わらない。図7にこの逆数
算出動作のタイミング図を示す。
【0032】まず、初期値X0 を得るため、t1 で
ROMテーブル13を検索する。次のt2 で第1デー
タバス21により転送されたBとROMテーブル13か
ら出力されたX0 とが乗算される。第1の従来例と同
様、(3)式の[2−B・X0 ]をB・X0 の反転
値としてX0 と乗算し(t3 )、(3)式の計算を
完了する。初期値が26ビット精度であるため、2乗近
似によりこの1回のニュートン近似で52ビット精度の
1/Bの近似値が得られる。
【0033】この場合は図7に示したように、(26ビ
ット/語)×2語(=1,744,830,464ビッ
ト)のROMテーブルを使って7クロックで逆数近似を
行なう。
【0034】
【発明が解決しようとする課題】上述したように従来の
ニュートン近似を使った除算方式では、実行時間を短縮
しようとするとROMテーブルが巨大になり、高速化で
きないという欠点がある。
【0035】本発明の目的は、このような問題を解決し
、ニュートン近似の初期値を直線近似を使って補間する
ことにより、小容量のROMテーブルで高速な除算を可
能にした逆数発生装置を提供することにある。
【0036】
【課題を解決するための手段】本発明の逆数発生装置の
構成は、4nビット長の入力データを保持する入力レジ
スタと、この入力レジスタの上位nビットをアドレスと
してこの入力レジスタが保持している値の逆数の近似値
を2nビット長で出力する第1のROMテーブルと、前
記入力レジスタの上位nビットをアドレスとしてこの入
力レジスタが保持している値の逆数の2乗の近似値をn
ビット長で出力する第2のROMテーブルと、前記入力
レジスタの下位ビットと前記第2のROMテーブルの出
力とを乗算する乗算器と、前記第1のROMテーブルの
出力から前記乗算器の出力を減算する減算器とを備え、
この減算器の出力から逆数近似計算に必要な2nビット
精度の初期値を求めることを特徴とする。
【0037】
【実施例】まず、本発明の逆数発生アルゴリズムを説明
する。
【0038】従来例で説明したように、52ビット精度
の逆数近似を行なう場合、ニュートン法を2回用いると
初期値が13ビットで済むためROMテーブルのサイズ
は小さくなる(13ビット/語×213語)が実行時間
が長くなり、ニュートン法を1回で済ませようとすると
初期値が26ビットとなりROMテーブルの大きさが極
端に大きくなってしまう(26ビット/語×226語)
という問題があった。
【0039】そこで本発明では26ビットの初期値を直
接ROMテーブルから検索せずに、2つのROMテーブ
ル(26ビット/語×213語+13ビット/語×21
3語)と減算器を使って直線近似により算出する。
【0040】この直線近似により26ビットの初期値を
得る方法を説明する。図3には逆数関数f(B)=1/
Bのグラフの1部分の拡大図を示す。B0 からΔBだ
け離れたB0 +ΔBでのf(B0 +ΔB)は、B0
 でのグラフの接線の傾きf′(B0 )からf(B0
 )+f′(B0 )・ΔBと近似できる。f(B)=
1/Bの場合は次の(5)式となる。
【0041】
【0042】いま、ある64ビット浮動小数点データの
仮数部Bを次のようにする。
【0043】 B=1.b51  b50  b49  ‥‥  b2
   b1   b0この上位13ビットと下位39ビ
ットとを次のB0 ,ΔBとに分解することができる。
【0044】   B0 =1.b51  b50  ‥‥  b40
  b39  0    0    ‥‥  0  Δ
B=0.0    0    ‥‥  0    0 
   b38  b37  ‥‥  b1   b0  従って、(5)式を使って1/(B0 +ΔB)の近似
値を求めることができる。
【0045】この近似値を26ビット精度で求めるため
には、(5)式の第1項[1/B0 ]は26ビット必
要であるが、第2項[ΔB/B0 2 ]は、ΔBの上
位13ビットがすでにゼロであるため、1/B0 2 
が1/4<1/B0 2 ≦1という範囲でも次のよう
になる。
【0046】   ΔB/B0 2 =0.0  …  0  y38
  y37  ‥‥  y1   y0 (最大値) 
 ΔB/B0 2 =0.0  …  0  0   
 0    y36  ‥‥  y0 (最小値)(5
)式として欲しい有効桁はビット51からビット26ま
での26ビットであるため、1/B0 2 は13ビッ
トあれば充分である。従って、1/B0 の上位26ビ
ットと1/B0 2 の上位13ビットを[b51  
b50  ‥‥  b40  b39]の13ビットを
アドレスとしてROMテーブルから引くことにより、乗
算と減算を使って26ビットの1/(B0 +ΔB)の
近似値を求めることができる。
【0047】ここで(5)式の誤差を検討しておく。B
0 +ΔBでの誤差Δf(B0 )は次式のようになる
【0048】
【0049】B0 は浮動小数点数の仮数部であるため
、1≦B0<2である。よって、Δf(B0 )は次式
となる。
【0050】
【0051】この式から26ビット精度が保証される。 この方法で26ビット精度の近似値が得られれば、あと
はニュートン法1回により52ビット精度の逆数近似値
が得られる。
【0052】次に、このアルゴリズムをインプリメント
した逆数発生装置の構成と動作を図1により説明する。 図において、11は演算対象となるデータが格納されて
いる52ビット長の入力レジスタであり、第1データバ
ス21および第2データバス22に対して出力する場合
は最上位に整数部の1を付加し、53ビット長で出力す
る。12は第3データバス23上の53ビットデータを
遅延なく第1データバス21および第2データバス22
に帰還させるためのショートパス機構であり、第1デー
タバス21および第2データバス22の2つデータバス
に対しそれぞれ専用のショートパスがある。
【0053】13は逆数の2乗の近似値を与えるための
第2ROMテーブルであり、入力レジスタ11の上位1
3ビットをアドレスとして13ビットのデータを出力す
るため、13ビット/語×213語のデータを持つ。ま
た、整数ビットを生成するため、出力した13ビットの
NANDをとってその1ビットを最上位ビットの上に付
加する。さらに、39ビットのゼロを最下位ビットの下
に付加して53ビットデータとした後にマルチプレクサ
14に出力する機能を持つ。マルチプレクサ14は乗算
器15の片方の入力となり、この入力を第1データバス
21から取るか第2ROMテーブル13から取るかを選
択する。
【0054】乗算器15は第1データバス21上の53
ビットデータとマルチプレクサ14の出力との積を3ク
ロックで演算する。入力される53ビットデータの最上
位ビットを整数ビット、最上位ビットとその下のビット
の間に小数点があるものとして乗算を行ない、入力デー
タと同じ形式の53ビットデータを出力するものとする
。また、第1データバス上のデータに対しては全ビット
を演算対象とする機能の他に上位14ビット(整数部1
ビット+小数部上位13ビット)をゼロにマスクして演
算する機能を持つ。さらに、出力の53ビットデータを
論理反転して出力する機能を持つ。
【0055】第1ROMテーブル16は逆数の近似値を
与えるためのROMテーブルであり、入力レジスタ11
の上位13ビットをアドレスとして26ビットのデータ
を出力するため、26ビット/語×213語のデータを
持つ。また、整数ビットを生成するため、出力した26
ビットのNANDをとってその1ビットを最上位ビット
の上に付加する。さらに、26ビットのゼロを最下位ビ
ットの下に付加して53ビットデータとした後に減算器
17に出力する。この減算器17は第1ROMテーブル
16の出力から乗算器15の出力を減算する。
【0056】第1データバス21は乗算器15に被乗数
オペランドを転送し、第2データバス22は乗算器15
に乗数オペランドを転送し、第3データバス23は乗算
器15および減算器17から結果を転送し、結果レジス
タ18は演算結果が格納される。
【0057】このように入力レジスタ11およびショー
トパス機構12と乗算器15は被乗数オペランドと乗数
オペランドを独立に転送できる2本のデータバス21,
22で結ばれ、また乗算器15の出力と減算器17の出
力はさらに別の第3データバス23で結果レジスタ18
およびショートパス機構12に結ばれている。その結果
、乗算器15は2つのオペランドを同時に得ることがで
き、さらにショートパス機構12により直前の乗算結果
を続けて次の乗算のオペランドとすることができる。 また、ショートパス機構12は直前ショートパス転送の
値を保持し続ける機能を持つ。つまり、ショートパス機
構12を使って第3データバス23から第1データバス
21または第2データバス22へ転送が行なわれた後、
ショートパス機構12に第3データバス23からデータ
が入力されなければ、以降にショートパス機構12から
データを出力させた場合には最後にショートパス機構1
2を使って転送を行なったデータが再び読み出せる。な
お、第1ROMテーブル16および第2ROMテーブル
13の検索には1クロックかかるものとする。
【0058】この場合の逆数算出動作を図2のタイミン
グ図に示す。入力レジスタ11に保持されている52ビ
ットデータBはbN はn番目のビットとすると、次の
52ビットのビット列とする。
【0059】 B=1.b51  b50  b49  ‥‥  b1
   b0  また、Bの上位13ビットB0 と、下
位39ビットΔBとを次のように分解したデータとする
【0060】   B0 =1.b51  b50  ‥‥  b39
  0    0    ‥‥  0  ΔB=0.0
    0    ‥‥  0    b38  b3
7  ‥‥  b0    前述の(5),(4)式に従って演算を進める。
【0061】まず、1/B0 2 の近似値Z2 を得
るため、入力レジスタ11の上位13ビットを使って第
2ROMテーブル13を検索する(t1 )。入力レジ
スタ11のデータBを第1データバス21により乗算器
15へ転送する(t2 )。乗算器15は第1データバ
ス上のデータの上位14ビット(整数部1ビット+小数
部上位13ビット)をマスクして(ΔBとして)受理し
、ROMテーブル13からマルチプレクサ14を経由し
て入力されたZ2 との乗算を行ない(t3 )、その
乗算結果ΔB・Z2 を得ている。
【0062】次に、1/B0 の近似値Z1 を得るた
め、入力レジスタ11の上位13ビットを使って第2R
OMテーブル13を検索する(t4 )。第1ROMテ
ーブル16の出力と乗算器15の出力を減算器17に入
力し、Z1 −ΔB・Z2 を行ない(t5 )、まず
26ビット精度で1/Bの近似値を得、ニュートン近似
の初期値とする。
【0063】減算器17の出力[X1 =Z1 −ΔB
・Z2 ]を第3データバス23に出力すると同時に、
ショートパス機構12を使って第2データバス22にの
せる(t6 )。一方で入力レジスタ11の内容Bを第
1データバス21を使って乗算器15に入力する(t7
 )。乗算器15はBの上位ビットをマスクせずに全ビ
ットを演算対象とし、第2データバス上のX1 との乗
算を行なう(t8 )。
【0064】ここで、(4)式は前述の(4)式のよう
に数値‘2’と乗算結果との減算を行なわなければなら
ないが、Bは浮動小数点データの仮数部であり、X0 
はBの逆数の近似値であるため、次式のようになる。
【0065】
【0066】従って、この論理反転値を[2−B・X0
 ]の代りとするため、乗算器15は乗算結果B・X1
 を論理反転し、(4)式の[2−B・X1 ]とする
【0067】乗算器15はこのB・X1 の反転値を第
3データバス23に出力し、さらにショートパス機構1
2を使って直ちに第1データバス16経由で乗算器15
に戻す(t9 )。同時に第2データバス22用のショ
ートパス機構12に保持されているX1 を乗算器15
に入力し(t10)、X2 としてX1 とB・X1 
の反転値との乗算値を得る(t11)。第3データバス
23を使って結果レジスタ18へこのX2 を転送し、
処理を終了する。以上の動作により52ビット精度の1
/Bの近似値が得られる。
【0068】このように本実施例は13ビット/語×2
13語(=106,946ビット),26ビット/語×
213語(=213,892ビット)の2つのROMテ
ーブルを使い、総ROM容量320,838ビットで1
1クロックで52ビット精度の逆数近似を計算すること
ができる。
【0069】本実施例では3本のデータバスやショート
パス機構を使って逆数発生以外の演算も行なえる構成と
したため、ハードウェアが大規模になっている。ところ
が、逆数発生の機能のみを持つ装置であればより簡単な
ハードウェアでさらに高速な演算が可能である。そこで
、第2の実施例として逆数発生専用とした場合の構成と
動作を示す。なお、整数ビットを省略してハードウェア
を簡略化するため、第2の実施例ではB=1.00…0
の場合は除外して考えることにする。
【0070】図4は本発明の第2の実施例の逆数発生装
置のハードウェア構成を示すブロック図であり、演算対
象データのビット幅は第1の実施例と同じく52ビット
とする。演算対象データを保持する入力レジスタ31に
保持されている値Bとして各ビットのビット番号を、図
8に示す通りに定義する。すなわち、最上位ビットをビ
ット51、最下位ビットをビット0とし、小数点はビッ
ト51の上にあるものとする。この値Bは次のように示
される。
【0071】
【0072】逆数の近似値を与えるための第1ROMテ
ーブル32は、入力レジスタ31の上位13ビットをア
ドレスとして26ビットのデータを出力するため、26
ビット/語×213語のデータを持つ。逆数の2乗の近
似値を与えるための第2ROMテーブル33は、入力レ
ジスタ11の上位13ビットをアドレスとして13ビッ
トのデータを出力するため、13ビット/語×213語
のデータを持つ。
【0073】乗算器34は13ビット×13ビット乗算
器であり、第2ROMテーブル33の出力の13ビット
データと入力レジスタ11の[ビット38〜ビット26
]の13ビットデータを乗算し、26ビットデータとな
る乗算結果の上位13ビットを出力する。26ビット減
算器35は、乗算器34の13ビット出力の上位をゼロ
拡張して26ビットデータとし、第1ROMテーブル3
2の26ビットデータから減算し、26ビットデータを
出力する。
【0074】26ビット×52ビット乗算器36は、減
算器35の26ビット出力と、もう一方の52ビット入
力データとの乗算結果を出力する。このとき、入力およ
び出力されるデータは、図8に示したようにビット52
の上に小数点がある固定小数点数とて扱われ、出力され
るデータは乗算結果の上位52ビットとなる。
【0075】マルチプレクサ37は、入力レジスタ11
からの52ビットデータと反転器38の52ビット出力
のいずれかを選択して乗算器36へ入力する。反転器3
8は乗算器36の52ビット出力を論理反転し、結果レ
ジスタ18aは乗算器36の出力を保持するレジスタで
ある。
【0076】次に本実施例の逆数発生装置の動作を説明
する。まず、第1ステップとして入力レジスタ11の[
ビット51〜ビット39]の13ビットデータをアドレ
スとして第1ROMテーブルおよび第2ROMテーブル
を検索する。第2ステップで、第2ROMテーブルから
の13ビットデータと入力レジスタ11の[ビット38
〜ビット26]の13ビットデータを乗算する。この乗
算は前述の(5)式の第2項[ΔB/B0 2 ]に相
当する。
【0077】第2ROMテーブル33からの13ビット
出力は次の[Z51〜Z39]の13ビットに相当する
【0078】
【0079】また、入力レジスタ11の[ビット38〜
ビット26]は、次の[B38〜B26]の13ビット
に相当する。
【0080】
【0081】これらの13ビットデータを整数と見なす
とその乗算結果は26ビットデータになるはずである。 また、Z39の重みは2−13 、B26の重みは2−
26 であるため、整数乗算と見なした場合の乗算結果
26ビットデータの最下位の実際の重みは2−39 で
ある。よって、その26ビットデータ[V38V37V
36V35V34…V13]は次のビット位置に相当す
る。
【0082】
【0083】いま、(5)式ではビット26までの精度
を得られれば良いから、乗算器34は26ビットデータ
[V38〜V13]の上位13ビット[V38〜V26
]を出力する。
【0084】第3ステップで乗算器34の13ビット出
力の上位に13ビットのゼロを付加し、第1ROMテー
ブル32の26ビット出力とともに減算器35に入力し
て、減算を行なう。第1ROMテーブル32からの26
ビット出力は、次の[Y51〜Y26]の26ビットに
相当する。
【0085】
【0086】(5)式の第1項から第2項を引く減算を
行なうため、この26ビットデータと乗算器34の13
ビットデータ[V38〜V26]の各ビットの重みを合
わせるために、[V38〜V26]の上位を13ビット
ゼロ拡張し、次の値から[1/B0 −ΔB・1/B0
 2 ]の減算を行なう。
【0087】
【0088】第4ステップで入力レジスタ31からのデ
ータを選択するようにマルチプレクサ37を制御し、乗
算器36に減算器35からの26ビットデータと入力レ
ジスタ31からの52ビットデータを与え、乗算を行な
う。この乗算は(4)式の,B×X1 の乗算に相当す
る。
【0089】入力レジスタ11のBは52ビットである
が、X1 (=1/B0 −ΔB・1/B0 2 )は
1/B0 とΔB・1/B0 2 との減算結果である
ため、26ビットしかない。よって、乗算器36が行な
う乗算は52ビット×52ビットである必要はなく、2
6ビット×52ビットで充分である。(4)式では[2
−B・X1 ]となっているが、これはビット51から
ビット0までの各ビットの論理反転により得られるため
、反転器38により乗算器36の出力の反転を行なう。
【0090】第5ステップで反転器38からのデータを
選択するようにマルチプレクサ37を制御し、乗算器3
6に減算器35からの26ビットデータと反転器38か
らの52ビットデータを与え、乗算を行なう。この乗算
は(4)式の[X1 ×(2−BX1 )]の乗算に相
当する。この乗算も第4ステップと同様に一方の入力X
1 が26ビットしかない。よって、26ビット×52
ビットで充分である。この乗算結果を結果レジスタ18
aに出力し、逆数演算を終了する。
【0091】次に、本実施例のハードウェア量と実行時
間を見積る。まず、ROM容量は第1の実施例と同様、
320,838ビットである。また、第1の実施例では
全ての乗算を1つの52ビット×52ビット乗算器で処
理していたが、本実施例では[ΔB/B0 2]の乗算
専用に13ビット×13ビット乗算器を用意しているた
め、この分のハードウェアが増大する。反対に第1の実
施例で使った52ビット×52ビットの乗算器は本実施
例では26ビット×52ビットとなり、この乗算器のた
めのハードウェア量は約半分に減少する。さらにデータ
転送のためのデータバスやショートパス機構が不要にな
るため、逆数発生装置全体としてのハードウェアは第1
の実施例よりも本実施例の方が小さくなる。
【0092】また、実行時間も第1の実施例より少なく
なる。まず、第1ステップのROMテーブル検索には第
1実施例と同様、1クロック費やされるとする。第2ス
テップの乗算はデータ長が第1の実施例の52ビット×
52ビットに対し、13ビット×13ビットであるため
、第1の実施例の3クロックに対し、1クロックで処理
できる。第3ステップの減算は第1実施例と同様、1ク
ロックとする。第4および第5ステップの乗算もデータ
長が第1実施例の52ビット×52ビットに対し、26
ビット×52ビットであるため、第1実施例の3クロッ
クに対し2クロックで処理できるとする。以上の実行時
間の合計から、本実施例の逆数発生装置の実行時間は7
クロックとなる。このように、ハードウェアの構成を逆
数発生専用にすることにより、さらに高速な逆数演算が
が可能となる。
【0093】
【発明の効果】以上説明したように本発明の逆数発生装
置は、2つのROMテーブルを使ってニュートン近似の
ための初期値を直線近似で補間することにより、ROM
容量を削減すると共に、高速な逆数演算をすることがで
きるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例の逆数発生装置のブロック図
【図2】図1の動作を説明する模式的タイミング図
【図
3】直線近似の計算法を説明する座標図
【図4】本発明
の第2の実施例の逆数発生装置のブロック図
【図5】従来の逆数発生装置の一例のブロック図
【図6
】従来の逆数発生装置のニュートン近似2回の場合を説
明するタイミング図
【図7】従来の逆数発生装置のニュートン近似1回の場
合を説明するタイミング図
【図8】入力レジスタのビット番号を説明する配列図
【符号の説明】
11,31    入力レジスタ 12    ショートパス機構 13,33    第2ROMテーブル14,37  
  マルチプレクサ 15,34,36    乗算器 16,32    第1ROMテーブル17,35  
  減算器 18,18a    結果レジスタ 21    第1データバス 22    第2データバス 23    第3データバス 38    反転器

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  4nビット長の入力データを保持する
    入力レジスタと、この入力レジスタの上位nビットをア
    ドレスとしてこの入力レジスタが保持している値の逆数
    の近似値を2nビット長で出力する第1のROMテーブ
    ルと、前記入力レジスタの上位nビットをアドレスとし
    てこの入力レジスタが保持している値の逆数の2乗の近
    似値をnビット長で出力する第2のROMテーブルと、
    前記入力レジスタの下位ビットと前記第2のROMテー
    ブルの出力とを乗算する乗算器と、前記第1のROMテ
    ーブルの出力から前記乗算器の出力を減算する減算器と
    を備え、この減算器の出力から逆数近似計算に必要な2
    nビット精度の初期値を求めることを特徴とする逆数発
    生装置。
JP3079415A 1991-04-12 1991-04-12 逆数発生装置 Pending JPH04314126A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3079415A JPH04314126A (ja) 1991-04-12 1991-04-12 逆数発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3079415A JPH04314126A (ja) 1991-04-12 1991-04-12 逆数発生装置

Publications (1)

Publication Number Publication Date
JPH04314126A true JPH04314126A (ja) 1992-11-05

Family

ID=13689240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3079415A Pending JPH04314126A (ja) 1991-04-12 1991-04-12 逆数発生装置

Country Status (1)

Country Link
JP (1) JPH04314126A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999067704A1 (en) * 1998-06-23 1999-12-29 Wataru Ogata System for division using small-capacity memory
JP2006065633A (ja) * 2004-08-27 2006-03-09 Sony Computer Entertainment Inc 演算方法および装置
KR100653675B1 (ko) * 2005-12-06 2006-12-05 엠텍비젼 주식회사 역수 연산 장치 및 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999067704A1 (en) * 1998-06-23 1999-12-29 Wataru Ogata System for division using small-capacity memory
JP2006065633A (ja) * 2004-08-27 2006-03-09 Sony Computer Entertainment Inc 演算方法および装置
KR100653675B1 (ko) * 2005-12-06 2006-12-05 엠텍비젼 주식회사 역수 연산 장치 및 방법

Similar Documents

Publication Publication Date Title
US5631859A (en) Floating point arithmetic unit having logic for quad precision arithmetic
US6779012B2 (en) Computer method and apparatus for division and square root operations using signed digit
US5272660A (en) Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor
US3828175A (en) Method and apparatus for division employing table-lookup and functional iteration
US5381360A (en) Modulo arithmetic addressing circuit
EP0530372B1 (en) Numerical expression converter and vector processor using the same
US5426600A (en) Double precision division circuit and method for digital signal processor
JPH07104778B2 (ja) 浮動小数点数演算処理装置
Piromsopa et al. An FPGA implementation of a fixed-point square root operation
US6941334B2 (en) Higher precision divide and square root approximations
US6912559B1 (en) System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
JP2597775B2 (ja) 除算方法および除算装置
JPH0687218B2 (ja) 浮動小数点数演算処理装置及び除数倍数生成装置
JPH10143355A (ja) 種々の書式のオペランドを高効率で乗算する能力を有するマイクロプロセッサ及びその演算方法
Eisig et al. The design of a 64-bit integer multiplier/divider unit
JPH04314126A (ja) 逆数発生装置
US6109777A (en) Division with limited carry-propagation in quotient accumulation
JP2972326B2 (ja) 平方根計算装置
JP3435744B2 (ja) 乗算回路
US8185723B2 (en) Method and apparatus to extract integer and fractional components from floating-point data
RU2276805C2 (ru) Способ и устройство для выделения целой и дробных компонент из данных с плавающей точкой
Schulte et al. A software interface and hardware design for variable-precision interval arithmetic
JP2508286B2 (ja) 平方根演算装置
Shapran et al. DIVISION USING THE BASE RADIX16 NUMBER SYSTEM TO FORM FRACTION DIGITS
JPH02153412A (ja) 逆三角関数演算装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19991019