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