主頁 > 移動端開發 > ACPI Specification 第三章 ACPI概念

ACPI Specification 第三章 ACPI概念

2021-09-09 12:53:43 移動端開發

目錄

第三章 ACPI 概念... 2

3.1系統電源管理... 3

3.2電源狀態... 3

3.2.1電源按鈕... 4

3.2.2平臺電源管理特點... 5

3.2.2.1移動電腦... 5

3.2.2.2臺式電腦... 5

3.2.2.3多處理器和服務器pc. 5

3.3設備電源管理... 6

3.3.1設備電源管理模式... 6

3.3.2電源管理標準... 7

3.3.3設備電源狀態... 7

3.3.4設備電源狀態定義... 7

3.4控制設備電源... 8

3.4.1獲取設備電源能力... 8

3.4.2設定設備上下電狀態... 8

3.4.3獲取設備電源狀態... 9

3.4.4喚醒系統... 9

3.4.5示例:Modem設備電源管理... 10

3.4.5.1獲取Modem能力... 11

3.4.5.2設定Modem電源狀態... 11

3.4.5.3獲取Modem電源狀態... 12

3.4.5.4喚醒系統... 12

3.5處理器電源管理... 12

3.6設備和處理器性能狀態... 13

3.7配置與即插即用... 13

3.7.1設備配置舉例:配置調制解調器... 13

3.7.2章NUMA節點... 14

3.8系統事件... 14

3.9電池管理... 14

3.9.1電池通信... 15

3.9.2電池容量... 15

3.9.3電池氣量表... 16

3.9.4電池電量不足... 16

3.9.4.1緊急關機... 17

3.9.5電池校準... 18

3.9.6限電... 18

3.10熱管理概念... 19

3.10.1主動式和被動式制冷模式... 20

3.10.2性能與節能... 20

3.10.3聲學(噪音) 20

3.10.4多個熱磁區... 20

3.11靈活的平臺架構支持... 20

3.11.1 Hardware-reduced ACPI 21

3.11.1.1基于中斷的喚醒事件... 21

3.11.2低功耗閑置... 21

3.11.2.1低功耗S0空閑Capable標志位... 21

3.11.3連接資源... 21

3.11.3.1支持的平臺上... 22

第三章 ACPI 概念

符合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定義的主動和被動冷卻介面來管理平臺的熱量,

3.1系統電源管理

在OSPM下,作業系統指導所有系統和設備的電源狀態轉換,利用用戶偏好和應用程式如何使用設備的知識,作業系統將設備置于或退出低功耗狀態,不使用的設備可以關閉,類似地,作業系統使用來自應用程式和用戶設定的資訊將整個系統置于低功耗狀態,作業系統使用ACPI控制硬體上電狀態的轉換,

3.2電源狀態

從用戶可見的層面來看,系統可以被認為處于以下圖表中的一種狀態:

這些狀態的詳細定義見章節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狀態,用戶通常通過撥動電腦的機械開關或拔掉電腦的插頭來將電腦置于“機械關閉”狀態,

3.2.1電源按鈕

在傳統系統中,電源按鈕通常會迫使機器進入“軟關閉”或“機械關閉”狀態,而在筆記本電腦上,則會迫使它進入某種睡眠狀態,沒有考慮用戶的政策(如用戶想讓機器“加油”在不到1秒與所有背景關系是當用戶把機器“關閉”),系統提醒功能(如系統被用作一個電話應答機或傳真機),或應用程式函式(例如保存用戶檔案),

在一個OSPM系統中,有兩個開關,一種是將系統轉換到機械關閉狀態,在一些司法管轄區(例如在一些歐洲國家),出于法律原因需要一種機制來阻止流動,另一個是“主”電源按鈕,這是在一些明顯的地方(例如,在筆記本電腦鍵盤旁邊),與傳統的開關按鈕不同,它所做的只是向系統發送一個請求,系統對該請求所做的操作取決于源自用戶首選項、用戶功能請求和應用程式資料的策略問題,

3.2.2平臺電源管理特點

3.2.2.1移動電腦

移動pc將繼續擁有強大的電源管理功能,使用OSPM/ACPI將允許增強的節能技術和更精細的用戶策略,

ACPI規范中移動PC電源管理的方面是熱管理(見第3.10節),

3.2.2.2臺式電腦

電源管理桌面將有兩種型別,盡管第一種型別將隨著時間的推移遷移到第二種型別,

普通的“綠色電腦”在這里,新的電器功能不是問題,這臺機器實際上只用于生產力計算,至少在最初階段,這樣的機器只需要很少的功能就可以應付過去,特別是,它們需要普通的ACPI計時器和控制元件,但不需要支持復雜的睡眠狀態,等等,然而,他們確實需要允許作業系統將盡可能多的設備/資源置于設備待機和設備關閉狀態,并且盡可能獨立(以最大的計算速度和最小的未使用設備上的功耗浪費),這類電腦還需要支持通過計時器從休眠狀態喚醒,因為這允許管理員在人們去上班之前強制開機,

家庭PC電腦正在進入家庭環境,在那里,它們被用于娛樂中心和執行任務,如接聽電話,家用電腦需要普通綠色電腦的所有功能,事實上,它具有筆記本電腦的所有ACPI電源功能,除了對接和蓋子事件(并且不需要任何遺留電源管理),請注意,家庭PC還有一個熱管理方面,因為家庭PC用戶希望系統盡可能安靜地運行,通常是在熱受限的環境中,

3.2.2.3多處理器和服務器pc

也許令人驚訝的是,服務器機器通常可以獲得最大的絕對功耗節省,為什么?因為他們擁有最大的硬體配置,因為當他們晚上離開的時候,讓人按下關機開關是不實際的,

白天模式在白天模式下,服務器是電源管理的,就像企業普通的綠色PC一樣,一直處于作業狀態,但盡可能將未使用的設備置于低功耗狀態,由于服務器可能非常大,并且有許多磁盤軸,因此電源管理可以節省大量資源,OSPM允許仔細地調整何時進行此操作,從而使其可行,

在夜間模式下,服務器看起來像家用電腦,它們盡可能地深度睡眠,并且仍然能夠在指定的延遲時間內喚醒并回答通過網路、電話鏈接等傳入的服務請求,例如,列印服務器可能會進入深度睡眠,直到它在凌晨3點收到列印任務,在這一點上,它可能會在30秒內醒來,列印任務,然后回到睡眠狀態,如果列印請求通過LAN發送,那么這個場景依賴于智能LAN配接器,該配接器可以喚醒系統以回應接收到的感興趣的資料包,

3.3設備電源管理

介紹acpi兼容的設備電源管理,介紹了ACPI設備電源狀態,控制和資訊ACPI-compatible作業系統需要執行設備電源管理進行了討論,之后操作設備使用從睡眠狀態喚醒計算機,并使用調制解調器ACPI-compatible設備管理的一個例子

3.3.1設備電源管理模式

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狀態與當前使能喚醒的所有設備的設備狀態和喚醒能力兼容,

3.3.2電源管理標準

為了管理系統中所有設備的功率,作業系統需要向設備發送命令的標準方法,這些標準定義了用于管理特定I/O互連上設備的電源的操作,以及設備可以放入的電源狀態,為每個I/O互連定義這些標準,創建了作業系統可以利用的電源管理支持的基線級別,獨立硬體供應商(IHVs)不必花費額外的時間撰寫軟體來管理其硬體的性能,因為只要遵守標準就可以獲得直接的作業系統支持,對于作業系統供應商,I/O互連標準允許電源管理代碼集中在驅動程式中的每個I/O互連,最后,I/O互連驅動的電源管理允許作業系統跟蹤給定I/O互連上所有設備的狀態,當所有設備處于給定狀態時(例如D3關閉),作業系統可以將整個I/O互連置于適合該狀態的電源模式中(例如D3關閉),

I/O互連級電源管理規范為許多總線撰寫,包括:

?一種總線標準

?串行總線

?卡總線

?usb

?ieee 1394

3.3.3設備電源狀態

為了統一術語并提供跨設備的一致行為,對設備的電源狀態使用標準定義,一般來說,這些狀態是根據以下標準定義的:

?功耗-設備使用多少功率,

?設備背景關系-多少設備的背景關系被硬體保留,

?設備驅動程式——設備驅動程式必須做什么來恢復設備完全打開,

?恢復延遲—設備恢復到完全打開需要多長時間,

更具體地說,每一類設備(例如調制解調器、網路配接器、硬碟等)的電源管理規范更精確地定義了該類的電源狀態和電源策略,有關一般設備電源狀態(D0-D3)的詳細描述,請參閱設備電源狀態,

3.3.4設備電源狀態定義

設備電源狀態定義是與設備無關的,但是總線上的設備類必須支持與電源相關的某些一致的特征集,例如,當呼叫特定于總線的機制將設備電源狀態設定為給定級別時,設備可能采取的操作和作業系統在設備處于該狀態時可以假定的特定行為將因設備型別而異,對于一個完全集成的設備電源管理系統,這些特定類別的電源特性也必須標準化:

設備功耗狀態特征每一類設備都有目標功耗級別、狀態更改延遲和背景關系丟失的標準定義,

最小設備功率能力每一類設備都有一個最小的標準功率能力集,

設備功能特性每一類設備都有一個標準定義,定義在每種電源狀態下可用的設備功能或特性的子集(例如,網卡可以接收,但不能傳輸;聲卡功能齊全,除了功率放大器關閉等),

設備喚醒特性每一類設備都有其喚醒策略的標準定義,

設備類電源管理規范為每一類設備定義了這些電源狀態特征,參見附錄A:設備類規范,

3.4控制設備電源

ACPI介面提供了管理設備電源所需的控制方法和資訊,OSPM利用這些介面來執行一些任務,比如確定設備的能力、執行設定設備電源狀態或獲取設備狀態的方法,以及使設備能夠喚醒機器,

?其他總線列舉主板上的一些設備,例如,通過標準PCI列舉機制報告PCI設備,這些設備的電源管理是通過它們自己的總線規范(在本例中是PCI)來處理的,主板上的其他設備均通過ACPI處理,具體來說,ACPI表列出了無法通過它們自己的總線規范報告的遺留設備、系統中每個總線的根,以及具有它們自己的總線規范沒有涵蓋的額外電源管理或配置選項的設備,

更多詳細資訊見第7節

3.4.1獲取設備電源能力

當作業系統在系統中列舉設備時,它獲取設備支持的電源管理特性的資訊,平臺引導韌體給作業系統的區別定義塊描述了ACPI處理的每個設備,包含如下資訊:

描述設備在支持的每種電源狀態下需要哪些電源資源(電源平面和時鐘源),例如,一個設備在D0狀態下可能需要一個高功率總線和一個時鐘,而在D2狀態下只需要一個低功率總線而不需要時鐘,

?設備喚醒機器所需的電源資源的描述(或沒有電源資源,表示設備不支持喚醒),作業系統可以使用這些資訊來推斷哪些設備和系統電源狀態可以支持喚醒,

?可選的控制方法,作業系統可以用來設定設備的電源狀態,獲取和設定資源,

除了描述ACPI處理的設備,該表還列出了電源面和時鐘源本身以及打開和關閉它們的控制方法,詳細資訊請參見第7節,

3.4.2設定設備上下電狀態

OSPM通過“Set Power State”操作將設備設定為四種電源狀態之一,

當設備處于較低的功率狀態時,它會將自己配置為盡可能少地從總線上取電,作業系統跟蹤總線上所有設備的狀態,并根據總線上當前設備的要求將總線置于最佳電源狀態,例如,如果總線上的所有設備都處于D3狀態,作業系統將向總線控制芯片發送一個命令,從總線上移除電源(因此將總線置于D3狀態),如果某一總線支持低功耗供電狀態,當所有設備都處于D1或D2狀態時,OS將總線置于低功耗供電狀態,無論設備處于何種電源狀態,作業系統必須能夠發出Set power state命令來恢復設備,

?設備不需要有電源就可以做到這一點,作業系統在向設備發送命令之前,必須先將設備上電,

OSPM還使用“設定電源狀態”操作啟用電源管理特性,如wake(在電源和性能管理中描述),

對于下電操作(從Dx過渡到更深的Dy), OSPM首先評估目標狀態(_PSx)的適當控制方法,然后關閉任何未使用的電源資源,請注意,這可能并不意味著實際上從設備上洗掉了電源,如果有其他主用設備共用電源,電源將保持打開狀態,在通電的情況下(從一些Dx轉換回較淺的D0), D0所需的電源資源首先被打開,然后控制方法(_PS0)被評估,

3.4.3獲取設備電源狀態

OSPM通過Get Power Status操作來確定當前的電源配置(狀態和特性),以及設備支持的任何電池的狀態,設備可以發出SCI信號,通知作業系統電源狀態的變化,例如,一個設備可以觸發一個中斷來通知作業系統電池已經達到低功率水平,

設備使用ACPI事件模型向OSPM發送電源狀態變化(例如電池狀態變化)的信號,平臺通過中斷(SCI或GPIO)向作業系統發送事件信號,中斷狀態位被設定為向作業系統指示事件,作業系統運行與該事件關聯的控制方法,這種控制方法向作業系統發出設備發生變化的信號,

ACPI支持兩種型別的電池:只報告基本電池狀態資訊的電池和支持智能電池系統實施者論壇“智能電池規格”的電池,對于只上報電池基本狀態資訊(如總容量、剩余容量等)的電池,作業系統通過電池描述表中的控制方式讀取,要讀取智能電池的狀態資訊,作業系統可以使用標準的智能電池驅動程式,通過適當的總線列舉器直接與智能電池介面,

3.4.4喚醒系統

喚醒操作使設備從休眠或低功耗空閑狀態喚醒系統,這個操作不能依賴于CPU,因為CPU不會執行指令,

作業系統確保設備和核心邏輯之間的任何橋梁處于最低功耗狀態,在這種狀態下它們仍然可以轉發尾流信號,當啟用了喚醒功能的設備決定喚醒系統時,它在總線上發送定義的信號,總線橋必須使用該總線的適當信號將此信號轉發到上游橋,因此,信號最終到達核心芯片集(例如,ACPI芯片集),該芯片集反過來喚醒系統,

在將系統置于睡眠電源狀態之前,作業系統根據應用程式請求確定需要哪些設備喚醒系統,然后以設備和總線特定的方式對這些設備啟用喚醒,

作業系統通過設定設備的SCI Enable位或揭示其喚醒中斷來啟用設備上的喚醒特性,該控制元件的位置在描述表中的設備條目中列出,只有啟用了喚醒功能的設備才能喚醒系統,作業系統跟蹤尾流設備支持的電源狀態,并保持系統處于一個尾流仍能喚醒系統的電源狀態(基于描述表中報告的能力),

當系統處于休眠或低功耗空閑狀態時,喚醒設備決定喚醒系統,它向核心邏輯發出信號,設定喚醒系統的設備對應的狀態位,核心邏輯恢復系統,在作業系統再次運行后,它通過運行一個控制方法(用于喚醒事件)或處理設備的ISR(用于喚醒中斷)來確定負責喚醒事件的設備,

?除了使用ACPI機制使特定設備喚醒系統外,ACPI平臺還必須能夠記錄并向OSPM報告喚醒源,當系統從某些狀態(如S4狀態)喚醒時,它可能以非acpi模式啟動,此時,重新進入ACPI模式時,可能會清除SCI狀態位,但是,平臺仍然必須嘗試記錄尾流源,以便以后由OSPM檢索,

?盡管上述描述解釋了設備如何喚醒系統,但請注意,在S0系統狀態下,設備也可以進入低功耗狀態,并且該設備可能在S0狀態下產生尾流信號,如下例所示,

3.4.5示例:Modem設備電源管理

為了說明這些電源管理方法在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區分描述塊中作為電源資源實作,這樣當電源平面順序關閉時,設備就會被隔離,

3.4.5.1獲取Modem能力

當作業系統通過讀取區別定義塊中的調制解調器條目來列舉調制解調器時,它決定了調制解調器的能力,在這種情況下,調制解調器的條目將報告:

設備支持D0、D1、D3:

?d0需要PWR1和PWR2作為電源,D1需要PWR1作為電源(D3隱含不需要電源)

?要喚醒系統,調制解調器不需要電源資源(意味著它可以從D0, D1, d3喚醒系統)

設定電源狀態和資源的控制方法

3.4.5.2設定Modem電源狀態

當作業系統運行時(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依賴,

3.4.5.3獲取Modem電源狀態

集成調制解調器沒有電池;設備的電源狀態資訊僅為modem的電源狀態,為了確定調制解調器當前的功率狀態(D0-D3), OSPM運行一個控制方法(_PSC),該方法在調制解調器的區分定義塊的條目中提供,這種控制方法從必要的暫存器中讀取資料以確定調制解調器的電源狀態,

3.4.5.4喚醒系統

如調制解調器功能所示,該調制解調器可以從任何設備電源狀態喚醒機器,在將系統置于Sleep或LPI狀態之前,作業系統會在應用程式請求能夠喚醒系統的任何設備上啟用喚醒,然后,它選擇深度睡眠或LPI狀態,該狀態仍然可以提供必要的電源資源,以允許所有啟用的喚醒設備喚醒系統,接下來,作業系統將這些設備置于適當的電源狀態,在本例中,作業系統將調制解調器置于D3狀態,因為它支持從該狀態喚醒,最后,作業系統將系統置于休眠或LPI狀態,

通過調制解調器喚醒系統開始時,調制解調器的電話介面在檢測到電話線上的鈴聲時斷言其鈴聲指示(RI)線,這一行被路由到核心邏輯以生成喚醒事件,芯片組然后喚醒系統,硬體最終將控制傳遞給作業系統(喚醒機制取決于睡眠狀態或LPI),作業系統運行后,會將設備置于D0狀態,并開始處理modem的中斷,以處理該事件,

3.5處理器電源管理

為了進一步節省“Working”狀態下的功耗,當作業系統空閑時,會將CPU設定為低功耗狀態(C1、C2、C3),在這些低功耗狀態下,CPU不運行任何指令,并在中斷(如作業系統調度程式的計時器中斷)發生時喚醒,

作業系統通過讀取ACPI Power Management Timer來確定在空閑回圈中花費了多少時間,這個計時器以已知的固定頻率運行,允許作業系統精確地確定空閑時間,根據這個空閑時間估計,當CPU進入空閑回圈時,作業系統將把CPU放入不同質量的低功耗狀態(功耗和延遲不同),

CPU狀態在處理器配置和控制中有詳細定義

3.6設備和處理器性能狀態

介紹設備和處理器性能狀態的概念,設備和處理器性能狀態(Px狀態)是活動/執行狀態中的功耗和能力狀態,C0表示處理器,D0表示設備,性能狀態允許OSPM在性能和節能之間進行權衡,當設備和處理器性能狀態呼叫不同的設備和處理器效率級別時,相對于性能和能源消耗的線性擴展,設備和處理器性能狀態的影響最大,由于性能狀態轉換發生在活動/執行設備狀態中,因此必須小心確保性能狀態轉換不會對系統產生不利影響,

設備性能狀態的例子包括:

?硬碟驅動器提供的最大吞吐量級別對應的功耗級別,

?支持多個亮度級別的LCD面板,對應于不同的功耗級別,

?一個圖形組件,在2D和3D繪圖模式之間縮放性能,對應的功耗水平,

?一個音頻子系統,提供多個級別的最大音量,對應于最大功耗級別,

?Direct-RDRAMTM控制器,通過調整最大帶寬節流,提供多個級別的記憶體吞吐量性能,對應于多個級別的功耗,

處理器性能狀態在處理器配置和控制中描述

3.7配置與即插即用

除了電源管理之外,ACPI介面還提供控制和資訊,使OSPM能夠配置主板設備所需的資源以及它們的動態插入和移除,ACPI定義塊,包括區別系統描述表(DSDT)和輔助系統描述表(SSDTs),以稱為ACPI命名空間的分層格式描述主板設備,作業系統通過讀取ACPI命名空間來查找具有硬體id的設備來列舉主板設備,

ACPI列舉的每個設備包括ACPI命名空間中ACPI定義的物件,這些物件報告設備可能占用的硬體資源,一個物件報告設備當前使用的資源,以及用于配置這些資源的物件,這些資訊將被OSPM (Plug and Play OS)用來配置設備,

注意:當準備引導系統時,平臺引導韌體只需要配置引導設備,這包括ACPI系統描述表中描述的引導設備,以及通過其他標準控制的設備,

3.7.1設備配置舉例:配置調制解調器

回到上面的調制解調器設備示例,當作業系統在DSDT中找到調制解調器時,將為它加載驅動程式,這個表將有控制方法,給作業系統以下資訊:

?設備可以使用IRQ 3, I/O 3F8-3FF或IRQ 4, I/O 2E8-2EF

?設備目前使用irq3, I/O 3F8-3FF

作業系統通過即插即用演算法配置調制解調器的硬體資源,它選擇一個不與任何其他設備沖突的受支持配置,然后,OSPM通過差異化定義塊中的調制解調器部分提供的控制方法來配置設備,這種控制方法將寫入任何I/O埠或配置設備到給定資源所需的記憶體地址,

3.7.2章NUMA節點

采用非統一記憶體訪問(Non Uniform Memory Access, NUMA)體系結構的系統包含硬體資源集合,包括處理器、記憶體和I/O總線,這些硬體資源組成了通常所說的“NUMA節點”,處理器訪問本地NUMA節點內的記憶體或I/O資源通常要比處理器訪問本地NUMA節點外的記憶體或I/O資源快,ACPI定義了一些介面,這些介面允許平臺在引導時靜態地和在運行時從系統中添加或洗掉資源時動態地將NUMA節點拓撲資訊傳遞給OSPM,

3.8系統事件

ACPI包括一個通用事件模型,用于即插即用、熱和電源管理事件,有兩個暫存器組成事件模型:一個事件狀態暫存器和一個事件啟用暫存器,

當事件發生時,核心邏輯在狀態暫存器中設定一個位來指示事件,如果在使能暫存器中設定了相應的位,核心邏輯將斷言SCI來通知作業系統,當作業系統接收到這個中斷時,它將運行與事件狀態暫存器中設定的任意位相對應的控制方法,這些控制方法使用AML命令告訴作業系統發生了什么事件,

例如,假設一臺機器的所有即插即用、熱和電源管理事件都連接到核心邏輯的同一個引腳上,事件狀態和事件啟用暫存器各只有一個位:對應于事件引腳的位,

當系統對接時,核心邏輯設定狀態位并發出SCI信號,作業系統看到設定的狀態位,運行該位的控制方法,控制方法檢查硬體并確定事件是停靠事件(例如),然后,它向作業系統發出停靠事件已經發生的信號,并可以明確告訴作業系統新設備將出現在設備層次結構的哪個位置,

由于事件模型暫存器是一般化的,它們可以描述許多不同的平臺實作,上面的單引腳模型只是一個例子,另一種設計可能是將Plug and Play、Thermal和Power Management事件連接到三個不同的引腳,這樣就會有三個狀態位(和三個啟用位),然而,另一種設計可能將每個單獨的事件連接到它自己的引腳和狀態位,這種設計,與單引腳設計相反,允許非常復雜的硬體,但非常簡單的控制方法,連接事件的無數變化是可能的,但是,請注意,必須注意確保如果事件共享一個信號,則可以在相應的事件處理控制方法中確定生成該信號的事件,從而允許發送適當的設備通知,

3.9電池管理

電池管理策略從APM BIOS轉移到acpi兼容的作業系統,電池必須符合其相關介面的要求,如本文或其他適用標準所述,作業系統可以選擇改變電池的行為,例如,通過調整低電池或電池警告跳閘點,當存在多個電池時,電池子系統不需要從單獨電池的資料中進行任何“復合電池”的合成,在電池子系統不能從獨立電池的資料合成“復合電池”的情況下,作業系統必須提供這種合成,

acpi兼容的電池設備需要智能電池子系統介面或控制方法電池介面,

?智能電池由作業系統直接通過嵌入式控制器(EC)控制,更多資訊請參見10.1和12.9節,

?控制方法電池完全通過AML代碼控制方法訪問,允許OEM選擇任何型別的電池和ACPI支持的任何型別的通信介面,有關更多資訊,請參閱第10.2節,

本節介紹所有電池型別的通用概念,

3.9.1電池通信

Smart Battery和Control Method Battery介面都為作業系統提供了查詢平臺電池系統資訊的機制,這些資訊可能包括充滿電容量、當前電池容量、放電速率和電池狀況的其他測量方法,所有電池系統型別必須向作業系統提供通知,當有一個變化,如插入或移除電池,或當電池開始或停止放電,智能電池和一些控制方法電池也可以根據容量的變化發出通知,智能電池提供額外的資訊,如估計的運行時間,電池能夠提供多少電能的資訊,以及在預定的消耗速率下的運行時間,

3.9.2電池容量

每個電池必須報告其設計容量,最新充滿電的容量,和目前的剩余容量,剩余容量在使用期間會減少,而且它還會根據環境而變化,因此,作業系統必須使用最新充滿電的容量來計算電池的百分比,此外,電池系統必須報告警告和低電池水平,用戶必須得到通知,系統過渡到睡眠狀態,這五個值的關系如圖3.3所示,

一個系統可以使用速率和容量[mA/mAh]或功率和能量[mW/mWh]作為電池資訊計算和報告的單位,系統中不允許混合[mA]和[mW],

Fig. 3.3: Reporting Battery Capacity

3.9.3電池電量計

在最基本的級別,作業系統計算剩余電池百分比[%]使用以下公式:

Fig. 3.4: Formula for Remaining Battery Percentage

Control Method Battery還報告了當前漏電流率[mA或mW],用于計算剩余電池壽命,在最基本的水平上,剩余電池壽命的計算公式如下:

Fig. 3.5: Formula for the Present Drain Rate

智能電池也報告當前的消耗率,但由于它們可以直接報告估計的運行時間,這個功能應該被使用,因為它可以更準確地說明具體到電池的變化,

3.9.4電池電量不足

系統具有原始設備制造商設計的初始容量,用于警告、低容量和臨界電池水平或標志,警告值和低值表示系統采取某些行動所需的能量或電池容量,臨界電池水平或標志用于指示系統中的電池完全耗盡,如下圖所示,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控制方法要求僅當所有電池都達到臨界狀態時才回傳放電電池的臨界標志;否則需要ACPI系統韌體來切換到非關鍵電池,

3.9.4.1緊急關機

運行到系統中所有電池都達到臨界狀態不是正常情況下應該遇到的情況,因為當電池電量不足時,系統應該進入睡眠狀態,在這種情況下,作業系統應該采取措施,盡量減少對系統完整性的任何損害,緊急關閉程式的設計應基于隨時可能斷電的假設,盡量減少不良影響,例如,如果硬碟處于休眠狀態,作業系統不應該試圖使其旋轉以寫入任何資料,因為如果寫入未完成,旋轉磁盤和試圖寫入資料可能會損壞檔案,即使磁盤旋轉起來,決定嘗試關閉之前保存甚至系統設定資料必須評估自恢復到先前的設定可能不如有潛在有害的腐敗的設定如果中途丟了寫操作,

3.9.5電池校準

許多電池的報告容量通常會隨著時間的推移而降低,為用戶提供更少的運行時間,然而,如果偶爾進行校準或調節回圈,許多電池系統都可以在舊電池上提供更可用的運行時間,用戶通常可以通過進入平臺引導韌體設定選單或運行OEM提供的自定義驅動程式和校準應用程式來執行校準周期,校準程序通常需要幾個小時,在此期間,筆記本電腦必須插上電源,理想情況下,控制這一點的應用程式應該盡可能地使用戶體驗良好,例如允許用戶安排系統在不使用時喚醒并執行校準,由于校準用戶體驗不需要因系統而異,因此由OSPM提供這項服務是有意義的,通過這種方式,OSPM可以為終端用戶提供共同的體驗,并消除oem開發定制電池校準軟體的需求,

為了使OSPM能夠進行通用電池校準,需要通用介面來控制這兩個基本校準功能,這些功能在Power Source and Power Meter Devices和_BST (Battery Status)中定義,首先,有一種方法可以檢測何時校準電池是有益的,其次,有一種方法來執行校準周期,這兩種功能都可以通過專用硬體實作,如電池控制器芯片、嵌入式控制器中的韌體、平臺韌體或OSPM,從這里開始,通過AML實作的任何函式,無論AML代碼是否依賴于硬體,都將被稱為“AML控制”,因為無論AML是否將控制傳遞給硬體,介面都是相同的,

需要校準時的檢測可以通過硬體或AML代碼實作,并通過_BMD方法報告,另外,_BMD方法可以簡單地報告校準前的周期數,并讓OS嘗試計數周期,由硬體或平臺韌體實作的計數器通常會更準確,因為電池可以在不運行作業系統的情況下使用,但在某些情況下,系統設計師可能會選擇簡化硬體或韌體實作,

當需要校準時,用戶已經安排了校準的發生,校準周期可以由AML控制或OSPM控制,OSPM只能實作一個非常簡單的演算法,因為它不了解電池系統的細節,它將簡單地放電電池,直到它停止放電,然后充電,直到它停止充電,當AC配接器不能通過_BMC進行控制時,系統下電后,會提示用戶拔出AC配接器重新掛載,如果校準周期由AML控制,OS將通過呼叫_BMC來啟動校準周期,這種方法要么將控制硬體,要么將控制校準周期本身,如果校準周期的控制完全在AML代碼中實作,平臺運行時韌體可以通過初始呼叫_BMC來啟動周期,設定一些狀態標志,然后退出,從而避免持續運行AML代碼,通過在電池事件處理程式(_Qxx、_Lxx或_Exx)中放置檢查這些狀態標志的代碼,可以實作對周期后面部分的控制,

該介面的控制方法的詳細資訊在控制方法電池中定義,

3.9.6限電

如果平臺支持電池充電限制功能,它必須:

1. 向OSPM宣傳所有已安裝電池的真實充電水平

2. 當電池充電限制處于激活狀態時,限制電池達到Full Charge Capacity

3. 設定_BST,電池狀態,當電池充電限制激活時,位元[3]

4. 確保_BST,電池狀態(0位和1位)反映電池真實的充放電狀態,spm必須識別以下設定:

Table 3.2: Battery Charge Limiting States

_BST.Battery

State.Bit[3]

_BST.Battery

State.Bit[0]

_BST.Battery

State.Bit[1]

Interpretation

Cleared

N/A

N/A

Battery Charge Limiting is disengaged

Set

Cleared

Cleared

Battery Charge Limiting is engaged, and the battery has reached the steady state, it will not be charged or discharged

Set

Cleared

Set

Battery Charge Limiting is engaged, and the battery has not reached the steady state

Set

Set

Cleared

Battery Charge Limiting is engaged, and the battery has not reached the steady state

3.10熱管理概念

ACPI允許作業系統在系統的熱管理中發揮作用,同時維護平臺在必要時強制執行冷卻操作的能力,在被動冷卻模式下,OSPM可以根據CPU上的應用程式負載以及系統的熱啟發來做出冷卻決策,在高溫緊急情況下,OSPM還可以優雅地關閉計算機,

ACPI的熱設計是基于所謂的熱區域,通常,整個PC是一個大的熱區,但OEM可以在必要時將系統劃分為幾個邏輯熱區,熱區域是一個移動PC圖的示例,它描述了一個帶有中央處理器作為熱耦合設備的單個熱區域,在這個例子中,整個筆記本被覆寫成一個大的熱區域,這款筆記本使用一個風扇進行主動冷卻,CPU進行被動冷卻,

Fig. 3.7: Thermal Zone

下面的部分是對計算機的熱控制和冷卻特性的概述,有關ACPI平臺上的熱實作示例,請參閱11.6節

3.10.1主動式和被動式制冷模式

ACPI定義了兩種冷卻模式,主動和被動:

被動冷卻系統以降低系統性能為代價,降低設備功耗,降低系統溫度,

主動散熱作業系統通過增加系統功耗(例如打開風扇)來降低系統溫度,

這兩種冷卻方式是相互負相關的,主動冷卻需要增加功率來減少系統內部的熱量,而被動冷卻則需要減少功率來降低溫度,這種關系的影響是,主動冷卻允許最大的系統性能,但它可能產生不希望的風扇噪音,而被動冷卻降低系統性能,但本質上是安靜的,

3.10.2性能與節能

一個健壯的OSPM實作為最終用戶提供了向OSPM傳遞性能或能源節約的優先級(或優先級級別)的方法,對于移動系統用戶來說,允許終端用戶選擇這一偏好是最關鍵的,因為在電池充電時最大化系統運行時間通常比實作最大系統性能更重要,

用戶對性能的偏好對應主動制冷模式,用戶對節能的偏好對應被動制冷模式,ACPI定義了一個介面來將冷卻模式傳遞給平臺,主動冷卻可以在最小的OSPM熱策略干預下進行,例如,平臺指示通過熱區引數跨越熱跳閘點需要開啟風扇,被動冷卻需要OSPM熱策略來操作降低性能的設備介面,以降低熱區溫度,

3.10.3聲學(噪音)

主動冷卻模式通常意味著風扇將被用來冷卻系統,風扇的聲音輸出不同,考慮到風扇的音量和周圍的噪音環境,風扇的噪音是非常不受歡迎的,在這種情況下,最終用戶對風扇噪聲的物理要求可能會超過對性能或節能的偏好,

用戶對風扇靜音的要求對應于被動冷卻模式,因此,用戶對風扇靜音的渴望也意味著對節能的偏好,

有關熱管理的更多資訊以及主動和被動冷卻平臺設定的例子,請參見第3.10節

3.10.4多個熱磁區

基本熱管理模型定義了一個熱區域,但為了在復雜系統中提供擴展的熱控制,ACPI指定了多個熱區域實作,在多熱區模型下,OSPM將獨立管理幾個熱耦合設備,并為每個熱耦合設備指定一個熱區,使用每個熱區可用的主動和/或被動冷卻方法,每個熱區可以有一個以上的被動和主動冷卻裝置,此外,每個區域可能有唯一或共享的冷卻資源,在多個熱區域配置中,如果一個區域達到臨界狀態,則OSPM必須關閉整個系統,

3.11靈活的平臺架構支持

ACPI定義了機制和模型來適應偏離傳統PC的平臺體系結構,ACPI提供了對平臺技術的支持,支持更低功耗、更低成本、更靈活的設計和更多樣化的設備,這種支持將在下面的章節中進行描述,并在后面的章節中進行詳細說明,

3.11.1 Hardware-reduced ACPI

ACPI提供了一個替代的平臺介面模型,它消除了不實作PC架構的平臺的ACPI硬體需求,在hardware -reduced ACPI模型中,去掉了第4章的Fixed硬體介面要求,改用Generic硬體介面,這提供了創新和區分低功耗硬體設計所需的靈活性,同時支持多個作業系統,

硬體減容ACPI有以下要求:

uefi韌體啟動介面(不支持Legacy BIOS)

?僅在ACPI模式下啟動(不支持ACPI Enable, ACPI Disable, SMI_CMD和Legacy模式)

?OSPM不能與其他異步運行環境(如UEFIRuntime服務、系統管理模式)共享硬體資源,(不支持全域鎖)

?不依賴作業系統的支持來維持跨處理器休眠狀態的快取一致性(不支持總線主加載和仲裁禁用)

?不支持gpe塊設備

不滿足上述要求的系統必須實作ACPI固定硬體介面,

3.11.1.1基于中斷的喚醒事件

在HW-reduced ACPI平臺上,喚醒是連接中斷的一個屬性,為喚醒處理器或整個平臺而設計的中斷被定義為具有喚醒能力,具有喚醒能力的中斷,在OSPM使能的情況下,當它們斷言時喚醒系統,

3.11.2低功耗閑置

平臺架構可能支持硬體電源管理模型,而不是傳統的ACPI Sleep/Resume模型,這些通常是在專有硬體中實作的,能夠提供低延遲、連接空閑,同時節省與ACPI Sleep狀態一樣多的能源,為了支持硬體實作的多樣性,ACPI為平臺提供了一種機制,以向OSPM表明這種功能是可用的,

3.11.2.1低功耗S0空閑Capable標志位

FADT中的這個標志告訴OSPM一個平臺是否具有高級的空閑電源能力,例如S0空閑能實作類似或優于S3的節省,通過這個標志,OSPM可以使系統保持在S0空閑狀態,以實作低延遲回應和連通性,而不是將系統過渡到無回應和連通性的休眠狀態,該標志支持多種平臺實作:傳統的Sleep/Resume系統、具有高級空閑電源的系統、兩者都不支持的系統,以及可以同時支持兩者的系統,這取決于安裝的作業系統的能力,

3.11.3連接資源

通用I/O (GPIO)和簡單外圍總線(SPB)控制器是硅解決方案中提供的硬體資源,以實作廣泛的系統設計的靈活配置,這些控制器可以為系統中的任意設備提供輸入、輸出、中斷和串行通信連接,其中一個連接的功能取決于所涉及的具體設備和平臺設計的需要,為了支持這些平臺技術,ACPI為靈活連接定義了一個通用抽象,

為了保持與現有軟體模型的兼容性,ACPI將這些連接抽象為硬體資源,

連接資源抽象反映了GPIO和SPB控制器的硬體功能,與其他資源一樣,這些連接在使用之前要進行分配和配置,利用平臺所描述的資源,OSPM從設備驅動程式抽象出底層配置,因此,驅動程式可以只針對設備的功能撰寫,并在該功能硬體上重用,而不管它是如何集成到給定系統中的,

連接資源抽象的關鍵方面是:

?gpio和SPB控制器被列舉為ACPI命名空間中的設備,

?定義gpio Connection和SPB Connection資源型別,

連接到GPIO或SPB控制器的命名空間設備使用資源模板宏添加連接資源到它們的資源方法(_CRS, _SRS等),

?gpio連接資源可以被平臺指定為使用gpio信號的ACPI事件,

?連接資源可以被AML方法用于通過GPIO和spb操作區域訪問引腳和外圍設備,

3.11.3.1支持的平臺上

HW-reduced ACPI和低功耗S0 Idle Capable標志組合起來表示可以實作的4種平臺型別, 下表列舉了這些,以及預期的OSPM行為和特定的平臺需求,

Table 3.3: Implementable Platform Types

Low Power

S0 Idle

Capable

Hardwarereduced ACPI

OSPM Behavior

Platform Implementation

0

0

固定硬體介面訪問功能,事件和系統電源管理,如果在ACPI FW中實作,可選訪問gpio信號的ACPI事件,傳統的睡眠/恢復電源管理,

實作固定特征硬體介面,可選地實作gpio信號的ACPI事件,

0

1

固定功能硬體介面未被訪問,使用FADT SLEEP_*_REG欄位和基于中斷的喚醒信令的睡眠/恢復電源管理,

實作gpio信號的ACPI事件; 實作任何ACPI固定功能的軟體替代方案,包括Sleep暫存器, 為喚醒事件實作具有喚醒能力的中斷,

1

0

實作gpio信號的ACPI事件; 實作任何ACPI固定功能的軟體替代方案,包括Sleep暫存器, 為喚醒事件實作具有喚醒能力的中斷,

實作gpio信號的ACPI事件; 實作任何ACPI固定功能的軟體替代方案,包括Sleep暫存器, 為喚醒事件實作具有喚醒能力的中斷,

1

1

實作gpio信號的ACPI事件; 實作任何ACPI固定功能的軟體替代方案,包括Sleep暫存器, 為喚醒事件實作具有喚醒能力的中斷,

實作gpio信號的ACPI事件; 實作任何ACPI固定功能的軟體替代方案,包括Sleep暫存器, 為喚醒事件實作具有喚醒能力的中斷,

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/298686.html

標籤:其他

上一篇:Android 深入了解 Window 、Activity、 View 三者關系

下一篇:Android The emulator process for AVD XXX has terminated.

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more