JPH0773019A - キャリ先見ツリー - Google Patents
キャリ先見ツリーInfo
- Publication number
- JPH0773019A JPH0773019A JP3063391A JP6339191A JPH0773019A JP H0773019 A JPH0773019 A JP H0773019A JP 3063391 A JP3063391 A JP 3063391A JP 6339191 A JP6339191 A JP 6339191A JP H0773019 A JPH0773019 A JP H0773019A
- Authority
- JP
- Japan
- Prior art keywords
- carry
- block
- tree
- blocks
- level
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; 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/508—Adding; 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/49—Computations with a radix, other than binary, 8, 16 or decimal, e.g. ternary, negative or imaginary radices, mixed radix non-linear PCM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
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)
- Nonlinear Science (AREA)
- Logic Circuits (AREA)
- Catching Or Destruction (AREA)
- Breeding Of Plants And Reproduction By Means Of Culturing (AREA)
Abstract
(57)【要約】
【目的】 高位基数キャリ先見ツリーは複数個のツリー
ノードを含み、ツリーノードの各々はキャリチェインも
しくはその変型、および/またはNANDゲートチェイ
ンもしくはその変型を含み、かつ各ツリーノードは3つ
またはそれより多い子を有してもよい。
ノードを含み、ツリーノードの各々はキャリチェインも
しくはその変型、および/またはNANDゲートチェイ
ンもしくはその変型を含み、かつ各ツリーノードは3つ
またはそれより多い子を有してもよい。
Description
【0001】
【関連の出願への相互参照】この出願は次の米国特許出
願に関するものである。
願に関するものである。
【0002】 連続番号 名称 発明者 (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) すべての相互参照はこれとともに同じ日付に出願され、
かつこの発明の譲受人に譲渡され、すべてここで参照す
ることにより援用される。
かつこの発明の譲受人に譲渡され、すべてここで参照す
ることにより援用される。
【0003】
【0004】
【発明の分野】この発明は、たとえば加算器において用
いられる改善されたキャリ先見技術に関するものであ
る。
いられる改善されたキャリ先見技術に関するものであ
る。
【0005】
【関連技術の説明】2進けた値加算において、2進けた
値コードで表現された2個のオペランドは、合計されて
また2進けた値コードの結果を生じる。各オペランド、
および結果はビットのアレイである。2進けた値コード
において、アレイにおけるビットの位置はその2の累乗
重みを決定し、ゆえに、値=和(ビット×2^pos)
である。表現の値を決定する際に最も小さい重みを有す
るビットは最下位ビット、またはLSBと呼ばれる。同
様に、最も大きい重みを有するビットは最上位ビット、
またはMSBと呼ばれる。ほかの数体系は加算のために
よりよい特性を有するが、それらはほかの問題を被るの
で、実質的に今日市場に出ているどのコンピュータも2
進けた値コードを用いる。
値コードで表現された2個のオペランドは、合計されて
また2進けた値コードの結果を生じる。各オペランド、
および結果はビットのアレイである。2進けた値コード
において、アレイにおけるビットの位置はその2の累乗
重みを決定し、ゆえに、値=和(ビット×2^pos)
である。表現の値を決定する際に最も小さい重みを有す
るビットは最下位ビット、またはLSBと呼ばれる。同
様に、最も大きい重みを有するビットは最上位ビット、
またはMSBと呼ばれる。ほかの数体系は加算のために
よりよい特性を有するが、それらはほかの問題を被るの
で、実質的に今日市場に出ているどのコンピュータも2
進けた値コードを用いる。
【0006】手によりなされる加算方法において、和は
LSB位置に対して形成され、キャリはことによると次
のビット位置に伝播され、かつこの処理は結果における
各ビットが計算されるまで連続するビット位置に対して
繰返される。この方法は図1に示されるように“キャリ
伝播(carry propagate )”加算として当業者には公知
である。キャリ伝播加算はその直列の特質により本質的
に遅い。
LSB位置に対して形成され、キャリはことによると次
のビット位置に伝播され、かつこの処理は結果における
各ビットが計算されるまで連続するビット位置に対して
繰返される。この方法は図1に示されるように“キャリ
伝播(carry propagate )”加算として当業者には公知
である。キャリ伝播加算はその直列の特質により本質的
に遅い。
【0007】伝統的に、加算は、CMOSVLSIデザ
イン(CMOS VLSI Design)、アディソ
ン−ウェスレイ(Addison−Wesley)、1
985年、において説明されるような次の技術、キャリ
先見、マンチェスタキャリ先見、2進キャリ先見ツリー
およびキャリ選択加算、のうちの1つを用いることによ
り速度を上げられてきた。コンピュータサイエンスの論
理的局面に関する第5回年次シンポジウム、STAC
S、1988年、において説明されたような別の技術は
条件合計加算である。さらに別の技術は1988年技術
論文の固体回路会議ダイジェストにおいて説明された多
出力ドミノ論理加算器である。
イン(CMOS VLSI Design)、アディソ
ン−ウェスレイ(Addison−Wesley)、1
985年、において説明されるような次の技術、キャリ
先見、マンチェスタキャリ先見、2進キャリ先見ツリー
およびキャリ選択加算、のうちの1つを用いることによ
り速度を上げられてきた。コンピュータサイエンスの論
理的局面に関する第5回年次シンポジウム、STAC
S、1988年、において説明されたような別の技術は
条件合計加算である。さらに別の技術は1988年技術
論文の固体回路会議ダイジェストにおいて説明された多
出力ドミノ論理加算器である。
【0008】キャリ選択および条件合計加算器を除くこ
れらの加算器の各々は、キャリ伝搬、キャリ発生および
キャリ キル(carry kill)の概念に基づいており(図
2参照)、当業者には十分に理解される。所与のビット
位置に対する合計演算へのキャリの後に所与のビット位
置からのキャリが続けばキャリはビット位置を介して′
伝播する′といわれるが、キャリが入力されないとき所
与のビット位置に対する合計はキャリアウトを生じな
い。所与の位置に対する合計がキャリインに関係しない
キャリアウトを生じれば、キャリは所与のビット位置か
ら“生成された(generated )”といわれる。キャリが
ビットを介して伝播しなければ、キャリはビット位置に
おいて“断たれた(killed)”といわれる。当業
者には公知でありかつ図2に示されるように、伝播およ
び生成信号は実際に合計をすることなく見出されてもよ
い。
れらの加算器の各々は、キャリ伝搬、キャリ発生および
キャリ キル(carry kill)の概念に基づいており(図
2参照)、当業者には十分に理解される。所与のビット
位置に対する合計演算へのキャリの後に所与のビット位
置からのキャリが続けばキャリはビット位置を介して′
伝播する′といわれるが、キャリが入力されないとき所
与のビット位置に対する合計はキャリアウトを生じな
い。所与の位置に対する合計がキャリインに関係しない
キャリアウトを生じれば、キャリは所与のビット位置か
ら“生成された(generated )”といわれる。キャリが
ビットを介して伝播しなければ、キャリはビット位置に
おいて“断たれた(killed)”といわれる。当業
者には公知でありかつ図2に示されるように、伝播およ
び生成信号は実際に合計をすることなく見出されてもよ
い。
【0009】隣接する合計機能、隣接する伝播機能また
は隣接する生成機能のグループ化は、′ブロック′と呼
ばれてもよく、その例が図1に示される。用語伝播、生
成およびキルがブロックに適用されてもよい。所与のブ
ロックのLSB合計へのキャリの後に所与のブロックの
MSB合計からのキャリが続けば、キャリは所与のブロ
ックを介して伝播するといわれる。前記ブロックのMS
B合計がブロックのLSBへのキャリに関係しないキャ
リアウトを生じれば、ブロックはキャリを発生するとい
われる。CMOS VSLI、アディソン・ウェスレ
イ、1985年において説明されたマンチェスタキャリ
チェインにおいてなれさたように、ブロックにおける所
与のビット位置が生成しかつ所与のビットおよびブロッ
クのMSBのすべてのビットが伝播するならば、ブロッ
クはただ生成のみし得るということが当業者には公知で
ある。
は隣接する生成機能のグループ化は、′ブロック′と呼
ばれてもよく、その例が図1に示される。用語伝播、生
成およびキルがブロックに適用されてもよい。所与のブ
ロックのLSB合計へのキャリの後に所与のブロックの
MSB合計からのキャリが続けば、キャリは所与のブロ
ックを介して伝播するといわれる。前記ブロックのMS
B合計がブロックのLSBへのキャリに関係しないキャ
リアウトを生じれば、ブロックはキャリを発生するとい
われる。CMOS VSLI、アディソン・ウェスレ
イ、1985年において説明されたマンチェスタキャリ
チェインにおいてなれさたように、ブロックにおける所
与のビット位置が生成しかつ所与のビットおよびブロッ
クのMSBのすべてのビットが伝播するならば、ブロッ
クはただ生成のみし得るということが当業者には公知で
ある。
【0010】キャリ先見加算器理論の概観は、J.J.
Fカバナフ(Cavanagh)によるディジタルコン
ピュータ演算(Digital Computer A
rithmetic)、p.107−117、マックグ
ロー−ヒル(McGraw−Hill)(1984
年)、において与えられる。CLAは冗長論理を用いて
キャリの計算の速度を上げる。ブロックは、ブロックの
LSBが加算のLSBに対応し、かつプログラムのMS
Bが所与のビット位置に対応するように所与のビット位
置に対して規定される。ゆえに、図3に示されるよう
に、結果メニュー1にはビット位置があるのと同じだけ
多くのブロックがある。キャリアウトが必要とされれば
付加的なブロックが必要とされる。各ブロックは入力オ
ペランドおよび入力としての加算へのキャリ、ならびに
出力としての1つのキャリだけを有する。論理的に、2
つのゲート遅延においていかなる1つの論理機能が行な
われてもよいので、キャリ先見加算器において和を生じ
る時間は論理的に一定の4つのゲート遅延であるが、し
かしながら、実ゲートの有限利得はどの1つのゲートも
所与の時間内に駆動できるロードの量を制限するので、
さらなるゲート遅延が加えられなければならない。ま
た、入力オペランド自体はゲートによって駆動されるの
で、駆動され得るキャリブロックの数、およびゆえに結
果が有してもよいビットの数はまた制限される。キャリ
先見加算器は少しのビットを超える結果大きさのために
比較的遅くなる。キャリ先見加算器の性能は、実ゲート
のローディング考察がゲート遅延の論理的数ではなく加
算時間を決定することを示す。リング(Ling)によ
り発明され、IBMジャーナル オブ リサーチ アン
ド デペロップメント、1981年5月、に現わされた
最近の加算器は、1つのビット、1つのブロックにつき
1つのゲート入力によって伝播および生成状態の出力か
らのロードを減らす。この方法はローディング問題を緩
和するが、CLA加算器はいくつかのビットより多い加
算のために比較的効率的でないまま残る。
Fカバナフ(Cavanagh)によるディジタルコン
ピュータ演算(Digital Computer A
rithmetic)、p.107−117、マックグ
ロー−ヒル(McGraw−Hill)(1984
年)、において与えられる。CLAは冗長論理を用いて
キャリの計算の速度を上げる。ブロックは、ブロックの
LSBが加算のLSBに対応し、かつプログラムのMS
Bが所与のビット位置に対応するように所与のビット位
置に対して規定される。ゆえに、図3に示されるよう
に、結果メニュー1にはビット位置があるのと同じだけ
多くのブロックがある。キャリアウトが必要とされれば
付加的なブロックが必要とされる。各ブロックは入力オ
ペランドおよび入力としての加算へのキャリ、ならびに
出力としての1つのキャリだけを有する。論理的に、2
つのゲート遅延においていかなる1つの論理機能が行な
われてもよいので、キャリ先見加算器において和を生じ
る時間は論理的に一定の4つのゲート遅延であるが、し
かしながら、実ゲートの有限利得はどの1つのゲートも
所与の時間内に駆動できるロードの量を制限するので、
さらなるゲート遅延が加えられなければならない。ま
た、入力オペランド自体はゲートによって駆動されるの
で、駆動され得るキャリブロックの数、およびゆえに結
果が有してもよいビットの数はまた制限される。キャリ
先見加算器は少しのビットを超える結果大きさのために
比較的遅くなる。キャリ先見加算器の性能は、実ゲート
のローディング考察がゲート遅延の論理的数ではなく加
算時間を決定することを示す。リング(Ling)によ
り発明され、IBMジャーナル オブ リサーチ アン
ド デペロップメント、1981年5月、に現わされた
最近の加算器は、1つのビット、1つのブロックにつき
1つのゲート入力によって伝播および生成状態の出力か
らのロードを減らす。この方法はローディング問題を緩
和するが、CLA加算器はいくつかのビットより多い加
算のために比較的効率的でないまま残る。
【0011】マンチェスタキャリ先見加算器、図4は、
キャリが伝播するブロックをスキップすることを許容す
ることによって加算の速度を上げる。この方法を適用す
るために、加算はどのキャリ伝播論理も重複されないよ
うに直列のブロックに分けられる。それから、所与のブ
ロックに対して伝播するすべてのビットは所与のブロッ
クが伝播するかどうかを決定するために互いにANDを
とられる。ブロックが伝播するのならば、バイパスがオ
ンにされてブロックのLSBへのいかなるキャリもブロ
ックのMSBの出力に直接送られるであろう。この方法
はCMOSにおける特定の大きさの加算器に対しては申
し分なく働き、しかしながら、その性能は加算の大きさ
にさらに線形に関連する。この問題を緩和する試みにお
いて、IEEEトランザクションズ・オン・コンピュー
タ(IEEE Transactions on Co
mputers)第36巻において説明されるように、
多レベルのスキップが加えられる。32ビットより大き
い加算に対して、この方法は2進先見キャリ加算器の速
度に接近できるだけであり、かつ論理的理由および実施
上の理由によりこの出願において示されている加算器よ
りかなり遅いであろう。
キャリが伝播するブロックをスキップすることを許容す
ることによって加算の速度を上げる。この方法を適用す
るために、加算はどのキャリ伝播論理も重複されないよ
うに直列のブロックに分けられる。それから、所与のブ
ロックに対して伝播するすべてのビットは所与のブロッ
クが伝播するかどうかを決定するために互いにANDを
とられる。ブロックが伝播するのならば、バイパスがオ
ンにされてブロックのLSBへのいかなるキャリもブロ
ックのMSBの出力に直接送られるであろう。この方法
はCMOSにおける特定の大きさの加算器に対しては申
し分なく働き、しかしながら、その性能は加算の大きさ
にさらに線形に関連する。この問題を緩和する試みにお
いて、IEEEトランザクションズ・オン・コンピュー
タ(IEEE Transactions on Co
mputers)第36巻において説明されるように、
多レベルのスキップが加えられる。32ビットより大き
い加算に対して、この方法は2進先見キャリ加算器の速
度に接近できるだけであり、かつ論理的理由および実施
上の理由によりこの出願において示されている加算器よ
りかなり遅いであろう。
【0012】バイナリツリーは、ファミリーツリーに似
た、ノードおよび辺からなる特殊なグラフである。頂上
の1つのノードは先行するものを有さず、“ルート(ro
ot)”ノードと呼ばれる。ツリーにおける各ノードは、
子を有さない“リーフ(leaf)”ノード(一番若い世代
に対応する)を除いて、1つまたは2つの“子”を有す
る。特殊な特性を有する回路はノードとしてゲートでつ
くられてもよい。1980年に、加算器におけるキャリ
がバイナリツリーで実現されることを許容するであろう
“0”演算子が規定され得るということが示された[C
MOS VLSI デザイン(design)]。しか
しながら、2進キャリ先見ツリーは2の累乗(すなわ
ち、2,4,8・・・)のビット位置に対してのみキャ
リを与え得るので、中間のキャリを抽出するために“逆
の(inverse )”ツリーが用いられなければならず、そ
れはさらなるオーバヘッドを引き起こす。
た、ノードおよび辺からなる特殊なグラフである。頂上
の1つのノードは先行するものを有さず、“ルート(ro
ot)”ノードと呼ばれる。ツリーにおける各ノードは、
子を有さない“リーフ(leaf)”ノード(一番若い世代
に対応する)を除いて、1つまたは2つの“子”を有す
る。特殊な特性を有する回路はノードとしてゲートでつ
くられてもよい。1980年に、加算器におけるキャリ
がバイナリツリーで実現されることを許容するであろう
“0”演算子が規定され得るということが示された[C
MOS VLSI デザイン(design)]。しか
しながら、2進キャリ先見ツリーは2の累乗(すなわ
ち、2,4,8・・・)のビット位置に対してのみキャ
リを与え得るので、中間のキャリを抽出するために“逆
の(inverse )”ツリーが用いられなければならず、そ
れはさらなるオーバヘッドを引き起こす。
【0013】2進先見キャリツリー、図5は、log2
(加算長)+(オーバヘッド)に関するゲート遅延を有
する。キャリ先見加算器の場合でのように、回路ローデ
ィングは、大きいツリー、すなわち約8ビットより大き
い加算に対するツリー、に対するlog2ゲート遅延の
実現を妨げる。また、当業者には公知のように、ツリー
は大きい加算に対して大きくなりかつ配置するのが効率
的でなくなる。1988年に技術論文のIEEE固体回
路会議ダイジェストで説明されたMODLゲート加算器
は、これらの問題のいくらかを緩和する試みであり、か
つ大きい加算に対してlog2(加算長)×線形性能
(log2より小さい)を許容する。
(加算長)+(オーバヘッド)に関するゲート遅延を有
する。キャリ先見加算器の場合でのように、回路ローデ
ィングは、大きいツリー、すなわち約8ビットより大き
い加算に対するツリー、に対するlog2ゲート遅延の
実現を妨げる。また、当業者には公知のように、ツリー
は大きい加算に対して大きくなりかつ配置するのが効率
的でなくなる。1988年に技術論文のIEEE固体回
路会議ダイジェストで説明されたMODLゲート加算器
は、これらの問題のいくらかを緩和する試みであり、か
つ大きい加算に対してlog2(加算長)×線形性能
(log2より小さい)を許容する。
【0014】図6に示されるキャリ選択加算器は、加算
を3つのブロックに区分する原理に基づく。第1ブロッ
クは2個のオペランドの最下位の半分を加算する。第2
ブロックは第1ブロックの0からのキャリインを想定し
てオペランドの最上位の半分を加算する。第3ブロック
は第1ブロックの1からのキャリインを想定してオペラ
ンドの最上位の半分を加算する。第1ブロックからのキ
ャリが計算されると、それは2−1マルチプレクサを経
て、ブロック2からの和またはブロック3からの和を選
択することにより結果の正確な最上位半分を選ぶために
用いられる。キャリ選択加算器が直列に配列されると、
それらはセクションの数、プラス第1セクションの加算
時間、に関連する線形の性能を有する。大きい加算に対
して、この型の加算器は比較的遅いが小型である。
を3つのブロックに区分する原理に基づく。第1ブロッ
クは2個のオペランドの最下位の半分を加算する。第2
ブロックは第1ブロックの0からのキャリインを想定し
てオペランドの最上位の半分を加算する。第3ブロック
は第1ブロックの1からのキャリインを想定してオペラ
ンドの最上位の半分を加算する。第1ブロックからのキ
ャリが計算されると、それは2−1マルチプレクサを経
て、ブロック2からの和またはブロック3からの和を選
択することにより結果の正確な最上位半分を選ぶために
用いられる。キャリ選択加算器が直列に配列されると、
それらはセクションの数、プラス第1セクションの加算
時間、に関連する線形の性能を有する。大きい加算に対
して、この型の加算器は比較的遅いが小型である。
【0015】条件合計加算器は反復的に付与されたキャ
リ選択加算器である。加算器は多くの冗長な2のブロッ
クに分けられ、それから起こり得る和の半分だけが残る
ように1組が選ばれる。起こり得る和を二等分する処理
は、結果だけが残るまで多段において続けられる。この
加算器はlog2性能を有し、しかしながら、、それは
BLC加算器よりさらに大きい。合計は各段においてキ
ャリとともに計算されるので、合計論理は不必要に何度
も再現される。また、合計オーバヘッドはこの加算器を
BLC加算器より遅くする。
リ選択加算器である。加算器は多くの冗長な2のブロッ
クに分けられ、それから起こり得る和の半分だけが残る
ように1組が選ばれる。起こり得る和を二等分する処理
は、結果だけが残るまで多段において続けられる。この
加算器はlog2性能を有し、しかしながら、、それは
BLC加算器よりさらに大きい。合計は各段においてキ
ャリとともに計算されるので、合計論理は不必要に何度
も再現される。また、合計オーバヘッドはこの加算器を
BLC加算器より遅くする。
【0016】加算器は多くのディジタル回路の核心を形
成し、かつそれらはRISCマイクロプロセッサの必要
とされるサイクルタイムの主な貢献者であるので、この
発明により提供されるように、より速い加算器は必要と
され続ける。
成し、かつそれらはRISCマイクロプロセッサの必要
とされるサイクルタイムの主な貢献者であるので、この
発明により提供されるように、より速い加算器は必要と
され続ける。
【0017】
【発明の概要】この発明は、その各々が3つまたはそれ
より多い子ノードを有し得る複数個のノードを含む速
く、比較的小さい高基数キャリ先見ツリーを提供する。
各ノードはマンチェスタキャリチェイン、またはその変
型、およびNANDゲートチェイン、またはその変型を
含む。
より多い子ノードを有し得る複数個のノードを含む速
く、比較的小さい高基数キャリ先見ツリーを提供する。
各ノードはマンチェスタキャリチェイン、またはその変
型、およびNANDゲートチェイン、またはその変型を
含む。
【0018】この発明はまた正規境界において高基数ツ
リーからキャリを抽出するための手段を含む。より特定
的に、この発明の実施例において、キャリを抽出するた
めの手段はツリーにかけて配置された1つまたはそれよ
り多い冗長ノードを含んでもよい。
リーからキャリを抽出するための手段を含む。より特定
的に、この発明の実施例において、キャリを抽出するた
めの手段はツリーにかけて配置された1つまたはそれよ
り多い冗長ノードを含んでもよい。
【0019】したがって、この発明の目的は、短い時間
期間内に比較的大きい加算を行なうための比較的小さい
回路を提供することである。
期間内に比較的大きい加算を行なうための比較的小さい
回路を提供することである。
【0020】この発明の別の目的は、容易にかつ実際に
スケールされ得、かつそのようにスケールされるときに
ほとんど速度を失わない回路を提供することである。
スケールされ得、かつそのようにスケールされるときに
ほとんど速度を失わない回路を提供することである。
【0021】この発明のほかの目的、利点および新規な
特徴は、添付の図面と関連して考慮されると、この発明
の次の詳細な説明から明らかになるであろう。
特徴は、添付の図面と関連して考慮されると、この発明
の次の詳細な説明から明らかになるであろう。
【0022】
【好ましい実施例の説明】今、図7を参照して、プロセ
ッサ2を含む計算機システムの簡略化されたシステム図
が示される。いくつかの後続の図と同様にこの図の目的
は、この発明の教示に従うキャリ先見ツリーが有効に組
入れられてもよい環境を示すことである。
ッサ2を含む計算機システムの簡略化されたシステム図
が示される。いくつかの後続の図と同様にこの図の目的
は、この発明の教示に従うキャリ先見ツリーが有効に組
入れられてもよい環境を示すことである。
【0023】プロセッサ2は3つの非多重化バスを用い
て外部命令およびデータにアクセスする。これらのバス
は集合的にチャネルとして参照されてもよい。チャネル
は、命令転送のための32ビットバス4と、データ転送
のための第2の32ビットバス6と、命令およびデータ
アクセス間で共用される第3のアドレスバス8とを含
む。アドレスバス8はパイプライン化されるので、命令
またはデータ転送が完了する前に解放され得る。このこ
とは最初アクセス完了する前に次のアクセスが始まるこ
とを許容し、かつプロセッサ2が同時進行の2つのアク
セスを有することを許容する。
て外部命令およびデータにアクセスする。これらのバス
は集合的にチャネルとして参照されてもよい。チャネル
は、命令転送のための32ビットバス4と、データ転送
のための第2の32ビットバス6と、命令およびデータ
アクセス間で共用される第3のアドレスバス8とを含
む。アドレスバス8はパイプライン化されるので、命令
またはデータ転送が完了する前に解放され得る。このこ
とは最初アクセス完了する前に次のアクセスが始まるこ
とを許容し、かつプロセッサ2が同時進行の2つのアク
セスを有することを許容する。
【0024】図7に示されるシステム全体は命令ROM
10および命令メモリ12を含むように理解されてもよ
く、両方ともアドレスバス8および命令バス4の間で作
動的に接続される。さらに、データメモリ14およびデ
ータ転送コントローラ16がアドレスバス8およびデー
タバス6の間で作動的に接続されるように示される。さ
らに、データ転送コントローラ16はまた、システムバ
ス18に信号を送り、かつシステムバス18から信号を
受取るように作動的に接続される。
10および命令メモリ12を含むように理解されてもよ
く、両方ともアドレスバス8および命令バス4の間で作
動的に接続される。さらに、データメモリ14およびデ
ータ転送コントローラ16がアドレスバス8およびデー
タバス6の間で作動的に接続されるように示される。さ
らに、データ転送コントローラ16はまた、システムバ
ス18に信号を送り、かつシステムバス18から信号を
受取るように作動的に接続される。
【0025】今、図8を参照して、プロセッサ2のより
よい理解が得られるようにプロセッサ2のデータフロー
図が示される。
よい理解が得られるようにプロセッサ2のデータフロー
図が示される。
【0026】プロセッサ2は命令実行に対して4段階の
パイプラインを実現し、4段階は“取出し”、“デコー
ド”、“実行”および“書き戻し”である。プロセッサ
2の命令取出し装置20は命令を取出し、かつ命令をほ
かの機能装置に与える。装置20は命令先取りバッフ
ァ、分岐目標キャッシュおよびプログラムカウンタ装置
を組入れる。これらのサブユニットは以下で図9を参照
してさらに論じられるであろう。命令取出し装置20の
すべてのコンポーネントはプロセッサパイプラインの取
出し段階の間に動作する。
パイプラインを実現し、4段階は“取出し”、“デコー
ド”、“実行”および“書き戻し”である。プロセッサ
2の命令取出し装置20は命令を取出し、かつ命令をほ
かの機能装置に与える。装置20は命令先取りバッフ
ァ、分岐目標キャッシュおよびプログラムカウンタ装置
を組入れる。これらのサブユニットは以下で図9を参照
してさらに論じられるであろう。命令取出し装置20の
すべてのコンポーネントはプロセッサパイプラインの取
出し段階の間に動作する。
【0027】プロセッサ2はまた実行装置22を含む。
実行装置22は、レジスタファイル、アドレス装置、算
術/論理装置、フィールドシフト装置、優先付け装置
(prioritizer)および浮動小数点処理装置
を含む。これらのサブユニットは、命令取出し装置20
のサブユニットと同様に、また以下で図9を参照してさ
らに論じられる。レジスタファイルおよびアドレス装置
はパイプラインのデコード段階の間に動作する。算術/
論理装置、フィールドシフト装置および優先付け装置は
パイプラインの実行段階の間に動作する。レジスタファ
イルはまた書き戻し段階の間に動作する。
実行装置22は、レジスタファイル、アドレス装置、算
術/論理装置、フィールドシフト装置、優先付け装置
(prioritizer)および浮動小数点処理装置
を含む。これらのサブユニットは、命令取出し装置20
のサブユニットと同様に、また以下で図9を参照してさ
らに論じられる。レジスタファイルおよびアドレス装置
はパイプラインのデコード段階の間に動作する。算術/
論理装置、フィールドシフト装置および優先付け装置は
パイプラインの実行段階の間に動作する。レジスタファ
イルはまた書き戻し段階の間に動作する。
【0028】またさらに図8を参照して、プロセッサ2
はメモリ管理装置24を含むように理解されてもよい。
メモリ管理装置24は、すべての分岐、ロードおよびス
トアに対してアドレス変換およびメモリ保護機能を行な
う。装置24はパイプラインの実行段階の間で動作する
ので、それが発生する物理的アドレスは書き戻し段階の
始めに利用できる。
はメモリ管理装置24を含むように理解されてもよい。
メモリ管理装置24は、すべての分岐、ロードおよびス
トアに対してアドレス変換およびメモリ保護機能を行な
う。装置24はパイプラインの実行段階の間で動作する
ので、それが発生する物理的アドレスは書き戻し段階の
始めに利用できる。
【0029】プロセッサ2における装置20、22およ
び24の相互接続は、それらのシステムバスとのインタ
フェースと同様にまた図8に示される。
び24の相互接続は、それらのシステムバスとのインタ
フェースと同様にまた図8に示される。
【0030】今、図9を参照して、プロセッサ2のサブ
コンポーネントに注目するさらなる詳細が図で示され
る。先に述べられたように、命令取出し装置20は命令
先取りバッファ26、分岐目標キャシュ28およびプロ
グラムカウンタ装置30を含と理解してもよい。また先
に述べられたように、メモリ管理装置24はすべての分
岐、ロードおよびストアに対してアドレス変換およびメ
モリ保護機能を行なうための手段32を含むと理解して
もよい。最後に、実行装置22はレジスタファイル3
4、アドレス装置36、算術/論理装置38、フィール
ドシフト装置(参照番号38でもまた示される)、優先
付け装置(参照番号38でもまた示される)および浮遊
小数点処理装置40を含むと理解してよい。様々なほか
のエレメント(たとえば、特殊目的レジスタ42)およ
び相互接続の詳細が図9に示されるが、それらはただ周
辺的にこの発明に関連するだけなので、かつプロセッサ
2をよく理解するために図だけで当業者には十分通じる
ので、浮動小数点装置40およびそれが作動的に接続す
るほかのエレメント以外のすべて装置に注目するさらな
る詳細はここでは明らかにされない。
コンポーネントに注目するさらなる詳細が図で示され
る。先に述べられたように、命令取出し装置20は命令
先取りバッファ26、分岐目標キャシュ28およびプロ
グラムカウンタ装置30を含と理解してもよい。また先
に述べられたように、メモリ管理装置24はすべての分
岐、ロードおよびストアに対してアドレス変換およびメ
モリ保護機能を行なうための手段32を含むと理解して
もよい。最後に、実行装置22はレジスタファイル3
4、アドレス装置36、算術/論理装置38、フィール
ドシフト装置(参照番号38でもまた示される)、優先
付け装置(参照番号38でもまた示される)および浮遊
小数点処理装置40を含むと理解してよい。様々なほか
のエレメント(たとえば、特殊目的レジスタ42)およ
び相互接続の詳細が図9に示されるが、それらはただ周
辺的にこの発明に関連するだけなので、かつプロセッサ
2をよく理解するために図だけで当業者には十分通じる
ので、浮動小数点装置40およびそれが作動的に接続す
るほかのエレメント以外のすべて装置に注目するさらな
る詳細はここでは明らかにされない。
【0031】浮動小数点装置40のいくつかの注目に値
する局面が図9を参照して見られるかもしれない。浮動
小数点装置40がAおよびBオペランドを処理すること
を認識して、これらのAおよびBオペランドはそれぞれ
Aバス44、Bバス46を経てレジスタファイル34か
らくる。処理、たとえば、浮動小数点装置40による計
算、の結果は結果バス48を経てレジスタファイルに書
込まれる。また、浮動小数点装置40の演算に対する命
令はプロセッサ命令バス50を経てそこに伝送される。
する局面が図9を参照して見られるかもしれない。浮動
小数点装置40がAおよびBオペランドを処理すること
を認識して、これらのAおよびBオペランドはそれぞれ
Aバス44、Bバス46を経てレジスタファイル34か
らくる。処理、たとえば、浮動小数点装置40による計
算、の結果は結果バス48を経てレジスタファイルに書
込まれる。また、浮動小数点装置40の演算に対する命
令はプロセッサ命令バス50を経てそこに伝送される。
【0032】今、図10を参照して、この発明の教示に
従って構成されたパイプライン化された浮動小数点処理
装置の様々なサブコンポーネントが今見られる。
従って構成されたパイプライン化された浮動小数点処理
装置の様々なサブコンポーネントが今見られる。
【0033】図9を参照して先に論じられた様々なイン
タフェース点はこの図において同様に示されかつ表示さ
れ、すなわち、レジスタファイルからのオペランドはA
バス44およびBバス46を経て浮動小数点装置に送り
込まれ、結果が結果バス48を経て浮動小数点装置を出
発し、かつ命令は命令またはIバス50を経て浮動小数
点装置に伝送される。図10を特に参照して、浮動小数
点装置内でAバス、Bバスおよび結果バスはインタフェ
ース装置52に作動的に接続するように見られてもよい
が、Iバスはそこにおいてコントローラ54に作動的に
接続される。
タフェース点はこの図において同様に示されかつ表示さ
れ、すなわち、レジスタファイルからのオペランドはA
バス44およびBバス46を経て浮動小数点装置に送り
込まれ、結果が結果バス48を経て浮動小数点装置を出
発し、かつ命令は命令またはIバス50を経て浮動小数
点装置に伝送される。図10を特に参照して、浮動小数
点装置内でAバス、Bバスおよび結果バスはインタフェ
ース装置52に作動的に接続するように見られてもよい
が、Iバスはそこにおいてコントローラ54に作動的に
接続される。
【0034】処理に対する番号、すなわちAおよびBオ
ペランドが浮動小数点装置40のような浮動小数点装置
に入力されるとき、浮動小数点装置が所望の(または命
令された)算術演算を行ない、かつバス48のような結
果バス上に結果を出力することは周知である。浮動小数
点装置40のような浮動小数点装置は浮動小数点および
整数の両方を処理してもよい。32ビット(単精度)お
よび64ビット(倍精度)のような様々な浮動小数点フ
ォーマットがサポートされてもよい。さらに、浮動小数
点装置40は整数から浮動小数点への変換を処理しても
よく、かつその逆を処理してもよい。浮動小数点装置4
0の先の局面の各々は先に参照された関連事件において
さらに論じられ、かつここで参照することにより援用さ
れる。
ペランドが浮動小数点装置40のような浮動小数点装置
に入力されるとき、浮動小数点装置が所望の(または命
令された)算術演算を行ない、かつバス48のような結
果バス上に結果を出力することは周知である。浮動小数
点装置40のような浮動小数点装置は浮動小数点および
整数の両方を処理してもよい。32ビット(単精度)お
よび64ビット(倍精度)のような様々な浮動小数点フ
ォーマットがサポートされてもよい。さらに、浮動小数
点装置40は整数から浮動小数点への変換を処理しても
よく、かつその逆を処理してもよい。浮動小数点装置4
0の先の局面の各々は先に参照された関連事件において
さらに論じられ、かつここで参照することにより援用さ
れる。
【0035】さらに図10を参照して、当業者はここに
示される様々な浮動小数点装置サブコンポーネントのほ
とんどの機能および動作を認識するべきである。一般的
に従来の個々の態様で動作し、かつこのようなここでは
詳細に論じられないこれらのサブコンポーネントは、予
検出器56、デノーマライザ(denormalize
r)58、多機能装置60、リノーマライザ(reno
rmalizer)62、乗算器64、部分積総和器6
6、分周器68、丸め装置70およびアキュムレータ7
2を含む。これらのサブコンポーネントおよびその相互
作用のいくつかの非常に重要な局面は存在するが、しか
しながら、それらは読者が参照するよう促されるであろ
う関連事件において詳細に論じられる。
示される様々な浮動小数点装置サブコンポーネントのほ
とんどの機能および動作を認識するべきである。一般的
に従来の個々の態様で動作し、かつこのようなここでは
詳細に論じられないこれらのサブコンポーネントは、予
検出器56、デノーマライザ(denormalize
r)58、多機能装置60、リノーマライザ(reno
rmalizer)62、乗算器64、部分積総和器6
6、分周器68、丸め装置70およびアキュムレータ7
2を含む。これらのサブコンポーネントおよびその相互
作用のいくつかの非常に重要な局面は存在するが、しか
しながら、それらは読者が参照するよう促されるであろ
う関連事件において詳細に論じられる。
【0036】今、図11を参照して、この発明の教示に
従う基数−4先見ツリーの概略図が示される。この基数
−4先見ツリーは、先にさらに識別された関連事件書類
番号06940/0009において開示された加算器に
組入れることができ、かつそれから図10に示される浮
動小数点装置の分周器68、乗算器64および多機能装
置60のようなエレメントにさらに組入れることができ
るということが理解されるべきである。もちろん、この
基数−4先見ツリーは、先に参照された加算器と同様に
多くのほかのけたにおいても使用され得る。
従う基数−4先見ツリーの概略図が示される。この基数
−4先見ツリーは、先にさらに識別された関連事件書類
番号06940/0009において開示された加算器に
組入れることができ、かつそれから図10に示される浮
動小数点装置の分周器68、乗算器64および多機能装
置60のようなエレメントにさらに組入れることができ
るということが理解されるべきである。もちろん、この
基数−4先見ツリーは、先に参照された加算器と同様に
多くのほかのけたにおいても使用され得る。
【0037】図11に示されるツリーは3つの異なる型
のブロックを含むと理解してもよい。これら3つの異な
る型のブロックは修正キャリチェインブロック、キャリ
インのために修正されたキャリチェインブロックおよび
マンチェスタキャリチェインブロックである。これら3
つの異なる型のブロックの各々は以下でさらに論じられ
る。
のブロックを含むと理解してもよい。これら3つの異な
る型のブロックは修正キャリチェインブロック、キャリ
インのために修正されたキャリチェインブロックおよび
マンチェスタキャリチェインブロックである。これら3
つの異なる型のブロックの各々は以下でさらに論じられ
る。
【0038】図11をさらに参照し、かつ図12もまた
参照して、これら3つの異なる型のブロックは3つのレ
ベルに配列されるように理解されてもよい。第1レベル
は15個の修正キャリチェインブロック74−102
と、キャリインのために修正されたキャリチェインブロ
ック104である16番目のブロックとを含む。第2レ
ベルは4個のマンチェスタキャリチェインノード106
−112を含み、かつ第3レベル(特に図12におい
て)は2個のマンチェスタキャリチェインノード11
4、116(参照番号116で示されたそのうちの1つ
は実際以下でさらに論じられる“冗長セル”である)を
含む(冗長セルは図11には示されないことに注目され
るべきである)。
参照して、これら3つの異なる型のブロックは3つのレ
ベルに配列されるように理解されてもよい。第1レベル
は15個の修正キャリチェインブロック74−102
と、キャリインのために修正されたキャリチェインブロ
ック104である16番目のブロックとを含む。第2レ
ベルは4個のマンチェスタキャリチェインノード106
−112を含み、かつ第3レベル(特に図12におい
て)は2個のマンチェスタキャリチェインノード11
4、116(参照番号116で示されたそのうちの1つ
は実際以下でさらに論じられる“冗長セル”である)を
含む(冗長セルは図11には示されないことに注目され
るべきである)。
【0039】今、図13、図14および図15を参照し
て、マンチェスタキャリチェインブロック110は、伝
播信号および生成信号を4つの子ノード、または伝播発
生入力から受取り、かつブロック生成信号およびブロッ
ク伝播信号を生じるように理解されてもよい。修正キャ
リチェインブロック74は、より少ないトランジスタで
同様の機能を果たすように理解されてもよい。修正キャ
リチェインブロック104はキャリインを考慮に入れな
がら同様の機能を果たすように理解されてもよい。
て、マンチェスタキャリチェインブロック110は、伝
播信号および生成信号を4つの子ノード、または伝播発
生入力から受取り、かつブロック生成信号およびブロッ
ク伝播信号を生じるように理解されてもよい。修正キャ
リチェインブロック74は、より少ないトランジスタで
同様の機能を果たすように理解されてもよい。修正キャ
リチェインブロック104はキャリインを考慮に入れな
がら同様の機能を果たすように理解されてもよい。
【0040】今、図11に戻って参照して、レベル1に
示されるノードの各々、74、76、78、80、8
2、84、86、88、90、92、94、96、9
8、100、102および104は4つの入力位置に対
してブロック伝播および生成を生じる。レベル2のノー
ドの各々、106、108、110および112は、レ
ベル1ブロックのうちの4個からブロック伝播および生
成を生じる。ゆえに、レベル2は4×4または16ビッ
トブロックについての情報を提供する。レベル3のブロ
ック114は、レベル2のブロックのうちの4個、また
は4×(4×4)、または64ビットについてのブロッ
ク情報を提供する。当業者は、この回路がたいした内部
ローディングもなくログベース4の遅延におけるキャリ
を獲得するということに感銘を与えられるであろう。
示されるノードの各々、74、76、78、80、8
2、84、86、88、90、92、94、96、9
8、100、102および104は4つの入力位置に対
してブロック伝播および生成を生じる。レベル2のノー
ドの各々、106、108、110および112は、レ
ベル1ブロックのうちの4個からブロック伝播および生
成を生じる。ゆえに、レベル2は4×4または16ビッ
トブロックについての情報を提供する。レベル3のブロ
ック114は、レベル2のブロックのうちの4個、また
は4×(4×4)、または64ビットについてのブロッ
ク情報を提供する。当業者は、この回路がたいした内部
ローディングもなくログベース4の遅延におけるキャリ
を獲得するということに感銘を与えられるであろう。
【0041】当業者は図12に示される回路が基数−4
先見ツリーに基づくということを認識するべきである。
図12に示される基本基数−4キャリ先見ツリーはビッ
ト0(Cin)、4、8、16、32、48および56
におけるキャリを与える。キャリ8は伝統的な手段を介
してブロック112から入手できる。キャリ24、32
および40は以下でさらに論じられるような冗長セルを
加えることにより獲得されてもよい。キャリ32、48
および56はブロック114から獲得されてもよい。キ
ャリ出力点の各々は図12に明らかに示される。もちろ
ん、特定のキャリは1つ以上の場所でツリーから抽出さ
れ得、たとえば、CLA32は点118および120の
両方から抽出されてもよい。すべての8ビット境界上の
キャリが利用可能であり、読者が参照するように促され
るであろうリンチほかの(06940/0009)高速
混合基数加算器に対して、しかしそれに制限されずにこ
れを理想的なキャリ予測ブロックにする。
先見ツリーに基づくということを認識するべきである。
図12に示される基本基数−4キャリ先見ツリーはビッ
ト0(Cin)、4、8、16、32、48および56
におけるキャリを与える。キャリ8は伝統的な手段を介
してブロック112から入手できる。キャリ24、32
および40は以下でさらに論じられるような冗長セルを
加えることにより獲得されてもよい。キャリ32、48
および56はブロック114から獲得されてもよい。キ
ャリ出力点の各々は図12に明らかに示される。もちろ
ん、特定のキャリは1つ以上の場所でツリーから抽出さ
れ得、たとえば、CLA32は点118および120の
両方から抽出されてもよい。すべての8ビット境界上の
キャリが利用可能であり、読者が参照するように促され
るであろうリンチほかの(06940/0009)高速
混合基数加算器に対して、しかしそれに制限されずにこ
れを理想的なキャリ予測ブロックにする。
【0042】中間キャリを計算するために、冗長セル、
たとえばブロック116が常に加えられてもよい。その
ようなセルは中間キャリ値が完了されてもよいようにツ
リーの残余からオフセットされる。図12において、ブ
ロック116はキャリ24および40を完了するために
用いられる。冗長セルの導入がさらなるゲート遅延を加
えないということが注目されるべきである。
たとえばブロック116が常に加えられてもよい。その
ようなセルは中間キャリ値が完了されてもよいようにツ
リーの残余からオフセットされる。図12において、ブ
ロック116はキャリ24および40を完了するために
用いられる。冗長セルの導入がさらなるゲート遅延を加
えないということが注目されるべきである。
【0043】別の変型において、第1論理レベルのすべ
てのブロックは図11および図12に示されるツリーか
ら削除されてもよく、かつビット伝播および生成は第2
レベルに直接送られてもよい。この新しい構成は2つの
ゲート遅延における16ビット加算に対するいかなるほ
かのキャリをも生じ得る。ゲート遅延の数を増加させる
ことなく、すべてのキャリを見出すためにさらなる冗長
セルの追加が用いられ得る。
てのブロックは図11および図12に示されるツリーか
ら削除されてもよく、かつビット伝播および生成は第2
レベルに直接送られてもよい。この新しい構成は2つの
ゲート遅延における16ビット加算に対するいかなるほ
かのキャリをも生じ得る。ゲート遅延の数を増加させる
ことなく、すべてのキャリを見出すためにさらなる冗長
セルの追加が用いられ得る。
【0044】この発明の重要な局面はマンチェスタキャ
リチェインブロック、たとえば図15に示されるブロッ
ク110に関連する。今当業者により認識されるであろ
うように、基本ツリーノードは実質的に結合された2つ
の別個の回路である。左側はマンチェスタキャリチェイ
ンであり、かつ右側はNANDゲートチェインである。
リチェインブロック、たとえば図15に示されるブロッ
ク110に関連する。今当業者により認識されるであろ
うように、基本ツリーノードは実質的に結合された2つ
の別個の回路である。左側はマンチェスタキャリチェイ
ンであり、かつ右側はNANDゲートチェインである。
【0045】この発明の教示に従って、特殊キャリ先見
ツリーはいかなる基数からなってもよい。たとえば、所
与のノードの子の数を3だけに制限することによって基
数−3ツリーが構成されてもよい。この特許において説
明された同じ原理がまた適用されてもよいということが
当業者には理解でき得る。別の例として、8ツリーは各
ノードが8つの子を有するようにすることによって構成
されてもよい。この特許において教示された原理がまた
適用されるであろう。3ツリーはログベース3の性能を
有するであろうが、8ツリーはログベース8の性能を有
するであろう。もちろん、ログベース8のツリーは非常
にまばらなキャリの組を生じるであろうし、かつ非常に
大きいツリーノードを有するであろう。
ツリーはいかなる基数からなってもよい。たとえば、所
与のノードの子の数を3だけに制限することによって基
数−3ツリーが構成されてもよい。この特許において説
明された同じ原理がまた適用されてもよいということが
当業者には理解でき得る。別の例として、8ツリーは各
ノードが8つの子を有するようにすることによって構成
されてもよい。この特許において教示された原理がまた
適用されるであろう。3ツリーはログベース3の性能を
有するであろうが、8ツリーはログベース8の性能を有
するであろう。もちろん、ログベース8のツリーは非常
にまばらなキャリの組を生じるであろうし、かつ非常に
大きいツリーノードを有するであろう。
【0046】この発明に従う回路が基本キャリチェイン
を高位基数ツリーに配列するということもまた今認識さ
れるべきである。
を高位基数ツリーに配列するということもまた今認識さ
れるべきである。
【0047】この回路は本質的に2進キャリ先見回路を
超えた改善をされたものである。この回路が改善された
ものであるという理由は、それが2進キャリ先見回路よ
り優れたロードおよび速度特性を有する高位基数技術を
組入れたところにある。この発明に従う回路はNゲート
遅延のログベース基数を有し、ここでNは加算の大きさ
であり、かつ基数は多数のツリーである。さらに、この
発明に従う回路は3つの単純なサブブロックのみを用い
る。また、中間キャリを見出す容易さのために、この回
路は改善されたものである。
超えた改善をされたものである。この回路が改善された
ものであるという理由は、それが2進キャリ先見回路よ
り優れたロードおよび速度特性を有する高位基数技術を
組入れたところにある。この発明に従う回路はNゲート
遅延のログベース基数を有し、ここでNは加算の大きさ
であり、かつ基数は多数のツリーである。さらに、この
発明に従う回路は3つの単純なサブブロックのみを用い
る。また、中間キャリを見出す容易さのために、この回
路は改善されたものである。
【0048】当業者は、図11および図12に示された
回路が、iが1、2、3、・・・に等しい、4のi乗以
外の大きさのキャリ先見に対して容易に簡潔にされても
よいということを認めるべきである。そのようなスケー
リングが行なわれるにもかかわらず、図11および図1
2に示される回路はスケーリングされるときにほとんど
速度を失わないであろう。たとえば、64ビットのキャ
リ先見は3つのゲート遅延を必要とするであろうが、2
56ビットのキャリ先見は単に4つのゲート遅延を必要
とするだけであろう。
回路が、iが1、2、3、・・・に等しい、4のi乗以
外の大きさのキャリ先見に対して容易に簡潔にされても
よいということを認めるべきである。そのようなスケー
リングが行なわれるにもかかわらず、図11および図1
2に示される回路はスケーリングされるときにほとんど
速度を失わないであろう。たとえば、64ビットのキャ
リ先見は3つのゲート遅延を必要とするであろうが、2
56ビットのキャリ先見は単に4つのゲート遅延を必要
とするだけであろう。
【0049】今、当業者はこの発明が2進キャリ先見回
路を超える改善を提供するということを完全に認めるで
あろう。この発明の教示に従う回路は比較的小さい電気
回路で短い時間のうちに大きい加算を行なうことの問題
を解決する。この発明に従う回路は過去のものよりも速
くかつ比較的小さい。それは、3つの単純サブブロック
を用いながら、ログベース4のNゲート遅延を有し、こ
こでNは加算の大きさである。この発明のほかの重要な
局面は前もって論じられた。
路を超える改善を提供するということを完全に認めるで
あろう。この発明の教示に従う回路は比較的小さい電気
回路で短い時間のうちに大きい加算を行なうことの問題
を解決する。この発明に従う回路は過去のものよりも速
くかつ比較的小さい。それは、3つの単純サブブロック
を用いながら、ログベース4のNゲート遅延を有し、こ
こでNは加算の大きさである。この発明のほかの重要な
局面は前もって論じられた。
【0050】先に特に述べられたもののほかに多くの修
正および変更がこの発明の概念から外れることなくここ
で説明された構成技術においてなされてもよいというこ
とを当業者は認識するであろう。したがって、添付の特
許請求の範囲内でこの発明がここで特に説明されたもの
と別の方法で実施されてもよいということが認められる
であろう。
正および変更がこの発明の概念から外れることなくここ
で説明された構成技術においてなされてもよいというこ
とを当業者は認識するであろう。したがって、添付の特
許請求の範囲内でこの発明がここで特に説明されたもの
と別の方法で実施されてもよいということが認められる
であろう。
【図1】先行技術の構成を示す。
【図2】先行技術の構成を示す。
【図3】先行技術の構成を示す。
【図4】先行技術の構成を示す。
【図5】先行技術の構成を示す。
【図6】先行技術の構成を示す。
【図7】その部分にこの発明を組入れるシステムのブロ
ック図である。
ック図である。
【図8】図7に示されるプロセッサのブロック図であ
る。
る。
【図9】図8のプロセッサのさらに詳細なブロック図で
ある。
ある。
【図10】その部分にこの発明を組入れる浮動小数点装
置のブロック図である。
置のブロック図である。
【図11】この発明の教示に従う基数−4キャリ先見ツ
リーの概略図である。
リーの概略図である。
【図12】この発明の教示に従う冗長セルを含む基数−
4キャリ先見ツリーの概略図である。
4キャリ先見ツリーの概略図である。
【図13】この発明の教示に従う修正キャリチェインの
概略図である。
概略図である。
【図14】この発明の教示に従うキャリインのために修
正されたキャリインのためのセルの概略図である。
正されたキャリインのためのセルの概略図である。
【図15】この発明の教示に従うマンチェスタキャリチ
ェインブロックの概略図である。
ェインブロックの概略図である。
2はプロセッサ、106、108、110、112およ
び114はマンチェスタキャリチェインノード、116
は冗長セル、40は浮動小数点装置である。
び114はマンチェスタキャリチェインノード、116
は冗長セル、40は浮動小数点装置である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トーマス・ダブリュ・リンチ アメリカ合衆国、78722 テキサス州、オ ースティン、イースト・サーティセカン ド・ストリート、1717 (72)発明者 スティーブン・ディー・マキンタイア アメリカ合衆国、78748 テキサス州、オ ースティン、ウッドシャー・ドライブ、 9810
Claims (4)
- 【請求項1】 複数個のツリーノードを含み、前記ツリ
ーノードの各々はキャリチェインもしくはその変型、お
よび/またはNANDゲートチェインもしくはその変型
を含み、 1つのノードがもう1つへの出力を与える少なくとも2
つのツリーノードを含む、キャリ先見ツリー。 - 【請求項2】 少なくとも1つのツリーノードが3つま
たはそれより多い子を有する、請求項1に記載のツリ
ー。 - 【請求項3】 キャリを抽出するための手段をさらに備
え、前記キャリを抽出する手段は冗長セルからなる、請
求項1に記載のツリー。 - 【請求項4】 各ツリーノードは4つの子を有してもよ
い、請求項1に記載のツリー。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/503,822 US5095458A (en) | 1990-04-02 | 1990-04-02 | Radix 4 carry lookahead tree and redundant cell therefor |
US503822 | 2000-02-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0773019A true JPH0773019A (ja) | 1995-03-17 |
Family
ID=24003660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3063391A Pending JPH0773019A (ja) | 1990-04-02 | 1991-03-27 | キャリ先見ツリー |
Country Status (5)
Country | Link |
---|---|
US (1) | US5095458A (ja) |
EP (1) | EP0450755B1 (ja) |
JP (1) | JPH0773019A (ja) |
AT (1) | ATE192245T1 (ja) |
DE (1) | DE69132129T2 (ja) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5479356A (en) * | 1990-10-18 | 1995-12-26 | Hewlett-Packard Company | Computer-aided method of designing a carry-lookahead adder |
US5355473A (en) * | 1991-06-20 | 1994-10-11 | Lawrence Au | Indexed record locating and counting mechanism |
KR940007926B1 (ko) * | 1992-05-20 | 1994-08-29 | 삼성전자 주식회사 | 가산기 |
US5270955A (en) * | 1992-07-31 | 1993-12-14 | Texas Instruments Incorporated | Method of detecting arithmetic or logical computation result |
EP0590251A2 (en) * | 1992-09-22 | 1994-04-06 | Motorola, Inc. | High-speed adder |
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 |
US5495579A (en) * | 1994-03-25 | 1996-02-27 | Bull Hn Information Systems Inc. | Central processor with duplicate basic processing units employing multiplexed cache store control signals to reduce inter-unit conductor count |
US5689693A (en) * | 1994-04-26 | 1997-11-18 | Advanced Micro Devices, Inc. | Range finding circuit for selecting a consecutive sequence of reorder buffer entries using circular carry lookahead |
US5632023A (en) * | 1994-06-01 | 1997-05-20 | Advanced Micro Devices, Inc. | Superscalar microprocessor including flag operand renaming and forwarding apparatus |
US5619441A (en) * | 1994-10-14 | 1997-04-08 | International Business Machines Corporation | High speed dynamic binary incrementer |
US5668984A (en) * | 1995-02-27 | 1997-09-16 | International Business Machines Corporation | Variable stage load path and method of operation |
US5646875A (en) * | 1995-02-27 | 1997-07-08 | International Business Machines Corporation | Denormalization system and method of operation |
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 |
US5754812A (en) * | 1995-10-06 | 1998-05-19 | Advanced Micro Devices, Inc. | Out-of-order load/store execution control |
US6038657A (en) * | 1995-10-06 | 2000-03-14 | Advanced Micro Devices, Inc. | Scan chains for out-of-order load/store execution control |
US5835747A (en) * | 1996-01-26 | 1998-11-10 | Advanced Micro Devices, Inc. | Hierarchical scan logic for out-of-order load/store execution control |
US5944777A (en) * | 1997-05-05 | 1999-08-31 | Intel Corporation | Method and apparatus for generating carries in an adder circuit |
US7711672B2 (en) * | 1998-05-28 | 2010-05-04 | Lawrence Au | Semantic network methods to disambiguate natural language meaning |
US20070294229A1 (en) * | 1998-05-28 | 2007-12-20 | Q-Phrase Llc | Chat conversation methods traversing a provisional scaffold of meanings |
US8396824B2 (en) * | 1998-05-28 | 2013-03-12 | Qps Tech. Limited Liability Company | Automatic data categorization with optimally spaced semantic seed terms |
US6438572B1 (en) | 1998-09-21 | 2002-08-20 | Rn2R, L.L.C. | Adder having reduced number of internal layers and method of operation thereof |
US6496846B1 (en) * | 1999-07-13 | 2002-12-17 | Hewlett-Packard Company | Conditional carry encoding for carry select adder |
US6523049B1 (en) | 1999-12-21 | 2003-02-18 | International Business Machines Corporation | Circuit and method for determining greater than or equal to three out of sixty-six |
US6259275B1 (en) | 2000-05-01 | 2001-07-10 | Rn2R, L.L.C. | Logic gate having reduced power dissipation and method of operation thereof |
US7007059B1 (en) * | 2001-07-30 | 2006-02-28 | Cypress Semiconductor Corporation | Fast pipelined adder/subtractor using increment/decrement function with reduced register utilization |
US7062499B2 (en) * | 2002-01-08 | 2006-06-13 | Intel Corporation | Enhanced multiway radix tree and related methods |
US6591286B1 (en) | 2002-01-18 | 2003-07-08 | Neomagic Corp. | Pipelined carry-lookahead generation for a fast incrementer |
KR100714316B1 (ko) * | 2004-10-22 | 2007-05-02 | 광주과학기술원 | 혼합형 가산기 |
KR101105173B1 (ko) * | 2006-10-03 | 2012-01-12 | 큐피에스 테크. 리미티드 라이어빌리티 컴퍼니 | 카테고리화를 통해 호스트 투 게스트 콘텐츠를 자동으로 매칭하기 위한 메커니즘 |
US7904499B2 (en) * | 2007-04-16 | 2011-03-08 | Sony Computer Entertainment Inc. | Methods and apparatus for carry generation in a binary look ahead system |
US10171105B2 (en) * | 2016-08-25 | 2019-01-01 | International Business Machines Corporation | Carry-less population count |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4163211A (en) * | 1978-04-17 | 1979-07-31 | Fujitsu Limited | Tree-type combinatorial logic circuit |
US4660165A (en) * | 1984-04-03 | 1987-04-21 | Trw Inc. | Pyramid carry adder circuit |
EP0239749B1 (de) * | 1986-03-05 | 1990-07-25 | Holger Sedlak | Kryptographie-Verfahren und Kryptographie-Prozessor zur Durchführung des Verfahrens |
JPH01250137A (ja) * | 1987-12-17 | 1989-10-05 | Mitsubishi Electric Corp | 加算回路 |
US4858168A (en) * | 1988-02-16 | 1989-08-15 | American Telephone And Telegraph Company | Carry look-ahead technique having a reduced number of logic levels |
US4899305A (en) * | 1988-06-15 | 1990-02-06 | National Semiconductor Corp. | Manchester carry adder circuit |
US4956802A (en) * | 1988-12-14 | 1990-09-11 | Sun Microsystems, Inc. | Method and apparatus for a parallel carry generation adder |
US4905180A (en) * | 1988-12-16 | 1990-02-27 | Intel Corporation | MOS adder with minimum pass gates in carry line |
-
1990
- 1990-04-02 US US07/503,822 patent/US5095458A/en not_active Expired - Fee Related
-
1991
- 1991-02-20 EP EP91301357A patent/EP0450755B1/en not_active Expired - Lifetime
- 1991-02-20 AT AT91301357T patent/ATE192245T1/de not_active IP Right Cessation
- 1991-02-20 DE DE69132129T patent/DE69132129T2/de not_active Expired - Fee Related
- 1991-03-27 JP JP3063391A patent/JPH0773019A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
DE69132129D1 (de) | 2000-05-31 |
EP0450755A2 (en) | 1991-10-09 |
US5095458A (en) | 1992-03-10 |
EP0450755A3 (en) | 1993-01-27 |
ATE192245T1 (de) | 2000-05-15 |
DE69132129T2 (de) | 2000-12-21 |
EP0450755B1 (en) | 2000-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0773019A (ja) | キャリ先見ツリー | |
Vergos et al. | Design of efficient modulo 2n+ 1 multipliers | |
US5285406A (en) | High speed mixed radix adder | |
JP7292297B2 (ja) | 確率的丸めロジック | |
JP3516503B2 (ja) | 電子乗算および加算装置および方法 | |
CN1258710C (zh) | 用于高效模数归约和模数乘法的电路和方法 | |
Kulkarni | Comparison among different adders | |
Othman et al. | High performance parallel multiplier using Wallace-Booth algorithm | |
Al-Khaleel et al. | Fast binary/decimal adder/subtractor with a novel correction-free BCD addition | |
Putra et al. | Optimized hardware algorithm for integer cube root calculation and its efficient architecture | |
Harish et al. | Comparative performance analysis of Karatsuba Vedic multiplier with butterfly unit | |
TWI679577B (zh) | 多位元加法器設備與用於執行算術運算之設備及方法 | |
EP0450752B1 (en) | High speed mixed radix adders | |
Sharma et al. | Addition Of redundant binary signed digits using RBSD Adder | |
Bashagha et al. | Radix digit-serial pipelined divider/square-root architecture | |
Ramya et al. | Implementation of High Speed FFT using Reversible Logic Gates for Wireless DSP Applications | |
US20060242219A1 (en) | Asynchronous multiplier | |
Santhi et al. | Realization of parallel prefix adders for power and speed critical applications | |
ASHOK et al. | Realization of Fused-Add Multiply (FAM) Operator using Optimized Booth Recoder | |
Mishra et al. | An Efficient Design of FSM Based 32-Bit Unsigned Pipelined Multiplier Using Verilog HDL | |
Sangeeth et al. | Design of 32-bit RISC V using area efficient multiplier based on homogeneous hybrid adder | |
Gutub et al. | Efficient Adders to Speedup Modular Multiplication for Cryptography | |
George | Development of a 4-Digit BCD Multiplier Architecture with Similarity Investigator | |
JYOTHIRMAI et al. | Implementation of Spanning Tree Based Add-Multiply Operator for Optimized Power Applications | |
WO1998029800A1 (en) | Spatially pipelined arithmetic logic unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20001017 |