更新提交列表以指示数据将被写入固件接口变量存储库的制作方法

文档序号:9291633阅读:175来源:国知局
更新提交列表以指示数据将被写入固件接口变量存储库的制作方法
【专利说明】
【背景技术】
[0001]计算设备可以通过将信息保存于存储器的可以在计算设备的系统管理模式(SMM)下访问的部分中而保护信息免于被篡改。例如,计算设备可以在存储器的这样的部分中实现固件接口(FI)变量存储库,以保护所述存储库免于被篡改。在这样的例子中,在FI变量存储库中存储数据可以包括触发系统管理中断(SMI)以使得计算设备进入SMM,其中数据可以被写入存储库。
【附图说明】
[0002]以下【具体实施方式】对附图进行参考,其中:
[0003]图1是示例计算设备更新提交(commit)列表以指示数据将被写入固件接口(FI)变量存储库的框图;
[0004]图2是示例计算设备将提交列表中指示的数据写入FI变量存储库的框图;
[0005]图3是示例计算设备的框图,其包括在至少一个补充系统管理模式(SMM)事件期间将提交列表中指示的数据写入FI变量存储库的系统;
[0006]图4是用于更新提交列表以指示数据将被写入FI变量存储库的示例方法的流程图;以及
[0007]图5是用于在补充SMM事件期间将提交列表中指示的数据写入FI变量存储库的示例方法的流程图。
【具体实施方式】
[0008]如上所述,计算设备可以在存储器的可以在计算设备的系统管理模式(SMM)下访问的部分中实现固件接口(FI)变量存储库。在这种例子中,计算设备可以在SMM事件期间访问FI变量存储库。如本文所使用的,计算设备的“ SMM事件”是计算设备处于SMM中的一段时间。在这种例子中,为了写入FI变量存储库,计算设备可以通过发布系统管理中断(SMI)以使得计算设备进入SMM而触发SMM事件。在SMM事件期间,计算设备可以将数据写入FI变量存储库,该存储库可以实现于(例如,存储于)计算设备的非易失性存储器设备中。
[0009]然而,在SMM事件期间将数据写入非易失性存储器设备可能会使得计算设备在不能接受的长时间内保持在SMM中。例如,如果非易失性存储器设备相对较慢、计算设备对非易失性存储器设备的访问相对较慢、待存储的数据量相对较大、或其组合,则在SMM中所花费的时间量可能太久。保持在SMM中太久会负面地影响计算设备的操作,例如,可能导致计算设备的操作系统(OS)的不稳定行为,或者甚至使得OS崩溃。
[0010]为了解决这些问题,响应于经由SMM将目标数据写入固件接口(FI)变量存储库的请求,本文所描述的例子可以将目标数据在给定的SMM事件期间存储于计算设备的系统管理存储器的变量存储库缓存中,在给定的SMM事件期间更新系统管理存储器的提交列表以指示目标数据将被写入FI变量存储库中,并在已经更新了提交列表之后结束给定的SMM事件且没有至少某一部分目标数据在给定的SMM事件期间被写入FI变量存储库。在本文所描述的例子中,在提交列表中指示的数据可以在给定SMM事件(其中更新了提交列表)之后的补充SMM事件期间被写入FI变量数据库。
[0011]以这种方式,本文所描述的例子可以退出SMM,而无需等待所有的目标数据被写入在计算设备的非易失性存储器中实现的FI变量存储库中。因此,本文所描述的例子可以响应于将数据写入FI变量存储库的请求,而限制在SMM中所花费的时间量。在一些例子中,系统管理存储器访问时间可以类似于计算设备的主存储器的访问时间,并因此可以比在计算设备的非易失性存储器中实现的FI变量存储库的访问时间快很多。此外,在本文所描述的一些例子中,每个补充SMM事件的长度可以被限制为防止计算设备在这种SMM事件期间保持在SMM中达过长时间。
[0012]现在参考附图,图1是示例性计算设备100更新提交列表以指示数据将被写入固件接口(FI)变量存储库的框图。如本文所使用的,“计算设备”可以是服务器(例如,机架型服务器、独立式服务器、至少一个刀片服务器、包括至少一个刀片服务器的刀片机箱、刀片机箱的分区(其中所述分区包括至少一个刀片服务器),等等)、工作站、台式计算机、笔记本计算机、平板计算机、移动电话、智能设备,或任意其它处理设备或装备。在图1的例子中,计算设备100包括处理资源110和编码有指令124、126、以及128的机器可读存储介质120。在一些例子中,存储介质120可以包括额外的指令。在一些例子中,指令124、126、128、以及本文所描述的与存储介质120有关的任意其它指令可以存储于远离计算设备100和处理资源110但可以被其访问的机器可读存储介质上。
[0013]在本文描述的例子中,处理资源可以包括例如一个处理器或多个处理器,其被包含于单个计算设备中或分散于多个计算设备中。如本文所使用的,“处理器”可以是以下项目中的至少一个:中央处理单元(CPU)、基于半导体的微处理器、图形处理单元(GPU)、配置为取回并执行指令的现场可编程门阵列(FPGA)、适用于取回并执行存储于机器可读存储介质上的指令的其它电子电路、或其组合。处理资源110可以取得、编码、以及执行存储于存储介质120上的指令以实现下文所描述的功能。在其它例子中,存储介质120的任意指令的功能可以以电子电路的形式、以在机器可读存储介质上编码的可执行指令的形式、或其组合的形式实现。
[0014]如本文所使用的,“机器可读存储介质”可以是任意的电子、磁、光、或其它物理存储装置,以包含或存储例如可执行指令、数据等的信息。例如,本文所描述的任意机器可读存储介质可以是以下中的任意一种:随机存取存储器(RAM)、易失性存储器、非易失性存储器、闪存、存储驱动器(例如,硬盘)、任意类型的存储盘(例如,光盘只读存储器(CD-ROM)、任意其它类型的光盘、DVD等)等等,或其组合。此外,本文所描述的任意的机器可读存储介质可以是非暂时性的。
[0015]计算设备100还包括系统管理存储器140。在一些例子中,系统管理存储器140可以是RAM,例如系统管理RAM(SMRAM)。在一些例子中,系统管理存储器140可以是计算设备100的主存储器的一部分。在这种例子中,形成系统管理存储器140的主存储器的部分可以由SMM中的计算设备100访问而对于计算设备100的任意OS则不可访问。在一些例子中,可以通过计算设备100的至少一个存储器设备来实现主存储器。在其它例子中,系统管理存储器140可以是任意的机器可读存储介质。
[0016]在图1的例子中,响应于经由SMM将目标数据148写入FI变量存储库的请求,指令124可以在给定的SMM事件期间将目标数据148存储在变量存储库缓存142中。变量存储库缓存142可以被存储于系统管理存储器140中。在本文描述的例子中,系统管理模式(SMM)可以是如下的模式:其中在计算设备的任意OS挂起的同时计算设备可以操作,并且其中OS不可访问的计算设备的资源(或资源的一部分)对计算设备是可访问的。例如,资源的特定部分(如,存储器设备的特定部分)可能对于计算设备的OS是不可访问的,但是对于当计算设备处于SMM时运行计算设备的固件的计算设备的部件是可访问的。在本文描述的例子中,计算设备的资源可以是计算设备的任意部件(例如,存储器设备、机器可读存储介质、处理资源等)或功能。在一些例子中,系统管理存储器140(例如,SMRAM)可能对计算设备100的OS是不可访问的,而对于SMM中的计算设备100是可访问的。在本文描述的例子中,在SMM中可访问而对OS “不可访问”的计算设备的资源(或资源的一部分)可以是不依赖于SMM的OS不可访问的资源或资源的一部分。另外,在本文所描述的一些例子中,对OS不可访问并在SMM期间对计算设备可访问的计算设备的资源(或其一部分)在将控制交给OS之前的启动计算设备的OS的启动过程期间对计算设备可以也是可访问的。
[0017]在一些例子中,经由SMM将目标数据148写入FI变量存储库的请求可以是计算设备100的OS或固件对调用SMM以将数据写入FI变量存储库的服务的调用。在这种例子中,响应于所述调用(直接或间接地),指令124可以将目标数据148在给定的SMM事件期间存储在变量存储库缓存142中。在一些例子中,服务例如可以是对计算设备100的OS和固件中的至少一个可用的“SetVariable”服务。在一些例子中,响应于对服务的调用,计算设备100可以触发使得计算设备100进入SMM的SMI,由此开始给定的SMM事件,其中指令124可以将目标数据148存储于变量存储库缓存142。在本文描述的例子中,“固件”可以是存储于至少一个机器可读存储介质上且可由计算设备的处理资源执行的指令。
[0018]在图1的例子中,变量存储库缓存142可以被存储于系统管理存储器140,并可以被维持为FI变量存储库的系统管理存储器140副本。在一些例子中,FI变量存储库可以实现于计算设备100的非易失性存储器中。在这种例子中,FI变量存储库可以实现于计算设备100的非易失性存储器设备中,其与包括系统管理存储器140的存储器设备分离开。在一些例子中,数据可以在被写入FI变量存储库之前,被写入变量存储库缓存142中。
[0019]在本文描述的例子中,FI变量存储库可以是计算设备的固件接口的变量存储库。在本文描述的例子中,计算设备的固件接口可以包括一组可执行指令以提供计算设备的固件和计算设备的OS之间的接口。在一些例子中,固件接口可以包括依据统一可扩展固件接口(UEFI)规范的接口、以及依据可扩展固件接口(EFI)规范的接口、基本输入/输出系统(B1S)等,或其组合。
[0020]在本文描述的例子中,FI变量存储库可以是用于存储计算设备
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1