TWI605332B - 使用唯cpu重設的支援先進組態與電力介面(acpi)休眠狀態的方法及裝置 - Google Patents

使用唯cpu重設的支援先進組態與電力介面(acpi)休眠狀態的方法及裝置 Download PDF

Info

Publication number
TWI605332B
TWI605332B TW102138263A TW102138263A TWI605332B TW I605332 B TWI605332 B TW I605332B TW 102138263 A TW102138263 A TW 102138263A TW 102138263 A TW102138263 A TW 102138263A TW I605332 B TWI605332 B TW I605332B
Authority
TW
Taiwan
Prior art keywords
cpu
sleep state
reset
computing device
sleep
Prior art date
Application number
TW102138263A
Other languages
English (en)
Other versions
TW201435567A (zh
Inventor
堤摩太 路易士
Original Assignee
系微股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 系微股份有限公司 filed Critical 系微股份有限公司
Publication of TW201435567A publication Critical patent/TW201435567A/zh
Application granted granted Critical
Publication of TWI605332B publication Critical patent/TWI605332B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3246Power saving characterised by the action undertaken by software initiated power-off
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Description

使用唯CPU重設的支援先進組態與電力介面(ACPI)休眠狀態的方法及裝置
本發明係有關一種使用唯CPU重設的支援先進組態與電力介面(ACPI)休眠狀態的方法及裝置,其所提供之韌體機制在計算裝置缺乏使改變發生的如系統管理模式(SMM)這樣的專用的工具,在休眠狀態轉換時仍可以由與計算裝置相容的ACPI的作業系統來獲得控制。
計算裝置以其中之韌體來初始化,該韌體提供了一個範圍的軟體服務,幫助作業系統(OS)的啟動,以及提供了一個較小的部份服務,其在作業系統啟動之後繼續使用。韌體係已寫入唯讀記憶體(ROM)模組之軟體,其包括但不限於ROM、PROM、EPROM、EEPROM、及快閃記憶體(以下統稱為“ROM”)的軟體。在其他服務中,韌體負責計算裝置的操作,直到啟動過程可以運行,其將計算裝置的作業系統載入記憶體中。一旦 載入後,作業系統負責計算裝置的正常操作,雖然為了安全起見,在作業系統載入後,可能需要由作業系統的控制過渡回到韌體。例如,韌體可以被用來提供關鍵錯誤修正,更新,解決問題之工作,如影響計算裝置的特定的睡眠狀態,也可提供額外的功能給計算裝置。當韌體之存取受到限制時,利用韌體而非OS來做些改變,因此,比起用作業系統來控制計算裝置,可以以更安全的方式來實現此改變。
計算裝置可能包含一個或多個被稱為中央處理單元(CPU)的元件。這些CPU可以具有正常的操作模式,和稱為系統管理模式(SMM)的附加的操作模式。當CPU在正常的操作模式下,它可以存取電腦所有的元件,除了某些SMM專用的記憶體區域外。相反地,當CPU操作於SMM時,它可以存取電腦所有的元件,包括分配給SMM專用的記憶體區域。利用多個稱為系統管理中斷(SMI)的事件的觸發,CPU可以直接從正常操作模式轉換到SMM。可存取的確切的觸發器與系統設計有所不同,但一旦SMI被觸發,主記憶體的執行會立即暫停,並開始執行SMM記憶體中的特定部份。
利用韌體來使計算裝置改變的一種傳統的技術是使用SMM。例如,計算平台可以如此被配置,以便當計算裝置之休眠暫存器被OS寫入時,作業系統過渡到休眠狀態而可使SMI發生。運行於SMM的韌體碼可以被寫入,以便在執行所請求的休眠轉移之前,可以進行特殊 的處理。功能等同於SMM的元件,如Advanced/Acorn RISC Machine(ARM)處理器的TrustZone也可以以這種方式來利用。在其他傳統的方法中,提供最後的休眠狀態轉換的部分作業系統,可以提供對提供函數的韌體專用的呼叫。然而,所有這些傳統技術在它們被使用之前,都需要計算平台支援使改變發生的專用工具,例如特定的韌體函數呼叫,SMM或操作的等效模式等。
本發明之實施例提供了韌體之機制,即使計算裝置缺乏使改變發生的如SMM這樣的專用的工具,在休眠狀態轉換時,可以由與計算裝置相容的先進組態與電力介面(ACPI)的作業系統來獲得控制。本發明之實施例報告了與計算裝置(其中作業系統用於休眠狀態之轉換)相容的先進組態與電力介面(ACPI)的代替休眠控制暫存器的唯CPU重設暫存器。CPU重設值用來代替休眠狀態物件中的休眠類型值,並寫入唯CPU重設暫存器(其代替休眠控制暫存器)中。CPU重設值之寫入,觸發唯CPU重設。操作於已知的CPU重設向量的韌體碼可以執行特定的處理,然後允許轉移到最初請求的休眠狀態。
在一個實施例中,可以在配備有中央處理單元(CPU)的計算裝置中提供支援ACPI休眠狀態的實施方法的電腦,其包括觸發用的計算裝置的唯CPU重設,其係計算裝置的作業系統決定進入特定的休眠狀態的結 果。唯CPU重設被觸發,用來代替立即進入特定的休眠狀態的計算裝置。該方法還執行依據被觸發的唯CPU重設的韌體碼。在韌體碼執行結束時,該方法可以使計算裝置進入特定的休眠狀態。
在另一個實施例中,配置有CPU和提供ACPI 休眠狀態支援的計算裝置,包括固定ACPI描述表(FADT)。該FADT集結有CPU重設暫存器的I/O位址,以代替休眠控制暫存器的I/O位址。計算裝置還包括差異化系統描述表(DSDT)集結了至少一個持有CPU重設值的睡眠狀態物件,當CPU重設值被寫入CPU重設暫存器時,將強制唯CPU重設。計算裝置還包括決定進入特定的休眠狀態的作業系統。唯CPU重設被觸發是決定進入特定的休眠狀態的結果,其代替立即進入休眠狀態的計算裝置。該計算裝置還包括依據被觸發的唯CPU重設而執行的韌體碼。
102‧‧‧作業系統控制計算裝置的操作
104‧‧‧產生為休眠狀態轉移的SMI
106‧‧‧韌體碼運轉於SMM中
108‧‧‧韌體碼完成到休眠狀態之轉移
202‧‧‧OS控制操作計算裝置
203‧‧‧所要之休眠狀態轉移?
204‧‧‧呼叫_PTS方法
206‧‧‧由FADT取得休眠控制暫存器位址
208‧‧‧由DSDT之休眠物件取得的休眠型態值
210‧‧‧將休眠值寫入休眠控制暫存器
212‧‧‧計算裝置轉移到新的休眠狀態
302‧‧‧OS控制操作計算裝置
303‧‧‧所要之休眠狀態轉移?
304‧‧‧呼叫改變的_PTS方法/儲存休眠狀態
306‧‧‧讀取改變的休眠控制暫存器位址及改變的休眠值
308‧‧‧觸發唯CPU重設
310‧‧‧執行在CPU重設向量的韌體碼
312‧‧‧於韌體碼執行結束時轉移到原來請求的休眠狀態
400‧‧‧計算裝置
402‧‧‧CPU
403‧‧‧ROM
404‧‧‧OS
406‧‧‧記憶體
408‧‧‧不變性儲存器
410‧‧‧儲存休眠狀態
420‧‧‧FADT表
422‧‧‧改變休眠控制暫存器
424‧‧‧CPU重設暫存器位址
430‧‧‧DSDT表
432‧‧‧改變_Sx物件0
434‧‧‧改變_Sx物件N
436‧‧‧改變_PTS方法
450‧‧‧韌體碼
被併入說明書中並構成本說明書的一部分的圖式,顯示本發明的一個或多個實施例,並與說明書一起用來幫助解釋本發明。在圖式中:第1圖(習知技術)顯示示例性傳統過程之執行的步驟程序,用來觸發系統管理中斷(SMI),以引發計算裝置中韌體對休眠狀態之轉移的執行。
第2圖(習知技術)顯示在ACPI共容的計算裝置中 作業系統在休眠狀態之間轉移的一般過程。
第3圖顯示本發明的一個示例性實施例的示例性的步驟程序,用來在不支援系統管理模式(SMM)的ACPI共容的計算裝置中,在休眠狀態轉移之前執行韌體。
第4圖顯示適合用於實施本發明的實施例的示例性環境。
將計算裝置從作業系統控制過渡到韌體控制的傳統機制,要依靠專門的硬體支援,如SMM之支援。例如,在某些系統中,晶片組可提供功能以產生在每個休眠狀態轉移的SMIs。第1圖(習知技術)顯示示例性傳統過程執行的步驟程序,用來觸發系統管理中斷(SMI),以引發韌體在休眠狀態之轉移的執行。該程序以計算裝置之作業系統開始,用來控制計算裝置之操作(步驟102)。然後,根據休眠狀態之間轉移的決定來產生SMI(步驟104)。例如,平台可以捕獲在休眠暫存器上,其係被OS寫入。許多晶片組提供了一種方法,當ACPI定義的休眠暫存器被寫入時不立即轉移到休眠狀態,取而代之是產生中斷。在這種情況下,則交由韌體碼來控制,來處理SMM中特定的SMI(步驟106)。韌體碼完成其程序之後,韌體碼可以完成到最初請求的休眠狀態的轉移(步驟108)。然而,這樣的過程需要SMM和被捕獲的暫存器二者。
本發明實施例在作業系統開始休眠狀態之轉移時,可使缺少如SMM支援的特殊的硬體支援的ACPI並容計算裝置將計算裝置的操作交付韌體。在休眠狀態轉移時,利用作業系統來重新制訂ACPI支援表,當需要轉移到特定的休眠狀態時,作業系統可以以無韌體參與的正常的方式來工作。
ACPI規範對裝置之配置和電源管理定義了一個標準,其可被計算裝置之作業系統(OS)來執行。作為其電源管理標準的一部分,ACPI規範定義了六個基本的系統電源狀態或“休眠狀態”,從S0(開)到S5(關)。這些休眠狀態描述了逐漸更大程度的能源節省和需要更長的時間使系統能為使用者所使用。例如,計算裝置在S3電源狀態時比在S1電源狀態時節省更多的能源,而系統在S5狀態比在S3電源狀態需要更多的時間來響應用戶的輸入命令。在ACPI共容的計算裝置中,利用將特定的“休眠值”寫入休眠暫存器中,作業系統可控制計算裝置在休眠狀態間之轉移。
ACPI規範所定義的6個休眠狀態是:
S0:開啟時(不休眠)
S1:S1休眠狀態是一種低醒覺的休眠狀態。在此狀態下,系統內容不會丟失(CPU或晶片組)且硬體保留所有的系統內容。
S2:S2休眠狀態是一種低醒覺的休眠狀態。這種狀態類似於S1的休眠狀態,除了CPU和系統的快取 記憶體的內容會丟失(OS負責維持快取記憶體和CPU的內容)。控制在喚醒事件發生後由處理器的重設向量來啟動。
S3:S3休眠狀態是一種低醒覺的休眠狀態,其中除了系統記憶體外所有系統的內容會失去。在這種狀態下,CPU,快取記憶體,及晶片組的內容會失去。硬體維持記憶體之內容並回復一些CPU和L2配置的內容。控制在喚醒事件發生後由處理器的重設向量來啟動。
S4:S4休眠狀態是由ACPI支援的最低的能源消耗,及最長的醒覺的休眠狀態。為了降低功率到最低,要使硬體平台關閉所有裝置的電源。平台的內容仍然保持。
S5:軟的關閉狀態。S5狀態類似於S4狀態,除了OS外不保存任何內容。系統處於軟的關閉狀態後,當它被喚醒時,需要一個完全的開機。軟體使用不同的狀態值來區分處於S5和S4狀態,允許在BIOS內初始開機操作,以便區分開機是否要從儲存的記憶體影像來喚醒。
在ACPI共容的計算裝置中,“休眠控制暫存器”是定義在固定ACPI描述表(FADT)的I/O暫存器。FADT是ACPI定義的表,其描述一些固定的硬體資源,包括休眠控制暫存器。ACPI規範定義了兩種不同類型的休眠控制暫存器:PM1控制器(第4.8.1節)和休眠控制器(第4.8.3.7節)。前者使用於當系統未被歸類為減少的硬體時(參閱HW_REDUCED_ACPI,表5-35),後者 使用於當系統被歸類為減少的硬體時。傳統地,為了觸發休眠狀態之轉移,作業系統檢查FADT定義的休眠控制暫存器的位址,並將與所希望的休眠狀態有關的休眠類型值寫入位址中。如將在下面進一步所解釋的,本發明的實施例改變FADT定義的休眠控制暫存器的位址。
該ACPI規範定義了不同的值,其應寫入到PM1控制器的SLP_TYP的域或休眠控制暫存器中,根據此休眠值,作業系統要轉移到此休眠狀態。作業系統從_SX ACPI物件取得這些值,其中x是所要的休眠狀態(以下稱為“休眠狀態物件”)。休眠狀態物件儲存在差異化系統描述表(DSDT)中。DSDT是ACPI定義的表,其中包含說明指令(稱為ACPI機器語言或AML),包括數據物件和方法。作業系統說明這些指令。有些方法在ACPI內有預先定義的意義。如將在下面進一步解釋的,本發明的實施例改變儲存在DSDT中之休眠狀態物件中的休眠類型的值。
儲存在DSDT中的方法之一是“準備休眠之方法”或_PTS的方法,其是ACPI定義的說明函數的呼叫,由作業系統喚醒,但由韌體提供。當作業系統準備做休眠狀態轉移,但在進行過程中任何別的事情之前,這種方法被呼叫。_PTS通常用來執行板面特定的工作,以準備特定的休眠狀態的硬體平台。如將在下面進一步解釋的,本發明的實施例改變儲存於DSDT中的_PTS方法。
第2圖(習知技術)顯示在ACPI共容的計算 裝置中的作業系統,在休眠狀態之間轉移的一般的過程。在正常操作時(步驟202),OS要決定計算裝置應在休眠狀態之間轉移(步驟203)。該決定之達成係用戶輸入的結果,例如,用戶按下電源按鈕,或者可以以編程方式產生,如OS注意到自上一次接收到的輸入的時間經過或其他的策略。轉移決定的結果,OS可呼叫儲存在DSDT表中準備休眠(_PTS)之方法(步驟204)。休眠控制暫存器位址可以被OS從FADT取得到(步驟206),而從DSDT中的休眠狀態物件可取得到休眠類型值,其對應於OS所要的休眠狀態(步驟208)。DSDT和FADT二者在系統啟動時,可能先前已經被從BIOS加載到主記憶體中。休眠類型值被作業系統寫入到休眠控制暫存器中(步驟210)。晶片組(或其他實現此暫存器的矽組件)檢測寫入到休眠控制暫存器的值並啟動計算裝置轉移到所要的新的休眠狀態(步驟212)。
與第2圖所描述的過程相對照之下,本發明的實施例可重新定向正常的休眠狀態轉換之程序,其係改變作業系統所利用的ACPI規範所定義的FADT和DSDT表。第3圖顯示本發明的一個示例性實施例之示例性的程序步驟,其用來在不支援SMM的ACPI共容的計算裝置中的休眠狀態轉移之前執行韌體。程序以控制計算裝置操作的作業系統來開始(步驟302),並來到休眠狀態之間進行轉移的決定(步驟303)。於此處呼叫_PTS方法,其將作業系統要轉移的休眠狀態記錄到不變性儲存器上(步 驟304)。不變性儲存器可包括任何存活於唯CPU重設的儲存器(下面會討論)。其可包括電池支援的SRAM(如PC結構的CMOS)或系統RAM,其將存活於唯CPU重設。改變的_PTS方法可由韌體提供。_PTS方法的第一個參數指示所要的睡眠狀態(0=S0,1=S1,...5=S5)。
本發明的實施例以FADT表中的唯CPU重設暫存器之位址代替休眠控制暫存器之位址。根據平台的配置,這可以是PM1控制暫存器或是休眠控制暫存器。如果需要的話,休眠狀態暫存器可被設定成相同於休眠控制暫存器的值。改變的休眠控制暫存器的典型值可能是0xcf9或0x92,其對應於熟知的PC結構的CPU重設暫存器的位址。同樣地,DSDT表中的休眠狀態物件被設定,其以CPU重設值來代替正常的休眠類型的值。被寫入到CPU重設暫存器的CPU重設值會導致唯CPU重設。唯CPU重設係重設的一種形式,其中CPU重設到它的隱含的電源打開的狀態,並於隱含的位址開始執行,但是系統中的其他裝置(PCI,核心邏輯等)不會重設。在唯CPU重設中,所有記憶體的內容被保存,且所有晶片組的設定保持不變。隱含的位址或CPU重設向量係眾所周知的位址。在許多實施例中,位於DSDT中的各別的休眠狀態物件的更改後的值對所有休眠狀態是相同的。此後,儲存於FADT的CPU重設暫存器將被稱為“改變的休眠控制暫存器”,而儲存於DSDT的CPU重設值將被稱為“改變的休眠類型的值”。如上文所述,FADT和DSDT在計算裝置的 操作開始時被加載到記憶體中。
在改變的_PTS方法的呼叫之後,作業系統試圖分別從FADT表及DSDT表中讀取休眠控制暫存器位址和休眠類型值。然而,由於休眠控制暫存器位址和休眠類型的值已經被改變的版本所替換,故作業系統在不知不覺中讀取了改變的休眠控制暫存器和改變的休眠類型值(步驟306)。作業系統由PM1a控制器,PM1b控制器,或FADT中的休眠控制域讀取改變的休眠控制暫存器位址。作業系統經由DSDT從韌體提供的適當的_SX物件讀取改變的休眠類型值。對於S1,物件是_S1。對於S3,物件是_S3,等等。當作業系統完成其處理,並將改變的休眠類型值寫入改變的休眠控制暫存器(即CPU重設值被寫入CPU重設暫存器)時,根據改變的休眠控制暫存器的確切性質,作業系統可能會繼續進行將SLP_EN位元寫入相同的暫存器中。藉由將CPU重設值寫入CPU重設暫存器,唯CPU重設可被觸發(步驟308)。在本發明的實施例中,操作於CPU重設向量的韌體碼可以被執行(步驟310)。
在CPU開始執行CPU重設向量之後,韌體碼立即執行CPU重設向量。此代碼可以在正常的重設,電源打開事件或唯CPU重設時執行。韌體碼可以由本發明的實施例所產生的休眠狀態之轉換來區分正常的重設狀態。區分重設狀態的一個方法是檢查不變性儲存器的位置,查看它是否包含有特別標誌或非隱含值。此步驟以這 樣的方式進行,使得所描述的執行路徑是唯一的。例如,_PTS方法也可寫入特別的標誌,然後因韌體碼之執行而被清除。應了解到,其他可能的方法可用於檢測如此處所述的作業系統的休眠狀態之轉移,它們也是屬於本發明的範圍。如果韌體碼決定CPU重設是正常的重設狀態且因此不是由本發明的休眠狀態的轉移所引起,韌體可繼續執行正常的開機過程。
另外,如果決定唯CPU重設是本發明的實施例所觸發的特殊的重設,韌體碼可決定是否有任何特殊的工作要執行這種類型的休眠狀態之轉移。例如,根據那一個休眠狀態已經被指定而來執行特殊的行為,像已知電源管理錯誤的工作,或是特殊的功能,如診斷。在指定的休眠狀態的韌體碼執行結束時,韌體碼可以使系統轉移到原來所要的休眠狀態,其係藉由將實際的休眠類型值(從不變性儲存器取得)寫入實際的休眠控制暫存器,然後設定休眠控制暫存器中的SLP_EN位元來開始轉移(步驟312)。在其他情況下,平台硬體不需要實際地支援所請求的休眠狀態。相反地,所有需要的是有序地轉移到執行某工作的韌體。在這種情況下,在恢復過程中,韌體執行其所需的活動,然後繼續以正常的過程返回到OS。
應了解到,本發明的實施例將不支援休眠狀態轉移到S1休眠狀態。不支援休眠狀態轉移到S1休眠狀態之理由是,與轉移到S2-S5休眠狀態不一樣,轉移到S1休眠狀態被設計保留在作業系統裡面。因為本發明的 實施例需要唯CPU重設,且沒有方法“返回”到作業系統被寫入暫存器的位置,故S1不能被支援。
還應進一步注意到,如果這些暫存器的打開取決於PCI之重設或電源之開啟信號,在執行正常的S3/S4/S5休眠狀態轉移時,可用的硬體資源可以不被打開,或者,在被本發明的實施例所控制的轉移發生時,可被取消。例如,一些快閃儲存裝置可以被鎖住,所以他們的配置不能被更新,直到下一次的PCI重設。在唯CPU重設被執行的本發明的實施例中,這些裝置不會被打開。同樣地,已被鎖住的記憶控制器的暫存器不會被唯CPU重設打開。
第4圖顯示適合用於實施本發明實施例的示例性環境。示例性計算裝置400配備有CPU 402、ROM 403、作業系統(OS)404、記憶體406、如隨機存取記憶體(RAM)、和不變性儲存器408,如硬碟驅動器、快閃記憶體ROM、CMOS或其它不變性儲存位置。所述計算裝置400可以是一個平板的計算裝置、行動電話、智慧型手機、PDA、膝上型電腦、筆記型電腦、桌上型電腦、行動計算裝置、或其他計算裝置等。計算裝置400包括負責裝置之初始化和最初將作業系統404加載到記憶體的韌體碼450。韌體碼450也包括被配置用來執行上面所述的CPU重設向量的韌體碼。計算裝置400另外還包括FADT表420,其持有與CPU重設暫存器424之位址在一起的改變的休眠控制暫存器422。DSDT表430包括改變的休眠 狀態物件_Sx0…._SxN,它們持有對應於CPU重設值的改變的休眠類型值。DSDT表430也可持有改變的_PTS方法436,其可儲存不變性儲存器408中的OS所指定的休眠狀態410,其係以上面所述之方式依據OS決定的休眠狀態之轉移來執行。
本發明實施例的部分或全部,也可以被設置為一個或多個電腦可讀的程式,或可具體化的代碼,或體現於一個或多個非暫態媒體。媒體可以是,但不限定於,硬碟、光碟CD、數位通用光碟、ROM、PROM、EPROM、EEPROM、快閃記憶體、RAM、或是磁帶等。在一般情況下,電腦可讀程式或代碼可以以任何電腦語言來實現。
因為在不脫離本發明的範圍的情況下本發明可以做一些變化,故上面所述及圖式所示的所有內容要被解釋為是說明性的,且不是字面上的意義而已。本領域的從業者應體認到,顯示於圖式中的結構及步驟的程序可被改變而不脫離本發明的範圍,且本文中所含的說明只是本發明的眾多可能的描述中的特別的例子而已。
本發明的示例性實施例的以上的描述提供了說明和描述,但並非用來做全面的描述,或是將本發明限制為所揭露的精確形式。根據上述之教導,或者可以從本發明的實踐中獲得,修改和變化是可能的。例如,雖然已經描述了一系列的行為,但在符合本發明原理的其他實施方式下,可修改這些行為之順序。另外,非從屬的行為可 並行地被實現。

Claims (19)

  1. 一種電腦實施的方法,用來在配備有一中央處理單元(CPU)的一計算裝置中提供支援先進組態與電力介面(ACPI)的休眠狀態,包括:觸發該計算裝置的一唯CPU重設,其係該計算裝置的一作業系統決定進入一特定的休眠狀態的結果,被該計算裝置所觸發的該唯CPU重設取代了立即進入該特定的休眠狀態的該計算裝置,該唯CPU重設使用一CPU重設暫存器之一I/O位址,一ACPI定義的表集結了該CPU重設暫存器之I/O位址而取代了一休眠控制暫存器之一I/O位址;依據被觸發的該唯CPU重設來執行一韌體碼;及在該韌體碼執行結束時,進入該特定的休眠狀態。
  2. 如申請專利範圍第1項的方法,其中,該ACPI定義的表是一固定ACPI描述表(FADT)。
  3. 如申請專利範圍第1項的方法,其還包括:將至少一持有一CPU重設值之休眠狀態物件集結於一差異化系統描述表(DSDT),當該CPU重設值被寫入該CPU重設暫存器時強制該唯CPU重設。
  4. 如申請專利範圍第1項的方法,其還包括:該作業系統依據該決定來喚起DSDT所持有的一準備休眠之方法,該準備休眠之方法將該特定的休眠狀態儲存於一不變性記憶體中。
  5. 如申請專利範圍第1項的方法,其中,該韌體碼 在該計算裝置之每一唯CPU重設上執行一CPU重設向量。
  6. 如申請專利範圍第5項的方法,其中該韌體碼區別由該作業系統所嘗試的休眠狀態轉移所產生的唯CPU重設及其他類型的CPU重設。
  7. 如申請專利範圍第1項的方法,其中,該特定的休眠狀態之進入還包括:該韌體碼將對應於該特定的休眠狀態的一休眠狀態值寫入該休眠控制暫存器中並將一SLP_EN位元設定於該休眠控制暫存器來開始該特定的休眠狀態之轉移。
  8. 一種持有電腦可執行指令的非暫態媒體,用於在配備有一中央處理單元(CPU)之一計算裝置中提供支援先進組態與電力介面(ACPI)的休眠狀態,當該指令被執行時導致該計算裝置:觸發該計算裝置的一唯CPU重設,其係該計算裝置的一作業系統決定進入一特定的睡眠狀態的結果,被該計算裝置所觸發的該唯CPU重設取代了立即進入該特定的睡眠狀態的該計算裝置,該唯CPU重設使用一CPU重設暫存器之一I/O位址,一ACPI定義的表集結了該CPU重設暫存器之I/O位址而取代了一休眠控制暫存器之一I/O位址;依據被觸發的該唯CPU重設來執行一韌體碼;及於該韌體碼執行結束時,進入該特定的休眠狀態。
  9. 如申請專利範圍第8項之媒體,其中,該ACPI定 義的表是一固定ACPI描述表(FADT)。
  10. 如申請專利範圍第8項之媒體,其中,將至少一持有一CPU重設值的休眠狀態物件集結於一差異化系統描述表(DSDT),當該CPU重設值被寫入該CPU重設暫存器時強制該唯CPU重設。
  11. 如申請專利範圍第8項之媒體,其中,該作業系統依據進入該特定的休眠狀態的決定來喚起DSDT所持有的一準備休眠之方法,該準備休眠之方法將該特定的休眠狀態儲存於一不變性記憶體中。
  12. 如申請專利範圍第8項之媒體,其中,該韌體碼在該計算裝置之每一唯CPU重設上執行一CPU重設向量。
  13. 如申請專利範圍第12項之媒體,其中,該韌體碼區別由該作業系統所嘗試的休眠狀態轉移所產生的唯CPU重設及其他類型的CPU重設。
  14. 如申請專利範圍第8項之媒體,其中,執行該指令在該韌體碼執行結束時,更導致該計算裝置:將對應於該特定的休眠狀態的一休眠狀態值寫入該休眠控制暫存器中,並將一SLP_EN位元設定於該休眠控制暫存器內來開始該特定的休眠狀態的轉移。
  15. 一種配備有一中央處理單元(CPU)並提供支援先進組態與電力介面(ACPI)休眠狀態的計算裝置,其包括:一位於該計算裝置中的固定ACPI描述表(FADT), 其集結了一CPU重設暫存器的一I/O位址而取代了一休眠控制暫存器的一I/O位址;一差異化系統描述表(DSDT),其集結了至少一持有一CPU重設值的休眠狀態物件,當該CPU重設值被寫入CPU重設暫存器時,將強制一唯CPU重設;一位於該計算裝置的作業系統,該作業系統決定進入一特定的休眠狀態,一唯CPU重設被觸發係決定進入該特定的睡眠狀態之結果並取代了立即進入該特定的休眠狀態的該計算裝置;及韌體碼,其依據被觸發的該唯CPU重設來執行。
  16. 如申請專利範圍第15項之計算裝置,其中,在該韌體碼執行結束時進入該特定的休眠狀態。
  17. 如申請專利範圍第16項之計算裝置,其中,在該DSDT中之一準備休眠的方法係由該作業系統呼叫,且在觸發該唯CPU重設之前將該特定的休眠狀態儲存在一不變性記憶體中。
  18. 如申請專利範圍第15項之計算裝置,其中,該韌體碼區別由該作業系統所嘗試的休眠狀態轉移所產生的唯CPU重設或其他類型的CPU重設。
  19. 如申請專利範圍第15項之計算裝置,其中,在該韌體碼執行結束時,對應於該特定的休眠狀態的一休眠狀態值被寫入休眠控制暫存器中,且一SLP_EN位元被設定於該休眠控制暫存器內,用來開始該特定的休眠狀態的轉移。
TW102138263A 2012-10-24 2013-10-23 使用唯cpu重設的支援先進組態與電力介面(acpi)休眠狀態的方法及裝置 TWI605332B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/659,353 US9207747B2 (en) 2012-10-24 2012-10-24 Method and device for advanced configuration and power interface (ACPI) sleep-state support using CPU-only reset

Publications (2)

Publication Number Publication Date
TW201435567A TW201435567A (zh) 2014-09-16
TWI605332B true TWI605332B (zh) 2017-11-11

Family

ID=50486475

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102138263A TWI605332B (zh) 2012-10-24 2013-10-23 使用唯cpu重設的支援先進組態與電力介面(acpi)休眠狀態的方法及裝置

Country Status (3)

Country Link
US (1) US9207747B2 (zh)
TW (1) TWI605332B (zh)
WO (1) WO2014066478A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619242B2 (en) * 2014-12-23 2017-04-11 Intel Corporation Methods, systems and apparatus to initialize a platform
JP6180450B2 (ja) * 2015-02-02 2017-08-16 キヤノン株式会社 制御装置、制御装置の制御方法及びプログラム
US10833707B2 (en) 2019-02-12 2020-11-10 International Business Machines Corporation Error trapping in memory structures

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998044405A1 (en) * 1997-03-31 1998-10-08 Intel Corporation Automatic transitioning between acpi c3 and c2 states
US6360327B1 (en) * 1999-03-12 2002-03-19 Compaq Information Technologies Group, L.P. System with control registers for managing computer legacy peripheral devices using an advanced configuration power interface software power management system
JP3264272B2 (ja) * 1999-09-16 2002-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ及びコンピュータの電源制御方法
US6633987B2 (en) * 2000-03-24 2003-10-14 Intel Corporation Method and apparatus to implement the ACPI(advanced configuration and power interface) C3 state in a RDRAM based system
US8245055B2 (en) * 2002-12-31 2012-08-14 Intel Corporation Method for firmware control invocation from power management
JP4748057B2 (ja) * 2006-12-28 2011-08-17 ソニー株式会社 情報処理装置、起動方法、およびプログラム
US20090172639A1 (en) * 2007-12-27 2009-07-02 Mahesh Natu Firmware integrity verification

Also Published As

Publication number Publication date
TW201435567A (zh) 2014-09-16
US20140115364A1 (en) 2014-04-24
US9207747B2 (en) 2015-12-08
WO2014066478A1 (en) 2014-05-01

Similar Documents

Publication Publication Date Title
TWI617914B (zh) 用以從睡眠狀態加速回復之專用啟動路徑
US7971081B2 (en) System and method for fast platform hibernate and resume
US6434696B1 (en) Method for quickly booting a computer system
US10387261B2 (en) System and method to capture stored data following system crash
EP2189901B1 (en) Method and system to enable fast platform restart
US9658863B2 (en) Information processing apparatus and control method therefor
TWI407300B (zh) 電源管理控制器與方法
US8082439B2 (en) Firmware modification in a computer system environment supporting operational state changes
JP2007206885A (ja) コンピュータシステム及びシステム起動方法
TW201525869A (zh) 用於雙作業系統記憶體切換的系統及方法
US8312256B2 (en) Display of a basic input/output system (BIOS) productivity display
US20190004818A1 (en) Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
JP2015507772A (ja) マルチコアプラットフォームにおける制約ブート法
KR20140082734A (ko) 부트 데이터 로드
TWI534707B (zh) 電腦系統及其開關機方法
KR20140083530A (ko) 하드웨어를 디버깅하는 부트 쉘을 포함하는 시스템온칩 및 이의 구동 방법
TWI605332B (zh) 使用唯cpu重設的支援先進組態與電力介面(acpi)休眠狀態的方法及裝置
TWI485623B (zh) 快速喚醒電腦系統方法與電腦系統
KR101212273B1 (ko) 가상화 기술 기반의 고속 부팅 장치 및 방법
US11314578B2 (en) Information handling system and method to detect and recover from spurious resets of PCIe devices
US20130179672A1 (en) Computer and quick booting method thereof
KR100994723B1 (ko) 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체
US10061597B2 (en) Computing device with first and second operating systems
US20150317181A1 (en) Operating system switching method
US9600423B2 (en) Periodic access of a hardware resource