计算机系统中的非易失性随机存取存储器的自主初始化的制作方法

文档序号:6485213阅读:168来源:国知局
计算机系统中的非易失性随机存取存储器的自主初始化的制作方法
【专利摘要】非易失性随机存取存储器(NVRAM)在计算机系统中用来存储允许NVRAM在通电时自主地初始化它本身的信息。计算机系统包括处理器、耦合到处理器的NVRAM控制器以及包括NVRAM控制器的NVRAM。NVRAM是可由处理器来字节重写和字节擦除的。NVRAM存储了存储器接口表,其中包含信息,供NVRAM控制器在计算机系统通电时自主地初始化NVRAM,而没有与NVRAM外部的固件和处理器交互。该信息由NVRAM控制器提供给处理器,以允许处理器访问NVRAM。
【专利说明】计算机系统中的非易失性随机存取存储器的自主初始化
【技术领域】
[0001]本发明的实施例涉及计算机系统,更具体来说,涉及用于初始化非易失性随机存取存储器的自主机制。
【背景技术】
[0002]A.当前的存储器和存储装置配置
当今计算机革新的限制因素之一是存储器和存储装置技术。在常规计算机系统中,系统存储器通常由动态随机存取存储器(DRAM)来实现。基于DRAM的存储器甚至在没有发生存储器读取或写入时也耗电,因为它必须不断地对内部电容器再充电。基于DRAM的存储器是易失性的,这意味着,一旦去除电力,则DRAM存储器中存储的数据丢失。此外,DRAM装置通常被组装为双列直插存储器模块(DIMM),其通常包括电可擦可编程只读存储器(EEPROM)以存储串行存在检测(SPD)数据。STO数据包含与DIMM大小、类型、制造商、定时有关的信息以及与存储器有关的其它信息。EEPROM(又称作“SPD EEPR0M”)能够是通过系统管理总线(SMbus)可访问的。
[0003]当计算机系统引导时,其基本输入和输出系统(BIOS)读取系统中的全部DIMM的SPD数据,以及基于sro数据,将存储控制器配置成初始化存储器子系统。BIOS代码极大地取决于DIMM技术和存储控制器实现。每当引入新的存储器技术时,不同的BIOS代码需要被使用,并且它不可与现有存储控制器配合工作。此外,存储器初始化的复杂度高,并且对sro数据的访问速度低。因此,它可能花费数秒来初始化系统存储器。
[0004]B.相变存储器(PCM)及相关技术
有时又称作PCME、PRAM、PCRAM、奥氏统一存储器、硫属化物RAM和C-RAM的相变存储器(PCM)是一种非易失性计算机存储器,其利用硫属化物玻璃的独特行为。由于电流的通过所产生的热量,这个材料能够在两种状态之间切换:结晶的和非晶的。PCM的最近版本能够取得两种附加的不同状态,从而有效地使存储器存储容量翻倍。PCM是在非易失性作用上与闪速存储器(又称作“闪存”)竞争的多种新存储器技术之一。闪速存储器具有多个实际问题,这些问题是这些替代物希望解决的。
[0005]例如,PCM能够在快速写入是重要的应用中提供高得多的性能,部分是因为存储器元件能够被更快速地切换,并且还因为单独的位可改变成I或0,而无需首先擦除整个单元块(如闪存的情况那样)。PCM的高性能使它在当前因存储器访问定时而性能受限的非易失性存储器作用中潜在地非常有益。
[0006]另外,虽然PCM装置随着使用而降级,但是它们的降级与闪存相比要缓慢得多。PCM装置可经受大约I亿次写循环。PCM使用寿命受到诸如因编程期间的GeSbTe(GST)热膨胀引起的降级、金属(和其它材料)迁移之类的机制和其它机制限制。
【专利附图】

【附图说明】
[0007]通过参照用于示出本发明的实施例的以下描述和附图,可以最佳地理解本发明。附图中:
图1示出按照本发明的一个实施例的一种计算机系统,该系统在平台存储分级结构的一层或多层中使用非易失性存储器随机存取(NVRAM)。
[0008]图2示出按照本发明的一个实施例、支持NVRAM的自主初始化的计算机系统。
[0009]图3示出按照本发明的一个实施例在NVRAM中存储的存储器接口表(MIT)的一个示例。
[0010]图4示出按照本发明的一个实施例自主初始化NVRAM的方法。
【具体实施方式】
[0011]在以下描述中,提出许多具体细节。但是,要理解,即使没有这些具体细节,也可实施本发明的实施例。在其它情况下,没有详细示出众所周知的电路、结构和技术,以免影响对本描述的理解。
[0012]说明书中提到“一个实施例”、“实施例”、“一个示例实施例”等表明所述的实施例可包括特定特征、结构或特性,但可能不一定每个实施例都包括该特定特征、结构或特性。此外,这类短语不一定指同一个实施例。此外,在结合某个实施例来描述某个特定特征、结构或特性时,无论是否明确地描述,均认为结合其它实施例来实现这种特征、结构或特性是在本领域技术人员的知识范围之内的。
[0013]在以下描述和权利要求书中,可使用术语“耦合”和“连接”及其派生词。应当理解,这些术语并不是要作为彼此的同义词。“耦合”用于表明可以或者可以不彼此直接物理或电接触的两个或更多元件相互配合或交互。“连接”用于表明相互耦合的两个或更多元件之间的通信的建立。
[0014]加括号的文本以及具有虚线边界的框(例如长划线、短划线、点划线、点)在本文中有时用来示出可选的操作/组件,它们对本发明的实施例添加附加特征。但是,这种标记法不应被视为意味着这些是仅有的选项或者可选的操作/组件,和/或具有实线边界的框在本发明的某些实施例中不是可选的。
[0015]以下所述的本发明的实施例提供用于初始化非易失性随机存取存储器(NVRAM)、例如相变存储器和开关(PCMS)的自主机制。在一个实施例中,NVRAM的第一部分存储了存储器接口表(MIT),该表包含与NVRAM的第二部分(S卩,NVRAM内的区域)有关的信息。MIT能够由处理器来读取和使用,以访问NVRAM中的BI OS。由于NVRAM是非易失性的,所以MIT中的数据跨电力循环被保持。MIT的使用消除与SPD EEPROM关联的成本,并且使NVRAM和系统的其余部分能够快速初始化。在一个实施例中,如果计算机系统的管理系统要求NVRAM的SH)数据以用于带外访问,则NVRAM控制器能够创建代理,并且将sro数据提供给管理系统,而无需SPD EEPR0M。
[0016]此外,本发明的实施例使NVRAM能够由系统用作引导和记录装置。在一个实施例中,NVRAM内的有些区域存储固件(例如BIOS代码)、NVRAM的物理特性的描述、差错图以及其它数据和代码。本文所述的NVRAM自主初始化(即,自己初始化)技术不要求BIOS初始化,因而使NVRAM能够可用作引导目标。NVRAM用于存储BIOS还消除了对于BIOS闪存和其它I/O附连的非易失性系统引导介质的需要。通过允许比常规BIOS闪存要大的占用面积,本发明的实施例虑及能够不仅存储引导序列而且存储嵌入(或嵌套)管理程序和平台代理的系统固件的进一步发展。在期望后向兼容性的一个实施例中,计算机系统能够包括NVRAM以及用于存储BIOS引导序列的BIOS闪存。
[0017]本发明的实施例还引入NVRAM硬件(例如NVRAM控制器),其负责执行初始化序列。初始化序列设置NVRAM以供处理器来读访问。在NVRAM控制器设置NVRAM以供读访问之后,NVRAM控制器还能够基于MIT中存储的数据来配置NVRAM,并且向处理器报告MIT中存储的信息。这将允许处理器或系统硬件/固件(例如NVRAM地址解码器)将NVRAM地址范围映射到系统地址范围。在一个实施例中,MIT中存储的数据是可配置的,这意味着,每个NVRAM区域的大小和地址范围能够按照系统的实际需要来改变。
[0018]图1是示出计算机系统100的框图,所述计算机系统100在平台存储分级结构的一层或多层中使用字节可寻址的非易失性随机存取存储器(NVRAM) 130。本文中的术语“平台存储分级结构”表示由计算机系统100用于存储数据、指令、状态以及其它永久和非永久信息的整个存储介质。在一个实施例中,计算机系统100中的所有永久存储装置能够按照可配置方式合并为一个NVRAM 130。另外,NVRAM 130的某个部分能够被分配为系统存储器的DRAM替代品。NVRAM 130的多功能性促进从具有对永久的面向块的文件系统进行操作的操作系统(OS)的常规平台到理解充分持久的字节可寻址的单级数据存储装置的OS的技术迁移。
[0019]在一个实施例中,NVRAM 130能够配置成在典型平台存储分级结构中实现作为下列一个或多个的作用:高速缓存、系统存储器(又称作主存储器、主要存储器、可执行存储器)、存储装置(又称作辅助存储装置和大容量存储装置)、固件存储器(例如引导存储器(又称作BIOS闪存)、置信平台模块(TPM)存储器、等等)。还预期具有不同作用的平台存储分级结构,并且NVRAM 130的应用并不局限于上述作用。
[0020]NVRAM 130按照其特性和/或其在平台存储分级结构中的应用,可与其它指令和数据存储器/存储装置技术相区分。例如,NVRAM 130不同于:
1)作为专用于某个处理器核心或者由多个处理器核心共享的高速缓存来应用的静态随机存取存储器(SRAM);
2)作为处理器内部(例如与处理器相同的管芯上)和/或处理器外部(例如与处理器相同或不同的封装上)的一个或多个高速缓存来应用的高速存储器(例如动态随机存取存储器(DRAM));
3)作为驱动程序存储装置来应用的闪速存储器/磁盘/光盘;以及作为引导ROM来应用的、诸如闪速存储器或只读存储器(ROM)之类的存储器。
[0021 ] 本发明的一个实施例中的NVRAM (例如NVRAM 130)具有下列特性:
1)非易失性(它即使在电力被去除时也保持其内容,与固态盘(SSD)中使用的闪速存储器相似,但是与易失性的SRAM和DRAM不同);
2)比诸如SRAM和DRAM之类的易失性存储器低的功耗;
3)随机访问(又称作随机可寻址);
4)以比SSD中所见的闪存(其只能够每次一个“块”来重写和擦除-在大小方面对NOR闪存最小为64千字节,对NAND闪存最小为16千字节)低的粒度等级(例如字节等级)可重写和可擦除;
5)可用作系统存储器并且分配有系统地址空间的全部或一部分; (6)能够使用事务协议(支持区分不同事务以使得那些事务能够无序完成的事务标识符(ID)的协议)通过总线耦合到处理器,并且允许在足够小的粒度等级的访问以支持作为系统存储器的NVRAM的操作(例如,诸如64或128字节之类的高速缓存行大小)。例如,总线可以是存储器总线(例如,诸如DDR3、DDR4等的DDR总线),通过总线运行事务协议,与通常使用的非事务协议相反。作为另一个示例,总线可以是通过其通常运行事务协议(本地事务协议)的总线,诸如PCI express (PCIE)总线、桌面管理接口(DMI)总线、或者利用事务协议和足够小的事务净荷大小(例如,诸如64或128字节之类的高速缓存行大小)的任何其它类型的总线;以及
6)下列一个或多个:
a)比当前的非易失性存储器/存储装置技术(例如闪存)快的写入速度;
b)很高的读取速度(比闪存快,并且接近或相当于DRAM读取速度);
c)直接可写(而不是像SSD中使用的闪速存储器那样要求在写入数据之前擦除(以Is进行盖写));和/或
d)故障之前的高若干数量级(例如2或3)的写耐久性(超过SSD中使用的引导ROM和闪存)。
[0022]如上所述,与闪速存储器(其必须每次一个完整“块”来重写和擦除)相对比,在任何给定实现中访问NVRAM的粒度等级可取决于特定存储控制器和特定存储器总线或者NVRAM耦合到的其它类型的总线。例如,在NVRAM 130用作系统存储器的一些实现中,尽管有以字节的粒度来访问的固有能力,但是可以以高速缓存行(例如64字节或128字节高速缓存行)的粒度来访问NVRAM,因为高速缓存行是存储器子系统访问存储器的等级。因此,当NVRAM被部署在存储器子系统内时,它可以以与同一存储器子系统中使用的DRAM(例如“近存储器”)相同的粒度等级来访问。即使如此,由存储控制器和存储器总线或者其它类型的总线对NVRAM的访问的粒度等级也小于闪存使用的块大小和I/O子系统的控制器和总线的访问大小的粒度等级。
[0023]NVRAM 130可用作指令和数据存储装置,其具有充分短的访问时间要求,从而对处理器引起极小影响。在这里,程序指令和数据可在由处理器执行之前,从更深的闪存/磁/光大容量存储装置152加载到NVRAM 130中。此外,如以下详细描述的,NVRAM 130可放置于存储器总线上,并且可与存储控制器(其又与处理器直接通信)直接通信。
[0024]NVRAM 130的新存储器技术的存在提供大量新的可能性。虽然在更后面会更为详细地论述,但是紧接下来快速强调这些可能性中的一些。
[0025]按照一个可能实现,NVRAM 130充当系统存储器中的传统DRAM技术的完全替代或补充。在一个实施例中,NVRAM 130表示引入第二级系统存储器(例如系统存储器作为DRAM140以及NVRAM 130的部分或全部的组合)。因此,系统存储器可被看作具有近存储器部分NM 141A和远存储器部分FM 142。要理解,在不同实施例中,近存储器能够用作存储器侧高速缓存(例如,近存储器高速缓存141B)、暂存器以及与系统存储器不同的其它作用。
[0026]按照一些实施例,NVRAM 130提供NVRAM存储装置,其充当传统大容量存储装置、例如闪存/磁/光大容量存储装置152的完全替代或补充。本申请中的术语“传统大容量存储装置”指的是基于光、磁和/或闪存技术的大容量存储装置,诸如盘和闪速存储器。为了论述的简洁起见,闪存/磁/光大容量存储装置152又称作传统大容量存储装置152。因此,用于计算系统100的非易失性大容量存储装置可使用NVRAM、闪速存储器、磁存储装置或者它们的任何组合来实现。在NVRAM存储装置150充当传统大容量存储装置152的完全替代的一个实施例中,不需要将存储装置驱动程序用于块可寻址存储装置访问。去除来自存储装置访问的存储装置驱动程序开销能够增加访问速度并且节省电力。在期望NVRAM存储装置150对OS和/或应用看起来是块可访问的并且与传统大容量存储装置152不可区分的备选实施例中,模拟存储装置驱动程序能够用来向用于访问NVRAM存储装置150的软件展示块可访问接口(例如,通用串行总线(USB)仅成批传输(BOT) 1.0、串行高级技术附连(SATA) 3.0等等)。也就是说,在这些备选实施例中,NVRAM 130的字节可寻址性能够由存储装置驱动程序用来移动NVRAM存储装置150的块,并且模拟块可访问大容量存储装置,而没有引起I/O接口的成本。
[0027]按照一些实施例,NVRAM130 提供 BIOS NVRAM 160 和 TPM NVRAM 170、管理引擎(ME)固件165等,这些充当如固件闪存162之类的固件存储器的完全替代或补充。固件存储器通常采用闪存技术来实现,并且通常存储由处理器在引导过程期间所执行以初始化关键系统组件的初始指令(例如BIOS)。固件存储器还能够存储由TPM 134用来保护敏感系统信息(例如加密密钥)的系统永久状态。在一个实施例中,NVRAM 130用于固件存储器消除了对第三方闪存部件存储对系统操作而言关键的代码和数据的需要。
[0028]应当理解,NVRAM 130能够包括比图1所示的更多或更少的分区。例如,NVRAM 130能够包括用作永久存储器的分区。永久存储器是处理器和I/o直接字节可寻址以用于读和写的一种类型的存储器;但是,与易失性存储器不同,对存储器的写入跨平台电力循环被保持。在闪存装置或其它非易失性装置用于存储BIOS和/或TPM的一些实施例中,可以不需要包括 BIOS NVRAM 160 和 / 或 TPM NVRAM 170 作为 NVRAM 130 的一部分。
[0029]存储器和存储装置的选择可取决于所述装置所用于的平台的类型。例如,在个人计算机、平板计算机、笔记本计算机、移动装置(例如智能电话或PDA)中,非易失性大容量存储装置可单独使用NVRAM存储装置150或者使用NVRAM存储装置150与闪存/磁存储装置相结合来实现。在其它实现(例如大规模服务器)中,非易失性大容量存储装置可使用磁存储装置(例如硬盘驱动器)或者磁存储装置、闪存和NVRAM存储装置150的任何组合来实现。在这种情况下,负责存储装置的计算机系统硬件和/或软件可实现各种智能永久存储装置分配技术,以按照有效率或者有用的方式在FM 142/NVRAM存储装置150与传统大容量存储装置152之间分配永久程序代码和数据的块。在一些实施例中,NVRAM 130可成为芯片外(即,处理器芯片外)的唯一存储器/存储装置。在一些实施例中,代替芯片外DRAM140,DRAM可用来提供芯片上高速缓存(例如近存储器高速缓存141B)。这些实施例能够与很小的平台(例如智能电话或PDA)特别相关,其中多个存储器类/技术可能是极昂贵的,并且更多晶体管(包括存储装置)能够放置在芯片上。
[0030]NVRAM 130可结合“磨损均匀化”算法以解决在远存储器级的存储单元在过多写访问之后开始磨损的实情。由于高循环计数块最可能这样磨损,所以磨损均匀化通过与低循环计数块交换高循环计数块的地址,来跨远存储器单元分散写入。注意,大多数地址交换通常对最终用户是透明的,因为它由硬件、软件(例如低级驱动程序或操作系统)或者它们的组合来操控。
[0031]在一个实施例中,NVRAM 130能够采用非易失性随机存取存储器来实现,诸如PCM或者,更具体来说,PCMS (又称作PRAM或PCRAM)、奥氏统一存储器(OUM)、(CRAM)。远存储器的其它可能技术选择包括但不限于字节可寻址的永久存储器(BPRAM)、存储类存储器(SCM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻存储器(RRAM)、RESET (非晶)单元、SET(结晶)单元、PCME、奥氏存储器、铁电存储器(又称作聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(又称作Spintronics、SPRAM(自旋-转移矩RAM)、STRAM(自旋隧穿RAM)、磁阻、磁存储器、磁随机存取存储器(MRAM))以及半导体-氧化物-氮化物-氧化物-半导体(S0N0S,又称作介电存储器)。
[0032]为了便于说明,本申请的其余部分的大多数有时将引用“PCM”或“PCMS”作为NVRAM 130的技术选择。同样地,术语“NVRAM”、“PCM”和“PCMS”可在以下论述中可互换地使用。但是应当知道,如上所述,不同技术也可用于NVRAM 130。
[0033]然后继续图1的系统的论述,在一些实施例中,计算机系统100的架构可包括多个处理器,但是为了简洁起见,图1中示出单个处理器110。处理器110可以是任何类型的数据处理器,包括通用或专用中央处理器(CPU)、专用集成电路(ASIC)或者数字信号处理器(DSP)。例如,处理器110可以是通用处理器,诸如Core? i3、i5、i7、2 Duo和QuacUXeon ?或者Itanium?处理器,所有这些处理器可从Intel Corporation (Santa Clara, Calif.)得至丨J。备选地,处理器110可来自另一个公司,诸如ARM Holdings, Ltd (Sunnyvale, CA)、MIPSTechnologies (Sunnyvale, CA)等。处理器110可以是专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等。处理器110可在一个或多个封装内包含的一个或多个芯片上实现。处理器110可以是一个或多个衬底的一部分和/或可使用诸如例如BiCM0S、CM0S或NMOS之类的多种工艺技术的任一种在一个或多个衬底上实现。
[0034]在一个实施例中,处理器110包括集成图形单元111,集成图形单元111包括用于执行诸如3D或2D图形命令之类的图形命令的逻辑。虽然本发明的实施例并不局限于任何特定集成图形单元111,但是在一个实施例中,图形单元111能够执行工业标准图形命令,诸如由 Open GL 和 / 或 Direct X 应用编程接口 (API)(例如 OpenGL 4.1 和 Direct X 11)所规定的那些命令。
[0035]处理器110还可包括一个或多个核心112,但是再次为了清楚起见,图1中示出单个核心112。在许多实施例中,核心112包括内部功能块,诸如一个或多个执行单元、退出单元、一组通用和专用寄存器等。如果核心112是多线程或超线程的,则各硬件线程也可被认为是“逻辑”核心。核心112在架构和/或指令集方面可以是同构或异构的。例如,有些核心可以是有序的,而有些核心是无序的。作为另一个示例,两个或更多核心可以能够执行同一指令集,而其它核心可以能够仅执行那个指令集的子集或者不同的指令集。
[0036]处理器110还可包括一个或多个高速缓存、例如高速缓存113,其可实现为SRAM和/或DRAM。在未示出的许多实施例中,除了高速缓存113之外的附加高速缓存实现成使得多级高速缓存存在于(一个或多个)核心112中的执行单元与存储器装置141A、142之间。例如,共享高速缓存单元的集合可包括上级高速缓存(例如第I级(LI)高速缓存)、中间级高速缓存(例如第2级(L2)、第3级(L3)、第4级(L4)或者其它级的高速缓存)、最后级高速缓存(LLC)和/或它们的不同组合。在不同的实施例中,高速缓存113可按照不同方式来分配,并且在不同实施例中可以是许多不同大小其中之一。例如,高速缓存113可以是8兆字节(MB)高速缓存、16MB高速缓存等。另外,在不同实施例中,高速缓存可以是直接映射高速缓存、全关联高速缓存、多路组关联高速缓存或者具有另一种类型的映射的高速缓存。在包括多个核心的其它实施例中,高速缓存113可包括在所有核心之中共享的一个大部分,或者可分为若干分离功能层面(例如每个核心一个层面)。高速缓存113还可包括在所有核心之中共享的一个部分以及作为每个核心的分离功能层面的若干其它部分。在一个实施例中,高速缓存113可包括DRAM近存储器高速缓存141B。
[0037]处理器110还可包括归属代理114,其中包括协调和操作(一个或多个)核心112的那些组件。归属代理单元114可包括例如功率控制单元(P⑶)和显示单元。P⑶可以是或者包括调节(一个或多个)核心112和集成图形单元111的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
[0038]在一些实施例中,处理器110包括集成存储控制器(MC) 131,以提供用于与存储器和存储装置子系统180进行通信的接口。更具体来说,在一些实施例中,IMC 131包含对DRAM装置140进行读取、写入和刷新所需的逻辑。MC 131能够在与处理器110相同的芯片上或者在连接到处理器110的分开的芯片和/或封装上。
[0039]在一些实施例中,处理器110包括耦合到MC 131的I/O子系统115。I/O子系统115实现处理器110与下列串行或并行I/O装置之间的通信:一个或多个网络136 (诸如局域网、广域网或因特网)、存储I/O装置(诸如传统大容量存储装置152、固件闪存162等)以及一个或多个非存储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的分开的芯片和/或封装上。
[0040]I/O适配器138将处理器110内利用的主机通信协议转换成与特定I/O装置兼容的协议。对于传统大容量存储装置152,I/O适配器138可转换的有些协议包括外围部件互连(PCI)-Express 3.0、通用串行总线(USB) 3.0、串行高级技术附连(SATA) 3.0、小型计算机系统接口(SCSI)、廉价盘冗余阵列(RAID)和1394“Firewire”等等。对于固件闪存162,I/O适配器138可转换的有些协议包括串行外围接口(SPI)、Microwire等等。另外,可存在一个或多个无线协议I/O适配器。无线协议的示例是蓝牙4.0、基于IEEE 802.11的无线协议和蜂窝协议等等。
[0041]在一些实施例中,I/O子系统115还包括管理引擎(ME) 135,ME 135是允许系统管理员监测、维护、更新、升级和修复计算机系统100的微处理器(等效地为微控制器)。在一个实施例中,系统管理员能够经由网络136、通过ME 135来远程配置计算机系统100。在一个实施例中,配置能够存储在处理器110内的解码表133中。解码表133能够由MC 131和I/O子系统115来读取,IMC 131和I/O子系统115则判定应当把数据访问请求定向至何处。
[0042]在一些实施例中,处理器110包括置信平台模块(TPM) 134,以控制对诸如安全数据、加密密钥、平台配置信息等的系统永久状态的访问。在一个实施例中,这些系统永久状态存储在TPM NVRAM 170中,TPM NVRAM 170能够采用基于PCM的存储器、例如PCMS来实现。在图1所示的实施例中,TPM NVRAM 170是NVRAM 130的一部分。
[0043]在一个实施例中,TPM 134是具有密码功能性的安全微控制器。TPM 134具有多个信任相关能力,例如用于确保由TPM所保护的数据只可用于同一 TPM的“密封”能力。TPM134能够使用其加密能力来保护数据和密钥(例如秘密)。在一个实施例中,TPM 134具有唯一和秘密RSA密钥(其基于Ron Rivest、Adi Shamir和Leonard Adleman所开发的RSA算法来生成),这允许它认证硬件装置和平台。例如,TPM 134能够检验寻求对计算机系统100中存储的数据的访问的系统是预计系统。TPM 134也能够报告平台(例如计算机系统100)的完整性。这允许外部资源(例如网络上的服务器)确定平台的置信度,但是不防止用户对平台的访问。在一个实施例中,TPM 134包括与NVRAM 130进行通信的NVRAM接口。
[0044]在图1的实施例中,ME 135和TPM 134是按照芯片上系统(SOC)配置的处理器110的部分。SOC配置适合于移动平台和其它便携系统。在备选实施例中,ME 135和TPM 134能够在处理器110外部但是与其耦合的一个或多个芯片组上。这些备选实施例能够适合于服务器平台。
[0045]应当理解,计算机系统能够将NVRAM 130用于系统存储器、大容量存储装置、固件存储器和/或其它存储器和存储装置目的,即使其处理器没有处理器110的所有上述组件,或者具有比处理器110要多的组件。
[0046]在一个实施例中,计算机系统100包括NVRAM接口 132,以控制对NVRAM 130的数据访问。NVRAM接口 132耦合到MC 131和I/O子系统115。NVRAM接口 132能够从解码表133中读取配置数据,或者备选地能够依靠从MC 131和I/O子系统115所传递的解码结果。在NVRAM 130采用PCMS来实现的一个实施例中,NVRAM接口 132是PCMS接口,其采用符合PCMS技术的协议来执行字节级访问。虽然IMC 131和NVRAM接口 132能够是两个分立部件(如图1中采用分隔两个部件的虚线所示),但是在一些实施例中,頂C 131和NVRAM接口 132能够实现为一个组合控制器,以控制对存储器和存储装置的访问。
[0047]在图1中,NVRAM接口 132示为使用三个分开的线路连接到FM 142、NVRAM大容量存储装置150和BIOS NVRAM 160。但是,这不一定意味着存在将NVRAM接口 132连接到NVRAM 130的这些部分的三个分开的物理总线或通信信道。而是,在一些实施例中,公共存储器总线或者其它类型的总线用来在通信上将NVRAM接口 132耦合到FM 142、NVRAM大容量存储装置150和BIOS NVRAM 160。例如,在一个实施例中,图1中的三个线条表示总线、例如存储器总线(例如DDR3、DDR4等),NVRAM接口 132通过该总线实现事务协议以与NVRAM 130进行通信。NVRAM接口 132还可通过支持本地事务协议的总线,诸如PCIexpress (PC1-E)总线、桌面管理接口(DMI)总线或者利用事务协议的任何其它类型的总线,来与NVRAM 130进行通信。
[0048]在一些实施例中,NVRAM 130能够经由遵循与处理器间协议相同的协议(例如HyperTransport 3.0、快速路径互连(QPI) 1.1及其变体、等等)的高速链路耦合到处理器510。在这些实施例中,NVRAM接口 132能够使用为这些高速链路定义的协议与NVRAM 130进行通信。
[0049]图2是示出按照本发明的一个实施例、将NVRAM 130结合到存储器和存储装置子系统280中的计算机系统200的框图。在这个实施例中,NVRAM 130具有可配置分区(NVRAM区域230),其能够用作系统存储器、大容量存储装置、固件存储装置(例如BIOS存储装置)和其它数据存储装置。计算机系统200包括耦合到一个或多个其它处理器220的处理器210。处理器210能够与图1的处理器110相同,但是I/O适配器238不一定包括图1中用于访问传统大容量存储装置和闪速存储器的全部适配器138。在图2的实施例中,负责存储器和存储装置访问的计算机系统硬件和/或软件可实现各种智能技术,以获益于NVRAM130的低等待时间、高吞吐量和健壮性(与诸如大容量存储装置152和固件闪存162之类的传统闪存/磁/光存储装置相比)。
[0050]在一个实施例中,NVRAM 130存储了存储器接口表(MIT) 240。MIT 240包含NVRAM130的信息,其允许NVRAM 130在系统通电时自主地初始化。稍后参照图3更详细描述MIT240的详细内容。
[0051]在一个实施例中,将NVRAM 130分区为多个区域,以存储在系统通电时可能使用的数据(例如初始化数据和BIOS)以及在系统的正常操作期间可能使用的数据(例如系统存储器和永久数据存储装置)。在一个实施例中,NVRAM 130还包括NVRAM控制器260,其能够设置NVRAM 130以供处理器210访问。NVRAM控制器260还包括NVRAM地址解码器270,以在系统地址空间(由处理器210使用)与NVRAM地址空间之间转换地址。
[0052]在一个实施例中,NVRAM 130是ME 135可访问的。在图2的实施例中,ME 135是集成微处理器(等效地为微控制器),其能够与处理器210无关地通电。在一个实施例中,主电力轨285向处理器210、ME 135以及存储器和存储装置子系统280提供电力。另外,ME135和NVRAM 130从备用电力轨290接收独立电力源。当主电力轨285出故障或者以其它方式不提供电力时,ME 135能够从备用电力轨290接收电力,并且访问NVRAM 130中的ME固件165 (图1),以便与处理器210和平台的其余部分的功率状态无关地成为完全可操作的。
[0053]在一个备选实施例中,NVRAM 130能够是除ME 135之外的微控制器(例如图1的TPM 134)可访问的。这个微控制器耦合到备用电力轨290,并且能够与处理器210无关地通电。当主电力轨285出故障或者以其它方式不提供电力时,这个微控制器能够从备用电力轨290接收电力,并且访问NVRAM 130中的关联固件(例如TPM固件170),以成为完全可操作的。这个微控制器能够是处理器210的一部分,能够在处理器210外部但是与其耦合的芯片组上,能够是I/O子系统115的一部分,或者能够在I/O子系统115外部。通过这个微控制器或ME 135,计算机系统200或者计算机系统200的至少一部分甚至当主电力轨285无法提供电力时仍能起作用(使用NVRAM 130中的固件)。
[0054]图3是示出按照本发明的一个实施例在NVRAM 130中存储的数据的一个示例的框图。NVRAM 130包括MIT 240和多个区域。MIT 240存储位置指针310,每个位置指针310指向区域之一。区域包括但不限于:物理特性区域370(其存储串行存在检测(SPD)数据321、装置特定初始化序列322和其它初始化数据);固件区域375,存储BIOS、系统配置数据、嵌入管理程序、嵌入平台代理以及其它固件和软件;差错图380,存储NVRAM 130的差错位置以用于差错隔离和恢复;冗余区域385,存储NVRAM 130的冗余块以用于差错恢复;系统存储器区域390,供用作计算机系统的系统存储器。诸如大容量存储装置区域、TPM区域、永久存储器区域、差错日志等的附加区域也能够包含在NVRAM 130中。对应地,位置指针310包括物理特性指针320、固件指针330、差错图指针340、冗余度指针350和存储器指针360。也能够包含附加指针,以用于指向附加区域。指针320-360中的每个指向对应区域。在一个实施例中,每个指针320-360存储起始地址的信息和对应区域的长度。图3中的虚线箭头示出指针与其对应区域之间的关系。[0055]如上所述,NVRAM区域存储能够用于差错恢复的诸如差错图380和冗余区域385之类的信息。例如,NVRAM 130可在其区域的任一个和/或MIT 240中包含被破坏数据。破坏能够防止访问对系统的自行初始化至关重要的数据。为了围绕这个问题进行工作,NVRAM130维护已知坏位置的差错图380以及包含诸如MIT 240、系统配置数据等的至关重要数据的副本的冗余区域385。NVRAM控制器260能够使用差错图380来识别NVRAM 130的坏区,并且利用冗余区域385重新配置NVRAM 130,以拒绝使用坏区。
[0056]在一个实施例中,NVRAM 130包括一个或多个NVRAM控制器260。NVRAM 130维护与如何将NVRAM控制器260 (或者多个NVRAM控制器260)和NVRAM 130连接到系统相关的至关重要的系统配置数据(例如作为固件区域375中存储的系统配置数据的一部分)。至关重要的系统配置数据允许计算机系统200在系统的电力循环(其原本会使系统丢失这种配置信息)之前被配置到其状态。至关重要的系统配置数据的示例包括但不限于=NVRAM控制器标识数据、跨NVRAM控制器260的交织信息、NVRAM控制器260和DIMM相对于系统拓扑的位置等等。
[0057]在NVRAM 130包括多个NVRAM控制器260的一个实施例中,多个NVRAM控制器260之一作为引导代理来操作。在这种环境中,处理器210需要知道哪一个NVRAM控制器260是用于引导的目标。这能够通过允许平台查询所有NVRAM控制器260的硬件协议来实现。具有引导能力的一个NVRAM控制器260将响应该查询,通告其作为引导代理的能力。
[0058]在一个实施例中,在引导时间,在NVRAM 130的自主初始化过程期间读取MIT240。在初始化NVRAM 130之后,NVRAM 130中存储的BIOS能够由处理器210来访问,以执行BIOS代码,例如pre-EFI (可预扩展固件接口,又称作PEI) BIOS代码。PEI BIOS代码负责初始系统配置,诸如处理器、芯片组、处理器和芯片组互连(例如HyperTransport 3.0、快速路径互连(QPI) 1.1以及存储器和存储装置子系统)的初始化。PEI BIOS代码还负责交织存储器并且切换到称作驱动程序执行环境(DXE)的更高级BIOS模块,如统一 EFI (UEFI)标准(例如UEFI规范版本2.3.1)中定义。
[0059]应当理解,MIT 240用于NVRAM 130的自主初始化是与存储器和存储装置子系统280的配置无关的。更具体来说,NVRAM 130能够存储MIT 240和对应区域,而不管存储器和存储装置子系统280是否包括DRAM 140或附加存储器装置、例如块可寻址的非易失性装置(例如闪存/磁/光存储装置)。在以下描述中,计算机系统200的这些备选实施例统称为“计算机系统200的变体”。
[0060]图4是示出按照本发明的一个实施例的NVRAM 130的自主初始化的方法400的流程图。方法400能够由计算机系统200或者其变体来执行,如先前所定义。为了描述的简洁起见,将参照图2的实施例来描述图4的流程图的操作。但是,应当理解,流程图的操作能够通过图2的实施例以及除了这些附图所示那些实施例之外的实施例来执行。另外,参照图2所述的实施例能够执行与参照图4的流程图所述那些操作不同的操作。
[0061]在一个实施例中,NVRAM 130在系统通电时开始自主初始化过程(框450)。当计算机系统200通电时(框401),生成通电重置信号,以重置处理器210以及NVRAM 130 (框402)。又参照图3,NVRAM控制器260初始化装置特定初始化序列322,以使NVRAM 130(具体来说是MIT 240)是NVRAM控制器260可读的(框403),使得MIT 240能够由NVRAM控制器260按照装置不可知方式来读取。在这里,“装置不可知方式”表示NVRAM控制器260不需要与哪种NVRAM正设法读取有关的附加信息,只要NVRAM控制器260有权访问装置特定初始化序列322。如果NVRAM 130中存在任何差错(由差错图380所指示),则NVRAM控制器260通过采用冗余区域385中的冗余块替代差错块来解决这些差错(框404)。然后,NVRAM控制器260执行装置特定硬件初始化,以初始化NVRAM 130 (框405)。这个硬件初始化允许NVRAM控制器260后面的整个NVRAM 130是在功率和性能优化模式中可访问的。然后,NVRAM控制器260将MIT 240数据提供给处理器210,并且设置NVRAM 130以供处理器210访问(框406)。在这点上,还设置NVRAM地址解码器270,以将系统地址空间中的地址转换成NVRAM地址空间中的地址。框401-406中的上述初始化操作是自主的,这意味着,在没有来自处理器210、固件或者NVRAM 130外部的逻辑电路的任何交互或者任何帮助的情况下,初始化NVRAM 130。处理器210、固件或者NVRAM 130外部的逻辑电路无需在NVRAM130的自主初始化之前运行。在访问和运行BIOS以用于平台引导之前执行自主初始化。在BIOS存储于NVRAM 130中的实施例中,BIOS仅在NVRAM 130按照框401-406中的上述操作初始化之后才可访问。
[0062]随后,处理器210执行通电重置向量,其被定向到NVRAM控制器260 (框407)。当NVRAM 130已经被设置以供处理器访问时,处理器210能够取出NVRAM 130中的BIOS,并且执行BIOS以引导计算机系统200的其余部分。然后,处理器210从这点继续进行引导过程(框408);例如,通过初始化其它处理器220、DRAM 140、1/0装置(例如1/0装置137和其它1/0接口(若有的话)),并且引导OS。
[0063]图4的流程图所示的技术能够使用非暂时机器可读或计算机可读介质、例如非暂时机器可读或计算机可读存储介质(例如磁盘、光盘、随机存取存储器、只读存储器、闪速存储器装置和相变存储器)上存储的指令和数据来实现。
[0064]本发明的实施例还可作为计算机程序产品来提供,所述计算机程序产品可包括其上存储了指令的非暂时机器可读介质,所述指令可用来对计算机(或其它电子装置)编程以执行过程。非暂时机器可读介质可包括但不限于软盘、光盘、⑶-ROM以及磁光盘、ROM、RAM、EPROM、EEPR0M、磁卡或光卡、传播介质或者适合于存储电子指令的其它类型的介质/机器可读介质。本发明的实施例还可作为计算机程序产品来下载,其中程序可通过载波或其它传播介质中包含的数据信号、经由通信链路(例如调制解调器或网络连接)从远程计算机(例如服务器)传递到请求计算机(例如客户端)。
[0065]虽然按照若干实施例描述了本发明,但是本领域的技术人员将会知道,本发明并不局限于所述实施例,而是可在所附权利要求书的精神和范围之内,经过修改和变更来实施。因此,本描述要被看作是说明性的而不是限制性的。
【权利要求】
1.一种设备,包括: 计算机系统中的处理器; 耦合到所述处理器的非易失性随机存取存储器(NVRAM)控制器;以及 包括所述NVRAM控制器的NVRAM,所述NVRAM是可由所述处理器来字节重写和字节擦除的,所述NVRAM上存储了包含信息的存储器接口表,所述信息供所述NVRAM控制器在所述计算机系统通电时自主地初始化所述NVRAM,而没有与所述NVRAM外部的固件和所述处理器交互,由此允许所述计算机系统访问所述NVRAM。
2.如权利要求1所述的设备,其中,所述NVRAM上存储了基本输入输出系统(BIOS),其中,在所述NVRAM的自主初始化之后,所述NVRAM控制器为所述处理器提供所述存储器接口表中的所述信息,以允许所述处理器访问所述BIOS并且由此引导所述计算机系统。
3.如权利要求1所述的设备,还包括: 耦合到所述处理器的微控制器; 向所述处理器提供电 力的主电力轨;以及 支持给所述微控制器的备用电力的备用电力轨, 其中,当所述主电力轨不向所述计算机系统提供电力时,所述微控制器使用所述存储器接口表中的所述信息来访问所述NVRAM中的微控制器固件。
4.如权利要求3所述的设备,其中,所述微控制器是管理引擎(ME)。
5.如权利要求1所述的设备,其中,所述NVRAM包括相变存储器(PCM)。
6.如权利要求1所述的设备,其中,所述NVRAM包含多个区域,以及所述存储器接口表包含多个位置指针,所述位置指针中的每个指向所述区域之一。
7.如权利要求6所述的设备,其中,所述多个区域包括下列一个或多个:串行存在检测(SPD)数据、装置特定初始化序列、系统配置数据、差错图和冗余区域。
8.如权利要求1所述的设备,其中,所述NVRAM上存储了差错图,其中,所述NVRAM控制器使用所述差错图来识别所述NVRAM的坏区,以及使用所述NVRAM中的冗余区域重新配置所述NVRAM以拒绝使用所述坏区。
9.如权利要求1所述的设备,还包括: 所述NVRAM内的多个NVRAM控制器,所述NVRAM控制器中的每个管理所述NVRAM的一部分, 其中,所述NVRAM上存储了系统配置数据,所述系统配置数据描述如何将所述多个NVRAM控制器和所述NVRAM连接到所述计算机系统。
10.如权利要求1所述的设备,还包括: 所述NVRAM内的多个NVRAM控制器,所述NVRAM控制器中的每个管理所述NVRAM的一部分,以及所述NVRAM控制器之一是用于自主地初始化所述NVRAM的引导代理,所述引导代理响应来自所述计算机系统的查询而将它自己识别为所述引导代理。
11.一种方法,包括: 在计算机系统中接收通电信号,所述计算机系统包括处理器、可由所述处理器来字节重写和字节擦除的非易失性随机存取存储器(NVRAM); 由耦合到所述NVRAM的NVRAM控制器来读取所述NVRAM中的存储器接口表; 由所述NVRAM控制器在所述计算机系统通电时使用所述存储器接口表中的信息来自主地初始化所述NVRAM,而没有与所述NVRAM外部的固件和所述处理器交互;以及 向所述处理器提供所述信息以允许所述处理器访问所述NVRAM。
12.如权利要求11所述的方法,其中,所述NVRAM上存储了基本输入输出系统(BIOS),所述方法还包括: 在所述NVRAM的自主初始化之后,由所述NVRAM控制器向所述处理器提供所述存储器接口表中的所述信息,以允许所述处理器访问所述BIOS并且由此引导所述计算机系统。
13.如权利要求11所述的方法,其中,所述计算机系统包括:耦合到所述处理器的微控制器、向所述处理器提供电力的主电力轨以及支持给所述微控制器的备用电力的备用电力轨,所述方法还包括: 向所述微控制器提供所述信息以允许所述微控制器:当所述主电力轨不向所述计算机系统提供电力时,访问所述NVRAM中存储的微控制器固件。
14.如权利要求13所述的方法,其中,所述微控制器是管理引擎(ME)。
15.如权利要求11所述的方法,其中,所述NVRAM包括相变存储器(PCM)。
16.如权利要求11所述的方法,其中,所述NVRAM包含多个区域,并且其中,读取所述NVRAM中的所述存储器接口表还包括: 定位所述存储器接口表中的多个位置指针之一;以及 通过跟随所述位置指针之一来定位所述区域中的对应区域, 其中,所述多个区域包括下列一个或多个:串行存在检测(SPD)数据、装置特定初始化序列、系统配置数据、差错图和冗余区域。
17.如权利要求11所述的方法,其中,所述NVRAM上存储了差错图和冗余区域,所述方法还包括: 使用所述差错图来识别所述NVRAM的坏区;以及 使用所述冗余区域来重新配置所述NVRAM以拒绝使用所述坏区。
18.如权利要求11所述的方法,其中,所述NVRAM包括多个NVRAM控制器,每个控制器管理所述NVRAM的一部分,所述方法还包括: 由所述多个NVRAM控制器接收来自所述计算机系统的对于引导代理的查询;以及 响应所述查询,所述多个NVRAM控制器之一将它自己识别为所述引导代理。
19.一种系统,包括: 计算机系统中的处理器; 耦合到所述处理器的主电力轨; 备用电力轨; 耦合到所述处理器的非易失性随机存取存储器(NVRAM)控制器;以及包括所述NVRAM控制器并且耦合到所述主电力轨和所述备用电力轨的NVRAM,所述NVRAM是可由所述处理器来字节重写和字节擦除的,所述NVRAM上存储了包含信息的存储器接口表,所述信息供所述NVRAM控制器在所述主电力轨或者所述备用电力轨通电时自主地初始化所述NVRAM,而没有与所述NVRAM外部的固件和所述处理器交互,由此允许所述计算机系统访问所述NVRAM。
20.如权利要求19所述的系统,其中,所述NVRAM上存储了基本输入输出系统(BIOS),其中,在所述NVRAM的自主初始化之后,所述NVRAM控制器为所述处理器提供所述存储器接口表中的所述信息,以允许所述处理器访问所述BIOS并且由此引导所述计算机系统。
21.如权利要求19所述的系统,还包括: 与所述处理器和所述备用电力轨耦合的微控制器, 其中,当所述主电力轨不向所述计算机系统提供电力时,所述微控制器使用所述存储器接口表中的所述信息来访问所述NVRAM中的微控制器固件。
22.如权利要求21所述的系统,其中,所述微控制器是管理引擎(ME)。
23.如权利要求19所述的系统,其中,所述NVRAM包括相变存储器(PCM)。
24.如权利要求19所述的系统,其中,所述NVRAM包含多个区域,以及所述存储器接口表包含多个位置指针,所述位置指针中的每个指向所述区域之一,其中,所述多个区域包括下列一个或多个:串行存在检测(SPD)数据、装置特定初始化序列、系统配置数据、差错图和冗余区域。
25.如权利要求19所述的系统,其中,所述NVRAM上存储了差错图,其中,所述NVRAM控制器使用所述差错图来识别所述NVRAM的坏区,以及使用所述NVRAM中的冗余区域来重新配置所述NVRAM以拒绝使用所述坏区。
26.如权利要求19所述的系统,还包括: 所述NVRAM内的多个NVRAM控制器,所述NVRAM控制器中的每个管理所述NVRAM的一部分, 其中,所述NVRAM上存储了系统配置数据,所述系统配置数据描述如何将所述多个NVRAM控制器和所述NVRAM连接到所述计算机系统。
27.如权利要求19所述的系统,还包括: 所述NVRAM内的多个NVRAM控制器,所述NVRAM控制器中的每个管理所述NVRAM的一部分,以及所述NVRAM控制器之一是用于自主地初始化所述NVRAM的引导代理,所述引导代理响应来自所述计算机系统的查询而将它自己识别为所述引导代理。
【文档编号】G06F12/00GK103946814SQ201180075150
【公开日】2014年7月23日 申请日期:2011年9月30日 优先权日:2011年9月30日
【发明者】M.K.纳基穆图, M.库马, D.齐亚卡斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1