JPH04227535A - 除算を行なう装置 - Google Patents

除算を行なう装置

Info

Publication number
JPH04227535A
JPH04227535A JP3068413A JP6841391A JPH04227535A JP H04227535 A JPH04227535 A JP H04227535A JP 3068413 A JP3068413 A JP 3068413A JP 6841391 A JP6841391 A JP 6841391A JP H04227535 A JPH04227535 A JP H04227535A
Authority
JP
Japan
Prior art keywords
quotient
divisor
operand
register
partial remainder
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
Application number
JP3068413A
Other languages
English (en)
Other versions
JP3144816B2 (ja
Inventor
Thomas W Lynch
トーマス・ダブリュ・リンチ
Chen Ken
ケン・チェン
Hurson Tony
トニー・ハーソン
Steven D Mcintyre
スティーブン・ディー・マキンタイア
Salim A Shah
サリム・エイ・シャー
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH04227535A publication Critical patent/JPH04227535A/ja
Application granted granted Critical
Publication of JP3144816B2 publication Critical patent/JP3144816B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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
    • G06F7/537Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
    • G06F7/5375Non restoring calculation, where each digit is either negative, zero or positive, e.g. SRT
    • 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/544Methods 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/552Powers or roots, e.g. Pythagorean sums
    • G06F7/5525Roots or inverse roots of single operands
    • 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/552Indexing scheme relating to groups G06F7/552 - G06F7/5525
    • G06F2207/5526Roots or inverse roots of single operands
    • G06F2207/5528Non-restoring calculation, where each result digit is either negative, zero or positive, e.g. SRT

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
  • Inorganic Insulating Materials (AREA)
  • Microwave Tubes (AREA)
  • Advance Control (AREA)
  • Superconductors And Manufacturing Methods Therefor (AREA)
  • Vending Machines For Individual Products (AREA)
  • Pulleys (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【関連の出願への相互参照】
【0002】
【産業上の利用分野】この出願は次の米国特許出願に関
するものである。
【0003】   連続番号            名称     
                         
  発明者(06940/0002)  パイプライン
化された浮動小数点処理装置    パールマン   
             (Pipelined F
loating Point Processing 
    (Perlman )、          
        Unit)            
                      他(0
6940/0003)  正規化パイプライン化された
浮動小数点      グプタ           
             処理装置        
                         
 (Gupta )、他              
  (Normalizing Pipelined 
Floating Point           
                 Processi
ng Unit )                
                    (0694
0/0004)  多重アキュムレータを有する演算装
置        タムラ             
   (Arithmetic Unit Havin
g Multiple         (Tamur
a)、他                  Acc
umulators)(06940/0005)  多
重演算のブール条件を収集するための装    ミック
ミン                置および方法 
                         
    (McMinn)、他           
     (Apparatus and Metho
d For Collecting         
          Boolean Conditi
ons of Multiple          
         Operations )(069
40/0007)  高速繰返し除算のための特殊キャ
リ保存加    シャー              
  算器                     
                 (Shah)、他
                (A Specia
l Carry Save Adder For Hi
gh                   Spee
d Iterative Division)(069
40/0009)  高速混合基数加算器      
                  リンチ    
            (High Speed M
ixed Radix Adder)        
  (Lynch )、他(06940/0014) 
 平方根オプションを有する高速除算器       
 リンチ                     
   (High Speed Divider Wi
th Square Root     (Lynch
 )、他                  Opt
ion)(06940/0010)  基数4キャリ先
見ツリーおよびこれについて  リンチ       
         の冗長セル           
                     (Lyn
ch )、他先に載せられた出願は、これとともに同じ
日付に出願され、この発明の譲受人に譲渡され、かつす
べてが再現されるかのようにここで参照することにより
援用される。
【0004】
【発明の背景】
【0005】
【発明の分野】この発明はコンピュータシステムのため
の浮動少数点プロセッサに関するものであり、かつより
詳述すれば、基数4で引離し反復除算を行なう高速除算
器に関するものである。この発明はさらに、基数4で引
離し反復除算、および基数2で平方根計算を行なう高速
除算器に関するものである。
【0006】
【関連技術の説明】多くのコンピュータプログラムは、
多数の浮動小数点算術演算を必要とする。したがって、
そのようなプログラムが行なわれるコンピュータによっ
て実行された多くの命令は、浮動小数点命令である。そ
のようなプログラムについては、サイクルごとに実行さ
れ得る浮動小数点算術命令の数が大きければ大きいほど
、機械演算の速度は速い。したがって、浮動小数点処理
時間の速度を上げるために多くの努力がなされた。たと
えば、デグルート(DeGroot )の米国特許4,
683,547は、各サイクルにおいて生じられるべき
2つの浮動小数点結果を許容する浮動小数点算術装置を
開示する。その同じ特許は、一度に実行されるべき倍数
算術演算を許容する算術装置の先行技術の教示を論ずる
。しかし別のアプローチはオーレアリ(O´Leary
 )の米国特許4,075,704において示される。 オーレアリ(O´Leary )においては、浮動小数
点加算器および浮動小数点除算器はパイプライン化され
た回路であり、次のクロック期間の間次の段への提示の
ため、1つのクロック期間の間に計算された部分的な結
果をとらえるための中間の一時記憶手段を有する複数個
の段を含む。デグルート(DeGroot )およびオ
ーレアリ(O´Leary )において開示されたそれ
らのようなアプローチは、主に繰り返し演算をするため
に浮動小数点算術装置の能力を上げることに集中し、か
つ浮動小数点算術装置が特定化された演算を行ない得る
速度を上げることに向けられなかった。
【0007】除算は算術演算の中で最も複雑であり、か
つ典型的には加算または乗算のようなほかの算術演算よ
りも、多くのハードウェアおよび計算時間を必要とする
ので、除算計算が除算器により行なわれ得る速度は特に
重要である。たとえば、除算演算が行なわれるべきオペ
ランドに含まれる桁の数が増加するに従って、除算器が
所望の算術演算を行なうのに非常に長い時間が必要とさ
れる。さらに、たとえば、高速乗算器を有する大型コン
ピュータはしばしば、除算が乗算の繰り返しによって行
なわれる乗算型除算を用いる。しかしながら、組合わせ
回路によるそのような乗算型除算の実現は、多数のハー
ドウェアエレメントを必要とし、かつそれゆえに実用的
でない。
【0008】除算技術は“引戻し”除算技術および“引
離し”除算技術に分けられてもよい。引離し除算におい
ては、値、 −((ベータ)−1)、・・・、−2、−1、1、2、
・・・、((ベータ)−1))  (1)ここでは、(
ベータ)は除数の基数であり、kは冗長係数であり、値
を有する一連の商桁は先に決定されており、かつ商の各
桁は反復方法で商の組から選択され、また次の商けたを
選択する際に利用される一連の部分剰余を生じる。引離
し除算の変形は一般的に、“SRT”除算と称され、 −(k((ベータ)−1))、・・・、−2、−1、0
、1、2、・・・、(k((ベータ)−1))  (2
) の範囲で一連の商桁の先行の決定により特徴付けられ、
各商けたが選択され、ここでは、(ベータ)は除算の基
数である。
【0009】引離し型の除算器の特徴的な特性は、商の
桁が決定される先の演算から生じられる部分剰余におけ
る正の数と同様に負の数の使用である。1つのそのよう
な引離し型の除算器は、イケダの米国特許番号4,72
2,069において開示される。イケダは除数をストア
するための除数レジスタと、被除数または部分剰余をス
トアするための部分剰余レジスタと、部分剰余を予測す
るための予測子と、除数レジスタの内容を乗算するため
の乗算器と、部分剰余レジスタの内容から乗算器の出力
を減算するためのかつ、予測子が除数の上位の桁、およ
び部分剰余の上位の桁から部分商を予測する、そのよう
な態様で、部分剰余を計算するための第1の加算器とを
含む、引離し型の除算器を開示する。イケダ除算器にお
ける乗算器および倍数加算器の使用は、しかしながら、
その比較的ハードウェア集中的な設計のため、除算器の
費用およびスペースの要求の両方に著しい増加を加算す
るであろう。
【0010】別の引離し型の除算器はイルクラ(Iru
kulla)、他の米国特許番号4,724,529に
開示される。イルクラ(Irukulla)、他の除算
器は、関係、  PJ+1 =ベータ)Pj −qj 
D’                  (3)に従
って部分剰余を計算する加算器/減算器を含むが、イル
クラ(Irukulla)、他は、しかしながら、qj
 Dを生ずるために費用およびスペースのかかる乗算回
路を用いる。最後に、“WTL3170/3171スパ
ーク浮動小数点コープロセッサの開発(Develop
ing the WTL 3170/3171 Spa
rc Floating−Point Coproce
ssors)”と称されたバーマン(Birman)、
ほかの記事、(1990年、2月)IEEE  Mic
ro、pgs.55−64に、引離し、基数4仮数除算
および平方根計算を行なうための浮動小数点算術演算装
置を開示する。しかしながら、バーマン(Birman
)、他の記事に開示された装置は、第1の除算/平方根
論理および乗算器により“×3”生成を共有し、それに
よって浮上小数点プロセッサが除算演算の間、乗算演算
を行なうのを防ぐ。さらに、バーマン(Birman)
、他の記事に開示された装置は、任意の商ビットが決定
される前に、乗算回路を用いて除数の3倍の生成を必要
とするように構成され、それによって商の計算を遅くす
る。
【0011】この発明の目的は、基数4で引離し反復除
算を行なう高速除算器を提供することである。
【0012】この発明の他の目的は、基数4で引離し反
復除算を、および基数2で平方根計算を行なう高速除算
器を提供することである。
【0013】この発明のさらに別の目的は、クロックパ
ルス位相ごとに除算演算の反復の速度で動作するように
、除算器の速度を上げながらも必要とされる論理回路の
量を最小にする除算器を提供することである。
【0014】この発明のさらに別の目的は、出力に対す
るの商予測をストアするための、かつ出力の前に誤った
商予測を修正するため商予測マイナス1をストアするた
めの1対の並列商レジスタを有する除算器を提供するこ
とである。
【0015】
【発明の概要】1つの局面において、この発明は、結果
を生じるために第1のオペランド割る第2のオペランド
の除算を行なうための除算器のものであり、一連の部分
剰余を反復的に生じるための手段と、一連の商ビットの
列を反復的に予測するための手段と、第2のオペランド
の倍数を生成するための手段と、生成された倍数のうち
の1つを選択するための手段とを含む。一連の部分剰余
の列を生じるための手段は、第1の部分剰余として第2
のオペランドを選択する。商予測子手段は、第1および
第2のオペランドに基づき第1の商ビットをかつ生じら
れた部分剰余および第2のオペランドに基づき次の商ビ
ットを予測する。選択手段は、次の商予測に基づき次の
部分剰余を生じるため、生成された倍数のうちの1つを
選択する。次の部分剰余は、それから生じられた部分剰
余および選択された第2のオペランドの倍数のうちの1
つから生じられる。
【0016】別の局面において、この発明は被除数を除
数で除算して結果を生じるための装置のものであり、そ
れは部分剰余を受け、かつストアするように接続される
部分剰余レジスタと、除数を受け、かつストアするよう
に接続される除数レジスタと、除数レジスタから除数を
かつ、部分剰余レジスタから一連の部分剰余を受けるよ
うに接続される商予測論理と、商予測論理により予測さ
れた一連の商ビットの列を受け、かつストアするように
接続される第1の商レジスタと、除数の倍数を生成する
ための手段と、除数の倍数を生成するための手段に、か
つ商予測論理に接続される特殊キャリ保存加算器とを含
む。キャリ保存加算器は、予測された商に基づき除数の
倍数を選択し、かつ部分剰余レジスタおよび選択された
除数倍数にストアされた部分剰余に基づき、次の一連の
部分剰余のうちの1つを決定する。商予測論理はそれか
ら次の部分剰余を受けて、一連の商ビットのうちの次の
ものを決定する。
【0017】この発明は、添付の図面を参照することに
より、より一層理解されるであろうし、かつその多数の
目的、特徴および利点は当業者にはより明らかになるで
あろう。
【0018】 3、
【発明の詳細な説明】
初めに図1を参照すると、基数4で引離し反復除算を行
なうための高速除算器100は、今詳細に説明されるで
あろう。ここで開示される除算器は、浮動小数点プロセ
ッサ装置のコンポーネントとして用いられるということ
が熟考され、たとえばパーマン(Perlman )、
他の“パイプライン化された浮動小数点処理装置(Pi
pelined Floating Point Pr
ocessing Unit)”と称される同時係属中
の米国特許出願連続番号          (Att
y. Docket No. 06940/0002 
)、グプタ(Gupta )、他の“パイプライン浮動
小数点処理装置の正規化(Normalizing P
ipelineFloating Point Pro
cessing Unit )”と称される連続番号 
         ((Atty. Docket N
o. 06940/0003 )、およびソーベル(S
obel )、他の“多重アキュムレータを有する算術
装置(Arithmetic UnitHaving 
Multiple Accumulators)”と称
される連続番号          (Atty. D
ocket No. 06940/0004 )におい
て開示される浮動小数点プロセッサ装置の任意のもので
あり、すべてこれとともに同日付で出願され、かつ前も
って参照することによって援用される。上で参照された
出願において詳細に記載されたように、浮動小数点プロ
セッサは出力オペランドについて算術演算を行なうため
の加算器と、乗算器と、除算器とのような複数個の浮動
小数点算術演算装置を含む。1対の入力オペランド、た
とえば、オペランドAおよびオペランドBが浮動小数点
算術演算装置に入力されるとき、浮動小数点算術演算装
置は、入力オペランドについて所望の算術演算を行ない
、かつ結果バス上に結果を出力する。典型的には、浮動
小数点プロセッサは浮動小数点および整数の数の両方を
処理してもよい。32ビット(単精度)および64ビッ
ト(倍精度)を含む、種々の浮動小数点フォーマットは
サポートされてもよい。さらに、浮動小数点プロセッサ
は整数の浮動小数点への変換、およびその逆も同様に処
理してもよい。
【0019】除算演算において、商を生じるために被除
数は除数で割られる。この発明において、被除数はAバ
スに沿って除算器100に供給され、除数はBバスに沿
って除算器100に供給され、かつ、商は結果バスに沿
って除算器100により出力される。以下により詳細に
説明されるであろうように、除算器100は除算器制御
装置110によって制御され、除算器制御装置110は
Iバスから命令を受け、受けられた命令に基づいて、除
算器100の種々のエレメント、つまり、第1の商予測
子102、部分剰余レジスタ106、除数レジスタ10
8、第1の商レジスタ114a、第2の商レジスタ11
4b、3X除数レジスタ116、ゼロ検出手段122、
剰余符号検出手段123に、除算演算の間制御信号を生
成する。
【0020】Aバスは第1の商予測子102、および部
分剰余レジスタ106に接続される。同様に、Bバスは
第1の商予測子102、シフタ103、加算器104の
第1の入力および除算レジスタ108に接続される。除
算演算を始めるために、除算器制御装置110は、除算
演算を始めるためにIバスから命令を受ける。除算演算
の第1の段は、一般的に“プリオーバヘッド”段として
称され、被除数、たとえばオペランドAがそれからAバ
スに沿って第1の商予測子102および部分剰余レジス
タ106に供給され、かつ除数、たとえばオペランドB
が、システムによって生成されかつ分配される2位相発
振クロックパルスのうちの第1の位相の間、Bバスに沿
って第1の商予測子102および、除数レジスタ108
に供給されるとき、始まる。
【0021】クロックパルスの第1の位相の間、被除数
Aは部分剰余レジスタ106にラッチされ、かつ除数B
は除数レジスタ108にラッチされる。さらに、被除数
Aおよび除数Bは第1の商予測子102に入力され、第
1の商予測子102においては、被除数Aを除数Bで割
ることにより生じられるべき商Qの第1のビットq1 
は、決定される。第1の商予測子102は、第1の商予
測子102に入力される被除数Aおよび除数Bによって
、第1の商ビットq1が決定されるであろうように構成
された組合わせ論理回路を含む。
【0022】次に図3を参照すると、第1の商予測子1
02を含む組合わせ論理回路のグラフ図が今見られても
よい。より詳述すれば、図3は第1の商予測子102の
ため組合わせ論理を引出すのに用いられてもよい論理P
Dプロットを示す。図3において、第1の商予測子10
2へ入力された除数Aに対する起こり得る値は、水平軸
に沿って記載され、かつ第1の商予測子102へ入力さ
れた被除数Bに対する起こり得る値は、垂直軸に沿って
記載される。したがって、このプロット上の各点は、除
数および被除数の対である。除算器100に達する数は
正規化されなければならないので、かつ被除数は初めに
4で割られなければならないため、かつ最後に、第1の
商予測子102は各入力オペランドからビットの上部対
しか受けないため、プロットにおいて用いられる点は、
(1.00,  .010)、(1.00,0.01)
、(1.01,.010)、(1.01,.011)、
(1.10,.010)、(1.10,.011)、(
1.11,.010)および(1.11,.011)の
みである。しかしながら、除数の実の値が間隔(1.0
0,  10)に置かれ、かつ実の被除数は間隔(.0
1,  .1)に置かれてもよいので、除算器100の
第1の商予測子102は量子化エラーを被る。したがっ
て、図3において、下方の点線は2の第1の“推測”商
が1よりもはるかに大きいことによって、間違うことな
く選ばれるであろう下方の境界を示す。同様に、上方の
点線は3の推測商が1よりもはるかに大きくないことに
よって選ばれるであろう下方の境界および、商1が推測
されるであろう上方の境界を示す。最後に、上方のおよ
び下方の直線は、も組合わせ論理において簡単に実現さ
れるであろう量子化された決定しきい値を示す。もし下
方の直線が、商1が推測されるものについて、またはそ
れより上のしきい値を示し、かつ上方の線が商2が推測
されるものについて、またはそれより上のしきい値を示
すならば、実の被除数および除数が何であろとも、量子
化された推測は有効であろうということが、発明が関係
する当業者にとって容易に明らかになるはずである。図
3において、商推測2を生ずるであろう(1.00,.
011)および(1.01,.011)を除いて、全て
の点は商推測1を生ずるであろう。
【0023】さて図1に戻って、第1の商予測子102
は、すべての点は、商予測子112および商レジスタ1
14に接続され、そのため第1の商予測子がq1 を推
定した後、推定q1 は商予測子112に送られる。順
に、商予測子112は、0、1、2、3のいずれかであ
ってもよいq1 値および対応する符号ビットを商レジ
スタ114に送る。さらに、第1の商予測子112は除
算の始まりを示すために、信号を商レジスタ114に送
る。
【0024】次に図2(A)を参照すると、図1に示さ
れた商レジスタ114は今より、詳細に説明されるであ
ろう。商レジスタ114は、最終商Qの現推定をストア
するための第1の商(または“Q”)レジスタ114a
と、現ビット位置、j,から最終商Qマイナス1の現推
定をストアするための第2の(または“Q−1”)商レ
ジスタ114bと、現ビットポインタ1000を生成す
るためのシフトレジスタ114cと、第1の商予測子1
12からの“除算開始”制御信号と、除算器制御装置1
10に出力される“除算終了”制御信号1016と、商
レジスタ114a、114bへ書込まれるべきqおよび
qマイナス1の現値を生成するためのqデコードブロッ
ク114dと、Q−1レジスタ114bにQレジスタ1
14aの内容を書込むための、およびQレジスタ114
aにQ−1レジスタ114bの内容を書込むための手段
(図2(B)に示される)とを含む。
【0025】次に、図2(B)を参照すると、商レジス
タ114a、114bは今、より詳細に説明されるであ
ろう。各商レジスタ114a、114bは、一連の商ビ
ットレジスタ114a−0と、・・・114a−(i−
1)と、114a−iと、114b−0と、・・・、1
14b−(i−1)と、114b−iとを含み、それぞ
れ並列に接続される。シフトレジスタ114cは第1の
商予測子112から除算開始信号を受け、かつ対の商ビ
ットレジスタ114a−0と、・・・114a−(i−
1)と、114a−iと、114b−0と、・・・、1
14b−(i−1)と、114b−iとに接続される対
のポインタ1000を生成し始め、そのため2つの最上
位商レジスタビットに接続されるポインタは初めに主張
される。連続的な反復は連続的に、より下位の対のポイ
ンタの主張を引起す。8j 値および第2の商予測子1
12から送られる符号に基づいて、qデコードブロック
114dは、現在示されている商ビットレジスタ内の位
置に書込まれるべきビット値を生成する。
【0026】いかなる反復の間でも、もしq符号が正で
あれば、qデコード114dは、現在指されている商ビ
ットレジスタ114a内の位置にq値、および現在指さ
れている商ビットレジスタ114b内の位置にq−1値
を書込む。Q−1レジスタ114b内のすべての残りの
ビット位置は、Qレジスタ114a内の対応するビット
位置によって書込まれる。同様に、もしq符号値が負で
あれば、qデコード114aは、現在示されている商ビ
ットレジスタ114a内の位置により、対応するq値、
および現在示されている商ビットレジスタ114b内の
位置にq−1値を書込むであるう。Qレジスタ114a
内のすべての残りのビット位置は、Q−1レジスタ11
4b内の対応するビット位置によって書込まれるであろ
う。最後に、もしq値がゼロであれば、商ビットレジス
タ114a内の位置は0を受け、かつ商ビットレジスタ
114b内の位置は3を受けるであろう。ポインタ10
00のいくらかは、図1の除算器制御装置による使用の
ための除算終了インジケータ1016として用いられる
【0027】また、第1のクロックパルスの第1の位相
の間、加算器104は第1の入力に除数を、および第2
の入力に除数の2倍を受ける。除数の2倍の生成は、比
較的簡単な演算であり、かつシフタ103によって行な
われてもよく、シフタ103は除数を受け、1つの2進
桁を介して、除数を左にシフトすることにより除数の2
倍を生じ、かつ加算器104に除数の2倍を出力する。 除数レジスタは除数マルチプレクサ118に接続され、
除数Bは再び第1のクロックパルスの第1の位相の間、
除数マルチプレクサ118に供給される。
【0028】第1のクロックパルスの第2の位相の間、
除算演算の“オーバヘッド”段は、引離し除算演算の第
1の反復の計算で始まる。このとき、部分剰余レジスタ
106は被除数Aを供給し、かつ除数レジスタ108は
商予測子112に除数Bを供給する。第1の商予測子1
02に類似するが、それよりもいくぶんより複雑である
商予測子112は、商予測子112に入力される被除数
Aおよび除数Bによって、商ビットqj および符号ビ
ットsj が商予測子112によって選択されるであろ
うように構成される組合わせ論理回路である。
【0029】次に図4を参照すると、商予測子112を
含む組合わせ論理回路のグラフ図が今見られるであろう
。図3のように、図4は組合わせ論理、この場合におい
ては、商予測子112を含む組合わせ論理を、引出すた
めに用いられてもよい論理PDプロットを示す。さらに
、図3は図4の小さいセクションを表わす。したがって
、図3において示されるグラフ図に関して詳細に説明さ
れた原理は、ここでも同様にあてはまる。図4において
見られるであろうように、商予測子112は商予測子1
12に入力される部分剰余および除数に依存して、Qが
次の数、(−3)、(−2)、(−1)、(−0)、(
+0)、(+1)、(+2)、(+3)のうちのどれか
を決定するであろう。それはものである。再び、選択の
後、符号付商ビットQj は次の有効桁商ビットレジス
タにおける記憶のため、商レジスタ114a、114b
に転送される。
【0030】また選択の後、符号および商ビットは商予
測子112からsj、qj ラインを介してキャリ保存
加算器120へそれぞれ転送される。部分剰余レジスタ
106は被除数または“第1の部分剰余”、もしくは次
の部分剰余を部分剰余の2つの2進桁を左にシフトする
シフタ107に出力し、それによって部分剰余の4倍を
生じ、それらは順に、シフタ107によりキャリ保存加
算器120に与えられる。キャリ保存加算器120への
最終信号は、除数マルチプレクサ118からの+0、−
0、+D、−D、+2D、−2D、+3D、−3D入力
である。しかしながら、第1の反復の間決定された商予
測ビットqj は+3または−3になり得ないので、除
数マルチプレクサ118はキャリ保存加算器120に+
0、−0、+D、−D、+2Dおよび−2Dを出力する
。この点で、除数レジスタ108は除数を除数マルチプ
レクサ118に前もって供給したので、除数マルチプレ
クサはキャリ保存加算器120に何の困難もなく、上で
説明された出力を容易に生じ得る。
【0031】次に、シャー(Shah)、他の“高速反
復除算のための特殊キャリ保存加算器(A Speci
al Carry Save Adder High 
Speed Iterative Division)
”と称される米国特許出願連続番号         
 (Atty. Docket No. 06940/
0007 )により詳細に説明され、すべてこれととも
に同日付で出願され、かつ前もって参照することによっ
て援用されるキャリ保存加算器120はそれから、除算
マルチプレクサ118からの入力、つまり、+0、−0
、+D、−D、+2D、−2Dのうちの特定のものを選
択し、それは符号化された商ビットと次に記載される再
帰的アルゴリズムを行なうのに用いる除数との積に等し
い。それから、除数マルチプレクサ118からの選択さ
れた出力、およびシフタ107からの出力を用いて、キ
ャリ保存加算器はそれから、次の方程式(4)Pj+1
 =4Pj −qj D    (4)ここでは、Pj
 は部分剰余レジスタ106にストアされた部分剰余で
あり、qj は商予測子112によって生じられた符号
化された商ビットであり、Dは除数であり、かつPj+
1 は次の部分剰余である、に記載される再帰的アルゴ
リズムの適用によって次の部分剰余を生ずるために、第
1の反復計算を行なう。
【0032】また第1のクロックパルスの位相2の間、
かつPj+1 の第1の反復の計算と重なり、加算器1
04は除数の3倍(3D)を生じるために、除数(D)
と除数の2倍(2D)を加算する。値3Dはそれから、
記憶のため3X除数レジスタ116に出力される。3X
除数レジスタ116は、それから部分剰余計算の連続す
る反復における可能な使用のため、キャリ保存加算器1
20に出力されるべき除数の倍数+3Dおよび−3Dの
生成のための除数マルチプレクサ118に値3Dを出力
する。
【0033】4pj からDの倍数を減算することによ
る複数個の和およびキャリを含む、冗長な形で次の部分
剰余を計算した後、キャリ保存加算器120は、商予測
子112による符号化された商ビットの次の反復予測の
次の反復計算において用いるために、商予測子112に
最上位の5個の和ビットおよび最上位の5個のキャリビ
ットを出力する。
【0034】6番目の最上位和およびキャリビットは、
商予測子112に曖昧な商ビットに対する修正を与える
。この発明のこの局面をさらに説明するために、図4に
対する参照が再びなされる。図4のPDプロットの2つ
の領域において、2つの小さいハッチングされた領域が
示される。これらの2つのハッチングされた領域は、5
ビット部分剰余推定を用いながら、理論的なエラー限界
内で商を予測することを不可能にさせるキャリ保存加算
器120を用いることにより引起こされるエラーを表わ
す。しかしながら、部分剰余推定に6番目のビットを加
算するのには、非常に費用がかかる。しかしながら、5
ビット推定におけるエラーを推定するために、6番目の
キャリおよび6番目の和ビットのNORを用いることに
よって、理論的な限界内で商推測をうまく選ぶことがで
きる。もし6番目の和および6番目のキャリビットのN
ORが1であれば、いかなるキャリも6番目のビットに
おいて消され、和の上位5ビットをキャリの上位5ビッ
トに加算することから引出される部分剰余推定と、現実
の部分剰余との間の差は2−6よりも大きくはなり得ず
、可能な商予測のうちより大きいものが間違いなく用い
られてもよい。逆に、もし6番目の和および6番目のキ
ャリのNORがゼロであれば、部分剰余推定と現実の部
分剰余との間の差は2−7よりも大きくなければならず
、それで、可能な商予測のより小さいものは下限の範囲
に厳密につくおそれなしに用いられてもよく、それによ
って多分繰り返しツリーに進入し得る。
【0035】除算器100は上で記載されたように、商
レジスタ114における記憶のための次の符号化された
商ビットを反復的に生じ続け、その後は、全ての商Qが
生じられるまで、キャリ保存加算器120における次の
部分剰余を反復的に決定する。単精度数については、商
Qの計算は再帰的アルゴリズムの14回の付加的な反復
を必要とするであろうし、アルゴリズムの各反復はクロ
ックサイクルの1位相において完了されていた。倍精度
数については、商の計算はアルゴリズムの28回の付加
的な反復を必要とするであろう。除算演算は商レジスタ
114がいっぱいになるとき完了される。
【0036】さて除算演算の“ポストオーバヘッド”段
に入り、もし単精度除算が行なわれていれば、再帰的ア
ルゴリズムの14番目の反復をまたは、もし倍精度除算
が行なわれていれば、再帰的アルゴリズムの28番目の
反復を完了した後、部分剰余レジスタ106にストアさ
れる部分剰余は、これらの演算の並列決定のため、ゼロ
検出手段122、たとえば、従来の設計の第1の加算器
および剰余符号検出手段123、たとえば、従来の設計
の第2の加算器に出力される。剰余符号検出演算は商レ
ジスタ114aにストアされる商が1つだけ離れるかど
うかを決定することである。ゼロ検出演算は完了された
除算が正確かどうかを決定することである。ゼロ検出手
段122および剰余符号検出手段123の各々は、部分
剰余レジスタ106によって出力される残りの和および
キャリを受ける。出力ラッチ126はそれから、商レジ
スタ114から商を受け、浮動小数点プロセッサの丸め
装置における正確な丸めのため、余分のビットとともに
商を与えるために、商レジスタ114aから受けられる
商へ、ゼロ検出手段122からのゼロまたは“動きの悪
い(スティッキー:sticky)”ビットを付加する
であろう。ゼロ決定とほぼ同時に、剰余符号検出手段1
23は、部分剰余レジスタ106により出力される和お
よびキャリの加算の符号をチェックする。もし和および
キャリの加算の符号が負であれば、剰余符号検出手段1
23は、商がはるかに大きいことを、かつそれがQ−1
レジスタ114bを用いるべきであるということを示し
て、出力ラッチ126に信号を出力する。出力ラッチ1
26はそれから、商レジスタ114bからの商マイナス
1を用いかつ、浮動小数点プロセッサの丸め装置におけ
る正確な丸めのため余分なビットともに商を与えるため
に、商レジスタ114bから受けられる商マイナス1へ
、ゼロ検出手段122からのゼロまたは“動きの悪い(
スティッキー)”ビットを付加する。
【0037】最後に、商の仮数部分が上で記載される反
復方法に従って計算されている間、商の指数部分は指数
計算手段124によって計算されている。より詳述すれ
ば、指数計算手段はAバスに沿って被除数Aを、および
Bバスに沿って除数Bを受けるように接続される。除算
器制御装置110から制御信号を受けるまで、指数計算
手段124は被除数指数から除数指数を減算し、かつ出
力ラッチ126に結果を出力する。ひとたび出力ラッチ
126が商レジスタ114および指数計算手段124か
らそれぞれ仮数商を受けると、除算演算の結果は結果バ
スを介して浮動小数点プロセッサ装置に出力される。
【0038】次に図5を参照すると、基数4で引離し反
復除算を行なうためのスペース効率のよい、高速除算器
300が今説明されるであろう。ここで説明されるスペ
ース効率のよい、高速除算器は、構成およびオペレーシ
ョンが次に記されることを除いて、図1において示され
る高速除算器と同じである。スペース効率のよい除算器
300は、除算器100のように、第1の商予測子30
2と、加算器304と、部分剰余レジスタ306と、シ
フタ307と、除数レジスタ308と、シフタ309と
、除算器制御装置310と、商予測子312と、商レジ
スタ314と、3X除数レジスタ316と、除数マルチ
プレクサ318と、キャリ保存加算器320と、指数計
算手段324と、出力ラッチ326とを含み、それらは
、構成および動作が除算器100の対応するコンポーネ
ントと同じである。本質的には、スペース効率のよい、
高速除算器300はシフタ103、ゼロ検出手段122
および剰余検出手段123が除去されたという点で、高
速除算器100とは異なる。この実施例において、しか
しながら、ゼロ検出手段122によって前もって行なわ
れる符号およびゼロ検出動作は、今加算器304によっ
て行なわれており、加算器304は前の実施例において
は、Dおよび2Dを組合わせるためにのみ用いられた。 そのため、加算器304は倍数機能を行なうことができ
、マルチプレクサ328は加算器304への入力を制御
するために設けられる。
【0039】マルチプレクサ328の入力は、Aバスを
介してAオペランドと、Bバスを介してBオペランドと
、部分剰余レジスタ306の第3の出力を介して一連の
和と、部分剰余レジスタ306から第4の出力を介して
一連のキャリとを受けるように接続される。マルチプレ
クサ328に対する第5の入力は次に、より詳細に説明
されるであろう。除数の3倍の決定の間、マルチプレク
サ328は除算器制御装置310から制御信号を受ける
と、受けられた除数Bを取り、受けられた除数を1個の
10進小数点シフトして除数の2倍を生じ、かつ除数お
よび除数の2倍を加算器304の第1のおよび第2の入
力に出力する。除数および除数の2倍が加算器304に
よって受けられると、スペース効率のよい、高速除算器
300は部分剰余の最後の反復決定が部分剰余レジスタ
306にストアされ、かつスペース効率のよい、高速除
算器300がポストオーバーヘッド段に入るまで、図1
および2に関して前に説明されたように動作するであろ
う。
【0040】ポストオーバーヘッド段において、残りの
和およびキャリは、部分剰余レジスタ306の第3およ
び第4の出力を介してマルチプレクサ328に与えられ
る。この点で、除算器制御装置310はマルチプレクサ
328への制御信号を生成し、そのため和は加算器30
4に出力され、かつキャリは加算器304に第1および
第2の加算器入力を介して出力される。加算器304は
和およびキャリ出力をマルチプレクサ306により加算
し、かつ加算の結果を出力ラッチ326に出力する。加
算器304はそれから、符号が正であるかまたは負であ
るかを示す、信号を符号ラインを介して出力ラッチ32
6に出力する。もし和およびキャリの加算が、剰余符号
が正であることを示せば、出力ラッチ326は商レジス
タ314aからの商を用いるであろう。しかしながら、
もし和およびキャリの加算が、剰余符号が負であること
を示せば、Q−1レジスタ314bの内容は出力ラッチ
326によって用いられるであろう。加算器304の出
力はまたマルチプレクサ328の第5の入力に向けられ
るであろう。マルチプレクサ328はそれから、加算器
出力の反転を加算器304に向け、かつ出力和の符号を
決定するために、キャリライン330を介して1を加算
する。前に説明されたように、ゼロ検出は出力ラッチ3
26に余分の結果ビットをセットするために用いられる
【0041】次に図6を参照すると、基数4で引離し反
復除算、および基数2で平方根を行なうためのスペース
効率のよい、高速除算器は今、説明されるであろう。こ
こで説明される除算器は、以下に記されることを除いて
、図5に示される高速除算器によく似た構成および動作
である。除算および平方根を行なうための除算器500
は、第1の商予測子502と、加算器504と、部分剰
余レジスタ506と、シフタ507と、除数レジスタ5
08と、シフタ509と、除算器制御装置510と、商
予測子512と、Qレジスタ514aおよびQ−1レジ
スタ514bを含む商レジスタ514と、3X除数レジ
スタ516と、除数マルチプレクサ518と、キャリ保
存加算器520と、指数計算手段524と、出力ラッチ
526と、マルチプレクサ528とを含み、図5に関し
て説明されたスペース効率のよい、高速除算器300の
対応するコンポーネントと同じ接続および動作である。 基数4で除算演算と同様に基数2で、つまりルートビッ
トがグループ−1、0、および+1から選択されてもよ
い平方根演算を行なうために高速除算器500の修正が
次に記載される。
【0042】除算演算とは違って、平方根演算は1つの
オペランドまたは“ラディカンド(radicand)
”の入力、および入力ラディカンドの平方根である1つ
の結果の出力を含む。平方根演算がそれについて行なわ
れるべき入力ラディカンドはAバスまたはBバスのいず
れかを介してマルチプレクサ528に入力される。平方
根演算がAバスまたはBバスからの入力について行なわ
れるべきである除算制御装置510からの指示で、ラデ
ィカンドPはラディカンドPの2倍を生じるために10
進桁をシフトし、かつラディカンドPの2倍は加算器5
04を介して、平方根予測子530に転送され、平方根
予測子530は第1の商予測子502および商予測子5
12のように、平方根予測子530に対する入力2Pに
よって、平方根ビットQの予測が決定されるであろうよ
うな組合わせ論理回路の構成である。
【0043】次に図7を参照すると、平方根予測子53
0のグラフ図が今説明されるであろう。予測子プロット
は所与の入力値2Pj 、平方根商ビットqj の値の
対応する予測、を与える。各反復の間、平方根予測子5
30は上に記載された技術に従って、平方根のビットを
決定し、かつ予測されたビットqj をQおよびQ−1
レジスタ514a、514bへそれぞれ出力する。平方
根予測子530はさらに、次の反復における使用のため
、予測された平方根ビットをマルチプレクサ528に出
力する。繰り返し反復は、商レジスタが一連の予測され
たビットでいっぱいになり、かつ除算器500が図5に
関して前に説明されたように動作するまで行なわれる。
【0044】次に図8を参照すると、Qレジスタ114
aおよびQ−1レジスタ114bの両方に反復ごとに1
つのビットの書込みを必要とする基数2平方根計算を組
入れるために、ある変化が図2(A)に示される商レジ
スタ114に必要とされるであろう。位相ごとの反復論
理では、所与のラッチからの信号はデータを論理ブロッ
クに与えるであろうし、その論理ブロックは順に、同じ
位相で所与のラッチに結果を与える。このことは、結果
がラッチを介して、かつ論理入力を変えるであろう従来
のラッチにおいてレーススルー(race throu
gh)を引起こし、それによって予測できない結果を引
起こすであろう。レーススルーを克服するために、かつ
同期操作を与えるために、図8において示されるそれら
のようないわゆる、“パートナー”ラッチが開発されな
ければならなかった。1つの位相の間、一方のパートナ
ーはデータを受け、一方、他方のパートナーはデータを
転送するであろう。各連続する位相につき、パートナー
は桁を変換する。また、ダイナミック論理を用いるため
に、回路は一方のパートナーがフェーズ1でプリチャー
ジし、かつフェーズ2で評価し、かつ他方のパートナー
はフェーズ2でプリチャージし、かつフェーズ1で評価
する状態で二重にされなければならなかった。
【0045】この発明の上の説明から見られることがで
きるように、高速で反復除算および平方根演算を行ない
、一方除算演算を行なうのに必要な回路を最小にする算
術演算装置が提供される。プリオーバヘッド時間は第1
の反復の計算および除数の3倍の決定をオーバラップす
ることにより減少される。さらに、除数の和を生じるた
めの加算器および(除数の2倍)シフトされた除数の使
用は、大型乗算器の必要性をなくする。簡単な商予測論
理ならびに、商Qj および部分剰余Pj のすべての
起こり得る積を次の部分剰余を反復的に生じるための手
段に与えるマルチプレクサの使用のために、キャリ保存
加算器は次の部分剰余Pj+1 を生じるために用いら
れ、それによって計算Pj+1 =4Pj +QDを行
なうための乗算論理の必要性をなくし、かつPj+1 
を迅速に計算するためのキャリ保存加算器を許容し、除
算器はクロックフェーズごとにQj およびPj 計算
の1つの反復を行ない得る。ポストオーバヘッド時間は
ゼロ検出および剰余符号検出を並行に行なうことにより
減少される。最後に、付加的な加算器回路が最終商を決
定する必要性は、商および商−1をストアするためQお
よびQ−1レジスタを並列に設けることにより避けられ
、それのためもし商が1だけ離れていると決定されれば
、正確な商は並列商レジスタにストアされ、かつ決定さ
れなくてもよくなるであろう。スペース効率のよい高速
除算器において、商の反復決定の終りで部分剰余レジス
タの出力は、部分剰余がゼロおよび部分剰余の符号に等
しいかそうでないかを決定するために、3D加算器に向
けられる。そのような態様において、ゼロ検出手段およ
び剰余符号検出手段は除去され、これによってスペース
を節約する。
【0046】しかしながら、特定的に述べられたものを
除いて多くの修正および変更が、ここで説明された技術
において、この発明の内容から実質的に逸脱することな
くなされるであろうということが当業者はわかるであろ
う。したがって、ここで説明された発明の形は模範にす
ぎず、かつ発明の範囲の限定として意図されるものでは
ないということが明確に理解されるはずである。
【図面の簡単な説明】
【図1】この発明の教示に従って構成される、基数4で
引戻離し反復除算を行なうための高速除算器の第1の実
施例のブロック図である。
【図2】(A)は図1において示された商レジスタのブ
ロック図であり、(B)は図1および(A)において示
された商レジスタの付加的な詳細を示すブロック図であ
る。
【図3】図1の除算器の第1の商予測論理のグラフの表
示である。
【図4】図1の除算器の商予測論理のグラフの表示であ
る。
【図5】基数4で引離し反復除算を行なうための、高速
除算器の第2の実施例のブロック図である。
【図6】基数2で平方根計算をさらに行なうために修正
された図5の高速除算器のブロック図である。
【図7】図6の除算器の平方根予測論理のグラフの表示
である。
【図8】パーフェーズ論理を示す。
【符号の説明】
(100)  高速除算器 (102)  商予測子 (103)  シフタ (104)  加算器 (106)  部分剰余レジスタ (107)  シフタ (108)  除数レジスタ (109)  シフタ (110)  除算器制御装置 (112)  商予測子 (114a,b)  第1および第2の商レジスタ(1
16)  3X除数レジスタ (118)  除数マルチプレクサ (120)  キャリ保存加算器 (122)  ゼロ検出手段 (123)  剰余符号検出手段 (124)  指数計算手段 (126)  出力ラッチ

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】  一連の商ビットを含む結果を生じるた
    めに、第1のオペランドを第2のオペランドで除算を行
    なうための装置であって、一連の部分剰余を反復的に生
    じるための手段を含み、一連の部分剰余を反復的に生じ
    るための前記手段は、第1の部分剰余として前記第1の
    オペランドを選択し、さらに、一連の商ビットを反復的
    に予測するための手段を含み、前記商予測子は、前記第
    1のオペランドおよび前記第2のオペランドに基づいて
    第1の商ビットを、ならびに前記生じられた部分剰余お
    よび前記第2のオペランドに基づいて次の商ビットを予
    測し、さらに、前記第2のオペランドの倍数を生成する
    ための手段を含み、一連の部分剰余を反復的に生じるた
    めの前記手段は、前記生じられた部分剰余および前記第
    2のオペランドの前記倍数のうちの1つに基づいて次の
    部分剰余を決定し、一連の部分剰余を反復的に生じるた
    めの前記手段は、前記次の商予測に基づいて前記次の部
    分剰余を生じるため、前記第2のオペランドの前記生成
    された倍数のうちの1つを選択するための手段を含む、
    装置。
  2. 【請求項2】  前記第1のオペランドの一連の部分剰
    余を反復的に生じるための前記手段は、次の方程式PJ
    +1 =4PJ +qj D ここでは、PJ+1 =前記次の部分剰余、PJ   
    =前記先行部分剰余、qj Q=前記先行商予測、D 
       =前記第2のオペランド、に従って、前記次の部
    分剰余を決定する請求項1記載の装置。
  3. 【請求項3】  前記第2のオペランドの倍数を生成す
    るための前記手段は、前記第2のオペランドの±0、±
    1、±2、および±3倍生成するための手段をさらに含
    む、請求項2記載の装置。
  4. 【請求項4】  前記第1のオペランドの一連の部分剰
    余を反復的に生じるための前記手段は、前記次の部分剰
    余を生じるため、前記第2のオペランドの前記生成され
    た倍数のうちの1つを選択するための多重化手段を含み
    、前記オペランドの前記選択された倍数は、前記第2の
    オペランドと前記商予測との積に等しい、請求項3記載
    の装置。
  5. 【請求項5】  前記第2のオペランドの倍数を生成す
    るための前記手段は、前記第2のオペランドの2倍を生
    じるために、前記オペランドをシフトするための手段と
    、前記オペランドの3倍を生じるために、かつ後の使用
    のためストアされるために、前記第2のオペランドと前
    記生じられた前記第2のオペランドの2倍とを加算する
    ための加算器とをさらに含む、請求項4記載の装置。
  6. 【請求項6】  前記第1のオペランドの一連の部分剰
    余を反復的に生じるための前記手段は、複数個の和およ
    びキャリとして、前記一連の部分剰余の各々を生じる、
    請求項1記載の装置。
  7. 【請求項7】  前記結果が生じられたことを決定する
    ための手段をさらに含む、請求項6記載の装置。
  8. 【請求項8】  前記結果が生じられたことを決定する
    ための前記手段は、前記レジスタがいっぱいであること
    を示す前記商レジスタからの信号をさらに含む、請求項
    7記載の装置。
  9. 【請求項9】  前記結果が生じられたことを決定する
    ための手段と、前記部分剰余の符号を決定するための手
    段と、前記部分剰余の符号に基づいて、前記結果を調節
    するための手段とをさらに含む、請求項8記載の装置。
  10. 【請求項10】  前記第1のオペランドの一連の部分
    剰余を反復的に生じるための前記手段は、次の方程式P
    J+1 =4PJ +QD ここでは、PJ+1 =前記次の部分剰余、PJ   
    =前記先行部分剰余、Q    =前記先行商予測、D
        =前記第2のオペランドに従って、前記次の部
    分剰余を決定する請求項9記載の装置。
  11. 【請求項11】  前記第2のオペランドの倍数を生成
    するための前記手段は、前記第2のオペランドの±0、
    ±1、±2、および±3倍を生成するための手段をさら
    に含む、請求項10記載の装置。
  12. 【請求項12】  一連の部分剰余を反復的に生じるた
    めの前記手段は、前記次の部分剰余を生じるため、前記
    第2のオペランドの前記生成された倍数のうちの1つを
    選択するための多重化手段を含み、前記オペランドの前
    記選択された倍数は、前記第2のオペランドと前記商予
    測との積に等しい、請求項11記載の装置。
  13. 【請求項13】  前記第2のオペランドの倍数を生成
    するための前記手段は、前記第2のオペランドの2倍を
    生じるために、前記オペランドをシフトするための手段
    と、前記第2のオペランドの3倍を生じるために、前記
    第2のオペランドと前記生じられた前記第2のオペラン
    ドの2倍とを加算するための加算器とをさらに含む、請
    求項12記載の装置。
  14. 【請求項14】  前記第1のオペランドおよび前記第
    2のオペランドの前記一連の部分剰余のうち対応するも
    のに基づいて、一連の商ビットを反復的に予測するため
    の前記手段は、前記第1および第2のオペランドを受け
    るように接続されて、第1の商ビットを予測するための
    第1の商予測手段と、前記第1の商予測、前記除数、お
    よび一連の部分剰余を受けるように接続されて、前記一
    連の商ビットの前記剰余ビットを反復的に予測するため
    の第2の商予測手段とを含む、請求項13記載の装置。
  15. 【請求項15】  除数で被除数を除算して結果を生じ
    るための装置であって、前記被除数を受け、かつ部分剰
    余としてストアするように接続される部分剰余レジスタ
    と、前記除数を受け、かつストアするように接続される
    除数レジスタと、前記除数レジスタから前記除数を、お
    よび前記部分剰余レジスタから前記部分剰余を受けるよ
    うに接続される商予測論理とを含み、前記商予測論理は
    、前記受けられた除数および部分剰余に基づいて商ビッ
    トを決定し、さらに、前記商予測論理によって決定され
    た前記商ビットを受け、かつストアするように接続され
    る第1の商レジスタと、前記除数の倍数を生成するため
    、前記除数を受けるように接続される手段と、前記除数
    の前記倍数および前記予測された商ビットを受けるよう
    に接続されるキャリ保存加算器とを含み、前記キャリ保
    存加算器は、前記部分剰余および前記除数の前記倍数に
    基づいて、次の部分剰余を決定し、前記部分剰余レジス
    タは、前記部分剰余の代わりに前記次の部分剰余を受け
    、かつストアするように接続され、前記商予測論理は、
    次の商ビットを決定するために、前記次の部分剰余を受
    けるように接続される装置。
  16. 【請求項16】  前記キャリ保存加算器は、複数個の
    和およびキャリとして前記部分剰余を生じ、かつ前記装
    置は、前記部分剰余レジスタから前記部分剰余を受ける
    ように接続される第1の加算器をさらに含み、前記加算
    器は、前記結果が生じられたかどうかを決定するために
    、前記和およびキャリを加算する、請求項15記載の装
    置。
  17. 【請求項17】  前記部分剰余レジスタから前記部分
    剰余を受けるように接続される第2の加算器をさらに含
    み、前記第2の加算器は、前記和およびキャリの符号を
    決定する、請求項16記載の装置。
  18. 【請求項18】  前記商予測論理は、決定された商ビ
    ットごとに、商ビットマイナス1をさらに決定し、前記
    装置は、前記商予測論理により決定された前記商ビット
    マイナス1を受け、かつストアするように接続される第
    2の商レジスタをさらに含む、請求項17記載の装置。
  19. 【請求項19】  前記第1の商レジスタにおいてスト
    アされた前記商ビットが1だけ離れているかどうかを決
    定するための手段と、前記第1の商レジスタにストアさ
    れた前記商を、前記第2の商レジスタにストアされた前
    記商マイナス1と置換するための手段とをさらに含む、
    請求項18記載の装置。
  20. 【請求項20】  前記第1の商レジスタから前記商を
    受けるように接続される出力ラッチをさらに含む、請求
    項19記載の装置。
  21. 【請求項21】  前記被除数と、前記除数と、前記結
    果とは、各々が仮数部分および指数部分を含み、前記商
    は前記被除数および前記除数の仮数を除算することによ
    り生じられており、前記装置は、前記被除数および前記
    除数の指数を受けるように接続される指数計算手段をさ
    らに含み、前記指数計算手段は、前記結果指数を決定す
    るために、前記被除数指数から前記除数指数を減算し、
    前記出力ラッチは、前記指数計算手段から前記結果指数
    を受けるようにさらに接続されている、請求項20記載
    の装置。
  22. 【請求項22】  前記除数の2倍を生じるため前記除
    数を受けるように接続される第1のシフト手段と、前記
    第1のシフタおよび前記除数から前記除数の2倍を受け
    るように接続される第3の加算器と、前記第2の加算器
    から前記除数の3倍を受けかつストアするように接続さ
    れる第2の除数レジスタとをさらに含む、請求項17記
    載の装置。
  23. 【請求項23】  前記除数レジスタから前記除数をお
    よび前記第2の除数レジスタから前記除数の3倍を受け
    るように、かつ前記キャリ保存加算器に、前記除数の±
    0、±1、±2、±3倍を出力するように接続される第
    1のマルチプレクサをさらに含む、請求項22記載の装
    置。
  24. 【請求項24】  前記キャリ保存加算器は、次の方程
    式PJ+1 =4PJ +qj D ここでは、PJ+1 =前記次の部分剰余、PJ =前
    記先行部分剰余、qj =前記先行商予測、D  =前
    記第2のオペランド、に従って、次の部分剰余を決定す
    る請求項23記載の装置。
  25. 【請求項25】  前記キャリ保存加算器は、前記部分
    剰余の4倍を生じるために、前記部分剰余を2度シフト
    するための第2のシフト手段と、前記商予測に基づいて
    、前記マルチプレクサから前記入力の一つを選択するた
    めの手段とをさらに含む、請求項24記載の装置。
  26. 【請求項26】  前記キャリ保存加算器は、前記部分
    剰余の4倍を生じるために2度シフトされた前記部分剰
    余と、前記除数および前記商予測の積に等しい前記マル
    チプレクサ入力を加算することにより前記次の部分剰余
    を生じる、請求項25記載の装置。
  27. 【請求項27】  前記除数を受けるように接続される
    第1のマルチプレクサを含み、前記マルチプレクサは、
    前記除数から前記除数の2倍を生じるためのシフタ手段
    を含み、前記マルチプレクサ手段および前記除数から前
    記除数の2倍を受けるように接続される第1の加算器を
    さらに含む、請求項15記載の装置。
  28. 【請求項28】  前記第2の加算器から前記除数の3
    倍を受けかつストアするように接続される第2の除数レ
    ジスタをさらに含む、請求項27記載の装置。
  29. 【請求項29】  前記第1のマルチプレクサは、前記
    部分剰余レジスタから前記複数個の和およびキャリを受
    けるようにさらに接続され、前記マルチプレクサは、除
    数の3倍の前記決定のため、前記第1の加算器に前記除
    数を、または前記部分剰余符号および最終剰余ゼロ検出
    を決定するため前記第1の加算器に前記複数個の和およ
    びキャリを選択的に出力するように構成される、請求項
    27記載の装置。
  30. 【請求項30】  前記商レジスタから前記商を受ける
    ように接続される出力ラッチをさらに含み、前記出力ラ
    ッチは、前記部分剰余がゼロであるかないかを示す前記
    第1の加算器からの信号を受けるようにさらに接続され
    る、請求項29記載の装置。
  31. 【請求項31】  前記部分剰余の符号を決定するため
    に、前記第1の加算器から出力される前記和およびキャ
    リの前記加算のための戻り経路を前記第1の加算器へ与
    えるための手段をさらに含む、請求項30記載の装置。
  32. 【請求項32】  前記出力ラッチに前記部分剰余の前
    記決定された符号を与えるめたの手段をさらに含む、請
    求項31記載の装置。
  33. 【請求項33】  前記商予測論理は、決定された商ビ
    ットごとに、商ビットマイナス1をさらに決定し、前記
    装置は、前記商予測論理によって決定された前記商ビッ
    トマイナス1を受けかつストアするように接続される第
    2の商レジスタをさらに含む、請求項32記載の装置。
  34. 【請求項34】  前記加算器からラディカンドを受け
    るように接続される平方根予測論理を含み、前記平方根
    予測論理は、前記ラディカンドに基づいて予測された平
    方根ビットを決定し、さらに、前記第1の商レジスタお
    よび前記第1のマルチプレクサに、前記予測された平方
    根ビットを与えるための手段を含み、次の予測される平
    方根ビットを決定するため、前記平方根予測論理に、前
    記予測された平方根ビットの2倍を反復的に与える、請
    求項33記載の装置。
JP06841391A 1990-04-02 1991-04-01 除算を行なう装置 Expired - Fee Related JP3144816B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US504324 1990-04-02
US07/504,324 US5128891A (en) 1990-04-02 1990-04-02 High speed divider with square root capability

Publications (2)

Publication Number Publication Date
JPH04227535A true JPH04227535A (ja) 1992-08-17
JP3144816B2 JP3144816B2 (ja) 2001-03-12

Family

ID=24005778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06841391A Expired - Fee Related JP3144816B2 (ja) 1990-04-02 1991-04-01 除算を行なう装置

Country Status (5)

Country Link
US (1) US5128891A (ja)
EP (1) EP0450754B1 (ja)
JP (1) JP3144816B2 (ja)
AT (1) ATE179809T1 (ja)
DE (1) DE69131187T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921149B2 (en) 2004-12-15 2011-04-05 Nec Corporation Division and square root arithmetic unit
US10746568B2 (en) 2017-01-31 2020-08-18 Shimadzu Corporation Material tester
US11669304B2 (en) 2021-02-08 2023-06-06 Kioxia Corporation Arithmetic device and arithmetic circuit for performing multiplication and division

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329176A (en) * 1991-04-12 1994-07-12 Hewlett-Packard Company Self-timed clocking system and method for self-timed dynamic logic circuits
US5278782A (en) * 1991-06-03 1994-01-11 Matsushita Electric Industrial Co., Ltd. Square root operation device
FR2690772A1 (fr) * 1992-04-29 1993-11-05 Philips Electronique Lab Processeur neuronal muni de moyens pour calculer une norme ou une distance.
US5237525A (en) * 1992-06-01 1993-08-17 Motorola, Inc. In a data processor an SRT divider having a negative divisor sticky detection circuit
US5239498A (en) * 1992-08-31 1993-08-24 Intel Corporation Methods and apparatus for improved quotient correction in nonrestoring division computation circuits
US5386376A (en) * 1992-08-31 1995-01-31 Intel Corporation Method and apparatus for overriding quotient prediction in floating point divider information processing systems
US5301139A (en) * 1992-08-31 1994-04-05 Intel Corporation Shifter circuit for multiple precision division
US5258944A (en) * 1992-09-01 1993-11-02 Cray Research, Inc. High performance mantissa divider
US5357455A (en) * 1992-10-09 1994-10-18 Intel Corporation Floating point remainder generator for a math processor
DE69429061T2 (de) * 1993-10-29 2002-07-18 Advanced Micro Devices Inc Superskalarmikroprozessoren
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
US5386375A (en) * 1993-11-01 1995-01-31 Motorola, Inc. Floating point data processor and a method for performing a floating point square root operation within the data processor
US5632023A (en) * 1994-06-01 1997-05-20 Advanced Micro Devices, Inc. Superscalar microprocessor including flag operand renaming and forwarding apparatus
EP0685794A1 (en) * 1994-06-01 1995-12-06 Advanced Micro Devices, Inc. System for generating floating point test vectors
US5696955A (en) * 1994-06-01 1997-12-09 Advanced Micro Devices, Inc. Floating point stack and exchange instruction
DE69529047D1 (de) * 1994-10-05 2003-01-16 Ibm Festkomma-Dividiervorrichtung ohne Rückstellung
FR2728702A1 (fr) * 1994-12-22 1996-06-28 France Telecom Composant electronique capable notamment d'effectuer une division de deux nombres en base 4
US5696712A (en) * 1995-07-05 1997-12-09 Sun Microsystems, Inc. Three overlapped stages of radix-2 square root/division with speculative execution
US5748516A (en) * 1995-09-26 1998-05-05 Advanced Micro Devices, Inc. Floating point processing unit with forced arithmetic results
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
US5761105A (en) * 1995-09-26 1998-06-02 Advanced Micro Devices, Inc. Reservation station including addressable constant store for a floating point processing unit
US5784307A (en) * 1996-05-31 1998-07-21 Intel Corporation Division algorithm for floating point or integer numbers
US5818745A (en) * 1996-05-31 1998-10-06 Intel Corporation Computer for performing non-restoring division
JP3660075B2 (ja) * 1996-10-04 2005-06-15 株式会社ルネサステクノロジ 除算装置
US6109777A (en) * 1997-04-16 2000-08-29 Compaq Computer Corporation Division with limited carry-propagation in quotient accumulation
US6820107B1 (en) 1997-05-08 2004-11-16 Renesas Technology Corporation Square root extraction circuit and floating-point square root extraction device
JPH10307709A (ja) * 1997-05-08 1998-11-17 Mitsubishi Electric Corp 開平回路及び浮動小数点開平装置
US5910910A (en) * 1997-06-23 1999-06-08 Sun Microsystems, Inc. Circuit and method for rapid calculation of quotients and square roots
US6108723A (en) * 1998-07-20 2000-08-22 Hewlett-Packard Company System for implementing hardware automated control of burst mode data transfer over a communication link between devices operating in a block mode
US6732135B1 (en) * 1999-02-01 2004-05-04 Hewlett-Packard Development Company, L.P. Method and apparatus for accumulating partial quotients in a digital processor
US6360241B1 (en) 1999-02-01 2002-03-19 Compaq Information Technologies Goup, L.P. Computer method and apparatus for division and square root operations using signed digit
US6751645B1 (en) * 1999-02-17 2004-06-15 Elbrus International Limited Methods and apparatus for performing pipelined SRT division
US7031996B2 (en) * 2000-11-02 2006-04-18 Seagate Technology Llc Calculating square root of binary numbers with fixed-point microprocessor
KR100407562B1 (ko) 2001-11-21 2003-11-28 삼성전자주식회사 제산 및 제곱근 계산 장치 및 방법
US9983850B2 (en) 2015-07-13 2018-05-29 Samsung Electronics Co., Ltd. Shared hardware integer/floating point divider and square root logic unit and associated methods
US10209959B2 (en) 2016-11-03 2019-02-19 Samsung Electronics Co., Ltd. High radix 16 square root estimate

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
JPS58132837A (ja) * 1982-02-03 1983-08-08 Hitachi Ltd 10進除算装置
US4688186A (en) * 1982-10-04 1987-08-18 Honeywell Bull Inc. Division by a constant by iterative table lookup
CA1231455A (en) * 1984-04-09 1988-01-12 Masayuki Ikeda Nonrestoring divider
US4683547A (en) * 1984-10-25 1987-07-28 International Business Machines Corporation Special accumulate instruction for multiple floating point arithmetic units which use a putaway bus to enhance performance
US4724529A (en) * 1985-02-14 1988-02-09 Prime Computer, Inc. Method and apparatus for numerical division
US4939686A (en) * 1987-05-18 1990-07-03 Weitek Corporation Method and apparatus for shared radix 4 division and radix 4 square root
US4878190A (en) * 1988-01-29 1989-10-31 Texas Instruments Incorporated Floating point/integer processor with divide and square root functions
US4979142A (en) * 1989-04-17 1990-12-18 International Business Machines Corporation Two-bit floating point divide circuit with single carry-save adder

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921149B2 (en) 2004-12-15 2011-04-05 Nec Corporation Division and square root arithmetic unit
US10746568B2 (en) 2017-01-31 2020-08-18 Shimadzu Corporation Material tester
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
JP3144816B2 (ja) 2001-03-12
DE69131187D1 (de) 1999-06-10
EP0450754A2 (en) 1991-10-09
ATE179809T1 (de) 1999-05-15
EP0450754A3 (en) 1993-01-07
US5128891A (en) 1992-07-07
EP0450754B1 (en) 1999-05-06
DE69131187T2 (de) 2000-01-05

Similar Documents

Publication Publication Date Title
JP3144816B2 (ja) 除算を行なう装置
JP3689183B2 (ja) 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算
US6847985B1 (en) Floating point divide and square root processor
Pineiro et al. Algorithm and architecture for logarithm, exponential, and powering computation
US6360241B1 (en) Computer method and apparatus for division and square root operations using signed digit
US5272660A (en) Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor
US5184318A (en) Rectangular array signed digit multiplier
JPH03208170A (ja) 数学関数の近似を計算する数値システム及び計算法
US5798955A (en) High-speed division and square root calculation unit
JPH0969040A (ja) 推測的演算を有する3つのオーバーラップしたステージにより基数2の平方根演算/除算を行う回路
JP3418460B2 (ja) 倍精度除算回路および方法
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5144576A (en) Signed digit multiplier
Bruguera Radix-64 floating-point divider
US5910910A (en) Circuit and method for rapid calculation of quotients and square roots
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US5867413A (en) Fast method of floating-point multiplication and accumulation
US6598065B1 (en) Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal
EP0543024B1 (en) Divider
CN109298848A (zh) 双模式浮点除法平方根的电路
Baesler et al. FPGA implementation of a decimal floating-point accurate scalar product unit with a parallel fixed-point multiplier
Gonzalez-Navarro et al. A study of decimal left shifters for binary numbers
JP3517162B2 (ja) 除算・開平演算装置
Shapran et al. DIVISION USING THE BASE RADIX16 NUMBER SYSTEM TO FORM FRACTION DIGITS

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001205

LAPS Cancellation because of no payment of annual fees