具有包含可配置分区的非易失性随机访问存储器的平台储存层次结构的制作方法

文档序号:6485197阅读:177来源:国知局
具有包含可配置分区的非易失性随机访问存储器的平台储存层次结构的制作方法
【专利摘要】非易失性随机访问存储器(NVRAM)被用于计算机系统中以执行平台储存层次结构中的多个角色。NVRAM可由处理器字节寻址并且能够被配置成一个或多个分区,其中每个分区实现平台储存层次结构的不同层。NVRAM能够被用作能够在没有储存器驱动器的情况下被访问的大容量储存器。
【专利说明】具有包含可配置分区的非易失性随机访问存储器的平台储存层次结构
【技术领域】
[0001]本发明的实施例涉及计算机系统;并且更具体地,涉及计算机系统的平台储存层次结构中的字节可寻址的非易失性存储器(memory )的使用。
【背景技术】
[0002]A.目前的存储器和储存器(stora职)配置
现在,针对计算机创新的限制因素之一是存储器和储存器技术。在常规的计算机系统中,系统存储器通常由动态随机访问存储器(DRAM)来实现。基于DRAM的存储器即使在不发生存储器读或写时也消耗功率,原因在于其必须不断地对内部电容器进行再充电。基于DRAM的存储器是易失性的,这意味着一旦关断电源,就会丢失在DRAM存储器中存储的数据。
[0003]关于大容量储存器,常规的大容量储存器设备通常包括非易失性磁介质(例如,硬盘驱动器)和/或闪速存储器(也称为“闪速”)(例如,固态驱动器(SSD))。这些储存器设备是块可寻址的,这意味着不能单独地访问储存器的单个字节。更确切地,字节作为数据的多字节(例如,16字节)块被写和读。通常,这些储存器设备被认为是I/O设备,原因在于其由处理器通过实现各种I/O协议的各种I/O适配器来访问。这些I/O适配器和I/O协议消耗大量的功率并且能够具有对平台的形状因数和管芯(die)面积的显著影响。另外地,对于具有有限电池寿命的便携式或移动设备(例如,平板计算机、摄像机和移动电话)而言,其储存器设备(例如,嵌入式多媒体卡(eMMC)和安全数字(SD)卡)通常经由低功率互连和I/O控制器耦合到处理器,以便满足活动和空闲的功率预算。这些互连和I/O控制器不能一致地交付针对满足用户体验所需的带宽。
[0004]关于固件存储器,常规的计算机系统通常使用闪速存储器设备来存储经常读但很少(或从不)写的持久系统信息。例如,基本输入和输出系统(BIOS)图像通常存储在闪速存储器设备中。当前可在市场中获得的闪速存储器设备通常具有有限的速度(例如,50MHz)。该速度因用于读协议(例如,2.5MHz)的开销而进一步降低。为了加快BIOS运行速度,常规的处理器通常在引导过程的可预扩展固件接口(PEI)阶段期间,对BIOS代码的部分进行高速缓存。然而,处理器高速缓存具有非常有限量的容量。因而,能够被用于初始系统配置的BIOS代码的量也非常有限。处理器高速缓存的大小限制对被用于PEI阶段(也称为“PEIBIOS代码”)中的BIOS代码的大小施加了显著的局限。因而,不能容易地扩展PEI BIOS代码来支持存储器配置和多个处理器家族的大混合。随着针对利用各种技术和多个处理器家族而实现的处理器、过程互连、存储器和储存器的初始化的增长需求,针对更通用的PEIBIOS代码的需要也增长。一种解决方案是构建用于对代码进行高速缓存的更大型的处理器高速缓存。然而,处理器高速缓存的大小不能在不具有对系统的其余部分的负面影响的情况下容易地增加。
[0005]B.相变存储器(PCM)和相关技术 相变存储器(PCM)(有时也称为PCME、PRAM、PCRAM、双向统一存储器、硫属化合物RAM和C-RAM)是一种利用硫属化合物玻璃的独特特性的非易失性计算机存储器。由于因电流的经过而产生的热量,该材料能够在两种状态之间切换:晶体和非晶体。PCM的近期版本能够实现两种附加的不同状态,从而使存储器储存容量翻倍。PCM是在非易失性角色中与闪速存储器竞争的许多新存储器技术之一。闪速存储器具有这些替换希望解决的许多实用问题。
[0006]例如,PCM能够在其中快速地写是重要的应用中提供高得多的性能,部分是因为能够更快地切换存储器单元,并且还因为可以在不需要首先擦除整个单元块的情况下将单独的位改变为I或O (与闪速的情况一样)。PCM的高性能使其在目前因存储器访问定时而性能受限的非易失性存储器角色中潜在地很有利。
[0007]另外地,虽然PCM设备随使用而退化(像闪速一样),但其退化得慢得多。PCM设备可以幸存大约I亿个写周期。PCM寿命被以下机制所限制,诸如由于编程期间的GST热膨胀引起的退化、金属(和其它材料)迁移、以及其它机制。
【专利附图】

【附图说明】
[0008]本发明可以通过参考被用来说明本发明的实施例的以下描述和附图来最好地理解,在所述附图中:
图1图示根据本发明的一个实施例的使用平台储存层次结构的一个或多个层中的非易失性存储器随机访问(NVRAM)的计算机系统。
[0009]图2图不根据本发明的一个实施例的将NVRAM用作用于传统的非易失性大容量储存器和固件存储器的总的替换的计算机系统。
[0010]图3图示根据本发明的一个实施例的对输入地址进行解码的解码逻辑。
[0011]图4图示根据本发明的一个实施例的配置NVRAM设备内的分区的方法。
[0012]图5图示根据本发明的第一个实施例的由图2的NVRAM所提供的储存器与软件之间的接口。
[0013]图6A图示根据本发明的可替代实施例的存储器和储存器子系统。
[0014]图6B图示根据本发明的可替代实施例的存储器和储存器子系统。
[0015]图7图示根据本发明的第二个实施例的由NVRAM所提供的储存器与软件之间的接□。
[0016]图8A图示根据本发明的第三个实施例的由NVRAM所提供的储存器与软件之间的接口。
[0017]图8B图示具有进一步细节的图8A的实施例。
[0018]图9图示根据本发明的第四个实施例的由NVRAM所提供的储存器与软件之间的接□。
【具体实施方式】
[0019]在以下描述中,阐述了许多特定的细节。然而,要理解的是,本发明的实施例可以在不具有这些特定细节的情况下实施。在其它实例中,未详细地示出公知的电路、结构、和技术,以免使本描述的理解晦涩难懂。[0020]在本说明书中,对“ 一个实施例”、“实施例”、“示例性实施例”等的引用指示所描述的实施例可以包括特定的特征、结构、或特性,但每个实施例可以不必都包括该特定的特征、结构、或特性。此外,此类短语不必指代相同的实施例。进一步地,当结合实施例来描述特定的特征、结构、或特性时,无论是否明确地描述,都主张在本领域技术人员的知识内,结合其它实施例来实现此类特征、结构、或特性。
[0021]在以下描述和权利要求中,可以使用术语“耦合”和“连接”与其衍生物。应该理解,这些术语不意为彼此的同义词。“耦合”被用来指示可以或可以不处于彼此直接物理或电气接触的两个或更多元件彼此进行协作或交互。“连接”被用来指示彼此耦合的两个或更多元件之间的通信的建立。
[0022]本文中有时使用加括号的文本和具有虚线边界(例如,大虚线、小虚线、点虚线、点)的块来图示将附加特征添加到本发明实施例的可选操作/组件。然而,此类注释不应视为意味着这些是仅有的选项或可选的操作/组件,和/或具有实线边界的块在本发明的某些实施例中不是可选的。
[0023]以下所描述的本发明的实施例定义能够为NVRAM的使用而实现分层存储器子系统组织的平台配置。如以下详细描述的,存储器层次结构中的NVRAM的使用还能够实现新的使用,诸如扩充的引导空间和大容量储存器实现。
[0024]图1是图示使用平台储存层次结构的一个或多个层中的字节可寻址非易失性随机访问存储器(NVRAM) 130的计算机系统100的框图。本文中术语“平台储存层次结构”指代被计算机系统100用于存储数据、指令、状态、以及其它持久和非持久信息的全部的储存介质。在一个实施例中,计算机系统100中的所有持久的储存器能够采用可配置的方式合并成一个NVRAM 130。另外,NVRAM 130中的某一部分能够被分派为用于系统存储器的DRAM替换。NVRAM 130的通用性促进技术从具有在持久的块导向文件系统上操作的操作系统
(OS)的常规平台迁移到理解完全持久且字节可寻址的单级数据存储的OS。
[0025]在一个实施例中,NVRAM 130能够被配置成将典型平台储存层次结构中的角色实现为以下中的一个或多个:高速缓存、系统存储器(也称为主存储器、初级存储器、可执行存储器)、储存器(也称为二级储存器和大容量储存器)、和固件存储器(诸如,引导存储器(也称为BIOS闪速)、可信平台模块(TPM)存储器、用于存储其媒体访问控制(MAC)地址的千兆位以太网网络完整性控制器(NIC)等)。也考虑具有不同角色的平台储存层次结构,并且NVRAM 130的应用不限于以上所描述的角色。
[0026]NVRAM (例如,NVRAM 130)根据其在平台储存层次结构中的应用和/或其特性而可与其它指令和数据存储器/储存器技术区分。例如,NVRAM不同于:
I)静态随机访问存储器(SRAM),应用为专用于处理器核或由多个处理器核所共享的高速缓存;
2 )更高速存储器(例如,动态随机访问存储器(“DRAM”)),应用为处理器内部(例如,在与处理器相同的管芯上)和/或处理器外部的一个或多个高速缓存(例如,在与处理器相同或不同的封装上);
3)闪速存储器/磁盘/光盘,应用为驱动储存器;以及诸如闪速存储器或只读存储器(ROM)之类的存储器,应用为引导ROM。
[0027]在本发明的一个实施例中,NVRAM具有以下特性: 1)非易失性(即使在关断电源的情况下其也保持其内容,与被用于固态磁盘(“SSD”)中的闪速存储器类似,并且与易失性的SRAM和DRAM不同);
2)比诸如SRAM和DRAM之类的易失性存储器更低的功耗;
3)随机访问(也称为随机可寻址);
4)以比SSD中找到的闪速(一次仅能够重写和擦除一“块”一在大小方面最小为对于NOR闪速而言64千字节并且对于NAND闪速而言16千字节)更低的粒度级别(例如,字节级别)的可重写且可擦除;
5)可用作系统存储器并且被分配系统地址空间的全部或部分;
6)能够使用事务协议(支持事务标识符(ID)以区分不同事务以使得能够无序地完成那些事务的协议)而通过总线耦合到处理器,并且允许以小到足以支持将NVRAM作为系统存储器来操作的粒度级别(例如,诸如64或128字节的高速缓存线大小)的访问。例如,总线可以是通过其来运行与通常所使用的非事务协议相对的事务协议的存储器总线(例如,诸如DDR3、DDR4等的DDR总线)。作为另一个示例,总线可以是通常通过其来运行事务协议(本地事务协议)的总线,诸如PCI高速(PCIE)总线、桌面管理接口(DMI)总线、或利用事务协议和足够小的事务有效载荷大小(例如,诸如64或128字节的高速缓存线大小)的任何其它类型的总线;
7)以下中的一个或多个:
Ca)比当前的非易失性存储器/储存器技术(诸如,闪速)更快的写速度;
(b)非常高的读速度(比闪速更快,并且接近或等价于DRAM读速度);
(c)直接可写(不同于像被用于SSD中的闪速存储器那样的在写数据之前需要进行擦除(利用I来改写));和/或
Cd)故障之前的数量级(例如,2或3)更高的写耐久性(比被用于SSD中的引导ROM和闪速更久)。
[0028]如以上所提到的,对比于一次必须重写和擦除一个完整的“块”的闪速存储器,在任何给定实现中NVRAM被访问的粒度级别可以依赖于特定的存储器控制器和特定的存储器总线或NVRAM耦合到的其它类型的总线。例如,在其中NVRAM 130被用作系统存储器的一些实现中,尽管固有能力是以字节的粒度被访问,但NVRAM也可以以高速缓存线(例如,64字节或128字节高速缓存线)的粒度被访问,原因在于高速缓存线是存储器子系统访问存储器的级别。因而,当在存储器子系统内部署了 NVRAM时,其可以以与被用于相同的存储器子系统中的DRAM (例如,“近存储器”)相同的粒度级别被访问。即使如此,由存储器控制器和存储器总线或其它类型的总线对NVRAM访问的粒度级别也小于由闪速所使用的块大小和I/O子系统的控制器和总线的访问大小的粒度级别。
[0029]NVRAM 130可以被用作具有充分短的访问时间要求而对处理器引起较少影响的指令和数据储存器。本文,程序指令和数据可以在由处理器运行之前,从更深的闪速/磁/光大容量储存器152加载到NVRAM 130中。此外,如以下详细描述的,NVRAM 130可以被置于存储器总线上,并且可以与继而与处理器直接通信的存储器控制器直接通信。
[0030]用于NVRAM 130的新存储器技术的出现提供了很多新的可能性。尽管以下进一步以大得多的长度来讨论,但就在以下快速地突显了这些可能性中的一些。
[0031]根据一个可能的实现,NVRAM 130充当用于系统存储器中的传统DRAM技术的全部的替换或补充。在一个实施例中,NVRAM 130表示第二级系统存储器的引入(例如,作为DRAM 140和部分或全部的NVRAM 130的组合的系统存储器)。照此,系统存储器可以被视为具有近存储器部分NM 141A和远存储器部分FM 142。要领会的是,在不同的实施例中,近存储器能够充当存储器侧的高速缓存(例如,近存储器高速缓存141B)、高速暂存、和与系统存储器不同的其它角色。在本文所描述的实施例中,NVRAM 130的匪141部分仅充当系统存储器以简化讨论。
[0032]根据一些实施例,NVRAM 130提供NVRAM储存器,其充当用于传统大容量储存器(例如,闪速/磁/光大容量储存器152)的全部的替换或补充。本申请中的术语“传统大容量储存器”指代基于光、磁和/或闪速技术的大容量储存器,诸如磁盘和闪速存储器。为了讨论的简单,闪速/磁/光大容量储存器152也被称为传统大容量储存器152。因而,用于计算系统100的非易失性大容量储存器可以使用NVRAM、闪速存储器、磁储存器、或其任何组合来实现。在其中NVRAM储存器150充当用于传统大容量储存器152的全部的替换的实施例中,不必将储存器驱动器用于块可寻址的储存器访问。从储存器访问中移除储存器驱动器开销能够提高访问速度并节约功率。在其中期望NVRAM储存器150对于OS和/或应用而言看起来像块可访问且不可与传统大容量储存器152区分的可替代实施例中,模拟的储存器驱动器能够被用来向软件暴露块可访问接口(例如,通用串行总线(USB)单批量传输(BOT) 1.0、串行高级技术附件(SATA) 3.0等)以供访问NVRAM储存器150。在一些实施例中,NVRAM 130的字节可寻址性能够被最低级别的储存器驱动器用来在不引发I/O接口的成本的情况下移动NVRAM储存器150的块以及模拟块可访问的大容量储存器。
[0033]根据一些实施例,NVRAM 130提供充当用于诸如BIOS闪速162和TPM闪速172之类的固件存储器的全部的替换或补充的BIOS NVRAM 160和TPM NVRAM 170。固件存储器通常利用闪速技术来实现,并且通常存储由处理器运行以在引导过程期间对关键系统组件进行初始化的初始指令(例如,BIOS)。固件存储器还能够存储被TPM 134用来保护敏感系统信息(例如,加密密钥)的系统持久状态。在一个实施例中,用于固件存储器的NVRAM 130的使用消除了第三方闪速部分存储对系统操作而言关键的代码和数据的需要。
[0034]存储器和储存器设备的选择可以依赖于设备被用于其上的平台的类型。例如,在个人计算机、平板计算机、笔记本计算机、移动设备(例如,智能电话或PDA)中,非易失性大容量储存器可以单独使用NVRAM储存器150或结合闪速/磁储存器使用NVRAM储存器150来实现。在其它实现(例如,大规模服务器)中,非易失性大容量储存器可以使用磁储存器(例如,硬盘驱动器)或者磁储存器、闪速、和NVRAM储存器150的任何组合来实现。在此类情况下,负责储存的计算机系统硬件和/或软件可以实现各种智能型持久储存分配技术,以采用高效或其它有用的方式来在FM 142/NVRAM储存器150和传统大容量储存器152之间分配持久程序代码和数据的块。在一些实施例中,NVRAM 130可以变为芯片外(B卩,处理器芯片外)单独的存储器/储存器设备。在一些实施例中,作为芯片外DRAM 140的代替,DRAM可以被用来提供芯片上高速缓存(例如,近存储器高速缓存141B)。这些实施例能够特别地与很小的平台(例如,智能电话或PDA)相关,其中多种存储器类/技术可能是成本过高的,并且更多的晶体管(包括储存器)能够被置于芯片上。
[0035]NVRAM 130可以包含“耗损均衡”算法以考虑以下事实:远存储器级别处的储存单元在太多次写访问之后开始耗尽。因为高周期计数块最可能以该方式而耗尽,所以耗损均衡通过将高周期计数块与低周期计数块的地址进行交换而跨远存储器单元来散布写。注意,通常大多数地址交换对终端用户而言透明,原因在于其由硬件、软件(例如,低级别驱动器或操作系统)、或其组合来处理。
[0036]在一个实施例中,NVRAM 130能够利用非易失性随机访问存储器(NVRAM)来实现,诸如PCM、或更具体地PCMS (也称为(PRAM或PCRAM)、双向统一存储器(0UM)、(CRAM)。用于远存储器的其它可能的技术选择包括但不限于字节可寻址持久存储器(BPRAM)、储存类存储器(SCM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻式存储器(RRAM)、RESET (重置)(非晶体)单元、SET (设置)(晶体)单元、PCME、奥弗辛斯基、铁电存储器(也称为聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(也称为自旋电子、SPRAM (自旋扭矩转换RAM)、STRAM (自旋隧道RAM)、磁阻、磁存储器、和磁随机访问存储器(MRAM))、以及半导体-氧化物-氮化物-氧化物-半导体(S0N0S,也称为介电存储器)。
[0037]为了解释的方便,本申请的大多数剩余部分将有时把“PCM”或“PCMS”称为针对NVRAM 130的技术选择。照此,术语“NVRAM”、“PCM”和“PCMS”可以在以下讨论中可互换地使用。然而,如以上所讨论的,应该认识到不同的技术也可以被用于NVRAM 130。
[0038]然后继续图1的系统的讨论,尽管为了简单而在图1中图示了单个处理器110,但在一些实施例中,计算机系统100的架构可以包括多个处理器。处理器110可以是任何类型的数据处理器,包括通用或专用中央处理单元(CPU)、专用集成电路(ASIC)或数字信号处理器(DSP)。例如,处理器110可以是通用处理器,诸如C0re?i3、i5、i7、2双核和四核、Xeon?、或Itanium?处理器,所有的这些都可从加利福尼亚州圣克拉拉市的因特尔公司获得。可替代地,处理器110可以来自另一个公司,诸如加拿大森尼维尔市的ARM持股有限公司、加拿大森尼维尔市的MIPS科技公司等。处理器110可以是专用处理器,诸如,例如网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等。处理器110可以在被包括在一个或多个封装内的一个或多个芯片上实现。处理器110可以属于和/或可以使用许多工艺技术(诸如,例如BiCM0S、C0MS、或NM0S)中的任何一个而实现在一个或多个衬底上。
[0039]在一个实施例中,处理器110包括集成图形单元111,其包括用于运行诸如3D或2D图形命令之类的图形命令的逻辑。虽然本发明的实施例不限于任何特定的集成图形单元111,但在一个实施例中,图形单元111能够运行行业标准图形命令,诸如由OpenGL和/或Direct X应用编程接口(API)(例如,OpenGL 4.1和Direct X 11)所规定的那些。
[0040]再次,尽管为了清楚起见,在图1中图示了单个核112,但处理器110也可以包括一个或多个核112。在许多实施例中,核112包括内部功能块,诸如一个或多个执行单元、回收单元、一组通用和特定寄存器等。如果核112是多线程或超线程的,那么每个硬件线程也可以视为“逻辑”核。核112可以在架构和/或指令集方面是同质或异质的。例如,一些核可以是有序的,而其它是无序的。作为另一个示例,两个或更多的核可以能够运行相同的指令集,而其它可以仅能够运行该指令集的子集或不同的指令集。
[0041]处理器110还可以包括可以被实现为SRAM和/或DRAM的一个或多个高速缓存,诸如高速缓存113。在未示出的许多实施例中,不同于高速缓存113的附加的高速缓存被实现成使得在一个或多个核112中的执行单元与存储器设备141和142之间存在多个级别的高速缓存。例如,该组共享高速缓存单元可以包括上级高速缓存(诸如级别I (LI)高速缓存)、中级高速缓存(诸如级别2 (L2)、级别3 (L3)、级别4 (L4)、或其它级别的高速缓存)、末级高速缓存(LLC)、和/或其不同的组合。在不同的实施例中,高速缓存113可以采用不同的方式来分派,并且在不同的实施例中可以是许多不同的大小之一。例如,高速缓存113可以是8兆字节(MB)高速缓存、16MB高速缓存等。另外地,在不同的实施例中,高速缓存可以是直接映射的高速缓存、全关联的高速缓存、多路组关联的高速缓存、或具有另一种类型的映射的高速缓存。在包括多个核的其它实施例中,高速缓存113可以包括所有核之间共享的一个大部分,或者可以被分成若干单独功能的片(例如,每个核一片)。高速缓存113还可以包括所有核之间共享的一个部分以及对于每核而言单独的功能片的若干其它部分。在一个实施例中,高速缓存113可以包括DRAM近存储器高速缓存141B。
[0042]处理器110还可以包括归属代理114,其包括协调和操作一个或多个核112的那些组件。归属代理单元114可以包括例如功率控制单元(P⑶)和显示单元。P⑶可以是或包括对于调节一个或多个核112和集成图形单元111的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
[0043]在一些实施例中,处理器110包括集成存储器控制器(MC)131以提供用于与存储器和储存器子系统180通信的接口。更具体地,在一个实施例中,IMC 131包含对于从DRAM设备140读、向其写、和刷新其而言必要的逻辑。MC 131能够处于与处理器110相同的芯片上、或连接到处理器110的单独的芯片和/或封装上。
[0044]在一些实施例中,处理器110包括耦合到MC 131的I/O子系统115。I/O子系统115能够实现处理器110和以下串行或并行I/O设备之间的通信:一个或多个网络136 (诸如,局域网、广域网、或因特网)、储存I/O设备(诸如,传统大容量储存器152、B10S闪速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的单独的芯片和/或封装上。
[0045]I/O适配器138将处理器110内所利用的主通信协议转换为与特定的I/O设备兼容的协议。对于传统大容量储存器152而言,I/O适配器138可以转换的协议中的一些除其它之外尤其包括外围组件互连(PCI)-高速3.0、通用串行总线(USB) 3.0、串行高级技术附件(SATA) 3.0、小型计算机系统接口(SCSI)、廉价磁盘冗余阵列(RAID)和1394 “火线”。对于BIOS闪速162而言,I/O适配器138可以转换的协议中的一些除其它之外尤其包括串行外围接口(SPI)、微总线。另外地,可以存在一个或多个无线协议I/O适配器。无线协议的示例除其它之外尤其是蓝牙4.0、基于IEEE 802.11的无线协议、和蜂窝协议。
[0046]在一些实施例中,I/O子系统115还包括管理引擎(ME) 135,其是允许系统管理员监视、维护、更新、升级、和修复计算机系统100的微处理器。在一个实施例中,系统管理员能够经由网络136通过ME 135来远程地配置计算机系统100。在一个实施例中,配置能够被存储在处理器110内的解码表133中。解码表133能够由然后决定数据访问请求应该被定向到何处的MC 131和I/O子系统115来读。
[0047]在一些实施例中,处理器110包括可信平台模块(TPM) 134以控制对诸如安全数据、加密密钥、平台配置信息等之类的系统持久状态的访问。在一个实施例中,这些系统持久状态被存储在能够利用诸如PCMS之类的基于PCM的存储器而实现的TPM NVRAM 170中。在图1中示出的实施例中,TPM NVRAM 170是NVRAM 130的一部分。
[0048]在一个实施例中,TPM 134是具有密码功能的安全微控制器。TPM 134具有多个信任相关的能力;例如,用于确保TPM所保护的数据仅可用于相同的TPM的“密封”能力。TPM134能够使用其加密能力来保护数据和密钥(例如,秘密)。在一个实施例中,TPM 134具有允许其认证硬件设备和平台的唯一且秘密的RSA密钥(其基于由Ron Rivest、Adi Shamir和Leonard Adleman所开发的RSA算法来生成)。例如,TPM 134能够验证寻求对计算机系统100中存储的数据的访问的系统是所预期的系统。TPM 134还能够报告平台(例如,计算机系统100)的完整性。这允许外部资源(例如,网络上的服务器)确定平台的可信性,但不防止由用户对平台的访问。
[0049]应该理解,即使计算机系统的处理器不具有处理器110的所有以上所描述的组件,或者具有比处理器Iio更多的组件,该计算机系统也能够将NVRAM 130用于系统存储器、大容量储存器、固件存储器和/或其它存储和储存目的。
[0050]在一个实施例中,计算机系统100包括NVRAM控制器132以控制对NVRAM 130的数据访问。NVRAM控制器132耦合到MC 131和I/O子系统115。NVRAM控制器132能够从解码表133读配置数据,或者可替代地,能够依赖于从IMC 131和I/O子系统115所传递的解码结果。在其中NVRAM 130利用PCMS来实现的实施例中,NVRAM控制器132是利用与PCMS技术一致的协议来执行字节级别的访问的PCMS控制器。尽管IMC 131和NVRAM控制器132能够是两个分立的控制器(如图1中所示,其中点线将该两个控制器分离),在一些实施例中,该两个控制器能够被实现为一个组合的控制器以控制对存储器和储存器的访问。
[0051]在图1中,NVRAM控制器132被示出为使用三个单独的线而连接到FM 142、NVRAM大容量储存器150、以及BIOS NVRAM 160。然而,这不必意味着存在将NVRAM控制器132连接到NVRAM 130的这些部分的三个单独的物理总线或通信信道。更确切地,在一些实施例中,公共存储器总线或其它类型的总线被用来将NVRAM控制器132通信地耦合到FM 142、NVRAM大容量储存器150、以及BIOS NVRAM 160。例如,在一个实施例中,图1中的三个线表示总线,诸如NVRAM控制器132通过其来实现事务协议以与NVRAM 130通信的存储器总线(例如,DDR3、DDR4等)。NVRAM控制器132还可以通过支持本地事务协议的总线(诸如,PCI高速(PC1-E)总线、桌面管理接口(DMI)总线、或利用事务协议的任何其它类型的总线)与NVRAM 130 通信。
[0052]图2是根据本发明的一个实施例的图不将NVRAM 130用作用于传统大容量储存器152和固件存储器(例如,BIOS闪速162和TPM闪速172)的全部的替换的计算机系统200的框图。计算机系统200包括耦合到存储器和储存器子系统280的处理器210。在该实施例中,存储器和储存器子系统280只包括DRAM设备140和NVRAM 130。如以上所描述的,NVRAM 130具有可配置分区,包括系统存储器(FM 142)、大容量储存器(NVRAM储存器150)和固件存储器(BIOS NVRAM 160和TPM NVRAM 170)。除了 1/0适配器238不必包括用于访问传统大容量储存器和闪速存储器的图1的适配器138的所有之外,处理器210能够与图1的处理器110相同。在此类情况下,负责存储器和储存器访问的计算机系统硬件和/或软件可以实现各种智能型技术以受益于NVRAM 130的低延迟、高吞吐量和健壮性(如与传统闪速/磁储存器相比,诸如传统大容量储存器152、BIOS闪速162和TPM闪速172)。[0053]NVRAM的可配置分区
如之前所描述的,NVRAM 130能够被分成具有平台储存层次结构中的不同角色的多个分区。如以上所讨论的,术语“平台储存层次结构”指代服务于不同目的(例如,BIOS储存和TPM储存)的高速缓存、系统存储器、大容量存储器、和固件存储器。在一个实施例中,访问被引向NVRAM 130的不同分区所利用的手段是经由解码逻辑。例如,在制造时或在现场中,计算机系统100能够对解码表133进行编程以将NVRAM 130的不同区域除其它之外尤其标记为系统存储器、大容量储存器、固件。
[0054]在图1和2的实施例中,NVRAM 130被分成FM 142,NVRAM储存器150、B10S NVRAM160和TPM NVRAM 170。每个分区的地址范围能够在解码表133中定义。在一个实施例中,当IMC 131接收到访问请求时,对请求的目标地址进行解码以揭示该请求是定向到存储器还是I/O。如果其是存储器请求,IMC 131进一步根据目标地址来确定该请求是定向到匪141还是FM 142。对于FM 142访问而言,MC 131将该请求转发到NVRAM控制器132。如果该请求定向到1/0(例如,非储存和储存I/O设备),那么IMC 131将该请求传递到I/O子系统115。I/O子系统115进一步对地址解码以确定该地址是指向NVRAM储存器150、B10SNVRAM 162还是其它非储存和储存I/O设备。如果该地址指向NVRAM储存器150或BIOSNVRAM 162,那么I/O子系统115将该请求转发到NVRAM控制器132。如果该地址指向TPMNVRAM 170,那么I/O子系统115将该请求传递到TPM 134以执行安全的访问。在一个实施例中,被转发到NVRAM控制器132的每个请求伴随着指示访问的类型的属性(也称为“事务类型”)。在一个实施例中,NVRAM控制器132可以模拟用于所请求的访问类型的访问协议,以使得平台的其余部分保持不知道由平台储存层次结构中的NVRAM 130所执行的多个角色。在可替代的实施例中,NVRAM控制器132可以执行对NVRAM 130的存储器访问而不管其是何事务类型。要理解的是,解码路径能够与以上所描述的不同。例如,MC 131可以对访问请求的目标地址进行解码并且确定其是否定向到NVRAM 130。如果其定向到NVRAM130,那么MC 131根据解码表133生成属性。基于该属性,MC 131然后将请求转发到适当的下游逻辑(例如,NVRAM控制器132和I/O子系统115)以执行所请求的数据访问。在又另一个实施例中,如果对应的属性未从上游逻辑(例如,IMC 131和I/O子系统115)传递下去,那么NVRAM控制器132可以对目标地址解码。可以实现其它解码路径。
[0055]图3图示根据本发明的一个实施例的对输入地址解码并且生成指示NVRAM分区之一的输出的解码逻辑330。在一个实施例中,输入地址是指向NVRAM 130内的位置(例如,字节位置)的物理地址。在一个实施例中,物理地址能够由转换逻辑320从系统地址(例如,由核113所生成的地址)转换。解码逻辑330的输出指示输入地址被定向到的NVRAM 130的分区。在一个实施例中,该输出通过NVRAM分区的对应的属性来指示所述NVRAM分区;例如,00用于FM 142、01用于NVRAM储存器150、10用于BIOS NVRAM 160以及11用于TPMNVRAM 170。要理解的是,属性能够由任何数字或模拟的指示符来表示并且不由本文所描述和示出的示例来限制。进一步地,解码逻辑330能够将输入地址映射到比图3中所示出的实施例更多或更少的分区。例如,如果NVRAM 130被配置(根据解码表133)成包含仅两个分区,那么解码逻辑330能够将输入地址映射到该两个分区。
[0056]在一个实施例中,解码逻辑330基于在解码表133中存储的配置数据来对输入地址解码。在一个实施例中,解码表133存储用于NVRAM 130中的每个分区的属性311、基地址312和长度313。解码表133能够由BIOS在引导时间来构建。例如,BIOS能够在引导时间读在控制状态寄存器(CSR) 310中存储的配置数据。CSR 310可以包括用于要配置在NVRAM 130中的每个分区的范围(例如,大小)。然后,BIOS相应地构建解码表133。
[0057]应该注意,解码逻辑330是在平台(例如,图1的计算机系统100或图2的计算机系统200)内执行的解码操作的逻辑表示。实现解码逻辑330的硬件可以驻存于单个功能单元(例如,頂C 131)中或多个功能单元(例如,MC 131、I/O子系统115和/或NVRAM控制器132的任何组合)中。类似地,转换逻辑320可以由单个功能单元(例如,IMC 131)、由多个功能单元(例如,IMC 13UI/0子系统115和/或NVRAM控制器132的任何组合)、或由软件和硬件的组合来实现。解码逻辑330和/或转换逻辑320还可以驻存于MC 13UI/0子系统115和NVRAM控制器132之外并与之耦合。为了图示的简单,图1和2的实施例示出MC 131、I/O子系统115和NVRAM控制器132中的每个具有到解码表133的连接以指示它们全都都可以从解码表133进行读以执行解码逻辑330的功能的可能性。然而,应该理解,在可替代实施例中,仅MC 131或者MC 131和I/O子系统115连接到解码表133以执行解码逻辑330的功能。
[0058]在一个实施例中,CSR 310能够由硬件熔丝(例如,仅可编程一次的可编程只读存储器(PROM))、可重新编程ROM (例如,电可擦除可编程ROM (EEPROM))、或其它可编程硬件来实现。在其中解码表133是可重新编程的实施例中,如图4的实施例中所描述的,解码表133中的那些地址范围能够由经授权的服务器来远程地编程。
[0059]图4是图示根据本发明的一个实施例的配置NVRAM内的分区的方法400的流程图。为了讨论的简单,图4的流程图的操作将参考图1的实施例来描述。然而,应该理解,流程图的操作能够通过图2的实施例以及不同于这些图中所示出的那些的实施例来执行。另外地,参考图1和2所讨论的实施例能够执行与参考图4的流程图所讨论的那些不同的操作。
[0060]参考图1和4,在一个实施例中,计算机系统100经由网络连接向经授权的服务器请求用于配置NVRAM 130内的分区的配置数据(块410)。经授权的服务器可以由计算机系统100的制造商、第三方权威机构、或持有配置NVRAM 130的权利的任何权威机构来控制或拥有。经由网络连接,计算机系统100 (例如,ME 135)能够向经授权的服务器发送其证书(例如,在TMP NVRAM 170中安全地存储的加密密钥)(块420)。在经授权的服务器认证计算机系统100之后,其发回包括所请求的配置数据的经签名的消息(块430)。在接收到经签名的消息时,MC 135能够根据接收到的地址范围来设置CSR 310 (块440),以使得能够在引导时间对解码表133编程。然后,计算机系统100再引导(块450)。在引导时间期间,计算机系统100的BIOS对解码表133进行编程(块460)。BIOS还向OS传播该配置;例如,BIOS能够构建包含配置数据的多个表以供OS来读(块470)。
[0061]在计算机系统100被完全引导之后并且在接收到具有NVRAM物理地址的数据访问请求时,解码逻辑330基于解码表133中的配置数据来对该请求中所指示的地址进行解码(块480)。解码逻辑330生成指示NVRAM 130中的分区之一的属性(块490)。基于该属性,解码逻辑330将该请求转发到适当的下游逻辑(例如,1/0适配器138、TPM 134等)(块495)。可以将该请求与指示NVRAM分区的属性的事务类型一起转发。在一个实施例中,下游逻辑能够基于属性来确定用于访问分区的适当的协议。[0062]在一个实施例中,块470处所创建的这些表之一是存储用于每个底层存储器设备的逻辑距离的亲和(affinity)表。该亲和表允许内核级OS代码在利用不同技术而实现的系统存储器的不同部分(诸如,DRAM (匪141)和NVRAM (FM 142))之间区分,并且相应地担当(appropriate)OS页面迁移策略。例如,匪141能够用于被频繁访问的数据以在计算机系统100的常规操作期间吸收部分写。
[0063]在一个实施例中,亲和表包括用于存储器地址的范围的逻辑距离,其中逻辑距离指示实际物理距离、域、访问速度/时间、或表示本地存储器的访问时间或距离的任何其它度量。基于亲和表中的信息,OS能够将存储器访问定向到存储器的不同位置。例如,OS能够基于本地存储器的逻辑距离而对操作做出线程调度决策和资源分配。诸如操作的时间关键性之类的许多考虑因素可以被用来确定要利用哪个本地存储器。例如,极度时间关键的操作能够被调度成利用DRAM (匪141),原因在于其在亲和表中由比FM 141更短的逻辑距离来表示。可替代地,非时间密集的在后台中运行的线程能够被调度成使用FM 141,以确保NM 142可用于其它操作。诸如本地存储器的大小、要被运行或执行的线程或操作的类型之类的其它考虑因素、或者用于基于访问距离或速度来选择存储器的任何其它公知的考虑因素可以被用于确定要利用哪个本地存储器。
[0064]移除储存器访问中的储存器驱动器开销
如以上所描述的,NVRAM 130是非易失性且随机可访问的。其能够以字节的粒度被访问,并且其访问延迟接近于现在的易失性RAM。由于该非易失性存储器提供更接近于传统储存介质的高容量,所以其能够替代平台中的传统I/O附接的非易失性大容量储存器设备。
[0065]如图2中所示,将NVRAM 130用于系统存储器(例如,FM 142)和NVRAM储存器150这二者能够使平台储存层次结构中的该两个不同层的角色之间的线模糊。因为FM 142和NVRAM储存器150这二者都驻存于相同的NVRAM 130中,其能够被视为一个连续的分区并且能够经由相同的存储器互连而采用相同的方式被访问。因而,NVRAM储存器150的使用能够移除传统I/O数据访问的负担。也就是说,诸如SATA、PC1-E等之类的I/O协议对于储存器访问而言不再必需。因而,在一些实施例中,NVRAM储存器150能够在储存器驱动器不执行I/O操作而是使用CPU存储器指令来从储存器复制到存储器缓冲器的情况下被访问,因而模拟用于OS和应用软件的块访问。可替代地,OS文件系统能够觉知存储器可寻址的储存器(S卩,NVRAM储存器150 ),并且将NVRAM储存器150地址空间直接映射到应用地址空间中。这节约复制的成本和被用于系统中的存储器的量。本文中NVRAM储存器150被称为“存储器可寻址”,原因在于其在物理存储器地址空间中是可直接寻址的,并且把存储器地址用作操作数的所有指令将对NVRAM储存器150的地址起作用。
[0066]然而,遗留软件(例如,OS和应用)仍然可以在以下假设下操作:储存器驱动器存在于计算机系统中以执行块访问。例如,典型的遗留操作系统将处于大容量储存器中但不处于系统存储器中的数据视为非驻存的,并且当访问数据时将触发页面错误。然后,页面错误处理程序(handler)发信号给储存器驱动器以将数据带到系统存储器中。这能够通过模拟块储存器而在储存器驱动器中被处理。可替代地,在具有觉知存储器可寻址的储存器的文件系统的OS中,页面错误处理可以是存储器映射操作而不是存储器复制或I/O操作。
[0067]由于功率节约和储存器访问中的速度的提高,所以移除I/O接口和I/O控制器的益处以及访问成本的降低通常压过软件修改的成本。本发明的实施例将PCMS用作平台中的高性能储存器,从而利用其低功率、高容量、非易失性、和存储器模式的特性。本发明的实施例移除传统的储存器栈I/o路径,并且使储存器由处理器可寻址和可高速缓存,来以最低的功率来实现最快的性能。
[0068]本发明的实施例提供许多级别处的(由诸如PCMS之类的NVRAM实现的)储存器与软件之间的接口,其将在以下参考图5、7、8A、8B以及9来描述。这些图中所示出的软件(例如,OS和应用)和硬件操作能够由图1和2的处理器110和210的实施例以及不同于这些图中所示出的那些的实施例来执行。另外地,参考图1和2所讨论的实施例能够执行与参考图5、7、8A、8B以及9所讨论的那些不同的操作。
[0069]图5图示根据本发明的第一个实施例的由图2的NVRAM 130所提供的储存器与软件之间的接口。在该实施例中,MC 131具有将NVRAM 130抽象为用于软件的传统非易失性大容量储存器(例如,磁盘或闪速存储器)的附加能力。MC 131耦合到储存器驱动器513,其能够在软件中实现。对于储存器驱动器513,IMC 131充当块可寻址的传统非易失性大容量储存器。计算机系统200将该储存器驱动器513用作最低级别的磁盘驱动器。在该实施例中,软件(OS 512和应用)能够在不对软件修改的情况下利用NVRAM 130中的数据。也就是说,对非驻存的页面(不处于系统存储器中的页面)的数据访问将触发页面错误并且将执行磁盘I/O。
[0070]在图5中所示出的实施例中,当OS 512发起储存器I/O时(例如,响应于页面错误以引入不驻存于诸如NM 141和FM 142之类的系统存储器中的页面),其调用储存器驱动器513并且提供存储器地址、储存器地址、长度以及操作类型(例如,读或写)(块510)。储存器驱动器513使用与诸如SATA 3.0、PC1-E 3.0等之类的标准I/O接口 /协议不同的接口而将这些参数传送到MC 131 (块520)。存储器地址指示要与由储存器地址所指定的储存器位置交换页面的(NM 141或FM 142中的)存储器位置。MC 131将储存器地址转换成NVRAM 130中的物理地址(块530)。然后,NVRAM控制器132 (或MC 131,如果其实现用于访问NVRAM 130的协议的话)将数据从存储器地址复制到储存器地址(如果操作是读的话)或将数据从储存器地址复制到存储器地址(如果操作是写的话)(块540)。
[0071]在一个实施例中,存储器地址落入FM 142的地址空间内。在该实施例中,MC 131还将存储器地址转换成NVRAM 130中的物理地址。然后,NVRAM控制器132 (或MC 131,如果MC能够直接访问NVRAM 130的话)通过执行相同的NVRAM内的存储器到存储器复制来在存储器地址和储存器地址之间复制数据。在其中存储器地址落入NM 141的地址空间内的另一个实施例中,所述复制包含两个存储器设备(例如,NVRAM 130和DRAM 140)之间的存储器到存储器复制。在完成复制之后,MC 131发信号给储存器驱动器513 (块550),其继而发信号给OS 512,指示I/O完成。
[0072]图6A图示根据本发明的可替代实施例的存储器和储存器子系统680。在该实施例中,存储器和储存器子系统680替代NVRAM储存器150 (图2),其中RAM盘650由OS创建。RAM盘650充当用于文件系统660的储存器。参考图7的流程图来更详细地描述RAM盘650作为储存器的使用。NVRAM 130可以包括比图6A中所示出的更多或更少的分区(例如,BIOS NVRAM 160和/或TPM NVRAM 170可以不存在)。在一个实施例中,RAM盘650在OS安装期间被配置并格式化,并且跨系统引导而存留(像常规的磁盘一样)。
[0073]图7图示了根据本发明的第二个实施例的由NVRAM 130所提供的储存器与软件之间的接口。该第二个实施例涉及图6A的存储器和储存器子系统680,其中“储存器”是由OS712指定为RAM盘650 (也称为“RAM盘”)的FM 142内的分区。OS 712将RAM盘650看作传统非易失性大容量储存器设备(例如,磁盘或固态驱动器)。对RAM盘650的访问由被称为RAM盘驱动器713的内核级驱动器来控制,所述内核级驱动器向OS 712呈现标准磁盘驱动并且充当最低级的磁盘驱动器。在该实施例中,软件(OS 712和应用)能够在不对软件修改的情况下利用NVRAM 130中的数据。也就是说,对非驻存的页面(不处于系统存储器中的页面)的数据访问将触发页面错误,并且将执行磁盘I/O。
[0074]在图7中所示出的实施例中,当OS 712发起磁盘I/O时(例如,响应于页面错误以引入不驻存于诸如图6A的NM 141和FM 142之类的系统存储器中的页面),其调用RAM盘驱动器713并且提供存储器地址、储存器地址、长度以及操作类型(例如,读或写)(块710)。存储器地址指示要与由储存器地址所指定的储存器位置交换页面的(匪141或FM 142中的)存储器位置。頂C 131将储存器地址转换成NVRAM 130中的物理地址(块720)。然后,NVRAM控制器132 (或MC 131,如果其实现用于访问NVRAM 130的协议的话)将数据从存储器地址复制到储存器地址(如果操作是读的话)或将数据从储存器地址复制到存储器地址(如果操作是写的话)(块730)。
[0075]在一个实施例中,存储器地址落入FM 142的地址空间内。在该实施例中,RAM盘驱动器713还将存储器地址转换成NVRAM 130中的物理地址。然后,NVRAM控制器132 (或IMC 131,如果MC能够直接访问NVRAM 130的话)通过执行相同的NVRAM内的存储器到存储器复制来在存储器地址和储存器地址之间复制数据。在其中存储器地址落入NM 141 (其充当系统存储器)的地址空间内的另一个实施例中,所述复制包含两个存储器设备(例如,NVRAM 130和DRAM 140)之间的存储器到存储器复制。在完成复制之后,MC 131发信号给RAM盘驱动器713 (块740),其继而发信号给OS 712,指示I/O完成。
[0076]图8A和8B图示了根据本发明的一个实施例的参考图6B的由NVRAM 130所提供的储存器与软件之间的接口的第三个实施例。图6B图示根据本发明的一个实施例的存储器和储存器子系统682。在图6B中所示出的实施例中,NVRAM 130内的系统存储器和大容量储存器之间不存在区别。OS (图8B的OS 850)创建存储器映射的文件系统,其中FM 142充当用于文件系统660的存储。要理解的是,NVRAM 130可以包括比图6B中所示出的更多或更少的分区(例如,BIOS NVRAM 160和/或TPM NVRAM 170可以不存在)。
[0077]在存储器映射的文件系统中,由应用810所使用的文件(并且因而,在被分配到应用810的虚拟地址空间820中)能够被直接映射到NVRAM设备地址空间840。NVRAM设备地址空间840中的每个地址位置可由处理器直接寻址,并且因而,“驻存”在存储器中。不存在触发页面错误以从储存器引入页面的需要,原因在于OS 850理解储存器与存储器相同。在该实施例中,OS 850需要修改以利用NVRAM 130,但能够在不进行修改的情况下使用应用810。反之,在非存储器映射的文件系统中,应用的每个读/写均是系统调用。如果读/写定向到已经不在存储器中的页面,那么对该页面的访问将包含由储存器驱动器所执行的储存器I/O访问,其比存储器访问慢得多。
[0078]图8B更详细地图示了图8A的实施例。参考图8A和图8B,当应用810请求对文件的页面821的读访问时(块860),因为页面821已经在存储器中映射为页面841,所以OS850将该请求传递到存储器访问硬件(块870)。存储器访问硬件(例如,IMC 131或者IMC131和NVRAM控制器132的组合)从NVRAM 130中检索页面841并且将该页面转发到高速缓存830 (例如,SRAM或DRAM高速缓存)以减少未来的访问延迟(块880)。然后,存储器访问硬件发信号给OS 850,其继而发信号给应用810以通知:该取出完成。如果页面还未取出,那么对页面的写访问能够采用与读相同的方式来执行。另外地,当应用810修改已经被取出的页面821时,能够执行写时复制以在虚拟地址空间820中创建页面821的写复制822。该写复制能够存储在高速缓存830中以供未来的访问,并且能够在稍后的时间(例如,当高速缓存830满了并且需要为新取出的页面腾出空间时)被写回到NVRAM 130。
[0079]图9根据本发明的第四个实施例的由NVRAM 130所提供的储存器与软件之间的接口。该第二个实施例涉及图6B的存储器和储存器子系统682,其中OS和应用(例如,应用910)这二者都需要修改以利用NVRAM 130。在该实施例中,储存器的概念消失。在该实施例中,应用910能够使用存储器访问指令来管理NVRAM设备地址空间930。例如,应用910能够调用OS应用编程接口(API)集920以执行存储器_分配、存储器_解除分配、存储器_读、存储器_写等的等效物。这些指令中的每个能够定向到NVRAM 130中的特定地址位置处。因而,应用910拥有管理被写到NVRAM 130的数据的存留和最优写管理的责任。
[0080]图4、5、7、8A、8B以及9的附图中所示出的技术能够使用在非临时机器可读或计算机可读介质上存储的指令和数据来实现,诸如非临时机器可读或计算机可读存储介质(例如,磁盘;光盘;随机访问存储器;只读存储器;闪速存储器设备;以及相变存储器)。
[0081]本发明的实施例还可以被提供为可以包括非临时机器可读介质的计算机程序产品,所述非临时机器可读介质在其上存储了可以被用来对计算机(或其它电子设备)编程以执行过程的指令。非临时机器可读介质可以包括但不限于软盘、光盘、CD-ROM、和磁光盘、ROM、RAM、EPROM、EEPR0M、磁或光卡、传播介质或适于存储电子指令的其它类型的介质/机器可读介质。本发明的实施例还可以作为计算机程序产品而下载,其中程序可以经由通信链路(例如,调制解调器或网络连接)通过体现在载波或其它传播介质中的数据信号的方式从远程计算机(例如,服务器)转移到做出请求的计算机(例如,客户端)。
[0082]虽然根据若干实施例来描述了本发明,但本领域技术人员将意识到本发明不限于所描述的实施例,而能够利用所附权利要求的精神和范围内的修改和更改来实施。本描述因而被视为说明性而不是限制性。
【权利要求】
1.一种方法,包括: 由计算机系统接收定义字节可重写且字节可擦除的非易失性随机访问存储器(NVRAM)中的地址空间的分区的配置数据,其中所述分区包括实现所述计算机系统的平台储存层次结构的两个不同层的至少两个分区; 根据所述配置数据来对耦合到NVRAM的处理器内的解码表进行编程;以及 基于所述解码表来对数据访问请求中的地址进行解码;以及 生成指示要被访问的所述分区之一的属性。
2.根据权利要求1所述的方法,其中所述NVRAM包括相变存储器(PCM)。
3.根据权利要求1所述的方法,其中所述NVRAM包括相变存储器和开关(PCMS)。
4.根据权利要求1所述的方法,其中所述分区包括实现系统存储器的第一分区和实现大容量储存器的第二分区。
5.根据权利要求4所述的方法,其中所述分区包括实现固件存储器的一个或多个附加分区。
6.根据权利要求1所述的方法,其中对所述解码表进行编程进一步包括: 经由网络连接向经授权的服务器请求所述配置数据; 向所述经授权的服务器发送证书; 接收由所述经授权的服务器所签名的所述配置数据; 根据所述配置数据来设置状态寄存器的值;以及 根据所述状态寄存器的值,在再引导所述计算机系统时对所述解码表进行编程。
7.根据权利要求1所述的方法,其中对所述解码表进行编程进一步包括: 创建可由所述计算机系统的操作系统(OS)访问的亲和表,其中所述亲和表允许所述OS在利用不同技术所实现的系统存储器的不同部分之间区分。
8.一种装置,包括: 系统存储器,其至少部分由字节可重写且字节可擦除的非易失性随机访问存储器(NVRAM)的第一分区来实现; 大容量储存器,其至少部分由所述NVRAM的第二分区来实现; 耦合到所述NVRAM的处理器; 存储在所述处理器内的解码表,所述解码表可通过指示所述第一分区和所述第二分区的大小的配置数据而编程;以及 所述处理器内的解码逻辑,以基于所述解码表来对数据访问请求中的地址进行解码,并且生成指示要被访问的所述第一分区和所述第二分区之一的属性。
9.根据权利要求8所述的装置,其中所述NVRAM包括相变存储器(PCM)。
10.根据权利要求8所述的装置,其中所述NVRAM包括相变存储器和开关(PCMS)。
11.根据权利要求8所述的装置,其中所述分区包括实现系统存储器的第一分区和实现大容量储存器的第二分区。
12.根据权利要求11所述的装置,其中所述分区包括实现固件存储器的一个或多个附加分区。
13.—种系统,包括: 系统存储器,其第一部分由字节可重写且字节可擦除的非易失性随机访问存储器(NVRAM)的第一分区来实现,并且其第二部分由动态随机访问存储器(DRAM)来实现; 大容量储存器,其至少部分由所述NVRAM的第二分区来实现; 处理器,耦合到所述系统存储器和所述大容量储存器;以及 存储在所述处理器内的解码表,所述解码表可通过指示所述第一分区和所述第二分区的大小的配置数据而编程;以及 所述处理器内的解码逻辑,以基于所述解码表来对数据访问请求中的地址进行解码,并且生成指示要被访问的所述第一分区和所述第二分区之一的属性。
14.根据权利要求13所述的装置,其中所述NVRAM包括相变存储器(PCM)。
15.根据 权利要求13所述的装置,其中所述NVRAM包括相变存储器和开关(PCMS)。
16.根据权利要求13所述的装置,其中所述分区包括实现系统存储器的第一分区和实现大容量储存器的第二分区。
17.根据权利要求16所述的装置,其中所述分区包括实现固件存储器的一个或多个附加分区。
【文档编号】G06F12/00GK103946810SQ201180075088
【公开日】2014年7月23日 申请日期:2011年9月30日 优先权日:2011年9月30日
【发明者】V.J.齐默, M.A.罗思曼, M.S.多兰 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1