このページの本文へ

前へ 1 2 次へ

Windows Info第191回

「スロットリング」ではCPUの電力管理をOSではなく、CPU任せにする

2019年09月22日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

 今回は前回の続きで、Windows 10の省電力機能を具体的に見ていく。今回のテーマは「スロットリング」である。マイクロソフトによれば、このスロットリングを使うことで、多くの場合CPUの消費電力を11%ほど削減することが可能になるという。

第6世代Coreシリーズ以降で使える「スロットリング」
CPU性能の制御をWindowsではなく、CPUがする

 スロットリングは、RS3(Windows 10 Ver.1709)から利用できるようになった機能だ。スロットリングとは、簡単に言えば、これまでWindowsが制御していたプロセッサのパフォーマンス状態をCPUの電力管理機能に完全に任せてしまうことだ。

 日本語版Windowsでは「電源調整」と呼ばれる。スロットリングは、アプリケーションの負荷に応じてCPU性能を制御する。RS3以降で第6世代以降のインテルCoreプロセッサを搭載していれば利用することができる。条件を満たしたマシンでは、バッテリ駆動状態で、電源モードが「最も高いパフォーマンス」でなければタスクマネージャーの詳細タブで「電源調整」を表示させることで、アプリケーションごとにスロットリングが「有効」か「無効」かを判定できる。

第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では、スロットリングをP-Stateとは別のThrottling-Stateであると定義する。ともにC0-State/G0-Stateとなる

 ACPIでスロットリングが導入されたのは、マルチコアプロセッサやSMTの普及により、電力管理が複雑になり、ソフトウェア側の対応が難しくなってきたからだ。CPUの電力管理は、プロセッサハードウェアにより固有の条件があり、電力やパフォーマンス調整を個別のコア単独でできない場合がある。

 たとえば、SMTを構成する2つの論理コアは、同一のハードウェアコアであるため、両方でスレッドを実行している場合に異なるP-Stateを割り当てることができない、あるいは片方だけ電源を落とせないといった状態が発生する。また、パッケージのC-Stateは、コア全部のC-Stateとも関係するため、コアのC-Stateと無関係に制御することも困難だ。このため、パフォーマンス制御をハードウェア側に委譲するためのThrottling Stateが導入された。

前へ 1 2 次へ

この連載の記事

注目ニュース

ASCII倶楽部

最新記事

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン