CN102135891B - 可实现引导启动的系统及引导启动控制装置和方法 - Google Patents
可实现引导启动的系统及引导启动控制装置和方法 Download PDFInfo
- Publication number
- CN102135891B CN102135891B CN 201010003354 CN201010003354A CN102135891B CN 102135891 B CN102135891 B CN 102135891B CN 201010003354 CN201010003354 CN 201010003354 CN 201010003354 A CN201010003354 A CN 201010003354A CN 102135891 B CN102135891 B CN 102135891B
- Authority
- CN
- China
- Prior art keywords
- cpu
- code
- semiconductor memory
- nonvolatile semiconductor
- memory member
- 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
Abstract
本发明公开了一种可实现引导启动的系统及引导启动的加载控制装置和方法。本发明将引导程序存放在不支持芯片内执行(XIP)操作但具有自动读特性的第一非易失性存储器件中,并将引导程序可被自动读的第一部分代码备份于第二非易失性存储器件、将剩余的第二部分代码备份于第一非易失性存储器件;逻辑芯片读取第一部分代码的备份至内置RAM、并切换CPU的引导片选输出与第一非易失性存储器件和内置RAM片选输入的导通,以供CPU从第一非易失性存储器件获取第一部分代码、或从内置RAM获取第一部分代码的备份;逻辑芯片还可以向CPU提供第二部分代码或其任一备份于第一非易失性存储器件中的位置信息,从而实现第二部分代码的备份启动。
Description
技术领域
本发明涉及用于设备启动的引导技术,特别涉及一种可实现引导启动的系统、以及一种引导启动控制装置和一种引导启动控制方法。
背景技术
系统的引导程序,就是在CPU运行操作系统内核之前预先运行的一段小程序,以供CPU初始化硬件设备、并建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为CPU最终调用操作系统内核准备好正确的环境。
实际应用中,引导程序通常存放在支持芯片内执行(eXecute In Place,XIP)操作的非易失性存储器件上,这样,CPU可以按照访问内存的方式来访问该非易失性存储器件、用以直接执行该非易失性存储器件所存放的引导程序。例如,或非闪存(NOR FLASH)就是一种支持XIP操作的非易失性存储器件,其接口形式如图1所示,至少包括地址总线、数据总线、片选(CE)输入、读使能(OE)输入、写使能(WE)输入,NOR FLASH的接口读写控制时序与通常用作内存的RAM相同,因而使得NOR FLASH成为存放引导程序的一种主流芯片。
此外,与非闪存(NAND FLASH)也常用于存放引导程序,其相比于NOR FLASH具有更高的单元密度、更小的单元尺寸,且擦写寿命约为NORFLASH的10倍,但NAND FLASH不区分地址和数据总线、因而不支持XIP,其接口形式如图2所示,包括I/O总线、地址锁存使能(ALE)输入、命令锁存使能(CLE)输入、CE输入、WE输入、读使能(RD)输入,其中,ALE输入有效时表示I/O总线传输的是地址信息、CLE输入有效时表示I/O总线传输的是操作命令,相应地,基于如图3所示的系统结构,CPU对NANDFLASH的读写操作都是通过在I/O总线串行交互地址信息和命令来实现的,这种读写操作方式显然与RAM不同,因而无法支持XIP操作。
虽然NAND FLASH不支持XIP操作,但多数NAND FLASH都支持一种自动读(Auto Read)的特性,具体参见图4,在S1,系统启动后,NANDFLASH会自动将引导程序中存放在固定位置的Part0代码读入到内置缓存(BUFFER)中,读入至内置BUFFER的Part0代码的大小约为几k,然后在S2,NAND FLASH将内置BUFFER中的Part0代码输出到I/O总线上、而不受CPU输出的地址总线变化的影响,即实现了Auto Read;此后,CPU利用Part0代码完成其内部的NAND FLASH接口控制器及其他必要的初始化操作,即可在S3通过NAND FLASH接口控制器,按照前述串行利用I/O总线的方式从NAND FLASH中读取引导程序中剩余部分的Part1代码,最终完成全部的引导启动操作。
然而,上述方式利用NAND FLASH引导启动的方式却存在如下问题:
1)位翻转和坏块问题:NAND FLASH通常都会存在位翻转和坏块问题,即NAND FLASH的数据存储可靠性比NOR FLASH差,如果使用NANDFLASH保存一般性数据,位翻转和坏块问题可能并不是致命的,但如果使用NAND FLASH存储例如引导程序等敏感信息,则位翻转和坏块所导致的引导程序的微小错误即会被放大、并可导致系统停机等致命性问题,虽然CPU内的NAND FLASH接口控制器提供了纠错功能,但其无法彻底解决NAND FLASH数据存储不可靠的问题;
2)无法实现引导程序的备份:正是由于NAND FLASH存在位翻转和坏块的问题而易导致引导程序出现错误、进而导致致命问题,因而引导程序的备份就显得尤为重要,然而,NAND FLASH的接口特点决定了其不能像NOR FLASH一样实现数据的随机访问,因而无法通过例如跳线等方式修改地址总线的连接方式,从而无法变更CPU对NAND FLASH的读地址空间,进而即便NAND FLASH中存储有备份的引导程序也无法真正实现引导程序的备份。
可见,现有技术中利用NAND FLASH存放引导程序,虽然理论上能够实现CPU的引导启动,但无法通过引导程序的备份来克服NAND FLASH由于自身缺陷所容易导致的致命问题,因而使得引导启动的可靠性不高。
发明内容
有鉴于此,本发明提供了一种可实现引导启动的系统、以及一种引导启动控制装置和一种引导启动控制方法,能够提高引导启动的可靠性。
本发明提供的一种可实现引导启动的系统,包括:
可利用引导程序启动的CPU;
第一非易失性存储器件,其通过可兼容其自身所支持时序和RAM时序的第一总线与CPU相连,且第一非易失性存储器件不支持芯片内执行XIP操作但具有自动读特性,并存储有引导程序可被自动读的第一部分代码、以及剩余的第二部分代码;
第二非易失性存储器件,其通过自身所支持时序的第二总线与CPU相连,并至少存储有设备信息;
其特征在于,第一非易失性存储器件中还存储有前述第二部分代码的若干备份;第二非易失性存储器件中还存储有前述第一部分代码的备份;
且,该系统还具有逻辑芯片,所述逻辑芯片内包括:
读取模块,其通过前述第二总线与第二非易失性存储器件相连,并在系统启动后从第二非易失性存储器件读取第一部分代码的备份;
内置RAM,其通过前述第一总线与CPU相连,并用于存储所述读取的第一部分代码的备份、供CPU通过第一总线读取;
控制模块,在系统启动后将CPU的引导片选输出与第一非易失性存储器件的片选输入、或内置RAM的片选输入导通,并向CPU提供第二部分代码、或第二部分代码的任一备份于第一非易失性存储器件中的位置信息;还在CPU由于第一部分代码而引导启动失败后切换前述导通、并触发CPU重新执行引导启动,在CPU由于第二部分代码而引导启动失败后变更提供给CPU的前述位置信息、并触发CPU重新执行引导启动。
所述逻辑芯片进一步包括:
计数模块,对CPU进一步产生的反馈信号计数、并将计数结果提供给控制模块,其中,CPU利用引导程序启动的过程中,每完成一个预定阶段即产生一个反馈信号;
计时模块,当接收到前述反馈信号时自动计时清零,如果计时到达仍未收到前述反馈信号则向控制模块产生超时信号;
且,如果超时信号产生时,CPU已产生的反馈信号数量表示CPU未完成第一部分代码所对应的各阶段,则控制模块变更CPU引导片选输出的导通、并触发CPU重新执行引导启动;如果超时信号产生时,CPU已产生的反馈信号数量表示CPU已完成第一部分代码所对应的各阶段,则控制模块变更前述位置信息重新提供给CPU、并触发CPU重新执行引导启动。
系统启动后的默认状态下,控制模块将CPU的引导片选输出与第一非易失性存储器件的片选输入导通,并向CPU提供第二部分代码于第一非易失性存储器件中的位置信息;
在CPU由于第一部分代码而引导启动失败后,控制模块将CPU的引导片选输出与内置RAM的片选输入导通;
在CPU由于第二部分代码而引导启动失败后,控制模块向CPU提供第二部分代码的任一备份于第一非易失性存储器件中的位置信息。
控制模块通过CPU的复位输入来触发CPU重新执行引导启动。
所述逻辑芯片进一步包括内置寄存器,其通过前述第一总线与CPU相连,且其片选输入与CPU的逻辑片选输出导通;
且,控制模块进一步向寄存器写入前述位置信息,以供CPU通过逻辑片选输出将内置寄存器片选输入置为有效后通过第一总线读取前述位置信息。
控制模块进一步通过若干通用输入输出GPIO信号与CPU相连,以供CPU通过读取若干GPIO信号表示前述位置信息的电平组合获取前述位置信息。
第一非易失性存储器件为与非闪存NAND FLASH;
第二非易失性存储器件为E2PROM、或非易失性随机访问存储器NVRAM。
本发明提供的一种引导启动控制装置,该控制装置适用于包含CPU、第一非易失性存储器件、以及第二非易失性存储器件的系统,其中,
第一非易失性存储器件通过可兼容自身所支持时序和RAM时序的第一总线与CPU相连,且第一非易失性存储器件不支持芯片内执行XIP操作但具有自动读特性,并存储有引导程序可被自动读的第一部分代码、剩余的第二部分代码、以及第二部分代码的若干备份;
第二非易失性存储器件通过自身所支持时序的第二总线与CPU相连,并存储有设备信息、以及前述第一部分代码的备份;
且,所述控制装置包括:
读取模块,其通过前述第二总线与第二非易失性存储器件相连,并在系统启动后从第二非易失性存储器件读取第一部分代码的备份;
内置RAM,其通过前述第一总线与CPU相连,并用于存储所述读取的第一部分代码的备份、供CPU通过第一总线读取;
控制模块,将CPU的引导片选输出与第一非易失性存储器件的片选输入、或内置RAM的片选输入导通,并向CPU提供第二部分代码、或第二部分代码的任一备份于第一非易失性存储器件中的位置信息;还在CPU由于第一部分代码而引导启动失败后切换前述导通、并触发CPU重新执行引导启动,在CPU由于第二部分代码而引导启动失败后变更提供给CPU的前述位置信息、并触发CPU重新执行引导启动。
进一步包括:
计数模块,对CPU进一步产生的反馈信号计数、并将计数结果提供给控制模块,其中,CPU利用引导程序启动的过程中,每完成一个预定阶段即产生一个反馈信号;
计时模块,当接收到前述反馈信号时自动计时清零,如果计时到达仍未收到前述反馈信号则向控制模块产生超时信号;
且,如果超时信号产生时,CPU已产生的反馈信号数量表示CPU未完成第一部分代码所对应的各阶段,则控制模块变更CPU引导片选输出的导通、并触发CPU重新执行引导启动;如果超时信号产生时,CPU已产生的反馈信号数量表示CPU已完成第一部分代码所对应的各阶段,则控制模块变更前述位置信息重新提供给CPU、并触发CPU重新执行引导启动。
系统启动后的默认状态下,控制模块将CPU的引导片选输出与第一非易失性存储器件的片选输入导通,并向CPU提供第二部分代码于第一非易失性存储器件中的位置信息;
在CPU由于第一部分代码而引导启动失败后,控制模块将CPU的引导片选输出与内置RAM的片选输入导通;
在CPU由于第二部分代码而引导启动失败后,控制模块向CPU提供第二部分代码的任一备份于第一非易失性存储器件中的位置信息。
控制模块通过CPU的复位输入来触发CPU重新执行引导启动。
所述控制装置进一步包括内置寄存器,其通过前述第一总线与CPU相连,且其片选输入与CPU的逻辑片选输出导通;
且,控制模块进一步向寄存器写入前述位置信息,以供CPU通过逻辑片选输出将内置寄存器片选输入置为有效后通过第一总线读取前述位置信息。
控制模块进一步通过若干通用输入输出GPIO信号与CPU相连,以供CPU通过读取若干GPIO信号表示前述位置信息的电平组合获取前述位置信息。
本发明提供的一种引导启动控制方法,该控制方法适用于包含CPU、第一非易失性存储器件、以及第二非易失性存储器件的系统,其中,
第一非易失性存储器件通过可兼容自身所支持时序和RAM时序的第一总线与CPU相连,且第一非易失性存储器件不支持芯片内执行XIP操作但具有自动读特性,并存储有引导程序可被自动读的第一部分代码、剩余的第二部分代码、以及第二部分代码的若干备份;
第二非易失性存储器件通过自身所支持时序的第二总线与CPU相连,并存储有设备信息、以及前述第一部分代码的备份;
且,所述控制方法包括如下步骤:
在系统启动后,通过前述第二总线自第二非易失性存储器件读取第一部分代码的备份,并存储于通过前述第一总线与CPU相连的一RAM中;以及,将CPU的引导片选输出与第一非易失性存储器件的片选输入、或RAM的片选输入导通,并向CPU提供第二部分代码、或第二部分代码的任一备份于第一非易失性存储器件中的位置信息;
还在CPU由于第一部分代码而引导启动失败后,切换前述导通、并触发CPU重新执行引导启动,在CPU由于第二部分代码而引导启动失败后,变更提供给CPU的前述位置信息、并触发CPU重新执行引导启动。
进一步包括如下步骤:
对CPU进一步产生的反馈信号计数、并得到实时的计数结果,其中,CPU利用引导程序启动的过程中,每完成一个预定阶段即产生一个反馈信号;
当接收到前述反馈信号时自动计时清零,如果计时到达仍未收到前述反馈信号则产生超时信号;
且,如果超时信号产生时,CPU已产生的反馈信号数量表示CPU未完成第一部分代码所对应的各阶段,则变更CPU引导片选输出的导通、并触发CPU重新执行引导启动;如果超时信号产生时,CPU已产生的反馈信号数量表示CPU已完成第一部分代码所对应的各阶段,则变更前述位置信息重新提供给CPU、并触发CPU重新执行引导启动。
系统启动后的默认状态下,将CPU的引导片选输出与第一非易失性存储器件的片选输入导通,并向CPU提供第二部分代码于第一非易失性存储器件中的位置信息;
在CPU由于第一部分代码而引导启动失败后,将CPU的引导片选输出与内置RAM的片选输入导通;
在CPU由于第二部分代码而引导启动失败后,向CPU提供第二部分代码的任一备份于第一非易失性存储器件中的位置信息。
通过CPU的复位输入来触发CPU重新执行引导启动。
进一步设置通过前述第一总线与CPU相连的一寄存器,并设置该寄存器的片选输入与CPU的逻辑片选输出导通;
且,进一步向寄存器写入前述位置信息,以供CPU通过逻辑片选输出将寄存器片选输入置为有效后通过第一总线读取前述位置信息。
进一步设置与CPU相连、并可通过不同电平组合表示前述位置信息的若干通用输入输出GPIO信号,以供CPU通过读取若干GPIO信号表示前述位置信息的电平组合获取前述位置信息。
由上述技术方案可见,本发明将引导程序存放在不支持XIP操作但具有自动读特性的第一非易失性存储器件中,并将引导程序可被自动读的第一部分代码备份于第二非易失性存储器件中、将引导程序剩余的第二部分代码备份于第一非易失性存储器件;本发明还增设有一逻辑芯片,该逻辑芯片可在系统启动后,从第二非易失性存储器件读取第一部分代码的备份至内置RAM、并切换CPU的引导片选输出与第一非易失性存储器件和内置RAM片选输入的导通,以供CPU既可按照自动读方式从第一非易失性存储器件获取第一部分代码、或者又可按照RAM时序从内置RAM获取第一部分代码的备份,即实现了第一部分代码的备份启动;此外,逻辑芯片还可以向CPU提供第二部分代码、或第二部分代码的任一备份于第一非易失性存储器件中的位置信息,从而能够变更CPU对第一非易失性存储器件的读地址空间,进而实现了第二部分代码的备份启动。由此,由于能够实现全部引导程序的备份启动,因而能够提高引导启动的可靠性。
可选地,本发明可以通过对CPU反馈信号计数与计时相结合的方式,来判断CPU引导启动是否需要切换备份的引导程序,从而使得该判断易于实现。
进一步可选地,默认状态下可以优先选用第一非易失性存储器件中的原引导程序实现CPU的启动,以便与现有方式更优的结合。
再进一步可选地,本发明可以通过逻辑芯片内部寄存器的赋值、或GPIO信号的电平组合,使CPU获知应从第一非易失性存储器件中读取不同版本引导程序的位置信息,从而使得CPU对位置信息的获知更易于实现。
附图说明
图1为现有NOR FLASH的接口形式示意图;
图2为现有NAND FLASH的接口形式示意图;
图3为现有可利用NAND FLASH实现引导启动的系统结构示意图;
图4为现有利用NAND FLASH引导启动的加载过程示意图;
图5为本发明实施例中引导程序的备份分布示意图;
图6为本发明实施例中可实现引导启动的系统原理性示意图;
图7为本发明实施例中可实现引导启动的系统示例性结构图;
图8a和图8b为本发明实施例中如图7系统中逻辑芯片的两种较佳逻辑结构示意图;
图9为本发明实施例中如图7所示系统的逻辑时序示意图;
图10为本发明实施例中引导启动控制方法的示例性流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
考虑到引导启动可靠性不高的问题,主要是由于引导程序无法备份所导致,因而本实施例首要解决的是如何将引导程序备份在系统中。具体说,NAND FLASH由于具备Auto Read特性,因而引导程序的读取是分为Part0和Part1这两部分来进行的,相应地,为了匹配NAND FLASH的Auto Read特性,本实施例将这两部分分别予以备份。
图5为本发明实施例中引导程序的备份分布示意图。如图5所示,现有可实现引导启动的系统中,除了NAND FLASH等大容量存储器件之外,还会设置有主要用于保存设备信息等内容的小容量非易失性存储器件,例如电可擦写只读存储器(E2PROM)、非易失性随机访问存储器(Non-VolatileRandom Access Memory,NVRAM)等,考虑到此类小容量非易失性存储器件通常会具备可存放少量代码的剩余空间,因而可以将NAND FLASH所存放的引导程序中能够被Auto Read的Part0代码,备份在此类小容量非易失性存储器件的剩余空间内,即Part0代码实现双备份;此外,由于NANDFLASH本身的容量较大,因而可以将引导程序中除Part0代码之外的Part1代码在NAND FLASH实现多备份。
当然,NAND FLASH无法通过例如跳线等方式修改地址总线的连接方式,即无法变更CPU对NAND FLASH的读地址空间,即便按照上述方式备份引导程序CPU也无法获取到备份的引导程序,因此,本实施例还对可实现引导启动的系统结构作出了相应改进。
图6为本发明实施例中可实现引导启动的系统原理性示意图。如图6所示,本实施例在可实现引导启动的系统中增设了一个逻辑芯片:
该逻辑芯片连接在CPU与NAND FLASH之间可兼容NAND FLASH时序和RAM时序的第一总线,还通过例如E2PROM、NVRAM等时序的第二总线与例如E2PROM、NVRAM等小容量非易失性存储器件相连;
在系统启动后,该逻辑芯片通过第二总线,从例如E2PROM、NVRAM等小容量非易失性存储器件中读取Part0代码的备份至该逻辑芯片的内置RAM中,供CPU通过第一总线读取;
为了使CPU可获取不同位置的Part0代码,逻辑芯片内还包括用作切换开关的逻辑功能,用以实现CPU的引导片选输出(CS_BOOT)与NANDFLASH的片选输入(CS_NAFLASH)导通、以及CPU的CS_BOOT与内置RAM的片选输入(CS_RAM)导通这两种状态之间的切换,这种切换对于CPU来说是透明的;
而为了使CPU可获取不同位置的Part1代码,逻辑芯片内又包括可变更CPU访问NAND FLASH的地址信息的逻辑功能。
图7为本发明实施例中可实现引导启动的系统示例性结构图。如图7所示,本实施例中可实现引导启动的系统包括:
可利用引导程序启动的CPU;
NAND FLASH,其通过第一总线与CPU相连,并存储有引导程序可被自动读的Part0代码、以及除Part0代码之外剩余的Part1代码;
小容量非易失性存储器件,其通过自身所支持时序的第二总线与CPU相连,并至少存储有设备信息;
除了上述与现有技术相同的部分之外,NAND FLASH中还存储有前述Part1代码的若干备份、而小容量非易失性存储器件中还存储有前述Part0代码的备份;
且,如图7所示的系统还具有作为引导启动控制装置的逻辑芯片,该逻辑芯片内包括:
读取模块,其通过前述第二总线与小容量非易失性存储器件相连,并在系统启动后从小容量非易失性存储器件读取Part0代码的备份;需要说明的是,逻辑芯片中的读取模块与小容量非易失性存储器件之间的第二总线,可以是如图7所示的独立于CPU与小容量非易失性存储器件之间第二总线的另一第二总线,实际应用中,也可以复用CPU与小容量非易失性存储器件之间第二总线;
内置RAM,其通过前述第一总线与CPU相连,并用于存储读取模块所读取的Part0代码的备份、供CPU通过第一总线读取;
控制模块,在系统启动后将CPU的CS_BOOT与NAND FLASH的CS_NAFLASH、或内置RAM的CS_RAM导通,并向CPU提供Part1代码在NAND FLASH中的位置信息、或Part1代码的任一备份在NAND FLASH中的位置信息;还在CPU由于Part0代码而引导启动失败后,切换前述CPU的CS_BOOT与CS_NAFLASH或CS_RAM的导通、并触发CPU重新执行引导启动;在CPU由于Part1代码而引导启动失败后,变更提供给CPU的前述位置信息、并触发CPU重新执行引导启动;其中,逻辑模块可连接CPU的复位输入(Reset)、并利用Reset触发CPU重新执行引导启动,当然,触发CPU重新执行引导启动也可以通过其他方式来实现,在此不再一一列举;
此外,控制模块还通过读使能信号控制读取模块的启动,并通过读取模块反馈的读完成信号获知Part0代码备份的读取结束。
如上可见,由于逻辑芯片能够变更CPU获取的Part0代码以及Part1代码,因而即能够实现引导程序的备份,从而能够提高引导启动的可靠性。
实际应用中,虽然能够通过小容量非易失性存储器件对Part0代码的备份来提高Part0代码的可靠性,但是,Part0代码读入至内置RAM、以及从内置RAM再传递至CPU的总耗时,要多于从NAND FLASH中Auto Read至CPU所需的时间,且内置RAM再传递至CPU的Part0代码的备份,不能够如NAND FLASH的Auto Read那样直接由CPU执行,因而较佳地,系统启动后的默认状态下,控制模块将CPU的CS_BOOT与NAND FLASH的CS_NAFLASH导通,只有在CPU利用Part0代码进行引导启动失败后,控制模块才将CPU的CS_BOOT与内置RAM的CS_RAM导通,即实现对CPU透明的切换。另外,系统启动后的默认状态下,控制模块可以优先向CPU提供第二部分代码于NAND FLASH中的位置信息,只有在CPU利用Part1代码进行引导启动失败后,控制模块才变更前述位置信息为第二部分代码任一备份的位置信息、并重新提供给CPU。
进一步地,对于逻辑模块如何获知CPU利用Part0代码、Part1代码进行引导启动是否成功,以及逻辑模块如何向CPU提供位置信息,可以在上述如图7所示系统中的逻辑芯片内增加其他逻辑模块或连接关系来实现,下面,列举两种较佳的实现方式分别予以说明。
参见图8a,在逻辑芯片的一种较佳实现方式中,为了使逻辑模块获知CPU利用Part0代码、Part1代码进行引导启动是否成功,令CPU在利用Part0代码和Part1代码启动的过程中,每完成一个预定阶段即产生一个反馈信号、供逻辑芯片监控CPU的启动状态。实际应用中,如何令CPU产生反馈信号,可由本领域技术人员在Part0代码和Part1代码中为每个预定阶段分别增补相应的代码语句即可。
此外,参见图8a,还可以在逻辑芯片中增加计数模块和计时模块,其中:
计数模块,对CPU进一步产生的反馈信号计数、并将计数结果提供给控制模块;由于Part0代码和Part1代码启动过程中,预定阶段的数量为固定的,因而CPU产生的反馈信号数量也是固定的,那么,将计数结果提供给控制模块,即可使控制模块获知已完成的预定阶段数量,进而在系统启动异常时,如果计数结果大于等于Part0代码的启动过程所应有的预定阶段总数,则可判断出Part0代码的启动过程已完成,反之,如果计数结果小于Part0代码的启动过程所应有的预定阶段总数,则可判断出Part0代码的启动过程未完成;同理,在系统启动异常时,如果计数结果等于Part0代码与Part1代码的启动过程所应有的预定阶段总数,则可判断出Part1代码的启动过程已完成,反之,如果计数结果小于Part0代码与Part1代码的启动过程所应有的预定阶段总数,则可判断出Part1代码的启动过程未完成。
计时模块,利用系统时钟计时(图8a中并未示出系统时钟信号),当接收到前述反馈信号时自动计时清零,如果计时到达仍未收到前述反馈信号,则向控制模块产生表示启动异常的超时信号;需要补充说明的是,每个预定阶段的时间并不一定等长,相应地,CPU产生的每两个连续反馈信号之间也不一定是等间隔,但计时模块并不需要分别针对每个预定阶段设置对应的计时时间,而是只需要粗略设置一个较大的计时时间即可。
基于上述计数模块和计时模块,如果计时模块有超时信号产生时,从计数模块获得的CPU已产生的反馈信号数量表示CPU未完成Part0代码所对应的各阶段,则控制模块变更CPU引导片选输出的导通;如果计时模块有超时信号产生时,从计数模块获得的CPU已产生的反馈信号数量表示CPU已完成Part0代码所对应的各阶段、但未完成Part1代码所对应的各阶段,则控制模块变更前述位置信息并重新提供给CPU。
此外,控制模块还在计数模块产生的计数结果等于Part0代码与Part1代码的启动过程所应有的预定阶段总数时,确定CPU的引导启动完成,禁止计数模块和计时模块继续工作、并可对计数模块和计时模块清零。
仍参见图8a,为了使逻辑模块能够向CPU提供位置信息,逻辑芯片内可进一步设置一内置寄存器,该寄存器通过前述第一总线与CPU相连,且该内部寄存器的片选输入与CPU的逻辑片选输出(CS_LOGIC)导通;且,控制模块需要进一步向该内置寄存器写入前述位置信息,以供CPU在完成Part0代码启动的各预定阶段后,通过CS_LOGIC将内置寄存器片选输入置为有效、并通过第一总线读取前述位置信息。
实际应用中,位置信息可以是NAND FLASH中的实际地址、也可以是可由CPU自行转换得到的实际地址所对应的标识,且如何令CPU通过CS_LOGIC将内置寄存器片选输入置为有效、并从内置寄存器读取前述位置信息,以及如何令CPU自行将标识转换为实际地址,可由本领域技术人员在Part0代码中的相应位置增补相应的代码语句即可。
参见图8b,在逻辑芯片的另一种较佳实现方式中,为了使逻辑模块获知CPU利用Part0代码、Part1代码进行引导启动是否成功,仍令CPU在利用Part0代码和Part1代码启动的过程中,每完成一个预定阶段即产生一个反馈信号、供逻辑芯片监控CPU的启动状态,还需要在逻辑芯片中增加与如图8a中相同的计数模块和计时模块,相应地,控制模块针对计数模块和计时模块的处理也与如图8a所示的实现方式相同。
仍参见图8b,为了使逻辑模块能够向CPU提供位置信息,还可以采用区别于如图8a所示内置寄存器的方式,即为控制模块进一步增设若干通用输入输出(GPIO)信号GPIO[0:m]管脚,若干GPIO信号GPIO[0:m]与CPU相连,以供CPU通过读取若干GPIO信号表示前述位置信息的电平组合来获取前述位置信息。
实际应用中,位置信息可以是NAND FLASH中的实际地址、也可以是可由CPU自行转换得到的实际地址所对应的标识,例如,系统启动之前,GPIO[0:m]均为低电平、表示位置信息无效,系统启动后,控制模块将最低位的GPIO信号置为高电平,CPU即可依据“00……01”的电平组合获知Part1代码的位置信息,当Part1代码的启动过程异常时,控制模块可通过将GPIO[0:m]电平组合所对应的二进制数加1的方式,来更改GPIO[0:m]电平组合。而且,如何令CPU自行识别GPIO[0:m]的电平组合,可由本领域技术人员在Part0代码的结束位置增补相应的代码语句即可。
如上可见,对于图7中示出的逻辑芯片来说,无论采用如图8a所示的逻辑结构还是如图8b所示的逻辑结构、或者是本领域技术人员基于如图8a和8b所示逻辑结构改进得到的其他具相同功能的结构,为了能够监控CPU的引导启动状态,均需要CPU产生反馈信号,图9中示出了CPU产生反馈信号、及逻辑芯片针对反馈信号进行相应处理的逻辑时序:
在初始化配置时,逻辑芯片确定Part0代码的加载方式,即确定是从NAND FLASH加载还是从内置RAM加载,CPU则依据逻辑芯片所确定的加载方式加载Part0,优先选用默认的从NAND FLASH加载;
在Part0引导启动过程中,CPU每完成一个预定阶段即产生一个反馈信号,而逻辑芯片则监控反馈信号,如果超时未收到反馈信号则返回初始化配置阶段重新确定Part0代码的加载方式,如果Part0代码的启动过程中的所有反馈信号均按时收到,则确定CPU完成Part0引导启动过程,并供CPU获取已确定的Part1的位置信息;
在Part1引导启动过程中,CPU仍是每完成一个预定阶段即产生一个反馈信号,而逻辑芯片则继续监控反馈信号,如果超时未收到反馈信号则逻辑芯片重新确定Part1代码的位置信息,然后,令CPU利用Part0代码、以及重新确定的位置信息所对应的Part1代码的备份,重新开始执行完整的启动过程;如果Part1代码的启动过程中的所有反馈信号均按时收到,则确定CPU完成Part0和Part1引导启动过程;
在启动完成后,CPU正常运行、逻辑芯片则结束监控。
实际应用中,本实施例中可实现引导启动的系统中用作引导启动控制装置的逻辑芯片,可以由现有例如FPGA、CPLD等任一种可编程逻辑器件来实现,相应地,逻辑芯片中的模块也可以看作是由可编程逻辑器件中门阵列所构成的逻辑电路。
以上是对本实施例中可实现引导启动的系统、及其引导启动控制装置的详细说明。下面,再对本实施例中的引导启动控制方法进行说明。
本实施例中的引导启动控制方法适用于包含CPU、NAND FLASH、以及主要用于存放设备信息的小容量非易失性存储器件的系统,其中,
NAND FLASH通过前述可兼容NAND FLASH时序和RAM时序的第一总线与CPU相连,并存储有引导程序可被自动读的Part0代码、除Part0代码之外剩余的Part1代码、以及Part1的若干备份;
小容量非易失性存储器件通过自身所支持时序的第二总线与CPU相连,并存储有设备信息、以及前述Part0代码的备份。
图10为本发明实施例中引导启动控制方法的示例性流程图。如图10所示,本实施例中的引导启动控制方法包括如下步骤:
步骤1001,在系统启动后,通过前述第二总线自小容量非易失性存储器件读取Part0代码的备份,并存储于通过前述第一总线与CPU相连的一RAM中。
步骤1002,将CPU的CS_BOOT与NAND FLASH的CS_NAFLASH、或RAM的CS_RAM导通,以使CPU获取Part0代码或其备份并执行引导启动。
实际应用中,如果CPU获取Part0代码或其备份并执行引导启动无法正常完成,则可以通过循环执行本步骤(如图10中的虚线箭头所示)的方式来切换前述CPU的CS_BOOT与CS_NAFLASH或CS_RAM的导通、并触发CPU重新执行引导启动。
步骤1003,向CPU提供Part1代码、或Part1代码的任一备份在NANDFLASH中的位置信息,以使CPU获取Part1代码或其备份并执行引导启动。
实际应用中,如果CPU获取Part1代码或其备份并执行引导启动无法正常完成,则可以返回步骤1002重新开始执行完整的启动过程(如图10中的虚线箭头所示),并通过再次执行本步骤来变更提供给CPU的前述位置信息。
至此,本流程结束。
在上述步骤1002之后、直至流程结束,CPU可以在利用引导程序启动的过程中,每完成一个预定阶段即产生一个反馈信号。相应地,在上述步骤1002之后、直至流程结束,上述控制方法还可以CPU进一步对产生的反馈信号计数、并得到实时的计数结果,并对系统时钟计时,当接收到前述反馈信号时自动计时清零,如果计时到达仍未收到前述反馈信号则产生超时信号;且,如果超时信号产生时,CPU已产生的反馈信号数量表示CPU未完成Part0代码所对应的各阶段,则变更CPU的CS_BOOT的导通、并重新执行步骤1002;如果超时信号产生时,CPU已产生的反馈信号数量表示CPU已完成Part0代码所对应的各阶段,则变更前述位置信息并重新执行步骤1003。
较佳地,系统启动后的默认状态下,优先将CPU的CS_BOOT与NANDFLASH的CS_NAFLASH导通,并优先向CPU提供Part1代码于NANDFLASH中的位置信息。
此外,在上述流程中的步骤1003,可以采用多种方式来向CPU提供Part1代码、或Part1代码的任一备份在NAND FLASH中的位置信息,以下列举两种较佳方式:
方式一、设置通过前述第一总线与CPU相连的一寄存器,并设置该寄存器的片选输入与CPU的CS_LOGIC导通;且,进一步向寄存器写入前述位置信息,以供CPU通过CS_LOGIC将寄存器片选输入置为有效后,可通过第一总线读取前述位置信息;
方式二、进一步设置与CPU相连、并可通过不同电平组合表示前述位置信息的若干GPIO信号GPIO[0:m],以供CPU通过读取若干GPIO信号GPIO[0:m]表示前述位置信息的电平组合获取前述位置信息。
较佳地为了便于实现,如果CPU获取Part0代码或其备份并执行引导启动无法正常完成、或者获取Part1代码或其备份并执行引导启动无法正常完成,均可以利用Reset触发CPU重新执行引导启动。
由上述列举的可实现引导启动的系统、引导启动控制装置、以及引导启动控制方法可见,本实施例将引导程序存放在NAND FLASH中,并将引导程序可被自动读的Part0代码备份于小容量非易失性存储器件中、将引导程序剩余的Part1代码备份于NAND FLASH中;本实施例还可在系统启动后,从小容量非易失性存储器件读取Part0的备份至一RAM中,并切换CPU的CS_BOOT与NAND FLASH的CS_NAFLASH、以及RAM的CS_RAM导通,以供CPU既可按照自动读方式从NAND FLASH获取Part0代码、又可按照RAM时序从RAM获取Part0代码的备份,即实现了Part0代码的备份启动;此外,本实施例还可以向CPU提供Part1代码、或Part1代码的任一备份在NAND FLASH中的位置信息,从而能够变更CPU对NAND FLASH的读地址空间,进而实现了Part1代码的备份启动。由此,由于能够实现全部引导程序的备份启动,因而能够提高引导启动的可靠性。
最后,需要补充说明的是,本实施例中均以NAND FLASH为例,但本实施例中的技术方案也适用于其他不支持XIP操作但具备Auto Read特性的非易失性存储器件,且对于其他不支持XIP操作但具备Auto Read特性的非易失性存储器件来说,基本的实现原理与NAND FLASH相同,因而不再予以赘述。而且,本实施例中采用的小容量非易失性存储器件,主要是考虑到对现有技术尽可能少的改进,实际应用中,小容量非易失性存储器件也可能被替换为更大容量的其他非易失性存储器件。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种可实现引导启动的系统,包括:
可利用引导程序启动的CPU;
第一非易失性存储器件,其通过可兼容其自身所支持时序和RAM时序的第一总线与CPU相连,且第一非易失性存储器件不支持芯片内执行XIP操作但具有自动读特性,并存储有引导程序可被自动读的第一部分代码、以及剩余的第二部分代码;
第二非易失性存储器件,其通过自身所支持时序的第二总线与CPU相连,并至少存储有设备信息;
其特征在于,第一非易失性存储器件中还存储有前述第二部分代码的若干备份;第二非易失性存储器件中还存储有前述第一部分代码的备份;
且,该系统还具有逻辑芯片,所述逻辑芯片内包括:
读取模块,其通过前述第二总线与第二非易失性存储器件相连,并在系统启动后从第二非易失性存储器件读取第一部分代码的备份;
内置RAM,其通过前述第一总线与CPU相连,并用于存储所述读取的第一部分代码的备份、供CPU通过第一总线读取;
控制模块,在系统启动后将CPU的引导片选输出与第一非易失性存储器件的片选输入、或内置RAM的片选输入导通,并向CPU提供第二部分代码、或第二部分代码的任一备份于第一非易失性存储器件中的位置信息;还在CPU由于第一部分代码而引导启动失败后切换前述导通、并触发CPU重新执行引导启动,在CPU由于第二部分代码而引导启动失败后变更提供给CPU的前述位置信息、并触发CPU重新执行引导启动。
2.如权利要求1所述的系统,其特征在于,所述逻辑芯片进一步包括:
计数模块,对CPU进一步产生的反馈信号计数、并将计数结果提供给控制模块,其中,CPU利用引导程序启动的过程中,每完成一个预定阶段即产生一个反馈信号;
计时模块,当接收到前述反馈信号时自动计时清零,如果计时到达仍未收到前述反馈信号则向控制模块产生超时信号;
且,如果超时信号产生时,CPU已产生的反馈信号数量表示CPU未完成第一部分代码所对应的各阶段,则控制模块变更CPU引导片选输出的导通、并触发CPU重新执行引导启动;如果超时信号产生时,CPU已产生的反馈信号数量表示CPU已完成第一部分代码所对应的各阶段,则控制模块变更前述位置信息重新提供给CPU、并触发CPU重新执行引导启动。
3.如权利要求2所述的系统,其特征在于,
系统启动后的默认状态下,控制模块将CPU的引导片选输出与第一非易失性存储器件的片选输入导通,并向CPU提供第二部分代码于第一非易失性存储器件中的位置信息;
在CPU由于第一部分代码而引导启动失败后,控制模块将CPU的引导片选输出与内置RAM的片选输入导通;
在CPU由于第二部分代码而引导启动失败后,控制模块向CPU提供第二部分代码的任一备份于第一非易失性存储器件中的位置信息。
4.如权利要求1至3中任一项所述的系统,其特征在于,控制模块通过CPU的复位输入来触发CPU重新执行引导启动。
5.如权利要求1至3中任一项所述的系统,其特征在于,所述逻辑芯片进一步包括内置寄存器,其通过前述第一总线与CPU相连,且其片选输入与CPU的逻辑片选输出导通;
且,控制模块进一步向寄存器写入前述位置信息,以供CPU通过逻辑片选输出将内置寄存器片选输入置为有效后通过第一总线读取前述位置信息。
6.如权利要求1至3中任一项所述的系统,其特征在于,控制模块进一步通过若干通用输入输出GPIO信号与CPU相连,以供CPU通过读取若干GPIO信号表示前述位置信息的电平组合获取前述位置信息。
7.如权利要求1至3中任一项所述的系统,其特征在于,
第一非易失性存储器件为与非闪存NAND FLASH;
第二非易失性存储器件为E2PROM、或非易失性随机访问存储器NVRAM。
8.一种引导启动控制装置,其特征在于,该控制装置适用于包含CPU、第一非易失性存储器件、以及第二非易失性存储器件的系统,其中,
第一非易失性存储器件通过可兼容自身所支持时序和RAM时序的第一总线与CPU相连,且第一非易失性存储器件不支持芯片内执行XIP操作但具有自动读特性,并存储有引导程序可被自动读的第一部分代码、剩余的第二部分代码、以及第二部分代码的若干备份;
第二非易失性存储器件通过自身所支持时序的第二总线与CPU相连,并存储有设备信息、以及前述第一部分代码的备份;
且,所述控制装置包括:
读取模块,其通过前述第二总线与第二非易失性存储器件相连,并在系统启动后从第二非易失性存储器件读取第一部分代码的备份;
内置RAM,其通过前述第一总线与CPU相连,并用于存储所述读取的第一部分代码的备份、供CPU通过第一总线读取;
控制模块,将CPU的引导片选输出与第一非易失性存储器件的片选输入、或内置RAM的片选输入导通,并向CPU提供第二部分代码、或第二部分代码的任一备份于第一非易失性存储器件中的位置信息;还在CPU由于第一部分代码而引导启动失败后切换前述导通、并触发CPU重新执行引导启动,在CPU由于第二部分代码而引导启动失败后变更提供给CPU的前述位置信息、并触发CPU重新执行引导启动。
9.如权利要求8所述的控制装置,其特征在于,进一步包括:
计数模块,对CPU进一步产生的反馈信号计数、并将计数结果提供给控制模块,其中,CPU利用引导程序启动的过程中,每完成一个预定阶段即产生一个反馈信号;
计时模块,当接收到前述反馈信号时自动计时清零,如果计时到达仍未收到前述反馈信号则向控制模块产生超时信号;
且,如果超时信号产生时,CPU已产生的反馈信号数量表示CPU未完成第一部分代码所对应的各阶段,则控制模块变更CPU引导片选输出的导通、并触发CPU重新执行引导启动;如果超时信号产生时,CPU已产生的反馈信号数量表示CPU已完成第一部分代码所对应的各阶段,则控制模块变更前述位置信息重新提供给CPU、并触发CPU重新执行引导启动。
10.如权利要求9所述的控制装置,其特征在于,
系统启动后的默认状态下,控制模块将CPU的引导片选输出与第一非易失性存储器件的片选输入导通,并向CPU提供第二部分代码于第一非易失性存储器件中的位置信息;
在CPU由于第一部分代码而引导启动失败后,控制模块将CPU的引导片选输出与内置RAM的片选输入导通;
在CPU由于第二部分代码而引导启动失败后,控制模块向CPU提供第二部分代码的任一备份于第一非易失性存储器件中的位置信息。
11.如权利要求8至10中任一项所述的控制装置,其特征在于,控制模块通过CPU的复位输入来触发CPU重新执行引导启动。
12.如权利要求8至10中任一项所述的控制装置,其特征在于,所述控制装置进一步包括内置寄存器,其通过前述第一总线与CPU相连,且其片选输入与CPU的逻辑片选输出导通;
且,控制模块进一步向寄存器写入前述位置信息,以供CPU通过逻辑片选输出将内置寄存器片选输入置为有效后通过第一总线读取前述位置信息。
13.如权利要求8至10中任一项所述的控制装置,其特征在于,控制模块进一步通过若干通用输入输出GPIO信号与CPU相连,以供CPU通过读取若干GPIO信号表示前述位置信息的电平组合获取前述位置信息。
14.一种引导启动控制方法,其特征在于,该控制方法适用于包含CPU、第一非易失性存储器件、以及第二非易失性存储器件的系统,其中,
第一非易失性存储器件通过可兼容自身所支持时序和RAM时序的第一总线与CPU相连,且第一非易失性存储器件不支持芯片内执行XIP操作但具有自动读特性,并存储有引导程序可被自动读的第一部分代码、剩余的第二部分代码、以及第二部分代码的若干备份;
第二非易失性存储器件通过自身所支持时序的第二总线与CPU相连,并存储有设备信息、以及前述第一部分代码的备份;
且,所述控制方法包括如下步骤:
在系统启动后,通过前述第二总线自第二非易失性存储器件读取第一部分代码的备份,并存储于通过前述第一总线与CPU相连的一RAM中;以及,将CPU的引导片选输出与第一非易失性存储器件的片选输入、或RAM的片选输入导通,并向CPU提供第二部分代码、或第二部分代码的任一备份于第一非易失性存储器件中的位置信息;
还在CPU由于第一部分代码而引导启动失败后,切换前述导通、并触发CPU重新执行引导启动,在CPU由于第二部分代码而引导启动失败后,变更提供给CPU的前述位置信息、并触发CPU重新执行引导启动。
15.如权利要求14所述的控制方法,其特征在于,进一步包括如下步骤:
对CPU进一步产生的反馈信号计数、并得到实时的计数结果,其中,CPU利用引导程序启动的过程中,每完成一个预定阶段即产生一个反馈信号;
当接收到前述反馈信号时自动计时清零,如果计时到达仍未收到前述反馈信号则产生超时信号;
且,如果超时信号产生时,CPU已产生的反馈信号数量表示CPU未完成第一部分代码所对应的各阶段,则变更CPU引导片选输出的导通、并触发CPU重新执行引导启动;如果超时信号产生时,CPU已产生的反馈信号数量表示CPU已完成第一部分代码所对应的各阶段,则变更前述位置信息重新提供给CPU、并触发CPU重新执行引导启动。
16.如权利要求15所述的控制方法,其特征在于,
系统启动后的默认状态下,将CPU的引导片选输出与第一非易失性存储器件的片选输入导通,并向CPU提供第二部分代码于第一非易失性存储器件中的位置信息;
在CPU由于第一部分代码而引导启动失败后,将CPU的引导片选输出与内置RAM的片选输入导通;
在CPU由于第二部分代码而引导启动失败后,向CPU提供第二部分代码的任一备份于第一非易失性存储器件中的位置信息。
17.如权利要求14至16中任一项所述的控制方法,其特征在于,通过CPU的复位输入来触发CPU重新执行引导启动。
18.如权利要求14至16中任一项所述的控制方法,其特征在于,进一步设置通过前述第一总线与CPU相连的一寄存器,并设置该寄存器的片选输入与CPU的逻辑片选输出导通;
且,进一步向寄存器写入前述位置信息,以供CPU通过逻辑片选输出将寄存器片选输入置为有效后通过第一总线读取前述位置信息。
19.如权利要求14至16中任一项所述的控制方法,其特征在于,进一步设置与CPU相连、并可通过不同电平组合表示前述位置信息的若干通用输入输出GPIO信号,以供CPU通过读取若干GPIO信号表示前述位置信息的电平组合获取前述位置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010003354 CN102135891B (zh) | 2010-01-21 | 2010-01-21 | 可实现引导启动的系统及引导启动控制装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010003354 CN102135891B (zh) | 2010-01-21 | 2010-01-21 | 可实现引导启动的系统及引导启动控制装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102135891A CN102135891A (zh) | 2011-07-27 |
CN102135891B true CN102135891B (zh) | 2013-06-26 |
Family
ID=44295685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010003354 Active CN102135891B (zh) | 2010-01-21 | 2010-01-21 | 可实现引导启动的系统及引导启动控制装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102135891B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103135995A (zh) * | 2011-11-22 | 2013-06-05 | 中兴通讯股份有限公司 | 一种BootLoader的备份管理方法及装置 |
US9190124B2 (en) * | 2011-12-29 | 2015-11-17 | Intel Corporation | Multi-level memory with direct access |
CN103514057A (zh) * | 2012-06-26 | 2014-01-15 | 京信通信技术(广州)有限公司 | 一种linux系统自愈方法、装置及自愈系统 |
CN104111851B (zh) * | 2014-07-18 | 2017-09-22 | 广州市中海达测绘仪器有限公司 | 嵌入式系统切换启动装置 |
CN104461657B (zh) * | 2014-12-29 | 2018-01-26 | 迈普通信技术股份有限公司 | 一种主备嵌入式引导程序的启动方法及装置 |
CN108701036A (zh) * | 2016-02-23 | 2018-10-23 | 华为技术有限公司 | 一种启动Boot的方法、CPU及单板 |
CN105930186B (zh) * | 2016-04-20 | 2019-03-08 | 中车株洲电力机车研究所有限公司 | 多cpu的软件加载方法及基于多cpu的软件加载装置 |
CN107239411B (zh) * | 2017-06-06 | 2020-12-08 | 上汽通用汽车有限公司 | 一种车载控制器内存管理方法及系统 |
KR102324263B1 (ko) * | 2018-09-12 | 2021-11-08 | 주식회사 엘지에너지솔루션 | 비휘발성 메모리 업데이트 장치 및 방법 |
CN109783148A (zh) * | 2019-01-15 | 2019-05-21 | 湖南泽天智航电子技术有限公司 | 一种U-Boot启动双备份系统 |
CN109918135A (zh) * | 2019-02-21 | 2019-06-21 | 新华三技术有限公司 | 一种cpld中的逻辑代码恢复方法及电子设备 |
CN110297674B (zh) * | 2019-06-28 | 2021-01-15 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN111814208B (zh) * | 2020-07-02 | 2023-07-28 | 国家广播电视总局广播电视科学研究院 | 一种soc国密安全芯片安全启动时防御故障注入的方法 |
US11734018B2 (en) * | 2020-07-17 | 2023-08-22 | Western Digital Technologies, Inc. | Parallel boot execution of memory devices |
CN113064652B (zh) * | 2021-04-01 | 2023-03-14 | 海光信息技术股份有限公司 | 用于中央处理单元的启动代码的装置、方法、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1115058A2 (en) * | 2000-01-06 | 2001-07-11 | Nec Corporation | Rewriting boot areas |
CN1490817A (zh) * | 2002-10-14 | 2004-04-21 | 华为技术有限公司 | 一种引导程序存储装置及其保障在线升级的方法 |
CN1658161A (zh) * | 2004-02-21 | 2005-08-24 | 华为技术有限公司 | 具有主用和备用引导程序的系统及启动方法 |
US7017038B1 (en) * | 2002-08-26 | 2006-03-21 | Network Equipment Technologies, Inc. | Method and system to provide first boot to a CPU system |
CN1914598A (zh) * | 2004-01-28 | 2007-02-14 | 索尼株式会社 | 半导体装置和用于启动该半导体装置的处理方法 |
-
2010
- 2010-01-21 CN CN 201010003354 patent/CN102135891B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1115058A2 (en) * | 2000-01-06 | 2001-07-11 | Nec Corporation | Rewriting boot areas |
US7017038B1 (en) * | 2002-08-26 | 2006-03-21 | Network Equipment Technologies, Inc. | Method and system to provide first boot to a CPU system |
CN1490817A (zh) * | 2002-10-14 | 2004-04-21 | 华为技术有限公司 | 一种引导程序存储装置及其保障在线升级的方法 |
CN1914598A (zh) * | 2004-01-28 | 2007-02-14 | 索尼株式会社 | 半导体装置和用于启动该半导体装置的处理方法 |
CN1658161A (zh) * | 2004-02-21 | 2005-08-24 | 华为技术有限公司 | 具有主用和备用引导程序的系统及启动方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102135891A (zh) | 2011-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102135891B (zh) | 可实现引导启动的系统及引导启动控制装置和方法 | |
US7464259B2 (en) | Microprocessor boot-up controller, nonvolatile memory controller, and information processing system | |
US8037358B2 (en) | Semiconductor device and boot method for the same | |
CN102135927B (zh) | 一种基于nand flash的系统引导方法和装置 | |
US8799555B2 (en) | Boot data storage schemes for electronic devices | |
CN107704285B (zh) | 现场可编程门阵列多版本配置芯片、系统和方法 | |
CN101782871A (zh) | 信息处理装置、处理器及存储器管理方法 | |
TWI397007B (zh) | 系統支援儲存及電腦系統 | |
CN111444030B (zh) | 数据储存装置及避免固件失效的方法 | |
CN108319465B (zh) | 对fpga配置数据进行升级的电路及方法 | |
CN108108261B (zh) | 数据存储装置及其操作方法 | |
CN111399752B (zh) | 不同类型存储单元的控制装置及方法 | |
US20200310926A1 (en) | Apparatus and method for reducing cell disturb in an open block of a memory system during a receovery procedure | |
US7607001B2 (en) | Memory management method for simultaneously loading and executing program codes | |
US11714656B2 (en) | Memory system executing loading of software at startup and control method | |
US8154925B2 (en) | Semiconductor memory device and system capable of executing an interleave programming for a plurality of memory chips and a 2-plane programming at the respective memory chips | |
US8037275B2 (en) | Memory module system using a partitioned serial presence detect memory | |
CN100549971C (zh) | 一种读取cpu代码的方法及装置 | |
US7003656B2 (en) | Automatic selection of firmware for a computer that allows a plurality of process types | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
US10998073B2 (en) | Systems and methods to wake up memory array | |
CN116185299A (zh) | 闪存控制器及相关装置和方法 | |
CN100456243C (zh) | 存储设备及控制该存储设备操作的方法 | |
US8806283B1 (en) | Automatic and on-demand testing of non-volatile storage devices | |
US20070130449A1 (en) | Processing arrangement, memory card device and method for operating and manufacturing a processing arrangement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |