首页 / 专利库 / 人工智能 / 嵌入式计算 / 通过网络对固件的自监控和更新

通过网络对固件的自监控和更新

阅读:620发布:2024-02-16

专利汇可以提供通过网络对固件的自监控和更新专利检索,专利查询,专利分析的服务。并且实施例 包括监控计算系统以确定该计算系统的 固件 是否被破坏、挂起或者需要自动更新。该计算系统可以随后通过网络 请求 固件更新数据。此外,该计算系统可以包括具有确定固件是否被破坏或挂起并通过网络请求和接收固件更新数据的能 力 的 控制器 。另外,该控制器可以具有在固件被破坏或挂起、处理器被挂起、 操作系统 被停止、挂起或软关机时运行的功能。另外,如果该控制器检测到固件被破坏或挂起,该控制器可以在更新固件时停止处理器。,下面是通过网络对固件的自监控和更新专利的具体信息内容。

1.一种装置,包括:
处理器,用来运行操作系统
固件,具有包括配置数据的第一部分和第二部分,第一部分包括用 来监控第二部分以确定第二部分是否被破坏的逻辑;和
控制器,包括固件以便通过网络向服务器发送消息以请求更新的配 置数据,其中该消息是为了从服务器的存储器中存储的数据库请求更新 的配置数据、通过网络接收更新的配置数据、并用返回的更新的配置数 据重写第二部分的至少一部分,其中该消息包括包含该处理器和固件的 计算系统的标识;
其中第一部分包括监控时钟信号的逻辑,以确定是否所选择的时间 或者是否一段时间已经过去表明需要更新配置数据,并且其中第一部分 激活用来发送预定的通知信号的硬件部分、用来发送预定的通信软件通 知消息给控制器的软件部分之一,以便向控制器表明计算系统的引导是 否已经被启动。
2.权利要求1的装置,其中第一部分包括固件,以监控客户机芯 片组以比较处理器的进度和根据配置数据的处理器的期望响应。
3.权利要求1的装置,其中第一部分与第二部分相耦合,并且包 括监控第二部分以确定第二部分是否被停止或挂起的逻辑。
4.权利要求3的装置,其中第一部分包括当第二部分被破坏、停 止或挂起时停止处理器的逻辑.
5.权利要求4的装置,其中第一部分包括在如果第二部分被破坏、 停止或挂起时用于执行的电路或固件.
6.权利要求1的装置,其中第一部分被存储在受擦除保护的存储 器中,该存储器包括硬编码的系统参数以发送表示第二部分遭破坏的预 定消息给控制器。
7.权利要求6的装置,其中控制器包括嵌入式微控制器、固件和 电路之一。
8.权利要求6的装置,其中第一部分包括对第二部分执行基于校 验和的检查、基于签名的检查和基于硬件的检查之一的逻辑。
9.权利要求1的装置,其中所述逻辑包括电路、固件、软件代码、 数字数据和软件之一。
10.一种计算机实现的方法,包括:
监控计算系统以确定该计算系统的固件是否被破坏;
如果该部分被破坏,从该计算系统通过网络请求更新数据以更新固 件中被破坏的部分;
监控系统的进度,
检测根据固件的预期响应和进度之间的不一致性;
检测在计算系统的设备执行的功能和用固件中存储的设备配置确 定的该设备的预期响应之间的差异;
如果确定固件被破坏,使计算系统的处理器暂停处理;
如果(1)固件被挂起或停止或(2)处理器被暂停,则更新遭破坏的固 件;和
其中更新包括在所选择的时间上或者在所选择的时间间隔之后请 求固件的固件更新数据,其中请求更新包括在(1)固件被挂起或停止后 或(2)处理器被暂停后请求更新.
11.权利要求10的计算机实现的方法,其中监控包括:
执行基于校验和的检查、基于签名的检查和基于硬件的检查之一。
12.权利要求10的计算机实现的方法,其中监控包括:
如果固件被挂起或停止,确定固件被破坏。
13.一种计算机实现的方法,包括:
通过网络连接接收固件更新数据;
用该固件更新数据更新计算系统的固件;
其中如果计算系统的固件被停止则进行接收和更新;
其中更新包括在所选择的时间上或者在所选择的时间间隔之后请 求固件的固件更新数据;
其中该固件包括第一部分和第二部分,并且更新包括用由固件的第 一部分用通过网络请求到的更新的第二部分数据更新固件的第二部分;
其中更新包括更新固件以消除固件的功能或进程中的错误、向固件 添加功能或进程、以及增强固件的功能或进程之一,和
其中所述所选择的时间或所选择的时间间隔是由管理员选择的,或 者是在计算系统的部分的制造期间选择的。
14.权利要求13的计算机实现的方法,其中更新包括:
用通过网络请求到的更新的第一部分数据更新固件的第一部分;以 及随后
用由第一部分请求到的更新的第二部分数据更新固件的第二部分.
15.权利要求13的计算机实现的方法,其中更新包括:
用计算系统的唯一标识请求固件更新数据;
通过网络从服务器接收固件更新数据;
将固件更新数据返回给固件,或者将固件更新数据重写到固件。
16.权利要求13的计算机实现的方法,其中接收包括使用安全服 务器会话和使用加密数据之一。

说明书全文

技术领域

更新和恢复系统固件

背景技术

电子设备(例如计算系统)的初始化和/或使用期间,固件“程序” 通常被用来检测、测试、初始化以及监控设备或系统硬件。例如,当一 台个人计算机(PC)被打开时,通常基本输入/输出系统(BIOS,basic input/output system)程序(例如固件)会被运行,BIOS是存储在或编 程到PC主板中的只读存储器(ROM)芯片(一般称为BIOS芯片)的软件。 一旦被运行,BIOS立即识别所有的板上设备(例如处理器、存储器、视 频卡等)然后运行加电自检(POST,power-on self-test)以确定各个设 备是否工作正常。如果所有设备都通过了POST测试,然后BIOS初始化 各个设备、检测硬盘驱动器、光盘(CD-ROM)驱动器以及软盘驱动器。然 后BIOS在第一引导设备(通常是硬盘驱动器或软盘驱动器)上查找加载 操作系统软件所必需的文件。BIOS可以处理到键盘和显示控制器等外设 控制器的低层输入/输出(I/O)。此外,BIOS将检测、测试、初始化和 监控系统硬件直到操作系统接管它们。然后,BIOS将对系统的控制传给 操作系统软件。如果有任何设备没有通过POST,将会有错误消息显示在 屏幕上,或者有一系列“嘀嘀声”(beep)通过PC扬声器播放出来以 表示有问题存在。嘀嘀声的次序(嘀嘀声代码)可以用来标识存在的问题 的类型。
但是,BIOS或固件通常是被“烧制”到ROM芯片的一个部分中,并 被写进或编程到ROM芯片的第二部分中。尽管“烧制”的部分可以被硬 件机制(例如,紫外线辐射)“闪光(flash)”擦除,但第二部分可以 由软件机制擦除或写入。因此,BIOS或固件可能被破坏、变得不准确或 者被“病毒”、“蠕虫”或“黑客”修改。此外,计算系统的用户可能 无意中将BIOS修改成不合需要的配置。因而,能够恢复和更新BIOS或 固件以保证它正确非常重要。
附图说明
图1是通过网络自监控和更新固件的系统的结构图;
图2是通过网络更新固件的过程的流程图
图3是通过网络更新固件的过程的流程图;
图4是通过网络自动更新固件的过程的流程图。

具体实施方式

图1是通过网络自监控和更新固件的系统的结构图。图1所示计算 环境100包括通过通信链路162与网络170相连的计算系统102以及通 过通信链路182与网络170相连的服务器180。计算设备102可以是客 户计算机、服务器计算机、台式计算机、膝上型计算机、个人数字助理 (PDA)、蜂窝电话或任何其它有操作系统和固件的数字处理器或处理系 统。
如图1中所示,计算系统102包括通过网络接口160与通信链路162 相连的总线150。总线150可以是计算机总线,如主板上用于接合计算 机的不同部件的总线。网络接口160可以是用于连接到LAN(局域网)、 Intranet(企业内部网)、Internet(互联网)的网络接口,或者另一电子设 备或计算系统通信支持网络。相应地,通信链路162和网络170可以支 持在这些网络上的通信。具体地说,例如,网络170可以是LAN、Intranet 或Internet。还可以预期,网络170可以包括多于一种类型的网络和/或 技术以提供电子设备和/或计算系统之间的通信.具体地说,网络170 可以包括无线通信、蜂窝通信、LAN通信以及Internet。通信链路182 可以是类似于上面为通信链路162所描述的链路.服务器180可以是网 络服务器、与计算机系统102类似的计算系统或者别的计算机服务器以 提供这里所说明的功能。
计算系统102示出为还包括与总线150相连的键盘/鼠标接口152。 键盘/鼠标接口152可以是用于将键盘和/或鼠标连接到计算机系统102 以向那里提供输入的接口。还示出了监视器接口154与总线150相连. 监视器接口154可以提供接口或适当的信号给与计算系统102相连的屏 幕或监视器。例如,监视器接口154可以是视频或显示卡。
图1还示出了与总线150相连的存储器142。存储器142可以代表 随机访问存储器(RAM)、记忆体存储器、通用串行总线(USB,Universal Serial Bus)存储器、硬盘驱动器、CD-ROM、光盘和/或软盘.存储器 142可以是机器可访问介质,例如用于包含指令的介质,所包含的指令 在被处理器执行时使计算系统102执行与计算机有关的任务,包括这里 所说明的那些任务,例如通过网络170与其它计算系统和/或服务器180 通信.
还示出了与总线150相连的处理器140。处理器140可以是中央处 理单元(CPU)、数字信号处理器或其它处理器.能够理解,处理器140 可以是用于处理由存储器142提供的或存储在其中的指令的处理器,例 如使计算系统102执行与计算机有关的任务,包括这里所说明的那些任 务,例如通过网络170与其它计算系统和/或服务器180通信。处理器 140可以执行或运行存储器142中存储的或可以从它获取的操作系统。 因而,计算系统102可以是能够通过网络170访问服务器180的客户计 算机或客户机系统(client system).
图1还示出了与总线150相连的固件110。固件110可以是计算机 基本输入/输出系统(BIOS),客户机系统固件(CSF)、或用于测试、初 始化以及加载计算系统102的引导程序或操作系统的其它指令.固件110 可以被存储在存储器中,例如只读存储器(ROM)、非易失性存储器、可 擦可编程只读存储器(EPROM)、电子可擦可编程只读存储器(EEPROM) 或闪存.例如,固件110可以被存储在当电源被从计算系统102移除或 关闭(硬关闭)时不会被擦除的存储器中。另外,固件110可以被存储 在通过暴露在紫外线中或用紫外线照射能够擦除的存储器中,以更新、 恢复或用后续数据重写,例如,通过“烧制”进存储器中。还可以预期 用其它过程、固件、软件和/或硬件更新固件110.
如果固件被破坏就必须要进行固件(例如BIOS和固件110)的更 新和恢复.如果固件具有与计算系统的设备相比不准确的配置数据、或 者导致操作系统或处理器停止(halt)、挂起或进入软关机(soft-off) 状态,就可被看作是已被破坏。例如,停止可以发生在硬件停止或其它 故障导致操作系统和/或处理器中止固件、软件或操作系统指令的处理 时。同样,挂起可以发生在软件循环问题或其它故障导致操作系统和/ 或处理器中止固件、软件或操作系统指令的处理时。最后,软关机指计 算系统被加电但操作系统和/或处理器因为计算系统处在节电模式或别 的硬件或软件模式而中止固件、软件或操作系统指令的处理时。
固件还可以被更新或恢复以消除功能或过程中的“bug”或错误、 添加功能或过程、或者增强固件的功能或过程(例如,添加新设备的配 置)。此外,可能希望在固件被“病毒”、“蠕虫”或“黑客”破坏或更 改后更新或恢复固件。有些情况下还可能希望在例如所选择的时间上或 周期性地自动更新固件以确保固件持续准确或对这里所说明的固件提 供更新。
图1还示出了与总线150相连的控制器190.控制器可以包括计算 机芯片、数字信号处理器、嵌入式微控制器、固件、电路、计算机硬件 和/或其中存储的计算机软件。特别地,所示控制器190具有固件FW。 控制器190可以是有诸如代码、程序设计、固件FW、数据、智能和/ 或计算机软件等“逻辑”以执行这里所说明的任务的智能网络控制器 (INC,Intelligent Network Controller)。通常,这里所说明的代码、程 序设计、数据、智能、计算机软件、固件、硬件和/或计算机硬件在某种 意义上可以被定义为“逻辑”,所述“逻辑”具有执行关于该“逻辑” 所说明的功能的能
例如,控制器190可以包括监控固件110以及与服务器180通信的 逻辑。更特别地,控制器190可以包括用于跨越网络170与固件110和 服务器180通信以从服务器180获取固件映像(image)从而更新固件 110的逻辑。控制器190的逻辑具有在网络上请求和接收固件110的最 新(updated)配置或固件数据的能力。例如,控制器190还可以具有 用安全服务器会话或加密数据在网络170上与服务器180进行安全通信 的能力。特别地,计算系统102和服务器180之间在通信链路162和182 以及网络170上的通信可以是安全服务器会话,例如事务层安全(TSL, Transactional Layer Secure)服务器会话,和/或使用加密数据(例如 RSA(Ribest-Shamir-Adleman)加密数据),或者对数据的其它公共/私有 密钥加密。控制器190还可具有向固件110返回接收到的最新配置或固 件数据、或者用接收到的最新配置或固件数据重写固件110的逻辑。
控制器190可以有足够的逻辑以拥有当部分120正在执行或被破坏 时的功能表现。根据实施例,控制器190包括独立于固件110执行的逻 辑或固件,所以控制器190即使在部分120被破坏或挂起、处理器140 被暂停(held)或停止、计算系统102的操作系统被挂起、停止或软关 机时、和/或计算系统102被挂起、停止或软关机时也能充分起作用。例 如,当硬件或软件故障导致处理器中止固件、软件或操作系统指令的处 理时,处理器140可能被暂停或停止。因而,控制器190在处理器140 或计算系统102的操作系统被挂起、停止或软关机时能够充分起作用。
此外,控制器190可以有足够的逻辑与固件110通信以接收固件的 有些部分被破坏的指示以及从服务器180获取原始的或最新的固件的请 求。控制器190还可以具有或存储固件或存储器、修正信息、发布日期 等信息。
控制器190、存储器142和/或固件110可以具有获取固件110、计 算系统102的操作系统和/或计算系统102自身的标识信息、修正信息、 发布日期等信息的逻辑、信息和/或机制。例如,计算系统102的标识可 以是计算系统102在特定公司、特定机构或所处位置或大厦中的类似计 算系统之间(例如,其它客户机系统之间)的唯一标识。特别地,控制器 190可以包括与计算系统102的其它部件通信(例如,与处理器140和/ 或固件110通信)以根据计算系统102的标识(例如唯一标识)识别该计算 系统的逻辑。
此外,控制器190可以包括逻辑来通过网络170将对固件的请求以 及计算系统102的标识传递给服务器180、从服务器180接收与那些请 求有关的响应、并且将接收到的响应发送到固件110和/或计算系统102 的其它部件。例如,控制器190可以从部分120接收到一个“核心遭破 坏”消息、请求更新数据消息或者请求更新固件消息。例如,“核心” 可以被定义为固件110或其中的一部分。接着,控制器190可以将“核 心遭破坏”消息、请求更新数据消息或请求固件更新数据消息发送到服 务器180。控制器190随后可以等待并从服务器180接收固件更新数据 并将固件更新数据提供给固件110。此外,控制器190可以包括逻辑, 使控制器190可以重写或为服务器180提供直通(pass-through)接口 以用从服务器180接收到的固件更新数据重写部分120和/或部分130。
另外,计算系统102包括芯片组125。芯片组125可以包括具有执 行这里关于芯片组125所述功能的能力的计算机芯片、数字信号处理器、 固件、电路、计算机硬件和/或其中存储的计算机软件、寄存器、缓冲器、 计算机逻辑、电路,等等。在有些情况下,控制器190可以通过监控 芯片组125而监控处理器140的进度以监控固件110和处理器140之间 的通信。因而,芯片组125允许控制器190监控处理器140对固件110 的访问,并从处理器140返回数据给固件110以检测在计算系统102的 引导期间是否有错误。特别地,芯片组125可以允许控制器190监控固 件110和处理器140之间的通信,使得对固件110的缺省地址的访问启 动系统102的引导,以及返回数据通过芯片组125。
图1还示出了通过通信链路162、182和网络170与计算系统102 相连的服务器180。服务器180可以是计算机“控制台”,例如被信息 技术(IT)管理员监控并控制以控制在某个企业、公司、位置或机构的计 算机固件配置的服务器控制台。例如,IT管理员可以是在服务器180上 工作或能够访问服务器180的人,或者是运行在服务器180上或能够访 问服务器180的自动化应用程序,以提供固件更新给企业、公司、位置 或机构的计算机。服务器180可以具有包括计算系统(例如计算系统102) 的配置数据和固件更新的记忆体储存器数据库。另外,服务器180可以 包括操作系统映像。可以通过检索服务器180中的数据库访问服务器180 的固件更新和操作系统映像.或者,可以由管理员(例如,能够访问服务 器180的人或者运行在服务器180上或能够访问服务器180的自动化应 用程序)从服务器180提供固件更新和操作系统映像,例如信息技术(IT) 管理员手工从服务器180中的数据库选择固件和/或操作系统映像,或者 将固件和/或操作系统映像加载到服务器180以通过网络170进行传播。
在一个实施例中,服务器180可以包括标识信息以及相关支持数据 (例如固件数据、固件更新、固件映像、操作系统映像等)的数据库。适 当的标识信息包括客户机系统标识(例如计算系统102)(例如,在一个机 构的其它客户机系统之间的唯一标识)、操作系统版本、处理器版本、固 件修正信息、固件发布日期等。特别地,服务器180可以查找、定位并 传输对应于从控制器190接收到的客户机系统标识的支持数据(例如,对 于不同的客户机系统标识,固件修正和/或固件发布日期)或提供对支持 数据的访问。在有些情况下,IT管理员可以访问服务器180,以使IT 管理员的动作可以查找、定位和传输支持数据或提供对支持数据的访 问。
图1示出了包括部分120和部分130的固件110。部分120和部分 130可以是固件110的整个固件的全部或一部分。根据实施例,部分120 和部分130可以被总称为“核心系统”固件,部分120是核心系统固件 的部分1或“引导”,部分130是核心系统固件的部分2或“核心”。 例如,部分120可以是由基于硬件的保护和/或基于软件的保护机制进行 擦除保护的固件的第一部分.同样,部分120可以是被进行了擦除保护 以避免被有意或无意擦除的固件110的受擦除保护部分或一小部分,只 有使用特定的硬件机制才能擦除部分120,例如用紫外线照射。根据实 施例,部分120可以代表“烧制”进ROM、EPROM或EEPROM芯片 的一部分中的数据。因而,部分120,即“烧制”的那部分,可以被硬 件机制(例如紫外线照射)“闪光”擦除。
另外,部分120可以包括发现和识别系统平台上(如计算系统102 上)控制器190的存在的逻辑。例如,部分120能够识别系统平台上控制 器190的硬编码定位(hard-coded location)和/或运行时发现(run-time discovery)。此外,部分120可以包括足够的逻辑以发现固件110中被 破坏的固件,例如使用基于校验和的检查、基于签名的检查和/或基于硬 件的检查来确定部分130是否被破坏。此外,部分120可以包括与控制 器190通信的逻辑。因此,部分120可以通知控制器190部分120和/ 或部分130被破坏,或者请求更新。例如,部分120可以从控制器190 请求部分120和/或部分130的原始或最新固件。部分120还可以包括足 够的逻辑以接收响应这些请求的响应、原始固件、更新固件和/或更新数 据,并采取适当的动作,例如用固件或数据更新部分120和/或部分130。
固件110还包括部分130,例如可擦除的固件部分。根据实施例, 部分130可以代表写入或存储到存储器、ROM、EPROM或EEPROM 芯片的一部分中的数据。例如,部分130可以被写入或编程到部分120 被编程进的ROM芯片的第二部分中,但部分130没有部分120的硬件 或软件擦除保护。因而,部分130可以被软件机制擦除或重写。部分130 在数据量上可以比部分120大得多。部分130可以设计用于部分120引 起的或来自部分120的擦除、更新或恢复。部分120和部分130可以包 括计算系统102的配置数据。例如,该配置数据可以包括计算系统102 的设备或与其相连的设备(例如键盘/鼠标接口152和监视器接口154)的 配置。预期来自固件110的数据可以用来加载计算系统102的配置寄存 器,例如定义上述设备的运行参数。
因此,根据实施例,计算环境100允许固件110在挂起、被破坏时 或在特定时间被更新,不管计算系统102的操作系统是否正常工作。例 如,固件110可以是驻留在计算系统102上的客户机系统固件(CSF), 客户机系统上的CSF具有内置逻辑以发现CSF是否被破坏,还具有“自 治愈”或更新遭破坏的CSF的能力。
某种情况下,控制器190可以是智能连网控制器(INC),例如具有 支持对遭破坏的固件进行检测并将计算系统102带到能够(如通过网络 170)与服务器180交互状态的逻辑的控制器。这个逻辑允许控制器190 获取原始的或最新的固件(例如,包含提供计算系统102的固件功能和/ 或设备配置信息的软件或编程的代码、数据或映像)以初始写、更新、修 复、自治愈、恢复和自更新固件110的所有或部分(例如部分120和/或 部分130)。
同样,部分120可以是包含足够的逻辑功能以将计算系统102带到 部分120能够与控制器190和服务器180(如,通过网络170)交互的状态 的CSF的一色或部分。这里,该逻辑允许部分120获取原始的或最新 的固件以初始写、更新、修复、自治愈、恢复和自更新固件110的部分 (如部分130)。可以配置或内置部分120的擦除保护以暂停允许部分130 的恢复(例如,使用控制器190和服务器180)的逻辑。
相应地,部分130可以是包含计算系统102的部件或设备的配置数 据的CSF的非安全角色或部分。例如,部分130可以是不像部分120那 么安全的固件的主要部分,因为部分130没有内置与部分120类似的硬 件或软件机制以保护部分130不被擦除。因而,部分130更灵活地允许 对部分130的故意擦除或字段更新。但应该理解这个相同的灵活性使得 部分130易受意外擦除。因而,如果部分130被意外擦除,部分120可 以提供部分130的恢复。
服务器180可以是客户机系统(如计算系统102)可以用之通信以获 取适当的固件和/或操作系统映像的控制台。可以通过检索服务器180 上存储的数据库自动从服务器180选择固件和/或操作系统映像。或者, IT(信息技术)管理员可以通过从服务器180上的数据库选择正确的固件 和/或操作系统映像并控制所选择的固件和/或操作系统映像通过网络 170与计算系统102的通信,而手动选择固件和/或操作系统映像。
图2是通过网络更新固件的过程200的流程图。在块202系统被引 导或重置。例如,块202可以对应于打开、重置、初始化一个计算系统 (如计算系统102)或启动其电源。接着,在块203,控制器被启动或初始 化,与系统继续引导、初始化、运行固件、运行操作系统或处理的能力 无关。例如,块203可以对应于控制器190,控制器190正在被启动以 初始化和配置自己从而运行固件,随后不管固件110、部分120和/或部 分130遭破坏或被挂起仍然运行固件。同样,控制器190可以执行上述 功能而不管处理器140是否被停止或暂停;不管计算系统102的操作系 统是否被停止、挂起或软关机;也不管计算系统102是否被停止、挂起 或软关机.
在块205,控制器(如控制器190)被通知客户机系统启动,例如计算 系统102的启动。块205可以包括发送预定信号给控制器以表明计算系 统102的引导是否已经被启动(如,在计算系统102的电源被打开后或计 算系统102被“重置”后)的通过硬件机制(例如,通过硬件或电路)的 通知。另外,可以用软件机制通知控制器190计算系统的启动,例如向 控制器190发送预定的通信消息以表示计算系统102的引导.考虑该通 知可以包括通过硬件接口发送预定的通知信号或通过固件110和控制器 190之间的通信接口发送预定的软件消息。
在块210,监控系统以确定固件是否被破坏。例如,控制器190可 以包括内置在控制器190的固件中的方法或逻辑以监控、确定或发现部 分120是否被破坏。在有些实施例中,控制器190可以使用硬件芯片组 监控计算系统102的引导、初始化和/或固件执行的进度。尤其,控制器 190可以监控引导或初始化期间部分120的执行以确定部分120是否被 破坏或挂起。有些情况下,控制器190可以通过监控处理器140和固件 110之间的芯片组而监控处理器140的进度。当计算系统102引导时, 处理器140可以访问固件110中的缺省地址(例如部分120中的一个地址) 并根据引导是否成功(例如,通过监控处理器140在引导期间的预期响应 或通过处理器140的处理)将数据返回给固件110。参考图1,依照实施 例,在计算系统102中可以包括芯片组125以允许控制器190监控固件 110和处理器140之间的通信,以使对该缺省地址的访问和返回数据通 过(go through)芯片组125。如果在引导期间出现了错误,处理器就 发送一个错误消息(例如“FF”)作为返回数据给固件110。同样,来自 处理器140的错误或其它消息(例如,来自处理器的要与预期响应值比较 的响应)可以向控制器190表明内核被破坏、固件110或其中的一部分被 破坏、或者固件或处理器被挂起。特别地,控制器190在引导期间或引 导之后可以监控芯片组125以检测由处理器返回的表示成功引导的有效 数据;或者检测表明引导失败、“内核破坏”、固件破坏或处理器挂起 的错误消息。此外,控制器190可以使用计算系统102的客户机硬件(例 如一个芯片组)、控制器190的固件或两者以监控客户机系统进度。
在块215,确定固件是否被破坏或挂起。例如,在块215,控制器 190可以确定部分120是否被破坏,例如被擦除、有“bug”或者固件的 功能或过程中有错误.判定块215可以包括根据上述针对块210的监控 说明进行确定。例如,块215可以对应于控制器190监控客户机芯片组 (例如,图1中的芯片组125)以根据部分120或其中的配置数据将处理器 140、操作系统、启动、初始化的进度和它们的预期响应进行比较。如 果预期响应与芯片组中检测到的进度不一致,部分120可以被看作是已 被破坏。
此外,块215可以包括监控计算系统102的启动或初始化过程是否 被挂起.特别地,如果控制器190通过计算系统102的硬件判定部分120 被挂起(例如,在计算设备102的引导或重置中部分120的执行期间), 那么部分120可以被看作是被挂起。
如果在块215控制器190判定部分120被破坏或挂起,处理继续到 块220。在块220,控制器190可以使用逻辑、硬件和/或软件机制暂停、 停止或暂停客户机系统处理器(例如,使该处理器被“暂停”)。这里, 控制器190可以使系统处理器(例如处理器140、客户机系统的系统处理 器或中央处理单元CPU)中止固件、软件或操作系统指令的处理。依照 实施例,控制器190还可以使计算系统102的操作系统停止、挂起、或 进入软关机状态。
如果在块215控制器190判定部分120没有被破坏或挂起,处理继 续到块225。在块225,固件和操作系统被允许执行。例如,块225可 以对应于控制器190允许部分120继续或完成在计算系统102的启动或 初始化期间的执行。在块225之后,计算设备102可以被允许根据操作 系统运行计算过程,例如通过将控制转让给操作系统。另外,依照实施 例,在块225之后,计算设备102可以被允许运行固件110的部分130(以 在将控制转让给操作系统之前完成固件110的运行)。例如,如图2中所 示,在“A”,过程200可以如图3所示在“A”继续,例如,在图3 中所示并针对其进行说明的块310上继续。
在块230,控制器访问它的本地数据库以访问它的客户机系统专有 信息,例如计算系统102的唯一标识。在块240,控制器190使用系统 标识信息在网络上向服务器请求更新数据。例如,控制器190可以发送 一个包括系统标识的请求更新固件消息或“核心被破坏”消息给服务器 180。特别地,控制器190可以通过网络170将一个包括客户机系统标 识和问题标识(如部分120遭破坏的表示和/或对最新数据或固件的请求) 的预定消息发送给服务器180(例如通过网络接口160、通信链路162和 182以及网络170发送给运行在服务器180上的控制台应用程序).
在块245确定是否存在更新数据。例如,服务器180可以从控制器 190接收对最新固件数据的请求或者“核心遭破坏”消息,并检索服务 器180中的数据库以确定控制器190发送消息中的系统标识所标识系统 的固件映像是否存在。更特别地,在块245,服务器180或者在它的本 地数据库中查找固件映像,或者发送消息给IT管理员以获取所标识的 客户机系统(如计算系统102)的固件映像。如果服务器180在特定时间内 找到了所标识的客户机的固件映像,它可以使用诸如安全通信、加密数 据和/或网络分组在网络170上将一个“成功”状态消息和该固件映像 发送给计算系统102。另一方面,如果服务器180没有为所标识的客户 机系统定位合适的固件映像,服务器180用以上为“成功”状态消息所 述的类似机制将一个“失败”状态消息发送给计算系统102。在一种情 况下,服务器180可以超时查找所标识的客户机系统的合适固件映像的 所选搜索时间(例如,如果服务器180的数据库中没有该客户机系统标识 或其固件)。另一种情况,服务器180可以超时等待IT管理员的响应, 以为所标识的客户机系统提供合适的固件映像。
另外,在块245,控制器可以轮询硬件以确定是否已经从服务器接 收到响应。例如,控制器190可以通过网络170轮询计算系统102的硬 件(如网络接口160)以确定服务器180是否已经提供了对固件更新数据 请求的响应。在轮询期间,如果在特定的“超时”时间段内没有提供响 应,处理可以继续到块248。
此时,运行在计算系统102中的控制器190监控网络接口160或服 务器180的响应并依据响应采取适当动作。在块245,如果不存在更新 数据或者轮询超时,处理继续到块248,在那里向用户通知系统固件错 误。例如,如果控制器190从服务器180接收到一个失败状态消息,控 制器190可以使用户可理解的消息向用户宣告用户计算系统102处在不 可恢复的系统故障错误状态。例如,控制器可以使与计算系统102相连 的监视器显示一个表示错误状态的消息,或者使计算系统102输出表示 有错误存在的“嘀嘀”序列,或者将错误通知给用户。
或者,在块245,如果更新数据存在并且在轮询超时之前被发送给 控制器,轮询处理继续到块250。在块250,更新数据被通过网络返回 给控制器。这里,如上面为块245所述,服务器180将一个“成功”状 态消息和固件映像发送给计算系统102,诸如使用网络170上的安全通 信、加密数据和/或网络分组。
在块260,更新数据被控制器通过网络从服务器接收到。例如,控 制器190可能通过网络170从服务器180接收到一个“成功”状态消息 和固件更新数据。固件更新数据可以包括初始固件、固件更新数据或部 分120的固件更新映像。
接着,在块270,用该更新数据更新固件。例如,如果控制器190 从服务器180接收到一个成功的状态消息,控制器190可以用随该成功 状态消息接收到的固件更新数据编程或覆盖部分120。
在块280,固件110被恢复,控制器190消除操作系统、计算系统 102或处理器140上的任何停止或暂停。因而,在任何停止或暂停被消 除之后,可以重置系统(如计算系统102)。例如,块280可以返回到过程 200的块202以用更新后的、无破坏的、合适的部分120重新引导计算 设备102。
此外,依照实施例,部分120可以监控部分130以确定部分130是 否被破坏。部分120监控部分130的过程可以独立发生或在不包括控制 器190监控部分120的系统中。但是,在这样的系统中,控制器190仍 然需要向服务器180请求并从其接收部分130的固件更新数据。相反, 部分120监控部分130的过程可以是包括控制器190监控部分120的上 述说明的实施例,例如在那里在控制器190监控部分120之后部分120 监控部分130。
例如,图3是通过网络更新固件的过程300的流程图。在块302, 系统被引导或重置。例如,块302可以对应于上面对块202的说明。接 着,在块303,控制器被启动或初始化,独立于系统继续引导、初始化、 运行固件以及运行操作系统或处理的能力。例如,块303可以对应于上 面为块203所做的说明。在块305,控制器(例如控制器190)被通知客户 机系统的启动,例如计算系统102的启动。例如,块305可以对应于上 面为块205所做的说明。
在块310,监控系统以确定固件是否遭到破坏。例如,部分120可 以包括内置到部分120的固件中的方法或逻辑以监控、确定或发现部分 130是否遭到破坏。
如上所述,还预期过程300的块310可以发生在图2中所示块225 之后。因而,在过程200如图2中所示使用部分120提供了合适的引导 之后,可以从块310执行过程300以确定部分130是否被破坏。
例如,在块310,部分120可以监控处理器140、运行在计算系统 102上的操作系统、上述客户机芯片组(如图1的芯片组125)或其它硬件 以确定部分130是否被破坏。此外,在块310,部分120可以执行基于 校验和的检验、基于签名的检验和/或基于硬件的检验以确定部分130 是否被破坏。块310还可以包括如上面为块210所述那样由控制器190 监控芯片组125和/或监控计算系统102的操作系统以确定或检测部分 130是否被破坏。
在块315,确定固件是否被破坏或挂起.例如,在块315,部分120 可以判定部分130是否被破坏,例如被擦除、有“bug”或固件的功能 或过程中有错误。判定块315可以包括根据上述关于块310的监控说明 进行确定。例如,块315可以对应于部分120或控制器190监控客户机 芯片组(如图1中的芯片组125),以根据部分130或其中的配置数据将处 理器140、操作系统、启动、初始化和它们的期望响应进行比较。如果 期望响应与芯片组中检测到的进度(例如,通过包括错误或“FF”消息) 一致,部分130可以被看作是已遭破坏。
此外,块315可以包括确定处理器140是否被暂停或停止、确定计 算系统102的启动或初始化过程是否被挂起、确定运行在计算系统102 上的操作系统是否被停止、挂起或软关机、和/或确定计算系统102的固 件(如固件110)是否被破坏或挂起。例如,块315可以对应于部分120 执行或监控对部分130的基于校验和的检验、基于签名的检验或基于硬 件的检验。
如果在块315判定部分130没有被破坏,处理继续到块325。在块 325,固件和操作系统被允许执行.例如,块325可以对应于部分120 和控制器190允许部分130继续或完成计算系统120的启动或初始化期 间的执行.因而,块225可以对应于计算设备102被允许根据操作系统 运行计算过程,例如将控制转让给操作系统.另外,依照实施例,在块 225之后,计算设备102可以被允许检查自动更新(例如安排在特定时间 上的或定时的更新)以更新固件110、部分120和/或部分130。例如,在 “B”,如图3所示,过程200可以如图4所示在“B”上继续(例如, 在如图4所示并关于图4说明的块415上继续)。
或者,在块315,如果判定部分130被破坏,处理继续到块318。 在块318,初始化与控制器通信的硬件。例如,如果部分120判定部分 130被破坏,部分120可以使用硬编码的系统参数初始化配置控制器190 并与之通信所必须的最小硬件集合。部分120随后发送一个预定消息给 控制器190,带有标识部分130被破坏的参数.同样,部分120可以发 送一个预定消息到控制器190,带有请求部分120和/或130的更新或恢 复的参数。部分120然后在上述由硬编码的系统参数初始化的硬件上轮 询来自控制器190的响应。
在块318之后,过程300继续到块330,在那里客户机系统标识被 访问.块330可以对应于控制器190访问客户机系统(如计算系统102) 的标识。例如,块330可以对应于上述块230。
在块330之后,处理继续到块340,在那里通过网络请求更新固件 数据。例如,控制器190可以在网络170上用上面为块240所述的消息 和系统标识信息,向服务器180请求部分120和/或130的更新数据。另 外,在块340发送的系统标识信息可以包括为固件110的部分120和/ 或130请求的固件的标识。
在块340之后,处理继续到块345,在那里确定更新数据是否存在。 块345可以对应于上述块245。例如,服务器180可能没有找到与所提 供的系统标识对应的合适的更新固件数据,或者控制器190轮询硬件超 时。
同时,运行在计算系统102中的控制器190监控为响应网络接口160 或服务器180,并根据该响应采取适当动作。在判定块345,如果更新 不存在,处理继续到块348,在那里向用户通知系统固件错误,如为块 248所述。另外,在块348,控制器190向部分120发送表示没有获得部 分130的固件的错误响应。因此,部分120可以接收到自控制器190发 出的失败状态消息,并通知用户,例如通过显示器、嘀嘀声或其它计算 系统102可用的方法。
在块345,如果更新数据存在,处理继续到块350,在那里更新数 据被通过网络返回给控制器。块350可以对应于以上对块250的描述。 处理然后在块360上继续,在那里控制器通过网络从服务器接收到更新 数据。
在块360,控制器通过网络从服务器接收到更新数据。例如,控制 器190可以通过网络170从服务器180接收到一个“成功”状态消息和 固件更新数据。该固件更新数据可以包括原始固件、固件更新数据、部 分120和/或130的固件更新映像。特别地,控制器190可以从服务器 180下载部分120和/或130的更新数据,并且将该更新数据复制到系统 存储器(如存储器142)中并发送一个成功状态消息给部分120。或者,控 制器190可以准备一个控制台或服务器直通接口以将更新数据直接下载 到部分120和/或130(例如通过用更新数据直接覆盖部分120和/或130 中的当前数据)并发送成功状态消息给部分120.
接着,在块370,用该更新数据更新固件。例如,如果控制器190 从服务器180接收到一个成功状态消息,控制器190可以用和该成功状 态消息一起接收到的固件更新数据编程或覆盖部分120和/或130。此外, 如果部分120接收到一个成功状态消息,部分120可以读取存储器(如存 储器142)中存储的更新数据或者可以从上述直通接口考虑或读取数据, 以将更新数据编程、写入或覆盖到部分120和/或130中。
在块380,固件110被恢复并且控制器190和/或部分120重置客户 机系统。例如,部分120可以用系统专有的过程重置计算系统102。例 如,块380可以返回过程300的块302以用最新的、可靠的、合适的部 分130重新引导计算设备102。
因而,认为块230、240、245、248、250、260和270可以只应用 于访问、请求、查询、返回、接收和更新部分130,例如由部分130控 制在这些块中所采取的写或更新部分130的动作。或者,那些块可以应 用于部分120和部分130,例如由控制器190在相同的动作集中控制那 些动作来写或更新部分120和130。
另外,依照实施例,固件110可以被自动更新,例如通过检验并从 服务器180接收更新而被在特定的时间或定时地更新(如更新部分120 和/或130)。自动更新固件110的过程可以独立发生或发生在不包括控制 器190监控部分120和/或部分120监控部分130的系统中。但是,在这 样的系统中,控制器190仍然需要向服务器180请求并从其接收固件110 的更新数据。相反,具有自动更新固件110的过程可以是包括控制器190 监控部分120和/或部分120监控部分130的上述说明的实施例。
例如,图4是通过网络自动更新固件的过程400的流程图。在块402, 系统被引导或重置。例如,块402可以对应于对块202的上述说明。接 着,在块403,控制器被启动或初始化,独立于系统的能力以继续引导、 初始化、运行固件、运行操作系统或处理。例如,块403可以对应于对 块203的上述说明。在块405,控制器(如控制器190)被通知客户机系统 起动,例如计算系统102的启动。例如,块405可以对应于对块205的 上述说明。
在块415,监控系统以判定是否是自动更新固件110的全部或一部 分的时间.依照实施例,控制器190或部分120可以包括监控时钟信号 以确定是否是所选时间或自从上次自动更新或尝试已经过去的所选时 间段的逻辑。因而,块415可能出现而不管计算系统102的引导、处理 器140、操作系统被或不被停止、阻塞、挂起或软关机。如果所选时间 或时间段已经过去,现在就是自动更新部分120和/或部分130的时间。
如上所述,还预期过程400的块415可以发生在图3所示块325之 后。因而,在过程300如图3中所示用部分130提供了适当的引导之后, 可以执行从块415开始的过程400,以确定是否需要自动更新。
在块415,如果不是自动更新固件的时间,处理继续到块425。在 块425固件和操作系统被允许执行。例如,块425可以对应于固件110 和控制器190允许计算系统102的启动或初始化继续。块425还可以对 应于计算设备102的操作系统正在运行时,因而可以允许计算设备102 继续根据操作系统运行计算过程。
或者,在块415,如果是自动更新固件的时间,处理继续到块418。 在块418,初始化与控制器通信的硬件。例如,如果是自动更新的时间, 部分120可以使用硬编码的系统参数初始化配置控制器190并与之通信 所必需的最小硬件集合。部分120随后发送一个预定消息给控制器190, 带有标识到了自动更新部分120和/或部分130的时间的参数。
或者,部分120可以发送一个表示部分130被破坏和/或请求更新或 恢复部分130的消息给控制器190。这种情况下,块418可以对应于对 块318的上述说明.部分120然后在如上所述由硬编码的系统参数初始 化的硬件上轮询来自控制器190的响应.例如,部分120可以监控网络 接口160或控制器190,例如通过(经由网络接口160)轮询计算系统102 的硬件以确定服务器180是否已经响应。
在块418之后,过程400继续到块430,在那里访问客户机系统标 识。块430可以对应于控制器190访问客户机系统的标识(如计算系统 102)和/或要自动更新的固件。例如,块430可以对应于上述块230或块 330。此外,在块430,如果到了自动更新的时间,控制器190可以访问 它的本地数据库以查找客户机系统标识以及固件110的修正信息、发布 日期等。
在块440,控制器190使用系统标识信息通过网络向服务器请求更 新数据。例如,控制器190可以发送一个包括系统标识的自动更新消息、 请求固件更新消息或“核心遭破坏”消息给服务器180。
特别地,控制器190可以向服务器180发送一个包括客户机系统 标识以及修正信息、发布日期(例如部分120和/或部分130的修正信息、 发布日期等)等的预定消息。从控制器190到服务器180的消息的传递可 以对应于对块240的说明。
因此,在块445,服务器180将从控制器190接收到的消息解释为 自动更新请求,并在服务器180的数据库中查找比来自控制器190的消 息中提供的修正信息、发布日期等更新或更晚的修正。或者,在块445, 服务器180可以发送一个消息给IT管理员以请求该客户机系统的映像。
同时,运行在计算系统102中的控制器190为响应监控网络接口160 或服务器180并根据该响应采取适当的动作。检索数据库、轮询并确定 更新数据在服务器180是否存在可以对应于对块345的说明。例如,在 判定块445,如果部分120的轮询判定控制器190在选择的超时时间段 之前没有接收到来自服务器180的消息,处理继续到块448,在那里固 件110向用户发送一个表示“网络不可用”(例如网络170)的消息,例如 通过从计算系统102所显示的消息。
另外,在判定块445,如果更新不存在,例如服务器在所选超时时 间段之前没有在服务器上找到匹配,服务器180向控制器190发送一个 表示“无自动更新可用”的消息。然后,过程400继续到块448,在那 里处理器190使用户被通知“无自动更新可用”,例如通过从计算系统 102显示的消息。
此外,在块448,控制器190可以发送“无自动更新可用”消息给 固件110。在固件110接收到“无自动更新可用”消息后,固件110可 以使用户获得“网络不可用”消息的通知,例如通过从计算系统102显 示的消息。在块448,在固件110接收到“无自动更新可用”或“网络 不可用”消息后,固件110可以允许计算系统102继续引导、启动、初 始化或运行操作系统,因为过程400是用于自动更新(例如假定固件没有 被破坏或挂起)。
在块445,如果更新数据存在,处理继续到块450,在那里更新数 据被通过网络返回控制器。块450可以对应于前面对块250的说明。例 如,在块450,服务器180可以使用诸如安全服务器会话、加密数据和/ 或网络分组返回一个“成功”状态消息以及计算系统102的固件映像的 适当后来的修正。处理随后继续到块460,在那里控制器通过网络从服 务器接收到更新数据。
在块460,控制器通过网络从服务器接收到更新数据。例如,控制 器190可能通过网络170从服务器180接收到一个“成功”状态消息和 固件更新数据。该固件更新数据可以包含初始固件、固件更新数据、或 固件110的全部或部分的固件更新映像。特别地,控制器190可以从服 务器180下载固件110的更新数据并将该更新数据复制到系统存储器(如 存储器142)中并发送一个成功状态消息给部分120。或者,控制器190 可以准备一个控制台或服务器直通接口以将该更新数据直接下载到固 件110(如通过用更新数据覆盖固件110中的当前数据)并发送一个成功 状态消息给部分120。
接着,在块470,用该更新数据更新固件.例如,如果控制器190 从服务器180接收到一个成功状态消息,控制器190可以用和该成功状 态消息一起接收到的固件更新数据编程或覆盖固件110(如部分120和部 分130)。此外,如果部分120接收到一个成功状态消息,部分120可以 读取存储器(如存储器142)中存储的更新固件数据或者从上述直通接口 考虑或读取更新数据以用该更新固件数据编程、写或覆盖固件110。这 里,轮询硬件以获取响应的部分120,将从系统存储器(如存储器142) 或通过服务器直通接口接收到该成功状态消息和更新或更晚修正的固 件映像,以写或允许更新部分130。
在块480,更新固件110并且控制器190和/或部分固件110重置客 户机系统。例如,部分120可以用系统专有的过程重置计算系统102. 还预期块480可以返回过程400的块402,以用自动更新后的固件110 重新引导计算设备102.
在前面的说明书中,描述了具体的实施例。但是,在不偏离如权利 要求中所阐述的实施例的广义的精神和范围的前提下,可以进行各种改 进和变化。因此,说明书和附图将被看作是说明性而非限制性的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈