JP3684901B2 - 情報処理システム - Google Patents
情報処理システム Download PDFInfo
- Publication number
- JP3684901B2 JP3684901B2 JP05413799A JP5413799A JP3684901B2 JP 3684901 B2 JP3684901 B2 JP 3684901B2 JP 05413799 A JP05413799 A JP 05413799A JP 5413799 A JP5413799 A JP 5413799A JP 3684901 B2 JP3684901 B2 JP 3684901B2
- Authority
- JP
- Japan
- Prior art keywords
- hardware
- logic circuit
- hardware module
- programmable logic
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
- Microcomputers (AREA)
- Stored Programmes (AREA)
- Semiconductor Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、論理回路を記述した回路情報に従って所望の論理を再構成可能なプログラマブル論理回路を含んだ情報処理システムに係り、特に、プログラム言語で記述された複数の処理モジュールで構成される一連の処理の少なくとも一部を、部分書き換え可能なプログラマブル論理回路上で再構成したハードウェア回路に置き換えて実行するタイプの情報処理システムに関する。
【0002】
更に詳しくは、本発明は、各処理モジュールをソフトウェア・モジュール又はハードウェア・モジュールのいずれで実行すべきかを決定して処理するタイプの情報処理システムに係り、プログラム論理回路の再構成によるオーバーヘッドを減少して処理モジュール全体の処理時間を短縮化する情報処理システムに関する。
【0003】
【従来の技術】
昨今の技術革新に伴い、各種の情報処理機器が研究・開発され、広汎に普及してきている。情報処理機器は、一般に、高度な半導体技術によって集積化された半導体回路コンポーネント(LSI:Large Scale Integration)を数多含んで構成される。LSIの一部には、特定の用途のために最適設計されたカスタムIC、すなわちASIC(Application Specific Integrated Circuit)技術が採用されている。
【0004】
最近のASIC分野では、製品の開発期間を更に短縮化するために、フィールド・プログラマブル・ゲートアレイ(FPGA:Field Programmable Gate Array)や、プログラマブル・ロジック・デバイス(PLD:Programmable Logic Device)、CPLD(Complex Programmable Logic Device)などの、プログラマブル論理回路装置が広く使われ始めている。
【0005】
この種のプログラマブル論理回路装置は、論理回路を記述する回路情報を該論理回路装置内に読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができる。これによって、従来は回路設計の終了後に数週間から数か月を必要とした集積回路の作製時間を短縮することができる。特に、米国特許第4,700,187号明細書に開示されているプログラマブル論理装置は、電気的に再構成が可能な構成であり、一度作製した回路を必要に応じて自由に何度でも変更する、すなわち回路を再構成できるという利点があり、ますます広く使われるようになってきている。
【0006】
FPGAと呼ばれるプログラマブル論理回路装置は、論理ゲート間および配線間を接続するスイッチを制御するビット・ストリームを外部から書き込むことによって、所望の論理回路を再構成することのできるデバイスである。内部回路構成や論理ゲート間のスイッチ制御のデータを保持する記憶手段がデバイス内に設けられており、この記憶手段の種類により様々な動作特性のデバイスが当業界において提供されている。
【0007】
論理ゲート間または配線間のスイッチ制御のデータを保持する記憶手段としては、アンチヒューズ・タイプ、EEPROM(Electrically Erasable and Programmable Read Only Memory)タイプ、SRAM(Static Random Access Memory)タイプなどがある。
【0008】
このうち、SRAMタイプは、スイッチとなるトランジスタのゲートに揮発性メモリを接続する。書き換え可能デバイス中でSRAMメモリの占める面積は大きいが、他のタイプに比べ書き換え時間が小さく、アドレスを指定してメモリの内容を書き換えることができるので、システム動作中の論理の再構成も可能である。さらに、再構成されない部分は動作を継続するという機能を実現し、デバイス内の部分書き換えを可能にしている。
【0009】
リアルタイムに部分書き換えが可能なFPGAは、特に、DR−FPGA(Dynamically Reconfigurable Field Programmable Gate Array)と呼ばれている。DR−FPGAとしては、米国ザイリンクス社のXC6200シリーズ及びVirtexシリーズ、米国アトメル社のAT6000シリーズ及びAT40Kシリーズ、米国ルーセント・テクノロジー社のORCA3C/3Tシリーズなどが、既に市販されている。
【0010】
最近の論理回路に要求される処理の複雑さが増し、単一のプログラマブル論理回路装置だけでは実現できない規模にまで回路規模が大きくなっている。この問題を解決するための1つの方法として、処理の途中でプログラマブル論理回路装置を再度構成し直すことによって、異なる時間に異なる論理回路を実現することが考えられている。
【0011】
この方法によれば、モバイル機器のような極度に小型化された情報処理システムのように、内蔵可能な回路規模に制約がある場合でも、回路コンポーネント数を増やすことなく、様々な処理をプログラマブル論理回路によってハードウェア化して比較的高速に実行できるという利点もある。
【0012】
しかしながら、プログラマブル論理装置を再構成するときに、回路情報を再度読み込ませるための余分な時間がかかるという欠点がある。また、処理の途中で論理装置を再構成するためには、処理を一時中断し、その時点でのデータをプログラマブル論理回路装置の外部の記憶装置に一時記憶させ、新たな回路情報を読み込んで再構成し、再構成前のデータと再構成に伴う新しいデータを入力させる、という一連の余分な処理が必要になる。
【0013】
プログラマブル論理装置の再構成に伴なう上記の問題を解決するために、米国アトメル社が提供するデータブック”CONFIGURABLE LOGIC”に記載されているプログラマブル論理回路装置、及び、米国ザイリンクス社が提供するデータブック”THE PROGRAMMABLE LOGIC” (米国版)に記載されているプログラマブル論理回路装置では、再構成を行うときにデータを記憶するためのデータ記憶装置を有しており、回路の動作中でも外部の記憶装置から回路情報の一部を読み込んで部分的に再構成を行うことで、論理装置を再構成するための時間を最小限に留めている。
【0014】
ところが、このような部分的に再構成可能なプログラマブル論理回路を情報処理システムに好適に適用するには、情報処理システム上で実行する処理を、プログラマブル論理回路で行うハードウェア処理と、マイクロプロセッサなどの回路構成を変更できない固定的な論理回路装置で行うソフトウェア処理とに分離するための技術を確立する必要がある。
【0015】
このような処理の分離に関する問題を解決する方法として、プログラマブル論理回路の再構成機能を用いてアプリケーションの一部をハードウエア化する手法が幾つか提案されている。アプリケーションの一部を、汎用のプロセッサによるソフトウェア処理ではなく、プログラム論理回路装置を用いたハードウェア処理に委ねるのは、後者の方が前者よりも処理速度が速いという理由に依拠する。
【0016】
例えば、特開平9−74556号公報には、ネットワークを介してアプリケーションの一部をダウンロードする手法について記載している。すなわち、同公報では、プログラマブル論理回路を用いたアプリケーションとして、符号化した画像データと復号プログラムをネットワーク経由で受信し、ソフトウェアとプログラマブル論理回路の双方を用いて復号化して画像再生するということが考えられている。図11には、同公報に開示されている画像再生装置の概略構成を示している。以下、図11を参照しながら、この画像再生装置について説明する。
【0017】
画像再生装置は、動画像復号部を再構成するためのプログラムと符号化された動画像データをネットワーク経由でダウンロードするための受信部と、受信データがプログラムか動画像データかによって伝送先を切り換える切り換え手段と、処理系を再構成することが可能な動画像復号部と、受信したプログラムを動画像復号部の構成に変更できる形式に変換するプログラム変換部と、受信部と切り換え手段とプログラム変換部と動画像復号部の制御を行うための制御部とで構成される。
【0018】
プログラム変換部は、受信プログラムを動画像復号部の構成を変更できる形式に変換する第1プログラム部分(すなわち、ハードウエア化する部分)と動画像再生時において制御部が行う第2プログラム部分(すなわち、ソフトウエアで実行する部分)とに分割する分割部と、第1プログラム部分を動画像復号部の構成を変更できる形式に変換する第1の変換部(ハードウエア・コンパイラ)と、第2プログラム部分を制御部が解読して処理を実行できる形式に変換する第2の変換部(ソフトウエア・コンパイラ)とを備えている。
【0019】
動画像復号部は、逆量子化処理内容を変更できる逆量子化部と、逆変換処理内容を変更できる逆変換部とを備えている。逆量子化部は量子化された画像データを逆量子化し、逆変換部は変換された画像データを逆変換する。
【0020】
次に、この画像再生装置の動作手順について説明する。
【0021】
動画像再生用のプログラムと符号化された動画像データがネットワーク経由で入力されると、まず、論理記述言語で記述された再生アルゴリズム・プログラムを受信部で受信する。
【0022】
受信データはプログラム変換部に伝送され、分割部でハードウエア処理部とソフトウエア処理部とに分割される。
【0023】
ハードウエア処理部分は、第1の変換部に渡され、プログラマブル論理回路装置(FPGA)を書き換えることができる形式(ビット・ストリーム)に変換され、制御部は、このビット・ストリームに基づいて、逆量子化部と逆変換部を書き換える。
【0024】
他方、ソフトウエア処理部分は、第2の変換部に渡され、プロセッサで処理できる実行形式に変換された後、制御部に渡される。
【0025】
こうして再構成された画像再生装置に対して、動画像データがネットワーク経由で送られると、受信部で受信し、切り換え手段によって動画像復号部に伝送され、復号データとして出力する。
【0026】
上述したように逆量子化部と逆変換部をFPGAのような処理プログラムを変更可能な素子で構成したことにより、動画像復号部のハードウェアを最適な処理能力に適合させるようにしている訳である。
【0027】
また、特開平6−301522号には、回路構成を変更できない固定部とプログラマブル論理回路のように回路構成を変更できる可変部とで構成される計算機のシステム構成方法について開示している。同公報は、複数のプログラムを基に、プログラマブル論理回路上にハードウェアで構成することを提案するものである。以下、図12を用いながら、この計算機システムについて説明する。
【0028】
図12に示すように、計算機で実行するソースプログラムは、固定部の構成に関する情報と可変部が構成することができる回路の情報が格納されているライブラリを参照しながら、オブジェクト・コードとハードウェア構成データに変換される。
【0029】
すなわち、コンパイラはソース・プログラムのフロー解析を行い、関数の頻度を検出する。この検出頻度に基づいて、呼び出し回数の多い関数をハードウェアで処理する関数として決定し、ハードウェア構成データを作成して出力する。次に、ハードウェアで処理すると決めた部分を所定の可変部で処理することを示すコードを残りのソフトウェアで処理する部分に付加して、オブジェクト・コードを作成し出力する。
【0030】
計算機システムは、回路構成を変更できない固定部と、ハードウェア構成データにより構成された可変部を用いて、オブジェクト・コードに応じた処理を実行する。このようにして、コンパイル時に呼び出し回数の多い幾つかの関数をハードウェア化することにより処理全体の高速化を図っている。
【0031】
また、日経オープンシステム1997年8月号の213ページから219ページに掲載されている記事「インターネットのサーバを運用代行 ISPやVAN業者がサービスを提供へ」では、ネットワークを介して複数のサーバにアクセスするケースについて提案している。
【0032】
同記事は、ネットワークのアウトソーシングというサービスとしてインターネットやクローズドVANについて扱っている。この中で、インターネットに不可欠なサーバであるメール・サーバやネーム・サーバを始めとする各種サーバへのアクセスについて詳解している。
【0033】
サーバへのより早いアクセスを実行するために、使用するプログラム一つ一つについてアクセスを行なうよりも、全てのプログラムについて一度にアクセスを行い、最も早くアクセスできたプログラムからダウンロードする方が、全体のアクセス時間が少ないことが当業界において既に知られている。そこで、プログラムが複数のサーバに格納されているような状況では、上記のような方法に従ってプログラムへのアクセスを行い、ダウンロードすることが一般的になってきている。例えば、プログラム・データを分類、整理したり、管轄が異なっている、あるいはネットワークのトラフィック緩和、サーバの負荷軽減のために、プログラムは複数のサーバに分散して蓄積される。
【0034】
しかしながら、上記で説明した各々の従来例では、処理の一部分をプログラマブル論理回路で処理するに際して、次のような問題が残されている。
【0035】
処理の一部を実現するハードウェア・モジュールは、プログラマブル・デバイス上に再構成する、すなわちハードウェア・モジュールを物理回路として展開すると、デバイス上の所定セル数を消費するだけでなく、ある所定の形状を持つセル領域を占有する。したがって、プログラマブルなデバイス上で部分書き換えを行なうためには、ハードウェア・モジュールを書き込めるサイズ(すなわちゲート規模)の空き領域がデバイス上にあるだけでは不充分であり、空き領域がハードウェア・モジュールの形状を完全に包含できなければならない。
【0036】
たとえプログラマブル・デバイス上の空き領域のサイズ(すなわちゲート規模)がハードウェア・モジュールのサイズを上回っていたとしても、ハードウェア・モジュールを構成できるような形状に適合していなければ、部分書き換えを行なうことができない。このような場合、デバイス上の他の処理が終了して使用セル領域が解放され、新たに再構成するハードウェア・モジュールの形状に見合うだけの空き領域が確保されるまでは、再構成動作は待たされてしまう。
【0037】
この結果、再構成時間にオーバーヘッドが生じてしまう。しかも、空き領域とは形状が適合しない処理モジュールが後に続くほど、オーバーヘッドはさらに増加し、全体として処理に要する時間以外に多大な時間を消費してしまうことになる。また、プログラマブル・デバイスのこのような使用形態は、デバイスのセル資源を有効に活用しているとは言い難い。
【0038】
【発明が解決しようとする課題】
本発明の目的は、論理回路を記述した回路情報に従って所望の論理を再構成可能なプログラマブル論理回路を含んだタイプの、優れた情報処理システムを提供することにある。
【0039】
本発明の更なる目的は、プログラム言語で処理を記述された複数の処理モジュールで構成される一連の処理の少なくとも一部を部分書き換え可能なプログラマブル論理回路上で再構成したハードウェア回路に置き換えて実行するタイプの、優れた情報処理システムを提供することにある。
【0040】
本発明の更なる目的は、各処理モジュールをソフトウェア・モジュール又はハードウェア・モジュールのいずれで実行すべきかを決定して処理するタイプの、優れた情報処理システムを提供することにある。
【0041】
本発明の更なる目的は、プログラム論理回路の再構成によるオーバーヘッドを減少して処理モジュール全体の処理時間を短縮化することができる、優れた情報処理システムを提供することにある。
【0042】
本発明の更なる目的は、プログラマブル・デバイス上の空き領域のサイズは充分であるが形状が適合しないためにハードウェア・モジュールの再構成が不可能となって生じるオーバーヘッドを減少することができ、また、その結果として全体の処理時間を短縮化することができる、優れた情報処理システムを提供することにある。
【0043】
【課題を解決するための手段】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、複数の処理モジュールからなる一連の処理を実行するための情報処理システムであって、各処理モジュールがプログラム言語で記述されたソフトウェア・モジュールで構成されるプログラムの形態で一連の処理を受容するプログラム受容手段と、ソフトウェア・モジュールを実行可能なプロセッサと、回路情報で記述されたハードウェア・モジュールに従って部分書き換え可能なプログラマブル論理回路と、ソフトウェア・モジュールと同じ処理を前記プログラマブル論理回路上で再構成するための回路情報で記述されるハードウェア・モジュールを蓄積する蓄積手段と、一連の処理を構成する各処理モジュールのうちハードウェア・モジュールによって実行すべきものを決定する実行モジュール決定手段と、前記実行モジュール決定手段によって決定されたハードウェア・モジュールを前記蓄積手段から取り出して前記プログラマブル論理回路上に再構成するハードウェアモジュール取得手段とを備え、前記蓄積手段は、同一の処理を実現するが前記プログラマブル論理回路上に再構成すると形状が異なる複数のハードウェア・モジュールを用意し、前記ハードウェア・モジュール取得手段は、前記プログラマブル論理回路のハードウェア構成可能領域に適合する形状を持つハードウェア・モジュールを優先的に取り出すことを特徴とする情報処理システムである。
【0044】
ここで、前記蓄積手段に蓄積されるハードウェア・モジュールを、矩形形状で表現してもよい。
【0045】
また、ハードウエア構成可能領域の形状を、前記プログラマブル論理回路上における水平方向と垂直方向の各々の論理セル数によって定義してもよい。
【0046】
また、本発明の第2の側面は、部分書き換えが可能なプログラマブル論理回路を再構成するためのハードウェア・モジュールを管理するための方法であって、同一の処理を実現するが前記プログラマブル論理回路上に再構成すると形状が異なる複数のハードウェア・モジュールを用意したことを特徴とするハードウェア・モジュールを管理するための方法である。
【0047】
また、本発明の第3の側面は、部分書き換えが可能なプログラマブル論理回路を再構成するためのハードウェア・モジュールを管理するための装置であって、同一の処理を実現するが前記プログラマブル論理回路上に再構成すると形状が異なる複数のハードウェア・モジュールを蓄積する手段と、前記プログラマブル論理回路のハードウェア構成可能領域に適合する形状を持つハードウェア・モジュールを優先して前記蓄積手段から取り出す手段とを具備すること特徴とするハードウェア・モジュールを管理するための装置である。
【0048】
【作用】
本発明に係る情報処理システムは、複数の処理モジュールからなる一連の処理を実行する。各処理モジュールはプログラム言語で記述されたソフトウェア・モジュールで構成されており、情報処理システムは、所謂ソフトウェア・プログラムの形態で、一連の処理を受容する。
【0049】
また、情報処理システムは、ソフトウェア・モジュールを実行可能なプロセッサと、回路情報で記述されたハードウェア・モジュールに従って部分書き換え可能なプログラマブル論理回路を備えている。一連の処理を実行する際には、各処理モジュールをソフトウェア・モジュール又はハードウェア・モジュールのいずれとして実行すべきかを判別して、実行するようになっている。
【0050】
また、情報処理システムは、ソフトウェア・モジュールと同じ処理を前記プログラマブル論理回路上で再構成するための回路情報で記述されるハードウェア・モジュールを蓄積する蓄積手段を備えている。
【0051】
ハードウェア・モジュールは、プログラマブル論理回路上に再構成すると、所定数のセルを使用するとともに、所定形状を持つセル領域を占有する。本発明では、各ソフトウェア・モジュールにつき、同一の処理を実現するが前記プログラマブル論理回路上に再構成すると形状が異なる複数のハードウェア・モジュールを、蓄積手段に用意した。
【0052】
そして、プログラマブル論理回路の部分的書き換えを行なうときには、同じ処理を実現するが形状が異なる複数のハードウェア・モジュールのうち、プログラマブル論理回路中の空き領域すなわちハードウェア構成可能領域の形状に適合するものを優先的に取り出すようにした。
【0053】
プログラマブルなデバイス上で部分書き換えを行なうためには、ハードウェア・モジュールを書き込めるサイズの空き領域がデバイス上にあるだけでは不充分であり、空き領域がハードウェア・モジュールの形状を完全に包含できなければならない。すなわち、プログラマブル論理回路上の他の処理が終了して使用セルが解放され、再構成されるハードウェア・モジュールの形状に見合うだけの空き領域が確保されるまでは、再構成動作は待たされてしまう(前述)。
【0054】
本発明によれば、同じ処理を実現するが形状が異なるハードウェア・モジュールを複数個用意しておき、プログラマブル論理回路上の空き領域の形状に適合するハードウェア・モジュールを優先的に使用することにしたので、ハードウェア・モジュールの再構成が不可能となって生じるオーバーヘッドを最小限に抑えることができる。また、その結果として全体の処理時間を短縮化することができる。
【0055】
また、ハードウェア・モジュールの形状を、占有するセル領域を包含する最小の矩形で表現することとした。この矩形は、水平及び垂直の各方向の論理セル数だけで定義できる。すなわち、ハードウェア・モジュールがハードウェア・モジュール構成可能領域に適合するかどうかを、極めて少量のデータにより判断することができる。併せて、プログラマブル論理回路の論理セルを効率的に利用することが可能となることから、処理の実行とデバイスのコンフィギュレーションを並行して行なうことができ、全体の処理時間を短縮することができる。
【0056】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0057】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施例を詳解する。
【0058】
図1には、本発明を実現するのに適した情報処理システム10のハードウェア構成を模式的に示している。
【0059】
情報処理システム10は、例えば、「ワークステーション」や「パーソナル・コンピュータ」と呼ばれる汎用コンピュータ・システムであり、その一例は、米国IBM社のPC/AT互換機又はその後継機である。この種のシステム10は、OADG(PC Open Architecture Developer’s Group)仕様に準拠し、オペレーティング・システム(OS)として、例えば米国マイクロソフト社の”Windows95/98/NT”を搭載している。以下、情報処理システム10内の各部について説明する。
【0060】
システム10のメイン・コントローラであるCPU(Central Processing Unit)11は、オペレーティング・システム(OS)の制御下で、各種の処理を実行する。
【0061】
ここで言う「処理」は、複数の処理モジュールからなる一連の処理である。かかる一連の処理は、通常、各処理モジュールがプログラム言語で記述されたソフトウェア・モジュールで構成されている「プログラム」の形態で、情報処理システム10に供給される。
【0062】
CPU11の回路論理は固定的で、再構成不可能である。したがって、CPU11は、処理モジュールのうち、プログラム言語で記述されたソフトウェア・モジュールのみを実行し、後述するようにハードウェア・モジュールは実行しない。なお、CPU11は、例えば米国インテル社の”Pentium II”でよい。
【0063】
本実施例の情報処理システム10は、各周辺装置をローカル接続するためのローカル・バスとしてのPCI(Peripheral Component Interconnect)バス14を備えている。このPCIバスと、CPU11の自身の外部ピンに直結したホスト・バス11Bとは、チップセットで構成されるバス・ブリッジ13を介して相互接続されている。
【0064】
本実施例のチップセット13は、両バス11B及び14間のデータ転送速度の差を吸収するためのデータ・バッファや、主記憶メモリ12へのアクセス動作を制御するためのメモリ・コントローラを含んだ構成となっている。
【0065】
主記憶メモリ12は、書き込み可能なメモリであり、通常は複数個のDRAM(Dynamic Random Access Memory)チップで構成される。主記憶メモリ12は、BIOS(Basic Input/Output System:基本入出力システム)、デバイス・ドライバ、OS、及びアプリケーション・プログラムなど各種処理を実現するためのプログラム・コードをロードしたり、処理実行中の作業データを一時格納するために利用される。
【0066】
PCIバス14は、比較的高速なデータ転送が可能なバスであり(バス幅32/64ビット、最大動作周波数33/66MHz、最大データ転送速度132/264MMps)、PCIバス14とのインターフェース・プロトコルを実現する各種のインターフェース・アダプタが接続されている。なお、PCIアーキテクチャは、米国インテル社の提唱に端を発したものであり、所謂PnP(プラグ・アンド・プレイ)機能を備えている。
【0067】
PCIバス14に接続されるインターフェース・アダプタとして、本実施例すなわち図1では、ハード・ディスク・インターフェース17と、通信インターフェース19と、プログラマブル論理回路インターフェース15を挙げている。
【0068】
ハード・ディスク・インターフェース17は、ハード・ディスク装置18などの大容量の外部記憶装置を接続するためのインターフェースであり、IDE(Integrated Drive Electronics)やSCSI(Small Computer System Interface)などの仕様が当業界において標準的である。以下では、システム10内のハード・ディスク装置18のことを、「ローカル・ディスク」とも呼ぶ。
【0069】
通信インターフェース19は、LAN(Local Area Network)やインターネットなどの、システム10の外部のネットワーク20と接続するためのアダプタである。
【0070】
ネットワーク20上には、通常、複数の外部装置が接続されている。外部装置の一例は、ファイル・サーバやプリント・サーバなど、各種資源サービスを情報処理システム10に提供するサーバである。図1では、ネットワーク20には記憶装置21が接続されている。この記憶装置21は、例えば、ファイル・サーバなどが提供する大容量ハード・ディスク装置などであり、システム10側からは記憶装置21に対して透過的にディスク・アクセス可能である。以下では、ネットワーク20上のハード・ディスク装置21のことを、「ローカル・ディスク」と区別して、「ネットワーク・ディスク」と呼ぶことにする。
【0071】
プログラマブル論理回路インターフェース15は、プログラマブル論理回路16をシステム10に接続するためのアダプタである。プログラマブル論理回路16は、例えば「アダプタ・カード」に搭載された形態で提供される。プログラマブル論理回路16は、後述するように部分書き換え動作が可能なタイプのデバイスである。プログラマブル論理回路16上に部分的に書き込まれたハードウェアのことを、以下では「ハードウェア・モジュール」と呼ぶ。ハードウェア・モジュールは、通常、論理回路16を再構成するための回路情報という形式で記述され、所定の格納場所に保管され、且つ適宜取り出して用いられる。
【0072】
本実施例では、回路情報として記述された数多くのハードウェア・モジュールが、情報処理システム10内のローカル・ディスク18又はネットワーク20上のネットワーク・ディスク21に蓄積されている。プログラマブル論理回路16は、図示しないローカル・メモリを備えている。部分書き換えを行なうときには、必要なハードウェア・モジュールを、ローカル・ディスク18又はネットワーク・ディスク21からローカル・メモリに一旦ダウンロードして、書き換え処理を行う。論理回路16の部分書き換え動作の手順については、後に詳解する。
【0073】
なお、情報処理システム10を構成するためには、図1に示した以外にも多くのハードウェア構成要素等が必要である。但し、これらは当業者には周知であり、また、本発明の要旨を構成するものではないので、本明細書中では省略している。また、図面の錯綜を回避するため、図中の各ハードウェア・ブロック間の接続も一部しか図示していない点を了承されたい。
【0074】
次に、プログラマブル論理回路16の内部構造について説明する。
【0075】
図2には、プログラマブル論理回路16の構造を論理的に図解している。同図に示すように、プログラマブル論理回路16は、回路情報を格納するためのコンフィギュレーション・メモリ160と、回路素子164とで構成される。回路素子は、後述するように、論理セル161と、配線領域164と入出力端子163を含んだ集合体である。
【0076】
また、図3には、プログラマブル論理回路16を構成するチップ内の物理構造を模式的に示している。同図に示すように、略矩形状のチップ内16には、数多の論理セル161…がマトリックス状に配設されている。配線領域162は、各論理セル161…間を走るように、格子状に敷設されている。チップの周辺部には、論理回路16に対する電気信号データの入出力を行なうための数多の入出力端子163…が列設されている。
【0077】
コンフィギュレーション・メモリ160は、論理セル161内及び配線領域162内の回路情報を書き込むための記憶手段であり、SRAM、DRAMなどの書き換え可能なメモリ素子で構成されている。
【0078】
コンフィギュレーション・メモリ160にはアドレスが割り振られており、あるアドレスに新しい回路情報を記述したデータが格納されると、アドレスに該当する論理セル161内の回路構成と、論理セル161及び入出力端子163を相互に接続する配線領域162の接続状態が、この新しい回路情報に従って再構成される。
【0079】
図2に示すように、プログラマブル論理回路16に再構成されて形成された回路素子に処理すべきデータが入力されると、またその処理を実行した結果が出力されるようになっている。
【0080】
プログラマブル論理回路16の回路構成を再構成する一連の動作のことを、「コンフィギュレーション」と呼ぶ。本実施例に係るプログラマブル論理回路16では、コンフィギュレーション・メモリ160の一部分のみを書き換えることで、プログラマブル論理回路16が動作中であっても、回路を部分的に再構成することができる。すなわち、部分書き換え機能を提供している。
【0081】
図4には、情報処理システム10が複数の処理モジュールからなる一連の処理を実行する仕組みを模式的に示している。但し、一連の処理は、プログラム言語で記述されたプログラム、すなわちアプリケーション・プログラム100の形態で情報処理システム10に供給されている(例えば、ハード・ディスク装置18内に導入されている)ものとする。
【0082】
アプリケーション・プログラム100は、実行する一連の処理を複数個の処理に分割可能であり、分割された各処理毎に1つのモジュールを形成している。このモジュールのことを、本明細書中では「処理モジュール」と呼んでいる。
【0083】
アプリケーション・プログラム100を構成する各処理モジュールは、原初的には、CPU11において処理が実行可能な形式、すなわち、プログラム言語で記述されたソフトウェア・プログラムである。処理モジュール単位のソフトウェア・プログラムのことを、本明細書では「ソフトウェア・モジュール」と呼ぶ。言い換えれば、アプリケーション・プログラム100は、複数のソフトウェア・モジュールの集合体であると言える。
【0084】
各ソフトウェア・モジュールが行なうのと同じ処理を、プログラマブル論理回路16上に構成したハードウェアとして実行することもできる。プログラマブル論理回路16によるハードウェア処理は、一般に、対応するソフトウェア処理よりも高速である。
【0085】
ソフトウェア・モジュールに対応したハードウェアをプログラム論理回路16上に再構成するための回路情報を記述した単位モジュールのことを、本明細書では「ハードウェア・モジュール」と呼んでいる。図4中の記憶装置200には、アプリケーション・プログラム100を構成する各ソフトウェア・モジュールと同じ処理を実現するハードウェア・モジュールが蓄積されている。但し、記憶装置200の実体は、図1中で示したローカル・ディスク18やネットワーク・ディスク21であると把握されたい。
【0086】
ここで、アプリケーション・プログラム100の構造についてもう少し詳しく言及する。
【0087】
図5には、アプリケーション・プログラム100の構成を模式的に示している。同図に示すように、アプリケーション・プログラム100は、ヘッダ部と本体部からなる。
【0088】
本体部は、前述したように、複数個のソフトウェア・モジュールの集合で構成されている。ヘッダ部には、各ソフトウェア・モジュールに対応するハードウェア・モジュールの各々についての識別符号が記述されている。
【0089】
本実施例では、ハードウェア・モジュールは、対応するソフトウェア・モジュールと同じ処理をプログラマブル論理回路16上に再構成するための回路情報だけでなく、その回路情報をプログラマブル論理回路16上に再構成したときに占有するセル領域の形状を記述している。ここで、ハードウェア・モジュールの形状は、占有するセル領域を完全に包含する矩形として表現される。したがって、形状は、その矩形が持つ水平及び垂直の各方向のPFU(Programmable Function Unit)数すなわちセル数によって定義されるので、少量のデータで済む。
【0090】
図6には、ハードウェア・モジュールを矩形表現する様子を図解している。同図に示すように、ハードウェア・モジュールによって構成される回路そのものは、複雑な多角形状であり、これを幾何学的に定義するとデータ・サイズが大きくなり処理も煩雑となる。そこで、ハードウェア・モジュールの構成回路を包含する最小の矩形によってその形状を表現することとし、その矩形が持つ水平及び垂直の各方向のセル数によってハードウェア・モジュールの形状を定義する。
【0091】
各ハードウェア・モジュールの識別番号は、同じ処理を行うソフトウェア・モジュールとの対応関係が明瞭となるように、付与されることが好ましい。図4及び図5に示した例では、アプリケーション・プログラム100上の処理実行順に従った順序番号によって、各ソフトウェア・モジュールに対応するハードウェア・モジュールの識別符号がヘッダ部に記述される。このような場合、繰り返し使用する処理モジュールに対応するハードウェア・モジュールの識別番号は、ヘッダ部において繰り返し記述されることになる。
【0092】
再び図4に戻って、情報処理システム10上でアプリケーション・プログラム100を実行する仕組みについての説明を継続する。
【0093】
ハードウェア・モジュール取得手段300と、実行モジュール決定手段600は、処理モジュールをハードウェア・モジュールとして実行する動作に深く関与している。これらの手段300及び600は、例えば、情報処理システム10上に導入されたOSの機能の一部、という形態で実装することができる。
【0094】
ハードウェア・モジュール取得手段300は、アプリケーション・プログラム100のヘッダ部に記述されている識別符号を用いて、ソフトウェア・モジュールが実行する処理と同じ処理を実行するハードウェア・モジュールを記憶装置200から取得する。そして、ハードウェア・モジュール取得手段300は、取得したハードウェア・モジュールを実現した回路を、プログラマブル論理回路16上に再構成する。
【0095】
図4に示すように、ハードウェア・モジュール取得手段300は、取得要求送出手段310と、取得再構成手段320とで構成される。ハードウェア・モジュールを記録装置200から取得するとき、取得要求送出手段310は、必要な全てのハードウェア・モジュールの取得要求を行う。
【0096】
実行モジュールをCPU11によるソフトウェア・モジュールとするか、又は、プログラマブル論理回路16によるハードウェア・モジュールとするかを、プログラムの実行時に決定することもできる。この場合には、取得要求送出手段310は、アプリケーション・プログラム100のヘッダ部に記述されている全てのハードウェア・モジュールの識別符号を含むハードウェア・モジュール取得要求を送出する。
【0097】
また、実行モジュールの決定をプログラム100の実行前に行うこともできる。この場合には、取得要求送出手段310は、ハードウェア・モジュール処理により実行すると決定されたハードウェア・モジュールの識別符号を含むハードウェアモジュール取得要求を送出する。
【0098】
ハードウェア・モジュール取得手段300内の取得再構成手段320は、記憶手段200から取得したハードウェア・モジュールの情報を、それに付加されている識別符号により認識し、システム10内に未だ取り込んでいないハードウェア・モジュールであることを確認した後に、プログラマブル論理回路16上にそのハードウェア・モジュールを実現した回路を再構成する。このとき、再構成したハードウェア・モジュールの識別符号を識別符号記録手段800に記録するとともに、システム10内の記憶装置200(例えば、ハード・ディスク装置18や主記憶メモリ12)に、そのハードウェア・モジュールの情報を格納する。
【0099】
他方、アプリケーション・プログラム100のソフトウェア・モジュールによるソフトウェア処理は、CPU11が実行する。
【0100】
実際のアプリケーション・プログラム100の処理においては、実行モジュール決定手段600が、ハードウェア又はソフトウェアのどちらのモジュールで行うかを各処理モジュール毎に決定し、実行する。
【0101】
図4では示していないが、実行モジュール決定手段600に選択条件設定手段を設けてもよい。選択条件設定手段は、ソフトウェア・モジュール及びハードウェア・モジュールの各々による処理時間、メモリ消費量、プログラマブル論理回路16の再構成時間などの種々の選択条件項目を予め想定しておき、その1つあるいは複数の条件項目の組み合わせからなる実行モジュール選択条件を設定する。実行モジュール決定手段600は、選択条件を評価することによって、実行モジュールを適切に決定することができる。
【0102】
次に、ハードウェア・モジュールによって処理モジュールを実行する手順について詳解する。図7には、この手順をフローチャートの形式で示している。以下、このフローチャートの各ステップについて説明する。
【0103】
但し、処理が実行されるアプリケーション・プログラム100は、ハードウェア・モジュールとして実行される4つの処理モジュールA,B,C,及びDを含み、且つ、A→B→C→B→Dという順番で各処理モジュールが実行されることとする(処理Bは、一旦実行終了した後、処理Cを実行後に再び呼び出される点に留意されたい)。また、コンフィギュレーションが完了したプログラマブル論理回路16によるハードウェア的な処理の方が、対応するソフトウェア処理よりも高速であることを前提とする。
【0104】
既に述べたように、ハードウェア・モジュール取得手段300と、実行モジュール決定手段600は、情報処理システム10上で動作するOSにおける各1つの機能、すなわちソフトウェア的に実装されている。したがって、この動作は、アプリケーション・プログラム100の開始に応答して、OSによって処理が実行される。
【0105】
アプリケーション・プログラム100が開始されると、プログラム100内のヘッダ部に記述されているハードウェア・モジュールの識別符号(図5を参照のこと)が読み込まれる(ステップS11)。既に述べたように、識別符号は、各ソフトウェア・モジュールと同じ処理をプログラマブル論理回路16上に再構成する回路情報と、再構成されたハードウェア・モジュールの形状に関する情報を含んでいる。
【0106】
ここで、ハードウェア・モジュールの形状は、ハードウェア・モジュールをプログラマブル論理回路16上に再構成して占有するセル領域を完全に包含する矩形で表現することとし、したがって、矩形が持つ水平及び垂直の各方向のセル(PFU)数によって定義されている(前述)。
【0107】
また、同じ処理を行うためのハードウェア・モジュールの形状は、単一とは限らず、複数存在することもある。本実施例では、形状が異なるが同じ処理を実行する複数のハードウェア・モジュールを用意することとしている(後述)。
【0108】
予定された順序に従って各処理モジュールを逐次実行するという形式で、アプリケーション・プログラム100の実行が進行する。そして、ハードウェア・モジュールによる処理部分に到達すると、必要なハードウェア・モジュールがプログラマブル論理回路16上にコンフィギュレーションされていく。図7の破線で囲んだ部分がこれに相当する。
【0109】
本実施例では、アプリケーション・プログラム100は、ハードウェア・モジュールとして実行すべきと決定されている処理モジュールとして、A,B,C,Dという4つを含み、且つ、処理モジュールの実行順序はA→B→C→B→Dと指定されている(前述)。
【0110】
まず、ステップS12において、処理Aを実現するハードウェア・モジュール(A)が、プログラマブル論理回路16上にコンフィギュレーションされる。次いで、ステップS13において、処理Bを実現するハードウェア・モジュール(B)が、プログラマブル論理回路16上にコンフィギュレーションされる。
【0111】
図8には、処理A及び処理Bを実現する各ハードウェア・モジュールがプログラマブル論理回路16上にコンフィギュレーションされている様子を、模式的に示している。同図では、ハードウェア・モジュール(A)及び(B)の各々に対応する論理セル領域を、夫々、参照番号222及び221で指し示している。また、この時点での空き領域、すなわちハードウェア・モジュールを未だ構成可能な領域を、参照番号223で指し示している。
【0112】
ハードウェア・モジュール(B)のコンフィギュレーションを行なうステップS13が終了すると、ハードウェア取得手段300は、記憶手段200から、次の処理Cに必要なハードウェア・モジュール(C)の取得を試みる。
【0113】
本実施例では、図8に示すように、同じ処理Cを実行するための、形状が異なる3つのハードウェア・モジュール<C−a>、<C−b>、及び<C−c>が記憶装置200内に用意されているものとする。但し、説明の便宜上、<C−a>は従来から用意されていたハードウェア・モジュールであり、残りの<C−b>と<C−c>は本発明において新たに追加されたハードウェア・モジュールであるとする。図示の通り、各ハードウェア・モジュール<C−a>、<C−b>、及び<C−c>の矩形形状は、夫々、6×4、4×6、3×8である。
【0114】
これに対し、この時点でのハードウェア・モジュール構成可能領域223の形状は4×7である。したがって、ハードウェア・モジュール取得手段300は、コンフィギュレーション可能なハードウェア・モジュールは<C−c>のみであると判断して、これを取得し、ハードウェア・モジュール構成可能領域223にコンフィギュレーションを行なう(ステップS16)。そして、コンフィギュレーションが完了すると、処理Bの実行完了を待って処理Cが実行される。
【0115】
一方、既にコンフィギュレーションが完了している処理Aと処理Bについては、ハードウェア・モジュール<C−c>のコンフィギュレーション開始と同時に、実行が行なわれる(ステップS14及びS15)。ステップS14が終了すると、ハードウェア・モジュール(A)は不要となるので、使用していたセル領域222は解放され、ハードウェア・モジュール構成可能領域となる。但し、処理Bは、処理Cを実行した後再び呼び出されるので(前述)、ステップS15を終了した時点では、使用していたセル領域221は解放されない。
【0116】
図9には、処理Cを実現する各ハードウェア・モジュールがプログラマブル論理回路16上にコンフィギュレーションされた時点での、プログラマブル論理回路16の様子を、模式的に示している。同図に示すように、ハードウェア・モジュール(B)及び<C−c>の各々に相当する論理回路が、夫々、セル領域221及び226にコンフィギュレーションされている。また、既に実行が完了した処理Aに係るセル領域222は解放され、この結果、新たに、ハードウェア・モジュール構成可能領域227が形成される。
【0117】
また、ハードウェア・モジュール(C)のコンフィギュレーションを行なうステップS16が終了すると、ハードウェア取得手段300は、記憶手段200から、次の処理Dに必要なハードウェア・モジュール(D)の取得を試みる。
【0118】
本実施例では、図9に示すように、同じ処理Dを実行するための、形状が異なる3つのハードウェア・モジュール<D−a>、<D−b>、及び<D−c>が記憶装置200内に用意されているものとする。但し、説明の便宜上、<D−a>は従来から用意されていたハードウェア・モジュールであり、残りの<D−b>と<D−c>は本発明において新たに追加されたハードウェア・モジュールであるとする。図示の通り、各ハードウェア・モジュール<D−a>、<D−b>、及び<D−c>の矩形形状は、夫々、6×2、4×3、3×4である。
【0119】
これに対し、この時点でのハードウェア・モジュール構成可能領域227の形状は4×3である。したがって、ハードウェア・モジュール取得手段300は、コンフィギュレーション可能なハードウェア・モジュールは<D−b>のみであると判断して、これを取得し、ハードウェア構成可能セル領域227にコンフィギュレーションを行なう(ステップS17)。
【0120】
ステップS17におけるハードウェア・モジュール<D−b>のコンフィギュレーションを開始する時点で、処理A(ステップS14)が終了しているので、ステップS17の開始と同時に処理B(ステップS15)が実行される。
【0121】
また、ハードウェア・モジュール<D−b>のコンフィギュレーションが終了し、処理Bの実行が完了すると、既にコンフィギュレーションされたハードウェア・モジュール<C−b>によって処理Cを実行開始する(ステップS28)。
【0122】
処理Cが終了すると、セル領域を占有したままのハードウェア・モジュール(B)によって処理Bを再び実行し(ステップS19)、次いで、ハードウェア・モジュール<D−b>によって処理Dを実行する(ステップS20)。
【0123】
図10には、本実施例に従って処理A→処理B→処理C→処理B→処理Dの順で各ハードウェア・モジュールが実行される処理フローを、従来例と比較しながら、時系列的に表示している。すなわち、同図の(a)が本実施例であり、同図(b)が従来例である。但し、従来例では、処理C及び処理Dの各々に対して、夫々、ハードウェア・モジュール<C−a>及び<D−a>の唯一つしか、記憶装置200に用意されていないものとする(前述)。
【0124】
図10では、各処理の所要時間が、時間に相当する長さを持つ帯で表現されている。同図において、各処理を示す大文字A,B,C,Dと小文字”t”からなる接頭辞の組み合わせは、該当するハードウェア・モジュールのコンフィギュレーションに要する時間を表している。また、各処理を示す大文字A,B,C,Dと大文字”T”からなる接頭辞の組み合わせは、コンフィギュレーションされたハードウェア・モジュールによる各処理の所要時間を表している。但し、tC及びTCは、本実施例(a)においてはハードウェア・モジュール<C−b>に関する各所要時間であり、従来例(b)ではハードウェア・モジュール<C−a>に関する各所要時間である。同様に、tD及びTDは、本実施例(a)においてはハードウェア・モジュール<D−b>に関する各所要時間であり、従来例(b)ではハードウェア・モジュール<D−a>に関する各所要時間である。
【0125】
以下、時系列に従って図10について説明する。
【0126】
まず、本実施例における処理フローについて言及する。時刻t0において、処理Aに必要なハードウェア・モジュール(A)のコンフィギュレーションが開始する。次いで、時刻t1において、ハードウェア・モジュール(A)のコンフィギュレーションが終了すると、処理Bに必要なハードウェア・モジュール(B)のコンフィギュレーションが開始する。
【0127】
時刻t2において、ハードウェア・モジュール(B)のコンフィギュレーションが終了すると、処理Cに必要なハードウェア・モジュールのうち、ハードウェア・モジュール構成可能領域223(図8を参照のこと)に割り当て可能な<C−b>を選択的に取得して、コンフィギュレーションを開始する。また、これと同時に、ハードウェア・モジュール(A)によって処理Aが開始する。
【0128】
時刻t3において、ハードウェア・モジュール(C)のコンフィギュレーションが終了する。この時点では、処理Dに必要なハードウェア・モジュールをコンフィギュレーションできるセル領域が、プログラマブル論理回路16上には存在しない。本実施例では、処理Dを実行可能な形状が異なる3個のハードウェア・モジュール<D−a>、<D−b>、及び、<D−c>を用意しているが、いずれもプログラマブル論理回路16の空き領域に割り当てることができない。このため、実行中の他のハードウェア・モジュールが終了してセル領域が解放されるまでコンフィギュレーション作業を待機する。
【0129】
時刻t4において、処理Aが終了すると、ハードウェア・モジュール(A)が使用していたセル領域が解放されて、新たにハードウェア・モジュール構成可能領域227が生成される(図9を参照のこと)。処理Dを実行するハードウェア・モジュールのうち、ハードウェア・モジュール構成可能領域227に割り当て可能な<D−b>を選択的に取得して、コンフィギュレーションを開始する。また、処理Aの終了とともに、ハードウェア・モジュール(B)を用いて処理Bが開始する。
【0130】
以降、プログラマブル論理回路16上にコンフィギュレーションされた各ハードウェア・モジュールを用いて、処理Bの終了とともに処理Cが開始し(時刻t6)、処理Cの終了とともに処理Bが開始し(時刻t8)、処理Bの終了とともに処理Dが開始し(時刻t11)、最後に処理Dが終了する(時刻t12)。
【0131】
次に、従来例における処理フローについて言及する。時刻t0において、処理Aに必要なハードウェア・モジュール(A)のコンフィギュレーションが開始する。次いで、時刻t1において、ハードウェア・モジュール(A)のコンフィギュレーションが終了すると、処理Bに必要なハードウェア・モジュール(B)のコンフィギュレーションが開始する。
【0132】
時刻t2において、ハードウェア・モジュール(B)のコンフィギュレーションが終了すると、ハードウェア・モジュール(A)によって処理Aが開始する。
【0133】
また、処理Bの次に実行される処理Cに必要なハードウェア・モジュールをプログラマブル論理回路16上にコンフィギュレーションしなければならない。しかしながら、従来例では、処理Cを実行するハードウェア・モジュールとして<C−a>しか用意していない。図8を参照して判るように、ハードウェア・モジュール<C−a>は論理セル数6×4の形状を持ち、これに対し、この時点でのハードウェア・モジュール構成可能領域223は4×6であり、コンフィギュレーションすることができない。
【0134】
このため、処理Bが終了してハードウェア・モジュール(B)が使用していたセル領域が解放され、ハードウェア・モジュール<C−a>に充分なハードウェア・モジュール構成可能領域ができる時刻t6まで、<C−a>のコンフィギュレーションは待たされる。
【0135】
時刻t7において、ハードウェア・モジュール<C−a>のコンフィギュレーションが終了すると、これを用いて処理Cが開始する。
【0136】
また、時刻t9において、処理Cが終了すると、ハードウェア・モジュール<C−a>をプログラマブル論理回路16上から削除して、再び、処理Bに必要なハードウェア・モジュール(B)のコンフィギュレーションを開始する。従来例では、ハードウェア・モジュール(B)を2度もコンフィギュレーションしなければならない点にも充分留意されたい。
【0137】
次いで、時刻t10において、ハードウェア・モジュール(B)のコンフィギュレーションが終了すると、これを用いて処理Bを開始する。
【0138】
次いで、時刻t13において、処理Bが終了すると、再びハードウェア・モジュール(B)をプログラマブル論理回路16上から削除して、次の処理Dに必要なハードウェア・モジュール<D−a>のコンフィギュレーションを開始する。従来例では、処理Dのためのハードウェア・モジュールとして<D−a>しか用意していないので、ハードウェア・モジュール(B)が使用するセル領域が解放されるまで<D−a>のコンフィギュレーションが待たされてしまう、という点にも充分留意されたい。
【0139】
次いで、時刻t14において、ハードウェア・モジュール<D−a>のコンフィギュレーションが終了すると、処理Dが開始する。そして、時刻t15において、これを用いた処理Dが終了する。
【0140】
上述したように、従来例では、本実施例の場合とは異なり、時刻t2及びt4において、処理C及び処理Dの夫々に必要なハードウェア・モジュール<C−a>及び<D−a>のコンフィギュレーションを、処理A及び処理Bの実行と並行して行なうことができない。また、処理Bに必要なハードウェア・モジュール(B)を、t9において再度コンフィギュレーションしなければならない。
【0141】
従来例におけるこのような処理時間のロスは、プログラマブル論理回路16上のハードウェア・モジュール構成可能領域内に、次の処理に必要なハードウェア・モジュールがセル・サイズ的には受容可能だが形状的に入りきらないために生じたものである。この結果、ハードウェア・モジュール(B),<C−a>,<D−a>の各々のコンフィギュレーション時間の合計分だけ、ハードウェア・モジュールによる処理に長い時間を要してしまうことになる。
【0142】
図10で示した例では、A→B→C→B→Dという合計5つの処理を行ったが、この処理数が多くなればなるほど、本実施例と従来例との処理時間ロスの差は拡大するであろう。すなわち、本発明が全体の処理時間を短縮するために極めて有効な方法である、ということを理解できよう。また、本発明は、プログラマブル論理回路上のハードウェア・モジュール構成可能領域すなわちセル資源を効率的に使用することにもなる。
【0143】
なお、図10に示した例では、処理Bに必要なハードウェア・モジュール(B)を1種類としている。処理Aに必要なハードウェア・モジュール(A)のサイズが過大であり、双方のハードウェア・モジュール(A)及び(B)を同時にプログラマブル論理回路16上にコンフィギュレーションできないような事態を想定すれば、従来例と同様に、処理Bがボトルネックとなって処理時間のロスが生じるであろう。
【0144】
また、図10に示した例では、ハードウェア・モジュール<C−b>のコンフィギュレーション時間tCよりも処理Aの実行時間TAの方が長く、また、ハードウェア・モジュール<D−b>のコンフィギュレーション時間tDよりも処理Bの実行時間TBの方が長いこととしている。これとは逆に、処理Aの実行時間TAよりもハードウェア・モジュール<C−b>のコンフィギュレーション時間tCの方が長く、また、処理Bの実行時間TBよりもハードウェア・モジュール<D−b>のコンフィギュレーション時間tDの方が長いこととした場合には、処理B(但し2回目)及び処理Dは、ハードウェア・モジュール<C−b>及び<D−b>のコンフィギュレーションの後に実行されことになる。
【0145】
[追補]
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0146】
【発明の効果】
以上詳記したように、本発明によれば、論理回路を記述した回路情報に従って所望の論理を再構成可能なプログラマブル論理回路を含んだタイプの、優れた情報処理システムを提供することができる。
【0147】
また、本発明によれば、プログラム言語で処理を記述された複数の処理モジュールで構成される一連の処理の少なくとも一部を部分書き換え可能なプログラマブル論理回路上で再構成したハードウェア回路に置き換えて実行するタイプの、優れた情報処理システムを提供することができる。
【0148】
また、本発明によれば、各処理モジュールをソフトウェア・モジュール又はハードウェア・モジュールのいずれで実行すべきかを決定して処理するタイプの、優れた情報処理システムを提供することができる。
【0149】
また、本発明によれば、プログラム論理回路の再構成によるオーバーヘッドを減少して処理モジュール全体の処理時間を短縮化することができる、優れた情報処理システムを提供することができる。
【0150】
また、本発明によれば、プログラマブル・デバイス上の空き領域のサイズは充分であるが形状が適合しないためにハードウェア・モジュールの再構成が不可能となって生じるオーバーヘッドを減少することができ、また、その結果として全体の処理時間を短縮化することができる、優れた情報処理システムを提供することができる。
【0151】
本発明によれば、同じ処理を実現するが形状が異なるハードウェア・モジュールを複数個用意しておき、プログラマブル論理回路上の空き領域の形状に適合するハードウェア・モジュールを優先的に使用することにしたので、ハードウェア・モジュールの再構成が不可能となって生じるオーバーヘッドを最小限に抑えることができる。また、その結果として全体の処理時間を短縮化することができる。
【0152】
また、ハードウェア・モジュールの形状を、占有するセル領域を包含する最小の矩形で表現することとした。この矩形は、水平及び垂直の各方向の論理セル数だけで定義できる。すなわち、ハードウェア・モジュールがハードウェア・モジュール構成可能領域に適合するかどうかを、極めて少量のデータ量により判断することができる。併せて、プログラマブル論理回路が持つ論理セルを効率的に利用することが可能となることから、処理の実行とデバイスのコンフィギュレーションを並行して行なうことができ、全体の処理時間を短縮することができる。
【図面の簡単な説明】
【図1】 本発明を実現するのに適した情報処理システム10のハードウェア構成を模式的に示した図である。
【図2】 プログラマブル論理回路16の構造を論理的に図解したものである。
【図3】 プログラマブル論理回路16の物理構造を模式的に示した図である。
【図4】 情報処理システム10が複数の処理モジュールからなる一連の処理を実行する様子を模式的に示した図である(但し、一連の処理は、プログラム言語で記述された各処理モジュールで構成されるプログラムの形態で、システム10に供給されているものとする)。
【図5】 一連の処理を構成するアプリケーション・プログラムの構成を模式的に示した図である。
【図6】 ハードウェア・モジュールの形状を矩形表現する様子を模式的に示した図である。
【図7】 ハードウェア・モジュールによって処理モジュールを実行する手順を示したフローチャートである。
【図8】 形状が異なるが同じ処理を実行する複数のハードウェア・モジュールの中から最適なものを選択してプログラマブル論理回路16上に再構成する様子を模式的に示した図であり、より具体的には、処理A及び処理Bを実現する各ハードウェア・モジュールがプログラマブル論理回路16上にコンフィギュレーションされている様子を示した図である。
【図9】 形状が異なるが同じ処理を実行する複数のハードウェア・モジュールの中から最適なものを選択してプログラマブル論理回路16上に再構成する様子を模式的に示した図であり、より具体的には、処理Cを実現する各ハードウェア・モジュールがプログラマブル論理回路16上にコンフィギュレーションされた時点でのプログラマブル論理回路16の様子を示した図である。
【図10】 本実施例に従って処理A→処理B→処理C→処理B→処理Dの順で各ハードウェア・モジュールが実行される処理フローを、従来例と比較しながら、時系列的に表示した図である。
【図11】 特開平9−74556号公報に開示された画像再生装置の構成を模式的に示した図である。
【図12】 特開平6−301522号公報に開示された計算機システムの構成を模式的に示した図である。
【符号の説明】
10…情報処理システム、
11…CPU、11B…ホスト・バス、
12…主記憶メモリ、13…バス・ブリッジ、14…PCIバス、
15…プログラマブル論理回路インターフェース、
16…プログラマブル論理回路、
17…ハード・ディスク・インターフェース、
18…ハード・ディスク装置、
19…通信インターフェース、
20…ネットワーク、21…記憶装置、
100…アプリケーション・プログラム、
160…コンフィギュレーション・メモリ、
161…論理セル、162…配線領域、
163…入出力端子、164…回路素子、
300…ハードウェア・モジュール取得手段、
310…取得要求送出手段、320…取得再構成手段、
600…実行モジュール決定手段、800…識別符号記録手段。
Claims (5)
- 複数の処理モジュールからなる一連の処理を実行するための情報処理システムであって、
各処理モジュールがプログラム言語で記述されたソフトウェア・モジュールで構成されるプログラムの形態で一連の処理を受容するプログラム受容手段と、
ソフトウェア・モジュールを実行可能なプロセッサと、
回路情報で記述されたハードウェア・モジュールに従って部分書き換え可能なプログラマブル論理回路と、
ソフトウェア・モジュールと同じ処理を前記プログラマブル論理回路上で再構成するための回路情報で記述されるハードウェア・モジュールを蓄積する蓄積手段と、
一連の処理を構成する各処理モジュールのうちハードウェア・モジュールによって実行すべきものを決定する実行モジュール決定手段と、
前記実行モジュール決定手段によって決定されたハードウェア・モジュールを前記蓄積手段から取り出して前記プログラマブル論理回路上に再構成するハードウェア・モジュール取得手段とを備え、
前記蓄積手段は、同一の処理を実現するが前記プログラマブル論理回路上に再構成すると形状が異なる複数のハードウェア・モジュールを用意し、
前記ハードウェア・モジュール取得手段は、前記プログラマブル論理回路のハードウェア構成可能領域に適合する形状を持つハードウェア・モジュールを優先的に取り出す、
ことを特徴とする情報処理システム。 - 前記蓄積手段に蓄積されるハードウェア・モジュールは矩形形状で表現されることを特徴とする請求項1に記載の情報処理システム。
- ハードウエア構成可能領域の形状は前記プログラマブル論理回路上における水平方向と垂直方向の各々の論理セル数によって定義されることを特徴とする請求項1又は2のいずれかに記載の情報処理システム。
- 部分書き換えが可能なプログラマブル論理回路を再構成するためのハードウェア・モジュールを管理するための方法であって、
同一の処理を実現するが前記プログラマブル論理回路上に再構成すると形状が異なる複数のハードウェア・モジュールを蓄積する蓄積ステップと、
前記プログラマブル論理回路上での処理の実行が決定されたときに、当該処理を実現する複数のハードウェア・モジュールのうち前記プログラマブル論理回路のハードウェア構成可能領域に適合する形状を持つハードウェア・モジュールを優先して取り出すハードウェア・モジュール取得ステップと、
を具備することを特徴とするハードウェア・モジュールを管理するための方法。 - 部分書き換えが可能なプログラマブル論理回路を再構成するためのハードウェア・モジュールを管理するための装置であって、
同一の処理を実現するが前記プログラマブル論理回路上に再構成すると形状が異なる複数のハードウェア・モジュールを蓄積する蓄積手段と、
前記プログラマブル論理回路上での処理の実行が決定されたときに、当該処理を実現する複数のハードウェア・モジュールのうち前記プログラマブル論理回路のハードウェア構成可能領域に適合する形状を持つハードウェア・モジュールを優先して前記蓄積手段から取り出すハードウェア・モジュール取得手段と、
を具備すること特徴とするハードウェア・モジュールを管理するための装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05413799A JP3684901B2 (ja) | 1999-03-02 | 1999-03-02 | 情報処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05413799A JP3684901B2 (ja) | 1999-03-02 | 1999-03-02 | 情報処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000252814A JP2000252814A (ja) | 2000-09-14 |
JP3684901B2 true JP3684901B2 (ja) | 2005-08-17 |
Family
ID=12962199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05413799A Expired - Fee Related JP3684901B2 (ja) | 1999-03-02 | 1999-03-02 | 情報処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3684901B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6781409B2 (en) * | 2001-10-10 | 2004-08-24 | Altera Corporation | Apparatus and methods for silicon-on-insulator transistors in programmable logic devices |
JP4713916B2 (ja) * | 2005-04-08 | 2011-06-29 | 日本電信電話株式会社 | データ保護サービスシステム及びデータ保護方法 |
JP4909588B2 (ja) * | 2005-12-28 | 2012-04-04 | 日本電気株式会社 | 情報処理装置及び再構成デバイスの利用方法 |
JP5023856B2 (ja) * | 2007-07-18 | 2012-09-12 | 富士ゼロックス株式会社 | 演算処理装置及び演算処理プログラム |
JP5277615B2 (ja) * | 2007-11-22 | 2013-08-28 | 富士ゼロックス株式会社 | データ処理装置及びデータ処理プログラム |
JP5355152B2 (ja) * | 2009-03-10 | 2013-11-27 | 三菱電機株式会社 | 動的再構成装置 |
JP5504985B2 (ja) | 2010-03-11 | 2014-05-28 | 富士ゼロックス株式会社 | データ処理装置 |
JP5552855B2 (ja) * | 2010-03-19 | 2014-07-16 | 富士ゼロックス株式会社 | 画像処理装置、画像形成システム及び画像処理プログラム |
JP6228381B2 (ja) | 2012-04-30 | 2017-11-08 | 株式会社半導体エネルギー研究所 | 半導体装置 |
JP5904148B2 (ja) * | 2013-03-25 | 2016-04-13 | 富士ゼロックス株式会社 | 再構成可能回路、画像形成装置及びプログラム |
JP2015039155A (ja) * | 2013-08-19 | 2015-02-26 | 富士通株式会社 | 制御方法、演算装置、および制御プログラム |
JP6598432B2 (ja) * | 2014-06-24 | 2019-10-30 | キヤノン株式会社 | 画像処理装置、その制御方法およびプログラム |
JP2016035692A (ja) * | 2014-08-04 | 2016-03-17 | キヤノン株式会社 | 画像処理装置、システム、情報処理方法及びプログラム |
JP6429650B2 (ja) * | 2015-01-29 | 2018-11-28 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びにプログラム |
JP6485335B2 (ja) * | 2015-11-19 | 2019-03-20 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP6522531B2 (ja) | 2016-02-15 | 2019-05-29 | 株式会社日立製作所 | 通信装置、通信システム、および回路構成制御方法 |
JP6864721B2 (ja) * | 2019-08-08 | 2021-04-28 | キヤノン株式会社 | 情報処理装置、およびその制御方法 |
-
1999
- 1999-03-02 JP JP05413799A patent/JP3684901B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000252814A (ja) | 2000-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3684901B2 (ja) | 情報処理システム | |
JP4037317B2 (ja) | インシステムプログラミングのための方法および構成 | |
US5729683A (en) | Programming memory devices through the parallel port of a computer system | |
JP3587095B2 (ja) | 情報処理装置 | |
US6460136B1 (en) | Method and apparatus for loading an operating system kernel from a shared disk memory | |
US8058898B1 (en) | Compression and decompression of configuration data using repeated data frames | |
US7795955B2 (en) | Semiconductor integrated circuit and power control method | |
CN111414325B (zh) | 一种Avalon总线转Axi4总线的方法 | |
JP4212676B2 (ja) | 情報処理システムおよび情報処理方法 | |
CN110941444A (zh) | 一种升级配置逻辑电路、方法、系统及可编程逻辑器件 | |
US20060265571A1 (en) | Processor with different types of control units for jointly used resources | |
WO2006057084A1 (ja) | 命令供給装置 | |
KR19990011955A (ko) | Pci 브리지 | |
US7917876B1 (en) | Method and apparatus for designing an embedded system for a programmable logic device | |
Rana et al. | Partial dynamic reconfiguration in a multi-fpga clustered architecture based on linux | |
JP3877002B2 (ja) | 情報処理システムおよび情報処理方法 | |
US7991909B1 (en) | Method and apparatus for communication between a processor and processing elements in an integrated circuit | |
JP2022054419A (ja) | スキャンレジスタを備えるデータレジスタを有するマイクロセクタインフラストラクチャに基づく論理構造 | |
JP3678270B2 (ja) | 情報処理システムおよび情報処理方法 | |
US10970206B2 (en) | Flash data compression decompression method and apparatus | |
JP3489608B2 (ja) | プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法 | |
JP3738802B2 (ja) | 情報処理システム | |
US6665766B1 (en) | Adaptable configuration interface for a programmable logic device | |
JP3675255B2 (ja) | 情報処理装置 | |
JP2022054412A (ja) | マイクロセクタインフラストラクチャに基づくロジックファブリック |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040402 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050222 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050412 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050523 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090610 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100610 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110610 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |