JP3941868B2 - 計算装置及び計算方法 - Google Patents
計算装置及び計算方法 Download PDFInfo
- Publication number
- JP3941868B2 JP3941868B2 JP2002338440A JP2002338440A JP3941868B2 JP 3941868 B2 JP3941868 B2 JP 3941868B2 JP 2002338440 A JP2002338440 A JP 2002338440A JP 2002338440 A JP2002338440 A JP 2002338440A JP 3941868 B2 JP3941868 B2 JP 3941868B2
- Authority
- JP
- Japan
- Prior art keywords
- digit
- remainder
- route
- quotient
- correction term
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
- G06F7/537—Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
- G06F7/5375—Non restoring calculation, where each digit is either negative, zero or positive, e.g. SRT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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 for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
- G06F7/5525—Roots or inverse roots of single operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/552—Indexing scheme relating to groups G06F7/552 - G06F7/5525
- G06F2207/5526—Roots or inverse roots of single operands
- G06F2207/5528—Non-restoring calculation, where each result digit is either negative, zero or positive, e.g. SRT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4873—Dividing
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明はデータ処理分野に関するものであり、より具体的には、割り算と平方根演算を高速で実行する計算装置及び計算方法に関するものである。
【0002】
【従来の技術】
最近、グラフィックレンダリング(Graphic Rendering)、CAD(Computer Aided Design)、DSP(Digital Signal Processing)などのような、複雑な計算を要求するコンピュータ応用環境が、徐々に増加している。したがって、大部分の高性能のマイクロプロセスは、IEEE754−1985浮動小数点標準案に基づいた浮動小数点加算(Addition)、掛け算(Multiplication)、割り算(Division)、平方根演算(Square Rooting)などを支援している。
【0003】
一般的なデータ処理システムにおいて、割り算及び平方根演算の実行の比率は、加算や掛け算に比べて相対的に非常に低い。しかし、加算と掛け算は3サイクルの待ち時間(Latency)を有する一方、割り算と平方根演算は20サイクル以上の待ち時間を有するので、待ち時間の面で、割り算と平方根演算はシステムの全体の性能に大きい影響を与える。
【0004】
よく知られた割り算アルゴリズムのうちの一つが、SRT割り算アルゴリズムである。SRTは、Sweeney Robertson,およびTocher の頭字語(Acronym)であり、それらの三人は、ほほ同じ時期にそのような特性のアルゴリズムを独立的に各々提案した。SRT割り算アルゴリズムは、商デジット(Quotient Digit)として加算/引き算の遂行が不要な0を許すことによって、非復元割り算(Non-restoring Division)のスピードを向上させる。SRT割り算アルゴリズムの原理は、平方根演算にも適用されることができる。SRTアルゴリズムは、例えば、Behrooz Parhami,“Computer Arithmetic Algorithms and Hardware Design",Oxford University Press 2000 に詳細に記載されている。
【0005】
伝統的な基数−2(Radix-2)SRTアルゴリズムは、ハードウェーアで実現することが容易であるが、商(Quotient)/平方根(Square Root) を求めるためには、多数の繰り返し演算(Iterations)を実行することが必要である。一方、基数−4SRTアルゴリズムは、基数−2SRTアルゴリズムに比べて、繰り返し演算が1/2に減るが、基数−2SRTアルゴリズムに比べて、ハードウェーアで実現することが複雑であり、各繰り返し実行の遅延時間が増える。例えば、[特許文献1]の米国特許第5258944号には、基数−4アルゴリズムを利用し、各繰り返し演算ステップで商を選択するために、ルックアップテーブル(Lookup Table)を参照する技術が開示されている。
【非特許文献1】
ベローズ パーハミ 「コンピュータ算術アルゴリズムとハードウェアデザイン」オックスフォード・ユニバーシティ・プレス 2000 ( Behrooz Parhami,“Computer Arithmetic Algorithms and Hardware Design”、Oxford University Press 2000)
【特許文献1】
米国特許第5258944号明細書
【0006】
【発明が解決しようとする課題】
本発明の目的は、基数−2アルゴリズムを使用して割り算及び平方根演算を高速で実行できる計算装置及びその計算方法を提供することにある。
【0007】
【課題を解決するための手段】
本発明によると、非復元基数−2割り算及び/または平方根演算アルゴリズムが提供される。本発明のアルゴリズムは、一種の変形された基数−2SRTアルゴリズムと言える。本発明のアルゴリズムでは、従来の基数−2SRTアルゴリズムと同一の商/ルートデジットセット(Quotient/Root Digit SET){−1,0,+1} が使用され、特に、新規な商/平方根予測テーブル(Quotient/Root Prediction Table)ロジックが使用される。商/平方根予測テーブルロジックによって、i番目の商/平方根デジットが決められ、前記i番目の商/平方根のデジットは、(i−2)番目の部分の余り(Partial Remainder)から求められた(i−1)番目の商/平方根のデジットに基づいて決められる。(i−1)番目の部分の余りの計算に必要な(i−1)番目の補正項(Correction Term)が、(i−2)番目の補正項と同時に生成される。これは(i−1)番目の部分の余りを求めるための繰り返し演算の省略を可能にする。
【0008】
本発明の基数−2アルゴリズムによれば、従来の基数−2SRTアルゴリズムに比べて繰り返し演算時間が1/2に減るが、従来の基数−4SRTアルゴリズムとは異なり、各繰り返し演算の遅延時間は増えない。
【0009】
【発明の実施の形態】
以下、添付した図1を参照して、本発明の望ましい実施の形態を詳細に説明する。
【0010】
I.商予測テーブルQPTを使用する基数−2割り算アルゴリズム
【0011】
本発明による浮動少数点2進割り算アルゴリズム(Floating Point Binary Division Algorithm)の表記法(Notation)は、次の通りである。
z 被除数(Dividend) z0.z−1z−2...z−2n
d 除数(Divisor) 0.d−1d−2...d−n
q 商(Quotient) 1.q−1q−2...q−n
x 余り(Remainder) x0.x−1x−2...x−2n
【0012】
余りxの表現z−(d*q)は、基本的な割り算の方程式 z=(d*q)+xから誘導されたものである。
【0013】
割り算アルゴリズムは、部分の余り(Partial Remainder:PR)を使用して商デジットを順次に求める。
【0014】
基数−2割り算の循環式は、次の式(1)で表示される。
x(i)=2x(i−1)−id …(1)
【0015】
ここで、x(i)はi番目の部分の余りであり、x(i−1)は(i−1)番目の部分の余りであり、q−iはi番目の商デジット、dは除数、q−i*dはi番目の補正項である。また、式(1)で、初期部分の余りx(0)=z、q− i∈{−1、0、+1}である。
【0016】
上の式(1)は、次のように(i−2)番目の部分の余りx(i−2)で表示されることができる。
x(i)=4x(i−2)−(i−1)−id …(2)
【0017】
式(2)によると、i番目の部分の余りx(i)は(i−2)番目の部分の余りx(i−2)、(i−1)番目の商デジットq−(−i−1)、i番目の商デジットq−i、及び除数dから求められる。結局、式(2)は、(i−1)番目の商デジットq−(i−1)に従属するi番目の商デジットq−iが決められると、i番目の商デジットq−iの決定に必要な(i−1)番目の部分の余りx(i−1)を求めるための(i−1)番目の繰り返し演算の省略が可能である、ことを示している。
【0018】
本発明の基数−2割り算アルゴリズムは、商デジットセット{−1、0、+1}を使用する。本発明の基数−2割り算アルゴリズムによれば、i番目の部分の余りx(i)を求めるのに必要とするi番目の商デジットq−iは(i−1)番目の部分の余りx(i−1)のレフト−シフトされた値2x(i−1)によって下のように決められる。
もし 2x(i−1)<−1/2であれば q−i=−1
もし −1/2≦2x(i−1)<1/2であれば q−i=0
もし 2x(i−1)≧1/2であれば q−i=+1
【0019】
本発明によれば、(i−1)番目の商デジットq−(i−1)が決められ、決められたq−(i−1)に基づいて、(i−1)番目の部分の余りx(i−1)を求めるための繰り返し演算の遂行なしに、i番目の商デジットq−iが正確に予測される。このi番目の商デジットq−iの予測には、商予測テーブルQPTが使用される。また、(i−1)番目の部分の余りx(i−1)の計算に必要な(i−1)番目の繰り返し演算の補正項が生成され、i番目の商デジットq−i=+1になる場合の(i−1)番目の補正項と、q−i=−1になる場合の(i−1)番目の補正項とが、(i−2)番目の補正項の生成と同時に生成される。
このように求められた(i−2)番目の補正項、(i−1)番目の商デジットq−(i−1)、i番目の商デジットq−i=+1 になる場合の(i−1)番目の補正項、そしてq−i=−1になる場合の(i−1)番目の補正項によって、二つの条件的部分の余り(Conditional Partial Remainder)x1及びx2が計算され、この条件的部分の余りx1及びx2のうちの一つが、予測されたi番目の商デジットq−iの値に従って、最終的にx(i)として選択される。
【0020】
次には、本発明によるi番目の商デジットq−iの予測について、詳細に説明する。
【0021】
商デジットの予測のために、ここでは除数d=0.1 d−2 d−3 d−4...が考慮される。
i番目の商デジットq−iの予測、ケース1:d−2=1( i'th Quotient Digit q−i Prediction Case1:d−2=1 )
(1)もし x(i−2)<1/8 であれば q−(i−1)=0である。 したがって、−1/2<2x(i−1)<1/4 になるので、q−i=0になる。
(2)もし 1/8≦x(i−2)<1/4 であれば q−(i−1)=0 である。したがって、2x(i−1)≧1/2になるので、q−i=+1になる。
(3)もし 1/4≦x(i−2)<3/8 であればq−(i−1)=+1 である。この時に、2x(i−1)<−1/2 である場合に、q−i=−1になり、−1/2<X(i−1)<1/4 である場合は q−i=0になる。
(4)もし 3/8≦x(i−2)<1/2 であれば、q−(i−1)=+1 になる。したがって、−1/2≦2x(i−1)<1/2 になるので、q−i=0になる。
(5)もし 1/2≦x(i−2)<5/8 であれば、q−(i−1)=−1 になる。したがって、−1/2≦2x(i−1)<1/2 になるので q−i=0になる。
(6)もし 5/8≦x(i−2)<3/4 であれば、q−(i−1)=−1 になる。この時に、−1/2≦2x(i−1)<1/2である場合に、q−i=0 になり、2x(i−1)<−1/2 である場合に q−i=−1 になる。
(7)もし 3/4≦x(i−2)<7/8 であれば、q−(i−1)=0 になる。したがって、2x(i−1)<−1/2 になるので、q−i=−1 になる。
(8)もし 7/8≦x(i−2)<1 であれば、q−(i−1)=0 になり、常に−1/2≦2x(i−1)<1/2 になるので、q−i=0 になる。
i番目の商デジットq−iの予測、ケース2:d−2=0(i'th Quotient Digit q−i Prediction Case2:d−2=0 )
【0022】
d−2=1である場合のように、各同一の条件下で、q−(i−1)を求め、これに基づいてq−iを予測できるということを、この技術分野に通常的な知識を有する者は良く理解できる。
【0023】
上の結果に従って、i番目の商デジットq−iを予測するための商デジット予測テーブルQPTを作ることが可能である。次の表1は、除数d=0.11d−3d−4…である場合(q−i Prediction Case1:d−2=1)に予測されたi番目の商デジットq−iを示し、また、表2は、除数d=0.10d−3d−4…である場合(q−i Prediction Case2:d−2=0)に予測されたi番目の商デジットq−iを示している。
【0024】
【表1】
【0025】
表1で、例えば、(i−2)番目の部分の余りx(i−2)=0.010x−4x−5…である場合、除数d=0.11d−3d−4…であるので、(i−1)番目の商デジットq−(i−1)は‘+1’になる。(i−1)番目の部分の余りx(i−1)の計算で、ボロー(Borrow)が発生すれば、(If Borrow=1)i番目の商デジットq−iは‘−1’になり、(i−1)番目の部分の余りx(i−1)の計算でボローが発生しなければ(If Borrow=0)、i番目の商デジットq−iは‘0’になる。
【0026】
【表2】
【0027】
表2で、例えば、(i−2)番目の部分の余りx(i−2)=0.110x−4x−5…である場合、除数d=0.10d−3d−4…であるので、(i−1)番目の商デジットq−(i−1)は‘0’になる。(i−1)番目の部分の余りx(i−1)の計算で、ボローが発生すれば(If Borrow=1)i番目の商デジットq−iは‘−1’になり、(i−1)番目の部分の余りx(i−1)の計算で、ボローが発生しなければ(If Borrow=0)i番目の商デジットq−iは‘0’になる。
【0028】
次の表3及び4は、被除数z=0.01000101であり、除数d=0.1010である場合、既存の基数−2SRT割り算アルゴリズムにより得られる割り算の結果と、本発明の基数−2割り算アルゴリズムにより得られる割り算の結果と、を各々示している。
【0029】
【表3】
【0030】
【表4】
【0031】
表3及び表4から、既存の基数−2SRT割り算アルゴリズムの演算結果(表3)と本発明の基数−2割り算アルゴリズムの演算結果(表4)とが、同一であることがわかる。
【0032】
本発明の基数−2割り算アルゴリズムによれば、表4に示したように、一番目の繰り返し演算で、初期部分の余りx(0)から一番目の商デジットq−1 が計算され、次に、前記計算されたq−1 に基づいて、商予測テーブルQPTが二番目の商デジットq−2 を予測する。( 従来の基数−2SRT割り算アルゴリズムによれば、q−2 は二番目の繰り返し演算から求められる。)そして、商デジットq−1 及びq−2 により、一番目の部分の余りx(1)が計算される。二番目の繰り返し演算で、x(1)から三番目の商デジットq−3 が計算され、このq−3 に基づいて、商予測テーブルQPTが四番目の商デジットq−4 を予測する。(従来の基数−2SRT割り算アルゴリズムによれば、q−4 は四番目の繰り返し演算から求められる)。そして、デジットq−3 及びq−4 により二番目の部分の余りx(2)が計算される。したがって、本発明の基数−2割り算アルゴリズムによれば、従来の基数−2SRT割り算アルゴリズムの一番目の部分の余りx(1)と三番目の部分の余りx(3)とを求めるための繰り返し演算を省略できるので、本発明のアルゴリズムの待ち時間は、従来の基数−2割り算アルゴリズムに比べて1/2に減る。さらに、本発明の基数−2割り算アルゴリズムの各繰り返し演算の遂行時間は、従来の基数−2SRT割り算アルゴリズムのそれと同一であるので、本発明の基数−2割り算アルゴリズムは、従来の基数−2SRT割り算アルゴリズムに比べてさらに速いスピードで割り算を遂行できる。
【0033】
II. 平方根予測テーブル(Root Prediction Table:RPT)を使用する基数−2平方根演算アルゴリズム
本発明による浮動少数点2進平方根演算アルゴリズムの表記法は、次の通りである。
z 被個数(Radicand) z1z0..z−1z−2...z−n(1≦z<4)
q 平方根(Square Root) 1.q−1q−2...q−n(1≦q<2)
x 余り(Remainder) x1x0x−1x−2...x−n(0≦x<4)
【0034】
平方根演算の基本方程式はz=q2+xである。SRT平方根演算アルゴリズムは部分の余りを有し、ルートデジットq−1q−2...q−nを順次に求めることである。
【0035】
基数−2平方根演算の循環式は次の通りである。
x(i)=2x(i−1)q(i−1)−i−i−i …(3)
【0036】
ここで、x(i)とx(i−1)とは、各々i番目及び(i−1)番目の部分の余りを示し、q−iはi番目のルートのデジットを示し、 q(i−1)は(i−1)番目の部分の平方根を示す。また、式(3)で、初期部分の余りx(0)=z−1であり、q−i ∈{−1、0、+1}である。
【0037】
式(3)は、次のように(i−2)番目の繰り返し演算の循環式に変えることができる。
x(i)=4x(i−2)q(i−2)−(i−1)−i+1−(i−1)q(i−1)−i−i−i …(4)
【0038】
ここで、x(i−2)は(i−2)番目の部分の余りであり、q(i−2)番目の部分の平方根、そして、q−(i−1)は番目のルートのデジットである。
【0039】
式(4)で、項2q(i−2)+q−(i−1)2−i+1 をC(i−2)に代置し、項2q(i−1)+q−i2−i をC(i−1)に代置すれば、式4は次のように簡略化されることができる。
x(i)=4x(i−1)C(i−2)−(i−1)C(i−1)−i …(5)
【0040】
ここで、式(5)において、C(i−2)は(i−2)番目の補正項であり、C(i−1)はi番目の繰り返し演算の補正項である。
【0041】
平方根演算も、割り算のように、各繰り返し演算で部分の余りによってルートのデジットを選択し、補正項を生成して次の部分の余りを求める。
【0042】
本発明の基数−2平方根演算アルゴリズムも、本発明の基数−2割り算アルゴリズムのように、ルートデジットセットとして{−1、0、+1}を使用する。
本発明の基数−2平方根演算アルゴリズムで、i番目のルートデジットq−i は(i−1)番目の部分の余りx(i−1)により下のように決められる。
x(i−1)<−1/2であればq−i=−1
−1/2≦x(i−1)<1/2であれば、q−i=0
x(i−1)≧1/2であればq−i=+1
【0043】
本発明の基数−2平方根演算アルゴリズムは(i−2)番目の部分の余りx(i−2)の4ビットに基づいて、i番目のルートデジットq−iを予測する。本発明の基数−2平方根演算アルゴリズムは、(i−2)番目の補正項C(i−2)の生成と同時に、i番目の部分の余りの計算に必要な(i−1)番目の補正項C(i−1)を生成する。特に、(i−1)番目の補正項C(i−1)の生成において、i番目のルートデジットq−i=+1になる場合の補正項とq−i=−1になる場合の補正項とが、予め同時に生成される。このように求められた(i−1)番目のルートのデジットq−(i−1)、i番目のルートのデジットq−i、(i−2)番目の補正項C(i−2)、q−i=+1になる場合のi番目の補正項とq−i=−1になる場合のi番目の補正項とによって、二つの条件的部分の余りx1及びx2が計算され、この条件的部分の余りx1及びx2のうちの一つが、最終的に決められたi番目のルートのデジットq−iの値に従って、x(i)として選択される。
【0044】
上述のように、本発明の基数−2平方根演算アルゴリズムは、(i−1)番目の部分の余りx(i−1)を求めるための繰り返し演算の省略を可能にする。したがって、本発明の基数−2平方根演算アルゴリズムによれば、従来の基数−2SRT平方根演算アルゴリズムに比べて、繰り返し演算遂行時間が1/2に減るが、従来の基数−4SRT平方根演算のアルゴリズムとは異なり、各繰り返し演算の遅延時間が増加しない。
【0045】
本発明によるルートデジットの予測は、下の条件に従って遂行される。
【0046】
被個数z=z2z1x0.z−1z−2...であり、部分の余りx(i)=x2x1x0.x−1x−2...とする。
i番目ルートデジットq−iの予測、ケース1:z−1=0 and x2=0(i'th Root Digit q−i Prediction Case1:z−1=0 and x2=0)
z−1=0、そしてx2=0である場合に、q−(i−1)は常に+1になる。
このような初期の条件下で、
(1)もし 0≦x(i−2)<1 であれば x(i−1)<−1/2 である。
したがって、q−i=−1になる。
(2)もし 1≦x(i−2)<5/4、そして x(i−1)<−1/2 である場合は q−i=−1 になり、もし 1≦x(i−2)<5/4、そして −1/2≦x(i−1)<1/2である場合は q−i=0になる。
(3)もし 5/4≦x(i−2)<3/2、そして −1/2≦x(i−1)<1/2 である場合は q−i=0になり、もし 5/4≦x(i−2)<3/2、そして x(i−1)≧1/2である場合はq−i=+1 になる。
(4)もし 3/2≦x(i−2)<3 であればx(i−1)≧1/2になり、q−i=+1になる。
(5)もし 3≦x(i−2)<13/4、そして x(i−1)<−1/2 である場合はq−i=−1になり、もし 3≦x(i−2)<13/4、そしてx(i−1)≧1/2 になる場合は q−i=+1になる。
(6)もし x(i−2)≧13/4 であれば、x(i−1)<−1/2 になる。したがって、q−i=−1 になる。
i番目ルートデジットq−iの予測、ケース2:z−1=0 and x2=1(i'th Root Digit q−i Prediction Case2:z−1=0 and x2=1)
z−1=0、そしてx2=1である場合に、q−(i−1)は常に−1になる。このような初期条件下で、先の場合(q−i Prediction Case1:Z−1=0 and x2=0)と同一の条件下で、ルートのデジットを求めることができることをこの分野の通常的な知識を有する者は良く理解できる。
【0047】
上の結果に従って、i番目のルートのデジットq−iを予測するための、ルートデジット予測テーブルRPTを作ることが可能である。次の表5は、被個数z=z2z1z0.0z−2...であり、部分の余りx(i)=0x1x0.x−1x−2...である場合(q−i Prediction Case 1:z−1=0 and x2=0)に予測されたi番目のルートのデジットq−iを示し、表6は、被個数z=z2z1z0.0Z−2...であり、部分の余りx(i)=1x1x0.x−1x−2...である場合(q−i Prediction Case 2:z−1=0 and x2=1)に予測されたi番目のルートのデジットq−iを示している。
【0048】
【表5】
【0049】
表5で、例えば、(i−2)番目の部分の余りx(i−2)=000.10x−3x−4...である場合(i−1)番目のルートのデジットq−(i−1)は‘+1’または‘−1’になる。(i−1)番目のルートのデジットq−(i−1)=+1である場合に、(i−1)番目の部分の余りx(i−1)の計算で、ボローが発生すれば、i番目のルートのデジットq−iは‘1’になり、また、この場合に、(i−1)番目の部分の余りx(i−1)の計算で、ボローが発生しなくても、i番目のルートのデジットq−iやはり‘−1’になる。また、例えば、(i−2)番目の部分の余りx(i−2)=010.11x−3x−4...であり、(i−1)番目のルートのデジットq−(i−1)=−1である場合に、(i−1)番目の部分の余りx(i−1)の計算で、キャリー−インが発生すれば、i番目のルートのデジットq−iは‘0’になり、また、この場合に、(i−1)番目の部分の余りx(i−1)の計算で、キャリー−インが発生しなければ、i番目のルートのデジットq−iは‘−1’になる。
【0050】
【表6】
【0051】
表6で、例えば、(i−2)番目の部分の余りx(i−2)=101.01x−3x−4...である場合(i−1)番目のルートのデジットq−(i−1)は‘+1’または‘−1’になる。(i−1)番目のルートのデジットq−(i−1)=+1である場合に、(i−1)番目の部分の余りx(i−1)の計算で、ボローが発生すれば、i番目のルートのデジットq−iは‘−1’になり、また、この場合に、(i−1)番目の部分の余りx(i−1)の計算で、ボローが発生しなければ、i番目のルートのデジットq−iは‘0’になる。また、例えば、(i−2)番目の部分の余りx(i−2)=110.11x−3x−4...であり、(i−1)番目のルートのデジットq−(i−1)=−1である場合に、(i−1)番目の部分の余りx(i−1)の計算でキャリー−インが発生すれば、i番目のルートのデジットq−iは‘+1’になり、また、この場合に、(i−1)番目の部分の余りx(i−1)の計算で、キャリー−インが発生しなければ、i番目のルートのデジットq−iは‘0’になる。
【0052】
次の表7及び8は、被個数z=01.110110である場合に、従来の基数−2SRT平方根演算アルゴリズムにより得られる平方根演算の結果と、本発明の基数−2平方根演算アルゴリズムにより得られる平方根演算の結果とを、各々示している。
【0053】
【表7】
【0054】
【表8】
【0055】
従来の基数−2SRT平方根演算アルゴリズムは、表7で示したように、各繰り返し演算で、部分の余りの関係に従って各ルートのデジットを決め、決められたルートのデジットを使用して、次の部分の余りを計算するので、浮動少数点のデジット(Whole Bits+Fraction Bits )の数と同一の数の繰り返し演算が必要である。
【0056】
一方、本発明の基数−2平方根演算アルゴリズムによれば、表8で示したように、初期部分の余りx(0)からルートのデジットq0 及びq−1 が求められ、q0 及びq−1 に基づいてルートデジット予測テーブルRPTがq−2 を予測する。(従来の基数−2SRT平方根演算アルゴリズムによれば、q−2 は二番目の繰り返し演算から求められる。)そして、デジットq0 、q−1 及びq−2 により一番目の部分の余りx(1)が計算される。二番目の繰り返し演算で、x(1)からq−3 が計算され、q−3 に基づいてルート予測テーブルRPTがq−4 を予測する(従来の基数−2SRT平方根演算アルゴリズムによれば、q−4 四番目の繰り返し演算から求められる)。そして、デジットq−3 及びq−4 により二番目の部分の余りx(2)が計算される。三番目の繰り返し演算で、x(2)からq−5 が計算され、q−5 に基づいてルート予測テーブルRPTがq−6 を予測する。(従来の基数−2SRT平方根演算アルゴリズムによれば、q−6 は六番目の繰り返し演算から求められる)。そして、デジットq−5 及びq−6 により三番目の部分の余りx(3)が計算される。
【0057】
したがって、本発明の基数−2平方根演算アルゴリズムによれば、従来の基数−2SRT平方根演算アルゴリズムの一番目の部分の余りx(1)、三番目の部分の余りx(3)、及び五番目の部分の余りx(5)を求めるための繰り返し演算を省略することができるので、本発明のアルゴリズムの待ち時間は、従来の基数−2SRTアルゴリズムに比べて1/2に減る。さらに、本発明の基数−2平方根演算アルゴリズムのそれと同一であるので、本発明の基数−2平方根演算アルゴリズムは、従来の基数−2SRT平方根演算アルゴリズムに比べて、さらに速いスピードで平方根演算を遂行できる。
【0058】
図1は、本発明による割り算及び/または平方根計算装置1の機能的回路ブロック図である。
割り算及び/または平方根計算装置1は、割り算/平方根演算の遂行に必要なクロック信号CLKsと制御信号を供給する制御器10、割り算のための除数dを貯蔵するための除数レジスタ12、(i−2)番目の商デジットq−(i−2)を貯蔵するための、または(i−2)番目のルートのデジットq−(i−2)を含む(i−2)番目の部分の平方根q(i−2)を貯蔵するための商/ルートレジスタ14、(i−2)番目の部分の余りx(i−2)を貯蔵するための余りレジスタ16、を備える。また、割り算/平方根計算装置1は、(i−2)番目の部分の余りx(i−2)により(i−1)番目の商/ルートのデジットq−(i−1)を選択する商/ルートデジット選択器18、及び(i−1)番目の商デジットq−(i−1)を貯蔵するための、または(i−1)番目のルートのデジットq−(i−1)を含む(i−1)番目の部分の平方根q(i−1)を貯蔵するための商/ルートレジスタ20、を備える。
【0059】
マルチプレクサ22は、除数レジスタ12の内容(すなわち、除数d)と、レジスタ14の内容、(すなわち、商デジットq−(i−2)またはルートのデジットq−(i−2)を含む(i−2)番目の部分の平方根q(i−2))のうちのいずれか一つを、補正項生成器26に選択的に提供する。マルチプレクサ24は、レジスタ12の内容(すなわち、除数d)と商/ルートレジスタ20の内容(すなわち。商デジットq−(i−1)またはルートのデジットq−(i−1)を含む(i−1)番目の部分の平方根q(i−1))のうちのいずれか一つを、補正項生成器28及び30で選択的に提供する。具体的には、割り算の間に、マルチプレクサ22及び24は、除数レジスタ12に貯蔵された除数dを、補正項生成器26、28及び30に提供する。平方根演算の間には、マルチプレクサ22が(i−2)番目の部分の平方根q(i−2)を補正項生成器26に提供し、マルチプレクサ24が(i−1)番目の部分の平方根q(i−1)を、補正項生成器28及び30に提供する。
【0060】
補正項生成器26は(i−2)番目の補正項を生成する。補正項生成器28及び30は(i−1)番目の補正項を生成する。特に、補正項生成器28は、i番目の商/ルートのデジットq−1=1であることの仮定下で、(i−1)番目の補正項を生成し、補正項生成器30は、i番目の商/ルートのデジットq−1=−1であることの仮定の下で、(i−1)番目の補正項を生成する。補正項生成器26、28及び30は、補正項を同時に生成する。補正項生成器26の出力は減算器32及び34に提供され、補正項生成器28及び30の出力は減算器32及び34に各々提供される。
【0061】
減算器32、34は、余りレジスタ16の内容(すなわち、x(i−2))が供給される。減算器32は、(i−2)番目の部分の余りx(i−2)のレフト−シフトされた値4x(i−2)から、補正項生成器26の出力そして/または補正項生成器28の出力を引く。類似するに、減算器34は(i−2)番目の部分の余りx(i−2)のレフト−シフトされた値4x(i−2)から補正項生成器26の出力、そして/または補正項生成器30の出力、を引く。減算器32は、割り算時に(i−2)番目の部分の余りのレフト−シフトされた値4x(i− 2)から、補正項生成器28の出力を引く。減算器32は、平方根演算時に(i−2)番目の部分の余りのレフト−シフトされた値4x(i−2)から、補正項生成器26及び補正項生成器28の出力を引く。減算器34は、割り算時に(i−2)番目の部分の余りのレフト−シフトされた値4x(i−2)から補正項生成器30の出力を引く。減算器34は、平方根演算時に、(i−2)番目の部分の余りのレフト−シフトされた値4x(i−2)から、補正項生成器26及び補正項生成器30の出力を引く。減算器32及び34の出力x1、x2は、マルチプレクサ36に提供される。
【0062】
図1で、参照番号38は、キャリー伝播検出器(Carry Propagation Detecter)を示す。キャリー伝播検出器38は(i−2)番目の補正項から(i−1)番目の部分の余りx(i−1)の計算で、ボローまたはキャリー−インが発生するか否かを検出する。キャリー伝播検出技術は、与えられた位置で、キャリーが発生するか、伝播されるか、または消滅されるかを検出することであり、この技術の分野で、よく知られていることであるので、ここでは、それに対する詳細な説明は省略する。
【0063】
本発明による割り算/平方根計算(演算)を行う計算装置1は、二つの商/ルートデジット予測テーブルロジック40及び42を備える。商/ルートデジット予測テーブルロジック40は、先の表1、2、5及び6のボローまたはキャリー−インが発生する場合(すなわち、Borrow/Carry-in =1 )のi番目の商/ルートデジットを有している。一方、商/ルートデジット予測テーブルロジック42は、先の表1、2、5、6のボローまたはキャリー−インが発生しない場合(すなわち、Borrow/Carry-in =1 )のi番目の商/ルートデジットを有している。商/ルートデジット予測テーブルロジック40及び42は、余りレジスタ16の内容(すなわち、x(i−2))と商/ルートレジスタ20の内容(すなわち、q−(i−1)とが供給される。
【0064】
商/ルートデジット予測テーブルロジック40は、余りレジスタ16の内容(すなわち、x(i−2))と商/ルートレジスタ20との内容(すなわち、q−(i−1))に対応する、i番目の条件的商/ルートのデジットq1(すなわち、Borrow/Carry-in =1 である場合の、i番目の商/ルートのデジット)を予測する。商/ルートデジット予測テーブルロジック42は、レジスタ16の内容(すなわち、x(i−2))と商/ルートレジスタ20の内容(すなわち、q−(i−1))とに対応する、i番目の条件的商/ルートのデジットq2(すなわち、Borrow/Carry-in =0である場合の、i番目の商/ルートのデジット)を予測する。
【0065】
商/ルートデジット予測テーブルロジック40及び42の出力q1、q2は、マルチプレクサ44に提供される。マルチプレクサ44は、キャリー伝播検出器38の出力に応答して、商/ルートデジット予測テーブルロジック40及び42の出力q1、q2のうちの一つを選択し、マルチプレクサ44の出力q1またはq2がi番目の商/ルートのデジットq−i として決められる。
【0066】
マルチプレクサ44から出力されるi番目の商/ルートのデジットq−i は、マルチプレクサ36に提供されると同時に、レジスタ46に貯蔵される。一方、マルチプレクサ36は、i番目の商/ルートのデジットq−i に応答して、減算器32及び34の出力x1、x2のうちの一つを選択し、マルチプレクサ36の出力のx1またはx2は、i−1番目の部分の余りx(i)として余りレジスタ48に貯蔵される。
【0067】
以上のように、本発明の割り算及び平方根計算装置1で、補正項生成器と部分の余りを計算するブロックが割り算及び平方根演算のために共有される。したがって、本発明の割り算及び平方根計算装置1は小さい面積オーバーヘッド(Area Overhead)を有する。
【0068】
【発明の効果】
本発明の基数−2アルゴリズムによれば、(i−1)番目の部分の余りの計算に必要な(i−1)番目の補正項が(i−2)番目の補正項と同時に生成されるので、(i−1)番目の部分の余りを求めるための繰り返し演算の省略が可能となった。したがって、従来の基数−2SRTアルゴリズムに比べて繰り返し演算時間が1/2に減るが、従来の基数−4SRTアルゴリズムとは異なり、各繰り返し演算の遅延時間が増えることがない。また、本発明による割り算及び平方根計算装置の補正項生成器及び部分の余りの計算ブロックが、割り算及び平方根演算のために共有されるので、本発明による割り算及び平方根計算装置は、小さい面積オーバーヘッドを有することとなる。
【図面の簡単な説明】
【図1】本発明による割り算(及び/または)平方根計算を行う計算装置の機能的回路ブロック図である。
【符号の説明】
1 割り算(及び/または)平方根計算(演算)を行う計算装置
10 制御器
12 除数レジスタ
14、20、46 商/ルートレジスタ
16、48 余りレジスタ
18 商/ルートデジット選択器
22、24、36、44 マルチプレクサ
26、28、30 補正項生成器
32、34 減算器
38 キャリー伝播検出器(CPD)
40、42 商/ルートデジット予測テーブルロジック(Q/RPT)
Claims (22)
- 被除数を除数で割って商を生成する割り算を含む演算を行う計算装置において、
第1補正項を生成する第1補正項生成器と、
第2補正項を生成する第2補正項生成器と、
(i−2)番目の部分の余りのレフト−シフトされた値から前記第1補正項を引く第1引き算器と、
前記(i−2)番目の部分の余りの前記レフト−シフトされた値から前記第2補正項を引く第2引き算器と、
前記(i−1)番目の部分の余りの計算で、ボローが発生するか否かを検出するキャリー伝達検出器と、
(1−i)番目の商デジット、前記(i−2)番目の部分の余り及びキャリー伝達検出器の出力に応答してi番目の商デジットを予測する商デジット予測手段と、
前記予測されたi番目の商デジットに応答して前記第1及び第2引き算器の出力のうちの一つをi番目の部分の余りとして選択する選択手段と、
を含む、ことを特徴とする計算装置。 - 前記第1補正項は、前記予測されたi番目の商デジットが+1である場合の条件的補正項であり、前記第2補正項は、前記予測されたi番目の商デジットが−1である場合の条件的補正項である、ことを特徴とする請求項1に記載の計算装置。
- 前記商デジット予測手段は、
前記(i−1)番目の商デジット及び前記(i−2)番目の部分の余りに応答して、第1商デジットを予測する第1商デジット予測テーブルロジックと、
前記(i−1)番目の商デジット及び前記(i−2)番目の部分の余りに応答して、第2商デジットを予測する第2商デジット予測テーブルロジックと、
前記キャリー伝達検出器の前記出力に応答して、前記第1及び第2商デジットのうちの一つを前記i番目の商デジットとして選択するマルチプレクサと、
を含む、ことを特徴とする請求項1に記載の計算装置。 - 前記第1商デジットは、ボローが発生した場合の条件的商デジットであり、前記第2商デジットは、ボローが発生しない場合の条件的商デジットである、ことを特徴とする請求項3に記載の計算装置。
- 前記計算装置は、浮動小数点割り算を行う装置である、ことを特徴とする請求項1に記載の計算装置。
- 被除数xを除数dで割って商qを生成する割り算を含む計算を行う計算装置において、
各繰り返し演算で、下の式に与えられる部分の余りを計算する繰り返し的な割り算回路と、
x(i)=4x(i−2)−(2q−(i−1)+q−i)*d
ここで、x(i)はi番目の部分の余り、 x(i−2)は(i−2)番目の部分の余り、q−(i−1)は(i−1)番目の商デジット、q−iはi番目の商デジット、x(0)=x、そしてq−i∈{−1、0、+1}、
前記(i−2)番目の部分の余りから前記(i−1)番目の商デジットを選択する商デジット選択回路と、
(i−1)番目の部分の余りの計算で、ボローが発生するか否かを検出するキャリー伝達検出器と、
前記(i−1)番目の商デジット、前記(i−2)番目の部分の余り及び前記キャリー伝達検出器の出力に応答して、i番目の商デジットを予測する商デジット予測回路と、
を含む、ことを特徴とする計算装置。 - 前記(i−2)番目の部分の余り、前記(i−1)番目の商デジットと前記予測された商デジットによりi番目の部分の余りを計算する回路をさらに含む、ことを特徴とする請求項6に記載の計算装置。
- 前記計算装置は、浮動小数点割り算装置である、ことを特徴とする請求項6に記載の割り算装置。
- 前記(i−1)番目の商デジット、前記(i−2)番目の部分の余り、前記i番目の商デジット、及び前記i番目の部分の余りを貯蔵する貯蔵回路をさらに含む、ことを特徴とする請求項6に記載の計算装置。
- 各繰り返し演算で、x(i)=4x(i−2)−(2q−(i−1)+q−i)*d、ここで、x(i)はi番目の部分の余り、x(i−2)は(i−2)番目の部分の余り、q−(i−1)は(i−1)番目の商デジット、q−iはi番目の商デジット、x(0)=x、そしてq−i∈{−1、0、+1}、に与えられる一つの部分の余りを計算する繰り返し割り算技法を使用して、被除数xを除数dで割って商qを生成する割り算方法を含む計算方法において、
(a)前記(i−2)番目の部分の余りx(i−2)から前記(i−1)番目の商デジットq−(i−1)を選択する段階と、
(b)(i−1)番目の部分の余りの計算で、ボローが発生するか否かを検出する段階と、
(c)前記(i−1)番目の商デジット、前記(i−2)番目の部分の余り、そして前記ボローが発生するか否かに基づいて、(i−1)番目の部分の余りの計算なしに、i番目の商デジットを予測し、前記予測されたi番目の商デジットにより前記i番目の部分の余りを計算する段階と、を備え、
(d)前記商qを計算するために前記段階(b)及び(c)を繰り返すこと、
を特徴とする計算方法。 - 繰り返し演算技法により被個数の平方根を計算する手段を含む計算装置において、
(i−2)番目の部分の余りから(i−1)番目のルートのデジットを選択するルートデジット選択器と、
(i−2)番目の部分の平方根と前記(i−1)番目のルートのデジットにより第1補正項を生成する第1補正項生成器と、
(i−1)番目の部分の平方根により第2補正項を生成する第2補正項生成器と、
前記(i−1)番目の部分の平方根により第3補正項を生成する第3補正項生成器と、
前記(i−2)番目の部分の余りのレフト−シフトされた値から前記第1補正項及び前記第2補正項を引く第1引き算器と、
前記(i−2)番目の部分の余りの前記レフト−シフトされた値から前記第1補正項及び第2補正項を引く第2引き算器と、
(i−1)番目の部分の余りの計算で、ボローまたはキャリー−インが発生するか否かを検出するキャリー伝達検出器と、
前記(i−1)番目のルートのデジット、前記(i−2)番目の部分の余り及び前記キャリー伝達検出器の出力に応答してi番目のルートのデジットを予測するルートデジット予測手段と、
前記予測されたi番目のルートのデジットに応答して前記第1及び第2引き算器の出力のうちの一つをi番目の部分の余りとして選択する選択手段と、
を含むことを特徴とする計算装置。 - 前記第2補正項は、前記予測されたi番目のルートのデジットが+1である場合の条件的補正項であり、前記第3補正項は、前記予測されたi番目のルートのデジットが−1である場合の条件的補正項である、
ことを特徴とする請求項11に記載の計算装置。 - 前記ルートデジット予測手段は、
前記(i−1)番目のルートのデジット及び前記(i−2)番目の部分の余りに応答して、第1ルートのデジットを予測する第1ルートデジット予測テーブルロジックと、
前記(i−1)番目のルートのデジット及び前記(i−2)番目の部分の余りに応答して、第2ルートのデジットを予測する第2ルートデジット予測テーブルロジックと、
前記キャリー伝達検出器の前記出力に応答して、前記第1及び第2ルートのデジットのうちの一つを前記i番目のルートのデジットとして選択するマルチプレクサと、を含む、ことを特徴とする請求項11に記載の計算装置。 - 前記(i−1)番目のルートのデジット、前記(i−2)番目の部分の余り、前記i番目のルートのデジット、及び前記i番目の部分の余りを貯蔵する貯蔵回路をさらに含む、ことを特徴とする請求項11に記載の計算装置。
- 前記(i−2)番目の部分の余り、前記(i−2)番目の部分の平方根、前記(i−1)番目の部分の平方根、及びi番目の部分の平方根を貯蔵する貯蔵回路をさらに含む、ことを特徴とする請求項11に記載の計算装置。
- 各繰り返し演算で次の式に与えられる部分の余りを計算する繰り返し的な平方根演算回路を含む計算装置において、
各繰り返し演算で、次の式の計算を行い、
x(i)=4x(i−2)−2(2q(i−2)+q−(i−1)2−i+1)q−(i−1)−2(2q(i−1)+q−i2−i)q−i
ここで、x(i)はi番目の部分の余りを示し、x(i−1)は(i−1)番目の部分の余り、x(i−2)は(i−2)番目の部分の余り、q−iはi番目のルートのデジット、q−(i−1)は(i−1)番目のルートのデジット、q(i−1)は(i−1)番目の部分の平方根、q(i−2)は(i−2)番目の部分の平方根、x(0)=z−1,そしてq−i∈{−1、0、+1}、
前記(i−2)番目の部分の余りから前記(i−1)番目のルートのデジットを選択するルートデジット選択回路と、
(i−1)番目の部分の余りの計算で、ボローまたはキャリー−インが発生するか否かを検出するキャリー伝達検出器と、
前記(i−1)番目のルートのデジット、前記(i−2)番目の部分の余り及び前記キャリー伝達検出器の出力に応答して、i番目のルートのデジットを予測するルートデジット予測回路と、を含む、ことを特徴とする計算装置。 - 前記(i−2)番目の部分の余り、前記i番目の部分の余り、前記(i−2)番目の部分の平方根、前記(i−1)番目の部分の平方根、及びi番目の部分の平方根を貯蔵する貯蔵回路、をさらに含む、ことを特徴とする請求項16に記載の計算装置。
- 前記計算装置は、浮動小数点平方根演算を行う装置である、ことを特徴とする請求項16に記載の計算装置。
- 前記繰り返し的な平方根演算回路は、
(i−2)番目の部分の平方根と前記(i−1)番目のルートのデジットにより第1補正項を生成する第1補正項生成器と、
(i−1)番目の部分の平方根により第2補正項を生成する第2補正項生成器と、
前記(i−1)番目の部分の平方根により第3補正項を生成する第3補正項生成器と、
前記(i−2)番目の部分の余りのレフト−シフトされた値から前記第1補正項及び前記第2補正項を引く第1引き算器と、
前記(i−2)番目の部分の余りの前記レフト−シフトされた値から前記第1補正項及び前記第2補正項を引く第2引き算器と、
前記(i−1)番目のルートのデジット、前記(i−2)番目の部分の余り及び前記キャリー伝達検出器の出力に応答して、i番目のルートのデジットを予測するルートデジット予測手段と、
前記予測されたi番目のルートのデジットに応答して、前記第1及び第2引き算器の出力のうちの一つをi番目の部分の余りとして選択する選択手段と、を含む、ことを特徴とする請求項16に記載の計算装置。 - 前記第2補正項は、前記予測されたi番目のルートのデジットが+1である場合の条件的補正項であり、前記第3補正項は、前記予測されたi番目のルートのデジットが−1である場合の条件的補正項である、ことを特徴とする請求項19に記載の計算装置。
- 前記ルートデジット予測手段は、
前記(i−1)番目のルートのデジット及び前記(i−2)番目の部分の余りに応答して、第1ルートのデジットを予測する第1ルートデジット予測テーブルロジックと、
前記(i−1)番目のルートのデジット及び前記(i−2)番目の部分の余りに応答して、第2ルートのデジットを予測する第2ルートデジット予測テーブルロジックと、
前記キャリー伝達検出器の前記出力に応答して、前記第1及び第2ルートのデジットのうちの一つを前記i番目のルートのデジットとして選択するマルチプレクサと、を含む、ことを特徴とする請求項19に記載の計算装置。 - 各繰り返し演算で、
x(i)=4x(i−2)−2(2q(i−2)+q−(i−1)2−i+1)q−(i−1)−2(2q(i−1)+q−i2−i)q−i 、ここで、x(i)はi番目の部分の余りを示し、x(i−1)は(i−1)番目の部分の余り、x(i−2)は(i−2)番目の部分の余り、q−iはi番目のルートのデジット、q−(i−1)は(i−1)番目のルートのデジット、q(i−1)は(i−1)番目の部分の平方根、q(i−2)は(i−2)番目の部分の平方根、x(0)=z−1、そしてq−i∈{−1、0、+1}、に与えられる一つの部分の余りを計算する繰り返し割り算技法を使用して、被個数zの平方根qを計算するための計算方法において、
(a)前記(i−2)番目の部分の余りから前記(i−1)番目のルートのデジットを選択する段階と、
(b)前記(i−1)番目の部分の余りの計算で、ボローまたはキャリー−インが発生するか否かを検出する段階と、
(c)前記(i−1)番目のルートのデジット、前記(i−2)番目の部分の余り、そして前記ボローまたはキャリー−インが発生するか否かに基づいて、前記(i−1)番目の部分の余りの計算なしに、前記i番目のルートのデジットを予測し、前記予測されたi番目のルートのデジットにより前記i番目の部分の余りを計算する段階と、を備え、
(d)前記平方根qを計算するために前記段階(b)及び(c)を繰り返すこと、を特徴とする計算方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR2001-072685 | 2001-11-21 | ||
KR10-2001-0072685A KR100407562B1 (ko) | 2001-11-21 | 2001-11-21 | 제산 및 제곱근 계산 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003216419A JP2003216419A (ja) | 2003-07-31 |
JP3941868B2 true JP3941868B2 (ja) | 2007-07-04 |
Family
ID=19716158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002338440A Expired - Fee Related JP3941868B2 (ja) | 2001-11-21 | 2002-11-21 | 計算装置及び計算方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US7185040B2 (ja) |
JP (1) | JP3941868B2 (ja) |
KR (1) | KR100407562B1 (ja) |
GB (1) | GB2386986B (ja) |
TW (1) | TWI227837B (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060059216A1 (en) * | 2004-09-10 | 2006-03-16 | Silicon Integrated Systems Corp. | Method for square root computation |
US20100332576A1 (en) * | 2007-09-10 | 2010-12-30 | Electronics And Telecommunications Research Institute | Apparatus and method of calculating square root in finite extension field |
US8868633B2 (en) * | 2012-03-30 | 2014-10-21 | Advanced Micro Devices, Inc. | Method and circuitry for square root determination |
US9348796B2 (en) | 2013-09-19 | 2016-05-24 | International Business Machines Corporation | Arithmetic operation in a data processing system |
TWI640918B (zh) * | 2016-03-02 | 2018-11-11 | 瑞昱半導體股份有限公司 | 快速除法器及快速除法運算方法 |
US10209959B2 (en) | 2016-11-03 | 2019-02-19 | Samsung Electronics Co., Ltd. | High radix 16 square root estimate |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3852581A (en) * | 1972-12-14 | 1974-12-03 | Burroughs Corp | Two bit binary divider |
US4939686A (en) * | 1987-05-18 | 1990-07-03 | Weitek Corporation | Method and apparatus for shared radix 4 division and radix 4 square root |
US5132925A (en) * | 1988-08-18 | 1992-07-21 | Digital Equipment Corporation | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction |
US5128891A (en) * | 1990-04-02 | 1992-07-07 | Advanced Micro Devices, Inc. | High speed divider with square root capability |
US5258944A (en) * | 1992-09-01 | 1993-11-02 | Cray Research, Inc. | High performance mantissa divider |
US5404324A (en) * | 1993-11-01 | 1995-04-04 | Hewlett-Packard Company | Methods and apparatus for performing division and square root computations in a computer |
JPH08147146A (ja) * | 1994-11-24 | 1996-06-07 | Fujitsu Ltd | 除算演算装置 |
JP3609512B2 (ja) * | 1994-12-15 | 2005-01-12 | 株式会社東芝 | 演算器 |
US5696712A (en) * | 1995-07-05 | 1997-12-09 | Sun Microsystems, Inc. | Three overlapped stages of radix-2 square root/division with speculative execution |
US5818745A (en) * | 1996-05-31 | 1998-10-06 | Intel Corporation | Computer for performing non-restoring division |
EP0837390A1 (en) * | 1996-10-18 | 1998-04-22 | Texas Instruments Incorporated | Improvements in or relating to microprocessor integrated circuits |
JPH10187420A (ja) * | 1996-12-26 | 1998-07-21 | Hitachi Ltd | 除算・開平演算器 |
US6163791A (en) * | 1998-02-02 | 2000-12-19 | International Business Machines Corporation | High accuracy estimates of elementary functions |
US6108682A (en) * | 1998-05-14 | 2000-08-22 | Arm Limited | Division and/or square root calculating circuit |
KR20000074611A (ko) * | 1999-05-24 | 2000-12-15 | 윤종용 | 하이 래딕스 플로팅 포인트 제산기 |
US6847985B1 (en) * | 2001-08-10 | 2005-01-25 | Lsi Logic Corporation | Floating point divide and square root processor |
-
2001
- 2001-11-21 KR KR10-2001-0072685A patent/KR100407562B1/ko not_active IP Right Cessation
-
2002
- 2002-07-05 TW TW091114926A patent/TWI227837B/zh not_active IP Right Cessation
- 2002-10-01 US US10/262,449 patent/US7185040B2/en not_active Expired - Fee Related
- 2002-11-20 GB GB0227133A patent/GB2386986B/en not_active Expired - Fee Related
- 2002-11-21 JP JP2002338440A patent/JP3941868B2/ja not_active Expired - Fee Related
-
2007
- 2007-01-17 US US11/654,255 patent/US7809784B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2386986B (en) | 2004-03-24 |
GB0227133D0 (en) | 2002-12-24 |
US20070118584A1 (en) | 2007-05-24 |
US7809784B2 (en) | 2010-10-05 |
KR100407562B1 (ko) | 2003-11-28 |
KR20030042151A (ko) | 2003-05-28 |
US20030187900A1 (en) | 2003-10-02 |
GB2386986A (en) | 2003-10-01 |
US7185040B2 (en) | 2007-02-27 |
TWI227837B (en) | 2005-02-11 |
JP2003216419A (ja) | 2003-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3689183B2 (ja) | 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算 | |
EP0450754B1 (en) | High speed dividers | |
JP2622896B2 (ja) | 除算装置 | |
KR19990072273A (ko) | 초등함수값을고정밀도로어림계산하는시스템및방법 | |
JP2835153B2 (ja) | 高基数除算器 | |
JP2012069123A (ja) | 選択可能な下位精度を有する浮動小数点プロセッサ | |
JP2002108606A (ja) | スティッキービット生成回路及び乗算器 | |
US8060551B2 (en) | Method and apparatus for integer division | |
JP4302640B2 (ja) | 被乗数のシフトを用いて乗算を計算するための装置およびその方法、上記装置を実行するためのプログラムコードを格納した記録媒体 | |
US7809784B2 (en) | Apparatus and method for calculation of divisions and square roots | |
US7143126B2 (en) | Method and apparatus for implementing power of two floating point estimation | |
JP2585649B2 (ja) | 除算回路 | |
KR20020063058A (ko) | 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치 | |
Takagi et al. | A hardware algorithm for integer division | |
JP3551113B2 (ja) | 除算器 | |
JP4273071B2 (ja) | 除算・開平演算器 | |
US7366745B1 (en) | High-speed function approximation | |
JP4279626B2 (ja) | 剰余系演算システム、スケーリング演算器、スケーリング演算方法、及びそのプログラムと記録媒体 | |
Dixit et al. | FPGA accomplishment of a 16-bit divider | |
JPH086766A (ja) | 正弦余弦演算装置 | |
JP3793505B2 (ja) | 演算器及びそれを用いた電子回路装置 | |
JP3517162B2 (ja) | 除算・開平演算装置 | |
JP2790327B2 (ja) | 剰余乗算回路および剰余乗算方法 | |
JP2518532B2 (ja) | 減算シフト型除算器 | |
JP2000010763A (ja) | 除算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050111 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070313 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070327 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3941868 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110413 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120413 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120413 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130413 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130413 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140413 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |