【設定メモ】Surface Proの電池を6時間持たせる設定


本文

Surface Proは性能的には満足なのですが、電池が4時間半しか持たないと、一部で評判です。本当に4時間半しか持たないのか? 何とかする方法はないのか? を探りました。

また、消費電力量が減るとそのぶん発生する熱量も減るので、熱の問題にも一定の効果が期待できます。

実験のレギュレーション

さっそく実験です。BBenchでバッテリーベンチマークをして、満充電から電源断までの時間を見ることにします。BBenchの設定はデフォルトのキーストローク出力10秒毎、Web巡回60秒毎です。Internet Explorer 10をタブブラウズ無効にして使用します。

その他、電池消費に影響のありそうな点として、MicroSDHCはアクセスはしないものの差しっぱなしです。USBは何も差していません。Bluetoothはオンですが、何もペアリングしていません。

デフォルトの設定では4時間しか持たないというのが通説なので、とりあえずそれを検証してみます。

たしかに買ってきたままの状態では、4時間半しか持たない

電源プラン「バランス」で、バッテリー100%から50%まで2時間39分、4時間36分で8%となり電源断。だいたい一定の減り方ですが、25%あたりから一気に21%に落ちているのと、0%まで使い切れるわけではないことから、後半のほうが電池が持たない感じになっています。とはいえ、5%以下で休止状態に移行と設定してるのに、8%で切れてるのがちょっと気になる。

だいたい言われている通りですね。ただし、最もバッテリーを削る画面の明るさがデフォだとかなり眩しく、このまま使うひとも少ないと思うので、実際のシーンではもうちょっと長いんじゃないでしょうか。

電源プラン・省電力をベースに、プロセッサの最大値を制限してみる

省電力をベースに、新しい電源プランを作成してみます。電源プランから、電源プランの作成を選び、既定のプランに「省電力」を設定して開始します。

とりあえず画面の明るさを5%にしたほか、プロセッサの最大値を50にしました。50%まで3時間1分、0%まで5時間12分。もうちょっと延びるかと思ったのですが、意外と持たないですね。5時間しか持たないとは思いませんでした。

タスクマネージャを見ると、通常の省電力ではアイドル時でもCPU周波数が0.8~1.0GHzあたりをうろうろしているのに対し、当該設定では0.78GHzから動かないことに気づきます。動作周波数が下がったため、アイドル時その他の熱量は下がりましたが、逆にどんなに負荷をかけても0.78GHzから動かないので、たとえばニコニコ動画を見るとコメントがカクカクします。この設定は一般的な用途にはオススメしづらいですね。

プロセッサの最大値の設定はなかったことにして、別の設定を探ります。

レジストリを変更して電源プランをさらにカスタマイズする

デフォルトでは表示されていない設定項目を出すために、レジストリを変更します。試す場合は自己責任でどうぞ。

具体的な内容は次項以降で書いていきます。

Core Parkingを有効にする

デフォルトではコア保留が有効になっていないので有効にします。

Core Parking とは、負荷がそれほど高くない場合に全ての CPUコアを利用せず、不必要なコアを”保留状態”にして使用しているコアを減らし、電力を削減する機能です。
Windows 7 はクライアントOS であるため、負荷の上昇に対してなるべく早く高性能状態へ移行する目的で Core Parkingに関する設定は既定ではオフになっています。

(中略)

その設定を適用すると、このように、Core Parking によって CPU が片方 (当方 Dual Core環境なため)保留状態になります。
Quad Core環境だが、外出時に使用コア数を減らしたいといった方にお勧めです。

Windows 7 で Core Parking を利用する方法 - 岩田 雅樹 のブログ - MSDN Blogs

上記はWindows7についての記述ですが、windows8でも同様です。デフォルトの状態では設定を変更できないので、レジストリを変更して設定項目を表示させます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\

プロセッサの電源管理に関連する項目です。たとえば上記キーの下にある0cc5b647-c1df-4637-891a-dec35c318583のAttributesの値を「0」に変更すると、「プロセッサ パフォーマンスのコア保留の最小コア」が表示されるようになります。

非表示の設定項目は他にも色々とあります。どれが何の項目に対応してるかは、マイクロソフトの公式ガイドに記載されています。

参考:Windows 7 と Windows Server 2008 R2 でのプロセッサの電源管理

とりあえず全項目を表示するようにしてみました。

レジストリを変更したあとは、電源プランのプロセッサの電源管理→プロセッサ パフォーマンスのコア保留の最小コア を、デフォルトの「100%」から「50%」に、スロットルの状態を使用する を「オフ」から「オン」に変更します。リソースモニターを見ると、一部のコアが保留状態となっているのがわかります。マイクロソフトの公式ガイドには論理プロセッサ数が対象と書かれていますが、最小コア25%にしても2個動いているので、物理コア数を対象に動作しているようです。

コア保留については、クライアント環境では0%か100%になることが多く、すぐ100にならないと反応が悪いとされるためか、通常では設定できないようにされているようです。また、この設定はコアが少ないと効果が薄く、定期的に監視するコストの方が高い(かもしれない)というのもあるようです。

プロセッサ パフォーマンスのコア保留の増加時間が「1時間チェック間隔」、プロセッサ パフォーマンス時間チェック間隔が「200ミリ秒」なので、デフォルトでは200ミリ秒毎に確認して制御するようですね。増加時間を「3時間チェック間隔」、時間チェック間隔を「1000ミリ秒毎」にしてみました。これで3秒毎にチェックするはずです。

その他、色々放り込んでみました。

  • プロセッサ パフォーマンスの向上しきい値:95%
  • プロセッサ パフォーマンスの待機時間感度に関するヒント:有効
  • プロセッサ パフォーマンスの低下しきい値:80%
  • プロセッサ パフォーマンスの低下ポリシー:ロケット
  • プロセッサ パフォーマンスの向上ポリシー(プロセッサ数):50%
  • プロセッサ パフォーマンスの向上ポリシー(アルゴリズム):理想
  • プロセッサ アイドルしきい値スケーリング:スケーリングを無効にする
  • 最小のプロセッサの状態:1%
  • プロセッサ パフォーマンス コア保留の過剰使用のしきい値:85%
  • システムの冷却ポリシー:アクティブ
  • プロセッサ パフォーマンス向上間隔:1時間チェック間隔
  • プロセッサの最大値:100%
  • プロセッサ パフォーマンスの向上モード:効率的な有効化
  • プロセッサ パフォーマンス コア保留の減少時間:10チェック間隔
  • プロセッサ パフォーマンス コア保留の最大コア数:75%

普段は休眠させつつ、パワーが必要なときはパワーを出して終わったらすぐ休眠状態に戻ってもらうイメージで設定してみました。一応入れているけど意味のない設定もあります。最小のプロセッサの状態とか。

さて、上記設定も入れた状態で測ってみます。50%まで2時間57分、0%まで5時間12分。プロセッサの最大値を50に設定したときとほぼ同等ですが、この設定では負荷をかけたときはちゃんと動作周波数が2.4GHzまで上がってくれるので、ニコニコ動画のコメントもカクつきません。

ただし、温度を優先するなら、プロセッサの最大値を制限したほうがいい可能性があります。両方組み合わせてみてもいいかもしれませんね。

Device Initiated Link Power Management(DIPM)を有効にする

デフォルトではDIPMが有効になっていないので有効にします。

SATA LPMとは、文字どおり「パワーマネジメント」の機能です。データ転送を行わない時にSerialATAのPHY(物理層)を低電圧状態に移行させ、消費電力を少なくしようというものです。
制御方法には、「HIPM((Host Initiated Link Power Management)」と「DIPM(Device Initiated Link Power Management)」 の2つが規定されています。HIPMは、ホスト側から省電力状態への移行要求を行う方法。DIPMは、デバイス(HDDやSSDなど)から省電力状態への移行要求を行う方法です。HIPMとDIPMは、どちらか一方のみを使用しても かまいませんし、両方を同時に使用することもできます。このため、両者は、パワーマネジメントの要求を行うのがHostかDeviceかの違いのみで省電力効果などの機能は全く同じです。

(中略)

DIPMのメリットは、実際のコマンド等を処理するハード側ですべての制御を行えることです。DIPMは、コマンド(ATA SET_FEATURESコマンド)をDeviceに送るだけで機能のオン/オフを切り替えることができます。オンにした場合は、Device側で決められた基準に沿って、LPMを要求できます。

忘却の彼方: SATA LPMって知ってますか?

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\0012ee47-9041-4b5d-9b77-535fba8b1442\0b2d69d7-a2a1-449c-9680-f91c70521c60\

上記キーにあるAttributesの値を「0」に変更して、電源プランに設定項目が表示されるようにします。電源プランのハードディスク→AHCI Link Power Management - HIPM/DIPM を、デフォルトの「HIPM」から、「HIPM+DIPM」に変更します。あわせて、次の時間が経過後ハードディスクの電源を切る設定はなしにしました。

なお、この設定はコンピュータの動作に引っかかりが起きる現象(いわゆるプチフリ)の対策として無効にされることが多いようです。私の使い方では特に問題は出ていませんが、この設定を有効にすることによって、状況によってはプチフリ的な動作をするかも知れません。

フル充電から電源断まで動かしてみました。50%まで3時間16分、0%まで5時間42分。

HWMonitorで温度を見てみると、CPUは51~54℃になっています。ちなみに触ってみた感じだと、画面と裏面:ほんのり温かい、タイプカバー越しの裏面:何も感じない、といったところです。これは外気温によっても変わるので参考程度に。

アイドル状態では6時間19分

上記のカスタム省電力で、機内モードにしてキーストロークのみ実施した場合についても試してみました。フル充電から50%まで3時間35分、0%まで6時間19分。だいたいこのへんが最大値かなという感じですが、画面の明るさを5%のままにしていたので、0%にすればもうちょっと延びそう。

意外と機内モードのアイドル時でも、定期的なインターネットアクセスがある場合とあまり差がないですね。

その他の設定

他に入れている、電源に影響あるかもしれない設定をまとめて書いておきます。

不要なサービスを止める

Computer Browser、Fax、Serverを無効にしています。

デバイスの無効化

HIDセンサーコレクションを無効にしています。環境光センサーとポジションセンサーがセットで無効になります。これを無効にした状態では、明るさの自動調節と画面の自動回転は使えません。

ドライバインストール

ワコムのタブレットドライバTablet Driver 7.1.1-12をインストールしています。インストールしていない状態では試していないのでわかりませんが、ペンをホバー状態にしているだけでワコムのサービス(Tablet Service fot ISD driver)が少しCPUを使っているようです。

インテル公式のグラフィックドライバ バージョン15.31.9.64.3165をインストールし、ディスプレイ省電テクノロジーをオフにしています。

壁紙

Surface Proの液晶はIPS方式であり、IPS方式はノーマリーブラック(電圧オフで黒、最大電圧で白)なので、画面の表示内容が黒ければ黒いほど、消費電力量は少なくなるはずです。私は壁紙は濃い紫の単色にしています。電気効率だけ考えれば真っ黒にするのがいいと思います。


IPS方式の液晶分子配列の模式図。(A)が電圧OFF、(C)が最大電圧

第4回 TN?VA?IPS?──液晶パネル駆動方式の仕組みと特徴を知ろう

かつての名機VAIO Type TZなどは、スタミナ壁紙(液晶がTN方式なので真っ白)を使用すると、バッテリーライフに最大で約30分も違いが出たそうです(公称値)。私は実測していないのでどこまで本当かは分かりませんが、本当なら意外と馬鹿にできないですね。

意外に知られていないのが、背景色が白い壁紙は消費電力が少ないという事実。type Tには、消費電力の少ない壁紙「VAIO Long Battery Life Wallpaper」をプリインストール。これを設定するだけで、「スタミナ」が約30分アップします。

ソニー製品情報 | VAIO | type T

結論

各1回しか測っていないので、測定誤差はあるとは思いますが、アイドルで6時間19分、定期的なインターネットアクセスがあっても5時間42分持つなら、だいたい5.5~6時間くらいは持つ、と言ってよいのではないでしょうか。もちろんもっと負荷をかければ時間は短くなるとは思います。

今回入れた設定まとめ

電源プランについては、レジストリを編集しないと表示されない項目もあります。詳しくは本文を参照ください。

電源プラン-ハードディスク

  • AHCI Link Power Management - HIPM/DIPM:HIPM+DIPM
  • 次の時間が経過後ハードディスクの電源を切る:なし

電源プラン-プロセッサの電源管理

  • プロセッサ パフォーマンスの向上しきい値:95%
  • プロセッサ パフォーマンスの待機時間感度に関するヒント:有効
  • プロセッサ パフォーマンス コア保留の最小コア数:25%
  • プロセッサ パフォーマンスの低下しきい値:80%
  • プロセッサ パフォーマンス コア保留の増加時間:3時間チェック間隔
  • スロットルの状態を使用する:オン
  • プロセッサ パフォーマンスの低下ポリシー:ロケット
  • プロセッサ パフォーマンスの向上ポリシー(プロセッサ数):50%
  • プロセッサ パフォーマンスの向上ポリシー(アルゴリズム):理想
  • プロセッサ パフォーマンス時間チェック間隔:1000ミリ秒
  • プロセッサ アイドルしきい値スケーリング:スケーリングを無効にする
  • 最小のプロセッサの状態:1%
  • プロセッサ パフォーマンス コア保留の過剰使用のしきい値:85%
  • システムの冷却ポリシー:アクティブ
  • プロセッサ パフォーマンス向上間隔:1時間チェック間隔
  • プロセッサの最大値:100%
  • プロセッサ パフォーマンスの向上モード:効率的な有効化
  • プロセッサ パフォーマンス コア保留の減少時間:10チェック間隔
  • プロセッサ パフォーマンス コア保留の最大コア数:75%

電源プラン-ディスプレイ

  • ディスプレイの明るさ:5%
  • 自動輝度調整を有効にする:オフ

不要なサービスを止める

  • Computer Browser
  • Fax
  • Server

デバイスの無効化

  • HIDセンサーコレクション

ドライバインストール

  • Tablet Driver 7.1.1-12をインストール
  • HDグラフィックス4000 バージョン15.31.9.64.3165をインストールし、ディスプレイ省電テクノロジーをオフ

FAQ

4時間しか持たないはずのSurface Pro(Ivy bridge)が6時間も持つなら、12時間もつHaswell機なら同じ設定で18時間持つのでは?

そもそもの電源効率が上がっているであろうことから、そこまできれいに比例はしないと思いますが、ある程度は効果があるかもしれません。

電池を持たせたいならHaswell機を買えばいいじゃん

私はSurface Proを続けるよ

おわりに

私も完全に理解していじっているわけではないので、記載の誤りや、もっとこうしたほうが効果が高いという点がありましたら、ぜひご教示くださいませ。