计算系统的快速平台休眠与恢复

申请号 CN201180075207.X 申请日 2011-10-01 公开(公告)号 CN103959234B 公开(公告)日 2017-11-07
申请人 英特尔公司; 发明人 B·库珀; F·A·西迪基;
摘要 用于计算系统的快速平台休眠与恢复。装置的 实施例 包括易失性系统 存储器 、 非易失性存储器 以及根据 操作系统 而操作的处理器,处理器在接收到 请求 时将装置转变成第一功率降低状态,转变成第一功率降低状态包括处理器将计算机的上下文信息存储在易失性系统存储器中。所述装置还包括:使装置转变成第二功率降低状态的逻辑,所述逻辑将上下文数据从易失性系统存储器复制到非易失性存储器以便转变成第二功率降低状态,其中上下文数据的复制包括用于如下的逻辑:扫描易失性系统存储器以将不活动存储器元件 定位 在易失性系统存储器中;从易失性系统存储器中消除不活动存储器元件以生成压缩的上下文数据;以及将压缩的上下文数据存储在所述非易失性存储器中。
权利要求

1.一种装置,包括:
易失性系统存储器
非易失性存储器
根据操作系统而操作的处理器,所述处理器用于在接收到请求时将所述装置从操作功率状态转变成第一功率降低状态,所述转变成所述第一功率降低状态包括所述处理器用于将所述装置的上下文数据存储到所述易失性系统存储器中;以及
使所述装置从所述第一功率降低状态转变成第二功率降低状态的功率管理逻辑,为转变成所述第二功率降低状态,所述功率管理逻辑用于将所述上下文数据从所述易失性系统存储器复制到所述非易失性存储器中,其中所述上下文数据的复制包括所述功率管理逻辑执行以下操作:
扫描所述易失性系统存储器以定位所述易失性系统存储器中的不活动存储器元件,构建零页过滤器以指示所述易失性系统存储器中所述不活动存储器元件的位置,基于所述零页过滤器从所述易失性系统存储器中消除所述不活动存储器元件以生成压缩的上下文数据,
将所述压缩的上下文数据和所述零页过滤器存储到所述非易失性存储器中,以及在完成了所述压缩的上下文数据和所述零页过滤器的存储时,将所述装置置于所述第二功率降低状态。
2.如权利要求1所述的装置,其中,所述功率管理逻辑还用于当在所述装置处于所述第二功率降低状态中时发生所述装置的唤醒事件时,将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器。
3.如权利要求2所述的装置,还包括硬件刷洗元件,在所述功率管理逻辑将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器之前,所述硬件刷洗元件将零存储在所述易失性系统存储器的数据元中。
4.如权利要求1所述的装置,其中将所述上下文数据从所述易失性系统存储器复制到所述非易失性存储器中发生在所述处理器掉电之后。
5.如权利要求2所述的装置,其中恢复所述上下文数据包括:所述功率管理逻辑从所述非易失性存储器获得所述零页过滤器并且根据所述零页过滤器将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器。
6.如权利要求2所述的装置,其中所述功率管理逻辑在将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器之前,将零存储在所述易失性系统存储器的数据元中。
7.如权利要求1所述的装置,其中,所述第一功率降低状态是睡眠状态,并且所述第二功率降低状态是休眠状态,所述装置在所述第二功率降低状态下比在所述第一功率降低状态下消耗更少的功率。
8.如权利要求7所述的装置,其中所述功率管理逻辑将所述装置从所述第一功率降低状态转变成所述第二功率降低状态包括:所述功率管理逻辑将特定应用的数据存储在所述非易失性存储器内的位置中,并且其中所述功率管理逻辑进一步在将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器之前使得所述应用的数据可供使用。
9.一种方法,包括:
在接收到请求时将计算系统从操作功率状态转变成第一功率降低状态,所述第一功率降低状态包括将用于所述计算系统的上下文信息存储在易失性系统存储器中;以及将所述计算系统从所述第一功率降低状态转变成第二功率降低状态,包括在转变成所述第二功率降低状态时将所述上下文数据从所述易失性系统存储器复制到非易失性存储器,其中所述上下文数据的复制包括:
扫描所述易失性系统存储器以定位所述易失性系统存储器中的不活动存储器元件,构建零页过滤器以指示所述易失性系统存储器中所述不活动存储器元件的位置,基于所述零页过滤器从所述易失性系统存储器中消除所述不活动存储器元件以生成压缩的上下文数据,
将所述压缩的上下文数据和所述零页过滤器存储到所述非易失性存储器中,以及在完成了所述压缩的上下文数据和所述零页过滤器的存储时,将所述计算系统置于所述第二功率降低状态。
10.如权利要求9所述的方法,还包括:
在所述计算系统处于所述第二功率降低状态中时,检测所述计算系统的唤醒事件;以及
将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器。
11.如权利要求10所述的方法,还包括:在将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器之前,将零存储在所述易失性系统存储器的数据元中。
12.如权利要求10所述的方法,还包括:在将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器之前,通过使用硬件刷洗元件来刷洗所述易失性系统存储器,将零存储在所述易失性系统存储器的数据元中。
13.如权利要求9所述的方法,其中将所述上下文数据从所述易失性系统存储器复制到所述非易失性存储器发生在所述计算系统的处理器掉电之后。
14.如权利要求10所述的方法,其中将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器包括:
从所述非易失性存储器获得所述零页过滤器;以及
根据所述零页过滤器将所述上下文数据恢复到所述易失性系统存储器中。
15.如权利要求9所述的方法,其中转变成所述第二功率降低状态包括将特定应用的数据存储在所述非易失性存储器内的位置中,并且所述方法还包括在将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器之前使得所述应用的所述数据可供使用。
16.一种系统,包括:
DRAM(动态随机存取存储器);
非易失性存储器;
根据操作系统而操作的处理器,所述处理器用于在接收到请求时将所述系统从操作功率状态转变成第一功率降低状态,所述第一功率降低状态包括将所述系统的上下文信息存储在DRAM中;
将所述系统在所述第一功率降低状态和第二功率降低状态之间转变的功率管理逻辑,在从所述第一功率降低状态转变成所述第二功率降低状态时,所述功率管理逻辑用于将所述上下文信息从所述DRAM复制到所述非易失性存储器中,并且在从所述第二功率降低状态转变成所述第一功率降低状态时,将所述上下文信息从所述非易失性存储器恢复到所述DRAM中;以及
硬件存储器刷洗器,在将所述上下文信息从所述非易失性存储器恢复到所述DRAM之前,所述硬件存储器刷洗器用于将零存储在所述DRAM的数据元中,
其中所述功率管理逻辑将所述上下文信息从所述DRAM复制到所述非易失性存储器包括所述功率管理逻辑执行以下操作:
扫描所述DRAM以定位所述DRAM中的不活动存储器元件,并且构建零页过滤器来指示所述DRAM中所述不活动存储器元件的位置;
基于所述零页过滤器从所述DRAM中消除所述不活动存储器元件以生成压缩的上下文信息;
将所述压缩的上下文信息和所述零页过滤器存储在所述非易失性存储器中;以及在完成了所述压缩的上下文信息和所述零页过滤器的存储时,将所述系统置于所述第二功率降低状态。
17.如权利要求16所述的系统,其中将所述上下文信息从所述DRAM复制到所述非易失性存储器发生在所述处理器掉电之后。
18.如权利要求16所述的系统,其中所述功率管理逻辑恢复所述上下文信息包括:所述功率管理逻辑从所述非易失性存储器获得所述零页过滤器,并且根据所述零页过滤器将所述上下文信息从所述非易失性存储器恢复到所述DRAM。
19.一种装置,包括:
用于在接收到请求时将计算系统从操作功率状态转变成第一功率降低状态的模,所述第一功率降低状态包括将用于所述计算系统的上下文信息存储到易失性系统存储器中;
用于将所述计算系统从所述第一功率降低状态转变成第二功率降低状态的模块,包括在转变成所述第二功率降低状态时将所述上下文数据从所述易失性系统存储器复制到非易失性存储器中,其中所述上下文数据的复制包括:
扫描所述易失性系统存储器以定位所述易失性系统存储器中的不活动存储器元件,构建零页过滤器以指示所述易失性系统存储器中所述不活动存储器元件的位置,基于所述零页过滤器从所述易失性系统存储器中消除所述不活动存储器元件以生成压缩的上下文数据,
将所述压缩的上下文数据和所述零页过滤器存储在所述非易失性存储器中,以及在完成了所述压缩的上下文数据和所述零页过滤器的存储时,将所述计算系统置于所述第二功率降低状态。
20.如权利要求19所述的装置,还包括:
用于在所述计算系统处于所述第二功率降低状态中时,检测所述计算系统的唤醒事件的模块;以及
用于将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器的模块。
21.如权利要求20所述的装置,还包括:
用于在将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器之前,将零存储在所述易失性系统存储器的数据元中的模块。
22.如权利要求20所述的装置,还包括:
用于在将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器之前,通过使用硬件刷洗元件来刷洗所述易失性系统存储器,将零存储在所述易失性系统存储器的数据元中的模块。
23.如权利要求19所述的装置,其中将所述上下文数据从所述易失性系统存储器复制到所述非易失性存储器中发生在所述计算系统的处理器掉电之后。
24.如权利要求20所述的装置,其中恢复所述上下文数据包括:
从所述非易失性存储器中获得所述零页过滤器;以及
根据所述零页过滤器将所述上下文数据恢复到所述易失性系统存储器中。
25.如权利要求19所述的装置,其中转变成所述第二功率降低状态包括将特定应用的数据存储在所述非易失性存储器内的位置中,并且所述装置还包括用于在将所述上下文数据从所述非易失性存储器恢复到所述易失性系统存储器之前,使得所述应用的所述数据可供使用的模块。
26.一种计算机可读介质,其上存储有指令,所述指令在被处理器执行时,使得所述处理器执行根据权利要求9-15中的任意一项所述的方法。

说明书全文

计算系统的快速平台休眠与恢复

技术领域

[0001] 本发明实施例一般涉及计算系统领域,尤其涉及计算系统的快速休眠与恢复。

背景技术

[0002] 计算系统可以在各种功率状态之间变换。一般地,每种功率状态提供了计算系统的一些元件在不活动期间内的掉电。更低状态一般提供进一步的功率节约,但是需要额外的时间来返回操作。
[0003] 例如,功率状态可以包括称为S状态的状态,S状态包括S3和S4。S3有时称为待命、睡眠或挂起到RAM,其是这样一种睡眠状态:计算系统的操作系统(OS)将系统的上下文保存到物理存储器(动态随机存取存储器(DRAM))中并且将计算系统置于挂起状态。在该操作中,在进入S3时所使用的开放式文档和程序(应用)(或其中一部分)在挂起状态期间也保存在DRAM中。此外,一些芯片组寄存器的内容也可以写入DRAM中。物理存储器DRAM可称为主存储器或系统存储器。在S3状态期间,除了DRAM和用于稍后唤醒系统的少量电路之外,从平台硬件中除去电。S3功率状态由于其能在高速DRAM存储器中保存以及从其恢复OS上下文和之前使用的程序和文档,而提供了相对快速的挂起和恢复(唤醒)时间。
[0004] S4有时称为休眠、安全睡眠或挂起到磁盘,其提供了将OS上下文和开放式文档和程序(或其中一部分)保存到硬盘驱动器(HDD)上而不是快速DRAM存储器中。这允许进行比S3状态更高的功率节约,因为DRAM未保持加电。然而,由于HDD的慢的读写存取时间,因而存在更高的延迟。典型的S4休眠和恢复时间为几十秒的数量级。
[0005] 在例如“System and Method for Fast Platform Hibernate and Resume”的美国专利7,971,071中描述了计算机平台休眠与恢复。附图说明
[0006] 在附图的各图中,通过举例的方式而不是通过限制的方式图示出了本发明的实施例,在附图中相似的附图标记指代相似的元件。
[0007] 图1示出了计算机平台进入快速休眠状态和退出快速休眠状态的过程的实施例;
[0008] 图2是通过用于快速平台休眠与恢复的装置、系统或过程的实施例进行的数据变换的图示说明;
[0009] 图3是在快速平台休眠与恢复装置、系统或方法中的存储器刷洗(scrub)操作的实施例的图示说明;
[0010] 图4是在快速平台休眠装置、系统或方法中的存储器处理的实施例的图示说明;
[0011] 图5是计算系统从快速平台休眠过程恢复的实施例的图示说明;
[0012] 图6是示出用于计算系统的快速平台休眠的过程的实施例的流程图
[0013] 图7是示出用于置于休眠状态的计算系统的快速平台恢复的过程的实施例的流程图;以及
[0014] 图8示出了提供快速平台休眠与恢复的计算系统的实施例。

具体实施方式

[0015] 本发明的实施例一般涉及用于计算系统的快速平台休眠与恢复。
[0016] 在一些实施例中,装置、系统或方法(诸如计算装置、系统或方法)提供了用于快速平台休眠与恢复的增强过程。在一些实施例中,装置、系统或过程包括通过高效处置上下文数据(包括在休眠中消除零页数据)来改善平台休眠的机制。在一些实施例中,装置、系统或过程通过存储器归零而在上下文数据重新加载时返回零页来进一步改善平台恢复。在一些实施例中,存储器归零包括使用硬件元件来提供存储器中改善的零初始化。
[0017] 在一些实施例中,装置、系统或方法可以包括:检测并计算OS活动DRAM存储器物理页;构建过滤器(称为零页过滤器)/位图来标识不活动(零)DRAM页或其他存储器元件;经由硬件或软件机制将DRAM初始化为零;利用零页过滤器/位图进行直接存储器存取流的高效处理;以及应用运行时OS机制来冲洗(flush)OS脏DRAM页。
[0018] 常规的计算系统面临着待保存的存储器量以及因此上下文数据量增加的额外问题。这些系统没有解决对于大的DRAM存储器尺寸而导致的性能牵连。在一些实施例中,装置、系统或方法提供了对需要保存到非易失性存储器和从非易失性存储器恢复的DRAM页的尺寸进行修整的智能机制,从而显著改善了休眠/停机与恢复过程的性能。
[0019] 在一些实施例中,装置、系统或方法包括两个部分:将系统存储器数据透明地、高效地存储到永久存储介质上的第一机制或过程;以及从存储介质高效地恢复系统存储器数据以及将其重新放回到系统存储器中的第二机制或过程。
[0020] 在一些实施例中,装置、系统或过程提供了快速平台休眠与恢复装置或过程,包括将上下文信息从易失性系统存储器复制到非易失性存储器(其可称为NVRAM,或非易失性随机存取存储器),作为转变成较低功率状态的部分。在一些实施例中,装置或过程包括:在从休眠状态转变回到操作状态时,将所存储的上下文信息复制回到易失性系统存储器中。在一些实施例中,装置、系统或过程提供了确定存储器的未使用且包含了零信息的各部分的位置。在一些实施例中,设备或系统提供了在复制上下文信息时消除存储器的全部零元素。
[0021] 在一些实施例中,装置、系统或过程包括存储器刷洗器,其中存储器刷洗器操作以将DRAM存储器的元件清除或归零。在一些实施例中,存储器刷洗器允许比软件所能提供的归零功能更快速地对存储器的元件进行归零。在一些实施例中,在从休眠状态恢复系统操作或系统时使用存储器刷洗器,以在从非易失性存储器中恢复平台上下文之前将初始化的易失性存储器的全部元件归零。在一些实施例中,通过减少需要存储和恢复的数据量,通过消除零数据元,以及通过在恢复时对易失性存储器归零而允许更快地将零数据元重新加载到易失性存储器中,装置、系统或方法允许改善快速平台休眠与恢复操作。
[0022] 在一些实施例中,设备或系统进一步包括在休眠状态下快速存取的存储器区段。在一些实施例中,存储器区段可以包括例如日历或当系统或设备处于低功率状态时需要快速存取的数据。
[0023] 在一些实施例中,通过功率管理逻辑或BIOS来初始化存储过程。在一些实施例中,存储过程可独立地初始化或在操作系统请求时初始化。在一些实施例中,平台的休眠过程包括:
[0024] (a)通过保存易失性系统DRAM的当前状态,操作系统将向第一功率降低状态的转变初始化,诸如睡眠(S3)转变。
[0025] (b)在一些实施例中,作为快速休眠系统的一部分,诸如快速休眠服务或驱动器的操作系统代理可任选地将OS存储器的部分冲洗(flush)成盘,从而使得OS DRAM活动存储器印迹尽可能得小。
[0026] (c)硬件处理器,诸如中央处理单元(CPU)或嵌入式处理器(EP),或者系统软件,诸如二进制输入输出系统(BIOS)或固件(FW),直接地或者经由诸如设备直接存储器存取(DMA)的间接手段将OS DRAM存储器内容复制到非易失性存储单元。
[0027] (d)在一些实施例中,在接收到OS低功率输入请求(诸如备用-S3/S0ix)时,用户级应用或驱动器操作以将脏的且部分活动的存储器页冲洗成盘,同时将所释放的DRAM存储器页转换成零。在一些实施例中,该操作提供了使得DRAM活动(非零)存储器页的整体尺寸减小,同时使得零页池的尺寸增大。
[0028] (e)操作系统可以指示转变成诸如休眠状态的第二功率降低状态的意图,其中处于第二功率降低状态的计算系统比处于第一功率降低状态的计算系统消耗更少的电力。例如,操作系统可以操作以将一些位(SLP_TYP位和SLP_EN位)设置在芯片组中,从而指示芯片组硬件要转变成休眠状态的意愿。
[0029] (f)在一些实施例中,操作系统可以使用由系统硬件提供的机制来进入第一功率降低状态,诸如备用S3/S0ix状态。
[0030] (g)在接收到睡眠事件时,系统硬件可以将控制传递给功率管理逻辑、BIOS或固件,功率管理逻辑、BIOS或固件随后扫描系统存储器中的活动和不活动存储器,并且构建不活动(零)页或其他存储器元件的零页过滤器(诸如位图)。
[0031] (h)在一些实施例中,功率管理逻辑、BIOS或固件随后利用零页过滤器以从DMA流中丢弃未使用的DRAM存储器页,同时将活动(非零)页复制到非易失性存储器中。
[0032] (i)在一些实施例中,零页过滤器随后存储在非易失性存储器中以便用于恢复操作。
[0033] (j)在一些实施例中,功率管理逻辑、BIOS或固件将系统置于S4/S5睡眠状态。在一些实施例中,功率管理逻辑或BIOS能够任选地将系统置于完全机械关断(G3)状态。
[0034] 在接收到诸如电源按钮信号实时时钟(RTC)警示或其他唤醒事件的唤醒事件时,功率管理逻辑或BIOS将初始化恢复过程。在一些实施例中,平台的恢复过程包括:
[0035] (a)在唤醒事件发生时,功率管理逻辑、BIOS或固件先于系统的其他元件加电,并且操作以初始化DRAM,并且开始用零对整个DRAM进行刷洗。在已经用零刷洗了整个DRAM存储器时,功率管理逻辑、BIOS或固件开始利用先前存储的零页过滤器从NVRAM中恢复活动(非零)DRAM页。
[0036] (b)功率管理逻辑、BIOS或固件继续以根据正常程序来执行系统恢复(诸如S3恢复)。
[0037] 在一些实施例中,装置、系统或方法提供了快速平台休眠,其中系统上下文被写入非易失性存储器(较小的非易失性存储器或NVRAM),其具有比用于存储至少一个操作系统、程序和数据的另一非易失性存储器(较大的非易失性存储器或硬盘驱动)小的容量。在从快速休眠恢复时,系统上下文从较小的非易失性存储器中读出并且用于恢复计算机系统的操作。在一些实施例中,系统上下文整体地从DRAM系统存储器转移到较小的非易失性存储器,并且在恢复时整体地从较小的非易失性存储器转移到DRAM系统存储器。在其他实施例中,系统上下文能够部分地来自于诸如芯片组寄存器的其他存储器,并且被直接写回到那些寄存器,而不是间接地经过DRAM。
[0038] 在一些实施例中,在快速休眠过程中,从DRAM系统存储器转移到较小的非易失性存储器甚至发生在处理器核心以及诸如硬盘驱动和显示屏的其他系统部件掉电之后。这使得计算机的用户有一种计算机系统快速停机的感觉,即使系统上下文的转移尚未完成。因此,实施例改善了系统响应性的用户感觉。在一些实施例中,通过从存储中消除零页而减小存储器存储来进一步改善系统响应性,使得存储器更快速地停机。
[0039] 在一些实施例中,快速休眠过程使用了被设计为用于S3(第一功率降低状态)和S4(第二功率降低状态)状态、但是不被特别地设计为用于快速休眠过程的操作系统。这可通过如下过程而发生:通过将处理器置于系统管理模式(SMM)而使BIOS和/或另一机制响应于RAM(S3)命令的挂起,以及控制从DRAM系统存储器到较小的非易失性存储器的转移,然后将睡眠类型改变成休眠状态。在这些实施例中,该过程对于操作系统而言是透明的。
[0040] 图1示出了计算机平台进入快速休眠状态和退出快速休眠状态的过程的实施例。在该图示说明中,快速休眠状态进入110开始于操作系统从可操作(S0)115状态转变成睡眠(S3)状态,包括将上下文数据存储到易失性DRAM存储器120中。在一些实施例中,快速休眠过程包括零数据页的标识。快速休眠过程还包括复制来自DRAM的上下文信息的非零数据页,非零数据和零页过滤器存储在NVRAM125中。存储到非易失性存储器中使得平台转变成休眠(S4)状态或者任选地转变到零功率状态130。
[0041] 在一些实施例中,快速休眠退出过程160开始于S4或零功率状态165。在一些实施例中,在诸如功率管理逻辑或BIOS的逻辑唤醒时,用零值刷洗DRAM175,并且利用所存储的零页过滤器将非零页从NVRAM170恢复到DRAM175中。随后,上下文到DRAM175中的加载利用睡眠状态(S3)过程将数据放置到用于恢复上下文的恰当位置,从而使操作系统180返回到可操作(S0)状态。
[0042] 图2是通过用于快速平台休眠和恢复的装置、系统或过程的实施例对数据进行变换的图示说明。在一些实施例中,在快速休眠过程中,可针对零页扫描表示存储到DRAM中以便转变成睡眠状态的系统上下文的非过滤FFS(闪速文件系统)DMA表220。零页过滤器250中的扫描结果表示活动/非零页和不活动/零页的位置。在一些实施例中,随后丢弃零页255。在一些实施例中,快速休眠过程随后得到经过滤的FFS DMA表270,其中经过滤的表包括非零页和空输入项。
[0043] 图3是在快速平台休眠与恢复装置、系统或方法中的存储器刷洗操作的实施例的图示说明。在一些实施例中,从快速休眠中退出包括:在从非易失性存储器重新加载数据之前对DRAM进行初始化。然而,DRAM存储器320将包含随机的一值和零值,因为在返回加电时存储器元件的状态通常是不稳定的。从非易失性存储器恢复数据将仅恢复非零元素的值,并且因此如果不采取措施则零元素将包含随机数据。
[0044] 在一些实施例中,在数据从非易失性存储器恢复到DRAM中之前,通过硬件刷洗元件350来刷洗DRAM,其中硬件元件350能够比用软件命令实现该过程明显更快地将零存储在计算机DRAM的每位中。在一些实施例中,结果是经刷洗的存储器370在每位包含零元素。在一些实施例中,经刷洗的存储器370随后可用于保持从非易失性存储器恢复的系统上下文,其中可根据诸如图2中的零过滤器页250的零过滤器页来进入非零页,从而使DRAM返回到操作系统转变回到可操作(S0)状态的状态。
[0045] 图4是在快速平台休眠装置、系统或方法中的存储器处理的实施例的图示说明。在一些实施例中,在FFS DMA处理400中,未经过滤的DMA表输入项405由零页过滤器410处理以标识表输入项中的零页。在一些实施例中,处理得到了包含非零页和空输入项的经过滤的DMA表输入项415(诸如图2中所示的表输入项270)的表。
[0046] 在一些实施例中,经过滤的表输入项被压缩,通过表压缩器420的过程所示,得到了经压缩的DMA输入项425,这通常比原表输入项显著缩减。在一些实施例中,经压缩的DMA输入项425由硬件DMA引擎430处理以存储在非易失性存储器中,如存储在固态驱动器(SSD)435中所示的。
[0047] 图5是计算系统从快速平台休眠过程恢复的实施例的图示说明。在一些实施例中,装置、系统或方法提供了从快速休眠的恢复,其中恢复可描述为两阶段过程。在一些实施例中,第一阶段510提供了DRAM准备加载上下文数据。
[0048] 在一些实施例中,在计算平台接收到加电事件时,功率管理逻辑或BIOS加电操作以将初始化DRAM存储器515。然而,在初始化时,DRAM存储器的位通常是随机的。为了提供上下文数据的加载,对存储器进行刷洗以在存储器每位上提供零。在一些实施例中,DRAM515由硬件刷洗器520刷洗,其中硬件刷洗器能够快速将DRAM归零以生成在存储器的数据位上包含零的经刷洗的存储器525。
[0049] 在一些实施例中,第二阶段560涉及获得存储在SSD存储器575中的上下文数据,其中在快速休眠过程中通过FFS DMA表处理器565来存储经压缩的DMA输入项570(非零页)以及零页过滤器(诸如图2中所示的元素250)。在一些实施例中,DMA引擎580操作以从SSD获得数据,这进一步涉及从SSD获得零页过滤器。在一些实施例中,DMA引擎580操作以根据零页过滤器将压缩数据存储在经刷洗的DRAM585中,从而导致将DRAM置于由操作系统转变成可操作功率状态的状态。
[0050] 图6是示出了用于计算系统的快速平台休眠的过程的实施例的流程图。在该图示说明中,计算系统可以启动600,从而将计算系统置于可操作(S0)功率状态。计算机系统可以继续各种计算系统操作605。在检测到要求计算系统被置于在此处称为睡眠状态的第一功率降低状态(其可以是S3状态或其他类似状态)的事件时,操作系统采取进入睡眠状态所需的这样的措施,包括将当前上下文数据616存储到DRAM系统存储器660中。
[0051] 在一些实施例中,控制被传递到诸如BIOS、功率管理逻辑或固件的逻辑(在图6中图示了BIOS的情况)。在一些实施例中,BIOS操作以扫描DRAM系统存储器的活动页和不活动页,并且生成不活动页的零页过滤器620。在一些实施例中,BIOS使用零页过滤器来消除不活动DRAM存储器页,并且因此压缩上下文数据625。
[0052] 在一些实施例中,BIOS操作以将压缩的上下文数据和零页过滤器630存储在非易失性存储器(NVRAM)中670。在一些实施例中,NVRAM中的存储可以包括可在计算系统启动时被快速访问的一些数据,例如日历或调度数据。在一些实施例中,BIOS随后关断到DRAM的电力,并且继续将系统转变成此处称为休眠状态的第二功率降低状态(其可以是S4状态,或其他类似状态)635,使计算系统处于休眠状态640。
[0053] 图7是示出处于休眠状态的计算系统的快速平台恢复过程的实施例的流程图。在该图示说明中,计算系统起初可以处于第二功率降低状态(休眠状态)700。在检测到某唤醒事件(诸如电源按钮信号、实时时钟警示、或其他唤醒事件)时705,诸如功率管理逻辑、BIOS或固件的逻辑(其中在图7中提供了BIOS的示例)先于系统的其他元件加电710。在一些实施例中,系统可任选地为一些应用提供对数据图像的访问715以允许用户快速访问该数据。
[0054] 在一些实施例中,BIOS操作以启动系统的DRAM(易失性)系统存储器720,这通常将使得大量随机数据包含在DRAM中。在一些实施例中,BIOS操作以刷洗DRAM存储器760或将其归零,其中操作利用提供存储器的快速归零的硬件刷洗器725。
[0055] 在一些实施例中,BIOS从NVRAM770获得所存储的压缩的上下文数据和零页过滤器730。然后,BIOS根据零页过滤器继续将上下文数据从NVRAM770存储到DRAM系统存储器780中,从而在休眠过程中消除零页数据之前重新创建数据,并且将数据置于用于第一功率降低状态(睡眠状态)的形式。
[0056] 在一些实施例中,操作系统随后可以继续利用存储在DRAM系统存储器中的重新创建的上下文数据来恢复可操作状态740,从而使得计算系统从睡眠状态转变成可操作状态750。
[0057] 图8示出了提供快速平台休眠与恢复的计算系统的实施例。在该图示说明中,未示出与本说明书无密切关系的一些标准和公知部件。在一些实施例中,计算系统800包括用于数据传输的互连或交叉开关(crossbar)805或其他通信器件。计算系统800可以包括处理器件,诸如与互连805耦合以处理信息的一个或多个处理器810。处理器810可以包括一个或多个物理处理器以及一个或多个逻辑处理器。互连805为简化的目的而图示为单个互连,但是可以代表多个不同的互连或总线,并且到这些互连的部件连接可以不同。图8中所示的互连805是代表任意一个或多个单独的物理总线、点对点连接、或通过适当的桥、适配器或控制器连接的两者的抽象。
[0058] 在一些实施例中,计算系统800包括硬件存储器刷洗器812,其可用于存储器的刷洗以在系统被置于休眠状态之后操作恢复时在该存储器启动之后用零替换数据。在一些实施例中,计算系统800还包括随机存取存储器(RAM)或其他动态存储设备或元件,作为用于存储信息和待由处理器810执行的指令的主存储器814。RAM存储器包括动态随机存取存储器(DRAM),其要求刷新存储器内容,并且包括静态随机存取存储器(SRAM),其不要求刷新内容,但是成本增加。DRAM存储器可以包括同步动态随机存取存储器(SDRAM),其包括时钟信号控制信号,以及扩展数据输出动态随机存取存储器(EDO DRAM)。在一些实施例中,存储器刷洗器812可以访问主存储器814,从而允许在计算系统800的操作恢复时在数据转移到主存储器之前对主存储器814进行刷洗。在一些实施例中,系统的存储器可以包括一些寄存器或其他专用存储器。计算系统800还可包括只读存储器(ROM)816或其他静态存储设备,用于存储用于处理器810的静态信息和指令。计算系统800可以包括用于存储一些元素的一个或多个非易失性存储器元件818。在一些实施例中,非易失性存储器元件818包括用于在快速休眠过程中存储上下文数据的非易失性存储器。
[0059] 计算系统800还可以经由互连805与输出显示器840耦合。在一些实施例中,显示器840可以包括液晶显示器(LCD)或任何其他显示技术,用于向用户显示信息或内容。在一些环境中,显示器840可以包括还用作输入设备的至少一部分的触摸屏。在一些环境中,显示器840可以是或者可以包括音频设备,诸如用于提供音频信息的扬声器。计算机系统800可以进一步包括一个或多个输入设备842,诸如键盘鼠标或其他定点设备、用于音频指令的麦克以及其他输入设备。
[0060] 一个或多个发送器或接收器845还可以与互连805耦合。在一些实施例中,计算系统800可以包括用于数据的接收或发送的一个或多个端口850。计算系统800还可以包括用于经由无线电信号接收数据的一个或多个天线855。
[0061] 计算系统800还可以包括功率设备或系统860,其可以包括电源、电池太阳能电池、燃料电池、或用于提供或产生电力的其他系统或设备。由功率设备或系统860提供的电力可根据需要分布到计算系统800的元件。在一些实施例中,功率系统860可以包括功率管理逻辑或者可以与功率管理逻辑协同工作,其中这种功率管理逻辑可提供与快速平台休眠与恢复连接的功能或过程。
[0062] 在上面的说明中,为了解释说明的目的,阐述了多方面的具体细节从而提供对本发明的全面理解。然而,本领域计算人员显而易见的是,本发明可在不具有这些具体细节中的一些细节的情况下实施。在其他情况下,以框图形式示出了公知的结构和设备。在图示的部件之间可存在中间结构。本文所描述或图示的部件可以具有未图示或描述的额外的输入或输出。
[0063] 各个实施例可以包括各种过程。这些过程可通过硬件部件来实现或者可以具体体现在计算机程序或机器可执行指令中,其可用于使通用或专用处理器或通过指令编程的逻辑电路执行这些过程。可替代地,这些过程可通过硬件和软件的组合来实现。
[0064] 各个实施例的部分可提供为计算机程序产品,其可以包括在其上面存储有计算机程序指令的计算机可读介质,其可用于对计算机(或其他电子设备)编程以便由一个或多个处理器执行从而实现根据一些实施例的过程。计算机可读介质可以包括但不限于软盘、光盘、压缩盘只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或适合于存储电子指令的其他类型的计算机可读介质。而且,实施例还可以作为计算机程序产品下载,其中程序可从远程计算机转移到请求计算机。
[0065] 许多方法以其最基本形式进行了描述,但是这些过程能够添加到任意方法或者从任意方法删除,并且信息能够添加到任意所述消息或者从任意所述消息中减去,而不偏离本发明的基本范围。对本领域技术人员显而易见的是,能够进行多方面进一步的修改和改进。提供特定的实施例不是为了限制本发明而是对本发明进行说明。本发明的实施例的范围不是由上文提供的具体实施例而是仅由下面的权利要求书确定。
[0066] 如果所言是元件“A”耦合到元件“B”或者与元件“B”耦合,则元件A可以直接与元件B耦合或者可以通过例如元件C间接地耦合。当说明书或权利要求书陈述部件、特征、结构、过程或特性A“造成”部件、特征、结构、过程或特性B时,这意味着“A”是“B”的至少一部分原因,但是还可以存在辅助造成“B”的至少一个其他的部件、特征、结构、过程或特性。如果说明书表明部件、特征、结构、过程或特性“可以”、“可能”或“可”被包括,则不要求包括该特定的部件、特征、结构、过程或特性。如果说明书或权利要求书提到“一(a)”或“一(an)”元件,则这不意味着仅存在一个所述的元件。
[0067] 实施例是本发明的实现方式或示例。说明书中提到“实施例”、“一个实施例”、“一些实施例”或“其他实施例”表示:结合实施例所描述的特定的特征、结构或特性包括在至少一些实施例中,但是不必是所有的实施例。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定都指代相同的实施例。应当理解的是,在本发明的示例性实施例的前面的说明中,为了使公开内容的描述流畅且帮助理解各个发明方案中的一个或多个的目的,各种特征有时在单个实施例、图或其说明书中组合在一起。但是,公开的该方法不应解释为反映权利要求的发明需要比在各权利要求书中明确记述的特征更多的特征的意图。而是,如下面的权利要求书所反映的,发明方案少于前面公开的单个实施例的全部特征。因此,权利要求书特此明确地并入该说明书中,各权利要求书独立地作为本发明的单个实施例。
QQ群二维码
意见反馈