電源管理方案APM和ACPI比較

2021-07-06 01:23:51 字數 4289 閱讀 6395

apm和acpi比較

近期對linux的電源管理產生了興趣,索性來學習一下電源管理的東西。這不,遇到的乙個問題就是這個:apm、acpi兩種電源管理方案有何異同?下面的東西全部來自於網路博文,當然有做一些整理。

一、apm的不足和acpi產生

apm全稱是 advanced power management(高階電源管理)

,他是一種基於bios的系統電源管理方案,它提供cpu和外設電源管理並通過裝置工作超時設定來決定何時將裝置切換到低功耗模式。目前最新的版本是1.2,相對於1.0和1.1版來說,最新版的apm方案由作業系統來定義管理實踐,實際的執行動作還是由bios來做。

apm電源狀態包括: 就緒,待機(standby),掛起(suspend),休眠(sleep),關閉。

但是由於這種電源管理方式主要是由bios實現,所以有些缺陷,比如對

bios

的過度依賴,新老

bios

之間的不相容性,以及無法判斷電源管理命令是由使用者發起的還是由

bios

發起的,對某些新硬體如usb和1394的不支援性。

主要不足包括:

1.由於基於apm的bios都有它自己的電源管理方案,使得計算機與計算機之間缺乏一致性,每個bios開發者必須精心維護自己的apm bios**和功能。

2.系統進入掛起的原因無法知曉。使用者是否按了進入睡眠按鈕,還是bios認為系統已進入了空閒狀態,或者電池電壓過低,這些資訊apm都無法知道,但是windows必須要知道掛起的原因,即使系統沒有進入空閒狀態。

3.bios無法知道使用者在幹什麼,只有通過監視中斷和i/o埠來猜測使用者的活動。有時,bios會使系統處於完全混亂的狀態,當系統沒有空閒時將系統掛起或者當系統處於空閒狀態時,卻不進入掛起狀態。

4.早期版本的bios apm(1.0和1.1)不提供任何系統效能資訊,系統是否支援睡眠狀態就只有嘗試將系統轉入睡眠模式才知道。如果bios不支援睡眠模式,那將導致宕機。bios apm 1.2解決了這個缺陷。

5.bios對usb裝置、加插的電腦配件卡和ieee1394裝置全然不知,導致當以上裝置沒有進入空閒狀態,而bios卻認為系統已經進入空閒狀態,從而發生衝突,使這些裝置無法正常使用或系統宕機。

由於apm有以上不足,因此acpi應運而生。

acpi全稱advanced configuration power inte***ce

(高階配置電源介面

),acpi是為了解決apm的缺陷而問世的。它定義了許多新的規範:

1.acpi將現有的電源管理bios**、apm應用程式設計介面、pnp bios應用程式設計介面、多處理器規範**等集合成一種新的電源管理和配置介面規範。

2.acpi允許作業系統(不是bios)控制電源管理,

這點與apm不相同。3.

acpi標準定義了硬體暫存器、bios介面(包含配置**、控制方法以及主機板裝置列舉和配置)、系統和裝置的電源狀態和acpi熱模型。

4.bios支援的**不是用組合語言而是用aml(acpi machine language,acpi機器語言)編寫的。

bios不能決定用於電源管理或資源管理的策略或超時。5.

使用acpi系統的所有裝置可以互相通訊來了解彼此的使用情況,並且都受作業系統的控制,作業系統對正在執行的系統狀態瞭如指掌,所以作業系統處於執行電源管理的最佳位置。

二、acpi介紹

acpi表示高階配置和電源管理介面(advanced configuration and power management inte***ce)。對於windows2000,acpi定義了windows 2000、bios和系統硬體之間的新型工作介面。這些新介面包括允許windows 2000控制電源管理和裝置配置的機制。

windows 2000具有電源管理功能,該功能可以讓系統進入低電源消耗的"睡眠狀態",如待機和休眠等,目的就是控制電腦的電源消耗。windows 2000可以在您按下電源按鈕時重新"喚醒"系統,此時系統將立即進入執行狀態。

acpi

(advanced configuration management)是

1997

年由intel/microsoft/toshiba

(英特爾、

微軟和東芝

)提出的新型電源管理規範,意圖是讓系統而不是bios來全面控制電源管理,使系統更加省電。

其特點主要有:提供立刻開機功能,即開機後可立即恢復到上次關機時的狀態,光碟機、軟碟機和硬碟在未使用時會自動關掉電源,使用時再開啟;支援在開電狀態下既插即拔,隨時更換功能。

acpi主要支援三種節電方式:

1、(standby即待機

)顯示屏自動斷電

,只是主機通電。這時敲任意鍵即可恢復原來狀態

2、(suspend to ram 即掛起到記憶體

)系統把當前資訊儲存在記憶體中,只有記憶體等幾個關鍵部件通電,這時計算機處在高度節電狀態,按任意鍵後,計算機從記憶體中讀取資訊很快恢復到原來狀態。

3、(suspend to disk即掛起到硬碟

)計算機自動關機,關機前將當前資料儲存在硬碟上,使用者下次按開關鍵開機時計算機將無須啟動系統,直接從硬碟讀取資料,恢復原來狀態。

acpi可實現以下功能:

1、使用者可以使外設在指定時間開關;

2、使用膝上型電腦的使用者可以指定計算機在低電壓的情況下進入低功耗狀態,以保證重要的應用程式執行;

3、作業系統可以在應用程式對時間要求不高的情況下降低時鐘頻率;

4、作業系統可以根據外設和主機板的具體需求為它分配能源;

5、在無人使用計算機時可以使計算機進入休眠狀態,但保證一些通訊裝置開啟;

6、即插即用裝置在插入時能夠由acpi來控制。

不過,acpi和其他的電源管理方式一樣,要想享受到上面這些功能,必須要有軟體和硬體的支援。在軟體方面,windows 98提供了支援(但不全面,預設禁止std,需要給setup.exe加引數強制開啟,但bug很多),windows 2000對acpi給予了全面的支援;硬體方面比較麻煩,除了要求主機板、顯示卡和網絡卡等外設要支援acpi外,還需要機箱電源的配合。電源在提供5伏電壓給主機板的同時,還必須使電流穩定在720毫安以上才可以,這樣它才能夠實現電腦的「睡眠」和「喚醒」。

acpi共有六種狀態,分別是s0到s5

。它們代表的含義分別是:

s0--實際上這就是我們平常的工作狀態,

所有裝置全開

,功耗一般會超過80w;

s1--也稱為pos(power on suspend

= standby

),這時

除了通過cpu時鐘控制器將cpu關閉之外,其他的部件仍然正常工作

,這時的功耗一般在30w以下;(其實有些cpu降溫軟體就是利用這種工作原理)

s2--這時

cpu處於停止運作狀態,匯流排時鐘也被關閉,但其餘的裝置仍然運轉;s3

--這就是我們熟悉的str(suspend to ram),這時的功耗不超過10w;

s4--也稱為std(suspend to disk),這時系統主電源關閉,但是硬碟仍然帶電並可以被喚醒;

s5--這種狀態是最乾脆的,就是連電源在內的所有裝置全部關閉,即

關機(shutdown),功耗為0。

我們最常用到的是s3狀態,即suspend to ram(掛起到記憶體)狀態,簡稱

str。顧名思義,str就是把系統進入str前的工作狀態資料都存放到記憶體中去。在str狀態下,電源仍然繼續為記憶體等最必要的裝置供電,以確保資料不丟失,而其他裝置均處於關閉狀態,系統的耗電量極低。一旦我們按下power按鈕(主機電源開關),系統就被喚醒,馬上從記憶體中讀取資料並恢復到str之前的工作狀態。記憶體的讀寫速度極快,因此我們感到進入和離開str狀態所花費的時間不過是幾秒鐘而已;而s4狀態,即

std(掛

起到硬碟)與str的原理是完全一樣的,只不過資料是儲存在硬碟中。由於硬碟的讀寫速度比記憶體要慢得多,因此用起來也就沒有str那麼快了。std的優點是只通過軟體就能實現,比如windows 2000就能在不支援str的硬體上實現std。

三、linux所支援的apm和acpi

針對apm和acpi兩種不同的標準,linux核心提供了兩個不同的模組來實現電源管理功能,這就是apm和acpi。

需要注意,apm和acpi是互相衝突的兩個模組,使用者在同一時間內只能載入其中之一

,如果當他們在載入的時候發現二者之一已經載入,就會自動退出。

這個**文章介紹的是

linux對電源管理的支援:

可以先看看了解,後面再深入學習。

這個**是介紹acpi模組對上層使用者空間的介面和

daemon

程式acpid。

參考文件:

1. 2. 

3. 4. 

全面認識APM和ACPI

apm全稱advanced power management,中文名稱高階電源管理,目前最新的apm標準是1.2,它是一種基於bios的系統電源管理方案,它提供了cpu和裝置電源管理並通過裝置工作超時設定來決定何時將裝置轉換到低耗能狀態。1.由於基於apm的bios都有它自己的電源管理方案,使得計算...

手機連線掃瞄頭方案(續) 電源管理

由於掃瞄頭功耗太大 60ma工作電流 考慮使用特殊的電源管理 1.串列埠連線 直接給掃瞄頭髮命令休眠喚醒 系統啟動時讓掃瞄頭休眠,開啟程式時再喚醒,關閉程式時再休眠。system vold main.cpp char c0 char c1 int fd open dev s3c2410 serial...

普通使用者如何修改電源管理方案

今天在微軟新聞組裡看到乙個帖子,提這麼兩個問題 稍作修改 問題1用users組帳戶登入系統,開啟 電源管理 控制面板視窗,發現無法更改 電源使用方案 比如將預設的 家用 辦公桌 方案 20分鐘關閉監視器 改為 演示 方案 從不關閉監視器 系統會提示 拒絕訪問 如下圖所示。問題2如果嘗試借助執行方式,...