JPH0628155A - 除算方法および除算装置 - Google Patents
除算方法および除算装置Info
- Publication number
- JPH0628155A JPH0628155A JP3275744A JP27574491A JPH0628155A JP H0628155 A JPH0628155 A JP H0628155A JP 3275744 A JP3275744 A JP 3275744A JP 27574491 A JP27574491 A JP 27574491A JP H0628155 A JPH0628155 A JP H0628155A
- Authority
- JP
- Japan
- Prior art keywords
- divisor
- complement
- operand
- quotient
- dividend
- 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.)
- Granted
Links
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
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5355—Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
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)
Abstract
(57)【要約】
【目的】 高価なハードウェアを付加することなく除算
器の実行時間を短縮すること。 【構成】 ディジタル除数オペランドDによりディジタ
ル被除数オペランドNを除算した商オペランドQを最短
の時間および最少のハードウェアで得るためのシステ
ム。このシステムでは値NP0 P1 …Pm の計算を行
う。値P0 P1 …Pmの大きさはNP0 P1 …Pm がQ
に、DP0 P1 が1に夫々収束するようなものである。
この除算装置は、1の補数、乗算シーケンスおよび加算
シーケンスを用いて値NP0 P1 …Pm を計算する。
器の実行時間を短縮すること。 【構成】 ディジタル除数オペランドDによりディジタ
ル被除数オペランドNを除算した商オペランドQを最短
の時間および最少のハードウェアで得るためのシステ
ム。このシステムでは値NP0 P1 …Pm の計算を行
う。値P0 P1 …Pmの大きさはNP0 P1 …Pm がQ
に、DP0 P1 が1に夫々収束するようなものである。
この除算装置は、1の補数、乗算シーケンスおよび加算
シーケンスを用いて値NP0 P1 …Pm を計算する。
Description
【0001】
【産業上の利用分野】本発明は高速乗算器および2次元
収束を用いた除算に関し、より詳細には、実行時間を短
縮するために補数演算、乗算および加算のシーケンスを
用いる改良された除算装置に関する。
収束を用いた除算に関し、より詳細には、実行時間を短
縮するために補数演算、乗算および加算のシーケンスを
用いる改良された除算装置に関する。
【0002】
【従来の技術】除算はこれまで周知のアルゴリズム、す
なわち加算/減算をくり返すことにより商を発生するア
ルゴリズムを用いて行われている。そのような除算の原
理的な問題点は、それらの収束速度が線形であるという
点にある。反復される手順の夫々の実行により、前の手
順で得られた商の桁とほゞ同数のビットが加わる。これ
については例えばK. Hwang著「computer Arithmetic
」、J. Wiley & Sons 出版社(1979)発行を参照されさ
たい。そのようなアルゴリズムによる除算の実行速度は
低く、より高速の除算を行うためには使用不可能となり
うるようなハードウェアを用いなければならない。
なわち加算/減算をくり返すことにより商を発生するア
ルゴリズムを用いて行われている。そのような除算の原
理的な問題点は、それらの収束速度が線形であるという
点にある。反復される手順の夫々の実行により、前の手
順で得られた商の桁とほゞ同数のビットが加わる。これ
については例えばK. Hwang著「computer Arithmetic
」、J. Wiley & Sons 出版社(1979)発行を参照されさ
たい。そのようなアルゴリズムによる除算の実行速度は
低く、より高速の除算を行うためには使用不可能となり
うるようなハードウェアを用いなければならない。
【0003】2次元収束にもとづく除算アルゴリズムは
IBM社のシステム/360モデル91用に設計されて
いる。このアルゴリズム(ここでは「IBM」法と呼ぶ
ことにする)は、特に高速乗算器の設計を可能にする技
術のための高速除算ハードウェアを実現している。これ
については、S.F. Anderson 他著「The IBM System/36
0 Model 91: Floating Point Execution Unit 」, IBM
Journal pp. 34-53 (1967 年 1月)を参照されたい。高
速乗算器でそのような除算を行うのに必要なオーバーヘ
ッドは小さく、パフォーマンス上の利点は従来の大型乗
算器に比肩しうることにある。かくして、除算器の設計
に2次元アルゴリズムを用いることにより、ハードウェ
アおよび実行時間の両方が、加算/減算を用いる従来の
アルゴリズムと比較すると軽減される。
IBM社のシステム/360モデル91用に設計されて
いる。このアルゴリズム(ここでは「IBM」法と呼ぶ
ことにする)は、特に高速乗算器の設計を可能にする技
術のための高速除算ハードウェアを実現している。これ
については、S.F. Anderson 他著「The IBM System/36
0 Model 91: Floating Point Execution Unit 」, IBM
Journal pp. 34-53 (1967 年 1月)を参照されたい。高
速乗算器でそのような除算を行うのに必要なオーバーヘ
ッドは小さく、パフォーマンス上の利点は従来の大型乗
算器に比肩しうることにある。かくして、除算器の設計
に2次元アルゴリズムを用いることにより、ハードウェ
アおよび実行時間の両方が、加算/減算を用いる従来の
アルゴリズムと比較すると軽減される。
【0004】IBM2次元収束型除算アルゴリズムはま
ず除算 Q=N/D を考えて開発されている。ただし、Qは商、Nは被除
数、Dは除数である。この除算の商Qが得られるものと
する。すなわちN<DでありD≠0であるとする。この
除算は次のように表わされる。
ず除算 Q=N/D を考えて開発されている。ただし、Qは商、Nは被除
数、Dは除数である。この除算の商Qが得られるものと
する。すなわちN<DでありD≠0であるとする。この
除算は次のように表わされる。
【0005】Q=N/D=(NR0 R1 …Rn )/(D
R0 R1 …Rn ) 分母DR0 R1 …Rn が1に収束するような0≦k≦n
についてRk が分かれば、Qは次のようになる。
R0 R1 …Rn ) 分母DR0 R1 …Rn が1に収束するような0≦k≦n
についてRk が分かれば、Qは次のようになる。
【0006】Q=NR0 R1 …Rn NとDを夫々正の小数とし、正規化されているとする。
その場合には分母DR0 R1 …Rn は次の場合の1に近
づく。
その場合には分母DR0 R1 …Rn は次の場合の1に近
づく。
【0007】 R0 =1+δ,k=0 Rk =1+δ2**K=2−Dk-1 ,k>0 Dk =1δ2**(k+1)=DR0 R1 …Rk =Dk-1 Rk ここで、符号「**」は、この明細書においては2重累乗
演算を表わすものとする。例えば、表現「x2**y」は
「x2 」から「y」乗までを表わす。
演算を表わすものとする。例えば、表現「x2**y」は
「x2 」から「y」乗までを表わす。
【0008】更に、R0 ,Rk およびDk に代えて、商
は次式でも計算可能である。
は次式でも計算可能である。
【0009】Q=N(1+δ)(1+δ2 )(1+
δ4 )…(1+δ2**n) 例えば、56ビットの小数を考えてみる。Dが正規化ビ
ットすなわち*を0または1としてフォーム0.1
*** …* を有するものとすると、その値は1/2≦D<
1の間であり、Dは次のように表わされる。
δ4 )…(1+δ2**n) 例えば、56ビットの小数を考えてみる。Dが正規化ビ
ットすなわち*を0または1としてフォーム0.1
*** …* を有するものとすると、その値は1/2≦D<
1の間であり、Dは次のように表わされる。
【0010】D=1−δ,ただし0≦δ<1/2 IBM2次元収束アルゴリズムは次のごとくである。
【0011】1. 第1反復について: R0 =1+δ=2−D 後述の附記Aに示すように、R0 は除数Dの2の補数に
より得られる。
より得られる。
【0012】値D0 はDとその2の補数R0 を乗算する
ことにより次のように決定される。
ことにより次のように決定される。
【0013】 D0 =DR0 =(1−δ)(1+δ)=1−δ2 Dは正規化ビットであり、δ≦1/2であるから、δ2
≦1/4でDR0 ≦3/4となり、DR0 はフォーム
0.1**…となる。
≦1/4でDR0 ≦3/4となり、DR0 はフォーム
0.1**…となる。
【0014】2. 第2反復について: R1 =1+δ2 =2−D0 ここでもR1 は上記のように計算された値D0 の2の補
数により得られる。
数により得られる。
【0015】値R1 はその2の補数D0 と乗算されてD
k の次の反復を得る。
k の次の反復を得る。
【0016】R1 =DR0 R1 =D0 R1 =(1−
δ2 )(1+δ2 )=1−δ4 これによりDR0 R1 は0.1111*** …* のフォー
ムとなる。
δ2 )(1+δ2 )=1−δ4 これによりDR0 R1 は0.1111*** …* のフォー
ムとなる。
【0017】次々に同様にして反復が行われる。各反復
はその前のものの2乗となり、DR0 R1 …Rn は0.
111…11に収束し、小数点には56個の1(すなわ
ちこれは1に収束する)が続く。
はその前のものの2乗となり、DR0 R1 …Rn は0.
111…11に収束し、小数点には56個の1(すなわ
ちこれは1に収束する)が続く。
【0018】第1反復により初めの2個の1が生じ、第
2の反復で初めの4個の1が生じ、以下同様に56個の
ビットに収束するには6回の反復が必要である。すなわ
ち、6回の反復により、 DR0 R1 R2 R3 R4 R5 =0.111…11〜1 となり、小数点以下に56個の1がある。商をつくるに
は Q=NR0 R1 R2 R3 R4 R5 =N(1+δ)(1+δ2 )(1+δ4 )(1+δ8 )
(1+δ16)(1+δ32) であり、これは、分母を1に収束させるのに必要な6回
の乗算に加えて更に6回の乗算が必要であることを示
す。
2の反復で初めの4個の1が生じ、以下同様に56個の
ビットに収束するには6回の反復が必要である。すなわ
ち、6回の反復により、 DR0 R1 R2 R3 R4 R5 =0.111…11〜1 となり、小数点以下に56個の1がある。商をつくるに
は Q=NR0 R1 R2 R3 R4 R5 =N(1+δ)(1+δ2 )(1+δ4 )(1+δ8 )
(1+δ16)(1+δ32) であり、これは、分母を1に収束させるのに必要な6回
の乗算に加えて更に6回の乗算が必要であることを示
す。
【0019】しかしながら、 Rk =1+δ2**KおよびDk-1 =1−δ2**k,k≧1 Rk =2−Dk-1 である。
【0020】すなわち、分母を1に収束させるには6回
の乗算が必要であるが、最後の乗算により、商には不要
なDk (k=5)が発生する。このように、そのような
乗算を行う必要がなくなる。図1において、演算のステ
ップ12は、DR0 R1 R2R3 R4 のみであって、D
R0 R1 R2 R3 R4 R5 ではないものが商Qの計算に
必要であるため省略しうることを意味する。その結果、
商を得るためには11回の乗算が所望の結果をつくるた
めに2の補数との間で必要となる。しかしながら、日付
により決まるインターロックのために、11回の乗算は
高速除算器をつくるものではない。
の乗算が必要であるが、最後の乗算により、商には不要
なDk (k=5)が発生する。このように、そのような
乗算を行う必要がなくなる。図1において、演算のステ
ップ12は、DR0 R1 R2R3 R4 のみであって、D
R0 R1 R2 R3 R4 R5 ではないものが商Qの計算に
必要であるため省略しうることを意味する。その結果、
商を得るためには11回の乗算が所望の結果をつくるた
めに2の補数との間で必要となる。しかしながら、日付
により決まるインターロックのために、11回の乗算は
高速除算器をつくるものではない。
【0021】また、この除算器のサイクル時間は乗算器
の速度に関係する。ここで乗算器は高速実行用に並列型
として設計されているものとする。
の速度に関係する。ここで乗算器は高速実行用に並列型
として設計されているものとする。
【0022】
【発明が解決しようとする課題】線形収束法を用いる除
算器と比較してIBM除算器で達成しうる実行時間の大
幅な短縮にもかかわらず、実行サイクルのより以上の短
縮が望まれる。従来よりオーバーヘッドハードウェアの
小さい除算器をつくることも望ましいこととされてい
る。例えば、従来のIBMの除算器で必要な2の補数の
ハードウェアが省略出来れば、ハードウェアの簡略化と
コストの低減に有利である。
算器と比較してIBM除算器で達成しうる実行時間の大
幅な短縮にもかかわらず、実行サイクルのより以上の短
縮が望まれる。従来よりオーバーヘッドハードウェアの
小さい除算器をつくることも望ましいこととされてい
る。例えば、従来のIBMの除算器で必要な2の補数の
ハードウェアが省略出来れば、ハードウェアの簡略化と
コストの低減に有利である。
【0023】本発明によれば、従来の除算器およびこれ
まで提案された2次収束法と比較して除算時間の短い高
速乗算器を用いる高速除算器およびそのハードウェアが
提供される。
まで提案された2次収束法と比較して除算時間の短い高
速乗算器を用いる高速除算器およびそのハードウェアが
提供される。
【0024】本発明の目的は、コスト面で問題となるハ
ードウェアを追加することなく除算器の実行時間を短縮
することである。
ードウェアを追加することなく除算器の実行時間を短縮
することである。
【0025】本発明の更なる目的は、乗算命令の実行に
乗算器のハードウェアが必要であるものとして、これま
での方法と比較しオーバーヘッドを小さくしうる除算装
置を提供することである。
乗算器のハードウェアが必要であるものとして、これま
での方法と比較しオーバーヘッドを小さくしうる除算装
置を提供することである。
【0026】
【課題を解決するための手段および作用】本発明によれ
ば、高速乗算器を用いる除算器はそれが所望の商に高速
で収束するように新規な2次元収束アルゴリズムに従っ
て補数、乗算および加算の演算シーケンスを実行する。
2進法ではこの除算器は1の補数に続き乗算と加算を行
う。好適なハードウェアではこの除算器は周知の2次収
束除算器で用いられる2/1加算器ではなく、3/1加
算器を用いてつくられる。しかしながら本発明は必要と
する2の補数器の使用を省略することによりハードウェ
アの節約を行う。本発明についての除算を行うのに必要
なサイクルの少なくとも3分の1の省略が長さ56ビッ
トのオペランドについて従来のIBMの除算器と比較し
て得られる。
ば、高速乗算器を用いる除算器はそれが所望の商に高速
で収束するように新規な2次元収束アルゴリズムに従っ
て補数、乗算および加算の演算シーケンスを実行する。
2進法ではこの除算器は1の補数に続き乗算と加算を行
う。好適なハードウェアではこの除算器は周知の2次収
束除算器で用いられる2/1加算器ではなく、3/1加
算器を用いてつくられる。しかしながら本発明は必要と
する2の補数器の使用を省略することによりハードウェ
アの節約を行う。本発明についての除算を行うのに必要
なサイクルの少なくとも3分の1の省略が長さ56ビッ
トのオペランドについて従来のIBMの除算器と比較し
て得られる。
【0027】
【実施例】新規な2次元収束アルゴリズムを用いる改良
された除算器は次の通りである。
された除算器は次の通りである。
【0028】小数を考え、そして、そのオペランドの長
さをnとする。次の帰納式を考えてみる。
さをnとする。次の帰納式を考えてみる。
【0029】P0 =1+δ D=1−δ Pk =1+δ2**k Dk =1−δ2**(k+1) =(1−δ2**k)(1+δ2**1) =DP0 P1 P2 …Pk =Dk-1 Pk Pk =Φk +2-(n-1) ここで次の式を考える。
【0030】Q=N/D=(NP0 P1 …Pm )/(D
P0 P1 …Pm ) NとDが正であり、正規化されていれば、2次元収束ア
ルゴリズムは次のことを示す。
P0 P1 …Pm ) NとDが正であり、正規化されていれば、2次元収束ア
ルゴリズムは次のことを示す。
【0031】DP0 P1 …Pm は1に収束し、また、N
P0 P1 …Pm はQに収束する。
P0 P1 …Pm はQに収束する。
【0032】従来のIBM除算器で提案されたアルゴリ
ズムは2の補数でPk の項を計算するが、ここに提案す
る帰納式は計算すべきΦk の項を含むもう一つの式を必
要とする項Pk を含む。
ズムは2の補数でPk の項を計算するが、ここに提案す
る帰納式は計算すべきΦk の項を含むもう一つの式を必
要とする項Pk を含む。
【0033】定義により、 Pk =Φk +2-(n-1) Φk =2−Dk-1 −2-(n-1) であるから、 Dk-1 =1−δ2**k、および、 Pk =1+δ2**k δ2**k=1−Dk-1 、および、 Pk =2−Dk-1 となる。
【0034】附記Bに示すようにΦk はDk-1 の1の補
数であり、 Dk =Dk-1 Pk =Dk-1 (Φk +2-(n-1) =Dk-1 Φk +Dk-1 2-(n-1) である。一つの反復におけるDk-1 とΦk を与えれば、
乗算・加算が1回行われてDk が得られる。このように
DP0 P1 P2 …Pm が乗算ではなく乗算・加算で得ら
れる。
数であり、 Dk =Dk-1 Pk =Dk-1 (Φk +2-(n-1) =Dk-1 Φk +Dk-1 2-(n-1) である。一つの反復におけるDk-1 とΦk を与えれば、
乗算・加算が1回行われてDk が得られる。このように
DP0 P1 P2 …Pm が乗算ではなく乗算・加算で得ら
れる。
【0035】より具体的に、次の例を考えてみる。正規
化されたDを0.1000とすると、Dの1の補数はΦ
0 =1.0111であり、また、 D0 =DP0 =D(Φ0 +2-4) =DΦ0 +D2-4 =(0.1000)(1.0111)+(0.0000
10000) 0.10001.0111 0.1000 0.00000 0.001000 0.00010000.00001000 0.00001000 0.11000000 さらに、D0 =0.11000000であり、これは従
来のIBM除算器では前述のようにD0 =D!D(!D
=Dの2の補数)およびD0 =(0.1000)(1.
1000)であるから、D0 =DR0 に等しい。
化されたDを0.1000とすると、Dの1の補数はΦ
0 =1.0111であり、また、 D0 =DP0 =D(Φ0 +2-4) =DΦ0 +D2-4 =(0.1000)(1.0111)+(0.0000
10000) 0.10001.0111 0.1000 0.00000 0.001000 0.00010000.00001000 0.00001000 0.11000000 さらに、D0 =0.11000000であり、これは従
来のIBM除算器では前述のようにD0 =D!D(!D
=Dの2の補数)およびD0 =(0.1000)(1.
1000)であるから、D0 =DR0 に等しい。
【0036】 0.10001.1000 0.1000 0.01000 0.000000 0.00000000.00000000 0.11000000 このように、従来のIBM除算器で計算されるD0 すな
わち0.11000000は本発明の除算器で計算され
るD0 と同じになる。
わち0.11000000は本発明の除算器で計算され
るD0 と同じになる。
【0037】第2の反復については、 D1 =D0 P1 =D0 (Φ1 +2-4) =D0 Φ1 +D0 2-4 切り捨て後に、D0 =0.1100であり、Φ1 はD0
の1の補数であるから、Φ1 =1.001であり、かく
して、D1 =(0.1100)(1.0011)+
(0.00001100) 0.11001.0011 0.1100 0.00000 0.000000 0.00011000.00001100 0.00001100 0.11110000 従来のIBM除算器での方法を適用すると、 D1 =D0 R1 =D0 !D0 (!D0 =Dの2の補数) 切り捨て後にD0 =0.1100およびD1 =(0.1
100)(1.0100)となる。
の1の補数であるから、Φ1 =1.001であり、かく
して、D1 =(0.1100)(1.0011)+
(0.00001100) 0.11001.0011 0.1100 0.00000 0.000000 0.00011000.00001100 0.00001100 0.11110000 従来のIBM除算器での方法を適用すると、 D1 =D0 R1 =D0 !D0 (!D0 =Dの2の補数) 切り捨て後にD0 =0.1100およびD1 =(0.1
100)(1.0100)となる。
【0038】 0.11001.0100 0.1100 0.00000 0.001100 0.00000000.00000000 0.11110000 このように、この例では両方共に除数Dを2段階で0.
1111に収束させる。
1111に収束させる。
【0039】さらに、次のことが云える。
【0040】DP0 P1 …Pm =D(Φ0 +2-(n-1))
(Φ1 +2-(n-1))…(Φm +2-(n-1)) ここでΦi はDi-1 のビットごとの反転数であり、すな
わちDi-1 の1の補数である。
(Φ1 +2-(n-1))…(Φm +2-(n-1)) ここでΦi はDi-1 のビットごとの反転数であり、すな
わちDi-1 の1の補数である。
【0041】同じ結論が商の発生についても引き出しう
る。要約すると、Q=N(Φ0 +2-(n-1))(Φ1 +2
-(n-1))…(Φm +2-(n-1)) であり、Φi はDi-1 の1の補数であり、(n−1)は
除数の小数点以下のビット数に等しい値を有する。
る。要約すると、Q=N(Φ0 +2-(n-1))(Φ1 +2
-(n-1))…(Φm +2-(n-1)) であり、Φi はDi-1 の1の補数であり、(n−1)は
除数の小数点以下のビット数に等しい値を有する。
【0042】56ビットの小数部については次のごとく
になる。
になる。
【0043】DP0 P1 …Pm =Dk-1 Pm =D(Φ0
+2-56 )(Φ1 +2-56 )(Φ3 +2-56 )(Φ4 +
2-56 )(Φ5 +2-56 ) そして、商は次のようになる。
+2-56 )(Φ1 +2-56 )(Φ3 +2-56 )(Φ4 +
2-56 )(Φ5 +2-56 ) そして、商は次のようになる。
【0044】Q=N(Φ0 +2-56 )(Φ1 +2-56 )
(Φ2 +2-56 )(Φ3 +2-56 )(Φ4 +2-56 )
(Φ5 +2-56 ) 図3は次々にDP0 P1 …Pm とNP0 P1 …Pm をと
り出すための実行シーケンスを示すものである。この図
に示すように、オペランドを適正に用意した後に、商Q
の発生のために次の計算を行わねばならない。
(Φ2 +2-56 )(Φ3 +2-56 )(Φ4 +2-56 )
(Φ5 +2-56 ) 図3は次々にDP0 P1 …Pm とNP0 P1 …Pm をと
り出すための実行シーケンスを示すものである。この図
に示すように、オペランドを適正に用意した後に、商Q
の発生のために次の計算を行わねばならない。
【0045】1. DP0 =D(Φ0 +2-56 )=DΦ
0 +D2-56 、および、NP0 =NΦ0 +N2-56 ただし、Φ0 はDの1の補数。
0 +D2-56 、および、NP0 =NΦ0 +N2-56 ただし、Φ0 はDの1の補数。
【0046】2. DP0 P1 =DP0 (Φ1 +
2-56 )=DP0 Φ1 +DP0 2-56 、および、NP0
P1 =NP0 Φ1 +NP0 2-56 ただし、Φ1 はDP0 の1の補数。
2-56 )=DP0 Φ1 +DP0 2-56 、および、NP0
P1 =NP0 Φ1 +NP0 2-56 ただし、Φ1 はDP0 の1の補数。
【0047】3. DP0 P1 P2 =DP0 P1 Φ2 +
DP0 P1 2-56 、およびNP0 P1 P2 =NP0 P1
Φ2 =NP0 P1 Φ2 +NP0 P1 2-56 ただし、Φ2 はDP0 P1 の1の補数。
DP0 P1 2-56 、およびNP0 P1 P2 =NP0 P1
Φ2 =NP0 P1 Φ2 +NP0 P1 2-56 ただし、Φ2 はDP0 P1 の1の補数。
【0048】4. DP0 P1 P2 P3 =DP0 P1 P
2 Φ3 +DP0 P1 P2 2-56 、および、NP0 P1 P
2 P3 =NP0 P1 P2 Φ3 +NP0 P1 P2 2-56 ただし、Φ3 はDP0 P1 P2 の1の補数。
2 Φ3 +DP0 P1 P2 2-56 、および、NP0 P1 P
2 P3 =NP0 P1 P2 Φ3 +NP0 P1 P2 2-56 ただし、Φ3 はDP0 P1 P2 の1の補数。
【0049】5. DP0 P1 P2 P3 P4 =DP0 P
1 P2 P3 Φ4+DP0 P1 P2 P3 2-56 、および、
NP0 P1 P2 P3 P4 =NP0 P1 P2 P3 Φ4+N
P0 P1 P2 P3 2-56 ただし、Φ4 はDP0 P1 P2 P3 の1の補数。
1 P2 P3 Φ4+DP0 P1 P2 P3 2-56 、および、
NP0 P1 P2 P3 P4 =NP0 P1 P2 P3 Φ4+N
P0 P1 P2 P3 2-56 ただし、Φ4 はDP0 P1 P2 P3 の1の補数。
【0050】6. NP0 P1 P2 P3 P4 P5 =NP
0 P1 P2 P3 P4 Φ5+NP0 P1 P2 P3 P4 2-56 ただし、Φ5 はDP0 P1 P2 P3 P4 の1の補数。
0 P1 P2 P3 P4 Φ5+NP0 P1 P2 P3 P4 2-56 ただし、Φ5 はDP0 P1 P2 P3 P4 の1の補数。
【0051】図3に示すように、商NP0 P1 P2 P3
P4 P5 を得るには、14サイクルを必要とする12回
の乗算/加算演算がある。図3のシーケンスを次の「比
較」の項で詳述する。
P4 P5 を得るには、14サイクルを必要とする12回
の乗算/加算演算がある。図3のシーケンスを次の「比
較」の項で詳述する。
【0052】以上述べた除算は、従来のDk-1 からRk
を得るための2の補数の必要性を乗算だけでなく、乗算
と加算を行わねばならない1の補数の演算に置き換えた
ものとなっている。
を得るための2の補数の必要性を乗算だけでなく、乗算
と加算を行わねばならない1の補数の演算に置き換えた
ものとなっている。
【0053】ハードウェアの設計では、これは2の補数
器(すなわち56ビットの増分器(インクレメンタ))
の削除および3/2減算用のキャリー保存加算器(CS
A)の付加を要する2/1加算器の代りの3/1加算器
の追加を意味する。
器(すなわち56ビットの増分器(インクレメンタ))
の削除および3/2減算用のキャリー保存加算器(CS
A)の付加を要する2/1加算器の代りの3/1加算器
の追加を意味する。
【0054】本発明の除算器と従来の方法との比較 一般に、2次元収束除算アルゴリズムは、高速乗算器を
用いる場合に限り乗算を必要とするだけだから有利であ
る。従来の技術では、高速乗算器および2次収束除算ア
ルゴリズムの実行を示唆する乗算・加算機能を設計する
ことは可能である。
用いる場合に限り乗算を必要とするだけだから有利であ
る。従来の技術では、高速乗算器および2次収束除算ア
ルゴリズムの実行を示唆する乗算・加算機能を設計する
ことは可能である。
【0055】本発明の除算器と従来の2次元収束アルゴ
リズムとを比較する。
リズムとを比較する。
【0056】説明の便宜上、2個の56ビット数間の除
算を考え、そして1個の56×56、2サイクル個別乗
算器を使用するものとする。また、そのような乗算器は
112ビットの結果を出すものとし、最終結果を得るた
めに2/1加算器の代りに3/1加算器を用い、また適
正なバイパスロジックを用いるものとする。上記の従来
の方法を用いれば、図1のパイプラインチャートはビッ
ト正規化およびローディング後に商が得られる。
算を考え、そして1個の56×56、2サイクル個別乗
算器を使用するものとする。また、そのような乗算器は
112ビットの結果を出すものとし、最終結果を得るた
めに2/1加算器の代りに3/1加算器を用い、また適
正なバイパスロジックを用いるものとする。上記の従来
の方法を用いれば、図1のパイプラインチャートはビッ
ト正規化およびローディング後に商が得られる。
【0057】この乗算器は、バイパスを用いない場合に
は全部で4サイクルを要し、2の補数器が適正なバイパ
スを用いたとき1サイクルを要する。この乗算器の明示
パイプラインは次の通りである。
は全部で4サイクルを要し、2の補数器が適正なバイパ
スを用いたとき1サイクルを要する。この乗算器の明示
パイプラインは次の通りである。
【0058】 ただし、L,E,Wは夫々乗算器(パイプライン図には
示されていない)のロード、乗算の実行および結果の書
込みを表わす。
示されていない)のロード、乗算の実行および結果の書
込みを表わす。
【0059】図1の従来技術では13ステップおよび1
2回の乗算がある。前述のように、本発明における実行
は前述の12回ではなく、11回の乗算しか必要としな
い。一般に12回の乗算を行うアルゴリズムを用いる理
由は、11回の乗算法を用いた場合には図2のパイプラ
インが行われることになるからである。図2から、4回
の余分なサイクルが商を得るのに必要であることが分か
る。
2回の乗算がある。前述のように、本発明における実行
は前述の12回ではなく、11回の乗算しか必要としな
い。一般に12回の乗算を行うアルゴリズムを用いる理
由は、11回の乗算法を用いた場合には図2のパイプラ
インが行われることになるからである。図2から、4回
の余分なサイクルが商を得るのに必要であることが分か
る。
【0060】いずれにしても(図1において)ステップ
1がDの2の補数について必要であり、ステップ2,
4,6,8,10,12が乗算に必要な項を計算し、ス
テップ3,5,7,9,11,13が商を計算する。こ
れは最高速の実行であるべきであり、ロードサイクル
(すなわち、パイプラインのLサイクルは図に示してい
ない)のバイパスがあるものとする。また、ステップ
4,6,8,10,12は2の補数の形で前のDを発生
する乗算器の結果を必要とするから、これより前には開
始出来ない。また、ステップ5,7,9,11,13も
それ以前には開始出来ない。最後に、図1の従来の除算
器の動作に必要なサイクル数は20である。
1がDの2の補数について必要であり、ステップ2,
4,6,8,10,12が乗算に必要な項を計算し、ス
テップ3,5,7,9,11,13が商を計算する。こ
れは最高速の実行であるべきであり、ロードサイクル
(すなわち、パイプラインのLサイクルは図に示してい
ない)のバイパスがあるものとする。また、ステップ
4,6,8,10,12は2の補数の形で前のDを発生
する乗算器の結果を必要とするから、これより前には開
始出来ない。また、ステップ5,7,9,11,13も
それ以前には開始出来ない。最後に、図1の従来の除算
器の動作に必要なサイクル数は20である。
【0061】図3において、本発明の除算器は14サイ
クルで商を発生する。図3において、乗算器のロードサ
イクル(L)は従来の除算器の説明で明らかなように結
果がバイパスされるものとしたので生じない。また、2
の補数をつくる必要がないから、ステップ1はこの実行
と同様に開始出来る。しかしながら、正規化された結果
がロードされない(すなわち正規化装置が同一のチップ
上にない)場合には、商を14サイクルおよび21サイ
クルで発生する二つの実行(すなわち本発明と従来の技
術の実施)にはサイクルを1つ余分に加える必要があ
る。いずれにしても本発明のアルゴリズムは従来の2次
元収束アルゴリズムより著しく高速である。
クルで商を発生する。図3において、乗算器のロードサ
イクル(L)は従来の除算器の説明で明らかなように結
果がバイパスされるものとしたので生じない。また、2
の補数をつくる必要がないから、ステップ1はこの実行
と同様に開始出来る。しかしながら、正規化された結果
がロードされない(すなわち正規化装置が同一のチップ
上にない)場合には、商を14サイクルおよび21サイ
クルで発生する二つの実行(すなわち本発明と従来の技
術の実施)にはサイクルを1つ余分に加える必要があ
る。いずれにしても本発明のアルゴリズムは従来の2次
元収束アルゴリズムより著しく高速である。
【0062】本発明の除算器の好適なハードウェアの実
施例を図4に示す。図4において、問題のオペランドは
正規化装置18で正規化され、適当な乗算ハードウェア
20aおよび20bを介して一対のオペランドレジスタ
21および22に向けられる。各オペランドレジスタの
出力はM/2乗算器25に与えられ、このときオペラン
ドレジスタ22の出力はインバータ28で反転され、そ
のレジスタ内のオペランドの1の補数をつくる。以降で
はオペランドレジスタ21を「非反転」レジスタ、オペ
ランドレジスタ22を「反転」レジスタと呼ぶことにす
る。M/2乗算器25は部分積PP1 とPP2 をつく
る。(もし、2/1加算器をM/2乗算器25の後に置
き、これら部分積をオペランドとして受けるようにすれ
ば、この加算器はM/2乗算器への2オペランド入力の
積に等しい和をつくることになる。)これら部分積は一
対のレジスタ、(レジスタA)30と(レジスタB)3
2に加えられる。これらレジスタは3/1加算器35へ
の3入力の内の2つを与える。3/1加算器35への第
3の入力は更新された除数と被除数項について右シフト
値を与える一対のレジスタの内の一方から得られる。第
1の位置決めパスはマルチプレクサ33を通りレジスタ
34に向う。マルチプレクサ33はレジスタ21の内容
または結果レジスタ39の内容をレジスタ34(レジス
タC1 )への入力として選ぶ。第2の位置決めパスはマ
ルチプレクサ6とレジスタ37を通る。マルチプレクサ
36は非反転レジスタ21の内容または結果レジスタ3
9の内容を入力として受ける。レジスタ34と37の出
力はマルチプレクサ38に与えられてこのマルチプレク
サ38がこれらレジスタの内の一方の内容を選び、3/
1加算器35の第3入力とする。3/1加算器35の出
力は結果レジスタ39に与えられる。結果レジスタ39
の出力および非反転レジスタ21の出力はマルチプレク
サ36で多重化されてレジスタ37の入力端に入る。
施例を図4に示す。図4において、問題のオペランドは
正規化装置18で正規化され、適当な乗算ハードウェア
20aおよび20bを介して一対のオペランドレジスタ
21および22に向けられる。各オペランドレジスタの
出力はM/2乗算器25に与えられ、このときオペラン
ドレジスタ22の出力はインバータ28で反転され、そ
のレジスタ内のオペランドの1の補数をつくる。以降で
はオペランドレジスタ21を「非反転」レジスタ、オペ
ランドレジスタ22を「反転」レジスタと呼ぶことにす
る。M/2乗算器25は部分積PP1 とPP2 をつく
る。(もし、2/1加算器をM/2乗算器25の後に置
き、これら部分積をオペランドとして受けるようにすれ
ば、この加算器はM/2乗算器への2オペランド入力の
積に等しい和をつくることになる。)これら部分積は一
対のレジスタ、(レジスタA)30と(レジスタB)3
2に加えられる。これらレジスタは3/1加算器35へ
の3入力の内の2つを与える。3/1加算器35への第
3の入力は更新された除数と被除数項について右シフト
値を与える一対のレジスタの内の一方から得られる。第
1の位置決めパスはマルチプレクサ33を通りレジスタ
34に向う。マルチプレクサ33はレジスタ21の内容
または結果レジスタ39の内容をレジスタ34(レジス
タC1 )への入力として選ぶ。第2の位置決めパスはマ
ルチプレクサ6とレジスタ37を通る。マルチプレクサ
36は非反転レジスタ21の内容または結果レジスタ3
9の内容を入力として受ける。レジスタ34と37の出
力はマルチプレクサ38に与えられてこのマルチプレク
サ38がこれらレジスタの内の一方の内容を選び、3/
1加算器35の第3入力とする。3/1加算器35の出
力は結果レジスタ39に与えられる。結果レジスタ39
の出力および非反転レジスタ21の出力はマルチプレク
サ36で多重化されてレジスタ37の入力端に入る。
【0063】図4には3/1加算器が示されている。こ
の加算器35は、レジスタ30,32,37から3個の
オペランドを受けてそれらを周知の原理に従って合成し
てキャリー(C)および保存(S)出力を出すキャリー
保存加算器(CSA)42を含んでいる。CSA42の
キャリー出力および保存出力はキャリールックアヘッド
加算器(CLA)43の2つの入力端に送られる。CL
A43は周知の原理に従ってこれらCおよびS出力を合
成して1つの出力をつくり、それを結果レジスタ39に
与える。CLA43のこの出力はCSA42への3オペ
ランド入力の和である。
の加算器35は、レジスタ30,32,37から3個の
オペランドを受けてそれらを周知の原理に従って合成し
てキャリー(C)および保存(S)出力を出すキャリー
保存加算器(CSA)42を含んでいる。CSA42の
キャリー出力および保存出力はキャリールックアヘッド
加算器(CLA)43の2つの入力端に送られる。CL
A43は周知の原理に従ってこれらCおよびS出力を合
成して1つの出力をつくり、それを結果レジスタ39に
与える。CLA43のこの出力はCSA42への3オペ
ランド入力の和である。
【0064】結果レジスタ3のレジスタ21,22間の
接続は一対一である。これに関し、レジスタ37内のセ
ルはレジスタ21,22内の同一のレベルのセルに接続
される。しかしながら、マルチプレクサ33と36の出
力端およびレジスタ34と37の入力端の間の接続には
ハードワイヤードシフトが与えられる。このシフトは2
-(n-1)での所望の乗算を与える。
接続は一対一である。これに関し、レジスタ37内のセ
ルはレジスタ21,22内の同一のレベルのセルに接続
される。しかしながら、マルチプレクサ33と36の出
力端およびレジスタ34と37の入力端の間の接続には
ハードワイヤードシフトが与えられる。このシフトは2
-(n-1)での所望の乗算を与える。
【0065】連続的な値DP0 P1 …Pm とNP0 P1
…Pm を得るために、図4のハードウェアは図3の反復
手順に対応するように機能すべく制御される。値D0 =
DP0 =DΦ0 +D2-(n-1)を得るために、このハード
ウェアは次のように動作する。まず正規化された除数オ
ペランドDがマルチプレクサ20a,20bを介してレ
ジスタ21と22に置かれる。反転オペランドレジスタ
22はDを反転してその1の補数Φ0 をつくる。オペラ
ンドDとΦ0 がM/2乗算器25に加えられ、さらに積
DΦ0 を表わす部分積がレジスタ30,32に記憶され
る。その間、オペランドDはマルチプレクサ33を通り
レジスタ34に入れられ、その結果、ハードワイヤリン
グ40がそのオペランドを右シフトしてD2-(n-1)をつ
くり、これがレジスタ34に記憶される。マルチプレク
サ38はレジスタ34の出力3/1加算器35への第3
入力として選ぶ。レジスタ30,32,34の内容は3
/1加算器に加えられてDΦ0 +D2-(n-1)=D0 を得
る。これが結果レジスタ39に入れられる。
…Pm を得るために、図4のハードウェアは図3の反復
手順に対応するように機能すべく制御される。値D0 =
DP0 =DΦ0 +D2-(n-1)を得るために、このハード
ウェアは次のように動作する。まず正規化された除数オ
ペランドDがマルチプレクサ20a,20bを介してレ
ジスタ21と22に置かれる。反転オペランドレジスタ
22はDを反転してその1の補数Φ0 をつくる。オペラ
ンドDとΦ0 がM/2乗算器25に加えられ、さらに積
DΦ0 を表わす部分積がレジスタ30,32に記憶され
る。その間、オペランドDはマルチプレクサ33を通り
レジスタ34に入れられ、その結果、ハードワイヤリン
グ40がそのオペランドを右シフトしてD2-(n-1)をつ
くり、これがレジスタ34に記憶される。マルチプレク
サ38はレジスタ34の出力3/1加算器35への第3
入力として選ぶ。レジスタ30,32,34の内容は3
/1加算器に加えられてDΦ0 +D2-(n-1)=D0 を得
る。これが結果レジスタ39に入れられる。
【0066】D0 の計算中に値NP0 =NΦ0 +N2
-(n-1)を得るために、正規化された分子Nがマルチプレ
クサ20aを介して非反転オペランドレジスタ21に与
えられ、その間、正規化された分母Dが反転オペランド
レジスタ22に保持される。以上のように、除数Dは反
転されてその1の補数Φ0 をつくる。オペランドNとΦ
0 はM/2乗算器25に入力され、そして積NΦ0 を表
わす部分積がレジスタ30と32に置かれる。その間、
被除数オペランドNはパス36,41,37により右シ
フトされてレジスタ37にN2-(n-1)を与える。マルチ
プレクサ38はレジスタ37の内容を選ぶように切換わ
る。レジスタ30,32,37の内容は3/1加算器に
入力され、結果としてのNΦ0 +N2-(n-1)=NP0 が
結果レジスタ39に入力される。
-(n-1)を得るために、正規化された分子Nがマルチプレ
クサ20aを介して非反転オペランドレジスタ21に与
えられ、その間、正規化された分母Dが反転オペランド
レジスタ22に保持される。以上のように、除数Dは反
転されてその1の補数Φ0 をつくる。オペランドNとΦ
0 はM/2乗算器25に入力され、そして積NΦ0 を表
わす部分積がレジスタ30と32に置かれる。その間、
被除数オペランドNはパス36,41,37により右シ
フトされてレジスタ37にN2-(n-1)を与える。マルチ
プレクサ38はレジスタ37の内容を選ぶように切換わ
る。レジスタ30,32,37の内容は3/1加算器に
入力され、結果としてのNΦ0 +N2-(n-1)=NP0 が
結果レジスタ39に入力される。
【0067】結果NP0 が結果レジスタ39に入力され
る間に前の結果DP0 がマルチプレクサ20a,20b
を介して結果レジスタ39からレジスタ21,22に送
られる。これにより、レジスタ21,22はDP0 P1
の計算を開始する。これと同時に、マルチプレクサ33
と36は結果レジスタ39の出力を選択するように条件
づけられる。これらのセッティングは以降の動作中維持
される。
る間に前の結果DP0 がマルチプレクサ20a,20b
を介して結果レジスタ39からレジスタ21,22に送
られる。これにより、レジスタ21,22はDP0 P1
の計算を開始する。これと同時に、マルチプレクサ33
と36は結果レジスタ39の出力を選択するように条件
づけられる。これらのセッティングは以降の動作中維持
される。
【0068】図3は本発明による乗算−加算プロセスを
図4の実施例でいかにして行うかを示すものである。図
4の除算器はレジスタの同期化に使用可能な従来のパイ
プラインクロックCp を有するパイプラインドマシンと
して実施されている。これを図4に示す。図3において
は、18ピリオドのパイプラインクロックが示してあ
る。これらピリオドの内の14ピリオドにおいて、12
の重畳したパイプラインサイクルが更新された除数と商
の計算に用いられる。各サイクルは基本形LEWを有
し、そのサイクルの三つの相がこのパイプラインクロッ
クにおいて三つの連続するピリオドで行われる。これに
関し、Lはクロックピリオドiでのオペランドレジスタ
21と22のローディングを表わす。更新された除数の
計算において、Eはクロックピリオドi+1でのレジス
タ30,32,34へのオペランド入力による乗算−加
算の実行を表わす。被除数更新計算におけるEはクロッ
クピリオドi+1でのレジスタ30,32,37へのオ
ペランド入力による乗算−加算の実行を表わす。すべて
の計算サイクルにおいて、Wはクロックピリオドi+2
でのレジスタ39への結果の書込みを表わす。
図4の実施例でいかにして行うかを示すものである。図
4の除算器はレジスタの同期化に使用可能な従来のパイ
プラインクロックCp を有するパイプラインドマシンと
して実施されている。これを図4に示す。図3において
は、18ピリオドのパイプラインクロックが示してあ
る。これらピリオドの内の14ピリオドにおいて、12
の重畳したパイプラインサイクルが更新された除数と商
の計算に用いられる。各サイクルは基本形LEWを有
し、そのサイクルの三つの相がこのパイプラインクロッ
クにおいて三つの連続するピリオドで行われる。これに
関し、Lはクロックピリオドiでのオペランドレジスタ
21と22のローディングを表わす。更新された除数の
計算において、Eはクロックピリオドi+1でのレジス
タ30,32,34へのオペランド入力による乗算−加
算の実行を表わす。被除数更新計算におけるEはクロッ
クピリオドi+1でのレジスタ30,32,37へのオ
ペランド入力による乗算−加算の実行を表わす。すべて
の計算サイクルにおいて、Wはクロックピリオドi+2
でのレジスタ39への結果の書込みを表わす。
【0069】更新除数および被除数についてのこの重畳
した反復計算の実行において、図4の装置は図3のピリ
オド1において、マルチプレクサ20a,20bを正規
化された除数オペランドDを非反転および反転レジスタ
に送らせるようにセットすることによって初期化され、
ピリオド2でこれらマルチプレクサが正規化された被除
数Nをレジスタ21に、そして除数Dをレジスタ22に
送る。ピリオド3でマルチプレクサ20a,20bは共
に結果レジスタ39の出力を選択するようにセットされ
る。同様に、ピリオド1(図3)において、マルチプレ
クサ33がレジスタ34への入力として非反転レジスタ
21の出力を選択し、第1および第2ピリオドでマルチ
プレクサ36がレジスタ37への入力としてレジスタ2
1の出力を選択する。図3の第3ピリオドからマルチプ
レクサ33,36は共にそれらに関連するレジスタへの
入力として結果レジスタ39の出力を選択するようにセ
ットされる。マルチプレクサ38は、シフトされた現在
の除数DP0 P1 …Pk-12-(n-1)が更新された除数D
P0 P1 …Pk の計算中に3/1加算器35に与えら
れ、その間更新された被除数NP0 P1 …Pk の加算器
35による計算中にシフトされた現在の被除数NP0 P
1 …Pk-1 2-(n-1)がレジスタを介して与えられるよう
に、3/1加算器35に対し位相のずれたレジスタ34
と37の内容を与えるように動作する。
した反復計算の実行において、図4の装置は図3のピリ
オド1において、マルチプレクサ20a,20bを正規
化された除数オペランドDを非反転および反転レジスタ
に送らせるようにセットすることによって初期化され、
ピリオド2でこれらマルチプレクサが正規化された被除
数Nをレジスタ21に、そして除数Dをレジスタ22に
送る。ピリオド3でマルチプレクサ20a,20bは共
に結果レジスタ39の出力を選択するようにセットされ
る。同様に、ピリオド1(図3)において、マルチプレ
クサ33がレジスタ34への入力として非反転レジスタ
21の出力を選択し、第1および第2ピリオドでマルチ
プレクサ36がレジスタ37への入力としてレジスタ2
1の出力を選択する。図3の第3ピリオドからマルチプ
レクサ33,36は共にそれらに関連するレジスタへの
入力として結果レジスタ39の出力を選択するようにセ
ットされる。マルチプレクサ38は、シフトされた現在
の除数DP0 P1 …Pk-12-(n-1)が更新された除数D
P0 P1 …Pk の計算中に3/1加算器35に与えら
れ、その間更新された被除数NP0 P1 …Pk の加算器
35による計算中にシフトされた現在の被除数NP0 P
1 …Pk-1 2-(n-1)がレジスタを介して与えられるよう
に、3/1加算器35に対し位相のずれたレジスタ34
と37の内容を与えるように動作する。
【0070】一般に、パイプラインクロックピリオドm
−1において現在の除数DP0 P1…Pk-1 が結果レジ
スタ39への書込み中であれば、更新された除数DP0
P1…Pk を計算するためのLEW計算サイクルがパイ
プラインクロックピリオドmで始まる。このとき、非反
転レジスタ21は乗算器の一つの入力端に値DP0 P1
…Pk-1 を与え、その値の1の補数Φk が他方の入力端
に与えられる。現在、除数DP0 P1 …Pk-1 がレジス
タ21に入れられると同時に、これも33,40を介し
て右シフトされたレジスタ34に入れられる。このよう
に、パイプラインクロックピリオドm+1でDP0 P1
…Pk-1 Φk の乗算を表わす二つの部分積がレジスタ3
0と32に入れられる。これと同時に、マルチプレクサ
38はレジスタ34の内容を選択し、加算器35がレジ
スタ30,32,34の内容を組合せて更新された除数
DP0 P1 …Pk をつくる。サイクルピリオドm+1に
おいて、更新された被除数NP0 P1 …Pk-1 が非反転
レジスタ21に入れられ、右シフトされてレジスタ37
に入れられる。値Φk は22,28を介して連続して与
えられる。さて、クロックピリオドm+2において、更
新された除数DP0P1 …Pk が結果レジスタ39に書
込まれる。これと同時に、NP0 P1 …Pk- 1 Φk を表
わす部分積と右シフトされた項NP0 P1 …Pk-1 2
-(n-1)がレジスタ30と32およびレジスタ37からマ
ルチプレクサ38を介して加算器35に送られる。次の
ピリオドm+3において、更新された被除数NP0 P1
…Pk が結果レジスタ39に書込まれる。
−1において現在の除数DP0 P1…Pk-1 が結果レジ
スタ39への書込み中であれば、更新された除数DP0
P1…Pk を計算するためのLEW計算サイクルがパイ
プラインクロックピリオドmで始まる。このとき、非反
転レジスタ21は乗算器の一つの入力端に値DP0 P1
…Pk-1 を与え、その値の1の補数Φk が他方の入力端
に与えられる。現在、除数DP0 P1 …Pk-1 がレジス
タ21に入れられると同時に、これも33,40を介し
て右シフトされたレジスタ34に入れられる。このよう
に、パイプラインクロックピリオドm+1でDP0 P1
…Pk-1 Φk の乗算を表わす二つの部分積がレジスタ3
0と32に入れられる。これと同時に、マルチプレクサ
38はレジスタ34の内容を選択し、加算器35がレジ
スタ30,32,34の内容を組合せて更新された除数
DP0 P1 …Pk をつくる。サイクルピリオドm+1に
おいて、更新された被除数NP0 P1 …Pk-1 が非反転
レジスタ21に入れられ、右シフトされてレジスタ37
に入れられる。値Φk は22,28を介して連続して与
えられる。さて、クロックピリオドm+2において、更
新された除数DP0P1 …Pk が結果レジスタ39に書
込まれる。これと同時に、NP0 P1 …Pk- 1 Φk を表
わす部分積と右シフトされた項NP0 P1 …Pk-1 2
-(n-1)がレジスタ30と32およびレジスタ37からマ
ルチプレクサ38を介して加算器35に送られる。次の
ピリオドm+3において、更新された被除数NP0 P1
…Pk が結果レジスタ39に書込まれる。
【0071】夫々図4に示す二つの装置の一方を更新さ
れた除数の計算に、そして他方を更新された商の計算に
用いるように並列に動作させることが出来る。この場
合、一方の装置からの更新された除数をそれ自体の反転
および非反転レジスタに、そしてまた更新される商の計
算のための他方の装置の反転レジスタに戻すようにす
る。
れた除数の計算に、そして他方を更新された商の計算に
用いるように並列に動作させることが出来る。この場
合、一方の装置からの更新された除数をそれ自体の反転
および非反転レジスタに、そしてまた更新される商の計
算のための他方の装置の反転レジスタに戻すようにす
る。
【0072】本発明は図4に示す実施例によってのみ可
能であるのではなく、そのハードウェア構成は適用すべ
き技術における実行に合せて変更することが出来る。例
えば、適用すべき技術によっては、反転オペランドは不
要であり、あるいは正規化装置が他の演算ハードウェア
動作等にすでに必要なものとなっていることもある。図
4の装置では次に述べるハードウェアが必要である。す
なわち、正規化装置18(一般に収束除算アルゴリズム
に必要)、レジスタ37、3/2減算のためのCSA加
算器、1の補数をつくるためのインバータ、オペランド
レジスタにおけるマルチプレクサについての付加的な一
つの入力がそれである。パイプラインドマシンには高速
乗算のためにすでに存在しているバイパスバスがある。
このハードウェア構成は、高速除算のための付加的なハ
ードウェアが2サイクル乗算器を設計するのに必要なハ
ードウェアの量を考えると必要であることを示してい
る。また、加算/減算アルゴリズムを用いる同程度の速
度のの除算を行うのに必要なハードウェアの量を考えれ
ば、このような付加的な、ハードウェアは無視しうるも
のである。
能であるのではなく、そのハードウェア構成は適用すべ
き技術における実行に合せて変更することが出来る。例
えば、適用すべき技術によっては、反転オペランドは不
要であり、あるいは正規化装置が他の演算ハードウェア
動作等にすでに必要なものとなっていることもある。図
4の装置では次に述べるハードウェアが必要である。す
なわち、正規化装置18(一般に収束除算アルゴリズム
に必要)、レジスタ37、3/2減算のためのCSA加
算器、1の補数をつくるためのインバータ、オペランド
レジスタにおけるマルチプレクサについての付加的な一
つの入力がそれである。パイプラインドマシンには高速
乗算のためにすでに存在しているバイパスバスがある。
このハードウェア構成は、高速除算のための付加的なハ
ードウェアが2サイクル乗算器を設計するのに必要なハ
ードウェアの量を考えると必要であることを示してい
る。また、加算/減算アルゴリズムを用いる同程度の速
度のの除算を行うのに必要なハードウェアの量を考えれ
ば、このような付加的な、ハードウェアは無視しうるも
のである。
【0073】以上のように、本発明の除算器は3/2加
算器、反転ロジックおよび更に1個のレジスタを必要と
するが、従来のアルゴリズムでは専用の2の補数器が必
要である。本発明の除算器に必要な付加的ロジックはこ
の専用加算器より著しく安価である。もちろん、従来の
アルゴリズムで必要な2の補数をつくるのに現存の加算
器を用いることが出来る。しかしながら、多重化ロジッ
クをその加算器に加えなければならず、一般に浮動小数
点加算器にはパイプラインでなければ一つの加算を行う
ための2以上のサイクルが必要であるから、2の補数の
移動と加算が必要となる。これは、2の補数は前後する
ものでないため(2の補数は一つの乗算結果について得
られねばならず、すなわち乗算と2の補数をとることと
の間にはデータインターロックが存在する)である。2
の補数器を使用すれば別のサイクルは不要である。
算器、反転ロジックおよび更に1個のレジスタを必要と
するが、従来のアルゴリズムでは専用の2の補数器が必
要である。本発明の除算器に必要な付加的ロジックはこ
の専用加算器より著しく安価である。もちろん、従来の
アルゴリズムで必要な2の補数をつくるのに現存の加算
器を用いることが出来る。しかしながら、多重化ロジッ
クをその加算器に加えなければならず、一般に浮動小数
点加算器にはパイプラインでなければ一つの加算を行う
ための2以上のサイクルが必要であるから、2の補数の
移動と加算が必要となる。これは、2の補数は前後する
ものでないため(2の補数は一つの乗算結果について得
られねばならず、すなわち乗算と2の補数をとることと
の間にはデータインターロックが存在する)である。2
の補数器を使用すれば別のサイクルは不要である。
【0074】附記A: 2の補数の証明 y+y′=2ならば、y′はyの2の補数である。
【0075】yを0からn−1までの長さnの2進スト
リングに関連した10進値とする。このストリングは小
数y0 y1 …yn-1 であるとすると、 y′をyの2の補数であるとすると、y′はyのすべて
のエレメントを反転し1を加えることによってつくるこ
とが出来る。
リングに関連した10進値とする。このストリングは小
数y0 y1 …yn-1 であるとすると、 y′をyの2の補数であるとすると、y′はyのすべて
のエレメントを反転し1を加えることによってつくるこ
とが出来る。
【0076】従って、y′に関連する10進値は、 従って、 すなわち、y′=2−yであり、y′はyの2の補数で
ある。
ある。
【0077】附記B: 1の補数の証明 y′は、y+y′=2−2-(n-1)であれば、yの1の補
数である。
数である。
【0078】 要するにy′は、y′=2−y−2-(n-1)のとき、yの
1の補数である。
1の補数である。
【0079】
【発明の効果】本発明の2次元収束型除算器は、従来の
ものと比較して実行時間が短く、セルについて安価なも
のである。
ものと比較して実行時間が短く、セルについて安価なも
のである。
【図1】従来のパイプライン実行シーケンスを示す図。
【図2】従来の他のパイプライン実行シーケンスを示す
図。
図。
【図3】本発明による除算器におけるパイプライン実行
シーケンスを示す図。
シーケンスを示す図。
【図4】本発明による除算装置のハードウェア構成の一
例を示す図。
例を示す図。
20a,20b,33,36,38 マルチプレクサ 21,22 オペランドレジスタ 25 M/2乗算器 30,32,34,37 レジスタ 35 3/1加算器 39 結果レジスタ 42 キャリー保存加算器 43 キャリールックアヘッド加算器
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョゼフィン、エー、ボストン アメリカ合衆国ニューヨーク州、ワッピン ガーズ、フォールズ、ポーレット、レー ン、14
Claims (8)
- 【請求項1】ディジタル被除数オペランドNをディジタ
ル除数オペランドDで除算して商オペランドQを得るた
めの除算装置であって、 除数オペランドDに応じて更新除数値DP0 P1 …Pm
を与える手段と、 前記除数オペランドD、前記被除数オペランドN、およ
び前記更新除数値DP0 P1 …Pm に応じて更新被除数
値NP0 P1 …Pm を計算するための収束ファクタ計算
手段と、 を備え、 積P0 P1 …Pm は、NP0 P1 …Pm がQに収束し、
P0 P1 …Pm が1に収束するような値を持っている、 最短実行時間および最少ハードウェアによる上記除算を
行うための除算装置。 - 【請求項2】前記積P0 P1 …Pm は、kを0<k<
m、とした一連の値Pk の積であり、Dk-1 の1の補数
をΦk 、オペランドNとDのビット長をnとし、Pk を
Φk +2-(n-1)の形で表わされるものとして、DP0 P
1 …Pk =Dk-1 Pk である、請求項1に記載の除算装
置。 - 【請求項3】前記収束ファクタ計算手段は一連の積(N
P0 ),(NP0 P1 )…(NP0P1 …Pm )を計算
するものである、請求項2に記載の除算装置。 - 【請求項4】前記収束ファクタ計算手段は一連の積(D
P0 )、(DP0 P1 )…(DP0P1 …Pm )の夫々
の決定後に前記一連の積(NP0 )、(NP0 P1 )…
(NP0 P1 …Pm )の夫々を計算する、請求項3に記
載の除算装置。 - 【請求項5】ディジタル被除数オペランドNをディジタ
ル除数オペランドDで除算して商オペランドQを得るた
めの除算装置であって、 値DP0 P1 …Pk-1 を表わす除数信号を与える除数手
段と、 この除数手段に接続されて上記値DP0 P1 …Pk-1 の
1の補数を表わす補数信号Φk を与える補数手段と、 値NP0 P1 …Pk-1 を表わす商信号を与える商手段
と、 上記補数手段および商手段に接続されて、夫々上記補数
信号および商信号に応じ値NP0 P1 …Pk-1 Φk の部
分積を表わす2個の部分積信号を発生する乗算手段と、 上記商手段に接続され、(n−1)をオペランドDとN
の最少桁ビットの位置番号を表わす値としてソフト値N
P0 P1 …Pk-1 2-(n-1)を表わすシフト信号を与える
シフト手段と、 上記乗算手段およびシフト手段に接続されて、上記2個
の部分積信号および上記シフト信号により表わされる値
を加算することによりQ=NP0 P1 …Pm を表わす商
信号を発生する加算手段とを備えた除算装置。 - 【請求項6】前記加算手段は前記乗算手段およびシフト
手段に接続され、前記2個の部分積信号およびシフト信
号に応じてキャリー信号および保存信号を発生するキャ
リー保存加算器と、このキャリー保存加算器に接続され
て、上記キャリー信号および保存信号に応じて前記商信
号を発生するキャリールックアヘッド加算器とを含んで
いる、請求項5に記載の除算装置。 - 【請求項7】2個の部分積信号を発生する乗算手段と3
個のオペランドに応じてその和を発生する3対1加算手
段とを含むディジタルコンピュータシステムにおいて、
夫々2進小数点以下にn−1ビットを有するnビットの
正規化された多ビット数であるディジタル被除数Nのデ
ィジタル除数Dによる除算によってディジタル商Qを得
るための除算方法であって、 現在の除数DP0 P1 …Pk-1 とその1の補数Φk を置
数するステップと、 上記除数とその1の補数に応じて前記乗算手段におい
て、DP0 P1 …Pk-1Φk を表わす2個の部分積を発
生するステップと、 更新された除数を右シフトして右シフト除数項DP0 P
1 …Pk-1 2-(n-1)を発生するステップと、 上記2個の部分積および上記右シフト除数項に応じて上
記3対1加算手段で更新された除数項DP0 P1 …Pk
を発生するステップと、 現在の被除数項NP0 P1 …Pk-1 とその1の補数Φk
を置数するステップと、 上記現在の被除数項とその1の補数に応じて上記乗算手
段において積NP0 P1 …Pk-1 Φk を表わす2個の部
分積信号を発生するステップと、 上記現在の被除数項を右シフトして右シフト被除数項D
P0 P1 …Pk-1 2-( n-1)を発生するステップと、 上記2個の部分積および右シフトされた項に応じて上記
3対1加算手段で更新された被除数項NP0 P1 …Pk
を発生するステップとを含んでいる除算方法。 - 【請求項8】積P0 P1 …Pk の大きさが、前記更新さ
れた被除数項がQに、また前記更新された除数項が1に
夫々収束するような大きさとなるまで、前記各ステップ
をくり返す、請求項7に記載の除算方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/655,316 US5140545A (en) | 1991-02-13 | 1991-02-13 | High performance divider with a sequence of convergence factors |
US655316 | 1991-02-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0628155A true JPH0628155A (ja) | 1994-02-04 |
JP2597775B2 JP2597775B2 (ja) | 1997-04-09 |
Family
ID=24628407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3275744A Expired - Lifetime JP2597775B2 (ja) | 1991-02-13 | 1991-10-23 | 除算方法および除算装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5140545A (ja) |
EP (1) | EP0499705A3 (ja) |
JP (1) | JP2597775B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11669304B2 (en) | 2021-02-08 | 2023-06-06 | Kioxia Corporation | Arithmetic device and arithmetic circuit for performing multiplication and division |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0478745A4 (en) * | 1990-04-04 | 1993-09-01 | International Business Machines Corporation | High performance interlock collapsing scism alu apparatus |
EP0498067A2 (en) * | 1991-02-08 | 1992-08-12 | International Business Machines Corporation | Microcode generation for a scalable compound instruction set machine |
JPH0535773A (ja) * | 1991-07-30 | 1993-02-12 | Nec Corp | ベクトル除算方式とその装置 |
GB2293469A (en) * | 1994-09-22 | 1996-03-27 | Secr Defence | Error detection in arithmetic circuit. |
US5696713A (en) * | 1995-08-21 | 1997-12-09 | International Business Machines Corporation | Method for faster division by known divisor while maintaining desired accuracy |
US5825681A (en) * | 1996-01-24 | 1998-10-20 | Alliance Semiconductor Corporation | Divider/multiplier circuit having high precision mode |
US6751645B1 (en) * | 1999-02-17 | 2004-06-15 | Elbrus International Limited | Methods and apparatus for performing pipelined SRT division |
US20040117423A1 (en) * | 2002-12-11 | 2004-06-17 | Xiaohua Shi | Signed integer long division apparatus and methods for use with processors |
US20140195581A1 (en) * | 2013-01-08 | 2014-07-10 | Analog Devices, Inc. | Fixed point division circuit utilizing floating point architecture |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01321517A (ja) * | 1988-06-23 | 1989-12-27 | Nec Corp | 除算装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60142738A (ja) * | 1983-12-30 | 1985-07-27 | Hitachi Ltd | 内挿近似を使用する除算装置 |
JPS62118474A (ja) * | 1985-11-19 | 1987-05-29 | Hitachi Ltd | ベクトル除算装置の制御方式 |
US4991132A (en) * | 1987-12-17 | 1991-02-05 | Matsushita Electric Industrial Co., Ltd. | Apparatus for executing division by high-speed convergence processing |
US5046038A (en) * | 1989-07-07 | 1991-09-03 | Cyrix Corporation | Method and apparatus for performing division using a rectangular aspect ratio multiplier |
US5065352A (en) * | 1989-08-16 | 1991-11-12 | Matsushita Electric Industrial Co., Ltd. | Divide apparatus employing multiplier with overlapped partial quotients |
-
1991
- 1991-02-13 US US07/655,316 patent/US5140545A/en not_active Expired - Fee Related
- 1991-10-23 JP JP3275744A patent/JP2597775B2/ja not_active Expired - Lifetime
- 1991-12-09 EP EP19910121058 patent/EP0499705A3/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01321517A (ja) * | 1988-06-23 | 1989-12-27 | Nec Corp | 除算装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11669304B2 (en) | 2021-02-08 | 2023-06-06 | Kioxia Corporation | Arithmetic device and arithmetic circuit for performing multiplication and division |
Also Published As
Publication number | Publication date |
---|---|
US5140545A (en) | 1992-08-18 |
EP0499705A3 (en) | 1993-03-10 |
EP0499705A2 (en) | 1992-08-26 |
JP2597775B2 (ja) | 1997-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5866128B2 (ja) | 算術プロセッサ | |
US7395304B2 (en) | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic | |
US5046038A (en) | Method and apparatus for performing division using a rectangular aspect ratio multiplier | |
JPH0749772A (ja) | 除算及び開平算に関して修正ニュートン−ラプソン技術を用いる浮動小数点演算装置 | |
JPH0414366B2 (ja) | ||
US5426600A (en) | Double precision division circuit and method for digital signal processor | |
US6009450A (en) | Finite field inverse circuit | |
EP0356153B1 (en) | Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction | |
JP2597775B2 (ja) | 除算方法および除算装置 | |
US5357455A (en) | Floating point remainder generator for a math processor | |
US3878985A (en) | Serial-parallel multiplier using booth{3 s algorithm with combined carry-borrow feature | |
JPH05250146A (ja) | 整数累乗処理を行なうための回路及び方法 | |
US3290493A (en) | Truncated parallel multiplication | |
US5867413A (en) | Fast method of floating-point multiplication and accumulation | |
JP2508784B2 (ja) | 指数関数演算装置 | |
EP1504338B1 (en) | "emod" a fast modulus calculation for computer systems | |
WO2023043467A1 (en) | A method and architecture for performing modular addition and multiplication sequences | |
JP4223819B2 (ja) | べき乗剰余演算装置及びそのプログラム | |
JPH0831024B2 (ja) | 演算プロセッサ | |
JP4850884B2 (ja) | べき乗剰余演算器 | |
Kaihara et al. | A hardware algorithm for modular multiplication/division based on the extended Euclidean algorithm | |
JPH05313861A (ja) | 開平演算装置 | |
JPH0789315B2 (ja) | 有理数演算装置 | |
JPH0317738A (ja) | 演算処理装置 | |
JPS61201328A (ja) | 除算方式 |