2014年1月1日 星期三

新手村的BIOS任務 ─ ACPI


ACPI (Advanced Configuration and Power Interface)

在過去Windows 98/SE/Me/2000/XP都支持兩種形式的電源管理,它們分別是

  1. APM(Advanced Power Management,高級電源管理)
  2. ACPI(Advanced Configuration and Power Interface, 進階組態與電源介面)
但APM有先天不足:
  • APM經由BIOS所主導控制,每種BIOS都有它自己的電源管理方案,無法隨著作業程序的變遷而有效地運用調整電力。使得每個不同的系統間缺乏一致性,每個BIOS開發者必須精制和維護自己的APM BIOS代碼和功能。
  • 無法覺察到用戶行為,只有通過監視中斷IRQ和I/O port來猜測使用者的活動,頂多做到設定幾分鐘之後某某裝置shut down,省電效率並不高。
  • 早期版本的APM(1.0、1.1)不提供任何系統性能信息,唯一決定機器是否支持睡眠狀態的方法就是嘗試將系統轉入睡眠模式。如果BIOS不支持睡眠模式,那將導致死機。(但在APM 1.2解決了這個缺陷。)
  • 對於USB設備、加插的電腦配件卡和IEEE 1394設備不認識,會導致當這些設備沒有進入空閑狀態,而BIOS卻認為系統已經進入空閑狀態。

在系統實際開機後,真正主導、掌握整個系統並實際接觸周邊裝置調度的是OS,因此power management的重心需要由BIOS轉移到OS,才會有更好的耗電管理。

ACPI既不是軟體的spec,也不是硬體的spec,它在OS與hardware peripheral間多了一個軟體/硬體中介層:

                              

周邊裝置(硬碟、網卡...)隨時將本身的耗電情形以及開關狀況記錄在ACPI中介層的register中;sensor也隨時將最新的電壓、溫度等參數透過ACPI、SMBUS回傳給OS。而OS則是透過AML(ACPI Machine Language)語言解譯程式,對符合ACPI規範設計的peripheral做控制。


ACPI讓作業系統可以直接的管理各種裝置利用電源的狀況:
Sleep狀態,如S1~5等,可以在Sleep狀態被Device喚醒,Sleep狀態數字愈高表示睡得越深、耗的電量越少,需要被喚醒的時間也越長。
  • G0(S0)正常工作狀態:
  • G1 睡眠 細分為從S1到S4這四種狀態。
    • 系統從這幾種狀態被喚醒到G0執行〈喚醒等待時間)所需的時間最短的是S1,最長是S4。
      • S1:最耗電的睡眠模式。
        • 處理器的所有暫存器被重新整理,並且CPU停止執行指令。CPU和內部記憶體的電源一直維持著,裝置如果沒有被使用那麼就會被停止供電。
        • 這種模式通常指上電待機或者簡單叫做POS(Power on Suspend)。一些新式的電腦不再支援S1;老式的電腦對S1支援可能要比S3好。
        • 某些CPU降温軟件就是利用這種工作原理。
        • 喚醒時間:0秒。
      • S2:
        • 這時CPU處於停止運作狀態,Bus Clock也被關閉,但其餘的設備仍然運轉。
        • 喚醒時間:0.1秒。
      • S3:
        • 稱STR(Suspend to RAM)
        • 除了記憶體(RAM)需要電源來保持資料以外,其它的設備、裝置全部停止供電。
        • 因為RAM仍然有電源供給,作業系統、所有應用程式和被開啟的文檔等等的狀態都是保存在主記憶體中,電腦從S3狀態回來時主記憶體的內容和它進入S3狀態時候的內容是相同象的。
        • 喚醒時間:0.5秒。
      • S4: 
        • 稱STD(Suspend to  Disk)
        • 即是把 windows 記憶體中的資料完整的存在硬碟中。等開機時就直接從存這些資料的地方直接完整的讀到記憶體,不需要跑一堆應用程式。
        • 使用這種模式的話,硬碟一定要騰出一個完整的連續空間。
        • 再進入系統時需重跑BIOS。
        • 喚醒時間:30秒。
  • G2
      • S5:關閉

其他:

Google看來的,ACPI的一項特色:用軟體電源開關來控制電源。

電源供應器的開關按鈕並不接往電源供應器本身,而是連接到主機板上;電源供應器無法啟動電腦的電源,而是直接由主機板控制,大部分多配合ATX電源系統一起使用。

這可使電腦供應低電壓、讓電腦處於並非完全關掉電源的睡眠狀態(Idle);這也可使電腦快速開機,即便關機後亦有5V電壓隨時待命。再者於使用隨插即用(Plug-and-Play)周邊設備時,ACPI可在裝置插入系統即偵知並管理設備的電源。

ACPI亦具備NB的OnNow特性,可使電腦立即恢復到原先工作狀態,不需等候漫長的開機過程。ACPI 還提供一個便利親近的視窗,讓使用者可由圖形介面,設定及管理電源的使用狀況,達到較佳的電源管理目的。

ACPI統整了系統、周邊設備、中央處理器、各類嵌入式微控制器、匯流排本身及相互的電源效能管理、溫度監控、儲備電能供應管理。簡丹說,ACPI讓OS、CPU與peripheral三方面整合起來,互相交換用電訊息,更加簡便而有效益地共同管理電源。

Reference:

http://www.hope.com.tw/culture/showbox-tw.asp?o=HJQ1HA8NHJ6CU-0SAH
http://www.lis186.com/posts/7584
http://stenlyho.blogspot.com/2009/02/acpiapic.html

沒有留言:

張貼留言