JP2508286B2 - 平方根演算装置 - Google Patents

平方根演算装置

Info

Publication number
JP2508286B2
JP2508286B2 JP21226089A JP21226089A JP2508286B2 JP 2508286 B2 JP2508286 B2 JP 2508286B2 JP 21226089 A JP21226089 A JP 21226089A JP 21226089 A JP21226089 A JP 21226089A JP 2508286 B2 JP2508286 B2 JP 2508286B2
Authority
JP
Japan
Prior art keywords
square root
register
value
calculation
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 - Lifetime
Application number
JP21226089A
Other languages
English (en)
Other versions
JPH0375927A (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 JP21226089A priority Critical patent/JP2508286B2/ja
Publication of JPH0375927A publication Critical patent/JPH0375927A/ja
Application granted granted Critical
Publication of JP2508286B2 publication Critical patent/JP2508286B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は計算機における平方根の演算装置に関する。
〔従来の技術〕
一般に、平方根の演算機能は、数値計算を行う計算機
において是非とも備えなければならない機能の一つであ
る。
従来、マイクロプログラム制御の計算機では、平方根
は二分法によって行なわれていた。この二分法はn桁の
平方根を得るために、加減算をシフトなどの演算をn回
繰り返す必要がある。そのため、二分法には演算時間が
長くなるという欠点があった。
また、高速な乗除算器を持つ計算機では、New−ton法
を用いた逐次近似によって平方根を求めることが多い。
以下、このNewton法について説明する。
まず、aの平方根 は、f(x)=x2−a=0の解であることからNewton法
を用いると、初期値xmから近似値xm+1は以下のように求
まる。ここで、aは1/4≦a<1の範囲を満たすものと
する。
xm+1=xm−f(xm)/f′(xm) =xm−(xm 2−a)/(2×xm) =(1/2)×(xm+a/xm) …(1) 初期値xmの近似値である。Newton法の2乗収束の性質より、xm+1
で2n桁の精度を期待するならばn桁の精度のxmを用意
し、(1)式の除算と加算を2n桁の精度で演算すればよ
いことが知られている。よって、適当な初期値x0を用意
し、式(1)の処理をm=0,1,2,…,M−1と繰り返すこ
とにより、希望の精度の近似値xmが得られる。この方式
では、除算1回と加算1回を要する(1)式の演算を数
回繰り返す必要があるため、演算時間を短くするには精
度の良い初期値x0を用意することが重要である。
そこで、平方根の高速演算が重要な計算機では初期値
x0として、あらかじめ計算された のテーブルROMを用意し、(1)式の計算回数を1回に
する方式が採用されている。
このテーブルROMは、2n桁の入力値aをn桁ずつに分
離した上位n桁をアドレスとし、2n桁の近似値 を出力する。このxmでaを除算し、xmを加算し、さらに
定数1/2を乗じる(または、1ビット右にシフトする)
ことによって、(1)式のxm+1が得られる。
かかるテーブルROMを使用しても、平方根の演算時間
は、テーブル検索,除算,加算の演算時間の和である。
一般的に除算は演算時間が長いため、上述の方式では演
算時間の短縮は困難である。また、平方根の演算機能を
LSI化したい場合、除算機能をLSI上に取込むとチップ上
で大きな面積を必要とするため、上記Newton法も好まし
くない。
そこで、除算を避けるために(1)式を変形して、 xm+1=(1/2)×〔xm+(1/xm)×a〕 …(2) とし、テーブルROMに を追加すると、乗算1回と加算1回の演算ですむ。
ところが、 の方のテーブルROMは2n桁の出力を要し、乗算の精度が2
n桁を必要とする。更に、LSI化する場合には、2n×2nビ
ットの乗算器をチップ内に必要としている。
〔発明が解決しようとする課題〕
上述した従来の平方根演算装置には、以下の問題点が
ある。
すなわち、第一には演算時間が長いという問題があ
る。
(1)式の演算には、テーブル検索が1回、除算が1
回,加算が1回必要である。しかも、テーブル検索,除
算,および加算は並列に演算できないため、逐次的に演
算するしかなく、演算時間はこれらの実行時間の和にな
る。
また、第二にはハードウェアが大規模になり、チップ
面積を増大させるという問題がある。
(1)式の除算は、2n桁の精度で行なう必要がある。
つまり、2n桁×2n桁の除算器が必要になるので、LSI化
する上で面積の増大をまねく。
更に、(2)式の計算では、テーブルROMをn×2nビ
ットのものと、2n×2nビットのものの2組が必要な上、
2n×2nビットの乗算器が必要なため、前述の除算器と同
様に、LSI化する上で面積の増大をまねく。
本発明の目的は、かかる演算時間の短縮とチップ面積
の増大を防止することのできる平方根演算装置を提供す
ることにある。
〔課題を解決するための手段〕
本発明の平方根演算装置は、初期値を上位桁Hと下位
桁Lに分割する分割手段と、前記分割手段から上記桁H
を入力し予め計算された上位桁の平方根 の値を出力するメモリと、前記分解手段の下位桁Lおよ
び前記メモリの 出力の乗算を行なう乗算器と、前記メモリの平方根 の値および前記乗算器の出力値を加算する加算器とを備
えることを特徴としている。
〔作用〕
次に、本発明の平方根演算原理を説明するが、ここで
は2n桁の2進数で表現されたaから、2n桁の平方根 を求めることを考える。
先ず、aをn桁ずつ上位桁Hと下位桁Lに分割する。
ただし、ak={1,0} 1/4≦a<1 ここで、(1)式で初期値 とすることにより、平方根 は、 となる。
かかる(3)式において、Hを入力とし、 を出力とするテーブルROMを用意すると、乗算1回と加
算1回で が得られる。
また、H<1,L<2-nであるので、(3)式の第2項の
演算精度はn桁でよい。すなわち、 に2桁の精度を得るためには、2n桁×2n語の テーブルと、n桁×2n語の テーブルと、 テーブル出力n桁とLのn桁を乗算する乗算器と、 テーブル出力2n桁に乗算結果の上位n桁を加算する加算
器を必要とする。
〔実施例〕
次に、本発明の実施例について図面を参照して説明す
る。
第1図は本発明の第一の実施例を示す平方根演算装置
のブロック図である。
第1図に示すように、本実施例は、変数aを入力する
2nビットのレジスタ1と、分割器によりレジスタ1から
出力される上位n桁信号Hを制御信号に基づき平方根 の値に変換して記憶する2nビット×2n+1語のROM2と、RO
M2の出力値を保持する2nビットのレジスタ3と、レジス
タ1の下位n桁信号Lおよびレジスタ3の上位n桁を出
力する信号8の積を演算するn×nビットの乗算器4
と、乗算器4の出力2nビットのうち上位nビットを保持
するレジスタ5と、レジスタ5の値を下位nビットとし
て出力し且つ上位nビットはゼロを出力する2nビットの
信号9をレジスタ3の値に加算する2nビットの加算器6
と、加算器6の出力、すなわち平方根 を保持する2nビットのレジスタ7とを有している。尚、
上述したROM2へ入力する制御信号はROM2の出力が かを指定する1ビットの制御信号である。
また、上述したレジスタ1,3,7では、小数点をMSBの上
に置いた固定小数点数を扱い、レジスタ1上のaは、1/
4≦a<1を満たすものとする。
第2図は第1図に示す演算装置の平方根の演算処理を
説明するためのフロー図である。
第2図に示すように、まず第一のステップS1では、レ
ジスタ1に指定されたaの値の上位桁H信号をアドレス
としてROM2から の値を取り出し、レジスタ3に保持する。次に、第二の
ステップS2では、乗算器4によって の上位桁信号8とaの下位桁L信号を乗算し、積の上位
桁をレジスタ5に保持する。同時に、レジスタ1に設定
されたaの値の上位桁H信号をアドレスとしてROM2から の値を取り出し、レジスタ3に保持する。更に、第三の
ステップS3では、レジスタ3からの の値およびレジスタ5の値を加算器6で加算し、レジス
タ7に保持する。
このように、レジスタ1上の値aからレジスタ7上の
平方根 が3つのステップで得られる。
すなわち、本実施例の平方根演算装置は、3ステップ
で演算を行ない、1ステップの処理時間はテーブルROM2
の読み出し時間,乗算時間,加算時間のうち、最も長い
時間となる。従って、本実施例では、乗算とテーブルの
読み出しを並行して行なうことにより、演算時間を短縮
している。
また、本実施例の演算手段は、テーブルROM2と、乗算
器4と、加算器6だけあるので、ハードウェア構成が小
規模である。
すなわち、従来のNewton法による演算装置は、2nビッ
ト×2nビットの除算器または乗算器が必要であったが、
本実施例による演算装置はnビット×nビットの乗算器
でよい。これにより、乗算器の面積は従来例の約1/4に
なる。
更に、本実施例では従来例とは別に のテーブルROMが必要であるが、LSI化を考慮すると、乗
算器よりもテーブルROMの方が小面積且つ容易に設計で
きるので、テーブルROMの面積増加は大きな問題となら
ない。
第3図は本発明の第二の実施例を示す平方根演算装置
のブロック図である。
第3図に示すように、本実施例は平方根 と、 とのテーブルROMを独立に持ち、平方根 を演算する装置である。
すなわち、本実施例は、変換aを入力する2nビットの
レジスタ1と、レジスタ1から出力される上位n桁信号
Hに基づき平方根 の値を記憶する2ビット×2n語のROM2Aおよび の値を記憶するnビット×2n語のROM2Bと、レジスタ1
から出力される下位n桁信号LとROM2Bの の積を演算するn×nビットの乗算器4と、乗算器4の
出力2nビットのうち上位nビットを下位nビットして形
成される信号10およびROM2Aの値を加算する2nビットの
加算器6と、加算器6の出力値を保持する2nビットのレ
ジスタ7とを有している。
かかる本実施例の平方根演算装置におけるレジスタ1,
ROM2Aおよび2B,乗算器4,加算器6では、小数点がMSBの
上に置いた固定小数点数を扱うものとする。
先ず、レジスタ1上に、1/4≦a<1を満たすaの値
を与える。すると、その出力には分割器によりaの値を
上位および下位に分割したHおよびL信号が出力され
る。この信号Hをアドレスとして、ROM2Aからは が、またROM2Bからは の値がそれぞれ出力される。乗算器4では、ROM2Bの出
力およびレジスタ1の下位L信号 の演算が行なわれる。また、加算器6ではROM2Aからの
出力 および乗算器4の出力に基づく信号 の加算が行われ、レジスタ7に平方根 の値が出力される。
このように、本実施例では、aの平方根 を1ステップで演算することができるので、演算時間は
テーブル検索1回,乗算1回および加算1回に要する時
間の和になる。
上述した第二の実施例の変形を以下に説明する。
ROM2A,2Bは同一のアドレス信号Hでアクセスされるの
で、3nビット×2n語のROMとしても実現できる。また、
乗算器4を桁上げ保存加算器と桁上げ伝播加算器で構成
する場合は、桁上げ伝播加算器を加算器6で代用する
と、演算時間が短くなり、ハードウェア量も減少する。
また、ROM2A,2Bと、信号Lの出力側とにレジスタを挿
入することにより、パイプライン方式の演算装置が実現
できる。このパイプライン方式では、テーブル乗算およ
び加算を行なっている期間に、次の平方根 の演算のためのテーブルROM検索を行うことができる。
そのため、大量の配列データ{ai}に対して を求める場合に、演算時間を第二の実施例の約半分にす
ることができる。
以上、第二の実施例について説明したが、本実施例は
1ステップで演算を行ない、また1ステップの処理時間
はテーブルROMの読み出し時間,乗算時間,加算時間の
和になるので、2つのテーブルの読み出しを同時に行う
ことにより、演算時間を短縮することができる。またハ
ードウェア構成を小規模化し、チップ面積の増大を防止
できることは、前述した第一の実施例と同様である。
要するに、上述した2つの実施例は初期値aに対し のテーブルを持ち、テーブル検索を2回,乗算を1回,
加算を1回実行し、除算を行なわずに初期値aの平方根 を求めるので演算時間は短縮される。
また、従来の平方根演算装置は2n桁の演算精度を得る
ために、 の除算あるいは乗算を2n桁の精度で行なう必要があった
のに対し、本実施例ではn桁の精度の乗算を行なえばよ
いので、チップ面積の増大をまねくこともない。
〔発明の効果〕
以上説明したように、本発明の平方根演算装置は、演
算時間が短くなる上、演算ハードウェアが小規模化でき
るという効果がある。
【図面の簡単な説明】
第1図は本発明の第一の実施例を示す平方根演算装置の
ブロック図、第2図は第1図に示す演算装置の平方根の
演算処理を説明するためのフロー図、第3図は本発明の
第二の実施例を示す平方根演算装置のブロック図であ
る。 1,3,5,7……レジスタ、2,2A,2B……ROM、4……乗算
器、6……加算器。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】初期値を上位桁Hと下位桁Lに分割する分
    割手段と、前記分割手段から上位桁Hを入力し予め計算
    された上位桁の平方根 の値を出力するメモリと、前記分割手段の下位桁Lおよ
    び前記メモリの 出力の乗算を行なう乗算器と、前記メモリの平方根 の値および前記乗算器の出力値を加算する加算器とを備
    えることを特徴とする平方根演算装置。
JP21226089A 1989-08-18 1989-08-18 平方根演算装置 Expired - Lifetime JP2508286B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21226089A JP2508286B2 (ja) 1989-08-18 1989-08-18 平方根演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21226089A JP2508286B2 (ja) 1989-08-18 1989-08-18 平方根演算装置

Publications (2)

Publication Number Publication Date
JPH0375927A JPH0375927A (ja) 1991-03-29
JP2508286B2 true JP2508286B2 (ja) 1996-06-19

Family

ID=16619632

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21226089A Expired - Lifetime JP2508286B2 (ja) 1989-08-18 1989-08-18 平方根演算装置

Country Status (1)

Country Link
JP (1) JP2508286B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010058521A1 (ja) * 2008-11-19 2010-05-27 日本電気株式会社 平方根演算装置及び方法、並びに平方根演算プログラム

Also Published As

Publication number Publication date
JPH0375927A (ja) 1991-03-29

Similar Documents

Publication Publication Date Title
US5726924A (en) Exponentiation circuit utilizing shift means and method of using same
US6138135A (en) Propagating NaNs during high precision calculations using lesser precision hardware
JPS6347874A (ja) 算術演算装置
JPH0612229A (ja) 乗累算回路
JPH03204720A (ja) 初等関数演算装置
JPH07168697A (ja) 倍精度除算回路および方法
JPS62175866A (ja) シグナルプロセツサ
de Lassus Saint-Geniès et al. Exact lookup tables for the evaluation of trigonometric and hyperbolic functions
JP2822399B2 (ja) 対数関数演算装置
KR970006408B1 (ko) 논리회로의 자동설계방법 및 그 장치와 승산기
JP2508286B2 (ja) 平方根演算装置
Hass Synthesizing optimal fixed-point arithmetic for embedded signal processing
JPH0831024B2 (ja) 演算プロセッサ
JP2578482B2 (ja) 浮動小数点演算器
JPH04172526A (ja) 浮動小数点除算器
JPH06105421B2 (ja) 逆三角関数演算装置
JP2972326B2 (ja) 平方根計算装置
JPH0585924B2 (ja)
Ahari Computer Arithmetic in modern computers and usages of Computer Arithmetic
Lloris Ruiz et al. Multiplication
JP3105577B2 (ja) 分割積型乗算装置
JP2605792B2 (ja) 演算処理装置
KR940008610B1 (ko) 고속 수렴 인자 결정 방법 및 프로세서
JP3226823B2 (ja) 高精度高桁乗算装置
Lloris Ruiz et al. Number Systems