对非易失性存储器中损坏的系统数据的修复的制作方法

文档序号:9401913阅读:396来源:国知局
对非易失性存储器中损坏的系统数据的修复的制作方法
【专利说明】
【背景技术】
[0001]计算系统可包括执行计算系统的各种启动能的代码。此代码可包括基本输入/输出系统(B1S)代码或其他代码。
【附图说明】
[0002]针对下面的附图描述一些实施方式:
[0003]图1是根据一些实施方式的系统数据完整性验证过程的流程图;
[0004]图2和图3是包含一些实施方式的示例计算系统的框图;以及
[0005]图4是根据一些实施方式的管理引擎区域验证过程的流程图。
【具体实施方式】
[0006]各种类型的系统数据可被存储在计算系统的非易失性存储器中。系统数据在计算系统的运行期间被访问,以确保计算系统的正确运行。系统数据可被存储在非易失性存储器中的各种数据结构中,且可与计算系统中的至少一个组件的配置有关。例如,系统数据可与计算系统的配置有关,或可选地,系统数据可与计算系统的单个组件或多个组件的配置有关。
[0007]计算系统的示例包括台式机、笔记本电脑、平板电脑、个人数字助理(PDA)、智能电话、游戏机、服务器电脑、存储节点、网络通信节点等。
[0008]非易失性存储器中的系统数据可由于计算系统中的(诸如,恶意软件所造成的)未授权访问及运行而被损坏。此外,非易失性存储器中的系统数据可能在无意中被损害。一旦系统数据被损坏,计算系统的正确运行是不可行的。
[0009]尽管提供了保护存储在非易失性存储器中的系统代码免受损坏的机制,可能不存在用于保护存储在非易失性存储器中的系统数据的机制。可被存储在非易失性存储器中的系统代码的示例可包括用于执行计算系统的启动或恢复操作的系统固件。系统固件是以在计算系统的一个处理器(或多个处理器)上可执行的机器可读指令形式。
[0010]系统固件可包括:可初始化计算系统的各种组件并加载计算系统的操作系统(OS)的基本输入/输出系统(B1S)代码。B1S代码可执行对硬件组件的检查,以确保硬件组件存在且正常运行。这可以是例如上电自检(POST)步骤的一部分。在POST步骤之后,B1S代码可继续进行余下的启动序列,此后,B1S代码可加载OS,并将控制转到OS。B1S代码可包括遗留B1S代码或统一的可扩展固件接口(UEFI)代码。在一些示例中,B1S代码可包括在OS加载之后执行的运行时部分。
[0011]可被存储在非易失性存储器中的系统数据的示例包括下面中的至少一些。尽管参照系统数据的特定示例,注意到,根据一些实施方式的技术或机制可被应用于其他类型的系统数据。
[0012]系统数据可包括:可指对于每个特定的计算系统唯一的任何配置数据或设置的机器唯一数据。机器唯一数据的示例可包括下列的任何或一些组合:产品名、产品型号、库存量单位(SKU)号(用于识别出售的各个计算系统)、计算系统的序列号、系统或商品追踪号码(用于识别计算系统的系统板)、系统配置标识符(用于识别计算系统的配置)、保修数据(用于描述与计算系统相关联的保修)、通用唯一标识符(UUID)、B1S代码的默认设置、用于保护信息并将信息绑定于计算系统的唯一加密标识符(例如,加密密钥)等。提供前述内容作为机器唯一数据的示例;在其他示例中,可提供其他或额外类型的机器唯一数据。机器唯一数据可被存储在非易失性存储器中的对应的数据结构中,诸如非易失性存储器的机器唯一数据(MUD)区域。
[0013]系统数据还可包括计算系统的网络控制器的配置数据。网络控制器可用于根据诸如以太网协议(例如,千兆以太网协议或其他类型的以太网协议)的网络协议或其他类型的协议在网络上进行通信。在由网络控制器支持的网络协议是兆位以太网(GbE)协议的示例中,网络控制器的配置数据可包括非易失性存储器的GbE区域中的数据。GbE区域是包含用于可作为计算系统的一部分的网络控制器的配置数据(例如,可编程设置)的数据结构。在与网络控制器连接的总线上的总线复位信号无效(deassert1n)时,由网络控制器读取可编程设置。
[0014]在其他示例中,系统数据可包括非易失性存储器中的描述符区域中的数据。描述符区域是包含描述存储系统固件的非易失性存储器的布局的信息以及用于输入/输出(I/
O)控制器(诸如,来自因特尔公司的平台控制中心(PCH)或其他类型的I/O控制器)的配置参数的数据结构。PCH可包括各种功能,包括到图形子系统的显示器接口、到可与各种I/O设备连接的系统总线的系统总线接口等。I/O控制器I/O可在从复位退出时读取描述符区域中的数据。
[0015]依照一些实施方式,为了执行非易失性存储器中的系统数据的完整性验证,可提供系统数据的冗余拷贝。在一些实施方式中,计算系统所使用的系统数据被存储在初级非易失性存储器中。系统数据的冗余拷贝被存储在次级非易失性存储器中。系统数据的冗余拷贝可与初级非易失性存储器中的系统数据相同,或可以是次级非易失性存储器中的系统数据的不同的版本(更早的版本或后来的版本)。
[0016]图1是根据一些实施方式的系统数据验证过程的流程图。图1的一些任务可由与用于执行系统固件的计算系统的一个或多个处理器分离的控制器(诸如嵌入式控制器)来执行。如下面进一步讨论,嵌入式控制器可用于执行特定的指定任务。图1的一些任务还可由系统固件来执行。
[0017]图1的过程(在102)将系统数据的冗余拷贝存储在次级非易失性存储器中,其中,系统数据与计算系统的至少一个物理组件的配置有关。例如,系统数据可包括机器唯一数据、网络控制器的配置数据、以及描述符区域数据。次级非易失性存储器可由嵌入式控制器访问,但不可由计算系统中的一个或多个处理器访问。该过程还可将一个或多个校验值存储在次级非易失性存储器中,其中,一个或多个校验值可以是哈希值、校验和、或基于各个系统数据的内容计算的其他值。
[0018]图1的过程(在104)基于系统数据的冗余拷贝或基于次级非易失性存储器中的一个或多个校验值来确定可由一个或多个处理器访问的次级非易失性存储器中的系统数据是否被损坏。
[0019]响应于确定初级非易失性存储器中的系统数据被损坏,嵌入式控制器和/或系统固件可(在106)通过使用次级非易失性存储器中的系统数据的冗余拷贝来修复初级非易失性存储器中损坏的系统数据。
[0020]图2是示例计算系统200的框图,计算系统200包括嵌入式控制器202、初级非易失性存储器204、处理器206、以及次级非易失性存储器216。初级非易失性存储器204是可由包括嵌入式控制器202以及至少一个其他实体(包括处理器206)的多个实体访问的共享非易失性存储器。次级非易失性存储器216可由嵌入式控制器202访问,但不可由处理器206或计算系统200中的其他组件访问(有效地,次级非易失性存储器216与除嵌入式控制器202之外的实体电隔离)。使次级非易失性存储器216不可由处理器206和其他组件访问保护次级非易失性存储器216的内容免受未授权篡改。次级非易失性存储器216可随时由嵌入式存储器202访问。
[0021]尽管图2中未示出,输入/输出(I/O)控制器可被设置在处理器206与初级非易失性存储器204之间。
[0022]次级非易失性存储器216可与初级非易失性存储器204物理地分离(诸如在不同的物理存储设备中实现)。可选地,次级非易失性存储器216以及初级非易失性存储器204可物理地位于共用存储设备上,但初级非易失性存储器204以及次级非易失性存储器216在物理存储设备的不同段中,其中,包含次级非易失性存储器216的物理存储设备的段仅可由嵌入式控制器202访问。换句话说,包含次级非易失性存储器216的段在嵌入式控制器202的独占控制下,且此段可从处理器206或其他实体的访问被锁定。
[0023]初级非易失性存储器204可由嵌入式控制器202或其他实体通过共享总线220来访问。注意到,次级非易失性存储器216与共享总线220电隔离。在一些实施方式中,仅一个实体可在给定的时间访问共享总线220,使得一次仅一个实体可访问初级非易失性存储器204。在一些示例中,共享总线220是共享串行外设接口(SPI)总线。SPI总线是同步串行数据链路,其中,SIP总线上的设备以主从模式运行。在其他示例中,可使用其他类型的共享总线220。在可选的示例中,可提供仲裁机制来允许处于包括低功耗状态或正常运行时状态的计算系统的各种状态的总线220的共享访问。
[0024]初级非易失性存储器204可存储系统固件207,系统固件207可包括B1S代码。系统固件207可包括EC固件208以及启动模块210,EC固件208供嵌入式控制器202执行,启动模块210将由处理器206执行。尽管参照“EC固件”,但注意到,技术或机制可应用于可由嵌入式控制
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1