CPUはスリープモードでアクティブですか?


39

Windows OSで、コンピューターを切り替えてスリープモードにし、片付けたとします。私の知る限り、プログラムやプロセスは実行されません。

しかし、プロセッサはまだ実行されているか、何らかの方法でバックグラウンドでアクティブであり、電力を利用していますか?

Windows 7 / 8.1 / 10を実行している現代のコンピューターで何らかのアクションを実行すると、蓋を開けてボタンを押し、マウスに触れると、電源ボタンを押さなくてもすぐにオンになるためです。CPUが低電力状態のときにこれらのイベントをアクティブに待機していたためでしょうか?

回答:


57

CPUはスリープモードでアクティブですか?

場合によります。スリープ状態にはさまざまなものがあり(S1からS4)、CPUの状態はすべて同じではありません。

  • CPUはスリープ状態S1で停止します
  • CPUは、スリープ状態S2以上で電源がオフになります。

スリープは通常スリープ状態S3ですが、BIOSはスリープ状態S1を代わりに使用するように設定される場合があります(S3からの再開が正しく機能しない場合に使用されます)。

powercfg -a PCがサポートするスリープ状態を確認するために使用できます。

出力例:

F:\test>powercfg -a
The following sleep states are available on this system: 
Standby (S3) Hibernate Hybrid Sleep
The following sleep states are not available on this system: 
Standby (S1)
    The system firmware does not support this standby state.
Standby (S2)
    The system firmware does not support this standby state.

システムのスリープ状態

状態S1、S2、S3、およびS4はスリープ状態です。これらの状態のいずれかのシステムは、計算タスクを実行しておらず、オフのように見えます。ただし、シャットダウン状態(S5)のシステムとは異なり、スリープ状態のシステムは、ハードウェアまたはディスクのいずれかでメモリ状態を保持します。コンピューターを動作状態に戻すために、オペレーティングシステムを再起動する必要はありません。

一部のデバイスは、モデムへの着信コールなどの特定のイベントが発生すると、システムをスリープ状態からウェイクアップできます。さらに、一部のコンピューターでは、外部インジケーターはシステムが単にスリープ状態にあることをユーザーに通知します。

S1からS4までの各スリープ状態では、より多くのコンピューターがシャットダウンされます。以下のセクションにリストされているように、すべてのACPI準拠コンピューターは、S1でプロセッサークロックをシャットオフし、S4でシステムハードウェアコンテキストを失います(シャットダウン前に休止状態ファイルが書き込まれない限り)。中間のスリープ状態の詳細は、メーカーがマシンをどのように設計したかによって異なります。たとえば、一部のマシンでは、マザーボードの特定のチップがS3で電力を失う可能性がありますが、他のチップではS4まで電力を保持します。さらに、一部のデバイスは、より深いスリープ状態からではなく、S1からのみシステムをウェイクできる場合があります。

システム電源状態S1

システムの電源状態S1は、次の特性を持つスリープ状態です。

消費電力

  • S0よりも消費量が少なく、他のスリープ状態よりも消費量が多い。プロセッサクロックはオフで、バスクロックは停止しています。ソフトウェアの再開

  • 制御は、中断したところから再開します。

ハードウェア遅延

  • 通常、2秒以内です。

システムハードウェアコンテキスト

  • すべてのコンテキストは、ハードウェアによって保持および維持されます。

システム電源状態S2

システムの電源状態S2はS1と似ていますが、プロセッサの電源が失われるため、CPUコンテキストとシステムキャッシュの内容が失われます。状態S2には次の特性があります。

消費電力

  • 状態S1よりも消費量が少なく、S3よりも消費量が多い。プロセッサーはオフです。バスクロックは停止しています。一部のバスは電力を失う可能性があります。ソフトウェアの再開

  • ウェイクアップ後、制御はプロセッサのリセットベクトルから開始されます。

ハードウェア遅延

  • 2秒以上。S1のレイテンシー以上。

システムハードウェアコンテキスト

  • CPUコンテキストとシステムキャッシュの内容は失われます。

システム電源状態S3

システム電源状態S3は、次の特性を持つスリープ状態です。

消費電力

  • 状態S2よりも少ない消費。プロセッサがオフになっており、マザーボード上の一部のチップもオフになっている可能性があります。

ソフトウェアの再開

  • ウェイクアップイベントの後、プロセッサのリセットベクターから制御が開始されます。

ハードウェア遅延

  • S2とほとんど区別できません。

システムハードウェアコンテキスト

  • システムメモリのみが保持されます。CPUコンテキスト、キャッシュコンテンツ、およびチップセットコンテキストは失われます。

システム電源状態S4

休止状態であるシステム電源状態S4は、電力が最も低いスリープ状態であり、ウェイクアップレイテンシが最も長くなります。消費電力を最小限に抑えるために、ハードウェアはすべてのデバイスの電源をオフにします。ただし、オペレーティングシステムコンテキストは、システムがS4状態に入る前にディスクに書き込む休止状態ファイル(メモリのイメージ)に保持されます。再起動すると、ローダーはこのファイルを読み取り、システムの以前の休止状態の場所にジャンプします。

状態S1、S2、またはS3のコンピューターがすべてのACまたはバッテリー電源を失うと、システムハードウェアコンテキストが失われるため、S0に戻るには再起動する必要があります。ただし、状態S4のコンピューターは、オペレーティングシステムのコンテキストが休止状態ファイルに保持されているため、バッテリーまたはAC電源が失われた後でも、以前の場所から再起動できます。休止状態のコンピューターは電力を消費しません(トリクル電流の例外を除く)。

状態S4には次の特性があります。

消費電力

  • 電源ボタンおよび同様のデバイスへのトリクル電流を除き、オフ。ソフトウェアの再開

  • 保存された休止状態ファイルからシステムが再起動します。休止状態ファイルをロードできない場合は、再起動が必要です。システムがS4状態にあるときにハードウェアを再構成すると、休止状態ファイルが正しくロードされない変更が発生する場合があります。

ハードウェア遅延

  • 長く未定義。物理的な相互作用のみがシステムを動作状態に戻します。このような対話には、ユーザーがONスイッチを押すこと、または適切なハードウェアが存在し、ウェイクアップが有効になっている場合、モデムの着信リングまたはLANのアクティビティが含まれます。ハードウェアがサポートしている場合、マシンは再開タイマーから起動することもできます。システムハードウェアコンテキスト

  • ハードウェアには保持されません。システムは、電源を切る前にメモリのイメージを休止状態ファイルに書き込みます。オペレーティングシステムがロードされると、このファイルを読み取り、以前の場所にジャンプします。

ソースシステムのスリープ状態


参考文献


powercfg - a can be used...-との間に余分なスペースがありaます。
ルスラン

25

Davidの優れた答えは、従来のマシンおよび8より前のWindowsバージョンでは正しいものです。ただし、Windows 8では、低電力デバイス(Atomベースのタブレットなど)の新しいスリープモードが導入されました。これはInstantGo / Connected Standbyとして知られています。これは、サポートされているハードウェアを備えたWindowsタブレットで画面をオフにしたときのデフォルトの「スリープ」モードです。

接続スタンバイは、従来のACPIスリープ状態を使用しません。その目標は、接続ペリフェラルをアクティブ保ち、OSが受信メール、インスタントメッセージなどの通知に応答できるようにすることです。さらに、マシンは30秒ごとに数百ミリ秒「起動」します。CPUは、従来のS3スリープからよりも速く応答(起動)する必要があります。

[接続スタンバイが必要] 100ミリ秒未満でアイドルモードとアクティブモードを切り替える機能。アクティブモードでは、コードをCPUで実行できますが、必ずしもストレージデバイスまたは他のホストコントローラーまたは周辺機器にアクセスできるとは限りません。アイドルモードは、クロックゲーテッドまたはパワーゲーティング状態にすることができますが、SoCおよびDRAMの消費電力が最も低い状態にする必要があります。

ソース

これは、D1の回答のように、S1に指定された最大2秒、またはS2 / S3に指定された2秒以上よりはるかに速いことに注意してください。

このため、CPUは、サポートされているハードウェアでMicrosoftがDRIPS(Deepest Runtime Idle Platform State)を呼び出す特別な状態に保たれます。

Intel(x86)SoCでは、これは新しい(非標準の)S0ix状態の 1つ、特にS0i3に該当します。この状態では、CPUはコードを実行しませんが、SoC全体はネットワークに接続されたままでイベントに応答するのに十分なほどアクティブです。


ACPIに関する限り、これはまだS0(アクティブ)状態と見なされます。WindowsはACPI_S0_LOW_POWER_IDLEフラグを使用して、DRIPSがサポートされているかどうかを判断します。ACPI仕様6.0。、2015年4月、§5.2.9、表5-35、PG 127)は、このフラグを定義しています。

OSPMに、プラットフォームがS3で通常達成されるのと同等またはそれ以上のS0での省電力を達成できることを通知します。実際、このビットが設定されている場合、S3へのスリープ遷移を行うことにより、システムが電力の利点を達成しないことを示します。

Microsoftによると

モダンスタンバイをサポートするシステムは、S1-S3を使用しません。


5

ACPI https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interfaceによって管理されるスタンバイモードには多くの種類があります

通常、CPUはスタンバイモードのときに実行されますが、クロックレートは低くなります-特定の入力のみをリッスンし、他のプロセスをアクティブに実行しません。最初にprocmonを実行し、ラップトップをスリープ状態に設定して測定しようとしましたが、この期間はまったく動作しませんでした。

4つのグローバル状態、G0-G3、G0がされてあり、実行すると、G3があるメカニカルオフ リンク先の記事によると、G1サブ状態S2ターンRAMにCPUと移動し、それのキャッシュをオフに。RAMは、すべてのタイプのスリープで電源がオンになっているものです。休止状態および標準シャットダウンでは電源がオフになります。ほとんどのスリープ状態では、すべての外部入力デバイスの電源がオンになっており、ウェイクアップイベントをコンピューターに送信します。コンピュータは、ウェイクアップコールを必要とするルーチンを処理するために自身をウェイクアップすることもできます。


2
「キャッシュをRAMに移動する」キャッシュはキャッシュであるため、ダーティキャッシュラインをフラッシュしてから、十分に電源を切るだけではありませんか?
–ζ

CPUはオンですが、実行されていません。
ilkhd

0

これらの優れた答えに追加する技術的なものはありません。しかし、自分のコンピューターでスリープモードの効果をテストする最も簡単な方法は、ラップトップをスリープモードにして電源プラグを抜くことです(バッテリーに注意してください)レベルが最初)。数時間後にマシンを再開し、その間にバッテリーレベルが低下していないか確認します。

スリープモードがバッテリーをかなりのペースで使い果たす難しい方法を見つけました。旅行の前にラップトップのふたを閉じました-事前の電源設定で休止状態をトリガーするように「ふたを閉じる」を設定したと思いますが、代わりにスリープモードになりました。数時間後、バッテリーが完全に消耗したため、マシンは再開しませんでした(古い、弱いバッテリーでした)。

対照的に、ラップトップを休止状態にして無期限にプラグを抜くことができます。また、数日にわたって発生する自然なトリクル放電よりも速くバッテリーが消耗することはありません。

しかし、他の投稿が言っているように:YMMV。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.