CN104106057B - 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 - Google Patents
用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 Download PDFInfo
- Publication number
- CN104106057B CN104106057B CN201180075454.XA CN201180075454A CN104106057B CN 104106057 B CN104106057 B CN 104106057B CN 201180075454 A CN201180075454 A CN 201180075454A CN 104106057 B CN104106057 B CN 104106057B
- Authority
- CN
- China
- Prior art keywords
- nvram
- processor
- powered
- state
- dram
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
一种非易失性随机存取存储器(NVRAM)在计算机系统中用于提供对休眠状态转变的即时响应。计算机系统包含耦合到NVRAM的处理器,NVRAM由处理器可存取,无需通过I/O子系统。NVRAM是由处理器字节可重写的并且字节可擦除的。响应于对进入带电休眠状态的请求,计算机系统将带电休眠状态转换成断电休眠状态,其中系统存储器上下文存储在NVRAM中。带电休眠状态被定义为向计算机系统中的易失性随机存取存储器提供电力的状态,而断电休眠状态被定义为从易失性随机存取存储器移除电力的状态。响应于唤醒事件,计算机系统使用存储在NVRAM中的系统存储器上下文重新开始工作状态操作。
Description
技术领域
一般而言,本发明的实施例涉及计算机系统领域。更具体地说,本发明实施例涉及使用非易失性随机存取存储器改进休眠状态转变的响应。
背景技术
A.当前存储器和存储装置配置
现今计算机创新的限制因素之一是存储器和存储装置技术。在常规计算机系统中,系统存储器(也称为主存储器、主要存储器、可执行存储器)通常由动态随机存取存储器(DRAM)实现。基于DRAM的存储器甚至当没有存储器读或者写发生时也耗电,这是因为它不断给内部电容器再充电。基于DRAM的存储器是易失性的,这意味着,一旦电力被移除,存储在DRAM存储器中的数据就丢失。
对于许多计算机系统,特别是移动平台,在成本和性能方面,用电效能是关键问题。一般而言,除了持久的电池寿命,用户对现代平台相对于对“开”转变、应用启动等用户感受到的立即响应具有更高的期望。为了实现即时响应,这些平台在快速易失性DRAM中保持应用状态活动,同时甚至当系统不使用时也维持DRAM上的电力。DRAM电力是电池寿命上的大大耗用。从而,许多常规平台不得不降低存储器容量以便延长其电池寿命。
B.相变存储器(PCM)以及相关技术
相变存储器(PCM)(有时也称为相变随机存取存储器(PRAM或PCRAM)、PCME、奥式统一存储器或硫属化物(chalcogenide)RAM(C-RAM))是采用硫属化物玻璃的独特行为的非易失性计算机存储器类型。作为由电流经过产生的热量的结果,硫属化物玻璃可在两种状态——晶体与非晶体之间切换。PCM的当前版本可获得两种截然不同的附加状态,有效地使存储器存储容量加倍。
PCM提供比闪存更高的性能,这是因为PCM的存储器元件可更快地开关,可进行写(将各个位改变成1或0)而无需首先擦除单元的整个块,并且来自写的降级更慢(PCM装置可存活近似1亿个写循环;PCM降级是由于编程期间的热膨胀、金属(和其它材料)迁移以及其它机制引起的)。
附图说明
以下说明书和附图用于阐明本发明的实施例。在附图中:
图1阐明了根据本发明实施例的高速缓存和系统存储器布置。
图2阐明了在其上可实现本发明实施例的计算机系统。
图3阐明了在其上可实现本发明实施例的备选计算机系统。
图4A是阐明根据本发明实施例转变到休眠状态的方法的流程图。
图4B是阐明根据本发明实施例转变出休眠状态的方法的流程图。
图5是阐明根据本发明实施例的休眠状态转换的框图。
图6是阐明根据本发明实施例在休眠请求时执行休眠状态转换的方法的流程图。
图7是阐明根据本发明实施例在唤醒事件时执行休眠状态转换的方法的流程图。
具体实施方式
在以下描述中,阐述了许多具体细节,诸如逻辑实现、操作码、规定操作数的构件、资源划分/共享/复制实现、系统组件的类型和相互关系以及逻辑划分/集成选择,以便提供对本发明的更透彻理解。然而,本领域技术人员将认识到,没有此类特定细节也可实践本发明。在其它实例中,控制结构、门级电路以及全软件指令序列未详细示出,以免模糊了本发明。本领域普通技术人员用所包含的描述将能够实现适当功能性,而无需过多实验。
在说明书中提到“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可包含具体特征、结构或特性,但可能不一定每一个实施例都包含该具体特征、结构或特性。此外,此类短语不一定是指同一实施例。进一步说,当具体特征、结构或特性结合一实施例描述时,认为结合其它实施例实现此类特征、结构或特性在本领域技术人员的知识范围内,而不管是否明确描述了。
在以下说明书和权利要求书中,可以使用术语“耦合”和“连接”连同它们的派生词。应该理解,这些术语不打算作为彼此的同义词。“耦合”用于指示可以直接彼此物理接触或电气接触或者可以不直接彼此物理接触或电气接触的两个或更多元件彼此协同操作或交互作用。“连接”用于指示在彼此耦合的两个或更多元件之间建立通信。
带括号的文本以及具有虚线边框(例如大破折号、小破折号、点划线、点等)的块有时在本文用于阐明向本发明实施例添加附加特征的可选操作/组件。然而,此类记号不应该被视为意味着这些是仅有的选项或仅有的可选操作/组件,和/或不应该被视为意味着具有实线边框的块在本发明的某些实施例中不是可选的。
介绍
随着处理器核以及新用途模型(诸如虚拟化)的数量的增加,对存储器的容量要求和性能要求继续增长。此外,存储器功率和成本已经分别变成了电子系统(例如计算机系统)的总体功率和成本的重要组成部分。
本发明实施例提供了具有即时响应和降低功耗的计算机系统。在一些实施例中,对存储器的性能要求和容量要求被细分在至少两个存储器技术之间。此类细分提供了如下性能:利用相对小量的相对较高速度的存储器(诸如DRAM),同时使用显著更便宜并且更密集的非易失性随机存取存储器(NVRAM)(诸如相变存储器(PCM)或相关存储器技术)来实现大部分系统存储器。下面描述的本发明实施例使用NVRAM来允许平台(例如移动平台)非常快地接通,并且具有非常长的电池寿命。具体地说,本发明的实施例最小化了易失性存储器在根据高级配置和电力接口(ACPI)规范rev.4.0a定义的休眠状态中的作用。根据ACPI规范的定义,在S3以及S1、S2和S0ix中,到DRAM的电力保持接通,而在S4和S5,到DRAM的电力被移除(即断开)。在如下描述中,根据ACPI规范中的定义DRAM电力保持接通的休眠状态被称为“带电休眠状态”。根据ACPI规范中的定义DRAM电力被断开的休眠状态被称为“断电休眠状态”。本发明实施例通过在休眠状态转变之前将带电休眠状态转换成断电休眠状态而消除了带电休眠状态下的DRAM功耗。本发明实施例还通过允许平台从为带电休眠状态定义的重新开始向量重新开始操作而提供了唤醒时的即时响应。本发明实施例可应用于NVRAM被用作系统存储器或一部分系统存储器的所有平台配置。在一个实施例中,NVRAM系统存储器可连同DRAM存储器侧高速缓存一起使用。在备选实施例中,NVRAM和DRAM组合可形成系统存储器。在又一备选实施例中,NVRAM可独自用作系统存储器,而不存在DRAM。
图1阐明了根据本发明实施例的高速缓存和系统存储器布置。特别是,图1示出了存储器层级,其包含一组内部处理器高速缓存120、充当远存储器高速缓存的“近存储器”121以及“远存储器”122,“近存储器”121可包含内部高速缓存106和外部高速缓存107-109。在本发明的一些实施例中可用于“远存储器”的一种具体类型存储器是NVRAM。因而,下面提供了NVRAM的概览,随后是远存储器和近存储器的概览。
A.非易失性随机存取存储器(“NVRAM”)
存在许多可能的技术选择用于NVRAM,包含PCM、相变存储器和开关(PCMS)(后者是前者的更具体实现)、字节可寻址持久存储器(BPRAM)、存储装置类存储器(SCM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻性存储器(RRAM)、RESET(非晶体)单元、SET(晶体)单元、PCME、奥氏存储器、铁电存储器(也称为聚合物存储器和聚(N-乙烯基咔唑(N-vinylcarbazole)))、铁磁存储器(也称为自旋电子器件、SPRAM(自旋传递扭矩RAM)、STRAM(自旋隧穿RAM)、磁阻存储器、磁存储器、磁随机存取存储器(MRAM))以及半导体-氧化物-氮化物-氧化物-半导体(SONOS,也称为介电存储器)。
NVRAM具有如下特性:
(1)即便电力被移除它也维持其内容,类似于在固态盘(SSD)中使用的闪速存储器,并且不同于易失性的SRAM和DRAM;
(2)比易失性存储器(诸如SRAM和DRAM)更低的功耗;
(3)类似于SRAM和DRAM的随机存取(也称为随机可寻址);
(4)以比在SSD中发现的闪存更低级的粒度(例如字节级)可重写以及可擦除(在SSD中发现的闪存每次仅能被重写并擦除“块”——对于NOR闪存而言大小最低限度是64K字节,而对于NAND闪存而言大小最低限度是16K字节);
(5)用作系统存储器并且分配了全部或部分系统存储器地址空间;
(6)能够使用事务协议(该协议支持事务标识符(ID)来区分不同的事务,使得那些事务可无序地完成)通过总线耦合到处理器,并允许以小到足以支持作为系统存储器的NVRAM的操作的粒度级(例如诸如64字节或128字节的高速缓存行大小)存取。例如,总线可以是存储器总线(例如DDR总线,诸如DDR3、DDR4等),通过该总线运行事务协议,与正常使用的非事务协议形成对比。作为另一示例,总线可以是通过其正常运行事务协议(本机事务协议)的总线,诸如PCI快速(PCIE)总线、桌面管理接口(DMI)总线或利用事务协议和足够小的事务有效载荷大小(例如诸如64字节或128字节的高速缓存行大小)的任何其它类型总线;以及
(7)如下一项或多项:
a)比非易失性存储器/存储装置技术(诸如闪存)更快的写速度;
b)非常高的读速度(比闪存更快,并且接近或相当于DRAM读速度);
c)直接可写(而不是在写数据之前需要擦除(用1盖写)(比如在SSD中使用的闪速存储器));和/或
d)在故障之前较大数量的写(比在SSD中使用的引导ROM和闪存多)。
如上面所提到的,与闪速存储器形成对照(闪速存储器每次必须被重写并且擦除整个“块”),在任何给定实现中存取NVRAM所处的粒度级可取决于具体存储器控制器和具体存储器总线或耦合NVRAM的其它类型总线。例如,在NVRAM被用作系统存储器的一些实现中,尽管固有能力是以字节粒度来存取,仍可以以高速缓存行(例如64字节或128字节的高速缓存行)的粒度来存取NVRAM,这是因为高速缓存行是存储器子系统存取存储器的所处的级。从而,当NVRAM被部署在存储器子系统内时,可以以与在同一存储器子系统中使用的DRAM(例如“近存储器”)相同的粒度级来存取NVRAM。即便如此,由存储器控制器和存储器总线或其它类型总线对NVRAM的存取的粒度级也小于由闪存使用的块大小和I/O子系统的控制器和总线的存取大小的粒度级。
NVRAM也可结合耗损均匀化算法来考虑如下事实:在远存储器级的存储装置单元在若干次写存取之后开始耗尽,特别是在诸如在系统存储器实现中可出现大量写的情况下。由于用这种方式高循环计数块最有可能耗尽,因此耗损均匀化通过交换高循环计数块与低循环计数块的地址而在远存储单元上扩散写。要指出,大部分地址交换通常对应用而言是透明的,这是因为它由硬件、较低级软件(例如低级驱动程序或操作系统)或二者的组合来处置。
B.远存储器
本发明一些实施例的远存储器122用NVRAM实现,但不一定局限于任何具体存储器技术。远存储器122在其特性和/或其在存储器/存储装置层级中的应用方面与其它指令和数据存储器/存储装置技术有区别。例如,远存储器122不同于:
1)静态随机存取存储器(SRAM),其可用于分别专用于处理器核101-104中每一个处理器核的级0和级1内部处理器高速缓存101a-b、102a-b、103a-b、103a-b和104a-b,以及由处理器核共享的较低级高速缓存(LLC)105;
2)动态随机存取存储器(DRAM),其配置为在处理器100内部的高速缓存106(例如在与处理器100相同的裸晶上)和/或配置为在处理器外部的一个或多个高速缓存107-109(例如在与处理器100相同的封装或不同的封装中);以及
3)闪速存储器/磁盘/光盘,其应用为大容量存储装置(未示出);以及
存储器(诸如闪速存储器或其它只读存储器(ROM)),其应用为固件存储器(其可以指引导ROM、BIOS闪存和/或信任平台模块(TPM)闪存)(未示出)。
远存储器122可被用作可直接由处理器100寻址并且能够充分跟上处理器100的指令和数据存储装置,其与应用为大容量存储装置的闪存/磁盘/光盘形成对照。此外,如上面所讨论和下面详细描述的,远存储器122可被放在存储器总线上,并且可与存储器控制器直接通信,所述存储器控制器又与处理器100直接通信。
远存储器122可与其它指令和数据存储技术(例如DRAM)组合以形成混合存储器(也称为协同定位的PCM和DRAM;第一级存储器和第二级存储器;FLAM(闪存和DRAM))。要指出,以上技术中的至少一些技术(包含PCM/PCMS)可用于大容量存储装置,来代替系统存储器或作为系统存储器的附加,并且当用这种方式应用时不必是可由处理器随机存取的、字节寻址的或直接寻址的。
为了便于说明,本申请其余部分中的大部分将引用“NVRAM”,或者更特别是“PCM”或“PCMS”来作为用于远存储器122的技术选择。因而,术语NVRAM、PCM、PCMS和远存储器在以下讨论中可互换地使用。然而,应该意识到,如上面所讨论的,对于远存储器也可利用不同技术。还有,该NVRAM不限于用作远存储器。
C.近存储器
“近存储器”121是配置在远存储器122前面的中级存储器,其相对于远存储器具有更低读/写存取等待时间和/或更对称的读/写存取等待时间(即具有大致相当于写时间的读时间)。在一些实施例中,近存储器121具有比远存储器122显著更低的写等待时间但具有类似(例如略低或相等)的读等待时间;例如,近存储器121可以是易失性存储器(诸如易失性随机存取存储器(VRAM)),并且可包括DRAM或其它基于电容器的高速存储器。然而,要指出,本发明的基本原理不限于这些特定存储器类型。附加地,近存储器121可具有相对更低的密度,和/或可能比远存储器122制造起来更昂贵。
在一个实施例中,近存储器121配置在远存储器122与内部处理器高速缓存120之间。在下面描述的一些实施例中,近存储器121配置为一个或多个存储器侧高速缓存(MSC)107-109以掩蔽远存储器的性能和/或使用限制,其包括例如读/写等待时间限制和存储器降级限制。在这些实现中,MSC 107-109和远存储器122的组合以近似、相当于或超过仅使用DRAM作为系统存储器的系统的性能级操作。如下面所详细讨论的,虽然在图1中显示为“高速缓存”,但近存储器121可包含如下模式:其中它除了扮演高速缓存角色之外,或者替代扮演高速缓存角色,还扮演其它角色(例如作为系统存储器的一部分)。
近存储器121可位于处理器裸晶上(作为一个或多个高速缓存106)和/或位于处理器裸晶外部(作为高速缓存107-109)(例如在位于CPU封装上、位于CPU封装外部的单独裸晶上(具有到CPU封装的高带宽链路),例如在存储器双列直插式存储器模块(DIMM)、转接卡/小背板或计算机主板上)。近存储器121可使用单个或多个高带宽链路(诸如DDR或其它事务的高带宽链路(如下面所详细描述的))与处理器100通信耦合。
示范性系统存储器分配方案
图2阐明了在其上可实现本发明实施例的计算机系统200。计算机系统200包含处理器310和存储器/存储装置子系统280,该存储器/存储装置子系统280具有用于系统存储器、大容量存储装置以及可选的固件存储器的NVRAM 142。在一个实施例中,NVRAM 142包括由计算机系统200用于存储数据、指令、状态和其它持久和非持久信息的整体系统存储器和存储装置层级。如之前所讨论的,NVRAM 142可配置成实现系统存储器的存储装置层级和典型存储器、大容量存储装置和固件存储器、TPM存储器等之中的角色。在图2的实施例中,NVRAM 142被划分成FM 151B、NVRAM大容量存储装置152A、BIOS NVRAM 172和TPM NVRAM173。也考虑了具有不同角色的存储装置层级,并且NVRAM 142的应用不限于上面描述的角色。
作为示例,描述了作为用于FM的高速缓存的近存储器150B处于写回高速缓存时的操作。在一个实施例中,虽然作为用于FM的高速缓存的近存储器150B处于写回高速缓存模式,但读操作将首先到达MSC控制器124,其将执行查找以确定在充当用于FM的高速缓存的近存储器150B中是否存在所请求的数据(例如利用标签高速缓存342)。如果存在,则它会通过I/O子系统115将数据返回到发出请求的CPU、核101-104或I/O装置。如果数据不存在,则MSC控制器124会将请求与系统存储器地址一起发送到NVRAM控制器332。NVRAM控制器332将使用解码表333将系统存储器地址转译成NVRAM物理装置地址(PDA),并将读操作指向远存储器151B的这个区域。在一个实施例中,解码表333包含地址间接表(AIT)组件,NVRAM控制器332使用该AIT组件在系统存储器地址与NVRAM PDA之间转译。在一个实施例中,AIT被更新为耗损均匀化算法的实现成分布存储器存取操作并由此降低NVRAM FM 151B上耗损的那部分。备选地,AIT可以是存储在NVRAM控制器332内的单独表。
在一些实施例中,NVRAM 142可以是芯片外(即处理器芯片外)的唯一存储器/存储装置。在一些实施例中,代替芯片外DRAM 144,DRAM可用于在芯片上提供作为近存储器;例如,作为充当高速缓存的NM 150C。这些实施例可特别有关非常小的平台(例如智能电话或PDA),其中多个存储器类/技术可能成本高昂,并且在芯片上可能放置更多的晶体管(包含存储装置)。
在从NVRAM FM 151B接收到所请求的数据时,NVRAM控制器332会将所请求的数据返回到MSC控制器124,MSC控制器124会将所述数据存储在充当FM高速缓存的MSC近存储器150B中,并且还通过I/O子系统115将所述数据发送到发出请求的处理器核101-104或者I/O装置。对于此数据的随后请求可从充当FM高速缓存的近存储器150B直接服务,直到它由某一其它NVRAM FM数据替换。
如所提到的,在一个实施例中,存储器写操作也首先去到MSC控制器124,MSC控制器124将它写入充当FM高速缓存的MSC近存储器150B中。在写回高速缓存模式中,当接收到写操作时,可不将数据直接发送到NVRAM FM 151B。例如,仅当充当FM高速缓存的MSC近存储器150B中存储数据的位置必须指向不同系统存储器地址再用于存储数据时,才可将数据发送到NVRAM FM 151B。当这个发生时,MSC控制器124注意到数据当前不在NVRAM FM 151B中,并且从而将从充当FM高速缓存的近存储器150B中检索它,并将它发送到NVRAM控制器332。NVRAM控制器332查找用于系统存储器地址的PDA,并且然后将数据写到NVRAM FM 151B。
在图2中,显示NVRAM控制器332使用三条单独的线路连接到FM 151B、NVRAM大容量存储装置152A和BIOS NVRAM 172。然而,这不一定意味着,存在三条单独的物理总线或通信信道将NVRAM控制器332连接到NVRAM 142的这些部分。而是,在一些实施例中,公共存储器总线或其它类型总线用于以通信方式将NVRAM控制器332耦合到FM 151B、NVRAM大容量存储装置152A和BIOS NVRAM 172。例如,在一个实施例中,图2中的三条线路表示如下总线(诸如存储器总线(例如DDR3、DDR4等总线)),通过该总线NVRAM控制器332实现了与NVRAM 142通信的事务协议。NVRAM控制器332也可通过支持本机事务协议的总线(诸如PCI快速总线、桌面管理接口(DMI)总线或利用事务协议和足够的小事务有效载荷大小(例如诸如64字节或128字节的高速缓存行大小)的任何其它类型总线)与NVRAM 142通信。
在一个实施例中,计算机系统200包含执行用于处理器310的中央存储器存取控制的集成存储器控制器(IMC)331,其耦合到:1)存储器侧高速缓存(MSC)控制器124,以控制对充当远存储器高速缓存的近存储器(NM)150B的存取;以及2)NVRAM控制器332,以控制对NVRAM 142的存取。尽管在图2中阐明为单独单元,但MSC控制器124和NVRAM控制器332在逻辑上可形成IMC 331的一部分。
在阐明的实施例中,MSC控制器124包含一组范围寄存器336,范围寄存器336规定供充当远存储器高速缓存的NM 150B使用的操作模式(例如写回高速缓存模式、近存储器旁路模式等)。在所阐明的实施例中,DRAM 144被用作用于充当用于远存储器的高速缓存的NM150B的存储器技术。响应于存储器存取请求,MSC控制器124可(根据在范围寄存器336中规定的操作模式)确定是否可从充当用于FM的高速缓存的NM 150B服务于该请求,或者是否必须向NVRAM控制器332发送该请求,控制器332然后可从NVRAM 142的远存储器(FM)部分151B服务于该请求。
在用PCMS实现NVRAM 142的实施例中,NVRAM控制器332是用与PCMS技术一致的协议来执行存取的PCMS控制器。如之前所讨论的,固有地,能够以字节粒度存取PCMS存储器。尽管如此,NVRAM控制器332可以以较低级粒度(诸如高速缓存行(例如64位或128位的高速缓存行))或与存储器子系统一致的任何其它级粒度来存取基于PCMS的远存储器151B。本发明的基本原理不限于用于存取基于PCMS的远存储器151B的任何具体级粒度。然而,一般而言,当基于PCMS的远存储器151B用于形成系统地址空间的一部分时,该粒度级将高于在传统上用于其它非易失性存储装置技术(诸如闪存)的粒度级,其仅能在“块”级(对于NOR闪存的大小最低限度是64K字节,并且对于NAND闪存最低限度是16K字节)执行重写和擦除操作。
在所阐明的实施例中,NVRAM控制器332能够读取配置数据以从解码表333中确立之前描述的用于NVRAM 142的模式、大小等,或者备选地,可依赖于从IMC 331和I/O子系统315传递的解码结果。例如,在制造时间或者在现场,计算机系统200可对解码表333编程以将NVRAM 142的不同区域标记为系统存储器、经由SATA接口暴露的大容量存储装置、经由USB仅大块传输(BOT)接口暴露的大容量存储装置、支持TPM存储的加密存储装置,除此之外还有其它。对NVRAM装置142的不同分区操纵存取所用的手段是利用解码逻辑的。例如,在一个实施例中,在解码表333中定义每个分区的地址范围。在一个实施例中,当IMC 331接收到存取请求时,该请求的目标地址被解码以揭示该请求是指向存储器、NVRAM大容量存储装置还是I/O。如果它是存储器请求,则IMC 331和/或MSC控制器124根据目标地址进一步确定该请求是指向作为用于FM的高速缓存的NM 150B还是指向FM 151B。对于FM 151B存取,该请求被转发到NVRAM控制器332。如果此请求被指向I/O(例如非存储装置I/O装置和存储装置I/O装置),则IMC 331将该请求传递到I/O子系统115。I/O子系统115进一步对该地址进行解码以确定该地址是指向NVRAM大容量存储装置152A、BIOS NVRAM 172还是其它非存储装置I/O装置和存储装置I/O装置。如果此地址指向NVRAM大容量存储装置152A或BIOS NVRAM 172,则I/O子系统115将该请求转发到NVRAM控制器332。如果此地址指向TPM NVRAM 173,则I/O子系统115将该请求传递到TPM 334以执行安全存取。
在一个实施例中,转发到NVRAM控制器332的每个请求兼有指示存取类型的属性(也称为“事务类型”)。在一个实施例中,NVRAM控制器332可模仿(emulate)所请求存取类型的存取协议,使得平台的其余部分保持不了解由NVRAM 142在存储器和存储装置层级中扮演的多个角色。在备选实施例中,NVRAM控制器332可执行对NVRAM 142的存储器存取,而不管它是哪种事务类型。要理解,解码路径可不同于上面所描述的。例如,IMC 331可对存取请求的目标地址进行解码,并确定它是否指向NVRAM 142。如果它指向NVRAM 142,则IMC 331根据解码表333生成属性。基于该属性,IMC 331然后将该请求转发到适当下游逻辑(例如NVRAM控制器332和I/O子系统315)以执行所请求的数据存取。在又一实施例中,如果对应属性未从上游逻辑(例如IMC 331和I/O子系统315)传递,则NVRAM控制器332可对目标地址进行解码。也可实现其它解码路径。
诸如本文所描述的新存储器架构的存在提供了丰富的新可能性。尽管下面以更大篇幅进一步讨论了,但下面紧接着很快强调了这些可能性中的一些可能性。
根据一种可能实现,NVRAM 142充当系统存储器中用于传统DRAM技术的总替换或补充。在一个实施例中,NVRAM 142表示引入第二级系统存储器(例如该系统存储器可被视为具有包括作为高速缓存的近存储器150B (DRAM 144的一部分)的第一级系统存储器和包括远存储器(FM) 151B (NVRAM 142的一部分)的第二级系统存储器)。
根据一些实施例,NVRAM 142充当闪存/磁/光大容量存储装置152B的总替换或补充。如本文之前所描述的,在一些实施例中,即使NVRAM 152A有字节级可寻址的能力,但NVRAM控制器332仍可根据实现(例如64K字节、128K字节等)按多字节块存取NVRAM大容量存储装置152A。由NVRAM控制器332从NVRAM大容量存储装置152A存取数据的特定方式可对由处理器310执行的软件而言是透明的。例如,即使NVRAM大容量存储装置152A可以不同于闪存/磁/光大容量存储装置152A的方式来存取,操作系统仍可将NVRAM大容量存储装置152A看作标准大容量存储装置器件(例如串行ATA硬驱动器或其它标准形式的大容量存储装置设备)。
在NVRAM大容量存储装置152A充当闪存/磁/光大容量存储装置152B的总替换的实施例中,对于块可寻址存储装置存取没有必要使用存储装置驱动器。从存储装置存取中移除存储装置驱动器开销可增大存取速度并节省功率。在期望NVRAM大容量存储装置152A对于OS和/或应用而言看起来是块可存取且与闪存/磁/光大容量存储装置152B不可区分的备选实施例中,模仿的存储装置驱动器可用于将块可存取接口(例如通用串行总线(USB)仅大块传递(BOT),1.0;串行先进技术附件(SATA),3.0等)暴露于用于存取NVRAM大容量存储装置152A的软件。
在一个实施例中,NVRAM 142充当用于固件存储器(诸如BIOS闪存362和TPM闪存372)(图2中用点线阐明以指示它们是可选的)的总替换或补充。例如,NVRAM 142可包含BIOS NVRAM 172部分以补充或替换BIOS闪存362,并且可包含TPM NVRAM 173部分以补充或替换TPM闪存372。固件存储器还可存储由TPM 334用于保护敏感系统信息(例如加密密钥)的系统持久状态。在一个实施例中,对于固件存储器使用NVRAM 142移除了对于如下的需要:第三方闪存部分存储对系统操作关键的代码和数据。
然后继续对图2的系统的讨论,在一些实施例中,计算机系统200的架构可包含多个处理器,不过图2中为了简化阐明了单个处理器310。处理器310可以是任何类型数据处理器,包含通用或专用中央处理单元(CPU)、专用集成电路(ASIC)或数字信号处理器(DSP)。例如,处理器310可以是通用处理器,诸如Core™i3、i5、i7、2Duo和Quad、Xeon™或Itanium™处理器,它们全都可从加利福尼亚圣克拉拉的英特尔公司得到。备选地,处理器310可以来自另一公司,诸如加利福尼亚桑尼韦尔的ARM股份有限公司、加利福尼亚桑尼韦尔的MIPS技术公司等。处理器310可以是专用处理器,诸如例如网络处理器或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等等。处理器310可实现在包含在一个或多个封装内的一个或多个芯片上。处理器310可以是一个或多个衬底的一部分,和/或可使用若干工艺技术(诸如例如BiCMOS、CMOS或NMOS)中的任一技术实现在一个或多个衬底上。在图2中示出的示例中,处理器310具有芯片上系统(SOC)配置。
在一个实施例中,处理器310包含集成图形单元311,其包含用于执行图形命令(诸如3D或2D图形命令)的逻辑。虽然本发明的实施例不限于任何具体集成图形单元311,但在一个实施例中,图形单元311能够执行工业标准图形命令,诸如由开放式GL和/或直接X应用编程接口(API)(例如开放式GL 4.1和直接X 11)规定的命令。
处理器310还可包含一个或多个核101-104,不过再次为了清楚目的在图2阐明了单个核。在许多实施例中,核101-104包含内部功能块,诸如一个或多个执行单元、退役单元、一组通用寄存器和专用寄存器等。如果核是多线程或超线程的,则每个硬件线程也可被视为“逻辑”核。核101-104在架构和/或指令集方面可以是同类的或异类的。例如,其中一些核可以是有序的,而其它核是无序的。作为另一示例,所述核中的两个或更多核可以能够执行相同指令集,而其它核可以能够仅执行那个指令集的子集或不同指令集。
处理器310还可包含一个或多个高速缓存,诸如可实现为SRAM和/或DRAM的高速缓存313。在未示出的许多实施例中,实现不同于高速缓存313的附加高速缓存,使得在核101-104中的执行单元与存储器装置150B和151B之间存在多级高速缓存。例如,该组共享高速缓存单元可包含上级高速缓存(诸如级1(L1)高速缓存)、中级高速缓存(诸如级2(L2)、级3(L3)、级4(L4))或其它级高速缓存、(LLC)和/或其中的不同组合。在不同实施例中,高速缓存313可按不同方式分派,并且在不同实施例中可具有许多不同大小之一。例如,高速缓存313可以是8兆字节(MB)高速缓存、16MB高速缓存等。附加地,在不同实施例中,高速缓存可以是直接映射高速缓存、完全关联高速缓存、多路组关联高速缓存或具有另一类型映射的高速缓存。在包含多个核的其它实施例中,高速缓存313可包含在所有核之间共享的一个大的部分,或者可被分成多个单独的功能片段(例如每个核一个片段)。高速缓存313也可包含在所有核之间共享的一个部分以及是每个核的单独功能片段的多个其它部分。在一个实施例中,高速缓存313可包含充当高速缓存的DRAM近存储器(NM)150C。
处理器310还可包含归属代理314,归属代理314包含协调和操作核101-104的那些组件。归属代理单元314例如可包含功率控制单元(PCU)和显示单元。PCU可以是或者可包含调节核101-104功率状态所需的逻辑和组件以及集成图形单元311。显示单元用于驱动一个或多个外部连接的显示器。
如所提到的,在一些实施例中,处理器310包含集成存储器控制器(IMC)331、近存储器高速缓存(MSC)控制器以及NVRAM控制器332,所有这些全都可以在与处理器310相同的芯片上或者在连接到处理器310的单独芯片和/或封装上。DRAM 144可以在与IMC 331和MSC控制器124相同的芯片或不同的芯片上;从而,一个芯片可具有处理器310和DRAM 144;一个芯片可具有处理器310而另一个芯片可具有DRAM 144(并且这些芯片可在相同或不同的封装中);一个芯片可具有核101-104而另一个芯片可具有IMC 331、MSC控制器124和DRAM 144(这些芯片可在相同或不同的封装中);一个芯片可具有核101-104而另一个芯片可具有IMC331和MSC控制器124以及另一个芯片可具有DRAM 144(这些芯片可在相同或不同的封装中);等等。
在一些实施例中,处理器310包含耦合到IMC 331的I/O子系统115。I/O子系统115使得在处理器310与如下串行或并行I/O装置之间能够进行通信:一个或多个网络336(诸如局域网、广域网或因特网)、存储装置I/O装置(诸如闪存/磁/光大容量存储装置152B、BIOS闪存362、TPM闪存372)以及一个或多个非存储装置I/O装置337(诸如显示器、键盘、扬声器等等)。I/O子系统115可包含平台控制器中心(PCH)(未示出),该PCH进一步包含多个I/O适配器338以及其它I/O电路以提供对存储装置和非存储装置I/O装置和网络的存取。为了完成此方面,I/O子系统115可对于所利用的每个I/O具有至少一个集成I/O适配器338。I/O子系统115可在与处理器310相同的芯片上,或在连接到处理器310的单独芯片和/或封装上。
I/O适配器338将在处理器310内利用的主机通信协议转译成与具体I/O装置兼容的协议。对于闪存/磁/光大容量存储装置152B,I/O适配器338可转译的其中一些协议包含:外围组件互连(PCI)-快速(PCI-E),3.0;USB,3.0;SATA,3.0;小型计算机系统接口(SCSI),超-640;以及电气与电子工程师协会(IEEE)1394“防火墙”,除此之外还有其它。对于BIOS闪存362,I/O适配器338可转译的其中一些协议包含串行外围接口(SPI)、微线,除此之外还有其它。附加地,可能存在一个或多个无线协议I/O适配器。无线协议的示例用在个人局域网中(除此之外还有其它),诸如IEEE 802.15和蓝牙4.0;用在无线局域网中,诸如基于IEEE802.11的无线协议;以及蜂窝协议。
在一些实施例中,I/O子系统115耦合到TPM控制器334以控制对系统持久状态的存取,诸如安全数据、加密密钥、平台配置信息等等。在一个实施例中,这些系统持久状态被存储在TPM NVRAM 173中,并经由NVRAM控制器332来存取。
在一个实施例中,TPM 334是具有密码功能性的安全微控制器。TPM 334具有若干信任相关能力;例如,用于确保受TPM保护的数据仅对于同一TPM可用的SEAL能力。TPM 334可使用其加密能力保护数据和密钥(例如秘密)。在一个实施例中,TPM 334具有独特且秘密的RSA密钥,其允许它认证硬件装置和平台。例如,TPM 334可验证寻求对存储在计算机系统200中的数据进行存取的系统是预期系统。TPM 334也能够报告平台(例如计算机系统200)的完整性。这允许外部源(例如网络上的服务器)确定平台的可信度,但不阻止用户对该平台的访问。
在一些实施例中,I/O子系统315还包含管理引擎(ME)335,其是允许系统管理员监视、维护、更新、升级和修理计算机系统200的微处理器。在一个实施例中,系统管理员可通过如下方式来远程配置计算机系统200:通过ME335经由网络336编辑解码表333的内容。
为了便于说明,本申请的剩余部分有时将NVRAM 142称为PCMS装置。PCMS装置包含非易失性、具有低功耗并且在位级可修改的多层(垂直堆叠)的PCM单元阵列。因而,术语NVRAM装置和PCMS装置在以下讨论中可互换使用。然而,应该认识到,如上面所讨论的,对于NVRAM 142也可利用除PCMS之外的不同技术。
应该理解,计算机系统可将NVRAM 142用于系统存储器、大容量存储装置、固件存储器和/或其它存储器和存储装置目的(即便那个计算机系统的处理器并不具有处理器310的所有上述组件,或具有比处理器310多的组件)。
在图2中示出的具体实施例中,MSC控制器124和NVRAM控制器332位于与处理器310相同的裸晶或封装(称为CPU封装)上。在其它实施例中,MSC控制器124和/或NVRAM控制器332可位于裸晶外或CPU封装外,通过总线(诸如存储器总线(比如DDR总线(例如DDR3、DDR4等))、PCI快速总线、桌面管理接口(DMI)总线或任何其它类型总线)耦合到处理器310或CPU封装。在一个实施例中,NVRAM控制器332可位于与NVRAM 142相同的物理模块(例如卡、转接卡、小背板、双列直插式存储器模块(DIMM)等)上。
在如图3的实施例中所示的计算机系统300的备选实施例中,DRAM 144代替高速缓存作为系统存储器的一部分操作(称为“DRAM系统存储器150A”)。从而,在计算机系统300的存储装置子系统380和存储器中,系统存储器空间包含DRAM系统存储器150A和NVRAM 142。代替使MSC控制器124与DRAM高速缓存150B交互作用(如图2所示),此备选实施例使用IMC331与DRAM系统存储器150A直接交互作用。在一些实施例中,除了DRAM系统存储器150A或代替它,DRAM可用于提供芯片上的存储器,例如NM 150C。
用于休眠状态转变的功率管理机制
在如下描述中,将参考图2的计算机系统200详细描述功率管理机制。还将参考图3的计算机系统300描述此功率管理机制的变型。
图4A是阐明根据本发明一个实施例转变到休眠状态的方法400的流程图。图4B是阐明根据本发明一个实施例转变出休眠状态的方法450的流程图。参考图2和图4A的实施例,响应于内部生成的事件或外部命令,计算机系统200(也称为平台200)的OS发起进入带电休眠状态(例如S1、S2、S3或S0ix)(块401)。作为响应,MSC控制器124将DRAM高速缓存150B的内容转储清除(即拷贝)到NVRAM 142中(块402),并且断开到DRAM高速缓存150B的电力(块403)。处理器210然后执行BIOS代码(其可存储在BIOS NVRAM 172中)以初始化平台200断电,并且设立指示符(例如标志、寄存器、BIOS/OS接口等),使得处理器210可在唤醒时返回S3重新开始向量(或另一带电休眠状态重新开始向量)并向它传递控制(块404)。在一个实施例中,重新开始向量指向存储在唤醒时由处理器210可执行的初始化代码的固件位置(例如NVRAM 142中的位置)。平台200然后进入“断电休眠状态”(块405)。“断电休眠状态”被定义为到DRAM高速缓存150B的电力被断开的休眠状态。在此断电休眠状态下,平台200的其它组件(包含MSC控制器124)也可被断开。此断电休眠状态的示例包含但不限于如在ACPI规范rev.4.0a中所定义的S4和S5。
使用NVRAM 142,平台200可响应于对于进入带电休眠状态的请求而进入断电休眠状态。带电休眠状态与断电休眠状态之间的功耗差异可在1个或2个数量级。在移动平台上,此节能可转变成待机模式下从几天到几百天的电池寿命。从而,可获得显著的节能。
参考图4B的实施例,在接收到指示唤醒事件的信号时(块421),处理器210开始引导过程,并执行BIOS(块422)。BIOS初始化离开带电休眠状态所必需的核功能,并向重新开始向量(例如S3重新开始向量)传递控制(块423),该重新开始向量是在进入休眠状态之前设立的。这些带电休眠状态重新开始向量在系统存储器上下文被保存的环境下操作。由于在进入休眠状态之前DRAM高速缓存150B的内容已经被拷贝到NVRAM 142,因此整体系统存储器上下文被保存在NVRAM 142中。从而,平台200可用重新开始向量并使用保存在NVRAM142中的上下文迅速重新开始其工作状态。
在引导过程期间,平台硬件装置(包含MSC控制器124)和OS也被初始化。OS然后引导系统软件和应用,直接存取NVRAM 142中的系统存储器上下文(块424)。NVRAM 142可提供接近与DRAM高速缓存150B一样快的响应,特别是相对于读存取。虽然OS使用NVRAM 142中的代码和数据初始化平台200的其余部分,但DRAM高速缓存150B可被接通并且通过MSC控制器124被初始化(块425)。平台200然后离开休眠状态并且进入工作状态(块526)。
前述描述涉及DRAM 144被用作存储器侧高速缓存的实施例。在备选实施例中,DRAM 144可代替高速缓存作为系统存储器的一部分操作(称为图3的DRAM系统存储器150A)。为了保存系统存储器上下文,在进入带电休眠状态之前,OS将DRAM系统存储器150A的内容拷贝到NVRAM 124中。在唤醒时,OS直接存取NVRAM 124以初始化软件和应用,并在初始化已经开始之后的随后时间接通和初始化DRAM系统存储器150A。
在又一实施例中,NVRAM 142可被用作DRAM 144的全置换。也就是说,NVRAM 142是系统存储器,并且不包含易失性存储器作为系统存储器的一部分。NVRAM 142独自用于维持系统存储器上下文。此实施例的休眠状态转变类似于在图4A和4B中描述的休眠状态转变,只是不需要MSC控制器124和DRAM高速缓存150B。
图5是阐明根据本发明实施例的休眠状态转换的框图。在图5的实施例中,每个块510—550指示平台转变的阶段。进一步说,块510-550在图5中被重复了,以更清楚地示出,当平台进入和离开带电休眠状态时可跳过一些阶段。图5的休眠状态转换可由图2的计算机系统200、图3的计算机系统或上面所描述的其任何备选或变型执行。尽管S3和S5分别用于指示带电休眠状态和断电休眠状态,但要理解,可以使用其它带电休眠状态和断电休眠状态。
在图5的实施例中,块510-530指示正常平台引导过程,包含固件(例如BIOS)初始化510、OS引导520以及OS运行530(其表示平台的工作状态)。在块540,当平台接收到进入带电休眠状态(例如S3)的请求时,OS(通过设置SLP_TYPE寄存器)将休眠类型设置成S3。代替转变到S3,处理器执行BIOS以转变到断电休眠状态(例如S5)。S5也被称为G2状态或软关闭状态。在S5,平台使所有装置断电,包含任何易失性存储器装置(如果有的话)。在唤醒时,处理器执行BIOS以初始化引导过程(在块510),并向S3重新开始向量传递控制以初始化平台的其余部分(在块550)。通过向S3重新开始向量传递控制,处理器执行由S3重新开始向量指向的固件代码以从NVRAM中检索系统存储器上下文,并启动软件和应用。平台然后返回到工作状态。
图6是阐明根据本发明一个实施例在休眠请求时执行休眠状态转换的方法600的流程图。方法600可由图2的计算机系统200、图3的计算机系统或上面所描述的其任何备选或变型执行。在此实施例中,方法600开始于系统中断(例如系统管理中断(SMI))发生时(块601)。处理器确定该中断是否涉及平台的可靠性、可用性和可服务性(RAS)或者由OS请求或引起的休眠状态(块602)。如果它不是OS请求转变到带电休眠状态(例如S3)(块603),则处理器继续正常中断处置(块604)。如果它是OS请求转变到带电休眠状态(例如S3),则处理器确定平台是否用NVRAM启用(也就是说,平台是否包含作为系统存储器的NVRAM)(块605)。如果平台未用NVRAM启用,则处理器继续正常中断处置(块604)。如果平台用NVRAM启用,则处理器设置指示平台已经进入从带电休眠状态(例如S3)转换的断电休眠状态(例如S5)的标志(块606)。也就是说,该标志指示正在对NVRAM属性进行利用以断开平台。在包含DRAM(作为存储器侧高速缓存或系统存储器的一部分)的平台上,可执行图4A的方法400以将DRAM内容拷贝到NVRAM。平台然后进入断电休眠状态(块607),其中到平台的电力被断开。
图7是阐明根据本发明一个实施例在唤醒事件时执行休眠状态转换的方法700的流程图。方法700可由图2的计算机系统200、图3的计算机系统或上面所描述的其备选或变型执行。在此实施例中,方法700开始于平台上电(701)并且正常引导过程开始(块702)时。如果平台未从休眠状态重新开始(块703)(例如通过检查是否设置了休眠状态寄存器SLP_EN和SLP_TYPE),则正常引导过程继续(块704)。如果平台正在从休眠状态重新开始,则进一步确定平台是否正在从带电休眠状态(例如S3)重新开始(块705)。如果平台正在从带电休眠状态重新开始,则引导过程继续带电休眠状态的正常重新开始操作(块706)。如果平台未从带电休眠状态重新开始,则进一步确定平台是否正在从断电休眠状态重新开始,断电休眠状态从带电休眠状态转换(例如S5从S3转换),其中该转换由NVRAM启用(块707)。如果平台未从由NVRAM启用的所转换休眠状态重新开始,则引导过程继续断电休眠状态(例如S4或S5)的正常重新开始操作(块708)。如果平台正在从由NVRAM启用的所转换休眠状态重新开始,则执行跳到带电休眠状态(例如S3)的重新开始向量以将平台返回到工作状态(块709)。在包含DRAM(作为高速缓存或系统存储器的一部分)的平台上,可执行图4B的方法450以接通DRAM。
应该理解,图4A、图4B、图6和图7的流程图操作可由图2和图3以及与这些图中所示的实施例不同的实施例执行。附加地,参考图2和图3讨论的实施例可执行与参考图4A、图4B、图6和图7的流程图讨论的实施例不同的操作。
在图4A、图4B、图6和图7的流程图中所示的技术可使用存储在非短暂性机器可读或计算机可读介质诸如非短暂性机器可读或计算机可读存储介质(例如磁盘、光盘、随机存取存储器、只读存储器、闪速存储器装置和相变存储器)上的指令和数据实现。
本发明实施例也可提供为计算机程序产品,计算机程序产品可包含非短暂性机器可读介质,非短暂性机器可读介质其上已经存储了可用于对计算机(或其它电子装置)编程以执行过程的指令。非短暂性机器可读介质可包含但不限于软磁盘、光盘、CD-ROM以及磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、传播介质或适合于存储电子指令的其它类型介质/机器可读介质。本发明的实施例也可下载为计算机程序产品,其中程序可通过实施在载波或其它传播介质中的数据信号,经由通信链路(例如调制解调器或网络连接)从远程计算机(例如服务器)传递到发出请求的计算机(例如客户端)。
虽然本发明已经依据几个实施例进行了描述,但本领域技术人员将认识到,本发明不限于所描述的实施例,可用在所附权利要求书的精神和范围内的修改和变化来实践。从而,说明书被视为说明性的而非限制性的。
Claims (28)
1.一种用非易失性随机存取存储器改进休眠状态转变的响应的方法,包括:
接收对于计算机系统进入带电休眠状态的请求,所述计算机系统包括耦合到非易失性随机存取存储器NVRAM的处理器,所述NVRAM由所述处理器可存取而无需通过所述计算机系统的I/O子系统,所述NVRAM是由所述处理器字节可重写的并且字节可擦除的,所述带电休眠状态定义为其中向所述计算机系统中的易失性随机存取存储器提供电力的状态;
响应于所述请求,将所述带电休眠状态转换成断电休眠状态,其中系统存储器上下文存储在所述NVRAM中,所述断电休眠状态定义为其中从所述易失性随机存取存储器移除电力的状态,
响应于唤醒事件,使用存储在所述NVRAM中的所述系统存储器上下文重新开始工作状态操作。
2.如权利要求1所述的方法,其中所述NVRAM包括相变存储器(PCM)。
3.如权利要求1所述的方法,其中所述易失性随机存取存储器包括用作所述NVRAM的存储器侧高速缓存的动态随机存取存储器(DRAM)。
4.如权利要求1所述的方法,其中所述易失性随机存取存储器包括与所述NVRAM组合使用作为所述计算机系统的系统存储器的动态随机存取存储器(DRAM)。
5.如权利要求1所述的方法,还包括:
设置指示所述计算机系统已经进入从所述带电休眠状态转换的所述断电休眠状态的标志。
6.如权利要求1所述的方法,还包括:
在转变到所述断电休眠状态之前,设立所述带电休眠状态的重新开始向量以便所述处理器在唤醒时返回,其中所述重新开始向量指向存储由所述处理器在唤醒时可执行的初始化代码的固件位置。
7.如权利要求1所述的方法,其中所述易失性随机存取存储器包括动态随机存取存储器(DRAM),所述方法还包括:
在所述唤醒事件时,使用存储在所述NVRAM中的所述系统存储器上下文初始化所述计算机系统;以及
在所述初始化已经开始之后,接通到所述DRAM的电力。
8.一种用非易失性随机存取存储器改进休眠状态转变的响应的设备,包括:
处理器,其在计算机系统中;以及
非易失性随机存取存储器NVRAM,其耦合到所述处理器并由所述处理器可存取而无需通过所述计算机系统的I/O子系统,所述NVRAM是由所述处理器字节可重写的并且字节可擦除的,
其中在请求所述计算机系统进入带电休眠状态时,所述处理器将所述带电休眠状态转换成断电休眠状态,其中系统存储器上下文存储在所述NVRAM中,所述带电休眠状态定义为其中向所述计算机系统中的易失性随机存取存储器提供电力的状态,而所述断电休眠状态定义为其中从所述易失性随机存取存储器移除电力的状态;并且
其中在唤醒事件时,所述计算机系统使用存储在所述NVRAM中的所述系统存储器上下文重新开始工作状态操作。
9.如权利要求8所述的设备,其中所述NVRAM包括相变存储器(PCM)。
10.如权利要求8所述的设备,其中所述易失性随机存取存储器包括用作所述NVRAM的存储器侧高速缓存的动态随机存取存储器(DRAM)。
11.如权利要求10所述的设备,还包括:
存储器侧高速缓存控制器,其耦合到所述DRAM以控制对所述DRAM的存取。
12.如权利要求8所述的设备,其中所述易失性随机存取存储器包括与所述NVRAM组合使用作为所述计算机系统的系统存储器的动态随机存取存储器(DRAM)。
13.如权利要求8所述的设备,还包括:
固件,其耦合到所述处理器,所述固件的位置由所述带电休眠状态的重新开始向量指向,并且其上存储了由所述处理器在唤醒时可执行的初始化代码,其中在转变到所述断电休眠状态之前,所述处理器设立所述带电休眠状态的所述重新开始向量以便所述处理器在唤醒时返回。
14.如权利要求8所述的设备,其中所述易失性随机存取存储器包括动态随机存取存储器(DRAM),并且其中所述处理器:
在所述唤醒事件时使用存储在所述NVRAM中的所述系统存储器上下文初始化所述计算机系统,并且在所述初始化已经开始之后接通到所述DRAM的电力。
15.一种用非易失性随机存取存储器改进休眠状态转变的响应的系统,包括:
处理器,其在计算机系统中;
动态随机存取存储器(DRAM),其耦合到所述处理器;以及
非易失性随机存取存储器NVRAM,其耦合到所述处理器并由所述处理器可存取而无需通过所述计算机系统的I/O子系统,所述NVRAM是由所述处理器字节可重写的并且字节可擦除的,
其中在请求所述计算机系统进入带电休眠状态时,所述处理器将所述带电休眠状态转换成断电休眠状态,其中系统存储器上下文存储在所述NVRAM中,所述带电休眠状态定义为其中向所述DRAM提供电力的状态,而所述断电休眠状态定义为其中从所述DRAM移除电力的状态,并且
其中在唤醒事件时,所述计算机系统使用存储在所述NVRAM中的所述系统存储器上下文重新开始工作状态操作。
16.如权利要求15所述的系统,其中所述NVRAM包括相变存储器(PCM)。
17.如权利要求15所述的系统,其中所述DRAM被用作所述NVRAM的存储器侧高速缓存。
18.如权利要求15所述的系统,其中所述DRAM与所述NVRAM组合使用作为所述计算机系统的系统存储器。
19.如权利要求15所述的系统,还包括:
固件,其耦合到所述处理器,所述固件的位置由所述带电休眠状态的重新开始向量指向,并且其上存储了由所述处理器在唤醒时可执行的初始化代码,其中在转变到所述断电休眠状态之前,所述处理器设立所述带电休眠状态的所述重新开始向量以便所述处理器在唤醒时返回。
20.如权利要求15所述的系统,其中所述处理器:
在所述唤醒事件时使用存储在所述NVRAM中的所述系统存储器上下文初始化所述计算机系统,并且在所述初始化已经开始之后接通到所述DRAM的电力。
21.一种用非易失性随机存取存储器改进休眠状态转变的响应的设备,包括:
用于接收对于计算机系统进入带电休眠状态的请求的装置,所述计算机系统包括耦合到非易失性随机存取存储器NVRAM的处理器,所述NVRAM由所述处理器可存取而无需通过所述计算机系统的I/O子系统,所述NVRAM是由所述处理器字节可重写的并且字节可擦除的,所述带电休眠状态定义为其中向所述计算机系统中的易失性随机存取存储器提供电力的状态;
用于响应于所述请求,将所述带电休眠状态转换成断电休眠状态的装置,其中系统存储器上下文存储在所述NVRAM中,所述断电休眠状态定义为其中从所述易失性随机存取存储器移除电力的状态,
用于响应于唤醒事件,使用存储在所述NVRAM中的所述系统存储器上下文重新开始工作状态操作的装置。
22.如权利要求21所述的设备,其中所述NVRAM包括相变存储器(PCM)。
23.如权利要求21所述的设备,其中所述易失性随机存取存储器包括用作所述NVRAM的存储器侧高速缓存的动态随机存取存储器(DRAM)。
24.如权利要求21所述的设备,其中所述易失性随机存取存储器包括与所述NVRAM组合使用作为所述计算机系统的系统存储器的动态随机存取存储器(DRAM)。
25.如权利要求21所述的设备,还包括:
用于设置指示所述计算机系统已经进入从所述带电休眠状态转换的所述断电休眠状态的标志的装置。
26.如权利要求21所述的设备,还包括:
用于在转变到所述断电休眠状态之前,设立所述带电休眠状态的重新开始向量以便所述处理器在唤醒时返回的装置,其中所述重新开始向量指向存储由所述处理器在唤醒时可执行的初始化代码的固件位置。
27.如权利要求21所述的设备,其中所述易失性随机存取存储器包括动态随机存取存储器(DRAM),所述设备还包括:
用于在所述唤醒事件时,使用存储在所述NVRAM中的所述系统存储器上下文初始化所述计算机系统的装置;以及
用于在所述初始化已经开始之后,接通到所述DRAM的电力的装置。
28.一种已在其上存储有指令的计算机可读介质,所述指令在被执行时引起处理器执行如权利要求1-7中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/064687 WO2013089686A1 (en) | 2011-12-13 | 2011-12-13 | A method and system for providing instant responses to sleep state transitions with non-volatile random access memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104106057A CN104106057A (zh) | 2014-10-15 |
CN104106057B true CN104106057B (zh) | 2018-03-30 |
Family
ID=48612982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180075454.XA Active CN104106057B (zh) | 2011-12-13 | 2011-12-13 | 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9958926B2 (zh) |
CN (1) | CN104106057B (zh) |
WO (1) | WO2013089686A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5825887B2 (ja) * | 2011-07-05 | 2015-12-02 | キヤノン株式会社 | 画像形成装置、画像形成装置の制御方法、及びプログラム |
US10303618B2 (en) * | 2012-09-25 | 2019-05-28 | International Business Machines Corporation | Power savings via dynamic page type selection |
GB2517159A (en) | 2013-08-13 | 2015-02-18 | Sony Comp Entertainment Europe | Data processing |
US10079019B2 (en) | 2013-11-12 | 2018-09-18 | Apple Inc. | Always-on audio control for mobile device |
US20150206574A1 (en) * | 2014-01-22 | 2015-07-23 | Advanced Micro Devices, Inc. | Relocating infrequently-accessed dynamic random access memory (dram) data to non-volatile storage |
US10031000B2 (en) | 2014-05-29 | 2018-07-24 | Apple Inc. | System on a chip with always-on processor |
US9778728B2 (en) * | 2014-05-29 | 2017-10-03 | Apple Inc. | System on a chip with fast wake from sleep |
JP5901698B2 (ja) * | 2014-06-17 | 2016-04-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | メモリ管理方法 |
US11269984B2 (en) * | 2014-12-09 | 2022-03-08 | Janus Technologies, Inc. | Method and apparatus for securing user operation of and access to a computer system |
US9568971B2 (en) * | 2015-02-05 | 2017-02-14 | Apple Inc. | Solid state drive with self-refresh power saving mode |
US10394310B2 (en) * | 2016-06-06 | 2019-08-27 | Dell Products, Lp | System and method for sleeping states using non-volatile memory components |
CN106375404B (zh) * | 2016-08-30 | 2019-10-25 | 华为技术有限公司 | 数据存储控制方法、数据存储方法、数据获取方法及装置 |
US10705590B2 (en) * | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
US11016665B2 (en) * | 2018-01-23 | 2021-05-25 | Seagate Technology Llc | Event-based dynamic memory allocation in a data storage device |
US11061692B2 (en) * | 2018-02-07 | 2021-07-13 | Intel Corporation | Low latency boot from zero-power state |
CN108490826B (zh) * | 2018-03-07 | 2023-10-13 | 一汽-大众汽车有限公司 | 一种用于嵌入式控制系统的控制器及其控制方法 |
US11550592B2 (en) * | 2018-06-29 | 2023-01-10 | Intel Corporation | Methods and apparatus to utilize non-volatile memory for computer system boot |
US11907587B2 (en) * | 2021-06-09 | 2024-02-20 | Western Digital Technologies, Inc. | Managing persistent memory regions across multiple protocols |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599023A (zh) * | 2008-09-08 | 2009-12-09 | 威盛电子股份有限公司 | 电源管理控制器与方法 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5710930A (en) * | 1995-08-04 | 1998-01-20 | Intel Corporation | Apparatus and a method for allowing an operating system of a computer system to persist across a power off and on cycle |
US5912839A (en) | 1998-06-23 | 1999-06-15 | Energy Conversion Devices, Inc. | Universal memory element and method of programming same |
WO2001037066A1 (fr) * | 1999-11-16 | 2001-05-25 | Fujitsu Limited | Processeur d'informations et support lisible par ordinateur |
US7475174B2 (en) | 2004-03-17 | 2009-01-06 | Super Talent Electronics, Inc. | Flash / phase-change memory in multi-ring topology using serial-link packet interface |
US7590918B2 (en) | 2004-09-10 | 2009-09-15 | Ovonyx, Inc. | Using a phase change memory as a high volume memory |
WO2006126134A2 (en) | 2005-05-25 | 2006-11-30 | Nxp B.V. | Portable electronic terminal and method therefor. |
US20070005922A1 (en) | 2005-06-30 | 2007-01-04 | Swaminathan Muthukumar P | Fully buffered DIMM variable read latency |
US20070234028A1 (en) * | 2005-09-15 | 2007-10-04 | Rothman Michael A | Method and apparatus for quickly changing the power state of a data processing system |
US7600078B1 (en) | 2006-03-29 | 2009-10-06 | Intel Corporation | Speculatively performing read transactions |
US7913147B2 (en) | 2006-05-08 | 2011-03-22 | Intel Corporation | Method and apparatus for scrubbing memory |
US7756053B2 (en) | 2006-06-30 | 2010-07-13 | Intel Corporation | Memory agent with error hardware |
US7493439B2 (en) | 2006-08-01 | 2009-02-17 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US7757060B2 (en) | 2006-09-11 | 2010-07-13 | Dell Products L.P. | Reducing wake latency time for power conserving state transition |
WO2008040028A2 (en) | 2006-09-28 | 2008-04-03 | Virident Systems, Inc. | Systems, methods, and apparatus with programmable memory control for heterogeneous main memory |
US20080082752A1 (en) * | 2006-09-29 | 2008-04-03 | Ram Chary | Method and apparatus for saving power for a computing system by providing instant-on resuming from a hibernation state |
JP4748057B2 (ja) * | 2006-12-28 | 2011-08-17 | ソニー株式会社 | 情報処理装置、起動方法、およびプログラム |
US7521372B2 (en) * | 2006-12-29 | 2009-04-21 | Industrial Technology Research Institute | Method of fabrication of phase-change memory |
US8856423B1 (en) * | 2007-04-10 | 2014-10-07 | Marvell International Ltd. | Dual-purpose nonvolatile memory for code and data storage |
US20080270811A1 (en) | 2007-04-26 | 2008-10-30 | Super Talent Electronics Inc. | Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory |
US8429493B2 (en) | 2007-05-12 | 2013-04-23 | Apple Inc. | Memory device with internal signap processing unit |
US7971081B2 (en) * | 2007-12-28 | 2011-06-28 | Intel Corporation | System and method for fast platform hibernate and resume |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
JP4399020B1 (ja) | 2008-08-26 | 2010-01-13 | 株式会社東芝 | 情報処理装置およびメモリ管理方法 |
US8504850B2 (en) * | 2008-09-08 | 2013-08-06 | Via Technologies, Inc. | Method and controller for power management |
JP5448496B2 (ja) * | 2009-02-19 | 2014-03-19 | キヤノン株式会社 | 情報処理装置及びその制御方法 |
US8331857B2 (en) | 2009-05-13 | 2012-12-11 | Micron Technology, Inc. | Wireless interface to program phase-change memories |
US8250282B2 (en) | 2009-05-14 | 2012-08-21 | Micron Technology, Inc. | PCM memories for storage bus interfaces |
US8504759B2 (en) | 2009-05-26 | 2013-08-06 | Micron Technology, Inc. | Method and devices for controlling power loss |
US20100306453A1 (en) | 2009-06-02 | 2010-12-02 | Edward Doller | Method for operating a portion of an executable program in an executable non-volatile memory |
US9123409B2 (en) | 2009-06-11 | 2015-09-01 | Micron Technology, Inc. | Memory device for a hierarchical memory architecture |
US8914568B2 (en) | 2009-12-23 | 2014-12-16 | Intel Corporation | Hybrid memory architectures |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
US20110185208A1 (en) * | 2010-01-28 | 2011-07-28 | Apple Inc. | Memory power reduction in a sleep state |
US20110208900A1 (en) | 2010-02-23 | 2011-08-25 | Ocz Technology Group, Inc. | Methods and systems utilizing nonvolatile memory in a computer system main memory |
KR20110131781A (ko) | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 위치정보의 정확도 확인방법 및 장치 |
US8649212B2 (en) | 2010-09-24 | 2014-02-11 | Intel Corporation | Method, apparatus and system to determine access information for a phase change memory |
US8838935B2 (en) | 2010-09-24 | 2014-09-16 | Intel Corporation | Apparatus, method, and system for implementing micro page tables |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US8462577B2 (en) | 2011-03-18 | 2013-06-11 | Intel Corporation | Single transistor driver for address lines in a phase change memory and switch (PCMS) array |
US8462537B2 (en) | 2011-03-21 | 2013-06-11 | Intel Corporation | Method and apparatus to reset a phase change memory and switch (PCMS) memory cell |
US8607089B2 (en) | 2011-05-19 | 2013-12-10 | Intel Corporation | Interface for storage device access over memory bus |
US8605531B2 (en) | 2011-06-20 | 2013-12-10 | Intel Corporation | Fast verify for phase change memory with switch |
US8463948B1 (en) | 2011-07-01 | 2013-06-11 | Intel Corporation | Method, apparatus and system for determining an identifier of a volume of memory |
US20130275661A1 (en) * | 2011-09-30 | 2013-10-17 | Vincent J. Zimmer | Platform storage hierarchy with non-volatile random access memory with configurable partitions |
US9298606B2 (en) | 2011-09-30 | 2016-03-29 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
WO2013089685A1 (en) * | 2011-12-13 | 2013-06-20 | Intel Corporation | Enhanced system sleep state support in servers using non-volatile random access memory |
CN104011690B (zh) * | 2011-12-29 | 2016-11-09 | 英特尔公司 | 具有直接存取的多级存储器 |
-
2011
- 2011-12-13 CN CN201180075454.XA patent/CN104106057B/zh active Active
- 2011-12-13 US US13/976,903 patent/US9958926B2/en active Active
- 2011-12-13 WO PCT/US2011/064687 patent/WO2013089686A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599023A (zh) * | 2008-09-08 | 2009-12-09 | 威盛电子股份有限公司 | 电源管理控制器与方法 |
Also Published As
Publication number | Publication date |
---|---|
US9958926B2 (en) | 2018-05-01 |
WO2013089686A1 (en) | 2013-06-20 |
US20130283079A1 (en) | 2013-10-24 |
CN104106057A (zh) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104106057B (zh) | 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统 | |
US11054876B2 (en) | Enhanced system sleep state support in servers using non-volatile random access memory | |
CN103946816B (zh) | 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram) | |
CN104115129B (zh) | 用于从处理器到存储器子系统智能刷新数据的系统和方法 | |
CN103946813B (zh) | 基于使用统计量追踪的远存储器访问信号的生成 | |
CN104115136B (zh) | 非易失性随机访问存储器中存储bios的装置、方法和系统 | |
CN103946826B (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
TWI468938B (zh) | 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統 | |
CN103999161B (zh) | 用于相变存储器漂移管理的设备和方法 | |
CN103946812B (zh) | 用于实现多级别存储器分级体系的设备和方法 | |
CN103988183B (zh) | 2级存储器分级结构中的存储器侧高速缓存的动态部分断电 | |
EP3364304B1 (en) | Memory channel that supports near memory and far memory access | |
TWI454915B (zh) | 實施具有不同操作模式之多階記憶體階層的設備與方法 | |
CN104115230B (zh) | 基于高效pcms刷新机制的计算装置、方法和系统 | |
US20140229659A1 (en) | Thin translation for system access of non volatile semicondcutor storage as random access memory |
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 |