ACPI Spec Overview
- 格式:doc
- 大小:36.50 KB
- 文档页数:4
ACPI Spec Overview這篇文章最主要是說明一些ACPI Spec中基本架構的概念與一些基本的省電作法。
在系統中,硬體在正常情況下就會指示出電源系統進入Sleep時可以支援的省電層級,ㄧ個具有ACPI 功能的OS 是可以透過下列幾個項目來決定系統電源最低能夠支援的省電層級:1. ACPI’s DSDT2. ACPI’s SSDT3. ACPI’s PSDT一般來說OS與BIOS會依照ACPI規範去實做這部份的省電層級Sx。
ACPI OverviewACPI 規範在OSPM中是一個主要的技術,ACPI主要有3個Runtime 元件:1.ACPI Tables在ACPI Tables中最主要是描述一個Platform上面的硬體介面資訊,這些描述包含了一些固定的暫存器位址,或是說明一些Register Blocks,另外ACPI Tables 中還包含了一些OS可以執行的AML code ,OS會透過自己的AML Interpreter 來執行這些AML code。
2.ACPI Registers在ACPI Registers中是實體的硬體介面,這些暫存器就是被描述在ACPI Tables 中的那ㄧ些。
3.ACPI BIOS在ACPI BIOS中,他是一個符合ACPI規範下的BIOS,典型情況下,他會做系統開機的動作以及實做Sleep 介面的支援(BIOS支援S3/S4/…)OSPM 最小需求OSPM的最小需求為:1.Power Management Timer 用來提供時間的計數,用來檢查系統是否在閒置。
2.一個Power 或是Sleep Button3.一個real time clock alarm ,用來從Sleep state產生硬體Wakeup event4.實做一個支援到某個Sleep State層級的OS系統5.可以經由SCI 發出中斷事件6.有GPE 硬體暫存器來產生一些通用硬體事件7.ACPI BIOS有提供ACPI Tables8.有一個”User-accessible fail-safe”機制,讓系統Reset 或是Shutdown9.所有的Root PCI Bridge都要有_PRT Method 來設定PCI interrupt pin to interrupt vectorPower States在OSPM架構下,作業系統可以直接的對所有系統和設備做Power States 轉換,不過這部份就與使用者如何判定,以及應用程式如何控制,或是OS如何將設備轉換進入低電源狀態或是離開有關,另外還有設備如果沒在使用的情況下就把電源關閉…等的情況。
一般來說,OS都是參考應用程式的設定或是使用者的設定來當作進入省電模式的依據,OS使用ACPI去控制硬體的電源狀態(Power-states)。
Global Power States從使用者可見的環境下,系統電源狀態分成G0/G1/G2和G3 ,而這些狀態切換參考是依據:a) 應用程式還在執行嗎?b) 外部事件與應用程式回應的時間長短多長? 過長可能就沒在用了c) 電源消耗量為何?d)OS 重新開機後要求要回到工作狀態G0 ?e) 是否安全的拆卸系統?f) 電源狀態是否經由電氣的改變可以進入或是離開電源狀態? (是否硬體支援切換?)而個別的States如下所示:G0—WorkingG1—SleepingG2 (or S5)--Soft OffG3--Mechanical OffWorking & Sleeping States在一般環境下,系統介於Working & Sleeping States的切換較多(G0<-->G1 互換),其中當系統在Sleep States(G1)時又要分成兩部分來談,分別是a) Device 支援的電源省電層級(Dx-States)b) Processor 支援的省電層級(Cx-States)因為不同的情況下,可能要省電的是設備、處理器或是兩個設備都要,所以底下分別談論他們的省電狀態。
Device Power Statesi) D0--Fully-On : 設備可以完全回應,正常工作ii) D1 : 依照不同Device class有不同規範,一般都是會節省一些電源iii) D2: 依不同Device class有不同規範,但並非大多數設備都有支援,而這階段除了節省電源外,通常會關閉一些設備上的功能來達到更省電的情況。
iv) D3—Off : 把電源從設備移除,完全關閉設備電源,一般重新啟動設備通常會需要比較長的時間。
不同的設備通常會有不同的電源省電狀態,通常這些電源狀態的切換都可以經由他們的驅動程式或是軟體來切換,一般都是經由設備驅動程式送Command 到設備來切換他們的模式。
Processor Power States處理器的電源狀態(Power States),Cx States 是指處理器的電源耗損以及Thermal 管理,而這些都是在G0 States 內所定義的:a)C0 Processor Power State : 處理器正常處理Instructions。
b)C1 Processor Power State: 處理器有比較低的Latency,此時的硬體Latency 只保留足夠OS在不考慮Latency 情況下可以正常執行軟體,而當處理器進入這個”non-ex ecuting”狀態時,只有他自己知道,而沒有軟體會顯示這個狀態。
c)C2 Processor Power State: 處理器最差的Latency會定義在FADT Table,OS 自己會決定何時要用C2來取代C1 以達到更省電的狀態,而當處理器進入這個”non-executing”狀態時,只有他自己知道,而沒有軟體會顯示這個狀態。
d)C3 Processor Power State : C3 狀態中的最差的Latency 也是定義在FADT Table,OS自己會去切換狀態,當處理器在C3狀態時,原本處理器負責的Cache 狀態會忽略任何的探測(Cache snoop),所以OS要自己負責。
ASL Code OverviewDevice Power Management Objects1) 前面說過,每個Device支援的省電狀態不同,所以必須告訴OS在Sx與Dx 的對應關係,而這部份是透過"_SxD"來決定。
2) 而設備的電源管理是透過"_PRx" 對應”_PSx”來決定,另外”_PRW”則不對應”_PSx”,而”_PRW”是一個控制物件,控制設備是否Enable/Disable從Sx Wakeup功能附錄APPENDIXDevice Power Management Child Objects & Object Description_IRC Object that signifies the device has a significant inrushcurrent draw._PRW Object that evaluates to the device's power requirements in orderto wake the system from a system sleeping state._PR0 Object that evaluates to the device's power requirements inthe D0 device state (device fully on)._PR1 Object that evaluates to the device's power requirements inthe D1 device state. The only devices that supply thislevel are those which can achieve the defined D1 devicestate according to the related device class._PR2 Object that evaluates to the device's power requirements inthe D2 device state. The only devices that supply thislevel are those which can achieve the defined D2 device stateaccording to the related device class._PSC Object that evaluates to the device's current power state._PSW Control method that enables or disables the device'sWAKE function._PS0 Control method that puts the device in the D0 device state(device fully on)._PS1 Control method that puts the device in the D1 device state._PS2 Control method that puts the device in the D2 device state._PS3 Control method that puts the device in the D3 device state(device off)._S0D Highest D-State supported by the device in the S0 state_S1D Highest D-State supported by the device in the S1 state_S2D Highest D-State supported by the device in the S2 state_S3D Highest D-State supported by the device in the S3 state_S4D Highest D-State supported by the device in the S4 state_S5D Highest D-State supported by the device in the S5 state上述都只是些基本概念,也是我自己的心得筆記,希望能夠給大家多一點ACPI 認識,如資料有誤也請各位先進不吝指教,謝謝!ReferenceAcpi Spec3.0b。