ADVERTISEMENT
有時候我們會被 BIOS 或是作業系統中的電源管理搞得霧煞煞,S0、C1 究竟代表著什麼,如果不了解其意義以及身後所代表的內涵,很難在 BIOS 中調整出適合的設定。就算你不是進階或是超頻玩家,看完此文你也能夠對電源管理有更深的認識。
各種電源狀態縮寫的意義
P-States:英文為Performance States的縮寫,中文為效能狀態。
T-States:英文為Throttling States的縮寫。
S-States:英文為Sleeping States的縮寫,中文為睡眠狀態。
G-States:英文為Global States的縮寫,中文為全域狀態。
C-States:英文為CPU States的縮寫,中文為處理器狀態。
正常運作靠 P-States
P-States 指的就是 CPU 處理器依據目前運算量負荷輕重,調整運作頻率的高低,譬如 1 顆 3.0GHz 的處理器在執行 Crysis 3 時以全速運作、上網時以 1.8GHz 運作、觀賞影片時以 800MHz 運作。在 Intel 方面稱為 EIST(Enhanced Intel SpeedStep Technology),AMD 方面則是 CnQ(Cool’n’Quiet)和 Power Now!。通常 P0 指的就是處理器以最高頻率、最高運算量的狀態運作,接下來 P1、P2、P3……就依照運作效能的多寡、省電性由少至多依序排下去。
除了 P-States 之外還有個 T-States,不過 T-States 通常不會使用,唯有當處理器過熱或是超過我們所設定的溫度時才介入。T-States 和 P-States 都是為了降低發熱量而被使用,但是運作方式有別。例如 1 顆 3.0GHz 的處理器被 P-States 要求運作在 50%,就是真的運作在 1.5GHz 之上,而 T-States 則是將 3.0GHz 切成一半,一半時脈不運作,一半時脈正常運作(調整處理器實際運作的占比)。
▲P-States和T-States的運作方式不同。
題外話,Intel 的 Turbo Boost 技術就是當作業系統要求處理器運作在 P0 狀態時,就會收集有關目前處理器耗電量、啟動核心數量、核心電源狀態、處理器溫度等資訊,來決定P0的運作時脈為多少。
▲Intel Turbo Boost簡易原理說明。
S-States 與待機 / 休眠 / 睡眠關係式
S-States 則是指電腦系統狀態,S0~S5 共有 6 種,S0 指的就是系統正常開機運作的狀態,包含所有的 P 和 C 狀態。S1 時透過時脈產生器將處理器關閉、系統記憶體內容被刷新(持續供電),S1 狀態也被稱為 power on suspend;S2 則是處理器電源完全關閉、系統記憶體內容刷新,系統整體耗電量比起 S1 更低一些。S3 一般也稱為 suspend to RAM 或是待命(Windows XP)、睡眠(Windows Vista 之後),除了系統記憶體還有少量供電以外,其餘大部分系統內的硬體電源均被關閉;S4 則是所謂的 suspend to disk ,將系統記憶體內部的資料寫入硬碟之後,將電腦系統整體關閉,耗電量和關機一樣;S5 就是關機狀態。
例外有些人可能還有聽過 G-States 全域狀態,不過 G-States 僅是個抽象描寫系統目前的電源狀態(ACPI),要如何實作需額外定義。一般來說 G0 為系統開機狀態、G1 為睡眠狀態、G2 為軟關機、G3 為硬體關機。
C-States 好多種
比較難理解的就是處理器待機狀態 C-States,因為這裡的電源管理比較複雜,會根據狀態的不同分別調降運作時脈或電壓,或者乾脆完全關閉。同時 C-States 也不斷的加入新成員,像是 C8~C10 就是僅在 Haswell ULT 系列才導入的 C-State。
C0:包含在 S0 之下,旗下包含所有 P-States,也就是處理器內部電源全開的狀態,所有的 x86 處理器都支援這個狀態。
C1:藉由軟體關閉處理器的時脈(stop internal clock)(送出 HLT 指令),但是匯流排介面和 APIC(Advanced Programmable Interrupt Controller)均運作在全速狀態,由 Intel 486DX4 和之後的處理器開始支援,離開時間 10ns。
C1E:藉由軟體關閉處理器的時脈,以及降低處理器的輸入電壓,其餘的匯流排界面和 APIC 運作在全速狀態,LGA775 腳位之後的處理器都支援,離開時間 10ns;如果在 BIOS 中開啟 C1E 支援,則處理器就會進入 C1E 而非進入 C1 狀態。須注意 AMD 也使用 C1E 這個名詞在處理器上,不過卻是另外一回事,在 AMD 65 奈米之後的處理器,所有處理器核心進入 C1 狀態會讓處理器直接進入 C3 狀態。
C2:藉由硬體關閉處理器的時脈(設定 STPCLK 處理器接腳),匯流排介面和 APIC 均運作在全速狀態,同樣是 Intel 486DX4 之後全部支援,離開時間100ns。
C2E:藉由硬體關閉處理器的時脈,降低處理器的輸入電壓,其餘的匯流排界面和 APIC 運作在全速狀態,Intel Core 2 Duo 之後皆支援,但僅限 Intel 的處理器;同樣的,若在 BIOS 中將 C2E 支援開啟時,就會以 C2E 替代 C2 狀態,離開時間 100ns。
C3:關閉處理器內部所有的時脈(包含匯流排界面和 APIC),將 L1 快取中的內容清空,Intel Pentium II 和 AMD Athlon 之後皆支援(除 Core 2 Duo E4000 和 E6000 系列不支援),此模式也稱為 sleep 模式,離開時間 50ms。C3 下還有個 deep sleep 模式,由 Pentium II 以上(Core 2 Duo E4000 和 E6000系列不支援)、Turion 64 以上所支援,除處理器內部時脈外,也可關閉外部時脈。
Intel 處理器可透過設定 SLP 或是 DSSLP 接腳進入 C3(在這之前處理器必須先進入C2),AMD 則是透過讀取 APCI 的暫存器和 STPCLK 的組合而定,如果讀取 PLVL_2 暫存器,則設定 STPCLK 之後會進入 C2;若讀取 PLVL_3 暫存器,則設定 STPCLK 之後會進入 C3。AMD 行動版 Turion 64 處理器還支援更進階的AltVID功能,可於進入 C3 的同時降低處理器電壓。
C4:稱做 deeper sleep,不像 C1~C3 為關閉處理器的時脈,C4 更進一步降低處理器的電壓供應,並把部分的 L2 快取內容清空以便進一步降低能源消耗;C4 從 Intel Pentium M(不包含 Core 2 Duo E4000 和 E6000系列)和 AMD Turion 64 之後開始支援,離開時間至少需 200ms。
C4E:將 C4 時的處理器 L2 快取完全清空並關閉,可進一步降低供應給處理器的電壓,此模式僅在部分處理器上出現(Core Solo、Duo、部分 45 奈米行動版 Core 2 Duo、部分 Atom)。
C6:C6 狀態(deep power down)可以說是完全關閉了處理器,包含 L1 和 L2 快取。在此狀態下,處理器內部的狀態都會被寫入到 1 個具有獨立電力來源的靜態記憶體中(後來的處理器可使用 L3 快取做為目標寫入),處理器的電壓就能夠降到非常低,甚至是 0V 完全關閉,從 Intel 45 奈米行動版 Core 2 Duo 開始支援。C6 時的離開時間比較長,約是 C4 的 1.5 倍。
Intel 在 Nehalem 中導入了 1 個電源控制模組,處理器各個部分可使用不同的電壓,因此可讓某個閒置的處理核心進入 C6。
▲Intel於Penryn核心開始導入C6(桌上型版本沒有)。
C7:C7 在 C6 的基礎上增加了部分或者全部清空 L3 快取,被整合進去的北橋,現稱 System Agent 以最小的電壓保持啟動,外部電壓調整可從 1.8V 降至 1.6V,從 Sandy Bridge 開始導入。
C8:最後 1 層 L3 快取被關閉,System Agent 以最小的電壓保持啟動,外部電壓調整可從 1.8V 降至 1.2V。
C9:System Agent 電壓降至 0V,IO 關閉,外部電壓調整可降至0V。
C10:外部電壓調整可降至 0V 或完全關閉(以上C8~C10目前僅在Haswell ULT版出現)。
▲Haswell ULT多了C8~C10狀態。
> 看完此文你也能夠 "堆" 電源管理有更深的認識。
已更正,謝謝你的指正
不過ACPI這塊除了日本、國外有在討論,台灣網路倒是很少人在討論。
看不懂在寫什麼鬼!!!
繼續支持(≧▽≦)
希望品質能越變越好
當然也希望"讀者的水準"也能更上好嗎....