(57)【特許請求の範囲】
【請求項１】
演算データ入力ポートと、コンフィギュレーションデータ入力ポートと、出力ポートとを各々が備えた複数のプロセッサエレメントと、
該複数のプロセッサエレメントの該演算データ入力ポートと該出力ポートとに結合されるデータネットワークと、
該複数のプロセッサエレメントのうちの少なくとも１つの第１のプロセッサエレメントの該コンフィギュレーションデータ入力ポートにコンフィギュレーション経路を介して結合されるコンフィギュレーションメモリと、
前記データネットワークとは独立なネットワークであり、該複数のプロセッサエレメントのうちの少なくとも１つの第２のプロセッサエレメントの該コンフィギュレーションデータ入力ポートに結合されるイミディエート値ネットワークと
を含み、該複数のプロセッサエレメントのうちの少なくとも１つの第３のプロセッサエレメントの内部レジスタが、該内部レジスタの格納データを該イミディエート値ネットワークに出力可能なように、該イミディエート値ネットワークに結合されることを特徴とするリコンフィギュラブル回路。
【請求項２】
前記複数のプロセッサエレメントのうちの少なくとも１つの前記第２のプロセッサエレメントの前記コンフィギュレーションデータ入力ポートは、前記コンフィギュレーション経路と前記イミディエート値ネットワークとの両方に結合されることを特徴とする請求項１記載のリコンフィギュラブル回路。
【請求項３】
前記コンフィギュレーション経路と前記イミディエート値ネットワークとの両方に結合される前記コンフィギュレーションデータ入力ポートを有する前記第２のプロセッサエレメントは、前記コンフィギュレーションメモリから該コンフィギュレーション経路を介して供給されるデータにより演算機能を選択し、該イミディエート値ネットワークから供給されるデータをイミディエート値として演算に使用することを特徴とする請求項２記載のリコンフィギュラブル回路。
【請求項４】
前記複数のプロセッサエレメントのうちの少なくとも１つの前記第２のプロセッサエレメントの前記コンフィギュレーションデータ入力ポートは、前記コンフィギュレーション経路と前記イミディエート値ネットワークとのうちの該イミディエート値ネットワークのみに結合されることを特徴とする請求項１記載のリコンフィギュラブル回路。
【請求項５】
前記イミディエート値ネットワークのみに結合される前記コンフィギュレーションデータ入力ポートを有する前記第２のプロセッサエレメントは、該イミディエート値ネットワークから供給される第１のデータにより演算機能を選択し、該イミディエート値ネットワークから供給される第２のデータをイミディエート値として演算に使用することを特徴とする請求項４記載のリコンフィギュラブル回路。
【請求項６】
前記複数のプロセッサエレメントのうちの少なくとも１つの前記第１のプロセッサエレメントの前記コンフィギュレーションデータ入力ポートは、前記コンフィギュレーション経路と前記イミディエート値ネットワークとのうちの該コンフィギュレーション経路のみに結合されることを特徴とする請求項１記載のリコンフィギュラブル回路。
【請求項７】
該コンフィギュレーションデータメモリにはイミディエート値が格納されないことを特徴とする請求項１記載のリコンフィギュラブル回路。
【請求項８】
前記イミディエート値ネットワークはプロセッサエレメント間の相互接続を可変に構成されることを特徴とする請求項１記載のリコンフィギュラブル回路。
【請求項９】
前記コンフィギュレーションメモリの格納データにより前記イミディエート値ネットワークの前記相互接続が設定されることを特徴とする請求項８記載のリコンフィギュラブル回路。
【請求項１０】
前記第３のプロセッサエレメントの内部レジスタにおいて複数のイミディエート値がそれぞれ異なるアドレスに格納されていることを特徴とする請求項１記載のリコンフィギュラブル回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に電子回路に関し、詳しくは動的に再構成可能なリコンフィギュラブル回路に関する。
【背景技術】
【０００２】
プロセッサエレメントを用いたリコンフィギュラブル回路（動的再構成可能型回路）は、複数のプロセッサエレメントをアレイ状に配列し、縦横に配置したデータネットワークでこれらプロセッサエレメントを接続した構成となっている。プロセッサエレメントの演算機能及びネットワークを介したプロセッサエレメント間の接続関係を、ソフトウェアにより再構成可能に設定する構成となっている。プロセッサエレメントアレイ部の周辺には、プロセッサエレメントアレイ部に関するコンフィギュレーションデータを格納するコンフィギュレーションメモリや、動的再構成の切替えを制御する制御部等が設けられる。
【０００３】
上記の構成を有するリコンフィギュラブル回路では、再構成可能な構造の基本要素はプロセッサエレメントであり、単一ゲート程度を基本要素とするＦＰＧＡ（Field Programmable Gate Array）と比較すると、格段に大きな粒度（変更可能な単位の大きさ）になっている。またプロセッサエレメントをアレイ上に並べることにより、並列に演算を実行することが可能となり、複素演算や積和演算等の重い演算処理を高速に実行することができる。
【０００４】
コンフィギュラブル回路のプロセッサエレメントにイミディエート値（プログラム中で指定されている固定の値）を渡す場合、２つの異なる方法がある。第１の方法では、データネットワークに接続されたデータレジスタにイミディエート値を格納しておき、データレジスタからデータネットワークを介してプロセッサエレメントのデータ入力ポートにイミディエート値を供給する。第２の方法では、コンフィギュレーションメモリに格納されたコンフィギュレーションデータの一部としてイミディエート値を定義して設定しておき、コンフィギュレーションメモリからプロセッサエレメントのコンフィギュレーションデータ入力ポートにイミディエート値を供給する。
【０００５】
上記第１の方法では、イミディエート値をプロセッサエレメントに供給するためにデータネットワークを使用する。データネットワークを介して相互接続できるプロセッサエレメント間の接続数には、データネットワークの構成に応じた上限があるが、イミディエート値を渡すためにデータネットワークの一部を使用してしまうと、プロセッサエレメント間の接続数の上限が低下してしまう。即ち、データネットワークのリソース消費により可変接続性能が低下し、プロセッサエレメント間のデータ授受が影響を受ける。場合によっては、必要なデータの受渡しができない可能性がある。
【０００６】
また上記第２の方法では、コンフィギュレーションデータ中の各イミディエート値の定義・設定は、各プロセッサエレメント毎になされる。従って、複数のプロセッサエレメントが同一のイミディエート値を使用する場合であっても、これら複数のプロセッサエレメントの数分、イミディエート値の定義・設定をコンフィギュレーションデータ中で繰り返す必要がある。またコンフィギュレーションデータ中に設定したイミディエート値は固定であり、そのコンフィギュレーションデータに従ってリコンフィギュラブル回路が動作している間はイミディエート値の内容を変更することができない。
【特許文献１】特開２００５−２７７６７３号公報
【特許文献２】特開２００５−２７５４５５号公報
【特許文献３】特開２００４−２２１９９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以上を鑑みて本発明は、効率的且つ柔軟にイミディエート値をプロセッサエレメントに供給することが可能なリコンフィギュラブル回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
リコンフィギュラブル回路は、演算データ入力ポートと、コンフィギュレーションデータ入力ポートと、出力ポートとを各々が備えた複数のプロセッサエレメントと、該複数のプロセッサエレメントの該演算データ入力ポートと該出力ポートとに結合されるデータネットワークと、該複数のプロセッサエレメントのうちの少なくとも１つの第１のプロセッサエレメントの該コンフィギュレーションデータ入力ポートにコンフィギュレーション経路を介して結合されるコンフィギュレーションメモリと、前記データネットワークとは独立なネットワークであり、該複数のプロセッサエレメントのうちの少なくとも１つの第２のプロセッサエレメントの該コンフィギュレーションデータ入力ポートに結合されるイミディエート値ネットワークとを含み、該複数のプロセッサエレメントのうちの少なくとも１つの第３のプロセッサエレメントの内部レジスタが、該内部レジスタの格納データを該イミディエート値ネットワークに出力可能なように、該イミディエート値ネットワークに結合されることを特徴とする。
【発明の効果】
【０００９】
本発明の少なくとも１つの実施例によれば、データネットワークとは独立のイミディエート値ネットワークを用いてイミディエート値の受け渡しを行なうので、データネットワークによりイミディエート値を受け渡す構成と比較して、データネットワークによるプロセッサエレメント間の相互接続能力を向上させることができる。またリコンフィギュラブル回路の動作中であっても、定数等のイミディエート値を書き替えることにより異なる定数演算が可能となり、柔軟な演算処理を実現することができる。またコンフィギュレーションデータの一部としてイミディエート値を定義・設定する構成と比較して、コンフィギュレーションメモリの必要容量を減らすことが可能であり、回路面積を削減することができる。
【発明を実施するための最良の形態】
【００１０】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１１】
図１は、本発明の実施例であるリコンフィギュラブル回路の構成の一例を示す図である。図１のリコンフィギュラブル回路１０は、演算データ入力ポート２１及び２２と、コンフィギュレーションデータ入力ポート２３と、出力ポート２４とを各々が備えた複数のプロセッサエレメント（ＰＥ）１１−１乃至１１−１２と、複数のプロセッサエレメント１１−１乃至１１−１２の演算データ入力ポート２１及び２２と出力ポート２４とに結合されるデータネットワーク１２と、複数のプロセッサエレメント１１−１乃至１１−１２のコンフィギュレーションデータ入力ポート２３にコンフィギュレーション経路１７を介して結合されるコンフィギュレーションメモリ１３と、ＣＰＵインタフェースモジュール１４と、内部ＣＰＵインタフェース１５とを含む。リコンフィギュラブル回路１０のＣＰＵインタフェースモジュール１４は、外部ＣＰＵ１６に接続されており、外部ＣＰＵ１６との信号のやり取りを行なう。ＣＰＵインタフェースモジュール１４がＣＰＵから受け取ったコマンド及びデータは、内部ＣＰＵインタフェース１５を介してコンフィギュレーションメモリ１３及び一部のプロセッサエレメントに供給される。
【００１２】
プロセッサエレメント１１−１乃至１１−３は、各々が内部レジスタ３０を含むデータレジスタエレメントである。またプロセッサエレメント１１−４乃至１１−６は、各々が内部メモリ３１を含むデータメモリエレメントである。内部メモリ３１は、アドレス指定により複数のデータを格納可能な記憶装置であるが、データ記憶という機能に着目すれば内部レジスタ３０と本質的には同一のレジスタ装置である。以下の説明においては、特に断りがない限り、内部レジスタ３０及び内部メモリ３１を纏めて内部レジスタと呼ぶ。内部レジスタ３０及び３１は、内部ＣＰＵインタフェース１５を介して外部ＣＰＵ１６からレジスタ内容を書き込み・読み出し可能に構成される。
【００１３】
プロセッサエレメント１１−７乃至１１−１２は、各々が演算処理ユニット２５を含む演算処理エレメントである。演算処理ユニット２５は、コンフィギュレーションデータ入力ポート２３に入力されるコンフィギュレーションデータに応じて演算機能が設定され、設定された演算を実行するよう構成される。なお図１の例において、プロセッサエレメント１１−１乃至１１−１２は３行×４列のマトリクス状に配置されるが、プロセッサエレメントの総数や行及び列の数は、例示された数に限定されるものではない。
【００１４】
コンフィギュレーションメモリ１３は、リコンフィギュラブル回路１０のコンフィギュレーションを設定するためのコンフィギュレーションデータを記憶する。このコンフィギュレーションデータは、外部ＣＰＵ１６から、ＣＰＵインタフェースモジュール１４及び内部ＣＰＵインタフェース１５を介して、コンフィギュレーションメモリ１３に格納される。コンフィギュレーションデータは、プロセッサエレメントの演算機能を設定するとともに、データネットワーク１２を介したプロセッサエレメント１１−１乃至１１−１２間の相互接続、即ちデータネットワーク１２の結線状態を設定するよう機能する。本実施例のリコンフィギュラブル回路１０では、後述するように、イミディエート値については専用のイミディエート値ネットワークを介して設定される。
【００１５】
図２は、イミディエート値ネットワークを介してイミディエート値を設定する構成の一例を示す図である。図２において、図１と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００１６】
図２に示すように、イミディエート値ネットワーク４０は、データネットワーク１２とは独立なネットワークであり、複数のプロセッサエレメント１１−７乃至１１−１２の１つであるプロセッサエレメント１１のコンフィギュレーションデータ入力ポート２３に結合される。また少なくとも１つのプロセッサエレメントの内部レジスタ３０が、内部レジスタの格納データ（イミディエート値３５）をイミディエート値ネットワーク４０に出力可能なように、イミディエート値ネットワーク４０に結合される。この格納データ（イミディエート値３５）は、外部ＣＰＵ１６から内部ＣＰＵインタフェース１５を介して内部レジスタ３０に書き込まれる。従って、コンフィギュレーションメモリ１３のコンフィギュレーションデータに従ってリコンフィギュラブル回路１０が動作している最中であっても、外部ＣＰＵ１６により内部レジスタ３０の内容を書き替えることができる。
【００１７】
図２に示す例では、プロセッサエレメント１１のコンフィギュレーションデータ入力ポート２３は、コンフィギュレーション経路１７とイミディエート値ネットワーク４０との両方に結合される。この例のように、コンフィギュレーション経路１７とイミディエート値ネットワーク４０との両方に結合されるコンフィギュレーションデータ入力ポート２３を有するプロセッサエレメント１１は、コンフィギュレーションメモリ１３からコンフィギュレーション経路１７を介して供給されるデータにより演算機能を選択し、イミディエート値ネットワーク４０から供給されるデータをイミディエート値として演算に使用する。即ち例えば、コンフィギュレーションデータ入力ポート２３が４０ビット構成であり、そのうちの３２ビットが演算機能設定のためのデータであり、残りの８ビットがイミディエート値を指定するためのデータであるとする。このとき、上記３２ビット分がコンフィギュレーション経路１７に結合され、８ビット分がイミディエート値ネットワーク４０に結合される。例えば、コンフィギュレーション経路１７を介したコンフィギュレーションメモリ１３からの３２ビットが、演算データ入力ポート２１からの入力データＡとイミディエート値との加算を指定し、イミディエート値ネットワーク４０からの８ビットが、“００１０１１０１”であるとする。この場合、プロセッサエレメント１１は、Ａ＋“００１０１１０１”を演算して、演算結果を出力ポート２４から出力することになる。
【００１８】
プロセッサエレメント１１は、演算データ入力ポート２１及び２２、コンフィギュレーションデータ入力ポート２３、出力ポート２４、演算処理ユニット２５、及びセレクタ２６を含む。演算処理ユニット２５は、例えば加算、減算、積算等の複数の論理演算を実行可能に構成され、コンフィギュレーションデータに応じてコンフィギュレーションデータ入力ポート２３から供給される演算命令に基づいて、何れかの論理演算を選択的に実行する。セレクタ２６は、演算データ入力ポート２２がデータネットワーク１２から受け取る入力データと、コンフィギュレーションデータ入力ポート２３がイミディエート値ネットワーク４０から受け取るイミディエート値との何れか一方を選択し、選択されたデータを演算処理ユニット２５に供給する。演算処理ユニット２５は、演算データ入力ポート２１から供給されるデータとセレクタ２６から供給されるデータとを入力データとして、コンフィギュレーションデータ入力ポート２３からの演算命令により指定された演算を実行する。なお図１に示すプロセッサエレメント１１−７乃至１１−１２の各々は、図２に示すプロセッサエレメント１１と同様の構成を有してよい。
【００１９】
図３は、イミディエート値ネットワーク４０の接続関係の一例を示す図である。図３において、図１と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００２０】
図３の例においてイミディエート値ネットワーク４０は、複数のプロセッサエレメント１１−７乃至１１−９（ＡＬＵ０乃至ＡＬＵ２）のコンフィギュレーションデータ入力ポート２３に結合される。またプロセッサエレメント１１−１乃至１１−３の内部レジスタ３０が、内部レジスタの格納データ（イミディエート値）をイミディエート値ネットワーク４０に出力可能なように、イミディエート値ネットワーク４０に結合される。
【００２１】
図３に示す例では、プロセッサエレメント１１−１の内部レジスタ３０がプロセッサエレメント１１−７（ＡＬＵ０）用のイミディエート値を格納し、プロセッサエレメント１１−２の内部レジスタ３０がプロセッサエレメント１１−８（ＡＬＵ１）用のイミディエート値を格納し、プロセッサエレメント１１−３の内部レジスタ３０がプロセッサエレメント１１−９（ＡＬＵ２）用のイミディエート値を格納する。これらイミディエート値は、外部ＣＰＵ１６から内部ＣＰＵインタフェース１５を介して各内部レジスタ３０に書き込まれる。従って、コンフィギュレーションメモリ１３のコンフィギュレーションデータに従ってリコンフィギュラブル回路１０が動作している最中であっても、外部ＣＰＵ１６により内部レジスタ３０の内容を書き替えることができる。
【００２２】
イミディエート値ネットワーク４０はプロセッサエレメント間の相互接続を可変に構成される。具体的には、コンフィギュレーションメモリ１３の格納データによりイミディエート値ネットワーク４０の相互接続が設定可能なように構成される。図３に示す例では、プロセッサエレメント１１−１の内部レジスタ３０をプロセッサエレメント１１−７のコンフィギュレーションデータ入力ポート２３に結合し、プロセッサエレメント１１−２の内部レジスタ３０をプロセッサエレメント１１−８のコンフィギュレーションデータ入力ポート２３に結合し、プロセッサエレメント１１−３の内部レジスタ３０をプロセッサエレメント１１−９のコンフィギュレーションデータ入力ポート２３に結合するように、イミディエート値ネットワーク４０の結合が設定される。
【００２３】
なおイミディエート値ネットワーク４０の結合の設定は、上記の例に限られるものではない。例えば、プロセッサエレメント１１−１の内部レジスタ３０を、３つのプロセッサエレメント１１−７乃至１１−９のコンフィギュレーションデータ入力ポート２３に結合するように、イミディエート値ネットワーク４０の結合を設定してもよい。この場合、３つのプロセッサエレメント１１−７乃至１１−９が、１つの内部レジスタ３０の内容をイミディエート値として共有することになる。
【００２４】
また図３の例では、プロセッサエレメント１１−７乃至１１−９のコンフィギュレーションデータ入力ポート２３は、コンフィギュレーション経路１７とイミディエート値ネットワーク４０とのうちのイミディエート値ネットワーク４０のみに結合される。この例のように、イミディエート値ネットワーク４０のみに結合されるコンフィギュレーションデータ入力ポート２３を有するプロセッサエレメント１１−７乃至１１−９は、イミディエート値ネットワーク４０から供給される第１のデータにより演算機能を選択し、イミディエート値ネットワーク４０から供給される第２のデータをイミディエート値として演算に使用する。即ち例えば、コンフィギュレーションデータ入力ポート２３が４０ビット構成であり、これら４０ビット全てがイミディエート値ネットワーク４０に結合されるとして、そのうちの３２ビットが演算機能設定のための第１のデータであり、残りの８ビットがイミディエート値を指定するための第２のデータである。３２ビットの第１のデータと８ビットの第２のデータとは、１つのプロセッサエレメントの内部レジスタ３０に４０ビットデータとして格納されてよい。また或いは、３２ビットの第１のデータと８ビットの第２のデータとは、それぞれ別のプロセッサエレメントからイミディエート値ネットワーク４０を介して１つのコンフィギュレーションデータ入力ポート２３に供給されてもよい。コンフィギュレーションデータ入力ポート２３に供給される４０ビットデータのうち、３２ビットが演算データ入力ポート２１からの入力データＡとイミディエート値との加算を指定し、残りの８ビットが“００１０１１０１”であるとする。この場合、プロセッサエレメントは、Ａ＋“００１０１１０１”を演算して、演算結果を出力ポート２４から出力することになる。
【００２５】
図４は、レジスタをファイル化した場合のイミディエート値ネットワーク４０の接続関係の一例を示す図である。図４の例においてイミディエート値ネットワーク４０は、複数のプロセッサエレメント１１−７〜１１−９（ＡＬＵ０乃至ＡＬＵ２）及び１１−１１〜１１−１２（ＡＬＵ３乃至ＡＬＵ４）のコンフィギュレーションデータ入力ポート２３に結合される。またプロセッサエレメント１１−４の内部レジスタ３１が、内部レジスタの格納データ（イミディエート値）をイミディエート値ネットワーク４０に出力可能なように、イミディエート値ネットワーク４０に結合される。
【００２６】
図４に示す例では、プロセッサエレメント１１−４の内部レジスタ３１において複数のイミディエート値がファイル化されてそれぞれのアドレスに格納されている。この際、内部レジスタ（内部メモリ）３１としては図１に示すようにＲＡＭ等を用いてよい。内部メモリ３１において、第１のアドレスにはプロセッサエレメント１１−７（ＡＬＵ０）用のイミディエート値を格納し、第２のアドレスにはプロセッサエレメント１１−８（ＡＬＵ１）用のイミディエート値を格納し、第３のアドレスにはプロセッサエレメント１１−９（ＡＬＵ２）用のイミディエート値を格納する。これらイミディエート値は、外部ＣＰＵ１６から内部ＣＰＵインタフェース１５を介して内部メモリ３１のそれぞれのアドレスに書き込まれる。従って、コンフィギュレーションメモリ１３のコンフィギュレーションデータに従ってリコンフィギュラブル回路１０が動作している最中であっても、外部ＣＰＵ１６により内部メモリ３１の内容を書き替えることができる。
【００２７】
また図４の構成では、複数のイミディエート値がファイル化されて単一のプロセッサエレメント１１−４に納められている。従って、図３の構成のように３つのイミディエート値を定義するために３つのプロセッサエレメントを用いる場合と比較して、イミディエート値格納のためのプロセッサエレメントの数を少なくすることができる。この結果、演算用のプロセッサエレメントの数を増やして演算処理性能を向上させることができる。
【００２８】
イミディエート値ネットワーク４０はプロセッサエレメント間の相互接続を可変に構成される。具体的には、コンフィギュレーションメモリ１３の格納データによりイミディエート値ネットワーク４０の相互接続が設定可能なように構成される。図４に示す例では、内部メモリ３１の第１のアドレスのファイルのデータをプロセッサエレメント１１−７のコンフィギュレーションデータ入力ポート２３に結合し、内部メモリ３１の第２のアドレスのファイルのデータをプロセッサエレメント１１−８のコンフィギュレーションデータ入力ポート２３に結合し、内部メモリ３１の第３のアドレスのファイルのデータをプロセッサエレメント１１−９のコンフィギュレーションデータ入力ポート２３に結合するように、イミディエート値ネットワーク４０の結合が設定される。
【００２９】
なおイミディエート値ネットワーク４０の結合の設定は、上記の例に限られるものではない。例えば、内部メモリ３１の第１のアドレスのファイルのデータを、３つのプロセッサエレメント１１−７乃至１１−９のコンフィギュレーションデータ入力ポート２３に結合するように、イミディエート値ネットワーク４０の結合を設定してもよい。この場合、３つのプロセッサエレメント１１−７乃至１１−９が、内部メモリ３１の第１のアドレスのデータをイミディエート値として共有することになる。
【００３０】
また図４の例においても、図３の例と同様に、プロセッサエレメント１１−７乃至１１−９のコンフィギュレーションデータ入力ポート２３は、コンフィギュレーション経路１７とイミディエート値ネットワーク４０とのうちのイミディエート値ネットワーク４０のみに結合される。従って、プロセッサエレメント１１−７乃至１１−９は、イミディエート値ネットワーク４０から供給される第１のデータにより演算機能を選択し、イミディエート値ネットワーク４０から供給される第２のデータをイミディエート値として演算に使用する。また図４の例においては、プロセッサエレメント１１−１１及び１１−１２のコンフィギュレーションデータ入力ポート２３は、コンフィギュレーション経路１７と前記イミディエート値ネットワーク４０とのうちのコンフィギュレーション経路１７のみに結合されてよい。この場合、プロセッサエレメント１１−１１及び１１−１２はイミディエート値を用いない演算のみに専用に用いられることになる。また或いはプロセッサエレメント１１−１１及び１１−１２のコンフィギュレーションデータ入力ポート２３は、図２に示したように、コンフィギュレーション経路１７とイミディエート値ネットワーク４０との両方に結合されてもよい。
【００３１】
以下に、リコンフィギュラブル回路１０による数式演算処理を、具体例を用いて説明する。この例における計算対象の数式演算処理は、Ｆｎ、Ｆｎ＋１、Ｆｎ＋２、・・・を演算フェーズとして、以下のように定義される。
【００３２】
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)
Ｆｎ＋５以降は、Σ１乃至Σ５の計算を繰り返すものとする。ここでＡ、Ｂ、Ｃ、及びＤは定数であり、プロセッサエレメントにイミディエート値として格納される。ｘ、ｙ、及びｚは入力データであり、データネットワーク１２から適宜プロセッサエレメントに供給される。単純化するために、上記演算処理に現れる括弧付きの項をそれぞれ以下のように表記する。
【００３３】
(A*x)=α1
(B-x)=α1’
(B*y)=α2
(C-z)=α3
(D+z)=α3’
とする。また更に単純化するために、入力データｘ、ｙ、及びｚに対する加算式を以下のように表記する。
【００３４】
(y+z)=β1
(x+z)=β2
(x+y)=β3
以上の表記を用いると、各演算フェーズでの計算式は以下のように表現される。
【００３５】
Fn=α1+β1
Fn+1=α1’+β1
Fn+2=α2+β2
Fn+3=α3+β3
Fn+4=α3’+β3
図５は、リコンフィギュラブル回路１０により上記数式演算処理を実行する際のプロセッサエレメントの割り当てについて説明するための図である。図５において、図１と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００３６】
図５の構成において、プロセッサエレメント１１−４（ＤＲ＃０）の内部レジスタ（内部メモリ）３１には、α１を演算する命令α１＿ＩＮＳＴ、α１’を演算する命令α１’＿ＩＮＳＴ、α３を演算する命令α３＿ＩＮＳＴ、α３’を演算する命令α３’＿ＩＮＳＴが格納される。ここでα１、α１’、α３、α３’は、上記の数式演算処理に現れる表記である。またプロセッサエレメント１１−５（ＤＲ＃１）の内部メモリ３１には、イミディエート値として４つの定数Ａ、Ｂ、Ｃ、及びＤが格納される。これらのレジスタ値の格納は、外部ＣＰＵ１６から内部ＣＰＵインタフェース１５を介してデータ書き込みすることにより行なわれる。
【００３７】
図６は、リコンフィギュラブル回路１０により上記数式演算処理を実行する際のデータフローを示す図である。データレジスタＤＲ＃１（図５のプロセッサエレメント１１−５）から供給される定数Ａ及びＢと入力データｘとに基づいて、プロセッサエレメントＰＥ３（図５のプロセッサエレメント１１−７）が、α１（＝Ａ＊ｘ）及びα１’（＝Ｂ−ｘ）を演算により求める。またデータレジスタＤＲ＃１から供給される定数Ｂと入力データｙとに基づいて、プロセッサエレメントＰＥ０（図５のプロセッサエレメント１１−１０）が、α２（＝Ｂ＊ｙ）を演算により求める。また更に、データレジスタＤＲ＃１から供給される定数Ｃ及びＤと入力データｚとに基づいて、プロセッサエレメントＰＥ４（図５のプロセッサエレメント１１−８）が、α３（＝Ｃ−ｚ）及びα３’（＝Ｄ＋ｚ）を演算により求める。
【００３８】
プロセッサエレメントＰＥ１（図５のプロセッサエレメント１１−１１）は、入力データｘ、ｙ、及びｚに基づいて、β１、β２、及びβ３を演算により求める。β１、β２、及びβ３は図６においてβとして示されている。最後に、プロセッサエレメントＰＥ２（図５のプロセッサエレメント１１−１２）が、プロセッサエレメントＰＥ３からのα１又はα１’、プロセッサエレメントＰＥ０からのα２、プロセッサエレメントＰＥ４からのα３又はα３’の何れか１つのαと、ＰＥ１からのβとを加算する。このようにしてプロセッサエレメントＰＥ２は、上記のΣ１乃至Σ５を順次１つずつ出力する。
【００３９】
上記説明した図６に示すデータフローの演算を実行するために、図５の構成において、コンフィギュレーションメモリ１３に格納されるコンフィギュレーションデータに、プロセッサエレメント１１−１０（ＰＥ０）にα２を演算させるＰＥ命令と、プロセッサエレメント１１−１１（ＰＥ１）にβを演算させるＰＥ命令と、プロセッサエレメント１１−１２（ＰＥ２）にα＋βを演算させるＰＥ命令とを含ませる。このコンフィギュレーションデータは、コンフィギュレーションメモリ１３からコンフィギュレーション経路１７を介してプロセッサエレメント１１−１０乃至１１−１２に供給されるとともに、別の経路を介してイミディエート値ネットワーク４０及びデータネットワーク１２に供給される。ここで、プロセッサエレメント１１−１１（ＰＥ１）によるβの演算とプロセッサエレメント１１−１２（ＰＥ２）によるα＋βの演算とには、イミディエート値は用いられない。従って、プロセッサエレメント１１−１１（ＰＥ１）とプロセッサエレメント１１−１２（ＰＥ２）とは、コンフィギュレーション経路１７にのみ結合されてよい。プロセッサエレメント１１−１０（ＰＥ０）によるα２の演算には、イミディエート値Ｂが用いられる。従って、プロセッサエレメント１１−１０（ＰＥ０）は、コンフィギュレーション経路１７だけでなくイミディエート値ネットワーク４０にも接続され、プロセッサエレメント１１−５から定数Ｂを受け取るように構成される。
【００４０】
またプロセッサエレメント１１−４（ＤＲ＃０）の内部レジスタ（内部メモリ）３１には、α１を演算する命令α１＿ＩＮＳＴ、α１’を演算する命令α１’＿ＩＮＳＴ、α３を演算する命令α３＿ＩＮＳＴ、α３’を演算する命令α３’＿ＩＮＳＴが格納される。図６を参照して説明したように、プロセッサエレメント１１−７（ＰＥ３）がα１及びα１’を演算し、プロセッサエレメント１１−８（ＰＥ４）がα３及びα３’を演算する。従って、α１の演算が必要な演算フェーズＦｎとα１’の演算が必要な演算フェーズＦｎ＋１とにおいて、プロセッサエレメント１１−４（ＤＲ＃０）はイミディエート値ネットワーク４０を介してプロセッサエレメント１１−７（ＰＥ３）に接続される。プロセッサエレメント１１−７（ＰＥ３）は、コンフィギュレーションデータ入力ポート２３にイミディエート値ネットワーク４０から供給される命令α１＿ＩＮＳＴに応じてα１を計算し、命令α１’＿ＩＮＳＴに応じてα１’を計算する。またα３の演算が必要な演算フェーズＦｎ＋３とα３’の演算が必要な演算フェーズＦｎ＋４とにおいて、プロセッサエレメント１１−４（ＤＲ＃０）はイミディエート値ネットワーク４０を介してプロセッサエレメント１１−８（ＰＥ４）に接続される。プロセッサエレメント１１−８（ＰＥ４）は、コンフィギュレーションデータ入力ポート２３にイミディエート値ネットワーク４０から供給される命令α３＿ＩＮＳＴに応じてα３を計算し、命令α３’＿ＩＮＳＴに応じてα３’を計算する。
【００４１】
以上のような設定において、適宜各演算フェーズにおいて、コンフィギュレーションメモリ１３からコンフィギュレーション経路１７を介してプロセッサエレメント１１−１０乃至１１−１２にコンフィギュレーションデータを供給するとともに、コンフィギュレーションメモリ１３から別の経路を介してイミディエート値ネットワーク４０及びデータネットワーク１２にコンフィギュレーションデータを供給する。また、データレジスタのコンフィギュレーションデータを、イミディエート値ネットワーク４０を介してプロセッサエレメント１１−７、１１−８、及び１１−１０に供給する。これにより各プロセッサエレメントの演算機能、各プロセッサエレメント間のデータネットワーク１２を介した接続、及び各プロセッサエレメント間のイミディエート値ネットワーク４０を介した接続を、各演算フェーズ毎に設定する。以上のようにして、図６に示すデータフローの演算を図５の構成により実現することができる。
【００４２】
図５の構成では、演算フェーズＦｎ乃至Ｆｎ＋５においてΣ１乃至Σ５の計算をした後、外部ＣＰＵ１６から内部ＣＰＵインタフェース１５を介して、プロセッサエレメント１１−５（ＤＲ＃１）の定数Ａ、Ｂ、Ｃ、及びＤを書き替えることができる。これにより、同一のコンフィギュレーションデータを再度繰り返し用いながらも、異なる定数を用いた演算を実行することができる。また更に、演算フェーズＦｎ乃至Ｆｎ＋５においてΣ１乃至Σ５の計算をした後、外部ＣＰＵ１６から内部ＣＰＵインタフェース１５を介して、プロセッサエレメント１１−４（ＤＲ＃０）の演算命令を書き替えることもできる。これにより、コンフィギュレーションメモリ１３の同一のコンフィギュレーションデータを再度繰り返し用いながらも、α１、α１’、α３、及びα３’の項の部分だけ変更した演算を実行することができる。
【００４３】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施例であるリコンフィギュラブル回路の構成の一例を示す図である。
【図２】イミディエート値ネットワークを介してイミディエート値を設定する構成の一例を示す図である。
【図３】イミディエート値ネットワークの接続関係の一例を示す図である。
【図４】レジスタをファイル化した場合のイミディエート値ネットワークの接続関係の一例を示す図である。
【図５】リコンフィギュラブル回路により数式演算処理を実行する際のプロセッサエレメントの割り当てについて説明するための図である。
【図６】リコンフィギュラブル回路により数式演算処理を実行する際のデータフローを示す図である。
【符号の説明】
【００４５】
１０  リコンフィギュラブル回路
１１−１〜１１−１２  プロセッサエレメント（ＰＥ）
１２  データネットワーク
１３  コンフィギュレーションメモリ
１４  ＣＰＵインタフェースモジュール
１５  内部ＣＰＵインタフェース
１６  外部ＣＰＵ
２１、２２  演算データ入力ポート
２３  コンフィギュレーションデータ入力ポート
２４  出力ポート
２５  演算処理ユニット
２６  セレクタ
３０  内部レジスタ
３１  内部メモリ
【図１】
0004962305.tif 000002
【図２】
0004962305.tif 000003
【図３】
0004962305.tif 000004
【図４】
0004962305.tif 000005
【図５】
0004962305.tif 000006
【図６】
0004962305.tif 000007