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

除算を行なう装置

Info

Publication number
JP3144816B2
JP3144816B2 JP06841391A JP6841391A JP3144816B2 JP 3144816 B2 JP3144816 B2 JP 3144816B2 JP 06841391 A JP06841391 A JP 06841391A JP 6841391 A JP6841391 A JP 6841391A JP 3144816 B2 JP3144816 B2 JP 3144816B2
Authority
JP
Japan
Prior art keywords
quotient
divisor
operand
partial remainder
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP06841391A
Other languages
English (en)
Other versions
JPH04227535A (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.)
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)
  • Vending Machines For Individual Products (AREA)
  • Pulleys (AREA)
  • Superconductors And Manufacturing Methods Therefor (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【関連の出願への相互参照】
【0002】
【産業上の利用分野】この出願は次の米国特許出願に関
するものである。
【0003】 連続番号 名称 発明者 (06940/0002) パイプライン化された浮動小数点処理装置 パールマン (Pipelined Floating Point Processing (Perlman )、 Unit) 他 (06940/0003) 正規化パイプライン化された浮動小数点 グプタ 処理装置 (Gupta )、他 (Normalizing Pipelined Floating Point Processing Unit ) (06940/0004) 多重アキュムレータを有する演算装置 タムラ (Arithmetic Unit Having Multiple (Tamura)、他 Accumulators) (06940/0005) 多重演算のブール条件を収集するための装 ミックミン 置および方法 (McMinn)、他 (Apparatus and Method For Collecting Boolean Conditions of Multiple Operations ) (06940/0007) 高速繰返し除算のための特殊キャリ保存加 シャー 算器 (Shah)、他 (A Special Carry Save Adder For High Speed Iterative Division) (06940/0009) 高速混合基数加算器 リンチ (High Speed Mixed Radix Adder) (Lynch )、他 (06940/0014) 平方根オプションを有する高速除算器 リンチ (High Speed Divider With Square Root (Lynch )、他 Option) (06940/0010) 基数4キャリ先見ツリーおよびこれについて リンチ の冗長セル (Lynch )、他 先に載せられた出願は、これとともに同じ日付に出願さ
れ、この発明の譲受人に譲渡され、かつすべてが再現さ
れるかのようにここで参照することにより援用される。
【0004】
【発明の背景】
【0005】
【発明の分野】この発明はコンピュータシステムのため
の浮動少数点プロセッサに関するものであり、かつより
詳述すれば、基数4で引離し反復除算を行なう高速除算
器に関するものである。この発明はさらに、基数4で引
離し反復除算、および基数2で平方根計算を行なう高速
除算器に関するものである。
【0006】
【関連技術の説明】多くのコンピュータプログラムは、
多数の浮動小数点算術演算を必要とする。したがって、
そのようなプログラムが行なわれるコンピュータによっ
て実行された多くの命令は、浮動小数点命令である。そ
のようなプログラムについては、サイクルごとに実行さ
れ得る浮動小数点算術命令の数が大きければ大きいほ
ど、機械演算の速度は速い。したがって、浮動小数点処
理時間の速度を上げるために多くの努力がなされた。た
とえば、デグルート(DeGroot )の米国特許4,68
3,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】別の引離し型の除算器はイルクラ(Irukul
la)、他の米国特許番号4,724,529に開示され
る。イルクラ(Irukulla)、他の除算器は、関係、 PJ+1 =ベータ)Pj −qj D’ (3) に従って部分剰余を計算する加算器/減算器を含むが、
イルクラ(Irukulla)、他は、しかしながら、qj Dを
生ずるために費用およびスペースのかかる乗算回路を用
いる。最後に、“WTL3170/3171スパーク浮
動小数点コープロセッサの開発(Developing the WTL 3
170/3171 Sparc Floating-Point Coprocessors)”と称
されたバーマン(Birman)、ほかの記事、(1990
年、2月)IEEE Micro、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】
【発明の詳細な説明】初めに図1を参照すると、基数4
で引離し反復除算を行なうための高速除算器100は、
今詳細に説明されるであろう。ここで開示される除算器
は、浮動小数点プロセッサ装置のコンポーネントとして
用いられるということが熟考され、たとえばパーマン
(Perlman )、他の“パイプライン化された浮動小数点
処理装置(Pipelined Floating Point Processing Uni
t)”と称される同時係属中の米国特許出願連続番号
(Atty. Docket No. 06940/0002 )、グプタ(G
upta )、他の“パイプライン浮動小数点処理装置の正
規化(Normalizing PipelineFloating Point Processin
g Unit )”と称される連続番号 ((Atty. D
ocket No. 06940/0003 )、およびソーベル(Sobel
)、他の“多重アキュムレータを有する算術装置(Ari
thmetic UnitHaving Multiple Accumulators)”と称さ
れる連続番号 (Atty. Docket No. 06940/000
4 )において開示される浮動小数点プロセッサ装置の任
意のものであり、すべてこれとともに同日付で出願さ
れ、かつ前もって参照することによって援用される。上
で参照された出願において詳細に記載されたように、浮
動小数点プロセッサは出力オペランドについて算術演算
を行なうための加算器と、乗算器と、除算器とのような
複数個の浮動小数点算術演算装置を含む。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のビットq
1 は、決定される。第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.
00, 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 値および対応する符号ビットを商レジスタ1
14に送る。さらに、第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の商予測子11
2から送られる符号に基づいて、qデコードブロック1
14dは、現在示されている商ビットレジスタ内の位置
に書込まれるべきビット値を生成する。
【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は商予測子
112に入力される部分剰余および除数に依存して、Q
が次の数、(−3)、(−2)、(−1)、(−0)、
(+0)、(+1)、(+2)、(+3)のうちのどれ
かを決定するであろう。それはものである。再び、選択
の後、符号付商ビットQj は次の有効桁商ビットレジス
タにおける記憶のため、商レジスタ114a、114b
に転送される。
【0030】また選択の後、符号および商ビットは商予
測子112からsj、qj ラインを介してキャリ保存加
算器120へそれぞれ転送される。部分剰余レジスタ1
06は被除数または“第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 Special Carry Sa
ve 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の反復の計算と重なり、加算器104
は除数の3倍(3D)を生じるために、除数(D)と除
数の2倍(2D)を加算する。値3Dはそれから、記憶
のため3X除数レジスタ116に出力される。3X除数
レジスタ116は、それから部分剰余計算の連続する反
復における可能な使用のため、キャリ保存加算器120
に出力されるべき除数の倍数+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番目のキャリビットの
NORが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)”ビットを付加するであろ
う。ゼロ決定とほぼ同時に、剰余符号検出手段123
は、部分剰余レジスタ106により出力される和および
キャリの加算の符号をチェックする。もし和およびキャ
リの加算の符号が負であれば、剰余符号検出手段123
は、商がはるかに大きいことを、かつそれがQ−1レジ
スタ114bを用いるべきであるということを示して、
出力ラッチ126に信号を出力する。出力ラッチ126
はそれから、商レジスタ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、ゼロ検出手段1
22および剰余検出手段123が除去されたという点
で、高速除算器100とは異なる。この実施例におい
て、しかしながら、ゼロ検出手段122によって前もっ
て行なわれる符号およびゼロ検出動作は、今加算器30
4によって行なわれており、加算器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に示される高速除算器によく似た構成および動
作である。除算および平方根を行なうための除算器50
0は、第1の商予測子502と、加算器504と、部分
剰余レジスタ506と、シフタ507と、除数レジスタ
508と、シフタ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倍は加算器504を
介して、平方根予測子530に転送され、平方根予測子
530は第1の商予測子502および商予測子512の
ように、平方根予測子530に対する入力2Pによっ
て、平方根ビットQの予測が決定されるであろうような
組合わせ論理回路の構成である。
【0043】次に図7を参照すると、平方根予測子53
0のグラフ図が今説明されるであろう。予測子プロット
は所与の入力値2Pj 、平方根商ビットqj の値の対応
する予測、を与える。各反復の間、平方根予測子530
は上に記載された技術に従って、平方根のビットを決定
し、かつ予測されたビットqj をQおよびQ−1レジス
タ514a、514bへそれぞれ出力する。平方根予測
子530はさらに、次の反復における使用のため、予測
された平方根ビットをマルチプレクサ528に出力す
る。繰り返し反復は、商レジスタが一連の予測されたビ
ットでいっぱいになり、かつ除算器500が図5に関し
て前に説明されたように動作するまで行なわれる。
【0044】次に図8を参照すると、Qレジスタ114
aおよびQ−1レジスタ114bの両方に反復ごとに1
つのビットの書込みを必要とする基数2平方根計算を組
入れるために、ある変化が図2(A)に示される商レジ
スタ114に必要とされるであろう。位相ごとの反復論
理では、所与のラッチからの信号はデータを論理ブロッ
クに与えるであろうし、その論理ブロックは順に、同じ
位相で所与のラッチに結果を与える。このことは、結果
がラッチを介して、かつ論理入力を変えるであろう従来
のラッチにおいてレーススルー(race through)を引起
こし、それによって予測できない結果を引起こすであろ
う。レーススルーを克服するために、かつ同期操作を与
えるために、図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の商レジスタ (116) 3X除数レジスタ (118) 除数マルチプレクサ (120) キャリ保存加算器 (122) ゼロ検出手段 (123) 剰余符号検出手段 (124) 指数計算手段 (126) 出力ラッチ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トーマス・ダブリュ・リンチ アメリカ合衆国、78722 テキサス州、 オースティン、イースト・サーティセカ ンド・ストリート、1717 (72)発明者 ケン・チェン アメリカ合衆国、95014 カリフォルニ ア州、クパーティン、ナンシー・コー ト、20655 (72)発明者 トニー・ハーソン アメリカ合衆国、78745 テキサス州、 オースティン、ナバホ・パス、4505 (72)発明者 スティーブン・ディー・マキンタイア アメリカ合衆国、78748 テキサス州、 オースティン、ウッドシェアー・ドライ ブ、9810 (72)発明者 サリム・エイ・シャー アメリカ合衆国、テキサス州、オーステ ィン、サン・シメオン・ドライブ、4701 (56)参考文献 特開 昭59−220840(JP,A) 特開 平2−64730(JP,A) 特開 平2−112023(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/52 320

Claims (33)

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

Families Citing this family (39)

* 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
US5386376A (en) * 1992-08-31 1995-01-31 Intel Corporation Method and apparatus for overriding quotient prediction in floating point divider information processing systems
US5239498A (en) * 1992-08-31 1993-08-24 Intel Corporation Methods and apparatus for improved quotient correction in nonrestoring division computation circuits
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
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
EP0651321B1 (en) * 1993-10-29 2001-11-14 Advanced Micro Devices, Inc. Superscalar microprocessors
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
EP0706117B1 (en) * 1994-10-05 2002-12-04 International Business Machines Corporation Non-restoring fixed-point divider apparatus
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 삼성전자주식회사 제산 및 제곱근 계산 장치 및 방법
JP4273071B2 (ja) 2004-12-15 2009-06-03 エヌイーシーコンピュータテクノ株式会社 除算・開平演算器
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
JP6780522B2 (ja) 2017-01-31 2020-11-04 株式会社島津製作所 材料試験機
JP2022121055A (ja) 2021-02-08 2022-08-19 キオクシア株式会社 演算装置及び演算回路

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

Also Published As

Publication number Publication date
US5128891A (en) 1992-07-07
EP0450754A2 (en) 1991-10-09
DE69131187T2 (de) 2000-01-05
DE69131187D1 (de) 1999-06-10
EP0450754A3 (en) 1993-01-07
JPH04227535A (ja) 1992-08-17
ATE179809T1 (de) 1999-05-15
EP0450754B1 (en) 1999-05-06

Similar Documents

Publication Publication Date Title
JP3144816B2 (ja) 除算を行なう装置
EP0394499B1 (en) Apparatus for multiplication, division and extraction of square root
JP3689183B2 (ja) 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算
US6360241B1 (en) Computer method and apparatus for division and square root operations using signed digit
USRE39385E1 (en) Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier
US6847985B1 (en) Floating point divide and square root processor
Pineiro et al. Algorithm and architecture for logarithm, exponential, and powering computation
US5184318A (en) Rectangular array signed digit multiplier
JPH0635675A (ja) データプロセッサにおいて除算を行うための方法および装置
JPH0969040A (ja) 推測的演算を有する3つのオーバーラップしたステージにより基数2の平方根演算/除算を行う回路
EP0464493A2 (en) High-radix divider
EP0717350A2 (en) High-speed division and square root calculation unit
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH07168697A (ja) 倍精度除算回路および方法
US5144576A (en) Signed digit multiplier
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
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
US20230086090A1 (en) Methods and Apparatus for Quotient Digit Recoding in a High-Performance Arithmetic Unit
EP0543024B1 (en) Divider
US20030135531A1 (en) Microprocessor floating point divider
US6109777A (en) Division with limited carry-propagation in quotient accumulation
Shapran et al. DIVISION USING THE BASE RADIX16 NUMBER SYSTEM TO FORM FRACTION DIGITS
Takagi et al. Digit-recurrence algorithm for computing Euclidean norm of a 3-D vector

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