TWI610239B - 休眠喚醒方法及電子裝置 - Google Patents
休眠喚醒方法及電子裝置 Download PDFInfo
- Publication number
- TWI610239B TWI610239B TW102148783A TW102148783A TWI610239B TW I610239 B TWI610239 B TW I610239B TW 102148783 A TW102148783 A TW 102148783A TW 102148783 A TW102148783 A TW 102148783A TW I610239 B TWI610239 B TW I610239B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- pages
- image file
- hibernation
- processing unit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Stored Programmes (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種休眠喚醒方法及電子裝置。電子裝置包括外部儲存裝置、主記憶體、映像檔產生電路及頁面搬移電路。映像檔產生電路係於休眠階段將頁面寫入外部儲存裝置以產生休眠映像檔。頁面搬移電路於喚醒階段根據休眠映像檔將頁面由外部儲存裝置連續寫回主記憶體之連續頁面範圍,喚醒階段係於休眠階段之後。
Description
本發明是有關於一種休眠喚醒方法及電子裝置。
隨著生活腳步的加快,電子裝置的快速開機更越顯重要。大部分的智慧型裝置將關機按鈕設定為處於待機模式(standby),但其並非真正的關機模式。待機模式雖然可以有效的縮短等待時間,但整個電子系統依然持續的消耗電力,這樣的技巧屬於「高耗電型快速開機」。待機模式所消耗的電力,讓全世界的二氧化碳排放量增加1%。歐盟已經決議智慧型家電於關機不使用時,其耗電量必須小於0.1瓦,為此我們需要開發在休眠(hibernation)、斷電或關機之下可高速開機的方法來取代需耗電的待機/甦醒模式,休眠/喚醒模式是一個可行的方案但傳統休眠喚醒方法在開機時會逐一將頁面寫入頁面緩衝區,再將頁面緩衝區的頁面逐一複製到主記憶體的目標頁面,程序十分耗時,因此目前產業需一種新的快速喚醒、開機的方法。
本發明係有關於一種休眠喚醒方法及電子裝置。
根據本發明,提出一種休眠喚醒方法。休眠喚醒方法包括於休眠階段將頁面寫入外部儲存裝置以產生休眠映像檔;以及於喚醒階段根據休眠映像檔將頁面由外部儲存裝置連續寫回主記憶體之連續頁面範圍,喚醒階段係於休眠階段之後。
根據本發明,提出一種電子裝置。電子裝置包括外部儲存裝置、主記憶體、映像檔產生電路及頁面搬移電路。映像檔產生電路用以於休眠階段將頁面寫入外部儲存裝置以產生休眠映像檔。頁面搬移電路用以於喚醒階段根據休眠映像檔將頁面由外部儲存裝置連續寫回主記憶體之連續頁面範圍,喚醒階段係於休眠階段之後。
根據本發明,提出一種休眠喚醒方法。休眠喚醒方法包括:於休眠階段將頁面寫入外部儲存裝置以產生休眠映像檔,並將相關於頁面之第一頁面表更新為第二頁面表;以及於喚醒階段根據休眠映像檔之檔頭或頁面之頁面頭內之頁面資訊將頁面由外部儲存裝置寫回第二頁面表所記載該頁面在主記憶體內的位置,喚醒階段係於休眠階段之後。
根據本發明,提出一種電子裝置。電子裝置包括外部儲存裝置、主記憶體及中央處理器。電子裝置包括外部儲存裝置、主記憶體、映像檔產生電路及頁面搬移電路。映像檔產生電路用以於休眠階段將複數個頁面寫入外部儲存裝置以產生休眠映像檔,並將相關於頁面之第一頁面表更新為第二頁面表。頁面
搬移電路用以於喚醒階段根據休眠映像檔之檔頭或頁面之頁面頭內之頁面資訊將頁面由外部儲存裝置寫回第二頁面表所記載該頁面在主記憶體內的位置,喚醒階段係於休眠階段之後。
根據本發明,提出一種休眠喚醒方法。休眠喚醒方法包括:於休眠階段,經由第一處理單元將頁面自主記憶體寫入外部儲存裝置以產生休眠映像檔;以及於喚醒階段,經由第二處理單元執行核心載入及初始化程序,並平行地經由第一處理單元移動休眠映像檔之頁面至主記憶體,喚醒階段係於休眠階段之後。
根據本發明,提出一種電子裝置。電子裝置包括外部儲存裝置、主記憶體、第一處理單元及第二處理單元。第一處理單元或第二處理單元於休眠階段將頁面自主記憶體寫入外部儲存裝置以產生休眠映像檔。第一處理單元於喚醒階段執行核心載入及初始化程序,並平行地經由第二處理單元移動休眠映像檔之該面至主記憶體,喚醒階段係於休眠階段之後。
根據本發明,提出一種電子裝置。電子裝置包括外部儲存裝置、主記憶體及中央處理器。中央處理器用以於休眠階段將複數個頁面寫入外部儲存裝置以產生休眠映像檔,並用以於喚醒階段根據休眠映像檔將頁面由該外部儲存裝置連續寫回主記憶體之連續頁面範圍,喚醒階段係於休眠階段之後。
根據本發明,提出一種電子裝置。電子裝置包括外部儲存裝置、主記憶體及中央處理器。中央處理器用以於休眠階
段將複數個頁面寫入外部儲存裝置以產生休眠映像檔,並將相關於頁面之第一頁面表更新為第二頁面表,並用以於喚醒階段根據休眠映像檔之檔頭或頁面之頁面頭內之頁面資訊將頁面由外部儲存裝置寫回第二頁面表所記載頁面在主記憶體內的位置,喚醒階段係於休眠階段之後。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
1、8‧‧‧電子裝置
11‧‧‧外部儲存裝置
12‧‧‧主記憶體
12a‧‧‧快取區
13‧‧‧映像檔產生電路
16‧‧‧頁面搬移電路
14、15‧‧‧處理單元
31~36、51~54、71~75、81~86、201~213、301~304、401~404、501~504、601~605、6031~6037‧‧‧步驟
A、B、C‧‧‧節點
RA‧‧‧連續頁面範圍
SI‧‧‧休眠映像檔
SPA‧‧‧連續頁面陣列
SZ1‧‧‧休眠映像檔之大小
PA~PK、RPA~RPD‧‧‧頁面
Pd‧‧‧頁面間隔
第1圖繪示係為依照第一實施例之電子裝置之方塊圖。
第2圖繪示係為依照第一實施例之休眠階段之主記憶體與外部儲存裝置之示意圖。
第3圖繪示係為依照第一實施例之關機流程圖。
第4圖繪示係為於喚醒階段之主記憶體與外部儲存裝置之示意圖。
第5圖繪示係為依照第一實施例之開機流程圖。
第6圖繪示係為依照第二實施例之主記憶體與外部儲存裝置之示意圖。
第7圖繪示係為依照第二實施例之關機流程圖。
第8圖繪示係為依照第二實施例之開機流程圖。
第9圖繪示係為依照第三實施例之電子裝置之方塊圖。
第10A圖及第10B圖繪示係為依照第三實施例之開機流程圖。
第11圖繪示係為依照第四實施例之休眠階段之主記憶體與外部儲存裝置之示意圖。
第12圖繪示係為依照第四實施例之喚醒階段之主記憶體與外部儲存裝置之示意圖。
第13圖繪示係為依照第四實施例之關機流程圖。
第14圖繪示係為依照第五實施例之休眠階段之主記憶體與外部儲存裝置之示意圖。
第15圖繪示係為依照第五實施例之喚醒階段之主記憶體與外部儲存裝置之示意圖。
第16圖繪示係為依照第五實施例之關機流程圖。
第17圖繪示係為依照第六實施例之開機流程圖。
第18圖繪示係為依照第七實施例之開機流程圖。
第19圖繪示係為步驟603之細部流程圖。
請參照第1圖,第1圖繪示係為依照第一實施例之電子裝置之方塊圖。電子裝置1包括外部儲存裝置11、主記憶體12、映像檔產生電路13及頁面搬移電路16。電子裝置1例如為手機、平板電腦、筆記型電腦、智慧型電視、車用電腦或其他手持裝置,而外部儲存裝置11例如為硬碟、快閃記憶體或揮發性記憶體。映像檔產生電路13例如由中央處理器所實現,而頁面搬移電路16例如由中央處理器、數位訊號處理器(Digital Signal Processor,DSP)或直接記憶體存
取(Direct Memory Access,DMA)控制器所實現。在一實施例中,映像檔產生電路13和頁面搬移電路16可為同一電路,例如是同一個中央處理器。
映像檔產生電路13係於休眠階段將頁面寫入外部儲存裝置11以產生休眠映像檔SI,並根據主記憶體12之一連續頁面範圍RA將相關於頁面位址對應之第一頁面表根據休眠映像檔頁面相對位置更新為第二頁面表,並將回復資訊存入休眠檔檔頭。在一實施例中,第一頁面表用以記錄頁面搬移至連續頁面範圍RA之前的位置,第二頁面表用以記錄頁面搬移至連續頁面範圍RA之後的位置。映像檔產生電路13於休眠階段將頁面寫入外部儲存裝置11以產生休眠映像檔SI。頁面搬移電路16於喚醒階段根據休眠映像檔SI將頁面由外部儲存裝置11連續寫回主記憶體12之連續頁面範圍RA。進一步來說,頁面搬移電路16於喚醒階段根據休眠映像檔SI之檔頭或頁面之頁面頭內之頁面資訊將頁面由外部儲存裝置11連續寫回第二頁面表所記載頁面在主記憶體12之連續頁面範圍RA內的位置,喚醒階段係於休眠階段之後。
頁面自外部記憶體11寫回主記憶體12時之目標位址係記錄於休眠映像檔SI之檔頭。頁面搬移電路16傳送休眠映像檔SI之方式係以一次連續傳送的方式進行休眠映像檔SI的傳送。休眠映像檔SI之頁面於外部記憶體11之擺放方式係連續擺放,且頁面與頁面之間無空隙。當休眠映像檔SI之頁面寫回主記憶體12後,各頁面於主記憶體12的位置與第二頁面表所記載的位置相符。主記憶體12之連續頁面範圍RA例如為
主記憶體12之快取區12a之頁面範圍。在一實施例中,頁面搬移電路16傳送休眠映像檔SI之方式亦可以非連續傳送的方式進行休眠映像檔SI的傳送。頁面搬移電路16根據休眠映像檔SI的檔頭或頁面的頁面頭內之頁面資訊,逐一將頁面由外部記憶體11寫回主記憶體12,各頁面於主記憶體12的位置與第二頁面表所記載的位置相符。喚醒方法適用於電子裝置1且包括下述開機流程及關機流程。
請同時參照第1圖、第2圖及第3圖,第2圖繪示係為依照第一實施例之休眠階段之主記憶體與外部儲存裝置之示意圖,第3圖繪示係為依照第一實施例之關機流程圖。首先如步驟31所示,中央處理器(可為實施上述映像檔產生電路13或頁面搬移電路16的中央處理器,亦可為裝置1的另一中央處理器)判斷是否執行快速開機模式。若執行快速開機模式,則執行步驟32。如步驟32所示,電子裝置1進入休眠階段。接著如步驟33所示,映像檔產生電路13於休眠階段集中頁面PA至PK至連續頁面範圍RA以形成連續頁面陣列SPA。頁面PA至PK例如為用戶空間頁面(User Space Page)。接著如步驟34所示,映像檔產生電路13於休眠階段根據連續頁面陣列SPA將第一頁面表更新為第二頁面表。需說明的是,由於集中頁面到PA至PK後,其實體位置已經改變,因此對應地將第一頁面表更新為第二頁面表。
跟著如步驟35所示,映像檔產生電路13根據連續頁面陣列SPA產生休眠映像檔SI。亦即,映像檔產生電路13將
主記憶體12之頁面PA至PK連續寫入(Sequential I/O)至外部儲存裝置11以產生休眠映像檔SI。前述頁面PA至PK可以有不同的集中方式,如向前集中、向後集中或於特定區域集中。前述連續頁面範圍RA例如為非固定記憶體位址,並於前次休眠階段執行一頁面遷移(Page Migration)所形成。也就是說,連續頁面範圍RA可以是前次休眠階段中主記憶體12用以儲存前一次休眠影像檔的記憶體位置。相反地,若不執行快速開機模式,則執行步驟36。如步驟36所示,中央處理器執行一般關機程序。
請同時參照第1圖、第4圖及第5圖,第4圖繪示係為於喚醒階段之主記憶體與外部儲存裝置之示意圖,第5圖繪示係為依照第一實施例之開機流程圖。首先如步驟51所示,中央處理器判斷是否執行快速開機模式。若執行快速開機模式,則執行步驟52。如步驟52所示,電子裝置1進入喚醒階段。接著如步驟53所示,頁面搬移電路16於喚醒階段根據休眠映像檔SI將頁面PA至PK由外部儲存裝置11連續寫回主記憶體12之連續頁面範圍RA。相反地,若不執行快速開機模式,則執行步驟54。如步驟54所示,中央處理器執行一般開機程序。當使用者選擇執行快速開機模式時,頁面PA至PK能不經由頁面暫存器而直接連續寫回主記憶體12之連續頁面範圍RA。如此一來,能縮短開機時間,並提高開機速度。
請同時參照第1圖、第6圖及第7圖,第6圖繪示係為依照第二實施例之主記憶體與外部儲存裝置之示意圖,第7圖繪示係為依照第二實施例之關機流程圖。第二實施例與第一實施例主要不同之處在於第二實施例係預先保留連續頁面範圍。首先如步驟71所示,中央處理器(可為實施上述映像檔產生電路13或頁面搬移電路16的中央處理器,亦可為裝置1的另一中央處理器)判斷是否執行快速開機模式。若執行快速開機模式,則執行步驟72。如步驟72所示,電子裝置1進入休眠階段。接著如步驟73所示,映像檔產生電路13於休眠階段係根據頁面PA至PK於休眠映像檔SI之順序決定頁面PA至PK於連續頁面範圍RA之位置以將第一頁面表更新為第二頁面表。跟著如步驟74所示,映像檔產生電路13將主記憶體12之頁面PA至PK連續寫入(Sequential I/O)至外部儲存裝置11以產生休眠映像檔SI。相反地,若不執行快速開機模式,則執行步驟75。如步驟75所示,中央處理器執行一般關機程序。
請同時參照第1圖、第6圖及第8圖,第8圖繪示係為依照第二實施例之開機流程圖。首先如步驟81所示,中央處理器於核心初始化階段預先保留連續頁面範圍RA。前述連續頁面範圍RA例如為在休眠階段第二頁面表所記錄的位置,其為固定記憶體位址。接著如步驟82所示,中央處理器判斷是否執行快速開機模式。若執行快速開機模式,則執行步驟83。如步驟83所示,電子裝置1進入喚醒階段。接著如步驟84所示,頁面
搬移電路16於喚醒階段根據休眠映像檔SI將頁面PA至PK由外部儲存裝置11連續寫回主記憶體12之連續頁面範圍RA。進一步來說,根據休眠映像檔SI之檔頭或頁面PA至PK之頁面頭內之頁面資訊,頁面搬移電路16將頁面PA至PK由外部儲存裝置11連續寫回第二頁面表所記載頁面PA至PK在主記憶體12之連續頁面範圍RA內的位置。
相反地,若不執行快速開機模式,則執行步驟85。如步驟85所示,中央處理器執行一般開機程序。接著如步驟86所示,中央處理器釋放原本預先保留之連續頁面範圍RA。由於非快速開機模式下不需使用連續頁面範圍RA,因此可將連續頁面範圍RA釋放出來供其他程序使用。當使用者選擇執行快速開機模式時,頁面PA至PK能不經由頁面暫存器而直接連續寫回主記憶體12之連續頁面範圍RA。如此一來,能縮短開機時間,並提高開機速度。
請同時參照表1、第1圖、第9圖、第10A圖及第10B圖,表1係為一種死結陣列之例示,第9圖繪示係為依照第三實施例之電子裝置之方塊圖,第10A圖及第10B圖繪示係為依照第三實施例之開機流程圖。電子裝置8包括外部儲存裝置11、主記憶體12、處理單元14及處理單元15。於休眠階段,經由處理單元14或處理單元15將頁面自主記憶體12寫入外部儲存裝
置11以產生休眠映像檔SI。於喚醒階段,經由處理單元14執行核心載入及初始化程序,並平行地經由處理單元15移動休眠映像檔SI之頁面。處理單元14及處理單元15例如為多核心處理器中之不同核心。或者,處理單元14及處理單元15例如分別為中央處理單元(Central Processing Unit,CPU)及直接記憶體存取(Direct Memory Access,DMA)控制器。此外,處理單元14及處理單元15亦可例如分別為中央處理單元及數位訊號處理器(Digital Signal Processor,DSP)。另需說明的是,處理單元14和處理單元15可以分別是前述之映像檔產生電路13和頁面搬移電路16。
於喚醒階段,開機流程包括如下步驟:當處理單元15以連續傳送方式將外部儲存裝置11中的休眠映像檔SI之頁面寫回主記憶體12中的快取區12a完成後,如步驟201所示,處理單元15若是多核心處理器中之不同核心或DSP,則直接繼續逐一將快取區12a內之頁面移回目標頁面,處理單元15若是直接記憶體存取控制器,則改由處理單元14逐一將快取區12a內之頁面移回目標頁面。當本文後續描述對頁面進行逐一移動操作時,則處理單元15為多核心處理器中之不同核心或數位訊號處理器。當本文後續描述對頁面進行逐一移動操作時,且處理單元15為直接記憶體存取控制器時,則改由處理單元14逐一將快取區12a內之頁面移回目標頁面。
目標頁面即為關機前狀態的主記憶體12之頁面所
在位置。若目標頁面發生衝突則跳過,直到執行到休眠映像檔SI之最後一個頁面。接著如步驟202所示,處理單元15檢查移出頁面數是否為0。若移出頁面數為0,則執行步驟207。相反地,若移出頁面數不為0,則執行步驟203。
如步驟203所示,處理單元15重置移出頁面數。如步驟204所示,處理單元15從快取區12a中第一個未回復頁面開始,逐一將快取區12a中未回復頁面移回目標頁面。若目標頁面發生衝突則跳過,直到執行到尚未移回目標頁面之最後一個頁面。需說明的是,當目標頁面位置與其他未回復頁面所在位置相同時,即表示目標頁面發生衝突。如步驟205所示,處理單元15判斷快取區是否有未回復頁面。當快取區無未回復頁面,則執行步驟213。如步驟213所示,休眠映像檔SI之所有頁面完成回復。相反地,當快取區有未回復頁面,則執行步驟206。如步驟206所示,處理單元15判斷移出頁面數是否為0。若移出頁面數不為0,則執行步驟203。相反地,若移出頁面數為0,則執行步驟207。
如步驟207所示,處理單元15將第一個未回復頁面之頁框碼(Page Frame Number,PFN)設為來源頁框碼,並將第一個未回復頁面所對應之目標頁面之頁框碼設為目標頁框碼,處理單元15將來源頁框碼及目標頁框碼記錄於死結陣列(Dead-Lock Array)中。如步驟208所示,處理單元15將死結陣列中最後一組的目標頁框碼做為下一組的來源頁框碼,再取出未回復頁面之目標頁面的頁框碼做為目標頁框碼並記錄於死結陣列中。舉例來
說,處理單元15將死結陣列中最後一組的目標頁框碼Z2做為來源頁框碼,並據以取出未回復頁面之目標頁框碼A2,再將目標頁框碼A2記錄於死結陣列中。如步驟209所示,處理單元15判斷死結陣列中最後一組的目標頁框碼是否等於第一組的來源頁框碼。當死結陣列中最後一組的目標頁框碼不等於第一組的來源頁框碼,則執行步驟208。
當死結陣列中最後一組的目標頁框碼等於第一組的來源頁框碼,則執行步驟210。如步驟210所示,處理單元15配置暫存頁面,並將死結陣列中最後一組的來源頁框碼複製至暫存頁面。如步驟211所示,處理單元15由死結陣列中最後第二組開始逐一往前進行頁面回復。如步驟212所示,處理單元15將暫存頁面回復至第一組原始頁框碼。接著執行步驟203。透過上述流程能找出造成頁面衝突的死結,並於消除死結後,將發生頁面衝突的頁面回復至目標頁面。
請同時參照第9圖、第11圖、第12圖及第13圖,第11圖繪示係為依照第四實施例之休眠階段之主記憶體與外部儲存裝置之示意圖,第12圖繪示係為依照第四實施例之喚醒階段之主記憶體與外部儲存裝置之示意圖,第13圖繪示係為依照第四實施例之關機流程圖。如步驟301所示,處理單元15預先計算休眠映像檔SI之大小SZ1。如步驟302所示,處理單元15將連續頁面範圍RA內屬於休眠映像檔SI之頁面標記為標記頁面,連續頁面範圍RA外屬於休眠映像檔SI之頁面則為未標記頁面。連續頁面範圍RA係自主記憶體12之快取區12開始到休眠映像檔SI之大小SZ1為止。於第四實施例中,標記頁面包括頁面RPA、頁面RPB、頁面RPC及頁面RPD,而未標記頁面包括頁面PA、頁面PB、頁面PC、頁面PD、頁面PE、頁面PF及頁面PG。
如步驟303所示,處理單元15逐一將未標記頁面寫到外部儲存裝置11,遇到標記頁面則跳過,直到最後一個未標記頁面為止。亦即,逐一將頁面PA、頁面PB、頁面PC、頁面PD、頁面PE、頁面PF及頁面PG寫到外部儲存裝置11,遇到頁面RPA、頁面RPB、頁面RPC或頁面RPD則跳過。如步驟304所示,處理單元15逐一將標記頁面寫到外部儲存裝置11。亦即,逐一將頁面RPA、頁面RPB、頁面RPC及頁面RPD寫到外部儲
存裝置11。
於喚醒階段,處理單元15逐一將快取區12a內的頁面移回主記憶體12之目標頁面。亦即,逐一將快取區12a內的頁面PA、頁面PB、頁面PC、頁面PD、頁面PE、頁面PF、頁面PG、頁面RPA、頁面RPB、頁面RPC及頁面RPD移回主記憶體12之目標頁面。由於喚醒階段需要還原至關機前狀態的記憶體配置,因此於第11圖繪示中,頁面PA、頁面PB、頁面PC、頁面PD、頁面PE、頁面PF、頁面PG、頁面RPA、頁面RPB、頁面RPC及頁面RPD於主記憶體12所處之頁面即稱為目標頁面。
需說明的是,由於頁面PA、頁面PB、頁面PC、頁面PD、頁面PE、頁面PF及頁面PG的目標頁面都不在快取區12a內,所以不會發生頁面衝突。雖然頁面RPA、頁面RPB、頁面RPC及頁面RPD的目標頁面位於快取區12a內,但由於頁面PA、頁面PB、頁面PC、頁面PD、頁面PE、頁面PF及頁面PG皆已回復,因此於頁面PA、頁面PB、頁面PC、頁面PD、頁面PE、頁面PF及頁面PG原先佔用的頁面也將釋出供其他頁面回復使用。所以頁面RPA、頁面RPB、頁面RPC及頁面RPD也不會發生頁面衝突。
請同時參照第9圖、第14圖、第15圖及第16圖,第14圖繪示係為依照第五實施例之休眠階段之主記憶體與外部
儲存裝置之示意圖,第15圖繪示係為依照第五實施例之喚醒階段之主記憶體與外部儲存裝置之示意圖,第16圖繪示係為依照第五實施例之關機流程圖。關機流程包括:如步驟401所示,處理單元15預先計算休眠映像檔SI之大小SZ1。如步驟402所示,處理單元15將連續頁面範圍RA內屬於休眠映像檔SI之頁面標記為標記頁面,並記錄標記頁面至主記憶體12之快取區12a之起始頁面的頁面數Pd。頁面數Pd可視為自快取區12a之起始頁面起第Pd個頁面。連續頁面範圍RA外屬於休眠映像檔SI之頁面則為未標記頁面。連續頁面範圍RA係自主記憶體12之快取區12開始到休眠映像檔SI之大小SZ1為止。於第五實施例中,標記頁面包括頁面RPA、頁面RPB、頁面RPC及頁面RPD,而未標記頁面包括頁面PA、頁面PB、頁面PC、頁面PD、頁面PE、頁面PF及頁面PG。
如步驟403所示,處理單元15逐一將未標記之頁面寫到外部儲存裝置11,在沒有到達第Pd個頁面之前,遇到標記的頁面則跳過。如步驟404所示,處理單元15遇到標記頁面至快取區12a之起始頁面的頁面數Pd,則將標記頁面寫到外部儲存裝置11。換言之,遇到第Pd個頁面則將其寫到外部儲存裝置11,直到最後一個頁面為止。亦即,逐一將頁面RPA、頁面PA、頁面RPB、頁面PB、頁面PC、頁面PD、頁面RPC、頁面PE、頁面PF、頁面RPD、頁面PG寫到外部儲存裝置11。
於喚醒階段,由於頁面PA、頁面PB、頁面PC、頁
面PD、頁面PE、頁面PF及頁面PG的目標頁面都不在快取區12a內,所以不會發生頁面衝突。雖然頁面RPA、頁面RPB、頁面RPC及頁面RPD的目標頁面位於快取區12a內,但由於頁面RPA、頁面RPB、頁面RPC及頁面RPD的目標頁面即為前次休眠前所在頁面位置,所以無須進行回復。
請同時參照第9圖及第17圖,第17圖繪示係為依照第六實施例之開機流程圖。於休眠階段,處理單元15計算未壓縮之休眠映像檔SI之大小SZ1,再以壓縮方式產生壓縮休眠映像檔,並將休眠映像檔SI之大小SZ1記錄於壓縮休眠映像檔中。於喚醒階段之開機流程包括:如步驟501所示,於開機載入(Boot loader)階段讀取休眠映像檔SI之大小SZ1。如步驟502所示,於核心初始化過程中的記憶體初始化階段,保留一塊大小為SZ1的連續頁面範圍RA。如步驟503所示,處理單元15將壓縮休眠映像檔載入連續頁面範圍RA的底部。如步驟504所示,將壓縮休眠映像檔解壓縮。進一步來說,處理單元15係逐一進行壓縮休眠映像檔之各頁面的解壓縮,並將解壓縮後之頁面內容自快取區12a的第一個頁面依序填入,直到壓縮休眠映像檔之所有頁面完成解壓縮。頁面解壓縮後回復至目標頁面的方式可搭配前述第三實施例、第四實施例或第五實施例中回復頁面的方式來實現。
請同時參照第9圖、第18圖及第19圖,第18圖繪示係為依照第七實施例之開機流程圖,第19圖繪示係為步驟603之細部流程圖。於喚醒階段之開機流程包括:如步驟601所示,將壓縮休眠映像檔解壓縮。步驟601能先以單一中央處理單元逐一讀取壓縮休眠映像檔之各頁面的標頭(Header)。若電子裝置8使用多核心處理器,則將頁面解壓縮工作分配給其他中央處理單元,直到所有頁面解壓縮工作都被分配完成。中央處理單元先讀取所分配頁面的標頭中的目標頁框碼,再根據目標頁框碼判斷目標頁面是否可供回復。若目標頁面可供回復,則按照頁面回復方式將解壓縮後之頁面內容直接填入目標頁面。相反地,若目標頁面尚未可供回復,則將解壓縮後之頁面內容直接填入暫存頁面清單中的頁面。
如步驟602所示,處理單元15進行暫存頁面清單中的頁面回復。處理單元15係逐一檢視暫存頁面清單中的頁面與其所對應之目標頁面是否可供回復。若目標頁面可供回復,處理單元15將暫存頁面清單中的頁面內容按照頁面回復方式填入目標頁面。若電子裝置8使用多核心處理器,則讓一個中央處理單元負責一個頁面回復工作直到所有頁面回復工作都被分配完成。若暫存頁面清單中的剩餘頁面發生死結,則由後續步驟603進行處理。
如步驟603所示,解決暫存頁面清單中的死結。步
驟603進一步包括步驟6031至6037。如步驟6031所示,分配死結。若電子裝置8使用多核心處理器,則讓一個中央處理單元負責一個死結,直到所有死結都分配完畢。如步驟6032所示,將第一個未回復頁面之頁框碼設為來源頁框碼,並將第一個未回復頁面所對應之目標頁面之頁框碼設為目標頁框碼,將來源頁框碼及目標頁框碼記錄於死結陣列中。如步驟6033所示,將死結陣列中最後一組的目標頁框碼做為下一組的來源頁框碼再取出未回復頁面之目標頁面的頁框碼做為目標頁框碼並記錄於死結陣列中。如步驟6034所示,判斷死結陣列中最後一組的目標頁框碼是否等於第一組的來源頁框碼。當死結陣列中最後一組的目標頁框碼不等於第一組的來源頁框碼,則執行步驟6033。當死結陣列中最後一組的目標頁框碼等於第一組的來源頁框碼,則執行步驟6035。如步驟6035所示,配置暫存頁面,並將死結陣列中最後一組的來源頁框碼複製至暫存頁面。如步驟6036所示,由死結陣列中最後第二組開始逐一往前進行頁面回復。如步驟6037所示,將暫存頁面回復至第一組原始頁框碼。
如步驟604所示,判斷暫存頁面清單中是否已無未回復頁面。當暫存頁面清單中有未回復頁面,則執行步驟601。相反地,當暫存頁面清單中有未回復頁面,則執行步驟605。如步驟605所示,休眠映像檔之所有頁面完成回復。
綜上所述,雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識
者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
31~36‧‧‧步驟
Claims (10)
- 一種休眠喚醒方法,包括:於一休眠階段,經由一第一處理單元或一第二處理單元將複數個頁面自一主記憶體寫入一外部儲存裝置以產生一休眠映像檔;以及於一喚醒階段,經由該第一處理單元執行核心載入及初始化程序,並平行地經由該第二處理單元移動該休眠映像檔之該些頁面至該主記憶體,該喚醒階段係於該休眠階段之後。
- 如申請專利範圍第1項所述之休眠喚醒方法,其中於該喚醒階段若發生頁面衝突,則配置一暫存頁面,以解決頁面衝突。
- 如申請專利範圍第1項所述之休眠喚醒方法,其中產生該休眠映像檔之步驟更包括:預先計算該休眠映像檔之大小;將一連續頁面範圍內屬於該休眠映像檔之頁面標記為複數個標記頁面,該連續頁面範圍外屬於該休眠映像檔之頁面則為複數個未標記頁面,該連續頁面範圍係自該主記憶體之一快取區開始到該休眠映像檔之大小為止;逐一將該些未標記頁面寫到該外部儲存裝置,遇到該些標記頁面則跳過;以及逐一將該些標記頁面寫到該外部儲存裝置。
- 如申請專利範圍第1項所述之休眠喚醒方法,其中產生該休眠映像檔之步驟更包括: 預先計算該休眠映像檔之大小;將一連續頁面範圍內屬於該休眠映像檔之頁面標記為複數個標記頁面,並記錄該些標記頁面至該主記憶體之一快取區之起始頁面的頁面數,該連續頁面範圍外屬於該休眠映像檔之頁面則為複數個未標記頁面,該連續頁面範圍係自該主記憶體之一快取區開始到該休眠映像檔之大小為止;逐一將該些未標記頁面寫到該外部儲存裝置,遇到該些標記頁面則跳過;以及遇到該些標記頁面至該快取區之起始頁面的頁面數,則將該些標記頁面寫到該外部儲存裝置。
- 如申請專利範圍第1項所述之休眠喚醒方法,其中產生該休眠映像檔之步驟更包括:預先計算該休眠映像檔之大小;壓縮該休眠映像檔以產生一壓縮休眠映像檔;以及將該休眠映像檔之大小記錄於該壓縮休眠映像檔中。
- 一種電子裝置,包括:一外部儲存裝置;一主記憶體;一第一處理單元;以及一第二處理單元,其中該第一處理單元或該第二處理單元用以於一休眠階段將複數個頁面自該主記憶體寫入該外部儲存裝置以產生一休眠映像檔,該第一處理單元用以於一喚醒階段執行 核心載入及初始化程序,並平行地經由該第二處理單元移動該休眠映像檔之該些頁面至該主記憶體,該喚醒階段係於該休眠階段之後。
- 如申請專利範圍第6項所述之電子裝置,其中於該喚醒階段若發生頁面衝突,則該第一處理單元配置一暫存頁面,以解決頁面衝突。
- 如申請專利範圍第6項所述之電子裝置,其中該第一處理單元預先計算該休眠映像檔之大小,並將一連續頁面範圍內屬於該休眠映像檔之頁面標記為複數個標記頁面,該連續頁面範圍外屬於該休眠映像檔之頁面則為複數個未標記頁面,該連續頁面範圍係自該主記憶體之一快取區開始到該休眠映像檔之大小為止,該第一處理單元逐一將該些未標記頁面寫到該外部儲存裝置,遇到該些標記頁面則跳過,再逐一將該些標記頁面寫到該外部儲存裝置。
- 如申請專利範圍第6項所述之電子裝置,其中該第一處理單元預先計算該休眠映像檔之大小,再將一連續頁面範圍內屬於該休眠映像檔之頁面標記為複數個標記頁面,並記錄該些標記頁面至該主記憶體之一快取區之起始頁面的頁面數,該連續頁面範圍外屬於該休眠映像檔之頁面則為複數個未標記頁面,該連續頁面範圍係自該主記憶體之一快取區開始到該休眠映像檔之大小為止,該第一處理單元逐一將該些未標記頁面寫到該外部儲存裝置,遇到該些標記頁面則跳過,若遇到該些標記頁面至該快取區 之起始頁面的頁面數,則將該些標記頁面寫到該外部儲存裝置。
- 如申請專利範圍第6項所述之電子裝置,其中該第一處理單元預先計算該休眠映像檔之大小,再壓縮該休眠映像檔以產生一壓縮休眠映像檔,並將該休眠映像檔之大小記錄於該壓縮休眠映像檔中。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102148783A TWI610239B (zh) | 2013-12-27 | 2013-12-27 | 休眠喚醒方法及電子裝置 |
US14/300,345 US9594572B2 (en) | 2013-12-27 | 2014-06-10 | Electronic apparatus and method for resuming from hibernation |
JP2014212316A JP5923583B2 (ja) | 2013-12-27 | 2014-10-17 | ハイバネーションから復帰するための電子機器及び方法 |
CN201410589570.9A CN104750227B (zh) | 2013-12-27 | 2014-10-28 | 休眠唤醒方法及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102148783A TWI610239B (zh) | 2013-12-27 | 2013-12-27 | 休眠喚醒方法及電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201525867A TW201525867A (zh) | 2015-07-01 |
TWI610239B true TWI610239B (zh) | 2018-01-01 |
Family
ID=53481846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102148783A TWI610239B (zh) | 2013-12-27 | 2013-12-27 | 休眠喚醒方法及電子裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9594572B2 (zh) |
JP (1) | JP5923583B2 (zh) |
CN (1) | CN104750227B (zh) |
TW (1) | TWI610239B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10055236B2 (en) * | 2015-07-02 | 2018-08-21 | Sandisk Technologies Llc | Runtime data storage and/or retrieval |
CN105119726B (zh) * | 2015-08-25 | 2019-06-25 | 深圳市晓渡云科技有限公司 | 一种无线传感网节点快速唤醒方法及其装置 |
TWI554945B (zh) * | 2015-08-31 | 2016-10-21 | 晨星半導體股份有限公司 | 例行工作的分配方法及應用其之多核心電腦 |
TWI569129B (zh) | 2015-12-01 | 2017-02-01 | 財團法人工業技術研究院 | 系統暫停方法、系統回復方法及應用其之電腦系統 |
TWI564802B (zh) * | 2015-12-14 | 2017-01-01 | 財團法人工業技術研究院 | 初始化週邊裝置之方法與使用此方法之電子裝置 |
US11204778B2 (en) * | 2017-01-23 | 2021-12-21 | Carl Zeiss Ag | Efficient hibernation apparatus and method for digital devices |
US10228966B2 (en) * | 2017-02-03 | 2019-03-12 | Huawei Technologies Co., Ltd. | Methods ad systems for hibernation of processes in computing devices |
US11327876B2 (en) * | 2020-04-23 | 2022-05-10 | EMC IP Holding Company LLC | Verifying a software or firmware update using a container before deploying to a client |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200627142A (en) * | 2005-01-18 | 2006-08-01 | Acer Inc | Hibernation method and device utilizing same |
TW201111966A (en) * | 2009-09-22 | 2011-04-01 | Nat Univ Chung Cheng | Method for fast turning on and off a machine |
US7971081B2 (en) * | 2007-12-28 | 2011-06-28 | Intel Corporation | System and method for fast platform hibernate and resume |
TW201202932A (en) * | 2010-04-26 | 2012-01-16 | Htc Corp | Method for storing data into a memory |
US20120144177A1 (en) * | 2010-12-06 | 2012-06-07 | Microsoft Corporation | Fast computer startup |
TW201327160A (zh) * | 2011-12-21 | 2013-07-01 | Ind Tech Res Inst | 於休眠機制之方法及其電腦系統 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100319292B1 (ko) | 1999-12-02 | 2002-01-05 | 윤종용 | 빠른 부팅 속도를 갖는 컴퓨터 시스템 및 그 방법 |
US6792556B1 (en) | 2000-05-31 | 2004-09-14 | Dell Products L.P. | Boot record recovery |
US6883037B2 (en) | 2001-03-21 | 2005-04-19 | Microsoft Corporation | Fast data decoder that operates with reduced output buffer bounds checking |
US20040143696A1 (en) | 2003-01-21 | 2004-07-22 | Francis Hsieh | Data storage system for fast booting of computer |
US7412565B2 (en) | 2003-08-18 | 2008-08-12 | Intel Corporation | Memory optimization for a computer system having a hibernation mode |
JP2009146061A (ja) * | 2007-12-12 | 2009-07-02 | Canon Inc | 情報処理装置及び前記装置の起動方法 |
CN102272734B (zh) | 2009-01-05 | 2014-09-10 | 马维尔国际贸易有限公司 | 使用非易失性存储器设备用于休眠或挂起的方法和*** |
JP4498456B1 (ja) | 2009-02-19 | 2010-07-07 | 株式会社東芝 | データ記憶制御装置及びデータ記憶制御方法 |
KR101611373B1 (ko) | 2009-08-27 | 2016-04-26 | 삼성전자주식회사 | 휴대용 단말기에서 하이버네이션 부팅 방법 및 장치 |
TW201137749A (en) | 2010-04-26 | 2011-11-01 | Mitac Int Corp | Method for reducing boot time and system for the same |
TWM412423U (en) | 2010-08-13 | 2011-09-21 | Micro Star Int Co Ltd | Computer motherboard for reducing power consumption during sleep mode |
KR101678571B1 (ko) | 2010-10-05 | 2016-11-22 | 삼성전자주식회사 | 컴퓨팅 시스템의 부팅방법 |
JP5783809B2 (ja) * | 2011-06-03 | 2015-09-24 | キヤノン株式会社 | 情報処理装置、起動方法およびプログラム |
-
2013
- 2013-12-27 TW TW102148783A patent/TWI610239B/zh active
-
2014
- 2014-06-10 US US14/300,345 patent/US9594572B2/en active Active
- 2014-10-17 JP JP2014212316A patent/JP5923583B2/ja active Active
- 2014-10-28 CN CN201410589570.9A patent/CN104750227B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200627142A (en) * | 2005-01-18 | 2006-08-01 | Acer Inc | Hibernation method and device utilizing same |
US7971081B2 (en) * | 2007-12-28 | 2011-06-28 | Intel Corporation | System and method for fast platform hibernate and resume |
TW201111966A (en) * | 2009-09-22 | 2011-04-01 | Nat Univ Chung Cheng | Method for fast turning on and off a machine |
TW201202932A (en) * | 2010-04-26 | 2012-01-16 | Htc Corp | Method for storing data into a memory |
US20120144177A1 (en) * | 2010-12-06 | 2012-06-07 | Microsoft Corporation | Fast computer startup |
TW201327160A (zh) * | 2011-12-21 | 2013-07-01 | Ind Tech Res Inst | 於休眠機制之方法及其電腦系統 |
Also Published As
Publication number | Publication date |
---|---|
US9594572B2 (en) | 2017-03-14 |
US20150186151A1 (en) | 2015-07-02 |
JP5923583B2 (ja) | 2016-05-24 |
CN104750227A (zh) | 2015-07-01 |
CN104750227B (zh) | 2017-10-13 |
TW201525867A (zh) | 2015-07-01 |
JP2015127945A (ja) | 2015-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI610239B (zh) | 休眠喚醒方法及電子裝置 | |
US11042297B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
US9639423B2 (en) | Method and apparatus for recovering metadata lost during an unexpected power down event | |
US20140025933A1 (en) | Replay reduction by wakeup suppression using early miss indication | |
CN101916201A (zh) | 一种基于Android移动终端冷启动的方法和装置 | |
JP6276470B2 (ja) | ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法 | |
TW201502764A (zh) | 用以從睡眠狀態加速回復之專用啟動路徑 | |
KR101548689B1 (ko) | 파일 시스템에서의 부분 가비지 컬렉션 방법 및 장치 | |
EP3142015A1 (en) | Low-power memory-access method and associated apparatus | |
US10795606B2 (en) | Buffer-based update of state data | |
US10146483B2 (en) | Memory system | |
US9652416B2 (en) | Storage device for performing in-storage computing operations, method of operation the same, and system including the same | |
US20170228252A1 (en) | System and method for multi-tile data transactions in a system on a chip | |
TWI571738B (zh) | 儲存裝置、加快啟動程序的方法與儲存控制器 | |
TW201327185A (zh) | 記憶體儲存裝置及其記憶體控制器與資料寫入方法 | |
US8281083B2 (en) | Device, system and method of generating an execution instruction based on a memory-access instruction | |
JP2011107925A5 (zh) | ||
US20100153622A1 (en) | Data Access Controller and Data Accessing Method | |
CN102819441B (zh) | 一种基于MPC5200B的Vxworks***快速启动方法 | |
TW201327160A (zh) | 於休眠機制之方法及其電腦系統 | |
JP2011013775A (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
TWI646463B (zh) | 休眠喚醒方法及電子裝置 | |
JP2010250932A (ja) | 不揮発性メモリの書き込み及び消去方法 | |
US8997123B2 (en) | Runtime modification of property names in advanced configuration and power interface (ACPI) tables | |
JP2013246646A (ja) | 情報処理装置及びデータ読出方法 |