用于提高启动可靠性的电子设备及方法

文档序号:6400218阅读:148来源:国知局
专利名称:用于提高启动可靠性的电子设备及方法
技术领域
本发明涉及启动技术,特别涉及一种用于提高启动可靠性的电子设备、以及用于提高启动可靠性的方法。
背景技术
电子设备在CPU上电后、操作系统开始运行前,需要由CPU加载并运行一段Boot(弓I导)程序。Boot程序通常都是保存在Boot存储器中,当CPU上电或复位后,其会从Boot存储器中加载Boot程序并运行,从而实现正常的启动;但如果保存在Boot存储器中的Boot程序的可执行代码损坏、或与操作系统不匹配,就会导致CPU错误地运行Boot程序,从而导致电子设备无法正常启动。实际应用中,Boot存储器可以选用例如Flash (闪存)等非易失性存储器,常见的Boot 存储器包括 Nor (或非)Flash、Nand (与非)Flash、SPI (Serial Peripheral Interface串行外设接口)Flash。相比之下,Nor Flash的数据访问难度最低、管脚数量最多、成本最高,Nand Flash的数据访问难度最高、成本适中、管脚数量适中,SPI Flash的数据访问难度适中、管脚数量最少、成本最低,因此,目前SPI Flash被越来越多地用作Boot存储器。由于CPU是电子设备的核心,而Boot程序是CPU上电后最先执行的代码,所以CPU能否从SPI Flash成功加载Boot程序是电子设备可靠性的基础。相应地,若选用SPI Flash作为Boot存储器,则由于SPI Flash的选址方式为间接选址、无法实现对Boot程序的片内逻辑备份,因此,通常都是通过设置两片SPI Flash来实现对Boot程序的物理备份。在用于网络通信的某些模块化的电子设备中,通常会在用于实现主控功能的主板设置双SPI Flash的物理备份方式;但对于例如接口板等用于实现模块化功能的模块子板来说,由于其PCB (Printed Circuit Board,印刷电路板)的面积较小,因而不能采用双SPIFlash的物理备份方式。从而,对于采用单SPI Flash的模块子板来说,当其SPI Flash中的Boot程序的可执行代码损坏、或与操作系统不匹配时,就会导致模块子板无法正常启动,从而影响电子设备的整体运行;而且,若需要刷新SPI Flash中损坏或不匹配的Boot程序的可执行代码,则必须断电、并手动刷新。

发明内容
有鉴于此,本发明提供了一种用于提高启动可靠性的电子设备、以及一种用于提高启动可靠性的方法。本发明提供的一种用于提高启动可靠性的电子设备,主板和模块子板,主板具有主板CPU,模块子板具有子板CPU和一个引导存储器以及逻辑芯片,该引导存储器为间接选址的非易失性存储器、并存放有子板CPU的引导程序;逻辑芯片与子板CPU之间连接有复位信号线,用于逻辑芯片在模块子板上电后控制子板CPU进入启动加载状态;逻辑芯片与子板CPU之间连接有第一 I/O总线,用于逻辑芯片在子板CPU进入启动加载状态后检测子板CPU是否加载成功;逻辑芯片与子板CPU之间的复位信号线还用于逻辑芯片在检测出子板CPU加载失败后控制子板CPU进入保持复位状态;逻辑芯片与主板CPU之间连接有上报信号线,用于逻辑芯片在检测出子板CPU加载失败后向主板CPU上报异常、以触发主板CPU刷新引导存储器;逻辑芯片与子板CPU之间的复位信号线还用于逻辑芯片在主板CPU完成对引导存储器的刷新后控制子板CPU再次进入启动加载状态;以及,逻辑芯片与引导存储器之间连接有第一接口总线、与子板CPU之间连接有第二接口总线,逻辑芯片与主板CPU之间连接有第二 I/O总线;其中,当子板CPU从引导存储器加载引导程序时,逻辑芯片将第一接口总线与第二接口总线导通,以允许子板CPU在启动加载状态下从弓I导存储器加载弓I导程序;当主板CPU发送用于刷新至引导存储器的弓I导程序时,逻辑芯片将第一接口总线与第二 I/O总线导通、并实现在第一接口总线对引导存储器的间接选址,以使主板CPU在收到上报异常后通过逻辑芯片向引导存储器刷新引导程序。子板CPU进一步在加载成功后向逻辑芯片回写表示加载成功的通知,逻辑芯片依据是否在子板CPU进入启动加载状态后的预定时间内收到该通知来检测子板CPU是否加载成功。主板CPU进一步具有连接上报信号线的中断管脚,逻辑芯片以中断方式向主板CPU上报异常。主板CPU与子板CPU之间连接有业务传输总线。逻辑芯片包括启动监控逻辑电路、CPU复位逻辑电路、切换控制逻辑电路、以及访问控制逻辑电路,其中:启动监控逻辑电路,当模块子板上电、或主板CPU完成对引导存储器的刷新后,触发子板CPU的启动加载状态,并通过第一 I/O总线检测子板CPU的加载状态;当检测出子板CPU加载失败后,触发子板CPU进入保持复位状态,并通过上报信号线向主板CPU上报异常、以触发主板CPU刷新引导存储器;CPU复位逻辑电路,当启动监控逻辑电路触发子板CPU的启动加载状态后,通过复位信号线将子板CPU控制在启动加载状态;当启动监控逻辑电路触发子板CPU的保持复位状态后,通过复位信号线将子板CPU控制在保持复位状态;切换控制逻辑电路,当主板CPU对引导存储器刷新时,将第一接口总线与访问控制逻辑电路导通;其余时刻将第一接口总线与第二接口总线导通;访问控制逻辑电路,当从第二 I/O总线接收到主板CPU向引导存储器刷新的引导程序时,通过切换控制逻辑电路将接收到的引导程序从第一接口总线向引导存储器传输、并实现逻辑芯片对引导存储器的间接选址。逻辑芯片内进一步设置有连接第一 I/O总线的启动完成寄存器;其中,启动完成寄存器的缺省配置为表示子板CPU加载未成功的无效值,当子板CPU成功完成加载时,启动完成寄存器被子板CPU置为有效值;
以及,在触发子板CPU的启动加载状态之后的预定时间内,若启动完成寄存器被子板CPU置为有效值,则启动监控逻辑电路确认子板CPU加载成功;否则,启动监控逻辑电路确认子板CPU加载失败。逻辑芯片内进一步设置有连接第二 I/O总线的刷新完成寄存器,其中,刷新完成寄存器的缺省配置为表示引导存储器完成刷新的有效值;当启动监控逻辑电路在向主板CPU上报异常之后,刷新完成寄存器被启动监控逻辑电路置为表示未完成刷新的无效值;当主板CPU成功完成对引导存储器的刷新后时,刷新完成寄存器被主板CPU恢复为有效值;以及,若刷新完成寄存器为有效值,则启动监控逻辑电路触发子板CPU进入启动加载状态,否则,启动监控逻辑电路触发子板CPU进入保持复位状态、并向主板CPU上报异

巾O逻辑芯片内进一步设置有连接第二 I/O总线的接管状态寄存器;其中,接管状态寄存器的缺省配置为主板CPU未接管的无效值,当主板CPU对弓I导存储器刷新时,接管状态寄存器被主板CPU置为表示主板CPU接管的有效值,当主板CPU完成对引导存储器的刷新后,接管状态寄存器被主板CPU恢复为无效值;以及,若切换控制逻辑电路在接管状态寄存器为有效值时将第一接口总线与第二I/o总线导通,在接管状态寄存器为无效值时将第一接口总线与第二接口总线导通。逻辑芯片内进一步设置有连接第二 I/O总线的数据缓存和存储器地址寄存器,其中,数据缓存用于存放主板CPU向引导存储器刷新的引导程序,存储器地址寄存器用于主板CPU写入引导存储器中存放引导程序的地址;以及,访问控制逻辑电路将数据缓存中的引导程序通过切换控制逻辑电路从第一接口总线向引导存储器传输、并依据存储器地址寄存器中的地址实现对引导存储器的间接选址。引导存储器为SPI Flash,第一接口总线和第二接口总线为SPI总线。本发明提供的一种用于提高启动可靠性的方法,该方法应用于包括主板和模块子板的电子设备中,模块子板具有子板CPU和一个引导存储器以及逻辑芯片,该引导存储器为间接选址的非易失性存储器、并存放有子板CPU的引导程序;并且,该方法包括:当模块子板上电后,将引导存储器与子板CPU导通,并控制子板CPU进入启动加载状态、以使子板CPU在启动加载状态下从引导存储器加载引导程序;当子板CPU进入启动加载状态后,检测子板CPU是否加载成功;当检测出子板CPU加载失败后,控制子板CPU进入保持复位状态,并向主板CPU上报异常、以触发主板CPU刷新引导存储器;当主板CPU依据上报的异常发出用于刷新至引导存储器的引导程序时,将引导存储器切换为与主板CPU导通、并实现对引导存储器的间接选址;当主板CPU完成对引导存储器的刷新后,将引导存储器切换回与子板CPU导通,并控制子板CPU再次进入启动加载状态。子板CPU进一步在加载成功后回写表示加载成功的通知,该方法依据是否在子板CPU进入启动加载状态后的预定时间内收到该通知来检测子板CPU是否加载成功。主板CPU进一步具有中断管脚,该方法以中断方式向主板CPU的中断管脚上报异堂
巾O该方法进一步设置启动完成寄存器;其中,启动完成寄存器的缺省配置为表示子板CPU加载未成功的无效值,当子板CPU成功完成加载时,启动完成寄存器被子板CPU置为有效值;以及,在触发子板CPU的启动加载状态之后的预定时间内,若启动完成寄存器被子板CPU置为有效值,则该方法确认子板CPU加载成功;否则,该方法确认子板CPU加载失败。该方法进一步设置刷新完成寄存器,其中,刷新完成寄存器的缺省配置为表示引导存储器完成刷新的有效值;当该方法在向主板CPU上报异常之后,刷新完成寄存器被该方法置为表示未完成刷新的无效值;当主板CPU成功完成对引导存储器的刷新后时,刷新完成寄存器被主板CPU恢复为有效值;以及,若刷新完成寄存器为有效值,则该方法触发子板CPU进入启动加载状态,否贝U,该方法触发子板CPU进入保持复位状态、并向主板CPU上报异常。该方法进一步设置接管状态寄存器;其中,接管状态寄存器的缺省配置为主板CPU未接管的无效值,当主板CPU对引导存储器刷新时,接管状态寄存器被主板CPU置为表示主板CPU接管的有效值,当主板CPU完成对弓I导存储器的刷新后,接管状态寄存器被主板CPU恢复为无效值;以及,该方法在接管状态寄存器为有效值时将引导存储器与主板CPU导通,在接管状态寄存器为无效值时将引导存储器与子板CPU导通。该方法进一步设置数据缓存和存储器地址寄存器,其中,数据缓存用于存放主板CPU向引导存储器刷新的引导程序,存储器地址寄存器用于主板CPU写入引导存储器中存放引导程序的地址;以及,该方法将数据缓存中的引导程序向引导存储器传输、并依据存储器地址寄存器中的地址实现对弓I导存储器的间接选址。引导存储器为SPI Flash。由此可见,本发明在模块子板的子板CPU从引导存储器加载引导程序失败时,可以自动触发主板CPU掌控对模块子板的引导存储器的控制权、并由主板CPU刷新模块子板的引导存储器中的引导程序;而且,当主板CPU完成刷新后,子板CPU能够重新从模块子板中的引导存储器加载引导程序。从而,本发明能够有效缓解模块子板由于引导程序的损坏或不匹配而无法启动,且无需对电子设备断电和手动刷新,进而能够提高电子设备启动的可靠性。


图1为本发明实施例中用于提高启动可靠性的电子设备的结构示意图;图2为如图1所示电子设备中的主板CPU和模块的逻辑结构示意图;图3为如图1所示电子设备中的逻辑芯片的逻辑结构示意图;图4为本发明实施例中用于提高启动可靠性的方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。参见图1,本实施例中用于提高启动可靠性的电子设备,包括主板100和模块子板200,主板100具有主板CPUlO,模块子板200具有子板CPU20、一个SPI Flash30、以及逻辑芯片40,其中,该SPI Flash30中存放有子板CPU20的Boot程序(本实施例中是以引导存储器选用SPI Flash30为例,但对于其他的间接选址的非易失性存储器也同样适用)。逻辑芯片40与子板CPU20之间连接有复位信号线Rst_signal,逻辑芯片40与子板CPU20之间连接有板内I/O总线,逻辑芯片40与主板CPU20之间连接有上报信号线Abnor_signal。相应地,当模块子板200上电后,逻辑芯片40可通过复位信号线Rst_signal控制子板CPU20进入启动加载状态;当子板CPU20进入启动加载状态后,逻辑芯片40可通过板内I/O总线检测子板CPU20是否加载成功;当检测出子板CPU20加载失败后,逻辑芯片40可通过复位信号线Rst_signal控制子板CPU20进入保持复位状态,并通过上报信号线Abnor_signal向主板CPUlO上报异常(例如以中断方式)、以触发主板CPUlO刷新SPI Flash30。以及,逻辑芯片40与SPI Flash30之间连接有SPI总线、与子板CPU20之间连接有另一 SPI总线(若选用其他的间接选址的非易失性存储器作为引导存储器,则SPI总线需要变更为与之匹配的接口总线),逻辑芯片40与主板CPUlO之间连接有板间I/O总线。相应地,当子板CPU20从SPI Flash30加载Boot程序时,逻辑芯片40将两段SPI总线导通,以允许子板CPU20在启动加载状态下从SPI Flash30加载Boot程序;当主板CPU10发送用于刷新至SPI Flash30的Boot程序时,逻辑芯片40将逻辑芯片40与SPI Flash30之间的一段SPI总线与板间1/0总线导通、并实现在该段SPI总线对SPI Flash30的间接选址,以使主板CPU20在收到上报异常后能够通过逻辑芯片40向SPI Flash30刷新Boot程序。可见,在上述电子设备中,当模块子板200的子板CPU20从SPI Flash30加载Boot程序失败时,可以被逻辑芯片40检测到、并自动触发主板CPU10掌控对模块子板200的SPIFlash30的控制权,从而由主板CPU10刷新模块子板200的SPI Flash30中的Boot程序;而且,当主板CPU10完成对SPI Flash30的刷新后,逻辑芯片40能够控制子板CPU20重新从模块子板200中的SPI Flash30加载Boot程序。从而,本实施例所提供的上述电子设备能够有效缓解模块子板200由于Boot程序的损坏或不匹配而无法启动,且无需对电子设备断电和手动刷新,进而能够提高电子设备启动的可靠性。请在参见图1的同时结合图2,在具体实现上述电子设备时,子板CPU20在成功完成加载后,可以向逻辑芯片40回写表示加载成功的通知,逻辑芯片40依据是否在子板CPU20进入启动加载状态后的预定时间内收到子板CPU20回写的该通知来实现检测,即,在触发子板CPU20的启动加载状态之后的预定时间内,若逻辑芯片40收到了子板CPU20的通知,则认为子板CPU20加载成功,否则认为子板CPU20加载失败。相应地,为了实现子板CPU20的上述通知功能,可以在子板CPU20的处理内核中运行一段回写程序,处理内核通过该回写程序可驱动CPU20的1/0控制器、并通过板内1/0总线向逻辑芯片40回写上述通知,处理内核还可以驱动SPI控制器、并通过SPI总线实现从SPI Flash30加载Boot程序。请在参见图1的同时结合图2,在具体实现上述电子设备时,主板CPU10可以具有连接上报信号线Abnor_Signal的中断管脚;相应地,逻辑芯片40可以采用中断的方式向主板CPUlO上报异常。请在参见图1的同时结合图2,在具体实现上述电子设备时,为了实现主板CPUlO响应逻辑芯片40上报的异常、并执行对SPI Flash30的刷新,可以在主板CPUlO中运行一段以上报异常为触发条件的刷新程序。另外,主板CPUlO与子板CPU20之间可以连接有业务传输总线,即,主板CPUlO与逻辑芯片40之间的板间I/O总线是独立于业务传输总线之外的一条硬件访问通道,因此,对应于板间I/O总线的该刷新程序不同于主板CPUlO用于与子板CPU20传输业务数据的主程序,从而,即便在子板CPU20成功加载Boot程序并正常运行时,主板CPUlO也可以通过基于板间I/O总线的硬件访问通道来访问SPI Flash30、而不会影响子板CPU20的正常运行。请在参见图1的同时结合图3,针对上述的逻辑芯片40,本实施例还提供了一种优选的实现方式,如图3所示,该逻辑芯片40的内部具有启动监控逻辑电路41、CPU复位逻辑电路42、切换控制逻辑电路43、以及访问控制逻辑电路44。启动监控逻辑电路41在模块子板200上电后,触发子板CPU20的启动加载状态、并通过板内I/o总线检测子板CPU20的加载状态(即子板CPU20是否在预定的时间内回写了前文所述的通知);相应地,当启动监控逻辑电路41触发子板CPU的启动加载状态后,CPU复位逻辑电路42通过复位信号线Res_signal将子板CPU控制在启动加载状态。启动监控逻辑电路41还在检测出子板CPU20加载失败后,启动监控逻辑电路41触发子板CPU20进入保持复位状态,并通过上报信号线Abnor_signal向主板CPUlO上报异常(例如以中断方式)、以触发主板CPUlO刷新SPI Flash30;相应地,CPU复位逻辑电路42通过复位信号线Res_signal将子板CPU20控制在保持复位状态。切换控制逻辑电路43在主板CPUlO对SPI Flash30刷新时、即主板CPUlO接管SPI Flash30的期间内,将逻辑芯片40与SPI Flash30之间的一段SPI总线与连接板间I/O总线的访问控制逻辑电路44导通,以使主板CPU20在收到上报异常后能够通过逻辑芯片40向SPI Flash30刷新Boot程序;其余时刻、即主板CPUlO未接管SPI Flash30的期间内,将两段SPI接口总线导通,以允许子板CPU20在启动加载状态下从SPI Flash30加载Boot程序。访问控制逻辑电路44在从板间1/0总线接收到主板CPU10向SPI Flash30刷新的Boot程序时,通过切换控制逻辑电路43 (逻辑芯片40与SPI Flash30之间的一段SPI总线此时与板间1/0总线导通)将接收到的Boot程序从逻辑芯片40与SPI Flash30之间的一段SPI向SPI Flash30传输、并实现对SPI Flash30的间接选址。启动监控逻辑电路41还在主板CPU10完成对SPI Flash30的刷新后,再次触发子板CPU20的启动加载状态、并通过板内1/0总线检测子板CPU20的加载状态(即子板CPU20是否在预定的时间内回写了前文所述的通知);相应地,当启动监控逻辑电路41再次触发子板CPU的启动加载状态后,CPU复位逻辑电路42再次通过复位信号线Res_signal将子板CPU控制在启动加载状态。若启动监控逻辑电路41此后仍检测出子板CPU20加载失败,则逻辑芯片40中的各逻辑电路需要重复执行上述过程;若启动监控逻辑电路41此后检测出子板CPU20加载成功,则逻辑芯片40中的各逻辑电路可以停止工作,只需由切换控制逻辑电路43保持两段SPI接口总线的导通即可。为了支持子板CPU20以回写方式来支持逻辑芯片40的检测,可以在逻辑芯片40内进一步设置连接板内I/O总线的启动完成寄存器51 ;其中,启动完成寄存器51的缺省配置为表示子板CPU20加载未成功的无效值,而当子板CPU20成功完成加载时,启动完成寄存器51就会被子板CPU20通过回写而置为表示子板CPU20加载成功的有效值。相应地,在触发子板CPU20的启动加载状态之后的预定时间内,若启动完成寄存器51被子板CPU20通过回写而置为有效值,则启动监控逻辑电路51确认子板CPU20加载成功;否则,启动监控逻辑电路51确认子板CPU20加载失败。为了便于逻辑芯片40能够及时获知主板CPUlO是否对SPI Flash30刷新完毕,可以在逻辑芯片40内进一步设置连接板间I/O总线的刷新完成寄存器52 ;其中,刷新完成寄存器52的缺省配置为表示SPI Flash30完成刷新的有效值,即逻辑芯片40默认子板CPU20从SPI Flash30加载Boot程序;当启动监控逻辑电路51在向主板CPUlO上报异常之后,刷新完成寄存器52被启动监控逻辑电路51置为表示未完成刷新的无效值;当主板CPUlO成功完成对SPI Flash30的刷新后时,刷新完成寄存器52被主板CPUlO恢复为有效值。相应地,若刷新完成寄存器52为有效值,则启动监控逻辑电路51触发子板CPU20进入启动加载状态,否则,启动监控逻辑电路52触发子板CPU20进入保持复位状态、并向主板CPUlO上报异常。为了便于逻辑芯片40能够获知主板CPUlO是否接管SPI Flash30,可以在逻辑芯片40内进一步设置连接板间I/O总线的接管状态寄存器53 ;其中,接管状态寄存器53的缺省配置为主板CPUlO未接管的无效值,当主板CPUlO对SPI Flash30刷新时,接管状态寄存器53被主板CPUlO置为表示主板CPUlO接管的有效值,当主板CPUlO完成对SPI Flash30的刷新后,接管状态寄存器53被主板CPUlO恢复为无效值。相应地,若切换控制逻辑电路43在接管状态寄存器53为有效值时将逻辑芯片40与SPI Flash30之间的一段SPI总线与板间I/O总线导通,在接管状态寄存器53为无效值时将两段SPI总线导通。为了便于逻辑芯片40传输主板CPUlO刷新的Boot程序、以及对SPI Flash30的间接寻址,可以在逻辑芯片40内进一步设置连接板间I/O总线的数据缓存54和存储器地址寄存器55,其中,数据缓存54用于存放主板CPUlO向SPI Flash30刷新的Boot程序,存储器地址寄存器55用于主板CPU10写入SPI Flash30中存放Boot程序的地址。相应地,访问控制逻辑电路44可将数据缓存54中的Boot程序通过切换控制逻辑电路43从逻辑芯片40与SPI Flash30之间的一段SPI总线向SPI Flash30传输、并依据存储器地址寄存器55中的地址实现对SPI Flash30的间接选址。以上是对本实施例中用于提高启动可靠性的电子设备的详细说明。基于该电子设备用于提高启动可靠性的基本原理,本实施例还提供了一种用于提高启动可靠性的方法,且该方法能够应用于包括主板和模块子板的上述电子设备中。参见图4,本实施例中用于提高启动可靠性的方法包括:步骤401,当模块子板上电后,将引导存储器与子板CPU导通,并控制子板CPU进入启动加载状态、以使子板CPU在启动加载状态下从引导存储器加载Boot程序。步骤402,当子板CPU进入启动加载状态后,检测子板CPU是否加载成功。实际应用中,子板CPU可以进一步在加载成功后回写表示加载成功的通知,此时,本步骤可以依据是否在子板CPU进入启动加载状态后的预定时间内收到该通知来实现检测。 步骤403,当检测出子板CPU加载失败后,控制子板CPU进入保持复位状态,并向主板CPU上报异常、以触发主板CPU刷新引导存储器。实际应用中,主板CPU可以进一步具有中断管脚,此时,本步骤可以中断方式向主板CPU的中断管脚上报异常。步骤404,当主板CPU依据上报的异常发出用于刷新至引导存储器的Boot程序时,将引导存储器切换为与主板CPU导通、并实现对引导存储器的间接选址。步骤405,当主板CPU完成对引导存储器的刷新后,将引导存储器切换回与子板CPU导通,并控制子板CPU再次进入启动加载状态,然后返回步骤402继续检测。在上述流程中,只要步骤402检测出子板CPU加载成功,则表示模块子板启动完成、并可以结束本流程。可见,基于上述流程,当模块子板的子板CPU从引导存储器加载Boot程序失败时,可以自动触发主板CPU掌控对模块子板的引导存储器的控制权、并由主板CPU刷新模块子板的引导存储器中的Boot程序;而且,当主板CPU完成刷新后,子板CPU能够重新从模块子板中的引导存储器加载Boot程序。从而,本发明能够有效缓解模块子板由于Boot程序的损坏或不匹配而无法启动,且无需对电子设备断电和手动刷新,进而能够提高电子设备启动的可靠性。为了支持子板CPU以回写方式来支持步骤402的检测,上述方法可以进一步设置启动完成寄存器。其中,启动完成寄存器的缺省配置为表示子板CPU加载未成功的无效值,当子板CPU成功完成加载时,启动完成寄存器被子板CPU置为表示子板CPU加载成功的有效值。相应地,在触发子板CPU的启动加载状态之后的预定时间内,若启动完成寄存器被子板CPU置为有效值,则该方法的步骤402确认子板CPU加载成功;否则,该方法的步骤402确认子板CPU加载失败。为了便于上述方法能够及时获知主板CPU是否对引导存储器刷新完毕,该方法可以进一步设置刷新完成寄存器。其中,刷新完成寄存器的缺省配置为表示引导存储器完成刷新的有效值;当该方法在通过步骤403向主板CPU上报异常之后,刷新完成寄存器被步骤403、该方法进一步包括的一步骤置为表示未完成刷新的无效值;当主板CPU成功完成对引导存储器的刷新后时,刷新完成寄存器被主板CPU恢复为有效值。相应地,若刷新完成寄存器为有效值,则该方法通过步骤401 (模块子板上电)或步骤405 (主板CPU刷新完毕)触发子板CPU进入启动加载状态,否则,该方法通过步骤403触发子板CPU进入保持复位状态、并向主板CPU上报异常。为了便于上述方法能够获知主板CPU是否接管引导存储器,该方法可以进一步设置接管状态寄存器。其中,接管状态寄存器的缺省配置为主板CPU未接管的无效值,当主板CPU对引导存储器刷新时,接管状态寄存器被主板CPU置为表示主板CPU接管的有效值,当主板CPU完成对引导存储器的刷新后,接管状态寄存器被主板CPU恢复为无效值。相应地,该方法在接管状态寄存器为有效值时通过步骤404将引导存储器与主板CPU导通,在接管状态寄存器为无效值时将引导存储器与子板CPU导通。为了便于传输主板CPU刷新的Boot程序、以及对引导存储器的间接寻址,该方法可以进一步设置数据缓存和存储器地址寄存器。其中,数据缓存用于存放主板CPU向引导存储器刷新的Boot程序,存储器地址寄存器用于主板CPU写入引导存储器中存放Boot程序的地址。相应地,该方法的步骤4014可以将数据缓存中的Boot程序向引导存储器传输、并依据存储器地址寄存器中的地址实现对引导存储器的间接选址。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种用于提高启动可靠性的电子设备,其特征在于,包括主板和模块子板,主板具有主板CPU,模块子板具有子板CPU和一个引导存储器以及逻辑芯片,该引导存储器为间接选址的非易失性存储器、并存放有子板CPU的引导程序; 逻辑芯片与子板CPU之间连接有复位信号线,用于逻辑芯片在模块子板上电后控制子板CPU进入启动加载状态; 逻辑芯片与子板CPU之间连接有第一 I/O总线,用于逻辑芯片在子板CPU进入启动加载状态后检测子板CPU是否加载成功; 逻辑芯片与子板CPU之间的复位信号线还用于逻辑芯片在检测出子板CPU加载失败后控制子板CPU进入保持复位状态; 逻辑芯片与主板CPU之间连接有上报信号线,用于逻辑芯片在检测出子板CPU加载失败后向主板CPU上报异常、以触发主板CPU刷新引导存储器; 逻辑芯片与子板CPU之间的复位信号线还用于逻辑芯片在主板CPU完成对引导存储器的刷新后控制子板CPU再次进入启动加载状态; 以及,逻辑芯片与引导存储器之间连接有第一接口总线、与子板CPU之间连接有第二接口总线,逻辑芯片与主板CPU之间连接有第二 I/O总线;其中,当子板CPU从引导存储器加载引导程序时,逻辑芯片将第一接口总线与第二接口总线导通,以允许子板CPU在启动加载状态下从引导存储器加载引导程序;当主板CPU发送用于刷新至引导存储器的引导程序时,逻辑芯片将第一接口总线与第二 I/o总线导通、并实现在第一接口总线对引导存储器的间接选址,以使主板CPU在收到上报异常后通过逻辑芯片向引导存储器刷新引导程序。
2.根据权利要求1所述的电子设备,其特征在于,子板CPU进一步在加载成功后向逻辑芯片回写表示加载成功的通知,逻辑芯片依据是否在子板CPU进入启动加载状态后的预定时间内收到该通知来检测子板CPU是否加载成功。
3.根据权利要求1所述的电子设备,其特征在于,主板CPU进一步具有连接上报信号线的中断管脚,逻辑芯片以中断方式向主板CPU上报异常。
4.根据权利要求1所述的电子设备,其特征在于,逻辑芯片包括启动监控逻辑电路、CPU复位逻辑电路、切换控制逻辑电路、以及访问控制逻辑电路,其中: 启动监控逻辑电路,当模块子板上电、或主板CPU完成对引导存储器的刷新后,触发子板CPU的启动加载状态,并通过第一 I/O总线检测子板CPU的加载状态;当检测出子板CPU加载失败后,触发子板CPU进入保持复位状态,并通过上报信号线向主板CPU上报异常、以触发主板CPU刷新引导存储器; CPU复位逻辑电路,当启动监控逻辑电路触发子板CPU的启动加载状态后,通过复位信号线将子板CPU控制在启动加载状态;当启动监控逻辑电路触发子板CPU的保持复位状态后,通过复位信号线将子板CPU控制在保持复位状态; 切换控制逻辑电路,当主板CPU对引导存储器刷新时,将第一接口总线与访问控制逻辑电路导通;其余时刻将第一接口总线与第二接口总线导通; 访问控制逻辑电路,当从第二 I/o总线接收到主板CPU向引导存储器刷新的引导程序时,通过切换控制逻辑电路将接收到的引导程序从第一接口总线向引导存储器传输、并实现逻辑芯片对引导存储器的间接选址。
5.根据权利要求4所述的电子设备,其特征在于,逻辑芯片内进一步设置有连接第一I/o总线的启动完成寄存器;其中,启动完成寄存器的缺省配置为表示子板CPU加载未成功的无效值,当子板CPU成功完成加载时,启动完成寄存器被子板CPU置为有效值; 以及,在触发子板CPU的启动加载状态之后的预定时间内,若启动完成寄存器被子板CPU置为有效值,则启动监控逻辑电路确认子板CPU加载成功;否则,启动监控逻辑电路确认子板CPU加载失败。
6.根据权利要求4所述的电子设备,其特征在于,逻辑芯片内进一步设置有连接第二I/o总线的刷新完成寄存器,其中,刷新完成寄存器的缺省配置为表示引导存储器完成刷新的有效值;当启动监控逻辑电路在向主板CPU上报异常之后,刷新完成寄存器被启动监控逻辑电路置为表示未完成刷新的无效值;当主板CPU成功完成对引导存储器的刷新后时,刷新完成寄存器被主板CPU恢复为有效值; 以及,若刷新完成寄存器为有效值,则启动监控逻辑电路触发子板CPU进入启动加载状态,否则,启动监控逻辑电路触发子板CPU进入保持复位状态、并向主板CPU上报异常。
7.根据权利要求4所述的电子设备,其特征在于,逻辑芯片内进一步设置有连接第二I/o总线的接管状态寄存器;其中,接管状态寄存器的缺省配置为主板CPU未接管的无效值,当主板CPU对引导存储器刷新时,接管状态寄存器被主板CPU置为表示主板CPU接管的有效值,当主板CPU完成对引导存储器的刷新后,接管状态寄存器被主板CPU恢复为无效值; 以及,若切换控制逻辑电路在接管状态寄存器为有效值时将第一接口总线与第二 I/o总线导通,在接管状态寄存器为无效值时将第一接口总线与第二接口总线导通。
8.根据权利要求4所述的电子设备,其特征在于,逻辑芯片内进一步设置有连接第二I/o总线的数据缓存和存储器地址寄存器,其中,数据缓存用于存放主板CPU向引导存储器刷新的引导程序, 存储器地址寄存器用于主板CPU写入引导存储器中存放引导程序的地址; 以及,访问控制逻辑电路将数据缓存中的引导程序通过切换控制逻辑电路从第一接口总线向引导存储器传输、并依据存储器地址寄存器中的地址实现对引导存储器的间接选址。
9.根据权利要求1至8中任意一项所述的电子设备,其特征在于,引导存储器为SPIFlash,第一接口总线和第二接口总线为SPI总线。
10.一种用于提高启动可靠性的方法,其特征在于,该方法应用于包括主板和模块子板的电子设备中,模块子板具有子板CPU和一个引导存储器以及逻辑芯片,该引导存储器为间接选址的非易失性存储器、并存放有子板CPU的引导程序;并且,该方法包括: 当模块子板上电后,将引导存储器与子板CPU导通,并控制子板CPU进入启动加载状态、以使子板CPU在启动加载状态下从弓I导存储器加载弓I导程序; 当子板CPU进入启动加载状态后,检测子板CPU是否加载成功; 当检测出子板CPU加载失败后,控制子板CPU进入保持复位状态,并向主板CPU上报异常、以触发主板CPU刷新引导存储器; 当主板CPU依据上报的异常发出用于刷新至引导存储器的引导程序时,将引导存储器切换为与主板CPU导通、并实现对引导存储器的间接选址;当主板CPU完成对引导存储器的刷新后,将引导存储器切换回与子板CPU导通,并控制子板CPU再次进入启动加载状态。
11.根据权利要求10所述的方法,其特征在于,子板CPU进一步在加载成功后回写表示加载成功的通知,该方法依据是否在子板CPU进入启动加载状态后的预定时间内收到该通知来检测子板CPU是否加载成功。
12.根据权利要求10所述的方法,其特征在于,主板CPU进一步具有中断管脚,该方法以中断方式向主板CPU的中断管脚上报异常。
13.根据权利要求11所述的方法,其特征在于,该方法进一步设置启动完成寄存器;其中,启动完成寄存器的缺省配置为表示子板CPU加载未成功的无效值,当子板CPU成功完成加载时,启动完成寄存器被子板CPU置为有效值; 以及,在触发子板CPU的启动加载状态之后的预定时间内,若启动完成寄存器被子板CPU置为有效值,则该方法确认子板CPU加载成功;否则,该方法确认子板CPU加载失败。
14.根据权利要求10所述的方法,其特征在于,该方法进一步设置刷新完成寄存器,其中,刷新完成寄存器的缺省配置为表示引导存储器完成刷新的有效值;当该方法在向主板CPU上报异常之后,刷新完成寄存器被该方法置为表示未完成刷新的无效值;当主板CPU成功完成对引导存储器的刷新后时,刷新完成寄存器被主板CPU恢复为有效值; 以及,若刷新完成寄存器为有效值,则该方法触发子板CPU进入启动加载状态,否则,该方法触发子板CPU进入保持复位状态、并向主板CPU上报异常。
15.根据权利要求10所述的方法,其特征在于,该方法进一步设置接管状态寄存器;其中,接管状态寄存器的缺省配置为主板(PU未接管的无效值,当主板CPU对引导存储器刷新时,接管状态寄存器被主板CPU置为表示主板CPU接管的有效值,当主板CPU完成对引导存储器的刷新后,接管状态寄存器被主板CPU恢复为无效值; 以及,该方法在接管状态寄存器为有效值时将引导存储器与主板CPU导通,在接管状态寄存器为无效值时将引导存储器与子板CPU导通。
16.根据权利要求10所述的方法,其特征在于,该方法进一步设置数据缓存和存储器地址寄存器,其中,数据缓存用于存放主板CPU向引导存储器刷新的引导程序,存储器地址寄存器用于主板CPU写入引导存储器中存放引导程序的地址; 以及,该方法将数据缓存中的引导程序向引导存储器传输、并依据存储器地址寄存器中的地址实现对弓I导存储器的间接选址。
17.根据权利要求10至16中任意一项所述的方法,其特征在于,引导存储器为SPIFlash。
全文摘要
本发明公开了一种用于提高启动可靠性的电子设备及方法。本发明在模块子板的子板CPU从引导存储器加载引导程序失败时,可以自动触发主板CPU掌控对模块子板的引导存储器的控制权、并由主板CPU刷新模块子板的引导存储器中的引导程序;而且,当主板CPU完成刷新后,子板CPU能够重新从模块子板中的引导存储器加载引导程序。从而,本发明能够有效缓解模块子板由于引导程序的损坏或不匹配而无法启动,且无需对电子设备断电和手动刷新,进而能够提高电子设备启动的可靠性。
文档编号G06F11/07GK103150224SQ20131007735
公开日2013年6月12日 申请日期2013年3月11日 优先权日2013年3月11日
发明者赵志宇, 慕长林 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1