「Intel P ステート」とは何か、そしてそれが何をするのかを徹底的に調べました。そして、それがパフォーマンスと電力消費に関係していることを知りました。これをカーネルに組み込むと、Intel CPU のデフォルトのスケーリング ドライバーになることを知りました。
しかし、私が知りたいのは、それが何をするのかということです。
消費電力を削減するために CPU の機能と電力を削減しますか、それとも CPU の状態を管理してバランスを取りますか。つまり、CPU に重い負荷がかかっていて何かをコンパイルしている場合は、それを補うために CPU 周波数を上げ、アイドル状態のときは周波数を下げますか?
答え1
x86プロセッサのPステートは、電圧スケーリングプロセッサが高電圧で動作すると、動作速度は速くなりますが、消費エネルギーも増え、発熱も大きくなります。P 状態の番号は標準化されており、最速から最遅まで 0 から 15 です。
P 状態を切り替えるタイミングはカーネルが決定します。カーネルは、負荷が高いこと (CPU がアイドル状態にならないこと) を検出すると、番号の小さい (高速で、ホットな) 状態に切り替え、CPU に空き時間があることを検出すると、番号の大きい (低速で、クール) 状態に戻ります。
P 状態ドライバーは、P 状態を切り替える決定を行うカーネルの一部です。