(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6046319
(24)【登録日】2016年11月25日
(45)【発行日】2016年12月14日
(54)【発明の名称】再構成可能命令セルアレイのシリアル構成
(51)【国際特許分類】
G06F 7/57 20060101AFI20161206BHJP
【FI】
G06F7/57 204
【請求項の数】14
【全頁数】15
(21)【出願番号】特願2016-541489(P2016-541489)
(86)(22)【出願日】2014年9月9日
(86)【国際出願番号】US2014054769
(87)【国際公開番号】WO2015038535
(87)【国際公開日】20150319
【審査請求日】2016年6月17日
(31)【優先権主張番号】14/025,646
(32)【優先日】2013年9月12日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100194814
【弁理士】
【氏名又は名称】奥村 元宏
(72)【発明者】
【氏名】ラオ、ハリ
(72)【発明者】
【氏名】ノーシアス、イオアニス
(72)【発明者】
【氏名】クハワム、サミ
【審査官】
宮下 誠
(56)【参考文献】
【文献】
国際公開第2010/106738(WO,A1)
【文献】
米国特許第5995988(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 7/57
(57)【特許請求の範囲】
【請求項1】
再構成可能命令セルアレイ(RICA)であって、
複数のシリアルローディングセットに編成されたスイッチボックスのアレイを備え、ここにおいて、各シリアルローディングセットに関して、対応するスイッチボックスが、第1のスイッチボックスから最後のスイッチボックスへと配置され、各スイッチボックスが、出力ワードを生成するために入力ワードを処理するように構成可能な専用論理ゲートとスイッチファブリックとを備えるプログラマブル命令セルを含み、それらの両方は、前記プログラマブル命令セルの機能をプログラムし、前記スイッチファブリックを通して前記入力ワードのルーティングをプログラムし、および前記スイッチファブリックを通して前記出力ワードのルーティングをプログラムするように、対応する構成ワードに従って構成可能であり、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたnビットレジスタを含み、ここにおいて、各構成ワードが複数のn個の構成ビットを備え、nが2以上の整数であり、前記スイッチボックスが、複数の行および複数の列に配置され、ここにおいて、前記複数のシリアルローディングセットが、各列の上半分に配置された第1の複数の前記シリアルローディングセットを備え、および、各列の下半分に配置された第2の複数の前記シリアルローディングセットを備える、
ここにおいて、各シリアルローディングセットに関する複数の前記nビットレジスタが、RICAクロックのサイクルに応答して前記シリアルローディングセットを通して構成ワードをシリアルにシフトするように構成されたnビットシフトレジスタを形成するように配置される、
再構成可能命令セルアレイ(RICA)。
【請求項2】
前記第1の複数の前記シリアルローディングセットに関する前記構成ワードを記憶するための第1のメモリと、
前記第2の複数の前記シリアルローディングセットに関する前記構成ワードを記憶するための第2のメモリと、
をさらに備える、請求項1に記載のRICA。
【請求項3】
前記第1のメモリと前記第2のメモリとがそれぞれ、前記RICAクロックのサイクルに応答してそれらの記憶された構成ワードを前記対応する複数のシリアルローディングセットに押し込むように構成された、請求項2に記載のRICA。
【請求項4】
前記複数のシリアルローディングセットに対応する複数の構成バスをさらに備え、各構成バスは、前記複数の構成ビットに対応する複数の構成ビットの伝導体を備え、各構成ビットの伝導体は、前記対応する構成ビットを伝導するように構成され、ここにおいて、各シリアルローディングセットに関して、前記対応する構成バスが、前記シリアルローディングセットの第1のスイッチボックス中の前記nビットレジスタに関するデータ入力端子に結合される、
請求項1に記載のRICA。
【請求項5】
前記RICAクロックのサイクルに応答して前記構成ワードを前記複数の構成バスに押し込むように構成された構成メモリをさらに備える、請求項4に記載のRICA。
【請求項6】
前記構成メモリが、チップ選択信号とアドレス信号とに応答して前記構成ワードを押し込むように構成された、請求項5に記載のRICA。
【請求項7】
各前記nビットシフトレジスタが、次の状態の構成ワードをシリアルにシフトするように構成され、各スイッチボックスが、更新信号のアサーションに応答して次の状態の構成ワードを現在の状態の構成ワードとして記憶するように構成されたnビットラッチアレイをさらに備える、請求項1に記載のRICA。
【請求項8】
各シリアルローディングセットに関して、前記シリアルローディングセットの前記nビットシフトレジスタが、第1のnビットレジスタから最後のnビットレジスタまでわたり、前記nビットラッチアレイが、前記第1のnビットレジスタに対応する第1のnビットラッチから前記最後のnビットレジスタに対応する最後のnビットラッチへわたる、請求項7に記載のRICA。
【請求項9】
各シリアルローディングセットについて、各nビットラッチが、前記更新信号の前記アサーションに応答して前記対応するnビットレジスタから現在の状態の構成ワードをラッチするように構成された、請求項8に記載のRICA。
【請求項10】
方法であって、
行と列に編成されたスイッチボックスのアレイ、ここにおいて、スイッチボックスの各列の上半分が、スイッチボックスの第1のシリアルローディングセットを備え、ここにおいて、各列の下半分が、スイッチボックスの第2のシリアルローディングセットを備える、について、各第1のシリアルローディングセット中の各スイッチボックスが構成ワードのうちの対応する1つを記憶するまで、各列の各上半分に第1の一連の構成ワードをシリアルにシフトすることと、
各第2のシリアルローディングセット中の各スイッチボックスが前記構成ワードのうちの対応する1つを記憶するまで、各列の各下半分に第2の一連の構成ワードをシリアルにシフトすることと、
各スイッチボックスにおいて、前記記憶された対応する構成ワードに応答して入力ワードを出力ワードに処理する専用論理ゲートを備える命令セルを構成することと、
前記記憶された対応する構成ワードに応答して前記入力および前記出力ワードをルーティングするように各スイッチボックスにおけるスイッチファブリックを構成することと、
を備える、方法。
【請求項11】
前記第1の一連の構成ワードをシリアルにシフトすることは、マルチビットシフトレジスタを通して前記第1の一連の構成ワードをシリアルにシフトすることを備え、ここにおいて、各マルチビットレジスタが前記一連における対応する構成ワードを記憶するまで、各第1のシリアルローディングセット中の各スイッチボックスが、前記マルチビットシフトレジスタのための対応するマルチビットレジスタを含む、請求項10に記載の方法。
【請求項12】
前記第1の一連の構成ワードが一連の次の状態の構成ワードであり、前記方法は、各マルチビットラッチが現在の状態の構成ワードを記憶するように、前記対応する記憶された次の状態の構成ワードを各マルチビットレジスタから対応するマルチビットラッチ中にロードすることをさらに備える、請求項11に記載の方法。
【請求項13】
前記ロードすることが更新信号のアサーションに応答する、請求項12に記載の方法。
【請求項14】
プログラミングメモリから前記第1の一連の構成ワードを取り出すことによって、前記第1の一連の構成ワードを伴う前記マルチビットシフトレジスタを駆動することをさらに備える、請求項11に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本出願は、その全体が参照により本明細書に組み込まれる、2013年9月12日に出願された米国非仮出願第14/025,646号の優先権を主張する。
【0002】
[0002]本出願は、再構成可能コンピューティングに関し、より詳細には、それらの構成データを連続的に受信するように構成された命令セルのアレイに関する。
【背景技術】
【0003】
[0003]プロセッサの速度が漸進的に向上してきたが、計算能力の向上の必要は衰えないままである。たとえば、スマートフォンは、現在、それらのプロセッサに当惑させるほどの様々なタスクを負わせている。しかし、シングルコアプロセッサは、所与の時間において少しの命令にしか適応することができない。したがって、現在、命令のセットを並列に処理することができるマルチコアまたはマルチスレッドプロセッサを設けることが一般的である。しかし、そのような命令ベースのアーキテクチャは、命令処理時間を
減少させることに関して、ダイスペース、電力消費、および複雑さによって課される限界と常に戦わなければならない。
【0004】
[0004]プログラマブル処理コアの使用と比較して、専用ハードウェアにおいてより効率的に処理され得る多くのアルゴリズムがある。たとえば、画像処理は、実質的な並列性と、処理ステップのパイプラインを通じグループにおけるピクセルの処理とを伴う。アルゴリズムが次いでハードウェアにマッピングされる場合、実装形態は、この対称性と並列性とを利用する。しかし、専用ハードウェアを設計することは、費用がかかり、また、アルゴリズムが変更された場合、専用ハードウェアが再設計されなければならないという点で煩雑である。
【0005】
[0005]命令ベースのアーキテクチャと専用ハードウェア手法との間の効率的な折衷を与えるために、再構成可能命令セルアレイ(RICA:reconfigurable instruction cell array)アーキテクチャが開発された。
図1Aに、再構成可能コア1を有する例示的なRICAシステム50を示す。RICA50では、加算器(ADD)、乗算器(MUL)、レジスタ(REG)、論理演算シフタ(SHIFT)、除算器(DIV)、データ比較器(COMP)、論理ゲート(LOGIC)、および論理ジャンプセル(JUMP)など、複数の命令セル2がプログラマブルスイッチファブリック(programmable switch fabric)4を通して相互接続される。命令セル2が実装するそれらの論理関数または命令に関する命令セル2の構成は、所与のアルゴリズムまたは関数を実装するために必要に応じて再プログラムされ得る。スイッチファブリック4は、それに応じて同様に再プログラムされることになる。命令セル2は、データメモリ8中に取り出されたまたはロードされた命令セル2のうちの残りの命令セル2のためのデータをインターフェースするメモリインターフェースセル12を含む。命令セル2によって生じる処理は、構成RAM6から取得された構成命令10に従って行われる。復号モジュール11は、命令セル2のための構成データだけでなく、スイッチングファブリック4のための構成データをも得るために命令10を復号する。RICA50は、I/Oポート16と特殊命令セルレジスタ14と通して外部システムとインターフェースする。
図1Aに示された追加の特徴は、その内容全体が参照により本明細書に組み込まれる、2006年4月28日に出願された米国特許公開第2010/0122105号に記載されている。
【0006】
[0006]再構成可能アレイ中の命令セルは、行および列によって配置され得る。各命令セル、任意の関連するレジスタ、および、命令セルのための関連する入力と出力とのスイッチングファブリックは、スイッチングボックス内に存在すると見なされ得る。
図1Bに、行および列に配置されたスイッチボックスの例示的なアレイを示す。選択されたスイッチボックス間に形成されたデータ経路は、複数のチャネルからの選択されたチャネル上で伝えられる。また、複数のチャネルは、スイッチボックスのための行および列に一致する行および列に配置される。各チャネルは一定のビット幅を有する。行方向は東および西に走り、列方向は北および南に走ると見なされ得る。最初のスイッチボックス100中の命令セルにおいて開始するデータ経路は、出力チャネル101上で東行方向にルーティングする。後続のスイッチボックスからのデータ経路に関するルーティングは、何れかの選択された行および列位置の最後のスイッチボックス105に達するような適切な東/西行方向または北/南列方向にある。この例示的なデータ経路では、2つの命令セルが算術論理ユニット(ALU:arithmetic logic unit)110として構成される。残りのスイッチボックスのための命令セルは、説明の明快のために示されていない。各スイッチボックスは、2つのスイッチマトリックスまたはファブリック、すなわち、それの命令セルへのチャネル入力に関して選択するための入力スイッチファブリックと、また、スイッチボックスからのチャネル出力に関して選択するための出力スイッチファブリックとを含む。命令セルに関するこれらのスイッチファブリックは、スイッチファブリック4として
図1Aにまとめて示されている。
【0007】
[0007]命令セルとは対照的に、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)中の論理ブロックはルックアップテーブル(LUT:lookup table)を使用する。たとえば、構成されたFPGA中で行われる論理演算においてANDゲートを必要とすると仮定する。対応するLUTは、ANDゲート論理関数のための真理値表を用いてプログラムされることになる。しかし、命令セルは、それが専用論理ゲートを含んでいるという点ではるかに「粗粒(coarse-grained)」である。たとえば、ALU命令セルは、種々の専用論理ゲートを含み得る。ALU命令セルが構成可能であることはその機能であるが、そのプリミティブ論理ゲートは専用ゲートであり、したがって非構成可能である。たとえば、従来のCMOSインバータは専用論理ゲートの1つのタイプである。そのようなインバータについて構成可能なものはなく、それは構成ビットを必要としない。しかし、FPGAプログラマブル論理ブロック中のインバータ関数のインスタンス化は、代わりにLUTの真理値表の対応するプログラミングによって実行される。したがって、本明細書で使用する「命令セル」という用語は、専用論理ゲートを備える構成可能な論理要素を指す。
【0008】
[0008]ALU命令セルは1つまたは複数のオペランドに対してそれの論理関数を実行する。このコンテキストにおけるオペランドは受信チャネル入力である。それの構成ビットに応じて、ALU命令セルは、対応する論理演算を実行するように構成される。たとえば、第1のスイッチボックスは、2つのチャネル入力に対応する2つのオペランドを加算するように構成されたALU命令セルを含み得る。しかし、同じALU命令セルは、2つのオペランドを減算するために後で更新され得る。命令セル内の論理演算から生じたオペランドは別の命令セル中で必要とされ得る。したがって、第1のスイッチボックス中の出力スイッチファブリックは、対応するチャネル出力を通して第1のスイッチボックスから結果となるオペランドを追い出すように構成されるであろう。対照的に、FPGAのLUTはビットを生成し、それらはワードを生成しない。したがって、FPGA中のスイッチファブリックは、FPGAのスイッチファブリックがFPGAのLUTからビットをルーティングするように構成されるという点で、RICA中のスイッチファブリックとは基本的に異なる。対照的に、RICA中のスイッチボックス間のルーティングは、入力チャネルおよび出力チャネルの両者としてワードをルーティングするように構成される。たとえば、スイッチボックスアレイは、20個のチャネルをルーティングするように構成され得る。そのような実施形態におけるスイッチボックスは、したがって、すべての4つの方向から20個の入力チャネルを受信し、20個の出力チャネルを4つの方向に駆動し得る。
【0009】
[0009]命令セルが専用論理ゲートを備えるので、構成データの必要な量は同等のFPGAのための構成データよりも実質的に少ないというRICAの利点に留意されたい。スイッチボックスは、したがって、再構成がコンパニオンプロセッサに対して事実上リアルタイムであるような比較的短い遅延の間に容易に再構成され得る。対照的に、FPGAのための比較的大量の構成データは、その再構成のためにかなりの遅延を必要とする。また、RICAは、旧来のプロセッサにおけるソフトウェアベースの実装形態と比較して処理速度の利点を有する。たとえば、パイプライン処理方式を通して複数のピクセルを処理することを伴う画像処理などのアルゴリズムは、専用ハードウェア手法をエミュレートする様式で命令セルにマッピングされ得る。しかし、専用ハードウェアを設計する必要はない。代わりに、単に、必要に応じて命令セルとスイッチングファブリックとを構成することができる。したがって、アルゴリズムが再設計されなければならない場合、ハードウェア再設計の必要はなく、代わりに、ユーザは、単に構成データを変更し得る。これは旧来の命令ベースのコンピューティング手法よりも極めて有利である。
【0010】
[0010]RICAは、したがって、ロバストな利点を提供するが、それの実装形態において課題が残っている。たとえば、命令セルとスイッチングファブリックとの構成のためなど、各スイッチボックス内の構成可能な要素のためにいくつかの構成ビットが必要とされる。各スイッチングボックスは、したがって、それの構成ビットを記憶するための記憶要素またはセルを必要とする。例示的な一実施形態では、(400個のスイッチボックスとなる)20個の行と20個の列とのアレイは、それの構成のために77キロビットを必要とする。そのような多くの構成ビットをロードするための回路は貴重なダイスペースと電力とを消費する。さらに、RICAは、構成ビットのローディングのために最小レイテンシを必要とする。その点において、命令セルはRICA中に静的にプログラムされず、たとえば、命令セルは通常動作中に数回再構成され得る。そのような頻繁な再プログラミングは必要としないかもしれないが、能力は提供されるべきである。そのようなマイクロプロセッサ他のシステムがRICAとインターフェースしていることがあるので、再構成のレイテンシは、ストールを防ぐために最小限に抑えられなければならない。
【0011】
[0011]したがって、当技術分野において、再構成可能命令セルアレイのためのエリア効率的で低レイテンシの構成方式が必要である。
【発明の概要】
【0012】
[0012]エリア効率的だが低レイテンシの構成方式を提供するために、再構成可能命令セルアレイ(RICA)中のスイッチボックスがシリアルローディングセットに編成される。各シリアルローディングセットは、シリアルローディングセットのスイッチボックスを通してマルチビットの構成ワードをシフトする、マルチビットシフトレジスタを形成する。一実施形態では、RICAのためのスイッチボックスアレイは、各シリアルローディングセットが列または行の全部または一部分にわたるように、行および列に編成される。スイッチボックスの行または列が2つのシリアルローディングセットに分割された場合、所望の構成ワードを各シリアルローディングセットにシフトインするために必要な構成時間が低減される。
【図面の簡単な説明】
【0013】
【
図1A】[0013]例示的な再構成可能命令セルアレイ(RICA)についてのブロック図。
【
図1B】[0014]
図1AのRICA中のスイッチボックスのアレイについてのブロック図。
【
図2】[0015]シリアルローディングセット中に配置されたスイッチボックスのアレイを示す図。
【
図3】[0016]スイッチボックスのシリアルローディングセット中のマルチビットシフトレジスタについての概略図。
【
図4】[0017]現在状態ラッチアレイを含む例示的なシリアルローディングセットについての概略図。
【
図5】[0018]構成ワードをスイッチボックスのシリアルローディングセット中にシリアルにロードする方法についてのフローチャート。
【0014】
[0019]本発明の実施形態およびそれらの利点は、以下の発明を実施するための形態を参照することによって最も良く理解される。図のうちの1つまたは複数に示される同様の要素を識別するために、同様の参照番号が使用されることを理解されたい。
【発明を実施するための形態】
【0015】
[0020]構成データがスイッチボックスのチェーンにシリアルにシフトされる再構成可能命令セルアレイ(RICA)が提供される。スイッチボックス中の命令セルならびに入力および出力スイッチファブリックを構成するための構成データは、第1の構成ビットから最後の構成ビットにわたる複数の構成ビットを備える構成ワードを形成する。各スイッチボックスのための入力スイッチファブリックおよび出力スイッチファブリックを本明細書ではまとめて単一のスイッチファブリックと呼ぶ。各スイッチボックスは、nビット構成ワード、ここでは2以上の正の整数である、の記憶のために適応されたnビットレジスタを含む。説明なしに本明細書で使用する「レジスタ」という用語は、1ビットレジスタを指す。したがって、nビットレジスタはn個のレジスタを備える。たとえば、スイッチボックスのためのnビットレジスタ中の第1のレジスタが、スイッチボックスの構成ワードの第1の構成ビットを記憶するように構成される。同様に、nビットレジスタ中の第2のレジスタが、構成ワードのための対応する第2の構成ビットを記憶するように構成され、以下同様にして、nビットレジスタ中の最終の(または第nの)レジスタが、構成ワードのための対応する最終の構成ビットを記憶するように構成される。
【0016】
[0021]1つのRICA実施形態では、各スイッチボックスは、それの命令セルとスイッチファブリックとのための現在の状態の構成ワードを記憶するだけでなく、次の状態の構成ワードをも記憶する。そのような実施形態での各スイッチボックスは、現在の状態の構成ワードを記憶するための現在状態記憶セルアレイ、ならびに次の状態の構成ワードを記憶するための次状態nビットレジスタを含む。スイッチボックスは、それの次状態nビットレジスタからの次の状態の構成ワードを現在状態記憶セルアレイ中にロードすることによって、更新信号に応答する。シリアル構成アーキテクチャについて、次状態nビットレジスタ中への次の状態の構成ワードのローディングに関して本明細書で説明する。しかしながら、開示するローディング方式の実施形態はまた、現在の構成ワードのみをロードする再構成可能命令セルアレイに広く適用可能である。その点において、本明細書で開示する次状態nビットレジスタは、別段の必要がない限り、簡潔のために単に「nビットレジスタ」と呼ぶ。
【0017】
[0022]RICA中のスイッチボックスのアレイは、行および列に配置され得る。何が「行」として示され、何が「列」として示されるかは、単に観点の問題であることを諒解されよう。したがって、本明細書では、行および列という用語は一般性を失わずに使用される。構成ワードの有利なシリアルローディングを可能にするために、スイッチボックスのシリアルローディングセット中のnビットレジスタは、nビットシフトレジスタを形成するように構成される。nビットシフトレジスタは、それらの構成ビットに対応するn個のシフトレジスタの並列配置を備える。たとえば、スイッチボックスのシリアルローディングセットのためのそれぞれの構成ワードからの第1の構成ビットを記憶するように構成されたレジスタは、第1のシフトレジスタ中に配置される。同様に、スイッチボックスのシリアルローディングセットのための第2の構成ビットを記憶するように構成されたレジスタは、第2のシフトレジスタ中に配置され、以下同様にして、シリアルローディングセット中の最後の構成ビットを記憶するように構成されたレジスタは、最後のシフトレジスタ中に配置される。したがって、スイッチボックスのシリアルローディングセット中のレジスタは、nビットシフトレジスタを形成するために、第1のシフトレジスタから最後のシフトレジスタにわたるシフトレジスタのアレイ中に配置される。より一般的に、そのようなnビットシフトレジスタは、それがマルチビット構成ワードをシリアルにシフトするので、マルチビットシフトレジスタとして示され得る。一実施形態での各シリアルローディングセットのためのマルチビットシフトレジスタは、シリアルローディングセット中の各スイッチボックスがそれの対応する構成ワードを記憶するまで、構成ワードをシリアルにシフトするための手段を形成する。
【0018】
[0023]シリアルローディングセット中のスイッチボックスは、第1のスイッチボックスから最後のスイッチボックスまで配置される。第1のスイッチボックス中のnビットレジスタに関するデータ入力端子は、対応する構成バスに結合し、それは複数の構成ビットに対応する複数の構成ビット導体を備える。したがって、各スイッチボックス中のレジスタとまったく同様に、構成バス中の構成ビット導体のうちの第1の構成ビット導体が、スイッチボックスの対応するシリアルローディングセットのための構成ワードのための第1の構成ビットを伝搬するように構成される。同様に、構成バス中の構成ビット導体のうちの第2の構成ビット導体が、シリアルローディングセットのための第2の構成ビットを伝搬するように構成され、以下同様である。スイッチボックスのシリアルローディングセットについての特徴をより良く示すために、いくつかの例示的な実施形態について次に説明する。
【0019】
例示的な実施形態
[0024]
図2に、スイッチボックスアレイ200がスイッチボックスの20個の行と20個の列とを備える実施形態を示す。スイッチボックスアレイ200が上側ハーフアレイと下側ハーフアレイとを備えるように、各列は、構成データのシリアルローディングに関して半分に分割される。各ハーフアレイ中のスイッチボックスの各半分の列が、シリアルローディングセットを形成するように適応される。たとえば、下側ハーフアレイにおける1つのシリアルローディングセットがスイッチボックス210からスイッチボックス215にわたる。各ハーフアレイのための構成メモリはハーフアレイのシリアルローディングセットを駆動する。構成メモリ北201は上側ハーフアレイを駆動し、構成メモリ南205は下側ハーフアレイを駆動する。各構成メモリ201および205は、構成ワードをそれの対応するハーフアレイのためのシリアルローディングセットに押し込むように構成される。たとえば、南メモリ205は、スイッチボックス210からスイッチボックス215にわたるシリアルローディングセットに、および下側ハーフアレイに関する残りのシリアルローディングセットに構成ワードを押し込むように構成される。一実施形態では、各構成ワード幅は192ビットである。20個のスイッチボックスの行の構成は、そのような実施形態では、したがって20*192ビットを必要とし、それは3840ビットに等しい。アレイ200中に20個の行があるので、アレイ200のための構成データは、20*3840ビットを備え得、それは約77キロビットに等しい。
【0020】
[0025]代替実施形態では、単一の構成メモリがすべての構成ワードを記憶することができる。その場合、各シリアルローディングセットは、アレイ200の対応する全列にわたることになる。しかし、本明細書でさらに説明するように、各々がアレイ200中にそのようなそれら自体のシリアルローディングセットを有するハーフアレイ中にアレイが配置される実施形態では、構成プロセスのためのローディング時間は半分にされる。
【0021】
[0026]
図3に、スイッチボックスの例示的なシリアルローディングセット300を示す。説明の明快のために、各スイッチボックスは、その構成ワードを記憶するためのそのnビットレジスタによって表される。たとえば、最初のサイクル1のスイッチボックスがそのnビットレジスタ305によって表され、隣接するサイクル2のスイッチボックスがそれのnビットレジスタ310によって表され、以下同様にして、最終のサイクル10のスイッチボックスがそのnビットレジスタ315によって表される。様々なnビットレジスタは、nビットレジスタ305から始まり、nビットレジスタ315において終了するnビットシフトレジスタを形成するように配置される。
【0022】
[0027]nビットレジスタ中のレジスタは、それらが記憶するそれらのそれぞれの構成ワードのビットによって指定される。各構成ワードはnビット幅であり、ただし、nは、構成ワード幅中のビット数を表す正の整数である。その点において、各構成ワードは、第1のビットから最終の第nのビットにわたる一連のビットを備える。各nビットレジスタ中のレジスタは、したがって、第1の構成ビットを記憶する第1のレジスタR1から、第2の構成ビットを記憶する第2のレジスタR2、以下同様に、第nの構成ビットを記憶する最終のレジスタRnまで配置される。
【0023】
[0028]nビットシフトレジスタは、各スイッチボックスからのR1レジスタを備える第1のシフトレジスタ320を含む。したがって、シフトレジスタ320は、シリアルローディングセット300をプログラムするために使用される構成ワードのための第1の構成ビットをシフトするように機能する。同様に、第2のシフトレジスタ325が各スイッチボックスからのR2レジスタを備え、以下同様にして、最終のシフトレジスタ330が各スイッチボックスからのRnレジスタを備える。各レジスタR1〜Rnは、RICAクロックのサイクルに応答して登録するように構成される。したがって、RICAクロックサイクルとして、構成ワードがシリアルローディングセット300中のスイッチボックスから後続のスイッチボックスへ転送される。
【0024】
[0029]再び
図2を参照すると、アレイ200のスイッチボックス210はサイクル1のスイッチボックスである。サイクル1のスイッチボックスは、RICA構成プロセス中の第1のRICAクロックサイクル中に、そのnビットレジスタに構成ワードを記憶させるスイッチボックスであるので、表示「サイクル1」が使用される(説明の明快のために、RICAクロックは
図2に示されていない)。サイクル1のスイッチボックス中のnビットレジスタ305は、シリアルローディングセット300の構成中のRICAクロックの第1のサイクル中に、第1の構成ワードを登録する。第1の構成ワードは、次いで、nビットレジスタ305中のレジスタのQ出力において提示される。
【0025】
[0030]nビットレジスタ305中のレジスタからのQ出力は、サイクル2のスイッチボックス中のnビットレジスタ310中の対応するレジスタに関するデータ入力(D)を駆動する。サイクル2のスイッチボックスは、RICA構成プロセス中の第2のRICAクロックサイクル中に構成ワードを最初に登録するので、表示「サイクル2」が使用される。nビットレジスタ310は、したがって、RICAクロックのサイクル2中に第1の構成ワードを登録することになる。このようにして、構成ワードは、最終のサイクル10スイッチボックスが、第10のRICAクロックサイクル中にnビットレジスタ315に第1の構成ワードを登録するまで、シリアルローディングセット中のスイッチボックスを通してシリアルにシフトされる。シリアルローディングセット300中のすべてのスイッチボックスは、したがって、第10のRICAクロックサイクルにおいてそれらの対応する構成ワードを登録する。より一般的には、任意の
行数xのスイッチボックスを有するシリアルローディングセットでは、スイッチボックスは、第xのRICAクロックサイクル中にそれらの対応する構成ワードを登録するであろう。
【0026】
[0031]
図2のアレイ200中の列を半分の列に分割すると、シリアルローディングセットがすべての行にわたった実施形態と比較して、構成時間が減少することに留意されたい。たとえば、ハーフアレイに分割されていない20個の行をもつ一実施形態では、構成プロセスは20個のクロックRICAサイクルを必要とし得る。しかし、
図2のシリアルローディングセットは、それらの構成のために10個のRICAクロックサイクルのみを必要とする。
【0027】
[0032]
図4に、シリアルローディングプロセスをより良く示すために、例示的なnビットシフトレジスタ400を示す。説明の明快のために、3つのnビットレジスタR1、R2、およびR3のみがシフトレジスタ400中に示される。したがって、nビットシフトレジスタ400を含む(図示されない)スイッチボックスのシリアルローディングセットは、ちょうど3つのスイッチボックスを備えることになる。この実施形態では、nビットシフトレジスタ400にシフトされる構成ワードは次の状態の構成ワードである。nビットレジスタR1は、RICAクロック430の第1のクロックサイクル中に次の状態の構成ワードをラッチする。nビットレジスタR1がnビットシフトレジスタ400中の最初のnビットレジスタであるので、構成メモリ420は、nビットレジスタR1に関するデータ入力端子に構成バス220を介して第1の構成ワードを押し込む。構成メモリ420は、チップ選択(CS)信号440に応答して構成ワードを取り出すことを可能にされる。CS440がアサートされたとき、構成メモリ420は、アドレス信号(addr)445およびメモリクロック(MCK)450に応答して構成ワードを取り出す。
【0028】
[0033]各nビットレジスタR1〜R3は、RICAクロック430の各サイクル中にそれデータ入力を登録する。したがって、第2のRICAクロックサイクル中に、nビットレジスタR2は、最初にnビットレジスタR1に登録された第1の次の状態の構成ワードを登録する。第3のRICAクロックサイクル中に、この第1の次の状態の構成ワードは次いで、nビットレジスタR3によって登録される。このようにして、第1のRICAクロックサイクル中にnビットレジスタR1に記憶された次の状態の構成ワードは、第3のRICAクロックサイクル中にnビットレジスタR3に記憶される。この時点で、次の状態の構成ワードはnビットシフトレジスタ400中に完全にロードされている。更新信号455は、次いで、次の状態の構成ワードが現在状態ラッチアレイ410に並列にシフトされることを引き起こすために、アサートされ得る。次状態シフトレジスタ400に類似して、現在状態ラッチアレイ410は、それぞれnビットレジスタR1、R2、およびR3に対応する、nビットラッチL1、L2、およびL3を含む。nビットレジスタと同様に、nビットラッチは、nビットラッチL1が第1のスイッチボックスに対応し、nビットラッチL2が第2のスイッチボックスに対応し、nビットラッチL3が第3のスイッチボックスに対応するように、スイッチボックスに対応する。
【0029】
[0034]更新信号455は、nビットラッチL1、L2、およびL3のためのセット(S)信号として働く。本明細書で使用する「ラッチ」は、セット信号のレベル(高または低)に応答してデータ入力をラッチするように構成された記憶セルを指す。対照的に、本明細書で使用する「レジスタ」という用語は、得られた構造がクロック信号に対してエッジセンシティブ(立上りエッジまたは立下りエッジ)であるように、記憶されたビットごとに2つの1ビットラッチを備える記憶セルを指す。シフト能力が必要でないので、それは、したがって、ラッチ中のスイッチボックスのシリアルローディングセットのための現在の状態の構成ワードを記憶するためのエリアを節約する。現在の状態の構成ワードは次いで、対応するスイッチボックス中の命令セルとスイッチファブリックとを構成するために利用可能である。しかしながら、別の実施形態では、ラッチアレイ410がnビットシフトレジスタによって置き換えられ得ることが諒解されよう。次に、例示的な動作方法について説明する。
例示的な動作方法
構成ワードを再構成可能命令セルアレイのためのスイッチボックスのシリアルローディングセットにシリアルにロードする例示的な方法についてのフローチャートが
図5に示される。本方法は、スイッチボックスのシリアルローディングセット中の各スイッチボックスが一連の構成ワードのうちの対応する1つを記憶するまで、シリアルローディングセットに一連の構成ワードをシリアルにシフトする行為500から始まる。たとえば、スイッチボックスのシリアルローディングセットが、第1のスイッチボックス、第2のスイッチボックス、および第3のスイッチボックスとしてシリアルに配置された3つのスイッチボックスを備えると仮定する。対応する一連の構成ワードは、したがって、第1のスイッチボックスのための第1の構成ワード、第2のスイッチボックスのための第2の構成ワード、および第3のスイッチボックスのための第3の構成ワードを備える。本方法は次いで、記憶された対応する構成ワードに応答して各スイッチボックス中の命令セルとスイッチファブリックとを構成する行為505を続ける。
【0030】
[0035]当業者が今までに諒解するように、および手元の特定の適用例に応じて、本開示の趣旨および範囲から逸脱することなく、本開示のデバイスの材料と、装置と、構成と、使用方法とにおいておよびそれらに対して、多くの変更、置換および変形が行われ得る。これに照らして、本明細書で例示し、説明した特定の実施形態は本開示のいくつかの例にすぎないので、本開示の範囲は、それらの実施形態の範囲に限定されるべきでなく、むしろ、以下に添付された特許請求の範囲およびそれらの機能的等価物の範囲に十分に相応すべきである。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1] 再構成可能命令セルアレイ(RICA)であって、
複数のシリアルローディングセットに編成されたスイッチボックスのアレイを備え、ここにおいて、各シリアルローディングセットに関して、前記対応するスイッチボックスが、第1のスイッチボックスから最後のスイッチボックスへと配置され、各スイッチボックスが、対応する構成ワードに従って両方とも構成可能であるプログラマブル命令セルとスイッチファブリックとを含み、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたnビットレジスタを含み、ここにおいて、各構成ワードが複数のn個の構成ビットを備え、nが2以上の整数であり、
ここにおいて、各シリアルローディングセットに関する複数の前記nビットレジスタが、RICAクロックのサイクルに応答して前記シリアルローディングセットを通して構成ワードをシリアルにシフトするように構成されたnビットシフトレジスタを形成するように配置される、
再構成可能命令セルアレイ(RICA)。
[C2] 前記スイッチボックスが行および列に配置され、第1の複数の前記シリアルローディングセットにおける前記シリアルローディングセットが各列の上半分を備え、ここにおいて、第2の複数の前記シリアルローディングセットにおける前記シリアルローディングセットが各列の下半分を備える、C1に記載のRICA。
[C3] 前記第1の複数の前記シリアルローディングセットに関する前記構成ワードを記憶するための第1のメモリと、
前記第2の複数の前記シリアルローディングセットに関する前記構成ワードを記憶するための第2のメモリと、
をさらに備える、C2に記載のRICA。
[C4] 前記第1のメモリと前記第2のメモリとがそれぞれ、前記RICAクロックのサイクルに応答してそれらの記憶された構成ワードを前記対応する複数のシリアルローディングセット中に押し込むように構成された、C3に記載のRICA。
[C5] 前記複数のシリアルローディングセットに対応する複数の構成バスをさらに備え、各構成バスは、前記複数の構成ビットに対応する複数の構成ビットの伝導体を備え、各構成ビットの伝導体は、前記対応する構成ビットを伝導するように構成され、ここにおいて、各シリアルローディングセットに関して、前記対応する構成バスが、前記シリアルローディングセットの第1のスイッチボックス中の前記nビットレジスタに関するデータ入力端子に結合される、
C1に記載のRICA。
[C6] 前記RICAクロックのサイクルに応答して前記構成ワードを前記複数の構成バス中に押し込むように構成された構成メモリをさらに備える、C5に記載のRICA。
[C7] 前記構成メモリが、チップ選択信号とアドレス信号とに応答して前記構成ワードを押し込むように構成された、C6に記載のRICA。
[C8] 前記nビットシフトレジスタが、次の状態の構成ワードをシリアルにシフトするように構成され、各スイッチボックスが、更新信号のアサーションに応答して次の状態の構成ワードを現在の状態の構成ワードとして記憶するように構成されたnビットラッチアレイをさらに備える、C1に記載のRICA。
[C9] 各シリアルローディングセットに関して、前記nビットシフトレジスタが、第1のnビットレジスタから最後のnビットレジスタまでわたり、前記nビットラッチアレイが、前記第1のnビットレジスタに対応する第1のnビットラッチから前記最後のnビットレジスタに対応する最後のnビットラッチへわたる、C8に記載のRICA。
[C10] 各シリアルローディングセットについて、各nビットラッチが、前記更新信号の前記アサーションに応答して前記対応するnビットレジスタから現在の状態の構成ワードをラッチするように構成された、C9に記載のRICA。
[C11] スイッチボックスのシリアルローディングセットに関する各スイッチボックスが一連の構成ワードのうちの対応する1つを記憶するまで、前記シリアルローディングセットに前記構成ワードをシリアルにシフトすることと、
前記記憶された対応する構成ワードに応答して各スイッチボックスにおける命令セルとスイッチファブリックとを構成することと、
を備える、方法。
[C12] 前記シリアルローディングに関する前記スイッチボックスが、行および列に配置されたスイッチボックスのアレイの部分であり、前記シリアルローディングセットに前記一連の構成ワードをシリアルにシフトすることが、前記列のうちの1つに沿って前記構成ワードをシリアルにシフトすることを備える、C11に記載の方法。
[C13] 前記一連の構成ワードを前記シリアルにシフトすることが、前記1つの列の半分に沿って前記構成ワードをシリアルにシフトすることを備える、C11に記載の方法。
[C14] 前記一連の構成ワードをシリアルにシフトすることは、各マルチビットレジスタが前記一連における対応する構成ワードを記憶するまで、マルチビットシフトレジスタを通して前記一連の構成ワードをシリアルにシフトすることを備え、ここにおいて、各スイッチボックスが、前記マルチビットシフトレジスタのための対応するマルチビットレジスタを含む、C11に記載の方法。
[C15] 前記一連の構成ワードが一連の次の状態の構成ワードであり、前記方法は、各マルチビットラッチが現在の状態の構成ワードを記憶するように、前記対応する記憶された次の状態の構成ワードを各マルチビットレジスタから対応するマルチビットラッチ中にロードすることをさらに備える、C14に記載の方法。
[C16] 前記ロードすることが更新信号のアサーションに応答する、C15に記載の方法。
[C17] プログラミングメモリから前記一連の構成ワードを取り出すことによって、前記一連の構成ワードを伴う前記マルチビットシフトレジスタを駆動することをさらに備える、C14に記載の方法。
[C18] 再構成可能命令セルアレイ(RICA)であって、
スイッチボックスのシリアルローディングセットに編成されたスイッチボックスのアレイ、ここで、各スイッチボックスが、対応する構成ワードに従って両方とも構成可能であるプログラマブル命令セルとスイッチファブリックとを含む、と、
各スイッチボックスがその対応する構成ワードを記憶するまで、スイッチボックスの各シリアルローディングセットを通して構成ワードをシリアルにシフトするための手段と、
を備える、再構成可能命令セルアレイ。
[C19] スイッチボックスの前記アレイがいくつかの行およびいくつかの列に編成され、スイッチボックスの各シリアルローディングセットにおけるスイッチボックスの数が列の数よりも小さい、C18に記載のRICA。
[C20] 各シリアルローディングセットにおけるスイッチボックスの前記数が、列の前記数の半分である、C19に記載のRICA。
【要約】
再構成可能命令セルアレイ(RICA)が複数のスイッチボックスを含む。各スイッチボックスは、各スイッチボックスに記憶された構成ワードに従って構成可能な命令セルとスイッチファブリックとを含む。スイッチボックスは、各シリアルローディングセット中のスイッチボックスが、対応する構成ワードをシリアルシフトするためのマルチビットシフトレジスタチェーンを形成するように構成されるように、シリアルローディングセット中に配置される。