このページの本文へ

前へ 1 2 次へ

Windows Info 第192回

スリープ中に見えてもスマホのようにアプリが動作するWindows 10の「モダンスタンバイ」

2019年09月29日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

モダンスタンバイ中のマシンは
一定間隔ごとにアクティブ状態になりアプリが動作する

 Windows 10の電力管理機能を見ていく一連の解説も、今回のモダンスタンバイで一段落させたい。モダンスタンバイは、Windows 10の機能の1つで、簡単に言えば、スマホのように「電源をオフ」にしないで使うPCを構成するための機能だ。

モダンスタンバイが動作するマシンでは、スタンバイ中の消費電力などをPowercfg.exe sleepstudyコマンドでレポートとして見ることが可能だ

 モダンスタンバイは、Windows 8に搭載されたコネクテッドスタンバイに起源を持つ。ネットワーク接続を前提にしたコネクテッドスタンバイに対して、モダンスタンバイは、ネットワーク接続しない場合も対象とする。Windows 10にはWindows 10 Mobileも存在した。このため、Windows 10では、モダンスタンバイの実装が必須だった。なお、当初PCアーキテクチャ用に作られたACPIは、Windows8でARMマシン(Windows RTマシン)が登場したときに、ARMプロセッサなど非PCアーキテクチャに対応している。

 モダンスタンバイでは電源オンの状態では、通常に動作する。電源オフや液晶を閉じるなど、従来スリープ(スタンバイ、S3)に入る条件で、モダンスタンバイ状態になる。モダンスタンバイに対応したPCでは、S3-Stateには入らない。モダンスタンバイが従来のスタンバイと違うのは、パケットの受信やタイマーなど、あるいは30秒に1回程度、間欠的に短時間アクティブ状態に戻り、プログラムが動作するからだ。

 たとえば、Skypeの着信などが可能なほか、メールの新着チェックなども可能である。また、サウンド機能が対応していれば、コルタナを起動させることも可能だ。なお、Windows 8では、30秒に1回必ず起動していたが、Windows 10では、不要な起動を避けるようになっており、条件によってはもう少し長い間スタンバイ状態に留まることができる。

 Windows 10初期のモダンスタンバイにはいろいろと問題があり、採用するメーカーが減っていたのだが、Windows 10 Ver.1803(RS4)あたりから採用するメーカーが増えてきた。1つには、ドライバー周りが改良されて、スタンバイ時に安定してきたというのが理由だ。

 モダンスタンバイでは、稼働中(S0-State)に低消費電力状態(Low Power Idle、LPI)に入り、このときにデバイスの電力制御をする。完全に停止しているS2~S4とは違いLPIはあくまでもS0-Stateに入り、アイドル状態になったときに低消費電力状態となるため、デバイスの制御が正しくできないと、関係するソフトウェアが動作してしまうため、アクティブ状態が続き、省電力できなくなってしまうのだ。

 このモダンスタンバイについて、Windows10 Ver.1903(以下、19H1と表記する)での対応を調べて見た。なお、モダンスタンバイは、ハードウェアとWindowsのインストールで決まるもので、一般的には、購入時にモダンスタンバイでないものをあとからモダンスタンバイ対応にはできない。

現在のWindows 10におけるモダンスタンバイ

 19H1のモダンスタンバイは、WIndows 10初期のモダンスタンバイに比べると改善されている点がある。1つは、モダンスタンバイ中に5%以上の電力を消費すると、自動的に「休止状態」(ハイバネーション、S4-State)に入る点だ。

 これにより、以前に比べると「いつのまにかバッテリが無くなっていた」といった事態にはならないようになっている。実際、筆者が利用しているマシンでも、そういう状況は起きていない。また、デフォルトでは、モダンスタンバイが6時間継続した時点で、自動的に休止状態に入り、システムの電源を完全にオフにする。なので、帰宅してパソコンをカバンにいれたままにしていても、一定以上の電力消費がない。

 モダンスタンバイ時には、システムはアイドル状態(モダンスタンバイではこれをDRIPS、Deepest Runtime Idle Platform Stateと呼ぶ)とアクティブ状態の間を行き来する。ただし、どちらの場合も画面はオフのままである。このため、ユーザーからはスリープ(あるいは電源オフ)のように見える。モダンスタンバイ中にアクティブになるのは、以下の場合だ。

・ネットワークデバイスからの割り込み
・バッテリなど電源関連デバイスからの割り込み
・キーボードなどユーザー入力デバイスからの割り込み(モダンスタンバイの解除)

 モダンスタンバイのアクティブ状態になるとプログラムコードが動作し、割り込みを処理したり、登録されているバックグラウンド処理などを起動する。また、上記とは別にカーネルのメンテナンスタスクを実行するため定期的(30秒に一回程度)にアクティブ状態に入る。

 ただし、アクティブ状態に入る頻度は、主にネットワーク(インターネット)接続に依存する。Windows 10では、モダンスタンバイ中のネットワーク接続をどうするかを「設定」→「システム」→「電源とスリープ」→「ネットワーク接続」で指定できる(この項目が表示されない場合はモダンスタンバイではない)。ここで「常に切断する」を選ぶと、確かにモダンスタンバイ中の消費電力が低くなる。

 モダンスタンバイ中の電力消費や内部状態などは、Powercfg.exe Sleepstudyコマンドで視覚的に見ることが可能だ。このコマンドはHTMLファイルを出力する。

 以下の図では、2つのモダンスタンバイ期間があり、片方は、設定により8時間でモダンスタンバイから休止状態に入った(オレンジの部分)。

上のグラフと下の表のオレンジの部分は、モダンスタンバイに入り、8時間以上経過したために休止状態に入ったもの。赤い部分は、4時間で電力の5%を消費したので、休止状態に入った

 もう1つは、4時間経過後、消費電力が5%を越えるため、休止状態に入った場合だ(赤の部分)。モダンスタンバイの欠点の1つは、スタンバイ中の消費電力超過がどういう理由で起こるのかが簡単にはわからず、原因を示すグラフを見ないと、何が起こっているのかが見えにくい点だ。

 インストールされているアプリや、ファームウェアの問題でモダンスタンバイ中に消費電力が増え、短期間で休止状態に入った場合、ユーザーには、休止状態に入るまでの時間が短く、起動に時間がかかる印象を受ける。また、こうしたレポートを見ても、原因がはっきりとしないため対策の立てようがないという問題もある。筆者の環境では、ファームウェアのアップデートのあと、モダンスタンバイ中の消費電力が下がったような印象がある。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン