(57)【特許請求の範囲】
【請求項１】
第１の期間、プロセッサに第１の動作電圧を供給するステップ（４０２）と、
前記第１の期間に、前記プロセッサで命令を実行するステップ（４０４）と、
前記第１の期間にモード変化指標を受け取る（４０６）と、第２の期間、前記プロセッサに、前記第１の動作電圧よりも低い保持電圧を供給するステップ（４０８）であって、前記第２の期間、前記プロセッサは保持状態にあるステップと、
前記第２の期間に第１のキャッシュメッセージを受け取る（４１０）と、第３の期間、前記プロセッサに、前記第１の動作電圧よりも低く、前記保持電圧よりも高い第２の動作電圧を供給するステップ（４１２）と、
前記第３の期間に、前記第１のキャッシュメッセージを処理するステップ（４１４）とを含む方法。
【請求項２】
前記キャッシュメッセージはキャッシュコヒーレンシメッセージである請求項１に記載の方法。
【請求項３】
前記キャッシュメッセージの処理が完了すると、第４の期間、前記プロセッサに前記保持電圧を供給するステップ（４１６）を更に含む、請求項１に記載の方法。
【請求項４】
前記第４の期間に、第２のキャッシュメッセージを受け取るステップ（２０６）と、
前記第２のキャッシュメッセージを受け取ると、第５の期間、前記第２の動作電圧を供給するステップ（２０８）とを更に含む、請求項３に記載の方法。
【請求項５】
前記第１の期間、前記プロセッサに第１の周波数を有するクロック信号を供給する（１６０）ステップと、
前記第３の期間、前記プロセッサに第２の周波数を有するクロック信号を供給する（１６０）ステップとを更に含む、請求項１に記載の方法。
【請求項６】
受け取ったキャッシュメッセージの数を基に前記第２の周波数を決定するステップを更に含む、請求項５に記載の方法。
【請求項７】
前記第２の周波数を決定するステップは、第１の時間期間に受け取ったキャッシュメッセージの数を基に前記第２の周波数を決定するステップを含む、請求項６に記載の方法。
【請求項８】
プロセッサコアおよびキャッシュを有するプロセッサ（１０２）と、
前記プロセッサの動作モードを制御するように構成されたモード制御モジュール（１４０）と、
前記モード制御モジュールが前記プロセッサのアクティブモードを指示すると、前記プロセッサの動作電圧を第１の電圧に設定し、
前記モード制御モジュールが、前記プロセッサがキャッシュメッセージを処理することが可能な前記プロセッサの低処理モードを指示すると、前記プロセッサの前記動作電圧を前記第１の電圧よりも低い第２の電圧に設定し、
前記モード制御モジュールが、前記プロセッサを保持モードにすることを指示すると、前記動作電圧を前記第２の電圧よりも低い第３の電圧に設定するように構成された電圧調整器（１３０）と、
を備え、
前記モード制御モジュールは、前記プロセッサが前記保持モードのときに前記プロセッサがキャッシュメッセージを受け取ると、前記動作モードを前記低処理モードに設定するように構成されている、
デバイス。
【請求項９】
前記モード制御モジュールは、前記プロセッサが前記キャッシュメッセージの処理を完了すると、前記動作モードを前記保持モードに設定するように構成されている、請求項８に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はプロセッサに関し、より詳細には、複数のモードでキャッシュトランザクションを処理するプロセッサに関する。
【背景技術】
【０００２】
プロセッサのなかには、アクティブモード、低パワーまたはスリープモードなどの複数のモードで動作できるものがある。アクティブモードでは、電圧調整器が、プロセッサが命令を実行し、通常動作を実行できる電圧をプロセッサに供給する。低パワーモードでは、電圧調整器は、プロセッサがその内部状態を保持するが、命令またはその他の通常動作は実行することができない保持電圧を供給する。保持電圧はアクティブモードで供給される電圧よりも低く、このため、プロセッサが電力を節約することが可能となる。プロセッサは、低パワーモードに移行して、電力を節約するが、アクティブモードへの復帰時に、低パワーモードに入る前の状態から動作を続けることができるように、その内部状態を保持することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
プロセッサのなかには、コヒーレントなメモリ空間をサポートしたり、デバイスの他のモジュールに、プロセッサのキャッシュに対するアクセスを許可しているものがある。プロセッサの低パワーモード中に、コヒーレンシを保つためにキャッシュトランザクションを実行したり、ほかのモジュールから受け取ったアクセス要求に応じるために、従来のプロセッサは、低パワーモードからアクティブモードに切り替わっていた。
【０００４】
しかし、電圧調整器の物理的特性により、プロセッサが、低パワーモードからアクティブモードに、迅速には移行することができない。このため、従来のプロセッサでは、通常、受け取ったキャッシュトランザクション要求が増えると、低パワーモードに移行する回数が減り、このため、低パワーモードに入る回数が減る。この結果、電力がプロセッサによって望ましくない形で消費されてしまうことがある。このため、新しい処理デバイスおよび方法が求められている。
【課題を解決するための手段】
【０００５】
３つの異なるモードで動作することができるプロセッサが開示される。アクティブモードでは、プロセッサが命令を実行できるのに十分な第１の電圧（ここでは「アクティブ電圧」と呼ぶ）がプロセッサに供給される。低パワーモードでは、プロセッサに保持電圧が供給され、この保持電圧は、プロセッサが命令を実行するには不十分であるが、低パワーモードに移行する前に記憶していた状態情報をプロセッサが保持するには十分である。プロセッサの消費電力は、保持モードではアクティブモードよりも低い。また、プロセッサは、以下「キャッシュ−トランザクション処理モード」と呼ぶ、第３のモードで動作することができる。このモードでは、プロセッサが、コヒーレンシメッセージなどのキャッシュメッセージを処理するには十分であるが、他の通常動作を実行するには不十分であるか、あるいはアクティブモードでのプロセッサの性能に対して極めて低い速度でしか通常動作を実行できない電圧（ここでは「キャッシュ−トランザクション処理電圧」と呼ぶ）が、プロセッサに供給される。キャッシュ−トランザクション処理モードでプロセッサに供給される電圧は、アクティブモードの電圧よりも低いが、保持モードの電圧よりは高い。
【０００６】
プロセッサが低パワーモード時にキャッシュトランザクションを実行すべき場合、プロセッサはキャッシュ−トランザクション処理モードに移行して、キャッシュトランザクションを処理する。キャッシュトランザクションの処理が完了すると、プロセッサは低パワーモードに戻る。低パワーモードで供給される保持電圧と、キャッシュ−トランザクション処理モードでプロセッサに供給されるキャッシュ−トランザクション処理電圧との差が（保持電圧とアクティブ電圧との電圧差に比べて）比較的小さいため、プロセッサは、低パワーモードとキャッシュ−トランザクション処理モード間を、（低パワーモードからアクティブモードへの移行と比べて）迅速に移行することができる。これにより、プロセッサが長時間、低パワーモードに留まることができ、電力消費を低減することができる。
【図面の簡単な説明】
【０００７】
【図１】複数の動作モードを有するプロセッサを搭載したデバイスの特定の実施形態のブロック図。
【図２】図１のプロセッサに供給される動作電圧の特定の実施形態のチャート。
【図３】図１のデバイスの周波数制御モジュールのブロック図。
【図４】プロセッサの動作モードを設定する方法の特定の実施形態のフローチャート。
【図５】プロセッサの動作モードを設定する代替の実施形態のフローチャート。
【０００８】
本発明は、添付の図面を参照することによって、より明確に理解することができ、その数多くの特徴および利点が当業者にとって明白となろう。
【発明を実施するための形態】
【０００９】
図１を参照すると、システム１００のブロック図が開示される。システム１００は、プロセッサ１０２、バス１０３、プロセッサ１０５、周辺デバイス１０６、周辺デバイス１０７および電圧調整器１３０を備える。プロセッサ１０２、プロセッサ１０５および周辺デバイス１０６，１０７は、それぞれバス１０３に接続されている。プロセッサ１０２は、電圧調整器１３０の入力に、Ｖ＿ＣＴＲＬで示す信号を供給する出力を有する。また、プロセッサ１０２は、電圧調整器１３０の出力から、ＶＤＤで示す調整可能な電圧を受け取るための入力を有する。
【００１０】
プロセッサ１０２とプロセッサ１０５は、それぞれ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）などである。周辺デバイス１０６，１０７は、それぞれ、メモリコントローラ、入出力コントローラ、周辺機器コントローラなどである。また、システム１００の図示した部分のそれぞれが、共通の半導体基板に一体化されても、異なる基板に設けられてもよい。例えば、プロセッサ１０２とプロセッサ１０５が、共通の半導体基板に一体化され、周辺デバイス１０６，１０７はこの半導体基板の外部に設けられてもよい。図示した実施形態では、電圧調整器１３０はプロセッサ１０２の外に設けられている。別の実施形態では、電圧調整器１３０がプロセッサ１０２内に実装されてもよい。
【００１１】
プロセッサ１０２は、動作時に、アクティブモード、低パワーモードおよびキャッシュ−トランザクション処理モードで動作することができる。アクティブモードでは、プロセッサ１０２は、命令を実行したり、他の通常動作を実行することができる。低パワーモードでは、プロセッサ１０２は保持状態に置かれ、プロセッサ１０２の状態が保持される。低パワーモードでは、プロセッサ１０２は、命令を実行することも、他の通常動作を実行することもできない。キャッシュ−トランザクション処理モードでは、プロセッサ１０２は、バス１０３を介して、プロセッサ１０５および周辺デバイス１０７，１０６によって供給されるキャッシュメッセージを処理することができる。キャッシュメッセージは、コヒーレンシトランザクションまたはアクセストランザクションなどのキャッシュトランザクションを処理するよう、プロセッサ１０２に対して求める要求を表す。プロセッサ１０２は、キャッシュメッセージを分析して、要求されたキャッシュトランザクションを適切な時点で実行することによって、キャッシュメッセージを処理する。
【００１２】
電圧調整器１３０は、プロセッサ１０２の３つのモードのそれぞれに対して、レベルの異なる動作電圧ＶＤＤを供給する。アクティブモードでは、プロセッサ１０２が命令を実行することができるように、動作電圧ＶＤＤがアクティブ電圧レベルに設定される。キャッシュ−トランザクション処理モードでは、動作電圧ＶＤＤが、アクティブ電圧レベルよりも低いキャッシュ−トランザクション処理電圧レベルに設定される。この電圧レベルでは、プロセッサ１０２がキャッシュメッセージを処理できるが、他の通常動作を実行することはできないか、あるいは、アクティブモードでの通常動作の性能に対して低い速度でしか他の通常動作を実行できない。低パワーモードでは、動作電圧ＶＤＤが保持電圧に設定され、これにより、プロセッサ１０２は状態情報を保持することはできるが、命令を実行することはできない。保持電圧は、キャッシュ−トランザクション処理電圧よりも低い。特定の実施形態では、保持電圧は約０．７ボルトであり、キャッシュ−トランザクション処理電圧は約０．７５〜約０．８ボルトであり、アクティブ電圧は約１．１ボルトである。
【００１３】
電圧ＶＤＤのレベルは、信号Ｖ＿ＣＴＲＬによって制御される。このため、プロセッサ１０２は、新しいモードに入ると、信号Ｖ＿ＣＴＲＬを使用して、電圧ＶＤＤを、この新しいモードのために適切なレベルに設定するように電圧調整器１３０を設定する。
【００１４】
プロセッサ１０２は、さまざまな要因によりモードを変更することができる。例えば、プロセッサ１０２は、所定の時間期間（period of time）、システム１００に対してユーザ入力が受信されないと、アクティブモードから低パワーモードに切り替わることができる。低パワーモードであっても、プロセッサ１０２は、プロセッサ１０５または周辺デバイス１０６，１０７からキャッシュメッセージを受け取ることができる。プロセッサ１０２をキャッシュ−トランザクション処理モードに移行させうるキャッシュメッセージの例としては、キャッシュプローブまたはキャッシュ読み出しメッセージ（例えば、キャッシュ位置に変更されているデータが含まれるかどうかを確認するためのメッセージ）、キャッシュ無効メッセージ（例えば、周辺デバイス１０６，１０７の一方によって、あるいはプロセッサ１０５によって、特定のキャッシュラインに関連するデータが変更されたため、当該キャッシュラインを無効にすべきことを示すメッセージ）、ならびにキャッシュ書き込みメッセージ（例えば、周辺デバイス１０６，１０７およびプロセッサ１０５がキャッシュに直接書き込むことを可能にするメッセージ）がある。プロセッサ１０２は、キャッシュメッセージを受け取ると、キャッシュ−トランザクション処理モードに入り、キャッシュメッセージを処理し、処理の完了時に低パワーモードに戻りうる。プロセッサ１０２がキャッシュメッセージを処理するためにアクティブモードに入る必要がないため、プロセッサ１０２は、低パワーモードに迅速に戻ることができ、電力を節約できる。
【００１５】
プロセッサ１０２は、プロセッサコア１１０、キャッシュ１２０、モード制御モジュール１４０、コヒーレンシエージェント１５０、および周波数制御モジュール１６０を備える。プロセッサコア１１０は、キャッシュ１２０との間の双方向接続を有する。また、プロセッサコア１１０は、信号ＦＲＱ＿ＣＴＲＬを受け取るための入力と、信号Ｃ＿ＣＴＲＬ１を受け取るための入力も有する。キャッシュ１２０は、信号Ｃ＿ＣＴＲＬ２を受け取るための入力を有する。コヒーレンシエージェントは、制御信号Ｃ＿ＣＴＲＬ１、Ｃ＿ＣＴＲＬ２およびＣ＿ＣＴＲＬ３を供給するための出力を有する。モード制御モジュール１４０は、信号Ｃ＿ＣＴＲＬ３を受け取るための入力、信号Ｖ＿ＣＴＲＬを供給するための出力、信号ＭＯＤＥ＿ＩＮＤＩＣＡＴＯＲを供給するための出力、および信号Ｍ＿ＲＣＶを供給するための出力を有する。周波数制御モジュール１６０は、信号Ｍ＿ＲＣＶを受け取るための入力と、信号ＦＲＱ＿ＣＴＲＬを供給するための出力とを有する。
【００１６】
プロセッサコア１１０は、アクティブモードでは命令を実行し、アクティブモードとキャッシュ−トランザクション処理モードで、キャッシュメッセージの処理などの他の動作を実行するように構成されている。また、プロセッサコア１１０は、キャッシュ１２０に、アクセス要求とコヒーレンシ情報を提供するようにも構成されている。
【００１７】
キャッシュ１２０は、プロセッサコア１１０によって要求が提供されるか、信号Ｃ＿ＣＴＲＬ２を介して情報が提供されると、データを供給および記憶するように構成されている。また、キャッシュ１２０は、キャッシュ１２０が記憶しているデータのコヒーレンシ情報を保ち、プロセッサコア１１０からの要求または信号Ｃ＿ＣＴＲＬ２を介して提供される情報に基づいて、このコヒーレンシ情報を変更することができる。
【００１８】
コヒーレンシエージェント１５０は、バス１０３を介してプロセッサ１０５および周辺デバイス１０６，１０７から、キャッシュトランザクション要求を表す（represent
cache transaction requests）キャッシュメッセージを受け取るように構成されている。キャッシュメッセージは、プロセッサ１０５および周辺デバイス１０６，１０７からのコヒーレンシトランザクションまたはキャッシュアクセス要求を表しうる。コヒーレンシエージェント１５０は、信号Ｃ＿ＣＴＲＬ１、Ｃ＿ＣＴＲＬ２およびＣ＿ＣＴＲＬ３を介して、受信キャッシュメッセージに関する情報を提供する。
【００１９】
モード制御モジュール１４０は、受信キャッシュメッセージ１４０に関する情報を受け取るように構成され、プロセッサ１０２の動作モードを制御するように構成されている。モード制御モジュール１４０は、動作モードを制御するために、Ｖ＿ＣＴＲＬ信号を介して動作電圧ＶＤＤを設定するための情報と、ＭＯＤＥ＿ＩＮＤＩＣＡＴＯＲ信号を介して、各動作モードでのプロセッサコア１１０のクロック周波数を設定するための情報と、Ｍ＿ＲＣＶ信号を介してキャッシュメッセージを受け取ったことを示すための情報とを提供する。
【００２０】
周波数制御モジュール１６０は、Ｍ＿ＲＣＶ信号を介してキャッシュメッセージを受け取ったことを示す情報と、ＭＯＤＥ＿ＩＮＤＩＣＡＴＯＲ信号を介して、プロセッサ１０２の動作モードを示す情報とを受け取るように構成されている。周波数制御モジュール１０６は、ＦＲＱ＿ＣＴＲＬ信号を介して、プロセッサ１０２の動作モードに応じてプロセッサコア１１０のクロック周波数を設定するための情報を提供するように構成されている。また、周波数制御モジュール１６０は、規定の時間期間に受け取ったキャッシュメッセージの数を決定し、この決定に基づき、キャッシュ−トランザクション処理モードでのプロセッサコア１１０のクロック周波数を変更するための情報を、ＦＲＱ＿ＣＴＲＬ信号を介して提供するようにも更に構成されている。
【００２１】
動作時に、プロセッサコア１１０は、アクティブモードでは、命令を実行してプロセッサ１０２のタスクを実行する。コヒーレンシエージェント１５０は、プロセッサ１０５のキャッシュ（図示なし）、または周辺デバイス１０６，１０７の一方によって制御されるメモリなどのシステム１００の他のメモリと、キャッシュ１２０がコヒーレントな状態に保たれるようにする。コヒーレンシエージェント１５０は、バス１０３を介して、コヒーレンシメッセージなどのキャッシュメッセージを受け取る。コヒーレンシエージェント１５０は、受け取ったキャッシュメッセージに基づき、信号Ｃ＿ＣＴＲＬ１を介してプロセッサコア１１０に、信号Ｃ＿ＣＴＲＬ２を介してキャッシュ１２０に、コヒーレンシ情報をそれぞれ提供する。
【００２２】
例えば、コヒーレンシエージェント１５０は、あるメモリアドレスに関連するデータがプロセッサ１０５によって変更されていることを示すキャッシュメッセージを受け取ると、この変更をプロセッサコア１１０およびキャッシュ１２０に通知する。これに対して、プロセッサコア１１０およびキャッシュ１２０は、キャッシュ１２０に、そのメモリアドレスに関連するデータが記憶されているかどうかを判定し、記憶されていれば、キャッシュラインを無効にするなどの適切なアクションをとる。
【００２３】
モード制御モジュール１４０は、システム１００の動作状況および他の要因に応じて、プロセッサ１０２の動作モードを制御する。例えば、システム１００に対するユーザ入力が、規定の期間なかった場合、バスの動作が規定の期間なかった場合、あるいは、プロセッサ１０２またはプロセッサ１０５で実行されているオペレーティングシステムまたは他のソフトウェアが、プロセッサ１０２に対して低パワーモードへの移行を指示した場合、モード制御モジュール１４０は、動作モードを、アクティブモードから低パワーモードに変更しうる。また、モード制御モジュール１４０は、ユーザ入力または割り込みを受け取った場合に、動作モードを、低パワーモードからアクティブモードに変更しうる。モード制御モジュール１４０は、動作モードを変更するために、電圧調整器に信号Ｖ＿ＣＴＲＬを供給して、プロセッサ１０２の動作電圧ＶＤＤを変更する。また、モード制御モジュール１４０は、プロセッサコア１１０の各モードでのクロック周波数を設定するために、信号ＭＯＤＥ＿ＩＮＤＩＣＡＴＯＲを介して、周波数制御モジュール１６０に対して動作モードを通知する。
【００２４】
コヒーレンシエージェント１５０は、コヒーレンシメッセージを受け取ると、信号Ｃ＿ＣＴＲＬ３を介してモード制御モジュール１４０に通知する。これに対して、モード制御モジュール１４０は、プロセッサ１０２が低パワーモードのときは、動作モードをキャッシュ−トランザクション処理モードに変更する。モード制御モジュール１４０は、プロセッサ１０２がキャッシュメッセージを処理できる適切なレベルに動作電圧ＶＤＤを設定するために、信号Ｖ＿ＣＴＲＬを供給する。また、モード制御モジュール１４０は、キャッシュメッセージを受け取ったことを、周波数制御モジュール１６０に通知する。プロセッサコア１１０がキャッシュメッセージの処理を完了すると、モード制御モジュール１４０は、プロセッサ１０２を低パワーモードに戻し、その際、動作電圧ＶＤＤのレベルも変更するため、電力を節約することができる。
【００２５】
代替の実施形態では、モード制御モジュール１４０は、受け取ったキャッシュメッセージの数がしきい値に達してはじめて、プロセッサ１０２の動作モードを変更しうる。この場合、未処理のキャッシュメッセージが全て処理されると、モード制御モジュール１４０はプロセッサを低パワーモードに戻す。
【００２６】
周波数制御モジュール１６０は、ＭＯＤＥ＿ＩＮＤＩＣＡＴＯＲ信号に基づいて、プロセッサコア１１０のクロック周波数を設定する。特定の実施形態では、クロック周波数は、低パワーモードでは約０に設定され、キャッシュ−トランザクション処理モードではアクティブモードよりも低い周波数に設定される。また、キャッシュ−トランザクション処理モードでは、周波数制御モジュールは、特定の時間期間に受け取ったキャッシュメッセージの数をカウントする。受け取ったキャッシュメッセージの数がしきい値を超える場合、周波数制御モジュール１６０は、ＦＲＱ＿ＣＴＲＬ信号を介して、キャッシュ−トランザクション処理モードでのプロセッサコア１１０のクロック周波数を変更するための情報を提供する。これにより、プロセッサコア１１０がより多くの電力を消費するようになるが、キャッシュメッセージをより迅速に処理できるようになる。このため、キャッシュメッセージのしきい値の数を適切に設定することにより、プロセッサ１０２の全体的な電力消費を低減することができる。
【００２７】
図２を参照すると、システム１００の動作中の、図１の電圧調整器１３０に対する電圧出力２０２の例を示すチャートが示される。図のチャートのｙ軸は電圧ＶＤＤのレベルを示し、ｘ軸は時間を示す。図に示すように、期間２０４では、プロセッサ１０２はアクティブモードであり、動作電圧ＶＤＤはアクティブ電圧レベルである。時間２０５で、プロセッサ１０２を低パワーモードに移行させるように指示するモード変更指示が受信される。このモード変更指示は、ユーザ入力の発生時、ユーザ入力が所定の時間期間ない場合、あるいはほかの要因により受信されうる。例えば、ソフトウェアによって、モード変更指示が発行されることがある。別の実施形態では、ソフトウェアはモード変更指示の発行を開始することができるが、所定の時間期間、バス活動のないことが検出されるまで、指示が発行されない。別の実施形態では、モード変更指示は、所定の時間期間、バス活動がなければ、ソフトウェアによる開始がなくても発行されうる。
【００２８】
モード変更指示に対し、電圧ＶＤＤが保持電圧レベルに変更され、プロセッサ１０２が低パワーモードに移行し、期間２０６の間、低パワーモードのままとなる。時間２０７において、プロセッサ１０２がキャッシュメッセージを受け取る。これに対して、プロセッサ１０２は、キャッシュ−トランザクション処理モードに移行し、電圧レベルＶＤＤがキャッシュ−トランザクション処理電圧レベルに設定される。プロセッサ１０２は、期間２０８の間、キャッシュ−トランザクション処理モードのままとなる。キャッシュメッセージの処理が完了すると、時間２０９において、プロセッサ１０２は低パワーモードに戻り、電圧調整器１３０によって供給される電圧ＶＤＤが、保持電圧に設定される。
【００２９】
期間２０８の長さは、プロセッサコア１１０のクロック周波数に応じて変わる。特定の期間に受け取ったキャッシュメッセージの数がしきい値を超えている場合には、期間２０８を縮めるためにクロック周波数が調整されうる。これにより、期間２０８にプロセッサ１０２によって消費される電力量が増えるが、プロセッサ１０２がより迅速にキャッシュメッセージを処理できるようになり、期間２１０において、より迅速に低パワー状態に戻れるようになる。このため、プロセッサ１０２の全体的な電力消費を低減させるように、キャッシュメッセージのしきい値の数が設定されうる。
【００３０】
時間２１１において、別のキャッシュメッセージが受信される。これに対して、電圧ＶＤＤがキャッシュ−トランザクション処理電圧レベルに設定され、プロセッサ１０２が、期間２１２の間キャッシュ−トランザクション処理モードに移行する。時間２１３においてキャッシュメッセージの処理が完了すると、プロセッサ１０２は低パワーモードに戻り、電圧ＶＤＤが、期間２１４の間、保持電圧レベルに設定される。このように、プロセッサ１０２は、キャッシュメッセージを受信するたびに、キャッシュ−トランザクション処理モードに移行して、低パワーモードに戻ることができる。
【００３１】
時間２１５において、プロセッサ１０２をアクティブモードに変更するように指示するモード変更指示が受信される。モード変更指示は、ユーザ入力の発生時、または他の要因により受信されうる。例えば、周辺デバイスが割り込みを開始し、これによってモード変更指示が発行されうる。別の実施形態では、所定の時間期間が経過すると、モード変更指示が受信されうる。モード変更指示に対し、プロセッサ１０２はアクティブモードに移行し、期間２１６の間、動作電圧ＶＤＤが最高レベルに再度設定される。
【００３２】
図３を参照すると、図１の周波数制御モジュール１６０に対応する周波数制御モジュール３６０の特定の実施形態のブロック図が示される。周波数制御モジュール３６０は、クロックモジュール３０５、タイムカウンタ３０６、コヒーレンシメッセージカウンタ３１０、および周波数選択モジュール３１５を備える。クロックモジュール３０５は、クロック信号ＣＬＫを供給するための出力を有する。タイムカウンタ３０６は、クロック信号ＣＬＫを受け取るための入力と、出力とを有する。コヒーレンシメッセージカウンタ３１０は、ＲＥＳＥＴで示す、タイムカウンタ３０６の出力に接続された入力を有する。また、コヒーレンシメッセージカウンタ３１０は、信号Ｍ＿ＲＣＶを受け取るための入力と、出力も有する。周波数選択モジュール３１５は、コヒーレンシメッセージカウンタ３１０の出力に接続された入力と、ＭＯＤＥ＿ＩＮＤＩＣＡＴＯＲ信号を受け取るための入力と、信号ＦＲＱ＿ＣＴＲＬを供給するための出力とを有する。
【００３３】
動作時に、周波数選択モジュールは、ＭＯＤＥ＿ＩＮＤＩＣＡＴＯＲ信号が示す動作モードに基づいて、プロセッサコア１１０のクロック周波数を設定するための情報を、ＦＲＱ＿ＣＴＲＬ信号を介して提供する。更に、コヒーレンシメッセージが受信されると、信号Ｍ＿ＲＣＶを介して、コヒーレンシメッセージカウンタ３１０にも通知される。これに対して、コヒーレンシメッセージカウンタ３１０が記憶している値が調整される。また、タイマカウンタ３０６は、クロック信号ＣＬＫを基に、特定の時間期間後にコヒーレンシメッセージカウンタ３１０をリセットするための信号を、ＲＥＳＥＴ入力に供給する。特定の実施形態では、カウンタ３０６は、初期値から開始し、クロック信号ＣＬＫの遷移を基に、ゼロに達するまでカウントダウンされるデクリメントカウンタである。カウンタ３０６がゼロに達すると、コヒーレンシメッセージカウンタをリセットするための信号が供給される。このため、コヒーレンシメッセージカウンタ３１０が記憶している値は、この時間期間に受信したコヒーレンシメッセージの数を示す。この時間期間は、固定値でも、プログラム可能な値でもよい。プログラム可能な値は、システム１００のＢＩＯＳの値に基づいて設定されても、プロセッサ１０２で実行される命令に基づいて設定されても、あるいはほかの方法でユーザによってプログラムされてもよい。
【００３４】
コヒーレンシメッセージカウンタ３１０が記憶している値が、リセットされる前にしきい値を超えており、設定された時間期間に受け取ったコヒーレンシメッセージの数がしきい値を超えたことを示す場合には、コヒーレンシメッセージカウンタ３１０は、周波数選択モジュール２１０に対して通知を行う。これに対して、周波数選択モジュール２１０は、プロセッサ１０２がキャッシュ−トランザクション処理モードの場合に、プロセッサコア１１０のクロック周波数を変更するための情報を、信号ＦＲＱ＿ＣＴＲＬを介して提供する。このため、特定の時間期間に受け取ったコヒーレンシメッセージの数がしきい値を超える場合、周波数制御モジュール２６０は、プロセッサ１０２がキャッシュ−トランザクション処理モードの場合は、プロセッサコア１１０のクロック速度を調整して、コヒーレンシメッセージがより迅速に処理されるようにする。これにより、プロセッサ１０２が、キャッシュ−トランザクション処理モードから低パワーモードに迅速に戻ることができ、電力を節約することができる。
【００３５】
図４を参照すると、プロセッサに電圧を供給するための方法の特定の実施形態のフローチャートが示される。ブロック４０２において、第１の期間、第１の動作電圧がプロセッサに供給され、プロセッサがアクティブモードとなる。ブロック４０４において、この第１の期間に、プロセッサで命令が実行される。ブロック４０６において、モード変更指示が受信される。モード変更指示に応答して、ブロック４０８において、第２の時間期間、プロセッサに保持電圧が供給される。
【００３６】
ブロック４１０において、この第２の期間に、コヒーレンシメッセージが受信される。これに対して、ブロック４１２において、第３の期間、第２の動作電圧がプロセッサに供給される。ブロック４１４において、コヒーレンシメッセージがプロセッサで処理される。ブロック４１６において、コヒーレンシメッセージの処理が完了すると、第４の期間、プロセッサに保持電圧が供給される。このため、プロセッサはアクティブモードに移行せずに、コヒーレンシメッセージを処理することが可能となり、これにより、プロセッサが、より迅速に低パワーモードに戻ることができ、電力を節約できる。
【００３７】
図５を参照すると、プロセッサに電圧を供給するための方法の代替の実施形態のフローチャートが示される。ブロック５０２において、第１の期間、プロセッサは低パワーモードであり、このため、この期間はプロセッサに保持電圧が供給される。ブロック５０４において、プロセッサが低パワーモードであるこの第１の期間に、コヒーレンシメッセージが受信される。これに対して、ブロック５０６において、プロセッサはキャッシュ−トランザクション処理モードに移行し、第２の時間期間、第１の動作電圧が供給される。ブロック５０８において、この第２の期間に（すなわちプロセッサがキャッシュ−トランザクション処理モードの間に）、キャッシュメッセージが処理される。
【００３８】
ブロック５１０において、キャッシュメッセージの処理が完了すると、プロセッサは低パワーモードに戻り、第３の時間期間、保持電圧が供給される。ブロック５１２において、プロセッサが低パワーモードであるこの第３の時間期間に、モード変更指示が受信される。これに対して、ブロック５１４において、プロセッサがアクティブモードに移行し、第２の動作電圧がプロセッサに供給される。
【００３９】
本開示の他の実施形態、使用および利点は、ここに開示した開示の詳細と実施を鑑みれば、当業者にとって明らかであろう。一部の回路素子およびモジュールは、他の回路素子に接続されて図示および説明されているが、図示した素子が、抵抗、コンデンサ、トランジスタなどの追加の回路素子を介して結合されてもよい点に更に留意されたい。本明細書および図面は例に過ぎず、したがって、本開示の範囲は、添付の特許請求の範囲とその均等物によってのみ制限されることが意図されるべきである。
【図１】
0005427775.tif 000002
【図２】
0005427775.tif 000003
【図３】
0005427775.tif 000004
【図４】
0005427775.tif 000005
【図５】
0005427775.tif 000006