JPH0769788B2 - 平方根演算処理方式 - Google Patents
平方根演算処理方式Info
- Publication number
- JPH0769788B2 JPH0769788B2 JP62314477A JP31447787A JPH0769788B2 JP H0769788 B2 JPH0769788 B2 JP H0769788B2 JP 62314477 A JP62314477 A JP 62314477A JP 31447787 A JP31447787 A JP 31447787A JP H0769788 B2 JPH0769788 B2 JP H0769788B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- square root
- partial
- divisor
- cycle
- 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
Links
Description
【発明の詳細な説明】 〔目次〕 概要 産業上の利用分野 従来の技術と発明が解決しようとする問題点 問題点を解決するための手段 作用 実施例 発明の効果 〔概要〕 基数2のオペランドから開平法によって平方根を求める
演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 前サイクル迄の中間結果を1ビット左シフトした結果
に、上記部分解を加えることを繰り返して平方根を求め
る平方根演算処理方式に関し、 開平法による平方根演算を、引き離し法による高基数非
回復型除算装置を用いて1演算サイクルで1桁の平方根
を得ることを目的とし、 少なくとも、除数レジスタと,除倍数回路と,該除倍数
の結果を保持する減数レジスタとを備えた高基数非回復
型除算装置に、オペランドを置数する被開平数レジスタ
と、上記置数されたオペランドを1演算サイクル毎に2
ビット左シフトして、上記高基数非回復型除算装置の部
分剰余レジスタに伝達する手段と、上記演算サイクル毎
に、上記除数レジスタを1ビット左シフトして帰還する
手段と、上記部分剰余レジスタの値から上記除数レジス
タの値を1ビット左シフトして4倍したものを減算した
ときに、加算器から得られるキャリ信号を、上記除数レ
ジスタの最下位ビットに帰還して、平方根の部分解を得
る手段と、上記演算サイクル毎に、部分剰余レジスタを
2ビット左シフトしたもの(Rn-1)と、上記減算処理に
よって得られる部分剰余(Rn)との何れかを、上記キャ
リ信号によって選択して、上記部分剰余レジスタに置数
して、当該演算サイクルでの部分剰余とする手段とを設
けて、当該高基数非回復型除算装置を用いて平方根演算
処理を行う方式において、前サイクルでの部分剰余を置
数した部分剰余レジスタから、減算すべき前サイクルの
部分中間結果である(An-1)の を生成するのに、1サイクル前の中間結果を1ビット左
シフトして‘×4'を行う第1の手段と、今回の演算サイ
クルで得られた部分解(キャリ)を1ビット左シフトし
て‘×4'を行うと同時に、該部分解(キャリ)を、上記
除数レジスタの最下位ビットに置数する第2の手段と、
上記第1の手段と第2の手段の結果を上記減数レジスタ
で合成する第3の手段と、上記演算結果であるキャリ信
号の極性に応じて、上記部分剰余レジスタの前サイクル
の結果(Rn-1)を選択するか、今回の演算によって得ら
れた部分剰余(Rn)を選択する切り替え手段とを設け
て、上記基数2のオペランドから開平法によって平方根
を求める演算式、 Rn=Rn-1−(4*An-1+1) を処理するように構成する。
演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 前サイクル迄の中間結果を1ビット左シフトした結果
に、上記部分解を加えることを繰り返して平方根を求め
る平方根演算処理方式に関し、 開平法による平方根演算を、引き離し法による高基数非
回復型除算装置を用いて1演算サイクルで1桁の平方根
を得ることを目的とし、 少なくとも、除数レジスタと,除倍数回路と,該除倍数
の結果を保持する減数レジスタとを備えた高基数非回復
型除算装置に、オペランドを置数する被開平数レジスタ
と、上記置数されたオペランドを1演算サイクル毎に2
ビット左シフトして、上記高基数非回復型除算装置の部
分剰余レジスタに伝達する手段と、上記演算サイクル毎
に、上記除数レジスタを1ビット左シフトして帰還する
手段と、上記部分剰余レジスタの値から上記除数レジス
タの値を1ビット左シフトして4倍したものを減算した
ときに、加算器から得られるキャリ信号を、上記除数レ
ジスタの最下位ビットに帰還して、平方根の部分解を得
る手段と、上記演算サイクル毎に、部分剰余レジスタを
2ビット左シフトしたもの(Rn-1)と、上記減算処理に
よって得られる部分剰余(Rn)との何れかを、上記キャ
リ信号によって選択して、上記部分剰余レジスタに置数
して、当該演算サイクルでの部分剰余とする手段とを設
けて、当該高基数非回復型除算装置を用いて平方根演算
処理を行う方式において、前サイクルでの部分剰余を置
数した部分剰余レジスタから、減算すべき前サイクルの
部分中間結果である(An-1)の を生成するのに、1サイクル前の中間結果を1ビット左
シフトして‘×4'を行う第1の手段と、今回の演算サイ
クルで得られた部分解(キャリ)を1ビット左シフトし
て‘×4'を行うと同時に、該部分解(キャリ)を、上記
除数レジスタの最下位ビットに置数する第2の手段と、
上記第1の手段と第2の手段の結果を上記減数レジスタ
で合成する第3の手段と、上記演算結果であるキャリ信
号の極性に応じて、上記部分剰余レジスタの前サイクル
の結果(Rn-1)を選択するか、今回の演算によって得ら
れた部分剰余(Rn)を選択する切り替え手段とを設け
て、上記基数2のオペランドから開平法によって平方根
を求める演算式、 Rn=Rn-1−(4*An-1+1) を処理するように構成する。
本発明は、基数2のオペランドから開平法によって平方
根を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 上記部分解を、前サイクル迄の中間結果を1ビット左シ
フトした結果に加えることを繰り返して平方根を求める
平方根演算処理方式に関する。
根を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 上記部分解を、前サイクル迄の中間結果を1ビット左シ
フトした結果に加えることを繰り返して平方根を求める
平方根演算処理方式に関する。
最近の計算機技術の進歩に伴って、該計算機によるデー
タ処理の多様化と,処理量の増加が進展し、該計算機に
対する処理能力の向上が求められており、科学技術計算
の分野で用いられる平方根演算についても、その高速化
が要求されるが、該平方根の演算を高速に処理する為
に、専用の平方根演算回路を設けることはハードウェア
量の増加が大きいことから、使用頻度の比較的少ない平
方根演算を経済的に、且つ高速に処理できる平方根演算
処理方式が求められることになる。
タ処理の多様化と,処理量の増加が進展し、該計算機に
対する処理能力の向上が求められており、科学技術計算
の分野で用いられる平方根演算についても、その高速化
が要求されるが、該平方根の演算を高速に処理する為
に、専用の平方根演算回路を設けることはハードウェア
量の増加が大きいことから、使用頻度の比較的少ない平
方根演算を経済的に、且つ高速に処理できる平方根演算
処理方式が求められることになる。
一方、平方根演算は、高基数非回復型除算装置と云っ
た、所謂引き離し法の除算方式とその手順が類似してい
ることから、例えば、上記高基数非回復型除算装置に、
該平方根演算に必要な回路を、該除算装置での除算速度
に影響を与えない方法で付加して行う平方根演算処理方
式が知られている。
た、所謂引き離し法の除算方式とその手順が類似してい
ることから、例えば、上記高基数非回復型除算装置に、
該平方根演算に必要な回路を、該除算装置での除算速度
に影響を与えない方法で付加して行う平方根演算処理方
式が知られている。
上記引き離し法の除算方式によって高速の除算を実現す
ることを目的として、除倍数を減数レジスタに置数する
形式の高基数非回復型除算装置の構成法を、本願出願者
は特開昭60-160438号公報で開示しているが、このよう
な高基数非回復型除算装置を使用して平方根演算を行う
場合、平方根の中間結果、即ち、部分解が除数レジスタ
(DSR)の最下位ビットに帰還される為、1桁の平方根
を得るのに、演算結果のキャリ信号を除数レジスタ(DS
R)にセットするサイクルと、該除数レジスタ(DSR)の
値に基づいて、除倍数×除数(具体的には、除数の4倍
数)を求めるサイクルの2演算サイクルを必要とする問
題があり、この処理を該除算方式に影響を与えることな
く1演算サイクルで行う平方根演算処理方式が平方根演
算の高速化に必要となる。
ることを目的として、除倍数を減数レジスタに置数する
形式の高基数非回復型除算装置の構成法を、本願出願者
は特開昭60-160438号公報で開示しているが、このよう
な高基数非回復型除算装置を使用して平方根演算を行う
場合、平方根の中間結果、即ち、部分解が除数レジスタ
(DSR)の最下位ビットに帰還される為、1桁の平方根
を得るのに、演算結果のキャリ信号を除数レジスタ(DS
R)にセットするサイクルと、該除数レジスタ(DSR)の
値に基づいて、除倍数×除数(具体的には、除数の4倍
数)を求めるサイクルの2演算サイクルを必要とする問
題があり、この処理を該除算方式に影響を与えることな
く1演算サイクルで行う平方根演算処理方式が平方根演
算の高速化に必要となる。
第4図は従来の平方根演算処理方式を説明する図であっ
て、(a)は除算回路を示し、(b)は該除算回路を用
いて、1演算サイクルで平方根の1桁をえる平方根演算
回路を示している。
て、(a)は除算回路を示し、(b)は該除算回路を用
いて、1演算サイクルで平方根の1桁をえる平方根演算
回路を示している。
今、平方根を求める数をXとすると、数Xと、その平方
根Qn及び剰余Rnとの間には、 X=Qn2+Rn ……(1) なる関係がある。
根Qn及び剰余Rnとの間には、 X=Qn2+Rn ……(1) なる関係がある。
(1)式に、n=1を入れると X=Q1 2+R1 R1=X−Q1 2 ここで、X=R0とすると、 R1=R0−Q1 2 平方根を浮動小数点データで表現すると、該平方根は、
仮数部と指数部とで表現される。この場合、該仮数部と
指数部とは別々に求められるので、以降での説明では説
明の便宜上、仮数部のみを取り扱い、該仮数部も、その
小数点の位置は、最上位桁の左にあるものとして説明す
る。即ち、求める平方根Qnは、 Qn=.(q1+q2+q3+〜〜qn) 但し、qi=pi2-i(p
i=0,1,2,〜n)で表されるものとする。以下、上記小
数点は省略して扱うものとする。
仮数部と指数部とで表現される。この場合、該仮数部と
指数部とは別々に求められるので、以降での説明では説
明の便宜上、仮数部のみを取り扱い、該仮数部も、その
小数点の位置は、最上位桁の左にあるものとして説明す
る。即ち、求める平方根Qnは、 Qn=.(q1+q2+q3+〜〜qn) 但し、qi=pi2-i(p
i=0,1,2,〜n)で表されるものとする。以下、上記小
数点は省略して扱うものとする。
Q1=q1であるので、 R1=R0−q1 2 ……(2) ここで、R0−q1 2=R0−p12-1 ……(3) とし、p1=1と仮定して計算し、この値が正であれば、
上記仮定は正かったものとして、そのままの値を部分剰
余R1=R0−2-1として、この値が負であると、上記仮定
は誤りであったとしてp1=0とし、p12-1を元に戻し、
部分剰余R1=R0とする。
上記仮定は正かったものとして、そのままの値を部分剰
余R1=R0−2-1として、この値が負であると、上記仮定
は誤りであったとしてp1=0とし、p12-1を元に戻し、
部分剰余R1=R0とする。
次に、上記(1)式にn=2を入れると X=Q2 2+R2 R2=X−Q2 2 R2=R0−Q2 2 ここで、Q2=q1+q2であるので、上記の式に代入する
と、(2)式を用いて R2=R0−(q1+q2)2 =R1+q1 2−(q1+q2)2 =R1+q1 2−(q1 2+2q1q2+q2 2) =R1−2q1q2−q2 2 =R1−q2(2q1+q2) ……(4) ここで、R1−q2(2q1+q2) ……(5) に対して、q2=p22-2を代入し、p2=1と仮定して計算
し、この値が正であれば、上記仮定は正かったものとし
て、そのままの値を部分剰余R2=R1−2-2(2q1+2-2)
として、この値が負であると、上記仮定は誤りであった
としてp2=0とし、2-2(2q1+2-2)を元に戻し、部分
剰余R2=R1とする。
と、(2)式を用いて R2=R0−(q1+q2)2 =R1+q1 2−(q1+q2)2 =R1+q1 2−(q1 2+2q1q2+q2 2) =R1−2q1q2−q2 2 =R1−q2(2q1+q2) ……(4) ここで、R1−q2(2q1+q2) ……(5) に対して、q2=p22-2を代入し、p2=1と仮定して計算
し、この値が正であれば、上記仮定は正かったものとし
て、そのままの値を部分剰余R2=R1−2-2(2q1+2-2)
として、この値が負であると、上記仮定は誤りであった
としてp2=0とし、2-2(2q1+2-2)を元に戻し、部分
剰余R2=R1とする。
同様にして、R3=R2−q3{2(q1+q2)+q3)} ……
(6) ここで、R2−q3{2(q1+q2)+q3)}……(7)
に対して、q3=p32-3を代入し、p3=1と仮定して計算
し、この値が正であれば、上記仮定は正かったものとし
て、そのままの値を部分剰余R3=R2−2-3{2(q1+
q2)+2-3}として、この値が負であると、上記仮定は
誤りであったとしてp3=0とし、2-3{2(q1+q2)+2
-3}を元に戻し、部分剰余R3=R2とする。
(6) ここで、R2−q3{2(q1+q2)+q3)}……(7)
に対して、q3=p32-3を代入し、p3=1と仮定して計算
し、この値が正であれば、上記仮定は正かったものとし
て、そのままの値を部分剰余R3=R2−2-3{2(q1+
q2)+2-3}として、この値が負であると、上記仮定は
誤りであったとしてp3=0とし、2-3{2(q1+q2)+2
-3}を元に戻し、部分剰余R3=R2とする。
以下同様にして、上記(1)〜(7)から、一般に、 但し、qk=pk2-k ここで、 に対して、qk=pk2-k ……(10) を代入して、pk=1と仮定して計算し、この値が正であ
れば、上記仮定は正しかたものとして、そのままの値を
部分剰余 として、この値が負であると、上記仮定は誤りであった
としてpk=0とし、 を元に戻し、部分剰余Rk=Rk-1とする。
れば、上記仮定は正しかたものとして、そのままの値を
部分剰余 として、この値が負であると、上記仮定は誤りであった
としてpk=0とし、 を元に戻し、部分剰余Rk=Rk-1とする。
このようにして、(8),(9),(10)で示した演算
をn回繰り返すことにより、 上記(11)式と、前述の(1)式とを比較することによ
り、 となり、数Xの平方根Qnを決定することができる。
をn回繰り返すことにより、 上記(11)式と、前述の(1)式とを比較することによ
り、 となり、数Xの平方根Qnを決定することができる。
つまり、平方根を求める演算が正しかったかどうかを判
定する式(9)の処理をn回計算し、各段階で判定され
たPkの列を求めれば、数Xの平方根が求まることとな
る。
定する式(9)の処理をn回計算し、各段階で判定され
たPkの列を求めれば、数Xの平方根が求まることとな
る。
然し、上記判定式(9)式を計算する回路は、各演算回
路毎に値が替わるqk=pk2-kをを代入する回路が必要と
なり、現実的ではない。
路毎に値が替わるqk=pk2-kをを代入する回路が必要と
なり、現実的ではない。
そこで、本発明では、上記(9)式を22k倍する。即
ち、上記判定式として、 を求めると、(13)式は、各演算回数毎に“1"を加算す
る回路となる。
ち、上記判定式として、 を求めると、(13)式は、各演算回数毎に“1"を加算す
る回路となる。
ここで、 とすると、前述の(10)式より、qi=pk2-iであるの
で、 Ak-1=2k-1p12-1+2k-1p22-2+……+2pk-2+pk-1=2k
-2p1+2k-3p2+……+2pk-2+pk-1 ……(15) となり、piを毎回2倍しながら加算したものであること
が分かる。
で、 Ak-1=2k-1p12-1+2k-1p22-2+……+2pk-2+pk-1=2k
-2p1+2k-3p2+……+2pk-2+pk-1 ……(15) となり、piを毎回2倍しながら加算したものであること
が分かる。
つまり、 Ak-1=2k-2p1+2k-3p2+……+2pk-2+pk-1 =2(2k-3p1+2k-4p2+……+pk-2)+pk-1 =2Ak-2+pk-1 ……(16) となる。
即ち、Ak-1を求める回路は、単に、1ビットの左シフト
回路に、pk-1を加算する回路で実現される。
回路に、pk-1を加算する回路で実現される。
ここで、上記(13)式で示した判定式 に、上記(14)式を代入すると、該k回目の判定式は、 22kRk-1−{4Ak-1+1} ……(17) となる。
ここで、Rck=22(k+1)Rk ……(18) とおくと、 Rck=2222kRk=4・22kRk ……(19) 上記(19)式に、(8)式を代入すると、 (10)式qk=pk2-kを代入すると、 ここで、 を判定式とし、pk=1と仮定して計算し、この値が正で
あれば、上記仮定は正しかったものとして、その侭の値
を部分剰余 となる。上記(19)式Rck=22(k+1)Rkより、 Rck-1=22kRk-1 が得られるので、上記部分剰余は、 が得られる。ここで、前述の(14)式を代入すると、該
部分剰余は、 Rck=4{Rck-1−(4A+1)} となり、上記の判定式の値が負であると、上記仮定は誤
りであったとして、Pk=0とし、 を元に戻し、部分剰余Rck=4Rck-1とする。即ち、部分
剰余Rckは、 となる。
あれば、上記仮定は正しかったものとして、その侭の値
を部分剰余 となる。上記(19)式Rck=22(k+1)Rkより、 Rck-1=22kRk-1 が得られるので、上記部分剰余は、 が得られる。ここで、前述の(14)式を代入すると、該
部分剰余は、 Rck=4{Rck-1−(4A+1)} となり、上記の判定式の値が負であると、上記仮定は誤
りであったとして、Pk=0とし、 を元に戻し、部分剰余Rck=4Rck-1とする。即ち、部分
剰余Rckは、 となる。
よって、上記判定式の内、 22kRk-1−{4Ak-1+1} =Rck-1−{4Ak-1+1}=C ……(21) とおき、該(21)式の計算結果であるCが正であると、
上記(12)式のPi=1として、数Xの部分平方根を求
め、この値Cを4倍(回路上では、2ビット左シフトで
実現される)したものを次の部分剰余Rckとし、上記C
が負であると、上記Pi=0として、数Xの部分平方根を
求め、該部分剰余Rck=4Rck-1とする。
上記(12)式のPi=1として、数Xの部分平方根を求
め、この値Cを4倍(回路上では、2ビット左シフトで
実現される)したものを次の部分剰余Rckとし、上記C
が負であると、上記Pi=0として、数Xの部分平方根を
求め、該部分剰余Rck=4Rck-1とする。
つまり、 C≧0であると、pk=1,Ak=2Ak-1+pk,RCk=4c C<0であると、pk=0,Ak=2Ak-1+pk,RCk=4Rck-1と
なる。
なる。
上記の(21)式は、引き離し法による除算の演算式であ
る、 R1=r・R0+m・D 但し、D=除数 r=基数 m=除倍数(部分予測商) と類似しており、該引き離し法による除算回路を用いて
平方根演算ができることが分かる。
る、 R1=r・R0+m・D 但し、D=除数 r=基数 m=除倍数(部分予測商) と類似しており、該引き離し法による除算回路を用いて
平方根演算ができることが分かる。
上記(21)式において、C=Rn、Rck-1=Rn-1、Ak-1=A
n-1とおけば、〔産業上の利用分野〕で示した、基数2
のオペランドか開平法によって平方根を求める演算式と
して挙げている Rn=Rn-1−(4*An-1+1) と一致し、且つ、上記(20)式で示し判定条件から、該
Rn<0であれば“0"を、それ以外であれば、“1"を部分
解Piとし、且つRn<0の場合には、Rn-1を、それ以外の
場合はRnを2ビット左シフトしたものを部分剰余とし、
上記部分解を、前サイクル迄の中間結果An-1を1ビット
左シフトした結果に加えることを繰り返して平方根を求
める記述と一致する。
n-1とおけば、〔産業上の利用分野〕で示した、基数2
のオペランドか開平法によって平方根を求める演算式と
して挙げている Rn=Rn-1−(4*An-1+1) と一致し、且つ、上記(20)式で示し判定条件から、該
Rn<0であれば“0"を、それ以外であれば、“1"を部分
解Piとし、且つRn<0の場合には、Rn-1を、それ以外の
場合はRnを2ビット左シフトしたものを部分剰余とし、
上記部分解を、前サイクル迄の中間結果An-1を1ビット
左シフトした結果に加えることを繰り返して平方根を求
める記述と一致する。
第4図の(a)は該除算回路の構成例を示したものであ
り、(b)は該除算回路を用いて、上記(22)式に基づ
いて平方根演算回路を構成した例を示したものである。
り、(b)は該除算回路を用いて、上記(22)式に基づ
いて平方根演算回路を構成した例を示したものである。
上記平方根演算方式の導出結果,及び構成例について
は、例えば、文献「“除算演算と平方根演算の為の共用
ハードウェア",ジョージS.テイラー著,米国電気電子工
学協会,1981,(“COMPATIBLE HARDWARE FOR DIVISION A
ND SQUARE ROOT"George S.Taylor,IEEE,1981」に示され
ているが、上記除算回路の動作については、前述の特開
昭60-160438号公報に開示されているので、ここでの説
明は省略する。又、第4図(b)の平方根演算回路の動
作については、上記文献にも示されているが、その概略
を説明すると、以下のとおりとなる。即ち、先ず、被開
平数レジスタ(SQR)6に、オペランドが置数される
と、平方根演算が開始される。
は、例えば、文献「“除算演算と平方根演算の為の共用
ハードウェア",ジョージS.テイラー著,米国電気電子工
学協会,1981,(“COMPATIBLE HARDWARE FOR DIVISION A
ND SQUARE ROOT"George S.Taylor,IEEE,1981」に示され
ているが、上記除算回路の動作については、前述の特開
昭60-160438号公報に開示されているので、ここでの説
明は省略する。又、第4図(b)の平方根演算回路の動
作については、上記文献にも示されているが、その概略
を説明すると、以下のとおりとなる。即ち、先ず、被開
平数レジスタ(SQR)6に、オペランドが置数される
と、平方根演算が開始される。
除数レジスタ(DSR)1と、演算結果レジスタ(FQR)に
は、上記平方根演算を行う場合、数Xの平方根である、
前述の(14)式で示した が、1演算サイクル毎に左シフトされて置数されてい
く。
は、上記平方根演算を行う場合、数Xの平方根である、
前述の(14)式で示した が、1演算サイクル毎に左シフトされて置数されてい
く。
除倍数回路2では、上記Ak-1*4が演算され、部分剰余
レジスタ(NMR)5に置数される部分剰余Rckとの間で、
前述の(21)式で示した RCk-1−{4Ak-1+1}=C が加算器(ADDER)4で演算され、該演算結果Cは、前
述のように2ビット左シフト、即ち、4倍されて、上記
部分剰余レジスタ(NMR)4に入力され、次の演算サイ
クルの部分剰余として使用される。
レジスタ(NMR)5に置数される部分剰余Rckとの間で、
前述の(21)式で示した RCk-1−{4Ak-1+1}=C が加算器(ADDER)4で演算され、該演算結果Cは、前
述のように2ビット左シフト、即ち、4倍されて、上記
部分剰余レジスタ(NMR)4に入力され、次の演算サイ
クルの部分剰余として使用される。
上記加算器(ADDER)4のキャリー(Carry)は、上記の
演算でのオーバフローを示しており、前述のPiそのもの
を示していることになる。即ち、該キャリー(Carry)
が“1"であると、上記Cが正であったことを示すので、
該キャリー(Carry)を、上記除数レジスタ(DSR)1
と、演算結果レジスタ(FQR)の最下位ビットに置数
し、1ビット左シフトすることで、上記 で示した平方根が生成されることになる。
演算でのオーバフローを示しており、前述のPiそのもの
を示していることになる。即ち、該キャリー(Carry)
が“1"であると、上記Cが正であったことを示すので、
該キャリー(Carry)を、上記除数レジスタ(DSR)1
と、演算結果レジスタ(FQR)の最下位ビットに置数
し、1ビット左シフトすることで、上記 で示した平方根が生成されることになる。
又、部分剰余レジスタ(NMR)4の入力側に示されてい
るセレクト回路は、上記Piが“1"(正)か“0"(負)に
よって、前述の Rck=4C(演算結果Cを4倍したもの) ……Pi=1 Rck=4Rck-1(前回の部分剰余を4倍したもの) ……Pi
=0 なる切り替えを行う回路である。
るセレクト回路は、上記Piが“1"(正)か“0"(負)に
よって、前述の Rck=4C(演算結果Cを4倍したもの) ……Pi=1 Rck=4Rck-1(前回の部分剰余を4倍したもの) ……Pi
=0 なる切り替えを行う回路である。
尚、本平方根演算回路においては、上記平方根の小数点
位置(前述のように、平方根は1演算毎に左シフトされ
るので、最下位にある)と、オペランドの小数点位置
(最上位にある)とが異なるので、その位置を合わせる
必要があるが、その為には、部分剰余レジスタ(NMR)
5と、除倍数回路(×4)2と、上記加算器(ADDER)
4は、2倍長とする必要がある。
位置(前述のように、平方根は1演算毎に左シフトされ
るので、最下位にある)と、オペランドの小数点位置
(最上位にある)とが異なるので、その位置を合わせる
必要があるが、その為には、部分剰余レジスタ(NMR)
5と、除倍数回路(×4)2と、上記加算器(ADDER)
4は、2倍長とする必要がある。
然しながら、実際の演算においては、上記除倍数回路
(×4)2の下位半分は全“0"であるので、上記加算器
(ADDER)4の下位半分は不要となる。従って、図示さ
れているように、被開平数レジスタ(SQR)6と、部分
剰余レジスタ(NMR)5とを直列に接続して2倍長の部
分剰余レジスタを構成し、オペランドを、その下半分の
被開平数レジスタ(SQR)6にのみ置数して、1演算毎
に、2ビット左シフトすることで、等価的に2倍長の部
分剰余レジスタとして動作させることができる。
(×4)2の下位半分は全“0"であるので、上記加算器
(ADDER)4の下位半分は不要となる。従って、図示さ
れているように、被開平数レジスタ(SQR)6と、部分
剰余レジスタ(NMR)5とを直列に接続して2倍長の部
分剰余レジスタを構成し、オペランドを、その下半分の
被開平数レジスタ(SQR)6にのみ置数して、1演算毎
に、2ビット左シフトすることで、等価的に2倍長の部
分剰余レジスタとして動作させることができる。
上記のように動作するので、第4図(a)に示した除算
回路に若干の回路を付加するのみで、平方根演算を行う
ことができる平方根演算回路を構築することができる。
本図からも明らかな如く、この除算方式においては、除
倍数×除数(mD)を置数する為の減数レジスタ(SR)を
持っていない為、除算での1演算サイクルに必要な時間
が長くなると云う問題がある。
回路に若干の回路を付加するのみで、平方根演算を行う
ことができる平方根演算回路を構築することができる。
本図からも明らかな如く、この除算方式においては、除
倍数×除数(mD)を置数する為の減数レジスタ(SR)を
持っていない為、除算での1演算サイクルに必要な時間
が長くなると云う問題がある。
そこで、本願出願者は、除数(D)は最初に一度除数レ
ジスタ(DSR)に置数すると、該除算の演算が終了する
迄変化することがないことに着目して、除倍数×除数
(mD)を置数する為の減数レジスタ(SR1,2,3)を設け
て、1演算サイクルタイムを短くして高速の除算を行う
ことができる高基数非回復型除算装置を、前述の特開昭
60-160438号公報に開示している。
ジスタ(DSR)に置数すると、該除算の演算が終了する
迄変化することがないことに着目して、除倍数×除数
(mD)を置数する為の減数レジスタ(SR1,2,3)を設け
て、1演算サイクルタイムを短くして高速の除算を行う
ことができる高基数非回復型除算装置を、前述の特開昭
60-160438号公報に開示している。
この方式においては、上記除倍数×除数(mD)の全ての
ケースを予め計算して、減数レジスタ(SR1〜3)に置
数できるようにしておき、各演算サイクルにおいて出力
される部分商予測値mによって、その一つを選択し、該
減数レジスタ(SR1〜3)に置数することで、1演算サ
イクルタイムを短くして、且つ該1演算サイクルタイム
で1桁の除算結果を得るものである。
ケースを予め計算して、減数レジスタ(SR1〜3)に置
数できるようにしておき、各演算サイクルにおいて出力
される部分商予測値mによって、その一つを選択し、該
減数レジスタ(SR1〜3)に置数することで、1演算サ
イクルタイムを短くして、且つ該1演算サイクルタイム
で1桁の除算結果を得るものである。
然しながら、この高基数非回復型除算装置を用いて、上
記開平法による平方根演算を行う場合には、該除算装置
の加算回路のキャリとして得られる1桁の部分解を、当
該除算回路の除数レジスタ(DSR)の最下位ビットに帰
還して更新する必要がある為、前述の、基数2のオペラ
ンドから開平法によって平方根を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り(Rc), An-1:前サイクル迄の中間結果(a) を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 上記部分解を、前サイクル迄の中間結果を1ビット左シ
フトした結果に加えることを繰り返して平方根を求める
演算を行おうとすると、「4*An-1」を減数レジスタ
(SR1〜3)に置数するサイクルと、該置数された「4
*An-1」を用いて前サイクルの部分剰余「Rn-1」から減
算するサイクルの2サイクルを必要とし、当該高速化さ
れた高基数非回復型除算装置を用いて平方根演算を行う
場合には高速化できないと云う問題があった。
記開平法による平方根演算を行う場合には、該除算装置
の加算回路のキャリとして得られる1桁の部分解を、当
該除算回路の除数レジスタ(DSR)の最下位ビットに帰
還して更新する必要がある為、前述の、基数2のオペラ
ンドから開平法によって平方根を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り(Rc), An-1:前サイクル迄の中間結果(a) を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 上記部分解を、前サイクル迄の中間結果を1ビット左シ
フトした結果に加えることを繰り返して平方根を求める
演算を行おうとすると、「4*An-1」を減数レジスタ
(SR1〜3)に置数するサイクルと、該置数された「4
*An-1」を用いて前サイクルの部分剰余「Rn-1」から減
算するサイクルの2サイクルを必要とし、当該高速化さ
れた高基数非回復型除算装置を用いて平方根演算を行う
場合には高速化できないと云う問題があった。
本発明は上記従来の欠点に鑑み、除倍数×除数(mD)の
結果を、そのサイクルで得られる部分商予測値mに基づ
いて選択し、減数レジスタ(SR1〜3)に置数する方式
の高基数非回復型除算装置を用いて、基数2のオペラン
ドから開平法によって平方根を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り(Rc) An-1:前サイクル迄の中間結果(a) の演算を1演算サイクルで行うことで、1桁の平方根
(部分解)を1演算サイクルで得る平方根演算処理方式
を提供することを目的とするものである。
結果を、そのサイクルで得られる部分商予測値mに基づ
いて選択し、減数レジスタ(SR1〜3)に置数する方式
の高基数非回復型除算装置を用いて、基数2のオペラン
ドから開平法によって平方根を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り(Rc) An-1:前サイクル迄の中間結果(a) の演算を1演算サイクルで行うことで、1桁の平方根
(部分解)を1演算サイクルで得る平方根演算処理方式
を提供することを目的とするものである。
第1図は本発明の平方根演算処理方式の原理図である。
上記の問題点は、下記の如くに構成された平方根演算処
理方式によって解決される。
理方式によって解決される。
基数2のオペランドから開平法によって平方根を求める
演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 上記部分解を、前サイクル迄の中間結果を1ビット左シ
フトした結果に加えることを繰り返して平方根を求める
のに、 少なくとも、除数レジスタ1と,除倍数回路2と,該除
倍数×除数の結果を保持する減数レジスタ3とを備えた
高基数非回復型除算装置に、オペランドを置数する被開
平数レジスタ(SQR)6と、 上記置数されたオペランドを1演算サイクル毎に2ビッ
ト左シフトして、上記高基数非回復型除算装置の部分剰
余レジスタ(PR)5に伝達する手段と、 上記演算サイクル毎に、上記除数レジスタ(DSR)1を
1ビット左シフトして帰還する手段と、 該部分剰余レジスタ(PR)5の値から上記除数レジスタ
(DSR)1の値を1ビット左シフトして4倍したものを
減算したときに、加算器(ADD)4から得られるキャリ
信号(CARRY)を、上記除数レジスタ(DSR)1の最下位
ビットに帰還して、平方根の部分解を得る手段と、 上記演算サイクル毎に、部分剰余レジスタ(PR)5を2
ビット左シフトしたもの(Rn-1)と、上記減算処理によ
って得られる部分剰余(Rn)との何れかを、上記キャリ
信号(CARRY)の値によって選択して、上記部分剰余レ
ジスタ5に置数し、当該演算サイクルでの部分剰余とす
る手段とを設けて、 当該高基数非回復型除算装置を用いて平方根演算処理を
行う方式において、 上記オペランドの上位2ビットを置数した部分剰余レジ
スタ(PR)5から減算すべき前サイクルの部分中間結果
(An-1)の を生成するのに、 1サイクル前の中間結果(An-1)(DSR)1を1ビット
左シフトして‘×4'を行う第1の手段と、 今回の演算サイクルで得られた部分解(キャリ)を1ビ
ット左シフトして‘×4'を行うと同時に、該部分解(キ
ャリ)を、上記除数レジスタ(DSR)1の最下位ビット
に置数する第2の手段と、 上記第1の手段と第2の手段の結果を上記減数レジスタ
(SR3)3で合成する第3の手段と、 上記演算結果であるキャリ信号(CARRY)の値に応じ
て、上記部分剰余レジスタ(PR)5の前サイクルの結果
(Rn-1)を選択するか、今回の演算によって得られた部
分剰余(Rn)を選択する切り替え手段とを設けて、 上記基数2のオペランドから開平法によって平方根を求
める演算式、 Rn=Rn-1−(4*An-1+1) を処理するように構成する。
演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 上記部分解を、前サイクル迄の中間結果を1ビット左シ
フトした結果に加えることを繰り返して平方根を求める
のに、 少なくとも、除数レジスタ1と,除倍数回路2と,該除
倍数×除数の結果を保持する減数レジスタ3とを備えた
高基数非回復型除算装置に、オペランドを置数する被開
平数レジスタ(SQR)6と、 上記置数されたオペランドを1演算サイクル毎に2ビッ
ト左シフトして、上記高基数非回復型除算装置の部分剰
余レジスタ(PR)5に伝達する手段と、 上記演算サイクル毎に、上記除数レジスタ(DSR)1を
1ビット左シフトして帰還する手段と、 該部分剰余レジスタ(PR)5の値から上記除数レジスタ
(DSR)1の値を1ビット左シフトして4倍したものを
減算したときに、加算器(ADD)4から得られるキャリ
信号(CARRY)を、上記除数レジスタ(DSR)1の最下位
ビットに帰還して、平方根の部分解を得る手段と、 上記演算サイクル毎に、部分剰余レジスタ(PR)5を2
ビット左シフトしたもの(Rn-1)と、上記減算処理によ
って得られる部分剰余(Rn)との何れかを、上記キャリ
信号(CARRY)の値によって選択して、上記部分剰余レ
ジスタ5に置数し、当該演算サイクルでの部分剰余とす
る手段とを設けて、 当該高基数非回復型除算装置を用いて平方根演算処理を
行う方式において、 上記オペランドの上位2ビットを置数した部分剰余レジ
スタ(PR)5から減算すべき前サイクルの部分中間結果
(An-1)の を生成するのに、 1サイクル前の中間結果(An-1)(DSR)1を1ビット
左シフトして‘×4'を行う第1の手段と、 今回の演算サイクルで得られた部分解(キャリ)を1ビ
ット左シフトして‘×4'を行うと同時に、該部分解(キ
ャリ)を、上記除数レジスタ(DSR)1の最下位ビット
に置数する第2の手段と、 上記第1の手段と第2の手段の結果を上記減数レジスタ
(SR3)3で合成する第3の手段と、 上記演算結果であるキャリ信号(CARRY)の値に応じ
て、上記部分剰余レジスタ(PR)5の前サイクルの結果
(Rn-1)を選択するか、今回の演算によって得られた部
分剰余(Rn)を選択する切り替え手段とを設けて、 上記基数2のオペランドから開平法によって平方根を求
める演算式、 Rn=Rn-1−(4*An-1+1) を処理するように構成する。
即ち、本発明によれば、基数2のオペランドから開平法
によって平方根を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 上記部分解を、前サイクル迄の中間結果を1ビット左シ
フトした結果に加えることを繰り返して平方根を求める
方式である。
によって平方根を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 上記部分解を、前サイクル迄の中間結果を1ビット左シ
フトした結果に加えることを繰り返して平方根を求める
方式である。
上記の演算式における減算を補数を用いた加算に書き替
えると、 となる。
えると、 となる。
この加算を行うのに必要な を求める場合、従来方式においては、除数レジスタを1
ビット左シフトすると同時に、該平方根演算で求めた部
分解であるキャリ信号(CARRY)を、1ビット左シフト
した上記除数レジスタ(DSR)の最下位ビットに帰還し
て更新し、該更新した除数レジスタ(DSR)の1の補数
をとったものを4倍して、減数レジスタ(SR3)にセッ
トする処理となる為、1桁の部分解を得るのに2演算サ
イクルを必要としている。
ビット左シフトすると同時に、該平方根演算で求めた部
分解であるキャリ信号(CARRY)を、1ビット左シフト
した上記除数レジスタ(DSR)の最下位ビットに帰還し
て更新し、該更新した除数レジスタ(DSR)の1の補数
をとったものを4倍して、減数レジスタ(SR3)にセッ
トする処理となる為、1桁の部分解を得るのに2演算サ
イクルを必要としている。
そこで、本発明においては、減数レジスタ(SR3)にセ
ットする値を上記更新した除数レジスタ(DSR)からで
はなく、更新前、即ち、前サイクルの除数レジスタ(DS
R)の値を1ビット左シフト(即ち、2倍)したものの
4倍したもの(従って、8倍したもの)の1の補数をと
ったものと、当該演算サイクルで得られた部分解{キャ
リ信号(CARRY)}を8倍、即ち、3ビット左シフトし
たものの1の補数をとったものとを、該減数レジスタに
セットするようにする。
ットする値を上記更新した除数レジスタ(DSR)からで
はなく、更新前、即ち、前サイクルの除数レジスタ(DS
R)の値を1ビット左シフト(即ち、2倍)したものの
4倍したもの(従って、8倍したもの)の1の補数をと
ったものと、当該演算サイクルで得られた部分解{キャ
リ信号(CARRY)}を8倍、即ち、3ビット左シフトし
たものの1の補数をとったものとを、該減数レジスタに
セットするようにする。
第3図は本発明による の演算方式を説明する図であって、(a)は除数レジス
タ(DSR)にキャリ信号(CARRY)を帰還した後におい
て、1の補数をとる場合を示しており、(b)は上記の
本発明による の処理方式(即ち、1演算サイクルで求める方式)を示
しており、両者とも同じ結果が得られることが分かる。
タ(DSR)にキャリ信号(CARRY)を帰還した後におい
て、1の補数をとる場合を示しており、(b)は上記の
本発明による の処理方式(即ち、1演算サイクルで求める方式)を示
しており、両者とも同じ結果が得られることが分かる。
従って、本発明においては、減数レジスタを備えた引き
離し法による除算装置を用いて平方根演算を行う際に必
要な、 Rn=Rn-1−(4*An-1+1) なる演算を1演算サイクルで実行でき、最小限のハード
ウェアを付加するだけで、高速の平方根演算処理方式が
実現できる効果がある。
離し法による除算装置を用いて平方根演算を行う際に必
要な、 Rn=Rn-1−(4*An-1+1) なる演算を1演算サイクルで実行でき、最小限のハード
ウェアを付加するだけで、高速の平方根演算処理方式が
実現できる効果がある。
以下本発明の実施例を図面によって詳述する。
前述の第1図が本発明の平方根演算処理方式の原理図で
あり、第2図は本発明の一実施例を模式的に示した図で
あって、第1図,第2図における被開平レジスタ(SQ
R)6,除数レジスタ(DSR)1を1ビット左シフト(1 bi
t-LEFT-SHIFT)する手段,部分剰余レジスタ(PR)5
を2ビット左シフト(2 bit-LEFT-SHIFT)する手段,
加算器(ADD)4からのキャリ信号(CARRY)と、前サイ
クルの除数レジスタ(DSR)とを用いて、 を減数レジスタ(SR3)3で合成する手段,及び該キ
ャリ信号(CARRY)の値によって、部分剰余レジスタ(P
R)5にセットする部分剰余を選択する手段が本発明
を実施するのに必要な手段である。尚、全図を通して、
同じ符号は同じ対象物を示している。
あり、第2図は本発明の一実施例を模式的に示した図で
あって、第1図,第2図における被開平レジスタ(SQ
R)6,除数レジスタ(DSR)1を1ビット左シフト(1 bi
t-LEFT-SHIFT)する手段,部分剰余レジスタ(PR)5
を2ビット左シフト(2 bit-LEFT-SHIFT)する手段,
加算器(ADD)4からのキャリ信号(CARRY)と、前サイ
クルの除数レジスタ(DSR)とを用いて、 を減数レジスタ(SR3)3で合成する手段,及び該キ
ャリ信号(CARRY)の値によって、部分剰余レジスタ(P
R)5にセットする部分剰余を選択する手段が本発明
を実施するのに必要な手段である。尚、全図を通して、
同じ符号は同じ対象物を示している。
以下、第1図〜第3図を用いて、本発明による平方根演
算処理方式を説明する。
算処理方式を説明する。
本発明を実施しても、引き離し法による除算装置を用い
て平方根を求める基本的な動作は従来方式と特に変わる
ことはないので省略し、ここでは、前述の基数2の開平
演算式、 で必要となる を1演算サイクルで求める処理を中心にして、第2図を
用いて説明する。
て平方根を求める基本的な動作は従来方式と特に変わる
ことはないので省略し、ここでは、前述の基数2の開平
演算式、 で必要となる を1演算サイクルで求める処理を中心にして、第2図を
用いて説明する。
先ず、第2図に示した#0サイクルにおいて、オペラン
ドが被開平レジスタ(SQR)6にセットされると共に、
除数レジスタ(DSR)1,減数レジスタ(SR1〜3)3,部分
剰余レジスタ(PR)5が、それぞれクリア(‘0'セッ
ト)される。
ドが被開平レジスタ(SQR)6にセットされると共に、
除数レジスタ(DSR)1,減数レジスタ(SR1〜3)3,部分
剰余レジスタ(PR)5が、それぞれクリア(‘0'セッ
ト)される。
続いて、同じサイクルにおいて、被開平レジスタ(SQ
R)6の上位2ビットが最初の平方根を求めるのに、部
分剰余レジスタ(PR)5の最下位2ビットに伝達され
ると共に、該被開平レジスタ(SQR)6の最下位2ビッ
トに‘00'が挿入される。
R)6の上位2ビットが最初の平方根を求めるのに、部
分剰余レジスタ(PR)5の最下位2ビットに伝達され
ると共に、該被開平レジスタ(SQR)6の最下位2ビッ
トに‘00'が挿入される。
又、除数レジスタ(DSR)1の1の補数をとったものを
3ビットシフト、即ち、上記開平演算式に必要な を求める為の4倍と、1演算処理が行われる毎に、得ら
れた平方根(キャリ)が該除数レジスタ(DSR)1の最
下位1ビットに置数する為に、該除数レジスタ(DSR)
1を1ビット左シフト、即ち、2倍との合計8倍する必
要がある為に、3ビット左シフト(これを、本図におい
ては、 で示している)して減数レジスタ(SR3)3にセットす
る。
3ビットシフト、即ち、上記開平演算式に必要な を求める為の4倍と、1演算処理が行われる毎に、得ら
れた平方根(キャリ)が該除数レジスタ(DSR)1の最
下位1ビットに置数する為に、該除数レジスタ(DSR)
1を1ビット左シフト、即ち、2倍との合計8倍する必
要がある為に、3ビット左シフト(これを、本図におい
ては、 で示している)して減数レジスタ(SR3)3にセットす
る。
以下、1演算サイクルでの動作を詳細に説明する。
(1)上記式の を行う為に、減数レジスタ(SR3)3と、部分剰余レジ
スタ(PR)5が加算器(ADD)4において加算される。
スタ(PR)5が加算器(ADD)4において加算される。
(2)除数レジスタ(DSR)1は左に1ビットシフト
され、その最下位ビットに上記の加算結果のキャリ(CA
RRY)がシフトイン(CARRY SHIFT-IN C)される。
され、その最下位ビットに上記の加算結果のキャリ(CA
RRY)がシフトイン(CARRY SHIFT-IN C)される。
ここでは、前述のように、補数の加算によって減算を行
っているので、該減数の結果が正の場合には、キャリ
(CARRY)が‘1'となるため、該キャリ(CARRY)の値が
その儘部分解となる。
っているので、該減数の結果が正の場合には、キャリ
(CARRY)が‘1'となるため、該キャリ(CARRY)の値が
その儘部分解となる。
従って、減数レジスタ(SR3)3にセットする場合に
は、その1の補数をとった‘’を入力する 必要がある。
は、その1の補数をとった‘’を入力する 必要がある。
(3)減数レジスタ(SR3)3には、前サイクルの除数
レジスタ(DSR)1の1の補数を左に3ビットシフトし
たもの をセットし、最下位から3ビット目に、上記キャリの1
の補数‘’をセットし、下位2ビットには、‘00'の
1の補数である‘11'をセット(SHIFT-IN)する。{第
3図(b)参照} ここで、除数レジスタ(DSR)1の1の補数を3ビット
シフトするのは、前述のように、現サイクルにおける1
ビットシフトと、その結果を更に、4倍するための2ビ
ットシフトを合わせたものである。
レジスタ(DSR)1の1の補数を左に3ビットシフトし
たもの をセットし、最下位から3ビット目に、上記キャリの1
の補数‘’をセットし、下位2ビットには、‘00'の
1の補数である‘11'をセット(SHIFT-IN)する。{第
3図(b)参照} ここで、除数レジスタ(DSR)1の1の補数を3ビット
シフトするのは、前述のように、現サイクルにおける1
ビットシフトと、その結果を更に、4倍するための2ビ
ットシフトを合わせたものである。
(4)部分剰余レジスタ(PR)5は演算結果であるキャ
リ(CARRY)の値によって、次の2通りのセットが行わ
れる。
リ(CARRY)の値によって、次の2通りのセットが行わ
れる。
該キャリ(CARRY)が‘1'であれば、加算器(ADD)4の
結果が2ビット左シフトされ(#2サイクル参照)、
該シフト後の下位2ビットに、被開平数レジスタ(SQ
R)6の上位2ビットがシフトインされる。
結果が2ビット左シフトされ(#2サイクル参照)、
該シフト後の下位2ビットに、被開平数レジスタ(SQ
R)6の上位2ビットがシフトインされる。
該キャリ(CARRY)が‘0'であれば、前サイクルの部分
剰余レジスタ(PR)5が2ビット左シフトされて、該
シフト後の下位2ビットに、被開平数レジスタ(SQR)
6の上位2ビットがシフトインされる。
剰余レジスタ(PR)5が2ビット左シフトされて、該
シフト後の下位2ビットに、被開平数レジスタ(SQR)
6の上位2ビットがシフトインされる。
以下、同じ動作が#1〜の各サイクル毎に、除数レジス
タ(DSR)1に、上記加算器(ADD)4のキャリ(CARR
Y)信号がシフトイン(CARRY SHIFT-IN Cで示す)され
て保持されていく中間結果が必要な桁数になる迄繰り返
される。
タ(DSR)1に、上記加算器(ADD)4のキャリ(CARR
Y)信号がシフトイン(CARRY SHIFT-IN Cで示す)され
て保持されていく中間結果が必要な桁数になる迄繰り返
される。
このように、本発明による平方根演算処理方式を用いれ
ば、減数レジスタ(SR1〜3)3を備えた高速度の除算
装置を共用した開平演算回路で、1サイクル毎に1ビッ
トの部分解を求めることができる。
ば、減数レジスタ(SR1〜3)3を備えた高速度の除算
装置を共用した開平演算回路で、1サイクル毎に1ビッ
トの部分解を求めることができる。
このように、本発明は、引き離し法による、例えば、高
基数非回復型除算装置での除算方式と、平方根の演算方
式とが類似していることに着目し、該除算回路に最小限
のハードウェアを付加して、平方根演算を行う方式にお
いて、該除算回路が除倍数×除数(mD)を減数レジスタ
(SR1〜3)に置数する形式の場合、除数レジスタ(DS
R)に開平結果である加算器(ADD)のキャリ信号(CARR
Y)を帰還した後、該減数レジスタ(SR1〜3)への置数
処理が通常2演算サイクル必要となる処理を、1演算サ
イクルでできるように、前サイクルでの除数レジスタ
(DSR)の1の補数をとって、3ビット左シフトしたも
のと、該演算結果であるキャリ信号(CARRY)の1の補
数をとって3ビット左シフトしたものとを減数レジスタ
(SR3)で合成すると共に、次の演算の為に該キャリ信
号(CARRY)を除数レジスタ(DSR)の最下位ビットに帰
還するようにした所に特徴がある。
基数非回復型除算装置での除算方式と、平方根の演算方
式とが類似していることに着目し、該除算回路に最小限
のハードウェアを付加して、平方根演算を行う方式にお
いて、該除算回路が除倍数×除数(mD)を減数レジスタ
(SR1〜3)に置数する形式の場合、除数レジスタ(DS
R)に開平結果である加算器(ADD)のキャリ信号(CARR
Y)を帰還した後、該減数レジスタ(SR1〜3)への置数
処理が通常2演算サイクル必要となる処理を、1演算サ
イクルでできるように、前サイクルでの除数レジスタ
(DSR)の1の補数をとって、3ビット左シフトしたも
のと、該演算結果であるキャリ信号(CARRY)の1の補
数をとって3ビット左シフトしたものとを減数レジスタ
(SR3)で合成すると共に、次の演算の為に該キャリ信
号(CARRY)を除数レジスタ(DSR)の最下位ビットに帰
還するようにした所に特徴がある。
以上、詳細に説明したように、本発明の平方根演算処理
方式は、基数2のオペランドから開平法によって平方根
を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 上記部分解を、前サイクル迄の中間結果を1ビット左シ
フトした結果に加えることを繰り返して平方根を求める
方式において、 上記減算を補数を用いた加算に書き替えると、 となることから、この加算を行うのに必要な、 を求めるのに、減数レジスタ(SR3)にセットする値
を、演算結果によって更新した除数レジスタ(DSR)か
らではなく、更新前、即ち、前サイクルの除数レジスタ
(DSR)の値を1ビット左シフト(即ち、2倍)したも
のの4倍したものの1の補数をとったものと、当該演算
サイクルで得られた部分解{キャリ信号(CARRY)}を
8倍、即ち、3ビット左シフトしたものの1の補数をと
ったものとを、該減数レジスタにセットするようにした
ものであるので、減数レジスタを備えた引き離し法によ
る除算装置を用いて平方根演算を行う際に必要な、 Rn=Rn-1−(4*An-1+1) なる演算を1演算サイクルで実行でき、最小限のハード
ウェアを付加するだけで、高速の平方根演算処理方式が
実現できる効果がある。
方式は、基数2のオペランドから開平法によって平方根
を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 上記部分解を、前サイクル迄の中間結果を1ビット左シ
フトした結果に加えることを繰り返して平方根を求める
方式において、 上記減算を補数を用いた加算に書き替えると、 となることから、この加算を行うのに必要な、 を求めるのに、減数レジスタ(SR3)にセットする値
を、演算結果によって更新した除数レジスタ(DSR)か
らではなく、更新前、即ち、前サイクルの除数レジスタ
(DSR)の値を1ビット左シフト(即ち、2倍)したも
のの4倍したものの1の補数をとったものと、当該演算
サイクルで得られた部分解{キャリ信号(CARRY)}を
8倍、即ち、3ビット左シフトしたものの1の補数をと
ったものとを、該減数レジスタにセットするようにした
ものであるので、減数レジスタを備えた引き離し法によ
る除算装置を用いて平方根演算を行う際に必要な、 Rn=Rn-1−(4*An-1+1) なる演算を1演算サイクルで実行でき、最小限のハード
ウェアを付加するだけで、高速の平方根演算処理方式が
実現できる効果がある。
第1図は本発明による平方根演算処理方式の原理図, 第2図は本発明の一実施例を模式的に示した図, 第3図は本発明による の演算方式を説明する図, 第4図は従来の平方根演算処理方式を説明する図, である。 図面において、 1は除数レジスタ(DSR),2は除倍数回路,3は減数レジ
スタ(SR1〜3),4は加算器(ADD),5は部分剰余レジス
タ(PR),6は被開平数レジスタ(SQR),〜はシフ
ト等の動作,CARRYはキャリ信号(C),又は部分解,を
それぞれ示す。
スタ(SR1〜3),4は加算器(ADD),5は部分剰余レジス
タ(PR),6は被開平数レジスタ(SQR),〜はシフ
ト等の動作,CARRYはキャリ信号(C),又は部分解,を
それぞれ示す。
Claims (1)
- 【請求項1】基数2のオペランドから開平法によって平
方根を求める演算式 Rn=Rn-1−(4*An-1+1) 但し、Rn-1:前サイクルでの余り An-1:前サイクル迄の中間結果 を計算し、Rn<0であれば‘0'を、それ以外であれば
‘1'を部分解とし、且つ、Rn<0の場合にはRn-1を、そ
れ以外の場合はRnを2ビット左シフトしたものを部分剰
余とし、 前サイクル迄の中間結果を1ビット左シフトした結果
に、上記部分解を加えることを繰り返して平方根を求め
るのに、 少なくとも、除数レジスタ(1)と,除倍数回路(2)
と,該除倍数の結果を保持する減数レジスタ(3)とを
備えた高基数非回復型除算装置に、オペランドを置数す
る被開平数レジスタ(6)と、 上記置数されたオペランドを1演算サイクル毎に2ビッ
ト左シフトして、上記高基数非回復型除算装置の部分剰
余レジスタ(5)に伝達する手段()と、 上記演算サイクル毎に、上記除数レジスタ(1)を1ビ
ット左シフトして帰還する手段()と、 上記部分剰余レジスタ(5)の値から上記除数レジスタ
(1)の値を1ビット左シフトして4倍したものを減算
したときに、加算器(4)から得られるキャリ信号を、
上記除数レジスタ(1)の最下位ビットに帰還して、平
方根の部分解を得る手段()と、 上記演算サイクル毎に、部分剰余レジスタ(5)を2ビ
ット左シフト()したもの(Rn-1)と、上記減算処理
によって得られる部分剰余(Rn)との何れかを、上記キ
ャリ信号の値によって選択して、上記部分剰余レジスタ
(5)に置数し、当該演算サイクルでの部分剰余とする
手段()とを設けて、 当該高基数非回復型除算装置を用いて平方根演算処理を
行う方式において、 前サイクルでの部分剰余を置数した部分剰余レジスタ
(5)から減算すべき前サイクルの部分中間結果(A
n-1)の を生成するのに、 1サイクル前の中間結果(1)を1ビット左シフトし
て、‘×4'を行う第1の手段と、 今回の演算サイクルで得られた部分解(キャリ)を1ビ
ット左シフトして‘×4'を行うと同時に、該部分解(キ
ャリ)を、上記除数レジスタ(1)の最下位ビットに置
数する第2の手段と、 上記第1の手段と第2の手段の結果を上記減数レジスタ
(3)で合成する第3の手段と、 上記演算結果であるキャリ信号の極性に応じて、上記部
分剰余レジスタ(5)の前サイクルの結果(Rn-1)を選
択するか、今回の演算によって得られた部分剰余(Rn)
を選択する切り替え手段()とを設けて、 上記基数2のオペランドから開平法によって平方根を求
める演算式、 Rn=Rn-1−(4*An-1+1) を処理することを特徴とする平方根演算処理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62314477A JPH0769788B2 (ja) | 1987-12-11 | 1987-12-11 | 平方根演算処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62314477A JPH0769788B2 (ja) | 1987-12-11 | 1987-12-11 | 平方根演算処理方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01155435A JPH01155435A (ja) | 1989-06-19 |
| JPH0769788B2 true JPH0769788B2 (ja) | 1995-07-31 |
Family
ID=18053792
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62314477A Expired - Fee Related JPH0769788B2 (ja) | 1987-12-11 | 1987-12-11 | 平方根演算処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0769788B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6820107B1 (en) | 1997-05-08 | 2004-11-16 | Renesas Technology Corporation | Square root extraction circuit and floating-point square root extraction device |
-
1987
- 1987-12-11 JP JP62314477A patent/JPH0769788B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH01155435A (ja) | 1989-06-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CA1231455A (en) | Nonrestoring divider | |
| EP0149248A2 (en) | Method and apparatus for division using interpolation approximation | |
| US8639737B2 (en) | Method to compute an approximation to the reciprocal of the square root of a floating point number in IEEE format | |
| 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 | |
| US8060551B2 (en) | Method and apparatus for integer division | |
| JPH04283831A (ja) | 除算器 | |
| JPH05250146A (ja) | 整数累乗処理を行なうための回路及び方法 | |
| JP2502836B2 (ja) | 除算回路の前処理装置 | |
| US11494165B2 (en) | Arithmetic circuit for performing product-sum arithmetic | |
| KR102208274B1 (ko) | 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛 | |
| JPH0346024A (ja) | 浮動小数点演算器 | |
| JPH0769788B2 (ja) | 平方根演算処理方式 | |
| JP2777265B2 (ja) | 高基数開平演算装置 | |
| US3757097A (en) | Ediate arithmetic results extra bit for floating decimal control and correction of false interm | |
| JP3517162B2 (ja) | 除算・開平演算装置 | |
| JP2803442B2 (ja) | 開平装置 | |
| JP3477866B2 (ja) | 除算器の除算方法 | |
| JPS6155691B2 (ja) | ||
| JPH0427587B2 (ja) | ||
| JP2607759B2 (ja) | 除算器 | |
| JPH0368415B2 (ja) | ||
| JPS61118835A (ja) | ハ−ドウエア除算器 | |
| JP2001243051A (ja) | 除算器 | |
| JP3656699B2 (ja) | 除算器 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |