(57)【特許請求の範囲】
【請求項１】
スイッチボックスのブロードキャストセットに編成されたスイッチボックスのアレイと、各スイッチボックスが、対応する構成ワードに従って構成可能なプログラマブル命令セルおよびスイッチファブリックを含み、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたラッチアレイを含み、ここにおいて、各構成ワードが複数の構成ビットを備え、各ラッチアレイが、前記複数の構成ビットに対応する複数のラッチを備える、
前記複数のブロードキャストセットに対応する複数の構成バスと、各構成バスが、前記複数の構成ビットに対応する複数の構成ビット導体を備え、各構成ビット導体が、前記対応する構成ビットを伝導するように構成され、ここにおいて、各ブロードキャストセットについて、各構成ビットのための前記対応する構成ビット導体が、前記ブロードキャストセットのための各ラッチアレイ中の前記対応するラッチのためのデータ入力端子に結合する、
各ラッチアレイが前記対応する構成バスからのそれの対応する構成ワードをラッチするように前記ラッチアレイを選択的にアドレス指定するように構成されたアドレス指定回路と
を備える、再構成可能命令セルアレイ（ＲＩＣＡ）。
【請求項２】
前記ラッチアレイ中の前記ラッチが、デフォルト状態で透過的になるように構成され、前記アドレス指定回路によってアドレス指定されたことに応答して閉じるように構成された、請求項１に記載のＲＩＣＡ。
【請求項３】
前記スイッチボックスが行および列中に配置され、ここにおいて、前記アドレス指定回路が、スイッチボックスの各行について前記ラッチアレイを選択的にアドレス指定するように構成された、請求項１に記載のＲＩＣＡ。
【請求項４】
前記アドレス指定回路がシフトレジスタを備える、請求項３に記載のＲＩＣＡ。
【請求項５】
前記シフトレジスタが、デフォルト状態でリセットされるように構成され、前記ラッチアレイの行を連続的に閉じるためにＲＩＣＡクロックのサイクルに応答してラッチングワードを連続的にシフトするように構成された、請求項４に記載のＲＩＣＡ。
【請求項６】
前記スイッチボックスの前記アレイが行および列中に配置され、ここにおいて、第１の複数の前記ブロードキャストセットがそれぞれ前記アレイの全ての列のうちの一方の側の半分の各列を備え、ここにおいて、第２の複数の前記ブロードキャストセットがそれぞれ前記アレイの全ての列のうちの他方の側の半分の各列を備える、請求項１に記載のＲＩＣＡ。
【請求項７】
前記第１の複数の前記ブロードキャストセットのための前記構成ワードを記憶するための第１のメモリと、
前記第２の複数の前記ブロードキャストセットのための前記構成ワードを記憶するための第２のメモリと
をさらに備える、請求項６に記載のＲＩＣＡ。
【請求項８】
前記第１のメモリと前記第２のメモリとが、ＲＩＣＡクロックのサイクルに応答して前記構成ワードを前記対応するバス導体中に駆動するように制御される、請求項７に記載のＲＩＣＡ。
【請求項９】
前記ラッチがそれぞれ、デフォルト状態で閉じられるように構成され、前記アドレス指定回路によってアドレス指定されたことに応答して開き、次いで再び閉じるように構成された、請求項１に記載のＲＩＣＡ。
【請求項１０】
各構成ワードが、前記対応するラッチアレイのための行を識別するタグアドレスに関連付けられ、ここにおいて、前記第１のメモリは、前記第１の複数のブロードキャストセットのための前記構成バスを駆動する所与の時間に前記構成ワードがすべて同じタグアドレスを有するように制御され、ここにおいて、前記第２のメモリは、前記第２の複数のブロードキャストセットのための前記構成バスを駆動する所与の時間に前記構成ワードがすべて前記同じタグアドレスを有するように制御され、ここにおいて、前記アドレス指定回路が、前記複数の行に対応する複数の比較器を備え、各比較器が、受信されたタグアドレスを前記対応する行についてのアドレスと比較するように構成された、請求項７に記載のＲＩＣＡ。
【請求項１１】
各構成バスが、対応する一連の構成ワードにより、前記対応する構成ワードの最初の構成ワードから前記対応する構成ワードの最後の構成ワードまでの順序で、連続的に駆動されるように、一連の構成ワードを複数の構成バスに連続的にブロードキャストすることと、
各構成バスにおいて、最初のラッチアレイから最後のラッチアレイまでの前記順序で配置された対応する複数のラッチアレイのためのデータ入力端子において、前記連続的に駆動される対応する構成ワードを並列に受信することと、ここにおいて、各ラッチアレイが、デフォルト状態で透過的になるように構成され、
各ラッチアレイが、対応する構成ワードをラッチするように、前記順序に従って前記ラッチアレイを閉じることと
を備える、方法。
【請求項１２】
各ラッチアレイが、命令セルとスイッチングファブリックとを有する対応するスイッチボックス中に含まれ、前記方法は、前記スイッチボックスのラッチアレイ中で前記構成ワードがラッチされたことに応答して各スイッチボックスの命令セルとスイッチングファブリックとを構成することをさらに備える、請求項１１に記載の方法。
【請求項１３】
前記構成ワードが次状態構成ワードであり、前記ラッチアレイが次状態ラッチアレイであり、ここにおいて、各スイッチボックスを構成することが、前記次状態ラッチアレイに記憶された前記次状態構成ワードを、対応する現在状態ラッチアレイ中にラッチすることを備える、請求項１２に記載の方法。
【請求項１４】
前記ラッチを連続的に閉じることは、ラッチングワードがシフトレジスタ中にシフトされたことに応答する、請求項１１に記載の方法。
【請求項１５】
前記シフトレジスタを介して前記ラッチングワードをシフトすることは、前記ラッチングワードが前記シフトレジスタ中に完全にシフトされた後に前記ラッチアレイがすべて閉じられるように、クロックに応答して行われる、請求項１４に記載の方法。
【請求項１６】
前記ラッチアレイを連続的に閉じることが、各構成ワードに関連付けられたタグアドレスの比較に応答して行われる、請求項１１に記載の方法。
【請求項１７】
前記タグアドレスがラッチアレイの行を識別する、請求項１６に記載の方法。
【請求項１８】
前記タグアドレスが行および列アドレスにおいてラッチアレイを識別する、請求項１６に記載の方法。
【請求項１９】
スイッチボックスのブロードキャストセットに編成されたスイッチボックスのアレイと、各スイッチボックスが、対応する構成ワードに従って構成可能なプログラマブル命令セルおよびスイッチファブリックを含み、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたラッチアレイを含み、ここにおいて、各構成ワードが複数の構成ビットを備え、各ラッチアレイが、前記複数の構成ビットに対応する複数のラッチを備える、
ブロードキャストセット端子中の前記ラッチアレイのための入力データ端子が、ブロードキャストされた構成ワードを並列に受信するように、前記構成ワードを各ブロードキャストセット中にブロードキャストするための手段と、
前記ブロードキャストされた構成ワードを選択的ラッチするために各ブロードキャストセット中の前記ラッチアレイをアドレス指定するための手段と
を備える、再構成可能命令セルアレイ（ＲＩＣＡ）。
【請求項２０】
各ブロードキャストセット中の前記ラッチアレイをアドレス指定するための前記手段が、シフトレジスタを備える、請求項１９に記載のＲＩＣＡ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]  本出願は、その全体が参照により本明細書に組み込まれる、２０１３年３月５日に出願された米国非仮出願第１３／７８４，８２７号の優先権を主張する。
【０００２】
[0002]  本出願は、再構成可能計算に関し、より詳細には、並列構成または再構成可能命令セルアレイ（reconfigurable instruction cell array）に関する。
【背景技術】
【０００３】
[0003]  プロセッサ速度が漸進的に向上してきたが、計算能力の向上の必要は衰えないままである。たとえば、スマートフォンは、現在、それらのプロセッサに当惑させるほどの様々なタスクを負わせている。しかし、シングルコアプロセッサは、所与の時間に極めて多くの命令に適応することしかできない。したがって、現在、命令のセットを並列に処理することができるマルチコアまたはマルチスレッドプロセッサを設けることが一般的である。しかし、そのような命令ベースのアーキテクチャは、命令処理時間を増加させることに関してダイスペースと電力消費と複雑さとによって課される限界と常に戦わなければならない。
【０００４】
[0004]  プログラマブル処理コアの使用と比較して、専用ハードウェア中でより効率的に処理され得る多くのアルゴリズムがある。たとえば、画像処理は、処理ステップのパイプラインを介して実質的な並列処理（parallelism）とグループでのピクセルの処理とを伴う。アルゴリズムが次いでハードウェアにマッピングされた場合、実装形態は、この対称性および並列処理を利用する。しかし、専用ハードウェアを設計することは、アルゴリズムが変更された場合に専用ハードウェアが再設計されなければならないという点で、費用がかかり、また煩雑である。
【０００５】
[0005]  命令ベースのアーキテクチャと専用ハードウェア手法との間の効率的な折衷を与えるために、再構成可能命令セルアレイ（ＲＩＣＡ：reconfigurable instruction cell array）アーキテクチャが開発された。図１Ａに、再構成可能コア１を有する例示的なＲＩＣＡシステム５０を示す。ＲＩＣＡ５０では、加算器（ＡＤＤ）、乗算器（ＭＵＬ）、レジスタ（ＲＥＧ）、論理演算シフタ（ＳＨＩＦＴ）、分割器（ＤＩＶ）、データ比較器（ＣＯＭＰ）、論理ゲート（ＬＯＧＩＣ）、および論理ジャンプセル（ＪＵＭＰ）など、複数の命令セル２がプログラマブルスイッチングファブリック（programmable switching fabric）４を介して相互接続される。命令セル２が実装する論理機能（logical function）または命令に関する命令セル２の構成は、所与のアルゴリズムまたは機能を実装するために必要に応じて再プログラムされ得る。スイッチングファブリック４は、それに応じて同様に再プログラムされることになる。命令セル２は、データメモリ８中に取り出されたまたはロードされた命令セル２のうちの残りの命令セル２のためのデータをインターフェースするメモリインターフェースセル１２を含む。命令セル２によって生じる処理は、構成ＲＡＭ６から取得される構成命令１０に従って行われる。復号モジュール１１は、命令セル２のための構成データだけでなく、スイッチングファブリック４のための構成データをも得るために命令１０を復号する。ＲＩＣＡ５０は、Ｉ／Ｏポート１６と特殊命令セルレジスタ１４とを介して外部システムとインターフェースする。図１Ａに示された追加の特徴は、その内容全体が参照により本明細書に組み込まれる、２００６年４月２８日に出願された米国特許公開第２０１０／０１２２１０５号に記載されている。
【０００６】
[0006]  命令セルを行および列による再構成可能アレイ中に配置することが通常である。各命令セルと、関連するレジスタと、命令セルのための関連する入力および出力スイッチングファブリックとは、スイッチングボックス内に常駐すると見なされ得る。図１Ｂに、行および列に配置されたスイッチボックス（switch box）の例示的なアレイを示す。選択されたスイッチボックス間に形成されたデータ経路は、複数のチャネルからの選択されたチャネル上で搬送される。また、チャネルは、スイッチボックスのための行および列に一致する行および列に配置される。各チャネルはビット単位のある幅を有する。行方向は東および西に走ると見なされ得るが、列方向は北および南に走る。初期スイッチボックス１００中の命令セルにおいて開始するデータ経路は、東行方向の出力チャネル１０１上でルーティングする。後続のスイッチボックスからのデータ経路のためのルーティングは、何らかの選択された行および列位置における最終スイッチボックス１０５に達するような適切な東／西行方向または北／南列方向にある。この例示的なデータ経路では、２つの命令セルが算術論理ユニット（ＡＬＵ：arithmetic logic unit）１１０として構成される。残りのスイッチボックスのための命令セルは説明の明快のために図示しない。各スイッチボックスは、２つのスイッチマトリックスまたはファブリック、すなわち、それの命令セルへのチャネル入力のために選択すべき入力スイッチファブリックと、また、スイッチボックスからのチャネル出力のために選択すべき出力スイッチファブリックとを含む。
【０００７】
[0007]  命令セルとは対照的に、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：field programmable gate array）中の論理ブロックはルックアップテーブル（ＬＵＴ：lookup table）を使用する。たとえば、構成されたＦＰＧＡ中で行われる論理演算においてＡＮＤゲートを必要とすると仮定する。対応するＬＵＴは、ＡＮＤゲート論理機能のための真理値表を用いてプログラムされることになる。しかし、命令セルは、それが専用論理ゲートを含んでいるという点ではるかに「粗粒（coarse-grained）」である。たとえば、ＡＬＵ命令セルは、類別された専用論理ゲートを含むことになる。それは、構成可能であるＡＬＵ命令セルの機能であり、それのプリミティブ論理ゲートは専用ゲートであり、したがって非構成可能である。たとえば、従来のＣＭＯＳインバータは専用論理ゲートの１つのタイプである。そのようなインバータについて構成可能なものはなく、それは構成ビットを必要としない。しかし、ＦＰＧＡプログラマブル論理ブロック中のインバータ機能のインスタンス化は、代わりにＬＵＴの真理値表の対応するプログラミングによって実行される。したがって、本明細書で使用する「命令セル（instruction cell）」という用語は、専用論理ゲートを備える構成可能な論理要素を指す。
【０００８】
[0008]  ＡＬＵ命令セルは１つまたは複数のオペランドに対してそれの論理機能を実行する。このコンテキストにおけるオペランドは受信チャネル入力である。それの構成ビットに応じて、ＡＬＵ命令セルは、対応する論理演算を実行するように構成される。たとえば、第１のスイッチボックスは、２つのチャネル入力に対応する２つのオペランドを加算するように構成されたＡＬＵ命令セルを含み得る。しかし、同じＡＬＵ命令セルは、２つのオペランドを減算するために後で更新され得る。命令セル内の論理演算から生じたオペランドは別の命令セル中で必要とされ得る。したがって、第１のスイッチボックス中の出力スイッチファブリックは、対応するチャネル出力を介して第１のスイッチボックスの中から生じたオペランドを駆動するように構成され得る。対照的に、ＦＰＧＡのＬＵＴはビットを生成し、それらはワードを生成しない。したがって、ＦＰＧＡ中のスイッチファブリックは、ＦＰＧＡのスイッチファブリックがＦＰＧＡのＬＵＴからビットをルーティングするように構成されるという点で、ＲＩＣＡ中のスイッチファブリックとは基本的に異なる。対照的に、ＲＩＣＡ中のスイッチボックス間のルーティングは、入力チャネルと出力チャネルの両方としてワードをルーティングするように構成される。たとえば、スイッチボックスアレイは、２０個のチャネルをルーティングするように構成され得る。そのような実施形態におけるスイッチボックスは、したがって、すべての４つの方向から２０個の入力チャネルを受信し、４つの方向において２０個の出力チャネルを駆動し得る。
【０００９】
[0009]  命令セルが専用論理ゲートを備えるので、構成データの必要な量は同等のＦＰＧＡのための構成データよりも実質的に少ないというＲＩＣＡの利点に留意されたい。スイッチボックスは、したがって、再構成がコンパニオンプロセッサに対して事実上リアルタイムであるような比較的短い遅延にわたって容易に再構成され得る。対照的に、ＦＰＧＡのための大量の構成データは、ＦＰＧＡ中へのそれのローディングのためにかなりの遅延を必要とする。また、ＲＩＣＡは、旧来のプロセッサにおけるソフトウェアベースの実装形態と比較して処理速度の利点を有する。たとえば、パイプライン処理方式を介して複数のピクセルを処理することを伴う画像処理などのアルゴリズムは、専用ハードウェア手法をエミュレートする様式で命令セルにマッピングされ得る。しかし、専用ハードウェアを設計する必要はない。代わりに、単に、必要に応じて命令セルとスイッチングファブリックとを構成することができる。したがって、アルゴリズムが再設計されなければならない場合、ハードウェア再設計の必要はないが、代わりに、ユーザは、単に構成データを変更し得る。これは旧来の命令ベースの計算手法よりも極めて有利である。
【００１０】
[0010]  ＲＩＣＡは、したがって、ロバストな利点を提供するが、それの実装形態において課題が残っている。たとえば、命令セルとスイッチングファブリックとの構成のためになど、各スイッチボックス内の構成可能な要素のためにいくつかの構成ビットが必要とされる。各スイッチングボックスは、したがって、それの構成ビットを記憶するための記憶要素を必要とする。例示的な一実施形態では、（４００個のスイッチボックスを生じる）２０個の行と２０個の列とのアレイは、それの構成のために７７キロビットを必要とする。極めて多くの構成ビットのローディングのための回路は貴重なダイスペースと電力とを消費する。さらに、ＲＩＣＡは、構成ビットのローディングのために最小レイテンシを必要とする。その点において、命令セルはＲＩＣＡ中に静的にプログラムされず、たとえば、命令セルは通常動作中に数回再構成され得る。それは、そのような頻繁な再プログラミングを必要としないことがあるが、能力は提供されるべきである。そのようなマイクロプロセッサ他のシステムがＲＩＣＡとインターフェースしていることがあるので、再構成のレイテンシは、ストールを防ぐために最小限に抑えられなければならない。
【００１１】
[0011]  したがって、当技術分野において、再構成可能命令セルアレイのためのエリア効率的で低レイテンシの構成方式が必要である。
【発明の概要】
【００１２】
[0012]  再構成可能命令セルアレイ（ＲＩＣＡ）が複数のスイッチボックスを含む。各スイッチボックスは、スイッチボックスのためのラッチアレイに記憶された構成ワード（configuration word）に従って構成可能な命令セルとスイッチファブリックとを含む。スイッチボックスは、各ブロードキャストセット（broadcast set）中のラッチアレイが構成ワードを並列に受信するようにブロードキャストセットに構成される。構成ワードを記憶するためのフリップフロップの使用と比較して、開示するＲＩＣＡのために必要なダイスペースは、したがって、実質的に低減される。
【図面の簡単な説明】
【００１３】
【図１Ａ】[0013]  例示的な再構成可能命令セルアレイ（ＲＩＣＡ）についてのブロック図。
【図１Ｂ】[0014]  図１ＡのＲＩＣＡ中のスイッチボックスのアレイについてのブロック図。
【図２】[0015]  各ブロードキャストセットのスイッチボックスが構成ワードを並列に受信するように構成されるように、ブロードキャストセット中に配置されたスイッチボックスのアレイを示す図。
【図３】[0016]  ラッチアレイが、ラッチングワードがシフトレジスタを介してシフトされたことに応答して閉じられるように構成された、ブロードキャストセットの一部分中の複数のラッチアレイについての高レベル概略図。
【図４Ａ】[0017]  各ブロードキャストセットのスイッチボックスが構成ワードを並列に受信するように構成されるように、ブロードキャストセット中に配置されたスイッチボックスのアレイを有するＲＩＣＡについてのより詳細な概略図。
【図４Ｂ】[0018]  図４ＡのＲＩＣＡの構成、更新、およびテストのためのタイミング図。
【図５】[0019]  ラッチアレイが、比較器がタグアドレスを行アドレスと比較したことに応答して閉じられるように構成された、ブロードキャストセットの一部分中の複数のラッチアレイについての高レベル概略図。
【図６】[0020]  ラッチアレイが、比較器がタグアドレスを行および列アドレスと比較したことに応答して閉じられるように構成された、ブロードキャストセットの一部分中の複数のラッチアレイについての高レベル概略図。
【図７】[0021]  ラッチがスキャンモードのためにも構成された、構成ビットの次状態（next-state）ラッチと対応する現在状態（current-state）ラッチとについての高レベル概略図。
【図８】[0022]  構成ワードをスイッチボックスアレイ中に並列にブロードキャストする方法についてのフローチャート。
【発明を実施するための形態】
【００１４】
[0023]  本発明の実施形態およびそれらの利点は、以下の発明を実施するための形態を参照することによって最も良く理解される。図のうちの１つまたは複数に示された同様の要素を識別するために同様の参照番号が使用されることを諒解されたい。
【００１５】
[0024]  構成データがスイッチボックスのセットに並列にブロードキャストされる再構成可能命令セルアレイ（ＲＩＣＡ）が提供される。ダイスペースを節約するために、スイッチボックス内の構成データはラッチに記憶される。フリップフロップの使用と比較して、必要なダイスペースは、したがって、実質的に低減される。
【００１６】
[0025]  スイッチボックス中の命令セルと入力および出力スイッチファブリックとを構成すべき構成データは、最初の構成ビットから最後の構成ビットにわたる複数の構成ビットを備える構成ワードを形成すると見なされ得る。各スイッチボックスのための入力および出力スイッチファブリックを本明細書ではまとめて単一のスイッチファブリックと呼ぶ。各スイッチボックスは、したがって、スイッチボックスの構成ワードのための複数の構成ビットに対応する複数のラッチを有するラッチアレイを含む。たとえば、ラッチアレイ中の第１のラッチは、構成ワードの対応する第１の構成ビットを記憶するように構成される。同様に、ラッチアレイ中の最終ラッチが、構成ワードのための対応する最終構成ビットを記憶するように構成されるように、ラッチアレイ中の第２のラッチは、構成ワードのための対応する第２の構成ビットを記憶するように構成され、以下同様である。各スイッチボックスのラッチアレイは、そのスイッチボックスのための対応する構成ワードを記憶する。
【００１７】
[0026]  １つのＲＩＣＡ実施形態では、各スイッチボックスは、それの命令セルとスイッチファブリックとのための現在状態構成ワードを記憶するだけでなく、次状態構成ワードをも記憶する。各スイッチボックスは、したがって、現在状態構成ワードを記憶するための現在状態ラッチアレイ、ならびに次状態構成ワードを記憶するための次状態ラッチアレイを有することになる。スイッチボックスは、それの次状態ラッチアレイからの次状態構成ワードを現在状態ラッチアレイ中にロードすることによって更新信号に応答する。並列ブロードキャストアーキテクチャについて、次状態ラッチアレイ中への次状態構成ワードのローディングに関して本明細書で説明する。しかしながら、本明細書で開示するローディング方式はまた、現在の構成ワードのみをロードするシステムに広く適用可能である。その点において、本明細書で開示する次状態ラッチアレイは、別段の必要がない限り、簡潔のために単に「ラッチアレイ（latch array）」と呼ぶ。
【００１８】
[0027]  スイッチボックスのアレイは行および列中に配置され得る。その点において、「行（row）」であること対「列（column）」であることは、単に観点の問題である。したがって、本明細書では行および列という用語を一般性の喪失なしに使用する。本明細書で説明する構成ワードの有利な並列ブロードキャスティングを可能にするために、スイッチボックスのブロードキャストセット中のラッチアレイはすべて、それらのデータ入力端子が、対応する構成バス（configuration bus）によって駆動される。たとえば、ブロードキャストセットは、アレイの列中に連続する一連のスイッチボックスを備え得る。対応する構成バスは、したがって、この連続する一連のスイッチボックスに結合することになる。
【００１９】
[0028]  各構成バスは、複数の構成ビットに対応する複数の構成ビット導体（configuration bit conductor）を備える。したがって、ラッチとまったく同様に、構成ビット導体のうちの第１の構成ビット導体が構成ワードのための第１の構成ビットに対応し、構成ビット導体のうちの第２の構成ビット導体が構成ワードのための第２の構成ビットに対応し、以下同様である。その点において、複数の構成ビット導体はまた、ブロードキャストセット中の各ラッチアレイ中の複数のラッチに対応する。所与の構成ビットのためのブロードキャストセット中のラッチは、それらのデータ入力端子が対応する構成ビット導体に並列に結合される。したがって、ブロードキャストセットの構成バスのための第１の構成ビット導体は、ブロードキャストセットのラッチアレイ中の各第１のラッチのためのデータ入力端子に結合する。同様に、ブロードキャストセットの構成バス中の第２のバス導体は、ブロードキャストセットのラッチアレイ中の各第２のラッチのためのデータ入力端子に結合し、以下同様である。
【００２０】
[0029]  ブロードキャストセットのラッチアレイへの構成バスのこの結合を仮定すれば、構成ワードが構成バス上に駆動されると、ブロードキャストセットのラッチアレイ中の各ラッチが、それのデータ入力端子において構成ワード中の対応する構成ビットを受信することになる。このようにして、構成ビットは、それらのそれぞれの構成ビット導体に沿って、対応するラッチのためのデータ入力端子にブロードキャストされる。
【００２１】
[0030]  図２に、ＲＩＣＡのスイッチボックスアレイ２００がスイッチボックスの２０個の行と２０個の列とを備える実施形態を示す。各列は、スイッチボックスアレイ２００が上側ハーフアレイと下側ハーフアレイとを備えるように、構成データの並列ブロードキャスティングに関して半分に分割される。各スイッチボックスブロードキャストセットは、したがって、ハーフアレイのうちの１つにおいて半分の列を備える。たとえば、下側ハーフアレイ中の１つのブロードキャストセットはスイッチボックス２１０からスイッチボックス２１５に延びる。各ハーフアレイのためのプログラムまたは構成メモリはハーフアレイの構成バス２２０を駆動する。したがって、上側ハーフアレイのためにプログラムメモリ北２０１があり、下側ハーフアレイのためにプログラムメモリ南２０５がある。各プログラムメモリ２０１および２０５は、構成ワードをそれの対応するハーフアレイのための構成バス２２０中に駆動するように構成される。たとえば、メモリ南２０５は、構成ワードを、対応する構成バス２２０を介してスイッチボックス２１０からスイッチボックス２１５に延びるブロードキャストセット中に駆動するように構成される。一実施形態では、各構成ワード幅は１９２ビットである。２０個のスイッチボックスの行の構成は、そのような実施形態では、したがって、３８４０ビットに等しい２０＊１９２ビットを必要とする。アレイ２００中に２０個の行があるので、アレイ２００のための構成データは、その場合、約７７キロビットに等しい２０＊３８４０ビットを備えることになる。
【００２２】
[0031]  代替実施形態では、単一の構成メモリがすべての構成ワードを記憶することができる。各ブロードキャストセットは、アレイ２００の対応する完全な列にわたって延びることになる。しかし、本明細書でさらに説明するように、各々がアレイ２００中にそのようなそれら自体のブロードキャストセットを有するハーフアレイ中にアレイが配置される実施形態では、構成プロセスのためのローディング時間は半分にされる。
【００２３】
[0032]  上記で説明したように、各スイッチボックス中のラッチは、各スイッチボックスがそれ自体の対応するラッチアレイを有するようにラッチアレイを形成すると見なされ得る。各ブロードキャストセット中のラッチアレイが構成ワードを並列に受信するので、所与のラッチアレイは、それが適切な構成ワードをラッチした後に閉じられるべきである。図３において、アドレス指定回路（addressing circuit）３００は、ブロードキャストセット３０１のためのラッチアレイ３２０中のラッチが閉じられているのか透過的（transparent）であるのかを制御する。説明の明快のために、ブロードキャストセット３０１のためのスイッチボックスの一部分のみが図３に示されている。さらなる説明の明快のために、ブロードキャストセット３０１中の各スイッチボックスは、それのラッチアレイ３２０によってのみ表される。各ラッチアレイ３２０は、それの対応するスイッチボックスの構成のための構成ワードを記憶する。ブロードキャストセット３０１では、第１のラッチアレイ３２０はアレイ２００のｊ番目の行中にあり、ただし、ｊは、ある任意のスイッチボックス行を表す。同様に、第２のラッチアレイ３２０は、アレイ２００の近隣の（ｊ＋１）番目の行中にある。最終的に、第３のラッチアレイ３２０は、アレイ２００の（ｊ＋２）番目の行中にある。ブロードキャストセット３０１中のスイッチボックスはすべて、スイッチボックスアレイ２００に関して説明したように同じ列中にある。
【００２４】
[0033]  各ラッチアレイ３２０は、ｎビットの幅を有する構成ワードを記憶するためにｎ個のラッチを有し、ｎは、ある任意のビット幅（たとえば、１９２ビットの前の例）を表す。各ラッチは、それの対応する構成ビットによって指定される。したがって、各ラッチアレイ３２０中の第１のラッチＬ１は、対応する構成ワードのための第１の構成ビットを記憶するように構成される。同様に、最終ラッチＬｎが、対応する構成ワードのための最終のｎ番目の構成ビットを記憶するように構成されるように、第２のラッチＬ２は、対応する構成ワードのための第２の構成ビットを記憶するように構成され、以下同様である。１９２ビット幅実施形態では、ｎは１９２になる。このようにして、ｉ番目の構成ビットは、対応するラッチＬｉによって記憶され、ただし、ｉは構成ビット幅内の任意の整数である。
【００２５】
[0034]  構成バス２２０は、各構成ワード中の複数の構成ビットに対応する複数の構成ビット導体を含む。初期構成ビット導体３２５は、第１の構成ビットをブロードキャストセット３０１中の各ラッチＬ１のためのデータ入力端子に結合するように構成される。同様に、最終構成ビット導体３３５が、最終構成ビットをブロードキャストセット中の各ラッチＬｎのためのデータ入力端子に結合するように構成されるように、第２の構成ビット導体３３０は、第２の構成ビットをブロードキャストセット中の各ラッチＬ２のためのデータ入力端子に結合するように構成され、以下同様である。このようにして、ｉ番目の構成ビットのためのｉ番目の構成ビット導体はすべて、ブロードキャストセット中のＬｉラッチに結合し、ただし、ｉは、１からｎにわたる構成ワード幅内の任意の整数である。
【００２６】
[0035]  一実施形態では、ブロードキャストセット中のすべてのラッチは、デフォルト（非アドレス指定）状態で透過的になるように構成され得る。構成ワードが、メモリ２０１または２０５などのメモリから取り出され、構成バス２２０中に駆動されるべきである場合、それは、ブロードキャストセット３０１中のすべてのラッチアレイ３２０内にラッチされることになる。デフォルト開（default-open）実施形態では、アドレス指定回路３００は、所与のラッチアレイ３２０中のラッチがデフォルト透過状態（default transparent state）から閉じられるかどうかを制御する。ブロードキャストセット３０１では、アドレス指定回路３００は、フリップフロップの対応するチェーンから形成されたシフトレジスタ３００を備える。再びアレイ２００を参照すると、スイッチボックスの各行中のラッチアレイは、シフトレジスタ３００中の対応するフリップフロップによって閉じられ得る。したがって、図３に示されているように、フリップフロップ３０５は、ｊ番目のスイッチボックス行中のラッチアレイ３２０が閉じられるかどうかを制御する。同様に、フリップフロップ３１０および３１５は、それぞれ（ｊ＋１）番目のスイッチボックス行および（ｊ＋２）番目のスイッチボックス行を制御する。各スイッチボックスのハーフアレイは対応するシフトレジスタ３００を有し得る。代替的に、単一のシフトレジスタ３００は、両方のハーフアレイをアドレス指定するように構成され得る。
【００２７】
[0036]  シフトレジスタ３００中の各フリップフロップはＲＩＣＡシステムクロック（ＣＬＫ）によってクロック制御され得る。デフォルト透過型実施形態では、シフトレジスタ３００中の各フリップフロップは最初にリセットされ得る。各フリップフロップからのＱ出力は、スイッチボックスの対応する行中のラッチのためのクロック入力またはイネーブル入力を駆動するストローブ信号として機能する。たとえば、フリップフロップ３０５からのＱ出力は、スイッチボックスのｊ番目の行中の各ラッチアレイ３２０中のラッチのためのクロック入力を駆動する。上記で説明したように、図３は、単一のブロードキャストセット３０１の一部分のみを示している。したがって、図３のｊ番目の行、（ｊ＋１）番目の行、（ｊ＋２）番目の行中の残りのスイッチボックスのためのラッチアレイは、説明の明快のために図示しない。各ラッチは、一実施形態ではレベルセンシティブロー（level-sensitive low）になり得る。したがって、そのようなラッチは、それらのクロック入力が高に駆動されたときに閉じられる。再びアレイ２００を参照すると、各ハーフアレイ中に１０個の行がある。したがって、シフトレジスタ３００は、透過性が低い実施形態の場合、最初に１０個の０を保持することになる。構成プロセス中に、すべての論理１の１０ビット幅ラッチングワードが、次いで、ＲＩＣＡクロックのサイクルに応答してシフトレジスタ３００中に連続的にシフトされ得る。初期ＲＩＣＡクロックサイクルでは、したがって、この行中のラッチがデフォルト開状態から閉じられるように、スイッチボックスの初期行が制御される。これは初期ＲＩＣＡクロックサイクルであるので、各ハーフアレイ中の対応するスイッチボックス行は、図２中のサイクル−１として指定される。ブロードキャストセット３０１の行順序に関して、サイクル−１行は、したがって、各ハーフアレイ中の最初の行である。ラッチングワードの連続論理１ビット値がシフトレジスタ３００中にシフトされるので、対応するスイッチボックス行中のラッチは閉じられる。したがって、１０回のＲＩＣＡクロックサイクルの後、サイクル−１０スイッチボックス行中のラッチは、所与のブロードキャストセットのための構成ワードのローディングを完了するために閉じられる。対照的に、各ブロードキャストセット３０１が（半分の列ではなく）完全な列にわたって延びるように、アレイ２００がハーフアレイに分割されない実施形態の場合、構成ワードのローディングは、２０回のクロックサイクルを必要とすることになる。各ブロードキャストセット３０１がちょうど半分の列にわたって延びるようなアレイ２００の分割は、したがって、必要なローディング時間を１／２だけ減らす。たとえば、各ＲＩＣＡクロックサイクルが３ナノ秒になるべきである場合、アレイ２００の構成は、ほんの３０ナノ秒を必要とすることになる。対照的に、同等のＦＰＧＡは、再構成のためにかなりより長く必要とすることになる。
【００２８】
[0037]  ローディングプロセス中に所与のＲＩＣＡクロックサイクル中でメモリ２０１および２０５から取り出される構成ワードの数は、スイッチボックス列の数（および、したがってハーフアレイごとのブロードキャストセットの数）に依存する。アレイ２００のために示された２０個の列がある場合、それに応じて、２０個の構成ワードが２０個の対応する構成バス２２０中に駆動される。
【００２９】
[0038]  スイッチボックスのアレイの並列構成のためのシフトレジスタ３００のより詳細な概略図が図４Ａに示されている。この実施形態では、０番目のブロードキャストセット４００からｍ番目のブロードキャストセット４０５にわたるｍ個のブロードキャストセットがあり、ただし、（ｍ＋１）は、このＲＩＣＡ実施形態では、ブロードキャストセットの数を表す整数である。説明の明快のために、４つのスイッチボックス、すなわち、第１のスイッチボックス４１０、第２のスイッチボックス４１５、第３のスイッチボックス４２０、および第４のスイッチボックス４２５のみが、ブロードキャストセット４００中に示されている。各スイッチボックスは、それの次状態のための構成ワードを記憶するための次状態ラッチアレイ（図示せず）を有する。構成ワードは、すべてＮビット幅であり、ただし、Ｎは、ある任意の正の整数である。したがって、Ｎビット幅構成バス２２０を各ブロードキャストセットに駆動する構成メモリ４３０が示されている。図４Ｂに、図４Ａ中の様々な信号のタイミングを示す。構成メモリ４３０は、チップ選択信号（ＣＳ＿Ｎ）４４０がローにアサートされたとき、ＲＩＣＡクロック４３５のサイクルに応答して構成ワードを取り出す。構成ワードの取出しより前に、リセット信号４４５は、シフトレジスタ３００とスイッチボックス中のラッチアレイとをリセットするようにアサートされる。各スイッチボックスは、それのクロック入力（Ｅ）がシフトレジスタ３００中の対応するフリップフロップによって駆動される。たがって、シフトレジスタ３００は、ブロードキャストセットにわたるスイッチボックスの各行のためのフリップフロップを含む。リセット信号４４５のアサーションに応答して、ブロードキャストセット中のすべての次状態ラッチアレイは、それらのデフォルト閉状態（default closed state）から開かれる。
【００３０】
[0039]  並列ローディングプロセスを開始するために、初期「ダミー（dummy）」フリップフロップ４４６は、論理１を登録することによってＲＩＣＡクロック４３５の初期ロードサイクル（initial load cycle）に応答する。このロードサイクル中に、構成メモリ４３０は、アドレス信号４５１に応答して構成ワードの第１のセットを取り出す。ブロードキャストセット４００の場合、初期構成ワードはｄｏｕｔ＜１＞として示される。
【００３１】
[0040]  シフトレジスタ３００中の各後続のフリップフロップは、次いで、ダミーフリップフロップ４４５からシフトレジスタ３００を介してシフトされた、すべての論理１値の得られたラッチングワードをそれがラッチするとき、それのストローブ信号が高になるので、スイッチボックスのそれの対応する行中の次状態ラッチアレイを閉じることになる。ＲＩＣＡクロック４３５のサイクル１中に、ブロードキャストセット４００中のすべての次状態ラッチアレイはｄｏｕｔ＜１＞構成ワードをラッチする。シフトレジスタ３００中の初期フリップフロップ４５０は、サイクル１中のダミーフリップフロップ４４５から論理１値を登録する。フリップフロップ４５０から出力されたストローブ信号Ｓ１は、したがって、サイクル１中でＲＩＣＡクロック４３５が高（high）に回帰することに応答して高になる。スイッチボックス４１０中の次状態ラッチアレイは、したがって、スイッチボックス４１０を含む行のためのすべての他の次状態ラッチアレイが閉じるこの時点で閉じる。ＲＩＣＡクロック４３５の後続のサイクル２では、ｄｏｕｔ＜２＞構成ワードは、構成メモリ４３０によってブロードキャストセット４００のための構成バス２２０中に駆動される。しかし、スイッチボックス４１５、４２０、および４２５中の次状態ラッチアレイのみは、スイッチボックス４１５、４２０、および４２５を含む対応する行中のすべての他の次状態ラッチとともにこの時点で開いている。サイクル２中に、フリップフロップ４５５はフリップフロップ４５０からのＳ１出力をラッチする。フリップフロップ４５５は、したがって、ストローブ信号Ｓ２を使用してこの時点でスイッチボックス４１５を含む行中の次状態ラッチアレイを閉じる。
【００３２】
[0041]  このようにして、各後続のフリップフロップからのストローブ（Ｓ）信号は、フリップフロップがシフトレジスタ３００を介してシフトされている論理１値をラッチするときに高になる。たとえば、フリップフロップ４６０はＲＩＣＡクロック４３５のサイクル３中にストローブ信号Ｓ３をアサートする。同様に、フリップフロップ４６０はＲＩＣＡクロック４３５のサイクル４中にストローブ信号Ｓ４をアサートする。このようにして、構成ワードが所与のブロードキャストセット中のすべての次状態ラッチアレイに並列にブロードキャストされるにもかかわらず、各次状態ラッチアレイは、それの対応する構成ワードをラッチする。ＲＩＣＡクロック４３５のサイクルは、したがって、図４Ｂに示されているように次状態（ＮＳ：next-state）ロードクロック４９０のサイクルとして示され得る。クロックサイクルＮＳ＜１＞では、スイッチボックス４１０中の次状態ラッチアレイはｄｏｕｔ＜１＞をラッチし、閉じる。同様に、クロックサイクルＮＳ＜２＞では、スイッチボックス４１５中の次状態ラッチアレイはｄｏｕｔ＜２＞をラッチし、閉じ、以下同様である。その点において、シフトレジスタ３００中の所与のフリップフロップ中で論理１がラッチされると、そのフリップフロップは、オール１ラッチングワードがシフトレジスタ３００中に完全にシフトされたとき、後続のＲＩＣＡクロックサイクル中の論理１をラッチすることになる。このようにして、所与の行中のラッチアレイが閉じられると、それらは構成プロセス中に閉じられたままになることになる。
【００３３】
[0042]  テストモードでは、走査イン信号（scan-in signal）４７０が使用される。このモードについて以下でさらに説明する。さらに、対応する現在状態ラッチアレイ中への、ブロードキャストセット４００中の次状態ラッチアレイに記憶された構成ワードのシフトについても、以下でさらに説明する。
【００３４】
[0043]  閉じられることに関して、ラッチがレベルセンシティブハイ（level-sensitive high）であるように構成されるのかロー（low）であるように構成されるのかは、任意であることに留意されたい。その上、ラッチについてのデフォルト状態を透過的にするのではなく、デフォルト状態は代替実施形態では閉じられ得る。そのような実施形態では、シフトレジスタ３００などのアドレス指定回路は、適切なラッチアレイを開き、次いで、所与の構成ワードが構成バス２２０中に駆動されたときに適切なラッチアレイを閉じるように構成されることになる。その点において、アドレス指定回路が、所与のＲＩＣＡクロックサイクル中で対応するラッチを閉じるだけでよいという点で、デフォルト状態がすべての次状態ラッチアレイについて透過的である実施形態は有利である。
【００３５】
[0044]  また別の実施形態では、各構成ワードはアドレスタグ（address tag）に関連付けられ得る。たとえば、アドレスタグは各構成ワードについてのヘッダを備え得る。得られたアドレスタグはスイッチボックスの各行にわたって共通であり得る。図５に示されているように、アドレス回路５００は比較器を備え得る。各スイッチボックス行は、したがって、それ自体の比較器を有することになる。説明の明快のために、図３に示されたブロードキャストセット３０１のちょうど一部分が図５に示されている。比較器５０５がスイッチボックスのｊ番目の行中のラッチアレイ３２０の開および閉を制御する。同様に、比較器５１０が（ｊ＋１）番目の行中のラッチアレイ３２０の開および閉を制御する。最終的に、比較器５１５が（ｊ＋２）番目の行中のラッチアレイ３２０の開および閉を制御する。所与の構成ワードがメモリ２０１または２０５から取り出され、構成バス２２０中に駆動されるとき、対応するアドレスタグは、すべての比較器に結合するアドレスタグバス５２０中に駆動される。各行は、それ自体のアドレスを有する。所与のクロックサイクルでは、各構成ワードのためのアドレスタグは、したがって、所与の構成メモリからのアドレスタグになる。たとえば、再び図２のアレイ２００を参照すると、構成メモリ２０５からの構成ワードのためのアドレスタグは、すべてサイクル１行中のアドレスタグになる。したがって、各行は、ただ１つの比較器を必要とする。所与の行の比較器は、一致が見つけられるかどうかを決定するためにアドレスタグバス５２０上で受信されたアドレスタグをそれの行アドレスと比較するように構成される。比較器が一致を見つけた場合、比較器は、それに応じて、それの行中のラッチのためのクロック入力を駆動する。たとえば、デフォルト開実施形態では、受信されたアドレスタグがｊ番目の行のアドレスに一致した場合、比較器５０５はｊ番目の行中のすべてのラッチを閉じることになる。アレイ２００のための次の状態が、１つの行のみが現在状態に関して変更された構成ワードを有するようなものであると仮定すると、そのような行アドレス指定は極めて有利である。図３のシフトレジスタ方式は、依然として、アレイ２００を更新するために１０回のＲＩＣＡクロックサイクルを必要とすることになるが、図５の比較器は、対応する行中への構成データのローディングを完了するために１回のＲＩＣＡクロックサイクルのみを必要とすることになる。
【００３６】
[0045]  一層それ以上のグラニュラリティ（granularity）を与えるために、各タグアドレスは、特定の行を識別するだけでなく、列をも識別し得る。言い換えれば、所与のタグアドレスが特定の行を識別するだけでなく、それは特定の列をも識別することになる。したがって、スイッチボックスの所与の行の構成ワードのためのアドレスタグは、図５の実施形態とは対照的に同じでないことになる。代わりに、各構成ワードは、構成されるべきスイッチボックスのための対応する行および列を識別する一意のタグアドレスを有することになる。図６に示されているように、アドレス回路６００は各ラッチアレイ３２０のための比較器を備え得る。言い換えれば、あらゆるスイッチボックスは、そのような行および列アドレス指定可能な実施形態では、それ自体の比較器を必要とする。説明の明快のために、図３に示されたブロードキャストセット３０１のちょうど一部分が図６に示されている。比較器６０５が、（特定の列に対応する）この特定のブロードキャストセット３０１のｊ番目の行中のラッチアレイ３２０のみのための開および閉を制御する。同様に、比較器６１０が、この特定のブロードキャストセット３０１の（ｊ＋１）番目の行中のラッチアレイ３２０のみのための開および閉を制御する。最終的に、比較器６１５が、この特定のブロードキャストセット３０１の（ｊ＋２）番目の行中のラッチアレイ３２０のみのための開および閉を制御する。各ブロードキャストセット３０１は、それの比較器を駆動するそれ自体のタグアドレスバス６２０を有する。各ラッチアレイ３２０は、それの特定の行および列に対応する一意のアドレスを有する。対応する比較器は、タグアレイバス６２０上で受信されたタグアレイがそれのラッチアレイ３２０のための行および列アドレスに一致した場合、それのラッチアレイ３２０を閉じることになる。このようにして、特定のラッチアレイ３２０は、ラッチアレイ３２０の行全体にアドレス指定することとは対照的にアドレス指定され得る。
【００３７】
[0046]  上記で説明したように、スイッチボックス中にロードされる構成ワードは、次状態ラッチアレイ中にロードされる次状態構成ワードであり得る。各次状態ラッチアレイは、次状態のための構成ワードを記憶するために必要な数の次状態ラッチを含むことになる。対応する現在状態ラッチアレイは、現在状態のための構成ワードを記憶するために、同数の現在状態ラッチを有することになる。図７に、所与の構成ビット位置の場合の次状態ラッチ７００と対応する現在状態ラッチ７０５との有利な配置を示す。次状態ラッチ７００のための構成ビットは、図３、図５、および図６に関して説明したように、構成ビット導体上で配信される。しかし、ラッチアレイをテストするための走査チェーンを使用可能にするために、走査インマルチプレクサ（scan-in multiplexer）７１０が、テスト信号４８５に応答して構成ビット導体上で搬送される構成ビットと走査イン（ｓｉ）信号４７０との間で選択するように構成される。テストモードでは、テスト信号４８５は、走査インマルチプレクサ７１０が走査イン信号４７０のために選択し、この信号を次状態ラッチ７００のデータ入力に配信するように、図４Ｂに示されるようにアサートされる。通常動作中に、テスト信号４８５は、それが次状態ラッチ７００によってラッチされ得るように走査インマルチプレクサ７１０が構成ビットのために選択するようにアサート解除される。
【００３８】
[0047]  図４Ａおよび図４Ｂに関して説明したように、シフトレジスタ３００はスイッチボックスの各行のためのフリップフロップを含む。図７では、フリップフロップ７４０は、次状態ラッチ７００が開いているのか閉じているのかを制御するフリップフロップである。次状態マルチプレクサ７１５は、次状態ラッチ７００のためのクロック入力を駆動するために、フリップフロップ７４０からのストローブ信号または走査クロック（ｃｌｋ）の間で選択するようにテスト信号４８５に応答する。同様に、現在状態マルチプレクサ７２０は、更新信号４８０と走査クロック（ｃｌｋ）との間で選択するテスト信号４８５によって制御される。通常動作中に、テスト信号４８５は、現在状態マルチプレクサ７２０が更新信号４８０のために選択するようにアサート解除される。再び図４Ａおよび図４Ｂを参照すると、ブロードキャストセット４００などのブロードキャストセットが（クロックサイクルＮＳ＜４＞の完了後に）それらの次状態構成ワードをラッチしたとき、更新信号４８０はアサートされ得る。ＲＩＣＡクロック４３５のほんの単一のサイクル中で、すべての現在状態ラッチアレイは、対応する次状態ラッチアレイから次状態構成ワードをラッチすることができる。このＲＩＣＡクロックサイクルは、図４Ｂでは、スイッチボックス４１０のためのＣＳ＜１＞、スイッチボックス４１５のためのＣＳ＜２＞、スイッチボックス４２０のためのＣＳ＜３、およびスイッチボックス４２５のためのＣＳ＜４＞と標示されている。これは、ＲＩＣＡが、現在状態構成ワードによって決定された所与の命令の実行中に並列に構成され得るという点で極めて有利である。次状態構成ワードに対応する新しい命令をロードする時間になったとき、ＲＩＣＡは、ほんの単一のＲＩＣＡクロックサイクルの間、休止動作を必要とし、その後、それは再構成され、動作を再開する準備をする。対照的に、ＦＰＧＡなどの他の再構成可能アーキテクチャは、比較するとはるかに遅い。
【００３９】
[0048]  次状態ラッチ７００および現在状態ラッチ７０５はそれぞれ、φ２およびφ１の表示によって表される相補型クロック状態に反応するレベルである。したがって、テスト信号４８５がアサートされたとき、これらのラッチは、現在状態および次状態ラッチアレイを走査するために、走査チェーン中のエッジトリガーフリップフロップを形成する。走査イン信号４７０は、したがって、ブロードキャストセット４００中の現在状態および次状態ラッチアレイを介して走査アウト信号４７５としてシフトされる。構成ワードを再構成可能命令セルアレイのためのラッチアレイのブロードキャストセットに並列にブロードキャストする例示的な方法についてのフローチャートが図８に示されている。ステップ８００において、各構成バスが、対応する一連の構成ワードにより、対応する構成ワードの最初の構成ワードから対応する構成ワードの最後の構成ワードまで構成順序で、連続的に駆動されるように、一連の構成ワードが複数の構成バス中に連続的にブロードキャストされる。アレイ２００では、構成順序は、シフトレジスタ３００を駆動するクロックサイクルに対応する。たとえば、スイッチボックス２１５は、対応するブロードキャストセット中の第１のスイッチボックスである。それの対応する構成ワードは、したがって、ＲＩＣＡクロックの第１のサイクルに応答してブロードキャストセットの構成バス中に駆動される第１の構成ワードである。したがって、スイッチボックス２１５を含んでいる行はサイクル−１行として示される。同様に、スイッチボックス２１０は、このブロードキャストセット中の最後のスイッチボックスである。それの対応する構成ワードは、したがって、ＲＩＣＡクロックの第１０のサイクルに応答してブロードキャストセットの構成バス中に駆動される最後の構成ワードである。したがって、スイッチボックス２１０を含んでいる行はサイクル−１０行として示されている。各ブロードキャストセット中のスイッチボックスは、構成ワードをブロードキャストセットの構成バス上に連続的に駆動するために使用されるのと同じ構成順序で配置されると見なされ得る。
【００４０】
[0049]  ステップ８０５において、各構成バス中の連続的に駆動される対応する構成ワードは、第１のラッチアレイから最後のラッチアレイまで構成順序で配置された対応する複数のラッチアレイのためのデータ入力端子において並列に受信される。この実施形態では、ラッチアレイは、デフォルト非アドレス指定状態で開いているように構成される。最終的に、ステップ８１０において、ラッチアレイは、各ラッチアレイが、対応する構成ワードをラッチするように、構成順序に従って連続的に閉じられる。
【００４１】
[0050]  当業者ならもう諒解するように、当面の特定の適用例に応じて、多くの変更、代用および変形が、それの趣旨および範囲から逸脱することなく本開示のデバイスの使用の材料、装置、構成および方法において、およびそれらに対して行われ得る。これに照らして、本明細書で図示および説明された特定の実施形態はそれのいくつかの例にすぎないので、本開示の範囲はそれらの特定の実施形態の範囲に限定されるべきでないが、そうではなく、以下に添付される特許請求の範囲およびそれらの機能的等価物の範囲に完全に相応すべきである。
［Ｃ１］  スイッチボックスのブロードキャストセットに編成されたスイッチボックスのアレイと、各スイッチボックスが、対応する構成ワードに従って構成可能なプログラマブル命令セルおよびスイッチファブリックを含み、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたラッチアレイを含み、ここにおいて、各構成ワードが複数の構成ビットを備え、各ラッチアレイが、前記複数の構成ビットに対応する複数のラッチを備える、
前記複数のブロードキャストセットに対応する複数の構成バスと、各構成バスが、前記複数の構成ビットに対応する複数の構成ビット導体を備え、各構成ビット導体が、前記対応する構成ビットを伝導するように構成され、ここにおいて、各ブロードキャストセットについて、各構成ビットのための前記対応するビット導体が、前記ブロードキャストセットのための各ラッチアレイ中の前記対応するラッチのためのデータ入力端子に結合する、
各ラッチアレイが前記対応する構成バスからのそれの対応する構成ワードをラッチするように前記ラッチアレイを選択的にアドレス指定するように構成されたアドレス指定回路と
を備える、再構成可能命令セルアレイ（ＲＩＣＡ）。
［Ｃ２］  前記ラッチアレイ中の前記ラッチが、デフォルト状態で透過的になるように構成され、前記アドレス回路によってアドレス指定されたことに応答して閉じるように構成された、Ｃ１に記載のＲＩＣＡ。
［Ｃ３］  前記スイッチボックスが行および列中に配置され、ここにおいて、前記アドレス指定回路が、スイッチボックスの各行について前記ラッチアレイを選択的にアドレス指定するように構成された、Ｃ１に記載のＲＩＣＡ。
［Ｃ４］  前記アドレス回路がシフトレジスタを備える、Ｃ３に記載のＲＩＣＡ。
［Ｃ５］  前記シフトレジスタが、デフォルト状態でリセットされるように構成され、前記ラッチアレイの行を連続的に閉じるためにＲＩＣＡクロックのサイクルに応答してラッチングワードを連続的にシフトするように構成された、Ｃ４に記載のＲＩＣＡ。
［Ｃ６］  前記スイッチボックスが行および列中に配置され、ここにおいて、第１の複数の前記ブロードキャストセットがそれぞれ各列の上半分を備え、ここにおいて、第２の複数の前記ブロードキャストセットがそれぞれ各列の下半分を備える、Ｃ１に記載のＲＩＣＡ。
［Ｃ７］  前記第１の複数の前記ブロードキャストセットのための前記構成ワードを記憶するための第１のメモリと、
前記第２の複数の前記ブロードキャストセットのための前記構成ワードを記憶するための第２のメモリと
をさらに備える、Ｃ６に記載のＲＩＣＡ。
［Ｃ８］  前記第１のメモリと前記第２のメモリとが、ＲＩＣＡクロックのサイクルに応答して前記構成ワードを前記対応するバス導体中に駆動するように制御される、Ｃ７に記載のＲＩＣＡ。
［Ｃ９］  前記ラッチがそれぞれ、デフォルト状態で閉じられるように構成され、前記アドレス回路によってアドレス指定されたことに応答して循環して開き、次いで再び閉じるように構成された、Ｃ１に記載のＲＩＣＡ。
［Ｃ１０］  各構成ワードが、前記対応するラッチアレイのための行を識別するタグアドレスに関連付けられ、ここにおいて、前記第１のメモリは、前記第１の複数のブロードキャストセットのための前記構成バスを駆動する所与の時間に前記構成ワードがすべて前記同じタグアドレスを有するように制御され、ここにおいて、前記第２のメモリは、前記第２の複数のブロードキャストセットのための前記構成バスを駆動する所与の時間に前記構成ワードがすべて前記同じタグアドレスを有するように制御され、ここにおいて、前記アドレス回路が、前記複数の行に対応する複数の比較器を備え、各比較器が、受信されたタグアドレスを前記対応する行についてのアドレスと比較するように構成された、Ｃ６に記載のＲＩＣＡ。
［Ｃ１１］  各構成バスが、対応する一連の構成ワードにより、前記対応する構成ワードの最初の構成ワードから前記対応する構成ワードの最後の構成ワードまで構成順序で、連続的に駆動されるように、一連の構成ワードを複数の構成バスに連続的にブロードキャストすることと、
各構成バスにおいて、最初のラッチアレイから最後のラッチアレイまで前記構成順序で配置された対応する複数のラッチアレイのためのデータ入力端子において、前記連続的に駆動される対応する構成ワードを並列に受信することと、ここにおいて、各ラッチアレイが、デフォルト非アドレス指定状態で透過的になるように構成され、
各ラッチアレイが、対応する構成ワードをラッチするように、前記構成順序に従って前記ラッチアレイを連続的に閉じることと
を備える、方法。
［Ｃ１２］  各ラッチアレイが、命令セルとスイッチングファブリックとを有する対応するスイッチボックス中に含まれ、前記方法は、前記スイッチボックスのラッチアレイ中で前記構成ワードがラッチされたことに応答して各スイッチボックスの命令セルとスイッチングファブリックとを構成することをさらに備える、Ｃ１１に記載の方法。
［Ｃ１３］  前記構成ワードが次状態構成ワードであり、前記ラッチアレイが次状態ラッチアレイであり、ここにおいて、各スイッチボックスを構成することが、前記次状態ラッチアレイに記憶された前記次状態構成ワードを、対応する現在状態ラッチアレイ中にラッチすることを備える、Ｃ１２に記載の方法。
［Ｃ１４］  前記ラッチを連続的に閉じることは、ラッチングワードがシフトレジスタ中にシフトされたことに応答する、Ｃ１１に記載の方法。
［Ｃ１５］  前記シフトレジスタを介して前記ラッチングワードをシフトすることは、前記ラッチングワードが前記シフトレジスタ中に完全にシフトされた後に前記ラッチアレイがすべて閉じられるように、クロックに応答して行われる、Ｃ１４に記載の方法。
［Ｃ１６］  前記ラッチアレイを連続的に閉じることが、各構成ワードに関連付けられたタグアドレスの比較に応答して行われる、Ｃ１１に記載の方法。
［Ｃ１７］  前記タグアドレスがラッチアレイの行を識別する、Ｃ１６に記載の方法。
［Ｃ１８］  前記タグアドレスが行および列アドレスにおいてラッチアレイを識別する、Ｃ１６に記載の方法。
［Ｃ１９］  スイッチボックスのブロードキャストセットに編成されたスイッチボックスのアレイと、各スイッチボックスが、対応する構成ワードに従って構成可能なプログラマブル命令セルおよびスイッチファブリックを含み、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたラッチアレイを含み、ここにおいて、各構成ワードが複数の構成ビットを備え、各ラッチアレイが、前記複数の構成ビットに対応する複数のラッチを備える、
ブロードキャストセット端子中の前記ラッチアレイのための入力データ端子が、前記ブロードキャストされた構成ワードを並列に受信するように、構成ワードを各ブロードキャストセット中にブロードキャストするための手段と、
前記ブロードキャストされた構成ワードを選択的ラッチするために各ブロードキャストセット中の前記ラッチアレイをアドレス指定するための手段と
を備える、再構成可能命令セルアレイ（ＲＩＣＡ）。
［Ｃ２０］  各ブロードキャストセット中の前記ラッチアレイをアドレス指定するための前記手段が、シフトレジスタを備える、Ｃ１９に記載のＲＩＣＡ。
【図１Ａ】
0006039113.tif 000002
【図１Ｂ】
0006039113.tif 000003
【図２】
0006039113.tif 000004
【図３】
0006039113.tif 000005
【図４Ａ】
0006039113.tif 000006
【図４Ｂ】
0006039113.tif 000007
【図５】
0006039113.tif 000008
【図６】
0006039113.tif 000009
【図７】
0006039113.tif 000010
【図８】
0006039113.tif 000011