Windows 7 のエネルギー効率

この投稿では、電源管理を中心に、基本的なことを説明したいと思います。電源管理 ( すなわち、エネルギー効率 ) は、 PC エコシステムに取り組もうとする場合には必ず対応を迫られる問題であり、 PC 実行時のエネルギー効率は、最もエネルギー効率の悪いコンポーネントによる制約を受けます。 Windows 7 の設計時には、実行システムのエネルギー使用パターンを重視するということが明確になっており、私たちは今後も継続してハードウェアやソフトウェアの製造元と協力し、この取り組み全体を通じて得られる利点について把握するよう努めるつもりでいます。あらゆる領域におけるニーズのバランスを保とうとするときに、エネルギーの消費は、おそらく最も目に見えてわかりやすいことだと思われます。私たちが、システムを試験的に実行するときには、システムを電源メーターに接続するので、それによってテストの実行時の数値的な変化がはっきりとわかります ( アポロ 13 という映画で、割り当てられている電源を有効に使おうと格闘している様子 ( ずっとミッションクリティカルな問題でありますが ) をご覧になった方もいらっしゃるかもしれません ) 。この投稿は、カーネルチームを統括するプログラム管理チームの Dean DeWhitt によるものです。 --Steven

エネルギー効率は、現代のコンピューティングに関して頻繁に話題に上ることの 1 つです。その証拠に、プロセッサやチップセットのベンダーは、製品について、単なるプロセッサのクロック周波数やベンチマーク パフォーマンスではなく、"ワットあたりのパフォーマンス" を売り込んでいます。おそらく、多くのインダストリ コンソーシアムのうちの 1 つのプレス リリースで、"グリーンコンピューティング" (コンピューティングにおける電力消費と環境への影響の低減) に注目していたのをご存知の方もいらっしゃるかもしれせん。最終的に、バッテリの寿命は、常に、モバイル PC の購買とユーザビリティに影響する主要な要因となります。こうした、PC 業界におけるエネルギー効率に関する取り組みは、Windows の電源管理の方法に対する継続的な関心を呼び起こします。

Windows 7 の設計における私たちの目標は、以前のリリースよりも電力消費を削減し、ユーザーが Windows PC に望む能力と機能を提供することです。Windows では、既に豊富な省エネルギー機能が提供されています。たとえば、ユーザーがコンピューターを使用していないときには、ディスプレイの電源を切って、システムを自動的にスリープ状態にできます。Windows 7 では、こうした領域への投資を重ねており、既存の機能を拡張し、システムがアイドル状態のときの電力消費を削減することを重視しています。Windows では、プロセッサ、ハード ドライブやディスプレイなどのさまざまなデバイスの電源の状態を管理する必要がありますが、コンピューターで実行されている、それ以外のデバイスやソフトウェアも、電力消費とバッテリの寿命に関して、(それ以上とは言わずとも) 同程度の影響を及ぼします。これは、PC の操作性の向上に取り組んでいるあらゆる人々にとっての課題です。

私たちは、エネルギー効率と電力消費について話をするときに、課題となる領域を、次の 3 つに分類しています。

  • 基本ハードウェアプラットフォーム : プロセッサ、チップセット、およびメモリ。モバイル プラットフォームの場合には、バッテリ容量も含まれます。基本ハードウェア プラットフォームは、プラットフォームの電力消費に大きな影響を及ぼす可能性があります。最大プロセッサ速度、コア数 (プロセッサがモバイル デバイス用に設計されている場合)、RAM 容量などはすべて、電力消費に影響を及ぼす要因となります。
  • Windows : PC オペレーティング システムでは、システム内のさまざまなデバイスを管理し、利用状況に基づいたパフォーマンスと電力消費のトレードオフを考慮して、エンドユーザーが電源の計画と設定を通じて電源管理の方針を伝えられるようにする必要があります。この領域での課題は、デバイスの電源を適切に管理して、Windows の新たな機能において、システム リソース (CPU、メモリとディスク) ができるだけ効率的に使用されるようにすることです。
  • 拡張機能 : 拡張機能は、他のデバイス、ドライバー、サービスとアプリケーションなどを含む一般的なカテゴリです。デバイス、ドライバー、およびその他のソフトウェアは、電力消費に重要な影響を及ぼす可能性があり、1 つのアプリケーションによってバッテリの寿命が 20% 以上異なってくることもあります。

Windows PC でエネルギー効率を大幅に向上するためには、これらの各領域での取り組みが必要になります。いずれか 1 つの領域における 1 つのコンポーネントに関する問題が、電力消費に大きな影響を及ぼす可能性もあります。そのため、プラットフォームの観点からエネルギー効率の問題に取り組み、プラットフォーム上の各コンポーネントについて特別な注意を払うことが必要とされます。

基本ハードウェアプラットフォーム

基本ハードウェア プラットフォームは、実際にはシステムの製造元によって異なります。お客様は、システムを購入するときに、究極の選択をすることになります。つまり、非常に効率的なハードウェア コンポーネントを備えたシステムを購入することも、電力消費よりもパフォーマンスが優先されたコンポーネントを備えたシステムを購入することもできます。デスクトップ PC やモバイル PC には、さまざまなフォーム ファクターの、能力や電力消費レベルの異なるものがあります。モバイル PC には、標準的な 3 セルまたは 6 セル バッテリを備えているものも、拡張 9 セル バッテリまたはコンピューターに追加可能な別の外部バッテリを持つものもあります。Windows における課題は、Windows エコシステムの広範にわたるハードウェアでのエネルギー効率をいかに向上するかということです。最新のラップトップの電源に関しては、次のような傾向があります。

デスクトップは、ワット数は高いものの、電源の配分は似たようなものになるでしょう。デスクトップ PC を使用する場合にも、ディスプレイでは大量のエネルギーが消費されます。

オペレーティングシステム

Windows オペレーティング システムは、プラットフォーム上の他のコンポーネントと同じくらい大きいな影響を及ぼす可能性があります。Windows 7 の設計において私たちが目標としているのは、オペレーティング システムにおいて、電源ポリシーの設定をはじめとする、優れた基盤および省電力を実現する機会を Windows で提供できるようにすることです。

Windows の電源管理で大部分のユーザーが最初に使用するのは、[コントロール パネル] の [電源オプション]、またはモバイル PC のバッテリ メーターです。Windows には、電源設定や電源プランといった電源管理機能が備わっています。電源プランでは、必要に応じて、ある電源設定のセットから別のセットに簡単に変更できます。

電源プランでは、さまざまな Windows 省電力機能を変更できます。たとえば、無通信タイマーを使用すると、ディスプレイをオフすることも、システムを自動的にスリープ状態にしたり、システムを希望どおりに設定するための新しいカスタム電源計画を新たに作成したりすることもできます。ディスプレイの電源オフ機能とスリープ機能やアイドル機能は、省電力を実現し、バッテリの寿命を延ばすために非常に重要です。上に示したように、ディスプレイは、一般的なモバイル PC の場合には、割り当てられている電源の 40% を消費し、デスクトップ PC の場合には、30 ~ 100 超のワット数を消費する可能性があります。

PC の OEM (特にラップトップの製造元) は、特定のモデルで使用可能な差別化されたハードウェアや固有のソフトウェアを活用するためのカスタム電源機能のセットを開発することがしばしばあります。PC の OEM の名前が付いた電源機能を目にすることもよくあるでしょう。これらは、エネルギー効率の向上に取り組む OEM によって開発されたものです。

簡単なヒント : デスクトップ PC の電力を節約する最も簡単な方法は、ディプレイのアイドル タイムアウトを思い切って短くする (たとえば、2 分または 5 分にする) ことです。スクリーン セーバーが有効になっている場合は、無効にして、ディスプレイをオフにできるようにしてください。モバイル PC でバッテリの寿命を延ばす最も簡単な方法は、ディスプレイの輝度も下げることです。また、新しいオールインワン コンピューターの多くは、ラップトップ コンポーネントを使用しており、電源管理の観点からはラップトップと同様と見なされることに注意してください。

Windows では、必要に応じてパフォーマンスを向上させ、現在のワークロードに基づいて電力を節約するために、プロセッサのパフォーマンスを管理し、現在の利用状況に基づいて動的に変更しています。たとえば、私がこのブログ投稿を入力しているときなど、システムがほとんどアイドル状態のときには、最大の動作モードでプロセッサを動作させている必要はないので、プロセッサの電圧と周波数の値を低くして電力を節約できます。同様に、ハード ディスク ドライブやその他のさまざまなデバイスでは、使用しないときには、低出力モードにするか、完全に電源を切って、電力を節約できます。

Windows 7 では、電源管理のためのユーザー エクスペリエンスが洗練され、アイドル状態での電力消費の削減と新しいデバイス電源モードのサポートが重視されています。

システムがアイドル状態のときの電力消費を最適化するのには、2 つの理由があります。1 つ目の理由は、PC は 1 日のうちでもさまざまなときにアイドル状態になることがあるので、システムがアイドル状態になっている時間が増えるほど消費する電力が減るようになるからです。2 つ目の理由は、アイドル状態のときの電力消費が "基本" となり、他のすべてのワークロードにおける電力消費がそれに加わってくるからです。たとえば、アイドル状態で 15 W 消費するシステムでは、他のワークロードを処理しているときの電力消費がそれに加わることになります。アイドル状態のときのプラットフォームでの電力消費を減らすことによって、他の大部分のシナリオでの向上も図ることができます。

アイドル状態のときの電力消費を減らすための第一歩は、プロセッサ、メモリ、およびディスクの使用を最適化することです。プロセッサは広範囲にわたって電力を消費するので、プロセッサの使用を減らすことは最も重要です。まったくのアイドル状態のときには、プロセッサが消費する電力は 100 ~ 300 mW という低さです。しかし、完全にビジー状態のときには、プロセッサは最高 35 Wを消費することがあります。このように、消費する電力にかなりの幅があることは、プロセッサがたとえ短時間しか動作してなくても、電力消費とバッテリの寿命に大きな影響を及ぼす可能性があることを意味しています。Windows 7 では、プロセッサの使用を減らすために役立ついくつかの領域に投資しており、プロセッサが低電力モードになる時間がより長くなっています。こうした投資のうちの 1 つは、プラットフォーム上で実行されるサービスの領域に対するものであり、それらのサービスが必要なときにのみ起動するようにする、"トリガー起動" と呼ばれるものです。それらのサービスは、効率的であり、サービス自体が及ぼす影響は最小限に抑えられていますが、効果のあるいくつかのサービスを追加することもできます。私たちは、Windows でこれら両方のサービスを管理しながらも、この領域への投資を、このインフラストラクチャを活用するためのサービスを作成している人たちのために拡張するための洗練された方法を探しています (これらは、ブート時間の向上に貢献する機能でもあります)。

アイドル状態のときの電力消費をさらに減らせるようにするために、私たちは、コア プロセッサの電源管理の向上を重視しています。Windows では、現在の利用状況に基づいてプロセッサのパフォーマンスが調整され、絶対に必要なときにのみプロセッサのパフォーマンスを向上させるようにすることによって、電力消費が大幅に削減されます。

私たちは、USB デバイス クラスの拡張など、デバイスの電源管理の領域に投資をすることで、オーディオ、バイオメトリクス、スキャナー、スマート カードなどの広範にわたるデバイスでの選択的な中断 (selective suspend) を可能にしました。これらの、Windows 7 で使用可能な機能によって、よりエネルギー効率の優れた PC の設計が可能になりました。また、私たちは、ワイヤード (有線) またはワイヤレスのネットワーク デバイスの電源管理の向上を図るための投資も行いました。

コア インフラストラクチャへの多くの投資によって、いくつかのシナリオでのエネルギー効率が向上しましたが、Windows 7 では、いくつかの主要な顧客シナリオにおいて、リソースの使用率の改善を図れる領域を特定して、モバイル プラットフォームでのバッテリの寿命を延ばせるようにすることを重視しました。そのようにして特定されたシナリオの 1 つは、メディアの再生でした。DVD 再生を最適化するには、プロセッサとグラフィクスの使用率の減少、オーディオの向上、光ディスク ドライブの拡張が必要になります。これらの向上を図ることについては、既に成果を上げており、WinHEC のカンファレンスで説明したとおり、広範にわたるモバイル プラットフォームでのバッテリ寿命を大幅に伸ばすことができました。

拡張機能

グラフィック デバイス、USB デバイス、デバイス ドライバー、バックグラウンド サービス、およびインストールされたアプリケーションは、すべて Windows の拡張機能です。電力消費とエネルギー効率の大幅な向上を図ることは、プラットフォーム拡張機能の効率を向上させることによって実現できます。

たとえば、1 つの USB デバイスが選択サスペンドをサポートしない場合について考えてみてください。その USB デバイス自体は、非常に少ない電力しか消費しないかもしれませんが (指紋リーダーなど)、そのデバイスがサスペンド状態になるまで、プロセッサとチップセットは非常に頻繁にデバイスをポーリングして、新しいデータがあるかどうかを確認する必要があります。そうしたポーリングにより、プロセッサが低消費電力のアイドル状態になるのが妨げられて、一般的なビジネスクラスのノートブックの場合は、バッテリの寿命が 20 ~ 25% 短くなります。

エネルギー効率の大幅な向上が要求される領域は、デバイス以外にもあります。アプリケーションとサービス ソフトウェアも、電力消費に大きな影響を及ぼす可能性があります。たとえば、timeBeginPeriod API を使用してプラットフォームのタイマーの精度を向上させるアプリケーションについて考えてみましょう。その場合、プラットフォームのタイマー チックの精度が向上し、プロセッサが低消費電力のアイドル モードを効率的に使用できなくなります。1 つのアプリケーションでタイマー精度が 1ms まで向上した状態が保たれると、一般的なノートブック PC の場合は、バッテリの寿命に最大 10% の影響が及ぶことが観察されました。

私たちは、パートナーと密接に連携して、Windows プラットフォームの拡張機能のエネルギー効率の向上に努めています。私たちが採用している方法は、ハードウェアとソフトウェアのエネルギー効率の問題を特定するための豊富なツールを提供することです。Windows 7 では、エネルギー効率の問題に関する HTML 形式のレポートを提供する新しいインボックス ユーティリティ (電源の問題に関する "トップ 10" チェックリスト) を追加しました。それを Windows 7 で試してみたい場合は、管理者特権でのコマンド プロンプトで powercfg /energy を実行してください。Powercfg を実行するときには、開いているアプリケーションとドキュメントをすべて閉じておくようにします。このユーティリティは、システムがアイドル状態のときのエネルギー効率の問題を検出するように設計されています。/energy パラメーターを指定して powercfg を実行すると、サスペンド状態にない USB デバイスとプラットフォーム タイマーの精度が向上したアプリケーションを検出できます。

より高度な解析を行うために、Windows Performance Toolkit も提供されています。ソフトウェア開発者は、Performance Toolkit (https://www.microsoft.com/japan/whdc/system/sysperf/perftools.mspx) を使用すれば、アプリケーションのリソースの使用率の観察、パフォーマンスのボトルネックの解決、およびエネルギー効率に影響を与える問題の特定を非常に簡単に行えるようになります。

PC がオフの場合の電力の節約

今までは、PC がオンになっているときの電力の節約について説明してきました。しかし、PC が使用されていないときに低電力モードになるようにすることによっても、電力を節約できます。多くのユーザーは、コンピューターを使用していないときにシャットダウンするだけですが、モバイル PC がスリープ状態 (場合によっては、休止状態) になるようにしているユーザーもいます。ユーザーがシステムを使用するうえでの適切なモードを選択できるようにするために、Windows にはこれら 2 つの省電力モードが備わっています。

  • スリープ状態 : 開いているプログラム、ドキュメント、およびファイルがシステムの RAM に保存され、システムのそれ以外の部分の電源が切られます。スリープ状態では、メモリだけに電源が供給されるので、電力の消費が非常に少なくなります (通常、モバイル PC では 1 W 未満、とデスクトップ PC では 3 W未満)。スリープ状態での主な利点は、非常に短時間でシステムが再開できるということです。ほとんどのシステムでは、2 秒未満でスリープ状態から再開できます。
  • 休止状態 開いているプログラム、ドキュメントとファイルがすべて、システムの RAM からハード ドライブにコピーされます。生成されるファイルは、ハイバネーション ファイルと呼ばれます。RAM がハイバネーション ファイルにコピーされた後で、すべての PC の電源が切られます。休止状態は、モバイル PC で頻繁に使用されます。なぜならば、ほとんどのラップトップでは、消費電力が 0 W に近くなり、バッテリが最終的に使い果たされた後でも、開かれているすべてのプログラムとドキュメントがハイバネーション ファイルにコピーされるからです。RAM のサイズが増え続けても、PC によっては記憶域に限界があるので、休止状態は、一般ユーザーにとって最適なオプションであると言えます (簡単なヒントとしては、ディスク クリーンアップ ウィザードまたは powercfg –hibernate off によって、休止状態のためにあらかじめ割り当てられていたディスク領域を削除できます)。
  • シャットダウン - 通常の Windows のシャットダウンのことです。メモリやディスクには何にも保存されません。次回システムの電源がオンになったときに、システムは再びブートされます。

私たちは、サンプルのデスクトップ PC を使用して、スリープ状態、休止状態、シャットダウン状態、および基本的なオン状態 (デスクトップのみが表示され、何もプログラムが開かれていない状態) での電力消費を測定しました。また、再開の遅延 (システムがオン状態に戻るまでにかかる時間) についても測定しました。

この図からも、私たちがスリープ状態での信頼性とパフォーマンスを重視しており、ほとんどの人々に対して、コンピューターを使用していないときにはスリープ状態にすることを推奨している理由は明白だと思います。スリープ状態では、シャットダウン状態のときとほぼ同じだけ電力が消費されますが、システムがブート プロセスなしに 2 秒未満で再開されます。ブート時には大量の電力が消費されるので、コンピューターの電源をオフにして電力を節約するか、それともコンピューターを低電力状態にするかを検討するときには、コンピューターを使用しない時間がどれくらいあるのかを考える必要があります。とは言え、以前のブログで説明したとおり、ブート (およびシャットダウン) が、Windows 7 を設計するうえで、パフォーマンスを向上させるうえでの非常に重要な要因となることは明らかです。

次のステップ

私たちは、Windows PC のエネルギー効率を継続的に向上させるよう努めています。また、電源がどこで消費されているかを識別するためのツールと、Windows 7 のコア プラットフォームの電源管理の大幅な向上を図りました。私たちには、やらなければならないことがまだたくさんありますが、ベータ版のリリースを楽しみにしており、CEIP でエネルギー効率と電源管理に関するフィードバックが送られてくるのを心待ちにしています。もちろん、引き続きエコシステムの他のメンバーと密接に連携し、全員が一丸となって、PC、ソフトウェア、および周辺機器の製造、使用、およびライフサイクルの終了に至るまでのエネルギー効率の向上に大きく貢献できるように努めたいと思っています。

--Dean