会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 固件 / 动态固件更新

动态固件更新

阅读:505发布:2021-02-27

IPRDB可以提供动态固件更新专利检索,专利查询,专利分析的服务。并且动态固件更新过程包括在固件存储器中找到动态数据对象的经更新的版本。标识用于被消费者使用中的动态数据对象的使用中版本的回叫句柄。使用回叫句柄通知消费者动态数据对象的经更新的版本。,下面是动态固件更新专利的具体信息内容。

1.一种计算机实现的动态固件更新过程,包括:在固件存储器中找到动态数据对象的经更新的版本;

标识用于被消费者使用中的动态数据对象的使用中版本的回叫句柄;以及使用回叫句柄,通知消费者动态数据对象的经更新的版本。

2.如权利要求1中所述的过程,还包括:在找到之前,将固件动态数据对象的经更新的版本写入到固件存储器而不盖写动态数据对象的任何之前版本。

3.如权利要求2中所述的过程,其中通知跟随在写入之后而没有介于中间的重启。

4.如权利要求2中所述的过程,其中找到通过表示在固件中的数据管理器执行,并且所述写入经更新的版本由更新实用程序执行。

5.如权利要求1中所述的过程,还包括:

在通知之后,从消费者接收针对动态数据对象的请求;

响应于请求,写入与动态数据对象的经更新的版本相关联的用于消费者的回叫句柄;

以及

响应于请求,向消费者提供经更新的数据对象。

6.如权利要求5中所述的过程,还包括

从消费者接收针对固件存储器中的第二数据对象的请求;

确定针对第二数据对象的属性指示第二数据对象是静态的还是动态的;以及如果并且仅如果属性指示第二数据对象是动态的,在固件存储器中搜索第二数据对象的其它版本。

7.一种包括编码有限定数据管理器和固件的代码的非暂时性存储介质的系统,固件包括包含相应数据-对象版本连同相关联的数据-对象标识符(ID)和数据-对象版本ID的数据卷,数据管理器由处理器可执行以:响应于来自消费者的针对动态数据对象的请求,使用用于数据对象的数据-对象ID和用于动态数据对象的不同版本的数据-对象版本ID来标识动态数据对象的最新版本;

与动态数据对象的最新版本相关联地存储用于消费者的回叫句柄;以及向消费者提供动态数据对象的最新版本,使得动态数据对象成为使用中动态数据对象。

8.如权利要求7中所述的系统,还包括处理器。

9.如权利要求7中所述的系统,其中数据管理器还可执行以:在提供之后,找到使用中动态数据对象的经更新的版本;

标识与使用中动态数据对象相关联的回叫句柄;以及使用回叫句柄,通知消费者经更新的版本的存在。

10.如权利要求7中所述的系统,其中一些数据对象是静态数据对象,针对其的更新可以仅在重启之后付诸使用,随后将经更新的静态数据对象写入到固件的数据卷,所述卷包括指示数据对象是静态的还是动态的用于每一个数据对象版本的属性。

11.如权利要求7中所述的系统,其中代码还限定固件更新实用程序以准备将数据对象的经更新的版本包括到固件中的新的数据-对象卷,使得其成为该数据对象的最新版本,卷指定用于数据对象的数据-对象ID、数据-对象版本ID和静态相对动态属性,新的数据-对象卷包括用于录入用于消费者的回叫句柄的字段。

12.如权利要求11中所述的系统,其中代码还限定更新处置器,固件更新实用程序还将标志设置成指示已经将更新写入到固件并且触发更新处置器,其响应于所述触发而通知数据管理器更新。

13.一种计算机实现的过程,包括:

找到数据对象的经更新的版本;

标识用于数据对象的使用中版本的回叫句柄;以及使用回叫句柄,通知数据对象的消费者数据对象的经更新的版本的存在。

14.一种计算机实现的过程,包括:

从消费者接收针对数据对象的请求;

在固件存储器中标识数据对象的多个版本中的最新版本;

与数据对象的标识相关联地存储用于消费者的回叫句柄;以及向消费者提供最新版本。

15.如权利要求14中所述的过程,还包括:将数据对象的最新版本写入到固件存储器;以及响应于写入,通知消费者更新。

说明书全文

动态固件更新

背景技术

[0001] 现代计算机和基于计算机的系统典型地包括平台固件,即存储在非易失性“固件”存储器中并且用于初始化基于计算机的系统和用于基于计算机的系统的低级别功能性的代码(表示指令和非指令类型数据)。典型地,将固件代码加载到相对快速的易失性存储器中以供使用。
[0002] 有时合期望的是更新固件,例如以修复固件故障、添加特征或微调系统参数。在较陈旧的计算机系统中,更新固件可以牵涉换出编码有固件的一个固件只读存储器(ROM)以被编码有经更新的固件的另一个取代。最近,固件存储在可重写非易失性存储器中使得固件更新可以就地更新。一旦系统被再初始化(即重启),则这样的更新可以生效。

附图说明

[0003] 以下附图表示示例并且不是本发明本身。
[0004] 图1是依照示例的系统的示意图。
[0005] 图2是可实现在图1的系统上并且依照示例的数据-对象请求处置过程的流程图。
[0006] 图3是可实现在图1的系统上并且依照示例的固件-更新过程的流程图。
[0007] 图4是依照示例的另一系统的示意图。
[0008] 图5是可实现在图4的系统上并且依照示例的固件-更新过程的流程图。

具体实施方式

[0009] 在关键任务上下文中(例如网络支持的医疗警报和其它紧急服务、金融交易和在线零售,其中计算机被预期为“高度可用”),重启系统以完成固件的安装可以是昂贵的。本文的示例允许一些固件更新在不重启的情况下实现。这不仅节约与重启相关联的成本,而且鼓励固件更新的更广泛使用,例如通过动态微调固件参数来增强性能。在本文中,固件更新是“动态”的,如果它们可以在不重启的情况下实现(即付诸使用,与仅仅被写入相对)。
[0010] 图1中所示的示例系统100包括编码有代码104的存储介质102。代码104包括固件112和数据管理器114(其取决于变型,可以或可以不在固件中)。固件112的数据布置在动态数据卷中,例如卷116和118。每一个数据卷包括数据-对象元数据以指定:数据-对象标识符(ID)120、数据-对象版本ID 122和数据对象126。数据管理器114管理来自消费者(例如软件实体)的针对固件数据对象的请求128。数据管理器保持追踪哪些消费者正在使用与消费者回叫句柄134相关联地存储数据对象ID 134的数据结构130中的哪些数据对象。
[0011] 数据管理器114实现在图2中示出流程图的数据-对象请求处置过程200。在201处,从消费者接收针对数据对象的请求。在202处,标识所请求的数据对象的最新版本。在203处,与所请求的数据对象的身份相关联地存储针对消费者的回叫句柄。在204处,向消费者提供所请求的数据对象的最新版本使得其成为数据对象的“使用中”版本。过程200可以通过其它实体实现,并且数据管理器114可以实现其它过程,如以下进一步论述的。
[0012] 数据管理器114可以实现在图3中示出流程图的数据-对象更新过程300。在301处,找到数据-对象版本的经更新的版本。在302处,标识数据对象的消费者的回叫句柄。在303处,使用回叫句柄,通知数据对象的消费者该更新。
[0013] 一旦被通知更新,消费者可以立即或在稍后的时间处请求经更新的对象。例如,如果请求和使用经更新的数据对象将会导致正在进行的过程中的冲突或其它问题,则消费者可以等待更合时宜的时间来更新其数据对象的副本。在任何事件中,可以以避免任何相干性问题并且不要求重启(其可能干扰针对高度可用的计算机系统的服务水平目标)的方式管理动态数据固件更新。
[0014] 如在下一示例中所示,数据卷可以存储除针对系统100示出的之外的数据-对象元数据。例如,数据卷可以包括可以用于确保更新来自经授权的源并且不是错误或恶意的结果的安全密钥。
[0015] 计算机系统400包括处理器402、通信设备404和非暂时性存储介质406。介质406编码有代码408。代码408包括固件410、消费者412、固件更新实用程序414和更新标志416。在另一示例中,标志416实现在硬件中。固件410包括数据管理器420、更新处置器422和数据卷430,包括数据卷432、434和436。
[0016] 每一个数据卷430是数据-卷数据结构及其内容的组合。内容包括数据-对象ID、数据-对象属性、数据-对象版本ID、安全密钥、其它元数据和数据-对象。数据-对象ID可以是全局唯一标识符(GUID)。数据-对象属性指定给定数据对象是动态数据对象还是静态数据对象。可以在不重启的情况下实现针对动态数据对象的改变,而实现经改变的静态数据对象要求重启。“其它元数据”可以包括可以用于确定数据卷的边界或数据对象值位于哪里的位置或对象大小信息。此外,“其它元数据”可以包括表征对数据管理器420或消费者412有用的数据对象的其它信息。
[0017] 数据卷432包括数据-对象ID 440、属性442、版本ID 444、有效标志445、安全密钥446、其它元数据447和数据-对象448。属性442被设置成“静态”,因此对具有数据-对象ID 440的数据-对象的改变(其将通过另一数据卷表示)将仅发生在系统400的重启之后。版本ID 444是最新的版本,在这种情况下是数据卷430之中表示的数据-对象的最晚版本。数据对象448是响应于请求提供给消费者412的数据对象。
[0018] 数据卷434包括数据-对象ID 450、属性452、版本ID 454、有效标志455、安全密钥456、其它元数据457和数据-对象458。在该情况中,属性452被设置成“动态”,这指示数据对象(值)的改变可以在不重启的情况下实现。可以是诸如“4.2”之类的数字值的版本ID碰巧对应于针对具有ID 450的数据对象的使用中版本,因为其当前被消费者412使用中。
[0019] 然而,虽然使用中数据对象458在其被消费者412请求时是最新的版本,但是它在图4中表示的时间处不是最新的版本。这是因为自从消费者412请求数据对象458之后较新的版本已经被写入到固件410。该较新的经更新的版本表示在数据卷436中。
[0020] 数据卷436包括数据对象ID 460、属性462、版本ID 464、有效标志465、安全密钥466、其它元数据467和数据-对象468。数据对象468是数据对象458的经更新的版本。
因此,数据-对象ID 460等于数据-对象ID 450,并且版本ID 464(例如版本4.3)对应于比版本ID 454(例如版本4.2)更晚的版本。对象的不同版本的属性一般相同,因此属性
452和462相同,二者都设置在“动态”处。然而,在一些情况中,更新改变用于数据对象的属性。
[0021] 数据管理器420保持追踪哪些消费者正在使用哪些数据对象。为此目的,数据管理器420包括数据结构,例如回叫表470,其将消费者回叫句柄472与用于当前被消费者使用中的每一个数据对象的数据-对象身份474和用于使用中的数据对象的数据-对象版本ID相关联。例如,在图4中表示的时间中,用于数据对象458的对象身份将与回叫表470中的消费者回叫句柄相关联。
[0022] 系统400提供用于图5中示出流程图的固件-更新过程500的实现。过程500包括请求段510和更新段520。请求段510包括动作511,其中数据管理器从消费者接收针对数据对象的请求。请求可以指定用于对象的GUID或其它标识符。
[0023] 在512处,数据管理器搜索数据卷以用于所请求的数据对象的适当版本从而满足请求。在513处,数据管理器找到数据对象的适当版本。在所图示的过程500中,适当版本是最新的有效版本。不搜索如由其相应有效标志指示的无效版本。最新性可以通过比较所请求的数据对象的找到的有效版本的版本号来确定。
[0024] 紧接在数据-对象更新之后,经更新的版本可以不同于由消费者使用中的任何版本。如果另一消费者请求其最新版本不同于使用中版本的数据对象,为了一致性而可能合期望的是利用使用中版本而不是最新版本来满足请求。在这样的示例和场景中,使用中版本为利用其满足请求的“适当”版本。在过程500的所图示的变型中,数据对象的经更新的版本不被标记为“有效”,直到数据管理器已经被告知经更新的版本。因此,数据管理器可以在利用经更新(即最新)的版本满足针对其的任何附加请求之前收回所请求的数据对象的使用中版本。
[0025] 在514处,数据管理器检查用于数据对象的适当版本的“静态”相对“动态”属性。在515处,如果并且仅如果(当且仅当)属性为“动态”时,数据管理器将回叫句柄与数据-对象身份和数据-对象版本身份相关联,例如在回叫表470中。如果属性为“静态”,不在回叫表中做出条目。在516处,数据管理器通过向请求数据对象的消费者提供数据对象的适当版本来满足请求。
[0026] 过程500的更新段520包括,在521处,更新工具将经更新的数据对象写入到固件的未被使用的区域处的新卷。当数据对象被更新时,将经更新的版本写入到固件的空区域并且不删除之前的版本。然而,更新实用程序可以提供较陈旧的版本的“清空”,一旦其确认它们将不会被还原或以其它方式被使用。在过程500的所图示的变型中,用于经更新的版本的有效标志最初被设置成“无效”。
[0027] 在522处,通知数据管理器更新。在一个变型中,数据管理器通过(例如周期性地)轮询数据卷来发现更新。在另一变型中,更新工具设置更新标志(例如标志416)并且触发更新处置器(例如更新处置器422)。处置器可以使用平台-管理中断或系统管理中断(SMI)来触发。更新处置器然后通知数据管理器更新。
[0028] 在523处,数据管理器搜索和找到分别用于数据管理器可以通过其版本ID进行标识的更新及其直接前身的数据卷。在524处,如果并且仅如果(当且仅当)用于前身版本的属性是“动态”的,数据管理器试图验证数据对象的经更新的版本,例如通过使用数据管理器的私有密钥472来检查用于经更新的版本的安全密钥。注意,如果要求数据对象的所有版本具有相同的属性值,则在524处,可以使用用于经更新的版本的属性而不是用于其前身的属性。如果在524处,之前的版本是“静态”的,不采取关于更新的另外动作,直到执行验证的下一次启动。
[0029] 如果在525处确定经更新的版本有效,数据管理器在526处将其有效标志设置成“有效”。在过程500的另一变型中,更新处置器执行有效性检查,并且如果并且仅如果更新有效,告知数据管理器更新并且将有效标志设置成“有效”。如果确定数据对象的经更新的版本无效,例如继续将经更新的版本标记为“无效”或者删除它。
[0030] 在526处,数据管理器检查其回叫表以用于匹配经更新的动态数据对象的条目。如果存在任何匹配,每一个相关联的回叫句柄被用于告知相应消费者更新。在527处,如果并且仅如果(当且仅当)动态数据对象在使用中,数据管理器通知一个或多个消费者(其正在使用数据对象的较早版本)更新。数据管理器可以保持其它消费者对相同数据对象的请求直到较早的数据对象的消费者不再使用它。过程500然后可以返回到511而没有介于中间的重启。消费者可以紧接在通知之后或者在给定数据对象的之前版本的使用的情况下的适当的某个稍后时间处请求动态数据对象。
[0031] 可替换示例不使用数据-对象卷中的有效标志来指示有效性。而是,数据管理器内部追踪静态数据对象的更新,使得更新在重启之前不被用于满足消费者请求。当重启后,用于追踪更新的数据丢失,使得在重启之后,数据管理器将使用经更新的静态数据对象来满足请求。
[0032] 在本文中,“系统”是交互非暂时性有形元件的集合,其中元件可以是(作为示例而非限制)机械组件、电气元件、原子、指令的物理编码和过程动作。在本文中,“过程”是指导致或牵涉物理变换的动作的序列。
[0033] 在本文中,除非以其它方式从上下文清楚,否则在涵盖可执行指令以及非指令类型数据的包含性含义中使用“数据”。在本文中,“数据对象”涵盖单个位、串和位和/或串的布置。在本文中,“存储介质”是指包括其中或其上编码有或可以编码有数据(包括指令和非指令类型数据)和数据对象的非暂时性有形材料的系统。在本文中,除非以其它方式从上下文清楚,否则“固件”是指存储在持久性(即非易失性存储器)固态存储器中的代码和通过从持久性固态存储器启动代码引起的代码。“固件存储器”是指用于存储固件代码的非易失性存储器。
[0034] 在本文中,“版本”是以某种方式与相同事物的其它版本不同的事物(例如数据对象)的特定形式。在本文中,如果数据对象可以被更新和使用而不重启则将其说成是“动态”的。在本文中,如果数据对象的更新在不重启的情况下不能被使用则将其说成是“静态”的。在本文中,“消费者”是请求和使用数据对象的执行过程。在本文中,“回叫句柄”是用于向之前发送请求(例如针对数据对象)的过程发送信息的数据项。
[0035] 在本文中,“计算机”是指用于依照物理编码的指令物理操纵经编码的数据的硬件机器。在本文中,除非以其它方式从上下文清楚,否则计算机的功能限定的组件是硬件和在该硬件上执行以提供所限定的功能性的软件的组合。
[0036] 在本文中,“处理器”是指用于执行指令的硬件。处理器可以是单片设备,例如集成电路,设备的部分,例如多核集成电路的核,或者设备的分布式或并列式集合。在本文中,“通信设备”是指用于通信的设备,包括网络设备和用于输入和输出的设备二者,例如人类接口设备。
[0037] 在本说明书中,出于解释的目的而讨论了相关技术。被标记为“现有技术”的相关技术(如果有的话)被承认为现有技术。未被标记为“现有技术”的相关技术不被承认为现有技术。在权利要求中,“所述”(如果使用的话)引入存在明确字面先行语基础的元件;“该”引入先行语基础可能是隐含的元件。所说明和其它描述的实施例,以及对此的修改和其上的变型在接下来的权利要求的范围内。
高效检索全球专利

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

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

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用