(57)【要約】【課題】接続情報に基づいた回路の接続に限定されず、動作中の装置からの情報に応じたアルゴリズムに適切に対応して再構築可能な情報処理システムを提供する。【解決手段】外部とデータを送受信する通信手段と、アプリケーションプログラム実行中に前記通信手段を介して外部から得られた回路情報によりハードウェアの構成が動的に変更され得るプロセッサとを有する情報処理装置と、前記情報処理装置からの動作情報に応じてアルゴリズムを作成し、このアルゴリズムを論理合成して回路情報を生成し、この回路情報を前記情報処理装置に送信する回路情報生成装置と、を有する。【選択図】図１
2007286811.tif 000002
【特許請求の範囲】
【請求項１】
外部とデータを送受信する通信手段と、アプリケーションプログラム実行中に前記通信手段を介して外部から得られた回路情報によりハードウェアの構成が動的に変更され得るプロセッサとを有する情報処理装置と、
前記情報処理装置からの動作情報に応じてアルゴリズムを作成し、このアルゴリズムを論理合成して回路情報を生成し、この回路情報を前記情報処理装置に送信する回路情報生成装置と、
を有することを特徴とする情報処理システム。
【請求項２】
前記回路情報生成装置は、前記情報処理装置からの動作情報に応じて、ハードウェア記述言語で構築されたアルゴリズムを作成する、
ことを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記回路情報生成装置は、前記情報処理装置からの動作情報に応じて、ソフトウェアで構築されたアルゴリズムを作成する、
ことを特徴とする請求項１記載の情報処理システム。
【請求項４】
前記回路情報生成装置は、ソフトウェアで構築されたアルゴリズムを、高位合成を行ってから論理合成する、
ことを特徴とする請求項３記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部から得られた回路情報によりハードウェアの構成を動的に変更可能なプロセッサを有する情報処理装置と、情報処理装置からの動作情報に応じ回路情報を情報処理装置に送信する回路情報生成装置とを有する情報処理システムに関する。
【背景技術】
【０００２】
装置に組み込まれた状態においてコンフィギュレーションを実行可能なデバイスが登場している。
そして、アプリケーションプログラムを実行中に、そのハードウェアの構成を再構築できるプロセッサを利用した技術が存在している。これはネットワークを経由した外部からの情報により、ハードウェアの構成を動的に再構築するものである。なお、この種の技術に関しては、以下の特許文献１などに提案されている。
【特許文献１】特開2005-316957公報（第１頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
以上の特許文献１に記載された装置では、再構築される回路情報は、再構築に用いる回路の最小単位の接続情報であり、これは回路を動作させるまえに準備しておくものである。そのため、想定された条件内で、接続を変更することによるハードウェアの再構築までしか行うことができないという問題を含んでいる。
【０００４】
本発明は、以上のような課題を解決するためになされたものであって、接続情報に基づいた回路の接続に限定されず、動作中の装置からの情報に応じたアルゴリズムに適切に対応して再構築可能な情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
以上の課題を解決する本発明は、以下に記載するようなものである。
（１）請求項１記載の発明は、外部とデータを送受信する通信手段と、アプリケーションプログラム実行中に前記通信手段を介して外部から得られた回路情報によりハードウェアの構成が動的に変更され得るプロセッサとを有する情報処理装置と、前記情報処理装置からの動作情報に応じてアルゴリズムを作成し、このアルゴリズムを論理合成して回路情報を生成し、この回路情報を前記情報処理装置に送信する回路情報生成装置と、を有することを特徴とする情報処理システムである。
【０００６】
（２）請求項２記載の発明は、前記回路情報生成装置は、前記情報処理装置からの動作情報に応じて、ハードウェア記述言語で構築されたアルゴリズムを作成する、ことを特徴とする請求項１記載の情報処理システムである。
【０００７】
（３）請求項３記載の発明は、前記回路情報生成装置は、前記情報処理装置からの動作情報に応じて、ソフトウェアで構築されたアルゴリズムを作成する、ことを特徴とする請求項１記載の情報処理システムである。
【０００８】
（４）請求項４記載の発明は、前記回路情報生成装置は、ソフトウェアで構築されたアルゴリズムを、高位合成を行ってから論理合成する、ことを特徴とする請求項３記載の情報処理システムである。
【発明の効果】
【０００９】
本発明によると以下のような効果が得られる。
（１）請求項１記載の発明では、情報処理装置からの動作情報に応じてアルゴリズムを作成し、このアルゴリズムを論理合成して回路情報を生成し、この回路情報を回路情報生成装置から情報処理装置に送信することで、情報処理装置側では、アプリケーションプログラム実行中に外部から得られた回路情報によりハードウェアの構成が動的に変更される。
【００１０】
この結果、情報処理装置では、動作中の情報処理装置からの情報に適切に対応したアルゴリズムから生成された回路情報が、回路情報生成装置で生成されて情報処理装置に対して送られるため、接続情報に基づいた回路の接続に限定されず、動作中の情報処理装置からの情報に応じたアルゴリズムに適切に対応した再構築が可能になる。
【００１１】
（２）請求項２記載の発明では、上記（１）において、回路情報生成装置は、情報処理装置からの動作情報に応じて、ハードウェア記述言語で構築されたアルゴリズムを作成するため、適切な回路情報を生成できるという利点がある。
【００１２】
（３）請求項３記載の発明では、上記（１）において、回路情報生成装置は、情報処理装置からの動作情報に応じて、アルゴリズムをソフトウェアで構築して作成するため、各種の条件や動作についての変更に対しても、ソフトウェアにより柔軟に対応することができるという利点がある。
【００１３】
（４）請求項４記載の発明では、上記（３）において、回路情報生成装置は、アルゴリズムをソフトウェアで構築し、高位合成を行ってから論理合成するため、各種の条件や動作についての変更に対してもソフトウェアによって柔軟に対応することができるという利点がある。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明を実施するための最良の形態（以下、実施形態）を詳細に説明する。
〈情報処理システムの電気的構成〉
図１は本発明の第１の実施形態の情報処理システム１００内の詳細構成を示すブロック図である。
【００１５】
なお、この図１では、本実施形態の動作説明に必要な部分の周囲を中心に記載してあり、その他の情報処理システム１００として既知の電源部などの各種の部分については省略してある。
【００１６】
情報処理システム１００は、情報処理装置１１０と、回路情報生成装置１２０とを有して構成されている。
ここで、情報処理装置１１０は、アプリケーションプログラム実行中に通信手段を介して外部から得られた回路情報によりハードウェアの構成が動的に変更（再構築）され得るプロセッサを有するものである。
【００１７】
また、回路情報生成装置１２０は、情報処理装置１１０からの動作情報に応じてアルゴリズムを作成し、このアルゴリズムを論理合成して回路情報を生成し、この回路情報を前記情報処理装置１１０に送信するものである。
【００１８】
また、情報処理装置１１０は、以下のものを有する。ＭＰＵ１１１は、情報処理装置１１０の各部を制御する制御手段である。通信部１１２は、情報処理装置１１０と回路情報生成装置１２０との通信を行う通信手段である。メモリ１１４は情報処理装置１１０が動作時に必要とする各種データが展開される一時記憶手段である。不揮発性メモリ１１５は、情報処理装置１１０において必要とされる各種データや各種プログラムを、電源オンオフにかかわらず保持する不揮発性の記憶手段である。プロセッサ１１６は、情報処理装置１１０としてアプリケーションプログラム実行中に、通信部１１２を介して外部（たとえば、回路情報生成装置１２０）から得られた回路情報により、ハードウェアの構成が動的に変更され得るプロセッサである。インタフェース１１７は、情報処理装置１１０として各種周辺装置との接続を行うための接続手段である。
【００１９】
なお、情報処理装置１１０は実際にアプリケーションプログラムを実動する装置であり、その動作はＭＰＵ１１１により制御され、書き換え可能ハードウェア部としてのプロセッサ１１６により実際に動作する。ここで、初期回路データは不揮発性メモリ１１５に格納されている。通信部１１２は、無線または有線などで他の装置と繋がれており、これにより回路情報生成装置１２０の通信部１２２から送信された回路情報を受信する。情報処理装置１１０では、受信された回路情報に基づき、書き換え可能ハードウェア部としてのプロセッサ１１６が再構築される。
【００２０】
また、回路情報生成装置１２０は、以下のものを有する。ＭＰＵ１２１は、回路情報生成装置１２０の各部を制御する制御手段である。通信部１２２は、回路情報生成装置１２０と情報処理装置１１０との通信を行う通信手段である。メモリ１２４は回路情報生成装置１２０が動作時に必要とする各種データが展開される一時記憶手段である。不揮発性メモリ１２５は、回路情報生成装置１２０において必要とされる各種データや各種プログラムを、電源オンオフにかかわらず保持する不揮発性の記憶手段である。インタフェース１２７は、回路情報生成装置１２０として各種周辺装置との接続を行うための接続手段である。なお、回路情報生成装置１２０は、一般的なコンピュータの構成を有するものであってもよい。
【００２１】
〈第１の実施形態の動作状態〉
以下、第１の実施形態の情報処理システムの動作について、図２以下のフローチャートを参照して、詳細な動作説明を行う。
【００２２】
情報処理システム１００の電源が投入されると、ＭＰＵ１１１は、不揮発性メモリ１１５から初期回路データを読み込み、書き換え可能ハードウェア部としてのプロセッサ１１６を構築する（図２中のステップＳ２０１）。
【００２３】
構築された書き換え可能ハードウェア部としてのプロセッサ１１６は、ＭＰＵ１１１の制御に従って初期動作を行い（図２中のステップＳ２０２）、その後、実動作を開始する（図２中のステップＳ２０３）。
【００２４】
そして、プロセッサ１１６は、実動作中（図２中のステップＳ２０３）に得られた情報（動作情報）を、通信部１１２を介して回路情報生成装置１２０に対して送信する（図２中のステップＳ２０４）。
【００２５】
ここで、情報処理装置１１０からの動作情報を受けた回路情報生成装置１２０側の動作を、図３のフローチャートにより説明する。
情報処理装置１１０から送信された動作情報を通信部１２２を介して受信（図３中のステップＳ３０１）した回路情報生成装置１２０では、動作情報に基づいてＭＰＵ１２１がメモリ１２４上でアルゴリズムの作成を行う（図３中のステップＳ３０２）。
【００２６】
ここで、ＭＰＵ１２１は、アルゴリズムをハードウェア記述言語(以降ＨＤＬ）で構築する。このため、ＭＰＵ１２１は、そのＨＤＬを論理合成して回路情報を生成する（図３中のステップＳ３０３）。このようにして生成された回路情報は、通信部１２２を介して、情報処理装置１１０に対して送信される（図３中のステップＳ３０４）。
【００２７】
なお、回路情報生成装置１２０側では、情報処理装置１１０から送信される動作情報を受信するたびに、アルゴリズムから回路情報を生成して情報処理装置１１０に対して送信する。
【００２８】
このようにして、情報処理装置１１０での動作情報に応じて回路情報生成装置１２０で生成された回路情報を、情報処理装置１１０は通信部１１２を介して受信する（図２中のステップＳ２０５）。
【００２９】
ここで、情報処理装置１１０では、受信した回路情報に基づいて、ＭＰＵ１１１が、書き換え可能ハードウェア部としてのプロセッサ１１６を再構築する（図２中のステップＳ２０６）。
【００３０】
再構築されたプロセッサ１１６は、動作情報に応じて回路情報生成装置１２０で新たなアルゴリズムに基づいて生成された回路情報に応じたものであるため、すなわち、新たなアルゴリズムに基づいた新たな実動作（新規実動作）を行う（図２中のステップＳ２０７）。
【００３１】
なお、情報処理装置１１０は、新たな実動作（図２中のステップＳ２０７）を行った場合の動作情報を回路情報生成装置１２０に送信し（図２中のステップＳ２０４）、以上の動作（回路情報の受信、回路の再構築）を繰り返して、更に新たなアルゴリズムに基づいた新たな実動作（新規実動作）を行う（図２中のステップＳ２０７）動作を繰り返す。
【００３２】
図４は、ＭＰＵ１２１が実行する図３中のアルゴリズムの生成（ステップＳ３０２）の詳細手順を示したものである。
すなわち、ＭＰＵ１２１は、アルゴリズムの過程が何らかの繰り返し動作か、条件分岐動作かの判断を行い（図４中のステップＳ４０１）、繰り返し動作であるならば、繰り返しの条件の設定（図４中のステップＳ４０２）、繰り返し動作の設定（図４中のステップＳ４０３）、繰り返し動作のなかにさらに繰り返し動作がないかどうかの判定（図４中のステップＳ４０４）、等を行う。
【００３３】
これらは各々のステップで、あらかじめ準備してあるＨＤＬの雛形ファイルに、上記ステップの動作が書き加えられる。
また、ＭＰＵ１２１は、アルゴリズムの過程が何らかの繰り返し動作か、条件分岐動作かの判断を行い（図４中のステップＳ４０１）、条件分岐であった場合は、分岐の条件の設定（図４中のステップＳ４０５）、分岐後の動作の設定（図４中のステップＳ４０６）、分岐後にさらに分岐するかどうかの判定（図４中のステップＳ４０７）、等を行う。繰り返し動作と同様に、各々のステップで、あらかじめ準備してあるＨＤＬの雛形ファイルに、上記ステップの動作が書き加えられる。
【００３４】
これらの工程後、さらに動作を行わせたいかどうかを判別し（図４中のステップＳ４０８）、さらに行わせたい場合はステップＳ４０１に戻り、行わせたくない場合はアルゴリズム作成を終了し、ＨＤＬを出力する。
【００３５】
図５は、回路情報生成装置１２０のＭＰＵ１２１における実際のアルゴリズム作成の具体例を示したものである。ここでは、例として、図４中の繰り返し条件の設定（図４中のステップＳ４０２）、繰り返し動作の設定（図４中のステップＳ４０３）の工程の詳細の一例を示す。
【００３６】
もし乗算を10000回行うという繰り返し動作であった場合（図５中のステップＳ５０１）、10000を数えることのできるカウンタを、ＨＤＬによるカウンタ表記の雛形に、10000を計測することが出来るように表記を書き加える（図５中のステップＳ５０２）。また乗算器の精度等を書き加え（図５中のステップＳ５０３）、カウンタを監視して、カウンタの出力する数のみ動作を行うＨＤＬの表記の雛形に、上記のカウンタ、乗算器の入出力を書き加える（図５中のステップＳ５０４）。以上の工程により、あらたなアルゴリズムの動作を行うＨＤＬが生成される（図５中のステップＳ５０５）。
【００３７】
以上の工程により、動作中の機器からの情報により、アルゴリズムレベルから機器の再構築を行うことが可能になる。これにより、従来のように想定の範囲での接続情報のみよって接続を変えることによってハードウェアを再構築していたシステムよりも、実際の動作環境により自発的にその動作を変更させることが可能になる。
【００３８】
すなわち、動作中の情報処理装置からの情報に適切に対応したアルゴリズムから生成された回路情報が、回路情報生成装置で生成されて情報処理装置に対して送られるため、接続情報に基づいた回路の接続に限定されず、動作中の情報処理装置からの情報に応じたアルゴリズムに適切に対応した再構築が可能になる。
【００３９】
〈第２の実施形態の動作〉
第２の実施形態では、上述した第１の実施形態でアルゴリズム作成においてＨＤＬを出力していた部分に対し、ソフトウェアソース(例えばCまたはC++など）を出力するものである。
【００４０】
この場合、情報処理装置１１０から送信された動作情報を通信部１２２を介して受信（図６中のステップＳ６０１）した回路情報生成装置１２０では、動作情報に基づいてＭＰＵ１２１がメモリ１２４上でソフトウェアによるアルゴリズムの作成を行う（図６中のステップＳ６０２）。
【００４１】
そして、出力されたソフトウェアソースに対し、ＭＰＵ１２１は高位合成を行いＨＤＬを作成し、さらに、ＭＰＵ１２１により論理合成を行ってＨＤＬから回路情報を生成する（図６中のステップＳ６０３）。
【００４２】
このようにしてソフトウェアによってアルゴリズムからＨＤＬへと変換されて生成された回路情報は、通信部１２２を介して、情報処理装置１１０に対して送信される（図６中のステップＳ６０４）。
【００４３】
なお、回路情報生成装置１２０側では、情報処理装置１１０から送信される動作情報を受信するたびに、ソフトウェアによってアルゴリズムから回路情報を生成して情報処理装置１１０に対して送信する。
【００４４】
図７は、第２実施形態において、ＭＰＵ１２１がソフトウェアソースによりアルゴリズムを生成する場合（図６中のステップＳ６０２）の詳細を示したものである。ＨＤＬの場合と同様に繰り返し動作を例にとると、ソフトウェアソースがC言語で構成する場合、あらかじめ準備してあるC言語の、For Next文の雛形に、繰り返し条件、繰り返し動作などを書き加え（図７中のステップＳ７０２）、これによりあらたなアルゴリズムのソフトウェアソースが生成される（図７中のステップＳ７０３）。
【００４５】
この第２実施形態の例の場合は、ソフトウェアソースからの変更により、ＨＤＬソースからの第１実施形態の場合よりも、更に柔軟な変更に対応することが可能になる。このため、より適切な回路情報を生成することが可能になる。
【００４６】
また、情報処理装置１１０から動作情報が再び送られてきた場合には、ソフトウェアに対してフィードバックして新たなアルゴリズム、新たなＨＤＬ、新たな回路情報を生成するため、ＨＤＬの雛形を用意しておく必要がなくなる。
【００４７】
〈その他の実施形態〉
以上の情報処理システム１００では、情報処理装置１１０と回路情報生成装置１２０とが１：１で対応した具体例を示したが、これに限定されるものではない。すなわち、複数の情報処理装置１１０と１つの回路情報生成装置１２０とで情報処理システム１００を構成していてもよいし、複数Ｍ個の情報処理装置１１０と複数Ｎ個の回路情報生成装置１２０とで、Ｍ≠Ｎの状態で情報処理システム１００を構成していてもよい。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態の情報処理システムの電気的な構成を示す機能ブロック図である。
【図２】本発明の実施形態の情報処理システムの基本動作を示すフローチャートである。
【図３】本発明の実施形態の詳細動作を示すフローチャートである。
【図４】本発明の実施形態の詳細動作を示すフローチャートである。
【図５】本発明の実施形態の詳細動作を示すフローチャートである。
【図６】本発明の実施形態の詳細動作を示すフローチャートである。
【図７】本発明の実施形態の詳細動作を示すフローチャートである。
【符号の説明】
【００４９】
１００  情報処理システム
１１０  情報処理装置
１１１  ＭＰＵ
１１２  通信部
１１４  メモリ
１１５  不揮発性メモリ
１１６  プロセッサ（書き換え可能ハードウェア部）
１１７  インタフェース
１２０  回路情報生成装置
１２１  ＭＰＵ
１２２  通信部
１２４  メモリ
１２５  不揮発性メモリ
１２７  インタフェース
【図１】
2007286811.tif 000003
【図２】
2007286811.tif 000004
【図３】
2007286811.tif 000005
【図４】
2007286811.tif 000006
【図５】
2007286811.tif 000007
【図６】
2007286811.tif 000008
【図７】
2007286811.tif 000009