(57)【要約】  本発明の実施形態は、ゼロ電圧プロセッサスリープ状態のための方法および装置に関する。プロセッサは専用キャッシュメモリを含んでよい。電圧レギュレータはプロセッサに連結されてプロセッサに動作電圧を供給してよい。プロセッサのゼロ電圧電力管理状態への遷移時に、電圧レギュレータからプロセッサに加えられる動作電圧は略ゼロに減少されてよく、プロセッサに関連付けられる状態変数は専用キャッシュメモリに保存されてよい。【選択図】図１
2009516309.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサに加えられる動作電圧を略ゼロボルトに減少させるゼロ電圧電力管理状態へ遷移することと、
前記プロセッサの複数の状態変数を保存することと、
前記プロセッサに加えられる動作電圧が前記略ゼロボルトよりも高い状態で、前記ゼロ電圧電力管理状態を抜けることと、を含む方法。
【請求項２】
前記ゼロ電圧電力管理状態を抜けた後に、前記プロセッサの前記状態変数を復元することをさらに含む、請求項１に記載の方法。
【請求項３】
前記プロセッサの状態変数を保存することは、前記プロセッサに加えられる前記動作電圧が略ゼロに減少されている間電力供給され続ける専用キャッシュメモリに前記プロセッサの前記状態変数を保存することをさらに含む、請求項１に記載の方法。
【請求項４】
前記プロセッサは少なくとも第一のコアと第二のコアとを含む、請求項１に記載の方法。
【請求項５】
前記プロセッサが前記ゼロ電圧電力管理状態に遷移する際、前記第一のコアの状態と前記第二のコアの状態との両方を保存することと、前記第一のコアの前記状態と前記第二のコアの前記状態との復元を同期させることとをさらに含む、請求項４に記載の方法。
【請求項６】
前記ゼロ電圧電力管理状態への前記遷移中に、現在の電圧レベルを監視することをさらに含む、請求項１に記載の方法。
【請求項７】
前記現在の電圧レベルを監視することは、
アナログ／デジタル変換器（ＡＤＣ）を利用して前記プロセッサの前記現在の電圧レベルを決定することと、
前記プロセッサへ前記動作電圧を提供する電圧レギュレータに対して、前記決定された現在の電圧レベルに基づき、デジタル電圧識別子（ＶＩＤ）表現を提供することと、
前記現在の電圧レベルが前記動作電圧よりも高いかを、ＶＩＤそれぞれを比較することにより決定することと、をさらに含む、請求項６に記載の方法。
【請求項８】
自身に関連付けられる専用キャッシュメモリを含むプロセッサと、
前記プロセッサに連結されて前記プロセッサに動作電圧を供給する電圧レギュレータと、を含み、
前記プロセッサのゼロ電圧電力管理状態への遷移中に前記電圧レギュレータは前記プロセッサに加えられる前記動作電圧を略ゼロボルトに減少させ、前記専用キャッシュメモリは前記プロセッサに関連付けられる複数の状態変数を受け取る、装置。
【請求項９】
前記ゼロ電圧電力管理状態を抜けた後、前記電圧レギュレータは、前記略ゼロボルトよりも高い電圧を供給することで、前記プロセッサに加えられる前記動作電圧を動作電圧状態に増加させ、前記プロセッサの動作状態は前記専用キャッシュメモリから復元される、請求項８に記載の装置。
【請求項１０】
前記専用キャッシュメモリは、前記プロセッサに加えられる前記動作電圧が略ゼロに減少されている間電力供給され続ける電源に連結される、請求項８に記載の装置。
【請求項１１】
前記専用キャッシュメモリは、前記プロセッサを含むパッケージの内部にある同期ランダムアクセスメモリ（ＳＲＡＭ）である、請求項１０に記載の装置。
【請求項１２】
前記プロセッサは少なくとも第一のコアと第二のコアとを含む、請求項１０に記載の装置。
【請求項１３】
前記第一のコアは第一の固有識別子を有し、前記第二のコアは第二の固有識別子を有し、前記専用キャッシュメモリは、特定のコアの複数の状態変数を、前記特定のコアの固有識別子に基づき復元する、請求項１２に記載の装置。
【請求項１４】
前記専用キャッシュメモリは、前記専用キャッシュメモリに状態変数を保存すべき最後のコアに対して複数の状態変数を復元する、請求項１３に記載の装置。
【請求項１５】
命令を記憶する機械読み取り可能な記憶媒体であって、前記命令は機械により実行されると、前記機械に、
加えられる動作電圧を略ゼロに減少させるゼロ電圧電力管理状態へ遷移することと、
複数の状態変数をメモリに保存することと、
より高い動作電圧で前記ゼロ電圧電力管理状態を抜けることと、
前記ゼロ電圧電力管理状態を抜けた後に、前記メモリから前記状態変数を復元することと、を含む動作を行わせる、機械読み取り可能な記憶媒体。
【請求項１６】
前記状態変数を保存することは、前記動作電圧が略ゼロに減少されている間電力供給され続ける専用キャッシュメモリに前記状態変数を保存する複数の命令をさらに含む、請求項１５に記載の機械読み取り可能な記憶媒体。
【請求項１７】
前記キャッシュメモリは同期ランダムアクセスメモリ（ＳＲＡＭ）である、請求項１６に記載の機械読み取り可能な記憶媒体。
【請求項１８】
前記ゼロ電圧電力管理状態への前記遷移中に、現在の電圧レベルを監視する複数の命令をさらに含む、請求項１５に記載の機械読み取り可能な記憶媒体。
【請求項１９】
前記ゼロ電圧電力管理状態に遷移する際、プロセッサの第一のコアの複数の状態変数と第二のコアの複数の状態変数との両方を保存する複数の命令をさらに含む、請求項１５に記載の機械読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２００４年８月３１日出願の発明者Ｋｕｒｔｓらによるインテル・コーポレーションに譲渡された米国特許出願番号１０／９３１，５６５、２００４年９月３日出願の発明者Ｎａｖｅｈらによるインテル・コーポレーションに譲渡された米国特許出願番号１０／９３４，０３４、２００４年１２月２８日出願の発明者Ｎａｖｅｈらによるインテル・コーポレーションに譲渡された米国特許出願番号１１／０２４，５３８、２００４年７月２７日出願の発明者Ｎａｖｅｈらによるインテル・コーポレーションに譲渡された米国特許出願番号１０／８９９，６７４、および同時に出願された発明者Ｊａｈａｇｉｒｄａｒによるインテル・コーポレーションに譲渡された「ダイナミックメモリサイジングのレイテンシを最適化する方法およびシステム」というタイトルの特許出願（事件整理番号０４２３９０．Ｐ２２０７６）に関している。
【背景技術】
【０００２】
本発明の実施形態は、電子システムおよび電源管理の分野に関している。より具体的には、本発明の実施形態は、ゼロ電圧プロセッサスリープ状態のための方法および装置に関している。
【０００３】
より多くのトランジスタおよびより高い周波数を持つ中央処理装置（ＣＰＵ）などの進化したマイクロプロセッサの増加に呼応して、コンピュータ設計者および製造者はしばしば電力・エネルギー消費の増加に直面する。携帯機器においては特に電力消費増加は過熱に繋がり、これにより性能に悪い影響が及ぼされ得、バッテリ寿命が著しく減少され得る。バッテリは典型的に限られた容量を持ち、携帯機器のプロセッサを必要以上に稼働させることは、望ましい以上に速く容量を枯渇させ得る。
【０００４】
故に、電力消費はラップトップコンピュータ、無線送受信器、携帯情報端末等を含む携帯機器にとって依然重要な課題である。例えば今日の携帯機器においては、ある部材をアクティビティあるいは需要の減少に基づくより低い電力スリープ状態に移行させることが電力損失課題の一解決法となっている。
【０００５】
一方策としてオペレーティングシステムは、電力制御インタフェース（ＡＣＰＩ）（例えば、電力制御インタフェース、バージョンｘ２８５、２００４年６月）などの内蔵電力管理ソフトウェアインタフェースをサポートすることもある。ＡＣＰＩはプロセッサおよび／またはチップセットによりサポートされ得る様々な「Ｃ状態」を含む電力管理ポリシーを記述する。このポリシーのためには、Ｃ０はプロセッサが高電圧および高周波数で動作するＲｕｎ  Ｔｉｍｅ状態として定義される。Ｃ１はコアクロックが内部停止するＡｕｔｏ  ＨＡＬＴ状態として定義される。Ｃ２は、コアクロックが外部停止する、Ｓｔｏｐ  Ｃｌｏｃｋ状態として定義される。Ｃ３は、全てのプロセッサクロックが停止されるＤｅｅｐ  Ｓｌｅｅｐ状態として定義され、Ｃ４は、全てのプロセッサクロックが停止され、プロセッサ電圧がより低いデータ維持点にまで減少されるＤｅｅｐｅｒ  Ｓｌｅｅｐ状態として定義される。さらに、より深いスリープ電力状態Ｃ５...Ｃｎも提案されている。これらさらなる電力状態は、電力状態Ｃ１からＣ４の等価セマンティックス（ｅｑｕｉｖａｌｅｎｔ  ｓｅｍａｎｔｉｃｓ）により特徴付けられるが、異なるｅｎｔｒｙ／ｅｘｉｔレイテンシおよび節電を持つ。
【０００６】
操作中、より深いスリープ状態に移行すべく、ＡＣＰＩはモバイルプロセッサに対して何ら新たなあるいは待ち状態の中断がないタイムスロットを検知してよい。ＡＣＰＩポリシーはその後、入力／出力（Ｉ／Ｏ）コントローラあるいはその他のチップセット機能を利用して、モバイルプロセッサをより深いスリープ状態へ移行させる。
【０００７】
ひとたびプロセッサがより深いスリープ状態に移行すると、オペレーティングシステムあるいは別のソースからのブレークイベントあるいは中断がチップセットに送られ、チップセットはその後プロセッサをより深いスリープ状態から抜けさせる。より深いスリープ状態を含む様々な電力管理状態間を遷移できる能力により、電力損失が減少しバッテリ寿命が増加する。
【０００８】
現在のところ、より深いスリープ状態への移行は、ＤＰＲＳＬＰＶＲ信号あるいは他の類似した信号などのプラットフォーム「Ｄｅｅｐｅｒ  Ｓｌｅｅｐ」信号がＩ／Ｏコントローラあるいは他の集積回路によりアサートされる都度、プロセッサ電圧レギュレータ回路の外部電圧基準を参照すること、およびこの基準電圧に調節することで行われる。電圧レギュレータはその後、第一の電圧からより深いスリープ状態に関連付けられた第二のより低い電圧へ遷移する。より深いスリープ状態を抜け出ると、他の方向の電圧遷移が、類似する特定のタイムウィンドウで起こる。
【０００９】
先に述べたように、低電力のスリープ状態は、携帯機器においてより良好なバッテリ寿命を達成するのに重要である。携帯機器市場は非常に競争の激しい商品区分であり、この区分において進化のための鍵となる分野の一つは、バッテリ寿命を保つための低電力による解決である。
【００１０】
不幸なことに、携帯機器内のプロセッサ用の既存のより深いスリープ状態は、プロセッサに対して電圧を依然加える必要があることから、依然無視できない量の電力を消費して、完全にパワーオフすることができない。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態による、プロセッサのゼロ電圧電力管理状態に入る、およびそこから出る遷移プロセスを示すフロー図である。
【００１２】
【図２】本発明の一実施形態による、ゼロ電圧電力管理状態を実施するのに利用され得るシステムの一例のブロック図である。
【００１３】
【図３】本発明の一実施形態による、専用スリープ状態ＳＲＡＭキャッシュおよびＳＲＡＭインタフェースの一例を示すブロック図である。
【００１４】
【図４】本発明の一実施形態による、ゼロ電圧プロセッサスリープ状態に移行するのに利用され得るプロセスを示すフロー図である。
【００１５】
【図５】本発明の一実施形態による、ゼロ電圧プロセッサスリープ状態から抜ける（ｅｘｉｔ）のに利用され得るプロセスを示すフロー図である。
【発明を実施するための最良の形態】
【００１６】
以下の記載において、本発明の幾多の実施形態を詳述する。しかし、この詳細は本発明の理解を促す目的から、および本発明を利用する実施形態の例を記載する目的から含められている。この詳細は本発明を記載された特定の実施形態に制限するのに利用されるべきではない、というのも本発明の範囲内において他の変形例および実施形態も可能だからである。さらに、本発明の完全な理解を促すことを目的として幾多の詳細を述べるが、当業者にとっては本発明の実施形態を実施するのにこれら特定の詳細が必須ではないことが明白であろう。
【００１７】
以下の記載において、特定の部材、回路、状態図、ソフトウェアモジュール、システム、タイミングなどが例示目的で記載される。しかし、他の種類の部材、回路、状態図、ソフトウェアモジュール、システム、および／またはタイミングなどには他の実施形態が適用可能であることを理解されたい。
【００１８】
図１を参照して、一実施形態においては、プロセッサなどの集積回路デバイスが、ブロック１０５においてゼロ電圧電力管理状態への遷移を開始する。ゼロ電圧電力管理状態は、例えば、電力制御インタフェース（ＡＣＰＩ）仕様、２００２年３月３１日改訂版２．０ａ（Ｃｏｍｐａｑ  Ｃｏｍｐｕｔｅｒ  Ｃｏｒｐｏｒａｔｉｏｎ、インテル・コーポレーション、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ、Ｐｈｏｅｎｉｘ  Ｔｅｃｈｎｏｌｏｇｉｅｓ  Ｌｔｄ．，およびＴｏｓｈｉｂａ  Ｃｏｒｐｏｒａｔｉｏｎにより発行）に則ったＤｅｅｐｅｒ  Ｓｌｅｅｐ状態であってよい。この遷移中、プロセッサのクリティカル状態が保存される（ブロック１１０）。プロセッサのクリティカル状態には、アーキテクチャ、マイクロアーキテクチャ、デバッグ状態に関連付けられた状態変数、および／または、該プロセッサに関連付けられた類似した状態変数が含まれる。プロセッサの動作電圧は略ゼロに実質的に減少され、これによりプロセッサは非常に低い電力消費特性を持つ非常に深いスリープ状態に入る（ブロック１１５）。今後プロセッサあるいはＣＰＵの状態あるいはクリティカル状態についての言及している箇所は、プロセッサあるいはＣＰＵに関する状態変数を含むことが意図されている。
【００１９】
この後、ゼロ電圧電力管理状態を抜ける要求を受けると、プロセッサは、ブロック１２０にてより高い基準動作電圧においてゼロ電圧電力管理を抜ける。該プロセッサに関するクリティカル状態変数も復元される（ブロック１２５）。実施形態によっては、基準動作電圧は例えば最小アクティブ状態動作電圧であってよい。
【００２０】
本実施形態およびその他の実施形態のさらなる詳細を以下に記載する。
【００２１】
本発明の実施形態は、ハードウェア、ファームウェア、およびソフトウェアのうちの一つ、あるいはこれらの組み合わせに実装され得る。本発明の実施形態は、その全体が、あるいは部分的に、機械読み取り可能な媒体に記憶され、これに記述された動作を実行する少なくとも一つのプロセッサにより読み取られ、実行されてよい、命令により実施されてもよい。機械読み取り可能な媒体は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気的、光学的、音声的、あるいはその他の形式の伝播信号（運搬波、赤外信号、デジタル信号など）などを含んでよい。
【００２２】
図２は、一以上の実施形態のゼロ電圧電力管理状態遷移法を実施し得る例示的なシステム２００のブロック図である。図２は２Ａと２Ｂとに分割されていることに注意されたい。システム２００はノートブックあるいはラップトップコンピュータシステムであってよく、あるいは携帯機器、携帯情報端末、無線電話／送受信器など他の種類の携帯電子システムであってよく、あるいはデスクトップあるいはエンタープライズ計算システムなどの非携帯システムであってさえもよい。他の種類の電子システムが様々な実施形態の範囲内であってもよい。
【００２３】
システム２００は、プロセッサ２０５、プラットフォームレベルのクロックジェネレータ２１１、プロセッサ２０５に連結される電圧レギュレータ２１２、バス２１７を介してプロセッサ２０５に連結されるメモリ制御ハブ２１５、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリおよび／または別の種類のメモリのうちの一以上を含んでよいメモリ２２０、バス２２７を介してメモリ制御ハブ２１５に連結される入力／出力（Ｉ／Ｏ）制御ハブ２２５、およびバス２３２を介してＩ／Ｏ制御ハブ２２５に連結される大容量記憶デバイス２３０を含む。一実施形態においては、システム２００が上述のサブシステムを持つ携帯機器であってよいが、システム２００は、上述のサブシステムより多いまたは少ないサブシステムを有する、異なる種類の携帯機器あるいは非携帯機器であってよいことは理解されるべきである。
【００２４】
一実施形態においては、プロセッサ２０５は、例えば、命令を処理すべく一以上の処理コア（例えば３２０および３２２）と少なくとも一つの実行部３１０とを含むインテルペンティアム（登録商標）Ｍプロセッサの後継プロセッサなどのインテル（登録商標）アーキテクチャマイクロプロセッサであってよい。このような実施形態においては、プロセッサ２０５は、二つ以上の電圧／周波数動作点を提供するインテルスピードステップ（登録商標）技術あるいは別の電力管理に関する技術を含むことができる。関連するクロック／電力管理３５０も、二以上の電圧／周波数対間の遷移を制御すべくプロセッサに含まれてよい。
【００２５】
他の実施形態においては、プロセッサ２０５はデジタル信号プロセッサ、エンベデッドプロセッサ、あるいは異なるソースからのマイクロプロセッサなどの別の種類のプロセッサであってよい。
【００２６】
さらに、プロセッサ２０５は、後に説明するが、プロセッサがゼロ電圧スリープ状態に入る際にプロセッサのクリティカル状態変数を記憶するのに利用される専用キャッシュメモリ３４０（同期ランダムアクセスメモリ（ＳＲＡＭ））を含んでもよい。キャッシュメモリはプロセッサのチップに内蔵されてもよく、プロセッサチップと同じ筐体内にパッケージされてもよい。
【００２７】
インテルスピードステップ（登録商標）技術あるいは別の種類の電力管理技術がプロセッサ２０５に含まれる場合、該技術に関連付けられた利用可能な電圧／周波数対には、完全機能動作モード用にプロセッサ２０５に関連付けられた最小アクティブモード動作電圧および最小動作周波数に対応する最小電圧／周波数対が含まれる。これらはここで、最小動作電圧および最小動作周波数あるいは最小アクティブモード動作電圧および周波数とそれぞれ呼ばれてよい。最大動作電圧および周波数も同様に定義してよい。他の利用可能な周波数対を、動作電圧／周波数対と呼ぶ場合も、単に他の電圧／周波数対と呼ぶ場合もある。
【００２８】
ゼロ電圧ｅｎｔｒｙ／ｅｘｉｔロジック３５４が、ゼロ電圧スリープ状態に入るあるいはそこから抜けるのを制御すべく、プロセッサ２０５内の電源管理ロジック３５０の中あるいは外に含まれてもよく、ここではＣ６状態とも称される。低電力ゼロ電圧プロセッサスリープ状態に関しては後でより詳細に説明する。
【００２９】
ゼロ電圧ｅｎｔｒｙ／ｅｘｉｔロジック３５４によりアクセス可能な電圧識別（ＶＩＤ）メモリ３５２は電圧識別コードルックアップテーブルを記憶すべく含めることができる。ＶＩＤメモリはオンチップあるいはオフチップレジスタあるいは別の種類のメモリであってよく、ＶＩＤデータはメモリ内にソフトウェア、基本入力／出力システム（ＢＩＯＳ）コード２７８（ファームウェアハブ２７９あるいは別のメモリ内に記憶することのできる）、オペレーティングシステム、その他のファームウェアであってよく、および／またはハードコードされていてもよい。また、ＶＩＤおよび関連データを含むソフトウェアルックアップテーブルはロジック３５０によりアクセスされてもよい。ＶＩＤ情報もＣＰＵ上にヒューズ（例えばプログラム可能なＲＯＭ（ＰＲＯＭ））として記憶されてよい。
【００３０】
アナログ／デジタル変換器（ＡＤＣ）３５６はさらにゼロ電圧ｅｎｔｒｙ／ｅｘｉｔロジック３５０の一部として、後に詳述するように、電圧供給レベルを監視すべくおよび関連デジタル出力を提供すべく、提供されてもよい。
【００３１】
電圧レギュレータ２１２はプロセッサ２０５に対して動作電圧を供給して、例えばＩＭＶＰ−６仕様などのインテルモバイル電圧ポジショニング（ＩＭＶＰ）仕様のバージョンに則ってよい。このような実施形態においては、電圧レギュレータ２１２は、バス２３５を介してプロセッサ２０５からＶＩＤ信号を受信するよう連結され、ＶＩＤ信号に呼応して、関連する動作電圧をプロセッサ２０５に信号線２４０を介して提供する。電圧レギュレータ２１２は一以上の信号に呼応してプロセッサ２０５への電圧２４０をゼロ状態に減少させ、ゼロ電圧スリープ状態を出た後、該電圧をプロセッサバックアップへ増加して元に戻す（ｒａｍｐ）するゼロ電圧スリープロジック３０２を含んでよい。その他の実施形態においては、異なる仕様に準拠する電圧レギュレータを含む異なる種類の電圧レギュレータを利用することができる。さらに、幾つかの実施形態において電圧レギュレータは、プロセッサ２０５を含むシステム２００の別の部材と統合されてもよい。設計上の考慮によっては、電圧レギュレータはＣＰＵと統合されてもされなくてもよいことは理解されよう。
【００３２】
メモリ制御ハブ２１５はグラフィックおよびメモリ制御機能両方を含むことができ、ここでは別にグラフィックおよびメモリ制御ハブ（Ｇ／ＭＣＨ）あるいはノースブリッジと称す。グラフィックおよびメモリ制御ハブ２１５およびＩ／Ｏ制御ハブ２２５（サウスブリッジと称されることもある）は、集合的にチップセットと称されてよい。他の実施形態においては、チップセット機能は異なる様式にパーティションされてよく、および／または、異なる数の集積回路チップを利用して実装されてよい。例えば、実施形態によっては、グラフィックおよびメモリ制御機能を、異なる集積回路デバイスを利用して提供してもよい。
【００３３】
一実施形態のＩ／Ｏ制御ハブ２２５は、別にＣ状態制御ロジックと称される電力管理状態制御ロジック２４２を含む。電力管理状態制御ロジック２４２は、プロセッサ２０５に関する幾つかの電力管理および／または通常動作状態間の遷移の幾つかの局面を、自動的にあるいはオペレーティングシステムあるいは他のソフトウェア・ハードウェアイベントに呼応して、管理してよい。例えば、Ｃ０、Ｃ１、Ｃ２、およびＣ４と称される少なくともアクティブモードおよび電力管理状態がサポートされる、インテル（登録商標）アーキテクチャプロセッサにおいては、電源管理状態制御ロジック２４２は少なくとも部分的に、これら状態の少なくとも一つのサブセット間の遷移を、ストップクロック（ＳＴＯＰＣＬＫ＃）、プロセッサスリープ（ＳＬＰ＃）、ディープスリープ（ＤＰＳＬＰ＃）、より深いストップ（ＤＰＲＳＴＰ＃）および／またはストッププロセッサ（ＳＴＰＣＰＵ＃）信号のうちの一以上を利用して制御してよく、これを以下に詳述する。
【００３４】
さらに、一実施形態においては、残りのプロセッサ２０５は動作電圧２４０をゼロ状態にまで減少させることでパワーダウンされる間、プロセッサ２０５に関するクリティカル状態変数を記憶できるよう、Ｉ／Ｏ制御ハブ２２５（ＶＩ／Ｏ３４９）からの電圧が、専用キャッシュメモリ３４０へ充分な電力を提供すべく提供されてよい。
【００３５】
異なる種類のアーキテクチャにおいては、および／または異なる電源管理および／または通常動作状態をサポートするプロセッサにおいては、電力管理状態制御ロジック２４２は二以上の異なる電力管理および／または通常の動作状態間の遷移を、図２に示す信号と類似したあるいは異なってよい一以上の信号を利用して制御してよい。
【００３６】
大容量デバイス２３０は一以上のコンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）ドライブおよび関連するディスク、一以上のハードドライブおよび関連するディスク、および／または計算システム２００がネットワークを介してアクセス可能な一以上の大容量デバイスを含むことができる。例えば光ドライブおよび関連する媒体などの、他の種類の大容量デバイスが様々な実施形態の範囲内にある。
【００３７】
一実施形態においては、大容量デバイス２３０は、電力制御インタフェース（ＡＣＰＩ）仕様の現在のおよび／または後継のバージョンサポートすることを目的としてコード２５０を含むオペレーティングシステム２４５を記憶する。ＡＣＰＩは以下に詳述する電力管理の幾つかの局面を制御するのに利用されてよい。オペレーティングシステム２４５は、Ｗａｓｈｉｎｇｔｏｎ州ＲｅｄｍｏｎｄのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから利用可能なウィンドウズ（登録商標）あるいは別の種類のオペレーティングシステムであってよい。また、他の実施形態においては、例えばＬｉｎｕｘオペレーティングシステムなどの異なる種類のオペレーティングシステム、および／または異なる種類のオペレーティングシステムに基づく電源管理が利用されてよい。さらに、ここにＡＣＰＩに関連するものとして記載する電力管理機能および能力は異なるソフトウェアあるいはハードウェアにより提供されてよい。
【００３８】
さらに、システム２００は、ユーザに情報を表示する目的上、陰極線管（ＣＲＴ）あるいは液晶ディスプレイ（ＬＣＤ）などの表示デバイスを含んでよい。さらに、システム２００は、英数字およびその他のキーを含む英数字入力デバイス（キーボードなど）を含んで、プロセッサ２０５に情報およびコマンド選択を通信することができる。さらなるユーザ入力デバイスには、方向情報およびコマンド選択をプロセッサ２０５に通信し、且つ表示デバイス上のカーソルの動きを制御する、マウス、トラックボール、トラックパッド、スタイラス、あるいはカーソル方向キーなどの、カーソル制御デバイスであってもよい。
【００３９】
システム内に含まれうる別のデバイスには、紙、フィルム、あるいは類似した種類の媒体などの媒体上の命令、データあるいは他の情報の印刷に利用されうるハードコピーデバイスがある。さらに、スピーカおよび／またはマイクロフォン（不図示）などの音声記録および再生デバイスをオプションとして音声インタフェースとしてシステム２００に含めてもよい。
【００４０】
システム２００が携帯あるいは可搬システムの場合、バッテリあるいはバッテリコネクタ２５５を含んで排他的にあるいは別の種類の電源なしにシステム２００を動作させてよい。さらに、幾つかの実施形態においては、アンテナ２６０が含まれ、例えば無線ローカルエリアネットワーク（ＷＬＡＮ）デバイス２６１を介してシステム２００に連結され、システム２００への無線接続を提供してよい。
【００４１】
（ＷＬＡＮ）デバイス２６１は、Ｗｉｒｅｌｅｓｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌを利用してよい無線通信モジュールを含んで無線通信チャネルを構築してよい。無線通信モジュールは、１９９９年発行の米国電気電子学会（ＩＥＥＥ）８０２．１１規格、１９９９年発行のＩＥＥＥ規格８０２．１１−１９９９などの無線ネットワーク規格を実装してよい。
【００４２】
一実施形態においては、図２のプロセッサ２０５は様々な既知のＣ状態間を遷移してよいことは理解されるべきである。プロセッサ２０５の通常動作状態あるいはアクティブモードは、プロセッサがアクティブに命令を処理するＣ０状態である。Ｃ０状態においては、プロセッサ２０５は最大電圧／周波数対が電圧／周波数設定を提供しうる高周波数モード（ＨＦＭ）にある。
【００４３】
例えば電力を保持すべくおよび／または熱負荷を減少すべく、プロセッサ２０５は可能な場合において、より低い電力状態に遷移してよい。例えば、プロセッサ２０５は、マイクロコードなどのファームウェア、あるいはオペレーティングシステム２４５などのソフトウェア、さらには場合によってはＡＣＰＩソフトウェアのＨＡＬＴあるいはＭＷＡＩＴ命令（不図示）実行に呼応して、Ｃ０状態から、Ｃ１あるいはＡｕｔｏ−ＨＡＬＴ状態に遷移してよい。Ｃ１状態においては、プロセッサ２０５回路の幾つかの部分がパワーダウンして、ローカルクロックがゲート（ｇａｔｅ）されてもよい。
【００４４】
プロセッサは、例えばＩ／Ｏコントローラ２２５によるＳＴＰＣＬＫ＃あるいは類似信号のアサーションを受けて、ストップグラントあるいはＳＬＥＥＰ状態とも称されるＣ２状態へ遷移することもできる。Ｉ／Ｏコントローラ２２５は、オペレーティングシステム２４５がより低い電力モードに入ってよいあるいは入るべきであると決定しこれをＡＣＰＩソフトウェア２５０を介して示すことに呼応して、ＳＴＰＣＬＫ＃信号をアサートしてよい。特に、一以上のＡＣＰＩレジスタ（不図示）がＩ／Ｏコントローラ２２４に含まれてよく、ＡＣＰＩソフトウェア２５０が、状態間の少なくとも幾つかの遷移を制御すべくこれらレジスタに書き込みを行ってよい。Ｃ２状態の動作中、プロセッサ２０５回路の幾つかの部分はパワーダウンされてよく、内部および外部コアクロックはゲートされてよい。幾つかの実施形態においては、プロセッサは直接Ｃ０状態からＣ２状態へ遷移してよい。
【００４５】
同様にプロセッサ２０５は、Ｄｅｅｐ  Ｓｌｅｅｐ状態とも称されるＣ３状態に、Ｉ／Ｏコントローラ２２５あるいは他のチップセット機能のＣＰＵＳＬＰ＃信号と、その後のＤＰＳＬＰ＃信号あるいはその他の類似信号とのアサートに呼応して、遷移してよい。Ｄｅｅｐ  Ｓｌｅｅｐ状態においては、内部プロセッサ回路のパワーダウンに加えて、プロセッサ２０５内の全てのフェーズロックループ（ＰＬＬ）がディセーブルされる。さらに、実施形態によっては、ＳＴＯＰ＿ＣＰＵ信号が入力／出力コントローラ２２５によりアサートされ、クロックジェネレータ２１１により受け取られ、クロックジェネレータがＣＰＵ２０５へクロック信号ＣＬＫを送るのを停止してよい。
【００４６】
図２のシステム２００においては、Ｃ４状態へのあるいはゼロ電圧スリープ状態への遷移は、例えばＡＣＰＩソフトウェア２５０が待ち状態のプロセッサ中断がないことを検知するのに呼応して行われてよい。ＡＣＰＩソフトウェアはこれを、例示的なＤｅｅｐｅｒ  Ｓｔｏｐ（ＤＰＲＳＴＰ＃）信号および例示的なＤＰＳＬＰ＃信号などの、一以上の電力管理関連の信号をＩＣＨ２２５にアサートさせることで行ってよい。Ｄｅｅｐｅｒ  Ｓｔｏｐ（ＤＰＲＳＴＰ＃）信号はチップセットからプロセッサへ直接提供され、プロセッサ上のクロック／電力管理ロジック３５０に低周波数モード（ＬＦＭ）を開始させる。低周波数モードにおいては、例えばプロセッサは最小から別の低動作周波数へ遷移してよい。
【００４７】
本発明の幾つかの実施形態においては、以下に記載するように、ＤＰＲＳＴＰ＃信号のアサートにより、さらに内部ＶＩＤ目標がゼロ電圧レベルに設定され、これによりゼロ動作電圧が電圧レギュレータ２１２によりプロセッサ２０５に対して加えられ、プロセッサは、非常に低い電力消費特性を持つ非常に深いスリープ状態へと遷移する。
【００４８】
本発明の一実施形態においては、例えばプロセッサ２０５などの集積回路はゼロ電圧電力管理状態への遷移を開始してよい。一例においては、プロセッサ２０５は中央処理装置（ＣＰＵ）２０５であってよい。さらに、ゼロ電圧管理状態は、例えば、ＡＣＰＩ規格に則ったより深いスリープ状態であってよい。この遷移中、ＣＰＵ２０５のクリティカル状態は保存されてよい。例えば、ＣＰＵ２０５に関するクリティカル状態変数は専用キャッシュメモリ（ＳＲＡＭ）３４０に保存されてよい。
【００４９】
その後ＣＰＵ２０５の動作電圧を略ゼロに減少させて、ＣＰＵ２０５を非常に低い電力消費特性を持つ非常に深いスリープ状態としてよい。特に、ゼロ電圧スリープ状態ロジック３０２を利用する電力レギュレータ２１２は動作電圧２４０をゼロにまで減少させてよい。前述のように、これはＣＰＵ２０５のクロック／電力管理ロジック３５０のゼロ電圧ｅｎｔｒｙ／ｅｘｉｔロジック３５４と連携して行われてよい。
【００５０】
一実施形態においては、このゼロ電圧電力管理状態は、ＡＣＰＩ規格と連携して実装されると、Ｃ６状態と呼ばれてよい。
【００５１】
その後、ゼロ電圧電力管理状態を出る要求を受けると、ＣＰＵ２０５はより高い基準動作電圧でゼロ電圧電力管理状態を抜ける。特に、ＣＰＵ２０５のゼロ電圧ｅｎｔｒｙ／ｅｘｉｔロジック３５４および電圧制御器２１２のゼロ電圧スリープロジック３０２の制御下においては、前述のように、電圧制御器２１２は基準動作電圧２４０を適切なレベルに上げて、ＣＰＵ２０５が適切に動作するようにしてよい。ＣＰＵ２０５のクリティカル状態変数はその後専用キャッシュメモリ３４０に復元される。
【００５２】
故に、電力管理スキームにより、ＣＰＵ２０５はその状態の保存、電力の停止、その後必要に応じて起動、クリティカル状態の復元、およびＣＰＵが停止している状態の継続、を行うことができる。これは、実施形態によっては、オペレーティングシステム２４５からの明確なサポートなしに行われてよいし、極端に短いレイテンシで行うことができる。
【００５３】
より具体的には、一実施形態においては、ゼロ電圧プロセッサスリープ状態（ＡＣＰＩ規格においてＣ６状態と称されてよい）においては、ＣＰＵ２０５のクリティカル状態が専用スリープ状態ＳＲＡＭキャッシュ３４０に保存され、これによりＣＰＵ２０５のコア動作電圧２４０が略０ボルトに下げられる中、Ｉ／Ｏ電力供給（ＶＩ／Ｏ）３４９をパワーオフしてよい。この時点でＣＰＵ２０５は略完全にパワーオフされ、極僅かの電力しか消費しない。
【００５４】
ｅｘｉｔイベントに呼応して、ＣＰＵ２０５は電圧制御器２１２に動作電力２４０を増加（ｒａｍｐ）して元に戻すことを示し（ＶＩＤコード２３５とともに）、フェーズロックループ（ＰＬＬ）をリロック（ｒｅｌｏｃｋ）して、クロック／電力管理ロジック３０５およびゼロ電圧ｅｎｔｒｙ／ｅｘｉｔロジック３５４を介してクロックを戻す。さらに、ＣＰＵ２０５は内部ＲＥＳＥＴを行って状態をクリアしてよく、その後ＣＰＵ２０５の状態を専用スリープ状態ＳＲＡＭキャッシュ３４０から復元してよく、ＣＰＵ２０５は実行ストリームにある状態から継続してよい。これら動作は、オペレーティングシステム２４５および既存の電力管理ソフトウェアインフラストラクチャに対して透明であるように、ＣＰＵ２０５ハードウェアにおいて非常に短い時間に行われ（約１００マイクロセカンド）てよい。
【００５５】
一実施形態においては、この方法は特にマルチプルプロセッサコアを持つＣＰＵ２０５に適している。この例においては、コア３２０（例えばコア＃０）およびコア３２２（例えばＣｏｒｅ＃１）、つまりデュアルコアＣＰＵ、は一例として説明される。しかし、任意の適切な数のＣＰＵコアを利用することができることは理解されるべきである。デュアルコア構造においては、ＣＰＵコア３２０、３２２は共有キャッシュ３３０を利用する。例えば、この共有キャッシュ３３０はコア３２０、３２２が共有するレベル２（Ｌ２）キャッシュ３２０であってよい。
【００５６】
さらに、各コア３２０、３２２はコアＩＤ３２１、マイクロコード３２３、共有状態３２４、および専用状態３２５を含む。コア３２０、３２２のマイクロコード３２３は、ＣＰＵ状態の保存／復元機能を実行するために、およびＣＰＵ２０５のクロック／電力管理ロジック３５０のゼロ電圧ｅｎｔｒｙ／ｅｘｉｔロジック３５４と連携したゼロ電圧プロセッサスリープ状態の実行における様々なデータのフローのために利用される。さらに、専用スリープ状態ＳＲＡＭキャッシュ３４０を利用してコア状態を保存するが、これを以下に詳述する。
【００５７】
システム２００および／または様々な実施形態の他のシステムは、図２に示されていない他の部材あるいは要素を含んでよいこと、および／または図２に示す全ての要素が全ての実施形態のシステムになくてもよいことが理解されよう。
【００５８】
図３を簡単に見てみると、図３は本発明の一実施形態による専用スリープ状態ＳＲＡＭキャッシュ３４０およびＳＲＡＭインタフェース３６４の一例を示すブロック図である。専用スリープ状態ＳＲＡＭキャッシュ３４０は、ＣＰＵ２０５が前述のゼロ電圧スリープ状態（Ｃ６状態）にある際に、アーキテクチャ、マイクロアーキテクチャ、デバッグ状態、およびマイクロコードパッチに関する状態変数を保存することができる。
【００５９】
一例においては、ＳＲＡＭ３４０のサイズはＣＰＵコアにつき８ＫＢ、および３２ビット幅であってよく、およびクロック／電力管理ロジック３５０によりクロックされてよい。前述のように、専用スリープ状態ＳＲＡＭキャッシュ３４０はＩ／Ｏ電圧（ＶＩ／Ｏ３４９）により、ＣＰＵ２０５への動作電圧が遮断された際にもその内容が維持されるように電源供給されてよい。
【００６０】
専用スリープ状態ＳＲＡＭ３４０は各々３２ビットの２Ｋ入力として構築されてよく、単一ビットエラー検知および訂正についてＥＣＣ保護を持ってよい。データパスは３２ビットであってアレイへの２サイクルのレイテンシをサポートしてよい。図３から分かるように、ＳＲＡＭインタフェース３６４は３２ビットデータを利用するデータバッファ３７０から３２ビットデータバスを含んでよい。
【００６１】
一例においては、制御レジスタバスインタフェースを利用して、前端クラスタインタフェースを利用してＳＲＡＭをアドレッシングする複雑さを減少させることで、簡単な方法でマイクロコードへインタフェースしてよい。インタフェースは２Ｋ制御レジスタおよび２レベルアドレッシングスキームを利用してよい。二つのレジスタを定義してＳＲＡＭをアドレッシングしてよく、この一つ目はＳＲＡＭベースレジスタであり、二つ目はＳＲＡＭデータレジスタであってよい。マイクロコードはＳＲＡＭアクセスを開始する前にベースレジスタを開始してよい。ベースレジスタの内容はデータレジスタへの次の読み取り／書き込みのためにＳＲＡＭにインデックスとして利用されてよい。データレジスタへの全てのアクセスの後に、ＳＲＡＭへのインデックスを自動的に１増分させてよい。
【００６２】
図３に示すように、一例においては、ＳＲＡＭインタフェース３６４は、アドレスデコーダ３８０からの読み出し／書き込みイネーブル信号に基づきＳＲＡＭ３４０に書き込む、およびそこから読み出す３２ビットデータをバッファするデータバッファ３７０を含んでもよい。アドレスデコーダ３８０はさらに、ベースレジスタ３８２およびリセットポインタに書き込みイネーブルをイネーブルしてよい。ベースレジスタ３８２を利用して、１２ビットポインタおよび２ビット読み出し／書き込みイネーブルによりＳＲＡＭ３４０上で動作するレジスタ３８４を増分させてよい。ベースレジスタ３８２の内容を、データレジスタへの次の読み出し／書き込み用のＳＲＡＭへのインデックスとして利用してよい。データレジスタへの全てのアクセスの後に、ＳＲＡＭへのインデックスを自動的に１増分させてよい。さらに、リセットポインタに基づき、レジスタ３８４はＳＲＡＭをリセットしてよい。
【００６３】
図４を参照すると、図４は本発明の一実施形態によるゼロ電圧プロセッサスリープ状態に入るのに利用されてよいプロセス４００を示すフロー図である。一実施形態においては、次の一連の動作がＣＰＵ２０５のＣＰＵコア３２０、３２２のマイクロコード３２３により方向付けられてよい。ＡＣＰＩ実施形態においては、Ｃ６状態を述べると、前述のようにゼロ電圧プロセッサスリープ状態がＭＷＡＩＴ命令を介して開始されてよい。
【００６４】
ソフトウェアの観点からすると、各ＣＰＵコア３２０、３２２はＭＷＡＩＴ命令を独立して実行してよい。一実施形態においては、ＣＰＵコア３２０、３２２はＬ２共有キャッシュ３３０および同じ電圧平面（ｖｏｌｔａｇｅ  ｐｌａｎｅ）を利用する。故に本実施形態においては、パッケージレベルＣ状態のＣＰＵ２０５のハードウェア整合が必要であり、特にＣ６状態が必要である。
【００６５】
本実施形態においては、各コア３２０、３２２はＭＷＡＩＴ命令を実行してよく、開始しているＣＰＵコアは待ち状態（例えばＣＣ６）に移行して、パッケージ全体（例えば、コア３２０、３２２両方を含む）がパッケージＣ６スリープ状態と称されうる状態に遷移する前に、他のコアもＣＣ６状態に移行するのを待ってよい。
【００６６】
特に図４を見ると、ゼロ電圧プロセッサスリープ状態に入る例が示されている。図４に示すように、各コアは、ゼロ電圧プロセッサスリープ状態が開始されると独立して状態保存を行う。特に、ＣＰＵコア＃０  ３２０を見ると、第一ＣＰＵコア＃０がアクティブであり（丸４０２）、その後ゼロ電圧スリープ状態へのコマンドが開始される（例えば、スリープあるいはＭＷＡＩＴ命令を介して）（丸４０４）。これに呼応して、丸４０６においてＣＰＵコア３２０の状態が専用キャッシュメモリ３４０に保存される。これには、専用状態３２５および共有状態３２４が含まれる。ＣＰＵコア３２０はその後第一スリープ状態４０８に移行し（例えばＣＣ６）、ここではパッケージ全体が総合パッケージスリープ状態に遷移する前に（例えばＣ６）他のコアもＣＣ６に移行するのを待つ。
【００６７】
同じように、他のＣＰＵコア（例えばＣＰＵコア＃１  ３２２）も同様に、丸４１４においてスリープ命令（例えばＭＷＡＩＴ）をコマンドし、その状態（例えば共有状態３２４および専用状態３２５両方）も専用キャッシュメモリ３４０に保存される（丸４１８）。しかしこの場合、これがスリープ状態に移行すべき最後のコアであるので、共有キャッシュ３３０もまた圧縮されて専用キャッシュメモリ３４０に保存される（丸４１６）。そして丸４２０において、第二ＣＰＵコア３２２も同様にスリープ状態に移行する（例えばＣＣ６）。
【００６８】
ＣＰＵコア３２０、３２２のマイクロコード３２３は一般的にどの制御レジスタがゼロ電圧プロセッサスリープ状態に保存および復元が必要か知る必要がある。レジスタのリストはＣＰＵ２０５上の全レジスタのサブセットであってよい。例えば、リストはビットベクタとして保存されてよい（例えば１０２４ビット長）。ベクタ内の各ビットは制御レジスタアドレスベースの一つの制御レジスタに対応してよい。例えばビットが１であればマイクロコードはビット位置を制御レジスタアドレスに翻訳してレジスタを保存／復元して、ビットが０であればスキップしてよい。制御レジスタが特別な処理を要する場合、ベクタ内の保存／復元ビットは０に設定されてよく、特別なマイクロコードが処理する保存／復元は主たる保存／復元ループの外で流れてよい。
【００６９】
前述のようにマイクロコード動作が行われると、クロック／電力管理ロジック３５０のｅｎｔｒｙ／ｅｘｉｔロジック３５４はデータフローを引き継ぐ（例えばＣ６フロー）。特に、これは状態保存に関して（４０６および４１８）マイクロコード動作が終わった後で、および各ＣＰＵコア３２０、３２２が独立したスリープ状態４０８、４２０に達した後で起こる（例えばＣＣ６状態）。
【００７０】
この時点で、ＣＰＵ２０５が必要とする状態は保存されるまたはＣＰＵ２０５からフラッシュされている。クロック／電力管理ロジック３５０のゼロ電圧ｅｎｔｒｙ／ｅｘｉｔロジック３５４はその後外部プラットフォームレベルエントリシーケンス（例えばＣ６）を、ＩＣＨ２２５から読み出すＩ／Ｏレジスタを行うことで開始する。一実施形態においては、これはＣＰＵ「Ｃ」状態に入るＡＣＰＩ定義方法であってよい。
【００７１】
この点からの外部バスの観点からのイベントシーケンスを図４に示す。Ｉ／Ｏコマンド４１０はＩＣＨ２２５／ＭＣＨ２１５から発行されてよい。特に、ストップクロック信号は丸４３０でアサートされてよい（ＳＴＰＣＬＫ＃）。そしてスリープ信号がアサートされてよい（丸４３１）（例えばＳＬＰ＃）。さらに、丸４３２において、深いスリープ信号がアサートされてよい（ＤＰＳＬＰ＃）。これらコマンドは前述の順序で、ＣＰＵ２０５が内部クロック分配を遮断してその後ＰＬＬを遮断することで応答してよい。
【００７２】
丸４３５において、より深いストップ信号がアサートされ（例えばＤＰＲＳＴＰ＃）、電圧レギュレータ２１２に対して電力を取り除くべく、またそうするのが安全なので、ＣＰＵ２０５はＶＩＤをゼロ電圧レベルに切り替える。これはＣ６ＶＩＤと称されてよい。このようにして、電力をディアサートする。しかし、ゼロボルトの代わりに、非常に少量の電圧をＶＩＤとして選んでもよいことは理解されるべきである。
【００７３】
正確なゼロ電圧レベルの代わりに、電圧レベルは「略ゼロの電圧レベル」に設定されてよい。この略ゼロの電圧レベルは、０．３Ｖあるいは０．５Ｖといった非常に低い電圧レベルであってよい。実施形態によっては、このような非常に低い略ゼロの電圧レベルは、スリープ状態へのおよびスリープ状態からのｅｎｔｒｙ／ｅｘｉｔレイテンシをそれぞれ最適化することができる。さらには、略ゼロの電圧レベルは、製造中（例えばテープアウト後）システム用（シリコン中の）に選択されてよく、ＣＰＵの異なるステッピングおよびリビジョン毎に異なるようにプログラムされてよい。
【００７４】
丸４４０において、電圧レギュレータ２１２からの動作電圧２４０がゼロボルトあるいは別の実質的に小さなレベルに達する際、ＣＰＵコア（例えばコア３２０、コア３２２）のパッケージは、パッケージスリープ状態（Ｃ６）にあると考えられる。動作電圧を引き下げるアクティブデバイスは存在しないので、ＣＰＵ２０５からのリークによって、電荷がリークするのにつれ、動作電圧は単純にゆっくり下がる。故に、ＣＰＵ２０５はゼロ電圧パッケージスリープ状態（Ｃ６）に移行した。前述の動作シーケンスは様々な異なる順序で実現されてよく、しかも前述の動作順序は単なる一例に過ぎない。
【００７５】
今度は図５を参照すると、図５はゼロ電圧プロセッサスリープ状態からのｅｘｉｔシーケンスのプロセス５００の一例を示すフロー図である。典型的に、ゼロ電圧プロセッサスリープ状態からの退出（ｅｘｉｔ）は、チップセットが、ＣＰＵ２０５の起動を必要とするイベント、最も可能性のあるのは中断イベントであるが、を検知すると始まる。しかし、チップセットはスヌープ中にＣＰＵを起動することなしにメモリへのマスタアクセス続行をできることは注意されたい。ゼロ電圧プロセッサスリープ状態から退出中のチップセットとＣＰＵ２０５との間に起こる外部イベントおよびハンドシェークシーケンスを、図５を参照しながら説明する。特に、このシーケンスは、前述のエントリフェーズ中に起こる事の逆と考えられる。
【００７６】
一実施形態においてはパッケージスリープ状態（Ｃ６）から、より深いストップ信号（ＤＰＲＳＴＰ＃）がディアサートされ（丸５０２）、これはクロック／電力管理ロジック３５０のＣＰＵ２０５およびゼロ電圧ｅｎｔｒｙ／ｅｘｉｔロジック３５４により検知され、低周波数モード（ＬＦＭ）ＶＩＤが電圧レギュレータ２１２に送られる。これは、電圧レギュレータ２１２に対して、コア動作電圧バックアップを必要なＶＩＤへ駆動するべきことを示す。
【００７７】
所定の時間において（例えばＩＣＨ２２５のタイマ制御により）、クロックをアサートバックする信号がアサートされ、深いスリープ（ＤＰＳＬＰ＃）信号がディアサートされる（丸５０５）が、これによりクロック／電力管理ロジック３５０のＰＬＬを開始する。この後、ＣＰＵ２０５は内部ＲＥＳＥＴを開始する（丸５０６）。このリセットが完了すると、ＣＰＵ２０５は電力およびクロックがエンゲージされ、ＣＰＵ２０５に関するクリティカル状態変数の復元の準備が整う。
【００７８】
一例としては、ＡＣＰＩ実施形態において、典型的にＣ状態退出イベント中に、ＣＰＵ２０５は、ＳＴＰＣＬＫ＃ディアサートがＣＰＵ内部に何かをするのを待つ。しかし、本発明の実施形態によると、ゼロ電圧プロセッサスリープ状態（例えばＣ６）において、状態を復元するより長いレイテンシなどにより、ＳＴＰＣＬＫ＃はオーバーライドされ、電力およびクロックが利用可能になるとすぐにＣ６退出の準備としてＣＰＵ２０５のコア３２０、３２２各々に対して状態復元（丸５１０および丸５３０）が始まる。ひとたびコア３２０、３２２の状態が復元されると、ＣＰＵ２０５は停止した箇所から継続する準備ができる。ＣＰＵ２０５のコア３２０、３２２両方からのマイクロコード３２３がそれぞれリセットされる（丸５１２および５３２）。
【００７９】
しかし、ＣＰＵコア３２０、３２２のいずれもアクティブにはならず（丸５１４および５３４）、スリープ信号がディアサートされ（丸５４０）、ストップクロック信号（ＳＴＰＣＬＫ＃）がディアサートされるまでの実行命令である。しかし、ひとたびストップクロックがディアサートされスリープ信号がディアサートされると、ＣＰＵ２０５およびコア３２０、３２２、およびチップセット全てが電源を投入され、稼働中となり、両方のコアがアクティブになる（丸５１４および丸５３４）。ＣＰＵ２０５はその後、そのキャッシュが空でありその後通常動作を始めるので、典型的に幾つかのコードフェッチを行う。より具体的には、両方のコアはＣ０状態において起動される。オペレーティングシステムはどのＣＰＵコアにイベント処理をさせるか決めてよく、他のコアをその後直ぐにスリープ状態に戻してよい。
【００８０】
前述の通り、利点は、ＣＰＵ２０５がハードウェアのＣ状態整合の大半を行うので、他のコアとのソフトウェア整合なしに、ソフトウェアが独立して各コアのゼロ電圧プロセッサスリープ状態（例えばＣ６）に入る要求ができることである。より具体的には、ゼロ電圧プロセッサスリープ状態（例えばＣ６）を利用することで、ＣＰＵ２０５がスリープ状態で必要とする電力は実質的にゼロに減らされる。
【００８１】
さらに、Ｃ６状態が記述されるＡＣＰＩ実施形態においては、コアＩＤフィールド３２１を利用してプロセッサ２０５のコア３２０および３２２の共有状態３２４の状態保存および復元を達成する効率的な方法も開示されている。この方法はＣ０へのコア退出同期の役目を果たす。コア識別子３２１は各コア３２０、３２２へヒューズを介してハードワイヤードされ、いつでもＣＰＵ２０５のコアにとって利用可能である。
【００８２】
コア３２０、３２２両方は、エントリ時に専用状態３２５および共有状態３２４を保存してよい。コア３２０、３２２は状態保存中にはなんらオーダ方法（セマフォのような）を利用しないのが望ましい。状態保存終了時に、各コアは自身の固有のコア識別子３２１をハードウェア状態に記録してよい。
【００８３】
第二のコアが状態保存を完了すると、そのコアは自身の固有のコア識別子３２１を同じハードウェア状態に書き込み、第一のコアのコア識別子を効率的にオーバーライドしてよい。コア識別子を含むこのハードウェア状態は、常にＯＮ電源で電力供給されることでＣ６にある間に保存される。Ｃ６退出時に、前述のように、コア３２０および３２２が状態復元を行う際には、保存されているコア識別子に整合するコア識別子が、共有状態３２４の復元を行うことを許される。コア３２０および３２２両方が専用状態３２５の復元を行うことができる。コアはその後保存されているコア識別子３２１にアクセスして、それらの保存状態の復元を行う必要があるかをチェックする。一つのコアのみが復元を行う必要がある。他のコアは共有状態３２４が復元中には待ち状態であってよい。復元が完了すると、両方のコアがＣ０状態へ移行する。
【００８４】
一実施形態においては、コア３２０、３２２はハードウェアセマフォ「Ｃ６オーダのセマフォ」を利用して、コア識別子３２１フィールドへ復元中に排他的アクセスを保証する。共有状態復元を可能とする擬似コードの一例を以下に示す。
ＣＣ６に最初に入るコア
Ｒｅｓｔｏｒｅ  ｄｅｄｉｃａｔｅｄ  ｓｔａｔｅ
Ｇｒａｂ  Ｃ６  Ｏｒｄｅｒ  Ｓｅｍａｐｈｏｒｅ
Ｒｅａｄ  Ｃ６  ｗａｋｅｕｐ．ｃｏｒｅＩＤ
Ｍａｔｃｈ  Ｃ６  ｗａｋｅｕｐ．ｃｏｒｅＩＤ  ａｇａｉｎｓｔ  ｏｗｎ  ｃｏｒｅＩＤ
Ｎｏ  ｍａｔｃｈ，ｒｅｌｅａｓｅ  Ｃ６  Ｏｒｄｅｒ  Ｓｅｍａｐｈｏｒｅ
Ｒｅｓｔｏｒｅ＿Ｃｏｍｐｌｅｔｅ：Ｗａｉｔ
Ｒｅａｄ  Ｃ６ｗａｋｅｕｐ．ｃｏｒｅＩＤ
Ｉｆ  ｃｏｒｅＩＤ！＝００ｊｕｍｐ  ｔｏ  Ｒｅｓｔｏｒｅ＿Ｃｏｍｐｌｅｔｅ
Ｉｆ  ｃｏｒｅＩＤ＝０ｊｕｍｐ  ｔｏ  ｉｎｓｔｒｕｃｔｉｏｎ  ａｆｔｅｒ  ｍｗａｉｔ
ＣＣ６に最後に入るコア
Ｒｅｓｔｏｒｅ  ｄｅｄｉｃａｔｅｄ  ｓｔａｔｅ
Ｇｒａｂ  Ｃ６  Ｏｒｄｅｒ  Ｓｅｍａｐｈｏｒｅ
Ｒｅａｄ  Ｃ６  ｗａｋｅｕｐ．ｃｏｒｅＩＤ
Ｍａｔｃｈ  Ｃ６  ｗａｋｅｕｐ．ｃｏｒｅＩＤ  ａｇａｉｎｓｔ  ｏｗｎ  ｃｏｒｅＩＤ
Ｍａｔｃｈ，ｌｏｃｋ  Ｃ６  Ｏｒｄｅｒ  Ｓｅｍａｐｈｏｒｅ
Ｇｏ  ｔｏ  ｓｈａｒｅｄ  ｓｔａｔｅ  ｒｅｓｔｏｒｅ
【００８５】
例示的な実施形態を、中央処理装置および電圧レギュレータとの関連でより深いスリープＣ６状態に入るおよびそこから出るという遷移を行うゼロ電圧プロセッサスリープ状態を参照しながら記載してきたが、様々な実施形態を異なる種類の電力管理構成および／または異なる種類の集積回路に対して適用することができる。さらに、ここで記載した例示的な実施形態においては電圧制御はＶＩＤ信号を利用して達成されたが、電圧制御を提供する他の方策も様々な実施形態の範囲内である。
【００８６】
ゼロ電圧プロセススリープ状態のための方法および装置の様々な実施形態を記載している。上述の明細書においては、本発明の実施形態を特定の例示的な実施形態により記載してきた。しかし、それに対して付随する請求項に述べる本発明のより幅広い精神、範囲から逸脱しないよう様々な変形例、変更例を加えることができることは理解されたい。故に、明細書及び図面は、限定的ではなくて例示的な意味合いで捉えられるべきである。
【図１】
2009516309.tif 000003
【図２Ａ】
2009516309.tif 000004
【図２Ｂ】
2009516309.tif 000005
【図３】
2009516309.tif 000006
【図４】
2009516309.tif 000007
【図５】
2009516309.tif 000008
【国際調査報告】
2009516309.tif 000009
2009516309.tif 000010
2009516309.tif 000011
2009516309.tif 000012
2009516309.tif 000013