全面認識APM和ACPI


APM全稱Advanced Power Management,中文名稱高級電源管理,目前最新的APM標準是1.2,它是一種基於BIOS的系統電源管理方案,它提供了CPU和設備電源管理並通過設備工作超時設定來決定何時將設備轉換到低耗能狀態。

    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 Interface,中文名稱高級配置電源界面,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與APM有着很多的優勢,推薦使用ACPI來管理系統。

    下面通過WinXP關機問題來進一步探討它們之間的區別與應用。有人問爲什麼在WinXP的控制面板→電源選項中沒有高級電源管理選項頁和啓用高級電源管理支持選項,從而使系統無法正常關機。其實在2000年以後出現的主板BIOS大都支持ACPI管理,因此當Power Management Setup中的ACPI function設爲Enabled時,WinXP已經接管和控制了電源管理。所以系統中不會出現APM的選項頁,當然也就不會出現啓用高級電源管理支持選項。大多數的WinXP是可以正常關機,如果不能關機,原因可能是ACPI存在兼容性問題,解決的方法是升級最新的BIOS文件。如果還是不行,就把Power Management Setup中的ACPI function設爲Disabled,並將PM Control by APM設爲Yes。然後重啓進入WinXP就會發現在控制面板→電源選項中多出了高級電源管理選項頁(APM)和啓用高級電源管理支持選項,只要勾選啓用高級電源管理支持,並且在註冊表的HKEY_LOCAL_MACHINE/SOFTWARE /Microsoft/Windows NT/CurrentVersion/ Winlogon中找到PowerdownAfterShut- down,並將值設爲1,再重啓,通常問題就可解決。

轉自:http://www.blog.com.cn/user2/13225/archives/2005/36523.shtml 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章