專利名稱::用于快速改變數(shù)據(jù)處理系統(tǒng)的功率狀態(tài)的方法和設(shè)備的制作方法用于快il^數(shù)據(jù)處理系統(tǒng)的功^態(tài)的方法^i更備絲領(lǐng)域^/>開-^殳涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及用于'fci將處理系統(tǒng)從睡眠狀態(tài)恢復(fù)的方法和相關(guān)設(shè)備。背景絲高細己置和電源接口(ACPI)是一開放的工業(yè)規(guī)范,它描述用于對處理系統(tǒng)例如膝上計^4幾,臺式才7l^服務(wù)器計算才Aii行配置和功率管理的工業(yè)-標(biāo)準(zhǔn)接口。日期為2004年9月2日的ACPI規(guī)范的^i丁版3.0可以從www.acpi.info/spec.html上獲得。ACPI少見范描述了各種睡目M夫態(tài)以及全局功率狀態(tài)。然而,本發(fā)明不限于符合ACPI的系統(tǒng),而是可有利地用于^f可適當(dāng)?shù)奶幚硐到y(tǒng)中。對4^Hf來說,處理系統(tǒng)可以處于四種功率狀態(tài)之一活動狀態(tài),加電的睡目M犬態(tài),不加電的睡眠狀態(tài)或斷開狀態(tài)。睡目M犬態(tài)也可以稱為睡目財莫式。在斷開狀態(tài),系統(tǒng)斷電,且系統(tǒng)不包括用于從早先的活動狀態(tài)'ltt處理的系統(tǒng)上下文。/人斷電狀態(tài)轉(zhuǎn)變(transition)到活動狀態(tài),啟動固件必須初始^^更件并啟動OS。在活動狀態(tài),系統(tǒng)分派并^Vf亍^^呈。通常,受可歸因于例如處理系統(tǒng)的有效負荷和性能限制等因素的延遲影響,系Mj^上實時響應(yīng)夕卜部^f牛。然而,系統(tǒng)的^ft性能和功率特性可以在活動狀態(tài)范圍內(nèi)動態(tài)地調(diào)整。例如,當(dāng)處理系統(tǒng)處于活動狀態(tài)時系統(tǒng)內(nèi)的*裝置的功率狀態(tài)可動態(tài)地改變?;顒訝顟B(tài)也可以稱為活動一莫式。對^^開來說,當(dāng)處理系統(tǒng)處于睡目W大態(tài)時,該處理系統(tǒng)不扭j亍用戶才莫式線程,而且與處于活動狀態(tài)相比系統(tǒng)消耗4交少功率。系統(tǒng)可能出現(xiàn)斷開狀態(tài),因為各種外圍設(shè)備或指示器(例如,顯示器,某些發(fā)it^及管(LED),等)可被斷電。在一些情況下,處理系統(tǒng)可以不消耗功率或在睡B眺態(tài)中基本上不消耗功率。特別地,當(dāng)處理系統(tǒng)處于加電睡B緣態(tài)時,向處理系統(tǒng)的隨^u4^ft器(RAM)提供功率,以便防止數(shù)據(jù)丟失。但是,可以不向處理器和/或其它組件(component)R供功率。相反,當(dāng)處理系統(tǒng)處于非加電睡眠狀態(tài)時,不向處理系統(tǒng)的RAM提供功率。因此,當(dāng)從活動狀態(tài)向非加電睡眠狀態(tài)轉(zhuǎn)變時,處理系統(tǒng)可以使用硬盤驅(qū)動器來保存與活動狀態(tài)中執(zhí)行的處理有關(guān)的數(shù)據(jù)(即,保存系統(tǒng)上下文)。對于本公開,非加電睡眠狀態(tài)也可以稱為休眠狀態(tài)或休目財莫式。通常,與從斷電狀態(tài)開始轉(zhuǎn)變相比,處理系統(tǒng)可以更十fet的從睡眠狀態(tài)轉(zhuǎn)變成活動狀態(tài)。例如,在一些實施例中,處理系統(tǒng)可以從睡眠狀態(tài)轉(zhuǎn)變到活動狀態(tài)而不必重新啟動才喿怍系統(tǒng)(OS)。恢:1A從睡眠狀態(tài)轉(zhuǎn)變到活動的狀態(tài)。通常處理系統(tǒng)可能花費60秒以上來'fel。例如,具有3.4千兆字節(jié)的隨一;t4ip^^諸器(RAM)的處理系統(tǒng)可負fe^花費大約150秒來從睡目財莫式轉(zhuǎn)變到活動模式。該時間的大部分可能用于將系統(tǒng)上下文/A^更盤驅(qū)動器恢復(fù)到RAM。隨著平均處理系統(tǒng)中的,器量的增加,恢復(fù)平均處理系統(tǒng)所需的時間*#尤可能也會增力口。如果一個人希望佳月處理系統(tǒng),對于這個A^說等待處理系統(tǒng)恢復(fù)通常既沒有趣,又沒有產(chǎn)能。本發(fā)明認識到,減少恢復(fù)處理系統(tǒng)所需的時間量是有利的。
發(fā)明內(nèi)容根據(jù)本發(fā)明的第一方面,提供了一種用于在數(shù)據(jù)處理系統(tǒng)中^^]閃存來才對^茲盤務(wù)賭器的方法,所述方法包4舌由數(shù)據(jù)處理系統(tǒng)的平臺軟件對數(shù)據(jù)處理系統(tǒng)的#^系統(tǒng)(OS)讀取所述數(shù)據(jù)處理系統(tǒng)的磁盤驅(qū)動器的存儲位置的嘗試進行拉截;響應(yīng)對OS讀取^茲盤驅(qū)動器的嘗試的攔截,自動地確定用于所述讀取的^f諸位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)^f呆留的磁盤區(qū)域;以及響應(yīng)確定所述存儲位置對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)據(jù)保留的所述磁盤區(qū)域,自動從數(shù)據(jù)處理系統(tǒng)的閃存而不是磁盤驅(qū)動器讀Wt據(jù),并且作為對OS讀取所述磁盤驅(qū)動器的嘗試的響應(yīng),將所述數(shù)據(jù)/A^斤述平臺軟件傳遞到所述OS。沖艮據(jù)本發(fā)明的第二方面,提供了一種數(shù)據(jù)處理系統(tǒng),包括處理器;對所艦理H^出響應(yīng)的隨才/u4^H^器(RAM);對所i^h理l^t出響應(yīng)的閃存;對所皿理||#出響應(yīng)的石茲盤驅(qū)動器;才辦系統(tǒng)(OS),從RAM執(zhí)行;以及平臺軟件,從RAM執(zhí)行,所述平臺軟件執(zhí)行的才辦包拾M所述OS讀取^f述磁盤驅(qū)動器的^^諸位置的嘗試;響應(yīng)對所述OS讀取所述磁盤驅(qū)動器的嘗試的攔截,自動地確定用于所述讀取的^#位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)寺刷呆留的磁盤區(qū)域;以及響應(yīng)確定所述^f諸位置對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)拾床留的所述磁盤區(qū)域,自動;4A^斤述閃存而不是所述磁盤驅(qū)動器讀取數(shù)據(jù),以及作為對所述OS讀取所述磁盤驅(qū)動器的嘗試的響應(yīng),將所述數(shù)據(jù)傳遞到所述OS。才艮據(jù)本發(fā)明的第三方面,提供了一種設(shè)備,包括機器可訪問介質(zhì);以及所述機器可訪問介質(zhì)中的平臺軟件,所述平臺軟件包括指令,所述指令在由具有磁盤驅(qū)動器和閃存的數(shù)據(jù)處理系統(tǒng)中的處理H^行時,進行的才辨包括對#辦系統(tǒng)(OS)讀取所述磁盤馬區(qū)動器的^t位置的嘗試進行^l;響應(yīng)對所述OS讀取所述磁盤驅(qū)動器的嘗試的攔截,自動地/角定用于所述讀取的^H諸位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)^f呆留的磁盤區(qū)域;以及響應(yīng)確定所述##位置對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)拾沐留的所述磁盤區(qū)域,自動地從所述閃存而不是所述磁盤驅(qū)動器讀取數(shù)據(jù),以及作為對所述OS讀取所述磁盤驅(qū)動器的嘗試的響應(yīng),將所述數(shù)據(jù)傳遞到所述OS。才財居本發(fā)明的第四方面,提供了一種數(shù)據(jù)處理系統(tǒng),包括處理器;對所皿理l^t出響應(yīng)的隨才;L4:^Ht器(ram);對所i^h理^ft出響應(yīng)的閃存;對所述處理器作出響應(yīng)的^茲盤驅(qū)動器;才辨系統(tǒng)(os),從ram執(zhí)4t;以及虛扣對幾監(jiān)控器(vmm),從ram才W亍,vmm才;M亍的操作包括管S^戶虛扣對幾(vm)來為所述os提供^ft環(huán)嫂;在將所述數(shù)據(jù)處理系統(tǒng)從非活動(inactive)才莫式轉(zhuǎn)變到活動才莫式的過程中,對所述os讀取所述磁盤驅(qū)動器的存儲位置的嘗試進行攔截;p向應(yīng)對所述os讀取所述》茲盤驅(qū)動器的嘗試的攔截,自動地確定用于所述讀取的^f諸位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)t別呆留的磁盤區(qū)域;以及響應(yīng)確定所述^#位置對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)才刷呆留的所述磁盤區(qū)域,自動^A;斤述閃存而不是所述磁盤驅(qū)動器讀取數(shù)據(jù),以及作為對所述os讀取所述磁盤驅(qū)動器的嘗試的響應(yīng),將所述數(shù)據(jù)傳遞到客戶vm中的所述os。根據(jù)所附的權(quán)利要求書、一個或多個示例實施例的以下詳細描述以及對應(yīng)的附圖,本發(fā)明的特^財口優(yōu)點將變得顯而易見,其中圖1^^匡圖,描述示例的數(shù)據(jù)處理環(huán)境;圖2描述了說明用于快速'fel數(shù)據(jù)處理系統(tǒng)的各種操作的示例時間線(timeline)。圖3是框圖,描述可用于支持處理系統(tǒng)的快速功率狀態(tài)轉(zhuǎn)變的^ft數(shù)據(jù)構(gòu)造;圖4、5和6是描述用于支持快速功率狀態(tài)4爭變的示例it禾呈的各個方面的流程圖7是描述具有備選的軟件配置的根據(jù)圖1的數(shù)據(jù)處理系統(tǒng)的框圖;圖8描述了說明在fct恢復(fù)數(shù)據(jù)處理系統(tǒng)的備選過程中的樹才辨的示例的時間線;圖9是描述具有另一備選的軟件配置的根據(jù)圖1的數(shù)據(jù)處理系統(tǒng)的框圖;以及圖10描述了說明在fet'fel數(shù)據(jù)處理系統(tǒng)的另一個備選過程中的^t才乘作的示例的時間線。圖1是描述示例的數(shù)據(jù)處理環(huán)境12的框圖。數(shù)據(jù)處理環(huán)凌12包括^i也數(shù)據(jù)處理系統(tǒng)20,該系統(tǒng)包括^t硬件組件80和軟件組件82。硬件組件可包括例如^it信上經(jīng)由一條或多條系統(tǒng)總線24或其它的通信^f至或介質(zhì)耦合到各種其它組件的一個或多個處理器或中央處理器(CPU)22。如本文所使用的,術(shù)語"總線"包括可以由兩個以上裝置共享的通信路徑,如點到點樹圣。CPU22可以包括兩個或更多處理單元,例如處理單元21和處理單元23。作為名^選的方案,處理系統(tǒng)可包括具有一個處理單元的CPU或多個處理器,M有至少一個處理單元。處理單元可^皮實現(xiàn)為處理核心,超線程(HT)技術(shù),或者用于同時或14Ui同時地執(zhí)行多個線程的任何其它合適的技術(shù)。如本文中^j]的,術(shù)語"處理系統(tǒng)"和"數(shù)據(jù)處理系統(tǒng)"旨在廣XJi包括單個機器,或者^it信J^給的機器或^^工作的裝置的系統(tǒng)。示例處理系統(tǒng)包括^^限于,分布式計算系統(tǒng),巨型計算機,高性能計算系統(tǒng),計算群集(computingcluster),大型計算機,微型計算機,客戶-服務(wù)器系統(tǒng),個人計算機(PC),工作站,服務(wù)器,便攜式計算機,膝上型計算機,平板電腦(tabletcomputer),個人數(shù)字助理(PDA),電話,手持裝置,娛樂裝置例如"tM和/或視頻裝置,以及其它用于處理或者發(fā)送信息的裝置。處理系統(tǒng)20可以至少部分iM過來自例如鍵盤、如鼠標(biāo)的指示設(shè)M的傳統(tǒng)輸入裝置的輸A^L控制。處理系統(tǒng)20也可以響應(yīng)從其它處理系統(tǒng)或者其它輸入源或信號接收的指4^(directive)。處理系統(tǒng)20可以利用對一個或多個遠程數(shù)據(jù)處理系統(tǒng)70的一個或多個連接,例如通過網(wǎng)絡(luò)接口控制器(NIC)32,調(diào)制解調(diào)器或者其它通信端口或i^器(coupling)。處理系統(tǒng)可經(jīng)由物理和/或邏輯網(wǎng)絡(luò)72,例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN),內(nèi)聯(lián)網(wǎng),因特網(wǎng),等相互連接。涉及網(wǎng)絡(luò)72的通4tT以利用各種有線的和/或無線的近程或者遠程的載^(carrier)和協(xié)議,包括射頻(RF),衛(wèi)星,微波。電氣和電子工程師學(xué)會(正EE)802.11,802.16,802.20,藍牙,光學(xué),紅外線,電纜,^Lit等。用于802.11的協(xié)議也可以稱為無線逼真度(WiFi)協(xié)議。用于802.16的協(xié)議也可以稱為WiMAX或者無線i勤或網(wǎng)協(xié)議。有關(guān)WiMAX協(xié)"i義的信息當(dāng)1tT在grouper.ieee.org/groups/802/16/published.html上得到。在處理系統(tǒng)20中,處理器22可在通信J^^^到一個或多個易失性數(shù)據(jù)賴裝置,例如隨一聘M儲器(R_AM)26,以及一個或多個非易失性數(shù)據(jù)^^者裝置。在該示例實施例中,非易失性數(shù)據(jù),裝置包括閃存27和硬盤驅(qū)動器28。在備選實施例中,多種非易失'^^ft裝置和/或多種;腫驅(qū)動器可用于非易失'^^^者器。適合的非易失'^^諸裝置和/或介質(zhì)可包括但不限于,電子集^m動器(IDE)和小型計算機系統(tǒng)接口(SCSI)硬盤驅(qū)動器,^儲器,磁帶,軟盤,只讀存儲器(ROM),記憶棒,數(shù)字^f見頻光盤(DVD),生物^fit器,聚^/^i者器等。如本文中^^的,術(shù)語"非易失l^fi者器"指磁盤驅(qū)動器,閃存,以及能在處理系統(tǒng)斷電時保持(retain)數(shù)悟的^f可其它的存儲組件。更^^地說,術(shù)語"非易失'^^#器"指不^^]旋轉(zhuǎn)介質(zhì)(rotatingmediay旦是仍能在處理器斷電時保持數(shù)據(jù)的,裝置(例如閃存)。術(shù)語"閃存"和"ROM"在本文中用于在廣義上指非易失性存儲裝置,例如可擦可編程序只讀務(wù)賭器(EPROM),電可擦可編程序只讀務(wù)賭器(EEPROM),閃存ROM等。處理器22也可^it信Ji^^到附加組件,例如NIC32,禍JM控制器,IDE控制器,SCSI控制器,通用串行總線(USB)控制器,輸A/輸出(I/O)端口,輸X^置(例如4紐,鼠標(biāo),相機等),輸出裝置(例如,顯示器)等。處理系統(tǒng)20也可以包括具有一個或多個橋接H(bridge)或集線器(hub)的芯片組34,例如控制器集線器,1/0控制器集線器,PCI才W(rootbridge)等,用于^it信J^給系鄉(xiāng)^i且件。如NIC32的某些組件,例如,可被實現(xiàn)為具有用于與總線通信的接口(例如PCI連接器)的適酉己器^i牛(adaptercard)。作為備選的方案,MC32和/或其它設(shè)備可以被實現(xiàn)為^/v式控制器,例如可編程或者不可編程邏輯器件或陣列,專用集成電路(ASIC),^AiC計^^幾,智能卡等組件。本文中參考或者結(jié)^H列如指令、功能、過程、數(shù)據(jù)結(jié)構(gòu)、應(yīng)用禾踏、配置i紋等數(shù)據(jù)來描ii^發(fā)明。當(dāng)所述數(shù)據(jù)被機器訪問時,機器可以通過執(zhí)行任務(wù)、定義抽象數(shù)據(jù)類型或者底層的硬件上下文和/或執(zhí)行其它操作來響應(yīng),這在下面進行更詳細的描述。數(shù)據(jù)可以,在易失性和/或非易失性數(shù)據(jù),器中。如本文中使用的,術(shù)語"程序"涵蓋了廣義范圍的軟件組件和構(gòu)造,包括應(yīng)用程序,框,驅(qū)動器,例程,子程序,方法,過程以及其它類型軟件組件。同時,術(shù)語"程序"可用于指完整的編譯單元(即一組能被獨立編譯的指令),編譯單元集^(collection),或者編譯單元的"~^分。因此,術(shù)語"程序"可以用于指指令的任何集合,所述指令的任何集合在被處理系統(tǒng)執(zhí)行時,完成一個預(yù)期才M或者多個才^t。處理系統(tǒng)20中的程序可以被認為是軟件環(huán)境84的組件,例如,數(shù)據(jù)存儲裝置28和/或閃存27可包括各種指令集合,所述指令集合在被執(zhí)行時完成M^f乍。這樣的指令集^t??梢员环Q為軟件。如圖l中所示,在本示例實施例中,程序或者軟件組件82可包括系統(tǒng)固件40和OS50。系統(tǒng)固件40也可以稱為J^4lT入/輸出系統(tǒng)(BIOS)40。系統(tǒng)固件40可以包括一個或多個例程,例如啟動固件48,用于管理啟動過程。系統(tǒng)固件40還可以包括在OS啟動編碼被調(diào)用^^執(zhí)行的指令。例如,系統(tǒng)固件40可包括用于為OS提供運行時服務(wù)的代碼。用于^是4^運行時月良務(wù)的^i馬以及系統(tǒng)固件40的其它部分,一般以低于OS的邏輯Mi^f3刺乍。例如,系統(tǒng)固件40內(nèi)的框例如恢復(fù)管理器42可以用作OS和硬件之間的中^"(intermediaiy)。系統(tǒng)固件40和操怍系統(tǒng)50可包括各自的功率狀態(tài)轉(zhuǎn)變管理例程42和52,用于^狄理系統(tǒng)20能夠^^亍例如fel從睡目眺態(tài)'fcl到活動狀態(tài)的操作。功率狀態(tài)轉(zhuǎn)變管理例程42和52還可以簡稱為恢復(fù)管理例程或者'fel管理器。圖2描述示例時間線,說明了用于快速恢復(fù)數(shù)據(jù)處理系統(tǒng)的^ft操作。還參照圖1,圖2的時間線可以從處理系統(tǒng)20處于活動狀態(tài)的時間t0開始。在時間tl,OS50可確定處理系統(tǒng)20應(yīng)轉(zhuǎn)變到睡目財莫式??梢皂憫?yīng)例々,定的非活動周期、用戶輸Ai4擇睡目財莫式等^f牛^ii行這樣的確定。在時間t2,OS50將當(dāng)前系統(tǒng)上下文^#到非易失'^1器中并且創(chuàng)建^4在非易失'^4^器中并用于^的'fci恢復(fù)處理系統(tǒng)20的才辨的恢復(fù)描述符。如下面更詳細描述的,系統(tǒng)環(huán)境可以j絲在兩個或更多部分中,而EI智4法W4t^T4斗OC《fVt智力l、T顯玄々右,nFtvW擊151^"士fr,1*智也可包括'fel管理器42在'fel處理系統(tǒng)20時使用的數(shù)據(jù)。例如,OS50可采用標(biāo)識'ltt過程中的不同階段的不同內(nèi)容集合的數(shù)據(jù)來填充(populate)所述恢復(fù)描述符。那些階l殳可以包4舌用于^5^于在時間tl活動的過程的子集來恢復(fù)系統(tǒng)上下文的第一階段,以及用于對在時間tl活動的其余過程來恢復(fù)系統(tǒng)上下文的第二階段(或者多個二M(secondary)階段)。圖3^_框圖,描述各種數(shù)據(jù)構(gòu)造,所述數(shù)據(jù)構(gòu)it,用于支持處理系統(tǒng)的'fei功率狀態(tài)轉(zhuǎn)變。具體地說,圖3描述處理系統(tǒng)20的硬盤28,具有包含(例如系統(tǒng)環(huán)境)用于恢復(fù)處理系統(tǒng)20的婆:據(jù)的多個分區(qū)(例如分區(qū)pl和p2)。該內(nèi)容可以被稱為恢復(fù)(resume)文件98,或者被稱為睡目R(sleep)文件或者休目R(hibemate)文件。在一個示例實施例中,'t^l文件98包括第一階段內(nèi)容94和笫二階段內(nèi)容96,這些內(nèi)容在處理系統(tǒng)20的功率狀態(tài)轉(zhuǎn)變期間,分別在連續(xù)的第一和第二階對。載步驟中;l^。載。如下面更詳細描述的,在另一個實施例中,第一階段內(nèi)^f口笫二階段內(nèi)容可^^者在不同的^#裝置中。然而,為了簡潔M,本文中^^]的術(shù)語"恢復(fù)文件"包括用于從睡目M夫態(tài)恢復(fù)的恢復(fù)數(shù)據(jù)的^f可集合,即i^更集合的所有部分不駐留在同一個的物理文件中,或甚至不駐留在同一個,裝置中。硬盤28也可以包括分區(qū)表46,該表具有指向例如pl,p2等分區(qū)的指針以及其它數(shù)據(jù)。圖3還描述駐留在閃存27中的系統(tǒng)固件40,其中恢復(fù)描述符92以及其它固件變量90(例如標(biāo)識用于用戶接口的語言的固件變量,指定主和輔啟動設(shè)備的固件變量等)作為固件變量4錄在閃存中。在一些實施例中,處理系統(tǒng)20的系統(tǒng)固件遵循日期為2003年11月26日的可擴展固件4妄口(EFI)規(guī)范1.10版本(以下稱為"EFI規(guī)范")。EF1規(guī)范可以從www.intel.com/technology/efi獲得。在這樣的實施例中,恢復(fù)描述符92可能勒以于例如EFI配錄等固件構(gòu)造。在一些實施例中,恢復(fù)描述符的結(jié)構(gòu)由系統(tǒng)固件預(yù)先定義。在其它的實施例中,OS使用系統(tǒng)固件來創(chuàng)建恢復(fù)描述符。除固件變量^卜,其它數(shù)據(jù)可肯^ft在閃存27中,例如用于系統(tǒng)固件40的^fV馬圖像44。在備選的實施例中,恢復(fù)描述符可^##在<封可適合的預(yù)定非易失性位置(例如,在石嫂驅(qū)動器的系統(tǒng)分區(qū)上駐留的文件中)。同樣,根據(jù)本發(fā)明,'fel描述符不限于本文中說明的特定結(jié)構(gòu),而是在備選實施例中可以使用j轉(zhuǎn)在^f可適合的非易失'^^#裝置或者多個裝置中的任何適合的數(shù)據(jù)結(jié)構(gòu)或者數(shù)據(jù)結(jié)構(gòu)的組合。備選實施例也可以使用單個數(shù)據(jù)結(jié)構(gòu)^4^(hold)'fel描述符和第一階段內(nèi)容兩者。5U^回在圖2所示的時間線,在該示例實施例中,在已經(jīng)創(chuàng)建恢復(fù)描述符92^,OS5(H狄理系統(tǒng)20在時間t3刷新(flush)RAM26,以便確保當(dāng)前上下文^^£確#^。然后,在時間t4,OS50部分地或者完全^M夸處理系統(tǒng)20斷電。從而,在時間t4,處理系統(tǒng)20ii/v睡目W犬態(tài)。然后^/人/U少到幾個月或者幾年的不確定的時間段中,處理系統(tǒng)20可以停留在睡S^犬態(tài)中。在時間t5,處理系統(tǒng)20例如響應(yīng)用戶按下處理系統(tǒng)20的功率^4丑^^企測開始事件。然后,至少部分M^于OS5(H^4在恢復(fù)描述符92中的信息,恢復(fù)管理器42獲i^retrieve)')^l描述符92并確定如何響應(yīng)開始事件。例如,恢復(fù)描述符92可包括指示系統(tǒng)固件40跳過一個或多個指定裝置的初始化的數(shù)據(jù),以便僅僅初始化RAM26的特定部分等?;謴?fù)描述符92中指示哪些恢復(fù)操作應(yīng)該由OS執(zhí)行的數(shù)據(jù)可以被稱為恢復(fù)描述符信號交換(handshake)。在^Mt實施例中,恢復(fù)描述務(wù)(言號交換可以分@踏OS不必在^M亍第一階對。載之前執(zhí)行的任何操怍或者操怍的組合。恢復(fù)管理器42然后可按照'fcl描述符92中的數(shù)據(jù)來初始化處理系統(tǒng)20,而且^系統(tǒng)固件40可將控制^^多交給OS50啟動4V馬。處理系統(tǒng)20可以因jltif^l(abbreviate)固件-控制的初始化過程,以便執(zhí)行到OS上下文的'tfel返回。初始化操怍可以經(jīng)由通過預(yù)定管it(conduit)、例如固件變量或者某個其它通信路徑傳送的信號交換或者契約(contract)來/人系統(tǒng)固件40卸載到OS50。在時間t6,OS50可以獲取'fel描述符92并且開始用于4前的有效狀態(tài)恢復(fù)一些上下文的第一階IW口載過程。在該示例實施例中,在笫一階段加載過程中,OS50將第一階段內(nèi)容94乂A^更盤驅(qū)動器28加載到RAM26中,并且第一階段內(nèi)容94包^f又僅用于過程子集的上下文,所述過程在處理系統(tǒng)最辨last)處于活動狀態(tài)時存在于處理系統(tǒng)20中。例如,第一階段內(nèi)容94可包括僅僅用于絲一個活動用戶程序的上下文數(shù)據(jù)(例如,接收用戶輸入或者具有系統(tǒng)聚焦(focus)的f^一^K呈序)。第一階段數(shù)據(jù)可包括用于^一個活動用戶程序的所有分頁和非分頁數(shù)據(jù),或者僅僅包括非分頁數(shù)據(jù)。在另一個實施例中,笫一階段內(nèi)容可包括用于所有程序上下文數(shù)據(jù)94,所述程序在處理系統(tǒng)20最近活動時iMMHt器中分頁出去(pageout)。在備選實施例中,本系統(tǒng)上下文的其它子集可以^4在第階段內(nèi)容中并#第一階IW口載中恢復(fù)。例如,除^^可上述子集"卜第一階段數(shù)據(jù)可包含所有非分頁OS數(shù)據(jù)。非分頁OS數(shù)據(jù)也可以稱為非分頁核心數(shù)據(jù)...作為備選的方案,第一階段內(nèi)容94可能已經(jīng)##在閃存27中。OS50可以因此將第一階段內(nèi)容94從閃存27'1"嫂到RAM26中。jtb^卜,OS50可以采用數(shù)據(jù)來填充恢復(fù)描述符92,所述數(shù)據(jù)表示系統(tǒng)固件40應(yīng)跳itit常被4丸行以便支持與硬盤28的通信的初始化步驟。在第一階段加載完成之后,OS50可以執(zhí)行那些初始化步驟。如在時間t7顯示的,一旦第一階l^r口載處理完成,處理系統(tǒng)便產(chǎn)生用戶接口并且準(zhǔn)備接^li^自用戶的輸入并"^f亍用戶模式^f呈。例如,處理系統(tǒng)20可以提示該用戶輸入證書,并iL^那些證書的接收并l^i正后,處理系統(tǒng)20可為在處理系統(tǒng)20^睡目財莫式之前用戶使用的M—個應(yīng)用程序提供用戶4妻口。在圖2中,t5和t7之間的時間被標(biāo)記為持續(xù)時間(duration)dl。因此,在該示例實施例中,持續(xù)時間dl是處理系統(tǒng)20從不加電睡目財莫式恢復(fù)所花費的時間量。OS50然后可以例如作為后臺任務(wù)開始平臺上下文的第二階對口載。在該示例實施例,第一階段內(nèi)容少于第二階段內(nèi)容,與第二階對口勤目比較,第一階^i口歉范費更少時間。在時間t8,處理系統(tǒng)20可以完成第二階段加載,然后可完成功率狀態(tài)轉(zhuǎn)變過程。在t7和t8之間的時間被標(biāo)記為持續(xù)時間d2,而在t5和t8之間的時間被標(biāo)記為持續(xù)時間d3。因此,持續(xù)時間d3等于持續(xù)時間dl力口持續(xù)時間d2。在該示例實施例中,在持續(xù)時間dl^處理系統(tǒng)20準(zhǔn)^^躺。相反,根據(jù)通常的功率狀態(tài)轉(zhuǎn)變過程,持續(xù)時間d3(即,t5和t8之間的總時間)可能類似于處理系MA睡目財莫式轉(zhuǎn)變到活動模式需要的時間量。然而,運用常M^r法恢復(fù)的處理系鄉(xiāng)脈所有系統(tǒng)上下文已M^口載之前不可^^!。相反,根據(jù)該示例實施例,因為上下文是在多個階段中恢復(fù)的,而且處理系統(tǒng)不會等到所有那些階段都完^^后才產(chǎn)生用戶接口,所以使用處理系統(tǒng)20的人在4械她能夠開始^^處理系統(tǒng)20進行有產(chǎn)能的工作^^前不必等待太長時間。圖4、5和6是描述根據(jù)本發(fā)明的示例實施例支持快速功率狀態(tài)轉(zhuǎn)變的過程的M方面的流程圖。圖4中描述的過程以處理系統(tǒng)20檢測開始事件開始,例如以上針對圖2和時間t5所描述的。如框110所示,響應(yīng)該開始事件,啟動固件48開始初始化處理系統(tǒng)20。作為初始化過程的-~^分,如框112所示,啟動固件48確定處理系統(tǒng)20是否從睡眠狀態(tài)恢復(fù)。如果處理系統(tǒng)20沒有從睡眠狀態(tài)恢復(fù),則啟動固件48佳月硬啟動或者冷啟動過程(即用于Mil^開狀態(tài)轉(zhuǎn)變到活動狀態(tài)的過程)來完成處理系統(tǒng)20的初始化,如框114所示。如框144所述,然后系統(tǒng)固件40可以將控制^5^多交給OS50以^f更i^f亍余下的啟動it禾呈。然而,如果處理系統(tǒng)20從睡目狄態(tài)恢復(fù),則恢復(fù)管理器42接下來確定處理系統(tǒng)是否來自加電或不加電睡眠狀態(tài),如框120所述。如果處理系統(tǒng)20/A^口電睡眠狀態(tài)恢復(fù),則恢復(fù)管理器42可以^^I近乎常規(guī)的方法,用于從加電睡眠'ltt以^^^^刀始化處理系統(tǒng)20,如框122所示。恢復(fù)管理器42然后可以將控制權(quán)壽封多給OS50以便進行余下的啟動過程,如框144所述。然而,如框130所示,如^t理系統(tǒng)20來自于不加電的睡目緣態(tài),貝'J恢復(fù)管理器42然后可以確定在準(zhǔn)備ii^睡目民狀態(tài)時OS50是否^^'fel描述符。如果恢復(fù)管理器42未找到恢復(fù)描述符,恢復(fù)管理器42可以引發(fā)異常和/或可以執(zhí)行4射吳處理,如框132描述的。例如,恢復(fù)管理器42可以扭^f亍一些凈辦,例如提4^lr出以通知用戶或者遠程的管理員有關(guān)該4射吳,<轉(zhuǎn)標(biāo)識該錯誤的日志條目,回復(fù)到硬啟動或者冷啟動過程,或者這些或者其它的才^t的^f^f可適合的纟且合。如果'fel描述符確實存在,則'1^1管理器42讀取1^1描述符(例如,恢復(fù)描述符92),如框140所述。如框142所示和上面描述的內(nèi)容,恢復(fù)管理器42接著可以按照由OS50併存在恢復(fù)描述符92中的信息完成它的部分初始化過程。例如,如果'fel描述符92指示OS50將初始化某""i殳備或者部分存儲器,則系統(tǒng)固件40可以通過不初始化那個裝置或者那部分4#器來節(jié)省時間。在一個實施例中,恢復(fù)描述符92列出要由除了系統(tǒng)固件40外的組件執(zhí)行的初始^#作。在其它實施例中,恢復(fù)描述符92運用其它技術(shù)來指示哪些初始^^ft將由系統(tǒng)固件40"^f亍。在任一情況下,恢復(fù)描述符92可以描述平臺初始化的最小44至來支持對第一階段內(nèi)容的快速恢復(fù)。如框144所示,在執(zhí)行4封可要求的初始^#^^^,系統(tǒng)固件40則可以將控制權(quán)移交給OS50的啟動代/馬。在系統(tǒng)固件40檢測到開始事件之后,開始圖5中描述的過程。在框210,系統(tǒng)固件40可以根據(jù)圖4中描述的過程來執(zhí)行系統(tǒng)初始化。在框212,OS50可以從系統(tǒng)固件40接收控制權(quán),按照圖4的框144說明的操怍。在框214,OS50可以從非易失'1^W器中獲擬苗述符92。例如,在示例實施例中,OS50從持久性固件變量(即,系統(tǒng)固件"R供的,而且即使處理系統(tǒng)在保存變量的時間和獲取變量的時間之間斷電也可以接著從系統(tǒng)固件獲取的變量)獲取'隨描述符92。如在框220所述,OS50可接著確定處理系統(tǒng)20是否從睡目M犬態(tài)'隨。如果處理系統(tǒng)20不從睡眠狀態(tài)恢復(fù),則OS50可才Aft硬啟動或者冷啟動,如框222所示。如框222所述,如果處理系統(tǒng)20從睡目緣態(tài)恢復(fù),則OS50可以確定處理系統(tǒng)20是否/A^口電睡目民狀態(tài)或者不加電睡目民狀態(tài)恢復(fù),如框230所述。如果處理系統(tǒng)20從加電睡眠狀態(tài)恢復(fù),則OS50可"^f亍近乎傳統(tǒng)的加電恢復(fù),如框232所示。然而,如果處理系統(tǒng)20從不加電的睡目^R態(tài)'tt,則處理可以/人沖匡230ii7v框234,框234描述OS50使處理系統(tǒng)20執(zhí)行第一階段上下文加載。在一些實施例中,數(shù)據(jù)處理系統(tǒng)可以響應(yīng)檢測fel描述符而決定執(zhí)行二階段(或者多階段)加載過程。再參照圖3,在該示例實施例中,當(dāng)執(zhí)行第一階段加載時,OS50可以將第一階段內(nèi)容94從非易失性^^諸器例如石腫28加載到RAM26中。如前所述,第一階段內(nèi)容94可包括用于接收用戶輸入的最后一個程序、系統(tǒng)聚焦的M—個程序、沒有從^ft器分頁出去的所有程序或者其它在處理系統(tǒng)20ii/v睡B^莫式之前存在于處理系統(tǒng)20中的程序的某個其它子集的系統(tǒng)上下文。如/人框234出去的兩^^4圣所示,在加載第一階l殳內(nèi)^^,OS50可以開始笫二階^^口載#^,同時還提供用戶接口以^Ai午處理系統(tǒng)20在笫二階l^i口載完成之前被"ft^]。例如,如框236所示,徊口載第一階段內(nèi)容94之后,OS50可以開始執(zhí)行用戶模式銜f呈,例如向該用戶"l是^^妄口。如果第一階段內(nèi)容包括用于接收用戶輸入的^一個程序的上下文,則在恢復(fù)用于那個程序的上下文之后,OS50可以將控制^a^卩個程序,從而就象處理系統(tǒng)20從未轉(zhuǎn)變到睡1財莫式一樣允許用戶恢復(fù)那個程序的#^。另外,如框238所示,處理系統(tǒng)20然后可接收輸入,例如用戶輸入。因此,在二級加載完成之前處理系統(tǒng)20提供用戶交互。從而,在整個系MJi下文(即,在處理系統(tǒng)20i^/v睡目財莫式之前已經(jīng)存在的所有處理或者程序的上下文數(shù)據(jù))已經(jīng)'fel之前,一個人可以佳月處理系統(tǒng)20。如框240和242所示,同時或者J^^上同時提供用戶接口并且接受用戶交互,OS50可以扭行所要求的4封可其它初始^^ft并且可以加栽第二階段內(nèi)容96。那些初始4U辨可以是由'l^l描述符92分酉逸OS的任務(wù)。例如,'l^l描述符92可包括指示OS50應(yīng)初始化指定一^分或者多個部分的RAM26的數(shù)據(jù)。指示哪些ifeljf辨應(yīng)該由OS執(zhí)行以及哪些由系統(tǒng)固件4Mt的恢復(fù)描述符92中的數(shù)據(jù)可以稱為'l^l描述^f言號交換。在各種實施例中,恢復(fù)描述符信號交換可分^i^OS不必在l^亍第一階^^載之前^^亍的^j可操作或者操作的集合。這樣的操作的其它示例可包括^^限于,初始^t旨定一恒備或多恒備等。第二加載過程可以#^些或者所有剩余系統(tǒng)上下文(例如來自'隨文件98的第二階段內(nèi)容96)恢復(fù)到RAM26中。一S^斤有第二階段內(nèi)容已經(jīng)恢復(fù),恢復(fù)處理可以結(jié)束。在備選實施例中,在第一階IM口載之后,多個二級或者補充的(supplemental)階段可用于加載附加的上下文。一旦系統(tǒng)已經(jīng)完^更啟動或者完成AU卩電睡目^)大態(tài)喚醒,或者完成從不加電睡目眺態(tài)喚醒,過程就可以從圖5通過頁連接器進行到圖6的框250。然后處理系統(tǒng)20可以確U否存在加電狀態(tài)轉(zhuǎn)變請求以便ii^不加電的睡百M犬態(tài)。例如,可以響應(yīng)用戶選擇睡目腿項,或者響應(yīng)沒有用戶輸入而經(jīng)過的預(yù)定時間量來進行這樣的確疋。當(dāng)處理系統(tǒng)20確^ii^不加電睡目財莫式時,OS50可以使處理系統(tǒng)將核心數(shù)據(jù)的分頁;tk^新到非易失性^fi者器,例如硬盤28,如框252所示。刷新操作可以保證4^的回寫磁盤高速緩存已被刷新。如框254所示,OS50還可以將非分頁數(shù)據(jù)(或者當(dāng)前上下文的4封可其它適合的子集)復(fù)制到相同或者不同的非易失性裝置中。在一個實施例中,OS50可以認為所有分頁數(shù)據(jù)^二階段內(nèi)容,而且OS50可以將該數(shù)t別絲到硬盤28。另一方面,所有非分頁數(shù)據(jù),可以認為B—階段內(nèi)容,而且OS50可以將該數(shù)才刷絲到閃存27。在其它的實施例中,處理系統(tǒng)可包括三個或更多不同的非易失'fi^^裝置,而且例如恢復(fù)描述符、第一階段內(nèi)^^第二階段內(nèi)容等項目均可^^在不同的設(shè)備上。任何適合的方法可^JI]來g第二階段內(nèi)容。例如,OS50可以創(chuàng)絲二階段內(nèi)容96中的日志來標(biāo)識分頁數(shù)據(jù)的存在位置,或者OS50可以將分頁內(nèi)容合并到第二階段內(nèi)容96中。在示例實施例中,如框256所示,OS50填充^HM具有用于恢復(fù)處理系統(tǒng)20的信息的回復(fù)描述符。例如,OS50可以^^恢復(fù)描述符92中的信息,例如下列項目中的一個或多個描述OS50將l^ft^刀始^^ft的數(shù)據(jù),可能包括在常規(guī)系統(tǒng)中啟動OS之前啟動固件一般執(zhí)行的操作(例如,,器初始化),描述笫一階^>載內(nèi)容的屬性的數(shù)據(jù),例如那個內(nèi)容的位置,內(nèi)容的尺寸,包括那個內(nèi)容的裝置的類型等。當(dāng)在恢復(fù)才辨期剛尋控制^Uf多交給OS50時,系統(tǒng)固件40<M的信息,例如圖5的框212中描述的。在一些實施例中,OS可以使用系統(tǒng)固件提供的工^Kfacility)將'l^l描述^^錄在非易失:W^諸器中。例如,如上所述,恢復(fù)描述符數(shù)據(jù)可以j錄在固件變量中(例如,如圖3所述變量92中)。一些實施例可以使用在下面代媽段中描述的那樣的結(jié)構(gòu)來實現(xiàn)恢復(fù)描述符typedefstruct(UINT64DevicePathActive:1;UINT64FlashContainsMemoiy:1;UINT64MemoiyFragments:8;}INIT—MASK;typedefstruct^UINT32Type)UESTB2Pad;EFI—PHYSICAL—ADDRPhysicalStart;//LBAorMemorybasedonTypeUINT64NumberOfPages;//IfLBA==#ofsectorsUINT64Bank;}RESOURCE—DESCRIPTOR;typedefstruct{麗一MASKInitMask;//DEVICE—PATHDevicePath;//UINT32DescriptorCount,//RESOURCEDESCRIPTORReso薦Descriptor[DescriptoiCount];}EFI—RESUME—DESCRIPTOR;這樣的恢復(fù)描述符可具有用于定位第一階段內(nèi)容的INTT—MASK部分。例如,IMT一MASK部分可以,標(biāo)識一下^J貞的數(shù)據(jù)(a)第一階段內(nèi)容是否i錄在閃存中;(b)包含第一階段內(nèi)容的設(shè)備的設(shè)備^4圣(例如,斷開總線,夕H殳部件互連(PCI)設(shè)備7,功能O,分區(qū)0);(c)要恢復(fù)的不同存儲器范圍(range)/片l^(segment);等。ARESOURCE—DESCRIPTOR部分可用于^(諸標(biāo)識以下各項的數(shù)據(jù)(a)包含第一階段內(nèi)容的裝置的類型(例如,石植,閃存等);(b)該設(shè)備上的第一階段內(nèi)容的趙臺位置(例如,閃存裝置的字節(jié)偏移量(byteoffset)或者硬盤的有關(guān)扇區(qū)的LBA);(c)第一階段內(nèi)容的大小等?;謴?fù)描述符中的其它信息可包括標(biāo)識要恢復(fù)的數(shù)據(jù)的不同區(qū)域(例如,從l:22MB的^i者器范圍,從40:42MB的^#器范圍等)的數(shù)據(jù)。在其它的實施例中,可以偵月具有不同結(jié)構(gòu)的恢復(fù)描述符。當(dāng)從睡目財莫式轉(zhuǎn)變到活動模式時,在啟動OS50之前,恢復(fù)管理器42可以l頓恢復(fù)描述符中的信息,該信息指出哪些賴區(qū)將被'隨以便確定哪些務(wù)賭區(qū)將由系統(tǒng)固件40初始化。例如,系統(tǒng)固件40可以初始化要恢復(fù)的,區(qū),并且可以淵Mt其它,區(qū)的初始化。因為系統(tǒng)固件40可以僅僅初始化RAM26的子集,啟動固件可以更決地完成它的初始化過程。'fel描述符92可包括附加的結(jié)構(gòu)^ft信息,該信息標(biāo)識哪些初始化才辦將被系統(tǒng)固件40浪近并且由OS504W亍。例如,MT—MASK結(jié)構(gòu)可以包括一個或多個位來指出系統(tǒng)固件40是否將初始化^P,器或者,器的子集,包括數(shù)據(jù)來指出某些設(shè)備是否將由系統(tǒng)固件40或者OS50初始化等。在"^選實施例中,備選機構(gòu)可用于指出哪些初始化^fN夸被系統(tǒng)固件跳過并且由OS執(zhí)行。在框258,OS50使RAM26的內(nèi)^^L^新到恢復(fù)文件98。這一刷新保證易失'^i且件(例如,賴器,高速緩存,OPU狀態(tài))的^^者內(nèi)容已經(jīng)完全^^新到非易失性^t器。在該示例實施例中,根據(jù)框252,第一階段內(nèi)容94(參見圖3)包括刷新到磁盤的核心數(shù)據(jù),以及根據(jù)框258,第二階段內(nèi)容96包括刷新到恢復(fù)文件98的數(shù)據(jù)。同時,在框254引用(reference)的一些非分頁數(shù)據(jù)可以保存到第一階段內(nèi)容94中,而其余的可^f缺到第二階段內(nèi)容96中。例如,第一階段內(nèi)容94可以獲得來自O(shè)S和已經(jīng)聚焦的應(yīng)用的有關(guān)非分頁數(shù)據(jù),而其余的非分頁數(shù)據(jù)可以轉(zhuǎn)到第二階段內(nèi)容96去。然后如框260指出的,OS50可以使處理系統(tǒng)50對自己斷電。然后根據(jù)需要可以重復(fù)圖4-6的過程,例如在處理系統(tǒng)20開始它的下一個初始化過程時從框110開始。因此,-.按照以上描述,與4賴常規(guī)功率狀態(tài)轉(zhuǎn)變技術(shù)的處理系鄉(xiāng)W目比,本發(fā)明的實施例可以佳處理系統(tǒng)能夠從非加電的睡目歐態(tài)更fe地再啟動。例如,同樣參考圖2,在持續(xù)時間dl^根據(jù)^^開的系統(tǒng)可以i^v活動模式并且開始才W亍用戶模式^^呈,相比之下,常,見系統(tǒng)^l^持續(xù)時間d3^才可i^/v活動模式。已纟錄達出,例如,基于具有每秒的數(shù)據(jù)吞吐量(throughput)16兆字節(jié)(MB)的閃存,包含54.5MB第一階段內(nèi)容,包括用于最近的活動應(yīng)用程序的22.4MB上下文數(shù)據(jù)和用于非分頁核心內(nèi)容的32MB上下文數(shù)據(jù)的閃存,在不到4秒時間里隨著完成第一階口載可以將具有3.4GB的RAM的處理系統(tǒng)恢復(fù)到可用狀態(tài)。更決速的閃存可以允許甚至更短的恢復(fù)時間。例如,如^J:理系統(tǒng)具有每秒600MB數(shù)據(jù)吞吐量的閃存,則處理系統(tǒng)能夠在不到1秒內(nèi)完成笫一階對口載。jtb^卜,才財居^^開,因為處理系統(tǒng)可以從非加電睡f^夫態(tài)如此l";feil:lM爭變到活動狀態(tài),所以在常規(guī)系統(tǒng)中可^^求加電睡目^莫式的環(huán)境中,用戶,供應(yīng)商,或者系統(tǒng)管理員可以配置處理系統(tǒng)來使用非加電睡目財莫式。處理系統(tǒng)甚至可被設(shè)計成僅支持(或者配置成僅使用)不力口電的睡目財莫式。例如,本發(fā)明實施例使處理系統(tǒng)能夠像^U。電睡目民模式一樣快速的從不加電睡眠模式恢復(fù)。當(dāng)然,不加電睡目財莫式需要極少或不需要功率來^#狀態(tài),而加電睡目財莫式需要大量的功率來##狀態(tài)。因此,相對于傳統(tǒng)系統(tǒng),4狄不加電睡目M莫式代替一個或多個加電睡B財莫式的處理系統(tǒng)可以取得大量的功率節(jié)省。這樣的功率節(jié)省可以轉(zhuǎn)化為額外利益,例如為電池加電的系統(tǒng)增加有-丈的備用(standby)功,續(xù)時間。另夕卜,因為信號交換才;i^J允許OS與系統(tǒng)固^M^過不加電睡BM犬態(tài)進行通信,所以O(shè)S可以動態(tài)地在固件和OS之間調(diào)整或者重新分配角色和任務(wù),以便實現(xiàn)改進的性能。例如,OS可以接受初始化一些系統(tǒng)務(wù)賭器,某些系統(tǒng)裝置等任務(wù)。.圖7是描述根據(jù)圖1具有備選軟件配置的數(shù)據(jù)處理系Mi匡圖。具體地說,圖7屬于處理系統(tǒng)20中的軟件配置的示例實施例,該配置使處理系統(tǒng)20能夠才對以(emulate)磁盤驅(qū)動器才^t,而事實上利用更快的和/或更高負巨效的^fi者技術(shù),例如閃存27。JW^地說,處理系統(tǒng)20以比OS低的邏輯MJM對W茲盤操作(例如,以通常在OS和硬件之間的級)。從而,OS不需要特別地設(shè)計來^JU閃存以恢復(fù)數(shù)據(jù),而4_可以只^^傳統(tǒng)的石茲盤#^來^#并獲取'隨數(shù)據(jù)。在圖7的實施例中,軟件組件82包括系統(tǒng)固件40,系統(tǒng)管理才莫式(SMM)豐欠件310,以及管理程序或者虛寺財幾監(jiān)控器(VMM)320。除了下面描述的特征,系統(tǒng)固件40可以支持所有上面描述的特征。在^^選實施例中,處理系統(tǒng)可能已具有僅支持一些本文描述的特征的系統(tǒng)固件。如本文中使用的,術(shù)語"平臺軟件"指通常以比OS低的邏輯^i^刊喿作的控制邏輯,可能充當(dāng)OS和硬件之間的中介。在圖7的實施例中,系統(tǒng)固件40、SMVHV馬310和VMM320是平臺軟件。如本文中^Jf]的,術(shù)語'MWl件"指文件,文件集合,或者駐留在代理^#裝置中的4封可其它合適的數(shù)據(jù)集合。代理,裝置是平臺軟件用來響應(yīng)更高級軟件、例如OS的讀和寫而才勤以不同,裝置的存儲裝置。在圖7中,在VMM320中處理系統(tǒng)20酉沐休眠管理器322。對于恢復(fù)數(shù)據(jù),休目民管理器322可以處理佳月閃存27來才窮W茲盤驅(qū)動器28所必需的一些或者所有才沐圖8描述了說明例^^圖7配置的用于1鏈恢復(fù)處理系統(tǒng)20的備選過程中的各種才喿怍的示例的時間線。所說明的過程開始于時間tO,例如響應(yīng)功^#|丑按下,由處理系統(tǒng)20開始從斷電狀態(tài)開始轉(zhuǎn)變?yōu)榛顒訝顟B(tài)。在時間tl,在執(zhí)行4封可必需的硬件才辦^,BIOS40初始化芯片組34并啟動SMM。在時間仏BIOS40起動(launch)VMM320。在時間t3,VMM320起動VM350作為用于OS50的M獨立的軟件環(huán)嫂。在時間t4,OS50將預(yù)定休目ML件的尺寸和位置規(guī)范傳i^BIOS40。例如,在處理系統(tǒng)20首先安裝U,OS50可能已發(fā)現(xiàn)用于賴睡目W恢復(fù)數(shù)悟的磁盤驅(qū)動器28上的合適大小和位置的連續(xù)的空閑空間塊,而且OS50可能已分酉喊者保留了作為休目ML件330的空間。在隨后的啟動中,OS50可以佳月驅(qū)動器來傳送有關(guān)休0ML件330的尺寸和位置的細節(jié)給BIOS40。例如,平臺特有的OS驅(qū)動器(例如,休目ML件驅(qū)動器61)可以安裝到OS50的上下文中,使得驅(qū)動器61傳送休BML件330的位置和大小信息給VMM350。休目M:件驅(qū)動器61可以由OS的開發(fā)者,VMM的開發(fā)者,平臺廠家,或者任何其它的合適實體來開發(fā)。休BML件驅(qū)動器61可以表示啟動OS50來M切作的虛擬化。作為備選的方案,當(dāng)VMM無需來自O(shè)S的切作虛擬化就能進4甜辨時,通過充分了解文件系統(tǒng)和休目Ml件數(shù)據(jù)的J^出構(gòu)成,可設(shè)計或者配置VMM使得VMM可通iti4歷硬盤上的文件系統(tǒng)數(shù)據(jù)來確定休目Ml件數(shù)據(jù)的扇區(qū)位置和大小。再一次參考圖8,在時間t5,BlOS40至少部分;tt于來自O(shè)S50有關(guān)休目ML件330的信息,在閃存27中分酉喊者保留代^L件340以;SJI]于磁盤才勤以的BIOS50禾J^數(shù)據(jù)路由(routing)。例如,BIOS40可以4頓VMM320中的休眠管理器322來產(chǎn)生轉(zhuǎn)變表324,或者其它合適的數(shù)據(jù)結(jié)構(gòu),用于將休B^iL件330內(nèi)的邏輯塊;W止(LBA)映射到用于才對以休目Ml件330的閃存27中的^fH位置(storagelocation)。處理系統(tǒng)20然后可用于^^r合適時間賴jMi行有用的工作。然后,在時間t6,OS50可以接4域者檢測睡目賊者休眠事件。例如,休眠事件可以表示用戶已經(jīng)選擇休目財莫式,或者已經(jīng)超過預(yù)定的非活動閾值。在時間t7,響應(yīng)休眠事件,OS50扭/f討刺乍來把恢復(fù)數(shù)l^f呆存到磁盤驅(qū)^j哭7S卜frW大服矛^f^"0咖然而,VMM320可以^l(intercept)/人OS50到;茲盤驅(qū)動器28的寫入。線t7的上部是虛線,表示這樣一個M。響應(yīng)對那些寫入的^,^木眠管理器322可以將數(shù)據(jù)寫入到閃存27中的代理文件340,如在時間t8所示。例如,VMM320可以監(jiān)控從OS50到石茲盤驅(qū)動器28的所有寫入,并且如果任一寫入包括休目Ml件330內(nèi)的i4ii,則休眠管理器322可以那些寫入重定向到代SiL件340中的對應(yīng)位置。.在^J]VMMi^勤以或者管理所有硬件交互的實施例中,VMM可以使用芯片組控制寄存H(例如如下所述的那些)來捕"^(trap)OS.訪問磁盤驅(qū)動器的每次嘗i備選實施例可以使用協(xié)作的虛擬化,利用OS上下文內(nèi)操怍的驅(qū)動器來來輔助虛擬化功能。這樣的驅(qū)動器,可以稱為啟發(fā)(enlightened)驅(qū)動器,它可以更高效地允許VMM提供磁盤才對以(例如',利用很少的上下文切換)。這樣的馬區(qū)動器可以由OS的開發(fā)者,VMM的開^^者,平臺廠家或者^f可其它合適的才;i^j來開發(fā)。再一次參考圖8,根據(jù)要存儲的恢復(fù)數(shù)據(jù)的量,OS50和休眠管理器322事實上可以執(zhí)行大量寫入/^#操怍。線t8較低的部分是虛線,表示一旦恢復(fù)數(shù)據(jù)已經(jīng)保存,休眠管理器322就可以通知OS50關(guān)于磁盤寫入才喿作已經(jīng)成功完成。然后,在時間t9,可能通過使用SMM程序310,OS50將處理系統(tǒng)20轉(zhuǎn)變到休B財莫式。因此,在圖8的底部,標(biāo)記"休眠"的波形4巧限定從活動狀態(tài)轉(zhuǎn)變到休眠狀態(tài)所需的時間段。處理系統(tǒng)20然后可以在^f^合適的時段中處于休目碟式。然后,在時間t10,OS50例如響應(yīng)用戶按壓處理系統(tǒng)20的功率^&il者休目M^丑而接收喚醒(wake)事件。響應(yīng)喚醒事件,OS50才;W封辨/A^it驅(qū)動器28讀取恢復(fù)數(shù)據(jù),如在時間tll所示。然而,VMM320可以攔截那些讀取并改為從^fW^件340中的對應(yīng)位置讀取必要的數(shù)據(jù),如在時間tl2所示。休眠管理器322可以再一次偵月轉(zhuǎn)變表324來確定哪些讀取應(yīng)被M禾耐對以,以及實際上需要的數(shù)據(jù)駐留在哪里。線tl2較低的部分M線,表示一旦已經(jīng)讀取餃cl數(shù)據(jù),休眠管理器322就可以通知OS50有關(guān)磁盤讀取梯作已經(jīng)成功地完成。在時間t13,OS50然后可以完成'feli^ft并JU^上返回處理系統(tǒng)20iiA^休0財莫式之前存在的狀態(tài)。例如,OS50可以使處理系統(tǒng)20顯示在轉(zhuǎn)變到休目財莫式之前顯示的相同的用戶接口。因此,標(biāo)記"恢復(fù)"的波形括號標(biāo)定(demarcate)從休目民狀態(tài)轉(zhuǎn)變到活動狀態(tài)所需的時間段。圖9是描述根據(jù)圖1的數(shù)據(jù)處理系統(tǒng)具有另一個備選軟件配置的框圖。如同圖7中的配置一樣,圖9中的配置使用平臺軟件^^對以O(shè)S50的磁盤操作。然而,代^^^基于VMM的配置,在圖9中,處理系統(tǒng)20^i己置成^iI基于SMM的嫂Jbf對以。如上,OS不需^#別設(shè)計成使用用于'1^1數(shù)據(jù)的閃存,而是可以改為僅使用傳統(tǒng)磁盤^^來^^并獲取恢復(fù)數(shù)據(jù)。在圖9的實施例中,軟件組件82包括系統(tǒng)固件40和SMM軟件360。..除了如下所述特名"卜,系統(tǒng)固件40可以支持所有上面描述的所有特征。在^^選實施例中,處理系統(tǒng)可以具有本文中描述的僅僅支持一些特征的系統(tǒng)固件。在圖9的實施例中,SMVHV馬360包括休眠管理器362。對于恢復(fù)數(shù)據(jù),休眠管理器362可以處理佳月閃存27來才窮W茲盤驅(qū)動器28所必需的一些或者所有操怍。在圖9的實施例中,系統(tǒng)固件40和SMM程亭360是平臺軟件。圖IO描述示例的時間線,說明在另一個備選過程中用于快速'fel處理系統(tǒng)20的^ft才乘作,例如,如圖9配置的。例如響應(yīng)功率4^4對皮按下,所說明的過程從時間t0由處理系統(tǒng)20開始從斷開狀態(tài)轉(zhuǎn)變到活動狀態(tài)開始。在時間tl,執(zhí)行任何必需的硬件才^ft之后,BIOS40初始化芯片組34并啟動SMM。在時間t2,BIOS40啟動OS50。在時間t3,OS504沐目Ml件330的尺寸和位Ji見范傳iiiSlJBIOS40。如同上面描述的一才羊,OS50可以估JU休BK^件驅(qū)動器61來傳送有關(guān)休眠區(qū)域的數(shù)據(jù)給BIOS40。在時間t4,至少部分基于來自O(shè)S50的有關(guān)休目ML件330的信息,BIOS40在閃存27中分酉試者保留代理文件340以及BIOS50對數(shù)據(jù)路由進^^扁程^ii行磁盤才對以。例如,BIOS40可以^J]SMM4V馬360中的休眠管理器362來產(chǎn)生轉(zhuǎn)變表364,或者其它的合適數(shù)據(jù)結(jié)構(gòu),用于纟沐目ML件330內(nèi)的邏輯塊i4i止(LBA)映射到用于才對以休目ML件330的閃存27中的^^者位置。另夕卜,作為對數(shù)據(jù)路由進^i扁程的""^分,BIOS50可以配置捕捉機構(gòu)^it成(issue)對嘗試的磁盤訪問的捕凈線者中斷。例如,BIOS50可以在芯片組34中設(shè)置配置寄存器334(或者多個配置寄存器)以使乂口、要在SMM^1S青,i^茲盤I/0就產(chǎn)生系統(tǒng)管理中斷(SM)。在一個i施例中,將配置寄存器334實現(xiàn)為一個或多個高級電源管理(APM)捕捉控制寄存器(ATC)。有關(guān)ATC的附加信息能夠在Inte應(yīng)的I/0控制器集線器6(IGH6)系列數(shù)據(jù)表中找到,當(dāng)前可,人www.intel.com/design/chipsets/datashts/301473.htm得到該信息。處理系統(tǒng)20然后可以用于^f^可合適時間賴^i行有用的工作。然后,在時間t5,OS50可以接4線者檢測睡目^者休眠事件。例如,休眠事件可以表示用戶已經(jīng)選擇休B^莫式,或者已經(jīng)超過預(yù)定的非活動闊值。在時間t6,響應(yīng)休眠^f牛,OS50才ivf封辨來把'fel數(shù)氺別轉(zhuǎn)到磁盤馬區(qū)動器28上的休BML件330中。然而,當(dāng)寫入才^ft使芯片組34產(chǎn)生SM時,休眠管理器362可以M從OS50到磁盤驅(qū)動器28的寫入。線t6M線,表明事實上數(shù)據(jù)沒有4絲^J茲盤驅(qū)動器28上。如在時間t7所示,只狄理器22試圖訪問磁盤驅(qū)動器28,芯片組34就可以產(chǎn)生SM。響應(yīng)每個SM,休眠管理器362可以確定讀Wl者寫AA否包括休目ML件330內(nèi)的地址。如果寫入包^it才—個^iil:,則休眠管理器362可以將該數(shù)據(jù)重定向到代^^f牛340中的對應(yīng)位置,如所示在時間t8所示。如果讀取包括這樣一個:l4ii11,休眠管理器362可以從代理文件340中的對應(yīng)位置獲取該數(shù)據(jù)。線t8的上部M線,表明一旦'RMt據(jù)已經(jīng){轉(zhuǎn),休眠管理器362可以通知OS50有關(guān)磁盤寫入4辦已經(jīng)成功完成。根據(jù)要務(wù)賭的恢復(fù)數(shù)據(jù)的量,OS50和休眠管理器362事實上可以執(zhí)行大量的寫入/^#操作。因此,響應(yīng)對從OS50到休目ML件330的寫入的M,休眠管理器362事實上可以將'fel數(shù)^fM到閃存27中的代逸文件340中。然后,在時間t9,OS50可通過^J]SMM程序360來把處理系統(tǒng)20轉(zhuǎn)變到休目財莫式。因此,在圖10的底部,標(biāo)注"休眠"的波形^"^標(biāo)定從活動狀態(tài)轉(zhuǎn)變到休BM犬態(tài)所需的時間I爻。然后處理系統(tǒng)20可以在^f可合適的時間l^t于休0財莫式。然后,在時間t10,OS50例如響應(yīng)用戶按壓處理系統(tǒng)20的功率^4iL^者休目K^4丑而接收喚醒事件。響應(yīng)喚醒f^f牛,OS50才;W封辦^M人石^:驅(qū)動器28讀取恢復(fù)數(shù)據(jù),如在時間tll所示。然而,如在時間tl2所示,讀取操作可能使芯片組342產(chǎn)生SMI。休眠管理器362可以處理那些SMI,攔#/茲盤讀取,并改為從代理文件340中的對應(yīng)位置讀取必要的數(shù)據(jù),如在時間t13所示。休眠管理器362可以再一次使用轉(zhuǎn)變表364來確定哪些讀取應(yīng)被4^1禾4莫擬,以及實際上需要的數(shù)據(jù)駐留在哪里。線tl3上部是虛線,表明一旦已經(jīng)讀取恢復(fù)數(shù)據(jù),休眠管理器362就可以通知OS50有關(guān)磁盤讀取操作已經(jīng)成功地完成。在時間t14,OS50然后可以完成恢復(fù)才^t并ili^上返回處理系統(tǒng)20ii/v休目財莫式之前存在的狀態(tài)。例如,OS50可以4狄理系統(tǒng)20顯示在轉(zhuǎn)變到休H財莫式之前顯示的相同的用戶接口。因此,標(biāo)記"恢復(fù)"的波形括號標(biāo)定從休,犬態(tài)轉(zhuǎn)變到活動狀態(tài)所需的時間段。因此,如已經(jīng)描述的,處理系統(tǒng)可以包括獨立于os的裝置來自動地重新3各由用于功率4爭變的'^l^i居。如上iL^斤指出的,具有3.4GBRAM的傳統(tǒng)的系M/人睡EI財莫式轉(zhuǎn)變到活動模式可^^費大約150秒。相反,如果具有相同的數(shù)量RAM的處理系統(tǒng)還包括用于自動地A^茲盤到閃存重新路由恢復(fù)數(shù)據(jù)的裝置,則那個處理系統(tǒng)在不到10秒時間內(nèi)就f&人休眠'1^1。另夕卜,處理系統(tǒng)可配置成例如通過BIOS裝置接口,VMM配置接口,或者任何其它合適的裝置來對恢復(fù)數(shù)據(jù)的重新路由進行激活和去活(deactivate)。這樣的處理系統(tǒng)被認為支持恢復(fù)數(shù)據(jù)有條件的重新路由。如上所述,在^4t實施例中,處理系統(tǒng)可以使用上述特征的4封可合適的組合。例如,處理系統(tǒng)可以^^閃存^^勤W茲盤^I器,同時還提供多階段恢復(fù)過程,a—步縮短處理系統(tǒng)準(zhǔn)^4妻收用戶輸M者執(zhí)行其它任務(wù)之前需要的時間。根據(jù)本文描ii^說明的原理和示例實施例,^i人識到,在不背離這樣的原理的前提下,所述實施例可在布置和細節(jié)上進行修改。例如,雖然前面將一個實^4笛述為^^石嫂和閃耕為非易失'f^^者器,但是備選實施例可以只<賴硬盤,只4M閃存,只^^]其它種類的非易失'li^器,或者非易失性德器技術(shù)的飾合iii且合。同時,雖然上述討論集中在特定實施例上,但是也可以想到其它的配置。即時本文中<錢例如"在一個實施例中,"在另一個實施例中"等表述,但是這些樹司"^fe意味著參考實施例的可能性,而且不#發(fā)明限于特定實施例配置。如本文中^i^的,這些術(shù)語可以參考可結(jié)合到其它實施例中的相同的或者不同的實施例。同樣,雖然已經(jīng)針對以特定順序執(zhí)行的特定#^描述了示例過程,但是可以將很多修改應(yīng)用那些過程來派生出本發(fā)明的大量備選實施例。例如,備選實施例可以包括4錢少于所有公開的才辦的過程,4頓附力口才辨的過程,使用不同順序的相同操作的過程,以及其中本文中公開的名^"操作背組合,細分,或以其它方式ii4亍改變的過程。本發(fā)明的備選實施例還包4封幾器可訪問的介質(zhì),對指令進行編碼以執(zhí)行本發(fā)明的操怍。這樣的實施例也可以稱為程序產(chǎn)品。這樣的機器可訪問介質(zhì)可包括^i^R艮于,,介質(zhì)例如M,石紐,CD-ROM,ROM和RAM;由機器或設(shè)備制造或形成的產(chǎn)品的其它可檢測的布置。指令還可以用于分布式環(huán)境中,而且可以在本ii^f口/或遠程^^供單個或者多個處理器機器訪問。還應(yīng)該理解本文中描述的硬件和軟件組件表示適當(dāng)獨立的功負U/f牛,使#^~個^^上老^]"以獨立于其它的被設(shè)計,構(gòu)造或者更新。在^^選實施例中,許多組件可以實現(xiàn)為硬件、軟件或者硬件和軟件的結(jié)合來提供本文中描ii^i兌明的功能性。用于4A/f亍本發(fā)明的才辨的硬件、軟件或者硬件和軟件的結(jié)^L可以被稱為邏輯或控制邏輯??紤]到通過本文描述的示例實施例可以容易地獲得多種有用的改變(permutation),這個詳細描述僅僅認為是解釋性的,而不應(yīng)該認為限定了本發(fā)明的范圍,因此,本發(fā)明所要求的范圍是落入下列權(quán)利要求的范圍和精神之內(nèi)的所有實現(xiàn)以及這樣的實現(xiàn)的所有等同內(nèi)容。權(quán)利要求1.一種用于在數(shù)據(jù)處理系統(tǒng)中使用閃存來模擬磁盤存儲器的方法,所述方法包括由數(shù)據(jù)處理系統(tǒng)的平臺軟件對數(shù)據(jù)處理系統(tǒng)的操作系統(tǒng)(OS)讀取所述數(shù)據(jù)處理系統(tǒng)的磁盤驅(qū)動器的存儲位置的嘗試進行攔截;響應(yīng)對OS讀取磁盤驅(qū)動器的嘗試的攔截,自動地確定用于所述讀取的存儲位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)據(jù)保留的磁盤區(qū)域;以及響應(yīng)確定所述存儲位置對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)據(jù)保留的所述磁盤區(qū)域,自動從數(shù)據(jù)處理系統(tǒng)的閃存而不是磁盤驅(qū)動器讀取數(shù)據(jù),并且作為對OS讀取所述磁盤驅(qū)動器的嘗試的響應(yīng),將所述數(shù)據(jù)從所述平臺軟件傳遞到所述OS。2.根據(jù)權(quán)利要求l的方法,其中,與數(shù)據(jù)處理系i^人非活動狀態(tài)到活動狀態(tài)的轉(zhuǎn)變有關(guān),當(dāng)所述OS正試圖將狀態(tài)數(shù)據(jù)/A;斤述磁盤驅(qū)動器加載到隨才/1^^##器(RAM)時,絲所述OS讀^U茲盤驅(qū)動器的嘗試的才辨由所述平臺軟件來執(zhí)行。3.根據(jù)權(quán)利要求2的方法,其中,在將所述數(shù)據(jù)處理系M/人休目財莫式恢復(fù)的過程中,攔截所述OS讀取所述磁盤驅(qū)動器的嘗試的操作由所述平臺軟件來執(zhí)行。4.才艮據(jù)權(quán)利要求1的方法,還包括由所述平臺軟件對所述OS將數(shù)據(jù)寫入所述磁盤驅(qū)動器的指定位置的嘗響應(yīng)對所述OS寫入磁盤驅(qū)動器的嘗試的拄截,自動地確定用于所述寫入的指定位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)t刷呆留的所述磁盤區(qū)域;以及響應(yīng)確定所述^fi者位置對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)據(jù)保留的所述磁盤區(qū)域,自動地將數(shù)據(jù)寫入所述閃存而不是所述磁盤驅(qū)動器。5.根據(jù)權(quán)利要求1的方法,還包括由所述平臺軟件來創(chuàng)建數(shù)據(jù)結(jié)構(gòu),以便將位置從為功率狀態(tài)轉(zhuǎn)變數(shù)才剔呆留的所迷磁盤區(qū)域#到所述閃存中的對應(yīng)位置。6.才財居權(quán)利要求1的方法,還包括配置所述數(shù)據(jù)處理系統(tǒng)的芯片組來響應(yīng)讀取所述磁盤驅(qū)動器的嘗試而產(chǎn)生中斷。7.根據(jù)權(quán)利要求l的方法,其中,織所述OS讀i^斤述磁盤驅(qū)動器的嘗試的,包4舌處理所述數(shù)據(jù)處理系統(tǒng)的芯片組響應(yīng)所述OS讀f^斤述磁盤驅(qū)動器的嘗試而產(chǎn)生的中斷。8.根據(jù)權(quán)利要求1的方法,其中,所述平臺軟件包括虛擬機監(jiān)控器(VMM),以及自動從閃存而不是所述磁盤驅(qū)動器讀Mt據(jù)并將所述數(shù)據(jù)傳遞到所述OS的操作由VMM來執(zhí)行。9.根據(jù)權(quán)利要求1的方法,其中,與啟動所述數(shù)據(jù)處理系M^關(guān),當(dāng)OS正嘗i劃尋應(yīng)用數(shù)據(jù)/A;斤述磁盤驅(qū)動器加載到隨才踏fl^i者器(RAM)時,M所述OS讀iMt述磁盤馬區(qū)動器的嘗試的才^t由所述平臺軟件來才W亍。10.—種數(shù)據(jù)處理系統(tǒng),包拾處理器;對所#理||#出響應(yīng)的隨才;1#^^1##器(RAM);對所i^t理H^出響應(yīng)的閃存;對所i^t理賄出響應(yīng)的磁盤馬區(qū)動器;才辦系統(tǒng)(OS),從RAM執(zhí)行;以及平臺軟件,從RAM執(zhí)行,所述平臺軟件執(zhí)行的才辦包括攔截所述OS讀i^斤述磁盤驅(qū)動器的存儲位置的嘗試;響應(yīng)對所述OS讀取所述磁盤驅(qū)動器的嘗試的攔截,自動地確定月于所述讀取的^f諸位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)^f呆留的磁盤區(qū)域;以及響應(yīng)確定所述^ft位置對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)據(jù)保留的所述磁盤區(qū)域,自動地從所述閃存而不是所述磁盤驅(qū)動器讀取數(shù)椐,以及作為對所述OS讀取所述磁盤驅(qū)動器的嘗試的響應(yīng),將所述lt據(jù)傳遞到所述OS。11.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),還包括與所述數(shù)據(jù)處理系統(tǒng)從非活動模式到活動模式的轉(zhuǎn)變相關(guān),當(dāng)所述OS正嘗淵奪狀態(tài)數(shù)據(jù)/A;斤i^茲盤驅(qū)動器加載到RAM時,所述平臺軟件可才辨來M所述OS讀取所述;茲盤驅(qū)動器的嘗試。12.才財居權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),還包拾在將所述數(shù)據(jù)處理系^A休目M莫式恢復(fù)的過程中,當(dāng)所述OS正嘗淵奪狀態(tài)數(shù)據(jù)>^斤^^茲盤驅(qū)動器加載到RAM時,所述平臺軟件可#^來拉截所述OS讀^^斤述磁盤驅(qū)動器的嘗試。13.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),還包拾所述平臺軟件可才軿來擬亍的才軿包括對所述OS將數(shù)據(jù)寫A/斤述磁盤驅(qū)動器的指定位置的嘗試進行攔截;響應(yīng)對所述OS寫/^斤述磁盤驅(qū)動器的嘗試的M,自動地確定用于所述寫入的指定位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)t刷呆留的磁盤區(qū)域;以及響應(yīng)確定所述^^位M"應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)拾床留的磁盤區(qū)域,自動:^M尋l^居寫/^斤述閃存而不;l所i^f茲盤馬區(qū)動器。14.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),還包括所述平臺軟件可才^t來創(chuàng)建數(shù)據(jù)結(jié)構(gòu),以便將位置從為功率狀態(tài)轉(zhuǎn)變數(shù)拾床留的所述磁盤區(qū)域映射到所述閃存中的對應(yīng)位置。15.根據(jù)權(quán)利要求10的數(shù)悟處理系統(tǒng),還包括對所#理|14出響應(yīng)的芯片組;以及所述平臺軟件可操作來配置所述芯片組以便響應(yīng)讀取所述磁盤驅(qū)動器的嘗試而產(chǎn)生中斷。16.根據(jù)權(quán)利要求15的數(shù)據(jù)處理系統(tǒng),其中,所述平臺l^f牛包括中斷處理機,處理由所述芯片組響應(yīng)所述OS讀:^^斤述磁盤驅(qū)動器的嘗試而產(chǎn)生的中斷。17.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),其中,所述平臺專欠件包括虛才甜幾監(jiān)控器(VMM),從閃存而不是所述磁盤驅(qū)動器讀取數(shù)據(jù)并且將所述數(shù)據(jù)傳遞到OS。18.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),其中,所述平臺軟件包括虛扣對幾監(jiān)控器(VMM),|^亍的#^包括管i戶虛扣:^(VM)來為所述OS提供,環(huán)嫂;從閃存而不是所述磁盤驅(qū)動器讀f^斤述數(shù)據(jù);以及將所述數(shù)據(jù)^it到客戶VM中的所述OS。19.根據(jù)權(quán)利要求10的數(shù)據(jù)處理系統(tǒng),還包括與啟動所述#_據(jù)處理系鄉(xiāng)錄關(guān),當(dāng)所述OS正嘗^1奪應(yīng)用數(shù)據(jù)^^斤述磁盤驅(qū)動器加載到RAM時,所述平臺軟件可"所述OS讀斤述磁盤驅(qū)動器的嘗于M。20.—種設(shè)備,包括才幾器可訪問質(zhì);以及所述機器可訪問介質(zhì)中的平臺軟件,所述平臺軟件包括指令,所述指令在由具有磁盤驅(qū)動器和閃存的數(shù)據(jù)處理系統(tǒng)中的處理器執(zhí)行時,進行的才辨包括)^辦系統(tǒng)(OS)讀取所述磁盤驅(qū)動器的^^位置的嘗試進行絲;響應(yīng)對所述OS讀取所述;茲盤驅(qū)動器的嘗試的拄截,自動地確定用于所述讀取的^^位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)才劇呆留的磁盤區(qū)域;以及響應(yīng)確定所述##位置對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)據(jù)保留的所述磁盤區(qū)域,自動地從所述閃存而不是所述磁盤驅(qū)動器讀取數(shù)據(jù),以及作為對所述OS讀ip^斤述,茲盤驅(qū)動器的嘗試的響應(yīng),將所述數(shù)據(jù)傳遞到所述OS。21.根據(jù)權(quán)利要求20的設(shè)備,還包括與所述數(shù)據(jù)處理系鄉(xiāng)非活動模式到活動模式的轉(zhuǎn)變有關(guān),當(dāng)所述OS正嘗試將狀態(tài)數(shù)據(jù)從所述磁盤馬區(qū)動器加載到隨才踏^##器(RAM)時,所述平臺軟件可來攔截所述OS讀取所述不茲盤驅(qū)動器的嘗試。22.根據(jù)權(quán)利要求20的設(shè)備,還包括在將所述數(shù)據(jù)處理系休S^莫式恢復(fù)的過程中,當(dāng)所述OS正嘗試將狀態(tài)數(shù)據(jù)從所述磁盤驅(qū)動器加載到隨才4旨賭器(RAM)時,所述平臺軟件可^ft來攔截所述OS讀取所述磁盤驅(qū)動器的嘗試。23.根據(jù)權(quán)利要求20的設(shè)備,還包括所述平臺軟件可才辨來執(zhí)行的才^ft包括對所述OS將數(shù)據(jù)寫A^斤述磁盤驅(qū)動器的指定位置的嘗試進行攔截;響應(yīng)對所述OS寫/^斤i^茲盤驅(qū)動器的嘗試的攔截,自動地確^]于所述寫入的指定位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)寺刷果留的所述磁盤區(qū)域;以及響應(yīng)確定所述^*位3^"應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)拾沐留的所述磁盤區(qū)域,自動地將數(shù)據(jù)寫/^斤述閃存而不是所述磁盤驅(qū)動器。24.根據(jù)權(quán)利要求20的設(shè)備,還包括所述平臺軟件可才^ft來創(chuàng)^:據(jù)結(jié)構(gòu),以便將位置從為功率狀態(tài)轉(zhuǎn)變數(shù)振床留的所述磁盤區(qū)域映射到所述閃存中的對應(yīng)位置。25.根據(jù)權(quán)利要求20的設(shè)備,還包括所述平臺軟件可操作來配置所述數(shù)梧處理系統(tǒng)的芯片組,以便響應(yīng)讀取所述磁盤驅(qū)動器的嘗試而產(chǎn)生中斷。26.根據(jù)權(quán)利要求25的設(shè)備,其中,所述平臺軟件包括中斷處理機,處理由所述芯片組響應(yīng)所述OS讀^^斤述磁盤驅(qū)動器的嘗試而產(chǎn)生的中斷。27.根據(jù)權(quán)利要求20的設(shè)備,其中,所述平臺軟件包括虛才財幾監(jiān)控器(VMM),從閃存而不是所述磁盤驅(qū)動器讀取數(shù)據(jù)并且將所述數(shù)據(jù)傳遞到所述OS。28.根據(jù)權(quán)利要求20的設(shè)備,其中,所述平臺軟件包括虛杏對幾監(jiān)控器(VMM),#^亍的#^包括管^戶虛才財幾(VM)來為所述OS提供才辨環(huán)嫂;從閃存而不是所述磁盤驅(qū)動器讀取所述數(shù)據(jù);以及將所述數(shù)據(jù)傳遞到客戶VM中的所述OS。29.根據(jù)權(quán)利要求20的設(shè)備,還包括與啟動所述l^據(jù)處理系鄉(xiāng)^f關(guān),當(dāng)所述OS正嘗試將應(yīng)用數(shù)據(jù)/A^斤述磁盤驅(qū)動器加鬆ijRAM時,所述平臺軟件可^4t知十所述OS讀取所述磁盤驅(qū)動器的嘗試i^f亍"^截。30.—種數(shù)據(jù)處理系統(tǒng),包括處理器;對所^h理M出響應(yīng)的隨才;L4f^器(RAM);對所^理M出響應(yīng)的閃存;對所i^理l^ft出響應(yīng)的^茲盤驅(qū)動器;*#系統(tǒng)(OS),從RAM執(zhí)行;以及虛扣對幾監(jiān)控器(VMM),從R/dVI才;W亍,VMM^Vf亍的才^ft包括管^^戶虛扣對幾(VM)來為所述OS提供^^環(huán)嫂;在將所述數(shù)據(jù)處理系MA非活動模式轉(zhuǎn)變到活動模式的過程中,對所述OS讀^^斤述磁盤驅(qū)動器的^ft位置的嘗試進行^Jl;響應(yīng)對所述OS讀取所述》茲盤驅(qū)動器的嘗試的攔截,自動地確定用于所述讀取的^^位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)^f呆留的磁盤區(qū)域;以及響應(yīng)確定所述存儲位置對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)據(jù)保留的所述磁盤區(qū)域,自動地從所述閃存而不是所述磁盤驅(qū)動器讀取數(shù)據(jù),以及作為對所述OS讀取J斤述磁盤驅(qū)動器的嘗試的響應(yīng),將所述數(shù)據(jù)傳遞到客戶VM中的所述os。31.根據(jù)權(quán)利要求30的數(shù)據(jù)處理系統(tǒng),還包括在將所述數(shù)據(jù)處理系鄉(xiāng)W人休目M莫式恢復(fù)的過程中,當(dāng)所述OS正嘗試將狀態(tài)數(shù)據(jù)/A^斤述磁盤驅(qū)動器加載到RAM時,VMM可才^t知于所述OS讀取所述磁盤驅(qū)動器的嘗^ii行^^1。32.根據(jù)權(quán)利要求30的數(shù)據(jù)處理系統(tǒng),還包括在啟動所述數(shù)據(jù)處理系統(tǒng)的過程中,當(dāng)所述OS正嘗試將應(yīng)用數(shù)據(jù)從所述磁盤驅(qū)動器加載到RAM時,VMM可操作^^十所述OS讀取所述磁盤驅(qū)動器的嘗試^i^于攔截。全文摘要本發(fā)明的名稱是“用于快速改變數(shù)據(jù)處理系統(tǒng)的功率狀態(tài)的方法和設(shè)備”。數(shù)據(jù)處理系統(tǒng)的特征是具有處理器,隨機存取存儲器(RAM),閃存,磁盤驅(qū)動器,操作系統(tǒng)(OS)以及平臺軟件。在將數(shù)據(jù)處理系統(tǒng)從非活動模式轉(zhuǎn)變到活動模式的過程中,平臺軟件能夠?qū)S讀取磁盤驅(qū)動器的存儲位置的嘗試進行攔截。響應(yīng)對OS讀取磁盤驅(qū)動器的嘗試的攔截,平臺軟件可以自動地確定用于所述讀取的存儲位置是否對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)據(jù)保留的磁盤區(qū)域。如果存儲位置對應(yīng)于為功率狀態(tài)轉(zhuǎn)變數(shù)據(jù)保留的區(qū)域,則平臺軟件可以自動從閃存而不是磁盤驅(qū)動器讀取數(shù)據(jù),并且將該數(shù)據(jù)傳遞到OS。描述并要求了其它實施例。文檔編號G06F1/32GK101320314SQ200810144638公開日2008年12月10日申請日期2008年3月7日優(yōu)先權(quán)日2007年3月8日發(fā)明者A·J·菲什,G·J·欣頓,M·A·羅思曼,M·D·金尼,M·S·多蘭,V·J·齊默申請人:英特爾公司