(57)【要約】【課題】プロセッサの処理負担を増大させずにポーリングを実現できるコンピュータシステムを提供する。【解決手段】ポーリング部２０によってアドレス空間の所定のアドレスから所定の周期でデータＲＤが読み出される。そして、読み出されたデータＲＤが所定の条件を満たすとき、ポーリング部２０においてプロセッサ１０に対する割り込み信号ＩＮＴ−ＰＯＬが発生する。これにより、プロセッサ１０はファームウェアによるポーリングを行う代わりにハードウェアによる割り込みを受け付ければよいので、プロセッサ１０の処理負担を大幅に削減できる。【選択図】図１
2009238001.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
上記プロセッサがアクセス可能なアドレス空間の所定のアドレスから所定の周期でデータを読み出し、当該読み出したデータが所定の条件を満たすとき、上記プロセッサに対する割り込み信号を発生するポーリング部と、
を有し、
上記ポーリング部は、上記アドレス空間において割り当てられたアドレスを持ち、上記所定のアドレス、上記所定の周期及び上記所定の条件の少なくとも１つを設定するためのデータを格納するレジスタを有する、
コンピュータシステム。
【請求項２】
上記プロセッサと上記ポーリング部とが上記アドレス空間へのアクセスにおいて共用するバスと、
上記プロセッサによる上記バスの使用要求と上記ポーリング部による上記バスの使用要求とが重なった場合、上記プロセッサによる上記使用要求を優先するバス制御部と、
を更に有する
請求項１に記載のコンピュータシステム。
【請求項３】
少なくとも１つの第１周辺装置と、
上記第１周辺装置より高速なアクセスを要求される少なくとも１つの第２周辺装置と、
を有し、
上記バス制御部は、
上記プロセッサから入力されるバス信号を上記第１周辺装置へのバス信号と上記第２周辺装置へのバス信号とに分離する分離部と、
上記分離部において分離された上記第１周辺装置へのバス信号又は上記ポーリング部から入力されるバス信号の一方を選択して上記第１周辺装置に出力する選択部と、
を含む、
請求項２に記載のコンピュータシステム。
【請求項４】
上記プロセッサが、上記アドレス空間へのアクセスに使用する第１バスと、上記ポーリング部が上記アドレス空間の少なくとも一部へのアクセスに使用する第２バスとを有する、
請求項１に記載のコンピュータシステム。
【請求項５】
上記プロセッサ及び上記ポーリング部を含んだ複数の機能ユニットと、
上記複数の機能ユニット同士を相互に接続するクロスバースイッチと、
を有する、
請求項１に記載のコンピュータシステム。
【請求項６】
所定のアドレス空間に対してアクセス可能なプロセッサと、
上記アドレス空間内の特定のアドレスの記憶領域に対して周期的にアクセスし、上記記憶領域に格納されているデータが所定のデータと一致した場合に、上記プロセッサに対して割り込み信号を供給するポーリング回路と、
上記プロセッサによる上記アドレス空間に対するアクセスと、上記ポーリング回路による上記アドレス空間に対するアクセスとの調停を行なうアクセス制御回路と、
を有し、
上記アクセス制御回路が、上記プロセッサのアクセスと上記ポーリング回路のアクセスとが衝突した際に、上記プロセッサのアクセスを優先する、
コンピュータシステム。
【請求項７】
上記ポーリング回路が、
上記特定のアドレスを保持する第１の記憶回路と、
上記所定のデータを保持する第２の記憶回路と、
上記記憶領域から読み出されたデータと上記第２の記憶回路に保持されたデータとを比較する比較回路と、
を含み、
上記第１及び第２の記憶回路が上記プロセッサのアドレス空間内に割り当てられており、上記プロセッサが上記第１及び第２の記憶回路内の情報を書き替え可能である、
請求項６に記載のコンピュータシステム。
【請求項８】
上記プロセッサのアドレス空間内に割り当てられ、上記プロセッサからアクセスされる周辺装置を更に有し、
上記アクセス制御回路が、上記プロセッサの上記周辺装置に対するイネーブル信号の供給と上記ポーリング回路の上記周辺装置に対するイネーブル信号の供給とを監視することにより、上記プロセッサのアクセスと上記ポーリング回路のアクセスとを調停する、
請求項６又は７に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサを備えたコンピュータシステムに係り、特にポーリングによるプロセッサの負荷の低減を図ったコンピュータシステムに関するものである。
【背景技術】
【０００２】
所定の状態変化に応じて条件分岐処理を行うファームウェアの手法の一つに、ポーリングがある（例えば特許文献１を参照）。一般にポーリングにおいては、メモリ空間にマッピングされたレジスタの内容をプロセッサが周期的に監視し、これがある条件に達した場合に特定の条件分岐処理を実行する。
【特許文献１】特開平０７−２６４２１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ポーリングでは、ファームウェアによってレジスタの内容を周期的に読み出さなければならないため、プロセッサの処理負担が重いという不利益がある。また、条件分岐処理への移行は頻繁に発生しないので、周期的に行われる読み出しアクセスの大半は処理の流れに影響しない無駄なアクセスであり、処理効率の低下を招くという不利益がある。そのため、一般にポーリングは避けるべき手法と考えられている。
【０００４】
しかしながら、現実的な問題として、ペリフェラル装置が期待された割り込み処理を怠っている場合や、しかるべきハードウェアが実装されていない場合など、予期しない不具合が発生した場合にファームウェアでのポーリングが必要になることが少なくない。
【０００５】
本発明はかかる事情に鑑みてなされたものであり、その目的は、プロセッサの処理負担を増大させずにポーリングを実現できるコンピュータシステムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明に係る第１のコンピュータシステムは、プロセッサと、上記プロセッサがアクセス可能なアドレス空間の所定のアドレスから所定の周期でデータを読み出し、当該読み出したデータが所定の条件を満たすとき、上記プロセッサに対する割り込み信号を発生するポーリング部とを有する。上記ポーリング部は、上記アドレス空間において割り当てられたアドレスを持ち、上記所定のアドレス、上記所定の周期及び上記所定の条件の少なくとも１つを設定するためのデータを格納するレジスタを有する。
【０００７】
上記コンピュータシステムによれば、上記ポーリング部によって上記アドレス空間の所定のアドレスから所定の周期でデータが読み出される。そして、当該読み出されたデータが所定の条件を満たすとき、上記ポーリング部において上記プロセッサに対する割り込み信号が発生する。そのため、上記プロセッサはポーリングを行う代わりに割り込みを受け付ければよいので、処理の負担が小さい。また、上記ポーリング部の上記レジスタには上記アドレス空間におけるアドレスが割り当てられていることから、上記レジスタは上記プロセッサによってアクセス可能である。したがって、ポーリング対象のアドレスや、ポーリングの周期、上記割り込み信号を発生する条件など、ポーリングの動作条件は上記プロセッサによって柔軟に設定される。
【０００８】
なお、上記割り込み信号を発生する条件としては、例えば、上記所定のアドレスから読み出されたデータが所定の値を持つ場合や、当該データが所定の値より大きい場合若しくは当該所定の値より小さい場合、当該データが所定の範囲にある場合若しくは当該所定の範囲にない場合など、データの値に関する条件が設定されてよい。また、このデータ値に関する条件が、連続して若しくは累積的に所定の回数だけ成立した場合を、上記割り込み信号の発生条件としてもよい。
【０００９】
好適に、上記コンピュータシステムは、上記プロセッサと上記ポーリング部とが上記アドレス空間へのアクセスにおいて共用するバスと、上記プロセッサによる上記バスの使用要求と上記ポーリング部による上記バスの使用要求とが重なった場合、上記プロセッサによる上記使用要求を優先するバス制御部とを有する。
上記の構成によれば、上記プロセッサによる上記バスの使用要求と上記ポーリング部による上記バスの使用要求とが重なった場合、上記プロセッサによる上記使用要求が優先されるため、ポーリングに起因する上記プロセッサの処理速度の低下が抑制される。
【００１０】
また好適に、上記コンピュータシステムは、少なくとも１つの第１周辺装置と、上記第１周辺装置より高速なアクセスを要求される少なくとも１つの第２周辺装置とを有し、上記バス制御部は、上記プロセッサから入力されるバス信号を上記第１周辺装置へのバス信号と上記第２周辺装置へのバス信号とに分離する分離部と、上記分離部において分離された上記第１周辺装置へのバス信号又は上記ポーリング部から入力されるバス信号の一方を選択して上記第１周辺装置に出力する選択部とを含む。
上記の構成によれば、上記第２周辺装置へのバス信号の経路に上記選択部が設けられていないことから、上記第２周辺装置のアクセス速度の低下が抑えられる。
【００１１】
また、上記コンピュータシステムは、上記プロセッサが上記アドレス空間へのアクセスに使用する第１バスと、上記ポーリング部が上記アドレス空間の少なくとも一部へのアクセスに使用する第２バスとを有してもよい。
上記の構成によれば、上記プロセッサと上記ポーリング部とがそれぞれ独立のバスを使用するため、ポーリングに起因する上記プロセッサの処理速度の低下が抑制される。
【００１２】
あるいは、上記コンピュータシステムは、上記プロセッサ及び上記ポーリング部を含んだ複数の機能ユニットと、上記複数の機能ユニット同士を相互に接続するクロスバースイッチとを有してもよい。
上記の構成によれば、上記クロスバースイッチによって上記複数の機能ユニット同士が相互に接続されるため、ポーリングに起因する上記プロセッサの処理速度の低下が抑制される。
【００１３】
また、本発明に係る第２のコンピュータシステムは、所定のアドレス空間に対してアクセス可能なプロセッサと、上記アドレス空間内の特定のアドレスの記憶領域に対して周期的にアクセスし、上記記憶領域に格納されているデータが所定のデータと一致した場合に、上記プロセッサに対して割り込み信号を供給するポーリング回路と、上記プロセッサによる上記アドレス空間に対するアクセスと、上記ポーリング回路による上記アドレス空間に対するアクセスとの調停を行なうアクセス制御回路とを有し、上記アクセス制御回路が、上記プロセッサのアクセスと上記ポーリング回路のアクセスとが衝突した際に、上記プロセッサのアクセスを優先する。
【００１４】
好適には、上記コンピュータシステムは、上記ポーリング回路が、上記特定のアドレスを保持する第１の記憶回路と、上記所定のデータを保持する第２の記憶回路と、上記記憶領域から読み出されたデータと上記第２の記憶回路に保持されたデータとを比較する比較回路とを含み、上記第１及び第２の記憶回路が上記プロセッサのアドレス空間内に割り当てられており、上記プロセッサが上記第１及び第２の記憶回路内の情報を書き替え可能である。
【００１５】
更に好適には、上記コンピュータシステムは、上記プロセッサのアドレス空間内に割り当てられ、上記プロセッサからアクセスされる周辺装置を更に有し、上記アクセス制御回路が、上記プロセッサの上記周辺装置に対するイネーブル信号の供給と上記ポーリング回路の上記周辺装置に対するイネーブル信号の供給とを監視することにより、上記プロセッサのアクセスと上記ポーリング回路のアクセスとを調停する。
【発明の効果】
【００１６】
本発明によれば、プロセッサの代わりにポーリング部がポーリングを行い、プロセッサはポーリング部からの割り込みを受け付ければよいので、プロセッサの処理負担を増大させずにポーリングを実現できる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明に係るコンピュータシステムを説明する。
図１は、本発明の第１の実施形態に係るコンピュータシステムの構成の一例を示す図である。図１に示すコンピュータシステムは、プロセッサ１０と、ポーリング部２０と、バスコントローラ３０と、割り込み制御部４０と、バスＢ１と、周辺装置５０−１〜５０−ｎと、論理回路３１〜３３と、選択回路３４を有する。
プロセッサ１０は、本発明のプロセッサの一実施形態である。
ポーリング部２０は、本発明のポーリング部の一実施形態である。
バスコントローラ３０及び論理回路３１〜３３、選択回路３４を含む回路は、本発明のバス制御部の一実施形態である。
バスＢ１は、本発明のバスの一実施形態である。
【００１８】
プロセッサ１０は、命令コードを取得してこれに応じた演算や制御を実行する回路であり、バスＢ１を介して周辺装置５０−１〜５０−ｎにアクセスする。図１の例において、周辺装置５０−１は内部メモリであり、プロセッサ１０はこの内部メモリ５０−１に格納されている命令コードを順次に取得してこれを解釈し、命令を実行する。
【００１９】
バスコントローラ３０は、バスＢ１における信号の伝達を制御する回路であり、プロセッサ１０と複数の周辺装置（５０−１〜５０−ｎ）との間におけるデータ転送タイミングの制御や、複数のアクセス要求の調停などを行う。
【００２０】
割り込み制御部４０は、割り込みの発生をプロセッサ１０に通知するための回路であり、複数のハードウェアで発生する割り込み信号（ＩＮＴ１〜ＩＮＴｍ，ＩＮＴ−ＰＯＬ）を適切な順序とタイミングでプロセッサ１０に伝える。
【００２１】
周辺装置５０−１〜５０−ｎは、プロセッサ１０の制御のもとに種々の機能を果たす回路であり、例えば内部メモリや外部メモリのコントローラ、外部汎用バスのコントローラなどが含まれる。
【００２２】
ポーリング部２０は、プロセッサ１０が設定した動作条件に従ってポーリングを行う回路であり、ポーリングによって周辺装置の所定の状態が検知されると、プロセッサ１０に対する割り込み信号ＩＮＴ−ＰＯＬを発生する。すなわち、ポーリング部２０は、プロセッサ１０がアクセス可能なアドレス空間の所定のアドレスから所定の周期でデータＲＤを読み出し、この読み出しデータＲＤが所定の条件を満たすとき、プロセッサ１０に対する割り込み信号ＩＮＴ−ＰＯＬを発生する。
【００２３】
図２は、ポーリング部２０の構成の一例を示す図である。
図２に示すポーリング部２０は、設定レジスタ２０１と、カウンタ２０２と、判定部２０３を有する。
【００２４】
設定レジスタ２０１は、ポーリングの動作条件に関する設定データＲｓｅｔを記憶する。設定データＲｓｅｔには、例えば、ポーリング対象のアドレスのデータＡ−ＰＯＬ、ポーリング周期データＳｃｎｔ、ポーリング対象のアドレスに格納されるデータの期待値Ｓｄａｔ、期待値Ｓｄａｔと読み出しデータＲＤとを照合する際に使用するマスクデータＳｍｓｋなどが含まれる。
設定レジスタ２０１は、プロセッサ１０がアクセス可能なアドレス空間においてアドレスを割り当てられている。プロセッサ１０は、バスＢ１を介して設定レジスタ２０１にアクセスし、上述した設定データＲｓｅｔを設定レジスタ２０１に書き込む。
【００２５】
カウンタ２０２は、設定レジスタ２０１に格納されるポーリング周期データＳｃｎｔに応じた一定の周期で、ポーリングの実施を示す値「１」のイネーブル信号ＥＮを出力する。
【００２６】
判定部２０３は、ポーリング対象のアドレス（Ａ−ＰＯＬ）から読み出されたデータＲＤが所定の条件を満たすか否かを判定し、その判定結果に応じて割り込み信号ＩＮＴ−ＰＯＬを出力する。例えば、判定部２０３は、ポーリング対象のアドレス（Ａ−ＰＯＬ）から読み出されたデータＲＤが期待値Ｓｄａｔと一致しているか否か判定し、両者が一致する場合に割り込み信号ＩＮＴ−ＰＯＬを出力する。
また判定部２０３は、読み出しデータＲＤの全ビットのうち、マスクデータＳｍｓｋにより設定された一部のビットについては、所定の条件を満たすか否かの判定において無視する。例えば判定部２０３は、読み出しデータＲＤの一部のビットをマスクデータＳｍｓｋに応じて強制的に所定の値（「１」又は「０」）にセットすることで、当該一部のビットが条件判定の結果に影響を与えないようにする。
【００２７】
判定部２０３は、例えば図２に示すように、論理回路２０４〜２０６を有する。
論理回路２０４は、マスクデータＳｍｓｋに応じて読み出しデータＲＤの一部のビットをマスクする。すなわち論理回路２０４は、マスクデータＳｍｓｋ及び読み出しデータＲＤの対応するビット同士の論理積又は論理和を演算することにより、読み出しデータＲＤの一部のビットを強制的に「０」若しくは「１」にセットする。
論理回路２０５は、設定レジスタ２０１に格納される期待値Ｓｄａtと論理回路２０４によりマスク処理された読み出しデータＲＤとを比較し、両者が一致する場合に「１」を出力する。
論理回路２０６は、論理回路２０５の出力信号とバリッド信号ＶＡＬとの論理積を演算し、演算結果を割り込み信号ＩＮＴ−ＰＯＬとして出力する。
以上がポーリング部２０の説明である。
【００２８】
図１に戻る。
論理回路３１〜３３及び選択回路３４は、プロセッサ１０とポーリング部２０とが共通のバスＢ１を使用するために両者のバス信号の切替えやアクセスの調停を行う回路である。論理回路３１〜３３及び選択回路３４は、プロセッサ１０によるバスＢ１の使用要求とポーリング部２０によるバスＢ１の使用要求とが重なった場合、プロセッサ１０による使用要求を優先させる。
【００２９】
論理回路３１は、プロセッサ１０からバスコントローラ３０へ出力されるチップセレクト信号ＣＳに、ポーリング部２０のイネーブル信号ＥＮを合成する。すなわち論理回路３１は、チップセレクト信号ＣＳとイネーブル信号ＥＮとの論理和をバスコントローラ３０に出力する。
論理回路３２は、ポーリングが有効か否かを示すバリッド信号ＶＡＬを出力する回路であり、イネーブル信号ＥＮが「１」でチップセレクト信号ＣＳが「０」の場合に「１」を出力し、他の場合に「０」を出力する。すなわち論理回路３２は、チップセレクト信号ＣＳが非アクティブ（「０」）の場合、イネーブル信号ＥＮをそのままバリッド信号ＶＡＬとして出力し、チップセレクト信号ＣＳがアクティブ（「１」）の場合は、イネーブル信号ＥＮの値に係らずバリッド信号ＶＡＬを「０」にする。
論理回路３３は、プロセッサ１０からバスコントローラ３０へ出力されるリードイネーブル信号ＲＥＮに、上述のバリッド信号ＶＡＬを合成する。すなわち論理回路３３は、リードイネーブル信号ＲＥＮとバリッド信号ＶＡＬとの論理和をバスコントローラ３０に出力する。
選択回路３４は、プロセッサ１０のアドレスデータＡ−ＣＰＵ又はポーリング部２０のアドレスデータＡ−ＰＯＬの一方を選択し、バスコントローラ３０に出力する。選択回路３４は、バリッド信号ＶＡＬが「０」の場合アドレスデータＡ−ＣＰＵを選択し、バリッド信号ＶＡＬが「１」の場合アドレスデータＡ−ＰＯＬを選択する。
【００３０】
ここで、上述した構成を有する図１に示すコンピュータシステムの動作を説明する。
【００３１】
例えば起動時の初期化の際などにおいて、プロセッサ１０は、バスＢ１上の各装置の設定レジスタに設定データを書き込む。これにより、ポーリング部２０の設定レジスタ２０１には、ポーリング対象のアドレスデータＡ−ＰＯＬ、ポーリング周期データＳｃｎｔ、期待値Ｓｄａｔ、マスクデータＳｍｓｋがそれぞれ格納される。
【００３２】
ポーリング部２０は、ポーリング周期データＳｃｎｔに応じた一定の周期で、イネーブル信号ＥＮの値を「１」にする。
イネーブル信号ＥＮが「１」のとき、プロセッサ１０のチップセレクト信号ＣＳが「０」であれば（すなわちプロセッサ１０がバスＢ１にアクセス中でなければ）、論理回路３２において出力されるバリッド信号ＶＡＬがアクティブ（「１」）になり、ポーリングが有効になる。この場合、論理回路３３において出力される信号が「１」になり、バスコントローラ３０に対してデータの読み出しが可能である旨が通知される。また、選択回路３４はポーリング部２０のアドレスデータＡ−ＰＯＬを選択し、バスコントローラ３０に出力する。バスコントローラ３０は、バスＢ１を介してアドレスデータＡ−ＰＯＬにより指定されたアドレスにアクセスし、該当するレジスタ若しくは内部メモリ領域からデータを読み出す。ポーリング部２０は、ポーリング対象のアドレスから読み出されたデータＲＤにマスクデータＳｍｓｋのマスク処理を施し、そのマスク処理後のデータと期待値Ｓｄａｔとを比較する。両者が一致している場合、ポーリング部２０は割り込み信号ＩＮＴ−ＰＯＬをアクティブ（「１」）にして、ポーリング部２０による割り込みの発生を割り込み制御部４０に通知する。通知を受けた割り込み制御部４０は、その時点における他の割り込み（ＩＮＴ１〜ＩＮＴｍ）の発生状況などに応じた適切なタイミングで、ポーリング部２０からの割り込みの発生をプロセッサ１０に通知する。プロセッサ１０は、割り込み発生の通知を受けると、割り込みの内容に応じた処理ルーチンに移行する。
【００３３】
他方、イネーブル信号ＥＮが「１」のときにプロセッサ１０のチップセレクト信号ＣＳが「１」であれば（すなわちプロセッサ１０がバスＢ１にアクセス中であれば）、論理回路３２において出力されるバリッド信号ＶＡＬが非アクティブ（「０」）になり、ポーリングが無効になる。この場合、選択回路３４はポーリング部２０のアドレスデータＡ−ＰＯＬを選択するため、プロセッサ１０によるバスＢ１へのアクセスが優先される。また、バリッド信号ＶＡＬが非アクティブの場合、ポーリング部２０からの割り込み信号ＩＮＴ−ＰＯＬの出力が抑止される。
【００３４】
以上説明したように、本実施形態に係るコンピュータシステムによれば、ポーリング部２０によってアドレス空間の所定のアドレスから所定の周期でデータＲＤが読み出される。そして、読み出されたデータＲＤが所定の条件を満たすとき、ポーリング部２０においてプロセッサ１０に対する割り込み信号ＩＮＴ−ＰＯＬが発生する。
これにより、プロセッサ１０はファームウェアによるポーリングを行う代わりにハードウェアによる割り込みを受け付ければよいので、プロセッサ１０の処理負担を大幅に削減できる。
また、ポーリング部２０の設定レジスタ２０１にはプロセッサ１０のアドレス空間におけるアドレスが割り当てられているため、プロセッサ１０は設定レジスタ２０１にアクセス可能である。これにより、ポーリング対象のアドレスのデータＡ−ＰＯＬや、ポーリング周期のデータＳｃｎｔ、ポーリングによって読み出されるデータの期待値Ｓｄａtなどをプロセッサ１０によって自由に設定可能であり、ポーリング動作に係る種々の条件を柔軟に変更できる。
更に、ポーリング部２０はプロセッサ１０から読み出し可能なレジスタにアクセスすることから、プロセッサ１０と同じクロック信号で動作させることが可能であり、特別な非同期転送回路などを設ける必要がなく、比較的簡易な構成でよい。
また、ポーリング部２０の構成が簡易であり、定常的な消費電力が小さいことから、プロセッサ１０においてファームウェアによるポーリングを行う場合に比べて全体の消費電力を削減できる。
しかも、本実施形態に係るコンピュータシステムでは、プロセッサ１０によるバスＢ１の使用要求とポーリング部２０によるバスＢ１の使用要求とが重なった場合、プロセッサ１０による使用要求が優先されるため、ポーリングに起因するプロセッサ１０の処理速度の低下を抑制できる。
【００３５】
次に、本発明の第２の実施形態について説明する。
図１に示すコンピュータシステムでは、プロセッサ１０のアクセス対象のアドレス空間全てがポーリングの対象となっており、内部メモリ５０−１もポーリング対象に含まれている。そのため、内部メモリ５０−１にアクセスするバス信号（アドレスデータ、制御信号等）の経路の途中に論理回路３１〜３３、選択回路３４が設けられている。しかしながら、通常、プロセッサと内部メモリとの間の信号経路はクリティカル・パスとなるため、この経路に信号遅延の一因となる回路を設けると全体のパフォーマンスに影響を与える場合がある。本実施形態に係るコンピュータシステムは、内部メモリ等の比較的高速な周辺装置のバス信号経路における信号遅延を低減する。
【００３６】
図３は、第２の実施形態に係るコンピュータシステムの構成の一例を示す図である。図３に示すコンピュータシステムは、図１に示すコンピュータシステムにおけるバスコントローラ３０をバスコントローラ３０Ａに置換して論理回路３１〜３３、選択回路３４を省略したものであり、他の構成要素は図１に示すコンピュータシステムと同様である。
【００３７】
パスコントローラ３０Ａは、先に説明したバスコントローラ３０と同様に、バスＢ１における信号の伝達を制御する回路であり、バスコントローラ３０との相違点は、プロセッサ１０及びポーリング部２０のバス信号の切替えや両者のアクセス調停を行うための回路を内部に組み込んでいることにある。
図３に示すパスコントローラ３０Ａは、バス信号の切替えに係る回路として、分離部３０１及び３０２と選択部３０３とを有する。分離部３０１は、プロセッサ１０から入力されるバス信号を内部メモリ５０−１へのバス信号と他の周辺装置（５０−２〜５０−ｎ）へのバス信号とに分離する。選択部３０３は、分離部３０１において分離された他の周辺装置（５０−２〜５０−ｎ）へのバス信号又はポーリング部２０から入力されるバス信号の一方を選択する。分離部３０２は、選択部３０３において選択されたバス信号を更に分離し、分離したバス信号をそれぞれ対応する周辺装置に出力する。
【００３８】
図３に示すコンピュータシステムによれば、比較的高速なアクセスを要求される内部メモリ５０−１へのバス信号が分離部３０１において分離され、その後段において選択部３０３によるバス信号の選択が行われる。そのため、図１における論理回路３１〜３３、選択回路３４のような遅延要素を内部メモリ５０−１へのバス信号経路から排除できる。これにより、内部メモリ５０−１へのアクセスのタイミングを犠牲にすることなくポーリングを行うことができる。
【００３９】
次に、本発明の第３の実施形態について説明する。
図４は、第３の実施形態に係るコンピュータシステムの構成の一例を示す図である。図４に示すコンピュータシステムにおいては、図１に示すコンピュータシステムにおける論理回路３１〜３３、選択回路３４が省略され、その代わりに、ポーリング専用のバスコントローラ３０−２とポーリング専用のバスＢ２が設けられている。また、図４に示すコンピュータシステムにおいては、各周辺装置（５０−１〜５０−ｎ）にポーリング専用のレジスタ読み出し回路が設けられている。図４に示すコンピュータシステムの他の構成要素は、図１に示すコンピュータシステムと同様である。
【００４０】
バスコントローラ３０−２は、バスＢ２における信号の伝達を制御する回路であり、ポーリング部２０と複数の周辺装置（５０−１〜５０−ｎ）との間におけるデータ読み出しタイミングの制御などを行う。
各周辺装置（５０−１〜５０−ｎ）は、バスＢ１を介してレジスタのデータを読み出すための回路と、バスＢ２を介してレジスタのデータを読み出すための回路とをそれぞれ備える。
【００４１】
このように、プロセッサ１０のバスＢ１とは独立したポーリング専用のバスＢ２を設けることによって、図１における論理回路３１〜３３，選択回路３４のようなバス信号の切替え回路が不要になる。また、プロセッサ１０とポーリング部２０とが並行して周辺装置（５０−１〜５０−ｎ）にアクセスできるため、プロセッサ１０のバス帯域幅がポーリングのために犠牲にされることがなくなり、処理速度の向上に貢献できる。
【００４２】
次に、本発明の第４の実施形態について説明する。第４の実施形態に係るコンピュータシステムは、クロスバースイッチを用いて各機能ユニットを相互に接続する。
【００４３】
図５は、第４の実施形態に係るコンピュータシステムの構成の一例を示す図であり、図１と図５の同一符号は同一の構成要素を示す。図５に示すコンピュータシステムは、プロセッサ１０と、サブプロセッサ１０−２と、バスマスタ１０−３と、ポーリング部２０と、割り込み制御部４０と、周辺装置５０−１〜５０−ｎと、クロスバースイッチ６０を有する。
【００４４】
サブプロセッサ１０−２は、命令コードに応じた演算や制御を実行する回路であり、プロセッサ１０とは独立に処理を行う。
バスマスタ１０−３は、周辺装置（５０−１〜５０−ｎ）の間でプロセッサ（１０，１０−２）を介さずにデータを転送するための制御を行う。
【００４５】
クロスバースイッチ６０は、複数の機能ユニット（プロセッサ１０、サブプロセッサ１０−２、バスマスタ１０−３、ポーリング部２０、周辺装置５０−１〜５０−ｎ）をそれぞれ相互に接続する。クロスバースイッチ６０は、例えば、格子状に交錯する複数の信号線と、その各交点に設けられた複数のスイッチを有しており、交点のスイッチを制御することによって、各信号線に接続された機能ユニット同士を相互に接続する。クロスバースイッチ６０は、複数の機能ユニットにおいて同時に複数組の一対一通信を行わせる可能であり、また、一の機能ユニットに対して複数の機能ユニットが同時にアクセスすることがないようにスイッチの制御を行う。
【００４６】
このようなクロスバースイッチ６０を用いれば、例えばプロセッサ１０による内部メモリ５０−１へのアクセスとポーリング部２０による周辺装置５０−２へのアクセスとを同時に行うなど、プロセッサ１０のバス帯域幅を犠牲にすることなくポーリングを行うことができるため、プロセッサの処理速度の低減を抑制できる。また、図１における論理回路３１〜３３、選択回路３４のように特別な調停回路を設ける必要がなく、ポーリング部２０を機能ユニットの１つとして追加すればよいため、本実施形態はクロスバースイッチを用いた既存のコンピュータシステムへ容易に適用できる。
【００４７】
次に、本発明の第５の実施形態について説明する。
第５の実施形態に係るコンピュータシステムは、複数のアドレスをポーリング可能なポーリング部を備える。
【００４８】
図６は、第５の実施形態に係るコンピュータシステムにおけるポーリング部の一例を示す図である。本実施形態に係るコンピュータシステムは、例えば第１〜第４の実施形態に係るコンピュータシステム（図１，図３，図４，図５）におけるポーリング部２０を図６に示すポーリング部２０Ａに置換したものであり、他の構成要素はこれらのコンピュータシステムと同じである。
【００４９】
図６に示すポーリング部２０Ａは、設定レジスタ２０１Ａと、カウンタ２０２と、判定部２０３と、アドレス選択部２０４とを有する。カウンタ２０２及び判定部２０３は、図２における同一符号の構成要素と同じである。
【００５０】
設定レジスタ２０１Ａは、図２における設定レジスタ２０１と同様に、ポーリングの動作条件に関する設定データＲｓｅｔを記憶する回路であり、設定レジスタ２０１との違いは、複数のポーリング対象のアドレスデータＡ−ＰＯＬ−１〜Ａ−ＰＬＯ−ｑ（ｑは２以上の整数を示す）を記憶できる点にある。
【００５１】
アドレス選択部２０４は、設定レジスタ２０１Ａに設定された複数のアドレスから、順番に一のポーリング対象のアドレスを選択する。例えば、ポーリング周期データＳｃｎｔに応じた一定の周期で、複数のアドレスデータ（Ａ−ＰＯＬ−１〜Ａ−ＰＯＬ−ｑ）を順番に選択し、選択したアドレスデータをポーリング対象のアドレスデータＡ−ＰＯＬとして出力する。
アドレス選択部２０４は、例えば、カウンタ２０２から出力されるイネーブル信号ＥＮのパルスを更に計数するカウンタと、このカウンタの計数値に応じて複数のアドレスデータ（Ａ−ＰＯＬ−１〜Ａ−ＰＯＬ−ｑ）から一のアドレスデータを選択するセレクタを有する。カウンタは、例えば「０」から「ｑ−１」までのｑ個の計数値を巡回的に出力し、セレクタは、それぞれの計数値に対応するアドレスデータを選択して出力する。
【００５２】
本実施形態によれば、ポーリング部２０Ａにおいて複数のアドレスを設定し、その各アドレスを一定の周期で順次にポーリングすることができるため、同様なポーリング動作を複数のポーリング部により実現する場合に比べて構成を簡易化できる。また、アドレス選択部２０４において複数のアドレスデータ（Ａ−ＰＯＬ−１〜Ａ−ＰＯＬ−ｑ）を順に選択できるため、複数のポーリング対象を所望の順番で巡回的にポーリングすることができる。
【００５３】
次に、第５の実施形態の変形例について、図７を参照して説明する。
図７は、第５の実施形態に係るコンピュータシステムにおけるポーリング部の一変形例を示す図である。図７に示すポーリング部２０Ｂは、図６に示すポーリング部２０Ａに状態レジスタ２０１Ｂを設けたものであり、他の構成については図６に示すポーリング部２０Ａと同じである。
【００５４】
状態レジスタ２０１Ｂは、プロセッサ１０に対する割り込み信号ＩＮＴ−ＰＯＬが発生した場合に、その割り込み信号ＩＮＴ−ＰＯＬの発生要因となったポーリング対象アドレスを示すデータを格納する。例えば状態レジスタ２０１Ｂは、割り込み信号ＩＮＴ−ＰＯＬがアクティブ（「１」）の場合に、アドレス選択部２０４のセレクタにおいてアドレスデータの選択を制御するための信号ＳＥＬ（例えばアドレス選択部２０４に含まれる上述したカウンタの計数値）を格納する。
状態レジスタ２０１Ｂは、プロセッサ１０がアクセス可能なアドレス空間において割り当てられたアドレスを有する。そのため、プロセッサ１０は、状態レジスタ２０１Ｂにアクセスしてその内容を読み出すことができる。
【００５５】
このように、プロセッサ１０からアクセス可能な状態レジスタ２０１Ｂを設けて、割り込みの発生要因となったポーリング対象アドレスに関するデータをこの状態レジスタ２０１Ｂに格納することにより、プロセッサ１０は、割り込みの発生要因となったポーリング対象を把握できるようになる。したがって、プロセッサ１０は、ポーリング対象ごとに異なる処理を実行することができる。
【００５６】
以上、本発明の幾つかの実施形態について説明したが、本発明は上述した実施形態のみに限定されるものではなく、種々のバリエーションを含んでいる。
【００５７】
上述した実施形態において、判定部２０３は、アドレスＡ−ＰＯＬからの読み出しデータＲＤが所定の値に一致するか否かを判定しているが、本発明はこの例に限定されない。例えば判定部２０３は、読み出しデータＲＤが所定の値より大きいか若しくは小さいか、所定の範囲に含まれるか否かなど、読み出しデータの値に関する条件を判定してよい。また、判定部２０３は、この読み出しデータＲＤの値に関する条件が、連続して若しくは累積的に所定の回数だけ成立した場合を、割り込み信号ＩＮＴ−ＰＯＬの発生条件としてもよい。
【００５８】
上述した実施形態では、プロセッサ１０とポーリング部２０との間でバスアクセスが重なった場合にポーリングを無効にしているが、本発明はこれに限定されない。例えば、両者のバスアクセスが重なった場合、ポーリング動作を待ち状態にしてプロセッサ１０のアクセスを優先させ、プロセッサ１０のアクセスが終了した後で待ち状態のポーリングを再開させるようにしてもよい。
【図面の簡単な説明】
【００５９】
【図１】第１の実施形態に係るコンピュータシステムの構成の一例を示す図である。
【図２】ポーリング部の構成の一例を示す図である。
【図３】第２の実施形態に係るコンピュータシステムの構成の一例を示す図である。
【図４】第３の実施形態に係るコンピュータシステムの構成の一例を示す図である。
【図５】第４の実施形態に係るコンピュータシステムの構成の一例を示す図である。
【図６】第５の実施形態に係るコンピュータシステムにおけるポーリング部の一例を示す図である。
【図７】第５の実施形態に係るコンピュータシステムにおけるポーリング部の一変形例を示す図である。
【符号の説明】
【００６０】
１０…プロセッサ、２０，２０Ａ，２０Ｂ…ポーリング部、２０１，２０１Ａ…設定レジスタ、２０１Ｂ…状態レジスタ、２０２…カウンタ、２０３…判定部、２０４…アドレス選択部、３０，３０−２…バスコントローラ、３０１，３０２…分離部、３０３…選択部、４０…割り込み制御部、５０−１〜５０−ｎ…周辺装置、５０−１…内部メモリ、６０…クロスバースイッチ、Ｂ１，Ｂ２…バス
【図１】
2009238001.tif 000003
【図２】
2009238001.tif 000004
【図３】
2009238001.tif 000005
【図４】
2009238001.tif 000006
【図５】
2009238001.tif 000007
【図６】
2009238001.tif 000008
【図７】
2009238001.tif 000009