非易失性随机访问存储器中存储bios的装置、方法和系统的制作方法

文档序号:6485206阅读:263来源:国知局
非易失性随机访问存储器中存储bios的装置、方法和系统的制作方法
【专利摘要】在计算机系统中使用一种非易失性随机访问存储器(NVRAM)以在平台存储器层次结构中执行多个角色。该NVRAM是可通过处理器字节可重写和字节可擦除的。该NVRAM耦合至该处理器以被该处理器直接访问而不用通过I/O子系统。该NVRAM存储基本输入和输出系统(BIOS)。在该启动过程的可预扩展固件接口(PEI)阶段,在该处理器中的该高速缓存可被用在该BIOS执行的写回模式中。
【专利说明】非易失性随机访问存储器中存储BIOS的装置、方法和系统

【技术领域】
[0001] 本发明的实施例涉及一种计算机系统;并且更加具体地,涉及用于BIOS存储器的 可按字节寻址的非易失性随机访问存储器的使用。

【背景技术】
[0002] 相关领域的描述
[0003] A.当前的存储器和存储配置
[0004] 当今计算机创新的一个制约因素是存储器和存储技术。在传统的计算机系统中, 系统存储器通常由动态随机访问存储器(DRAM)实现。基于DRAM的存储器即使在无存储器 读取或写入发生时也要耗电,因为它必须连续的为内部电容再充电。基于DRAM的存储器为 易失性的,其意味着只要移除了电源存储在DRAM存储器中的数据就会丢失。
[0005] 关于海量存储,传统的海量存储装置通常包含非易失性磁性媒介(例如,硬盘驱 动器)和/或闪存(也被称为"闪盘(例如,固态驱动器(SSD))。这些存储装置是可块寻 址的,其意味着存储器的单一字节不能被个别地访问。然而,字节都是以数据的多字节块进 行读和写(例如,16字节)。通常,这些存储装置被认作I/O装置因为它们由处理器通过各 种I/O适配器进行访问,各种I/O适配器实现了各种I/O协议。这些I/O适配器和I/O协 议消耗大量的电能并且在平台的电路小片区和形状因素上具有显著的影响。此外,对于已 限制了电池寿命的便携式或移动装置而言(例如,平板电脑、照相机和移动电话),它们的 存储装置(例如,嵌入式多媒体卡(eMMC))和安全数字(SD卡)通常通过低功率互连和1/ 0控制器耦合至该处理器以满足活跃时和闲置时的电力预算。这些互连和I/O控制器不能 连续地为满足用户体验来传递所需的带宽。
[0006] 关于固件存储器,一种传统的计算机系统通常使用闪存装置来存储经常被读取但 是很少(或从不)被写入的持久性系统信息。例如,基本输入和输出系统(BIOS)映像通常 被存储在闪存装置中。现在市场中可得的闪存装置通常已经限制了速度(例如,50MHz)。这 个速度将被读取协议的开销而进一步降低(例如,2. 5MHz)。为了提高该BIOS的执行速度, 传统的处理器通常在启动过程的可预扩展固件接口(PEI)阶段期间缓存一部分的BIOS代 码。然而,该处理器的高速缓存具有非常有限的容量。因此,被用于初始化系统配置的BIOS 代码的数量也是非常有限的。该处理器高速缓存的大小限制对于在PEI阶段中使用的该 BIOS代码(也称为"PEI BIOS代码")的大小设置了明显的约束。因此,该PEI BIOS代码 不能被简单地扩展以支持存储器配置和多个处理器族的大型组合。随着对于处理器初始化 的增长的需求,处理器互连了使用各种技术和多个处理器族实现的存储器和存储器,更多 样化的PEI BIOS代码的需求也增加了。一种解决方案是构建较大的处理器高速缓存以缓 存该代码。然而,处理器高速缓存的大小不能摆脱系统其余部分的消极影响而被简单地增 加。
[0007] B.相夺存储器(PCM)和相关抟术
[0008] 相变存储器(PCM),有时也被称作PCME、PRAM、PCRAM、双向统一存储器、硫属化物 RAM和C-RAM,是一类非易失性计算机存储器,其利用硫属化合物玻璃的独特的性能。由于 电流通过生成的热,这个材料可在两个状态之间被切换:结晶体和非结晶。最近版本的PCM 能获得两种其他不同的状态,高效地双倍存储器存储容量。PCM是使用闪存在非易失性角色 中竞争的多个新存储技术中的一种。闪存有多个实际问题,这些替换希望用于寻址。
[0009] 例如,PCM能在应用程序中提供更好的性能,其中快速地写是很重要的,部分是因 为该存储元件能被更快地切换,并且也由于单独的位可被变为要么是1要么是〇而不需要 首先对单元的整块的擦除(通常是闪存的情况)。PCM的高性能使得其在非易失性存储器 的角色中可能是非常有利的,该非易失性存储器的当前性能被存储器访问时间所限制。 [0010] 此外,当PCM装置降低使用(像闪存)时,它们更加缓慢地降低。PCM装置可使用 大约1亿写周期。PCM生命周期受到机制的限制,比如在编程、金属(或其他材料)迁移、和 其他机制期间由于GeSbTe (GST)热膨胀导致的降低。

【专利附图】

【附图说明】
[0011] 通过参考下面的描述和附图,本发明可被最好地理解,附图可被用于图示本发明 的实施例。在图中:
[0012] 图1根据本发明的一个实施例示出了计算机系统,该计算机系统在该平台存储层 次结构的一层或多层中使用非易失性存储随机访问(NVRAM)。
[0013] 图2根据本发明的一个实施例示出了一种计算机系统,该计算机系统将NVRAM用 于传统非易失性海量存储器和固件存储器的整体替换。
[0014] 图3根据本发明的实施例示出了一种计算机系统,该计算机系统使能该BIOS的压 缩。
[0015] 图4根据本发明的实施例示出了在启动过程的PEI阶段期间一种BIOS执行顺序 的方法。
[0016] 图5根据本发明的实施例示出了一种计算机系统的实施例,该计算机系统支持大 BIOS映像和固件。
[0017] 图6根据本发明的实施例示出了在启动过程的PEI阶段期间一种BIOS执行顺序 的方法。

【具体实施方式】
[0018] 在下面的描述中,提出了多个特定的细节。但是,可以理解的是本发明的实施例可 被实现而不用这些特定细节。在其他例子中,为了不模糊这个描述的理解,公知的电路、结 构和技术不再详细地显示。
[0019] 参考说明书中的"实施例"、"一个实施例"、"一种示例性实施例"等,指示了被描述 的实施例可包含特定特征、结构或特性,但是每个实施例可不必须包含该特定特征、结构或 特性。此外,这些短语不是必须涉及相同的实施例。进一步,当特定的特征、结构或特性联 系实施例被描述时,它被视为在本领域技术人员的知识范畴内来影响联系到其他实施例的 这个特征、结构或特性,而无论是否被明确地描述。
[0020] 在下面的描述和权利要求中,词"耦合"和"连接",以及它们的衍生词可被使用。可 以理解的是这些词不试图作为彼此的同义词。"耦合"被用于指示两个或多个元件,其可或 不可为彼此间直接物理或电气接触,彼此间互操作或交互。"连接"被用于指示两个或者多 个彼此耦合的元件之间通信的建立。
[0021] 使用虚线边框被括起来的文本和块(例如,大破折号、小破折号、点划线、点)这里 有时被用来图示可选操作/组件,这些可选操作/组件增加其他特征到本发明的实施例中。 然而,这样的符号不应被认为意味着它们是唯一的选择或可选操作/组件,和/或用实线框 起来的块在本发明的某些实施例中不是可选的。
[0022] 下面描述的本发明的实施例定义了平台配置,该平台配置使能了用于NVRAM使用 的层次化存储子系统组织。存储器的层次结构中NVRAM的使用也使能了新用途,比如,如下 面详细描述的扩展的启动空间和海量存储的实现。
[0023] 图1是图示了一种计算机系统100的框图,该计算机系统100在该平台的存储层 次结构的一层或多层中使用字节可寻址非易失性随机访问存储器(NVRAM) 130。该词"平台 存储层次结构"这里指的是计算机系统1〇〇使用以存储数据、指令、状态和其他持久和非持 久的信息的整个存储媒介。在一个实施例中,计算机系统100中所有的持久存储器能以可 配置方式合并至一个NVRAM130中。此外,NVRAM130的一些部分能被分配作为系统存储器 的DRAM的替换。NVRAM 130的多样性促进技术从具有在持久化面向块文件系统上执行的操 作系统(0S)的传统平台迁移到操作系统,该操作系统理解完全持久化、字节可寻址、单层 数据存储。
[0024] 在一个实施例中,NVRAM130能被配置为在典型平台存储层次结构中实现角色为下 述的一个或者多个:高速缓存、系统存储器(也称作主存、主要存储器、可执行存储器)、存 储装置(也被称作第二存储器和海量存储器),以及固件存储器(比如启动存储器(也被称 作BIOS闪存)、可信任平台模块(TPM)等)。具有不同角色的平台存储层次结构也被考虑 并且NVRAM130的应用并不限于上述角色。
[0025] 依照他们在平台存储层次结构中的特性和/或应用,NVRAM130区别于其他指令和 数据存储器/存储技术。例如,NVRAM130不同于 :
[0026] 1)静态随机访问存储器(SRAM),其用作高速缓存,该高速缓存被分配至处理器核 或由多个处理器核共享;
[0027] 2)高速存储器(例如,动态随机访问存储器(DRAM)),其用作处理器内(例如,与 处理器在同一电路小片中)和/或处理器外(例如,与处理器在相同或不同封装中)的一 个或者多个高速缓存;
[0028] 3)闪存/磁盘/光盘,其用作驱动存储器;以及如闪存或只读存储器(ROM)的用 作启动ROM的存储器。
[0029] 本发明一个实施例中的NVRAM(例如,NVRAM130)具有如下特性:
[0030] 1)非易失性(即使电源被移出它也维持它的内容,类似于在固态磁盘(SSD)中使 用的闪存,并且不同于易失性的SRAM和DRAM);
[0031] 2)比易失性存储器如SRAM和DRAM具有较低的功耗;
[0032] 3)随机访问(也被称作可随机寻址);
[0033] 4)比SSD中找到的闪存(其在一个时间仅能被重写和擦除"块"-NOR闪存大小最 小为64Kb以及NAND闪存为16Kb)具有较低粒度水平的可重写及可擦除(例如,字节级);
[0034] 5)可用作系统存储器以及可被分配全部或部分的该系统的地址空间;
[0035] 6)通过总线使用事务协议(支持事务标识符(ID)的协议以区分不同的事务以使 得那些事务能无序地完成)能被耦合至该处理器并且允许以足够小的粒度级访问以支持 作为系统存储器的该NVRAM的操作(例如,高速缓存线大小,比如64或128字节)。例如, 该总线可为存储总线(例如,DDR总线,比如DDR3、DDR4等。),并在该总线上运行事务协 议而非正常使用的非事务性协议。作为另一例子,该总线可在其上正常地运行事务性协议 (本地事务协议),比如外围设备接口标准(PCIE)总线、桌面管理接口(DMI)总线或使用事 务协议和足够小事务有效负荷大小(例如,高速缓存线大小,比如64或128字节)的任意 其他类型的总线;以及
[0036] 7)下述一个或者多个:
[0037] a)比现有非易失性存储器/存储技术具有较快写速度(比如闪存);
[0038] b)非常高的读速度(比闪存快并且接近或等于DRAM的读速度);
[0039] c)直接可写(在写数据类似于SSD中使用的闪存之前,而不是需要擦除(Is覆 盖));和/或
[0040] d)故障前数量级(例如,2或3)较高的写寿命(比SDD中使用的启动ROM和闪存 要长)。
[0041] 如上所述,与闪存相反,其必须在一定时间被重写和擦除完整的"块",在任意给定 实现中NVRAM被访问的粒度级可依赖于该NVRAM耦合的该特定存储器控制器和该特定存储 总线或其他类型总线。例如,在一些实现中,NVRAM 130被用作系统存储器,NVRAM可在高速 缓存线的粒度上被访问(例如,64字节或128字节高速缓存线),尽管固有能力可以字节粒 度被访问,因为高速缓存线位于该存储器子系统访问存储器的级别。因此,当NVRAM被用在 存储器子系统中时,它可以在相同存储器子系统中使用的DRAM(例如,"近存储器")相同的 粒度级被访问。即便如此,由该存储器控制器和存储总线或其他类型总线访问NVRAM的粒 度级要小于闪存使用的块大小以及该I/O子系统控制器和总线的访问大小的粒度级。
[0042] NVRAM 130可用作指令和数据存储装置,其具有足够短的访问时间要求以使得对 处理器几乎没有影响。这里,程序指令和数据可在处理器执行前从较深的快速/磁性/光 学海量存储器152加载至NVRAM 130。而且,如下详细描述的,NVRAM 130可被布置在存储 器总线上并且可直接与存储器控制器通信,该存储器控制器又与处理器直接通信。
[0043] 用于NVRAM 130的新存储技术的出现提供了大量新的可能。虽然下面将以更大篇 幅的进一步讨论,这些可能性中的一些将很快在下面立即被突出出来。
[0044] 根据一种可能的实现,NVRAM 130充当系统存储器中传统DRAM技术的整体替换或 补充。在一个实施例中,NVRAM 130表示了第二级系统存储器(例如,系统存储器为DRAM 140和一些或全部的NVRAM 130的组合)的介绍。同样,该系统存储器可被看做具有近存储 器部分匪141A和远存储器部分FM 142。可以预期的是,在不同实施例中,近存储器能用作 存储器端缓存(例如,近存储器高速缓存141B)、便笺笺式存储器和不同于系统存储器的其 他角色。在这里描述的实施例中,NVRAM 130的该NM141A部分仅用作系统存储器以简化该 讨论。
[0045] 根据一些实施例,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的 字节可寻址性能由存储驱动器使用以移动NVRAM存储装置150的块以及模拟块可访问海量 存储装置而不用在这些备选实施例中产生I/O接口的花销。
[0046]根据一些实施例,NVRAM 130 提供了 BIOS NVRAM 160 和 TPM NVRAM 170,其作为固 件存储器的整体替换和补充,比如BIOS闪存162和TPM闪存172。固件存储器通常用闪存 技术实现并且通常存储由处理器执行的初始化指令(例如,BIOS)以在启动过程中初始化 关键的系统组件。固件存储器也能存储由TPM 134使用的系统持久状态以保护敏感系统信 息(例如,加密密钥)。在一些实施例中,用于固件存储器的NVRAM 130的使月去除了对于 第三方闪存部分的需求,来存储系统操作中关键的代码和数据。
[0047] 存储器和存储器装置的选择可依赖于设备于其上被使用的平台的类型。例如,在 个人计算机、平板电脑、笔记本电脑、移动装置(例如,智能手机或PDA),该非易失性海量存 储可单独使用NVRAM存储器150实现,或使用NVRAM存储器150组合快速/磁性存储装置来 实现。在其他实现中(例如,大型服务器),该非易失性海量存储可使用磁性存储器(例如, 硬盘驱动器)或磁性存储器、闪存和NVRAM存储器150的任意组合来实现。在这个情况下, 负责存储的计算机系统硬件和/或软件可实现各种智能持久存储分配技术来在该FM142/ NVRAM存储装置150和传统海量存储装置152之间以高效的或其他有用方式来分配持久程 序代码和数据块。在一些实施例中,NVRAM 130可成为单独的存储器/存储装置晶体外芯 片(例如,处理器芯片晶体外)。在一些实施例中,替代晶体外芯片DRAM 140,DRAM可被用 于提供晶体内芯片高速缓存(例如,近存储器高速缓存141B)。这些实施例可与非常小的平 台(例如,智能手机或PDA)特定地相关,其中多个存储器类别/技术可是成本高昂并且更 多的晶体管(包含存储装置)能设置在芯片上。
[0048] 该NVRAM 130可包含"耗损平衡"算法来说明在远存储器级的该存储器存储单元 在太多次写访问后将被耗尽的事实。由于高循环计数块最可能以这种方式被耗尽,耗损均 衡通过将高循环计数块的地址与低循环计数块的地址进行交换在该远存储器存储单元之 间扩展写操作。注意的是大多数地址交换通常是对终端用户透明的,因为它由硬件、软件 (例如,低级驱动器或操作系统)或它们的组合来处理。
[0049] 在一个实施例中,NVRAM 130可用非易失性随机访问存储器(NVRAM)实现,比如 PCM或者更特别地PCMS (也被称作(PRAM或PCRAM)、双向通用存储器(0UM)、(CRAM))。远 存储器的其他可能技术的选择包括,但不限于字节可寻址持久化存储器(BPRAM)、存储级 存储器(SCM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻性存储器(RRAM)、 RESET (非晶)单元、SET (晶体)单元、PCME、奥弗辛斯基(Ovshinsky)、铁电存储器(也称 作聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(也称作自旋电子、SPRAM(自旋转移 力矩RAM)、STRAM(自旋隧穿RAM)、磁阻的、磁性存储器、和磁性随机访问存储器(MRAM))、以 及半导体-氧化物-氮化物-氧化物-半导体(SONOS,也称作介电存储器)
[0050] 为了便于解释,剩余的绝大部分的该应用通常将"PCM"或"PCMS"指的是选择用于 NVRAM 130的技术。如此,词NVRAM、PCM和PCMS可在下面的讨论中可交换地使用。然而, 应该意识到的是,如上所述,不同的技术也可用于NVRAM 130。
[0051] 然后继续讨论图1的该系统,在一些实施例中,计算机系统100的体系结构可包括 多个处理器,虽然图1中为了简便而图示了单独一个处理器110。处理器110可为任意类型 的数据处理器,其包含通用或专用中央处理单元(CPU)、特定用途集成电路(ASIC)或数字 信号处理器(03?)。例如,处理器110可为通用处理器,比如(:〇^\3、丨5、丨7、2011〇和0皿(1、 Xeon?、或者Itanium?处理器,上述所有都源自加州圣克拉拉的英特尔公司。可选地,处理 器110也可源自其他公司,比如,加州桑尼威尔的ARM控股有限公司、加州桑尼威尔的MIPS 技术公司等。处理器110可为专用处理器,比如,例如,网络或通信处理器、压缩引擎、图形 处理器、协处理器、嵌入式处理器等。处理器110可在一个或者多个芯片上实现,该芯片被 包含在一个或者多个封装中。处理器110可为一部分和/或可被实现在一个或者多个使用 任意多种处理技术的衬底上,比如,例如,BiCMOS、CMOS或者NM0S。
[0052] 在一个实施例中,该处理器110包含集成图形单元111,其包含执行图形命令的逻 辑,比如3D或2D图形命令。而本发明的实施例不限定于任意特定集成图形单元111,在一 个实施例中,该图形单元111能执行工业标准图形命令,比如,Open GL和/或Direct X应 用程序接口(API)指定的那些(例如,Open GL 4. 1和Direct X 11)。
[0053] 该处理器110也可包含一个或者多个核112,虽然在图1中再次为了清楚的目的仅 图示了单核112。在一些实施例中,核112包含内部功能块,比如一个或者多个执行单元、弓丨 退单元、一组通用和特定寄存器等。如果核112是多线程或超线程,然后每个硬件线程也可 被看作"逻辑的"核。该核112可为架构和/或指令集方面同构或异构。例如,一些核可为 顺序的而另一些核则是无序的。作为另一示例,两个或者更多的核能执行相同的指令集,而 另一些核能仅执行那个指令集的子集或不同的指令集。
[0054] 处理器110也可包含一个或者多个高速缓存,比如高速缓存113,其可被实现为 SRAM和/或DRAM。在一些未示出的实施例中,除了高速缓存113还实现了其他高速缓存以 使得在核112中的该执行单元与存储装置141A和142之间存在多级高速缓存。例如,共享 高速缓存单元集可包含上级高速缓存,比如1级(L1)高速缓存,中级高速缓存,比如:2级 (L2)、3级(L3)、4级(L4)、或其他级高速缓存,最后级高速缓存(LLC),和/或它们的不同组 合。在不同的实施例中,高速缓存113可以不同方式被分配并且可在不同实施例中具有一 些不同大小中的一个。例如,高速缓存113可为8兆字节(MB)高速缓存,16MB高速缓存等。 此外,在不同实施例中,该高速缓存可为一直接映射高速缓存、全关联高速缓存、多路组相 连高速缓存、或具有另一映射类型的高速缓存。在包含多核的其他实施例中,高速缓存113 可包含在所有核之间共享的一大部分或者可被划分为几个单独的功能片(例如,每个核一 片)。高速缓存113可包含在所有核之间共享的一部分以及一些其他部分,这些部分为每个 核的单独的功能片。在一个实施例中,高速缓存113可包含DRAM近存储器高速缓存141B。
[0055] 处理器110也可包含本地代理114,该本地代理包含协调和操作核112的那些组 件。该本地代理单元114可包含,例如,功率控制单元(PCU)和显示单元。该P⑶可为或包 含逻辑和组件,调节内核112和集成图形单元111的功率状态需要这些逻辑或组件。该显 示单元被用于驱动一个或者多个外部连接的显示器。
[0056] 在一些实施例中,处理器110包含集成存储器控制器(MC) 131以提供与存储器 和存储子系统180通信的接口。更具体地,在一个实施例中,IMC131包含读取、写入和刷新 DRAM装置140所必须的逻辑。頂C131能与处理器110位于相同的电路小片上,或者在单独 的电路小片上和/或与处理器110相连的封装上。
[0057] 在一些实施例中,处理器110包含耦合至頂C131的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协议,I/O子系统115可具有至少一个集成的I/O适配器138。I/O子系统115 能与处理器110位于相同的电路小片上,或者在单独的电路小片上和/或在与处理器110 相连的封装上。
[0058] 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的无 线协议和蜂窝协议等。
[0059] 在一些实施例中,I/O子系统115也包含管理引擎(ME) 135,其为允许系统管理员 监控、维持、更新、升级和修理计算机系统100的微处理器。在一个实施例中,系统管理员通 过ME 135经由网络136可远程地配置计算机系统100。在一个实施例中,该配置可被存储 在处理器110中的解码表133中。解码表133可由頂C 131和I/O子系统115读取,其然 后决定哪里的数据访问请求应该被控制。
[0060] 在一些实施例中,处理器110包含信任平台模块(TPM) 134来控制对系统持续状态 的访问,比如安全数据、加密密钥、平台配置信息等。在一个实施例中,这些系统持续状态被 存储在TPM NVRAM 170中,其能被基于PCM的存储器实现,比如PCMS。在图1所示的实施例 中,TPM NVRAM 170 是 NVRAM 130 的一部分。
[0061] 在一个实施例中,TPM 134为具有加密功能的安全的微控制器。TPM134具有多个 信任相关的能力;例如,保证由TPM保护的数据仅对同一 TPM可用的"印章"能力。TPM 134 能使用它的加密能力来保护数据和密钥(例如,秘密)。在一个实施例中,TPM 134具有唯 一且保密的RSA密钥(其基于由Ron Rivest、Adi Shamir和Leonard Adleman研发的RSA 算法生成),其允许它鉴定硬件装置和平台。例如,TPM 134能验证试图访问计算机系统100 中存储数据的系统是所预期的系统。TPM 134也能够报告该平台(例如,计算机系统100) 的完整度。这允许外部资源(例如,网络上的服务器)来确定该平台的可靠性但是并不阻 止用户对该平台的访问。在实施例中,TPM134包含NVRAM接口以与NVRAM 130进行通信。
[0062] 可以理解的是,计算机系统能使用NVRAM 130以用于系统存储器、海量存储装置、 固件存储器和/或其他存储器以及存储目的,即使它的处理器没有上述处理器110的全部 组件或具有比处理器110多的组件。
[0063] 在一实施例中,计算机系统100包含NVRAM控制器132以控制对NVRAM 130的数 据访问。NVRAM控制器132被耦合至頂C131和I/O子系统115。NVRAM控制器132能从解 码表133读取该配置数据,或者可选地,可依赖从MC131和I/O子系统115传送来的解码 结果。在实施例中,其中NVRAM 130用PCMS来实现,NVRAM控制器132为PCMS控制器,其执 行对符合该PCMS技术的协议的字节级访问。虽然IMC 131和NVRAM控制器132能为两个 分离的控制器(如图1中所示的用点线分开的两个控制器),在一些实施例中,这两个控制 器可实现为一个组合的控制器以控制对存储器和存储装置的访问。在可选实施例中,NVRAM 控制器132可位于NVRAM 130中以控制对该NVRAM存储器单元的访问。在这些可选实施例 中,NVRAM接口(未示出)能被提供在处理器电路小片上以与NVRAM 130接口连接。
[0064] 图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实现事务协议 以与NVRAM130通信。NVRAM控制器132也可通过支持本地事务协议的总线,比如PCI标 准(PCI-E)总线、桌面管理接口(DMI)总线或使用事务协议的任意其他类型总线,与NVRAM 130进行通信。
[0065] 图2是根据本发明的实施例图示计算机系统200的框图,该计算机系统200将 NVRAM 130用作传统海量存储装置152和固件存储器(例如,BIOS闪存162和TPM闪存172) 的整体替换。计算机系统200包含耦合至存储器和存储子系统280的处理器210。在这个 实施例中,存储器和存储子系统280仅包含DRAM装置140和NVRAM 130。如上所述,NVRAM 130具有可配置部分,其包含系统存储器(FM142)、海量存储装置(NVRAM存储器150)和固 件存储器(BIOS NVRAM 160和TPM NVRAM 170)。处理器210可与图1的处理器110相同, 除了 I/O适配器238不必须包含图1的用于访问传统海量存储装置和闪存的所有适配器 138。在这个情况下,负责存储器和存储装置访问的计算机系统硬件和/或软件可实现各种 智能技术以从NVRAM 130的低延迟、高吞吐量和健壮性(与传统闪存/磁性存储装置比较, 比如传统的海量存储装置152、BIOS闪存162和TPM闪存172)获益。
[0066] 该NVRAM的可配置分区
[0067] 如前所述,NVRAM 130能被划分为多个分区,其在平台存储层次结构中扮演不同的 角色。如上所述,词"平台存储层次结构"指的是高速缓存、系统存储器、海量存储装置和用 于不同目的的固件存储器(例如,BIOS存储器和TPM存储器)。在一个实施例中,将访问引 导至NVRAM 130不同分区的方法是通过解码逻辑。例如,要么在制造时间或者在现场中,计 算机系统100能编程解码表133以将NVRAM 130的不同区域标识为系统存储器、海量存储 装置、固件等。
[0068] 在图1和2的实施例中,NVRAM 130被划分为FM 142、NVRAM存储器150、BIOS NVRAM 160和TPMNVRAM 170。每个分区的地址范围可在解码表133中被定义。在一个实施 例中,当頂C 131接收到访问请求时,该请求的目标地址被解码以显示该请求是否是直接 面向存储器或I/O的。如果它是存储器请求,頂C 131进一步从该目标地址确定该请求是 直接面向匪141A还是FM 142的。对于FM 142的访问,頂C 131将该请求转至NVRAM控 制器132。如果该请求是直接面向I/O的(例如,非存储和存储I/O装置),IMC 131将该 请求传递给该I/O子系统115。I/O子系统115进一步解码该地址以确定该地址是否指向 NVRAM存储器150、BI0S NVRAM162、或其他非存储和存储I/O装置。如果该地址指向NVRAM 存储装置150或BIOS NVRAM 162, I/O子系统115将该请求转发给NVRAM控制器132。如 果该地址指向TPM NVRAM 170, I/O子系统115将该请求转给TPM 134以执行安全访问。在 一个实施例中,每个转发到NVRAM控制器132的请求都带有属性(也称作"事务类型")来 指示访问的类型。在一个实施例中,NVRAM控制器132可仿真所请求访问类型的访问协议, 以使得其他平台对于由平台存储层次结构中的NVRAM 130执行的多个角色保持未知。在可 选实施例中,NVRAM控制器132可对NVRAM 130执行存储器访问而不考虑它是哪个事务类 型。可以理解的是,该解码路径可与上面描述的不同。例如,頂C 131可解码访问请求的目 标地址并且确定它是否是指向NVRAM 130的。如果它是指向NVRAM 130, MC 131根据解码 表133生成属性。基于该属性,頂C 131然后将该请求转发给合适的下游逻辑(例如,NVRAM 控制器132和I/O子系统115)以执行所请求的数据访问。在另一实施例中,如果该对应属 性不是从上游逻辑(例如,頂C 131和I/O子系统115)传递而来,NVRAM控制器132可解码 该目标地址。其他解码路径也可被实现。
[0069] 俥能PEI BIOS代码的压缩
[0070] 如上所述,处理器提供小量的高速缓存以用于在启动期间执行预EFI (预扩展固 件接口,也称作PEI)BI0S代码。该PEI BIOS代码通常以高级语言(例如,C编程语言)来 编写,其在执行期间使用栈和/或堆。该PEI BIOS代码负责初始化系统配置,比如,处理 器、芯片集、处理器与芯片集互连(比如,超传输3.0、快速路径互连(0PI)1. 1)以及存储器 和存储子系统的初始化。该PEI BIOS代码也负责交叉存取存储器以及切换至称为驱动器 执行环境(DXE)的高级BIOS模块,如在统一 EFI (UEFI)标准中所定义的。
[0071] 在一些系统中,该处理器高速缓存在启动过程中的PEI阶段期间被设置为无迁出 模式(NEM)。该NEM也被称作高速缓存RAM (CAR)模式,其意味着该高速缓存对于执行的代 码流而言如同以存储器存储以使得所有数据存储器访问都命中并且使得没有发生高速缓 存迁移。"无迁移"在存储器控制器和系统互联被初始化之前避免了写回至系统存储器。在 一些场景中,写回能造成错误情况,比如,机器检查终止。
[0072] 在启动过程的PEI阶段(例如,当该处理器执行PEI BIOS代码时),该处理器高 速缓存的主要部分被划分为第一分区,其被映射至BIOS闪存地址范围,在其中存储该PEI BIOS代码,以及用于栈和堆的第二分区。该处理器高速缓存的第一和第二分区的细合也能 称作"NEM高速缓存",因为它的内容不能在PEI BIOS代码执行期间被迁移。该处理器高速 缓存的仅非常小的一部分(例如,几千字节)能被用于"常规"高速缓存目的;例如,用于缓 存在执行期间生成的数据以及很可能在不久的将来被重用。
[0073] 由于在处理器和BIOS闪存装置之间的1/0接口的速度较慢(例如,串行外围设备 接口(SPI)),该PEI BIOS代码被复制到该NEM高速缓存的第一分区。在传统的系统中,在 NEM高速缓存的第一分区和BIOS闪存中的该PEI BIOS代码区之间映射的地址范围是1 : 1 以保证该PEI BIOS代码的任意取出能被高速缓存以提高该PEI执行的速度。因此,在这个 系统中,BIOS闪存中的PEIBI0S代码不能被压缩。在传统的系统中,在两个分区之间的NEM 高速缓存被划分的通常大小比为2 : 1。在一系统中,其中该NEM高速缓存是1.5MB,这个 划分意味着1MB被用于PEI BIOS代码而0. 5MB被用于栈和堆。如前所述,该NEM高速缓存 的这个大小限制设置了该PEI BIOS代码的功能和执行上的有效约束。
[0074] 图3显示了根据本发明实施例的计算机系统300,其使能该BIOS的压缩。计算机 系统300包括耦合至存储器和存储子系统380的处理器310。处理器510也被耦合至一个 或者多个其他处理器520以形成多处理器系统。在一个实施例中,处理器310可通过高速 并行互连或接口被耦合至其他处理器520,比如,超传输3. 0、快速路径互连(QPI)或其他类 似的接口。
[0075] 在一个实施例中,计算机系统300在闪存装置("BIOS闪存")162中存储了压缩 的BIOS映像582。BIOS闪存162通过1/0子系统115耦合至处理器310。BIOS闪存162的 使用允许处理器310在重启时来寻找和在遗留系统中位于相同位置的BIOS ;S卩,在可通过 1/0子系统115访问的闪存装置中。压缩的BIOS映像582存储程序代码、参数和在启动期 间为计算机系统300建立BIOS的其他资源。该未压缩的BIOS映像(在压缩的BIOS映像 582后是未压缩的)包含各种BIOS模块。每个BIOS模块,又包含程序指令、或者"代码", 其能被计算机系统300的处理器310执行。在一个实施例中,一个或者多个BIOS模块包含 PEI BIOS代码,其在被执行时,允许处理器310在计算机系统的初始化启动阶段("PEI阶 段")来检测和初始化各种系统资源(例如,存储器和存储子系统380以及非存储1/0装置 137)。该PEI BIOS代码包含所需要的最小量的代码来发现所需的最小量的存储器以建立 该初始化系统资源。
[0076] 在一个实施例中,计算机系统300进一步包括通过高速链接耦合至处理器310的 BIOS NVRAM 560,该高速链接遵守和处理器间协议相同的协议(例如,超传输3.0、快速路 径互连(QPI)等)。由于它在读取上较大的容量和较低的延迟(与BIOS闪存162相比), BIOS NVRAM 560能被用于存储该未压缩的PEI BIOS代码(例如,BIOS映像570),提供了用 于栈和堆的空间以及存储了在该代码执行期间生成的调试或错误或过程状态信息。结果, 高速缓存113能被释放并用于"常规"高速缓存目的;例如,用于高速缓存在执行期间生成 的以及很可能在不久的将来被重用的数据。高速缓存113也能被用于缓存一些PEI BIOS 代码以提高代码的执行速度。此外,BIOS NVRAM 560的使用允许PEI BIOS代码的压缩,因 为处理器310现在能将该代码解压至BIOS NVRAM 560并且从BIOS NVRAM 560直接执行该 代码。结果,PEI BIOS代码的大小不再受到NEM高速缓存大小的约束,并且能容纳更多功 能和建立更多的支持。
[0077] 在该PEI阶段期间,处理器310执行操作序列,该操作能从BIOS闪存162中取回 压缩的PEI BIOS映像582,将它解压缩至BIOS NVRAM 560中的BIOS映像570,并从BIOS NVRAM 560执行BIOS映像570。处理器310也将高速缓存113设置为写回(WB)模式。因 此,处理器310能使用高速缓存113的全部容量来缓存在该PEI BIOS代码执行期间生成的 该PEI BIOS代码和数据。当高速缓存113满了并且有新代码和/或数据需要被缓存,利用 高容量的BIOS NVRAM 560和到BIOS NVRAM 560的高速度接口,高速缓存113的较旧内容 可写回至BIOS NVRAM 560。这与当高速缓存113位于NEM中时有限的访问能力(例如,用 于缓存目的的少量千字节)相反。
[0078] 在一个实施例中,该BIOS NVRAM 560由与NVRAM 130相同的存储器/存储技术实 现,比如PCMS或其他基于PCM的技术。PCMS装置能以非常高的容量大约多个十亿字节来构 建并且能通过高速链接(例如,超传输3. 0链接、QPI链接等)而被耦合至处理器。该PCMS 装置的地址空间可被映射到常规系统地址空间。与基于DRAM存储器相比较,使用PCMS或 其他基于PCM存储器的好处已经在上面进行了论述。然而,可以理解的是其他大容量、低延 迟和字节可寻址的非易失性存储器装置能被用于实现BI0SNVRAM 560,这些存储器装置具 有对PCMS相似的读和写访问特征。
[0079] 还可以理解的是,用于使能该PEI BIOS代码压缩的BIOS NVRAM 560的使用依赖 于存储器和存储子系统380的配置。更特别地,BIOS NVRAM560能被使用而不用考虑NVRAM 130是否用在存储器和存储子系统380中。在图3所示的实施例中,存储器和存储子系统 380包含被划分为FM 142、NVRAM存储器150和TMP NVRAM 160的NVRAM 130。在这个实 施例中,对于NVRAM 130而言不是必须包含BIOS NVRAM分区,因为该BIOS可驻留在BIOS NVRAM 560和/或BIOS闪存162中。在可选实施例中,存储器和存储子系统380可不包含 NVRAM 130,或者可包含具有不同于图3所示分区的NVRAM 130。进一步,在实施例中,其中 存储器和存储子系统380不包含NVRAM 130,处理器310不必须包含NVRAM控制器132和解 码表133,并且TPM数据能被存储在块可寻址非易失性装置(例如,闪存装置)。在下面的 描述中,计算机系统300和这些可选实施例全部指的是"计算机系统300及其变形"。
[0080] 图4为根据本发明的实施例图示了在启动过程中的PEI阶段期间BIOS执行顺序 的方法400的流程图。方法400由计算机系统300及其变形执行,如同之前联系图3所定 义的。为了简化描述,处理器310在下面被描述为通过QPI链接与其他处理器520和BIOS NVRAM 560耦合(虽然可以理解到也可使用其他高速互连)。进一步,为了简化描述,图4 的流程图的操作将参照图3的实施例被描述。然而,可以理解的是该流程图的操作由除在 这些图中所示的实施例之外的实施例执行。此外,参照图3讨论的实施例能执行不同于参 照图4的流程图的讨论的那些操作。
[0081] 在一个实施例中,当平台(例如,计算机系统300)上电(块401),该平台生成上电 重启信号以重启处理器310 (块402)。处理器310将该高速缓存模式设置为NEM并且初始 化高速缓存113中的该NEM空间(块403)。在实施例中,其中PEI BIOS代码执行需要堆和 /或栈空间,处理器310也设置在高速缓存113中的该堆和/或栈空间。处理器310然后在 本地处理器套接口中初始化该QPI链接,其中该QPI链接将处理器310耦合至BIOS NVRAM 560 (块 404)。
[0082] 在BIOS NVRAM 560装置被定位后,处理器310初始化BIOS NVRAM560并且通过 从该QPI链接接收到的参数来确定BIOS NVRAM 560的大小。处理器310然后初始化BIOS NVRAM 560并且创建用于访问BIOS NVRAM560的地址范围(块405)。在一个实施例中,处 理器310通过配置源地址解码器(SAD) 540来创建该地址范围以将BIOS NVRAM 560的大小 映射至该处理器存储器地址空间。
[0083] 接下来,当重启被释放时,处理器310从BIOS闪存162中预定义位置处复制PEI BIOS代码相对小的一部分到BIOS NVRAM 560中(块406)。在一个实施例中,该预定义位 置为系统地址空间中的4GB到4GB-16GB,其能被预配置到SAD 540中。该PEI BIOS代码的 这一小部分能解压缩剩余的BIOS PEI代码(例如,压缩的BIOS映像582)。在这一点上,处 理器310也能将NEM数据(其为高速缓存在NEM高速缓存中的数据)复制到BIOS NVRAM 560 (块407),并且使用PEI BIOS代码的一小部分将剩余的PEI BIOS代码解压缩至BIOS NVRAM 560中(块408),该PEI BIOS代码的一小部分已经较早地被复制到BIOS NVRAM 560。
[0084] 在复制后,处理器310跳转到BIOS NVRAM 560的地址空间并且开始执行该解压 缩的PEI BIOS代码(例如,BIOS映像570)(块409)。处理器310在高速缓存113中禁用 (例如,关闭)NEM并且使能WB模式(块410)。然后,处理器310在BIOS NVRAM 560外执 行该解压缩的PEI BIOS代码,使用高速缓存113的全部容量来存储代码和数据,在执行期 间可能需要该代码和数据。接下来,处理器310初始化剩余的QPI链接(例如,连接到其他 处理器520的链接),建立QPI链接路由(块411),初始化每个处理器的套接口中的该存储 器(例如,DIMM)(块412)以及启动全局系统存储器地址路由(块413)。处理器310进一 步从BIOS NVRAM 560复制剩余的BIOS映像到系统存储器中(例如,匪141A)并且跳转到 BIOS执行的下一阶段的存储器(块414)。然后处理器310初始化该1/0装置(例如,1/0 装置137和其他1/0接口,如果有的话)(块415),以及启动该0S (块416)。
[0085] 在一个实施例中,BIOS NVRAM 560的一部分能作为可写的而被建立。因此,即使 DIMM存储器初始化失败了,在PEI BIOS执行期间发生的错误能被记录到这个可写区域,调 试或错误或过程状态消息也一样。在一个实施例中,视频和显示错误消息也能在PEI BIOS 代码执行期间被初始化。
[0086] 支持大BIOS映像和固件
[0087] 在一些实施例中,BIOS映像能被存储在大容量、低延迟和字节可寻址非易失性存 储器装置中,该装置能被直接耦合至处理器而不用通过1/0子系统而被路由。在一个实施 例中,这个装置能由与NVRAM 130相同的存储器/存储技术实现,比如PCMS或其他基于PCM 的技术。这个装置能用存储具有其他新特征的大BIOS映像。该大BIOS映像可支持多个 平台以降低支持花费。这个装置也能存储对平台固件的配置和更新,比如BIOS、管理引擎 (ME)、功率控制单元(PCU)、电压控制单元(VCU)和微代码的配置和更新。通过将平台固件 联合为单独的、大型的持久化存储器,本发明的实施例披露了高效平台固件更新、平台配置 和应用管理支持的可能性。
[0088] 图5图示了根据本发明的实施例的计算机系统500的一个实施例,其支持大BIOS 映像和平台固件。在这个实施例中,计算机系统500在BIOS NVRAM 560中存储一个或者多 个的BIOS映像730。与图3的实施例类似,BIOS NVRAM 560通过高速链接耦合至处理器 510,该高速链接遵守与处理器间协议相同的协议(例如,超级传输3. 0、QPI等)。
[0089] 在一个实施例中,作为一个选择,计算机系统500也可包含BIOS闪存162。即,在 一个实施例中,计算机系统500包含BIOS闪存162和BIOS NVRAM 560两者。可选地,计算 机系统500可包含BIOS NVRAM 560而不包含BIOS闪存162。在实施例中,其中计算机系统 500包含BIOS闪存162和BIOS NVRAM 560两者,处理器510能被配置为要么从BIOS闪存 162要么从BIOS NVRAM 560中选择执行该PEI BIOS代码。该配置可通过处理器510的针 脚进行设置。该带子可以是软性带子,意味着默认为BIOS闪存162;但是,ME 135或其他平 台硬件能在启动时释放该处理器重启之前将配置改变为BIOS NVRAM 560。如果处理器510 被配置为选择BIOS闪存162,然后BIOS NVRAM 560的存在可被忽视并且该PEI BIOS代码 将从BIOS闪存162被执行。
[0090] 在一个实施例中,其中处理器510为硬编码以在启动时仅使用BIOS NVRAM 560, 对于计算机系统500而言必须要包含BIOS闪存162。移除BIOS闪存162的一个好处在于 降低了平台的成本。
[0091] 类似于图3的实施例,应该理解的是,为了支持大量BIOS代码和固件而使用BIOS NVRAM 560是依赖于存储器和存储子系统580的配置。更具体地,能使用BIOS NVRAM 560 而不考虑NVRAM 130是否被用作存储器和/或存储装置。在图5所示的实施例中,存储器和 存储子系统580包含被划分为FM 142、NVRAM存储器150和TMP NVRAM 160的NVRAM 130。 在这个实施例中,对于NVRAM130而言包含BIOS NVRAM分区不是必须的,因为该BIOS能驻 留在BIOS NVRAM 560或BIOS闪存162中。在可选实施例中,存储器和存储子系统580可 不包含NVRAM 130,或可包含具有不同于图5所示分区的NVRAM 130。进一步,在实施例中, 其中存储器和存储子系统580不包含NVRAM 130,处理器510不是必须包含NVRAM控制器 132和解码表133,以及TPM数据能被存储在块寻址非易失性装置(例如,闪存装置)。在下 面描述中,计算机系统500和这些可选的实施例全部指代为"计算机系统500及其变形"。
[0092] 图6为流程图,其根据本发明的实施例图示了启动过程的PRI阶段期间BIOS执行 顺序的方法600。方法600可由计算机系统500及其变形来执行,如前面与图5相连的所定 义的。为了简化描述,处理器510在下面被描述为通过QPI链接耦合至其他处理器520和 BIOS NVRAM 560 (虽然它可以被理解为也可使用其他高速互连)。进一步,为了简化描述, 图6的流程图的操作将参照图5的实施例来描述。然而,应该理解的是该流程图的操作能 由图5的实施例来执行,和由除了在这些附图中所示的那些实施例之外的实施例执行。此 夕卜,参照图5所讨论的实施例能执行与参照图6流程图所讨论的那些操作不同的操作。
[0093] 在一个实施例中,当平台(例如,计算机系统500)上电(块601),计算机系统500 生成上电重启信号以重启处理器510 (块602)。
[0094] 如前所述,在一个实施例中,处理器510支持BIOS闪存162和BIOS NVRAM 560, 并且能被配置为选择两个中的一个以用于PEI BIOS执行。如果处理器510被配置为选择 BIOS NVRAM 560以用于BIOS存储器,ME 135或其他平台硬件能在释放该处理器重启之前 设置BIOS NVRAM 569的配置。接下来,ME 135、硬件级代码(例如,功率控制代码(pcode) 或微代码(ucode)),或其他平台硬件能初始化耦合至BIOS NVRAM 560的QPI链接,通过检 查QPI链接上交换的参数来确定BIOS NVRAM 560中固件分区740的大小,并且使用固件分 区740的地址配置SAD 540 (块603)。SAD540需更被配置以使得落入固件分区地址空间的 该地址能被转向至BIOS NVRAM 560。
[0095] 在实施例中(图6中未示出),其中该处理器510为硬编码以在启动时间仅使用 BIOS NVRAM 560,处理器510能初始化耦合至BIOS NVRAM560的该QPI链接,通过检查在 QPI链接上交换的参数确定在BIOS NVRAM560中固件分区740的大小,并且使用固件分区 740的地址来配置SAD 540。
[0096] 继续块803的操作,基于该重启信号的释放,处理器510在预定的BIOS访问区域 处从固件接口表(FIT)720取回该信息(例如,该系统存储地址空间的4GB到4GB-16MB区 域)(块604)。这个区域位于BIOS NVRAM 560中。该区域(现在在BIOS NVRAM560中)包 含固件接口表(FIT)720和必要信息以使能对固件分区740的访问。固件分区740能存储 一个或者多个BIOS映像730和其他平台固件代码和数据750。在一个实施例中,FIT 720 包含固件分区740的每个分区的大小信息,以及作为NVRAM的分区。FIT720具有指定每个 BIOS映像730位置和对应类型定义的机制。该类型定义能被用于指定BIOS映像的版本和 该BIOS映像意图用于的平台类型,以及其他。
[0097] 接着块604的操作,处理器510编程MTRR存储类型范围寄存器(MTTR)以使得高速 缓存113被设置为写回(WB)模式以用于执行包含在一个BIOS映像730中的PEI BIOS代 码(块605)。处理器510然后跳转至包含该PEI BIOS代码的固件分区并执行该代码(块 606)。
[0098] 接下来,处理器510初始化剩余的QPI链接(例如链接至其他处理器520的链接) 并且建立QPI链接路由(块607),初始化每个处理器套接字中的该存储器(例如,该DIMM) (块608)并且建立全局系统存储地址路由(块609)。处理器510进一步从BIOS NVRAM 560 将剩余的BIOS映像复制到系统存储器(例如,NM 141A)中并且跳转到该存储器以用于后 续BIOS执行阶段(块610)。处理器510也初始化该1/0装置(例如,1/0装置137和其他 1/0接口,若有的话)(块611),并且启动该0S (块612)。
[0099] 在该PEI BIOS代码执行期间,如果最新的代码版本启动失败,该失败能被记录在 BIOS NVRAM 560中的BIOS标记区域中并且该启动过程能以该代码的较早版本被重启,使 用在FIT720中定义的处理代码。
[0100] 在一个实施例中,BIOS NVRAM 560的一部分能设置为可写的。因此,在该PEI BIOS 执行期间发生的错误能被记录在这个可写区域,即使DIMM存储器初始化失败。在一个实施 例中,视频和显示错误信息也能在该TOI BIOS代码执行期间被初始化。
[0101] 一旦高速缓存113被设置为WB模式以用于在BIOS NVRAM 560外执行该PEI BIOS 代码,该BIOS代码具有将数据写回到BIOS NVRAM 560中的能力。因此,到目前为止未被执 行的部分BIOS代码能作为压缩代码被存储在BIOS NVRAM 560中。在高速缓存113被设置 为WB模式后,处理器510能解压剩余的PEI BIOS代码,将解压缩的代码写入BIOS NVRAM 560中,并且在BIOS NVRAM 560的解压缩区域外执行。
[0102] 图4和6的流程图中所示的技术能使用存储在非临时性机器可读或计算机可读媒 介上的指令和数据来实现,比如非临时性机器可读或计算机可读存储媒介(例如,磁盘;光 盘;随机访问存储器;只读存储器;闪存装置;以及相变存储器)。
[0103] 本发明的实施例也可被提供为计算机程序产品,其可包含非临时性机器可读媒 介,该媒介上存储有可用来编程计算机(或其他电子装置)的指令以实现过程。该非临 时性机器可读媒介可包含,但不限制于,软盘、光盘、CD-ROM以及磁光盘、ROM、RAM、EPR0M、 EEPR0M、磁性或光学卡、传播媒体或适用于存储电子指令的其他类型的媒介/机器可读媒 介。本发明的实施例也可被作为计算机程序产品下载,其中该程序可通过在载波或其他传 播媒介中嵌入的数据信号经由通信连接(例如,调制解调器或网络连接)从远程计算机 (例如,服务器)传输到请求计算机(例如,客户机)
[0104] 当以若干个实施例形式描述本发明时,那些本领域技术人员将认识到本发明不限 于描述的实施例,能在所附权利要求的精神和范围内以修改和替换进行实现。因此该描述 被认作是示意性而不是限制。
【权利要求】
1. 一种装置包含: 包含一个或多个核的处理器; 由所述处理器通过I/O接口耦合至所述处理器的非易失性存储器(NVM),NVM其上存储 有压缩的基本输入和输出系统(BIOS)映像; 位于所述处理器中的高速缓存;以及非易失性可随机访问存储器(NVRAM),所述非易 失性可随机访问存储器耦合至所述处理器并且通过所述处理器为字节可重写和字节可擦 除的,NVRAM其上存储有未压缩的BIOS映像,所述未压缩的BIOS映像由所述处理器在启动 过程的PEI阶段自所述压缩的BIOS映像生成,其中所述未压缩的BIOS映像的执行在所述 启动过程的所述PEI阶段期间将所述高速缓存置于在写回模式下。
2. 根据权利要求1所述的装置,其中所述NVRAM包含相变存储器(PCM)。
3. 根据权利要求1所述的装置,其中所述NVRAM包含相变存储器和开关(PCMS)。
4. 根据权利要求1所述的装置,其中所述NVM通过I/O子系统而被耦合至所述处理器 并且所述NVRAM没有经过所述I/O子系统而被耦合至所述处理器。
5. 根据权利要求1所述的装置,其中通过高速链接所述NVRAM耦合至所述处理器,所述 高速链接将相同协议实现为处理器间链接。
6. 根据权利要求1所述的装置,其中所述NVM其上存储代码的第一部分被作为所述压 缩的BIOS映像被复制至NVRAM以及所述代码的第二部分被复制到所述NVRAM中以用于将 所述压缩的BIOS映像解压缩至所述NVRAM中。
7. 根据权利要求1所述的装置,其中所述NVRAM包含可写区域,所述可写区域中可被写 入在启动过程中生成的调试或错误或过程状态消息。
8. -种装置含有: 包含一个或多个核的处理器; 非易失性可随机访问存储器(NVRAM),耦合至所述处理器并且通过所述处理器为字节 可重写和字节可擦除的,NVRAM其上存储有多个BIOS映像,所述BIOS映像的一个由所述处 理器在启动过程的可预扩展固件接口(PEI)阶段期间执行;以及 在所述处理器中的高速缓存,所述高速缓存在写回模式中操作以用于所述启动过程的 所述PEI阶段期间中所述BIOS映像中的一个的执行。
9. 根据权利要求8所述的装置,其中所述NVRAM包含相变存储器(PCM)。
10. 根据权利要求8所述的装置,其中所述NVRAM包含相变存储器和开关(PCMS)。
11. 根据权利要求8所述的装置,其中所述多个BIOS映像包含多个版本的BIOS。
12. 根据权利要求8所述的装置,其中所述NVRAM存储平台固件。
13. 根据权利要求1所述的装置,其中所述多个BIOS映像支持多个平台或多个处理器 族。
14. 根据权利要求8所述的装置,其中所述NVRAM包含可写区域,所述可写区域中可被 写入在启动过程期间生成的调试或错误或过程状态消息。
【文档编号】G06F12/00GK104115136SQ201180075111
【公开日】2014年10月22日 申请日期:2011年9月30日 优先权日:2011年9月30日
【发明者】M·K·纳基穆图, M·库马 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1