今回は前回の続きで、Windows 10の省電力機能を具体的に見ていく。今回のテーマは「スロットリング」である。マイクロソフトによれば、このスロットリングを使うことで、多くの場合CPUの消費電力を11%ほど削減することが可能になるという。
第6世代Coreシリーズ以降で使える「スロットリング」
CPU性能の制御をWindowsではなく、CPUがする
スロットリングは、RS3(Windows 10 Ver.1709)から利用できるようになった機能だ。スロットリングとは、簡単に言えば、これまでWindowsが制御していたプロセッサのパフォーマンス状態をCPUの電力管理機能に完全に任せてしまうことだ。
日本語版Windowsでは「電源調整」と呼ばれる。スロットリングは、アプリケーションの負荷に応じてCPU性能を制御する。RS3以降で第6世代以降のインテルCoreプロセッサを搭載していれば利用することができる。条件を満たしたマシンでは、バッテリ駆動状態で、電源モードが「最も高いパフォーマンス」でなければタスクマネージャーの詳細タブで「電源調整」を表示させることで、アプリケーションごとにスロットリングが「有効」か「無効」かを判定できる。
なお、条件を満たさない場合には、電源調整の欄はすべて無効のままである(タスクマネージャーで電源調整の欄自体はどんなマシンでも表示させることは可能)。
また、スロットリングは、バッテリの動作モード(タスクバーのバッテリアイコンのフライアウトから設定)が「高パフォーマンス」以下で有効になり、「最大パフォーマンス」では無効になる。スロットリングは、ハードウェアが負荷に応じて実行性能を制御するが、最大パフォーマンスに達するまでは、多少のタイムラグが生じる。このため、常に高い性能を維持させたい場合には、スロットリングを無効にする必要がある。
ただし、最近のCPUでは、最大パフォーマンス(最大クロック周波数)は、パッケージの温度などを監視しながら利用されるため、瞬間的(とはいってもプログラムから見ると十分長い時間)でしか利用できず、いつでも継続的に利用できるものではない。それでも最大パフォーマンスに達するまでのわずかな時間(これもプログラムから見れば十分長い時間)が、ソフトウェアの処理性能に影響を与え、たとえば、リアルタイム性の高いソフトウェアや負荷の高い処理を継続してするような場合には、オフにすることで、最大性能を利用することが可能になる。
また、スロットリングは、アプリごとに設定が可能だ。その設定は、「設定」→「システム」→「バッテリー」→「バッテリー残量に影響を及ぼしているアプリを表示する」を開き、アプリを選択して、「このアプリをバックグラウンドで実行できるかどうかをWindowsで決定する」をオフにすると、「バックグラウンドのときはアプリの作業負荷を減らす」というチェックボックスが表示されるので、これをオフにすることで、該当アプリのスロットリングを無効とすることができる。
ただし、「設定」→「システム」に「バッテリー」があるのはバッテリ駆動のシステムのみである。また、基本的に、この設定は、バッテリ消費を大きくするため、基本的には設定する必要はない。
また、スロットリングは、グループポリシーエディタ(コンピューターポリシー→コンピューターの構成→管理用テンプレート→システム→電源の管理→電源調整設定→電源調整をオフにする)やレジストリ設定(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerThrottlingのDWORD値PowerThrottlingOffを設定。存在しないキー、名前は作る)で強制的にオフにすることもできる。
そもそもスロットリングとは何?
ACPIでは、スロットリングをThrottling Stateとして定義しており、G0/C0 Stateで、P-Stateとは別の状態としている。P-Stateは、OS(Windows)側が、負荷などに応じて設定するが、Throttlingは、ハードウェア(CPU)側が処理性能(P-Stateに相当)を自動で切り替える。また、スロットリング状態への移行は、OS側がアプリごとに判断して決める。
ACPIでスロットリングが導入されたのは、マルチコアプロセッサやSMTの普及により、電力管理が複雑になり、ソフトウェア側の対応が難しくなってきたからだ。CPUの電力管理は、プロセッサハードウェアにより固有の条件があり、電力やパフォーマンス調整を個別のコア単独でできない場合がある。
たとえば、SMTを構成する2つの論理コアは、同一のハードウェアコアであるため、両方でスレッドを実行している場合に異なるP-Stateを割り当てることができない、あるいは片方だけ電源を落とせないといった状態が発生する。また、パッケージのC-Stateは、コア全部のC-Stateとも関係するため、コアのC-Stateと無関係に制御することも困難だ。このため、パフォーマンス制御をハードウェア側に委譲するためのThrottling Stateが導入された。
この連載の記事
-
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない -
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる - この連載の一覧へ