JP3613314B2 - 情報処理システム - Google Patents

情報処理システム Download PDF

Info

Publication number
JP3613314B2
JP3613314B2 JP02966898A JP2966898A JP3613314B2 JP 3613314 B2 JP3613314 B2 JP 3613314B2 JP 02966898 A JP02966898 A JP 02966898A JP 2966898 A JP2966898 A JP 2966898A JP 3613314 B2 JP3613314 B2 JP 3613314B2
Authority
JP
Japan
Prior art keywords
processing
module
processing time
hardware
program
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
JP02966898A
Other languages
English (en)
Other versions
JPH11232077A (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 JP02966898A priority Critical patent/JP3613314B2/ja
Publication of JPH11232077A publication Critical patent/JPH11232077A/ja
Application granted granted Critical
Publication of JP3613314B2 publication Critical patent/JP3613314B2/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】
以上のようなプログラマブル論理回路を用いて、高速かつ簡便に処理することができる計算機システムが、特開平6−301522号公報に開示されている。この計算機システムは、複数のプログラムを元に、プログラマブル論理回路上にハードウエアを構成する例である。これを、図11を参照しながら説明する。
【0009】
すなわち、図11の従来例においては、計算機で実行するソースプログラム1000は、回路構成を変更できない固定部と、プログラマブル論理回路のように回路構成を変更できる可変部とで構成される。ライブラリ1001には、固定部の構成に関する情報と、可変部が構成することができる回路の情報が格納されている。
【0010】
コンパイラ1002は、ソースプログラム1000を解析し、ライブラリ1001を参照しながら、オブジェクトコードと、ハードウエア構成データに変換する。例えば、コンパイラ1002は、ソースプログラムのフロー解析を行い、関数の頻度を検出し、その検出した頻度に基づいて、呼び出し回数の多い関数をハードウエアで処理する関数として決定し、ハードウエア構成データ1003を作成し、出力する。
【0011】
次に、コンパイラ1002は、ハードウエアで処理すると決めた部分を所定の可変部で処理することを示すコードを生成する。そして、このコードを、残りのソフトウエアで処理する部分に付加してオブジェクトコード1004を作成し、出力する。計算機1005は、固定部と、ハードウエア構成データにより構成された可変部とを用いて、オブジェクトコードに応じた処理を実行する。
【0012】
このようにして、従来例1では、コンパイル時に呼び出し回数の多い関数をハードウエア化することにより処理全体の高速化を図っている。
【0013】
次に、前記問題を解決する従来例2として、特開平5−150943号公報に開示されるコンピュータ装置の場合を説明する。この従来例2においては、プログラマブル論理回路で行う処理と、固定的な論理回路装置で行う処理とに分離された処理を、アプリケーションプログラムとして、情報処理システムとしてのコンピュータ装置で実行する。
【0014】
この従来例2のコンピュータ装置は、CPU、メモリ、プログラマブル論理回路、ハードディスクなどの外部記憶装置、およびその他の入出力インターフェースで構成される。
【0015】
外部記憶装置には、プログラマブル論理回路の回路データと、アプリケーションプログラムが記憶してある。メモリには、外部記憶装置からアプリケーションプログラムをロードするイニシャルローディングプログラムが記憶してある。
【0016】
CPUは、これらのプログラムを実行するとともに、プログラマブル論理回路に回路データを書き込む。プログラマブル論理回路は、CPUのバスラインに接続され、バスライン上の信号を入力し、論理処理を施してバスラインへ信号を返す。この従来例2における処理手順を、図12に示す。
【0017】
まず、実行すべきプログラムファイルを指定する(ステップS1)。次に、指定したプログラムファイルに回路データが含まれるか否か判別し(ステップS2)、含まれる場合は、回路データ書き込みプログラムをロードして実行し(ステップS3)、続いて回路データをロードして(ステップS4)、その回路データをプログラマブル論理回路に書き込む(ステップS5)。その後、アプリケーションプログラムをロードし(ステップS6)、実行する(ステップS7)。
【0018】
指定したプログラムファイルに回路データが含まれていない場合には、ステップS2からステップS6に飛び、そのまま、アプリケーションプログラムをロードし、実行する。
【0019】
以上のように、この従来例2の場合、プログラマブル論理回路上の機能を用いる命令実行時に、回路が所定の論理処理を行う。これにより、アプリケーションごとに特殊なハードウエアを設けることなく、必要に応じた論理回路を構成して処理の高速化を図ることができる。
【0020】
【発明が解決しようとする課題】
しかしながら、以上説明した、処理の一部分をプログラマブル論理回路で処理する情報処理システムの従来例は、次のような問題がある。
【0021】
従来例1では、プログラマブル論理回路により構成される可変部で実行する処理を、ひとつのプログラム内で呼び出し回数の多い関数のように一元的に決めている。
【0022】
プログラマブル論理回路は、処理を実行する前に、回路を構成する時間が必要である。したがって、本来、この回路構成時間を含めた可変部の処理時間と固定部の処理時間とを比較して可変部で実行する処理を決める必要があるが、従来例1では、このプログラマブル論理回路の構成時間を考慮して、プログラマブル論理回路により構成される可変部で実行する処理を決めるようにしてはいない。このため、従来例1の場合において、実際には、固定部で処理した方が早い場合も生じ、効率的な処理が行えない問題がある。
【0023】
このプログラマブル論理回路の回路構成時間を考慮して、可変部と固定部のどちらで処理を実行するかをきめる場合の問題点をさらに、説明する。
【0024】
一般に、呼び出し回数や処理回数が少ない場合は、実際の処理時間に対して、プログラマブル論理回路の回路構成時間の割合が大きいので、固定部でソフトウエア的に処理したほうが処理時間が短い。一方、呼び出し回数や処理回数が多い場合は、実際の処理時間に対して、プログラマブル論理回路の回路構成時間の割合が小さいので、可変部でハードウエア的に処理したほうが処理時間が短い。
【0025】
このとき、処理を可変部と固定部に振り分ける基準となる、関数などの呼び出し回数や処理回数は、使用する可変部と固定部のアーキテクチャと処理速度(クロック周波数)により決まる。ある処理を行うために必要なクロック数は、可変部と固定部のアーキテクチャにより決まり、処理時間は必要なクロック数に、クロック周波数の逆数を掛け合わせることにより求められる。
【0026】
一般的に、情報処理システムのアーキテクチャが異なれば、情報処理を行うプログラムも異なるので、アーキテクチャ毎にプログラムを用意する必要がある。一方、アーキテクチャが同じであれば、クロック周波数が異なっても同じプログラムを用いることができ、クロック周波数が高くなれば処理速度が早くなることが期待できる。
【0027】
ところが、処理の一部分をプログラマブル論理回路で処理する情報処理システムは、アーキテクチャが同じであっても、先に述べたように、固定部と可変部のクロック周波数が異なれば、可変部と固定部に処理を振り分ける基準となる呼び出し回数や処理回数が異なるので、可変部と固定部のいずれを使用するかを簡単に決めることができるようにするためには、クロック周波数の組み合わせ毎にプログラムを準備する必要がある。
【0028】
最近では半導体デバイスの製造技術の進歩が早いので、同じアーキテクチャであってもクロック周波数の高い半導体デバイスが次々と開発される。このような状況を鑑みると、クロック周波数の組み合わせ毎にプログラムを準備することは、大変な労力を必要とし、実用的な情報処理システムに適用することは現実的ではないという問題がある。
【0029】
次に、従来例2では、プログラム毎にハードウエアで処理する部分を、プログラム実行前に、プログラマブル論理回路に構成している。情報処理システムが、複数のプログラムを用いて複数の処理を連続して実行するときには、先に実行されたプログラムによってプログラマブル論理回路上に構成された回路と同じ回路を、後に実行されるプログラムが使用できる場合がある。
【0030】
先に実行されたプログラムによってプログラマブル論理回路に構成された回路を利用することができれば、回路を構成する時間が短くできるので、先に述べた処理を振り分ける基準となる呼び出し回数や処理回数も小さくなり、比較的、呼び出し回数や処理回数が少ない処理も、プログラマブル論理回路に構成された回路でハードウエア的に処理することで、プログラム全体の処理時間を短くすることができる。
【0031】
ところが、個々のプログラムを作成するときには、情報処理システムで連続して実行されるプログラムを予測することはできないので、共通に利用されるであろう回路を見出すことは不可能である。よって、複数のプログラムで共通に利用することができる回路であっても、これを利用して、プログラム全体の処理時間を短くすることができないという問題がある。
【0032】
この発明は、以上の点にかんがみ、プログラマブル論理回路の回路構成時間を考慮して、ソフトウエアとハードウエアのどちらで処理を実行するかを効率良く決定することができるようにした情報処理システムを提供することを目的とする。
【0033】
【課題を解決するための手段】
上記課題を解決するため、請求項1の発明による情報処理システムは、
プログラムにより実行される処理の少なくとも一部分の処理が、プログラマブル論理回路で処理できるものであって、かつ、
前記プログラムが、プログラム言語で処理を記述したソフトウエアモジュールの組み合わせからなると共に、前記プログラマブル論理回路に構成する回路情報で、前記ソフトウエアモジュールが行なう処理と同じ処理を記述したハードウエアモジュールを、前記プログラム内に備える情報処理システムにおいて、
前記プログラムでの処理開始と同時に、前記同じ処理を行なう前記ソフトウエアモジュールと前記ハードウエアモジュールとを同時に並行して実行して、前記ソフトウエアモジュールによる処理時間と、プログラマブル論理回路の回路構成時間を含む前記ハードウエアモジュールによる処理時間を比較する処理時間比較手段と、
前記処理時間比較手段での比較結果に基づいて、前記プログラムに記述された処理を継続して実行するモジュールを、前記ソフトウエアモジュールまたはハードウエアモジュールの一方に決定して、当該決定したモジュールにより前記プログラムに記述された処理を継続して実行する実行モジュール決定手段と、
を備えることを特徴とする。
また、請求項2の発明は、請求項1に記載の情報処理システムにおいて、
前記処理時間比較手段は、前記同じ処理を行なう前記ソフトウエアモジュールと前記ハードウエアモジュールとの、それぞれ一回の処理時間を計測することにより、前記ソフトウエアモジュールと前記ハードウエアモジュールとの処理時間が同じになる繰り返し回数を算出し、
前記実行モジュール決定手段は、前記処理時間比較手段により算出された前記繰り返し回数よりも大きい繰り返し回数の処理については、前記ハードウエアモジュールを継続して実行するモジュールとして決定する
ことを特徴とする。
【0034】
請求項3の発明は、請求項1に記載の情報処理システムにおいて、
前記処理時間比較手段は、前記同じ処理を行なう前記ソフトウエアモジュールと前記ハードウエアモジュールとの処理時間が、同じになる繰り返し回数を算出し、
前記実行モジュール決定手段は、前記処理時間比較手段により算出された繰り返し回数よりも小さい繰り返し回数の処理については、前記ソフトウエアモジュールを、継続して実行するモジュールとして決定する
ことを特徴とする。
【0035】
また、請求項4の発明は、請求項1に記載の情報処理システムにおいて、
前記処理時間比較手段は、前記同じ処理を行なう前記ソフトウエアモジュールと前記ハードウエアモジュールとの、それぞれ一回の処理時間を計測することにより、前記ソフトウエアモジュールと前記ハードウエアモジュールとの処理時間が同じになる繰り返し回数を算出し、
前記実行モジュール決定手段は、前記処理時間比較手段により算出された前記繰り返し回数と同じ繰り返し回数の処理については、事前に決めた優先モジュールを、継続して実行するモジュールとして決定する
ことを特徴とする。
【0036】
また、請求項5の発明は、請求項1に記載の情報処理システムにおいて、
前記処理時間比較手段は、前記同じ処理を行なう前記ソフトウエアモジュールと前記ハードウエアモジュールとの、それぞれ一回の処理時間を計測することにより、前記ソフトウエアモジュールと前記ハードウエアモジュールとの処理時間が同じになる繰り返し回数を算出し、
前記実行モジュール決定手段は、前記処理時間比較手段により算出された前記繰り返し回数と同じ繰り返し回数の処理については、ハードウエアモジュールを、継続して実行するモジュールとして決定すると共に、次のソフトウエアモジュールを並行して実行するように指示する
ことを特徴とする。
【0037】
また、請求項6の発明は、請求項2に記載の情報処理システムにおいて、
前記実行モジュール決定手段は、前記ハードウエアモジュールを、継続して実行するモジュールとして決定することに加えて、次のソフトウエアモジュールを並行して実行するように指示する
ことを特徴とする。
【0038】
【作用】
上述の構成の発明による情報処理システムにおいては、プログラムにソフトウエアモジュールと、ハードウエアモジュールとが記述されている。処理時間比較手段は、同じ処理を行うソフトウエアモジュールとハードウエアモジュールとを同時に実行して、処理時間を比較する。そして、実行モジュール決定手段は、処理時間が速い方で処理を実行するように決定する。
【0039】
請求項2の発明においては、同じ処理を行うソフトウエアモジュールとハードウエアモジュールとを同時に実行し、それぞれ1回の処理時間を計測することにより、ソフトウエアモジュールとハードウエアモジュールとの処理時間が、同じになる繰り返し回数を算出する。そして、算出された繰り返し回数よりも大きい繰り返し回数の処理は、ハードウエアモジュールで実行する。
【0040】
したがって、実際の処理時間として速くなる繰り返し回数からハードウエアモジュールによる処理を用いて処理を実行することができるようになる。
【0041】
請求項3の発明においては、繰り返し処理であっても、ソフトウエアモジュールで処理をした方が速い間は、ソフトウエアモジュールで処理が行われる。
【0042】
請求項4の発明においては、ソフトウエアモジュールとハードウエアモジュールとの処理時間が、同じになる繰り返し回数を算出し、算出された繰り返し回数とおなじ繰り返し回数の処理は、事前に決めた優先モジュールで実行される。
【0043】
請求項5の発明においては、ソフトウエアモジュールとハードウエアモジュールとの処理時間が、同じになる繰り返し回数を算出し、算出された繰り返し回数とおなじ繰り返し回数の処理は、ハードウエアモジュールは実行することとすると共に、次の処理はソフトウエアモジュールで実行するようにする。
【0044】
この請求項5の発明によれば、ハードウエアモジュールで繰り返し処理を実行中にソフトウエアモジュールによる処理を行うことができ、効率の良い処理が行える。
【0045】
請求項6の発明においては、請求項5の場合と同様に、ハードウエアモジュールで実行することとに加えて、次のソフトウエアモジュールを実行するようにするので、請求項5の発明と同様の作用効果が得られる。
【0046】
【発明の実施の形態】
以下、この発明による情報処理システムの実施の形態を、図を参照しながら説明する。
【0047】
この発明による、少なくとも処理の一部分が回路構成を再構成できるプログラマブル論理回路で処理される情報処理システムの実施の形態の主要な概念構成を図1に示す。
【0048】
一般的に、情報処理システムが実行するひとつの処理は、さらに細かい処理に分けることができる。この実施の形態において、対象とするアプリケーションプログラム(以下の説明においては、単にプログラムという場合もある)100は、当該プログラム100により実行しようとする一連の処理を複数個の処理に分離し、分離された各処理ごとにモジュールとして構成する。この分離された個々の処理を、この明細書では処理モジュールと称することとする。
【0049】
この第1の実施の形態では、プログラム100は、個々の処理モジュールをプログラム言語で記述したソフトウエアモジュールSMの集まりで構成される。さらに、プログラム100は、ソフトウエアモジュールSMが行う処理と同じ処理を、プログラマブル論理回路300に構成する回路情報で記述したモジュール(この明細書では、このモジュールをハードウエアモジュールと称する)HMも持つ。
【0050】
ソフトウエアモジュールSMはCPU200で実行され、ハードウエアモジュールHMはプログラマブル論理回路300上に構成された回路で実行される。
【0051】
ここで、プログラム100には、すべてのソフトウエアモジュールSMに対応したハードウエアモジュールHMを用意する必要はない。
【0052】
高精度の乗算や、浮動小数点計算のような数値処理は、プログラマブル論理回路より専用の乗算器や、浮動小数点演算器を備えたCPUやDSP(Digital Signal Processor)のような専用処理デバイスで実行したほうが処理時間を短くすることができる。
【0053】
一方、パターンマッチングや整数演算のようなビットレベル処理は、処理ビット幅で並列処理ができるプログラマブル論理回路のほうが効率よく処理できる。また、ハードウエアモジュールHMは、プログラマブル論理回路上に回路を構成するための余分な時間が必要である。
【0054】
よって、繰り返し回数が少ない処理では、たとえプログラマブル論理回路が得意なビットレベル処理であっても、回路構成時間まで考慮すると、ソフトウエアモジュールSMによる処理時間よりも長くなる場合もある。よって、処理時間がCPUによる処理より短く、かつ、繰り返し回数が多いために処理時間に占める回路構成時間が充分小さい処理のように、プログラマブル論理回路で処理することにより処理時間を短くできる可能性のあるソフトウエアモジュールSMに対応するハードウエアモジュールHMのみを用意する。
【0055】
プログラム100上、ソフトウエアモジュールSMのみで記述される処理は、CPU200で実行される。また、ソフトウエアモジュールSMとハードウエアモジュールHMとで記述される処理は、それぞれを同時に、CPU200とプログラマブル論理回路300で実行し、処理時間比較手段400が処理時間を予測し、その予測に基づいて、実行モジュール決定手段500が処理時間を最短にするように、ソフトウエアモジュールSMとハードウエアモジュールHMのどちらで処理を継続するかを決定する。
【0056】
[実施の形態のハードウエア構成例]
図2は、この発明の実施の形態の情報処理システム10のハードウエア構成例を示すブロック図である。この実施の形態の情報処理システム10においては、CPU11のホストバス11Bに、チップセット12に含まれるメモリコントローラ(図示せず)を介して、例えばDRAMで構成されるメインメモリ13が接続される。
【0057】
ホストバス11Bは、また、チップセット12に含まれるホスト−PCIバスブリッジ(図示せず)を介して、PCIバス14に接続される。PCIバス14には、プログラマブル論理回路インターフェース15を介してプログラマブル論理回路16と、ハードディスクインターフェース17を介してハードディスクドライブ18と、通信インターフェース19とが接続される。通信インターフェース19は、LANやインターネットなどのネットワーク20を介して記憶装置(サーバ)21に接続される。
【0058】
ハードディスクドライブ18により読み書きされるハードディスクには、アプリケーションプログラムが格納されている。また、アプリケーションプログラムは、ネットワーク20上の記憶装置21に格納されている場合もある。
【0059】
この実施の形態では、処理時間比較手段400と実行モジュール決定手段500が、図2で示した情報処理システム10のOSのひとつの機能としてソフトウエア的に実装される。
【0060】
次に、プログラマブル論理回路16の構造を図3に示す。プログラマブル論理回路16は、図4に示すように、回路情報を格納するためのコンフィギュレーションメモリ160と、論理セル161と、配線領域162と、入出力端子163とで構成される。
【0061】
コンフィギュレーションメモリ160は、論理セル161内および配線領域162内のSRAM、DRAMなどの書き換え可能なメモリ素子で構成されている。コンフィギュレーションメモリ160にアドレスADRが与えられて、新しい回路情報のデータDAが格納されると、この回路情報に従って、論理セル161内の回路構成と、論理セル161および入出力端子163を相互に接続する配線領域162の接続状態が再構成される。この一連の動作をコンフィギュレーションと呼ぶ。コンフィギュレーションメモリ160の一部分を書き換えることで、プログラマブル論理回路が動作中であっても、回路を部分的に再構成することができる。
【0062】
図4に示すように、プログラマブル論理回路16に再構成されて形成された回路素子164に、処理すべきデータが入力され、また、その処理結果が出力される。
【0063】
[この発明の実施の形態による処理の説明]
4つの8ビット数A、B、C、Dの和Qを、m回繰り返して求める整数演算を例に用いて、この実施の形態における処理時間比較手段400と実行モジュール決定手段500の動作を説明する。
【0064】
図5は、4つの8ビット数A,B,C,Dの和Qを求めるハードウエアモジュールHMの例を示す。このハードウエアモジュールHMは、2入力の8ビット加算器21、22および2入力の9ビット加算器23で構成される。
【0065】
加算器21でAとBの和を求め、加算器22でCとDの和を求める。加算器21と加算器22は、桁上がりを考慮した9ビットの値を出力する。加算器23でこれらの値の和を求めることにより、和Qを得る。加算器21と加算器22の計算は並列的に実行されるので、このハードウエアモジュールHMでの処理は、1クロックの処理時間で終了する。
【0066】
図6は、4つの8ビット数A,B,C,Dの和Qを求めるソフトウエアモジュールSMの例を示す。このソフトウエアモジュールSMは、最初にLoad命令を用いてAをCPUのレジスタにロードする。次に、Add命令を用いて、AをロードしたレジスタにBを加える。さらに、Add命令を繰り返すことにより、CとDを同じレジスタに加える。最後に、Move命令を用いて、和Qを出力する。このソフトウエアモジュールSMでは、命令は逐次的に実行されるので、5クロックの処理時間が必要である。
【0067】
[処理の第1の実施例]
第1の実施例として、CPU200とプログラマブル論理回路300とが同じクロック周波数で動作する場合に、ソフトウエアモジュールSMとハードウエアモジュールHMにより前述の和Qを求めるときの処理動作のフローチャートを図7に示し、また、そのときの繰り返し回数と、クロック数で表した処理時間の関係を図8に示す。
【0068】
図7に示すように、プログラムが開始すると、ソフトウエアモジュールSMによる処理と、ハードウエアモジュールHMによる処理とが並行して実行し、1回目の処理が終了した時点で、ソフトウエアモジュールによる1回の処理時間aが計測される(ステップS101)と共に、ハードウエアモジュールによる1回の処理時間bと、回路構成時間cとが計測される(ステップS102)。
【0069】
ソフトウエアモジュールSMによる1回の処理時間aは、前述したように、この例の場合の和Qを求めるソフトウエアモジュールSMは、5クロック分である。一方、対応するハードウエアモジュールHMは、1回の処理時間bは1クロック分である。
【0070】
そして、回路構成時間cは次の通りとなる。図5に示した8ビット加算器21と22は、24個の論理セルで構成され、9ビット加算器23は27個の論理セルで構成される。1論理セルを構成するために必要な回路情報は8ビットであるので、加算器を構成するために必要な回路情報量は、
(24セル×8ビット/ セル) ×2個
+27セル×8ビット/セル=600ビット
である。
【0071】
さらに、加算器21、22、23を配線するために40ビットの回路情報が必要である。よって、必要な回路情報量は640ビットである。プログラマブル論理回路のコンフィギュレーションメモリは32ビット幅で書き込むことができるので、求める回路構成時間cは、
640ビット÷32ビット/クロック=20クロック
分となる。
【0072】
この計測結果に基づいて、処理時間比較手段400は、図8に示すチャートを用いて、ソフトウエアモジュールSMによる処理時間Tsが回路構成時間cに等しくなる繰り返し回数n1と、ソフトウエアモジュールSMによる処理時間TsとハードウエアモジュールHMによる処理時間Thとが同じになる繰り返し回数n2を求める(ステップS103)。このとき、1回目の処理が早く終了するソフトウエアモジュールSMは、ハードウエアモジュールHMが1回目の処理を終了するまで処理を継続する。
【0073】
前述したように、この例の場合のソフトウエアモジュールSMによる処理では、5クロック毎に1回の処理を実行するので、処理時間Tsはくり返し回数nに比例し、
Ts=a×n …(1)
と表される。ただし、a=5(クロック/処理)である。
【0074】
また、この例の場合のハードウエアモジュールHMによる処理では、1クロック毎に1回の処理を実行するが、実行開始前にプログラマブル論理回路に回路を構成する時間cが必要なので、処理時間Thは、
Th=b×n+c …(2)
と表される。なお、b= 1(クロック/ 処理)である。
【0075】
したがって、ソフトウエアモジュールSMによる処理時間Tsが回路構成時間cに等しくなる繰り返し回数n1は、式(1)から、
n1=c/a …(3)
となり、この例ではn1=4である。
【0076】
また、ソフトウエアモジュールSMによる処理時間TsとハードウエアモジュールHMによる処理時間Thとが同じになる繰り返し回数n2は、式(1)、式(2)から、
n2=c/(a−b) …(4)
となり、この例では、n2=5である。
【0077】
実行モジュール決定手段は、以上のようにして、処理時間比較手段が求めた繰り返し回数n1とn2とに基づいて、プログラム上設定されている繰り返し回数mの処理時間を最短にするモジュールを次のように決定する(ステップS104)。
【0078】
m≦n1の場合
ハードウエアモジュールHMの回路が構成される前に、ソフトウエアモジュールSMによる処理で処理が終了してしまう場合である。すなわち、処理時間比較手段400と実行モジュール決定手段500による判断を行う前に処理が終了し、次の処理を開始することができる(ステップS105)。
【0079】
n1<m<n2の場合
ソフトウエアモジュールSMによる処理時間Tsが、ハードウエアモジュールHMよる処理時間Thよりも短いと予測されるので、ソフトウエアモジュールSMによる処理を継続する。ハードウエアモジュールHMによる処理は、1回めの処理が終了した時点で中止する(ステップS106)。
【0080】
m=n2の場合
ソフトウエアモジュールSMによる処理時間TsとハードウエアモジュールHMによる処理時間Thとが同じであると予測されるので、他の要因で実行するモジュールを決定する(ステップS107)。
【0081】
例えば、この和Qのm回の繰り返し演算処理のモジュールの次に実行するモジュールが、ソフトウエアモジュールであり、現在実行している演算処理と独立に実行できる処理であれば、ハードウエアモジュールによる処理を継続し、CPU200は、次の処理をソフトウエアモジュールで並行して実行することで、プログラム全体の処理時間を短縮することができる。
【0082】
他に決定する要因がなければ、どちらのモジュールで実行してもプログラム全体の処理時間が同じであるので、事前に優先モジュールを決めておき、それに従うものとする。
【0083】
n2<mの場合
ハードウエアモジュールHMよる処理時間Thが、ソフトウエアモジュールSMによる処理時間Tsより短いと予測されるので、ハードウエアモジュールHMによる処理を継続する。ソフトウエアモジュールSMによる処理は、ハードウエアモジュールHMによる1回目の処理が終了した時点で中止する。
【0084】
この場合に、次に実行するモジュールがソフトウエアモジュールであり、現在実行している処理と独立に実行できる処理であれば、CPU200は、次のソフトウエアモジュールSMを並行して実行することで、プログラム全体の処理時間を短縮することができる。
【0085】
上述した第1の実施例の場合、n1=4回、n2=5回である。m=10回とすれば、n2<mであるので、実行モジュール決定手段500は、ハードウエアモジュールHMによる処理の継続をプログラマブル論理回路に指示し、ソフトウエアモジュールSMによる処理の中断をCPU200に指示する。また、ハードウエアモジュールHMによる処理は、30クロックの処理時間を必要とすることが予測できる。たとえば、クロック周波数が10MHzであれば、処理時間は3μsである。
【0086】
さらに、この第1の実施例のソフトウエアモジュールSMとハードウエアモジュールHMとが、図1に示したソフトウエアモジュール2とハードウエアモジュール2のように、次に実行するするモジュールがソフトウエアモジュールであり、かつ、前の処理と独立に実行できる処理であれば、CPU200は、ソフトウエアモジュール3を実行することにより、プログラム全体の処理時間を短縮することができる。
【0087】
[第2の実施例]
この第2の実施例は、CPU200と、プログラマブル論理回路300とが、異なるクロック周波数で動作する場合である。そして、この第2の実施例においても、第1の実施例の場合と同様に、図5および図6に示したようなハードウエアモジュールHMおよびソフトウエアモジュールSMを用いて和Qを求める場合である。
【0088】
異なるクロック周波数で動作するCPUとプログラマブル論理回路を用いて、ソフトウエアモジュールSMとハードウエアモジュールHMにより和Qを求めるときの、繰り返し回数とプログラマブル論理回路のクロック数であらわした処理時間の関係を図9に示す。
【0089】
この第2の実施例では、第1の実施例と同じソフトウエアモジュールSMとハードウエアモジュールHMを用いるが、CPU200のクロック周波数がプログラマブル論理回路300の2倍である場合である。よって、CPU200における5クロックのソフトウエアモジュール処理は、プログラマブル論理回路300の2.5クロックに相当する。
【0090】
この第2の実施例の場合には、n1=8回、n2=13.3回となる。m=10回とすれば、n1<m<n2であるので、実行モジュール決定手段500は、ソフトウエアモジュールSMによる処理の継続をCPU200に指示し、ハードウエアモジュールHMによる処理の中断をプログラマブル論理回路300に指示する。また、ソフトウエアモジュールSMによる処理は、プログラマブル論理回路300のクロック周波数で25クロックの処理時間を必要とすることが予測できる。例えば、クロック周波数が10MHzであれば、処理時間は2.5μsである。
【0091】
半導体デバイス技術の進歩により、次々とクロック周波数の高いデバイスが開発される状況を鑑みると、プログラムを実行するCPUとプログラマブル論理回路のクロック周波数が一定の値にとどまることはない。たとえ、将来のクロック周波数を予測することができたとしても、それらの組み合せ毎に処理時間が最小になるようにソフトウエアモジュールとハードウエアモジュールを組み合わせたプログラムを作成して使い分けることは、多くの労力を必要とする。
【0092】
第1の実施例と第2の実施例により、CPUとプログラマブル論理回路のクロック周波数が異なる場合は、処理時間を最短にするモジュールも異なることが分かる。すなわち、この発明を用いれば、CPUやプログラマブル論理回路のクロック周波数などの種々の状況においても、同じプログラムを実行して常に処理時間を最小に保つことができる。
【0093】
[第3の実施例]
第3の実施例として、異なるクロック周波数で動作するCPUとプログラマブル論理回路とを用いて、ソフトウエアモジュールとハードウエアモジュールにより和Qを求める場合であって、すでにハードウエアモジュールの一部がプログラマブル論理回路に構成されている場合の例を説明する。
【0094】
この第3の実施例の場合の、繰り返し回数とプログラマブル論理回路のクロック数で表した処理時間の関係を図10に示す。
【0095】
この第3の実施例も、第1の実施例と同じソフトウエアモジュールとハードウエアモジュールを用いているが、CPUのクロック周波数がプログラマブル論理回路の2倍の場合である。よって、CPUにおける5クロックのソフトウエアモジュール処理は、プログラマブル論理回路の2.5クロックに相当する。
【0096】
さらに、この第3の実施例では、先に実行されたプログラムにより、加算器21と加算器22がプログラマブル論理回路上に構成されているとする。よって、第3の実施例の場合は、27個の論理セルで構成される9ビット加算器23と、加算器21、22、23間の配線を構成すればよいので、必要な回路情報量は、
27セル×8ビット/セル+40ビット=256ビット
となる。
【0097】
プログラマブル論理回路のコンフィギュレーションメモリは32ビット幅で書き込むことができるので、この第3の実施例の場合の回路構成時間cは、
c=256ビット÷32ビット/クロック=8クロック
となる。
【0098】
したがって、この第3の実施例の場合、n1=3.2回、n2=5.3回とあなる。m=10回とすれば、n2<mであるので、実行モジュール決定手段500は、ハードウエアモジュールHMによる処理の継続をプログラマブル論理回路300に指示し、ソフトウエアモジュールSMによる処理の中断をCPU200に指示する。また、この場合、ハードウエアモジュールHMによる処理は、18クロックの処理時間を必要とすることが予測できる。例えば、クロック周波数が10MHzであれば、処理時間は1.8μsである。
【0099】
情報処理システムが、複数のプログラムを用いて複数の処理を連続して実行するときには、あるプログラムによってプログラマブル論理回路上に構成された回路と同じ回路を、後に実行されるプログラムが使用する場合がある。先に実行されたプログラムによってプログラマブル論理回路に構成された回路を利用することができれば、その回路を構成する時間が短くできる。
【0100】
ところが、個々のプログラムを作成するときには、情報処理システムで連続して実行されるプログラムを予測することはできないので、共通に利用されるであろう回路を見出すことは不可能である。しかし、この発明の実施の形態の場合には、情報処理システムで行う処理を複数個に分離し、その分離した処理モジュール単位で処理を行わせるように、プログラムを作成している。したがって、前の処理モジュールでプログラマブル論理回路上に構成された回路と同じ回路を、後に実行される処理モジュールで使用することが可能になる。
【0101】
以上のように、第2の実施例と第3の実施例のより、ハードウエアモジュールの一部がすでにプログラマブル論理回路上に構成されているときには、処理時間を最短にするモジュールも異なることが分かる。このように、この発明を用いれば、このような状況においても、同じプログラムを実行して処理時間を最小に保つことができる。
【0102】
以上説明したように、CPUで実行されるソフトウエアモジュール処理に必要なクロック数と、プログラマブル論理回路で実行されるハードウエアモジュール処理に必要なクロック数を事前に予測することはできる。実際の処理時間は、クロック数にクロック周波数の逆数を掛けあわせたものになるので、プログラムの処理時間を最小にするソフトウエアモジュールと、ハードウエアモジュールの組み合わせは、クロック周波数によって異なる。
【0103】
一般的に、CPUとプログラマブル論理回路は異なるクロック周波数で動作し、さらに、最近の半導体デバイス技術の進歩により、次々とクロック周波数の高いデバイスが開発される。この実施の形態によれば、このような状況下においても、同じプログラムを用いて、常に処理時間を最小に保つことができる。
【0104】
先に実行されたプログラムによってプログラマブル論理回路に構成された回路を利用することができれば、回路を構成する時間が短くできる。ところが、個々のプログラムを作成するときには、情報処理システムで連続して実行されるプログラムを予測することはできないので、共通に利用されるであろう回路を見いだすことは不可能である。この発明によれば、このような状況においても、同じプログラムを用いて、すでにプログラマブル論理回路上に構成されいる複数のプログラムで共通に利用することができる回路を利用して、プログラム全体の処理時間を最小に保つことができる。
【0105】
【発明の効果】
以上説明したように、この発明によれば、少なくとも処理の一部分が回路構成を再構成できるプログラマブル論理回路で処理される情報処理システムにおいて、ソフトウエアとハードウエアとを同時に実行しながら、処理時間が最も最適なとなるソフトウエアの処理とハードウエアの処理の組み合わせを選択して処理を実行することができる。
【図面の簡単な説明】
【図1】この発明による情報処理システムの実施の形態の概念構成を示すブロック図である。
【図2】この発明による情報処理システムの実施の形態のハードウエア構成例を示す図である。
【図3】プログラマブル論理回路の一例を説明するための図である。
【図4】プログラマブル論理回路の一例を説明するための図である。
【図5】ハードウエアモジュールの例を示す図である。
【図6】ソフトウエアモジュールの例を示す図である。
【図7】この発明による情報処理システムの実施の形態の主要な処理動作を説明するためのフローチャートである。
【図8】この発明による情報処理システムの第1の実施例の動作を説明するために用いる図である。
【図9】この発明による情報処理システムの第2の実施例の動作を説明するために用いる図である。
【図10】この発明による情報処理システムの第3の実施例の動作を説明するために用いる図である。
【図11】従来の情報処理システムの一例を説明するための図である。
【図12】従来の情報処理システムの他の一例を説明するための図である。
【符号の説明】
10 情報処理システム
11 CPU
12 チップセット
13 メインメモリ
14 バス
15 プログラマブル論理回路インターフェース
16 プログラマブル論理回路
17 ハードディスクインターフェース
18 ハードディスクドライブ
21 ネットワーク上の記憶装置
100 アプリケーションプログラム
200 CPU
300 プログラマブル論理回路
400 処理時間比較手段
500 実行モジュール決定手段

Claims (6)

  1. プログラムにより実行される処理の少なくとも一部分の処理が、プログラマブル論理回路で処理できるものであって、かつ、前記プログラムが、プログラム言語で処理を記述したソフトウエアモジュールの組み合わせからなると共に、前記プログラマブル論理回路に構成する回路情報で、前記ソフトウエアモジュールが行なう処理と同じ処理を記述したハードウエアモジュールを、前記プログラム内に備える情報処理システムにおいて、
    前記プログラムにより実行される処理の開始と同時に、前記同じ処理を行なう前記ソフトウエアモジュールと前記ハードウエアモジュールとを同時に並行して実行して、前記ソフトウエアモジュールによる処理時間と、プログラマブル論理回路の回路構成時間を含む前記ハードウエアモジュールによる処理時間を比較する処理時間比較手段と、
    前記処理時間比較手段での比較結果に基づいて、前記プログラムに記述された処理を継続して実行するモジュールを、前記ソフトウエアモジュールまたはハードウエアモジュールの一方に決定して、当該決定したモジュールにより前記プログラムに記述された処理を継続して実行する実行モジュール決定手段と、
    を備えることを特徴とする情報処理システム。
  2. 請求項1に記載の情報処理システムにおいて、
    前記処理時間比較手段は、前記同じ処理を行なう前記ソフトウエアモジュールと前記ハードウエアモジュールとの、それぞれ一回の処理時間を計測することにより、前記ソフトウエアモジュールと前記ハードウエアモジュールとの処理時間が同じになる繰り返し回数を算出し、
    前記実行モジュール決定手段は、前記処理時間比較手段により算出された前記繰り返し回数よりも大きい繰り返し回数の処理については、前記ハードウエアモジュールを継続して実行するモジュールとして決定する
    ことを特徴とする情報処理システム。
  3. 請求項1に記載の情報処理システムにおいて、
    前記処理時間比較手段は、前記同じ処理を行なう前記ソフトウエアモジュールと前記ハードウエアモジュールとの処理時間が、同じになる繰り返し回数を算出し、
    前記実行モジュール決定手段は、前記処理時間比較手段により算出された繰り返し回数よりも小さい繰り返し回数の処理については、前記ソフトウエアモジュールを、継続して実行するモジュールとして決定する
    ことを特徴とする情報処理システム。
  4. 請求項1に記載の情報処理システムにおいて、
    前記処理時間比較手段は、前記同じ処理を行なう前記ソフトウエアモジュールと前記ハードウエアモジュールとの、それぞれ一回の処理時間を計測することにより、前記ソフトウエアモジュールと前記ハードウエアモジュールとの処理時間が同じになる繰り返し回数を算出し、
    前記実行モジュール決定手段は、前記処理時間比較手段により算出された前記繰り返し回数と同じ繰り返し回数の処理については、事前に決めた優先モジュールを、継続して実行するモジュールとして決定する
    ことを特徴とする情報処理システム。
  5. 請求項1に記載の情報処理システムにおいて、
    前記処理時間比較手段は、前記同じ処理を行なう前記ソフトウエアモジュールと前記ハードウエアモジュールとの、それぞれ一回の処理時間を計測することにより、前記ソフトウエアモジュールと前記ハードウエアモジュールとの処理時間が同じになる繰り返し回数を算出し、
    前記実行モジュール決定手段は、前記処理時間比較手段により算出された前記繰り返し回数と同じ繰り返し回数の処理については、ハードウエアモジュールを、継続して実行するモジュールとして決定すると共に、次のソフトウエアモジュールを並行して実行するように指示する
    ことを特徴とする情報処理システム。
  6. 請求項2に記載の情報処理システムにおいて、
    前記実行モジュール決定手段は、前記ハードウエアモジュールを、継続して実行するモジュールとして決定することに加えて、次のソフトウエアモジュールを並行して実行するように指示する
    ことを特徴とする情報処理システム。
JP02966898A 1998-02-12 1998-02-12 情報処理システム Expired - Fee Related JP3613314B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02966898A JP3613314B2 (ja) 1998-02-12 1998-02-12 情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02966898A JP3613314B2 (ja) 1998-02-12 1998-02-12 情報処理システム

Publications (2)

Publication Number Publication Date
JPH11232077A JPH11232077A (ja) 1999-08-27
JP3613314B2 true JP3613314B2 (ja) 2005-01-26

Family

ID=12282504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02966898A Expired - Fee Related JP3613314B2 (ja) 1998-02-12 1998-02-12 情報処理システム

Country Status (1)

Country Link
JP (1) JP3613314B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004075056A1 (ja) * 2003-02-21 2004-09-02 National Institute Of Advanced Industrial Science And Technology ウイルスチェック装置及びシステム
JP2006011840A (ja) * 2004-06-25 2006-01-12 Mitsubishi Electric Corp 組み込みシステム
JP5016807B2 (ja) * 2005-10-07 2012-09-05 株式会社日立ハイテクノロジーズ データ処理システム
JP5552855B2 (ja) 2010-03-19 2014-07-16 富士ゼロックス株式会社 画像処理装置、画像形成システム及び画像処理プログラム
JP5703729B2 (ja) * 2010-12-09 2015-04-22 富士ゼロックス株式会社 データ処理装置及びプログラム
JP6477045B2 (ja) * 2015-03-06 2019-03-06 富士ゼロックス株式会社 情報処理装置

Also Published As

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

Similar Documents

Publication Publication Date Title
US6442732B1 (en) Virtual logic system for solving satisfiability problems using reconfigurable hardware
JP3921367B2 (ja) データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム
US6035106A (en) Method and system for maintaining hierarchy throughout the integrated circuit design process
US7146300B2 (en) Method of co-simulating a digital circuit
Claus et al. A new framework to accelerate Virtex-II Pro dynamic partial self-reconfiguration
US20070283311A1 (en) Method and system for dynamic reconfiguration of field programmable gate arrays
EP1600865A1 (en) Dynamic programming of trigger conditions in hardware emulation systems
JP2001124836A (ja) イベント型半導体テストシステム
JP2001014298A (ja) 合成及びレイアウトのオーバーヘッドが少ないsatソルバー・アーキテクチャーを得るための方法及び装置
EP1306751A1 (en) System for managing circuitry of variable function information processing circuit and method for managing circuitry of variable function information processing circuit
KR100499720B1 (ko) 시스템 엘에스아이 설계 방법
JP3832557B2 (ja) プログラマブル論理回路への回路の再構成方法および情報処理システム
JP3613314B2 (ja) 情報処理システム
JP2746502B2 (ja) 半導体集積回路装置の製造装置及び製造方法並びに電子回路装置
JP2004062238A (ja) 消費電力算出方法
US20040236929A1 (en) Logic circuit and program for executing thereon
US6505340B2 (en) Circuit synthesis method
JPH11232079A (ja) 情報処理システム
JP2002026721A (ja) 情報処理装置
JP2002269162A (ja) 動作合成方法
JP3803283B2 (ja) 集積回路のテストのための圧縮テストプランの生成、テスト系列生成およびテスト
US6532584B1 (en) Circuit synthesis method
Fricke et al. Automatic tool-flow for mapping applications to an application-specific cgra architecture
Dey et al. Synthesizing designs with low-cardinality minimum feedback vertex set for partial scan application
JPH11120210A (ja) 再構成可能な回路の設計装置、及び再構成可能な回路装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040520

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040702

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041019

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081105

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091105

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101105

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111105

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111105

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121105

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121105

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees