"それぞれ記憶及び演算の機能を有し相互に配線で接続されうる複数のプロセッサエレメントを行列状に配置し、この複数のプロセッサエレメントの配線の接続関係によって実現される機能を時間的に変化させるリコンフィギュラブルプロセッサの制御方法において、所定の時間において、前記複数のプロセッサエレメントの1つである第1のプロセッサエレメントをデータの記憶に用い、前記所定の時間に続く時間において、前記複数のプロセッサエレメントの他の1つである第2のプロセッサエレメントと前記第1のプロセッサエレメントとを配線で接続することによって前記第1のプロセッサエレメントに記憶された前記データを前記第2のプロセッサエレメントに移動または複写させ、同時に、前記複数のプロセッサエレメントの残部で所定の機能を実現する、ことを特徴とするリコンフィギュラブルプロセッサの制御方法。請求項1記載のリコンフィギュラブルプロセッサの制御方法において、前記リコンフィギュラブルプロセッサは外部からクロック信号が供給され、このクロック信号に応じて、前記複数のプロセッサエレメントの配線の接続関係によって実現される機能が時間的に変化し、複数のプロセッサエレメントとの間の信号遅延により規定されるクリティカルパスが所定範囲内になるように前記第1のプロセッサエレメントと前記第2のプロセッサエレメントが選択されることを特徴とするリコンフィギュラブルプロセッサの制御方法。それぞれ記憶及び演算の機能を有し相互に配線で接続されうる複数のプロセッサエレメントを行列状に配置したリコンフィギュラブル回路と、この複数のプロセッサエレメントの配線の接続関係によって実現される機能を時間的に変化させるコンフィギュレーション情報を格納するコンフィギュレーションメモリとを有するリコンフィギュラブルプロセッサの前記コンフィギュレーション情報を生成する方法において、順次前記リコンフィギュラブル回路に実装されるべき複数の関数に用いられ又は生成されるところのデータのライフタイムを所定の範囲に制限し、当該ライフタイムを超えて同一のプロセッサエレメントが前記データを記憶し続けることを避けることを特徴とするリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法。請求項3記載のリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法において、前記所定の範囲が、前記複数のプロセッサエレメントの配線の接続関係によって実現される機能が次に変化する時間までに限られることを特徴とするリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法。請求項3又は4記載のリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法を用いるコンフィギュレーション情報生成ツール。以上説明した、回路構成リコンフィギュラブル回路に実装された関数間でのデータの受け渡し方法にはいずれも問題がある。そこで、リコンフィギュラブル回路内に生成したメモリを使用する方法が考えられる。これを図14に示す。リコンフィギュラブル回路領域内に、そのプロセッサエレメントを用いてフリップフロップ回路やRAM等のメモリを構成し、演算後にライト書込みしたり図14A、演算前にリード読出ししたり図14Bする。これは、一般的なプロセッサに例えると、レジスタに相当する。したがって、動作が極めて高速になるというメリットがある。一方で、ストアを行った回路構成とロードを行う回路構成で同じメモリを参照する必要があり、その間はデータを保持し続けなければならない。しかし、リコンフィギュラブル回路内のプロセッサエレメントを用いてメモリを構成しこれに受け渡すべきデータを保存する場合には、そのプロセッサエレメントを長い時間メモリとしての使用に固定化することは、回路構成内の配置計算における計算量、すなわち、コンフィギュレーション情報を生成するための計算量が膨大になるという問題がある。また、後述するような自由度の低下、クリティカルパスの問題もある。本発明は、以上のような問題に鑑み創案されたもので、リコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する際の計算量を減らすことを目的の1つとするものである。上記課題を解決するため、本発明においては、それぞれ記憶及び演算の機能を有し相互に配線で接続されうる複数のプロセッサエレメントを行列状に配置し、この複数のプロセッサエレメントの配線の接続関係によって実現される機能を時間的に変化させるリコンフィギュラブルプロセッサの制御方法において、所定の時間において、前記複数のプロセッサエレメントの1つである第1のプロセッサエレメントをデータの記憶に用い、前記所定の時間に続く時間において、前記複数のプロセッサエレメントの他の1つである第2のプロセッサエレメントと前記第1のプロセッサエレメントとを配線で接続することによって前記第1のプロセッサエレメントに記憶された前記データを前記第2のプロセッサエレメントに移動または複写させ、同時に、前記複数のプロセッサエレメントの残部で所定の機能を実現する、ことを特徴とするリコンフィギュラブルプロセッサの制御方法が提供される。この方法においては、リコンフィギュラブルプロセッサは外部からクロック信号が供給され、このクロック信号に応じて、前記複数のプロセッサエレメントの配線の接続関係によって実現される機能が時間的に変化し、複数のプロセッサエレメントとの間の信号遅延により規定されるクリティカルパスが所定範囲内になるように前記第1のプロセッサエレメントと前記第2のプロセッサエレメントが選択されることが望ましい。上記課題を解決するため、本発明においては、それぞれ記憶及び演算の機能を有し相互に配線で接続されうる複数のプロセッサエレメントを行列状に配置したリコンフィギュラブル回路と、この複数のプロセッサエレメントの配線の接続関係によって実現される機能を時間的に変化させるコンフィギュレーション情報を格納するコンフィギュレーションメモリとを有するリコンフィギュラブルプロセッサの前記コンフィギュレーション情報を生成する方法において、順次前記リコンフィギュラブル回路に実装されるべき複数の関数に用いられ又は生成されるところのデータのライフタイムを所定の範囲に制限し、当該ライフタイムを超えて同一のプロセッサエレメントが前記データを記憶し続けることを避けることを特徴とするリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法が提供される。この方法においては、前記所定の範囲が、前記複数のプロセッサエレメントの配線の接続関係によって実現される機能が次に変化する時間までに限られることが望ましい。上記課題を解決するため、本発明においては、さらに、上記方法を用いるコンフィギュレーション情報生成ツールが提供される。以上、説明した本発明によれば、リコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する際の計算量を減らし、構成の自由度を向上することが可能となる。また、動作クロックを高速化することが可能になる場合がある。以下、本発明の実施の形態を図示例と共に説明する。図1は、本発明において用いられるリコンフィギュラブルプロセッサ100の内部構成の一例である。リコンフィギュラブルプロセッサ100は、リコンフィギュラブル回路101とコンフィギュレーションメモリ102とリコンフュギュレーション制御回路103とから構成され、内部バス104を経由して外部I/O105と接続されている。内部バス104とリコンフィギュラブル回路101とは信号線106で接続され、ここでデータがやり取りされる。内部バス105とリコンフィギュレーション制御回路103とは信号線108で接続され、ここで制御データコンフィギュレーション情報及び各種の制御情報を含む。がやり取りされる。リコンフィギュレーション制御回路103は信号線107を介してリコンフィギュラブル回路101に含まれるプロセッサエレメントの記憶及び演算の機能並びにこれらの配線の再構成を制御する。リコンフィギュレーション制御回路103はコンフィギュレーションメモリ102にコンフィギュレーション情報を、信号線109を介してストアしロードする。図2は、リコンフィギュラブル回路101の回路構成の一例である。図2に示すように、リコンフィギュラブル回路101は行列状y行、x列に配列されたプロセッサエレメントPEから構成されている。プロセッサエレメントPEは、ルックアップテーブルLUT、フリップフロップFF及び選択回路selから構成され、記憶及び演算の機能を有する。各プロセッサエレメントPEの間には配線領域が存在し、任意のプロセッサエレメントPE間を接続可能な配線を有する。図3は構成間の共有メモリをプロセッサエレメントPE上に実装し、かつ、その位置を固定した場合の例である。時間0においては、構成config0がリコンフィギュラブル回路に実装されている。そして、0、5、6、8及び10のプロセッサエレメントPEが用いられており、残りのプロセッサエレメントPEは用いられていないものとする。時間0に引き続く時間1においては、構成config1がリコンフィギュラブル回路に実装されている。そして、0、1、6、8及び10のプロセッサエレメントPEが用いられており、残りのプロセッサエレメントPEは用いられていないものとする。時間1に引き続く時間2においては、構成config2がリコンフィギュラブル回路に実装されている。そして、0、2、5、8、9及び10のプロセッサエレメントPEが用いられており、残りのプロセッサエレメントPEは用いられていないものとする。このような例において、時間0、時間1及び時間2の通しで開いているプロセッサエレメントPEは40と8に挟まれた部分のみであるため、この3つの時間にまたがる記憶領域格納される変数のライフタイムが3であることに対応する。は4にしか確保できない。つまり、複数の時間にわたって同じ座標のプロセッサエレメントが空いていないと、配置配線に失敗するのである。各回路構成内の配置配線は、従来のLSIの配置配線方法によって実現することが可能である。しかしながら、ダイナミックリコンフィギュラブル回路においては、構成間共有メモリを通じて、各回路構成同士が影響し合う。つまり、回路構成毎の独立した配置配線に分割することができず、配置配線における計算量が膨大になる。図3の例においては、具体的には、合計計算量はconfig0の計算量config1の計算量config2の計算量ではなく、config0の計算量×config1の計算量×config2の計算量とならざるをえない。構成間共有の分割をすることにより計算量の削減及び自由度の向上図4及び図5を用いて、本発明による構成間共有の分割の方法を説明する。ここで紹介する例は変数のライフタイムを2以下に制限した例である。図4Aは処理すべき関数をC言語表記で表したコード、図4Bはその動作を状態遷移図で表した図、図4Cは変数のライフタイムを示した図表である。図4Aの各関数function_1、function_2、function_1及びfunction_3は、同じリコンフィギュラブル回路で異なる時間に実装される。時間1においてはfunction_1がリコンフィギュラブル回路上に実装され、時間2においてはfunction_2がリコンフィギュラブル回路上に実装され、時間3においてはfunction_1がリコンフィギュラブル回路上に実装され、時間4においてはfunction_3がリコンフィギュラブル回路上に実装される。図4Cに示すように、変数aは時間1、2、3及び4を通して生存する。つまり、そのライフタイムは4である。変数bは時間2、3及び4を通して生存する。つまり、そのライフタイムは3である。変数cは時間3及び4を通して生存する。つまり、そのライフタイムは2である。変数zは時間4のみで用いられる。つまり、そのライフタイムは1である。しかし、この例をそのまま実装すると、変数aのために同じプロセッサエレメントPEを通しで確保する必要があり、配置配線にかかる計算量が極めて膨大になるうえ、配置配線の自由度も低下する。図5Aは図4Aのコードに改変を加えたものである。図5Bはその配置配線における実装の一例を示した図、図5Cは変数のライフタイムを示した図表である。各関数function_1、function_2、function_1及びfunction_3は、同じリコンフィギュラブル回路で異なる時間に実装される。時間1においてはfunction_1がリコンフィギュラブル回路上にconfig1として実装され、時間2においてはfunction_2がリコンフィギュラブル回路上にconfig2として実装され、時間3においてはfunction_1がconfig1としてリコンフィギュラブル回路上に実装され、時間4においてはfunction_3がリコンフィギュラブル回路上にconfig3として実装される。図5Aのコード及び図5Cの変数のライフタイムにあるように、変数のライフタイムは2に制限されている。ある時間と次の時間までしか同一の変数が用いられないように構成されている。つまり、変数aは、a1、a2、a3に分割され、変数bは、b1、b2に分割されている。つまり、分割した共有が同一変数について複数存在する場合に、それらを別物として扱い、変数はその数だけ複製を生成する。図5Bの例では、時間3において変数a2は変数a3にコピーされ、変数b1は変数b2にコピーされる。同時に時間3においては関数function_1も実装されている。ここで変数aについて着目すると、配置配線に必要な計算量は、図4に示したようなライフタイムの長い変数の記憶領域が特定のPE上に実装される例と比較すると、激減することが理解される。すなわち、図4の例においては、合計計算量はconfig1の計算量×config2の計算量×config3の計算量となるところを、図5のように構成間共有の分割を施すと、config1の計算量×config2の計算量config2の計算量×config3の計算量となる。このようにして、変数のライフタイムを2に制限することによって、配置配線に必要な計算量は激減するとともにその自由度は増加する。このような配置配線によって得られたコンフィギュレーション情報は、前述したリコンフィギュラブルプロセッサに転送され、リコンフィギュラブルプロセッサが所望の機能をダイナミックに再構成して動作する。コンフィギュレーション情報を生成するツール図6は、コンフィギュレーション情報を生成するツール200ワークステーション上で動作するソフトウェアの構成例である。ツール200は、高位言語HDL、C等による設計をサポートするためのモジュール201、論理合成モジュール202及び配置配線モジュール203から構成される。設計サポートモジュール201によって、主として回路設計を高位言語で行うユーザとのインターフェイス及びそのためのエディタ等が供給される。論理合成モジュール202には、設計サポートモジュール201によって生成された設計情報が供給され、これによって、各時間における論理回路構成にかかる情報RTL等が生成される。具体的には、リコンフィギュラブル回路のリソースプロセッサエレメントの規模数等に応じて、回路を適切な単位に分割し、処理の単位が小さい場合は、リコンフィギュラブル回路のリソースにあわせて回路を結合する。さらに、本発明においては、状態遷移情報を管理する必要もある。配置配線モジュール203には、論理回路構成情報が供給され、これによって、各時間における配置配線使用するプロセッサエレメントPEの配置、機能、プロセッサエレメント間の配線が決められ、コンフィギュレーション情報が生成される。さらに、本発明においては、論理合成モジュールから状態遷移情報を受取る必要がある。論理合成による実現例以下、図7及び図8を参照して、本発明の論理合成モジュールによる実現例を示す。図7Aは論理合成すべきソースコードの一例である。x=abはconfig1に合成し、y=cdはconfig2に合成し、z=x-y及びw=xyはconfig3に合成する。図7BはこのソースコードをDFGデータフローグラフ表現した例である。図中矩形はレジスタを、丸は演算器を表している。演算器内に付された記号は演算器の動作加算が、減算が-、乗算がである。を示している。時間の流れに沿って、上から下へとデータが流れるように表現されている。config1で計算したxはconfig3で使用するため、変数xが生成される。変数xはconfig2では演算に使用されず、値を保持するためにのみ使用される。その結果、変数xはconfig1、config2、config3を通じて生存することになり、そのライフタイムが3となる。図8Aは論理合成すべきソースコードに本発明の方法に従って変形を加えてた例である。x=abがconfig1に合成されるのは図7Aと同様である。しかし、y=cdのみならずxをx’にコピーするところのx’=xが共にconfig2に合成される。そして、x’-y及びw=x’yがconfig3に合成される。図8BはこのソースコードをDFGデータフローグラフ表現した例である。config1で計算したxはconfig2においてx’にコピー移動される。config3で使用する変数は変数x’である。その結果、変数xはconfig1及びconfig2を通じてのみ生存し、そのライフタイムは2となる。また、変数x’はconfig2及びconfig3を通じてのみ生存することになり、そのライフタイムは2となる。なお、本発明の論理合成モジュールによる実現例として、config1で計算したxはconfig2においてx’にコピー移動される例を示したが、コンフィギュレーション情報を生成するための計算量が所定の範囲内の場合またはクリティカルパスが所定の範囲内の場合は,xはx’にコピー移動されず,そのまま生存されてもよい。以上のようにして論理合成モジュール202において変数のライフタイムを制限しつつ論理合成を行う結果、次の段の配置配線モジュール203における計算量を減らすことができるとともに配置の自由度を向上することが可能となる。クリティカルパスの考慮による動作速度の改善プロセッサエレメントPE間の配線遅延は、データを出力するプロセッサエレメントPEとデータを入力するプロセッサエレメントPEのマンハッタン距離によって規定される。ここでマンハッタン距離とは、行の差の絶対値及び列の差の絶対値の和である。最も遅延が生じる距離は、図2を例にとると、0行0列のプロセッサエレメントPEとy行x列のプロセッサエレメントPE間であるしたがって、これがクリティカルパスとなる。。一般的なリコンフィギュラブルプロセッサにおいては、一定の周波数のクロック信号を用いて、そのクロックの周期又は分周したクロックの周期に従って動作を行っていた。そして、クリティカルパスにおける信号遅延時間が発生したとしても、誤動作を行わないようなクロック信号を選択していた。図9には、図7Aのソースコードによって示される処理を配置配線した例である。x=abはconfig1に合成し、y=cdはconfig2に合成し、z=x-y及びw=xyはconfig3に合成する。この図から明らかなように、config1は、演算処理を行うプロセッサエレメントと引数a及びb、処理結果xの保持を行うプロセッサエレメントとがいずれも距離1であるために、最適化配置がなされている。config2においても、演算処理を行うプロセッサエレメントと引数c及びd、処理結果yの保持を行うプロセッサエレメントとがいずれも距離1であるために、最適化配置がなされている。しかしながら、config3においては、演算処理を行うプロセッサエレメントと引数xの保持を行うプロセッサエレメントとが距離3乃至4であるために、最適化配置されていない。これでは、変数の受け渡しを行うべきプロセッサエレメントと演算処理を行うプロセッサエレメントとの間にクリティカルパスが形成され、十分な速度を得ることができない。クロック周波数が一定の場合にはこのクリティカルパスを前提にした低速なクロックを選択する必要があり、全体的に動作が遅くなるおそれがある。図10には、図8Aのソースコードによって示される処理を配置配線した例である。この図から明らかなように、config1は、演算処理を行うプロセッサエレメントと引数a及びb、処理結果xの保持を行うプロセッサエレメントとがいずれも距離1であるために、最適化配置がなされている。config2においても、演算処理を行うプロセッサエレメントと引数c及びd、処理結果yの保持を行うプロセッサエレメントと、並びにxとx’を保持するプロセッサエレメントがいずれも距離1であるために、最適化配置がなされている。そして、config3においては、演算処理を行うプロセッサエレメントと引数xの保持を行うプロセッサエレメントとが最大2となっている。その結果、クリティカルパスは距離2であり、これに応じてクロックの速度を早めることができ、クロック周波数が一定の場合にはこのクリティカルパスを前提にした高速なクロックを選択することが可能となり、全体的に動作が早くなる。図10では、距離を2以下に制限した例を示したが、さらに自由度を上げて、2以上の所定の距離となるように制限することも可能である。そして、そのような制限を加えた形で変数を保持するプロセッサエレメントを選択する。以上、本発明の実施例にかかるリコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツールを説明したが、本発明は上述の実施例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。"