JPH04270415A - 高性能加算器 - Google Patents

高性能加算器

Info

Publication number
JPH04270415A
JPH04270415A JP3000564A JP56491A JPH04270415A JP H04270415 A JPH04270415 A JP H04270415A JP 3000564 A JP3000564 A JP 3000564A JP 56491 A JP56491 A JP 56491A JP H04270415 A JPH04270415 A JP H04270415A
Authority
JP
Japan
Prior art keywords
carry
bit
adder
predictive
output
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.)
Pending
Application number
JP3000564A
Other languages
English (en)
Inventor
John H Zurawski
ジョン エイチ ズロースキー
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH04270415A publication Critical patent/JPH04270415A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/508Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using carry look-ahead circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデジタルコンピュータに
おける加算及び減算の分野に関する。更に言えば、本発
明はデジタルコンピュータ内の数を加算、あるいは減算
するために、キャリー予知を使用するような高性能加算
器に関する。
【0002】
【従来の技術】デジタルコンピュータの設計において、
設計者は、そのコンピュータの動作のスピード(つまり
サイクルタイム)を決定するであろう。サイクルタイム
のこの決定は一般的に、そのコンピュータで用いられる
加算器のスピードに基づいている。したがって、より高
速の(つまりサイクルタイムがより低いこと)コンピュ
ータとするには、より早い加算器を提供することが必要
である。
【0003】例えば32ビット加算器のような普通の加
算器の設計では、キャリー・ルック・アヘッドロジック
を有するより小さな多くの加算器に分割されている。最
下位の加算器は、例えば8つの最下位ビットで加算を実
行し、第2最下位加算器は次の8つの最下位ビットで加
算を実行するといったようなものである。キャリー・ル
ック・アヘッドロジックは下位加算器から次に上位の加
算器へとキャリーを発生するのに使用される。
【0004】例えば、2つの数の、8つの最下位ビット
<7:0>の加算からのキャリーは、キャリー・ルック
・アヘッドロジックによって発生され、次に上位の加算
器に与えられる。前記次に上位の加算器はその後、キャ
リー・ルック・アヘッドロジックからのキャリーを加算
し、ビット<15:8>で加算を実行する。32ビット
加算器のような比較的大きな加算器が使用された場合に
は、キャリー・ルック・アヘッド方法に関連した問題が
存在する。1つの問題は「臨界タイミングパス」がキャ
リー・ルック・アヘッドを通じているので、キャリーが
最下位ビットでどれくらい早く発生され、且つそのキャ
リーがキャリー・ルック・アヘッドロジックを通じてキ
ャリーが存在し得る最上位ビットへと伝播されるかいう
ことにより、その加算器は限定されるのである。例えば
、32ビット加算器を形成するために4つの8ビット加
算器が使用された場合、第1の下位ビットで発生された
キャリーは24番目のビットへ伝播され得る。この24
番目のビットからのキャリーは、ビット<31:24>
で動作するであろうより上位の8ビット加算器へ与えら
れるであろう。 24ビットを通じてのキャリーの伝播には、比較的長い
時間がかかり、かつ比較的扱いにくい設計が要求される
【0005】キャリー・ルック・アヘッドロジックで使
用されるロジックは、プロパゲイト及びジェネレイトロ
ジックとして知られている。32ビット加算器の例にお
いて、24番目のビットのためのキャリーは、このジェ
ネレト及びプロパゲイトロジックを用いることによって
、7つの項で決定されるであろ。(これについては更に
以下に詳細に述べる)。キャリービットを決定するため
に7つの項を使用するので、比較的大きなゲート(つま
り7つの入力を有するゲート)が必要となる。比較的大
きなゲートは、より小さなゲートよりも遅く、また製造
技術さえないかもしれない。更に、標準のキャリー・ル
ック・アヘッドロジックの使用に伴う電信遅延は比較的
長い。なぜなら、そのロジックはその加算器の幅を完全
に補わなくてはならないからである。
【0006】そこで、一般に使用されているようなキャ
リー・ルック・アヘッドを使用せずに、改善されたスピ
ードを持つ、高性能加算器が必要となる。
【0007】
【課題を解決するための手段】本発明は、付随する問題
を有する標準のキャリー・ルック・アヘッドロジック回
路を使用しない、高性能加算器を与えるものである。本
発明はこれを、下位加算と上位加算器との間に予知キャ
リー・ルック・アヘッドを設けることにより行う。予知
キャリー・ルック・アヘッドは、下位加算器内のビット
のある数、例えば8を「見直す」であろう。これらのビ
ットから、予知キャリー・ルック・アヘッドは、次の上
位加算器に予知キャリー・ルック・アヘッドを与えるで
あろう。そうしてその上位加算器は加算及び減算を実行
することが出来る。高性能加算器が4つの8ビット(バ
イト)加算器から成る場合、各バイト加算器の間に1つ
、3つの予知キャリー・ルック・アヘッドが準備される
。この装置により、ビット<31:24>で動作してい
る最も上位のバイト加算器は、予知キャリーを用いてそ
の最も上位のビットで動作することが出来、下位ビット
で発生するキャリーの結果を待つ必要はない。
【0008】予知キャリー・ルック・アヘッドは、下位
ビットのある数だけが上位加算器のキャリーに重要な影
響を与える確立がある、という事実を利用する。例えば
、予知キャリー・ルック・アヘッドが、ビット<31:
24>のための加算器中へのキャリーを予知するため、
ビット<23:16>を使用している場合、ビット<1
5:0>の影響はとても小さなものであろう。事実、ビ
ット<31:24>のための加算器中に下位ビット<1
5:0>によって引き起こされるキャリービットの予知
ミスは、その回数のたったの約0.6%であろう。言い
換えれば、そのキャリーは、ビット<23:16>を使
用することにより、その回数の約99.4%が正確に予
知され得るであろう。
【0009】これらの場合にキャリーが予知ミスである
時、その総計の訂正は、本発明によって容易に実行され
る。使用される訂正方法は、予知を形成するために使用
された切断によるものであろう。訂正の1つの方法は、
適当なビット位置に予知ミスキャリーを逆にした2進数
を加算するというものである。例えば、ビット<24>
中へのキャリーの予知ミスがある場合、その後、各ビッ
ト位置に0を有しそしてビット位置24には1を有する
2進数が、予知ミスキャリーで発生された総計に加算さ
れるであろう。これは正しい総計を作るであろう。
【0010】また、予知ミスを、正確な予知キャリービ
ットを有している時以外は、単なる加算の再実行によっ
て矯正することが出来る。高性能加算器を、本発明によ
るディバイダの素子として使用することが出来る。この
ディバイダは、下位の加算器からの真のキャリーと予知
キャリーとが一致しない時に常に発生する記憶段階を有
するような、非記憶ディバイダとして動作する。言いえ
れば、この除数は、非記憶アルゴリズムの一般のルール
にしたがい、部分的な残りを用いて、繰り返し減算ある
いは加算されるというものである。予知キャリーが真の
キャリーと一致している限り、各サイクルで発生された
この部分的な残りは正しいであろう。しかし、予知キャ
リーが真のキャリーと一致しなかった時は、発生された
この部分的な残りは正しくないであろう。この時点で、
この割り算段階は、予知キャリーが訂正されるそして代
わりにそれが使用されるということを除いては、前と同
じように正確に繰り返される。この再生段階は、部分的
な残りが正確であることを確実にするであろう。
【0011】
【実施例】図1は、本発明の実施例に従って構成された
高性能加算器を示している。この加算器は32ビット加
算器として示されており、この加算器は4つの8ビット
(これ以降は「バイト」と呼ぶ)加算器11、13、1
5、及び17を備える。図1には系統立てて示されては
いないが、各々のバイト加算器11、13、15、及び
17は、2つの4ビット(これ以降は「ニブル」加算器
と呼ぶ)を有することが出来る。
【0012】図1の32ビット加算器は、2つの32ビ
ット数、a<31:0>及びb<31:0>を加算(あ
るいは減算)する。バイト加算器11〜17の各々は、
2つの加数a<31:0>及びb<31:0>の、1つ
のバイト(8ビット)を加算するであろう。言い換えれ
ば、最下位のバイト加算器11は、それら2つの加数の
2つの最下位バイトである、バイトa<7:0>及びb
<7:0>を加算するであろう。更に、選択ロジック5
3は、加算の代わりに減算が希望された場合に入力にな
るべきであるNOT b を選択するであろう。(2進
計算において、a−b=a+NOT b +1)。
【0013】図示した実施例において、バイト加算器1
1、13、15へのa及びb入力は、予知キャリー・ル
ック・アヘッド(PCLA)35、37、39にそれぞ
れ別個に与えられている。しかしがらそれらのバイト加
算器は、それらと共にジェネレイト帯びプロパゲイトロ
ジックをも有することが出来、それらのロジックはPC
LA35、37、39と共有されている。これらの入力
から、各PCLA35、37、39は予知キャリーを次
の上位バイト加算器に与えるのである。 例えば入力a<15:8>及びb<15:8>は、PC
LA37に与えられる。PCLAに存在するロジックを
使用することにより、ビット16のための予知キャリー
(PC)が引き起こされる。この予知キャリーPC16
は、バイト加算器15のキャリー入力に与えられる。こ
のバイト加算器15は、バイトa<23:16>及びb
<23:16>の加算において、予知キャリーPC16
を使用する。
【0014】予知キャリーはまた、各々のPCLA35
、37、39から、3つの比較装置41、43、45の
1つに送られる。 これらの比較装置41、43、45は、その予知キャリ
ーを、アクチュアル即ちキャリー・ルック・アヘッドロ
ジック(CLA)49 によって発生された真のキャリ
ーと比較する。 CLA49 は、従来におけるCLAである。それゆえ
CLA49の結果、つまり真のキャリーTC8 、TC
16、及びTC24は、対応する予知キャリーPC8 
、PC16、PC24と同じくらい早くは利用可能でな
い。レジスタ51のレベルにより、予知キャリーを用い
て、真のキャリーと1サイクル遅れて遂行されている予
知キャリーとの比較で、a<31:0>とb<31:0
>との加算を行うことが出来る。このようにパイプライ
ン効果が形成され、そうして予知キャリーを使用するこ
とによる第2の加算が、第1の加算のための予知キャリ
ーがチェックされるのと同時に遂行される。
【0015】比較装置43は、a<15:8>とb<1
5:8 >との加算において、PCLA37によって発
生されたPC16を、CLA49 によって発生された
真のキャリー(TC16)と比較する。比較の結果、こ
れらが一致した場合、比較装置43は何もしない。なぜ
ならバイト加算器15によって使用された予知キャリー
PC16が正しいからである。しかしながら、比較の結
果、バイト加算器15によって使用された予知キャリー
が正しくない場合、比較装置43は信号を訂正ロジック
47に送信するであろう。
【0016】訂正ロジック47が、比較装置41、43
、45の1つから、mis予知を示す信号を受信した場
合、逆にされているmis予知キャリービットを用いて
その加算は容易に再実行される。言い換えれば、もしP
C16が、1を有するべきである時に0であるmis予
知であったならば、予知キャリーPC16としての1で
、その加算は容易にやり直されるということである。こ
れは、項を無視するので、本発明の実施例においてその
予知が、真の値と同じかあるいはそれよりも低いからで
ある。これは、PCLA35、37、39のロジックに
おいて容易に遂行される。また、mis予知がある場合
、その総計は、1を適当なビット位置内の総計に容易に
加算するという簡単なことで訂正され得る。これら2つ
の方法により、aとbとの総計は訂正されるであろう。 以上述べたように、予知を形成するための切断は、他の
訂正方法を使用する可能性をもたらすであろう。
【0017】個々のバイト加算器の最後の8ビットを見
直す予知キャリー・ルック・アヘッドを与えることによ
り、本発明は従来のキャリー・ルック・アヘッド上でか
なりのスピード向上を与えてくれる。これは、従来のキ
ャリー・ルック・アヘッドだけを使用する加算器が、よ
り上位にあるキャリー・ルック・アヘッドの遂行の前に
、より下位のキャリー・ルック・アヘッドの結果を待た
なくてはならなかったという理由による。それゆえ、臨
界タイミングパスは、キャリールック・アヘッドを通じ
る。更に、キャリー・ルック・アヘッドは、比較的大量
のエッチを使用することによって実行され、そして7つ
あるいはそれ以上の入力を有する大きなゲートがキャリ
ー・ルック・アヘッドロジックを実行するために必要と
なる。これらの大きなゲートはより小さなゲートよりも
遅いものである。
【0018】本発明はバイト加算器を使用する32ビッ
ト加算器に限られるものではない。例えば、図9を参照
すれば、32ビット加算器が、2つの16ビット加算器
を用いることによって実行されている。この実施例にお
いてPCLA81は、予知キャリーPC16を上位の加
算器85に与えるために、下位の加算器83の全ての1
6ビットを見るわけではなく、より下位の加算器の8ビ
ットを見るだけでよい。16ビット加算器のこれらの8
ビットを見ることにより、より上位の加算器85への下
位の加算器83のキャリーをとても正確に予知すること
が出来る。
【0019】この実施例及び、バイト加算器を有する前
記実施例とを総合すれば、より上位の及びより下位のn
ビット加算器によって作用される、2つのmビット数に
おける加算の実行が明らかになる。下位の加算器におけ
るnビットのたったqビットだけが、より上位の加算器
のための予知に使用される。2つの16ビット加算器を
使用する実施例において、mは32であり、nは16で
あり、qは8である。4つのバイト加算器を使用するバ
イト加算器においては、mは32であり、nは8であり
、qは8である。正確な予知の所望の頻度を与えるため
に必要となるものと同じ数だけのビットを見直すだけで
よいのである。更に、mビット数は、同じビット長の下
位、あるいは上位加算器に分割される必要はない。例え
ば32ビット数を有するものにおいて、より上位の加算
器がkビットで動作している時に、より下位の加算器が
jビットであってもよい。ここでjは19、kは13で
ある。
【0020】本発明の他の実施例が図2に示されている
。図2では、従来のキャリールックアヘッドロジック(
CLA)49が完全に取り除かれている。この実施例に
おいて予知キャリーは、単一の加算器によって発生され
たキャリーと比較される。例えば、PCLA39によっ
て作られたPC24は、ビットa<23:16>及びb
<23:16>との加算と、バイト加算器15中のPC
16とによって作られたC24と比較されるであろう。 バイト加算器15からのキャリーC24は、全てのビッ
ト<23:0>のための真のキャリーではない。そうで
は無く、これはバイト加算器15で加算されたビットだ
けの、つまりこの例で言えばビット<23:16>、キ
ャリーなのである。
【0021】キャリーC8 、C16及びC24はその
特別のバイト加算器へ送信されたその8ビットだけに基
づくものなので、そのキャリーは正しいものではない。 それ故、PCとCとの比較も正しくない。しかしながら
、PCあるいはCにおけるエラーはどのようなものであ
っても、「リップル」方法で正しくされるであろう。こ
のリップル訂正の例として以下のものがある。
【0022】例えば、C8 =1、PC8 =0と仮定
する。これは、ビット<7:0>のバイト加算器11の
加算がキャリーをつくったことを意味する。PC8 は
C8 と等しくないので、比較ミスが存在することにな
り、比較装置41は再生/訂正ロジック55へ信号を送
信するであろう。再生/訂正ロジック55により、訂正
ベクトル(CV)における加算が、不正確な総計に加算
され、そしてこの訂正サイクルの間、PC8 上の比較
・ミスが無視されるであろう。この訂正ベクトルは、適
当な位置に1を有し、その他は全て0というものである
。例えば、もしC8 が1になるべきであった場合、ビ
ット<8>セットを有するCVが、不正確な総計に加算
されるであろう。
【0023】CVが不正確な総計に加わえられた後は、
第2のバイト加算器13が最下位8ビットの加算からの
正確な結果(つまりキャリービットの正確な値)を有し
ているため、C16及びPC16にも比較ミスが存在す
るであろう。不正確な総計へ第1のCVの加算をするこ
とにより、C16の正確な値が作られるであろう。C1
6のこの値は、PC16と比較される。再び比較ミスが
存在している場合、第2のCVが、その不正確な総計に
加算される。 この時、CVはビット数16に1がセットされているも
のである。再びこの訂正サイクルの間は、PC16の比
較ミスは無視されるであろう。
【0024】もし不正確な総計への第2のCVの加算の
後に、C24とPC24とで比較ミスが存在した場合に
は、同一の手続きが行われる。このようにしてもし第3
の比較ミスが存在した場合には、その不正確な総計に第
3のCVが加算される。こうして最後に正しい結果が作
られる。上の手続きは、普通の計算においてはめったに
起こらない3つの比較ミスが存在した場合の悪例である
。それゆえ、3つの比較ミスのペナルティーは無視でき
るほどのものである。更にまた、列に2つの比較ミスを
有するような例も稀である。
【0025】本発明のPCLA35、37及び39は予
知キャリーを作るため、プロパゲイト「P」及びジェネ
レイト「G」ロジックとして知られるものを用いる。プ
ロパゲイトとジェネレイトロジックはよく知られたもの
である。「プロパゲイト」という言葉は、ビット位置<
3>のようなあるビット位置の2つのビットが、次の下
位ビット、この例で言えばビット位置<2>、からのキ
ャリーを伝播するかしないかということを示している。 「ジェネレイト」という言葉は単に、ビット位置3のよ
うなあるビット位置のビットが、それら2つの数が加算
された時にキャリーを発生するかどうかを示しているも
のである。
【0026】2つのビットs及びtのための、ジェネレ
イト及びプロパゲイトの真理値表が、図4に示されてい
る。この真理値表から明かなように、ジュネレイトはビ
ットs及びtの両方が真の時にだけ、真(つまりキャリ
ーが発生される)である。真理値表はまた、ビットsあ
るいはtのいづれかが1である時にのみ、キャリーが発
生される(つまり1に等しいということ)であろうこと
を示している。この真理値表から、ジェネレイト機能は
AND関数であり、一方、プロパゲイト機能はOR関数
であるということがわかるであろう。
【0027】これらのビットは結合されたG及びPを与
えるためにグループ化され得る。これが図4に示されて
いる。図4では2つのニブルの2つの組が示されている
。2つのニブルの各組は共に加算されるべき2つの数の
うちの1つのバイト(8ビット)である。ニブルの加算
は、ニブルのためのキャリービットの予知とは別個に実
行される。第1のニブルa0 及びb0 は、信号G0
 及びP0 を作るために共にグループ化されている。 a1 及びb1 で作られた第2のニブルは信号G1 
及びP1 を作るためのものである。
【0028】単一のニブルのための、G0 の方程式は
G0 =g3+g2・p3+g1・p3・p2+g0・
p3・p2・p1である。 P0 の方程式はP0 =p0・p1・g2・p3であ
る。(「+」という表現はOR関数を表し、一方「・」
という表現はAND関数を示すとにきをつけてもらいた
い)これらの方程式は全てのニブルで有効である。単一
のニブルのために、G0 =1の時あるいはP0 =1
の場合にのみキャリーは発生され、ニブル中にキャリー
が存在する。
【0029】G及びPロジックは、図4を用いそして以
下の説明を読むことによって、理解出来る。キャリーは
、上で与えられた公式でG0 =1の時に、第1のニブ
ル、ビット<3:0>から作られる。これは、5つの状
態のうちの1つが真である場合に起こるであろう。第1
の状態は、位置3のビットの両方に1が存在した場合に
、つまりg3=1の場合に起こるであろう。このように
、ビット位置3の1の加算からのキャリーの「発生」が
存在し、そうしてニブル<3:0>はキャリーを作る。 この状態においてはg3=1、G0 =1そして、キャ
リー=1である。キャリーはまた、g2=1及びp3=
1である第2の状態で作り出されることも可能である。 共通の言葉いえば、ビット位置2のビットの加算がキャ
リーを発生したことを意味する。このキャリーはその後
、次のビット位置、いまの例で言えばビット位置3、に
より「伝播」されなくてはならない。もしビット位置3
の両方のビットが0である場合、その後、ビット位置2
からのキャリーは、ニブルの外に伝播されず、この時、
g2  p3=0となり、ニブルからキャリーを作らな
いであろう。
【0030】おなじ理屈が残りの項、g1・p3・p2
及びg0・p3・p2・p1に適用される。キャリーは
、下位ビットがキャリーを発生した場合に項によって作
られ、その後、全ての上位ビットによって伝播される。 いづれかの上位ビットの1つが2つの0を含んでいる場
合、そのキャリーがその後、ニブルの外に伝播されるこ
とはないであろう。
【0031】P項−−プロパゲイト項−−は、ニブルの
全てのビット位置は、下位の加算器からニブルへと入力
されたキャリーを伝播するかどうか、ということに関す
るものである。また、これらのビット位置はいづれも2
つの0を含むことが出来ない。即ち、下位加算器からの
キャリーはニブルの外に伝播されないであろう。P及び
Gロジックは結合可能であり、ビットの大きな列からの
キャリーを、その大きな列からのP及びGを結合させる
ことによって、決定することが出来る。この例を以下に
示す。
【0032】下位バイト(ビット<7:0>)のため、
キャリー即ち「キャリー.ルック・アヘッド」は、CL
A8=G1 +P1 ・G0 +P1 ・P0 ・Ci
nという公式から決定される。図3の真理値表及び図4
に示された例を用いれば、G0=1及びP1 =1なの
で、キャリーが第1のニブルから作られることが分かる
。このキャリーは下位ビットで発生され、上位ビットを
通じて伝播される。
【0033】ビット16のための完全に正確なキャリー
を保証するため、従来のキャリー・ルック・アヘッドで
は、先の16ビット(2バイト)を見直さなければなら
ない。従来のキャリー・ルック・アヘッドは、8つの最
下位ビットで作られたなんらかのキャリーを生じてしま
った。それ故、キャリー・ルック・アヘッドは方程式、
CLA16 =G3 +P3 ・G2 +P3 ・P2
 ・G1 +P3 ・P2 ・P1 ・G0 +P3 
・P2 ・P1 ・P0 ・Cinによって決定されて
いた。
【0034】最後に、ビット24のためのキャリー・ル
ック・アヘッドは従来技術では、方程式CLA24 =
G5 +P5 ・G4 +P5 ・P4 ・G3 +P
5・P4 ・P3 ・G2 +P5 ・P4 ・P3 
・P2 ・G1 +P5 ・P4 ・P3 ・P2 ・
P1 ・G0 +P5 ・P4 ・P3 ・P2 ・P
1 ・P0 ・Cinによって決定されていた。
【0035】図2は、加算器11、13、15への入力
が結合されているPCLA35、37、39を、図示し
ている。各PCLA35、37、39は、2 つのニブ
ルのためにP及びGロジックを作るロジック61の第1
レベルを含んでいる。ロジック63の第2レベルは  
ロジック61の第1レベルによって与えられたP及びG
信号の2つの組を結合する。CLA24 のための方程
式を見れば、ビット24のために完全に正確な「真のキ
ャリー」を与えるためには7つの項が必要である、とい
うことが分かる。しかしながら本発明では、CLA24
 のための方程式のほんのわずかな項を使用してビット
24のためのキャリーを予知することによって、とても
正確なものとすることが出来る。他の言葉で言えば、こ
の方程式を、その最も重要な項に省略してしまうという
ことである。こうして、予知キャリー(PC24)は、
PC24=G5 +P5 ・G4 によって表される。 したがって、予知キャリー、PC24は、項、P5 ・
P4 ・G3 +P5 ・P4 ・P3 ・G2 +・
・・・を失っていることになる。
【0036】いづれかのPが1である見込みは1/24
 (つまり、P0 =p3・p2・p1・p0で、全て
のp が同じである可能性は1/16)である。Gが1
である見込みは1/2である。この解析によれば、項P
5 ・P4 ・P3 は29 回に1度、1に等しくな
るであろう。方程式の次の項P5 ・P4 ・P3 ・
G2 が1を作る見込みは、たったの1/217である
ので、重要でないと考えるのである。 CLA24 の方程式の残りの項も同様である。したが
って、CLA24 (つまりPC24)の推量は、29
回に1度=ほぼ0.2%、誤りを侵すということになる
。もし、同一のロジックがCLA16 及び CLA8
 に用いられた場合には、32ビットの総計があやまり
であるのは、回数のほぼ0.6%である。他の方法に適
用するため、本発明の予知キャリー方法を使用すること
により、その総計は、その回数のほぼ99.4%正しい
ものとなる。
【0037】図6に示したPCLAの例は、予知キャリ
ーPC24を計算するPCLA39において使用される
ロジックを示している。ロジックの第1のレベルは、ニ
ブルa4 、b4 のためのP4及びG4、ニブルa5
 、b5 のためのP5 及びG5 を作る。第2のレ
ベル63は、関数G5 +P5 ・G4 を与えるため
のANDゲート及びORゲートを含む。この関数は、C
LA24 の概数である。CLA24 の概数はPC2
4に等しく、この予知キャリーは次の上位バイト加算器
17に与えられる。同様のロジックが他のPCLA35
、37において用いられる。
【0038】訂正ロジック47に結合された「正しい」
ライン64は、ロジックレベル62の最後のORゲート
に結合される、ということに注意してもらいたい。予知
ミスがあった時、このライン上の信号は1になるはずの
PC24を強いるものである(なぜなら、予知が項を放
棄するので、予知が0を予知ししかもそれは1が持つべ
きであった場合にのみ、誤りが起こり得るからである)
。このように、訂正ロジック47比較装置から信号を受
けた場合に、加算が再度実行されそしてその予知キャリ
ーが1にセットされるであろう場合には、それは訂正ラ
イン64上に信号を送信する。総計を訂正するために他
の数が加算されるような、他の実施例においては、訂正
ライン64は必要とされない。
【0039】図8は本発明の実施例を示しており、この
実施例は減算の早い手段を与える。図8の実施例は、平
行に並んだ2つのPCLAを備えており、図6に示され
たPCLAの実施例と同様のものである。図8の左側の
PCLAは、図6と同一の物であり、一方図8の右側の
PCLAは、NOT bでb入力に置き換える。ADD
信号が図8の左側のPCLAをイネイブルするために与
えられ、減算信号が図8の右側のPCLAをイネイブル
するために与えられる。したがって、図8の右のPCL
Aからの信号は、減算のための予知キャリーを作り出し
、一方、左のPCLAのための信号は、加算のための予
知キャリーを作り出すであろう。
【0040】図8の実施例は、いかなるロジックの層を
も加算するものではないが、加算及び減算が平行に実行
されるよう、ロジックを横に拡張し、そうして従来のキ
ャリールックアヘッドロジックを高速にするという利点
を与えてくれるものである。従来のCLA を有してい
る場合、減算能力を与えるためには、ロジックゲートの
3つの付加的なレベルが必要とされる。それらの3つの
付加的なレベルは、本発明のPCLAを用いる加算器よ
りも速度の遅い、従来のキャリールックアヘッドだけを
用いた加算器を作る。
【0041】PCLA内の加算路及び減算路の両方を与
えるため、ロジックを反復することは、例えばPC24
のようなPCを計算するのに使用される、比較的少数の
項によって可能となる。図8の例では、たった4つの項
が予知キャリーPC24を与えるために使用されている
。それに引換え従来のCLA を有するものでは、真の
キャリーTC24は、8つあるいはそれ以上の項を必要
とし、それ故TC24を作る最後のORゲートへの8つ
の入力も必要とされるであろう。したがって、本発明の
ような平行加算及び減算路を与えるロジックの反復は、
従来のCLA ではうまくいかなかったのである。
【0042】キャリー技術を用いる本発明の加算器は、
高速のディバイダを実行するといったことに有用である
。そのようなデバイダーが図7に示されている。説明を
簡単にするため、キャリー予知のために8ビットルック
・バックを有する、たった2つの16ビット加算器71
、73が示されている。実施例は、たった2つの16ビ
ット加算器を有するものであるが、図7のディバイダは
また、図1に示された加算器の実施例を使用することに
よっても実行され得る。特別のディバイダについて説明
する前に、一般のコンピュータの2進分割について述べ
る。
【0043】一般に割り算は、割り算された部分的な結
果から、シフトされた除数を減算していくという、一連
の試行である。これは図10に示されており、2つの可
能なオプション(除数を減算するもの、あるいはなにも
しないといもの)を示す2つの列が存在し、次の部分結
果は、減算の結果に基づいて選択される。もしその結果
が負である場合には、その部分結果PRが記憶され、そ
の除数は1ビットシフトされ、そしてまた減算が実行さ
れる。減算の結果が正である場合は常に、商レジスタ中
の適当なビット位置へビットがシフトされる。
【0044】図10に示された割り算の方法は、記憶割
り算として知られている。この型の割り算は、除数を反
復して減算していくというものである。初めに割り算さ
れたものから減算、そしてその後、その最初の部分結果
からの減算、というように、減算を連続して行うもので
ある。減算の結果が負になった場合には、その元の部分
結果(PR)が記憶されて、その除数がシフトダウンさ
れ、他の減算が行われる。
【0045】非記憶割り算ではないものでは、その結果
が負である時であっても動作が続けられる。しかしなが
ら、その結果が再び正になるまでは、その動作は減算で
はなく加算である(そしてその後、減算が再び実行され
、ていくという具合である)。これを以下の関係で示す
ことが出来る。 −1=−8+4+2+1 非記憶方法においては、8(除数)が減算され、そして
PRが再び正になるまで、4、2、1を加算するという
プロセスが続く。PRが0になった時に、非記憶割り算
は終了される。このプロセスを以下に示す。
【0046】   図7はキャリー比較のため、パイプライン段階を有
しているような本発明の加算器を使用している、除数の
実施例である。このように除数の加算/減算は、1サイ
クルで実行され、次のサイクルでチェックがなされる。 なせなら、チェックが遅いために、その部分結果(PR
)が付加サイクルのための保持PR(SPR)レジスタ
75内に保持され、そうして比較ミスが検出された時に
は既に適当なPRが保持されているからである。
【0047】図7に示した除数は非記憶方法を用いるが
、その記憶方法も同じく使用可能である。割り算を実行
するため、除数は除数レジスタ77にロードされ、一方
、割り算されたものはPRレジスタ79にロードされる
。初めのサイクルは減算である。その減算の結果はシフ
トされ、PRレジスタ79中に配置される。キャリー予
知加算器が比較ミスをおこした場合、この元のPR(加
算/減算動作によって手を加えられていない値)がSP
R75に保持される。
【0048】減算のサインは、次のサイクルで加算を実
行すべきかあるいは減算を実行すべきかということを決
定する。もしその結果が負である場合には加算がその後
行われ、またそうでない場合には減算が行われる。その
結果であるサインから商ビットが決定され、それは商レ
ジスタ85の最下位ビット位置へとシフトされる。その
後に続くサイクルでは、サインによって決定された通り
に加算/減算が実行され、そうしてその前のサイクルの
キャリー(PC及びTC)がチェックされる。比較した
時は全てがうまくいっているということになり、その割
り算が続けられる。もしPCあるいはTCが比較ミスを
起こした時は、1サイクル早く発生された結果は誤りで
あるということになる。その後、SPR75からPRを
フェッチしそしてそれをPRレジスタ79内に「記憶」
し直すことによって、加算/減算が誤りとなる前の時点
まで、その割り算を戻さなければならない。また、商ビ
ットが誤りであるかもしれない場合(つまり誤った加算
/減算によって発生されたサインが誤りかもしれない場
合)には、その商ビットも放棄される。それは加算/減
算が再実行された時に再発生される。
【0049】誤った加算/減算動作が再び実行されるが
、この時はそのキャリーを逆にするようPCLA81に
命令がなされる。そのサインは付加サイクルのため、S
Sレジスタ83に保持されているということに注意して
もらいたい。このSSレジスタは、そのディバイダが誤
った加算/減算を再生するために戻された場合に、それ
が加算あるいは減算のどちらをすべきであったのかとい
うことを知っている。
【0050】性能に関しては次のようである。キャリー
・予知加算器は1回の割り算繰り返しにつき、1/29
 で誤りとなるであろう。32ビット割り算において普
通の割り算は、32/29 の記憶回復、あるいはサイ
クルの付加的な1/16を必要とする。それは無視して
よい程のものと考えられる。即ち、32ビット割り算の
ために32サイクルかかる代わりに、32と1/16サ
イクルかかるであろうということである。しかしながら
、そのサイクル自体はそれより短いものであるので、そ
の割り算はより早いものとなる。
【0051】本発明のディバイダは常に真の余りを発生
し、またこのディバイダを実行するために必要とされる
ゲートの数によるコストはそれ程高いものではない。
【図面の簡単な説明】
【図1】  本発明の実施例にしたがって構成された高
性能加算器のブロック図。
【図2】  本発明の代替例にしたがって構成された高
性能加算器のブロック図。
【図3】  図1の高性能加算器の部分を示しており、
図1の高性能加算器で使用された予知キュリー・ルック
・アヘッドのブロック図を伴う。
【図4】  ジェネレイト及びプロパゲイトロジックの
ための真理値表である。
【図5】  2つの8ビット数の例及び、ジェネレイト
及びプロパゲイトロジックのために、それらの8ビット
をニブルにグループ化しているものを示す。
【図6】  図2の予知キャリー・ルック・アヘッドを
実行するために使用され得るロジックゲートの例を示し
ている。
【図7】  予知キャリー・ルック・アヘッドを有した
高性能加算器を用いる本発明の実施例に従う高性能ディ
バイダを示す。
【図8】  平行な減算路を有した予知キャリー・ルッ
ク・アヘッドを実行するために使用され得る、ロジック
ゲートの例を示す。
【図9】  本発明の高性能加算器の代替例の加算器装
置を示す。
【図10】  2進の割り算の流れの例を示す。
【符号の説明】
51  レジスタ 35  PCLA 37  PCLA 39  PCLA 61  ロジック 63  ロジック

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】  mピット総計を形成するために、mビ
    ット数を加算あるいは減算するための高性能mビット加
    算器において、この高性能mビット加算器は、2つのm
    ビット数のn個の下位ビットを受けるためのn個の入力
    を有し、下位nビット総計及びキャリービットを作るよ
    うな下位nビット加算器と、2つのmビット数のp個の
    上位ビットを受けるためのp個の入力及び予知キャリー
    を受けるためのキャリー入力を有し、上位pビット総計
    を作るために、p個の上位ビット及び予知キャリーを加
    算するような上位pビット加算器と、下位nビット加算
    器のn個の入力のうちのq個に結合されたq個の入力と
    、上位pビット加算器のキャリー入力に結合された出力
    とを有するような予知キャリー・ルック・アヘッド(P
    CLA) とを有し、前記予知キャリー・ルック・アヘ
    ッドは、n下位ビットの加算することによって作られた
    キャリービットの予知であって、PCLA内でn個の下
    位ビットのたったqビットの関数として予知されたもの
    である予知キャリーをその出力において与えることを特
    徴とする高性能mビット加算器。
  2. 【請求項2】  請求項1記載の加算器において更に、
    2つの入力及び1つの出力を有する比較装置を備え、前
    記入力の1つは、キャリービットを受けるために下位n
    ビット加算器に結合されており、前記入力の他方は、予
    知キャリーを受けるためにPCLAの出力に結合されて
    おり、前記比較装置は予知キャリーをキャリービットと
    比較し、予知キャリーがそのキャリービットと等しくな
    ければ比較装置出力において予知ミス信号を与える加算
    器。
  3. 【請求項3】  請求項2記載の加算器において更に、
    予知ミス信号を受けるために比較装置出力に結合された
    入力を有する、訂正ロジックを備え、前記訂正ロジック
    は、訂正ロジックが訂正ミス信号を受けた時にそのmビ
    ット総計を訂正するための手段を含む加算器。
  4. 【請求項4】  請求項3の加算器において、mが32
    、nが16、pが16、そしてqが8であるような加算
    器。
  5. 【請求項5】  32ビット総計を形成するために、3
    2ビット数を加算あるいは減算するための高性能32ビ
    ット加算器において、この高性能32ビット加算器は、
    32ビット数の8つの最下位ビットを受けるために、キ
    ャリー入力及び8つの入力を有し、32ビット総計の8
    つの最下位ビット及び第1の加算器キャリービットを作
    る第1のバイト加算器と、32ビット数の8つの第2の
    最下位ビットを受けるために、キャリー入力及び8つの
    入力を有し、32ビット総計の8つの第2の最下位ビッ
    ト及び第2の加算器キャリービットを作る第2のバイト
    加算器と、32ビット数の8つの第3の最下位ビットを
    受けるために、キャリー入力及び8つの入力を有し、3
    2ビット総計の8つの第3の最下位ビット及び第3の加
    算器キャリービットを作る第3のバイト加算器と、32
    ビット数の8つの最上位ビットを受けるために、キャリ
    ー入力及び8つの入力を有し、32ビット総計の8つの
    最上位ビット及び第4の加算器キャリービットを作る第
    4のバイト加算器と、第1のバイト加算器の8つの入力
    、及び第2のバイト加算器のキャリー入力に結合された
    出力を有し、第1の加算器キャリービットの予知である
    第1の予知キャリーをその出力において与える第1の予
    知キャリー・ルック・アヘッド(PCLA) と、第2
    のバイト加算器の8つの入力、及び第3のバイト加算器
    のキャリー入力に結合された出力を有し、第2の加算器
    キャリービットの予知である第2の予知キャリーをその
    出力において与える第2のPCLAと、第3のバイト加
    算器の8つの入力、及び第4のバイト加算器のキャリー
    入力に結合された出力を有し、第3の加算器キャリービ
    ットの予知である第3の予知キャリーをその出力におい
    て与える第3のPCLAとを備え、前記第1のPCLA
    において、前記第1の予知キャリーは、たった8つの最
    下位ビットの関数として第1のPCLAで予知され、前
    記第2のPCLAにおいて、前記第2の予知キャリーは
    、たった8つの第2の最下位ビットの関数として第2の
    PCLAで予知され、そして、前記第3のPCLAにお
    いて、前記第3の予知キャリーは、たった8つの第3の
    最下位ビットの関数として第3のPCLAで予知される
    ことを特徴とする高性能32ビット加算器。
  6. 【請求項6】  請求項5記載の加算器において更に、
    2つの入力と1つの出力を有し、1つの入力は第1の加
    算器キャリービットを受けるために第1のバイト加算器
    に結合され、そしてもう一方の入力は第1の予知キャリ
    ーを受けるために第1のPCLAの出力に結合されてお
    り、第1の予知キャリーを第1の加算器キャリービット
    と比較し、第1の予知キャリーが第1の加算器キャリー
    ビットに等しくない時は第1の予知ミス信号を第1の比
    較装置の出力において与えるような、第1の比較器と、
    2つの入力と1つの出力を有し、1つの入力は第2の加
    算器キャリービットを受けるために第2のバイト加算器
    に結合され、そしてもう一方の入力は第2の予知キャリ
    ーを受けるために第2のPCLAの出力に結合されてお
    り、第2の予知キャリーを第2の加算器キャリービット
    と比較し、第2の予知キャリーが第2の加算器キャリー
    ビットに等しくない時は第2の予知ミス信号を第2の比
    較装置の出力において与えるような、第2の比較器と、
    2つの入力と1つの出力を有し、1つの入力は第3の加
    算器キャリービットを受けるために第3のバイト加算器
    に結合され、そしてもう一方の入力は第3の予知キャリ
    ーを受けるために第3のPCLAの出力に結合されてお
    り、第3の予知キャリーを第3の加算器キャリービット
    と比較し、第3の予知キャリーが第3の加算器キャリー
    ビットに等しくない時は第3の予知ミス信号を第3の比
    較装置の出力において与えるような、第3の比較器を備
    える加算器。
  7. 【請求項7】  請求項6記載の加算器において更に、
    第1、第2及び第3予知ミス信号を受けるために第1、
    第2及び第3比較装置に結合された入力を有する、再生
    /訂正ロジックを備え、前記訂正ロジックは、訂正ロジ
    ックが第1、第2及び第3予知ミス信号のうちの1つを
    受けた時に、32ビット総計を訂正する手段を含む加算
    器。
  8. 【請求項8】  2つのmビット数を加算あるいは減算
    するための、mビット加算器の動作方法において、個々
    のmビット数を下位nビット部分と上位pビット部分に
    分割し、下位nビット部分の加算のために、下位部分の
    たったq個のビットの関数として作られる予知キャリー
    を作り、下位nビット総計を作るために下位nビット部
    分を総合し、上位総計を作るためにmビット数の上位p
    ビット部分を総合しそして予知キャリーを加算し、キャ
    リールックアヘッド(CLA)内の下位nビットの加算
    のために真のキャリーを算出し、予知キャリーを真のキ
    ャリーと比較し、予知キャリーが真のキャリーと等しく
    ない場合には予知ミス信号を発生し、下位及び上位総計
    を、mビット総計へ結合し、予知ミス信号が発生された
    場合にはそのmビット総計を訂正することを備える方法
  9. 【請求項9】  請求項8記載の方法において、mビッ
    ト総計の訂正段階は、mビット総計のリプル訂正を実行
    することを含む方法。
  10. 【請求項10】  請求項9記載の方法において、リプ
    ル訂正を実行する段階は、訂正ベクトルをmビット総計
    に加算することを含む方法。
  11. 【請求項11】  mビット総計を形成するためにmビ
    ット数を加算あるいは減算するための、高性能mビット
    加算器において、2つのmビット数のn個の下位ビット
    を受けるためのn個の入力を有し、下位nビット総計を
    作る下位nビット加算器と、2つのmビット数のp個の
    上位ビットを受けるためのp個の入力と、予知キャリー
    を受けるためのキャリー入力を有し、上位pビット総計
    を作るためにp個の上位ビットと予知キャリーを加算す
    る上位pビット加算器と、2つのmビット数のrビット
    を受けそして真のキャリービットを作る下位nビット加
    算器及び上位pビット加算器へ結合された、キャリール
    ックアヘッド(CLA)と、下位nビット加算器のn個
    の入力のうちのq個に結合されたq個の入力と、上位p
    ビット加算器のキャリー入力に結合された出力とを有す
    る予知キャリールックアヘッド(PCLA)を備え、前
    記予知キャリールックアヘッドにおいて前記PCLAは
    、CLA によって作られた真のキャリービットの予知
    である予知キャリーをその出力において与え、前記予知
    キャリーは、n個の下位ビットのたったqビットの関数
    としてPCLA内で予知されることを特徴とする加算器
  12. 【請求項12】  請求項11記載の加算器において更
    に、2つの入力と出力を有する比較装置を備え、1つの
    前記入力は真のキャリービットを受けるためにCLA 
    に結合されており、もう一方の前記入力は予知キャリー
    を受けるためにPCLAの出力に結合されており、前記
    比較装置は、予知キャリーを真のキャリービットと比較
    し、予知キャリーが真のキャリービットと等しくない時
    は予知ミス信号をその比較装置の出力において与える加
    算器。
  13. 【請求項13】  請求項12記載の加算器において更
    に、予知ミス信号を受けるために比較装置出力に結合さ
    れた入力を有し、訂正ロジックが予知ミス信号を受けた
    時はmビット総計を訂正するための手段を含む訂正ロジ
    ックを備える方法。
  14. 【請求項14】  請求項13記載の加算器において、
    mが32、nが16、pが16そしてqが8である加算
    器。
  15. 【請求項15】  32ビット総計を形成するために3
    2ビット数を加算あるいは減算するための、高性能32
    ビット加算器において、32ビット数の8つの最下位ビ
    ットを受けるためにキャリー入力及び8つの入力を有し
    、32ビット総計の8つの最下位ビットを作る第1のバ
    イト加算器と、32ビット数の8つの第2の最下位ビッ
    トを受けるためにキャリー入力及び8つの入力を有し、
    32ビット総計の8つの第2の最下位ビットを作る第2
    のバイト加算器と、32ビット数の8つの第3の最下位
    ビットを受けるためにキャリー入力及び8つの入力を有
    し、32ビット総計の8つの第3の最下位ビットを作る
    第3のバイト加算器と、32ビット数の8つの最上位ビ
    ットを受けるためにキャリー入力及び8つの入力を有し
    、32ビット総計の8つの最上位ビットを作る第4のバ
    イト加算器と、バイト加算器に結合され、32ビット数
    の24最下位ビットを受け、そして8つの最下位ビット
    のための第1の真のキャリー、8つの第2の最下位ビッ
    トのための第2の真のキャリー及び、8つの第3の最下
    位ビットのための第3の真のキャリーを作るキャリール
    ックアヘッド(CLA)と、第1のバイト加算器の8つ
    の入力、及び第2のバイト加算器のキャリー入力に結合
    された出力を有し、第1の加算器キャリービットの予知
    である第1の予知キャリーをその出力において与える第
    1の予知キャリー・ルック・アヘッド(PCLA) と
    、第2のバイト加算器の8つの入力、及び第3のバイト
    加算器のキャリー入力に結合された出力を有し、第2の
    加算器キャリービットの予知である第2の予知キャリー
    をその出力において与える第2のPCLAと、第3のバ
    イト加算器の8つの入力、及び第4のバイト加算器のキ
    ャリー入力に結合された出力を有し、第3の加算器キャ
    リービットの予知である第3の予知キャリーをその出力
    において与える第3のPCLAとを備え、前記第1のP
    CLAにおいて、前記第1の予知キャリーは、たった8
    つの最下位ビットの関数として第1のPCLAで予知さ
    れ、前記第2のPCLAにおいて、前記第2の予知キャ
    リーは、たった8つの第2の最下位ビットの関数として
    第2のPCLAで予知され、そして、前記第3のPCL
    Aにおいて、前記第3の予知キャリーは、たった8つの
    第3の最下位ビットの関数として第3のPCLAで予知
    されることを特徴とする高性能32ビット加算器。
  16. 【請求項16】  請求項15記載の加算器において更
    に、2つの入力と1つの出力を有し、1つの入力は第1
    の真のキャリービットを受けるためにCLA に結合さ
    れ、もう一方の入力は第1の予知キャリーを受けるため
    に第1のPCLAの出力に結合されており、第1の予知
    キャリーを第1の真のキャリービットと比較し、第1の
    予知キャリーが第1の真のキャリービットに等しくない
    時は第1の予知ミス信号を第1の比較装置の出力におい
    て与えるような、第1の比較器と、2つの入力と1つの
    出力を有し、1つの入力は第2の真のキャリービットを
    受けるためにCLA に結合され、もう一方の入力は第
    2の予知キャリーを受けるために第2のPCLAの出力
    に結合されており、第2の予知キャリーを第2の真のキ
    ャリービットと比較し、第2の予知キャリーが第2の真
    のキャリービットに等しくない時は第2の予知ミス信号
    を第2の比較装置の出力において与えるような、第2の
    比較器と、2つの入力と1つの出力を有し、1つの入力
    は第3の真のキャリービットを受けるためにCLA に
    結合され、そしてもう一方の入力は第3の予知キャリー
    を受けるために第3のPCLAの出力に結合されており
    、第3の予知キャリーを第3の真のキャリービットと比
    較し、第3の予知キャリーが第3の真のキャリービット
    に等しくない時は第3の予知ミス信号を第3の比較装置
    の出力において与えるような、第3の比較器を備える加
    算器。
  17. 【請求項17】  請求項16記載の加算器において更
    に、第1、第2及び第3予知ミスを受けるために第1、
    第2及び第3比較装置に結合された入力を有し、訂正ロ
    ジックが第1、第2あるいは第3予知ミス信号を受けた
    時に、32ビット総計を訂正するための手段を含むよう
    な訂正ロジックを備える加算器。
  18. 【請求項18】  請求項15記載の加算器において、
    各PCLAは平行ロジック路を含み、一方の路は加算の
    ための予知キャリーを与え、もう一方の路は減算のため
    の予知キャリーを与える加算器。
  19. 【請求項19】  2つのmビット数を加算あるいは減
    算するための、mビット加算器の動作方法において、そ
    れらのmビット数を下位部分と上位部分に分割し、下位
    部分のたったqビットの関数として作られる下位部分の
    ために予知キャリーを作り、下位総計を作るために下位
    部分を加算し、上位総計を作るために上位部分及び予知
    キャリーを加算し、2つのmビット数の下位部分の加算
    のためキャリールックアヘッドロジック内に真のキャリ
    ーを作り、予知キャリーを真のキャリーと比較し、予知
    キャリーが真のキャリーと等しくない場合には予知ミス
    信号を発生し、下位及び上位総計をmビット総計へ結合
    し、予知ミス信号が発生された場合にはそのmビット総
    計を訂正することを備える方法。
  20. 【請求項20】  mビット数を割り算するための高性
    能ディバイダにおいて、mビット除数を記憶する除数レ
    ジスタと、割り算の部分結果を記憶する部分結果レジス
    タと、下位nビット加算器と、上位pビット加算器と、
    予知キャリールックアヘッド(PCLA)と、比較装置
    と、再生ロジックとを備え、前記下位nビット加算器は
    、除数レジスタ及び部分結果レジスタに結合され、除数
    のn個の下位ビット及び部分結果を受けるための入力を
    有し、前記下位nビット加算器は、真のキャリービット
    及び新たな部分結果のn個の下位ビットを作るような下
    位nビット加算器であり、前記上位pビット加算器は、
    除数レジスタ及び部分結果レジスタに結合されており、
    部分結果及び除数のp個の上位ビットを受けるための入
    力を有し、前記上位pビット加算器は新たな部分結果の
    p個の上位ビットを作り、前記下位nビット加算器及び
    前記上位pビット加算器による加算あるいは減算の後に
    、新たな部分結果の前記下位及び上位ビットが部分結果
    レジスタに記憶された部分結果と置き代わるような、上
    位pビット加算器であり、前記予知キャリールックアヘ
    ッド(PCLA)は、下位nビット加算器の入力のq個
    に結合された入力及び上位pビット加算器のキャリー入
    力に結合された出力とを有し、真のキャリービットの予
    知であってn個の下位ビットのたったqビットの関数と
    してPCLA内で予知されているような予知キャリーを
    その出力において与えるような予知キャリールックアヘ
    ッドであり、前記比較装置は、予知キャリー及び真のキ
    ャリービットを受けるためにPCLA及び下位nビット
    加算器に結合されており、予知キャリー及び真のキャリ
    ービットが一致しない場合は比較ミス信号を作る比較装
    置であり、前記再生ロジックは、予知キャリーを訂正し
    、比較ミス信号が前記比較装置によって作られた場合に
    は、訂正予知キャリーを用いて加算あるいは減算サイク
    ルの再生を引き起こす再生ロジックであることを特徴と
    する高性能ディバイダ。
JP3000564A 1990-01-09 1991-01-08 高性能加算器 Pending JPH04270415A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US462731 1990-01-09
US07/462,731 US5097436A (en) 1990-01-09 1990-01-09 High performance adder using carry predictions

Publications (1)

Publication Number Publication Date
JPH04270415A true JPH04270415A (ja) 1992-09-25

Family

ID=23837561

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3000564A Pending JPH04270415A (ja) 1990-01-09 1991-01-08 高性能加算器

Country Status (6)

Country Link
US (1) US5097436A (ja)
EP (1) EP0436905B1 (ja)
JP (1) JPH04270415A (ja)
KR (1) KR940004326B1 (ja)
CA (1) CA2032435C (ja)
DE (1) DE69030169T2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0564137B1 (en) * 1992-03-31 2001-06-20 STMicroelectronics, Inc. Parallelized borrow look ahead subtractor
US5450560A (en) * 1992-12-21 1995-09-12 Motorola, Inc. Pointer for use with a buffer and method of operation
US5581497A (en) * 1994-10-17 1996-12-03 Intel Corporation Carry skip adder with enhanced grouping scheme
US5619442A (en) * 1995-04-07 1997-04-08 National Semiconductor Corporation Alternating polarity carry look ahead adder circuit
KR100197354B1 (ko) * 1995-06-28 1999-06-15 김영환 클럭 위상을 이용한 캐리증가 가산기
US5826074A (en) * 1996-11-22 1998-10-20 S3 Incorporated Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
US6549927B1 (en) * 1999-11-08 2003-04-15 International Business Machines Corporation Circuit and method for summing multiple binary vectors
US6877069B2 (en) * 2002-03-28 2005-04-05 International Business Machines Corporation History-based carry predictor for data cache address generation
US6941421B2 (en) * 2002-10-29 2005-09-06 International Business Machines Corporation Zero delay data cache effective address generation
JP2009301210A (ja) * 2008-06-11 2009-12-24 Tokyo Denki Univ N桁減算器ユニット、n桁減算器モジュール、n桁加算器ユニット及びn桁加算器モジュール
CN107766031B (zh) * 2017-11-14 2020-06-19 京东方科技集团股份有限公司 分段式除法器、分段式除法运算方法、以及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01311321A (ja) * 1988-06-10 1989-12-15 Nec Corp 加算器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2879001A (en) * 1956-09-10 1959-03-24 Weinberger Arnold High-speed binary adder having simultaneous carry generation
US3023961A (en) * 1957-05-23 1962-03-06 Thompson Ramo Wooldridge Inc Apparatus for performing high speed division
GB1145676A (en) * 1966-09-28 1969-03-19 Nippon Electric Co High speed adder circuit
DE2007353C3 (de) * 1970-02-18 1973-11-29 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Vierteiliges Addierwerk
US3987291A (en) * 1975-05-01 1976-10-19 International Business Machines Corporation Parallel digital arithmetic device having a variable number of independent arithmetic zones of variable width and location
US4084254A (en) * 1977-04-28 1978-04-11 International Business Machines Corporation Divider using carry save adder with nonperforming lookahead
US4380051A (en) * 1980-11-28 1983-04-12 Motorola, Inc. High speed digital divider having normalizing circuitry
US4503512A (en) * 1982-02-22 1985-03-05 Amdahl Corporation Cellular division circuit
US4525797A (en) * 1983-01-03 1985-06-25 Motorola, Inc. N-bit carry select adder circuit having only one full adder per bit
CA1231455A (en) * 1984-04-09 1988-01-12 Masayuki Ikeda Nonrestoring divider
JPS6149233A (ja) * 1984-08-17 1986-03-11 Nec Corp 高速デジタル加減算回路
JPS61166628A (ja) * 1985-01-18 1986-07-28 Hitachi Ltd 除算装置
US4858168A (en) * 1988-02-16 1989-08-15 American Telephone And Telegraph Company Carry look-ahead technique having a reduced number of logic levels

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01311321A (ja) * 1988-06-10 1989-12-15 Nec Corp 加算器

Also Published As

Publication number Publication date
EP0436905A2 (en) 1991-07-17
US5097436A (en) 1992-03-17
EP0436905A3 (en) 1991-11-06
DE69030169D1 (de) 1997-04-17
KR910014801A (ko) 1991-08-31
DE69030169T2 (de) 1997-12-04
KR940004326B1 (ko) 1994-05-19
EP0436905B1 (en) 1997-03-12
CA2032435C (en) 1994-06-28
CA2032435A1 (en) 1991-07-10

Similar Documents

Publication Publication Date Title
JP3689183B2 (ja) 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算
US5798955A (en) High-speed division and square root calculation unit
US5696712A (en) Three overlapped stages of radix-2 square root/division with speculative execution
JP2002108606A (ja) スティッキービット生成回路及び乗算器
JPH0542011B2 (ja)
JPH0544046B2 (ja)
US20110131262A1 (en) Floating point divider and information processing apparatus using the same
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
JPS6114532B2 (ja)
US8060551B2 (en) Method and apparatus for integer division
US6182100B1 (en) Method and system for performing a logarithmic estimation within a data processing system
KR100308726B1 (ko) 고속 산술 장치에서 올림수 예견가산기 스테이지의 수를 감소시키는 장치 및 방법
US5097436A (en) High performance adder using carry predictions
US9448767B2 (en) Three-term predictive adder and/or subtracter
US8166085B2 (en) Reducing the latency of sum-addressed shifters
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US6519621B1 (en) Arithmetic circuit for accumulative operation
US5506800A (en) Self-checking complementary adder unit
US6061707A (en) Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system
CN111506293B (zh) 一种基于srt算法的高基除法器电路
US8219604B2 (en) System and method for providing a double adder for decimal floating point operations
US4815019A (en) Fast ALU equals zero circuit
US6615228B1 (en) Selection based rounding system and method for floating point operations
US5208769A (en) Unsigned integer multiply/divide circuit
JP2664750B2 (ja) 演算装置及び演算処理方法