(57)【要約】【課題】再構成デバイスから成るデータ処理装置の処理性能を向上できるメモリデバイス管理方法及び装置を提供する。【解決手段】管理データ記憶部に、アプリケーション毎の構成情報が格納される構成情報プール、アプリケーションで必要な初期データが格納される初期データプール、アプリケーションの実行時に該アプリケーションの初期データの保持に用いる再構成デバイスが備える記憶部の領域を示す記憶部要求表、並びに記憶部を使用しているアプリケーションを示す記憶部状況表を備える。管理部は、アプリケーションの実行要求を受信すると、該アプリケーションの構成情報を読み出して記憶部へ書き込み、記憶部要求表及び記憶部状況表を参照して、記憶部に無い該アプリケーションの初期データを記憶部へ書き込む。【選択図】図１
2011175535.tif 000002
【特許請求の範囲】
【請求項１】
再構成デバイスが備える記憶部を管理するためのメモリデバイス管理方法であって、
前記再構成デバイスで実行するアプリケーション毎の構成情報が格納される構成情報プール、前記アプリケーションの処理対象となるデータ及び該アプリケーションで必要なデータを含む初期データが格納される初期データプール、前記アプリケーションの実行時に該アプリケーションの前記初期データの保持に用いる前記記憶部の領域を示す記憶部要求表、並びに前記記憶部を使用しているアプリケーションを示す記憶部状況表を備えた管理データ記憶部を備えておき、
前記アプリケーションの実行要求を受信すると、前記構成情報プールから該アプリケーションの構成情報を読み出して前記記憶部へ書き込み、
前記記憶部要求表及び前記記憶部状況表を参照して、前記記憶部に無い該アプリケーションの前記初期データを前記初期データプールから読み出して前記記憶部へ書き込むメモリデバイス管理方法。
【請求項２】
前記記憶部要求表及び前記記憶部状況表を参照して、実行中のアプリケーションで使用していない前記記憶部の領域に、次に実行するアプリケーションの前記初期データを書き込む請求項２記載のメモリデバイス管理方法。
【請求項３】
前記管理データ記憶部に、
前記アプリケーションによる処理途中のデータである中間データが格納される中間データプール、前記中間データが格納された前記中間データプールの記憶領域を示す中間データ管理表を備え、前記記憶部要求表に前記中間データとして退避や再書き込みが必要であるか否かを示す情報を含み、
前記前記記憶部要求表を参照して、前記アプリケーションの処理時に前記中間データを前記中間データプールに退避させ、該アプリケーションの再実行時に前記記憶部要求表及び前記中間データ管理表を参照して前記中間データプールから所要の中間データを前記記憶部へ書き込む請求項１または２記載のメモリデバイス管理方法。
【請求項４】
前記管理データ記憶部に、
前記記憶部で保持している前記アプリケーションの構成情報を示す構成状況表を備え、
前記構成状況表を参照して、実行中のアプリケーションで使用していない前記記憶部の領域に、次に実行するアプリケーションの構成情報を書き込む請求項１から３のいずれか１項記載のメモリデバイス管理方法。
【請求項５】
再構成デバイスが備える記憶部を管理するメモリデバイス管理装置であって、
前記再構成デバイスで実行するアプリケーション毎の構成情報が格納される構成情報プール、前記アプリケーションの処理対象となるデータ及び該アプリケーションで必要なデータを含む初期データが格納される初期データプール、前記アプリケーションの実行時に該アプリケーションの前記初期データの保持に用いる前記記憶部の領域を示す記憶部要求表、並びに前記記憶部を使用しているアプリケーションを示す記憶部状況表を備えた管理データ記憶部と、
前記アプリケーションの実行要求を受信すると、前記構成情報プールから該アプリケーションの構成情報を読み出して前記記憶部へ書き込み、前記記憶部要求表及び前記記憶部状況表を参照して、前記記憶部に無い該アプリケーションの前記初期データを前記初期データプールから読み出して前記記憶部へ書き込む管理部と、
を有するメモリデバイス管理装置。
【請求項６】
前記管理部は、
前記記憶部要求表及び前記記憶部状況表を参照して、実行中のアプリケーションで使用していない前記記憶部の領域に、次に実行するアプリケーションの前記初期データを書き込む請求項５記載のメモリデバイス管理装置。
【請求項７】
前記管理データ記憶部は、
前記アプリケーションによる処理途中のデータである中間データが格納される中間データプール、前記中間データが格納された前記中間データプールの記憶領域を示す中間データ管理表を備え、前記記憶部要求表に前記中間データとして退避や再書き込みが必要であるか否かを示す情報を含み、
前記管理部は、
前記前記記憶部要求表を参照して、前記アプリケーションの処理時に前記中間データを前記中間データプールに退避させ、該アプリケーションの再実行時に前記記憶部要求表及び前記中間データ管理表を参照して前記中間データプールから所要の中間データを前記記憶部へ書き込む請求項５または６記載のメモリデバイス管理装置。
【請求項８】
前記管理データ記憶部は、
前記記憶部で保持している前記アプリケーションの構成情報を示す構成状況表を備え、
前記管理部は、
前記構成状況表を参照して、実行中のアプリケーションで使用していない前記記憶部の領域に、次に実行するアプリケーションの構成情報を書き込む請求項５から７のいずれか１項記載のメモリデバイス管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は再構成デバイスが備えるメモリデバイスの管理に用いて好適なメモリデバイス管理方法及び装置に関する。
【背景技術】
【０００２】
複数の命令を並列に処理することが可能な複数の論理回路（演算器）を備え、該論理回路の構成や接続をソフトウェアによって変更できるデータ処理装置として、コンフィギュアラブルプロセッサ（再構成デバイス）がある。コンフィギュアラブルプロセッサは、ＦＰＧＡ（Field Programmable Gate Array）とリコンフィギュアラブルプロセッサとに大別される。
【０００３】
ＦＰＧＡについては、例えば特許文献１にその詳細が記載されている。
【０００４】
リコンフィギャラブルプロセッサとしては、ＤＲＰ（Dynamic Reconfigurable Processor）が知られている。ＤＲＰについては、例えば特許文献２〜７にその詳細が記載されている。また、特許文献８には、ＤＲＰが備える複数の演算器の構成や接続を変更するための構成情報の格納先の制限を無くすと共に、一つの構成情報を複数の処理で共有可能にした技術が記載されている。
【０００５】
再構成デバイスは、演算を実行する演算部と、演算部の動作を制御する制御部と、演算で用いるデータを保持する記憶部とを備えている。上記ＤＲＰでは、演算部に、複数の演算器とそれらの接続を切り替える相互接続部とを備え、各演算器及び相互接続部に対する命令コードを切り換えることで各種の処理を実行できる。演算部に供給する命令コードやデータはソフトウェアによって変更可能であり、上記構成情報として書き込むことで所望の処理を実行する回路や該回路の初期状態を実現できる。
【０００６】
なお、構成情報とは、ある時点における演算器に対する演算命令、相互接続部における各演算器の接続関係を示す情報、イベント信号とそれに対応して次に選択すべき構成情報の関係を示す情報等を備えた、再構成デバイス内に仮想的な回路を構成するために必要な情報である。所望の処理（アプリケーション）を実行するために必要な構成情報の集まりはオブジェクトコードと呼ばれる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国再発行特許発明第３４３６３号明細書
【特許文献２】特開２０００−１３８５７９号公報
【特許文献３】特開２０００−２２４０２５号公報
【特許文献４】特開２０００−２３２３５４号公報
【特許文献５】特開２０００−２３２１６２号公報
【特許文献６】特開２００３−０７６６６８号公報
【特許文献７】特開２００３−０９９４０９号公報
【特許文献８】国際公開第２００７／１１４０５９号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したＦＰＧＡは、１つの構成情報から成る、１つのオブジェクトコードを保持することが可能である。ＦＰＧＡは、保持する構成情報やオブジェクトコードを入れ替えることで各種の処理を実行できる。オブジェクトコードを複数保持し、処理していないときに該オブジェクトコードの切り換えが可能なＦＰＧＡも理論上は実現可能である。
【０００９】
一方、ＤＲＰは、記憶容量の範囲内で、１つまたは複数の構成情報から成る、任意の数のオブジェクトコードを保持することが可能であり、それらを入れ替えることで各種の処理を実行できる。
【００１０】
しかしながら、上述したＦＰＧＡやＤＲＰ等の再構成デバイスでは、通常、処理対象となるデータ、処理途中のデータ（中間データ）、テーブルデータ等の処理で用いるデータを保持する処理データ記憶部を複数のアプリケーションで共有することができない。そのため、動作させるアプリケーション（オブジェクトコード）を切り換える場合は、処理データ記憶部で保持するデータも入れ替える必要がある。またその際に、上記中間データがある場合は、該中間データを外部メモリへ退避させる必要がある。
【００１１】
背景技術のメモリデバイス管理方法では、アプリケーションを切り換える度に、処理対象となるデータや処理で用いるデータの読み込み処理や中間データの退避処理等を実現する回路を、例えば構成情報によって再構成デバイス内に構築し、該回路により処理データ記憶部に対するデータの書き込みや読み出しを制御していた。このような処理データ記憶部を管理するための回路を再構成デバイス内に構築することは、再構成デバイスをアプリケーション以外の処理で用いることであり、アプリケーションの処理が遅くなる要因となる。
【００１２】
また、処理データ記憶部を管理するための回路をユーザ等が構成情報により作成しなければならないため、ユーザ等の負担が大きく、また作成した回路が正常に動作するとは限らないため、再構成デバイスの誤動作の要因となる。
【００１３】
例えば、処理で参照するテーブルデータ等、書き換えが不要な固定データを処理データ記憶部に読み込む場合は、該固定データをオブジェクトコード内に含めることも可能である。しかしながら、そのような場合でも、一旦、他のアプリケーションを動作させ、再び同じアプリケーションを実行する場合は、固定データを含む構成情報を再度読み込む必要がある。
【００１４】
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、再構成デバイスから成るデータ処理装置の処理性能を向上できるメモリデバイス管理方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するため本発明のメモリデバイス管理方法は、再構成デバイスが備える記憶部を管理するためのメモリデバイス管理方法であって、
前記再構成デバイスで実行するアプリケーション毎の構成情報が格納される構成情報プール、前記アプリケーションの処理対象となるデータ及び該アプリケーションで必要なデータを含む初期データが格納される初期データプール、前記アプリケーションの実行時に該アプリケーションの前記初期データの保持に用いる前記記憶部の領域を示す記憶部要求表、並びに前記記憶部を使用しているアプリケーションを示す記憶部状況表を備えた管理データ記憶部を備えておき、
前記アプリケーションの実行要求を受信すると、前記構成情報プールから該アプリケーションの構成情報を読み出して前記記憶部へ書き込み、
前記記憶部要求表及び前記記憶部状況表を参照して、前記記憶部に無い該アプリケーションの前記初期データを前記初期データプールから読み出して前記記憶部へ書き込む方法である。
【００１６】
一方、本発明のメモリデバイス管理装置は、再構成デバイスが備える記憶部を管理するメモリデバイス管理装置であって、
前記再構成デバイスで実行するアプリケーション毎の構成情報が格納される構成情報プール、前記アプリケーションの処理対象となるデータ及び該アプリケーションで必要なデータを含む初期データが格納される初期データプール、前記アプリケーションの実行時に該アプリケーションの前記初期データの保持に用いる前記記憶部の領域を示す記憶部要求表、並びに前記記憶部を使用しているアプリケーションを示す記憶部状況表を備えた管理データ記憶部と、
前記アプリケーションの実行要求を受信すると、前記構成情報プールから該アプリケーションの構成情報を読み出して前記記憶部へ書き込み、前記記憶部要求表及び前記記憶部状況表を参照して、前記記憶部に無い該アプリケーションの前記初期データを前記初期データプールから読み出して前記記憶部へ書き込む管理部と、
を有する。
【発明の効果】
【００１７】
本発明によれば、再構成デバイスから成るデータ処理装置の処理性能（スループット）を向上させることができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【図２】第２の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【図３】第３の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【図４】第４の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【図５】第５の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【図６】第６の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【図７】第１実施例のメモリデバイス管理装置の構成を示すブロック図である。
【図８ａ】第１実施例の管理データ記憶部で保持している情報を示す模式図である。
【図８ｂ】第１実施例の管理データ記憶部で保持している情報を示す模式図である。
【図８ｃ】第１実施例の管理データ記憶部で保持している情報を示す模式図である。
【図８ｄ】第１実施例の管理データ記憶部で保持している情報を示す模式図である。
【図８ｅ】第１実施例の管理データ記憶部で保持している情報を示す模式図である。
【図８ｆ】第１実施例の管理データ記憶部で保持している情報を示す模式図である。
【図８ｇ】第１実施例の管理データ記憶部で保持している情報を示す模式図である。
【図８ｈ】第１実施例の管理データ記憶部で保持している情報を示す模式図である。
【図９】第２実施例のメモリデバイス管理装置の構成を示すブロック図である。
【図１０ａ】第２実施例の管理データ記憶部で保持している情報を示す模式図である。
【図１０ｂ】第２実施例の管理データ記憶部で保持している情報を示す模式図である。
【図１０ｃ】第２実施例の管理データ記憶部で保持している情報を示す模式図である。
【図１０ｄ】第２実施例の管理データ記憶部で保持している情報を示す模式図である。
【図１０ｅ】第２実施例の管理データ記憶部で保持している情報を示す模式図である。
【図１０ｆ】第２実施例の管理データ記憶部で保持している情報を示す模式図である。
【図１０ｇ】第２実施例の管理データ記憶部で保持している情報を示す模式図である。
【図１０ｈ】第２実施例の管理データ記憶部で保持している情報を示す模式図である。
【発明を実施するための形態】
【００１９】
次に本発明について図面を用いて説明する。
（第１の実施の形態）
図１は第１の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【００２０】
図１に示すように、第１の実施の形態のメモリデバイス管理装置は、管理データ記憶部１及び管理部２を有する構成である。
【００２１】
第１の実施の形態のメモリデバイス管理装置は、１つの構成情報から成る、１つのオブジェクトコードを保持できる再構成デバイスである第１の再構成可能ハードウェア３を管理する。第１の再構成可能ハードウェア３としては、例えば上記ＦＰＧＡがある。
【００２２】
第１の再構成可能ハードウェア３は、演算を実行する演算部３２と、演算部３２の動作を制御する制御部３１と、演算部３２及び制御部３１による処理対象のデータや処理で必要なデータを保持する処理データ記憶部３３と、構成情報を保持する構成情報記憶部３４とを有する構成である。処理データ記憶部３３は、管理単位となる複数の記憶領域３３1〜３３nに分割可能である。
【００２３】
管理データ記憶部１は、構成情報プール１１、初期データプール１２及び記憶部管理部１３を備えている。
【００２４】
構成情報プール１１には、第１の再構成可能ハードウェア３で実行する複数のアプリケーションの構成情報が格納される。構成情報には、第１の再構成可能ハードウェア３の構成や機能に応じて作成された、演算命令、各種の論理回路（演算器）の接続関係を示す情報、各種の論理回路（演算器）の処理順序を指定する情報等が含まれる。
【００２５】
初期データプール１２には、第１の再構成可能ハードウェア３で実行するアプリケーション毎の処理対象のデータや処理で必要な固定データ等（以下、これらのデータを、まとめて「初期データ」と称す）がそれぞれ格納される。
【００２６】
記憶部管理部１３は、記憶部要求表１３１及び記憶部状況表１３２を備えている。
【００２７】
記憶部要求表１３１は、アプリケーションの実行時に、該アプリケーションの初期データの保持に用いる、第１の再構成可能ハードウェア３が備える処理データ記憶部３３の記憶領域３３1〜３３nを示す情報が格納される。
【００２８】
記憶部状況表１３２は、第１の再構成可能ハードウェア３の処理データ記憶部３３を現在使用している、アプリケーションを示す情報が格納される。
【００２９】
管理部２は、外部から送信されるアプリケーションの実行要求にしたがって、管理データ記憶部１から該アプリケーションの構成情報及び初期データを読み出し、構成情報を第１の再構成可能ハードウェア３の構成情報記憶部３４へ書き込み、初期データを処理データ記憶部３３へ書き込む。管理部２は、第１の再構成可能ハードウェア３に対する構成情報及び初期データの書き込みが終了すると、該書き込まれた構成情報にしたがって第１の再構成可能ハードウェア３に処理（アプリケーション）を実行させる。
【００３０】
管理部２は、初期データを第１の再構成可能ハードウェア３へ書き込むとき、記憶部要求表１３１及び記憶部状況表１３２を参照し、次に実行するアプリケーションの初期データのうち、書き込みが必要な初期データのみを処理データ記憶部３３へ書き込む。
【００３１】
すなわち、記憶部要求表１３１と記憶部状況表１３２とを比較し、実行要求されたアプリケーションの初期データが処理データ記憶部３３に無い場合は該初期データを処理データ記憶部３３へ書き込む。その場合、書き込み後の処理データ記憶部３３の状態に応じて記憶部状況表１３２を更新する。また、実行要求されたアプリケーションの初期データが処理データ記憶部３３に既に存在している場合は、該初期データの処理データ記憶部３３に対する書き込みを省略する。
【００３２】
本実施形態のメモリデバイス管理装置は、以上の処理をアプリケーションの実行要求毎に実施する。
【００３３】
なお、図１に示す管理部２は、プログラムにしたがって処理を実行するＣＰＵやＭＰＵで実現できる。第１の再構成可能ハードウェア３は、演算部３１、制御部３２処理データ記憶部３３及び構成情報記憶部３４を独立して備える必要はなく、任意の構成要素が他の構成要素に含まれていてもよく、任意の構成要素が複数の部位で構成されていてもよい。例えば、演算部３１と制御部３２とは一体構成であってもよく、構成情報記憶部３４が演算部３１及び制御部３２内に分散して配置されていてもよい。
【００３４】
管理データ記憶部１は、書き換え可能な記憶装置であればよく、例えば半導体記憶装置やハードディスク装置等で実現できる。
【００３５】
以上の各構成要素に対する要件は、本実施形態だけでなく、以下に記載する第２の実施の形態〜第６の実施の形態にも適用する。
【００３６】
本実施形態によれば、構成情報を用いて初期データを再構成デバイス内に読み込むための回路を作成する必要がないため、再構成デバイスにアプリケーション以外の処理を実行させる必要がなくなる。
【００３７】
また、実行要求されたアプリケーションの初期データが処理データ記憶部３３に無い場合にのみ、該初期データを処理データ記憶部３３へ書き込み、所要の初期データが処理データ記憶部３３に既に書き込まれている場合や使用しない処理データ記憶部３３には初期データを書き込まないため、特に複数のアプリケーションを切り換えつつ繰り返し実行する場合に初期データの書き込み時間が短縮する。そのため、再構成デバイスの全処理時間における、アプリケーションの処理時間の割合を増大させることができる。
【００３８】
したがって、本実施形態のメモリデバイス管理装置を用いることで、再構成デバイスの処理性能（スループット）が向上する。
（第２の実施の形態）
図２は第２の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【００３９】
図２に示すように、第２の実施の形態のメモリデバイス管理装置は、管理データ記憶部１及び管理部２を有する構成である。
【００４０】
第２の実施の形態のメモリデバイス管理装置は、１つまたは複数の構成情報から成る、予め決められた数のオブジェクトコードを保持できる再構成デバイスである第２の再構成可能ハードウェア４を管理する。第２の再構成可能ハードウェア４としては、例えばオブジェクトコードを複数保持し、処理していないときに該オブジェクトコードの切り換えが可能な、上記理論上実現可能なＦＰＧＡが考えられる。
【００４１】
第２の再構成可能ハードウェア４は、演算を実行する演算部４２と、演算部４２の動作を制御する制御部４１と、演算部４２及び制御部４１による処理対象のデータや処理で必要なデータを保持する処理データ記憶部４３と、構成情報を保持する構成情報記憶部４４とを有する構成である。処理データ記憶部４３は、管理単位となる複数の記憶領域４３1〜４３nに分割可能である。
【００４２】
本実施形態の管理データ記憶部１は、構成情報プール１１、初期データプール１２、記憶部管理部１３及び構成状況表１４を備えている。
【００４３】
第２の実施の形態のメモリデバイス管理装置は、上述したように第２の再構成可能ハードウェア４の構成情報記憶部４４が複数のオブジェクトコードを保持できるため、構成情報記憶部４４で保持している構成情報も管理対象とする。そのため、第２の実施の形態のメモリデバイス管理装置は、第２の再構成可能ハードウェア４の構成情報記憶部４４で保持している構成情報を管理するための構成状況表１４を管理データ記憶部１に備えている点で第１の実施の形態のメモリデバイス管理装置と異なっている。
【００４４】
構成情報プール１１には、第２の再構成可能ハードウェア４で実行する複数のアプリケーションのオブジェクトコードが格納される。オブジェクトコードの各構成情報には、第２の再構成可能ハードウェア４の構成や機能に応じて作成された、演算命令、各種の論理回路（演算器）の接続関係を示す情報、各種の論理回路（演算器）の処理順序を指定する情報等が含まれる。
【００４５】
初期データプール１２には、第２の再構成可能ハードウェア４で実行するアプリケーション毎の初期データがそれぞれ格納される。
【００４６】
記憶部管理部１３は、記憶部要求表１３１及び記憶部状況表１３２を備えている。
【００４７】
記憶部要求表１３１は、アプリケーションの実行時に、該アプリケーションの初期データの保持に用いる、第２の再構成可能ハードウェア４の処理データ記憶部４３の記憶領域４３1〜４３nを示す情報が格納される。
【００４８】
記憶部状況表１３２は、第２の再構成可能ハードウェア４の処理データ記憶部４３を現在使用している、アプリケーションを示す情報が格納される。
【００４９】
構成状況表１４は、第２の再構成可能ハードウェア４の構成情報記憶部４４で現在保持している構成情報を識別するための情報が格納される。
【００５０】
管理部２は、外部から送信されるアプリケーションの実行要求にしたがって、管理データ記憶部１から該アプリケーションの構成情報及び初期データを読み出し、構成情報を第２の再構成可能ハードウェア４の構成情報記憶部４４へ書き込み、初期データを処理データ記憶部４３へ書き込む。管理部２は、第２の再構成可能ハードウェア４に対する構成情報及び初期データの書き込みが終了すると、該書き込まれた構成情報にしたがって第２の再構成可能ハードウェア４に処理（アプリケーション）を実行させる。
【００５１】
本実施形態の管理部２は、任意のアプリケーションを実行中、次に実行する他のアプリケーションの実行要求を受信した場合、構成状況表１４を参照して、次に実行するアプリケーションの構成情報が構成情報記憶部４４に既に書き込まれているか否かを確認する。次に実行するアプリケーションの構成情報が構成情報記憶部４４に無い場合は、現在実行中のアプリケーションの構成情報を上書きしないよう、構成情報記憶部４４の空いている記憶領域に構成情報プール１１から読み出した次に実行するアプリケーションの構成情報を書き込む。
【００５２】
また、管理部２は、記憶部要求表１３１及び記憶部状況表１３２を参照し、次に実行するアプリケーションの初期データのうち、書き込みが必要な初期データのみを処理データ記憶部４３へ書き込む。
【００５３】
すなわち、記憶部要求表１３１と記憶部状況表１３２とを比較し、次に実行するアプリケーションの初期データが処理データ記憶部４３に無い場合は該初期データを処理データ記憶部４３へ書き込む。その場合、書き込み後の処理データ記憶部４３の状態に応じて記憶部状況表１３２を更新する。また、次に実行するアプリケーションの初期データが処理データ記憶部４３に既に存在している場合は、該処理データの処理データ記憶部４３に対する書き込みを省略する。なお、管理部２は、次に実行するアプリケーションの初期データを処理データ記憶部４３に書き込む際、記憶部状況表１３２を参照し、現在実行中のアプリケーションで使用している処理データ記憶部４３の記憶領域４３1〜４３nについては、該アプリケーションの処理が終了した後に書き込むことで上書きしないようにする。
【００５４】
本実施形態のメモリデバイス管理装置は、以上の処理をアプリケーションの実行要求毎に実施する。
【００５５】
本実施形態によれば、第２の再構成可能ハードウェア４が備える構成情報記憶部４４のうち、現在実行中のアプリケーションで使用していない記憶領域に対して、次に実行するアプリケーションの構成情報を先行して書き込むため、アプリケーションの切り替え時に、構成情報の書き換えに要する時間が不要になる。そのため、再構成デバイスの全処理時間における、アプリケーションの処理時間の割合を増大させることができる。したがって、本実施形態のメモリデバイス管理装置を用いることで、再構成デバイスの処理性能（スループット）が向上する。
（第３の実施の形態）
図３は第３の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【００５６】
図３に示すように、第３の実施の形態のメモリデバイス管理装置は、管理データ記憶部１及び管理部２を有する構成である。
【００５７】
第３の実施の形態のメモリデバイス管理装置は、記憶容量の範囲内で、１つまたは複数の構成情報から成る、任意の数のオブジェクトコードを保持できる再構成デバイスである第３の再構成可能ハードウェア５を管理する。第３の再構成可能ハードウェア５としては、保持するオブジェクトコードを入れ替えることで各種の処理を実行できる、例えば上記ＤＲＰがある。
【００５８】
第３の再構成可能ハードウェア５は、演算を実行する演算部５２と、演算部５２の動作を制御する制御部５１と、演算部５２及び制御部５１による処理対象のデータや処理で必要なデータを保持する処理データ記憶部５３と、構成情報を保持する構成情報記憶部５４とを有する構成である。処理データ記憶部５３は、管理単位となる複数の記憶領域５３1〜５３nに分割可能である。
【００５９】
本実施形態の管理データ記憶部１は、第２の実施の形態と同様に、構成情報プール１１、初期データプール１２、記憶部管理部１３及び構成状況表１４を備えている。
【００６０】
第３の実施の形態のメモリデバイス管理装置は、第３の再構成可能ハードウェア５の構成情報記憶部５４が複数のオブジェクトコードを保持できるため、構成情報記憶部５４で保持している構成情報も管理対象とする。そのため、第３の実施の形態のメモリデバイス管理装置は、第３の再構成可能ハードウェア５の構成情報記憶部５４で保持している構成情報を管理するための構成状況表１４を管理データ記憶部１に備えている。但し、第３の再構成可能ハードウェア５の構成情報記憶部５４は、オブジェクトコードを保持する記憶容量が可変である点で第２の実施の形態で示した第３の再構成可能ハードウェア４と異なっている。
【００６１】
構成情報プール１１には第３の再構成可能ハードウェア５で実行する複数のアプリケーションのオブジェクトコードが格納される。オブジェクトコードの各構成情報には、第３の再構成可能ハードウェア５の構成や機能に応じて作成された、演算命令、各種の論理回路（演算器）の接続関係を示す情報、各種の論理回路（演算器）の処理順序を指定する情報等が含まれる。
【００６２】
初期データプール１２には、第３の再構成可能ハードウェア５で実行するアプリケーション毎の初期データがそれぞれ格納される。
【００６３】
記憶部管理部１３は、記憶部要求表１３１及び記憶部状況表１３２を備えている。
【００６４】
記憶部要求表１３１は、アプリケーションの実行時に、該アプリケーションの初期データの保持に用いる、第３の再構成可能ハードウェア５の処理データ記憶部５３の記憶領域を示す情報が格納される。
【００６５】
記憶部状況表１３２は、第３の再構成可能ハードウェア５の処理データ記憶部５３を現在使用している、アプリケーションを示す情報が格納される。
【００６６】
構成状況表１４は、第３の再構成可能ハードウェア５の構成情報記憶部４４で現在保持している構成情報を識別するための情報が格納される。
【００６７】
管理部２は、外部から送信されるアプリケーションの実行要求にしたがって、管理データ記憶部１から該アプリケーションの構成情報及び初期データを読み出し、構成情報を第３の再構成可能ハードウェア５の構成情報記憶部５４へ書き込み、初期データを処理データ記憶部５３へ書き込む。管理部２は、第３の再構成可能ハードウェア５に対する構成情報及び初期データの書き込みが終了すると、該書き込まれた構成情報にしたがって第３の再構成可能ハードウェア５に処理（アプリケーション）を実行させる。
【００６８】
本実施形態の管理部２は、任意のアプリケーションを実行中に、次に実行する他のアプリケーションの実行要求を受信した場合、構成状況表１４を参照して、次に実行するアプリケーションの構成情報が構成情報記憶部５４に既に書き込まれているか否かを確認する。次に実行するアプリケーションの構成情報が構成情報記憶部５４に無い場合は、現在実行中のアプリケーションに対応する構成情報を上書きしないよう、構成情報記憶部５４の空いている記憶領域に構成情報プール１１から読み出した次に実行するアプリケーションの構成情報を書き込む。
【００６９】
このとき、管理部２は、構成状況表１４を参照し、次に実行するアプリケーションのオブジェクトコードで必要な記憶容量が大きく、構成情報記憶部５４の空いている記憶領域に全ての構成情報を書き込むことができない場合は、現在実行中のアプリケーションの処理が終了した後に残りの構成情報を書き込む。
【００７０】
また、管理部２は、記憶部要求表１３１及び記憶部状況表１３２を参照し、次に実行するアプリケーションの初期データのうち、書き込みが必要な初期データのみを処理データ記憶部５３へ書き込む。すなわち、記憶部要求表１３１と記憶部状況表１３２とを比較し、次に実行するアプリケーションの初期データが処理データ記憶部５３に無い場合は該初期データを処理データ記憶部５３へ書き込む。その場合、書き込み後の処理データ記憶部５３の状態に応じて記憶部状況表１３２を更新する。また、次に実行するアプリケーションの初期データが処理データ記憶部５３に既に存在している場合は、該処理データの処理データ記憶部５３に対する書き込みを省略する。このとき、管理部２は、記憶部状況表１３２を参照し、現在実行中のアプリケーションで使用している処理データ記憶部５３の記憶領域５３1〜５３nについては、該アプリケーションの処理が終了した後に書き込むことで、上書きしないようにする。
【００７１】
本実施形態のメモリデバイス管理装置は、以上の処理をアプリケーションの実行要求毎に実施する。
【００７２】
本実施形態によれば、第３の再構成可能ハードウェア５が備える構成情報記憶部５４の記憶領域のうち、現在実行中のアプリケーションで使用していない記憶領域に対して、次に実行するアプリケーションの構成情報を、空き記憶領域に応じて先行して書き込むため、アプリケーションの切り替え時に、構成情報の書き換えに要する時間が短縮する。そのため、再構成デバイスの全処理時間における、アプリケーションの処理時間の割合を増大させることができる。したがって、本実施形態のメモリデバイス管理装置を用いることで、再構成デバイスの処理性能（スループット）が向上する。
（第４の実施の形態）
図４は第４の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【００７３】
図４に示すように、第４の実施の形態のメモリデバイス管理装置は、管理データ記憶部１及び管理部２を有する構成である。
【００７４】
第４の実施の形態のメモリデバイス管理装置は、第１の実施の形態と同様に第１の再構成可能ハードウェア３を管理する。第１の再構成可能ハードウェア３の構成は、第１の実施の形態と同様であるため、ここではその説明を省略する。
【００７５】
本実施形態の管理データ記憶部１は、構成情報プール１１、初期データプール１２、記憶部管理部１３、中間データプール１５及び中間データ管理表１６を備えている。
【００７６】
構成情報プール１１には、第１の再構成可能ハードウェア３で実行する複数のアプリケーションに対応する構成情報が格納される。構成情報は、第１の再構成可能ハードウェア３の構成や機能に応じて作成された、演算命令、各論理回路（演算器）の接続関係を示す情報、各論理回路（演算器）の処理順序を指定する情報等が含まれる。
【００７７】
初期データプール１２には、第１の再構成可能ハードウェア３で実行するアプリケーション毎の初期データがそれぞれ格納される。
【００７８】
記憶部管理部１３は、記憶部要求表１３１及び記憶部状況表１３２を備えている。
【００７９】
記憶部要求表１３１は、アプリケーションの実行時に、該アプリケーションの初期データの保持に用いる、第１の再構成可能ハードウェア３の処理データ記憶部３３の記憶領域を示す情報が格納される。また、記憶部要求表１３１には、後述する中間データとして退避や再書き込みが必要であるか否かを示す情報も格納される。
【００８０】
記憶部状況表１３２は、第１の再構成可能ハードウェア３の処理データ記憶部３３を現在使用している、アプリケーションを示す情報が格納される。
【００８１】
中間データプール１５は、第１の再構成可能ハードウェア３で実行する、任意のアプリケーションによる処理途中のデータ（中間データ）が格納される。
【００８２】
中間データ管理表１６は、中間データが格納された中間データプール１５の記憶領域を示す情報が格納される。
【００８３】
管理部２は、外部から送信されるアプリケーションの実行要求にしたがって、管理データ記憶部１から該アプリケーションの構成情報及び初期データを読み出し、構成情報を第１の再構成可能ハードウェア３の構成情報記憶部３４へ書き込み、初期データを処理データ記憶部３３へ書き込む。管理部２は、第１の再構成可能ハードウェア３に対する構成情報及び初期データの書き込みが終了すると、該書き込まれた構成情報にしたがって第１の再構成可能ハードウェア３に処理（アプリケーション）を実行させる。
【００８４】
また、本実施形態の管理部２は、初期データを第１の再構成可能ハードウェア３へ書き込むとき、記憶部要求表１３１及び記憶部状況表１３２を参照し、次に実行するアプリケーションの初期データのうち、書き込みが必要な初期データのみを処理データ記憶部３３へ書き込む。すなわち、記憶部要求表１３１と記憶部状況表１３２とを比較し、実行要求されたアプリケーションの初期データが処理データ記憶部３３に無い場合は該初期データを処理データ記憶部３３へ書き込む。その場合、書き込み後の処理データ記憶部３３の状態に応じて記憶部状況表１３２を更新する。また、実行要求されたアプリケーションの初期データが処理データ記憶部３３に既に存在している場合は、該初期データの処理データ記憶部３３に対する書き込みを省略する。
【００８５】
また、本実施形態の管理部２は、次に実行するアプリケーションの初期データを第１の再構成可能ハードウェア３へ書き込むとき、記憶部要求表１３１を参照し、現在実行中のアプリケーションに関連して処理データ記憶部３３で保持しているデータのうち、中間データとして保持するか否かを示す情報にしたがって、所要のデータを中間データとして中間データプール１５へ退避させる。また、管理部２は、中間データプール１５に中間データの存在を示す情報を中間データ管理表１６へ書き込むことで中間データ管理表１６を更新する。その後、次に実行するアプリケーションの初期データを初期データプール１２から読み出し、該初期データを処理データ記憶部３３へ書き込む。
【００８６】
さらに、本実施形態の管理部２は、次に実行するアプリケーションの初期データを第１の再構成可能ハードウェア３へ書き込むとき、中間データ管理表１６を参照し、中間データプール１５に必要な中間データがある場合は、中間データプール１５から該中間データを読み出して処理データ記憶部３３へ書き込む。
【００８７】
本実施形態のメモリデバイス管理装置は、以上の処理をアプリケーションの実行要求毎に実施する。
【００８８】
本実施形態によれば、第１の実施の形態と同様の効果に加えて、アプリケーションによる処理途中の中間データの保存要否も管理できるため、構成情報を用いて中間データの退避や中間データを読み込むための回路を作成する必要がなくなる。そのため、再構成デバイスの全処理時間における、アプリケーションの処理時間の割合を増大させることができる。したがって、本実施形態のメモリデバイス管理装置を用いることで、再構成デバイスの処理性能（スループット）が向上する。
（第５の実施の形態）
図５は第５の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【００８９】
図５に示すように、第５の実施の形態のメモリデバイス管理装置は、管理データ記憶部１及び管理部２を有する構成である。
【００９０】
第５の実施の形態のメモリデバイス管理装置は、第２の実施の形態と同様に第２の再構成可能ハードウェア４を管理する。第２の再構成可能ハードウェア４の構成は、第２の実施の形態と同様であるため、ここではその説明を省略する。
【００９１】
本実施形態の管理データ記憶部１は、構成情報プール１１、初期データプール１２、記憶部管理部１３、構成状況表１４、中間データプール１５及び中間データ管理表１６を備えている。
【００９２】
構成情報プール１１には、第２の再構成可能ハードウェア４で実行する複数のアプリケーションのオブジェクトコードが格納される。オブジェクトコードの各構成情報には、第２の再構成可能ハードウェア４の構成や機能に応じて作成された、演算命令、各種の論理回路（演算器）の接続関係を示す情報、各種の論理回路（演算器）の処理順序を指定する情報等が含まれる。
【００９３】
初期データプール１２には、第２の再構成可能ハードウェア４で実行するアプリケーション毎の初期データがそれぞれ格納される。
【００９４】
記憶部管理部１３は、記憶部要求表１３１及び記憶部状況表１３２を備えている。
【００９５】
記憶部要求表１３１は、アプリケーションの実行時に、該アプリケーションの初期データの保持に用いる、第２の再構成可能ハードウェア３の処理データ記憶部４３の記憶領域を示す情報が格納される。また、記憶部要求表１３１には、後述する中間データとして退避や再書き込みが必要であるか否かを示す情報も格納される。
【００９６】
記憶部状況表１３２は、第２の再構成可能ハードウェア４の処理データ記憶部４３を現在使用している、アプリケーションを示す情報が格納される。
【００９７】
構成状況表１４は、第２の再構成可能ハードウェア４の構成情報記憶部４４で現在保持している構成情報を識別するための情報が格納される。
【００９８】
中間データプール１５は、第２の再構成可能ハードウェア４で実行する、任意のアプリケーションによる処理途中のデータ（中間データ）が格納される。
【００９９】
中間データ管理表１６は、中間データが格納された中間データプール１５の記憶領域を示す情報が格納される。
【０１００】
管理部２は、外部から送信されるアプリケーションの実行要求にしたがって、管理データ記憶部１から該アプリケーションの構成情報及び初期データを読み出し、構成情報を第２の再構成可能ハードウェア４の構成情報記憶部４４へ書き込み、初期データを処理データ記憶部４３へ書き込む。管理部２は、第２の再構成可能ハードウェア４に対する構成情報及び初期データの書き込みが終了すると、該書き込まれた構成情報にしたがって第２の再構成可能ハードウェア４に処理（アプリケーション）を実行させる。
【０１０１】
また、管理部２は、任意のアプリケーションを実行中に、次に実行する他のアプリケーションの実行要求を受信した場合、構成状況表１４を参照して、次に実行するアプリケーションの構成情報が構成情報記憶部４４に既に書き込まれているか否かを確認する。次に実行するアプリケーションの構成情報が構成情報記憶部４４に無い場合は、現在実行中のアプリケーションに対応する構成情報を上書きしないよう、構成情報記憶部４４の空いている記憶領域に構成情報プール１１から読み出した次に実行するアプリケーションの構成情報を書き込む。
【０１０２】
また、管理部２は、記憶部要求表１３１及び記憶部状況表１３２を参照し、次に実行するアプリケーションの初期データのうち、書き込みが必要な初期データのみを処理データ記憶部４３へ書き込む。すなわち、記憶部要求表１３１と記憶部状況表１３２とを比較し、次に実行するアプリケーションの初期データが処理データ記憶部４３に無い場合は該初期データを処理データ記憶部４３へ書き込む。その場合、書き込み後の処理データ記憶部４３の状態に応じて記憶部状況表１３２を更新する。また、次に実行するアプリケーションの初期データが処理データ記憶部４３に既に存在している場合は、該処理データの処理データ記憶部４３に対する書き込みを省略する。なお、管理部２は、次に実行するアプリケーションの初期データを処理データ記憶部４３に書き込む際、記憶部状況表１３２を参照し、現在実行中のアプリケーションで使用している処理データ記憶部の記憶領域４３1〜４３nについては、該アプリケーションの処理が終了した後に書き込むことで、上書きしないようにする。
【０１０３】
また、本実施形態の管理部２は、次に実行するアプリケーションの初期データを第２の再構成可能ハードウェア４へ書き込むとき、記憶部要求表１３１を参照し、現在実行中のアプリケーションに関連して処理データ記憶部４３で保持しているデータのうち、中間データとして保持するか否かを示す情報にしたがって、所要のデータを中間データとして中間データプール１５へ退避させる。また、管理部２は、中間データプール１５に中間データの存在を示す情報を中間データ管理表１６へ書き込むことで中間データ管理表１６を更新する。その後、次に実行するアプリケーションの初期データを初期データプール１２から読み出し、該初期データを処理データ記憶部４３へ書き込む。
【０１０４】
さらに、本実施形態の管理部２は、次に実行するアプリケーションの初期データを第２の再構成可能ハードウェア４へ書き込むとき、中間データ管理表１６を参照し、中間データプール１５に必要な中間データがある場合は、中間データプール１５から該中間データを読み出して処理データ記憶部４３へ書き込む。
【０１０５】
本実施形態のメモリデバイス管理装置は、以上の処理をアプリケーションの実行要求毎に実施する。
【０１０６】
本実施形態によれば、第２の実施の形態と同様の効果に加えて、アプリケーションによる処理途中の中間データの保存要否も管理できるため、構成情報を用いて中間データの退避や中間データを読み込むための回路を作成する必要がなくなる。そのため、再構成デバイスの全処理時間における、アプリケーションの処理時間の割合を増大させることができる。したがって、本実施形態のメモリデバイス管理装置を用いることで、再構成デバイスの処理性能（スループット）が向上する。
（第６の実施の形態）
図６は第６の実施の形態のメモリデバイス管理装置の構成を示すブロック図である。
【０１０７】
図６に示すように、第６の実施の形態のメモリデバイス管理装置は、管理データ記憶部１及び管理部２を有する構成である。
【０１０８】
第６の実施の形態のメモリデバイス管理装置は、第３の実施の形態と同様に第３の再構成可能ハードウェア５を管理する。第３の再構成可能ハードウェア５の構成は、第３の実施の形態と同様であるため、ここではその説明を省略する。
【０１０９】
本実施形態の管理データ記憶部１は、構成情報プール１１、初期データプール１２、記憶部管理部１３、構成状況表１４、中間データプール１５及び中間データ管理表１６を備えている。
【０１１０】
構成情報プール１１には、第３の再構成可能ハードウェア５で実行する複数のアプリケーションのオブジェクトコードが格納される。オブジェクトコードの各構成情報には、第３の再構成可能ハードウェア５の構成や機能に応じて作成された、演算命令、各種の論理回路（演算器）の接続関係を示す情報、各種の論理回路（演算器）の処理順序を指定する情報等が含まれる。
【０１１１】
初期データプール１２には、第３の再構成可能ハードウェア５で実行するアプリケーション毎の初期データがそれぞれ格納される。
【０１１２】
記憶部管理部１３は、記憶部要求表１３１及び記憶部状況表１３２を備えている。
【０１１３】
記憶部要求表１３１は、アプリケーションの実行時に、該アプリケーションの初期データの保持に用いる、第３の再構成可能ハードウェア５の処理データ記憶部５３の記憶領域を示す情報が格納される。また、記憶部要求表１３１には、後述する中間データとして退避や再書き込みが必要であるか否かを示す情報も格納される。
【０１１４】
記憶部状況表１３２は、第３の再構成可能ハードウェア５の処理データ記憶部５３を現在使用している、アプリケーションを示す情報が格納される。
【０１１５】
構成状況表１４は、第３の再構成可能ハードウェア５の構成情報記憶部５４で現在保持している構成情報を識別するための情報が格納される。
【０１１６】
中間データプール１５は、第３の再構成可能ハードウェア５で実行する、任意のアプリケーションによる処理途中のデータ（中間データ）が格納される。
【０１１７】
中間データ管理表１６は、中間データが格納された中間データプール１５の記憶領域を示す情報が格納される。
【０１１８】
管理部２は、外部から送信されるアプリケーションの実行要求にしたがって、管理データ記憶部１から該アプリケーションの構成情報及び初期データを読み出し、構成情報を第３の再構成可能ハードウェア５の構成情報記憶部５４へ書き込み、初期データを処理データ記憶部５３へ書き込む。管理部２は、第３の再構成可能ハードウェア５に対する構成情報及び初期データの書き込みが終了すると、該書き込まれた構成情報にしたがって第３の再構成可能ハードウェア５に処理（アプリケーション）を実行させる。
【０１１９】
本実施形態の管理部２は、任意のアプリケーションを実行中に、次に実行する他のアプリケーションの実行要求を受信した場合、構成状況表１４を参照して、次に実行するアプリケーションの構成情報が構成情報記憶部５４に既に書き込まれているか否かを確認する。次に実行するアプリケーションの構成情報が構成情報記憶部５４に無い場合は、現在実行中のアプリケーションに対応する構成情報を上書きしないよう、構成情報記憶部５４の空いている記憶領域に構成情報プール１１から読み出した次に実行するアプリケーションの構成情報を書き込む。
【０１２０】
このとき、管理部２は、構成状況表１４を参照し、次に実行するアプリケーションのオブジェクトコードで必要な記憶容量が大きく、構成情報記憶部５４の空いている記憶領域に全ての構成情報を書き込むことができない場合、残りの構成情報を現在実行中のアプリケーションの処理が終了した後に書き込む。
【０１２１】
また、管理部２は、記憶部要求表１３１及び記憶部状況表１３２を参照し、次に実行するアプリケーションの初期データのうち、書き込みが必要な初期データのみを処理データ記憶部５３へ書き込む。すなわち、記憶部要求表１３１と記憶部状況表１３２とを比較し、次に実行するアプリケーションの初期データが処理データ記憶部５３に無い場合は該初期データを処理データ記憶部５３へ書き込む。その場合、書き込み後の処理データ記憶部５３の状態に応じて記憶部状況表１３２を更新する。また、次に実行するアプリケーションの初期データが処理データ記憶部５３に既に存在している場合は、該処理データの処理データ記憶部５３に対する書き込みを省略する。このとき、管理部２は、記憶部状況表１３２を参照し、現在実行中のアプリケーションで使用している処理データ記憶部の記憶領域５３1〜５３nについては、該アプリケーションの処理が終了した後に書き込むことで、上書きしないようにする。
【０１２２】
また、本実施形態の管理部２は、次に実行するアプリケーションの初期データを第３の再構成可能ハードウェア５へ書き込むとき、記憶部要求表１３１を参照し、現在実行中のアプリケーションに関連して処理データ記憶部５３で保持しているデータのうち、中間データとして保持するか否かを示す情報にしたがって、所要のデータを中間データとして中間データプール１５へ退避させる。また、管理部２は、中間データプール１５に中間データの存在を示す情報を中間データ管理表１６へ書き込むことで中間データ管理表１６を更新する。その後、次に実行するアプリケーションの初期データを初期データプール１２から読み出し、該初期データを処理データ記憶部５３へ書き込む。
【０１２３】
さらに、本実施形態の管理部２は、次に実行するアプリケーションの初期データを第３の再構成可能ハードウェア５へ書き込むとき、中間データ管理表１６を参照し、中間データプール１５に必要な中間データがある場合は、中間データプール１５から該中間データを読み出して処理データ記憶部４３へ書き込む。
【０１２４】
本実施形態のメモリデバイス管理装置は、以上の処理をアプリケーションの実行要求毎に実施する。
【０１２５】
本実施形態によれば、第３の実施の形態と同様の効果に加えて、アプリケーションによる処理途中の中間データの保存要否も管理できるため、構成情報を用いて中間データの退避や中間データを読み込むための回路を作成する必要がなくなる。そのため、再構成デバイスの全処理時間における、アプリケーションの処理時間の割合を増大させることができる。したがって、本実施形態のメモリデバイス管理装置を用いることで、再構成デバイスの処理性能（スループット）が向上する。
【実施例】
【０１２６】
次に本発明の実施例について図面を用いて説明する。
（第１実施例）
図７は第１実施例のメモリデバイス管理装置の構成を示すブロック図である。
【０１２７】
図７に示すように、第１実施例のメモリデバイス管理装置は、管理データ記憶部６及び管理部７を備えている。
【０１２８】
第１実施例は、上記特許文献１に記載されたＦＰＧＡ８から成るデータ処理装置を、上述した第４の実施の形態のメモリデバイス管理装置で管理する例である。
【０１２９】
ＦＰＧＡ８は、第１の実施の形態や第４の実施の形態で示した第１の再構成可能ハードウェア３に相当する。
【０１３０】
ＦＰＧＡ８は、アプリケーションの処理を実行するゲートアレイ８１と、初期データや中間データを保持する周辺メモリ８３とを備えている。周辺メモリ８３は、管理単位となる複数の記憶領域８３1〜８３nに分割可能である。
【０１３１】
ゲートアレイ８１は、ＬＵＴ（ルックアップテーブル）、Ｄ−フリップフロップ、スイッチ等を備えたデータパス（チャネル）を有し、データパスの構成とその動作を指定する構成情報を保持することが可能である。
【０１３２】
ゲートアレイ８１は、第１の実施の形態や第４の実施の形態で示した第１の再構成可能ハードウェア３の演算部３２、制御部３１及び構成情報記憶部３４に相当し、周辺メモリ８３は第１の再構成可能ハードウェア３の処理データ記憶部３３に相当する。
【０１３３】
管理データ記憶部６は、構成情報プール６１、初期データプール６２、周辺メモリ管理部６３、構成状況レジスタ６４、中間データプール６５及び中間データ管理表６６を備えている。構成情報プール６１は、第４の実施の形態で示した管理データ記憶部１の構成情報プール１１に相当し、初期データプール６２は管理データ記憶部１の初期データプール１２に相当する。周辺メモリ管理部６３は管理データ記憶部１の記憶部管理部１３に相当し、構成状況レジスタ６４は管理データ記憶部１の構成状況表１４に相当する。また、中間データプール６５は管理データ記憶部１の中間データプール１５に相当し、中間データ管理表６６は管理データ記憶部１の中間データ管理表１６に相当する。
【０１３４】
構成情報プール６１には、ＦＰＧＡ８で実行する複数のアプリケーション毎の構成情報が格納される。
【０１３５】
初期データプール６２には、ＦＰＧＡ８で実行する複数のアプリケーション毎の初期データが格納される。
【０１３６】
周辺メモリ管理部６３は、周辺メモリ要求表６３１及び周辺メモリ状況表６３２を備えている。
【０１３７】
周辺メモリ要求表６３１は、アプリケーションの実行時に、該アプリケーションの初期データの保持に用いる、ＦＰＧＡ８の周辺メモリ８３の記憶領域を示す情報が格納される。また、周辺メモリ要求表６３１には、後述する中間データとして退避や再書き込みが必要であるか否かを示す情報も格納される。
【０１３８】
周辺メモリ状況表６３２は、ＦＰＧＡ８の周辺メモリ８３を現在使用している、アプリケーションを示す情報が格納される。
【０１３９】
構成状況表６８は、ＦＰＧＡ８で現在保持している構成情報を識別するための情報が格納される。
【０１４０】
中間データプール６５は、ＦＰＧＡ８で実行する、任意のアプリケーションによる処理途中のデータ（中間データ）が格納される。
【０１４１】
中間データ管理表６６は、中間データが格納された中間データプール６５の記憶領域を示す情報が格納される。
【０１４２】
以下、ＦＰＧＡ８で３種類のアプリケーションＡ、Ｂ、Ｃを実行する場合を例にして、第１実施例のメモリデバイス管理装置の動作について説明する。
【０１４３】
図８ａは、管理データ記憶部６が備える構成情報プール６１、初期データプール６２、周辺メモリ管理部６３、構成状況レジスタ６４、中間データプール６５及び中間データ管理表６６に格納された情報を示している。
【０１４４】
図８ａに示す例では、構成情報プール６１に、アプリケーションＡ、Ｂ、Ｃに対応する構成情報が格納され、初期データプール６２には、アプリケーションＡに対応して周辺メモリ８３の５つの記憶領域（５ブロック）に相当する初期データが格納され、アプリケーションＢに対応して周辺メモリ８３の４つの記憶領域（４ブロック）に相当する初期データが格納され、アプリケーションＣに対応して周辺メモリ８３の４つの記憶領域（４ブロック）に相当する初期データが格納されている。
【０１４５】
周辺メモリ要求表６３１には、アプリケーションＡ、Ｂ、Ｃで使用する周辺メモリ８３の記憶領域が示されている。ここでは、周辺メモリ８３が８つの記憶領域８３1〜８３8に分割されているものとする。
【０１４６】
周辺メモリ状況表６３２、中間データ管理表６６、構成状況レジスタ６４には、現状では何も情報が格納されておらず、中間データプール６５には中間データが何も格納されていない。
【０１４７】
図８ａに示す周辺メモリ要求表６３１、周辺メモリ状況表６３２及び中間データ管理表６６の縦軸は、周辺メモリ８３の記憶領域８３1〜８３8に対応し、「１」が記載されている記憶領域は、該記憶領域に対応するアプリケーションで使用することを示している。また、「２」が記載されている記憶領域は、該記憶領域で保持するデータが中間データとして退避や再書き込みが必要であることを示している。
【０１４８】
ここでは、予めアプリケーションＡ、Ｂ、Ｃの構成情報が構成情報プール６１に格納され、アプリケーションＡ、Ｂ、Ｃの初期データが初期データプール６２に格納され、周辺メモリ要求表６３１に、図８ａに示すような、アプリケーションＡ、Ｂ、Ｃに対応する情報が格納されている状態から動作を開始するものとする。
【０１４９】
ＦＰＧＡ８及びメモリデバイス管理装置が起動され、外部からアプリケーションＡの実行要求を受信すると、管理部７は、構成情報プール６１からアプリケーションＡの構成情報を読み出してゲートアレイ８１に書き込み、アプリケーションＡの構成情報が書き込まれていることを示す情報を構成状況レジスタ６４に書き込む。
【０１５０】
また、管理部７は、周辺メモリ要求表６３１を参照し、アプリケーションＡの初期データが周辺メモリ８３の記憶領域８３1、８３3、８３4、８３7、８３8に書き込み可能であるか否かを判定する。
【０１５１】
図８ａに示す周辺メモリ要求表６３１を参照すると、記憶領域８３7、８３8は中間データの退避または書き込みに用いる記憶領域であるが、中間データ管理表６６を参照すると、現時点では中間データが無い。
【０１５２】
したがって、管理部７は、初期データプール６２からアプリケーションＡの初期データを読み出し、該初期データを周辺メモリ８３の記憶領域８３1、８３3、８３4、８３7、８３8へ書き込み、周辺メモリ状況表６３２を初期データ書き込み後の周辺メモリ８３の状態に応じて更新する。
【０１５３】
また、管理部７は、全ての構成情報及び初期データの書き込みが終了すると、ＦＰＧＡ８によるアプリケーションＡの処理を開始させる。このとき、図８ｂに示すように、周辺メモリ状況表６３２には、周辺メモリ８３の記憶領域８３1、８３3、８３4、８３7、８３8をアプリケーションＡで使用していることが示されている。
【０１５４】
次に、アプリケーションＡの実行中にアプリケーションＢの実行要求を受信すると、管理部７は、周辺メモリ要求表６３１及び周辺メモリ状況表６３２を参照し、アプリケーションＢの初期データが周辺メモリ８３の記憶領域８３1、８３2、８３6、８３8に書き込み可能であるか否かを判定する。
【０１５５】
ここで、記憶領域８３1、８３8は、現在実行中のアプリケーションＡで使用しているため、記憶領域８３2、８３6にのみアプリケーションＢの初期データが書き込み可能である。したがって、管理部７は、初期データプール６２から読み出したアプリケーションＢの初期データを記憶領域８３2、８３6へ書き込み、周辺メモリ状況表６３２を更新する。
【０１５６】
このとき、図８ｃに示すように、周辺メモリ状況表６３２には、周辺メモリ８３の記憶領域８３1、８３3、８３4、８３7、８３8をアプリケーションＡで使用し、記憶領域８３2、８３6をアプリケーションＢで使用していることが示されている。
【０１５７】
アプリケーションＡの処理が終了すると、管理部７は、アプリケーションＡの実行中に書き込めなかったアプリケーションＢの初期データを記憶領域８３1、８３8へ書き込む。管理部７は、まず周辺メモリ状況表６３２を参照することで記憶領域８３1、８３8へ初期データの書き込みが必要であり、周辺メモリ要求表６３１を参照することで、記憶領域８３8で保持されたアプリケーションＡの中間データの退避が必要であることが分かる。そのため、管理部７は、記憶領域８３8で保持しているデータを中間データプール６５の第１の記憶領域へ書き出し、中間データ管理表６６に記憶領域８３8から中間データプール６５へアプリケーションＡの中間データを退避させた旨を書き込む。その後、管理部７は、記憶領域８３1、８３8にアプリケーションＢの初期データを書き込む。
【０１５８】
続いて、管理部７は、構成情報プール６１から読み出したアプリケーションＢの構成情報をＦＰＧＡ８のゲートアレイ８１に書き込み、構成情報の書き込みが完了すると、ＦＰＧＡ８にアプリケーションＢの処理を開始させる。このとき、図８ｄに示すように、中間データプール６５には記憶領域８３8で保持していたアプリケーションＡの中間データ（Ａ−８）が格納され、中間データ管理表６６には、該アプリケーションＡの中間データ（Ａ−８）を中間データプール６５の第１の記憶領域に退避したことが示されている。また、構成状況レジスタ６４にはアプリケーションＢの構成情報をゲートアレイ８１で使用していることが示されている。
【０１５９】
次に、アプリケーションＢの実行中にアプリケーションＡの実行要求を再度受信すると、管理部７は、周辺メモリ要求表６３１及び周辺メモリ状況表６３２を参照し、アプリケーションＡの初期データが周辺メモリ８３の記憶領域８３1、８３3、８３4、８３7、８３8に書き込み可能であるか否かを判定する。
【０１６０】
ここで、記憶領域８３1、８３8は現在実行中のアプリケーションＢで使用しているため、記憶領域８３3、８３4、８３7にのみアプリケーションＡの初期データの書き込みが可能である。但し、周辺メモリ状況表６３２を参照すると、記憶領域８３3、８３4、８３7には、前回アプリケーションＡを実行したときの初期データが残っているため、再度書き込む必要が無い。そのため、管理部７は、ここでは周辺メモリ８３の書き換えを実行しない。
【０１６１】
アプリケーションＢの処理が終了すると、管理部７は、アプリケーションＢの実行中に書き込めなかったアプリケーションＡの初期データを記憶領域８３1、８３8に書き込む。
【０１６２】
このとき、管理部７は、中間データ管理表６６を参照することで、中間データプール６５の第１の記憶領域に退避している中間データ（Ａ−８）を記憶領域８３8へ書き込み、記憶領域８３1に初期データプール６２から読み出した初期データを書き込む。また、管理部７は、中間データプール６５の第１の記憶領域を無効化する。無効化は、中間データ（Ａ−８）を中間データプール６５へ退避させたことを示す情報を中間データ管理表６６から削除することで実現する。
【０１６３】
続いて、管理部７は、構成情報プール６１から読み出したアプリケーションＡの構成情報をＦＰＧＡ８のゲートアレイ８１に書き込み、構成情報の書き込み終了後にＦＰＧＡ８にアプリケーションＡの処理を開始させる。このとき、図８ｅに示すように、中間データ管理表６６ではアプリケーションＡの中間データの退避先を示す情報が削除されている。また、中間データプール６５の第１の記憶領域にはアプリケーションＡの中間データ（Ａ−８）が残っているが、中間データ管理表６６から該中間データの退避先を示す情報が削除されているため、該中間データの読み出し処理は無効化されている。
【０１６４】
次に、アプリケーションＡの実行中にアプリケーションＣの実行要求を受信すると、管理部７は、周辺メモリ要求表６３１及び周辺メモリ状況表６３２を参照し、アプリケーションＣの初期データが周辺メモリ８３の記憶領域８３1、８３2、８３5、８３6、８３7に書き込み可能であるか否かを判定する。
【０１６５】
ここで、記憶領域８３1、８３7は、現在実行中のアプリケーションＡで使用しているため、記憶領域８３2、８３5、８３6にのみアプリケーションＣの初期データが書き込み可能である。したがって、管理部７は、初期データプール６２から読み出したアプリケーションＣの初期データを記憶領域８３5、８３6へ書き込み、周辺メモリ状況表６３２を更新する。このとき、図８ｆに示すように、周辺メモリ状況表６３２には、記憶領域８３1、８３3、８３4、８３7、８３8をアプリケーションＡで使用し、記憶領域８３2、８３5、８３6をアプリケーションＣで使用していることが示されている。
【０１６６】
アプリケーションＡの処理が終了すると、管理部７は、アプリケーションＡの実行中に書き込めなかったアプリケーションＣの初期データを記憶領域８３1、８３7へ書き込む。管理部７は、まず周辺メモリ状況表６３２を参照することで記憶領域８３1、８３7へ初期データの書き込みが必要であり、周辺メモリ要求表６３１を参照することで、記憶領域８３7で保持されたアプリケーションＡの中間データの退避が必要であることが分かる。そのため、管理部７は、記憶領域８３7で保持しているデータを中間データプール６５の第１の記憶領域へ書き出し、中間データ管理表６６に記憶領域８３7から中間データプール６５へアプリケーションＡの中間データを退避させた旨を書き込む。その後、管理部７は、記憶領域８３1、８３7にアプリケーションＢの初期データを書き込む。
【０１６７】
また、管理部７は、構成情報プール６１から読み出したアプリケーションＣの構成情報をＦＰＧＡ８のゲートアレイ８１に書き込み、構成情報の書き込み終了後にＦＰＧＡ８にアプリケーションＣの処理を開始させる。このとき、図８ｇに示すように、中間データプール６５には記憶領域８３7で保持していたアプリケーションＡの中間データ（Ａ−７）が格納され、中間データ管理表６６には、該アプリケーションＡの中間データ（Ａ−７）を中間データプール６５の第１の記憶領域に退避したことが示されている。また、構成状況レジスタ６４にはアプリケーションＣの構成情報をゲートアレイ８１で使用していることが示されている。
【０１６８】
次に、アプリケーションＣの実行中にアプリケーションＡの実行要求を再度受信すると、管理部７は、周辺メモリ要求表６３１及び周辺メモリ状況表６３２を参照し、アプリケーションＡの初期データが周辺メモリ８３の記憶領域８３1、８３3、８３4、８３7、８３8に書き込み可能であるか否かを判定する。
【０１６９】
ここでは、現在実行中のアプリケーションＣで記憶領域８３1、８３7を使用しているため、記憶領域８３3、８３4、８３8にのみアプリケーションＡの初期データが書き込み可能である。但し、周辺メモリ状況表６３２を参照すると、記憶領域８３3、８３4、８３8には、前回アプリケーションＡを実行した際に格納した初期データが残っているため、再度書き込む必要が無いことが分かる。そのため、管理部７は、ここでは周辺メモリ８３の書き換えを実行しない。
【０１７０】
アプリケーションＣの処理が終了すると、管理部７は、アプリケーションＣの実行中に書き込めなかったアプリケーションＡの初期データを記憶領域８３1、８３7へ書き込む。
【０１７１】
このとき、管理部７は、中間データ管理表６６を参照することで、中間データプール６５の第１の記憶領域に退避している中間データ（Ａ−７）を記憶領域８３7へ書き込み、記憶領域８３1に初期データプール６２から読み出した初期データを書き込む。また、管理部７は、中間データプール６５の第１の記憶領域を無効化する。無効化は、中間データ（Ａ−７）の中間データプール６５への退避を示す情報を中間データ管理表６６から削除することで実現する。
【０１７２】
続いて、管理部７は、構成情報プール６１から読み出したアプリケーションＡの構成情報をＦＰＧＡ８のゲートアレイ８１に書き込み、構成情報の書き込み終了後にＦＰＧＡ８にアプリケーションＡの処理を開始させる。このとき、図８ｈに示すように、中間データ管理表６６ではアプリケーションＡの中間データの退避先を示す情報が削除されている。また、中間データプール６５の第１の記憶領域にはアプリケーションＡの中間データ（Ａ−７）が残っているが、中間データ管理表６６から該中間データの退避先を示す情報が削除されているため、該中間データの読み出し処理は無効化されている。
【０１７３】
以下、同様にして、次に実行要求されたアプリケーションの初期データや中間データのうち、現在実行中のアプリケーションで使用していない周辺メモリ８３へ書き込む初期データや中間データは、現在実行中のアプリケーションの終了を待つことなく書き込み、現在実行中のアプリケーションで使用している周辺メモリ８３へ書き込む初期データや中間データは、現在実行中のアプリケーションの終了を待って書き込む。また、その際、現在実行中のアプリケーションで使用している周辺メモリ８３内の中間データの退避が必要な場合は、該中間データを中間データプール６５へ書き出し、中間データ管理表６６に退避後の中間データが格納された領域を記憶させる。
【０１７４】
本実施例のメモリデバイス管理装置によれば、ＦＰＧＡ８が備える周辺メモリ８３のうち、現在実行中のアプリケーションで使用していない記憶領域に対して、次に実行するアプリケーションの初期データを先行して書き込むため、アプリケーションの切り替え時に初期データの書き換えに要する時間を短縮できる。
【０１７５】
また、構成情報を用いて初期データや中間データを周辺メモリ８３に読み込むための回路を作成する必要がないため、ＦＰＧＡ８にアプリケーション以外の処理を実行させる必要がなくなる。
【０１７６】
したがって、再構成デバイスの全処理時間における、アプリケーションの処理時間の割合を増大させることができる。したがって、本実施例のメモリデバイス管理装置を用いることで、再構成デバイスの処理性能（スループット）が向上する。
【０１７７】
（第２実施例）
図９は第２実施例のメモリデバイス管理装置の構成を示すブロック図である。
【０１７８】
図９に示すように、第２実施例のメモリデバイス管理装置は、管理データ記憶部６及び管理部７を備えている。
【０１７９】
第２実施例は、上記特許文献９に記載されたＤＲＰ９から成るデータ処理装置を、上述した第６の実施の形態のメモリデバイス管理装置で管理する例である。
【０１８０】
ＤＲＰ９は、第３の実施の形態や第６の実施の形態で示した第３の再構成可能ハードウェア５に相当する。
【０１８１】
ＤＲＰ９は、演算を実行するＰＥ群９１と、ＰＥ群９１の動作を制御するＳＴＣ９２と、初期データや中間データを保持する周辺メモリ９３とを備えている。周辺メモリ９３は、管理単位となる複数の記憶領域９３1〜９３nに分割可能である。
【０１８２】
ＰＥ群９１は、演算を実行する複数のＰＥ（Processor Element）を備え、各ＰＥは構成情報を保持するための命令メモリ９４を備えている。命令メモリ９４は、管理単位となる複数のブロック０〜ｎに分割可能である。なお、以下では、命令メモリ９４の各ブロックで構成情報を保持する例を示すが、構成情報はＳＴＣ９２が備える不図示の内部メモリでも保持可能である。
【０１８３】
ＰＥ群９１は、第３の実施の形態や第６の実施の形態で示した第３の再構成可能ハードウェア５の演算部５２及び構成情報記憶部５４に相当し、ＳＴＣ９２は第３の再構成可能ハードウェア５の制御部５１に相当し、周辺メモリ９３は第３の再構成可能ハードウェア５の処理データ記憶部５３に相当する。
【０１８４】
管理データ記憶部６は、構成情報プール６７、初期データプール６２、周辺メモリ管理部６３、構成状況表６８、中間データプール６５及び中間データ管理表６６を備えている。構成情報プール６７は、第６の実施の形態で示した管理データ記憶部１の構成情報プール１１に相当し、初期データプール６２は管理データ記憶部１の初期データプール１２に相当する。周辺メモリ管理部６３は管理データ記憶部１の記憶部管理部１３に相当し、構成状況表６８は管理データ記憶部１の構成状況表１４に相当する。また、中間データプール６５は管理データ記憶部１の中間データプール１５に相当し、中間データ管理表６６は管理データ記憶部１の中間データ管理表１６に相当する。
【０１８５】
構成情報プール６７には、ＤＲＰ９で実行する複数のアプリケーション毎の構成情報が格納される。
【０１８６】
初期データプール６２には、ＤＲＰ９で実行する複数のアプリケーション毎の初期データが格納される。
【０１８７】
周辺メモリ管理部６３は、周辺メモリ要求表６３１及び周辺メモリ状況表６３２を備えている。
【０１８８】
周辺メモリ要求表６３１は、アプリケーションの実行時に、該アプリケーションの初期データや中間データの保持に用いる、ＤＲＰ９の周辺メモリ９３の記憶領域を示す情報が格納される。また、周辺メモリ要求表６３１には、後述する中間データとして退避や再書き込みが必要であるか否かを示す情報も格納される。
【０１８９】
周辺メモリ状況表６３２は、ＤＲＰ９の周辺メモリ９３を現在使用している、アプリケーションを示す情報が格納される。
【０１９０】
構成状況表６８は、ＤＲＰ９で現在保持している構成情報を識別するための情報が格納される。
【０１９１】
中間データプール６５は、ＤＲＰ９で実行する、任意のアプリケーションによる処理途中のデータ（中間データ）が格納される。
【０１９２】
中間データ管理表６６は、中間データが格納された中間データプール６５の記憶領域を示す情報が格納される。
【０１９３】
以下、ＤＲＰ９で３種類のアプリケーションＡ、Ｂ、Ｃを実行する場合を例にして、第２実施例のメモリデバイス管理装置の動作について説明する。
【０１９４】
図１０ａは、管理データ記憶部６が備える構成情報プール６７、初期データプール６２、周辺メモリ管理部６３、構成状況表６８、中間データプール６５及び中間データ管理表６６に格納された情報を示している。
【０１９５】
図１０ａに示す例では、構成情報プール６７に、アプリケーションＡに対応して命令メモリ９４の８ブロックに相当する構成情報が格納され、アプリケーションＢに対応して命令メモリ９４の６ブロックに相当する構成情報が格納され、アプリケーションＣに対応して命令メモリ９４の１２ブロックに相当する構成情報が格納されている。また、初期データプール６２には、アプリケーションＡに対応して周辺メモリ９３の５つの記憶領域に相当する初期データが格納され、アプリケーションＢに対応して周辺メモリ９３の４つの記憶領域に相当する初期データが格納され、アプリケーションＣに対応して周辺メモリ９３の４つの記憶領域に相当する初期データが格納されている。
【０１９６】
周辺メモリ要求表６３１には、アプリケーションＡ、Ｂ、Ｃで使用する周辺メモリ９３の記憶領域が示されている。ここでは、周辺メモリ９３が８つの記憶領域９３1〜９３8に分割されているものとする。また、ＰＥ群９１は内部メモリ９４により構成情報を１６のブロック（ブロック０〜１５）にて保持可能とする。
【０１９７】
周辺メモリ状況表６３２、中間データ管理表６６、構成状況表６８には、現状では何も情報が格納されておらず、中間データプール６５には何も中間データが格納されていない。
【０１９８】
図１０ａに示す周辺メモリ要求表６３１、周辺メモリ状況表６３２及び中間データ管理表６６の縦軸は、周辺メモリ９３の分割後の記憶領域９３1〜９３8に対応し、「１」が記載されている記憶領域は、該記憶領域に対応するアプリケーションで使用することを示している。また、「２」が記載されている記憶領域は、該記憶領域で保持するデータが中間データとして退避や再書き込みが必要であることを示している。ここでは、予めアプリケーションＡ、Ｂ、Ｃの構成情報が構成情報プール６１に格納され、アプリケーションＡ、Ｂ、Ｃの初期データが初期データプール６２に格納され、周辺メモリ要求表６３１に、図１０ａに示すような、各アプリケーションＡ、Ｂ、Ｃに対応する情報が格納されている状態から動作を開始するものとする。
【０１９９】
ＤＲＰ９及びメモリデバイス管理装置が起動され、外部からアプリケーションＡの実行要求を受信すると、管理部７は、構成情報プール６７からアプリケーションＡの構成情報を読み出し、ＰＥ群９１が備える命令メモリ９４およびＳＴＣ９２が備える内部メモリに該構成情報を書き込み、構成状況表６８にアプリケーションＡの構成情報の書き込み済みを示す情報を格納する。
【０２００】
また、管理部７は、周辺メモリ要求表６３１を参照し、アプリケーションＡの初期データが周辺メモリ９３の記憶領域９３1、９３3、９３4、９３7、９３8に書き込み可能であるか否かを判定する。
【０２０１】
図１０ａに示す周辺メモリ要求表６３１を参照すると、記憶領域９３7、９３8は中間データの退避または書き込みに用いる領域であるが、中間データ管理表６６を参照すると、現時点では中間データが無い。
【０２０２】
したがって、管理部７は、初期データプール６２からアプリケーションＡの初期データを読み出し、該初期データを記憶領域９３1、９３3、９３4、９３7、９３8へ書き込み、周辺メモリ状況表６３２を初期データ書き込み後の周辺メモリ９３の状態に応じて更新する。
【０２０３】
管理部７は、アプリケーションＡの全ての構成情報及び初期データの書き込みが終了すると、ＤＲＰ９によるアプリケーションＡの処理を開始させる。このとき、図１０ｂに示すように、周辺メモリ状況表６３２には、周辺メモリ９３の記憶領域９３1、９３3、９３4、９３7、９３8をアプリケーションＡで使用していることが示されている。また、構成状況表６８には、命令メモリ９４のブロック０〜７でアプリケーションＡの構成情報を保持していることが示されている。
【０２０４】
次に、アプリケーションＡの実行中にアプリケーションＢの実行要求を受信すると、管理部７は、周辺メモリ要求表６３１及び周辺メモリ状況表６３２を参照し、アプリケーションＢの初期データが周辺メモリ９３の記憶領域９３1、９３2、９３6、９３8に書き込み可能であるか否かを判定する。
【０２０５】
ここで、記憶領域９３1、９３8は、現在実行中のアプリケーションＡで使用しているため、記憶領域９３2、９３6にのみアプリケーションＢの初期データが書き込み可能である。したがって、管理部７は、初期データプール６２から読み出したアプリケーションＢの初期データを記憶領域９３2、９３6へ書き込み、周辺メモリ状況表６３２を更新する。
【０２０６】
また、管理部７は、構成状況表６８を参照し、現在実行中のアプリケーションＡの構成情報が書き込まれていない命令メモリ９４のブロック８〜１５に、構成情報プール６７から読み出したアプリケーションＢの構成情報を書き込む。
【０２０７】
このとき、図１０ｃに示すように、周辺メモリ状況表６３２には、周辺メモリ９３の記憶領域９３1、９３3、９３4、９３7、９３8をアプリケーションＡで使用し、記憶領域９３2、９３6をアプリケーションＢで使用していることが示されている。また、アプリケーションＢでは構成情報を保持するのに６ブロックの命令メモリ９４を使用するため、構成状況表６８には命令メモリ９４のブロック０〜７にアプリケーションＡの構成情報が格納され、ブロック８〜１３にアプリケーションＢの構成情報が格納されていることが示されている。
【０２０８】
アプリケーションＡの処理が終了すると、管理部７は、アプリケーションＡの実行中に書き込めなかったアプリケーションＢの初期データを記憶領域９３1、９３8に書き込む。管理部７は、まず周辺メモリ状況表６３２を参照することで記憶領域９３1、９３8へ初期データの書き込みが必要であり、周辺メモリ要求表６３１を参照することで、記憶領域９３8のデータが退避させる中間データであると判定する。そのため、管理部７は、記憶領域９３8で保持しているデータを中間データプール６５の第１の記憶領域へ書き出し、中間データ管理表６６にアプリケーションＡの中間データを中間データプール６５の第１の記憶領域へ退避させたことを示す情報を書き込む。その後、管理部７は、記憶領域９３1、９３8にアプリケーションＢの初期データを書き込む。
【０２０９】
管理部７は、アプリケーションＢの全ての初期データの書き込みが完了すると、ＤＲＰ９にアプリケーションＢの処理を開始させる。このとき、図１０ｄに示すように、中間データプール６５には周辺メモリ９３の記憶領域９３8で保持していたアプリケーションＡの中間データ（Ａ−８）が格納され、中間データ管理表６６には、該アプリケーションＡの中間データ（Ａ−８）の退避先（中間データプール６５の第１の記憶領域）が示されている。
【０２１０】
次に、アプリケーションＢの実行中にアプリケーションＡの実行要求を再度受信すると、管理部７は、周辺メモリ要求表６３１及び周辺メモリ状況表６３２を参照し、アプリケーションＡの初期データが周辺メモリ９３の記憶領域９３1、９３3、９３4、９３7、９３8に書き込み可能であるか否かを判定する。
【０２１１】
ここで、記憶領域９３1、９３8は現在実行中のアプリケーションＢで使用しているため、記憶領域９３3、９３4、９３7のみアプリケーションＡの初期データの書き込みが可能である。但し、周辺メモリ状況表６３２を参照すると、記憶領域９３3、９３4、９３7には、前回アプリケーションＡを実行したときの初期データが残っているため、再度書き込む必要が無い。また、アプリケーションＡの構成情報も命令メモリ９４のブロック０〜７に残っているため、構成情報の書き換えも不要である。そのため、管理部７は、ここでは周辺メモリ９３や命令メモリ９４の書き換えを実行しない。
【０２１２】
アプリケーションＢの処理が終了すると、管理部７は、アプリケーションＢの実行中に書き込めなかったアプリケーションＡの初期データを記憶領域９３1、９３8に書き込む。このとき、管理部７は、中間データ管理表６６を参照することで、中間データプール６５の第１の記憶領域に退避している中間データ（Ａ−８）を記憶領域９３8へ書き込み、記憶領域９３1に初期データプール６２から読み出した初期データを書き込む。また、管理部７は、中間データプール６５の第１の記憶領域を無効化する。無効化は、中間データ（Ａ−８）を中間データプール６５へ退避させたことを示す情報を中間データ管理表６６から削除することで実現する。
【０２１３】
上述したように、アプリケーションＡの構成情報は命令メモリ９４のブロック０〜７に残っているため、管理部７は、周辺メモリ９３に対するアプリケーションＡの初期データの書き込みが完了した後、ＤＲＰ９にアプリケーションＡの処理を開始させる。このとき、図１０ｅに示すように、中間データ管理表６６ではアプリケーションＡの中間データの退避先を示す情報が削除されている。また、中間データプール６５の第１の記憶領域にはアプリケーションＡの中間データ（Ａ−８）が残っているが、中間データ管理表６６から該中間データの退避先を示す情報が削除されているため、該中間データの読み出し処理は無効化されている。
【０２１４】
次に、アプリケーションＡの実行中にアプリケーションＣの実行要求を受信すると、管理部７は、周辺メモリ要求表６３１及び周辺メモリ状況表６３２を参照し、アプリケーションＣの初期データが周辺メモリ９３の記憶領域９３1、９３2、９３5、９３6、９３7に書き込み可能であるか否かを判定する。
【０２１５】
ここで、記憶領域９３1、９３7は、現在実行中のアプリケーションＡで使用しているため、記憶領域９３2、９３5、９３6にのみアプリケーションＣの初期データが書き込み可能である。したがって、管理部７は、初期データプール６２から読み出したアプリケーションＣの初期データを記憶領域９３5、９３6へ書き込み、周辺メモリ状況表６３２を更新する。
【０２１６】
また、管理部７は、構成状況表６８を参照し、現在実行中のアプリケーションＡの構成情報が書き込まれていない命令メモリ９４のブロック８〜１５に、構成情報プール６７から読み出したアプリケーションＣの構成情報を書き込む。但し、構成情報プール６７を参照すると、アプリケーションＣは構成情報の保持に１２ブロックの命令メモリ９４が必要である。したがって、管理部７は、アプリケーションＣの構成情報のうち、命令メモリ９４の空きブロックに格納可能な構成情報Ｃ０〜Ｃ７のみを構成情報プール６７から読み出して命令メモリ９４のブロック８〜１５に書き込む。このとき、図１０ｆに示すように、周辺メモリ状況表６３２には、周辺メモリ９３の記憶領域９３1、９３3、９３4、９３7、９３8をアプリケーションＡで使用し、記憶領域９３2、９３5、９３6をアプリケーションＣで使用していることが示されている。また、構成状況表６８には、命令メモリ９４のブロック０〜７でアプリケーションＡの構成情報を保持し、命令メモリ９４のブロック８〜１５でアプリケーションＣの構成情報を保持していることが示されている。
【０２１７】
アプリケーションＡの処理が終了すると、管理部７は、アプリケーションＡの実行中に書き込めなかったアプリケーションＣの初期データを記憶領域９３1、９３7へ書き込む。管理部７は、まず周辺メモリ状況表６３２を参照することで記憶領域９３1、９３7へ初期データの書き込みが必要であり、周辺メモリ要求表６３１を参照することで、記憶領域９３7で保持されたアプリケーションＡの中間データの退避が必要であることが分かる。そのため、管理部７は、記憶領域９３7で保持しているデータを中間データプール６５の第１の記憶領域へ書き出し、中間データ管理表６６に記憶領域９３7から中間データプール６５へアプリケーションＡの中間データの退避済みを示す情報を書き込む。その後、管理部７は、記憶領域９３1、９３7にアプリケーションＣの初期データを書き込む。
【０２１８】
また、管理部７は、構成状況表６８を参照し、アプリケーションＡの実行中に書き込めなかったアプリケーションＣの構成情報Ｃ９〜Ｃ１１を構成情報プール６７から読み出し、例えばアプリケーションＡで使用していた命令メモリ９４のブロック０〜３へ書き込む。
【０２１９】
アプリケーションＣの全ての構成情報の書き込みが完了すると、管理部７は、ＤＲＰ９にアプリケーションＣの処理を開始させる。このとき、図１０ｇに示すように、中間データプール６５には記憶領域９３7で保持していたアプリケーションＡの中間データ（Ａ−７）が格納され、中間データ管理表６６には、該アプリケーションＡの中間データ（Ａ−７）の退避先（中間データプール６５の第１の記憶領域）が示されている。また、構成状況表６８には、命令メモリ９４のブロック４〜７でアプリケーションＡの構成情報が保持され、命令メモリ９４のブロック８〜１５及び０〜３でアプリケーションＣの構成情報を保持していることが示されている。
【０２２０】
次に、アプリケーションＣの実行中にアプリケーションＡの実行要求を再度受信すると、管理部７は、周辺メモリ要求表６３１及び周辺メモリ状況表６３２を参照し、アプリケーションＡの初期データが周辺メモリ９３の記憶領域９３1、９３3、９３4、９３7、９３8に書き込み可能であるか否かを判定する。
【０２２１】
ここでは、記憶領域９３1、９３7を現在実行中のアプリケーションＣで使用しているため、記憶領域９３3、９３4、９３7にのみアプリケーションＡの初期データの書き込みが可能である。但し、周辺メモリ状況表６３２を参照すると、記憶領域９３3、９３4、９３7には、前回アプリケーションＡを実行したときの初期データが残っているため、再度書き込む必要が無い。また、命令メモリ９４のブロック４〜７にはアプリケーションＡの構成情報Ａ４〜Ａ７が残っており、他のブロックはアプリケーションＣで使用しているため、管理部７は、ここでは周辺メモリ９３や命令メモリ９４の書き換えを実行しない。
【０２２２】
アプリケーションＣの処理が終了すると、管理部７は、アプリケーションＣの実行中に書き込めなかったアプリケーションＡの初期データを記憶領域９３1、９３7に書き込む。このとき、管理部７は、中間データ管理表６６を参照することで、中間データプール６５の第１の記憶領域に退避している中間データ（Ａ−７）を周辺メモリ９３の記憶領域９３7へ書き込み、記憶領域９３1に初期データプール６２から読み出した初期データを書き込む。また、管理部７は、中間データプール６５の第１の記憶領域を無効化する。無効化は、中間データプール６５への退避を示す情報を中間データ管理表６６から削除することで実現する。
【０２２３】
また、管理部７は、アプリケーションＣの実行中に書き込めなかったアプリケーションＡの構成情報Ａ０〜Ａ３を命令メモリ９４のブロック０〜３に書き込み、アプリケーションＡの全ての構成情報の書き込みが完了した後、ＤＲＰ９にアプリケーションＡの処理を開始させる。このとき、図１０ｈに示すように、中間データ管理表６６ではアプリケーションＡの中間データの退避先を示す情報が削除されている。また、中間データプール６５の第１の記憶領域にはアプリケーションＡの中間データ（Ａ−７）が残っているが、中間データ管理表６６から該中間データの退避先を示す情報が削除されているため、該中間データの読み出し処理は無効化されている。また、構成状況表６８には、命令メモリ９４のブロック０〜７でアプリケーションＡの構成情報が保持され、命令メモリ９４のブロック８〜１５でアプリケーションＣの構成情報が保持されていることが示されている。
【０２２４】
以下、同様にして、次に実行するアプリケーションの初期データや中間データのうち、現在実行中のアプリケーションで使用していない周辺メモリ９３へ書き込む初期データや中間データは、現在実行中のアプリケーションの終了を待つことなく書き込み、現在実行中のアプリケーションで使用している周辺メモリ９３へ書き込む初期データや中間データは、現在実行中のアプリケーションの終了を待って書き込む。また、その際、現在実行中のアプリケーションで使用している周辺メモリ９３内の中間データの退避が必要な場合は、該中間データを中間データプール６５へ書き出し、中間データ管理表６６に退避後の中間データが格納された領域を記憶させる。
【０２２５】
さらに、次に実行するアプリケーションの構成情報のうち、現在実行中のアプリケーションで使用していない命令メモリ９４のブロックには、現在実行中のアプリケーションの終了を待つことなく次に実行するアプリケーションの構成情報を書き込み、現在実行中のアプリケーションで使用している命令メモリ９４のブロックには、現在実行中のアプリケーションの終了を待って次に実行するアプリケーションの構成情報を書き込む。
【０２２６】
本実施例のメモリデバイス管理装置によれば、ＤＲＰ９が備える命令メモリ９４や周辺メモリ９３のうち、現在実行中のアプリケーションで使用していない記憶領域（ブロック）に対して、次に実行するアプリケーションの構成情報や初期データを先行して書き込むため、アプリケーションの切り替え時に、構成情報や初期データの書き換えに要する時間を短縮できる。
【０２２７】
また、構成情報を用いて初期データや中間データを周辺メモリ９３に読み込むための回路を作成する必要がないため、ＤＲＰ９にアプリケーション以外の処理を実行させる必要がなくなる。
【０２２８】
したがって、再構成デバイスの全処理時間における、アプリケーションの処理時間の割合を増大させることができる。したがって、本実施例のメモリデバイス管理装置を用いることで、再構成デバイスの処理性能（スループット）が向上する。
【符号の説明】
【０２２９】
１、６    管理データ記憶部
２、７    管理部
３    第１の再構成可能ハードウェア
４    第２の再構成可能ハードウェア
５    第３の再構成可能ハードウェア
８    ＦＰＧＡ
９    ＤＲＰ
１１、６１、６７    構成情報プール
１２、６２    初期データプール
１３    記憶部管理部
１４、６８    構成状況表
１５、６５    中間データプール
１６、６６    中間データ管理表
３１、４１、５１    制御部
３２、４２、５２    演算部
３３、４３、５３    処理データ記憶部
３４、４４、５４    構成情報記憶部
６３    周辺メモリ管理部
６４    構成状況レジスタ
８１    ゲートアレイ
８３、９３    周辺メモリ
９１    ＰＥ群
９２    ＳＴＣ
９４    命令メモリ
１３１    記憶部要求表
１３２    記憶部状況表
６３１    周辺メモリ要求表
６３２    周辺メモリ状況表
【図１】
2011175535.tif 000003
【図２】
2011175535.tif 000004
【図３】
2011175535.tif 000005
【図４】
2011175535.tif 000006
【図５】
2011175535.tif 000007
【図６】
2011175535.tif 000008
【図７】
2011175535.tif 000009
【図８ａ】
2011175535.tif 000010
【図８ｂ】
2011175535.tif 000011
【図８ｃ】
2011175535.tif 000012
【図８ｄ】
2011175535.tif 000013
【図８ｅ】
2011175535.tif 000014
【図８ｆ】
2011175535.tif 000015
【図８ｇ】
2011175535.tif 000016
【図８ｈ】
2011175535.tif 000017
【図９】
2011175535.tif 000018
【図１０ａ】
2011175535.tif 000019
【図１０ｂ】
2011175535.tif 000020
【図１０ｃ】
2011175535.tif 000021
【図１０ｄ】
2011175535.tif 000022
【図１０ｅ】
2011175535.tif 000023
【図１０ｆ】
2011175535.tif 000024
【図１０ｇ】
2011175535.tif 000025
【図１０ｈ】
2011175535.tif 000026