説明

リコンフィグ可能な集積回路装置

【課題】柔軟性の高く無駄なクロックサイクルが発生しにくいプロセッサエレメントを有するリコンフィグ可能な集積回路装置を提供する。
【解決手段】コンフィグレーションデータに基づいて任意の演算状態を動的に変更するリコンフィグ可能な集積回路装置において,入力端子INと,出力端子OUTと,並列に設けられクロックに同期してそれぞれの演算処理を行う複数の演算ユニットAUと,入力端子と出力端子と複数の演算ユニットの入力,出力ポートとを任意の状態に接続するプロセッサ内ネットワークNW1,2とを有する複数のプロセッサエレメントと複数のプロセッサエレメント間を任意の状態に接続するプロセッサ間ネットワークとを有する。そして,コンフィグレーションデータに基づいて,プロセッサ内ネットワークが所望の接続状態に再構築可能であり,さらに,プロセッサ間ネットワークが所望の接続状態に再構築可能である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,リコンフィグ可能な集積回路装置に関し,特に,リコンフィグ可能な集積回路装置内に設けられるプロセッサエレメントの新規な構成に関する。
【背景技術】
【0002】
リコンフィグ可能な集積回路装置は,複数のプロセッサエレメントと,当該プロセッサエレメント間を接続するネットワークとを有する。そして,外部または内部のイベントに応答して,シーケンサがプロセッサエレメントとネットワークにコンフィグレーションデータを与え,当該コンフィグレーションデータに応じて,プロセッサエレメントとネットワークが任意の演算状態を構築する。
【0003】
従来の伝統的なプログラム可能なマイクロプロセッサは,メモリに記憶されている命令を順番に読み出し逐次的に処理する。このようにマイクロプロセッサは,1つのプロセッサで同時に実行できる命令は数個に限定されるため,処理能力に一定の限界がある。
【0004】
それに対して,近年提案されているダイナミックにリコンフィグ可能な集積回路装置では,加算器,乗算器,比較器などの機能を有するALUや,遅延回路,カウンタなどの組み合わせを有するプロセッサエレメントが複数個あらかじめ設けられ,さらにプロセッサエレメント間を接続するネットワークが設けられている。これら複数のプロセッサエレメントとネットワークが,シーケンサを有する状態遷移制御部からのコンフィグレーションデータによって所望の構成に再構築され,その演算状態で所定の演算が実行される。一つの演算状態におけるデータ処理が完了すると,別のコンフィグレーションデータにより別の演算状態が構築され,その状態で異なるデータ処理が行われる。
【0005】
このように,異なる演算状態を動的に構築することで,大量のデータに対するデータ処理能力を向上させ,全体の処理効率を高めることができる。かかるリコンフィグ可能な集積回路装置については,例えば特許文献1に記載されている。
【特許文献1】特開2001−312481号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記従来のリコンフィグ可能な集積回路装置では,プロセッサエレメントは,シリアルに接続された複数種類の演算ユニットを有し,その複数の演算ユニットがそれぞれクロックに同期して動作するパイプライン構成にされている。この演算ユニットの組み合わせは,例えば,乗算器と累積加算器の組み合わせなど利用頻度の高い組み合わせであり,それによりプロセッサエレメントの柔軟性と使用効率アップとを同時に満たすようにされている。
【0007】
そのため,プロセッサエレメントが,内部の組み合わせられた演算ユニットを全て使用するような演算状態に構築される場合は,使用効率がアップするとともに,組み合わせられた演算ユニットのパイプライン処理に無駄なクロックサイクルがなく高速処理が可能になる。
【0008】
しかしながら,プロセッサエレメント内の演算ユニットの組み合わせと全く異なる組み合わせの演算状態を構築する場合は,使用効率がダウンするとともに,パイプライン処理に無駄なクロックサイクルが発生し,高速処理ができなくなる。
【0009】
そこで,本発明の目的は,柔軟性の高く無駄なクロックサイクルが発生しにくいプロセッサエレメントを有するリコンフィグ可能な集積回路装置を提供することにある。
【課題を解決するための手段】
【0010】
上記の目的を達成するために,本発明の第1の側面によれば,コンフィグレーションデータに基づいて任意の演算状態を動的に変更するリコンフィグ可能な集積回路装置において,
入力端子と,出力端子と,並列に設けられクロックに同期してそれぞれの演算処理を行う複数の演算ユニットと,前記入力端子と前記出力端子と前記複数の演算ユニットの入力,出力ポートとを任意の状態に接続するプロセッサ内ネットワークとを有する複数のプロセッサエレメントと,
前記複数のプロセッサエレメント間を任意の状態に接続するプロセッサ間ネットワークとを有し,
コンフィグレーションデータに基づいて,前記プロセッサ内ネットワークが所望の接続状態に再構築可能であり,さらに,前記コンフィグレーションデータに基づいて,前記プロセッサ間ネットワークが所望の接続状態に再構築可能であることを特徴とする。
【0011】
上記の発明の第1の側面において,好ましい態様によれば,前記演算ユニットは,入力ポートと,入力ポートからの入力データに対して所定の演算処理を行う演算器と,前記演算器の出力をクロックに応答してラッチするレジスタと,前記レジスタのデータを出力する出力ポートとを有し,1つのクロックサイクルで前記所定の演算処理を行って演算結果を出力する。
【0012】
上記の発明の第1の側面において,別の好ましい態様によれば,前記プロセッサエレメントでは,前記コンフィグレーションデータに基づいて前記プロセッサ内ネットワークが構築されることで,内蔵される複数の演算ユニットが任意の順番でシリアルに接続可能である。
【0013】
上記の発明の第1の側面において,別の好ましい態様によれば,前記プロセッサエレメントでは,前記コンフィグレーションデータに基づいて前記プロセッサエレメント内ネットワークが構築されることで,内蔵される単一の演算ユニットが単一のクロックサイクルで演算処理結果を前記出力端子に出力する。
【発明の効果】
【0014】
上記の発明によれば,プロセッサエレメントが,複数の演算ユニットを並列に配置され,それら複数の演算ユニットがネットワークを介して任意の順番で再構築可能に接続されるので,または単一の演算ユニットだけで再構築可能に接続されるので,柔軟性が高く無駄なクロックサイクルが発生しにくい。
【発明を実施するための最良の形態】
【0015】
以下,図面にしたがって本発明の実施の形態について説明する。但し,本発明の技術的範囲はこれらの実施の形態に限定されず,特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【0016】
図1は,本実施の形態におけるリコンフィグ可能な集積回路装置の構成図である。リコンフィグ集積回路16は,内部メモリ18,19と,リコンフィグ可能なプロセッサエレメントアレイ30と,制御ユニット10とを有する。プロセッサエレメントアレイ30は,複数のプロセッサエレメントPEと,その間を接続するプロセッサエレメント間ネットワーク20とで構成される。また,制御ユニット10は,シーケンサ12とコンフィグレーションデータメモリ14とを有し,この制御ユニット10からのコンフィグレーションデータCDによって,プロセッサエレメントアレイ30は任意の演算状態に動的に構築される。したがって,コンフィグレーションデータCDを変更することで,プロセッサエレメントアレイ30は,異なる演算状態に再構築される。また,外部メモリE−MEMからは,例えばダイレクトメモリアクセスによりデータが内部メモリ18に転送され,そのデータに対してプロセッサエレメントアレイ30内に構築された演算状態が所定のデータ処理を行い,その処理結果が内部メモリ19から外部メモリE−MEMにデータが転送される。
【0017】
図2は,本実施の形態におけるプロセッサエレメントアレイ30の構成例を示す図である。演算プロセッサエレメントPE0〜PE3と,メモリプロセッサエレメントPE5と,それ以外の,例えば遅延回路のプロセッサエレメントPE4とは,プロセッサエレメント間ネットワーク20内のスイッチであるセレクタ41を介して接続可能に構成されている。各プロセッサエレメントPE1〜PE5は,コンフィグレーションデータCD0〜CD5に基づいて任意の構成に構築可能であり,また,ネットワーク20内のセレクタ41(41a,41b,41c)も,コンフィグレーションデータCDsに基づいて任意の接続状態に構築可能である。
【0018】
各プロセッサエレメントPEは,それぞれの演算処理を終了すると終了信号CS0〜CS3を出力する。この終了信号がイベントして制御ユニット10のシーケンサ12(図1参照)に与えられ,適切なタイミングで次のコンフィグレーションデータCDがプロセッサエレメントPE,プロセッサ間ネットワーク20に供給され,別の演算状態に構築される。
【0019】
セレクタ41は,図中左下に一例として示すとおり,コンフィグレーションデータCDを格納するレジスタ42と,レジスタ42のデータに応じて入力を選択するセレクタ回路43と,セレクタ回路43の出力をクロックCLKに同期してラッチするフリップフロップ44とを有する。したがって,セレクタ41は,コンフィグレーションCDに応じて,任意の入力を選択して出力する。また,ネットワーク20は,入力ユニット22及び出力ユニット24とプロセッサエレメントとの間もセレクタにより任意の状態に接続する。
【0020】
図3は,一般的なプロセッサエレメントの問題点を説明するための図である。一般にプロセッサエレメントは,使用頻度の高い演算ユニットの組み合わせで構成される。図3には,その一例として,シフト・マスク演算ユニットAU11と,乗算演算ユニットAU12と累積加算演算ユニットAU13とをシリアルに接続したMAC(Multiplier Accumulate)プロセッサエレメントMAC−PEと,シフト・マスク演算ユニットAU11とALU演算ユニットAU14とをシリアルに接続したALUプロセッサエレメントALU−PEとが示されている。また,遅延プロセッサエレメントDEL−PEは,シリアルに接続された複数のレジスタRegを有する。
【0021】
MACプロセッサエレメントMAC−PEを構成するシフト・マスク演算ユニットAU11は,入力データのビットをシフトするシフト回路とその一部のビットをマスクするマスク回路とからなるシフト・マスク回路(shift/mask)と,クロックCLKに応答してシフト・マスク回路の出力をラッチするレジスタRegとを,2組有する。また,乗算演算ユニットAU12は,2つの入力データを乗算する乗算器MULとクロックCLKに同期して乗算器の出力をラッチするレジスタRegとを有する。そして,累積加算演算ユニットAU13は,入力データとレジスタ内の累積データとを加算する累積加算器ACCと,2つのレジスタRegとを有する。また,ALUプロセッサエレメントALU−PEを構成するALU演算ユニットALUは,加算,減算,論理演算を行うALUと,レジスタRegとを有する。
【0022】
上記の各演算ユニット内のシフト・マスク回路,乗算器MUL,累積加算器ACC,及びALUは,図示しないコンフィグレーションデータにより所望の回路に設定される。例えば,シフト・マスク回路では,シフト方向やシフト量,マスク位置などが設定されて,所望のシフト機能またはマスク機能を有する演算ユニットに構築される。ただし,シリアル接続は固定的である。
【0023】
図3には,MACプロセッサエレメントMAC−PEとALUプロセッサエレメントALU−PEと遅延プロセッサエレメントDEL−PEとにより,入力a,b,cに対してa*b+cの演算を行うように構築された演算回路が示されている。MACプロセッサエレメントMAC−PEにて,入力a,bが,シフト・マスク演算ユニットAU11を何ら処理されることなく通過して,乗算演算ユニットAU12で乗算(a*b)され,累積加算演算ユニットAU13をそのまま通過して出力される。したがって,乗算結果が出力されるまで3クロックサイクルのレイテンシを必要とする。
【0024】
一方,遅延プロセッサエレメントDEL−PEにおいて,入力cが3クロックサイクル遅延され出力される。この3クロックサイクルの遅延により,乗算結果a*bと入力cとが,同じタイミングでALUプロセッサエレメントALU−PEに入力される。そこのプロセッサエレメントでは,入力データがシフト・マスク演算ユニットAU11を何ら処理されることなく通過してALU演算ユニットAU14に供給され,両入力データが加算され,その加算結果が出力される。つまり,2クロックサイクルのレイテンシで,加算結果(a*b+c)が出力される。
【0025】
つまり,MACプロセッサエレメントMAC−PEでは,MUL演算ユニットAU12のみが使用され,シフト・マスク演算ユニットAU11とALU演算ユニットAU14は,何ら演算処理することなくデータを通過させるだけである。しかし,それらの3つの演算ユニットがシリアルに接続されているので,このMACプロセッサエレメントでは3クロックサイクルのレイテンシ後に入力データa,bに対する演算結果が出力される。また,ALUプロセッサエレメントALU−PEでは,ALU演算ユニットのみが使用され,シフト・マスク演算ユニットAU11は,何ら演算処理することなくデータを通過させるだけである。よって,ALUプロセッサエレメントでは,2クロックサイクルのレイテンシで演算結果(a*b+c)が出力される。
【0026】
その結果,入力データa,bの乗算をしてその乗算結果に入力データcを加算する演算処理に,5クロックサイクルのレイテンシが必要になり,演算処理の速度が遅くなる。また,プロセッサエレメントMAC−PEでは1つの演算ユニットAU12のみが使用され,プロセッサエレメントALU−PEでも1つの演算ユニットAU14のみが使用されるだけであり,回路の使用効率が低くなる。
【0027】
図4は,一般的なプロセッサエレメントの問題点を説明するための図である。図4には,シフト・マスク演算ユニットAU11と,乗算演算ユニットAU12と累積加算演算ユニットAU13とをシリアルに接続したMACプロセッサエレメントMAC−PEが2組使用されている。そして,入力データa,bを乗算した後に,シフト処理とマスク処理とにより乗算結果の一部のデータを出力する演算状態を構築するために,第1のMACプロセッサエレメントMAC−PE1の乗算演算ユニットAU12と,第2のMACプロセッサエレメントMAC−PE2のシフト・マスク演算ユニットAU11とが使用される。それ以外の演算ユニットは単にデータを通過させるだけであり,何ら演算処理を行わない。
【0028】
この場合は,各MACプロセッサエレメントで3クロックサイクルのレイテンシが必要であり,合計で6クロックサイクルのレイテンシになってしまう。しかも,回路の使用効率も低くなっている。
【0029】
以上のように,シリアルに接続された複数の演算ユニットの組み合わせからなるプロセッサエレメントの場合は,その組み合わせの回路をそのまま使用するときは,回路の使用効率は高くレイテンシも遅くなることはないが,組み合わせの回路と異なる回路に構築する場合は,回路の使用効率は低下し,レイテンシも不必要に長くなる。
【0030】
図5は,本実施の形態におけるプロセッサエレメントの構成図である。このプロセッサエレメントPE1は,2つの入力端子INa,INbと,出力端子OUTと,並列に設けられクロックCLKに同期してそれぞれの演算処理を行う複数の演算ユニットAU1〜AUnと,入出力端子と演算ユニットAU1〜AUnの入出力ポートとを任意に接続するプロセッサエレメント内ネットワークNW1,NW2とを有する。プロセッサエレメント内ネットワークNW1,NW2は,図2に示したプロセッサエレメント間ネットワークと同様に複数のセレクタを有する。また,各演算ユニットは,演算器ALとクロックに同期して演算器ALの出力をラッチするレジスタRegとを有し,原則として1クロックサイクルのレイテンシで演算結果を出力する。ただし,演算器ALが複雑な処理を要する場合は複数クロックサイクルのレイテンシで演算結果を出力する場合もある。
【0031】
複数の演算ユニットは,異なる演算処理を行うユニットをそれぞれ1個ずつまたは複数個ずつ有する。この演算ユニットの種類と個数の組み合わせは,より回路の使用効率が高められるように選択される。後で具体例として説明するとおり,プロセッサエレメント内には,シフト・マスク演算ユニット,乗算演算ユニット,累積加算演算ユニット,ALU演算ユニット,丸め演算ユニットなどが,所定の組み合わせで所定の個数ずつ設けられる。
【0032】
図6は,本実施の形態におけるプロセッサエレメントのプロセッサエレメント内ネットワークの構成を示す図である。簡単のために3つの演算ユニットAU1〜AU3のみが示される。プロセッサエレメント内ネットワークは,第1及び第2のネットワークNW1,NW2で構成される。第1のネットワークNW1は,各演算ユニットAU1〜AU3の2入力ポートに対応するセレクタSEL11,12〜SEL31,32を有し,各セレクタは,2つの入力端子INa,INbと3つの出力ポートOP1〜OP3のいずれかを各2つの入力ポートIP1,IP2〜IP31,IP32に接続するスイッチである。また,第2のネットワークNW2は,3つの演算ユニットの出力ポートOP1〜OP3のいずれかを出力端子OUTに接続するスイッチである。
【0033】
図7は,本実施の形態における制御ユニットの構成図である。制御ユニットCONTは,シーケンサSEQとコンフィグレーションメモリCD−MEMと,コンフィグレーションデータCDをラッチするコンフィグレーションデータレジスタCD−REGとを有する。シーケンサSEQは,所定のタイミングでアドレスADDを出力してコンフィグレーションメモリCD−MEMからそのタイミングに対応するコンフィグレーションデータCDを出力させ,同時に,ストローブ信号STBを出力してコンフィグレーションデータレジスタCD−REGにそのコンフィグレーションデータCDをラッチさせる。このレジスタから,図6のプロセッサエレメント内ネットワークの各セレクタへのコンフィグレーションデータと,各演算ユニットAU1〜3へのコンフィグレーションデータとが出力される。
【0034】
図5,6の各演算ユニットAU1〜AUnは,コンフィグレーションデータCDにより任意の演算状態に構築され,プロセッサエレメント内ネットワークNW1,NW2も,コンフィグレーションデータCDにより任意の接続状態を構築される。たとえば,第1のプロセッサエレメント内ネットワークNW1は,セレクタSEL11〜SEL32により,入力端子INa,INbと任意の演算ユニットAU1〜AUnの入力ポートIPとを接続し,また,任意の演算ユニットの出力ポートOPと別の任意の演算ユニットの入力ポートIPとを接続し,所望の演算ユニットの組み合わせによる演算回路を構築する。
【0035】
このように,複数の演算ユニットAU1〜AUnを並列に設けておき,プロセッサエレメント内ネットワークNW1,NW2を任意の接続状態に構築することで,任意の組み合わせの演算ユニットをシリアルに接続したり,任意の演算ユニットのみを入出力端子に接続したりして,最短のレイテンシで演算結果を出力する最適化された回路を構築することができる。
【0036】
図8は,本実施の形態におけるプロセッサエレメントの一例を示す図である。このプロセッサエレメントPE2は,入力端子INa,INbと,出力端子OUTと,プロセッサエレメント内ネットワークNW1,NW2と,シフト・マスク演算ユニットAU11と,乗算演算ユニットAU12と,ALU演算ユニットAU14と,丸め演算ユニットAU15とを有する。この4つの演算ユニットAUが並列に設けられ,プロセッサエレメント内ネットワークNW1,NW2により,入力端子INa,INbや任意の演算ユニットの出力ポートOPが任意の演算ユニットの入力ポートIPに接続され,出力端子OUTが任意演算ユニットの出力ポートOPに接続される。なお,丸め演算ユニットAU15は,下位ビットを四捨五入する丸め処理器ROUNDとその出力をラッチするレジスタRegとを有する。
【0037】
図9は,本実施の形態におけるプロセッサエレメントの別の例を示す図である。このプロセッサエレメントPE3は,入力端子INa,INbと,出力端子OUTと,プロセッサエレメント内ネットワークNW1,NW2と,シフト・マスク演算ユニットAU11と,乗算演算ユニットAU12と,累積加算演算ユニットAU13と,丸め演算ユニットAU15とを有する。この4つの演算ユニットAUも並列に設けられ,プロセッサエレメント内ネットワークNW1,NW2により,入力端子INa,INbや任意の演算ユニットの出力ポートが任意の演算ユニットの入力ポートに接続され,出力端子OUTが任意演算ユニットの出力ポートに接続される。
【0038】
図10は,本実施の形態におけるプロセッサエレメントの別の例を示す図である。このプロセッサエレメントPE4は,入力端子INa,INbと,出力端子OUTと,プロセッサエレメント内ネットワークNW1,NW2と,シフト・マスク演算ユニットAU11と,乗算演算ユニットAU12と,累積加算演算ユニットAU13とを有する。この3つの演算ユニットAUも並列に設けられ,プロセッサエレメント内ネットワークNW1,NW2により,入力端子INa,INbや任意の演算ユニットの出力ポートが任意の演算ユニットの入力ポートに接続され,出力端子OUTが任意演算ユニットの出力ポートに接続される。
【0039】
図11は,本実施の形態におけるプロセッサエレメントの別の例を示す図である。このプロセッサエレメントPE5は,入力端子INa,INbと,出力端子OUTと,プロセッサエレメント内ネットワークNW1,NW2と,シフト・マスク演算ユニットAU11と,ALU演算ユニットAU14とを有する。この3つの演算ユニットAUは並列に設けられ,プロセッサエレメント内ネットワークNW1,NW2により接続される。
【0040】
図12は,本実施の形態におけるプロセッサエレメントの別の例を示す図である。このプロセッサエレメントPE6は,入力端子INa,INbと,出力端子OUTと,プロセッサエレメント内ネットワークNW1,NW2と,シフト・マスク演算ユニットAU11と,乗算演算ユニットAU12とを有する。この2つの演算ユニットAUは並列に設けられ,プロセッサエレメント内ネットワークNW1,NW2により接続される。
【0041】
図13は,本実施の形態におけるプロセッサエレメントの別の例を示す図である。このプロセッサエレメントPE7は,入力端子INa,INbと,出力端子OUTと,プロセッサエレメント内ネットワークNW1,NW2と,複数個のシフト・マスク演算ユニットAU11と,複数個の乗算演算ユニットAU12と,複数個の累積加算演算ユニットAU13とを有する。これらそれぞれ複数個設けられた3種類の演算ユニットAUは並列に設けられ,プロセッサエレメント内ネットワークNW1,NW2により,入力端子INa,INbや任意の演算ユニットの出力ポートが任意の演算ユニットの入力ポートに接続され,出力端子OUTが任意演算ユニットの出力ポートに接続される。図13の例とは異なる演算ユニットAUの組み合わせでそれぞれ複数個ずつ設けた組み合わせにしても良い。
【0042】
以上,本実施の形態におけるプロセッサエレメントとして,典型的な演算ユニットの組み合わせ例を説明したが,上記以外の組み合わせにしても良いし,それ以外の演算ユニットと組み合わせても良い。いずれの場合も,演算ユニットが並列に設けられ,プロセッサエレメント内ネットワークにより任意の組み合わせ且つ任意の順番でシリアルに接続することができる。あるいは,任意の演算ユニットのみを入力端子と出力端子に接続することもできる。
【0043】
図14は,本実施の形態におけるプロセッサエレメントの接続状態の一例を示す図である。この例では,図10に示したプロセッサエレメントPE4により,図3,4に示したMACプロセッサエレメントを構築している。つまり,第1のネットワークNW1は,入力端子INa,INbをシフト・マスク演算ユニットAU11の入力ポートIP11,IP12に接続し,その出力ポートOP11,OP12を乗算演算ユニットAU12の入力ポートIP21,IP22に接続し,その出力ポートOP2を累積加算演算ユニット13の入力ポートIP3に接続し,第2のネットワークNW2がその累積加算演算ユニット13の出力ポートOP3を出力端子OUTに接続している。この接続は,前述したとおり,コンフィグレーションデータがネットワーク内のセレクタの選択入力を設定することで行われる。
【0044】
このように接続することで,並列に設けられた3つの演算ユニットAU11,AU12,AU13がシリアルに接続された構成に構築される。そして,各演算ユニットAU11,AU12,AU13は,クロックCLKに同期して1クロックサイクルのレイテンシで演算結果を出力するので,3つの演算ユニットをシリアルに接続することで,3クロックサイクルのレイテンシで積和演算結果を出力する。したがって,図3,4に示したMACプロセッサエレメントと同じ構成を実現することが出来る。
【0045】
図15は,本実施の形態におけるプロセッサエレメントの接続状態の別の例を示す図である。この例では,図10のプロセッサエレメントPE4と図11のプロセッサエレメントPE5とを利用して,図3と同じ演算(a*b+c)を行う回路を構築している。つまり,プロセッサエレメントPE4では,入力a,bが第1のネットワークNW1内のセレクタにより乗算演算ユニットAU12の入力ポートIP21,IP22に接続され,その出力ポートOP2が第2のネットワークNW2内のセレクタにより出力端子OUT1に接続される。さらに,その出力端子OUT1が,プロセッサエレメントPE5の入力端子INaに接続される。また,入力cは,遅延プロセッサエレメントDEL−PEのレジスタで1クロックサイクル遅延されて,プロセッサエレメントPE5の入力端子INbに供給される。このプロセッサエレメントPE5では,入力端子INa,INbが,第1のネットワークNW1内のセレクタによりALU演算ユニットAU14の入力ポートIP41,IP42に接続され,その出力ポートOP4が第2のネットワークNW2内のセレクタにより出力端子OUT2に接続される。
【0046】
このように接続することで,プロセッサエレメントPE4内の乗算演算ユニットAU12が1クロックサイクルのレイテンシで乗算結果(a*b)を出力し,プロセッサエレメントPE5内のALU演算ユニットAU14が1クロックサイクルのレイテンシで加算結果(a*b+c)を出力する。したがて,2クロックサイクルのレイテンシで,演算結果(a*b+c)が出力されるので,演算の遅延を少なくし高速化できる。
【0047】
図16は,本実施の形態におけるプロセッサエレメントの接続状態の別の例を示す図である。この例では,図10のプロセッサエレメントPE4のみを利用して,図4と同じ演算(a*b)とシフト・マスク処理を行う回路を構築している。プロセッサエレメントPE4内において,入力a,bは,第1のネットワークNW1内のセレクタにより乗算演算ユニットAU12の入力ポートIP21,IP22に接続され,その出力ポートOP2が,第1のネットワークNW2内のセレクタによりシフト・マスク演算ユニットAU11の入力ポートIP11に接続され,その出力ポートOP11が第2のネットワークNW2内のセレクタにより出力端子OUTに接続される。
【0048】
つまり,太枠で示した乗算演算ユニットAU12とシフト・マスク演算ユニットAU11とがシリアルに接続して構成され,2クロックサイクルのレイテンシで,乗算(a*b)とそれに対するマスク・シフト処理を行うことができ,図4に比べて遅延量を小さくし高速演算が可能になる。
【0049】
上記の3つの例以外にも,種々の演算ユニットの組み合わせによる接続状態が実現可能である。そして,その構築された演算回路では,最小のクロックサイクル数のレイテンシで演算結果を出力することができる。
【0050】
以上のように,本実施の形態では,プロセッサエレメント内に,複数の演算ユニットが並列に設けられ,入力端子とそれらユニットの入力ポートとが,またユニットの出力ポートと入力ポートとが,そしてユニットの出力ポートと出力端子とがプロセッサエレメント内ネットワークのセレクタにより任意の組み合わせに接続可能である。よって,プロセッサエレメント内ネットワークにより接続して構築された回路は,短いレイテンシで演算結果を出力することができる。また,プロセッサエレメント内の演算ユニットの種類を適宜選択することで,それらユニットの使用効率も向上させることができる。
【0051】
以上の実施の形態をまとめると,次の付記のとおりである。
【0052】
(付記1)コンフィグレーションデータに基づいて任意の演算状態を動的に変更するリコンフィグ可能な集積回路装置において,
入力端子と,出力端子と,並列に設けられクロックに同期してそれぞれの演算処理を行う複数の演算ユニットと,前記入力端子と前記出力端子と前記複数の演算ユニットの入力,出力ポートとを任意の状態に接続するプロセッサ内ネットワークとを有する複数のプロセッサエレメントと,
前記複数のプロセッサエレメント間を任意の状態に接続するプロセッサ間ネットワークとを有し,
コンフィグレーションデータに基づいて,前記プロセッサ内ネットワークが所望の接続状態に再構築可能であり,さらに,前記コンフィグレーションデータに基づいて,前記プロセッサ間ネットワークが所望の接続状態に再構築可能であることを特徴とするリコンフィグ可能な集積回路装置。
【0053】
(付記2)付記1において,
さらに,前記コンフィグレーションデータを格納するコンフィグレーションデータメモリと,前記プロセッサエレメントからの終了信号に応答して前記コンフィグレーションデータメモリから次の演算状態を構築するコンフィグレーションデータを出力させるシーケンサとを有するリコンフィグ可能な集積回路装置。
【0054】
(付記3)付記1において,
前記演算ユニットは,入力ポートと,入力ポートからの入力データに対して所定の演算処理を行う演算器と,前記演算器の出力をクロックに応答してラッチするレジスタと,前記レジスタのデータを出力する出力ポートとを有し,1つのクロックサイクルで前記所定の演算処理を行って演算結果を出力することを特徴とするリコンフィグ可能な集積回路装置。
【0055】
(付記4)付記3において,
前記演算器は,少なくとも,ビットシフトを行うシフト処理器,一部のビットをマスクするマスク処理器,乗算器,累積加算器,加算と減算と論理演算とを行うALU演算器,下位ビットを四捨五入する丸め処理器を含むグループのうち,いずれか複数の演算器の組み合わせを有することを特徴とするリコンフィグ可能な集積回路装置。
【0056】
(付記5)付記1において,
前記プロセッサエレメントでは,前記コンフィグレーションデータに基づいて前記プロセッサ内ネットワークが構築されることで,内蔵される複数の演算ユニットが任意の順番でシリアルに接続可能であることを特徴とするリコンフィグ可能な集積回路装置。
【0057】
(付記6)付記1において,
前記プロセッサエレメントでは,前記コンフィグレーションデータに基づいて前記プロセッサエレメント内ネットワークが構築されることで,内蔵される単一の演算ユニットが単一のクロックサイクルで演算処理結果を前記出力端子に出力することを特徴とするリコンフィグ可能な集積回路装置。
【0058】
(付記7)付記1において,
前記プロセッサエレメント内ネットワークは,前記入力端子と複数の演算ユニットの出力ポートのいずれかを対応する演算ユニットの入力ポートに接続する第1のセレクタを有し,当該第1のセレクタは,各演算ユニットの入力ポートに対応して設けられることを特徴とするリコンフィグ可能な集積回路装置。
【0059】
(付記8)付記7において,
前記プロセッサエレメント内ネットワークは,さらに,前記複数の演算ユニットの出力ポートのいずれかを前記出力端子に接続する第2のセレクタを有することを特徴とするリコンフィグ可能な集積回路装置。
【0060】
(付記9)コンフィグレーションデータに基づいて任意の演算状態を動的に変更するリコンフィグ可能な集積回路装置において,
入力端子と,出力端子と,並列に設けられクロックに同期してそれぞれの演算処理を行う複数の演算ユニットと,前記入力端子と前記出力端子と前記複数の演算ユニットの入力,出力ポートとを任意の状態に接続するプロセッサ内ネットワークとを有する複数のプロセッサエレメントと,
前記複数のプロセッサエレメント間を任意の状態に接続するプロセッサ間ネットワークと,
前記プロセッサエレメント内ネットワーク及びプロセッサエレメント間ネットワークにコンフィグレーションデータを供給する制御ユニットとを有し,
コンフィグレーションデータに基づいて,前記プロセッサ内ネットワークが所望の接続状態に再構築可能であり,さらに,前記コンフィグレーションデータに基づいて,前記プロセッサ間ネットワークが所望の接続状態に再構築可能であり,
前記演算ユニットは,それぞれ1クロックサイクルのレイテンシで対応する演算処理結果を出力することを特徴とするリコンフィグ可能な集積回路装置。
【図面の簡単な説明】
【0061】
【図1】本実施の形態におけるリコンフィグ可能な集積回路装置の構成図である。
【図2】本実施の形態におけるプロセッサエレメントアレイ30の構成例を示す図である。
【図3】一般的なプロセッサエレメントの問題点を説明するための図である。
【図4】一般的なプロセッサエレメントの問題点を説明するための図である。
【図5】本実施の形態におけるプロセッサエレメントの構成図である。
【図6】本実施の形態におけるプロセッサエレメントのプロセッサエレメント内ネットワークの構成を示す図である。
【図7】本実施の形態における制御ユニットの構成図である。
【図8】本実施の形態におけるプロセッサエレメントの一例を示す図である。
【図9】本実施の形態におけるプロセッサエレメントの別の例を示す図である。
【図10】本実施の形態におけるプロセッサエレメントの別の例を示す図である。
【図11】本実施の形態におけるプロセッサエレメントの別の例を示す図である。
【図12】本実施の形態におけるプロセッサエレメントの別の例を示す図である。
【図13】本実施の形態におけるプロセッサエレメントの別の例を示す図である。
【図14】本実施の形態におけるプロセッサエレメントの接続状態の一例を示す図である。
【図15】本実施の形態におけるプロセッサエレメントの接続状態の別の例を示す図である。
【図16】本実施の形態におけるプロセッサエレメントの接続状態の別の例を示す図である。
【符号の説明】
【0062】
PE:プロセッサエレメント AU:演算ユニット
NW1,NW2:プロセッサエレメント内ネットワーク
40:プロセッサエレメント間ネットワーク
SEL:セレクタ CLK:クロック
IP:入力ポート OP:出力ポート
INa,INb:入力端子 OUT:出力端子

【特許請求の範囲】
【請求項1】
コンフィグレーションデータに基づいて任意の演算状態を動的に変更するリコンフィグ可能な集積回路装置において,
入力端子と,出力端子と,並列に設けられクロックに同期してそれぞれの演算処理を行う複数の演算ユニットと,前記入力端子と前記出力端子と前記複数の演算ユニットの入力,出力ポートとを任意の状態に接続するプロセッサ内ネットワークとを有する複数のプロセッサエレメントと,
前記複数のプロセッサエレメント間を任意の状態に接続するプロセッサ間ネットワークとを有し,
コンフィグレーションデータに基づいて,前記プロセッサ内ネットワークが所望の接続状態に再構築可能であり,さらに,前記コンフィグレーションデータに基づいて,前記プロセッサ間ネットワークが所望の接続状態に再構築可能であることを特徴とするリコンフィグ可能な集積回路装置。
【請求項2】
請求項1において,
さらに,前記コンフィグレーションデータを格納するコンフィグレーションデータメモリと,前記プロセッサエレメントからの終了信号に応答して前記コンフィグレーションデータメモリから次の演算状態を構築するコンフィグレーションデータを出力させるシーケンサとを有するリコンフィグ可能な集積回路装置。
【請求項3】
請求項1において,
前記演算ユニットは,入力ポートと,入力ポートからの入力データに対して所定の演算処理を行う演算器と,前記演算器の出力をクロックに応答してラッチするレジスタと,前記レジスタのデータを出力する出力ポートとを有し,1つのクロックサイクルで前記所定の演算処理を行って演算結果を出力することを特徴とするリコンフィグ可能な集積回路装置。
【請求項4】
請求項3において,
前記演算器は,少なくとも,ビットシフトを行うシフト処理器,一部のビットをマスクするマスク処理器,乗算器,累積加算器,加算と減算と論理演算とを行うALU演算器,下位ビットを四捨五入する丸め処理器を含むグループのうち,いずれか複数の演算器の組み合わせを有することを特徴とするリコンフィグ可能な集積回路装置。
【請求項5】
請求項1において,
前記プロセッサエレメントでは,前記コンフィグレーションデータに基づいて前記プロセッサ内ネットワークが構築されることで,内蔵される複数の演算ユニットが任意の順番でシリアルに接続可能であることを特徴とするリコンフィグ可能な集積回路装置。
【請求項6】
請求項1において,
前記プロセッサエレメントでは,前記コンフィグレーションデータに基づいて前記プロセッサエレメント内ネットワークが構築されることで,内蔵される単一の演算ユニットが単一のクロックサイクルで演算処理結果を前記出力端子に出力することを特徴とするリコンフィグ可能な集積回路装置。
【請求項7】
コンフィグレーションデータに基づいて任意の演算状態を動的に変更するリコンフィグ可能な集積回路装置において,
入力端子と,出力端子と,並列に設けられクロックに同期してそれぞれの演算処理を行う複数の演算ユニットと,前記入力端子と前記出力端子と前記複数の演算ユニットの入力,出力ポートとを任意の状態に接続するプロセッサ内ネットワークとを有する複数のプロセッサエレメントと,
前記複数のプロセッサエレメント間を任意の状態に接続するプロセッサ間ネットワークと,
前記プロセッサエレメント内ネットワーク及びプロセッサエレメント間ネットワークにコンフィグレーションデータを供給する制御ユニットとを有し,
コンフィグレーションデータに基づいて,前記プロセッサ内ネットワークが所望の接続状態に再構築可能であり,さらに,前記コンフィグレーションデータに基づいて,前記プロセッサ間ネットワークが所望の接続状態に再構築可能であり,
前記演算ユニットは,それぞれ1クロックサイクルのレイテンシで対応する演算処理結果を出力することを特徴とするリコンフィグ可能な集積回路装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2007−94847(P2007−94847A)
【公開日】平成19年4月12日(2007.4.12)
【国際特許分類】
【出願番号】特願2005−284725(P2005−284725)
【出願日】平成17年9月29日(2005.9.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】