(57)【特許請求の範囲】
【請求項１】
複数の処理モジュールからなる一連の処理を実行するための情報処理システムであって、
前記複数の処理モジュールの少なくとも一部を実行するハードウェア・モジュールを構成するとともに、ハードウェア・モジュールの部分的書き換えが可能なプログラマブル論理回路と、
前記プログラマブル論理回路上に構成するハードウェア・モジュールを記憶する記憶手段であって、同一機能を実行し、入出力部位置が異なる複数のハードウェア・モジュールをハードウェア・モジュール群として記憶する記憶手段と、
前記プログラマブル論理回路に構成する新規構成ハードウェア・モジュールを、前記記憶手段中のハードウェア・モジュール群から選択して構成するハードウェア・モジュール取得手段と、
を有することを特徴とする情報処理システム。
【請求項２】
前記ハードウェア・モジュール取得手段は、前記プログラマブル論理回路上の他のハードウェア・モジュールとの入出力部位置との配線距離が最短となる入出力部位置を有するハードウェア・モジュールを新規構成ハードウェア・モジュールとして前記ハードウェア・モジュール群から選択する構成を有することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記情報処理システムは、
各処理モジュールがプログラム言語で記述されたソフトウェア・モジュールで構成されるプログラムの形態で一連の処理を受容するプログラム受容手段と、
ソフトウェア・モジュールを実行可能なプロセッサと、
回路情報で記述されたハードウェア・モジュールに従って部分書き換え可能なプログラマブル論理回路と、
一連の処理を構成する各処理モジュールのうちハードウェア・モジュールによって実行すべきものを決定する実行モジュール決定手段とを有し、
前記記憶手段は、ソフトウェア・モジュールと同じ処理を前記プログラマブル論理回路上で再構成するための回路情報で記述されるハードウェア・モジュールを蓄積する構成を有し、
前記ハードウェア・モジュール取得手段は、前記実行モジュール決定手段によって決定されたハードウェア・モジュールを前記記憶手段から取り出して前記プログラマブル論理回路上に再構成する構成を有することを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記情報処理システムは、
前記プログラマブル論理回路上に構成したハードウェア・モジュールの識別符号を記録する識別符号記録手段を有し、
前記ハードウェア・モジュール取得手段は、前記識別符号記録手段に記録された識別符号に基づいて、前記プログラマブル論理回路上の他のハードウェア・モジュールの入出力部位置を識別する構成を有することを特徴とする請求項１乃至３いずれかに記載の情報処理システム。
【請求項５】
前記記憶手段に蓄積されるハードウェア・モジュールは矩形形状で表現されることを特徴とする請求項１乃至４いずれかに記載の情報処理システム。
【請求項６】
ハードウエア構成可能領域の形状は前記プログラマブル論理回路上における水平方向と垂直方向の各々の論理セル数によって定義されることを特徴とする請求項１乃至５いずれかに記載の情報処理システム。
【請求項７】
前記記憶手段に記憶されるハードウェアモジュールの入出力部位置は、前記記憶手段に蓄積される矩形形状のハードウェア・モジュールの外周位置に設定された構成であることを特徴とする請求項１乃至６いずれかに記載の情報処理システム。
【請求項８】
複数の処理モジュールからなる一連の処理を実行する情報処理方法であって、
前記複数の処理モジュールの少なくとも一部を実行するハードウェア・モジュールを記憶手段から選択するモジュール選択ステップと、
前記モジュール選択ステップにおいて選択されたハードウェア・モジュールをプログラマブル論理回路に構成するモジュール構成ステップと、を有し、
前記モジュール選択ステップは、同一機能を実行し入出力部位置が異なる複数のハードウェア・モジュールから、前記プログラマブル論理回路上の他のハードウェア・モジュールとの入出力部位置との配線距離が最短となる入出力部位置を有する１つのハードウェア・モジュールを選択するステップを含むことを特徴とする情報処理方法。
【請求項９】
前記情報処理方法は、さらに、
一連の処理を構成する各処理モジュールのうち、プロセッサを使用してソフトウェア・モジュールによって実行すべきものと、前記プログラマブル論理回路を使用してハードウェア・モジュールによって実行すべきものを決定する実行モジュール決定ステップを有し、
前記モジュール選択ステップは、前記実行モジュール決定ステップにおいてハードウェア・モジュールによって実行すべきものとして決定されたハードウェア・モジュールについて前記記憶手段から選択することを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
前記モジュール選択ステップは、前記プログラマブル論理回路上の他のハードウェア・モジュールの識別符号から一義的に求められる回路構成に基づいて、該他のハードウェア・モジュールとの入出力部位置を判別して、該他のハードウェア・モジュールとの配線距離が最短となるハードウェア・モジュールを新規構成ハードウェア・モジュールとして選択することを特徴とする請求項８または９に記載の情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理回路を記述した回路情報に従って所望の論理を再構成可能なプログラマブル論理回路を含んだ情報処理システムに係り、特に、プログラム言語で記述された複数の処理モジュールで構成される一連の処理の少なくとも一部を、部分書き換え可能なプログラマブル論理回路上で再構成したハードウェア回路に置き換えて実行するタイプの情報処理システムに関する。
【０００２】
更に詳しくは、本発明は、各処理モジュールをソフトウェア・モジュール又はハードウェア・モジュールのいずれで実行すべきかを決定して処理するタイプの情報処理システムに係り、プログラム論理回路上に形成された異なるモジュール間での信号伝達時間、いわゆる配線遅延を減少して処理モジュール全体の処理時間を短縮化する情報処理システムに関する。
【０００３】
【従来の技術】
昨今の技術革新に伴い、各種の情報処理機器が研究・開発され、広汎に普及してきている。情報処理機器は、一般に、高度な半導体技術によって集積化された半導体回路コンポーネント（ＬＳＩ：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）を数多く含んで構成される。ＬＳＩの一部には、特定の用途のために最適設計されたカスタムＩＣ、すなわちＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）技術が採用されている。
【０００４】
最近のＡＳＩＣ分野では、製品の開発期間を更に短縮化するために、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ：Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、プログラマブル・ロジック・デバイス（ＰＬＤ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などの、プログラマブル論理回路装置が広く使われ始めている。
【０００５】
この種のプログラマブル論理回路装置は、論理回路を記述する回路情報を該論理回路装置内に読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができる。これによって、従来は回路設計の終了後に数週間から数か月を必要とした集積回路の作製時間を短縮することができる。特に、米国特許第４，７００，１８７号明細書に開示されているプログラマブル論理装置は、電気的に再構成が可能な構成であり、一度作製した回路を必要に応じて自由に何度でも変更する、すなわち回路を再構成できるという利点があり、ますます広く使われるようになってきている。
【０００６】
ＦＰＧＡと呼ばれるプログラマブル論理回路装置は、論理ゲート間および配線間を接続するスイッチを制御するビット・ストリームを外部から書き込むことによって、所望の論理回路を再構成することのできるデバイスである。内部回路構成や論理ゲート間のスイッチ制御のデータを保持する記憶手段がデバイス内に設けられており、この記憶手段の種類により様々な動作特性のデバイスが当業界において提供されている。
【０００７】
論理ゲート間または配線間のスイッチ制御のデータを保持する記憶手段としては、アンチヒューズ・タイプ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）タイプ、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）タイプなどがある。
【０００８】
このうち、ＳＲＡＭタイプは、スイッチとなるトランジスタのゲートに揮発性メモリを接続する。書き換え可能デバイス中でＳＲＡＭメモリの占める面積は大きいが、他のタイプに比べ書き換え時間が小さく、アドレスを指定してメモリの内容を書き換えることができるので、システム動作中の論理の再構成も可能である。さらに、再構成されない部分は動作を継続するという機能を実現し、デバイス内の部分書き換えを可能にしている。
【０００９】
リアルタイムに部分書き換えが可能なＦＰＧＡは、特に、ＤＲ−ＦＰＧＡ（Ｄｙｎａｍｉｃａｌｌｙ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）と呼ばれている。ＤＲ−ＦＰＧＡとしては、米国ザイリンクス社のＸＣ６２００シリーズ及びＶｉｒｔｅｘシリーズ、米国アトメル社のＡＴ６０００シリーズ及びＡＴ４０Ｋシリーズ、米国ルーセント・テクノロジー社のＯＲＣＡ３Ｃ／３Ｔシリーズなどが、既に市販されている。
【００１０】
最近の論理回路に要求される処理の複雑さが増し、単一のプログラマブル論理回路装置だけでは実現できない規模にまで回路規模が大きくなっている。この問題を解決するための１つの方法として、処理の途中でプログラマブル論理回路装置を再度構成し直すことによって、異なる時間に異なる論理回路を実現することが考えられている。
【００１１】
この方法によれば、モバイル機器のような極度に小型化された情報処理システムのように、内蔵可能な回路規模に制約がある場合でも、回路コンポーネント数を増やすことなく、様々な処理をプログラマブル論理回路によってハードウェア化して比較的高速に実行できるという利点もある。
【００１２】
しかしながら、プログラマブル論理装置を再構成するときに、回路情報を再度読み込ませるための余分な時間がかかるという欠点がある。また、処理の途中で論理装置を再構成するためには、処理を一時中断し、その時点でのデータをプログラマブル論理回路装置の外部の記憶装置に一時記憶させ、新たな回路情報を読み込んで再構成し、再構成前のデータと再構成に伴う新しいデータを入力させる、という一連の余分な処理が必要になる。
【００１３】
プログラマブル論理装置の再構成に伴なう上記の問題を解決するために、米国アトメル社が提供するデータブック”ＣＯＮＦＩＧＵＲＡＢＬＥ  ＬＯＧＩＣ”に記載されているプログラマブル論理回路装置、及び、米国ザイリンクス社が提供するデータブック”ＴＨＥ  ＰＲＯＧＲＡＭＭＡＢＬＥ  ＬＯＧＩＣ”  （米国版）に記載されているプログラマブル論理回路装置では、再構成を行うときにデータを記憶するためのデータ記憶装置を有しており、回路の動作中でも外部の記憶装置から回路情報の一部を読み込んで部分的に再構成を行うことで、論理装置を再構成するための時間を最小限に留めている。
【００１４】
ところが、このような部分的に再構成可能なプログラマブル論理回路を情報処理システムに好適に適用するには、情報処理システム上で実行する処理を、プログラマブル論理回路で行うハードウェア処理と、マイクロプロセッサなどの回路構成を変更できない固定的な論理回路装置で行うソフトウェア処理とに分離するための技術を確立する必要がある。
【００１５】
このような処理の分離に関する問題を解決する方法として、プログラマブル論理回路の再構成機能を用いてアプリケーションの一部をハードウエア化する手法が幾つか提案されている。アプリケーションの一部を、汎用のプロセッサによるソフトウェア処理ではなく、プログラム論理回路装置を用いたハードウェア処理に委ねるのは、後者の方が前者よりも処理速度が速いという理由に依拠する。
【００１６】
例えば、特開平９−７４５５６号公報には、ネットワークを介してアプリケーションの一部をダウンロードする手法について記載している。すなわち、同公報では、プログラマブル論理回路を用いたアプリケーションとして、符号化した画像データと復号プログラムをネットワーク経由で受信し、ソフトウェアとプログラマブル論理回路の双方を用いて復号化して画像再生するということが考えられている。図１１には、同公報に開示されている画像再生装置の概略構成を示している。以下、図１１を参照しながら、この画像再生装置について説明する。
【００１７】
画像再生装置は、動画像復号部を再構成するためのプログラムと符号化された動画像データをネットワーク経由でダウンロードするための受信部と、受信データがプログラムか動画像データかによって伝送先を切り換える切り換え手段と、処理系を再構成することが可能な動画像復号部と、受信したプログラムを動画像復号部の構成に変更できる形式に変換するプログラム変換部と、受信部と切り換え手段とプログラム変換部と動画像復号部の制御を行うための制御部とで構成される。
【００１８】
プログラム変換部は、受信プログラムを動画像復号部の構成を変更できる形式に変換する第１プログラム部分（すなわち、ハードウエア化する部分）と動画像再生時において制御部が行う第２プログラム部分（すなわち、ソフトウエアで実行する部分）とに分割する分割部と、第１プログラム部分を動画像復号部の構成を変更できる形式に変換する第１の変換部（ハードウエア・コンパイラ）と、第２プログラム部分を制御部が解読して処理を実行できる形式に変換する第２の変換部（ソフトウエア・コンパイラ）とを備えている。
【００１９】
動画像復号部は、逆量子化処理内容を変更できる逆量子化部と、逆変換処理内容を変更できる逆変換部とを備えている。逆量子化部は量子化された画像データを逆量子化し、逆変換部は変換された画像データを逆変換する。
【００２０】
次に、この画像再生装置の動作手順について説明する。
【００２１】
動画像再生用のプログラムと符号化された動画像データがネットワーク経由で入力されると、まず、論理記述言語で記述された再生アルゴリズム・プログラムを受信部で受信する。
【００２２】
受信データはプログラム変換部に伝送され、分割部でハードウエア処理部とソフトウエア処理部とに分割される。
【００２３】
ハードウエア処理部分は、第１の変換部に渡され、プログラマブル論理回路装置（ＦＰＧＡ）を書き換えることができる形式（ビット・ストリーム）に変換され、制御部は、このビット・ストリームに基づいて、逆量子化部と逆変換部を書き換える。
【００２４】
他方、ソフトウエア処理部分は、第２の変換部に渡され、プロセッサで処理できる実行形式に変換された後、制御部に渡される。
【００２５】
こうして再構成された画像再生装置に対して、動画像データがネットワーク経由で送られると、受信部で受信し、切り換え手段によって動画像復号部に伝送され、復号データとして出力する。
【００２６】
上述したように逆量子化部と逆変換部をＦＰＧＡのような処理プログラムを変更可能な素子で構成したことにより、動画像復号部のハードウェアを最適な処理能力に適合させるようにしている訳である。
【００２７】
また、特開平６−３０１５２２号には、回路構成を変更できない固定部とプログラマブル論理回路のように回路構成を変更できる可変部とで構成される計算機のシステム構成方法について開示している。同公報は、複数のプログラムを基に、プログラマブル論理回路上にハードウェアで構成することを提案するものである。以下、図１２を用いながら、この計算機システムについて説明する。
【００２８】
図１２に示すように、計算機で実行するソースプログラムは、固定部の構成に関する情報と可変部が構成することができる回路の情報が格納されているライブラリを参照しながら、オブジェクト・コードとハードウェア構成データに変換される。
【００２９】
すなわち、コンパイラはソース・プログラムのフロー解析を行い、関数の頻度を検出する。この検出頻度に基づいて、呼び出し回数の多い関数をハードウェアで処理する関数として決定し、ハードウェア構成データを作成して出力する。次に、ハードウェアで処理すると決めた部分を所定の可変部で処理することを示すコードを残りのソフトウェアで処理する部分に付加して、オブジェクト・コードを作成し出力する。
【００３０】
計算機システムは、回路構成を変更できない固定部と、ハードウェア構成データにより構成された可変部を用いて、オブジェクト・コードに応じた処理を実行する。このようにして、コンパイル時に呼び出し回数の多い幾つかの関数をハードウェア化することにより処理全体の高速化を図っている。
【００３１】
また、日経オープンシステム１９９７年８月号の２１３ページから２１９ページに掲載されている記事「インターネットのサーバを運用代行  ＩＳＰやＶＡＮ業者がサービスを提供へ」では、ネットワークを介して複数のサーバにアクセスするケースについて提案している。
【００３２】
同記事は、ネットワークのアウトソーシングというサービスとしてインターネットやクローズドＶＡＮについて扱っている。この中で、インターネットに不可欠なサーバであるメール・サーバやネーム・サーバを始めとする各種サーバへのアクセスについて詳解している。
【００３３】
サーバへのより早いアクセスを実行するために、使用するプログラム一つ一つについてアクセスを行なうよりも、全てのプログラムについて一度にアクセスを行い、最も早くアクセスできたプログラムからダウンロードする方が、全体のアクセス時間が少ないことが当業界において既に知られている。そこで、プログラムが複数のサーバに格納されているような状況では、上記のような方法に従ってプログラムへのアクセスを行い、ダウンロードすることが一般的になってきている。例えば、プログラム・データを分類、整理したり、管轄が異なっている、あるいはネットワークのトラフィック緩和、サーバの負荷軽減のために、プログラムは複数のサーバに分散して蓄積される。
【００３４】
しかしながら、上記で説明した各々の従来例では、処理の一部分をプログラマブル論理回路で処理するに際して、次のような問題が残されている。
【００３５】
すなわち、プログラマブル論理回路を用いた処理における問題点として、以前より、ハードウェア・モジュールをデバイス上に構成した場合における様々な状況での配線遅延が指摘されている。
【００３６】
プログラマブル論理回路上において行われる論理回路の部分書き換えによるハードウェア・モジュールの再構成処理において、再構成されたハードウェア・モジュール間の接続を行う場合、従来の装置では、ハードウェア・モジュールのインターフェース位置はモジュールが提供された時点で固定されている。従って、接続すべき二つのハードウェア・モジュールの接続部が隣接した位置にあるか、あるいはそれぞれのハードウェア・モジュールと対称の位置、すなわち離れた位置に接続インタフェースがあるかによって、ハードウェア・モジュール接続部で発生する配線遅延時間が変化してしまう。
【００３７】
その結果、二つのハードウェア・モジュール、例えばモジュールＡとモジュールＢとの相互接続部がそれぞれのハードウェア・モジュールと対称の位置にある場合には、モジュールＡの処理後、モジュールＢでの処理を開始するために実行されるモジュールＡの処理情報のモジュールＢに対する伝達時間に多大な時間を要することになる。すなわち配線遅延が発生する。そのために、ハードウエアで処理を行うことによる処理の高速化というメリットを削減してしまうという問題を発生させていた。また繰り返し処理がこの複数のハードウェア・モジュールを使用したルーチン処理として行われる場合、例えばモジュールＡとモジュールＢとの処理を繰り返し実行する必要がある場合は、配線遅延が繰り返し処理の行われる回数に応じて加算されてしまい、処理時間がさらに増加してしまうという問題を引き起こしていた。
【００３８】
【発明が解決しようとする課題】
本発明は、上述の問題点に鑑みてなされたものであり、本発明の目的は、論理回路を記述した回路情報に従って所望の論理を再構成可能なプログラマブル論理回路を含んだタイプの、優れた情報処理システムを提供することにある。
【００３９】
本発明の更なる目的は、プログラム言語で処理を記述された複数の処理モジュールで構成される一連の処理の少なくとも一部を部分書き換え可能なプログラマブル論理回路上で再構成したハードウェア回路に置き換えて実行するタイプの、優れた情報処理システムを提供することにある。
【００４０】
本発明の更なる目的は、各処理モジュールをソフトウェア・モジュール又はハードウェア・モジュールのいずれで実行すべきかを決定して処理するタイプの、優れた情報処理システムを提供することにある。
【００４１】
本発明の更なる目的は、従来のプログラマブル論理回路において問題となっていたハードウェア・モジュール間の配線遅延を減少させる構成を実現し、再構成可能なプログラマブル論理回路を使用した情報処理における処理時間の短縮を可能とした情報処理システムを提供することを目的とする。
【００４２】
【課題を解決するための手段】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、複数の処理モジュールからなる一連の処理を実行するための情報処理システムであって、前記複数の処理モジュールの少なくとも一部を実行するハードウェア・モジュールを構成するとともに、ハードウェア・モジュールの部分的書き換えが可能なプログラマブル論理回路と、前記プログラマブル論理回路上に構成するハードウェア・モジュールを記憶する記憶手段であって、同一機能を実行し、入出力部位置が異なる複数のハードウェア・モジュールをハードウェア・モジュール群として記憶する記憶手段と、前記プログラマブル論理回路に構成する新規構成ハードウェア・モジュールを、前記記憶手段中のハードウェア・モジュール群から選択して構成するハードウェア・モジュール取得手段とを有することを特徴とする情報処理システムにある。
【００４３】
さらに、本発明の情報処理システムにおいて、前記ハードウェア・モジュール取得手段は、前記プログラマブル論理回路上の他のハードウェア・モジュールとの入出力部位置との配線距離が最短となる入出力部位置を有するハードウェア・モジュールを新規構成ハードウェア・モジュールとして前記ハードウェア・モジュール群から選択する構成を有することを特徴とする。
【００４４】
さらに、本発明の情報処理システムは、各処理モジュールがプログラム言語で記述されたソフトウェア・モジュールで構成されるプログラムの形態で一連の処理を受容するプログラム受容手段と、ソフトウェア・モジュールを実行可能なプロセッサと、回路情報で記述されたハードウェア・モジュールに従って部分書き換え可能なプログラマブル論理回路と、一連の処理を構成する各処理モジュールのうちハードウェア・モジュールによって実行すべきものを決定する実行モジュール決定手段とを有し、前記記憶手段は、ソフトウェア・モジュールと同じ処理を前記プログラマブル論理回路上で再構成するための回路情報で記述されるハードウェア・モジュールを蓄積する構成を有し、前記ハードウェア・モジュール取得手段は、前記実行モジュール決定手段によって決定されたハードウェア・モジュールを前記記憶手段から取り出して前記プログラマブル論理回路上に再構成する構成を有することを特徴とする。
【００４５】
さらに、本発明の情報処理システムは、前記プログラマブル論理回路上に構成したハードウェア・モジュールの識別符号を記録する識別符号記録手段を有し、前記ハードウェア・モジュール取得手段は、前記識別符号記録手段に記録された識別符号に基づいて、前記プログラマブル論理回路上の他のハードウェア・モジュールの入出力部位置を識別する構成を有することを特徴とする。
【００４６】
さらに、本発明の情報処理システムにおいて、前記記憶手段に蓄積されるハードウェア・モジュールは矩形形状で表現されることを特徴とする。
【００４７】
さらに、本発明の情報処理システムにおいて、ハードウエア構成可能領域の形状は前記プログラマブル論理回路上における水平方向と垂直方向の各々の論理セル数によって定義されることを特徴とする。
【００４８】
さらに、本発明の情報処理システムにおいて、前記記憶手段に記憶されるハードウェアモジュールの入出力部位置は、前記記憶手段に蓄積される矩形形状のハードウェア・モジュールの外周位置に設定された構成であることを特徴とする。
【００４９】
さらに、本発明の情報処理方法は、複数の処理モジュールからなる一連の処理を実行する情報処理方法であって、前記複数の処理モジュールの少なくとも一部を実行するハードウェア・モジュールを記憶手段から選択するモジュール選択ステップと、前記モジュール選択ステップにおいて選択されたハードウェア・モジュールをプログラマブル論理回路に構成するモジュール構成ステップと、を有し、前記モジュール選択ステップは、同一機能を実行し入出力部位置が異なる複数のハードウェア・モジュールから、前記プログラマブル論理回路上の他のハードウェア・モジュールとの入出力部位置との配線距離が最短となる入出力部位置を有する１つのハードウェア・モジュールを選択するステップを含むことを特徴とする。
【００５０】
さらに、本発明の情報処理方法は、さらに、一連の処理を構成する各処理モジュールのうち、プロセッサを使用してソフトウェア・モジュールによって実行すべきものと、前記プログラマブル論理回路を使用してハードウェア・モジュールによって実行すべきものを決定する実行モジュール決定ステップを有し、前記モジュール選択ステップは、前記実行モジュール決定ステップにおいてハードウェア・モジュールによって実行すべきものとして決定されたハードウェア・モジュールについて前記記憶手段から選択することを特徴とする。
【００５１】
さらに、本発明の情報処理方法は、前記モジュール選択ステップは、前記プログラマブル論理回路上の他のハードウェア・モジュールの識別符号から一義的に求められる回路構成に基づいて、該他のハードウェア・モジュールとの入出力部位置を判別して、該他のハードウェア・モジュールとの配線距離が最短となるハードウェア・モジュールを新規構成ハードウェア・モジュールとして選択することを特徴とする。
【００５２】
【作用】
本発明に係る情報処理システムは、複数の処理モジュールを用いて一連の処理を実行する。各処理モジュールは基本的にプログラム言語で記述されたソフトウェア・モジュールで構成されており、情報処理システムは、所謂ソフトウェア・プログラムの形態で、一連の処理を受容する。
【００５３】
また、情報処理システムは、ソフトウェア・モジュールを実行可能なプロセッサと、回路情報で記述されたハードウェア・モジュールに従って部分書き換え可能なプログラマブル論理回路を備えている。一連の処理を実行する際には、各処理モジュールをソフトウェア・モジュール又はハードウェア・モジュールのいずれとして実行すべきかを判別して、実行することが可能である。
【００５４】
また、情報処理システムは、ソフトウェア・モジュールと同じ処理を前記プログラマブル論理回路上で再構成するための回路情報で記述されるハードウェア・モジュールを蓄積する記憶手段を備えている。
【００５５】
ハードウェア・モジュールは、プログラマブル論理回路上に再構成すると、所定数のセルを使用するとともに、所定形状を持つセル領域を占有する。本発明では、各ソフトウェア・モジュールにつき、同一の処理を実現するが前記プログラマブル論理回路上に再構成すると、その入出力部位置が異なる複数のハードウェア・モジュールを、記憶手段に用意した。
【００５６】
そして、プログラマブル論理回路の部分的書き換えを行なうときには、同じ処理を実現するがその入出力部位置が異なる複数のハードウェア・モジュールのうち、配線遅延を最小にするものを優先的に取り出すようにした。
【００５７】
本発明によれば、同じ処理を実現するがその入出力部位置が異なるハードウェア・モジュールを複数個用意しておき、プログラマブル論理回路上において、配線遅延を最小にするハードウェア・モジュールを優先的に使用することにしたので、モジュール間でのデータ入出力時の遅延を最小限に抑えることができる。また、その結果として全体の処理時間を短縮化することができる。
【００５８】
また、ハードウェア・モジュールの入出力部の位置を、占有するセル領域を包含する矩形の外周上に配置することとした。すなわち、入出力部位置が異なる同機能のハードウェア・モジュールのパターン数を限定して、かつ最適な入出力部位置を有するモジュールを選択可能として、最適構成を少量のデータから判断することができ、処理の実行とデバイスのコンフィギュレーションを並行して行なうことができ、全体の処理時間を短縮することができる。
【００５９】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００６０】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施例を詳解する。
【００６１】
図１には、本発明を実現するのに適した情報処理システム１０のハードウェア構成を模式的に示している。
【００６２】
情報処理システム１０は、例えば、「ワークステーション」や「パーソナル・コンピュータ」と呼ばれる汎用コンピュータ・システムであり、その一例は、米国ＩＢＭ社のＰＣ／ＡＴ互換機又はその後継機である。この種のシステム１０は、ＯＡＤＧ（ＰＣ  Ｏｐｅｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｄｅｖｅｌｏｐｅｒ’ｓ  Ｇｒｏｕｐ）仕様に準拠し、オペレーティング・システム（ＯＳ）として、例えば米国マイクロソフト社の”Ｗｉｎｄｏｗｓ９５／９８／ＮＴ”を搭載している。以下、情報処理システム１０内の各部について説明する。
【００６３】
システム１０のメイン・コントローラであるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１は、オペレーティング・システム（ＯＳ）の制御下で、各種の処理を実行する。
【００６４】
ここで言う「処理」は、複数の処理モジュールからなる一連の処理である。かかる一連の処理は、通常、各処理モジュールがプログラム言語で記述されたソフトウェア・モジュールで構成されている「プログラム」の形態で、情報処理システム１０に供給される。
【００６５】
ＣＰＵ１１の回路論理は固定的で、再構成不可能である。したがって、ＣＰＵ１１は、処理モジュールのうち、プログラム言語で記述されたソフトウェア・モジュールのみを実行し、後述するようにハードウェア・モジュールは実行しない。なお、ＣＰＵ１１は、例えば米国インテル社の”Ｐｅｎｔｉｕｍ  ＩＩ”でよい。
【００６６】
本実施例の情報処理システム１０は、各周辺装置をローカル接続するためのローカル・バスとしてのＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス１４を備えている。このＰＣＩバスと、ＣＰＵ１１の自身の外部ピンに直結したホスト・バス１１Ｂとは、チップセットで構成されるバス・ブリッジ１３を介して相互接続されている。
【００６７】
本実施例のチップセット１３は、両バス１１Ｂ及び１４間のデータ転送速度の差を吸収するためのデータ・バッファや、主記憶メモリ１２へのアクセス動作を制御するためのメモリ・コントローラを含んだ構成となっている。
【００６８】
主記憶メモリ１２は、書き込み可能なメモリであり、通常は複数個のＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）チップで構成される。主記憶メモリ１２は、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ：基本入出力システム）、デバイス・ドライバ、ＯＳ、及びアプリケーション・プログラムなど各種処理を実現するためのプログラム・コードをロードしたり、処理実行中の作業データを一時格納するために利用される。
【００６９】
ＰＣＩバス１４は、比較的高速なデータ転送が可能なバスであり（バス幅３２／６４ビット、最大動作周波数３３／６６ＭＨｚ、最大データ転送速度１３２／２６４ＭＭｐｓ）、ＰＣＩバス１４とのインターフェース・プロトコルを実現する各種のインターフェース・アダプタが接続されている。なお、ＰＣＩアーキテクチャは、米国インテル社の提唱に端を発したものであり、所謂ＰｎＰ（プラグ・アンド・プレイ）機能を備えている。
【００７０】
ＰＣＩバス１４に接続されるインターフェース・アダプタとして、本実施例すなわち図１では、ハード・ディスク・インターフェース１７と、通信インターフェース１９と、プログラマブル論理回路インターフェース１５を挙げている。
【００７１】
ハード・ディスク・インターフェース１７は、ハード・ディスク装置１８などの大容量の外部記憶装置を接続するためのインターフェースであり、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）やＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）などの仕様が当業界において標準的である。以下では、システム１０内のハード・ディスク装置１８のことを、「ローカル・ディスク」とも呼ぶ。
【００７２】
通信インターフェース１９は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットなどの、システム１０の外部のネットワーク２０と接続するためのアダプタである。
【００７３】
ネットワーク２０上には、通常、複数の外部装置が接続されている。外部装置の一例は、ファイル・サーバやプリント・サーバなど、各種資源サービスを情報処理システム１０に提供するサーバである。図１では、ネットワーク２０には記憶装置２１が接続されている。この記憶装置２１は、例えば、ファイル・サーバなどが提供する大容量ハード・ディスク装置などであり、システム１０側からは記憶装置２１に対して透過的にディスク・アクセス可能である。以下では、ネットワーク２０上のハード・ディスク装置２１のことを、「ローカル・ディスク」と区別して、「ネットワーク・ディスク」と呼ぶことにする。
【００７４】
プログラマブル論理回路インターフェース１５は、プログラマブル論理回路１６をシステム１０に接続するためのアダプタである。プログラマブル論理回路１６は、例えば「アダプタ・カード」に搭載された形態で提供される。プログラマブル論理回路１６は、後述するように部分書き換え動作が可能なタイプのデバイスである。プログラマブル論理回路１６上に部分的に書き込まれたハードウェアのことを、以下では「ハードウェア・モジュール」と呼ぶ。ハードウェア・モジュールは、通常、論理回路１６を再構成するための回路情報という形式で記述され、所定の格納場所に保管され、且つ適宜取り出して用いられる。
【００７５】
本実施例では、回路情報として記述された数多くのハードウェア・モジュールが、情報処理システム１０内のローカル・ディスク１８又はネットワーク２０上のネットワーク・ディスク２１に蓄積されている。プログラマブル論理回路１６は、図示しないローカル・メモリを備えている。部分書き換えを行なうときには、必要なハードウェア・モジュールを、ローカル・ディスク１８又はネットワーク・ディスク２１からローカル・メモリに一旦ダウンロードして、書き換え処理を行う。論理回路１６の部分書き換え動作の手順については、後に詳解する。
【００７６】
なお、情報処理システム１０を構成するためには、図１に示した以外にも多くのハードウェア構成要素等が必要である。但し、これらは当業者には周知であり、また、本発明の要旨を構成するものではないので、本明細書中では省略している。また、図面の錯綜を回避するため、図中の各ハードウェア・ブロック間の接続も一部しか図示していない点を了承されたい。
【００７７】
次に、プログラマブル論理回路１６の内部構造について説明する。
【００７８】
図２には、プログラマブル論理回路１６の構造を論理的に図解している。同図に示すように、プログラマブル論理回路１６は、回路情報を格納するためのコンフィギュレーション・メモリ１６０と、回路素子１６４とで構成される。回路素子は、後述するように、論理セル１６１と、配線領域１６４と入出力端子１６３を含んだ集合体である。
【００７９】
また、図３には、プログラマブル論理回路１６を構成するチップ内の物理構造を模式的に示している。同図に示すように、略矩形状のチップ内１６には、数多の論理セル１６１がマトリックス状に配設されている。配線領域１６２は、各論理セル１６１間を走るように、格子状に敷設されている。チップの周辺部には、論理回路１６に対する電気信号データの入出力を行なうための数多の入出力端子１６３が列設されている。
【００８０】
コンフィギュレーション・メモリ１６０は、論理セル１６１内及び配線領域１６２内の回路情報を書き込むための記憶手段であり、ＳＲＡＭ、ＤＲＡＭなどの書き換え可能なメモリ素子で構成されている。
【００８１】
コンフィギュレーション・メモリ１６０にはアドレスが割り振られており、あるアドレスに新しい回路情報を記述したデータが格納されると、アドレスに該当する論理セル１６１内の回路構成と、論理セル１６１及び入出力端子１６３を相互に接続する配線領域１６２の接続状態が、この新しい回路情報に従って再構成される。
【００８２】
図２に示すように、プログラマブル論理回路１６に再構成されて形成された回路素子に処理すべきデータが入力されると、またその処理を実行した結果が出力されるようになっている。
【００８３】
プログラマブル論理回路１６の回路構成を再構成する一連の動作のことを、「コンフィギュレーション」と呼ぶ。本実施例に係るプログラマブル論理回路１６では、コンフィギュレーション・メモリ１６０の一部分のみを書き換えることで、プログラマブル論理回路１６が動作中であっても、回路を部分的に再構成することができる。すなわち、部分書き換え機能を提供している。
【００８４】
図４には、情報処理システム１０が複数の処理モジュールからなる一連の処理を実行する仕組みを模式的に示している。但し、一連の処理は、プログラム言語で記述されたプログラム、すなわちアプリケーション・プログラム１００の形態で情報処理システム１０に供給されている（例えば、ハード・ディスク装置１８内に導入されている）ものとする。図４に記載のプログラム１００は、各処理モジュールがプログラム言語で記述されたソフトウェア・モジュールで構成されるプログラム形態で一連の処理を受容するプログラム受容手段である。
【００８５】
アプリケーション・プログラム１００は、実行する一連の処理を複数個の処理に分割可能であり、分割された各処理毎に１つのモジュールを形成している。このモジュールのことを、本明細書中では「処理モジュール」と呼んでいる。
【００８６】
アプリケーション・プログラム１００を構成する各処理モジュールは、原初的には、ＣＰＵ１１において処理が実行可能な形式、すなわち、プログラム言語で記述されたソフトウェア・プログラムである。処理モジュール単位のソフトウェア・プログラムのことを、本明細書では「ソフトウェア・モジュール」と呼ぶ。言い換えれば、アプリケーション・プログラム１００は、複数のソフトウェア・モジュールの集合体であると言える。
【００８７】
各ソフトウェア・モジュールが行なうのと同じ処理を、プログラマブル論理回路１６上に構成したハードウェアとして実行することもできる。プログラマブル論理回路１６によるハードウェア処理は、一般に、対応するソフトウェア処理よりも高速である。
【００８８】
ソフトウェア・モジュールに対応したハードウェアをプログラム論理回路１６上に再構成するための回路情報を記述した単位モジュールのことを、本明細書では「ハードウェア・モジュール」と呼んでいる。図４中の記憶装置２００には、アプリケーション・プログラム１００を構成する各ソフトウェア・モジュールと同じ処理を実現するハードウェア・モジュールが蓄積されている。但し、記憶装置２００の実体は、図１中で示したローカル・ディスク１８やネットワーク・ディスク２１であると把握されたい。
【００８９】
ここで、アプリケーション・プログラム１００の構造についてもう少し詳しく言及する。
【００９０】
図５には、アプリケーション・プログラム１００の構成を模式的に示している。同図に示すように、アプリケーション・プログラム１００は、ヘッダ部と本体部からなる。
【００９１】
本体部は、前述したように、複数個のソフトウェア・モジュールの集合で構成されている。ヘッダ部には、各ソフトウェア・モジュールに対応するハードウェア・モジュールの各々についての識別符号が記述されている。
【００９２】
本実施例では、ハードウェア・モジュールは、対応するソフトウェア・モジュールと同じ処理をプログラマブル論理回路１６上に再構成するための回路情報だけでなく、その回路情報をプログラマブル論理回路１６上に再構成したときに占有するセル領域の形状を記述している。ここで、ハードウェア・モジュールの形状は、占有するセル領域を完全に包含する矩形として表現される。したがって、形状は、その矩形が持つ水平及び垂直の各方向のＰＦＵ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｆｕｎｃｔｉｏｎ  Ｕｎｉｔ）数すなわちセル数によって定義されるので、少量のデータで済む。
【００９３】
各ハードウェア・モジュールの識別番号は、同じ処理を行うソフトウェア・モジュールとの対応関係が明瞭となるように、付与されることが好ましい。図４及び図５に示した例では、アプリケーション・プログラム１００上の処理実行順に従った順序番号によって、各ソフトウェア・モジュールに対応するハードウェア・モジュールの識別符号がヘッダ部に記述される。このような場合、繰り返し使用する処理モジュールに対応するハードウェア・モジュールの識別番号は、ヘッダ部において繰り返し記述されることになる。
【００９４】
また、本実施例の記憶装置２００に記憶されたハードウェア・モジュールは、同一機能を実行するがその入出力部位置を異なる形態とした複数のモジュール（例えばｎ個（ｎは１以上の整数））を１つの集合としたモジュール群として記憶している。図４に記載の例では、ハードウェア・モジュール群１〜６とあるように、例えばハードウェア・モジュール群１としてｋ種類、ハードウェア・モジュール群２にｍ種類等、それぞれ同一機能を実行するがその入出力部位置を異なる形態とした複数のモジュールが記憶されている。
【００９５】
これらの同一機能を実行するがその入出力部位置を異なる形態とした複数のモジュールは、再構成可能なハードウェアであるプログラマブル論理回路４００に同時期に形成される他のモジュールとの情報入出力用配線を最短とするモジュールを、これら複数のモジュール中から選択可能とするために用意されたものであり、この構成の詳細については後述する。
【００９６】
なお、必ずしも各ハードウェア・モジュールについて、記憶装置２００中に複数種類登録されていることは必須ではなく、例えば再構成可能なハードウェアであるプログラマブル論理回路全体を使用して構成されるハードウェア・モジュールであれば、プログラマブル論理回路に同時に形成される他のモジュールとの情報伝達の必要がないので、１つのモジュールパターンが形成されればよい。
【００９７】
再び図４に戻って、情報処理システム１０上でアプリケーション・プログラム１００を実行する仕組みについての説明を継続する。
【００９８】
ハードウェア・モジュール取得手段３００と、実行モジュール決定手段６００は、処理モジュールをハードウェア・モジュールとして実行する動作に深く関与している。これらの手段３００及び６００は、例えば、情報処理システム１０上に導入されたＯＳの機能の一部、という形態で実装することができる。
【００９９】
ハードウェア・モジュール取得手段３００は、アプリケーション・プログラム１００のヘッダ部に記述されている識別符号を用いて、ソフトウェア・モジュールが実行する処理と同じ処理を実行するハードウェア・モジュールを記憶装置２００から取得する。そして、ハードウェア・モジュール取得手段３００は、取得したハードウェア・モジュールを実現した回路をプログラマブル論理回路１６上に再構成する。
【０１００】
図４に示すように、ハードウェア・モジュール取得手段３００は、取得要求送出手段３１０と、取得再構成手段３２０とで構成される。ハードウェア・モジュールを記録装置２００から取得するとき、取得要求送出手段３１０は、必要な全てのハードウェア・モジュールの取得要求を行う。
【０１０１】
実行モジュールをＣＰＵ１１によるソフトウェア・モジュールとするか、又は、プログラマブル論理回路１６によるハードウェア・モジュールとするかを、プログラムの実行時に決定することもできる。この場合には、取得要求送出手段３１０は、アプリケーション・プログラム１００のヘッダ部に記述されている全てのハードウェア・モジュールの識別符号を含むハードウェア・モジュール取得要求を送出する。
【０１０２】
また、実行モジュールの決定をプログラム１００の実行前に行うこともできる。この場合には、取得要求送出手段３１０は、ハードウェア・モジュール処理により実行すると決定されたハードウェア・モジュールの識別符号を含むハードウェア・モジュール取得要求を送出する。
【０１０３】
ハードウェア・モジュール取得手段３００内の取得再構成手段３２０は、記憶手段２００から取得したハードウェア・モジュールの情報を、それに付加されている識別符号により認識し、システム１０内に未だ取り込んでいないハードウェア・モジュールであることを確認した後に、プログラマブル論理回路１６上にそのハードウェア・モジュールを実現した回路を再構成する。
【０１０４】
このとき、プログラマブル論理回路１６上に新たに形成するハードウェア・モジュール（例えばモジュールＣ）として、同一機能を実行するがその入出力部位置を異なる形態とした複数のモジュール（Ｃ−ａ〜ｈ）が記憶装置２００に登録されている場合は、プログラマブル論理回路１６上にすでに形成された別のハードウェア・モジュール（例えばモジュールＡ，Ｂ）との情報入出力位置関係に応じて、入出力部配線距離が最短のものをモジュール群（Ｃ−ａ〜ｈ）中から選択する。また、再構成したハードウェア・モジュールの識別符号（例えばＣ−ｃ）を識別符号記録手段８００に記録するとともに、システム１０内の記憶装置２００（例えば、ハード・ディスク装置１８や主記憶メモリ１２）に、そのハードウェア・モジュールの情報を格納する。これらのモジュール選択処理についてはさらに後述する。
【０１０５】
他方、アプリケーション・プログラム１００のソフトウェア・モジュールによるソフトウェア処理は、ＣＰＵ１１が実行する。
【０１０６】
実際のアプリケーション・プログラム１００の処理においては、実行モジュール決定手段６００が、ハードウェア又はソフトウェアのどちらのモジュールで行うかを各処理モジュール毎に決定し、実行する。
【０１０７】
図４では示していないが、実行モジュール決定手段６００に選択条件設定手段を設けてもよい。選択条件設定手段は、ソフトウェア・モジュール及びハードウェア・モジュールの各々による処理時間、メモリ消費量、プログラマブル論理回路１６の再構成時間などの種々の選択条件項目を予め想定しておき、その１つあるいは複数の条件項目の組み合わせからなる実行モジュール選択条件を設定する。実行モジュール決定手段６００は、選択条件を評価することによって、実行モジュールを適切に決定することができる。
【０１０８】
図６は本実施例をより具体的に説明するための図である。本実施例では、処理Ａ、処理Ｂ、処理ＣをＡ、Ｂ、Ｃ、の順に２回繰り返す、すなわち、Ａ→Ｂ→Ｃ→Ａ→Ｂ→Ｃのシーケンスで、プログラマブル論理回路上へハードウェア・モジュールをコンフィギュレーションし、それぞれの処理をコンフィギュレーションされた回路上で順に行っていくことを考える。
【０１０９】
図６のハードウェア・モジュール（Ａ）、（Ｂ）、（Ｃ）の黒い四角はそれぞれ、各モジュールの入出力部を示している。ここでは簡単のため、それぞれのモジュールの形状を矩形形状とし、また各モジュールは他のモジュールに対して一つの入出力部を持つものとして話を進める。
【０１１０】
各ハードウェア・モジュールが格納されている記憶部には、図６の下部に示すように、処理Ｃに必要なハードウェア・モジュールのうち、機能が同じで入出力部の位置が異なっている（Ｃ−ａ）、（Ｃ−ｂ）、（Ｃ−ｃ）、（Ｃ−ｄ）、（Ｃ−ｅ）、（Ｃ−ｆ）、（Ｃ−ｇ）、（Ｃ−ｈ）の複数のモジュールデータがハードウェア・モジュール群として格納されている。
【０１１１】
図６に示すようにこの中でハードウェア・モジュール（Ａ）及びハードウェア・モジュール（Ｂ）の入出力部と最も最短距離で接続可能なハードウェア・モジュールは（Ｃ−ｃ）であり、構成モジュールとしてモジュール（Ｃ−ｃ）が選択される。
【０１１２】
次に、図６に示すような処理モジュールＡ，Ｂ，Ｃから成るハードウェア・モジュールによって処理を実行する手順について詳解する。図７には、この手順をフローチャートの形式で示している。以下、このフローチャートの各ステップについて説明する。
【０１１３】
但し、処理が実行されるアプリケーション・プログラム１００は、ハードウェア・モジュールとして実行される３つの処理モジュールＡ，Ｂ，及びＣを含み、且つ、Ａ→Ｂ→Ｃ→Ａ→Ｂ→Ｃという順番で各処理モジュールが実行されることとする。
【０１１４】
既に述べたように、ハードウェア・モジュール取得手段３００と、実行モジュール決定手段６００は、情報処理システム１０上で動作するＯＳにおける各１つの機能、すなわちソフトウェア的に実装されている。したがって、この動作は、アプリケーション・プログラム１００の開始に応答して、ＯＳによって処理が実行される。
【０１１５】
アプリケーション・プログラム１００が開始されると、プログラム１００内のヘッダ部に記述されているハードウェア・モジュールの識別符号（図５を参照のこと）が読み込まれる（ステップＳ１１）。既に述べたように、識別符号は、各ソフトウェア・モジュールと同じ処理をプログラマブル論理回路１６上に再構成する回路情報と、再構成されたハードウェア・モジュールの形状に関する情報を含んでいる。
【０１１６】
ここで、ハードウェア・モジュールの形状は、ハードウェア・モジュールをプログラマブル論理回路１６上に再構成して占有するセル領域を完全に包含する矩形で表現することとし、したがって、矩形が持つ水平及び垂直の各方向のセル（ＰＦＵ）数によって定義されている。
【０１１７】
予定された順序に従って各処理モジュールを逐次実行するという形式で、アプリケーション・プログラム１００の実行が進行する。そして、ハードウェア・モジュールによる処理部分に到達すると、必要なハードウェア・モジュールがプログラマブル論理回路１６上にコンフィギュレーションされていく。図７の破線で囲んだ部分がこれに相当する。
【０１１８】
本実施例では、アプリケーション・プログラム１００は、ハードウェア・モジュールとして実行すべきと決定されている処理モジュールとして、Ａ，Ｂ，Ｃという３つを含み、且つ、処理モジュールの実行順序はＡ→Ｂ→Ｃ→Ａ→Ｂ→Ｃと指定されている。
【０１１９】
まず、ステップＳ１２において、処理Ａを実現するハードウェア・モジュール（Ａ）が、プログラマブル論理回路１６上にコンフィギュレーションされる。次いで、ステップＳ１３において、処理Ａが開始される。
【０１２０】
上述のステップＳ１２における処理Ａのモジュールのコンフィギュレーションの終了と同時にハードウェア取得手段３００は、記憶手段２００から、次の処理Ｂに必要なハードウェア・モジュール（Ｂ）の取得を試みる。処理Ｂに必要なハードウェア・モジュール（Ｂ）がプログラマブル論理回路上へコンフィギュレーションされる（Ｓ２３）。処理Ａが終了すると、ハードウェア・モジュール（Ｂ）のコンフィギュレーションが終了したかどうかを確認して（Ｓ１４）、終了している場合は処理Ｂを実行する（Ｓ１５）。
【０１２１】
ハードウェア・モジュール（Ｂ）のコンフィギュレーションが終了すると同時にハードウェア取得手段３００は、記憶手段２００から、次の処理Ｃに必要なハードウェア・モジュール（Ｃ）の取得を試みて、処理Ｃに必要なハードウェア・モジュール（Ｃ）をコンフィギュレーションする。ここで、各ハードウェア・モジュールが格納されている記憶手段２００には、処理Ｃに必要なハードウェア・モジュールとして、機能が同じで入出力部の位置が異なっている（Ｃ−ａ）、（Ｃ−ｂ）、（Ｃ−ｃ）、（Ｃ−ｄ）、（Ｃ−ｅ）、（Ｃ−ｆ）、（Ｃ−ｇ）、（Ｃ−ｈ）の複数種類を格納している。
【０１２２】
ハードウェア・モジュール取得手段３００は、このモジュール群の中でハードウェア・モジュール（Ａ）及びハードウェア・モジュール（Ｂ）の入出力部と最も最短距離で接続可能なハードウェア・モジュールを選択する（Ｓ２４）。この時点で、すでにプログラム論理回路上に形成されているハードウェア・モジュール（Ａ，Ｂ）の識別符号に含まれる回路情報に基づいて、記憶装置２００中のモジュールＣに関するモジュール群、すなわち機能が同じで入出力部の位置が異なっている（Ｃ−ａ）、（Ｃ−ｂ）、（Ｃ−ｃ）、（Ｃ−ｄ）、（Ｃ−ｅ）、（Ｃ−ｆ）、（Ｃ−ｇ）、（Ｃ−ｈ）から、ハードウェア・モジュール（Ａ）及びハードウェア・モジュール（Ｂ）の入出力部と最も最短距離で接続可能なハードウェア・モジュールを選択する。このモジュールは図６で示すように（Ｃ−ｃ）であるので、このモジュール（Ｃ−ｃ）を構成モジュールとして選択する。
【０１２３】
次に、ステップＳ２５において、選択されたハードウェア・モジュール（Ｃ−ｃ）をプログラマブル論理回路上へコンフィギュレーションする。処理Ｂが終了すると、処理Ｃに必要なハードウェア・モジュール（Ｃ−ｃ）がコンフィギュレーションされたかどうかを確認して（Ｓ１６）、コンフィギュレーションされていれば処理Ｃを実行する（Ｓ１７）。処理Ｃが終了すると、この処理が１回目の処理であるかどうかを確認し（Ｓ１８）、１回目であれば、処理Ａの実行（Ｓ１３）に戻り、そうでなければハードウェア・モジュールでの処理を終了する。
【０１２４】
図８（ａ）及び（ｂ）に、本実施例及び従来例におけるハードウェア・モジュール（Ｃ）をプログラマブル論理回路上へコンフィギュレーションした場合の入出力部の接続状況の比較図を概念的に示す。本発明のコンフィギュレーション例が（ａ）図であり、従来のコンフィギュレーション例が（ｂ）図である。ここでは、従来例では、図６に示すハードウェア・モジュール（Ｃ−ｇ）のパターンのみが構成可能であると想定する。
【０１２５】
図８（ａ）におけるハードウェア・モジュール（Ｃ−ｃ）とハードウェア・モジュール（Ａ）及びハードウェア・モジュール（Ｂ）との間の入出力部を接続する配線群と比較して、図８（ｂ）におけるハードウェア・モジュール（Ｃ−ｇ）とハードウェア・モジュール（Ａ）及びハードウェア・モジュール（Ｂ）との間の入出力部を接続する配線群は、ハードウェア・モジュール（Ｃ−ｇ）の入出力部の位置がプログラマブル論理回路上でハードウェア・モジュール（Ａ）及びハードウェア・モジュール（Ｂ）の入出力部位置近傍の辺上に配置されていないため、配線距離が長くなってしまい、これに伴う配線遅延が生じてしまう。
【０１２６】
図８に示す態様で、本実施例及び従来例におけるハードウェア・モジュール（Ｃ）をプログラマブル論理回路上へコンフィギュレーションした場合の入出力部の配線遅延について図９を用いて説明する。
【０１２７】
図９には、本実施例に従って処理Ａ→処理Ｂ→処理Ｃ→処理Ａ→処理Ｂ→処理Ｃの順で各ハードウェア・モジュールが実行される処理フローを、従来例と比較しながら、時系列的に表示している。すなわち、同図の（ａ）が本実施例であり、同図（ｂ）が従来例である。
【０１２８】
図９において、ｔＡ、ｔＢ、ｔＣはハードウェア・モジュール（Ａ）、ハードウェア・モジュール（Ｂ）、ハードウェア・モジュール（Ｃ）のプログラマブル論理回路上へのコンフィギュレーション時間を示す。ＴＡ、ＴＢ、ＴＣは処理Ａ、処理Ｂ、処理Ｃの処理時間を示す。ＴＡＢ、ＴＢＣ、ＴＣＡはそれぞれハードウェア・モジュール（Ａ）からハードウェア・モジュール（Ｂ）、ハードウェア・モジュール（Ｂ）からハードウェア・モジュール（Ｃ）、ハードウェア・モジュール（Ｃ）からハードウェア・モジュール（Ａ）へ、各モジュールの入出力部間を接続する配線群を介した信号伝達時間を示す。
【０１２９】
以下、時系列に従って図９について説明する。
【０１３０】
まず、本実施例における処理フローについて言及する。時刻ｔ０において、処理Ａに必要なハードウェア・モジュール（Ａ）のコンフィギュレーションが開始する。次いで、時刻ｔ１において、ハードウェア・モジュール（Ａ）のコンフィギュレーションが終了すると、処理Ｂに必要なハードウェア・モジュール（Ｂ）のコンフィギュレーションが開始される。また、これと同時に、ハードウェア・モジュール（Ａ）によって処理Ａが開始される。
【０１３１】
時刻ｔ２において、ハードウェア・モジュール（Ｂ）のコンフィギュレーションが終了すると、処理Ｃに必要なハードウェア・モジュールのうち、ハードウェア・モジュール群からすでに構成済みのハードウェア・モジュール（Ａ）とハードウェア・モジュール（Ｂ）に対して、配線遅延が最小となる構成、すなわちハードウェア・モジュール（Ａ）とハードウェア・モジュール（Ｂ）の入出力部と最短距離で接続可能なモジュール（Ｃ−ｃ）を選択的に取得して、コンフィギュレーションを開始する。
【０１３２】
時刻ｔ３において、処理Ａが終了すると、ハードウェア・モジュール（Ａ）からハードウェア・モジュール（Ｂ）へ、各モジュールの入出力部間を接続する配線群を介した信号伝達が行われる。この信号伝達に要する時間は、ＴＡＢである。ハードウェア・モジュール（Ａ）からハードウェア・モジュール（Ｂ）へのデータ入力が終了すると、時刻ｔ４において、ハードウェア・モジュール（Ｂ）を用いて処理Ｂが開始する。時刻ｔ５は、モジュール（Ｃ−ｃ）のコンフィギュレーション終了時刻である。
【０１３３】
さらに、プログラマブル論理回路１６上にコンフィギュレーションされたハードウェア・モジュール（Ｂ）を用いた処理Ｂの終了とともに、ハードウェア・モジュール（Ｂ）からハードウェア・モジュール（Ｃ−ｃ）へ、各モジュールの入出力部間を接続する配線群を介した信号伝達が行われる。この信号伝達に要する時間は、ＴＢＣである。本発明の構成では、ハードウェア・モジュール（Ｂ）からハードウェア・モジュール（Ｃ−ｃ）へは最短距離の入出力配線構成が実現されているので、この信号伝達に要する時間：ＴＢＣは非常に短時間で終了する。
【０１３４】
さらに、プログラマブル論理回路１６上にコンフィギュレーションされたハードウェア・モジュール（Ｃ−ｃ）を用いた処理Ｃの終了とともに、ハードウェア・モジュール（Ｃ−ｃ）からハードウェア・モジュール（Ａ）へ、各モジュールの入出力部間を接続する配線群を介した信号伝達が行われる。この信号伝達に要する時間は、ＴＣＡである。本発明の構成では、ハードウェア・モジュール（Ｃ）からハードウェア・モジュール（Ａ）へは最短距離の入出力配線構成が実現されているので、この信号伝達に要する時間：ＴＣＡは短時間で終了する。
【０１３５】
以降、同様の処理Ａ，Ｂ，Ｃが各処理間にデータ入出力処理、ＴＡＢ，ＴＢＣを介して実行される。
【０１３６】
次に、従来例における処理フローについて言及する。時刻ｔ０において、処理Ａに必要なハードウェア・モジュール（Ａ）のコンフィギュレーションが開始する。次いで、時刻ｔ１において、ハードウェア・モジュール（Ａ）のコンフィギュレーションが終了すると、処理Ｂに必要なハードウェア・モジュール（Ｂ）のコンフィギュレーションが開始される。同時にハードウェア・モジュール（Ａ）によって処理Ａが開始される。
【０１３７】
時刻ｔ２において、ハードウェア・モジュール（Ｂ）のコンフィギュレーションが終了すると、処理Ｂの次に実行される処理Ｃに必要なハードウェア・モジュールをプログラマブル論理回路１６上にコンフィギュレーションする。しかしながら、従来例では、処理Ｃを実行するハードウェア・モジュールとして（Ｃ−ｇ）のみしか記憶装置には記憶されておらず、図８（ｂ）に示す入出力部位置を持つハードウェア・モジュール（Ｃ−ｇ）が構成されることになる。
【０１３８】
時刻ｔ３において、処理Ａが終了すると、ハードウェア・モジュール（Ａ）からハードウェア・モジュール（Ｂ）へ、各モジュールの入出力部間を接続する配線群を介した信号伝達が行われる。この信号伝達に要する時間は、ＴＡＢである。ハードウェア・モジュール（Ａ）からハードウェア・モジュール（Ｂ）へのデータ入力が終了すると、時刻ｔ４において、ハードウェア・モジュール（Ｂ）を用いて処理Ｂが開始する。時刻ｔ５は、モジュール（Ｃ−ｇ）のコンフィギュレーション終了時刻である。
【０１３９】
さらに、プログラマブル論理回路１６上にコンフィギュレーションされたハードウェア・モジュール（Ｂ）を用いた処理Ｂの終了とともに、ハードウェア・モジュール（Ｂ）からハードウェア・モジュール（Ｃ−ｇ）へ、各モジュールの入出力部間を接続する配線群を介した信号伝達が行われる。この信号伝達に要する時間は、ＴＢＣである。従来例の構成では、ハードウェア・モジュール（Ｂ）からハードウェア・モジュール（Ｃ−ｇ）へは図８（ｂ）から理解されるように、本発明の構成（図８（ａ））に比較して長い入出力配線構成となっているので、この信号伝達に要する時間：ＴＢＣは本発明の構成（モジュール（Ｃ−ｃ）を構成した場合）に比較して長い時間となる。
【０１４０】
さらに、プログラマブル論理回路１６上にコンフィギュレーションされたハードウェア・モジュール（Ｃ−ｇ）を用いた処理Ｃの終了とともに、ハードウェア・モジュール（Ｃ−ｇ）からハードウェア・モジュール（Ａ）へ、各モジュールの入出力部間を接続する配線群を介した信号伝達が行われる。この信号伝達に要する時間は、ＴＣＡである。従来例の構成では、ハードウェア・モジュール（Ｃ−ｇ）からハードウェア・モジュール（Ａ）へは図８（ｂ）から理解されるように、本発明の構成（図８（ａ））に比較して長い入出力配線構成となっているので、この信号伝達に要する時間：ＴＣＡは本発明の構成に比較して長い時間を要することになる。
【０１４１】
以降、同様の処理Ａ，Ｂ，Ｃが各処理間にデータ入出力処理、ＴＡＢ，ＴＢＣを介して実行される。
【０１４２】
アプリケーションが開始されてから一連の処理が終了するまでの流れは図７のフローチャートを用いて前述した通りであるが、ここで、ハードウェア・モジュール（Ｂ）とハードウェア・モジュール（Ｃ）、及びハードウェア・モジュール（Ｃ）とハードウェア・モジュール（Ａ）の間の本実施例と従来例の配線遅延差をＴ’ＢＣ、Ｔ’ＣＡとすると、それぞれ、
Ｔ’ＢＣ＝ｔ８−ｔ７、
Ｔ’ＣＡ＝（ｔ１２−ｔ１１）−（ｔ１０−ｔ９）
である。
【０１４３】
従って、Ａ→Ｂ→Ｃ→Ａ→Ｂ→Ｃのシーケンスで処理を行うと、本発明では従来例より配線遅延によって生じる全体の処理時間増大を（２Ｔ’ＢＣ＋Ｔ’ＣＡ）減少させることが可能となる。
【０１４４】
本実施例では処理シーケンスの繰り返し数を２回としたが、従来例において配線遅延が生じる部分の繰り返し処理数が多くなればなるほど、本発明の効果は大きくなる。例えば、本実施例において繰り返し数を２回ではなく、Ｍ回（Ｍ：自然数）とすると、その効果として（ＭＴ’ＢＣ＋（Ｍ−１）Ｔ’ＣＡ）だけ配線遅延によって生じる全体の処理時間増大を減少させることが可能となる。
【０１４５】
なお、本実施例では簡単のため、各ハードウェア・モジュールを矩形形状として考えたが、実際には様々な形状が考えられるものであり、コンフィギュレーションされるハードウェア・モジュールの外枠の形状に応じて入出力部を配置することが可能であることはいうまでもない。
【０１４６】
また、本実施例では入出力部を一つのハードウェア・モジュールについて一つとして話を進めたが、実際には複数の入出力部がハードウェア・モジュール上に存在することも多々あり、その数に応じて必要な数だけ入出力部を設けることが可能であることはいうまでもない。
【０１４７】
また、本実施例では処理Ｃに必要なハードウェア・モジュールとして（Ｃ−ａ）、（Ｃ−ｂ）、（Ｃ−ｃ）、（Ｃ−ｄ）、（Ｃ−ｅ）、（Ｃ−ｆ）、（Ｃ−ｇ）、（Ｃ−ｈ）の８つをそれぞれ入出力部を異なった位置に配置したハードウェア・モジュールとして記憶部に格納したが、これは記憶部の容量、考えられるハードウェア・モジュールの種類、あるいは特に使用する可能性が高いハードウェア・モジュールなど、その状況に応じて格納する数、種類などを変えられることはいうまでもない。
【０１４８】
次に、プログラマブル論理回路４００上に先に構成されたモジュール（Ａ）に後続して構成される処理モジュールについて、それぞれ入出力部の異なるモジュールを記憶装置２００に蓄積して、最も配線遅延の小さいモジュールを順次選択してプログラマブル論理回路４００上に構成する態様についてその処理フローを説明する。
【０１４９】
図１０には、この手順をフローチャートの形式で示している。以下、このフローチャートの各ステップについて説明する。
【０１５０】
処理が実行されるアプリケーション・プログラム１００は、ハードウェア・モジュールとして実行される３つの処理モジュールＡ，Ｂ，及びＣを含み、且つ、Ａ→Ｂ→Ｃ→Ａ→Ｂ→Ｃという順番で各処理モジュールが実行されることとする。
【０１５１】
既に述べたように、ハードウェア・モジュール取得手段３００と、実行モジュール決定手段６００は、情報処理システム１０上で動作するＯＳにおける各１つの機能、すなわちソフトウェア的に実装されている。したがって、この動作は、アプリケーション・プログラム１００の開始に応答して、ＯＳによって処理が実行される。
【０１５２】
アプリケーション・プログラム１００が開始されると、プログラム１００内のヘッダ部に記述されているハードウェア・モジュールの識別符号（図５を参照のこと）が読み込まれる（ステップＳ３１）。既に述べたように、識別符号は、各ソフトウェア・モジュールと同じ処理をプログラマブル論理回路１６上に再構成する回路情報と、再構成されたハードウェア・モジュールの形状に関する情報を含んでいる。
【０１５３】
ここで、ハードウェア・モジュールの形状は、ハードウェア・モジュールをプログラマブル論理回路１６上に再構成して占有するセル領域を完全に包含する矩形で表現することとし、したがって、矩形が持つ水平及び垂直の各方向のセル（ＰＦＵ）数によって定義されている。
【０１５４】
予定された順序に従って各処理モジュールを逐次実行するという形式で、アプリケーション・プログラム１００の実行が進行する。そして、ハードウェア・モジュールによる処理部分に到達すると、必要なハードウェア・モジュールがプログラマブル論理回路１６上にコンフィギュレーションされていく。図１０の破線で囲んだ部分がこれに相当する。
【０１５５】
本実施例では、アプリケーション・プログラム１００は、ハードウェア・モジュールとして実行すべきと決定されている処理モジュールとして、Ａ，Ｂ，Ｃという３つを含み、且つ、処理モジュールの実行順序はＡ→Ｂ→Ｃ→Ａ→Ｂ→Ｃと指定されている。
【０１５６】
まず、ステップＳ３２において、処理Ａを実現するハードウェア・モジュール（Ａ）が、プログラマブル論理回路１６上にコンフィギュレーションされる。次いで、ステップＳ３３において、処理Ａが開始される。
【０１５７】
上述の処理Ａのモジュールのコンフィギュレーションの終了と同時にハードウェア取得手段３００は、記憶手段２００から、次の処理Ｂに必要なハードウェア・モジュール（Ｂ）の取得を試みる。処理Ｂに必要なハードウェア・モジュール（Ｂ）がプログラマブル論理回路上へコンフィギュレーションする。ここで、各ハードウェア・モジュールが格納されている記憶手段２００には、処理Ｂに必要なハードウェア・モジュールとして、機能が同じで入出力部の位置が異なっている（Ｂ−１）〜（Ｂ−ｎ）の複数のモジュール群が１つの集合として処理Ｂに必要なハードウェア・モジュールの対象として格納されている。
【０１５８】
この中でハードウェア・モジュール（Ａ）の入出力部と最短距離で接続可能なハードウェア・モジュールとして（Ｂ−ｉ）が選択され（Ｓ４１）、コンフィギュレーションが実行される（Ｓ４２）。
【０１５９】
処理Ａが終了すると、ハードウェア・モジュール（Ｂ）のコンフィギュレーションが終了したかどうかを確認して（Ｓ３４）、終了している場合は処理Ｂを実行する（Ｓ３５）。
【０１６０】
ハードウェア・モジュール（Ｂ−ｉ）のコンフィギュレーションが終了すると同時にハードウェア取得手段３００は、記憶手段２００から、次の処理Ｃに必要なハードウェア・モジュール（Ｃ）の取得を試みて、処理Ｃに必要なハードウェア・モジュール（Ｃ）をコンフィギュレーションする。ここで、各ハードウェア・モジュールが格納されている記憶手段２００には、処理Ｃに必要なハードウェア・モジュールとして、機能が同じで入出力部の位置が異なっている（Ｃ−１）〜（Ｃ−ｎ）の複数種類を１つの集合として処理Ｃに必要なハードウェア・モジュールの対象として格納している。
【０１６１】
この中でハードウェア・モジュール（Ａ）及びハードウェア・モジュール（Ｂ）の入出力部と最短距離で接続可能なハードウェア・モジュールとして（Ｃ−ｉ）が選択され（Ｓ４３）コンフィギュレーションが実行される（Ｓ４４）。
【０１６２】
処理Ｂが終了すると、処理Ｃに必要なハードウェア・モジュール（Ｃ）がコンフィギュレーションされたかどうかを確認して（Ｓ３６）、コンフィギュレーションされていれば処理Ｃを実行する（Ｓ３７）。処理Ｃが終了すると、この処理が１回目の処理であるかどうかを確認し（Ｓ３８）、１回目であれば、処理Ａの実行（Ｓ３３）に戻り、そうでなければハードウェア・モジュールでの処理を終了する。
【０１６３】
この実施態様ではＡ→Ｂ→Ｃ→Ａ→Ｂ→Ｃの処理態様について説明したが、さらにＡ→Ｂ→Ｃ→Ｄ→Ａ→Ｂ→Ｃ→Ｄの態様、あるいは、Ａ→Ｂ→Ｃ→Ｂ→Ｃ→Ｄのような態様と様々な処理態様である場合にも、それぞれプログラマブル論理回路上に先に構成されたハードウェア・モジュールに遅れて構成されるハードウェア・モジュールの各々について、先に構成されたモジュールとの入出力位置を最短とするモジュールを選択する構成とすることによって、前述の図９で説明した信号伝達に要する時間、例えばＴＡＢ、ＴＣＡ等、より一般的にはモジュールＸとモジュールＹとの間の信号伝達に要する時間ＴＸＹを短縮することが可能となり、その結果として全体の処理時間を短縮化することができる、優れた情報処理システムを提供することができる。
【０１６４】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１６５】
【発明の効果】
以上詳記したように、本発明によれば、論理回路を記述した回路情報に従って所望の論理を再構成可能なプログラマブル論理回路を含んだタイプの、優れた情報処理システムを提供することができる。
【０１６６】
また、本発明によれば、プログラム言語で処理を記述された複数の処理モジュールで構成される一連の処理の少なくとも一部を部分書き換え可能なプログラマブル論理回路上で再構成したハードウェア回路に置き換えて実行するタイプの、優れた情報処理システムを提供することができる。
【０１６７】
また、本発明によれば、各処理モジュールをソフトウェア・モジュール又はハードウェア・モジュールのいずれで実行すべきかを決定して処理するタイプの、優れた情報処理システムを提供することができる。
【０１６８】
また、本発明によれば、プログラム論理回路の異なるモジュール間のデータ入出力に要する時間を減少して処理モジュール全体の処理時間を短縮化することができる、優れた情報処理システムを提供することができる。
【０１６９】
また、本発明によれば、プログラマブル・デバイス上に構成するハードウェア・モジュールを機能が同じで入出力部の位置が異なる態様の複数モジュールを選択して構成可能としたので、モジュール間の配線遅延を減少することができ、また、その結果として全体の処理時間を短縮化することができ、優れた情報処理システムを提供することができる。
【図面の簡単な説明】
【図１】本発明を実現するのに適した情報処理システム１０のハードウェア構成を模式的に示した図である。
【図２】プログラマブル論理回路１６の構造を論理的に図解したものである。
【図３】プログラマブル論理回路１６の物理構造を模式的に示した図である。
【図４】情報処理システム１０が複数の処理モジュールからなる一連の処理を実行する様子を模式的に示した図である（但し、一連の処理は、プログラム言語で記述された各処理モジュールで構成されるプログラムの形態で、システム１０に供給されているものとする）。
【図５】一連の処理を構成するアプリケーション・プログラムの構成を模式的に示した図である。
【図６】ハードウェア・モジュールの入出力部位置関係を模式的に示した図である。
【図７】ハードウェア・モジュールによって処理モジュールを実行する手順を示したフローチャート（その１）である。
【図８】入出力部位置が異なるが同じ処理を実行する複数のハードウェア・モジュールの中から最適なものを選択してプログラマブル論理回路１６上に再構成した本発明の構成を従来例と対比して示した図である。
【図９】本実施例に従って処理Ａ→処理Ｂ→処理Ｃ→処理Ａ→処理Ｂ→処理Ｃの順で各ハードウェア・モジュールが実行される処理フローを、従来例と比較しながら、時系列的に表示した図である。
【図１０】ハードウェア・モジュールによって処理モジュールを実行する手順を示したフローチャート（その２）である。
【図１１】特開平９−７４５５６号公報に開示された画像再生装置の構成を模式的に示した図である。
【図１２】特開平６−３０１５２２号公報に開示された計算機システムの構成を模式的に示した図である。
【符号の説明】
１０  情報処理システム
１１  ＣＰＵ
１１Ｂ  ホストバス
１２  主記憶メモリ
１３  チップセット
１４  ＰＣＩバス
１５  プログラマブル論理回路インターフェース
１６  プログラマブル論理回路
１７  ハードディスクインターフェース
１８  ハードディスクドライブ
１９  通信インターフェース
２０  ネットワーク
２１  記憶装置
１００  プログラム
１６１  論理セル
１６２  配線領域
１６３  入出力端子
２００  記憶装置
３００ハードウェア・モジュール取得手段
３１０  取得要求送出手段
３２０  取得再構成手段
４００  プログラマブル論理回路
５００  ＣＰＵ
６００  実行モジュール決定手段
８００  識別符号記録手段
【図１】
0003678270.tif 000002
【図２】
0003678270.tif 000003
【図３】
0003678270.tif 000004
【図４】
0003678270.tif 000005
【図５】
0003678270.tif 000006
【図６】
0003678270.tif 000007
【図７】
0003678270.tif 000008
【図８】
0003678270.tif 000009
【図９】
0003678270.tif 000010
【図１０】
0003678270.tif 000011
【図１１】
0003678270.tif 000012
【図１２】
0003678270.tif 000013