(57)【要約】【課題】  プロセッサにかかる負荷を抑制しつつ、複数のモジュールのポーリング処理を行えるようにする。【解決手段】  ポーリング処理部１１ｃ、１２ｃは、プロセッサコア１からのアクセス要求があった時に各モジュールＭ１、Ｍ２がそれぞれ処理を実行中の場合、プロセッサコア１の動作を供給させるためのポーリング信号ＰＳ１、ＰＳ２をそれぞれ出力し、ポーリングセレクタ５は、シングルウェイトステータスレジスタ１１ｂまたはマルチウェイトステータスレジスタ１１ａの指定に基づいて、プロセッサコア１に出力されるクロック信号ＣＬを停止させるためのＷＡＩＴ信号ＷＡをクロック制御回路６に出力し、クロック制御回路６は、ポーリングセレクタ５から出力されたＷＡＩＴ信号に基づいて、プロセッサコア１に供給するクロック信号ＣＬを停止する。【選択図】      図１
2006293950.tif 000002
【特許請求の範囲】
【請求項１】
命令を実行するプロセッサと、
前記プロセッサとバスを介して接続され、前記プロセッサと独立して処理を行うことが可能な複数のモジュールと、
前記モジュール側にそれぞれ設けられ、前記プロセッサからのアクセス要求があった時の前記モジュールの処理の実行状態に基づいて、前記プロセッサの動作を停止させるポーリング処理部とを備えることを特徴とするプロセッサ制御装置。
【請求項２】
前記プロセッサにクロック信号を供給するクロック制御回路をさらに備え、
前記ポーリング処理部は、前記プロセッサからのアクセス要求があった時に前記モジュールが処理を実行中の場合、前記プロセッサに供給されるクロック信号を停止させるためのポーリング信号を前記クロック制御回路に出力することを特徴とする請求項１記載のプロセッサ制御装置。
【請求項３】
前記モジュールは、
単独のモジュールの処理の実行状態に基づいて前記プロセッサの動作を停止させるための指定を行うシングルウェイトステータスレジスタと、
複数のモジュールの処理の実行状態に基づいて前記プロセッサの動作を停止させるための指定を行うマルチウェイトステータスレジスタとを備えることを特徴とする請求項２記載のプロセッサ制御装置。
【請求項４】
前記シングルウェイトステータスレジスタまたは前記マルチウェイトステータスレジスタの指定に基づいて、前記ポーリング処理部から出力されたポーリング信号を有効化または無効化するポーリングセレクタをさらに備えることを特徴とする請求項３記載のプロセッサ制御装置。
【請求項５】
前記モジュールは、自分のモジュールが処理を実行中に前記シングルウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記シングルウェイトステータスレジスタの読み出しが行われたことを示すシングルウェイト選択信号を前記ポーリングセレクタに出力し、
前記モジュールは、自分のモジュールが処理を実行中に前記マルチウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記マルチウェイトステータスレジスタの読み出しが行われたことを示すマルチウェイト選択信号を前記ポーリングセレクタに出力し、
前記ポーリングセレクタは、前記モジュールから前記シングルウェイト選択信号が送られた場合、単独のモジュールから出力されたポーリング信号に基づいて、前記クロック信号を停止させるためのＷＡＩＴ信号を前記クロック制御回路に出力し、
前記ポーリングセレクタは、前記モジュールから前記マルチウェイト選択信号が送られた場合、複数のモジュールから出力されたポーリング信号に基づいて、前記クロック信号を停止させるためのＷＡＩＴ信号を前記クロック制御回路に出力することを特徴とする請求項４記載のプロセッサ制御装置。
【請求項６】
前記モジュールは、
単独のモジュールの処理の実行状態に基づいて前記プロセッサの動作を停止させるための指定を行うウェイトステータスレジスタと、
前記モジュールの処理の実行状態に依存することなく、前記プロセッサの動作を継続させるための指定を行うセットウェイトステータスレジスタとを備えることを特徴とする請求項２記載のプロセッサ制御装置。
【請求項７】
前記ウェイトステータスレジスタまたは前記セットウェイトステータスレジスタの指定に基づいて、前記ポーリング処理部から出力されたポーリング信号を有効化または無効化するポーリングセレクタをさらに備えることを特徴とする請求項６記載のプロセッサ制御装置。
【請求項８】
前記モジュールは、自分のモジュールが処理を実行中に前記ウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記ウェイトステータスレジスタの読み出しが行われたことを示すウェイト選択信号を前記ポーリングセレクタに出力し、
前記モジュールは、自分のモジュールが処理を実行中に前記セットウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記セットウェイトステータスレジスタの読み出しが行われたことを示すセットウェイト選択信号を前記ポーリングセレクタに出力し、
前記ポーリングセレクタは、前記モジュールから前記ウェイト選択信号が送られた場合、単独のモジュールから出力されたポーリング信号に基づいて、前記クロック信号を停止させるためのＷＡＩＴ信号を前記クロック制御回路に出力し、
前記ポーリングセレクタは、前記モジュールから前記セットウェイト選択信号が送られた場合、前記モジュールの処理の実行状態に依存することなく、前記クロック信号を停止させるためのＷＡＩＴ信号が前記クロック制御回路に出力されないようにすることを特徴とする請求項７記載のプロセッサ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロセッサ制御装置に関し、特に、ポーリング処理をハードウェアに分担させる方法に適用して好適なものである。
【背景技術】
【０００２】
従来のＣＰＵの省電力技術として、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラによるＤＭＡ処理モードの実行時、つまりＩ／ＯユニットとメモリとによるＤＭＡ処理中に、ＣＰＵへのクロック信号の供給を停止し、消費電力を低減する技術が知られている（特許文献１参照）。
【特許文献１】特開平８−８３１３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の省電力技術では、複数のＤＭＡが存在する場合、ＤＭＡ転送をかけた時には、ＣＰＵはソフトウェアにてポーリング処理を実行し、ＤＭＡ転送の終了を待つ必要があった。このため、複数のＤＭＡが存在し、同時に複数のＤＭＡ転送をかけた時には、ＤＭＡ転送が終了するまで、ステータスレジスタの値を読みに行ったり、ステータスレジスタの値に基づいて分岐処理の判断を行ったり、ステータスレジスタの値に応じて分岐処理を実行したりする動作を何回も繰り返す必要があり、ＣＰＵの負荷が増大するという問題があった。
【０００４】
そこで、本発明の目的は、プロセッサにかかる負荷を抑制しつつ、複数のモジュールのポーリング処理を行うことが可能なプロセッサ制御装置を提供することである。
【課題を解決するための手段】
【０００５】
上述した課題を解決するために、本発明の一態様に係るプロセッサ制御装置によれば、命令を実行するプロセッサと、前記プロセッサとバスを介して接続され、前記プロセッサと独立して処理を行うことが可能な複数のモジュールと、前記モジュール側にそれぞれ設けられ、前記プロセッサからのアクセス要求があった時の前記モジュールの処理の実行状態に基づいて、前記プロセッサの動作を停止させるポーリング処理部とを備えることを特徴とする。
【０００６】
これにより、プロセッサがモジュールにアクセスする際にモジュール動作が終了しているかをプロセッサ側で判断することなく、モジュール動作が終了するまでプロセッサの動作を停止させることができる。このため、複数のモジュールがバスを介してプロセッサと接続されている場合においても、ポーリング処理に伴う分岐処理の判断や分岐処理の実行をプロセッサ側で行う必要がなくなり、プロセッサにかかる負荷を抑制しつつ、プロセッサの省電力化を図ることができる。
【０００７】
また、本発明の一態様に係るプロセッサ制御装置によれば、前記プロセッサにクロック信号を供給するクロック制御回路をさらに備え、前記ポーリング処理部は、前記プロセッサからのアクセス要求があった時に前記モジュールが処理を実行中の場合、前記プロセッサに供給されるクロック信号を停止させるためのポーリング信号を前記クロック制御回路に出力することを特徴とする。
【０００８】
これにより、プロセッサがモジュールにアクセスする際にモジュールが動作を実行していう場合、モジュール側からプロセッサの動作を停止させることが可能となり、プロセッサにかかる負荷を抑制しつつ、プロセッサの省電力化を図ることができる。
また、本発明の一態様に係るプロセッサ制御装置によれば、前記モジュールは、単独のモジュールの処理の実行状態に基づいて前記プロセッサの動作を停止させるための指定を行うシングルウェイトステータスレジスタと、複数のモジュールの処理の実行状態に基づいて前記プロセッサの動作を停止させるための指定を行うマルチウェイトステータスレジスタとを備えることを特徴とする。
【０００９】
これにより、複数のモジュールの処理の実行結果を待たなければプロセッサが次の処理に進めないか、あるいは複数のモジュールの処理の実行結果を待たなくてもプロセッサが次の処理に進めるかに応じてプロセッサの動作を停止させることができるように、モジュール側に指定することができる。このため、複数のモジュールがバスを介してプロセッサと接続されている場合においても、単独のモジュールの実行状態に基づいてプロセッサの動作が一律に停止されることを防止することが可能となり、プロセッサの稼動効率の劣化を抑制しつつ、プロセッサの省電力化を図ることができる。
【００１０】
また、本発明の一態様に係るプロセッサ制御装置によれば、前記シングルウェイトステータスレジスタまたは前記マルチウェイトステータスレジスタの指定に基づいて、前記ポーリング処理部からそれぞれ出力されたポーリング信号を有効化または無効化するポーリングセレクタをさらに備えることを特徴とする。
これにより、複数のモジュールがバスを介してプロセッサと接続されている場合においても、モジュールごとに独立してプロセッサの動作を停止させたり、複数のモジュールが協働してプロセッサの動作を停止させたりすることができる。このため、個々のモジュールが単独で動作している場合においても、プロセッサの動作が一律に停止されることを防止することが可能となり、プロセッサの稼動効率の劣化を抑制しつつ、プロセッサの省電力化を図ることができる。
【００１１】
また、本発明の一態様に係るプロセッサ制御装置によれば、前記モジュールは、自分のモジュールが処理を実行中に前記シングルウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記シングルウェイトステータスレジスタの読み出しが行われたことを示すシングルウェイト選択信号を前記ポーリングセレクタに出力し、前記モジュールは、自分のモジュールが処理を実行中に前記マルチウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記マルチウェイトステータスレジスタの読み出しが行われたことを示すマルチウェイト選択信号を前記ポーリングセレクタに出力し、前記ポーリングセレクタは、前記モジュールから前記シングルウェイト選択信号が送られた場合、単独のモジュールから出力されたポーリング信号に基づいて、前記クロック信号を停止させるためのＷＡＩＴ信号を前記クロック制御回路に出力し、前記ポーリングセレクタは、前記モジュールから前記マルチウェイト選択信号が送られた場合、複数のモジュールから出力されたポーリング信号に基づいて、前記クロック信号を停止させるためのＷＡＩＴ信号を前記クロック制御回路に出力することを特徴とする。
【００１２】
これにより、プロセッサがシングルウェイトステータスレジスタの読み出しを行ったかあるいはプロセッサがマルチウェイトステータスレジスタの読み出しを行ったかに応じて、クロック信号を停止させるためのＷＡＩＴ信号をクロック制御回路に出力することが可能となる。このため、単独のモジュールが処理を実行している場合においても、プロセッサの動作を停止させたり、プロセッサをそのまま動作させたりすることをモジュール側に行わせることが可能となる。この結果、複数のモジュールがバスを介してプロセッサと接続されている場合においても、単独のモジュールの実行状態に基づいてプロセッサの動作が一律に停止されることを防止することが可能となり、プロセッサの稼動効率の劣化を抑制しつつ、プロセッサの省電力化を図ることができる。
【００１３】
また、本発明の一態様に係るプロセッサ制御装置によれば、前記モジュールは、単独のモジュールの処理の実行状態に基づいて前記プロセッサの動作を停止させるための指定を行うウェイトステータスレジスタと、前記モジュールの処理の実行状態に依存することなく、前記プロセッサの動作を継続させるための指定を行うセットウェイトステータスレジスタとを備えることを特徴とする。
【００１４】
これにより、自分のモジュールの処理の実行結果を待たなければプロセッサが次の処理に進めないか、あるいは自分のモジュールの処理の実行結果を待たなくてもプロセッサが次の処理に進めるかに応じてプロセッサの動作を停止させることができるように、モジュール側に指定することができる。このため、複数のモジュールがバスを介してプロセッサと接続されている場合においても、単独のモジュールの実行状態に基づいてプロセッサの動作が一律に停止されることを防止することが可能となり、プロセッサの稼動効率の劣化を抑制しつつ、プロセッサの省電力化を図ることができる。
【００１５】
また、本発明の一態様に係るプロセッサ制御装置によれば、前記ウェイトステータスレジスタまたは前記セットウェイトステータスレジスタの指定に基づいて、前記ポーリング処理部から出力されたポーリング信号を有効化または無効化するポーリングセレクタをさらに備えることを特徴とする。
これにより、複数のモジュールがバスを介してプロセッサと接続されている場合においても、特定のモジュールの実行状態に応じてプロセッサの動作を停止させたり、プロセッサの動作を継続させたりすることができる。このため、個々のモジュールが単独で動作している場合においても、プロセッサの動作が一律に停止されることを防止することが可能となり、プロセッサの稼動効率の劣化を抑制しつつ、プロセッサの省電力化を図ることができる。
【００１６】
また、本発明の一態様に係るプロセッサ制御装置によれば、前記モジュールは、自分のモジュールが処理を実行中に前記ウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記ウェイトステータスレジスタの読み出しが行われたことを示すウェイト選択信号を前記ポーリングセレクタに出力し、前記モジュールは、自分のモジュールが処理を実行中に前記セットウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記セットウェイトステータスレジスタの読み出しが行われたことを示すセットウェイト選択信号を前記ポーリングセレクタに出力し、前記ポーリングセレクタは、前記モジュールから前記ウェイト選択信号が送られた場合、単独のモジュールから出力されたポーリング信号に基づいて、前記クロック信号を停止させるためのＷＡＩＴ信号を前記クロック制御回路に出力し、前記ポーリングセレクタは、前記モジュールから前記セットウェイト選択信号が送られた場合、前記モジュールの処理の実行状態に依存することなく、前記クロック信号を停止させるためのＷＡＩＴ信号が前記クロック制御回路に出力されないようにすることを特徴とする。
【００１７】
これにより、プロセッサがウェイトステータスレジスタの読み出しを行ったかあるいはプロセッサがセットウェイトステータスレジスタの読み出しを行ったかに応じて、クロック信号を停止させるためのＷＡＩＴ信号をクロック制御回路に出力させたり停止させたりすることが可能となる。このため、単独のモジュールが処理を実行している場合においても、プロセッサの動作を停止させたり、プロセッサをそのまま動作させたりすることをモジュール側に行わせることが可能となる。この結果、複数のモジュールがバスを介してプロセッサと接続されている場合においても、単独のモジュールの実行状態に基づいてプロセッサの動作が一律に停止されることを防止することが可能となり、プロセッサの稼動効率の劣化を抑制しつつ、プロセッサの省電力化を図ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施形態に係るプロセッサ制御装置について図面を参照しながら説明する。
図１は、本発明の第１実施形態に係るプロセッサ制御装置の概略構成を示すブロック図である。
図１において、プロセッサコア１はインストラクションキャッシュ３に接続されている。そして、インストラクションキャッシュ３は、メモリ制御回路４を介してメモリにアクセスすることにより、プロセッサコア１に実行させる命令を取得し、プロセッサコア１に出力することができる。そして、プロセッサコア１は、インストラクションキャッシュ３から出力された命令を実行することで、その命令が記述されたプログラムを実行することができる。
【００１９】
また、プロセッサコア１は、バス制御回路２を介して複数のモジュールＭ１、Ｍ２に接続されるとともに、モジュールＭ１、Ｍ２はメモリ制御回路４に接続されている。なお、モジュールＭ１、Ｍ２としては、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラやＩ／Ｏコントローラなどのプロセッサコア１と独立して処理を行うことが可能な周辺回路を挙げることができる。
【００２０】
ここで、各モジュールＭ１、Ｍ２には、マルチウェイトステータスレジスタ１１ａ、１２ａ、シングルウェイトステータスレジスタ１１ｂ、１２ｂおよびポーリング処理部１１ｃ、１２ｃがそれぞれ設けられている。そして、マルチウェイトステータスレジスタ１１ａ、１２ａは、複数のモジュールＭ１、Ｍ２の処理の実行状態に基づいてプロセッサコア１の動作を停止させるための指定を各モジュールＭ１、Ｍ２上でそれぞれ行うことができる。また、シングルウェイトステータスレジスタ１１ｂ、１２ｂは、単独のモジュールＭ１、Ｍ２の処理の実行状態に基づいてプロセッサコア１の動作を停止させるための指定を各モジュールＭ１、Ｍ２上でそれぞれ行うことができる。また、ポーリング処理部１１ｃ、１２ｃは、プロセッサコア１からのアクセス要求があった時に各モジュールＭ１、Ｍ２がそれぞれ処理を実行中の場合、プロセッサコア１の動作を供給させるためのポーリング信号ＰＳ１、ＰＳ２をそれぞれ出力することができる。
【００２１】
また、プロセッサ制御装置には、ポーリングセレクタ５およびクロック制御回路６が設けられている。ここで、ポーリングセレクタ５は、マルチウェイトステータスレジスタ１１ａ、１２ａまたはシングルウェイトステータスレジスタ１１ｂ、１２ｂの指定に基づいて、ポーリング処理部１１ｃ、１２ｃからそれぞれ出力されたポーリング信号ＰＳ１、ＰＳ２を有効化または無効化し、プロセッサコア１に出力されるクロック信号ＣＬを停止させるためのＷＡＩＴ信号ＷＡをクロック制御回路６に出力することができる。また、クロック制御回路６は、プロセッサコア１にクロック信号ＣＫを供給するとともに、ポーリングセレクタ５から出力されたＷＡＩＴ信号ＷＡに基づいて、プロセッサコア１に供給するクロック信号ＣＬを停止することができる。
【００２２】
図２は、図１のポーリングセレクタ５の概略構成を示すブロック図である。
図２において、ポーリングセレクタ５には、ＯＲ回路２１、ＡＮＤ回路２２、デコーダ２３およびセレクタ２４が設けられている。ここで、ＯＲ回路２１には、各モジュールＭ１、Ｍ２から出力されたポーリング信号ＰＳ１、ＰＳ２がそれぞれ入力される。そして、ＯＲ回路２１は、これらのポーリング信号ＰＳ１、ＰＳ２の論理和演算を行い、その演算結果をセレクタ２４に入力する。また、ＡＮＤ回路２２には、各モジュールＭ１、Ｍ２から出力されたポーリング信号ＰＳ１、ＰＳ２がそれぞれ入力される。そして、ＡＮＤ回路２２は、これらのポーリング信号ＰＳ１、ＰＳ２の論理積演算を行い、その演算結果をセレクタ２４に入力する。
【００２３】
また、各モジュールＭ１、Ｍ２からは、マルチウェイトステータスレジスタ１１ａ、１２ａがプロセッサコア１にてそれぞれ読み出されたことを示すマルチウェイト選択信号ＳＳＡ１、ＳＳＡ２がデコーダ２３にそれぞれ出力される。また、各モジュールＭ１、Ｍ２からは、シングルウェイトステータスレジスタ１１ｂ、１２ｂがプロセッサコア１にてそれぞれ読み出されたことを示すシングルウェイト選択信号ＳＳＯ１、ＳＳＯ２がデコーダ２３にそれぞれ出力される。
【００２４】
そして、デコーダ２３は、いずれか少なくとも一方のモジュールＭ１、Ｍ２からマルチウェイト選択信号ＳＳＡ１、ＳＳＡ２が送られた場合、ＡＮＤ回路２２の出力を選択させる選択信号ＡＯＳＬＴをセレクタ２４に供給する。また、デコーダ２３は、いずれか少なくとも一方のモジュールＭ１、Ｍ２からシングルウェイト選択信号ＳＳＯ１、ＳＳＯ２が送られた場合、ＯＲ回路２１の出力を選択させる選択信号ＡＯＳＬＴをセレクタ２４に供給する。
【００２５】
また、セレクタ２４は、デコーダ２３から出力された選択信号ＡＯＳＬＴに基づいて、ＯＲ回路２１またはＡＮＤ回路２２のいずれか一方の出力を選択し、その選択された出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。
図３は、図２のデコーダ２３の動作を示す図である。
図３において、マルチウェイトステータスレジスタ１１ａ、１２ａがプロセッサコア１にてそれぞれ読み出されると、ポーリング処理部１１ｃ、１２ｃは、マルチウェイト選択信号ＳＳＡ１、ＳＳＡ２をそれぞれ“１”に設定する。そして、デコーダ２３は、マルチウェイト選択信号ＳＳＡ１、ＳＳＡ２の少なくともいずれか一方が“１”に設定されると、選択信号ＡＯＳＬＴを“０”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“０”に設定されると、ＡＮＤ回路２２の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。
【００２６】
一方、シングルウェイトステータスレジスタ１１ｂ、１２ｂがプロセッサコア１にてそれぞれ読み出されると、ポーリング処理部１１ｃ、１２ｃは、シングルウェイト選択信号ＳＳＯ１、ＳＳＯ２をそれぞれ“１”に設定する。そして、デコーダ２３は、シングルウェイト選択信号ＳＳＯ１、ＳＳＯ２の少なくともいずれか一方が“１”に設定されると、選択信号ＡＯＳＬＴを“１”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“１”に設定されると、ＯＲ回路２１の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。
【００２７】
図４は、図１のマルチウェイトステータスレジスタ１１ａ、１２ａおよびシングルウェイトステータスレジスタ１１ｂ、１２ｂの選択方法を示す図である。
図４において、例えば、マルチウェイトステータスレジスタ１１ａ、１２ａおよびシングルウェイトステータスレジスタ１１ｂ、１２ｂは、バスのアドレス線に対応させることができる。例えば、プロセッサコア１は、バスのアドレス線の“０ｘ１００００１４”というアドレスを指定することで、マルチウェイトステータスレジスタ１１ａ、１２ａを選択することができる。また、プロセッサコア１は、バスのアドレス線の“０ｘ１００００１８”というアドレスを指定することで、シングルウェイトステータスレジスタ１１ｂ、１２ｂを選択することができる。
【００２８】
そして、図１において、プロセッサコア１からのアクセス要求が各モジュールＭ１、Ｍ２に対してそれぞれ行われると、ポーリング処理部１１ｃ、１２ｃは、モジュールＭ１、Ｍ２が処理を実行中であるかをそれぞれ判断する。そして、各モジュールＭ１、Ｍ２が処理を実行中でない場合、各モジュールＭ１、Ｍ２が処理を実行中でないことを示す非実行中フラグをプロセッサコア１にそれぞれ読み出させる。そして、プロセッサコア１は、非実行中フラグが各モジュールＭ１、Ｍ２から読み出されると、そのモジュールＭ１、Ｍ２に対してアクセスを行うことができる。
【００２９】
一方、各ポーリング処理部１１ｃ、１２ｃは、プロセッサコア１からのアクセス要求が各モジュールＭ１、Ｍ２に対してそれぞれ行われた時に、モジュールＭ１、Ｍ２がそれぞれ処理を実行中であると判断すると、ポーリング信号ＰＳ１、ＰＳ２をポーリングセレクタ５にそれぞれ出力することができる。ここで、プロセッサコア１は、各モジュールＭ１、Ｍ２にアクセス要求を行う時に、マルチウェイトステータスレジスタ１１ａ、１２ａまたはシングルウェイトステータスレジスタ１１ｂ、１２ｂのいずれか一方を選択して読み出しを行うことができる。なお、プロセッサコア１は、今回アクセス要求を行なったモジュールＭ１、Ｍ２だけでなく、それ以外のモジュールＭ１、Ｍ２の処理の実行結果を待たなければ、次の処理に進めない場合、マルチウェイトステータスレジスタ１１ａ、１２ａの読み出しを行うことができる。一方、プロセッサコア１は、今回アクセス要求を行なったモジュールＭ１、Ｍ２の処理の実行結果を待てば、それ以外のモジュールＭ１、Ｍ２の処理の実行結果を待たなくても、次の処理に進める場合、シングルウェイトステータスレジスタ１１ｂ、１２ｂの読み出しを行うことができる。
【００３０】
そして、マルチウェイトステータスレジスタ１１ａ、１２ａがプロセッサコア１にてそれぞれ読み出されると、図３に示すように、ポーリング処理部１１ｃ、１２ｃは、マルチウェイト選択信号ＳＳＡ１、ＳＳＡ２をそれぞれ“１”に設定する。そして、デコーダ２３は、マルチウェイト選択信号ＳＳＡ１、ＳＳＡ２の少なくともいずれか一方が“１”に設定されると、選択信号ＡＯＳＬＴを“０”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“０”に設定されると、ＡＮＤ回路２２の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。
【００３１】
一方、シングルウェイトステータスレジスタ１１ｂ、１２ｂがプロセッサコア１にてそれぞれ読み出されると、ポーリング処理部１１ｃ、１２ｃは、シングルウェイト選択信号ＳＳＯ１、ＳＳＯ２をそれぞれ“１”に設定する。そして、デコーダ２３は、シングルウェイト選択信号ＳＳＯ１、ＳＳＯ２の少なくともいずれか一方が“１”に設定されると、選択信号ＡＯＳＬＴを“１”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“１”に設定されると、ＯＲ回路２１の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。
【００３２】
そして、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力されると、クロック制御回路６は、プロセッサコア１に供給するクロック信号ＣＬを停止する。そして、ポーリング処理部１１ｃ、１２ｃは、自分のモジュールＭ１、Ｍ２の処理の実行状態をそれぞれ監視し、自分のモジュールＭ１、Ｍ２の処理の実行が完了すると、ポーリング信号ＰＳ１、ＰＳ２の出力をそれぞれ停止する。
【００３３】
そして、ポーリングセレクタ５は、マルチウェイトステータスレジスタ１１ａ、１２ａがプロセッサコア１にてそれぞれ読み出された場合、各モジュールＭ１、Ｍ２からそれぞれ出力された全てのポーリング信号ＰＳ１、ＰＳ２の出力が停止された時に、ＷＡＩＴ信号ＷＡの出力を停止する。
一方、ポーリングセレクタ５は、シングルウェイトステータスレジスタ１１ｂ、１２ｂがプロセッサコア１にてそれぞれ読み出された場合、そのモジュールＭ１、Ｍ２から出力されたポーリング信号ＰＳ１、ＰＳ２の出力が停止された時に、ＷＡＩＴ信号ＷＡの出力を停止する。そして、ＷＡＩＴ信号ＷＡの出力がポーリングセレクタ５にて停止されると、クロック制御回路６は、プロセッサコア１へのクロック信号ＣＬの供給を再開する。
【００３４】
これにより、プロセッサコア１がモジュールＭ１、Ｍ２にそれぞれアクセスする際にモジュールＭ１、Ｍ２の動作が終了しているかをプロセッサコア１側で判断することなく、モジュールＭ１、Ｍ２の動作が終了するまでプロセッサコア１の動作を停止させることができる。このため、複数のモジュールＭ１、Ｍ２がバスを介してプロセッサコア１と接続されている場合においても、ポーリング処理に伴う分岐処理の判断や分岐処理の実行をプロセッサコア１側で行う必要がなくなり、プロセッサコア１にかかる負荷を抑制しつつ、プロセッサコア１の省電力化を図ることができる。
【００３５】
また、単独のモジュールＭ１、Ｍ２の処理の実行状態に基づいてプロセッサコア１の動作を停止させるための指定を行うシングルウェイトステータスレジスタ１１ｂ、１２ｂと、複数のモジュールＭ１、Ｍ２の処理の実行状態に基づいてプロセッサコア１の動作を停止させるための指定を行うマルチウェイトステータスレジスタ１１ａ、１２ａとを、各モジュールＭ１、Ｍ２にそれぞれ設けることにより、複数のモジュールＭ１、Ｍ２がバスを介してプロセッサコア１と接続されている場合においても、モジュールＭ１、Ｍ２ごとに独立してプロセッサコア１の動作を停止させたり、複数のモジュールＭ１、Ｍ２が協働してプロセッサコア１の動作を停止させたりすることができる。このため、個々のモジュールＭ１、Ｍ２が単独で動作している場合においても、プロセッサコア１の動作が一律に停止されることを防止することが可能となり、プロセッサコア１の稼動効率の劣化を抑制しつつ、プロセッサコア１の省電力化を図ることができる。
【００３６】
図５は、図１のプロセッサ制御装置のポーリング処理方法の一例を示すタイミングチャートである。
図５の時刻ｔ１において、図１のプロセッサコア１が動作中にモジュールＭ１が処理を実行しているものとする。そして、時刻ｔ２において、モジュールＭ２が処理の実行を開始したものとする。そして、時刻ｔ３において、モジュールＭ１、Ｍ２が処理を実行中に、プロセッサコア１がモジュールＭ１にアクセス要求を出し、マルチウェイトステータスレジスタ１１ａの読み出しを行ったものとする。
【００３７】
すると、モジュールＭ１のポーリング処理部１１ｃは、ポーリング信号ＰＳ１をポーリングセレクタ５に出力するとともに、マルチウェイト選択信号ＳＳＡ１を“１”に設定する。そして、デコーダ２３は、マルチウェイト選択信号ＳＳＡ１が“１”に設定されると、選択信号ＡＯＳＬＴを“０”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“０”に設定されると、ＡＮＤ回路２２の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、ＡＮＤ回路２２では、ポーリング信号ＰＳ１がポーリングセレクタ５に出力されても、ポーリング信号ＰＳ２がポーリングセレクタ５に出力されていないので、ＡＮＤ回路２２からの出力は“０”となり、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力されることはない。このため、時刻ｔ３においては、クロック制御回路６は、プロセッサコア１にクロック信号ＣＬを供給し続け、プロセッサコア１は動作状態を維持する。
【００３８】
次に、時刻ｔ４において、モジュールＭ１、Ｍ２が処理を実行中に、プロセッサコア１がモジュールＭ２にアクセス要求を出し、シングルウェイトステータスレジスタ１２ｂの読み出しを行ったものとする。
すると、モジュールＭ２のポーリング処理部１２ｃは、ポーリング信号ＰＳ２をポーリングセレクタ５に出力するとともに、シングルウェイト選択信号ＳＳＯ２を“１”に設定する。そして、デコーダ２３は、シングルウェイト選択信号ＳＳＯ２が“１”に設定されると、選択信号ＡＯＳＬＴを“１”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“１”に設定されると、ＯＲ回路２１の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、ポーリング信号ＰＳ２がポーリングセレクタ５に出力されると、ＯＲ回路２１からの出力は“１”となり、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力される。このため、時刻ｔ４において、クロック制御回路６は、プロセッサコア１に供給されるクロック信号ＣＬを停止し、プロセッサコア１の動作を停止させる。
【００３９】
次に、時刻ｔ５において、モジュールＭ１の処理が終了すると、ポーリング処理部１１ｃはポーリング信号ＰＳ１の出力を停止する。ここで、モジュールＭ１からのポーリング信号ＰＳ１の出力が停止されても、モジュールＭ２からのポーリング信号ＰＳ２は未だ出力されているため、ＯＲ回路２１からの出力は“１”のままである。さらに、シングルウェイト選択信号ＳＳＯ２が“１”に設定されているので、ＯＲ回路２１の出力がＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力される。このため、モジュールＭ１の処理が終了しても、クロック制御回路６からプロセッサコア１に供給されるクロック信号ＣＬは停止されたままとなり、プロセッサコア１の動作は停止されたままとなる。
【００４０】
次に、時刻ｔ６において、モジュールＭ２の処理が終了すると、ポーリング処理部１２ｃはポーリング信号ＰＳ２の出力を停止する。そして、モジュールＭ２からのポーリング信号ＰＳ２の出力が停止されると、ＯＲ回路２１からの出力は“０”となるので、クロック制御回路６からのＷＡＩＴ信号ＷＡの出力が停止される。このため、時刻ｔ６において、クロック制御回路６は、プロセッサコア１へのクロック信号ＣＬの供給を再開し、プロセッサコア１を動作させる。
【００４１】
図６は、図１のプロセッサ制御装置のポーリング処理方法のその他の例を示すタイミングチャートである。
図６の時刻ｔ１１において、図１のプロセッサコア１が動作中にモジュールＭ１が処理を実行しているものとする。そして、時刻ｔ１２において、モジュールＭ２が処理の実行を開始したものとする。そして、時刻ｔ１３において、モジュールＭ１、Ｍ２が処理を実行中に、プロセッサコア１がモジュールＭ１にアクセス要求を出し、マルチウェイトステータスレジスタ１１ａの読み出しを行ったものとする。
【００４２】
すると、モジュールＭ１のポーリング処理部１１ｃは、ポーリング信号ＰＳ１をポーリングセレクタ５に出力するとともに、マルチウェイト選択信号ＳＳＡ１を“１”に設定する。そして、デコーダ２３は、マルチウェイト選択信号ＳＳＡ１が“１”に設定されると、選択信号ＡＯＳＬＴを“０”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“０”に設定されると、ＡＮＤ回路２２の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、ＡＮＤ回路２２では、ポーリング信号ＰＳ１がポーリングセレクタ５に出力されても、ポーリング信号ＰＳ２がポーリングセレクタ５に出力されていないので、ＡＮＤ回路２２からの出力は“０”となり、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力されることはない。このため、時刻ｔ１３においては、クロック制御回路６は、プロセッサコア１にクロック信号ＣＬを供給し続け、プロセッサコア１は動作状態を維持する。
【００４３】
次に、時刻ｔ１４において、モジュールＭ１、Ｍ２が処理を実行中に、プロセッサコア１がモジュールＭ２にアクセス要求を出し、シングルウェイトステータスレジスタ１２ｂの読み出しを行ったものとする。
すると、モジュールＭ２のポーリング処理部１２ｃは、ポーリング信号ＰＳ２をポーリングセレクタ５に出力するとともに、シングルウェイト選択信号ＳＳＯ２を“１”に設定する。そして、デコーダ２３は、シングルウェイト選択信号ＳＳＯ２が“１”に設定されると、選択信号ＡＯＳＬＴを“１”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“１”に設定されると、ＯＲ回路２１の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、ポーリング信号ＰＳ２がポーリングセレクタ５に出力されると、ＯＲ回路２１からの出力は“１”となり、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力される。このため、時刻ｔ１４において、クロック制御回路６は、プロセッサコア１に供給されるクロック信号ＣＬを停止し、プロセッサコア１の動作を停止させる。
【００４４】
次に、時刻ｔ１５において、モジュールＭ２の処理が終了すると、ポーリング処理部１２ｃはポーリング信号ＰＳ２の出力を停止する。ここで、モジュールＭ２からのポーリング信号ＰＳ２の出力が停止されても、モジュールＭ１からのポーリング信号ＰＳ１は未だ出力されているため、ＯＲ回路２１からの出力は“１”のままである。さらに、シングルウェイト選択信号ＳＳＯ２が“１”に設定されているので、ＯＲ回路２１の出力がＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力される。このため、モジュールＭ２の処理が終了しても、クロック制御回路６からプロセッサコア１に供給されるクロック信号ＣＬは停止されたままとなり、プロセッサコア１の動作は停止されたままとなる。
【００４５】
次に、時刻ｔ１６において、モジュールＭ１の処理が終了すると、ポーリング処理部１１ｃはポーリング信号ＰＳ１の出力を停止する。そして、モジュールＭ１からのポーリング信号ＰＳ１の出力が停止されると、ＯＲ回路２１からの出力は“０”となるので、クロック制御回路６からのＷＡＩＴ信号ＷＡの出力が停止される。このため、時刻ｔ１６において、クロック制御回路６は、プロセッサコア１へのクロック信号ＣＬの供給を再開し、プロセッサコア１を動作させる。
【００４６】
図７は、図１のプロセッサ制御装置のポーリング処理方法のその他の例を示すタイミングチャートである。
図７の時刻ｔ２１において、図１のプロセッサコア１が動作中にモジュールＭ１が処理を実行しているものとする。そして、時刻ｔ２２において、モジュールＭ２が処理の実行を開始したものとする。そして、時刻ｔ２３において、モジュールＭ１、Ｍ２が処理を実行中に、プロセッサコア１がモジュールＭ１にアクセス要求を出し、マルチウェイトステータスレジスタ１１ａの読み出しを行ったものとする。
【００４７】
すると、モジュールＭ１のポーリング処理部１１ｃは、ポーリング信号ＰＳ１をポーリングセレクタ５に出力するとともに、マルチウェイト選択信号ＳＳＡ１を“１”に設定する。そして、デコーダ２３は、マルチウェイト選択信号ＳＳＡ１が“１”に設定されると、選択信号ＡＯＳＬＴを“０”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“０”に設定されると、ＡＮＤ回路２２の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、ＡＮＤ回路２２では、ポーリング信号ＰＳ１がポーリングセレクタ５に出力されても、ポーリング信号ＰＳ２がポーリングセレクタ５に出力されていないので、ＡＮＤ回路２２からの出力は“０”となり、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力されることはない。このため、時刻ｔ２３においては、クロック制御回路６は、プロセッサコア１にクロック信号ＣＬを供給し続け、プロセッサコア１は動作状態を維持する。
【００４８】
次に、時刻ｔ２４において、モジュールＭ１、Ｍ２が処理を実行中に、プロセッサコア１がモジュールＭ２にアクセス要求を出し、マルチウェイトステータスレジスタ１２ａの読み出しを行ったものとする。
すると、モジュールＭ２のポーリング処理部１２ｃは、ポーリング信号ＰＳ２をポーリングセレクタ５に出力するとともに、マルチウェイト選択信号ＳＳＡ２を“１”に設定する。そして、デコーダ２３は、マルチウェイト選択信号ＳＳＡ２が“１”に設定されると、選択信号ＡＯＳＬＴを“０”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“０”に設定されると、ＡＮＤ回路２２の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、ポーリング信号ＰＳ１がポーリングセレクタ５に既に出力されているので、ポーリング信号ＰＳ２がポーリングセレクタ５に出力されると、ＡＮＤ回路２２からの出力は“１”となり、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力される。このため、時刻ｔ２４において、クロック制御回路６は、プロセッサコア１に供給されるクロック信号ＣＬを停止し、プロセッサコア１の動作を停止させる。そして、時刻ｔ２５において、プロセッサコア１の動作を停止された状態で、モジュールＭ１、Ｍ２が動作を継続中の場合、プロセッサコア１に供給されるクロック信号ＣＬは停止されたままとなり、プロセッサコア１の動作は停止されたままとなる。
【００４９】
次に、時刻ｔ２６において、モジュールＭ２の処理が終了すると、ポーリング処理部１２ｃはポーリング信号ＰＳ２の出力を停止する。ここで、各モジュールＭ１、Ｍ２において、マルチウェイトステータスレジスタ１１ａ、１２ａの読み出しが行われたので、選択信号ＡＯＳＬＴは“０”に設定され、ＡＮＤ回路２２の出力がＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力される。このため、モジュールＭ２からのポーリング信号ＰＳ２の出力が停止されると、ＡＮＤ回路２２からの出力は“０”となり、クロック制御回路６からのＷＡＩＴ信号ＷＡの出力が停止される。このため、時刻ｔ２６において、クロック制御回路６は、プロセッサコア１へのクロック信号ＣＬの供給を再開し、プロセッサコア１を動作させる。
【００５０】
次に、時刻ｔ２７において、モジュールＭ１が処理を実行中に、プロセッサコア１がモジュールＭ１のシングルウェイトステータスレジスタ１１ｂの読み出しを行ったものとする。
すると、モジュールＭ１のポーリング処理部１１ｃは、シングルウェイト選択信号ＳＳＯ１を“１”に設定する。そして、デコーダ２３は、シングルウェイト選択信号ＳＳＯ１が“１”に設定されると、選択信号ＡＯＳＬＴを“１”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“０”に設定されると、ＯＲ回路２１の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、モジュールＭ１は動作の継続中であり、モジュールＭ１からのポーリング信号ＰＳ１がポーリングセレクタ５に出力されたままになっているので、ＯＲ回路２１からの出力は“１”となっている。このため、ＯＲ回路２１の出力がクロック制御回路６に出力されると、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力される。このため、時刻ｔ２７において、クロック制御回路６は、プロセッサコア１に供給されるクロック信号ＣＬを停止し、プロセッサコア１の動作を停止させる。
【００５１】
次に、時刻ｔ２８において、モジュールＭ１の処理が終了すると、ポーリング処理部１１ｃはポーリング信号ＰＳ１の出力を停止する。そして、モジュールＭ１からのポーリング信号ＰＳ１の出力が停止されると、ＯＲ回路２１からの出力は“０”となるので、クロック制御回路６からのＷＡＩＴ信号ＷＡの出力が停止される。このため、時刻ｔ２８において、クロック制御回路６は、プロセッサコア１へのクロック信号ＣＬの供給を再開し、プロセッサコア１を動作させる。
【００５２】
図８は、図１のプロセッサ制御装置のポーリング処理方法のその他の例を示すタイミングチャートである。
図８の時刻ｔ３１において、図１のプロセッサコア１が動作中にモジュールＭ１が処理を実行し、時刻ｔ３２においても、モジュールＭ１が動作を継続しているものとする。そして、時刻ｔ３３において、モジュールＭ１が処理を実行中に、プロセッサコア１がモジュールＭ１にアクセス要求を出し、シングルウェイトステータスレジスタ１１ｂの読み出しを行ったものとする。
【００５３】
すると、モジュールＭ１のポーリング処理部１１ｃは、ポーリング信号ＰＳ１をポーリングセレクタ５に出力するとともに、シングルウェイト選択信号ＳＳＯ１を“１”に設定する。そして、デコーダ２３は、シングルウェイト選択信号ＳＳＯ１が“１”に設定されると、選択信号ＡＯＳＬＴを“１”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“１”に設定されると、ＯＲ回路２１の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、ポーリング信号ＰＳ１がポーリングセレクタ５に出力されると、ＯＲ回路２１からの出力は“１”となり、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力される。このため、時刻ｔ３３において、クロック制御回路６は、プロセッサコア１に供給されるクロック信号ＣＬを停止し、プロセッサコア１の動作を停止させる。
【００５４】
次に、時刻ｔ３４において、モジュールＭ１の処理が終了すると、ポーリング処理部１１ｃはポーリング信号ＰＳ１の出力を停止する。そして、モジュールＭ１からのポーリング信号ＰＳ１の出力が停止されると、ＯＲ回路２１からの出力は“０”となるので、クロック制御回路６からのＷＡＩＴ信号ＷＡの出力が停止される。このため、時刻ｔ３４において、クロック制御回路６は、プロセッサコア１へのクロック信号ＣＬの供給を再開し、プロセッサコア１を動作させる。
【００５５】
図９は、図１のプロセッサ制御装置のポーリング処理方法のその他の例を示すタイミングチャートである。なお、図９の実施形態では、図１のモジュールＭ１、Ｍ２の他にモジュールＭ３が別途設けられているものとする。また、モジュールＭ３においても、モジュールＭ１、Ｍ２と同様に、マルチウェイトステータスレジスタ１３ａ、シングルウェイトステータスレジスタ１３ｂおよびポーリング処理部１３ｃが設けられているものとする。さらに、モジュールＭ３は、図２のＯＲ回路２１およびＡＮＤ回路２２にポーリング信号ＰＳ３を出力するとともに、マルチウェイト選択信号ＳＳＡ３およびシングルウェイト選択信号ＳＳＯ３をデコーダ２３に出力するものとする。
【００５６】
図９の時刻ｔ４１において、図１のプロセッサコア１が動作中にモジュールＭ１が処理を実行しているものとする。そして、時刻ｔ４２において、モジュールＭ２、Ｍ３が処理の実行を開始したものとする。そして、時刻ｔ４３において、モジュールＭ１、Ｍ２、Ｍ３が処理を実行中に、プロセッサコア１がモジュールＭ１にアクセス要求を出し、マルチウェイトステータスレジスタ１１ａの読み出しを行ったものとする。
【００５７】
すると、モジュールＭ１のポーリング処理部１１ｃは、ポーリング信号ＰＳ１をポーリングセレクタ５に出力するとともに、マルチウェイト選択信号ＳＳＡ１を“１”に設定する。そして、デコーダ２３は、マルチウェイト選択信号ＳＳＡ１が“１”に設定されると、選択信号ＡＯＳＬＴを“０”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“０”に設定されると、ＡＮＤ回路２２の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、ＡＮＤ回路２２では、ポーリング信号ＰＳ１がポーリングセレクタ５に出力されても、ポーリング信号ＰＳ２、ＰＳ３がポーリングセレクタ５に出力されていないので、ＡＮＤ回路２２からの出力は“０”となり、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力されることはない。このため、時刻ｔ４３においては、クロック制御回路６は、プロセッサコア１にクロック信号ＣＬを供給し続け、プロセッサコア１は動作状態を維持する。
【００５８】
次に、時刻ｔ４４において、モジュールＭ１、Ｍ２、Ｍ３が処理を実行中に、プロセッサコア１がモジュールＭ２にアクセス要求を出し、マルチウェイトステータスレジスタ１２ａの読み出しを行ったものとする。
すると、モジュールＭ２のポーリング処理部１２ｃは、ポーリング信号ＰＳ２をポーリングセレクタ５に出力するとともに、マルチウェイト選択信号ＳＳＡ２を“１”に設定する。そして、デコーダ２３は、マルチウェイト選択信号ＳＳＡ２が“１”に設定されると、選択信号ＡＯＳＬＴを“０”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“０”に設定されると、ＡＮＤ回路２２の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、ＡＮＤ回路２２では、ポーリング信号ＰＳ２がポーリングセレクタ５に出力されても、ポーリング信号ＰＳ３がポーリングセレクタ５に出力されていないので、ＡＮＤ回路２２からの出力は“０”となり、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力されることはない。このため、時刻ｔ４４においては、クロック制御回路６は、プロセッサコア１にクロック信号ＣＬを供給し続け、プロセッサコア１は動作状態を維持する。
【００５９】
次に、時刻ｔ４５において、モジュールＭ１、Ｍ２、Ｍ３が処理を実行中に、プロセッサコア１がモジュールＭ３にアクセス要求を出したものとする。
すると、ポーリング信号ＰＳ１、ＰＳ２がポーリングセレクタ５に既に出力されているので、ポーリング信号ＰＳ３がポーリングセレクタ５に出力されると、ＡＮＤ回路２２からの出力は“１”となり、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力される。このため、時刻ｔ４５において、クロック制御回路６は、プロセッサコア１に供給されるクロック信号ＣＬを停止し、プロセッサコア１の動作を停止させる。
【００６０】
次に、時刻ｔ４６において、モジュールＭ２、Ｍ３の処理が終了すると、ポーリング処理部１２ｃ、１３ｃはポーリング信号ＰＳ２、ＰＳ３の出力をそれぞれ停止する。ここで、各モジュールＭ１、Ｍ２において、マルチウェイトステータスレジスタ１１ａ、１２ａの読み出しが行われたので、選択信号ＡＯＳＬＴは“０”に設定され、ＡＮＤ回路２２の出力がＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力される。このため、モジュールＭ２、Ｍ３からのポーリング信号ＰＳ２、ＰＳ３の出力がそれぞれ停止されると、ＡＮＤ回路２２からの出力は“０”となり、クロック制御回路６からのＷＡＩＴ信号ＷＡの出力が停止される。このため、時刻ｔ４６において、クロック制御回路６は、プロセッサコア１へのクロック信号ＣＬの供給を再開し、プロセッサコア１を動作させる。
【００６１】
次に、時刻ｔ４７において、モジュールＭ１が処理を実行中に、プロセッサコア１がモジュールＭ１のシングルウェイトステータスレジスタ１１ｂの読み出しを行ったものとする。
すると、モジュールＭ１のポーリング処理部１１ｃは、シングルウェイト選択信号ＳＳＯ１を“１”に設定する。そして、デコーダ２３は、シングルウェイト選択信号ＳＳＯ１が“１”に設定されると、選択信号ＡＯＳＬＴを“１”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“１”に設定されると、ＯＲ回路２１の出力をＷＡＩＴ信号ＷＡとしてクロック制御回路６に出力する。ここで、モジュールＭ１は動作の継続中であり、モジュールＭ１からのポーリング信号ＰＳ１がポーリングセレクタ５に出力されたままになっているので、ＯＲ回路２１からの出力は“１”となっている。このため、ＯＲ回路２１の出力がクロック制御回路６に出力されると、ＷＡＩＴ信号ＷＡがクロック制御回路６に出力される。このため、時刻ｔ４７において、クロック制御回路６は、プロセッサコア１に供給されるクロック信号ＣＬを停止し、プロセッサコア１の動作を停止させる。
【００６２】
次に、時刻ｔ４８において、モジュールＭ１の処理が終了すると、ポーリング処理部１１ｃはポーリング信号ＰＳ１の出力を停止する。そして、モジュールＭ１からのポーリング信号ＰＳ１の出力が停止されると、ＯＲ回路２１からの出力は“０”となるので、クロック制御回路６からのＷＡＩＴ信号ＷＡの出力が停止される。このため、時刻ｔ４８において、クロック制御回路６は、プロセッサコア１へのクロック信号ＣＬの供給を再開し、プロセッサコア１を動作させる。
【００６３】
図１０は、本発明の第２実施形態に係るプロセッサ制御装置の概略構成を示すブロック図である。
図１０おいて、プロセッサコア３１はインストラクションキャッシュ３３に接続されている。そして、インストラクションキャッシュ３３は、メモリ制御回路３４を介してメモリにアクセスすることにより、プロセッサコア３１に実行させる命令を取得し、プロセッサコア３１に出力することができる。そして、プロセッサコア３１は、インストラクションキャッシュ３３から出力された命令を実行することで、その命令が記述されたプログラムを実行することができる。
【００６４】
また、プロセッサコア３１は、バス制御回路３２を介して複数のモジュールＭ１１、Ｍ１２に接続されるとともに、モジュールＭ１１、Ｍ１２はメモリ制御回路３４に接続されている。ここで、各モジュールＭ１１、Ｍ１２には、セットウェイトステータスレジスタ４１ａ、４２ａ、ウェイトステータスレジスタ４１ｂ、４２ｂおよびポーリング処理部４１ｃ、４２ｃがそれぞれ設けられている。そして、セットウェイトステータスレジスタ４１ａ、４２ａは、モジュールＭ１１、Ｍ１２の処理の実行状態に依存することなく、プロセッサ３１の動作を継続させるための指定を各モジュールＭ１１、Ｍ１２上でそれぞれ行うことができる。また、ウェイトステータスレジスタ４１ｂ、４２ｂは、単独のモジュールＭ１１、Ｍ１２の処理の実行状態に基づいてプロセッサコア３１の動作を停止させるための指定を各モジュールＭ１１、Ｍ１２上でそれぞれ行うことができる。また、ポーリング処理部４１ｃ、４２ｃは、プロセッサコア３１からのアクセス要求があった時に各モジュールＭ１１、Ｍ１２がそれぞれ処理を実行中の場合、プロセッサコア３１の動作を供給させるためのポーリング信号ＰＳ１１、ＰＳ１２をそれぞれ出力することができる。
【００６５】
また、プロセッサ制御装置には、ポーリングセレクタ３５およびクロック制御回路３６が設けられている。ここで、ポーリングセレクタ３５は、セットウェイトステータスレジスタ４１ａ、４２ａまたはウェイトステータスレジスタ４１ｂ、４２ｂの指定に基づいて、ポーリング処理部４１ｃ、４２ｃからそれぞれ出力されたポーリング信号ＰＳ１１、ＰＳ１２を有効化または無効化し、プロセッサコア３１に出力されるクロック信号ＣＬ２を停止させるためのＷＡＩＴ信号ＷＡ２をクロック制御回路３６に出力したり停止させたりすることができる。また、クロック制御回路３６は、プロセッサコア３１にクロック信号ＣＫ２を供給するとともに、ポーリングセレクタ３５から出力されたＷＡＩＴ信号ＷＡ２に基づいて、プロセッサコア３１に供給するクロック信号ＣＬ２を停止することができる。
【００６６】
図１１は、図１０のポーリングセレクタ３５の概略構成を示すブロック図である。
図１１において、ポーリングセレクタ３５には、ＯＲ回路５１、０セット回路５２、デコーダ５３およびセレクタ５４が設けられている。ここで、ＯＲ回路５１には、各モジュールＭ１１、Ｍ１２から出力されたポーリング信号ＰＳ１１、ＰＳ１２がそれぞれ入力される。そして、ＯＲ回路５１は、これらのポーリング信号ＰＳ１１、ＰＳ１２の論理和演算を行い、その演算結果をセレクタ５４に入力する。また、０セット回路２２は、ＷＡＩＴ信号ＷＡ２を無効にするための信号をセレクタ５４に入力する。
【００６７】
また、各モジュールＭ１１、Ｍ１２からは、セットウェイトステータスレジスタ４１ａ、４２ａがプロセッサコア３１にてそれぞれ読み出されたことを示すセットウェイト選択信号ＳＳＡ１１、ＳＳＡ１２がデコーダ５３にそれぞれ出力される。また、各モジュールＭ１１、Ｍ１２からは、ウェイトステータスレジスタ４１ｂ、４２ｂがプロセッサコア３１にてそれぞれ読み出されたことを示すウェイト選択信号ＳＳＯ１１、ＳＳＯ１２がデコーダ５３にそれぞれ出力される。
【００６８】
そして、デコーダ５３は、いずれか少なくとも一方のモジュールＭ１１、Ｍ１２からセットウェイト選択信号ＳＳＡ１１、ＳＳＡ１２が送られた場合、０セット回路５２の出力を選択させる選択信号ＡＯＳＬＴ２をセレクタ５４に供給する。また、デコーダ５３は、いずれか少なくとも一方のモジュールＭ１１、Ｍ１２からウェイト選択信号ＳＳＯ１１、ＳＳＯ１２が送られた場合、ＯＲ回路５１の出力を選択させる選択信号ＡＯＳＬＴ２をセレクタ５４に供給する。
【００６９】
また、セレクタ５４は、デコーダ５３から出力された選択信号ＡＯＳＬＴ２に基づいて、ＯＲ回路５１または０セット回路５２のいずれか一方の出力を選択し、その選択された出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。
なお、図１１のデコーダ５３は図２のデコーダ２３と同様に動作することができる。すなわち、セットウェイトステータスレジスタ４１ａ、４２ａがプロセッサコア３１にてそれぞれ読み出されると、ポーリング処理部４１ｃ、４２ｃは、セットウェイト選択信号ＳＳＡ１１、ＳＳＡ１２をそれぞれ“１”に設定する。そして、デコーダ５３は、セットウェイト選択信号ＳＳＡ１１、ＳＳＡ１２の少なくともいずれか一方が“１”に設定されると、選択信号ＡＯＳＬＴを“０”に設定する。そして、セレクタ２４は、選択信号ＡＯＳＬＴが“０”に設定されると、０セット回路５２の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。
【００７０】
一方、ウェイトステータスレジスタ４１ｂ、４２ｂがプロセッサコア３１にてそれぞれ読み出されると、ポーリング処理部４１ｃ、４２ｃは、ウェイト選択信号ＳＳＯ１１、ＳＳＯ１２をそれぞれ“１”に設定する。そして、デコーダ５３は、ウェイト選択信号ＳＳＯ１１、ＳＳＯ１２の少なくともいずれか一方が“１”に設定されると、選択信号ＡＯＳＬＴ２を“１”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“１”に設定されると、ＯＲ回路５１の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。
【００７１】
図１２は、図１０のセットウェイトステータスレジスタ４１ａ、４２ａおよびウェイトステータスレジスタ４１ｂ、４２ｂの選択方法を示す図である。
図１２において、例えば、セットウェイトステータスレジスタ４１ａ、４２ａおよびウェイトステータスレジスタ４１ｂ、４２ｂは、バスのアドレス線に対応させることができる。例えば、プロセッサコア３１は、バスのアドレス線の“０ｘ１００００１４”というアドレスを指定することで、セットウェイトステータスレジスタ４１ａ、４２ａを選択することができる。また、プロセッサコア３１は、バスのアドレス線の“０ｘ１００００１８”というアドレスを指定することで、ウェイトステータスレジスタ４１ｂ、４２ｂを選択することができる。
【００７２】
そして、図１０において、プロセッサコア３１からのアクセス要求が各モジュールＭ１１、Ｍ１２に対してそれぞれ行われると、ポーリング処理部４１ｃ、４２ｃは、モジュールＭ１１、Ｍ１２が処理を実行中であるかをそれぞれ判断する。そして、各モジュールＭ１１、Ｍ１２が処理を実行中でない場合、各モジュールＭ１１、Ｍ１２が処理を実行中でないことを示す非実行中フラグをプロセッサコア３１にそれぞれ読み出させる。そして、プロセッサコア３１は、非実行中フラグが各モジュールＭ１１、Ｍ１２から読み出されると、そのモジュールＭ１１、Ｍ１２に対してアクセスを行うことができる。
【００７３】
一方、各ポーリング処理部４１ｃ、４２ｃは、プロセッサコア３１からのアクセス要求が各モジュールＭ１１、Ｍ１２に対してそれぞれ行われた時に、モジュールＭ１１、Ｍ１２がそれぞれ処理を実行中であると判断すると、ポーリング信号ＰＳ１１、ＰＳ１２をポーリングセレクタ３５にそれぞれ出力することができる。ここで、プロセッサコア３１は、各モジュールＭ１１、Ｍ１２にアクセス要求を行う時に、セットウェイトステータスレジスタ４１ａ、４２ａまたはウェイトステータスレジスタ４１ｂ、４２ｂのいずれか一方を選択して読み出しを行うことができる。なお、プロセッサコア３１は、今回アクセス要求を行なったモジュールＭ１１、Ｍ１２の処理の実行結果に依存することなく、次の処理に進める場合、セットウェイトステータスレジスタ４１ａ、４２ａの読み出しを行うことができる。一方、プロセッサコア３１は、今回アクセス要求を行なったモジュールＭ１１、Ｍ１２の処理の実行結果を待てば、それ以外のモジュールＭ１１、Ｍ１２の処理の実行結果を待たなくても、次の処理に進める場合、ウェイトステータスレジスタ４１ｂ、４２ｂの読み出しを行うことができる。
【００７４】
そして、セットウェイトステータスレジスタ４１ａ、４２ａがプロセッサコア３１にてそれぞれ読み出されると、図３に示すように、ポーリング処理部４１ｃ、４２ｃは、セットウェイト選択信号ＳＳＡ１１、ＳＳＡ１２をそれぞれ“１”に設定する。そして、デコーダ５３は、セットウェイト選択信号ＳＳＡ１１、ＳＳＡ１２の少なくともいずれか一方が“１”に設定されると、選択信号ＡＯＳＬＴ２を“０”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“０”に設定されると、０セット回路５２の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。
【００７５】
一方、ウェイトステータスレジスタ４１ｂ、４２ｂがプロセッサコア３１にてそれぞれ読み出されると、ポーリング処理部４１ｃ、４２ｃは、ウェイト選択信号ＳＳＯ１１、ＳＳＯ１２をそれぞれ“１”に設定する。そして、デコーダ５３は、ウェイト選択信号ＳＳＯ１１、ＳＳＯ１２の少なくともいずれか一方が“１”に設定されると、選択信号ＡＯＳＬＴ２を“１”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“１”に設定されると、ＯＲ回路５１の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。
【００７６】
そして、ＷＡＩＴ信号ＷＡ２がクロック制御回路３６に出力されると、クロック制御回路３６は、プロセッサコア３１に供給するクロック信号ＣＬ２を停止する。そして、ポーリング処理部４１ｃ、４２ｃは、自分のモジュールＭ１１、Ｍ１２の処理の実行状態をそれぞれ監視し、自分のモジュールＭ１１、Ｍ１２の処理の実行が完了すると、ポーリング信号ＰＳ１１、ＰＳ１２の出力をそれぞれ停止する。
【００７７】
そして、ポーリングセレクタ３５は、セットウェイトステータスレジスタ４１ａ、４２ａがプロセッサコア３１にてそれぞれ読み出された場合、各モジュールＭ１１、Ｍ１２からのポーリング信号ＰＳ１１、ＰＳ１２の出力の有無に関わらず、ＷＡＩＴ信号ＷＡ２の出力を停止する。
一方、ポーリングセレクタ３５は、ウェイトステータスレジスタ４１ｂ、４２ｂがプロセッサコア３１にてそれぞれ読み出された場合、そのモジュールＭ１１、Ｍ１２から出力されたポーリング信号ＰＳ１１、ＰＳ１２の出力が停止された時に、ＷＡＩＴ信号ＷＡ２の出力を停止する。そして、ＷＡＩＴ信号ＷＡ２の出力がポーリングセレクタ３５にて停止されると、クロック制御回路３６は、プロセッサコア３１へのクロック信号ＣＬ２の供給を再開する。
【００７８】
これにより、プロセッサコア３１がモジュールＭ１１、Ｍ１２にそれぞれアクセスする際にモジュールＭ１１、Ｍ１２の動作が終了しているかをプロセッサコア３１側で判断することなく、モジュールＭ１１、Ｍ１２の動作が終了するまでプロセッサコア３１の動作を停止させることができる。このため、複数のモジュールＭ１１、Ｍ１２がバスを介してプロセッサコア３１と接続されている場合においても、ポーリング処理に伴う分岐処理の判断や分岐処理の実行をプロセッサコア１側で行う必要がなくなり、プロセッサコア３１にかかる負荷を抑制しつつ、プロセッサコア３１の省電力化を図ることができる。
【００７９】
また、単独のモジュールＭ１１、Ｍ１２の処理の実行状態に基づいてプロセッサコア３１の動作を停止させるための指定を行うウェイトステータスレジスタ４１ｂ、４２ｂと、モジュールＭ１１、Ｍ１２の処理の実行状態に依存することなく、プロセッサ３１の動作を継続させるための指定を行うセットウェイトステータスレジスタ４１ａ、４２ａとを、各モジュールＭ１１、Ｍ１２にそれぞれ設けることにより、複数のモジュールＭ１１、Ｍ１２がバスを介してプロセッサコア３１と接続されている場合においても、モジュールＭ１１、Ｍ１２ごとに独立してプロセッサコア３１の動作を停止させたり、プロセッサコア３１の動作を継続させたりすることができる。このため、個々のモジュールＭ１１、Ｍ１２が単独で動作している場合においても、プロセッサコア３１の動作が一律に停止されることを防止することが可能となり、プロセッサコア３１の稼動効率の劣化を抑制しつつ、プロセッサコア３１の省電力化を図ることができる。
【００８０】
図１３は、図１のプロセッサ制御装置のポーリング処理方法の一例を示すタイミングチャートである。
図１３の時刻ｔ１０１において、図１０のプロセッサコア３１が動作中にモジュールＭ１１が処理を実行しているものとする。そして、時刻ｔ１０２において、モジュールＭ１２が処理の実行を開始したものとする。そして、時刻ｔ１０３において、モジュールＭ１１、Ｍ１２が処理を実行中に、プロセッサコア３１がモジュールＭ１１にアクセス要求を出し、セットウェイトステータスレジスタ４１ａの読み出しを行ったものとする。
【００８１】
すると、モジュールＭ１１のポーリング処理部４１ｃは、ポーリング信号ＰＳ１１をポーリングセレクタ３５に出力するとともに、セットウェイト選択信号ＳＳＡ１１を“１”に設定する。そして、デコーダ５３は、セットウェイト選択信号ＳＳＡ１１が“１”に設定されると、選択信号ＡＯＳＬＴ２を“０”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“０”に設定されると、０セット回路５２の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。ここで、０セット回路５２からは常に“０”が出力され、ＷＡＩＴ信号ＷＡ２がクロック制御回路３６に出力されることはない。このため、時刻ｔ１０３においては、クロック制御回路３６は、プロセッサコア３１にクロック信号ＣＬ２を供給し続け、プロセッサコア３１は動作状態を維持する。
【００８２】
次に、時刻ｔ１０４において、モジュールＭ１１、Ｍ１２が処理を実行中に、プロセッサコア３１がモジュールＭ１２にアクセス要求を出し、ウェイトステータスレジスタ４２ｂの読み出しを行ったものとする。
すると、モジュールＭ１２のポーリング処理部４２ｃは、ポーリング信号ＰＳ１２をポーリングセレクタ３５に出力するとともに、ウェイト選択信号ＳＳＯ１２を“１”に設定する。そして、デコーダ５３は、ウェイト選択信号ＳＳＯ１２が“１”に設定されると、選択信号ＡＯＳＬＴ２を“１”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“１”に設定されると、ＯＲ回路５１の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。ここで、ポーリング信号ＰＳ１２がポーリングセレクタ３５に出力されると、ＯＲ回路５１からの出力は“１”となり、ＷＡＩＴ信号ＷＡ２がクロック制御回路３６に出力される。このため、時刻ｔ１０４において、クロック制御回路３６は、プロセッサコア３１に供給されるクロック信号ＣＬ２を停止し、プロセッサコア３１の動作を停止させる。
【００８３】
次に、時刻ｔ１０５において、モジュールＭ１１の処理が終了すると、ポーリング処理部４１ｃはポーリング信号ＰＳ１１の出力を停止する。ここで、モジュールＭ１１からのポーリング信号ＰＳ１１の出力が停止されても、モジュールＭ１２からのポーリング信号ＰＳ１２は未だ出力されているため、ＯＲ回路５１からの出力は“１”のままである。さらに、ウェイト選択信号ＳＳＯ１２が“１”に設定されているので、ＯＲ回路５１の出力がＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力される。このため、モジュールＭ１１の処理が終了しても、クロック制御回路３６からプロセッサコア３１に供給されるクロック信号ＣＬ２は停止されたままとなり、プロセッサコア３１の動作は停止されたままとなる。
【００８４】
次に、時刻ｔ１０６において、モジュールＭ１２の処理が終了すると、ポーリング処理部４２ｃはポーリング信号ＰＳ１２の出力を停止する。そして、モジュールＭ１２からのポーリング信号ＰＳ１２の出力が停止されると、ＯＲ回路５１からの出力は“０”となるので、クロック制御回路３６からのＷＡＩＴ信号ＷＡ２の出力が停止される。このため、時刻ｔ１０６において、クロック制御回路３６は、プロセッサコア３１へのクロック信号ＣＬ２の供給を再開し、プロセッサコア３１を動作させる。
【００８５】
図１４は、図１０のプロセッサ制御装置のポーリング処理方法のその他の例を示すタイミングチャートである。
図１４の時刻ｔ１１１において、図１０のプロセッサコア３１が動作中にモジュールＭ１１が処理を実行しているものとする。そして、時刻ｔ１１２において、モジュールＭ１２が処理の実行を開始したものとする。そして、時刻ｔ１１３において、モジュールＭ１１、Ｍ１２が処理を実行中に、プロセッサコア３１がモジュールＭ１１にアクセス要求を出し、セットウェイトステータスレジスタ４１ａの読み出しを行ったものとする。
【００８６】
すると、モジュールＭ１１のポーリング処理部４１ｃは、ポーリング信号ＰＳ１１をポーリングセレクタ３５に出力するとともに、セットウェイト選択信号ＳＳＡ１１を“１”に設定する。そして、デコーダ５３は、セットウェイト選択信号ＳＳＡ１１が“１”に設定されると、選択信号ＡＯＳＬＴ２を“０”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“０”に設定されると、０セット回路５２の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。ここで、０セット回路５２からは常に“０”が出力され、ＷＡＩＴ信号ＷＡ２がクロック制御回路３６に出力されることはない。このため、時刻ｔ１１３においては、クロック制御回路３６は、プロセッサコア３１にクロック信号ＣＬ２を供給し続け、プロセッサコア３１は動作状態を維持する。
【００８７】
次に、時刻ｔ１１４において、モジュールＭ１１、Ｍ１２が処理を実行中に、プロセッサコア３１がモジュールＭ１２にアクセス要求を出し、ウェイトステータスレジスタ４２ｂの読み出しを行ったものとする。
すると、モジュールＭ１２のポーリング処理部４２ｃは、ポーリング信号ＰＳ１２をポーリングセレクタ３５に出力するとともに、ウェイト選択信号ＳＳＯ１２を“１”に設定する。そして、デコーダ５３は、ウェイト選択信号ＳＳＯ１２が“１”に設定されると、選択信号ＡＯＳＬＴ２を“１”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“１”に設定されると、ＯＲ回路５１の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。ここで、ポーリング信号ＰＳ１２がポーリングセレクタ３５に出力されると、ＯＲ回路５１からの出力は“１”となり、ＷＡＩＴ信号ＷＡ２がクロック制御回路３６に出力される。このため、時刻ｔ１１４において、クロック制御回路３６は、プロセッサコア３１に供給されるクロック信号ＣＬ２を停止し、プロセッサコア３１の動作を停止させる。
【００８８】
次に、時刻ｔ１１５において、モジュールＭ１２の処理が終了すると、ポーリング処理部４２ｃはポーリング信号ＰＳ１２の出力を停止する。ここで、モジュールＭ１２からのポーリング信号ＰＳ１２の出力が停止されても、モジュールＭ１１からのポーリング信号ＰＳ１１は未だ出力されているため、ＯＲ回路５１からの出力は“１”のままである。さらに、ウェイト選択信号ＳＳＯ１２が“１”に設定されているので、ＯＲ回路５１の出力がＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力される。このため、モジュールＭ１２の処理が終了しても、クロック制御回路３６からプロセッサコア３１に供給されるクロック信号ＣＬ２は停止されたままとなり、プロセッサコア３１の動作は停止されたままとなる。
【００８９】
次に、時刻ｔ１１６において、モジュールＭ１１の処理が終了すると、ポーリング処理部４１ｃはポーリング信号ＰＳ１１の出力を停止する。そして、モジュールＭ１１からのポーリング信号ＰＳ１１の出力が停止されると、ＯＲ回路５１からの出力は“０”となるので、クロック制御回路３６からのＷＡＩＴ信号ＷＡ２の出力が停止される。このため、時刻ｔ１１６において、クロック制御回路３６は、プロセッサコア３１へのクロック信号ＣＬ２の供給を再開し、プロセッサコア３１を動作させる。
【００９０】
図１５は、図１０のプロセッサ制御装置のポーリング処理方法のその他の例を示すタイミングチャートである。
図１５の時刻ｔ１３１において、図１のプロセッサコア３１が動作中にモジュールＭ１１が処理の実行を開始したものとする。そして、時刻ｔ１３２において、モジュールＭ１１が処理を実行中に、プロセッサコア３１がモジュールＭ１１にアクセス要求を出し、ウェイトステータスレジスタ４１ｂの読み出しを行ったものとする。
【００９１】
すると、モジュールＭ１１のポーリング処理部４１ｃは、ポーリング信号ＰＳ１１をポーリングセレクタ３５に出力するとともに、ウェイト選択信号ＳＳＯ１１を“１”に設定する。そして、デコーダ５３は、ウェイト選択信号ＳＳＯ１１が“１”に設定されると、選択信号ＡＯＳＬＴ２を“１”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“１”に設定されると、ＯＲ回路５１の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。ここで、ポーリング信号ＰＳ１１がポーリングセレクタ３５に出力されると、ＯＲ回路５１からの出力は“１”となり、ＷＡＩＴ信号ＷＡ２がクロック制御回路３６に出力される。このため、時刻ｔ１３２において、クロック制御回路３６は、プロセッサコア３１に供給されるクロック信号ＣＬ２を停止し、プロセッサコア３１の動作を停止させる。
【００９２】
次に、時刻ｔ１３３において、モジュールＭ１１の処理が終了すると、ポーリング処理部４１ｃはポーリング信号ＰＳ１１の出力を停止する。そして、モジュールＭ１１からのポーリング信号ＰＳ１１の出力が停止されると、ＯＲ回路５１からの出力は“０”となるので、クロック制御回路３６からのＷＡＩＴ信号ＷＡ２の出力が停止される。このため、時刻ｔ１３４において、クロック制御回路３６は、プロセッサコア３１へのクロック信号ＣＬ２の供給を再開し、プロセッサコア３１を動作させる。
【００９３】
図１６は、図１０のプロセッサ制御装置のポーリング処理方法のその他の例を示すタイミングチャートである。なお、図１６の実施形態では、図１０のモジュールＭ１１、Ｍ１２の他にモジュールＭ１３が別途設けられているものとする。また、モジュールＭ１３においても、モジュールＭ１１、Ｍ１２と同様に、セットウェイトステータスレジスタ４３ａ、ウェイトステータスレジスタ４３ｂおよびポーリング処理部４３ｃが設けられているものとする。さらに、モジュールＭ１３は、図１１のＯＲ回路５１および０セット回路５２にポーリング信号ＰＳ１３を出力するとともに、セットウェイト選択信号ＳＳＡ１３およびウェイト選択信号ＳＳＯ１３をデコーダ５３に出力するものとする。
【００９４】
図１６の時刻ｔ１４１において、図１のプロセッサコア３１が動作中にモジュールＭ１１が処理を実行しているものとする。そして、時刻ｔ１４２において、モジュールＭ１２、Ｍ１３が処理の実行を開始したものとする。そして、時刻ｔ１４３において、モジュールＭ１１、Ｍ１２、Ｍ１３が処理を実行中に、プロセッサコア３１がモジュールＭ１１にアクセス要求を出し、セットウェイトステータスレジスタ４１ａの読み出しを行ったものとする。
【００９５】
すると、モジュールＭ１１のポーリング処理部４１ｃは、ポーリング信号ＰＳ１１をポーリングセレクタ３５に出力するとともに、セットウェイト選択信号ＳＳＡ１１を“１”に設定する。そして、デコーダ５３は、セットウェイト選択信号ＳＳＡ１１が“１”に設定されると、選択信号ＡＯＳＬＴ２を“０”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“０”に設定されると、０セット回路５２の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。ここで、０セット回路５２からは常に“０”が出力され、ＷＡＩＴ信号ＷＡ２がクロック制御回路３６に出力されることはない。このため、時刻ｔ１４３においては、クロック制御回路３６は、プロセッサコア３１にクロック信号ＣＬ２を供給し続け、プロセッサコア３１は動作状態を維持する。
【００９６】
次に、時刻ｔ１４４において、モジュールＭ１１、Ｍ１２、Ｍ１３が処理を実行中に、プロセッサコア３１がモジュールＭ１２にアクセス要求を出し、セットウェイトステータスレジスタ４２ａの読み出しを行ったものとする。
すると、モジュールＭ１２のポーリング処理部４２ｃは、ポーリング信号ＰＳ１２をポーリングセレクタ３５に出力するとともに、セットウェイト選択信号ＳＳＡ１２を“１”に設定する。そして、デコーダ５３は、セットウェイト選択信号ＳＳＡ１２が“１”に設定されると、選択信号ＡＯＳＬＴ２を“０”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“０”に設定されると、０セット回路５２の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。ここで、０セット回路５２からは常に“０”が出力され、ＷＡＩＴ信号ＷＡ２がクロック制御回路３６に出力されることはない。このため、時刻ｔ１４４においては、クロック制御回路３６は、プロセッサコア３１にクロック信号ＣＬ２を供給し続け、プロセッサコア３１は動作状態を維持する。
【００９７】
次に、時刻ｔ１４５において、モジュールＭ１１、Ｍ１２、Ｍ１３が処理を実行中に、プロセッサコア３１がモジュールＭ１３にアクセス要求を出し、ウェイトステータスレジスタ４３ｂの読み出しを行ったものとする。
すると、モジュールＭ１３のポーリング処理部４１ｃは、ウェイト選択信号ＳＳＯ１３を“１”に設定する。そして、デコーダ５３は、ウェイト選択信号ＳＳＯ１３が“１”に設定されると、選択信号ＡＯＳＬＴ２を“１”に設定する。そして、セレクタ５４は、選択信号ＡＯＳＬＴ２が“１”に設定されると、ＯＲ回路５１の出力をＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力する。ここで、モジュールＭ１３は動作の継続中であり、モジュールＭ１３からのポーリング信号ＰＳ１３がポーリングセレクタ３５に出力されたままになっているので、ＯＲ回路５１からの出力は“１”となっている。このため、ＯＲ回路５１の出力がクロック制御回路３６に出力されると、ＷＡＩＴ信号ＷＡ２がクロック制御回路３６に出力される。このため、時刻ｔ１４５において、クロック制御回路３６は、プロセッサコア３１に供給されるクロック信号ＣＬ２を停止し、プロセッサコア３１の動作を停止させる。
【００９８】
次に、時刻ｔ１４６において、モジュールＭ１２、Ｍ１３の処理が終了すると、ポーリング処理部４２ｃ、４３ｃはポーリング信号ＰＳ１２、ＰＳ１３の出力をそれぞれ停止する。ここで、モジュールＭ１２、Ｍ１３からのポーリング信号ＰＳ１２、ＰＳ１３の出力が停止されても、モジュールＭ１１からのポーリング信号ＰＳ１１は未だ出力されているため、ＯＲ回路５１からの出力は“１”のままである。さらに、ウェイト選択信号ＳＳＯ１３が“１”に設定されているので、ＯＲ回路５１の出力がＷＡＩＴ信号ＷＡ２としてクロック制御回路３６に出力される。このため、モジュールＭ１２、Ｍ１３の処理が終了しても、クロック制御回路３６からプロセッサコア３１に供給されるクロック信号ＣＬ２は停止されたままとなり、プロセッサコア３１の動作は停止されたままとなる。
【００９９】
次に、時刻ｔ１４７において、モジュールＭ１１の処理が終了すると、ポーリング処理部４１ｃはポーリング信号ＰＳ１１の出力を停止する。そして、モジュールＭ１１からのポーリング信号ＰＳ１１の出力が停止されると、ＯＲ回路５１からの出力は“０”となるので、クロック制御回路３６からのＷＡＩＴ信号ＷＡ２の出力が停止される。このため、時刻ｔ１４７において、クロック制御回路３６は、プロセッサコア３１へのクロック信号ＣＬ２の供給を再開し、プロセッサコア３１を動作させる。
【図面の簡単な説明】
【０１００】
【図１】本発明の第１実施形態に係るプロセッサ制御装置の構成を示すブロック図。
【図２】図１のポーリングセレクタ５の概略構成を示すブロック図。
【図３】図２のデコーダ２３の動作を示す図。
【図４】図１のマルチウェイトステータスレジスタ１１ａ、１２ａおよびシングルウェイトステータスレジスタ１１ｂ、１２ｂの選択方法を示す図。
【図５】図１のプロセッサ制御装置のポーリング処理方法の一例を示す図。
【図６】図１のプロセッサ制御装置のポーリング処理方法のその他の例を示す図。
【図７】図１のプロセッサ制御装置のポーリング処理方法のその他の例を示す図。
【図８】図１のプロセッサ制御装置のポーリング処理方法のその他の例を示す図。
【図９】図１のプロセッサ制御装置のポーリング処理方法のその他の例を示す図。
【図１０】本発明の第２実施形態に係るプロセッサ制御装置の構成を示すブロック図。
【図１１】図１０のポーリングセレクタ３５の概略構成を示すブロック図。
【図１２】図１０のセットウェイトステータスレジスタ４１ａ、４２ａおよびウェイトステータスレジスタ４１ｂ、４２ｂの選択方法を示す図。
【図１３】図１０のプロセッサ制御装置のポーリング処理方法の一例を示す図。
【図１４】図１０のプロセッサ制御装置のポーリング処理方法の他の例を示す図。
【図１５】図１０のプロセッサ制御装置のポーリング処理方法の他の例を示す図。
【図１６】図１０のプロセッサ制御装置のポーリング処理方法の他の例を示す図。
【符号の説明】
【０１０１】
１、３１  プロセッサコア、２、３２  バス制御回路、３、３３  インストラクションキャッシュ、４、３４  メモリ制御回路、５、３５  ポーリングセレクタ、６、３６  クロック制御回路、Ｍ１、Ｍ２、Ｍ１１、Ｍ１２  モジュール、１１ａ、１２ａ  マルチウェイトステータスレジスタ、１１ｂ、１２ｂ  シングルウェイトステータスレジスタ、１１ｃ、１２ｃ、４１ｃ、４２ｃ  ポーリング処理部、２１、５１  ＯＲ回路、２２  ＡＮＤ回路、２３、５３  デコーダ、２４、５４  セレクタ、４１ａ、４２ａ  セットウェイトステータスレジスタ、４１ｂ、４２ｂ  ウェイトステータスレジスタ、５２  ０セット回路
【図１】
2006293950.tif 000003
【図２】
2006293950.tif 000004
【図３】
2006293950.tif 000005
【図４】
2006293950.tif 000006
【図５】
2006293950.tif 000007
【図６】
2006293950.tif 000008
【図７】
2006293950.tif 000009
【図８】
2006293950.tif 000010
【図９】
2006293950.tif 000011
【図１０】
2006293950.tif 000012
【図１１】
2006293950.tif 000013
【図１２】
2006293950.tif 000014
【図１３】
2006293950.tif 000015
【図１４】
2006293950.tif 000016
【図１５】
2006293950.tif 000017
【図１６】
2006293950.tif 000018
【手続補正書】
【提出日】平成18年9月4日(2006.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
命令を実行するプロセッサと、
前記プロセッサとバスを介して接続され、前記プロセッサと独立して処理を行うことが可能な複数のモジュールと、
前記モジュール側にそれぞれ設けられ、前記プロセッサからのアクセス要求があった時の前記モジュールの処理の実行状態に基づいて、前記プロセッサの動作を停止させるポーリング処理部と、
前記プロセッサにクロック信号を供給するクロック制御回路と、
を備え、
前記ポーリング処理部は、前記プロセッサからのアクセス要求があった時に前記モジュールが処理を実行中の場合、前記プロセッサに供給されるクロック信号を停止させるためのポーリング信号を前記クロック制御回路に出力し、
前記モジュールは、
単独のモジュールの処理の実行状態に基づいて前記プロセッサの動作を停止させるための指定を行うシングルウェイトステータスレジスタと、
複数のモジュールの処理の実行状態に基づいて前記プロセッサの動作を停止させるための指定を行うマルチウェイトステータスレジスタとを備えることを特徴とするプロセッサ制御装置。
【請求項２】
前記シングルウェイトステータスレジスタまたは前記マルチウェイトステータスレジスタの指定に基づいて、前記ポーリング処理部から出力されたポーリング信号を有効化または無効化するポーリングセレクタをさらに備えることを特徴とする請求項１記載のプロセッサ制御装置。
【請求項３】
前記モジュールは、自分のモジュールが処理を実行中に前記シングルウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記シングルウェイトステータスレジスタの読み出しが行われたことを示すシングルウェイト選択信号を前記ポーリングセレクタに出力し、
前記モジュールは、自分のモジュールが処理を実行中に前記マルチウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記マルチウェイトステータスレジスタの読み出しが行われたことを示すマルチウェイト選択信号を前記ポーリングセレクタに出力し、
前記ポーリングセレクタは、前記モジュールから前記シングルウェイト選択信号が送られた場合、単独のモジュールから出力されたポーリング信号に基づいて、前記クロック信号を停止させるためのＷＡＩＴ信号を前記クロック制御回路に出力し、
前記ポーリングセレクタは、前記モジュールから前記マルチウェイト選択信号が送られた場合、複数のモジュールから出力されたポーリング信号に基づいて、前記クロック信号を停止させるためのＷＡＩＴ信号を前記クロック制御回路に出力することを特徴とする請求項２記載のプロセッサ制御装置。
【請求項４】
命令を実行するプロセッサと、
前記プロセッサとバスを介して接続され、前記プロセッサと独立して処理を行うことが可能な複数のモジュールと、
前記モジュール側にそれぞれ設けられ、前記プロセッサからのアクセス要求があった時の前記モジュールの処理の実行状態に基づいて、前記プロセッサの動作を停止させるポーリング処理部と、
前記プロセッサにクロック信号を供給するクロック制御回路と、
を備え、
前記ポーリング処理部は、前記プロセッサからのアクセス要求があった時に前記モジュールが処理を実行中の場合、前記プロセッサに供給されるクロック信号を停止させるためのポーリング信号を前記クロック制御回路に出力し、
前記モジュールは、
単独のモジュールの処理の実行状態に基づいて前記プロセッサの動作を停止させるための指定を行うウェイトステータスレジスタと、
前記モジュールの処理の実行状態に依存することなく、前記プロセッサの動作を継続させるための指定を行うセットウェイトステータスレジスタとを備えることを特徴とするプロセッサ制御装置。
【請求項５】
前記ウェイトステータスレジスタまたは前記セットウェイトステータスレジスタの指定に基づいて、前記ポーリング処理部から出力されたポーリング信号を有効化または無効化するポーリングセレクタをさらに備えることを特徴とする請求項４記載のプロセッサ制御装置。
【請求項６】
前記モジュールは、自分のモジュールが処理を実行中に前記ウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記ウェイトステータスレジスタの読み出しが行われたことを示すウェイト選択信号を前記ポーリングセレクタに出力し、
前記モジュールは、自分のモジュールが処理を実行中に前記セットウェイトステータスレジスタの読み出しが前記プロセッサにて行われると、前記セットウェイトステータスレジスタの読み出しが行われたことを示すセットウェイト選択信号を前記ポーリングセレクタに出力し、
前記ポーリングセレクタは、前記モジュールから前記ウェイト選択信号が送られた場合、単独のモジュールから出力されたポーリング信号に基づいて、前記クロック信号を停止させるためのＷＡＩＴ信号を前記クロック制御回路に出力し、
前記ポーリングセレクタは、前記モジュールから前記セットウェイト選択信号が送られた場合、前記モジュールの処理の実行状態に依存することなく、前記クロック信号を停止させるためのＷＡＩＴ信号が前記クロック制御回路に出力されないようにすることを特徴とする請求項５記載のプロセッサ制御装置。