JP6130058B2 - 条件付きのチャネルルーティングおよびインプレースの機能性を持つ再設定可能な命令セルのアレイ - Google Patents

条件付きのチャネルルーティングおよびインプレースの機能性を持つ再設定可能な命令セルのアレイ Download PDF

Info

Publication number
JP6130058B2
JP6130058B2 JP2016516741A JP2016516741A JP6130058B2 JP 6130058 B2 JP6130058 B2 JP 6130058B2 JP 2016516741 A JP2016516741 A JP 2016516741A JP 2016516741 A JP2016516741 A JP 2016516741A JP 6130058 B2 JP6130058 B2 JP 6130058B2
Authority
JP
Japan
Prior art keywords
output
circuit
multiplexer
decoder
switch box
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016516741A
Other languages
English (en)
Other versions
JP2016520239A (ja
JP2016520239A5 (ja
Inventor
ノーシアス、イオアニス
クハワム、サミ
ムーア、マーク・イアン・ロイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2016520239A publication Critical patent/JP2016520239A/ja
Publication of JP2016520239A5 publication Critical patent/JP2016520239A5/ja
Application granted granted Critical
Publication of JP6130058B2 publication Critical patent/JP6130058B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Logic Circuits (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Multi Processors (AREA)
  • Use Of Switch Circuits For Exchanges And Methods Of Control Of Multiplex Exchanges (AREA)

Description

関連出願の相互参照
[0001] 本出願は、2013年5月29日に出願された米国非仮出願第13/905,032号に対する優先権を主張し、その全体が参照により本明細書に組み込まれる。
[0002] 本出願は、再設定可能な命令セルのアレイ(RICAs)に、より具体的には、インプレースの機能性を持つRICA(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)を提供するために、再設定可能な命令セルのアレイ(RICA)のアーキテクチャは、開発された。図1Aは、例示的なRICAシステム50を例示する。このRICAシステム50の中で、複数の命令セル2は、プログラマブルスイッチング構造(programmable switching fabric)4を通して相互接続される。命令セルの設定(何の種類の論理関数(logical function)または命令をそれらがインプリメントするかに関して)およびスイッチング構造は、所与のアルゴリズムまたは関数をインプリメントするために必要に応じてクロックサイクル毎に再プログラムされることができる。命令セルは、(データRAM8から順にロードされる)MEMセル12によって取り出されるときにデータを処理する。命令セル2によるこの処理は、コンフィギュレーションRAM(configuration RAM)6から取得されるコンフィギュレーション命令10により発生する。デコードモジュール11は、命令セル2のためだけでなく、スイッチング構造4のためでもあるプログラミングを入手するために、命令10をデコードする。図1Aに示されたさらなる特徴は、2006年4月28日に出願された、米国特許出願公開第2010/0122105号公報に説明され、その内容が、全体において参照により本明細書に組み込まれる。
[0006] RICAの利点に留意されたい:パイプライン処理スキーム(pipelined processing scheme)を通して複数のピクセルを処理することを含む画像処理のようなアルゴリズムは、専用ハードウェアアプローチをエミュレートする(emulates)方法で、命令セルにマッピングされることができる。専用ハードウェアを設計する必要はないが、代わりに、必要に応じてセルおよびスイッチング構造を単にプログラムすることができる。したがって、アルゴリズムが再設計されなければならない場合、ハードウェア再設計の必要はないが、代わりにユーザは、必要に応じてプログラミングを単に変更し得る。このことは、従来の命令ベースのコンピューティングアプローチにわたってかなり有利である。
[0007] RICAはしたがって、頑強な利点を提供するが、チャレンジは、そのインプリメンテーションの中に残る。例えば、行および列によって再設定可能なアレイの中に命令セルを配置することが、従来のものである。各命令セル、任意の関連したレジスタ、ならびにインプットおよびアウトプットスイッチング構造は、スイッチボックス内に存在すると考えられ得る。図1Bは、行および列に配置されるスイッチボックスの例示的なアレイを示す。各スイッチボックスの中のスイッチング構造は、いくつかの行および列ロケーションで所与のスイッチボックス100で始まることができ、異なる行および列ロケーションでなんらかの他のスイッチボックス105で終わることができるデータパスに適応しなければならない。このデータパスにおいて、2つの命令セルが、設定された算術論理ユニット(arithmetic logic units)(ALUs)110である。残りのスイッチボックスのための命令セルは、図の明快さのために示されていない。各スイッチボックスは、2つのスイッチングマトリックスまたは構造に適応しなければならないことに留意されたい:その命令セルへのインプットのために選択するためのインプットスイッチング構造、ならびにスイッチボックスからアウトプットのために選択するためのアウトプットスイッチング構造。
[0008] 命令セルと対照的に、フィールドプログラマブルゲートアレイ(FPGA)の中の論理ブロックは、ルックアップテーブル(LUTs)を使用する。例えば、設定されたFPGAの中で実行される論理演算(logic operation)の中のANDゲートを必要とすると仮定する。LUTはその場合、ANDゲート論理関数のための真理値表(truth table)でプログラムされることとなる。しかしながら、命令セルは、それが専用論理ゲートを包含するという点において、非常に「粗雑(coarser-grained)」である。例えば、ALUの命令セルは、アソートされた(assorted)専用論理ゲートを含むこととなる。設定可能であるのは、ALUの命令セルの機能である−そのプリミティブ論理ゲート(primitive logic gate)は、専用ゲートであり、したがって、設定不可能(non-configurable)である。例えば、従来のCMOSインバータは、専用論理ゲートの1つのタイプである。そのようなインバータについて設定可能であるものはなく、それは、コンフィギュレーションビット(configuration bits)を必要としない。しかしながら、FPGAプログラマブル論理ブロックの中のインバータ関数のインスタンシエーション(instantiation)は、LUTの真理値表の対応するプログラミングによって代わりに実行される。したがって、本明細書で使用される場合、「命令セル」という用語は、専用論理ゲートを備える設定可能な論理要素を称す。
[0009] 命令セルは、命令セルのアウトプットを形成するために1つ以上のオペランドにその論理関数を実行する。このコンテキストにおいて、オペランドは、受信されたインプットチャネルである。そのコンフィギュレーションビットに依存して、命令セルは、対応する論理演算を実行するように設定される。例えば、第1のスイッチボックスは、2つのチャネルインプットに対応する2つのオペランドを追加するように設定されるALUの命令セルを含み得る。しかしながら、同じALUの命令セルは、2つのオペランドを差し引くために後で更新され得る。命令セル内の論理演算から生じる命令セルのアウトプットは、別の命令セルで要求され得る。したがって、第1のスイッチボックスの中のアウトプットスイッチ構造は、対応するチャネルアウトプットを通して第1のスイッチボックスから外へ命令セルのアウトプットを駆動するように設定されることとなる。その一方、FPGAのLUTは、ビットを各々作り、それらは、ワードを生成しない。つまり、FPGAの中のスイッチ構造は、FPGAのスイッチ構造が、FPGAのLUTからビットをルーティングするように設定されるという点において、RICAの中のスイッチ構造と根本的に異なる。その一方、RICAの中のスイッチボックス間のルーティングは、インプットチャネルとアウトプットチャネルの両方としてワードをルーティングするように設定される。例えば、スイッチボックスアレイは、ことによると20個のチャネルをルーティングするように設定される。そのような実施形態におけるスイッチボックスはしたがって、(行および列ディメンションによって定義されるような)すべての4つの方向から20個のインプットチャネルを受信することができ、4つの方向に20個のアウトプットチャネルを駆動し得る。列ディメンションは、任意の所与のスイッチボックスに関して北および南方向に対応すると考えられ得る。同様に、行ディメンションは、東および西方向に対応すると考えられ得る。
[0010] スイッチボックスからの各アウトプットチャネルは、スイッチボックス内で対応するチャネルアウトプットマルチプレクサ(channel output multiplexer)によって選択され得る。そのようなチャネルアウトプットマルチプレクサは、アウトプットマルチプレクサのコレクションを備え、各アウトプットマルチプレクサは、たった1ビットのチャネルのワード幅に対応する。以下の説明は、全体のチャネルを選択するチャネルアウトプットマルチプレクサに関係するが、そのようなチャネルアウトプットマルチプレクサは、単一のビットアウトプットを各々有する複数のアウトプットマルチプレクサを実際に備えることが理解されることとなる。任意の所与のアウトプット方向(例えば、北、南、東、または西)に関して、3つの残りのインプット方向がある。例えば、北アウトプットチャネルは、東、西、および南インプットチャネルから選択され得る。所与のアウトプット方向のための各チャネルアウトプットマルチプレクサはしたがって、3:1のマルチプレクサを備えることができる。しかしながら、アウトプットチャネルはまた、スイッチボックスの命令セルのアウトプットによって駆動され得る。したがって、各チャネルアウトプットマルチプレクサは、RICAスイッチボックスの中に4:1のマルチプレクサを備え得る。列チャネルが、北および南方向に動くと想定される場合、20個のチャネルの実施形態において、スイッチボックスはしたがって、北アウトプットチャネルを駆動するための20個の4:1のチャネルアウトプットマルチプレクサ、および南アウトプットチャネルを駆動するためのもう20個の4:1のチャネルアウトプットマルチプレクサを要求することとなる。同様に、行チャネルは、東および西方向に動くと想定され得る。したがって、20個のチャネルの実施形態においてスイッチボックスは、東アウトプットチャネルを駆動するための20個の4:1のチャネルアウトプットマルチプレクサ、および西アウトプットチャネルを駆動するための20個の4:1のチャネルアウトプットマルチプレクサを含むこととなる。すべての4つの方向のための4:1のチャネルアウトプットマルチプレクサの結果として生じたセットは、各スイッチボックスのためのアウトプットスイッチ構造を形成する。
[0011] 各4:1のチャネルアウトプットマルチプレクサは、4:1のチャネルアウトプットマルチプレクサのアウトプットチャネルを駆動するために選択されるべき4つのインプットのうちのどの1つが、それが利用可能であるかを制御するために2つのコンフィギュレーションビットを要求する。従来のRICAにおいて、これらのコンフィギュレーションビットは、静的である:それらは、命令セルの論理演算、および各スイッチボックスのためのインプットスイッチ構造も設定するコンフィギュレーションストリームの一部である。しかしながら、マルチメディアアプリケーションのような特定のアプリケーションは、静的なアウトプットスイッチング構造が適応することができない条件付きの移動を要求する。
[0012] それゆえに、条件付きの移動処置能力(conditional move capabilities)を持つアウトプットスイッチ構造を有する再設定可能な命令セルのアレイ、またはそれに関して当技術分野で必要性がある。
[0013] 再設定可能な命令セルのアレイ(RICA)において、命令セルのアレイは、所望の論理アルゴリズムまたは論理演算(logical algorithm or operation)をインプリメントするための対応するコンフィギュレーションワードによって設定される。各命令セルは、スイッチボックスと表されるユニットの中の対応するI/Oポートのセットと関連付ける。命令セルのアレイはしたがって、スイッチボックスの対応するアレイを備える。スイッチボックスの中の各I/Oポートは、別のI/Oポート(アレイの中のスイッチボックスの位置に依存して、隣接のスイッチボックス(neighboring switch box)か、あるいは同じスイッチボックス)から複数のインプットチャネルを受信する。スイッチボックス内で、命令セルは、命令セルのアウトプットを形成するためにスイッチボックスのI/Oポートから受信されたインプットチャネルのうちの少なくとも1つで論理演算を実行するように設定され得る。スイッチボックスの中の各I/Oポートは、スイッチボックスの中の残りのI/Oポートによって受信されたインプットチャネルから、および複数のアウトプットチャネルを形成するための命令セルのアウトプットから、選択するように設定可能である。順に、スイッチボックスのI/Oポートからの複数のアウトプットチャネルは、別のI/Oポート(アレイの中のスイッチボックスの位置に依存して、近接のスイッチボックス(adjacent switch box)の中の、または同じスイッチボックスの中の)によって複数のインプットチャネルとして受信される。
[0014] そのアウトプットチャネルを選択するために、各I/Oポートは、各アウトプットチャネルのための条件付きのルーティング回路を含む。I/Oポートの条件付きのルーティング回路は、スイッチボックスの中の各残りのI/Oポートから受信されたインプットチャネル、および対応するアウトプットチャネルを形成するための命令セルのアウトプットを備える信号のグループから選択するように設定される。RICAの動作および柔軟性を強化するために、条件付きのルーティング回路による選択は、信号のグループから選択された信号のデコーディングによって条件付けられ得る。このようにして、選択された信号のデコーディングは、条件付きのルーティング回路によるルーティングを制御する。その一方、このルーティングに関して、スイッチボックスのコンフィギュレーションワードによって静的に決定されることが、従来のものであった。
[0015] RICAの動作および柔軟性をさらに強化するために、条件付きのルーティング回路は、条件付きのルーティング回路による選択を処理する機能ユニットを含み得る。
[0016] 図1Aは、例示的な再設定可能な命令セルのアレイ(RICA)のためのブロック図である。 [0017] 図1Bは、図1AのRICAの中のスイッチボックスのアレイのためのブロック図である。 [0018] 図2は、スイッチボックスのアレイの中のスイッチボックスのためのI/Oポート、ならびにI/Oポートのうちの1つのためのチャネルアウトプットマルチプレクサを例示する。 [0019] 図3は、スイッチボックスのI/Oポートのための条件付きのルーティング回路を例示する。 [0020] 図4は、スイッチボックスのI/Oポートのためのインプレースの機能性を含む条件付きのルーティング回路を例示する。 [0021] 図5Aは、インプレースの機能性がレジスタによってインプリメントされる図4の条件付きのルーティング回路の実施形態を例示する。 [0022] 図5Bは、インプレースの機能性がシフト回路によってインプリメントされる図4の条件付きのルーティング回路の実施形態を例示する。 [0023] 図5Cは、インプレースの機能性がインバータによってインプリメントされる図4の条件付きのルーティング回路の実施形態を例示する。 [0024] 図6は、スイッチボックスによる条件付きのルーティングの例示的な方法のための流れ図である。
[0025] 静的なルーティングの改善について当技術分野でのこの必要性を満たすために、条件付きのルーティングを持つアウトプットスイッチ構造を有するRICAが、開示される。さらに、各スイッチボックスは、アウトプットチャネルのためのインプレースの機能性を有し得る。例えば、インプレースの機能性の1つのタイプは、レジスタを備え得る。本明細書で開示された条件付きのルーティングおよびインプレースの機能性をよりよく理解するために、再設定可能な命令セルのアレイ(RICA)のための静的な(無条件の(non-conditional))アウトプットスイッチ構造を再び考えることは、役立つ。上記に説明されたように、RICAの中の各スイッチボックスは、アウトプットスイッチ構造を含む。このアウトプットスイッチ構造は、スイッチボックスそれら自体が、行および列に配置されるという点において、行および列の方向に関して定義される。その点について、「行」とは何かに対比して「列」とは何かは、単に視点の問題(matter of perspective)である。したがって、行および列という用語は、一般性を失うことなく本明細書で使用される。行および列のアレイにおいて、所与のスイッチボックスへのインプットチャネルは、同じ行の中のスイッチボックスからもたらされ得る。行の方向は、「東」および「西」方向であると考えられ得る。チャネル方向は、「北」および「南」方向であると考えられ得る。この背景を前提として、条件付きのルーティングおよびインプレースの機能性はここで、次の通り説明され得る。
概要
[0026] チャネルインプットおよびアウトプット方向は、図2においてアレイ220の中の例示的なスイッチボックス205に示される。スイッチボックスの行および列の配置に対応するこの北、南、東、および西ルーティングを前提として、スイッチボックス205のような各スイッチボックスは、各方向にインプット/アウトプット(I/O)ポートを含むと考えられ得る。例えば、スイッチボックス205は、西I/Oポート225、南I/Oポート230、北I/Oポート235、および東I/Oポート240を有する。各I/Oポートにおいて、スイッチボックス205は、複数のインプットチャネルを受信し、複数のアウトプットチャネルをアウトプットする。例えば、スイッチボックス205は、南I/Oポート230を通してすべての南インプットチャネルを受信する。同様に、スイッチボックス205は、南I/Oポート230を通してすべての南アウトプットチャネルを駆動する。各I/Oポートはしたがって、I/Oポートのアウトプットチャネルを駆動するためのアウトプットスイッチ構造を備える。
[0027] 各I/Oポートに関して、アウトプットチャネルは、対応するチャネルアウトプットマルチプレクサによって選択される。各アウトプットチャネルはしたがって、任意の所与のI/Oポートでそれ自体の対応するチャネルアウトプットマルチプレクサを有する。図の明快さのために、単一のチャネルアウトプットマルチプレクサ200だけが、スイッチボックス205の中の東I/Oポート240のための東アウトプットチャネルに示される。それが表す特定のチャネル「i」は任意のものであるという点において、このチャネルは、i番目の東アウトプットチャネルとして表されることとなる。追加の東アウトプットチャネルが、類似のチャネルアウトプットマルチプレクサによって提供されることとなる。同様に、北、南、および西アウトプットチャネルも、それら自体の対応するチャネルアウトプットマルチプレクサによって選択されることとなる。(各自複数のチャネルアウトプットマルチプレクサを備える)I/Oポート225、230、235、および240の結果として生じたセットは、スイッチボックス205のためのアウトプットスイッチ構造を作り出す。所与のI/Oポートから外へ駆動される任意の特定のアウトプットチャネルに関して、対応するチャネルアウトプットマルチプレクサは、対向する(opposite)方向におけるI/Oポートによって受信されたのと同じインプットチャネルを選択するように設定され得る。例えば、i番目の西アウトプットチャネルは、i番目の東インプットチャネルによって駆動されることができ、ここで、iは、ある任意のチャネル番号である。同様に、i番目の北アウトプットチャネルは、i番目の南インプットチャネルによって駆動され得るなどである。
[0028] チャネルアウトプットマルチプレクサ200が、i番目の東アウトプットチャネルを駆動しているため、それは、チャネルiのための西インプットに対応する「in_opp」インプットチャネルを受信する。in_oppインプットはまた、対向するインプットと称され得る。各チャネルアウトプットマルチプレクサはまた、直交方向(orthogonal direction)におけるI/Oポートで受信されたインプットチャネルから選択し得る。言い換えれば、西アウトプットチャネルのためのチャネルアウトプットマルチプレクサは、北および南方向におけるインプットチャネルから選択し得る。同様に、北アウトプットチャネルのためのチャネルアウトプットマルチプレクサは、東および西方向におけるインプットチャネルから選択し得る。その点について、そのような選択のための直交性は、チャネルアウトプットマルチプレクサのためのアウトプット方向に関して時計回りか、あるいは反時計回りかであるとして示され得る。例えば、チャネルアウトプットマルチプレクサ200の観点から、北インプットチャネルから選択することは反時計回りの回転である。同様に、チャネルアウトプットマルチプレクサ200のために南インプットチャネルから選択することは時計回りの回転である。したがって、スイッチボックス200の中のI/Oポートにおける各チャネルアウトプットマルチプレクサは、時計回りの(in_cw)インプットチャネルから、また反時計回りの(in_acw)インプットチャネルから選択することができる。さらに、各チャネルアウトプットマルチプレクサは、そのアウトプットチャネルを駆動するために命令セルのアウトプットワード(in_co)を選択することもできる。
[0029] 図1Bを再び参照すると、アレイのエッジにおけるスイッチボックス120のようなスイッチボックスが、隣接のスイッチボックスと向かい合わないI/Oポートを有することとなることは見られ得る。例えば、スイッチボックス120のための東I/Oポートは、その東に隣接のスイッチボックスを有さない。したがって、他のスイッチボックスと向かい合わないI/Oポートからのアウトプットチャネルは、近接のスイッチボックスに「ラップアラウンドする(wrap around)」ように設定される。例えば、スイッチボックス120からの東アウトプットチャネルは、近接のスイッチボックス125に対して東のインプットチャネルになるためにラップアラウンドされる。
[0030] チャネルアウトプットマルチプレクサに条件付きのルーティング能力を提供するために、条件付きのルーティング回路350は、図3に示されるように導入される。条件付きのルーティング回路350は、チャネルアウトプットマルチプレクサ300を含む。マルチプレクサ200に関して説明されたように、チャネルアウトプットマルチプレクサ300は、そのアウトプットチャネルを駆動するための、対向する、時計回りの、反時計回りの、およびセルのアウトプットワードから多重化する。デコーダ305は、条件付きのルーティング回路350が、動作の静的なルーティングモードで動作するか、動作の条件付きのルーティングモードで動作するかを制御する。動作の静的なルーティングモードにおいて、チャネルアウトプットマルチプレクサ300は、図2のチャネルアウトプットマルチプレクサ200に関して説明されたように動作するためにデコーダ305によって制御される。動作の静的なモードにおいて、デコーダ305は、4つのインプットワード(対向する、時計回り、反時計回り、およびセルのアウトプット)のうちのどれがチャネルアウトプットマルチプレクサ300によって選択されるかを制御するためにコンフィギュレーションビットによって設定され得る。しかしながら、動作の条件付きのルーティングモードにおいて、チャネルアウトプットマルチプレクサ300による選択は、4つのインプットワードのうちのデコーダに選択された1つに基づく。
[0031] 3つのコンフィギュレーションビットを前提として、デコーダ305は、8つの異なるステートのうちの1つに設定され得る。これらのステートのうちの4つは、動作の静的なモードを制御し得る。言い換えれば、デコーダ305のための第1のステートは、4つのインプットワードのうちの第1の1つを静的に選択するためにチャネルアウトプットマルチプレクサ300を制御することとなり、別のステートは、4つのインプットワードのうちの第2の1つを静的に選択するためにチャネルアウトプットマルチプレクサ300を制御することとなるなどである。一般に、チャネルアウトプットマルチプレクサ300がシャットダウンされるデフォルトステートを有することは、役立つことが多い。したがって、デコーダ305は、4:1のチャネルアウトプットマルチプレクサ300がそのアウトプットをディスエーブルするディスエーブルされたステートのために設定され得る。3つのコンフィギュレーションビットを前提として、デコーダ305はしたがって、別の3つのステートのためにデコードし得る。これらのステートは、動作の条件付きのルーティングモードで使用されるステートであり得る。例えば、1つのステートにおいて、反時計回りのワード(特に、そのビットのうちの2つ)は、残りの3つの時計回りの、対向する、および命令セルのアウトプットワードのチャネルアウトプットマルチプレクサ300による選択を制御するためにデコーダ305によってデコードされ得る。このステートにおいて、反時計回りのワードは、デコーダ305によって選択され、マルチプレクサ300による選択を制御する第1のアドレス信号306にデコードされることとなる。別のステートにおいて、対向するワードは、残りの3つの時計回りの、反時計回りの、および命令セルのアウトプットワードのチャネルアウトプットマルチプレクサ300による選択を制御するためにデコーダ305によって選択され、デコードされ得るなどである。たった3つのステートが、3つのコンフィギュレーションビットから利用可能であるため、4つのインプットワードのうちの1つは、デコーダ305の中のそのデコーディングを通してチャネルアウトプットマルチプレクサ300による選択を制御するための能力を有すこととならない。しかしながら、代替の実施形態において、デコーダ305は、各インプットワードがチャネルアウトプットマルチプレクサ300による選択を制御することができるように、3より多いコンフィギュレーションビットを受信することができる。
[0032] 動作の条件付きのルーティングモードにおいて、デコーダ305は、インプットワードのうちの1つを選択し、チャネルアウトプットマルチプレクサ300による選択を制御する第1のアドレス信号306を形成するためにデコーダに選択されたワード(またはそれらの一部)をデコードする。動作の条件付きのルーティングモードにおいて、チャネルアウトプットマルチプレクサ300は、デコーダに選択されたインプットワードのデコーディングに基づいて3つの残りのインプットワードから選択する。3つのインプットワードからのそのような選択は、2ビットだけを要求する。したがって、デコーダ305は、各インプットワード(in_co、in_opp、in_cw、およびin_acw)から2ビットを受信する。デコーダ305は、動作の条件付きのルーティングモードで、デコーダに選択されたインプットワードから、第1のアドレス信号306に2ビットをマッピングまたはデコードすることができる。しかしながら、各インプットワードからデコーダ305に提供されたビットの実際の数は、他の実施形態が、各インプットワードからデコーダ305に追加のビットを提供することができるという点で任意である。さらに、デコーダ305は、たとえ、デコーダに選択されたインプットワードからたった2ビットだけ必要とするとしても、デコーダ305は、対向する、時計回りの、反時計回りの、および命令セルのワードから成るグループからその全体の中の選択されたインプットワードを受信するとさらに考えられ得る。デコーダに選択されたインプットワードの中の余分なビットは、チャネルアウトプットマルチプレクサ300による選択を制御するための第1のアドレス信号306へのデコーディングに関してドントケア値(don’t care values)を備えると考えられ得る。
[0033] 1つの実施形態において、デコーダ305による、インプットワードからの選択は、単にデコーダ305によって受信されるコンフィギュレーションビットによって決定される。代替の実施形態において、デコーダの選択は、インプットワードに基づいてそれ自体条件付きであり得る。言い換えれば、デコーダ305は、それらの論理ステートを決定するためにインプットワードin_co、in_acw、in_opp、およびin_cwの信号から受信されるビットをデコードすることをコンフィギュレーションビットによって設定され得る。これらの受信されたビットが、第1の論理ステートにデコードされる場合、デコーダ305は例えば、残りの対向する、時計回りの、および反時計回りのインプットワードからマルチプレクサ300による選択を制御するために第1のアドレス信号306に命令セルのアウトプットワードをデコードし得る。しかしながら、インプットワードから受信されたビットが、第2の論理ステートにデコードされる場合、デコーダ305は、例えば、マルチプレクサ300による選択を制御するために、時計回りのインプットワードから受信されたビットを第1のアドレス信号306にデコードし得るなどである。デコーダに選択されたインプットワードのそのような条件付きの選択は、デコーディングの2つのレイヤを含むことが理解されることとなる:デコーダの選択を決定するためにインプットワードの論理ステートをデコードするための第1のレイヤ、および第1のアドレス信号306を形成するためにデコーダに選択されたワードをデコードするための第2のレイヤ。
[0034] 条件付きのルーティング回路350において、マルチプレクサ300によって受信される時計回りの、反時計回りの、命令セルのアウトプット、および対向するワードは、インプットワードのグループを形成すると考えられ得る。動作の条件付きのルーティングモードにおいて、デコーダ305は、インプットワードのグループの残りのものからチャネルアウトプットマルチプレクサ300による選択を制御するために第1のアドレス信号306にデコードされるデコーダに選択されたインプット信号を形成するためにインプットワードのこのグループから選択する。デコーダ305による、インプットワードのグループからのこの選択は、インプット信号の論理ステートおよびコンフィギュレーションビットによって、またはコンフィギュレーションビット単体によって駆動され得る。どのように選択がなされるかに関わらず、デコーダ305は、選択されたワードを第1のアドレス信号306にデコードする。
[0035] マルチプレクサ300はまた、条件付きのルーティング回路350で「第1のマルチプレクサ」と表され得る。動作の条件付きのルーティングモードの中に2つの選択が存在することも留意されたい:インプットワードin_co、in_acw、in_opp、およびin_cwのうちのどれがチャネルアウトプットマルチプレクサ300による選択を制御することとなるかに関してデコーダ305による第1の選択が存在し、ならびに第1のアドレス信号306によって制御される時に残りのインプットワードからのチャネルアウトプットマルチプレクサ300による第2の選択が存在する。マルチプレクサ300によって選択されたインプット信号のグループの中のインプット信号の数が、必ずしも4ではないが、他の実施形態において変化し得ると理解されることとなる。例えば、マルチプレクサ300によって選択されたインプット信号のグループは、8の番号が付けられたと仮定する。そのような実施形態において、マルチプレクサ300は、図3において第1のアドレス信号306を作り出す2ビットに対向するものとして3つのアドレスビットを要求することとなる。
[0036] 追加の柔軟性を提供するために、機能ユニットは、マルチプレクサのアウトプットデータパス内に含まれ得る。インプレースの機能性を持つ例示的な条件付きのルーティング回路450が、図4に示される。機能ユニット400は、機能ユニットのアウトプット410を作るために第1のマルチプレクサ300からマルチプレクサのアウトプット401を受信する。(条件付きのルーティング回路450内で第2のマルチプレクサとも表され得る)2:1のマルチプレクサ405は、アウトプットチャネル415を形成するためにマルチプレクサのアウトプット401と機能ユニットのアウトプット410間で選択する。デコーダ420は、コンフィギュレーションビットによって設定される時、条件付きのルーティング回路450が、図3のデコーダ305に関して類似して説明されたように静的なルーティングモードで、または条件付きのルーティングモードで動作するかどうかを制御する。図の明快さのために、デコーダ420にインプットを作る2ビット(またはそれ以上)のバス幅、および第1のマルチプレクサ300にインプットを作るワード幅のバスは、図4に示されておらず、本開示の残りの図面に示されてもいない。
[0037] 機能ユニット400は、第1のマルチプレクサ300からのアウトプット401に論理関数を実行する。機能ユニットを含まない動作の従来のモードを維持するために、機能ユニット400は、第2のマルチプレクサ405が第1のマルチプレクサ300からアウトプット401を選択するようにバイパスされ得る。加えて、機能ユニット400はまた、第1のマルチプレクサのアウトプット401にそれの論理関数を実行するためにイネーブル、またはディスエーブルされ得る。その点について、デコーダ420を設定するために使用されるコンフィギュレーションビットの数は、動作のモードのためのステートの総数を決定する。例えば、デコーダ420が、4つのコンフィギュレーションビットによって設定される場合、デコーダ420は、16の可能性があるステートのうちの1つで動作することができる。
[0038] 1つの実施形態において、これらの16の可能性があるステートは、次の通りである。動作の従来の静的なルーティングモードは、4つのインプットワードのうちのどの1つが、第1のマルチプレクサ300によって選択されるかに対応する4つのステートを備えることを思い出されたい。第2のマルチプレクサ405が、第1のマルチプレクサ300のアウトプット401を選択するためにデコーダ420からの第2のアドレス信号407によって制御される場合、およびデコーダ420からの第1のアドレス信号306が、インプットワード(静的なルーティング)に依存しない場合、これらの4つのステートは、条件付きのルーティング回路450によって複製されることができる。機能ユニット400はまた、これらの4つのステートの間、デコーダ420からの制御信号406によって可能であればディスエーブルされることとなる。しかしながら、代替の機能ユニットの実施形態において、制御信号406は、機能ユニット400がインバータを備える場合などに含まれないことは理解されることとなる。
[0039] 動作の静的なルーティングモードはまた、第2のマルチプレクサ405が、機能ユニットのアウトプット410を選択するために第2のアドレス信号407によって制御されることを除いて、今しがた説明された4つのステートと一致している別の4つのステートを含むこととなる。これらの4つのステートにおいて、機能ユニット400は、制御信号406によって機能することをイネーブルされることとなる。したがって、既に説明された8つのステートが存在する。上記に説明されたように、第1のマルチプレクサ300がシャットダウンされるデフォルトステートを有することは、役立つことが多い。したがって、デコーダ420は、第1のマルチプレクサ300がそのアウトプットをディスエーブルするディスエーブルされたステートのために設定され得る。そのことは、デコーダ420によって受信される4つのコンフィギュレーションビットによって設定されるような16のステートのうち説明されるための残りの7つのステートを残す。これらの残りのステートのうちの3つはまた、動作の静的なルーティングモード内に存在する。これらの3つの残りのステートにおいて、第1のアドレス信号306は、第1のマルチプレクサ300へのインプットワードに依存しない。例えば、第1のマルチプレクサ300は、ステートのうちの1つにおける対向するインプットワード、別のステートにおける時計回りのインプットワード、およびステートのうちの残りの1つにおける反時計回りのインプットワードを静的に選択し得る。しかしながら、制御信号406は、インプットワードに依存することとなる。言い換えれば、動作の条件付きのルーティングモードに類似して、これらの3つの残りの静的なルーティングモードのステートは、インプットワードのうちの1つを選択し、および制御信号406が機能ユニット400の動作をイネーブルするかまたはディスエーブルするかを決定するためにデコーダに選択されたインプットワードのためのビットのうちの1つを使用する、デコーダ420を含むこととなる。
[0040] 4つの残りのステートは、各ステートがデコーダ420によって選択されるインプットワードのうちの1つに対応するような動作の条件付きのルーティングモード内でステートをすべて備えることとなる。デコーダ420は、第1のアドレス信号306を形成するためにデコーダに選択されたインプットワードからビット(例えば、2ビット)をデコードすることとなる。第1のマルチプレクサ300によって条件付きのルーティングを制御することができる4つのインプットワードが存在するため、デコーダ420のための4つのそのような条件付きのルーティングステートが、存在する。これらの条件付きのルーティングステートの間、機能ユニット400は、制御信号406によってイネーブルされ得る。さらに、第2のマルチプレクサ405は、これら4つのステートの間、機能ユニットのアウトプット410を選択し得る。
[0041] 追加のコンフィギュレーションビットが、動作の静的な、および条件付きのルーティングモードのための追加のステートを形成するために使用され得ることを理解することができ、デコーダ420はしたがって、代替の実施形態において4つより多いコンフィギュレーションビットによって設定され得る。回路350および450のような条件付きのルーティング回路は、チャネルルーティング回路の対応するアウトプットチャネルを形成するために第1のマルチプレクサ300に提示されるインプット信号のグループ(対向する、時計回りの、反時計回りの、および命令セルのアウトプットワード)から条件付きの選択をするための手段を備えると考えられ得る。同様に、回路450のような条件付きのルーティング回路はまた、対応するアウトプットチャネル415を形成するために機能動作(functional operation)で第1のマルチプレクサ300によって多重化されたインプット信号のグループから選択される信号を条件付きで処理するための手段を備えると考えられ得る。
例示的な実施形態
[0042] いくつかの例示的な実施形態が、機能ユニット400によってインプリメントされ得る幅広い機能を例示するためにここに説明されることとなる。図5Aにおいて、レジスタ500は、機能ユニットとしてサーブする。デコーダ420は、レジスタ500への書き込み可能な(w_en)インプット501を制御する。したがって、デコーダ420は、第1のマルチプレクサ300からのアウトプット401が、レジスタ500に登録されることとなる場合、静的な、および条件付きの両方のルーティングモードで書き込み可能なインプット501をアサートするように設定され得る。さらに、デコーダ420は、第1のマルチプレクサ300へのインプット信号のうちのデコーダに選択された1つに、書き込み可能なインプット501が、アサートされるか否かを制御することを可能にするように設定され得る。この実施形態における機能ユニットのアウトプット410は、レジスタ500のデータアウトプットである。デコーダ420は、第2のマルチプレクサ405が、それに応じて登録された機能ユニットのアウトプット410を選択するように、第2のアドレス信号407を駆動するように設定され得る。しかしながら、機能ユニットのアウトプット410は、レジスタ500の中のあらかじめ記憶された値を表すこととなることに留意されたい。レジスタ500は、第1のマルチプレクサ300から現在のアウトプット401を登録することとなる。代替として、第2のマルチプレクサ405が第1のマルチプレクサのアウトプット401を選択するように、登録された機能ユニットのアウトプット410がバイパスされるように、デコーダ420は、設定され得る。そのようなモードにおいて、書き込み可能な501は、レジスタ500が第1のマルチプレクサのアウトプット401を登録しないようにデアサートされ(be de-asserted)得る。
[0043] 同様に、機能ユニット400は、図5Bに示されるようにシフト回路505を備え得る。機能ユニットのアウトプット410は、第1のマルチプレクサのアウトプット401のシフトされたバージョンを備えることとなる。そのコンフィギュレーションに依存して、デコーダ420は、シフト回路505をそれに応じて制御するための左/右シフト制御信号515を駆動する。シフト機能がアクティベートされるか否かに依存して、デコーダ420は、第2のアドレス信号407を通して第2のマルチプレクサ405をそれに応じて制御する。
[0044] 別の実施形態において、インバータ510は、図5Cに示されるように機能ユニット400として機能する。アウトプット401は、マルチビットワードであるため、インバータ510が複数のシングルビットインバータを備えると理解されることとなる。インバータ510が、デコーダ420からの制御信号を必要としないことに留意されたい。結果として生じた条件付きのルーティングおよび/またはインプレースの機能性は、RICAの柔軟性およびパフォーマンスを著しく強化する。例えば、RICAの中のスイッチボックスアレイは、ピクセルデータにスライディングウィンドウアルゴリズムを実行するように設定され得る。任意の所与の計算サイクルで、スイッチボックスのサブセットは、計算セット(calculating set)を形成するように設定される。それに続くサイクルで、サブセットは、行の方向でシフトされる。行の最後にサブセットをシフトすると、それは、ピクセルデータを処理することを続けるために上へ、または下へ移動させられ得る。そのような条件付きの移動は、本明細書に開示されたRICAの条件付きのルーティング、およびインプレースの機能性を使用して容易に達成され得る。
使用の例示的な方法
[0045] 例示的な方法のための流れ図が、図6に提供される。方法は、隣接のスイッチのボックスのセットで取り囲まれる(surrounded by)ようにスイッチボックスのアレイに配置される第1のスイッチボックスに関して定義され、隣接のスイッチボックスの各々から複数のインプットチャネルを受信するステップ600から始まる。ステップ600の例は、図2にスイッチボックス205で示され、それは、北、南、東、および西方向で隣接のスイッチボックスからインプットチャネルを受信する。方法は、命令セルのアウトプットを形成するために受信されたインプットチャネルのうちの少なくとも1つに論理演算を実行するステップ605に移る。例示的な命令セルは、ALU110が、ALUのスイッチボックスで受信されるインプットチャネルのうちの1つ以上のからの命令セルのアウトプットを形成するという点において、図1BのALU110である。ステップ610は、第1のアドレス信号を形成するためにセットの中の各隣接のスイッチボックスからのインプットチャネル、および命令セルのアウトプットを備える信号のグループから選択された信号をデコードすることを備える。方法はまた、第1のアドレス信号に応答して、隣接のスイッチボックスのうちの所与の1つにアウトプットチャネルを形成するために信号のグループから信号を選択するステップ615を含む。図4のマルチプレクサのアウトプット401は、そのような選択の例示である。
[0046] 当業者が現時点で理解することとなるように、かつ随時(at hand)特定のアプリケーションに依存して、多くの修正、置き換えおよび変形が、本開示のデバイスの使用の方法、構成、装置、およびマテリアルに、およびそれらの中に、それの主旨および範囲から逸脱することなく、なされることができる。このことを踏まえて、本開示の範囲は、それらが、単にそれらのいくつかの例の目的として、本明細書で例示され、説明された特定の実施形態のそれに限定されるべきでなく、むしろ、以下に添付された請求項のそれおよびそれらの機能的に同等なものに十分に相応するべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
回路であって、
複数のスイッチボックス、ここにおいて、各スイッチボックスは、インプット/アウトプット(I/O)ポートのセットを含み、各I/Oポートは、複数のインプットチャネルを受信し、複数のアウトプットチャネルをアウトプットするように設定され、
各I/Oポートは、前記複数のアウトプットチャネルに対応する複数の条件付きのルーティング回路を含み、各スイッチボックスのI/Oポートのための各条件付きのルーティング回路は、
第1のアドレス信号に応答してマルチプレクサのアウトプットを形成するためにスイッチボックスのためのI/Oポートの前記セットに残る各I/Oポートから受信されたインプットチャネルを備える信号のグループから選択するように設定される第1のマルチプレクサと、
前記第1のアドレス信号を形成するように設定されるデコーダと、前記デコーダは、第1のアドレス信号が信号の前記グループに依存しない動作の静的なルーティングモードで動作するように設定可能であり、前記デコーダは、前記第1のアドレス信号が、インプット信号の前記グループからデコーダに選択された信号に依存する動作の条件付きのルーティングモードで動作するようにさらに設定可能であり、ここにおいて、前記条件付きのルーティング回路は、前記条件付きのルーティング回路のアウトプットチャネルとして前記マルチプレクサのアウトプットを駆動するように設定可能であり、
を含み、
を備える、回路。
[C2]
各スイッチボックスは、命令セルのアウトプットを作るために前記スイッチボックスのためのI/Oポートの前記セットの中の前記I/Oポートのうちの1つによって受信された前記インプットチャネルのうちの少なくとも1つに論理演算を実行するように設定される命令セルを含み、ここにおいて、信号の前記グループは、前記命令セルのアウトプットをさらに含む、C1に記載の回路。
[C3]
前記複数のスイッチボックスは、行および列によって配置され、ここにおいて、各スイッチボックスのためのI/Oポートの前記セットは、対向する行のI/Oポートのペアおよび対向する列のI/Oポートのペアを備える、C2に記載の回路。
[C4]
各スイッチボックスのI/Oポートの条件付きのルーティング回路のための各デコーダは、前記スイッチボックスのためのコンフィギュレーションワードからのコンフィギュレーションビットに応答して、前記デコーダに選択された信号を形成するために信号のそれの条件付きのルーティング回路の第1のマルチプレクサのグループから選択するように設定されるように設定可能である、C1に記載の回路。
[C5]
各デコーダは、前記第1のアドレス信号を形成するために前記デコーダに選択された信号からビットのサブセットをデコードするように設定される、C1に記載の回路。
[C6]
各条件付きのルーティング回路は、機能ユニットのアウトプットを形成するために前記条件付きのルーティング回路のマルチプレクサのアウトプットに論理演算を実行するように設定される機能ユニットをさらに含む、C1に記載の回路。
[C7]
各デコーダは、第2のアドレス信号を形成するようにさらに設定され、ここにおいて、各条件付きのルーティング回路は、前記第2のアドレス信号に応答して前記対応するアウトプットチャネルを形成するために前記条件付きのルーティング回路のマルチプレクサのアウトプットと前記条件付きのルーティング回路の機能ユニットのアウトプット間で選択するように設定される第2のマルチプレクサをさらに含む、C5に記載の回路。
[C8]
前記機能ユニットのうちの少なくとも1つは、レジスタを備える、C6に記載の回路。
[C9]
前記機能ユニットのうちの少なくとも1つは、シフト回路を備える、C6に記載の回路。
[C10]
各デコーダは、前記第1のマルチプレクサが、前記マルチプレクサのアウトプットを形成するために前記第1のアドレス信号に応答して前記デコーダに選択された信号を除く信号のそのグループから選択するように設定されるように、動作の前記条件付きのルーティングモードで動作するようにさらに設定可能である、C1に記載の回路。
[C11]
前記命令セルのうちの少なくとも1つは、算術論理ユニット(ALU)を備える、C1に記載の回路。
[C12]
各スイッチボックスの列のI/Oポートの中の各第1のマルチプレクサは、前記スイッチボックスの中の各行のI/Oポートから受信されたインプットチャネルから、および前記スイッチボックスの中の残りの列のI/Oポートから受信されたインプットチャネルから、選択するように設定される、C3に記載の回路。
[C13]
各スイッチボックスの中の各行のI/Oポートの中の各第1のマルチプレクサは、前記スイッチボックスの中の各列のI/Oポートから受信されたインプットチャネルから、および前記スイッチボックスの中の残りの行のI/Oポートから受信されたインプットチャネルから、選択するように設定される、C3に記載の回路。
[C14]
方法であって、
隣接のスイッチボックスのセットで取り囲まれるようにスイッチボックスのアレイに配置される第1のスイッチボックスのために、前記隣接のスイッチボックスの各々から複数のインプットチャネルを受信することと、
命令セルのアウトプットを形成するために前記受信されたインプットチャネルのうちの少なくとも1つに論理演算を実行することと、
第1のアドレス信号を形成するために前記セットの中の各隣接のスイッチボックスから受信されたインプットチャネル、および前記命令セルのアウトプットを備える信号のグループからデコーダに選択された信号をデコードすることと、
前記第1のアドレス信号に応答して、前記隣接のスイッチボックスのうちの所与の1つにアウトプットチャネルを形成するために信号の前記グループから選択することと、
を備える、方法。
[C15]
前記第1のスイッチボックスのためのコンフィギュレーションワードの中のコンフィギュレーションビットに応答して信号の前記グループから前記デコーダに選択された信号を選択することをさらに備える、C14に記載の方法。
[C16]
信号の前記グループから前記デコーダに選択された信号を選択することは、信号の前記グループの中の前記信号の各々に関する論理ステートにさらに応答する、C15に記載の方法。
[C17]
前記アウトプットチャネルを形成することは、
マルチプレクサのアウトプットを形成するために信号の前記グループから選択することと、
機能ユニットのアウトプットを形成するために前記マルチプレクサのアウトプットに論理演算を実行することと、
前記アウトプットチャネルを形成するために前記マルチプレクサのアウトプットと前記機能ユニットのアウトプット間で選択することと、
を備える、C14に記載の方法。
[C18]
回路であって、
複数のスイッチボックス、ここにおいて、各スイッチボックスは、
インプット/アウトプット(I/O)ポートのセット、各I/Oポートは、複数のインプットチャネルを受信するように、および複数のアウトプットチャネルをアウトプットするように構成され、を含み、ここにおいて、各I/Oポートは、
前記I/Oポートの複数のアウトプットチャネルを形成するための前記セットに残る各I/Oポートから前記受信されたインプットチャネルから条件付きで選択するための手段を含む、
を備える、回路。
[C19]
各手段は、前記I/Oポートの複数のアウトプットチャネルを形成するために機能動作で選択されたインプットチャネルを条件付きで処理するように設定される、C18に記載の回路。
[C20]
各手段は、デコーダを備える、C18に記載の回路。

Claims (17)

  1. 回路であって、
    複数のスイッチボックス、ここにおいて、各スイッチボックスは、インプット/アウトプット(I/O)ポートのセットを含み、各I/Oポートは、複数のインプットチャネルを受信し、複数のアウトプットチャネルをアウトプットするように設定され、
    各I/Oポートは、前記複数のアウトプットチャネルに対応する複数の条件付きのルーティング回路を含み、各スイッチボックスのI/Oポートのための各条件付きのルーティング回路は、
    第1のアドレス信号に応答してマルチプレクサのアウトプットを形成するために前記スイッチボックスのためのI/Oポートの前記セットに残る各I/Oポートから前記インプットチャネルのうちの単一の受信された1つを備える信号のグループから選択するように設定される第1のマルチプレクサと、
    前記第1のアドレス信号を形成するように設定されるデコーダと、前記デコーダは、前記第1のアドレス信号が信号の前記グループに依存しない動作の静的なルーティングモードで動作するように設定可能であり、前記デコーダは、前記第1のアドレス信号が、前記選択された受信されたインプットチャネルに加えて信号の前記グループの中の前記受信されたインプットチャネルのうちの1つに依存する動作の条件付きのルーティングモードで動作するようにさらに設定可能であり、ここにおいて、前記条件付きのルーティング回路は、前記条件付きのルーティング回路のアウトプットチャネルとして前記マルチプレクサのアウトプットを駆動するように設定可能であり、
    を含み、
    を備える、回路。
  2. 各スイッチボックスは、命令セルのアウトプットを作るために前記スイッチボックスのためのI/Oポートの前記セットの中の前記I/Oポートのうちの1つによって受信された前記インプットチャネルのうちの少なくとも1つに論理演算を実行するように設定される命令セルを含み、ここにおいて、信号の前記グループは、前記命令セルのアウトプットをさらに含む、請求項1に記載の回路。
  3. 前記複数のスイッチボックスは、行および列によって配置され、ここにおいて、各スイッチボックスのためのI/Oポートの前記セットは、対向する行のI/Oポートのペアおよび対向する列のI/Oポートのペアを備える、請求項2に記載の回路。
  4. 各スイッチボックスのI/Oポートの条件付きのルーティング回路のための各デコーダは、前記スイッチボックスのためのコンフィギュレーションワードからのコンフィギュレーションビットに応答して、前記デコーダに選択された信号を形成するために信号のそれの条件付きのルーティング回路の第1のマルチプレクサのグループから選択するように設定されるように設定可能である、請求項1に記載の回路。
  5. 各デコーダは、前記第1のアドレス信号を形成するために前記デコーダに選択された信号からビットのサブセットをデコードするように設定される、請求項1に記載の回路。
  6. 各条件付きのルーティング回路は、機能ユニットのアウトプットを形成するために前記条件付きのルーティング回路のマルチプレクサのアウトプットに論理演算を実行するように設定される機能ユニットをさらに含む、請求項1に記載の回路。
  7. 各デコーダは、第2のアドレス信号を形成するようにさらに設定され、ここにおいて、各条件付きのルーティング回路は、前記第2のアドレス信号に応答して前記対応するアウトプットチャネルを形成するために前記条件付きのルーティング回路のマルチプレクサのアウトプットと前記条件付きのルーティング回路の機能ユニットのアウトプット間で選択するように設定される第2のマルチプレクサをさらに含む、請求項5に記載の回路。
  8. 前記機能ユニットのうちの少なくとも1つは、レジスタを備える、請求項6に記載の回路。
  9. 前記機能ユニットのうちの少なくとも1つは、シフト回路を備える、請求項6に記載の回路。
  10. 各デコーダは、前記第1のマルチプレクサが、前記マルチプレクサのアウトプットを形成するために前記第1のアドレス信号に応答して前記デコーダに選択された信号を除く信号のそのグループから選択するように設定されるように、動作の前記条件付きのルーティングモードで動作するようにさらに設定可能である、請求項1に記載の回路。
  11. 前記命令セルのうちの少なくとも1つは、算術論理ユニット(ALU)を備える、請求項に記載の回路。
  12. 各スイッチボックスの列のI/Oポートの中の各第1のマルチプレクサは、前記スイッチボックスの中の各行のI/Oポートから受信されたインプットチャネルから、および前記スイッチボックスの中の残りの列のI/Oポートから受信されたインプットチャネルから、選択するように設定される、請求項3に記載の回路。
  13. 各スイッチボックスの中の各行のI/Oポートの中の各第1のマルチプレクサは、前記スイッチボックスの中の各列のI/Oポートから受信されたインプットチャネルから、および前記スイッチボックスの中の残りの行のI/Oポートから受信されたインプットチャネルから、選択するように設定される、請求項3に記載の回路。
  14. 方法であって、
    隣接のスイッチボックスのセットで取り囲まれるようにスイッチボックスのアレイに配置される第1のスイッチボックスのために、前記隣接のスイッチボックスの各々から複数のインプットチャネルを受信することと、
    命令セルのアウトプットを形成するために前記受信されたインプットチャネルのうちの少なくとも1つに論理演算を実行することと、
    第1のアドレス信号を形成するために前記セットの中の各隣接のスイッチボックスから前記受信されたインプットチャネルのうちの単一の1つ、および前記命令セルのアウトプットを備える信号のグループから選択されたデコーダに選択された信号をデコードすることと、
    前記第1のアドレス信号に応答して、前記隣接のスイッチボックスのうちの所与の1つにアウトプットチャネルを形成するために前記デコーダに選択された信号に加えて信号の前記グループから選択することと、
    を備える、方法。
  15. 前記第1のスイッチボックスのためのコンフィギュレーションワードの中のコンフィギュレーションビットに応答して信号の前記グループから前記デコーダに選択された信号を選択することをさらに備える、請求項14に記載の方法。
  16. 信号の前記グループから前記デコーダに選択された信号を選択することは、信号の前記グループの中の前記信号の各々に関する論理ステートにさらに応答する、請求項15に記載の方法。
  17. 前記アウトプットチャネルを形成することは、
    マルチプレクサのアウトプットを形成するために信号の前記グループから選択することと、
    機能ユニットのアウトプットを形成するために前記マルチプレクサのアウトプットに論理演算を実行することと、
    前記アウトプットチャネルを形成するために前記マルチプレクサのアウトプットと前記機能ユニットのアウトプット間で選択することと、
    前記アウトプットチャネルを形成するために前記マルチプレクサのアウトプットと前記機能ユニットのアウトプット間で選択することと、
    を備える、請求項14に記載の方法。
JP2016516741A 2013-05-29 2014-05-27 条件付きのチャネルルーティングおよびインプレースの機能性を持つ再設定可能な命令セルのアレイ Active JP6130058B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/905,032 US9465758B2 (en) 2013-05-29 2013-05-29 Reconfigurable instruction cell array with conditional channel routing and in-place functionality
US13/905,032 2013-05-29
PCT/US2014/039612 WO2014193851A2 (en) 2013-05-29 2014-05-27 Reconfigurable instruction cell array with conditional channel routing and in-place functionality

Publications (3)

Publication Number Publication Date
JP2016520239A JP2016520239A (ja) 2016-07-11
JP2016520239A5 JP2016520239A5 (ja) 2017-01-12
JP6130058B2 true JP6130058B2 (ja) 2017-05-17

Family

ID=51168336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016516741A Active JP6130058B2 (ja) 2013-05-29 2014-05-27 条件付きのチャネルルーティングおよびインプレースの機能性を持つ再設定可能な命令セルのアレイ

Country Status (6)

Country Link
US (1) US9465758B2 (ja)
EP (1) EP3005140A2 (ja)
JP (1) JP6130058B2 (ja)
KR (1) KR101746819B1 (ja)
CN (1) CN105247505B (ja)
WO (1) WO2014193851A2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170083313A1 (en) * 2015-09-22 2017-03-23 Qualcomm Incorporated CONFIGURING COARSE-GRAINED RECONFIGURABLE ARRAYS (CGRAs) FOR DATAFLOW INSTRUCTION BLOCK EXECUTION IN BLOCK-BASED DATAFLOW INSTRUCTION SET ARCHITECTURES (ISAs)
US20190235863A1 (en) * 2018-01-31 2019-08-01 Qualcomm Incorporated Sort instructions for reconfigurable computing cores
DE102019006293A1 (de) * 2019-09-05 2021-03-11 PatForce GmbH Switchbox

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3308770B2 (ja) * 1994-07-22 2002-07-29 三菱電機株式会社 情報処理装置および情報処理装置における計算方法
US5956518A (en) 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
AU2003207933A1 (en) * 2002-03-18 2003-09-29 Koninklijke Philips Electronics N.V. Configuration memory implementation for lut-based reconfigurable logic architectures
US7193994B1 (en) 2002-08-16 2007-03-20 Intel Corporation Crossbar synchronization technique
US20050289326A1 (en) 2004-06-26 2005-12-29 Hong Kong University Of Science & Technology Packet processor with mild programmability
US7635987B1 (en) 2004-12-13 2009-12-22 Massachusetts Institute Of Technology Configuring circuitry in a parallel processing environment
WO2006114642A1 (en) * 2005-04-28 2006-11-02 The University Court Of The University Of Edinburgh Reconfigurable instruction cell array
JP5020029B2 (ja) * 2007-11-16 2012-09-05 株式会社メガチップス 画像処理装置
US20090193384A1 (en) 2008-01-25 2009-07-30 Mihai Sima Shift-enabled reconfigurable device
GB2471067B (en) 2009-06-12 2011-11-30 Graeme Roy Smith Shared resource multi-thread array processor
US8451147B2 (en) * 2010-07-16 2013-05-28 M.S. Ramaiah School Of Advanced Studies Data interface circuit
US9392640B2 (en) * 2012-10-01 2016-07-12 Freescale Semiconductor, Inc. Method and system for automatically controlling the insertion of control word in CPRI daisy chain configuration

Also Published As

Publication number Publication date
JP2016520239A (ja) 2016-07-11
KR101746819B1 (ko) 2017-06-13
CN105247505A (zh) 2016-01-13
US20140359174A1 (en) 2014-12-04
WO2014193851A3 (en) 2015-03-05
US9465758B2 (en) 2016-10-11
EP3005140A2 (en) 2016-04-13
CN105247505B (zh) 2017-12-12
WO2014193851A2 (en) 2014-12-04
KR20160015275A (ko) 2016-02-12

Similar Documents

Publication Publication Date Title
US8959276B2 (en) Byte selection and steering logic for combined byte shift and byte permute vector unit
US9081060B2 (en) Buffer testing for reconfigurable instruction cell arrays
KR20140131284A (ko) 스트리밍 메모리의 치환 동작
EP2304594B1 (en) Improvements relating to data processing architecture
JP6130058B2 (ja) 条件付きのチャネルルーティングおよびインプレースの機能性を持つ再設定可能な命令セルのアレイ
CN108139886B (zh) 用于图像处理器的多功能执行通道
US20190235863A1 (en) Sort instructions for reconfigurable computing cores
US9933996B2 (en) Selectively combinable shifters
KR20170089678A (ko) 처리 유닛, 인-메모리 데이터 처리 장치 및 방법
JP6039113B2 (ja) 再構成可能命令セルアレイの並列構成
Tabkhi et al. Function-level processor (FLP): A high performance, minimal bandwidth, low power architecture for market-oriented MPSoCs
JP2009282744A (ja) 演算器及び半導体集積回路装置
JP6046319B1 (ja) 再構成可能命令セルアレイのシリアル構成
US11768685B2 (en) Processing device with vector transformation execution
JP4255475B2 (ja) データ駆動型情報処理装置
US7395294B1 (en) Arithmetic logic unit
US20050283587A1 (en) Multidimensional processor architecture
WO2002015000A2 (en) General purpose processor with graphics/media support
US10289382B2 (en) Selectively combinable directional shifters
HK1160942A (en) Microprocessor techniques for real signal processing and updating

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161122

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161122

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170412

R150 Certificate of patent or registration of utility model

Ref document number: 6130058

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150