CN104750227B - 休眠唤醒方法及电子装置 - Google Patents

休眠唤醒方法及电子装置 Download PDF

Info

Publication number
CN104750227B
CN104750227B CN201410589570.9A CN201410589570A CN104750227B CN 104750227 B CN104750227 B CN 104750227B CN 201410589570 A CN201410589570 A CN 201410589570A CN 104750227 B CN104750227 B CN 104750227B
Authority
CN
China
Prior art keywords
page
image file
dormancy
pages
continuous
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201410589570.9A
Other languages
English (en)
Other versions
CN104750227A (zh
Inventor
沈子杰
林国弘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial Technology Research Institute ITRI
Original Assignee
Industrial Technology Research Institute ITRI
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 Industrial Technology Research Institute ITRI filed Critical Industrial Technology Research Institute ITRI
Publication of CN104750227A publication Critical patent/CN104750227A/zh
Application granted granted Critical
Publication of CN104750227B publication Critical patent/CN104750227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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

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)、断电或关机之下可高速开机的方法来取代需耗电的待机/苏醒模式,休眠/唤醒模式是一个可行的方案但传统休眠唤醒方法在开机时会逐一将页面写入页面缓冲区,再将页面缓冲区的页面逐一复制到主存储器的目标页面,程序十分耗时,因此目前产业需一种新的快速唤醒、开机的方法。
发明内容
本发明是有关于一种休眠唤醒方法及电子装置。
根据本发明,提出一种休眠唤醒方法。休眠唤醒方法包括在休眠阶段将页面写入外部存储装置以产生休眠映像文件;以及在唤醒阶段根据休眠映像文件将页面由外部存储装置连续写回主存储器的连续页面范围,唤醒阶段是在休眠阶段之后。
根据本发明,提出一种电子装置。电子装置包括外部存储装置、主存储器、映像文件产生电路及页面搬移电路。映像文件产生电路用以在休眠阶段将页面写入外部存储装置以产生休眠映像文件。页面搬移电路用以在唤醒阶段根据休眠映像文件将页面由外部存储装置连续写回主存储器的连续页面范围,唤醒阶段是在休眠阶段之后。
根据本发明,提出一种休眠唤醒方法。休眠唤醒方法包括:在休眠阶段将页面写入外部存储装置以产生休眠映像文件,并将相关于页面的第一页面表更新为第二页面表;以及在唤醒阶段根据休眠映像文件的文件头或页面的页面头内的页面信息将页面由外部存储装置写回第二页面表所记载该页面在主存储器内的位置,唤醒阶段是在休眠阶段之后。
根据本发明,提出一种电子装置。电子装置包括外部存储装置、主存储器及中央处理器。电子装置包括外部存储装置、主存储器、映像文件产生电路及页面搬移电路。映像文件产生电路用以在休眠阶段将多个页面写入外部存储装置以产生休眠映像文件,并将相关于页面的第一页面表更新为第二页面表。页面搬移电路用以在唤醒阶段根据休眠映像文件的文件头或页面的页面头内的页面信息将页面由外部存储装置写回第二页面表所记载该页面在主存储器内的位置,唤醒阶段是在休眠阶段之后。
根据本发明,提出一种休眠唤醒方法。休眠唤醒方法包括:在休眠阶段,经由第一处理单元将页面自主存储器写入外部存储装置以产生休眠映像文件;以及在唤醒阶段,经由第二处理单元执行核心加载及初始化程序,及并行地(parallelly)经由第一处理单元移动休眠映像文件的页面至主存储器,唤醒阶段是在休眠阶段之后。
根据本发明,提出一种电子装置。电子装置包括外部存储装置、主存储器、第一处理单元及第二处理单元。第一处理单元或第二处理单元在休眠阶段将页面自主存储器写入外部存储装置以产生休眠映像文件。第一处理单元在唤醒阶段执行核心加载及初始化程序,及并行地经由第二处理单元移动休眠映像文件的该面至主存储器,唤醒阶段是在休眠阶段之后。
根据本发明,提出一种电子装置。电子装置包括外部存储装置、主存储器及中央处理器。中央处理器用以在休眠阶段将多个页面写入外部存储装置以产生休眠映像文件,并用以在唤醒阶段根据休眠映像文件将页面由该外部存储装置连续写回主存储器的连续页面范围,唤醒阶段是在休眠阶段之后。
根据本发明,提出一种电子装置。电子装置包括外部存储装置、主存储器及中央处理器。中央处理器用以在休眠阶段将多个页面写入外部存储装置以产生休眠映像文件,并将相关于页面的第一页面表更新为第二页面表,并用以在唤醒阶段根据休眠映像文件的文件头或页面的页面头内的页面信息将页面由外部存储装置写回第二页面表所记载页面在主存储器内的位置,唤醒阶段是在休眠阶段之后。
为了对本发明的上述及其他方面有更佳的了解,下文特举优选实施例,并配合所附附图,作详细说明如下:
附图说明
图1绘示为依照第一实施例的电子装置的方块图。
图2绘示为依照第一实施例的休眠阶段的主存储器与外部存储装置的示意图。
图3绘示为依照第一实施例的关机流程图。
图4绘示为在唤醒阶段的主存储器与外部存储装置的示意图。
图5绘示为依照第一实施例的开机流程图。
图6绘示为依照第二实施例的主存储器与外部存储装置的示意图。
图7绘示为依照第二实施例的关机流程图。
图8绘示为依照第二实施例的开机流程图。
图9绘示为依照第三实施例的电子装置的方块图。
图10A及图10B绘示为依照第三实施例的开机流程图。
图11绘示为依照第四实施例的休眠阶段的主存储器与外部存储装置的示意图。
图12绘示为依照第四实施例的唤醒阶段的主存储器与外部存储装置的示意图。
图13绘示为依照第四实施例的关机流程图。
图14绘示为依照第五实施例的休眠阶段的主存储器与外部存储装置的示意图。
图15绘示为依照第五实施例的唤醒阶段的主存储器与外部存储装置的示意图。
图16绘示为依照第五实施例的关机流程图。
图17绘示为依照第六实施例的开机流程图。
图18绘示为依照第七实施例的开机流程图。
图19绘示为步骤603的详细流程图。
【符号说明】
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,图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的缓存区域(cache region)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执行核心加载及初始化程序,并并行地(paralledlly)经由处理单元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。透过上述流程能找出造成页面冲突的死结,并于消除死结后,将发生页面冲突的页面恢复至目标页面。
来源页框码 目标页框码
A1(=Z2) A2
B1(=A2) B2
C1(=B2) C2
D1(=C2) D2
E1(=D2) E2
F1(=E2) F2
G1(=F2) G2
H1(=G2) H2
I1(=H2) I2
J1(=I2) J2
K1(=J2) K2
L1(=K2) L2
M1(=L2) M2
N1(=M2) N2
O1(=N2) O2
P1(=O2) P2
Q1(=P2) Q2
R1(=Q2) R2
S1(=R2) S2
T1(=S2) T2
U1(=T2) U2
V1(=U2) V2
W1(=V2) W2
X1(=W2) X2
Y1(=X2) Y2
Z1(=Y2) Z2
表1
第四实施例
请同时参照图9、图11、图12及图13,图11绘示为依照第四实施例的休眠阶段的主存储器与外部存储装置的示意图,图12绘示为依照第四实施例的唤醒阶段的主存储器与外部存储装置的示意图,图13绘示为依照第四实施例的关机流程图。如步骤301所示,处理单元15预先计算休眠映像文件SI的大小SZ1。如步骤302所示,处理单元15将连续页面范围RA内属于休眠映像文件SI的页面标记为标记页面,连续页面范围RA外属于休眠映像文件SI的页面则为未标记页面。连续页面范围RA是自主存储器12的缓存区域12a开始到休眠映像文件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所示,休眠映像文件的所有页面完成恢复。
综上所述,虽然本发明已以优选实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作各种的更改与修饰。因此,本发明的保护范围当视权利要求所界定者为准。

Claims (29)

1.一种休眠唤醒方法,其特征在于,包括:
在休眠阶段将多个页面逐一写入外部存储装置以产生休眠映像文件,并将相关于该些页面的第一页面表更新为第二页面表,其中该第一页面表记录该些页面在主存储器的位置不全为连续位置,且该第二页面表纪录该些页面在该主存储器的连续页面范围的位置;以及
在唤醒阶段根据该休眠映像文件的文件头将该些页面由该外部存储装置一次性写入该主存储器的该连续页面范围,该唤醒阶段是在该休眠阶段之后,该主存储器的该连续页面范围的大小与该休眠映像文件的大小相同。
2.根据权利要求1所述的休眠唤醒方法,其中在该休眠阶段是先集中该些页面至该连续页面范围以形成连续页面阵列,再根据该连续页面阵列产生该休眠映像文件。
3.根据权利要求2所述的休眠唤醒方法,其中在该休眠阶段是根据该连续页面阵列将该第一页面表更新为该第二页面表。
4.根据权利要求2所述的休眠唤醒方法,其中该连续页面范围为非固定存储器地址,并在前次休眠阶段执行页面迁移所形成。
5.根据权利要求1所述的休眠唤醒方法,其特征在于,还包括:
在核心初始化阶段预先保留该连续页面范围。
6.根据权利要求5所述的休眠唤醒方法,其中在该休眠阶段是根据该些页面于该休眠映像文件的顺序决定该些页面于该连续页面范围的位置以将该第一页面表更新为该第二页面表。
7.根据权利要求5所述的休眠唤醒方法,其中该连续页面范围为固定存储器地址。
8.根据权利要求1所述的休眠唤醒方法,其中该些页面为用户空间页面。
9.根据权利要求1所述的休眠唤醒方法,其中该外部存储装置为硬盘或闪存。
10.一种电子装置,其特征在于,包括:
外部存储装置;
主存储器;
映像文件产生电路,用以在休眠阶段将多个页面逐一写入该外部存储装置以产生休眠映像文件,并将相关于该些页面的第一页面表更新为第二页面表,其中该第一页面表记录该些页面在主存储器的位置不全为连续位置,且该第二页面表纪录该些页面在该主存储器的连续页面范围的位置;以及
页面搬移电路,用以在唤醒阶段根据该休眠映像文件的文件头将该些页面由该外部存储装置一次性写入该主存储器的该连续页面范围,该唤醒阶段是在该休眠阶段之后,该主存储器的该连续页面范围的大小与该休眠映像文件的大小相同。
11.根据权利要求10所述的电子装置,其中该映像文件产生电路在该休眠阶段是先集中该些页面至该连续页面范围以形成连续页面阵列,再根据该连续页面阵列产生该休眠映像文件。
12.根据权利要求11所述的电子装置,其中该映像文件产生电路在该休眠阶段是根据该连续页面阵列将该第一页面表更新为该第二页面表。
13.根据权利要求11所述的电子装置,其中该连续页面范围为非固定存储器地址,并在前次休眠阶段执行页面迁移所形成。
14.根据权利要求10所述的电子装置,其中该映像文件产生电路在核心初始化阶段预先保留该连续页面范围。
15.根据权利要求14所述的电子装置,其中该映像文件产生电路根据该些页面于该休眠映像文件的顺序决定该些页面于该连续页面范围的位置以将该第一页面表更新为该第二页面表。
16.根据权利要求14所述的电子装置,其中该连续页面范围为固定存储器地址。
17.根据权利要求10所述的电子装置,其中该些页面为用户空间页面。
18.根据权利要求10所述的电子装置,其中该外部存储装置为硬盘或闪存。
19.一种休眠唤醒方法,其特征在于,包括:
在休眠阶段,经由第一处理单元或第二处理单元将多个页面自主存储器写入外部存储装置以产生休眠映像文件;以及
在唤醒阶段,经由该第一处理单元执行核心加载及初始化程序,及并行地经由该第二处理单元移动该休眠映像文件的该些页面至该主存储器,该唤醒阶段是在该休眠阶段之后。
20.根据权利要求19所述的休眠唤醒方法,其中在该唤醒阶段若发生页面冲突,则配置暂存页面,以解决页面冲突。
21.根据权利要求19所述的休眠唤醒方法,其中产生该休眠映像文件的步骤还包括:
预先计算该休眠映像文件的大小;
将连续页面范围内属于该休眠映像文件的页面标记为多个标记页面,该连续页面范围外属于该休眠映像文件的页面则为多个未标记页面,该连续页面范围是自该主存储器的缓存区域开始到该休眠映像文件的大小为止;
逐一将该些未标记页面写到该外部存储装置,遇到该些标记页面则跳过;以及
逐一将该些标记页面写到该外部存储装置。
22.根据权利要求19所述的休眠唤醒方法,其中产生该休眠映像文件的步骤还包括:
预先计算该休眠映像文件的大小;
将连续页面范围内属于该休眠映像文件的页面标记为多个标记页面,并记录该些标记页面至该主存储器的缓存区域的起始页面的页面数,该连续页面范围外属于该休眠映像文件的页面则为多个未标记页面,该连续页面范围是自该主存储器的缓存区域开始到该休眠映像文件的大小为止;
逐一将该些未标记页面写到该外部存储装置,遇到该些标记页面则跳过;以及
遇到该些标记页面至该缓存区域的起始页面的页面数,则将该些标记页面写到该外部存储装置。
23.根据权利要求19所述的休眠唤醒方法,其中产生该休眠映像文件的步骤还包括:
预先计算该休眠映像文件的大小;
压缩该休眠映像文件以产生压缩休眠映像文件;以及
将该休眠映像文件的大小记录于该压缩休眠映像文件中。
24.一种电子装置,其特征在于,包括:
外部存储装置;
主存储器;
第一处理单元;以及
第二处理单元,其中该第一处理单元或该第二处理单元用以在休眠阶段将多个页面自该主存储器写入该外部存储装置以产生休眠映像文件,该第一处理单元用以在唤醒阶段执行核心加载及初始化程序,及并行地经由该第二处理单元移动该休眠映像文件的该些页面至该主存储器,该唤醒阶段是在该休眠阶段之后。
25.根据权利要求24所述的电子装置,其中在该唤醒阶段若发生页面冲突,则该第一处理单元配置暂存页面,以解决页面冲突。
26.根据权利要求24所述的电子装置,其中该第一处理单元预先计算该休眠映像文件的大小,并将连续页面范围内属于该休眠映像文件的页面标记为多个标记页面,该连续页面范围外属于该休眠映像文件的页面则为多个未标记页面,该连续页面范围是自该主存储器的缓存区域开始到该休眠映像文件的大小为止,该第一处理单元逐一将该些未标记页面写到该外部存储装置,遇到该些标记页面则跳过,再逐一将该些标记页面写到该外部存储装置。
27.根据权利要求24所述的电子装置,其中该第一处理单元预先计算该休眠映像文件的大小,再将连续页面范围内属于该休眠映像文件的页面标记为多个标记页面,并记录该些标记页面至该主存储器的缓存区域的起始页面的页面数,该连续页面范围外属于该休眠映像文件的页面则为多个未标记页面,该连续页面范围是自该主存储器的缓存区域开始到该休眠映像文件的大小为止,该第一处理单元逐一将该些未标记页面写到该外部存储装置,遇到该些标记页面则跳过,若遇到该些标记页面至该缓存区域的起始页面的页面数,则将该些标记页面写到该外部存储装置。
28.根据权利要求24所述的电子装置,其中该第一处理单元预先计算该休眠映像文件的大小,再压缩该休眠映像文件以产生压缩休眠映像文件,并将该休眠映像文件的大小记录于该压缩休眠映像文件中。
29.一种电子装置,其特征在于,包括:
外部存储装置;
主存储器;以及
中央处理器,用以在休眠阶段将多个页面逐一写入该外部存储装置以产生休眠映像文件,并将相关于该些页面的第一页面表更新为第二页面表,其中该第一页面表记录该些页面在主存储器的位置不全为连续位置,且该第二页面表纪录该些页面在该主存储器的连续页面范围的位置,并用以在唤醒阶段根据该休眠映像文件的文件头将该些页面由该外部存储装置一次性写入该主存储器的该连续页面范围,该唤醒阶段是在该休眠阶段之后,该主存储器的该连续页面范围的大小与该休眠映像文件的大小相同。
CN201410589570.9A 2013-12-27 2014-10-28 休眠唤醒方法及电子装置 Active CN104750227B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW102148783 2013-12-27
TW102148783A TWI610239B (zh) 2013-12-27 2013-12-27 休眠喚醒方法及電子裝置

Publications (2)

Publication Number Publication Date
CN104750227A CN104750227A (zh) 2015-07-01
CN104750227B true CN104750227B (zh) 2017-10-13

Family

ID=53481846

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410589570.9A Active CN104750227B (zh) 2013-12-27 2014-10-28 休眠唤醒方法及电子装置

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)

* Cited by examiner, † Cited by third party
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN102436387A (zh) * 2010-12-06 2012-05-02 微软公司 快速计算机启动
TW201327160A (zh) * 2011-12-21 2013-07-01 Ind Tech Res Inst 於休眠機制之方法及其電腦系統

Family Cites Families (15)

* Cited by examiner, † Cited by third party
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
TWI312111B (en) * 2005-01-18 2009-07-11 Acer Incorporate Hibernation method and device utilizing same
JP2009146061A (ja) 2007-12-12 2009-07-02 Canon Inc 情報処理装置及び前記装置の起動方法
US7971081B2 (en) * 2007-12-28 2011-06-28 Intel Corporation System and method for fast platform hibernate and resume
JP5565778B2 (ja) 2009-01-05 2014-08-06 マーベル ワールド トレード リミテッド 不揮発性メモリデバイスを利用するハイバネートまたはサスペンド方法およびシステム
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 キヤノン株式会社 情報処理装置、起動方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN102436387A (zh) * 2010-12-06 2012-05-02 微软公司 快速计算机启动
TW201327160A (zh) * 2011-12-21 2013-07-01 Ind Tech Res Inst 於休眠機制之方法及其電腦系統

Also Published As

Publication number Publication date
US9594572B2 (en) 2017-03-14
CN104750227A (zh) 2015-07-01
TWI610239B (zh) 2018-01-01
US20150186151A1 (en) 2015-07-02
JP2015127945A (ja) 2015-07-09
TW201525867A (zh) 2015-07-01
JP5923583B2 (ja) 2016-05-24

Similar Documents

Publication Publication Date Title
CN104750227B (zh) 休眠唤醒方法及电子装置
CN101916201B (zh) 一种基于Android移动终端冷启动的方法和装置
CN1442772B (zh) 在执行实时应用的同时实现节电的方法
CN103810112A (zh) 一种非易失性内存系统及其管理方法
TW200839768A (en) Hybrid density memory storage device
CN103049396B (zh) 数据的刷写方法及装置
CN105573463A (zh) 一种功耗管理方法及装置
TW201303874A (zh) 記憶體控制方法、記憶體控制器與記憶體儲存裝置
CN104142872A (zh) 一种raid磁盘阵列的快速重建方法
US20210081284A1 (en) Incrementally updating recovery map data for a memory system
CN102110167A (zh) 数控系统中实现日志信息管理的方法
CN106873954A (zh) 初始化周边装置的方法与使用此方法的电子装置
CN115481127A (zh) 数据库的数据存储方法、存储介质与设备
CN103488586A (zh) 信息处理设备和方法以及程序
CN102736988A (zh) 存储器管理装置、存储器管理方法和控制程序
JP2006011533A (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
CN102131120B (zh) 一种机顶盒启动方法
CN103544221A (zh) 一种Android系统中视频缩略图的生成方法和系统
CN104115116A (zh) 用于在休眠状态的装置中管理数据的系统和方法
CN102819441B (zh) 一种基于MPC5200B的Vxworks系统快速启动方法
CN105068957A (zh) 一种apb总线系统中访问从模块的方法及装置
CN106407048B (zh) 输入输出通信接口、基于该接口的数据备份和恢复方法
CN104133798A (zh) 一种大数据高速存储系统及实现方法
CN105786643B (zh) 基于异构混合内存的数据备份方法和系统
CN104268005B (zh) 虚拟机唤醒方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant