一种SSD多状态切换的启动方法及其系统技术方案

技术编号:22329833 阅读:20 留言:0更新日期:2019-10-19 12:13
本发明专利技术涉及一种SSD多状态切换的启动方法及其系统;其中,方法,包括:S1,芯片上电;S2,加载引导程序文件,并更新加载信息到共享存储空间;S3,加载第一极Bootloader;获取状态信息,加载第二极Bootloader;S4,第二极Bootloader获取状态信息,进行固件加载;S5,判断第一次固件加载是否成功;S6,进入到第三极Bootloader阶段,并更新状态信息,进行第二次固件加载;S7,判断第二次固件加载是否成功;S8,进行固件启动运行。本发明专利技术通过将启动阶段分级加载,实现各种状态自由切换,以达到低延迟加载,高性能启动固件的目的。

【技术实现步骤摘要】
一种SSD多状态切换的启动方法及其系统
本专利技术涉及固态硬盘启动加载
,更具体地说是指一种SSD多状态切换的启动方法及其系统。
技术介绍
现有的固态硬盘启动,目前普遍采用的是利用状态机(FSM)进行状态切换,考虑到状态机系统占用空间相对较多,繁琐复杂,因此需要将相关的状态机信息都保存在外部存储空间(NorFlash)里,这样当进入到不同的状态时,可以通过读取存储在外部存储空间的最新状态获取配置信息完成情况;但是,这种启动方式需要在外部存储占用额外存储空间,而NorFlash在固件启动阶段,因传输频率较低,数据传输效率不高,无法满足固件启动高性能、低延迟特性要求。
技术实现思路
本专利技术的目的在于克服现有技术的缺陷,提供一种SSD多状态切换的启动方法及其系统。为实现上述目的,本专利技术采用于下技术方案:一种SSD多状态切换的启动方法,包括以下步骤:S1,芯片上电,运行数据码;S2,加载引导程序文件,并更新加载信息到共享存储空间;S3,引导程序从共享存储空间中获取状态信息,加载第一极Bootloader,并基于加载状态更新状态信息到共享存储空间中;第一极Bootloader从共享存储空间中获取状态信息,加载第二极Bootloader,并基于加载状态更新状态信息到共享存储空间中;S4,第二极Bootloader从共享存储空间中获取状态信息,进行第一次固件加载;S5,判断第一次固件加载是否成功;若是,进入S8;若否,则进入S6;S6,进入到第三极Bootloader阶段,并基于各个加载状态更新状态信息到共享存储空间中,第三极Bootloader从共享存储空间中获取状态信息,进行第二次固件加载;S7,判断第二次固件加载是否成功;若是,进入S8;若否,则返回S2;S8,进行固件启动运行。其进一步技术方案为:所述S2中,引导程序文件采用uart方式加载。其进一步技术方案为:所述S3包括:S31,引导程序从共享存储空间中获取状态信息,加载第一极Bootloader,并基于加载状态更新状态信息到共享存储空间中;S32,第一极Bootloader从共享存储空间中获取状态信息,加载第二极Bootloader,并基于加载状态更新状态信息到共享存储空间中。其进一步技术方案为:所述S8之后,还包括:判断固件启动运行是否成功;若是,进行固件正常加载;若否,则返回S6。其进一步技术方案为:所述S8之后,还包括:判断固件正常加载是否成功;若是,完成固件正常加载;若否,则读取共享存储空间状态失败信息,获取固件失败原因。一种SSD多状态切换的启动系统,包括:上电运行单元,加载更新单元,获取加载单元,固件加载单元,第一判断单元,更新加载单元,第二判断单元,及启动运行单元;所述上电运行单元,用于芯片上电,运行数据码;所述加载更新单元,用于加载引导程序文件,并更新加载信息到共享存储空间;所述获取加载单元,用于引导程序从共享存储空间中获取状态信息,加载第一极Bootloader,并基于加载状态更新状态信息到共享存储空间中;第一极Bootloader从共享存储空间中获取状态信息,加载第二极Bootloader,并基于加载状态更新状态信息到共享存储空间中;所述固件加载单元,用于第二极Bootloader从共享存储空间中获取状态信息,进行第一次固件加载;所述第一判断单元,用于判断第一次固件加载是否成功;所述更新加载单元,用于进入到第三极Bootloader阶段,并基于各个加载状态更新状态信息到共享存储空间中,第三极Bootloader从共享存储空间中获取状态信息,进行第二次固件加载;所述第二判断单元,用于判断第二次固件加载是否成功;所述启动运行单元,用于进行固件启动运行。其进一步技术方案为:所述加载更新单元中,引导程序文件采用uart方式加载。其进一步技术方案为:所述获取加载单元包括:第一获取加载模块和第二获取加载模块;所述第一获取加载模块,用于引导程序从共享存储空间中获取状态信息,加载第一极Bootloader,并基于加载状态更新状态信息到共享存储空间中;所述第二获取加载模块,用于第一极Bootloader从共享存储空间中获取状态信息,加载第二极Bootloader,并基于加载状态更新状态信息到共享存储空间中。其进一步技术方案为:还包括:第三判断单元,用于判断固件启动运行是否成功。其进一步技术方案为:还包括:第四判断单元,用于判断固件正常加载是否成功。本专利技术与现有技术相比的有益效果是:通过将启动阶段分级加载,第一极Bootloader阶段使用频率较低模式加载,之后提高频率模式,加载第二极Bootloader,通过第二极Bootloader加载固件,实现各种状态自由切换,以达到低延迟加载,高性能启动固件的目的,能够更好地满足需求。下面结合附图和具体实施例对本专利技术作进一步描述。附图说明图1为现有固态硬盘固件启动的示意图;图2为本专利技术一种SSD多状态切换的启动方法的流程图;图3为图2的应用示意图;图4为本专利技术一种SSD多状态切换的启动系统的方框图。具体实施方式为了更充分理解本专利技术的
技术实现思路
,下面结合具体实施例对本专利技术的技术方案进一步介绍和说明,但不局限于此。如图1到图4所示的具体实施例,其中,如图1所示的现有技术,通过IceLoader引导,加载Bootloader镜像文件,之后通过Bootloader,加载Firmware固件;若Firmware固件加载失败,则Bootloader退出加载Firmware流程,重新执行Bootloader,进行二次以及三次加载Firmware固件。这种典型的固件启动方式简单直观,但是针对实际产品应用场景,最大弊端在于由于每次都需要重新执行一遍Bootloader,NandFlash/NorFlash/Dram/I2C硬件都需要重新初始化操作,而软件层面SSD中FTL模块相关L2P表地址等内容需要重新获取,这样就会产生很大延迟,无法及时高效加载固件。其中,在本专利技术中,各英文名词解释如下:IceLoader:引导程序;Bootloader:用于加载固件的代码;Norflash:一种非易失性的存储芯片;SOC:片上系统;BootSharedMemory:共享存储空间;Nandflash:一种闪存,其内部采用非线性宏单元模式,nandflash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储;Firmware:固件;MagicNum:幻数。其中,如图2至图3所示,本专利技术公开了一种SSD多状态切换的启动方法,包括以下步骤:S1,芯片上电,SOC启动,运行数据码;S2,加载引导程序文件,并更新加载信息到共享存储空间;S3,引导程序从共享存储空间中获取状态信息,加载第一极Bootloader,并基于加载状态更新状态信息到共享存储空间中;第一极Bootloader从共享存储空间中获取状态信息,加载第二极Bootloader,并基于加载状态更新状态信息到共享存储空间中;S4,第二极Bootloader从共享存储空间中获取状态信息,进行第一次固件加载;S5,判断第一次固件加载是否成功;若是,进入S8;若否,则进入S6;S6,进入到第三极Bootloader阶段,并基于各个加载状态更新状态信息到共享存储空间中,第三极Boot本文档来自技高网
...

【技术保护点】
1.一种SSD多状态切换的启动方法,其特征在于,包括以下步骤:S1,芯片上电,运行数据码;S2,加载引导程序文件,并更新加载信息到共享存储空间;S3,引导程序从共享存储空间中获取状态信息,加载第一极Bootloader,并基于加载状态更新状态信息到共享存储空间中;第一极Bootloader从共享存储空间中获取状态信息,加载第二极Bootloader,并基于加载状态更新状态信息到共享存储空间中;S4,第二极Bootloader从共享存储空间中获取状态信息,进行第一次固件加载;S5,判断第一次固件加载是否成功;若是,进入S8;若否,则进入S6;S6,进入到第三极Bootloader阶段,并基于各个加载状态更新状态信息到共享存储空间中,第三极Bootloader从共享存储空间中获取状态信息,进行第二次固件加载;S7,判断第二次固件加载是否成功;若是,进入S8;若否,则返回S2;S8,进行固件启动运行。

【技术特征摘要】
1.一种SSD多状态切换的启动方法,其特征在于,包括以下步骤:S1,芯片上电,运行数据码;S2,加载引导程序文件,并更新加载信息到共享存储空间;S3,引导程序从共享存储空间中获取状态信息,加载第一极Bootloader,并基于加载状态更新状态信息到共享存储空间中;第一极Bootloader从共享存储空间中获取状态信息,加载第二极Bootloader,并基于加载状态更新状态信息到共享存储空间中;S4,第二极Bootloader从共享存储空间中获取状态信息,进行第一次固件加载;S5,判断第一次固件加载是否成功;若是,进入S8;若否,则进入S6;S6,进入到第三极Bootloader阶段,并基于各个加载状态更新状态信息到共享存储空间中,第三极Bootloader从共享存储空间中获取状态信息,进行第二次固件加载;S7,判断第二次固件加载是否成功;若是,进入S8;若否,则返回S2;S8,进行固件启动运行。2.根据权利要求1所述的一种SSD多状态切换的启动方法,其特征在于,所述S2中,引导程序文件采用uart方式加载。3.根据权利要求1所述的一种SSD多状态切换的启动方法,其特征在于,所述S3包括:S31,引导程序从共享存储空间中获取状态信息,加载第一极Bootloader,并基于加载状态更新状态信息到共享存储空间中;S32,第一极Bootloader从共享存储空间中获取状态信息,加载第二极Bootloader,并基于加载状态更新状态信息到共享存储空间中。4.根据权利要求1所述的一种SSD多状态切换的启动方法,其特征在于,所述S8之后,还包括:判断固件启动运行是否成功;若是,进行固件正常加载;若否,则返回S6。5.根据权利要求4所述的一种SSD多状态切换的启动方法,其特征在于,所述S8之后,还包括:判断固件正常加载是否成功;若是,完成固件正常加载;若否,则读取共享存储空间状态失败信息,获取固件失败原因。6.一种SSD多状态切换的启动系统,其特征在于,包括:上电运行单元,加...

【专利技术属性】
技术研发人员:刘丙圣段亚会
申请(专利权)人:深圳忆联信息系统有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1