(57)【要約】【課題】プロセッサのアイドル状態を正確に検出する。【解決手段】比較部１０２は、プロセッサ１１によって参照されたアドレスとロードアドレス記憶部１０１に記憶された前回のロードアドレスとを比較する。比較部１０４は、プロセッサ１１によってロードされたデータとロードデータ記憶部１０３に記憶されたデータとを比較する。比較部１０６は、サイクルカウンタ１０５のカウント値と規定サイクル数ＣＫＸとを比較する。制御部１０７は、プロセッサ１１が同一のアドレスから同一のデータをロードしていることを検出すると、ループ回数記憶部１０８に記憶されたループ回数をインクリメントする。比較部１０９は、ループ回数記憶部１０８に記憶されたループ回数が規定ループ回数ＬＰＸよりも多い場合にアイドル状態通知信号Ｓ１０９をアサートする。【選択図】図１
2010122960.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサのアイドル状態を検出する回路であって、
特定のアドレスから予め設定されたアイドル条件を満たしているデータをロードする動作を前記プロセッサが一定のクロック数毎に繰り返していることを検出する反復動作検出部と、
前記反復動作検出部によって検出された繰り返しの回数と予め設定された規定回数とを比較し、前記繰り返しの回数が前記規定回数よりも多い場合に前記プロセッサがアイドル状態であると判定する判定部とを備える
ことを特徴とするアイドル状態検出回路。
【請求項２】
請求項１において、
前記反復動作検出部は、
前記プロセッサによって参照されたアドレスが前記特定のアドレスと一致することを検出するアドレス一致検出部と、
前記プロセッサによってロードされたデータが前記アイドル条件を満たしていることを検出する条件成立検出部と、
前記アドレス一致検出部および前記条件成立検出部による検出が一定のクロック数毎に繰り返されていることを検出するループ検出部とを含む
ことを特徴とするアイドル状態検出回路。
【請求項３】
請求項１において、
前記アイドル条件は、前記プロセッサによる前回のロードにおいて前記プロセッサによってロードされたデータに一致するという条件である
ことを特徴とするアイドル状態検出回路。
【請求項４】
請求項１において、
前記アイドル条件は、予め設定された所定値よりも大きいという条件である
ことを特徴とするアイドル状態検出回路。
【請求項５】
請求項１において、
前記アイドル条件は、予め設定された所定値よりも小さいという条件である
ことを特徴とするアイドル状態検出回路。
【請求項６】
請求項１において、
前記規定回数は、任意に設定可能である
ことを特徴とするアイドル状態検出回路。
【請求項７】
請求項１において、
前記特定のアドレスは、予め指定されたアドレス領域に含まれるアドレスである
ことを特徴とするアイドル状態検出回路。
【請求項８】
請求項１において、
前記一定のクロック数は、任意に設定可能である
ことを特徴とするアイドル状態検出回路。
【請求項９】
請求項１において、
前記判定部によって前記プロセッサがアイドル状態であると判定された場合に前記プロセッサによって参照されたアドレスを記憶するアイドル履歴記憶部をさらに備え、
前記判定部は、前記プロセッサによって参照されたアドレスが前記アイドル履歴記憶部によって記憶されたアドレスに一致することを検出した場合に、前記繰り返しの回数と前記規定回数とを比較することなく、前記プロセッサがアイドル状態であると判定する
ことを特徴とするアイドル状態検出回路。
【請求項１０】
請求項１において、
前記判定部は、前記プロセッサによって参照されたアドレスが前記特定のアドレスに一致しないことおよび前記プロセッサによってロードされたデータが前記アイドル条件を満たさないことの少なくとも一方を検出した場合に、前記プロセッサがアイドル状態ではないと判定する
ことを特徴とするアイドル状態検出回路。
【請求項１１】
請求項１に記載のアイドル状態検出回路と、
前記プロセッサと、
前記プロセッサを駆動させるためのクロック信号および駆動電圧を前記プロセッサに供給する駆動回路とを備え、
前記駆動回路は、前記判定部によって前記プロセッサがアイドル状態であると判定された場合に、前記クロック信号の周波数および前記駆動電圧の電圧値のうち少なくとも一方を低下させる
ことを特徴とする半導体集積回路。
【請求項１２】
プロセッサのアイドル状態を検出する方法であって、
特定のアドレスから予め設定されたアイドル条件を満たしているデータをロードする動作を前記プロセッサが一定のクロック数毎に繰り返していることを検出するステップ（ａ）と、
前記ステップ（ａ）によって検出された繰り返しの回数が予め設定された規定回数を超えている場合に前記プロセッサがアイドル状態であると判定するステップ（ｂ）とを備える
ことを特徴とするアイドル状態検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プロセッサのアイドル状態を検出する回路および方法に関する。
【背景技術】
【０００２】
近年、プロセッサの高速化はますます進展しており、それに伴いプロセッサの動作電力は大きくなってきている。しかし、携帯電話等のモバイルデバイスは電池で動作するので、長時間の連続使用を可能とするためには、消費電力を低く抑える必要がある。また、モバイルデバイス以外においても放熱の問題などもあり、いかにしてプロセッサの電力を抑えるかが現在のＬＳＩ設計において、非常に重要な課題となっている。
【０００３】
プロセッサの消費電力を抑えるための有効な手段の１つとして、プロセッサの動作周波数を下げるという手法がある。しかし、当然のことながら動作周波数を下げるということはプロセッサの処理性能を下げるということであり、単純に周波数を下げた場合には製品の性能低下を招いてしまう。
【０００４】
一方、プロセッサの動作状況を調べてみると、プロセッサが外部からの指示（例えば、キー入力やマウス操作など）を待っている状態（すなわち、アイドル状態）になっている期間がある。プロセッサがアイドル状態である期間にプロセッサの動作周波数を下げても、ユーザーに与える影響は極めて小さい。したがって、プロセッサのアイドル状態を検出してプロセッサの動作周波数を低下させることで、実使用上の性能を劣化させることなく、プロセッサの消費電力を低減することが可能となる。
【０００５】
ここで、図８を参照しつつ、プロセッサのアイドル状態について説明する。まず、プロセッサは、ある処理が完了すると、実行すべき処理が残っているか否かを判断する（ステップＳＴ８１）。実行すべき処理が残っている場合、プロセッサは、その実行すべき処理を実行する。一方、実行すべき処理が残っていない場合には、プロセッサは、キー入力Ｉ／Ｆのレジスタ値をロードする（ステップＳＴ８２）。次に、プロセッサは、ロードされたレジスタ値が「キー入力あり」を示しているか否かを判断する（ステップＳＴ８３）。レジスタ値が「キー入力あり」を示している場合には、プロセッサは、そのキー入力に従って処理を実施する。一方、レジスタ値が「キー入力なし」を示している場合には、再び、キー入力Ｉ／Ｆのレジスタ値をロードする。このように、プロセッサは、キー入力があるまでステップＳＴ８２，ＳＴ８３の処理を繰り返して実行する。この繰り返し状態がアイドル状態である。
【０００６】
従来、ソフトウェアを使用してプロセッサのアイドル状態を検出するアイドル状態検出手法がある。この手法では、プロセッサが外部からの指示待ちになった場合にプロセッサがアイドル状態であることを示すフラグが立つようにソフトウェアが設計されている。しかし、このようなソフトウエアを設計するためには、どのような処理の場合にプロセッサがアイドル状態になるのかをソフトウェア設計者が検証する必要があるので、設計工数の増大を招く。
【０００７】
また、特許文献１には、ハードウェアを使用してプロセッサのアイドル状態を検出するアイドル状態検出装置が開示されている。このアイドル状態検出装置では、プロセッサによって参照される命令アドレスを予め記憶しておき、プロセッサが一定の周期ごとに同一の命令アドレスを参照した場合にプロセッサがループ処理を実行していると判断してループ実行回数をカウントアップしていく。そして、ループ実行回数がある規定ループ回数を越えた場合に、そのプロセッサがアイドル状態であると判定する。
【特許文献１】特開平８−１２３５７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のアイドル状態検出装置では、プロセッサがループ処理を実行している場合に、その処理が本来はアイドル状態ではない場合であってもプロセッサがアイドル状態であると誤検出されてしまう可能性があった。例えば、このような誤検出の可能性がある処理として、コピー処理が挙げられる。
【０００９】
ここで、図９を参照しつつ、プロセッサによるコピー処理について説明する。なお、ここでは、レジスタＡ，レジスタＢ，レジスタＣには、それぞれ、コピー元アドレス，コピー先アドレス，終了アドレスが格納されているものとする。
【００１０】
まず、プロセッサは、レジスタＡを参照して、コピー元アドレスに格納されているデータをロードする（ＳＴ９１）。次に、プロセッサは、レジスタＢを参照して、ロードされたデータをコピー先アドレスに格納する（ＳＴ９２）。次に、プロセッサは、レジスタＡに格納されたコピー元アドレスおよびレジスタＢに格納されたコピー先アドレスをそれぞれインクリメントする（ＳＴ９３）。次に、プロセッサは、レジスタＡおよびレジスタＣを参照して、レジスタＡに格納されたコピー元アドレスとレジスタＣに格納された終了アドレスとを比較する（ＳＴ９４）。コピー元アドレスと終了アドレスとが一致する場合にはコピー処理を終了し、一致しない場合にはステップＳＴ９１に戻る（ＳＴ９５）。このように、コピー元アドレスと終了アドレスとが一致するまでステップＳＴ９１〜ＳＴ９５の処理が一定のサイクル毎に繰り返し実行される。
【００１１】
このようなループ処理では、プロセッサが一定の周期ごとに同一の命令アドレスを参照しているので、従来のアイドル状態検出装置がプロセッサのアイドル状態を誤検出する可能性があった。
【００１２】
そこで、この発明は、プロセッサのアイドル状態を正確に検出できる技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
この発明の１つの局面に従うと、アイドル状態検出回路は、プロセッサのアイドル状態を検出する回路であって、特定のアドレスから予め設定されたアイドル条件を満たしているデータをロードする動作を上記プロセッサが一定のクロック数毎に繰り返していることを検出する反復動作検出部と、上記反復動作検出部によって検出された繰り返しの回数と予め設定された規定回数とを比較し、上記繰り返しの回数が上記規定回数よりも多い場合に上記プロセッサがアイドル状態であると判定する判定部とを備える。このアイドル状態検出回路では、従来のような誤検出を防止できるので、プロセッサのアイドル状態を正確に検出できる。
【００１４】
この発明のもう１つの局面に従うと、半導体集積回路は、上記アイドル状態検出回路と、上記プロセッサと、上記プロセッサを駆動させるためのクロック信号および駆動電圧を上記プロセッサに供給する駆動回路とを備え、上記駆動回路は、上記判定部によって上記プロセッサがアイドル状態であると判定された場合に、上記クロック信号の周波数および上記駆動電圧の電圧値のうち少なくとも一方を低下させる。この半導体集積回路では、プロセッサにおける消費電力の浪費を低減できる。
【００１５】
この発明のさらにもう１つの局面に従うと、アイドル状態検出方法は、プロセッサのアイドル状態を検出する方法であって、特定のアドレスから予め設定されたアイドル条件を満たしているデータをロードする動作を上記プロセッサが一定のクロック数毎に繰り返していることを検出するステップ（ａ）と、上記ステップ（ａ）によって検出された繰り返しの回数が予め設定された規定回数を超えている場合に上記プロセッサがアイドル状態であると判定するステップ（ｂ）とを備える。このアイドル状態検出方法では、従来のような誤検出を防止できるので、プロセッサのアイドル状態を正確に検出できる。
【発明の効果】
【００１６】
以上のように、プロセッサのアイドル状態を正確に検出できる。
【発明を実施するための最良の形態】
【００１７】
以下、この発明の実施の形態を図面を参照して詳しく説明する。なお、図中同一または相当部分には同一の符号を付しその説明は繰り返さない。
【００１８】
（実施形態１）
図１は、この発明の実施形態１による半導体集積回路１の構成を示す。半導体集積回路１は、キーボード２１，マウス２２，ディスプレイ２３などの周辺デバイスを含むプログラム実行装置の一部として利用される。また、半導体集積回路１は、プロセッサ１１と、データを格納するデータメモリ１２と、命令を格納する命令メモリ１３と、キーボード２１およびマウス２２に接続されるキー入力Ｉ／Ｆ１４と、ディスプレイ２３に接続される画像Ｉ／Ｆ１５と、プロセッサ１１のアイドル状態を検出するアイドル状態検出回路１０と、プロセッサ１１を駆動させるためのクロック信号ＣＬＫを供給するクロック供給部１６と、プロセッサ１１を駆動させるための駆動電圧ＶＤを供給する電圧供給部１７とを備える。
【００１９】
〈プロセッサ〉
プロセッサ１１は、プログラムを実行するために、自己の内部に設けられたプログラムカウンタ（図示せず）が示す命令アドレスに格納された命令を転送することを命令メモリに要求する。命令メモリ１３は、プロセッサ１１からの要求に応答して、命令アドレスに格納された命令をプロセッサ１１に転送する。次に、プロセッサ１１は、命令メモリ１３から転送された命令を実行し、次に必要となる命令を転送することを命令メモリ１３に要求する。このようにして、プロセッサ１１は、プログラムを実行していく。
【００２０】
また、プロセッサ１１がデータメモリ１２や周辺デバイス（ここでは、キーボード２１，マウス２２，ディスプレイ２３）からデータを読み出す場合、プロセッサ１１は、データメモリ１２や、キー入力Ｉ／Ｆ１４，画像Ｉ／Ｆ１５を介して周辺デバイスにデータ要求を通知する。例えば、プロセッサ１１は、命令メモリ１３から転送された命令に従って、その命令によって示されたアドレスに格納されたデータを転送することをデータメモリ１２や周辺デバイスに要求する。データメモリ１２や周辺デバイスは、プロセッサ１１からのデータ要求に応答して、プロセッサ１１に要求されたデータをプロセッサ１１に転送する。
【００２１】
一方、プロセッサ１１がデータメモリ１２や周辺デバイスにデータを書き込む場合、プロセッサ１１は、書き込むべきデータとそのデータを書き込むべきアドレスとをデータメモリ１２や周辺デバイスに転送する。データメモリ１２や周辺デバイスは、プロセッサ１１から転送されたデータをプロセッサ１１によって指定されたアドレスに格納する。
【００２２】
使用者は、キーボード２１やマウス２２を用いて各種操作を実行する。キーボード２１やマウス２２に対して実行した操作内容は、キー入力Ｉ／Ｆ１４を介してプロセッサ１１に通達される。また、使用者は、プロセッサ１１による処理結果などを、画像Ｉ／Ｆを介して接続されたディスプレイ２３で確認する。
【００２３】
〈プロセッサのアイドル状態〉
ここで、図２を参照して、プロセッサ１１のアイドル状態（外部からの指示待ち状態）について詳しく説明する。なお、ここでは、説明の簡略化のために、外部からの指示の有無を示すデータが格納される特定のアドレスを“アドレスＡ”とし、アドレスＡに格納されたデータは、外部からの指示がない場合には“０”を示し、外部からの別の処理を実行するように指示があった場合には“１”を示すものとする。
【００２４】
まず、プロセッサ１１は、アドレスＡに格納されたデータをロードし（ステップＳＴ１１）、ロードされたデータと所定値（ここでは、“１”）とを比較する（ステップＳＴ１２）。ロードされたデータと所定値とが一致しない場合には、ステップＳＴ１１に戻る。このように、ロードデータと所定値とが一致するまで（すなわち、外部からの指示があるまで）、ステップＳＴ１１，ＳＴ１２，ＳＴ１３の処理が繰り返し実行される。
【００２５】
〈アイドル状態検出回路〉
図１に戻って、アイドル状態検出回路１０は、ロードアドレス記憶部１０１と、比較部１０２と、ロードデータ記憶部１０３と、比較部１０４と、サイクルカウンタ１０５と、比較部１０６と、制御部１０７と、ループ回数記憶部１０８と、比較部１０９とを含む。
【００２６】
ロードアドレス記憶部１０１は、制御部１０７による制御に応答して、プロセッサ１１によって参照されたアドレス（プロセッサ１１によってデータがロードされたアドレス）を記憶する。比較部１０２は、プロセッサ１１によって参照されたアドレスとロードアドレス記憶部１０１に記憶されたアドレスとを比較する。
【００２７】
ロードデータ記憶部１０３は、制御部１０７による制御に応答して、プロセッサ１１によってロードされたデータを記憶する。比較部１０４は、プロセッサによってロードされたデータとロードデータ記憶部１０３に記憶されたデータとを比較する。
【００２８】
サイクルカウンタ１０５は、制御部１０７による制御に応答して、プロセッサ１１に供給されるクロック信号のクロックサイクル数をカウントする。比較部１０６は、サイクルカウンタ１０５によってカウントされたクロックサイクル数と予め設定された規定サイクル数ＣＫＸとを比較する。
【００２９】
制御部１０７は、ロードアドレス記憶部１０１，ロードデータ記憶部１０３，およびサイクルカウンタ１０５を制御する。また、制御部１０７は、比較部１０２，１０４，１０６のそれぞれの比較結果に応じて、ループ回数記憶部１０８に記憶されたループ回数に“１”を加算する（ループ回数をインクリメントする）。比較部１０９は、ループ回数記憶部１０８に記憶されたループ回数と予め設定された規定回数ＬＰＸとを比較し、ループ回数が規定回数ＬＰＸよりも多い場合にはアイドル状態通知信号Ｓ１０９をアサートし、ループ回数が規定回数ＬＰＸよりも少ないかまたは等しい場合にはアイドル状態通知信号Ｓ１０９をネゲートする。
【００３０】
〈クロック供給部，電圧供給部〉
クロック供給部１６は、アイドル状態通知信号Ｓ１０９がネゲートからアサートに遷移するとクロック信号ＣＬＫの周波数を低下させ、アイドル状態通知信号Ｓ１０９がアサートからネゲートに遷移するとクロック信号ＣＬＫの周波数を元に戻す。
【００３１】
電圧供給部１７は、アイドル状態通知信号Ｓ１０９がネゲートからアサートに遷移すると駆動電圧ＶＤの電圧値を低下させ、アイドル状態通知信号Ｓ１０９がアサートからネゲートに遷移すると駆動電圧ＶＤの電圧値を元に戻す。
【００３２】
〈アイドル状態検出回路の動作〉
次に、図３を参照して、図１に示したアイドル状態検出回路の動作について説明する。
【００３３】
〔ステップＳＴ１０１，ＳＴ１０２〕
まず、制御部１０７は、ロードアドレス記憶部１０１，ロードデータ記憶部１０３，およびループ回数記憶部１０８のそれぞれの記憶値をクリアする（ＳＴ１０１）。次に、制御部１０７は、プロセッサ１１がロードを実行したか否かを監視する（ＳＴ１０２）。
【００３４】
〔ステップＳＴ１０３〕
プロセッサ１１がロードを実行した場合、制御部１０７は、ロードアドレス記憶部１０１およびロードデータ記憶部１０３のそれぞれの記憶値を参照して、前回のロードアドレス（プロセッサ１１による前回のロード処理においてプロセッサ１１によって参照されたアドレス）および前回のロードデータ（プロセッサ１１による前回のロード処理においてプロセッサ１１によってロードされたデータ）がロードアドレス記憶部１０１およびロードデータ記憶部１０３にそれぞれ記憶されているか否か判断する。
【００３５】
〔ステップＳＴ１０４〕
前回のロードアドレスおよび前回のロードデータは記憶されている場合（例えば、プロセッサ１１によってロードが２回以上実行された場合）、制御部１０７は、比較部１０２による比較結果を参照して、今回のロードアドレス（プロセッサ１１による今回のロード処理においてプロセッサ１１によって参照されたアドレス）とロードアドレス記憶部１０１に記憶された前回のロードアドレスとが一致するか否かを判断する。
【００３６】
〔ステップＳＴ１０５〕
今回のロードアドレスと前回のロードアドレスとが一致する場合、制御部１０７は、比較部１０４による比較結果を参照して、今回のロードデータとロードデータ記憶部１０３に記憶された前回のロードデータとが一致するか否かを判断する。
【００３７】
〔ステップＳＴ１０６〕
今回のロードデータと前回のロードデータとが一致する場合、制御部１０７は、ロードアドレス記憶部１０１に今回のロードアドレスをループ判定アドレスとして記憶させ、ロードデータ記憶部１０３に今回のロードデータをループ判定データとして記憶させる。
【００３８】
〔ステップＳＴ１０７〕
一方、前回のロードアドレスおよび前回のロードデータは記憶されていない場合（例えば、プロセッサ１１によって初めてロードが実行された場合）、今回のロードアドレスと前回のロードアドレスとが一致しない場合、または、今回のロードデータと前回のロードデータとが一致しない場合、制御部１０７は、ロードアドレス記憶部１０１に今回のロードアドレスを記憶させるとともにロードデータ記憶部１０３に今回のロードアドレスを記憶させる。次に、ステップＳＴ１０２へ進む。
【００３９】
〔ステップＳＴ１０８，ＳＴ１０９〕
ステップＳＴ１０６においてロードアドレス記憶部１０１，ロードデータ記憶部１０３にループ判定アドレス，ループ判定データをそれぞれ記憶させた後、制御部１０７は、サイクルカウンタ１０５のカウント値をクリアする（ＳＴ１０８）。次に、制御部１０７は、プロセッサ１１がロードを実行したか否か監視する（ＳＴ１０９）。
【００４０】
〔ステップＳＴ１１０〕
プロセッサ１１がロードを実行した場合には、制御部１０７は、比較部１０２による比較結果を参照して、今回のロードアドレスとロードアドレス記憶部１０１に記憶されたループ判定アドレスとが一致するか否かを判断する。
【００４１】
〔ステップＳＴ１１１〕
今回のロードアドレスとループ判定アドレスとが一致する場合、制御部１０７は、比較部１０４による比較結果を参照して、今回のロードデータとロードデータ記憶部１０３に記憶されたループ判定データとが一致するか否かを判断する。
【００４２】
〔ステップＳＴ１１２〕
今回のロードデータとループ判定データとが一致する場合、制御部１０７は、比較部１０６による比較結果を参照して、サイクルカウンタ１０５のカウント値が規定サイクル数ＣＫＸよりも多いか否かを判断する。
【００４３】
〔ステップＳＴ１１３，ＳＴ１１４，ＳＴ１１５〕
サイクルカウンタ１０５のカウント値が規定サイクル数ＣＫＸよりも小さいまたは等しい場合、制御部１０７は、ループ回数記憶部１０８に記憶されたループ回数をインクリメントする（ＳＴ１１３）。また、制御部１０７は、サイクルカウンタ１０５のカウント値をクリアする（ＳＴ１１４）。次に、比較部１０９は、ループ回数記憶部１０８に記憶されたループ回数と規定回数ＬＰＸとを比較する（ＳＴ１１５）。
【００４４】
〔ステップＳＴ１１６〕
ループ回数記憶部１０８に記憶されたループ回数が規定回数ＬＰＸよりも多い場合、比較部１０９は、アイドル状態通知信号Ｓ１０９をアサートする。次に、ステップＳＴ１０９ヘ進む。
【００４５】
〔ステップＳＴ１１７〕
一方、今回のロードアドレスとループ判定アドレスとが一致しない場合、または、今回のロードデータとループ判定データとが一致しない場合、制御部１０７は、サイクルカウンタ１０５のカウント値が規定サイクル数ＣＫＸよりも多いか否かを判断する。
【００４６】
〔ステップＳＴ１１８〕
サイクルカウンタ１０５のカウント値が規定サイクル数ＣＫＸよりも多い場合、制御部１０７は、ループ回数記憶部１０８に記憶されたループ回数をクリアする。これにより、比較部１０９は、アイドル状態通知信号Ｓ１０９をネゲートする。次に、ステップＳＴ１０２へ進む。
【００４７】
以上のように、ループ判定アドレスと同一のアドレスからループ判定データと同一のデータをロードする処理をプロセッサ１１が一定のクロック数毎に繰り返していることを検出し、その繰り返しの回数が規定回数ＣＫＸよりも多くなると、アイドル状態通知信号Ｓ１０９をアサートする。これにより、従来のような誤検出を防止できるので、プロセッサ１１のアイドル状態を正確に検出できる。
【００４８】
また、クロック供給部１６および電圧供給部１７が、それぞれ、アイドル状態通知信号Ｓ１０９に応答してクロック信号ＣＬＫの周波数および駆動電圧ＶＤの電圧値を低下させることにより、プロセッサ１１における消費電力の浪費を低減できる。なお、クロック信号ＣＬＫの周波数および駆動電圧ＶＤの電圧値のいずれか一方を低下させた場合でも、プロセッサ１１における消費電力の浪費を低減することは可能である。
【００４９】
さらに、既存のソフトウェアを変更することなく、プロセッサを低電力化することが可能であり、開発コストを低く抑えられる。
【００５０】
（実施形態２）
図４は、この発明の実施形態２による半導体集積回路２の構成を示す。この半導体集積回路２は、図１に示したアイドル状態検出回路２０に代えて、アイドル状態検出回路２０を備える。その他の構成は図１と同様である。アイドル状態検出回路２０は、図１に示した構成に加えて、比較部２０１を含む。
【００５１】
比較部２０１は、プロセッサ１１によって参照されたアドレス（ロードアドレス）と予め設定された指定アドレス領域ＡＤＤとを比較し、ロードアドレスが指定アドレス領域ＡＤＤに含まれる場合にはロードアドレスをロードアドレス記憶部１０１に転送する。
【００５２】
次に、図５を参照しつつ、図４に示したアイドル状態検出回路２０の動作について説明する。図５のように、アイドル状態検出回路２０は、図３に示したステップＳＴ１０１〜ＳＴ１１８に加えて、ステップＳＴ２０１を実行する。
【００５３】
〔ステップＳＴ２０１〕
比較部２０１は、今回のロードアドレスと指定アドレス領域ＡＤＤとを比較する。今回のロードアドレスが指定アドレス領域ＡＤＤに含まれる場合には、ステップＳＴ１０７へ進み、そうでない場合にはステップＳＴ１０２へ進む。
【００５４】
ステップＳＴ１０７では、制御部１０７は、比較部２０１によって転送された今回のロードアドレスをロードアドレス記憶部１０１に記憶させるとともに、今回のロードデータをロードデータ記憶部１０３に記憶させる。次に、ステップＳＴ１０２へ進む。
【００５５】
以上のように、ロードアドレスが指定アドレス領域ＡＤＤに含まれる場合にはロードアドレスおよびロードデータが記憶されるが、ロードアドレスが指定アドレス領域ＡＤＤに含まれない場合にはロードアドレスおよびロードデータが記憶されない。このように、アイドル状態を検出するためのロードアドレスを制限することにより、プロセッサ１１のアイドル状態をさらに正確に検出できる。例えば、キー入力Ｉ／Ｆのレジスタのアドレスを含むがＦＩＦＯメモリのアドレスを含まないアドレス領域を指定アドレス領域ＡＤＤとして設定することにより、ＦＩＦＯメモリからデータを連続してロードする場合をアイドル状態として誤検出してしまうことを防止できるとともに、キー入力Ｉ／Ｆのレジスタのアドレスを連続して参照する動作をアイドル状態として検出できる。
【００５６】
なお、指定アドレス領域ＡＤＤは、固定値であっても良いし、任意に設定可能な値であっても良い。例えば、設定レジスタ等を設けて使用者によって指定アドレス領域ＡＤＤを自由に設定できるようにしても良い。
【００５７】
（実施形態３）
図６は、この発明の実施形態３による半導体集積回路３の構成を示す。この半導体集積回路３は、図１に示したアイドル状態検出回路１０に代えてアイドル状態検出回路３０を備える。その他の構成は図１と同様である。アイドル状態検出回路３０は、図１に示した構成に加えて、アイドル履歴記憶部３０１と、比較部３０２とを含む。
【００５８】
アイドル履歴記憶部３０１は、制御部１０７による制御に応答して、プロセッサ１１によって参照されたアドレスをアイドル履歴アドレスとして記憶する。比較部３０２は、プロセッサ１１によって参照されたアドレスとアイドル履歴記憶部３０１に記憶されたアイドル履歴アドレスとを比較する。
【００５９】
次に、図７を参照しつつ、図６に示したアイドル状態検出回路３０の動作について説明する。図７のように、アイドル状態検出回路３０は、図３に示したステップＳＴ１０１に代えてステップＳＴ３０１を実行するとともにステップＳＴ３０２〜ＳＴ３０５をさらに実行する。
【００６０】
〔ステップＳＴ３０１〕
まず、制御部１０７は、ロードアドレス記憶部１０１，ロードデータ記憶部１０３，ループ回数記憶部１０８のそれぞれの記憶値をクリアするとともに、アイドル履歴記憶部３０１の記憶値をクリアする。次に、ステップＳＴ１０２へ進む。ステップＳＴ１０２では、制御部１０７は、プロセッサ１１がロードを実行したか否かを監視する。
【００６１】
〔ステップＳＴ３０２〕
プロセッサ１１がロードを実行した場合、制御部１０７は、比較部３０２による比較結果を参照して、今回のロードアドレスとアイドル履歴記憶部３０１に記憶されたアイドル履歴アドレスとが一致するか否かを判断する。
【００６２】
〔ステップＳＴ３０３〕
今回のロードアドレスとアイドル履歴アドレスとが一致しない場合（例えば、アイドル履歴アドレスが記憶されていない場合）、制御部１０７は、アイドル状態通知信号Ｓ１０９がネゲートするようにループ回数記憶部１０８を制御する。次に、ステップＳＴ１０３へ進み、ステップＳＴ１０３〜ＳＴ１１５の処理が実行される。ステップＳＴ１１５では、比較部１０９は、ループ回数記憶部１０８に記憶されたループ回数と規定回数ＬＰＸとを比較する。
【００６３】
〔ステップＳＴ３０４〕
ループ回数記憶部１０８に記憶されたループ回数が規定回数ＬＰＸよりも多い場合、制御部１０７は、アイドル履歴記憶部３０２に今回のロードアドレスをアイドル履歴アドレスとして記憶させる。次に、ステップＳＴ１１６へ進む。
【００６４】
〔ステップＳＴ３０５〕
一方、今回のロードアドレスとアイドル履歴アドレスとが一致する場合、制御部１０７は、ループ回数記憶部１０８に設定されたループ回数が規定回数ＬＰＸよりも多くなるようにループ回数を設定する。これにより、比較部１０９は、アイドル状態通知信号Ｓ１０９をアサートする。次に、ステップＳＴ１０２へ進む。
【００６５】
以上のように、プロセッサ１１がアイドル状態である場合にロードアドレスをアイドル履歴アドレスとして記憶することにより、プロセッサ１１のアイドル状態が一旦解除された後に、プロセッサ１１がアイドル履歴アドレスと同一のアドレスを参照した場合にプロセッサ１１がアイドル状態になることを予測できる。また、プロセッサ１１がアイドル履歴アドレスと同一のアドレスを参照した場合に、ステップＳＴ１０３〜ＳＴ１１６の処理を実行することなくアイドル状態通知信号Ｓ１０９をアサートすることにより、プロセッサ１１のアイドル状態を素早く検出でき、プロセッサ１１を素早く低電力化させることができる。
【００６６】
（アイドル条件）
なお、以上の各実施形態において、制御部１０７は、ステップＳＴ１０５，ＳＴ１１１で今回のロードデータが予め設定されたアイドル条件を満たすか否かを判断するものであっても良い。
【００６７】
例えば、特定のアドレスに格納されたデータが所定値よりも大きい場合にプロセッサがアイドル状態となるシステムにアイドル状態検出回路を適用する場合、「所定値よりも大きい」という条件をアイドル条件として設定しても良い。具体的には、クロックサイクル毎にカウントダウンするタイマーを使用したウェイト処理が考えられる。このようなウェイト処理では、タイマーのカウント値が初期値（例えば、１０００）から所定値（例えば、５００）になるまでプロセッサ１１を待機させる。この場合、プロセッサ１１は、タイマーのカウント値が初期値から所定値になるまでの間、タイマーの値を参照する処理を繰り返し実行することになる。そこで、ステップＳＴ１０１，ＳＴ１０５〜ＳＴ１０７，ＳＴ１１１を、それぞれ、次のステップＳＴ１０１’，ＳＴ１０５’〜ＳＴ１０７’，ＳＴ１１１’に置き換えることにより、プロセッサのウェイト処理をアイドル状態して検出できる。
【００６８】
〔ステップＳＴ１０１’〕
制御部１０７は、ロードアドレス記憶部１０１およびループ回数記憶部１０８のそれぞれの記憶値をクリアするとともに、ロードデータ記憶部１０３に所定値（例えば、５００）を記憶させる。なお、この所定値は、固定値であっても良いし、任意に設定可能な値であっても良い。
【００６９】
〔ステップＳＴ１０５’〕
制御部１０７は、比較部１０４による比較結果を参照して、今回のロードデータが所定値よりも大きいか否かを判断する。今回のロードデータが所定値よりも大きい場合にはステップＳＴ１０６’へ進み、そうでない場合は、ステップＳＴ１０７’へ進む。
【００７０】
〔ステップＳＴ１０６’〕
制御部１０７は、ロードデータ記憶部１０１に今回のロードアドレスをループ判定アドレスとして記憶させる。
【００７１】
〔ステップＳＴ１０７’〕
制御部１０７は、今回のロードアドレスをロードアドレス記憶部１０１に記憶させる。次に、ステップＳＴ１０２へ進む。
【００７２】
〔ステップＳＴ１１１’〕
制御部１０７は、比較部１０４による比較結果を参照して、今回のロードデータが所定値よりも大きいか否かを判断する。今回のロードデータが所定値よりも大きい場合にはステップＳＴ１１２へ進み、そうでない場合は、ステップＳＴ１１７へ進む。
【００７３】
また、特定のアドレスに格納されたデータが所定値よりも小さい場合にプロセッサがアイドル状態となるシステムにアイドル状態検出回路を適用する場合、「所定値よりも小さい」という条件をアイドル条件として設定しても良い。具体的には、クロックサイクル毎にカウントアップするタイマーを使用したウェイト処理が考えられる。この場合も、プロセッサ１１は、タイマーのカウント値が初期値（例えば、１０００）から所定値（例えば、５００）になるまでの間、タイマーの値を参照する処理を繰り返し実行することになる。そこで、ステップＳＴ１０１，ＳＴ１０５〜ＳＴ１０７，ＳＴ１１１を、それぞれ、上記のステップＳＴ１０１’，ＳＴ１０５’〜ＳＴ１０７’，ＳＴ１１１’に置き換える（但し、ステップＳＴ１０５’，ＳＴ１１１’については「所定値よりも大きい」を「所定値より小さい」に置き換える）ことにより、プロセッサのウェイト処理をアイドル状態して検出できる。
【００７４】
（規定サイクル数ＣＫＸ）
また、以上の各実施形態において、規定サイクル数ＣＫＸは、固定値であっても良いし、任意に設定可能な値であっても良い。例えば、設定レジスタ等を設けて使用者によって規定サイクル数ＣＫＸを自由に設定できるようにしても良い。例えば、図２に示した外部からの指示の有無を確認する処理においてステップＳＴ１３からステップＳＴ１１に戻る前に所定の処理Ａを繰り返し実行する場合、処理Ａに要する時間よりも短くなるように規定サイクル数ＣＫＸを設定することにより、プロセッサ１１のアイドル状態を誤検出することを防止できる。
【００７５】
（規定回数ＬＰＸ）
さらに、以上の各実施形態において、規定回数ＬＰＸは、固定値であっても良いし、任意に設定可能な値であっても良い。例えば、ＦＩＦＯメモリからデータをロードする場合、ＦＩＦＯメモリに書き込まれた順番でＦＩＦＯメモリからデータが読み出されるので、プロセッサ１１は、ＦＩＦＯメモリのアドレスを参照する処理を繰り返し実行することになる。ここで、ＦＩＦＯメモリに書き込まれたデータが全て“０”である場合、プロセッサ１１は、同一のアドレスから同一のデータをロードする処理を繰り返し実行することになる。この場合、プロセッサ１１のアイドル状態が誤検出されてしまう可能性がある。そこで、規定回数ＬＰＸをＦＩＦＯメモリの総エントリ数以上の値に設定することにより、ＦＩＦＯメモリからデータをロードする処理がアイドル状態であると誤検出されることを防止できる。
【産業上の利用可能性】
【００７６】
この発明によるアイドル状態検出装置および方法は、プロセッサのアイドル状態を正確に検出できるので、プロセッサの低電力化技術などに有用である。
【図面の簡単な説明】
【００７７】
【図１】この発明の実施形態１による半導体集積回路の構成図。
【図２】図１に示したプロセッサのアイドル状態について説明するためのフローチャート。
【図３】図１に示したアイドル状態検出回路の動作について説明するためのフローチャート。
【図４】この発明の実施形態２による半導体集積回路の構成図。
【図５】図４に示したアイドル状態検出回路の動作について説明するためのフローチャート。
【図６】この発明の実施形態３による半導体集積回路の構成図。
【図７】図６に示したアイドル状態検出回路の動作について説明するためのフローチャート。
【図８】プロセッサのアイドル状態について説明するためのフローチャート。
【図９】プロセッサによるコピー処理について説明するためのフローチャート。
【符号の説明】
【００７８】
１，２，３    半導体集積回路
１０，２０，３０    アイドル状態検出回路
１１    プロセッサ
１２    データメモリ
１３    命令メモリ
１４    キー入力Ｉ／Ｆ
１５    画像Ｉ／Ｆ
１６    クロック生成部
１７    電力供給部
２１    キーボード
２２    マウス
２３    ディスプレイ
１０１    ロードアドレス記憶部
１０２    比較部
１０３    ロードデータ記憶部
１０４    比較部
１０５    サイクルカウンタ
１０６    比較部
１０７    制御部
１０８    ループ回数記憶部
１０９    比較部
２０１    比較部
３０１    アイドル履歴記憶部
３０２    比較部
【図１】
2010122960.tif 000003
【図２】
2010122960.tif 000004
【図３】
2010122960.tif 000005
【図４】
2010122960.tif 000006
【図５】
2010122960.tif 000007
【図６】
2010122960.tif 000008
【図７】
2010122960.tif 000009
【図８】
2010122960.tif 000010
【図９】
2010122960.tif 000011