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

平方根演算装置

Info

Publication number
JPH0635679A
JPH0635679A JP5094722A JP9472293A JPH0635679A JP H0635679 A JPH0635679 A JP H0635679A JP 5094722 A JP5094722 A JP 5094722A JP 9472293 A JP9472293 A JP 9472293A JP H0635679 A JPH0635679 A JP H0635679A
Authority
JP
Japan
Prior art keywords
divisor
partial
quotient
circuit
value
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
JP5094722A
Other languages
English (en)
Inventor
Toshimitsu Nagata
敏光 永田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP5094722A priority Critical patent/JPH0635679A/ja
Publication of JPH0635679A publication Critical patent/JPH0635679A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】平方根を算出する演算装置に関し、除算器に補
正回路を付加することにより、平方根の演算を高速化す
ることを目的とする。 【構成】除数レジスタ12と、部分剰余レジスタ16と、部
分商予測回路21と、部分商補正回路23と、除倍数生成回
路19と、部分剰余演算回路20とを備え、一度に複数ビッ
トの部分商を求める除算器1において、オペランドから
平方根の上位桁の値を予測して除数レジスタ12に設定す
る初期値設定回路2と、前の演算サイクルで求めた商の
2倍に今回予測した部分商を加え、その値に今回予測し
た部分商を掛けた値を補正された除倍数とする除倍数補
正回路3と、演算サイクル毎に、部分商補正回路23によ
って補正された部分商によって除数レジスタの除数を補
正する除数補正回路4とを備えるように構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、平方根を算出する演算
装置に関する。
【0002】
【従来の技術】従来の平方根の算出を行なう演算装置
は、平方根の計算方法に従って、根を1ビットずつ求め
るものであった。
【0003】
【発明が解決しようとする課題】従って、従来の技術に
よれば計算時間が長いという問題がある。本発明は除算
器に補正回路を付加することにより、複数ビットを同時
に計算でき、平方根の演算を高速化した演算装置を実現
することを目的としている。
【0004】
【課題を解決するための手段】平方根は、次に示すよう
に、商と除数とが同値になるような、除算における1つ
の特殊解とみなすことができる。
【0005】Z:被除数(平方根を求めるもとの数) X:商(平方根) Y:除数 として、 Z=X・Y ・・(1) X=Z/Y ・・(2) 平方根は(2)式において、商と除数が同値(X=Y)
となるような除算における1つの特殊な解である。この
ことを利用して、近年複数ビットを同時処理することに
より高速化されている除算器を用いて平方根を求める。
【0006】図1に本発明の原理ブロック図を示す。除
数レジスタ12と、部分剰余レジスタ16と、部分商予測回
路21と、部分商補正回路23と、除倍数生成回路19と、部
分剰余演算回路20とを備え、一度に複数ビットの部分商
を求める除算器1において、オペランドから除数の初期
値と最初の除倍数とを生成する初期値設定回路2と、除
算器1の除倍数生成回路19の生成値を補正する除倍数補
正回路3と、除算器1の除数レジスタ12の値を部分商補
正回路23で補正された部分商で補正する除数補正回路4
とを設ける。
【0007】初期値設定回路2は、入力されたオペラン
ドから平方根の上位桁の値を予測して除数レジスタ12に
設定し、かつ、その内の部分商生成ビット数分の上位桁
の値の自乗を生成して部分剰余演算回路20に入力する。
除数レジスタ12に設定する桁数は、除算器の部分商の予
測に必要な上位の桁数分である。
【0008】除倍数補正回路3は、最初の演算サイクル
では、初期値設定回路2から与えられた、部分商生成ビ
ット数分の上位桁の値の自乗値を補正された除倍数とし
て、部分剰余演算回路20に入力し、2回目以後の演算サ
イクルでは、その前の演算サイクルで求めた中間商の2
倍に今回予測した部分商を加え、その値に今回予測した
部分商を掛けた値を補正された除倍数として、部分剰余
演算回路20に入力する。
【0009】部分剰余演算回路20は、部分剰余レジスタ
16にある、前の演算サイクルで得られた部分剰余からこ
の補正された除倍数を減算した値を新たな部分剰余とし
て部分剰余レジスタ16にセットする。
【0010】除数補正回路4は、演算サイクル毎に、部
分商補正回路23によって補正された部分商によって除数
レジスタ12の除数を補正する(新しい除数すなわち商を
生成する)ように構成する。
【0011】なお、除倍数補正回路3は、後述の(1
6)’式により、2回目以後の演算サイクルでは、その
前の演算サイクルで求めた中間商と今回予測した部分商
とを掛けた値を2倍した値と、今回予測した部分商の自
乗との和を補正された除倍数としてもよい。
【0012】また、後述の(16)”式により、2回目以
後の演算サイクルでは、その前の演算サイクルで求めた
中間商に今回予測した部分商を加え、今回予測した部分
商を掛けてこれを2倍した値から今回予測した部分商の
自乗を引いた値を用いても上述した値と同じになる。
【0013】
【作用】以下に図2に示すように、オペランドZの、 Z=(A・163 +B・162 +C・161 +D)2 となる16進4桁(4Digit,16bit)の平方根 X=A・163 +B・162 +C・161 +D の各桁の数A,B,C,Dを求める場合を例にとり説明
する。 除算器でX=Z/Yを行なうときと同様に、最初に被
除数Zを最初の部分剰余として設定する。 R0=Z 除算においては、部分商を予測し除数との積(除倍数)
を求め、それを部分剰余から減算して新しい部分剰余を
求め、また、その正負により予測した部分商の補正を行
なう。これを桁毎に繰り返し、所定の桁数の処理をして
終了する。平方根を求める場合に当てはめると、以下の
ようになる。
【0014】除算では除数は固定値であるが、平方根演
算では除数と商が等しいので、新たに部分商を求める毎
に除数を補正する。 最上位桁Aを求めたときの部分剰余R1は、 R1=Z−(A・163 )2 =Z−A2 ・166 ・・(3) 第2位の桁Bを求めたときの部分剰余R2は、 R2=Z−(A・163 +B・162 )2 =Z−(A2 ・166 +2AB・165 +B2 ・164 ) =R1−(2A・163 ・B・162 +B2 ・164 ) ・・(4)’ =R1−(2A・163 +B・162 ) B・162 ・・(4) 第3位の桁Cを求めたときの部分剰余R3は、 R3=Z−(A・163 +B・162 +C・161 )2 =Z−(A2 ・166 +B2 ・164 +C2 ・162 +2AB・165 +2AC・164 +2BC・163 ) =Z−(A2 ・166 +2AB・165 +B2 ・164 ) −(2AC・164 +2BC・163 +C2 ・162 ) =R2−〔2(A・163 +B・162 ) ・C・16+C2 ・162 〕 ・(5)’ =R2−〔2(A・163 +B・162 ) +C・16〕C・16 ・・(5) 第4位の桁Dを求めたときの部分剰余は同様にして、 R4=Z−(A2 ・166 +B2 ・164 +C・161 +D)2 =R3−〔2AD・163 +2BD・162 +2CD・16+D2 〕 =R3−〔2(A・163 +B・162 +C・16) ・D+D2 〕 ・・(6)’ =R3−〔2(A・163 +B・162 +C・16) +D〕D ・・(6) ここで、R4を例にとると前の演算サイクルまでに求め
た中間商は、A・163+B・162 +C・16であり、今回
予測した部分商はDである。すなわち、前の演算サイク
ルまでに求めた中間商の2倍に今回予測した部分商を加
えたものを除数とみなし、それに今回予測した部分商を
掛けたものを除倍数とすれば除算と同じ操作となる。
【0015】なお、(4)〜(6)式は、次のように変
形することもできる。 R2=R1−〔2(A・163 +B・162 )B・162 −B2 ・164 〕・・(4)” R3=R2−〔2(A・163 +B・162 +C・16) ・C・16−C2 ・162 〕 ・・(5)” R4=R3−〔2(A・163 +B・162 +C・16+D) ・D−D2 〕 ・・(6)” 除倍数を(6)’式または(6)”式によって生成する
ようにしても同じ結果をうる。
【0016】以上を一般化すると以下に示すとおりであ
る。オペランドZ、その平方根Xは、 r:基数 k:指数 x:平方根の仮数 z:オペラン
ドの仮数 とすると、 Z=X2 =(x・rk )2 =x2 ・r2k と表され、 ・・(11) Z=z・r2k とおくと、z=x2 である。 ・・(12) ここで、 z=(A・r-1+B・r-2+・・+M・r-(n-1)+N・r-n)2 となるzの平方根 x =A・r-1+B・r-2+・・+M・r-(n-1)+N・r-n の各桁の数A,B,・・M,Nを求める場合を考える
と、R0=zとして、最上位桁Aを求めたときの部分剰
余R1は、 R1=z−(A・r-1)2 ・・(13) 第2位の桁Bを求めたときの部分剰余R2は、 R2=z−(A・r-1+B・r-2)2 =z−〔(A・r-1)2 +2(A・r-1)・(B・r-2) +(B・r-2)2 〕 =R1−(2A・r-1+B・r-2)・(B・r-2) ・・(14) 第3位の桁Cを求めたときの部分剰余R3は、 R3=z−(A・r-1+B・r-2+C・r-3)2 =R2−〔2(A・r-1+B・r-2)+C・r-3〕・C・r-3 ・・(15) 一般に、第j位の桁Jを求めたときの部分剰余Rjは、 Rj=z−〔A・r-1+B・r-2+・・+I・r-(j-1)+J・r-j〕2 =Rj-1 −〔2(A・r-1+B・r-2+・・+I・r-(j-1))+J・r-j〕 ・J・r-j ここで、前の演算サイクルでの中間商を x’=(A・r-1+B・r-2+・・+I・r-(j-1)) とすると、 Rj=Rj-1 −〔2x’+J・r-j〕・J・r-j〕 ・・(16) となる。
【0017】(16)式に示すように、また、(4)〜
(6)式においても示されているように、部分剰余Rj
は、前の演算サイクルで求めた、中間商x’の2倍に今
回予測した部分商J・r-jを加え、それに今回予測した
部分商J・r-jを掛けた値を前のサイクルの部分剰余R
j-1 より引いた値となる。すなわち、中間商x’の2倍
に今回予測した部分商J・r-jを加えたものを除数とみ
なせば、除算における、部分商を予測して除倍数を生成
し、それを順次減じて部分剰余を求める処理と同じであ
る。
【0018】従って、平方根の計算は、除算において、
平方根の上位の桁を予測して除数の初期値として与え、
各演算サイクルの部分剰余を計算するにあたっては、最
初の演算サイクルは(13)式に示す演算を、その後の演
算サイクルについては(16)式による演算を行ない、各
演算サイクルで中間商を求める度にそれを新たな除数と
すればよい。
【0019】除数として与える初期値は、除算器におい
て部分商の予測を行なうに充分なだけの桁数の上位桁の
値を与える。各演算サイクルにおける部分商の予測およ
び補正は除算における公知の処理である。
【0020】浮動小数点数の場合、仮数部は以上によっ
て求められるが、指数部については、(11)式に示され
るように偶数となるように桁合わせされているオペラン
ドの指数(2k)の2分の1を平方根の指数(k)とす
ればよい。
【0021】なお、(16)式の展開を変えて、 Rj=Rj-1 −〔2x’・J・r-j+(J・r-j)2 〕 ・・(16)’ Rj=Rj-1 −〔2(x’+J・r-j)・J・r-j−(J・r-j)2 〕 ・・(16)” とすることもできる。これらは(6)’式、(6)”式
に対応する。
【0022】以上のように、従来の除算処理に対して、
除数の初期値の生成と、除倍数の補正と、部分商を求め
る毎の除数の補正とを追加することにより平方根を高速
に求めることができる。
【0023】
【実施例】以下、図面を参照して浮動小数点数の平方根
を求める実施例を説明する。図3は本発明の実施例の要
部の構成を示すブロック図である。基本の構成は図1の
原理ブロック図に示すように、除算器に、除数の初期値
を予測して設定する初期値設定回路2と、被除数(部分
剰余)を算出するための補正された除倍数を生成する除
倍数補正回路3と、演算サイクル毎に除数を補正する除
数補正回路4を設けたものである。除倍数補正回路3は
新たに設けた除数変形回路18と元の除倍数生成回路19と
で構成する。本実施例は浮動少数点演算であるので、部
分剰余レジスタ16、除数レジスタ12等は仮数部を扱い、
他に指数を扱うレジスタ14、15とその制御回路を付加し
ている。
【0024】除算器1の構成について説明する。被除数
入力端10からはオペランドを被除数として与える。除数
入力端11は割算のときは除数を与えるところである。し
かし、平方根を求める場合は除数は与えられないので関
係はない。代わりに初期値設定回路2により上位桁の予
測値を除数として設定する。
【0025】12は除数レジスタで、除数として入力され
たデータを保持する。16は部分剰余レジスタで、最初は
オペランドを、その後は演算サイクル毎の部分剰余を格
納するレジスタである。これらは除数、被除数の仮数部
を保持するもので、指数部はそれぞれレジスタ14、15に
保持する。19は除倍数生成回路で、除数と予測された部
分商の積を生成する。部分剰余演算回路20は新たな被除
数つまり部分剰余を演算するもので、前のサイクルの部
分剰余を部分剰余レジスタ16より入力し、この部分剰余
から除倍数生成回路19で算出した除倍数を減算する。こ
の出力は部分剰余レジスタ16に新たな部分剰余として格
納されると共に次の部分商を予測するのに用いられる。
【0026】部分商予測回路21には除数と部分剰余演算
回路20からの部分剰余が入力されており新しい部分商を
予測する。この新しい部分商はレジスタ22に保持され
る。23はこの新しい部分商を補正する回路で、この部分
商が大きすぎた場合に補正する。レジスタ24はこの補正
された最終部分商を格納する結果レジスタである。
【0027】次に平方根を求める動作を図4を参照して
説明する。入力されたオペランドZ(平方根を求めたい
数)は被除数として部分剰余レジスタ16に仮数部 X`CA0
D1F'(および15に指数X`6')が格納され最初の剰余R0
となる (注:X`n'は16進数表現) 。このとき、(11)式
に示すように指数が偶数で、少数点が最上位有効桁の左
または右になるように正規化しておく。初期値設定回路
2はオペランドの仮数部zから、平方根の上位桁の値、
X`E3' を生成して初期値として除数レジスタ12にセット
する。また、その内の上位4ビットの値の自乗値(X`E')
2 も生成して部分剰余演算回路20に与える。
【0028】部分剰余演算回路20で(13)式に基づく演
算を行い、部分剰余R1を得る。以後の演算サイクルで
は、順次部分商 X`3',X`6',X`E',X`7',X`B',が予測さ
れ、除倍数補正回路3内の除数変形回路18と除倍数生成
回路19に入力される。除数変形回路18は除数レジスタ12
の上位の内容を1ビット左シフトして(すなわち前サイ
クルで得た除数すなわち中間商を2倍して)予測部分商
を付加して、除倍数生成回路19に入力する。ここで除数
レジスタの内容はすでに確定した上位桁以外は意味をも
たないので予測部分商はその下位桁を入替えればよく、
加算する必要はない。除倍数生成回路19はこの値に予測
部分商を掛けることにより除倍数を生成するので、これ
により補正された除倍数が得られる。そして部分剰余演
算回路20により演算すると、順次、(16)式に基づいた
部分剰余R2 〜R6 を得る。
【0029】部分商予測回路21で求めた部分商は、必要
があれば部分商補正回路23で補正する。部分商補正は除
算器の公知技術である。除数補正回路4は、補正された
部分商を除数レジスタ12の対応する桁に挿入する。これ
により除数レジスタの内容は中間商となり、結果レジス
タ24の内容と同じく、演算サイクルが終わる毎に更新さ
れ、真の平方根に近づく。
【0030】所定の桁数の演算がおわれば演算は終了す
る。指数は1/2すればよく、図の例では X`3' とな
る。本実施例は16進数の演算として説明したが、2進数
としても同じであり、浮動小数点数の表現形式をIEEE形
式等に合わせて構成することは容易である。
【0031】なお、除倍数補正回路は、(16)’式、ま
たは(16)”式に基づいた補正を行なう回路として構成
してもよい。
【0032】
【発明の効果】以上説明したように、本発明によれば除
算器をベースにして簡単な回路を追加することにより、
高速平方根演算器を実現することができる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図である。
【図2】4桁の平方根を有する数の構成を示す図であ
る。
【図3】本発明の平方根演算器の実施例の要部の構成ブ
ロック図である。
【図4】実施例の平方根演算器の動作説明図である。
【符号の説明】
1 除算器 2 初期値設定回路 3 除倍数補正回路 4 除数補正回路 10 被除数入力端 11 除数入力端 12 除数レジスタ 16 部分剰余レジスタ 18 除数変形回路 19 除倍数生成回路 20 部分剰余演算回路 21 部分商予測回路 22 予測商レジスタ 23 部分商補正回路 24 結果レジスタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 除数レジスタ(12)と、部分剰余レジス
    タ(16)と、部分商予測回路(21)と、部分商補正回路
    (23)と、除倍数生成回路(19)と、部分剰余演算回路
    (20)とを備え、一度に複数ビットの部分商を求める除
    算器(1)において、 オペランドから除数の初期値と最初の除倍数とを生成す
    る初期値設定回路(2)と、 除算器(1)の除倍数生成回路(19)の生成値を補正す
    る除倍数補正回路(3)と、 除算器(1)の除数レジスタ(12)の値を補正する除数
    補正回路(4)とを設け、 初期値設定回路(2)は、入力されたオペランドから平
    方根の上位桁の値を除算器(1)の部分商予測に必要な
    桁数分予測して除数レジスタ(12)に設定し、かつ、そ
    の内の部分商生成ビット数分の上位桁の値の自乗を生成
    して部分剰余演算回路(20)に入力し、 除倍数補正回路(3)は、最初の演算サイクルでは、初
    期値設定回路(2)から与えられた、部分商生成ビット
    数分の上位桁の値の自乗値を、補正された除倍数として
    部分剰余演算回路(20)に入力し、2回目以後の演算サ
    イクルでは、その前の演算サイクルで求めた中間商の2
    倍に今回予測した部分商を加え、その値に今回予測した
    部分商を掛けた値を、補正された除倍数として部分剰余
    演算回路(20)に入力し、 部分剰余演算回路(20)は、部分剰余レジスタ(16)に
    ある前の演算サイクルで得られた部分剰余からこの補正
    された除倍数を引いた値を新たな部分剰余として部分剰
    余レジスタ(16)にセットし、 除数補正回路(4)は、演算サイクル毎に、部分商補正
    回路(23)によって補正された部分商によって除数レジ
    スタの除数を補正するように構成したことを特徴とする
    平方根演算装置。
  2. 【請求項2】 除倍数補正回路(3)は、2回目以後の
    演算サイクルでは、その前の演算サイクルで求めた中間
    商と今回予測した部分商とを掛けた値を2倍した値と、
    今回予測した部分商の自乗との和を補正された除倍数と
    するように構成したことを特徴とする請求項1に記載の
    平方根演算装置。
  3. 【請求項3】 除倍数補正回路(3)は、2回目以後の
    演算サイクルでは、その前の演算サイクルで求めた中間
    商と今回予測した部分商との和に今回予測した部分商を
    掛けた値を2倍した値より今回予測した部分商の自乗を
    引いた値を補正された除倍数とするように構成したこと
    を特徴とする請求項1に記載の平方根演算装置。
JP5094722A 1992-05-20 1993-04-22 平方根演算装置 Pending JPH0635679A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5094722A JPH0635679A (ja) 1992-05-20 1993-04-22 平方根演算装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4-127235 1992-05-20
JP12723592 1992-05-20
JP5094722A JPH0635679A (ja) 1992-05-20 1993-04-22 平方根演算装置

Publications (1)

Publication Number Publication Date
JPH0635679A true JPH0635679A (ja) 1994-02-10

Family

ID=26435980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5094722A Pending JPH0635679A (ja) 1992-05-20 1993-04-22 平方根演算装置

Country Status (1)

Country Link
JP (1) JPH0635679A (ja)

Similar Documents

Publication Publication Date Title
EP0149248B1 (en) Method and apparatus for division using interpolation approximation
US6360241B1 (en) Computer method and apparatus for division and square root operations using signed digit
US8229993B2 (en) Method for performing decimal division
KR20010014992A (ko) 고차 기수 제산기 및 그 방법
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JP4273071B2 (ja) 除算・開平演算器
JPH0687219B2 (ja) 制御方法
JP2578482B2 (ja) 浮動小数点演算器
JP2972326B2 (ja) 平方根計算装置
JP2777265B2 (ja) 高基数開平演算装置
JP2761145B2 (ja) 開平演算装置
JPH08202533A (ja) 除算処理装置
JP4428778B2 (ja) 演算装置及び演算方法並びに計算装置
JPH06180640A (ja) 除算装置及び方法
JPH08249161A (ja) 立方根演算装置
SU1056183A1 (ru) Устройство дл делени чисел
JPH11203110A (ja) 除算器
JPS60129834A (ja) 乗除算器
JPH0769785B2 (ja) 除算装置
JPH0769788B2 (ja) 平方根演算処理方式
JPH05216626A (ja) 乗算器
JPH0754458B2 (ja) 乗算回路
KR20000074611A (ko) 하이 래딕스 플로팅 포인트 제산기
JPS6175431A (ja) 演算装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20030311