摘要:兼容的電池設備需要智能電池子系統接口由操作系統直接通過嵌入式控制器接口控制或接口。這允許任何操作系統提供一個標準的總線枚舉器,它可以直接與系統中的嵌入式控制器通信,從而允許系統中的其他驅動程序與系統中的嵌入式控制器通信并使用它們的資源。
目錄
3.11.1 Hardware-reduced ACPI 21
3.11.2.1低功耗S0空閑Capable標志位... 21
符合ACPI規范的平臺為OSPM提供了對計算機的電源管理和主板設備配置功能的直接和獨家控制。在操作系統初始化過程中,OSPM將從APM BIOS、基于smm的固件、遺留應用程序和PNPBIOS等傳統實現中接管這些功能。完成這些之后,OSPM負責處理主板設備配置事件,并根據用戶偏好、應用程序請求和操作系統強加的服務質量(QOS) /可用性目標控制系統的功率、性能和熱狀態。ACPI提供了允許OSPM執行這些功能的低級接口。ACPI規范涵蓋的功能領域包括:
系統電源管理 ACPI定義了使計算機作為一個整體進入和退出系統休眠狀態的機制。它還為任何設備提供了喚醒計算機的通用機制。
設備電源管理 ACPI表描述主板設備,它們的電源狀態,設備連接的電源平面,以及將設備置于不同電源狀態的控制。這使得操作系統能夠根據應用的使用情況將設備設置為低功耗狀態。
處理器電源管理 當操作系統處于空閑狀態而不是休眠狀態時,它將使用ACPI描述的命令將處理器置于低功耗狀態。
設備和處理器性能管理 當系統處于活動狀態時,OSPM將設備和處理器轉換為ACPI定義的不同性能狀態,以實現性能和節能目標以及其他環境要求(例如,能見度和聲學)之間的理想平衡。
配置/即插即用?ACPI指定用于枚舉和配置主板設備的信息。這些信息是分層排列的,因此當發生對接和解對接之類的事件時,操作系統對哪些設備受到該事件的影響有精確的先驗知識。
系統事件?ACPI提供了一種通用事件機制,可用于熱事件、電源管理事件、對接、設備插入和移除等系統事件。這種機制非常靈活,因為它沒有明確定義如何將事件路由到核心邏輯芯片集。
電池管理?電池管理策略從APM BIOS轉移到ACPI操作系統。acpi兼容的電池設備需要智能電池子系統接口(由操作系統直接通過嵌入式控制器接口控制)或Control Method battery接口。控制方法電池接口完全由AML控制方法定義,允許OEM選擇任何類型的電池和ACPI支持的任何類型的通信接口。電池必須符合其接口的要求,如本文所述或其他適用的標準。操作系統可以選擇改變電池的行為,例如,通過調整低電池或電池警告跳閘點。當存在多個電池時,電池子系統不需要從多帶帶電池的數據中進行任何“復合電池”的合成。在電池子系統不能從獨立電池的數據合成“復合電池”的情況下,操作系統必須提供這種合成。
熱管理 由于操作系統控制設備和處理器的電源和性能狀態,ACPI還解決了系統的熱管理問題。它提供了一個簡單的、可擴展的模型,允許oem定義熱區域、熱指標和冷卻熱區域的方法。
嵌入式控制器?ACPI定義了操作系統總線枚舉器和嵌入式控制器之間的標準硬件和軟件通信接口。這允許任何操作系統提供一個標準的總線枚舉器,它可以直接與系統中的嵌入式控制器通信,從而允許系統中的其他驅動程序與系統中的嵌入式控制器通信并使用它們的資源。這反過來又使OEM能夠提供操作系統和應用程序可以使用的平臺特性。
SMBus控制器 ACPI定義了操作系統總線驅動程序與SMBus Controller之間的標準軟硬件通信接口。這允許任何操作系統提供一個標準的總線驅動程序,它可以直接與系統中的SMBus設備通信。這反過來又使OEM能夠提供操作系統和應用程序可以使用的平臺特性。
OSPM的任務是優化配置平臺,并根據用戶的喜好優化管理系統的功率、性能和熱狀態,同時支持操作系統強加的服務質量(QOS) /可用性目標。為了實現這些目標,ACPI要求,一旦兼容ACPI的平臺處于ACPI模式,平臺的硬件、固件或其他非操作系統軟件不能獨立于OSPM操縱平臺的配置、電源、性能和熱控制接口。OSPM多帶帶負責協調系統的配置、電源管理、性能管理和熱控制策略。獨立于OSPM的這些接口的操作將破壞OSPM/ACPI的目的,并可能對系統的配置、電源、性能和熱策略目標產生不利影響。這一要求有兩個例外。第一種情況是,當存在ACPI兼容的操作系統,而OSPM延遲不足以彌補不利的熱條件時,系統可能會受到損壞。在這種情況下,平臺可能會采用故障安全熱控制機制,降低系統組件的性能,以避免損壞。如果出現這種情況,如果性能下降持續時間很長(換句話說,如果性能下降的持續時間會對OSPM的能力或性能控制策略產生不利影響——操作系統供應商可以在這方面提供指導),則平臺必須將性能下降的情況通知OSPM。第二個例外情況是平臺包含主動冷卻裝置,但不包含被動冷卻溫度跳閘點或控制。在這種情況下,可以在不影響OSPM目標的情況下實現基于硬件的Active冷卻機制。任何需要主動和被動冷卻的平臺都必須允許OSPM通過ACPI定義的主動和被動冷卻接口來管理平臺的熱量。
在OSPM下,操作系統指導所有系統和設備的電源狀態轉換。利用用戶偏好和應用程序如何使用設備的知識,操作系統將設備置于或退出低功耗狀態。不使用的設備可以關閉。類似地,操作系統使用來自應用程序和用戶設置的信息將整個系統置于低功耗狀態。操作系統使用ACPI控制硬件上電狀態的轉換。
從用戶可見的層面來看,系統可以被認為處于以下圖表中的一種狀態:
這些狀態的詳細定義見章節2.2。
一般情況下,計算機在工作和睡眠狀態之間交替使用。在工作狀態下,計算機是用來工作的。用戶模式的應用程序線程被分派并運行。單個設備可以處于低功耗(Dx)狀態,處理器可以處于低功耗(Cx)狀態,如果它們不被使用的話。任何由于不積極使用而被系統關閉的設備都可以以較短的延遲打開。(“短”是什么意思取決于設備。LCD顯示屏需要在亞秒的時間內啟動,而一般情況下,等待幾秒鐘打印機啟動是可以接受的。)
這樣做的最終效果是整個機器在工作狀態下正常工作。不同的工作子狀態在計算速度、使用的功率、產生的熱量和產生的噪音方面有所不同。Working狀態中的調優主要是關于速度、功率、熱量和噪聲之間的權衡。
Fig. 3.1: Global System Power States and Transitions
當計算機處于空閑狀態或用戶按下電源按鈕后,操作系統將使計算機進入休眠(Sx)狀態。在睡眠狀態下不發生用戶可見的計算。休眠子狀態的不同在于哪些事件可以將系統喚醒到工作狀態,以及需要多長時間。當機器必須快速喚醒所有可能的事件時,它只能進入能部分降低系統功耗的子狀態。但是,如果唯一感興趣的事件是用戶按下電源開關,并且允許有幾分鐘的延遲,那么操作系統可以將所有系統上下文保存到一個NVS文件中,并將硬件轉換到S4休眠狀態。在這種狀態下,機器幾乎耗電為零,并在任意一段時間內(如果需要,可以是幾年或幾十年)保持系統上下文。
其他狀態使用較少。支持legacy BIOS電源管理接口的計算機在legacy狀態下啟動,并在ACPI操作系統加載時過渡到Working狀態。沒有遺留支持的系統(例如,RISC系統)直接從Mechanical Off狀態轉換到Working狀態。用戶通常通過撥動電腦的機械開關或拔掉電腦的插頭來將電腦置于“機械關閉”狀態。
在傳統系統中,電源按鈕通常會迫使機器進入“軟關閉”或“機械關閉”狀態,而在筆記本電腦上,則會迫使它進入某種睡眠狀態。沒有考慮用戶的政策(如用戶想讓機器“加油”在不到1秒與所有上下文是當用戶把機器“關閉”),系統提醒功能(如系統被用作一個電話應答機或傳真機),或應用程序函數(例如保存用戶文件)。
在一個OSPM系統中,有兩個開關。一種是將系統轉換到機械關閉狀態。在一些司法管轄區(例如在一些歐洲國家),出于法律原因需要一種機制來阻止流動。另一個是“主”電源按鈕。這是在一些明顯的地方(例如,在筆記本電腦鍵盤旁邊)。與傳統的開關按鈕不同,它所做的只是向系統發送一個請求。系統對該請求所做的操作取決于源自用戶首選項、用戶功能請求和應用程序數據的策略問題。
移動pc將繼續擁有強大的電源管理功能。使用OSPM/ACPI將允許增強的節能技術和更精細的用戶策略。
ACPI規范中移動PC電源管理的方面是熱管理(見第3.10節)。
電源管理桌面將有兩種類型,盡管第一種類型將隨著時間的推移遷移到第二種類型。
普通的“綠色電腦”在這里,新的電器功能不是問題。這臺機器實際上只用于生產力計算。至少在最初階段,這樣的機器只需要很少的功能就可以應付過去。特別是,它們需要普通的ACPI計時器和控件,但不需要支持復雜的睡眠狀態,等等。然而,他們確實需要允許操作系統將盡可能多的設備/資源置于設備待機和設備關閉狀態,并且盡可能獨立(以最大的計算速度和最小的未使用設備上的功耗浪費)。這類電腦還需要支持通過計時器從休眠狀態喚醒,因為這允許管理員在人們去上班之前強制開機。
家庭PC電腦正在進入家庭環境,在那里,它們被用于娛樂中心和執行任務,如接聽電話。家用電腦需要普通綠色電腦的所有功能。事實上,它具有筆記本電腦的所有ACPI電源功能,除了對接和蓋子事件(并且不需要任何遺留電源管理)。請注意,家庭PC還有一個熱管理方面,因為家庭PC用戶希望系統盡可能安靜地運行,通常是在熱受限的環境中。
也許令人驚訝的是,服務器機器通常可以獲得最大的絕對功耗節省。為什么?因為他們擁有最大的硬件配置,因為當他們晚上離開的時候,讓人按下關機開關是不實際的。
白天模式在白天模式下,服務器是電源管理的,就像企業普通的綠色PC一樣,一直處于工作狀態,但盡可能將未使用的設備置于低功耗狀態。由于服務器可能非常大,并且有許多磁盤軸,因此電源管理可以節省大量資源。OSPM允許仔細地調整何時進行此操作,從而使其可行。
在夜間模式下,服務器看起來像家用電腦。它們盡可能地深度睡眠,并且仍然能夠在指定的延遲時間內喚醒并回答通過網絡、電話鏈接等傳入的服務請求。例如,打印服務器可能會進入深度睡眠,直到它在凌晨3點收到打印任務,在這一點上,它可能會在30秒內醒來,打印任務,然后回到睡眠狀態。如果打印請求通過LAN發送,那么這個場景依賴于智能LAN適配器,該適配器可以喚醒系統以響應接收到的感興趣的數據包。
介紹acpi兼容的設備電源管理。介紹了ACPI設備電源狀態,控制和信息ACPI-compatible操作系統需要執行設備電源管理進行了討論,之后操作設備使用從睡眠狀態喚醒計算機,并使用調制解調器ACPI-compatible設備管理的一個例子
ACPI設備電源管理基于一個集成模型,包括:
分布式設備電源狀態策略對于系統上的每個硬件設備,“操作系統”中都有一個“電源策略所有者”(power policy Owner)負責不斷確定設備的最佳電源狀態。最佳的設備電源狀態是指在任何時間點上,使設備消耗的電能最少,且符合系統和用戶對設備的使用要求。策略通常為一類設備定義,并根據需要合并應用程序活動、用戶場景和其他操作狀態。它適用于給定類的所有設備。
分層設備電源狀態控制一旦為設備做出電源狀態決策,它們必須由設備驅動程序執行。該模型將控制功能劃分為設備層、總線層和平臺層。每一層的設備驅動程序使用該層可用的機制執行控制,由OSPM協調。一般來說,當設備下電時,順序從設備/類級到總線級,再到平臺級,當設備上電時,順序反過來。
例如,設備級驅動程序可以通過設備編程接口訪問調用設備中特定的、有時是專有的電源控制特性的設置和控制寄存器。設備驅動程序根據策略所有者確定的目標acpi定義的電源狀態使用這些控件。類似地,設備類可能具有標準化的電源特性,在進入目標電源狀態時,類驅動程序可能使用標準化的方式調用這些特性。
在總線級,電源管理標準開始發揮作用,為連接到總線的每個設備提供總線特定的控制,而不管設備類是什么。例如,PCI在設備配置空間中定義用于設置設備電源狀態(D0-D3)的字段。總線級驅動利用這些標準來執行由特定設備或設備類驅動程序應用的控制。總線特定的機制還允許總線基礎設施硬件本身進入總線標準中定義的低功耗狀態,從而在系統中實現額外的功耗節省。
最后,對于平臺級電源狀態控制,ACPI定義了將設備置于給定電源狀態的機制(_PRx, _PSx, _ON, _OFF)。操作系統的電源管理軟件(OSPM)利用這些機制對給定的設備執行最低級別的、特定于平臺的控制(例如開關電源軌和時鐘、重新設置硬件等)。
操作系統協調最后,ACPI定義了信息和行為需求,使OSPM能夠通知Power Policy Owner所支持的狀態和喚醒功能,并在控制電源時協調不同級別設備驅動程序的操作。在此角色中,OSPM負責確保設備電源管理與系統電源管理協調,如進入休眠狀態(S1S4)或低功耗空閑狀態(LPI)。喚醒策略和控制與設備電源狀態策略和控制集成在一起,由OSPM進行協調。電源策略所有者(Power Policy Owners)決定何時需要設備喚醒系統,確保當平臺進入Sleep或LPI狀態時,只選擇設備可以喚醒的設備電源狀態。喚醒硬件的啟用也在設備、總線和平臺級別執行,并由OSPM協調。OSPM進一步確保為系統選擇的Sleep或LPI狀態與當前使能喚醒的所有設備的設備狀態和喚醒能力兼容。
為了管理系統中所有設備的功率,操作系統需要向設備發送命令的標準方法。這些標準定義了用于管理特定I/O互連上設備的電源的操作,以及設備可以放入的電源狀態。為每個I/O互連定義這些標準,創建了操作系統可以利用的電源管理支持的基線級別。獨立硬件供應商(IHVs)不必花費額外的時間編寫軟件來管理其硬件的性能,因為只要遵守標準就可以獲得直接的操作系統支持。對于操作系統供應商,I/O互連標準允許電源管理代碼集中在驅動程序中的每個I/O互連。最后,I/O互連驅動的電源管理允許操作系統跟蹤給定I/O互連上所有設備的狀態。當所有設備處于給定狀態時(例如D3關閉),操作系統可以將整個I/O互連置于適合該狀態的電源模式中(例如D3關閉)。
I/O互連級電源管理規范為許多總線編寫,包括:
?一種總線標準
?串行總線
?卡總線
?usb
?ieee 1394
為了統一術語并提供跨設備的一致行為,對設備的電源狀態使用標準定義。一般來說,這些狀態是根據以下標準定義的:
?功耗-設備使用多少功率。
?設備上下文-多少設備的上下文被硬件保留。
?設備驅動程序——設備驅動程序必須做什么來恢復設備完全打開。
?恢復延遲—設備恢復到完全打開需要多長時間。
更具體地說,每一類設備(例如調制解調器、網絡適配器、硬盤等)的電源管理規范更精確地定義了該類的電源狀態和電源策略。有關一般設備電源狀態(D0-D3)的詳細描述,請參閱設備電源狀態。
設備電源狀態定義是與設備無關的,但是總線上的設備類必須支持與電源相關的某些一致的特征集。例如,當調用特定于總線的機制將設備電源狀態設置為給定級別時,設備可能采取的操作和操作系統在設備處于該狀態時可以假定的特定行為將因設備類型而異。對于一個完全集成的設備電源管理系統,這些特定類別的電源特性也必須標準化:
設備功耗狀態特征每一類設備都有目標功耗級別、狀態更改延遲和上下文丟失的標準定義。
最小設備功率能力每一類設備都有一個最小的標準功率能力集。
設備功能特性每一類設備都有一個標準定義,定義在每種電源狀態下可用的設備功能或特性的子集(例如,網卡可以接收,但不能傳輸;聲卡功能齊全,除了功率放大器關閉等)。
設備喚醒特性每一類設備都有其喚醒策略的標準定義。
設備類電源管理規范為每一類設備定義了這些電源狀態特征。參見附錄A:設備類規范。
ACPI接口提供了管理設備電源所需的控制方法和信息。OSPM利用這些接口來執行一些任務,比如確定設備的能力、執行設置設備電源狀態或獲取設備狀態的方法,以及使設備能夠喚醒機器。
?其他總線列舉主板上的一些設備。例如,通過標準PCI枚舉機制報告PCI設備。這些設備的電源管理是通過它們自己的總線規范(在本例中是PCI)來處理的。主板上的其他設備均通過ACPI處理。具體來說,ACPI表列出了無法通過它們自己的總線規范報告的遺留設備、系統中每個總線的根,以及具有它們自己的總線規范沒有涵蓋的額外電源管理或配置選項的設備。
更多詳細信息見第7節
當操作系統在系統中枚舉設備時,它獲取設備支持的電源管理特性的信息。平臺引導固件給操作系統的區別定義塊描述了ACPI處理的每個設備。包含如下信息:
描述設備在支持的每種電源狀態下需要哪些電源資源(電源平面和時鐘源)。例如,一個設備在D0狀態下可能需要一個高功率總線和一個時鐘,而在D2狀態下只需要一個低功率總線而不需要時鐘。
?設備喚醒機器所需的電源資源的描述(或沒有電源資源,表示設備不支持喚醒)。操作系統可以使用這些信息來推斷哪些設備和系統電源狀態可以支持喚醒。
?可選的控制方法,操作系統可以用來設置設備的電源狀態,獲取和設置資源。
除了描述ACPI處理的設備,該表還列出了電源面和時鐘源本身以及打開和關閉它們的控制方法。詳細信息請參見第7節。
OSPM通過“Set Power State”操作將設備設置為四種電源狀態之一。
當設備處于較低的功率狀態時,它會將自己配置為盡可能少地從總線上取電。操作系統跟蹤總線上所有設備的狀態,并根據總線上當前設備的要求將總線置于最佳電源狀態。例如,如果總線上的所有設備都處于D3狀態,操作系統將向總線控制芯片發送一個命令,從總線上移除電源(因此將總線置于D3狀態)。如果某一總線支持低功耗供電狀態,當所有設備都處于D1或D2狀態時,OS將總線置于低功耗供電狀態。無論設備處于何種電源狀態,操作系統必須能夠發出Set power state命令來恢復設備。
?設備不需要有電源就可以做到這一點。操作系統在向設備發送命令之前,必須先將設備上電。
OSPM還使用“設置電源狀態”操作啟用電源管理特性,如wake(在電源和性能管理中描述)。
對于下電操作(從Dx過渡到更深的Dy), OSPM首先評估目標狀態(_PSx)的適當控制方法,然后關閉任何未使用的電源資源。請注意,這可能并不意味著實際上從設備上刪除了電源。如果有其他主用設備共用電源,電源將保持打開狀態。在通電的情況下(從一些Dx轉換回較淺的D0), D0所需的電源資源首先被打開,然后控制方法(_PS0)被評估。
OSPM通過Get Power Status操作來確定當前的電源配置(狀態和特性),以及設備支持的任何電池的狀態。設備可以發出SCI信號,通知操作系統電源狀態的變化。例如,一個設備可以觸發一個中斷來通知操作系統電池已經達到低功率水平。
設備使用ACPI事件模型向OSPM發送電源狀態變化(例如電池狀態變化)的信號。平臺通過中斷(SCI或GPIO)向操作系統發送事件信號。中斷狀態位被設置為向操作系統指示事件。操作系統運行與該事件關聯的控制方法。這種控制方法向操作系統發出設備發生變化的信號。
ACPI支持兩種類型的電池:只報告基本電池狀態信息的電池和支持智能電池系統實施者論壇“智能電池規格”的電池。對于只上報電池基本狀態信息(如總容量、剩余容量等)的電池,操作系統通過電池描述表中的控制方式讀取。要讀取智能電池的狀態信息,操作系統可以使用標準的智能電池驅動程序,通過適當的總線枚舉器直接與智能電池接口。
喚醒操作使設備從休眠或低功耗空閑狀態喚醒系統。這個操作不能依賴于CPU,因為CPU不會執行指令。
操作系統確保設備和核心邏輯之間的任何橋梁處于最低功耗狀態,在這種狀態下它們仍然可以轉發尾流信號。當啟用了喚醒功能的設備決定喚醒系統時,它在總線上發送定義的信號。總線橋必須使用該總線的適當信號將此信號轉發到上游橋。因此,信號最終到達核心芯片集(例如,ACPI芯片集),該芯片集反過來喚醒系統。
在將系統置于睡眠電源狀態之前,操作系統根據應用程序請求確定需要哪些設備喚醒系統,然后以設備和總線特定的方式對這些設備啟用喚醒。
操作系統通過設置設備的SCI Enable位或揭示其喚醒中斷來啟用設備上的喚醒特性。該控件的位置在描述表中的設備條目中列出。只有啟用了喚醒功能的設備才能喚醒系統。操作系統跟蹤尾流設備支持的電源狀態,并保持系統處于一個尾流仍能喚醒系統的電源狀態(基于描述表中報告的能力)。
當系統處于休眠或低功耗空閑狀態時,喚醒設備決定喚醒系統,它向核心邏輯發出信號。設置喚醒系統的設備對應的狀態位,核心邏輯恢復系統。在操作系統再次運行后,它通過運行一個控制方法(用于喚醒事件)或處理設備的ISR(用于喚醒中斷)來確定負責喚醒事件的設備。
?除了使用ACPI機制使特定設備喚醒系統外,ACPI平臺還必須能夠記錄并向OSPM報告喚醒源。當系統從某些狀態(如S4狀態)喚醒時,它可能以非acpi模式啟動。此時,重新進入ACPI模式時,可能會清除SCI狀態位。但是,平臺仍然必須嘗試記錄尾流源,以便以后由OSPM檢索。
?盡管上述描述解釋了設備如何喚醒系統,但請注意,在S0系統狀態下,設備也可以進入低功耗狀態,并且該設備可能在S0狀態下產生尾流信號,如下例所示。
為了說明這些電源管理方法在ACPI中是如何工作的,考慮一個集成的調制解調器。(為了方便討論,這個示例被大大簡化了。)調制解調器的電源狀態定義如下(來自《調制解調器設備類電源管理規范》):
D0電話接口上的調制解調器控制器揚聲器上可以掛起或摘起可以等待應答
D1低功耗模式下的Modem控制器(背景由設備保留)電話線供電或低功耗模式下的電話接口揚聲器關閉必須掛起
D2與D3相同
D3調制解調器控制器關閉(上下文丟失)電話接口由電話線供電或關閉揚聲器關閉掛機
modem的電源策略定義如下:
D3 D0 COM口打開
D0、D1、D3 COM口關閉
D0 D1調制解調器進入應答模式
D1 D0 modem處于應答模式時,應用程序請求撥號或電話振鈴
調制解調器的喚醒策略非常簡單:當話機振鈴并啟用喚醒功能時,喚醒系統。
基于此策略,調制解調器及其所連接的COM口可以在硬件上實現,如圖3-2所示。這只是一個說明ACPI特性的示例。本示例不打算描述原始設備制造商應該如何構建硬件。
?Fig. 3.2: Example Modem and COM Port Hardware
注意:雖然上面沒有顯示,但每個分立的部分都有一些隔離邏輯,因此當從其上移除電源時,該部分是隔離的。隔離邏輯控制在ACPI區分描述塊中作為電源資源實現,這樣當電源平面順序關閉時,設備就會被隔離。
當操作系統通過讀取區別定義塊中的調制解調器條目來枚舉調制解調器時,它決定了調制解調器的能力。在這種情況下,調制解調器的條目將報告:
設備支持D0、D1、D3:
?d0需要PWR1和PWR2作為電源,D1需要PWR1作為電源(D3隱含不需要電源)
?要喚醒系統,調制解調器不需要電源資源(意味著它可以從D0, D1, d3喚醒系統)
設置電源狀態和資源的控制方法
當操作系統運行時(G0狀態),它會根據modem的電源策略將modem切換到不同的電源狀態。
當應用程序打開COM口時,操作系統將調制解調器置于D0狀態,從而開啟調制解調器。如果應用程序將調制解調器設置為應答模式,則操作系統將調制解調器設置為D1狀態等待呼叫。為了實現這種下電轉換,OSPM首先運行調制解調器入口中提供的控制方法(_PS1),將設備置于D1狀態。在本例中,此控制方法斷言MDM_D1信號,該信號告訴調制解調器控制器進入低功耗模式。然后,OSPM檢查調制解調器設備不再需要哪些電源資源。在這種情況下,不再需要PWR2。然后檢查確保系統中沒有其他設備需要使用PWR2電源資源。當不再需要PWR2電源平面時,OSPM使用與該電源資源相關聯的“_OFF”控制方式關閉PWR2電源平面。該控制方法向核心芯片組發送適當的命令,以停止斷言PWR2_EN線。
當設備處于較低的電源狀態時,OSPM并不總是關閉電源資源。例如,假設PWR1電源平面也為活動行打印機(LPT)端口供電。假設用戶終止了modem應用程序,導致COM端口關閉,從而導致modem關閉(狀態D3)。與往常一樣,OSPM通過modem的控制方式將設備切換到D3電源狀態,開始狀態轉換過程。控制方法導致MDM_D3行斷言。注意,這些寄存器可能不在設備本身中。例如,控制方法可以讀取控制MDM_D3的寄存器。現在,調制解調器控制器關閉了它的所有主要功能,因此它幾乎不需要從PWR1線供電,如果有的話。OSPM繼續檢查哪些電源資源不再需要。由于LPT端口仍處于活動狀態,PWR1被占用。OSPM不關閉PWR1資源。因為COM端口是關閉的,同樣的事件序列發生,使它處于D3狀態,但電源資源沒有關閉,由于LPT依賴。
集成調制解調器沒有電池;設備的電源狀態信息僅為modem的電源狀態。為了確定調制解調器當前的功率狀態(D0-D3), OSPM運行一個控制方法(_PSC),該方法在調制解調器的區分定義塊的條目中提供。這種控制方法從必要的寄存器中讀取數據以確定調制解調器的電源狀態。
如調制解調器功能所示,該調制解調器可以從任何設備電源狀態喚醒機器。在將系統置于Sleep或LPI狀態之前,操作系統會在應用程序請求能夠喚醒系統的任何設備上啟用喚醒。然后,它選擇深度睡眠或LPI狀態,該狀態仍然可以提供必要的電源資源,以允許所有啟用的喚醒設備喚醒系統。接下來,操作系統將這些設備置于適當的電源狀態。在本例中,操作系統將調制解調器置于D3狀態,因為它支持從該狀態喚醒。最后,操作系統將系統置于休眠或LPI狀態。
通過調制解調器喚醒系統開始時,調制解調器的電話接口在檢測到電話線上的鈴聲時斷言其鈴聲指示(RI)線。這一行被路由到核心邏輯以生成喚醒事件。芯片組然后喚醒系統,硬件最終將控制傳遞給操作系統(喚醒機制取決于睡眠狀態或LPI)。操作系統運行后,會將設備置于D0狀態,并開始處理modem的中斷,以處理該事件。
為了進一步節省“Working”狀態下的功耗,當操作系統空閑時,會將CPU設置為低功耗狀態(C1、C2、C3)。在這些低功耗狀態下,CPU不運行任何指令,并在中斷(如操作系統調度程序的計時器中斷)發生時喚醒。
操作系統通過讀取ACPI Power Management Timer來確定在空閑循環中花費了多少時間。這個計時器以已知的固定頻率運行,允許操作系統精確地確定空閑時間。根據這個空閑時間估計,當CPU進入空閑循環時,操作系統將把CPU放入不同質量的低功耗狀態(功耗和延遲不同)。
CPU狀態在處理器配置和控制中有詳細定義
介紹設備和處理器性能狀態的概念。設備和處理器性能狀態(Px狀態)是活動/執行狀態中的功耗和能力狀態,C0表示處理器,D0表示設備。性能狀態允許OSPM在性能和節能之間進行權衡。當設備和處理器性能狀態調用不同的設備和處理器效率級別時,相對于性能和能源消耗的線性擴展,設備和處理器性能狀態的影響最大。由于性能狀態轉換發生在活動/執行設備狀態中,因此必須小心確保性能狀態轉換不會對系統產生不利影響。
設備性能狀態的例子包括:
?硬盤驅動器提供的最大吞吐量級別對應的功耗級別。
?支持多個亮度級別的LCD面板,對應于不同的功耗級別。
?一個圖形組件,在2D和3D繪圖模式之間縮放性能,對應的功耗水平。
?一個音頻子系統,提供多個級別的最大音量,對應于最大功耗級別。
?Direct-RDRAMTM控制器,通過調整最大帶寬節流,提供多個級別的內存吞吐量性能,對應于多個級別的功耗。
處理器性能狀態在處理器配置和控制中描述
除了電源管理之外,ACPI接口還提供控制和信息,使OSPM能夠配置主板設備所需的資源以及它們的動態插入和移除。ACPI定義塊,包括區別系統描述表(DSDT)和輔助系統描述表(SSDTs),以稱為ACPI命名空間的分層格式描述主板設備。操作系統通過讀取ACPI命名空間來查找具有硬件id的設備來枚舉主板設備。
ACPI枚舉的每個設備包括ACPI命名空間中ACPI定義的對象,這些對象報告設備可能占用的硬件資源,一個對象報告設備當前使用的資源,以及用于配置這些資源的對象。這些信息將被OSPM (Plug and Play OS)用來配置設備。
注意:當準備引導系統時,平臺引導固件只需要配置引導設備。這包括ACPI系統描述表中描述的引導設備,以及通過其他標準控制的設備。
回到上面的調制解調器設備示例,當操作系統在DSDT中找到調制解調器時,將為它加載驅動程序。這個表將有控制方法,給操作系統以下信息:
?設備可以使用IRQ 3, I/O 3F8-3FF或IRQ 4, I/O 2E8-2EF
?設備目前使用irq3, I/O 3F8-3FF
操作系統通過即插即用算法配置調制解調器的硬件資源。它選擇一個不與任何其他設備沖突的受支持配置。然后,OSPM通過差異化定義塊中的調制解調器部分提供的控制方法來配置設備。這種控制方法將寫入任何I/O端口或配置設備到給定資源所需的內存地址。
采用非統一內存訪問(Non Uniform Memory Access, NUMA)體系結構的系統包含硬件資源集合,包括處理器、內存和I/O總線,這些硬件資源組成了通常所說的“NUMA節點”。處理器訪問本地NUMA節點內的內存或I/O資源通常要比處理器訪問本地NUMA節點外的內存或I/O資源快。ACPI定義了一些接口,這些接口允許平臺在引導時靜態地和在運行時從系統中添加或刪除資源時動態地將NUMA節點拓撲信息傳遞給OSPM。
ACPI包括一個通用事件模型,用于即插即用、熱和電源管理事件。有兩個寄存器組成事件模型:一個事件狀態寄存器和一個事件啟用寄存器。
當事件發生時,核心邏輯在狀態寄存器中設置一個位來指示事件。如果在使能寄存器中設置了相應的位,核心邏輯將斷言SCI來通知操作系統。當操作系統接收到這個中斷時,它將運行與事件狀態寄存器中設置的任意位相對應的控制方法。這些控制方法使用AML命令告訴操作系統發生了什么事件。
例如,假設一臺機器的所有即插即用、熱和電源管理事件都連接到核心邏輯的同一個引腳上。事件狀態和事件啟用寄存器各只有一個位:對應于事件引腳的位。
當系統對接時,核心邏輯設置狀態位并發出SCI信號。操作系統看到設置的狀態位,運行該位的控制方法。控制方法檢查硬件并確定事件是停靠事件(例如)。然后,它向操作系統發出停靠事件已經發生的信號,并可以明確告訴操作系統新設備將出現在設備層次結構的哪個位置。
由于事件模型寄存器是一般化的,它們可以描述許多不同的平臺實現。上面的單引腳模型只是一個例子。另一種設計可能是將Plug and Play、Thermal和Power Management事件連接到三個不同的引腳,這樣就會有三個狀態位(和三個啟用位)。然而,另一種設計可能將每個多帶帶的事件連接到它自己的引腳和狀態位。這種設計,與單引腳設計相反,允許非常復雜的硬件,但非常簡單的控制方法。連接事件的無數變化是可能的。但是,請注意,必須注意確保如果事件共享一個信號,則可以在相應的事件處理控制方法中確定生成該信號的事件,從而允許發送適當的設備通知。
電池管理策略從APM BIOS轉移到acpi兼容的操作系統。電池必須符合其相關接口的要求,如本文或其他適用標準所述。操作系統可以選擇改變電池的行為,例如,通過調整低電池或電池警告跳閘點。當存在多個電池時,電池子系統不需要從多帶帶電池的數據中進行任何“復合電池”的合成。在電池子系統不能從獨立電池的數據合成“復合電池”的情況下,操作系統必須提供這種合成。
acpi兼容的電池設備需要智能電池子系統接口或控制方法電池接口。
?智能電池由操作系統直接通過嵌入式控制器(EC)控制。更多信息請參見10.1和12.9節。
?控制方法電池完全通過AML代碼控制方法訪問,允許OEM選擇任何類型的電池和ACPI支持的任何類型的通信接口。有關更多信息,請參閱第10.2節。
本節介紹所有電池類型的通用概念。
Smart Battery和Control Method Battery接口都為操作系統提供了查詢平臺電池系統信息的機制。這些信息可能包括充滿電容量、當前電池容量、放電速率和電池狀況的其他測量方法。所有電池系統類型必須向操作系統提供通知,當有一個變化,如插入或移除電池,或當電池開始或停止放電。智能電池和一些控制方法電池也可以根據容量的變化發出通知。智能電池提供額外的信息,如估計的運行時間,電池能夠提供多少電能的信息,以及在預定的消耗速率下的運行時間。
每個電池必須報告其設計容量,最新充滿電的容量,和目前的剩余容量。剩余容量在使用期間會減少,而且它還會根據環境而變化。因此,操作系統必須使用最新充滿電的容量來計算電池的百分比。此外,電池系統必須報告警告和低電池水平,用戶必須得到通知,系統過渡到睡眠狀態。這五個值的關系如圖3.3所示。
一個系統可以使用速率和容量[mA/mAh]或功率和能量[mW/mWh]作為電池信息計算和報告的單位。系統中不允許混合[mA]和[mW]。
????Fig. 3.3: Reporting Battery Capacity
在最基本的級別,操作系統計算剩余電池百分比[%]使用以下公式:
????????????????????????????????????????????????Fig. 3.4: Formula for Remaining Battery Percentage
Control Method Battery還報告了當前漏電流率[mA或mW],用于計算剩余電池壽命。在最基本的水平上,剩余電池壽命的計算公式如下:
Fig. 3.5: Formula for the Present Drain Rate
智能電池也報告當前的消耗率,但由于它們可以直接報告估計的運行時間,這個功能應該被使用,因為它可以更準確地說明具體到電池的變化。
系統具有原始設備制造商設計的初始容量,用于警告、低容量和臨界電池水平或標志。警告值和低值表示系統采取某些行動所需的能量或電池容量。臨界電池水平或標志用于指示系統中的電池完全耗盡。如下圖所示,OSPM可以根據oem設計的水平確定獨立的警告值和電池低容量值,但不能將這些值設置得低于oem設計的值。
Fig. 3.6: Low Battery and Warning
系統中的每個控制方法電池報告原始設備制造商設計的初始警告容量和原始設備制造商設計的初始低容量,以及當電池達到或低于其臨界能量水平時報告的標志。與控制方法電池不同,智能電池不一定針對特定的機器類型,因此oem設計的警告、低水平和臨界水平分別在智能電池表(SBST)中描述的智能電池表中報告。
下表描述了OEM應該如何設置這些值并由操作系統解釋。
Table 3.1: Low Battery Levels
Level | Description |
Warning | 當電池中的總可用能量(mWh)或容量(mAh)低于此水平時,操作系統將通過UI通知用戶。在遇到“低”電平之前,這個值應該允許幾分鐘的運行時間,以便用戶有時間完成任何重要的工作,更換電池,或找到電源插座將系統插入。 |
Low | 這個值是對系統轉換到任何支持睡眠狀態所需的能量或電池容量的估計。當系統檢測到總可用電池容量小于該值時,系統將切換到用戶定義的系統狀態(S1-S4)。在大多數情況下,這應該是S4,這樣即使電池最終完全耗盡,系統狀態也不會丟失。操作系統的設計應該考慮到多電池系統的用戶在嘗試更換或充電時可能會移除一個或多個電池。這可能導致剩余容量降至“低”水平以下,沒有足夠的電池容量讓操作系統安全過渡到睡眠狀態。因此,如果電池同時放電,則可能需要在兩個電池都達到這一水平時啟動該動作。 |
Critical | “臨界電池狀態”表示所有可用電池都已放電,似乎不能再為系統供電。當發生這種情況時,操作系統必須嘗試執行如下所述的緊急關機。 對于智能電池系統,這通常會發生在所有電池達到0容量時,但OEM可能會選擇在智能電池表中設置更大的值,以提供額外的安全裕度。 對于帶有多個電池的控制方法電池系統,每個電池都報告標記。如果系統中的任何電池處于臨界低狀態,并且仍在為系統提供電力(換句話說,電池正在放電),則認為系統處于臨界能量狀態。_BST控制方法要求僅當所有電池 文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。 轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/119627.html 相關文章
發表評論0條評論roadtogeek男|高級講師TA的文章閱讀更多
閱讀需要支付1元查看
|