CN114879828A - 具有持久性存储器存储装置的固件接口 - Google Patents

具有持久性存储器存储装置的固件接口 Download PDF

Info

Publication number
CN114879828A
CN114879828A CN202210548309.9A CN202210548309A CN114879828A CN 114879828 A CN114879828 A CN 114879828A CN 202210548309 A CN202210548309 A CN 202210548309A CN 114879828 A CN114879828 A CN 114879828A
Authority
CN
China
Prior art keywords
firmware interface
volatile memory
power loss
power
loss indicator
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.)
Pending
Application number
CN202210548309.9A
Other languages
English (en)
Inventor
G.P.穆杜苏鲁
V.J.齐默
K.科塔里
R.N.斯托里
R.C.斯万森
I.W.奥拉姆
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 CN114879828A publication Critical patent/CN114879828A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/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
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/141Battery and back-up supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Power Sources (AREA)
  • Retry When Errors Occur (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Stored Programmes (AREA)

Abstract

一般地,本公开提供了用于具有持久性存储装置的统一可扩展固件接口(UEFI)的***、设备、方法和计算机可读介质,所述具有持久性存储装置的统一可扩展固件接口(UEFI)用于例如倘若电力丢失发生则提供存储器写入持续性。***可以包括用于托管固件接口的处理器,该固件接口可以配置为控制对易失性存储器的受保护区中的***变量的访问。***还可以包括电力管理电路,用于向处理器提供电力并且进一步用于向固件接口提供电力丢失指示符。***还可以包括预留能量存储模块,用于响应于电力丢失指示符而向处理器提供电力。固件接口进一步配置为响应于电力丢失指示符而将***变量从易失性存储器复制到非易失性存储器。

Description

具有持久性存储器存储装置的固件接口
技术领域
本公开涉及固件接口,并且更具体地,涉及具有持久性存储装置的统一可扩展固件接口(UEFI),用于例如倘若发生电力丢失则提供存储器写入持续性。
背景技术
固件接口一般地提供操作***(OS)和与***平台相关联的底层固件和/或硬件之间的接口。固件接口的示例包括传统基本输入输出***(BIOS)和较新的统一可扩展固件接口(UEFI)。固件接口典型地提供***引导服务以及运行时服务。由UEFI提供的运行时服务包括管理通过OS或其它实体对***变量的访问。一般地要求UEFI保证对这些变量做出的任何更新是持久性的,例如,保证倘若非预期电力丢失、重置或其它中断发生则更新将持续。
然而,针对UEFI的潜在冲突目标在于,这些***变量存储在除UEFI之外的任何实体不可直接访问的信任且安全的存储器区或设备中。例如,受损的OS不应当能够访问该UEFI预留的存储器。附加地,通过OS对这些变量的访问可能引起存储器竞争问题,如果它们与UEFI访问并发的话。不幸地,可以可用于这样的安全或隔离的操作模式的存储器典型地是易失性的,诸如例如动态随机存取存储器(DRAM),倘若电力中断发生则其内容丢失。
附图说明
所要求保护的主题的实施例的特征和优点将随着以下具体实施例的进行并且在参照附图时而变得清楚,其中相同标号描绘相同部分,并且其中:
图1图示了与本公开一致的一个示例实施例的最高级***图;
图2图示了与本公开一致的示例实施例的框图;
图3图示了与本公开一致的一个示例实施例的操作的流程图;
图4图示了与本公开一致的另一个示例实施例的操作的流程图;
图5图示了与本公开一致的另一个示例实施例的操作的流程图;以及
图6图示了与本公开一致的另一个示例实施例的平台的***图。
尽管将参照说明性实施例而进行以下具体实施方式,但是其许多可替换形式、修改和变型对于本领域技术人员将是清楚的。
具体实施方式
一般地,本公开提供了用于具有持久性存储装置的统一可扩展固件接口(UEFI)的***、设备、方法和计算机可读介质,所述具有持久性存储装置的统一可扩展固件接口(UEFI)用于例如倘若电力丢失发生则提供存储器写入持续性。诸如例如计算或通信平台的***可以包括一个或多个处理器或核心以及一个或多个存储器模块,所述一个或多个存储器模块包括易失性和非易失性存储器类型二者。处理器和存储器可以配置为托管(例如,存储和/或执行)UEFI连同一个或多个操作***(OS)和其它软件应用或实体。UEFI可以配置为执行***引导服务和运行时(例如,引导后)服务。运行时服务可以包括控制通过OS对***变量的访问,所述***变量存储在易失性存储器的受保护/安全区中。
***还可以包括电力管理电路,用于从一个或多个主电源向处理器提供电力。***还可以包括预留能量存储模块,用于倘若来自主电源的电力丢失发生则向处理器提供电力,在该情况下,电力丢失指示符可以被提供给UEFI。UEFI可以进一步配置为响应于电力丢失指示符而将***变量从易失性存储器复制到非易失性存储器。
尽管可以在UEFI的上下文中呈现与本公开一致的实施例,但是将领会到,所讨论的原理可以应用于OS和底层硬件之间的任何类型的接口。
图1图示了与本公开一致的一个示例实施例的最高级***图100。***被示出为包括处理器102、存储器模块110、电力管理电路108(还称为电力管理集成电路或PMIC)和预留能量存储模块116。存储器模块110包括易失性存储器模块112(例如,要求电力来维持数据内容的存储器)和非易失性存储器模块114。处理器102被示出为托管具有持久性存储装置能力的UEFI 104,如将在下文更详细解释的。持久性存储装置可以理解为包括存储器存储装置,所述存储器存储装置配置为保持已经写入到它的数据,使得该数据甚至倘若非预期电力丢失、重置或其它中断发生也将持续。处理器102还被示出为托管OS 106。
在一些实施例中,***可以是计算设备和/或通信设备,包括例如智能电话、智能平板、个人数字助手(PDA)、移动因特网设备(MID)、双用型平板、笔记本或膝上型计算机、工作站或台式计算机。
PMIC 108可以配置为从一个或多个主电源118向处理器102和其它***组件提供电力,一个或多个主电源118可以包括基于交流(AC)的电力供应(例如,市电或干线电力)、电池或者任何其它适当的电源。倘若来自可用主电源的电力丢失发生,则PMIC可以切换到预留能量存储模块116,以在足以执行“干净”关断的时间段内向***提供电力的继续,如将在下文更详细描述的。电力丢失可能例如归因于电池的移除、电力线缆的断开、过渡电池耗尽等而发生。
图2图示了与本公开一致的示例实施例的框图200。UEFI 104被更详细地示出为包括引导服务模块210、运行时服务模块212和UEFI(或***)变量214。易失性存储器模块112被示出为包括不可由OS 106直接访问的受保护高速缓存区208。相比而言,非易失性存储器114可以配置为由UEFI 104和OS 106二者可共享。预留能量存储模块116被示出为包括电容器202或者可选地辅助电池204或者适用于至少临时操作的其它电源。
UEFI 104可以配置为提供与***上电、重置或重启相关联的引导服务210,在***上电、重置或重启期间,OS一般尚未在执行。UEFI 104还可以配置为在引导过程完成并且OS已经被发起之后提供运行时服务212。在该时间期间,当OS在执行时,UEFI和OS之间的存储器的共享可能触发存储器连接问题和/或引发安全问题。对于存储包括以下的UEFI认证的变量的存储器区的共享而言尤其如此:平台密钥(PK);密钥交换密钥(KEK);信任密钥、签名和可执行图像的数据库(DB);以及非信任密钥、签名和可执行图像的数据库(DBX)。
运行时服务212可以使得能够通过OS 106间接访问UEFI变量214。这种访问可以通过诸如例如用于读取的GetVariable()以及用于写入的SetVariable()的函数调用来提供,所述功能调用包括在UEFI 104和OS 106之间的编程接口中。响应于读取请求,UEFI可以从易失性存储器112的受保护高速缓存208检索***变量数据。响应于写入请求,UEFI可以将***变量数据存储在易失性存储器112的受保护高速缓存208中。***变量可以包括例如引导加载器的位置、***语言偏好、用于密码的公钥等,所述用于密码的公钥包括之前描述的PK、KEK、DB和DBX。
UEFI固件代码或者至少实现这些***变量的部分可以在访问受保护的***管理随机存取存储器(SMRAM)的情况下在处理器的***管理模式(SMM)中执行。SMM和SMRAM甚至与最高特权等级Ring 0隔离,OS可以在最高特权等级Ring 0之下执行。然而,SMRAM一般地是易失性存储器,其内容在电力中断期间丢失。
PMIC 108可以配置为在预留能量存储模块116的电容器202(或辅助电池204)上维持电荷,而同时主电源118可用。PMIC 108还可以配置为检测来自主电源112的电力丢失并且切换到预留能量存储模块116。响应于检测到这种电力丢失,PMIC 108还可以向处理器102生成电力丢失指示符(PLI)206,处理器102可以生成中断,例如***管理中断(SMI),该中断触发通过UEFI 104进行的动作来执行“干净”关断。SMI迫使处理器进入***管理模式中,在***管理模式期间,UEFI在信任执行环境中运行,其中OS已经放弃平台硬件的控制。作为干净关断的部分,在来自预留能量存储模块116的剩余电力上运行的UEFI可以配置为将***变量从易失性受保护高速缓冲存储器208复制到非易失性存储器114的区(例如,从高速缓存冲洗(flush)),使得它们将得以保持并且在主电力恢复之后可用于后续的***重新引导/重启。在已经从高速缓存冲洗***变量之后,如果足够的预留电力可用,则干净关断还可以包括通过UEFI生成不可掩蔽中断(NMI),以触发OS执行可以是适当的任何附加操作,诸如例如保存用户应用的状态和/或数据。
在一些实施例中,UEFI 104可以托管在具有用于***变量的相关联的隔离高速缓冲存储器的第二处理器或微控制器上,所述第二处理器或微控制器中一个或二者可以与处理器102分离或隔离。然而,该第二处理器/微控制器可以集成到包括处理器102和/或其它组件的片上***(SoC)架构中。
在一些实施例中,电容器202的大小可以选择为提供足够持续时间的放电时间常量,以允许完成UEFI(***)变量从易失性向非易失性存储器的转移。在一些实施例中,***变量可以占用大约128千字节的存储器,但是还可以实现更小或更大的大小。在一些实施例中,易失性存储器可以配置为动态随机存取存储器(DRAM),并且非易失性存储器可以配置为闪速存储器(例如,NAND闪速存储器)。
图3图示了与本公开一致的一个示例实施例的操作300的流程图。这些操作可以由UEFI在***引导或重置期间执行。在操作302处,在易失性存储器中启用受保护高速缓存。受保护高速缓存可以配置为通过除UEFI之外的OS或任何软件/实体不可访问。在操作304处,UEFI初始化平台。在操作306处,PLI电容器(预留能量存储模块116)的充电开始。在操作308处,将控制转移给OS。
图4图示了与本公开一致的另一个示例实施例的操作400的流程图。在操作402处,SMI将控制转移给UEFI。在操作404处,UEFI确定是否已经生成电力丢失指示符。如果不存在电力丢失指示符,则UEFI在操作406处确定是否已经例如通过由OS调用的GetVariable()或SetVariable()函数来做出***变量访问请求。如果请求写入,则在操作410处将数据写入到受保护高速缓存。如果请求读取,则在操作408处从受保护高速缓存读取数据。在操作412处将控制返回给OS之前,UEFI可以进一步在适当的情况下执行任何附加操作。
如果电力丢失已经发生并且如果在操作420处确定PLI电容器具有足够电荷,则在操作424处执行“干净”关断。干净关断包括在操作424处将***变量从受保护高速缓存冲洗或复制到非易失性存储器。干净关断可以进一步包括在操作426处生成NMI,以在关断之前使OS执行可以是适当的任何其它操作。如果PLI电容器不具有足够电荷,则在操作422处将发生“脏”关断。脏关断可能因而导致存储在易失性存储器中的受保护高速缓存中的任何数据的丢失。
图5图示了与本公开一致的另一个示例实施例的操作500的流程图。这些操作一般地提供用于通过固件接口进行的持久性存储的方法。在操作510处,固件接口控制对易失性存储器的受保护区中的***变量的访问。在操作520处,将电力丢失指示符提供给固件接口。在操作530处,响应于电力丢失指示符而执行向来自预留能量存储模块的电力的切换。在操作540处,响应于电力丢失指示符而通过固件接口将***变量从易失性存储器复制到非易失性存储器。
图6图示了与本公开一致的一个示例实施例的***图600。***600可以是移动平台610或计算设备,诸如例如智能电话、智能平板、个人数字助手(PDA)、移动因特网设备(MID)、双用型平板、笔记本或膝上型计算机、或者任何其它适当的设备。然而,将领会到,本文描述的***的实施例不限于移动平台,并且在一些实施例中,***600可以是工作站或台式计算机。
***600被示出为包括处理器620。在一些实施例中,处理器620可以实现为任何数目的处理器核心。处理器(或处理器核心)可以是任何类型的处理器,诸如例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、现场可编程门阵列或者配置为执行代码的其它设备。处理器620可以是单线程核心或者多线程核心,因为其可以每一核心包括多于一个硬件线程上下文(或“逻辑处理器”)。***600还被示出为包括耦合到处理器620的存储器。存储器可以包括易失性存储器112和非易失性存储器114。存储器可以是如本领域技术人员所已知或者以其它方式可获得的任何各种各样的存储器(包括存储器层级结构的各种层和/或高速缓冲存储器)。将领会到,处理器620和存储器112、114可以配置为存储、托管和/或执行一个或多个操作***、固件接口、用户应用或其它软件模块。这些应用可以包括但不限于,例如任何类型的计算、通信、数据管理、数据存储和/或用户接口任务。在一些实施例中,这些应用可以采用移动平台610的任何其它组件或者与之交互。
***600还被示出为包括网络接口模块640,其可以配置为提供例如到平台的以太网连接性。***600还被示出为包括无线通信模块650,其可以包括无线通信能力,诸如例如蜂窝通信、无线保真(WiFi)、Bluetooth®和/或近场通信(NFC)。无线通信可以符合任何现有或尚待开发的通信标准或者以其它方式与之兼容,所述通信标准包括过去、当前和将来版本的Bluetooth®、Wi-Fi和移动电话通信标准。
***600还被示出为包括输入/输出(IO)***或控制器630,其可以配置为启用或管理处理器620和***600的其它元件或***600外部的其它元件(没有示出)之间的数据通信。
***可以一般地经由显示元件660向用户呈现各种接口,诸如例如触摸屏、液晶显示器(LCD)或任何其它适当的显示类型。
***600还被示出为包括PMIC模块108和预留能量存储模块116,它们的操作已经在上文详细描述。
将领会到,在一些实施例中,***600的各种组件可以组合在片上***(SoC)架构中。在一些实施例中,组件可以是硬件组件、固件组件、软件组件,或者硬件、固件或软件的任何适当组合。
本文描述的方法的实施例可以实现在包括一个或多个存储介质的***中,所述一个或多个存储介质具有个体地或者组合地存储在其上的指令,所述指令在由一个或多个处理器执行时执行这些方法。此处,处理器可以包括例如***CPU(例如,核心处理器)和/或可编程电路。因而,意图的是,根据本文描述的方法的操作可以跨多个物理设备分布,所述多个物理设备诸如例如处于若干不同物理位置处的处理结构。而且,意图的是,方法操作可以个体地或者以子组合执行,如本领域技术人员将理解的那样。因而,并不需要执行每一个流程图的所有操作,并且本公开明确地意图启用这样的操作的所有子组合,如本领域普通技术人员将理解的那样。
存储介质可以包括例如以下的任何类型的有形介质:任何类型的盘,包括软盘、光学盘、致密盘只读存储器(CD-ROM)、致密盘可再写(CD-RW)、数字多功能盘(DVD)和磁光盘;半导体器件,诸如只读存储器(ROM)、随机存取存储器(RAM)(诸如动态和静态RAM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪速存储器、磁性或光学卡;或者适用于存储电子指令的任何类型介质。
如在本文任何实施例中所使用的“电路”可以例如单独地或者以任何组合地包括硬布线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。app可以体现为代码或指令,其可以在诸如主机处理器或其它可编程电路之类的可编程电路上执行。如在本文任何实施例中所使用的,模块可以体现为电路。电路可以体现为集成电路,诸如集成电路芯片。
因而,本公开提供了用于具有持久性存储装置的UEFI的***、设备、方法和计算机可读介质,所述具有持久性存储装置的UEFI用于例如倘若电力丢失发生则提供存储器写入持续性。以下示例涉及进一步的实施例。
根据示例1,提供了一种提供用于固件接口的持久性存储的***。***可以包括用于托管固件接口的处理器,固件接口用于控制对易失性存储器的受保护区中的***变量的访问。该示例的***还可以包括电力管理电路,用于向处理器提供电力并且进一步用于向固件接口提供电力丢失指示符。该示例的***可以进一步包括预留能量存储模块,用于响应于电力丢失指示符而向处理器提供电力。该示例的固件接口可以配置为响应于电力丢失指示符而将***变量从易失性存储器复制到非易失性存储器。
示例2可以包括前述示例的元件,并且预留能量存储模块是电容器。
示例3可以包括前述示例的元件,并且处理器进一步托管操作***(OS),固件接口用于控制通过OS对***变量的访问。
示例4可以包括前述示例的元件,并且进一步包括用于托管操作***(OS)的第二处理器,固件接口用于控制通过OS对***变量的访问。
示例5可以包括前述示例的元件,并且电力丢失指示符与固件接口的***管理中断(SMI)相关联。
示例6可以包括前述示例的元件,并且固件接口进一步用于在将***变量复制到非易失性存储器之后向OS生成不可掩蔽中断(NMI)。
示例7可以包括前述示例的元件,并且电力管理电路进一步用于为预留能量存储模块充电。
示例8可以包括前述示例的元件,并且固件接口为统一可扩展固件接口(UEFI)。
示例9可以包括前述示例的元件,并且预留能量存储模块为电池。
示例10可以包括前述示例的元件,并且易失性存储器为动态随机存取存储器(DRAM)。
示例11可以包括前述示例的元件,并且非易失性存储器为闪速存储器。
示例12可以包括前述示例的元件,并且***为智能电话、智能平板、笔记本或膝上型计算机。
根据示例13,提供了一种用于通过固件接口来提供持久性存储的方法。方法可以包括通过固件接口来控制对易失性存储器的受保护区中的***变量的访问。该示例的方法还可以包括向固件接口提供电力丢失指示符。该示例的方法可以进一步包括响应于电力丢失指示符而切换到来自预留能量存储模块的电力。该示例的方法可以进一步包括响应于电力丢失指示符而通过固件接口将***变量从易失性存储器复制到非易失性存储器。
示例14可以包括前述示例的操作,并且预留能量存储模块为电容器。
示例15可以包括前述示例的操作,并且***变量由操作***(OS)可控制地访问。
示例16可以包括前述示例的操作,并且进一步包括生成固件接口的***管理中断(SMI),SMI与电力丢失指示符相关联。
示例17可以包括前述示例的操作,并且进一步包括在将***变量复制到非易失性存储器之后向OS生成不可掩蔽中断(NMI)。
示例18可以包括前述示例的操作,并且进一步包括为预留能量存储模块充电。
示例19可以包括前述示例的操作,并且固件接口为统一可扩展固件接口(UEFI)。
根据示例20,提供了一种用于通过固件接口来提供持久性存储的***。***可以包括用于通过固件接口来控制对易失性存储器的受保护区中的***变量的访问的构件。该示例的***还可以包括用于向固件接口提供电力丢失指示符的构件。该示例的***可以进一步包括用于响应于电力丢失指示符而切换到来自预留能量存储模块的电力的构件。该示例的***可以进一步包括用于响应于电力丢失指示符而通过固件接口将***变量从易失性存储器复制到非易失性存储器的构件。
示例21可以包括前述示例的元件,并且预留能量存储模块为电容器。
示例22可以包括前述示例的元件,并且***变量由操作***(OS)可控制地访问。
示例23可以包括前述示例的元件,并且进一步包括用于生成固件接口的***管理中断(SMI)的构件,SMI与电力丢失指示符相关联。
示例24可以包括前述示例的元件,并且进一步包括用于在将***变量复制到非易失性存储器之后向OS生成不可掩蔽中断(NMI)的构件。
示例25可以包括前述示例的元件,并且进一步包括用于为预留能量存储模块充电的构件。
示例26可以包括前述示例的元件,并且固件接口为统一可扩展固件接口(UEFI)。
根据另一个示例,提供了具有存储在其上的指令的至少一个计算机可读存储介质,所述指令在由处理器执行时使得处理器执行如在以上任何示例中描述的方法的操作。
根据另一个示例,提供了一种装置,包括用于执行如在以上任何示例中描述的方法的构件。
已经在本文中采用的术语和表述被用作描述术语而不作为限制,并且在这样的术语和表述的使用中,不意图排除所示出和描述的特征(或其部分)的任何等同物,并且要认识到,各种修改在权利要求的范围内是可能的。相应地,意图权利要求覆盖所有这样的等同物。已经在本文描述了各种特征、方面和实施例。这些特征、方面和实施例易于相互组合,以及易于进行变型和修改,如将由本领域技术人员所理解的那样。因此,本公开应当视为涵盖这样的组合、变型和修改。

Claims (21)

1.一种提供用于固件接口的持久性存储的***,所述***包括:
处理器,用于托管所述固件接口,所述固件接口用于控制对易失性存储器的受保护区中的***变量的访问,其中所述固件接口为统一可扩展固件接口(UEFI),并且所述***变量由操作***(OS)可控制地访问,所述***变量至少包括:平台密钥PK;密钥交换密钥KEK;信任密钥、签名和可执行图像的数据库DB;以及非信任密钥、签名和可执行图像的数据库DBX;
电力管理电路,用于向所述处理器提供电力并且进一步用于向所述固件接口提供电力丢失指示符;
预留能量存储模块,用于响应于所述电力丢失指示符而向所述处理器提供电力;以及
所述固件接口进一步用于响应于所述电力丢失指示符而将所述***变量从所述易失性存储器复制到非易失性存储器,其中所述固件接口进一步用于在充足的预留电力可用的情况下在将所述***变量复制到所述非易失性存储器之后向所述操作***(OS)生成不可掩蔽中断(NMI),以触发所述操作***(OS)执行能够是适当的任何附加操作。
2.根据权利要求1所述的***,其中所述预留能量存储模块是电容器。
3.根据权利要求1或2所述的***,其中所述处理器进一步用于托管所述操作***(OS),所述固件接口用于控制通过所述OS对所述***变量的访问。
4.根据权利要求1或2所述的***,进一步包括用于托管所述操作***(OS)的第二处理器,所述固件接口用于控制通过所述OS对所述***变量的访问。
5.根据权利要求1至4中任一项所述的***,其中所述电力丢失指示符与所述固件接口的***管理中断(SMI)相关联。
6.根据权利要求1至5中任一项所述的***,其中所述电力管理电路进一步用于为所述预留能量存储模块充电。
7.根据权利要求1至6中任一项所述的***,其中所述预留能量存储模块为电池。
8.根据权利要求1至7中任一项所述的***,其中所述易失性存储器为动态随机存取存储器(DRAM)。
9.根据权利要求1至8中任一项所述的***,其中所述非易失性存储器为闪速存储器。
10.根据权利要求1至9中任一项所述的***,其中所述***为智能电话、智能平板、笔记本或膝上型计算机。
11.一种用于通过固件接口来提供持久性存储的方法,所述方法包括:
通过所述固件接口来控制对易失性存储器的受保护区中的***变量的访问,其中所述固件接口为统一可扩展固件接口(UEFI),并且所述***变量***作***(OS)可控制地访问,所述***变量至少包括:平台密钥PK;密钥交换密钥KEK;信任密钥、签名和可执行图像的数据库DB;以及非信任密钥、签名和可执行图像的数据库DBX;
向所述固件接口提供电力丢失指示符;
响应于所述电力丢失指示符而切换到来自预留能量存储模块的电力;
响应于所述电力丢失指示符而通过所述固件接口将所述***变量从所述易失性存储器复制到非易失性存储器;以及
在充足的预留电力可用的情况下在将所述***变量复制到所述非易失性存储器之后通过所述固件接口向所述操作***(OS)生成不可掩蔽中断(NMI),以触发所述操作***(OS)执行能够是适当的任何附加操作。
12.根据权利要求11所述的方法,其中所述预留能量存储模块为电容器。
13.根据权利要求11至12中任一项所述的方法,进一步包括生成所述固件接口的***管理中断(SMI),所述SMI与所述电力丢失指示符相关联。
14.根据权利要求11至13中任一项所述的方法,进一步包括为所述预留能量存储模块充电。
15.具有存储在其上的指令的至少一个计算机可读存储介质,所述指令在由处理器执行时导致用于通过固件接口来提供持久性存储的以下操作,所述操作包括:
通过所述固件接口来控制对易失性存储器的受保护区中的***变量的访问,其中所述固件接口为统一可扩展固件接口(UEFI),并且所述***变量***作***(OS)可控制地访问,所述***变量至少包括:平台密钥PK;密钥交换密钥KEK;信任密钥、签名和可执行图像的数据库DB;以及非信任密钥、签名和可执行图像的数据库DBX;
向所述固件接口提供电力丢失指示符;
响应于所述电力丢失指示符而切换到来自预留能量存储模块的电力;
响应于所述电力丢失指示符而通过所述固件接口将所述***变量从所述易失性存储器复制到非易失性存储器;以及
在充足的预留电力可用的情况下在将所述***变量复制到所述非易失性存储器之后通过所述固件接口向所述操作***(OS)生成不可掩蔽中断(NMI),以触发所述操作***(OS)执行能够是适当的任何附加操作。
16.根据权利要求15所述的计算机可读存储介质,进一步包括生成所述固件接口的***管理中断(SMI)的操作,所述SMI与所述电力丢失指示符相关联。
17.根据权利要求15至16中任一项所述的计算机可读存储介质,进一步包括为所述预留能量存储模块充电的操作。
18.一种用于通过固件接口来提供持久性存储的装置,所述装置包括:
用于通过所述固件接口来控制对易失性存储器的受保护区中的***变量的访问的构件,其中所述固件接口为统一可扩展固件接口(UEFI),并且所述***变量***作***(OS)可控制地访问,所述***变量至少包括:平台密钥PK;密钥交换密钥KEK;信任密钥、签名和可执行图像的数据库DB;以及非信任密钥、签名和可执行图像的数据库DBX;
用于向所述固件接口提供电力丢失指示符的构件;
用于响应于所述电力丢失指示符而切换到来自预留能量存储模块的电力的构件;
用于响应于所述电力丢失指示符而通过所述固件接口将所述***变量从所述易失性存储器复制到非易失性存储器的构件;以及
用于在充足的预留电力可用的情况下在将所述***变量复制到所述非易失性存储器之后通过所述固件接口向所述操作***(OS)生成不可掩蔽中断(NMI)的构件,以触发所述操作***(OS)执行能够是适当的任何附加操作。
19.根据权利要求18所述的装置,其中所述预留能量存储模块为电容器。
20.根据权利要求18至19中任一项所述的装置,进一步包括用于生成所述固件接口的***管理中断(SMI)的构件,所述SMI与所述电力丢失指示符相关联。
21.根据权利要求18至20中任一项所述的装置,进一步包括用于为所述预留能量存储模块充电的构件。
CN202210548309.9A 2014-06-23 2015-05-14 具有持久性存储器存储装置的固件接口 Pending CN114879828A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/312017 2014-06-23
US14/312,017 US9703346B2 (en) 2014-06-23 2014-06-23 Firmware interface with backup non-volatile memory storage
PCT/US2015/030700 WO2015199830A1 (en) 2014-06-23 2015-05-14 Firmware interface with durable memory storage
CN201580026797.5A CN106462483A (zh) 2014-06-23 2015-05-14 具有持久性存储器存储装置的固件接口

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201580026797.5A Division CN106462483A (zh) 2014-06-23 2015-05-14 具有持久性存储器存储装置的固件接口

Publications (1)

Publication Number Publication Date
CN114879828A true CN114879828A (zh) 2022-08-09

Family

ID=54869580

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210548309.9A Pending CN114879828A (zh) 2014-06-23 2015-05-14 具有持久性存储器存储装置的固件接口
CN201580026797.5A Pending CN106462483A (zh) 2014-06-23 2015-05-14 具有持久性存储器存储装置的固件接口

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201580026797.5A Pending CN106462483A (zh) 2014-06-23 2015-05-14 具有持久性存储器存储装置的固件接口

Country Status (6)

Country Link
US (1) US9703346B2 (zh)
EP (1) EP3158452B1 (zh)
JP (1) JP2017521768A (zh)
KR (1) KR20160146937A (zh)
CN (2) CN114879828A (zh)
WO (1) WO2015199830A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594929B2 (en) * 2014-08-11 2017-03-14 Honeywell International Inc. Open architecture security methods and systems
US10078597B2 (en) * 2015-04-03 2018-09-18 Via Alliance Semiconductor Co., Ltd. System and method of distinguishing system management mode entries in a translation address cache of a processor
US10366224B2 (en) 2016-06-22 2019-07-30 Dell Products, Lp System and method for securing secure memory allocations in an information handling system
US10140117B2 (en) 2016-06-30 2018-11-27 Microsoft Technology Licensing, Llc Fault-tolerant variable region repaving during firmware over the air update
US10185553B2 (en) * 2016-06-30 2019-01-22 Microsoft Technology Licensing, Llc Fault-tolerant variable region repaving during firmware over the air update
US10152393B2 (en) * 2016-08-28 2018-12-11 Microsoft Technology Licensing, Llc Out-of-band data recovery in computing systems
US10521216B2 (en) 2017-01-17 2019-12-31 Oracle International Corporation Unified extensible firmware interface updates
JP6802484B2 (ja) * 2017-02-10 2020-12-16 富士通株式会社 ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法
US11036408B2 (en) 2017-03-26 2021-06-15 Oracle International Corporation Rule-based modifications in a data storage appliance monitor
US10318417B2 (en) * 2017-03-31 2019-06-11 Intel Corporation Persistent caching of memory-side cache content
US10496443B2 (en) * 2017-05-03 2019-12-03 Vmware, Inc. OS/hypervisor-based persistent memory
US10474550B2 (en) 2017-05-03 2019-11-12 Vmware, Inc. High availability for persistent memory
EP3625675A4 (en) * 2017-07-03 2021-01-06 Hewlett-Packard Development Company, L.P. SHUTDOWN SEQUENCE OF THIN CLIENTS
CN110363034B (zh) * 2019-06-28 2023-05-05 联想企业解决方案(新加坡)有限公司 解锁信息处理装置的存储器中的持久区域的方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4309369A1 (de) * 1993-03-23 1994-09-29 Siemens Nixdorf Inf Syst Netzausfallüberbrückung
CN1155696A (zh) * 1995-12-13 1997-07-30 惠普公司 用主高速缓存器和打印机高速缓存器提高文本打印性能
US6195754B1 (en) * 1997-01-28 2001-02-27 Tandem Computers Incorporated Method and apparatus for tolerating power outages of variable duration in a multi-processor system
US6848046B2 (en) 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
US20050010811A1 (en) 2003-06-16 2005-01-13 Zimmer Vincent J. Method and system to support network port authentication from out-of-band firmware
US20050193259A1 (en) 2004-02-17 2005-09-01 Martinez Juan I. System and method for reboot reporting
US20060136765A1 (en) * 2004-12-03 2006-06-22 Poisner David L Prevention of data loss due to power failure
US20090113220A1 (en) * 2007-10-26 2009-04-30 Sang Han Lee Encrypted backup data storage device and storage system using the same
US8316244B1 (en) * 2008-05-13 2012-11-20 Netapp, Inc. Power failure system and method for storing request information
EP2476039B1 (en) * 2009-09-09 2016-10-26 SanDisk Technologies LLC Apparatus, system, and method for power reduction management in a storage device
EP2437171B1 (de) * 2010-09-09 2013-05-01 Siemens Aktiengesellschaft Datenspeichersystem und Verfahren
JP2013061799A (ja) * 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、記憶装置の制御方法およびコントローラ
US9158700B2 (en) * 2012-01-20 2015-10-13 Seagate Technology Llc Storing cached data in over-provisioned memory in response to power loss
CN103377063B (zh) * 2012-04-28 2016-06-22 国际商业机器公司 从遗留操作***环境恢复到uefi预启动环境的方法和***
US9678732B2 (en) 2012-09-14 2017-06-13 Intel Corporation Firmware agent
US20140082406A1 (en) * 2012-09-18 2014-03-20 Sandisk Technologies Inc. Data protection through power loss prediction
US8677097B1 (en) * 2012-10-17 2014-03-18 Avalance Technology, Inc. Persistent block storage attached to memory bus

Also Published As

Publication number Publication date
US9703346B2 (en) 2017-07-11
EP3158452B1 (en) 2021-12-01
KR20160146937A (ko) 2016-12-21
US20150370302A1 (en) 2015-12-24
EP3158452A4 (en) 2018-04-18
CN106462483A (zh) 2017-02-22
WO2015199830A1 (en) 2015-12-30
EP3158452A1 (en) 2017-04-26
JP2017521768A (ja) 2017-08-03

Similar Documents

Publication Publication Date Title
EP3158452B1 (en) Firmware interface with durable memory storage
US11379214B2 (en) Runtime firmware activation for memory devices
US11157265B2 (en) Firmware update
US20150089287A1 (en) Event-triggered storage of data to non-volatile memory
CN111033466B (zh) 对闪存进行分区以及实现具有映像升级能力的灵活引导
KR102060430B1 (ko) 웨이크-업 시간을 줄일 수 있는 시스템 온 칩. 애플리케이션 프로세서, 및 상기 시스템 온 칩을 포함하는 컴퓨터 시스템
US9710179B2 (en) Systems and methods for persistent memory timing characterization
US9916165B2 (en) Systems and methods to optimize boot for information handling system comprising persistent memory
US20140304497A1 (en) Electronic device having function of booting operating system by bootloader, method of performing the same function, and storage medium
JP2010123125A (ja) プラットフォームの高速リスタートを可能にする方法およびシステム
CN105993001B (zh) 用于在操作***之间切换的技术
TW201525869A (zh) 用於雙作業系統記憶體切換的系統及方法
US20180365425A1 (en) Systems and methods for securely booting a system on chip via a virtual collated internal memory pool
CN107408034B (zh) 执行上下文迁移方法和装置
US20210357202A1 (en) Firmware updating
US10565141B1 (en) Systems and methods for hiding operating system kernel data in system management mode memory to thwart user mode side-channel attacks
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
US20140095859A1 (en) Apparatus and method for managing register information in a processing system
CN105556461A (zh) 用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术
CN102855162B (zh) 一种数据更新方法、数据更新***及存储器
US20190018475A1 (en) Update memory management information to boot an electronic device from a reduced power mode
US20130166852A1 (en) Method for hibernation mechanism and computer system therefor
WO2023010265A1 (en) Firmware update technologies
US11068276B2 (en) Controlled customization of silicon initialization
JP2003242026A (ja) 情報処理システムおよびプログラム実行モード制御方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination