説明

リコンフィギュラブル回路

【課題】本発明は、効率的且つ柔軟にイミディエート値をプロセッサエレメントに供給することが可能なリコンフィギュラブル回路を提供することを目的とする。
【解決手段】リコンフィギュラブル回路は、複数のプロセッサエレメントと、複数のプロセッサエレメントの演算データ入力ポートと出力ポートとに結合されるデータネットワークと、第1のプロセッサエレメントのコンフィギュレーションデータ入力ポートにコンフィギュレーション経路を介して結合されるコンフィギュレーションメモリと、前記データネットワークとは独立なネットワークであり、第2のプロセッサエレメントのコンフィギュレーションデータ入力ポートに結合されるイミディエート値ネットワークとを含み、第3のプロセッサエレメントの内部レジスタが、内部レジスタの格納データをイミディエート値ネットワークに出力可能なように、イミディエート値ネットワークに結合される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に電子回路に関し、詳しくは動的に再構成可能なリコンフィギュラブル回路に関する。
【背景技術】
【0002】
プロセッサエレメントを用いたリコンフィギュラブル回路(動的再構成可能型回路)は、複数のプロセッサエレメントをアレイ状に配列し、縦横に配置したデータネットワークでこれらプロセッサエレメントを接続した構成となっている。プロセッサエレメントの演算機能及びネットワークを介したプロセッサエレメント間の接続関係を、ソフトウェアにより再構成可能に設定する構成となっている。プロセッサエレメントアレイ部の周辺には、プロセッサエレメントアレイ部に関するコンフィギュレーションデータを格納するコンフィギュレーションメモリや、動的再構成の切替えを制御する制御部等が設けられる。
【0003】
上記の構成を有するリコンフィギュラブル回路では、再構成可能な構造の基本要素はプロセッサエレメントであり、単一ゲート程度を基本要素とするFPGA(Field Programmable Gate Array)と比較すると、格段に大きな粒度(変更可能な単位の大きさ)になっている。またプロセッサエレメントをアレイ上に並べることにより、並列に演算を実行することが可能となり、複素演算や積和演算等の重い演算処理を高速に実行することができる。
【0004】
コンフィギュラブル回路のプロセッサエレメントにイミディエート値(プログラム中で指定されている固定の値)を渡す場合、2つの異なる方法がある。第1の方法では、データネットワークに接続されたデータレジスタにイミディエート値を格納しておき、データレジスタからデータネットワークを介してプロセッサエレメントのデータ入力ポートにイミディエート値を供給する。第2の方法では、コンフィギュレーションメモリに格納されたコンフィギュレーションデータの一部としてイミディエート値を定義して設定しておき、コンフィギュレーションメモリからプロセッサエレメントのコンフィギュレーションデータ入力ポートにイミディエート値を供給する。
【0005】
上記第1の方法では、イミディエート値をプロセッサエレメントに供給するためにデータネットワークを使用する。データネットワークを介して相互接続できるプロセッサエレメント間の接続数には、データネットワークの構成に応じた上限があるが、イミディエート値を渡すためにデータネットワークの一部を使用してしまうと、プロセッサエレメント間の接続数の上限が低下してしまう。即ち、データネットワークのリソース消費により可変接続性能が低下し、プロセッサエレメント間のデータ授受が影響を受ける。場合によっては、必要なデータの受渡しができない可能性がある。
【0006】
また上記第2の方法では、コンフィギュレーションデータ中の各イミディエート値の定義・設定は、各プロセッサエレメント毎になされる。従って、複数のプロセッサエレメントが同一のイミディエート値を使用する場合であっても、これら複数のプロセッサエレメントの数分、イミディエート値の定義・設定をコンフィギュレーションデータ中で繰り返す必要がある。またコンフィギュレーションデータ中に設定したイミディエート値は固定であり、そのコンフィギュレーションデータに従ってリコンフィギュラブル回路が動作している間はイミディエート値の内容を変更することができない。
【特許文献1】特開2005−277673号公報
【特許文献2】特開2005−275455号公報
【特許文献3】特開2004−221996号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
以上を鑑みて本発明は、効率的且つ柔軟にイミディエート値をプロセッサエレメントに供給することが可能なリコンフィギュラブル回路を提供することを目的とする。
【課題を解決するための手段】
【0008】
リコンフィギュラブル回路は、演算データ入力ポートと、コンフィギュレーションデータ入力ポートと、出力ポートとを各々が備えた複数のプロセッサエレメントと、該複数のプロセッサエレメントの該演算データ入力ポートと該出力ポートとに結合されるデータネットワークと、該複数のプロセッサエレメントのうちの少なくとも1つの第1のプロセッサエレメントの該コンフィギュレーションデータ入力ポートにコンフィギュレーション経路を介して結合されるコンフィギュレーションメモリと、前記データネットワークとは独立なネットワークであり、該複数のプロセッサエレメントのうちの少なくとも1つの第2のプロセッサエレメントの該コンフィギュレーションデータ入力ポートに結合されるイミディエート値ネットワークとを含み、該複数のプロセッサエレメントのうちの少なくとも1つの第3のプロセッサエレメントの内部レジスタが、該内部レジスタの格納データを該イミディエート値ネットワークに出力可能なように、該イミディエート値ネットワークに結合されることを特徴とする。
【発明の効果】
【0009】
本発明の少なくとも1つの実施例によれば、データネットワークとは独立のイミディエート値ネットワークを用いてイミディエート値の受け渡しを行なうので、データネットワークによりイミディエート値を受け渡す構成と比較して、データネットワークによるプロセッサエレメント間の相互接続能力を向上させることができる。またリコンフィギュラブル回路の動作中であっても、定数等のイミディエート値を書き替えることにより異なる定数演算が可能となり、柔軟な演算処理を実現することができる。またコンフィギュレーションデータの一部としてイミディエート値を定義・設定する構成と比較して、コンフィギュレーションメモリの必要容量を減らすことが可能であり、回路面積を削減することができる。
【発明を実施するための最良の形態】
【0010】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0011】
図1は、本発明の実施例であるリコンフィギュラブル回路の構成の一例を示す図である。図1のリコンフィギュラブル回路10は、演算データ入力ポート21及び22と、コンフィギュレーションデータ入力ポート23と、出力ポート24とを各々が備えた複数のプロセッサエレメント(PE)11−1乃至11−12と、複数のプロセッサエレメント11−1乃至11−12の演算データ入力ポート21及び22と出力ポート24とに結合されるデータネットワーク12と、複数のプロセッサエレメント11−1乃至11−12のコンフィギュレーションデータ入力ポート23にコンフィギュレーション経路17を介して結合されるコンフィギュレーションメモリ13と、CPUインタフェースモジュール14と、内部CPUインタフェース15とを含む。リコンフィギュラブル回路10のCPUインタフェースモジュール14は、外部CPU16に接続されており、外部CPU16との信号のやり取りを行なう。CPUインタフェースモジュール14がCPUから受け取ったコマンド及びデータは、内部CPUインタフェース15を介してコンフィギュレーションメモリ13及び一部のプロセッサエレメントに供給される。
【0012】
プロセッサエレメント11−1乃至11−3は、各々が内部レジスタ30を含むデータレジスタエレメントである。またプロセッサエレメント11−4乃至11−6は、各々が内部メモリ31を含むデータメモリエレメントである。内部メモリ31は、アドレス指定により複数のデータを格納可能な記憶装置であるが、データ記憶という機能に着目すれば内部レジスタ30と本質的には同一のレジスタ装置である。以下の説明においては、特に断りがない限り、内部レジスタ30及び内部メモリ31を纏めて内部レジスタと呼ぶ。内部レジスタ30及び31は、内部CPUインタフェース15を介して外部CPU16からレジスタ内容を書き込み・読み出し可能に構成される。
【0013】
プロセッサエレメント11−7乃至11−12は、各々が演算処理ユニット25を含む演算処理エレメントである。演算処理ユニット25は、コンフィギュレーションデータ入力ポート23に入力されるコンフィギュレーションデータに応じて演算機能が設定され、設定された演算を実行するよう構成される。なお図1の例において、プロセッサエレメント11−1乃至11−12は3行×4列のマトリクス状に配置されるが、プロセッサエレメントの総数や行及び列の数は、例示された数に限定されるものではない。
【0014】
コンフィギュレーションメモリ13は、リコンフィギュラブル回路10のコンフィギュレーションを設定するためのコンフィギュレーションデータを記憶する。このコンフィギュレーションデータは、外部CPU16から、CPUインタフェースモジュール14及び内部CPUインタフェース15を介して、コンフィギュレーションメモリ13に格納される。コンフィギュレーションデータは、プロセッサエレメントの演算機能を設定するとともに、データネットワーク12を介したプロセッサエレメント11−1乃至11−12間の相互接続、即ちデータネットワーク12の結線状態を設定するよう機能する。本実施例のリコンフィギュラブル回路10では、後述するように、イミディエート値については専用のイミディエート値ネットワークを介して設定される。
【0015】
図2は、イミディエート値ネットワークを介してイミディエート値を設定する構成の一例を示す図である。図2において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。
【0016】
図2に示すように、イミディエート値ネットワーク40は、データネットワーク12とは独立なネットワークであり、複数のプロセッサエレメント11−7乃至11−12の1つであるプロセッサエレメント11のコンフィギュレーションデータ入力ポート23に結合される。また少なくとも1つのプロセッサエレメントの内部レジスタ30が、内部レジスタの格納データ(イミディエート値35)をイミディエート値ネットワーク40に出力可能なように、イミディエート値ネットワーク40に結合される。この格納データ(イミディエート値35)は、外部CPU16から内部CPUインタフェース15を介して内部レジスタ30に書き込まれる。従って、コンフィギュレーションメモリ13のコンフィギュレーションデータに従ってリコンフィギュラブル回路10が動作している最中であっても、外部CPU16により内部レジスタ30の内容を書き替えることができる。
【0017】
図2に示す例では、プロセッサエレメント11のコンフィギュレーションデータ入力ポート23は、コンフィギュレーション経路17とイミディエート値ネットワーク40との両方に結合される。この例のように、コンフィギュレーション経路17とイミディエート値ネットワーク40との両方に結合されるコンフィギュレーションデータ入力ポート23を有するプロセッサエレメント11は、コンフィギュレーションメモリ13からコンフィギュレーション経路17を介して供給されるデータにより演算機能を選択し、イミディエート値ネットワーク40から供給されるデータをイミディエート値として演算に使用する。即ち例えば、コンフィギュレーションデータ入力ポート23が40ビット構成であり、そのうちの32ビットが演算機能設定のためのデータであり、残りの8ビットがイミディエート値を指定するためのデータであるとする。このとき、上記32ビット分がコンフィギュレーション経路17に結合され、8ビット分がイミディエート値ネットワーク40に結合される。例えば、コンフィギュレーション経路17を介したコンフィギュレーションメモリ13からの32ビットが、演算データ入力ポート21からの入力データAとイミディエート値との加算を指定し、イミディエート値ネットワーク40からの8ビットが、“00101101”であるとする。この場合、プロセッサエレメント11は、A+“00101101”を演算して、演算結果を出力ポート24から出力することになる。
【0018】
プロセッサエレメント11は、演算データ入力ポート21及び22、コンフィギュレーションデータ入力ポート23、出力ポート24、演算処理ユニット25、及びセレクタ26を含む。演算処理ユニット25は、例えば加算、減算、積算等の複数の論理演算を実行可能に構成され、コンフィギュレーションデータに応じてコンフィギュレーションデータ入力ポート23から供給される演算命令に基づいて、何れかの論理演算を選択的に実行する。セレクタ26は、演算データ入力ポート22がデータネットワーク12から受け取る入力データと、コンフィギュレーションデータ入力ポート23がイミディエート値ネットワーク40から受け取るイミディエート値との何れか一方を選択し、選択されたデータを演算処理ユニット25に供給する。演算処理ユニット25は、演算データ入力ポート21から供給されるデータとセレクタ26から供給されるデータとを入力データとして、コンフィギュレーションデータ入力ポート23からの演算命令により指定された演算を実行する。なお図1に示すプロセッサエレメント11−7乃至11−12の各々は、図2に示すプロセッサエレメント11と同様の構成を有してよい。
【0019】
図3は、イミディエート値ネットワーク40の接続関係の一例を示す図である。図3において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。
【0020】
図3の例においてイミディエート値ネットワーク40は、複数のプロセッサエレメント11−7乃至11−9(ALU0乃至ALU2)のコンフィギュレーションデータ入力ポート23に結合される。またプロセッサエレメント11−1乃至11−3の内部レジスタ30が、内部レジスタの格納データ(イミディエート値)をイミディエート値ネットワーク40に出力可能なように、イミディエート値ネットワーク40に結合される。
【0021】
図3に示す例では、プロセッサエレメント11−1の内部レジスタ30がプロセッサエレメント11−7(ALU0)用のイミディエート値を格納し、プロセッサエレメント11−2の内部レジスタ30がプロセッサエレメント11−8(ALU1)用のイミディエート値を格納し、プロセッサエレメント11−3の内部レジスタ30がプロセッサエレメント11−9(ALU2)用のイミディエート値を格納する。これらイミディエート値は、外部CPU16から内部CPUインタフェース15を介して各内部レジスタ30に書き込まれる。従って、コンフィギュレーションメモリ13のコンフィギュレーションデータに従ってリコンフィギュラブル回路10が動作している最中であっても、外部CPU16により内部レジスタ30の内容を書き替えることができる。
【0022】
イミディエート値ネットワーク40はプロセッサエレメント間の相互接続を可変に構成される。具体的には、コンフィギュレーションメモリ13の格納データによりイミディエート値ネットワーク40の相互接続が設定可能なように構成される。図3に示す例では、プロセッサエレメント11−1の内部レジスタ30をプロセッサエレメント11−7のコンフィギュレーションデータ入力ポート23に結合し、プロセッサエレメント11−2の内部レジスタ30をプロセッサエレメント11−8のコンフィギュレーションデータ入力ポート23に結合し、プロセッサエレメント11−3の内部レジスタ30をプロセッサエレメント11−9のコンフィギュレーションデータ入力ポート23に結合するように、イミディエート値ネットワーク40の結合が設定される。
【0023】
なおイミディエート値ネットワーク40の結合の設定は、上記の例に限られるものではない。例えば、プロセッサエレメント11−1の内部レジスタ30を、3つのプロセッサエレメント11−7乃至11−9のコンフィギュレーションデータ入力ポート23に結合するように、イミディエート値ネットワーク40の結合を設定してもよい。この場合、3つのプロセッサエレメント11−7乃至11−9が、1つの内部レジスタ30の内容をイミディエート値として共有することになる。
【0024】
また図3の例では、プロセッサエレメント11−7乃至11−9のコンフィギュレーションデータ入力ポート23は、コンフィギュレーション経路17とイミディエート値ネットワーク40とのうちのイミディエート値ネットワーク40のみに結合される。この例のように、イミディエート値ネットワーク40のみに結合されるコンフィギュレーションデータ入力ポート23を有するプロセッサエレメント11−7乃至11−9は、イミディエート値ネットワーク40から供給される第1のデータにより演算機能を選択し、イミディエート値ネットワーク40から供給される第2のデータをイミディエート値として演算に使用する。即ち例えば、コンフィギュレーションデータ入力ポート23が40ビット構成であり、これら40ビット全てがイミディエート値ネットワーク40に結合されるとして、そのうちの32ビットが演算機能設定のための第1のデータであり、残りの8ビットがイミディエート値を指定するための第2のデータである。32ビットの第1のデータと8ビットの第2のデータとは、1つのプロセッサエレメントの内部レジスタ30に40ビットデータとして格納されてよい。また或いは、32ビットの第1のデータと8ビットの第2のデータとは、それぞれ別のプロセッサエレメントからイミディエート値ネットワーク40を介して1つのコンフィギュレーションデータ入力ポート23に供給されてもよい。コンフィギュレーションデータ入力ポート23に供給される40ビットデータのうち、32ビットが演算データ入力ポート21からの入力データAとイミディエート値との加算を指定し、残りの8ビットが“00101101”であるとする。この場合、プロセッサエレメントは、A+“00101101”を演算して、演算結果を出力ポート24から出力することになる。
【0025】
図4は、レジスタをファイル化した場合のイミディエート値ネットワーク40の接続関係の一例を示す図である。図4の例においてイミディエート値ネットワーク40は、複数のプロセッサエレメント11−7〜11−9(ALU0乃至ALU2)及び11−11〜11−12(ALU3乃至ALU4)のコンフィギュレーションデータ入力ポート23に結合される。またプロセッサエレメント11−4の内部レジスタ31が、内部レジスタの格納データ(イミディエート値)をイミディエート値ネットワーク40に出力可能なように、イミディエート値ネットワーク40に結合される。
【0026】
図4に示す例では、プロセッサエレメント11−4の内部レジスタ31において複数のイミディエート値がファイル化されてそれぞれのアドレスに格納されている。この際、内部レジスタ(内部メモリ)31としては図1に示すようにRAM等を用いてよい。内部メモリ31において、第1のアドレスにはプロセッサエレメント11−7(ALU0)用のイミディエート値を格納し、第2のアドレスにはプロセッサエレメント11−8(ALU1)用のイミディエート値を格納し、第3のアドレスにはプロセッサエレメント11−9(ALU2)用のイミディエート値を格納する。これらイミディエート値は、外部CPU16から内部CPUインタフェース15を介して内部メモリ31のそれぞれのアドレスに書き込まれる。従って、コンフィギュレーションメモリ13のコンフィギュレーションデータに従ってリコンフィギュラブル回路10が動作している最中であっても、外部CPU16により内部メモリ31の内容を書き替えることができる。
【0027】
また図4の構成では、複数のイミディエート値がファイル化されて単一のプロセッサエレメント11−4に納められている。従って、図3の構成のように3つのイミディエート値を定義するために3つのプロセッサエレメントを用いる場合と比較して、イミディエート値格納のためのプロセッサエレメントの数を少なくすることができる。この結果、演算用のプロセッサエレメントの数を増やして演算処理性能を向上させることができる。
【0028】
イミディエート値ネットワーク40はプロセッサエレメント間の相互接続を可変に構成される。具体的には、コンフィギュレーションメモリ13の格納データによりイミディエート値ネットワーク40の相互接続が設定可能なように構成される。図4に示す例では、内部メモリ31の第1のアドレスのファイルのデータをプロセッサエレメント11−7のコンフィギュレーションデータ入力ポート23に結合し、内部メモリ31の第2のアドレスのファイルのデータをプロセッサエレメント11−8のコンフィギュレーションデータ入力ポート23に結合し、内部メモリ31の第3のアドレスのファイルのデータをプロセッサエレメント11−9のコンフィギュレーションデータ入力ポート23に結合するように、イミディエート値ネットワーク40の結合が設定される。
【0029】
なおイミディエート値ネットワーク40の結合の設定は、上記の例に限られるものではない。例えば、内部メモリ31の第1のアドレスのファイルのデータを、3つのプロセッサエレメント11−7乃至11−9のコンフィギュレーションデータ入力ポート23に結合するように、イミディエート値ネットワーク40の結合を設定してもよい。この場合、3つのプロセッサエレメント11−7乃至11−9が、内部メモリ31の第1のアドレスのデータをイミディエート値として共有することになる。
【0030】
また図4の例においても、図3の例と同様に、プロセッサエレメント11−7乃至11−9のコンフィギュレーションデータ入力ポート23は、コンフィギュレーション経路17とイミディエート値ネットワーク40とのうちのイミディエート値ネットワーク40のみに結合される。従って、プロセッサエレメント11−7乃至11−9は、イミディエート値ネットワーク40から供給される第1のデータにより演算機能を選択し、イミディエート値ネットワーク40から供給される第2のデータをイミディエート値として演算に使用する。また図4の例においては、プロセッサエレメント11−11及び11−12のコンフィギュレーションデータ入力ポート23は、コンフィギュレーション経路17と前記イミディエート値ネットワーク40とのうちのコンフィギュレーション経路17のみに結合されてよい。この場合、プロセッサエレメント11−11及び11−12はイミディエート値を用いない演算のみに専用に用いられることになる。また或いはプロセッサエレメント11−11及び11−12のコンフィギュレーションデータ入力ポート23は、図2に示したように、コンフィギュレーション経路17とイミディエート値ネットワーク40との両方に結合されてもよい。
【0031】
以下に、リコンフィギュラブル回路10による数式演算処理を、具体例を用いて説明する。この例における計算対象の数式演算処理は、Fn、Fn+1、Fn+2、・・・を演算フェーズとして、以下のように定義される。
【0032】
Fn:Σ1=(A*x)+y+z
Fn+1:Σ2=(B-x)+y+z
Fn+2:Σ3=x+(B*y)+z
Fn+3:Σ4=x+y+(C-z)
Fn+4:Σ5=x+y+(D+z)
Fn+5以降は、Σ1乃至Σ5の計算を繰り返すものとする。ここでA、B、C、及びDは定数であり、プロセッサエレメントにイミディエート値として格納される。x、y、及びzは入力データであり、データネットワーク12から適宜プロセッサエレメントに供給される。単純化するために、上記演算処理に現れる括弧付きの項をそれぞれ以下のように表記する。
【0033】
(A*x)=α1
(B-x)=α1’
(B*y)=α2
(C-z)=α3
(D+z)=α3’
とする。また更に単純化するために、入力データx、y、及びzに対する加算式を以下のように表記する。
【0034】
(y+z)=β1
(x+z)=β2
(x+y)=β3
以上の表記を用いると、各演算フェーズでの計算式は以下のように表現される。
【0035】
Fn=α1+β1
Fn+1=α1’+β1
Fn+2=α2+β2
Fn+3=α3+β3
Fn+4=α3’+β3
図5は、リコンフィギュラブル回路10により上記数式演算処理を実行する際のプロセッサエレメントの割り当てについて説明するための図である。図5において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。
【0036】
図5の構成において、プロセッサエレメント11−4(DR#0)の内部レジスタ(内部メモリ)31には、α1を演算する命令α1_INST、α1’を演算する命令α1’_INST、α3を演算する命令α3_INST、α3’を演算する命令α3’_INSTが格納される。ここでα1、α1’、α3、α3’は、上記の数式演算処理に現れる表記である。またプロセッサエレメント11−5(DR#1)の内部メモリ31には、イミディエート値として4つの定数A、B、C、及びDが格納される。これらのレジスタ値の格納は、外部CPU16から内部CPUインタフェース15を介してデータ書き込みすることにより行なわれる。
【0037】
図6は、リコンフィギュラブル回路10により上記数式演算処理を実行する際のデータフローを示す図である。データレジスタDR#1(図5のプロセッサエレメント11−5)から供給される定数A及びBと入力データxとに基づいて、プロセッサエレメントPE3(図5のプロセッサエレメント11−7)が、α1(=A*x)及びα1’(=B−x)を演算により求める。またデータレジスタDR#1から供給される定数Bと入力データyとに基づいて、プロセッサエレメントPE0(図5のプロセッサエレメント11−10)が、α2(=B*y)を演算により求める。また更に、データレジスタDR#1から供給される定数C及びDと入力データzとに基づいて、プロセッサエレメントPE4(図5のプロセッサエレメント11−8)が、α3(=C−z)及びα3’(=D+z)を演算により求める。
【0038】
プロセッサエレメントPE1(図5のプロセッサエレメント11−11)は、入力データx、y、及びzに基づいて、β1、β2、及びβ3を演算により求める。β1、β2、及びβ3は図6においてβとして示されている。最後に、プロセッサエレメントPE2(図5のプロセッサエレメント11−12)が、プロセッサエレメントPE3からのα1又はα1’、プロセッサエレメントPE0からのα2、プロセッサエレメントPE4からのα3又はα3’の何れか1つのαと、PE1からのβとを加算する。このようにしてプロセッサエレメントPE2は、上記のΣ1乃至Σ5を順次1つずつ出力する。
【0039】
上記説明した図6に示すデータフローの演算を実行するために、図5の構成において、コンフィギュレーションメモリ13に格納されるコンフィギュレーションデータに、プロセッサエレメント11−10(PE0)にα2を演算させるPE命令と、プロセッサエレメント11−11(PE1)にβを演算させるPE命令と、プロセッサエレメント11−12(PE2)にα+βを演算させるPE命令とを含ませる。このコンフィギュレーションデータは、コンフィギュレーションメモリ13からコンフィギュレーション経路17を介してプロセッサエレメント11−10乃至11−12に供給されるとともに、別の経路を介してイミディエート値ネットワーク40及びデータネットワーク12に供給される。ここで、プロセッサエレメント11−11(PE1)によるβの演算とプロセッサエレメント11−12(PE2)によるα+βの演算とには、イミディエート値は用いられない。従って、プロセッサエレメント11−11(PE1)とプロセッサエレメント11−12(PE2)とは、コンフィギュレーション経路17にのみ結合されてよい。プロセッサエレメント11−10(PE0)によるα2の演算には、イミディエート値Bが用いられる。従って、プロセッサエレメント11−10(PE0)は、コンフィギュレーション経路17だけでなくイミディエート値ネットワーク40にも接続され、プロセッサエレメント11−5から定数Bを受け取るように構成される。
【0040】
またプロセッサエレメント11−4(DR#0)の内部レジスタ(内部メモリ)31には、α1を演算する命令α1_INST、α1’を演算する命令α1’_INST、α3を演算する命令α3_INST、α3’を演算する命令α3’_INSTが格納される。図6を参照して説明したように、プロセッサエレメント11−7(PE3)がα1及びα1’を演算し、プロセッサエレメント11−8(PE4)がα3及びα3’を演算する。従って、α1の演算が必要な演算フェーズFnとα1’の演算が必要な演算フェーズFn+1とにおいて、プロセッサエレメント11−4(DR#0)はイミディエート値ネットワーク40を介してプロセッサエレメント11−7(PE3)に接続される。プロセッサエレメント11−7(PE3)は、コンフィギュレーションデータ入力ポート23にイミディエート値ネットワーク40から供給される命令α1_INSTに応じてα1を計算し、命令α1’_INSTに応じてα1’を計算する。またα3の演算が必要な演算フェーズFn+3とα3’の演算が必要な演算フェーズFn+4とにおいて、プロセッサエレメント11−4(DR#0)はイミディエート値ネットワーク40を介してプロセッサエレメント11−8(PE4)に接続される。プロセッサエレメント11−8(PE4)は、コンフィギュレーションデータ入力ポート23にイミディエート値ネットワーク40から供給される命令α3_INSTに応じてα3を計算し、命令α3’_INSTに応じてα3’を計算する。
【0041】
以上のような設定において、適宜各演算フェーズにおいて、コンフィギュレーションメモリ13からコンフィギュレーション経路17を介してプロセッサエレメント11−10乃至11−12にコンフィギュレーションデータを供給するとともに、コンフィギュレーションメモリ13から別の経路を介してイミディエート値ネットワーク40及びデータネットワーク12にコンフィギュレーションデータを供給する。また、データレジスタのコンフィギュレーションデータを、イミディエート値ネットワーク40を介してプロセッサエレメント11−7、11−8、及び11−10に供給する。これにより各プロセッサエレメントの演算機能、各プロセッサエレメント間のデータネットワーク12を介した接続、及び各プロセッサエレメント間のイミディエート値ネットワーク40を介した接続を、各演算フェーズ毎に設定する。以上のようにして、図6に示すデータフローの演算を図5の構成により実現することができる。
【0042】
図5の構成では、演算フェーズFn乃至Fn+5においてΣ1乃至Σ5の計算をした後、外部CPU16から内部CPUインタフェース15を介して、プロセッサエレメント11−5(DR#1)の定数A、B、C、及びDを書き替えることができる。これにより、同一のコンフィギュレーションデータを再度繰り返し用いながらも、異なる定数を用いた演算を実行することができる。また更に、演算フェーズFn乃至Fn+5においてΣ1乃至Σ5の計算をした後、外部CPU16から内部CPUインタフェース15を介して、プロセッサエレメント11−4(DR#0)の演算命令を書き替えることもできる。これにより、コンフィギュレーションメモリ13の同一のコンフィギュレーションデータを再度繰り返し用いながらも、α1、α1’、α3、及びα3’の項の部分だけ変更した演算を実行することができる。
【0043】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【0044】
【図1】本発明の実施例であるリコンフィギュラブル回路の構成の一例を示す図である。
【図2】イミディエート値ネットワークを介してイミディエート値を設定する構成の一例を示す図である。
【図3】イミディエート値ネットワークの接続関係の一例を示す図である。
【図4】レジスタをファイル化した場合のイミディエート値ネットワークの接続関係の一例を示す図である。
【図5】リコンフィギュラブル回路により数式演算処理を実行する際のプロセッサエレメントの割り当てについて説明するための図である。
【図6】リコンフィギュラブル回路により数式演算処理を実行する際のデータフローを示す図である。
【符号の説明】
【0045】
10 リコンフィギュラブル回路
11−1〜11−12 プロセッサエレメント(PE)
12 データネットワーク
13 コンフィギュレーションメモリ
14 CPUインタフェースモジュール
15 内部CPUインタフェース
16 外部CPU
21、22 演算データ入力ポート
23 コンフィギュレーションデータ入力ポート
24 出力ポート
25 演算処理ユニット
26 セレクタ
30 内部レジスタ
31 内部メモリ

【特許請求の範囲】
【請求項1】
演算データ入力ポートと、コンフィギュレーションデータ入力ポートと、出力ポートとを各々が備えた複数のプロセッサエレメントと、
該複数のプロセッサエレメントの該演算データ入力ポートと該出力ポートとに結合されるデータネットワークと、
該複数のプロセッサエレメントのうちの少なくとも1つの第1のプロセッサエレメントの該コンフィギュレーションデータ入力ポートにコンフィギュレーション経路を介して結合されるコンフィギュレーションメモリと、
前記データネットワークとは独立なネットワークであり、該複数のプロセッサエレメントのうちの少なくとも1つの第2のプロセッサエレメントの該コンフィギュレーションデータ入力ポートに結合されるイミディエート値ネットワークと
を含み、該複数のプロセッサエレメントのうちの少なくとも1つの第3のプロセッサエレメントの内部レジスタが、該内部レジスタの格納データを該イミディエート値ネットワークに出力可能なように、該イミディエート値ネットワークに結合されることを特徴とするリコンフィギュラブル回路。
【請求項2】
前記複数のプロセッサエレメントのうちの少なくとも1つの前記第2のプロセッサエレメントの前記コンフィギュレーションデータ入力ポートは、前記コンフィギュレーション経路と前記イミディエート値ネットワークとの両方に結合されることを特徴とする請求項1記載のリコンフィギュラブル回路。
【請求項3】
前記コンフィギュレーション経路と前記イミディエート値ネットワークとの両方に結合される前記コンフィギュレーションデータ入力ポートを有する前記第2のプロセッサエレメントは、前記コンフィギュレーションメモリから該コンフィギュレーション経路を介して供給されるデータにより演算機能を選択し、該イミディエート値ネットワークから供給されるデータをイミディエート値として演算に使用することを特徴とする請求項2記載のリコンフィギュラブル回路。
【請求項4】
前記複数のプロセッサエレメントのうちの少なくとも1つの前記第2のプロセッサエレメントの前記コンフィギュレーションデータ入力ポートは、前記コンフィギュレーション経路と前記イミディエート値ネットワークとのうちの該イミディエート値ネットワークのみに結合されることを特徴とする請求項1記載のリコンフィギュラブル回路。
【請求項5】
前記イミディエート値ネットワークのみに結合される前記コンフィギュレーションデータ入力ポートを有する前記第2のプロセッサエレメントは、該イミディエート値ネットワークから供給される第1のデータにより演算機能を選択し、該イミディエート値ネットワークから供給される第2のデータをイミディエート値として演算に使用することを特徴とする請求項4記載のリコンフィギュラブル回路。
【請求項6】
前記複数のプロセッサエレメントのうちの少なくとも1つの前記第1のプロセッサエレメントの前記コンフィギュレーションデータ入力ポートは、前記コンフィギュレーション経路と前記イミディエート値ネットワークとのうちの該コンフィギュレーション経路のみに結合されることを特徴とする請求項1記載のリコンフィギュラブル回路。
【請求項7】
該コンフィギュレーションデータメモリにはイミディエート値が格納されないことを特徴とする請求項1記載のリコンフィギュラブル回路。
【請求項8】
前記イミディエート値ネットワークはプロセッサエレメント間の相互接続を可変に構成されることを特徴とする請求項1記載のリコンフィギュラブル回路。
【請求項9】
前記コンフィギュレーションメモリの格納データにより前記イミディエート値ネットワークの前記相互接続が設定されることを特徴とする請求項8記載のリコンフィギュラブル回路。
【請求項10】
前記第3のプロセッサエレメントの内部レジスタにおいて複数のイミディエート値がそれぞれ異なるアドレスに格納されていることを特徴とする請求項1記載のリコンフィギュラブル回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2009−157613(P2009−157613A)
【公開日】平成21年7月16日(2009.7.16)
【国際特許分類】
【出願番号】特願2007−334498(P2007−334498)
【出願日】平成19年12月26日(2007.12.26)
【出願人】(308014341)富士通マイクロエレクトロニクス株式会社 (2,507)
【Fターム(参考)】