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
Application number
JP3063391A
Other languages
English (en)
Inventor
Thomas W Lynch
トーマス・ダブリュ・リンチ
Steven D Mcintyre
スティーブン・ディー・マキンタイア
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 JPH0773019A publication Critical patent/JPH0773019A/ja
Pending 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/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
    • 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/49Computations with a radix, other than binary, 8, 16 or decimal, e.g. ternary, negative or imaginary radices, mixed radix non-linear PCM
    • 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/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable 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つ
またはそれより多い子を有してもよい。

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
進けた値コードを用いる。
【0006】手によりなされる加算方法において、和は
LSB位置に対して形成され、キャリはことによると次
のビット位置に伝播され、かつこの処理は結果における
各ビットが計算されるまで連続するビット位置に対して
繰返される。この方法は図1に示されるように“キャリ
伝播(carry propagate )”加算として当業者には公知
である。キャリ伝播加算はその直列の特質により本質的
に遅い。
【0007】伝統的に、加算は、CMOSVLSIデザ
イン(CMOS VLSI Design)、アディソ
ン−ウェスレイ(Addison−Wesley)、1
985年、において説明されるような次の技術、キャリ
先見、マンチェスタキャリ先見、2進キャリ先見ツリー
およびキャリ選択加算、のうちの1つを用いることによ
り速度を上げられてきた。コンピュータサイエンスの論
理的局面に関する第5回年次シンポジウム、STAC
S、1988年、において説明されたような別の技術は
条件合計加算である。さらに別の技術は1988年技術
論文の固体回路会議ダイジェストにおいて説明された多
出力ドミノ論理加算器である。
【0008】キャリ選択および条件合計加算器を除くこ
れらの加算器の各々は、キャリ伝搬、キャリ発生および
キャリ キル(carry kill)の概念に基づいており(図
2参照)、当業者には十分に理解される。所与のビット
位置に対する合計演算へのキャリの後に所与のビット位
置からのキャリが続けばキャリはビット位置を介して′
伝播する′といわれるが、キャリが入力されないとき所
与のビット位置に対する合計はキャリアウトを生じな
い。所与の位置に対する合計がキャリインに関係しない
キャリアウトを生じれば、キャリは所与のビット位置か
ら“生成された(generated )”といわれる。キャリが
ビットを介して伝播しなければ、キャリはビット位置に
おいて“断たれた(killed)”といわれる。当業
者には公知でありかつ図2に示されるように、伝播およ
び生成信号は実際に合計をすることなく見出されてもよ
い。
【0009】隣接する合計機能、隣接する伝播機能また
は隣接する生成機能のグループ化は、′ブロック′と呼
ばれてもよく、その例が図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加算器はいくつかのビットより多い加
算のために比較的効率的でないまま残る。
【0011】マンチェスタキャリ先見加算器、図4は、
キャリが伝播するブロックをスキップすることを許容す
ることによって加算の速度を上げる。この方法を適用す
るために、加算はどのキャリ伝播論理も重複されないよ
うに直列のブロックに分けられる。それから、所与のブ
ロックに対して伝播するすべてのビットは所与のブロッ
クが伝播するかどうかを決定するために互いに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 )”ツリーが用いられなければならず、そ
れはさらなるオーバヘッドを引き起こす。
【0013】2進先見キャリツリー、図5は、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セクションの加算
時間、に関連する線形の性能を有する。大きい加算に対
して、この型の加算器は比較的遅いが小型である。
【0015】条件合計加算器は反復的に付与されたキャ
リ選択加算器である。加算器は多くの冗長な2のブロッ
クに分けられ、それから起こり得る和の半分だけが残る
ように1組が選ばれる。起こり得る和を二等分する処理
は、結果だけが残るまで多段において続けられる。この
加算器はlog2性能を有し、しかしながら、、それは
BLC加算器よりさらに大きい。合計は各段においてキ
ャリとともに計算されるので、合計論理は不必要に何度
も再現される。また、合計オーバヘッドはこの加算器を
BLC加算器より遅くする。
【0016】加算器は多くのディジタル回路の核心を形
成し、かつそれらはRISCマイクロプロセッサの必要
とされるサイクルタイムの主な貢献者であるので、この
発明により提供されるように、より速い加算器は必要と
され続ける。
【0017】
【発明の概要】この発明は、その各々が3つまたはそれ
より多い子ノードを有し得る複数個のノードを含む速
く、比較的小さい高基数キャリ先見ツリーを提供する。
各ノードはマンチェスタキャリチェイン、またはその変
型、およびNANDゲートチェイン、またはその変型を
含む。
【0018】この発明はまた正規境界において高基数ツ
リーからキャリを抽出するための手段を含む。より特定
的に、この発明の実施例において、キャリを抽出するた
めの手段はツリーにかけて配置された1つまたはそれよ
り多い冗長ノードを含んでもよい。
【0019】したがって、この発明の目的は、短い時間
期間内に比較的大きい加算を行なうための比較的小さい
回路を提供することである。
【0020】この発明の別の目的は、容易にかつ実際に
スケールされ得、かつそのようにスケールされるときに
ほとんど速度を失わない回路を提供することである。
【0021】この発明のほかの目的、利点および新規な
特徴は、添付の図面と関連して考慮されると、この発明
の次の詳細な説明から明らかになるであろう。
【0022】
【好ましい実施例の説明】今、図7を参照して、プロセ
ッサ2を含む計算機システムの簡略化されたシステム図
が示される。いくつかの後続の図と同様にこの図の目的
は、この発明の教示に従うキャリ先見ツリーが有効に組
入れられてもよい環境を示すことである。
【0023】プロセッサ2は3つの非多重化バスを用い
て外部命令およびデータにアクセスする。これらのバス
は集合的にチャネルとして参照されてもよい。チャネル
は、命令転送のための32ビットバス4と、データ転送
のための第2の32ビットバス6と、命令およびデータ
アクセス間で共用される第3のアドレスバス8とを含
む。アドレスバス8はパイプライン化されるので、命令
またはデータ転送が完了する前に解放され得る。このこ
とは最初アクセス完了する前に次のアクセスが始まるこ
とを許容し、かつプロセッサ2が同時進行の2つのアク
セスを有することを許容する。
【0024】図7に示されるシステム全体は命令ROM
10および命令メモリ12を含むように理解されてもよ
く、両方ともアドレスバス8および命令バス4の間で作
動的に接続される。さらに、データメモリ14およびデ
ータ転送コントローラ16がアドレスバス8およびデー
タバス6の間で作動的に接続されるように示される。さ
らに、データ転送コントローラ16はまた、システムバ
ス18に信号を送り、かつシステムバス18から信号を
受取るように作動的に接続される。
【0025】今、図8を参照して、プロセッサ2のより
よい理解が得られるようにプロセッサ2のデータフロー
図が示される。
【0026】プロセッサ2は命令実行に対して4段階の
パイプラインを実現し、4段階は“取出し”、“デコー
ド”、“実行”および“書き戻し”である。プロセッサ
2の命令取出し装置20は命令を取出し、かつ命令をほ
かの機能装置に与える。装置20は命令先取りバッフ
ァ、分岐目標キャッシュおよびプログラムカウンタ装置
を組入れる。これらのサブユニットは以下で図9を参照
してさらに論じられるであろう。命令取出し装置20の
すべてのコンポーネントはプロセッサパイプラインの取
出し段階の間に動作する。
【0027】プロセッサ2はまた実行装置22を含む。
実行装置22は、レジスタファイル、アドレス装置、算
術/論理装置、フィールドシフト装置、優先付け装置
(prioritizer)および浮動小数点処理装置
を含む。これらのサブユニットは、命令取出し装置20
のサブユニットと同様に、また以下で図9を参照してさ
らに論じられる。レジスタファイルおよびアドレス装置
はパイプラインのデコード段階の間に動作する。算術/
論理装置、フィールドシフト装置および優先付け装置は
パイプラインの実行段階の間に動作する。レジスタファ
イルはまた書き戻し段階の間に動作する。
【0028】またさらに図8を参照して、プロセッサ2
はメモリ管理装置24を含むように理解されてもよい。
メモリ管理装置24は、すべての分岐、ロードおよびス
トアに対してアドレス変換およびメモリ保護機能を行な
う。装置24はパイプラインの実行段階の間で動作する
ので、それが発生する物理的アドレスは書き戻し段階の
始めに利用できる。
【0029】プロセッサ2における装置20、22およ
び24の相互接続は、それらのシステムバスとのインタ
フェースと同様にまた図8に示される。
【0030】今、図9を参照して、プロセッサ2のサブ
コンポーネントに注目するさらなる詳細が図で示され
る。先に述べられたように、命令取出し装置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を経てそこに伝送される。
【0032】今、図10を参照して、この発明の教示に
従って構成されたパイプライン化された浮動小数点処理
装置の様々なサブコンポーネントが今見られる。
【0033】図9を参照して先に論じられた様々なイン
タフェース点はこの図において同様に示されかつ表示さ
れ、すなわち、レジスタファイルからのオペランドはA
バス44およびBバス46を経て浮動小数点装置に送り
込まれ、結果が結果バス48を経て浮動小数点装置を出
発し、かつ命令は命令またはIバス50を経て浮動小数
点装置に伝送される。図10を特に参照して、浮動小数
点装置内でAバス、Bバスおよび結果バスはインタフェ
ース装置52に作動的に接続するように見られてもよい
が、Iバスはそこにおいてコントローラ54に作動的に
接続される。
【0034】処理に対する番号、すなわちAおよびBオ
ペランドが浮動小数点装置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を含む。これらのサブコンポーネントおよびその相互
作用のいくつかの非常に重要な局面は存在するが、しか
しながら、それらは読者が参照するよう促されるであろ
う関連事件において詳細に論じられる。
【0036】今、図11を参照して、この発明の教示に
従う基数−4先見ツリーの概略図が示される。この基数
−4先見ツリーは、先にさらに識別された関連事件書類
番号06940/0009において開示された加算器に
組入れることができ、かつそれから図10に示される浮
動小数点装置の分周器68、乗算器64および多機能装
置60のようなエレメントにさらに組入れることができ
るということが理解されるべきである。もちろん、この
基数−4先見ツリーは、先に参照された加算器と同様に
多くのほかのけたにおいても使用され得る。
【0037】図11に示されるツリーは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には示されないことに注目され
るべきである)。
【0039】今、図13、図14および図15を参照し
て、マンチェスタキャリチェインブロック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の遅延におけるキャリ
を獲得するということに感銘を与えられるであろう。
【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)高速
混合基数加算器に対して、しかしそれに制限されずにこ
れを理想的なキャリ予測ブロックにする。
【0042】中間キャリを計算するために、冗長セル、
たとえばブロック116が常に加えられてもよい。その
ようなセルは中間キャリ値が完了されてもよいようにツ
リーの残余からオフセットされる。図12において、ブ
ロック116はキャリ24および40を完了するために
用いられる。冗長セルの導入がさらなるゲート遅延を加
えないということが注目されるべきである。
【0043】別の変型において、第1論理レベルのすべ
てのブロックは図11および図12に示されるツリーか
ら削除されてもよく、かつビット伝播および生成は第2
レベルに直接送られてもよい。この新しい構成は2つの
ゲート遅延における16ビット加算に対するいかなるほ
かのキャリをも生じ得る。ゲート遅延の数を増加させる
ことなく、すべてのキャリを見出すためにさらなる冗長
セルの追加が用いられ得る。
【0044】この発明の重要な局面はマンチェスタキャ
リチェインブロック、たとえば図15に示されるブロッ
ク110に関連する。今当業者により認識されるであろ
うように、基本ツリーノードは実質的に結合された2つ
の別個の回路である。左側はマンチェスタキャリチェイ
ンであり、かつ右側はNANDゲートチェインである。
【0045】この発明の教示に従って、特殊キャリ先見
ツリーはいかなる基数からなってもよい。たとえば、所
与のノードの子の数を3だけに制限することによって基
数−3ツリーが構成されてもよい。この特許において説
明された同じ原理がまた適用されてもよいということが
当業者には理解でき得る。別の例として、8ツリーは各
ノードが8つの子を有するようにすることによって構成
されてもよい。この特許において教示された原理がまた
適用されるであろう。3ツリーはログベース3の性能を
有するであろうが、8ツリーはログベース8の性能を有
するであろう。もちろん、ログベース8のツリーは非常
にまばらなキャリの組を生じるであろうし、かつ非常に
大きいツリーノードを有するであろう。
【0046】この発明に従う回路が基本キャリチェイン
を高位基数ツリーに配列するということもまた今認識さ
れるべきである。
【0047】この回路は本質的に2進キャリ先見回路を
超えた改善をされたものである。この回路が改善された
ものであるという理由は、それが2進キャリ先見回路よ
り優れたロードおよび速度特性を有する高位基数技術を
組入れたところにある。この発明に従う回路はNゲート
遅延のログベース基数を有し、ここでNは加算の大きさ
であり、かつ基数は多数のツリーである。さらに、この
発明に従う回路は3つの単純なサブブロックのみを用い
る。また、中間キャリを見出す容易さのために、この回
路は改善されたものである。
【0048】当業者は、図11および図12に示された
回路が、iが1、2、3、・・・に等しい、4のi乗以
外の大きさのキャリ先見に対して容易に簡潔にされても
よいということを認めるべきである。そのようなスケー
リングが行なわれるにもかかわらず、図11および図1
2に示される回路はスケーリングされるときにほとんど
速度を失わないであろう。たとえば、64ビットのキャ
リ先見は3つのゲート遅延を必要とするであろうが、2
56ビットのキャリ先見は単に4つのゲート遅延を必要
とするだけであろう。
【0049】今、当業者はこの発明が2進キャリ先見回
路を超える改善を提供するということを完全に認めるで
あろう。この発明の教示に従う回路は比較的小さい電気
回路で短い時間のうちに大きい加算を行なうことの問題
を解決する。この発明に従う回路は過去のものよりも速
くかつ比較的小さい。それは、3つの単純サブブロック
を用いながら、ログベース4のNゲート遅延を有し、こ
こでNは加算の大きさである。この発明のほかの重要な
局面は前もって論じられた。
【0050】先に特に述べられたもののほかに多くの修
正および変更がこの発明の概念から外れることなくここ
で説明された構成技術においてなされてもよいというこ
とを当業者は認識するであろう。したがって、添付の特
許請求の範囲内でこの発明がここで特に説明されたもの
と別の方法で実施されてもよいということが認められる
であろう。
【図面の簡単な説明】
【図1】先行技術の構成を示す。
【図2】先行技術の構成を示す。
【図3】先行技術の構成を示す。
【図4】先行技術の構成を示す。
【図5】先行技術の構成を示す。
【図6】先行技術の構成を示す。
【図7】その部分にこの発明を組入れるシステムのブロ
ック図である。
【図8】図7に示されるプロセッサのブロック図であ
る。
【図9】図8のプロセッサのさらに詳細なブロック図で
ある。
【図10】その部分にこの発明を組入れる浮動小数点装
置のブロック図である。
【図11】この発明の教示に従う基数−4キャリ先見ツ
リーの概略図である。
【図12】この発明の教示に従う冗長セルを含む基数−
4キャリ先見ツリーの概略図である。
【図13】この発明の教示に従う修正キャリチェインの
概略図である。
【図14】この発明の教示に従うキャリインのために修
正されたキャリインのためのセルの概略図である。
【図15】この発明の教示に従うマンチェスタキャリチ
ェインブロックの概略図である。
【符号の説明】
2はプロセッサ、106、108、110、112およ
び114はマンチェスタキャリチェインノード、116
は冗長セル、40は浮動小数点装置である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 トーマス・ダブリュ・リンチ アメリカ合衆国、78722 テキサス州、オ ースティン、イースト・サーティセカン ド・ストリート、1717 (72)発明者 スティーブン・ディー・マキンタイア アメリカ合衆国、78748 テキサス州、オ ースティン、ウッドシャー・ドライブ、 9810

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数個のツリーノードを含み、前記ツリ
    ーノードの各々はキャリチェインもしくはその変型、お
    よび/またはNANDゲートチェインもしくはその変型
    を含み、 1つのノードがもう1つへの出力を与える少なくとも2
    つのツリーノードを含む、キャリ先見ツリー。
  2. 【請求項2】 少なくとも1つのツリーノードが3つま
    たはそれより多い子を有する、請求項1に記載のツリ
    ー。
  3. 【請求項3】 キャリを抽出するための手段をさらに備
    え、前記キャリを抽出する手段は冗長セルからなる、請
    求項1に記載のツリー。
  4. 【請求項4】 各ツリーノードは4つの子を有してもよ
    い、請求項1に記載のツリー。
JP3063391A 1990-04-02 1991-03-27 キャリ先見ツリー Pending JPH0773019A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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