(57)【要約】  スイッチボックスのアレイを含む再設定可能な命令セルのアレイが開示される。アレイ内の各スイッチボックスは、アレイの中で隣接のスイッチボックスから複数のインプットチャネルを受信するように設定されるＩ／Ｏポートのセットを含む。スイッチボックス内で、Ｉ／Ｏポートのうちの１つは、アレイの中の隣接のスイッチボックスに駆動されるための複数のアウトプットチャネルを形成するためにスイッチボックスの中の残りのＩ／Ｏポートによって受信されるインプットチャネルから条件付きで選択する。
2016520239.tif 000002
【特許請求の範囲】
【請求項１】
回路であって、
複数のスイッチボックス、ここにおいて、各スイッチボックスは、インプット／アウトプット（Ｉ／Ｏ）ポートのセットを含み、各Ｉ／Ｏポートは、複数のインプットチャネルを受信し、複数のアウトプットチャネルをアウトプットするように設定され、
各Ｉ／Ｏポートは、前記複数のアウトプットチャネルに対応する複数の条件付きのルーティング回路を含み、各スイッチボックスのＩ／Ｏポートのための各条件付きのルーティング回路は、
第１のアドレス信号に応答してマルチプレクサのアウトプットを形成するためにスイッチボックスのためのＩ／Ｏポートの前記セットに残る各Ｉ／Ｏポートから受信されたインプットチャネルを備える信号のグループから選択するように設定される第１のマルチプレクサと、
前記第１のアドレス信号を形成するように設定されるデコーダと、前記デコーダは、第１のアドレス信号が信号の前記グループに依存しない動作の静的なルーティングモードで動作するように設定可能であり、前記デコーダは、前記第１のアドレス信号が、インプット信号の前記グループからデコーダに選択された信号に依存する動作の条件付きのルーティングモードで動作するようにさらに設定可能であり、ここにおいて、前記条件付きのルーティング回路は、前記条件付きのルーティング回路のアウトプットチャネルとして前記マルチプレクサのアウトプットを駆動するように設定可能であり、
を含み、
を備える、回路。
【請求項２】
各スイッチボックスは、命令セルのアウトプットを作るために前記スイッチボックスのためのＩ／Ｏポートの前記セットの中の前記Ｉ／Ｏポートのうちの１つによって受信された前記インプットチャネルのうちの少なくとも１つに論理演算を実行するように設定される命令セルを含み、ここにおいて、信号の前記グループは、前記命令セルのアウトプットをさらに含む、請求項１に記載の回路。
【請求項３】
前記複数のスイッチボックスは、行および列によって配置され、ここにおいて、各スイッチボックスのためのＩ／Ｏポートの前記セットは、対向する行のＩ／Ｏポートのペアおよび対向する列のＩ／Ｏポートのペアを備える、請求項２に記載の回路。
【請求項４】
各スイッチボックスのＩ／Ｏポートの条件付きのルーティング回路のための各デコーダは、前記スイッチボックスのためのコンフィギュレーションワードからのコンフィギュレーションビットに応答して、前記デコーダに選択された信号を形成するために信号のそれの条件付きのルーティング回路の第１のマルチプレクサのグループから選択するように設定されるように設定可能である、請求項１に記載の回路。
【請求項５】
各デコーダは、前記第１のアドレス信号を形成するために前記デコーダに選択された信号からビットのサブセットをデコードするように設定される、請求項１に記載の回路。
【請求項６】
各条件付きのルーティング回路は、機能ユニットのアウトプットを形成するために前記条件付きのルーティング回路のマルチプレクサのアウトプットに論理演算を実行するように設定される機能ユニットをさらに含む、請求項１に記載の回路。
【請求項７】
各デコーダは、第２のアドレス信号を形成するようにさらに設定され、ここにおいて、各条件付きのルーティング回路は、前記第２のアドレス信号に応答して前記対応するアウトプットチャネルを形成するために前記条件付きのルーティング回路のマルチプレクサのアウトプットと前記条件付きのルーティング回路の機能ユニットのアウトプット間で選択するように設定される第２のマルチプレクサをさらに含む、請求項５に記載の回路。
【請求項８】
前記機能ユニットのうちの少なくとも１つは、レジスタを備える、請求項６に記載の回路。
【請求項９】
前記機能ユニットのうちの少なくとも１つは、シフト回路を備える、請求項６に記載の回路。
【請求項１０】
各デコーダは、前記第１のマルチプレクサが、前記マルチプレクサのアウトプットを形成するために前記第１のアドレス信号に応答して前記デコーダに選択された信号を除く信号のそのグループから選択するように設定されるように、動作の前記条件付きのルーティングモードで動作するようにさらに設定可能である、請求項１に記載の回路。
【請求項１１】
前記命令セルのうちの少なくとも１つは、算術論理ユニット（ＡＬＵ）を備える、請求項１に記載の回路。
【請求項１２】
各スイッチボックスの列のＩ／Ｏポートの中の各第１のマルチプレクサは、前記スイッチボックスの中の各行のＩ／Ｏポートから受信されたインプットチャネルから、および前記スイッチボックスの中の残りの列のＩ／Ｏポートから受信されたインプットチャネルから、選択するように設定される、請求項３に記載の回路。
【請求項１３】
各スイッチボックスの中の各行のＩ／Ｏポートの中の各第１のマルチプレクサは、前記スイッチボックスの中の各列のＩ／Ｏポートから受信されたインプットチャネルから、および前記スイッチボックスの中の残りの行のＩ／Ｏポートから受信されたインプットチャネルから、選択するように設定される、請求項３に記載の回路。
【請求項１４】
方法であって、
隣接のスイッチボックスのセットで取り囲まれるようにスイッチボックスのアレイに配置される第１のスイッチボックスのために、前記隣接のスイッチボックスの各々から複数のインプットチャネルを受信することと、
命令セルのアウトプットを形成するために前記受信されたインプットチャネルのうちの少なくとも１つに論理演算を実行することと、
第１のアドレス信号を形成するために前記セットの中の各隣接のスイッチボックスから受信されたインプットチャネル、および前記命令セルのアウトプットを備える信号のグループからデコーダに選択された信号をデコードすることと、
前記第１のアドレス信号に応答して、前記隣接のスイッチボックスのうちの所与の１つにアウトプットチャネルを形成するために信号の前記グループから選択することと、
を備える、方法。
【請求項１５】
前記第１のスイッチボックスのためのコンフィギュレーションワードの中のコンフィギュレーションビットに応答して信号の前記グループから前記デコーダに選択された信号を選択することをさらに備える、請求項１４に記載の方法。
【請求項１６】
信号の前記グループから前記デコーダに選択された信号を選択することは、信号の前記グループの中の前記信号の各々に関する論理ステートにさらに応答する、請求項１５に記載の方法。
【請求項１７】
前記アウトプットチャネルを形成することは、
マルチプレクサのアウトプットを形成するために信号の前記グループから選択することと、
機能ユニットのアウトプットを形成するために前記マルチプレクサのアウトプットに論理演算を実行することと、
前記アウトプットチャネルを形成するために前記マルチプレクサのアウトプットと前記機能ユニットのアウトプット間で選択することと、
を備える、請求項１４に記載の方法。
【請求項１８】
回路であって、
複数のスイッチボックス、ここにおいて、各スイッチボックスは、
インプット／アウトプット（Ｉ／Ｏ）ポートのセット、各Ｉ／Ｏポートは、複数のインプットチャネルを受信するように、および複数のアウトプットチャネルをアウトプットするように構成され、を含み、ここにおいて、各Ｉ／Ｏポートは、
前記Ｉ／Ｏポートの複数のアウトプットチャネルを形成するための前記セットに残る各Ｉ／Ｏポートから前記受信されたインプットチャネルから条件付きで選択するための手段を含む、
を備える、回路。
【請求項１９】
各手段は、前記Ｉ／Ｏポートの複数のアウトプットチャネルを形成するために機能動作で選択されたインプットチャネルを条件付きで処理するように設定される、請求項１８に記載の回路。
【請求項２０】
各手段は、デコーダを備える、請求項１８に記載の回路。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
[0001]  本出願は、２０１３年５月２９日に出願された米国非仮出願第１３／９０５，０３２号に対する優先権を主張し、その全体が参照により本明細書に組み込まれる。
【技術分野】
【０００２】
[0002]  本出願は、再設定可能な命令セルのアレイ（ＲＩＣＡｓ）に、より具体的には、インプレースの機能性を持つＲＩＣＡ（RICA with in-place functionality）に関する。
【背景技術】
【０００３】
[0003]  マイクロプロセッサの計算能力（computing power）は、徐々に増加したが、さらなる増加の必要性は、弱まらないままである。例えば、スマートフォンは現在、それらのプロセッサに、目の回るような多様なタスク（bewildering variety of tasks）を負担させている。しかしながら、シングルコアプロセッサは、所与の時間で非常にたくさんの命令に適応することのみできる。したがって、並行して命令のセットを処理することができるマルチコア、またはマルチスレッドプロセッサ（multi-threaded processors）を提供することが、現在一般的である。しかしながら、そのような命令ベースのアーキテクチャは、命令処理時間を低減することに関して、ダイスペース（die space）、パワー消費、および複雑さによって課される制限といつも戦わなければならない。
【０００４】
[0004]  プログラマブルプロセッシングコア（programmable processing core）の使用と比べて、専用ハードウェアの中でより効率的に処理されることができる多くのアルゴリズムが、存在する。例えば、画像処理は、処理ステップのパイプラインを通してグループの中のピクセルを処理すること、および実質的な並行処理（substantial parallelism）を含む。アルゴリズムがハードウェアにマッピングされる場合、インプリメンテーションは、この対称性（symmetry）および並行処理を利用する。専用ハードウェアを設計することは、アルゴリズムが修正される場合において、高価であり、厄介でもあるが、専用ハードウェアは、再設計されなくてはならない。
【０００５】
[0005]  命令ベースのアーキテクチャと専用ハードウェアアプローチ間で効率的な歩み寄り（compromise）を提供するために、再設定可能な命令セルのアレイ（ＲＩＣＡ）のアーキテクチャは、開発された。図１Ａは、例示的なＲＩＣＡシステム５０を例示する。このＲＩＣＡシステム５０の中で、複数の命令セル２は、プログラマブルスイッチング構造（programmable switching fabric）４を通して相互接続される。命令セルの設定（何の種類の論理関数（logical function）または命令をそれらがインプリメントするかに関して）およびスイッチング構造は、所与のアルゴリズムまたは関数をインプリメントするために必要に応じてクロックサイクル毎に再プログラムされることができる。命令セルは、（データＲＡＭ８から順にロードされる）ＭＥＭセル１２によって取り出されるときにデータを処理する。命令セル２によるこの処理は、コンフィギュレーションＲＡＭ（configuration RAM）６から取得されるコンフィギュレーション命令１０により発生する。デコードモジュール１１は、命令セル２のためだけでなく、スイッチング構造４のためでもあるプログラミングを入手するために、命令１０をデコードする。図１Ａに示されたさらなる特徴は、２００６年４月２８日に出願された、米国特許出願公開第２０１０／０１２２１０５号公報に説明され、その内容が、全体において参照により本明細書に組み込まれる。
【０００６】
[0006]  ＲＩＣＡの利点に留意されたい：パイプライン処理スキーム（pipelined processing scheme）を通して複数のピクセルを処理することを含む画像処理のようなアルゴリズムは、専用ハードウェアアプローチをエミュレートする（emulates）方法で、命令セルにマッピングされることができる。専用ハードウェアを設計する必要はないが、代わりに、必要に応じてセルおよびスイッチング構造を単にプログラムすることができる。したがって、アルゴリズムが再設計されなければならない場合、ハードウェア再設計の必要はないが、代わりにユーザは、必要に応じてプログラミングを単に変更し得る。このことは、従来の命令ベースのコンピューティングアプローチにわたってかなり有利である。
【０００７】
[0007]  ＲＩＣＡはしたがって、頑強な利点を提供するが、チャレンジは、そのインプリメンテーションの中に残る。例えば、行および列によって再設定可能なアレイの中に命令セルを配置することが、従来のものである。各命令セル、任意の関連したレジスタ、ならびにインプットおよびアウトプットスイッチング構造は、スイッチボックス内に存在すると考えられ得る。図１Ｂは、行および列に配置されるスイッチボックスの例示的なアレイを示す。各スイッチボックスの中のスイッチング構造は、いくつかの行および列ロケーションで所与のスイッチボックス１００で始まることができ、異なる行および列ロケーションでなんらかの他のスイッチボックス１０５で終わることができるデータパスに適応しなければならない。このデータパスにおいて、２つの命令セルが、設定された算術論理ユニット（arithmetic logic units）（ＡＬＵｓ）１１０である。残りのスイッチボックスのための命令セルは、図の明快さのために示されていない。各スイッチボックスは、２つのスイッチングマトリックスまたは構造に適応しなければならないことに留意されたい：その命令セルへのインプットのために選択するためのインプットスイッチング構造、ならびにスイッチボックスからアウトプットのために選択するためのアウトプットスイッチング構造。
【０００８】
[0008]  命令セルと対照的に、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）の中の論理ブロックは、ルックアップテーブル（ＬＵＴｓ）を使用する。例えば、設定されたＦＰＧＡの中で実行される論理演算（logic operation）の中のＡＮＤゲートを必要とすると仮定する。ＬＵＴはその場合、ＡＮＤゲート論理関数のための真理値表（truth table）でプログラムされることとなる。しかしながら、命令セルは、それが専用論理ゲートを包含するという点において、非常に「粗雑（coarser-grained）」である。例えば、ＡＬＵの命令セルは、アソートされた（assorted）専用論理ゲートを含むこととなる。設定可能であるのは、ＡＬＵの命令セルの機能である−そのプリミティブ論理ゲート（primitive logic gate）は、専用ゲートであり、したがって、設定不可能（non-configurable）である。例えば、従来のＣＭＯＳインバータは、専用論理ゲートの１つのタイプである。そのようなインバータについて設定可能であるものはなく、それは、コンフィギュレーションビット（configuration bits）を必要としない。しかしながら、ＦＰＧＡプログラマブル論理ブロックの中のインバータ関数のインスタンシエーション（instantiation）は、ＬＵＴの真理値表の対応するプログラミングによって代わりに実行される。したがって、本明細書で使用される場合、「命令セル」という用語は、専用論理ゲートを備える設定可能な論理要素を称す。
【０００９】
[0009]  命令セルは、命令セルのアウトプットを形成するために１つ以上のオペランドにその論理関数を実行する。このコンテキストにおいて、オペランドは、受信されたインプットチャネルである。そのコンフィギュレーションビットに依存して、命令セルは、対応する論理演算を実行するように設定される。例えば、第１のスイッチボックスは、２つのチャネルインプットに対応する２つのオペランドを追加するように設定されるＡＬＵの命令セルを含み得る。しかしながら、同じＡＬＵの命令セルは、２つのオペランドを差し引くために後で更新され得る。命令セル内の論理演算から生じる命令セルのアウトプットは、別の命令セルで要求され得る。したがって、第１のスイッチボックスの中のアウトプットスイッチ構造は、対応するチャネルアウトプットを通して第１のスイッチボックスから外へ命令セルのアウトプットを駆動するように設定されることとなる。その一方、ＦＰＧＡのＬＵＴは、ビットを各々作り、それらは、ワードを生成しない。つまり、ＦＰＧＡの中のスイッチ構造は、ＦＰＧＡのスイッチ構造が、ＦＰＧＡのＬＵＴからビットをルーティングするように設定されるという点において、ＲＩＣＡの中のスイッチ構造と根本的に異なる。その一方、ＲＩＣＡの中のスイッチボックス間のルーティングは、インプットチャネルとアウトプットチャネルの両方としてワードをルーティングするように設定される。例えば、スイッチボックスアレイは、ことによると２０個のチャネルをルーティングするように設定される。そのような実施形態におけるスイッチボックスはしたがって、（行および列ディメンションによって定義されるような）すべての４つの方向から２０個のインプットチャネルを受信することができ、４つの方向に２０個のアウトプットチャネルを駆動し得る。列ディメンションは、任意の所与のスイッチボックスに関して北および南方向に対応すると考えられ得る。同様に、行ディメンションは、東および西方向に対応すると考えられ得る。
【００１０】
[0010]  スイッチボックスからの各アウトプットチャネルは、スイッチボックス内で対応するチャネルアウトプットマルチプレクサ（channel output multiplexer）によって選択され得る。そのようなチャネルアウトプットマルチプレクサは、アウトプットマルチプレクサのコレクションを備え、各アウトプットマルチプレクサは、たった１ビットのチャネルのワード幅に対応する。以下の説明は、全体のチャネルを選択するチャネルアウトプットマルチプレクサに関係するが、そのようなチャネルアウトプットマルチプレクサは、単一のビットアウトプットを各々有する複数のアウトプットマルチプレクサを実際に備えることが理解されることとなる。任意の所与のアウトプット方向（例えば、北、南、東、または西）に関して、３つの残りのインプット方向がある。例えば、北アウトプットチャネルは、東、西、および南インプットチャネルから選択され得る。所与のアウトプット方向のための各チャネルアウトプットマルチプレクサはしたがって、３：１のマルチプレクサを備えることができる。しかしながら、アウトプットチャネルはまた、スイッチボックスの命令セルのアウトプットによって駆動され得る。したがって、各チャネルアウトプットマルチプレクサは、ＲＩＣＡスイッチボックスの中に４：１のマルチプレクサを備え得る。列チャネルが、北および南方向に動くと想定される場合、２０個のチャネルの実施形態において、スイッチボックスはしたがって、北アウトプットチャネルを駆動するための２０個の４：１のチャネルアウトプットマルチプレクサ、および南アウトプットチャネルを駆動するためのもう２０個の４：１のチャネルアウトプットマルチプレクサを要求することとなる。同様に、行チャネルは、東および西方向に動くと想定され得る。したがって、２０個のチャネルの実施形態においてスイッチボックスは、東アウトプットチャネルを駆動するための２０個の４：１のチャネルアウトプットマルチプレクサ、および西アウトプットチャネルを駆動するための２０個の４：１のチャネルアウトプットマルチプレクサを含むこととなる。すべての４つの方向のための４：１のチャネルアウトプットマルチプレクサの結果として生じたセットは、各スイッチボックスのためのアウトプットスイッチ構造を形成する。
【００１１】
[0011]  各４：１のチャネルアウトプットマルチプレクサは、４：１のチャネルアウトプットマルチプレクサのアウトプットチャネルを駆動するために選択されるべき４つのインプットのうちのどの１つが、それが利用可能であるかを制御するために２つのコンフィギュレーションビットを要求する。従来のＲＩＣＡにおいて、これらのコンフィギュレーションビットは、静的である：それらは、命令セルの論理演算、および各スイッチボックスのためのインプットスイッチ構造も設定するコンフィギュレーションストリームの一部である。しかしながら、マルチメディアアプリケーションのような特定のアプリケーションは、静的なアウトプットスイッチング構造が適応することができない条件付きの移動を要求する。
【００１２】
[0012]  それゆえに、条件付きの移動処置能力（conditional move capabilities）を持つアウトプットスイッチ構造を有する再設定可能な命令セルのアレイ、またはそれに関して当技術分野で必要性がある。
【発明の概要】
【００１３】
[0013]  再設定可能な命令セルのアレイ（ＲＩＣＡ）において、命令セルのアレイは、所望の論理アルゴリズムまたは論理演算（logical algorithm or operation）をインプリメントするための対応するコンフィギュレーションワードによって設定される。各命令セルは、スイッチボックスと表されるユニットの中の対応するＩ／Ｏポートのセットと関連付ける。命令セルのアレイはしたがって、スイッチボックスの対応するアレイを備える。スイッチボックスの中の各Ｉ／Ｏポートは、別のＩ／Ｏポート（アレイの中のスイッチボックスの位置に依存して、隣接のスイッチボックス（neighboring switch box）か、あるいは同じスイッチボックス）から複数のインプットチャネルを受信する。スイッチボックス内で、命令セルは、命令セルのアウトプットを形成するためにスイッチボックスのＩ／Ｏポートから受信されたインプットチャネルのうちの少なくとも１つで論理演算を実行するように設定され得る。スイッチボックスの中の各Ｉ／Ｏポートは、スイッチボックスの中の残りのＩ／Ｏポートによって受信されたインプットチャネルから、および複数のアウトプットチャネルを形成するための命令セルのアウトプットから、選択するように設定可能である。順に、スイッチボックスのＩ／Ｏポートからの複数のアウトプットチャネルは、別のＩ／Ｏポート（アレイの中のスイッチボックスの位置に依存して、近接のスイッチボックス（adjacent switch box）の中の、または同じスイッチボックスの中の）によって複数のインプットチャネルとして受信される。
【００１４】
[0014]  そのアウトプットチャネルを選択するために、各Ｉ／Ｏポートは、各アウトプットチャネルのための条件付きのルーティング回路を含む。Ｉ／Ｏポートの条件付きのルーティング回路は、スイッチボックスの中の各残りのＩ／Ｏポートから受信されたインプットチャネル、および対応するアウトプットチャネルを形成するための命令セルのアウトプットを備える信号のグループから選択するように設定される。ＲＩＣＡの動作および柔軟性を強化するために、条件付きのルーティング回路による選択は、信号のグループから選択された信号のデコーディングによって条件付けられ得る。このようにして、選択された信号のデコーディングは、条件付きのルーティング回路によるルーティングを制御する。その一方、このルーティングに関して、スイッチボックスのコンフィギュレーションワードによって静的に決定されることが、従来のものであった。
【００１５】
[0015]  ＲＩＣＡの動作および柔軟性をさらに強化するために、条件付きのルーティング回路は、条件付きのルーティング回路による選択を処理する機能ユニットを含み得る。
【図面の簡単な説明】
【００１６】
【図１Ａ】[0016]  図１Ａは、例示的な再設定可能な命令セルのアレイ（ＲＩＣＡ）のためのブロック図である。
【図１Ｂ】[0017]  図１Ｂは、図１ＡのＲＩＣＡの中のスイッチボックスのアレイのためのブロック図である。
【図２】[0018]  図２は、スイッチボックスのアレイの中のスイッチボックスのためのＩ／Ｏポート、ならびにＩ／Ｏポートのうちの１つのためのチャネルアウトプットマルチプレクサを例示する。
【図３】[0019]  図３は、スイッチボックスのＩ／Ｏポートのための条件付きのルーティング回路を例示する。
【図４】[0020]  図４は、スイッチボックスのＩ／Ｏポートのためのインプレースの機能性を含む条件付きのルーティング回路を例示する。
【図５Ａ】[0021]  図５Ａは、インプレースの機能性がレジスタによってインプリメントされる図４の条件付きのルーティング回路の実施形態を例示する。
【図５Ｂ】[0022]  図５Ｂは、インプレースの機能性がシフト回路によってインプリメントされる図４の条件付きのルーティング回路の実施形態を例示する。
【図５Ｃ】[0023]  図５Ｃは、インプレースの機能性がインバータによってインプリメントされる図４の条件付きのルーティング回路の実施形態を例示する。
【図６】[0024]  図６は、スイッチボックスによる条件付きのルーティングの例示的な方法のための流れ図である。
【発明を実施するための形態】
【００１７】
[0025]  静的なルーティングの改善について当技術分野でのこの必要性を満たすために、条件付きのルーティングを持つアウトプットスイッチ構造を有するＲＩＣＡが、開示される。さらに、各スイッチボックスは、アウトプットチャネルのためのインプレースの機能性を有し得る。例えば、インプレースの機能性の１つのタイプは、レジスタを備え得る。本明細書で開示された条件付きのルーティングおよびインプレースの機能性をよりよく理解するために、再設定可能な命令セルのアレイ（ＲＩＣＡ）のための静的な（無条件の（non-conditional））アウトプットスイッチ構造を再び考えることは、役立つ。上記に説明されたように、ＲＩＣＡの中の各スイッチボックスは、アウトプットスイッチ構造を含む。このアウトプットスイッチ構造は、スイッチボックスそれら自体が、行および列に配置されるという点において、行および列の方向に関して定義される。その点について、「行」とは何かに対比して「列」とは何かは、単に視点の問題（matter of perspective）である。したがって、行および列という用語は、一般性を失うことなく本明細書で使用される。行および列のアレイにおいて、所与のスイッチボックスへのインプットチャネルは、同じ行の中のスイッチボックスからもたらされ得る。行の方向は、「東」および「西」方向であると考えられ得る。チャネル方向は、「北」および「南」方向であると考えられ得る。この背景を前提として、条件付きのルーティングおよびインプレースの機能性はここで、次の通り説明され得る。
【００１８】
概要
[0026]  チャネルインプットおよびアウトプット方向は、図２においてアレイ２２０の中の例示的なスイッチボックス２０５に示される。スイッチボックスの行および列の配置に対応するこの北、南、東、および西ルーティングを前提として、スイッチボックス２０５のような各スイッチボックスは、各方向にインプット／アウトプット（Ｉ／Ｏ）ポートを含むと考えられ得る。例えば、スイッチボックス２０５は、西Ｉ／Ｏポート２２５、南Ｉ／Ｏポート２３０、北Ｉ／Ｏポート２３５、および東Ｉ／Ｏポート２４０を有する。各Ｉ／Ｏポートにおいて、スイッチボックス２０５は、複数のインプットチャネルを受信し、複数のアウトプットチャネルをアウトプットする。例えば、スイッチボックス２０５は、南Ｉ／Ｏポート２３０を通してすべての南インプットチャネルを受信する。同様に、スイッチボックス２０５は、南Ｉ／Ｏポート２３０を通してすべての南アウトプットチャネルを駆動する。各Ｉ／Ｏポートはしたがって、Ｉ／Ｏポートのアウトプットチャネルを駆動するためのアウトプットスイッチ構造を備える。
【００１９】
[0027]  各Ｉ／Ｏポートに関して、アウトプットチャネルは、対応するチャネルアウトプットマルチプレクサによって選択される。各アウトプットチャネルはしたがって、任意の所与のＩ／Ｏポートでそれ自体の対応するチャネルアウトプットマルチプレクサを有する。図の明快さのために、単一のチャネルアウトプットマルチプレクサ２００だけが、スイッチボックス２０５の中の東Ｉ／Ｏポート２４０のための東アウトプットチャネルに示される。それが表す特定のチャネル「ｉ」は任意のものであるという点において、このチャネルは、ｉ番目の東アウトプットチャネルとして表されることとなる。追加の東アウトプットチャネルが、類似のチャネルアウトプットマルチプレクサによって提供されることとなる。同様に、北、南、および西アウトプットチャネルも、それら自体の対応するチャネルアウトプットマルチプレクサによって選択されることとなる。（各自複数のチャネルアウトプットマルチプレクサを備える）Ｉ／Ｏポート２２５、２３０、２３５、および２４０の結果として生じたセットは、スイッチボックス２０５のためのアウトプットスイッチ構造を作り出す。所与のＩ／Ｏポートから外へ駆動される任意の特定のアウトプットチャネルに関して、対応するチャネルアウトプットマルチプレクサは、対向する（opposite）方向におけるＩ／Ｏポートによって受信されたのと同じインプットチャネルを選択するように設定され得る。例えば、ｉ番目の西アウトプットチャネルは、ｉ番目の東インプットチャネルによって駆動されることができ、ここで、ｉは、ある任意のチャネル番号である。同様に、ｉ番目の北アウトプットチャネルは、ｉ番目の南インプットチャネルによって駆動され得るなどである。
【００２０】
[0028]  チャネルアウトプットマルチプレクサ２００が、ｉ番目の東アウトプットチャネルを駆動しているため、それは、チャネルｉのための西インプットに対応する「ｉｎ＿ｏｐｐ」インプットチャネルを受信する。ｉｎ＿ｏｐｐインプットはまた、対向するインプットと称され得る。各チャネルアウトプットマルチプレクサはまた、直交方向（orthogonal direction）におけるＩ／Ｏポートで受信されたインプットチャネルから選択し得る。言い換えれば、西アウトプットチャネルのためのチャネルアウトプットマルチプレクサは、北および南方向におけるインプットチャネルから選択し得る。同様に、北アウトプットチャネルのためのチャネルアウトプットマルチプレクサは、東および西方向におけるインプットチャネルから選択し得る。その点について、そのような選択のための直交性は、チャネルアウトプットマルチプレクサのためのアウトプット方向に関して時計回りか、あるいは反時計回りかであるとして示され得る。例えば、チャネルアウトプットマルチプレクサ２００の観点から、北インプットチャネルから選択することは反時計回りの回転である。同様に、チャネルアウトプットマルチプレクサ２００のために南インプットチャネルから選択することは時計回りの回転である。したがって、スイッチボックス２００の中のＩ／Ｏポートにおける各チャネルアウトプットマルチプレクサは、時計回りの（ｉｎ＿ｃｗ）インプットチャネルから、また反時計回りの（ｉｎ＿ａｃｗ）インプットチャネルから選択することができる。さらに、各チャネルアウトプットマルチプレクサは、そのアウトプットチャネルを駆動するために命令セルのアウトプットワード（ｉｎ＿ｃｏ）を選択することもできる。
【００２１】
[0029]  図１Ｂを再び参照すると、アレイのエッジにおけるスイッチボックス１２０のようなスイッチボックスが、隣接のスイッチボックスと向かい合わないＩ／Ｏポートを有することとなることは見られ得る。例えば、スイッチボックス１２０のための東Ｉ／Ｏポートは、その東に隣接のスイッチボックスを有さない。したがって、他のスイッチボックスと向かい合わないＩ／Ｏポートからのアウトプットチャネルは、近接のスイッチボックスに「ラップアラウンドする（wrap around）」ように設定される。例えば、スイッチボックス１２０からの東アウトプットチャネルは、近接のスイッチボックス１２５に対して東のインプットチャネルになるためにラップアラウンドされる。
【００２２】
[0030]  チャネルアウトプットマルチプレクサに条件付きのルーティング能力を提供するために、条件付きのルーティング回路３５０は、図３に示されるように導入される。条件付きのルーティング回路３５０は、チャネルアウトプットマルチプレクサ３００を含む。マルチプレクサ２００に関して説明されたように、チャネルアウトプットマルチプレクサ３００は、そのアウトプットチャネルを駆動するための、対向する、時計回りの、反時計回りの、およびセルのアウトプットワードから多重化する。デコーダ３０５は、条件付きのルーティング回路３５０が、動作の静的なルーティングモードで動作するか、動作の条件付きのルーティングモードで動作するかを制御する。動作の静的なルーティングモードにおいて、チャネルアウトプットマルチプレクサ３００は、図２のチャネルアウトプットマルチプレクサ２００に関して説明されたように動作するためにデコーダ３０５によって制御される。動作の静的なモードにおいて、デコーダ３０５は、４つのインプットワード（対向する、時計回り、反時計回り、およびセルのアウトプット）のうちのどれがチャネルアウトプットマルチプレクサ３００によって選択されるかを制御するためにコンフィギュレーションビットによって設定され得る。しかしながら、動作の条件付きのルーティングモードにおいて、チャネルアウトプットマルチプレクサ３００による選択は、４つのインプットワードのうちのデコーダに選択された１つに基づく。
【００２３】
[0031]  ３つのコンフィギュレーションビットを前提として、デコーダ３０５は、８つの異なるステートのうちの１つに設定され得る。これらのステートのうちの４つは、動作の静的なモードを制御し得る。言い換えれば、デコーダ３０５のための第１のステートは、４つのインプットワードのうちの第１の１つを静的に選択するためにチャネルアウトプットマルチプレクサ３００を制御することとなり、別のステートは、４つのインプットワードのうちの第２の１つを静的に選択するためにチャネルアウトプットマルチプレクサ３００を制御することとなるなどである。一般に、チャネルアウトプットマルチプレクサ３００がシャットダウンされるデフォルトステートを有することは、役立つことが多い。したがって、デコーダ３０５は、４：１のチャネルアウトプットマルチプレクサ３００がそのアウトプットをディスエーブルするディスエーブルされたステートのために設定され得る。３つのコンフィギュレーションビットを前提として、デコーダ３０５はしたがって、別の３つのステートのためにデコードし得る。これらのステートは、動作の条件付きのルーティングモードで使用されるステートであり得る。例えば、１つのステートにおいて、反時計回りのワード（特に、そのビットのうちの２つ）は、残りの３つの時計回りの、対向する、および命令セルのアウトプットワードのチャネルアウトプットマルチプレクサ３００による選択を制御するためにデコーダ３０５によってデコードされ得る。このステートにおいて、反時計回りのワードは、デコーダ３０５によって選択され、マルチプレクサ３００による選択を制御する第１のアドレス信号３０６にデコードされることとなる。別のステートにおいて、対向するワードは、残りの３つの時計回りの、反時計回りの、および命令セルのアウトプットワードのチャネルアウトプットマルチプレクサ３００による選択を制御するためにデコーダ３０５によって選択され、デコードされ得るなどである。たった３つのステートが、３つのコンフィギュレーションビットから利用可能であるため、４つのインプットワードのうちの１つは、デコーダ３０５の中のそのデコーディングを通してチャネルアウトプットマルチプレクサ３００による選択を制御するための能力を有すこととならない。しかしながら、代替の実施形態において、デコーダ３０５は、各インプットワードがチャネルアウトプットマルチプレクサ３００による選択を制御することができるように、３より多いコンフィギュレーションビットを受信することができる。
【００２４】
[0032]  動作の条件付きのルーティングモードにおいて、デコーダ３０５は、インプットワードのうちの１つを選択し、チャネルアウトプットマルチプレクサ３００による選択を制御する第１のアドレス信号３０６を形成するためにデコーダに選択されたワード（またはそれらの一部）をデコードする。動作の条件付きのルーティングモードにおいて、チャネルアウトプットマルチプレクサ３００は、デコーダに選択されたインプットワードのデコーディングに基づいて３つの残りのインプットワードから選択する。３つのインプットワードからのそのような選択は、２ビットだけを要求する。したがって、デコーダ３０５は、各インプットワード（ｉｎ＿ｃｏ、ｉｎ＿ｏｐｐ、ｉｎ＿ｃｗ、およびｉｎ＿ａｃｗ）から２ビットを受信する。デコーダ３０５は、動作の条件付きのルーティングモードで、デコーダに選択されたインプットワードから、第１のアドレス信号３０６に２ビットをマッピングまたはデコードすることができる。しかしながら、各インプットワードからデコーダ３０５に提供されたビットの実際の数は、他の実施形態が、各インプットワードからデコーダ３０５に追加のビットを提供することができるという点で任意である。さらに、デコーダ３０５は、たとえ、デコーダに選択されたインプットワードからたった２ビットだけ必要とするとしても、デコーダ３０５は、対向する、時計回りの、反時計回りの、および命令セルのワードから成るグループからその全体の中の選択されたインプットワードを受信するとさらに考えられ得る。デコーダに選択されたインプットワードの中の余分なビットは、チャネルアウトプットマルチプレクサ３００による選択を制御するための第１のアドレス信号３０６へのデコーディングに関してドントケア値（don’t care values）を備えると考えられ得る。
【００２５】
[0033]  １つの実施形態において、デコーダ３０５による、インプットワードからの選択は、単にデコーダ３０５によって受信されるコンフィギュレーションビットによって決定される。代替の実施形態において、デコーダの選択は、インプットワードに基づいてそれ自体条件付きであり得る。言い換えれば、デコーダ３０５は、それらの論理ステートを決定するためにインプットワードｉｎ＿ｃｏ、ｉｎ＿ａｃｗ、ｉｎ＿ｏｐｐ、およびｉｎ＿ｃｗの信号から受信されるビットをデコードすることをコンフィギュレーションビットによって設定され得る。これらの受信されたビットが、第１の論理ステートにデコードされる場合、デコーダ３０５は例えば、残りの対向する、時計回りの、および反時計回りのインプットワードからマルチプレクサ３００による選択を制御するために第１のアドレス信号３０６に命令セルのアウトプットワードをデコードし得る。しかしながら、インプットワードから受信されたビットが、第２の論理ステートにデコードされる場合、デコーダ３０５は、例えば、マルチプレクサ３００による選択を制御するために、時計回りのインプットワードから受信されたビットを第１のアドレス信号３０６にデコードし得るなどである。デコーダに選択されたインプットワードのそのような条件付きの選択は、デコーディングの２つのレイヤを含むことが理解されることとなる：デコーダの選択を決定するためにインプットワードの論理ステートをデコードするための第１のレイヤ、および第１のアドレス信号３０６を形成するためにデコーダに選択されたワードをデコードするための第２のレイヤ。
【００２６】
[0034]  条件付きのルーティング回路３５０において、マルチプレクサ３００によって受信される時計回りの、反時計回りの、命令セルのアウトプット、および対向するワードは、インプットワードのグループを形成すると考えられ得る。動作の条件付きのルーティングモードにおいて、デコーダ３０５は、インプットワードのグループの残りのものからチャネルアウトプットマルチプレクサ３００による選択を制御するために第１のアドレス信号３０６にデコードされるデコーダに選択されたインプット信号を形成するためにインプットワードのこのグループから選択する。デコーダ３０５による、インプットワードのグループからのこの選択は、インプット信号の論理ステートおよびコンフィギュレーションビットによって、またはコンフィギュレーションビット単体によって駆動され得る。どのように選択がなされるかに関わらず、デコーダ３０５は、選択されたワードを第１のアドレス信号３０６にデコードする。
【００２７】
[0035]  マルチプレクサ３００はまた、条件付きのルーティング回路３５０で「第１のマルチプレクサ」と表され得る。動作の条件付きのルーティングモードの中に２つの選択が存在することも留意されたい：インプットワードｉｎ＿ｃｏ、ｉｎ＿ａｃｗ、ｉｎ＿ｏｐｐ、およびｉｎ＿ｃｗのうちのどれがチャネルアウトプットマルチプレクサ３００による選択を制御することとなるかに関してデコーダ３０５による第１の選択が存在し、ならびに第１のアドレス信号３０６によって制御される時に残りのインプットワードからのチャネルアウトプットマルチプレクサ３００による第２の選択が存在する。マルチプレクサ３００によって選択されたインプット信号のグループの中のインプット信号の数が、必ずしも４ではないが、他の実施形態において変化し得ると理解されることとなる。例えば、マルチプレクサ３００によって選択されたインプット信号のグループは、８の番号が付けられたと仮定する。そのような実施形態において、マルチプレクサ３００は、図３において第１のアドレス信号３０６を作り出す２ビットに対向するものとして３つのアドレスビットを要求することとなる。
【００２８】
[0036]  追加の柔軟性を提供するために、機能ユニットは、マルチプレクサのアウトプットデータパス内に含まれ得る。インプレースの機能性を持つ例示的な条件付きのルーティング回路４５０が、図４に示される。機能ユニット４００は、機能ユニットのアウトプット４１０を作るために第１のマルチプレクサ３００からマルチプレクサのアウトプット４０１を受信する。（条件付きのルーティング回路４５０内で第２のマルチプレクサとも表され得る）２：１のマルチプレクサ４０５は、アウトプットチャネル４１５を形成するためにマルチプレクサのアウトプット４０１と機能ユニットのアウトプット４１０間で選択する。デコーダ４２０は、コンフィギュレーションビットによって設定される時、条件付きのルーティング回路４５０が、図３のデコーダ３０５に関して類似して説明されたように静的なルーティングモードで、または条件付きのルーティングモードで動作するかどうかを制御する。図の明快さのために、デコーダ４２０にインプットを作る２ビット（またはそれ以上）のバス幅、および第１のマルチプレクサ３００にインプットを作るワード幅のバスは、図４に示されておらず、本開示の残りの図面に示されてもいない。
【００２９】
[0037]  機能ユニット４００は、第１のマルチプレクサ３００からのアウトプット４０１に論理関数を実行する。機能ユニットを含まない動作の従来のモードを維持するために、機能ユニット４００は、第２のマルチプレクサ４０５が第１のマルチプレクサ３００からアウトプット４０１を選択するようにバイパスされ得る。加えて、機能ユニット４００はまた、第１のマルチプレクサのアウトプット４０１にそれの論理関数を実行するためにイネーブル、またはディスエーブルされ得る。その点について、デコーダ４２０を設定するために使用されるコンフィギュレーションビットの数は、動作のモードのためのステートの総数を決定する。例えば、デコーダ４２０が、４つのコンフィギュレーションビットによって設定される場合、デコーダ４２０は、１６の可能性があるステートのうちの１つで動作することができる。
【００３０】
[0038]  １つの実施形態において、これらの１６の可能性があるステートは、次の通りである。動作の従来の静的なルーティングモードは、４つのインプットワードのうちのどの１つが、第１のマルチプレクサ３００によって選択されるかに対応する４つのステートを備えることを思い出されたい。第２のマルチプレクサ４０５が、第１のマルチプレクサ３００のアウトプット４０１を選択するためにデコーダ４２０からの第２のアドレス信号４０７によって制御される場合、およびデコーダ４２０からの第１のアドレス信号３０６が、インプットワード（静的なルーティング）に依存しない場合、これらの４つのステートは、条件付きのルーティング回路４５０によって複製されることができる。機能ユニット４００はまた、これらの４つのステートの間、デコーダ４２０からの制御信号４０６によって可能であればディスエーブルされることとなる。しかしながら、代替の機能ユニットの実施形態において、制御信号４０６は、機能ユニット４００がインバータを備える場合などに含まれないことは理解されることとなる。
【００３１】
[0039]  動作の静的なルーティングモードはまた、第２のマルチプレクサ４０５が、機能ユニットのアウトプット４１０を選択するために第２のアドレス信号４０７によって制御されることを除いて、今しがた説明された４つのステートと一致している別の４つのステートを含むこととなる。これらの４つのステートにおいて、機能ユニット４００は、制御信号４０６によって機能することをイネーブルされることとなる。したがって、既に説明された８つのステートが存在する。上記に説明されたように、第１のマルチプレクサ３００がシャットダウンされるデフォルトステートを有することは、役立つことが多い。したがって、デコーダ４２０は、第１のマルチプレクサ３００がそのアウトプットをディスエーブルするディスエーブルされたステートのために設定され得る。そのことは、デコーダ４２０によって受信される４つのコンフィギュレーションビットによって設定されるような１６のステートのうち説明されるための残りの７つのステートを残す。これらの残りのステートのうちの３つはまた、動作の静的なルーティングモード内に存在する。これらの３つの残りのステートにおいて、第１のアドレス信号３０６は、第１のマルチプレクサ３００へのインプットワードに依存しない。例えば、第１のマルチプレクサ３００は、ステートのうちの１つにおける対向するインプットワード、別のステートにおける時計回りのインプットワード、およびステートのうちの残りの１つにおける反時計回りのインプットワードを静的に選択し得る。しかしながら、制御信号４０６は、インプットワードに依存することとなる。言い換えれば、動作の条件付きのルーティングモードに類似して、これらの３つの残りの静的なルーティングモードのステートは、インプットワードのうちの１つを選択し、および制御信号４０６が機能ユニット４００の動作をイネーブルするかまたはディスエーブルするかを決定するためにデコーダに選択されたインプットワードのためのビットのうちの１つを使用する、デコーダ４２０を含むこととなる。
【００３２】
[0040]  ４つの残りのステートは、各ステートがデコーダ４２０によって選択されるインプットワードのうちの１つに対応するような動作の条件付きのルーティングモード内でステートをすべて備えることとなる。デコーダ４２０は、第１のアドレス信号３０６を形成するためにデコーダに選択されたインプットワードからビット（例えば、２ビット）をデコードすることとなる。第１のマルチプレクサ３００によって条件付きのルーティングを制御することができる４つのインプットワードが存在するため、デコーダ４２０のための４つのそのような条件付きのルーティングステートが、存在する。これらの条件付きのルーティングステートの間、機能ユニット４００は、制御信号４０６によってイネーブルされ得る。さらに、第２のマルチプレクサ４０５は、これら４つのステートの間、機能ユニットのアウトプット４１０を選択し得る。
【００３３】
[0041]  追加のコンフィギュレーションビットが、動作の静的な、および条件付きのルーティングモードのための追加のステートを形成するために使用され得ることを理解することができ、デコーダ４２０はしたがって、代替の実施形態において４つより多いコンフィギュレーションビットによって設定され得る。回路３５０および４５０のような条件付きのルーティング回路は、チャネルルーティング回路の対応するアウトプットチャネルを形成するために第１のマルチプレクサ３００に提示されるインプット信号のグループ（対向する、時計回りの、反時計回りの、および命令セルのアウトプットワード）から条件付きの選択をするための手段を備えると考えられ得る。同様に、回路４５０のような条件付きのルーティング回路はまた、対応するアウトプットチャネル４１５を形成するために機能動作（functional operation）で第１のマルチプレクサ３００によって多重化されたインプット信号のグループから選択される信号を条件付きで処理するための手段を備えると考えられ得る。
【００３４】
例示的な実施形態
[0042]  いくつかの例示的な実施形態が、機能ユニット４００によってインプリメントされ得る幅広い機能を例示するためにここに説明されることとなる。図５Ａにおいて、レジスタ５００は、機能ユニットとしてサーブする。デコーダ４２０は、レジスタ５００への書き込み可能な（ｗ＿ｅｎ）インプット５０１を制御する。したがって、デコーダ４２０は、第１のマルチプレクサ３００からのアウトプット４０１が、レジスタ５００に登録されることとなる場合、静的な、および条件付きの両方のルーティングモードで書き込み可能なインプット５０１をアサートするように設定され得る。さらに、デコーダ４２０は、第１のマルチプレクサ３００へのインプット信号のうちのデコーダに選択された１つに、書き込み可能なインプット５０１が、アサートされるか否かを制御することを可能にするように設定され得る。この実施形態における機能ユニットのアウトプット４１０は、レジスタ５００のデータアウトプットである。デコーダ４２０は、第２のマルチプレクサ４０５が、それに応じて登録された機能ユニットのアウトプット４１０を選択するように、第２のアドレス信号４０７を駆動するように設定され得る。しかしながら、機能ユニットのアウトプット４１０は、レジスタ５００の中のあらかじめ記憶された値を表すこととなることに留意されたい。レジスタ５００は、第１のマルチプレクサ３００から現在のアウトプット４０１を登録することとなる。代替として、第２のマルチプレクサ４０５が第１のマルチプレクサのアウトプット４０１を選択するように、登録された機能ユニットのアウトプット４１０がバイパスされるように、デコーダ４２０は、設定され得る。そのようなモードにおいて、書き込み可能な５０１は、レジスタ５００が第１のマルチプレクサのアウトプット４０１を登録しないようにデアサートされ（be de-asserted）得る。
【００３５】
[0043]  同様に、機能ユニット４００は、図５Ｂに示されるようにシフト回路５０５を備え得る。機能ユニットのアウトプット４１０は、第１のマルチプレクサのアウトプット４０１のシフトされたバージョンを備えることとなる。そのコンフィギュレーションに依存して、デコーダ４２０は、シフト回路５０５をそれに応じて制御するための左／右シフト制御信号５１５を駆動する。シフト機能がアクティベートされるか否かに依存して、デコーダ４２０は、第２のアドレス信号４０７を通して第２のマルチプレクサ４０５をそれに応じて制御する。
【００３６】
[0044]  別の実施形態において、インバータ５１０は、図５Ｃに示されるように機能ユニット４００として機能する。アウトプット４０１は、マルチビットワードであるため、インバータ５１０が複数のシングルビットインバータを備えると理解されることとなる。インバータ５１０が、デコーダ４２０からの制御信号を必要としないことに留意されたい。結果として生じた条件付きのルーティングおよび／またはインプレースの機能性は、ＲＩＣＡの柔軟性およびパフォーマンスを著しく強化する。例えば、ＲＩＣＡの中のスイッチボックスアレイは、ピクセルデータにスライディングウィンドウアルゴリズムを実行するように設定され得る。任意の所与の計算サイクルで、スイッチボックスのサブセットは、計算セット（calculating set）を形成するように設定される。それに続くサイクルで、サブセットは、行の方向でシフトされる。行の最後にサブセットをシフトすると、それは、ピクセルデータを処理することを続けるために上へ、または下へ移動させられ得る。そのような条件付きの移動は、本明細書に開示されたＲＩＣＡの条件付きのルーティング、およびインプレースの機能性を使用して容易に達成され得る。
【００３７】
使用の例示的な方法
[0045]  例示的な方法のための流れ図が、図６に提供される。方法は、隣接のスイッチのボックスのセットで取り囲まれる（surrounded by）ようにスイッチボックスのアレイに配置される第１のスイッチボックスに関して定義され、隣接のスイッチボックスの各々から複数のインプットチャネルを受信するステップ６００から始まる。ステップ６００の例は、図２にスイッチボックス２０５で示され、それは、北、南、東、および西方向で隣接のスイッチボックスからインプットチャネルを受信する。方法は、命令セルのアウトプットを形成するために受信されたインプットチャネルのうちの少なくとも１つに論理演算を実行するステップ６０５に移る。例示的な命令セルは、ＡＬＵ１１０が、ＡＬＵのスイッチボックスで受信されるインプットチャネルのうちの１つ以上のからの命令セルのアウトプットを形成するという点において、図１ＢのＡＬＵ１１０である。ステップ６１０は、第１のアドレス信号を形成するためにセットの中の各隣接のスイッチボックスからのインプットチャネル、および命令セルのアウトプットを備える信号のグループから選択された信号をデコードすることを備える。方法はまた、第１のアドレス信号に応答して、隣接のスイッチボックスのうちの所与の１つにアウトプットチャネルを形成するために信号のグループから信号を選択するステップ６１５を含む。図４のマルチプレクサのアウトプット４０１は、そのような選択の例示である。
【００３８】
[0046]  当業者が現時点で理解することとなるように、かつ随時（at hand）特定のアプリケーションに依存して、多くの修正、置き換えおよび変形が、本開示のデバイスの使用の方法、構成、装置、およびマテリアルに、およびそれらの中に、それの主旨および範囲から逸脱することなく、なされることができる。このことを踏まえて、本開示の範囲は、それらが、単にそれらのいくつかの例の目的として、本明細書で例示され、説明された特定の実施形態のそれに限定されるべきでなく、むしろ、以下に添付された請求項のそれおよびそれらの機能的に同等なものに十分に相応するべきである。
【図１Ａ】
2016520239.tif 000003
【図１Ｂ】
2016520239.tif 000004
【図２】
2016520239.tif 000005
【図３】
2016520239.tif 000006
【図４】
2016520239.tif 000007
【図５Ａ】
2016520239.tif 000008
【図５Ｂ】
2016520239.tif 000009
【図５Ｃ】
2016520239.tif 000010
【図６】
2016520239.tif 000011
【手続補正書】
【提出日】平成28年2月5日(2016.2.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
回路であって、
複数のスイッチボックス、ここにおいて、各スイッチボックスは、インプット／アウトプット（Ｉ／Ｏ）ポートのセットを含み、各Ｉ／Ｏポートは、複数のインプットチャネルを受信し、複数のアウトプットチャネルをアウトプットするように設定され、
各Ｉ／Ｏポートは、前記複数のアウトプットチャネルに対応する複数の条件付きのルーティング回路を含み、各スイッチボックスのＩ／Ｏポートのための各条件付きのルーティング回路は、
第１のアドレス信号に応答してマルチプレクサのアウトプットを形成するために前記スイッチボックスのためのＩ／Ｏポートの前記セットに残る各Ｉ／Ｏポートから前記インプットチャネルのうちの単一の受信された１つを備える信号のグループから選択するように設定される第１のマルチプレクサと、
前記第１のアドレス信号を形成するように設定されるデコーダと、前記デコーダは、前記第１のアドレス信号が信号の前記グループに依存しない動作の静的なルーティングモードで動作するように設定可能であり、前記デコーダは、前記第１のアドレス信号が、前記選択された受信されたインプットチャネルに加えて信号の前記グループの中の前記受信されたインプットチャネルのうちの１つに依存する動作の条件付きのルーティングモードで動作するようにさらに設定可能であり、ここにおいて、前記条件付きのルーティング回路は、前記条件付きのルーティング回路のアウトプットチャネルとして前記マルチプレクサのアウトプットを駆動するように設定可能であり、
を含み、
を備える、回路。
【請求項２】
各スイッチボックスは、命令セルのアウトプットを作るために前記スイッチボックスのためのＩ／Ｏポートの前記セットの中の前記Ｉ／Ｏポートのうちの１つによって受信された前記インプットチャネルのうちの少なくとも１つに論理演算を実行するように設定される命令セルを含み、ここにおいて、信号の前記グループは、前記命令セルのアウトプットをさらに含む、請求項１に記載の回路。
【請求項３】
前記複数のスイッチボックスは、行および列によって配置され、ここにおいて、各スイッチボックスのためのＩ／Ｏポートの前記セットは、対向する行のＩ／Ｏポートのペアおよび対向する列のＩ／Ｏポートのペアを備える、請求項２に記載の回路。
【請求項４】
各スイッチボックスのＩ／Ｏポートの条件付きのルーティング回路のための各デコーダは、前記スイッチボックスのためのコンフィギュレーションワードからのコンフィギュレーションビットに応答して、前記デコーダに選択された信号を形成するために信号のそれの条件付きのルーティング回路の第１のマルチプレクサのグループから選択するように設定されるように設定可能である、請求項１に記載の回路。
【請求項５】
各デコーダは、前記第１のアドレス信号を形成するために前記デコーダに選択された信号からビットのサブセットをデコードするように設定される、請求項１に記載の回路。
【請求項６】
各条件付きのルーティング回路は、機能ユニットのアウトプットを形成するために前記条件付きのルーティング回路のマルチプレクサのアウトプットに論理演算を実行するように設定される機能ユニットをさらに含む、請求項１に記載の回路。
【請求項７】
各デコーダは、第２のアドレス信号を形成するようにさらに設定され、ここにおいて、各条件付きのルーティング回路は、前記第２のアドレス信号に応答して前記対応するアウトプットチャネルを形成するために前記条件付きのルーティング回路のマルチプレクサのアウトプットと前記条件付きのルーティング回路の機能ユニットのアウトプット間で選択するように設定される第２のマルチプレクサをさらに含む、請求項５に記載の回路。
【請求項８】
前記機能ユニットのうちの少なくとも１つは、レジスタを備える、請求項６に記載の回路。
【請求項９】
前記機能ユニットのうちの少なくとも１つは、シフト回路を備える、請求項６に記載の回路。
【請求項１０】
各デコーダは、前記第１のマルチプレクサが、前記マルチプレクサのアウトプットを形成するために前記第１のアドレス信号に応答して前記デコーダに選択された信号を除く信号のそのグループから選択するように設定されるように、動作の前記条件付きのルーティングモードで動作するようにさらに設定可能である、請求項１に記載の回路。
【請求項１１】
前記命令セルのうちの少なくとも１つは、算術論理ユニット（ＡＬＵ）を備える、請求項１に記載の回路。
【請求項１２】
各スイッチボックスの列のＩ／Ｏポートの中の各第１のマルチプレクサは、前記スイッチボックスの中の各行のＩ／Ｏポートから受信されたインプットチャネルから、および前記スイッチボックスの中の残りの列のＩ／Ｏポートから受信されたインプットチャネルから、選択するように設定される、請求項３に記載の回路。
【請求項１３】
各スイッチボックスの中の各行のＩ／Ｏポートの中の各第１のマルチプレクサは、前記スイッチボックスの中の各列のＩ／Ｏポートから受信されたインプットチャネルから、および前記スイッチボックスの中の残りの行のＩ／Ｏポートから受信されたインプットチャネルから、選択するように設定される、請求項３に記載の回路。
【請求項１４】
方法であって、
隣接のスイッチボックスのセットで取り囲まれるようにスイッチボックスのアレイに配置される第１のスイッチボックスのために、前記隣接のスイッチボックスの各々から複数のインプットチャネルを受信することと、
命令セルのアウトプットを形成するために前記受信されたインプットチャネルのうちの少なくとも１つに論理演算を実行することと、
第１のアドレス信号を形成するために前記セットの中の各隣接のスイッチボックスから前記受信されたインプットチャネルのうちの単一の１つ、および前記命令セルのアウトプットを備える信号のグループから選択されたデコーダに選択された信号をデコードすることと、
前記第１のアドレス信号に応答して、前記隣接のスイッチボックスのうちの所与の１つにアウトプットチャネルを形成するために前記デコーダに選択された信号に加えて信号の前記グループから選択することと、
を備える、方法。
【請求項１５】
前記第１のスイッチボックスのためのコンフィギュレーションワードの中のコンフィギュレーションビットに応答して信号の前記グループから前記デコーダに選択された信号を選択することをさらに備える、請求項１４に記載の方法。
【請求項１６】
信号の前記グループから前記デコーダに選択された信号を選択することは、信号の前記グループの中の前記信号の各々に関する論理ステートにさらに応答する、請求項１５に記載の方法。
【請求項１７】
前記アウトプットチャネルを形成することは、
マルチプレクサのアウトプットを形成するために信号の前記グループから選択することと、
機能ユニットのアウトプットを形成するために前記マルチプレクサのアウトプットに論理演算を実行することと、
前記アウトプットチャネルを形成するために前記マルチプレクサのアウトプットと前記機能ユニットのアウトプット間で選択することと、
を備える、請求項１４に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
[0046]  当業者が現時点で理解することとなるように、かつ随時（at hand）特定のアプリケーションに依存して、多くの修正、置き換えおよび変形が、本開示のデバイスの使用の方法、構成、装置、およびマテリアルに、およびそれらの中に、それの主旨および範囲から逸脱することなく、なされることができる。このことを踏まえて、本開示の範囲は、それらが、単にそれらのいくつかの例の目的として、本明細書で例示され、説明された特定の実施形態のそれに限定されるべきでなく、むしろ、以下に添付された請求項のそれおよびそれらの機能的に同等なものに十分に相応するべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
回路であって、
複数のスイッチボックス、ここにおいて、各スイッチボックスは、インプット／アウトプット（Ｉ／Ｏ）ポートのセットを含み、各Ｉ／Ｏポートは、複数のインプットチャネルを受信し、複数のアウトプットチャネルをアウトプットするように設定され、
各Ｉ／Ｏポートは、前記複数のアウトプットチャネルに対応する複数の条件付きのルーティング回路を含み、各スイッチボックスのＩ／Ｏポートのための各条件付きのルーティング回路は、
第１のアドレス信号に応答してマルチプレクサのアウトプットを形成するためにスイッチボックスのためのＩ／Ｏポートの前記セットに残る各Ｉ／Ｏポートから受信されたインプットチャネルを備える信号のグループから選択するように設定される第１のマルチプレクサと、
前記第１のアドレス信号を形成するように設定されるデコーダと、前記デコーダは、第１のアドレス信号が信号の前記グループに依存しない動作の静的なルーティングモードで動作するように設定可能であり、前記デコーダは、前記第１のアドレス信号が、インプット信号の前記グループからデコーダに選択された信号に依存する動作の条件付きのルーティングモードで動作するようにさらに設定可能であり、ここにおいて、前記条件付きのルーティング回路は、前記条件付きのルーティング回路のアウトプットチャネルとして前記マルチプレクサのアウトプットを駆動するように設定可能であり、
を含み、
を備える、回路。
［Ｃ２］
各スイッチボックスは、命令セルのアウトプットを作るために前記スイッチボックスのためのＩ／Ｏポートの前記セットの中の前記Ｉ／Ｏポートのうちの１つによって受信された前記インプットチャネルのうちの少なくとも１つに論理演算を実行するように設定される命令セルを含み、ここにおいて、信号の前記グループは、前記命令セルのアウトプットをさらに含む、Ｃ１に記載の回路。
［Ｃ３］
前記複数のスイッチボックスは、行および列によって配置され、ここにおいて、各スイッチボックスのためのＩ／Ｏポートの前記セットは、対向する行のＩ／Ｏポートのペアおよび対向する列のＩ／Ｏポートのペアを備える、Ｃ２に記載の回路。
［Ｃ４］
各スイッチボックスのＩ／Ｏポートの条件付きのルーティング回路のための各デコーダは、前記スイッチボックスのためのコンフィギュレーションワードからのコンフィギュレーションビットに応答して、前記デコーダに選択された信号を形成するために信号のそれの条件付きのルーティング回路の第１のマルチプレクサのグループから選択するように設定されるように設定可能である、Ｃ１に記載の回路。
［Ｃ５］
各デコーダは、前記第１のアドレス信号を形成するために前記デコーダに選択された信号からビットのサブセットをデコードするように設定される、Ｃ１に記載の回路。
［Ｃ６］
各条件付きのルーティング回路は、機能ユニットのアウトプットを形成するために前記条件付きのルーティング回路のマルチプレクサのアウトプットに論理演算を実行するように設定される機能ユニットをさらに含む、Ｃ１に記載の回路。
［Ｃ７］
各デコーダは、第２のアドレス信号を形成するようにさらに設定され、ここにおいて、各条件付きのルーティング回路は、前記第２のアドレス信号に応答して前記対応するアウトプットチャネルを形成するために前記条件付きのルーティング回路のマルチプレクサのアウトプットと前記条件付きのルーティング回路の機能ユニットのアウトプット間で選択するように設定される第２のマルチプレクサをさらに含む、Ｃ５に記載の回路。
［Ｃ８］
前記機能ユニットのうちの少なくとも１つは、レジスタを備える、Ｃ６に記載の回路。
［Ｃ９］
前記機能ユニットのうちの少なくとも１つは、シフト回路を備える、Ｃ６に記載の回路。
［Ｃ１０］
各デコーダは、前記第１のマルチプレクサが、前記マルチプレクサのアウトプットを形成するために前記第１のアドレス信号に応答して前記デコーダに選択された信号を除く信号のそのグループから選択するように設定されるように、動作の前記条件付きのルーティングモードで動作するようにさらに設定可能である、Ｃ１に記載の回路。
［Ｃ１１］
前記命令セルのうちの少なくとも１つは、算術論理ユニット（ＡＬＵ）を備える、Ｃ１に記載の回路。
［Ｃ１２］
各スイッチボックスの列のＩ／Ｏポートの中の各第１のマルチプレクサは、前記スイッチボックスの中の各行のＩ／Ｏポートから受信されたインプットチャネルから、および前記スイッチボックスの中の残りの列のＩ／Ｏポートから受信されたインプットチャネルから、選択するように設定される、Ｃ３に記載の回路。
［Ｃ１３］
各スイッチボックスの中の各行のＩ／Ｏポートの中の各第１のマルチプレクサは、前記スイッチボックスの中の各列のＩ／Ｏポートから受信されたインプットチャネルから、および前記スイッチボックスの中の残りの行のＩ／Ｏポートから受信されたインプットチャネルから、選択するように設定される、Ｃ３に記載の回路。
［Ｃ１４］
方法であって、
隣接のスイッチボックスのセットで取り囲まれるようにスイッチボックスのアレイに配置される第１のスイッチボックスのために、前記隣接のスイッチボックスの各々から複数のインプットチャネルを受信することと、
命令セルのアウトプットを形成するために前記受信されたインプットチャネルのうちの少なくとも１つに論理演算を実行することと、
第１のアドレス信号を形成するために前記セットの中の各隣接のスイッチボックスから受信されたインプットチャネル、および前記命令セルのアウトプットを備える信号のグループからデコーダに選択された信号をデコードすることと、
前記第１のアドレス信号に応答して、前記隣接のスイッチボックスのうちの所与の１つにアウトプットチャネルを形成するために信号の前記グループから選択することと、
を備える、方法。
［Ｃ１５］
前記第１のスイッチボックスのためのコンフィギュレーションワードの中のコンフィギュレーションビットに応答して信号の前記グループから前記デコーダに選択された信号を選択することをさらに備える、Ｃ１４に記載の方法。
［Ｃ１６］
信号の前記グループから前記デコーダに選択された信号を選択することは、信号の前記グループの中の前記信号の各々に関する論理ステートにさらに応答する、Ｃ１５に記載の方法。
［Ｃ１７］
前記アウトプットチャネルを形成することは、
マルチプレクサのアウトプットを形成するために信号の前記グループから選択することと、
機能ユニットのアウトプットを形成するために前記マルチプレクサのアウトプットに論理演算を実行することと、
前記アウトプットチャネルを形成するために前記マルチプレクサのアウトプットと前記機能ユニットのアウトプット間で選択することと、
を備える、Ｃ１４に記載の方法。
［Ｃ１８］
回路であって、
複数のスイッチボックス、ここにおいて、各スイッチボックスは、
インプット／アウトプット（Ｉ／Ｏ）ポートのセット、各Ｉ／Ｏポートは、複数のインプットチャネルを受信するように、および複数のアウトプットチャネルをアウトプットするように構成され、を含み、ここにおいて、各Ｉ／Ｏポートは、
前記Ｉ／Ｏポートの複数のアウトプットチャネルを形成するための前記セットに残る各Ｉ／Ｏポートから前記受信されたインプットチャネルから条件付きで選択するための手段を含む、
を備える、回路。
［Ｃ１９］
各手段は、前記Ｉ／Ｏポートの複数のアウトプットチャネルを形成するために機能動作で選択されたインプットチャネルを条件付きで処理するように設定される、Ｃ１８に記載の回路。
［Ｃ２０］
各手段は、デコーダを備える、Ｃ１８に記載の回路。
【国際調査報告】
2016520239.tif 000012
2016520239.tif 000013
2016520239.tif 000014