專利名稱:計算機(jī)工作狀態(tài)轉(zhuǎn)換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機(jī)工作狀態(tài)轉(zhuǎn)換方法。
背景技術(shù):
高級配置和電源管理接口 (Advanced Configuration and Power Management Interface, ACPI)是1997年由英特爾(INTEL)、微軟(MICROSOFT)和東芝(TOSHIBA)共 同開發(fā)的一種電源管理標(biāo)準(zhǔn)。
ACPI定義了六種電源模式S0-S5,它們代表的含義分別是S0工作模式計算機(jī)處于正 常工作狀態(tài),所有設(shè)備全開;Sl睡眠模式稱為P0S (Power on Suspend),除了通過CPU時 鐘控制器將CPU關(guān)閉之外,其他的部件仍然正常工作;S2睡眠模式CPU處于停止運作狀態(tài) ,總線時鐘也被關(guān)閉,但其余的設(shè)備仍然運轉(zhuǎn);S3睡眠模式稱為STR (Suspend to RAM, 該狀態(tài)稱作掛起到內(nèi)存),除內(nèi)存之外的部件都停止工作,將系統(tǒng)進(jìn)入STR前的工作狀態(tài)數(shù) 據(jù)暫存到內(nèi)存中,電源仍然繼續(xù)為內(nèi)存等最必要的設(shè)備供電,以確保數(shù)據(jù)不丟失;S4睡眠模 式稱為STD (Suspend to Disk,掛起到硬盤),其與STR的原理是完全一樣的,只不過將 系統(tǒng)進(jìn)入STD前的工作狀態(tài)數(shù)據(jù)構(gòu)建成一影像文件并將該影像文件暫存于硬盤,此時系統(tǒng)主 電源關(guān)閉,但是硬盤仍然帶電并可以被喚醒;S5關(guān)機(jī)模式包括電源在內(nèi)的所有設(shè)備全部關(guān) 閉。
當(dāng)計算機(jī)處于S1, S2, S3三種睡眠模式時,只要系統(tǒng)斷電,所有工作狀態(tài)數(shù)據(jù)都會丟失 ,以至于系統(tǒng)無法快速由該三種睡眠模式轉(zhuǎn)入SO工作模式。而當(dāng)計算機(jī)處于S4睡眠模式時, 即使系統(tǒng)斷電,當(dāng)系統(tǒng)要轉(zhuǎn)入S0工作模式時,可以將硬盤中的影像文件還原至內(nèi)存以實現(xiàn)順 利開機(jī)。然而,計算機(jī)從S4睡眠模式轉(zhuǎn)入S0工作模式也存在缺陷第一,當(dāng)用戶在S0工作模 式下開啟一個程序,在沒有儲存的情況下進(jìn)入S4睡眠模式,在S4睡眠模式下拔掉電源并更改 了系統(tǒng)開機(jī)時的啟動裝置(如內(nèi)存、硬盤)并關(guān)閉電源后,再次開啟電源時,因為開機(jī)時的 啟動裝置改變了,系統(tǒng)無法恢復(fù)到S0工作模式,尚未儲存的程序也無法還原;第二,硬盤的 啟動及讀寫速度比較慢,所以系統(tǒng)進(jìn)入或離開S4睡眠模式的時間也比較長。
發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提供一種計算機(jī)工作狀態(tài)轉(zhuǎn)換方法,能夠使得計算機(jī)穩(wěn)定且迅速 地實現(xiàn)睡眠模式與工作模式的轉(zhuǎn)換。該計算機(jī)工作狀態(tài)轉(zhuǎn)換方法包括以下步驟(A)輸入使計算機(jī)從工作模式轉(zhuǎn)入睡眠模 式的指令;(B)電源管理器發(fā)送操作停止指令通知操作系統(tǒng)正在執(zhí)行的程序;(C)儲存內(nèi) 存中當(dāng)前工作狀態(tài)數(shù)據(jù)構(gòu)建成的影像文件至閃存;(D)執(zhí)行進(jìn)入睡眠控制方法使計算機(jī)系 統(tǒng)進(jìn)入睡眠狀態(tài);(E)輸入使計算機(jī)從睡眠模式轉(zhuǎn)入工作模式的指令;(F)基本輸入輸出 系統(tǒng)初始化系統(tǒng)硬件,并檢査系統(tǒng)硬件是否改變;(G)若系統(tǒng)硬件未發(fā)生改變,則從閃存 還原內(nèi)存影像;(H)若硬件發(fā)生改變,則基本輸入輸出系統(tǒng)設(shè)定計算機(jī)系統(tǒng)離開睡眠模式 、開機(jī)上電自檢并初始化內(nèi)存空間,建立內(nèi)存映射,操作系統(tǒng)電源管理系統(tǒng)從硬盤還原內(nèi)存 影像或載入操作系統(tǒng)到內(nèi)存;及(I)操作系統(tǒng)電源管理系統(tǒng)執(zhí)行轉(zhuǎn)入工作狀態(tài)控制方法使 計算機(jī)系統(tǒng)從睡眠模式轉(zhuǎn)入工作模式。
相較于現(xiàn)有技術(shù),本發(fā)明提供的計算機(jī)工作狀態(tài)轉(zhuǎn)換方法在計算機(jī)系統(tǒng)進(jìn)入S4睡眠模式 前通過電源管理器發(fā)送停止操作事件通知所有程序,確認(rèn)所有程序都已經(jīng)關(guān)閉,避免了當(dāng)系 統(tǒng)返回工作狀態(tài)因內(nèi)存影像遺失或開機(jī)裝置改變造成的用戶文件遺失的情況,此外,該方法 在計算機(jī)系統(tǒng)進(jìn)入S4睡眠模式時將內(nèi)存影像存放于主板上的閃存,加快了計算機(jī)開關(guān)機(jī)讀、 寫內(nèi)存影像的速度。
圖1是本發(fā)明計算機(jī)工作狀態(tài)轉(zhuǎn)換方法較佳實施例的應(yīng)用環(huán)境圖。
圖2是本發(fā)明計算機(jī)工作狀態(tài)轉(zhuǎn)換方法較佳實施例的總流程圖。
圖3是圖2中一步驟的細(xì)化流程圖。
具體實施例方式
如圖1所示,是本發(fā)明計算機(jī)工作狀態(tài)轉(zhuǎn)換方法較佳實施例的應(yīng)用環(huán)境圖。該計算機(jī)包 括三層架構(gòu)操作系統(tǒng)(Operation System, OS)用戶層、內(nèi)核層和硬件層。操作系統(tǒng)用戶 層包括電源管理器10及應(yīng)用程序20。操作系統(tǒng)內(nèi)核層包括系統(tǒng)內(nèi)核30、操作系統(tǒng)直接電源管 理(Operation System-Directed Power Management, 0SPM) 40 (以下簡稱0SPM系統(tǒng)40)、 高級配置禾口電源管理接口 (Advanced Configuration and Power Management Interface, ACPI) 50 (以下簡稱ACPI接口50)及設(shè)備驅(qū)動程序60。硬件層包括硬件70及基本輸入輸出系 統(tǒng)(Basic Input/Output System, BIOS) 80 (以下簡稱BIOS 80)。
其中,硬件70包括計算機(jī)主板、各種芯片、存儲設(shè)備及其它外圍設(shè)備,如內(nèi)存、閃存及 硬盤等。圖1中僅示出硬盤70及閃存72。
如圖2所示,是本發(fā)明計算機(jī)工作狀態(tài)轉(zhuǎn)換方法較佳實施例的總流程圖。
首先,在步驟SIOO,用戶向處于S0工作模式中的計算機(jī)系統(tǒng)下達(dá)進(jìn)入S4睡眠模式的指令在步驟S102,電源管理器10通過系統(tǒng)內(nèi)核30發(fā)送操作停止指令通知所有程序,包括用戶 層的所有應(yīng)用程序20及內(nèi)核層的各種設(shè)備驅(qū)動程序60,以提醒用戶對運行中的應(yīng)用程序20進(jìn) 行儲存作業(yè),避免系統(tǒng)從S4睡眠停止返回時資料丟失。
在步驟S104, BIOS 80儲存內(nèi)存中當(dāng)前工作狀態(tài)數(shù)據(jù)構(gòu)建成的影像文件至閃存72。在 ACPI規(guī)范中,系統(tǒng)由工作狀態(tài)進(jìn)入S4睡眠狀態(tài)有兩種機(jī)制OSPM發(fā)起機(jī)制及BIOS發(fā)起機(jī)制。 若系統(tǒng)應(yīng)用OSPM發(fā)起機(jī)制,則在系統(tǒng)進(jìn)入S4睡眠狀態(tài)前,由OSPM負(fù)責(zé)儲存內(nèi)存中所有數(shù)據(jù)到 非易失性儲存設(shè)備(如硬盤,閃存),當(dāng)系統(tǒng)被喚醒時由OSPM還原內(nèi)存數(shù)據(jù);若系統(tǒng)應(yīng)用 BIOS發(fā)起機(jī)制,則在系統(tǒng)進(jìn)入S4睡眠模式前,由BIOS負(fù)責(zé)儲存內(nèi)存中所有數(shù)據(jù)到非易失性儲 存設(shè)備,當(dāng)系統(tǒng)被喚醒時由BIOS還原內(nèi)存數(shù)據(jù)。支持BI0S機(jī)制發(fā)起S4睡眠模式的平臺同時支 持OSPM發(fā)起機(jī)制,也就是說,影像文件除了被BIOS 80儲存至內(nèi)存72,還被OSPM 40通過系統(tǒng) 內(nèi)核30及ACPI接口40儲存至硬盤71。
在步驟S106, OSPM 40執(zhí)行進(jìn)入睡眠狀態(tài)控制方法令計算機(jī)系統(tǒng)進(jìn)入S4睡眠模式。所述 進(jìn)入睡眠狀態(tài)控制方法包括TTS (Transition To State) 、 PTS (Pr印are To Sle印)及 GTS (Going To Sle印)控制方法。OSPM在系統(tǒng)開始由工作模式轉(zhuǎn)換至睡眠模式時執(zhí)行TTS控 制方法,主要是處理進(jìn)入睡眠模式前和下次喚醒的準(zhǔn)備工作。OSPM 40在系統(tǒng)由工作模式轉(zhuǎn) 換至睡眠模式期間執(zhí)行PTS控制方法,主要是通知系統(tǒng)將要進(jìn)入的是哪種睡眠模式,以便執(zhí) 行相應(yīng)的電源管理動作。GTS控制方法允許ACPI系統(tǒng)韌體在進(jìn)入睡眠模式前執(zhí)行任何必要的 系統(tǒng)定義功能。執(zhí)行完這些控制方法后,系統(tǒng)進(jìn)入S4睡眠模式。
在步驟S108,用戶向計算機(jī)系統(tǒng)下達(dá)從S4睡眠模式轉(zhuǎn)入S0工作模式的指令。
在步驟SllO, BIOS 80初始化系統(tǒng)基本硬件70,包括CPU (Centre Process Unit,中央 處理器),各種存儲設(shè)備(如內(nèi)存、硬盤71、閃存72)、各種芯片及其它外圍設(shè)備。
在步驟S112, BIOS 80檢査系統(tǒng)處于S4睡眠模式時硬件70是否改變。如果系統(tǒng)硬件70沒 有改變,則進(jìn)入步驟S114, BIOS 80從閃存還原內(nèi)存影像文件。
在步驟S116, OSPM 40執(zhí)行轉(zhuǎn)入工作模式指令使系統(tǒng)從S4睡眠模式轉(zhuǎn)入S0工作模式。所 述轉(zhuǎn)入工作模式指令包括將系統(tǒng)設(shè)置為ACPI模式、執(zhí)行BFS (Back From Sle印)控制方法及 WAK (Wake)控制方法。OSPM 40在ACPI模式下、系統(tǒng)由S4睡眠模式轉(zhuǎn)入工作模式前執(zhí)行BFS 控制方法,允許ACPI系統(tǒng)韌體在將控制權(quán)交給OS前執(zhí)行任何必要的系統(tǒng)定義功能。之后, OSPM 40執(zhí)行WAK控制方法通過系統(tǒng)內(nèi)核30喚醒程序,包括應(yīng)用程序20及設(shè)備驅(qū)動程序60,設(shè) 備驅(qū)動程序60驅(qū)動相應(yīng)硬件70,計算機(jī)系統(tǒng)由S4睡眠模式轉(zhuǎn)入S0工作模式。在步驟S118,操作系統(tǒng)初始化。
在上述步驟S112,如果BI0S 80檢査系統(tǒng)在S4睡眠模式期間硬件70發(fā)生改變,則進(jìn)入步 驟S120, BIOS 80設(shè)置系統(tǒng)離開睡眠模式。
之后,流程進(jìn)入步驟S122,系統(tǒng)進(jìn)入一般開機(jī)模式,BIOS 80開始上電自檢并初始化內(nèi) 存空間、建立內(nèi)存空間的映射,以避免BIOS 80將控制權(quán)交給OS后才發(fā)現(xiàn)計算機(jī)系統(tǒng)無法按 照從睡眠模式轉(zhuǎn)入工作模式的方式開機(jī)。
在步驟S124, OSPM 40從硬盤71還原內(nèi)存影像或直接從硬盤71載入操作系統(tǒng)到內(nèi)存。之 后,流程進(jìn)入步驟S116。
如圖3所示,是圖2中步驟S124的細(xì)化流程圖。
在步驟S200, OSPM 40獲取內(nèi)存映射。
在步驟S202, OSPM 40檢査硬盤71中是否存在與內(nèi)存映射相應(yīng)的內(nèi)存影像文件,即非易 失性內(nèi)存影像文件。
如果存在內(nèi)存影像文件,則流程進(jìn)入步驟S204, OSPM 40檢査內(nèi)存影像是否正確,例如 通過計算內(nèi)存影像的校驗和(checksum)。
如果內(nèi)存影像正確,則流程進(jìn)入步驟S206, OSPM 40復(fù)制內(nèi)存影像文件到內(nèi)存。之后, 流程進(jìn)入步驟S116。
在上述步驟S202,若OSPM 40檢査硬盤71中沒有內(nèi)存影像文件,則流程進(jìn)入步驟S206, OSPM 40從硬盤71中載入操作系統(tǒng)到內(nèi)存。之后,流程進(jìn)入步驟S122。
在上述步驟S204,若OSPM 40檢査得到硬盤71中的內(nèi)存影像不正確,則流程進(jìn)入步驟 S208。之后,流程進(jìn)入步驟S116。
權(quán)利要求
1.一種計算機(jī)工作狀態(tài)轉(zhuǎn)換方法,其特征在于,該方法包括以下步驟輸入使計算機(jī)從工作模式轉(zhuǎn)入睡眠模式的指令;電源管理器發(fā)送操作停止指令通知操作系統(tǒng)正在執(zhí)行的程序;儲存內(nèi)存中當(dāng)前工作狀態(tài)數(shù)據(jù)構(gòu)建成的影像文件至閃存;執(zhí)行進(jìn)入睡眠控制方法使計算機(jī)系統(tǒng)進(jìn)入睡眠狀態(tài);輸入使計算機(jī)從睡眠模式轉(zhuǎn)入工作模式的指令;基本輸入輸出系統(tǒng)初始化系統(tǒng)硬件,并檢查系統(tǒng)硬件是否改變;若系統(tǒng)硬件未發(fā)生改變,則從閃存還原內(nèi)存影像;若硬件發(fā)生改變,則基本輸入輸出系統(tǒng)設(shè)定計算機(jī)系統(tǒng)離開睡眠模式、開機(jī)上電自檢并初始化內(nèi)存空間,建立內(nèi)存映射,操作系統(tǒng)電源管理系統(tǒng)從硬盤還原內(nèi)存影像或載入操作系統(tǒng)到內(nèi)存;及操作系統(tǒng)電源管理系統(tǒng)執(zhí)行轉(zhuǎn)入工作狀態(tài)控制方法使計算機(jī)系統(tǒng)從睡眠模式轉(zhuǎn)入工作模式。
2.如權(quán)利要求l所述的計算機(jī)工作狀態(tài)轉(zhuǎn)換方法,其特征在于,其中步驟從硬盤還原內(nèi)存影像或載入操作系統(tǒng)到內(nèi)存包括以下步驟操作系統(tǒng)電源管理系統(tǒng)檢査硬盤中是否存在與內(nèi)存映射相應(yīng)的內(nèi)存影像文件; 如果硬盤中不存在與內(nèi)存映射相應(yīng)的內(nèi)存影像文件,則操作系統(tǒng)電源管理系統(tǒng)從硬盤載入操作系統(tǒng);如果硬盤中存在與內(nèi)存映射相應(yīng)的內(nèi)存影像文件,則操作系統(tǒng)電源管理系統(tǒng)檢査硬盤 中的內(nèi)存影像文件是否正確;如果內(nèi)存影像文件正確,則操作系統(tǒng)電源管理系統(tǒng)復(fù)制內(nèi)存影像文件至內(nèi)存,如果內(nèi) 存影像文件有錯誤,則操作系統(tǒng)電源管理系統(tǒng)從硬盤載入操作系統(tǒng)。
3.如權(quán)利要求l所述的計算機(jī)工作狀態(tài)轉(zhuǎn)換方法,其特征在于,所述進(jìn)入睡眠狀態(tài)控制方法包括轉(zhuǎn)換狀態(tài)控制方法、準(zhǔn)備睡眠控制方法及進(jìn)入睡眠控制方法。
4.如權(quán)利要求l所述的計算機(jī)工作狀態(tài)轉(zhuǎn)換方法,其特征在于,所 述轉(zhuǎn)入工作狀態(tài)控制方法包括設(shè)置計算機(jī)系統(tǒng)為ACPI模式、執(zhí)行離開睡眠控制方法及喚醒程 序控制方法。
5.如權(quán)利要求l所述的計算機(jī)工作狀態(tài)轉(zhuǎn)換方法,其特征在于,其 中所述睡眠模式為掛起到硬盤睡眠模式。
全文摘要
本發(fā)明提供一種計算機(jī)工作狀態(tài)轉(zhuǎn)換方法。該方法在系統(tǒng)進(jìn)入S4睡眠模式前通過電源管理器發(fā)送停止操作事件通知所有程序,確認(rèn)所有程序都已經(jīng)關(guān)閉,并且該方法在計算機(jī)系統(tǒng)進(jìn)入S4睡眠模式時將內(nèi)存影像存放于主板上的閃存。利用本發(fā)明,可以避免計算機(jī)系統(tǒng)從S4睡眠模式返回工作模式時因內(nèi)存影像遺失或開機(jī)裝置改變造成的用戶文件遺失的情況,此外,還可以加快計算機(jī)工作狀態(tài)轉(zhuǎn)換時讀、寫內(nèi)存影像的速度。
文檔編號G06F11/14GK101515194SQ200810300368
公開日2009年8月26日 申請日期2008年2月21日 優(yōu)先權(quán)日2008年2月21日
發(fā)明者莊文正, 陳欽洲, 黃宏棋 申請人:鴻富錦精密工業(yè)(深圳)有限公司;鴻海精密工業(yè)股份有限公司