インテルCPUでのスロットリングの実装
Windows 10のスロットリングには、インテルがSkylake(第六世代Intel Coreプロセッサ)に搭載したSpeed Shiftを使う。現状、スロットリングは、Speed Shiftに対応したCPUでのみ利用できる。Skylake以前のプロセッサには、Speed ShiftではなくEnhanced SpeedStep Technology(EIST)と呼ばれる機能が搭載されていた。
EISTは、Pentium 4(Prescott)から搭載されている古い機能であり、最近のCPUでは、パッケージの温度を監視しながら最大周波数動作を制御するIntel Turbo Boost Technology(ターボブースト)と組みあわせてクロックを制御する。EISTの場合、P0-Stateとなる最大周波数への移行は、ターボブーストで、P1以下のP-Stateの制御をEIST経由でWindowsがしていた。このとき、P0-Stateに移行させるためには、ソフトウェア制御でP1ステートに持っていく必要があった。
これに対して、Speed Shiftは、ターボブーストの最大パフォーマンスから、最低クロック周波数までをすべて管理できるように作られた。スロットリングは、この機能を利用し、稼働中のコアに対して、P-StateからThrottling-Stateに移行させ、そのパフォーマンス設定をCPU側にすべて任せる。
CPUによるパフォーマンス制御のメリットは、OS(ソフトウェア)からの制御に比べて高速に動作できる点だ。ソフトウェアによるパフォーマンスの設定では、負荷の検出やクロック周波数/電源電圧の設定にソフトウェアコードが動作するため、最低でも数ミリ秒程度の時間が必要になる。
このため、EISTとターボブーストの場合、EIST側の最大周波数(P1-State)に達するまで100ミリ秒程度の時間(CPU世代やプロセッサナンバーによる違いはある)が必要で、そのあと、ターボブーストが動作して最大クロックに達する。これに対してCPUによる制御ではプログラムを動作させる必要がなく、数ミリ秒程度で制御が可能だ。インテルの資料によれば、10数~30数ミリ秒程度の時間(同)で最大クロック周波数に達することができるという。このため、負荷の高いソフトウェアの実行でも、短時間で最大パフォーマンスに達することができる。
もう1つのメリットは、CPUパッケージ全体を見た省電力化が可能な点だ。
CPUパッケージ内には、さまざまな周辺回路が統合されており、オンになっている時間が長いほど電力を消費する。これに対して、コアの消費電力は性能に比例して高くなる。1つのタスクに関して見ると、処理時間が短いほどパッケージ全体の消費電力は小さくなるが、そのためには高いパフォーマンスでタスクを実行する必要がある。
このため、パッケージ全体では、1つのタスクを処理するのに最も低い消費電力となる点が最大パフォーマンスと最低パフォーマンスのどこかに存在することになる。CPU側のハードウェアで行なうCPU制御であれば、この点を見付けるのは比較的容易だが、ソフトウェアでするのはかなり難しい。また、その処理プログラムのためにコアが動いてしまうと、最適点はズレてしまう。このため、最も電力効率の良いパフォーマンス設定はハードウェア側でないと選択が不可能になる。
バッテリで動作するWindowsマシンの場合、スロットリングに関しては、ユーザーは特に何かをする必要はない。ただ、消費電力を下げるという点からは電源モードを「高パフォーマンス」以下に設定しておけば、スロットリングが有効になる。さて、次回は、同じく電源管理を利用して実現されている「モダンスタンバイ」について解説し、一連の電源管理解説のまとめとしたい。

この連載の記事
-
第471回
PC
Windowsのコマンドラインでエイリアスを使う -
第470回
PC
Windows用のパッケージマネージャー「Winget」 プレビュー版で機能が充実してきた -
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない - この連載の一覧へ