(57)【特許請求の範囲】
【請求項１】
再構成可能命令セルアレイ（ＲＩＣＡ）であって、
複数のシリアルローディングセットに編成されたスイッチボックスのアレイを備え、ここにおいて、各シリアルローディングセットに関して、対応するスイッチボックスが、第１のスイッチボックスから最後のスイッチボックスへと配置され、各スイッチボックスが、出力ワードを生成するために入力ワードを処理するように構成可能な専用論理ゲートとスイッチファブリックとを備えるプログラマブル命令セルを含み、それらの両方は、前記プログラマブル命令セルの機能をプログラムし、前記スイッチファブリックを通して前記入力ワードのルーティングをプログラムし、および前記スイッチファブリックを通して前記出力ワードのルーティングをプログラムするように、対応する構成ワードに従って構成可能であり、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたｎビットレジスタを含み、ここにおいて、各構成ワードが複数のｎ個の構成ビットを備え、ｎが２以上の整数であり、前記スイッチボックスが、複数の行および複数の列に配置され、ここにおいて、前記複数のシリアルローディングセットが、各列の上半分に配置された第１の複数の前記シリアルローディングセットを備え、および、各列の下半分に配置された第２の複数の前記シリアルローディングセットを備える、
ここにおいて、各シリアルローディングセットに関する複数の前記ｎビットレジスタが、ＲＩＣＡクロックのサイクルに応答して前記シリアルローディングセットを通して構成ワードをシリアルにシフトするように構成されたｎビットシフトレジスタを形成するように配置される、
再構成可能命令セルアレイ（ＲＩＣＡ）。
【請求項２】
前記第１の複数の前記シリアルローディングセットに関する前記構成ワードを記憶するための第１のメモリと、
前記第２の複数の前記シリアルローディングセットに関する前記構成ワードを記憶するための第２のメモリと、
をさらに備える、請求項１に記載のＲＩＣＡ。
【請求項３】
前記第１のメモリと前記第２のメモリとがそれぞれ、前記ＲＩＣＡクロックのサイクルに応答してそれらの記憶された構成ワードを前記対応する複数のシリアルローディングセットに押し込むように構成された、請求項２に記載のＲＩＣＡ。
【請求項４】
前記複数のシリアルローディングセットに対応する複数の構成バスをさらに備え、各構成バスは、前記複数の構成ビットに対応する複数の構成ビットの伝導体を備え、各構成ビットの伝導体は、前記対応する構成ビットを伝導するように構成され、ここにおいて、各シリアルローディングセットに関して、前記対応する構成バスが、前記シリアルローディングセットの第１のスイッチボックス中の前記ｎビットレジスタに関するデータ入力端子に結合される、
請求項１に記載のＲＩＣＡ。
【請求項５】
前記ＲＩＣＡクロックのサイクルに応答して前記構成ワードを前記複数の構成バスに押し込むように構成された構成メモリをさらに備える、請求項４に記載のＲＩＣＡ。
【請求項６】
前記構成メモリが、チップ選択信号とアドレス信号とに応答して前記構成ワードを押し込むように構成された、請求項５に記載のＲＩＣＡ。
【請求項７】
各前記ｎビットシフトレジスタが、次の状態の構成ワードをシリアルにシフトするように構成され、各スイッチボックスが、更新信号のアサーションに応答して次の状態の構成ワードを現在の状態の構成ワードとして記憶するように構成されたｎビットラッチアレイをさらに備える、請求項１に記載のＲＩＣＡ。
【請求項８】
各シリアルローディングセットに関して、前記シリアルローディングセットの前記ｎビットシフトレジスタが、第１のｎビットレジスタから最後のｎビットレジスタまでわたり、前記ｎビットラッチアレイが、前記第１のｎビットレジスタに対応する第１のｎビットラッチから前記最後のｎビットレジスタに対応する最後のｎビットラッチへわたる、請求項７に記載のＲＩＣＡ。
【請求項９】
各シリアルローディングセットについて、各ｎビットラッチが、前記更新信号の前記アサーションに応答して前記対応するｎビットレジスタから現在の状態の構成ワードをラッチするように構成された、請求項８に記載のＲＩＣＡ。
【請求項１０】
方法であって、
行と列に編成されたスイッチボックスのアレイ、ここにおいて、スイッチボックスの各列の上半分が、スイッチボックスの第１のシリアルローディングセットを備え、ここにおいて、各列の下半分が、スイッチボックスの第２のシリアルローディングセットを備える、について、各第１のシリアルローディングセット中の各スイッチボックスが構成ワードのうちの対応する１つを記憶するまで、各列の各上半分に第１の一連の構成ワードをシリアルにシフトすることと、
各第２のシリアルローディングセット中の各スイッチボックスが前記構成ワードのうちの対応する１つを記憶するまで、各列の各下半分に第２の一連の構成ワードをシリアルにシフトすることと、
各スイッチボックスにおいて、前記記憶された対応する構成ワードに応答して入力ワードを出力ワードに処理する専用論理ゲートを備える命令セルを構成することと、
前記記憶された対応する構成ワードに応答して前記入力および前記出力ワードをルーティングするように各スイッチボックスにおけるスイッチファブリックを構成することと、
を備える、方法。
【請求項１１】
前記第１の一連の構成ワードをシリアルにシフトすることは、マルチビットシフトレジスタを通して前記第１の一連の構成ワードをシリアルにシフトすることを備え、ここにおいて、各マルチビットレジスタが前記一連における対応する構成ワードを記憶するまで、各第１のシリアルローディングセット中の各スイッチボックスが、前記マルチビットシフトレジスタのための対応するマルチビットレジスタを含む、請求項１０に記載の方法。
【請求項１２】
前記第１の一連の構成ワードが一連の次の状態の構成ワードであり、前記方法は、各マルチビットラッチが現在の状態の構成ワードを記憶するように、前記対応する記憶された次の状態の構成ワードを各マルチビットレジスタから対応するマルチビットラッチ中にロードすることをさらに備える、請求項１１に記載の方法。
【請求項１３】
前記ロードすることが更新信号のアサーションに応答する、請求項１２に記載の方法。
【請求項１４】
プログラミングメモリから前記第１の一連の構成ワードを取り出すことによって、前記第１の一連の構成ワードを伴う前記マルチビットシフトレジスタを駆動することをさらに備える、請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]本出願は、その全体が参照により本明細書に組み込まれる、２０１３年９月１２日に出願された米国非仮出願第１４／０２５，６４６号の優先権を主張する。
【０００２】
[0002]本出願は、再構成可能コンピューティングに関し、より詳細には、それらの構成データを連続的に受信するように構成された命令セルのアレイに関する。
【背景技術】
【０００３】
[0003]プロセッサの速度が漸進的に向上してきたが、計算能力の向上の必要は衰えないままである。たとえば、スマートフォンは、現在、それらのプロセッサに当惑させるほどの様々なタスクを負わせている。しかし、シングルコアプロセッサは、所与の時間において少しの命令にしか適応することができない。したがって、現在、命令のセットを並列に処理することができるマルチコアまたはマルチスレッドプロセッサを設けることが一般的である。しかし、そのような命令ベースのアーキテクチャは、命令処理時間を減少させることに関して、ダイスペース、電力消費、および複雑さによって課される限界と常に戦わなければならない。
【０００４】
[0004]プログラマブル処理コアの使用と比較して、専用ハードウェアにおいてより効率的に処理され得る多くのアルゴリズムがある。たとえば、画像処理は、実質的な並列性と、処理ステップのパイプラインを通じグループにおけるピクセルの処理とを伴う。アルゴリズムが次いでハードウェアにマッピングされる場合、実装形態は、この対称性と並列性とを利用する。しかし、専用ハードウェアを設計することは、費用がかかり、また、アルゴリズムが変更された場合、専用ハードウェアが再設計されなければならないという点で煩雑である。
【０００５】
[0005]命令ベースのアーキテクチャと専用ハードウェア手法との間の効率的な折衷を与えるために、再構成可能命令セルアレイ（ＲＩＣＡ：reconfigurable instruction cell array）アーキテクチャが開発された。図１Ａに、再構成可能コア１を有する例示的なＲＩＣＡシステム５０を示す。ＲＩＣＡ５０では、加算器（ＡＤＤ）、乗算器（ＭＵＬ）、レジスタ（ＲＥＧ）、論理演算シフタ（ＳＨＩＦＴ）、除算器（ＤＩＶ）、データ比較器（ＣＯＭＰ）、論理ゲート（ＬＯＧＩＣ）、および論理ジャンプセル（ＪＵＭＰ）など、複数の命令セル２がプログラマブルスイッチファブリック（programmable switch fabric）４を通して相互接続される。命令セル２が実装するそれらの論理関数または命令に関する命令セル２の構成は、所与のアルゴリズムまたは関数を実装するために必要に応じて再プログラムされ得る。スイッチファブリック４は、それに応じて同様に再プログラムされることになる。命令セル２は、データメモリ８中に取り出されたまたはロードされた命令セル２のうちの残りの命令セル２のためのデータをインターフェースするメモリインターフェースセル１２を含む。命令セル２によって生じる処理は、構成ＲＡＭ６から取得された構成命令１０に従って行われる。復号モジュール１１は、命令セル２のための構成データだけでなく、スイッチングファブリック４のための構成データをも得るために命令１０を復号する。ＲＩＣＡ５０は、Ｉ／Ｏポート１６と特殊命令セルレジスタ１４と通して外部システムとインターフェースする。図１Ａに示された追加の特徴は、その内容全体が参照により本明細書に組み込まれる、２００６年４月２８日に出願された米国特許公開第２０１０／０１２２１０５号に記載されている。
【０００６】
[0006]再構成可能アレイ中の命令セルは、行および列によって配置され得る。各命令セル、任意の関連するレジスタ、および、命令セルのための関連する入力と出力とのスイッチングファブリックは、スイッチングボックス内に存在すると見なされ得る。図１Ｂに、行および列に配置されたスイッチボックスの例示的なアレイを示す。選択されたスイッチボックス間に形成されたデータ経路は、複数のチャネルからの選択されたチャネル上で伝えられる。また、複数のチャネルは、スイッチボックスのための行および列に一致する行および列に配置される。各チャネルは一定のビット幅を有する。行方向は東および西に走り、列方向は北および南に走ると見なされ得る。最初のスイッチボックス１００中の命令セルにおいて開始するデータ経路は、出力チャネル１０１上で東行方向にルーティングする。後続のスイッチボックスからのデータ経路に関するルーティングは、何れかの選択された行および列位置の最後のスイッチボックス１０５に達するような適切な東／西行方向または北／南列方向にある。この例示的なデータ経路では、２つの命令セルが算術論理ユニット（ＡＬＵ：arithmetic logic unit）１１０として構成される。残りのスイッチボックスのための命令セルは、説明の明快のために示されていない。各スイッチボックスは、２つのスイッチマトリックスまたはファブリック、すなわち、それの命令セルへのチャネル入力に関して選択するための入力スイッチファブリックと、また、スイッチボックスからのチャネル出力に関して選択するための出力スイッチファブリックとを含む。命令セルに関するこれらのスイッチファブリックは、スイッチファブリック４として図１Ａにまとめて示されている。
【０００７】
[0007]命令セルとは対照的に、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：field programmable gate array）中の論理ブロックはルックアップテーブル（ＬＵＴ：lookup table）を使用する。たとえば、構成されたＦＰＧＡ中で行われる論理演算においてＡＮＤゲートを必要とすると仮定する。対応するＬＵＴは、ＡＮＤゲート論理関数のための真理値表を用いてプログラムされることになる。しかし、命令セルは、それが専用論理ゲートを含んでいるという点ではるかに「粗粒（coarse-grained）」である。たとえば、ＡＬＵ命令セルは、種々の専用論理ゲートを含み得る。ＡＬＵ命令セルが構成可能であることはその機能であるが、そのプリミティブ論理ゲートは専用ゲートであり、したがって非構成可能である。たとえば、従来のＣＭＯＳインバータは専用論理ゲートの１つのタイプである。そのようなインバータについて構成可能なものはなく、それは構成ビットを必要としない。しかし、ＦＰＧＡプログラマブル論理ブロック中のインバータ関数のインスタンス化は、代わりにＬＵＴの真理値表の対応するプログラミングによって実行される。したがって、本明細書で使用する「命令セル」という用語は、専用論理ゲートを備える構成可能な論理要素を指す。
【０００８】
[0008]ＡＬＵ命令セルは１つまたは複数のオペランドに対してそれの論理関数を実行する。このコンテキストにおけるオペランドは受信チャネル入力である。それの構成ビットに応じて、ＡＬＵ命令セルは、対応する論理演算を実行するように構成される。たとえば、第１のスイッチボックスは、２つのチャネル入力に対応する２つのオペランドを加算するように構成されたＡＬＵ命令セルを含み得る。しかし、同じＡＬＵ命令セルは、２つのオペランドを減算するために後で更新され得る。命令セル内の論理演算から生じたオペランドは別の命令セル中で必要とされ得る。したがって、第１のスイッチボックス中の出力スイッチファブリックは、対応するチャネル出力を通して第１のスイッチボックスから結果となるオペランドを追い出すように構成されるであろう。対照的に、ＦＰＧＡのＬＵＴはビットを生成し、それらはワードを生成しない。したがって、ＦＰＧＡ中のスイッチファブリックは、ＦＰＧＡのスイッチファブリックがＦＰＧＡのＬＵＴからビットをルーティングするように構成されるという点で、ＲＩＣＡ中のスイッチファブリックとは基本的に異なる。対照的に、ＲＩＣＡ中のスイッチボックス間のルーティングは、入力チャネルおよび出力チャネルの両者としてワードをルーティングするように構成される。たとえば、スイッチボックスアレイは、２０個のチャネルをルーティングするように構成され得る。そのような実施形態におけるスイッチボックスは、したがって、すべての４つの方向から２０個の入力チャネルを受信し、２０個の出力チャネルを４つの方向に駆動し得る。
【０００９】
[0009]命令セルが専用論理ゲートを備えるので、構成データの必要な量は同等のＦＰＧＡのための構成データよりも実質的に少ないというＲＩＣＡの利点に留意されたい。スイッチボックスは、したがって、再構成がコンパニオンプロセッサに対して事実上リアルタイムであるような比較的短い遅延の間に容易に再構成され得る。対照的に、ＦＰＧＡのための比較的大量の構成データは、その再構成のためにかなりの遅延を必要とする。また、ＲＩＣＡは、旧来のプロセッサにおけるソフトウェアベースの実装形態と比較して処理速度の利点を有する。たとえば、パイプライン処理方式を通して複数のピクセルを処理することを伴う画像処理などのアルゴリズムは、専用ハードウェア手法をエミュレートする様式で命令セルにマッピングされ得る。しかし、専用ハードウェアを設計する必要はない。代わりに、単に、必要に応じて命令セルとスイッチングファブリックとを構成することができる。したがって、アルゴリズムが再設計されなければならない場合、ハードウェア再設計の必要はなく、代わりに、ユーザは、単に構成データを変更し得る。これは旧来の命令ベースのコンピューティング手法よりも極めて有利である。
【００１０】
[0010]ＲＩＣＡは、したがって、ロバストな利点を提供するが、それの実装形態において課題が残っている。たとえば、命令セルとスイッチングファブリックとの構成のためなど、各スイッチボックス内の構成可能な要素のためにいくつかの構成ビットが必要とされる。各スイッチングボックスは、したがって、それの構成ビットを記憶するための記憶要素またはセルを必要とする。例示的な一実施形態では、（４００個のスイッチボックスとなる）２０個の行と２０個の列とのアレイは、それの構成のために７７キロビットを必要とする。そのような多くの構成ビットをロードするための回路は貴重なダイスペースと電力とを消費する。さらに、ＲＩＣＡは、構成ビットのローディングのために最小レイテンシを必要とする。その点において、命令セルはＲＩＣＡ中に静的にプログラムされず、たとえば、命令セルは通常動作中に数回再構成され得る。そのような頻繁な再プログラミングは必要としないかもしれないが、能力は提供されるべきである。そのようなマイクロプロセッサ他のシステムがＲＩＣＡとインターフェースしていることがあるので、再構成のレイテンシは、ストールを防ぐために最小限に抑えられなければならない。
【００１１】
[0011]したがって、当技術分野において、再構成可能命令セルアレイのためのエリア効率的で低レイテンシの構成方式が必要である。
【発明の概要】
【００１２】
[0012]エリア効率的だが低レイテンシの構成方式を提供するために、再構成可能命令セルアレイ（ＲＩＣＡ）中のスイッチボックスがシリアルローディングセットに編成される。各シリアルローディングセットは、シリアルローディングセットのスイッチボックスを通してマルチビットの構成ワードをシフトする、マルチビットシフトレジスタを形成する。一実施形態では、ＲＩＣＡのためのスイッチボックスアレイは、各シリアルローディングセットが列または行の全部または一部分にわたるように、行および列に編成される。スイッチボックスの行または列が２つのシリアルローディングセットに分割された場合、所望の構成ワードを各シリアルローディングセットにシフトインするために必要な構成時間が低減される。
【図面の簡単な説明】
【００１３】
【図１Ａ】[0013]例示的な再構成可能命令セルアレイ（ＲＩＣＡ）についてのブロック図。
【図１Ｂ】[0014]図１ＡのＲＩＣＡ中のスイッチボックスのアレイについてのブロック図。
【図２】[0015]シリアルローディングセット中に配置されたスイッチボックスのアレイを示す図。
【図３】[0016]スイッチボックスのシリアルローディングセット中のマルチビットシフトレジスタについての概略図。
【図４】[0017]現在状態ラッチアレイを含む例示的なシリアルローディングセットについての概略図。
【図５】[0018]構成ワードをスイッチボックスのシリアルローディングセット中にシリアルにロードする方法についてのフローチャート。
【００１４】
[0019]本発明の実施形態およびそれらの利点は、以下の発明を実施するための形態を参照することによって最も良く理解される。図のうちの１つまたは複数に示される同様の要素を識別するために、同様の参照番号が使用されることを理解されたい。
【発明を実施するための形態】
【００１５】
[0020]構成データがスイッチボックスのチェーンにシリアルにシフトされる再構成可能命令セルアレイ（ＲＩＣＡ）が提供される。スイッチボックス中の命令セルならびに入力および出力スイッチファブリックを構成するための構成データは、第１の構成ビットから最後の構成ビットにわたる複数の構成ビットを備える構成ワードを形成する。各スイッチボックスのための入力スイッチファブリックおよび出力スイッチファブリックを本明細書ではまとめて単一のスイッチファブリックと呼ぶ。各スイッチボックスは、ｎビット構成ワード、ここでは２以上の正の整数である、の記憶のために適応されたｎビットレジスタを含む。説明なしに本明細書で使用する「レジスタ」という用語は、１ビットレジスタを指す。したがって、ｎビットレジスタはｎ個のレジスタを備える。たとえば、スイッチボックスのためのｎビットレジスタ中の第１のレジスタが、スイッチボックスの構成ワードの第１の構成ビットを記憶するように構成される。同様に、ｎビットレジスタ中の第２のレジスタが、構成ワードのための対応する第２の構成ビットを記憶するように構成され、以下同様にして、ｎビットレジスタ中の最終の（または第ｎの）レジスタが、構成ワードのための対応する最終の構成ビットを記憶するように構成される。
【００１６】
[0021]１つのＲＩＣＡ実施形態では、各スイッチボックスは、それの命令セルとスイッチファブリックとのための現在の状態の構成ワードを記憶するだけでなく、次の状態の構成ワードをも記憶する。そのような実施形態での各スイッチボックスは、現在の状態の構成ワードを記憶するための現在状態記憶セルアレイ、ならびに次の状態の構成ワードを記憶するための次状態ｎビットレジスタを含む。スイッチボックスは、それの次状態ｎビットレジスタからの次の状態の構成ワードを現在状態記憶セルアレイ中にロードすることによって、更新信号に応答する。シリアル構成アーキテクチャについて、次状態ｎビットレジスタ中への次の状態の構成ワードのローディングに関して本明細書で説明する。しかしながら、開示するローディング方式の実施形態はまた、現在の構成ワードのみをロードする再構成可能命令セルアレイに広く適用可能である。その点において、本明細書で開示する次状態ｎビットレジスタは、別段の必要がない限り、簡潔のために単に「ｎビットレジスタ」と呼ぶ。
【００１７】
[0022]ＲＩＣＡ中のスイッチボックスのアレイは、行および列に配置され得る。何が「行」として示され、何が「列」として示されるかは、単に観点の問題であることを諒解されよう。したがって、本明細書では、行および列という用語は一般性を失わずに使用される。構成ワードの有利なシリアルローディングを可能にするために、スイッチボックスのシリアルローディングセット中のｎビットレジスタは、ｎビットシフトレジスタを形成するように構成される。ｎビットシフトレジスタは、それらの構成ビットに対応するｎ個のシフトレジスタの並列配置を備える。たとえば、スイッチボックスのシリアルローディングセットのためのそれぞれの構成ワードからの第１の構成ビットを記憶するように構成されたレジスタは、第１のシフトレジスタ中に配置される。同様に、スイッチボックスのシリアルローディングセットのための第２の構成ビットを記憶するように構成されたレジスタは、第２のシフトレジスタ中に配置され、以下同様にして、シリアルローディングセット中の最後の構成ビットを記憶するように構成されたレジスタは、最後のシフトレジスタ中に配置される。したがって、スイッチボックスのシリアルローディングセット中のレジスタは、ｎビットシフトレジスタを形成するために、第１のシフトレジスタから最後のシフトレジスタにわたるシフトレジスタのアレイ中に配置される。より一般的に、そのようなｎビットシフトレジスタは、それがマルチビット構成ワードをシリアルにシフトするので、マルチビットシフトレジスタとして示され得る。一実施形態での各シリアルローディングセットのためのマルチビットシフトレジスタは、シリアルローディングセット中の各スイッチボックスがそれの対応する構成ワードを記憶するまで、構成ワードをシリアルにシフトするための手段を形成する。
【００１８】
[0023]シリアルローディングセット中のスイッチボックスは、第１のスイッチボックスから最後のスイッチボックスまで配置される。第１のスイッチボックス中のｎビットレジスタに関するデータ入力端子は、対応する構成バスに結合し、それは複数の構成ビットに対応する複数の構成ビット導体を備える。したがって、各スイッチボックス中のレジスタとまったく同様に、構成バス中の構成ビット導体のうちの第１の構成ビット導体が、スイッチボックスの対応するシリアルローディングセットのための構成ワードのための第１の構成ビットを伝搬するように構成される。同様に、構成バス中の構成ビット導体のうちの第２の構成ビット導体が、シリアルローディングセットのための第２の構成ビットを伝搬するように構成され、以下同様である。スイッチボックスのシリアルローディングセットについての特徴をより良く示すために、いくつかの例示的な実施形態について次に説明する。
【００１９】
例示的な実施形態
[0024]図２に、スイッチボックスアレイ２００がスイッチボックスの２０個の行と２０個の列とを備える実施形態を示す。スイッチボックスアレイ２００が上側ハーフアレイと下側ハーフアレイとを備えるように、各列は、構成データのシリアルローディングに関して半分に分割される。各ハーフアレイ中のスイッチボックスの各半分の列が、シリアルローディングセットを形成するように適応される。たとえば、下側ハーフアレイにおける１つのシリアルローディングセットがスイッチボックス２１０からスイッチボックス２１５にわたる。各ハーフアレイのための構成メモリはハーフアレイのシリアルローディングセットを駆動する。構成メモリ北２０１は上側ハーフアレイを駆動し、構成メモリ南２０５は下側ハーフアレイを駆動する。各構成メモリ２０１および２０５は、構成ワードをそれの対応するハーフアレイのためのシリアルローディングセットに押し込むように構成される。たとえば、南メモリ２０５は、スイッチボックス２１０からスイッチボックス２１５にわたるシリアルローディングセットに、および下側ハーフアレイに関する残りのシリアルローディングセットに構成ワードを押し込むように構成される。一実施形態では、各構成ワード幅は１９２ビットである。２０個のスイッチボックスの行の構成は、そのような実施形態では、したがって２０＊１９２ビットを必要とし、それは３８４０ビットに等しい。アレイ２００中に２０個の行があるので、アレイ２００のための構成データは、２０＊３８４０ビットを備え得、それは約７７キロビットに等しい。
【００２０】
[0025]代替実施形態では、単一の構成メモリがすべての構成ワードを記憶することができる。その場合、各シリアルローディングセットは、アレイ２００の対応する全列にわたることになる。しかし、本明細書でさらに説明するように、各々がアレイ２００中にそのようなそれら自体のシリアルローディングセットを有するハーフアレイ中にアレイが配置される実施形態では、構成プロセスのためのローディング時間は半分にされる。
【００２１】
[0026]図３に、スイッチボックスの例示的なシリアルローディングセット３００を示す。説明の明快のために、各スイッチボックスは、その構成ワードを記憶するためのそのｎビットレジスタによって表される。たとえば、最初のサイクル１のスイッチボックスがそのｎビットレジスタ３０５によって表され、隣接するサイクル２のスイッチボックスがそれのｎビットレジスタ３１０によって表され、以下同様にして、最終のサイクル１０のスイッチボックスがそのｎビットレジスタ３１５によって表される。様々なｎビットレジスタは、ｎビットレジスタ３０５から始まり、ｎビットレジスタ３１５において終了するｎビットシフトレジスタを形成するように配置される。
【００２２】
[0027]ｎビットレジスタ中のレジスタは、それらが記憶するそれらのそれぞれの構成ワードのビットによって指定される。各構成ワードはｎビット幅であり、ただし、ｎは、構成ワード幅中のビット数を表す正の整数である。その点において、各構成ワードは、第１のビットから最終の第ｎのビットにわたる一連のビットを備える。各ｎビットレジスタ中のレジスタは、したがって、第１の構成ビットを記憶する第１のレジスタＲ１から、第２の構成ビットを記憶する第２のレジスタＲ２、以下同様に、第ｎの構成ビットを記憶する最終のレジスタＲｎまで配置される。
【００２３】
[0028]ｎビットシフトレジスタは、各スイッチボックスからのＲ１レジスタを備える第１のシフトレジスタ３２０を含む。したがって、シフトレジスタ３２０は、シリアルローディングセット３００をプログラムするために使用される構成ワードのための第１の構成ビットをシフトするように機能する。同様に、第２のシフトレジスタ３２５が各スイッチボックスからのＲ２レジスタを備え、以下同様にして、最終のシフトレジスタ３３０が各スイッチボックスからのＲｎレジスタを備える。各レジスタＲ１〜Ｒｎは、ＲＩＣＡクロックのサイクルに応答して登録するように構成される。したがって、ＲＩＣＡクロックサイクルとして、構成ワードがシリアルローディングセット３００中のスイッチボックスから後続のスイッチボックスへ転送される。
【００２４】
[0029]再び図２を参照すると、アレイ２００のスイッチボックス２１０はサイクル１のスイッチボックスである。サイクル１のスイッチボックスは、ＲＩＣＡ構成プロセス中の第１のＲＩＣＡクロックサイクル中に、そのｎビットレジスタに構成ワードを記憶させるスイッチボックスであるので、表示「サイクル１」が使用される（説明の明快のために、ＲＩＣＡクロックは図２に示されていない）。サイクル１のスイッチボックス中のｎビットレジスタ３０５は、シリアルローディングセット３００の構成中のＲＩＣＡクロックの第１のサイクル中に、第１の構成ワードを登録する。第１の構成ワードは、次いで、ｎビットレジスタ３０５中のレジスタのＱ出力において提示される。
【００２５】
[0030]ｎビットレジスタ３０５中のレジスタからのＱ出力は、サイクル２のスイッチボックス中のｎビットレジスタ３１０中の対応するレジスタに関するデータ入力（Ｄ）を駆動する。サイクル２のスイッチボックスは、ＲＩＣＡ構成プロセス中の第２のＲＩＣＡクロックサイクル中に構成ワードを最初に登録するので、表示「サイクル２」が使用される。ｎビットレジスタ３１０は、したがって、ＲＩＣＡクロックのサイクル２中に第１の構成ワードを登録することになる。このようにして、構成ワードは、最終のサイクル１０スイッチボックスが、第１０のＲＩＣＡクロックサイクル中にｎビットレジスタ３１５に第１の構成ワードを登録するまで、シリアルローディングセット中のスイッチボックスを通してシリアルにシフトされる。シリアルローディングセット３００中のすべてのスイッチボックスは、したがって、第１０のＲＩＣＡクロックサイクルにおいてそれらの対応する構成ワードを登録する。より一般的には、任意の行数ｘのスイッチボックスを有するシリアルローディングセットでは、スイッチボックスは、第ｘのＲＩＣＡクロックサイクル中にそれらの対応する構成ワードを登録するであろう。
【００２６】
[0031]図２のアレイ２００中の列を半分の列に分割すると、シリアルローディングセットがすべての行にわたった実施形態と比較して、構成時間が減少することに留意されたい。たとえば、ハーフアレイに分割されていない２０個の行をもつ一実施形態では、構成プロセスは２０個のクロックＲＩＣＡサイクルを必要とし得る。しかし、図２のシリアルローディングセットは、それらの構成のために１０個のＲＩＣＡクロックサイクルのみを必要とする。
【００２７】
[0032]図４に、シリアルローディングプロセスをより良く示すために、例示的なｎビットシフトレジスタ４００を示す。説明の明快のために、３つのｎビットレジスタＲ１、Ｒ２、およびＲ３のみがシフトレジスタ４００中に示される。したがって、ｎビットシフトレジスタ４００を含む（図示されない）スイッチボックスのシリアルローディングセットは、ちょうど３つのスイッチボックスを備えることになる。この実施形態では、ｎビットシフトレジスタ４００にシフトされる構成ワードは次の状態の構成ワードである。ｎビットレジスタＲ１は、ＲＩＣＡクロック４３０の第１のクロックサイクル中に次の状態の構成ワードをラッチする。ｎビットレジスタＲ１がｎビットシフトレジスタ４００中の最初のｎビットレジスタであるので、構成メモリ４２０は、ｎビットレジスタＲ１に関するデータ入力端子に構成バス２２０を介して第１の構成ワードを押し込む。構成メモリ４２０は、チップ選択（ＣＳ）信号４４０に応答して構成ワードを取り出すことを可能にされる。ＣＳ４４０がアサートされたとき、構成メモリ４２０は、アドレス信号（ａｄｄｒ）４４５およびメモリクロック（ＭＣＫ）４５０に応答して構成ワードを取り出す。
【００２８】
[0033]各ｎビットレジスタＲ１〜Ｒ３は、ＲＩＣＡクロック４３０の各サイクル中にそれデータ入力を登録する。したがって、第２のＲＩＣＡクロックサイクル中に、ｎビットレジスタＲ２は、最初にｎビットレジスタＲ１に登録された第１の次の状態の構成ワードを登録する。第３のＲＩＣＡクロックサイクル中に、この第１の次の状態の構成ワードは次いで、ｎビットレジスタＲ３によって登録される。このようにして、第１のＲＩＣＡクロックサイクル中にｎビットレジスタＲ１に記憶された次の状態の構成ワードは、第３のＲＩＣＡクロックサイクル中にｎビットレジスタＲ３に記憶される。この時点で、次の状態の構成ワードはｎビットシフトレジスタ４００中に完全にロードされている。更新信号４５５は、次いで、次の状態の構成ワードが現在状態ラッチアレイ４１０に並列にシフトされることを引き起こすために、アサートされ得る。次状態シフトレジスタ４００に類似して、現在状態ラッチアレイ４１０は、それぞれｎビットレジスタＲ１、Ｒ２、およびＲ３に対応する、ｎビットラッチＬ１、Ｌ２、およびＬ３を含む。ｎビットレジスタと同様に、ｎビットラッチは、ｎビットラッチＬ１が第１のスイッチボックスに対応し、ｎビットラッチＬ２が第２のスイッチボックスに対応し、ｎビットラッチＬ３が第３のスイッチボックスに対応するように、スイッチボックスに対応する。
【００２９】
[0034]更新信号４５５は、ｎビットラッチＬ１、Ｌ２、およびＬ３のためのセット（Ｓ）信号として働く。本明細書で使用する「ラッチ」は、セット信号のレベル（高または低）に応答してデータ入力をラッチするように構成された記憶セルを指す。対照的に、本明細書で使用する「レジスタ」という用語は、得られた構造がクロック信号に対してエッジセンシティブ（立上りエッジまたは立下りエッジ）であるように、記憶されたビットごとに２つの１ビットラッチを備える記憶セルを指す。シフト能力が必要でないので、それは、したがって、ラッチ中のスイッチボックスのシリアルローディングセットのための現在の状態の構成ワードを記憶するためのエリアを節約する。現在の状態の構成ワードは次いで、対応するスイッチボックス中の命令セルとスイッチファブリックとを構成するために利用可能である。しかしながら、別の実施形態では、ラッチアレイ４１０がｎビットシフトレジスタによって置き換えられ得ることが諒解されよう。次に、例示的な動作方法について説明する。
例示的な動作方法
構成ワードを再構成可能命令セルアレイのためのスイッチボックスのシリアルローディングセットにシリアルにロードする例示的な方法についてのフローチャートが図５に示される。本方法は、スイッチボックスのシリアルローディングセット中の各スイッチボックスが一連の構成ワードのうちの対応する１つを記憶するまで、シリアルローディングセットに一連の構成ワードをシリアルにシフトする行為５００から始まる。たとえば、スイッチボックスのシリアルローディングセットが、第１のスイッチボックス、第２のスイッチボックス、および第３のスイッチボックスとしてシリアルに配置された３つのスイッチボックスを備えると仮定する。対応する一連の構成ワードは、したがって、第１のスイッチボックスのための第１の構成ワード、第２のスイッチボックスのための第２の構成ワード、および第３のスイッチボックスのための第３の構成ワードを備える。本方法は次いで、記憶された対応する構成ワードに応答して各スイッチボックス中の命令セルとスイッチファブリックとを構成する行為５０５を続ける。
【００３０】
[0035]当業者が今までに諒解するように、および手元の特定の適用例に応じて、本開示の趣旨および範囲から逸脱することなく、本開示のデバイスの材料と、装置と、構成と、使用方法とにおいておよびそれらに対して、多くの変更、置換および変形が行われ得る。これに照らして、本明細書で例示し、説明した特定の実施形態は本開示のいくつかの例にすぎないので、本開示の範囲は、それらの実施形態の範囲に限定されるべきでなく、むしろ、以下に添付された特許請求の範囲およびそれらの機能的等価物の範囲に十分に相応すべきである。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[Ｃ１]  再構成可能命令セルアレイ（ＲＩＣＡ）であって、
複数のシリアルローディングセットに編成されたスイッチボックスのアレイを備え、ここにおいて、各シリアルローディングセットに関して、前記対応するスイッチボックスが、第１のスイッチボックスから最後のスイッチボックスへと配置され、各スイッチボックスが、対応する構成ワードに従って両方とも構成可能であるプログラマブル命令セルとスイッチファブリックとを含み、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたｎビットレジスタを含み、ここにおいて、各構成ワードが複数のｎ個の構成ビットを備え、ｎが２以上の整数であり、
ここにおいて、各シリアルローディングセットに関する複数の前記ｎビットレジスタが、ＲＩＣＡクロックのサイクルに応答して前記シリアルローディングセットを通して構成ワードをシリアルにシフトするように構成されたｎビットシフトレジスタを形成するように配置される、
再構成可能命令セルアレイ（ＲＩＣＡ）。
[Ｃ２]  前記スイッチボックスが行および列に配置され、第１の複数の前記シリアルローディングセットにおける前記シリアルローディングセットが各列の上半分を備え、ここにおいて、第２の複数の前記シリアルローディングセットにおける前記シリアルローディングセットが各列の下半分を備える、Ｃ１に記載のＲＩＣＡ。
[Ｃ３]  前記第１の複数の前記シリアルローディングセットに関する前記構成ワードを記憶するための第１のメモリと、
前記第２の複数の前記シリアルローディングセットに関する前記構成ワードを記憶するための第２のメモリと、
をさらに備える、Ｃ２に記載のＲＩＣＡ。
[Ｃ４]  前記第１のメモリと前記第２のメモリとがそれぞれ、前記ＲＩＣＡクロックのサイクルに応答してそれらの記憶された構成ワードを前記対応する複数のシリアルローディングセット中に押し込むように構成された、Ｃ３に記載のＲＩＣＡ。
[Ｃ５]  前記複数のシリアルローディングセットに対応する複数の構成バスをさらに備え、各構成バスは、前記複数の構成ビットに対応する複数の構成ビットの伝導体を備え、各構成ビットの伝導体は、前記対応する構成ビットを伝導するように構成され、ここにおいて、各シリアルローディングセットに関して、前記対応する構成バスが、前記シリアルローディングセットの第１のスイッチボックス中の前記ｎビットレジスタに関するデータ入力端子に結合される、
Ｃ１に記載のＲＩＣＡ。
[Ｃ６]  前記ＲＩＣＡクロックのサイクルに応答して前記構成ワードを前記複数の構成バス中に押し込むように構成された構成メモリをさらに備える、Ｃ５に記載のＲＩＣＡ。
[Ｃ７]  前記構成メモリが、チップ選択信号とアドレス信号とに応答して前記構成ワードを押し込むように構成された、Ｃ６に記載のＲＩＣＡ。
[Ｃ８]  前記ｎビットシフトレジスタが、次の状態の構成ワードをシリアルにシフトするように構成され、各スイッチボックスが、更新信号のアサーションに応答して次の状態の構成ワードを現在の状態の構成ワードとして記憶するように構成されたｎビットラッチアレイをさらに備える、Ｃ１に記載のＲＩＣＡ。
[Ｃ９]  各シリアルローディングセットに関して、前記ｎビットシフトレジスタが、第１のｎビットレジスタから最後のｎビットレジスタまでわたり、前記ｎビットラッチアレイが、前記第１のｎビットレジスタに対応する第１のｎビットラッチから前記最後のｎビットレジスタに対応する最後のｎビットラッチへわたる、Ｃ８に記載のＲＩＣＡ。
[Ｃ１０]  各シリアルローディングセットについて、各ｎビットラッチが、前記更新信号の前記アサーションに応答して前記対応するｎビットレジスタから現在の状態の構成ワードをラッチするように構成された、Ｃ９に記載のＲＩＣＡ。
[Ｃ１１]  スイッチボックスのシリアルローディングセットに関する各スイッチボックスが一連の構成ワードのうちの対応する１つを記憶するまで、前記シリアルローディングセットに前記構成ワードをシリアルにシフトすることと、
前記記憶された対応する構成ワードに応答して各スイッチボックスにおける命令セルとスイッチファブリックとを構成することと、
を備える、方法。
[Ｃ１２]  前記シリアルローディングに関する前記スイッチボックスが、行および列に配置されたスイッチボックスのアレイの部分であり、前記シリアルローディングセットに前記一連の構成ワードをシリアルにシフトすることが、前記列のうちの１つに沿って前記構成ワードをシリアルにシフトすることを備える、Ｃ１１に記載の方法。
[Ｃ１３]  前記一連の構成ワードを前記シリアルにシフトすることが、前記１つの列の半分に沿って前記構成ワードをシリアルにシフトすることを備える、Ｃ１１に記載の方法。
[Ｃ１４]  前記一連の構成ワードをシリアルにシフトすることは、各マルチビットレジスタが前記一連における対応する構成ワードを記憶するまで、マルチビットシフトレジスタを通して前記一連の構成ワードをシリアルにシフトすることを備え、ここにおいて、各スイッチボックスが、前記マルチビットシフトレジスタのための対応するマルチビットレジスタを含む、Ｃ１１に記載の方法。
[Ｃ１５]  前記一連の構成ワードが一連の次の状態の構成ワードであり、前記方法は、各マルチビットラッチが現在の状態の構成ワードを記憶するように、前記対応する記憶された次の状態の構成ワードを各マルチビットレジスタから対応するマルチビットラッチ中にロードすることをさらに備える、Ｃ１４に記載の方法。
[Ｃ１６]  前記ロードすることが更新信号のアサーションに応答する、Ｃ１５に記載の方法。
[Ｃ１７]  プログラミングメモリから前記一連の構成ワードを取り出すことによって、前記一連の構成ワードを伴う前記マルチビットシフトレジスタを駆動することをさらに備える、Ｃ１４に記載の方法。
[Ｃ１８]  再構成可能命令セルアレイ（ＲＩＣＡ）であって、
スイッチボックスのシリアルローディングセットに編成されたスイッチボックスのアレイ、ここで、各スイッチボックスが、対応する構成ワードに従って両方とも構成可能であるプログラマブル命令セルとスイッチファブリックとを含む、と、
各スイッチボックスがその対応する構成ワードを記憶するまで、スイッチボックスの各シリアルローディングセットを通して構成ワードをシリアルにシフトするための手段と、
を備える、再構成可能命令セルアレイ。
[Ｃ１９]  スイッチボックスの前記アレイがいくつかの行およびいくつかの列に編成され、スイッチボックスの各シリアルローディングセットにおけるスイッチボックスの数が列の数よりも小さい、Ｃ１８に記載のＲＩＣＡ。
[Ｃ２０]  各シリアルローディングセットにおけるスイッチボックスの前記数が、列の前記数の半分である、Ｃ１９に記載のＲＩＣＡ。
【要約】  再構成可能命令セルアレイ（ＲＩＣＡ）が複数のスイッチボックスを含む。各スイッチボックスは、各スイッチボックスに記憶された構成ワードに従って構成可能な命令セルとスイッチファブリックとを含む。スイッチボックスは、各シリアルローディングセット中のスイッチボックスが、対応する構成ワードをシリアルシフトするためのマルチビットシフトレジスタチェーンを形成するように構成されるように、シリアルローディングセット中に配置される。【図１Ａ】
0006046319.tif 000002
【図１Ｂ】
0006046319.tif 000003
【図２】
0006046319.tif 000004
【図３】
0006046319.tif 000005
【図４】
0006046319.tif 000006
【図５】
0006046319.tif 000007