JP2622896B2 - 除算装置 - Google Patents

除算装置

Info

Publication number
JP2622896B2
JP2622896B2 JP2214344A JP21434490A JP2622896B2 JP 2622896 B2 JP2622896 B2 JP 2622896B2 JP 2214344 A JP2214344 A JP 2214344A JP 21434490 A JP21434490 A JP 21434490A JP 2622896 B2 JP2622896 B2 JP 2622896B2
Authority
JP
Japan
Prior art keywords
partial
quotient
last
carry
multiplying
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
JP2214344A
Other languages
English (en)
Other versions
JPH03156531A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of JPH03156531A publication Critical patent/JPH03156531A/ja
Application granted granted Critical
Publication of JP2622896B2 publication Critical patent/JP2622896B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5355Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49957Implementation of IEEE-754 Standard

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はデジタルデータを処理するデータ処理装置に
おける除算装置に係り、特に商の精度を保証するととも
に高速な除算装置に関する。
(従来の技術) 従来、この種除算装置は特開昭60−142738号に記載さ
れている除算装置がある。
第7図は上記従来の除算装置のブロックを示すもので
ある。第7図において、111は制御回路、112は被除数レ
ジスタ、113は除数レジスタ、114は正規化回路、115は
被乗数選択回路およびレジスタ、116は乗数選択回路、1
17はテーブル情報格納ユニット、118は内挿近似回路、1
19は乗算器、120はハーフキャリレジスタ、121はハーフ
サムレジスタ、、122は加算器、123は乗算結果レジス
タ、124は部分商補正回路、125は部分商マージ回路、12
6は除算結果レジスタである。
次に上記従来例において、 Qi;第i番目の部分商 D0;正規化された除数 M;D0の近似逆数 Ri;第i番目の部分剰余 Ni;Ri-1とMの積よりQiを引いた数 とすると、部分商を求める反復計算でQi-1は、乗算結果
レジスタ123から乗数選択回路116に送出され、一方、N
i-1は乗算結果レジスタ123から乗算器119に送出されて
いるものである。
(発明が解決しようとする課題) しかしながら、上記従来の除算装置は、除算の実行性
能の点で改善の余地がある。また、部分商補正回路124
では加算器に加えて減算器も必要としており回路構成が
複雑である。
本発明はこのような従来の問題点を解決するものであ
り、デジタルデータを対象とする除算装置において、除
算の実行性能の向上を図ることと、部分商補正において
減算器の必要の原因となっている部分商の符号を正・負
から、正のみとすることによって減算器を不要とするこ
とを目的とするものである。
(課題を解決するための手段) 第1の発明は上記目的を達成するために、 A=1−D0×M Q1+N1=N0×M Qi+Ni=A×Qi-1+Ni-1(i≧2) の反復計算を使用する除算装置において(但し、D0:デ
ジタルデータである除数,N0:デジタルデータである被除
数,M:除数D0の近似逆数,Qi:反復計算での部分商,Ni:M倍
されたi−1番目の部分剰余からQiを引いた数)、 最終部分商QLASTを乗数とする反復計算はQLASTの最下
位ビットの大きさである数をLとして、 QLAST+1+NLAST+1=A×(QLAST+L)+NLAST を実行してQLAST+1を求め、各部分商を、 Q1+Q2+…QLAST+QLAST+1(Lと同じ位のみ取り出す) を使用して加算し、商Qを出力するものである。
また、第2の発明は上記目的を達成するために、除数
D0の近似逆数Mを格納するテーブル情報格納手段に、真
の逆数よりも小さい数を格納するとともに、部分商を求
める反復計算において、部分和,部分桁上げの形で、Q
i-1を倍数発生手段にNi-1を樹木(トリー)状桁上げ保
留加算手段に入力する手段を設けたものである。
(作 用) したがって、第1の発明によれば、前記Lを用いてQ
LAST+1の最上位ビットを求めて、この値を(Q1+Q2+…
QLAST)の値に加えることにより商Qを求め、真値Q
と商Qとの同じ有効桁数での一致を補償させることに
より、高速でしかもコスト高にならないデジタルデータ
の除算が実現する。
また、第2の発明によれば、従来商の補正で減算器を
必要としていたのが不要となり、また除算の反復計算を
部分桁上げ、部分和の形で実行することができる。
(実施例) 具体的な除算装置の実施例を説明するに先だって、本
発明の要点について説明する。
部分商を正とするには、以下に示す除算方式を用いる
とよい。
数の表現として、指数部を持たない固定小数点表示を
とるにしろ、指数部を持つ浮動小数点表示をとるにし
ろ、P進数の除算を考える場合、まず除数,被除数を
(1),(2)式で表現できるという正規化を行い、正
規化後のデジタルデータである除数をD0、デジタルデー
タである被除数をN0として中間的な商を求める。
このときQは、(3)式の範囲、すなわち、正規化さ
れた形かまたは1桁下位桁あふれした形で求まる。
P-1<Q<Q ……(3) 中間的な商を求めた後、固定小数点表示では正規化に
要した除数の桁送り数から、同じく被除数の桁送り数を
引いた差(左への桁送りを正と考える)が正の場合、Q
を左に差の桁数だけ桁送りし、負の場合Qを右に差の桁
数だけ桁送りして最終的な商を求めることができる。
一方、浮動小数点表示では、被除数の指数部から除数
の指数部を引いた差に、固定小数点部の正規化に要した
除数の桁送り数から同じく被除数の桁送り数を引いた差
を加えて除算結果の指数部とし、更に中間的な商が下位
桁あふれした形のときは指数部から1を引き、固定小数
点部を正規化した形にして最終的な商を求めることがで
きる。
商の符号については、除数,被除数の符号から代数的
に決まるので必要ならば除数,被除数の絶対値をとり、
正規化した形で中間的な商を求め、最終的に商が負の場
合、中間的な商を所望の表現に変えるものとする。
以上の前提により、以下では除数,被除数を絶対値
化,正規化した(1),(2)式の形で考える。先ず、
記号の説明しておく。
M;D0の近似逆数 Qi;第i番目の部分商 Ri;第i番目の部分剰余,ただし、R0=N0とする。
Ni;Ri-1とMの積よりQiを引いた数 A;Qi,Niより、第i番目の部分剰余RiのM倍であるQi+1
+Ni+1を求めるとき、Qiに掛けられる被乗数 α+1;部分商の桁数,番号が隣り合う部分商の間では1
桁重複している Q;正確な商を表わし、被除数が除数で割り切れない場合
には循環小数となり桁数が無限になる QLAst;最後である第LAST番目の部分商 Q;QからQLASTの最下位の桁以上取り出した数 X;QLASTの最下位の桁で大きさが1の数 Y;QLAST+Xを部分商として、M倍された部分剰余RLAST
すなわちQLAST+1+NLAST+1を求めたとき、QLAST+1の最
上位桁でありXと同位にある。
部分商が(α+1)桁確定するための十分条件とし
て、Mについて(4)式を満足するように選ぶものとす
る。
1−P−(α+2)<D0×M<1 ……(4) 反復計算に入る前に(5),(6)式で示される計算
を行う。
A=1−D0×M ……(5) Q1+N1=N0×M ……(6) 反復計算では(7)式で示される計算を行う。
Qi+Ni=A×Qi-1+Ni-1(2iLAST) ……(7) 最後に、QLAST+1以降からQへの寄与の有無を調べ
るために(8)式で示される計算を行い、(9)式より
を求める。
QLAST+1+NLAST+1=A×(QLAST+X)+NLAST…(8) Q=Q1+Q2+……+QLAST+Y ……(9) 以上により、商を求めることができることを、以下の
事柄(A)〜(C)を証明することにより示す。
事柄(A):任意i2に対してAを使用でき、(7)
式より求めた数は、第i−1番目の部分剰余Ri-1に除数
の近似逆数Mを掛けた数になっている。
事柄(B):Q1は正であり、(α−1)〜(α+1)桁
になり、正確な商QとP−α以上の位で比較すると等し
いか、P−αだけ小さい。すなわち、 P-2<Q1<P ……(10) 事柄(C):Qi(i2)は正または零であり、商とし
て、P−(i−1)α〜P−iαの位の(α+1)桁求
まり、Qiに対応する位で正確な商Qと比較したとき、等
しいかP−iαだけ小さい。すなわち、 0<Qi+Ni<P−(i−1)α+1 ……(12) 事柄(A)の証明 i=2に対して Q2+N2=R1×M =(N0−D0×Q1)×M =N0×M−D0×Q1×M =Q1+N1−D0×Q1×M =(1−D0×M)×Q1+N1 =A×Q1+N1 となり、事柄(A)は成立する。
i=kに対して事柄(A)が成立し、 Qk+Nk=Rk-1×M =A×Qk-1+Nk-1 と仮定すると となり、i=k+1のときも事柄(A)は成立する。i
=2について先に証明済みであるから、数学的帰納法に
より、i2の任意のiについて、事柄(A)は成立す
る。
事柄(B)の証明 (4)式の辺々に正確な商Qを掛けると Q−Q×P−(α+2)<Q1+N1=N0×M<Q ……(1
4) (3)式 P-1<Q<Pと(14)式より P-2<Q1<Pが成立する。
0<R1×M=Q2+N2=(1−D0×M)×Q1×N1<P−α
……(15) また(4)式により、 であるから(15)式の不等式の外側の項に2D0を、内側
の項に1/Mを掛け次式を得る。
事柄(C)の証明 i=2について(15)式より 0<Q2×N2<P−α<P−α+1 を得るので(12)式が成立する。
0<R2×M=(1−D0×M)×Q2+N2<P−(α+2)
×P−α +N2<P−2(α+1)+P−2α=P−2α(1+P
-2) (4)式より、 であるから、上記不等式の外側の項に を、内側の項に1/Mを掛けることにより となり、i=2のとき、(13)式は成立する。
i=kに対して 0=Qk+Nk<P−(k−1)α+1 ……(17) が成立すると仮定すると、 0<Qk+1+Nk+1=(1−D0×M)×Qk+Nk<P
−(α+2) ×P−(k−1)α+1+P−kα =P−kα(1+P-1)<P−kα+1 となり、i=k+1のときも(12)式は成立する。
Rk+1×M=Qk+2+Nk+2 =(1−D0×M)×Qk+1+Nk+1<P−(α+2) ×P−kα+1+P−(k+1)α =P−(k+1)α(1+P-1) (4)式より、 であるから、上記不等式の外側の項に を、内側の項に1/Mを掛けることにより、 となり、i=k+1のときも(13)式は成立する。
以上により、i=2に対して(12),(13)式が成立
することは証明済みがあるから、数学的帰納により、i
2の任意のiについて、(12),(13)式は成立す
る。
事柄(C)より、(6),(7)式から求まる部分商
の加算結果を真の商QとQLASTの最下位の桁以上で比較
したとき、P−LAST×αだけ小さい可能性があることが
わかる。このことは、P−LAST×αが、D0×M倍されて
NLASTに隠されていると解釈できるので、QLASTにP
−LAST×αを加え、NLASTからP−LAST×αを引いて、
剰余RLAST/Mを求めることによれば(20)式を得る。
QLASTにP−LAST×αの補正が必要なときは、(20)
式が正または零になり、補正が必要でないときは(20)
式は負となる。(8)式ではNLASTからP−LAST×α
引く代わりに、QLASTに対する補正の有無の判定の境界
を零からP−LAST×αに変えることにより、(9)式を
使用すれば、真の商QとP−LAST×αの桁以上で比較し
たとき一致する商が得られるようになる。
次に本発明を具体的な実施例について以下に説明す
る。
第1図は本発明の第1の実施例における除算装置のブ
ロック図を示すものである。第1図において、11は除算
装置全体の制御を司どる制御回路、12は被除数レジス
タ、13は除数レジスタ、14はテーブル情報格納ユニッ
ト、15は被乗数選択回路およびレジスタ、16は乗数選択
回路A、17は乗数選択回路B、18は倍数発生回路A、19
は倍数発生回路B、20,21,22は選択回路(SEL)A,B,C
(以下、SELA,SELB,SELCという)、23は樹木状桁上げ保
留加算器A、24は樹木状桁上げ保留加算器B、25,26は
桁上げ保留加算器、27は部分桁上げレジスタ、28は部分
和レジスタ、29は桁上げ伝播加算器A、30ないし34はQ1
レジスタないしQ5レジスタ、35は桁上げ伝播加算器B、
36は除算結果レジスタである。
次に上記実施例の動作について説明する。上記実施例
において、除算は次の順序で行われる。除数レジスタ13
にセットされた正規化済みの除数D0の上位ビットによ
り、テーブル情報格納ユニット14から近似逆数Mを読み
出す。テーブル情報格納ユニット14に対する格納情報の
取り方の一例を以下に示す。
(1)式で表示された2進数の除数に対し、 より、近似逆数Mを次のように求める。
なお、(22)式の第1項は固定であり、また第3項は を乗数の最下位ビットとして付加すればよいから、テー
ブルに格納するのはM2からM16までの15ビットでよい。
(21),(22)式により求まる近似逆数の精度につい
ては(23)式を満足している。
0.FF808F8D0×M<1(16進数表示) ……(23) D0×Mの値の値は計算機を用いて確認したが、確認方
法の概要を以下に示す。
Mは区間 では定数であり、1D0<2では、第2図に示すよう
に、214=16384個の長さ2-14の線分の階段関数となる。
一方、D0×Mのフラグは第3図に示すように16384個の
線分が鋸の歯の形をしている。よって、 D0×Mの下限(最小値でもある):16384個の線分左端の
最小値 D0×Mの上限:16384個の線分の右端の最大値 となる。
テーブル情報格納ユニット14より読み出された逆数
は、 を付加されて、乗数選択回路A16より第1回目は−Mを
出力して、被乗数選択回路およびレジスタ15にセットさ
れた除数D0と(5)式のD0×(−M)の乗算を、倍数発
生回路A18、樹木状桁上げ保留加算器A23、桁上げ保留加
算器25,26、部分桁上げレジスタ27、部分和レジスタ2
8、桁上げ伝播加算器A29により実行する。
D0×(−M)の部分桁上げ、部分和が部分桁上げレジ
スタ27及び部分和レジスタ28にセットされると同時に、
被乗数選択回路15には、被除数レジスタ32の出力する正
規化済みの被除数N0がセットされるとともに、乗数選択
回路A16は近似逆数Mを選択する。(6)式のN0×Mの
乗算は、D0×(−M)と同様にして実行され、N0×Mの
部分桁上げ、部分和が、部分桁上げレジスタ27及び部分
和レジスタ28にセットされると同時にD0×(−M)の積
が、2゜以上の桁上を零として(D0×(−M)×1を加
算することと等価である)被乗数選択回路およびレジス
タ15にセットされる。D0×(−M),N0×Mの計算で
は、乗数選択回路B17と選択回路であるSELC22は零を出
力し、この結果、樹木状桁上げ保留加算番B24の出力
は、部分桁上げ、部分和ともに零となり、SELA20,SELB2
1は倍数発生回路A18の出力を選択する。
以下、(7)式で示す反復計算をQi-1,Ni-1を部分桁
上げ、部分和の形のままで次のように実行する。
Qi-1の部分桁上げ及び部分和は、部分桁上げレジスタ
24,部分和レジスタ28から乗数選択回路A16と乗数選択回
路B17により選択されるとともに、Ni-1の部分桁上げ及
び部分和は、部分桁上げレジスタ27,部分和レジスタ28
からSELA20,SELC22により選択される。部分桁上げ,部
分和を加算したときのNi-1からQi-1への桁上げは、桁上
げ伝播加算器A29に含まれている先見桁上げ回路により
求められ、当該桁上げがある場合にはSELB21により、本
来発生すべきAの倍数に加えて、上位にNi-1を部分桁上
げ,部分和として加算し過ぎになっているNi-1からQi-1
への桁上げを相殺する負の数を埋め込み出力する。
桁上げ伝播加算器A29の出力する部分商は、順次Q1
ジスタ30からQ5レジスタ34までセットされ、最後に
(8)式の計算を、(7)式の計算と異なる点は乗数選
択回路A16によりQLASTの部分桁上げの末尾に1を付加し
て実行した後、桁上げ伝播加算器B35により(9)式の
加算を行い、求まる商Qを除算結果レジスタ36にセッ
トする。桁上げ伝播加算器B35による加算は通常の2数
の加算とは異なり、αビットをグループ単位として、各
部分商の最上位ビットをグループキャリ、残りのビット
を2数のビット対応の加算結果、Mを初期桁上げとして
加れるだけでよい。その理由は、事柄(C)により各部
分商は最下位の桁で1だけ小さい可能性があり、2小さ
いことはあり得ないので、各部分商の最上位ビット1の
場合は更に下位の部分から2重に桁上がりしてくること
はない。
以上の計算が数としてどのように処理されているかを
第4図及び第5図に示している。第4図及び第5図にお
いて、乗数の最下位ビットとして乗数選択回路A16が零
と異なる値を出力した場合には、倍数発生回路A18で
は、乗数の最下位ビットより1つ位の大きいビットに1
を加えたのと等価な倍数を発生させている。また、第4
図及び第5図ではQiとして13ビット分を括弧で囲んでい
るが、部分桁上げと部分和を加算した後では事柄
(B),事柄(C)での(α+1)桁である12ビットに
なる。Qiが部分桁上げ,部分和の2数に分かれていると
きには、2数とも正または零の場合には13ビットのうち
の最上位ビットは零となるが、部分桁上げ,部分話の一
方の数が負の場合には、負の数の最上位ビットは1とな
り最上位ビットは符号ビットになっている。
以下、除数D0,被除数N0を D0=1.2345680000000(16進表示) N0=1.23456789ABCDE(16進表示) として除算の具体例を説明する。
(i)D0の2-13以上のビットは 1.2340(16進表示)=1.0010 0011 0100 0(2進表示) であり、 であるから、MはD0,14=1も考慮して次の値となる
(以下、特に注意書きしない限り16進表示とする。ま
た、部分桁上げ,部分和数値を書くのは徒らに複雑さを
増すだけであり商の値自体に対しては本質的ではないの
で省略する。) −M=……FF.1F03 (ii)A=1+D0×(−M) =0.0003696838 (iii)Q1+N1=N0×M =0.FFFC962FC962EE766 Q1=0.FFE N1=0.001C962FC962EE766 (iv)211・(Q2+N2)=211・(A×Q1+N1) =0.FFF956A2DF73B3 211・Q2=0.FFE 211・N2=0.001956A2DF73B3 (v)222・(Q3+N3)=222・(A×Q2+N2) =0.E5FCEF536598 222・Q3=0.E5E 222・N3=0.001CEF536598 (vi)233・(Q4+N4)=233(A×Q3+N3) =0.FFFCCED708 233・Q4=0.FFE 233・N4=0.001CCED708 (vii)244・(Q5+N5)=244・(A×Q4+N4) =1.01BE9097C8 244・Q5=1.01A 244・N5=0.001E9097C8 (viii)255・(Q6+N6)=255・{A×(Q5+2-55)+
N5)} =1.0FFFC3B31 Q=0.FFE+0.FFE×2-11+0.E5E×2-22 +0.FFE×2-33+1.01A×2-44+2-55 =0.FFFFFF9800001C M倍された剰余:0.0FFFC3B31×2-55 =0.000000000000001FFF87662 以上、本発明の第1の実施例をしてきたが、“IEEE S
tanderd for Binary Floating−point Arithmetic"ANSI
/IEEE Std 754−1985に示された浮動小数点数の倍精度
除算の商の仮数部としては、Q2-53をガード・ビッ
ト、2-54をラウンド・ビット、2-55と255・(Q6+N6
の小数点以下の論理和をスティッキー・ビットとすれば
よい。また、第7図の従来の除算装置の本発明の1図の
除算装置とを比較すると、第1図の倍数発生回路と樹木
状桁上げ保留加算器の回路規模が約2倍となっている
が、本発明による除算装置と、乗数のビット幅の広い乗
算装置とで、回路を共有化して乗除算装置を実現すれば
上記の回路規模の問題は除算装置だけの問題でなくな
る。
第1図に示す第1の実施例の除算装置では、反復計算
を同一回路を繰り返し使用して求めているが、次に第2
の実施例として乗数の回数に等しい乗算手段を設けたベ
クトル除算装置を第6図を用いて説明する。
第6図において、211はベクトル除算装置全体の制御
を司どる制御回路、212,213はオペランドバッファ1,2、
214は被除数レジスタ、215は除数レジスタ、216は被除
数の遅延データ保持手段、217は除数の遅延データ保持
手段、218はテーブル情報格納ユニット、219は近似逆数
レジスタ、220はインバータ、221,223,225,229,234,24
0,247はそれぞれ乗算手段、222,224,226,230,235,241,2
48,255はデータ保持手段、227,228,231,232,233,236,23
7,238,239,242,243,244,245,246,249,250,251,252,253
は遅延データ保持手段、245は桁上げ伝播加算器であ
る。
被除数オペランド、除数オペランド、除算結果につい
ては制御回路211がベクトル処理装置内部の他の部分
(図示せず)と応答し合ってメモリ、またはベクトルレ
ジスタから被除数ベクトル要素、除数ベクトル要素をオ
ペランドバッファ1,2の212,213にロードし、また除算結
果ベクトル要素はデータ保持手段255からメモリ、また
はベクトルレジスタにストアされる。以下、ヘクトル除
算装置のステージ毎の内部動作について説明する。
第1ステージでは最初に被除数レジスタ214に被除数
ベクトル要素、除数レジスタ215に除数ベクトル要素が
セットされ、除数の上位ビットによりテーブル情報格納
ユニット218より、除数の近似逆数を読み出す。
第2ステージでは最初に遅延データ保持手段216,217
に第1ステージの被除数ベクトル要素、除数ベクトル要
素がセットされるとともに近似逆数レジスタ219に近似
逆数Mがセット、乗算手段221により、N0×Mの乗算が
実行されるとともに、インバータ220により近似逆数M
が負の数に変換された後、乗算手段223により、N0×M
の乗算が実行される。
第3ステージでは最初に乗算手段221での演算結果Q1
+N1がデータ保持手段222に、また乗算手段223での乗算
結果に1を加えた(単に20以上の位をゼロとするだけで
よい)Aがデータ保持手段224にセットされる。次に、
乗算手段225により、A×Q1+N1の演算が行われる。
第4ステージでは最初に乗算手段225での演算結果Q2
+N2がデータ保持手段226にセットされるとともに、A,Q
1が遅延データ保持手段227,228にセットされる。次に、
乗算手段229により、A×Q2+N2の演算が行われる。
第5ステージでは最初に乗算手段229での演算結果Q3
+N3がデータ保持手段230にセットされるとともに、A,Q
1,Q2が遅延データ保持手段231,232,233にセットされ
る。次に、乗算手段234により、A×Q3+N3の演算が行
われる。
第6ステージでは最初に乗算手段234での演算結果Q4
+N4がデータ保持手段235にセットされるとともに、A,Q
1,Q2,Q3が遅延データ保持手段236,237,238,239にセット
される。次に、乗算手段240により、A×Q4+N4の演算
が行われる。
第7ステージでは最初に乗算手段240での演算結果Q5
+N5がデータ保持手段241にセットされるとともに、A,Q
1,Q2,Q4が遅延データ保持手段242,243,244,245,246にセ
ットされる。次に、乗算手段247により、A×(Q5+2
-55)+N4の演算が行われる。
第8ステージでは最初に乗算手段247での演算結果Q6
+N6がデータ保持手段248にセットされるとともに、Q1,
Q2,Q3,Q4,Q5が遅延データ保持手段249,250,251,252,253
にセットされる。次に、桁上げ伝播加算器254により、Q
1+Q2+Q3+Q4+Q5+Q6(2-55の位のみ取り出す)の演
算を行われる。
第9ステージでは桁上げ伝播加算254での演算結果で
ある最終商Qがデータ保持手段255にセットされる。
以上の9つのステージの動作時間は各々1マシンサイ
クルで行われる。以上のように構成された除算装置に対
して、1マシンサイクル毎に被除数ベクトル要素と、除
数ベクトル要素を供給すると最初に商がデータ保持手段
255に求められた後は引き続いて1マシンサイクル毎に
商のベクトル要素がデータ保持手段255より出力される
ことは容易に理解されるところである。
(発明の効果) 本発明は上記第1の実施例より明らかなように、従
来、商の補正で減算器を必要としていたのが不要とな
り、また、除数の反復計算を部分桁上げ、部分和の形で
実行できるので除算の実行時間の短縮に効果がある。ま
た、第2の実施例より明かなように、除算の反復計算で
の被乗算A,乗数Qi-1,加数Ni-1のビット長は反復により
異なるということはなく同一であり、ベクトル除算装置
を複数LSIを用いて構成する場合には同一種LSIを複数個
使用できるので設計開発費用,製造費用の低減に効果が
あり、また、ベクトル除算装置をLISIで実現する場合に
は反復計算を実行する乗算手段をマクロセルとして複数
個を繰り返し使用できるので設計開発費用の低減に効果
がある。また、性能的には1マシンサイクル毎に商を出
力することができるので十分である。
【図面の簡単な説明】
第1図は本発明の第1の実施例における除算装置のブロ
ック構成図、第2図及び第3図は本発明の実施例におけ
る除数の近似逆数の精度を示す図、第4図及び第5図は
本発明の具体的動作例を示す図、第6図は本発明の第2
の実施例におけるベクトル除算装置のブロック構成図、
第7図は従来の除算装置のブロック構成図である。 11,111,211……制御回路、12,112,214……被除数レジス
タ、13,113,215……除数レジスタ、14,117,218……テー
ブル情報格納ユニット、15,115……被除数選択回路およ
びレジスタ、16……乗数選択回路A、17……乗数選択回
路B、18……倍数発生回路A、19……倍数発生回路B、
20……選択回路A、21……選択回路B、22……選択回路
C、23……樹木状桁上げ保留加算器A、24……樹木状桁
上げ保留加算器B、25,26……桁上げ保留加算器、27…
…部分桁上げレジスタ、28……部分和レジスタ、29……
桁上げ伝播加算器A、30……Q1レジスタ、31……Q2レジ
スタ、32……Q3レジスタ、33……Q4レジスタ、34……Q5
レジスタ、35……桁上げ伝播加算器B、36,126……除算
結果レジスタ、114……正規化回路、116……乗数選択回
路、118……内挿近似回路、119……乗算器、120……ハ
ーフキャリレジスタ、121……ハーフサムレジスタ、122
……加算器、123……乗算結果レジスタ、124……部分商
補正回路、125……部分商マージ回路、212……オペラン
ドバッファ1、213……オペランドバッファ2、219……
近似逆数レジスタ、220……インバータ、221,223,225,2
29,234,240,247……乗算手段、222,224,226,230,235,24
1,248,255……データ保持手段、216,217,227,228,231,2
32,233,236,237,238,239,242,243,244,245,246,249,25
0,251,252,253……遅延データ保持手段、254……桁上げ
伝播加算器。

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】デジタルデータである除数D0の上位ビット
    をアドレスとして除数の近似逆数Mを出力するテーブル
    情報格納手段と、商を得るためにデジタルデータである
    被除数N0に除数の近似逆数Mを掛けるための乗算手段と
    を備え、商の算出には、Qiを反復計算での部分商、Ni
    M倍されたi−1番目の部分剰余からQiを引いた数とし
    て、 A=1−D0×M Q1+N1=N0×M Qi+Ni=A×Qi-1+Ni-1(i≧2) の反復計算を使用する除算装置において、 前記乗算手段に、最終部分商QLASTを乗数とする反復計
    算はQLASTの最下位ビットの大きさである数をLとして QLAST+1+NLAST+1=A×(QLAST+L)+NLAST を実行する手段を設けるとともに、前記乗算手段を接続
    された各部分商Q1,Q2,…QLASTを保持する手段と、各部
    分商を Q1+Q2+…QLAST+QLAST+1(Lと同じ位のみ取り出す) 上式を使用して加算し、商Qを出力する加算手段を設
    け、N0/D0で求まる真値Qを前記商Qと同じ有効桁数
    で比較したときに一致するようにしたことを特徴とする
    除算装置。
  2. 【請求項2】乗算手段は、乗数を走査して被乗数の倍数
    を発生する複数の倍数発生手段と、前記複数の倍数発生
    手段に接続され、部分和と部分桁上げを出力する樹木状
    に組み合わされた複数の桁上げ保留加算手段と、前記樹
    木状桁上げ保留加算手段に接続され、部分和と部分桁上
    げを加算する桁上げ伝播加算手段から構成され、更に、
    反復計算におけるQi-1,Ni-1について、前記樹木状桁上
    げ保留加算手段の出力する部分和と部分桁上げを、Qi-1
    は乗数として前記複数の倍数発生手段に接続する手段
    と、Ni-1は倍数と同様に前記樹木状桁上げ保留加算手段
    への入力として接続する手段を設けたことを特徴とする
    請求項(1)記載の除算装置。
  3. 【請求項3】乗算手段として、乗算回数に等しい数の乗
    算手段を設け、除数D0と除数の近似逆数Mとの積を求め
    る乗算手段と被除数N0と除数の近似逆数Mとの積を求め
    る乗算手段とを並列に並べ、更に前記2つの乗算手段と
    反復計算を行う複数の乗算手段とを直列に並べ、前記直
    列に並べた乗算手段の間にベクトル演算の同期をとるた
    めの複数のデータ保持手段を設け、前記複数の乗算手段
    を前記データ保持手段を介して接続するとともに、各部
    分商および反復計算で使用する被乗数Aを同期をとり遅
    延して保持するデータ保持手段とを設けたことを特徴と
    する請求項(1)記載の除算装置。
JP2214344A 1989-08-16 1990-08-15 除算装置 Expired - Lifetime JP2622896B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-210021 1989-08-16
JP21002189 1989-08-16

Publications (2)

Publication Number Publication Date
JPH03156531A JPH03156531A (ja) 1991-07-04
JP2622896B2 true JP2622896B2 (ja) 1997-06-25

Family

ID=16582511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2214344A Expired - Lifetime JP2622896B2 (ja) 1989-08-16 1990-08-15 除算装置

Country Status (2)

Country Link
US (1) US5065352A (ja)
JP (1) JP2622896B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2660086B1 (fr) * 1990-03-21 1992-06-05 Bull Sa Procede pour calculer l'inverse d'un nombre et calculateur pour la mise en óoeuvre dudit procede.
US5140545A (en) * 1991-02-13 1992-08-18 International Business Machines Corporation High performance divider with a sequence of convergence factors
US5245564A (en) * 1991-05-10 1993-09-14 Weitek Corporation Apparatus for multiplying operands
DE69231051T2 (de) * 1991-09-05 2001-01-18 Cyrix Corp Verfahren und Anordnung zur vorteilierten Division
US5377134A (en) * 1992-12-29 1994-12-27 International Business Machines Corporation Leading constant eliminator for extended precision in pipelined division
US5537345A (en) * 1993-10-14 1996-07-16 Matsushita Electrical Industrial Co. Ltd. Mathematical function processor utilizing table information
US5563818A (en) * 1994-12-12 1996-10-08 International Business Machines Corporation Method and system for performing floating-point division using selected approximation values
US5923577A (en) * 1996-10-21 1999-07-13 Samsung Electronics Company, Ltd. Method and apparatus for generating an initial estimate for a floating point reciprocal
US6360241B1 (en) 1999-02-01 2002-03-19 Compaq Information Technologies Goup, L.P. Computer method and apparatus for division and square root operations using signed digit
US6732135B1 (en) * 1999-02-01 2004-05-04 Hewlett-Packard Development Company, L.P. Method and apparatus for accumulating partial quotients in a digital processor
US7191202B2 (en) * 2001-05-25 2007-03-13 Sun Microsystems, Inc. Comparator unit for comparing values of floating point operands
US6993549B2 (en) * 2001-05-25 2006-01-31 Sun Microsystems, Inc. System and method for performing gloating point operations involving extended exponents
US6976050B2 (en) * 2001-05-25 2005-12-13 Sun Microsystems, Inc. System and method for extracting the high part of a floating point operand
US7003540B2 (en) * 2001-05-25 2006-02-21 Sun Microsystems, Inc. Floating point multiplier for delimited operands
US7831652B2 (en) * 2001-05-25 2010-11-09 Oracle America, Inc. Floating point multiplier with embedded status information
US7133890B2 (en) * 2001-05-25 2006-11-07 Sun Microsystems, Inc. Total order comparator unit for comparing values of two floating point operands
US7228324B2 (en) * 2001-05-25 2007-06-05 Sun Microsystems, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US7430576B2 (en) * 2001-05-25 2008-09-30 Sun Microsystems, Inc. Floating point square root provider with embedded status information
US7366749B2 (en) * 2001-05-25 2008-04-29 Sun Microsystems, Inc. Floating point adder with embedded status information
US7069289B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point unit for detecting and representing inexact computations without flags or traps
US6970898B2 (en) * 2001-05-25 2005-11-29 Sun Microsystems, Inc. System and method for forcing floating point status information to selected values
US7444367B2 (en) * 2001-05-25 2008-10-28 Sun Microsystems, Inc. Floating point status information accumulation circuit
US7363337B2 (en) * 2001-05-25 2008-04-22 Sun Microsystems, Inc. Floating point divider with embedded status information
US7395297B2 (en) * 2001-05-25 2008-07-01 Sun Microsystems, Inc. Floating point system that represents status flag information within a floating point operand
US7613762B2 (en) * 2001-05-25 2009-11-03 Sun Microsystems, Inc. Floating point remainder with embedded status information
US7016928B2 (en) * 2001-05-25 2006-03-21 Sun Microsystems, Inc. Floating point status information testing circuit
US7069288B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point system with improved support of interval arithmetic
US6961744B2 (en) * 2001-05-25 2005-11-01 Sun Microsystems, Inc. System and method for generating an integer part of a logarithm of a floating point operand
US7219117B2 (en) * 2002-12-17 2007-05-15 Sun Microsystems, Inc. Methods and systems for computing floating-point intervals
US7236999B2 (en) * 2002-12-17 2007-06-26 Sun Microsystems, Inc. Methods and systems for computing the quotient of floating-point intervals
US8140608B1 (en) * 2007-05-31 2012-03-20 Nvidia Corporation Pipelined integer division using floating-point reciprocal
US8819094B2 (en) * 2009-06-10 2014-08-26 Synopsys, Inc. Multiplicative division circuit with reduced area
CN103164185A (zh) * 2011-12-16 2013-06-19 上海华虹集成电路有限责任公司 用纯组合电路实现除法计算的电路
CN107766031B (zh) * 2017-11-14 2020-06-19 京东方科技集团股份有限公司 分段式除法器、分段式除法运算方法、以及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3828175A (en) * 1972-10-30 1974-08-06 Amdahl Corp Method and apparatus for division employing table-lookup and functional iteration
JPS5342505A (en) * 1976-09-30 1978-04-18 Anritsu Electric Co Ltd Circuit for receiving charging signal of public telephone set
JPS60142738A (ja) * 1983-12-30 1985-07-27 Hitachi Ltd 内挿近似を使用する除算装置
JPS60164837A (ja) * 1984-02-07 1985-08-27 Nec Corp 除算装置

Also Published As

Publication number Publication date
JPH03156531A (ja) 1991-07-04
US5065352A (en) 1991-11-12

Similar Documents

Publication Publication Date Title
JP2622896B2 (ja) 除算装置
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
JP3689183B2 (ja) 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
KR100203468B1 (ko) 부동소수점수를 위한 산술연산장치
JP2972498B2 (ja) 論理回路の自動設計方法、そのシステム及びその装置並びに乗算器
US8060551B2 (en) Method and apparatus for integer division
US20040267853A1 (en) Method and apparatus for implementing power of two floating point estimation
US5623435A (en) Arithmetic unit capable of performing concurrent operations for high speed operation
US6847986B2 (en) Divider
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US6813628B2 (en) Method and apparatus for performing equality comparison in redundant form arithmetic
US5825681A (en) Divider/multiplier circuit having high precision mode
US4979141A (en) Technique for providing a sign/magnitude subtraction operation in a floating point computation unit
US6826588B2 (en) Method and apparatus for a fast comparison in redundant form arithmetic
JP2578482B2 (ja) 浮動小数点演算器
JPH04172526A (ja) 浮動小数点除算器
Kaihara et al. A hardware algorithm for modular multiplication/division based on the extended Euclidean algorithm
JP2761145B2 (ja) 開平演算装置
JP3517162B2 (ja) 除算・開平演算装置
JP2518532B2 (ja) 減算シフト型除算器
JP3201097B2 (ja) 乗算器における乗算処方方法
JP2000010763A (ja) 除算回路
JPH0778724B2 (ja) 除算器