インテル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マシンの場合、スロットリングに関しては、ユーザーは特に何かをする必要はない。ただ、消費電力を下げるという点からは電源モードを「高パフォーマンス」以下に設定しておけば、スロットリングが有効になる。さて、次回は、同じく電源管理を利用して実現されている「モダンスタンバイ」について解説し、一連の電源管理解説のまとめとしたい。
![](/img/blank.gif)
この連載の記事
-
第446回
PC
Windows 11のフォトアプリがUWPからWin32アプリになったことで今更わかるUWPの問題点 -
第445回
PC
次期Windows 11ではAndroidのファイルをエクスプローラーからアクセス可能になる -
第444回
PC
外部ファイルをExcelに読み込む際の作業を効率化するPower Queryの活用 -
第443回
PC
Windows Terminalで採用されたCascadia Codeフォントを使うとプログラムを書くとき断然見やすい -
第442回
PC
Copilot+ PCで実現されるローカル推論で「対クラウド企業」を指向するMicrosoft -
第441回
PC
WSL以前から40年以上続く、Windows(Microsoft)とUNIXとの関わり -
第440回
PC
そもそも「Copilot+ PC」とは何なのか? -
第439回
PC
今更more.comを使うのか!? Windowsでのページングを考える -
第438回
PC
Windowsはなぜ再起動が必要になるのか? -
第437回
PC
Windowsが今更(?)開発者に優しくなろうとしている!? 「Dev Home」は開発者にとって使い物になる? -
第436回
PC
Copilot+PCとともにWindowsのデバイス間連携に大きな変化!? Project ROMEの逆襲? - この連載の一覧へ