(57)【要約】命令サイクルが、キャッシュに記憶された命令から求められる（５０２）。ここで、命令サイクルは、キャッシュに常駐する、処理デバイスによって実行されると予測された命令シーケンスを表す。この命令サイクルの継続期間が見積もられ、命令サイクル中に使用されると予想されていない、処理デバイスの１つ又は２つ以上のコンポーネントを、その継続期間の一部又は全部の間サスペンドすることができる（５０６）。これらのコンポーネントは、たとえば、クロックゲーティングによるか、又は、１つ若しくは２つ以上の電源領域からコンポーネントを切り離すことにより、サスペンドすることができる（５０８）。
2009501961.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令を受け取るステップと、
前記複数の命令からの命令シーケンスの実行中に使用されないと予想される、プロセッサの１つ又は２つ以上のコンポーネントを特定するステップと、
前記プロセッサによる前記命令シーケンスの少なくとも一部の実行中に、前記プロセッサの前記１つまたは２つ以上の特定されたコンポーネントの少なくとも１つをサスペンドするステップとを含む、方法。
【請求項２】
前記少なくとも１つのコンポーネントをサスペンドするステップは、前記少なくとも１つのコンポーネントを１つまたは２つ以上の電源領域から切り離すことを含む、請求項１記載の方法。
【請求項３】
前記少なくとも１つのコンポーネントをサスペンドするステップは、前記少なくとも１つのコンポーネントをクロックゲーティングすることを含む、請求項１記載の方法。
【請求項４】
前記少なくとも１つのコンポーネントをサスペンドするステップは、前記少なくとも１つのコンポーネントを再起動するのに消費されると予想される電力量に基づいて、前記少なくとも１つのコンポーネントをサスペンドするか否かを判断するステップを含む、請求項１記載の方法。
【請求項５】
プロセッサであって、
複数のコンポーネントと、
複数の命令を記憶するためのストレージ手段と、
前記プロセッサによる前記複数の命令の命令シーケンスの実行中に使用されないと予想される、前記複数のコンポーネントの１つまたは２つ以上のコンポーネントを特定するための手段と、
前記プロセッサによる前記命令シーケンスの少なくとも一部の実行中に前記１つまたは２つ以上の特定されたコンポーネントの少なくとも１つをサスペンドする手段とを備える、プロセッサ。
【請求項６】
前記少なくとも１つのコンポーネントをサスペンドするための手段は、前記少なくとも１つのコンポーネントを１つまたは２つ以上の電源領域から切り離すための手段を含む、請求項５記載のプロセッサ。
【請求項７】
前記命令シーケンスに含まれない命令が前記プロセッサによる実行のために要求される前の継続期間を求めるための手段をさらに備える、請求項５記載のプロセッサ。
【請求項８】
前記少なくとも１つのコンポーネントをサスペンドするための手段は、前記継続期間が第１のしきい値よりも大きいときに、前記少なくとも１つのコンポーネントをクロックゲーティングするための手段を含む、請求項７記載のプロセッサ。
【請求項９】
前記少なくとも１つのコンポーネントをサスペンドするための手段は、前記継続期間が第２のしきい値よりも大きいときに、前記少なくとも１つのコンポーネントを１つまたは２つ以上の電源領域から切り離すための手段を含み、ここで、前記第２のしきい値は、前記第１のしきい値よりも大きい、請求項７記載のプロセッサ。
【請求項１０】
前記少なくとも１つのコンポーネントをサスペンドするための手段は、前記継続期間が第１のしきい値よりも大きいときに、前記少なくとも１つのコンポーネントを１つまたは２つ以上の電源領域から切り離すための手段を含む、請求項７記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、包括的には、処理デバイスにおける節電に関し、より具体的には、処理デバイスの特定のコンポーネントをサスペンドすることに関する。
【背景技術】
【０００２】
パイプライン化された処理は、多くの場合、パイプラインのさまざまなコンポーネントで複数の命令を同時に処理できることから、改善された性能を提供する。性能は、分岐予測技法を使用してさらに高めることができる。分岐予測技法によれば、処理デバイスの分岐予測ユニットが、やがて現れるフロー変化（change of flow）（ＣＯＦ）命令によって提示される分岐が選ばれるか否かを予測する。その分岐が選ばれることが予測される場合には、分岐に続く命令を処理デバイスの命令キャッシュに事前にロードすることができ、また、ＣＯＦ命令が解決される前に、分岐に続く命令を全体的又は部分的に実行することもできる。一方、予測ミスの場合には、パイプラインは、通常、フラッシュされ、予測ミスに関連した命令の実行のあらゆる結果が廃棄される。このように、予測ミスの結果、多くの場合、プロセッサによりかなりの電力が消費されるだけでなく、処理サイクルも浪費される。
【発明の開示】
【０００３】
プロセッサの分岐予測の有効性にかかわらず、パイプライン化された処理デバイスによる命令のフェッチ及び実行は、処理デバイスの１つ又は２つ以上のコンポーネントの使用を伴わないか又は必要としない場合があることが十分理解される。例示すると、整数演算を表す命令の実行は、通常、処理デバイスの浮動小数点ユニット（ＦＰＵ）の使用を必要としない。したがって、たとえやがて現れる命令ストリームが一定のコンポーネントの使用を必要としない場合であっても、処理デバイスは、多くの場合、それらの一定のコンポーネントをイネーブルステータスに維持している間、電力を不必要に消費する。したがって、処理デバイスの電力消費を削減すると共に、予測ミスした分岐に関連したペナルティを削減するシステム及び方法が有利となる。
【０００４】
本開示の目的及び利点は、添付図面と共に以下の詳細な説明から当業者には明らかになる。添付図面において、同様の参照符号は、同様の要素を示すのに使用されている。
【発明を実施するための最良の形態】
【０００５】
図１乃至図５は、処理デバイスの電力消費を削減するために、プロセッサコンポーネントを動的にサスペンドするための例示的なシステム及び技法を示している。少なくとも１つの実施形態では、命令サイクルが、キャッシュに記憶された命令から求められる。ここで、命令サイクルは、キャッシュに常駐する、処理デバイスによって実行されると予測された命令シーケンスを表す。この命令サイクルの継続期間が見積もられ、命令サイクル中に使用されると予想されていない、処理デバイスの１つ又は２つ以上のコンポーネントを、その継続期間の一部又は全部の間サスペンドすることができる。これらのコンポーネントは、たとえば、クロックゲーティングによるか、又は、１つ若しくは２つ以上の電源領域からコンポーネントを切り離すことにより、サスペンドすることができる。
【０００６】
次に図１を参照すると、１つの例示的な処理システム１００が、本開示の少なくとも１つの実施形態に従って示されている。処理システム１００は、プロセッサ１０２等の処理デバイスを備える。この処理デバイスは、たとえば、マスタバスインターフェースユニット１０４、メモリコントローラ（ＭＣ）１０６、システムメモリ１０８等の１つ又は２つ以上の周辺コンポーネントに結合されている。プロセッサ１０２は、命令パイプライン１１０を含む。命令パイプライン１１０は、たとえば、命令キャッシュ１１２、プリフェッチモジュール１１４、デコードモジュール１１６、アドレス計算モジュール１１８、及び実行モジュール１２０を有する。実行モジュール１２０は、たとえば、整数ユニット１２２、浮動小数点ユニット（ＦＰＵ）１２４、マルチメディア拡張（ＭＭＸ）ユニット１２６等を含むことができる。プロセッサ１０２は、サスペンドコントローラ１３０、デコードキャッシュ１３２、レベル２（Ｌ２）キャッシュ１３４、及び、プロセッサ１０２のコンポーネントと周辺コンポーネントとの間のインターフェースとしてのバスコントローラ（ＢＣ）１３６をさらに含むことができる。
【０００７】
分岐予測情報又は他のプリフェッチ情報に基づいて、プリフェッチモジュール１１４は、特定された命令を命令キャッシュ１１２又はシステムメモリ１０８からフェッチし、それらの命令をデコードモジュール１１６に提供する。デコードモジュール１１６は、一実施形態では、プリフェッチされた命令を部分的に又は完全にデコードし、それらの命令をデコードキャッシュ１３２及び／又はＬ２キャッシュ１３４に記憶する。デコードキャッシュ１３２の命令及び／又は命令キャッシュ１１２から直接フェッチされた命令は、次に、プログラムフローに従って実行するためにアドレス計算モジュール１１８及び実行モジュール１２０に提供することができる。
【０００８】
図２についてより詳細に解説するように、デコードモジュール１１６は、一実施形態では、プリフェッチモジュール１１４によって提供された命令に関連した一定のプログラムフロー特性を求め、これらのプログラムフロー特性の表示をデコードキャッシュ１３２に提供して、対応するデコードされた命令と共に記憶する。プログラムフロー特性には、フロー変化特性（すなわち、命令が分岐になることがあるか否か）、命令の実行に使用されると予想されるプロセッサコンポーネント又は命令の実行の結果として使用されると予想されるプロセッサコンポーネントを示すもの、さらには、命令がＣＯＦ命令である場合には分岐予測特性が含まれ得るが、これらに限定されるものではない。この分岐予測特性には、分岐が選ばれると予測されるか否か、予測が補完される前に命令が選ばれると予想される回数、補完予測（complement prediction）が実現される前に所与のＣＯＦ命令が正しく解決された回数等がある。
【０００９】
デコードキャッシュ１３２の命令及び関連したプログラムフロー特性に基づいて、サスペンドコントローラ１３０は、一実施形態では、デコードキャッシュ１３２に常駐していない命令が要求されると予想される前の継続期間を見積もることができる。サスペンドコントローラ１３０は、見積もられた継続期間中にプロセッサ１０２によって消費される電力を削減するために、その継続期間中に使用されないと予想されるプロセッサ１０２のコンポーネントを特定し、次に、その継続期間の一部又は全部の間、特定されたコンポーネントの１つ又は２つ以上をサスペンドすることができる。同様に、サスペンドコントローラ１３０は、継続期間中に使用されないと予想される１つ又は２つ以上の周辺コンポーネントも特定し、継続期間の一部又は全部の間、これらの周辺コンポーネントの１つ又は２つ以上をサスペンドすることができる。後述するように、プロセッサコンポーネント又は周辺コンポーネントをシャットダウンして再起動することに伴う追加の電力消費は、特定のコンポーネントをサスペンドするか否かを判断する時に考慮することができる。
【００１０】
少なくとも１つの実施形態では、１つ又は２つ以上のプロセッサコンポーネントは、それらのコンポーネントに対応する電源領域をシャットダウンすることによって、それらの対応する電源領域から１つ又は２つ以上のプロセッサコンポーネントを切り離すことによりサスペンドされる。例示すると、プリフェッチモジュール１１４は電源領域１４０に関連付けることができ、整数ユニット１２２は電源領域１４２に関連付けることができ、ＦＰＵ１２４は電源領域１４４に関連付けることができ、ＭＭＸユニット１２６は電源領域１４６に関連付けることができ、Ｌ２キャッシュ１３４は電源領域１４８に関連付けることができ、システムメモリ１０８は電源領域１５０に関連付けることができる。したがって、サスペンドコントローラ１３０は、たとえば、コンポーネント１１４、１２２、１２４、１２６、１３４と電源領域１４０乃至１４８の電力供給ライン（複数可）との間に挿入された１つ又は２つ以上のスイッチユニット１６０乃至１６８に、アサートされたサスペンド信号を提供することによって、対応する電源領域１４０乃至１４８からコンポーネント１１４、１２２、１２４、１２６、１３４の１つ又は２つ以上を接続解除することができる。さらに、ディアサートされたサスペンド信号を供給して、コンポーネントを対応する電源領域に再接続することもできる。例示すれば、ＭＭＸユニット１２６が特定の命令サイクルの間使用されないと予想されるとの判断に応じて、サスペンドコントローラ１３０は、アサートされたサスペンド信号をスイッチユニット１６６に提供して、ＭＭＸユニット１２６を電源領域１４６から接続解除することができる。その命令サイクルが終了すると、サスペンドコントローラ１３０は、ディアサートされたサスペンド信号をスイッチユニット１６６に提供して、ＭＭＸユニット１２６を電源領域１４６に再接続することができる。同様に、サスペンドコントローラ１３０は、システムメモリ１０８が使用されないと予想されるとの判断に応じて、アサートされた信号を、たとえば、ＢＣ１３６、ＭＢＩＵ１０４、及びＭＣ１０６を介してスイッチユニット１７０に提供して、システムメモリ１０８を電源領域１５０から接続解除することができる。スイッチユニット１６０乃至１７０は、たとえばトランジスタ等の適切なさまざまのスイッチングメカニズムのいずれも備えることができる。
【００１１】
図１は、図解を容易にするために、電源領域とプロセッサコンポーネントとの間の１対１の対応を示しているが、複数のコンポーネントを１つの電源領域に関連付けることができ、および／または、複数の電源領域を１つのコンポーネントに関連付けることができることが十分理解されよう。特定の電源領域に関連付けられたコンポーネントのすべてが特定の命令サイクル中に使用されないと予想される場合、その電源領域を当該電源領域の電源から切り離すことによってそれらのコンポーネントをサスペンドすることができる。代替的に、本開示の趣旨又は範囲から逸脱することなく、クロックゲーティング等の他の技法を使用して、プロセッサコンポーネント及び周辺コンポーネントをサスペンドすることもできる。
【００１２】
次に図２を参照すると、デコードモジュール１１６、デコードキャッシュ１３２、及びサスペンドコントローラ１３０の例示的な一実施態様が、本開示の少なくとも１つの実施形態に従って示されている。一実施形態では、デコードモジュール１１６は、プログラムフロー基準テーブル２０２を利用して、デコードモジュール１１６がデコードキャッシュ１３２に記憶する命令に関連付けられたプログラムフロー基準を決定する。図示した例では、テーブル２０２は、プロセッサ１０２に準拠した命令タイプの少なくともサブセットの複数のエントリーを含む。各エントリーは、特定の命令タイプを特定するプリフィックス／演算コードフィールド２０４と、対応するプロセッサコンポーネント又は周辺コンポーネントが、対応する命令タイプを有する命令の実行中に又は実行の結果として使用されると予想されるか否かを示す１つ又は２つ以上のフィールドとを有することができる。たとえば、これらのフィールドは、特定の命令タイプを有する命令が、システムメモリ１０８、整数ユニット１２４、ＦＰＵ１２４、又はＭＭＸユニット１２６を使用すると予想されるか否かをそれぞれ示すメモリフィールド２０６、整数フィールド２０８、ＦＰＵフィールド２１０、及びＭＭＸフィールド２１２を含むことができる。加えて、各エントリーは、命令タイプが潜在的なＣＯＦ命令であるか否かを示すＣＯＦフィールド２１３も含むことができる。
【００１３】
デコードモジュール１１６は、プリフェッチモジュール１１４から命令を受け取ると、その命令を適切な範囲までデコードし、その命令の演算コードやプリフィックス等の識別子を使用して、テーブル２０２における対応する命令タイプエントリーを特定する。デコードモジュール１１６は、テーブル２０２のエントリーのフィールドの値を使用して、デコードキャッシュ１３２のエントリーを、（フィールド２１４に記憶された）少なくとも部分的にデコードされた命令及び適切なプログラムフロー情報とポピュレート（populate）する。デコードキャッシュ１３２のプログラムフローフィールドは、インデックスを提供する線形命令ポインタ（ＬＩＰ）フィールド２１６と、命令がＣＯＦ命令であるか否かを示すＣＯＦフィールド２１８と、命令が、システムメモリ１０８、整数ユニット１２４、ＦＰＵ１２４、又はＭＭＸユニット１２６を使用すると予想されるか否かをそれぞれ示すフィールド２１８〜２２６を含むことができる。デコードキャッシュ１３２のエントリーは、ＣＯＦ命令が選ばれると予測されるか否かを示す予測フィールド２２８と、予測が補完される前にＣＯＦ命令が選ばれると予測される回数を示す予測カウントフィールド２３０と、補完（compliment）予測が実現される前にＣＯＦ命令が実行モジュール１２０によって正しく解決された回数を示す予測インデックスフィールド２３２と、ＣＯＦ命令のターゲットを示すターゲットフィールド２３４とをさらに含むことができる。デコードモジュール１１６は、テーブル２０２からの情報に加えて、たとえばプリフェッチモジュール１１４に関連付けられた分岐予測ロジックにより提供される分岐予測情報も使用して、これらのフィールドのそれぞれの適切な値を求めることができる。
【００１４】
サスペンドコントローラ１３０は、一実施形態では、デコードキャッシュ１３２を解析して、１つ又は２つ以上の命令サイクルを特定する。これらの命令サイクルのそれぞれは、実行モジュール１２０によって順に実行されると予想される、デコードキャッシュ１３２に常駐する命令シーケンスを表す。ここで、命令サイクルの終了は、デコードキャッシュ１３２に常駐していない命令の要求を含む。デコードキャッシュ１３２が、デコードキャッシュ１３２内にループを形成する命令を含む場合、命令シーケンスは、１つ又は２つ以上の命令の複数の生起を含むことができることに留意されたい。図２の例を使用して例示すると、ＬＩＰ１で開始する１つの例示的な命令サイクルは、｛ＬＩＰ１，２，３，４，５，６，７，２，３，４，５，６，７，２，３，４，５，６，７，８，９，１０｝を含む。ＬＩＰ７の命令がＣＯＦ命令であり且つ選ばれると予測されることを示すＣＯＦフィールド２１８及び予測フィールド２２８の値「１」と、命令がＬＩＰ２の命令に分岐することを示すターゲットフィールド２３４の値「２」と、ＬＩＰ２の命令への分岐が２回繰り返すことを示す予測カウントフィールド２３０の値「２」とによって、ＬＩＰ２〜７の命令シーケンスは３回繰り返されることが十分理解されよう。
【００１５】
予想される命令サイクル（複数可）を特定した後、サスペンドコントローラは、プロセッサ１０２が命令サイクルで予測されたように命令を実際に実行する場合に要すると予想される処理時間の継続期間を求めることができる。一実施形態では、この継続期間は、クロックサイクルを基準として求められる。サスペンドコントローラ１３０は、たとえば、１命令当たりの平均クロックサイクル数を使用して命令サイクルの総クロックサイクル数に到達することができる。例示すると、１命令当たりのクロックサイクルの所定の平均が２．４の場合、サスペンドモジュール１３０は、３０個の命令から成るシーケンスを有する命令サイクルが７２クロックサイクル（すなわち、２．４クロックサイクル／命令×３０命令）を要すると判断することができる。代替的に、サスペンドコントローラ１３０は、命令サイクルの命令のそれぞれを実行するためにプロセッサ１０２により使用されるクロックサイクル数を、それらの命令の命令タイプに基づいて求めて、命令サイクルの総クロックサイクル数に到達することもできる。
【００１６】
サスペンドコントローラ１３０は、たとえば、命令サイクルの命令に対応するデコードキャッシュ１３２のエントリーのフィールド２２０乃至２２６を使用して、命令サイクルの実行中に使用されないと予想されるコンポーネントを特定することができる。例示すると、ＬＩＰ２の命令は、フィールド２２０及び２２４に「１」の値を有し、これは、システムメモリ１０８及びＦＰＵ１２４が、命令を実行するのに使用されることを示しているのに対して、上記で提供した例示的な命令サイクルの命令のいずれも、フィールド２２２にも２２６にも「１」の値を有せず、これは、整数ユニット１２２もＭＭＸユニット１２６も例示的な命令サイクルの命令の実行中に使用されると予想されないことを示している。命令サイクルの予想された継続期間及び命令サイクルの実行中に使用されないと予想されたコンポーネントに基づいて、サスペンドコントローラ１３０は、たとえば、アサートされたサスペンド信号を適切なスイッチングユニット（図１）に提供することにより、適切なプロセッサコンポーネント及び周辺コンポーネントをサスペンドすることができる。
【００１７】
次に図３を参照して、プロセッサコンポーネント及び周辺コンポーネントを特定してサスペンドする１つの例示的な方法３００が、本開示の少なくとも１つの実施形態に従って示されている。この方法３００は、ステップ３０２で開始する。ステップ３０２において、デコードキャッシュ１３２の特定された命令サイクルの継続期間が求められる。上述したように、この継続期間は、命令サイクルの命令シーケンスの実行中に使用されると予想されたクロックサイクル数によって表すことができる。
【００１８】
ステップ３０４において、サスペンドコントローラ１３０は、予測された継続期間の一部又は全部の間サスペンドすることができる１つ又は２つ以上のコンポーネントを特定する。一方、一定のコンポーネントをシャットダウンし、その後、再起動する際に浪費される電力及びクロックサイクルが存在し得ることが十分理解されよう。たとえば、一定のコンポーネントは、数十、数百、又は数千個のクロックサイクル及び無視できる電力を上回る電力を必要とする場合がある初期化を起動時に必要とする場合がある。したがって、ステップ３０６において、サスペンドコントローラ１３０は、特定のコンポーネントをサスペンドすることの節電の利点があるか否かを、その特定のコンポーネントをサスペンドする電力コスト及び時間コストを考慮して判断する。この評価は、コンポーネントがサスペンドされている間に節約される電力と、そのコンポーネントをシャットダウンし、その後、再起動するのに消費される電力とを考慮することができる。たとえば、命令サイクルが、１００クロックサイクルの長さであると予測され、特定のコンポーネントが、１サイクル当たり０．００１ミリワット（ｍＷ）の節電、すなわち、その命令サイクルの間０．１ｍＷの節電でそれらのサイクルの９０（１０サイクルの再初期化期間を仮定する）の間シャットダウンできる場合において、シャットダウン電力コストが０．１ｍｗに近いか又は０．１ｍＷよりも大きいときは、サスペンドコントローラ１３０は、そのコンポーネントのサスペンドを差し控えることを選ぶことができる。
【００１９】
別の実施形態では、予想される継続期間を１つ又は２つ以上のしきい値を比較することに基づいて、コンポーネントをサスペンドすることの相対値を求めることができる。たとえば、継続期間が、一定のしきい値（たとえば、１００クロックサイクル）よりも小さい場合、サスペンドコントローラは、コンポーネントのサスペンドを差し控えることを選ぶことができる。代替的に、サスペンドコントローラ１３０によって利用されるサスペンドオペレーションのタイプを、予測された比較を１つ又は２つ以上のしきい値と比較することに基づいて求めることができる。例示すると、継続期間が第１のしきい値（たとえば、５０クロックサイクル）よりも小さい場合には、サスペンドオペレーションは行われない。継続期間が第１のしきい値よりも大きいが、第２のしきい値（たとえば、２００クロックサイクル）よりも小さい場合には、クロックゲーティングサスペンドオペレーションを行うことができる。継続期間が第２のしきい値よりも大きい場合には、コンポーネントをその電源領域から切り離すサスペンドオペレーションを行うことができる。多段階のサスペンドオペレーションを有することによって、特定の命令サイクルに対して、その予想された継続期間に基づき節電／シャットダウンコストのバランスを調節することができる。サスペンドされる処理デバイスの特定のコンポーネントに関してしきい値を設定できることが十分理解されよう。たとえば、マルチプレクサや加算器等の単純なコンポーネントがサスペンドされる場合、クロックゲーティングしきい値は、比較的低く（たとえば、２〜３クロックサイクル）設定することができるのに対して、ＦＰＵ等のより複雑なコンポーネントをサスペンドすることがサスペンドされる場合、クロックゲーティングしきい値は、比較的高く（たとえば、数百又は数千クロックサイクル）に設定することができる。
【００２０】
継続期間の少なくとも一部の間、コンポーネントをサスペンドすることが有利であると判断された場合、サスペンドコントローラ１３０は、ステップ３０８において、継続期間の特定された部分の間、コンポーネントをサスペンドする。継続期間の特定された部分の実行の終了時に、サスペンドコントローラ１３０は、コンポーネントが次の命令サイクルの間不要であると特定されていない限り、コンポーネントを再初期化し、および／または再起動する。コンポーネントが次の命令サイクルの間不要であると特定されている場合、サスペンドコントローラは、コンポーネントを、サスペンドされた状態に維持することができる。複数のコンポーネントがサスペンド可能であるとして特定されている場合、サスペンドコントローラ１３０は、ステップ３１０において、特定された各コンポーネントについてステップ３０６及び３０８を繰り返すことができる。
【００２１】
次に図４を参照すると、１つの例示的な方法４００が示されている。方法４００は、ステップ４０２で開始する。ステップ４０２において、複数の命令が受け取られる。これらの複数の命令からの命令シーケンスの実行中に使用されないと予想される、プロセッサの１つまたは２つ以上のコンポーネントが、ステップ４０４において特定される。ステップ４０６において、特定されたコンポーネントの１つまたは２つ以上が、プロセッサによる命令シーケンスの少なくとも一部の実行中にサスペンドしている。
【００２２】
次に図５を参照すると、１つの例示的な方法５００が示されている。方法５００は、ステップ５０２で開始する。ステップ５０２において、複数のデコードされた命令がキャッシュに記憶される。これらの複数の命令からの命令シーケンスの実行中に使用されないと予想される、プロセッサの１つまたは２つ以上のコンポーネントが、ステップ５０４において特定される。ステップ５０６において、命令シーケンスにない命令がプロセッサによる実行のために要求される前の継続期間が見積もられる。ステップ５０８において、プロセッサの１つまたは２つ以上の特定された１つ又は２つ以上のコンポーネントの少なくとも１つが、命令シーケンスの少なくとも一部の実行中に、見積もられた継続期間に基づいてサスペンドされる。
【００２３】
上記で開示した主題は、制限的ではなく、例示とみなされるべきであり、添付の特許請求の範囲は、本開示の真の趣旨及び範囲内に入るすべての変更、高度化、及び他の実施形態をカバーすることを目的としている。したがって、法律によって許可される最大範囲まで、本開示の範囲は、添付の特許請求の範囲及びその均等物の許容可能な最も広い解釈によって決定されるべきであり、上記詳細な説明によって制限も限定もされない。
【図面の簡単な説明】
【００２４】
【図１】本開示の少なくとも１つの実施形態による１つの例示的な処理システムを示すブロック図である。
【図２】本開示の少なくとも１つの実施形態による図１の１つの例示的な処理システムの１つの例示的なサスペンドコントローラを示すブロック図である。
【図３】本開示の少なくとも１つの実施形態による処理デバイスのコンポーネントを動的にサスペンドするための例示的な方法を示すフロー図である。
【図４】本開示の少なくとも１つの実施形態による処理デバイスのコンポーネントを動的にサスペンドするための例示的な方法を示すフロー図である。
【図５】本開示の少なくとも１つの実施形態による処理デバイスのコンポーネントを動的にサスペンドするための例示的な方法を示すフロー図である。
【図１】
2009501961.tif 000003
【図２】
2009501961.tif 000004
【図３】
2009501961.tif 000005
【図４】
2009501961.tif 000006
【図５】
2009501961.tif 000007
【手続補正書】
【提出日】平成19年2月9日(2007.2.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の命令を受け取るステップと、
前記複数の命令からの命令シーケンスの実行中に使用されないと予想される、プロセッサの１つ又は２つ以上のコンポーネントを特定するステップと、
前記プロセッサによる前記命令シーケンスの少なくとも一部の実行中に、前記プロセッサの前記１つまたは２つ以上の特定されたコンポーネントの少なくとも１つを、前記少なくとも１つのコンポーネントを再イネーブルするのに消費されると予想される電力量に基づいて選択的にサスペンドするステップとを含む、方法。
【請求項２】
前記少なくとも１つのコンポーネントをサスペンドするステップは、前記少なくとも１つのコンポーネントを１つまたは２つ以上の電源領域から切り離すステップを含む、請求項１記載の方法。
【請求項３】
前記少なくとも１つのコンポーネントをサスペンドするステップは、前記少なくとも１つのコンポーネントをクロックゲーティングすることを含む、請求項１記載の方法。
【請求項４】
前記少なくとも１つのコンポーネントを選択的にサスペンドするステップは、
前記命令シーケンスの少なくとも一部の前記実行のために前記少なくとも１つのコンポーネントをイネーブル状態に維持することによって消費されると予想される電力量が、前記少なくとも１つのコンポーネントを再イネーブルするのに消費されると予想される前記電力量よりも小さくないとの判断に応じて、前記少なくとも１つのコンポーネントをサスペンドするステップ、および
前記命令シーケンスの少なくとも一部の前記実行のために前記少なくとも１つのコンポーネントを前記イネーブル状態に維持することによって消費されると予想される前記電力量が、前記少なくとも１つのコンポーネントを再イネーブルするのに消費されると予想される前記電力量よりも大きくないとの判断に応じて、前記少なくとも１つのコンポーネントをイネーブル状態に維持するステップを含む、請求項１記載の方法。
【請求項５】
プロセッサであって、
複数のコンポーネントと、
複数の命令を記憶するためのストレージ手段と、
前記プロセッサによる前記複数の命令の命令シーケンスの実行中に使用されないと予想される前記複数のコンポーネントの１つまたは２つ以上のコンポーネントを特定するための手段と、
前記プロセッサによる前記命令シーケンスの少なくとも一部の実行中に前記１つまたは２つ以上の特定されたコンポーネントの少なくとも１つを、前記少なくとも１つのコンポーネントを再イネーブルするのに消費されると予想される電力量に基づいて選択的にサスペンドするための手段とを備える、プロセッサ。
【請求項６】
前記少なくとも１つのコンポーネントを選択的にサスペンドするための手段は、前記少なくとも１つのコンポーネントを１つまたは２つ以上の電源領域から切り離すための手段を含む、請求項１０記載のプロセッサ。
【請求項７】
前記命令シーケンスに含まれない命令が前記プロセッサによる前記実行のために要求される前の継続期間を求めるための手段をさらに備える、請求項５記載のプロセッサ。
【請求項８】
前記少なくとも１つのコンポーネントを選択的にサスペンドするための手段は、前記継続期間が第１のしきい値よりも大きいときに、前記少なくとも１つのコンポーネントをクロックゲーティングするための手段を含む、請求項７記載のプロセッサ。
【請求項９】
前記少なくとも１つのコンポーネントを選択的にサスペンドするための手段は、前記継続期間が第２のしきい値よりも大きいときに、前記少なくとも１つのコンポーネントを１つ又は２つ以上の電源領域から切り離すための手段を含み、ここで、前記第２のしきい値は、前記第１のしきい値よりも大きい、請求項７記載のプロセッサ。
【請求項１０】
前記少なくとも１つのコンポーネントを選択的にサスペンドするための手段は、前記継続期間が第１のしきい値よりも大きいときに、前記少なくとも１つのコンポーネントを１つ又は２つ以上の電源領域から切り離すための手段を含む、請求項７記載のプロセッサ。
【請求項１１】
前記少なくとも１つのコンポーネントを選択的にサスペンドするための手段は、
前記命令シーケンスの少なくとも一部の前記実行のために前記少なくとも１つのコンポーネントをイネーブル状態に維持することによって消費されると予想される電力量が、前記少なくとも１つのコンポーネントを再イネーブルするのに消費されると予想される前記電力量よりも小さくないとの判断に応じて、前記少なくとも１つのコンポーネントをサスペンドするための手段と、
前記命令シーケンスの少なくとも一部の前記実行のために前記少なくとも１つのコンポーネントを前記イネーブル状態に維持することによって消費されると予想される前記電力量が、前記少なくとも１つのコンポーネントを再イネーブルするのに消費されると予想される前記電力量よりも大きくないとの判断に応じて、前記少なくとも１つのコンポーネントをイネーブル状態に維持するための手段とを含む、請求項７記載のプロセッサ。
【国際調査報告】
2009501961.tif 000008
2009501961.tif 000009