章 3. 核心架構與機制

重要

要使用本章所描述的 cpupower 指令,請確定您已經安裝 cpupowerutils 套件。

3.1. CPU 的閒置狀態

x86 架構的 CPU 支援多種狀態,讓 CPU 可以被停用或以低效能方式運行。這些狀態稱之為 C-state,能讓系統停用非使用中的 CPU,藉以節省電源。C-state 從 C0 開始向上累進,數字越高表示 CPU 的功能越少,也越省電。雖然 C-state 的各種數字在各種處理器上都類似,但特定 C-state 在特定處理器(或同類型處理器)上的意義,會與另一種處理器的意義不同;也就是說,一種處理器的 C3 狀態與另一種處理器的 C3 不同。C-State 0-3 的定義如下:
C0
運作中或執行中。在此狀態下,CPU 處於工作狀態,完全不閒置。
C1, Halt
這狀態表示處理器並不處於執行狀態,但通常也不處於低耗電狀態。CPU 能在完全不延遲的情形下,繼續進行處理。所有提供 C-State 的處理器都必須支援此狀態。Pentium 4 處理器支援更精進的 C1 狀態,稱之為 C1E,是處於低耗電狀態的。
C2, Stop-Clock
這狀態表示此處理器的時脈是停止的,但它仍然為其註冊碼與快取保持完整的狀態,因此在時脈重新開始時,就可以立即開始處理、運算。這是選用的狀態。
C3, Sleep
這表示處理器的確進入睡眠狀態,而且不會保留最新的快取版本。有鑑於此,從這狀態喚醒處理器,會比 C2 狀態要來得長。同樣的,這是選用的狀態。
要檢視 CPUidle 驅動程式的可用閒置狀態與其它統計資料,請執行以下指令:
cpupower idle-info
擁有「Nehalem」微架構功能的 Intel CPU 有新的 C-state:C6,可以將 CPU 所消耗的瓦數降到 0;但一般來說,實際降低的瓦數大約介於 80% 到 90% 之間。Red Hat Enterprise Linux 6 的 kernel 對這新的 C-state 已經做了最佳化。