第3章 中核となるインフラストラクチャとメカニズム

重要

本章で解説している cpupower コマンドを使用する場合は、kernel-tools パッケージがインストールされていることを確認してください。

3.1. CPU のアイドル状態

x86 アーキテクチャの CPU は、CPU の一部が停止したり、低パフォーマンス設定で稼働したりするさまざまな状態をサポートします。これらの状態は C 状態と呼ばれ、使用されていない CPU を部分的に停止させることで節電を可能にします。C 状態は番号付けされ、C0 から始まります。数字が大きいと、CPU の機能が低下し、省電力量が向上します。特定の番号が付いた C 状態は、プロセッサー間でほとんど同じですが、状態の特定の機能セットの詳細はプロセッサーファミリー間で異なる場合があります。C 状態 0 – 3 は以下のように定義されます。
C0
稼働中または実行中の状態。この状態では、CPU は動作中であり、アイドル状態ではありません。
C1, 停止
プロセッサーが命令を実行していない状態ですが、一般的に電力が低い状態ではありません。CPU は実質的に遅延なく処理を継続できます。C 状態を提供するプロセッサーはすべて、この状態をサポートする必要があります。Pentium 4 プロセッサーは、実際には電力消費が低い状態の C1E と呼ばれる拡張 C1 状態をサポートします。
C2, クロック停止
このプロセッサーのクロックが停止している状態ですが、そのレジスターとキャッシュは完全な状態で保持されるため、クロックを再開させると直ちに処理を再開することができます。この状態はオプションです。
C3, スリープ
プロセッサーが実際にスリープ状態になり、キャッシュを更新する必要がない状態です。この状態からウェイクアップするには、C2 状態からのウェイクアップに比べ、かなり長い時間がかかります。この状態もオプションです。
利用可能なアイドル状態、および CPUidle ドライバーのその他の統計値を表示するには、次のコマンドを実行します。
~]$ cpupower idle-info
Nehalem マイクロアーキテクチャーに基づく最近の Intel CPU には、新しい C 状態である C6 が備わっています。これにより、CPU の電圧供給をゼロに削減できますが、通常は 80%〜90% 電力消費量が削減されます。Red Hat Enterprise Linux 7 のカーネルには、この新しい C 状態に対する最適化が含まれています。