CN110069363A - 更新多处理器装置引导加载程序的方法、存储介质及装置 - Google Patents

更新多处理器装置引导加载程序的方法、存储介质及装置 Download PDF

Info

Publication number
CN110069363A
CN110069363A CN201910260833.4A CN201910260833A CN110069363A CN 110069363 A CN110069363 A CN 110069363A CN 201910260833 A CN201910260833 A CN 201910260833A CN 110069363 A CN110069363 A CN 110069363A
Authority
CN
China
Prior art keywords
processor
bootstrap loader
guidance
mode
loader
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910260833.4A
Other languages
English (en)
Other versions
CN110069363B (zh
Inventor
N·当吉-卡耶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sagemcom Broadband SAS
Original Assignee
Sagemcom Broadband SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sagemcom Broadband SAS filed Critical Sagemcom Broadband SAS
Priority to CN201910260833.4A priority Critical patent/CN110069363B/zh
Publication of CN110069363A publication Critical patent/CN110069363A/zh
Application granted granted Critical
Publication of CN110069363B publication Critical patent/CN110069363B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Multi Processors (AREA)

Abstract

更新多处理器装置引导加载程序的方法、存储介质及装置。在本发明的方法中,装置包括第一和第二处理器,第一处理器用于执行引导加载程序,该方法由该装置实现,包括相对于第一处理器的引导延迟了的第二处理器的引导阶段,当引导加载程序无效时,在更新引导加载程序模式下引导装置,且由于引导加载程序已经无效,第一处理器被阻止,第二处理器在引导时检查第一处理器是否执行消息交换以同步第一和第二处理器,当未从第一处理器接收到消息时,第二处理器启动更新引导加载程序的模式;当引导加载程序有效时,使用引导加载程序引导装置,以使用引导加载程序引导第一处理器,并且引导加载程序请求第一处理器引导第二处理器并使用消息交换来同步彼此。

Description

更新多处理器装置引导加载程序的方法、存储介质及装置
本申请是原案申请号为201480058518.9的发明专利申请(申请日:2014年9月9日,发明名称:多处理器装置及其引导加载程序更新方法)的分案申请。
技术领域
本发明涉及一种用于更新多处理器系统的引导加载程序的方法、以及能够实现该方法的多处理器系统。
背景技术
大量电子装置包括软件。这些装置的软件通常被分成两部分:第一部分是引导加载程序,且第二部分是应用软件。
在当前电子装置中,可能非常频繁地更新软件,特别是关于连接到网络的通信产品。引导加载程序的更新是关键阶段。熟知在该更新期间指定到电子装置的电源不应该被切断的警告消息的显示,但是当面对诸如意外或恶意电源切断的电气异常时不能提供安全性。
为此目的,双引导解决方案由提供两个非易失性可重写存储区段构成,其中,第一区段包括正常引导加载程序,并且第二区段包括新引导加载程序。在将新引导加载程序写入存储器中之后,在切换到新引导加载程序之前对所写入的软件的完整性进行检验。该方法要求将非易失性可重写存储器的容量基本上加倍,这增加了这种产品的成本。
期望克服现有技术的前述缺陷。
发明内容
本发明涉及一种用于更新存储在装置的可重写非易失性存储器中的引导加载程序的方法,所述装置包括第一处理器和第二处理器,所述第一处理器能够执行所述引导加载程序,该方法通过所述装置来实现。该方法包括在更新所述引导加载程序期间发生电气异常的情况下实现的引导保护阶段,当存在电气异常时,所述引导保护阶段通过用作针对主电源的继电器的应急电源来实现,所述引导保护阶段包括以下步骤:停止所述引导加载程序的当前更新;以及使针对所述第一处理器的所述引导加载程序无效。该方法还包括相对于所述第一处理器的引导的所述第二处理器的延迟引导阶段,当所述引导加载程序无效时,所述延迟引导阶段能够在更新所述引导加载程序的模式下引导所述装置。因此,能够执行装置上的引导加载程序的更新,所述装置包括使能够存储引导加载程序的单个副本的可重写非易失性存储器。通过这种方法,不再担心在更新引导加载程序期间发生的该存储器的损坏(特别是是因为电源切断)之后不可控制的重新引导的问题。
根据一个实施方式,该方法包括由所述第二处理器实现的更新所述引导加载程序的阶段,该更新阶段包括以下步骤:将所述第一处理器切换到更新所述引导加载程序的模式;将新引导加载程序写入所述可重写非易失性存储器中;检验写入所述可重写非易失性存储器中的所述新引导加载程序是否有效;当写入的所述新引导加载程序无效时,从由写入所述新引导加载程序构成的步骤开始重复该更新阶段;以及当写入的新软件有效时,将所述第一处理器切换到普通操作模式。由此更新引导加载器。
根据一个实施方式,该方法还包括在引导所述装置期间由所述第二处理器实现的以下步骤:检验所述第一处理器是否处于能够与所述第二处理器通信的正常操作状态;以及当所述第一处理器不处于所述正常操作状态时,发起更新所述引导加载程序的阶段。因此,该检验使得即使引导加载程序被无效也执行引导。在该情况下,该装置通过第二处理器引导以进入更新模式。
根据一个实施方式,为了检验所述第一处理器的所述操作状态,所述第二处理器执行以下步骤:将第一消息发送到所述处理器;当所述第二处理器在预定时间段内接收到确认所述第一消息的第二消息时,认为所述第一处理器的所述操作状态正常;以及当所述第二处理器在预定时间段内没有接收到确认所述第一消息的第二消息时,认为所述第一处理器的所述操作状态异常。因此,所述检验通过第一处理器与第二处理器之间的同步阶段来获取。如果第一处理器不对来自第二处理器的询问所述第一处理器实际上是否处于正常操作状态的消息进行响应,则判定所述第一处理器的操作状态为异常。
根据一个实施方式,当所述装置正在被切断时,该方法还包括以下步骤:检验存储在所述可重写非易失性存储器中的所述引导加载程序是否有效;以及当存储在所述可重写非易失性存储器中的所述引导加载程序无效时,通过所述第二处理器发起更新所述引导加载程序的阶段。因此,能够检测在正常操作期间发生的可重写非易失性存储器的损坏的问题。这使得能够替换损坏的引导加载程序并且防止故障。
根据一个实施方式,所述方法的引导保护阶段还包括在引导保护阶段期间由停止到次要组件的供电构成的步骤,所述次要组件对于所述第一处理器和所述第二处理器的运行不是必须的。因此,仅用于使所述引导加载程序无效所必须的组件被供电,以最小化装置在该阶段期间的电气损耗。因此,可以减小在将提供的自发性(autonomy)方面的应急电源的尺寸。
本发明还涉及一种包括第一处理器和第二处理器的装置,所述第一处理器能够执行存储在可重写非易失性存储器中的引导加载程序,该装置包括用于当在更新所述引导加载程序期间发生电气异常时实现的引导保护的装置,当存在电气异常时,用于引导保护的所述装置通过用作针对主电源的继电器的应急电源来实现,用于引导保护的所述装置包括:用于停止所述引导加载程序的当前更新的装置;以及用于使用于所述第一处理器的所述引导加载程序无效的装置。该装置还包括:用于相对于所述第一处理器的引导的所述第二处理器的延迟引导的装置,当所述引导加载程序无效时,用于延迟引导的所述装置能够在更新所述引导加载程序的模式下引导所述装置。
根据一个实施方式,所述应急电源包括在包括电容器、超级电容器、电池和蓄电池的组中。因此,应急电源的成本低。
根据一个实施方式,该装置还包括用于基于比较器监测主电源的装置,所述比较器具有第一输入和第二输入,基准电压值被注入到第一输入,并且经由电压桥分压器从所述主电源得到的电压值被注入到第二输入。因此,电气异常以简单方式被检测。
根据一个实施方式,该装置包括用于基于比较器和模数转换器监测所述主电源的装置,所述模数转换器适用于将所述主电源的电压转换为数字值,并且所述比较器适用于将所述数字值与预定阈值进行比较。
附图说明
本发明的上述特征以及其它特征将从阅读至少一个示例性实施方式的下列描述更清楚,所述描述关于附图给出,其中:
-图1是根据本发明的一个实施方式的双处理器装置的硬件架构的示意图;
-图2是用于更新引导加载程序的算法的示意图,该算法由图1的装置的处理器执行;
-图3是用于图1的辅助处理器的引导算法的示意图;
-图4是根据本发明的特定实施方式的用于在失去电源期间管理中断的算法的示意图;
-图5是用于切断装置的算法的示意图;
-图6是用于引导所述装置的第一序列的示意图;
-图7是用于引导所述装置的第二序列的示意图。
具体实施方式
以下详细描述旨在包括被称作辅助处理器的第一处理器或微处理器、以及被称作主处理器的第二处理器或微处理器的装置。辅助处理器可以致力于在待机模式下管理装置的引导和监测。主处理器可以负责由该装置实现的主要功能。然而,这个仅是示例,并且辅助处理器也可以仅负责任何其它功能。以下详细描述仅在于在更新用于引导所述辅助处理器的引导加载程序的上下文中由辅助处理器和由主处理器实现的功能。
图1示意性地示出根据本发明的一个实施方式的双处理器装置的架构。该架构包括辅助处理器10和主处理器50,二者均由被称作主电源的电源30来供电。
辅助处理器10例如经由总线连接到随机存取存储器RAM 11、可重写非易失性存储器12(诸如,快闪类型的存储器)、以及只读存储器ROM 13。
主处理器50例如经由总线连接到RAM 51、可重写非易失性存储器52(诸如,快闪类型的存储器)、以及固定或可移动存储单元53。该存储单元53例如是硬盘驱动器HDD或者可移动存储卡读取器。主处理器50还连接到外部通信装置54,所述外部通信装置54使能够特别是接收对装置的所有或部分软件的更新。这些外部通信装置54可以是以太网、xDSL(用于指定数字用户线类型的技术的缩写)或WiFi类型的通信端口,或者是USB(通用串行总线)类型的通信端口。
此外,辅助处理器10和主处理器50通过内部通信装置34连接,以按照消息或信号形式交换数据。这些内部通信装置34例如是单独使用或结合使用的诸如串行总线或者并行总线的总线、或者输入/输出端口。
最后,给双处理器装置供电的电源30经由电源线31给两个处理器供电。用于监测发生在电源30上的任何电气异常的监测装置32存在于电源线31上。监测装置32优选地适用于监测由电源30传递的电压。
监测装置32例如通过比较器来实现。例如固定在通过连接到电源线31的降压DC-DC转换器获得的1.8V或3.3V的基准DC电压信号被注入到比较器的第一输入。例如当不存在电气异常时固定在12V的电源信号30在经过电压桥分压器之后,被注入到比较器的第二输入,所述电压桥分压器旨在使电压为基本上等于所述基准DC电压的值。比较器由此适用于检测在电气异常之后电源电压30何时下降。
在变型实施方式中,例如通过联接到模数转换器的比较器来实现监测装置32。模数转换器适用于接收由电源30传递的电压作为输入。然后,比较器适用于将表示由电源30传递的电压的数字值与预定义阈值(例如当期望来自电源30的电压是12V时固定在10V)进行比较。可以将这样的模数转换器集成在辅助处理器10或主处理器50中。
应急电源33也存在于电源线31上,旨在在电气异常的情况下给至少两个处理器和对于这两个处理器运行所必须的组件供电。监测装置32适用于在由装置引发的电气异常的情况下警告主处理器50。这样的电气异常例如可以是电压的简单临时下降。电气异常也可以是电源30断开。
应急电源33例如是电池、蓄电池、电容器或者超级电容器。选择应急电源33的电容以允许重要组件在一段时间内运行,使得如果需要,则使引导加载程序无效,或者擦除可重写非易失性存储器12的全部或部分。重要组件包括主处理器50和辅助处理器10加上它们各自运行所必须的组件,以确保由删除可重写非易失性存储器12的全部或部分或者使引导加载程序无效构成的操作。
处理器(辅助处理器10和主处理器50)中的每个能够执行用于实现以下描述的算法的全部或一些的一组指令。辅助处理器10能够执行来自可重写非易失性存储器12和/或来自RAM 11的指令。辅助处理器10还能够执行通常在加载到RAM 11中之后来自ROM 13的指令。主处理器50能够执行来自可重写非易失性存储器52和/或来自RAM 51的指令。
在引导所述装置的每个序列处,辅助处理器10首先使用存在于可重写非易失性存储器12中的针对所述装置的引导加载程序。此外,为了更新引导加载程序,辅助处理器10已更新了ROM 13中的软件。该更新软件能够在可重写非易失性存储器12中删除并且写入经由内部通信装置34由主处理器50发送的新引导加载程序。
主处理器50能够执行更新应用,以用于更新用于引导辅助处理器10的引导加载程序。可以将该更新应用存储在可重写非易失性存储器52中。主处理器50还适用于执行存储在可重写非易失性存储器52或存储单元53中的其它类型的应用。
最后,该装置配备有用于对辅助处理器10和主处理器50之间的引导进行排序的装置35,该装置35被称为调度器。调度器35首先发起辅助处理器10的引导,并且然后发起相对于辅助处理器10的引导延迟的主处理器50的引导。在正常引导情况下,辅助处理器10执行引导加载程序。然后,所述引导加载程序引导主处理器50,并且两个处理器彼此同步。当由辅助处理器10使用的引导加载程序损坏时,使用延迟引导。延迟引导使得装置能够以任何方式部分地被引导,以更新有缺陷的引导加载程序。
根据优选实施方式,辅助处理器10是包括RAM 11、可重写非易失性存储器12和ROM13的微控制器。
根据变型例,辅助处理器10和主处理器50被集成在SoC(芯片上系统)类型的组件中。
示出的一些元件(特别是辅助处理器10、主处理器50和调度器35)可以通过硬件组件(诸如,专用集成电路ASIC或现场可编程门阵列FPGA),按照单一或分布方式以各种形式产生。
参照图2和图3,现在将描述用于辅助处理器10的引导加载程序的更新。在该更新之前,主处理器50经由外部通信装置54已接收到新引导加载程序。已经关于所接收的新引导加载程序的起源和其完整性检验了该新引导加载程序。例如,如果接收到加密并签名的引导加载程序,则主处理器50继续印记(imprint)的检验,也被称作检验和(checksum),并且对构成引导加载程序的所接收的数据进行解密。所采用的签名方法是诸如MD5或SHA签名的已知方法。同样地,已知用于对数据进行加密和解密、对称加密(称作具有密钥的加密)、或不对称加密(称作具有公共密钥的加密)的方法,诸如例如AES(高级加密标准)或DES(数据加密标准)或RSA(根据作者的名字“Rivest Shamir Adleman”)算法。因此,在接收到本地存储在主处理器50(诸如,RAM存储器51、可重写非易失性存储器52或者存储单元53)可用的存储装置中的一个中的新有效引导加载程序之后,更新新引导加载程序的阶段100应用。在使用用于本地存储引导加载程序的RAM 51的情况下,如果在更新阶段期间发生电源切断,则主处理器50例如通过下载再次重新获得新引导加载程序。
当发起更新引导加载程序的阶段100时,辅助处理器10改变操作模式。实际上,该装置包括多个操作模式,特别是普通操作模式和更新模式。更新模式使得能够用新引导加载程序替换当前引导加载程序。在普通操作模式中,该装置可以处于两种操作状态,第一个是正常操作状态,并且第二个是异常操作状态。当引导加载程序已经被无效时,该装置处于异常操作状态;否则该装置处于正常操作状态。
在步骤101中,主处理器50将辅助处理器10切换到更新模式。为此目的,主处理器50使用内部通信装置34。在特定实施方式中,内部通知装置34基于输入/输出线,主处理器50将专用矢量值(被称为更新模式值)固定在这些输入/输出线上,并且然后发起辅助处理器10的重新引导,下面将关于图3来描述其行为。
一旦辅助处理器10在更新模式下已被引导,主处理器50就能够使用由辅助处理器10的更新软件提供的更新功能。可用功能特别是使得能够擦除、写入或读取可重写非易失性存储器12的那些功能。
在步骤102中,主处理器50将新引导加载程序写入或者指示辅助处理器10将新引导加载程序写入可重写非易失性存储器12中。为此目的,主处理器50通过内部通信装置34传送新引导加载程序的数据。
在步骤103中,主处理器50继续对存在于可重写非易失性存储器12中的数据的完整性进行检验。该检验可以以各种方式进行,诸如对写入可重写非易失性存储器12中的数据的检验和的计算。然后,将该检验和与对本地存储在RAM 51中的并与由主处理器50获取的新引导加载程序对应的数据计算的检验和进行比较。在变型例中,通过存在于可重写非易失性存储器12中的原始数据与本地存储在RAM 51中的并与由主处理器50获取的新引导加载程序对应的数据的比较以及完全重新读取来进行该检验。
在步骤104中,在检验结束时,主处理器50测试写入的结果是有效还是无效,以识别错误数据在可重写非易失性存储器12中的存在。如果数据是错误的,则重复写入新引导加载程序的数据的步骤102;否则,意味着如果数据是有效的,则执行步骤105。
在步骤105中,主处理器50将辅助处理器10切换到普通操作模式。为此目的,主处理器50删除内部通信装置34的输入/输出线上的更新模式矢量的值。接下来,如果有必要,主处理器50重新引导辅助处理器10。
最后,在步骤106中,更新阶段100例如以装置的完全重新引导结束。
为了使得引导加载程序能够被更新,主处理器50将辅助处理器10切换到更新模式。参照图3,算法示出引导辅助处理器10的序列130。
在步骤131中,辅助处理器10读取在内部通信装置34的输入/输出线上存在的值。
在步骤132中,辅助处理器10检验所读取的值是否对应于“更新模式值”类型的矢量值。如果该矢量对应于“更新模式值”,则辅助处理器10执行步骤134。否则,该装置在普通操作模式下引导,并且执行步骤135。
在步骤135中,辅助处理器10执行存在于可重写非易失性存储器12中的引导加载程序。
在步骤134中,辅助处理器10执行更新软件,例如,通过在RAM 11中从ROM13下载更新软件并且从RAM 11执行更新软件。然后,辅助处理器10使得主处理器50存取可写非易失性存储器12,以执行与以上关于图2描述的更新阶段相关的写入或检验步骤。
普通操作模式在更新阶段100期间可能受到特别是电源切断干扰,这是极端案例情况。如果发生这样的事件,则不能达到更新操作的完整性,并且可重写非易失性存储器12仅包含新引导加载程序的一部分。因为不能保证正确写入的软件的数量,所以该部分软件的行为不是绝对确定的,并且如果可重写非易失性存储器12保持原样,则可能特别阻止(block)该装置,或者产生错误行为。
为了防止该极端案例情况,首先必须使存在于可重写非易失性存储器12中的引导加载程序不起作用,并且其次提供用于应急引导该装置的机构。该应急机构必须能够使得能够检测该极端案例情况,并且迫使引导加载程序的重新更新。
参照图4,装置在电源切断的情况下的行为呈现相应过程。该过程是通过发生由主处理器50接收的外部事件触发的中断过程。当在电源30上检测到电气异常时,由监测装置32产生该事件或中断。
在步骤200中,在接收到中断之后,激活用于使主处理器50中断的过程。
在步骤201中,主处理器50检验中断的起源,以确保所接收的中断与电气异常相关。当中断不对应于电气异常时,独立于图4中的算法来处理该中断。然后,在步骤206中结束该算法。否则,当电气异常是中断的原因时,执行步骤202。
在步骤202中,主处理器50检验是否正在进行引导加载程序的更新。如果没有正在进行更新,则在步骤206中结束该算法。如果在更新期间发生中断,则执行步骤203。
在步骤203中,使引导加载程序的更新中断。
在可选步骤204中,通过停止到非重要组件的供电,将该装置切换到节能模式,非重要组件是指对于辅助处理器10和主处理器50的运行不是必须的组件。
在步骤205期间,主处理器50向辅助处理器10发送使存在于可重写非易失性存储器12中的引导加载程序无效的指令。步骤203至205由此形成用于确保装置10的引导的阶段。然后,在步骤206中结束该算法。
可以以各种方式使引导加载程序无效。存在于可重写非易失性存储器12中的数据简单地必须不能由辅助处理器10解释为指令,使得辅助处理器10具有可预测行为。例如,指令可以被写入以使得辅助处理器10在执行这些指令时保持处于阻止状态。因此,代替引导加载程序被写入的数据可以均是在引导期间能够阻止辅助处理器10的数据。
在变型例中,可以通过不作任何事情的NOP(无操作)指令使引导加载程序无效。通过举例,这样的指令通过Motorola(注册商标)680x0微处理器中的字节0x4e71、或者用于Intel(注册商标)8051微控制器家族的0x00、或者用于ARM(注册商标)家族的0x00000000来编码。也可以用无限循环来代替引导加载程序。通过举例,这可以通过循环到自身的简单无条件转移指令来实现。此外,一些处理器或微控制器(特别是集成可重写非易失性存储器的那些)使得所述可重写非易失性存储器的全局擦除功能可用,其使得引导加载程序无效。
如所述,极端案例情况还要求应急引导机构,在引导加载程序恶化的问题的情况下,所述应急引导机构能够由装置的正常引导替代。
因此,优选地,主处理器50检验辅助处理器10是否处于能够与主处理器50通信的正常操作状态,并且当辅助处理器10不处于正常操作状态时,主处理器50发起更新引导加载程序的阶段。
现在将描述在引导阶段期间的装置并且更特别地为调度器35的行为。首先,参照图6中的序列图,描述涉及引导加载程序有效的情况。其次,参照图7的序列图,描述涉及引导加载程序已被无效的情况。引导序列通过定时器获得,但是也可以利用延迟线或者相对于一个动作延迟另一个动作的任何其它方式来获得。
为了使用该装置,用户诸如例如通过按压装置的开始/停止按钮,或者将装置连接到电源插座,来执行用于启动装置的动作。在步骤310中通过装置来检测该动作,并且将表示该动作的信息传输到调度器35。
在步骤311中,调度器35等待,直到装置的组件可操作为止。调度器35通常发起预定持续时间的时间延迟。特别地,调度器35等待电源30的稳定,而且调度器35等待例如振荡器(未示出)的稳定。
接下来,在步骤312中,调度器35命令辅助处理器10引导,并且在步骤313中,根据预定延迟发起主处理器50的延迟引导。
在正常操作模式下,在步骤314中,辅助处理器10响应于从调度器35接收的命令来执行引导加载程序。在步骤315中,引导加载程序命令主处理器50引导,并且然后通过同步过程,主处理器50和辅助处理器10彼此同步,由此使装置的引导有效。该同步过程例如通过使用内部通信装置34交换消息来实现。为了示出该交换,在步骤316,主处理器50将第一同步消息发送到辅助处理器10。此外,在步骤317中,主处理器50激活监视器(watchdog)以避免在等待第一同步消息的确认的同时仍然被阻止。在步骤318中,在监视器期满之前,辅助处理器10一直操作(是指处于正常操作状态),辅助处理器10通过第二消息进行响应,以确认第一消息。然后,装置引导阶段终止,并且装置处于正常操作状态。
在普通运行的该情况下,在步骤319中由调度器35发起的延迟引导对装置的运行没有影响,主处理器50已经启动。
在变型实施方式中,在普通运行的情况下,引导加载程序包括要求辅助处理器10在预定时间段期间阻止主处理器50的引导的指令,使得在步骤319中由调度器35发起的延迟引导对装置的运行没有影响。
在引导加载程序已经被无效的情况下,辅助处理器10不执行用于引导主处理器50的任何有效指令。装置在普通操作模式下已被引导,而辅助处理器10处于异常操作状态。由图7中的序列图示出该情况。
正像普通操作情况那样,用户执行用于引导装置的动作。在步骤310中,由装置检测该动作,并且将表示该动作的信息传输到调度器35。然后,在步骤311中,调度器35等待装置的组件操作。
接下来,在步骤312中,调度器35试图引导辅助处理器10,并且在步骤313中,发起主处理器50的延迟引导。然而,在该情况下,辅助处理器10因为无效的引导加载程序仍然被阻止。
然后,在步骤319中,在上述预定延迟结束时获得来自调度器35的指令时,发生主处理器50的引导。该延迟被固定,使得从通过调度器35引导辅助处理器10开始经过的时间大于辅助处理器10在正常操作状态下能够接收由主处理器50发送的第一同步消息所必须的时间。在步骤316中,一旦被引导,主处理器50就将第一同步消息发送到辅助处理器10,并且在步骤317中,激活监视器。然而,辅助处理器10不处于正常操作状态并且不对第一同步消息进行响应。在通过监视器机构固定的延迟结束时,在步骤320中,主处理器50注意到辅助处理器10不处于正常操作状态,意味着辅助处理器10不操作。在步骤321中,主处理器50然后将辅助处理器10切换到更新模式,并且继续更新引导加载程序,如已经关于图2和图3描述的。
其行为在以上被描述的装置包括用于在不增加必要装置资源并且特别是用于存储引导加载程序的可重写非易失性存储器的容量的情况下更新引导加载程序的机构。然而,所存储的数据或指令的损坏通过在可重写非易失性存储器12中的错误写入仍然可能。为了限制该风险,能够迫使每次装置被切断时进行引导加载程序的完整性、切断是完全还是对应于具有减小的能量消耗的“待机”模式的系统检验。“待机”模式是指例如仅辅助处理器10运行并且对于辅助处理器10的运行不必须的组件不被供电的模式。为了执行该系统检验,图5的算法示出切断过程300。
在步骤301中,主处理器50检验存在于可重写非易失性存储器12中的引导加载程序的完整性。
在步骤302中,主处理器50测试检验的结果。如果有效性测试是肯定的,则执行步骤305。否则有效性测试是否定的,由此揭示了存在于可重写非易失性存储器12中的引导加载程序的损坏,并且主处理器50执行步骤303。
在步骤303中,主处理器50实现更新引导加载程序的阶段,如已经关于图2描述的,并且然后执行步骤305。
在步骤305中,主处理器50切断该装置,并且该算法结束。

Claims (6)

1.一种用于更新存储在装置的可重写非易失性存储器中的引导加载程序的方法,所述装置包括第一处理器和第二处理器,所述第一处理器被配置为执行所述引导加载程序,该方法由所述装置实现,并且包括相对于所述第一处理器的引导延迟了的所述第二处理器的引导阶段,
当所述引导加载程序无效时,在更新所述引导加载程序的模式下引导所述装置,并且由于所述引导加载程序已经无效,所述第一处理器被阻止,所述第二处理器在引导时检查所述第一处理器是否执行消息交换以同步所述第一处理器和所述第二处理器,并且当所述第二处理器没有从所述第一处理器接收到消息时,所述第二处理器启动所述更新引导加载程序的模式;以及
当所述引导加载程序有效时,使用所述引导加载程序引导所述装置,以便使用所述引导加载程序引导所述第一处理器,并且所述引导加载程序请求所述第一处理器引导所述第二处理器并使用所述消息交换来同步所述第一处理器和所述第二处理器。
2.根据权利要求1所述的方法,其特征在于,当更新所述引导加载程序时,所述第二处理器执行以下步骤:
-将所述第一处理器切换到更新所述引导加载程序的模式;
-将新引导加载程序写入所述可重写非易失性存储器中;
-检验写入到所述可重写非易失性存储器中的所述新引导加载程序是否有效;
-当写入的所述新引导加载程序无效时,从写入所述新引导加载程序开始重复更新引导加载程序的步骤;以及
-当写入的新引导加载程序有效时,将所述第一处理器切换到普通操作模式。
3.根据权利要求1所述的方法,其特征在于,为了检验所述第一处理器的操作状态,所述第二处理器执行以下步骤:
-将第一消息发送到所述第一处理器;
-当所述第二处理器在预定时间段内接收到确认所述第一消息的第二消息时,认为所述第一处理器的操作状态正常;以及
-当所述第二处理器没有在所述预定时间段内接收到确认所述第一消息的所述第二消息时,认为所述第一处理器的操作状态异常。
4.根据权利要求1所述的方法,其特征在于,当关闭所述装置时,所述方法还包括以下步骤:
-检验存储在所述可重写非易失性存储器中的所述引导加载程序是否有效;以及
-当存储在所述可重写非易失性存储器中的所述引导加载程序无效时,利用所述第二处理器启动所述引导加载程序的更新。
5.一种存储有计算机程序的非暂时性信息存储介质,所述计算机程序包括指令,当所述指令由包括第一处理器和第二处理器的装置执行时,实现如权利要求1所述的方法。
6.一种包括第一处理器和第二处理器以及可重写非易失性存储器的装置,所述装置被配置用于更新存储在所述可重写非易失性存储器中的引导加载程序,所述第一处理器被配置为执行所述引导加载程序,所述装置被配置为实现相对于所述第一处理器的引导延迟了的所述第二处理器的引导阶段,
当所述引导加载程序无效时,所述装置被配置为在更新所述引导加载程序的模式下引导,并且由于所述引导加载程序已经无效,所述第一处理器被阻止,所述第二处理器被配置为在引导时检查所述第一处理器是否执行消息交换以同步所述第一处理器和所述第二处理器,并且所述第二处理器被配置为在未从所述第一处理器接收到消息时,发起所述更新引导加载程序的模式;以及
当所述引导加载程序有效时,所述装置被配置为使用所述引导加载程序进行引导,以便使用所述引导加载程序引导所述第一处理器,并且所述引导加载程序请求所述第一处理器引导所述第二处理器并使用所述消息交换来同步所述第一处理器和所述第二处理器。
CN201910260833.4A 2013-09-10 2014-09-09 更新多处理器装置引导加载程序的方法、存储介质及装置 Active CN110069363B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910260833.4A CN110069363B (zh) 2013-09-10 2014-09-09 更新多处理器装置引导加载程序的方法、存储介质及装置

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
FR1358710A FR3010553B1 (fr) 2013-09-10 2013-09-10 Procede de mise a jour d'un logiciel de demarrage d'un dispositif multiprocesseur
FR13/58710 2013-09-10
PCT/EP2014/069157 WO2015036388A1 (fr) 2013-09-10 2014-09-09 Procédé de mise à jour d'un logiciel de démarrage d'un dispositif multiprocesseur
CN201480058518.9A CN105683921B (zh) 2013-09-10 2014-09-09 多处理器装置及其引导加载程序更新方法
CN201910260833.4A CN110069363B (zh) 2013-09-10 2014-09-09 更新多处理器装置引导加载程序的方法、存储介质及装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201480058518.9A Division CN105683921B (zh) 2013-09-10 2014-09-09 多处理器装置及其引导加载程序更新方法

Publications (2)

Publication Number Publication Date
CN110069363A true CN110069363A (zh) 2019-07-30
CN110069363B CN110069363B (zh) 2023-05-12

Family

ID=50023663

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480058518.9A Active CN105683921B (zh) 2013-09-10 2014-09-09 多处理器装置及其引导加载程序更新方法
CN201910260833.4A Active CN110069363B (zh) 2013-09-10 2014-09-09 更新多处理器装置引导加载程序的方法、存储介质及装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201480058518.9A Active CN105683921B (zh) 2013-09-10 2014-09-09 多处理器装置及其引导加载程序更新方法

Country Status (6)

Country Link
US (2) US10289422B2 (zh)
EP (2) EP3540602B1 (zh)
CN (2) CN105683921B (zh)
BR (1) BR112016005213B1 (zh)
FR (1) FR3010553B1 (zh)
WO (1) WO2015036388A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017125172A1 (de) * 2017-10-26 2019-05-02 Schréder S.A. Verfahren zur Aktualisierung eines Bootloaders eines Controllers einer Leuchte
CN107704258B (zh) * 2017-10-27 2020-12-01 深圳市恒扬数据股份有限公司 Uboot升级方法、系统及终端设备
US10901479B1 (en) 2019-04-23 2021-01-26 Motorola Solutions, Inc. Method and apparatus for managing power-up of a portable communication device
US11374877B2 (en) * 2020-03-16 2022-06-28 Hewlett Packard Enterprise Development Lp Runtime schema for services in a switch
US11321077B1 (en) * 2020-06-05 2022-05-03 Amazon Technologies, Inc. Live updating of firmware behavior
US20220244966A1 (en) * 2021-02-03 2022-08-04 Ampere Computing Llc Multi-socket computing system employing a parallelized boot architecture with partially concurrent processor boot-up operations, and related methods
US11797679B2 (en) * 2021-07-28 2023-10-24 Dell Products, L.P. Trust verification system and method for a baseboard management controller (BMC)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1550984A (zh) * 2003-05-08 2004-12-01 ���µ�����ҵ��ʽ���� 信息处理装置
US20070180223A1 (en) * 2006-01-31 2007-08-02 Kabushiki Kaisha Toshiba Computer system and method of booting the system
US20080259844A1 (en) * 2007-04-20 2008-10-23 Elster Electricity, Llc Over the air microcontroller flash memory updates
US20090094450A1 (en) * 2007-10-04 2009-04-09 Openpeak, Inc. Firmware image update and management
CN101739270A (zh) * 2008-11-05 2010-06-16 英华达(上海)科技有限公司 电子装置及其系统更新方法
CN102016824A (zh) * 2005-10-26 2011-04-13 矽玛特有限责任公司 芯片集成电路上的系统及与其一起使用的处理系统和方法
US20110145807A1 (en) * 2008-06-02 2011-06-16 Awox Method and device for updating a computer application
CN102780578A (zh) * 2012-05-29 2012-11-14 上海斐讯数据通信技术有限公司 网络设备的操作系统的更新系统及更新方法
CN103010039A (zh) * 2011-09-28 2013-04-03 宁波拜特测控技术有限公司 一种电池管理系统引导加载方法
US20130227261A1 (en) * 2012-02-24 2013-08-29 Qualcomm Incorporated System and Method For Thermally Aware Device Booting

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100506203B1 (ko) * 2003-09-17 2005-08-05 삼성전자주식회사 부팅 및 부트 코드 업데이트 방법 및 시스템
KR100987628B1 (ko) * 2004-02-07 2010-10-13 엘지전자 주식회사 엠비디드 컨트롤러의 펌웨어 갱신방법 및 갱신용 펌웨어저장매체
US7600055B2 (en) * 2006-01-03 2009-10-06 International Business Machines Corporation Apparatus, system, and method for firmware update of redundant controllers
JP4868216B2 (ja) * 2006-01-19 2012-02-01 日本電気株式会社 ファームウェア更新回路およびファームウェア更新方法
US7870379B2 (en) * 2006-10-10 2011-01-11 Exaflop Llc Updating a power supply microcontroller
US20100131694A1 (en) * 2008-11-26 2010-05-27 Kelly Scott G Secure Boot ROM Emulation
US9077654B2 (en) * 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
US8417962B2 (en) * 2010-06-11 2013-04-09 Microsoft Corporation Device booting with an initial protection component
US8713559B2 (en) * 2010-11-15 2014-04-29 Schneider Electric It Corporation System and method for updating firmware
KR20130114672A (ko) * 2011-01-19 2013-10-17 인터내셔널 비지네스 머신즈 코포레이션 소프트웨어를 업데이트하는 장치 및 방법
KR20120092222A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
US8578362B2 (en) * 2011-03-18 2013-11-05 Hamilton Sundstrand Corporation Method for downloading software to an electronics product
US8707019B2 (en) * 2011-07-02 2014-04-22 Intel Corporation Component update using management engine
US8442792B1 (en) * 2012-10-26 2013-05-14 Elbex Video Ltd. Method and apparatus for calibrating intelligent AC outlets
KR20140060912A (ko) * 2012-11-13 2014-05-21 한국전자통신연구원 부트로더를 업데이트하는 방법 및 장치
US9021457B2 (en) * 2013-01-22 2015-04-28 Apple Inc. Method and system for dynamically resizing enclosed storage device partitions
US9336010B2 (en) * 2013-03-15 2016-05-10 Xilinx, Inc. Multi-boot or fallback boot of a system-on-chip using a file-based boot device
US9292301B1 (en) * 2015-04-06 2016-03-22 Psikick, Inc. Systems, methods, and apparatus for controlling the power-on or boot sequence of an integrated circuit based on power harvesting conditions
US10002015B2 (en) * 2015-07-10 2018-06-19 International Business Machines Corporation Delayed boot of a virtual machine in a virtualized computing environment based on a fabric limit
US9858067B2 (en) * 2015-10-05 2018-01-02 Samsung Electronics Co., Ltd. Electronic system with update control mechanism and method of operation thereof
US10496388B2 (en) * 2016-03-24 2019-12-03 Intel Corporation Technologies for securing a firmware update
US10452404B2 (en) * 2016-07-28 2019-10-22 Microsoft Technology Licensing, Llc. Optimized UEFI reboot process

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1550984A (zh) * 2003-05-08 2004-12-01 ���µ�����ҵ��ʽ���� 信息处理装置
CN102016824A (zh) * 2005-10-26 2011-04-13 矽玛特有限责任公司 芯片集成电路上的系统及与其一起使用的处理系统和方法
US20070180223A1 (en) * 2006-01-31 2007-08-02 Kabushiki Kaisha Toshiba Computer system and method of booting the system
US20080259844A1 (en) * 2007-04-20 2008-10-23 Elster Electricity, Llc Over the air microcontroller flash memory updates
US20090094450A1 (en) * 2007-10-04 2009-04-09 Openpeak, Inc. Firmware image update and management
US20110145807A1 (en) * 2008-06-02 2011-06-16 Awox Method and device for updating a computer application
CN101739270A (zh) * 2008-11-05 2010-06-16 英华达(上海)科技有限公司 电子装置及其系统更新方法
CN103010039A (zh) * 2011-09-28 2013-04-03 宁波拜特测控技术有限公司 一种电池管理系统引导加载方法
US20130227261A1 (en) * 2012-02-24 2013-08-29 Qualcomm Incorporated System and Method For Thermally Aware Device Booting
CN102780578A (zh) * 2012-05-29 2012-11-14 上海斐讯数据通信技术有限公司 网络设备的操作系统的更新系统及更新方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HONGFEI YIN等: "Verification-Based Multi-backup Firmware Architecture, an Assurance of Trusted Boot Process for the Embedded Systems", 《2011 IEEE 10TH INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS》 *
李权等: "高可靠性的嵌入式软件现场更新方法", 《计算机应用》 *

Also Published As

Publication number Publication date
US11061690B2 (en) 2021-07-13
CN105683921B (zh) 2019-04-23
US20160216978A1 (en) 2016-07-28
BR112016005213B1 (pt) 2021-01-26
WO2015036388A1 (fr) 2015-03-19
EP3540602A1 (fr) 2019-09-18
FR3010553A1 (fr) 2015-03-13
CN110069363B (zh) 2023-05-12
US10289422B2 (en) 2019-05-14
US20190227811A1 (en) 2019-07-25
EP3044679B1 (fr) 2019-05-15
EP3044679A1 (fr) 2016-07-20
EP3540602B1 (fr) 2020-12-16
CN105683921A (zh) 2016-06-15
FR3010553B1 (fr) 2015-09-04

Similar Documents

Publication Publication Date Title
CN105683921B (zh) 多处理器装置及其引导加载程序更新方法
US11023589B2 (en) Secure booting of virtualization managers
AU2020202180B2 (en) Memory allocation techniques at partially-offloaded virtualization managers
EP4075270B1 (en) Performance variability reduction using an opportunistic hypervisor
CN104995627B (zh) 片上系统设备中的密钥撤消
CN111158767B (zh) 基于bmc的服务器安全启动方法及装置
US9696988B2 (en) Upgrade processing method, apparatus and system for CPLD
CN106873990A (zh) 嵌入式系统ram损坏模式下的多分区引导方法
CN108292342A (zh) 向固件中的侵入的通知
CN109614153A (zh) 多核芯片及系统
US11023335B2 (en) Computer and control method thereof for diagnosing abnormality
EP3828699A1 (en) Information processing device, management program, management method, and information processing system
CN108270832B (zh) 一种故障重放方法和装置
US11550619B2 (en) Information processing device and processing method
JP6674387B2 (ja) 致命的なエラーの発生の直後のコンピュータの処理モジュールレジスタに格納された情報の取得方法
US11836255B1 (en) Microcontroller unit (MCU) secure boot
CN115904516A (zh) 基于信任根的基板管理控制器启动方法及其相关组件
CN116755746A (zh) 智能通信单元的升级方法、装置和系统
CN118069205A (zh) 可编程逻辑器件版本的回退方法、装置、设备及存储介质
CN115994016A (zh) 基于容器组状态的容器组运维变更方法及系统
JP2013140519A (ja) コンピュータ装置、及びコンピュータ装置の診断方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant