- コア パーキングは、CPU コアをパークし、より少ないアクティブ コアに負荷を集中させることでエネルギー効率を向上させる Windows の機能です。
- その動作はプロセッサと Windows のバージョンによって異なり、Microsoft は Windows Server 2012 などのシステムでそれを自動的に調整します。
- コアパーキングを変更すると、ゲームの FPS と安定性に影響を与える可能性がありますが、実際の影響はハードウェアとソフトウェアによって異なります。
- ParkControl などのツールを使用すると、コア パーキングを簡単に有効または無効にしたり、再起動せずに電源プランを微調整したりできます。
Intel Core i9や高性能なRyzenなど、多数のコアを搭載した最新のプロセッサをお使いの方なら、「コアパーキング」という言葉を耳にしたことがあるかもしれません。FPS、ゲームの安定性、Windows全体のパフォーマンスなどに関する会話の中でよく出てくる言葉ですが、多くの場合、答えよりも多くの疑問を生み出します。
よくある質問は、「Windowsのコアパーキングはデフォルトのままにしておくべきか、それとも無効にしてパフォーマンスを向上させるべきか?」というものです。ゲームの最低フレームレートが向上するという人もいれば、消費電力と温度の面で優れているという人もいます。また、単にMicrosoftの失敗作だと考える人もいます。この混乱を冷静かつ詳細に解き明かしていきましょう。
Windows のコア パーキングとは何でしょうか?

コアパーキングは、Windowsに組み込まれているプロセッサの電源管理機能です(少なくともWindows 7以降に搭載されています)。この機能を使うと、必要のないCPUコアを論理的に「オフ」にすることができます。Windowsがコアを「パーキング」しても、物理的に電源が切れるわけではありませんが、プロセススケジューラがそのコアを使用できないようにします。
簡単に言うと、パークカーネルとは、オペレーティングシステムが一時的に使用しないと決定したカーネルのことです。この状態の間、Windowsスケジューラは実行スレッドをまだアクティブなカーネルに割り当て、それらのカーネルにより多くの処理を行わせる一方で、他のカーネルは可能な限りアイドル状態を維持します。
ワークロードが増加すると、Windows はこれらのコアを「アンパーク」して再び稼働させ、ワークロードを分散させることができます。このパーキングとアンパークのプロセス全体は自動化されており、システム負荷やその他のパラメータを分析する内部アルゴリズムによって制御されます。
コアを単にパーキングするだけではエネルギーが節約されるわけではないことを理解することが重要です。パーキングによってスケジューラの動作が変更され、処理を少数のコアに集中させることで、パーキングされたコアがより長い時間非アクティブ状態を維持できるようになり、それによってエネルギーが節約されるのです。
同時に、これには欠点もあります。アクティブなままのコアはより多くの負荷を担うため、動作周波数が高くなり、消費電力が増加し、発熱量も増加する可能性があります。アクティブなコアと待機中のコア間のこの動的な関係の実際の効率は、プロセッサのアーキテクチャによって大きく異なります。
Windows がどのコアをパークし、どのコアをパークしないかを決定する方法。

コアパーキングの動作は、Windowsの内部アルゴリズムによって制御されます。このアルゴリズムは過去のCPU使用率を監視し、その情報に基づいて判断を下します。つまり、これから何が起こるかよりも、むしろ直近の過去の状況を重視しているのです。
このアルゴリズムには、しきい値、平均化ウィンドウ、タイマー、減衰係数、その他の微調整設定など、多くの内部パラメータがあります。これらの多くはWindowsレジストリに記録されており、特定のシステムキーを「ハッキング」すると、コントロールパネルの電源プランの詳細オプションとして表示されるものもあります。
これらのパラメータの中には、パークせずに保持すべきコアの最小数と最大数を定義する設定があり、通常は利用可能な論理コアの総数に対する割合として表されます。たとえば、標準構成では、同時にアクティブになるコアの最小数から最大数を示すために、10%から100%までの値が表示される場合があります。
コアのパーク/アンパークの方法とタイミングに関するポリシーもあります。例えば、すべてのコアを一度にパークするか、1つずつパークするか、推定負荷に応じて可変数にするか、あるいはパークされたコアはパークされるとすぐにサポートされる最小周波数に直接移行するか、といったことです。
Windows 7の際立った特徴の一つは、物理コアごとに少なくとも1つの仮想コアが確保されるようにデフォルト設定されている点です。つまり、Intelのハイパースレッディング(HT)や一部のAMD製CPUのCMT/SMTといった技術を搭載したプロセッサでは、Windowsは常に物理コアごとに少なくとも1つのアクティブな論理スレッドを維持するため、多くのコアが実際に停止状態になることは少なくなります。
この特定のポリシーを無効にすることで、AMD製CPU(旧型のAthlonから最新のRyzenまで)を使用している一部のユーザーは、システムがより多くのコアをアイドルモードにすることができ、おそらく1つのコアだけが完全にアクティブになり、他のコアは完全に「スリープ状態」になることを確認しています。これが、システムを微調整したい場合に、AMDユーザーにこの設定部分を調整することを推奨する理由の1つです。
Windows Server 2012 と Intel プロセッサにおけるコアパーキング動作
Microsoftは、 Windows Server 2012以降、コアパーキングのデフォルト動作に大幅な変更を加えたことを明らかにしました。このバージョンでは、オペレーティングシステムがインストールされているプロセッサの種類を検出し、その情報に基づいてコアパーキング機能を有効にするか無効にするかを自動的に判断します。
この変更の目的は明確です。ユーザーの介入を一切必要とせずに、CPUの全体的なパフォーマンスとエネルギー効率を最大化することです。特定のプロセッサ、特に多くの世代のIntel製CPUでは、Windows Server 2012はデフォルトでコアパーキングを無効にしています。これは、一般的なサーバー環境において、消費電力とパフォーマンスの最適なバランスを実現するためです。
マイクロソフト自身も、この自動的な動作は各アーキテクチャに合わせて最適化されており、システムは特定のプロセッサに応じてコアパーキングを有効にするか無効にするかを決定すると述べている。
非常に重要な点として、システムがデフォルトでコアパーキングを無効にしている場合、Microsoftはそれを再度有効にするための組み込みのシンプルで公式にサポートされている方法を提供していません。つまり、Windowsがハードウェア上でコアパーキングを無効にすると判断した場合、それを強制的に有効にするのは容易ではありません。
その理由は、この動作を手動で変更するとCPUのパフォーマンスが低下する可能性があるためです。パフォーマンス低下のリスクが実際に存在するため、Microsoftは、システムのデフォルト構成に反する場合、OEMやユーザーがWindows Server 2012でこの設定を変更することを推奨もサポートもしていないと明言しています。
実際には、これはサーバー環境における多くのIntelプロセッサにおいて、Windows Server 2012がデフォルトでコアパーキングを無効にし、他の電力管理技術やプロセススケジューラの独自のロジックに大きく依存して、許容可能なエネルギー効率で良好なパフォーマンスを維持することを意味します。
コアパーキング、プロセスプランナー、そして実際のユーザーエクスペリエンス
コアパーキングを有効にした状態でのWindowsの動作を分析すると、プロセススケジューラが重要な役割を果たします。このコンポーネントは、各スレッドがどのコアで実行されるか、そしてワークロードが利用可能なコア間でどのように分散されるかを決定します。
Windowsでは、スケジューラは、特に強い理由がなくても、利用可能なすべてのアンパークコア間でスレッドを移動させる傾向があります。これは、候補となるコアが空いている限り、実行を継続します。このため、実際には次のような影響が生じます。例えば、シングルスレッド(1T)プログラムは、アクティブなコアがアンパークされている場合、1つのコアに固定されるのではなく、2つ以上のアクティブなコアで交互に実行される可能性があります。
コアパーキングの微調整を試みたユーザーの中には、負荷が軽い場合に1つのコアだけがアンパーク状態になるように非常に積極的な設定を行った場合でも、2つ目のコアが「アンパーク」され、負荷の一部が実際には必要なく一方のコアから他方のコアに移動するスパイクが時折発生することを観察した人もいる。
全体的な印象としては、駐車/出庫アルゴリズムは、プランナーと組み合わせると、実際のイベントに常に遅れをとる傾向がある。過去の使用状況に基づいており、これから到着する負荷に基づいていないため、常に「後手に回っている」状態であり、反応が遅れ、しばしば過剰反応を起こし、不安定な動作につながる。
さらに、アルゴリズムに入力される内部パラメータの中には、特定のシナリオに対して完全に調整されていないものがあり、真に正確で予測可能な結果を得ることが非常に困難になっています。そのため、多くの愛好家は、マイクロソフトの実装は少なくとも改善の余地があると考えています。
他のシステムと比較して、Linuxはこうした状況をより一貫性があり効率的に処理するとよく言われます。Linuxでは、スケジューラなどのサブシステムが十分に機能していない場合、コミュニティが改善案や代替案を提案し、それらは徹底的にテストされ、真にメリットをもたらすと判断された場合に統合されます。これにより、深刻なパフォーマンス低下のリスクが軽減され、変更は概してほとんどのユーザーにとって改善につながります。
しかし、Windowsのエコシステムでは、互換性のために古い慣習を維持する傾向が強い。例えば、Microsoftがワークロードをすべての利用可能なコアに分散させる慣習を維持しているのは、一部のOEMシステムが熱管理のためにこのパターンに依存している可能性があるためだと考えられている。これはほとんどの構成でパフォーマンスに悪影響を与えるが、特定の商用システムで何らかの不具合が発生するリスクは、全体的なメリットを上回る。
コアパーキングがパフォーマンス、ゲーム、ベンチマークに与える影響
よくある質問の一つに、コアパーキングを無効にするとゲームのFPSと安定性が向上するかどうかというものがあります。簡潔に答えると、ゲームの種類、ハードウェア、システム構成によって異なります。万能な解決策はありません。
合成ベンチマークの差が非常に小さい事例も報告されており、3DMark06などのテストでは1~2%程度、しかも特定の構成でのみ見られる場合が多い。最新のベンチマークバージョンやマルチコア処理に最適化されたゲームなど、現代の環境では、こうした差は通常さらに小さく、あるいは全く存在しない。
興味深いことに、今日でも、特に完成度の低い移植版ゲームの中には、ハイパースレッディング(HT)などの技術を無効にすることで最低フレームレートが向上するものがある。理論的には、HTはパフォーマンスを悪化させるはずはなく、せいぜい中立的な影響を与えるはずだ。しかし、HTを搭載した初期のPentium 4のような古いプロセッサでも、はるかに新しいハードウェアでも、HTを有効にすると一部のゲームのパフォーマンスが低下する状況が観察されている。
コアパーキングでも同様の現象が発生します。特定のゲームやチューニングの不十分なエンジンでは、ハイパースレッディング、コアパーキング、スケジューラの組み合わせが最適とは言えない結果を生み出すことがあります。これは、例えば、マイクロスタッタリングの増加やCPU負荷の異常な変動につながり、最低FPSに影響を与えます。
また、一部の古いベンチマークは、多数のコアやマルチGPU構成では性能が十分に発揮されず、システムに利用可能なリソースが増えた場合でも、むしろパフォーマンスが低下することがあるという指摘もあります。これは一見矛盾しているように見えますが、最新のCPUの性能を最大限に引き出すには、ソフトウェアの設計がいかに重要であるかを示しています。
こうした点を踏まえると、実践的なアドバイスとしては、実際に試してみるのが一番です。お使いのシステム、CPU、そして普段プレイしているゲームによっては、コアパーキングを無効にしてもほとんど違いがない場合もあれば、FPSの安定性がわずかに向上する場合もあります。しかし、劇的な変化を期待してはいけません。通常、違いは微妙で、状況によって大きく左右されるからです。
レジストリ、電源プラン、ツールを使用してコアパーキングを変更する
Windowsでは、公式には高度な電源プランオプションを通じてコアパーキングをある程度制御できます。しかし、これらのオプションの多くはデフォルトでは表示されず、表示させたり特定の動作を強制したりするには、Windowsレジストリを編集する必要があります。
これらのオプションを調整することで、常にアクティブ状態を維持するコア数、パーク可能なコアの最大割合、および負荷の変化に対するシステムの反応を定義できます。場合によっては、BIOSを安全にアップデートすることも推奨されます。これらのパラメータにより、上級ユーザーはコアパーク動作を大幅にカスタマイズできます。
手動で行う方法に加えて、ParkControlのような専用ユーティリティを使えば、このプロセス全体がはるかに簡単かつ手軽に行えます。ParkControlは、コンピュータを再起動したりレジストリを操作したりすることなく、CPUコアのパーキング機能を有効または無効にするために設計されたプログラムです。
こうしたツールを使えば、コアパーキングやCPU周波数に関連する値をリアルタイムで変更できるため、さまざまな組み合わせを比較的簡単にテストし、それらがシステム全体のパフォーマンスにどのような影響を与えるかを確認できます。
大きな利点は、レジストリ内の難解なキーや無数のGUIDと格闘する代わりに、明確なインターフェースを使用して、各電源プランでコアパーキングを有効または無効にしたり、アクティブなコアの最小/最大割合を調整したり、さまざまなプロファイル(高性能、バランス、省電力など)を試したりできることです。
しかし、これらのパラメータの機能を十分に理解せずに調整すると、消費電力の増加、温度の上昇、ファンの騒音増加、あるいは特定の負荷条件下でのパフォーマンス低下といった副作用が生じる可能性があることを覚えておくことが重要です。これは魔法ではなく、CPUとオペレーティングシステムの動作を微調整するもう一つの方法にすぎません。
さまざまなタイプのユーザーに対する実用的な考慮事項
Intel Core i9-13900(非K)などのプロセッサや、その他の新世代プロセッサを搭載した最新のPCをお持ちの場合、ゲームの安定性を向上させたり、FPSのマイクロスタッタリングを軽減するために、コアパーキングを無効にすることが理にかなっているのかどうか疑問に思うのは当然です。
一般的なデスクトップ作業、ブラウジング、オフィスアプリケーションの使用、あるいは軽めのコンテンツ作成などであれば、コアパーキングはデフォルト設定のままにしておくのが通常は最適です。最新のWindowsアルゴリズムは、特にリソースに余裕のある高性能CPUにおいて、消費電力、温度、システム応答性のバランスを適切に調整します。
高いパフォーマンスを求めるゲーマー、特にFPSの安定性を最大限に高め、レイテンシーを最小限に抑えたいゲーマーにとって、ゲーミングPCのメンテナンスを見直すことは有益であり、代替構成を試してみる方が理にかなっています。このような場合、ゲーム中に使用する電源プランでコアパーキングを部分的または完全に無効にすることは、一部のタイトルでは効果的ですが、常に効果があるとは限りません。
継続的に稼働しているサーバーやワークステーションでは、より慎重な対応が必要です。Windows Server 2012以降を使用しており、システムでプロセッサのコアパーキングが無効になっている場合は、Microsoftの推奨事項に従い、変更を強制しないのが通常は最も賢明な方法です。小さな調整でも、不適切な方法で実施すると、継続的な負荷がかかった状態でパフォーマンスが低下し、望ましくない結果を招く可能性があります。
重大な事態が発生した場合、公式サポートが必要な場合は、コアパーキングなどの機密性の高いパラメータを自分で変更する前に、 TSSなどの特定のツールを使用してデプロイメントの問題に関する診断情報を収集することをマイクロソフトは推奨しています。
コアパーキングは便利だがデリケートなツールと言えるでしょう。適切に設定すれば効率や安定性を向上させることができますが、システムアルゴリズムがハードウェアや特定のアプリケーションとうまく連携しない場合は、かえって障害となる可能性もあります。
コアパーキングは、現代のマルチコアプロセッサの管理の複雑さを如実に示すWindows機能の一つです。パフォーマンス、消費電力、互換性の間で常にバランスを取る必要があるのです。コアパーキングの機能、プロセススケジューラとの連携方法、そしてパラメータを調整することで実際にどれだけ改善できるかを理解することで、ゲームのフレームレートを少しでも向上させたり、サーバーの安定性を維持したり、あるいは単にオペレーティングシステムに任せて気にしなくて済むようにしたりと、より的確な判断を下すことができます。