(57)【要約】【課題】実行中の処理の終了を待つことなく、演算内容を割り当てることができるようにして、処理全体の高速化を図る。【解決手段】実行する処理の演算内容と上記処理を実行する際に必要なＰＥ３の個数を記憶している処理基幹メモリ５と、動的再構成回路２を構成しているＰＥ３の中で、現在処理を実行していないＰＥ３を検出する空き領域検出部６と、空き領域検出部６により検出されたＰＥ３の中から、処理基幹メモリ５により記憶されている個数分のＰＥ３を選択する回路構成生成部７とを設け、マッピング制御部８が回路構成生成部７により選択されたＰＥ３に対して上記演算内容を割り当てるように構成する。【選択図】図２
2010211496.tif 000002
【特許請求の範囲】
【請求項１】
複数の論理セルから構成されており、演算内容が割り当てられた論理セルが当該演算内容に係る処理を実行する動的再構成回路と、実行する処理の演算内容と上記処理を実行する際に必要な論理セルの個数を記憶している記憶手段と、上記動的再構成回路を構成している論理セルの中で、現在処理を実行していない論理セルを検出する未実行論理セル検出手段と、上記未実行論理セル検出手段により検出された論理セルの中から、上記記憶手段により記憶されている個数分の論理セルを選択する論理セル選択手段と、上記論理セル選択手段により選択された論理セルに対して上記記憶手段により記憶されている演算内容を割り当てる演算内容割当手段とを備えた動的再構成装置。
【請求項２】
動的再構成回路及び演算内容割当手段が動的再構成デバイスに実装され、記憶手段、未実行論理セル検出手段及び論理セル選択手段が上記動的再構成デバイスの外部に設けられていることを特徴とする請求項１記載の動的再構成装置。
【請求項３】
動的再構成回路は、現在、演算内容が割り当てられている論理セルを示すマッピング状況を未実行論理セル検出手段に通知することを特徴とする請求項１または請求項２記載の動的再構成装置。
【請求項４】
動的再構成回路は、複数の論理セルがブロック単位に領域分けされている場合、現在、演算内容が割り当てられているブロックを示すマッピング状況を未実行論理セル検出手段に通知することを特徴とする請求項１または請求項２記載の動的再構成装置。
【請求項５】
未実行論理セル検出手段は、動的再構成回路を構成している論理セルを示すアドレスと上記論理セルが実行中であるか否かを示すフラグが対になっているアドレステーブルと、演算内容割当手段による演算内容の割当状況にしたがって上記アドレステーブル内のフラグを更新するフラグ更新手段と、上記アドレステーブル内のフラグのうち、現在処理を実行していない旨を示すフラグに対応するアドレスを論理セル選択手段に通知するアドレス通知手段とを設けたことを特徴とする請求項３記載の動的再構成装置。
【請求項６】
未実行論理セル検出手段は、動的再構成回路を構成しているブロックを示すアドレスと上記ブロックが実行中であるか否かを示すフラグが対になっているアドレステーブルと、演算内容割当手段による演算内容の割当状況にしたがって上記アドレステーブル内のフラグを更新するフラグ更新手段と、上記アドレステーブル内のフラグのうち、現在処理を実行していない旨を示すフラグに対応するアドレスを論理セル選択手段に通知するアドレス通知手段とを設けたことを特徴とする請求項４記載の動的再構成装置。
【請求項７】
動的再構成回路を構成している論理セルが処理を開始する前に、実行予定の処理の演算内容から、上記処理を実行する際に必要な論理セルの個数を算出し、上記個数を記憶手段に格納する個数算出手段を設けたことを特徴とする請求項１から請求項６のうちのいずれか１項記載の動的再構成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の異なる処理を実行することが可能な動的再構成回路を実装している動的再構成装置に関するものである。
【背景技術】
【０００２】
動的再構成装置である動的再構成デバイスは、処理対象の回路構成を示す回路構成情報を動的にマッピングすることで、適宜、回路構成を切り替えれば、複数の処理を実行することができる。
動的再構成デバイスを用いて、順次処理を実行するようなアプリケーションを実現する場合、次の処理を実行する前に回路構成情報のマッピングを切り替える必要がある。
【０００３】
例えば、以下の特許文献１には、以下に示すような動的再構成デバイスが開示されている。
次の処理を実行させる回路の一部の領域が、現在処理を実行している場合、次の処理の回路構成情報を、現在処理を実行している回路と重なる部分と、現在処理を実行している回路と重ならない部分とに分割する。
そして、重ならない部分の回路構成情報については、現在処理を実行している回路の処理と並行してマッピングし、重なる部分の回路構成情報については、現在処理を実行している回路の処理が終了してからマッピングする。
【０００４】
これにより、重ならない部分の回路構成情報については、直ちにマッピングすることができる。
しかし、処理ごとにマッピングする回路の領域が固定されているため、動的再構成デバイスの全体では、現在処理を実行していない回路が多く残っている場合でも、重なる部分の回路構成情報については、現在処理を実行している回路の処理が終了するまでマッピングすることができず、処理を開始するまでに遅延が発生する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−３２０２７１号公報（段落番号［００４５］、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の動的再構成装置は以上のように構成されているので、現在処理を実行していない回路が多く残っている場合でも、次の処理を実行させる回路の一部の領域が、現在処理を実行している場合、現在処理を実行している回路と重なる部分の回路構成情報については、現在処理を実行している回路の処理が終了するまでマッピングすることができず、処理を開始するまでに遅延が発生するなどの課題があった。
【０００７】
この発明は上記のような課題を解決するためになされたもので、実行中の処理の終了を待つことなく、演算内容を割り当てることができるようにして、処理全体の高速化を図ることができる動的再構成装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る動的再構成装置は、実行する処理の演算内容と上記処理を実行する際に必要な論理セルの個数を記憶している記憶手段と、動的再構成回路を構成している論理セルの中で、現在処理を実行していない論理セルを検出する未実行論理セル検出手段と、未実行論理セル検出手段により検出された論理セルの中から、記憶手段により記憶されている個数分の論理セルを選択する論理セル選択手段とを設け、演算内容割当手段が論理セル選択手段により選択された論理セルに対して記憶手段により記憶されている演算内容を割り当てるようにしたものである。
【発明の効果】
【０００９】
この発明によれば、実行する処理の演算内容と上記処理を実行する際に必要な論理セルの個数を記憶している記憶手段と、動的再構成回路を構成している論理セルの中で、現在処理を実行していない論理セルを検出する未実行論理セル検出手段と、未実行論理セル検出手段により検出された論理セルの中から、記憶手段により記憶されている個数分の論理セルを選択する論理セル選択手段とを設け、演算内容割当手段が論理セル選択手段により選択された論理セルに対して記憶手段により記憶されている演算内容を割り当てるように構成したので、実行中の処理の終了を待つことなく、演算内容を割り当てることができるようになり、その結果、処理全体の高速化を図ることができる効果がある。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１による動的再構成装置を示す構成図である。
【図２】この発明の実施の形態１による動的再構成装置の構成情報生成部４を示す構成図である。
【図３】動的再構成回路２を構成しているＰＥ３の内部を示す構成図である。
【図４】この発明の実施の形態１による動的再構成装置の処理内容を示すフローチャートである。
【図５】２種類のプログラム（Ｐ１、Ｐ２）の処理順序を示す説明図である。
【図６】図１の動的再構成装置が２種類のプログラム（Ｐ１、Ｐ２）を実行する場合の処理経過を示す説明図である。
【図７】図１の動的再構成装置が２種類のプログラム（Ｐ１、Ｐ２）を実行する場合の処理経過を示すタイミングチャートである。
【図８】この発明の実施の形態１による他の動的再構成装置を示す構成図である。
【図９】この発明の実施の形態２による動的再構成装置の動的再構成回路２を示す構成図である。
【図１０】この発明の実施の形態２による動的再構成装置の他の動的再構成回路２を示す構成図である。
【図１１】この発明の実施の形態３による動的再構成装置を示す構成図である。
【図１２】この発明の実施の形態３による動的再構成装置の処理内容を示す説明図である。
【図１３】個数算出手段の処理内容を示すフローチャートである。
【発明を実施するための形態】
【００１１】
実施の形態１．
図１はこの発明の実施の形態１による動的再構成装置を示す構成図であり、図２はこの発明の実施の形態１による動的再構成装置の構成情報生成部４を示す構成図である。
図１及び図２において、動的再構成装置である動的再構成デバイス１は複数の異なる処理を実行することが可能な動的再構成回路２を実装しているデバイスである。
動的再構成回路２は論理セルであるＰＥ（Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ）３がアレイ状に並べて構成されており、マッピング制御部８から出力されたマッピング情報Ｓ３によって演算内容が割り当てられたＰＥ３が当該演算内容に係る処理を実行する。
【００１２】
構成情報生成部４は動的再構成回路１を構成しているＰＥ３の中で、現在処理を実行していないＰＥ３を検出し、現在処理を実行していないＰＥ３の中から、処理を実行する際に必要な個数分のＰＥ３を選択する処理を実行する。
構成情報生成部４の処理基幹メモリ５は実行する処理の演算内容（例えば、加算、減算、乗算、除算など）と上記処理を実行する際に必要なＰＥ３の個数を記憶しているメモリである。なお、処理基幹メモリ５は記憶手段を構成している。
【００１３】
構成情報生成部４の空き領域検出部６は動的再構成回路１を構成しているＰＥ３の中で、現在処理を実行していないＰＥ３を検出し、そのＰＥ３を示す空き領域情報を出力する処理を実施する。なお、空き領域検出部６は未実行論理セル検出手段を構成している。
構成情報生成部４の回路構成生成部７は空き領域検出部６から出力された空き領域情報を参照して、現在処理を実行していないＰＥ３を認識し、現在処理を実行していないＰＥ３の中から、処理基幹メモリ５に記憶されている個数分のＰＥ３を選択し、その選択した複数のＰＥ３を示す選択情報と、その選択した各ＰＥ３が処理する演算内容とを含む構成情報Ｓ２をマッピング制御部８に出力する処理を実施する。なお、回路構成生成部７は論理セル選択手段を構成している。
【００１４】
マッピング制御部８は構成情報生成部４の回路構成生成部７から出力された構成情報Ｓ２に含まれている選択情報が示すＰＥ３に対して、その構成情報Ｓ２に含まれている演算内容を割り当てる旨を示すマッピング情報Ｓ３を動的再構成回路２に出力する処理を実施する。
なお、マッピング制御部８は演算内容割当手段を構成している。
【００１５】
図３は動的再構成回路２を構成しているＰＥ３の内部を示す構成図である。
図３において、マッピング判定部１１はマッピング制御部８からマッピング情報Ｓ３を受けると、そのマッピング情報Ｓ３に含まれている演算内容を演算処理部１２に割り当てるとともに、当該ＰＥ３が現在処理中である旨（空き領域でない旨）を示す領域情報Ｓ１を構成情報生成部４に出力し、その演算処理部１２が当該演算内容の処理を終了すると、当該ＰＥ３が現在処理を実行していない旨（空き領域である旨）を示す領域情報Ｓ１を構成情報生成部４に出力する処理を実施する。
演算処理部１２はマッピング判定部１１により割り当てられた演算内容を処理する。
【００１６】
次に動作について説明する。
図４はこの発明の実施の形態１による動的再構成装置の処理内容を示すフローチャートである。
動的再構成回路２を構成している各ＰＥ３のマッピング判定部１１は、マッピング制御部８からマッピング情報Ｓ３の出力を受けて、現在、演算処理部１２が演算処理を実施していれば、現在処理中である旨（空き領域でない旨）を示す領域情報Ｓ１を構成情報生成部４に出力する。
一方、マッピング制御部８からマッピング情報Ｓ３の出力を受けていない場合、あるいは、マッピング制御部８からマッピング情報Ｓ３の出力を受けていても、既に演算処理部１２の演算処理が終了している場合、現在処理を実行していない旨（空き領域である旨）を示す領域情報Ｓ１を構成情報生成部４に出力する。
【００１７】
構成情報生成部４の空き領域検出部６は、動的再構成回路２を構成している全てのＰＥ３のマッピング判定部１１から領域情報Ｓ１を収集する。
空き領域検出部６は、全てのＰＥ３のマッピング判定部１１から領域情報Ｓ１を収集すると、その領域情報Ｓ１の内容を参照することで、動的再構成回路１を構成しているＰＥ３の中で、現在処理を実行していない（空き領域である）ＰＥ３を検出し、そのＰＥ３を示す空き領域情報を回路構成生成部７に出力する（ステップＳＴ１）。
【００１８】
構成情報生成部４の回路構成生成部７は、空き領域検出部６から空き領域情報を受けると、その空き領域情報を参照して、現在処理を実行していないＰＥ３を認識する。
また、回路構成生成部７は、処理基幹メモリ５に記憶されている演算内容と、その演算内容に係る処理を実行する際に必要なＰＥ３の個数Ｎを取得する。
回路構成生成部７は、例えば、現在処理を実行していないＰＥ３の個数がＭであり、その個数Ｍが、処理を実行する際に必要なＰＥ３の個数Ｎより大きければ、現在処理を実行していないＭ個のＰＥ３の中から、Ｎ個のＰＥ３を選択する。
動的再構成回路２を構成しているＰＥ３はどれも同じ処理能力を有し、どのＰＥ３でも、割り当てられた演算内容を同じように処理する論理セルであるため、選択するＰＥ３は任意でよく、ＰＥ３の選択方法を特に限定するものではない。
【００１９】
回路構成生成部７は、Ｎ個のＰＥ３を選択すると、Ｎ個のＰＥ３を示す選択情報と、Ｎ個のＰＥ３が処理する演算内容とを含む構成情報Ｓ２をマッピング制御部８に出力する（ステップＳＴ２）。
例えば、処理基幹メモリ５に記憶されている演算内容が、下記に示すような３つの演算ステップをシリアルに実行するものであり、処理を実行する際に必要なＰＥ３の個数が３個である場合、３個のＰＥ３を直列に接続して、先頭のＰＥ３に（ステップ１）の演算内容、次のＰＥ３に（ステップ２）の演算内容、最後のＰＥ３に（ステップ３）の演算内容を割り当てる必要がある。
（ステップ１）  ａとｂを加算
（ステップ２）  ステップ１の演算結果にｃを乗算
（ステップ３）  ステップ１の演算結果をｄで除算
したがって、構成情報Ｓ２に含まれる選択情報は、単に選択したＰＥ３を示す情報だけでなく、選択した複数のＰＥ３間の接続情報を含む情報である。
ここでは、説明の簡単化のため、各ステップの演算内容が極めて簡単な四則演算の例を示しているが、実際には、もっと複雑な演算の場合が多い。
【００２０】
マッピング制御部８は、構成情報生成部４の回路構成生成部７から構成情報Ｓ２を受けると、その構成情報Ｓ２に含まれている選択情報が示すＰＥ３に対して、その構成情報Ｓ２に含まれている演算内容を割り当てる旨を示すマッピング情報Ｓ３を動的再構成回路２に出力する。
【００２１】
動的再構成回路２を構成しているＰＥ３のマッピング判定部１１は、マッピング制御部８からマッピング情報Ｓ３を受けると、そのマッピング情報Ｓ３に含まれている演算内容を演算処理部１２に割り当てる処理を行う（ステップＳＴ３）。
上記の例では、Ｎ個のＰＥ３を選択しているので、Ｎ個のＰＥ３がマッピング制御部８からマッピング情報Ｓ３を受けて、そのマッピング情報Ｓ３に含まれている演算内容を演算処理部１２に割り当てることになる。
マッピング判定部１１は、上述したように、そのマッピング情報Ｓ３に含まれている演算内容を演算処理部１２に割り当てると、当該ＰＥ３が現在処理中である旨（空き領域でない旨）を示す領域情報Ｓ１を構成情報生成部４に出力する。
【００２２】
ＰＥ３の演算処理部１２は、マッピング判定部１１から演算内容が割り当てられると、その演算内容に係る処理を実行する（ステップＳＴ４）。
なお、マッピング判定部１１により演算内容が割り当てられた演算処理部１２は、既に演算内容が割り当てられて処理を実行している他のＰＥ３の演算処理部１２とは独立しているので、他のＰＥ３の演算処理部１２と並行して処理を実行することになる。
図１の動的再構成装置は、次に実行する処理があれば、ステップＳＴ１〜ＳＴ４を繰り返し実行し、次に実行する処理がなければ、一連の処理を終了する（ステップＳＴ５）。
【００２３】
ここで、図５は２種類のプログラム（Ｐ１、Ｐ２）の処理順序を示す説明図である。
以下、図１の動的再構成装置が２種類のプログラム（Ｐ１、Ｐ２）を実行する場合の動作を説明する。
図６は図１の動的再構成装置が２種類のプログラム（Ｐ１、Ｐ２）を実行する場合の処理経過を示す説明図である。
【００２４】
ただし、図５のプログラム（Ｐ１、Ｐ２）は、３種類の演算処理Ａ，Ｂ，Ｃで構成されており、プログラム（Ｐ１）は演算処理Ａ，Ｂ，Ｃの順に実行され、プログラム（Ｐ２）は演算処理Ｃ，Ａ，Ｂの順に実行される。
また、全体の演算処理の実行順序は、（Ｐ１）Ａ→（Ｐ２）Ｃ→（Ｐ１）Ｂ→（Ｐ２）Ａ→（Ｐ１）Ｃ→（Ｐ２）Ｂである。
なお、演算処理Ａ，Ｂ，Ｃは、プログラム（Ｐ１）、プログラム（Ｐ２）において、同じ処理である。
以下では、動的再構成装置上で実行されるプログラムは、プログラム（Ｐ１）とプログラム（Ｐ２）だけであり、実行を開始する前は、動的再構成回路２のＰＥ３にマッピングされている処理はなく、停止しているものとする。
【００２５】
最初に、構成情報生成部４がプログラム（Ｐ１）の演算処理Ａを実行するために、その演算処理Ａの構成情報Ｓ２を生成する。
マッピング制御部８は、構成情報生成部４が演算処理Ａの構成情報Ｓ２を生成すると、その構成情報Ｓ２にしたがってマッピング情報Ｓ３を生成し、そのマッピング情報Ｓ３をプログラム（Ｐ１）の演算処理Ａを実行するＰＥ３に出力する。
これにより、図６（ａ）に示すように、そのＰＥ３の演算処理部１２によりプログラム（Ｐ１）の演算処理Ａが実行される。
【００２６】
このとき、構成情報生成部４は、動的再構成回路２を構成している全てのＰＥ３のマッピング判定部１１から領域情報Ｓ１を収集して、動的再構成回路２上の空き領域を検出し、次に実行するプログラム（Ｐ２）の演算処理Ｃの構成情報Ｓ２を生成する（図６（ａ）を参照）。
マッピング制御部８は、構成情報生成部４がプログラム（Ｐ２）の演算処理Ｃの構成情報Ｓ２を生成すると、その構成情報Ｓ２にしたがってマッピング情報Ｓ３を生成し、そのマッピング情報Ｓ３をプログラム（Ｐ２）の演算処理Ｃを実行するＰＥ３に出力する。
これにより、図６（ｂ）に示すように、そのＰＥ３の演算処理部１２によりプログラム（Ｐ２）の演算処理Ｃが実行される。
図６（ｂ）の例では、まだプログラム（Ｐ１）の演算処理Ａが終了していないので、プログラム（Ｐ１）の演算処理Ａとプログラム（Ｐ２）の演算処理Ｃが並行に実行されている。
【００２７】
図６（ｃ）に示すように、プログラム（Ｐ１）の演算処理Ａが終了すると、その演算処理Ａが割り当てられていたＰＥ３が未使用状態（空き領域）となり、そのＰＥ３のマッピング判定部１１から現在使用していない旨（空き領域である旨）を示す領域情報Ｓ１が構成情報生成部４に出力される。
構成情報生成部４は、動的再構成回路２を構成している全てのＰＥ３のマッピング判定部１１から領域情報Ｓ１を収集して、動的再構成回路２上の空き領域を検出し、次に実行するプログラム（Ｐ１）の演算処理Ｂの構成情報Ｓ２を生成する（図６（ｃ）を参照）。
マッピング制御部８は、構成情報生成部４がプログラム（Ｐ１）の演算処理Ｂの構成情報Ｓ２を生成すると、その構成情報Ｓ２にしたがってマッピング情報Ｓ３を生成し、そのマッピング情報Ｓ３をプログラム（Ｐ１）の演算処理Ｂを実行するＰＥ３に出力する。
これにより、図６（ｄ）に示すように、そのＰＥ３の演算処理部１２によりプログラム（Ｐ１）の演算処理Ｂが実行される。
図６（ｄ）の例では、まだプログラム（Ｐ２）の演算処理Ｃが終了していないので、プログラム（Ｐ２）の演算処理Ｃとプログラム（Ｐ１）の演算処理Ｂが並行に実行されている。
【００２８】
以下、プログラム（Ｐ２）の演算処理Ａ、プログラム（Ｐ１）の演算処理Ｃ、プログラム（Ｐ２）の演算処理Ｂについても、同様の手順で実行される（図６（ｅ）〜（ｋ）を参照）。
上述したように、例えば、プログラム（Ｐ１）の演算処理Ａとプログラム（Ｐ２）の演算処理Ａは、同じ処理であるため、その演算処理Ａに使用されるＰＥ３の個数は同一であり、使用するＰＥ３の個数が同じであれば、どのＰＥ３が実行してもよい。
このため、プログラム（Ｐ１）の演算処理Ａを実行しているＰＥ３は、図６（ａ）に示すように、動的再構成回路２の左下領域に配置されているＰＥであるのに対し、プログラム（Ｐ２）の演算処理Ａを実行しているＰＥ３は、図６（ｈ）に示すように、動的再構成回路２の上領域に配置されているＰＥであり、使用しているＰＥ３が相違している。
このように、動的再構成回路２を構成しているＰＥ３のうち、空き状態のＰＥ３を検出して、空き状態のＰＥ３を適宜使用することで、リソースを効率よく使用することができる。
【００２９】
ここで、図７は図１の動的再構成装置が２種類のプログラム（Ｐ１、Ｐ２）を実行する場合の処理経過を示すタイミングチャートである。
時刻ｔ０で、動的再構成回路２に対するプログラム（Ｐ１）の演算処理Ａのマッピングが開始され、時刻ｔ１で、プログラム（Ｐ１）の演算処理Ａのマッピングが完了すると、プログラム（Ｐ１）の演算処理Ａの実行が開始される。
また同時に、次に実行するプログラム（Ｐ２）の演算処理Ｃの構成情報Ｓ２の生成が開始され、時刻ｔ２で、プログラム（Ｐ２）の演算処理Ｃの構成情報Ｓ２が生成されると、プログラム（Ｐ２）の演算処理Ｃのマッピングが開始され、時刻ｔ３で、プログラム（Ｐ２）の演算処理Ｃのマッピングが完了すると、プログラム（Ｐ２）の演算処理Ｃの実行が開始され、まだプログラム（Ｐ１）の演算処理Ａの処理が終了していないので、プログラム（Ｐ１）の演算処理Ａと平行して実行される。
【００３０】
次に、プログラム（Ｐ１）の演算処理Ａが終了したのち、時刻ｔ４で、次に実行するプログラム（Ｐ１）の演算処理Ｂの構成情報Ｓ２の生成が開始され、時刻ｔ５で、プログラム（Ｐ１）の演算処理Ｂの構成情報Ｓ２が生成されると、プログラム（Ｐ１）の演算処理Ｂのマッピングが開始され、時刻ｔ６で、プログラム（Ｐ１）の演算処理Ｂのマッピングが完了すると、プログラム（Ｐ１）の演算処理Ｂの実行が開始され、まだプログラム（Ｐ２）の演算処理Ｃの処理が終了していないので、プログラム（Ｐ２）の演算処理Ｃの処理と平行して実行される。
以下、同様に、処理が終了した後、構成情報の生成、マッピング、処理の実行が行われる。前に実行されている処理と並行して実行されるため、前に実行されている処理を妨げることはない。
【００３１】
以上で明らかなように、この実施の形態１によれば、実行する処理の演算内容と上記処理を実行する際に必要なＰＥ３の個数を記憶している処理基幹メモリ５と、動的再構成回路２を構成しているＰＥ３の中で、現在処理を実行していないＰＥ３を検出する空き領域検出部６と、空き領域検出部６により検出されたＰＥ３の中から、処理基幹メモリ５により記憶されている個数分のＰＥ３を選択する回路構成生成部７とを設け、マッピング制御部８が回路構成生成部７により選択されたＰＥ３に対して上記演算内容を割り当てるように構成したので、実行中の処理の終了を待つことなく、演算内容を割り当てることができるようになり、その結果、処理全体の高速化を図ることができる効果を奏する。
【００３２】
即ち、この実施の形態１によれば、複数の処理からなる異なるプログラムを並列に実行する場合、各プログラムにおいて処理を実行するＰＥ３の構成情報Ｓ２を固定せず、動的再構成回路２上にマッピングする際に、ＰＥ３の空き状況に応じて構成情報Ｓ２を動的に生成するため、処理間でマッピングするＰＥ３（領域）が重なることがなく、マッピングすることができる。
また、動的再構成回路２上に処理を実行しているＰＥ３が存在する場合でも、実行中の処理は継続され、かつ、マッピング完了後処理を開始した場合であっても、実行中の処理と並行動作が可能であるため、実行中の処理の終了を待つ必要がなくなり、処理全体の高速化を実現することができる。
【００３３】
なお、この実施の形態１では、構成情報生成部４が動的再構成デバイス１に実装されているものについて示したが、構成情報生成部４については、図８に示すように、動的再構成デバイス１の外部に設けられていてもよい。
【００３４】
実施の形態２．
上記実施の形態１では、動的再構成回路２を構成しているＰＥ３が別個独立であるものについて示したが、図９に示すように、複数のＰＥ３がブロック単位に領域分けされていてもよい。
図９では、１つのブロックＢ１，Ｂ２・・・が、９個のＰＥ３から構成されている例を示しているが、１つのブロックに含まれるＰＥ３の個数は、例えば、設計者が任意に決定することができる。
【００３５】
このように、複数のＰＥ３がブロック単位に領域分けする場合、各ブロックを構成する複数のＰＥ３の中の代表ＰＥ３ａのマッピング判定部１１が、同じブロック内のＰＥ３のマッピング判定部１１から出力される領域情報Ｓ１を集約して、当該ブロックのマッピング状況を判定する。
即ち、代表ＰＥ３ａは、同じブロック内の全てのＰＥ３の空き状態を判定し、いずれか１つのＰＥ３でも、空き状態ではなく、現在処理を実行していれば、当該ブロックには、現在、演算内容が割り当てられており、空き状態ではない旨を示すマッピング状況を、当該ブロックの領域情報Ｓ１として構成情報生成部４に出力する。
【００３６】
図９の例では、代表ＰＥ３ａのマッピング判定部１１が、同じブロック内のＰＥ３のマッピング判定部１１から出力される領域情報Ｓ１を集約して、当該ブロックのマッピング状況を判定するものについて示したが、図１０に示すように、ブロック毎に、ＰＥブロックマッピング判定部３ｂを設け、ＰＥブロックマッピング判定部３ｂが、代表ＰＥ３ａと同様の方法、当該ブロック内のＰＥ３のマッピング判定部１１から出力される領域情報Ｓ１を集約して、当該ブロックのマッピング状況を判定するようにしてもよい。
【００３７】
実施の形態３．
図１１はこの発明の実施の形態３による動的再構成装置を示す構成図であり、図１２はこの発明の実施の形態３による動的再構成装置の処理内容を示す説明図である。
図１１及び図１２において、図１と同一符号は同一又は相当部分を示すので説明を省略する。
空き領域検出部６のアドレステーブル部２１は動的再構成回路２を構成しているＰＥ３を示すＰＥアドレスＳ１１と、そのＰＥ３が実行中であるか否かを示すマッピングフラグＳ１２とが対になっているアドレステーブルを保持している。
【００３８】
アドレス禁止制御部２２はマッピング制御部８から出力されるマッピング情報Ｓ３にしたがってアドレステーブル部２１により保持されているアドレステーブル内のマッピングフラグＳ１２を更新する処理を実施する。なお、アドレス禁止制御部２２はフラグ更新手段を構成している。
アドレス範囲指定部２３はアドレステーブル部２１により保持されているアドレステーブル内のマッピングフラグＳ１２のうち、現在処理を実行していない旨を示すマッピングフラグＳ１２に対応するＰＥアドレスＳ１１を空き領域情報として回路構成生成部７に出力する処理を実施する。なお、アドレス範囲指定部２３はアドレス通知手段を構成している。
【００３９】
次に動作について説明する。
例えば、動的再構成回路２が１６個のＰＥ３（４×４のＰＥアレイ）で構成されている場合、図１２に示すように、１６個のＰＥ３を示すＰＥアドレスＳ１１として、４ビット“００００”〜“１１１１”のアドレスがアドレステーブルに設定される。なお、ＰＥアドレスＳ１１の下位２ビットは４×４のＰＥアレイの列方向を表し、上位２ビットは４×４のＰＥアレイの行方向を表している。
マッピングフラグＳ１２は、ＰＥアドレスＳ１１が示すＰＥ３が現在未使用（空き領域）であれば“０”が設定され、現在使用中であれば、“１”が設定される。
動的再構成装置の動作が開始される前は、初期状態として、全てのマッピングフラグＳ１２が“０”に設定される。
図１２の例では、ＰＥアドレスＳ１１が“０１０１”，“０１１０”，“１００１”，“１０１０”であるＰＥ３が現在使用中であるとして“１”が設定され、その他のＰＥ３が現在未使用（空き領域）として“０”が設定されている。
【００４０】
アドレス禁止制御部２２は、マッピング制御部８からマッピング情報Ｓ３が出力されると、そのマッピング情報Ｓ３の出力先であるＰＥ３には、演算内容が割り当てられるので、そのＰＥ３のＰＥアドレスＳ１１に対応するマッピングフラグＳ１２を“０”から“１”に変更する。
例えば、マッピング情報Ｓ３の出力先であるＰＥ３が、“０００１”のＰＥ３であれば、ＰＥアドレスＳ１１“０００１”に対応するマッピングフラグＳ１２を“０”から“１”に変更する。
アドレス禁止制御部２２は、動的再構成回路２を構成しているＰＥ３のマッピング判定部１１から、現在処理を実行していない旨（空き領域である旨）を示す領域情報Ｓ１を受けると、現在、そのＰＥ３のマッピングフラグＳ１２が“１”であれば、“１”から“０”に変更する。
【００４１】
アドレス範囲指定部２３は、アドレステーブル部２１により保持されているアドレステーブル内のマッピングフラグＳ１２のうち、“０”のマッピングフラグＳ１２に対応するＰＥアドレスＳ１１を空き領域情報として回路構成生成部７に出力する。
図１２の例では、ＰＥアドレスＳ１１“００００”〜“０１００”，“０１１１”〜“１０００”，“１０１１”〜“１１１１”を空き領域情報として回路構成生成部７に出力する。
【００４２】
ここでは、アドレス範囲指定部２３から出力されるＰＥアドレスＳ１１は、連続している３つのＰＥアドレス群であるが、上位２ビットと下位２ビットで行と列を表しているため、動的再構成回路２上の連続した空き領域を表している。
例えば、ＰＥアドレスＳ１１の“０１００”と“１０００”は、動的再構成回路２の“００”列の２行目と３行目のＰＥ３を表しているため、列方向に連続する２つのＰＥ３が空き領域となっていることがわかる。
回路構成生成部７は、アドレス範囲指定部２３から“０”のマッピングフラグＳ１２に対応するＰＥアドレスＳ１１を空き領域情報として受けると、上記実施の形態１と同様に、現在処理を実行していないＰＥ３を認識して、構成情報Ｓ２を生成して出力する。
【００４３】
以上で明らかなように、この実施の形態３によれば、動的再構成回路２を構成しているＰＥ３を示すＰＥアドレスＳ１１とＰＥ３が実行中であるか否かを示すマッピングフラグＳ１２が対になっているアドレステーブルと、マッピング制御部８から出力されるマッピング情報Ｓ３にしたがってアドレステーブル内のマッピングフラグＳ１２を更新するアドレス禁止制御部２２と、そのアドレステーブル内のマッピングフラグＳ１２のうち、“０”のマッピングフラグＳ１２に対応するＰＥアドレスＳ１１を回路構成生成部７に通知するアドレス範囲指定部２３とを設けるように構成したので、分割された空き領域のＰＥ３がある場合でも、その空き領域のＰＥ３の位置と個数を容易に特定することができる効果を奏する。
【００４４】
なお、この実施の形態３では、アドレステーブルが、動的再構成回路２を構成しているＰＥ３を示すＰＥアドレスＳ１１を管理しているものについて示したが、複数のＰＥ３から構成されているブロックＢ１，Ｂ２・・・を示すブロックアドレスを管理するようにしてもよい。
この場合、アドレス禁止制御部２２は、マッピング制御部８からマッピング情報Ｓ３が出力されるブロックのブロックアドレスに対応するマッピングフラグＳ１２を“０”から“１”に変更する。
アドレス範囲指定部２３は、アドレステーブル部２１により保持されているアドレステーブル内のマッピングフラグＳ１２のうち、“０”のマッピングフラグＳ１２に対応するブロックアドレスを空き領域情報として回路構成生成部７に出力する。
【００４５】
この実施の形態３では、アドレス禁止制御部２２が、マッピング制御部８から出力されるマッピング情報Ｓ３にしたがって、アドレステーブル内のマッピングフラグＳ１２を更新するものについて示したが、この更新処理をマッピング制御部８が実施するようにしてもよい。
【００４６】
実施の形態４．
上記実施の形態１〜３では、処理を実行する際に必要なＰＥ３の個数が構成情報生成部４の処理基幹メモリ５に記憶されているものについて示したが、動的再構成回路２を構成しているＰＥ３が処理を開始する前に、実行予定の処理の演算内容から、その処理を実行する際に必要なＰＥ３の個数を算出し、その個数を処理基幹メモリ５に格納する個数算出手段（図示せず）を設けるようにしてもよい。
【００４７】
図１３は個数算出手段の処理内容を示すフローチャートである。
まず、個数算出手段は、外部から実行予定の処理の演算内容（例えば、プログラムの動作記述）を入力すると、その演算内容にしたがって構成情報Ｓ２を生成する（ステップＳＴ１１）。
例えば、実行予定の処理の演算内容と、一般的なＰＥ（図１等のＰＥ３とは異なる）の処理能力を比べて、その演算内容に係る処理を実行する際に必要なＰＥの個数Ｎを推測し、そのＮ個のＰＥを示す選択情報と、Ｎ個のＰＥが処理する演算内容とを含む構成情報Ｓ２を生成する。
【００４８】
マッピング制御部８は、個数算出手段が構成情報Ｓ２を生成すると、その構成情報Ｓ２に含まれている選択情報が示すＰＥ３に対して、その構成情報Ｓ２に含まれている演算内容を割り当てる旨を示すマッピング情報Ｓ３を動的再構成回路２に出力する（ステップＳＴ１２）。
【００４９】
動的再構成回路２を構成しているＰＥ３のマッピング判定部１１は、マッピング制御部８からマッピング情報Ｓ３を受けると、そのマッピング情報Ｓ３に含まれている演算内容を演算処理部１２に割り当てる処理を行う。
これにより、演算処理部１２が割り当てられた演算内容を処理するが、その演算処理部１２の処理能力が一般的なＰＥの処理能力と合致しておらず、例えば、規定の上限時間内に当該演算内容を処理することができなければ、マッピング制御部８が、マッピング情報Ｓ３を変更して、その演算内容に係る処理を実行する際に必要なＰＥの個数Ｎを増やすようにする。
【００５０】
逆に、規定の上限時間内に当該演算内容を処理することができる場合、マッピング制御部８が、マッピング情報Ｓ３を変更して、その演算内容に係る処理を実行する際に必要なＰＥの個数Ｎを減らし、この場合でも、規定の上限時間内に当該演算内容を処理することができるか否かを判定する。
マッピング制御部８は、規定の上限時間内に当該演算内容を処理することができなければ、元の個数に戻すようにする。
【００５１】
個数算出手段は、マッピング制御部８がマッピング情報Ｓ３の変更処理を完了すると、動的再構成回路２を構成しているＰＥ３のマッピング判定部１１から領域情報Ｓ１を取得し、その領域情報Ｓ１から当該演算内容が割り当てられたＰＥ３の個数Ｎ（当該演算内容に係る処理を実行する際に必要なＰＥの個数）を把握し（ステップＳＴ１３）、そのＰＥの個数Ｎを処理基幹メモリ５に格納する（ステップＳＴ１４）。
【符号の説明】
【００５２】
１  動的再構成デバイス、２  動的再構成回路、３  ＰＥ（論理セル）、３ａ  代表ＰＥ、３ｂ  ＰＥブロックマッピング判定部、４  構成情報生成部、５  処理基幹メモリ（記憶手段）、６  空き領域検出部（未実行論理セル検出手段）、７  回路構成生成部（論理セル選択手段）、８  マッピング制御部（演算内容割当手段）、１１  マッピング判定部、１２  演算処理部、２１  アドレステーブル部、２２  アドレス禁止制御部（フラグ更新手段）、２３  アドレス範囲指定部（アドレス通知手段）。
【図１】
2010211496.tif 000003
【図２】
2010211496.tif 000004
【図３】
2010211496.tif 000005
【図４】
2010211496.tif 000006
【図５】
2010211496.tif 000007
【図６】
2010211496.tif 000008
【図７】
2010211496.tif 000009
【図８】
2010211496.tif 000010
【図９】
2010211496.tif 000011
【図１０】
2010211496.tif 000012
【図１１】
2010211496.tif 000013
【図１２】
2010211496.tif 000014
【図１３】
2010211496.tif 000015