TWI646463B - 休眠喚醒方法及電子裝置 - Google Patents
休眠喚醒方法及電子裝置 Download PDFInfo
- Publication number
- TWI646463B TWI646463B TW104140195A TW104140195A TWI646463B TW I646463 B TWI646463 B TW I646463B TW 104140195 A TW104140195 A TW 104140195A TW 104140195 A TW104140195 A TW 104140195A TW I646463 B TWI646463 B TW I646463B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- sleep
- pages
- phase
- continuous
- Prior art date
Links
Landscapes
- Stored Programmes (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。如此一來,能縮短開機時間,並提高開機速度。
由上可知,以頁面PA(第一頁面)及頁面PB(第二頁面)來說,在休眠階段,第一頁面與第二頁面在主記憶體12的位置不連續(如第6圖位於最左邊主記憶體12的頁面排列所示),且第一頁面與第二頁面逐一寫入外部儲存裝置11之一連續位置(如第6圖外部儲存裝置11的頁面排列所示),使第一頁面與第二頁面位於外部儲存裝置11之位置為連續。在喚醒階段,如第6圖所示,位於外部儲存裝置11之連續位置之第一頁面及第二頁面一次性的寫入主記憶體12的連續位置中(如第6圖位於最右邊主記憶
體12的頁面排列所示)。
請同時參照表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。如第12圖所示,主記憶體12之連續頁面範圍RA之大小與休眠映像檔SI之大小SZ1相同。
如步驟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所示,休眠映像檔之所有頁面完成回復。
綜上所述,雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (20)
- 一種休眠喚醒方法,包括:於一休眠階段將複數個頁面逐一寫入一外部儲存裝置以產生一休眠映像檔,並將相關於該些頁面之一第一頁面表更新為一第二頁面表,其中該第一頁面表記錄該些頁面在一主記憶體之位置不全為連續位置,且該第二頁面表紀錄該些頁面在該主記憶體之一連續頁面範圍之位置;以及於一喚醒階段根據該休眠映像檔之檔頭將該些頁面由該外部儲存裝置一次性寫入該主記憶體之該連續頁面範圍,該喚醒階段係於該休眠階段之後,該主記憶體之該連續頁面範圍之大小與該休眠映像檔之大小相同;其中,該些頁面包括一第一頁面及一第二頁面;在該休眠階段,該第一頁面與該第二頁面在該主記憶體的位置不連續,且在該休眠階段將該第一頁面與該第二頁面逐一寫到該外部儲存裝置之一連續位置,使該第一頁面與該第二頁面位於該外部儲存裝置之位置為連續;在該喚醒階段,將位於該外部儲存裝置之該連續位置之該第一頁面及該第二頁面一次性的寫到該主記憶體之另一連續位置。
- 如申請專利範圍第1項所述之休眠喚醒方法,其中於該休眠階段係先集中該些頁面至該連續頁面範圍以形成一連續頁面陣列,再根據該連續頁面陣列產生該休眠映像檔。
- 如申請專利範圍第2項所述之休眠喚醒方法,其中於該休 眠階段係根據該連續頁面陣列將該第一頁面表更新為該第二頁面表。
- 如申請專利範圍第2項所述之休眠喚醒方法,其中該連續頁面範圍係為非固定記憶體位址,並於前次休眠階段執行一頁面遷移(Page Migration)所形成。
- 如申請專利範圍第1項所述之休眠喚醒方法,更包括:於一核心初始化階段預先保留該連續頁面範圍。
- 如申請專利範圍第5項所述之休眠喚醒方法,其中於該休眠階段係根據該些頁面於該休眠映像檔之順序決定該些頁面於該連續頁面範圍之位置以將該第一頁面表更新為該第二頁面表。
- 如申請專利範圍第5項所述之休眠喚醒方法,其中該連續頁面範圍係為固定記憶體位址。
- 如申請專利範圍第1項所述之休眠喚醒方法,其中該些頁面係為用戶空間頁面(User Space Page)。
- 如申請專利範圍第1項所述之休眠喚醒方法,其中該外部儲存裝置為硬碟、快閃記憶體或揮發性記憶體。
- 一種電子裝置,包括:一外部儲存裝置;一主記憶體;一映像檔產生電路,用以於一休眠階段將複數個頁面逐一寫入該外部儲存裝置以產生一休眠映像檔,並將相關於該些頁面之一第一頁面表更新為一第二頁面表,其中該第一頁面表記錄該些 頁面在一主記憶體之位置不全為連續位置,且該第二頁面表紀錄該些頁面在該主記憶體之一連續頁面範圍之位置;以及一頁面搬移電路,用以於一喚醒階段根據該休眠映像檔之一檔頭將該些頁面由該外部儲存裝置一次性寫入該主記憶體之該連續頁面範圍,該喚醒階段係於該休眠階段之後,該主記憶體之該連續頁面範圍之大小與該休眠映像檔之大小相同;其中,該些頁面包括一第一頁面及一第二頁面;在該休眠階段,該第一頁面與該第二頁面在該主記憶體的位置不連續,且該映像檔產生電路在該休眠階段將該第一頁面與該第二頁面逐一寫到該外部儲存裝置之一連續位置,使該第一頁面與該第二頁面位於該外部儲存裝置之位置為連續;在該喚醒階段,該頁面搬移電路將位於該外部儲存裝置之該連續位置之該第一頁面及該第二頁面一次性的寫到該主記憶體之另一連續位置。
- 如申請專利範圍第10項所述之電子裝置,其中該映像檔產生電路於該休眠階段係先集中該些頁面至該連續頁面範圍以形成一連續頁面陣列,再根據該連續頁面陣列產生該休眠映像檔。
- 如申請專利範圍第11項所述之電子裝置,其中該映像檔產生電路於該休眠階段係根據該連續頁面陣列將該第一頁面表更新為該第二頁面表。
- 如申請專利範圍第11項所述之電子裝置,其中該連續頁面範圍係為非固定記憶體位址,並於前次休眠階段執行一頁面遷 移(Page Migration)所形成。
- 如申請專利範圍第10項所述之電子裝置,其中該映像檔產生電路於一核心初始化階段預先保留該連續頁面範圍。
- 如申請專利範圍第14項所述之電子裝置,其中該映像檔產生電路根據該些頁面於該休眠映像檔之順序決定該些頁面於該連續頁面範圍之位置以將該第一頁面表更新為該第二頁面表。
- 如申請專利範圍第14項所述之電子裝置,其中該連續頁面範圍係為固定記憶體位址。
- 如申請專利範圍第10項所述之電子裝置,其中該些頁面係為用戶空間頁面(User Space Page)。
- 如申請專利範圍第10項所述之電子裝置,其中該外部儲存裝置為硬碟、快閃記憶體或揮發性記憶體。
- 一種電子裝置,包括:一外部儲存裝置;一主記憶體;以及一中央處理器,用以於一休眠階段將複數個頁面逐一寫入該外部儲存裝置以產生一休眠映像檔,且將相關於該些頁面之一第一頁面表更新為一第二頁面表,其中該第一頁面表記錄該些頁面在一主記憶體之位置不全為連續位置,且該第二頁面表紀錄該些頁面在該主記憶體之一連續頁面範圍之位置,並用以於一喚醒階段根據該休眠映像檔之檔頭將該些頁面由該外部儲存裝置一次性寫入該主記憶體之該連續頁面範圍,該喚醒階段係於該休眠階 段之後,該主記憶體之該連續頁面範圍之大小與該休眠映像檔之大小相同;其中,該些頁面包括一第一頁面及一第二頁面;在該休眠階段,該第一頁面與該第二頁面在該主記憶體的位置不連續,且該中央處理器在該休眠階段將該第一頁面與該第二頁面逐一寫到該外部儲存裝置之一連續位置,使該第一頁面與該第二頁面位於該外部儲存裝置之位置為連續;在該喚醒階段,該中央處理器將位於該外部儲存裝置之該連續位置之該第一頁面及該第二頁面一次性的寫到該主記憶體之另一連續位置。
- 一種休眠喚醒方法,包括:於一休眠階段,經由一映像檔產生電路或一頁面搬移電路,將複數個頁面逐一寫入一外部儲存裝置以產生一休眠映像檔,並將相關於該些頁面之一第一頁面表更新為一第二頁面表,其中該第一頁面表記錄該些頁面在一主記憶體之位置不全為連續位置,且該第二頁面表紀錄該些頁面在該主記憶體之一連續頁面範圍之位置;以及於一喚醒階段,經由該映像檔產生電路執行核心載入及初始化程序,並平行地經由該頁面搬移電路根據該休眠映像檔之檔頭將該些頁面由該外部儲存裝置一次性寫入該主記憶體之該連續頁面範圍,該喚醒階段係於該休眠階段之後,該主記憶體之該連續頁面範圍之大小與該休眠映像檔之大小相同;其中,該些頁面包括一第一頁面及一第二頁面;在該休眠階 段,該第一頁面與該第二頁面在該主記憶體的位置不連續,且在該休眠階段將該第一頁面與該第二頁面逐一寫到該外部儲存裝置之一連續位置,使該第一頁面與該第二頁面位於該外部儲存裝置之位置為連續;在該喚醒階段,將位於該外部儲存裝置之該連續位置之該第一頁面及該第二頁面一次性的寫到該主記憶體之另一連續位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104140195A TWI646463B (zh) | 2013-12-27 | 2013-12-27 | 休眠喚醒方法及電子裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104140195A TWI646463B (zh) | 2013-12-27 | 2013-12-27 | 休眠喚醒方法及電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201610851A TW201610851A (zh) | 2016-03-16 |
TWI646463B true TWI646463B (zh) | 2019-01-01 |
Family
ID=56085189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104140195A TWI646463B (zh) | 2013-12-27 | 2013-12-27 | 休眠喚醒方法及電子裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI646463B (zh) |
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 | 於休眠機制之方法及其電腦系統 |
-
2013
- 2013-12-27 TW TW104140195A patent/TWI646463B/zh 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 |
---|---|
TW201610851A (zh) | 2016-03-16 |
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 | |
US11698673B2 (en) | Techniques for memory access in a reduced power state | |
US20170068304A1 (en) | Low-power memory-access method and associated apparatus | |
TW201502764A (zh) | 用以從睡眠狀態加速回復之專用啟動路徑 | |
JP6276470B2 (ja) | ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法 | |
US20170228252A1 (en) | System and method for multi-tile data transactions in a system on a chip | |
KR101548689B1 (ko) | 파일 시스템에서의 부분 가비지 컬렉션 방법 및 장치 | |
WO2019080531A1 (zh) | 一种信息采集及内存释放的方法及装置 | |
US10146483B2 (en) | Memory system | |
KR20190020039A (ko) | 가변 길이 코딩된 파일을 디코딩하는 방법 및 장치 | |
US9652416B2 (en) | Storage device for performing in-storage computing operations, method of operation the same, and system including the same | |
US20100153622A1 (en) | Data Access Controller and Data Accessing Method | |
JP2008299648A (ja) | プログラムおよび情報処理装置 | |
TW201629689A (zh) | Cpu使用控制系統及方法 | |
TWI646463B (zh) | 休眠喚醒方法及電子裝置 | |
JP2018156263A (ja) | メモリシステム、メモリコントローラおよびメモリシステムの制御方法 | |
JP2006011533A (ja) | メモリカード、半導体装置、及び半導体メモリの制御方法 | |
WO2024148977A1 (zh) | 一种供电方法、硬盘及计算设备 | |
TW201327160A (zh) | 於休眠機制之方法及其電腦系統 | |
US9760145B2 (en) | Saving the architectural state of a computing device using sectors | |
CN102819441A (zh) | 一种基于MPC5200B的Vxworks系统快速启动方法 | |
JP2008282246A (ja) | 情報処理装置 | |
JP2015132937A (ja) | 情報処理装置、情報処理方法および記録媒体 | |
CN111158920A (zh) | 一种移动系统的进程数据读写优化方法及系统 |