辅助非易失性存储器中的冗余系统引导代码的制作方法

文档序号:9401959阅读:286来源:国知局
辅助非易失性存储器中的冗余系统引导代码的制作方法
【专利说明】
【背景技术】
[0001]计算系统可以包括执行计算设备的各种启动功能的代码。该代码可以包括基本输入/输出系统(B1S)代码。B1S代码可以是计算系统中或者来自外部服务的恶意软件的攻击目标。作为攻击的结果,B1S代码可能变得受损。
【附图说明】
[0002]参照随附各图描述一些实现方案:
图1是根据一些实现方案的示例系统的框图;
图2是根据一些实现方案的系统引导代码恢复过程的流程图;以及图3是根据另外的实现方案的另一示例系统的框图。
【具体实施方式】
[0003]用于执行计算系统的启动的系统代码上的恶意软件攻击可能使计算系统的完整性受损,使得可能发生计算系统中的未经授权的访问和操作。例如,受损系统代码可能允许恶意实体对计算系统的隐蔽远程监控和/或控制、恶意软件对计算系统中的数据的未经授权访问和/或修改、计算系统的损坏等等。受损系统代码可以是指已经被破坏使得系统代码不再可用的系统代码,或者可替换地,受损系统代码可以是指已经以某种方式改变但仍旧能够执行的系统代码。要指出,系统代码也可能意外地或有意地受损。
[0004]尽管可以在计算系统中提供保护机制来保护系统代码,但是这样的保护机制可能在某些条件之下变得受损,其可能使系统代码经受恶意软件攻击。
[0005]用于执行计算系统的启动的系统代码可以包括系统固件,其可以具有在计算系统的处理器(或多个处理器)上可执行的机器可读指令的形式。“系统固件”可以涵盖能够执行计算系统的启动的任何机器可读指令。计算系统的示例包括台式计算机、笔记本计算机、平板计算机、个人数字助理(PDA)、智能电话、游戏器具、服务器计算机、存储节点、网络通信节点等。
[0006]系统固件可以包括基本输入/输出系统(B1S)代码,其可以初始化计算系统的各种组件,并且加载计算系统的操作系统(OS)。B1S代码可以执行硬件组件的检查以确保硬件组件恰当地存在和运转。这可以是例如加电自检(POST)过程的一部分。在POST过程之后,B1S代码可以通过引导序列的其余部分进行,在此之后B1S代码可以加载并且传递控制给OS。B1S代码可以包括传统B1S代码或统一可扩展固件接口(UEFI)代码。在一些示例中,B1S代码可以包括在OS加载之后执行的运行时间部分。
[0007]系统固件可以存储在非易失性存储器中,诸如闪速存储器或者可编程的任何其它持久存储器。一旦非易失性存储器中的系统固件受损,则一种可能的补救可以涉及物理地更换包括该非易失性存储器的组件。解决受损系统固件的这样的技术可能是劳动力密集的、昂贵的以及耗时的。
[0008]依照一些实现方案,可以提供辅助非易失性存储器,其附加于存储系统固件的主版本的主非易失性存储器。辅助非易失性存储器可以存储系统固件的冗余版本。如果主非易失性存储器中的系统固件变得受损,则可以替代地使用辅助非易失性存储器中的系统固件。
[0009]在随后的讨论中,尽管对“系统固件”做出引用,但是要指出的是,技术或机制可以适用于其它类型的系统引导代码,其中系统引导代码可以是指可在重启之后引导计算系统或者可从低功率状态恢复计算系统的任何代码。
[0010]图1是包括嵌入式控制器102、主非易失性存储器104、处理器106和辅助非易失性存储器116的示例计算系统100的框图。主非易失性存储器104可以存储系统固件的主版本(称为“主系统固件”107),其可以包括B1S代码。辅助非易失性存储器106可以存储系统固件的冗余版本(称为“冗余系统固件”114)。冗余系统固件114可以是主系统固件107的相同副本,或者可替换地,冗余系统固件114可以不同于主系统固件107 (例如,冗余系统固件109可以是系统固件的较早或较晚版本)。
[0011]辅助非易失性存储器116可以在物理上与主非易失性存储器104分离(诸如实现为不同的物理存储器设备)。可替换地,主非易失性存储器104和辅助非易失性存储器116可以在物理上驻留于共同的存储器设备上,但是主非易失性存储器104和辅助非易失性存储器116处于物理存储器设备的不同区段中。
[0012]还提供切换逻辑108以选择性地将主非易失性存储器104和辅助非易失性存储器116中的一个连接到共享总线120。共享总线120是嵌入式控制器102和处理器106可访问的。尽管在图1中未示出,但是输入/输出(I/O)控制器可以提供在处理器106与共享总线120之间。
[0013]切换逻辑108通过第一链路110连接到主非易失性存储器104,并且通过第二链路112连接到辅助非易失性存储器116。切换逻辑108通过来自嵌入式控制器102的选择信号122进行控制。
[0014]在一些示例中,切换逻辑108可以是复用器/去复用器。如果选择信号122处于第一状态,则切换逻辑108连接共享总线120和第一链路110,使得主非易失性存储器104是通过共享总线120可访问的。如果选择信号122处于第二不同状态,则切换逻辑108连接共享总线120和第二链路112,使得辅助非易失性存储器116是通过共享总线120可访问的。
[0015]当通过共享总线可访问时,主和辅助非易失性存储器104和116中所连接的那个是共享的非易失性存储器。非易失性存储器在其通过多个实体可访问的意义上是“共享的”,所述多个实体包括嵌入式控制器102和至少一个其它实体(包括处理器106)。
[0016]没有通过切换逻辑108连接到共享总线120的其它非易失性存储器是通过共享总线120不可访问的。在一些示例中,辅助非易失性存储器116可以通过私用总线124连接到嵌入式控制器102。私用总线124可以由嵌入式控制器102使用以在计算系统100的供应期间(诸如在工厂处或在服务站点处)将冗余系统固件114 (和系统数据)复制到辅助非易失性存储器116。
[0017]在其它示例中,省略私用总线124。
[0018]在一些实现方案中,计算系统100的默认配置可以是以下这样:其中切换逻辑108由嵌入式控制器102控制以将主非易失性存储器104连接到共享总线120,而辅助非易失性存储器116通过切换逻辑108与共享总线120隔离。在默认配置中,主系统固件107是处理器106可检索的并且可以在处理器106上执行以执行系统引导或恢复。
[0019]在默认配置中,如果提供私用总线124,则辅助非易失性存储器116是嵌入式控制器102可访问的,但是对于计算系统100中的处理器106或其它组件是不可访问的。使辅助非易失性存储器116在默认配置中对于处理器106和其它组件是不可访问的保护辅助非易失性存储器116的内容以免受未经授权的篡改。
[0020]响应于检测到主系统固件107受损,嵌入式控制器102可以执行各种动作。首先,在一些实现方案中,嵌入式控制器102试图通过从辅助非易失性存储器116向主非易失性存储器104复制冗余系统固件114以便利用冗余系统固件114更换受损系统固件107,来从主非易失性存储器104中的受损系统固件107恢复。
[0021]然而,在一些情况下,可以可能的是计算系统100中的错误或故障(诸如主非易失性存储器104的物理故障或者链路110的物理故障)可能防止主非易失性存储器104中的系统固件107的恢复。实际上,计算系统100中的错误或故障可能已经贡献于主系统固件107的受损的检测。在这样的情况下,作为故障保护技术,选择信号122的状态可以改变成将辅助非易失性存储器116连接到共享总线120,并且将主非易失性存储器104与共享总线120隔离。这样的配置可以称为“辅助配置”。在辅助配置中,冗余系统固件114是处理器106可检索的并且可以在处理器106上执行。
[0022]如果嵌入式控制器102确定嵌入式控制器102不能够成功地将冗余系统固件114写入到主非易失性存储器104,诸如由于主非易失性存储器104或链路110的故障,则嵌入式控制器102可以检测到受损系统固件107的恢复是不可能的。可替换地,如果嵌入式控制器102执行恢复操作(以将冗余系统固件114复制到主系统固件107)并且在该恢复操作之后,嵌入式控制器102再次检测到主系统固件107仍旧受损,则嵌入式控制器102可以检测到受损系统固件107的恢复是不可能的。
[0023]在一些实现方案中,仅一个实体可以在任何给定时间访问共享总线120,使得仅一个实体可以在某一时间访问共享非易失性存储器(主和辅助非易失性存储器中连接到共享总线120的那个)。在一些示例中,共享总线120是共享串行外围接口(SPI)总线。SPI总线是其中SPI总线上的设备以主-从模式操作的同步串行数据链路。在其它示例中,可以使用另一类型的共享总线120。在可替换示例中,可以提供仲裁机制以允许计算系统的各种状态中的总线120的共享访问,包括低功率状态和正常运行时间状态。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1