CN110069363B - 更新多处理器装置引导加载程序的方法、存储介质及装置 - Google Patents
更新多处理器装置引导加载程序的方法、存储介质及装置 Download PDFInfo
- Publication number
- CN110069363B CN110069363B CN201910260833.4A CN201910260833A CN110069363B CN 110069363 B CN110069363 B CN 110069363B CN 201910260833 A CN201910260833 A CN 201910260833A CN 110069363 B CN110069363 B CN 110069363B
- Authority
- CN
- China
- Prior art keywords
- processor
- bootloader
- boot
- updating
- message
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
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)
- Hardware Redundancy (AREA)
- Power Sources (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.一种包括第一处理器和第二处理器以及可重写非易失性存储器的装置,所述装置被配置用于更新存储在所述可重写非易失性存储器中的引导加载程序,所述第一处理器被配置为执行所述引导加载程序,所述装置被配置为实现相对于所述第一处理器的引导延迟了的所述第二处理器的引导阶段,
在所述引导加载程序的更新期间发生中断而使所述引导加载程序无效时,所述装置被配置为在更新所述引导加载程序的模式下引导,并且由于所述引导加载程序已经无效,所述第一处理器被阻止,所述第二处理器被配置为在引导时检查所述第一处理器是否执行消息交换以同步所述第一处理器和所述第二处理器,并且所述第二处理器被配置为在未从所述第一处理器接收到消息时,发起所述更新引导加载程序的模式;以及
当所述引导加载程序不是无效时,所述装置被配置为使用所述引导加载程序进行引导,以便使用所述引导加载程序引导所述第一处理器,并且所述引导加载程序请求所述第一处理器引导所述第二处理器并使用所述消息交换来同步所述第一处理器和所述第二处理器。
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 |
---|---|---|---|
FR13/58710 | 2013-09-10 | ||
FR1358710A FR3010553B1 (fr) | 2013-09-10 | 2013-09-10 | Procede de mise a jour d'un logiciel de demarrage d'un dispositif multiprocesseur |
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 |
CN201910260833.4A CN110069363B (zh) | 2013-09-10 | 2014-09-09 | 更新多处理器装置引导加载程序的方法、存储介质及装置 |
CN201480058518.9A CN105683921B (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 CN110069363A (zh) | 2019-07-30 |
CN110069363B true CN110069363B (zh) | 2023-05-12 |
Family
ID=50023663
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910260833.4A Active CN110069363B (zh) | 2013-09-10 | 2014-09-09 | 更新多处理器装置引导加载程序的方法、存储介质及装置 |
CN201480058518.9A Active CN105683921B (zh) | 2013-09-10 | 2014-09-09 | 多处理器装置及其引导加载程序更新方法 |
Family Applications After (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) | CN110069363B (zh) |
BR (1) | BR112016005213B1 (zh) |
FR (1) | FR3010553B1 (zh) |
WO (1) | WO2015036388A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Families Citing this family (6)
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 |
US11797679B2 (en) * | 2021-07-28 | 2023-10-24 | Dell Products, L.P. | Trust verification system and method for a baseboard management controller (BMC) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1550984A (zh) * | 2003-05-08 | 2004-12-01 | ���µ�����ҵ��ʽ���� | 信息处理装置 |
CN102780578A (zh) * | 2012-05-29 | 2012-11-14 | 上海斐讯数据通信技术有限公司 | 网络设备的操作系统的更新系统及更新方法 |
CN103010039A (zh) * | 2011-09-28 | 2013-04-03 | 宁波拜特测控技术有限公司 | 一种电池管理系统引导加载方法 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100506203B1 (ko) * | 2003-09-17 | 2005-08-05 | 삼성전자주식회사 | 부팅 및 부트 코드 업데이트 방법 및 시스템 |
KR100987628B1 (ko) * | 2004-02-07 | 2010-10-13 | 엘지전자 주식회사 | 엠비디드 컨트롤러의 펌웨어 갱신방법 및 갱신용 펌웨어저장매체 |
US7574590B2 (en) * | 2005-10-26 | 2009-08-11 | Sigmatel, Inc. | Method for booting a system on a chip integrated circuit |
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 | 日本電気株式会社 | ファームウェア更新回路およびファームウェア更新方法 |
JP2007206885A (ja) * | 2006-01-31 | 2007-08-16 | Toshiba Corp | コンピュータシステム及びシステム起動方法 |
US7870379B2 (en) * | 2006-10-10 | 2011-01-11 | Exaflop Llc | Updating a power supply microcontroller |
US8320302B2 (en) * | 2007-04-20 | 2012-11-27 | 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 |
WO2009156615A1 (fr) * | 2008-06-02 | 2009-12-30 | Awox | Procede et dispositif de mise a jour d'application informatique |
CN101739270B (zh) * | 2008-11-05 | 2013-04-03 | 英华达(上海)科技有限公司 | 电子装置及其系统更新方法 |
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 |
US9274805B2 (en) * | 2012-02-24 | 2016-03-01 | Qualcomm Incorporated | System and method for thermally aware device booting |
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 |
-
2013
- 2013-09-10 FR FR1358710A patent/FR3010553B1/fr not_active Expired - Fee Related
-
2014
- 2014-09-09 BR BR112016005213-7A patent/BR112016005213B1/pt active IP Right Grant
- 2014-09-09 WO PCT/EP2014/069157 patent/WO2015036388A1/fr active Application Filing
- 2014-09-09 CN CN201910260833.4A patent/CN110069363B/zh active Active
- 2014-09-09 US US14/917,710 patent/US10289422B2/en active Active
- 2014-09-09 EP EP19164830.2A patent/EP3540602B1/fr active Active
- 2014-09-09 EP EP14761841.7A patent/EP3044679B1/fr active Active
- 2014-09-09 CN CN201480058518.9A patent/CN105683921B/zh active Active
-
2019
- 2019-03-29 US US16/370,194 patent/US11061690B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1550984A (zh) * | 2003-05-08 | 2004-12-01 | ���µ�����ҵ��ʽ���� | 信息处理装置 |
CN103010039A (zh) * | 2011-09-28 | 2013-04-03 | 宁波拜特测控技术有限公司 | 一种电池管理系统引导加载方法 |
CN102780578A (zh) * | 2012-05-29 | 2012-11-14 | 上海斐讯数据通信技术有限公司 | 网络设备的操作系统的更新系统及更新方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Also Published As
Publication number | Publication date |
---|---|
US10289422B2 (en) | 2019-05-14 |
FR3010553A1 (fr) | 2015-03-13 |
BR112016005213B1 (pt) | 2021-01-26 |
CN105683921B (zh) | 2019-04-23 |
WO2015036388A1 (fr) | 2015-03-19 |
EP3044679A1 (fr) | 2016-07-20 |
US20160216978A1 (en) | 2016-07-28 |
US20190227811A1 (en) | 2019-07-25 |
EP3044679B1 (fr) | 2019-05-15 |
CN105683921A (zh) | 2016-06-15 |
CN110069363A (zh) | 2019-07-30 |
FR3010553B1 (fr) | 2015-09-04 |
US11061690B2 (en) | 2021-07-13 |
EP3540602B1 (fr) | 2020-12-16 |
EP3540602A1 (fr) | 2019-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069363B (zh) | 更新多处理器装置引导加载程序的方法、存储介质及装置 | |
US11520894B2 (en) | Verifying controller code | |
EP2989579B1 (en) | Redundant system boot code in a secondary non-volatile memory | |
US9880908B2 (en) | Recovering from compromised system boot code | |
TWI522838B (zh) | 組配系統之技術 | |
CN111158767B (zh) | 基于bmc的服务器安全启动方法及装置 | |
CN110795738B (zh) | 一种计算机的启动方法和控制器、存储介质以及系统 | |
WO2018095107A1 (zh) | 一种bios程序的异常处理方法及装置 | |
WO2016206514A1 (zh) | 启动处理方法及装置 | |
EP2798428B1 (en) | Apparatus and method for managing operation of a mobile device | |
US20210357499A1 (en) | Restoration of firmware subsystems based on manufacturing states | |
TWI764454B (zh) | 韌體損壞恢復技術 | |
JP5818257B2 (ja) | 計算機システム、電源切断処理装置、電源切断処理方法およびプログラム | |
TWI541724B (zh) | 寫入基本輸入輸出系統程式碼的電路與寫入方法 | |
KR101461650B1 (ko) | 컴퓨팅 디바이스의 파일 시스템 관리 장치 및 방법 | |
TW201506795A (zh) | 虛擬bios開機系統及方法 | |
US11803220B2 (en) | Information processing apparatus and method | |
JP2019016218A (ja) | 情報処理装置、制御装置および情報処理装置の制御方法 | |
CN117170721A (zh) | 基于bmc的fpga固件处理方法及装置 | |
CN117331593A (zh) | 双备份升级方法、计算机设备及存储介质 |
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 |