(57)【特許請求の範囲】
【請求項１】
メモリと、
前記メモリに接続されたプロセッサと、
前記メモリに記憶され、前記プロセッサ上で実行されるよう構成されたカーネルであって、静止状態保存モード（ＱＳＲＭ）に入った後、電力制御集積回路（ＰＭＩＣ）のスイッチングレギュレータを低電力状態に保持するよう構成されたカーネルとを備え、
前記カーネルは、
実行中のユーザスペースプロセスおよび前記プロセッサ上で実行中のカーネルスレッドを凍結することと、
ウェイクアップ割込を生成するようウェイクアップソースを構成することと、
前記プロセッサに接続されたクロックゲート制御レジスタにおいて定義されたクロックをゲート制御することと、
前記プロセッサに接続されたゲート制御された装置に電力を供給するよう構成されたＰＭＩＣの線形レギュレータをオフ状態に設定することと、
前記プロセッサに電力を供給するよう構成されたＰＭＩＣの前記スイッチングレギュレータを低電力状態に設定することと、
前記プロセッサに接続された、シリアル周辺インターフェースクロックまたは汎用シリアルバスクロックまたはその両方をゲート制御することと、
前記プロセッサに接続されたクロック制御モジュールにおいて、前記プロセッサに対して状態保存モードを設定することと、
非ウェイクアップソースからの割込生成を無効にすることと、
前記プロセッサ上でプロセッサスケーリングを無効にすることと、
前記プロセッサ上でプロセッサスケーリングを前記無効にすることは、前記プロセッサによりサポートされる最大動作周波数に前記プロセッサを設定することをさらに含み、
前記プロセッサの主要クロックをゲート制御することと、
を行うことにより、前記ＱＳＲＭに入るように構成された、携帯電子装置の電力消費を低減するためのシステム。
【請求項２】
前記プロセッサに接続された周辺装置をさらに含み、前記カーネルは、
前記周辺装置を低電力状態に設定することと、
前記周辺装置内のウェイクアップソースがウェイクアップ割込を生成するよう構成することと、
を行うことにより、前記ＱＳＲＭに入るよう構成された、請求項１に記載のシステム。
【請求項３】
前記カーネルは、前記ＱＳＲＭに入った後、メモリを自己リフレッシュ状態に保持するよう、さらに構成された、請求項１に記載のシステム。
【請求項４】
前記カーネルは割込待ち（ＷＦＩ）命令に対して待機を実行するようさらに構成された、請求項１に記載のシステム。
【請求項５】
前記カーネルは、プロセッサスケーリングを無効にした後、前記ＰＭＩＣを低電力モードに設定するようさらに構成された、請求項１に記載のシステム。
【請求項６】
プロセッサにより実行されると、前記プロセッサに
実行中のプロセスおよび中央処理装置（ＣＰＵ）上で実行中のスレッドを凍結することと、
入力装置または出力装置またはその両方の装置を低電力状態またはサスペンド状態に設定することと、
ウェイクアップ割込を生成するようウェイクアップソースを構成することと、
クロックゲート制御レジスタにおいて定義されたクロックをゲート制御することと、
ゲート制御された装置に電力を供給するよう構成された線形レギュレータをオフ状態に設定することと、
前記ＣＰＵに電力を供給するよう構成されたスイッチングレギュレータを低電力状態に設定することと、
シリアル周辺インターフェースクロックまたは汎用シリアルバスクロックまたはその両方をゲート制御することと、
クロック制御モジュールにおいて前記ＣＰＵに対して状態保存モードを設定することと、
非ウェイクアップソースからの割込を無効にすることと、
ＣＰＵスケーリングを無効にすることであって、前記ＣＰＵスケーリングを無効にすることは、前記ＣＰＵによりサポートされる最大動作周波数に前記ＣＰＵを設定することをさらに含む、前記ＣＰＵスケーリングを無効にすることと、
を実行させる命令を記憶する、１つまたは複数のコンピュータ読取可能記憶媒体。
【請求項７】
前記入力装置または出力装置またはその両方の装置を低電力状態またはサスペンド状態に設定することは、装置状態をメモリに保存することと、前記装置を低電力モードに設定することと、前記装置を駆動するクロックをゲート制御することとを含む、請求項６に記載のコンピュータ読取可能記憶媒体。
【請求項８】
前記シリアル周辺インターフェースクロックまたは前記汎用シリアルバスクロックまたはその両方をゲート制御した後、電力制御集積回路（ＰＭＩＣ）を低電力モードに設定することをさらに含む、請求項６に記載のコンピュータ読取可能記憶媒体。
【請求項９】
前記クロック制御モジュールにおいて前記状態保存モードを設定した後、ＣＰＵ１次キャッシュまたは２次キャッシュまたはその両方をフラッシュすることをさらに含む、請求項６に記載のコンピュータ読取可能記憶媒体。
【請求項１０】
ＣＰＵスケーリングを無効にした後、割込命令に対して待機を実行することをさらに含む、請求項６に記載のコンピュータ読取可能記憶媒体。
【請求項１１】
メモリを自己リフレッシュモードに設定することをさらに含む、請求項６に記載のコンピュータ読取可能記憶媒体。
【請求項１２】
前記ウェイクアップソースは、電力制御イベント、ネットワークインターフェース、リアルタイムクロック、または電源ボタンのうちの少なくとも１つを含む、請求項６に記載のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
電子ブックリーダ（「Ｅブックリーダ」）、携帯電話、携帯メディアプレーヤ、タブレットコンピュータ、ネットブック、携帯情報端末等の電子装置および他の電子装置は、機能するにあたって電力に依存する。
【０００２】
これらの電子装置内において、プロセッサ（単数または複数）および周辺装置を含む部品の中には、動作中に相当量の電力を用いるものもある。これらの周辺装置は、外部メモリインターフェース（ＥＭＩ：ｅｘｔｅｒｎａｌ  ｍｅｍｏｒｙ  ｉｎｔｅｒｆａｃｅ）、汎用シリアルバス（ＵＳＢ：Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コントローラ、シリアル周辺インターフェース（ＳＰＩ：ｓｅｒｉａｌ  ｐｅｒｉｐｈｅｒａｌ  ｉｎｔｅｒｆａｃｅ）、インターインテグレーテッドサーキット（Ｉ２Ｃ：ｉｎｔｅｒ−ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）バスコントローラ、オーディオ装置、画像処理ユニット（ＩＰＵ：ｉｍａｇｅ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、入力装置、リアルタイムクロック、同期シリアルインターフェース（ＳＳＩ：ｓｙｎｃｈｒｏｎｏｕｓ  ｓｅｒｉａｌ  ｉｎｔｅｒｆａｃｅ）、ＮＯＲフラッシュメモリコントローラ、ＮＡＮＤフラッシュメモリコントローラ（ＮＦＣ：ＮＡＮＤ  ｆｌａｓｈ  ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ）、スマートダイレクトメモリアクセスコントローラ（ＳＤＭＡ：ｓｍａｒｔ  ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌｌｅｒ）、マルチメディアカード（ＭＭＣ：ｍｕｌｔｉ−ｍｅｄｉａ  ｃａｒｄ）記憶装置コントローラ、その他を含む。いくつかの実装においては、ＵＳＢ、ＮＦＣ、ＩＰＵ、ＳＤＭＡ、および他の周辺装置は、データをＳＤＲＡＭへと、またはＳＤＲＡＭから、ＥＭＩを介して移動することもある。これらの周辺装置は、プロセッサとして同一の「チップ」またはダイ上に存在してもよく、または他のダイ上に存在してもよく、または組み合わせであってもよい。
【０００３】
実行モードにおいてアクティブに使用されてはいないがアイドル状態にあるプロセッサは、相当量の電力を消費する。このアイドル状態は、電子装置により放散される熱の量を増加させる他にも、エネルギーを浪費する。電力消費を低減することは、バッテリーから動作する携帯装置の使用可能時間を増加させる。電力消費を低減することにより、電子装置から放散される熱も低減し、電子装置はより低い温度で動作することが可能となり、その結果、機器の寿命は伸び、冷却用の設計はより簡素化される。
【０００４】
携帯可能な市販装置における電力消費を低減するために、装置のプロセッサおよび周辺装置を「スリープ」モードに設定することによる様々な方式が提案されてきた。一般に、スリープモードに入ることは、マイクロプロセッサの未使用部分の電源遮断および／またはマイクロプロセッサのクロックスピードの低減を伴う。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、これらの技術による省電力は控えめなものにすぎない。さらに、スリープモードに入るためにおよびスリープモードから脱するために用いられる現在の技術により、コマンドを実行するにあたって容認できない待ち時間が導入されること、および実行モードに再び入る際にシステムの不安定性が生じることが多々ある。
【課題を解決するための手段】
【０００６】
上述のように、電子装置は、電力の消費および熱の放散を低減するために、低電力モードを利用する。電子装置は、電子ブックリーダ（「Ｅブックリーダ」）、携帯電話、携帯メディアプレーヤ、タブレットコンピュータ、ネットブック、携帯情報端末、組込装置等であり得る。
【０００７】
既存の低電力モードによる電力消費の低減は控えめなものにすぎず、コマンドの実行に対する容認できない待ち時間を導入し、実行モードに再び入る際にシステムの不安定性を生じさせ得る。
【０００８】
「静止状態保存モード」（ＱＳＲＭ）と称される新規の低電力モードに電子装置が入ることを可能にする電子装置の状態保存モードを、活用し、向上させるプロセスおよびシステムが開示される。電子装置はこのＱＳＲＭに入ることにより、安定した実行オペレーションを迅速且つ確実に再開する能力を保持しつつ、電力消費は大幅に低減され得る。
【０００９】
添付の図面を参照しつつ、詳細な説明を加えることにする。図面において、参照番号の最も左側の桁（単数または複数）は、その参照番号が最初に出現する図面を指す。異なる図面における同一参照番号の使用は、同様のまたは同一の項目を示す。
【図面の簡単な説明】
【００１０】
【図１】静止状態保存モード（ＱＳＲＭ）にある例示的なコンピュータシステムの概略図である。
【図２】実行モードからＱＳＲＭへ移行し、実行モードに戻る例示的な全般的プロセスおよびこれら２つの相対的電力消費を示すフローチャートである。
【図３】ＱＳＲＭに入る例示的なプロセスのフローチャートである。
【図４】オフ状態から始まるスイッチングレギュレータからの利用可能な電流、および低電力状態から始まるスイッチングレギュレータからの利用可能な電流と比較して、ＱＳＲＭから脱して実行モードに入る間のプロセッサに対する、時間の関数としての電力需要を示すグラフである。
【発明を実施するための形態】
【００１１】
１つの実装において、「静止状態保存モード」（ＱＳＲＭ）は、クロックを個別にゲート制御する能力および割込命令にウェイトをかける能力を有するプロセッサを利用し、内蔵のまたは外部の電力制御集積回路（ＰＭＩＣ：  ｐｏｗｅｒ  ｍａｎａｇｅｍｅｎｔ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）を有する電子装置により実行され得る。ゲート制御とは、回路の選択された部分（単数または複数）を遮断する能力を指す。ＰＭＩＣは、実行状態、低電力状態、オフ状態の間で移行する能力を有する線形レギュレータおよびスイッチングレギュレータを含む。例えば、米国・テキサス州・オースティンのフリースケール（登録商標）セミコンダクタ社製のｉ．ＭＸアーキテクチャおよびＡｔｌａｓ  ＰＭＩＣ  ＭＣ１３７８３は、プロセッサおよびＰＭＩＣの好適なファミリーの１つである。他のシステムオンチップ(ＳＯＣ：Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）も使用可能である。
【００１２】
プロセッサは、Ｌｉｎｕｘ（登録商標）、ＵＮＩＸ（登録商標）、ワシントン州・レッドモンドのマイクロソフト社のＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、マイクロソフト社のＷｉｎｄｏｗｓ  Ｍｏｂｉｌｅ（登録商標）、カリフォルニア州・クパティーノのアップル社のＭａｃ  ＯＳ（登録商標）、アップル社のＭａｃ  ＯＳ  Ｘ（登録商標）、およびカリフォルニア州・アラメダのウィンドリバー社のＶｘ  Ｗｏｒｋｓ（登録商標）を含むがこれらに限定されないオペレーティングシステムを実行する。
【００１３】
例えば、Ｅブックリーダまたは他の電子装置は、ｉ．ＭＸアーキテクチャを有するフリースケール（登録商標）プロセッサを内蔵し、Ｌｉｎｕｘ（登録商標）カーネルを実行し得る。カーネルは、電力制御集積回路（ＰＭＩＣ）、シリアル周辺インターフェース（ＳＰＩ）、外部メモリインターフェース（ＥＭＩ）、汎用シリアルバス（ＵＳＢ）コントローラ、画像処理ユニット（ＩＰＵ）、スマートダイレクトメモリアクセス（ＳＤＭＡ）、マルチメディアカード（ＭＭＣ）記憶装置コントローラ等の装置と通信するために、デバイスドライバを使用する。これらの周辺装置は、ｉ．ＭＸアーキテクチャの場合のようにプロセッサと同一の「チップ」またはダイ上に存在するか、他のダイ上に存在するか、または２つの組み合わせであり得る。
【００１４】
１つの実装においては、ユーザスペースプロセスにより起動されると、プロセッサはＱＳＲＭに移行する。ＱＳＲＭへ正常に移行した後に電力を消費し続ける部品は、低電力モードに留まるＣＰＵに電力を供給するスイッチングレギュレータを有する低電力スタンバイモードにあるＰＭＩＣと、メモリがリフレッシュを必要とするときに自己リフレッシュモードにある外部メモリとを含む。他の実装においては、ディスプレイおよび／またはＷＷＡＮ無線受信器も、ＱＳＲＭの間、アクティブモードまたはスタンバイモードに留まり得る。ＱＳＲＭは、同一の発明者による、２００８年１０月３０日に出願された、同時係属出願である米国特許出願第１２／２６１，９８０号に説明される静止仮眠モード（ＱＤＭ：ｑｕｉｅｓｃｅｎｔ  ｄｏｚｅ  ｍｏｄｅ）と組み合わせて用いられてもよい。
【００１５】
ウェイクアップソースは、通常動作の再開をトリガしてもよい。ウェイクアップソースは、電源ボタン、（外部電力供給源の接続時にＰＭＩＣにより生成される等の）充電器の検出、または割込を生成するＰＭＩＣにおけるリアルタイムクロックを含み得る。ウェイクアップソースから割込を受け取ると、プロセッサは、クロックを開放すなわち有効にし、割込を有効にし、および他の方法でシステム状態を復元する。入出力装置のデバイスドライバは、良好な保存された状態を用いて、以前の既知の良好な状態へ入出力装置を戻す。プロセッサはここにおいて実行モードにあり、割込をトリガしたタスクを実行する準備が整った状態となる。プロセッサがアイドル状態に戻ると、装置は再びＱＳＲＭに入る。
【００１６】
静止状態保存モードにおける例示的環境
図１は、ＱＳＲＭにおけるコンピュータシステム１００の例示的な概略図である。１つの実装において、コンピュータシステム１０２はＥブックリーダであってもよい。一方、コンピュータシステム１００は、携帯電話、携帯メディアプレーヤ、ネットブック、携帯情報端末等において用いられてもよい。
【００１７】
バッテリー、パワーサプライ、充電器、ソーラーパネル等の電力供給源１０２は、コンピュータシステム１００に電力を供給する。電力制御集積回路（ＰＭＩＣ）１０４は、電力供給源１０２からの電力を用いて、コンピュータシステム１００内の他の装置を適正に動作させる特性を有する電力を供給する。ＰＭＩＣ１０４はマイクロコントローラ１１０に接続され、このマイクロコントローラ１１０は、いくつかの実装においては、ＳＰＩまたはＩ２Ｃを用いて作られたものであってもよい。ＰＭＩＣ１０４は１つまたは複数のスイッチングレギュレータ１０６および／または線形レギュレータ１０８を備えてもよい。スイッチングレギュレータ１０６は、高い入力電圧または低い入力電圧から、所望の出力電圧を生成する能力を提供する。出力電圧が入力電圧より大きい場合、これは「ブースト」である。出力電圧が入力電圧より小さい場合、これは「バック」である。線形レギュレータ１０８は、入力電圧をバックする能力、すなわち入力電圧よりも低い出力電圧を生成する能力を提供する。スイッチングレギュレータ１０６は一般に、電圧をバック、ブースト、または反転させる能力が与えられた場合、線形レギュレータ１０８よりもより高い電力変換効率と、より高い設計上の柔軟性を提供する。
【００１８】
ＰＭＩＣ１０４により供給される電力は、以下の例において示される。すなわち、コンピュータシステムが１．５ボルトのバッテリー（完全充電時）、１．６５ボルトを要求するプロセッサ、および１．１ボルトを要求する他の装置を有するものと仮定する。ＰＭＩＣ１０４は、バッテリーが発する１．５ボルトをプロセッサにより要求される１．６５ボルトへとスイッチングレギュレータを用いてブーストするよう設定されてもよい。線形レギュレータは、１．５ボルトのバッテリー電圧を他の装置により要求される１．１ポルトへと低下させるよう設定されてもよい。他の例では、３．８ボルトのバッテリーからの出力は、スイッチングレギュレータによりバックされて、実行モード時には１．８ボルトをＱＳＲＭにおいては１．７ボルトをＳＤＲＡＭに提供するよう構成されてもよい。
【００１９】
コンピュータシステム１００におけるマイクロコントローラ１１０が示される。マイクロコントローラ１１０は、中央処理装置（ＣＰＵ）１１２と、ＣＰＵクロック１１４と、ＣＰＵレジスタ（単数または複数）１１６と、クロックゲート制御レジスタ（単数または複数）（ＣＧＲ）１１８と、１次キャッシュおよび／または２次キャッシュ、キャッシュクロック（単数または複数）１２２、およびクロック制御モジュール（ＣＣＭ）１２４を備え得るキャッシュメモリ１２０とを備える。
【００２０】
マイクロコントローラ１１０内には、以下のものを含む入出力装置１２６も存在する。
・シリアル周辺インターフェース（ＳＰＩ）バス１２８および関連するＳＰＩクロック１３０  
・外部メモリインターフェース（ＥＭＩ）１３２、および以下に説明する外部メモリ１４４に動作可能に接続され得る、関連するＥＭＩクロック１３４  
・汎用シリアルバス（ＵＳＢ）コントローラ１３６および関連するＵＳＢクロック１３８。コントローラ１３６は、ＵＳＢインプリメンターズ・フォーラムにより規定されたＵＳＢ１．０、１．１、２．０、３．０を含む任意のＵＳＢ規格に準拠してもよい。ＵＳＢコントローラ１３６は、ＷＷＡＮ無線受信器に接続されたＵＳＢホストコントローラと、ＵＳＢガジェットコントローラとに分割され得る。  
・マイクロコントローラ１１０内には、関連するクロック１４２を有する他の装置１４０が存在してもよい。これらの他の装置１４０は、ＩＥＥＥ１３９４バス、カメラ、全地球測位システム、ブルートゥース（登録商標）、オーディオ、ＰＣカード装置、ＭＭＣコントローラ、ＮＦＣ、ＭＭＣ記憶装置、および他を含んでもよい。
【００２１】
ＥＭＩ１３２は外部メモリ１４４に接続されてもよく、外部メモリ１４４は、スタティックＲＡＭ（ＳＲＡＭ：Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、疑似ＳＲＡＭ（ＰＳＲＡＭ：Ｐｓｅｕｄｏｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、同期型ダイナミックＲＡＭ（ＳＤＲＡＭ：Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ：Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  ＳＤＲＡＭ）、ＮＡＮＤフラッシュ、磁気抵抗ＲＡＭ（ＭＲＡＭ：Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、メモリスタＲＡＭ（ＭｅｍＲＡＭ：Ｍｅｍｒｉｓｔｏｒ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、その他を含んでもよい。
【００２２】
いくつかの実装において、入出力装置１２６もＥＭＩ１３２を介して外部メモリ１４４に接続されてもよい。例えば、ＵＳＢコントローラ、オーディオ装置、ＩＰＵ、ＭＭＣ記憶装置コントローラ、および他の装置がＥＭＩ１３２を介して外部メモリ１４４に接続されてもよい。
【００２３】
外部メモリ１４４は、動作可能にデバイスドライバ（単数または複数）１５０に接続されたカーネル１４８を含むオペレーティングシステム１４６を記憶してもよい。ＱＳＲＭ命令は、カーネル１４８内に存在してもよい。ＰＭＩＣ１０４に対するＱＳＲＭ命令は、デバイスドライバ（単数または複数）１５０内に存在してもよい。デバイスドライバ１５０は入出力装置１２６をカーネル１４８に動作可能に接続する。
【００２４】
カーネル１４８およびデバイスドライバ１５０の間のような動作可能な接続が、強調のために示される。図１に示すすべての装置は動作可能に接続されているが、それぞれの矢印は、例示の簡略化のために省略されている。
【００２５】
ＱＳＲＭの間、電力供給される部品１５２は、低電力モードにあるＰＭＩＣ１０４と、自己リフレッシュモードにある外部メモリ１４４とを含む。自己リフレッシュモードにおいて、外部メモリは、メモリコントローラまたは他の部品からの外部入力がなくても、メモリセルをリフレッシュすることができる。いくつかの実装において、外部メモリは、ＳＤＲＡＭ、ＤＤＲ、その他であってもよい。
【００２６】
図２は、実行モードからＱＳＲＭに移行し実行モードに戻る全般的なプロセス２００を示す他に、これら２つのモードの相対的な電力消費も示す。プロセス２００（ならびに下記の図３に示すプロセス）は、論理フローグラフにおけるブロックの集合として示され、これらのブロックは、ハードウェア、ソフトウェア、またはこれらの組み合わせにおいて実装され得る一連の動作を示す。ソフトウェアの状況においては、ブロックは、１つまたは複数のプロセッサにより実行されると前述の動作を実行する、コンピュータにより実行可能な命令を示す。特記しない限り、動作が説明される順序は、限定的なものとして解釈されることを意図するものではなく、他の組み合わせもそのプロセスを実装し得る。検討のために、プロセス２００（ならびに下記のプロセス３００）について、図１を参照して説明する。
【００２７】
２０２において、実行モードにあるコンピュータシステム１００が示される。実行モードにおいて、グラフ２０４は、１００％の最大電力使用を有するコンピュータシステム１００を示す。例示的なＥブックリーダにおいて、ページを繰る等のタスクがマイクロコントローラ上で実行されるとき、約２００ミリアンペア（ｍＡ）の電流消費が観察される。広域ネットワーク（ＷＡＮ）モジュールの電源投入時または電源遮断時、ピーク電力消費は約４００ｍＡまで増加し得、オンラインストアへのアクセス中において装置は約３００〜３５０ｍＡを使用し得る。
【００２８】
ページが開かれるか、またはＷＡＮモジュールを用いてデータが転送されると、コンピュータシステム１００は、表示中のページを読み終え次のページに移行する等のユーザによる動作を待機する。２０６において、コンピュータシステム１００は、ユーザ入力または何らかの他のウェイクイベントを待機している間、ＱＳＲＭに入ってもよい。ＱＳＲＭへ入ることは、ユーザ入力に応答して、実行中のプロセスに応答して、または他の判断に応答して、起動されてもよい。ＱＳＲＭへ入ることに関しては、図３においてより深く検討する。
【００２９】
ＱＳＲＭにおいて、グラフ２０８は、例示的なＥブックリーダの電力消費が、約０．６７ｍＡすなわち実行モード２０２における電力消費である２００ｍＡの約０．３％であることを示す。比較すると、同一の発明者による、２００８年１０月３０日に出願された、同時係属出願である米国特許出願第１２／２６１，９８０号に説明された静止仮眠モード（ＱＤＭ）は、約１７．４ｍＡまで電力消費を低減する。したがって、ＱＳＲＭはＱＤＭと比較して電力の約３．８％しか消費しない。ＱＳＲＭはＱＤＭと組み合わせて用いられてもよい。例えば、ＱＤＭは、デバイスドライバおよびカーネルの間の協調によって電力消費を最小化するとともに、タイマー割込間隔を大幅に増加させる。したがって、コンピュータシステム１００は、適宜、実行モード、ＱＤＭ、ＱＳＲＭの間で移行してもよい。
【００３０】
２１０において、ウェイクアップ割込が受け取られ、２１２においてコンピュータシステム１００がウェイクアップする。ウェイクアップ２１２はクロックおよび割込を有効にし、システムを実行モード２０２に復元させる。例示的なＥブックリーダにおいて、ＱＳＲＭからのウェイクアップ時間は、一般に比較的短く（２００〜３００ミリ秒の範囲）、追加的なオーバーヘッドおよび待ち時間を招くことがない。ＰＭＩＣ上の選択された電力レギュレータを低電力モードに保持することと組み合わせて、ＱＳＲＭへのおよびＱＳＲＭからの安定且つ確実な移行を提供することにより、これらの迅速なウェイクアップ時間を達成することが可能となる。ウェイクアップ時間がこの範囲にあると、妥当なユーザレスポンスを保ちながら、より頻繁にコンピュータシステムをＱＳＲＭに設定することが可能となる。このようにして、顕著に電力を低減することが可能となる。
【００３１】
ＱＳＲＭに入るための例示的プロセス
図３は、図１に示すＱＳＲＭに入るためのプロセス２０６の例示的なフローチャートである。１つの実装において、ウェイクアップ論理の間の短い待ち時間を達成するためには、クロックがゲート制御される一方で、回路に電力が供給されてもよい。
【００３２】
３０２において、ＣＰＵ上で実行中のプロセスおよびスレッドは凍結される。これは、すべてのカーネルスレッドおよびユーザスペースプロセスを凍結することを意味する。ユーザプロセスのカーネルスレッドが凍結を拒否する場合、凍結プロセスは中断され、カーネルは動作を再開してもよい。１つの実装においては、カーネルは以下の命令を実行してもよい。  
pm_suspend();
enter_state();
suspend_prepare();
//kernel/power/main.c を参照せよ
Ｃ  サンプルコード  １
【００３３】
３０４において、入出力装置は低電力モードに設定される。デバイスドライバは、装置状態を外部メモリ１４４に保存する。装置状態が保存されると、装置は低電力モードに設定されるかまたは電源が遮断され、装置を駆動するクロックは、ゲート制御されてもよい。ウェイクアップが行われる間、デバイスドライバはこの良好な保存された状態を復元し、入出力装置は動作を再開する。１つの実装においては、カーネルは以下の命令を実行してもよい。  
suspend_devices_and_enter()
//kernel/power/main.c を参照せよ
Ｃ  サンプルコード  ２
【００３４】
３０６において、ウェイクアップソースが構成される。これらのウェイクアップソースは、電力制御イベント、ネットワークインターフェース、リアルタイムクロック、または電源ボタンを含んでもよい。電力制御イベントはＰＭＩＣ１０４により生成され、充電器の接続または取り外し、余剰電力の利用可能性、その他を含み得る。１つの実装において、カーネルは以下の命令を実行してもよい。  
＿raw_writel(〜((1<<23)|(1<<16)|7),MXC_CCM_WIMR);
//関数mxc_pm_lowpower()において
//arch/arm/mach-mx3/mxc_pm.c を参照せよ
Ｃ  サンプルコード  ３
【００３５】
３０８において、クロックゲート制御レジスタ（ＣＧＲ）において定義されたクロックがゲート制御されてもよい。限定としてではなく例示として、ｉ．ＭＸファミリーのプロセッサにおいてＣＧＲに存在し得るクロックは、ＣＧＲ０、ＣＧＲ１、ＣＧＲ２、ＭＸＣ＿ＣＣＭ＿ＣＧＲ０、ＭＸＣ＿ＣＣＭ＿ＣＧＲ１、ＭＸＣ＿ＣＣＭ＿ＣＧＲ２、その他を含む。
【００３６】
３１０において、ＰＭＩＣ１０４上の不必要な線形レギュレータは電源が遮断される。不要な線形レギュレータは、ゲート制御されたクロックまたは装置に電力を供給する線形レギュレータである。その他の線形レギュレータは、低電力モードに設定されてもよい。
【００３７】
３１２において、ＰＭＩＣ１０４上のスイッチングレギュレータ１０６は低電力モードに設定される。図４に関して以下でさらに詳細に説明するように、スイッチングレギュレータは、オフ状態から再始動するとき、電力を十分迅速に供給することが不可能である。したがって、スイッチングレギュレータ１０６を低電力モードに保つことにより、安定性を増加させる一方で、ウェイクアップ時の待ち時間を低減させることが可能となる。例えば、Ａｔｌａｓ  ＰＭＩＣ  ＭＣ  １３７８３が用いられる１つの実装において、カーネルは関数ｍｘ３１＿ｐｍ＿ｐｒｅｐａｒｅ（）において、以下の命令を実行してもよい。
pmic_power_regulator_off(SW_PLL);
/*
＊オーディオ回路およびＶＡＵＤＩＯを電力遮断する
*/
pmic_power_regulator_off(REGU_VVIB);
pmic_power_regulator_off(REGU_VAUDIO);
pmic_power_regulator_set_lp_mode(REGU_VDIG,
LOW_POWER_CTRL_BY_PIN);
pmic_power_regulator_set_lp_mode(REGU_GPO1,
LOW_POWER_CTRL_BY_PIN);
pmic_power_regulator_set_lp_mode(REGU_GPO2,
LOW_POWER_CTRL_BY_PIN);
pmic_power_regulator_set_lp_mode(REGU_GPO3,
LOW_POWER_CTRL_BY_PIN);
/*
*ＷＡＮがオフのとき、ＧＰＯ４上で低電力を有効にしてもよい*/
If((wan_get_power_status()==WAN_OFF)||
(wan_get_power_status()==WAN_INVALID)){
/*ＷＡＮがオフ*/
pmic_write_reg(REG_POWER_MISCELLANEOUS,(1<<13),(1<<13));
}
else{
/*ＷＡＮがオン*/
pmic_write_reg(REG_POWER_MISCELLANEOUS,(0<<13),(1<<13));
}
pmic_power_regulator_set_lp_mode(REGU_VAUDIO,
LOW_POWER_CTRL_BY_PIN);
pmic_power_regulator_set_lp_mode(REGU_VIOHI,LOW_POWER_EN);
pmic_power_regulator_set_lp_mode(REGU_VIOLO,LOW_POWER_EN);
Ｃ  サンプルコード  ４
【００３８】
スイッチングレギュレータは、スタートアップにおいて低電力に設定されてもよい。再び例えば、Ａｔｌａｓ  ＰＭＩＣ  ＭＣ  １３７８３が用いられる１つの実装において、カーネルは以下の命令を実行してもよい。
/*４つのｍｃｌ３７８３出力電圧を有効にする*/
pmic_write_reg(REG_ARBITRATION_SWITCHERS,(1<<5),(1<<5));
/*ｍｃｌ３７８３電圧準備信号を有効にする*/
pmic_write_reg(REG_INTERRUPT_MASK_1,(0<<11),(1<<11));
/*
*スイッチングレギュレータ上のスタンバイ電圧および電力モード
*/
volt.sw1a-ru=SW1A_0_95V;
pmic_power_switcher_set_stby(SW_SW1A,volt);
pmic_power_switcher_set_mode(SW_SW1A,LOW_POWER,1);
pmic_power_switcher_set_mode(SW_SW1B,LOW_POWER,1);
pmic_power_switcher_set_mode(SW_SW2A,LOW_POWER,1);
volt.sw2b=SW2B_1_7V;
pmic_power_switcher_set_stby(SW_SW2B,volt);
pmic_power_switcher_set_mode(SW_SW2B,LOW_POWER,1);
pmic_power_regulator_off(SW_SW3);
pmic_power_regulator_off(REGU_VSIM);
pmic_power_regulator_off(REGU_VESIM);
pmic_power_regulator_off(REGU_VCAM);
pmic_power_regulator_off(REGU_VRFBG);
pmic_power_regulator_off(REGU_VRF1);
pmic_power_regulator_off(REGU_VRF2);
pmic_power_regulator_off(REGU_VRFCP);
pmic_power_regulator_off(REGU_VRFREF);
pmic_power_regulator_off(REGU_VRFDIG);
pmic_power_regulator_off(REGU_GPO2); /*無し*/
//arch/arm/mach-mx3/dvfs_v2.cおよびarch/arm/mach-mx3/pm.cを参照せよ
Ｃ  サンプルコード  ５
【００３９】
３１４において、ｓｅｒｉａｌ＿ｐｌｌおよびｕｓｂ＿ｐｌｌクロックがここでゲート制御される。いくつかの実装において、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、またはプロセッサとの通信のためにＵＳＢを利用する他の装置（単数または複数）の状態がチェックされてもよい。ＷＡＮまたは他のＵＳＢに接続された装置の状態が「オフ」および非「オン」である場合、ＵＳＢおよび関連するクロックはゲート制御されてもよい。１つの実装において、カーネルは以下の命令を実行してもよい。
__raw_writel(__raw_readl(MXC_CCM_CCMR)|MXC_CCM_CCMR_FPME,
MXC_CCM_CCMR);
__raw_writel(__raw_readl(MXC_CCM_CCMR)&〜MXC_CCM_CCMR_MPE,
MXC_CCM_CCMR);
__raw_writel(__raw_readl(MXC_CCM_CCMR)&
〜MXC_CCM_CCMR_PRCS_MASK)|
(1<<MXC_CCM_CCMR_PRCS_OFFSET),
MXC_CCM_CCMR);
//arch/arm/mach-mx3/mxc_pm.c を参照せよ
Ｃ  サンプルコード  ６
【００４０】
３１６において、ＰＭＩＣ１０４は低電力モードに入る準備が整えられる。例えば、ＭＸ３１プロセッサにおいて、ＶＳＴＢＹピンはＰＭＩＣ１０４のＶＳＴＢＹピンに接続されている。クロック制御モジュール１２４が割込待ち（ＷＦＩ：ｗａｉｔ  ｆｏｒ  ｉｎｔｅｒｒｕｐｔ）時にＶＳＴＢＹを低くするよう設定されている場合、クロック制御モジュール１２４はＶＳＴＢＹピンを下に引き、それにより、次にＰＭＩＣ１０４のＶＳＴＢＹピンを下に引き、ＰＭＩＣを低電力モードに設定する。１つの実装において、カーネルは以下の命令を実行してもよい。  
reg=__raw_readl(MXC_CCM_CCMR);
reg=(reg〜MXC_CCM_CCMR_LPM_MASK))|
lpm<<MXC_CCM_CCMR_LPM_OFFSET|
MXC_CCM_CCMR_VSTBY;
__raw_writel(reg,MXC_CCM_CCMR);
//arch/arm/mach-mx3/mxc_pm.cを参照せよ。
Ｃ  サンプルコード  ７
【００４１】
３１８において、リフレッシュを必要とするＳＤＲＡＭまたは他のメモリ１４４は自己リフレッシュモードに設定されてもよい。なお、この自己リフレッシュモードにおいては、メモリは外部入力がなくてもそれ自体をリフレッシュする。メモリ１４４に電力を供給するスイッチングレギュレータ１０６は、低電力モードに設定されてもよい。ＳＤＲＡＭがスイッチングレギュレータＳＷ２により電力供給され得るＭＸ３１アーキテクチャ等の１つの実装において、カーネルは以下の命令を実行してもよい。  
Volt.sw2b=SW2B_1_7V;
pmic_power_switcher_set_stby(SW_SW2B,volt);
pmic_power_switcher_set_mode(SW_SW2B,LOW_POWER,1);
//arch/arm/mach-mx3/dvfs_v2.cにおける関数pmic_voltage_init()を参照せよ
Ｃ  サンプルコード  ８
【００４２】
３２０において、状態保存モードがクロック制御モジュール１２４において設定される。１つの実装において、カーネルは以下の命令を実行してもよい。  
/*有効なＷｅｌｌ  Ｂｉａｓ
*ＳＢＹＣＳ＝０、ＭＣＵクロックソースは無効*/
mxc_ccm_modify_reg（MXC_CCM_CCMR,
MXC_CCM_CCMR_WBEN|MXC_CCM_CCMR_SBYCS,
MXC_CCM_CCMR_WBEN);
//arch/arm/mach-mx3/mxc_pm.cにおけるmxc_pm_lowpower()を参照せよ
Ｃ  サンプルコード  ９
【００４３】
３２２において、１次キャッシュおよび２次キャッシュはフラッシュされてもよい。キャッシュをフラッシュすることにより、キャッシュは外部メモリ１４４と同期した状態に保たれ、実行状態が再開したときに不正確なデータが存在することは避けられる。１つの実装において、カーネルは以下の命令を実行してもよい。  
flush_cache_all()
Ｃ  サンプルコード  １０
【００４４】
３２４において、ウェイクアップソースからの割込要求以外のすべての割込要求（ＩＲＱ：ｉｎｔｅｒｒｕｐｔ  ｒｅｑｕｅｓｔ）は無効にする。例えば、電源ボタン、ＰＭＩＣ電力イベント、その他からの割込は、有効状態に留まる。１つの実装において、カーネルは以下の命令を実行してもよい。  
Local_irq_disable();
．．．
_raw_writel(INT_GPT,AVIC_INTDISNUM);/*タイマーを無効にする*/
．．．
/*ウェイクアップソースを構成する*/
_raw_writel(〜((1<<23)|(1<<16)|7),MXC_CCM_WIMR);
//arch/arm/mach-mx3/mxc_pm.cにおけるmxc_pm_lowpower()を参照せよ
Ｃ  サンプルコード  １１
【００４５】
３２６において、ＣＰＵスケーリングは無効にされる。ＣＰＵスケーリングは、主として電力消費を最小限にするために、プロセッサ周波数の動的な変化を可能にする。例えば、負荷の大きい一連のタスクを実行中のＣＰＵは、スループットを最大限にするために最も高いプロセッサ周波数で動作してもよい。それに対して、同一のＣＰＵが極めて簡単なタスクを実行するときには、電力消費を最小限にするために、より低いプロセッサ周波数で動作してもよい。ウェイクアップ待ち時間を最小限にするために、プロセッサは、最大のサポートされる動作周波数において動作を再開するよう設定されてもよい。
【００４６】
３２８において、割込待ち（ＷＦＩ）命令が実行される。１つの実装において、カーネルは以下の命令を実行してもよい。
/*
*ＷＦＩ正誤表ＴＬＳｂｏ６５９５３に対して
*
*問題の回避なしに、これは単に以下のようになり得る。
* ＷＦＩ；ｎｏｐ；ｎｏｐ；ｎｏｐ；ｎｏｐ；ｎｏｐ；
*/
＿ａｓｍ＿＿ｖｏｌａｔｉｌｅ＿（
”ｍｒｃ  ｐ１５，０，％０，ｃ１，ｃ０，０＼ｎ”
”ｂｉｃ  ％０，％０，＃０ｘ００００１０００＼ｎ”
”ｂｉｃ  ％０，％０，＃０ｘ０００００００４＼ｎ”
”ｍｃｒ  ｐ１５，０，％０，ｃ１，ｃ０，０＼ｎ”
”ｍｏｖ  ％０，＃０＼ｎ”
”ｍｃｒ  ｐ１５，０，％０，ｃ７，ｃ５，０＼ｎ”
”ｍｏｖ  ％０，＃０＼ｎ”
”ｍｃｒ  ｐ１５，０，％０，ｃ７，ｃ１４，０＼ｎ”
”ｍｏｖ  ％０，＃０＼ｎ”
”ｍｃｒ  ｐ１５，０，％０，ｃ７，ｃ０，４＼ｎ”
”ｎｏｐ＼ｎ”  ”ｎｏｐ＼ｎ”  ”ｎｏｐ＼ｎ”  ”ｎｏｐ＼ｎ”
”ｎｏｐ＼ｎ”  ”ｎｏｐ＼ｎ”  ”ｎｏｐ＼ｎ”
”ｍｒｃ  ｐ１５，０，％０，ｃ１，ｃ０，０＼ｎ”
”ｏｒｒ  ％０，％０，＃０ｘ００００１０００＼ｎ”
”ｏｒｒ  ％０，％０，＃０ｘ０００００００４＼ｎ”
”ｍｃｒ  ｐ１５，０，％０，ｃ１，ｃ０，０＼ｎ”
：：”ｒ”（ｒｅｇ））；
//arch/arm/mach-mx3/mxc_pm.cを参照せよ
Ｃ  サンプルコード  １２
【００４７】
３３０において、主要ＣＰＵクロックはゲート制御され、ＰＭＩＣは低電力モードへの移行を完了する。この時点において、コンピュータシステム１００において電力供給される部品は、低電力スタンバイモードにあるＰＭＩＣ１０４および自己リフレッシュモードにある外部メモリ１４４を含む。この例において、非活動状態にある部品は、ＣＰＵ１１２、キャッシュメモリ１２０、ＣＰＵクロック（単数または複数）１１４、キャッシュクロック１２２、ＥＭＩ１３２、その他を含む。
【００４８】
図４は、オフ状態から始まるスイッチングレギュレータからの利用可能な電力、および低電力状態から始まるスイッチングレギュレータからの利用可能な電力と比較して、ＱＳＲＭから脱して実行モードに入る間のプロセッサに対する、時間の関数としての電力需要の例示的なグラフ４００である。経過時間が時間０から時間「Ｔ」までの範囲で横軸４０２に沿って示される。縦軸４０４は、０から「Ｗ」までの範囲で電力を示す。点４０８で示されるＱＳＲＭから、点４１０でＣＰＵが実行モードを達成するまで継続する実線の曲線４０６は、ＣＰＵ１１２に対する電力需要を示す。
【００４９】
点線の曲線４１２は、オフ状態から電力供給されたスイッチングレギュレータから利用可能な電力を示す。図示のように、この曲線はＣＰＵ電力需要曲線４０６よりも下方にある。これが生じると、ＣＰＵは、動作するために十分な電力を得ることができず誤動作し、システムが不安定となることもある。
【００５０】
断続線の曲線４１４は、低電力状態から始まるスイッチングレギュレータから利用可能な電力を示す。図示のように、この曲線は、ＣＰＵ電力需要曲線４０６の上方にあり、スイッチングレギュレータがＣＰＵの確実且つ安定な動作のために十分な電力を供給できることを示す。
【００５１】
このように、ＣＰＵに電力を供給するスイッチングレギュレータを低電力状態に保持することにより、ＱＳＲＭから実行モードへの復元はより迅速且つ安定なものとなる。
【００５２】
付記項１：
実行可能命令を用いて構成された１つまたは複数のコンピュータシステムの制御下、
実行中のユーザスペースプロセスおよび前記プロセッサ上で実行中のカーネルスレッドを凍結することと、
前記プロセッサに接続された入出力装置をサスペンドモードに設定することと、
ウェイクアップ割込を生成するよう、前記プロセッサに接続されたウェイクアップソースを構成することと、
前記プロセッサのクロックゲート制御レジスタにおいて定義されたクロックをゲート制御することと、
前記プロセッサに接続された電力制御集積回路（ＰＭＩＣ）上の線形レギュレータをオフ状態に設定することと、
前記ＰＭＩＣ上のスイッチングレギュレータを低電力状態に設定することと、
低電力モードに入るよう、前記ＰＭＩＣを準備することと、
前記プロセッサに接続されたクロック制御モジュールにおいてプロセッサ状態保存モードを設定することと、
前記プロセッサに接続されたキャッシュをフラッシュすることと、
前記ウェイクアップソースからの割込以外の前記プロセッサへの割込要求を無効にすることと、
前記プロセッサにおけるプロセッサスケーリングを無効にすることと、
前記ウェイクアップソースからの前記ウェイクアップ割込を受け取るよう構成された割込命令に対して待機を実行することと、
前記プロセッサの主要クロックをゲート制御することと、
前記ＰＭＩＣを前記低電力モードに設定することと
を含む、プロセッサを静止状態保存モード（ＱＳＲＭ）に設定するコンピュータ実施可能な方法。
【００５３】
付記項２：
前記ＰＭＩＣ上の前記スイッチングレギュレータを低電力状態に設定した後、シリアル周辺インターフェースクロックおよび汎用シリアルバスクロックをゲート制御することをさらに含む、付記項１に記載の方法。
【００５４】
付記項３：
前記フラッシュすることは、前記プロセッサに接続された１次キャッシュおよび前記プロセッサに接続された２次キャッシュをフラッシュすることを含む、付記項１に記載の方法。
【００５５】
付記項４：
前記低電力モードに入るよう前記ＰＭＩＣを準備した後、外部メモリを自己リフレッシュモードに設定することをさらに含む、付記項１に記載の方法。
【００５６】
付記項５：
前記入出力装置を前記サスペンドモードに設定することは、入出力装置状態をメモリに保存することと、前記入出力装置を低電力モードに設定することと、前記入出力装置を駆動するクロックをゲート制御することとを含む、付記項１に記載の方法。
【００５７】
付記項６：
前記プロセッサは、クロックを別個にゲート制御することができるアプリケーションプロセッサを備える、付記項１に記載の方法。
【００５８】
付記項７：
前記ウェイクアップソースは、ＰＭＩＣイベント、ネットワークインターフェース、リアルタイムクロックウェイクアップ、または電源ボタンのうちの少なくとも１つを含む、付記項１に記載の方法。
【００５９】
付記項８：
前記プロセッサスケーリングを無効にすることは、前記プロセッサを、前記プロセッサによりサポートされる最大動作周波数に設定することを含む、付記項１に記載の方法。
【００６０】
付記項９：
前記プロセッサに対して外部にある装置をゲート制御すなわち遮断することをさらに含む、付記項１に記載の方法。
【００６１】
付記項１０：
メモリと、
前記メモリに接続されたプロセッサと、
前記メモリに記憶され、前記プロセッサ上で実行されるよう構成されたカーネルであって、静止状態保存モード（ＱＳＲＭ）に入った後、電力制御集積回路（ＰＭＩＣ）のスイッチングレギュレータを低電力状態に保持するよう構成されたカーネルと、
を備えた、携帯電子装置の電力消費を低減するためのシステム。
【００６２】
付記項１１：
前記プロセッサに接続された周辺装置をさらに含み、前記カーネルは、
前記周辺装置を低電力状態に設定することと、
前記周辺装置内のウェイクアップソースがウェイクアップ割込を生成するよう構成することと、
を行うことにより、前記ＱＳＲＭに入るよう構成された、付記項１０に記載のシステム。
【００６３】
付記項１２：
前記カーネルは、前記ＱＳＲＭに入った後、メモリを自己リフレッシュ状態に保持するよう、さらに構成された、付記項１０に記載のシステム。
【００６４】
付記項１３：
前記スイッチングレギュレータは前記プロセッサに電力を供給するよう構成された、付記項１０に記載のシステム。
【００６５】
付記項１４：
前記カーネルは割込待ち（ＷＦＩ）命令に対して待機を実行するようさらに構成された、付記項１０に記載のシステム。
【００６６】
付記項１５：
前記カーネルは、
実行中のユーザスペースプロセスおよび前記プロセッサ上で実行中のカーネルスレッドを凍結することと、
ウェイクアップ割込を生成するようウェイクアップソースを構成することと、
前記プロセッサに接続されたクロックゲート制御レジスタにおいて定義されたクロックをゲート制御することと、
前記プロセッサに接続されたゲート制御された装置に電力を供給するよう構成されたＰＭＩＣの線形レギュレータをオフ状態に設定することと、
前記プロセッサに電力を供給するよう構成されたＰＭＩＣの前記スイッチングレギュレータを低電力状態に設定することと、
前記プロセッサに接続された、シリアル周辺インターフェースクロックまたは汎用シリアルバスクロックまたはその両方をゲート制御することと、
前記プロセッサに接続されたクロック制御モジュールにおいて、前記プロセッサに対して状態保存モードを設定することと、
非ウェイクアップソースからの割込生成を無効にすることと、
前記プロセッサ上でプロセッサスケーリングを無効にすることと、
前記プロセッサの主要クロックをゲート制御することと、
を行うことにより、前記ＱＳＲＭに入るよう構成された、付記項１０に記載のシステム。
【００６７】
付記項１６：
前記カーネルは、プロセッサスケーリングを無効にした後、前記ＰＭＩＣを低電力モードに設定するようさらに構成された、付記項１５に記載のシステム。
【００６８】
付記項１７：
プロセッサにより実行されると、前記プロセッサに
実行中のプロセスおよび中央処理装置（ＣＰＵ）上で実行中のスレッドを凍結することと、
入力装置または出力装置またはその両方の装置を低電力状態またはサスペンド状態に設定することと、
ウェイクアップ割込を生成するようウェイクアップソースを構成することと、
クロックゲート制御レジスタにおいて定義されたクロックをゲート制御することと、
ゲート制御された装置に電力を供給するよう構成された線形レギュレータをオフ状態に設定することと、
前記ＣＰＵに電力を供給するよう構成されたスイッチングレギュレータを低電力状態に設定することと、
シリアル周辺インターフェースクロックまたは汎用シリアルバスクロックまたはその両方をゲート制御することと、
クロック制御モジュールにおいて前記ＣＰＵに対して状態保存モードを設定することと、
非ウェイクアップソースからの割込を無効にすることと、
ＣＰＵスケーリングを無効にすることと、
を実行させる命令を記憶する、１つまたは複数のコンピュータ読取可能記憶媒体。
【００６９】
付記項１８：
前記入力装置または出力装置またはその両方の装置を低電力状態またはサスペンド状態に設定することは、装置状態をメモリに保存することと、前記装置を低電力モードに設定することと、および前記装置を駆動するクロックをゲート制御することとを含む、付記項１７に記載のコンピュータ読取可能記憶媒体。
【００７０】
付記項１９：
前記シリアル周辺インターフェースクロックまたは前記汎用シリアルバスクロックまたはその両方をゲート制御した後、電力制御集積回路（ＰＭＩＣ）を低電力モードに設定することをさらに含む、付記項１７に記載のコンピュータ読取可能記憶媒体。
【００７１】
付記項２０：
プロセッサスケーリングを無効にすることは、前記ＣＰＵを前記ＣＰＵによりサポートされる最大動作周波数に設定することをさらに含む、付記項１７に記載のコンピュータ読取可能記憶媒体。
【００７２】
付記項２１：
前記状態保存モードを前記クロック制御モジュールに設定した後、ＣＰＵ１次キャッシュまたは２次キャッシュまたはその両方をフラッシュすることをさらに含む、付記項１７に記載のコンピュータ読取可能記憶媒体。
【００７３】
付記項２２：
ＣＰＵスケーリングを無効にした後、割込命令に対して待機を実行することをさらに含む、付記項１７に記載のコンピュータ読取可能記憶媒体。
【００７４】
付記項２３：
メモリを自己リフレッシュモードに設定することをさらに含む、付記項１７に記載のコンピュータ読取可能記憶媒体。
【００７５】
付記項２４：
前記ウェイクアップソースは、電力制御イベント、ネットワークインターフェース、リアルタイムクロック、または電源ボタンのうちの少なくとも１つを含む、付記項１７に記載のコンピュータ読取可能記憶媒体。
【００７６】
主題について、構造上の特徴および／または方法論的動作に特有の言語で説明してきたが、添付の請求項に定義された主題は必ずしも説明した特定の特徴または動作に限定されないことを理解すべきである。むしろ、特定の特徴および動作は、請求項を実装するための例示的な形態として開示されたものである。例えば、方法論的動作は、本明細書に説明された順序または組み合わせで実施される必要はなく、１つまたは複数の動作の任意の組み合わせで実施されてもよい。
【図１】
0005632466.tif 000002
【図２】
0005632466.tif 000003
【図３】
0005632466.tif 000004
【図４】
0005632466.tif 000005