首页> 中国专利> 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持

使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持

摘要

在计算机系统中使用非易失性随机存取存储器(NVRAM)来增强对睡眠状态的支持。该计算机系统包括处理器、字节可重写和字节可擦除的非易失性随机存取存储器(NVRAM)以及功率管理(PM)模块。动态随机存取存储器(DRAM)提供系统地址空间的一部分。该PM模块拦截由操作系统发起的进入睡眠状态的请求、将数据从DRAM复制到NVRAM、将系统地址空间的该部分从DRAM映射到NVRAM以及在转变到睡眠状态时关闭DRAM。在出现唤醒事件时,PM模块使控制返回操作系统使得计算机系统在操作系统不知道系统地址空间的该部分已经映射到NVRAM的情况下恢复工作状态操作。

著录项

  • 公开/公告号CN103975287A

    专利类型发明专利

  • 公开/公告日2014-08-06

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201180075452.0

  • 发明设计人 M.J.库马尔;M.K.纳奇姆图;

    申请日2011-12-13

  • 分类号G06F1/32;G06F9/06;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人张金金

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 01:44:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-12

    授权

    授权

  • 2014-09-03

    实质审查的生效 IPC(主分类):G06F1/32 申请日:20111213

    实质审查的生效

  • 2014-08-06

    公开

    公开

说明书

技术领域

本发明的实施例涉及计算机系统;并且更具体地,涉及使用非易失性随机存取存储器对计算机系统中睡眠状态支持的增强。

背景技术

A. 当前存储器和存储配置

对于现今的计算机革新的限制因素之一是存储器和存储技术。在

常规的计算机系统,主存储器典型地由动态随机存取存储器(DRAM)实现。基于DRAM的存储器因为它必须不断地对内部电容器再充电而甚至在未出现存储器读取或写入时也消耗功率。基于DRAM的存储器是易失性的,这意指一旦去除电力,存储在DRAM存储器中的数据也丢失。

近来的研究示出服务器计算机每年使用的电力以令人担忧的速率增加。在2005年,服务器计算机的功耗超出12亿千瓦小时,其代表全世界用电的1%。根据美国能源部提供的统计信息,电的成本在从2000-2007的七年期间已经增加41%。这些统计信息突显对节能的服务器计算机的需要。

按常规,服务器操作系统(OS)和虚拟机监视器(VMM)典型地由于例如延迟要求、在崩溃情况下保留系统状态等各种限制而仅支持系统睡眠状态的子集。典型地,支持的系统睡眠状态包括S1(待命状态)和S5(软关闭状态),如由高级配置和功率接口(ACPI)规范版本4.0a限定。在大的存储器配置中,对S4(休眠状态)的支持可由于进入该状态的高延迟而受到限制。对其他睡眠状态的支持不存在或基于OS、VMM和平台配置而变化。这导致失去了服务器平台上功率节省的机会。

B. 相变存储器(PCM)和相关技术

相变存储器(PCM)(有时也称为PCME、PRAM、PCRAM、双向统一存储器、硫属化物RAM和C-RAM)是非易失性计算机存储器类型,其利用硫属化物玻璃的独特特性。由于电流的通过所产生的热,该材料可以在两个状态之间切换:结晶和非晶。PCM的近期版本可以实现两个额外的截然不同状态,从而有效地使存储器存储能力加倍。

例如,PCM可以在其中快速写是重要的应用中提供高得多的性能,这部分是因为存储器元件可以更快速地切换,并且还因为个体位可变成1或0而不必首先擦除整个单元块(闪速存储器(“闪存”)是这样的情况)。PCM的高性能使其潜在地在非易失性存储器角色(目前由于存储器存取时间而是性能受限的)中非常有益。

另外,尽管PCM设备随着使用而退化,与闪速存储器相比,它们的退化要慢得多。PCM设备可经历近似1亿个写周期。PCM寿命时间受到例如由于在编程期间GeSbTe(GST)热膨胀、金属(和其他材料)迁移和其他机制等机制的限制。

附图说明

本发明通过参考下列描述和附图而最好地理解,这些附图用于图示本发明的实施例。在图中:

图1图示根据本发明的一个实施例的计算机系统,其提供增强睡眠状态支持。

图2图示根据本发明的一个实施例的计算机系统,其在平台存储分级结构的一个或多个层级中使用非易失性存储器随机存取(NVRAM)。

图3图示根据本发明的一个实施例在NVRAM与动态随机存取存储器(DRAM)之间的地址映射的示例。

图4A图示根据本发明的一个实施例进入睡眠状态的计算机系统的方法。

图4B图示根据本发明的一个实施例退出睡眠状态的计算机系统的方法。

具体实施方式

在下列描述中,阐述许多具体细节。然而,应该理解可在没有这些具体细节的情况下实践本发明的实施例。在其他实例中,为了不混淆对本描述的理解,可未详细地示出众所周知的电路、结构和技术。

在说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示描述的实施例可包括特定特征、结构或特性,但每个实施例可不一定包括该特定特征、结构或特性。此外,这样的短语不一定都指相同的实施例。此外,当特定特征、结构或特性连同实施例描述时,认为连同其他实施例(无论是否明确描述)实施这样的特征、结构或特性,这在本领域内技术人员的知识内。

在下列描述和权利要求中,可使用术语“耦合”和“连接”连同它们的派生词。要理解这些术语不规定为是彼此的同义词。“耦合”用于指示彼此可以或可不直接物理或电接触、彼此共同操作或相互作用的两个或以上的元件。“连接”用于指示彼此耦合的两个或以上的元件之间的通信的建立。

加括号的文本以及具有虚线边缘(大的虚线、小的虚线、点划线、点)的框在本文有时用于图示将额外特征添加到本发明的实施例的可选操作/部件。然而,这样的记号不应认为是意指仅存在这些选项或可选的操作/部件,和/或也不应认为是意指具有实线边缘的框在本发明的某些实施例中不是可选的。

下文描述的本发明的实施例增强计算机系统(特别地,服务器计算机)的系统睡眠状态。增强的系统睡眠状态提供明显的功率节省。这些服务器计算机上的现有操作系统可以相对于它们对系统睡眠状态的支持而保持不变。在一个实施例中,通过使用非易失性随机存取存储器(NVRAM)、例如基于相变存储器(PCM)的存储器技术而实现增强。

在一个实施例中,本文描述的计算机系统包括NVRAM和动态随机存取存储器(DRAM)两者作为系统存储器。因为NVRAM是非易失性的,NVRAM中的数据甚至在关闭它的电力供应时保留。存储在DRAM中的数据可以在计算机系统转变到睡眠状态之前复制到NVRAM内,从而允许在系统进入睡眠状态时关闭对DRAM的电力供应。因此,可以节约明显的电量。

图1是图示根据本发明的一个实施例提供增强睡眠状态支持的计算机系统100的框图。在一个实施例中,计算机系统100包括处理器110,其耦合于DRAM 140和NVRAM 130。另外,计算机系统100包括功率管理(PM)模块210,用于管理对于计算机系统100的睡眠状态转变。在一个实施例中,PM模块210包括PM固件230和若干寄存器,例如SLP_EN寄存器211和SLP_TYP寄存器212。还可包括额外的部件,例如逻辑和/或存储器电路。SLP_EN寄存器211和SLP_TYP寄存器212由操作系统(OS)使用来分别指示睡眠启用和睡眠状态的类型。在一个实施例中,睡眠状态类型根据高级配置和功率接口(ACPI)规范版本4.0a来限定。

在一个实施例中,PM固件230存储能由处理器110执行的PM代码来执行睡眠状态转变。在备选实施例中,PM固件230将能由定位在处理器110内的逻辑电路(例如,微控制器、门或其他电路)(未示出)执行的PM代码存储在耦合于处理器110的芯片集中,或在计算机系统100中的别的地方。在检测到睡眠请求时(例如,在由OS设置SLP_EN寄存器211时),PM固件230将DRAM 140的内容复制到NVRAM 130,并且促使关闭对DRAM 140的电力供应。在检测到唤醒事件时(例如,在由OS设置SLP_EN寄存器211时),PM固件230将NVRAM 130中的内容复制回到DRAM 140。因为NVRAM 130能够跨功率循环保留存储内容,供应给DRAM 140的电力可以在睡眠状态中安全地去除而不丢失数据。

应该理解,如在图1中示出的PM模块210是用于管理睡眠状态转变的电路的逻辑表示。在图1的实施例中,PM模块210定位在耦合于处理器110的芯片集中。在备选实施例中,PM模块210可以定位在超出一个的硬件部件上。例如,PM模块210的第一部分(例如,SLP_EN寄存器211和SLP_TYP寄存器212)可以定位在处理器110和/或I/O子系统芯片集(其耦合于处理器110)内,并且PM模块210的第二部分(例如,PM固件230)可以定位在非易失性存储器设备、例如,NVRAM 130内。还应该理解,在一些备选实施例中,PM固件230的功能性可以由硬件、软件、固件或其组合实现。硬件、软件和固件可定位在相同的硬件部件上,或在不同的硬件部件中。这些备选实施例将参考图2详细描述。

本发明的实施例的一个优势是它未引起对OS的任何改变。相反,PM固件230拦截睡眠状态转变的正常流并且执行功率节省操作。该功率节省还扩展到虚拟机系统,其中计算机系统托管多个虚拟机。虚拟机中的每个可以独立于其他虚拟机而进入睡眠状态。PM固件230可以拦截对于每个虚拟机的睡眠状态转变的正常流,而不引起对系统中的虚拟机监视器(VMM)的任何改变。在下列描述中,术语“OS”用于描述负责系统资源分配的系统软件。应该理解,在虚拟机系统中,下面的描述中的术语“OS”可以被“VMM”取代。

图2是图示在平台存储分级结构的一个或多个层级中使用字节可寻址NVRAM 130的计算机系统200的框图。本文的术语“平台存储分级结构”指的是由计算机系统200使用以用于存储数据、指令、状态和其他持久和非持久信息的整个存储介质。在一个实施例中,计算机系统 200中的所有持久存储可以采用可配置的方式并入一个NVRAM 130内。另外,NVRAM 130的某一部分可以作为对于系统存储器的DRAM替换而分配。NVRAM 130的通用性促进从具有OS(其在持久的面向块的文件系统上操作)的常规平台到理解完全持久、字节可寻址、单级数据存储的OS的技术迁移。

在一个实施例中,NVRM 130可以配置成在典型的平台存储分级结构中实现角色为以下中的一个或多个:高速缓存、系统存储器(也称为主存储器、第一级存储器、可执行存储器)、存储(也称为辅助存储和大容量存储)和固件存储器(例如启动存储器(也称为BIOS闪存)、可信平台模块(TPM)存储器,及类似物)。也预想具有不同角色的平台存储分级结构并且NVRAM 130的应用不限于上文描述的角色。

NVRAM 130从它的特性和/或它在平台存储分级结构中的应用方面能与其他指令和数据存储器/存储技术区分。例如,NVRAM 130与以下不同:

1)作为专用于处理器核或被多个处理器核所共享的高速缓存而应用的静态随机存取存储器(SRAM);

2)作为处理器内部(例如,在与处理器相同的芯片上)和/或处理器外部(例如,在与处理器相同或不同的封装件上)的一个或多个高速缓存而应用的更高速存储器(例如,动态随机存取存储器(DRAM));

3)作为驱动存储而应用的闪速存储器/磁盘/光盘;和作为启动ROM而应用的例如闪速存储器或只读存储器(ROM)等存储器。

在本发明的一个实施例中,NVRAM(例如,NVRAM 130)具有下列特性:

1)非易失性的(它维持它的内容,即使去除电力也如此,这与在固态盘(SSD)中使用的闪速存储器相似,并且与易失性的SRAM和DRAM不同);

2)比例如SRAM和DRAM等易失性存储器要低的功耗;

3)随机存取(也称为随机可寻址);

4)以比在SSD中发现的闪存更低的粒度级(字节级)而可重写和可擦除(其每次仅可以对“块”重写和擦除-在大小上对于NOR闪存最小是64千字节并且对于NAND闪存是16千字节);

5)可用作系统存储器并且被分配系统地址空间中的全部或一部分;

6)能够通过总线使用事务协议(支持事务标识符(ID)来区分不同的事务使得那些事务可以无序完成的协议)而耦合于处理器并且允许以小到足以支持作为系统存储器(例如,高速缓存行大小,例如64或128字节)的NVRAM的操作的粒度级来访问。例如,总线可以是存储器总线(例如,DDR总线,例如DDR3、DDR4,等),通过该存储器总线运行事务协议,如与通常使用的非事务协议相对。作为另一个示例,总线可以是通过其正常运行事务协议(本地事务协议)的总线,例如PCI高速(PCIE)总线、台式机管理接口(DMI)总线,或利用事务协议和足够小的事务有效载荷大小(例如,高速缓存行大小,例如64或128字节)的任何其他类型的总线;以及

7)以下中的一个或多个:

a)比当前非易失性存储器/存储技术(例如闪存)更快的写速度;

b)非常高的读速度(比闪存更快并且接近或等于DRAM读速度);

c)直接可写(而不需要在像SSD中使用的闪速存储器的写数据之前擦除(以1s来覆写));和/或

d)在失效之前更高数量级(例如,2或3)的写寿命(超出在SSD中使用的启动ROM和闪存)。

如上文提到的,与闪速存储器(其必须一次重写和擦除完整的“块”)相比,在任何给定实现中访问NVRAM所采用的粒度级可取决于特定存储器控制器和特定存储器总线或NVRAM所耦合的其他类型的总线。例如,在一些实现(其中NVRAM 130用作系统存储器)中,尽管有以字节的粒度访问的固有能力,可在高速缓存行的粒度(例如,64字节或128字节高速缓存行)访问NVRAM,因为高速缓存行是存储器子系统访问存储器时所采用的级别。从而,当NVRAM部署在存储器子系统内时,可以与在相同的存储器子系统中使用的DRAM(例如,“近存储器”) 相同的粒度级访问它。即使如此,由存储器控制器和存储器总线或其他类型的总线对NVRAM的访问粒度级小于闪存所使用的块大小和I/O子系统的控制器和总线的访问大小的粒度级。

NVRAM 130可用作指令和数据存储,其具有足够短的访问时间要求来对处理器产生很少的影响。在这里,程序指令和数据可在由处理器执行之前从更深的闪存/磁/光学大容量存储152加载到NVRAM 130内。此外,如在下文详细描述的,NVRAM 130可被置于存储器总线上并且可直接与存储器控制器通信,存储器控制器进而直接与处理器通信。

存在对于NVRAM 130的新的存储器技术提供很多新的可能性。尽管在下文进一步以大得多的长度论述,这些可能性中的一些在下文立即快速突出。

根据一个可能的实现,NVRAM 130充当对系统存储器中的传统DRAM技术的全替换或补充。在一个实施例中,NVRAM 130代表第二级系统存储器(例如,系统存储器是DRAM 140和NVRAM 130中的一些或全部的组合)的引入。如此,系统存储器可视为具有近存储器部分NM 141A和远存储器部分FM 142。意识到在不同的实施例中,近存储器可以充当存储器侧高速缓存、便签式存储器和与系统存储器不同的其他角色。

根据一些实施例,NVRAM 130提供NVRAM存储,其充当对传统大容量存储(例如闪存/磁/光学大容量存储152)的全替换或补充。在申请中的术语“传统的大容量存储”指的是基于光学、磁和/或闪存技术的大容量存储,例如盘和闪速存储器。为了论述的简单性,闪存/磁/光学大容量存储152也称为传统的大容量存储152。从而,对于计算系统200的非易失性大容量存储可使用NVRAM、闪速存储器、磁存储或其任何组合来实现。在其中NVRAM存储150充当对传统大容量存储152的全替换的实施例中,不必使用存储驱动器用于块可寻址存储访问。存储驱动器开销从存储访问的去除可以增加访问速度并且节省功率。在其中期望NVRAM存储150对于OS和/或应用显示为块可寻址并且不能与传统的大容量存储152区分的备选实施例中,模拟的存储驱动器可以用于向用于访问NVRAM存储150的软件呈现块可寻址接口(例如,通用串行总线(USB)仅批量传输(BOT)1.0、串行高级技术附件(SATA)3.0及类似物)。即,在这些备选实施例中,NVRAM 130的字节可寻址性可以由存储驱动器使用来移动NVRAM存储150的块并且模拟块可访问大容量存储而不产生I/O接口的成本。

根据一些实施例,NVRAM 130提供固件存储器。在图2的实施例中,仅示出BIOS NVRAM 160和TPM NVRAM 170。应该理解,还可以包括其他固件分区。这些固件分区充当对例如BIOS闪存162和TPM闪存172等固件存储器的全替换或补充。固件存储器通常用闪存技术来实现并且通常存储由处理器执行的初始指令(例如,BIOS)以在启动过程期间使关键系统部件初始化。固件存储器还可以存储由TPM 134使用来保护敏感系统信息(例如,加密密钥)的系统持久状态。在一个实施例中,对固件存储器使用NVRAM 130去除了对存储代码和数据(其对于系统操作是关键的)的第三方闪存部件的需要。

应理解NVRAM 130可以包括比在图2中示出的更多或更少的分区。例如,NVRAM 130可以包括充当持久存储器的分区。该持久存储器是这样的存储器类型,其可直接被处理器进行字节寻址用于读和写;然而,与易失性存储器不同,对存储器的写入跨平台功率周期而保留。在其中闪存设备或其他非易失性设备用于存储BIOS和/或TPM的一些实施例中,可不必包括BIOS闪存162和/或TPM闪存172作为NVRAM 130的一部分。

存储器和存储设备的选择可取决于使用设备所在的平台的类型。例如,在个人计算机、平板计算机、笔记本计算机、移动设备(例如,智能电话或PDA)中,非易失性大容量存储可单独使用NVRAM存储150或使用NVRAM存储150结合闪存/磁存储来实现。在其他实现(例如,大型服务器)中,非易失性大容量存储可使用磁存储(例如,硬驱动器)或磁存储、闪存和NVRAM存储150的任何组合来实现。在这样的情况下,负责存储的计算机系统硬件和/或软件可实现各种智能持久存储分配技术以采用高效或另外有用的方式在FM 142/NVRAM存储150和传统的大容量存储152之间分配持久程序代码和数据块。在一些实施例中,NVRAM 130可变成片外的唯一存储器/存储设备(即,处理器芯片外)。在一些实施例中,DRAM 140可用于提供片上存储器(例如,近存储器141B)来代替片外DRAM 140,或对片外DRAM 140的补充,DRAM 140可用于提供片上存储器(例如,近存储器141B)。这些实施例可以专门与非常小的平台(例如,智能电话或PDA)相关,其中多个存储器类别/技术可成本高昂并且更多的晶体管(其包括存储)可以置于芯片上。

NVRAM 130可包含“损耗均衡”算法来考虑远存储器级处的存储单元在太多写访问之后开始耗损这一事实。因为高的循环计数块最可能采用该方式耗尽,损耗均衡通过用低循环计数块来交换高循环计数块的地址而将写跨远存储器单元扩展。注意大部分的地址交换因为它由硬件、软件(例如,低级驱动器或操作系统)或其组合处理而典型地对于最终用户是透明的。

在一个实施例中,NVRAM 130可以用例如PCM或更具体地PCMS(也称为(PRAM或PCRAM))、双向统一存储器(OUM)、(CRAM)等非易失性随机存取存储器来实现。对于远存储器的其他可能的技术选择包括但不限于,字节可寻址持久存储器(BPRAM)、存储类存储器(SCM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻存储器(RRAM)、RESET(非晶)单元、SET(结晶)单元、PCME、Ovshinsky、铁电存储器(也称为聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(也称为自旋电子(Spintronics)、SPRAM(自旋转移扭矩RAM)、STRAM(自旋遂穿RAM)、磁阻、磁存储器和磁性随机存取存储器(MRAM))和半导体-氧化物-氮化物-氧化物-半导体(SONOS,也称为介电存储器)。

为了便于解释,申请的剩余部分中的大部分有时指“PCM”或“PCMS”作为对于NVRAM 130的技术选择。如此,术语NVRAM、PCM和PCMS可在下列论述中能互换地使用。然而,应该认识到,如上文论述的,不同的技术还也可用于NVRAM 130。

然后继续图2的系统的论述,尽管为了简单起见在图2中图示单个处理器110,在一些实施例中,计算机系统200的架构可包括多个处理器。处理器110可以是任何类型的数据处理器,其包括通用或专用中央处理单元(CPU)、专用集成电路(ASIC)或数字信号处理器(DSP)。例如,处理器110可以是通用处理器,例如Core? i3、i5、i7、2 Duo和Quad、Xeon?或Itanium?处理器,其中的全部从加利福尼亚州Santa Clara的Intel公司可获得。备选地,处理器110可来自另一个公司,例如加利福尼亚州Sunnyvale的ARM Holdings, Ltd,加利福尼亚州Sunnyvale的MIPS技术等。处理器110可以是专用处理器,例如网络或通信处理器、压缩引擎、图形处理器、协同处理器、嵌入式处理器或类似物。处理器110可在一个或多个封装件内包括的一个或多个芯片上实现。使用许多工艺技术(例如BiCMOS、CMOS或NMOS)中的任一个,处理器110可以是一个或多个衬底的一部分和/或可在一个或多个衬底上实现。

在一个实施例中,处理器110包括集成图形单元111,其包括用于执行例如3D或2D图形命令等图形命令的逻辑。尽管本发明的实施例不限于任何特定集成图形单元111,在一个实施例中,图形单元111能够执行工业标准图形命令,例如由Open GL和/或Direct X应用编程接口(API)(例如,OpenGL 4.1和Direct X 11)所规定的那些。

尽管为了清楚起见再次在图2中图示单个核112,处理器110还可包括一个或多个核112。在许多实施例中,核112包括内部功能块,例如一个或多个执行单元、引退单元、一组通用和特定寄存器等。如果核112是多线程或超线程的,则每个硬件线程也可视为“逻辑”核。核112从架构和/或指令集方面是同构或异构的。例如,核中的一些可按顺序而其他则无序。作为另一个示例,核中的两个或以上可能够执行相同的指令集,而其他可能够仅执行该指令集的子集或不同的指令集。

处理器110还可包括一个或多个高速缓存,例如高速缓存113,其可实现为SRAM和/或DRAM。在未示出的许多实施例中,实现除高速缓存113以外的额外高速缓存,使得在核112中的执行单元与存储器设备141A和142之间存在多级高速缓存。例如,共享高速缓存单元集可包括上级高速缓存,例如级1(L1)高速缓存、中间级高速缓存(例如级2(L2)、级3(L3)、级4(L4))或其他级高速缓存、最后的级的高速缓存(LLC)和/或其不同组合。在不同的实施例中,高速缓存113可采用不同的方式分配并且在不同的实施例中可以具有许多不同大小中的一个。例如,高速缓存113可以是8兆字节(MB)高速缓存、16MB高速缓存等。另外,在不同的实施例中,高速缓存可以是直接映射高速缓存、全关联高速缓存、多向组关联高速缓存(multi-way set-associate cache)或具有另一个类型的映射的高速缓存。在包括多个核的其他实施例中,高速缓存113可包括所有核之中共享的一个大的部分或可分成若干单独功能片(例如,每个核一片)。高速缓存113还可包括在所有核之间共享的一个部分和若干其他部分(其是每核的单独功能片)。在一个实施例中,高速缓存113可包括充当高速缓存的DRAM NM 141B。

处理器110还可包括归属代理114,其包括协调并且操作核112的那些部件。该归属代理单元114可包括例如功率控制单元(PCU)和显示单元。PCU可以是用于调节核112和集成图形单元111的功率状态所需要的逻辑和部件或包括它们。显示单元用于驱动一个或多个外部连接的显示器。

在一些实施例中,处理器110包括集成存储器控制器(IMC)131,用于提供接口用于与存储器和存储子系统280通信。更具体地,在一个实施例中,IMC 131包含用于从DRAM设备140读取、写入和刷新DRAM设备140所必需的逻辑。IMC 131可以在与处理器110相同的芯片上,或在连接到处理器110的单独芯片和/或封装件上。

在一些实施例中,处理器110耦合于I/O子系统115。I/O子系统115实现处理器110与下面的串行或并行I/O设备之间的通信:一个或多个网络136(例如局域网、广域网或因特网)、存储I/O设备(例如闪存/磁/光学大容量存储152、BIOS闪存162、TPM闪存172)和一个或多个非存储I/O设备137(例如显示器、键盘、扬声器及类似物)。I/O子系统115可包括平台控制器中枢(PCH)(未示出),其进一步包括若干I/O适配器138和其他I/O电路用于提供对存储和非存储I/O设备和网络的访问。为了实现此,I/O子系统115可对于所利用的每个I/O协议具有至少一个集成I/O适配器138。I/O子系统115可以在与处理器110相同的芯片上,或在连接到处理器110的单独芯片/封装件上(如由指示单独芯片/封装件250的虚线示出的)。

I/O适配器138将在处理器110内利用的主机通信协议转化成与特定I/O设备兼容的协议。除其他外,对于传统的大容量存储152,I/O适配器138可转化的协议中的一些还包括外围部件互连(PCI)-高速3.0、通用串行总线(USB)3.0、串行高级技术附件(SATA)3.0、小型计算机系统接口(SCSI)、廉价冗余盘阵列(RAID)和1394“Firewire”。除其他外,对于BIOS闪存162,I/O适配器138可转化的协议中的一些包括串行外围接口(SPI)、微细线。另外,可存在一个或多个无线协议I/O适配器。除其他外,无线协议的示例是Bluetooth 4.0、基于IEEE 802.11的无线协议和蜂窝协议。

在一些实施例中,I/O子系统115还包括管理引擎(ME)135,其是允许系统管理员监视、维护、更新、升级和维修计算机系统200的微处理器(等同地,微控制器)。在一个实施例中,系统管理员可以经由网络136通过ME 135来远程配置计算机系统200。在一个实施例中,配置可以存储在处理器110内的解码表133中。解码表133可以由IMC 131和I/O子系统115读取,其然后决定应将数据访问请求指示到哪里。

在一些实施例中,芯片集250包括可信平台模块(TPM)134,用于控制对系统持久状态(例如安全数据、加密密钥、平台配置信息及类似物)的访问。在一个实施例中,这些系统持久状态存储在TPM NVRAM 170中,其可以用基于PCM的存储器(例如PCMS)来实现。在图2中示出的实施例中,TPM NVRAM 170是NVRAM 130的一部分。

在一个实施例中,TPM 134是具有加密功能性的安全的微控制器。TPM 134具有若干信任相关能力;例如,用于确保受TPM保护的数据仅对于相同的TPM可用的“密封”能力。TPM 134可以使用它的加密能力来保护数据和密钥(例如,机密)。在一个实施例中,TPM 134具有唯一且机密的RSA密钥(其基于由Ron Rivest, Adi Shamir和Leonard Adleman开发的RSA算法而生成),其允许它验证硬件设备和平台。例如,TPM 134可以证实试图访问存储在计算机系统200中的数据的系统是预期系统。TPM 134还能够报告平台(例如,计算机系统200)的完整性。这允许外部资源(例如,网络上的服务器)确定平台的可信赖度但未阻止用户对平台的访问。在一个实施例中,TPM 134包括用于与NVRAM 130通信的NVRAM接口。

在一个实施例中,ME 135和TPM 134可以定位在处理器110外部并且耦合于处理器110的一个或多个芯片集(例如,芯片集250)上。这些芯片集配置可以适合于服务器平台。在备选实施例中,ME 135和TPM 134可以定位在采用片上系统(SOC)配置的处理器110内。SOC配置适合于移动平台和其他便携式系统。

应理解计算机系统可以利用NVRAM 130用于系统存储器、大容量存储、固件存储器和/或其他存储器和存储目的,即使它的处理器不具有上文描述的处理器110的部件中的全部或具有比处理器110更多的部件也如此。

在一个实施例中,计算机系统200包括NVRAM 接口132,用于控制对NVRAM 130的数据访问。NVRAM 接口132耦合于IMC 131和I/O子系统115。NVRAM接口132可以从解码表133读取配置数据,或备选地,可以依靠从IMC 131和I/O子系统115传递的解码结果。在其中NVRAM 130用PCMS来实现的实施例中,NVRAM接口132是PCMS接口,其利用与PCMS技术一致的协议来执行字节级访问。尽管IMC 131和NVRAM控制器132可以是两个分离的控制器(如在图2中用使这两个控制器分离的虚线示出的),在一些实施例中,这两个控制器可以实现为一个组合控制器来控制对存储器和存储的访问。在备选实施例中,NVRAM控制器132可以定位在NVRAM 130内来控制对NVRAM存储器单元的访问。在这些备选实施例中,NVRAM接口(未示出)可以在处理器芯片上提供来与NVRAM 130接口。

在图2中,示出NVRAM控制器132使用三个单独线连接到FM 142、NVRAM大容量存储150和BIOS NVRAM 160。然而,这不一定意指存在使NVRAM控制器132连接到NVRAM 130的这些部分的三个单独物理总线或通信通道。相反,在一些实施例中,公共存储器总线或其他类型的总线用于使NVRAM控制器132通信地耦合于FM 142、NVRAM大容量存储150和BIOS NVRAM 160。例如,在一个实施例中,图2中的三个线代表总线,例如存储器总线(例如,DDR3、DDR4,等),NVRAM控制器132通过该总线实现事务协议来与NVRAM 130通信。NVRAM控制器132还可通过支持本地事务协议的总线、例如PCI高速(PCI-E)总线、台式机管理接口(DMI)总线或利用事务协议的任何其他类型的总线来与NVRAM 130通信。

在一些实施例中,NVRAM 130可以经由高速链路而耦合于处理器110,该高速链路遵循与处理器间协议(例如,超传输3.0、快速路径互连(QPI)1.1和它的变化形式,及类似物)相同的协议。在这些实施例中,NVRAM控制器132可以使用为这些高速链路限定的协议而与NVRAM 130通信。

在如在图2中示出的一个实施例中,PM固件230定位在NVRAM 130内。在一些实施例中,PM固件230可以定位在BIOS NVRAM 160内。备选地,PM固件模块230可以定位在可由处理器110访问的任何非易失性存储器中。寄存器SLP_EN 211和SLP_TYPE 212示出为定位在芯片集250内(例如,在I/O子系统115内)。备选地,SLP_EN 211和SLP_TYPE 212可以定位在可由处理器110访问的任何硬件部件内(例如,在处理器110或其他处理器可访问的模块内)。在备选实施例中,计算机系统200可以包括硬件(例如,PM硬件236或其他硬件逻辑)、软件(能由处理器110或其他微控制器执行)、固件(例如,PM固件230或其他固件逻辑)或其组合来管理计算机系统200的睡眠状态。

已经描述根据本发明的实施例实现功率管理的平台,下面是根据本发明的实施例被执行来增强系统睡眠状态的功率管理操作的描述。

图3是图示根据本发明的一个实施例在DRAM 140与NVRAM 130之间的地址空间映射的示例的框图。在一个实施例中,图2的计算机系统200(或图1的计算机系统100)的系统地址空间连续地跨地址0到地址Max。在该示例中,系统地址空间0-X由DRAM 140支持,并且系统地址空间的高端由NVRAM 130支持。在计算机系统200转变到需要保留存储器上下文的睡眠状态之前,PM固件230将DRAM 140中的数据复制到NVRAM 130(例如,图2的FM 142区域,其配置成系统存储器)的地址空间内。在计算机系统200转变离开睡眠状态之后,PM固件230将NVRAM 130中的数据复制回到DRAM 140的地址空间内。因为NVRAM 130的容量大体上比DRAM 140的大得多,NVRAM 130可以容易适应DRAM 140的内容中的全部而不丢失任何数据。

在睡眠状态转变期间将数据从DRAM复制到NVRAM的机制不仅节省电力而且还提高存储器内容的可靠性。因为DRAM内容复制到NVRAM 130内,DRAM 140可以在睡眠状态期间关闭。同时,也可以安全地关闭巡查擦除而不丢失任何数据。巡查擦除典型地在后台中执行来证实存储器内容的正确性(例如通过使用纠错码)。在具有进入例如S1或S3等睡眠状态的DRAM存储器的常规系统中,关闭巡查擦除。如果系统在延长时间中留在睡眠状态,可丢失一些数据,这是可能的。通过如本文描述的那样将DRAM数据复制到NVRAM 130内,因为NVRAM 130是非易失性的,不需要巡查擦除。因此,数据可以持续比它在DRAM 140中的更长的时间保留在NVRAM 130中。

应理解,使用PM模块210用于管理睡眠状态转变独立于存储器和存储子系统280的配置。更具体地,计算机系统200可以执行本文描述的功率管理技术,而不管存储器和存储子系统280是否包括比在图2中示出的更多的存储器设备,和/或在NVRAM 130内包括比在图2中示出的更多或更少的分区。在下列描述中,计算机系统200的这些备选实施例统称为“计算机系统200的变化形式”。图4A是图示根据本发明的一个实施例管理到睡眠状态的转变的方法400的流程图。图4B是图示根据本发明的一个实施例管理转变离开睡眠状态的方法450的流程图。方法400和450可以如之前描述的那样由图1的计算机系统100、图2的计算机系统200或它的变化形式执行。为了描述的简单性,图4A和4B的流程图的操作将参考图2的实施例描述。然而,应理解流程图的操作可以由图2的实施例以及除在这些图中示出的那些以外的实施例执行。另外,参考图2论述的实施例可以执行与参考图4A和4B的流程图论述的那些不同的操作。

为了论述的简单性,方法400和450的操作描述为由PM固件230执行。然而,应该理解,这些操作可以由硬件(例如,PM硬件236或其他硬件逻辑)、软件(能由处理器110或其他微控制器执行)、固件(例如,PM固件230或其他固件逻辑)或其组合执行。

在一个实施例中,PM固件230拦截对SLP_EN寄存器211的写操作(框401)。该写操作可以由OS响应于在内部生成的事件或外部生成的命令而发起。根据本发明的实施例的写操作的拦截暂时阻止平台硬件处理睡眠状态转变。相反,PM固件230控制执行流来执行在下文在框402-405中描述的操作。在一些实施例中,“控制执行流”意指编程到PM固件230内的代码(例如,指令)由处理器210或硬件电路执行。当PM固件230控制执行流时,OS可能不知道正执行的操作。

当OS发起对SLP_EN寄存器211的写操作时,OS还可以将请求的睡眠类型写入SLP_TYPE寄存器211来规定请求的睡眠类型。该请求的睡眠类型规定这样的睡眠状态,其需要在睡眠与唤醒状态之间保留存储器上下文。在拦截(例如,俘获)对SLP_EN寄存器211的写请求时,PM固件230将DRAM 140地址空间中的内容复制到NVRAM 130(框402)。然后关闭对于DRAM 140的电力(框403)。PM固件230将系统地址空间映射到NVRAM 133的包含DRAM内容的区域(框404)。PM固件230然后向SLP_EN寄存器211发出命令来向负责执行睡眠状态转变操作的平台硬件发送进入睡眠状态的请求(框405)。平台硬件然后处理睡眠状态转变(例如,关闭平台设备和平台)并且计算机系统200进入请求的睡眠状态(框406),而没有电力供应给DRAM 140。

随后,参考图4B,出现唤醒事件。对于一些睡眠状态(例如S1和S3),唤醒事件促使处理器110启动平台硬件和系统软件。在OS控制平台之前,PM固件230拦截唤醒事件(框421)并且调度反向复制(copy-back)操作来将DRAM内容从NVRAM 130复制回到DRAM 140(框422)。PM固件230然后向OS返回控制(框423)。OS继续使用NVRAM 130中的数据来运行而不使用DRAM 140,不知道被映射到DRAM 140的系统存储器空间的该部分现在被映射到NVRAM 130。一完成框422的反向复制操作,触发固件事件(框424)。在其中硬件(例如,PM硬件236)用于管理睡眠状态转变的实施例中,触发硬件事件而不是固件事件。响应于该事件,PM固件230将系统地址空间(其在框404中映射到NVRAM 130)重新映射到DRAM 140(框425)。计算机系统200从而返回工作状态,其是在它进入睡眠状态之前的状态(框426)。

在备选实施例中,在框421(其中PM固件230在OS控制平台之前拦截唤醒事件)处,PM固件230将DRAM内容从NVRAM 130复制回到DRAM 140并且然后向OS返回控制。

如上文描述的,本发明的实施例可以有益于对例如S1和S3等睡眠状态没有支持或具有有限支持的服务器计算机。本发明的实施例允许关闭对系统存储器的DRAM部分的电力,而不管请求哪个睡眠状态。利用NVRAM而保存DRAM中的数据。数据复制操作可以对于OS(或虚拟机系统中的VMM)透明地执行。

本发明的实施例还可以使服务器系统能够更好地利用S4睡眠状态。在常规的服务器系统中,DRAM可以是大约兆兆字节(terabyte)。将DRAM内容复制到盘并且使内容恢复回到DRAM存储器可花费大约若干秒。该长延迟使S4睡眠状态实际上在服务器系统中不可用。然而,利用如本文描述的NVRAM支持的系统,DRAM占用空间比NVRAM小得多,并且OS可以在无需立即要求将数据从NVRAM复制回到DRAM的情况下离开睡眠状态。因此,阻碍S4在常规服务器中的使用的延迟可以明显减少。

在图4A和4B的流程图中示出的技术可以使用存储在非暂时性机器可读或计算机可读介质上的指令或数据来实现,例如非暂时性机器可读或计算机可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪速存储器设备;和相变存储器)。

本发明的实施例还可作为计算机程序产品而提供,该计算机程序产品可包括具有存储在其上的指令的非暂时性机器可读介质,这些指令可用于对计算机(或其他电子设备)编程来执行进程。非暂时性机器可读介质可包括,但不限于,软盘、光盘、CD-ROM和磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、传播介质或适合于存储电子指令的其它类型的介质/机器可读介质。本发明的实施例还可作为计算机程序产品而下载,其中程序可通过在载波或其他传播介质中包含的数据信号的方式经由通信链路(例如,调制解调器或网络连接)而从远程计算机(例如,服务器)传输到请求计算机(例如,客户端)。

尽管已经从若干实施例方面描述本发明,本领域内技术人员将认识到本发明不限于描述的实施例、可以采用在附上的权利要求的精神和范围内的修改和更改来实践。本描述从而视为说明性而非限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号