| 【発明の名称】 |
Mビット競合遅延加算器及び動作方法 |
| 【発明者】 |
【氏名】ウィリアム イー. バッラチーノ
|
| 【要約】 |
【課題】2つの引数を迅速に加算することが可能な加算器回路を提供する。
【解決手段】本発明によれば、第一Mビット引数、第二Mビット引数、キャリィイン(CI)ビットを受取ることが可能なMビット加算器が提供される。該Mビット加算器はR個の行に配列されているM個の加算器セルを有しており、加算器セルからなる行のうちの第一の行における最小桁加算器セルは第一Mビット引数からの第一データビットAX及び第二Mビット引数からの第一データビットBXを受取り、且つ第一条件付きキャリィアウトビットCX(1)及び第二条件付きキャリィアウトビットCX(0)を発生する。CX(1)ビットは、第一行に先行する加算器セルからなる第二行からの行キャリィアウトビットが1であると仮定して計算され、且つCX(0)ビットは、第二行からの行キャリィアウトビットが0であると仮定して計算される。 |
【特許請求の範囲】
【請求項1】 第一Mビット引数と、第二Mビット引数と、キャリィイン(CI)ビットとを受取ることが可能なMビット加算器において、M個の加算器セルがR個の行に配列されており、前記加算器セルの行のうちの第一行内の最小桁加算器セルが前記第一Mビット引数から第一データビットAXと前記第二Mビット引数から第一データビットBXとを受取り且つ第一条件付きキャリィアウトビットCX(1)及び第二条件付きキャリィアウトビットCX(0)を発生し、前記CX(1)ビットは前記第一行に先行する加算器セルの第二行からの行キャリィアウトビットが1であることを仮定して計算され且つ前記CX(0)ビットが前記第二行からの前記行キャリィアウトビットが0であることを仮定して計算される、ことを特徴とするMビット加算器。 【請求項2】 請求項1において、前記最小桁加算器セルが第一条件付き和ビットSX(1)及び第二条件付き和ビットSX(0)を発生することを特徴とするMビット加算器。 【請求項3】 請求項2において、前記SX(1)ビットが前記第二行からの行キャリィアウトビットが1であることを仮定して計算され且つ前記SX(0)ビットが前記第二行からの前記行キャリィアウトビットが0であることを仮定して計算されることを特徴とするMビット加算器。 【請求項4】 請求項3において、前記行キャリィアウトビットが前記最小桁加算器セルによって出力されるべき前記SX(1)ビット及び前記SX(0)ビットのうちの1つを選択することを特徴とするMビット加算器。 【請求項5】 請求項4において、前記加算器セルの第一行が、更に、前記最小桁加算器セルへ接続されている第二加算器セルを有しており、前記第二加算器セルが前記第一Mビット引数から第二データビットAX+1及び前記第二Mビット引数から第二データビットBX+1を受取り且つ前記最小桁加算器セルから前記CX(1)ビット及び前記CX(0)ビットを受取ることを特徴とするMビット加算器。 【請求項6】 請求項5において、前記第二加算器セルが第一条件付きキャリィアウトビットCX+1(1)を発生し、前記CX+1(1)ビットは前記AX+1データビット、前記DX+1データビット、及び前記最小桁加算器セルからの前記CX(1)ビットから発生されることを特徴とするMビット加算器。 【請求項7】 請求項6において、前記第二加算器セルが第二条件付きキャリィアウトビットCX+1(0)を発生し、前記CX+1(0)ビットが前記AX+1データビット、前記DX+1データビット、及び前記最小桁加算器セルからの前記CX(0)ビットから発生されることを特徴とするMビット加算器。 【請求項8】 請求項7において、前記第二加算器セルが第一条件付き和ビットSX+1(1)を発生し、前記SX+1(1)ビットは前記AX+1データビット、前記BX+1データビット、及び前記最小桁加算器セルからの前記CX(1)ビットから発生されることを特徴とするMビット加算器。 【請求項9】 請求項8において、前記第二加算器セルが第二条件付き和ビットSX+1(0)を発生し、前記SX+1(0)ビットは前記AX+1データビット、前記BX+1データビット、及び前記最小桁加算器セルからの前記CX(0)ビットから発生されることを特徴とするMビット加算器。 【請求項10】 請求項9において、前記行キャリィアウトビットが前記第二加算器セルによって出力されるべき前記SX+1(1)ビット及び前記SX+1(0)ビットのうちの1つを選択することを特徴とするMビット加算器。 【請求項11】 請求項1において、前記加算器セルの第一行がN個の加算器セルを包含しており且つ前記第一行に先行する前記加算器セルの第二行がN個未満の加算器セルを包含していることを特徴とするMビット加算器。 【請求項12】 データプロセッサにおいて、N個の処理段を具備している命令実行パイプラインが設けられており、前記N個の処理段の各々は前記命令実行パイプラインによって実行中の未決の命令と関連している複数個の実行ステップのうちの1つを実行することが可能であり、前記N個の処理段のうちの少なくとも1つが第一Mビット引数と、第二Mビット引数と、キャリィイン(CI)ビットとを受取ることが可能なMビット加算器を有しており、前記Mビット加算器がR個の行に配列されているM個の加算器セルを有しており、前記加算器セルの行のうちの第一行における最小桁加算器セルが前記第一Mビット引数からの第一データビットAX及び前記第二Mビット引数からの第一データビットBXを受取り且つ第一条件付きキャリィアウトビットCX(1)及び第二条件付きキャリィアウトビットCX(0)を発生し、前記CX(1)ビットは前記第一行に先行する加算器セルの第二行からの行キャリィアウトビットが1であることを仮定して計算され且つ前記CX(0)ビットは前記第二行からの前記行キャリィアウトビットが0であることを仮定して計算される、ことを特徴とするデータプロセッサ。 【請求項13】 請求項12において、前記最小桁加算器セルが第一条件付き和ビットSX(1)及び第二条件付き和ビットSX(0)を発生することを特徴とするデータプロセッサ。 【請求項14】 請求項13において、前記SX(1)ビットが前記第二行からの前記行キャリィアウトビットが1であることを仮定して計算され且つ前記SX(0)ビットが前記第二行からの前記行キャリィアウトビットが0であることを仮定して計算されることを特徴とするデータプロセッサ。 【請求項15】 請求項14において、前記行キャリィアウトビットが前記最小桁加算器セルによって出力されるべき前記SX(1)ビット及び前記SX(0)ビットのうちの1つを選択することを特徴とするデータプロセッサ。 【請求項16】 請求項15において、前記加算器セルの第一行が、更に、前記最小桁加算器セルへ結合されている第二加算器セルを有しており、前記第二加算器セルが前記第一Mビット引数からの第二データビットAX+1及び前記第二Mビット引数からの第二データビットBX+1を受取り且つ前記最小桁加算器セルから前記CX(1)ビット及び前記CX(0)ビットを受取ることを特徴とするデータプロセッサ。 【請求項17】 請求項16において、前記第二加算器セルが第一条件付きキャリィアウトビットCX+1(1)を受取り、前記CX+1(1)ビットは前記AX+1データビット、前記BX+1データビット、及び前記最小桁加算器セルからの前記CX(1)から発生されることを特徴とするデータプロセッサ。 【請求項18】 請求項17において、前記第二加算器セルが第二条件付きキャリィアウトビットCX+1(0)を発生し、前記CX+1(0)ビットは前記AX+1データビット、前記BX+1データビット、及び前記最小桁加算器セルからの前記CX(0)ビットから発生されることを特徴とするデータプロセッサ。 【請求項19】 請求項18において、前記第二加算器セルが第一条件付き和ビットSX+1(1)を発生し、前記SX+1(1)ビットは前記AX+1データビット、前記BX+1データビット、及び前記最小桁加算器セルからの前記CX(1)ビットから発生されることを特徴とするデータプロセッサ。 【請求項20】 請求項19において、前記第二加算器セルは第二条件付き和ビットSX+1(0)を発生し、前記SX+1(0)ビットは前記AX+1データビット、前記BX+1データビット、及び前記最小桁加算器セルからの前記CX(0)ビットから発生されることを特徴とするデータプロセッサ。 【請求項21】 請求項20において、前記行キャリィアウトビットが前記第二加算器セルによって出力されるべき前記SX+1(1)ビット及び前記SX+1(0)ビットのうちの1つを選択することを特徴とするデータプロセッサ。 【請求項22】 請求項12において、前記加算器セルの第一行がN個の加算器セルを包含しており且つ前記第一行に先行する前記加算器セルの第二行がN個未満の加算器セルを包含していることを特徴とするデータプロセッサ。 【請求項23】 R個の行に配列されているM個の加算器セルを具備しているMビット加算器において第一Mビット引数と第二Mビット引数とを加算する方法において、前記加算器セルの行のうちの第一行における最小桁加算器セルにおいて前記第一Mビット引数から第一データビットAX及び前記第二Mビット引数から第一データビットBXを受取り、前記第一行に先行する加算器セルの第二行からの行キャリィアウトビットが1であると仮定して前記最小桁加算器セルにおいて第一条件付きキャリィアウトビットCX(1)を計算し、前記第二行からの前記行キャリィアウトビットが0であると仮定して前記最小桁加算器セルにおいて第二条件付きキャリィアウトビットCX(0)を計算し、前記第二行からの行キャリィアウトビットが1であると仮定して前記最小桁加算器セルにおいて第一条件付き和ビットSX(1)を計算し、前記第二行からの行キャリィアウトビットが0であると仮定して前記最小桁加算器セルにおいて第二条件付き和ビットSX(0)を計算し、前記CX(1)ビット及び前記CX(0)ビットを前記加算器セルの第一行における第二加算器セルへ伝播させ、前記第二行からの行キャリィアウトビットの値に従って前記最小桁加算器セルから出力されるべき前記SX(1)ビット及び前記SX(0)ビットのうちの1つを選択する、ことを特徴とする方法。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、大略、データプロセッサに関するものであって、更に詳細には、データプロセッサにおいて使用するピラミッド加算器としても知られているMビット競合遅延加算器に関するものである。 【0002】 【従来の技術】高性能コンピュータ及び通信装置に対する要求は、技術水準のデジタル信号プロセッサ(DSP)及び例えばx86をベースとしたマイクロプロセッサ等の汎用マイクロプロセッサが最小の時間の量で命令を実行することを必要とする。命令実行時間を減少させ、それによりプロセッサの処理能力を増加させるために多数の異なるアプローチが取られている。プロセッサの処理能力を増加させる1つの方法は、パイプラインアーキテクチャを使用することであり、その場合には、プロセッサがパイプラインを形成する別個の処理段に分割される。命令が基本的なステップに分解され、それらは組立ラインの態様で異なる段において実行される。 【0003】スーパーパイプラインはパイプラインにおいての複数個の命令の同時的処理を意味している。例えば、プロセッサが5個の段において各命令を実行し且つ各段がその機能を実施するために単一のクロックサイクルを必要とする場合には、パイプラインにおいて5個の別個の命令を同時的に処理することが可能であり、各クロックサイクル期間中に1個の命令の処理が完了される。従って、N段パイプラインアーキテクチャの命令処理能力は、理論的には、Nクロックサイクル毎に1個の命令を完了するに過ぎない非パイプライン型アーキテクチャの処理能力よりもN倍大きいものである。然しながら、パイプラインアーキテクチャ及びスーパーパイプライン処理によって与えられる速度の改良は、究極的には、パイプラインにおける個々の段が実行する速度によって制限される。従って、命令の各部分を実行するのに必要な時間を最小とさせることが重要である。 【0004】数学的演算は、しばしば、値を計算する場合、特に多数のビットを有している2個の引数の加算において実質的な時間遅延を発生する。例えば、2個の32ビット数又は2個の64ビット数の加算は、しばしば、実質的な時間的ペナルティを発生する。この遅延は、通常、和の長さにわたってのキャリィビットの伝播遅延に関連している。例えば、典型的な32ビット加算器はその入力として第一の32ビット引数と、第二の32ビット引数と、前の段からのキャリィインビットとを受取る場合がある。該32ビット加算器は32個のキャリィ和セルを有している場合があり、その場合には各セルは各引数から1個のビット及びより低い次数のセルからのキャリィビットを受取り且つ和ビット及びキャリィビットを発生する。例えば、5番目のキャリィ和セルは第一の32ビット引数からの5番目のビット、第二の32ビット引数からの5番目のビット、4番目のセルからのキャリィビットを受取る。然しながら、該32ビット加算器の出力は、該キャリィビットが32個のセル全てを介してリップル即ち通り抜けるまで正しいものとはならない。このことは、著しい時間遅延を発生させる。 【0005】従って、命令処理能力を最大とさせる改良したデータプロセッサに対する必要性が存在している。特に、多数のバイトを有する2個の引数を迅速に加算することが可能な改良した加算器回路に対する必要性が存在している。更に詳細には、2個の大きな引数を加算することによって発生されるキャリィリップル遅延を最小とさせる改良した加算器回路が必要とされている。 【0006】 【発明が解決しようとする課題】本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、処理能力を改善したデータプロセッサを提供することを目的とする。本発明の別の目的とするところは、多数のバイトを有する2個の引数を迅速に加算することが可能な加算器を提供することである。本発明の更に別の目的とすることは、2個の引数を加算することによって発生するキャリィリップル遅延を最小とさせる改良した加算器を提供することである。 【0007】 【課題を解決するための手段】上述した従来技術の問題を解決するために、本発明の主要な目的とするところは、第一のMビット引数と、第二のMビット引数と、キャリィイン(CI)ビットとを受取ることが可能なMビット加算器を提供することである。本発明の好適な実施形態によれば、該Mビット加算器はR個の行に配列されたM個の加算器セルを有しており、該加算器セルの行のうちの第一の行における最小桁加算器セルが第一Mビット引数からの第一データビットAX及び第二のMビット引数からの第一データビットBXを受取り且つ第一条件付けキャリィアウトビットCX(1)及び第二条件付きキャリィアウトビットCX(0)を発生し、該CX(1)ビットは該第一行に先行する加算器セルからなる第二行からの行キャリィアウトビットが1であることを仮定して計算され且つ該CX(0)ビットは該第二行からの行キャリィアウトビットが0であることを仮定して計算される。 【0008】本発明の1実施例によれば、該最小桁加算器セルは第一条件付き和ビットSX(1)及び第二条件付き和ビットSX(0)を発生する。 【0009】本発明の別の実施例によれば、該SX(1)ビットは該第二行からの行キャリィアウトビットが1であると仮定して計算され、且つ該SX(0)ビットは該第二行からの行キャリィアウトビットが0である仮定して計算される。 【0010】本発明の更に別の実施例によれば、該行キャリィアウトビットは該最小桁加算器セルによって出力されるべき該SX(1)ビット及び該SX(0)ビットのうちの1つを選択する。 【0011】本発明の更に別の実施例によれば、該加算器セルからなる第一行は、更に、該最小桁加算器セルへ結合されている第二加算器セルを有しており、該第二加算器セルは、該第一のMビット引数からの第二データビットAX+1及び該第二のMビット引数からの第二データビットBX+1を受取り且つ該最小桁加算器セルから該CX(1)ビット及び該CX(0)ビットを受取る。 【0012】本発明の更なる実施例によれば、該第二加算器セルは第一条件付きキャリィアウトビットCX+1(1)を発生し、該CX+1(1)ビットは該AX+1データビット、該BX+1データビット、及び該最小桁加算器セルからの該CX+1(1)ビットから発生される。 【0013】本発明の更に別の実施例によれば、該第二加算器セルは第二条件付きキャリィアウトビットCX+1(0)を発生し、該CX+1(0)ビットは該AX+1データビット、該BX+1データビット、及び該最小桁加算器セルからの該CX+1(0)ビットから発生される。 【0014】本発明の更に別の実施例によれば、該第二加算器セルは第一条件付き和ビットSX+1(1)を発生し、該SX+1(1)ビットは該AX+1データビット、該BX+1データビット、及び該最小桁加算器セルからの該CX(1)ビットから発生される。 【0015】本発明の1実施例においては、該第二加算器セルは第二条件付き和ビットSX+1(0)を発生し、該SX+1(0)ビットは該AX+1データビット、該BX+1データビット、及び該最小桁加算器セルからの該CX(0)ビットから発生される。 【0016】本発明の別の実施例においては、該行キャリィアウトビットは該第二加算器セルによって出力されるべき該SX+1(1)ビット及び該SX+1(0)ビットのうちの1つを選択する。 【0017】本発明の更に別の実施例においては、該加算器セルからなる第一行がN個の加算器セルを包含しており、且つ該第一行に先行する加算器セルからなる該第二行はN個未満の加算器セルを包含している。 【0018】前述した説明は、当業者が以下に続く本発明の詳細な説明をより良く理解することが可能であるように、本発明の特徴及び技術的利点について広義に概観したものである。本発明の付加的な特徴及び利点については以下に説明するが、それらも本発明の要旨を構成するものである。当業者は、本発明と同一の目的を達成するために、修正を行うか又はその他の構成を設計する基礎として本明細書に記載した概念及び特定の実施例を容易に使用することが可能であることは明らかである。当業者は、又、このような均等な構成は本発明の技術的範囲を逸脱するものでないことを理解することが可能である。 【0019】本発明の詳細な説明を行う前に、本明細書において使用する用語についての定義及び説明を行うことが有益的であると考える。例えば、「有する」及び「含む」及びそれらに類似した意味の用語は、限定なしで包含していることを意味しており、「又は」の用語は及び/又はの意味を包含しており、「関連する」という用語は、含んでいること、含まれていること、相互接続していること、包含していること、包含されていること、接続していること、結合していること、通信可能であること、共同すること、インターリーブすること、並置していること、近接していること、結ばれていること、持っていること、特性を持っていること、等を意味する場合があり、且つ「制御器」という用語は少なくとも1つの動作を制御する任意の装置、システム又はその一部であることを意味し、且つこのような装置はハードウエア、ファームウエア、又はソフトウエア、又はそれらの少なくとも2つの何等かの組合わせとすることが可能である。更に注意すべきことであるが、いずれか特定の制御器に関連する機能は集中化させるか、又は局所的又は遠隔的に分散させたものとすることが可能である。 【0020】 【発明の実施の形態】図1は例示的な処理システム、即ちパソコン(PC)100を例示しており、それは本発明の原理に基づくMビット競合遅延加算器を有している。パソコン100は着脱自在な(即ち、フロッピィ)ディスクドライブ(FDD)102、ハードディスクドライブ(HDD)103、モニタ104、キーボード105、プロセッサ(CPU)106、メインメモリ107、マウス108等のポインティングデバイスを有している。モニタ104、キーボード105、マウス108はその他の入力/出力(I/O)装置と置換させるか又は結合させることが可能である。着脱自在なディスクドライブ102は着脱自在なフロッピィディスケットを読取且つ書込を行うことが行うことが可能である。ハードディスクドライブ105はアプリケーションプログラム及びデータの格納及び検索に対して高速なアクセスを与える。 【0021】キーボード105及びマウス108は入力/出力(I/O)インターフェース(IF)110を介してPC100へ結合されている。モニタ104はビデオ/オーディオインターフェース(IF)112を介してPC100へ結合されている。フロッピィディスクドライブ102、ハードディスクドライブ103、プロセッサ106、メインメモリ107、I/Oインターフェース110、ビデオ/オーディオインターフェース112を包含するPC100の内部コンポーネントは通信バス115へ結合されており且つそれを介して通信を行う。 【0022】本発明の例示的な実施例においては、メインメモリ107は例えばダイナミックランダムアクセスメモリ(RAM)等の揮発性の記憶装置を有している。プロセッサ106は、レベル1(L1)キャッシュ及びレベル2(L2)キャッシュを包含するオンボードの2レベルキャッシュシステムを有することが可能である。この2レベルキャッシュは、小型の高速のキャッシュ(L1キャッシュ)がより低速でより大型のキャッシュ(L2キャッシュ)ヘ接続されているシステムである。プロセッサ106の中央処理装置(CPU)コア論理がメインメモリ107におけるメモリ位置からデータを読取るか又はそこへデータを書込む場合に、該キャッシュシステムは、最初に、その位置に属するデータがL1キャッシュ内にあるか否かを判別するためにテストを行う。そのデータがL1キャッシュ内に存在している場合には、そのデータがL1キャッシュによって迅速に供給されるか又はアップデートされる。そのデータがL1キャッシュ内に存在しない場合には、L1キャッシュ読取「ミス」又はL1キャッシュ書込「ミス」が発生する。 【0023】次いで、L2キャッシュによってプロセッサ106のCPUコア論理に対してそのデータが供給されるか又はアップデートされる。L1キャッシュ読取ミスの場合には、要求されたデータを包含しているラインもL2キャッシュからL1キャッシュへ転送され、従ってプロセッサ106が次にそのデータへアクセスする場合にそのデータをより迅速に供給することが可能である。このことはL1キャッシュラインフィルとして知られている。そのデータがL2キャッシュ内にも存在しない場合には、L2キャッシュミスが発生し、且つ要求されたデータを包含するラインがメインメモリ107からフェッチされ、次いで、そのデータが次に要求された場合により高速のアクセスを与えるためにL2キャッシュ内にロードされる。このことはL2キャッシュラインフィルとして知られている。 【0024】図2は本発明の1実施例に基づく例示的なプロセッサ106をより詳細に示している。プロセッサ106は、命令フェッチ(IF)段205、デコード段210、オペランドフェッチ段215、実行段220、ライトバック段225を有する命令パイプラインを包含している。プロセッサ106は、更に、レジスタスタック230、命令(INSTR)キャッシュ235、データキャッシュ240を有している。 【0025】プロセッサ106は、命令をフェッチし且つ解釈し、データを検索し、命令を実行し、結果を格納することが可能な中央処理装置(CPU)である。例示した命令パイプラインは幾つかの異なる動作を同時的に実行することが可能なメカニズムである。パイプラインは各主要なタスクに対する処理ステップを幾つかの個別的な処理フェーズへ分解することによってこのことを行い、各処理フェーズは別個のパイプライン段によって実行される。各タスクは、その実行を完了するために、各処理フェーズ、従って各パイプライン段を介して逐次的に通過せねばならない。 【0026】命令フェッチ段205は命令キャッシュ235から実行すべき命令をフェッチし且つフェッチした命令を命令フェッチバッファ(IFB)内に格納する。デコード段210によってIFBから取られた命令は高度にコンパクトな形式にエンコードされている。デコード段210は該命令をその後のパイプライン段による実行のために直接的に使用することが可能であるより大きな組の信号へデコードする。オペランドフェッチ段215はメモリから又はレジスタスタック230からオペランドをフェッチする。実行段220はオペランドフェッチ段215によってフェッチされたオペランドに関して実際の処理(例えば、加算、乗算、除算等)を実施し且つその結果を発生する。ライトバック段225は実行段220によって発生された結果をデータキャッシュ240内又はレジスタスタック230におけるレジスタにおける1つの中に書込む。 【0027】実行段220は本発明の原理に基づく1個又はそれ以上のMビットレースディレイ即ち競合遅延加算器(即ちピラミッド加算器)を有することが可能である。Mビット競合遅延加算器は複数個の加算器セルからなるR個の行を有しており、各行は、通常、先行する(即ち、より低い次数の)行よりも1個多い加算器セルを有している。従って、最大の行から最小の行へ各行におけるセル数は、一般的な形式、即ちN,N−1,N−2,N−3,...,N−p+1,N−p,Kを有している。最大行はN個の加算器セルを包含しており、2番目に大きな行はN−1個の加算器セルを包含しており、以下同様である。最も小さな行はK個のセルを包含しており、それは1個を超えるセルだけ2番目に小さな行(即ち、N−p)よりも小さいものとすることが可能である。何故ならば、Mビット競合遅延加算器の加算器セルの総数Mが連続する計数の和に正確に等しいという保証は存在しないからである(即ち、Mは1+2+3+...+(N−1)+Nと等しくない場合がある)。 【0028】1例として、M=32である場合には、32ビット競合遅延加算器は6個の行(即ち、行0、行1、行2、行3、行4、行5)に配列された32個の加算器セルを有しており、夫々、2個、4個、5個、6個、7個、8個の加算器セルを包含している。この場合には、N=8、(N−p)=4、K=2である。別の例示的な実施例においては、M=64である場合には、64ビット競合遅延加算器は10個の行(即ち、行0乃至行9)に配列された64個の加算器セルを有しており、夫々、1個、3個、4個、5個、6個、7個、8個、9個、10個、11個の加算器セルを包含している。この場合には、N=11、(N−p)=3、K=1である。 【0029】注意すべきことであるが、別の実施例においては、64ビット競合遅延加算器は8個の行(即ち、行0乃至行7)に配列された64個の加算器セルを有することが可能であり、夫々、1個、6個、7個、8個、9個、10個、11個、12個の加算器セルを包含している。この場合には、N=12、(N−p)=6、K=1である。然しながら、以下に詳細に説明するように、Mビット競合遅延加算器のキャリィリップル遅延(従って、その速度)は、最も長い行の長さによって決定される。N=12の最も長い行を有している64ビット競合遅延加算器はN=11の最も長い行を有している64ビット競合遅延加算器よりもより長い遅延を有している。従って、Mビット競合遅延加算器において最も長い行の長さを最小とさせることが重要である。 【0030】図3は本発明の1実施例に基づくプロセッサ106における例示的な32ビット競合遅延加算器300のアーキテクチャを例示した論理的ブロック図である。32ビット競合遅延加算器300は65個の入力と33個の出力とを有している。これら65個の入力は第一の32ビット引数(A0乃至A31)、第二の32ビット引数(B0乃至B31)、存在する場合に、前の段からのキャリィイン(CI)ビットを包含している。33個の出力は32ビット和(S0乃至S31)及び、存在する場合に、次の段へのキャリィアウト(COUT)ビットを包含している。入力ピンと32個の加算器セルとの間及び出力ピンと32個の加算器セルとの間の物理的接続は、32ビット競合遅延加算器300の動作をより明確に説明するために図示していない。 【0031】2つの32ビット入力がC0乃至C31の符号を付けた32個の加算器セルによって加算される。最小桁加算器セル、即ちセル0(C0)及び最大桁加算器セル、即ちセル31(C31)の拡大図も示されている。行0はセル0及びセル1を有している。行1はセル2、セル3、セル4、セル5を有している。行2はセル6乃至セル10を有している。行3はセル11乃至セル16を有している。行4はセル17乃至セル23を有している。最後に、行5はセル24乃至セル31を有している。 【0032】各行はキャリィアウトビットを発生し、それは次のより高い行へのキャリィインビットである。行0は前の加算器段からの32ビット競合遅延加算器300のCIビットを受取る。行0からのキャリィアウト0ビットは行1に対するキャリィイン1ビットである。行1からのキャリィアウト1ビットは行2へのキャリンイン2ビットである。行2からのキャリィアウト2ビットは行3に対するキャリンイン3ビットである。行3からのキャリィアウト3ビットは行4に対するキャリィイン4ビットである。行4からのキャリィアウト4ビットは行5に対するキャリィ5ビットである。行5からのキャリィアウト5ビットは32ビット競合遅延加算器300からのCOUTビットを発生し、それは次の加算器段へ送られる。 【0033】本発明の原理によれば、32ビット競合遅延加算器300における32個の加算器セルの各々は、実際には、2個の和ビット及び2個のキャリィビットを計算するデュアル(二重)加算器である。1個の和ビット及び1個のキャリィビットが、前の行からのキャリィビットが論理0であったものとの仮定に基づいて計算される。他方の和ビット及び他方のキャリィビットは、前の段からのキャリィビットが論理1であったものとの仮定に基づいて計算される。各行のスタートにおけるセル(C0,C2,C6,C11,C17,C24)は、2個の和ビット及び2個のキャリィビットを発生し且つ該2個のキャリィビットをその行内における次のより高いセルへパスすることによって処理を開始する。これら2つのキャリィビットが各行における加算器セルを介してリップル即ち通過し且つ各行の終りにおける行マルチプレクサへ出力される。前の行からのキャリィビットは各加算器セル内のマルチプレクサを制御し、それはS0乃至S31へ出力されるべき正しい和ビットを選択する。前の行からのキャリィビットも次のより高い行へ出力されるべき正しいキャリィビットを選択するために各行の終りにおける行マルチプレクサを制御する。 【0034】拡大して示したセル0は2個の入力、即ちA0及びB0を受取る。セル0は2つの和ビット、即ちS0(0)及びS0(1)、及び2つのキャリィビット、即ちC0(0)及びC0(1)を発生する。S0(0)ビットは、キャリィイン0(即ち、CI)が0であったと仮定した場合のA0及びB0の和である。S0(1)ビットは、キャリィイン0(即ち、CI)が1であったと仮定した場合のA0及びB0の和である。同様に、C0(0)ビットは、キャリィイン0が0であったと仮定した場合のA0+B0のキャリィアウトであり、且つC0(1)ビットは、キャリィイン0が1であったと仮定した場合のA0+B0のキャリィアウトである。内部マルチプレクサが32ビット競合遅延カウンタ300のS0出力ピンへ出力されるべきS0(0)及びS0(1)のうちの1つのみを選択する。然しながら、C0(0)及びC0(1)の両方が行0における次の加算器セル、即ち、セル1(C1)ヘ出力される。 【0035】セル1は外部入力A1及びB1及びセル0からの2つのキャリィビット、即ちC0(0)及びC0(1)を受取る。セル0は2つの和ビット、即ちS1(0)及びS1(1)、及び2つのキャリィビット、即ちC1(0)及びC1(1)を発生する。S1(0)ビットはA1,B1,C0(0)の和である(即ち、キャリィイン0が0であったと仮定している)。S1(1)ビットはA1,B1,C0(1)の和である(即ち、キャリィイン0が1であったと仮定している)。C1(0)ビットはA1+B1+C0(0)のキャリィアウトであり、且つC1(1)ビットはA1+B1+C0(1)のキャリィアウトである。内部マルチプレクサが32ビット競合遅延遅延加算器300のS1出力ピンへ出力されるべきS1(0)及びS1(1)のうちの1つのみを選択する。然しながら、C1(0)及びC1(1)の両方が行0マルチプレクサ(MUX)ヘ出力される。 【0036】CI(即ち、キャリィイン0)は行0MUXを制御する。CI=0か又はCI=1のいずれであるかに依存して、行0MUXはC1(0)か又はC1(1)のいずれかを行0からのキャリィアウト(即ちキャリィアウト0)に選択する。図3において、行0における左側に向いた矢印は、出力ピンへ送られるべき正しい和ビット(S0及びS1)を選択するために行0における全ての加算器セル(セル0及びセル1)ヘキャリィイン0ビットが適用されることを表わしている。行0における右側に向いた矢印は、行0MUXへ適用されるC1(0)及びC1(1)キャリィビットを発生するために行0におけるセル0及びセル1を介してデュアル即ち二重のキャリィビットがリップル即ち通過する方向を表している。 【0037】行1は、行0において発生するデュアル加算処理と同様なデュアル加算処理を実行する。セル2はセル0と同様である。セル2は2つの入力、即ちA2及びB2を受取る。セル2は2つの和ビット、即ちS2(0)及びS2(1)、及び2つのキャリィビット、即ちC2(0)及びC2(1)を発生する。S2(0)ビットは、キャリンイン1(即ち、キャリィアウト0)が0であったものと仮定した場合のA2及びB2の和である。S2(1)ビットは、キャリィイン1(即ち、キャリィアウト0)が1であったものと仮定した場合のA2及びB2の和である。同様に、C2(0)ビットは、キャリィイン1が0であったと仮定した場合のA2+B2のキャリィアウトであり、且つC2(1)ビットは、キャリィイン1が1であったと仮定した場合のA2+B2のキャリィアウトである。内部マルチプレクサが32ビット競合遅延加算器300のS2の出力ピンへ出力されるべきS2(0)及びS2(1)のうちの1つのみを選択する。然しながら、C2(0)及びC2(1)の両方が行1における次の加算器セル、即ちセル3(C3)ヘ出力される。 【0038】セル3は外部入力A3及びB3及びセル2からの2つのキャリィビット、即ちC2(0)及びC2(1)を受取る。セル3は2つの和ビット、即ちS3(0)及びS3(1)、及び2つのキャリィビット、即ちC3(0)及びC3(1)を発生する。S3(0)ビットはA3,B3,C2(0)の和である(即ち、キャリィイン1が0であったと仮定している)。S3(1)ビットはA3,B3,C2(1)の和である(即ち、キャリィイン1が1であったと仮定している)。C3(0)ビットはA3+B3+C2(0)のキャリィアウトであり、且つC3(1)ビットはA3+B3+C2(1)のキャリィアウトである。内部マルチプレクサが32ビット競合遅延加算器300のS3出力ピンへ出力されるべきS3(0)及びS3(1)のうちの1つのみを選択する。然しながらC3(0)及びC3(1)の両方が行1における次の加算器セル、即ちセル4(C4)ヘ出力される。 【0039】セル4はセル3と同様である。セル4は外部入力A4及びB4及びセル3からの2つのキャリィビット、即ちC3(0)及びC3(1)を受取る。セル4は2つの和ビット、即ちS4(0)及びS4(1)、及び2つのキャリィビット、即ちC4(0)及びC4(1)を発生する。S4(0)ビットはA4、B4、C3(0)の和である。S4(1)ビットはA4,B4,C3(1)の和である。C4(0)ビットはA4+B4+C3(0)のキャリィアウトであり、且つC4(1)ビットはA4+B4+C3(1)のキャリィアウトである。内部マルチプレクサが32ビット競合遅延加算器300のS4出力ピンへ出力されるべきS4(0)及びS4(1)のうちの1つのみを選択する。然しながら、C4(0)及びC4(1)の両方が行1における次の加算器セル、即ちセル5(C5)ヘ出力される。 【0040】セル5はセル3及びセル4と同様である。セル5は外部入力A5及びB5及びセル4からの2つのキャリィビット、即ちC4(0)及びC4(1)を受取る。セル5は2つの和ビット、即ちS5(0)及びS5(1)、及び2つのキャリィビット、即ちC5(0)及びC5(1)を発生する。S5(0)ビットはA5,B5,C4(0)の和である。S5(1)ビットはA5,B5,C4(1)の和である。C5(0)ビットはA5+B5+C4(0)のキャリィアウトであり、且つC5(1)ビットはA5+B5+C4(1)のキャリィアウトである。内部マルチプレクサが32ビット競合遅延加算器300のS5出力ピンへ出力されるべきS5(0)及びS5(1)のうちの1つのみを選択する。然しながら、C5(0)及びC5(1)の両方が行1マルチプレクサ(MUX)ヘ出力される。 【0041】キャリィイン1は行1MUXを制御する。キャリィイン1=0であるか又はキャリィイン1=1であるかに依存して、行1MUXは行1からのキャリィアウト(即ちキャリィアウト1)としてC5(0)か又はC5(1)を選択する。図3において、行1における左側に向いた矢印は、出力ピンへ送られるべき正しい和ビット(S2,S3,S4,S5)を選択するために行1における全ての加算器セル(セル2乃至セル5)ヘキャリィイン1ビットが印加されることを表わす。行1における右側に向いた矢印は、行1MUXへ印加されるC5(0)及びC5(1)キャリィビットを発生するために行1におけるセル2、セル3、セル4、セル5を介してデュアル即ち2つのキャリィビットがリップル即ち通過する方向を表している。 【0042】行2、行3、行4、行5は行0及び行1と同様の態様で動作する。説明の便宜上、行2、行3、行4、行5の動作についてはこの時点において詳細な説明は割愛する。 【0043】全ての行において、最初の加算器セル(即ち、C0,C2,C6,C11,C17,C24)は2つの入力、即ちAx及びBxを受取り、且つ前の行からのキャリィインビットが0であったと仮定して第一和ビットSx(0)及び第一キャリィビットCx(0)及び、前の行からのキャリィンビットが1であったと仮定して第二和ビットSx(1)及び第二キャリィビットCx(1)を発生する。 【0044】全ての行において、第一加算器セルの後の各加算器セルは2つの外部入力Ax及びBx、及び同一の行における前の加算器セルからの2つの内部入力Cx−1(0)及びCx−1(1)を受取る。第一加算器セルの後の各加算器セルは、前の加算器セルからのCx−1(0)ビットを使用して、第一和ビットSx(0)及び第一キャリィビットCx(0)を発生し、且つ前の加算器セルからのCx−1(1)ビットを使用して、第二和ビットSx(1)及び第二キャリィビットCx(1)を発生する。各行における最後の加算器セルはその2つのキャリィビットCx(0)及びCx(1)をその行の終りにおける行マルチプレクサへ送る。次いで、前の行からのキャリィインビットが次続の行へ送られるべき正しいキャリィアウトビットを選択する。 【0045】各行は次に続く行よりも一層短いので、各行からのキャリィアウトビットは次に続く行における最後の加算器セルがその2つのキャリィビットCx(0)及びC(1)を計算する前に、次に続く行へのキャリィインビットとして使用可能となる。従って、行からのキャリィアウトビットは、デュアル即ち2つのキャリィビットが各行における加算器セルを介してリップル即ち通過するよりも速く、行マルチプレクサを介して上方へリップル即ち通過する。 【0046】例えば、時間t1において、加算器セルC0,C2,C6,C11,C17,C24は、初期的な組のキャリィアウトビット及びキャリィインビットの各場合(即ち、1又は0)に対する和を計算している。セルC0,C2,C6,C11,C17,C24からのデュアルキャリィアウトビットはセルC1,C3,C7,C12,C13,C25へ横方向に伝播する。 【0047】時間t2において、加算器セルC1,C3,C7,C12,C18,C25は別の組のキャリィアウトビット及びキャリィインビットの各場合(即ち、1又は0)に対する和を計算する。この時点において、行0は完了しており且つCIは行0に対するキャリィアウト0(即ち、行1に対するキャリィイン1)としてC1からのキャリィアウトビットC1(0)又はC1(1)のうちの1つを選択する。セルC3,C7,C12,C18,C25からのデュアルのキャリィアウトビットはセルC4,C8,C13,C19,C26へ横方向に伝播する。 【0048】時間t3において、加算器セルC4,C8,C13,C19,C26は別の組のキャリィアウトビット及びキャリィインビットの各場合(即ち、1又は0)に対する和を計算する。セルC4,C8,C13,C19,C26からのデュアルキャリィアウトビットはセルC5,C9,C14,C20,C27ヘ横方向に伝播する。時間t4において、セルC5,C9,C14,C20,C27は別の組のキャリィアウトビット及びキャリィインビットの各場合(即ち、1又は0)に対する和を計算する。この時点において、行1は完了しており且つキャリィイン1は行1に対するキャリィアウト1(即ち、行2に対するキャリィイン2)としてC5からのキャリィアウトビットC5(0)又はC5(1)のうちの1つを選択する。セルC9,C14,C20,C27からのデュアルキャリィアウトビットはセルC10,C15,C21,C28へ横方向に伝播する。 【0049】時間t5において、加算器セルC10,C15,C21,C28が別の組のキャリィアウトビット及びキャリィインビットの各場合(即ち、1又は0)に対する和を計算する。この時点において、行2は完了しており且つキャリィイン2は行2に対するキャリィアウト2(即ち、行3に対するキャリィイン3)としてC10からのキャリィアウトビットC10(0)又はC10(1)のうちの1つを選択する。セルC15,C21,C28からのデュアルキャリィアウトビットはセルC16,C22,C29へ横方向に伝播する。 【0050】時間t6において、加算器セルC16,C22,C29は別の組のキャリィアウトビット及びキャリィインビットの各場合(即ち、1又は0)に対する和を計算する。この時点において、行3は完了しており且つキャインイン3は行3に対するキャリィアウト3(即ち、行4に対するキャリィイン4)としてC16からのキャリィアウトビットC16(0)又はC16(1)のうちの1つを選択する。セルC22,C29からのデュアルキャリィアウトビットはセルC23,C30へ横方向に伝播する。 【0051】時間t7において、加算器セルC23,C30は別の組のキャリィアウトビット及びキャリィインビットの各場合(即ち、1又は0)に対する和を計算する。この時点において、行4は完了しており且つキャリィイン4は行4に対するキャリィアウト4(即ち、行5に対するキャリィイン5)としてC23からのキャリィアウトビットC23(0)又はC23(1)のうちの1つを選択する。セルC30からのデュアルキャリィアウトビットはセルC31へ横方向に伝播する。 【0052】時間t8において、加算器セルC31は最終的なキャリィアウトビット及びキャリィインビットの各場合(即ち、1又は0)に対する和を計算する。この時点において、行5は完了しており且つキャリィイン5は行5に対するキャリィアウト5(即ち、32ビット競合遅延カウンタ300に対するCOUT)としてC31からのキャリィアウトビットC31(0)又はC31(1)のうちの1つを選択する。 【0053】32ビット競合遅延加算器300の独特のアーキテクチャは、32ビット加算の遅延時間を8ビット加算の遅延時間へ減少させている。32ビット競合遅延加算器300の遅延は行5における8個の加算器セルのキャリィリップル遅延+行5MUXの伝播遅延と等しい。これは従来の32ビット加算器のリップル遅延と比較して著しい改良である。 【0054】図4は本発明の1実施例に基づく例示的な32ビット競合遅延加算器300における加算器セルの配列を例示した物理的なレイアウト図である。32ビット競合遅延加算器300によって占有される集積回路のスペースを最小とさせるために、行1−5の各々における最初のセル(即ち、C2,C6,C11,C17,C24)はその下側の行の終りに移動されている。例えば、セル2は行0の終わりに移動されており、セル6は行1の終わりに移動されており、以下同様である。行1−5の各々はL形状とされている。然しながら、この新しい物理的レイアウトは、図3において上述したように、32ビット競合遅延加算器300の機能的な動作に影響を与えるものではない。換言すると、セル2からのデュアルキャリィビット、即ちC2(0)及びC2(1)は、未だに、セル3へ伝播し、セル6からのデュアルキャリィビット、即ちC6(0)及びC6(1)は、未だに、セル7へ伝播し、以下同様である。 【0055】更に、32ビット競合遅延加算器300における加算器セルの各々はスタート(START)セルか、ポジティブ(POS)セルか、又はネガティブ(NEG)セルのうちの1つとして識別されている。STARTセル、POSセル、及びNEGセルの用語は、32ビット競合遅延加算器300においては3つのタイプの加算器セルが存在している事実を表わしている。各行における加算器セルを介しての時間がクリチカル即ち臨界的なデータ経路はデュアルキャリィ経路、即ちCx(0)及びCx(1)である。以下の説明から理解されるように、各加算器セルは次のセルへデュアルキャリィビットを伝播させるパスゲート(即ちスイッチ)を包含している。各パスゲートはキャリィ信号を減衰させ、従って2個又は3個のパスゲートの後に、キャリィ信号は不正確に読取られる場合がある。このことに対する典型的な解決方法は、キャリィ信号をブーストさせるために各セル内にバッファを付加することである。 【0056】該バッファは、典型的に、直列した一対のインバータゲートである。然しながら、このことは時間的にクリチカルなデータ経路内に加算器セル当たり2個のゲート遅延を付加することとなる。8個の加算器セルを有している行5においては、このことは約16個のインバータゲート遅延を付加することとなる。この問題を解消するために、本発明は該バッファゲートを1個の加算器セルにおける第一インバータと次に続く加算器セルにおける第二インバータとに分割している。先行する加算器セルからの正論理デュアルキャリィインビットを受取り且つそれらを負論理デュアルキャリィアウトビットへ反転させる加算器セルはNEGセルと呼称される。先行する加算器セルから負論理デュアルキャリィインビットを受取り且つそれらを正論理デュアルキャリィアウトビットへ反転させる加算器セルはPOSセルと呼称される。 【0057】各行における最初のセルはスタート(START)セル(即ち、C0,C2,C6,C11,C17,C24)である。スタートセルの全ては負論理デュアルキャリィアウトビットを発生する。各行における偶数番目のセルの位置はPOSセルである。従って、各行における2番目のセル(即ち、C1,C3,C7,C12,C18,C25)はPOSセルであり、各行における4番目のセル(即ち、C5,C9,C14,C20,C27)はPOSセルであり、各行における6番目のセル(即ち、C16,C22,C29)はPOSセルであり、且つ各行における8番目のセル(即ち、C31)はPOSセルである。 【0058】これと対応して、各行における奇数番目のセルの位置はNEGセル(スタートセルである最初のセルをのぞく)である。従って、各行における3番目のセル(即ち、C4,C8,C13,C19,C26)はNEGセルであり、各行における5番目のセル(即ち、C10,C15,C21,C28)はNEGセルであり、各行における7番目のセル(即ち、C23,C30)はNEGセルである。 【0059】入力ピンと出力ピンとの間に正論理を維持するためには各行における反転総数は偶数でなければならない。幾つかの行は偶数の加算器セル(及び反転)を有しており且つ幾つかは奇数の加算器セル(及び反転)を有しているので、行マルチプレクサは補償を行うために反転用マルチプレクサか又は非反転用マルチプレクサとすることが可能である。行0においては、第一反転がセル0(スタートセル)において発生し且つ第二反転はセル1(POSセル)において発生する。これは偶数個の反転であるので、行0MUXは非反転(NINV)である。 【0060】行1においては、第一反転がセル2(スタートセル)において発生し、第二反転がセル3(POSセル)において発生し、第三反転がセル4(NEGセル)において発生し、且つ第四反転がセル5(POSセル)において発生する。これも偶数個の反転であるので、行1MUXは非反転(NINV)である。この論理に従って、行2MUXは反転(INV)であり、行3MUXは非反転(NINV)であり、行4MUXは反転(INV)であり、行5MUXは非反転(NINV)であることを理解することが可能である。 【0061】図5−7は本発明の1実施例に基づく例示的な32ビット競合遅延加算器300における行0、行1、行2における反転論理をより詳細に例示した概略図である。図5−7において、信号の名称の終わりに使用した文字Nは負論理(即ちアクティブ低信号)を表わしている。信号の名前の終わりに文字Nがない場合には、その信号は正論理(即ちアクティブ高信号)である。 【0062】図5−7に示されるように、各スタートセル(即ち、図5におけるC0、図6におけるC2、図7におけるC6)は3個の入力(A,B,CI)及び3個の出力(S,COUT0N,COUT1N)を有している。引数ビットA及びBはその加算器セルに対するA0−A31及びB0−B31における対応するビットへ結合される。和ビットSはS0−S31における対応するビットへ結合される。CIはその行に対するキャリィインビットを受取る。CI入力はスタートセルによって発生される2個の内部和ビットのうちの1つを選択する各スタートセルにおける内部マルチプレクサを制御する。CI入力はデュアルキャリィアウトビットの値に影響をあたえるものではない。各スタートセルからのデュアルキャリィアウトビット、即ちCOUT0N及びCOUNT1Nは負論理信号である。COUT0Nは、その行に対するキャリィインが論理0であったことを仮定するキャリィアウトビットである。COUT1Nは、その行に対するキャリィインが論理1であったことを仮定するキャリィアウトビットである。 【0063】図5−7に示されるように、各POSセル(即ち、図5におけるC1、図6におけるC3及びC5、図7におけるC7及びC9)は5個の入力(A,B,CI,CIN0N,CIN1N)及び3個の出力(S,COUT0,COUT1)を有している。引数ビットA及びBはその加算器セルに対するA0−A31及びB0−B31における対応するビットへ結合される。和ビットSはS0−S31における対応するビットへ結合される。CIはその行に対するキャリィインビットを受取る。CI入力は、POSセルによって発生される2個の内部和ビットのうちの1つを選択する各POSセルにおける内部マルチプレクサを制御する。CI入力はデュアルキャリィアウトビットの値に影響を与えるものではない。各POSセルからのデュアルキャリィアウトビット、即ちCOUT0及びCOUT1は正論理信号である。COUT0は、その行に対するキャリィインが論理0であったことを仮定するキャリィアウトビットである。COUT1は、その行に対するキャリィインが論理1であったことを仮定するキャリィアウトビットである。各POSセルに対するデュアルキャリィインビット、即ちCIN0N及びCIN1Nは負論理信号である。何故ならば、POSセルは、常に、スタートセル又はNEGセルの出力へ結合されているからである。CIN0Nは、その行に対するキャリィインが論理0であったことを仮定するキャリィインビットである。CIN1Nは、その行に対するキャリィインが論理1であったことを仮定するキャリィインビットである。 【0064】図6及び7に示されるように、各NEGセル(即ち、図6におけるC4、図7におけるC8及びC10)は5個の入力(A,B,CI,CIN0,CIN1)及び3個の出力(S,COUT0N,COUT1N)を有している。引数ビットA及びBはその加算器セルに対するA0−A31及びB0−B31における対応するビットへ結合される。和ビットSはS0−S31における対応するビットヘ結合される。CIはその行に対するキャリィインビットを受取る。CI入力は、NEGセルによって発生される2個の内部和ビットのうちの1つを選択する各NEGセルにおける内部マルチプレクサを制御する。CI入力はデュアルキャリィアウトビットの値に影響を与えるものではない。各NEGセルからのデュアルキャリィアウトビット、即ちCOUT0N及びCOUNT1Nは負論理信号である。COUT0Nは、その行に対するキャリィインが論理0であったことを仮定するキャリィアウトビットである。COUT1Nは、その行に対するキャリィインが論理1であったことを仮定するキャリィアウトビットである。各NEGセルに対するデュアルキャリィインビット、即ちCIN0及びCIN1は正論理信号である。何故ならば、NEGセルは、常に、POSセルの出力へ結合されているからである。CIN0は、その行に対するキャリィインが論理0であったことを仮定するキャリィインビットである。CIN1は、その行に対するキャリィインが論理1であったことを仮定するキャリィインビットである。 【0065】行0及び行1は非反転マルチプレクサ、即ち、夫々、行0MUX及び行1MUXで終了している。行2は反転マルチプレクサ、即ち行2MUXで終了している。行2MUXの出力上の丸印は行2MUXの反転特性を表している。 【0066】行3、行4、行5の動作は行0、行1、行2の動作に非常に類似している。行3−5の各々はスタート加算器セルで始まっており且つ一連の交互のPOS加算器セル及びNEG加算器セルを包含している。行3−5の各々は反転マルチプレクサか又は非反転マルチプレクサかのいずれかで終了している。本発明の動作の説明が冗長になることを回避するために、行3−5の動作の更なる詳細な説明は割愛する。 【0067】以下の表1は入力A,B,CI(即ち、キャリィインビット)を受取り且つ出力S(和ビット)及びCO(キャリィアウトビット)を発生する一般的な加算器セルに対する真理値表である。 【0068】 【表1】
【0069】図8は本発明の1実施例に基づく例示的な32ビット競合遅延加算器300における例示的なスタート加算器セル800の概略図である。例示的なスタート加算器セル800は加算器セルC0,C2,C6,C11,C17,C24のうちのいずれか1つとすることが可能である。スタート加算器セル800は排他的NOR(XNOR)ゲート801、排他的OR(XOR)ゲート802、NORゲート803、NANDゲート804、反転用マルチプレクサ(MUX)805を有している。NORゲート803の出力は負論理信号COUT1N(キャリィイン、CI、1であると仮定)であり、且つNANDゲート804の出力は負論理信号COUT0N(キャリィイン、CI、0であると仮定)である。XNORゲート801は条件付き和X0Nを発生し、それは負論理信号(キャリィイン、CI、0であると仮定)である。XORゲート802は条件付き信号S1Nを発生し、それは負論理信号(キャリィイン、1であると仮定)である。反転用MUX805の出力は和ビットSであり、それは正論理信号である。キャリィイン信号CIは、CIが最終的に前の行から使用可能となる場合に、S0N及びS1Nのうちの正しい1つを選択する。然しながら、デュアルキャリィアウト信号COUT0N及びCOUT1NはCIを待機することはなく、その代わりに、A及びBが使用可能となると否や伝播する。 【0070】以下の表は負論理信号COUT1N及びCOUT0Nに対する真理値表である。 【0071】 【表2】
【0072】表2が示すように、キャリィインビットCIが論理0であると仮定した場合に、COUT0Nは、常に、その真実のキャリィ値が何であるかの反転したものである。同様に、キャリィインビットCIが論理1であると仮定した場合に、COUT1Nは、常に、その真実のキャリィ値が何であるかの反転したものである。 【0073】以下の表は反転用MUX805の負論理信号S0N及びS1N及び出力Sに対する真理値表である。 【0074】 【表3】
【0075】表3に示されるように、キャリィインビットCIが論理0であると仮定した場合に、S0Nは、常に、その真実の和ビットSが何であるかの反転したものである。然しながら、CI=0が、最終的に、反転用MUX805へ印加される場合に、S0Nは反転されてCI=0である場合の和ビットSの真実の値(正論理)を与える。同様に、キャリィインビットCIが論理1であると仮定した場合に、S1Nは、常に、真実の和ビットSが何であるかの反転したものである。然しながら、CI=1が、最終的に、反転用MUX805へ印加される場合に、S1Nは反転され、CI=1である場合の和ビットSの真実の値(正論理)を与える。 【0076】図9は本発明の1実施例に基づく例示的な32ビット競合遅延加算器300における例示的なPOS加算器セル900の概略図である。POS加算器セル900は加算器セルC1,C3,C5,C7,C9,C12,C14,C16,C18,C20,C22,C25,C27,C29,C31のうちのいずれか1つとすることが可能である。POS加算器セル900は排他的NOR(XNOR)ゲート901、排他的OR(XOR)ゲート902、XORゲート903、XORゲート904、反転用マルチプレクサ(MUX)905を有している。POS加算器セル900も、パスゲート906、パスゲート907、インバータ908、インバータ909、スタックインバータ910、スタックインバータ920を有している。POS加算器セル900への入力は引数ビットA及びB、及び先行するNEG加算器セル又はスタート加算器セルからの一対の負論理キャリィインビットCIN1N及びCIN0Nである。 【0077】以下の表4は、前の行からのキャリィインが論理1(即ち、CI=1)である場合の、反転用MUX905の負論理信号S1N及び出力Sに対する真理値表である。信号ABはXORゲート902の出力である。 【0078】 【表4】
【0079】注意すべきことであるが、前の段からのキャリィインが存在している場合には、CIN1Nは0(負論理信号)であり、且つ前の段からキャリィインが存在しない場合には、CIN1Nは1である。従って、表4における和ビット出力Sは表1における一般的な加算器セルの和ビット出力Sと等価である。 【0080】以下の表5は、前の行からのキャリィインが論理0(即ち、CI=0)である場合の反転用MUX905の負論理信号S0N及び出力Sに対する真理値表である。信号ABはXORゲート902の出力である。 【0081】 【表5】
【0082】注意すべきことであるが、前の段からのキャリィインが存在している場合には、CIN0Nは0(負論理信号)であり、且つ前の段からのキャリィインが存在しない場合には、CIN0Nは1である。従って、表5における和ビット出力Sは表1における一般的な加算器セルの和ビット出力Sと等価である。 【0083】一般的な加算器セルに対する表1は、入力ビットA及びBが両方とも0である場合には、キャリィインビットCIの値に拘わらずに、キャリィアウトビットCOは常に0であることを示している。表1は、又、入力ビットA及びBが両方とも1である場合には、キャリィインビットCIの値に拘わらずに、キャリィアウトビットCOは常に1であることを示している。A及びBが異なる場合にのみCIビットはキャリィアウトビットCOの値に影響を与える。 【0084】POS加算器セル900においては、A及びBが等しい場合にデュアルキャリィアウトビットCOUT1及びCOUT0の値を決定するためにスタックインバータ910及び920が使用されている。A及びBが等しい場合には、XORゲート902の出力ABは0であり、且つXNORゲート901の出力ABNは1である。このことはパスゲート906及び907をシャットオフ即ち遮断させ、従ってインバータ908及び909はスタックインバータ910及び920によって駆動される。 【0085】A及びBの両方が0である場合には、スタックインバータ910の底部におけるN型トランジスタはオフであり且つスタックインバータ910の上部におけるP型トランジスタはオンである。このことはスタックインバータ910の出力を1(即ち、Vdd供給電圧)ヘプル即ち移行させ、それはインバータ908によって0へ反転される(即ち、COUT1=0)。A及びBの両方が1である場合には、スタックインバータ910の底部におけるN型トランジスタはオンであり且つスタックインバータ910の上部におけるP型トランジスタはオフである。このことはスタックインバータ920の出力を0(即ち、接地)ヘプル即ち移行させ、それはインバータ908によって1へ反転される(即ちCOUT1=1)。 【0086】同様に、A及びBの両方が0である場合には、スタックインバータ920の底部におけるN型トランジスタはオフであり且つスタックインバータ920の上部におけるP型トランジスタはオンである。このことは、スタックインバータ920の出力を1(即ち、Vdd供給電圧)ヘプル即ち移行させ、それはインバータ909によって0へ反転される(即ち、COUT0=0)。A及びBの両方が1である場合には、スタックインバータ920の底部におけるN型トランジスタはオンであり且つスタックインバータ920の上部におけるP型トランジスタはオフである。このことは、スタックインバータ920の出力を0(即ち、接地)ヘプル即ち移行させ、それはインバータ909によって1へ反転される(即ち、COUT0=1)。 【0087】A及びBが等しくない場合には、両方のスタックインバータ910及びスタックインバータ920におけるN型トランジスタのうちの1つ及びP型トランジスタのうちの1つがオフである。このことはスタックインバータ910及び920をシャットオフし且つスタックインバータ910及び920の出力を高インピーダンス状態とさせる。従って、パスゲート906及び907はインバータ908及び909の入力を駆動することが可能である。 【0088】A及びBが等しくない場合には、XORゲート902の出力ABは1であり、且つXNORゲート901の出力ABNは0である。このことはパスゲート906及びパスゲート907の両方をターンオンさせる。この時点において、先行する加算器セルからのキャリィインビットCIN1Nはインバータ908の入力へ印加され且つ反転されてキャリィアウトビットCOUT1を発生する。従って、負論理キャリィインビット(CIN1N)は正論理キャリィアウトビット(COUT1)ヘ変換される。同様に、先行する加算器セルからのキャリィインビットCIN0Nはインバータ909の入力へ印加され且つ反転されてキャリィアウトビットCOUT0を発生する。従って、負論理キャリィインビット(CIN0N)は正論理キャリィアウトビット(COUT0)ヘ変換される。 【0089】図10は本発明の1実施例に基づく例示的な32ビット競合遅延加算器300における例示的なNEG加算器セル1000の概略図である。NEG加算器セル1000は加算器セルC4,C8,C10,C13,C15,C19,C21,C23,C26,C28,C30のうちのいずれか1つとすることが可能である。NEG加算器セル1000は排他的NOR(XNOR)ゲート1001、排他的OR(XOR)ゲート1002、XORゲート1003、XORゲート1004、反転用マルチプレクサ(MUX)1005を有している。NEG加算器セル1000は、又、パスゲート1006、パスゲート1007、インバータ1008、インバータ1009、スタックインバータ1010、スタックインバータ1020を有している。NEG加算器セル1000への入力は引数ビットA及びB及び先行するPOS加算器セルからの一対の正論理キャリィインビットCIN1及びCIN0である。 【0090】NEG加算器セル1000は以下の2,3の僅かな差異を除いてPOS加算器セル900と多くの点で類似している。 【0091】1.XNORゲート1001の出力ABNはXORゲート1002の出力ABではなくXORゲート1003及び1004へ印加される。 【0092】2.パスゲート1006及び1007及びインバータ1008及び1009の順番が逆である。 【0093】CIN1及びCIN0は正論理信号であるので、和ビットS1N及びS0NはPOS加算器セル900の場合におけるようなABではABNを使用してXORゲート1003及び1004によって発生される。 【0094】NEG加算器セル1000においては、A及びBが同一である場合には、パスゲート1006及び1007がオフであり且つスタックインバータ1010及び1020の出力は夫々反転なしで出力線COUT1N及びCOUT0Nを駆動する。従って、A=B=0である場合には、COUT1N=COUNT0N=1であり、且つA=B=1である場合には、COUT1N=COUNT0N=0である。 【0095】A及びBが等しくない場合には、パスゲート1006及び1007はオンであり且つスタックインバータ1010及び1020はオフである。この場合には、インバータ1008及び1009は入力CIN1及びCIN0を反転させて負論理キャリィアウト信号COUT1N及びCOUNT0Nを駆動する。 【0096】以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
|
| 【出願人】 |
【識別番号】591236448 【氏名又は名称】エスティーマイクロエレクトロニクス,インコーポレイテッド 【氏名又は名称原語表記】STMicroelectronics,Inc
|
| 【出願日】 |
平成13年9月21日(2001.9.21) |
| 【代理人】 |
【識別番号】100076185 【弁理士】 【氏名又は名称】小橋 正明
|
| 【公開番号】 |
特開2002−108607(P2002−108607A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2001−289044(P2001−289044) |
|