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

文档序号:9401959阅读:来源:国知局
r>[0024]在一些示例中,系统固件107或114可以包括引导块。引导块是B1S代码的一部分,并且在计算系统100启动时首先执行。在允许B1S代码的其余部分执行之前首先执行引导块。引导块可以用于检查B1S代码的完整性以及执行其它最初功能。如果引导块确认B1S代码的完整性,则引导块可以将控制传递给B1S代码的主要部分以用于发起与B1S代码相关联的其余操作。
[0025]在一些实现方案中,引导块可以包括可信度量核心根(CRTM)逻辑,其是由作为产业标准工作组的可信计算组(TCG)指定的逻辑。在计算系统100的上电过程期间,CRTM逻辑可以执行某种初始化任务并且可以做出被存储以供随后使用的数个测量。CRTM逻辑然后可以在将控制传递给B1S代码的主要部分之前检查B1S代码。一旦B1S代码完成执行并且将控制传递给OS,则OS可以基于CRTM逻辑所进行的测量来验证计算系统100的可信性。
[0026]嵌入式控制器102在物理上与计算系统100的处理器106分离。处理器106用于执行OS、应用代码和系统100中的其它代码。另一方面,嵌入式控制器102可以用于执行具体预定义的任务。可以由嵌入式控制器102执行的任务的示例包括以下中的任何一个或某种组合:计算系统100中的电源控制(用于控制向计算系统100中的各种组件供应电源电压的电源)、计算系统100中的电池的充电和控制、热监控(以监控计算系统100中的温度)、风扇控制(以控制计算系统100中的风扇)以及与用户输入设备的交互(诸如执行计算系统100的键盘的扫描或者与诸如鼠标、触摸板、触摸屏的定点设备的交互等)。嵌入式控制器102可以利用微控制器、专用集成电路(ASIC)、可编程门阵列(PGA)或者任何其它类型的可编程电路来实现。
[0027]嵌入式控制器102包括能够执行嵌入式控制器102的指定任务的处理电路126。处理电路126包括硬件电路。在一些示例中,处理电路126可以执行机器可读指令,诸如以嵌入式控制器固件(EC固件)或其它控制器代码的形式。要指出的是,EC固件可以最初存储在主或辅助非易失性存储器104或116中,并且可以加载到嵌入式控制器102中以供执行。可替换地,要指出的是,在嵌入式控制器102上可执行的控制器代码可以可替换地是可具有机器可读指令的形式的应用软件。在随后的讨论中,尽管对“EC固件”做出引用,但是要指出的是,技术或机制可以适用于其它形式的控制器代码108。
[0028]图2是根据一些实现方案的过程的流程图。在其中处理器106不访问主非易失性存储器104 (诸如由于处理器106被禁用或者以其它方式是空闲的)的时段期间,嵌入式控制器102中的处理电路126确定(在202处)存储在主非易失性存储器104中的主系统固件107是否受损以及嵌入式控制器102是否不能用于恢复受损的主系统固件107 (如以上讨论的)。处理器106被禁用是指处理器106处于断电状态(没有功率提供给处理器106的主要处理部分)或者处于重置状态(例如针对处理器106断言的重置信号,其防止处理器106执行机器可读指令)。
[0029]响应于确定主系统固件107受损并且不可恢复,处理电路126改变选择信号122的状态以激活(在204处)切换逻辑108来将辅助非易失性存储器116连接到共享总线120并且将主非易失性存储器104从共享总线120断开。
[0030]在通过切换逻辑108连接到共享总线120之后,辅助非易失性存储器116变得是处理器106可访问的,处理器106可以从辅助非易失性存储器116检索冗余系统固件114以供在处理器106处执行(在206处)。通过能够执行从主非易失性存储器104向辅助非易失性存储器116的切换,允许用户继续使用计算系统110,即便主系统固件107是不可用的。
[0031]随后,可以向用户警告已经存在防止使用主非易失性存储器104中的主系统固件107的故障,并且计算系统当前在运行辅助非易失性存储器116中的冗余系统固件114。应当调度服务事件以解决该状况。在该状况下运行时,计算系统不具有抵抗系统固件的受损的附加保护水平,该系统固件是在辅助非易失性存储器116向主非易失性存储器104中的主系统固件提供冗余系统固件时提供的。作为结果,如果辅助非易失性存储器116中的系统固件变得受损,则可能存在计算系统可能变得损坏的风险(因为此时没有冗余)。
[0032]系统固件是否已经受损的确定(在202处)可以基于执行系统固件的验证。验证代码片段,诸如系统固件,可以是指以密码方式核实代码片段尚未改变和/或确认代码片段来自受信源。
[0033]系统固件的验证可以由嵌入式控制器102在处理器106对系统固件(来自主或辅助非易失性存储器)的重启执行的每一个实例之前执行,所述重启执行诸如由于计算系统100的冷重置、计算系统100从低功率状态的恢复、操作系统重启等。要指出的是,系统固件还可以由嵌入式控制器102在计算系统100每一次进入低功率状态时验证。在其它示例中,嵌入式控制器102还可以在处理器106保持加电时验证系统固件。
[0034]计算系统100的低功率状态是指其中处理器106和系统100的某些其它硬件组件关断(例如没有功率提供给处理器和某些其它硬件组件的主要处理部分)的计算系统100的状态。在低功率状态中,功率可以仍旧提供给嵌入式控制器102。计算系统100可以在以下任何场景中转变到低功率状态:(I)作为使得系统100断电以随后上电的计算系统100的冷重置的一部分,或者(2)作为功率节省过程的一部分,其中计算系统100可以在一段时间不活动之后,或者响应于检测到低电池状况,或者响应于用户或应用命令,或者出于另一原因而从正常操作状态转变到睡眠状态、休眠状态或关断状态,或者(3 )在任何其它场景中。
[0035]低功率状态的示例可以包括某些高级配置与电源接口(ACPI)状态,包括:ACPI S3状态(其是待机或睡眠状态的形式,其中计算系统100的系统上下文维持在保持通电的易失性存储器中,而计算系统100的一些组件是断电的);ACPI S4状态(其是休眠状态的形式,其中系统上下文保存到持久存储装置以允许从包括易失性存储器的附加计算系统组件移除功率);以及ACPI S5状态(其是系统关断状态的形式,其中已经从计算系统100的甚多的组件移除功率)。
[0036]在另外的示例中,嵌入式控制器102可以响应于计算系统100的暖重置而执行系统固件的验证,其中计算系统100在不移除至计算系统100的功率的情况下重启。为了允许嵌入式控制器102响应于暖重置而执行验证,可以迫使计算系统100在检测到暖重置时转变到适当的低功率状态(诸如以上所列出的低功率状态中的某些)。
[0037]在其它示例中,嵌入式控制器102可以在任何时间执行验证,甚至是计算系统不处于低功率状态中时。例如,嵌入式控制器102可以在处理器空闲或不访问主非易失性存储器104的时候执行验证。当检索系统固件以供处理器执行时,通过嵌入式控制器102的验证还可以“实时”执行。
[0038]图3是根据另外的实现方案的计算系统100的框图。图3的计算系统100包括输入/输出(I/o)控制器302,其连接在处理器106与共享总线120之间。在一些示例中,I/O控制器302可以是来自Intel公司的平台控制器中心(PCH)。PCH可以包括各种功能,包括到图形子系统的显示接口、到各种I/O设备可以连接于的系统总线的系统总线接口等。在其它示例中,可以使用其它类型的I/O控制器。
[0039]如图3中所描绘的,嵌入式控制器102耦合到用户输入设备301(例如鼠标设备或其它类型的输入设备)、键盘302、风扇303、电池304和电源305,以管理相应设备(在嵌入式控制器102中执行的EC固件的控制之下)。在嵌入式控制器102中执行的EC固件可以从主或辅助非易失性存储器104或116加载。
[0040]在一些示例中,主非易失性存储器104中的系统固件107包括引导块306。引导块306可以包括EC固件307。在其它示例中,EC固件307可以与系统固件107分离。类似地,辅助非易失性存储器116中的辅助系统固件114包括引导块308和EC固件309。
[0041]在图3的示例中,嵌入式控制器102包括密码硬件312,其可以执行密码计算,诸如在EC固件和系统固件的验证中所使用的那些。密码硬件312可以具有被配置成执行密码计算的电路的形式。
[0042]嵌入式控制器102还包括只读存储器(ROM) 314,其可以用于存储引导加载器316和加密密钥318。加密密钥318可以是用于执行EC固件(307或309)的验证的密钥(公钥或私钥)。在系统启动期间,引导加载器316从ROM 314加载以在嵌入式控制器102中执行以便从主或辅助非易失性存储器104或116向嵌入式控制器102的随机存取存储器(RAM)319中检索EC固件。引导加载器316可以采取步骤来确保除嵌入式控制器102之外没有其它实体能够
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1