计算装置的初始化跟踪的利记博彩app

文档序号:10663541阅读:281来源:国知局
计算装置的初始化跟踪的利记博彩app
【专利摘要】与计算装置的初始化关联的平台控制器、计算机可读存储媒体和方法。在实施例中,平台控制器可包括引导控制器和与引导控制器耦合的一个或多个非易失性存储器模块。在实施例中,一个或多个非易失性存储器模块可在其上存储有第一和第二指令。第一指令当由托管平台控制器的计算装置的处理器执行时初始化计算装置。第二指令当由引导控制器执行时可使引导控制器监视由计算装置对第一指令的执行的至少一部分,并且可生成第一指令的所监视的执行的部分的跟踪。在实施例中,跟踪可存储在一个或多个非易失性存储器模块中。可以描述其它实施例和/或要求保护。
【专利说明】计算装置的初始化跟踪
[0001 ] 相关申请
此申请要求2014年3月26日提交的题为“INITIALIZAT1N TRACE OF A COMPUTINGDEVI CE”的美国申请14/226,612的优先权权利。
技术领域
[0002]本公开的实施例涉及计算装置的初始化领域,并且更具体地说,涉及监视和跟踪计算装置的初始化。
【背景技术】
[0003]本文提供的背景描述是出于一般性地呈现本公开的上下文的目的。除非在本文中另有指示,否则在这部分描述的资料不是本申请中权利要求书的现有技术,并且不准许作为现有技术包含在这部分中。
[0004]当计算装置上电时,在计算装置达到可操作状态之前广泛的初始化过程可随之发生。这个初始化过程可包含初始化硬件,包含存储器、一个或多个处理器、若干专用控制器(诸如存储器控制器)等。这些件硬件中的每件都可通过执行存储在计算装置的存储器(诸如只读存储器(ROM)或闪存)上的指令序列(诸如固件)进行初始化。此初始化过程可包含按顺序执行的初始化、协同执行的操作或它们的任何组合。例如,较小的计算装置(诸如平板和智能电话)可协同执行引导任务以恰当地引导平台。此事件序列或协同当恰当地执行时可使计算装置达到可操作状态。然而,如果此初始化过程的任何方面不恰当地执行,则计算装置可能无法达到可操作状态,或者可能被损害。如果不恰当的初始化不阻止计算装置达到可操作状态,则用户可能没办法知道计算装置不恰当地初始化。此外,在当前技术状态下,即便用户知道初始化过程被不恰当地执行,确切地跟踪过程的哪个部分被不恰当执行也可能是费时的并且困难的。
【附图说明】
[0005]图1描绘了按照本公开的各种实施例具有引导控制器的计算装置的说明性配置。
[0006]图2描绘了按照本公开的各种实施例由引导控制器监视的说明性引导过程。
[0007]图3描绘了按照本公开各种实施例的非易失性存储器的说明性存储器映射。
[0008]图4描绘了按照本公开的各种实施例生的用于成初始化跟踪的说明性过程流程。
[0009]图5描绘了按照本公开的各种实施例的用于建立用户驱动的校验点的说明性过程流程。
[0010]图6描绘了按照本公开的各种实施例的用于重放初始化计算装置的跟踪的说明性过程流程。
【具体实施方式】
[0011]本文描述了用于跟踪计算装置初始化的方法、存储媒体和平台控制器。在实施例中,平台控制器可包含引导控制器。引导控制器可与若干非易失性存储器模块(其上可存储有用于执行计算装置上初始化过程的初始化指令)耦合。单个初始化过程可包含初始化若干件硬件、多个微控制器、多个软件组件等以使计算装置达到可操作状态。若干非易失性存储器模块还可具有指令,所述指令当由引导控制器执行时可使引导控制器监视计算装置对初始化指令的执行的至少一部分,并且可生成第一指令执行的所监视部分的跟踪。在实施例中,跟踪可由引导控制器存储在若干非易失性存储器模块中。例如,初始化指令在一些实施例中可采取用于初始化计算装置的各种控制器或引擎的固件的形式。引导控制器可监视这些固件的执行,并根据此监视生成跟踪。即,其中M是由引导控制器、由各种微控制器(包含引导控制器本身)捕获的初始化的次数,系统引导是所有M次初始化的聚合。除了所监视的跟踪,可能存在,例如不失一般性地,用于引导计算装置进入制造模式、恢复模式、执行模式等的预先定义的跟踪。在一些实施例中,引导控制器可配置成实现重放对引导控制器可访问的任何跟踪,以初始化计算装置的至少一部分。在一些实施例中,可重放跟踪的一部分。这例如对确定与部分攻击关联的签名可能是有益的。这些签名然后可被用于保护计算装置免于此类攻击。
[0012]在如下详细描述中,对形成详细描述的一部分的附图进行参考,其中通篇相同的附图标记标明相同的部分,并且其中作为说明,示出了可实施的实施例。要理解到,可利用其它实施例,并且可进行结构或逻辑改变,而不脱离本公开的范围。因此,如下详细描述并不被视为限制意义,并且实施例的范围由所附权利要求书以及它们的等效方案定义。
[0013]各种操作以最有助于理解所要求权利的主题的方式依次描述为多个分立动作或操作。然而,描述的次序不应该被视为暗示这些操作一定是次序相关的。具体地说,这些操作可以不按呈现的次序执行。所描述的操作可按与所描述的实施例不同的次序执行。可执行各种附加操作和/或在附加实施例中可省略所描述的操作。
[0014]为了本公开的目的,短语“A和/或B”意思是(A)、(B)或(A和B)。为了本公开的目的,短语“A、B和/或意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。描述可使用“在一个实施例中”或“在实施例中”的短语,它们可各指的是相同或不同实施例中的一个或多个实施例。而且,相对于本公开实施例所使用的术语“包括”、“包含”、“具有”等是同义词。
[0015]图1描绘了按照本公开的各种实施例具有引导控制器114的计算装置100的说明性配置。引导控制器114可配置成监视计算装置100的初始化过程,并且可基于初始化过程的监视生成跟踪。下面参考图2更详细地论述说明性初始化过程。跟踪可用任何数量的方法利用,包含但不限于:重放所有或部分跟踪,或利用跟踪来确认(validate)计算装置100的初始化过程,二者都在下面更详细论述了。
[0016]在实施例中,计算装置100在相干域中可包含一个或多个处理器(诸如处理器102)以及一个或多个处理元件(例如基板管理控制器(BMC)、创新引擎(IE)(图1中未描绘)、管理引擎(ME)等)。如本文所使用的,相干域可指的是可参与给定引导序列并可共享存储器和/或硬件资源的所有控制器。在一些实施例中,处理器102可包含图形模块104和存储器控制器106。处理器102可由单个处理器核或多个处理器核构成。此外,在一些实施例中,处理器102可以是多个处理器之一。在一些实施例中,多个非相干和/或相干处理器可协同工作以对平台初始化。在多处理器实施例中,多个处理器可属于相同类型,即同质,或者可属于不同类型,即异质,并且可包含任何类型的单核或多核处理器。不管处理器的类型和/或数量,此公开同样适用。
[0017]在一些实施例中,存储器控制器106可被集成在与处理器102相同的封装内,如所描绘的。在其它实施例中,存储器控制器106可以是分立芯片,或者可集成在计算装置100的不同部分内。存储器控制器106可配置成管理从随机存取存储器(RAM)1S的一个或多个模块的读取和对其的写入,以及刷新RAM 108。
[0018]在一些实施例中,集成图形模块104可被集成在与处理器102相同的封装内,如所描绘的。在其它实施例中,集成图形模块104可以是分立芯片,可与计算装置100的不同部分集成,可实现为片上系统(SoC),或者可实现为通过总线连接的若干分立组件。集成图形模块104可包含配置成操控图形数据以便输出到计算装置100的显示器的处理器。在一些实施例中,集成图形模块104可被专用图形卡取代。
[0019]处理器102可与南桥110耦合。南桥110可采取平台控制器或其部分(诸如例如平台控制器集线器(PCH)、硬件控制器集线器(FCH)、输入/输出(I/O)控制器集线器等)形式。如本文所使用的,平台控制器可包含南桥110以及与南桥100耦合的控制器和/或存储器。南桥110可配置成诸如例如经由远存储器接口(FMI) 124、其中一个或多个外围组件互连(PCI)、通用串行总线(USB)、低管脚计数(LPC)桥、超外围接口(SPI)总线、系统管理总线(SMB)等协调计算装置100的I/O功能性。为了实现这个,南桥110可包含若干控制器和/或引擎,诸如例如管理引擎(ME)112和一个或多个输入/输出(I/O)控制器116。在一些实施例中,多个ME可被集成到计算装置100中。例如,可能存在用于执行由上面论述的组件的第三方供应商提供的代码或固件的第一ME,同时可能存在用于执行平台的代码或固件的附加ME。在一些实施例中,南桥110还可将引导控制器114与之集成。在其它实施例中,引导控制器114可布置在分离芯片上,或者集成在计算装置100的另一组件内。将认识到,这些引擎和控制器仅仅打算用于说明,而不打算限制公开。可包含任何数量的控制器和/或引擎,并不脱离此公开的范围。此外,这些控制器可采取其它形式,或布置在计算装置100的不同位置,并不脱离此公开的范围。在实施例中,南桥110可与带外管理控制器(诸如BMC或其它嵌入式控制器(EC)120(下文称为81^作0 120))以及一个或多个外围装置122(诸如例如键盘、鼠标、相机、外部硬驱等)耦合,在一些实施例中,引导控制器114可与BMC/EC 120集成。南桥110还可包含远存储器接口(FMI)124或其它存储器接口。FMI 124可经由数据连接126与非易失性存储器(NVM) 128耦合。在一些实施例中,NVM 128可配置成按照双数据速率(DDR)规范(诸如例如DDR4)操作。
[0020]上面描述的每一个组件以及计算装置100的任何附加组件都可能要求在组件达到操作状态之前进行初始化。所以,在计算装置100达到可操作状态之前,计算装置100可经历复杂的初始化过程,诸如图2的初始化过程200。此外,这些组件中的许多组件可能都需要访问特定固件以实现各个初始化。如果单个组件未被恰当地初始化,则它可阻止计算装置100达到可操作状态,或者可使计算装置100易受病毒、恶意软件或网络攻击的攻击。
[0021]在实施例中,引导控制器114可配置成监视计算装置100的初始化过程(诸如在图2中描绘的过程),并生成所监视初始化过程的跟踪。此类跟踪可包含从在执行复位向量以例示(instantiat1n)计算装置100上的操作系统之前状态的初始化过程的所有或任何部分。此外,在一些实施例中,每个初始化过程(诸如BMC、IE、ME、基本输入输出系统(B1S)、存储器控制器等的初始化)可具有与此类组件的各个初始化关联的跟踪段。在此类实施例中,这些跟踪段中的每段都可通过由引导控制器114执行的监视生成。此外,这些组件中的每个组件都可能预先定义了跟踪,例如,跟踪可由各个组件的供应商提供。在一些实施例中,在计算装置100的初始化过程开始之前,此监视可通过给引导控制器114提供含有初始化引导控制器114的固件的只读存储器(ROMH18来实现。在一些实施例中,执行引导控制器114的本文描述的功能性所必需的所有指令都可存储在ROM 118中。在其它实施例中,ROM 118可仅仅含有引导控制器114达到可操作状态的初始化指令,并且引导控制器114可从另一存储器(诸如NVM 128)检索可执行指令。
[0022]在实施例中,引导控制器114可能需要访问存储器(诸如NVM128),以便执行初始化过程的监视和关联跟踪的生成。例如,如上面所论述的,NVM 128可含有可使引导控制器114执行至少部分本文描述的功能性的可执行指令。在实施例中,引导控制器114可配置成经由FMI 124和数据连接126访问NVM 128以使引导控制器114能够执行监视过程。这样,FMI124和数据连接126可按与上面描述的引导控制器114的初始化类似的方式初始化。在一些实施例中,FMI 124和数据连接126可利用用于对引导控制器114初始化的ROM 118进行初始化。在其它实施例中,FMI 124和数据连接126可利用与ROM 118分开的ROM进行初始化。在一些实施例中,引导控制器114、FMI 124和数据连接126可在计算装置100的上电自测试(POST)之前初始化,以实现从在计算装置100的每个单独组件的POST之前的状态监视计算装置或其任何组件。
[0023]在实施例中,NVM 128可配置成包含跟踪存储130、跟踪重放标识符132和/或固件存储134。跟踪存储130可配置成存储之前由引导控制器114生成的跟踪和/或当前由引导控制器114生成的跟踪。此外,在一些实施例中,跟踪存储130可用能够对特殊状态初始化计算装置100的任何单个组件或一组组件或它们的整体的预先定义的跟踪配置。例如,可能存在对于系统范围优化的预先定义的跟踪,没有失去一般性恢复、对性能模式的初始化、对功率有效模式的初始化、对恶意软件保护模式的初始化等。跟踪重放标识符132(在本文也被称为引导控制器邮箱)可配置成存储计算装置100的用户已经选择重放的跟踪的标识符。在实施例中,引导控制器114可配置成检查跟踪重放标识符132以确定是否已经选择了跟踪用于重放,并且如果是,则可使标识的跟踪重放,代替计算装置100的正常初始化过程。下面参考图6更详细地论述此过程。固件存储器134可包含初始化计算装置100的各个组件或其任何部分所必需的所有固件。
[0024]在一些实施例中,计算装置100的各个组件可访问固件存储器134以检索用于初始化各个组件的必要固件。在此类实施例中,引导控制器114可配置成监视这些访问以帮助生成要存储在跟踪存储器130中的跟踪。在其它实施例中,引导控制器114可配置成充当NVM128的中间人或看门人。在此类实施例中,引导控制器114可配置成接收来自在固件存储器134内含有的固件的各个组件的请求,并且可通过向所请求的固件提供访问来服务于这些请求。在一些实施例中,引导控制器114可配置成在提供对固件的访问之前认证固件的请求者以确保固件正在被提供给恰当组件。此外,在一些实施例中,引导控制器114可配置成执行对存储在固件存储134内的固件的更新。在此类实施例中,引导控制器114可配置成保持重放存储在跟踪存储器130中之前记录的跟踪所需要的之前版本的固件。在一些实施例中,引导控制器114可配置成根据所生成的跟踪来生成校验和,以与预先定义的确认代码相比较以确认初始化过程。在此类实施例中,如果初始化过程无法被确认,则引导控制器可配置成使计算装置利用来自跟踪存储器130的之前存储的跟踪进行重新初始化。这例如可通过引导控制器114将之前生成的跟踪的标识符存储在跟踪重放标识符132中并使计算装置复位来实现。此外,引导控制器114可配置成仅在成功确认所跟踪初始化过程时将所生成的跟踪存留在NVM 128中。如上面所论述的,跟踪可包含初始化计算装置100的任何组件或一组组件或它们的整体。作为结果,可对计算装置100的任何组件或一组组件或它们的整体的跟踪执行确认。
[0025]图2描绘了按照本公开的各种实施例的说明性初始化过程200。初始化过程可由图1的引导控制器114监视以生成跟踪存储232中的跟踪N,其中N指代若干跟踪中的最近的跟足示O
[0026]在框204初始化过程200可开始于安全性(SEC)阶段,其中可刷新中央处理单元(CPU)高速缓存,并且可执行基本输入/输出系统(B1S)复位向量。在框206,可在CPU高速缓存中建立数据区域,以实现在系统存储器初始化之前使用基于栈的编程语言。
[0027]在框208,SEC阶段可切换到预先可扩展固件接口(PEI)阶段。在框210,在PEI阶段,B1S可确定存储器所需的速度。在此之后,在框212,可对存储器进行初始化。在框214,初始化过程可将发现的存储器映射到为存储器定义的地址映射。此存储器映射可将所发现存储器中的存储器地址与由存储器映射覆盖的存储器领域(reg1n)关联。例如,存储器映射可将特定范围的存储器地址指定为预留存储器地址,并且该过程在框214可这样指定这些存储器地址。
[0028]在框216,引导过程的PEI阶段可完成,并且驱动执行环境DXE阶段可开始。在框218,芯片集和任何卫星控制器可利用分别与这些组件关联的固件进行初始化。在框220,中央处理单元(CPU)可被初始化。在CPU已经被初始化之后,可在框222,执行从潜在可引导分区的优化列表中选择引导装置的过程。在框224,可执行PCI枚举过程以确定连接到计算装置PCI总线的任何装置,并且可启动选项ROM以初始化这些组件。在框226,每个ROM的阴影或拷贝可被存储在计算装置的存储器中。在框228,可引导计算装置的操作系统(OS)。
[0029]这整个初始化过程或其任何部分可由引导控制器114监视,以生成要存储在跟踪存储器232中的跟踪。上面描述的初始化过程打算仅仅说明示例初始化过程。因此,所描绘的初始化过程可仅表示初始化计算装置所执行的实际过程的子集。将认识到,初始化过程可包含附加过程,或者取决于计算装置以及其中含有的组件而变化。不管可由计算装置执行的初始化过程,此公开同样适用。
[0030]图3描绘了按照本公开各种实施例的非易失性存储器(诸如图1的NVM128)的说明性存储器映射300。存储器映射300可定义NVM的布局,并且可指定NVM中存储器地址的范围或领域以预留用于本公开的某些方面。在实施例中,存储器映射300可包含描述符领域302。描述符领域302可含有由诸如引导控制器的组件可利用以约束对各种区域的访问的存储器映射300定义的不同区域的访问准许。跟踪存储304可配置成存储由引导控制器生成的计算装置的初始化过程的跟踪。存储器映射300还可包含引导控制器邮箱306,其可用于存储要重放的跟踪的标识符(诸如图1的跟踪重放标识符132)。在实施例中,存储器映射300可包含ROM阴影308,其可含有可能已经在初始化计算装置以实现重放在之前生成的跟踪中标识的ROM时所利用的ROM的拷贝。
[0031]在一些实施例中,跟踪存储304可包含含有初始化计算装置所必需的所有过程的跟踪。在一些实施例中,计算装置的各个组件可具有相应固件存储器,而不是具有含有所有各个组件的固件的单个固件存储器,如图1中所描绘的。在此类实施例中,每个组件的固件都可被存储在各个存储器中,诸如管理引擎(ME)固件310、创新引擎(IE)固件314和基板管理控制器(BMC)固件318。这些固件存储器310、314和318中的每个都可不仅含有各个组件的最近的固件,而且可含有对重放之前生成的跟踪可能必需的之前版本的固件。类似于初始化计算装置的各个组件所利用的固件,存储器映射还可包含操作系统(OS)存储器322领域。此领域可含有例示计算装置上操作系统所必需的存储器条目。在实施例中,OS存储器322还可含有用户驱动的校验点的OS状态信息,诸如下面参考图5所论述的。
[0032]在一些实施例中,跟踪存储器304可含有初始化计算装置的各个组件所必需的所有过程。在其它实施例中,存储在跟踪存储器304中的跟踪可含有删节版本的初始化过程,具有到通过各个组件的初始化生成的跟踪段的链路。例如,跟踪存储器可含有具有到在ME跟踪段312、IE跟踪段316、BMC跟踪段320和OS跟踪段324中含有的跟踪段的链路的跟踪。具有跟踪存储器304中跟踪的跟踪段的组合可涵盖计算装置的整个初始化过程。
[0033]图4描绘了按照本公开的各种实施例的用于生成由引导控制器对计算装置的初始化跟踪的说明性过程流程400。在框402,该过程可开始于初始化引导控制器,诸如在本文别处所论述的。在框404,引导控制器可监视计算装置的初始化过程,诸如例如图2的初始化过程200。在框406,引导控制器可根据所监视的初始化生成跟踪,诸如上面所论述的那些。
[0034]在框408,可进行关于初始化是否成功的确定。在一些实施例中,初始化是否成功的确定可基于由引导控制器根据初始化跟踪生成的校验和的验证进行。这个确定/验证过程可由引导控制器、计算装置的另一组件、可通过网络或计算装置的用户或管理员与计算装置耦合的远程计算装置执行。这个校验和例如当在服务器农场或数据仓库中利用时可能是有益的,其中每个计算装置可具有不同组件,但管理员可能想要确保各个计算装置的期望初始化过程。在此类环境中,各个计算装置可将校验和传送到中央储存库,以便与各个计算装置的期望值相比较。在其它实施例中,初始化的成功可基于由计算装置执行的系统测试的结果进行确定。在又一些实施例中,用户或管理员可基于计算装置的可操作性来验证初始化。
[0035]如果初始化不成功,则该过程可继续进行到框409,在此任何不成功的初始化任务都可被执行,此后该过程可继续进行框416,在此过程可结束。在一些实施例中,不成功初始化任务可包含引导控制器复位计算系统和重放之前生成的跟踪以恰当地初始化计算装置。在其它实施例中,不成功初始化任务可包含用户或管理员制定的策略。例如,倘若不成功初始化,则管理员可能想要管理员愿意利用以初始化计算装置的预先定义的跟踪(诸如上面论述的其中一个预先定义的跟踪)或其一部分。在又一些实施例中,不成功初始化任务可包含由引导控制器生成提示或日志,以通知计算装置的用户或管理员不成功初始化。
[0036]如果初始化成功,则过程可继续进行框410。在框410,引导控制器可以确定是否存在之前保存的现有跟踪。如果不存在现有跟踪,则该过程可继续进行框412,在此引导控制器可将跟踪保存为跟踪N,其中N指示最近的跟踪,并且该过程可在框416结束。如果存在现有跟踪,则在一些实施例中,该过程可继续进行框414,在此引导控制器可将之前的跟踪N降级到跟踪N-1,并且对于之前存储的其它跟踪以此类推。在其它实施例中,引导控制器可只是用当前跟踪替换之前跟踪N。在之前跟踪被降级或替换之后,该过程可继续进行框416,在此该过程可结束。如上面所论述的,在一些实施例中,可存在与计算装置的每一个组件关联的跟踪段。在此类实施例中,可存在每个组件的跟踪段N。这些跟踪段中的每个都可被分析以确定初始化成功,并且在相应组件成功初始化时可被附到跟踪N。
[0037]图5描绘了按照本公开的各种实施例的用于在计算装置上建立用户驱动的校验点的说明性过程流程500 ο该过程可开始于框520,在此,操作系统(OS)可达到正常操作状态。在框504,可以进行关于是否已经达到用户驱动的校验点进行确定。此确定可由引导控制器、OS的组件或另一适合的组件进行。如果不是引导控制器的组件进行这个确定,则在一些实施例中,确定的阳性结果可被传递到引导控制器。此类确定可基于用户可定义为指代计算装置的恰当操作的校验点的计算装置上的特定应用或事件。例如,校验点可通过用户常规利用的预先定义的应用的初始化定义,诸如电子邮件(email)客户端或其它类似事件。如果确定用户驱动的校验点尚未发生,则过程可返回到框502,并且OS可继续正常操作。
[0038]如果确定该事件是用户驱动的校验点,则过程可继续进行到框506。在框506,引导控制器可以确定是否存在之前保存的这个校验点的现有跟踪。如果不存在现有跟踪,则该过程可继续进行框508,在此引导控制器可将这个检查点保存为跟踪N,其中N指示最近的跟踪,并且该过程可继续进行返回到在框502的正常OS操作。如果存在现有跟踪,则该过程可继续进行到框510,在此引导控制器、OS的组件或另一适合的组件可发起校验点管理器。一旦发起了校验点管理器,校验点管理器就可提示计算装置的用户确定到这个校验点的跟踪是否要替换或降级之前生成的跟踪N。在一些实施例中,校验点管理器可以是引导控制器的一部分。在其它实施例中,校验点管理器可实现为OS的一部分,并且可配置成与引导控制器通信。在框514,之前的跟踪N可由引导控制器降级到跟踪N-1,如果用户如此选择或者引导控制器可仅仅用当前跟踪替换跟踪N的话。在之前的跟踪N被降级或替换之后,该过程可继续进行框502,在此OS可继续正常操作。将认识到,能够被存储的跟踪数量可仅受存有跟踪的存储器的存储容量限制。
[0039]在一些实施例中,跟踪可具有哪个用户驱动的校验点引起被保存的相应跟踪的指定。在此类实施例中,跟踪可基于用户驱动的校验点进行组织,并且如果用户愿意重放这些跟踪之一,则它们可能能够选择用户驱动的校验点标识通过诸如在图6中描绘的过程用户愿意重放哪个跟踪。
[0040]图6描绘了按照本公开的各种实施例的用于重放初始化计算装置的跟踪的说明性过程流程600。该过程可开始于框602,在此可初始化引导控制器。在框604,引导控制器可确定跟踪标识符是否已经被存储在引导控制器邮箱中,诸如上面所论述的那个。如果没有跟踪标识符存储在引导控制器邮箱中,则过程可继续进行到框606,在此计算装置可正常初始化。在此之后,在框612,该过程可结束。如果有跟踪标识符存储在引导控制器邮箱中,则过程可继续进行到框608,在此所标识的跟踪可由引导控制器检索。在框610,引导控制器可重放该跟踪以初始化计算装置,代替正常初始化过程。在此之后,在框612,该过程可结束。在一些实施例中,计算装置的每个组件可与跟踪段关联,诸如上面所描述的。在此类实施例中,重放跟踪可包含协同重放这些跟踪段以实现重放选择的跟踪。在一些实施例中,跟踪可被存储在远程服务器、云、网络附连的存储装置(NAS)等。在此类实施例中,跟踪标识符还可包含检索跟踪的地址。
[0041]在一些实施例中,引导控制器邮箱可在检索跟踪之后被刷新。在其它实施例中,引导控制器邮箱可被存留以确保对于计算装置的每次初始化都利用相同跟踪,知道用户决定生成新跟踪为止。这例如可发生在用户想要确保计算装置的一致初始化的情况下。在此类情形下,当对计算装置发生改变时,诸如计算装置的组件的固件更新或向计算装置添加新硬件或软件时,用户可选择仅生成新跟踪。
[0042]为了此说明书的目的,计算机可用或计算机可读介质可以是可含有、存储、传递、传播或传输程序以供指令执行系统、设备或装置使用或与之结合的任何介质。介质可以是易失性或非易失性存储器。介质可以是电、磁、光、电磁、红外或半导体系统(或设备或装置)或传播介质。计算机可读存储介质的示例包含半导体或固态存储器、磁带、可拆卸计算机盘、随机存取存储器(RAM)、只读存储器(R0M)、刚性磁盘和光盘。光盘的当前示例包含光盘只读存储器(CD-ROM)、光盘-读/写(CD-R/W)和DVD。
[0043]本公开的实施例可采取完全硬件实施例、完全软件实施例或含有硬件和软件元素的实施例的形式。在各种实施例,软件可包含但不限于固16件、常驻软件、微代码等。更进一步,本公开可采取可从提供程序代码供计算机或任何指令执行系统使用或与之结合的计算机可用或计算机可读介质存取的计算机程序产品的形式。
[0044]尽管在本文已经说明和描述了特定实施例,但本领域技术人员将认识到,可用各种各样的替换和/或等效实现取代所示出和描述的特定实施例,并不脱离本公开实施例的范围。本申请打算涵盖本文讨论的实施例的任何改编或变型。因此,明显意图是,本公开的实施例仅由权利要求书及其等效方案限制。
[0045]示例
根据各种实施例,本公开描述了若干示例。示例I是平台控制器,包括:引导控制器;以及与所述引导控制器耦合的一个或多个非易失性存储器模块,其上存储有:第一指令,其当由托管所述平台控制器的计算装置的处理器执行时使得初始化所述计算装置;以及第二指令,其当由所述引导控制器执行时使所述引导控制器监视由所述计算装置对所述第一指令的执行的至少一部分,并且生成要存储在所述一个或多个非易失性存储器模块中的所述第一指令的所述监视的所述执行的部分的跟踪。
[0046]示例2可包含示例I的主题,其中所述第二指令当由所述引导控制器执行时要监视在对操作系统(OS)在所述计算装置上例示的随后状态执行上电自测试(POST)之前由所述计算装置从初始状态对所述第一指令的执行。
[0047]示例3可包含示例2的主题,其中所述第二指令当由所述引导控制器执行时,在成功完成所述第一指令时将所述跟踪存留在所述一个或多个非易失性存储器模块中。
[0048]示例4可包含示例1-3中任一示例的主题,其中所述一个或多个非易失性存储器模块要存储由所述引导控制器生成的所述第一指令的多个之前监视的执行的多个跟踪。
[0049]示例5可包含示例1-3中任一示例的主题,其中所述第二指令当由所述引导控制器执行时进一步使所述引导控制器以:响应于请求而将多个之前生成并存储的跟踪呈现给所述计算装置的用户以便选择;以及在选择时重放所述之前生成并存储器的跟踪中的选择的一个跟踪以初始化所述计算装置。
[0050]示例6可包含示例5的主题,其中重放所述选择的跟踪进一步包括:将与所述选择的跟踪关联的标识符存储在所述一个或多个非易失性存储器模块中,以在下一次初始化所述引导控制器时给所述引导控制器提供对所述标识符的访问。
[0051]示例7可包含示例6的主题,其中重放所述选择的跟踪进一步包括:在下一次初始化所述引导控制器时从所述一个或多个非易失性存储器模块中检索所述标识符;经由所述标识符标识所述选择的跟踪;以及利用所述选择的跟踪初始化所述计算装置。
[0052]示例8可包含示例1-3中任一示例的主题,其中所述第二指令当由所述引导控制器执行时进一步使所述引导控制器在成功完成所述第一指令的所监视的执行时基于所述跟踪生成fe验和。
[0053]示例9可包含示例8的主题,其中所述第二指令当由所述引导控制器执行时进一步使所述引导控制器比较所述校验和与期望校验和以验证所述计算装置的初始化。
[0054]示例10可包含示例1-3中任一示例的主题,其中所述第一指令包括多个固件以初始化驻留在所述计算装置上的多个硬件组件。
[0055]示例11可包含示例10的主题,其中所述第二指令当由所述引导控制器执行时进一步使所述引导控制器以:通过生成与所述多个硬件组件中的每个硬件组件对应的跟踪段来生成所述跟踪;以及使每个跟踪段对对应的硬件组件可用以访问并重放所述跟踪段。
[0056]示例12是一个或多个计算机可读媒体,包括指令,所述指令当由计算装置的引导控制器执行时使引导控制器以:监视由计算装置的基本输入/输出系统(B1S)对计算装置的初始化,其中引导控制器和B1S彼此独立;生成计算装置的所监视的初始化的跟踪;以及将所监视初始化的生成的跟踪存储在计算装置的存储器中。
[0057]示例13可包含示例12的主题,其中监视初始化是要监视在对操作系统(OS)在计算装置上例示的随后状态执行上电自测试(POST)之前计算装置从初始状态的初始化。
[0058]示例14可包含示例12的主题,其中存储所生成的跟踪是要在成功完成初始化时将所述跟踪存留在一个或多个非易失性存储器模块中。
[0059]示例15可包含示例14的主题,其中存留所述跟踪是要将所述跟踪存留在多个其它跟踪的储存库中,其中其它跟踪是根据计算装置的之前监视的初始化生成的。
[0060]示例16如权利要求12-15中任一项所述的计算机可读媒体,其中所述指令当由所述引导控制器执行时进一步使所述引导控制器以:响应于请求而将多个之前生成并存储的跟踪呈现给所述计算装置的用户以便选择;以及在选择时重放所述之前生成并存储器的跟踪中的选择的跟踪以初始化所述计算装置。
[0061]示例17可包含示例16的主题,其中重放选择的跟踪进一步包括:将与选择的跟踪关联的标识符存储在由引导控制器在引导控制器初始化期间可访问的位置,以在下一次初始化引导控制器时给引导控制器提供对标识符的访问。
[0062]示例18可包含示例17的主题,其中重放所述选择的跟踪进一步包括:在下一次初始化所述引导控制器时从所述一个或多个非易失性存储器模块中检索所述标识符;基于所述标识符获取选择的跟踪;以及利用获取的跟踪初始化计算装置。
[0063]示例19可包含示例12-15中任一示例的主题,其中所述指令当由所述引导控制器执行时进一步使所述引导控制器在成功完成所述计算装置的初始化时基于所述跟踪生成fe验和。
[0064]示例20可包含示例19的主题,其中所述指令当由所述引导控制器执行时进一步使所述引导控制器比较所述校验和与期望校验和以验证所述计算装置的初始化。
[0065]示例21可包含示例12-15中任一示例的主题,其中所述计算装置的初始化包括执行多个固件以初始化所述计算装置的多个硬件组件。
[0066]示例22可包含示例21的主题,其中所述指令当由所述引导控制器执行时进一步使所述引导控制器以:通过生成与所述多个硬件组件中的每个硬件组件对应的跟踪段来生成所述跟踪;以及向所述对应硬件组件提供所述跟踪段的访问,以实现由所述对应硬件组件重放所述跟踪段。
[0067]示例23是计算机实现的方法,包括:由计算装置的引导控制器监视由所述计算装置的基本输入/输出系统(B1S)对所述计算装置的初始化,所述引导控制器和B1S彼此独立;由所述引导控制器生成所述计算装置的所监视初始化的跟踪;以及由所述引导控制器将所述初始化的生成的跟踪存储在所述计算装置的存储器中。
[0068]示例24可包含示例23的主题,其中监视所述计算装置的所述初始化进一步包括:监视在对操作系统(OS)在所述计算装置上例示的随后状态执行上电自测试(POST)之前所述计算装置从初始状态的初始化。
[0069]示例25可包含示例24的主题,进一步包括:在成功完成所述初始化时,由所述引导控制器将所述跟踪存留在所述计算装置的非易失性存储器中。
[0070]示例26可包含示例25的主题,其中存留所述跟踪进一步包括将所述跟踪存留在多个其它跟踪的储存库中,其中从所述计算装置的之前监视的初始化中生成所述其它跟踪。
[0071]示例27可包含示例23-26中任一示例的主题,进一步包括:由所述引导控制器响应于请求而将多个之前生成并存储的跟踪呈现给所述计算装置的用户以便选择;接收所述多个之前生成并存储的跟踪中的一个的选择;以及重放所述多个之前生成并存储的跟踪中的选择的一个跟踪以初始化所述计算装置。
[0072]示例28可包含示例27的主题,其中重放所述选择的跟踪进一步包括:将与所述选择的跟踪关联的标识符存储在所述计算装置的非易失性存储器中。
[0073]示例29可包含示例28的主题,其中重放所述选择的跟踪进一步包括:在下一次初始化所述引导控制器时从所述非易失性存储器中检索所述标识符;由所述引导控制器基于所述标识符获取所述选择的跟踪;以及利用所述获取的跟踪初始化所述计算装置。
[0074]示例30可包含示例23-26中任一示例的主题,进一步包括:在成功完成所述第一指令的监视的执行时,由所述引导控制器基于所述跟踪生成校验和。
[0075]示例31可包含示例30的主题,进一步包括:由所述引导控制器相对期望校验和确认生成的校验和;以及由所述引导控制器通知所述计算装置的用户何时所述生成的校验和的确认失效。
[0076]示例32可包含示例23-26中任一示例的主题,其中所述计算装置的初始化包括执行多个固件以初始化所述计算装置的多个硬件组件。
[0077]示例33可包含示例32的主题,其中生成所述跟踪进一步包括:生成与所述多个硬件组件中的每个硬件组件对应的跟踪段,其中所述跟踪包括跟踪段的组合;以及向所述对应硬件组件提供所述跟踪段的访问,以实现由所述对应硬件组件重放所述跟踪段。
[0078]示例34是计算装置,包括:用于监视由所述计算装置的基本输入/输出系统(B1S)对所述计算装置的初始化的部件,用于监视的部件和所述B1S彼此独立;用于生成所述计算装置的所监视初始化的跟踪的部件;以及用于将所述初始化的生成的跟踪存储在所述计算装置的存储器中的部件。
[0079]示例35可包含示例34的主题,其中用于监视计算装置的初始化的部件进一步包括:用于监视在对操作系统(OS)在所述计算装置上例示的随后状态执行上电自测试(POST)之前所述计算装置从初始状态的初始化的部件。
[0080]示例36可包含示例35的主题,进一步包括:用于在成功完成所述初始化时将所述跟踪存留在所述计算装置的非易失性存储器中的部件。
[0081]示例37可包含示例36的主题,其中用于存留所述跟踪的部件进一步包括用于将所述跟踪存留在多个其它跟踪的储存库中的部件,其中从所述计算装置的之前监视的初始化中生成所述其它跟踪。
[0082]示例38可包含示例34-37中任一示例的主题,进一步包括:用于响应于请求而将多个之前生成并存储的跟踪呈现给所述计算装置的用户以便选择的部件;用于接收所述多个之前生成并存储的跟踪中的一个的选择的部件;以及用于重放所述多个之前生成并存储的跟踪中的选择的一个跟踪以初始化所述计算装置的部件。
[0083]示例39可包含示例38的主题,其中用于重放选择的跟踪的部件进一步包括:用于将与所述选择的跟踪关联的标识符存储在所述计算装置的非易失性存储器中的部件。
[0084]示例40可包含示例39的主题,其中用于重放选择的跟踪的部件进一步包括:用于从非易失性存储器检索标识符的部件;用于基于所述标识符获取选择的跟踪的部件;以及用于利用获取的跟踪初始化计算装置的部件。
[0085]示例41可包含示例34-37中任一示例的主题,进一步包括:用于在成功完成第一指令的监视的执行时基于所述跟踪生成校验和的部件。
[0086]示例42可包含示例41的主题,进一步包括:用于相对期望校验和确认生成的校验和的部件;以及用于通知计算装置的用户何时所述生成的校验和的确认失效的部件。
[0087]示例43可包含示例34-37中任一示例的主题,其中所述计算装置的初始化包括执行多个固件以初始化所述计算装置的多个硬件组件。
[0088]示例44可包含示例43的主题,其中用于生成跟踪的部件进一步包括:用于生成与所述多个硬件组件中的每个硬件组件对应的跟踪段的部件,其中所述跟踪包括跟踪段的组合;以及用于向对应硬件组件提供跟踪段的访问以实现由对应硬件组件重放跟踪段的部件。
【主权项】
1.一种平台控制器,包括: 引导控制器;以及 与所述引导控制器耦合的一个或多个非易失性存储器模块,其上存储有: 第一指令,其当由托管所述平台控制器的计算装置的处理器执行时使得初始化所述计算装置;以及 第二指令,其当由所述引导控制器执行时使所述引导控制器监视由所述计算装置对所述第一指令的执行的至少一部分,并且生成要存储在所述一个或多个非易失性存储器模块中的所述第一指令的所述监视的所述执行的部分的跟踪。2.如权利要求1所述的平台控制器,其中所述第二指令当由所述引导控制器执行时要监视在对操作系统(OS)在所述计算装置上例示的随后状态执行上电自测试(POST)之前由所述计算装置从初始状态对所述第一指令的执行。3.如权利要求2所述的平台控制器,其中所述第二指令当由所述引导控制器执行时,在成功完成所述第一指令时将所述跟踪存留在所述一个或多个非易失性存储器模块中。4.如权利要求1-3中任一项所述的平台控制器,其中所述一个或多个非易失性存储器模块要存储由所述引导控制器生成的所述第一指令的多个之前监视的执行的多个跟踪。5.如权利要求1-3中任一项所述的平台控制器,其中所述第二指令当由所述引导控制器执行时进一步使所述引导控制器以: 响应于请求而将多个之前生成并存储的跟踪呈现给所述计算装置的用户以便选择;以及 在选择时重放所述之前生成并存储器的跟踪中的选择的一个跟踪以初始化所述计算目.ο6.如权利要求5所述的平台控制器,其中重放所述选择的跟踪进一步包括:将与所述选择的跟踪关联的标识符存储在所述一个或多个非易失性存储器模块中,以在下一次初始化所述引导控制器时给所述引导控制器提供对所述标识符的访问。7.如权利要求6所述的平台控制器,其中重放所述选择的跟踪进一步包括: 在下一次初始化所述引导控制器时从所述一个或多个非易失性存储器模块中检索所述标识符; 经由所述标识符标识所述选择的跟踪;以及 利用所述选择的跟踪初始化所述计算装置。8.如权利要求1-3中任一项所述的平台控制器,其中所述第二指令当由所述引导控制器执行时进一步使所述引导控制器在成功完成所述第一指令的所述监视的执行时基于所述跟踪生成校验和。9.如权利要求8所述的平台控制器,其中所述第二指令当由所述引导控制器执行时进一步使所述引导控制器比较所述校验和与期望校验和以验证所述计算装置的初始化。10.如权利要求1-3中任一项所述的平台控制器,其中所述第一指令包括多个固件以初始化驻留在所述计算装置上的多个硬件组件。11.如权利要求10所述的平台控制器,其中所述第二指令当由所述引导控制器执行时进一步使所述引导控制器以: 通过生成与所述多个硬件组件中的每个硬件组件对应的跟踪段来生成所述跟踪;以及 使每个跟踪段对所述对应的硬件组件可用以访问并重放所述跟踪段。12.一种计算机实现的方法,包括: 由计算装置的引导控制器监视所述由计算装置的基本输入/输出系统(B1S)对所述计算装置的初始化,所述引导控制器和B1S彼此独立; 由所述引导控制器生成所述计算装置的所述监视初始化的跟踪;以及 由所述引导控制器将所述初始化的所述生成的跟踪存储在所述计算装置的存储器中。13.如权利要求12所述的方法,其中监视所述计算装置的所述初始化进一步包括:监视在对操作系统(OS)在所述计算装置上例示的随后状态执行上电自测试(POST)之前所述计算装置从初始状态的初始化。14.如权利要求13所述的方法,进一步包括:在成功完成所述初始化时,由所述引导控制器将所述跟踪存留在所述计算装置的非易失性存储器中。15.如权利要求14所述的方法,其中存留所述跟踪进一步包括将所述跟踪存留在多个其它跟踪的储存库中,其中从所述计算装置的之前监视的初始化中生成所述其它跟踪。16.如权利要求12-15中任一项所述的方法,进一步包括: 由所述引导控制器响应于请求而将多个之前生成并存储的跟踪呈现给所述计算装置的用户以便选择; 接收所述多个之前生成并存储的跟踪中的一个的选择;以及 重放所述多个之前生成并存储的跟踪中的所述选择的一个跟踪以初始化所述计算装置。17.如权利要求16所述的方法,其中重放所述选择的跟踪进一步包括:将与所述选择的跟踪关联的标识符存储在所述计算装置的非易失性存储器中。18.如权利要求17所述的方法,其中重放所述选择的跟踪进一步包括: 在下一次初始化所述引导控制器时从所述非易失性存储器中检索所述标识符; 由所述引导控制器基于所述标识符获取所述选择的跟踪;以及 利用所述获取的跟踪初始化所述计算装置。19.如权利要求12-15中任一项所述的方法,进一步包括:在成功完成所述第一指令的所述监视的执行时,由所述引导控制器基于所述跟踪生成校验和。20.如权利要求19所述的方法,进一步包括: 由所述引导控制器相对期望校验和确认生成的校验和;以及 由所述引导控制器通知所述计算装置的用户何时所述生成的校验和的确认失效。21.如权利要求12-15中任一项所述的方法,其中所述计算装置的初始化包括执行多个固件以初始化所述计算装置的多个硬件组件。22.如权利要求21所述的方法,其中生成所述跟踪进一步包括: 生成与所述多个硬件组件中的每个硬件组件对应的跟踪段,其中所述跟踪包括跟踪段的组合;以及 向所述对应硬件组件提供所述跟踪段的访问,以实现由所述对应硬件组件重放所述跟踪段。23.—个或多个计算机可读媒体,包括指令,所述指令当由计算装置的引导控制器执行时使所述引导控制器执行如权利要求12-15中任一项所述的方法。24.—种计算装置,包括: 用于监视由所述计算装置的基本输入/输出系统(B1S)对所述计算装置的初始化的部件,用于监视的部件和所述B1S彼此独立; 用于生成所述计算装置的所述监视的初始化的跟踪的部件;以及 用于将所述初始化的所述生成的跟踪存储在所述计算装置的存储器中的部件。25.如权利要求34所述的计算装置,其中用于监视所述计算装置的所述初始化的所述部件进一步包括: 用于监视在对操作系统(OS)在所述计算装置上例示的随后状态执行上电自测试(POST)之前所述计算装置从初始状态的所述初始化的部件。
【文档编号】G06F9/22GK106030512SQ201580010934
【公开日】2016年10月12日
【申请日】2015年1月28日
【发明人】R.C.斯万森, C.B.特劳, V.J.齐默, M.布卢苏, J.R.林兹利, M.S.纳图, D.齐亚卡斯, R.W.孔, M.兰加拉彦, B.尼克尤, K.D.布兰诺克, R.J.万德利奇, M.F.施瓦茨, S.S.保洛夫斯基
【申请人】英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1