(57)【要約】【課題】  リコンフィギュレーション回路が、より少ない面積しか必要としないリコンフィギュラブル・ロジック・デバイスを提供すること。【解決手段】  データフロー制御エレメント(10)と、データ操作エレメント(20)と、前記データフロー制御エレメント(10)のセッティングを記憶するための複数のメモリ・セル(2005521287.tif 000038)を有するコンフィギュレーション・メモリ・ユニット(30)と、アドレスを、前記メモリ・セル(2005521287.tif 000039)に対する選択信号に変換するためのアドレス・デコーダ(40)と、を有するリコンフィギュラブル・プロセッシング・ユニット(1)が、記述される。本発明の前記リコンフィギュラブル・プロセッシング・ユニットは、前記アドレス・デコーダ(40)が、前記コンフィギュレーション・メモリ・ユニット(30)と、さらなるメモリ・ユニット(20)との間で、または、2つのコンフィギュレーション・メモリ・ユニット(30, 30') との間で共有されることを特徴とする。これは、リコンフィギュラブル・プロセッシング・ユニット(1)のメモリ面積の縮小を与える。
2005521287.tif 000002
【特許請求の範囲】
【請求項１】
データフロー制御エレメントと、
データ操作エレメントと、
前記データフロー制御エレメントのセッティングを記憶するための複数のメモリ・セルを有するコンフィギュレーション・メモリ・ユニットと、
アドレスを、前記メモリ・セルに対する選択信号に変換するためのアドレス・デコーダと、を有するリコンフィギュラブル・プロセッシング・ユニットであって、
前記アドレス・デコーダが、前記コンフィギュレーション・メモリ・ユニットと、さらなるメモリ・ユニットとの間で共有されることを特徴とするリコンフィギュラブル・プロセッシング・ユニット。
【請求項２】
前記さらなるメモリ・ユニット、および、前記アドレス・デコーダが、ルックアップ・テーブルを形成し、前記ルックアップ・テーブルが、データ操作エレメントとして用いられることを特徴とする請求項1に記載のリコンフィギュラブル・プロセッシング・ユニット。
【請求項３】
前記さらなるメモリ・ユニットが、前記データフローの結果として生成するデータ値を記憶するために、データ記憶エレメントとしてコンフィギュラブルであることを特徴とする請求項2に記載のリコンフィギュラブル・プロセッシング・ユニット。
【請求項４】
前記コンフィギュレーション・メモリ・ユニットが、プログラム可能なスイッチを介して、前記共通のアドレス・デコーダによってアドレスされることを特徴とする請求項2に記載のリコンフィギュラブル・プロセッシング・ユニット。
【請求項５】
請求項1から4のいずれか1つによる複数のリコンフィギュラブル・プロセッシング・ユニットを有するリコンフィギュラブル・プロセッシング・デバイスであって、コンフィギュレーション・バスに、前記プロセッシング・ユニット・アクセスを選択的に与えるための、1つ以上のグローバル・アドレス・デコーダを有することを特徴とするリコンフィギュラブル・プロセッシング・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、請求項1の導入部分によるリコンフィギュラブル（ロジック回路を再構成可能な）・プロセッシング・ユニットに関するものである。
【背景技術】
【０００２】
リコンフィギュラブル・ロジック・デバイスは、マルチプレクサ、デマルチプレクサ、ゲートなどのようなデータフロー制御エレメント、および、ロジックゲート、加算器、ルックアップ・テーブルのようなデータ操作エレメント、または、そういうものとしてコンフィギュアすることができるエレメントを有する。最後のものは、それらに、異なるコンフィギュレーション内容をロードすることによって容易に再規定することができる、様々な機能の実装を可能にする。リコンフィギュラブル・ロジック・デバイスは、さらに、マルチプレクサ、デマルチプレクサ、スイッチなどのようなデータフロー制御エレメントのセッティングを記憶するためのコンフィギュレーション・メモリ・ユニット（コンフィギュレーション・メモリ）を有する。このように、リコンフィギュラブル・プロセッシング・ユニットの相異なる成分間の接続を、次々と再規定することができる。メモリ・セルに対する選択信号は、アドレス・デコーダによって、その入力に提示されたアドレスに応答して生成される。
【０００３】
例えば、FPGAのような、リコンフィギュラブル・ロジック(RL)デバイスでは、基本的な計算ブロック（ロジック・セル）の機能、および、それらの間の接続は、エンドユーザによってプログラム可能である。
【０００４】
通常、リコンフィギュラブル・プロセッシング・ユニットは、リコンフィギュラブル・プロセッシング・デバイス中のタイルを形成する。タイルは、連結されたルーティング・リソースを有するロジックセルとして規定される。RLデバイスの使用は、新しいハードウェア設計の迅速で柔軟なプロトタイプ作製を可能にする。特に、RLデバイスは、ユーザに、そのRLデバイスが設計されたときに全く知られてさえいなかった機能の実装を可能にする。
【０００５】
そのような柔軟性の代償は、ASICに比しての、相当な面積上と遂行上とのオーバーヘッドである。これは、主として、ロジック・リソースおよびルーティング・リソースを制御するために必要な多数のコンフィギュレーション・メモリ・ビット、および、大量のプログラム可能なインターコネクトによる。
【０００６】
コンフィギュレーション・メモリは、他のリコンフィギュラブル・デバイスのリソースに関してサポート的な役割しか果たさないから、それが取る面積を、最小限にすべきである。そのようになす直接的なやり方は、プログラム可能なスイッチの数、したがって、また、それらに連結するメモリ・ビットの数を減少させることである。これは、デバイスのルーティングの柔軟性に直接影響を及ぼすから、そのような解決は、通常、受け入れがたい。別の方法は、コンフィギュレーション・メモリを、それが最も少ないオーバーヘッドに導くように、実装することである。商業ベースのデバイス、および、文献から知られる実装は、これが、決してありふれたことではないことを示している。RLデバイスの大多数におけるアーキテクチャ的な、および、物理的な実装制約によって、コンフィギュレーション・メモリは、依然として、総デバイス面積の相当量を占める。これは、部分的な、また、動的なリコンフィギュレーションを、しばしば、キー・フィーチャとする内蔵デバイスにおいて、より重大な問題を形成しさえする。そのようなフィーチャを実装するためのハードウェア・リソースは、通常、さらに多く、面積オーバーヘッドを増加させる。したがって、リコンフィギュラブル・ロジック・デバイスへのコンフィギュラブル・メモリの実装は、重要な問題であり、また、それは、最終的なデバイスの品質に、強い影響を及ぼす。
【発明の開示】
【課題を解決するための手段】
【０００７】
本発明の１つの目的は、リコンフィギュレーション回路が、より少ない面積しか必要としないリコンフィギュラブル・ロジック・デバイスを提供することである。本発明によれば、これは、請求項1の特徴部分によって実現される。本発明によるデバイスにおいて、コンフィギュレーション回路は、既に存在するRLデバイス・リソースを再度用い、そのようにして、面積縮小を達成する。例えば、共通のデコーダを、2つのコンフィギュレーション・メモリ・ユニット間で共有することができる。そのような実施例においては、コンフィギュレーション・メモリ・ユニットに、コンフィギュレーション・モード中、2つのフェーズでロードすることができる。最初に、デコーダは、第1のコンフィギュレーション・メモリ・ユニットにアドレスし、次いで、第2のコンフィギュレーション・ユニットにアドレスする。1つのデコーダだけで、2つのメモリ・ユニットに対して十分であるから、それは、必要とされる面積が縮小されるという利点を持つ。これに代えて、十分な接続ピンが、コンフィギュレーション・データを受け取るために利用可能であって、かつ、コンフィギュレーション・データ・バスが、十分に広ければ、共有デコーダに結合された両コンフィギュレーション・メモリに、同時にアドレスし、そして、コンフィギュアしてもよい。
【０００８】
請求項2の実施例において、共通のデコーダが、コンフィギュレーション・メモリ・ユニットと、データ操作のために用いられる、さらなるメモリ・ユニットとの間で共有される。これは、LUTメモリにアドレスするために既に存在しているデコーダが、コンフィギュレーション・メモリにアドレスするためにも、効率的に用いられるという利点を持つ。
【０００９】
第1のコンフィギュレーション・モード中、アドレス・デコーダは、さらなるメモリ・ユニットにアドレスして、それらに、LUTデータをロードするために用いられる。そのさらなるメモリ・ユニットは、書き込み可能モードにある。第2のコンフィギュレーション・モード中、アドレス・デコーダは、書き込み可能状態にセットされており、そして、コンフィギュレーションが、その中に書き込まれるコンフィギュレーション・メモリにアドレスするために用いられる。第1および第2のコンフィギュレーション・モードの代わりに、本発明のリコンフィギュラブル・デバイスは、単一のコンフィギュレーション・モードを持つことができ、その場合には、さらなるメモリ・ユニットと、コンフィギュレーション・メモリ・ユニットとは、デコーダによって同時にアドレスされ、そして、それぞれのデータがロードされる。これは、ロード時間が、より短くなるという利点を持つ。他方、別々のコンフィギュレーション・モードを持つ実施例は、より狭いコンフィギュレーション・データ・バスを可能にする。
【００１０】
デバイスの動作モード中、コンフィギュレーション・メモリは、それが、データフロー制御エレメントを制御することが可能となるように、継続的に読み出し可能に保たれる。さらなるメモリ・ユニットは、それらが、LUTとして動作するように、読み出し可能状態に保ってもよい。一実施例において、さらなるメモリ・ユニットは、さらに、少なくとも部分的に、データフローの結果として生成するデータ値を記憶することが可能である。これは、さらなるメモリ・ユニットを、計算プロセスにおいて既に生成したデータを記憶するための一時記憶スペース、または、新しいデータを生成するためのLUTのいずれかとして用いるという、さらなる柔軟性を与える。
【００１１】
一実施例は、前記コンフィギュレーション・メモリ・ユニットが、プログラム可能なスイッチを介して、前記共通のアドレス・デコーダによってアドレスされることを特徴とする。（第2の）コンフィギュレーション・モード中、それらのスイッチは、導通状態にあり、その結果、コンフィギュレーション・メモリ・ユニットが、アドレス・デコーダに結合される。したがって、コンフィギュレーション・メモリにアドレスすることができ、そして、そのコンフィギュレーション・メモリにコンフィギュレーション・データをロードすることができる。動作モード中、スイッチは、非導通状態にあり、その結果、コンフィギュレーション・メモリのアドレス・ラインは、デコーダの出力をロードさせない。これは、さらなるメモリ・ユニットへのアドレス信号の質、および、それとともに、RLデバイスの速度を改善する。
【００１２】
請求項5は、本発明によるデバイスの実際的な実施例を記述している。この実施例においては、ローカル・デコーダの複雑性を、比較的単純にすることができる。
【発明を実施するための最良の形態】
【００１３】
本発明のこれらの、そして、他の態様が、図面を参照して、より詳細に記述される。
【００１４】
下記において、最初に、いくつかの現在知られている、関連する解決法を、より詳細に記述する。その後、本発明による実施例の、より詳細な記述を提示する。コンフィギュレーション・メモリ・アーキテクチャ、および、その実装は、任意のRLデバイスにおいて、選ばれるプログラミング法によって強く決定される。今日のRLデバイスでは、3つの基本的なプログラミング（コンフィギュレーション）法を、同定することができる。それらは、次のとおりである。
1.  シリアル・コンフィギュレーション
2.  パラレル・コンフィギュレーション
3.  シリアル−パラレル・コンフィギュレーション
【００１５】
図1は、シリアル・コンフィギュレーション法でリコンフィギュアされるリコンフィギュラブル・デバイスaを線図的に示している。この方法によれば、RLデバイスのプログラミングは、シリアルに行われる。それを実現するために、デバイスaの全てのタイルbのコンフィギュレーション・メモリ・セルcは、単一の長いスキャン・チェーンに接続されている。そのようなスキャン・チェーン中のデータ・ビットは、その後のクロックパルスでシフトする。そのようなアプローチは、2ピンのクロックClと入力データピン（データ）しか、RLデバイスをプログラムするのに必要でないという利点を持つ。さらに、アーキテクチャが容易にテスト可能であるということも、利点である。しかしながら、欠点は、長いリコンフィギュレーション時間である（コンフィギュレーション・ビットの数に依存する）。チェーン中の特定のメモリ・エレメントに対する新しい値は、必然的に、全ての前のメモリ・エレメントを通してシフトされるので、部分的なコンフィギュレーションは、不可能である。さらなる欠点は、大きなコンフィギュレーション・メモリ・セルcが必要であるということである。これは、メモリ・セルの現在の値が、コンフィギュレーション・モード中に、チェーン中の次のメモリ・セルにコピーされる前に、オーバーライトされてしまうことがあるのを防止するためである。フリップフロップ・チェーン中のデータのシフトは、ビットのトグリング（オン、オフの切り換え）に帰着するから、シリアルRLデバイスは、また、高いコンフィギュレーション・エネルギーを必要とする。この理由のために、シリアル・コンフィギュレーション技術は、現在、小さなコンフィギュレーション・メモリを持つRLデバイスでしか用いられない。
【００１６】
図2は、パラレルにプログラム可能なタイルb'を持つデバイスa'のコンフィギュレーション・メモリを示している。それは、従来のランダム・アクセス・メモリ(RAM)に似たアーキテクチャを持っている。メモリ・ビットc'は、アレイに編成され、プログラムされるべきコンフィギュレーション・ビット／ワードの選択は、特別のグローバル・デコーダd'を通して行われる。したがって、シリアル・コンフィギュレーション法と対照的に、RLデバイスのプログラミングは、選択的に（即ち、デバイス全体をリコンフィギュアすることなく）行うことができる。
【００１７】
このようなデバイスは、小さなメモリ・セルしか必要としないという利点、および、デバイスの部分的なコンフィギュレーションが可能であるという利点を持つ。
【００１８】
欠点は、デバイスが、コンフィギュアするべきビット／ワードの選択のために、大きなグローバル・デコーダd'を必要とするということである。長く、かつ、重くロードされるメモリ・ビット・ラインを用いるため、コンフィギュレーション・エネルギーが、無視できない。コンフィギュレーション・メモリは、従来のRAMのアーキテクチャに匹敵するアーキテクチャを持つが、そのメモリ実装は、ずっと密度が低い。
【００１９】
パラレル・コンフィギュラブルRLデバイスは、めったに、「純粋な」形では用いられない。その主な問題は、デバイスをプログラムするために必要となる、非常に多数のデータピンとアドレスピンである。これは、ピンの数が、パッケージ・タイプによって制限されるスタンドアロンのデバイスにおいて、特に問題である。
【００２０】
図2に示されるRLデバイスの変形が、図3に示されるデバイスa"であり、タイルb"が、ローカル・デコーダe"を持っている。そのようなローカル・デコーダe"は、完結したタイルb"のコンフィギュレーション・ビットにアドレスするために用いられる。このように、グローバル・デコーダd"の複雑さは、相当に低減させることができる（極めて少数のワード・ラインしか必要でない）。他の重要な1つの利点は、コンフィギュレーション・メモリ・アーキテクチャの高度に規則的な構造であり、それは、実装を簡単にする。グローバル・デコーダd"は、図2に示されるデバイスのグローバル・デコーダd'に比して、相対的に低い複雑さを持つことができる。図2のRLデバイスと同様に、それは、小さなメモリ・セルc"しか必要とせず、また、部分的なリコンフィギュレーションを可能にする。欠点は、各ロジック・タイルb"が、それ自身のローカル・デコーダe"を必要とするということである。
【００２１】
図4は、RLデバイスa""のさらなる既知のアーキテクチャを示しており、図1および図2で示されるアーキテクチャの組み合わせである。図2のパラレル・コンフィギュラブル・デバイスにおけると同様に、コンフィギュレーション・メモリ・ビットc""は、アレイに編成される。しかしながら、付加的なシフトレジスタf""およびg""が、このアレイの両サイドに位置しており、コンフィギュレーション・プロシージャを制御するために用いられる。図4に示されるように、タイルb""のメモリ・セルc""は、比較的単純であるが、一方、シフトレジスタのメモリ・セルは、より複雑なマスタ−スレーブ・メモリ・セル（例えば、図1のセルcに匹敵する）を必要とする。
【００２２】
垂直シフトレジスタは、トップ・ビットを「オン」、残りを「オフ」として初期化される。このビットは、各行のプログラミングの後にシフトされる。垂直シフトレジスタによって選択された行は、1クロック周期でプログラムされる。それは、そのときに、水平トップ・シフトレジスタに記憶されていたコンフィギュレーション・ビットをコピーすることによって行われる（図4を参照のこと）。
【００２３】
このコンフィギュレーション法は、垂直シフトレジスタおよび水平シフトレジスタの深度を変えることによって、および／または、総コンフィギュレーション・メモリを、個別のブロックに区切って、それらを、上述のように実装することによって、容易に変更することができる。図4に示されるRLデバイスは、それが、高度に規則的で、容易に変更可能なアーキテクチャ、小さなコンフィギュレーション・メモリ・セルを持つという点で、また、それが、少数のコンフィギュレーション・ピンしか必要としないという点で、有利である。それは、さらに、部分的なコンフィギュレーション（ワードレベルのみで）を可能とし、また、低いコンフィギュレーション・エネルギーしか必要としない。コンフィギュレーション速度は、垂直シフトレジスタの深度に依存する。
【００２４】
本発明は、主として、ルックアップ・テーブル・ベースのリコンフィギュラブル・ロジック・デバイスに取り組む。単一のルックアップ・テーブル(LUT)が、k個の変数の任意のロジック機能を実装することができる。ここで、kは、LUT入力の数である。このような柔軟性のために、LUTベースのデバイスが、現在、最も一般に用いられている。今日、LUTベースのRLデバイスの重要性が、いっそう上昇している。それらの理由の1つは、単一のLUTを、小さなデータ・メモリとしてもコンフィギュアすることが可能なことにある。
【００２５】
本発明によれば、共通のアドレス・デコーダが、第1および第2のメモリ・ユニット、即ち、LUTリソースおよびコンフィギュレーション・メモリ・ユニットにアドレスするために用いられる。これは、RLデバイスにおいて、コンフィギュレーション・メモリの存在によって引き起こされる面積オーバーヘッドを最小にする。
【００２６】
図5Aは、大きなマルチプレクサhが、メモリ・セルのセットjの出力ビットjiをデコードするために用いられている、LUTの従来の実装を示している。同一のLUTを、メモリとしても用いようとすると、余分の書き込みデコーダが、必要になる。図5Bの実施例では、このデコーダが、デマルチプレクサk'として実装されており、それは、そのような構造（図5Bを参照のこと）の総実装コストを上昇させる。
【００２７】
図6は、本発明によるリコンフィギュラブル・ロジック・デバイス中のリコンフィギュラブル・プロセッシング・ユニット1の第1の実施例を示している。その実施例において、共通のデコーダ40が、第1のコンフィギュレーション・メモリ30と第2のコンフィギュレーション・メモリ30'との間で共有されている。デコーダ40は、アドレス信号
2005521287.tif 000003
によってアドレスされ、そして、コンフィギュレーション・メモリ30, 30'に対する選択信号を生成する。コンフィギュレーション中、コンフィギュレーション・メモリ30, 30'は、必然的に、同時に、または、一方の後で他方が、ロードされる。コンフィギュレーション・メモリ30または30'をロードするためには、それを、信号ctrl1およびctrl2によって書き込み可能状態にセットする。リコンフィギュラブル・プロセッシング・ユニットは、マルチプレクサ11およびゲート12のようなデータフロー制御エレメント10を有する。一例として、マルチプレクサ11が、如何にして、メモリ・セル31aに記憶された値によって制御されるか、また、ゲート12が、如何にして、セル31bの値によって制御されるかが、示されている。さらに、デマルチプレクサ11'およびゲート12'を有する、さらなるデータフロー制御エレメント10'が、如何にして、コンフィギュレーション・メモリ30'のメモリ・セル31a' および 31b'に記憶された値によって制御されるかが、示されている。
【００２８】
図7に示されるリコンフィギュラブル・ロジック・セルの実施例において、データ操作エレメントとして働くLUT 20が、従来のRAMメモリと同様に実装されている、即ち、単一のデコーダ40（読み出しおよび書込み動作のための）によって制御され、また、列（単数または複数の）に編成されたメモリ・セル21を有する。このように、2つのデコーダではなく、1つのデコーダが、必要である。本発明によれば、LUTメモリ20にアドレスするために用いられるのと同一のデコーダ40が、コンフィギュレーション・メモリ30にアドレスするために、再度用いられる。図6および7に示される実施例において、コンフィギュレーション・メモリ・ビット31, 31'は、列にグループ化されており、最新の実装でのようにタイル上に分散していることはない。コンフィギュレーション・メモリ30のこの編成は、高密度のレイアウトに帰着し、それでもって、さらに、利用可能なチップ面積の効率的な使用に寄与する。さらに、より単純なメモリ・セルを、LUT 20およびコンフィギュレーション・メモリ30の実装の両方に対して用いることができる。
【００２９】
図6に示される制御信号ctrl1およびctrl2は、メモリに対する「読み出し／書込み」信号である。ルックアップ・テーブル20は、メモリ・セル21を制御するためにデコーダ40に結合された入力、および、LUTに書き込み・読み出しを行うための入力および出力を有する。同様に、コンフィギュレーション・メモリ30は、コンフィギュレーションをロードするための入力、および、データフロー制御エレメント10を制御するための出力を有する。一例として、4入力LUT (4-LUT) 20が、用いられると仮定する。4-LUTは、出力ビットを選択するために、4:16デコーダ40を必要とする。同じデコーダ40が、タイルのロジック・リソースおよびルーティング・リソースをコンフィギュアするコンフィギュレーション・メモリ30のビットにアドレスするために用いられる。4-LUTのために、デコーダ40は、4つの入力信号
2005521287.tif 000004
を必要とする。さらに、図示されているLUT 20は、それぞれ、読み出し、および、書き込みを行うための1つの入力、および、1つの出力を必要とする。LUTが、いくつかの出力を持てば（いわゆる、マルチ出力LUT）、それぞれ、より多くの入力および出力を加えなければならない。コンフィギュレーション・メモリ・セクションに対する入力数は、タイル内のコンフィギュレーション・メモリ・ビットの総数Nに依存する。したがって、必要なメモリ列数Mは、
2005521287.tif 000005
として計算することができる。ここで、
2005521287.tif 000006
は、1列中のメモリ・セルの数である（4-LUTにおいては、それは、16である）。両方のメモリ・セクションに連結された制御信号が、それらの現在のモード、即ち、書き込み、または、読み出しを決定する。
【００３０】
LUT読み出し動作中の遅延を減少させるために、コンフィギュレーション・メモリ30、および、したがって、それが表わす総ロードが、図7Bに、より詳細に示されているプログラム可能なスイッチ50によって、デコーダから分離される。このスイッチ50は、コンフィギュレーション・メモリ30が、プログラムされることになるときに限って、制御信号Csによってアクティブにされる。デュアルパス・ゲート51が、それが、閾電圧低下を引き起こす（シングルパス・トランジスタのように）ことのないように用いられ、バッファ52が、ドライブ強度を増加させる。コンフィギュレーション・メモリ・セル31、および、ロジック(LUT)・メモリ・セル21の例が、それぞれ、図7Aおよび7Cに示されている。
【００３１】
提示されたコンセプトの非常に重要な利点の1つは、そのモジュラリティとスケーラビリティである。それは、上述のようなコンフィギュレーション・メモリの実装を持つロジック・タイルを組み合わせることができ、それによって、完全なデバイスのコンフィギュレーションを容易に実装できるということを意味する。そうするためには、1つの余分のデコーダ（即ち、グローバル・デコーダ）が、RLデバイスの行および列の選択のために必要である。選択されたタイルは、専用のコンフィギュレーション・ピンを用いて、パラレルにプログラムすることができる。さらに、同時にプログラムするのは、メモリ（即ち、LUTメモリまたはコンフィギュレーション・メモリ）の両方か、または、一方だけかを選ぶことが可能である。この任意選択は、両方のメモリ・セクションに、別々の読み出し／書き込み可能信号を供給することによって得られる。コンフィギュレーション・メモリは、ローカル信号
2005521287.tif 000007
で制御され、LUTメモリは、ローカル信号
2005521287.tif 000008
で制御される（図7を参照のこと）。これらの信号は、ロジックゲート80, 32, 22によって、選択信号
2005521287.tif 000009
および
2005521287.tif 000010
、および、グローバル読み出し／書き込み制御信号
2005521287.tif 000011
および
2005521287.tif 000012
から生成される。選択信号の添え字iおよびjは、それぞれ、ロジック・タイルが配置される列および行を同定する。一実施例において、グローバル読み出し／書き込み制御信号
2005521287.tif 000013
は、全てのロジック・タイルのコンフィギュレーション・メモリの間で共有され、
2005521287.tif 000014
は、全てのロジック・タイルのLUTメモリの間で共有される。別の一実施例において、両方のグローバル制御信号
2005521287.tif 000015
および
2005521287.tif 000016
を、デバイスの連続する列のロジック・タイルのコンフィギュレーション・メモリおよびLUTメモリの間で共有することができる。さらに別の一実施例において、両方のグローバル制御信号
2005521287.tif 000017
および
2005521287.tif 000018
を、デバイスの連続する行のロジック・タイルのコンフィギュレーション・メモリおよびLUTメモリの間で共有することができる。
【００３２】
さらにまた、テスタビリティの視点から見ても、本発明の設計は、非常に有益である。これは、主として、各コンフィギュレーション・メモリ・ビットに、独立にアクセスすることができ、したがって、ユーザは、デバイスの如何なる場所におけるプログラム可能なスイッチの状態も、迅速にチェックすることができるという事実による。
【００３３】
図8は、図7に示されるような複数のリコンフィギュラブル・プロセッシング・ユニット1を有するリコンフィギュラブル・プロセッシング・デバイス100のトップレベル図を提示している。線図的に、コンフィギュレーション・メモリ30、ローカル・デコーダ40、および、LUTメモリ20が、タイル内に示されている。リコンフィギュラブル・プロセッシング・デバイス100は、さらに、リコンフィギュラブル・プロセッシング・ユニット1の行および列の値を選択するための、それぞれ、第1のグローバル・デコーダ60、および、第2のグローバル・デコーダ70を有している。リコンフィギュラブル・プロセッシング・ユニット1の各行は、グローバル行アドレス・ライン61a, 61b, 61cに結合され、それらのユニットの各列は、グローバル列ライン71a, 71b, 71cに結合されている。第1のグローバル・デコーダ60、および、第2のグローバル・デコーダ70は、それぞれ、グローバル・アドレス・バスAYおよびAXに結合されている。第1のグローバル・デコーダ60は、グローバル・アドレス・バスAYから受け取った信号に応答して、グローバル行アドレス・ライン61a, 61b, 61cに信号を生成する。第2のグローバル・デコーダ70は、グローバル・アドレス・バスAXから受け取った信号に応答して、グローバル列アドレス・ライン71a, 71b, 71cに信号を生成する。リコンフィギュラブル・プロセッシング・ユニット1は、さらに、コンフィギュレーション・データ・バスDC、および、ローカル・アドレス・バスAL、および、読み出し・書き込みを制御するための制御バス（図示せず）に結合されている。
【００３４】
図8Aおよび8Bは、図8に示される実装の2つの実施例を線図的に示している。図8Aにおいては、リコンフィギュラブル・プロセッシング・デバイス100のタイル1は、各々、共通のコンフィギュレーション・バスSCに結合されている。これは、接続数を減少させるが、共通のコンフィギュレーション・バスSCにかかるロードが、相対的に高いという欠点を持つ。図8Bは、タイル1'の各列が、その独自のコンフィギュレーション・バスSC1, SC2, SC3, SC4に結合されている、リコンフィギュラブル・プロセッシング・デバイス100'の一代替実施例を示している。この実施例は、特に、多数のI/Oピンを持つデバイス、または、プリミティブでない内蔵RLコアに適している。
【００３５】
図9は、タイル内のメモリ・ユニットへの接続、特に、リコンフィギュレーション・モード中に用いられる接続を、幾分、より詳細に示している。図示されるように、デコーダ40のアドレス入力は、第1のローカル・アドレス・バスALに接続されている。デコーダ40は、LUTメモリ20に結合された第1の出力41を持っている。第1のコンフィギュレーション・モード中、データは、コンフィギュレーション・データ・バスDCから、当該第1の出力41によって選択された、LUTメモリ20のメモリ・エレメントにロードされる。デコーダ40は、スイッチ50を介して、コンフィギュレーション・メモリ30に結合された第2の出力42を持っている。第2のコンフィギュレーション・モード中、データは、コンフィギュレーション・データ・バスDCから、当該第2の出力42によって選択された、コンフィギュレーション・メモリ30のメモリ・エレメントにロードされる。第1のコンフィギュレーション・モード中、モード制御信号
2005521287.tif 000019
（または、RLデバイスが、デバイスの全ての列において、LUTに対して別々の読み出し／書き込み制御信号を持つ場合には、
2005521287.tif 000020
、または、RLデバイスが、デバイスの全ての行において、LUTに対して別々の読み出し／書き込み制御信号を持つ場合には、
2005521287.tif 000021
)は、ロジカルにhigh値にセットされる。さらに、選択信号Bが、high値にセットされた場合には、その特定のLUT 20が、書き込み可能モードにセットされる。選択信号Bは、組み合わせエレメント80によって、特定のリコンフィギュラブル・プロセッシング・ユニット1に対応する、グローバル行アドレス・ライン（例えば、61a）、および、グローバル列アドレス・ライン（例えば、71a）の値から生成される。第2のコンフィギュレーション・モード中、モード制御信号
2005521287.tif 000022
（または、RLデバイスが、デバイスの全ての列において、全てのコンフィギュレーション・メモリに対して別々の読み出し／書き込み制御信号を持つ場合には、
2005521287.tif 000023
、または、RLデバイスが、デバイスの全ての行において、コンフィギュレーション・メモリに対して別々の読み出し／書き込み制御信号を持つ場合には、
2005521287.tif 000024
)は、ロジカルにhigh値にセットされる。さらに、選択信号Bが、high値にセットされた場合には、その特定のコンフィギュレーション・メモリ・ユニット30が、書き込み可能モードにセットされる。その場合、ローカル制御信号
2005521287.tif 000025
は、ロジック値「1」を取る。同様に、モード制御信号
2005521287.tif 000026
が、「1」であり、さらに、選択信号Bが、組み合わせエレメント80によって、特定のリコンフィギュラブル・プロセッシング・ユニット1に対応するグローバル行アドレス・ラインの値（例えば、信号61a）、および、グローバル列アドレス・ラインの値（例えば、信号71a）から生成される場合には、LUTメモリ20は、書き込み可能モードになる。その場合、ローカル制御信号
2005521287.tif 000027
は、値「1」を取る。
【００３６】
コンフィギュレーション・データ・バスが、十分に広く、そして、リコンフィギュラブル・デバイスが、十分の数の接続ピンを有していれば、コンフィギュレーション・メモリ30と、ルックアップ・テーブル・メモリ20とを、別々のコンフィギュレーション・モード・フェーズでロードする代わりに、これらのメモリを同時にロードすることもできることに注意されたい。
【００３７】
図10は、複数のタイル1、および、それらのタイルの間に、「垂直ライン」90Vおよび水平ライン90Hを有する信号伝達ネット90を持つリコンフィギュラブル・デバイス100を線図的に示している。図10Aは、タイル1を、信号伝達ネット90にリコンフィギュラブルに接続するためのいくつかの仕方を示している。図10Aに示されるタイル1は、信号伝達ネット90の信号ライン91, 92に接続された第1の入力2a, 2bを持っている。信号ライン91を、コンフィギュレーション・メモリの第1のメモリ・セルに記憶されている値を持つ第1の制御信号によって制御されるマルチプレクサ13を介して、入力2aに制御可能に接続してもよい。
【００３８】
タイル1の出力3は、出力スイッチ14によって、信号ライン90に制御可能に結合されている。出力スイッチ14は、コンフィギュレーション・メモリのメモリ・セルの第2のグループに記憶されている、それぞれの値を持つ第2の制御信号によって制御される。
【００３９】
信号伝達ネットの「垂直」、「水平」信号ライン90V, 90Hは、スイッチ・ボックス15によって、互いに、制御可能に結合し合ってもよい。スイッチ・ボックス15は、コンフィギュレーション・メモリのメモリ・セルの第3のグループに記憶されている、それぞれの値を持つ第3の制御信号によって制御される。
【００４０】
図10Aに示される実施例において、デバイスは、さらに、信号伝達ネットの信号ラインを、グローバルネットに接続するための、制御可能なバッファ16を持っている。バッファ16は、コンフィギュレーション・メモリのメモリ・セルの第4のグループによって決定される値を持つ制御信号によって制御される。
【００４１】
コンフィギュレーション・メモリは、図10Bに示されるように、タイル間の信号のルーティングを制御するだけではなく、タイル内の信号のルーティングを制御してもよい。図10Bは、2つの出力ルックアップ・テーブル20'を示している。LUT 20'の出力の一方が、マルチプレクサ17によって、単一の出力に結合するように選択される。マルチプレクサは、コンフィギュレーション・メモリの第5のメモリ・セルによって決定される値を持つ選択信号を受け取る。
【００４２】
図11は、動作モードにおける本発明によるデバイスの信号の流れを線図的に示している。そのモードにおいて、デコーダ40の第2の出力42が、コンフィギュレーション・メモリ30の選択入力から切断されており、コンフィギュレーション・メモリ30は、永続的に、読み出し可能状態に保たれる。コンフィギュレーション・メモリ30のデータ出力33は、「水平」信号ライン90Hからデコーダ40に対してアドレス信号を選択するために、データフロー制御エレメント、例えば、入力マルチプレクサ43、の制御入力に結合されている。出力41からLUTメモリ20に提示された、デコードされたアドレスは、垂直バス90Vに伝送される、メモリ出力23からの1つ以上の出力値となる。他方、LUTメモリ20を、別のコンフィギュレーションにおけるデータ・メモリとして用いることもできる。そのようなコンフィギュレーションにおいては、垂直バス90V、または、水平バス90Hから、2次データ入力24, 25を介して、そのメモリにデータを書き込んでもよい。
【００４３】
信号伝達ネットとのメモリ・ユニットの信号伝達が、図12, 12A, 12B, 12C に、幾分、より詳細に示されている。
【００４４】
図12において、デコーダ40のアドレス入力
2005521287.tif 000028
が、選択信号Bによって制御される第1のマルチプレクサ43に結合されている。この第1のマルチプレクサ43は、ローカル・アドレス・バスALから、または、信号伝達ネット90に結合され、そして、コンフィギュレーション・メモリ30によって制御される第2のマルチプレクサ44から、デコーダ40のアドレス入力、例えばA3、を選択する。デコーダ40によってアドレスされるルックアップ・テーブル20は、コンフィギュレーション・データ・バスDCからの信号、または、信号伝達ネット90に結合された第4のマルチプレクサ28からの信号のどちらかを選択する第3のマルチプレクサ26に結合された第1のデータ入力を持っている。第3のマルチプレクサ26は、ローカル信号
2005521287.tif 000029
によって制御される。第4のマルチプレクサ28は、コンフィギュレーション・メモリ30によって制御される。第5のマルチプレクサ27が、信号
2005521287.tif 000030
（または、
2005521287.tif 000031
、または、
2005521287.tif 000032
）、および、信号伝達ネット90に結合された第6のマルチプレクサ29の出力から、LUT 20に対する書き込み可能信号を選択する。第5のマルチプレクサ27も、ローカル信号
2005521287.tif 000033
によって制御される。第6のマルチプレクサ29（図12Aも参照のこと）は、コンフィギュレーション・メモリ30によって制御される。第1のコンフィギュレーション・モード中、第3のマルチプレクサ26は、コンフィギュレーション・データ・バスDCから信号を選択し、書き込み可能信号は、信号
2005521287.tif 000034
によって、制御され、それによって、LUT 20に、LUTデータをロードすることができる。LUT 20のデータ出力、および、読み出し・書き込み制御信号が、信号伝達ネット90に結合されている動作モード中に、LUTを、LUTとして用いることができ、そのとき、LUTは、読み出し可能モードに維持される。これに代えて、メモリ・ユニット20を、RAMデバイスとして用いることができ、そのとき、信号伝達ネット90からのデータを、マルチプレクサ28および26を介して、メモリ・ユニット20にルートすることができ、そして、デコーダ40によって選択されたメモリ・ユニット20の位置に記憶させることができる。
【００４５】
図12Bは、コンフィギュレーション・メモリ30、および、コンフィギュレーション制御
2005521287.tif 000035
および
2005521287.tif 000036
、および、AL、および、データラインDCを有するコンフィギュレーション・プレーン100Aと、データフロー制御エレメント、および、ルーティング・ネット90H, 90Vを有するルーティング・プレーン100Bとを備えたリコンフィギュラブル・デバイス100の編成を示している。
【００４６】
図12Cは、信号伝達ネット90（の、例えば、水平バス90H）への、制御可能なスイッチ14を介する、LUT 20の出力23の接続を、より詳細に示している。
【００４７】
メモリ・ユニット20を、例えば、ロジック・エレメントとしてコンフィギュアすることができる。それが、図13に示されており、メモリ・ユニット20（図の右半分）が、4入力ANDゲート（図の左半分）として機能している。この場合、メモリ・ユニット20は、デバイスのコンフィギュレーション・モード中、ロジック・エレメントのロジック機能を表わすLUTデータをロードさせ、また、デバイスの動作モード中、読み出し可能に保つ。
【００４８】
そうでなければ、図14に示されているように、メモリ・ユニット20（図の右半分に示されている）を、SRAM（図の左半分）として実装することができる。これは、メモリ・ユニット20が、信号伝達ネットに結合された1つ以上のデータ入力24を持つことを必要とする。さらに、
2005521287.tif 000037
制御ラインが、動作モード中、動的に制御可能でなければならない。
【００４９】
本発明の保護の範囲は、本明細書に記述されている実施例に限定されるものではないことが、注意される。本発明の保護の範囲は、また、請求項における参照数字によっても限定されるものではない。用語「有する」は、請求項において言及された成分以外の成分を排除するものではない。エレメントの前の用語「1（つ）」は、複数のそれらのエレメントを排除するものではない。本発明の成分を形成する手段は、専用のハードウェアの形式、または、プログラムされた汎用のプロセッサの形式のどちらで実装してもよい。本発明は、各新しい形態、または、形態の組合せにある。
【図面の簡単な説明】
【００５０】
【図１】従来のリコンフィギュラブル・デバイスの第1のタイプ、および、そのデバイス内のコンフィギュレーション・メモリ・セルを示す。
【図２】従来のリコンフィギュラブル・デバイスの第2のタイプ、および、そのデバイス内のコンフィギュレーション・メモリ・セルを示す。
【図３】リコンフィギュラブル・デバイスの第2のタイプの変形を示す。
【図４】従来のリコンフィギュラブル・デバイスの第3のタイプ、および、そのデバイス内のコンフィギュレーション・メモリ・セルを示す。
【図５】メモリ機能を持たない場合(A)と、メモリ機能を持つ場合(B)との従来のルックアップ・テーブルの実装を示す。
【図６】本発明によるリコンフィギュラブル・ロジック・デバイスの第1の実施例を示す。
【図７】本発明によるリコンフィギュラブル・ロジック・デバイスの第2の実施例を示す。
【図８】本発明によるリコンフィギュラブル・プロセッシング・デバイス、および、その第1の実施例(A)、および、第2の実施例(B)を示す。
【図９】本発明によるリコンフィギュラブル・プロセッシング・ユニットをコンフィギュアするために用いられる信号の概観を示す。
【図１０】データフローを制御するための、コンフィギュレーション・メモリ・ユニットの出力信号の用い方のいくつかの例を示す。
【図１１】コンフィギュラブル・ロジック・デバイス内のタイル、および、その接続を、より詳細に示す。
【図１２】図11のタイルの接続を、より詳細に示す。
【図１３】本発明によるリコンフィギュラブル・デバイスの、さらなるメモリの第1の適用を示す。
【図１４】本発明によるリコンフィギュラブル・デバイスの、さらなるメモリの第2の適用を示す。
【符号の説明】
【００５１】
1, 1'  リコンフィギュラブル・プロセッシング・ユニット（タイル）
10, 10'  データフロー制御エレメント
11, 11', 13, 17, 26, 27, 28, ,29, 43, 44  マルチプレクサ
12, 12'  ゲート
14  出力スイッチ
20, 20'  LUTメモリ（さらなるメモリ・ユニット）
21  メモリ・セル
22, 32, 80  ロジックゲート
30, 30'  コンフィギュレーション・メモリ
31, 31'  コンフィギュレーション・メモリ・ビット
31a, 31a', 31b, 31b'  メモリ・セル
40  デコーダ
60  第1のグローバル・デコーダ
61a, 61b, 61c  グローバル行アドレス・ライン
70  第2のグローバル・デコーダ
71a, 71b, 71c  グローバル列アドレス・ライン
90  信号ライン
100, 100'  リコンフィギュラブル・プロセッシング・デバイス
【図１】
2005521287.tif 000040
【図２】
2005521287.tif 000041
【図３】
2005521287.tif 000042
【図４】
2005521287.tif 000043
【図５Ａ】
2005521287.tif 000044
【図５Ｂ】
2005521287.tif 000045
【図６】
2005521287.tif 000046
【図７】
2005521287.tif 000047
【図８】
2005521287.tif 000048
【図８Ａ】
2005521287.tif 000049
【図８Ｂ】
2005521287.tif 000050
【図９】
2005521287.tif 000051
【図１０】
2005521287.tif 000052
【図１１】
2005521287.tif 000053
【図１２】
2005521287.tif 000054
【図１３】
2005521287.tif 000055
【図１４】
2005521287.tif 000056
【国際調査報告】
2005521287.tif 000057
2005521287.tif 000058