CN101710253A - 嵌入式系统的深度休眠方法 - Google Patents

嵌入式系统的深度休眠方法 Download PDF

Info

Publication number
CN101710253A
CN101710253A CN200910194147A CN200910194147A CN101710253A CN 101710253 A CN101710253 A CN 101710253A CN 200910194147 A CN200910194147 A CN 200910194147A CN 200910194147 A CN200910194147 A CN 200910194147A CN 101710253 A CN101710253 A CN 101710253A
Authority
CN
China
Prior art keywords
deep
sleep
data
piece
sign
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.)
Granted
Application number
CN200910194147A
Other languages
English (en)
Other versions
CN101710253B (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.)
ZHEJIANG JINHUA KAIYU ELECTRONIC TECHNOLOGY Co.,Ltd.
Original Assignee
Anyka Guangzhou Microelectronics Technology Co Ltd
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 Anyka Guangzhou Microelectronics Technology Co Ltd filed Critical Anyka Guangzhou Microelectronics Technology Co Ltd
Priority to CN2009101941478A priority Critical patent/CN101710253B/zh
Priority to US13/512,076 priority patent/US20120284551A1/en
Priority to PCT/CN2010/000213 priority patent/WO2011063584A1/zh
Publication of CN101710253A publication Critical patent/CN101710253A/zh
Application granted granted Critical
Publication of CN101710253B publication Critical patent/CN101710253B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)

Abstract

本发明提供一种嵌入式系统的深度休眠方法,主要包括以下处理过程:1、在系统运行状态下判断是否长时间无操作或者接收关闭系统信号,为真则在保证硬件操作结束后进行系统保存过程,然后系统关闭并进入深度休眠模式;2、系统开启,内存映射初始化后查找深度休眠块。找到有效的深度休眠标志后,进行系统数据恢复过程;3、系统恢复成功后再进行相关硬件初始化,回到深度休眠模式前的状态。使用本发明方法可以使设备在掉电关机之后,再开机时自动回到原来的界面,大大降低待机系统的功耗,节能省电,从而延长电池的使用时间,在大幅度提升系统的启动速度的同时,保证相关硬件的使用寿命。

Description

嵌入式系统的深度休眠方法
技术领域
本发明属于系统的待机休眠及唤醒技术领域,是一种应用于嵌入式系统的深度休眠方法。
背景技术
目前,嵌入式移动设备的使用越来越广泛,其最大特点之一是要求功耗低,一般采用电池供电。为了省电,移动设备经常需要进入待机模式。待机是把正在运行的程序状态储存在内存里,当系统切换到该模式后,将切断除了内存的其他部分供电,由于内存依靠电能维持着系统数据,唤醒的时候就可以恢复到待机前的状态。这是目前嵌入式移动设备采用最多的待机技术。
一般的嵌入式移动设备在掉电关机之后,再开机时不能自动回到原来的界面。目前的待机技术则可以回到原来的界面中,看起来像是关机,但实际上并没有断电,内存等设备还在供电,只是进入待机模式而已,存在一定的功耗和设备损耗,一直都在持续地消耗系统资源。所以,在装置久置而未进行充电一段时间之后,手持式装置便会因为电源不足而造成系统中断与数据遗失。而且,如果在待机模式期间不慎掉电关机,内存中的信息会被丢弃,待机前保留的工作成果和使用状态全部丢失!这种待机模式实际上就是:还要对内存等主要设备供电,保存着当前的系统状态,以达到降低部分功耗的目的,适合短时间不用的情况。但是当掉电关机的时候,内存中的信息会丢失,由此会带来操作上的不便。因此,需要一种新的既省电又安全可靠的方法来解决这类问题。
发明内容
本发明的目的在于提供一种适用于嵌入式系统及其移动设备的深度休眠方法,该方法可以使设备在掉电关机之后,再开机时自动回到原来的界面的过程中,大幅度提升系统的启动速度,同时有利于延长相关硬件存储器的使用寿命。
为达到上述发明目的,本发明提供一种嵌入式系统的深度休眠方法,包括以下步骤:
(a)在系统运行状态下长按关机键或长期无操作时,系统在确定硬件操作结束后进行系统保存,其保存过程为:在非易失性存储器的数据交换区中选择可用的数据交换块,作为深度休眠块(以下称为Deep Standby Block,或者直接称为Standby Block),将当前系统数据写入此深度休眠块,同时在该块中写入深度休眠标志,最后掉电关机进入深度休眠;
(b)系统开启,内存映射初始化后查找深度休眠标志,找到有效的深度休眠标志后,进行系统数据恢复,其恢复过程为:查找有效的深度休眠块,读出该块中的系统数据,并在该块中写入取消标志(以下称为Cancel标志),恢复CPU现场环境,然后回到系统保存前的位置;
(c)如果系统数据恢复成功并回到系统保存前的位置,则进行相关硬件初始化,回到深度休眠模式前的状态;否则系统重新启动。
所述步骤(a)的选择深度休眠块的过程为:检查当前数据交换块的剩余页数,不少于cnt+1页则将当前数据交换块作为深度休眠块,其中cnt为RAM常驻区数据页数,否则取下一个有效数据交换块,直到选择到合适的深度休眠块为止。
所述步骤(a)的系统保存过程中还包括数据冗余保存过程,包括以下步骤:选择并记录两个深度休眠块,一个为主体深度休眠块,一个为备份深度休眠块;备份块为主体块的下一个有效数据交换块,从而,系统数据在主体深度休眠块和备份深度休眠块中各保存一份。
所述步骤(b)的系统数据恢复过程失败,则记录系统数据恢复失败,并在深度休眠块写入取消标志后进行系统重新启动。
所述步骤(b)的查找有效的深度休眠块的过程为:查找序号值最大的数据交换块,如果该块存在深度休眠标志且没有取消标志的话,则此数据交换块为备份深度休眠块;依次判别数据交换块序号值的次最大值所在的数据交换块,即为主体深度休眠块。所述查找数据交换块序号值的最大值采用折半检索算法。
所述数据交换块序号值、深度休眠标志、取消标志分别写在深度休眠块的倒数第3、2、1页的空闲区(以下称spare区)。
所述数据恢复中还进行数据校验,包括以下步骤:
校验深度休眠块的合法性:用一个全局变量记录系统数据保存前的深度休眠块的位置,系统恢复完RAM常驻区数据后,校验当前找到的深度休眠块位置与该全局变量是否一致,如果不一致则标记数据校验失败,并在深度休眠块写入取消标志后系统重新启动;
校验恢复数据的和值:在系统保存RAM常驻区数据时,计算一个此时系统数据的校验和值给全局变量;系统恢复完常驻区数据后,再计算一个此时恢复的系统数据的校验和值,与所述全局变量进行比较,不一致则标记数据校验失败,并在深度休眠块写入取消标志后系统重新启动;
上述的所有的在数据交换块中写取消标志的步骤中,如果写标志失败,则标记当前块为坏块后系统重启。
所述CPU现场环境恢复包括:设置系统堆栈,从系统数据恢复过程中恢复的系统数据中取回超级用户模式栈的堆栈寄存器指针,再从此栈中恢复CPU寄存器的值,从而恢复CPU现场环境。
与现有技术相比,本发明具有以下优点:
(1)深度休眠(Deep Standby)模式与实际的关机没有区别,待机功耗可以大大降低。而且,从Deep Standby模式恢复时,系统只需将保存在闪存(NandFlash)的内容加载进内存和进行少量必要的初始化工作,数据保存和恢复的过程中采用了有效的选择和查找数据交换块的机制,因而开机速度会大幅度地提升。普通开机耗时2~3s,在本方法中,若以NandFlash 7M/s的读取速度计算,加载192K的内存数据大约是30ms左右,再加上硬件初始化的时间,应该可以控制在100ms以内,大大加快了开机的速度。
(2)采用本发明方法的具有冗余和校验功能的Standby Block选择查找机制,较好地确保了Deep Standby模式的系统安全可靠性和较高的查找效率。同时,Deep Standby模式对Deep Standby Block没有进行任何额外的擦写,与原系统完全融合,实现了NandFlash磨损均衡的目的,最大可能地延续了NandFlash等嵌入式系统中使用的非易失性存储器的使用寿命。
(3)本发明方法可以使嵌入式设备在下次加电开机时,直接从NandFlash恢复内存数据,可以恢复到上次工作状态,从而有效地避免了工作成果的丢失。
(4)而且,Deep Standby模式保存数据总共只需cnt+1页,充分利用了有不少于cnt+1空页的交换块。
(5)本发明方法通过在页spare区写入标志的方式,可以提高系统的读取效率,进一步缩短开机时间。
附图说明
图1为本发明嵌入式系统深度休眠方法的实现逻辑框图;
图2为本发明嵌入式系统深度休眠方法的系统保存流程图;
图3为本发明嵌入式系统深度休眠方法的系统恢复流程图;
图4为本发明嵌入式系统深度休眠方法的休眠块Deep Standby Block选择示意图;
图5为本发明嵌入式系统深度休眠方法的休眠块Deep Standby Block页数据分布图;
图6为本发明嵌入式系统深度休眠方法的硬件初始化流程图。
具体实施方式
图1示出了本发明的嵌入式系统的深度休眠方法的实现逻辑框图。本方法的实现分为三个过程:系统数据和CPU状态的保存(图中标号1)、系统数据和CPU状态的恢复(图中标号2)、相关硬件初始化(图中标号3)。
本系统是一个物理内存只有192K的微内存系统。软件上将地址虚拟到2M的地址空间。有S2K是常驻内存的代码,加载到物理内存的前32K的空间。后面的地址空间数据及代码是通过内存交换机制被加载到实际物理内存的后160K的空间。内存交换机制会将运行时需要的代码或者数据加载到物理内存中,并根据一定的策略将内存中的数据失效掉。如果失效的是数据并且数据被修改过,数据将会回写到NandFlash上。本发明的深度休眠方法的整体过程为:在系统正常运行过程中的某状态下,检测用户是否进行长按PLAY键进行关机操作,或者长时间无操作,则系统在闪存等硬件操作结束后,进行保存系统数据和CPU状态,然后断电关闭系统,进入Deep Standby模式。当需要唤醒的时候加电开机,恢复系统数据和CPU状态,并进行相关数据校验,在相关硬件初始化后回到,返回到Deep Standby模式之前的界面或进度。
本发明通过把正在运行程序的数据和现场环境保存在NandFlash(一种闪存,属于非易失性存储介质,类似于硬盘)上,也可以使用其它非易失性存储器,系统掉电后进入Deep Standby模式。Deep Standby模式下NandFlash和内存也不用供电,功耗可以降低很多,达到和掉电关机一样的效果。当下次加电开机时,直接从NandFlash恢复内存数据和现场环境,系统可以回到上次保留的工作状态,从而有效地避免了工作成果的丢失。
为了系统在加电恢复时能准确地回到休眠前的状态,Deep Standby模式在系统保存时要储存所有全局变量,这些全局变量统一放在RAM(即内存)常驻区,一般称为RAM常驻区数据。RAM常驻区数据通常只有4KB左右,用一个NandFlash块(NandFlash由很多块组成,块由一定的页组成)保存足够。所以,可以在交换区选择一个块来保存RAM常驻区数据和特殊标志。本方法中将这个块称之为DeepStandby Block(深度休眠块),或Standby Block,以下统一称为Standby Block。系统进入深度休眠模式前,把内存中的数据和现场环境全部回写到NandFlash上去,并在NandFlash上写上序号值和Deep Standby标志,然后直接掉电关机。当需要唤醒的时候,直接给系统加电开机。当从NandFlash上检测到那个有效的Deep Standby标志后,就从NandFlash上把整个内存和现场环境的内容恢复,初始化相应的硬件。如果没有检测到有效的Deep Standby标志,就正常开机。
图2为本发明嵌入式系统深度休眠方法的系统保存流程图。系统在进行系统保存前首先保证硬件操作结束,例如DMA,nand读写等。记录系统稳定后进入系统保存过程,有以下详细操作:
1.保存DMA(指连续的内存访问)的内存状态和所有中断状态后禁止中断。
2.关闭显示屏和SD卡等相关硬件。记录GPIO(即通用输入输出)寄存器状态。
3.将CPU寄存器压栈保存。接着记录此时的SP(即堆栈寄存器)指针。失效缓存区数据,为释放RAM后160KB内存的映射关系作准备。
4.利用原内存映射机制将改动过的数据页自动写回到NandFlash的交换区,释放RAM后160KB内存非常驻区数据的映射关系。
5.选择合适的Standby Block,将内存常驻区数据、序号值、数据校验和及Deep Standby标志写入此Standby Block。
6.通过指定的GPIO发出命令,系统掉电关机。
图3为本发明嵌入式系统深度休眠方法的系统恢复流程图。系统恢复主要实现Standby Block查找,RAM常驻区数据和系统CPU环境恢复。如图所示,系统上电进行MMU和remap(内存映射管理部分)初始化后,在Nandflash交换区查找Standby Block,如果找不到则进行正常的系统启动。找到Standby Block的话,进行系统RAM常驻区数据的恢复和校验。如果数据恢复和校验成功,则继续进行CPU现场环境恢复,回到Deep Standby模式前的状态;数据恢复或校验不成功则重启系统,正常启动。
由于Standby Block的存在会带来新的问题,因为Deep Standby模式可能对Standby Block进行两次额外的擦写!一次是在写常驻区数据和特殊标志前,一次是系统恢复后擦掉标志。长此以往,将会造成NandFlash磨损不均衡的严重后果,大大缩短NandFlash的寿命。为进一步解决这个问题,达到NandFlash磨损均衡的目的,并保证系统的安全可靠性,建立了一套具有冗余和校验功能的Standby Block选择和查找机制。这是因为闪存中每个块只能擦除一定的次数,如果其中一个块擦写过多而先坏,会影响整个闪存的寿命,所以要保持其擦写均衡,亦即磨损均衡。
为了实现磨损均衡,在本机制中,设立一个counter(计数序号)值用于Standby Block查找,counter是已使用交换块数量的累加值,亦即交换块序号值,它存放在每个交换块的倒数第三页。每次使用交换块时counter自动加1并保存,所以最大两个counter所在的块最有可能是Standby Block。而且,系统保存RAM常驻区数据过程中可能意外断电,为了防止因此造成的不可预计后果,确保RAM常驻区数据的完整性,系统在保存RAM常驻区数据的最后一页(即Standby Block倒数第二页)时才写入Deep Standby标志。另外,Standby Block倒数第一页预留,用于系统从Deep Standby恢复后写cancel(休眠块取消)标志,可有效避免对NandFlash的额外擦除。
RAM常驻区数据的大小是固定的,假设总共cnt页,那么RAM常驻区数据保存起始页为倒数第cnt+1页。同时假设当前交换块序号值为n-1,交换预留块数为m。因此,在系统保存过程中的深度休眠块的选择过程采用如下的StandbyBlock选择和冗余过程:
首先,系统在闪存的swap数据交换区需要选择合适的Standby Block,来保存RAM常驻区数据和特殊标志,选择合适的Standby Block步骤为:检查当前交换块的剩余页数,不少于cnt+1页则当前交换块可以用作Standby Block,否则取下一个有效块,直到选择完合适的Standby Block为止。
在Standby Block的倒数第cnt+1页开始保存RAM常驻区数据,一共cnt页。同时在Standby Block的倒数第三页写入counter序号值,在倒数第二页写入Deep Standby标志。如果中途写失败,则标记为坏块,并将此块有效数据转移到下一块。
同时,为了确保RAM常驻区数据保存的可靠性,本系统设置两个StandbyBlock,即冗余的过程:如图4所示,一个为主体深度休眠块51,一个为备份深度休眠块52。53表示原来已写满的数据交换块,54表示新的未写的数据交换块。备份Standby Block为主体的下一个有效块,写备份Standby Block出错时只重新申请选择备份Standby Block。这样,在系统恢复时如果读取主体StandbyBlock出错,可以进一步读取备份Standby Block的数据。
注意,如果原来交换块的剩余页数小于cnt+1,且未出现坏块的话,除了保存系统数据的两个Standby Block块外,原来的交换块已经递增了一次,所以实际上交换块总共递增了三次,因此为保持交换预留块的平衡,应该总共擦除三个块,保持交换块总数不变。
为了在查找的过程中再次提高查找和读取效率,在本系统Standby Block的规划中,Standby Block页数据分布如图5所示:61为系统常驻区数据,共cnt页,counter序号值放在倒数第三页(图中标号62),Deep Standby标志放在倒数第二页(图中标号63),Cancel标志放在倒数第一页(图中标号64)。这三个特殊标记都放在各页的spare区,充分利用了NandFlash的页空间,而且提高了其读取速度。
因此,在系统恢复过程中只要查找到counter最大值,再根据标志判别即可找出Standby Block。具体的Standby Block的查找步骤如下:
1.查找counter最大值:由于counter值是一个有序数值的排列,因而采用折半检索算法。读取交换块的倒数第三页spare数值,如果是0xffffffff,表明counter最大值在此块之前。按照这些规律,可以很快找到counter最大值。
2.判别Standby Block:分别读取counter最大值块的倒数第二页和末页spare区的标志,如果存在Deep Standby标志且没有Cancel标志的话则DeepStandby标志有效,则此块是备份Standby Block。依此判别counter次最大值所在块,可找出主体Standby Block。
此外,从安全可靠性角度出发,为了确保恢复数据的正确性,从StandbyBlock恢复数据后,应进行Standby Block合法校验与数据和值的校验。
1.校验Standby Block的合法性。用一个全局变量记录系统保存前的Standby Block位置。系统恢复完RAM常驻区数据后,校验当前找到的StandbyBlock位置与该全局变量是否一致。不一致的话认为Deep Standby标志无效,此Standby Block不合法。
2.校验恢复数据的和值。在系统保存RAM常驻区数据时,计算了一个校验和值给全局变量。系统恢复完常驻区数据后,再计算一个这些数据的校验和值,这两个校验和值的计算方法是将数据以四字节为单位相加求值。将系统恢复数据的校验和值与该全局变量进行比较,不一致的话则说明数据恢复无效。
3.在此块的末页spare区写入Cancel标志。如果以上任何一处不一致时,系统重启。这是为了确保Standby Block的合法性,防止Deep Standby标志在非Standby Block偶然出现时造成的不可预计后果。写Cancel标志失败,则标记坏块后系统重启。
有了以上的Standby Block选择和查找机制,就可以提供可靠的数据保存和较高的查找效率,保证NandFlash每块的擦写次数不会再额外增加,最大可能的延长NandFlash的使用时间。同时,从以上机制可以看出,按系统原来的交换机制选择Standby Block,既不会破坏系统回写到NandFlash的数据,也可依托于交换区域原来的NandFlash磨损均衡体制。同时,为了充分利用已擦写的块,最大可能延长NandFlash的寿命,选择Standby Block时会先判断当前交换块的剩余页数,如果不少于cnt+1,就选择当前交换块为Standby Block。
系统数据恢复后则需要进行必要的硬件模块初始化和恢复工作,图6示出了硬件初始化工作流程:当从深度休眠模式返回此处时,开始相关硬件寄存器的初始化和恢复工作。主要操作包括:使能内存访问计数中断,内存初始化;锁相环模块初始化;AD和DA(模数和数模接口)模块初始化;GPIO初始化,恢复寄存器状态;显示模块初始化;SD存储模块初始化;Timer(定时器)模块初始化;FM(收音)模块初始化;频率管理复位;恢复所有中断状态,并开启中断;重新申请被释放的DMA内存,恢复DMA虚拟地址到物理地址的映射。最终恢复到深度休眠模式之前的系统状态。
可以看出,由于从Deep Standby模式恢复后不用再重新擦除预留块,避免了每次正常加电时对swap区前几个块的反复擦除,因此完善了交换区域原来的NandFlash磨损均衡体制。
通过这套具有冗余和校验功能的Standby Block选择和查找机制,较好地确保了Deep Standby模式的系统安全可靠性和较高的查找效率。同时,DeepStandby模式对Standby Block没有进行任何额外的擦写,与原系统完全融合,实现了NandFlash磨损均衡的目的。而且,Deep Standby模式保存数据总共只需cnt+1页(本方案为3页),充分利用了有不少于cnt+1空页的交换块,最大可能地延续了NandFlash的使用寿命。另外,通过在页spare区写入标志的方式,可以提高系统的读取效率,缩短开机时间。
综上所述,本系统进入Deep Standby休眠模式时,把内存中的数据和现场环境全部回写到NandFlash上去,并在NandFlash上写上序号值和Deep Standby标志,然后直接掉电关机。当需要唤醒的时候,直接给系统加电开机。当从NandFlash上检测到那个有效的Deep Standby标志后,就从NandFlash上把整个内存和现场环境的内容恢复,初始化相应的硬件。如果没有检测到有效的DeepStandby标志,就正常开机。
因此,Deep Standby模式与实际的关机没有区别,待机功耗可以大大降低。而且,从Deep Standby模式恢复时,系统只需将保存在NandFlash的内容加载进内存和进行少量必要的初始化工作,因而开机速度会大幅度地提升。普通开机耗时2~3s,在本方案中,若以NandFlash 7M/s的读取速度计算,加载192K的内存数据大约是30ms左右,再加上硬件初始化的时间,应该可以控制在100ms以内,大大加快了开机的速度。
此外,以数码电子产品为例,对本发明的嵌入式系统深度休眠方法进行验证,验证结果如下:
(1)系统设置
在系统设置的任何一个界面,进入Deep Standby休眠模式,重新上电后系统可以回到原来的界面,按键操作正常。
(2)音频/视频播放
在音频/视频播放的文件选择界面,进入Deep Standby休眠模式,重新上电后系统可以回到原来的界面,按键操作正常。
在音频/视频播放的文件播放界面,进入Deep Standby休眠模式,重新上电后系统回到文件选择界面,当前选中文件正是休眠前播放的文件,按键操作正常。按播放键会在进入Deep Standby休眠模式前保存的进度继续播放。
(3)录音
在录音时,进入Deep Standby休眠模式,重新上电后系统回到录音界面,按键操作正常。
(4)录音播放
在录音播放时,进入Deep Standby休眠模式,重新上电后系统回到播放文件界面,按键操作正常。按播放键会在进入Deep Standby休眠模式前保存的进度继续播放。
(5)图片浏览
在浏览图片时,进入Deep Standby休眠模式,重新上电后系统回到图片文件的选择界面,当前选中文件正是休眠前浏览的文件,按键操作正常,继续浏览正常。
(6)电子书
在浏览电子书时,进入Deep Standby休眠模式,重新上电后系统回到电子书文件的选择界面,当前选中文件正是休眠前浏览的文件,按键操作正常。继续浏览正常。
通过以上验证例子说明,在本发明的嵌入式系统深度休眠方法可以使嵌入式移动设备在系统进入Deep Standby模式后功耗大大降低,达到和掉电关机一样的效果,在重新加电开机后,能自动恢复之前保存的状态和现场环境,可以很好的回到Deep Standby模式前的界面,并能正常进行下一步操作,同时可靠地保存了工作成果,提升了开机速度。实际验证中发现再开机的速度很快,基本控制在100ms以内。

Claims (10)

1.一种嵌入式系统的深度休眠方法,其特征在于,包括以下步骤:
(a)在系统运行状态下长按关机键或长期无操作时,系统在确定硬件操作结束后进行系统保存,其保存过程为:在非易失性存储器的数据交换区中选择可用的数据交换块,作为深度休眠块,将当前系统数据写入此深度休眠块,同时在该块中写入深度休眠标志,最后掉电关机进入深度休眠;
(b)系统开启,内存映射初始化后查找深度休眠标志,找到有效的深度休眠标志后,进行系统数据恢复,其恢复过程为:查找有效的深度休眠块,读出该块中的系统数据,并在该块中写入取消标志,恢复CPU现场环境,然后回到系统保存前的位置;
(c)如果系统数据恢复成功并回到系统保存前的位置,则进行相关硬件初始化,回到深度休眠模式前的状态;否则系统重新启动。
2.根据权利要求1所述的一种嵌入式系统的深度休眠方法,其特征在于:所述步骤(a)的选择深度休眠块的过程为:检查当前数据交换块的剩余页数,不少于cnt+1页则将当前数据交换块作为深度休眠块,其中cnt为RAM常驻区数据页数,否则取下一个有效数据交换块,直到选择到合适的深度休眠块为止。
3.根据权利要求1所述的一种嵌入式系统的深度休眠方法,其特征在于:所述步骤(a)的系统保存过程中还包括数据冗余保存过程,包括以下步骤:选择并记录两个深度休眠块,一个为主体深度休眠块,一个为备份深度休眠块;备份块为主体块的下一个有效数据交换块,从而,系统数据在主体深度休眠块和备份深度休眠块中各保存一份。
4.根据权利要求1所述的一种嵌入式系统的深度休眠方法,其特征在于:所述步骤(b)的系统数据恢复过程失败则记录系统数据恢复失败,并在深度休眠块写入取消标志后进行系统重新启动。
5.根据权利要求1所述的一种嵌入式系统的深度休眠方法,其特征在于:所述步骤(b)的查找有效的深度休眠块的过程为:查找序号值最大的数据交换块,如果该块存在深度休眠标志且没有取消标志的话,则此数据交换块为备份深度休眠块;依次判别数据交换块序号值的次最大值所在的数据交换块,即为主体深度休眠块。
6.根据权利要求5所述的一种嵌入式系统的深度休眠方法,其特征在于:所述数据交换块序号值、深度休眠标志、取消标志分别写在深度休眠块的倒数第3、2、1页的空闲区。
7.根据权利要求5所述的一种嵌入式系统的深度休眠方法,其特征在于:所述查找数据交换块序号值的最大值采用折半检索算法。
8.根据权利要求1所述的一种嵌入式系统的深度休眠方法,其特征在于:所述步骤(b)的系统数据恢复过程还包括数据校验过程,包括以下步骤:
校验深度休眠块的合法性:用一个全局变量记录系统数据保存前的深度休眠块的位置,系统恢复完RAM常驻区数据后,校验当前找到的深度休眠块位置与该全局变量是否一致,如果不一致则标记数据校验失败,并在深度休眠块写入取消标志后系统重新启动;
校验恢复数据的和值:在系统保存RAM常驻区数据时,计算一个此时系统数据的校验和值给全局变量;系统恢复完常驻区数据后,再计算一个此时恢复的系统数据的校验和值,与所述全局变量进行比较,不一致则标记数据校验失败,并在深度休眠块写入取消标志后系统重新启动。
9.根据权利要求1、4、7或8中任一项所述的一种嵌入式系统的深度休眠方法,其特征在于:所述的在数据交换块中写取消标志时,如果写标志失败,则标记当前坏为坏块后系统重启。
10.根据权利要求5所述的一种嵌入式系统的深度休眠方法,其特征在于:所述步骤(b)的CPU现场环境恢复过程包括:设置系统堆栈,从系统数据恢复过程中恢复的系统数据中取回超级用户模式栈的堆栈寄存器指针,再从此栈中恢复CPU寄存器的值,从而恢复CPU现场环境。
CN2009101941478A 2009-11-25 2009-11-25 嵌入式系统的深度休眠方法 Active CN101710253B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2009101941478A CN101710253B (zh) 2009-11-25 2009-11-25 嵌入式系统的深度休眠方法
US13/512,076 US20120284551A1 (en) 2009-11-25 2010-02-17 Deep standby method and device for embedded system
PCT/CN2010/000213 WO2011063584A1 (zh) 2009-11-25 2010-02-17 嵌入式系统的深度休眠方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101941478A CN101710253B (zh) 2009-11-25 2009-11-25 嵌入式系统的深度休眠方法

Publications (2)

Publication Number Publication Date
CN101710253A true CN101710253A (zh) 2010-05-19
CN101710253B CN101710253B (zh) 2012-06-13

Family

ID=42403045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101941478A Active CN101710253B (zh) 2009-11-25 2009-11-25 嵌入式系统的深度休眠方法

Country Status (3)

Country Link
US (1) US20120284551A1 (zh)
CN (1) CN101710253B (zh)
WO (1) WO2011063584A1 (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916138A (zh) * 2010-08-06 2010-12-15 北京中星微电子有限公司 中央处理器工作状态和睡眠状态切换的方法和装置
CN101969502A (zh) * 2010-10-13 2011-02-09 华为终端有限公司 一种移动终端业务恢复的方法及一种移动终端
CN101980162A (zh) * 2010-11-05 2011-02-23 福建新大陆通信科技股份有限公司 发射机掉电自动开机方法
CN102023898A (zh) * 2010-12-21 2011-04-20 中兴通讯股份有限公司 中央处理器热插拔的实现方法及装置
CN102055843A (zh) * 2010-10-27 2011-05-11 中兴通讯股份有限公司 一种终端及内存数据校验的方法
CN102193847A (zh) * 2011-06-24 2011-09-21 杭州华三通信技术有限公司 重启数据不丢失方法及保留内存管理模块
CN102262550A (zh) * 2010-05-31 2011-11-30 仁宝电脑工业股份有限公司 计算机系统及其开关机方法
CN102779072A (zh) * 2012-06-18 2012-11-14 中国科学院上海微系统与信息技术研究所 一种嵌入式系统及其应用进程的休眠与唤醒方法
WO2012155707A1 (en) * 2011-05-13 2012-11-22 Hangzhou H3C Technologies Co., Ltd. Preventing data loss during reboot and logical storage resource management device
CN102841674A (zh) * 2012-07-25 2012-12-26 中国科学院上海微系统与信息技术研究所 基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法
CN102866934A (zh) * 2011-07-05 2013-01-09 中国科学院上海微系统与信息技术研究所 基于非易失随机存储器的嵌入式设备的休眠及唤醒系统
WO2013159316A1 (zh) * 2012-04-26 2013-10-31 宝添管理有限公司 遥控方法及遥控器
CN104461592A (zh) * 2013-09-18 2015-03-25 联想(北京)有限公司 信息处理的方法及电子设备
CN104656870A (zh) * 2013-11-20 2015-05-27 联想(北京)有限公司 一种信息处理方法及电子设备
CN104808765A (zh) * 2014-01-27 2015-07-29 联想(北京)有限公司 一种信息处理方法以及电子设备
CN104850208A (zh) * 2014-02-19 2015-08-19 联想(北京)有限公司 一种信息处理方法以及电子设备
CN105739982A (zh) * 2016-01-29 2016-07-06 浪潮(北京)电子信息产业有限公司 一种系统休眠的方法及装置
CN107068172A (zh) * 2016-02-11 2017-08-18 爱德斯托科技有限公司 存储器装置超深度掉电模式离开控制
CN107797642A (zh) * 2016-09-07 2018-03-13 华为技术有限公司 一种备电方法及装置
CN108446009A (zh) * 2018-03-10 2018-08-24 北京联想核芯科技有限公司 掉电控制方法、装置、设备及介质
CN110609499A (zh) * 2019-09-18 2019-12-24 深圳市航顺芯片技术研发有限公司 一种adc实时性采样与非实时性采样的切换方法及设备
CN111367717A (zh) * 2020-02-20 2020-07-03 安凯(广州)微电子技术有限公司 一种电子设备的恢复方法、装置及系统
CN111506351A (zh) * 2020-04-03 2020-08-07 珠海市一微半导体有限公司 片上系统的深度休眠方法、唤醒方法和休眠与唤醒方法
WO2022057872A1 (zh) * 2020-09-21 2022-03-24 华为技术有限公司 一种数据处理方法及相关装置
CN116795196A (zh) * 2023-08-25 2023-09-22 深圳市德航智能技术有限公司 一种加固手持平板电脑超长待机的实现方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268699B2 (en) * 2013-06-03 2016-02-23 Samsung Electronics Co., Ltd. Dynamic cache allocation in a solid state drive environment
CN103870746B (zh) * 2014-02-21 2017-01-18 北京神舟航天软件技术有限公司 一种基于SPARC在轨NorFLASH坏块监控程序处理方法
US10216536B2 (en) * 2016-03-11 2019-02-26 Vmware, Inc. Swap file defragmentation in a hypervisor
US10531382B2 (en) * 2017-06-20 2020-01-07 Intel Corporation Offloading MAC/link layer functions
TWI690844B (zh) * 2019-02-01 2020-04-11 新唐科技股份有限公司 電子裝置及裝置喚醒方法
CN115883925A (zh) * 2022-11-17 2023-03-31 深圳创维-Rgb电子有限公司 显示设备待机方法、电子设备及可读存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0139985B1 (ko) * 1995-01-06 1998-07-01 김광호 옵션 카드의 하이버네이션 시스템
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US6317755B1 (en) * 1999-07-26 2001-11-13 Motorola, Inc. Method and apparatus for data backup and restoration in a portable data device
US6636963B1 (en) * 1999-12-30 2003-10-21 Cardiac Pacemakers, Inc. Quick starting for microprocessor-based system by retrieving a target state memory image and a target state data structure from an image storage medium
US6606628B1 (en) * 2000-02-14 2003-08-12 Cisco Technology, Inc. File system for nonvolatile memory
CN1248089C (zh) * 2002-12-03 2006-03-29 宏碁股份有限公司 具有休眠功能的手持式装置及其操作方法
JP2005316855A (ja) * 2004-04-30 2005-11-10 Toshiba Corp 情報処理装置、その起動方法およびその起動プログラム
JP4662743B2 (ja) * 2004-09-13 2011-03-30 Necインフロンティア株式会社 データ2重化システム
US7489923B2 (en) * 2005-08-05 2009-02-10 Research In Motion Limited Methods and systems for handling software operations associated with startup and shutdown of handheld devices
CN100448269C (zh) * 2005-10-09 2008-12-31 亚洲光学股份有限公司 影像撷取装置的省电方法
CN100377085C (zh) * 2006-03-31 2008-03-26 浙江大学 嵌入式操作系统硬件镜像启动优化的实现方法
TWI334536B (en) * 2006-12-28 2010-12-11 Accton Technology Corp Portable communication device with dual configuration storage and the method for the same
CN100504814C (zh) * 2007-01-17 2009-06-24 忆正存储技术(深圳)有限公司 闪存的区块管理方法
US8914653B2 (en) * 2008-09-05 2014-12-16 Hewlett-Packard Development Company, L.P. Method and system for providing hybrid-shutdown and fast startup processes
US20100070733A1 (en) * 2008-09-18 2010-03-18 Seagate Technology Llc System and method of allocating memory locations
TWI364661B (en) * 2008-09-25 2012-05-21 Silicon Motion Inc Access methods for a flash memory and memory devices

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262550A (zh) * 2010-05-31 2011-11-30 仁宝电脑工业股份有限公司 计算机系统及其开关机方法
CN101916138A (zh) * 2010-08-06 2010-12-15 北京中星微电子有限公司 中央处理器工作状态和睡眠状态切换的方法和装置
CN101969502A (zh) * 2010-10-13 2011-02-09 华为终端有限公司 一种移动终端业务恢复的方法及一种移动终端
CN102055843A (zh) * 2010-10-27 2011-05-11 中兴通讯股份有限公司 一种终端及内存数据校验的方法
WO2012055188A1 (zh) * 2010-10-27 2012-05-03 中兴通讯股份有限公司 一种终端及其内存数据校验的方法
CN101980162B (zh) * 2010-11-05 2013-01-16 福建新大陆通信科技股份有限公司 发射机掉电自动开机方法
CN101980162A (zh) * 2010-11-05 2011-02-23 福建新大陆通信科技股份有限公司 发射机掉电自动开机方法
CN102023898A (zh) * 2010-12-21 2011-04-20 中兴通讯股份有限公司 中央处理器热插拔的实现方法及装置
US8819372B2 (en) 2011-05-13 2014-08-26 Hangzhou H3C Technologies Co., Ltd. Preventing data loss during reboot and logical storage resource management device
WO2012155707A1 (en) * 2011-05-13 2012-11-22 Hangzhou H3C Technologies Co., Ltd. Preventing data loss during reboot and logical storage resource management device
CN102193847A (zh) * 2011-06-24 2011-09-21 杭州华三通信技术有限公司 重启数据不丢失方法及保留内存管理模块
CN102193847B (zh) * 2011-06-24 2013-04-10 杭州华三通信技术有限公司 重启数据不丢失方法及保留内存管理模块
CN102866934A (zh) * 2011-07-05 2013-01-09 中国科学院上海微系统与信息技术研究所 基于非易失随机存储器的嵌入式设备的休眠及唤醒系统
CN102866934B (zh) * 2011-07-05 2015-10-28 中国科学院上海微系统与信息技术研究所 基于非易失随机存储器的嵌入式设备的休眠及唤醒系统
WO2013159316A1 (zh) * 2012-04-26 2013-10-31 宝添管理有限公司 遥控方法及遥控器
CN102779072A (zh) * 2012-06-18 2012-11-14 中国科学院上海微系统与信息技术研究所 一种嵌入式系统及其应用进程的休眠与唤醒方法
CN102841674A (zh) * 2012-07-25 2012-12-26 中国科学院上海微系统与信息技术研究所 基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法
CN102841674B (zh) * 2012-07-25 2015-02-04 中国科学院上海微系统与信息技术研究所 基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法
CN104461592A (zh) * 2013-09-18 2015-03-25 联想(北京)有限公司 信息处理的方法及电子设备
CN104461592B (zh) * 2013-09-18 2018-08-10 联想(北京)有限公司 信息处理的方法及电子设备
CN104656870A (zh) * 2013-11-20 2015-05-27 联想(北京)有限公司 一种信息处理方法及电子设备
CN104808765B (zh) * 2014-01-27 2018-01-23 联想(北京)有限公司 一种信息处理方法以及电子设备
CN108052197A (zh) * 2014-01-27 2018-05-18 联想(北京)有限公司 一种信息处理方法以及电子设备
CN104808765A (zh) * 2014-01-27 2015-07-29 联想(北京)有限公司 一种信息处理方法以及电子设备
CN104850208A (zh) * 2014-02-19 2015-08-19 联想(北京)有限公司 一种信息处理方法以及电子设备
CN105739982A (zh) * 2016-01-29 2016-07-06 浪潮(北京)电子信息产业有限公司 一种系统休眠的方法及装置
CN105739982B (zh) * 2016-01-29 2019-05-10 浪潮(北京)电子信息产业有限公司 一种系统休眠的方法及装置
CN107068172B (zh) * 2016-02-11 2021-12-21 爱德斯托科技有限公司 存储器装置、控制存储器装置的方法和设备
CN107068172A (zh) * 2016-02-11 2017-08-18 爱德斯托科技有限公司 存储器装置超深度掉电模式离开控制
CN107797642A (zh) * 2016-09-07 2018-03-13 华为技术有限公司 一种备电方法及装置
WO2018045922A1 (zh) * 2016-09-07 2018-03-15 华为技术有限公司 一种备电方法及装置
CN108446009A (zh) * 2018-03-10 2018-08-24 北京联想核芯科技有限公司 掉电控制方法、装置、设备及介质
CN110609499A (zh) * 2019-09-18 2019-12-24 深圳市航顺芯片技术研发有限公司 一种adc实时性采样与非实时性采样的切换方法及设备
CN111367717A (zh) * 2020-02-20 2020-07-03 安凯(广州)微电子技术有限公司 一种电子设备的恢复方法、装置及系统
CN111506351A (zh) * 2020-04-03 2020-08-07 珠海市一微半导体有限公司 片上系统的深度休眠方法、唤醒方法和休眠与唤醒方法
WO2022057872A1 (zh) * 2020-09-21 2022-03-24 华为技术有限公司 一种数据处理方法及相关装置
CN116795196A (zh) * 2023-08-25 2023-09-22 深圳市德航智能技术有限公司 一种加固手持平板电脑超长待机的实现方法
CN116795196B (zh) * 2023-08-25 2023-11-17 深圳市德航智能技术有限公司 一种加固手持平板电脑超长待机的实现方法

Also Published As

Publication number Publication date
WO2011063584A1 (zh) 2011-06-03
US20120284551A1 (en) 2012-11-08
CN101710253B (zh) 2012-06-13

Similar Documents

Publication Publication Date Title
CN101710253B (zh) 嵌入式系统的深度休眠方法
CN101183801B (zh) 一种掉电保护方法、系统和装置
US7519808B2 (en) Method and apparatus for quickly reanimating devices from hibernation
US7900074B2 (en) Method and apparatus for quickly reanimating devices from hibernation
CN103995578B (zh) 一种具有数据持续模式的器件驱动器
US8327171B2 (en) Method and apparatus for facilitating device hibernation
US9032235B2 (en) Semiconductor storage device and method for controlling the semiconductor storage device
CN101916201B (zh) 一种基于Android移动终端冷启动的方法和装置
US9015503B2 (en) Power control methods for a portable electronic device
US9389673B2 (en) Systems and methods of performing a data save operation
US20090217026A1 (en) Method for changing power states of a computer
CN102929805A (zh) 一种存储系统缓存数据掉电保护方法
US7441085B2 (en) Memory control method for restoring data in a cache memory
CN102436419A (zh) 非易失性存储器系统及管理其电源的方法
US20130166819A1 (en) Systems and methods of loading data from a non-volatile memory to a volatile memory
CN101246389A (zh) 提供从休眠状态瞬时接通恢复的计算系统节电方法和装置
CN100349127C (zh) 嵌入式系统数据备份装置及方法
US20110197018A1 (en) Method and system for perpetual computing using non-volatile random access memory
EP2093673A1 (en) A system and method with multi-level buffer
CN102004706A (zh) 一种基于ftl的闪存擦写掉电保护方法
CN105608016B (zh) Dram与mram结合的固态硬盘及使用mram的存储卡
CN105786544A (zh) 快速启动计算机系统的方法和计算机的启动系统
CN108874574B (zh) 一种垃圾回收处理方法及相关装置
TW200523942A (en) Integrated circuit power management for reducing leakage current in circuit arrays and method therefor
CN103399520B (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
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200603

Address after: 321200 building a, Kaiyu Microelectronics Industrial Park, Wuyi science and Technology City, No.316, Wujiang Avenue, Wuyi County, Jinhua City, Zhejiang Province

Patentee after: ZHEJIANG JINHUA KAIYU ELECTRONIC TECHNOLOGY Co.,Ltd.

Address before: 510663 C1 301-303401-402, science Avenue, Science Town, Guangzhou hi tech Development Zone, Guangdong, 182

Patentee before: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
CP02 Change in the address of a patent holder

Address after: 321200 building a, inspection workshop building, Kaiyu Microelectronics Industrial Park, science and Technology City, Wuyi County, Jinhua City, Zhejiang Province (self declaration)

Patentee after: ZHEJIANG JINHUA KAIYU ELECTRONIC TECHNOLOGY Co.,Ltd.

Address before: 321200 building a, Kaiyu Microelectronics Industrial Park, Wuyi science and Technology City, 316 Wujiang Avenue, Wuyi County, Jinhua City, Zhejiang Province

Patentee before: ZHEJIANG JINHUA KAIYU ELECTRONIC TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder