固态硬盘固件升级立即生效的实现方法、装置及计算机设备

文档序号:34184 发布日期:2021-09-24 浏览:42次 >En<

阅读说明:本技术 固态硬盘固件升级立即生效的实现方法、装置及计算机设备 (Method and device for realizing immediate effect of firmware upgrade of solid state disk and computer equipment ) 是由 韩道静 陈岭岭 付东松 于 2021-06-29 设计创作,主要内容包括:本申请涉及一种固态硬盘固件升级立即生效的实现方法、装置、计算机设备及存储介质,其中该方法包括:固态硬盘获取主机端下发的固件激活命令;固态硬盘暂停处理主机端新下发的命令,并将新下发的命令存储在PCIe/NVMe模块中;将热重置模块的重置标记从0置为1;当热重置模块检测到重置标记从0置为1时,保持PCIe/NVMe模块中内容和状态并重启所述固态硬盘的CPU和其他模块;CPU重新开始运行并从NAND上加载新固件到内部RAM中,待所述新固件加载完成后开始运行初始化。本发明解决了主机开关机来激活SSD新固件而导致的业务中断问题。(The application relates to a method and a device for realizing immediate effect of firmware upgrade of a solid state disk, a computer device and a storage medium, wherein the method comprises the following steps: the method comprises the steps that a solid state disk obtains a firmware activation command issued by a host end; the solid state disk suspends processing a newly issued command at the host side and stores the newly issued command in the PCIe/NVMe module; setting a reset flag of the hot reset module from 0 to 1; when the hot reset module detects that the reset mark is set from 0 to 1, the content and the state in the PCIe/NVMe module are maintained, and the CPU and other modules of the solid state disk are restarted; and the CPU restarts running and loads new firmware from the NAND into the internal RAM, and starts running initialization after the new firmware is loaded. The invention solves the problem of service interruption caused by activating the SSD new firmware by the on-off of the host.)

固态硬盘固件升级立即生效的实现方法、装置及计算机设备

技术领域

本发明涉及存储系统

技术领域

,特别是涉及一种固态硬盘固件升级立即生效的实现方法、装置、计算机设备及存储介质。

背景技术

随着固态硬盘技术的发展,SSD固态硬盘作为一种新型存储介质,其采用NAND颗粒作为数据存储,相比于传统HDD其最大优势在于很高的读写性能。SSD在服务器中的应用开始增多,由于服务器要求实时运行,SSD在固件更新的时候,不能重启服务器,中断当前业务,所以在SSD固件更新的时候,需要SSD支持下载的固件立即生效,对服务器的业务不造成重启。

目前,现有SOC内部Reset模块,会将PCIe/NVMe模块也一并Reset,如果在运行过程中Reset,那么主机下发来的PCIe/NVMe命令,到了SOC这一边由于PCIe/NVMe被Reset掉,相关状态和信息丢失而无法解析这些命令,造成这些命令无法处理,最终导致主机端出现丢命令问题。也就是说,现有的方案是通过主机端将SSD安全掉电再上电后,SSD再加载新固件来达到激活新固件。但是在服务器上和一些实时主机上,由于业务不能中断,所以现有方案存在上述缺陷。

发明内容

基于此,有必要针对上述技术问题,提供一种固态硬盘固件升级立即生效的实现方法、装置、计算机设备及存储介质。

一种固态硬盘固件升级立即生效的实现方法,所述方法包括:

固态硬盘获取主机端下发的固件激活命令;

所述固态硬盘暂停处理主机端新下发的命令,并将新下发的命令存储在PCIe/NVMe模块中;

将热重置模块的重置标记从0置为1;

当所述热重置模块检测到重置标记从0置为1时,保持PCIe/NVMe模块中内容和状态并重启所述固态硬盘的CPU和其他模块;

CPU重新开始运行并从NAND上加载新固件到内部RAM中,待所述新固件加载完成后开始运行初始化。

在其中一个实施例中,在所述固态硬盘获取主机端下发的固件激活命令的步骤之前还包括:

固态硬盘获取主机端下发的固件下载命令,并根据所述固件下载命令将新固件下载到NAND上。

在其中一个实施例中,在所述待所述新固件加载完成后开始运行初始化的步骤之后还包括:

所述新固件检查重置标记;

若所述重置标记为0则初始化PCIe/NVMe模块,若所述重置标记为1则初始化其他模块。

在其中一个实施例中,在所述若所述重置标记为0则初始化PCIe/NVMe模块,若所述重置标记为1则初始化其他模块的步骤之后还包括:

待初始化完成后再次检查所述重置标记;

若所述重置标记为1则恢复PCIe/NVMe模块的命令接收并同时清除所述重置标记;

新固件开始处理主机端下发的命令。

一种固态硬盘固件升级立即生效的实现装置,所述装置包括:

激活模块,所述激活模块用于固态硬盘获取主机端下发的固件激活命令;

命令存储模块,所述命令存储模块用于所述固态硬盘暂停处理主机端新下发的命令,并将新下发的命令存储在PCIe/NVMe模块中;

标记模块,所述标记模块用于将热重置模块的重置标记从0置为1;

重启模块,所述重启模块用于当所述热重置模块检测到重置标记从0置为1时,保持PCIe/NVMe模块中内容和状态并重启所述固态硬盘的CPU和其他模块;

固件加载模块,所述固件加载模块用于CPU重新开始运行并从NAND上加载新固件到内部RAM中,待所述新固件加载完成后开始运行初始化。

在其中一个实施例中,所述装置还包括固件下载模块,所述固件下载模块用于:

固态硬盘获取主机端下发的固件下载命令,并根据所述固件下载命令将新固件下载到NAND上。

在其中一个实施例中,所述装置还包括初始化模块,所述初始化模块用于:

所述新固件检查重置标记;

若所述重置标记为0则初始化PCIe/NVMe模块,若所述重置标记为1则初始化其他模块。

在其中一个实施例中,所述装置还包括标记清除模块,所述标记清除模块用于:

待初始化完成后再次检查所述重置标记;

若所述重置标记为1则恢复PCIe/NVMe模块的命令接收并同时清除所述重置标记;

新固件开始处理主机端下发的命令。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。

上述固态硬盘固件升级立即生效的实现方法、装置、计算机设备及存储介质通过在SOC内部设计一个热重置方案,当热重置触发后保留PCIe/NVMe模块中内容和状态,只将CPU和其它模块复位,CPU复位后从NAND Flash上加载新的固件以及重新初始化达到立即生效的目的,由于PCIe/NVMe硬件模块中的内容和状态还保持,所以新固件依然能够继续从PCIe/NVMe硬件模块中获取主机命令进行处理,从而解决了主机开关机来激活SSD新固件而导致的业务中断问题。

附图说明

图1为现有技术中固态硬盘固件升级方法的构架图;

图2为一个实施例中固态硬盘固件升级立即生效实现方法的构架图;

图3为一个实施例中固态硬盘固件升级立即生效的实现方法的流程示意图;

图4为另一个实施例中固态硬盘固件升级立即生效的实现方法的流程示意图;

图5为一个实施例中FW download过程的示意图;

图6为一个实施例中FW commit过程的示意图;

图7为一个实施例中暂停PCIe/NVMe命令处理过程的示意图;

图8为一个实施例中Wram_reset模块进行重置过程的示意图;

图9为一个实施例中加载新固件到SOC内部RAM中的示意图;

图10为一个实施例中固态硬盘固件升级立即生效的实现装置的结构框图;

图11为另一个实施例中固态硬盘固件升级立即生效的实现装置的结构框图;

图12为再一个实施例中固态硬盘固件升级立即生效的实现装置的结构框图;

图13为又一个实施例中固态硬盘固件升级立即生效的实现装置的结构框图;

图14为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

目前,现有的固件升级方案如图1所示,由于无法保证新旧固件对SOC Ram资源使用一致,现有NVMe SSD在将新固件下载到NAND上后,如果要立即运行新固件,需要将SOCReset一次或者断电上电,SOC重新运行才能将新固件从NAND上加载到SOC内部的RAM中进行资源重新初始化使用。现有SOC内部Reset模块,会将PCIe/NVMe模块也一并Reset,如果在运行过程中Reset,那么Host下发来的PCIe/NVMe命令,到了SOC这一边由于PCIe/NVMe被Reset掉,相关状态和信息丢失而无法解析这些命令,造成这些命令无法处理,最终导致Host端会出现丢命令问题。所以现有的方案,是通过Host端将SSD安全掉电再上电后,SSD再加载新固件来达到激活新固件。但是在服务器上和一些实时主机上,由于业务不能中断,所以上述现有技术中的方案存在缺陷。

基于此,本发明提供了一种固态硬盘固件升级立即生效的实现方法,该方案的构架图如图2所示。具体地,通过在SOC内部设计一个Warm_Reset方案,Warm_Reset触发后保留PCIe/NVMe模块中内容和状态,仅仅将CPU和其它模块复位,CPU复位后从NAND Flash上加载新的固件以及重新初始化达到立即生效的目的,由于PCIe/NVMe硬件模块中的内容和状态还保持,所以新固件还是能够正常从PCIe/NVMe中获取Host命令进行处理,从而解决了主机开关机来激活SSD新固件而导致业务中断的问题。为了更清楚的说明本方案,下面对本方案中的英文缩写进行解释说明:SSD是指固态硬盘,SOC是指系统级芯片,HOST是指主机,Warm_Reset为热重置,FW是指固件,FW download是指固件下载,FW commit是指固件激活。

在一个实施例中,如图3所示,提供了一种固态硬盘固件升级立即生效的实现,该方法包括:

步骤302,固态硬盘获取主机端下发的固件激活命令;

步骤304,固态硬盘暂停处理主机端新下发的命令,并将新下发的命令存储在PCIe/NVMe模块中;

步骤306,将热重置模块的重置标记从0置为1;

步骤308,当热重置模块检测到重置标记从0置为1时,保持PCIe/NVMe模块中内容和状态并重启固态硬盘的CPU和其他模块;

步骤310,CPU重新开始运行并从NAND上加载新固件到内部RAM中,待新固件加载完成后开始运行初始化。

在本实施例中,提供了一种固态硬盘固件升级立即生效的实现方法,该方法可以应用于如图2所示的构架图中,具体的实现步骤如下:

在一个实施例中,在固态硬盘获取主机端下发的固件激活命令的步骤之前还包括:固态硬盘获取主机端下发的固件下载命令,并根据固件下载命令将新固件下载到NAND上。具体地,FW download的过程如图5所示,Host下发FW download命令给SSD将新固件下载到NAND上。

接着,固态硬盘获取主机端下发的固件激活命令。具体地,FW commit的过程如图6所示,Host下发FW commit命令给SSD激活刚才下载的新固件。

然后,固态硬盘暂停处理主机端新下发的命令,并将新下发的命令存储在PCIe/NVMe模块中。具体地,暂停PCIe/NVMe命令处理的过程如图7所示。SSD暂停处理Host新来的命令,这些新来的命令保留在PCIe/NVMe模块中。

再然后,将热重置模块的重置标记从0置为1,当热重置模块检测到重置标记从0置为1时,保持PCIe/NVMe模块中内容和状态并重启固态硬盘的CPU和其他模块。具体地,该步骤的处理过程可参考图8所示,SSD向Warm_reset硬件模块写reset=1标记,Warm_Reset检测到reset标记从0到1的变化后,该模块会Reset CPU和Others HW模块。

最后,CPU重新开始运行并从NAND上加载新固件到内部RAM中,待新固件加载完成后开始运行初始化。具体地,该步骤的处理过程可如图9所示,CPU重新从Bootrom开始运行,并从NAND上加载新固件到内部RAM中。

在本实施例中,通过在SOC内部设计一个热重置方案,当热重置触发后保留PCIe/NVMe模块中内容和状态,只将CPU和其它模块复位,CPU复位后从NAND Flash上加载新的固件以及重新初始化达到立即生效的目的,由于PCIe/NVMe硬件模块中的内容和状态还保持,所以新固件依然能够继续从PCIe/NVMe硬件模块中获取主机命令进行处理,从而解决了主机开关机来激活SSD新固件而导致的业务中断问题。

在一个实施例中,如图4所示,提供了一种固态硬盘固件升级立即生效的实现,该方法在待新固件加载完成后开始运行初始化的步骤之后还包括:

步骤402,新固件检查重置标记;

步骤404,若重置标记为0则初始化PCIe/NVMe模块,若重置标记为1则初始化其他模块;

步骤406,待初始化完成后再次检查重置标记;

步骤408,若重置标记为1则恢复PCIe/NVMe模块的命令接收并同时清除重置标记;

步骤410,新固件开始处理主机端下发的命令。

在本实施例中,提供了一个完整的固态硬盘固件升级立即生效的实现方法,该方法包括如下执行步骤:

步骤1.Host下发FW download命令给SSD将新固件下载到NAND上。

步骤2.Host下发FW commit命令给SSD激活刚才下载的新固件。

步骤3.SSD暂停处理Host新来的命令,这些新来的命令保留在PCIe/NVMe模块中。

步骤4.SSD向Warm_reset硬件模块写reset=1标记。

步骤5.Warm_Reset检测到reset标记从0到1的变化后,该模块会Reset CPU和Others HW模块。

步骤6.CPU重新从Bootrom开始运行,并从NAND上加载新固件到内部RAM中。

步骤7.新固件加载完成后,开始运行初始化。

步骤8.新固件检查Warm_Reset标记,如果是0,进行步骤9,否则进行步骤10。

步骤9.初始化PCIe/NVMe模块。

步骤10.初始化Others HW模块。

步骤11.初始化完成后,检查Warm_Reset中的reset标记,如果是1,恢复PCIe/NVMe命令接收,同时清除Warm_Reset标记。

步骤12.新FW开始处理Host端下发的命令。

在本实施例中,通过在SOC内部增加一个Warm_Reset模块来实现SSD立即激活新固件的目的,无需主机上下电,解决了主机端业务中断的问题。此外,在本方案实现的整个过程中,SSD自动完成新固件的加载,对Host端透明,加载新固件后,也能够继续处理新的命令。

应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图10所示,提供了一种固态硬盘固件升级立即生效的实现装置1000,该装置包括:

激活模块1001,所述激活模块用于固态硬盘获取主机端下发的固件激活命令;

命令存储模块1002,所述命令存储模块用于所述固态硬盘暂停处理主机端新下发的命令,并将新下发的命令存储在PCIe/NVMe模块中;

标记模块1003,所述标记模块用于将热重置模块的重置标记从0置为1;

重启模块1004,所述重启模块用于当所述热重置模块检测到重置标记从0置为1时,保持PCIe/NVMe模块中内容和状态并重启所述固态硬盘的CPU和其他模块;

固件加载模块1005,所述固件加载模块用于CPU重新开始运行并从NAND上加载新固件到内部RAM中,待所述新固件加载完成后开始运行初始化。

在一个实施例中,如图11所示,提供了一种固态硬盘固件升级立即生效的实现装置1000,该装置还包括固件下载模块1006,所述固件下载模块用于:

固态硬盘获取主机端下发的固件下载命令,并根据所述固件下载命令将新固件下载到NAND上。

在一个实施例中,如图12所示,提供了一种固态硬盘固件升级立即生效的实现装置1000,该装置还包括初始化模块1007,所述初始化模块用于:

所述新固件检查重置标记;

若所述重置标记为0则初始化PCIe/NVMe模块,若所述重置标记为1则初始化其他模块。

在一个实施例中,如图13所示,提供了一种固态硬盘固件升级立即生效的实现装置1000,该装置还包括标记清除模块1008,所述标记清除模块用于:

待初始化完成后再次检查所述重置标记;

若所述重置标记为1则恢复PCIe/NVMe模块的命令接收并同时清除所述重置标记;

新固件开始处理主机端下发的命令。

关于固态硬盘固件升级立即生效的实现装置的具体限定可以参见上文中对于固态硬盘固件升级立即生效的实现方法的限定,在此不再赘述。

在一个实施例中,提供了一种计算机设备,其内部结构图可以如图14所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种固态硬盘固件升级立即生效的实现方法。

本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种安防雷达FPGA程序远程升级方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!