CN104115136B - 非易失性随机访问存储器中存储bios的装置、方法和系统 - Google Patents

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

Info

Publication number
CN104115136B
CN104115136B CN201180075111.3A CN201180075111A CN104115136B CN 104115136 B CN104115136 B CN 104115136B CN 201180075111 A CN201180075111 A CN 201180075111A CN 104115136 B CN104115136 B CN 104115136B
Authority
CN
China
Prior art keywords
nvram
processor
bios
memory
storage
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
Application number
CN201180075111.3A
Other languages
English (en)
Other versions
CN104115136A (zh
Inventor
M·K·纳基穆图
M·库马
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN104115136A publication Critical patent/CN104115136A/zh
Application granted granted Critical
Publication of CN104115136B publication Critical patent/CN104115136B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

在计算机系统中使用一种非易失性随机访问存储器(NVRAM)以在平台存储器层次结构中执行多个角色。该NVRAM是可通过处理器字节可重写和字节可擦除的。该NVRAM耦合至该处理器以被该处理器直接访问而不用通过I/O子系统。该NVRAM存储基本输入和输出系统(BIOS)。在该启动过程的可预扩展固件接口(PEI)阶段,在该处理器中的该高速缓存可被用在该BIOS执行的写回模式中。

Description

非易失性随机访问存储器中存储BIOS的装置、方法和系统
技术领域
本发明的实施例涉及一种计算机系统;并且更加具体地,涉及用于BIOS存储器的可按字节寻址的非易失性随机访问存储器的使用。
背景技术
相关领域的描述
A.当前的存储器和存储配置
当今计算机创新的一个制约因素是存储器和存储技术。在传统的计算机系统中,系统存储器通常由动态随机访问存储器(DRAM)实现。基于DRAM的存储器即使在无存储器读取或写入发生时也要耗电,因为它必须连续的为内部电容再充电。基于DRAM的存储器为易失性的,其意味着只要移除了电源存储在DRAM存储器中的数据就会丢失。
关于海量存储,传统的海量存储装置通常包含非易失性磁性媒介(例如,硬盘驱动器)和/或闪存(也被称为“闪盘”)(例如,固态驱动器(SSD))。这些存储装置是可块寻址的,其意味着存储器的单一字节不能被个别地访问。然而,字节都是以数据的多字节块进行读和写(例如,16字节)。通常,这些存储装置被认作I/O装置因为它们由处理器通过各种I/O适配器进行访问,各种I/O适配器实现了各种I/O协议。这些I/O适配器和I/O协议消耗大量的电能并且在平台的电路小片区和形状因素上具有显著的影响。此外,对于已限制了电池寿命的便携式或移动装置而言(例如,平板电脑、照相机和移动电话),它们的存储装置(例如,嵌入式多媒体卡(eMMC))和安全数字(SD卡)通常通过低功率互连和I/O控制器耦合至该处理器以满足活跃时和闲置时的电力预算。这些互连和I/O控制器不能连续地为满足用户体验来传递所需的带宽。
关于固件存储器,一种传统的计算机系统通常使用闪存装置来存储经常被读取但是很少(或从不)被写入的持久性系统信息。例如,基本输入和输出系统(BIOS)映像通常被存储在闪存装置中。现在市场中可得的闪存装置通常已经限制了速度(例如,50MHz)。这个速度将被读取协议的开销而进一步降低(例如,2.5MHz)。为了提高该BIOS的执行速度,传统的处理器通常在启动过程的可预扩展固件接口(PEI)阶段期间缓存一部分的BIOS代码。然而,该处理器的高速缓存具有非常有限的容量。因此,被用于初始化系统配置的BIOS代码的数量也是非常有限的。该处理器高速缓存的大小限制对于在PEI阶段中使用的该BIOS代码(也称为“PEI BIOS代码”)的大小设置了明显的约束。因此,该PEI BIOS代码不能被简单地扩展以支持存储器配置和多个处理器族的大型组合。随着对于处理器初始化的增长的需求,处理器互连了使用各种技术和多个处理器族实现的存储器和存储器,更多样化的PEIBIOS代码的需求也增加了。一种解决方案是构建较大的处理器高速缓存以缓存该代码。然而,处理器高速缓存的大小不能摆脱系统其余部分的消极影响而被简单地增加。
B.相变存储器(PCM)和相关技术
相变存储器(PCM),有时也被称作PCME、PRAM、PCRAM、双向统一存储器、硫属化物RAM和C-RAM,是一类非易失性计算机存储器,其利用硫属化合物玻璃的独特的性能。由于电流通过生成的热,这个材料可在两个状态之间被切换:结晶体和非结晶。最近版本的PCM能获得两种其他不同的状态,高效地双倍存储器存储容量。PCM是使用闪存在非易失性角色中竞争的多个新存储技术中的一种。闪存有多个实际问题,这些替换希望用于寻址。
例如,PCM能在应用程序中提供更好的性能,其中快速地写是很重要的,部分是因为该存储元件能被更快地切换,并且也由于单独的位可被变为要么是1要么是0而不需要首先对单元的整块的擦除(通常是闪存的情况)。PCM的高性能使得其在非易失性存储器的角色中可能是非常有利的,该非易失性存储器的当前性能被存储器访问时间所限制。
此外,当PCM装置降低使用(像闪存)时,它们更加缓慢地降低。PCM装置可使用大约1亿写周期。PCM生命周期受到机制的限制,比如在编程、金属(或其他材料)迁移、和其他机制期间由于GeSbTe(GST)热膨胀导致的降低。
附图说明
通过参考下面的描述和附图,本发明可被最好地理解,附图可被用于图示本发明的实施例。在图中:
图1根据本发明的一个实施例示出了计算机系统,该计算机系统在该平台存储层次结构的一层或多层中使用非易失性存储随机访问(NVRAM)。
图2根据本发明的一个实施例示出了一种计算机系统,该计算机系统将NVRAM用于传统非易失性海量存储器和固件存储器的整体替换。
图3根据本发明的实施例示出了一种计算机系统,该计算机系统使能该BIOS的压缩。
图4根据本发明的实施例示出了在启动过程的PEI阶段期间一种BIOS执行顺序的方法。
图5根据本发明的实施例示出了一种计算机系统的实施例,该计算机系统支持大BIOS映像和固件。
图6根据本发明的实施例示出了在启动过程的PEI阶段期间一种BIOS执行顺序的方法。
具体实施方式
在下面的描述中,提出了多个特定的细节。但是,可以理解的是本发明的实施例可被实现而不用这些特定细节。在其他例子中,为了不模糊这个描述的理解,公知的电路、结构和技术不再详细地显示。
参考说明书中的“实施例”、“一个实施例”、“一种示例性实施例”等,指示了被描述的实施例可包含特定特征、结构或特性,但是每个实施例可不必须包含该特定特征、结构或特性。此外,这些短语不是必须涉及相同的实施例。进一步,当特定的特征、结构或特性联系实施例被描述时,它被视为在本领域技术人员的知识范畴内来影响联系到其他实施例的这个特征、结构或特性,而无论是否被明确地描述。
在下面的描述和权利要求中,词“耦合”和“连接”,以及它们的衍生词可被使用。可以理解的是这些词不试图作为彼此的同义词。“耦合”被用于指示两个或多个元件,其可或不可为彼此间直接物理或电气接触,彼此间互操作或交互。“连接”被用于指示两个或者多个彼此耦合的元件之间通信的建立。
使用虚线边框被括起来的文本和块(例如,大破折号、小破折号、点划线、点)这里有时被用来图示可选操作/组件,这些可选操作/组件增加其他特征到本发明的实施例中。然而,这样的符号不应被认为意味着它们是唯一的选择或可选操作/组件,和/或用实线框起来的块在本发明的某些实施例中不是可选的。
下面描述的本发明的实施例定义了平台配置,该平台配置使能了用于NVRAM使用的层次化存储子系统组织。存储器的层次结构中NVRAM的使用也使能了新用途,比如,如下面详细描述的扩展的启动空间和海量存储的实现。
图1是图示了一种计算机系统100的框图,该计算机系统100在该平台的存储层次结构的一层或多层中使用字节可寻址非易失性随机访问存储器(NVRAM)130。该词“平台存储层次结构”这里指的是计算机系统100使用以存储数据、指令、状态和其他持久和非持久的信息的整个存储媒介。在一个实施例中,计算机系统100中所有的持久存储器能以可配置方式合并至一个NVRAM130中。此外,NVRAM130的一些部分能被分配作为系统存储器的DRAM的替换。NVRAM 130的多样性促进技术从具有在持久化面向块文件系统上执行的操作系统(OS)的传统平台迁移到操作系统,该操作系统理解完全持久化、字节可寻址、单层数据存储。
在一个实施例中,NVRAM130能被配置为在典型平台存储层次结构中实现角色为下述的一个或者多个:高速缓存、系统存储器(也称作主存、主要存储器、可执行存储器)、存储装置(也被称作第二存储器和海量存储器),以及固件存储器(比如启动存储器(也被称作BIOS闪存)、可信任平台模块(TPM)等)。具有不同角色的平台存储层次结构也被考虑并且NVRAM130的应用并不限于上述角色。
依照他们在平台存储层次结构中的特性和/或应用,NVRAM130区别于其他指令和数据存储器/存储技术。例如,NVRAM130不同于:
1)静态随机访问存储器(SRAM),其用作高速缓存,该高速缓存被分配至处理器核或由多个处理器核共享;
2)高速存储器(例如,动态随机访问存储器(DRAM)),其用作处理器内(例如,与处理器在同一电路小片中)和/或处理器外(例如,与处理器在相同或不同封装中)的一个或者多个高速缓存;
3)闪存/磁盘/光盘,其用作驱动存储器;以及如闪存或只读存储器(ROM)的用作启动ROM的存储器。
本发明一个实施例中的NVRAM(例如,NVRAM130)具有如下特性:
1)非易失性(即使电源被移出它也维持它的内容,类似于在固态磁盘(SSD)中使用的闪存,并且不同于易失性的SRAM和DRAM);
2)比易失性存储器如SRAM和DRAM具有较低的功耗;
3)随机访问(也被称作可随机寻址);
4)比SSD中找到的闪存(其在一个时间仅能被重写和擦除“块”-NOR闪存大小最小为64Kb以及NAND闪存为16Kb)具有较低粒度水平的可重写及可擦除(例如,字节级);
5)可用作系统存储器以及可被分配全部或部分的该系统的地址空间;
6)通过总线使用事务协议(支持事务标识符(ID)的协议以区分不同的事务以使得那些事务能无序地完成)能被耦合至该处理器并且允许以足够小的粒度级访问以支持作为系统存储器的该NVRAM的操作(例如,高速缓存线大小,比如64或128字节)。例如,该总线可为存储总线(例如,DDR总线,比如DDR3、DDR4等。),并在该总线上运行事务协议而非正常使用的非事务性协议。作为另一例子,该总线可在其上正常地运行事务性协议(本地事务协议),比如外围设备接口标准(PCIE)总线、桌面管理接口(DMI)总线或使用事务协议和足够小事务有效负荷大小(例如,高速缓存线大小,比如64或128字节)的任意其他类型的总线;以及
7)下述一个或者多个:
a)比现有非易失性存储器/存储技术具有较快写速度(比如闪存);
b)非常高的读速度(比闪存快并且接近或等于DRAM的读速度);
c)直接可写(在写数据类似于SSD中使用的闪存之前,而不是需要擦除(1s覆盖));和/或
d)故障前数量级(例如,2或3)较高的写寿命(比SDD中使用的启动ROM和闪存要长)。
如上所述,与闪存相反,其必须在一定时间被重写和擦除完整的“块”,在任意给定实现中NVRAM被访问的粒度级可依赖于该NVRAM耦合的该特定存储器控制器和该特定存储总线或其他类型总线。例如,在一些实现中,NVRAM 130被用作系统存储器,NVRAM可在高速缓存线的粒度上被访问(例如,64字节或128字节高速缓存线),尽管固有能力可以字节粒度被访问,因为高速缓存线位于该存储器子系统访问存储器的级别。因此,当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。可以预期的是,在不同实施例中,近存储器能用作存储器端缓存(例如,近存储器高速缓存141B)、便笺笺式存储器和不同于系统存储器的其他角色。在这里描述的实施例中,NVRAM 130的该NM141A部分仅用作系统存储器以简化该讨论。
根据一些实施例,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接口的花销。
根据一些实施例,NVRAM 130提供了BIOS NVRAM 160和TPM NVRAM 170,其作为固件存储器的整体替换和补充,比如BIOS闪存162和TPM闪存172。固件存储器通常用闪存技术实现并且通常存储由处理器执行的初始化指令(例如,BIOS)以在启动过程中初始化关键的系统组件。固件存储器也能存储由TPM 134使用的系统持久状态以保护敏感系统信息(例如,加密密钥)。在一些实施例中,用于固件存储器的NVRAM 130的使月去除了对于第三方闪存部分的需求,来存储系统操作中关键的代码和数据。
存储器和存储器装置的选择可依赖于设备于其上被使用的平台的类型。例如,在个人计算机、平板电脑、笔记本电脑、移动装置(例如,智能手机或PDA),该非易失性海量存储可单独使用NVRAM存储器150实现,或使用NVRAM存储器150组合快速/磁性存储装置来实现。在其他实现中(例如,大型服务器),该非易失性海量存储可使用磁性存储器(例如,硬盘驱动器)或磁性存储器、闪存和NVRAM存储器150的任意组合来实现。在这个情况下,负责存储的计算机系统硬件和/或软件可实现各种智能持久存储分配技术来在该FM142/NVRAM存储装置150和传统海量存储装置152之间以高效的或其他有用方式来分配持久程序代码和数据块。在一些实施例中,NVRAM 130可成为单独的存储器/存储装置晶体外芯片(例如,处理器芯片晶体外)。在一些实施例中,替代晶体外芯片DRAM 140,DRAM可被用于提供晶体内芯片高速缓存(例如,近存储器高速缓存141B)。这些实施例可与非常小的平台(例如,智能手机或PDA)特定地相关,其中多个存储器类别/技术可是成本高昂并且更多的晶体管(包含存储装置)能设置在芯片上。
该NVRAM 130可包含“耗损平衡”算法来说明在远存储器级的该存储器存储单元在太多次写访问后将被耗尽的事实。由于高循环计数块最可能以这种方式被耗尽,耗损均衡通过将高循环计数块的地址与低循环计数块的地址进行交换在该远存储器存储单元之间扩展写操作。注意的是大多数地址交换通常是对终端用户透明的,因为它由硬件、软件(例如,低级驱动器或操作系统)或它们的组合来处理。
在一个实施例中,NVRAM 130可用非易失性随机访问存储器(NVRAM)实现,比如PCM或者更特别地PCMS(也被称作(PRAM或PCRAM)、双向通用存储器(OUM)、(CRAM))。远存储器的其他可能技术的选择包括,但不限于字节可寻址持久化存储器(BPRAM)、存储级存储器(SCM)、通用存储器、Ge2Sb2Te5、可编程金属化单元(PMC)、电阻性存储器(RRAM)、RESET(非晶)单元、SET(晶体)单元、PCME、奥弗辛斯基(Ovshinsky)、铁电存储器(也称作聚合物存储器和聚(N-乙烯基咔唑))、铁磁存储器(也称作自旋电子、SPRAM(自旋转移力矩RAM)、STRAM(自旋隧穿RAM)、磁阻的、磁性存储器、和磁性随机访问存储器(MRAM))、以及半导体-氧化物-氮化物-氧化物-半导体(SONOS,也称作介电存储器)
为了便于解释,剩余的绝大部分的该应用通常将“PCM”或“PCMS”指的是选择用于NVRAM 130的技术。如此,词NVRAM、PCM和PCMS可在下面的讨论中可交换地使用。然而,应该意识到的是,如上所述,不同的技术也可用于NVRAM 130。
然后继续讨论图1的该系统,在一些实施例中,计算机系统100的体系结构可包括多个处理器,虽然图1中为了简便而图示了单独一个处理器110。处理器110可为任意类型的数据处理器,其包含通用或专用中央处理单元(CPU)、特定用途集成电路(ASIC)或数字信号处理器(DSP)。例如,处理器110可为通用处理器,比如CoreTMi3、i5、i7、2Duo和Quad、XeonTM、或者ItaniumTM处理器,上述所有都源自加州圣克拉拉的英特尔公司。可选地,处理器110也可源自其他公司,比如,加州桑尼威尔的ARM控股有限公司、加州桑尼威尔的MIPS技术公司等。处理器110可为专用处理器,比如,例如,网络或通信处理器、压缩引擎、图形处理器、协处理器、嵌入式处理器等。处理器110可在一个或者多个芯片上实现,该芯片被包含在一个或者多个封装中。处理器110可为一部分和/或可被实现在一个或者多个使用任意多种处理技术的衬底上,比如,例如,BiCMOS、CMOS或者NMOS。
在一个实施例中,该处理器110包含集成图形单元111,其包含执行图形命令的逻辑,比如3D或2D图形命令。而本发明的实施例不限定于任意特定集成图形单元111,在一个实施例中,该图形单元111能执行工业标准图形命令,比如,Open GL和/或Direct X应用程序接口(API)指定的那些(例如,Open GL 4.1和Direct X 11)。
该处理器110也可包含一个或者多个核112,虽然在图1中再次为了清楚的目的仅图示了单核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高速缓存等。此外,在不同实施例中,该高速缓存可为一直接映射高速缓存、全关联高速缓存、多路组相连高速缓存、或具有另一映射类型的高速缓存。在包含多核的其他实施例中,高速缓存113可包含在所有核之间共享的一大部分或者可被划分为几个单独的功能片(例如,每个核一片)。高速缓存113可包含在所有核之间共享的一部分以及一些其他部分,这些部分为每个核的单独的功能片。在一个实施例中,高速缓存113可包含DRAM近存储器高速缓存141B。
处理器110也可包含本地代理114,该本地代理包含协调和操作核112的那些组件。该本地代理单元114可包含,例如,功率控制单元(PCU)和显示单元。该PCU可为或包含逻辑和组件,调节内核112和集成图形单元111的功率状态需要这些逻辑或组件。该显示单元被用于驱动一个或者多个外部连接的显示器。
在一些实施例中,处理器110包含集成存储器控制器(IMC)131以提供与存储器和存储子系统180通信的接口。更具体地,在一个实施例中,IMC131包含读取、写入和刷新DRAM装置140所必须的逻辑。IMC131能与处理器110位于相同的电路小片上,或者在单独的电路小片上和/或与处理器110相连的封装上。
在一些实施例中,处理器110包含耦合至IMC131的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相连的封装上。
I/O适配器138将在处理器110中使用的本地通信协议翻译为与特定I/O设备兼容的协议。对于传统海量存储装置152而言,I/O适配器138可翻译的一些协议包含外围设备互连(PCI)-标准3.0、通用串行总线(USB)3.O、串行高级技术附件(SATA)3.0、小型计算机系统接口(SCSI)、廉价磁盘的冗余阵列(RAID)以及1394“火线”等。对于BIOS闪存162而言,I/O适配器138可翻译的一些协议包含串行外围接口(SPI)、微细线等。此外,还有一个或者多个无线协议I/O适配器。无线协议的例子为蓝牙4.0、基于IEEE 802.11的无线协议和蜂窝协议等。
在一些实施例中,I/O子系统115也包含管理引擎(ME)135,其为允许系统管理员监控、维持、更新、升级和修理计算机系统100的微处理器。在一个实施例中,系统管理员通过ME 135经由网络136可远程地配置计算机系统100。在一个实施例中,该配置可被存储在处理器110中的解码表133中。解码表133可由IMC 131和I/O子系统115读取,其然后决定哪里的数据访问请求应该被控制。
在一些实施例中,处理器110包含信任平台模块(TPM)134来控制对系统持续状态的访问,比如安全数据、加密密钥、平台配置信息等。在一个实施例中,这些系统持续状态被存储在TPM NVRAM 170中,其能被基于PCM的存储器实现,比如PCMS。在图1所示的实施例中,TPM NVRAM 170是NVRAM 130的一部分。
在一个实施例中,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进行通信。
可以理解的是,计算机系统能使用NVRAM 130以用于系统存储器、海量存储装置、固件存储器和/或其他存储器以及存储目的,即使它的处理器没有上述处理器110的全部组件或具有比处理器110多的组件。
在一实施例中,计算机系统100包含NVRAM控制器132以控制对NVRAM 130的数据访问。NVRAM控制器132被耦合至IMC131和I/O子系统115。NVRAM控制器132能从解码表133读取该配置数据,或者可选地,可依赖从IMC131和I/O子系统115传送来的解码结果。在实施例中,其中NVRAM 130用PCMS来实现,NVRAM控制器132为PCMS控制器,其执行对符合该PCMS技术的协议的字节级访问。虽然IMC 131和NVRAM控制器132能为两个分离的控制器(如图1中所示的用点线分开的两个控制器),在一些实施例中,这两个控制器可实现为一个组合的控制器以控制对存储器和存储装置的访问。在可选实施例中,NVRAM控制器132可位于NVRAM130中以控制对该NVRAM存储器单元的访问。在这些可选实施例中,NVRAM接口(未示出)能被提供在处理器电路小片上以与NVRAM 130接口连接。
图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进行通信。
图2是根据本发明的实施例图示计算机系统200的框图,该计算机系统200将NVRAM130用作传统海量存储装置152和固件存储器(例如,BIOS闪存162和TPM闪存172)的整体替换。计算机系统200包含耦合至存储器和存储子系统280的处理器210。在这个实施例中,存储器和存储子系统280仅包含DRAM装置140和NVRAM 130。如上所述,NVRAM 130具有可配置部分,其包含系统存储器(FM142)、海量存储装置(NVRAM存储器150)和固件存储器(BIOSNVRAM 160和TPM NVRAM 170)。处理器210可与图1的处理器110相同,除了I/O适配器238不必须包含图1的用于访问传统海量存储装置和闪存的所有适配器138。在这个情况下,负责存储器和存储装置访问的计算机系统硬件和/或软件可实现各种智能技术以从NVRAM 130的低延迟、高吞吐量和健壮性(与传统闪存/磁性存储装置比较,比如传统的海量存储装置152、BIOS闪存162和TPM闪存172)获益。
该NVRAM的可配置分区
如前所述,NVRAM 130能被划分为多个分区,其在平台存储层次结构中扮演不同的角色。如上所述,词“平台存储层次结构”指的是高速缓存、系统存储器、海量存储装置和用于不同目的的固件存储器(例如,BIOS存储器和TPM存储器)。在一个实施例中,将访问引导至NVRAM 130不同分区的方法是通过解码逻辑。例如,要么在制造时间或者在现场中,计算机系统100能编程解码表133以将NVRAM 130的不同区域标识为系统存储器、海量存储装置、固件等。
在图1和2的实施例中,NVRAM 130被划分为FM 142、NVRAM存储器150、BIOS NVRAM160和TPMNVRAM 170。每个分区的地址范围可在解码表133中被定义。在一个实施例中,当IMC 131接收到访问请求时,该请求的目标地址被解码以显示该请求是否是直接面向存储器或I/O的。如果它是存储器请求,IMC 131进一步从该目标地址确定该请求是直接面向NM141A还是FM 142的。对于FM 142的访问,IMC 131将该请求转至NVRAM控制器132。如果该请求是直接面向I/O的(例如,非存储和存储I/O装置),IMC 131将该请求传递给该I/O子系统115。I/O子系统115进一步解码该地址以确定该地址是否指向NVRAM存储器150、BIOSNVRAM162、或其他非存储和存储I/O装置。如果该地址指向NVRAM存储装置150或BIOS NVRAM162,I/O子系统115将该请求转发给NVRAM控制器132。如果该地址指向TPM NVRAM 170,I/O子系统115将该请求转给TPM 134以执行安全访问。在一个实施例中,每个转发到NVRAM控制器132的请求都带有属性(也称作“事务类型”)来指示访问的类型。在一个实施例中,NVRAM控制器132可仿真所请求访问类型的访问协议,以使得其他平台对于由平台存储层次结构中的NVRAM 130执行的多个角色保持未知。在可选实施例中,NVRAM控制器132可对NVRAM130执行存储器访问而不考虑它是哪个事务类型。可以理解的是,该解码路径可与上面描述的不同。例如,IMC 131可解码访问请求的目标地址并且确定它是否是指向NVRAM 130的。如果它是指向NVRAM 130,IMC 131根据解码表133生成属性。基于该属性,IMC 131然后将该请求转发给合适的下游逻辑(例如,NVRAM控制器132和I/O子系统115)以执行所请求的数据访问。在另一实施例中,如果该对应属性不是从上游逻辑(例如,IMC 131和I/O子系统115)传递而来,NVRAM控制器132可解码该目标地址。其他解码路径也可被实现。
使能PEI BIOS代码的压缩
如上所述,处理器提供小量的高速缓存以用于在启动期间执行预EFI(预扩展固件接口,也称作PEI)BIOS代码。该PEI BIOS代码通常以高级语言(例如,C编程语言)来编写,其在执行期间使用栈和/或堆。该PEI BIOS代码负责初始化系统配置,比如,处理器、芯片集、处理器与芯片集互连(比如,超传输3.0、快速路径互连(OPI)1.1)以及存储器和存储子系统的初始化。该PEI BIOS代码也负责交叉存取存储器以及切换至称为驱动器执行环境(DXE)的高级BIOS模块,如在统一EFI(UEFI)标准中所定义的。
在一些系统中,该处理器高速缓存在启动过程中的PEI阶段期间被设置为无迁出模式(NEM)。该NEM也被称作高速缓存RAM(CAR)模式,其意味着该高速缓存对于执行的代码流而言如同以存储器存储以使得所有数据存储器访问都命中并且使得没有发生高速缓存迁移。“无迁移”在存储器控制器和系统互联被初始化之前避免了写回至系统存储器。在一些场景中,写回能造成错误情况,比如,机器检查终止。
在启动过程的PEI阶段(例如,当该处理器执行PEI BIOS代码时),该处理器高速缓存的主要部分被划分为第一分区,其被映射至BIOS闪存地址范围,在其中存储该PEI BIOS代码,以及用于栈和堆的第二分区。该处理器高速缓存的第一和第二分区的细合也能称作“NEM高速缓存”,因为它的内容不能在PEI BIOS代码执行期间被迁移。该处理器高速缓存的仅非常小的一部分(例如,几千字节)能被用于“常规”高速缓存目的;例如,用于缓存在执行期间生成的数据以及很可能在不久的将来被重用。
由于在处理器和BIOS闪存装置之间的I/O接口的速度较慢(例如,串行外围设备接口(SPI)),该PEI BIOS代码被复制到该NEM高速缓存的第一分区。在传统的系统中,在NEM高速缓存的第一分区和BIOS闪存中的该PEI BIOS代码区之间映射的地址范围是1∶1以保证该PEI BIOS代码的任意取出能被高速缓存以提高该PEI执行的速度。因此,在这个系统中,BIOS闪存中的PEIBIOS代码不能被压缩。在传统的系统中,在两个分区之间的NEM高速缓存被划分的通常大小比为2∶1。在一系统中,其中该NEM高速缓存是1.5MB,这个划分意味着1MB被用于PEI BIOS代码而0.5MB被用于栈和堆。如前所述,该NEM高速缓存的这个大小限制设置了该PEI BIOS代码的功能和执行上的有效约束。
图3显示了根据本发明实施例的计算机系统300,其使能该BIOS的压缩。计算机系统300包括耦合至存储器和存储子系统380的处理器310。处理器510也被耦合至一个或者多个其他处理器520以形成多处理器系统。在一个实施例中,处理器310可通过高速并行互连或接口被耦合至其他处理器520,比如,超传输3.0、快速路径互连(QPI)或其他类似的接口。
在一个实施例中,计算机系统300在闪存装置(“BIOS闪存”)162中存储了压缩的BIOS映像582。BIOS闪存162通过I/O子系统115耦合至处理器310。BIOS闪存162的使用允许处理器310在重启时来寻找和在遗留系统中位于相同位置的BIOS;即,在可通过I/O子系统115访问的闪存装置中。压缩的BIOS映像582存储程序代码、参数和在启动期间为计算机系统300建立BIOS的其他资源。该未压缩的BIOS映像(在压缩的BIOS映像582后是未压缩的)包含各种BIOS模块。每个BIOS模块,又包含程序指令、或者“代码”,其能被计算机系统300的处理器310执行。在一个实施例中,一个或者多个BIOS模块包含PEI BIOS代码,其在被执行时,允许处理器310在计算机系统的初始化启动阶段(“PEI阶段”)来检测和初始化各种系统资源(例如,存储器和存储子系统380以及非存储I/O装置137)。该PEI BIOS代码包含所需要的最小量的代码来发现所需的最小量的存储器以建立该初始化系统资源。
在一个实施例中,计算机系统300进一步包括通过高速链接耦合至处理器310的BIOS NVRAM 560,该高速链接遵守和处理器间协议相同的协议(例如,超传输3.0、快速路径互连(QPI)等)。由于它在读取上较大的容量和较低的延迟(与BIOS闪存162相比),BIOSNVRAM 560能被用于存储该未压缩的PEI BIOS代码(例如,BIOS映像570),提供了用于栈和堆的空间以及存储了在该代码执行期间生成的调试或错误或过程状态信息。结果,高速缓存113能被释放并用于“常规”高速缓存目的;例如,用于高速缓存在执行期间生成的以及很可能在不久的将来被重用的数据。高速缓存113也能被用于缓存一些PEI BIOS代码以提高代码的执行速度。此外,BIOS NVRAM 560的使用允许PEI BIOS代码的压缩,因为处理器310现在能将该代码解压至BIOS NVRAM 560并且从BIOS NVRAM 560直接执行该代码。结果,PEIBIOS代码的大小不再受到NEM高速缓存大小的约束,并且能容纳更多功能和建立更多的支持。
在该PEI阶段期间,处理器310执行操作序列,该操作能从BIOS闪存162中取回压缩的PEI BIOS映像582,将它解压缩至BIOS NVRAM 560中的BIOS映像570,并从BIOS NVRAM560执行BIOS映像570。处理器310也将高速缓存113设置为写回(WB)模式。因此,处理器310能使用高速缓存113的全部容量来缓存在该PEI BIOS代码执行期间生成的该PEI BIOS代码和数据。当高速缓存113满了并且有新代码和/或数据需要被缓存,利用高容量的BIOSNVRAM 560和到BIOS NVRAM 560的高速度接口,高速缓存113的较旧内容可写回至BIOSNVRAM 560。这与当高速缓存113位于NEM中时有限的访问能力(例如,用于缓存目的的少量千字节)相反。
在一个实施例中,该BIOS NVRAM 560由与NVRAM 130相同的存储器/存储技术实现,比如PCMS或其他基于PCM的技术。PCMS装置能以非常高的容量大约多个十亿字节来构建并且能通过高速链接(例如,超传输3.0链接、QPI链接等)而被耦合至处理器。该PCMS装置的地址空间可被映射到常规系统地址空间。与基于DRAM存储器相比较,使用PCMS或其他基于PCM存储器的好处已经在上面进行了论述。然而,可以理解的是其他大容量、低延迟和字节可寻址的非易失性存储器装置能被用于实现BIOSNVRAM 560,这些存储器装置具有对PCMS相似的读和写访问特征。
还可以理解的是,用于使能该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及其变形”。
图4为根据本发明的实施例图示了在启动过程中的PEI阶段期间BIOS执行顺序的方法400的流程图。方法400由计算机系统300及其变形执行,如同之前联系图3所定义的。为了简化描述,处理器310在下面被描述为通过QPI链接与其他处理器520和BIOS NVRAM 560耦合(虽然可以理解到也可使用其他高速互连)。进一步,为了简化描述,图4的流程图的操作将参照图3的实施例被描述。然而,可以理解的是该流程图的操作由除在这些图中所示的实施例之外的实施例执行。此外,参照图3讨论的实施例能执行不同于参照图4的流程图的讨论的那些操作。
在一个实施例中,当平台(例如,计算机系统300)上电(块401),该平台生成上电重启信号以重启处理器310(块402)。处理器310将该高速缓存模式设置为NEM并且初始化高速缓存113中的该NEM空间(块403)。在实施例中,其中PEI BIOS代码执行需要堆和/或栈空间,处理器310也设置在高速缓存113中的该堆和/或栈空间。处理器310然后在本地处理器套接口中初始化该QPI链接,其中该QPI链接将处理器310耦合至BIOS NVRAM 560(块404)。
在BIOS NVRAM 560装置被定位后,处理器310初始化BIOS NVRAM560并且通过从该QPI链接接收到的参数来确定BIOS NVRAM 560的大小。处理器310然后初始化BIOS NVRAM560并且创建用于访问BIOS NVRAM560的地址范围(块405)。在一个实施例中,处理器310通过配置源地址解码器(SAD)540来创建该地址范围以将BIOS NVRAM 560的大小映射至该处理器存储器地址空间。
接下来,当重启被释放时,处理器310从BIOS闪存162中预定义位置处复制PEIBIOS代码相对小的一部分到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。
在复制后,处理器310跳转到BIOS NVRAM 560的地址空间并且开始执行该解压缩的PEI BIOS代码(例如,BIOS映像570)(块409)。处理器310在高速缓存113中禁用(例如,关闭)NEM并且使能WB模式(块410)。然后,处理器310在BIOS NVRAM 560外执行该解压缩的PEIBIOS代码,使用高速缓存113的全部容量来存储代码和数据,在执行期间可能需要该代码和数据。接下来,处理器310初始化剩余的QPI链接(例如,连接到其他处理器520的链接),建立QPI链接路由(块411),初始化每个处理器的套接口中的该存储器(例如,DIMM)(块412)以及启动全局系统存储器地址路由(块413)。处理器310进一步从BIOS NVRAM 560复制剩余的BIOS映像到系统存储器中(例如,NM 141A)并且跳转到BIOS执行的下一阶段的存储器(块414)。然后处理器310初始化该I/O装置(例如,I/O装置137和其他I/O接口,如果有的话)(块415),以及启动该OS(块416)。
在一个实施例中,BIOS NVRAM 560的一部分能作为可写的而被建立。因此,即使DIMM存储器初始化失败了,在PEI BIOS执行期间发生的错误能被记录到这个可写区域,调试或错误或过程状态消息也一样。在一个实施例中,视频和显示错误消息也能在PEI BIOS代码执行期间被初始化。
支持大BIOS映像和固件
在一些实施例中,BIOS映像能被存储在大容量、低延迟和字节可寻址非易失性存储器装置中,该装置能被直接耦合至处理器而不用通过I/O子系统而被路由。在一个实施例中,这个装置能由与NVRAM 130相同的存储器/存储技术实现,比如PCMS或其他基于PCM的技术。这个装置能用存储具有其他新特征的大BIOS映像。该大BIOS映像可支持多个平台以降低支持花费。这个装置也能存储对平台固件的配置和更新,比如BIOS、管理引擎(ME)、功率控制单元(PCU)、电压控制单元(VCU)和微代码的配置和更新。通过将平台固件联合为单独的、大型的持久化存储器,本发明的实施例披露了高效平台固件更新、平台配置和应用管理支持的可能性。
图5图示了根据本发明的实施例的计算机系统500的一个实施例,其支持大BIOS映像和平台固件。在这个实施例中,计算机系统500在BIOS NVRAM 560中存储一个或者多个的BIOS映像730。与图3的实施例类似,BIOS NVRAM 560通过高速链接耦合至处理器510,该高速链接遵守与处理器间协议相同的协议(例如,超级传输3.0、QPI等)。
在一个实施例中,作为一个选择,计算机系统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被执行。
在一个实施例中,其中处理器510为硬编码以在启动时仅使用BIOS NVRAM 560,对于计算机系统500而言必须要包含BIOS闪存162。移除BIOS闪存162的一个好处在于降低了平台的成本。
类似于图3的实施例,应该理解的是,为了支持大量BIOS代码和固件而使用BIOSNVRAM 560是依赖于存储器和存储子系统580的配置。更具体地,能使用BIOS NVRAM 560而不考虑NVRAM 130是否被用作存储器和/或存储装置。在图5所示的实施例中,存储器和存储子系统580包含被划分为FM 142、NVRAM存储器150和TMP NVRAM 160的NVRAM 130。在这个实施例中,对于NVRAM130而言包含BIOS NVRAM分区不是必须的,因为该BIOS能驻留在BIOSNVRAM 560或BIOS闪存162中。在可选实施例中,存储器和存储子系统580可不包含NVRAM130,或可包含具有不同于图5所示分区的NVRAM 130。进一步,在实施例中,其中存储器和存储子系统580不包含NVRAM 130,处理器510不是必须包含NVRAM控制器132和解码表133,以及TPM数据能被存储在块寻址非易失性装置(例如,闪存装置)。在下面描述中,计算机系统500和这些可选的实施例全部指代为“计算机系统500及其变形”。
图6为流程图,其根据本发明的实施例图示了启动过程的PRI阶段期间BIOS执行顺序的方法600。方法600可由计算机系统500及其变形来执行,如前面与图5相连的所定义的。为了简化描述,处理器510在下面被描述为通过QPI链接耦合至其他处理器520和BIOSNVRAM 560(虽然它可以被理解为也可使用其他高速互连)。进一步,为了简化描述,图6的流程图的操作将参照图5的实施例来描述。然而,应该理解的是该流程图的操作能由图5的实施例来执行,和由除了在这些附图中所示的那些实施例之外的实施例执行。此外,参照图5所讨论的实施例能执行与参照图6流程图所讨论的那些操作不同的操作。
在一个实施例中,当平台(例如,计算机系统500)上电(块601),计算机系统500生成上电重启信号以重启处理器510(块602)。
如前所述,在一个实施例中,处理器510支持BIOS闪存162和BIOS NVRAM 560,并且能被配置为选择两个中的一个以用于PEI BIOS执行。如果处理器510被配置为选择BIOSNVRAM 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。
在实施例中(图6中未示出),其中该处理器510为硬编码以在启动时间仅使用BIOSNVRAM 560,处理器510能初始化耦合至BIOS NVRAM560的该QPI链接,通过检查在QPI链接上交换的参数确定在BIOS NVRAM560中固件分区740的大小,并且使用固件分区740的地址来配置SAD 540。
继续块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映像意图用于的平台类型,以及其他。
接着块604的操作,处理器510编程MTRR存储类型范围寄存器(MTTR)以使得高速缓存113被设置为写回(WB)模式以用于执行包含在一个BIOS映像730中的PEI BIOS代码(块605)。处理器510然后跳转至包含该PEI BIOS代码的固件分区并执行该代码(块606)。
接下来,处理器510初始化剩余的QPI链接(例如链接至其他处理器520的链接)并且建立QPI链接路由(块607),初始化每个处理器套接字中的该存储器(例如,该DIMM)(块608)并且建立全局系统存储地址路由(块609)。处理器510进一步从BIOS NVRAM 560将剩余的BIOS映像复制到系统存储器(例如,NM 141A)中并且跳转到该存储器以用于后续BIOS执行阶段(块610)。处理器510也初始化该I/O装置(例如,I/O装置137和其他I/O接口,若有的话)(块611),并且启动该OS(块612)。
在该PEI BIOS代码执行期间,如果最新的代码版本启动失败,该失败能被记录在BIOS NVRAM 560中的BIOS标记区域中并且该启动过程能以该代码的较早版本被重启,使用在FIT720中定义的处理代码。
在一个实施例中,BIOS NVRAM 560的一部分能设置为可写的。因此,在该PEI BIOS执行期间发生的错误能被记录在这个可写区域,即使DIMM存储器初始化失败。在一个实施例中,视频和显示错误信息也能在该PEI BIOS代码执行期间被初始化。
一旦高速缓存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的解压缩区域外执行。
图4和6的流程图中所示的技术能使用存储在非临时性机器可读或计算机可读媒介上的指令和数据来实现,比如非临时性机器可读或计算机可读存储媒介(例如,磁盘;光盘;随机访问存储器;只读存储器;闪存装置;以及相变存储器)。
本发明的实施例也可被提供为计算机程序产品,其可包含非临时性机器可读媒介,该媒介上存储有可用来编程计算机(或其他电子装置)的指令以实现过程。该非临时性机器可读媒介可包含,但不限制于,软盘、光盘、CD-ROM以及磁光盘、ROM、RAM、EPROM、EEPROM、磁性或光学卡、传播媒体或适用于存储电子指令的其他类型的媒介/机器可读媒介。本发明的实施例也可被作为计算机程序产品下载,其中该程序可通过在载波或其他传播媒介中嵌入的数据信号经由通信连接(例如,调制解调器或网络连接)从远程计算机(例如,服务器)传输到请求计算机(例如,客户机)
当以若干个实施例形式描述本发明时,那些本领域技术人员将认识到本发明不限于描述的实施例,能在所附权利要求的精神和范围内以修改和替换进行实现。因此该描述被认作是示意性而不是限制。

Claims (14)

1.一种装置,包括包含一个或多个核的处理器,其特征在于所述装置还包括;
由所述处理器通过I/O接口耦合至所述处理器的非易失性存储器NVM,NVM其上存储有压缩的基本输入和输出系统BIOS映像;
位于所述处理器中的高速缓存;以及
非易失性可随机访问存储器NVRAM,所述非易失性可随机访问存储器耦合至所述处理器并且通过所述处理器为字节可重写和字节可擦除的,NVRAM其上存储有未压缩的BIOS映像,所述未压缩的BIOS映像由所述处理器在启动过程的可预扩展固件接口PEI阶段自所述压缩的BIOS映像生成,其中所述高速缓存被设置为写回模式以用于在所述启动过程的所述PEI阶段期间所述未压缩的BIOS映像的执行。
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.根据权利要求8所述的装置,其中所述多个BIOS映像支持多个平台或多个处理器族。
14.根据权利要求8所述的装置,其中所述NVRAM包含可写区域,所述可写区域中可被写入在启动过程期间生成的调试或错误或过程状态消息。
CN201180075111.3A 2011-09-30 2011-09-30 非易失性随机访问存储器中存储bios的装置、方法和系统 Active CN104115136B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/054417 WO2013048491A1 (en) 2011-09-30 2011-09-30 Apparatus, method and system that stores bios in non-volatile random access memory

Publications (2)

Publication Number Publication Date
CN104115136A CN104115136A (zh) 2014-10-22
CN104115136B true CN104115136B (zh) 2017-12-08

Family

ID=47996222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180075111.3A Active CN104115136B (zh) 2011-09-30 2011-09-30 非易失性随机访问存储器中存储bios的装置、方法和系统

Country Status (5)

Country Link
US (2) US9430372B2 (zh)
EP (1) EP2761476B1 (zh)
CN (1) CN104115136B (zh)
TW (2) TWI499977B (zh)
WO (1) WO2013048491A1 (zh)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3346386B1 (en) * 2011-09-30 2020-01-22 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage
WO2013048493A1 (en) 2011-09-30 2013-04-04 Intel Corporation Memory channel that supports near memory and far memory access
CN103975287B (zh) 2011-12-13 2017-04-12 英特尔公司 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持
CN103999067A (zh) 2011-12-21 2014-08-20 英特尔公司 以多个非易失性存储器为特征的高性能存储结构和系统
KR101572403B1 (ko) * 2011-12-22 2015-11-26 인텔 코포레이션 메모리 채널 셧다운에 의한 전력 절약
WO2013100936A1 (en) * 2011-12-28 2013-07-04 Intel Corporation A method and device to distribute code and data stores between volatile memory and non-volatile memory
WO2015112126A1 (en) * 2014-01-22 2015-07-30 Hewlett Packard Development Company, L.P. Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region
US10162565B2 (en) 2014-01-30 2018-12-25 Hewlett-Packard Development Company, L.P. Data erasure of a target device
US9419952B2 (en) * 2014-06-05 2016-08-16 Stmicroelectronics (Grenoble 2) Sas Memory encryption method compatible with a memory interleaved system and corresponding system
CN107111566B (zh) * 2014-12-19 2020-08-14 拉姆伯斯公司 用于存储器模块的动态随机存取存储器(dram)部件
US10204047B2 (en) 2015-03-27 2019-02-12 Intel Corporation Memory controller for multi-level system memory with coherency unit
CN105630407A (zh) * 2015-05-29 2016-06-01 上海磁宇信息科技有限公司 一种计算系统及操作系统调度内存和启动系统的方法
US10073659B2 (en) 2015-06-26 2018-09-11 Intel Corporation Power management circuit with per activity weighting and multiple throttle down thresholds
US10387259B2 (en) 2015-06-26 2019-08-20 Intel Corporation Instant restart in non volatile system memory computing systems with embedded programmable data checking
CN106528491A (zh) * 2015-09-11 2017-03-22 展讯通信(上海)有限公司 移动终端
US10108549B2 (en) 2015-09-23 2018-10-23 Intel Corporation Method and apparatus for pre-fetching data in a system having a multi-level system memory
US10185501B2 (en) 2015-09-25 2019-01-22 Intel Corporation Method and apparatus for pinning memory pages in a multi-level system memory
US10261901B2 (en) 2015-09-25 2019-04-16 Intel Corporation Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory
US10558468B2 (en) * 2015-10-22 2020-02-11 American Megatrends International, Llc Memory channel storage device initialization
US10203893B2 (en) 2015-10-22 2019-02-12 American Megatrends, Inc. Memory channel storage device detection
US9792224B2 (en) 2015-10-23 2017-10-17 Intel Corporation Reducing latency by persisting data relationships in relation to corresponding data in persistent memory
US10033411B2 (en) 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
US10095618B2 (en) 2015-11-25 2018-10-09 Intel Corporation Memory card with volatile and non volatile memory space having multiple usage model configurations
US9747041B2 (en) 2015-12-23 2017-08-29 Intel Corporation Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device
KR102395195B1 (ko) * 2016-01-07 2022-05-10 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10007606B2 (en) 2016-03-30 2018-06-26 Intel Corporation Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory
US10185619B2 (en) 2016-03-31 2019-01-22 Intel Corporation Handling of error prone cache line slots of memory side cache of multi-level system memory
US10120806B2 (en) 2016-06-27 2018-11-06 Intel Corporation Multi-level system memory with near memory scrubbing based on predicted far memory idle time
US10915453B2 (en) 2016-12-29 2021-02-09 Intel Corporation Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures
US10445261B2 (en) 2016-12-30 2019-10-15 Intel Corporation System memory having point-to-point link that transports compressed traffic
TWI621017B (zh) * 2017-03-06 2018-04-11 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
TWI662403B (zh) * 2017-03-06 2019-06-11 慧榮科技股份有限公司 資料儲存裝置開機方法
US10474473B2 (en) * 2017-04-11 2019-11-12 Intel Corporation Technology to facilitate rapid booting with high-speed and low-speed nonvolatile memory
US10958729B2 (en) * 2017-05-18 2021-03-23 Intel Corporation Non-volatile memory express over fabric (NVMeOF) using volume management device
US10304814B2 (en) 2017-06-30 2019-05-28 Intel Corporation I/O layout footprint for multiple 1LM/2LM configurations
US11188467B2 (en) 2017-09-28 2021-11-30 Intel Corporation Multi-level system memory with near memory capable of storing compressed cache lines
WO2019089000A1 (en) * 2017-10-31 2019-05-09 Hewlett-Packard Development Company, L.P. Configuration of non-volatile dual in-line memory modules
US10860244B2 (en) 2017-12-26 2020-12-08 Intel Corporation Method and apparatus for multi-level memory early page demotion
TWI722269B (zh) * 2018-01-26 2021-03-21 和碩聯合科技股份有限公司 韌體更新方法及使用此方法的電子裝置
CN108287670B (zh) * 2018-01-30 2021-07-02 郑州云海信息技术有限公司 一种系统关机时保护数据的方法及bmc
US11099995B2 (en) 2018-03-28 2021-08-24 Intel Corporation Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory
US11550592B2 (en) * 2018-06-29 2023-01-10 Intel Corporation Methods and apparatus to utilize non-volatile memory for computer system boot
KR20210045506A (ko) 2018-09-17 2021-04-26 마이크론 테크놀로지, 인크. 하이브리드 듀얼 인-라인 메모리 모듈에서의 캐시 작업
US11055228B2 (en) 2019-01-31 2021-07-06 Intel Corporation Caching bypass mechanism for a multi-level memory
JP2020149236A (ja) * 2019-03-12 2020-09-17 キオクシア株式会社 電子機器及び電子機器の制御方法
US10636486B1 (en) * 2019-03-26 2020-04-28 Winbond Electronics Corp. Resistive memory and control method thereof
CN110941452B (zh) * 2019-10-11 2022-02-18 合肥联宝信息技术有限公司 一种配置方法、bios芯片和电子设备
US11029868B1 (en) * 2020-01-29 2021-06-08 Dell Products L.P. Initialization code/data memory mapping system
US11941409B2 (en) 2020-04-20 2024-03-26 Intel Corporation Methods, systems, and apparatuses for a multiprocessor boot flow for a faster boot process
US11586446B1 (en) * 2020-05-20 2023-02-21 Marvell Asia Pte Ltd System and methods for hardware-based PCIe link up based on post silicon characterization
WO2021232396A1 (en) * 2020-05-22 2021-11-25 Intel Corporation Accelerating system boot times via host-managed device memory
US20220197746A1 (en) * 2020-12-18 2022-06-23 Advanced Micro Devices, Inc. Combination bios with a/b recovery
CN113064610A (zh) * 2021-03-09 2021-07-02 山东英信计算机技术有限公司 一种更新bios的方法、装置及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809813A (zh) * 2003-06-16 2006-07-26 英特尔公司 利用渴望压缩、故障保险提取和重新启动时压缩扫描来存储固件变量的方法

Family Cites Families (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62191947A (ja) 1986-02-19 1987-08-22 Alps Electric Co Ltd デイスクキヤツシユ制御処理方式
EP0332117B1 (en) 1988-03-09 1994-05-11 Kabushiki Kaisha Toshiba Portable electronic apparatus
US5230052A (en) 1990-10-01 1993-07-20 International Business Machines Corp. Apparatus and method for loading bios into a computer system from a remote storage location
GB2251324B (en) 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5519843A (en) 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US5511202A (en) 1993-07-26 1996-04-23 International Business Machines Corporation Desktop computer system having zero-volt system suspend and control unit for ascertaining interrupt controller base address
JPH08137634A (ja) 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
US5822581A (en) 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
US6018806A (en) 1995-10-16 2000-01-25 Packard Bell Nec Method and system for rebooting a computer having corrupted memory using an external jumper
US5974576A (en) 1996-05-10 1999-10-26 Sun Microsystems, Inc. On-line memory monitoring system and methods
US6035432A (en) 1997-07-31 2000-03-07 Micron Electronics, Inc. System for remapping defective memory bit sets
US5912839A (en) 1998-06-23 1999-06-15 Energy Conversion Devices, Inc. Universal memory element and method of programming same
US6326973B1 (en) 1998-12-07 2001-12-04 Compaq Computer Corporation Method and system for allocating AGP/GART memory from the local AGP memory controller in a highly parallel system architecture (HPSA)
US6345349B1 (en) 1998-12-30 2002-02-05 Intel Corporation Combined memory and mass storage device
US7889544B2 (en) 2004-04-05 2011-02-15 Super Talent Electronics, Inc. High-speed controller for phase-change memory peripheral device
US6292874B1 (en) 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
US6567897B2 (en) 2001-03-01 2003-05-20 International Business Machines Corporation Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls
US7058779B1 (en) * 2001-03-05 2006-06-06 Advanced Micro Devices, Inc. Computer system initialization via boot code stored in a non-volatile memory having an interface compatible with synchronous dynamic random access memory
US7165137B2 (en) * 2001-08-06 2007-01-16 Sandisk Corporation System and method for booting from a non-volatile application and file storage device
US7107386B1 (en) 2001-08-08 2006-09-12 Pasternak Solutions, Llc Memory bus arbitration using memory bank readiness
US6990577B2 (en) 2001-08-10 2006-01-24 Intel Corporation Updating a BIOS image by replacing a portion of the BIOS image with a portion of another BIOS image
US6957295B1 (en) 2002-01-18 2005-10-18 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
FI20021620A (fi) 2002-09-10 2004-03-11 Nokia Corp Muistirakenne, järjestelmä ja elektroniikkalaite sekä menetelmä muistipiirin yhteydessä
DE112004000732T5 (de) * 2003-05-02 2006-10-26 Egenera Inc., Marlboro System und Verfahren zum Virtualisieren eines Basis-Ein-/Ausgabesystems (BIOS) einschließlich BIOS-Laufzeitdiensten
US7836248B2 (en) 2003-07-29 2010-11-16 International Business Machines Corporation Methods and systems for managing persistent storage of small data objects
US7165170B2 (en) 2003-09-12 2007-01-16 Intel Corporation System and method for firmware to export pre-boot data into the operating system runtime environment
US20050120265A1 (en) 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
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
US7203808B2 (en) 2004-03-19 2007-04-10 Intel Corporation Isolation and protection of disk areas controlled and for use by virtual machine manager in firmware
US20050223157A1 (en) 2004-04-02 2005-10-06 Matti Floman Fast non-volatile random access memory in electronic devices
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US20050273584A1 (en) 2004-06-07 2005-12-08 Wisecup George D Locating environment variables in non-volatile memory
US7590918B2 (en) 2004-09-10 2009-09-15 Ovonyx, Inc. Using a phase change memory as a high volume memory
US20060184719A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
JP2008541283A (ja) 2005-05-18 2008-11-20 程滋頤 メモリーの使用寿命を向上できる回路と方法
US20070005922A1 (en) 2005-06-30 2007-01-04 Swaminathan Muthukumar P Fully buffered DIMM variable read latency
US7457928B2 (en) * 2005-10-28 2008-11-25 International Business Machines Corporation Mirroring system memory in non-volatile random access memory (NVRAM) for fast power on/off cycling
US8637342B2 (en) 2005-11-10 2014-01-28 Ovonyx, Inc. Phase change memory with threshold switch select device
US7600078B1 (en) 2006-03-29 2009-10-06 Intel Corporation Speculatively performing read transactions
US20070260869A1 (en) * 2006-05-01 2007-11-08 Symbol Technologies, Inc. Apparatus and Method for Booting a Computing Device from a NAND Memory Device
US7913147B2 (en) 2006-05-08 2011-03-22 Intel Corporation Method and apparatus for scrubbing memory
JP4700562B2 (ja) 2006-05-18 2011-06-15 株式会社バッファロー データ記憶装置およびデータ記憶方法
CN100451987C (zh) 2006-05-23 2009-01-14 北京金元龙脉信息科技有限公司 对计算机bios固件进行安全风险检测的系统和方法
US7930468B2 (en) 2006-05-23 2011-04-19 Dataram, Inc. System for reading and writing on flash memory device having plural microprocessors
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
US8051253B2 (en) 2006-09-28 2011-11-01 Virident Systems, Inc. Systems and apparatus with programmable memory control for heterogeneous main memory
WO2008070813A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a front-end, distributed raid
US7617340B2 (en) 2007-01-09 2009-11-10 International Business Machines Corporation I/O adapter LPAR isolation with assigned memory space
EP1965297A1 (en) 2007-03-02 2008-09-03 Inventec Corporation Memory partitioning method
WO2008131058A2 (en) 2007-04-17 2008-10-30 Rambus Inc. Hybrid volatile and non-volatile memory device
US20080270811A1 (en) 2007-04-26 2008-10-30 Super Talent Electronics Inc. Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8145893B2 (en) * 2007-10-26 2012-03-27 Intel Corporation Hot-plugging a memory device
US8239665B2 (en) 2007-10-31 2012-08-07 Dell Products L.P. Methods, systems and media for configuring boot options
US7882341B2 (en) * 2007-12-31 2011-02-01 Intel Corporation System and method to enable parallelization of early platform initialization
US20090271562A1 (en) 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US7663957B2 (en) 2008-05-27 2010-02-16 Via Technologies, Inc. Microprocessor with program-accessible re-writable non-volatile state embodied in blowable fuses of the microprocessor
US20090313416A1 (en) 2008-06-16 2009-12-17 George Wayne Nation Computer main memory incorporating volatile and non-volatile memory
CN101620539B (zh) 2008-07-01 2013-12-25 联想(北京)有限公司 开关机方法和计算机
US8176233B1 (en) 2008-07-17 2012-05-08 Virident Systems Inc. Using non-volatile memory resources to enable a virtual buffer pool for a database application
US20110197018A1 (en) 2008-10-06 2011-08-11 Sam Hyuk Noh Method and system for perpetual computing using non-volatile random access memory
KR101573047B1 (ko) 2009-01-23 2015-12-02 삼성전자주식회사 복합 메모리 장치 및 이를 이용한 i/o 처리 방법
KR20100091544A (ko) 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
US8291159B2 (en) 2009-03-12 2012-10-16 Vmware, Inc. Monitoring and updating mapping of physical storage allocation of virtual machine without changing identifier of the storage volume assigned to virtual machine
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
US7898859B2 (en) 2009-06-15 2011-03-01 Micron Technology, Inc. Use of emerging non-volatile memory elements with flash memory
US8626997B2 (en) 2009-07-16 2014-01-07 Micron Technology, Inc. Phase change memory in a dual inline memory module
US8341387B2 (en) 2009-08-18 2012-12-25 Dell Products, Lp System and method to manipulate a system setting when booting an information handling system
KR20110029402A (ko) * 2009-09-15 2011-03-23 삼성전자주식회사 비휘발성 메모리 장치, 및 그것을 포함한 메모리 시스템, 그것의 쓰기 전류 제어 방법
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
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 삼성전자주식회사 위치정보의 정확도 확인방법 및 장치
US8838935B2 (en) 2010-09-24 2014-09-16 Intel Corporation Apparatus, method, and system for implementing micro page tables
US8649212B2 (en) 2010-09-24 2014-02-11 Intel Corporation Method, apparatus and system to determine access information for a phase change memory
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
KR20120119092A (ko) * 2011-04-20 2012-10-30 삼성전자주식회사 반도체 메모리 시스템 및 이의 구동 방법
US8607089B2 (en) 2011-05-19 2013-12-10 Intel Corporation Interface for storage device access over memory bus
US20120311262A1 (en) 2011-06-01 2012-12-06 International Business Machines Corporation Memory cell presetting for improved memory performance
US20120324156A1 (en) 2011-06-17 2012-12-20 Naveen Muralimanohar Method and system of organizing a heterogeneous memory architecture
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
EP2761467B1 (en) 2011-09-30 2019-10-23 Intel Corporation Generation of far memory access signals based on usage statistic tracking
EP2761466B1 (en) 2011-09-30 2020-08-05 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy
WO2013048493A1 (en) 2011-09-30 2013-04-04 Intel Corporation Memory channel that supports near memory and far memory access
EP3346386B1 (en) 2011-09-30 2020-01-22 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage
WO2013048485A1 (en) 2011-09-30 2013-04-04 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
EP2761468B1 (en) 2011-09-30 2019-12-11 Intel Corporation Platform storage hierarchy with non-volatile random access memory having configurable partitions
US9298606B2 (en) 2011-09-30 2016-03-29 Intel Corporation Statistical wear leveling for non-volatile system memory
US20150089102A1 (en) * 2013-09-23 2015-03-26 Lsi Corporation Solid state drives that cache boot data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809813A (zh) * 2003-06-16 2006-07-26 英特尔公司 利用渴望压缩、故障保险提取和重新启动时压缩扫描来存储固件变量的方法

Also Published As

Publication number Publication date
TWI564801B (zh) 2017-01-01
WO2013048491A1 (en) 2013-04-04
US9430372B2 (en) 2016-08-30
US10055353B2 (en) 2018-08-21
US20140082262A1 (en) 2014-03-20
TW201604785A (zh) 2016-02-01
EP2761476A1 (en) 2014-08-06
EP2761476A4 (en) 2015-10-14
EP2761476B1 (en) 2017-10-25
US20170052896A1 (en) 2017-02-23
TWI499977B (zh) 2015-09-11
TW201331843A (zh) 2013-08-01
CN104115136A (zh) 2014-10-22

Similar Documents

Publication Publication Date Title
CN104115136B (zh) 非易失性随机访问存储器中存储bios的装置、方法和系统
CN103946814B (zh) 计算机系统中的非易失性随机存取存储器的自主初始化
CN103946816B (zh) 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram)
CN104106057B (zh) 用非易失性随机存取存储器提供对休眠状态转变的即时响应的方法和系统
CN103946810B (zh) 配置非易失性随机访问存储器内分区的方法及计算机系统
CN103975287B (zh) 使用非易失性随机存取存储器的服务器中的增强系统睡眠状态支持
CN104050112B (zh) 用于标记需要写回持久存储的非事务代码区的开头和结束的指令
CN103946813B (zh) 基于使用统计量追踪的远存储器访问信号的生成
CN103946812B (zh) 用于实现多级别存储器分级体系的设备和方法
CN104115129B (zh) 用于从处理器到存储器子系统智能刷新数据的系统和方法
CN104025060B (zh) 支持近存储器和远存储器访问的存储器通道
EP2761480A1 (en) Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
EP2761464A1 (en) Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US20140229659A1 (en) Thin translation for system access of non volatile semicondcutor storage as random access memory
WO2013095530A1 (en) Efficient pcms refresh mechanism background

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