具有固件的电子设备及其操作方法与流程

文档序号:23819402发布日期:2021-02-03 15:19阅读:195来源:国知局
具有固件的电子设备及其操作方法与流程
具有固件的电子设备及其操作方法
[0001]
相关申请的交叉引用
[0002]
本申请要求于2019年7月30日提交的申请号为no.1908696的法国专利申请的权益,该申请通过引用并入此。
技术领域
[0003]
本公开一般地涉及电子设备和方法,并且更具体地涉及包括固件的电子设备及其操作方法。


背景技术:

[0004]
某些电子设备包括能够执行程序的数据处理单元。例如,包括一个或多个微处理器的处理单元。
[0005]
这样的设备通常地包括固件。固件意味着必须由处理单元执行以便设备操作的程序,该程序被存储在设备中,亦即,被包含在设备的存储器中。


技术实现要素:

[0006]
实施例克服了包括处理单元的、特别是包括固件的已知电子设备的全部或部分缺点。
[0007]
实施例克服了已知固件的全部或部分缺点。
[0008]
实施例克服了已知固件更新方法的全部或部分缺点。
[0009]
实施例提供了电子设备,其中存储器包含设备的固件的多个副本。
[0010]
根据实施例,在由设备执行时,所述副本的每个副本能够使设备根据可信平台模块(tpm)标准操作。
[0011]
根据实施例,存储器还包含针对副本中的每个所述副本的签名,用于检查所述副本的有效性。
[0012]
根据实施例,存储器还包括用于启动设备的程序,当由设备执行时,该程序能够引起副本中的至少一个所述副本的有效性检查和执行。
[0013]
根据实施例,存储器包括指示从所述副本之中选择的副本的值。
[0014]
根据实施例,所选择的副本对应于固件版本之中的最新版本。
[0015]
根据实施例,存储器还包括对所述副本中的每个副本均可访问的共用文件系统。
[0016]
实施例提供了操作上文所述的设备的方法。
[0017]
根据实施例,方法包括执行所述副本的一个副本,被执行的副本有效、并且对应于有效副本版本之中的最新副本版本。
[0018]
根据实施例,方法包括用在所述副本之中有效的另一副本代替在所述副本之中无效的副本。
[0019]
根据实施例,方法包括用在所述副本中的另一个副本代替所述副本中的一个副本,该另一个副本对应于比所代替副本的版本更新的版本。
[0020]
根据实施例,方法包括由所述设备接收:固件的附加副本,其中取决于在存储器上的所述附加副本的未来位置的值,利用相同的预定义值来被代替,所述预先定义值优选地使其全部比特等于存储器擦除值;以及所述相关值,所述相关值针对在存储器中的、所述副本的位置的每个位置。
[0021]
根据实施例,方法还包括用附加副本代替所述副本中的至少一个副本,以及恢复与所代替副本的位置相对应的相关值。
[0022]
根据实施例,以压缩形式接收附加副本和/或所述相关值,并且然后解压缩附加副本和/或所述相关值。
[0023]
实施例提供电子部件,优选地包括封装,包括诸如上文所定义的设备或能够实施如上文所述的方法的设备。
[0024]
在下面结合附图对具体实施例进行的非限制性描述中,将详细讨论前述和其他特征与优点。
附图说明
[0025]
为了更全面地理解本发明以及其优点,现在结合附图对以下描述进行参考,其中:
[0026]
图1示出下文所描述的实施例适用的设备的示例;
[0027]
图2示意性地示出包括固件的设备的存储器的实施例;
[0028]
图3以块的形式示意性地示出由包括固件的设备实现的方法的实施例;
[0029]
图4示意性地示出固件更新方法的实施例的步骤;
[0030]
图5示意性地示出方法的另一个步骤;并且
[0031]
图6示意性地示出方法的另一个步骤。
具体实施方式
[0032]
在不同的附图中,相同元件被指定为相同附图标记。特别地,不同实施例共有的结构和/或功能元件可以用相同附图标记来指定,并且可以具有相同的结构、尺寸和材料特性。
[0033]
为了清楚起见,只示出以及详细说明了对理解所描述的实施例有用的步骤和元素。特别地,不详细说明固件,所描述的实施例与通常的固件兼容。
[0034]
在下面的描述中,当参考绝对位置限定的术语时(诸如术语“前”、“后”、“顶”、“底”、“左”、“右”等),或相对位置(诸如术语“在
……
上方”、“在
……
下方”、“上”、“下”等)时,或限定方向的术语(诸如术语“水平”、“竖直”等)时,除非另有规定,否则指图纸的取向。
[0035]
本文中使用术语“将近”、“近似地”、“基本上”和“大约”来表示所述值的正负10%、优选地正负5%的公差。
[0036]
图1示出了所描述的实施例适用于设备的示例。更特别地,设备是包括固件的设备。
[0037]
在该示例中,设备包括电子部件100。电子部件包括一个或多个电子集成电路芯片110。电子芯片或每个电子芯片110由半导体晶片部分和位于晶片内部和晶片上的电子电路定义。作为示例,电子部件100还包括了包括(多个)电子芯片的封装120,通常,紧密封装具有从其突出的导电针脚122。引脚122旨在被电耦合到其他部件,优选地焊接到印刷电路板
i是优选地连续的,然而,作为变型,区域210-i可以具有任何位置。每个区域210-i由连续的存储器位置集定义,然而,作为变型,每个区域210-i可以被位于不同存储器位置的多个分隔的区域代替。
[0048]
优选地,副本fwi对应于固件的相同版本,亦即,当它们有效(无缺陷)、并且由处理单元140执行时,副本fwi引起设备的相同操作。然而,如关于图3所描述的,副本可以至少暂时地对应于固件的不同版本。
[0049]
优选地,提供相同版本固件的副本fwi,以引起相同的操作序列,每个操作对应于所执行的副本fwi的指令。在示例中,副本fwi可以包括取决于在存储器200中的副本fwi的位置220-i的指令,并且然后副本fwi优选地只相差其取决于位置220-i的指令。更精确地,有效副本fwi只相差其位置相关指示的操作数。因此,指令的操作符在有效副本中是相同的。在另一示例中,副本fwi从位置220-i完全独立,并且然后优选地相同。
[0050]
作为变型,相同版本固件的副本fwi可以对应于不同的指令,例如,从相同源代码和从被不同地实现的编译产生的指令。
[0051]
优选地,对于所述副本fwi中的每个副本,存储器还包含用于检查所考虑副本的有效性的签名maci(mac1,mac2),亦即,完整性测量。签名maci可以是任何类型的签名,使得能够检测在对应的副本fwi中的错误。这样的错误对应于:所提供的对应于固件的、并且被存储在所考虑的位置的副本与通过读取该位置的内容而获得的副本fwi之间的至少一比特的差异。优选地,签名maci是消息认证码mac类型的签名。作为示例,签名maci是循环冗余校验或crc类型、或校验和类型的签名。作为变型,可以用用于检查所考虑副本的有效性的任何方法来代替签名,诸如存储器和/或副本操作测试,或者更新失败指示。然而,与这些变型相比,签名maci使得对副本fwi有效性的检查能够简化。签名maci例如位于存储器200的末端的位置(它们的逻辑地址是存储器位置中最高的)。
[0052]
优选地,存储器还包括设备引导程序230(boot)。在设备启动时,通过执行程序230来启动处理单元(图1中的140)。程序230的执行随着固件副本fwi的一个副本的开始结束。优选地,存储器位置240包含值sel。值sel指示,在副本fwi之中,所选择的副本fw-sel或有源副本将作为相对于其他副本fwi的优先级启动。优选地,程序230检查所选择的副本fw-sel的有效性,并且如果该副本有效,则启动该副本。优选地,所选择的副本是例如在其安装期间、在前一步骤中检查了其有效性的副本。下文关于图3描述了在执行程序230期间实现的方法的示例。
[0053]
优选地,所选择的副本fw-sel是在所述副本fwi之中对应于固件的最新版本的副本。这有利地导致对应于固件的最新版本的副本启动。
[0054]
作为变型,省略指示所选择的副本的值sel。在该变型中,为了启动固件的最新版本,设备测试所有副本fwi的有效性,比较所有副本fwi的版本,并且然后选择和启动与最新版本相对应的有效副本。与这种变型相比,在所选择的副本有效的情况下,指示所选副本的值使得能够执行单个有效性测试,这使得引导程序230能够简化并且加速其执行。
[0055]
优选地,存储器还包括所述每个副本均可访问的共用文件系统250(fs)。文件系统250通常包括由固件使用以操作设备的数据。共用文件系统250的优点是所使用的数据与所启动的副本fwi相同。例如,文件系统在存储器中的副本fwi和签名maci之间扩展。
[0056]
图3以块的形式示意性地示出包括了包括图2的存储器的固件设备的操作方法的
实施例。更特别地,对应于在执行以下项期间由设备实施的步骤的块:引导程序230、所选择的副本fw-sel以及与所选择的副本不同的副本fwi,分别在框230'、210-sel和210-bu中表示。
[0057]
在步骤302(start),引导程序230的执行启动,并且方法进行到步骤304。
[0058]
在步骤304(sel ok?),设备测试所选择的副本fw-sel的有效性。如果副本有效(y),则该方法进行到启动执行所选择的副本fw-sel的步骤306(start sel)。如果副本无效(n),方法进行到步骤308。
[0059]
在步骤308(seek bu ok),如果该步骤从开始就未被执行,则设备在除了所选择的副本fw-sel之外的有效副本fwi之中寻找备份副本fw-bu。然后方法继续进行到步骤310。
[0060]
在步骤310(last version?),设备测试备份副本fw-bu的版本是否为最新版本。为了实现这点,在最新版本是所选择的副本fw-sel的优选情况下,比较所选择的副本fw-sel和备份副本fw-bu的版本是足够的。如果版本相同(y),则方法进行到步骤312。否则,该方法返回到步骤308,或者,在存储器仅包含两个副本的情况下,方法继续进行到步骤314(虚线313)。
[0061]
在步骤308的新执行中,设备在除了所选择的副本fw-sel和先前的副本或多个副本fw-bu的有效副本fwi之中寻找新的备份副本fw-bu。如果找到新的副本fw-bu(y),则方法进行到步骤310。否则,方法进行到步骤314。
[0062]
在步骤312(new sel),方法修改位置240的值sel。有效的、并且对应于最新的值的副本fw-bu,成为将要优先执行的、新的所选择的副本fw-sel。然后方法进行到上文所描述的步骤306。
[0063]
在步骤314(start bu),方法启动备份副本fw-bu。
[0064]
在步骤306之后,方法优选地经过步骤316(replace?)。在执行所选择的副本fw-sel期间,实现步骤316和步骤316之后的步骤。
[0065]
当由设备接收到请求时,执行步骤316。为了实现这点,设备经由平台与诸如服务器的系统进行通信。通信例如在诸如因特网的远程通信网络上执行,并且也可以通过适合于经由平台在设备与服务器之间的通信的任何通信模式来执行。在步骤316,设备发送指示在步骤304之前所选择的副本是否有效的信息。如果在此之后,设备接收到代替一个或多个无效副本的请求(y),方法进行到步骤318。如果设备没有接收到代替请求(n),方法进行到步骤320。
[0066]
在步骤318(replace bu),设备代替无效和/或对应于不同于最新版本的副本。更精确地,优选地,设备从服务器接收旨在代替无效副本的新副本。作为变型,在所选择的副本fw-sel不依赖于其在存储器中的位置的情况下,在将被代替的副本的位置处提供所选择的副本fw-sel的相同副本。优选地,然后设备用所选择的副本fw-sel的检查签名代替被代替的副本的检查签名。在这种变型中,并且在所选择的副本fw-sel包括位置相关指示的情况下,通过修改这些指示来实现副本。设备计算被代替副本fwi的新检查签名maci,并且将签名存储在其存储器中的位置。方法的实施例与根据来自程序的另一副本的位置而将副本、实例或程序写入存储器的通常步骤兼容。步骤318使得副本能够有效,并且对应于最新版本。
[0067]
步骤320(update?)优选地在由设备接收到执行该步骤的请求时被实现。在该步
骤,设备测试是否应当执行固件更新。为此目的,设备经由平台与服务器通信。如果将要执行更新(y),方法进行到步骤322(update bu)。否则(n),方法进行到步骤324。
[0068]
在步骤322,设备更新除了所选择的副本fw-sel以外的副本。换言之,设备用对应于比所选择的副本fw-sel的版本更新的版本的副本代替除了所选择的副本fw-sel以外的副本。随后关于图4到图6描述了该步骤的实现模式的示例。在步骤322之后,例如,设备进行到步骤326,在此处设备检查经更新的副本是否有效。如果副本是有效的(y),方法进行到步骤328(new-sel)。否则,作为示例,方法可以返回到步骤322以尝试再次执行更新。作为变型,该方法可以进行到步骤318,以恢复更新失败的副本。
[0069]
在步骤328,该方法修改值sel(图2)以指示在步骤322更新的副本将必须在设备下一次启动时优先启动。因此,经更新的副本将在下一次启动时成为新的被选择的副本fw-sel,新副本对应于固件的最新版本。然后,在该下一次启动之后,步骤316将使得固件的所有副本能够更新。方法在步骤328之后进行到步骤324。
[0070]
步骤324(tpm)对应于在设备启动、副本fwi的外部更新和代替之后的操作。如所提到的,该操作优选地符合tpm标准。
[0071]
尽管在执行所选择的副本(框210-sel)期间实施的步骤已按特定顺序示出,步骤的其他步骤是可能的。特别地,步骤316、318、320、322、326和328可以与步骤324的部分(虚线325)并行地执行、和/或在该步骤的部分(未示出)之后执行。另外,步骤316和318可以被省略,特别是在不存在请求的情况下,方法直接从步骤306传递到步骤320。类似地,步骤320、322、326和328可以被省略,特别地在没有请求的情况下,方法直接从步骤306或316通过到步骤324。
[0072]
在步骤314(start bu)之后,方法优选地经过步骤330(reload sel)。在该步骤,设备更新所选择的副本fw-sel。换言之,设备用新版本的固件代替在本例中无效的所选择的副本。该步骤优选地与更新步骤322的步骤相同或类似地执行,亦即,通过优选地使用与服务器的通信执行该步骤。在步骤330之后,设备重新启动(方法返回到步骤302)。步骤330可以与步骤332(tpm)并行执行,在其中,设备确保步骤324(tpm)的功能的至少部分(优选地仅一部分)。
[0073]
图4、图5和图6示意性地示出了固件更新方法的实施例的步骤。更精确地,方法可以在上文关于图3所描述的步骤322和/或330被实现,以更新存储在包括固件的设备的存储器200(图2)中的固件的副本。
[0074]
图4的步骤优选地由在包括将被更新的固件的设备外部的系统来实现。这样的系统优选地是计算机信息系统,例如包括计算机,旨在与设备通信以执行更新。
[0075]
在图4的步骤中,固件的副本fwi被形成,优选地两个副本fw1和wf2。两个副本优选地对应于固件的相同最新版本。副本fwi能够从相应的位置220-i(220-1和220-2)被存储在设备的存储器200(图2)中。副本可以相差位置相关指示。然后副本fw1和fw2相差m数目个值fwivj,诸如字(字由给定数目的比特定义,优选地32比特)。这些值位于从位置220-i偏移posj的位置,j是在1到m的变化范围中整数。在示出的示例中,副本fw1和fw2的值相差fw1v1和fw2v1、fw1v2和fw2v2、fw1v3和fw2v3所对应的偏移pos1、pos2和pos3。每个偏移位置对副本fwi是共用的。可以通过比较副本fw1和fw2获得位置posj。作为变型,通过定位位置相关值来形成单个副本并且获得偏移posj。
[0076]
在图5的步骤,附加副本fw在对应于偏移位置posj的位置形成,值被代替为相同的预定义值。优选地,当存储器200是闪存存储器时,预定义值的所有比特等于存储器200的擦除值,亦即,在存储器200被擦除之后,包含在存储器200的位置处的值,例如值1。预定义值因此,在例如32比特字的情况下,等于值oxffffffff(其中“ox”指示符号为十六进制)。
[0077]
优选地,以表格形式组织的值集合510被额外形成。集合510包括至少一个将被更新的副本fwi的值fwivj,优选地对应于在表格中的另一列。优选地,集合510包括所有值fwivj,其中整数i的每个值对应于列(整数j的每个值对应于行)。集合510优选地包括偏移posj,更优选地对应于在表格中的列。表格中的列和行可以交换。
[0078]
在图6的步骤,附加副本fw被压缩。该步骤与通常的数据压缩步骤兼容。优选地,压缩使得从附加副本fw能够获得相对于附加副本的更小的尺寸的数据的集合610(而不丢失信息)。作为示例,集合610的尺寸比附加副本fw的尺寸小85%。作为示例,附加副本fw具有的尺寸大于或等于310千字节,并且压缩的集合610具有的尺寸小于260千字节。
[0079]
优选地,集合510不被压缩,然而,压缩集合510是可能的。
[0080]
在未示出的下一步骤中,集合510和610被发送到具有将被更新的固件的设备。优选地,设备在接收到集合610时对其进行解压缩,并将解压缩的结果(即,附加副本fw)直接存储在将被代替的副本fwi的位置。作为变型,图6的步骤被省略,并且由设备以非压缩形式接收附加副本fw。
[0081]
在变型中,设备在解压缩集合610之前,将集合610放入存储器200或另一个存储器中。然而,与该变型相比,在接收集合610时对集合610进行解压缩的事实使得所使用的存储器空间能够减少。在另一变型中,设备将解压缩后的副本存储在另一个存储器中,或者存储在存储器200中与将被代替的副本不同的位置。然而,与该另一变型相比,将压缩结果直接存储在将被代替的副本的位置的事实也使得所使用的存储器空间能够减少。
[0082]
然后,设备用由设备接收到的集合510的相对应的值代替替换至位置相关值fwivj的预定义值。因此,在图4步骤中获得的值fwivj已恢复到相关副本fwi中,并且因此更新了副本。
[0083]
在闪存类型存储器的情况下,被解压缩副本的部分被连续地存储。对于这些部分中的每个部分,存储器位置被同时擦除,之后,被考虑的部分被同时重新写入到所有位置中。
[0084]
在另一变型中,经解压的副本可以存储在另一个存储器中,例如ram,并且当副本在ram中时,可以用值fwivj代替预定义值,然后可以将副本重写到闪存存储器中。与该变型相比,使用等于闪存存储器擦除值的比特将预定义值写入存储器,随后用值fwivj代替它们,使得能够避免在不向闪存存储器添加写入/擦除周期的情况下使用在ram中的空间。这使得能够减小ram的尺寸,并且限制闪存存储器老化的风险和/或更新时间。
[0085]
图4至6的方法使得设备能够接收更新具有包含在集合510中的位置相关值fwivj的任何副本fwi所需要的所有数据。特别地,在集合510包括所有值fwivj的优选情况下,设备接收用于更新任何副本fwi所需要的所有值。更精确地,可以在不知道要更新哪个副本、或在不需要设备必须通信将被更新的副本的指示的情况下,有利地预先获得集合510和610。
[0086]
为了在不有利地知道将要更新哪个副本的情况下,向设备传送更新任何副本所需
要的数据,可以设计的是,传送在图4的步骤处获得的所有副本fwi。然而,通过比较,图4至图6的方法具有减少针对更新而传输的数据数目的优点。因此,可以更快地和/或通过具有较窄带宽的通信装置来执行更新。
[0087]
各种实施例和变化已被描述。本领域技术人员将理解,这些不同实施例和变型的某些特征可以组合,并且本领域技术人员将想到其他变型。
[0088]
最后,基于上文给出的功能指示,所描述实施例和变型的实际实现方式在本领域技术人员的能力范围内。
[0089]
这类变更、修改和改善旨在成为本公开的一部分,并在本发明的精神和范围内。因此,前文的描述仅作为示例,而不旨在限制。本发明仅限于以下权利要求书及其等同物中的限定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1