首页> 中国专利> 在对等监控中支持可靠性、可用性、以及可服务性(RAS)流的机制

在对等监控中支持可靠性、可用性、以及可服务性(RAS)流的机制

摘要

公开了一种在对等监控中支持可靠性、可用性、以及可服务性(RAS)流的机制。所公开的方法包括:由处理设备接收系统管理中断(SMI)事件。所述方法还包括响应于所述SMI事件而调用权限管理器以从只读存储器(ROM)进入点执行,来处理所述SMI事件,所述权限管理器包括热插拔服务模块以提供对存储器热插拔功能和处理器热插拔功能的支持。

著录项

  • 公开/公告号CN104981812A

    专利类型发明专利

  • 公开/公告日2015-10-14

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201380072535.3

  • 发明设计人 J·姚;V·J·齐默;

    申请日2013-03-07

  • 分类号

  • 代理机构永新专利商标代理有限公司;

  • 代理人刘瑜

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 11:19:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-03-10

    未缴年费专利权终止 IPC(主分类):G06F21/53 授权公告日:20180529 终止日期:20190307 申请日:20130307

    专利权的终止

  • 2018-05-29

    授权

    授权

  • 2015-11-18

    实质审查的生效 IPC(主分类):G06F21/53 申请日:20130307

    实质审查的生效

  • 2015-10-14

    公开

    公开

说明书

技术领域

本公开的实施例一般涉及计算机安全性,更具体地,涉及在对等监控(peer monitor)中支持可靠性、可用性、以及可服务性(RAS)流的机制。

背景技术

SMM是一种操作模式,在其中将所有正常执行(包括OS)挂起,并在高权限模式中执行特殊的单独软件(通常是固件或硬件辅助调试器)。SMM提供了隔离的存储器和执行环境,并且SMM代码对于OS是不可见的,同时保持对主物理存储器的完全访问和对外围硬件的完全控制。当SMM被启动时,处理器的当前状态被保存并且所有其它处理被停止。高权限操作可以在SMM模式中执行,例如调试、硬件管理、安全功能、仿真等,随后是计算设备基于处理器的保存状态而恢复操作。当发生SMI时,计算设备可以进入SMM。

SMM代码实现方式中的易损性已经导致在计算设备中引入一些当前安全性方案,其中对于设备操作关键的软件通过隔离受到保护。例如,在虚拟机(VM)环境中,例如在一些处理设备上并入的虚拟化技术(VT)功能,一个或多个机器管理器可以控制在不同操作环境中操作的VM。例如,VT定义了在其中虚拟机管理器(VMM)(也称作超级管理器(hypervisor))能够对客户操作系统(OS)剥夺权限的初级监控模式(primary monitormode)。类似地,VT还可以提供系统管理模式转移监控(STM),其能够对系统管理中断(SMI)处理程序(handler)剥夺权限,从而SMI处理程序作为系统管理模式(SMM)中的STM的客户来运行。

然而,STM的当前实现方式缺乏对可靠性、可用性、以及可服务性(RAS)的支持。RAS是用于描述保护数据完整性并使得计算机系统能够长时间保持可用性而不发生故障的众多特征的一组相关属性。当设计、制造、购买、或使用计算机产品或部件时,可以考虑RAS属性。当支持热插拔、只读存储器(ROM)SMI处理程序特征和其它RAS动作时,当前的STM实现方式并不满足RAS要求。

例如,在热插拔支持的情况中,当前的STM实现方式并不为CPU或存储器提供热插拔支持。在ROM SMI处理程序特征支持的情况中,当前的STM实现方式仅在动态随机存取存储器(DRAM)上支持STM。

附图说明

根据以下给出的详细描述以及根据本公开的各种实施例的附图,可以更全面地理解本公开。然而,附图并不应该被认为是将本公开限制为具体的实施例,而是仅用于解释和理解。

图1是根据本公开的实施例的在对等监控中支持可靠性、可用性、以及可服务性(RAS)流的设备的框图;

图2是根据本公开的实施例示出用于实现对等监控的基于ROM的执行的存储器模块的框图;

图3是根据本公开的实施例的支持RAS的对等监控的基于只读存储器(ROM)的执行的方法的流程图;

图4是示出根据本公开的实施例的对等监控对RAS的热插拔支持的框图;

图5A和5B是根据本公开的实施例示出当添加或移除存储器时用于由STM的热插拔支持的方法的流程图;

图6A和6B是根据本公开的实施例示出当添加或移除处理器时用于由STM的热插拔支持的方法的流程图;以及

图7示出了计算机系统的一个实施例的框图。

具体实施方式

本公开的实施例提供用于在对等监控中支持可靠性、可用性、以及可服务性(RAS)流的机制。在一个实施例中,支持RAS的高权限(HP)管理器用作对等监控,例如系统管理中断(SMI)转移监控(STM)。STM可以对SMI处理程序剥夺权限,从而SMI处理程序在系统管理模式(SMM)中作为STM的客户来运行。因为STM的当前实现方式缺乏对RAS流的支持,所以本公开的实施例实现被配置为支持RAS的特征的支持RAS的HP管理器。具体地,支持RAS的HP管理器(例如STM)可以实现基于ROM的执行并支持热插拔功能。

在一个实施例中,本公开的方法包括由处理设备接收系统管理中断(SMI)事件。该方法还包括响应于SMI事件而调用权限管理器来从只读存储器(ROM)进入点执行以处理SMI事件,权限管理器包括热插拔服务模块以为存储器热插拔功能提供支持,以及为处理器热插拔功能提供支持。

图1是根据本公开的实施例的在对等监控中支持RAS流的设备100的框图。设备100的一些例子可以包括但不限于,移动通信设备(例如,蜂窝手机或智能电话)、移动计算设备(例如,平板计算机、上网本、笔记本计算机、膝上型计算机、台式计算机、服务器计算机等)。

设备100可以包括例如主机102,用于为设备100处理基线操作。主机102可以包括例如处理模块104、桥接模块106、存储器模块108、以及其它模块110。处理模块102可以包括:位于分离部件中的一个或多个处理器(也称作处理设备),或者可选地,被实现在例如布置在片上系统(SOC)配置中的单个集成电路(IC)中的一个或多个处理核心。

桥接模块106可以包括配置为支持处理模块104的电路。示例性电路可以包括被配置为利用设备100中的各种总线处理通信的接口/桥接电路(例如,一组集成电路(IC))。例如,桥接模块106可以通过将一种类型/速度的通信转换成另一种而处理各个模块之间的信号传递,并且还可以与各种不同设备兼容以允许不同的系统实现方式、更新等。桥接模块106的一些功能还可以并入到处理模块104、存储器模块108、或其它模块110。

处理模块104可以执行指令。指令可以包括程序代码以使得处理模块104执行多个动作,例如但不限于,读取数据、写入数据、处理数据、用公式表示数据、转换数据、变换数据等。包括指令、数据等的信息可以存储于存储器模块108。

存储器模块108可以包括固定或可移除格式的随机存取存储器(RAM)或只读存储器(ROM)。RAM可以包括在设备100的操作期间保持信息的存储器,例如,静态RAM(SRAM)或动态RAM(DRAM)。ROM可以包括:诸如计算设备BIOS存储器的存储器以在设备100活动时提供指令,可编程存储器(如,电可编程ROM(EPROM)、闪存等)。其它固定和/或可移除存储器可以包括:磁存储器,例如软盘、硬盘驱动器等;电子存储器,例如固态闪存(如,eMMC等)、可移除存储器卡或棒(例如,USB、微型SD等);光存储器,例如基于压缩盘的ROM(CD-ROM)、全息等。

其它模块110可以包括用于支持设备100内的其它功能的模块。其它模块110可以包括例如用于向设备100供电的模块、在设备100中支持有线和/或无线通信的模块、用于在设备100中提供用户接口(UI)特征的模块、用于支持专用功能的模块等。取决于例如形状因子、设备100被配置的用途等,其它模块100的组成可以是可变的。

在108’处在放大图中示出了根据本公开的实施例的存储器模块108的实施例。存储器模块108’可以包括高权限执行环境112和低权限执行环境120。在高权限执行环境112中运行的软件能够影响设备100中其它软件的操作(例如,能读取、写入、和/或执行在低权限执行环境120中的软件),但是在低权限执行环境120中运行的软件不能影响在高权限执行环境112中运行的任意软件。高权限执行环境112可以包括支持可靠性、可用性、可服务性(RAS)的高权限(HP)管理器114,以管理BIOS客户116和其它客户118的操作。低权限执行环境120可以包括低权限(LP)管理器122,以管理OS客户1 124和OS客户2 126的操作。虽然示出了两个OS客户124、126,但与本公开一致的实施例不限于仅两个客户。

在至少一个实施例中,高权限执行环境112中的某些活动可以在设备100进入特定的安全模式时发生。在该安全模式中,可以在处理模块104中中止所有的其它处理活动,可以保存处理模块104的当前上下文,并且然后在返回到设备100的正常操作之前可以执行与高权限执行环境112相关的任何操作。该安全模式可以由支持RAS的HP管理器114配置。

在本公开的实施例中,支持RAS的HP管理器114可以是对等监控,例如系统管理中断(SMI)转移监控(STM)。STM 114可以对系统管理中断(SMI)处理程序剥夺权限,从而SMI处理程序在系统管理模式(SMM)中作为STM 114的客户运行。本公开的实施例提供被认为是支持RAS的STM 114,因为它支持RAS的特征。具体地,支持RAS的HP管理器114可以实现STM 114的基于ROM的执行以及对于热插拔功能的STM 114支持。热插拔描述了替代或添加计算机系统部件而无需关闭或重新启动系统的功能。图2和4提供了在本公开的实施例中STM 114支持的基于ROM的执行以及热插拔的RAS特征的进一步的细节。

图2是根据本公开的实施例示出用于实现对等监控的基于ROM的执行的存储器模块200的框图。在一个实施例中,存储器模块200与结合图1描述的存储器模块108相同。在另一实施例中,对等监控是STM,例如结合图1描述的STM 114。存储器模块200可以包括ROM 210区域和RAM 220区域。

本公开的实施例将STM图像211放置于ROM 210中。另外,在具有STM图像211的ROM 210中创建并放置STM页面表和全局描述表(GDT)212。STM页面表和STM GDT 212使得STM图像211能够在长模式(例如,x64位模式)中运行。在一个实施例中,STM页面表和GDT 212的访问位和脏位(dirty bit)是被默认设定的。ROM STM 211还可以包括STM头部214,该STM头部214存储ROM STM 211的页面表和GDT 212。

在一个实施例中,可以在计算机系统的BIOS的启动过程期间初始化ROM STM。BIOS SMM模块(未示出)可以将ROM STM图像211的地址放置在运行BIOS和STM代码的处理器的特殊寄存器中。该ROM STM图像211地址是ROM STM图像211的进入点215,在此建立STM代码的堆栈213以执行STM代码。在一个实施例中,存储ROM STM进入点215的特殊寄存器是IA32_SMM_MONITOR MSR。

在运行时,当SMI发生时,处理器可以首先调用ROM STM进入点215(利用特殊寄存器处的地址)。ROM STM 211可以然后检查在存储器模块200的RAM 220区域处是否发生存储器错误。如果存储器检查揭示在RAM220中没有错误,则通过调用RAM STM进入点225,STM代码的操作可以转移到RAM STM 221。在一个实施例中,RAM STM进入点225存储于ROMSTM 211中。在一个实施例中,RAM STM 221位于STM代码一般所处于的RAM 220的区域中,例如RAM 220的顶部分段(TSEG)的监控分段(MSEG)区域中。

在另一方面,如果ROM STM 211检测到存在RAM错误,则ROM STM211不能调用RAM STM 211。相反,ROM STM 211能够直接调用BIOS ROMSMM处理程序以处理损坏的RAM 220或处理其它错误(根据BIOS SMM处理程序选择)。在一个实施例中,BIOS ROM SMM处理程序的进入点可以被定义在另一特殊寄存器中,例如TXT DESC SMM SAVE STATE MSR。

在本公开的实施例中,STM转变状态数据结构222被用于在ROM STM211和RAM STM 221之间的转变。在一个实施例中,在RAM 220的MSEG部分的开始处包含STM转变状态数据结构222。在具有存储器模块200的系统的初始化期间,BIOS SMM可以确定ROM STM 211的状态以及RAMSTM 221的状态。转变数据结构可以包括但不限于,ROM STM的大小、RAM STM的大小、CRC、检查、散列或其它密码标记。ROM STM 211可以利用转变数据结构来在转交控制之前验证RAM STM的完整性。

以上描述的基于ROM的STM执行使得在运行时期间处理存储器错误成为可能,这是RAS特征。它允许STM的早期流被推到ROM上,以解决RAM STM或RAM的任意其它部分损坏的场景。

图3是根据本公开的实施例的支持RAS的对等监控的基于ROM的执行的方法300的流程图。方法300可以由处理逻辑执行,所述处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上运行的指令)、固件、或其组合。在一个实施例中,方法300由结合图1描述的设备100执行。

方法300开始于框310,其中当检测到SMI事件时调用ROM区域中的STM代码。在一个实施例中,处理器检测到SMI事件并基于存储于处理器的寄存器中的ROM STM的进入点的地址调用ROM STM代码。然后,在框320处,ROM STM代码运行RAM存储器上的错误检查。在判定框330处,判定是否在RAM存储器处有错误。

如果在判定框330处有RAM错误并且错误的存储器没有落入OEMSMM代码的区域内,则方法300进行到框340,在此BIOS SMM处理程序被从ROM STM代码直接调用。在一个实施例中,对于BIOS SMM处理程序的进入点地址可以存储于处理器的寄存器中,并由ROM STM使用以调用BIOS SMM处理程序。在框350处,将执行控制从ROM STM代码传递到BIOS SMM处理程序,以用于BIOS SMM处理程序来解决RAM中的存储器错误。

如果在判定框330处有RAM存储器错误并且存储器与OEM SMRAM重叠,则STM能够以存储器单元的信息建立机器检查日志。然后固件可以通过注入机器检查异常终止和/或重置机器而返回到主机环境。在任一种情况中,OS代理能够根据机器检查日志确定错误信息。

如果在判定框330处检测到没有RAM错误,则方法300进行到框360处,在此处,从ROM STM代码调用RAM STM代码。在一个实施例中,STM转变数据结构用于从ROM STM转变到RAM STM。ROM STM可以使用转变结构来传递控制,并且还确定ROM STM是否与已经报告了存储器错误的存储器范围重叠。然后,在框370处,将执行控制从ROM STM传递到RAM STM,以便RAM STM采取正常STM动作来调用SMM客户,处理来自SMI事件的异常(exception),获得从系统管理模式恢复(RSM),以及返回到原始执行环境。

图4是示出根据本公开的实施例的对等监控对RAS的热插拔支持的框图。可以利用与多个微型处理器中当前可用的虚拟化技术(VT)相关联的术语来描述本文所讨论的一些实施例。VT是允许多于一个的虚拟机(VM)同时以安全且有效的方式共享对物理处理资源的访问的功能。然而,这些术语的使用是为了在此进行解释,与本公开一致的实现方式并不局限于使用该技术。例如,也可以以与本文所描述的各个实施例一致的方式采用其它硬件(如微型处理器)和/或提供类似特征的软件。

在图4的示例性实现方式中,高权限执行环境存储器112、STM 114、BIOS客户116、以及低权限执行环境存储器120与在图1中与其相同标记的配对物是一样的。STM被配置为管理BIOS SMM客户116的操作。在一个实施例中,图1的LP管理器122被示出为低权限执行环境存储器120的测量的发射环境(MLE)122。STM 114与BIOS SMM 116和MLE 122利用各种不同的VMCALL命令通信,反之亦然。VMCALL命令可以包括超级管理器和客户之间或者两个不同的超级管理器之间的指令。在一些实施例中,VMCALL是虚拟机客户(例如MLE或BIOS SMM)能够用于与诸如STM的超级管理器通信的机制。

在一个实施例中,将热插拔服务模块420添加到STM 114以定义对应用编程接口(API)的一组扩展,从而支持对于支持RAS的STM的热插拔功能。热插拔服务模块420可以与BIOS SMM 116和MLE 122中对应的热插拔模块410、430通信。

在一个实施例中,热插拔服务模块420为存储器热插拔操作以及为处理器热插拔操作提供支持。关于存储器热插拔,引入两个新的BIOS到STMVMCALL命令:添加BIOS资源VMCALL和移除BIOS资源VMCALL。虽然本文的描述具体涉及添加BIOS资源VMCALL和移除BIOS资源VMCALL,但这种指令的其它识别也可以使用,并且本公开的实施例并不局限于本文所使用的具体名称。下文的图5A和5B描述了根据本公开的实施例的利用热插拔支持经由STM用于添加和移除存储器的示例性流程。

关于处理器热插拔,引入两个新的BIOS到STM VMCALL命令:添加处理器VMCALL和移除处理器VMCALL。虽然本文的描述具体涉及添加处理器VMCALL和移除处理器VMCALL,但这种指令的其它识别也可以使用,并且本公开的实施例并不局限于本文所使用的具体名称。下文的图6A和6B描述了根据本公开的实施例的利用热插拔支持经由STM用于添加和移除处理器的示例性流程。

图5A是根据本公开的实施例的当将存储器添加到计算机系统时用于由STM热插拔支持的方法500的流程图。方法500可以由处理逻辑执行,所述处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上运行的指令)、固件、或其组合。在一个实施例中,方法500由结合图4描述的STM 114执行。

方法500开始于框505,其中在STM处从BIOS接收到添加BIOS资源VMCALL。在一个实施例中,在BIOS接收到经由SMI事件添加新的存储器的通知之后,接收到添加BIOS资源VMCALL。在判定框510处,STM判定在存储器的MLE保护区域和将与新的存储器相关联的存储器的区域之间是否有任何重叠。在一个实施例中,STM维持由BIOS以及由MLE要求(claimed)的资源的列表,并能够针对在判定框510处的重叠判定而交叉检查该列表。如果在判定框510处检测到重叠,则STM在框545处生成异常并拒绝添加新的存储器。

在另一方面,如果在判定框510处没有检测到重叠,则方法500进行到框515,在此处STM将确认发送给BIOS以添加新的存储器。然后,在框520处,STM从BIOS接收移除BIOS资源VMCALL。这可能响应于在STM向BIOS确认没有重叠之后BIOS暂时访问新的存储器。

在框525处,响应于移除BIOS资源VMCALL,STM向MLE打开对于新的存储器的存储器保护。在一个实施例中,一旦向MLE打开对于新的存储器的存储器保护,MLE可以随后接收经由系统控制中断(SCI)事件添加的新的存储器。在框530处,STM从MLE接收保护资源VMCALL。作为响应,STM在判定框535处判定在BIOS声明的资源区域和与新的存储器相关联的存储器区域之间是否有重叠。

如果检测到重叠,则方法500进行到框545,其中STM生成异常并且拒绝添加新的存储器。在另一方面,如果没有检测到重叠,则在框540处由STM为MLE保护新的存储器区域。在一个实施例中,新的存储器资源被添加到由STM维持的MLE资源的列表中。MLE然后可以将虚拟SCI注入到添加新的存储器的客户,从而客户可以使用新的存储器。

图5B是根据本公开的实施例的当向计算机系统移除存储器时用于由STM的热插拔支持的方法550的流程图。方法550可以由处理逻辑执行,所述处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上运行的指令)、固件、或其组合。在一个实施例中,方法550由结合图4所描述的STM 114执行。

方法550开始于框560,其中STM从MLE接收未保护资源VMCALL。在一个实施例中,响应于MLE移除与MLE的客户之一相关联的存储器,未保护资源VMCALL由MLE发送给STM。客户可以移除存储器,其经由SMI向BIOS生成移除存储器请求。反过来,BIOS可以触发SCI以通知MLE,MLE可以将虚拟SCI注入给客户,从而客户移除存储器。一旦存储器被移除,MLE可以在框560处调用未保护资源VMCALL到STM。

随后,在框570处,STM对在由STM维护的列表(或多个列表)中的存储器移除MLE保护。BIOS可以然后移除存储器并调用移除BIOS资源VMCALL,其在框580处由STM接收。响应于移除BIOS资源VMCALL,在框590处STM从由STM维护的BIOS资源列表移除存储器。

图6A是根据本公开的实施例的当添加处理器到计算机系统时用于由STM的热插拔支持的方法600的流程图。方法600可以由处理逻辑执行,所述处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上运行的指令)、固件、或其组合。在一个实施例中,方法600由结合图4所描述的STM 114执行。

方法600开始于框610,其中经由已经在计算系统上操作的原始处理器,从BIOS接收添加处理器VMCALL。在一个实施例中,响应于BIOS接收指示添加了新的处理器的SMI事件,接收添加处理器VMCALL。在框620处,STM将新的处理器添加到由STM维护的BIOS资源的列表中。在一个实施例中,BIOS资源的列表包括数据结构,例如链接列表、计算系统的详述(detailing)处理器。

在框630处,经由新的处理器由STM从MLE接收初始化保护VMCALL。在一个实施例中,响应于MLE接收经由SCI事件添加的新的处理器,接收初始化保护VMCALL。在框640处,由STM在新的处理器上启用STM。一旦为新的处理器启用STM,MLE可以将虚拟SCI注入到添加新的处理器的客户,从而该客户能够使用所述处理器。

图6B是根据本公开的实施例的当向计算机系统移除处理器时用于由STM的热插拔支持的方法650的流程图。方法650可以由处理逻辑执行,所述处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上运行的指令)、固件、或其组合。在一个实施例中,方法650由结合图4描述的STM 114执行。

方法650开始于框660,其中STM从MLE接收停止STM VMCALL。在一个实施例中,响应于MLE移除与MLE的客户之一相关联的处理器,由MLE将停止STM VMCALL发送给STM。客户可以移除处理器,其经由SMI向BIOS产生移除处理器请求。反过来,BIOS可以出发SCI以通知MLE,并且MLE可以将虚拟SCI注入到客户,从而客户移除处理器。一旦处理器被移除,MLE可以在框660处调用停止STM VMCALL到STM。

随后,在框670处,STM对于响应于停止STM VMCALL而移除的处理器停止STM服务。BIOS可以然后移除处理器并调用移除处理器VMCALL,其在框680处由STM接收。响应于移除处理器VMCALL,在框690处,STM通过破坏与由STM维护的处理器相关联的数据结构来移除处理器。

图7示出了计算机系统700的示例形式的机器的示意图,在计算机系统700中可以执行用于使得机器执行本文讨论的方法中的任意一个或多个的一组指令。在替代实施例中,机器可以被连接(例如,联网)到LAN、内联网、外联网、或互联网中的其它机器上。机器可以在客户端-服务器网络环境中的服务器或客户端设备的容量中操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络应用、服务器、网络路由器、交换机或桥,或者能够执行指定该机器所采取的动作的一组指令(顺序或其它方式)的任意机器。此外,虽然仅示出了单个机器,但是术语“机器”还应该被认为是包括个体或联合执行一组(或多组)指令从而执行本文讨论的任意一种或多种方法的机器的任意集合。

计算机系统700包括处理设备702、主存储器704(例如,只读存储器(ROM))、闪存、动态随机存取存储器(DRAM)(例如,同步DRAM(SDRAM)或DRAM(RDRAM)等)、静态存储器706(例如,闪存、静态随机存取存储器(SRAM)等),以及数据存储设备718,其经由总线730与彼此通信。

处理设备702表示一个或多个通用处理设备,例如微型处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微型处理器、精简指令集计算机(RISC)微型处理器、超长指令字(VLIW)微型处理器、或实现其它指令集的处理器、或实现指令集的组合的处理器。处理设备702还可以是一个或多个专用处理设备,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。在一个实施例中,处理设备702可以包括一个或多个处理核心。处理设备702被配置为执行处理逻辑726,用于执行本文讨论的操作和步骤。在一个实施例中,处理设备702与结合图1描述的实现支持RAS的HP管理器(例如STM)的处理设备100相同。例如,处理设备702可以包括支持RAS的HP管理器,例如图1的STM 114。

计算机系统700还可以包括与网络720可通信耦合的网络接口设备708。计算机系统700还可以包括视频显示单元710(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备712(例如,键盘)、光标控制设备714(例如,鼠标),以及信号生成设备716(例如,扬声器)。此外,计算机系统700可以包括图形处理单元722、视频处理单元728、以及音频处理单元732。

数据存储设备718可以包括机器可访问存储介质724,在其上存储有实现本文描述的功能的任意一种或多种方法的软件726,例如实现如上所述具有受限入口的RS。软件726还可以完全或至少部分地驻于:如指令726一样在主存储器704内和/或如处理逻辑726一样在处理设备702内(在计算机系统700对其的执行期间);主存储器704和处理设备702也构成机器可访问存储介质。

机器可读存储介质724还可以用于存储实现支持RAS的HP管理器的指令726,例如结合图1的设备100所描述的,和/或包含调用上述应用的方法的软件库。虽然在示例实施例中示出了机器可访问存储介质728是单个介质,但是术语“机器可访问存储介质”应该被认为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存和服务器)。术语“机器可访问存储介质”也应该被认为包括能够存储、编码或携带用于由机器执行并使得机器执行本公开的方法中的任意一种或多种的一组指令的任意介质。术语“机器可访问存储介质”因此可以被认为包括但不限于固态存储器以及光和磁介质。

以下例子属于进一步的实施例。例子1是一种用于在对等监控中支持可靠性、可用性、以及可服务性(RAS)流的方法,包括:由处理设备接收系统管理中断(SMI)事件;以及响应于所述SMI事件,由所述处理设备调用权限管理器以从只读存储器(ROM)进入点执行,来处理所述SMI事件,所述权限管理器包括热插拔服务模块以提供对存储器热插拔功能和处理器热插拔功能的支持。在例子2中,例子1的主题可以可选地包括:所述权限管理器包括系统管理中断(SMI)转移监控(STM)。在例子3中,例子1-2中任一个的主题可以可选地包括:所述权限管理器包括超级管理器,其执行基本输入/输出系统(BIOS)的系统管理模式(SMM)代码作为所述权限管理器的客户。

在例子4中,例子1-3中任一个的主题可以可选地包括:所述权限管理器用于在调用之后在读取存取存储器(RAM)上执行错误检查。在例子5中,例子1-4中任一个的主题可以可选地包括:所述权限管理器用于访问转变数据结构以针对所述错误检查来验证RAM的完整性。在例子6中,例子1-5中任一个的主题可以可选地包括:所述转变数据结构维护包括以下中至少一项的数据:在ROM中所述权限管理器的大小、在RAM中所述权限管理器的大小、循环冗余校验(CRC)值、检查值、散列、或密码标记。

在例子7中,例子1-6中任一个的主题可以可选地包括:其中,当错误检查表示在RAM中有错误时,所述权限管理器用于调用BIOS SMM处理程序以解决RAM中的错误。在例子8中,例子1-6中任一个的主题可以可选地包括:其中,当所述错误检查表示在RAM中没有错误时,所述权限管理器用于将控制传递到RAM中执行的权限管理器的另一版本。

在例子9中,例子1-8中任一个的主题可以可选地包括:其中,所述热插拔服务模块包括应用编程接口(API)的一组扩展,以支持针对存储器的热插拔功能,所述API的扩展包括添加BIOS资源VMCALL和移除BIOS资源VMCALL,其在基本输入/输出系统(BIOS)和所述权限管理器之间传送。在例子10中,例子1-9中任一个的主题可以可选地包括:其中,所述热插拔服务模块包括应用编程接口(API)的一组扩展,以支持针对处理器的热插拔功能,所述API的扩展包括添加处理器VMCALL和移除处理器VMCALL,其在基本输入/输出系统(BIOS)和所述权限管理器之间传送。

例子11是一种用于在对等监控中支持可靠性、可用性、以及可服务性(RAS)流的装置,包括:存储器模块,其包括权限执行环境和低权限执行环境;以及与所述存储器模块通信耦合的处理设备。在例子11中,所述处理设备用于:接收系统管理中断(SMI)事件;响应于所述SMI事件,调用SMI转移监控(STM)以从只读存储器(ROM)进入点执行,来处理所述SMI事件;以及由所述STM经由所述STM的热插拔服务模块提供对存储器热插拔功能和处理器热插拔功能的支持。在例子12中,例子11的主题可以可选地包括:其中,所述STM作为超级管理器执行,并虚拟化所述装置的基本输入/输出系统(BIOS)的系统管理模式(SMM)代码作为所述STM的客户。

在例子13中,例子11-12中任一个的主题可以可选地包括:其中,所述STM在调用之后在读取存取存储器(RAM)上执行错误检查。在例子14中,例子11-13中任一个的主题可以可选地包括:其中,当错误检查表示在RAM中有错误时,所述STM用于调用BIOS SMM处理程序以解决RAM中的错误。在例子15中,例子11-14中任一个的主题可以可选地包括:其中,当所述错误检查表示在RAM中没有错误时,所述STM用于将控制传递到RAM中执行的权限管理器的另一版本。

在例子16中,例子11-15中任一个的主题可以可选地包括:其中,所述热插拔服务模块包括应用编程接口(API)的一组扩展,以支持针对所述存储器的所述热插拔功能,所述API的所述扩展包括添加BIOS资源VMCALL和移除BIOS资源VMCALL,其在基本输入/输出系统(BIOS)和所述STM之间传送。

在例子17中,例子11-16中任一个的主题可以可选地包括:其中,所述热插拔服务模块包括应用编程接口(API)的一组扩展,以支持针对所述处理器的所述热插拔功能,所述API的所述扩展包括添加处理器VMCALL和移除处理器VMCALL,其在基本输入/输出系统(BIOS)和所述STM之间传送。也可以结合本文所描述的方法或过程来实现上述装置的所有可选特征。

例子18是一种用于在对等监控中支持可靠性、可用性、以及可服务性(RAS)流的非暂时性机器可读存储介质。在例子18中,所述非暂时性机器可读介质包括数据,所述数据在被处理设备访问时使得所述处理设备执行包括以下的操作:由所述处理设备执行的权限管理器从只读存储器(ROM)进入点访问追踪读取存取存储器(RAM)的完整性的转变数据结构,所述访问响应于所述处理设备接收系统管理中断(SMI)事件。此外,在例子18中,操作还包括由所述权限管理器基于所述转变数据结构在所述RAM上执行错误检查,以及当所述错误检查表明在所述RAM中没有错误时,由所述权限管理器将控制传递到所述RAM中执行的所述权限管理器的另一版本,以处理所述SMI事件,所述权限管理器包括热插拔服务模块,用于提供对存储器热插拔功能和处理器热插拔功能的支持。

在例子19中,例子18的主题可以可选地包括:其中,所述权限管理器是系统管理中断(SMI)转移监控(STM),其作为超级管理器执行,并且其中所述STM虚拟化基本输入/输出系统(BIOS)的系统管理模式(SMM)代码作为所述STM的客户。在例子20中,例子18-19中任一个的主题可以可选地包括:当所述错误检查表示在所述RAM中有错误时,由所述权限管理器调用BIOS SMM处理程序以解决所述RAM中的错误。

在例子21中,例子18-20中任一个的主题可以可选地包括:其中,所述热插拔服务模块包括应用编程接口(API)的一组扩展,以支持针对存储器的热插拔功能,所述API的扩展包括添加BIOS资源VMCALL和移除BIOS资源VMCALL,其在基本输入/输出系统(BIOS)和所述权限管理器之间传送。在例子22中,例子18-21中任一个的主题可以可选地包括:其中,所述热插拔服务模块包括应用编程接口(API)的一组扩展,以支持针对处理器的热插拔功能,所述API的所述扩展包括添加处理器VMCALL和移除处理器VMCALL,其在基本输入/输出系统(BIOS)和所述权限管理器之间传送。

例子23是一种用于在对等监控中支持可靠性、可用性、以及可服务性(RAS)流的装置,包括:用于经由只读存储器(ROM)进入点访问追踪读取存取存储器(RAM)的完整性的转变数据结构的单元,所述访问响应于接收系统管理中断(SMI)事件。例子23的装置还包括用于基于所述转变数据结构在所述RAM上执行错误检查的单元;以及当所述错误检查表明在所述RAM中没有错误时,用于将控制传递到在所述RAM中执行的权限管理器的版本以处理所述SMI事件的单元,所述用于访问的单元包括热插拔服务模块以提供对存储器热插拔功能和处理器热插拔功能的支持。在例子24中,例子22的主题可以可选地包括:所述装置还配置为执行如例子2-10中任一项所述的方法。

例子25是至少一种包括多条指令的机器可读介质,所述指令响应于在计算设备上被执行而使得所述计算设备执行根据例子1-10中任一项所述的方法。例子26是一种在对等监控中用于支持可靠性、可用性、以及可服务性(RAS)流的装置,其被配置为执行如例子1-10中任一项所述的方法。例子27是包括用于执行例子1-10中任一项所述的方法的单元的装置。可以在一个或多个实施例中任何地方使用例子中的特性。

虽然结合有限数量的实施例描述了本公开,但本领域技术人员可以理解来自其的多种修改和变型。随附权利要求意图覆盖所有的这种修改和变型,将其视为落入本公开的真实精神和范围内。

设计会经历各种阶段,从创建到模拟到制造。表示设计的数据可以以多种方式表示设计。首先,如在模拟中有用的,可以利用硬件描述语言或另一功能描述语言来表示硬件。另外,可以在设计过程的某些阶段生产具有逻辑和/或晶体管门的电路级模型。此外,大部分设计在某一阶段会达到表示硬件模型中各种设备的物理布置的数据级别。在使用传统的半导体制造技术的情况下,表示硬件模型的数据可以是指定用于生产集成电路的掩膜的不同掩膜层上各种特征的存在或不存在的数据。在设计的任意表示中,数据可以存储于任意形式的机器可读介质。存储器或者诸如盘的磁或光存储装置可以是机器可读介质,以存储经由调制的或其它方式生成以传输这种信息的光或电波传输的信息。当传输表示或携带代码或设计的电载波时,就执行拷贝、缓冲、或重新传输电信号而言,进行新的拷贝。因此,通信提供商或网络提供商可以在有形的机器可读介质上至少暂时地存储实现本公开的实施例的技术的物品,例如编码为载波的信息。

本文所使用的模块指的是硬件、软件和/或固件的任意组合。作为例子,模块包括硬件,例如微型控制器,其与非暂时性介质相关联以存储适用于被微型控制器执行的代码。因此,在一个实施例中提及模块指的是硬件,其被特别地配置为识别和/或执行被保持在非暂时性介质上的代码。此外,在另一实施例中,使用模块指的是包括代码的非暂时性介质,其特别地适用于由微型控制器执行以实现预定的操作。并且如能被推断的,在又一实施例中,术语模块(在该例子中)可以指的是微型控制器和非暂时性介质的组合。通常,示出为分离的模块边界通常是变化的且可以重叠。例如,第一模块和第二模块可以共享硬件、软件、固件、或者其组合,而可能保持一些独立的硬件、软件、或者固件。在一个实施例中,使用术语逻辑包括硬件,例如晶体管、寄存器、或其它硬件,例如可编程逻辑设备。

使用短语“被配置为”在一个实施例中指的是布置、放置在一起、制造、提供销售、进口和/或设计装置、硬件、逻辑、或元件以执行指定的或确定的任务。在该例子中,未运行的其中的装置或元件仍“被配置为”执行指定的任务,如果其被设计、耦合、和/或互连以执行所述指定任务。作为纯粹的例证,逻辑门可以在操作期间提供0或1。但是逻辑门“被配置为”提供使能信号给时钟并不包括可能提供1或0的每个潜在的逻辑门。相反,逻辑门是在1或0输出以启用时钟的操作期间以某种方式耦合的逻辑门。再次注意,使用术语“被配置为”不需要操作,而是集中在装置、硬件、和/或元件的潜在状态,其中在所述潜在状态中,装置、硬件、和/或元件被设计为当装置、硬件、和/或元件在操作时执行特定任务。

此外,在一个实施例中使用短语“到”、“能够”、和/或“可操作用于”指的是以这种方式设计的一些装置、逻辑、硬件、和/或元件能够以特定方式使用装置、逻辑、硬件、和/或元件。如上所述,在一个实施例中使用“到”、“能够”、或“可操作用于”指的是装置、逻辑、硬件、和/或元件的潜在状态,其中装置、逻辑、硬件、和/或元件未运行但是被以这种方式设计以能够以特定方式使用装置。

本文所使用的“值”包括对数字、状态、逻辑状态、或二进制逻辑状态的任意已知表示。通常,使用逻辑级、逻辑值(logic value)、或逻辑值(logical value)也被称作1和0,其简单地表示二进制逻辑状态。例如,1表示高逻辑电平,而0表示低逻辑电平。在一个实施例中,存储单元(例如,晶体管或闪存单元)可能能够保持单个逻辑值或多个逻辑值。然而,已经使用了计算机系统中的值的其它表示。例如,十进制数10也可以表示为二进制值1010以及十六进制字母A。因此,值包括能够被保持于计算机系统中的信息的任何表示。

此外,可以由值或值的部分来表示状态。作为例子,第一值(例如逻辑1)可以表示默认或初始状态,而第二值(例如逻辑0)可以表示非默认状态。另外,在一个实施例中,术语“重置”和“设置”分别指的是默认和更新值或状态。例如,默认值可能包括高逻辑值,即,重置;而更新值可能包括低逻辑值,即,设置。注意,可以使用值的任意组合来表示任意数量的状态。

以上所述的方法、硬件、软件、固件或代码的实施例可以经由存储于机器可访问的、机器可读的、计算机可访问的、或计算机可读的介质中的能由处理元件执行的指令或代码实现。非暂时性机器可访问/可读介质包括提供(即,存储和/或传输)机器(例如,计算机或电子系统)可读形式的信息的任意机制。例如,非暂时性机器可访问介质包括随机存取存储器(RAM),例如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪存设备;电存储设备;光存储设备;声存储设备;用于保持从暂时(传播的)信号(例如,载波、红外信号、数字信号)接收到的信息的其它形式的存储设备;等,其有别于可以从那里接收信息的非暂时性介质。

用于对逻辑编程以执行本公开的实施例的指令可以存储于系统中的存储器内,例如DRAM、高速缓存、闪存、或其它存储装置。此外,指令可以经由网络或通过其它计算机可读介质的方式被分发。因此,机器可读介质可以包括用于存储或传输机器(例如计算机)可读形式的信息的任意机制,但是不限于软盘、光盘、压缩盘、只读存储器(CD-ROM)以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁或光卡、闪存,或者用于在因特网上经由电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)来传输信息的有形的、机器可读的存储装置。因此,计算机可读介质包括任意类型的有形机器可读介质,其适用于存储或传输机器(例如,计算机)可读形式的电指令或信息。

遍及本说明书的引用“一个实施例”或“实施例”意指结合实施例所描述的特定特征、结构、或特性被包含于本公开的至少一个实施例中。因此,遍及本说明书各处出现的短语“在一个实施例中”或“在实施例中”不必都指同一实施例。此外,特定特征、结构、或特性可以在一个或多个实施例中以任意适当形式组合。

在上述说明书中,参考特定示例性实施例给出了详细描述。然而,显然的是在不背离本公开的在随附权利要求中阐述的更广泛的精神和范围的情况下,可以对其作出各种修改和改变。因此,说明书和附图被认为是示例的意义而不是限制的意义。此外,实施例和其它示例性语言的上述使用不必指同一实施例或同一例子,而是可以指的是不同的和独特的实施例,以及可能地相同实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号