(57)【要約】  本発明にかかる情報処理装置７は、所定の処理を含むプログラムを実行する演算処理装置７１と、演算処理装置７１に対して、プログラムの実行を要求する実行要求信号を出力すると共に、所定の処理において使用される処理情報を有する再構成デバイス７２と、を備えたものである。演算処理装置７１は、再構成デバイス７２から出力された実行要求信号に応じてプログラムを起動し、再構成デバイス７２から処理情報を読み出し、所定の処理を実行する。
2012035699.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理を含むプログラムを実行する演算処理装置と、
前記演算処理装置に対して、前記プログラムの実行を要求する実行要求信号を出力すると共に、前記所定の処理において使用される処理情報を有する再構成デバイスと、を備え、
前記演算処理装置は、前記再構成デバイスから出力された実行要求信号に応じて前記プログラムを起動し、前記再構成デバイスから前記処理情報を読み出し、前記所定の処理を実行する、
情報処理装置。
【請求項２】
前記プログラムは、前記所定の処理を実行する関数を含み、
前記処理情報は、前記関数の引数であり、
前記プログラムは、前記再構成デバイスから読み出した引数を前記関数に設定して、当該関数を実行する、
請求項１に記載の情報処理装置。
【請求項３】
前記プログラムは、前記関数を複数含み、
前記再構成デバイスは、前記関数を特定する関数特定情報を有し、
前記プログラムは、前記再構成デバイスから前記関数特定情報を読み出し、当該読み出した関数特定情報によって特定される関数を実行する、
請求項２に記載の情報処理装置。
【請求項４】
前記プログラムは、前記関数を実行した場合、当該関数の戻り値を出力し、
前記再構成デバイスは、前記演算処理装置の前記プログラムから出力された戻り値を取得する、
請求項３に記載の情報処理装置。
【請求項５】
前記再構成デバイスは、前記関数特定情報、前記引数、及び前記戻り値が格納される記憶手段をさらに備え、
前記再構成デバイスは、前記関数を実行する場合に、当該関数を特定する関数特定情報及び当該関数の引数を前記記憶手段に格納し、
前記プログラムは、前記記憶手段に格納された関数特定情報及び引数を読み出すとともに、前記戻り値を出力して前記記憶手段に格納する、
請求項４に記載の情報処理装置。
【請求項６】
前記演算処理装置は、オペレーティングシステムを実行するとともに、当該オペレーティングシステム上で前記プログラムを実行するものであって、
前記所定の処理は、前記オペレーティングシステムのシステムコールの実行を含む、
請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
再構成デバイスが、所定の処理を含むプログラムの実行を要求する実行要求信号を出力し、
前記演算処理装置が、前記再構成デバイスから出力された実行要求信号に応じて、前記プログラムを起動し、前記再構成デバイスから前記所定の処理において使用される処理情報を読み出し、前記処理の処理を実行する、
情報処理方法。
【請求項８】
所定の処理を含む第１のソースプログラムに基づいて、再構成デバイスの回路情報の生成に用いられ、前記再構成デバイスに前記所定の処理の実行を要求する実行要求信号を出力させる処理を含むライブラリを生成するライブラリ生成手段と、
前記第１のソースプログラムに基づいて、演算処理装置によって実行される実行プログラムの生成に用いられ、前記再構成デバイスから出力された実行要求信号に応じて前記演算処理装置に前記再構成デバイスから前記所定の処理において使用される処理情報を読み出させ、前記所定の処理を実行させる処理を含む第２のソースプログラムを生成するソースプログラム生成手段と、を備えた設計支援システム。
【請求項９】
前記第１のソースプログラムは、前記関数を複数含み、
前記設計支援システムは、前記第１のソースプログラムに基づいて、前記複数の関数のそれぞれについて、前記関数と、当該関数を特定する関数特定情報とを対応付けた関数対応情報を生成する関数対応情報生成手段をさらに備え、
前記ライブラリ生成手段は、前記関数対応情報に基づいて、前記関数を実行する場合に、当該関数を特定する関数特定情報を前記再構成デバイスに保持させる処理を前記ライブラリに含め、
前記ソースプログラム生成手段は、前記関数対応情報に基づいて、前記演算処理装置に前記再構成デバイスから前記関数特定情報を読み出させ、当該読み出した関数特定情報によって特定される関数を実行させる処理を前記第２のソースプログラムに含める、
請求項８に記載の設計支援システム。
【請求項１０】
再構成デバイスから出力された実行要求信号に応じて実行されたときに、前記再構成デバイスから所定の処理において使用される処理情報を読み出す処理と、
前記読み出した処理情報を使用して前記所定の処理を実行する処理と、
を演算処理装置に実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、設計支援システム及びプログラムが格納された非一時的なコンピュータ可読媒体に関する。
【背景技術】
【０００２】
情報処理装置は、その利用範囲が広がるにつれ、より高度な演算処理能力、あるいは、画像や動画のような大量のマルチメディアデータを高速に処理する能力が要求されている。このような要求を満たすための手法として、特定の演算や処理を専用に実行するプロセッサや回路をホストプロセッサとは別に設けることが知られている。そのようなプロセッサや回路として、ＤＳＰ（Digital Signal Processor）や、ＡＳＩＣ（Application Specific Integrated Circuit）などがある。この手法によれば、ホストプロセッサの処理負荷を軽減できるので、情報処理装置全体の処理能力を向上させることができる。【０００３】
近年では、マルチメディアデータに対して様々な規格の圧縮・伸長処理や演算処理が必要とされる。また、ネットワークを介して各種のデータを送受信するための通信処理においても、様々なプロトコルに基づく処理が必要とされる。更に、セキュリティを確保するために、データの暗号化、復号処理が必要とされることもある。
しかし、これらの様々な処理に応じて、多数の専用のプロセッサや回路を情報処理装置に設けると、情報処理装置の回路規模やコストが膨大なものとなってしまう。【０００４】
そこで、情報処理装置に、特許文献１乃至６や非特許文献１に記載されているようなＦＰＧＡ（Field Programmable Gate Array）、ＣＰＬＤ（Complex Programmable Logic De vice）、あるいはＤＲＰ（Dynamically Reconfigurable Processor）などを設けて様々な処理に対応することが知られている。これらのプログラマブルデバイスを再構成デバイスという。再構成デバイスが回路構成を変化させて様々な処理を実行するので、情報処理装置は、この再構成デバイスの搭載により、低コストで、様々な処理要求に対応することができる。【０００５】
再構成デバイスは、一般に、コンフィギュレーション・コード、すなわち回路情報と、処理に必要な入力データ及び初期値と、処理結果とを一時的に保持するための内部メモリを備える。この内部メモリは、複数の記憶素子から構成される。
また、再構成デバイスを備える情報処理装置には、回路情報を再構成デバイス内の記憶素子に書き込むための書込装置が設けられる。【０００６】
書込装置は、情報処理装置内のＭＰＵ（Micro Processing Unit）やＣＰＵ（Central Processing Unit）等の制御に従って、回路情報を再構成デバイスの各記憶素子に書き込む。再構成デバイスは、記憶素子に書き込まれた回路情報に基づいて内部に回路を構成する。
ＦＰＧＡを対象とする書込装置は、コンパクトフラッシュ（登録商標）を内蔵する。コンパクトフラッシュは、コンフィギュレーション・ハードウェアやコンフィギュレーション・デバイスとも呼ばれる。また、情報処理装置は、ＪＴＡＧ（Joint Test Action Group）に準拠した書込みインタフェースを用いて、ＦＰＧＡの一部を書き換えることができる。【０００７】
書込装置を用いて、再構成デバイス内の記憶素子に保持されたデータを書き換えるためには、書き換える対象のデータに加えて、書き換える対象の記憶素子の位置を書込装置に入力する必要がある。再構成デバイスは、例えば、ＦＰＧＡやＤＲＰなどである。
例えば、ＤＲＰにおいては、ＤＲＰ内の記憶素子のそれぞれにアドレスが割り当てられている。つまり、書込装置から見ると、ＤＲＰは記憶素子からなる巨大なメモリのように見える。このため、書込装置は、アドレスおよびデータの入力に応じて、そのアドレスに対応する記憶素子へ、そのデータを書き込むことができる。【０００８】
この書込装置のほか、演算処理装置が、バスラインに接続される。演算処理装置は、例えば、ＭＰＵやＣＰＵなどである。このバスラインには、共有メモリも接続される。演算処理装置と再構成デバイスは、同時に動作できるように、この共有メモリを介して、再構成デバイスやＭＰＵが処理対象とするデータをやり取りする。あるいは、共有メモリの一部を演算処理装置もしくは再構成デバイスがデータ処理のためのワークメモリとして使用する。 
さらに、バスラインには割込コントローラも接続される。演算処理装置と再構成デバイスが協調して動作できるように、この割込コントローラを介して、再構成デバイスは演算処理装置へ割込みを通知する。 【０００９】
一方、演算処理装置には、通常、オペレーティングシステムが搭載される。そのオペレーティングシステムの中でアプリケーションソフトウェアが動作する。このアプリケーションソフトウェアは、オペレーティングシステムから提供されるシステムコールを利用することができる。例えば、データ処理のためのワークメモリを共有メモリから動的に確保したり、入力インタフェースを介してキーボードやマウスからデータを入力したり、出力インタフェースを介してディスプレイに文字や画像を出力したりすることができる。【００１０】
再構成デバイスは、その処理内容をプログラミングによって柔軟に設計することができるようになってきている。そのため、再構成デバイスには、特定の処理や、汎用的な処理等の様々な処理を実装するようになってきている。しかしながら、再構成デバイスは、演算リソースが限られており、それに応じた量の処理しか実装することができない。例えば、演算処理装置は、上述したようにオペレーティングシステムを実装可能な程度に十分な演算リソースを有しているが、再構成デバイスはそこまでの演算リソースは有していない。ここで、再構成デバイスにおける演算リソース不足を補って、再構成デバイスによって所望の処理を実行可能とする方法として、再構成デバイスにおける処理の一部を、演算リソースに余裕のある演算処理装置で代替して実行させる方法が考えられる。【００１１】
特許文献１乃至６及び非特許文献１には、再構成デバイスに関する技術が開示されている。しかしながら、特許文献１乃至６や非特許文献１のいずれにも、再構成デバイスの処理を演算処理装置で代替して実行することを可能とする技術は開示されていない。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０００−１３８５７９号公報
【特許文献２】特開２０００−２２４０２５号公報
【特許文献３】特開２０００−２３２３５４号公報
【特許文献４】特開２０００−２３２１６２号公報
【特許文献５】特開２００３−０７６６６８号公報
【特許文献６】特開２００５−２４２８１２号公報
【非特許文献】
【００１３】
【非特許文献１】Hideharu Amano, Akiya Jouraku, Kenichiro Anjo, "A Dynamicall y Adaptive Hardware on Dynamically Reconfigurable Processor", IEICE Transact ions, Vol. E86-B, No.12, pp. 3385-3391, 2003.
【発明の概要】
【発明が解決しようとする課題】
【００１４】
背景技術として説明したように、再構成デバイスの処理を演算処理装置で代替して実行することができないという問題がある。【００１５】
本発明の目的は、上述したような課題を解決するために、再構成デバイスの処理を演算処理装置で代替して実行することができる情報処理装置、情報処理方法、設計支援システム及びプログラムが格納された非一時的なコンピュータ可読媒体を提供することである。
【課題を解決するための手段】
【００１６】
本発明の第１の態様にかかる情報処理装置は、所定の処理を含むプログラムを実行する演算処理装置と、前記演算処理装置に対して、前記プログラムの実行を要求する実行要求信号を出力すると共に、前記所定の処理において使用される処理情報を有する再構成デバイスと、を備え、前記演算処理装置は、前記再構成デバイスから出力された実行要求信号に応じて前記プログラムを起動し、前記再構成デバイスから前記処理情報を読み出し、前記所定の処理を実行するものである。【００１７】
本発明の第２の態様にかかる情報処理方法は、再構成デバイスが、所定の処理を含むプログラムの実行を要求する実行要求信号を出力し、前記演算処理装置が、前記再構成デバイスから出力された実行要求信号に応じて、前記プログラムを起動し、前記再構成デバイスから前記所定の処理において使用される処理情報を読み出し、前記処理の処理を実行するものである。【００１８】
本発明の第３の態様にかかる設計支援システムは、所定の処理を含む第１のソースプログラムに基づいて、再構成デバイスの回路情報の生成に用いられ、前記再構成デバイスに前記所定の処理の実行を要求する実行要求信号を出力させる処理を含むライブラリを生成するライブラリ生成手段と、前記第１のソースプログラムに基づいて、演算処理装置によって実行される実行プログラムの生成に用いられ、前記再構成デバイスから出力された実行要求信号に応じて前記演算処理装置に前記再構成デバイスから前記所定の処理において使用される処理情報を読み出させ、前記所定の処理を実行させる処理を含む第２のソースプログラムを生成するソースプログラム生成手段と、を備えたものである。【００１９】
本発明の第４の態様にかかるプログラムが格納された非一時的なコンピュータ可読媒体は、再構成デバイスから出力された実行要求信号に応じて実行されたときに、前記再構成デバイスから所定の処理において使用される処理情報を読み出す処理と、前記読み出した処理情報を使用して前記所定の処理を実行する処理と、を演算処理装置に実行させるプログラムが格納された非一時的なコンピュータ可読媒体である。
【発明の効果】
【００２０】
上述した本発明の各態様によれば、再構成デバイスの処理を演算処理装置で代替して実行することができる情報処理装置、情報処理方法、設計支援システム及びプログラムが格納された非一時的なコンピュータ可読媒体を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態にかかる情報処理装置のブロック図である。
【図２】本発明の実施の形態にかかる設計支援システムのブロック図である。
【図３】本発明の実施の形態にかかるターゲットシステムの一構成例を示すブロック図である。
【図４】本発明の実施の形態にかかるプログラム設計支援システムの一構成例を示すブロック図である。
【図５】本発明の実施の形態にかかるプログラム生成装置の一構成例を示すブロック図である。
【図６】本発明の実施の形態にかかるユーザ定義関数プログラムの一記述例を示す図である。
【図７】本発明の実施の形態にかかる関数リストの一構成例を示す図である。
【図８】本発明の実施の形態にかかるクライアントライブラリの一記述例を示す図である。
【図９】本発明の実施の形態にかかるサーバプログラムの一記述例を示す図である。
【図１０】本発明の実施の形態にかかるスタックデータの一構成例を示す模式図である。
【図１１Ａ】本発明の実施の形態にかかるターゲットシステムの一構成例を示す模式図である。
【図１１Ｂ】本発明の実施の形態にかかるスタックデータの一構成例を示す模式図である。
【図１２Ａ】本発明の実施の形態にかかるスタックデータの一使用例を示す模式図である。
【図１２Ｂ】本発明の実施の形態にかかるスタックデータの一使用例を示す模式図である。
【図１３】本発明の実施の形態にかかるプログラム設計支援システムの動作シーケンスを示すフローチャートである。
【図１４】本発明の実施の形態にかかる動作レベル記述の一記述例を示す図である。
【図１５】本発明の実施の形態にかかるターゲットシステムの動作シーケンスを示すフローチャートである。
【図１６Ａ】本発明の実施の形態にかかるターゲットシステム動作時のスタックデータの状態を示す模式図である。
【図１６Ｂ】本発明の実施の形態にかかるターゲットシステム動作時のスタックデータの状態を示す模式図である。
【図１７Ａ】本発明の実施の形態にかかるターゲットシステム動作時のスタックデータの状態を示す模式図である。
【図１７Ｂ】本発明の実施の形態にかかるターゲットシステム動作時のスタックデータの状態を示す模式図である。
【図１８】本発明の実施の形態にかかるターゲットシステム動作時のコンソール出力例を示す模式図である。
【発明を実施するための形態】
【００２２】
まず、図１を参照して、本発明の実施の形態にかかるターゲットシステムの概要となる情報処理装置について説明する。図１は、本発明の実施の形態にかかる情報処理装置のブロック図である。
情報処理装置７は、演算処理装置７１及び再構成デバイス７２を有する。
演算処理装置７１は、オペレーティングシステムを実行する。演算処理装置７１は、オペレーティングシステム上で動作するプログラムを実行する。プログラムは、所定の処理を含む。
再構成デバイス７２は、演算処理装置７１に対して、プログラムの実行を要求する実行要求信号を出力する。また、再構成デバイス７２は、所定の処理において使用される処理情報を有する。
【００２３】
続いて、本発明の実施の形態にかかる情報処理装置７の動作について説明する。
演算処理装置７１は、オペレーティングシステムの実行を開始する。
再構成デバイス７２は、演算処理装置に対して、実行要求信号を出力する。
演算処理装置７１は、再構成デバイス７２から出力された実行要求信号に応じて、プログラムを実行する。このとき、演算処理装置７１は、再構成デバイス７２から処理情報を読み出し、所定の処理を実行する。
【００２４】
続いて、本発明の実施の形態にかかるプログラム設計支援システムの概要となる設計支援システムについて説明する。図２は、本発明の実施の形態にかかる設計支援システムのブロック図である。
【００２５】
設計支援システム２は、ソースプログラム生成部２１及びライブラリ生成部２２を有する。
【００２６】
ソースプログラム生成部２１は、第１のソースプログラム２５に基づいて、再構成デバイスが出力した実行要求信号に応じて、演算処理装置に再構成デバイスから所定の処理において使用される処理情報を読み出させ、所定の処理を実行させる処理を含む第２のソースプログラム２６を生成する。この第２のソースプログラム２６は、オペレーティングシステムを実行する演算処理装置によってオペレーティングシステム上で実行される実行プログラムの生成に用いられる。
ライブラリ生成部２２は、所定の処理を含む第１のソースプログラム２５に基づいて、再構成デバイスに所定の処理の実行を要求する実行要求信号を出力させる処理を含むライブラリ２７を生成する。このライブラリ２７は、再構成デバイスの回路情報の動作合成に用いられる。
【００２７】
続いて、本発明の実施の形態にかかる設計支援システム２の動作について説明する。
ソースプログラム生成部２１は、第１のソースプログラム２５に基づいて、第２のソースプログラム２６を生成する。
ライブラリ生成部２２は、第１のソースプログラム２６に基づいて、ライブラリ２７を生成する。
【００２８】
本発明を実施するための形態について図面を参照して詳細に説明する。
本実施形態の情報処理装置と、その情報処理装置を対象として、実行プログラム及び回路情報を設計するためのプログラム設計支援システムとのそれぞれの構成を順に説明する。なお、プログラム設計支援システムにとって情報処理装置は設計対象であることから、以下では、情報処理装置をターゲットシステムと称する。
【００２９】
図３は、本実施形態のターゲットシステム６の一構成例を示すブロック図である。図３を参照すると、ターゲットシステム６は、ＭＰＵ６０１、割込コントローラ６０２、再構成デバイス６０３、読出装置６０４、バスアクセス装置６０５、書込装置６０６、共有メモリ６０７、入出力インタフェース６０８、ネットワークインタフェース６０９、入力装置６１０、出力装置６１１、ネットワーク６１２、およびバスライン６１３を有する。
【００３０】
ＭＰＵ６０１は、割込コントローラ６０２、読出装置６０４、および書込装置６０６を制御することによって、再構成デバイス６０３との間でデータを送受信する演算処理装置である。さらに、ＭＰＵ６０１は、オペレーティングシステムを実行する。ＭＰＵ６０１は、オペレーティングシステムの実行に応じて、共有メモリ６０７、入出力インタフェース６０８、ネットワークインタフェース６０９を制御する。ＭＰＵ６０１は、例えば、種々の演算、入力装置６１０からの入力、出力装置６１１への出力、ネットワーク６１２との入出力などを実行する。
【００３１】
また、ＭＰＵ６０１は、オペレーティングシステム上で動作する実行プログラムを実行する。実行プログラムは、オペレーティングシステムが提供するシステムコールを実行する処理を含めてもよい。この場合、実行プログラムを実行することによって、システムコール等のオペレーティングシステムが提供する機能が利用される。ＭＰＵ６０１は、割込コントローラ６０２からの割込み信号に応じて、実行プログラムを実行する。
【００３２】
バスライン６１３には、ＭＰＵ６０１、割込コントローラ６０２、読出装置６０４、バスアクセス装置６０５、書込装置６０６、共有メモリ６０７、入出力インタフェース６０８、ネットワークインタフェース６０９が接続される。
共有メモリ６０７には、ＭＰＵ６０１及び再構成デバイス６０３が処理対象とするデータや、ＭＰＵ６０１及び再構成デバイス６０３が処理した結果が一時的に保持される。
割込コントローラ６０２は、再構成デバイス６０３からの割込信号を受けて、ＭＰＵ６０１に割込みを発生させる。具体的には、割込コントローラ６０２は、再構成デバイス６０３からの割込信号に応じて、割込み信号をＭＰＵ６０１に出力する。
【００３３】
再構成デバイス６０３は、ＦＰＧＡ、ＤＲＰなどの再構成デバイスである。再構成デバイス６０３内には、複数の記憶素子６０３０が設けられる。
記憶素子６０３０は、再構成デバイス６０３が処理対象とするデータや処理結果を一時的に保持する。また、記憶素子６０３０は、事前に設定したユーザ定義関数をＭＰＵ６０１で動作させるためのスタックデータも保持する。
【００３４】
再構成デバイス６０３は、記憶素子６０３０に書き込まれた回路情報の示す回路を構成する。また、再構成デバイス６０３は、バスアクセス装置６０５を制御することにより、共有メモリ６０７にアクセスする。これは、記憶素子６０３０では保持できないサイズの処理対象のデータ、処理途中のデータ、処理結果のデータを共有メモリ６０７で保持させるためである。また、再構成デバイス６０３は、記憶素子６０３０に書き込まれた回路情報に従って、割込信号を発生させる。
【００３５】
具体的には、ＭＰＵ６０１に、オペレーティングシステム上で動作する実行プログラムを実行させる場合に、割込信号を割込コントローラ６０２に出力する。これによって、上述したように、ＭＰＵ６０１が実行プログラムを実行する。言い換えると、この割込信号は、演算処理装置６０１に対して実行プログラムの実行を要求する信号となる。
【００３６】
読出装置６０４は、ＭＰＵ６０１の制御に従って、再構成デバイス６０３とＭＰＵ６０１との間で授受するスタックデータを再構成デバイス６０３の記憶素子６０３０から読出す。具体的には、読出装置６０４は、記憶素子６０３０からＭＰＵ６０１が要求したスタックデータを取得して、取得したスタックデータをＭＰＵ６０１に出力する。
【００３７】
バスアクセス装置６０５は、再構成デバイス６０３の制御に従って、バスライン６１３を介して共有メモリ６０７にアクセスする。具体的には、バスアクセス装置６０５は、再構成デバイス６０３から出力されたデータを共有メモリ６０７に格納する。また、バスアクセス装置６０５は、共有メモリ６０７から再構成デバイス６０３が要求したデータを取得して、取得したデータを再構成デバイス６０３に出力する。
【００３８】
書込装置６０６は、ＭＰＵ６０１の制御に従って、回路情報を再構成デバイス６０３の記憶素子６０３０に書き込む。また、書込装置６０６は、回路情報のほか、再構成デバイス６０３とＭＰＵ６０１との間で授受するスタックデータを再構成デバイス６０３の記憶素子６０３０に書き込む。具体的には、書込装置６０６は、ＭＰＵ６０１から出力されたデータを記憶素子６０３０に書き込む。
【００３９】
入出力インタフェース６０８は、ＭＰＵ６０１と、入力装置６１０及び出力装置６１１との間のデータの入出力を制御する。
ネットワークインタフェース６０９は、ＭＰＵ６０１とネットワーク６１２との間のデータの送受信を制御する。
入力装置６１０は、例えば、キーボードやマウス等である。
出力装置６１１は、例えば、ディスプレイである。
【００４０】
以上に説明した構成によって、再構成デバイス６０３が、演算処理装置６０１に対して実行プログラムの実行を要求する信号を出力することで、演算処理装置６０１にオペレーティングシステム上で動作する実行プログラムを実行させることができるようにしている。つまり、再構成デバイス６０３は、実行プログラムの実行を介して、オペレーティングシステムが提供する機能を利用することができる。
【００４１】
次に、図３に示したＭＰＵ６０１に事前に定義したユーザ定義関数を再構成デバイス６０３から起動させるための実行プログラムの設計を支援するプログラム設計支援システムの構成を説明する。
【００４２】
図４は、プログラム設計支援システム１の一構成例を示すブロック図である。図４を参照すると、プログラム設計支援システム１は、プログラム生成装置１０と、コンパイル装置１４と、動作合成装置１８とを有する。
プログラム生成装置１０は、関数抽出装置１０１と、サーバプログラム生成装置１０４と、クライアントライブラリ生成装置１０５とを有する。
【００４３】
ターゲットシステム情報１２は、ＭＰＵ６０１の内部構成と、アドレスマップ情報と、再構成デバイス６０３内の演算器の数及び種類と、相互接続部の構造と、記憶素子６０３０の数や種類と、バスアドレスのマップと、スタックデータ領域の構成等を示す情報である。アドレスマップ情報は、バスライン６１３に接続されている割込コントローラ６０２、共有メモリ６０７、入出力インタフェース６０８及びネットワークインタフェース６０９等のアドレスマップを示す。バスアドレスのマップは、記憶素子６０３０にバスライン６１３から書込装置６０６又は読出装置６０４を介してアクセスするためのものである。スタックデータ領域は、ターゲットシステム６のＭＰＵ６０１と再構成デバイス６０３とで授受するスタックデータが格納される。また、スタックデータ領域の構成とは、スタックデータが格納される再構成デバイス６０３の記憶素子６０３０の位置や、この記憶素子６０３０に書込装置６０６や読出装置６０４を介してアクセスするためのバスアドレスである。
【００４４】
関数抽出装置１０１には、ユーザ定義関数プログラム１１が入力される。ユーザ定義関数プログラム１１は、図３におけるＭＰＵ６０１で実行する関数が記述されている。また、ユーザ定義関数プログラム１１は、再構成デバイス６０３が演算処理装置６０１に実行させる処理が記述されている。このユーザ定義関数プログラム１１は、例えば、Ｃ言語、Ｃ＋＋言語、あるいはｊａｖａ言語等のプログラミング言語で記述されたソースプログラムである。このユーザ定義関数プログラム１１の記載内容の具体例については、図６で後述する。
【００４５】
関数抽出装置１０１は、ユーザ定義関数プログラム１１から、プログラミング言語仕様に従って関数を抽出して関数リスト１０３を出力する。関数抽出装置１０１は、生成した関数リスト１０３を、サーバプログラム生成装置１０４及びクライアントライブラリ生成装置１０５にそれぞれ送信する。
関数リスト１０３は、関数抽出装置１０１で抽出した関数に固有の番号を割り当てたリストである。ここで、固有の番号は、例えば、関数抽出装置１０１が、抽出した関数毎に一意となるように生成された番号である。関数リスト１０３の記載内容の具体例については、図７で後述する。
【００４６】
サーバプログラム生成装置１０４には、ユーザ定義関数プログラム１１、関数リスト１０３、およびターゲットシステム情報１２が入力される。サーバプログラム生成装置１０４は、ターゲットシステム情報１２に基づいて、ユーザ定義関数プログラム１１と関数リスト１０３から、サーバプログラム１３を生成し、コンパイル装置１４に送信する。
【００４７】
ここで、サーバプログラム１３は、ユーザ定義関数プログラム１１の個々のユーザ定義関数を呼び出すための割込みハンドラで構成される。割込みハンドラは、クライアントライブラリ１６で設定されたスタックデータをユーザ定義関数の引数に変換してから個々のユーザ定義関数を呼び出す。サーバプログラム１３の具体例については、図９で後述する。サーバプログラム１３は、後述する図９に例示するような、ソースプログラムとなる。
【００４８】
クライアントライブラリ生成装置１０５には、ユーザ定義関数プログラム１１、関数リスト１０３、およびターゲットシステム情報１２が入力される。
クライアントライブラリ生成装置１０５は、ターゲットシステム情報１２に基づいて、ユーザ定義関数プログラム１１と関数リスト１０３から、クライアントライブラリ１６を生成し、動作合成装置１８に送信する。
【００４９】
ここで、クライアントライブラリ１６は、クライアント関数を含む。クライアント関数は、ユーザ定義関数プログラム１１の個々の関数の引数をスタックデータに変換し、ＭＰＵ６０１に対して実行プログラムの実行を要求し、ＭＰＵ６０１からの実行結果の通知を待つ。クライアントライブラリ１６の具体例については、図８で後述する。 
【００５０】
コンパイル装置１４は、サーバプログラム１３をターゲットシステム６のＭＰＵ６０１で実行可能な形式(実行バイナリ１５)に変換する。この実行バイナリ１５が、ＭＰＵ６０１において、オペレーティングシステム上で実行される実行プログラムとなる。
動作合成装置１８は、ターゲットシステム情報１２と、クライアントライブラリ１６と、動作レベル記述１７から、動作合成、論理合成、および配置配線を行い、再構成デバイス６０３の回路の構成、配置、配線を示す回路情報１９を生成する。動作レベル記述１７の具体例については、図１４で後述する。動作レベル記述１７には、クライアントライブラリ１６を呼び出す記述が含まれる。
また、動作合成装置１８は、ターゲットシステム情報１２に含まれるスタックデータ領域の構成から、クライアントライブラリ１６で指定されたスタックデータ領域の配置場所を決定して、回路情報１９を生成する。
【００５１】
上述したように、プログラム設計支援システム１には、ユーザ定義関数プログラム１１、ターゲットシステム情報１２、および動作レベル記述１７が入力される。プログラム設計支援システム１内部で、ユーザ定義関数プログラム１１、関数リスト１０３、サーバプログラム１３、およびクライアントライブラリ１６が送受信される。そして、プログラム設計支援システム１は、実行バイナリ１５、および回路情報１９を出力する。
これらの入出力または送受信される情報は、所定の記憶装置（不図示）に格納される。この記憶装置は、プログラム設計支援システム１内部の各装置に設けられていてもよいし、外部に独立して設けられていてもよい。この記憶装置は、例えば、後述するデータ蓄積装置２０３である。
【００５２】
次に、図４に示したプログラム生成装置１０の構成例を説明する。
図５は、プログラム生成装置１０の一構成例を示すブロック図である。図５を参照すると、プログラム生成装置１０は、ＣＰＵ２００と、主記憶装置２０１と、記録媒体２０２と、データ蓄積装置２０３と、主記憶制御インタフェース部２０４と、記憶媒体制御インタフェース部２０５と、データ蓄積制御インタフェース部２０６と、バス２０００と、入力制御インタフェース部２０７と、出力制御インタフェース部２０８と、ネットワーク制御インタフェース部２０９と、を有する。 
【００５３】
プログラム生成装置１０は、ＣＰＵ２００が実行するプログラムに従って、関数抽出、サーバプログラム生成、クライアントライブラリ生成の処理をそれぞれ実行する。
【００５４】
入力装置３０は、コマンド、ユーザ定義関数プログラム１１、およびターゲットシステム情報１２をプログラム生成装置１０に入力する。例えば、入力装置３０によってユーザ定期関数プログラム１１及びターゲットシステム情報１２が入力された場合、ＣＰＵ２００は、入力されたユーザ定期関数プログラム１１及びターゲットシステム情報１２をデータ蓄積装置２０３に格納する。
出力装置４０は、サーバプログラム１３、クライアントライブラリ１６、および回路情報１９などの処理結果を出力する。 
【００５５】
ネットワーク装置５０は、例えば、ハブやルータ等である。プログラム生成装置１０は、ネットワーク装置５０を介して、ネットワークと接続される。ネットワーク上の情報処理装置(図示せず)にユーザ定義関数プログラム１１及びターゲットシステム情報１２を格納しておき、ＣＰＵ２００がこの情報処理装置からユーザ定義関数プログラム１１及びターゲットシステム情報１２を取得して、取得したユーザ定義関数プログラム１１及びターゲットシステム情報１２をデータ蓄積装置２０３に格納するようにしてもよい。
【００５６】
ＣＰＵ２００は、記録媒体２０２に記録されたプログラムを実行する。
主記憶装置２０１は、ＣＰＵ２００の処理に必要な情報を一時的に保持する。 
記録媒体２０２は、磁気ディスク、半導体メモリ、光ディスクなどの記録媒体である。記録媒体２０２は、ＣＰＵ２００にプログラム生成装置１０としての処理を実行させるためのプログラムが記録される。
【００５７】
データ蓄積装置２０３には、ユーザ定義関数プログラム１１、ターゲットシステム情報１２、関数リスト１０３、サーバプログラム１３、およびクライアントライブラリ１６などが格納される。データ蓄積装置２０３には、実行バイナリ１５及び回路情報１９を格納するようにしてもよい。データ蓄積装置２０３は、磁気ディスク、半導体メモリ、および光ディスクなどの記録媒体である。このデータ蓄積装置２０３は、その一部又は全部をプログラム生成装置１０内部でなく、外部に独立して設けられていてもよい。例えば、データ蓄積装置２０３の一部又は全部をプログラム生成装置１０の外部のストレージや、情報処理装置に設けてもよい。情報処理装置は、例えば、ＰＣ（Personal computer）やサーバ等である。
【００５８】
主記憶制御インタフェース部２０４は主記憶装置２０１に接続される。
記憶媒体制御インタフェース部２０５は記録媒体２０２に接続される。
データ蓄積制御インタフェース部２０６はデータ蓄積装置２０３に接続される。
入力制御インタフェース部２０７は入力装置３０と接続される。
出力制御インタフェース部２０８は出力装置４０と接続される。
ネットワーク制御インタフェース部２０９はネットワーク装置５０と接続される。
各インタフェース部２０４〜２０９は、これらの装置２００〜２０３、３０〜５０及びバス２０００の間のデータ転送を制御する。
【００５９】
バス２０００には、ＣＰＵ２００と、主記憶制御インタフェース部２０４と、記憶媒体制御インタフェース部２０５と、データ蓄積制御インタフェース部２０６と、入力制御インタフェース部２０７と、出力制御インタフェース部２０８と、ネットワーク制御インタフェース部２０９と、が接続される。
【００６０】
なお、図４に示した関数抽出装置１０１、サーバプログラム生成装置１０４およびクライアントライブラリ生成装置１０５のそれぞれが図５に示すハードウェア構成であってもよい。この場合、それぞれの装置の機能に対応して処理対象のデータや実行するプログラムが装置毎に異なっている。
また、処理対象のデータや実行するプログラムが異なることを除いて、図４に示したコンパイル装置１４および動作合成装置１８のそれぞれは、図５のブロック図に示す構成と同様であるため、コンパイル装置１４および動作合成装置１８の構成についての詳細な説明を省略する。
【００６１】
図６は、プログラム生成装置１０に入力されるユーザ定義関数プログラムの記述の一例である。
同図は、ユーザ定義関数プログラム１１に、Ｃ言語で２つの関数Ｐ１００、Ｐ１０１が記載されている場合について例示している。例えば、ｆｕｎｃ２関数Ｐ１０１は、ｐｒｉｎｔｆ()関数内部でオペレーティングシステムのシステムコールを実行する。
関数抽出装置１０１は、これらの関数を識別して、関数プログラムを抽出し、関数リスト１０３を生成する。
【００６２】
図７は、関数抽出装置が抽出した関数リストの一例を示す図である。同図に示すように、関数リストは、抽出した関数毎に固有の番号(関数ＩＤ)を付加したリストとなっている。 言い換えると、関数リストは、関数と、その関数を特定する情報とを対応付けた情報となる。
【００６３】
図８は、クライアントライブラリ生成装置が出力するクライアントライブラリ１６の一例を示す図である。このクライアントライブラリ１６に含まれる処理は、再構成デバイス６０３が実行する処理となる。同図に示すように、クライアントライブラリ１６には、ユーザ定義関数プログラム１１に記述されている関数と名前及び引数が同じである２つのクライアント関数Ｐ２０５及びＰ２０９が含まれる。また、図８に示すように、再構成デバイス６０３内で保持するスタックデータを配列Ｐ２００として記述している。このスタックデータの配列は、ターゲットシステム情報１２に基づいて、動作合成装置１８が適切に再構成デバイス６０３内での配置場所を決定する。
【００６４】
ここで、スタックデータとは、ターゲットシステム６の再構成デバイス６０３内の記憶素子６０３０で形成されるデータ領域に格納されるデータのことである。再構成デバイス６０３内で形成される回路から自由にアクセスすることができる。また、このデータ領域は、ターゲットシステム６の書込装置６０６、読出装置６０４、及びバスライン６１３を介して、ＭＰＵ６０１からも自由にアクセスできる。つまり、＿＿ｓｔａｃｋ[１００]のアドレスは、クライアントライブラリ１６によって、記憶素子６０３０におけるスタックデータ領域のアドレスが設定される。
【００６５】
以下、クライアントライブラリ１６に含まれるクライアント関数Ｐ２０１、Ｐ２０５、Ｐ２０９の処理について説明する。実際は、以下に説明する処理は、再構成デバイス６０３によって実行される。
【００６６】
クライアント関数Ｐ２０５及びＰ２０９のそれぞれは、関数ＩＤをスタックデータの関数ＩＤ領域＿＿ｓｔａｃｋ[０]に設定する(Ｐ２０６あるいはＰ２１０)。クライアント関数Ｐ２０５及びＰ２０９のそれぞれは、引数をスタックデータの引数領域＿＿ｓｔａｃｋ[２][３]及び＿＿ｓｔａｃｋ[２]のそれぞれに設定する(Ｐ２０７あるいはＰ２１１)。クライアント関数Ｐ２０５及びＰ２０９のそれぞれは、クライアント関数Ｐ２０１を呼び出す。
【００６７】
クライアント関数Ｐ２０１は、スタックデータの制御情報領域＿＿ｓｔａｃｋ[１]を初期化する(Ｐ２０２)。クライアント関数Ｐ２０１は、ＭＰＵ６０１に対する割込みを発生させる(Ｐ２０３)。つまり、ＩｎｔＭＰＵ()関数Ｐ２０３は、再構成デバイス６０３に割込コントローラ６０２に対する割込信号を出力させる処理を含む。クライアント関数Ｐ２０１は、ＭＰＵ６０１からの実行プログラムの実行終了の通知を待つ(Ｐ２０４)。具体的には、ＭＰＵ６０１が制御情報領域＿＿ｓｔａｃｋ[１]に０以外の値が書き込まれるのを待つ。ＭＰＵ６０１が制御情報領域＿＿ｓｔａｃｋ[１]に０以外の値が書き込まれた場合、ＭＰＵ６０１から実行プログラムの実行終了の通知が来たことになる。この場合、クライアント関数Ｐ２０１から呼び出し元のクライアント関数Ｐ２０５又はＰ２０９に処理が戻る。クライアント関数Ｐ２０５は、スタックデータの戻り値領域及び引数領域から値を取得してクライアント関数の戻り値あるいは引数に設定して(Ｐ２０８)、処理を終了する。 
【００６８】
また、クライアント関数のＭＰＵ６０１からの通知待ち(Ｐ２０４)では、ＭＰＵ６０１が＿＿ｓｔａｃｋ[１]の値が０以外の値で更新されることを待つという一例を示している。つまり、ここで例示した値以外の値に更新されるまで、再構成デバイス６０３が待ち合わせを行うようにしてもよい。
【００６９】
図９は、サーバプログラム生成装置１０４が出力するサーバプログラムの一例を示す図である。同図に示すように、サーバプログラム１３には、ユーザ定義関数プログラム１１に記述されている関数を呼び出すための１つの割込みハンドラＰ３０１が含まれる。
以下、サーバプログラム１３に含まれる関数Ｐ３０１の処理について説明する。実際は、以下に説明する処理は、ＭＰＵ６０１によって実行される。
【００７０】
サーバプログラムの割込みハンドラＰ３０１では、ＭＰＵ６０１への割込み信号をクリアする(Ｐ３０２)。また、ＣｌｅａｒＩｎｔ()関数は、制御情報領域に０の値を書き込む処理を含む。割り込みハンドラＰ３０１は、再構成デバイス６０３のスタックデータの関数ＩＤ領域を参照して関数ＩＤを取得する(Ｐ３０３)。割り込みハンドラＰ３０１は、取得した関数ＩＤに基づいて、処理を切替える(Ｐ３０４)。
【００７１】
例えば、関数ＩＤが１だった場合(Ｐ３０５)、割り込みハンドラＰ３０１は、ユーザ定義関数プログラム１１のｆｕｎｃ１関数を実行する。その場合、割り込みハンドラＰ３０１は、スタックデータの引数領域から引数ｘ、ｙを取り出す(Ｐ３０６)。割り込みハンドラＰ３０１は、取得した引数ｘ、ｙを、引数ｘ、ｙとしてｆｕｎｃ１関数を実行する(Ｐ３０７)。割り込みハンドラＰ３０１は、ｆｕｎｃ１関数の戻り値ｒｅｔ及び戻り引数＆ｚをスタックデータの戻り値領域及び引数領域に設定する(Ｐ３０８)。 
【００７２】
一方、関数ＩＤが２だった場合(Ｐ３０９)、割り込みハンドラＰ３０１は、ユーザ定義関数プログラム１１のｆｕｎｃ２を実行する。その場合、割り込みハンドラＰ３０１は、スタックデータの引数領域から引数ｘを取り出す(Ｐ３１０)。割り込みハンドラＰ３０１は、取得した引数ｘを、引数ｘとしてｆｕｎｃ２関数を実行する(Ｐ３１１)。
ユーザ定義関数プログラム１１のｆｕｎｃ１関数又はｆｕｎｃ２関数を実行後、スタックデータの制御情報領域に１を書込み、再構成デバイスにＭＰＵ６０１側の処理の終了を通知する(Ｐ３１２)。
【００７３】
なお、ＭＰＵ６０１からスタックデータにアクセスする場合は、スタックデータを形成している記憶素子６０３０のバスアドレスが必要である。バスアドレスは、ＭＰＵ６０１などから書込装置６０６又は読出装置６０４を介して記憶素子６０３０にアクセスするためのアドレスとなる。これらの情報はターゲットシステム情報１２に格納されている。よって、スタックデータにアクセスする関数ＲｅａｄＲｅｃｏｎｆｉｇＡｒｅａ()及びＷｒｉｔｅＲｅｃｏｎｆｉｇＡｒｅａ()は、例えば、ターゲットシステム情報１２に基づいて、記憶素子６０３０のバスアドレスにアクセスするようにサーバプログラム生成装置１０４によって生成される。
【００７４】
図１０は、図８及び図９で示したクライアントライブラリ及びサーバプログラムにおけるスタックデータの構成例である。
図１０では、スタックデータは幅が８ｂｉｔ(１ｂｙｔｅ)、深さが１００の構成例を示している。このスタックデータに関する情報はターゲットシステム情報１２に含まれる。
【００７５】
図１０に示すように、スタックデータの先頭データ(＋０)は関数ＩＤを表す。この関数ＩＤは関数リスト１０３に記載している関数ＩＤに対応する。スタックデータのオフセット＋１のデータは制御情報を表す。制御情報が０の場合は、ＭＰＵ６０１でユーザ定義関数の実行が終了していない状態を表す。制御情報が１の場合は、ＭＰＵ６０１でユーザ定義関数の実行が終了している状態を表す。スタックデータのオフセット＋２以降のデータは、引数及び戻り値の値を表す。
図１０に示したスタックデータが格納されるスタックデータ領域は、再構成デバイス６０３の記憶素子６０３０に形成される。例えば、再構成デバイス６０３の記憶素子６０３０として、幅８ｂｉｔ、深さ１００のメモリが存在する場合には、その上にスタックデータ領域を形成することができる。
【００７６】
また、図１１Ａに示すように、再構成デバイス６０３内の複数の記憶素子６０３１、６０３２を使用してスタックデータを形成しても良い。このとき、図１１Ｂに示すように、記憶素子６０３１、６０３２のバスアドレスが連続ではない場合には、ＭＰＵ６０１から適切に記憶素子６０３１、６０３２にアクセスするようなサーバプログラム１３を生成すれば良い。バスアドレスは、ＭＰＵ６０１などから書込装置又は読出装置を経由して記憶素子６０３１、６０３２にアクセスするためのアドレスとなる。
【００７７】
図１２は、各関数のスタックデータの使用例を示す図である。図１２Ａはユーザ定義関数ｆｕｎｃ１の場合、図１２Ｂはユーザ定義関数ｆｕｎｃ２の場合を示している。
図１２に示すように、スタックデータのオフセット＋２以降のデータは、組となるクライアントライブラリ１６とサーバプログラム１３間で、各ユーザ定義関数の引数及び戻り値に関して対応がとられている範囲で自由に使用することができる。
【００７８】
例えば、引数及び戻り値をクライアントライブラリ１６側で圧縮してスタックデータに設定し、サーバプログラム１３側でスタックデータから引数及び戻り値を展開してもよい。この場合、スタックデータの構成に必要な再構成デバイス６０３の記憶素子数は少なくてすむ。
このような圧縮及び展開部はクライアントライブラリ１６及びサーバプログラム１３として生成しても良いし、専用ハードウェア、又は専用ハードウェアと同等の機能を提供するソフトウェアサブルーチンをクライアントライブラリ１６やサーバプログラム１３から呼び出すようにしても良い。
【００７９】
次に、図１３を参照して、プログラム設計支援システム１の動作について説明する。図１３は、プログラム設計支援システム１の動作を示すシーケンス図である。
【００８０】
関数抽出装置１０１は、データ蓄積装置２０３からユーザ定義関数プログラム１１を取得する。関数抽出装置１０１は、ユーザ定義関数プログラム１１から、関数を抽出して、個別のＩＤと対応させた関数リスト１０３を生成する（ステップＳ１１）。関数抽出装置１０１は、生成した関数リスト１０３をデータ蓄積装置２０３に格納する。なお、関数抽出装置１０１は、生成した関数リスト１０３を直接サーバプログラム生成装置１０４及びクライアントライブラリ生成装置１０５に出力するようにしてもよい。
【００８１】
サーバプログラム生成装置１０４は、データ蓄積装置２０３からユーザ定義関数プログラム、関数リスト１０３及びターゲットシステム情報１２を取得する。サーバプログラム生成装置１０４は、ユーザ定義関数プログラム１１と関数リスト１０３から、ターゲットシステム情報１２に基づいて、サーバプログラム１３を生成する（ステップＳ１２）。サーバプログラム生成装置１０４は、生成したサーバプログラム１３をデータ蓄積装置２０３に格納する。なお、サーバプログラム生成装置１０４は、生成したサーバプログラム１３を直接コンパイル装置１４に出力するようにしてもよい。
【００８２】
クライアントライブラリ生成装置１０５は、データ蓄積装置２０３からユーザ定義関数プログラム１１、関数リスト１０３及びターゲットシステム情報１２を取得する。クライアントライブラリ生成装置１０５は、ユーザ定義関数プログラム１１と関数リスト１０３から、ターゲットシステム情報１２に基づいて、クライアントライブラリ１６を生成する（ステップＳ１３）。クライアントライブラリ生成装置１０５は、生成したクライアントライブラリ１６をデータ蓄積装置２０３に格納する。なお、クライアントライブラリ生成装置１０５は、生成したクライアントライブラリ１６を直接動作合成装置１８に出力するようにしてもよい。
【００８３】
コンパイル装置１４は、ユーザ定義関数プログラム１１及びサーバプログラム１３をデータ蓄積装置２０３から取得する。コンパイル装置１４は、ユーザ定義関数プログラム１１及びサーバプログラム１３をコンパイルして、実行バイナリ１５を生成する（ステップＳ１４）。
動作合成装置１８は、データ蓄積装置２０３からクライアントライブラリ１６、動作レベル記述１７及びターゲットシステム情報１２を取得する。動作レベル記述１７には、クライアントライブラリ１６を呼び出す記述が記載されている。動作合成装置１８は、クライアントライブラリ１６と、動作レベル記述１７と、ターゲットシステム情報１２から回路情報１９を生成する（ステップＳ１５）。
【００８４】
図１４は、動作レベル記述１７の一例である。図１４に示すように、動作レベル記述１７では、クライアントライブラリ１６のクライアント関数を実行するように記述されている。クライアント関数は、ユーザ定義関数プログラム１１のユーザ定義関数と同じインタフェースを持つ。
以下、動作レベル記述１７に含まれるメイン関数Ｐ４００の処理について説明する。実際は、以下に説明する処理は、再構成デバイス６０３によって実行される。
【００８５】
メイン関数Ｐ４００は、データ２、ｙ、＆ｚを引数としてｆｕｎｃ１関数を実行する（Ｐ４０１）。これによって、上述したクライアント関数Ｐ２０５が呼び出される。
次に、メイン関数Ｐ４００は、データｘを引数としてｆｕｎｃ２関数を実行する（Ｐ４０２）。これによって、上述したクライアント関数Ｐ２０９が読み出される。
このように、再構成デバイス６０３において、ユーザ定義関数ｆｕｎｃ１、ｆｕｎｃ２を呼び出すだけで、ユーザ定義関数ｆｕｎｃ１、ｆｕｎｃ２における処理内容をＭＰＵ６０１において実行させることができるようになる。
【００８６】
次に、図１５〜図１８を参照して、ターゲットシステム６の動作について説明する。
図１５は、ＭＰＵ６０１と再構成デバイス６０３の動作を示すフローチャートである。この動作は、実行バイナリ１５がＭＰＵ６０１により実行可能な状態であり、再構成デバイス６０３に回路情報１９が書き込まれた時に開始される。なお、実際のユーザ定義関数の動作は再構成デバイス６０３から起動される割込みハンドラから実行されることになる。
【００８７】
再構成デバイス６０３は回路情報１９に基づいて、ユーザ定義関数に対応するクライアント関数を起動する(ステップＳ２１０)。この処理は、図１４の動作レベル記述１７のステップＰ４０１又はステップＰ４０２に対応する。クライアント関数本体は、それぞれ、図８のＰ２０５及びＰ２０９のそれぞれに対応する。以降、再構成デバイス６０３は、回路情報１９に基づいて、クライアントライブラリ１６及び動作レベル記述１７に含まれる処理を実行する。
次に、再構成デバイス６０３は、スタックデータに関数ＩＤと引数を書き込む(ステップＳ２１１)。この処理において、関数ＩＤの設定は図８のＰ２０６もしくはＰ２１０に対応し、引数の設定は図８のＰ２０７もしくはＰ２１１に対応する。
【００８８】
次に、再構成デバイス６０３は、スタックデータの制御情報を初期化する（ステップＳ２１２）。この処理は、図８のＰ２０２に対応し、図８では、制御情報の値を０に初期化している。
次に、再構成デバイス６０３は、ＭＰＵ６０１への割込みを生成する（ステップＳ２１３）。この処理は、図８のＳ２０３に対応する。
この時、図１４のＰ４０１の処理を実行した場合のスタックデータの内容は図１６Ａのようになる。同様に、Ｐ４０２の処理を実行した場合のスタックデータの内容は図１７Ａのようになる。
【００８９】
ＭＰＵ６０１は再構成デバイス６０３から発行された割込みにより、割込みハンドラを起動する(ステップＳ２０１)。この処理はＭＰＵ６０１で動作するオペレーティングシステムなどにより起動される。例えば、再構成デバイス６０３からの割込みに対する処理として図９の関数Ｐ３０１を事前に登録しておく。これによって、ＭＰＵ６０１は、割込コントローラ６０２からの割込み信号に応じて、関数Ｐ３０１を割込みハンドラとして起動する。つまり、ＭＰＵ６０１は、割込コントローラ６０２からの割込み信号に応じて、実行バイナリ１５に含まれる処理の実行を開始する。以降、ＭＰＵ６０１は、実行バイナリ１５に基づいて、サーバプログラム１３に含まれる処理を実行する。
【００９０】
次に、ＭＰＵ６０１は、ＭＰＵ６０１への割込みをクリアする（ステップＳ２０２）。この処理は、図９のＰ３０２に対応する。
次に、ＭＰＵ６０１は、スタックデータから関数ＩＤを読出す（ステップＳ２０３）。この処理は、図９のＰ３０３に対応する。
次に、ＭＰＵ６０１は、実行するユーザ定義関数を選択する（ステップＳ２０４）。この処理は、図９のＰ３０４に対応する。例えば、スタックデータから読出した関数ＩＤが１の場合は、Ｐ３０５以降のプログラムが実行される。
【００９１】
次に、ＭＰＵ６０１は、スタックデータからユーザ定義関数で必要とする引数を読出す（ステップＳ２０５）。この処理は、図９のＰ３０６あるいはＰ３１０に対応する。
次に、ＭＰＵ６０１は、スタックデータから読出した引数を用いて、ユーザ定義関数(Ｐ１００あるいはＰ１０１)を実行する（ステップＳ２０６）。この処理は、図９のＰ３０７あるいはＰ３１１に対応する。
【００９２】
この時、図１４のＰ４０２の処理を実行した場合には、ＭＰＵ６０１は、入出力インタフェース６０８を介して、実行結果を出力装置６１１に出力する。例えば、実行結果は、図１８に示すように出力される。
次に、ＭＰＵ６０１は、実行したユーザ定義関数の戻り値及び戻り引数をスタックデータに書き込む（ステップＳ２０７）。この処理は、図９のＰ３０８に対応する。
【００９３】
次に、ＭＰＵ６０１は、スタックデータの制御情報を更新する（ステップＳ２０８）。この処理は、図９のＰ３１２に対応し、図９では、制御情報の値を１に更新している。
この時、図１４のＰ４０１の処理を実行した場合のスタックデータの内容は図１６Ｂのようになる。同様に、Ｐ４０２の処理を実行した場合のスタックデータの内容は図１７Ｂのようになる。
【００９４】
割込みハンドラで起動されたサーバプログラム１３の一連の処理はこれで終了する。
一方、ステップＳ２１３でＭＰＵ６０１に割込みを生成した再構成デバイス６０３は、スタックデータの制御情報を一定間隔でポーリングして、制御情報が変更されるまで待機する（ステップＳ２１４）。この処理は、図８のＰ２０４に対応する。
【００９５】
ステップＳ２０８で制御情報が変更されると、再構成デバイス６０３は動作を継続し、スタックデータから戻り値及び戻り引数を読出して、ユーザ定義関数の戻り値及び戻り引数に設定する。この処理は、図８のＰ２０８に対応する。そして、再構成デバイス６０３は、ユーザ定義関数処理を終了して呼び出し元の処理に戻る（ステップＳ２１５）。
【００９６】
以上説明したように、本実施形態によれば、情報処理装置において、再構成デバイス６０３が、演算処理装置６０１で動作する、事前に設計されたユーザ定義関数をバスラインを介して起動することが出来る。これによれば、再構成デバイス６０３が実行したい処理をユーザ定義関数で用意することで、その処理を演算処理装置６０１で代替して実行することができる。また、再構成デバイス６０３では実行することができないが、演算処理装置６０１では実行することができる処理がある場合であっても、その処理をユーザ定義関数で用意することで再構成デバイス６０３に代替して演算処理装置６０１に実行させることができる。ここで、システムコールやグローバル関数のように、複数のプログラムで共通化された関数がある場合、その関数をユーザ定義関数として用意するか、もしくは、その関数を含むユーザ定義関数を用意することで、再構成デバイス６０３においてもその関数を利用することができる。つまり、再構成デバイス６０３からも、演算処理装置６０１において共通化された処理を利用可能とすることができる。
【００９７】
ここで、背景技術として説明したように、再構成デバイスには、様々な処理を実装するようになってきている。このようなことから、再構成デバイスからも、オペレーティングシステムが提供するシステムコールのような共通化された資源を利用することができれば、再構成デバイスにおける処理内容の設計における利便性を向上することができる。しかしながら、特許文献１乃至６や非特許文献１に記載された再構成デバイスにオペレーティングシステムを搭載することは困難である。 なぜなら、オペレーティングシステムを再構成デバイスに実装するためには、膨大な演算リソースを必要とするためである。これは、再構成デバイスに実装する箇所をオペレーティングシステムが提供する機能の一部のみに限定しても同様である。オペレーティングシステムが提供する機能の一部とは、例えば、メモリ管理や標準入出力などがある。それに対して、本実施形態によれば、再構成デバイス６０３は少ない演算リソースで、バスラインに接続された共有メモリ６０７及び入出力インタフェース６０８を制御するためのシステムコールを実行することができる。つまり、演算処理装置６０１で動作するオペレーティングシステムが提供する機能を再構成デバイス６０３から利用することができる。
【００９８】
ここで、再構成デバイス６０３からバスアクセス装置６０５を介して共有メモリ６０７を使用するときには、ＭＰＵ６０１が使用しており、再構成デバイス６０３からアクセスしてはいけない領域を避けて使用する必要がある。したがって、その領域以外にアクセスするようにするための余分な制御が必要となってしまうという問題がある。それに対して、本実施の形態によれば、上述したように、再構成デバイス６０３から共有メモリ６０７に対するアクセスをするためのシステムコールを、演算処理装置６０１を介して実行することができる。これによって、再構成デバイス６０３から、ＭＰＵ６０１で実行されるオペレーティングシステムの管理下において共有メモリ６０７にアクセスすることができる。そのため、再構成デバイス６０３は、共有メモリ６０７にアクセスする際に、余分な制御をする必要がなくなる。
【００９９】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１００】
例えば、本実施形態では、プログラム設計支援システム１は、プログラム生成装置１０と、コンパイル装置１４と、動作合成装置１８と、に各機能を分散しているが、これらの装置の全部または２台の機能を１台の装置で実現する構成としてもよい。プログラム生成装置１０内の各装置についても同様である。 
【０１０１】
また、プログラム生成装置１０内の関数抽出装置１０１、サーバプログラム生成装置１０４、クライアントライブラリ生成装置１０５の少なくとも１つ以上を、プログラム生成装置１０の外部に設ける構成としてもよい。
また、ＭＰＵ６０１と再構成デバイス６０３との間で、共有メモリ６０７を介して、関数ＩＤ、制御情報、引数、戻り値、及び戻り引数等のターゲットデータを受け渡すようにしてもよい。
【０１０２】
以上に説明した本発明にかかるプログラム設計支援システム１は、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体をコンピュータに供給し、コンピュータ又はコンピュータが有するＣＰＵ又はＭＰＵがこのプログラムを実行することによって、構成することが可能である。
【０１０３】
また、このプログラム及び実行バイナリ１５は、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、ＣＤ−ＲＯＭ(Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ(例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM）、ＥＰＲＯＭ(Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ(Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium）によってコンピュータに供給されてもよい。
【０１０４】
一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１０５】
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているオペレーティングシステムもしくはアプリケーションソフトウェアと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
【０１０６】
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
【０１０７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１０８】
（付記１）所定の処理を含むプログラムを実行する演算処理装置と、前記演算処理装置に対して、前記プログラムの実行を要求する実行要求信号を出力すると共に、前記所定の処理において使用される処理情報を有する再構成デバイスと、を備え、前記演算処理装置は、前記再構成デバイスから出力された実行要求信号に応じて前記プログラムを起動し、前記再構成デバイスから前記処理情報を読み出し、前記所定の処理を実行する、情報処理装置。
【０１０９】
（付記２）前記プログラムは、前記所定の処理を実行する関数を含み、前記処理情報は、前記関数の引数であり、前記プログラムは、前記再構成デバイスから読み出した引数を前記関数に設定して、当該関数を実行する、付記１に記載の情報処理装置。
【０１１０】
（付記３）前記プログラムは、前記関数を複数含み、前記再構成デバイスは、前記関数を特定する関数特定情報を有し、前記プログラムは、前記再構成デバイスから前記関数特定情報を読み出し、当該読み出した関数特定情報によって特定される関数を実行する、付記２に記載の情報処理装置。
【０１１１】
（付記４）前記プログラムは、前記関数を実行した場合、当該関数の戻り値を出力し、前記再構成デバイスは、前記演算処理装置の前記プログラムから出力された戻り値を取得する、付記３に記載の情報処理装置。
【０１１２】
（付記５）前記再構成デバイスは、前記関数特定情報、前記引数、及び前記戻り値が格納される記憶部をさらに備え、前記再構成デバイスは、前記関数を実行する場合に、当該関数を特定する関数特定情報及び当該関数の引数を前記記憶部に格納し、前記プログラムは、前記記憶部に格納された関数特定情報及び引数を読み出すとともに、前記戻り値を出力して前記記憶部に格納する、付記４に記載の情報処理装置。
【０１１３】
（付記６）前記演算処理装置は、オペレーティングシステムを実行するとともに、当該オペレーティングシステム上で前記プログラムを実行するものであって、前記所定の処理は、当該オペレーティングシステムのシステムコールの実行を含む、付記１乃至５のいずれか１つに記載の情報処理装置。
【０１１４】
（付記７）前記情報処理装置は、前記演算処理装置に割込み信号を出力する割込コントローラをさらに備え、前記再構成デバイスは、前記実行要求信号を前記割込コントローラに出力し、前記割込コントローラは、前記再構成デバイスから出力された実行要求信号に応じて、前記演算処理装置に割込み信号を出力し、前記演算処理装置は、前記割込コントローラから出力された割込み信号に応じて、前記プログラムを起動する付記１乃至６のいずれか１つに記載の情報処理装置。
【０１１５】
（付記８）前記記憶部は、前記再構成デバイスが有する記憶素子である付記５に記載の情報処理装置。
【０１１６】
（付記９）再構成デバイスが、所定の処理を含むプログラムの実行を要求する実行要求信号を出力し、前記演算処理装置が、前記再構成デバイスから出力された実行要求信号に応じて、前記プログラムを起動し、前記再構成デバイスから前記所定の処理において使用される処理情報を読み出し、前記処理の処理を実行する情報処理方法。
【０１１７】
（付記１０）所定の処理を含む第１のソースプログラムに基づいて、再構成デバイスの回路情報の生成に用いられ、前記再構成デバイスに前記所定の処理の実行を要求する実行要求信号を出力させる処理を含むライブラリを生成するライブラリ生成部と、前記第１のソースプログラムに基づいて、演算処理装置によって実行される実行プログラムの生成に用いられ、前記再構成デバイスから出力された実行要求信号に応じて前記演算処理装置に前記再構成デバイスから前記所定の処理において使用される処理情報を読み出させ、前記所定の処理を実行させる処理を含む第２のソースプログラムを生成するソースプログラム生成部と、を備えた設計支援システム。
【０１１８】
（付記１１）前記第１のソースプログラムは、前記関数を複数含み、前記設計支援システムは、前記第１のソースプログラムに基づいて、前記複数の関数のそれぞれについて、前記関数と、当該関数を特定する関数特定情報とを対応付けた関数対応情報を生成する関数対応情報生成部をさらに備え、前記ライブラリ生成部は、前記関数対応情報に基づいて、前記関数を実行する場合に、当該関数を特定する関数特定情報を前記再構成デバイスに保持させる処理を前記ライブラリに含め、前記ソースプログラム生成部は、前記関数対応情報に基づいて、前記演算処理装置に前記再構成デバイスから前記関数特定情報を読み出させ、当該読み出した関数特定情報によって特定される関数を実行させる処理を前記第２のソースプログラムに含める、付記１０に記載の設計支援システム。
【０１１９】
（付記１２）前記設計支援システムは、前記ライブラリ生成部によって生成されたライブラリと、前記再構成デバイスの動作を示す動作レベル記述とに基づいて、前記再構成デバイスの回路情報を生成する回路情報生成部と、前記ソースプログラム生成部によって生成された第２のソースプログラムに基づいて、前記演算処理装置によって実行される実行プログラムを生成するコンパイル部と、をさらに備えた付記１０又は１１に記載の設計支援システム。
【０１２０】
（付記１３）再構成デバイスから出力された実行要求信号に応じて実行されたときに、前記再構成デバイスから所定の処理において使用される処理情報を読み出す処理と、前記読み出した処理情報を使用して前記所定の処理を実行する処理と、を演算処理装置に実行させるプログラム。
【０１２１】
この出願は、２０１０年９月１５日に出願された日本出願特願２０１０−２０６６５９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１２２】
１    プログラム設計支援システム 
２    設計支援システム
６    ターゲットシステム 
７    情報処理装置
１０    プログラム生成装置 
１１    ユーザ定義関数プログラム 
１２    ターゲットシステム情報 
１３    サーバプログラム 
１４    コンパイル装置 
１５    実行バイナリ 
１６    クライアントライブラリ 
１７    動作レベル記述 
１８    動作合成装置 
１９    回路情報 
２１    ライブラリ生成部
２２    ソースプログラム生成部
２５    第１のソースプログラム
２６    第２のソースプログラム
２７    ライブラリ
３０    入力装置 
４０    出力装置 
５０    ネットワーク装置
７１    演算処理装置
７２、６０３    再構成デバイス 
１０１    関数抽出装置 
１０３    関数リスト 
１０４    サーバプログラム生成装置 
１０５    クライアントライブラリ生成装置 
２００    ＣＰＵ
２０１    主記憶装置 
２０２    記憶媒体 
２０３    データ蓄積装置 
２０４    主記憶制御インタフェース部 
２０５    記憶媒体制御インタフェース部 
２０６    データ蓄積制御インタフェース部 
２０７    入力制御インタフェース部 
２０８    出力制御インタフェース部 
２０９    ネットワーク制御インタフェース部 
６０１    ＭＰＵ 
６０２    割込コントローラ 
６０４    読出装置 
６０５    バスアクセス装置 
６０６    書込装置 
６０７    共有メモリ 
６０８    入出力インタフェース 
６０９    ネットワークインタフェース 
６１０    入力装置 
６１１    出力装置 
６１２    ネットワーク 
６１３    バスライン 
２０００    バス 
６０３０、６０３１、６０３２ 記憶素子
【図１】
2012035699.tif 000003
【図２】
2012035699.tif 000004
【図３】
2012035699.tif 000005
【図４】
2012035699.tif 000006
【図５】
2012035699.tif 000007
【図６】
2012035699.tif 000008
【図７】
2012035699.tif 000009
【図８】
2012035699.tif 000010
【図９】
2012035699.tif 000011
【図１０】
2012035699.tif 000012
【図１１Ａ】
2012035699.tif 000013
【図１１Ｂ】
2012035699.tif 000014
【図１２Ａ】
2012035699.tif 000015
【図１２Ｂ】
2012035699.tif 000016
【図１３】
2012035699.tif 000017
【図１４】
2012035699.tif 000018
【図１５】
2012035699.tif 000019
【図１６Ａ】
2012035699.tif 000020
【図１６Ｂ】
2012035699.tif 000021
【図１７Ａ】
2012035699.tif 000022
【図１７Ｂ】
2012035699.tif 000023
【図１８】
2012035699.tif 000024
【手続補正書】
【提出日】平成25年2月28日(2013.2.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定の処理を含むプログラムを実行する演算処理装置と、
前記演算処理装置に対して、前記プログラムの実行を要求する実行要求信号を出力すると共に、前記所定の処理において使用される処理情報を有する再構成デバイスと、を備え、
前記演算処理装置は、前記再構成デバイスから出力された実行要求信号に応じて前記プログラムを起動し、前記再構成デバイスから前記処理情報を読み出し、前記所定の処理を実行する、
情報処理装置。
【請求項２】
前記プログラムは、前記所定の処理を実行する関数を含み、
前記処理情報は、前記関数の引数であり、
前記プログラムは、前記再構成デバイスから読み出した引数を前記関数に設定して、当該関数を実行する、
請求項１に記載の情報処理装置。
【請求項３】
前記プログラムは、前記関数を複数含み、
前記再構成デバイスは、前記関数を特定する関数特定情報を有し、
前記プログラムは、前記再構成デバイスから前記関数特定情報を読み出し、当該読み出した関数特定情報によって特定される関数を実行する、
請求項２に記載の情報処理装置。
【請求項４】
前記プログラムは、前記関数を実行した場合、当該関数の戻り値を出力し、
前記再構成デバイスは、前記演算処理装置の前記プログラムから出力された戻り値を取得する、
請求項３に記載の情報処理装置。
【請求項５】
前記再構成デバイスは、前記関数特定情報、前記引数、及び前記戻り値が格納される記憶手段をさらに備え、
前記再構成デバイスは、前記関数を実行する場合に、当該関数を特定する関数特定情報及び当該関数の引数を前記記憶手段に格納し、
前記プログラムは、前記記憶手段に格納された関数特定情報及び引数を読み出すとともに、前記戻り値を出力して前記記憶手段に格納する、
請求項４に記載の情報処理装置。
【請求項６】
前記演算処理装置は、オペレーティングシステムを実行するとともに、当該オペレーティングシステム上で前記プログラムを実行するものであって、
前記所定の処理は、前記オペレーティングシステムのシステムコールの実行を含む、
請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
再構成デバイスが、所定の処理を含むプログラムの実行を要求する実行要求信号を出力し、
演算処理装置が、前記再構成デバイスから出力された実行要求信号に応じて、前記プログラムを起動し、前記再構成デバイスから前記所定の処理において使用される処理情報を読み出し、前記所定の処理を実行する、
情報処理方法。
【請求項８】
所定の処理を含む第１のソースプログラムに基づいて、再構成デバイスの回路情報の生成に用いられ、前記再構成デバイスに前記所定の処理の実行を要求する実行要求信号を出力させる処理を含むライブラリを生成するライブラリ生成手段と、
前記第１のソースプログラムに基づいて、演算処理装置によって実行される実行プログラムの生成に用いられ、前記再構成デバイスから出力された実行要求信号に応じて前記演算処理装置に前記再構成デバイスから前記所定の処理において使用される処理情報を読み出させ、前記所定の処理を実行させる処理を含む第２のソースプログラムを生成するソースプログラム生成手段と、を備えた設計支援システム。
【請求項９】
前記第１のソースプログラムは、前記所定の処理を実行する関数を複数含み、
前記設計支援システムは、前記第１のソースプログラムに基づいて、前記複数の関数のそれぞれについて、前記関数と、当該関数を特定する関数特定情報とを対応付けた関数対応情報を生成する関数対応情報生成手段をさらに備え、
前記ライブラリ生成手段は、前記関数対応情報に基づいて、前記関数を実行する場合に、当該関数を特定する関数特定情報を前記再構成デバイスに保持させる処理を前記ライブラリに含め、
前記ソースプログラム生成手段は、前記関数対応情報に基づいて、前記演算処理装置に前記再構成デバイスから前記関数特定情報を読み出させ、当該読み出した関数特定情報によって特定される関数を実行させる処理を前記第２のソースプログラムに含める、
請求項８に記載の設計支援システム。
【請求項１０】
再構成デバイスから出力された実行要求信号に応じて実行されたときに、前記再構成デバイスから所定の処理において使用される処理情報を読み出す処理と、
前記読み出した処理情報を使用して前記所定の処理を実行する処理と、
を演算処理装置に実行させるプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、情報処理装置、情報処理方法、設計支援システム及びプログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
本発明の目的は、上述したような課題を解決するために、再構成デバイスの処理を演算処理装置で代替して実行することができる情報処理装置、情報処理方法、設計支援システム及びプログラムを提供することである。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
本発明の第４の態様にかかるプログラムは、再構成デバイスから出力された実行要求信号に応じて実行されたときに、前記再構成デバイスから所定の処理において使用される処理情報を読み出す処理と、前記読み出した処理情報を使用して前記所定の処理を実行する処理と、を演算処理装置に実行させるプログラムである。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
上述した本発明の各態様によれば、再構成デバイスの処理を演算処理装置で代替して実行することができる情報処理装置、情報処理方法、設計支援システム及びプログラムを提供することができる。
【国際調査報告】
2012035699.tif 000025
2012035699.tif 000026
2012035699.tif 000027
2012035699.tif 000028