JP4212676B2 - 情報処理システムおよび情報処理方法 - Google Patents

情報処理システムおよび情報処理方法 Download PDF

Info

Publication number
JP4212676B2
JP4212676B2 JP02966998A JP2966998A JP4212676B2 JP 4212676 B2 JP4212676 B2 JP 4212676B2 JP 02966998 A JP02966998 A JP 02966998A JP 2966998 A JP2966998 A JP 2966998A JP 4212676 B2 JP4212676 B2 JP 4212676B2
Authority
JP
Japan
Prior art keywords
processing
module
program
hardware module
identification code
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
Application number
JP02966998A
Other languages
English (en)
Other versions
JPH11232081A (ja
Inventor
義雄 西原
嘉秀 佐藤
紀一 山田
弘之 三宅
英悟 中川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP02966998A priority Critical patent/JP4212676B2/ja
Publication of JPH11232081A publication Critical patent/JPH11232081A/ja
Application granted granted Critical
Publication of JP4212676B2 publication Critical patent/JP4212676B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、少なくとも処理の一部分を、回路構成を再構成できるプログラマブル論理回路で処理することが可能である情報処理システムおよび情報処理方法に関するものであり、特に、プログラマブル論理回路の有効な活用方法に関するものである。
【0002】
【従来の技術】
デジタル回路装置、特に特定用途向け集積回路(ASIC)の分野において、製品の開発期間を短縮するために、フィールドプログラマブルゲートアレイ(FPGA)やプログラマブルロジックデバイス(PLD)などで構成されたプログラマブル論理回路が広く使われている。
【0003】
これらのプログラマブル論理回路は、論理回路を記述する回路情報をこれらに読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができる。このため、プログラマブル論理回路装置を用いることで、従来は回路設計の終了後に数週間から数か月を必要とした集積回路の作製時間が不要になるというメリットがある。特に、米国特許第4,700,187号の発明のような電気的に再構成可能なプログラマブル論理回路装置は、一度作製した回路を必要に応じて自由に何度でも変更できるという利点があり、プログラマブル論理回路装置は、ますます広く使われるようになってきている。
【0004】
ところで、最近の論理回路は複雑さが増し、一つのプログラマブル論理回路装置では実現できない規模にまで回路規模が大きくなっている。
【0005】
この問題を解決するためのひとつの方法として、異なる時間に異なる論理回路を実現するためにプログラマブル論理回路を処理の途中で再構成することが提案されている。この方法を用いることにより、携帯情報端末のように、装置が小型であるため、内蔵できる回路規模に制約がある場合でも、様々な処理が比較的高速に行えるという利点がある。
【0006】
しかし、プログラマブル論理回路を再構成するときには、回路全体の回路情報を再度読み込ませるため、再構成に時間がかかるという欠点がある。さらに、処理の途中で再構成することは、処理を一時中断し、その時のデータをプログラマブル論理回路の外部の記憶装置に待避させ、新たな回路情報を読み込んで再構成し、再構成前のデータと再構成に伴う新しいデータを入力するという余分な処理が必要になる。
【0007】
この問題を解決するために、米国アトメル社の「CONFIGURABLE LOGIC」という名のデータブックに記載されているプログラマブル論理回路、および米国ザイリンクス社の「THE PROGRAMMABLE LOGIC」という名のデータブックに記載されているプログラマブル論理回路では、データを記憶するためのデータ記憶装置を有し、回路の動作中でも外部の記憶装置から回路情報の一部を読み込んで部分的に再構成を行うことで、再構成するための時間を最小に留めるようにしている。
【0008】
このようなプログラマブル論理回路を情報処理システムに用いるときの問題は、処理を、プログラマブル論理回路で行う処理と、マイクロプロセッサなどの回路構成を変更できない固定的な論理回路装置で行う処理とで、分離する技術が確立していないことである。
【0009】
この問題を解決する方法のひとつとして、特開平6−301522号公報に開示される計算機の例がある。これを、従来例1として、図35を参照しながら説明する。
【0010】
すなわち、図35の従来例1においては、計算機で実行するソースプログラム1000は、回路構成を変更できない固定部と、プログラマブル論理回路のように回路構成を変更できる可変部とで構成される。ライブラリ1001には、固定部の構成に関する情報と、可変部が構成することができる回路の情報が格納されている。
【0011】
コンパイラ1002は、ソースプログラム1000を解析し、ライブラリ1001を参照しながら、オブジェクトコードと、ハードウエア構成データに変換する。例えば、コンパイラ1002は、ソースプログラムのフロー解析を行い、関数の頻度を検出し、その検出した頻度に基づいて、呼び出し回数の多い関数をハードウエアで処理する関数として決定し、ハードウエア構成データ1003を作成し、出力する。
【0012】
次に、コンパイラ1002は、ハードウエアで処理すると決めた部分を所定の可変部で処理することを示すコードを生成する。そして、このコードを、残りのソフトウエアで処理する部分に付加してオブジェクトコード1004を作成し、出力する。計算機1005は、固定部と、ハードウエア構成データにより構成された可変部とを用いて、オブジェクトコードに応じた処理を実行する。
【0013】
このようにして、従来例1では、コンパイル時に呼び出し回数の多い関数をハードウエア化することにより処理全体の高速化を図っている。
【0014】
次に、前記問題を解決する従来例2として、特開平5−150943号公報に開示されるコンピュータ装置の場合を説明する。この従来例2においては、プログラマブル論理回路で行う処理と、固定的な論理回路装置で行う処理とに分離された処理を、アプリケーションプログラムとして、情報処理システムとしてのコンピュータ装置で実行する。
【0015】
この従来例2のコンピュータ装置は、CPU、メモリ、プログラマブル論理回路、ハードディスクなどの外部記憶装置、およびその他の入出力インターフェースで構成される。
【0016】
外部記憶装置には、プログラマブル論理回路の回路データと、アプリケーションプログラムが記憶してある。メモリには、外部記憶装置からアプリケーションプログラムをロードするイニシャルローディングプログラムが記憶してある。
【0017】
CPUは、これらのプログラムを実行するとともに、プログラマブル論理回路に回路データを書き込む。プログラマブル論理回路は、CPUのバスラインに接続され、バスライン上の信号を入力し、論理処理を施してバスラインへ信号を返す。この従来例2における処理手順を、図36に示す。
【0018】
まず、実行すべきプログラムファイルを指定する(ステップS1)。次に、指定したプログラムファイルに回路データが含まれるか否か判別し(ステップS2)、含まれる場合は、回路データ書き込みプログラムをロードして実行し(ステップS3)、続いて回路データをロードして(ステップS4)、その回路データをプログラマブル論理回路に書き込む(ステップS5)。その後、アプリケーションプログラムをロードし(ステップS6)、実行する(ステップS7)。
【0019】
指定したプログラムファイルに回路データが含まれていない場合には、ステップS2からステップS6に飛び、そのまま、アプリケーションプログラムをロードし、実行する。
【0020】
以上のように、この従来例2の場合、プログラマブル論理回路上の機能を用いる命令実行時に、回路が所定の論理処理を行う。これにより、アプリケーションごとに特殊なハードウエアを設けることなく、必要に応じた論理回路を構成して処理の高速化を図ることができる。
【0021】
以上に述べた処理の一部分をプログラマブル論理回路で処理する情報処理システムは、ネットワークに接続して利用することができる。その場合の例のひとつとして、特開平9−74556号公報に開示される画像再生装置を、従来例3として次に示す。
【0022】
図37に示すように、この従来例3の画像再生装置は、処理系を再構成することが可能な動画像復号部1100と、動画像復号部1100を再構成するためのプログラムと符号化された動画像データとをネットワークNTからダウンロードするための受信部1200と、受信データがプログラムか動画像データかによって伝送先を切り換える切り換え手段1300と、該プログラムを動画像復号部1100の構成に変更できる形式に変換するプログラム変換部1400と、受信部1200と切り換え手段1300とプログラム変換部1400と動画像復号部1100の制御を行うための制御部1500とからなる。
【0023】
動画像復号部1100は、量子化された画像データを逆量子化するものであってその逆量子化処理内容を変更できる逆量子化部1101と、変換された画像データを逆変換するものであってその逆変換処理内容を変更できる逆変換部1102とを備える。
【0024】
プログラム変換部1400は、前記プログラムを、動画像復号部1100の構成を変更できる形式に変換する第1プログラム部分(ハードウエア処理部分)と、動画像再生時において制御部1500が行う第2プログラム部分(ソフトウエア処理部分)とに分割する分割部1401と、第1プログラム部分を動画像復号部1100の構成を変更できる形式に変換する第1の変換部(ハードウエアコンパイラ)1402と、第2プログラム部分を制御部1500が解読して処理を実行できる形式に変換する第2の変換部(ソフトウエアコンパイラ)1403とを備える。
【0025】
この画像再生装置は、ネットワークNTから、動画像再生用のプログラムと符号化された動画像データとを受信し、次にように動作する。
【0026】
まず、論理記述言語で記述された再生アルゴリズムプログラムを受信部1200で受信する。受信データは、伝送切り換え手段1300を通じてプログラム変換部1400に伝送され、分割部1401でハードウエア処理部分とソフトウエア処理部分とに分割される。
【0027】
ハードウエア処理部分は、第1の変換部1402に渡され、プログラマブル論理回路(FPGA)を書き換えることができる形式(ビットストリーム)に変換され、逆量子化部1101と逆変換部1102とを制御部1500からの制御によって書き換える。また、ソフトウエア処理部分は、第2の変換部1403に渡され、プロセッサで処理できる形式に変換された後、制御部1500に渡される。
【0028】
このように構成された図37の画像再生装置に、ネットワークNTから動画像データが送られると、受信部1200で受信し、切り換え手段1300によって動画像復号部1100に伝送され、復号データとして出力される。逆量子化部1101と逆変換部1102とを、回路構成が変更可能な素子で構成することにより、異なるアルゴリズムによって再生される画像データにも対応することができる。
【0029】
以上、従来例1から従来例3で示した例では、プログラマブル論理回路でハードウエア処理される部分と、マイクロプロセッサなどでソフトウエア処理される部分とが固定的に決められているが、ハードウエア処理をソフトウエア処理で置き換える例を、従来例4として次に説明する。
【0030】
Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines(1996)の195ページから203ページに記載されている「Supporting FPGA Microprocessors through Retargetable Software Tools」には、動作中に書換え可能なプログラマブル論理回路を、プロセッサとして使用する技術(DISC)で用いられるプログラムのデバッグ方法が記述されている。
【0031】
この従来例4の論文では、ソフトウエアのデバッグを短時間で行うために、ハードウエアで処理するルーチンを、デバック時にソフトウエアで行うことが示されている。これは、プログラム実行時には繰り返し処理されるルーチンも、デバッグ時は1回処理するのみでよいので、回路規模の大きなハードウエアモジュールを、プログラマブル論理回路に処理時間よりも長い時間をかけて再構成して実行するよりも、ソフトウエアで実行してデバックする方が効率がよいためである。デバック時にどちらで処理するかはデバッグ用のプログラムで指示する。
【0032】
【発明が解決しようとする課題】
しかしながら、以上説明した、処理の一部分をプログラマブル論理回路で処理する情報処理システムに関する従来例1〜4は、次のような問題がある。
【0033】
従来例1では、プログラマブル論理回路で実行する処理は、ひとつのプログラム内で、呼び出し回数の多い関数というように一元的に決めている。このため、情報処理システムが複数のプログラムを用いて複数の処理を一連の処理として一度に行うときには、プログラマブル論理回路を用いた処理を効率的に利用できない欠点がある。
【0034】
例えば、ひとつのプログラム内での呼び出し回数は少ないが、一連の処理として順次に実行される処理全体で共通に数多く呼び出される関数が存在する場合には、プログラマブル論理回路で処理を実行した方が効率的に良い。しかし、従来例1では、一つのプログラム内で呼び出し回数の少ない当該関数の処理をプログラマブル論理回路で実行するようには決定することができない。
【0035】
また、関数によっては、対応する回路情報のサイズが大きいため、プログラマブル論理回路に、回路情報を再構成する時間が長くかかり、たとえ呼び出し回数が多くともソフトウエア処理のほうが処理時間が短い場合もあるが、従来例1では、そのような関数処理であっても、呼び出し回数が多いことからプログラマブル論理回路による処理と決定してしまうことになる。
【0036】
また、従来例2では、アプリケーション毎にハードウエアで処理する部分が予め定められ、そのハードウエアでの処理部分を、プログラム開始前にプログラマブル論理回路に実装している。このため、ハードウエア処理を必要としないソフトウエア処理も回路構成が終了するまで開始されないという問題がある。
【0037】
特に、回路データのサイズが大きいためプログラマブル論理回路への書き込み時間が長いときには、ハードウエア処理よりも処理速度の遅いソフトウエアで処理したほうが、全体の処理時間が短い場合もある。
【0038】
すなわち、従来例2の場合には、個々のハードウエア処理とソフトウエア処理の処理時間だけに注目し、プログラマブル論理回路の再構成時間も含めた処理時間全体の短縮を考慮していないことに問題がある。また、個々のプログラム毎にプログラマブル論理回路を再構成しているので、複数のプログラムを実行するときに共通に用いられる回路も重複して構成されてしまい、非効率であるという問題もある。
【0039】
従来例3では、ネットワークから論理記述言語で記述されたプログラムをダウンロードするので、画像再生装置内でそのプログラムを回路情報に変換する処理に時間がかかるという問題がある。
【0040】
すなわち、論理記述言語から回路情報に変換する処理は、論理記述言語からネットリストに変換し、それをデバイスに合わせてテクノロジーマッピングを行い、配置配線のレイアウト処理を施し、さらに、その結果を回路情報に変換する必要がある。特に、配置配線の処理はアルゴリズムが複雑で、時間がかかることが知られている。
【0041】
つまり、従来例3では、ネットワーク上のサーバに格納されていてクライアントが共有するプログラムに、互換性を持たせる目的で、論理記述言語のような抽象度の高い記述方法を用いるために、クライアントでの前処理量が大きくなり、ハードウエア処理による処理時間の短縮を損なうほどに全体の処理時間が長くなる問題がある。
【0042】
さらに、従来例3では、プログラムをネットワークから取得しているが、ネットワークでの伝送は、途中で通信が切断し、プログラムをダウンロードできないことも起こり得るため、信頼性の点で問題がある。
【0043】
また、従来例4では、プログラム実行時には、繰り返し処理回数が1回以上であっても少ない場合は、ハードウエアモジュールをプログラマブル論理回路に実装して処理するよりは、ソフトウエアで処理したほうが処理時間が短くなる可能性もあるが、デバック時のみハードウエア処理をソフトウエア処理で置換している。すなわち、プログラム実行時におけるプログラマブル論理回路の再構成時間も含めた処理時間全体の短縮を考慮していないことに問題がある。
【0044】
そして、以上の従来例1〜4に共通した問題として、回路情報を取得する時間も含めたプログラマブル論理回路の再構成時間と、一連の処理として実行される複数のプログラムで共通して用いられる処理を考慮しないで、処理をハードウエア処理とソフトウエア処理に一元的に分離していることが挙げられる。
【0045】
この発明は、以上の点にかんがみ、複数の処理を一連の処理として一度に行う情報処理システムにおいて、プログラマブル論理回路による処理を、プログラマブル論理回路の再構成時間も考慮に入れ、かつ、前記一連の処理全体として効率的な処理ができるように、活用できるようにすることを目的とする。
【0046】
【課題を解決するための手段】
上記課題を解決するため、請求項1の発明による情報処理システムは、
CPUが実行するソフトウエアプログラムで処理が記述されたソフトウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行するものであり、かつ、前記一連の処理の一部分が、プログラマブル論理回路で処理可能である情報処理システムであって、
前記処理プログラム内のソフトウエアモジュールが行う処理と同じ処理を、前記プログラマブル論理回路に再構成する回路情報で記述した処理モジュールであるハードウエアモジュールを記憶する記憶装置部と、
前記処理プログラムの処理の実行時に、前記記憶装置部から前記ハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成するハードウエアモジュール取得手段と、
前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、予め定められている実行モジュール選択条件に基づいて、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、
前記ソフトウエアモジュールが行う処理と同じ処理を行うハードウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
前記ハードウエアモジュール取得手段は、前記識別符号に対応するハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成する
ことを特徴とする。
【0047】
また、請求項2の発明は、
ログラマブル論理回路で処理可能であり、前記プログラマブル論理回路に構成する回路情報で処理を記述したハードウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行する情報処理システムであって、
前記処理プログラム内のハードウエアモジュールが行う処理と同じ処理を、CPUが実行するソフトウエアプログラムで記述した処理モジュールであるソフトウエアモジュールを記憶する記憶装置部と、
前記処理プログラムの処理の実行時に、前記記憶装置部から前記ソフトウエアモジュールを入手して、実行プログラム用記憶部に格納するソフトウエアモジュール取得手段と、
前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、予め定められている実行モジュール選択条件に基づいて、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、
前記ハードウエアモジュールが行う処理と同じ処理を行うソフトウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
前記ソフトウエアモジュール取得手段は、前記識別符号に対応するソフトウエアモジュールを入手して、前記実行プログラム用記憶部に格納する
ことを特徴とする。
【0048】
また、請求項3の発明は、
CPUが実行するソフトウエアプログラムで処理が記述されたソフトウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行するものであり、かつ、前記一連の処理の一部分が、プログラマブル論理回路で処理可能である情報処理システムであって、
前記処理プログラムの処理の実行時に、前記処理プログラム内のソフトウエアモジュールが行う処理と同じ処理を、前記プログラマブル論理回路に再構成する回路情報で記述した処理モジュールであるハードウエアモジュールをネットワークを通じて入手して、前記プログラマブル論理回路を再構成するハードウエアモジュール取得手段と、
前記プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、予め定められている実行モジュール選択条件に基づいて、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、
前記ソフトウエアモジュールが行う処理と同じ処理を行うハードウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
前記ハードウエアモジュール取得手段は、前記識別符号に対応するハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成する
ことを特徴とする。
【0049】
また、請求項4の発明は、
ログラマブル論理回路で処理可能であり、前記プログラマブル論理回路に構成する回路情報で処理を記述したハードウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行する情報処理システムであって、
前記処理プログラムの処理の実行時に、前記プログラム内のハードウエアモジュールが行う処理と同じ処理を、CPUが実行するソフトウエアプログラムで記述した処理モジュールであるソフトウエアモジュールをネットワークを通じて入手して、実行プログラム用記憶部に格納するソフトウエアモジュール取得手段と、
前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、予め定められている実行モジュール選択条件に基づいて、前記プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
を備え、
前記ハードウエアモジュールが行う処理と同じ処理を行うソフトウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
前記ソフトウエアモジュール取得手段は、前記識別符号に対応するソフトウエアモジュールを入手して、実行プログラム用記憶部に格納する
ことを特徴とする。
【0050】
また、請求項5の発明は、
請求項1または請求項3に記載の情報処理システムにおいて、
前記プログラマブル論理回路に再構成されているハードウエアモジュールの識別符号を記録する識別符号記録手段を備え、
前記ハードウエアモジュール取得手段は、前記処理プログラムに記述されているハードウエアモジュールの識別符号のうち、前記識別符号記録手段に記録されていない識別符号に対応するハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成する
ことを特徴とする
【0051】
また、請求項6の発明は、
請求項2または請求項4に記載の情報処理システムにおいて、
前記実行プログラム用記憶部に格納されているソフトウエアモジュールの識別符号を記録する識別符号記録手段を備え、
前記ソフトウエアモジュール取得手段は、前記処理プログラムに記述されているソフトウエアモジュールの識別符号のうち、前記識別符号記録手段に記録されていない識別符号に対応するソフトウエアモジュールを入手して、前記実行プログラム用記憶部に格納する
ことを特徴とする。
【0052】
また、請求項7の発明は、
請求項1または請求項3に記載の情報処理システムにおいて、
前記プログラマブル論理回路に再構成されハードウエアモジュールの識別符号を記録する識別符号記録手段を備え、
前記ハードウエアモジュール取得手段は、前記識別符号記録手段に記録されている識別符号に対応する、少なくとも一つ以上のハードウエアモジュールを、前記処理プログラムの実行前に入手して、前記プログラマブル論理回路を再構成する
ことを特徴とする。
【0053】
また、請求項8の発明は、
請求項2または請求項4に記載の情報処理システムにおいて、
前記実行プログラム用記憶部に格納されソフトウエアモジュールの識別符号を記録する識別符号記録手段を備え、
前記ソフトウエアモジュール取得手段は、前記識別符号記録手段に記録されている識別符号に対応する、少なくとも一つ以上のソフトウエアモジュールを、前記処理プログラムの実行前に入手して、前記実行プログラム用記憶部に格納する
ことを特徴とする。
【0054】
また、請求項9の発明は、
請求項1〜請求項8のいずれかに記載の情報処理システムにおいて、
前記実行モジュール決定手段は、
予め設定された実行モジュール選択条件を参照して、前記処理プログラムで記述された処理モジュールを、前記ソフトウエアモジュールと前記ハードウエアモジュールのどちらで実行するかを決定する
ことを特徴とする。
【0064】
【作用】
上述の構成の各請求項の発明による情報処理システムにおいては、予め、ソフトウエアモジュールまたはハードウエアモジュールの一方がプログラム内に記述され、ソフトウエアモジュールあるいはハードウエアモジュールの他方が、システム内の記憶装置部に記憶されている。
【0065】
この記憶装置部に記憶されているハードウエア(またはソフトウエア)モジュールは、ハードウエア(またはソフトウエア)取得手段により読み出され、プログラマブル論理回路に回路情報が再構成(または記憶部に記憶)される。
【0066】
実行モジュール決定手段は、処理プログラムの実行時に、ソフトウエアモジュールとハードウエアモジュールのどちらで処理単位を実行するかを決定する。
【0067】
従来のように、アプリケーションプログラムにおいて、ソフトウエア処理部分と、ハードウエア処理部分とを事前に固定的に決定するものではないので、その実行モジュールの決定時点における、プログラマブル論理回路の再構成時間も考慮に入れた種々の条件に基づいて、プログラムに記述された処理全体として効率のよい実行モジュールを選択するように決定することができる。
【0068】
そして、請求項3または請求項4の発明においては、ハードウエアモジュールあるいはソフトウエアモジュールはシステム内にはなく、ネットワークを通じて取得するようにされる。
【0069】
したがって、この請求項3または請求項4の発明の場合には、システム内にハードウエアモジュールを予め記憶する記憶装置部やソフトウエアモジュールを予め記憶しておく記憶装置部を備える必要がなく、システム構成を簡単にできるものである。そして、もしも、ネットワークの不具合により、ハードウエアモジュールやソフトウエアモジュールのネットワークからの取得が困難な場合であっても、この請求項3または請求項4の発明の場合には、同じ処理内容を実行するソフトウエアモジュールやハードウエアモジュールが存在するので、それらを用いて、処理を中断することなく、継続することが可能である。
【0070】
また、請求項1〜請求項4の発明の情報処理システムにおいては、プログラム内にソフトウエアモジュールに対応するハードウエアモジュールの識別符号、あるいは、ハードウエアモジュールに対応するソフトウエアモジュールの識別符号が記述されている。ハードウエアモジュール取得手段は、その識別符号で指示されるハードウエアモジュールを入手して、プログラマブル論理回路を再構成する。また、ソフトウエアモジュールは、その識別符号で指示されるものが取得されて、メインメモリなどの実行プログラム用記憶部に格納される。
【0071】
したがって、この請求項1〜請求項4の発明によれば、プログラムを構成するソフトウエアモジュールとハードウエアモジュールとの対応を、予め、表などとして取得して保存しておく必要はない。
【0072】
また、請求項の発明の情報処理システムにおいては、プログラマブル論理回路に、既に再構成されているハードウエアモジュールの識別符号が識別符号記憶手段に記憶されている。そして、ハードウエアモジュール取得手段は、プログラムに記述されているハードウエアモジュールの識別符号のうち、識別符号記憶手段に記録されていない識別符号に対応するハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成する。
【0073】
したがって、この請求項の発明によれば、既にプログラマブル論理回路に再構成されている回路情報と同じ回路情報が、プログラマブル論理回路に再構成されることはなく、再構成時間の無駄を省くことができて、既にプログラマブル論理回路に再構成されている回路情報を用いたハードウエア処理を効率よく利用することができる。
【0074】
また、請求項の発明の情報処理システムにおいては、実行プログラム用記憶部に、既に格納されているソフトウエアモジュールの識別符号が識別符号記憶手段に記憶されている。そして、ソフトウエアモジュール取得手段は、プログラムに記述されているソフトウエアモジュールの識別符号のうち、識別符号記憶手段に記録されていない識別符号に対応するソフトウエアモジュールを入手して、前記実行プログラム用記憶部に格納する。
【0075】
したがって、この請求項の発明によれば、既に実行プログラム用記憶部に格納されているソフトウエアモジュールと同じ情報が、実行プログラム用記憶部に再書き込みされることはなく、時間の無駄を省くことができて、既に格納されているソフトウエアモジュールを効率よく利用することができる。
【0076】
また、請求項の発明においては、過去に同種のアプリケーションプログラムによる処理が行われたとき、ハードウエアモジュールの識別符号記憶手段に記憶されている識別符号を用いて、その幾つかのハードウエアモジュールをプログラムの実行前に入手して、プログラマブル論理回路に再構成する。これにより、予め使用が予測されるハードウエアモジュールによるプログラマブル論理回路への再構成がプログラムの実行前から、行われて、全体としての処理時間の短縮化を図ることができる。
【0077】
また、請求項の発明においては、過去に同種のアプリケーションプログラムによる処理が行われたとき、ソフトウエアモジュールの識別符号記憶手段に記憶されている識別符号を用いて、その幾つかのソフトウエアモジュールをプログラムの実行前に入手して、実行プログラム用記憶部に格納する。これにより、予め使用が予測されるソフトウエアモジュールが、プログラムの実行前から、実行プログラム用記憶部に格納されて、全体としての処理時間の短縮化を図ることができる。
【0078】
また、請求項の発明においては、予め、実行モジュール選択条件が設定され、この実行モジュール選択条件をプログラムの実行時に参照して、前記ソフトウエアモジュールと前記ハードウエアモジュールのどちらで実行するかを決定する。したがって、この請求項の発明においては、実行モジュール選択条件を、予め設定しておくことにより、処理時間だけでなく、その他の条件により、いずれのモジュールで処理を実行するかを決定させるようにすることができる。
【0079】
例えば、実行モジュール選択条件としては、▲1▼ハードウエアモジュールのプログラマブル論理回路への再構成時間とソフトウエアモジュールによる処理時間との小さい方、▲2▼処理の際のメモリ消費量が両モジュールで異なる場合、そのメモリ消費量の小さい方、▲3▼ソフトウエアモジュールとハードウエアモジュールによる処理にかかる実行時間の小さい方、▲4▼前記▲1▼〜▲3▼の組み合わせ、などの種々のものがあり、それらをユーザが、種々の要求に応じて設定することができる。
【0087】
【発明の実施の形態】
以下、この発明による情報処理システムの幾つかの実施の形態を、図を参照しながら説明する。
【0088】
[第1の実施の形態]
この発明による、少なくとも処理の一部分が回路構成を再構成できるプログラマブル論理回路で処理される情報処理システムの第1の実施の形態の主要な概念構成を図1に示す。
【0089】
この実施の形態において、対象とするアプリケーションプログラム(単にプログラムという場合もある)100は、当該プログラムにより実行しようとする一連の処理を複数個の処理に分離し、分離された各処理ごとにモジュールとして構成したものである。このモジュールを、この明細書では処理モジュールと称することとする。
【0090】
この第1の実施の形態では、プログラム100を構成する各処理モジュールは、CPUが処理を実行するソフトウエアプログラムで記述されたものである。このソフトウエアプログラムは、それぞれソフトウエアモジュールSMと称することとする。したがって、この実施の形態の場合、アプリケーションプログラム100は、複数個のソフトウエアモジュールSMの集合からなる。
【0091】
この実施の形態においては、記憶装置200に、ソフトウエアモジュールSMのそれぞれが行う処理と同じ処理をプログラマブル論理回路に再構成する回路情報で記述したモジュール(この明細書では、このモジュールをハードウエアモジュールと称する)HMを保存して用意する。記憶装置200は、当該情報処理システム内に設けてもよいし、ネットワーク上の記憶装置であってもよい。
【0092】
この例の場合、プログラム100は、図2に示すように、ヘッダ部HEDと、本体部PRGとからなり、本体部PRGが前述したように複数個のソフトウエアモジュールSMの集合で構成されている。そして、ヘッダ部HEDには、各ソフトウエアモジュールSMと同じ処理をプログラマブル論理回路に再構成する回路情報で記述した、対応するハードウエアモジュールHMの識別符号IDが記述されている。
【0093】
この場合、プログラム100には、同じ処理を行うソフトウエアモジュールSMとハードウエアモジュールHMとの対応が付くように識別符号IDが記述されている。例えば、この例では、本体部PRGの複数個のソフトウエアモジュールSMのプログラム上の処理実行順に従った順番で、各ソフトウエアモジュールSMに対応するハードウエアモジュールHMの識別符号IDが、ヘッダ部HEDに記述される。
【0094】
ハードウエアモジュール取得手段300は、プログラム100中に記述されている識別符号IDを用いて、ソフトウエアモジュールSMが実行する処理と同じ処理を実行するハードウエアモジュールHMを、システム内の記憶装置200から、あるいはネットワーク上の記憶装置200から取得する。そして、ハードウエアモジュール取得手段300は、取得したハードウエアモジュールHMによる回路をプログラマブル論理回路400上に再構成する。
【0095】
プログラム100のソフトウエアモジュールSMによるソフトウエア処理は、CPU500が実行する。
【0096】
実際のアプリケーションプログラム100の処理は、処理モジュールごとに、実行モジュール決定手段600により、ソフトウエアモジュールSMまたはハードウエアモジュールHMのいずれで実行するかが選択されて、実行される。この実施の形態では、実行モジュール決定手段は、選択条件設定手段700に設定されている実行モジュール選択条件に基づいて、どちらのモジュールで処理モジュールを実行するかを決定する。
【0097】
選択条件設定手段700には、予め、例えばソフトウエアやハードウエアによる処理時間、メモリ消費量、プログラマブル論理回路の再構成時間などの種々の選択条件項目を想定し、その一つの条件項目あるいは複数個の条件項目を組み合わせて、実行モジュール選択条件を設定することができる。
【0098】
なお、選択条件設定手段700は、実行モジュール選択条件をユーザにより設定変更可能なように設けられるものである。したがって、実行モジュール決定手段600に対して、予め、特定の実行モジュール選択条件が定められて、その選択条件を変えることなく、その選択条件に従って実行モジュールを決定する場合には、この選択条件設定手段700は、実行モジュール決定手段600に包含されていることになるので、その場合には、特に設ける必要がなくなる。
【0099】
実行モジュール決定手段600での実行モジュールの決定は、プログラム実行前に行う場合と、プログラム実行時に行う場合の2通りがある。この第1の実施の形態では、プログラム実行時であって、各処理モジュールの実行開始時に行う。
【0100】
[第1の実施の形態のハードウエア構成例]
図3は、この発明の第1の実施の形態の情報処理システム10のハードウエア構成例を示すブロック図である。この実施の形態の情報処理システム10においては、CPU11のホストバス11Bに、チップセット12に含まれるメモリコントローラ(図示せず)を介して、DRAMで構成されるメインメモリ13が接続される。
【0101】
ホストバス11Bは、また、チップセット12に含まれるホスト−PCIバスブリッジ(図示せず)を介して、PCIバス14に接続される。PCIバス14には、プログラマブル論理回路インターフェース15を介してプログラマブル論理回路16と、ハードディスクインターフェース17を介してハードディスクドライブ18と、通信インターフェース19とが接続される。
【0102】
通信インターフェース19は、LANやインターネットなどのネットワーク20を介して、プログラマブル論理回路16に再構成される回路情報が格納されている記憶装置21に接続される。
【0103】
ハードディスクドライブ18により読み書きされるハードディスクには、アプリケーションプログラムが格納されている。また、アプリケーションプログラムは、ネットワーク20上の記憶装置(サーバ)に格納されている場合もある。
【0104】
また、ハードディスクドライブ18のハードディスクには、プログラマブル論理回路16に再構成される回路情報が格納されている場合もある。この例の場合、ハードディスクドライブ18により読み書きされるハードディスクは、この情報処理システム10内の記憶装置を構成する。
【0105】
この実施例では、ハードウエア取得手段300と、実行モジュール決定手段600が、図3で示した情報処理システム10のOSのひとつの機能としてソフトウエア的に実装される。
【0106】
次に、プログラマブル論理回路16の構造を図4に示す。プログラマブル論理回路16は、図5に示すように、回路情報を格納するためのコンフィギュレーションメモリ160と、論理セル161と、配線領域162と、入出力端子163とで構成される。
【0107】
コンフィギュレーションメモリ160は、論理セル161内および配線領域162内のSRAM、DRAMなどの書き換え可能なメモリ素子で構成されている。コンフィギュレーションメモリ160にアドレスADRが与えられて、新しい回路情報のデータDAが格納されると、この回路情報に従って、論理セル161内の回路構成と、論理セル161および入出力端子163を相互に接続する配線領域162の接続状態が再構成される。この一連の動作をコンフィギュレーションと呼ぶ。コンフィギュレーションメモリ160の一部分を書き換えることで、プログラマブル論理回路が動作中であっても、回路を部分的に再構成することができる。
【0108】
図5に示すように、プログラマブル論理回路16に再構成されて形成された回路素子164に、処理すべきデータが入力され、また、その処理結果が出力される。
【0109】
[第1の実施の形態による処理の説明]
図6は、この発明の第1の実施の形態における基本的な処理の流れを示すフローチャートである。前述したように、この実施の形態では、ハードウエア取得手段と実行モジュール決定手段が、図3の情報処理システム10のOSのひとつの機能としてソフトウエア的に実装されており、アプリケーションプログラム100の開始により、当該OSにより処理が実行される。
【0110】
以下に説明する例においては、図1の選択条件設定手段700は設けられず、実行モジュール決定手段600内に含まれているものとする。そして、この第1の実施の形態では、コンフィギュレーションが完了したプログラマブル論理回路によるハードウエア処理は、一般に、対応するソフトウエア処理よりも高速処理が可能であることから、実行モジュール選択条件として、「実行する処理モジュールに対応するハードウエアモジュールのプログラマブル論理回路16への再構成が終了しているか否かを判別し、再構成が終了しているときには、処理をハードウエアモジュールにより再構成されたプログラマブル論理回路で実行する」という条件が設定されている。
【0111】
アプリケーションプログラム100の実行に先立ち、まず、図2に示したようにプログラム100内のヘッダ部HEDに記述されているハードウエアモジュールHMの識別符号IDが読み込まれ、プログラマブル論理回路16上に構成するハードウエアモジュールHMがハードウエアモジュール取得手段300で認識される(ステップS11)。
【0112】
次に、2つのルーチンが並行して実行される。ひとつは、ハードウエアモジュール取得手段300によるプログラマブル論理回路16へのコンフィギュレーションの実行で、もうひとつは、実行モジュール決定手段600によるプログラムで実行される、処理モジュールごとのソフトウエアモジュールSMまたはハードウエアモジュールHMの決定およびその処理モジュールの実行である。
【0113】
ハードウエアモジュール取得手段300は、先に読み込まれた識別符号IDの最初の識別符号IDに対応するハードウエアモジュールHMの回路情報を、情報処理システム10内の記憶装置18またはネットワーク20上の記憶装置21から、プログラマブル論理回路16のコンフィギュレーションメモリ160に転送し、コンフィギュレーションを実行して、実行モジュール決定手段600からの問い合わせに対し、コンフィギュレーションの成否を答える(ステップS12)。
【0114】
そして、ハードウエアモジュール取得手段300は、最初のハードウエアモジュールHMのコンフィギュレーションが完了すると、次のハードウエアモジュールHMがあるか否か判断し(ステップS13)、次のハードウエアモジュールHMがあれば、ステップS12に戻って、その識別符号IDに対応するハードウエアモジュールHMの回路情報を、情報処理システム10内の記憶装置18またはネットワーク20上の記憶装置21から、プログラマブル論理回路16のコンフィギュレーションメモリ160に転送し、コンフィギュレーションを実行する。
【0115】
ハードウエアモジュール取得手段300は、先に読み込んだ識別符号IDのすべてのハードウエアモジュールHMについて、上述の処理を実行して、そのコンフィギュレーションを行うようにする。
【0116】
実行モジュール決定手段600は、実行しようとする処理モジュールに対応するハードウエアモジュールHMのコンフィギュレーションが完了しているか否か、ハードウエアモジュール取得手段300に問い合わせて判断し(ステップS14)、当該対応するハードウエアモジュールHMのコンフィギュレーションが完了していれば、ハードウエアモジュールHMによる処理を行い(ステップS15)、コンフィギュレーションが完了していなければ、対応するソフトウエアモジュールSMによる処理を実行する(ステップS16)。
【0117】
そして、当該処理モジュールの処理が終了すると、次の処理モジュールがあるか否か判断し(ステップS17)、次の処理モジュールがあれば、ステップS15に戻り、次の処理モジュールがなければ、このアプリケーションによる処理を終了する。
【0118】
ここで、ハードウエアモジュール取得手段300と、実行モジュール決定手段600との間でのコミュニケーションは、図3のシステム10においては、具体的には、次のようにしてなされる。
【0119】
すなわち、ハードウエアモジュールHMがプログラマブル論理回路16上にコンフィギュレーションされると、PCIバス14を介してCPU11上で稼動するOSに検知され、そのOSの一部として機能しているハードウエアモジュール取得手段300から、実行モジュール決定手段600に通知される。
【0120】
また、プログラムの処理状況がCPU11上で稼動するOSで検知され、このOSの一部として機能している実行モジュール決定手段600から、ハードウエアモジュール取得手段300に対して、ハードウエアモジュールHMの回路情報の転送およびコンフィギュレーションの開始や中断が指示される。
【0121】
以上のようにして、この実施の形態では、処理モジュールの実行をするときに、対応するハードウエアモジュールHMが、プログラマブル論理回路16に再構成されていれば、当該処理モジュールの処理は、ハードウエアモジュールで実行するようにする。
【0122】
前述もしたように、通常、プログラマブル論理回路へのコンフィギュレーションのための時間を考慮しなければ、ハードウエアで処理した方が高速処理が可能である。したがって、上述のように、コンフィギュレーションが完了した時点から、そのコンフィギュレーションが完了したハードウエアモジュールで処理を実行することで、アプリケーションプログラムによる一連の処理を高速に行うことができるようになる。
【0123】
[処理の具体例の実施例(第1の実施例)]
次に、図7、図8および図9のフローチャートを用いて、第1の実施の形態の処理の具体例である第1の実施例を、以下に説明する。
【0124】
図7は、この第1の実施例における、図6のフローチャートに対応する詳細な処理の流れの全体を示したフローチャートである。図8は、図7におけるハードウエアモジュールHMのコンフィギュレーションのルーチンのステップS22の詳細なフローチャートを示している。また、図9は、図7におけるソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理ルーチンのステップS32の詳細なフローチャートを示している。
【0125】
図7において、ソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理と、ハードウエアモジュールHMのコンフィギュレーションは並行して実行される。
【0126】
ここで、この第1の実施例では、ソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理モジュールをM種類行い、これらのM種類の処理モジュールからなる一連の処理を、N回繰り返すものとする。
【0127】
図7に示すように、アプリケーションプログラムの実行に先立ち、ハードウエアモジュールの識別符号がアプリケーションプログラムのヘッダ部から読み取られる(ステップS11)。このあと、ハードウエアモジュールHMのコンフィギュレーションを行うルーチンR20と、ソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理を行うルーチンR30とが並行して実行される。
【0128】
ルーチンR20においては、まず、M種類のハードウエアモジュールの、何番めまでのハードウエアモジュールHMがコンフィギュレーションされたかを示す変数iを初期化し(ステップS20)、その後、ハードウエアモジュールHMのコンフィギュレーションの処理ルーチンR40を実行するステップS22に進む。
【0129】
このステップS22のコンフィギュレーションの処理ルーチンR40においては、図8に示すように、i番目のハードウエアモジュールHMが、プログラマブル論理回路16上に存在するかどうかを確認し(ステップS41)、存在すれば、既に構成されていることをOSに通知する(ステップS43)。i番目のハードウエアモジュールHMが、プログラマブル論理回路16上に存在しなければ、ステップS42のコンフィギュレーションを行う。
【0130】
このステップS42のコンフィギュレーションにおいては、まず、ハードウエアモジュールHMの回路情報が、情報処理システム10内の記憶装置に存在するかを確認し、存在すれば情報処理システム10内の記憶装置から回路情報を取得し、存在しなければ、ネットワーク20上の記憶装置21から回路情報を取得して、コンフィギュレーションを行う。
【0131】
そして、ハードウエアモジュールHMの構成が終了した時点で、ステップS43に移り、コンフィギュレーションの終了をOSに通知し、図7に戻って変数iをカウントアップする(ステップS23)。
【0132】
ハードウエアモジュールHMのコンフィギュレーションが完了する前に、このハードウエアモジュールHMに対応する処理が開始される場合には、ソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理を行うルーチンR30で、ソフトウエアモジュールSMによる処理が行われるが、ハードウエアモジュールHMのコンフィギュレーションは続行される。
【0133】
そして、M種類のハードウエアモジュールHMのすべてを、コンフィギュレーションする途中で、アプリケーションプログラム100により実行される一連の繰り返し処理数をカウントする変数jが、j>Nとなったと判別され(ステップS24)、アプリケーションが終了する場合には、M種類のハードウエアモジュールHMのうちの一部は、コンフィギュレーションされない。
【0134】
しかし、情報処理システム10内の記憶装置に余裕があれば、ネットワーク20上の記憶装置21から回路情報を取得することを続行することもできる。そのようにすれば、同種のアプリケーションが、その後に実行されるときに、ネットワーク20からの回路情報の取得が完了しており、その分のアクセス時間を短縮することができる。また、後で、ネットワーク20から取得しようとしたときに、ネットワーク20に障害が生じていて、必要なハードウエアモジュールHMが取得できない事態になっても、その影響が最小限に押さえられる。
【0135】
次に、コンフィギュレーションするべきハードウエアモジュールHMが残っているかを確認するために、変数iと変数Mを比較する(ステップS25)。変数iが、変数Mと等しいか小さければ、次のハードウエアモジュールHMのコンフィギュレーションを開始し、変数iが変数Mよりも大きければ、すべてのハードウエアモジュールHMがプログラマブル論理回路16上に構成されたことがわかり、図8のコンフィギュレーション処理を終了する。
【0136】
次に、図7において、ルーチン20と並行して実行されるルーチンR30では、まず、一連の繰り返し処理数をカウントする変数jが初期化され(ステップS31)、その後、ソフトウエアモジュールSMまたはハードウエアモジュールHMによる処理を実行するルーチンR50のステップS32に移る。
【0137】
このステップS32のルーチンR50においては、図9に示すように、まず、M種の処理モジュールの何番めの処理モジュールによる処理であるかをカウントする変数kが初期化される(ステップS51)。
【0138】
次に、k番目のハードウエアモジュールHMが、プログラマブル論理回路16上に構成されたかを確認するために、このルーチンR50で、M種のハードウエアモジュールHMのうちの何番目までのコンフィギュレーションが終了したかを示す変数iと、前記処理を実行しようとする処理モジュールが、M種の処理モジュールの何番目であるかの変数kとの比較を行なう(ステップS52)。
【0139】
変数kが変数iより小さければ、プログラマブル論理回路16上に、k番目の処理モジュールに対応するハードウエアモジュールHMの構成が終了していることがわかるので、ハードウエアモジュールHMで処理を実行する(ステップS53)。
【0140】
変数kが、変数iに等しいか、変数iより大きければ、まだ、k番目の処理モジュールに対応するハードウエアモジュールHMが、プログラマブル論理回路16上に構成されていないので、ソフトウエアモジュールSMで処理を実行する(ステップS54)。
【0141】
次に、処理モジュールが何番目のものであるかの変数kをカウントアップし(ステップS55)、次のk+1番目の処理モジュールについて、その前のk番目の処理モジュールと同様にしてステップS52からステップS55のステップを実行し、それを、最後のM番目の処理モジュールまで前記処理ステップを繰り返す(ステップS56)。そして、最後のM番目の処理モジュールについての処理が終了したときには、図7のルーチンに戻る。
【0142】
図7においては、繰り返しの変数jをカウントアップし(ステップS33)、次の繰り返し処理が開始される。繰り返し処理をN回行うとアプリケーションは終了する(ステップS34)。
【0143】
以上説明したように、第1の実施例においては、M種の処理モジュールのN回の繰り返しを行う処理のアプリケーションプログラムにおいて、最初は、ソフトウエアモジュールSMによる処理が実行されるが、繰り返し処理の間に、M種のハードウエアモジュールHMのコンフィギュレーションが、徐々に完了し、その完了したハードウエアモジュールHMが順次に使用される。したがって、繰り返し処理の繰り返しの回数が増加するにつれて、コンフィギュレーションが完了するハードウエアモジュールHMの数も増加し、処理速度が徐々に上がり、全体としての処理時間は、短縮化されるものである。
【0144】
[第1の実施の形態の処理の他の実施例(第2の実施例)]
次に、この発明の第1の実施の形態を、画像処理に適用したより詳細な実施例(第2の実施例という)について説明する。この第2の実施例では、線形変換処理、ノイズ除去処理および輪郭強調処理の3種の処理を、それぞれ以下に説明するような3種の画像フィルタを用いて画像データについて行うことにより、不鮮明な画像を鮮明にする画像処理を行うようにする。まず、各画像フィルタについて説明する。
【0145】
[ノイズ除去処理用フィルタの例の説明]
画像処理のひとつである空間フィルタ処理は、単位画素から構成される画像ファイルの単一もしくは複数画素に対して演算を行う。これは、ある画素(データxl,m )の近傍の画素(データpl,m )に、マスクデータfilterl,m を掛けて足し合わせ、係数Nを乗じたものを処理後の画素値xl,m として得る処理として、次の式(1)のように表すことができる。ここで、マスクデータfilterl,m や係数Nの値を変えることにより、空間フィルタは様々な処理を実行することが可能である。
【0146】
【数1】
Figure 0004212676
【0147】
図10は、画像にガウス分布の平滑化処理を施してノイズ除去を行うGaussianフィルタと呼ばれる画像フィルタのマスクデータの例である。中心画素のデータxl,m およびその近傍の3×3画素内にある8画素のデータpl,m に、マスクデータの係数filterl,m を掛けて足し合わせ、係数N(=1/16)を乗じて中心画素のデータと置き換える。このフィルタ処理を施すことにより、画像のノイズを除去することができる。
【0148】
図11は、図10のGaussianフィルタ処理を実現するソフトウェアモジュールSmABC001のプログラムを示すものである。また、図12は、図10のGaussianフィルタ処理を実現するハードウエアモジュールHmABC001の回路を示すものである。
【0149】
そして、前述もしたように、この場合、ある任意の処理モジュールに対し、同一の入出力仕様を持つソフトウェアモジュールとハードウェアモジュールを対にして持つ。それぞれのモジュールには唯一の識別符号が付けられている。例えば、Gaussianフィルタ処理に、「ABC001」という処理を識別する符号を付けるとすれば、ソフトウェアモジュールSMには、ソフトウエアモジュールであることを示す接頭語Smを付けて、SmABC001という識別符号を付け、ハードウェアモジュールHMには、ハードウエアモジュールであることを示す接頭語Hmを付けて、HmABC001という識別符号を付けることにする。
【0150】
ソフトウェアモジュールSMは、例えばC/C++言語などで記述されたソースプログラムをコンパイルしたものであり、ハードウェアモジュールHMは、例えば図12に示すような回路構成を、プログラマブル論理回路16上に構成する回路情報である。
【0151】
図11は、GaussianフィルタのソフトウェアモジュールとなるCプログラムの一例である。演算を施す元の画像データp[l][m]に対し、for文を用いた二重ループ構成によって、あらかじめ図10に示すフィルタ係数を代入した配列filter[l][m]を乗算し、累積した後、ビットシフト演算子によって4ビット下位にシフトすることで、1/16の演算を実現する。
【0152】
図12は、ハードウェアによる、対応するGaussianフィルタの回路構成の一例である。元の画像ファイルからフィルタ処理を行うマスク領域のうち、p[l-1][m-1],p[l][m-1],p[l+1][m-1]の3画素分のデータを、一つのデータとして、ハードウェアモジュールHMに転送する。例えば、1画素当たり8ビットのデータであれば、3つのデータを結合して、24ビットのデータとして転送する。
【0153】
転送されたデータは、ハードウェアモジュールのINに入力され、最初のクロックでレジスタ101,102,103に入力される。結合したデータはここで分離されて出力D1,D2,D3とされ、これらの出力D1,D2,D3が、それぞれレジスタ111,112,113および加算器211、212、213に入力される。
【0154】
そして、次のクロックで、p[l-1][m],p[l][m],p[l+1][m]の3画素分のデータが、同様にして出力D1,D2,D3に現れる。この時点で、加算器211,212,213の出力A1,A2,A3は、それぞれ、
A1=p[l-1][m-1]+p[l-1][m]
A2=p[l][m-1]+p[l][m]
A3=p[l+1][m-1]+p[l+1][m]
となる。
【0155】
この加算器211,212,213の出力は、同時に、レジスタ121,122,123および加算器221,222,223に入力されている。
【0156】
そして、その次のクロックで、p[l-1][m+1],p[l][m+1],p[l+1][m+1]の3画素分のデータが、同様にして、出力D1,D2,D3に現れる。
【0157】
このとき、加算器211,212,213A1,A2,A3の出力は、それぞれ、
A1=p[l-1][m]+p[l-1][m+1]
A2=p[l][m]+p[l][m+1]
A3=p[l+1][m]+p[l+1][m+1]
であり、また、加算器221,222,223の出力A4,A5,A6は、それぞれ、
A4=p[l-1][m-1]+p[l-1][m]×2+p[l-1][m+1]
A5=p[l][m-1]+p[l][m]×2+p[l][m+1]
A6=p[l+1][m-1]+p[l+1][m]×2+p[l+1][m+1]
となる。
【0158】
ここで、レジスタ101,102,103,111,112,113,121,122,133を動作させているクロックを止め、シフトレジスタ301により、1ビット上位にシフトさせることで、加算器222の出力A5が2倍されて、シフトレジスタ301の出力A7とされる。
【0159】
次に、加算器231,232により、加算器221、223の出力A4,A6と、シフトレジスタ301の出力A7との総和をとり、シフトレジスタ302によって、下位に4ビットシフトすることで、1/16の演算が実行される。以上で、単位マスク領域でのGaussianフィルタ処理が終了する。以降この処理を繰り返すことで、画像全体の処理が施される。
【0160】
以上のように、この実施例では、Bi−nominalフィルタ回路構成によって、Gaussianフィルタを実現しているが、他にも様々なアルゴリズムが考えられる。
【0161】
[輪郭強調処理用のフィルタの例の説明]
図13は、2次微分によりエッジを検出するLaplacianフィルタと呼ばれる画像フィルタに原画像を加えたマスクデータである。このフィルタ処理を施すことにより、画像の輪郭強調を行うことができる。
【0162】
図14は、図13のLaplacianフィルタ処理を実現するソフトウェアモジュールSmXYZ001のプログラム例を示すものである。また、図15は、図13のLaplacianフィルタ処理を実現するハードウエアモジュールHmXYZ001の回路例を示すものである。
【0163】
図14は、図13と同様なアルゴリズムを持つCプログラムの一例で、フィルタ係数を代入した配列filter[l][m]が、図13に示すエッジ強調フィルタの係数に置き換えられたものである。
【0164】
図15は、ハードウェアによるLaplacianフィルタの回路構成の一例である。まず、元の画像データの演算する単位領域から、データストリームとして、例えば、p[l][m],p[l-1][m],p[l][m-1],p[l][m+1],p[l+1][m]を構成し、時系列的にハードウェアモジュールの入力端INへ入力する。
【0165】
4クロックによって、前記のデータストリームを入力した時点で、画像データp[l][m],p[l-1][m],p[l][m-1],p[l][m+1],p[l+1][m]が、それぞれレジスタ44、43、42、41の出力端34,33,32,31および入力端INに現れている。そして、このとき、加算器45,46および47による演算によって、加算器47の出力端38には、
p[l-1][m]+p[l][m-1]+p[l][m+1]+p[l+1][m]
が出力されている。
【0166】
一方、シフトレジスタ50により、その入力データが2ビット左シフトされることで、このシフトレジスタ50の出力端37には、
4×p[l][m]
が出力される。
【0167】
そして、減算器48により、シフトレジスタ50の出力端37のデータと、加算器47の出力端38のデータとの減算が行われ、この減算器48の出力端39には、
4×p[l][m]−(p[l-1][m]+p[l][m-1]+p[l][m+1]+p[l+1][m])
が出力され、さらに加算器49により、この出力端39の出力データに、レジスタ44の出力端34の出力データp[l][m]が加算されることで、エッジ強調出力がOUTに得られる。
【0168】
[線形変換処理用のフィルタの例の説明]
図16は、画像の単一画素の線形変換を行うフィルタを実現するソフトウェアモジュールSmPQR001のプログラム例を示し、また、図17は、そのハードウェアモジュールHmPQR001の回路例を示す。このフィルタ処理を施すことにより、画像の濃度分布を線形に変換してコントラストなどを補正することができる。
【0169】
図16の例は、画像の単一画素の線形変換を行うフィルタを、C言語で記述したソフトウェアモジュールの一例であり、次の式(2)で示す線形変換を用いている。
【0170】
x(l,m)=a×p(l,m)+b 式(2)
図17は、この線形変換を実現する回路の一例である。この例では、線形変換は、ルックアップテーブル(LUT)方式を用いている。すなわち、入力データINに対し、テーブル55を参照して、前記式(2)に対応する値OUTを出力する。
【0171】
テーブル55は、SRAMやROMなどのメモリ回路でテーブルデータをあらかじめ設定することで実現することができる。また、式(2)に従った入出力の真理値表を作って、アンドゲート、オアゲート、イクスクルーシブオアゲートなどの基本的ロジックゲートで、回路を構成することでテーブルを実現することもできる。
【0172】
この線形変換の動作は、元の画像データから、画素データp[l][m]を、順次、入力データINとしてハードウェアモジュールに転送し、この入力データに対する出力データOUTをテーブル55を参照して求め、出力するものである。
【0173】
[処理の具体例の第2の実施例の説明]
第2の実施例では、以上説明した3つの画像フィルタを連続して処理することにより、画像のコントラストを上げ、ノイズを除去し、輪郭の強調をすることができ、不鮮明な画像を鮮明にするという画像処理アプリケーションを実現するものである。
【0174】
このアプリケーションプログラムAPの構造を、図18を用いて説明する。このアプリケーションプログラムAPで利用するソフトウェアモジュールSMと、ハードウェアモジュールHMとを関連付ける識別符号IDのリストが、アプリケーションプログラムAPのヘッダ部HEDに付加されている。
【0175】
プログラムAP内では、ハードウェアモジュールSMとソフトウェアモジュールHMとが、二重化された処理として呼び出される。
【0176】
利用する処理モジュールは、ABC001,XYZ001,PQR001の3つとされるので、ヘッダ部HEDには、これらの処理に対応するハードウエアモジュールHMの識別符号HmABC001,HmXYZ001,HmPQR001が記載されている。
【0177】
ソフトウェアモジュールSMとハードウェアモジュールHMとは同一の引数および戻り値を持って互換性が完全に保たれており、アプリケーションプログラムAPからは同じ処理モジュールに見えるように構成されている。
【0178】
次に、この画像処理の動作を図19およびその続きである図20に示したフローチャートに示す。この図19および図20のフローチャートは、図7〜図9を用いて説明した処理動作に対応しており、対応する各ステップには、同一ステップ番号を付してある。
【0179】
図21は、この画像処理動作のタイミングチャートを示すものである。図19、図20のフローチャートと、この図21のタイミングチャートを用いて、この第2の実施例の画像処理動作を以下に説明する。なお、図21では、処理aが線形変換PQR001、処理bがGaussianフィルタを使ったノイズ除去処理ABC001、処理cがLaplacianフィルタを使った輪郭強調処理XYZ001をそれぞれ示している。
【0180】
また、使用する処理モジュールは、線形変換PQR001、ノイズ除去処理ABC001、輪郭強調処理XYZ001の3種類なので、図7〜図9における処理モジュール数Mは3となる。また、画像のR(赤データ)、G(緑データ)、B(青データ)の各プレーンに対して、処理aから処理cまでを繰り返し実行するので、図7〜図9における繰り返し数Nは3となる。
【0181】
図21において、時点t0で、アプリケーションプログラムが起動すると、プログラムAPの初期化処理や処理画像の準備などが行われる。同時にアプリケーションプログラムAPのヘッダ部HEDにある識別符号IDを読み込み、そこに記載されているハードウェアモジュールHMの回路情報を取得して、プログラマブル論理回路上にコンフィギュレーションする処理を、時点t1から開始する。
【0182】
図19において、繰り返し数をカウントするjが初期化されてj=1となり(ステップS31)、画像のRプレーンに対する処理を開始する。次に何番めのモジュールデータについての処理かを示す変数kを初期化してk=1とする(ステップS51)。
【0183】
図21において、処理a(PQR001)を実行する直前の時点t2で、OSにコンフィギュレーション完了を問い合わせる(ステップS52)。完了していない場合(k≧i)、アプリケーションプログラムAPは、ソフトウェアモジュールSmPQR001を使って処理を実行する(ステップS53)。
【0184】
以降、処理bおよび処理cの直前の時点t4、t6でも同様の問い合わせを、OSに対し行う。しかし、この例では、図21のタイミングチャートに示すように、対応するハードウエアモジュールHmABC001,HmXYZ001のコンフィギュレーションが完了していないので、それぞれソフトウエアモジュールSmABC001,SmXYZ001を用いて処理を実行して、繰り返し処理の1回目が終了する。
【0185】
一方、図21に示すように、処理aのハードウェアモジュールHmPQR001がプログラマブル論理回路16上にコンフィギュレーションされると、OSに対し、時点t8で、そのコンフィギュレーションの完了が通知される(ステップS43)。
【0186】
上述した繰り返し処理の1回目が終了した後に、画像のGプレーンを処理する繰り返し処理の2回目が始まり(j=2)、再び、処理aの直前の時点t9までプログラムが進行すると、再び、OSにコンフィギュレーション完了を問い合わせる(ステップS52)。コンフィギュレーション完了(k<i)の返答があると、今度は、処理データをハードウェアモジュールHmPQR001に渡し、ハードウェアで処理した後、時点t11 で、結果のみをプログラムへ戻す(ステップS53)。
【0187】
処理bの直前の時点t12 でも、OSに対し問い合わせを行うが(ステップS52)、この例では、図21に示すように、対応するハードウエアモジュールHmABC001のコンフィギュレーションが完了していないので、ソフトウエアモジュールSmABC001で処理を行う(ステップS53)。
【0188】
しかし、処理cの直前の時点t16 でOSに対し問い合わせを行うと、この例では、図21に示すように、対応するハードウエアモジュールHmXYZ001のコンフィギュレーションが完了しているので、このハードウエアモジュールHmXYZ001で処理を行って(ステップS53)、繰り返し処理の2回目が終了する。
【0189】
繰り返し処理の2回目が終了した後に、画像のBプレーンを処理する繰り返し処理の3回目が始まる(j=3)。このときには、各処理の直前の時点t18 、t20 、t22 で、OSにコンフィギュレーションを問い合わすと、対応するハードウエアモジュールHmPQR001,HmABC001,HmXYZ001の全てがプログラマブル論理回路16上にコンフィギュレーションされているので、処理a,b,cは、全て、ハードウェアモジュールHmPQR001,HmABC001,HmXYZ001にて処理が実行され、くり返し処理の3回目が終了し、アプリケーションも終了する。
【0190】
以上のようにして、この第1の実施の形態の第2の実施例においても、ソフトウエアモジュールによる処理を実行しながら、ハードウエアモジュールのプログラマブル論理回路16へのコンフィギュレーションを並行して行い、コンフィギュレーションが完了したものについては、プログラマブル論理回路16によるハードウエア処理を行うようにしたので、コンフィギュレーションの時間を考慮することなく、効率的にソフトウエア処理と、ハードウエア処理を行って、全体としての処理時間の短縮化を図ることができる。
【0191】
[第2の実施の形態]
次に、この発明による情報処理システムの第2の実施の形態の構成を図22に示す。
【0192】
この第2の実施の形態においては、ハードウエアモジュール取得手段300が取得して、プログラマブル論理回路400に構成したハードウエアモジュールHMの識別符号は、識別符号記録手段800に記録される点が、第1の実施の形態と異なる。他の構成要素は、第1の実施の形態と同様である。
【0193】
この実施の形態の場合、識別符号記録手段800には、ハードウエアモジュール取得手段300により、情報処理システム内の記憶装置あるいはネットワーク20上の記憶装置21から取得されて、プログラマブル論理回路400に再構成されたハードウエアモジュールHMの識別符号IDが、その再構成順に記録される。したがって、この識別符号記録装置800には、ハードウエアモジュールHMの使用履歴が記録されることになる。
【0194】
この第2の実施の形態のハードウエア構成は、識別符号記録手段800を、次に説明するように構成することにより、図3に示した第1の実施の形態を実現する情報処理システム10と同じハードウエア構成で実現できる。
【0195】
すなわち、ハードウエアモジュールHMのコンフィギュレーションが終了し、図8のステップS43に示すように、コンフィギュレーションの終了がOSに通知されたとき、コンフィギュレーションが終了したハードウエアモジュールHMの識別符号を、システム10内の記憶装置、例えば、図3のハードディスクドライブ18によりハードディスクやメインメモリ13に記録することにより、識別符号記録手段800を実現する。
【0196】
[処理の具体例の実施例(第3の実施例)]
次に、この第2の実施の形態における第1の実施例(以下、第3の実施例という)を、図23のフローチャートを用いて説明する。
【0197】
この第3の実施例は、紙文書をスキャナで読み込んで、電子文書に変換する処理の例である。紙文書は、文字で記述された文字部分と、図や写真の画像部分で構成される。
【0198】
図23に示すように、まず、最初に、スキャナを使って、画像部の読み取りに必要な解像度と階調数で紙文書を読み取り、画像データとして蓄積する(ステップS61)。次に、読み取った画像データを、既知の文字画像分離処理技術を用いて、文字部と画像部に分離する(ステップS62)。
【0199】
分離した文字部の画像データは、第1のアプリケーションによって、Laplacianフィルタによりエッジ強調の前処理を行い(ステップS63)、既知の文字認識技術を用いて認識し(ステップS64)、文字コードによって表される文字データに変換する(ステップS65)。
【0200】
また、画像部の画像データは、第2のアプリケーションによって、前述の第2の実施例で述べた線形変換処理によりコントラストを整え(ステップS66)、第2の実施例で述べたGaussianフィルタによりノイズを除去し(ステップS67)、さらに、第2の実施例で述べたLaplacianフィルタにより、エッジを強調して(ステップS68)、ディスプレイ表示に適した画像データに変換する(ステップS69)。
【0201】
最後に、例えば市販の電子文書編集ソフトウエアを用いて、文字部の文字データと画像部の画像データを、所望のレイアウトに編集して(ステップS70)、電子文書が完成する。
【0202】
第1のアプリケーションと第2のアプリケーションは、ともに前記第2の実施例で示したアプリケーションと同じように、アプリケーションを構成するソフトウエアモジュールSMと同じ処理をするハードウエアモジュールHMの識別符号IDをアプリケーションのヘッダ部HEDに持つ。
【0203】
すなわち、第1のアプリケーションは、Laplacianフィルタのハードウエアモジュールの識別符号HmXYZ001を、そのヘッダ部HEDに持ち、また、第2のアプリケーションは、Gaussianフィルタのハードウエアモジュールの識別符号HmABC001と、線型変換のハードウエアモジュールの識別符号HmPQR001とを、そのヘッダ部HEDに持つ。
【0204】
この第2の実施の形態のハードウエアモジュール取得手段300は、第1の実施の形態で述べた手順と同様の手順で、第1のアプリケーションと第2のアプリケーションからハードウエアモジュールHMの識別符号IDを読み込むことで、コンフィギュレーションするハードウエアモジュールHMを認識する。
【0205】
例えば、第1のアプリケーション、第2のアプリケーションの順序で実行する場合、第1のアプリケーションが実行されるときに、ハードウエアモジュールHmXYZ001が、プログラマブル論理回路400に構成され、識別符号HmXYZ001が識別符号記録手段800に記録される。
【0206】
そして、第2のアプリケーションが実行されるときには、ハードウエアモジュール取得手段300は、3種のハードウエアモジュールHmPQR001,HmABC001,HmXYZ001を取得して、コンフィギュレーションする必要があるが、ハードウエアモジュール取得手段300が、識別符号記録手段800を参照することにより、ハードウエアモジュールHmXYZ001は、既にプログラマブル論理回路上に構成されていることが分かる。
【0207】
そこで、ハードウエアモジュール取得手段300は、第2のアプリケーションを実行するときには、ハードウエアモジュールHmXYZ001は、重ねてコンフィギュレーションすることはしない。しかし、ハードウエアモジュールHmXYZ001は、既にプログラマブル論理回路400上に構成されているので、前述した第1の実施例と第2の実施例で示したハードウエアモジュールの構成手順を経ること無く、LaplacianフィルタのソフトウエアモジュールHmXYZ001をハードウエアモジュールに置き換えて処理することができる。
【0208】
[処理の具体例の実施例(第4の実施例)]
次に、この発明の第2の実施の形態における他の実施例(以下、第4の実施例という)を説明する。
【0209】
前述の第3の実施例で示した、画像データからの文字認識を行う第1のアプリケーションと、画像データをディスプレイ表示に適した画像に変換する第2のアプリケーションは、それぞれが独立した処理であるから、それぞれが異なった画像データを処理することもできる。この第4の実施例は、それぞれ第1および第2のアプリケーションが異なった画像データを処理する場合である。
【0210】
この第4の実施例において、第1のアプリケーションと第2のアプリケーションを続けて実行する場合は、識別符号記録手段800を参照することにより、共通に用いられるハードウエアモジュールHmXYZ001が、一方のアプリケーションを実行した後には既にプログラマブル論理回路上に構成されていることが分かる。したがって、他方のアプリケーションを実行するときに、第1、第2の実施例で示したハードウエアモジュールのコンフィギュレーションを行うこと無く、Laplacianフィルタのソフトウエアモジュールを、ハードウエアモジュールHmXYZ001に置き換えて処理するようにする。
【0211】
また、第4の実施例においては、一方のアプリケーションを実行した後に、情報処理システムの運転を停止し、後にシステムの運転を再開して他方のアプリケーションを実行するときには、次のようにすることにより、ハードウエアモジュールのコンフィギュレーションを効率的に行うことができる。
【0212】
すなわち、システムを再開したときに、他方のアプリケーションの処理開始前に、識別符号記録手段800を参照して、記録されている識別符号に対応するハードウエアモジュールHMを、プログラマブル論理回路16上に構成する。
【0213】
これにより、他方のアプリケーションの処理を開始したときには、既に、前に処理を行ったアプリケーションと共通に用いるハードウエアモジュールHmXYZ001は、プログラマブル論理回路400上に構成されている。
【0214】
したがって、第1、第2の実施例で示したハードウエアモジュールの構成手順を経ること無く、Laplacianフィルタのソフトウエアモジュールを、共通に用いるハードウエアモジュールHmXYZ001に置き換えて処理することができる。
【0215】
[第3の実施の形態]
第3の実施の形態は、この発明の実施の形態ではなく、参考例である。
以上の第1および第2の実施の形態は、各処理モジュールをソフトウエアモジュールSMで行うか、ハードウエアモジュールHMで行うかを、アプリケーションプログラムの実行時に決定するようにしたが、この決定は、アプリケーションプログラムの実行前に行うようにすることもできる。
【0216】
この第3の実施の形態は、実行モジュール決定手段600での実行モジュールの決定を、アプリケーションプログラムの実行前に行うようにする場合である。この第3の実施の形態の場合の情報処理システム60のハードウエア構成例を図24に示す。
【0217】
この第3の実施の形態の場合の情報処理システム60は、PCIバス14に対して、LCDやCRTからなるディスプレイ61が、ディスプレイインタ−フェース62を通じて接続されるとともに、キー操作部63が、キーインターフェース64を通じて接続されて構成される。他は、図3の情報処理システムと同様である。
【0218】
[処理の具体例の実施例(第5の実施例)]
この第3の実施の形態における実施例(以下、第5の実施例という)を、前述した画像処理のアプリケーションプログラムと同じく、コントラスト調整、ノイズ除去、輪郭強調を画像データに施すとき、当該プログラムの実行前に実行モジュールを判断する場合の例として説明する。
【0219】
この第5の実施例の場合、アプリケーションプログラムのヘッダ部HEDには、各ソフトウエアモジュールSMの識別符号と、ハードウエアモジュールHMの識別符号とが、対応して記述されるとともに、それぞれのモジュールの能力などに関する情報、例えば、それぞれの処理にかかる時間、ソフトウエアモジュールのメモリ使用量、ハードウエアモジュールのプログラマブル論理回路セル使用量などが、記述されている。
【0220】
この実施例の情報処理システム60は、アプリケーションプログラムの実行前に、このヘッダ部HEDの情報を取得する。そして、前記のソフトウエアモジュールSMおよびハードウエアモジュールHMについての能力等に関する情報を、ディスプレイ61の画面61Dに表示する。
【0221】
図25は、前述した画像処理を実行する前に表示される情報処理システム60のディスプレイ61の画面61Dの例である。すなわち、この画面61Dには、この実施例においては、ソフトウエアモジュールSMとハードウエアモジュールHMのそれぞれの識別符号に対応して記述されている、処理時間、ソフトウエアモジュールのメモリ使用量、ハードウエアモジュールのプログラマブル論理回路セル使用量が表形式で表示される。
【0222】
ユーザは、期待する処理時間、情報処理装置が備えているメモリ量、プログラマブル論理回路16が備えているセル数を考慮して、各処理モジュールをどちらのモジュールで行うかを、キー操作部63を用いて指示する。
【0223】
図25の表示例では、コントラスト調整と輪郭強調とを、処理時間が速いハードウエアモジュールで処理をし、また、必要とされるセル数がプログラマブル論理回路16のセル数を上回るので、ノイズ除去は、ソフトウエアモジュールで処理する、というように指示されている。
【0224】
そして、画面61Dには、その指示の結果、組み合わされた処理モジュールで処理が実行された場合の予測される全処理時間が5602ミリ秒、最大使用メモリ量が2923キロバイト、全使用セル数が1084セルであることが表示される。そこで、これが満足できるものであれば、ユーザはこの条件でプログラムを開始するように、キー操作部63より指示する。
【0225】
このように、この第3の実施の形態の場合には、プログラム開始前に、各処理モジュールの実行について、ソフトウエアモジュールとハードウエアモジュールのいずれを使用するかを、ユーザが自由に選択指示することができる。したがって、処理速度だけでなく、メモリ使用量などを考慮した適切な処理を行うようにすることができる。
【0226】
[第4の実施の形態]
以上に述べたように、プログラマブル論理回路16への回路情報の転送は、ネットワーク上の記憶装置21、またはシステム内部の記憶装置18から行われる。回路情報の転送には、システムの構成によっていくつかの方法がある。
【0227】
例えば、▲1▼アプリケーションの実行と並行して、ネットワークから必要な情報を随時ダウンロードしながら、情報転送とコンフィギュレーションを行う方法や、▲2▼ネットワークから一旦すべての情報をシステム内部のハードディスク等の記憶装置にダウンロードしてから、アプリケーションの実行と並行して随時読み出し、その後ローカルバス転送、コンフィギュレーションといったシステム内部だけのローカルの転送方法がある。
【0228】
しかし、いずれの場合でも、回路の再構成は、アプリケーションが、その回路を実行するまでに完了しなければならない。転送の時間が長くなるとアプリケーションの実行待ちが発生し、結果として処理速度が低下する問題がある。
【0229】
この問題を解決する方法のひとつとして、特開平8−76974号公報に示される方法がある。この公報に記載された方法は、次のようなものである。
【0230】
プログラマブル論理回路を備えたデータ処理装置において、電源投入時には、読みとり専用メモリにあらかじめ格納されている回路情報をプログラマブル論理回路内のコンフィギュレーションメモリにダウンロードする。外部から回路情報をダウンロードするときには、回路情報を所定のRAMにコピーした後、RAMからプログラマブル論理回路内のコンフィギュレーションメモリにダウンロードする。
【0231】
さらに、外部から回路情報をダウンロードするときには、すでにプログラマブル論理回路内のコンフィギュレーションメモリにある回路情報と新たな回路情報を比較し、同一の場合、再ダウンロードしない。いわゆるキャッシングと呼ばれる手法である。
【0232】
しかしながら、この従来例の方法には、次のような問題がある。
【0233】
すなわち、前記従来例では、繰り返し使用されるにもかかわらず、プログラマブル論理回路の回路規模の制限により常駐することができない回路情報を、いわゆるキャッシングを用いて短い時間で再構成する。しかしながら、RAMの容量やその管理方法、また、データの種別の管理方法に不備な点があり、効率的なコンフィギュレーションが行えるとは言い難い。
【0234】
コンフィギュレーションデータは、一旦、所定のRAMにコピーした後に、コンフィギュレーションメモリにダウンロードされ、直接、ネットワークからコンフィギュレーションメモリへ転送されるものではない。したがって、転送のためのデータの流れとしてみると、システムの共通バスであるPCIバスを経由することになり、このバスのトラフィック混雑状態、転送段数の増加などにより、結果として転送時間が長くかかってしまう問題がある。
【0235】
また、電源投入時に、読み取り専用メモリからのダウンロード、または、一旦RAMにコピーされたもののダウンロードというように、コンフィギュレーションメモリに対して一方向の転送しか行われず、常に、RAMの中には、コンフィギュレーションメモリと同じ情報が格納されている状態になり、メモリの容量としては効率的ではないという問題がある。
【0236】
この第4の実施の形態は、以上の問題を解決したものである。
【0237】
この第4の実施の形態のブロック図を、図26に示す。この図26から分かるように、この第4の実施の形態においては、ハードウエアモジュール取得手段300が取得したハードウエアモジュールの回路情報を一時的に記憶するローカルメモリ900を設ける。他は、第2の実施の形態の場合と全く同様である。
【0238】
この第4の実施の形態においては、ハードウエアモジュール取得手段300は、プログラマブル論理回路400に対してコンフィギュレーションを行うときには、ローカルメモリ900にもその回路情報を記憶させるようにする。このとき、識別符号記録手段800には、そのコンフィギュレーションされ、また、ローカルメモリ900に記憶された回路情報を持つハードウエアモジュールの識別符号が記録される。
【0239】
そして、プログラム100内のヘッダ部HEDの識別符号に従って新たなハードウエアを取得するとき、前記識別符号記録手段800の識別符号を参照して、この識別符号記録手段800内に、取得しようとするハードウエアモジュールの識別符号があるが、プログラマブル論理回路には、コンフィギュレーションメモリの容量などの影響のために、その回路情報が構成されていないときには、ローカルメモリ900の記憶内容を確認した後、ローカルメモリ900に保存されている当該ハードウエアモジュールの回路情報を用いて、プログラマブル論理回路400のコンフィギュレーションを実行する。
【0240】
これにより、PCIバス14を経由したデータ伝送は不要になり、高速にハードウエアモジュールの回路情報の、プログラマブル論理回路へのコンフィギュレーションができる。
【0241】
すなわち、例えば、システム内記憶装置18から、あるいはネットワーク20から取得してハードウエアモジュールの回路情報を、一旦、メインメモリ13に蓄積し、コンフィギュレーションを実行する場合には、PCIバス14がコンフィギュレーションのために回路情報の伝送に使用されしまうことになるが、この第4の実施の形態のように、ローカルメモリ900に記憶されているハードウエアモジュールHMの回路情報により、プログラマブル論理回路16のコンフィギュレーションを実行するようにすれば、PCIバス14は、コンフィギュレーション時の回路情報が伝送されることがなくなり、PCIバス14を効率良く使用することができる。
【0242】
また、一度、プログラマブル論理回路にコンフィギュレーションされた回路情報が、コンフィギュレーションメモリの容量不足のために、他の回路情報に上書きされてしまう場合には、ローカルメモリ900に蓄えておくことが可能になり、当該ハードウエアモジュールをプログラマブル論理回路に再度コンフィギュレーションする必要が生じたときでも、ローカルメモリ900からプログラマブル論理回路400のコンフィギュレーションメモリに転送してコンフィギュレーションを実行することができる。
【0243】
さらに、前述した実施例のように、例えば2つのアプリケーションを続けて実行する場合の後のアプリケーションの実行に先立ち、識別符号記録手段800に記録されている識別符号に基づき、ローカルメモリ900に格納されている回路情報を、プログラマブル論理回路に、高速にコンフィギュレーションして構成しておくことができる。
【0244】
この第4の実施の形態の場合の情報処理システム70のハードウエア構成例を図27に示す。
【0245】
この情報処理システム70は、コンフィギュレーション用の回路情報を一時的に格納しておくキャッシュ用のローカルメモリとして、SRAMまたはDRAMで構成されるローカルメモリ71を備える。このローカルメモリ71へは、プログラマブル論理回路16からアクセスすることができるとともに、プログラマブル論理回路インターフェース15を介してPCIバス14からもアクセスすることができる。
【0246】
また、プログラマブル論理回路16のコンフィギュレーションメモリに格納された回路情報は、アドレスの制御によって読み出すことができ、ローカルメモリ71あるいはPCIバス14を経由して、メインメモリ13や記憶装置としてのハードディスクドライブ18に転送できる。
【0247】
情報処理システム70のその他の構成は、図3の情報処理システム10と全く同様である。
【0248】
プログラマブル論理回路16と、メモリ13や記憶装置18間で回路情報を転送する速度は、デバイスの種類、転送バス幅、バス動作周波数、転送モード、転送バスのトラフィック状態、転送経路等の要因により変化する。
【0249】
ここで、プログラマブル論理回路16に対して回路情報の転送速度が高速なメモリや記憶装置を高位、低速なメモリや記憶装置を低位であると呼ぶことにする。この第4の実施の形態では、高位から順に並べると、プログラマブル論理回路16内部のコンフィギュレーションメモリ、ローカルメモリ71、メインメモリ13、システム内記憶装置としてのハードディスクドライブ18、ネットワークで接続された記憶装置21の順であるとする。
【0250】
次に、この第4の実施の形態の基本的な動作は、第1の実施の形態の場合と同様であり、アプリケーションプログラムの実行時に、処理モジュールとして、ソフトウエアモジュールとハードウエアモジュールのいずれを使用するのかを、図6に示したフローチャートのようにして決定しながら処理を行うものである。
【0251】
[処理の具体例の実施例(第6の実施例)]
この第6の実施例は、ローカルメモリ71を利用して、コンフィギュレーションの効率化を図るものである。この第6の実施例の要部の動作であるコンフィギュレーションの処理を、図28、図29、図30に示したフローチャートを使って説明する。
【0252】
図28に示すように、ハードウェアモジュール取得手段300は、ハードウェアモジュールを取得するとき、識別符号記録手段800に記録された識別符号を参照することにより、コンフィギュレーションメモリに、コンフィギュレーションしようとするハードウェアモジュールに対応する回路情報が存在するかを確認する(ステップS71)。存在する場合は、コンフィギュレーションは行わずに、完了とする(ステップS72)。存在しない場合は、ローカルメモリ71の回路情報を確認する(ステップS73)。ローカルメモリ71上に、回路情報が存在する場合は、ローカルメモリ71からの回路情報のコンフィギュレーションの処理を行う(ステップS74)。
【0253】
図29は、ローカルメモリ71からのコンフィギュレーションのルーチンのフローチャートである。この図29に示すように、コンフィギュレーションメモリに十分な空き領域があるか否か判断する(ステップS81)。十分な空き領域があれば、ステップS83に飛んで、ローカルメモリ71から回路情報を、プログラマブル論理回路16のコンフィギュレーションメモリへ転送して、コンフィギュレーションをそのまま実行する。空き領域がない場合は、ステップS82に進み、優先順位の低いハードウェアモジュール上に上書きした後、ステップS83に進んで、コンフィギュレーションを行う。
【0254】
ローカルメモリ71上に回路情報がない場合には、メインメモリ13の回路情報を確認する(ステップS75)。メインメモリ13に回路情報があれば、その回路情報を、メインメモリ13からローカルメモリ71と、プログラマブル論理回路16のコンフィギュレーションメモリとへ転送する処理を行う(ステップS76)。
【0255】
図30は、このメインメモリ13からの転送処理のルーチンのフローチャートを示すものである。メインメモリ13からの転送に当たって、まず、プログラマブル論理回路16のコンフィギュレーションメモリ上の空き領域を確認し(ステップS91)、空き領域が十分でないときには、優先順位の低い回路情報に上書きするために、その上書きする領域を決定し(ステップS92)、次のステップS93に進む。
【0256】
コンフィギュレーションメモリ上の空き領域が十分であれば、ステップS91からステップS93に飛んで、ローカルメモリ71上の空き領域を確認する(ステップS93)。ローカルメモリ71の空き領域が十分でないときには、優先順位の低い回路情報に上書きして転送を行うために、ステップS94に進んで、その上書きする領域を決定する。そして、次のステップS95において、ローカルメモリ71にメインメモリ13からの回路情報の転送を行い、その転送された回路情報に基づいてプログラマブル論理回路16のコンフィギュレーションを行う。
【0257】
ローカルメモリ71の空き領域が十分であれば、ステップS93からステップS95に飛んで、ローカルメモリ71にメインメモリ13からの回路情報の転送を行い、その転送された回路情報に基づいてプログラマブル論理回路16のコンフィギュレーションを行う。
【0258】
そして、図28に戻って、メインメモリ13に回路情報がない場合には、さらに低位の回路情報格納先へと探索していく。この実施例では、ネットワーク20上の記憶装置21から回路情報をメインメモリ13に転送する(ステップS77)。この場合も、メインメモリ13上に空き領域がない場合は、メインメモリ13上の優先順位の回路情報に上書きする。
【0259】
メインメモリ13への転送後は、メインメモリ13に回路情報が存在する場合と同じ処理を行うことになり、ローカルメモリ71と、プログラマブル論理回路16のコンフィギュレーションメモリへと転送される。このように、回路情報は、プログラマブル論理回路16のコンフィギュレーションメモリへ書き込まれるとともに、最も、転送が高速にできるローカルメモリ71にも転送される。
【0260】
ローカルメモリ71からのプログラマブル論理回路16のコンフィギュレーションメモリへの転送およびコンフィギュレーションは、メインメモリ13からの転送およびコンフィギュレーションに比べて、PCIバス14を経由することがないので、他のデータ転送との輻輳がなく、高速にコンフィギュレーションが実行できる。
【0261】
次に、ローカルメモリ71を使用して、4つのハードウェアモジュールを、プログラマブル論理回路16にコンフィギュレーションする具体例を、図31、図32を用いて説明する。
【0262】
この第6の実施例では、プログラムのヘッダHEDに記載された識別符号に基づいて、ハードウェアモジュールを、例えばネットワーク上の記憶装置20から取得し、ローカルメモリ71を使うことにより、より高速に回路情報をプログラマブル論理回路16にコンフィギュレーションする。
【0263】
4つのハードウェアモジュールA〜Dを用いた処理フローを、図31に示す。ハードウェアモジュールの処理順序は、A→B→C→A→Dである。ハードウェアモジュールAによる処理を2回行うため、ハードウエアモジュールAの優先順位が最も高い。プログラマブル論理回路16上のハードウェアモジュールA,B,C,Dの配置を図32に示す。この場合、ハードウェアモジュールAとハードウェアモジュールCは重なりを持つので、同時にコンフィギュレーションできない。
【0264】
これらのハードウェアモジュールA〜Dのコンフィギュレーション手順を、図31を使って説明する。
【0265】
処理時間tc0 に、ネットワーク上の記憶装置21からハードウェアモジュールAの転送が開始され、その回路情報は、一旦、メインメモリ13に格納される。そして、処理時間tc1 〜tc2 の期間で、メインメモリ13から、ローカルメモリ71とプログラマブル論理回路16のコンフィギュレーションメモリへ転送される。
【0266】
ハードウェアモジュールAは最も優先順位が高いので、ローカルメモリ71のメモリ容量が十分でない場合には、ハードウェアモジュールB、C、Dがローカルメモリ71に格納されずに、これらハードウェアモジュールB、C、Dは、さらに低位のメインメモリ13、または、内部記憶装置としてのハードディスクドライブ18へ格納されることになる。ハードウェアモジュールAのコンフィギュレーションは処理時間tc2 で完了する。
【0267】
次に、ハードウェアモジュールBおよびCは、それぞれ処理時間tc1 〜tc2 、処理時間tc3 〜tc4 の期間内で、ネットワーク20上の記憶装置21からの転送が開始され、処理時間tc4 、処理時間tc6 でプログラマブル論理回路16へのコンフィギュレーションが完了する。
【0268】
ここで、ハードウェアモジュールCのコンフィギュレーションを開始する処理時間tc5 のときには、プログラマブル論理回路16上のハードウェアモジュールCは、ハードウェアモジュールAの一部に上書きして構成する。したがって、プログラマブル論理回路16上でのコンフィギュレーション状態としては、ハードウェアモジュールAが無効になり、ハードウェアモジュールBはそのまま有効で、処理時間tc6 からハードウェアモジュールCが有効になる。
【0269】
ここで、ハードウェアモジュールCをローカルメモリ71に転送するときに、ローカルメモリ71の空き容量を考える必要がある。この実施例の場合、ローカルメモリ71の容量が、ハードウェアモジュールA、BおよびCのすべてを格納するために十分でないので、ハードウェアモジュールBのローカルメモリ71の領域に、ハードウェアモジュールCを上書きして格納させる。
【0270】
これは、ハードウェアモジュールBは、ハードウェアモジュールAに比べて優先順位が低いためである。したがって、処理時間tc5 の時点からハードウェアモジュールCの情報がローカルメモリ71に格納されていくことになる。
【0271】
次に、再びハードウェアモジュールAによる処理が行われるが、前に無効になったハードウェアモジュールAを再びコンフィギュレーションするために、ハードウェアモジュールCによるアプリケーションプログラムの処理が完了する処理時間tc7 の時点から、ローカルメモリ71に格納されているハードウェアモジュールAの回路情報を、プログラマブル論理回路16のコンフィギュレーションメモリに転送する。
【0272】
したがって、この処理時間tc7 の時点からハードウェアモジュールCが無効になり、ハードウェアモジュールAがプログラマブル論理回路に再構成されて、処理時間tc8 の時点でコンフィギュレーションが完了する。メモリへの格納状態からみると、図31のローカルメモリ71から、プログラマブル論理回路16のコンフィギュレーションメモリへ、図31でTraで示すような転送が行われたことになる。
【0273】
最後に、ハードウェアモジュールDのコンフィギュレーションが行われる。
【0274】
なお、上記の例で、ハードウェアモジュールの回路情報を、ネットワーク20上の記憶装置21から、一旦、メインメモリ13に格納して、ローカルメモリ71とコンフィギュレーションメモリに転送したが、ネットワーク20から、直接、メインメモリ13とローカルメモリ71とコンフィギュレーションメモリに転送してもよい。
【0275】
ここで、回路情報を格納するメモリの容量を効率的に使用する場合には、メモリの格納状態においては、図31で、メインメモリ13の格納状態が存在しない状態がよい。
【0276】
ネットワーク20から、直接、ローカルメモリ71と、プログラマブル論理回路16のコンフィギュレーションメモリに転送された後の、処理時間tc5 以降では、ハードウェアモジュールBは、ローカルメモリ71では、ハードウェアモジュールCによって上書きされてしまい、コンフィギュレーションメモリにしか、その回路情報は残っていないことになる。
【0277】
もし、プログラマブル論理回路16のコンフィギュレーションメモリのハードウェアモジュールBの領域に新たなハードウェアモジュールが構成されて、上書きされてしまうと、再び、このハードウェアモジュールBを使用する予定がある場合には、このハードウエアモジュールBをコンフィギュレーションメモリからローカルメモリ71へと転送して格納しておく。
【0278】
ハードウエアモジュールの使用予定に関する情報は、例えば、プログラムを事前に解析しておくことにより、得ることができる。また、この実施の形態の場合には、プログラムのヘッダ部HEDに、識別符号IDが処理モジュール順に記述されるので、そのヘッダ部HEDの識別符号IDの並びを参照することでも、知ることができる。
【0279】
さらに、識別符号記録手段800に記録されている識別符号を参照することにより、過去の使用履歴から推定することもできる。この例では、識別符号記録手段800の識別符号による使用されたハードウエアモジュールHMの過去の使用履歴から、使用が予定されるハードウエアモジュールHMの回路情報を、プログラマブル論理回路のコンフィギュレーションメモリから、ローカルメモリ71に転送しておくようにする。
【0280】
このようにすることによって、ローカルメモリ71と、プログラマブル論理回路16のコンフィギュレーションメモリとの高速転送に関わるメモリ容量を、効率良く使うことができる。
【0281】
次に、プログラマブル論理回路16のコンフィギュレーションメモリと、このコンフィギュレーションメモリの容量より大きなローカルメモリ71との間で、ハードウェアモジュールHMの回路情報を通信する実施例について、図33を用いて説明する。
【0282】
プログラマブル論理回路16のコンフィギュレーションメモリ160と、ローカルメモリ71を結線するアドレスバスの幅と、データバスの幅において、ローカルメモリ71のアドレスバスの幅の方が大きくなるため、その下位ビット側をコンフィギュレーションメモリ160のアドレスバス幅に対応させる。
【0283】
ローカルメモリ71のアドレスバスの上位ビット側の制御により、コンフィギュレーションメモリ160と同等なメモリ容量で、アドレス制御も同じくした、複数に分割されたメモリ空間の構成ができる。
【0284】
なお、データバス幅に関しては、必ずしも同じにする必要はないが、制御のしやすさから考えると、例えばバイト単位の倍数で構成しておく。一方、それぞれのメモリ空間に格納されているハードウェアモジュールHMの識別符号IDの情報は、識別符号記録手段800に記録されており、コンフィギュレーションの要求に応じて、記録された識別符号の情報に基づいて選択的に転送される。
【0285】
このように構成及び制御をすることによって、この分割されたメモリ空間単位でコンフィギュレーションする場合には、一括転送ができるためハードウェアモジュールの転送の制御が簡単になり、しかも、コンフィギュレーションの高速化が図れる。
【0286】
さらに、図32に示すような複数のハードウェアモジュールによるコンフィギュレーションにおいて、複数個を組み合わせて繰り返し用いられるハードウェアモジュールが発生する場合、例えば、ハードウェアモジュールAおよびハードウェアモジュールBが組み合わされて用いられる場合、これらを結線する配線情報も合わせて前述のローカルメモリ71において、複数に分割構成されたメモリ空間に対応させて格納する。
【0287】
この格納されたハードウェアモジュールおよび配線情報に関する情報は、識別符号記録手段800に記録される。したがって、コンフィギュレーションが必要になったときには、記録された情報に基づいて、ハードウェアモジュール(A+B)および配線情報を個別に順次転送することなく、コンフィギュレーションメモリに、一括で、あるいは部分的に、高速に転送できる。
【0288】
[第5の実施の形態]
以上に示した第1の実施の形態、第2の実施の形態、第3の実施の形態、第4の実施の形態では、アプリケーションプログラムが、ソフトウエアモジュールの集合で構成され、ソフトウエアモジュールと同じ処理を行うハードウエアモジュールを、プログラムのヘッダ部HEDの識別符号により取得し、プログラムの実行前またはプログラム実行時に、実行モジュールを決定した。
【0289】
しかし、この発明は、この逆に、アプリケーションプログラムが、ハードウエアモジュールの集合で構成され、ハードウエアモジュールと同じ処理を行うソフトウエアモジュールを、プログラムのヘッダ部HEDの識別符号によりシステム内の記憶装置やネットワーク上の記憶装置から取得する場合も、ソフトウエアモジュールとハードウエアモジュールとを置き換えるだけで、前述した第1の実施の形態、第2の実施の形態、第3の実施の形態、第4の実施の形態と、同様な処理を行うことができる。
【0290】
なぜならば、両方のモジュールを取得した後では、実行モジュールを決定する手順は同じであり、実行プログラム用記憶部としての主記憶装置である、例えばメインメモリ13に格納されているソフトウエアモジュールを、再び取得する必要はないし、アプリケーションの開始前にソフトウエアモジュールを、主記憶装置に格納することができるからである。
【0291】
その場合の、ブロック図を、図34に示す。この図34は、第2の実施の形態に対応したものであり、第1の実施の形態に対応する構成の場合には、識別情報記憶手段800が存在しない。
【0292】
この場合には、アプリケーションプログラム110に記述されているハードウエアモジュールHMは、プログラマブル論理回路400に転送されて、再構成される。
【0293】
また、前述の実施の形態のハードウエアモジュール取得手段に対応するソフトウエアモジュール取得手段330は、取得したソフトウエアモジュールを、実行プログラム記憶手段550に格納し、CPU500で実行するようにする。この実行プログラム記憶手段440は、前述したように、情報処理システムでは、メインメモリ13で構成される。
【0294】
[実施の形態の効果]
以上説明したように、第1の実施の形態、第2の実施の形態、第4の実施の形態および第5の実施の形態では、少なくとも処理の一部分が回路構成を再構成できるプログラマブル論理回路で処理される情報処理システムにおいて、ソフトウエアモジュールによるアプリケーションプログラムの実行と並行して、ソフトウエアモジュールと同じ処理を行うハードウエアモジュールのコンフィギュレーションを行うことにより、プログラム論理回路の再構成時間を考慮した最善のソフトウエアモジュールとハードウエアモジュールの組み合わせでプログラムを実行することができ、情報処理システムの最高の処理能力を発揮することが可能となる。
【0295】
したがって、従来のように、アプリケーションプログラムにおいてソフトウエアモジュールとハードウエアモジュールとで、処理する部分を事前に固定的に決定する必要が無い。
【0296】
また、第1の実施の形態、第2の実施の形態、第3の実施の形態および第4の実施の形態によれば、ネットワーク上の記憶装置にハードウエアモジュールが格納され、処理の途中でネットワーク通信が切断されることがあっても、処理を中断することなく、ソフトウエアモジュールにより処理を継続することが可能となる。
【0297】
同様に、第5の実施の形態によれば、ネットワーク上の記憶装置にソフトウエアモジュールが格納され、処理の途中でネットワーク通信が切断されることがあっても、処理を中断することなく、ハードウエアモジュールにより処理を継続することが可能となる。
【0298】
また、第1〜第4のいずれの実施の形態においても、複数のアプリケーションプログラムを実行する場合、プログラマブル論理回路にコンフィギュレーションされているハードウエアモジュールが識別符号記録手段800に記録されているので、共通して用いるハードウエアモジュールを重複してコンフィギュレーションすることがなくなり、プログラマブル論理回路の再構成時間を最小にすることができ、情報処理システムの最高の処理能力を発揮することが可能となる。
【0299】
同様に、第5の実施の形態によれば、複数のアプリケーションプログラムを実行する場合、メインメモリに格納されているソフトウエアモジュールが、識別符号記録手段800に記録されているので、共通して用いるソフトウエアモジュールを重複して格納することがなくなり、メインメモリへのロード時間を最小にすることができ、情報処理システムの最高の処理能力を発揮することが可能となる。
【0300】
また、第1の実施の形態、第2の実施の形態、第4の実施の形態においては、識別符号記録手段800に記録されているハードウエアモジュールの使用経歴に基づいて、アプリケーションプログラムの開始前にプログラマブル論理回路上にハードウエアモジュールを構成することができるので、アプリケーションプログラムの実行開始時からからハードウエアモジュールを効率的に利用することができ、情報処理システムの最高の処理能力を発揮することが可能となる。
【0301】
同様に、第5の実施の形態においては、同様にして、識別符号記録手段800のソフトウエアモジュールの使用経歴に基づいて、アプリケーションプログラムの開始前に主記憶にソフトウエアモジュールを格納することができるので、アプリケーションプログラムの実行開始時からからCPUを効率的に利用することができ、情報処理システムの最高の処理能力を発揮することが可能となる。
【0302】
また、第3の実施の形態の場合には、プログラムを開始する前に、処理を行うモジュールを指示することで、情報処理装置の状態や、ユーザの好みに応じた処理を行うことができる。
【0303】
また、第4の実施の形態の場合には、ローカルメモリと、プログラマブル論理回路のコンフィギュレーションメモリとの間で、ハードウェアモジュールの回路情報を通信できるため、ローカルメモリまたはコンフィギュレーションメモリのいずれかに回路情報が格納されていれば十分であり、高速転送可能なメモリの容量を効率的に用いることができる。
【0304】
さらに、第4の実施の形態の場合には、コンフィギュレーションメモリ空間と同じ容量でローカルメモリを複数に分割したメモリ空間を持つことにより、同時に構成されている回路情報と配線情報を含めた複数のハードウェアモジュールを単位として一括あるいは部分的に高速に転送できる。
【0305】
また、この発明による情報処理システムは、第5の実施の形態のように、ソフトウエアモジュールによる処理と、ハードウエアモジュールによる処理とのどちらでも行うことができるので、プログラムを、ソフトウエアモジュールの集合としても、ハードウエアモジュールの集合としても記述することができる。
【0306】
【発明の効果】
以上説明したように、この発明によれば、少なくとも処理の一部分が回路構成を再構成できるプログラマブル論理回路で処理される情報処理システムにおいて、ソフトウエアで処理を実行するか、プログラマブル論理回路によるハードウエアで処理を実行するかを、柔軟に決定することができ、従来のように、アプリケーションプログラムにおいて、ソフトウエアモジュールとハードウエアモジュールとで、処理する部分を事前に固定的に決定する必要が無い。
【0307】
また、プログラム論理回路の再構成時間を考慮した最善のソフトウエアモジュールとハードウエアモジュールの組み合わせでプログラムを実行することができ、情報処理システムの最高の処理能力を発揮することが可能となる。
【0308】
また、アプリケーションプログラム中で共通して用いるハードウエアモジュールやソフトウエアモジュールを重複してコンフィギュレーションすることがなくなり、プログラマブル論理回路の再構成時間を最小にすることができ、情報処理システムの最高の処理能力を発揮することが可能となる。
【図面の簡単な説明】
【図1】この発明による情報処理システムの第1の実施の形態の概念構成を示すブロック図である。
【図2】この発明による情報処理システムで用いるアプリケーションプログラムの一例を説明するための図である。
【図3】この発明による情報処理システムの第1の実施の形態のハードウエア構成例を示す図である。
【図4】プログラマブル論理回路の一例を説明するための図である。
【図5】プログラマブル論理回路の一例を説明するための図である。
【図6】この発明による情報処理システムの第1の実施の形態の主要な処理動作を説明するためのフローチャートである。
【図7】この発明による情報処理システムの第1の実施の形態の処理の具体例(第1の実施例)を説明するためのフローチャートである。
【図8】図7の一部の処理ルーチンを説明するためのフローチャートである。
【図9】図7の一部の処理ルーチンを説明するためのフローチャートである。
【図10】この発明による情報処理システムの第1の実施の形態における処理の具体例(第2の実施例)で用いる処理モジュールの一つを説明のための図である。
【図11】第2の実施例で用いるソフトウエアモジュールの一つを説明するための図である。
【図12】第2の実施例で用いるハードウエアモジュールの一つを説明するための図である。
【図13】この発明による情報処理システムの第1の実施の形態における処理の具体例(第2の実施例)で用いる処理モジュールの一つを説明のための図である。
【図14】第2の実施例で用いるソフトウエアモジュールの一つを説明するための図である。
【図15】第2の実施例で用いるハードウエアモジュールの一つを説明するための図である。
【図16】第2の実施例で用いるソフトウエアモジュールの一つを説明するための図である。
【図17】第2の実施例で用いるハードウエアモジュールの一つを説明するための図である。
【図18】第2の実施例で用いるアプリケーションプログラムを説明するための図である。
【図19】第2の実施例の処理の流れを説明するためのフローチャートである。
【図20】図19のフローチャートの一部のフローチャートである。
【図21】第2の実施例の処理の流れを説明するためのタイミングチャートである。
【図22】この発明による情報処理システムの第2の実施の形態の概念構成を示すブロック図である。
【図23】第2の実施の形態における処理の具体例(第3の実施例)の処理の流れを説明するためのフローチャートである。
【図24】 参考例である第3の実施の形態の場合のハードウエア構成例を示す図である。
【図25】 3の実施の形態の場合の処理の具体例(第5の実施例)を説明するための図である。
【図26】この発明による情報処理システムの第4の実施の形態の概念構成を示すブロック図である。
【図27】この発明による情報処理システムの第4の実施の形態の場合のハードウエア構成例を示す図である。
【図28】この発明による情報処理システムの第4の実施の形態の場合の処理の具体例(第6の実施例)を説明するためのフローチャートである。
【図29】図28の一部の処理ルーチンのフローチャートである。
【図30】図28の一部の処理ルーチンのフローチャートである。
【図31】第6の実施例の処理の流れを説明するためのタイミングチャートである。
【図32】第6の実施例の説明に供する、プログラマブル論理回路上に形成された回路配置を説明するための図である。
【図33】第6の実施例の説明に供する、ハードウエアの主要部分を示す図である。
【図34】この発明による情報処理システムの第5の実施の形態の概念構成を示すブロック図である。
【図35】従来の情報処理システムの一つを説明するための図である。
【図36】従来の情報処理システムの他の一つを説明するための図である。
【図37】従来の情報処理システムの、さらに他の一つを説明するための図である。
【符号の説明】
10 情報処理システム
11 CPU
12 チップセット
13 メインメモリ
14 バス
15 プログラマブル論理回路インターフェース
16 プログラマブル論理回路
17 ハードディスクインターフェース
18 ハードディスクドライブ
19 通信インターフェース
20 ネットワーク
21 ネットワーク上の記憶装置
60 情報処理システム
61 ディスプレイ
62 ディスプレイインターフェース
63 キー操作部
64 キーインターフェース
70 情報処理システム
71 ローカルメモリ
100 アプリケーションプログラム
160 コンフィギュレーションメモリ
200 情報処理システム内またはネットワーク上の記憶装置
300 ハードウエアモジュール取得手段
330 ソフトウエアモジュール取得手段
400 プログラマブル論理回路
440 実行プログラム記憶手段
500 CPU
600 実行モジュール決定手段
700 選択条件設定手段
800 識別符号記憶手段
900 ローカルメモリ

Claims (20)

  1. CPUが実行するソフトウエアプログラムで処理が記述されたソフトウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行するものであり、かつ、前記一連の処理の一部分が、プログラマブル論理回路で処理可能である情報処理システムであって、
    前記処理プログラム内のソフトウエアモジュールが行う処理と同じ処理を、前記プログラマブル論理回路に再構成する回路情報で記述した処理モジュールであるハードウエアモジュールを記憶する記憶装置部と、
    前記処理プログラムの処理の実行時に、前記記憶装置部から前記ハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成するハードウエアモジュール取得手段と、
    前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、予め定められている実行モジュール選択条件に基づいて、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
    を備え、
    前記ソフトウエアモジュールが行う処理と同じ処理を行うハードウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
    前記ハードウエアモジュール取得手段は、前記識別符号に対応するハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成する
    ことを特徴とする情報処理システム。
  2. ログラマブル論理回路で処理可能であり、前記プログラマブル論理回路に構成する回路情報で処理を記述したハードウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行する情報処理システムであって、
    前記処理プログラム内のハードウエアモジュールが行う処理と同じ処理を、CPUが実行するソフトウエアプログラムで記述した処理モジュールであるソフトウエアモジュールを記憶する記憶装置部と、
    前記処理プログラムの処理の実行時に、前記記憶装置部から前記ソフトウエアモジュールを入手して、実行プログラム用記憶部に格納するソフトウエアモジュール取得手段と、
    前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、予め定められている実行モジュール選択条件に基づいて、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
    を備え、
    前記ハードウエアモジュールが行う処理と同じ処理を行うソフトウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
    前記ソフトウエアモジュール取得手段は、前記識別符号に対応するソフトウエアモジュールを入手して、前記実行プログラム用記憶部に格納する
    ことを特徴とする情報処理システム。
  3. CPUが実行するソフトウエアプログラムで処理が記述されたソフトウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行するものであり、かつ、前記一連の処理の一部分が、プログラマブル論理回路で処理可能である情報処理システムであって、
    前記処理プログラムの処理の実行時に、前記処理プログラム内のソフトウエアモジュールが行う処理と同じ処理を、前記プログラマブル論理回路に再構成する回路情報で記述した処理モジュールであるハードウエアモジュールをネットワークを通じて入手して、前記プログラマブル論理回路を再構成するハードウエアモジュール取得手段と、
    前記プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、予め定められている実行モジュール選択条件に基づいて、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
    を備え、
    前記ソフトウエアモジュールが行う処理と同じ処理を行うハードウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
    前記ハードウエアモジュール取得手段は、前記識別符号に対応するハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成する
    ことを特徴とする情報処理システム。
  4. ログラマブル論理回路で処理可能であり、前記プログラマブル論理回路に構成する回路情報で処理を記述したハードウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行する情報処理システムであって、
    前記処理プログラムの処理の実行時に、前記プログラム内のハードウエアモジュールが行う処理と同じ処理を、CPUが実行するソフトウエアプログラムで記述した処理モジュールであるソフトウエアモジュールをネットワークを通じて入手して、実行プログラム用記憶部に格納するソフトウエアモジュール取得手段と、
    前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、予め定められている実行モジュール選択条件に基づいて、前記プログラムの前記処理モジュールの実行時に決める実行モジュール決定手段と、
    を備え、
    前記ハードウエアモジュールが行う処理と同じ処理を行うソフトウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
    前記ソフトウエアモジュール取得手段は、前記識別符号に対応するソフトウエアモジュールを入手して、実行プログラム用記憶部に格納する
    ことを特徴とする情報処理システム。
  5. 請求項1または請求項3に記載の情報処理システムにおいて、
    前記プログラマブル論理回路に再構成されているハードウエアモジュールの識別符号を記録する識別符号記録手段を備え、
    前記ハードウエアモジュール取得手段は、前記処理プログラムに記述されているハードウエアモジュールの識別符号のうち、前記識別符号記録手段に記録されていない識別符号に対応するハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成する
    ことを特徴とする情報処理システム。
  6. 請求項2または請求項4に記載の情報処理システムにおいて、
    前記実行プログラム用記憶部に格納されているソフトウエアモジュールの識別符号を記録する識別符号記録手段を備え、
    前記ソフトウエアモジュール取得手段は、前記処理プログラムに記述されているソフトウエアモジュールの識別符号のうち、前記識別符号記録手段に記録されていない識別符号に対応するソフトウエアモジュールを入手して、前記実行プログラム用記憶部に格納する
    ことを特徴とする情報処理システム。
  7. 請求項1または請求項3に記載の情報処理システムにおいて、
    前記プログラマブル論理回路に再構成されハードウエアモジュールの識別符号を記録する識別符号記録手段を備え、
    前記ハードウエアモジュール取得手段は、前記識別符号記録手段に記録されている識別符号に対応する、少なくとも一つ以上のハードウエアモジュールを、前記処理プログラムの実行前に入手して、前記プログラマブル論理回路を再構成する
    ことを特徴とする情報処理システム。
  8. 請求項2または請求項4に記載の情報処理システムにおいて、
    前記実行プログラム用記憶部に格納されソフトウエアモジュールの識別符号を記録する識別符号記録手段を備え、
    前記ソフトウエアモジュール取得手段は、前記識別符号記録手段に記録されている識別符号に対応する、少なくとも一つ以上のソフトウエアモジュールを、前記処理プログラムの実行前に入手して、前記実行プログラム用記憶部に格納する
    ことを特徴とする情報処理システム。
  9. 請求項1〜請求項8のいずれかに記載の情報処理システムにおいて、
    前記実行モジュール決定手段は、
    予め設定された実行モジュール選択条件を参照して、前記処理プログラムで記述された処理モジュールを、前記ソフトウエアモジュールと前記ハードウエアモジュールのどちらで実行するかを決定する
    ことを特徴とする情報処理システム。
  10. 請求項1または請求項3に記載の情報処理システムにおいて、
    前記プログラマブル論理回路に再構成されたハードウエアモジュールの識別符号を記録する識別符号記録手段を備えるとともに、
    前記ハードウエアモジュールの回路情報を一時記憶するローカルメモリを、前記プログラマブル論理回路のコンフィギュレーションメモリと直接的なデータの通信が可能な位置に設け、
    前記ハードウエアモジュール取得手段は、
    前記プログラム内の識別符号に基づいて前記ハードウエアモジュールを入手して前記プログラマブル論理回路に再構成するものであり、かつ、前記入手した前記ハードウエアモジュールの回路情報を前記ローカルメモリにも転送して記憶させる
    ことを特徴とする情報処理システム。
  11. 請求項2または請求項4に記載の情報処理システムにおいて、
    前記プログラマブル論理回路に再構成されたハードウエアモジュールの識別符号を記録する識別符号記録手段を設けるとともに、
    前記ハードウエアモジュールの回路情報を一時記憶するローカルメモリを、前記プログラマブル論理回路のコンフィギュレーションメモリと直接的なデータの通信が可能な位置に設け、
    前記プログラム内の識別符号に対応する前記ハードウエアモジュールの回路情報を、前記記憶装置あるいはネットワークから取得して、前記プログラマブル論理回路に再構成するとともに、前記ローカルメモリにも転送して記憶する
    ことを特徴とする情報処理システム。
  12. 請求項10または請求項11に記載の情報処理システムにおいて、
    前記プログラムの実行前に、前記識別符号記録手段の識別符号を参照して、前記ローカルメモリのハードウエアモジュールの回路情報を検索し、前記ローカルメモリに存在する少なくとも一つ以上の前記ハードウエアモジュールの回路情報を、前記ローカルメモリから前記プログラマブル論理回路に再構成することを特徴とする情報処理システム。
  13. 請求項10または請求項11に記載の情報処理システムにおいて、
    前記識別符号記録手段に記録された前記ハードウエアモジュールの使用履歴に基づいて、前記ハードウエアモジュールの回路情報を、前記プログラマブル論理回路のコンフィギュレーションメモリから前記ローカルメモリに転送して記憶するようにしたことを特徴とする情報処理システム。
  14. 請求項10〜請求項13のいずれかに記載の情報処理システムにおいて、
    前記プログラマブル論理回路内のコンフィギュレーションメモリの全領域と同等な記憶容量を単位として、前記ローカルメモリのメモリ空間を複数の単位に分割して構成し、
    前記分割されたメモリ空間の単位によって、前記コンフィギュレーションメモリと前記ローカルメモリとの間で、前記ハードウエアモジュールの回路情報を通信することを特徴とする情報処理システム。
  15. 請求項10〜請求項13のいずれかに記載の情報処理システムにおいて、
    前記ハードウエアモジュールの複数個と、それらの配線情報とによって前記プログラマブル論理回路に同時に構成される機能回路を一つの回路情報とし、
    前記コンフィギュレーションメモリ、または、前記分割されたローカルメモリの任意のメモリ空間に対応して前記ハードウエアモジュールの回路情報を記憶することを特徴とする情報処理システム。
  16. 請求項10〜請求項14のいずれかに記載の情報処理システムにおいて、
    使用された前記ハードウエアモジュールの識別符号を記録する識別符号記録手段を設け、
    前記コンフィギュレーションメモリまたは前記分割されたローカルメモリの任意のメモリ空間に格納されている前記ハードウエアモジュールの情報を、前記識別符号によって、前記識別符号記録手段に記録しておくことを特徴とする情報処理システム。
  17. CPUが実行するソフトウエアプログラムで処理が記述されたソフトウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行するものであり、かつ、前記一連の処理の一部分が、プログラマブル論理回路で処理可能である情報処理システムによる情報処理方法であって、
    前記情報処理システムのハードウエアモジュール取得手段が、前記処理プログラム内のソフトウエアモジュールが行う処理と同じ処理を、前記プログラマブル論理回路に再構成する回路情報で記述した処理モジュールであるハードウエアモジュールを、前記処理プログラムの処理の実行時に取得する工程と、
    前記情報処理システムの実行モジュール決定手段が、前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、予め設定された実行モジュール選択条件に基づいて、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定工程と、
    を備え、
    前記ソフトウエアモジュールが行う処理と同じ処理を行うハードウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
    前記ハードウエアモジュール取得工程では、前記識別符号に対応するハードウエアモジュールを入手して、前記プログラマブル論理回路を再構成する
    ことを特徴とする情報処理方法。
  18. ログラマブル論理回路で処理可能であり、前記プログラマブル論理回路に構成する回路情報で処理を記述したハードウエアモジュールからなる処理モジュールの複数個で構成される処理プログラムで記述される一連の処理を実行する情報処理システムによる情報処理方法であって、
    前記処理プログラムの処理の実行時に、前記情報処理システムのソフトウエアモジュール取得手段が、前記プログラム内のハードウエアモジュールが行う処理と同じ処理を、CPUが実行するソフトウエアプログラムで記述した処理モジュールであるソフトウエアモジュールを取得して、実行プログラム用記憶部に格納するソフトウエアモジュール取得工程と、
    前記情報処理システムの実行モジュール決定手段が、前記処理プログラムに記述された処理モジュールを、前記ソフトウエアモジュールと、前記ハードウエアモジュールのどちらで実行するかを、予め定められている実行モジュール選択条件に基づいて、前記処理プログラムの前記処理モジュールの実行時に決める実行モジュール決定工程と、
    を備え、
    前記ハードウエアモジュールが行う処理と同じ処理を行うソフトウエアモジュールを示す識別符号が、前記処理プログラム内に記述されており、
    前記ソフトウエアモジュール取得工程では、前記識別符号に対応するソフトウエアモジュールを入手して、前記実行プログラム用記憶部に格納する
    ことを特徴とする情報処理方法。
  19. 請求項17に記載の情報処理方法において、
    前記ハードウエアモジュール取得工程では、前記ハードウエアモジュールは、ネットワークを通じて入手する
    ことを特徴とする情報処理方法。
  20. 請求項18に記載の情報処理方法において、
    前記ソフトウエアモジュール取得工程では、前記ソフトウエアモジュールは、ネットワークを通じて入手する
    ことを特徴とする情報処理方法。
JP02966998A 1998-02-12 1998-02-12 情報処理システムおよび情報処理方法 Expired - Fee Related JP4212676B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02966998A JP4212676B2 (ja) 1998-02-12 1998-02-12 情報処理システムおよび情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02966998A JP4212676B2 (ja) 1998-02-12 1998-02-12 情報処理システムおよび情報処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006000413A Division JP3877002B2 (ja) 2006-01-05 2006-01-05 情報処理システムおよび情報処理方法

Publications (2)

Publication Number Publication Date
JPH11232081A JPH11232081A (ja) 1999-08-27
JP4212676B2 true JP4212676B2 (ja) 2009-01-21

Family

ID=12282531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02966998A Expired - Fee Related JP4212676B2 (ja) 1998-02-12 1998-02-12 情報処理システムおよび情報処理方法

Country Status (1)

Country Link
JP (1) JP4212676B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69910826T2 (de) * 1998-11-20 2004-06-17 Altera Corp., San Jose Rechnersystem mit rekonfigurierbarer programmierbarer logik-vorrichtung
US7424595B2 (en) 2000-06-06 2008-09-09 Tadahiro Ohmi System for managing circuitry of variable function information processing circuit and method for managing circuitry of variable function information processing circuit
JP4737382B2 (ja) * 2004-03-09 2011-07-27 セイコーエプソン株式会社 情報処理システム、情報処理装置及び管理用サーバ、情報処理装置制御プログラム及び管理用サーバ制御プログラム、並びに情報処理装置制御方法及び管理用サーバ制御方法
JP5016807B2 (ja) * 2005-10-07 2012-09-05 株式会社日立ハイテクノロジーズ データ処理システム
JPWO2007074583A1 (ja) * 2005-12-27 2009-06-04 パナソニック株式会社 再構成可能な演算器を持つプロセッサ
JP4901561B2 (ja) * 2006-04-14 2012-03-21 パナソニック株式会社 設計支援システム、設計支援方法及び設計支援プログラム
US8091064B2 (en) 2006-04-14 2012-01-03 Panasonic Corporation Supporting system, design supporting method, and computer-readable recording medium recorded with design supporting program
JP2008027048A (ja) * 2006-07-19 2008-02-07 I L C:Kk 情報処理装置、検証方法、および該方法をコンピュータに実行させるプログラム
WO2009022418A1 (ja) * 2007-08-15 2009-02-19 Fujitsu Limited 動的再構成プログラム、該プログラムを記録した記録媒体、動的再構成装置および動的再構成方法
JP5407631B2 (ja) * 2009-07-21 2014-02-05 富士ゼロックス株式会社 回路情報生成装置、機能実行システム、及びプログラム
JP5371109B2 (ja) * 2010-02-23 2013-12-18 日本電気株式会社 移行方法
KR101861742B1 (ko) * 2011-08-30 2018-05-30 삼성전자주식회사 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법
CN105678379B (zh) * 2016-01-12 2020-08-07 腾讯科技(深圳)有限公司 一种cnn的处理方法和装置
JP2018124605A (ja) * 2017-01-30 2018-08-09 オムロン株式会社 画像処理システム、情報処理装置、情報処理方法、および、情報処理プログラム
JP2019079175A (ja) * 2017-10-23 2019-05-23 日本電気株式会社 情報処理システム、及び、情報処理システムによる制御方法

Also Published As

Publication number Publication date
JPH11232081A (ja) 1999-08-27

Similar Documents

Publication Publication Date Title
JP4212676B2 (ja) 情報処理システムおよび情報処理方法
US10372653B2 (en) Apparatuses for providing data received by a state machine engine
US10366009B2 (en) Methods and systems for handling data received by a state machine engine
US9454322B2 (en) Results generation for state machine engines
JP4833303B2 (ja) 動作合成ツールにおける配列変換
JP6122121B2 (ja) パターン認識処理における電力管理のための方法およびシステム
JP3809727B2 (ja) 情報処理システム、回路情報管理方法および回路情報記憶装置
JP3877002B2 (ja) 情報処理システムおよび情報処理方法
WO2012103148A2 (en) Unrolling quantifications to control in-degree and/or out degree of automaton
JP2009524854A (ja) ディジタルデータ処理のための方法およびシステム
EP2875436A1 (en) Methods and devices for programming a state machine engine
CN111324294B (zh) 存取张量数据的方法和装置
KR100823379B1 (ko) 화상 처리를 위한 데이터 필터링 장치, 방법 및 시스템
JP2000252814A (ja) 情報処理システム
JP3558114B2 (ja) 情報処理システム
JP3738802B2 (ja) 情報処理システム
JP3675255B2 (ja) 情報処理装置
JP3747985B2 (ja) 情報処理システム
KR102494565B1 (ko) 콘볼루션 신경망의 하드웨어 구조 최적화 방법
JP4014486B2 (ja) 画像処理方法及び画像処理装置
KR102290229B1 (ko) 병렬 처리를 위한 데이터 생성 장치
JP2002245104A (ja) 論理縮小機能を備えたマッピング装置、マッピング方法、及びそのプログラム。
JP2022059522A (ja) 情報処理装置、情報処理プログラム、及びプログラマブル論理回路
JP2001344099A (ja) 情報処理装置及び該装置における情報処理方法
Laprise Toward the parallel distributed camera array: design of a reconfigurable framework

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20060222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060420

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081003

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081029

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

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: 20111107

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131107

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees