今回は前回の続きで、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が導入された。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ











