轉自:http://blog.csdn.net/fivedoumi/article/details/11617545
近幾年,個人計算機的運行速度有了質的飛躍,但是功耗卻沒能與時俱進,着實讓人覺得遺憾不少。例如這樣一台為游戲玩家配備的電腦:四核心處理器、兩塊nVidia GeFore8800 Ultra、4條
DDR2內存、幾塊
硬盤,你估計功耗會是多少?就算什么也不干,功耗也下不了200W!不管是為了省銀子,還是為了環保,降低能耗已然成為我們必須考慮的問題啦。
1992年1月,微軟(
Microsoft)與英特爾(
Intel)共同制定了電腦電源管理規格:高級電源管理(Advanced Power Management,APM)。1996年12月,APM的繼任者Advanced Configuration and Power Interface(ACPI)在微軟、康柏、
英特爾、東芝、Phoenix的努力下誕生,這也是行業開放標准的電源管理界面。那么APM與ACPI有什么不同?
·執行成本低,但效果不明顯
·應用程序和驅動直接控制了APM驅動
·各個配件的功耗由相應的驅動來管理
·CPU等硬件的功耗由APM BIOS來管理
·電源管理狀態比較簡單,由APM來管理
·應用程序和驅動直接控制了APM驅動
·各個配件的功耗由相應的驅動來管理
·CPU等硬件的功耗由APM BIOS來管理
·電源管理狀態比較簡單,由APM來管理
·執行成本偏高,但比較有效
·應用程序不負責功耗管理
·配件通過ACPI界面來管理功耗
·ACPI更抽象,因此要把操作系統和硬件分開管理
·電源管理狀態更復雜,因此由操作系統來處理。
·應用程序不負責功耗管理
·配件通過ACPI界面來管理功耗
·ACPI更抽象,因此要把操作系統和硬件分開管理
·電源管理狀態更復雜,因此由操作系統來處理。
|
ACPI電源管理狀態
|
今天,我們就好好說說已經被廣泛使用的ACPI電源管理標准。
以下是ACPI規格的具體電源管理狀態,稍后我們詳細介紹一下各個狀態:
全局狀態(Global system states)
·用戶可見
·分4個狀態:G0, G1, G2, G3
·用戶可見
·分4個狀態:G0, G1, G2, G3
睡眠狀態(Sleeping states)
·全局狀態G1(不含S5)的睡眠狀態
·分5個狀態:S1,S2,S3,S4,S5
·全局狀態G1(不含S5)的睡眠狀態
·分5個狀態:S1,S2,S3,S4,S5
設備電源狀態(Device Power states)
·用戶不可見
·只要有一個配置顯示為“on”(啟動)狀態,另一個則顯示為“off”(關閉)狀態
·分4個狀態:D0,D1,D2,D3
·用戶不可見
·只要有一個配置顯示為“on”(啟動)狀態,另一個則顯示為“off”(關閉)狀態
·分4個狀態:D0,D1,D2,D3
CPU電源狀態(CPU Power states)
·也叫做CPU睡眠狀態
·在全局狀態G0中
·分5個狀態:C0,C1,C2,C3,C4
·將來會有C6狀態(Penryn)
·也叫做CPU睡眠狀態
·在全局狀態G0中
·分5個狀態:C0,C1,C2,C3,C4
·將來會有C6狀態(Penryn)
CPU/設備性能狀態(CPU / Device Performance states)
·電壓和時鍾頻率由工作量決定
·P-state狀態總量符合CUP/設備規格
·例如,CPU倍頻越高,P-states就越高
·電壓和時鍾頻率由工作量決定
·P-state狀態總量符合CUP/設備規格
·例如,CPU倍頻越高,P-states就越高
CPU溫度監控(CPU Thermal Monitor)
·當CPU溫度超過極限時,監控系統會降低CPU的性能
·在TM1中,功過改變周期來降低CPU性能
·在TM2種,通過改變時鍾頻率和核心電壓(P-state)來降低CPU性能
·當CPU溫度超過極限時,監控系統會降低CPU的性能
·在TM1中,功過改變周期來降低CPU性能
·在TM2種,通過改變時鍾頻率和核心電壓(P-state)來降低CPU性能
|
全局狀態(G-States)
|
G0工作狀態
·在這一狀態下可運行應用程序
·整個計算機系統都可以運行,但外設、CPU都可動態改變各自的功耗。例如,在聽音樂的時候就會把顯示器關閉
· 筆記本電腦在運行最大化節電模式時,CPU會在某一時間內
·是所有G狀態下功耗最高的
·例如:如果只是上網或者聊天,CPU將以最低的時鍾頻率運行,同時關閉CD-ROM 光驅等,以達到節電的目的。
·在這一狀態下可運行應用程序
·整個計算機系統都可以運行,但外設、CPU都可動態改變各自的功耗。例如,在聽音樂的時候就會把顯示器關閉
· 筆記本電腦在運行最大化節電模式時,CPU會在某一時間內
·是所有G狀態下功耗最高的
·例如:如果只是上網或者聊天,CPU將以最低的時鍾頻率運行,同時關閉CD-ROM 光驅等,以達到節電的目的。
G1睡眠狀態
·在G1狀態下無法運行應用程序。計算機呈“關閉”狀態。
·不用重新啟動,操作系統會切換到正常狀態(G0)。
·計算機的大部分內容都會保存在RAM內存或硬盤中。
·喚醒延遲(從G1切換到G0)有很多種,這取決於G1狀態下的S-State選擇。
·功耗很小,可能降低至幾瓦(由S-State決定)。
·例如:在Windows XP系統中會切換到“待機”或“休眠”模式。
·在G1狀態下無法運行應用程序。計算機呈“關閉”狀態。
·不用重新啟動,操作系統會切換到正常狀態(G0)。
·計算機的大部分內容都會保存在RAM內存或硬盤中。
·喚醒延遲(從G1切換到G0)有很多種,這取決於G1狀態下的S-State選擇。
·功耗很小,可能降低至幾瓦(由S-State決定)。
·例如:在Windows XP系統中會切換到“待機”或“休眠”模式。
G2軟關機狀態
·不可運行應用程序和操作系統(保留在G2狀態中)。
·除了主要的電源供電單元,基本上會關閉整個系統。
·功耗約等於零
·需重啟系統,喚醒延遲時間比較長
·例如,在Windows XP系統中選擇“關閉計算機”,但總電源並沒有關閉。
·不可運行應用程序和操作系統(保留在G2狀態中)。
·除了主要的電源供電單元,基本上會關閉整個系統。
·功耗約等於零
·需重啟系統,喚醒延遲時間比較長
·例如,在Windows XP系統中選擇“關閉計算機”,但總電源並沒有關閉。
G3機械性關機
·通過切斷總電源來徹底關閉計算機
·使用筆記本電源,只有實時時鍾頻率
·不考慮電池,功耗為零
·切換到工作狀態的時間比較長
·通過切斷總電源來徹底關閉計算機
·使用筆記本電源,只有實時時鍾頻率
·不考慮電池,功耗為零
·切換到工作狀態的時間比較長
全局狀態概要
|
全局狀態
|
運行程序
|
喚醒延遲
|
功耗
|
重啟系統
|
|
G0
|
可以
|
不可以
|
中到大
|
不需
|
|
G1
|
不可以
|
短至中
|
小
|
不需
|
|
G2
|
不可以
|
長時間
|
接近零
|
需要
|
|
G3
|
不可以
|
最長時間
|
僅有電池
|
需要
|
|
睡眠狀態(S-States)
|
1. CPU不執行指令(徹底睡過去了,嘿嘿)
2. 不執行應用程序(睡着了嘛)
3. 部分配件處於睡眠狀態,方便喚醒
4. 系統被喚醒后,計算機會繼續執行
2. 不執行應用程序(睡着了嘛)
3. 部分配件處於睡眠狀態,方便喚醒
4. 系統被喚醒后,計算機會繼續執行
S1狀態
·CPU輸入頻率被終止,緩存無效
·系統內存進入“Self-refreshing(自我更新)”模式
·除實時頻率外,所有系統頻率被關閉
·功耗比G0工作狀態下更低
·一般需2秒切換到G0工作狀態
·例如:如果不支持S3狀態,就在Windows XP系統下進入“待機”模式
·CPU輸入頻率被終止,緩存無效
·系統內存進入“Self-refreshing(自我更新)”模式
·除實時頻率外,所有系統頻率被關閉
·功耗比G0工作狀態下更低
·一般需2秒切換到G0工作狀態
·例如:如果不支持S3狀態,就在Windows XP系統下進入“待機”模式
S2狀態
·與S1狀態相似——除了CPU功耗狀態
·在S2中,CPU和緩存被關閉
·S2狀態中的喚醒延遲比S1長,但更省電
·與S1狀態相似——除了CPU功耗狀態
·在S2中,CPU和緩存被關閉
·S2狀態中的喚醒延遲比S1長,但更省電
S3狀態
·除了RAM,CPU、緩存、芯片組、外設均被關閉
·需要調用內存的設備仍然運行
·RAM轉入低功耗、自我更新模式
·只有RAM與板載配置的功耗
·喚醒延遲為5-6秒
·例如:如果硬件支持S3狀態,在Windows XP系統中進入“待機”模式
·除了RAM,CPU、緩存、芯片組、外設均被關閉
·需要調用內存的設備仍然運行
·RAM轉入低功耗、自我更新模式
·只有RAM與板載配置的功耗
·喚醒延遲為5-6秒
·例如:如果硬件支持S3狀態,在Windows XP系統中進入“待機”模式
S4狀態
·包括RAM在內的所有部件均被關閉
·只保留平台設置,其他部分設置被保存在硬盤的特殊位置中
·成功切換至S4平台后,系統會關閉
·因為幾乎所有的程序和配置都已經停止運行,因此功耗<3W
·喚醒計算機時需要再次進入“BIOS Boot Sequence”
·不需重啟系統,計算機會繼續執行
·例如:在Windows XP系統下的“睡眠”模式
·包括RAM在內的所有部件均被關閉
·只保留平台設置,其他部分設置被保存在硬盤的特殊位置中
·成功切換至S4平台后,系統會關閉
·因為幾乎所有的程序和配置都已經停止運行,因此功耗<3W
·喚醒計算機時需要再次進入“BIOS Boot Sequence”
·不需重啟系統,計算機會繼續執行
·例如:在Windows XP系統下的“睡眠”模式
睡眠狀態概要
|
睡眠狀態
|
喚醒延遲
|
功耗
|
BIOS重啟
|
系統重啟
|
CPU
|
緩存
|
芯片組
|
RAM
|
|
S0(GO)
|
無
|
大
|
不需
|
不需
|
開啟
|
開啟
|
開啟
|
開啟
|
|
S1(G1)
|
2-3秒
|
中
|
不需
|
不需
|
無頻率
|
無效
|
無頻率
|
自動更新
|
|
S2(G1)
|
3-4秒
|
中至低
|
不需
|
不需
|
關閉
|
關閉
|
無頻率
|
自動更新
|
|
S3(G1)
|
5-6秒
|
低
|
不需
|
不需
|
關閉
|
關閉
|
關閉
|
低功耗
|
|
S4(G1)
|
20-30秒
|
非常低
|
需要
|
需要
|
關閉
|
關閉
|
關閉
|
自動更新
|
|
S5(G2)
|
> 30秒
|
接近零
|
需要
|
需要
|
關閉
|
關閉
|
關閉
|
關閉
|
設備狀態(D-States)
它是出現在全局系統G0工作狀態。
D0狀態
·在此狀態下,計算機在全功耗和全功能下運行
·例如:可以使用DVD-ROM光驅
·在此狀態下,計算機在全功耗和全功能下運行
·例如:可以使用DVD-ROM光驅
D1狀態
·功耗比D0狀態下低
·例如:在不使用的情況下會自動關閉DVD-ROM光驅,但驅動仍在運行
·功耗比D0狀態下低
·例如:在不使用的情況下會自動關閉DVD-ROM光驅,但驅動仍在運行
D2狀態
·與D1相似,但電壓更低
·在此狀態下更節能,不過從D2狀態喚醒的時間更長
·與D1相似,但電壓更低
·在此狀態下更節能,不過從D2狀態喚醒的時間更長
nD3狀態
·此狀態下,所有設備均被關閉
·可最大限度節能
·喚醒時間是所有D狀態下最慢的
·此狀態下,所有設備均被關閉
·可最大限度節能
·喚醒時間是所有D狀態下最慢的
D狀態實例
例1:硬盤驅動功耗管理
|
設備狀態
|
功耗
|
喚醒延遲
|
驅動監控
|
驅動控制器
|
界面內容
|
|
D0
|
100%
|
0
|
開啟
|
功能性
|
保存
|
|
D1
|
80%
|
5秒
|
關閉
|
功能性
|
保存
|
|
D2
|
待定
|
待定
|
待定
|
待定
|
待定
|
|
D3
|
10%
|
6-7秒
|
關閉
|
非功能性
|
不保存
|
例2:
顯卡功耗管理
|
設備狀態
|
喚醒延遲
|
顯示器
|
DPMS
|
控制內容
|
內存內容
|
|
D0
|
0
|
開啟
|
開啟
|
保存
|
保存
|
|
D1
|
1秒
|
關閉
|
關閉
|
保存
|
保存
|
|
D2
|
5秒
|
關閉
|
開啟
|
丟失
|
丟失
|
|
D3
|
>6秒
|
關閉
|
關閉
|
丟失
|
丟失
|
備注:顯示器電源管理(DPMS,Display Power ManagementSignal)標准由頻電子標准協會(Video Electronics Standards Association, VESA)制定。
CPU電源狀態(C-States)
一般用戶很少注意到這個狀態,通常只會在使用CPU-Z來監控時鍾頻率和電壓時才會留意到它。移動處理器的C狀態比台式機的多。例如,Core 2 Duo處理器(Meron)會支持C0-C4狀態,然后桌面型Core 2 Duo處理(Conroe)僅支持C1-C0狀態。
C0狀態(激活)
·這是CPU最大工作狀態,在此狀態下可以接收指令和處理數據
·所有現代處理器必須支持這一功耗狀態
·這是CPU最大工作狀態,在此狀態下可以接收指令和處理數據
·所有現代處理器必須支持這一功耗狀態
C1狀態(掛起)
·可以通過執行匯編指令“HLT(掛起)”進入這一狀態
·喚醒時間超快!(快到只需10納秒!)
·可以節省70%的CPU功耗
·所有現代處理器都必須支持這一功耗狀態
·可以通過執行匯編指令“HLT(掛起)”進入這一狀態
·喚醒時間超快!(快到只需10納秒!)
·可以節省70%的CPU功耗
·所有現代處理器都必須支持這一功耗狀態
C2狀態(停止允許)
·處理器時鍾頻率和I/O緩沖被停止
·換言之,處理器執行引擎和I/0緩沖已經沒有時鍾頻率
·在C2狀態下也可以節約70%的CPU和平台能耗
·從C2切換到C0狀態需要100納秒以上
·處理器時鍾頻率和I/O緩沖被停止
·換言之,處理器執行引擎和I/0緩沖已經沒有時鍾頻率
·在C2狀態下也可以節約70%的CPU和平台能耗
·從C2切換到C0狀態需要100納秒以上
C3狀態(深度睡眠)
·總線頻率和PLL均被鎖定
·在多核心系統下,緩存無效
·在單核心系統下,內存被關閉,但緩存仍有效
·可以節省70%的CPU功耗,但平台功耗比C2狀態下大一些
·喚醒時間需要50微妙
·總線頻率和PLL均被鎖定
·在多核心系統下,緩存無效
·在單核心系統下,內存被關閉,但緩存仍有效
·可以節省70%的CPU功耗,但平台功耗比C2狀態下大一些
·喚醒時間需要50微妙
C5狀態
·二級緩存的數據被減為零
·喚醒時間超過200微妙
·二級緩存的數據被減為零
·喚醒時間超過200微妙
C6狀態
·這是Penryn處理器中新增的功耗管理模式
·二級緩存減至零后,CPU的核心電壓更低
·不保存CPU context
·功耗未知,應該接近零
·喚醒時間未知
·這是Penryn處理器中新增的功耗管理模式
·二級緩存減至零后,CPU的核心電壓更低
·不保存CPU context
·功耗未知,應該接近零
·喚醒時間未知
多核心處理器的C狀態(C-States)
在多狀態每一個核心都會有一個多重C狀態,但每一次都只能有一個C狀態。假設處理器C狀態是Cx,核心C狀態是CCx,那么決定處理器C狀態的公式是:
Cx =max (CCx1, CCx2, CCx3……, CCxn)
我們來看看下面的例子:
CPU電源狀態概要
|
電源狀態
|
執行
|
喚醒時間
|
CPU功耗
|
平台
|
核心電壓
|
緩存收縮
|
內容丟失
|
|
C0
|
是
|
0
|
大
|
正常
|
正常
|
否
|
否
|
|
C1
|
否
|
10ns
|
30%
|
正常
|
正常
|
否
|
否
|
|
C2
|
否
|
100ns
|
30%
|
無I/O緩沖
|
正常
|
否
|
否
|
|
C3
|
否
|
50000ns
|
30%
|
I/O,無監控
|
正常
|
否
|
否
|
|
C4
|
否
|
160000ns
|
2%
|
I/0,無監控
|
C4_VID
|
是
|
否
|
|
C5
|
否
|
200000ns
|
待定
|
待定
|
C4_VID
|
L2=0KB
|
否
|
|
C6
|
否
|
待定
|
待定
|
待定
|
C6_VID
|
L2=0KB
|
是
|
CPU/設備性能狀態(P-States)
當CPU和設備處於執行狀態時,P-States制定出電源管理狀態。C0代表CPU,D0代表設備:
P0:能耗最大,P-State最小化
P1,P2,P3……. :P1 > P2 > P3等等
Pn:能耗最小,P-State最大化
P1,P2,P3……. :P1 > P2 > P3等等
Pn:能耗最小,P-State最大化
P-State電源管理一般用於現代處理器和顯示核心,它可以控制有效功率。
例如, NVIDIA GeForce 7300等低端顯示核心只有一個P-State。NVIDIA
GeForce7900 GT等高端顯示核心則至少有兩個P-State:在P0狀態下運行3D游戲,其頻率和電壓都被最大化;在P1狀態下運行2D模式,頻率和電壓被最小化。
不過,處理器的P-State電源管理都很復雜。不同的CPU都有不同的P-State狀態:
多核心處理器的P-States
每一個核心都要有一個不同的P-State,這些都取決於處理器能耗控制單元的功率。
單核心
單核心P-State與處理器P-State一樣。
雙核心
我們用Core 2 Extreme X6800來舉例說明。在Core 1中運行SuperPI,在Core 2中只能運行WinAmp。Core 1可以在最高工作狀態(P0)下運行,而Core 2就要在最低工作狀態(P5)下運行。
因為Core 2 Extreme只有一個PLL(時鍾來源)和一個Vcore(電壓源),最后的主頻是2.93GHz,電壓源是1.2875V。而
AMDAthlon 64 X2 處理器也是只有一個PLL和一個電壓源,游戲運行時的效果與Core 2 Extreme X6800差不多。
四核心(Intel)
Kentsfield處理器是由兩個Conroe芯片組成,每一面都有一個芯片。以Core 2 ExtremeX6800為例,我們來看看倍頻和電壓:
從上表可以看出,Cores 1&2的頻率是2.67GHz,Cores 3&4的頻率是2.3GHz。所有的核心都有一個相同的電壓源(1.2875V)。
|
P-States
|
倍頻
|
主頻
|
電壓
|
加載
|
|
P0
|
10x
|
2.67GHz
|
1.2875V
|
71-80%
|
|
P1
|
9x
|
2.40GHz
|
1.2500V
|
51-70%
|
|
P2
|
8x
|
2.13GHz
|
1.2250V
|
31-50%
|
|
P3
|
7x
|
1.87GHz
|
1.2000V
|
11-30%
|
|
P4
|
6x
|
1.60GHz
|
1.1750V
|
0-10%
|
四核心(AMD)
AMD下一代四核心處理器Barcelona采用了更為先進的P-State管理技術,與目前的處理器相比,Barcelona有更多的優勢。Barcelona處理有三條電源供電電路——一條用於處理CPU核心(4個核心共享一個供電電路),一條為
北橋核心供電(含IMC和緩存),一條為輸入/輸出供電。
P-State狀態的其他的特點
超低頻率模式
只能在移動酷睿2處理器(Merom核心)中使用。在正常低頻率模式中,Intel支持的最小倍頻是6x。前端總線的頻率是200MHz,CPU最大頻率是1.2GHz。另外,新的PLL設計不太理想,因此Intel要把FSB頻率降低至100MHz。這就迫使CPU必須在600MHz下運行,且核心電壓要低於正常低頻率模式。因為芯片組不支持,所以桌面型Conroe核心處理器不能使用這一模式。
CPU溫度監控
溫度監控的主要目的是在CPU溫度過高時降低功耗。在游戲進行到一半的時候,CPU
風扇突然不轉了,Pentium 4處理器雖然不會燒起來,但絕對會大大影響游戲的進程。基本上有兩種降溫的方法——一種是靠處理器本身,一種是靠ICH芯片組。相對而言,CPU降溫方法要更好更快更有效,此外,它還支持兩種溫度監控模式,ICH只支持一種。
|
溫度監控1
(Thermal Monitor1, TM1)
|
超過溫度極限時,TM1將改變頻率周期以降低CPU功耗。在TM1狀態時,用戶會覺得程序運行不穩定。 Core1進入TM1狀態時,Core2仍在正常狀態下運行。 |
|
溫度監控2
(Thermal Monitor2, TM2)
|
超過溫度極限時,TM2將改變時鍾頻率與核心電壓以降低CPU功耗。所有核心都會同時切入TM2狀態。程序運行平穩。只有CPU支持TM2狀態。
|
|
擴展溫度監控
(Extended Thermal Monitor, ETTM)
|
在熱度環境非常糟糕的情況下,TM1會突然切入TM2狀態以降低CPU功耗。
|
