(57)【要約】仮想ストライプと物理ストライプをパイプライン又はリング構造に連繋する方法であって、第１の仮想ストライプ群を２以上の物理ストライプと連繋し、第１の仮想ストライプ群とは繋がっていない第２の仮想ストライプ群を２以上の追加の物理ストライプと連繋することを含んでいる。本発明はまた、グローバルよりも少ないが、純粋なローカルではないアソシエーションに基づいて、複数のプロセッシングエレメントをコンフィギュアする方法を対象とする。本発明のコンフィギュレーション方法は、複数のプロセッシングエレメントに配置されたデバイスの中で実行されることができる。本発明の方法は、２以上の物理ストライプのどちらかを、第１の仮想ストライプ群の中の仮想ストライプでコンフィギュアし、２以上の追加の物理ストライプのどちらかを、第１の仮想ストライプ群とは繋がっていない第２の仮想ストライプ群の中の仮想ストライプでコンフィギュアすることを含んでいる。本発明はまた、リコンフィギュラブルデバイスを対象とするもので、該デバイスは、コントローラと、該コントローラに応答可能なメモリデバイスと、複数のストライプに配置された複数のプロセッシングエレメントと、ストライプ内のプロセッシングエレメントを接続するための複数のストライプ内相互接続と、１つのストライプの出力を、１つだけの他のストライプに接続するための複数のローカル・インターストライプ接続と、１以上であるが全部よりは少ない数の物理ストライプをメモリに接続するための複数のグローバル・インターストライプと、各々が１以上の物理ストライプに接続された入力バス及び出力バスと、を具えている。
2005539293.tif 000002
【特許請求の範囲】
【請求項１】
複数のストライプの中に配置された複数のプロセッシングエレメントをコンフィギュアする方法であって、
第１の仮想ストライプ群からの仮想ストライプで、２以上の物理ストライプのどちらかをコンフィギュアし、
第１の仮想ストライプ群とは繋がっていない第２の仮想ストライプ群からの仮想ストライプで、２以上の追加の物理ストライプのどちらかをコンフィギュアすることを含んでいる、方法。
【請求項２】
２以上の物理ストライプのどちらかをコンフィギュアするステップと２以上の追加の物理ストライプのどちらかをコンフィギュアするステップは、コンフィギュレーションメモリから前記物理ストライプの各々にコンフィギュレーションワードを書き込むことを含んでいる請求項１の方法。
【請求項３】
物理ストライプにコンフィギュレーションワードを書き込むステップは、１クロックサイクルで行われる請求項２の方法。
【請求項４】
各々の物理ストライプにコンフィギュアされる次の仮想ストライプのテーブルを維持するステップをさらに含んでいる請求項１の方法。
【請求項５】
物理ストライプの１つは、前の物理ストライプの出力が、出力の状態を変えることなく、ヌルコンフィギュアされた物理ストライプを通過できるように、ヌルコンフィギュレーションでコンフィギュアされる請求項１の方法。
【請求項６】
前の物理ストライプの出力が、出力の状態を変えることなく、ヌルコンフィギュアされた物理ストライプを通過できるように、物理ストライプをヌルコンフィギュレーションでコンフィギュアすることを含んでいる方法。
【請求項７】
ヌルコンフィギュレーションで物理ストライプをコンフィギュアするステップは、コンフィギュレーションメモリから、ヌルコンフィギュレーションワードを物理ストライプに書き込むことを含んでいる請求項６の方法。
【請求項８】
ヌルコンフィギュレーションワードの物理ストライプへの書込みは、１回のクロックサイクルで行われる請求項７の方法。
【請求項９】
ヌルコンフィギュレーションがコンフィギュアされるべき各物理ストライプを決定することをさらに含んでいる請求項６の方法。
【請求項１０】
複数のプロセッシングエレメントが複数のストライプの中に配置されるタイプのデバイスにおいて、仮想ストライプを物理ストライプに連繋する方法であって、
第１の仮想ストライプ群を、２以上の物理ストライプに連繋し、
第１の仮想ストライプ群とは繋がっていない第２の仮想ストライプ群を、２以上の追加の物理ストライプと連繋することを含んでいる、方法。
【請求項１１】
コントローラと、
該コントローラに応答可能なメモリデバイスと、
複数のストライプに配置された複数のプロセッシングエレメントと、
ストライプ内のプロセッシングエレメントを接続するための複数のイントラストライプ接続と、
１つのストライプの出力を、他のストライプに接続するための複数のローカル・インターストライプ接続と、
複数の物理ストライプのうち１以上であるが全部よりは少ない数の物理ストライプをメモリに接続するための複数のグローバル・インターストライプと、
各々が１以上の物理ストライプに接続された入力バス及び出力バスと、
を具えているリコンフィギュラブルデバイス。
【請求項１２】
出力バスは、全てが単一のグローバル・インターストライプ接続によって相互接続された複数の物理ストライプに接続される請求項１１のデバイス。
【請求項１３】
前記ストライプの少なくとも一部をメモリに接続するためのリストアバスをさらに含んでいる請求項１１のデバイス。
【請求項１４】
リストアメモリをさらに含んでおり、前記リストアバスは、前記ストライプの少なくとも一部を前記リストアメモリに接続する請求項１３のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
連邦政府の資金援助による研究に関する陳述
この発明は、少なくとも一部分は、契約番号ＤＡＢＴ６３−９６−Ｃ−００８３のＤＡＲＰＡ−ＩＴＯ／ＴＴＯによる資金の援助を通じて開発されたもので、連邦政府は、この発明の権利を有することができる。
【０００２】
本発明は、リコンフィギュラブル・アーキテクチャに関するもので、より具体的には、情報をパイプラインのように処理するのに用いられるリコンフィギュラブル・アーキテクチャに関する。
【背景技術】
【０００３】
従来、リコンフィギュラブル演算のための方法として、ユーザに定義されたアプリケーションを実行するために、プログラマブルハードウエアを静的にコンフィギュアすることが行われている。このようなコンフィギュレーションの静的性質は、２つの問題を引き起こす。その１つは、より多くのハードウエアを必要とすることであり、もう１つは、単一のハードウエアデザインでは、将来のプロセス・ジェネレーションで不可避的に利用されるようになるであろう追加のリソースを利用できないことである。パイプライン化されたリコンフィギュレーションと称される技術は、そのハードウエアの迅速なリコンフィギュレーションを通じて、小さなピースのハードウエア上で、大きな論理コンフィギュレーションを実行する(implement)。この技術の場合、コンパイラは、固定ハードウエアの制約を満足させる手段を担うことはできなくなる。また、デザインの性能向上は、そのデザインに割り当てられたハードウエアの量に比例する。
【０００４】
パイプライン化コンフィギュレーションは、単一の静的コンフィギュレーションを、アプリケーションのパイプラインステージに対応する複数のピースに分割することにより、パイプライン化演算を仮想化することを含んでいる。各パイプラインステージは、１サイクル毎に１つずつ、ファブリックの中へロードされる。これは、ファブリックの中にコンフィギュレーションの全体が一時に存在しない場合でも、演算の実行を可能にする。
【０００５】
図１は、仮想プロセスを示すもので、３ステージのファブリックに仮想化された５ステージのパイプラインを示している。図１Ａは、５ステージのアプリケーションを示し、６連続サイクルにおける各々の論理(仮想)パイプラインステージの状態を示している。図１Ｂは、物理ステージ(physical stages)がこのアプリケーションをエグゼキュート(execute)するときのファブリック内の物理ステージの状態を示している。この例では、仮想パイプステージ１は、サイクル１でコンフィギュアされ、次のサイクルでエグゼキュートできる状態にあり、２つのサイクルに対してエグゼキュートする。物理パイプステージ４は無い。それゆえ、サイクル４では、第４番目の仮想パイプステージは物理ステージ１でコンフィギュアされ、第１の仮想ステージを取り替える。一旦パイプラインが一杯になると、５サイクル毎に２連続サイクルに対して２つの結果を生じる。例えば、サイクル２、３、７、８、．．．は入力を消費し、サイクル６、７、１１、１２、．．．は出力を発生する。
【０００６】
図２は、パイプライン化ファブリックのアーキテクチュラルクラスのアブストラクトビューである。複数のプロセッシングエレメント(ＰＥｓ)の各ロウは、それに関連のある相互接続と共に、ストライプと称される。各々のプロセッシングエレメント(ＰＥ)は、典型的には、演算論理ユニット(ＡＬＵ)とパスレジスタファイルを含んでいる。各々のＡＬＵは、ルックアップテーブル(ＬＵＴｓ)と、キャリーチェーン、ゼロ検出等のための追加回路を含んでいる。デザイナーは、一組のＮＢビット幅ＡＬＵｓを用いて、組合せ論理を実装する。ＡＬＵの動作は静的であり、特定の仮想ストライプは物理ストライプに存在する。デザイナーは、ＡＬＵｓのキャリーラインについて、カスケード、チェーン又は他の接続を行ない、よりワイドなＡＬＵを構築し、相互接続ネットワークを介してＰＥｓどうしをチェーンし、複合的な組合せ機能を構築する。
【０００７】
リコンフィギュラブルファブリックは、プロセスが必要とするよりも物理ストライプが少ないファブリックの中で処理を実行する機会を提供するので、仮想ストライプを物理ストライプに関連づけることが必要である。図３は、どんな仮想ストライプでも任意の物理ストライプにロードされることができるグローバル・アソシエーションを示している。グローバル・アソシエーションは、メモリオーバヘッドにセーブするストレージが統合される(consolidated)利点をもたらす。しかしながら、その構造はスケーラブルでないという不都合がある。物理ストライプの数が増えるにつれて、グローバルバスラインは長くなり、負荷が高くなる。このように、グローバル・アソシエーションは物理ストライプの数が少ないファブリックでは、うまく機能するが、ハードウエアが改善され、物理ストライプの数が増すにつれて、各々の物理ストライプを任意の仮想ストライプへ関連づけることが少なくなり、また好ましくない。
【０００８】
図４を参照すると、純粋なローカル・アソシエーションを示している。図４に示されるように、物理ストライプ１は、仮想ストライプ０と４でコンフィギュアされることができる。物理ストライプ２は、仮想ストライプ１又は５でコンフィギュアされることができる。物理ストライプ３は仮想ストライプ２又は６でコンフィギュアされることができる。また、物理ストライプ４は仮想ストライプ３又は７と結合されることができる。図３のように、４つの物理ストライプと８つの仮想ストライプがある。図４に示されるローカル・アソシエーションは、コンフィギュアバスが短く、低負荷であるため、スケーラブルであるという点において、図３のグローバル・アソシエーションの不都合を解消するものである。図４に示すローカル・アソシエーションはまた、メモリが少なく、これらメモリへのアクセスをインタリーブする能力を有するので、グローバル・アソシエーションよりも高速であり、メモリはファブリックよりもゆっくりとサイクルを実行することができる。しかしながら、図４のローカル・アソシエーションは、ストレージの分散が大きい。このため、分散されたストレージを動作させるのに必要なオーバヘッドのために、効率が悪いという欠点がある。
【０００９】
オペレーショナルデバイスに対しては、追加のバスを設けねばならない。例えば、入力バスと出力バスを設けなければならない。典型的には、そのような入力と出力は、物理ストライプの各々を使用する点において、グローバルである。しかしながら、入力バスと出力バスがグローバルよりも少ない場合、入力バスに接続されていない物理ストライプは最初の物理ステージである必要はなく、出力バスに接続されていない物理ストライプは最後の物理ストライプである必要はないことを、設計段階で保証する必要がある。最後に、物理ストライプによって作成された幾つかの値は、当該物理ストライプの次の実施に用いられることが必要になるかもしれない。その場合、その値は、メモリの中に格納された物理ストライプから取得され、そのストライプが次に実施されるとき、そのストライプ又は別のストライプに入力(リストア)されなければならない。もし、この機能を提供するバスがグローバルよりも少ない場合、設計段階で、リストアバス(restore bus)に接続されていない物理ストライプは、そのような値を供給又は受信する必要がないことを、保証する必要がある。
【００１０】
このように、スケーラブルであると同時に、グローバル・アソシエーションの利点を維持し、必要に応じて、ストライプへ状態情報を提供することができ、出力ストライプが出力バスに接続されていないときにも情報を出力することができるアソシエーションオプションが要請されている。
【発明の開示】
【００１１】
＜発明の要旨＞
本発明は、仮想ストライプがパイプライン又はリング構造に接続される方式のデバイスにおいて、仮想ストライプと物理ストライプを連繋する(associating)方法を対象とするものである。本発明の方法は、第１の仮想ストライプ群を２以上の物理ストライプの任意の１つに連繋し、第１の仮想ストライプ群とは異なる第２の仮想ストライプ群を、２以上の追加の物理ストライプの任意の１つに連繋することを含んでいる。本発明はまた、グローバルより少ないが純粋なローカルではないアソシエーションに基づいて、複数のプロセッシングエレメントをコンフィギュアする方法を対象とするものである。本発明のコンフィギュレーション方法は、複数のプロセッシングエレメントの複数のストライプに配置されたデバイスの中で実施され、リング又はパイプライン式に相互連結されることができる。本発明の方法は、第１の仮想ストライプ群からのストライプで２以上の物理ストライプのどちらかをコンフィギュアし、第１の仮想ストライプ群とは繋がっていない(disjoint)第２の仮想ストライプ群からのストライプで２以上の追加の物理ストライプのどちらかをコンフィギュアすることを含んでいる。
【００１２】
本発明の方法を実施するデバイスでは、出力バスは物理ストライプの全てを相互接続しないようにすることが可能である。もしそうであるならば、そして、最終出力が出力バスからのサービスを受けた物理ストライプで利用可能でない場合、１又は２以上の物理ストライプを、ヌルコンフィギュレーション(null configuration)でコンフィギュアすることが必要である。ヌルコンフィギュレーションにより、最終出力は、変化のない状態で、物理ストライプを通って伝播することができる。必要とされる数多くの物理ストライプはヌルコンフィギュレーションでコンフィギュアされることができ、最終出力は、出力バスからサービスを受けた物理ストライプで利用可能となる。
【００１３】
本発明はまた、コントローラと、該コントローラに応答可能なメモリデバイスと、ストライプに配置された複数のプロセッシングエレメントと、複数のストライプ内のプロセッシングエレメントを接続するための複数のイントラストライプ相互接続と、１つのストライプの出力を、１つだけの他のストライプに接続するための複数のローカル・インターストライプ接続と、１以上であるが全部よりは少ない数の物理ストライプをメモリに接続するための複数のグローバル・インターストライプと、各々が１以上の物理ストライプに接続された入力バス及び出力バスと、を具えている。
【００１４】
本発明の方法及び装置は、負荷が軽く、部分的にグローバルなバスで、メモリの効率的な使用を提供するものであり、仮想ストライプを物理ストライプに連繋するだけでなく、入力バス、出力バス及びリストアバスを用いて効率を向上させることのできるスケーラブルなアーキテクチャを提供するものである。これら及びその他の利点及び利益については、以下に記載する発明の詳細な説明から明らかであろう。
【００１５】
＜発明の詳細な説明＞
図５は、本発明の実施例に係るハイブリッド・アソシエーションのオプションを示している。図５において、仮想ストライプ０、１、４、５は、物理ストライプ(10)(12)の中でコンフィギュアされることを示している。より具体的には、仮想ストライプ０と４は、物理ストライプ(10)の中でコンフィギュアされ、一方、仮想ストライプ１と５は、物理ストライプ(12)の中でコンフィギュアされる。部分的にグローバルなバス(13)を用いて、仮想ストライプで物理ストライプをコンフィギュアするのに必要な情報が送信される。
【００１６】
同じように、部分的にグローバルなバス(17)を通じて、物理ストライプ(14)は、仮想ストライプ２と６でコンフィギュアされ、一方、物理ストライプ(16)は、仮想ストライプ３と７でコンフィギュアされる。図５に示されるように、本発明の方法は、第１の仮想ストライプ群０、１、４、５が２以上の物理ストライプ(10)(12)に連繋され、第２の仮想ストライプ群２、３、６、７が２以上の追加の物理ストライプ(14)(16)に連繋される。
【００１７】
図５に示されるように、パスレジスタライン(19)が、物理ストライプ(10)と(12)の間で、ローカルなインターストライプ接続として供され、パスレジスタライン(21)が、物理ストライプ(14)と(16)の間で、ローカルなインターストライプ接続として供される。パスレジスタライン(23)は、物理ストライプ(12)と(14)の間で、ローカルなインターストライプ接続として供され、パスレジスタライン(25)は、物理ストライプ(16)と(10)の間で、ローカルなインターストライプ接続として供される。本発明のアソシエーション方法では、４つの物理ストライプと、８つの仮想ストライプが示されているが、当該分野の専門家であれば、本発明の方法は、部分的にグローバルなバスを用いるという概念を包含する、もっと大きなシステムにも適用できることは理解し得るであろう。
【００１８】
図６は、図５に示されたアソシエーション法に基づいて相互接続された４つの物理ストライプ(10)(12)(14)(16)を有するリコンフィギュラブルファブリック又はデバイスの概要を示している。コンフィギュレーションストア(メモリデバイス)(28)は、仮想ストライプ０、１、４、５を格納し、部分的にグローバルなバス(13)を通じて物理ストライプ(10)(12)をコンフィギュアするために供される。仮想ストライプが、パスレジスタファイルの中のレジスタに格納され、ファブリックの中にコンフィギュアされた最後の仮想ストライプからリストアされた幾つかの状態値を有しなければならないかもしれないことは、演算又はアプリケーションによっては可能性がある。その場合、ＲＯストア(メモリデバイス)(30)は、最後のインスタンスから必要な値を格納し、その値を、バス(31)を通じて、物理ストライプの次のインスタンスへ供給するために提供される。同じように、コンフィギュレーションストア(32)は、部分的にグローバルなバス(17)を通じて、仮想ストライプ２、３、６、７で、物理ストライプ(14)(16)をコンフィギュアする。ＲＯストア(34)は、所望により、ＲＯバス(35)を通じて、物理ストライプ(14)(16)へ前記値を供給する。
【００１９】
コンフィギュレーションストア(28)、ＲＯストア(30)、コンフィギュレーションストア(32)及びＲＯストア(31)は、コントローラ(38)に反応する。コントローラ(38)は、コンフィギュレーションの管理とデータの管理という２つの主要な機能を具えている。当該分野の専門家であれば、コントローラ(38)の機能は複数のコントローラによってもたらされることを認識するであろう。コンフィギュレーション管理とデータ管理の詳細については、文献[Schmit, et al, "Managing Pipeline-ReconfigurableFPGAs"published in ACM 6th International Symposium on FPGAs, February 1998]に記載されており、この文献の全体はその引用を以て本願への記載加入とする。コントローラ(38)によって実行されるタスクのより詳細な内容については、前記文献を参照することができる。
【００２０】
図６の説明により、物理ストライプ(10)は、第１仮想ストライプ０でコンフィギュアされることができる唯一の物理ストライプであることがわかる。結果として、物理ストライプ(10)だけが入力バス(40)に接続される。出力バス(42)は物理ストライプ(14)(16)に繋がっている。例えば、４つの仮想ストライプを有するプロセスのように、８より少ない数の仮想ストライプを有する方法を実行するのに、図６の４つのストライプファブリックを用いることは可能である。その場合、物理ストライプ(12)でコンフィギュアされる第５の仮想ストライプは、プロセスの最後の出力を有する。しかしながら、物理ストライプ(12)は、出力バス(42)とは繋がっていない。それゆえ、物理ストライプ(14)を、ヌルコンフィギュレーションでコンフィギュアする必要がある。ヌルコンフィギュレーションの目的は、物理ストライプ(12)(仮想ストライプ５)で作成された最後の出力を、最後の出力信号の状態を一切変えることなく、物理ストライプ(14)を通じて出力バス(42)へ伝播させることである。出力が、出力バスに繋がった物理ストライプへ伝播されるように、２以上の物理ストライプがヌルコンフィギュレーションでコンフィギュアされねばならないこともあり得る。ヌルコンフィギュレーションは、例えば、単一クロックサイクルで物理ストライプに書き込まれたコンフィギュレーションワードを通じて、他のどんなコンフィギュレーションのような物理ストライプに書き込まれることができる。
【００２１】
図７は、図６に示されたリコンフィギュラブルファブリックと共に用いられることができるプロセッシングエレメント(44)の実施例のブロック図である。より具体的には、図７に示されるＰＥ(44)は、物理ストライプ(14)(16)の１つの中で実行されることができる。同様なＰＥは、物理ストライプ(10)(12)で用いられることはできるが、そのようなＰＥｓは出力バス(42)とは繋がっておらず、物理ストライプ(10)のＰＥｓは、入力バス(40)と繋がっている。
【００２２】
ローカルなインターストライプ接続を通じて、ＰＥｓは先のストライプの登録された出力からオペランドへアクセスすることができる。ストライプ内の接続を通じて、同じストライプ内の他のＰＥｓの登録された出力又は未登録の出力へアクセスすることができる。パスレジスタファイル(46)は、パスレジスタファイル(46)は、効率的で、ローカルなインターストライプ接続を実現し易くする。プログラムは、ＡＬＵの出力を、パスレジスタファイル(46)の中の任意のレジスタに書き込むことができる。ＡＬＵが特定のレジスタに書き込みをしない場合、そのレジスタの値は、先のストライプの対応するパスレジスタ値からもたらされるであろう。このように、データ値は、ストライプ内の接続(48)を通じて、ストライプ内を側方に(laterally)移動する。さらに、各ＰＥにおけるシフター(50)は、その入力Ｂ−１ビットを左側にシフトさせる。このように、ファブリックは、文字ベースの算術に必要なデータアラインメント(data alignments)を取り扱うことができる。ＰＥｓの構造及び動作のさらなる詳細については、文献[Schmit, et al,"PipeRench : a virtualized programmable data path in 0.18 Micron Technology", in Proceedings of the IEEE Custom Integrated Circuits Conference (CICC), 2002]を参照することができ、その全体について、引用を以て本願への記載加入とする。
【００２３】
図８は、８つのストライプを必要とするプロセスを実行するために、図６の４つのストライプファブリックの使用例を示している。図８は、各々の物理ステージが１２サイクルを実行するときにコンフィギュアされる方法を示している。このようなリコンフィギュラブルファブリックの動作のさらなる詳細については、文献[Schmit, "PipeRench : a reconfigurable, architectural and compiler", IEEE Computer, pages 70-76 (April 2000)]を参照することができ、その全体について、引用を以て本願への記載加入とする。
【００２４】
本発明を、その望ましい実施例に関して説明したが、当該分野の専門家であれば、多くの変形及び変更を行なうことはできるであろう。例えば、５以上の物理ストライプを有し、９以上の仮想ストライプを実行し、ビット幅がより小さいか又はより大きく、異なるオペレータでＡＬＵｓを使用し、パイプライン又はリングコンフィギュレーションに接続されたリコンフィギュラブルデバイスも、本発明に包含される。図面に示され、前述したアーキテクチャ及びＰＥは、本発明の例示を目的として提供されるものであり、前記アーキテクチャ及びＰＥが本発明を実施するための唯一の実施例を意味するものではない。本発明は、前記の記載ではなく、特許請求の範囲の記載によって規定される。
【図面の簡単な説明】
【００２５】
【図１Ａ】３段階リコンフィギュラブルファブリック上で５段階パイプラインを仮想化するプロセスを示す図である。
【図１Ｂ】３段階リコンフィギュラブルファブリック上で５段階パイプラインを仮想化するプロセスを示す図である。
【図２】リコンフィギュラブルファブリックのストライプを示す図である。
【図３】グローバルなマッピングを示す図である。
【図４】ローカル・アソシエーションのオプションを示す図である。
【図５】本発明に係るハイブリッド・アソシエーションのオプションを示す図である。
【図６】図５に示されたアソシエーションに基づいて相互接続された４つのストライプを有するリコンフィギュラブルファブリックの概要を示す図である。
【図７】図６に示されたリコンフィギュラブルファブリックと共に用いられるプロセッシングエレメント(processing element; ＰＥ)の一実施例のブロック図である。
【図８】８つのストライプを必要とするプロセスを実施するために、図６の４つのストライプファブリックを用いた例を示す図である。
【図１Ａ】
2005539293.tif 000003
【図１Ｂ】
2005539293.tif 000004
【図２】
2005539293.tif 000005
【図３】
2005539293.tif 000006
【図４】
2005539293.tif 000007
【図５】
2005539293.tif 000008
【図６】
2005539293.tif 000009
【図７】
2005539293.tif 000010
【図８】
2005539293.tif 000011
【手続補正書】
【提出日】平成16年11月3日(2004.11.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のストライプの中に配置された複数のプロセッシングエレメントをコンフィギュアする方法であって、
第１の部分的グローバルバスを用いて、第１の仮想ストライプ群からの仮想ストライプで、２以上の物理ストライプのどちらかをコンフィギュアし、
第１の部分的グローバルバスとは異なる第２の部分的グローバルバスを用いて、第１の仮想ストライプ群とは繋がっていない第２の仮想ストライプ群からの仮想ストライプで、２以上の追加の物理ストライプのどちらかをコンフィギュアすることを含んでいる、方法。
【請求項２】
２以上の物理ストライプのどちらかをコンフィギュアするステップと２以上の追加の物理ストライプのどちらかをコンフィギュアするステップは、コンフィギュレーションメモリから前記物理ストライプの各々にコンフィギュレーションワードを書き込むことを含んでいる請求項１の方法。
【請求項３】
物理ストライプにコンフィギュレーションワードを書き込むステップは、１クロックサイクルで行われる請求項２の方法。
【請求項４】
各々の物理ストライプにコンフィギュアされる次の仮想ストライプのテーブルを維持するステップをさらに含んでいる請求項１の方法。
【請求項５】
物理ストライプの１つは、前の物理ストライプの出力が、出力の状態を変えることなく、ヌルコンフィギュアされた物理ストライプを通過できるように、ヌルコンフィギュレーションでコンフィギュアされる請求項１の方法。
【請求項６】
部分的グローバルバスを用いて、仮想ストライプ群を、２以上の物理ストライプと連繋し、
前の物理ストライプの出力が、出力の状態を変えることなく、ヌルコンフィギュアされた物理ストライプを通過できるように、物理ストライプをヌルコンフィギュレーションでコンフィギュアすることを含んでいる方法。
【請求項７】
ヌルコンフィギュレーションで物理ストライプをコンフィギュアするステップは、コンフィギュレーションメモリから、ヌルコンフィギュレーションワードを物理ストライプに書き込むことを含んでいる請求項６の方法。
【請求項８】
ヌルコンフィギュレーションワードの物理ストライプへの書込みは、１回のクロックサイクルで行われる請求項７の方法。
【請求項９】
ヌルコンフィギュレーションがコンフィギュアされるべき各物理ストライプを決定することをさらに含んでいる請求項６の方法。
【請求項１０】
複数のプロセッシングエレメントが複数のストライプの中に配置されるタイプのデバイスにおいて、仮想ストライプを物理ストライプに連繋する方法であって、
第１の部分的グローバルバスを用いて、第１の仮想ストライプ群を、２以上の物理ストライプに連繋し、
第１の部分的グローバルバスとは異なる第２の部分的グローバルバスを用いて、第１の仮想ストライプ群とは繋がっていない第２の仮想ストライプ群を、２以上の追加の物理ストライプと連繋することを含んでいる、方法。
【請求項１１】
コントローラと、
該コントローラに応答可能なメモリデバイスと、
複数のストライプに配置された複数のプロセッシングエレメントと、
ストライプ内のプロセッシングエレメントを接続するための複数のイントラストライプ接続と、
１つのストライプの出力を、他のストライプに接続するための複数のローカル・インターストライプ接続と、
複数の物理ストライプのうち１以上であるが全部よりは少ない数の物理ストライプをメモリに接続するための複数のグローバル・インターストライプと、
各々が１以上の物理ストライプに接続された入力バス及び出力バスと、
を具えているリコンフィギュラブルデバイス。
【請求項１２】
出力バスは、全てが単一のグローバル・インターストライプ接続によって相互接続された複数の物理ストライプに接続される請求項１１のデバイス。
【請求項１３】
前記ストライプの少なくとも一部をメモリに接続するためのリストアバスをさらに含んでいる請求項１１のデバイス。
【請求項１４】
リストアメモリをさらに含んでおり、前記リストアバスは、前記ストライプの少なくとも一部を前記リストアメモリに接続する請求項１３のデバイス。
【国際調査報告】
2005539293.tif 000012
2005539293.tif 000013