JP2972326B2 - 平方根計算装置 - Google Patents

平方根計算装置

Info

Publication number
JP2972326B2
JP2972326B2 JP2327925A JP32792590A JP2972326B2 JP 2972326 B2 JP2972326 B2 JP 2972326B2 JP 2327925 A JP2327925 A JP 2327925A JP 32792590 A JP32792590 A JP 32792590A JP 2972326 B2 JP2972326 B2 JP 2972326B2
Authority
JP
Japan
Prior art keywords
bit
bits
data
square root
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.)
Expired - Fee Related
Application number
JP2327925A
Other languages
English (en)
Other versions
JPH04195523A (ja
Inventor
伸吾 小嶋
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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP2327925A priority Critical patent/JP2972326B2/ja
Publication of JPH04195523A publication Critical patent/JPH04195523A/ja
Application granted granted Critical
Publication of JP2972326B2 publication Critical patent/JP2972326B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、情報処理装置に関し、特に浮動小数点平方
根演算を行なう数値演算プロセッサに関する。
〔従来の技術〕
従来の高速平方根演算方式の代表的なアルゴリズムと
してニュートン法による平方根逆数近似がある。これは を計算する場合に、ニュートンの逐次近似式 を使って の近似値を必要な精度まで求め、その値にBを乗じて平
方根演算結果とするものである。まず、このニュートン
の逐次近似による平方根逆数発生アルゴリズムを説明す
る。
の値を求めるということは なる方程式においてf(X)=0となる解を求めること
である。これをニュートンの逐次近似式にあてはめる
となる。適当な方法でXnの初期値を求めた後、式を繰
り返し使って演算を進めれば2乗近似によりXnの精度は
倍々に増えるため、必要な精度の の近似値を求めることができる。(ニュートン法および
2乗近似については一松信著 教育出版‘シリーズ新し
い応用の数学8 初等関数の数値計算'P.147〜149を参
照のこと) 次に、この方法で64ビット長浮動小数点データの平方
根演算を行なう場合を示す。
浮動小数点演算に関する標準規格であるIEEE754で
は、倍精度フォーマット(64ビット長浮動小数点フォー
マット)の仮数部Mは M=1.b51 b50 b49 … b2 b1 b0 (bnはそれぞれ1ビットのデータ) という52ビットのビット列からなる1≦M<2の範囲の
データと規定されている。この仮数部にさらに11ビット
の指数部と1ビットの符号が組み合わされて64ビットの
浮動小数点データとなるが、浮動小数点平方根演算の場
合は指数部は単に1/2とするのみであるため、仮数部に
対する平方根演算を考えればよい。
仮数部における小数点以下の有効精度が52ビットであ
るため、平方根演算のための平方根逆数近似も52ビット
の精度が得られればよい。この精度を得るため、まず第
1の従来例として、13ビット精度の平方根近似値を初期
値としてROMテーブルから検索し、2回のニュートン近
似により52ビット精度とする場合を説明する。
B=1.b51 b50 b49 … b2 b1 b0 なるBの平方根逆数近似値を求める。
上記13ビット[b51 b50 … b39]をアドレスとして B0=1.b51 b50 … b39 0 0 … 0 の平方根逆数 が格納されているROMテーブルを検索し、13ビット長の
データ[x51 x50 … x39]を得る。この13ビットは とした時の[x51 x50 … x39]の13ビットである。な
お、x52は B0=1.0のときx52=1 B0>1.0のときx52=0 となるため、ROMによる検索とは別に[b51 b50
b39]のNORをとってx52を発生する。
X0=x52・x51 x50 … x39 0 0 … と考えて X1=X0(3−B・X0 2)/2 …… X2=X1(3−B・X1 2)/2 …… とニュートン近似を2回繰り返せばX2は52ビット精度の の近似値となる。
ここで、各アルゴリズムにおける演算時間を比較する
ため、それらのアルゴリズムをインプリメントするハー
ドウェアを仮定しておく。
第5図にそのハードウェアの構成を示す。
501は演算対象となるデータが格納されている52ビッ
ト長の入力レジスタであり、第1データバス506および
第2データバス507に対して出力する場合は最上位に整
数部の1を付加し、53ビット長で出力する。
502は第3データバス508上の53ビットデータを遅延な
く第1データバス506および第2データバス507に帰還さ
せるためのショートバス機構であり、第1データバス50
6および第2データバス507の2つデータバスに対しそれ
ぞれ専用のショートパスがある。
503は平方根逆数の初期値を与えるためのROMテーブル
であり、入力レジスタ501の上位13ビットをアドレスと
して13ビットのデータを出力するため、13ビット/語×
213語のデータを持つ。また、整数ビットを生成するた
め、出力した13ビットのNORをとってその1ビットを最
上位ビットの上に付加する。さらに、39ビットのゼロを
最下位ビットの下に付加して53ビットデータとした後に
マルチプレクサ504に出力する機能を持つ。
504は乗算器505の一方の入力を第1データバス506か
ら取るかROMテーブル503から取るかを選択するマルチプ
レクサ, 510は乗算器505のもう一方の入力を第2データバス50
7から取るかROMテーブル503から取るかを選択するマル
チプレクサ, 505はマルチプレクサ504の出力とマルチプレクサ510
の出力との積を3クロックで演算する乗算器であり、入
力される53ビットデータの最上位ビットを整数ビット、
最上位ビットとその下のビットの間に小数点があるもの
として入力データと同じ形式の53ビットデータを出力す
るものとする。
511は乗算器の出力‘a・b'から‘(3−a・b)/2'
を発生させるための付属回路である。この付属回路511
の詳細を第9図に示す。
506は乗算器505に被乗数オペランドを転送するための
53ビット幅の第1データバス, 507は乗算器505に乗数オペランドを転送するための53
ビット幅の第2データバス, 508は乗算器505から乗算結果を転送するための53ビッ
ト幅の第3データバス, 509は演算結果が格納される53ビット長の結果レジス
タである。
このように、入力レジスタ501およびショートパス機
構502と乗算器505は被乗数オペランドと乗数オペランド
を独立に転送できる2本のデータパスで結ばれ、また乗
算器の出力はさらに別の第3データバス508で結果レジ
スタ509およびショートパス機構502に結ばれている。そ
の結果、乗算器505は2つのオペランドを同時に得るこ
とができ、さらにショートパス機構502により直前の乗
算結果を続けて次の乗算のオペランドとすることができ
る。またショートパス機構502は直前のショートパス転
送の値を保持し続ける機能を持つ。つまり、ショートパ
ス機構502を使って第3データバス508から第1データバ
ス506または第2データバス507へ転送が行なわれた後、
ショートパス機構502に第3データバス508からデータが
入力されなければ、以降にショートパス機構502からデ
ータを出力させた場合には最後にショートパス機構502
を使って転送を行なったデータが再び読み出せる。
なお、ROMテーブル503の検索には1クロックかかるも
のとする。
このハードウェアに第1の従来例のアルゴリズムをイ
ンプリメントした場合の平方根逆数算出動作を第6図に
示す。
まず、初期値X0を得るため、602で入力レジスタ501の
上位13ビットを使ってROMテーブル503を検索する。612
でROMテーブル503の出力を使ってX0 2を求める。603で
‘B'を第1データバス506により乗算器505へ転送し、60
4で‘X0 2'との乗算を行なう。式では X1=X0(3−B・X0 2) …… となっているため、数値‘3'と乗算結果との減算を行な
わなければならないが、Bは浮動小数点データの仮数部
であり、X0はBの平方根の逆数の近似値であるため、 より、 0.5<B・X0 2<2 と限定できることから、第9図の回路により (3−B・X0 2)/2 と求めることができる。この結果を第3データバス508
に出力し、さらにショートパス機構502を使って直ちに
第1データバス506経由で乗算器505に戻す(605)。ま
た、マルチプレクサ504により再びX0をROMテーブル503
から乗算器505に入力し、(3−B・X0 2)/2とX0との乗
算を行ない、式の計算を完了する(606)。
606の乗算結果X1を第3データバス508に出力し、ショ
ートパス機構502を使って直ちに第1データバス506およ
び第2データバス507経由で乗算器505に戻してX1 2を求
める(607)。
607の乗算結果X1 2を第3データバス508に出力し、シ
ョートパス機構502を使って直ちに第2データバス507経
由で乗算器505に戻す(607)。同時に第1データバス50
6を使ってBを入力レジスタ501から乗算器505に転送し
(608)、609でX1 2とBとの乗算を行なう。この乗算結
果から付加回路511を使って(3−B・X1 2)/2を求め
る。
この値を第3データバス508からショートパス機構50
2,第2データバス507と経由させて乗算器505に与え(61
0)、第1データバス506用のショートパス機構502に保
持されているX1と611で乗算し、X2を得る。第3データ
バス508を使って結果レジスタ509へX2を転送し、処理を
終了する。
以上の動作により52ビット精度で の近似値が得られる。
このように、 13ビット/語×213語(=106,496ビット) のROMテーブルを使った第1の従来例では平方根逆数の
近似値を求めるために19クロックを要する。
つぎに、第1の従来例を高速化するためにROMテーブ
ルを大型化し、ニュートン近似1回のみで52ビット精度
の平方根逆数近似を行なう例を第2の従来例として示
す。
ニュートン近似1回のみで52ビット精度を得るために
は、初期値として26ビットの値が必要であるが、これ以
外は第1の従来例の前半と同様である。従ってハードウ
ェアの構成もROMテーブル503へのアドレスが入力レジス
タ501の上位26ビットとなり、出力が26ビット長となる
以外は変わらない。第7図にその平方根逆数算出動作を
示す。
まず、初期値X0を得るため、701でROMテーブル503を
検索する。704でROMテーブル503の出力を使ってX0 2を求
める。702で第1データバス506により転送されたBとX0
2が乗算される。第1の従来例と同様、[3−B・X1 2
をX0と乗算し(703)、式の計算を完了する。初期値
が26ビット精度であるため、2乗近似によりこの1回の
ニュートン近似で52ビット精度の の近似値が得られる。
この場合は第7図に示したように、 26ビット/語×226語(=1,744,830,464ビット) のROMテーブルの使って10クロックで平方根逆数近似を
行なう。
〔発明が解決しようとする課題〕
従来のニュートン近似を使った平方根演算方式では実
行時間を短縮しようとするとROMテーブルが巨大にな
り、高速化できないという欠点を有していた。
〔発明の従来技術に対する相違点〕
ニュートン近似の初期値を直線近似を使って補完する
ことにより、小容量のROMテーブルで高速な平方根演算
を可能にした。
〔課題を解決するための手段〕
本発明の平方根計算装置は、所定ビット数の指数部と
4nビット長の仮数部とによって構成される入力データを
保持する入力レジスタと、前記入力データレジスタに保
持された仮数部の上位nビットをアドレスとして前記入
力レジスタが保持している入力データの平方根の逆数の
近似値を2nビット長で出力する第1のROMテーブルと、
前記入力レジスタに保持された仮数部の上位nビットを
アドレスとして前記入力レジスタが保持している値の3
乗の平方根の2倍の逆数の近似値をnビット長で出力す
る第2のROMテーブルと、前記入力レジスタに保持され
た仮数部の下位3nビットと前記第2のROMテーブルの出
力を乗算する乗算器と、前記第1のROMテーブルから前
記乗算器の出力を減算する減算器とを備え、前記減算器
の出力として平方根近似計算に必要な2nビット精度の初
期値を求めることを特徴とする。
〔実施例〕
以下、図面を参照しながら本発明の詳細を述べる。
まず、本発明の平方根逆数発生アルゴリズムを説明す
る。
〔従来例〕の項で説明したように、52ビット精度の平
方根逆数近似を行なう場合、ニュートン法を2回用いる
と初期値が13ビットで済むためROMテーブルのサイズは
小さくなる(13ビット/語×213語)が実行時間が長く
なり、ニュートン法を1回で済ませようとすると初期値
が26ビットとなりROMテーブルの大きさが極端に大きく
なってしまう(26ビット/語×226語)という問題があ
った。
そこで本発明では26ビットの初期値を直接ROMテーブ
ルから検索せずに、2つのROMテーブル(26ビット/語
×213語+13ビット/語×213語)と減算器を使って直線
近似により算出する。
直線近似により26ビットの初期値を得る方法を説明す
る。
第3図に平方根逆数関数 のグラフの1部分の拡大図を示す。B0からΔBだけ離れ
たB0+ΔBでのf(B0+ΔB)は、B0でのグラフの接線
の傾きf′(B0)から f(B0+ΔB)≒f(B0)+f′(B0)・ΔB と近似できる。
の場合は となる。
いま、ある64ビット浮動小数点データの仮数部B B=1.b51 b50 b49 … b2 b1 b0 (bnはn番目のビット) の上位13ビットと下位39ビットを分解し、 B0=1.b51 b50 … b40 b39 0 0 …0 0 ΔB=0.0 0 … 0 0 b38 b37 … b1 b0 とすることにより、式を使って の近似値を求めることができる。
近似値を26ビット精度で求めるためには、式の第1
は26ビット必要だが、第2項 は、ΔBの上位13ビットがすでにゼロであるため、 という範囲でも となる。式として欲しい有効桁はビット51からビット
26までの26ビットであるため、 は13ビットあれば充分である。
よって、1/B0の上位26ビットと の上位13ビットを[b51 b50 … b40 b39]の13ビットを
アドレスとしてROMテーブルから引くことにより、乗算
と減算を使って26ビットの の近似値を求めることができる。
次に、このアルゴリズムをインプリメントした平方根
逆数発生装置の構成と動作を説明する。
第1図に本発明一実施例の平方根逆数発生装置の構成
を示す。
101は演算対象となるデータが格納されている52ビッ
ト長の入力レジスタであり、第1データバス108および
第2データバス109に対して出力する場合は最上位に整
数部の1を付加し、53ビット長で出力する。
102は第3データバス110上の53ビットデータを遅延な
く第1データバス108および第2データバス109に帰還さ
せるためのショートパス機構であり、第1データバス10
8および第2データバス109の2つデータバスに対しそれ
ぞれ専用のシステムバスがある。
103は‘3乗の平方根の2倍の逆数’ の近似値を与えるための第2ROMテーブルであり、入力レ
ジスタ101の上位13ビットをアドレスとして13ビットの
データを出力するため、13ビット/語×213語のデータ
を持つ。また、整数ビットとして1ビットの‘0'を最上
位ビットの上に付加する。さらに、39ビットのゼロを最
下位ビットの下に付加して53ビットデータとした後にマ
ルチプレクサ104に出力する機能を持つ。
104は乗算器105の片方の入力を第1データバス106か
ら取るか第2ROMテーブル103から取るかを選択するマル
チプレクサ, 105は第1データバス106上の53ビットデータのマルチ
プレクサ104の出力との積を3クロックで演算する乗算
器であり、入力される53ビットデータの最上位ビットを
整数ビット、最上位ビットとその下のビットの間に小数
点があるものとして乗算を行ない、入力データと同じ形
式の53ビットデータを出力するものとする。また、第1
データバス上のデータに対しては全ビットを演算対象と
する機能の他に上位14ビット(整数部1ビット+小数部
上位13ビット)をゼロにマスクして演算する機能を持
つ。
112は乗算器105の出力‘a・b'から‘(3−a・b)
/2'を生成する付加回路である。付加回路112の詳細を第
9図に示す。なお、この付加回路112はバイパスするこ
ともできるため、乗算結果として‘a・b'と‘(3−a
・b)/2'のいずれを使うこともできる。
106は平方根の逆数 の近似値を与えるための第1ROMテーブルであり、入力レ
ジスタ101の上位13ビットをアドレスとして26ビットの
データを出力するため、26ビット/語×213語のデータ
を持つ。また、整数ビットを生成するため、出力した26
ビットのNORをとってその1ビットを最上位ビットの上
に付加する。さらに、26ビットのゼロを最下位ビットの
下に付加して53ビットデータとした後に減算器105に出
力する機能を持つ。
107は第1ROMテーブル106の出力から乗算器105の出力
を減算する53ビットの減算器, 108は乗算器105に被乗数オペランドを転送するための
53ビット幅の第1データバス、109は乗算器105に乗数オ
ペランドを転送するための53ビット幅の第2データバ
ス、110は乗算器105および減算器107から結果を転送す
るための53ビット幅の第3データバス, 111は演算結果が格納される53ビット長の結果レジス
タである。
このように、入力レジスタ101およびショートパス機
構102の乗算器105は被乗数オペランドと乗数オペランド
を独立に転送できる2本のデータバスで結ばれ、また乗
算器の出力と減算器の出力はさらに別の第3データバス
110で結果レジスタ111およびショートパス機構102に結
ばれている。その結果、乗算器105は2つのオペランド
を同時に得ることができ、さらにショートパス機構102
により直前の乗算結果を続けて次の乗算のオペランドと
することができる。また、ショートパス機構102は直前
のショートパス転送の値を保持し続ける機能を持つ。つ
まり、ショートパス機構102を使って第3データバス110
から第1データバス108または第2データバス109へ転送
が行なわれた語、ショートパス機構102に第3データバ
ス110からデータが入力されなければ、以降にショート
パス機構102からデータを出力させた場合には最後にシ
ョートパス機構102を使って転送を行なったデータが再
び読み出せる。
なお、第1ROMテーブル106および第2ROMテーブル103の
検索には1クロックかかるものとする。
平方根逆数算出動作を第2図に示す。
入力レジスタ101に保持されている52ビットデータB
は B=1.b51 b50 b49 … b1 b0 (bnはn番目のビット) なる52ビットのビット列であるとする。また、Bの上位
13ビットと下位39ビットを分解したデータを B0=1.b51 b50 … b39 0 0 … 0 ΔB=0.0 0 … 0 b38 b37 … b0 と呼ぶ。
式および式 に従って演算を進める。
まず、 の近似値Z2を得るため、入力レジスタ101の上位13ビッ
トを使って第2ROMテーブル103を検索する(201)。入力
レジスタ101のデータBを第1データバス108により乗算
器105へ転送する(202)。乗算器105は第1データバス
上のデータの上位14ビット(整数部1ビット+小数部上
位13ビット)をマスクして(ΔBとして)受理し、ROM
テーブル103からマルチプレクサ104を経由して入力され
たZ2との乗算を行ない(203)、乗算結果ΔB・Z2を得
る。
の近似値Z1を得るため、入力レジスタ101の上位13ビッ
トを使って第1ROMテーブル106を検索する(204)。第1R
OMテーブル106の出力と乗算器105の出力を減算器107に
入力し、 Z1−ΔB・Z2 を行ない(205)、まず26ビット精度で の近似値を得、ニュートン近似の初期値とする。
減算器107の出力[Z1−ΔB・Z2(=X1)]を第3デ
ータバス110に出力すると同時に、ショートパス機構102
を使って第1データバス108および第2データバス109に
のせる(212)。乗算器105は第1データバスおよび第2
データバスからX1を得、X1の2乗を計算する(213)。
乗算器105は[X1 2]を第3データバス110に出力する
と同時に、ショートパス機構102を使って第2データバ
ス109にのせる(206)。一方で、入力レジスタ101の内
容Bを第1データバス108を使って乗算器105に入力する
(207)。乗算器105はBの上位ビットをマスクせず全ビ
ットを演算対象とし、第2データバス上のX1 2との乗算
を行なう(208)。
ここで、式は X2=X1(3−B・X1 2)/2 …… となっているため、第9図の付加回路を使ってB・X1 2
から(3−B・X1 2)/2を得る。
乗算器105はこの値を第3データバス110に出力し、さ
らにショートパス機構102を使って直ちに第2データバ
ス109経由で乗算器105に戻す(209)。同時に第1デー
タバス108用のショートパス機構102に保持されているX1
を乗算器105に入力し(210)、[(3−B・X1 2)/2・X
1(=X2)]を得る(211)。第3データバス110を使っ
て結果レジスタ111へX2を転送し、処理を終了する。
以上の動作により52ビット精度の の近似値が得られる。
このように、本発明は 13ビット/語×213語(=106,496ビット) 26ビット/語×213語(=212,992ビット) の2つのROMテーブルを使い、総ROM容量319,488ビット
で14クロックで52ビット精度の平方根逆数近似を計算す
ることができる。
前実施例では3本のデータバスやショートパス機構を
使って平方根逆数発生以外の演算も行なえる構成とした
ため、ハードウェアが大規模になっている。ところが、
平方根逆数発生の機能のみ持つ装置であればより簡単な
ハードウェアでさらに高速な演算が可能である。そこ
で、実施例2として平方根逆数発生専用とした場合の構
成と動作を示す。なお、整数ビットを省略してハードウ
ェアを簡略化するため、実施例2ではB=1.00…0の場
合は除外して考えることにする。
第4図に第2実施例の平方根逆数発生装置のハードウ
ェア構成を示す。
401は演算対象データを保持する入力レジスタであ
る。演算対象データのビット幅は実施例1と同じく52ビ
ットとする。入力レジスタ401に保持されている各ビッ
トのビット番号を第8図に示す通り定義する。また、以
降の説明もこのビット信号に準ずる。つまり、最上位ビ
ットをビット51、最下位ビットをビット0とし、小数点
はビット51の上にあるものとする。
402は平方根逆数の近似値を与えるための第1ROMテー
ブルであり、入力レジスタ401の上位13ビットをアドレ
スとして26ビットのデータを出力するため、26ビット/
語×213語のデータを持つ。
403は3乗の平方根の2倍の逆数 の近似値を与えるための第2ROMテーブルであり、入力レ
ジスタ401の上位13ビットをアドレスとして13ビットの
データを出力するため、13ビット/語×213語のデータ
を持つ。
404は13ビット×13ビット乗算器であり、第2ROMテー
ブル403の出力の13ビットデータと入力レジスタ401の
[ビット38〜ビット26]の13ビットデータを乗算し、26
ビットデータとなる乗算結果の上位13ビットを出力す
る。
405は26ビット減算器であり、乗算器404の13ビット出
力の上位をゼロ拡張して26ビットデータとし、第1ROMテ
ーブルの26ビットデータから減算し、26ビットデータを
出力する。
410は26ビット×26ビット乗算器であり、26ビット減
算器405の出力を2乗し、52ビットデータを出力する。
406は52ビット×52ビット乗算器であり、乗算器410の
52ビット出力と、もう一方の52ビット入力データとの乗
算結果を出力する。このとき、入力および出力されるデ
ータは第8図に示したようにビット52の上に小数点があ
る固定小数点として扱われる。よって出力されるデータ
は乗算結果の上位52ビットとなる。
407はマルチプレクサであり、入力レジスタ401からの
52ビットデータと付加回路408の52ビット出力のいずれ
かを選択して乗算器406へ入力する。
408は乗算器406の52ビット出力xから(3−x)/2を
得るための付加回路である。408の詳細は第9図と同様
である。
409は乗算器406の出力を保持する結果レジスタであ
る。
次に実施例2の平方根逆数発生装置の動作を説明す
る。
まず、第1ステップとして入力レジスタ401の[ビッ
ト51〜ビット39]の13ビットデータをアドレスとして第
1ROMテーブルおよび第2ROMテーブルを検索する。
第2ステップで第2ROMテーブルからの13ビットデータ
と入力レジスタ401の[ビット38〜ビット26]の13ビッ
トデータを乗算する。
この乗算は式 の第2項[ΔB/2√B0 3]に相当する。
第2ROMテーブルからの13ビット出力は 1/B0 2=0.Z51Z50Z49Z48Z47Z46Z45Z44Z43Z42Z41Z40Z39 Z38Z37… の[Z51〜Z39]の13ビットに相当する。また、入力レジ
スタ401の[ビット38〜ビット26]は ΔB=0.0000000000000B38B37B36B35B34B33B32B31B30B29B28B27B26 … の[B38〜B26]の13ビットに相当する。これらの13ビッ
トデータを整数と見なすとその乗算結果は26ビットデー
タになるはずである。また、Z39の重みは2-13,B26の重
みは2-26であるため、整数乗算と見なした場合の乗算結
果26ビットデータの最下位の実際の重みは2-39である。
よって、その26ビットデータ[V38V37V36V35V34…V13
というビット位置に相当する。いま、式ではビット26
までの精度を得られれば良いから、乗算器404は26ビッ
トデータ[V38〜V13]の上位13ビット[V38〜V26]を出
力する。
第3ステップで乗算器404の13ビット出力の上位に13
ビットのゼロを付加し、第1ROMテーブル402の26ビット
出力とともに減算器405に入力して、減算を行なう。
第1ROMテーブルからの26ビット出力は 1/B0=0.Y51Y50Y49Y48Y47Y46Y45Y44Y43Y42Y41Y40Y39Y
38Y37Y36Y35Y34Y33Y32Y31Y30Y29Y28Y27Y26 … の[Y51〜Y26]の26ビットに相当する。式の第1項か
ら第2項を引く減算を行なうため、この26ビットデータ
と乗算器404の13ビットデータ[V38〜V26]の各ビット
の重みを合わせるために、[V38〜V26]の上位を13ビッ
トゼロ拡張し、 として の減算を行なう。
第4ステップで減算器405の出力 を乗算器410により2乗する。
第5ステップで入力レジスタ401からのデータを選択
するようにマルチプレクサ407を制御し、乗算器406に乗
算器410からの52ビットデータと入力レジスタ401からの
52ビットデータを与え、乗算を行なう。
この乗算は式 X2=X1(3−B・X1 2)/2 …… の[B×X1 2]の乗算に相当する。
第6ステップど乗算器406の出力[B・X1 2]を付加回
路408に与え、(3−B・X1 2)/2を得る。
第7ステップで付加回路408からのデータを選択する
ようにマルチプレクサ407を制御し、乗算器406に乗算器
410からの52ビットデータと反転器408からの52ビットデ
ータを与え、乗算を行なう。この乗算は式 X2=X1(3−B・X1 2)/2 …… の[X1 ×(3−B・X1 2)/2]の乗算に相当する。
この乗算結果を結果レジスタ409に出力し、平方根逆
数演算を終了する。
以上の実施例2のハードウェア量と実行時間を見積
る。まず、ROM容量は実施例1と同様、319,488ビットで
ある。また、データ転送のためのデータバスやショート
パス機構が不要になるため、平方根逆数発生装置全体と
してのハードウェアは実施例1よりも実施例2の方が小
さくなる。
実行時間も実施例1より少なくなる。まず、第1ステ
ップのROMテーブル検索には実施例と同様、1クロック
費やされるとする。第2ステップの乗算はデータ長が実
施例1の52ビット×52ビットに対し、13ビット×13ビッ
トであるため、実施例1の3クロックに対し、1クロッ
クで処理できる。第3ステップの減算は実施例1と同
様、1クロックとする。第4ステップの乗算はデータ長
が実施例1の52ビット×52ビットに対し、26ビット×26
ビットであるため、実施例1の3クロックに対し、2ク
ロックで処理できる。第5および第7ステップの乗算は
実施例1と同様、52ビット×52ビットであるため、実施
例1と同じく3クロックとする。以上の実行時間の合計
から、実施例2の平方根逆数発生装置の実行時間は11ク
ロックとなる。
このように、ハードウェアの構成を平方根逆数発生専
用にすることにより、さらに高速な平方根逆数演算が可
能となる。
〔発明の効果〕
本発明の平方根計算装置は2つのROMテーブルを使っ
てニュートン近似のための初期値を直線近似で補間する
ことにより、従来106.5Kビットの初期値ROMを使って19
クロックかかっていた平方根逆数の近似計算が319.5Kビ
ットの初期値ROMを使って14クロックで可能となり、高
速な平方根計算が実現できるという効果を持つ。
【図面の簡単な説明】
第1図は本発明の平方根計算装置の一実施例図、第2図
は本実施例の動作説明図、第3図は直線近似の説明図、
第4図は本発明の第2実施例図、第5図は従来の平方根
逆数発生装置の構成図、第6図は従来の平方根逆数発生
装置の動作説明図(ニュートン近似2回の場合)、第7
図は従来の平方根逆数発生装置の動作説明図(ニュート
ン近似1回の場合)、第8図は入力レジスタのビット番
号説明図、第9図は(3−a・b)/2を生成する付加回
路である。 101……入力レジスタ、102……ショートパス機構、103
……第2ROMテーブル、104……マルチプレクサ、105……
乗算器、106……第1ROMテーブル、107……減算器、108
……第1データバス、109……第2データバス、110……
第3データバス、111……結果レジスタ。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】所定ビット数の指数部と4nビット長の仮数
    部とによって構成される入力データを保持する入力デー
    タレジスタと、前記入力データレジスタに保持された仮
    数部の上位nビットをアドレスとして前記入力データレ
    ジスタが保持している入力データの平方根の逆数の近似
    値を2nビット長で出力する第1のROMテーブルと、前記
    入力レジスタに保持された仮数部の上位nビットをアド
    レスとして前記入力データレジスタが保持している値の
    3乗の平方根の2倍の逆数の近似値をnビット長で出力
    する第2のROMテーブルと、前記入力データレジスタに
    保持された仮数部の下位3nビットと前記第2のROMテー
    ブルの出力を乗算する乗算器と、前記第1のROMテーブ
    ルから前記乗算器の出力を減算する減算器とを備え、前
    記減算器の出力として平方根近似計算に必要な2nビット
    精度の初期値を求めることを特徴とする平方根計算装
    置。
  2. 【請求項2】前記第1のROMテーブルは2n*2nビットのR
    OMによって構成され、前記第2のROMテーブルはn*2n
    ビットのROMによって構成されていることを特徴とする
    請求項1記載の平方根計算装置。
JP2327925A 1990-11-28 1990-11-28 平方根計算装置 Expired - Fee Related JP2972326B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2327925A JP2972326B2 (ja) 1990-11-28 1990-11-28 平方根計算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2327925A JP2972326B2 (ja) 1990-11-28 1990-11-28 平方根計算装置

Publications (2)

Publication Number Publication Date
JPH04195523A JPH04195523A (ja) 1992-07-15
JP2972326B2 true JP2972326B2 (ja) 1999-11-08

Family

ID=18204538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2327925A Expired - Fee Related JP2972326B2 (ja) 1990-11-28 1990-11-28 平方根計算装置

Country Status (1)

Country Link
JP (1) JP2972326B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676535B2 (en) * 2005-09-28 2010-03-09 Intel Corporation Enhanced floating-point unit for extended functions

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6120134A (ja) * 1984-06-29 1986-01-28 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 平方根計算装置
JPS63163630A (ja) * 1986-12-26 1988-07-07 Hitachi Ltd 逆数演算方式

Also Published As

Publication number Publication date
JPH04195523A (ja) 1992-07-15

Similar Documents

Publication Publication Date Title
Lang et al. A radix-10 combinational multiplier
US6360241B1 (en) Computer method and apparatus for division and square root operations using signed digit
US5515308A (en) Floating point arithmetic unit using modified Newton-Raphson technique for division and square root
US5631859A (en) Floating point arithmetic unit having logic for quad precision arithmetic
US5245564A (en) Apparatus for multiplying operands
JPH02196328A (ja) 浮動小数点演算装置
US5184318A (en) Rectangular array signed digit multiplier
JPH07104778B2 (ja) 浮動小数点数演算処理装置
US6941334B2 (en) Higher precision divide and square root approximations
JP4273071B2 (ja) 除算・開平演算器
JP2972326B2 (ja) 平方根計算装置
JPH10143355A (ja) 種々の書式のオペランドを高効率で乗算する能力を有するマイクロプロセッサ及びその演算方法
JPH04314126A (ja) 逆数発生装置
Lang et al. Division unit for binary integer decimals
JPH04172526A (ja) 浮動小数点除算器
Choudhary et al. Comparative Analysis of Two Hardware-Based Square Root Computational Algorithms
RU2276805C2 (ru) Способ и устройство для выделения целой и дробных компонент из данных с плавающей точкой
JP2508286B2 (ja) 平方根演算装置
JPH06105421B2 (ja) 逆三角関数演算装置
Shapran et al. DIVISION USING THE BASE RADIX16 NUMBER SYSTEM TO FORM FRACTION DIGITS
Cappuccino et al. High performance VLSI modules for division and square root
JP2580413B2 (ja) 乗算処理装置
Gopal Design and performance analysis of high throughput and low latency double precision floating point division on FPGA
Al-Khateeb Design of an ALU for RNS Using CMOS Technology
JPS63254525A (ja) 除算装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees