ACPI Overview

ACPI Overview


最近有些時間,重溫了一下ACPI SPEC Rev4.0,發現之前無法理解的東西,現在也不是那麼難懂了。現整理一下筆記。

 

先來明確兩個概念:ACPI,OSPM

ACPI:Advanced Configuration and Power Interface 高級配置和電源接口

OSPM:Operation System directed configuration and Power Management 操作系統直接電源管理

在ACPI SPEC中,隨處可見OSPM,那麼OSPM到底是什麼呢?

原來,在早期的電腦中,電源管理完全是由通過APM(Advanced Power Management)來實現的,OS對此一無所知也無從干預。這種管理方式存在很多的缺陷,且BIOS維護APM代碼和功能需要非常大的精力。ACPI規範就是爲了解決APM的缺陷而問世的,它允許操作系統來控制電源管理,從而解放了BIOS。但是ACPI只是一個接口規範,除了硬件Support、BIOS support之外,OS 也需要support。支持ACPI的OS就可以叫做OSPM。 OSPM的最低要求如下:

1). 在Intel架構的系統上使用system address map reporting interface來得到system address map

      a. INT15H,E820H

       b. EFI GetMemoryMap() Boot Service Function

2).Find and consume the ACPI System Description Tables.

3). 安裝啓用一個支持所有已定義的AML語法元素的AML interpreter(翻譯器)。

4). 支持ACPI Event programming model,包含handing SCI interrupt,managing fixed events/general-propose events/embedded controller interrupt /dynamic device support.

5). 枚舉和配置ACPI Namespace中描述的主板設備。

6). 實現以下ACPI devices的支持:Embedded Controller Device/GPE Block Device/Module Device。

7). 安裝ACPI Thermal Model。

8). 支持acquisition(獲得) and release(釋放) Global Lock。

9).  支持OS-directed power management.(設備驅動負責維護device context)。

 

ACPI的結構

ACPI包含三個run-time Components:

1.       ACPI Tables

         主要描述一個Platform上的硬件界面資訊,這些描述包含了一些固定的寄存器的位置,或是說明一些Register Blocks,另外ACPI Tables還包含了一些OS可以執行的AML Code,OS會透過自己的AML Interpreter來執行這些AML Code。

2.       ACPI Registers

        在ACPI Register中是實體的硬件界面,這些寄存器就是被描述在ACPI Tables中的那些。

3.       ACPI BIOS

        符合ACPI規範的BIOS,典型情況下,他會做系統開關機的動作以及實做Sleep界面的支援(BIOS支援S3/S4/…)。

 

ACPI可以實現的功能

1. 系統電源管理 System Power Management

     Global Power State:

          G0: Working –S0

          G1: Sleeping --S1/S3/S4

          G2: Soft off –S5

          G3: Mechanical off        

      

2. 設備電源管理 Device Power Management

              PCI, PCI Express, CardBus, USB, IEEE 1394

       Device Power State:

           D0: fully on 設備可以完全迴應,正常工作

           D1: 不同Device Class有不同規範,一般會節省一些電源

           D2: 不同Device Class有不同規範,但並非大多數設備都有支援,比D1更省電,通常會關閉一些設備上的功能來達到省電的目的。

           D3hot: 不同Device Class有不同規範,當要轉到D0 狀態是,OS SW要重新初始化該設備

           D3: off 電源完全從設備移除

3. 處理器電源管理 Processor Power Management

       在G0狀態下,Processor Power State:C0, C1, C2, C3…

4. 設備和處理器性能管理 Device and Processor Performance Management

       在C0/D0狀態下,Device/Processor Performance State: P0, P1, P2, P3…

5. 配置/即插即用 Configuration/Plug and Play

6. 系統事件 System Events

7. 電池管理 Battery Management

8. 溫度管理 Thermal Management

9. 嵌入式控制器 Embedded Controller

10. SMBus控制器 SMBus Controller

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章