JP2016514421A - 再構成可能命令セルアレイの並列構成 - Google Patents

再構成可能命令セルアレイの並列構成 Download PDF

Info

Publication number
JP2016514421A
JP2016514421A JP2015561423A JP2015561423A JP2016514421A JP 2016514421 A JP2016514421 A JP 2016514421A JP 2015561423 A JP2015561423 A JP 2015561423A JP 2015561423 A JP2015561423 A JP 2015561423A JP 2016514421 A JP2016514421 A JP 2016514421A
Authority
JP
Japan
Prior art keywords
configuration
latch
word
array
latch array
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.)
Granted
Application number
JP2015561423A
Other languages
English (en)
Other versions
JP6039113B2 (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 JP2016514421A publication Critical patent/JP2016514421A/ja
Application granted granted Critical
Publication of JP6039113B2 publication Critical patent/JP6039113B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Logic Circuits (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Abstract

再構成可能命令セルアレイ(RICA)が複数のスイッチボックスを含む。各スイッチボックスは、スイッチボックスのためのラッチアレイに記憶された構成ワードに従って構成可能な命令セルとスイッチファブリックとを含む。スイッチボックスは、各ブロードキャストセット中のラッチアレイが構成ワードを並列に受信するようにブロードキャストセット中に配置される。

Description

関連出願の相互参照
[0001] 本出願は、その全体が参照により本明細書に組み込まれる、2013年3月5日に出願された米国非仮出願第13/784,827号の優先権を主張する。
[0002] 本出願は、再構成可能計算に関し、より詳細には、並列構成または再構成可能命令セルアレイ(reconfigurable instruction cell array)に関する。
[0003] プロセッサ速度が漸進的に向上してきたが、計算能力の向上の必要は衰えないままである。たとえば、スマートフォンは、現在、それらのプロセッサに当惑させるほどの様々なタスクを負わせている。しかし、シングルコアプロセッサは、所与の時間に極めて多くの命令に適応することしかできない。したがって、現在、命令のセットを並列に処理することができるマルチコアまたはマルチスレッドプロセッサを設けることが一般的である。しかし、そのような命令ベースのアーキテクチャは、命令処理時間を増加させることに関してダイスペースと電力消費と複雑さとによって課される限界と常に戦わなければならない。
[0004] プログラマブル処理コアの使用と比較して、専用ハードウェア中でより効率的に処理され得る多くのアルゴリズムがある。たとえば、画像処理は、処理ステップのパイプラインを介して実質的な並列処理(parallelism)とグループでのピクセルの処理とを伴う。アルゴリズムが次いでハードウェアにマッピングされた場合、実装形態は、この対称性および並列処理を利用する。しかし、専用ハードウェアを設計することは、アルゴリズムが変更された場合に専用ハードウェアが再設計されなければならないという点で、費用がかかり、また煩雑である。
[0005] 命令ベースのアーキテクチャと専用ハードウェア手法との間の効率的な折衷を与えるために、再構成可能命令セルアレイ(RICA:reconfigurable instruction cell array)アーキテクチャが開発された。図1Aに、再構成可能コア1を有する例示的なRICAシステム50を示す。RICA50では、加算器(ADD)、乗算器(MUL)、レジスタ(REG)、論理演算シフタ(SHIFT)、分割器(DIV)、データ比較器(COMP)、論理ゲート(LOGIC)、および論理ジャンプセル(JUMP)など、複数の命令セル2がプログラマブルスイッチングファブリック(programmable switching fabric)4を介して相互接続される。命令セル2が実装する論理機能(logical function)または命令に関する命令セル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] 命令セルを行および列による再構成可能アレイ中に配置することが通常である。各命令セルと、関連するレジスタと、命令セルのための関連する入力および出力スイッチングファブリックとは、スイッチングボックス内に常駐すると見なされ得る。図1Bに、行および列に配置されたスイッチボックス(switch box)の例示的なアレイを示す。選択されたスイッチボックス間に形成されたデータ経路は、複数のチャネルからの選択されたチャネル上で搬送される。また、チャネルは、スイッチボックスのための行および列に一致する行および列に配置される。各チャネルはビット単位のある幅を有する。行方向は東および西に走ると見なされ得るが、列方向は北および南に走る。初期スイッチボックス100中の命令セルにおいて開始するデータ経路は、東行方向の出力チャネル101上でルーティングする。後続のスイッチボックスからのデータ経路のためのルーティングは、何らかの選択された行および列位置における最終スイッチボックス105に達するような適切な東/西行方向または北/南列方向にある。この例示的なデータ経路では、2つの命令セルが算術論理ユニット(ALU:arithmetic logic unit)110として構成される。残りのスイッチボックスのための命令セルは説明の明快のために図示しない。各スイッチボックスは、2つのスイッチマトリックスまたはファブリック、すなわち、それの命令セルへのチャネル入力のために選択すべき入力スイッチファブリックと、また、スイッチボックスからのチャネル出力のために選択すべき出力スイッチファブリックとを含む。
[0007] 命令セルとは対照的に、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)中の論理ブロックはルックアップテーブル(LUT:lookup table)を使用する。たとえば、構成されたFPGA中で行われる論理演算においてANDゲートを必要とすると仮定する。対応するLUTは、ANDゲート論理機能のための真理値表を用いてプログラムされることになる。しかし、命令セルは、それが専用論理ゲートを含んでいるという点ではるかに「粗粒(coarse-grained)」である。たとえば、ALU命令セルは、類別された専用論理ゲートを含むことになる。それは、構成可能であるALU命令セルの機能であり、それのプリミティブ論理ゲートは専用ゲートであり、したがって非構成可能である。たとえば、従来のCMOSインバータは専用論理ゲートの1つのタイプである。そのようなインバータについて構成可能なものはなく、それは構成ビットを必要としない。しかし、FPGAプログラマブル論理ブロック中のインバータ機能のインスタンス化は、代わりにLUTの真理値表の対応するプログラミングによって実行される。したがって、本明細書で使用する「命令セル(instruction cell)」という用語は、専用論理ゲートを備える構成可能な論理要素を指す。
[0008] ALU命令セルは1つまたは複数のオペランドに対してそれの論理機能を実行する。このコンテキストにおけるオペランドは受信チャネル入力である。それの構成ビットに応じて、ALU命令セルは、対応する論理演算を実行するように構成される。たとえば、第1のスイッチボックスは、2つのチャネル入力に対応する2つのオペランドを加算するように構成されたALU命令セルを含み得る。しかし、同じALU命令セルは、2つのオペランドを減算するために後で更新され得る。命令セル内の論理演算から生じたオペランドは別の命令セル中で必要とされ得る。したがって、第1のスイッチボックス中の出力スイッチファブリックは、対応するチャネル出力を介して第1のスイッチボックスの中から生じたオペランドを駆動するように構成され得る。対照的に、FPGAのLUTはビットを生成し、それらはワードを生成しない。したがって、FPGA中のスイッチファブリックは、FPGAのスイッチファブリックがFPGAのLUTからビットをルーティングするように構成されるという点で、RICA中のスイッチファブリックとは基本的に異なる。対照的に、RICA中のスイッチボックス間のルーティングは、入力チャネルと出力チャネルの両方としてワードをルーティングするように構成される。たとえば、スイッチボックスアレイは、20個のチャネルをルーティングするように構成され得る。そのような実施形態におけるスイッチボックスは、したがって、すべての4つの方向から20個の入力チャネルを受信し、4つの方向において20個の出力チャネルを駆動し得る。
[0009] 命令セルが専用論理ゲートを備えるので、構成データの必要な量は同等のFPGAのための構成データよりも実質的に少ないというRICAの利点に留意されたい。スイッチボックスは、したがって、再構成がコンパニオンプロセッサに対して事実上リアルタイムであるような比較的短い遅延にわたって容易に再構成され得る。対照的に、FPGAのための大量の構成データは、FPGA中へのそれのローディングのためにかなりの遅延を必要とする。また、RICAは、旧来のプロセッサにおけるソフトウェアベースの実装形態と比較して処理速度の利点を有する。たとえば、パイプライン処理方式を介して複数のピクセルを処理することを伴う画像処理などのアルゴリズムは、専用ハードウェア手法をエミュレートする様式で命令セルにマッピングされ得る。しかし、専用ハードウェアを設計する必要はない。代わりに、単に、必要に応じて命令セルとスイッチングファブリックとを構成することができる。したがって、アルゴリズムが再設計されなければならない場合、ハードウェア再設計の必要はないが、代わりに、ユーザは、単に構成データを変更し得る。これは旧来の命令ベースの計算手法よりも極めて有利である。
[0010] RICAは、したがって、ロバストな利点を提供するが、それの実装形態において課題が残っている。たとえば、命令セルとスイッチングファブリックとの構成のためになど、各スイッチボックス内の構成可能な要素のためにいくつかの構成ビットが必要とされる。各スイッチングボックスは、したがって、それの構成ビットを記憶するための記憶要素を必要とする。例示的な一実施形態では、(400個のスイッチボックスを生じる)20個の行と20個の列とのアレイは、それの構成のために77キロビットを必要とする。極めて多くの構成ビットのローディングのための回路は貴重なダイスペースと電力とを消費する。さらに、RICAは、構成ビットのローディングのために最小レイテンシを必要とする。その点において、命令セルはRICA中に静的にプログラムされず、たとえば、命令セルは通常動作中に数回再構成され得る。それは、そのような頻繁な再プログラミングを必要としないことがあるが、能力は提供されるべきである。そのようなマイクロプロセッサ他のシステムがRICAとインターフェースしていることがあるので、再構成のレイテンシは、ストールを防ぐために最小限に抑えられなければならない。
[0011] したがって、当技術分野において、再構成可能命令セルアレイのためのエリア効率的で低レイテンシの構成方式が必要である。
[0012] 再構成可能命令セルアレイ(RICA)が複数のスイッチボックスを含む。各スイッチボックスは、スイッチボックスのためのラッチアレイに記憶された構成ワード(configuration word)に従って構成可能な命令セルとスイッチファブリックとを含む。スイッチボックスは、各ブロードキャストセット(broadcast set)中のラッチアレイが構成ワードを並列に受信するようにブロードキャストセットに構成される。構成ワードを記憶するためのフリップフロップの使用と比較して、開示するRICAのために必要なダイスペースは、したがって、実質的に低減される。
[0013] 例示的な再構成可能命令セルアレイ(RICA)についてのブロック図。 [0014] 図1AのRICA中のスイッチボックスのアレイについてのブロック図。 [0015] 各ブロードキャストセットのスイッチボックスが構成ワードを並列に受信するように構成されるように、ブロードキャストセット中に配置されたスイッチボックスのアレイを示す図。 [0016] ラッチアレイが、ラッチングワードがシフトレジスタを介してシフトされたことに応答して閉じられるように構成された、ブロードキャストセットの一部分中の複数のラッチアレイについての高レベル概略図。 [0017] 各ブロードキャストセットのスイッチボックスが構成ワードを並列に受信するように構成されるように、ブロードキャストセット中に配置されたスイッチボックスのアレイを有するRICAについてのより詳細な概略図。 [0018] 図4AのRICAの構成、更新、およびテストのためのタイミング図。 [0019] ラッチアレイが、比較器がタグアドレスを行アドレスと比較したことに応答して閉じられるように構成された、ブロードキャストセットの一部分中の複数のラッチアレイについての高レベル概略図。 [0020] ラッチアレイが、比較器がタグアドレスを行および列アドレスと比較したことに応答して閉じられるように構成された、ブロードキャストセットの一部分中の複数のラッチアレイについての高レベル概略図。 [0021] ラッチがスキャンモードのためにも構成された、構成ビットの次状態(next-state)ラッチと対応する現在状態(current-state)ラッチとについての高レベル概略図。 [0022] 構成ワードをスイッチボックスアレイ中に並列にブロードキャストする方法についてのフローチャート。
[0023] 本発明の実施形態およびそれらの利点は、以下の発明を実施するための形態を参照することによって最も良く理解される。図のうちの1つまたは複数に示された同様の要素を識別するために同様の参照番号が使用されることを諒解されたい。
[0024] 構成データがスイッチボックスのセットに並列にブロードキャストされる再構成可能命令セルアレイ(RICA)が提供される。ダイスペースを節約するために、スイッチボックス内の構成データはラッチに記憶される。フリップフロップの使用と比較して、必要なダイスペースは、したがって、実質的に低減される。
[0025] スイッチボックス中の命令セルと入力および出力スイッチファブリックとを構成すべき構成データは、最初の構成ビットから最後の構成ビットにわたる複数の構成ビットを備える構成ワードを形成すると見なされ得る。各スイッチボックスのための入力および出力スイッチファブリックを本明細書ではまとめて単一のスイッチファブリックと呼ぶ。各スイッチボックスは、したがって、スイッチボックスの構成ワードのための複数の構成ビットに対応する複数のラッチを有するラッチアレイを含む。たとえば、ラッチアレイ中の第1のラッチは、構成ワードの対応する第1の構成ビットを記憶するように構成される。同様に、ラッチアレイ中の最終ラッチが、構成ワードのための対応する最終構成ビットを記憶するように構成されるように、ラッチアレイ中の第2のラッチは、構成ワードのための対応する第2の構成ビットを記憶するように構成され、以下同様である。各スイッチボックスのラッチアレイは、そのスイッチボックスのための対応する構成ワードを記憶する。
[0026] 1つのRICA実施形態では、各スイッチボックスは、それの命令セルとスイッチファブリックとのための現在状態構成ワードを記憶するだけでなく、次状態構成ワードをも記憶する。各スイッチボックスは、したがって、現在状態構成ワードを記憶するための現在状態ラッチアレイ、ならびに次状態構成ワードを記憶するための次状態ラッチアレイを有することになる。スイッチボックスは、それの次状態ラッチアレイからの次状態構成ワードを現在状態ラッチアレイ中にロードすることによって更新信号に応答する。並列ブロードキャストアーキテクチャについて、次状態ラッチアレイ中への次状態構成ワードのローディングに関して本明細書で説明する。しかしながら、本明細書で開示するローディング方式はまた、現在の構成ワードのみをロードするシステムに広く適用可能である。その点において、本明細書で開示する次状態ラッチアレイは、別段の必要がない限り、簡潔のために単に「ラッチアレイ(latch array)」と呼ぶ。
[0027] スイッチボックスのアレイは行および列中に配置され得る。その点において、「行(row)」であること対「列(column)」であることは、単に観点の問題である。したがって、本明細書では行および列という用語を一般性の喪失なしに使用する。本明細書で説明する構成ワードの有利な並列ブロードキャスティングを可能にするために、スイッチボックスのブロードキャストセット中のラッチアレイはすべて、それらのデータ入力端子が、対応する構成バス(configuration bus)によって駆動される。たとえば、ブロードキャストセットは、アレイの列中に連続する一連のスイッチボックスを備え得る。対応する構成バスは、したがって、この連続する一連のスイッチボックスに結合することになる。
[0028] 各構成バスは、複数の構成ビットに対応する複数の構成ビット導体(configuration bit conductor)を備える。したがって、ラッチとまったく同様に、構成ビット導体のうちの第1の構成ビット導体が構成ワードのための第1の構成ビットに対応し、構成ビット導体のうちの第2の構成ビット導体が構成ワードのための第2の構成ビットに対応し、以下同様である。その点において、複数の構成ビット導体はまた、ブロードキャストセット中の各ラッチアレイ中の複数のラッチに対応する。所与の構成ビットのためのブロードキャストセット中のラッチは、それらのデータ入力端子が対応する構成ビット導体に並列に結合される。したがって、ブロードキャストセットの構成バスのための第1の構成ビット導体は、ブロードキャストセットのラッチアレイ中の各第1のラッチのためのデータ入力端子に結合する。同様に、ブロードキャストセットの構成バス中の第2のバス導体は、ブロードキャストセットのラッチアレイ中の各第2のラッチのためのデータ入力端子に結合し、以下同様である。
[0029] ブロードキャストセットのラッチアレイへの構成バスのこの結合を仮定すれば、構成ワードが構成バス上に駆動されると、ブロードキャストセットのラッチアレイ中の各ラッチが、それのデータ入力端子において構成ワード中の対応する構成ビットを受信することになる。このようにして、構成ビットは、それらのそれぞれの構成ビット導体に沿って、対応するラッチのためのデータ入力端子にブロードキャストされる。
[0030] 図2に、RICAのスイッチボックスアレイ200がスイッチボックスの20個の行と20個の列とを備える実施形態を示す。各列は、スイッチボックスアレイ200が上側ハーフアレイと下側ハーフアレイとを備えるように、構成データの並列ブロードキャスティングに関して半分に分割される。各スイッチボックスブロードキャストセットは、したがって、ハーフアレイのうちの1つにおいて半分の列を備える。たとえば、下側ハーフアレイ中の1つのブロードキャストセットはスイッチボックス210からスイッチボックス215に延びる。各ハーフアレイのためのプログラムまたは構成メモリはハーフアレイの構成バス220を駆動する。したがって、上側ハーフアレイのためにプログラムメモリ北201があり、下側ハーフアレイのためにプログラムメモリ南205がある。各プログラムメモリ201および205は、構成ワードをそれの対応するハーフアレイのための構成バス220中に駆動するように構成される。たとえば、メモリ南205は、構成ワードを、対応する構成バス220を介してスイッチボックス210からスイッチボックス215に延びるブロードキャストセット中に駆動するように構成される。一実施形態では、各構成ワード幅は192ビットである。20個のスイッチボックスの行の構成は、そのような実施形態では、したがって、3840ビットに等しい20*192ビットを必要とする。アレイ200中に20個の行があるので、アレイ200のための構成データは、その場合、約77キロビットに等しい20*3840ビットを備えることになる。
[0031] 代替実施形態では、単一の構成メモリがすべての構成ワードを記憶することができる。各ブロードキャストセットは、アレイ200の対応する完全な列にわたって延びることになる。しかし、本明細書でさらに説明するように、各々がアレイ200中にそのようなそれら自体のブロードキャストセットを有するハーフアレイ中にアレイが配置される実施形態では、構成プロセスのためのローディング時間は半分にされる。
[0032] 上記で説明したように、各スイッチボックス中のラッチは、各スイッチボックスがそれ自体の対応するラッチアレイを有するようにラッチアレイを形成すると見なされ得る。各ブロードキャストセット中のラッチアレイが構成ワードを並列に受信するので、所与のラッチアレイは、それが適切な構成ワードをラッチした後に閉じられるべきである。図3において、アドレス指定回路(addressing circuit)300は、ブロードキャストセット301のためのラッチアレイ320中のラッチが閉じられているのか透過的(transparent)であるのかを制御する。説明の明快のために、ブロードキャストセット301のためのスイッチボックスの一部分のみが図3に示されている。さらなる説明の明快のために、ブロードキャストセット301中の各スイッチボックスは、それのラッチアレイ320によってのみ表される。各ラッチアレイ320は、それの対応するスイッチボックスの構成のための構成ワードを記憶する。ブロードキャストセット301では、第1のラッチアレイ320はアレイ200のj番目の行中にあり、ただし、jは、ある任意のスイッチボックス行を表す。同様に、第2のラッチアレイ320は、アレイ200の近隣の(j+1)番目の行中にある。最終的に、第3のラッチアレイ320は、アレイ200の(j+2)番目の行中にある。ブロードキャストセット301中のスイッチボックスはすべて、スイッチボックスアレイ200に関して説明したように同じ列中にある。
[0033] 各ラッチアレイ320は、nビットの幅を有する構成ワードを記憶するためにn個のラッチを有し、nは、ある任意のビット幅(たとえば、192ビットの前の例)を表す。各ラッチは、それの対応する構成ビットによって指定される。したがって、各ラッチアレイ320中の第1のラッチL1は、対応する構成ワードのための第1の構成ビットを記憶するように構成される。同様に、最終ラッチLnが、対応する構成ワードのための最終のn番目の構成ビットを記憶するように構成されるように、第2のラッチL2は、対応する構成ワードのための第2の構成ビットを記憶するように構成され、以下同様である。192ビット幅実施形態では、nは192になる。このようにして、i番目の構成ビットは、対応するラッチLiによって記憶され、ただし、iは構成ビット幅内の任意の整数である。
[0034] 構成バス220は、各構成ワード中の複数の構成ビットに対応する複数の構成ビット導体を含む。初期構成ビット導体325は、第1の構成ビットをブロードキャストセット301中の各ラッチL1のためのデータ入力端子に結合するように構成される。同様に、最終構成ビット導体335が、最終構成ビットをブロードキャストセット中の各ラッチLnのためのデータ入力端子に結合するように構成されるように、第2の構成ビット導体330は、第2の構成ビットをブロードキャストセット中の各ラッチL2のためのデータ入力端子に結合するように構成され、以下同様である。このようにして、i番目の構成ビットのためのi番目の構成ビット導体はすべて、ブロードキャストセット中のLiラッチに結合し、ただし、iは、1からnにわたる構成ワード幅内の任意の整数である。
[0035] 一実施形態では、ブロードキャストセット中のすべてのラッチは、デフォルト(非アドレス指定)状態で透過的になるように構成され得る。構成ワードが、メモリ201または205などのメモリから取り出され、構成バス220中に駆動されるべきである場合、それは、ブロードキャストセット301中のすべてのラッチアレイ320内にラッチされることになる。デフォルト開(default-open)実施形態では、アドレス指定回路300は、所与のラッチアレイ320中のラッチがデフォルト透過状態(default transparent state)から閉じられるかどうかを制御する。ブロードキャストセット301では、アドレス指定回路300は、フリップフロップの対応するチェーンから形成されたシフトレジスタ300を備える。再びアレイ200を参照すると、スイッチボックスの各行中のラッチアレイは、シフトレジスタ300中の対応するフリップフロップによって閉じられ得る。したがって、図3に示されているように、フリップフロップ305は、j番目のスイッチボックス行中のラッチアレイ320が閉じられるかどうかを制御する。同様に、フリップフロップ310および315は、それぞれ(j+1)番目のスイッチボックス行および(j+2)番目のスイッチボックス行を制御する。各スイッチボックスのハーフアレイは対応するシフトレジスタ300を有し得る。代替的に、単一のシフトレジスタ300は、両方のハーフアレイをアドレス指定するように構成され得る。
[0036] シフトレジスタ300中の各フリップフロップはRICAシステムクロック(CLK)によってクロック制御され得る。デフォルト透過型実施形態では、シフトレジスタ300中の各フリップフロップは最初にリセットされ得る。各フリップフロップからのQ出力は、スイッチボックスの対応する行中のラッチのためのクロック入力またはイネーブル入力を駆動するストローブ信号として機能する。たとえば、フリップフロップ305からのQ出力は、スイッチボックスのj番目の行中の各ラッチアレイ320中のラッチのためのクロック入力を駆動する。上記で説明したように、図3は、単一のブロードキャストセット301の一部分のみを示している。したがって、図3のj番目の行、(j+1)番目の行、(j+2)番目の行中の残りのスイッチボックスのためのラッチアレイは、説明の明快のために図示しない。各ラッチは、一実施形態ではレベルセンシティブロー(level-sensitive low)になり得る。したがって、そのようなラッチは、それらのクロック入力が高に駆動されたときに閉じられる。再びアレイ200を参照すると、各ハーフアレイ中に10個の行がある。したがって、シフトレジスタ300は、透過性が低い実施形態の場合、最初に10個の0を保持することになる。構成プロセス中に、すべての論理1の10ビット幅ラッチングワードが、次いで、RICAクロックのサイクルに応答してシフトレジスタ300中に連続的にシフトされ得る。初期RICAクロックサイクルでは、したがって、この行中のラッチがデフォルト開状態から閉じられるように、スイッチボックスの初期行が制御される。これは初期RICAクロックサイクルであるので、各ハーフアレイ中の対応するスイッチボックス行は、図2中のサイクル−1として指定される。ブロードキャストセット301の行順序に関して、サイクル−1行は、したがって、各ハーフアレイ中の最初の行である。ラッチングワードの連続論理1ビット値がシフトレジスタ300中にシフトされるので、対応するスイッチボックス行中のラッチは閉じられる。したがって、10回のRICAクロックサイクルの後、サイクル−10スイッチボックス行中のラッチは、所与のブロードキャストセットのための構成ワードのローディングを完了するために閉じられる。対照的に、各ブロードキャストセット301が(半分の列ではなく)完全な列にわたって延びるように、アレイ200がハーフアレイに分割されない実施形態の場合、構成ワードのローディングは、20回のクロックサイクルを必要とすることになる。各ブロードキャストセット301がちょうど半分の列にわたって延びるようなアレイ200の分割は、したがって、必要なローディング時間を1/2だけ減らす。たとえば、各RICAクロックサイクルが3ナノ秒になるべきである場合、アレイ200の構成は、ほんの30ナノ秒を必要とすることになる。対照的に、同等のFPGAは、再構成のためにかなりより長く必要とすることになる。
[0037] ローディングプロセス中に所与のRICAクロックサイクル中でメモリ201および205から取り出される構成ワードの数は、スイッチボックス列の数(および、したがってハーフアレイごとのブロードキャストセットの数)に依存する。アレイ200のために示された20個の列がある場合、それに応じて、20個の構成ワードが20個の対応する構成バス220中に駆動される。
[0038] スイッチボックスのアレイの並列構成のためのシフトレジスタ300のより詳細な概略図が図4Aに示されている。この実施形態では、0番目のブロードキャストセット400からm番目のブロードキャストセット405にわたるm個のブロードキャストセットがあり、ただし、(m+1)は、このRICA実施形態では、ブロードキャストセットの数を表す整数である。説明の明快のために、4つのスイッチボックス、すなわち、第1のスイッチボックス410、第2のスイッチボックス415、第3のスイッチボックス420、および第4のスイッチボックス425のみが、ブロードキャストセット400中に示されている。各スイッチボックスは、それの次状態のための構成ワードを記憶するための次状態ラッチアレイ(図示せず)を有する。構成ワードは、すべてNビット幅であり、ただし、Nは、ある任意の正の整数である。したがって、Nビット幅構成バス220を各ブロードキャストセットに駆動する構成メモリ430が示されている。図4Bに、図4A中の様々な信号のタイミングを示す。構成メモリ430は、チップ選択信号(CS_N)440がローにアサートされたとき、RICAクロック435のサイクルに応答して構成ワードを取り出す。構成ワードの取出しより前に、リセット信号445は、シフトレジスタ300とスイッチボックス中のラッチアレイとをリセットするようにアサートされる。各スイッチボックスは、それのクロック入力(E)がシフトレジスタ300中の対応するフリップフロップによって駆動される。たがって、シフトレジスタ300は、ブロードキャストセットにわたるスイッチボックスの各行のためのフリップフロップを含む。リセット信号445のアサーションに応答して、ブロードキャストセット中のすべての次状態ラッチアレイは、それらのデフォルト閉状態(default closed state)から開かれる。
[0039] 並列ローディングプロセスを開始するために、初期「ダミー(dummy)」フリップフロップ446は、論理1を登録することによってRICAクロック435の初期ロードサイクル(initial load cycle)に応答する。このロードサイクル中に、構成メモリ430は、アドレス信号451に応答して構成ワードの第1のセットを取り出す。ブロードキャストセット400の場合、初期構成ワードはdout<1>として示される。
[0040] シフトレジスタ300中の各後続のフリップフロップは、次いで、ダミーフリップフロップ445からシフトレジスタ300を介してシフトされた、すべての論理1値の得られたラッチングワードをそれがラッチするとき、それのストローブ信号が高になるので、スイッチボックスのそれの対応する行中の次状態ラッチアレイを閉じることになる。RICAクロック435のサイクル1中に、ブロードキャストセット400中のすべての次状態ラッチアレイはdout<1>構成ワードをラッチする。シフトレジスタ300中の初期フリップフロップ450は、サイクル1中のダミーフリップフロップ445から論理1値を登録する。フリップフロップ450から出力されたストローブ信号S1は、したがって、サイクル1中でRICAクロック435が高(high)に回帰することに応答して高になる。スイッチボックス410中の次状態ラッチアレイは、したがって、スイッチボックス410を含む行のためのすべての他の次状態ラッチアレイが閉じるこの時点で閉じる。RICAクロック435の後続のサイクル2では、dout<2>構成ワードは、構成メモリ430によってブロードキャストセット400のための構成バス220中に駆動される。しかし、スイッチボックス415、420、および425中の次状態ラッチアレイのみは、スイッチボックス415、420、および425を含む対応する行中のすべての他の次状態ラッチとともにこの時点で開いている。サイクル2中に、フリップフロップ455はフリップフロップ450からのS1出力をラッチする。フリップフロップ455は、したがって、ストローブ信号S2を使用してこの時点でスイッチボックス415を含む行中の次状態ラッチアレイを閉じる。
[0041] このようにして、各後続のフリップフロップからのストローブ(S)信号は、フリップフロップがシフトレジスタ300を介してシフトされている論理1値をラッチするときに高になる。たとえば、フリップフロップ460はRICAクロック435のサイクル3中にストローブ信号S3をアサートする。同様に、フリップフロップ460はRICAクロック435のサイクル4中にストローブ信号S4をアサートする。このようにして、構成ワードが所与のブロードキャストセット中のすべての次状態ラッチアレイに並列にブロードキャストされるにもかかわらず、各次状態ラッチアレイは、それの対応する構成ワードをラッチする。RICAクロック435のサイクルは、したがって、図4Bに示されているように次状態(NS:next-state)ロードクロック490のサイクルとして示され得る。クロックサイクルNS<1>では、スイッチボックス410中の次状態ラッチアレイはdout<1>をラッチし、閉じる。同様に、クロックサイクルNS<2>では、スイッチボックス415中の次状態ラッチアレイはdout<2>をラッチし、閉じ、以下同様である。その点において、シフトレジスタ300中の所与のフリップフロップ中で論理1がラッチされると、そのフリップフロップは、オール1ラッチングワードがシフトレジスタ300中に完全にシフトされたとき、後続のRICAクロックサイクル中の論理1をラッチすることになる。このようにして、所与の行中のラッチアレイが閉じられると、それらは構成プロセス中に閉じられたままになることになる。
[0042] テストモードでは、走査イン信号(scan-in signal)470が使用される。このモードについて以下でさらに説明する。さらに、対応する現在状態ラッチアレイ中への、ブロードキャストセット400中の次状態ラッチアレイに記憶された構成ワードのシフトについても、以下でさらに説明する。
[0043] 閉じられることに関して、ラッチがレベルセンシティブハイ(level-sensitive high)であるように構成されるのかロー(low)であるように構成されるのかは、任意であることに留意されたい。その上、ラッチについてのデフォルト状態を透過的にするのではなく、デフォルト状態は代替実施形態では閉じられ得る。そのような実施形態では、シフトレジスタ300などのアドレス指定回路は、適切なラッチアレイを開き、次いで、所与の構成ワードが構成バス220中に駆動されたときに適切なラッチアレイを閉じるように構成されることになる。その点において、アドレス指定回路が、所与のRICAクロックサイクル中で対応するラッチを閉じるだけでよいという点で、デフォルト状態がすべての次状態ラッチアレイについて透過的である実施形態は有利である。
[0044] また別の実施形態では、各構成ワードはアドレスタグ(address tag)に関連付けられ得る。たとえば、アドレスタグは各構成ワードについてのヘッダを備え得る。得られたアドレスタグはスイッチボックスの各行にわたって共通であり得る。図5に示されているように、アドレス回路500は比較器を備え得る。各スイッチボックス行は、したがって、それ自体の比較器を有することになる。説明の明快のために、図3に示されたブロードキャストセット301のちょうど一部分が図5に示されている。比較器505がスイッチボックスのj番目の行中のラッチアレイ320の開および閉を制御する。同様に、比較器510が(j+1)番目の行中のラッチアレイ320の開および閉を制御する。最終的に、比較器515が(j+2)番目の行中のラッチアレイ320の開および閉を制御する。所与の構成ワードがメモリ201または205から取り出され、構成バス220中に駆動されるとき、対応するアドレスタグは、すべての比較器に結合するアドレスタグバス520中に駆動される。各行は、それ自体のアドレスを有する。所与のクロックサイクルでは、各構成ワードのためのアドレスタグは、したがって、所与の構成メモリからのアドレスタグになる。たとえば、再び図2のアレイ200を参照すると、構成メモリ205からの構成ワードのためのアドレスタグは、すべてサイクル1行中のアドレスタグになる。したがって、各行は、ただ1つの比較器を必要とする。所与の行の比較器は、一致が見つけられるかどうかを決定するためにアドレスタグバス520上で受信されたアドレスタグをそれの行アドレスと比較するように構成される。比較器が一致を見つけた場合、比較器は、それに応じて、それの行中のラッチのためのクロック入力を駆動する。たとえば、デフォルト開実施形態では、受信されたアドレスタグがj番目の行のアドレスに一致した場合、比較器505はj番目の行中のすべてのラッチを閉じることになる。アレイ200のための次の状態が、1つの行のみが現在状態に関して変更された構成ワードを有するようなものであると仮定すると、そのような行アドレス指定は極めて有利である。図3のシフトレジスタ方式は、依然として、アレイ200を更新するために10回のRICAクロックサイクルを必要とすることになるが、図5の比較器は、対応する行中への構成データのローディングを完了するために1回のRICAクロックサイクルのみを必要とすることになる。
[0045] 一層それ以上のグラニュラリティ(granularity)を与えるために、各タグアドレスは、特定の行を識別するだけでなく、列をも識別し得る。言い換えれば、所与のタグアドレスが特定の行を識別するだけでなく、それは特定の列をも識別することになる。したがって、スイッチボックスの所与の行の構成ワードのためのアドレスタグは、図5の実施形態とは対照的に同じでないことになる。代わりに、各構成ワードは、構成されるべきスイッチボックスのための対応する行および列を識別する一意のタグアドレスを有することになる。図6に示されているように、アドレス回路600は各ラッチアレイ320のための比較器を備え得る。言い換えれば、あらゆるスイッチボックスは、そのような行および列アドレス指定可能な実施形態では、それ自体の比較器を必要とする。説明の明快のために、図3に示されたブロードキャストセット301のちょうど一部分が図6に示されている。比較器605が、(特定の列に対応する)この特定のブロードキャストセット301のj番目の行中のラッチアレイ320のみのための開および閉を制御する。同様に、比較器610が、この特定のブロードキャストセット301の(j+1)番目の行中のラッチアレイ320のみのための開および閉を制御する。最終的に、比較器615が、この特定のブロードキャストセット301の(j+2)番目の行中のラッチアレイ320のみのための開および閉を制御する。各ブロードキャストセット301は、それの比較器を駆動するそれ自体のタグアドレスバス620を有する。各ラッチアレイ320は、それの特定の行および列に対応する一意のアドレスを有する。対応する比較器は、タグアレイバス620上で受信されたタグアレイがそれのラッチアレイ320のための行および列アドレスに一致した場合、それのラッチアレイ320を閉じることになる。このようにして、特定のラッチアレイ320は、ラッチアレイ320の行全体にアドレス指定することとは対照的にアドレス指定され得る。
[0046] 上記で説明したように、スイッチボックス中にロードされる構成ワードは、次状態ラッチアレイ中にロードされる次状態構成ワードであり得る。各次状態ラッチアレイは、次状態のための構成ワードを記憶するために必要な数の次状態ラッチを含むことになる。対応する現在状態ラッチアレイは、現在状態のための構成ワードを記憶するために、同数の現在状態ラッチを有することになる。図7に、所与の構成ビット位置の場合の次状態ラッチ700と対応する現在状態ラッチ705との有利な配置を示す。次状態ラッチ700のための構成ビットは、図3、図5、および図6に関して説明したように、構成ビット導体上で配信される。しかし、ラッチアレイをテストするための走査チェーンを使用可能にするために、走査インマルチプレクサ(scan-in multiplexer)710が、テスト信号485に応答して構成ビット導体上で搬送される構成ビットと走査イン(si)信号470との間で選択するように構成される。テストモードでは、テスト信号485は、走査インマルチプレクサ710が走査イン信号470のために選択し、この信号を次状態ラッチ700のデータ入力に配信するように、図4Bに示されるようにアサートされる。通常動作中に、テスト信号485は、それが次状態ラッチ700によってラッチされ得るように走査インマルチプレクサ710が構成ビットのために選択するようにアサート解除される。
[0047] 図4Aおよび図4Bに関して説明したように、シフトレジスタ300はスイッチボックスの各行のためのフリップフロップを含む。図7では、フリップフロップ740は、次状態ラッチ700が開いているのか閉じているのかを制御するフリップフロップである。次状態マルチプレクサ715は、次状態ラッチ700のためのクロック入力を駆動するために、フリップフロップ740からのストローブ信号または走査クロック(clk)の間で選択するようにテスト信号485に応答する。同様に、現在状態マルチプレクサ720は、更新信号480と走査クロック(clk)との間で選択するテスト信号485によって制御される。通常動作中に、テスト信号485は、現在状態マルチプレクサ720が更新信号480のために選択するようにアサート解除される。再び図4Aおよび図4Bを参照すると、ブロードキャストセット400などのブロードキャストセットが(クロックサイクルNS<4>の完了後に)それらの次状態構成ワードをラッチしたとき、更新信号480はアサートされ得る。RICAクロック435のほんの単一のサイクル中で、すべての現在状態ラッチアレイは、対応する次状態ラッチアレイから次状態構成ワードをラッチすることができる。このRICAクロックサイクルは、図4Bでは、スイッチボックス410のためのCS<1>、スイッチボックス415のためのCS<2>、スイッチボックス420のためのCS<3、およびスイッチボックス425のためのCS<4>と標示されている。これは、RICAが、現在状態構成ワードによって決定された所与の命令の実行中に並列に構成され得るという点で極めて有利である。次状態構成ワードに対応する新しい命令をロードする時間になったとき、RICAは、ほんの単一のRICAクロックサイクルの間、休止動作を必要とし、その後、それは再構成され、動作を再開する準備をする。対照的に、FPGAなどの他の再構成可能アーキテクチャは、比較するとはるかに遅い。
[0048] 次状態ラッチ700および現在状態ラッチ705はそれぞれ、φ2およびφ1の表示によって表される相補型クロック状態に反応するレベルである。したがって、テスト信号485がアサートされたとき、これらのラッチは、現在状態および次状態ラッチアレイを走査するために、走査チェーン中のエッジトリガーフリップフロップを形成する。走査イン信号470は、したがって、ブロードキャストセット400中の現在状態および次状態ラッチアレイを介して走査アウト信号475としてシフトされる。構成ワードを再構成可能命令セルアレイのためのラッチアレイのブロードキャストセットに並列にブロードキャストする例示的な方法についてのフローチャートが図8に示されている。ステップ800において、各構成バスが、対応する一連の構成ワードにより、対応する構成ワードの最初の構成ワードから対応する構成ワードの最後の構成ワードまで構成順序で、連続的に駆動されるように、一連の構成ワードが複数の構成バス中に連続的にブロードキャストされる。アレイ200では、構成順序は、シフトレジスタ300を駆動するクロックサイクルに対応する。たとえば、スイッチボックス215は、対応するブロードキャストセット中の第1のスイッチボックスである。それの対応する構成ワードは、したがって、RICAクロックの第1のサイクルに応答してブロードキャストセットの構成バス中に駆動される第1の構成ワードである。したがって、スイッチボックス215を含んでいる行はサイクル−1行として示される。同様に、スイッチボックス210は、このブロードキャストセット中の最後のスイッチボックスである。それの対応する構成ワードは、したがって、RICAクロックの第10のサイクルに応答してブロードキャストセットの構成バス中に駆動される最後の構成ワードである。したがって、スイッチボックス210を含んでいる行はサイクル−10行として示されている。各ブロードキャストセット中のスイッチボックスは、構成ワードをブロードキャストセットの構成バス上に連続的に駆動するために使用されるのと同じ構成順序で配置されると見なされ得る。
[0049] ステップ805において、各構成バス中の連続的に駆動される対応する構成ワードは、第1のラッチアレイから最後のラッチアレイまで構成順序で配置された対応する複数のラッチアレイのためのデータ入力端子において並列に受信される。この実施形態では、ラッチアレイは、デフォルト非アドレス指定状態で開いているように構成される。最終的に、ステップ810において、ラッチアレイは、各ラッチアレイが、対応する構成ワードをラッチするように、構成順序に従って連続的に閉じられる。
[0050] 当業者ならもう諒解するように、当面の特定の適用例に応じて、多くの変更、代用および変形が、それの趣旨および範囲から逸脱することなく本開示のデバイスの使用の材料、装置、構成および方法において、およびそれらに対して行われ得る。これに照らして、本明細書で図示および説明された特定の実施形態はそれのいくつかの例にすぎないので、本開示の範囲はそれらの特定の実施形態の範囲に限定されるべきでないが、そうではなく、以下に添付される特許請求の範囲およびそれらの機能的等価物の範囲に完全に相応すべきである。
[0050] 当業者ならもう諒解するように、当面の特定の適用例に応じて、多くの変更、代用および変形が、それの趣旨および範囲から逸脱することなく本開示のデバイスの使用の材料、装置、構成および方法において、およびそれらに対して行われ得る。これに照らして、本明細書で図示および説明された特定の実施形態はそれのいくつかの例にすぎないので、本開示の範囲はそれらの特定の実施形態の範囲に限定されるべきでないが、そうではなく、以下に添付される特許請求の範囲およびそれらの機能的等価物の範囲に完全に相応すべきである。
[C1] スイッチボックスのブロードキャストセットに編成されたスイッチボックスのアレイと、各スイッチボックスが、対応する構成ワードに従って構成可能なプログラマブル命令セルおよびスイッチファブリックを含み、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたラッチアレイを含み、ここにおいて、各構成ワードが複数の構成ビットを備え、各ラッチアレイが、前記複数の構成ビットに対応する複数のラッチを備える、
前記複数のブロードキャストセットに対応する複数の構成バスと、各構成バスが、前記複数の構成ビットに対応する複数の構成ビット導体を備え、各構成ビット導体が、前記対応する構成ビットを伝導するように構成され、ここにおいて、各ブロードキャストセットについて、各構成ビットのための前記対応するビット導体が、前記ブロードキャストセットのための各ラッチアレイ中の前記対応するラッチのためのデータ入力端子に結合する、
各ラッチアレイが前記対応する構成バスからのそれの対応する構成ワードをラッチするように前記ラッチアレイを選択的にアドレス指定するように構成されたアドレス指定回路と
を備える、再構成可能命令セルアレイ(RICA)。
[C2] 前記ラッチアレイ中の前記ラッチが、デフォルト状態で透過的になるように構成され、前記アドレス回路によってアドレス指定されたことに応答して閉じるように構成された、C1に記載のRICA。
[C3] 前記スイッチボックスが行および列中に配置され、ここにおいて、前記アドレス指定回路が、スイッチボックスの各行について前記ラッチアレイを選択的にアドレス指定するように構成された、C1に記載のRICA。
[C4] 前記アドレス回路がシフトレジスタを備える、C3に記載のRICA。
[C5] 前記シフトレジスタが、デフォルト状態でリセットされるように構成され、前記ラッチアレイの行を連続的に閉じるためにRICAクロックのサイクルに応答してラッチングワードを連続的にシフトするように構成された、C4に記載のRICA。
[C6] 前記スイッチボックスが行および列中に配置され、ここにおいて、第1の複数の前記ブロードキャストセットがそれぞれ各列の上半分を備え、ここにおいて、第2の複数の前記ブロードキャストセットがそれぞれ各列の下半分を備える、C1に記載のRICA。
[C7] 前記第1の複数の前記ブロードキャストセットのための前記構成ワードを記憶するための第1のメモリと、
前記第2の複数の前記ブロードキャストセットのための前記構成ワードを記憶するための第2のメモリと
をさらに備える、C6に記載のRICA。
[C8] 前記第1のメモリと前記第2のメモリとが、RICAクロックのサイクルに応答して前記構成ワードを前記対応するバス導体中に駆動するように制御される、C7に記載のRICA。
[C9] 前記ラッチがそれぞれ、デフォルト状態で閉じられるように構成され、前記アドレス回路によってアドレス指定されたことに応答して循環して開き、次いで再び閉じるように構成された、C1に記載のRICA。
[C10] 各構成ワードが、前記対応するラッチアレイのための行を識別するタグアドレスに関連付けられ、ここにおいて、前記第1のメモリは、前記第1の複数のブロードキャストセットのための前記構成バスを駆動する所与の時間に前記構成ワードがすべて前記同じタグアドレスを有するように制御され、ここにおいて、前記第2のメモリは、前記第2の複数のブロードキャストセットのための前記構成バスを駆動する所与の時間に前記構成ワードがすべて前記同じタグアドレスを有するように制御され、ここにおいて、前記アドレス回路が、前記複数の行に対応する複数の比較器を備え、各比較器が、受信されたタグアドレスを前記対応する行についてのアドレスと比較するように構成された、C6に記載のRICA。
[C11] 各構成バスが、対応する一連の構成ワードにより、前記対応する構成ワードの最初の構成ワードから前記対応する構成ワードの最後の構成ワードまで構成順序で、連続的に駆動されるように、一連の構成ワードを複数の構成バスに連続的にブロードキャストすることと、
各構成バスにおいて、最初のラッチアレイから最後のラッチアレイまで前記構成順序で配置された対応する複数のラッチアレイのためのデータ入力端子において、前記連続的に駆動される対応する構成ワードを並列に受信することと、ここにおいて、各ラッチアレイが、デフォルト非アドレス指定状態で透過的になるように構成され、
各ラッチアレイが、対応する構成ワードをラッチするように、前記構成順序に従って前記ラッチアレイを連続的に閉じることと
を備える、方法。
[C12] 各ラッチアレイが、命令セルとスイッチングファブリックとを有する対応するスイッチボックス中に含まれ、前記方法は、前記スイッチボックスのラッチアレイ中で前記構成ワードがラッチされたことに応答して各スイッチボックスの命令セルとスイッチングファブリックとを構成することをさらに備える、C11に記載の方法。
[C13] 前記構成ワードが次状態構成ワードであり、前記ラッチアレイが次状態ラッチアレイであり、ここにおいて、各スイッチボックスを構成することが、前記次状態ラッチアレイに記憶された前記次状態構成ワードを、対応する現在状態ラッチアレイ中にラッチすることを備える、C12に記載の方法。
[C14] 前記ラッチを連続的に閉じることは、ラッチングワードがシフトレジスタ中にシフトされたことに応答する、C11に記載の方法。
[C15] 前記シフトレジスタを介して前記ラッチングワードをシフトすることは、前記ラッチングワードが前記シフトレジスタ中に完全にシフトされた後に前記ラッチアレイがすべて閉じられるように、クロックに応答して行われる、C14に記載の方法。
[C16] 前記ラッチアレイを連続的に閉じることが、各構成ワードに関連付けられたタグアドレスの比較に応答して行われる、C11に記載の方法。
[C17] 前記タグアドレスがラッチアレイの行を識別する、C16に記載の方法。
[C18] 前記タグアドレスが行および列アドレスにおいてラッチアレイを識別する、C16に記載の方法。
[C19] スイッチボックスのブロードキャストセットに編成されたスイッチボックスのアレイと、各スイッチボックスが、対応する構成ワードに従って構成可能なプログラマブル命令セルおよびスイッチファブリックを含み、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたラッチアレイを含み、ここにおいて、各構成ワードが複数の構成ビットを備え、各ラッチアレイが、前記複数の構成ビットに対応する複数のラッチを備える、
ブロードキャストセット端子中の前記ラッチアレイのための入力データ端子が、前記ブロードキャストされた構成ワードを並列に受信するように、構成ワードを各ブロードキャストセット中にブロードキャストするための手段と、
前記ブロードキャストされた構成ワードを選択的ラッチするために各ブロードキャストセット中の前記ラッチアレイをアドレス指定するための手段と
を備える、再構成可能命令セルアレイ(RICA)。
[C20] 各ブロードキャストセット中の前記ラッチアレイをアドレス指定するための前記手段が、シフトレジスタを備える、C19に記載のRICA。

Claims (20)

  1. スイッチボックスのブロードキャストセットに編成されたスイッチボックスのアレイと、各スイッチボックスが、対応する構成ワードに従って構成可能なプログラマブル命令セルおよびスイッチファブリックを含み、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたラッチアレイを含み、ここにおいて、各構成ワードが複数の構成ビットを備え、各ラッチアレイが、前記複数の構成ビットに対応する複数のラッチを備える、
    前記複数のブロードキャストセットに対応する複数の構成バスと、各構成バスが、前記複数の構成ビットに対応する複数の構成ビット導体を備え、各構成ビット導体が、前記対応する構成ビットを伝導するように構成され、ここにおいて、各ブロードキャストセットについて、各構成ビットのための前記対応するビット導体が、前記ブロードキャストセットのための各ラッチアレイ中の前記対応するラッチのためのデータ入力端子に結合する、
    各ラッチアレイが前記対応する構成バスからのそれの対応する構成ワードをラッチするように前記ラッチアレイを選択的にアドレス指定するように構成されたアドレス指定回路と
    を備える、再構成可能命令セルアレイ(RICA)。
  2. 前記ラッチアレイ中の前記ラッチが、デフォルト状態で透過的になるように構成され、前記アドレス回路によってアドレス指定されたことに応答して閉じるように構成された、請求項1に記載のRICA。
  3. 前記スイッチボックスが行および列中に配置され、ここにおいて、前記アドレス指定回路が、スイッチボックスの各行について前記ラッチアレイを選択的にアドレス指定するように構成された、請求項1に記載のRICA。
  4. 前記アドレス回路がシフトレジスタを備える、請求項3に記載のRICA。
  5. 前記シフトレジスタが、デフォルト状態でリセットされるように構成され、前記ラッチアレイの行を連続的に閉じるためにRICAクロックのサイクルに応答してラッチングワードを連続的にシフトするように構成された、請求項4に記載のRICA。
  6. 前記スイッチボックスが行および列中に配置され、ここにおいて、第1の複数の前記ブロードキャストセットがそれぞれ各列の上半分を備え、ここにおいて、第2の複数の前記ブロードキャストセットがそれぞれ各列の下半分を備える、請求項1に記載のRICA。
  7. 前記第1の複数の前記ブロードキャストセットのための前記構成ワードを記憶するための第1のメモリと、
    前記第2の複数の前記ブロードキャストセットのための前記構成ワードを記憶するための第2のメモリと
    をさらに備える、請求項6に記載のRICA。
  8. 前記第1のメモリと前記第2のメモリとが、RICAクロックのサイクルに応答して前記構成ワードを前記対応するバス導体中に駆動するように制御される、請求項7に記載のRICA。
  9. 前記ラッチがそれぞれ、デフォルト状態で閉じられるように構成され、前記アドレス回路によってアドレス指定されたことに応答して循環して開き、次いで再び閉じるように構成された、請求項1に記載のRICA。
  10. 各構成ワードが、前記対応するラッチアレイのための行を識別するタグアドレスに関連付けられ、ここにおいて、前記第1のメモリは、前記第1の複数のブロードキャストセットのための前記構成バスを駆動する所与の時間に前記構成ワードがすべて前記同じタグアドレスを有するように制御され、ここにおいて、前記第2のメモリは、前記第2の複数のブロードキャストセットのための前記構成バスを駆動する所与の時間に前記構成ワードがすべて前記同じタグアドレスを有するように制御され、ここにおいて、前記アドレス回路が、前記複数の行に対応する複数の比較器を備え、各比較器が、受信されたタグアドレスを前記対応する行についてのアドレスと比較するように構成された、請求項6に記載のRICA。
  11. 各構成バスが、対応する一連の構成ワードにより、前記対応する構成ワードの最初の構成ワードから前記対応する構成ワードの最後の構成ワードまで構成順序で、連続的に駆動されるように、一連の構成ワードを複数の構成バスに連続的にブロードキャストすることと、
    各構成バスにおいて、最初のラッチアレイから最後のラッチアレイまで前記構成順序で配置された対応する複数のラッチアレイのためのデータ入力端子において、前記連続的に駆動される対応する構成ワードを並列に受信することと、ここにおいて、各ラッチアレイが、デフォルト非アドレス指定状態で透過的になるように構成され、
    各ラッチアレイが、対応する構成ワードをラッチするように、前記構成順序に従って前記ラッチアレイを連続的に閉じることと
    を備える、方法。
  12. 各ラッチアレイが、命令セルとスイッチングファブリックとを有する対応するスイッチボックス中に含まれ、前記方法は、前記スイッチボックスのラッチアレイ中で前記構成ワードがラッチされたことに応答して各スイッチボックスの命令セルとスイッチングファブリックとを構成することをさらに備える、請求項11に記載の方法。
  13. 前記構成ワードが次状態構成ワードであり、前記ラッチアレイが次状態ラッチアレイであり、ここにおいて、各スイッチボックスを構成することが、前記次状態ラッチアレイに記憶された前記次状態構成ワードを、対応する現在状態ラッチアレイ中にラッチすることを備える、請求項12に記載の方法。
  14. 前記ラッチを連続的に閉じることは、ラッチングワードがシフトレジスタ中にシフトされたことに応答する、請求項11に記載の方法。
  15. 前記シフトレジスタを介して前記ラッチングワードをシフトすることは、前記ラッチングワードが前記シフトレジスタ中に完全にシフトされた後に前記ラッチアレイがすべて閉じられるように、クロックに応答して行われる、請求項14に記載の方法。
  16. 前記ラッチアレイを連続的に閉じることが、各構成ワードに関連付けられたタグアドレスの比較に応答して行われる、請求項11に記載の方法。
  17. 前記タグアドレスがラッチアレイの行を識別する、請求項16に記載の方法。
  18. 前記タグアドレスが行および列アドレスにおいてラッチアレイを識別する、請求項16に記載の方法。
  19. スイッチボックスのブロードキャストセットに編成されたスイッチボックスのアレイと、各スイッチボックスが、対応する構成ワードに従って構成可能なプログラマブル命令セルおよびスイッチファブリックを含み、各スイッチボックスが、前記対応する構成ワードを記憶するように構成されたラッチアレイを含み、ここにおいて、各構成ワードが複数の構成ビットを備え、各ラッチアレイが、前記複数の構成ビットに対応する複数のラッチを備える、
    ブロードキャストセット端子中の前記ラッチアレイのための入力データ端子が、前記ブロードキャストされた構成ワードを並列に受信するように、構成ワードを各ブロードキャストセット中にブロードキャストするための手段と、
    前記ブロードキャストされた構成ワードを選択的ラッチするために各ブロードキャストセット中の前記ラッチアレイをアドレス指定するための手段と
    を備える、再構成可能命令セルアレイ(RICA)。
  20. 各ブロードキャストセット中の前記ラッチアレイをアドレス指定するための前記手段が、シフトレジスタを備える、請求項19に記載のRICA。
JP2015561423A 2013-03-05 2014-02-27 再構成可能命令セルアレイの並列構成 Expired - Fee Related JP6039113B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/784,827 US8860457B2 (en) 2013-03-05 2013-03-05 Parallel configuration of a reconfigurable instruction cell array
US13/784,827 2013-03-05
PCT/US2014/019049 WO2014137747A1 (en) 2013-03-05 2014-02-27 Parallel configuration of a reconfigurable instruction cell array

Publications (2)

Publication Number Publication Date
JP2016514421A true JP2016514421A (ja) 2016-05-19
JP6039113B2 JP6039113B2 (ja) 2016-12-07

Family

ID=50349862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015561423A Expired - Fee Related JP6039113B2 (ja) 2013-03-05 2014-02-27 再構成可能命令セルアレイの並列構成

Country Status (6)

Country Link
US (1) US8860457B2 (ja)
EP (1) EP2965221B1 (ja)
JP (1) JP6039113B2 (ja)
KR (1) KR101643302B1 (ja)
CN (1) CN105009106B (ja)
WO (1) WO2014137747A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI576801B (zh) * 2015-06-25 2017-04-01 群創光電股份有限公司 影像顯示系統與閘極驅動電路
US9576625B1 (en) * 2015-10-08 2017-02-21 Altera Corporation Register initialization using multi-pass configuration
CN114168525B (zh) * 2017-03-14 2023-12-19 珠海市芯动力科技有限公司 可重构并行处理

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008539485A (ja) * 2005-04-28 2008-11-13 ザ ユニバーシティ コート オブ ザ ユニバーシティ オブ エディンバラ 再構成可能命令セル・アレイ
WO2009096482A1 (ja) * 2008-01-31 2009-08-06 Ipflex Inc. 再構成可能なデバイス

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9223226D0 (en) * 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US5996043A (en) * 1997-06-13 1999-11-30 Micron Technology, Inc. Two step memory device command buffer apparatus and method and memory devices and computer systems using same
EP1233517B1 (en) 2001-02-09 2012-04-18 Sicronic Remote KG, LLC A system for rapid configuration of a programmable logic device
TW589825B (en) 2001-07-02 2004-06-01 Globespan Virata Corp Communications system using rings architecture
JP4490392B2 (ja) 2006-05-30 2010-06-23 富士通マイクロエレクトロニクス株式会社 初期化回路を自動構築するリコンフィグ可能な集積回路装置
CN101496283A (zh) 2006-07-27 2009-07-29 松下电器产业株式会社 半导体集成电路、程序变换装置以及映射装置
CN101971500A (zh) * 2007-11-13 2011-02-09 松下电器产业株式会社 可编程设备、设备控制方法及信息处理系统
US7551508B2 (en) * 2007-11-16 2009-06-23 International Business Machines Corporation Energy efficient storage device using per-element selectable power supply voltages
US8525548B2 (en) 2008-08-04 2013-09-03 Tabula, Inc. Trigger circuits and event counters for an IC
WO2011066650A1 (en) 2009-12-01 2011-06-09 Queen's University At Kingston Method and system for a run-time reconfigurable computer architecture
US10078620B2 (en) 2011-05-27 2018-09-18 New York University Runtime reconfigurable dataflow processor with multi-port memory access module
JP5653856B2 (ja) * 2011-07-21 2015-01-14 ルネサスエレクトロニクス株式会社 半導体装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008539485A (ja) * 2005-04-28 2008-11-13 ザ ユニバーシティ コート オブ ザ ユニバーシティ オブ エディンバラ 再構成可能命令セル・アレイ
WO2009096482A1 (ja) * 2008-01-31 2009-08-06 Ipflex Inc. 再構成可能なデバイス

Also Published As

Publication number Publication date
KR101643302B1 (ko) 2016-07-27
EP2965221A1 (en) 2016-01-13
US20140258678A1 (en) 2014-09-11
JP6039113B2 (ja) 2016-12-07
CN105009106A (zh) 2015-10-28
US8860457B2 (en) 2014-10-14
CN105009106B (zh) 2017-03-15
WO2014137747A1 (en) 2014-09-12
EP2965221B1 (en) 2017-10-04
KR20150119477A (ko) 2015-10-23

Similar Documents

Publication Publication Date Title
US9503095B2 (en) Space-multiplexing DRAM-based reconfigurable logic
US8612726B2 (en) Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type
US10693466B2 (en) Self-adaptive chip and configuration method
US9513908B2 (en) Streaming memory transpose operations
US9081060B2 (en) Buffer testing for reconfigurable instruction cell arrays
US9799379B2 (en) Hold time aware register file module and method therefor
JP6039113B2 (ja) 再構成可能命令セルアレイの並列構成
US8402251B2 (en) Selecting configuration memory address for execution circuit conditionally based on input address or computation result of preceding execution circuit as address
US11531638B2 (en) Reconfigurable circuit array using instructions including a fetch configuration data portion and a transfer configuration data portion
JP6046319B1 (ja) 再構成可能命令セルアレイのシリアル構成
US9465758B2 (en) Reconfigurable instruction cell array with conditional channel routing and in-place functionality
KR20080049727A (ko) 별도의 직렬 모듈을 지닌 프로세서 어레이
KR20140021636A (ko) 설정가능한 논리 셀들
CN117009287A (zh) 一种于弹性队列存储的动态可重构处理器
JP2013164862A (ja) 半導体装置
JP2011242995A (ja) 半導体装置

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160712

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: 20161004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161102

R150 Certificate of patent or registration of utility model

Ref document number: 6039113

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees