Windows 8で導入される新ドライバー
「Power Engine Plugin」
Windows 8の開発時には、まず消費電力の計測を行なう専用マシンを、主要なプロセッサーベンダーごとに作ったという。そしてOSのビルド※1ごとに、このテストマシンに自動インストールを行なって、消費電力を自動測定しているという。消費電力はアイドル時、ウェブブラウジング、ビデオ再生、オーディオ再生、スタンバイ状態などの複数の状態で測定して、ソフトウェアの完成に向かうに従って消費電力が増大してしまわないように、注意を払って開発が進められているようだ。
※1 ある時点でのソースコードから実行可能なバイナリを生成すること。
OSが注意したとしても、実際の利用では設定などによるバックグラウンドタスクの状態により、アイドル状態が連続しない可能性もある。一般にプロセッサーの省電力機能は段階的に働いており、アイドル時間が長くなるほど消費電力を小さくする「深い休眠状態」(Deep Sleep)に入っていく。マイクロソフトがWindows 8と7でこれを測定したところ、画面がオンになっている状態では、Windows 7のアイドル時間は最大で15.6ミリ秒が限界だったのに対して、Windows 8ではアイドル時間の35%が100ミリ秒を超えるようになったという。
またWindows 8では、プロセッサーやチップセットあるいはSoCの電源管理用ドライバーとして「Power Engine Plugin」 (PEP)という仕組みが用意された(図1)。このドライバーは、各プロセッサーシステム向けに省電力機能を統括するもので、SoCやチップセット内蔵のUSBコントローラーやキーボードコントローラーなどの省電力機能を、プラグイン側で管理するためのminiportドライバーだ。各種デバイスドライバーと電力管理機能を分離できるため、サーバー向けやデスクトップ、タブレットといったプラットフォームごとに、デバイスドライバーを作り分ける必要がなくなった。
Metroアプリはデスクトップアプリよりも
省電力に動作する
しかし、さらなる省電力を実現するためには、アプリケーションの構造にまで踏み込む必要がある。というのは、システム側でプロセッサーをアイドル状態に保つように配慮しても、アプリケーションが動き続ければ、プロセッサーをアイドル状態にすることはできないからだ。Windows 8でいうデスクトップアプリケーションは、構造的にバッテリー駆動であることを想定して作られておらず、実行状態と停止状態(スリープ/休止状態)の2つしかないという前提で作られている。中には、なんらかのチェックのために一定時間ごとにプログラムが動作し、電力を消費してしまうようなアプリケーションもある。
Windows 7の場合、「デスクトップガジェット」の表示をやめると、バッテリー寿命が延びることが知られている。これは、ガジェットがタイマーなどで定期的に動き、その実行で電力を消費するからである。ガジェットはJavaScriptやVBScriptなどのインタプリタ言語で記述されているため、同等の機能を持つ機械語コードのアプリケーションよりも、実行には長い時間がかかる。そのため、例えば時計ガジェットのように1秒に1回の動作でも、トータルではバッテリー駆動時間に大きな影響を及ぼすことになる。Windows 8でもガジェットを含むデスクトップアプリケーションに関して言えば、バッテリーに与える影響はWindows 7と変わらない。
そのため、新しく作られたMetroスタイルアプリケーションは、最初から省電力になるようにプログラムを作る仕組みが導入されている。そのひとつが、アプリケーションのライフタイムをアプリケーション自身ではなく、Windows 8側で管理するというものだ(図2)。
Metroスタイルアプリケーション(以下Metroアプリ)は全画面を占有するので、他のMetroアプリがフォアグラウンドとなれば、いままで実行されていたMetroアプリはバックグラウンドになる(図3)。このときバックグラウンドになったMetroアプリには「バックグラウンドになった」との通知が行なわれ、5秒後にSuspend(一時停止)状態にされる。Metroアプリはこの5秒間の間に、再開に必要な情報などをセーブする。
一時停止状態となったアプリケーションは、スケジューラーの対象からも外れる。さらにメモリーが逼迫したときなどには、通知なしに強制終了させられる。このような構造になっているため、バックグラウンドのMetroアプリが消費電力に影響を与えることはほとんどない。
この連載の記事
-
第34回
PC
Windows 8の狙いは、UIの変化よりもAPIの変化が本質 -
第33回
PC
Windows 8が動作しなくなった? 新しくなった修復機能 -
第32回
PC
Windows 8でIMEに求められる新しい要素とはなにか? -
第31回
PC
Windows 8の無線LANをコマンドラインで細かく制御 -
第30回
PC
Windows 8をマウスで使いやすくするレジストリの小技 -
第29回
PC
周辺機器・アプリがWindows 8/RTで動くか確認する方法 -
第28回
PC
Windows 8のキーボードショートカットを全公開 -
第27回
PC
Windows 8が使いにくい? マウスを変えると印象も変わる -
第26回
PC
実はNFCに対応しているWindows 8 ただしアプリは不足 -
第25回
PC
実は扱いがまったく異なるWindows 8でのタッチパネル -
第24回
PC
Surfaceから見えるWindows RTの実像と、将来PCへの影響 - この連載の一覧へ