JP2597775B2 - 除算方法および除算装置 - Google Patents

除算方法および除算装置

Info

Publication number
JP2597775B2
JP2597775B2 JP3275744A JP27574491A JP2597775B2 JP 2597775 B2 JP2597775 B2 JP 2597775B2 JP 3275744 A JP3275744 A JP 3275744A JP 27574491 A JP27574491 A JP 27574491A JP 2597775 B2 JP2597775 B2 JP 2597775B2
Authority
JP
Japan
Prior art keywords
divisor
complement
signal
term
quotient
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
JP3275744A
Other languages
English (en)
Other versions
JPH0628155A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0628155A publication Critical patent/JPH0628155A/ja
Application granted granted Critical
Publication of JP2597775B2 publication Critical patent/JP2597775B2/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

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

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は高速乗算器および2次元
収束を用いた除算に関し、より詳細には、実行時間を短
縮するために補数演算、乗算および加算のシーケンスを
用いる改良された除算方法および除算装置に関する。
【0002】
【従来の技術】除算はこれまで周知のアルゴリズム、す
なわち加算/減算をくり返すことにより商を生成するア
ルゴリズムを用いて行われている。そのような除算の原
理的な問題点は、それらの収束速度が線形であるという
点にある。反復される手順の夫々の実行により、前の手
順で得られた商の桁とほゞ同数のビットが加わる。これ
については例えばK.Hwang著“Computer
Arithmetic”、J.Wiley & So
ns出版社(1979)発行を参照されたい。そのよう
なアルゴリズムによる除算の実行速度は低く、より高速
の除算を行うためには使用不可能となりうるようなハー
ドウェアを用いなければならない。
【0003】2次元収束にもとづく除算アルゴリズムは
IBM社のシステム/360モデル91用に設計されて
いる。このアルゴリズム(ここでは「IBM」法と呼ぶ
ことにする)は、特に高速乗算器の設計を可能にする技
術のための高速除算ハードウェアを実現している。これ
については、S.F.Anderson他著“TheI
BM System/360 Model 91:Fl
oating Point Execution Un
it”,IBM Journal pp.34−53
(1967年1月)を参照されたい。高速乗算器でその
ような除算を行うのに必要なオーバーヘッドは小さく、
パフォーマンス上の利点は従来の大型乗算器に比肩しう
ることにある。かくして、除算装置の設計に2次元アル
ゴリズムを用いることにより、ハードウェアおよび実行
時間の両方が、加算/減算を用いる従来のアルゴリズム
と比較すると軽減される。
【0004】IBM2次元収束型除算アルゴリズムはま
ず除算 Q=N/D を考えて開発されている。ただし、Qは商、Nは被除
数、Dは除数である。この除算の商Qが得られるものと
する。すなわちN<DでありD≠0であるとする。この
除算は次のように表わされる。
【0005】 Q=N/D=(NR…R)/(DR…R) 分母DR…Rが1に収束するような0≦k≦n
についてRが分かれば、Qは次のようになる。
【0006】 Q=NR…R NとDを夫々正の小数とし、正規化されているとする。
その場合、分母DR…Rは次の場合に1に近づ
く。
【0007】 R=1+δ,k=0 R=1+δ2**K=2−Dk−1,k>0 D=1−δ2**(k+1)=DR…R=Dk−1 ここで、符号「**」は、この明細書においては2重累
乗演算を表わすものとする。例えば、表現
「x2**y」は「x」から「y」乗までを表わす。
【0008】更に、R,RおよびDに代えて、商
は次式でも計算可能である。
【0009】 Q=N(1+δ)(1+δ)(1+δ)…(1+δ2**n) 例えば、56ビットの小数を考えてみる。Dが正規化ビ
ットすなわち*を0または1としてフォーム0.1
***…*を有するものとすると、その値は1/2≦D
<1の間であり、Dは次のように表わされる。
【0010】 D=1−δ,ただし0≦δ≦1/2 IBM2次元収束アルゴリズムは次のごとくである。
【0011】1. 第1反復について: R=1+δ=2−D 後述の附記Aに示すように、Rは除数Dの2の補数に
より得られる。
【0012】値DはDとその2の補数Rを乗算する
ことにより次のように決定される。
【0013】 D=DR=(1−δ)(1+δ)=1−δ Dは正規化ビットであり、δ≦1/2であるから、δ
≦1/4でDR≦3/4となり、DRはフォーム
0.1**…となる。
【0014】2. 第2反復について: R=1+δ=2−D ここでもRは前記のように計算された値Dの2の補
数により得られる。
【0015】値Rはその2の補数Dと乗算されてD
の次の反復を得る。
【0016】 D=DR=D=(1−δ)(1+δ)=1−δ これによりDRは0.1111***のフォ
ームとなる。
【0017】次々に同様にして反復が行われる。各反復
はその前のものの2乗となり、DR…Rは0.
111…11に収束し、小数点には56個の1(すなわ
ちこれは1に収束する)が続く。
【0018】第1反復により初めの2個の1が生じ、第
2の反復で初めの4個の1が生じ、以下同様に56個の
ビットに収束するには6回の反復が必要である。すなわ
ち、6回の反復により、 DR=0.111…11〜1 となり、小数点以下に56個の1がある。商をつくるに
は Q=NR =N(1+δ)(1+δ)(1+δ)(1+δ)(1+δ16) (1+δ32) であり、これは、分母を1に収束させるのに必要な6回
の乗算に加えて更に6回の乗算が必要であることを示
す。
【0019】しかしながら、 R=1+δ2**KおよびDk−1=1−δ2**k,k≧1 R=2−Dk−1 である。
【0020】すなわち、分母を1に収束させるには6回
の乗算が必要であるが、最後の乗算により、商には不要
なD(k=5)が生成する。このように、そのような
乗算を行う必要がなくなる。図1において、演算のステ
ップ12は、DRのみであって、D
ではないものが商Qの計算に
必要であるため省略しうることを意味する。その結果、
商を得るためには11回の乗算が所望の結果をつくるた
めに2の補数との間で必要となる。しかしながら、日付
により決まるインターロックのために、11回の乗算は
高速除算装置をつくるものではない。
【0021】また、この除算装置のサイクル時間は乗算
器の速度に関係する。ここで乗算器は高速実行用に並列
型として設計されているものとする。
【0022】
【発明が解決しようとする課題】線形収束法を用いる除
算装置と比較してIBM除算装置で達成しうる実行時間
の大幅な短縮にもかかわらず、実行サイクルのより以上
の短縮が望まれる。従来よりオーバーヘッドハードウェ
アの小さい除算装置をつくることも望ましいこととされ
ている。例えば、従来のIBMの除算装置で必要な2の
補数のハードウェアが省略出来れば、ハードウェアの簡
略化とコストの低減に有利である。
【0023】本発明によれば、従来の除算装置およびこ
れまで提案された2次収束法と比較して除算時間の短い
高速乗算器を用いる高速除算装置およびそのハードウェ
アが提供される。
【0024】本発明の目的は、コスト面で問題となるハ
ードウェアを追加することなく除算装置の実行時間を短
縮することである。
【0025】本発明の更なる目的は、乗算命令の実行に
乗算器のハードウェアが必要であるものとして、これま
での方法と比較しオーバーヘッドを小さくしうる除算装
置を提供することである。
【0026】
【課題を解決するための手段および作用】本発明によれ
ば、高速乗算器を用いる除算装置はそれが所望の商に高
速で収束するように新規な2次元収束アルゴリズムに従
って補数、乗算および加算の演算シーケンスを実行す
る。2進法ではこの除算装置は1の補数に続き乗算と加
算を行う。好適なハードウェアではこの除算装置は周知
の2次収束除算装置で用いられる2入力加算器ではな
く、3入力加算器を用いてつくられる。しかしながら本
発明は必要とする2の補数器の使用を省略することによ
りハードウェアの節約を行う。本発明についての除算を
行うのに必要なサイクルの少なくとも3分の1の省略が
長さ56ビットのオペランドについて従来のIBMの除
算装置と比較して得られる。
【0027】
【実施例】新規な2次元収束アルゴリズムを用いる改良
された除算装置は次の通りである。
【0028】小数を考え、そして、そのオペランドの長
さをnとする。次の帰納式を考えてみる。
【0029】 ここで次の式を考える。
【0030】 Q−N/D=(NP…P)/(DP…P) NとDが正であり、正規化されていれば、2次元収束ア
ルゴリズムは次のことを示す。
【0031】 DP…Pは1に収束し、また、 NP…PはQに収束する。
【0032】従来のIBM除算装置で提案されたアルゴ
リズムは2の補数でPの項を計算するが、ここに提案
する帰納式は計算すべきΦの項を含むもう一つの式を
必要とする項Pを含む。
【0033】定義により、 であるから、 となる。
【0034】附記Bに示すようにΦはDk−1の1の
補数であり、 である。一つの反復におけるDk−1とΦを与えれ
ば、乗算・加算が1回行われてDが得られる。このよ
うにDP…Pが乗算ではなく乗算・加算で
得られる。
【0035】より具体的に、次の例を考えてみる。正規
化されたDを0.1000とすると、Dの1の補数はΦ
=1.0111であり、また、 さらに、D=0.11000000であり、これは従
来のIBM除算装置では前述のようにD=D!D(!
D=Dの2の補数およびD=(0.1000)(1.
1000)であるから、D=DRに等しい。
【0036】 このように、従来のIBM除算装置で計算されるD
なわち0.11000000は本発明の除算装置で計算
されるDと同じになる。
【0037】第2の反復については、 切り捨て後に、D=0.1100であり、ΦはD
の1の補数であるから、Φ=1.001であり、かく
して、D=(0.1100)(1.0011)+
(0.00001100) 従来のIBM除算装置での方法を適用すると、 D=D=D!D (!D=Dの2の補数) 切り捨て後にD=0.1100およびD=(0.1
100)(1.0100)となる。
【0038】 このように、この例では両方共に除数Dを2段階で0.
1111に収束させる。
【0039】さらに、次のことが云える。
【0040】 DP…P=D(Φ+2−(n−1)(Φ+2−(n−1)) …(Φ+2−(n−1)) ここでΦはDi−1のビットごとの反転数であり、す
なわちDi−1の1の補数である。
【0041】同じ結論が商の生成についても引き出しう
る。要約すると、 Q=N(Φ+2−(n−1))(Φ+2−(n−1))… (Φ+2−(n−1)) であり、ΦはDi−1の1の補数であり、(n−1)
は除数の小数点以下のビット数に等しい値を有する。
【0042】56ビットの小数部については次のごとく
になる。
【0043】 DP…P=Dk−1=D(Φ+2−56) (Φ+2−56)(Φ+2−56) (Φ+2−56)(Φ+2−56) そして、商は次のようになる。
【0044】 Q=N(Φ+2−56)(Φ+2−56)(Φ+2−56) (Φ+2−56)(Φ+2−56)(Φ+2−56) 図3は次々にDP…PとNP…Pをと
り出すための実行シーケンスを示すものである。この図
に示すように、オペランドを適正に用意した後に、商Q
の生成のために次の計算を行わねばならない。
【0045】 1. DP=D(Φ+2−56)=DΦ+D2−56、および、 NP=NΦ+N2−56 ただし、ΦはDの1の補数。
【0046】 2. DP=DP(Φ+2−56)=DPΦ+DP−56 、および、NP=NPΦ+NP−56 ただし、ΦはDPの1の補数。
【0047】 3. DP=DPΦ+DP−56、および NP=NPΦ=NPΦ+NP−56 ただし、ΦはDPの1の補数。
【0048】 4. DP=DPΦ+DP−56、 および、NP=NPΦ+NP−56 ただし、ΦはDPの1の補数。
【0049】 5. DP=DPΦ +DP−56、および、 NP=NPΦ +NP−56 ただし、ΦはDPの1の補数。
【0050】 6. NP=NPΦ +NP−56 ただし、ΦはDPの1の補数。
【0051】図3に示すように、商NP
を得るには、14サイクルを必要とする12回
の乗算/加算演算がある。図3のシーケンスを次の「比
較」の項で詳述する。
【0052】以上述べた除算は、従来のDk−1からR
を得るための2の補数の必要性を乗算だけでなく、乗
算と加算を行わねばならない1の補数の演算に置き換え
たものとなっている。
【0053】ハードウェアの設計では、これは2の補数
器(すなわち56ビットの増分器(インクレメンタ))
の削除および3/2減算用のキャリー保存加算器(CS
A)の付加を要する2入力加算器の代りの3入力加算器
の追加を意味する。
【0054】本発明の除算装置と従来の方法との比較
般に、2次元収束除算アルゴリズムは、高速乗算器を用
いる場合に限り乗算を必要とするだけだから有利であ
る。従来の技術では、高速乗算器および2次収束除算ア
ルゴリズムの実行を示唆する乗算・加算機能を設計する
ことは可能である。
【0055】本発明の除算装置と従来の2次元収束アル
ゴリズムとを比較する。
【0056】説明の便宜上、2個の56ビット数間の除
算を考え、そして1個の56×56、2サイクル個別乗
算器を使用するものとする。また、そのような乗算器は
112ビットの結果を出すものとし、最終結果を得るた
めに2入力加算器の代りに3入力加算器を用い、また適
正なバイパスロジックを用いるものとする。上記の従来
の方法を用いれば、図1のパイプラインチャートはビッ
ト正規化およびローディング後に商が得られる。
【0057】この乗算器は、バイパスを用いない場合に
は全部で4サイクルを要し、2の補数器が適正なバイパ
スを用いたとき1サイクルを要する。この乗算器の明示
パイプラインは次の通りである。
【0058】 ただし、L,E,Wは夫々乗算器(パイプライン図には
示されていない)のロード、乗算の実行および結果の書
込みを表わす。
【0059】図1の従来技術では13ステップおよび1
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である。
【0061】図3において、本発明の除算装置は14サ
イクルで商を生成する。図3において、乗算器のロード
サイクル(L)は従来の除算装置の説明で明らかなよう
に結果がバイパスされるものとしたので生じない。ま
た、2の補数をつくる必要がないから、ステップ1はこ
の実行と同様に開始出来る。しかしながら、正規化され
た結果がロードされない(すなわち正規化装置が同一の
チップ上にない)場合には、商を14サイクルおよび2
1サイクルで生成する二つの実行(すなわち本発明と従
来の技術の実施)にはサイクルを1つ余分に加える必要
がある。いずれにしても本発明のアルゴリズムは従来の
2次元収束アルゴリズムより著しく高速である。
【0062】本発明の除算装置の好適なハードウェアの
実施例を図4に示す。図4において、問題のオペランド
は正規化装置18で正規化され、適当な乗算ハードウェ
ア20aおよび20bを介して一対のオペランドレジス
タ21および22に向けられる。各オペランドレジスタ
の出力はM/2乗算器25に与えられ、このときオペラ
ンドレジスタ22の出力はインバータ28で反転され、
そのレジスタ内のオペランドの1の補数をつくる。以降
ではオペランドレジスタ21を「非反転」レジスタ、オ
ペランドレジスタ22を「反転」レジスタと呼ぶことに
する。M/2乗算器25は部分積PPとPPをつく
る。(もし、2/1加算器をM/2乗算器25の後に置
き、これら部分積をオペランドとして受けるようにすれ
ば、この加算器はM/2乗算器への2オペランド入力の
積に等しい和をつくることになる)。これら部分積は一
対のレジスタ、(レジスタA)30と(レジスタB)3
2に加えられる。これらレジスタは3入力加算器35へ
の3入力の内の2つを与える。3入力加算器35への第
3の入力は更新された除数と被除数項について右シフト
値を与える一対のレジスタの内の一方から得られる。第
1の位置決めパスはマルチプレクサ33を通りレジスタ
34に向う。マルチプレクサ33はレジスタ21の内容
または結果レジスタ39の内容をレジスタ34(レジス
タC)への入力として選ぶ。第2の位置決めパスはマ
ルチプレクサ6とレジスタ37を通る。マルチプレクサ
36は非反転レジスタ21の内容または結果レジスタ3
9の内容を入力として受ける。レジスタ34と37の出
力はマルチプレクサ38に与えられてこのマルチプレク
サ38がこれらレジスタの内の一方の内容を選び、3入
力加算器35の第3入力とする。3入力加算器35の出
力は結果レジスタ39に与えられる。結果レジスタ39
の出力および非反転レジスタ21の出力はマルチプレク
サ36で多重化されてレジスタ37の入力端に入る。
【0063】図4には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)での所望の乗算を与える。
【0065】連続的な値DP…PとNP
…Pを得るために、図4のハードウェアは図3の反復
手順に対応するように機能すべく制御される。値D
DP=DΦ+D2−(n−1)を得るために、この
ハードウェアは次のように動作する。まず正規化された
除数オペランドDがマルチプレクサ20a,20bを介
してレジスタ21と22に置かれる。反転オペランドレ
ジスタ22はDを反転してその1の補数Φをつくる。
オペランドDとΦがM/2乗算器25に加えられ、さ
らに積DΦを表わす部分積がレジスタ30,32に記
憶される。その間、オペランドDはマルチプレクサ33
を通りレジスタ34に入れられ、その結果、ハードワイ
ヤリング40がそのオペランドを右シフトしてD2
−(n−1)をつくり、これがレジスタ34に記憶され
る。マルチプレクサ38はレジスタ34の出力を3入力
加算器35への第3入力として選ぶ。レジスタ30,3
2,34の内容は3入力加算器に加えられてDΦ+D
−(n−1)=Dを得る。これが結果レジスタ39
に入力される。
【0066】Dの計算中に値NP=NΦ+N2
−(n−1)を得るために、正規化された分子Nがマル
チプレクサ20aを介して非反転オペランドレジスタ2
1に与えられ、その間、正規化された分母Dが反転オペ
ランドレジスタ22に保持される。以上のように、除数
Dは反転されてその1の補数Φをつくる。オペランド
NとΦはM/2乗算器25に入力され、そして積NΦ
を表わす部分積がレジスタ30と32に置かれる。そ
の間、被除数オペランドNはパス36,41,37によ
り右シフトされてレジスタ37にN2−(n−1)を与
える。マルチプレクサ38はレジスタ37の内容を選ぶ
ように切換わる。レジスタ30,32,37の内容は3
入力加算器に入力され、結果としてのNΦ+N2
−(n−1)=NPが結果レジスタ39に入力され
る。
【0067】結果NPが結果レジスタ39に入力され
る間に前の結果DPがマルチプレクサ20a,20b
を介して結果レジスタ39からレジスタ21,22に送
られる。これにより、レジスタ21,22はDP
の計算を開始する。これと同時に、マルチプレクサ33
と36は結果レジスタ39の出力を選択するように条件
づけられる。これらのセッティングは以降の動作中維持
される。
【0068】図3は本発明による乗算−加算プロセスを
図4の実施例でいかにして行うかを示すものである。図
4の除算装置はレジスタの同期化に使用可能な従来のパ
イプラインクロックCを有するパイプラインドマシン
として実施されている。これを図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は、シフトされた現在
の除数DP…Pk−1−(n−1)が更新され
た除数DP…Pの計算中に3/1加算器35に
与えられ、その間更新された被除数NP…P
加算器35による計算中にシフトされた現在の被除数N
…Pk−1−(n−1)がレジスタを介して
与えられるように、3入力加算器35に対し位相のずれ
たレジスタ34と37の内容を与えるように動作する。
【0070】一般に、パイプラインクロックピリオドm
−1において現在の除数DP…Pk−1が結果レ
ジスタ39への書込み中であれば、更新された除数DP
…Pを計算するためのLEW計算サイクルがパ
イプラインクロックピリオドmで始まる。このとき、非
反転レジスタ21は乗算器の一つの入力端に値DP
…Pk−1を与え、その値の1の補数Φが他方の入
力端に与えられる。現在、除数DP…Pk−1
レジスタ21に入れられると同時に、これも33,40
を介して右シフトされたレジスタ34に入れられる。こ
のように、パイプラインクロックピリオドm+1でDP
…Pk−1Φの乗算を表わす二つの部分積がレ
ジスタ30と32に入れられる。これと同時に、マルチ
プレクサ38はレジスタ34の内容を選択し、加算器3
5がレジスタ30,32,34の内容を組合せて更新さ
れた除数DP…Pをつくる。サイクルピリオド
m+1において、更新された被除数NP…P
k−1が非反転レジスタ21に入れられ、右シフトされ
てレジスタ37に入れられる。値Φは22,28を介
して連続して与えられる。さて、クロックピリオドm+
2において、更新された除数DP…Pが結果レ
ジスタ39に書込まれる。これと同時に、NP
k−1Φを表わす部分積と右シフトされた項NP
…Pk−1−(n−1)がレジスタ30と32お
よびレジスタ37からマルチプレクサ38を介して加算
器35に送られる。次のピリオドm+3において、更新
された被除数NP…Pが結果レジスタ39に書
込まれる。
【0071】夫々図4に示す二つの装置の一方を更新さ
れた除数の計算に、そして他方を更新された商の計算に
用いるように並列に動作させることが出来る。この場
合、一方の装置からの更新された除数をそれ自体の反転
および非反転レジスタに、そしてまた更新される商の計
算のための他方の装置の反転レジスタに戻すようにす
る。
【0072】本発明は図4に示す実施例によってのみ可
能であるのではなく、そのハードウェア構成は適用すべ
き技術における実行に合せて変更することが出来る。例
えば、適用すべき技術によっては、反転オペランドは不
要であり、あるいは正規化装置が他の演算ハードウェア
動作等にすでに必要なものとなっていることもある。図
4の装置では次に述べるハードウェアが必要である。す
なわち、正規化装置18(一般に収束除算アルゴリズム
に必要)、レジスタ37、3/2減算のためのCSA加
算器、1の補数をつくるためのインバータ、オペランド
レジスタにおけるマルチプレクサについての付加的な一
つの入力がそれである。パイプラインドマシンには高速
乗算のためにすでに存在しているバイパスバスがある。
このハードウェア構成は、高速除算のための付加的なハ
ードウェアが2サイクル乗算器を設計するのに必要なハ
ードウェアの量を考えると必要であることを示してい
る。また、加算/減算アルゴリズムを用いる同程度の速
度のの除算を行うのに必要なハードウェアの量を考えれ
ば、このような付加的な、ハードウェアは無視しうるも
のである。
【0073】以上のように、本発明の除算装置は3入力
加算器、反転ロジックおよび更に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進値とする。このストリングは小
数y…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の補数である。
【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 (56)参考文献 特開 平1−321517(JP,A)

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】ディジタル被除数オペランドNをディジタ
    ル除数オペランドDで除算して商オペランドQを得るた
    めの除算装置であって、 値DP01 …Pk-1 を表わす除数信号を与える除数手
    段と、 この除数手段に接続されて前記値DP01 …Pk-1
    1の補数を表わす補数信号Φk を与える補数手段と、 商収束値NP01 …Pk-1 を表わす商信号を生成する
    商収束手段と、 前記補数手段および商収束手段に接続され、夫々前記補
    数信号および商収束信号に応じて値NP01 …Pk-1
    Φk の部分積を表わす2個の部分積信号を生成する乗算
    手段と、 前記商収束手段に接続され、(n−1)をオペランドD
    とNの最少桁ビットの位置番号を表わす値として、シフ
    ト値NP01 …Pk-1-(n-1) を表わすシフト信号
    を生成するシフト手段と、 前記乗算手段およびシフト手段に接続され、前記2個の
    部分積信号および前記シフト信号により表わされる値を
    加算することにより、Q=NP01 …Pm を表わす商
    信号を生成する加算手段と を備えた除算装置。
  2. 【請求項2】前記加算手段は、前記乗算手段およびシフ
    ト手段に接続され前記2個の部分積信号およびシフト信
    号に応じてキャリー信号および保存信号を生成するキャ
    リー保存加算器と、このキャリー保存加算器に接続され
    前記キャリー信号および保存信号に応じて前記商信号を
    生成するキャリールックアヘッド加算器とを含んでい
    る、請求項1に記載の除算装置。
  3. 【請求項3】除数項および被除数項を一時記憶するレジ
    スタ手段、除数項および被除数項を所定方向にシフトす
    るシフト手段、2個の部分積信号を生成する乗算手段、
    および3個のオペランドに応じて1個の和を生成する3
    入力加算手段を含むディジタルコンピュータシステムに
    おいて、夫々2進小数点以下にn−1ビットを有するn
    ビットの正規化されたマルチビット数であるディジタル
    被除数Nをディジタル除数Dによる除算によってディジ
    タル商Qを得るための除算方法であって、 現在の除数DP01 …Pk-1 とその1の補数Φk を前
    記レジスタ手段に置数するステップと、 前記乗算手段において前記現在の除数およびその1の補
    数Φk に応じ積DP01 …Pk-1 Φk を表わす2個の
    部分積を生成するステップと、 前記現在の除数を右シフトして右シフト除数項DP0
    1 …Pk-1-(n-1)を生成するステップと、 前記3入力加算手段において前記2個の部分積および前
    記右シフト除数項に応じて更新された除数項DP01
    …Pk を生成するステップと、 現在の被除数項DP01 …Pk-1 とその1の補数Φk
    を前記レジスタ手段に置数するステップと、 前記乗算手段において前記現在の被除数項とその1の補
    数に応じて積DP01 …Pk-1 Φk を表わす2個の部
    分積信号を生成するステップと、 現在の被除数項を右シフトして右シフト被除数項DP0
    1 …Pk-1-(n-1)を生成するステップと、 前記3入力加算手段において前記2個の部分積および右
    シフト項に応じて更新された被除数項DP01 …Pk
    を生成するステップと を含んでいる除算方法。
  4. 【請求項4】積P01 …Pk の大きさが、前記更新さ
    れた被除数項がQに収束し、また前記更新された除数項
    が1に収束するような大きさとなるまで、前記各ステッ
    プをくり返す、請求項3に記載の除算方法。
JP3275744A 1991-02-13 1991-10-23 除算方法および除算装置 Expired - Lifetime JP2597775B2 (ja)

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 JPH0628155A (ja) 1994-02-04
JP2597775B2 true 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)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0478731A4 (en) * 1990-04-04 1993-09-22 International Business Machines Corporation Early scism alu status determination 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
JP2022121055A (ja) 2021-02-08 2022-08-19 キオクシア株式会社 演算装置及び演算回路

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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
JP2737933B2 (ja) * 1988-06-23 1998-04-08 日本電気株式会社 除算装置
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

Also Published As

Publication number Publication date
EP0499705A2 (en) 1992-08-26
EP0499705A3 (en) 1993-03-10
US5140545A (en) 1992-08-18
JPH0628155A (ja) 1994-02-04

Similar Documents

Publication Publication Date Title
JP5866128B2 (ja) 算術プロセッサ
JP3626769B2 (ja) 除算及び開平算に関して修正ニュートン−ラプソン技術を用いる浮動小数点演算装置
US5046038A (en) Method and apparatus for performing division using a rectangular aspect ratio multiplier
JP3636740B2 (ja) モジュラ・乗算を遂行するための超小形電子系装置、および超小形電子系装置を使用する方法
EP0464493B1 (en) High-radix divider
JPH07104778B2 (ja) 浮動小数点数演算処理装置
US6009450A (en) Finite field inverse circuit
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JP2597775B2 (ja) 除算方法および除算装置
US6917956B2 (en) Apparatus and method for efficient modular exponentiation
US4065666A (en) Multiply-divide unit
US3290493A (en) Truncated parallel multiplication
EP1504338B1 (en) "emod" a fast modulus calculation for computer systems
JP3252954B2 (ja) 乗算方法および乗算回路
Tenca et al. A High-Radix multiplier design for variable long-precision computations
Lloris Ruiz et al. Basic Arithmetic Circuits
Phillips et al. High performance dividers with multiply-add
JPH04314126A (ja) 逆数発生装置
JPH0789315B2 (ja) 有理数演算装置