CN117608491A - 固态硬盘配置方法、电子设备及存储介质 - Google Patents
固态硬盘配置方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117608491A CN117608491A CN202311631679.XA CN202311631679A CN117608491A CN 117608491 A CN117608491 A CN 117608491A CN 202311631679 A CN202311631679 A CN 202311631679A CN 117608491 A CN117608491 A CN 117608491A
- Authority
- CN
- China
- Prior art keywords
- firmware
- memory
- state information
- state
- file
- 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.)
- Pending
Links
- 239000007787 solid Substances 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 230000015654 memory Effects 0.000 claims abstract description 263
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000012795 verification Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004519 manufacturing process Methods 0.000 abstract description 6
- 238000013403 standard screening design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000013524 data verification Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种固态硬盘配置方法、电子设备及存储介质,固态硬盘包括第一存储器和第二存储器;所述固态硬盘配置方法包括:响应于接收到所述固态硬盘的固件文件,在所述第一存储器写入第一份数的固件文件;在固件状态信息中设置第一存储器的固件状态是否有效,并将所述固件状态信息写入所述第二存储器。本申请采用第一存储器启动的方式,大大提升了升级及启动的效率,从而缩短了因为升级而导致IO跌零的时间;减少了系统对第二存储器空间的需求,降低了生产成本,增加了系统容错率。
Description
技术领域
本申请涉及数据存储领域,具体涉及一种固态硬盘配置方法、电子设备及存储介质。
背景技术
固态硬盘(Solid State Disk或Solid State Drive,简称SSD),又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘。被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等诸多领域。固件(Firmware)是指固态硬盘设备内部保存的“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现固态硬盘的运行动作。现在多数固态硬盘固件仅存放在Nor flash中,NOR Flash使用NOR门结构,其中每个存储单元都有一个地址,可以直接访问。它的内部结构更接近传统的存储器结构,具有并行访问特性。
在构思及形成本申请的研究过程中,申请人至少发现以下问题,现在多数固态硬盘固件存放在Nor flash中,其读取、写入和擦除速度大大影响到它的性能,这就带来了SSD升级写和擦写效率低下的问题,进而带来升级慢、启动慢的问题。随着用户产生数据的速度和量与日俱增,企业的存储数据数量增长,在商用环境中对SSD升级,必然导致I/O跌零,如果因为升级导致I/O跌零时间较长,这是SSD客户不能接受的,所以缩短SSD启动及升级时间的需求变得越发的强烈。另外一旦Nor flash中的固件发生故障,将陷入无法加载盘片从而无法启动的困境。
发明内容
为了缓解以上问题,本申请提供一种固态硬盘配置方法,所述固态硬盘包括第一存储器和第二存储器;
所述固态硬盘配置方法包括:
响应于接收到所述固态硬盘的固件文件,在所述第一存储器写入第一份数的固件文件;
在固件状态信息中设置第一存储器的固件状态是否有效,并将所述固件状态信息写入所述第二存储器。
可选地,所述方法还包括:
在所述第二存储器写入第二份数的所述固件文件,其中所述第一份数大于所述第二份数。
可选地,所述方法还包括:
在所述固件状态信息中设置所述第二存储器的固件状态是否有效,并将所述固件状态信息写入所述第二存储器。
可选地,所述方法还包括:
响应于固件升级,将所述第一份数的固件文件写入所述第一存储器中;在所述固件状态信息中设置所述第二存储器的固件状态无效,设置所述第一存储器的固件状态有效;
将所述固件状态信息写入所述第二存储器。
可选地,所述将所述固件状态信息写入所述第二存储器的步骤之后包括:
响应于系统启动,读取所述第二存储器中的所述固件状态信息,以获取所述固件状态信息中的第一存储器的固件状态设置;
当所述固件状态信息中的第一存储器的固件状态有效时,加载所述第一存储器中的固件文件,和/或,
当所述固件状态信息中的第一存储器的固件状态无效时,获取所述固件状态信息中的第二存储器的固件状态设置;
当所述固件状态信息中的第二存储器的固件状态有效时,加载所述第二存储器的固件文件,和/或,
当所述固件状态信息中的第二存储器的固件状态无效时,加载紧急启动固件。
可选地,所述方法还包括:
读取所述第二存储器中的所述固件状态信息,以获取所述固件状态信息中的第一存储器和第二存储器的固件状态设置;
当所述固件状态信息中的第一存储器的固件状态有效,且所述固件状态信息中的第二存储器的固件状态无效时,读取所述第一存储器中的固件文件写入所述第二存储器,并在所述固件状态信息中设置第二存储器的固件状态有效,并将所述固件状态信息写入所述第二存储器。
可选地,当所述固件状态信息中的第二存储器的固件状态有效,且所述固件状态信息中的第一存储器的固件状态无效时,读取所述第二存储器中的固件文件写入所述第一存储器,并在所述固件状态信息中设置第一存储器的固件状态有效,并将所述固件状态信息写入所述第二存储器。
可选地,所述第一份数的固件文件包括第一固件文件和第二固件文件;所述第一存储器为切片存储方式,所述第一固件文件和第二固件文件的每个切片分别按序对应存储;所述在固件状态信息中设置第一存储器的固件状态是否有效的步骤还包括:
在所述固件状态信息中记录所述第一固件文件和所述第二固件文件中的每个切片地址。
可选地,所述将所述固件状态信息写入所述第二存储器的步骤之后还包括:
读取所述第一固件文件的每个切片数据分别进行校验;
当所述第一固件文件的第一序位的切片数据验证失败时,读取所述第二固件文件的第一序位的切片数据进行校验;
当所述第二固件文件的第二序位的切片数据校验通过时,读取所述第二固件文件的第一序位的切片数据写入所述第一固件文件的第一序号的切片地址,以修复所述第一固件文件的第一序号的切片数据。
本申请还提供一种电子设备,所述电子设备包括处理器和存储器;
所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如上述的固态硬盘配置方法的步骤。
本申请还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的固态硬盘配置方法的步骤。
本申请提供的固态硬盘配置方法、电子设备及存储介质,通过在所述第一存储器写入第一份数的固件文件;在固件状态信息中设置第一存储器的固件状态有效,并将所述固件状态信息写入所述第二存储器;采用第一存储器启动的方式,大大提升了升级及启动的效率,从而缩短了因为升级而导致IO跌零的时间;减少了系统对第二存储器空间的需求,降低了生产成本,增加了系统容错率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例的固态硬盘配置方法流程图。
图2为本申请一实施例的固件冗余存放示意图。
图3为本申请一实施例的Nand存储器切片示意图。
图4为本申请一实施例的Nand存储器固件自愈修复示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
第一实施例
在一方面,本申请提供一种固态硬盘配置方法。在一实施例中,所述固态硬盘包括第一存储器和第二存储器。图1为本申请一实施例的固态硬盘配置方法流程图。
如图1所示,在一实施例中,所述固态硬盘配置方法包括:
S10:响应于接收到所述固态硬盘的固件文件,在所述第一存储器写入第一份数的固件文件。
示例性地,第一存储器可以是Nand存储器,第二存储器可以是Nor存储器。Nand-flash这种存储器是flash内存的一种,其内部采用非线性宏单元模式,Nand-flash存储器具有容量较大,擦写速度快等优点,适用于大量数据的存储。示例性地,固态硬盘在升级时将固件写入Nand存储器中,有利于提高升级速度,提高升级成功率,减少用户等待时间。
示例性地,第一份数可以在数量上大于一份,从而在大容量低成本的Nand存储器中备份固件文件,增加系统的容错度,还能够进一步实现固件的自我修复。
S20:在固件状态信息中设置第一存储器的固件状态是否有效,并将所述固件状态信息写入所述第二存储器。
示例性地,Nor-Flash这种存储器使用NOR门结构,其中每个存储单元都有一个地址,可以直接访问。它的内部结构更接近传统的存储器结构,具有并行访问特性。Nor-Flash具有较快的读取速度和较低的读取延迟。由于其并行访问特性,可以在任意地址上直接读取数据,传输效率很高,在1~4MB的小容量时具有很高的成本效益。将固件状态信息存放在Nor存储器中,可以在固态硬盘启动时快速输出固件状态信息,有利于加快启动速度;同时将固件状态信息与固件存储于不同的存储器中,可以提高系统的容错率。固件状态信息中存放有关于当前固件状态的信息,可以使系统启动时能够快速读取对应位置的固件进行加载。示例性地,设置第一存储器的固件状态有效,可以使系统启动时能够加载第一存储器中的固件文件进行启动。
可选地,所述固态硬盘配置方法还包括:
在所述第二存储器写入第二份数的所述固件文件,其中所述第一份数大于所述第二份数。
示例性地,通过在第二存储器中写入同样的固件文件,可以实现两个存储器上的固件的冗余存放,可以实现启动加载过程中固件文件的灵活加载,还能进一步实现相互同步,提高系统性能。可选地,在第二存储器中写入的份数可以是一份,也可以是存放多份,以实现更加高程度的冗余存放,提升系统的稳健性。
可选地,所述固态硬盘配置方法还包括:
在所述固件状态信息中设置所述第二存储器的固件状态是否有效,并将所述固件状态信息写入所述第二存储器。
示例性地,所述在固件状态信息中设置第一存储器的固件状态是否有效的步骤及之前包括:
在所述固件状态信息中设置第二存储器的固件状态无效。可选地,可以将所述固件状态信息写入所述第二存储器。
可选地,所述固态硬盘配置方法还包括:
响应于固件升级,将所述第一份数的固件文件写入所述第一存储器中;在所述固件状态信息中设置所述第二存储器的固件状态无效,设置所述第一存储器的固件状态有效;将所述固件状态信息写入所述第二存储器。
示例性地,在通过第一存储器和第二存储器进行固件冗余存放的情况下,如果系统对第一存储器进行固件升级,在升级完毕时可以认为当前写入第一存储器的目标版本固件有效,此时第二存储器中的固件无效,系统需将固件状态信息中第二存储器中固件是否有效标志位置成无效,以免系统加载了旧版本的固件文件。
示例性地,所述在所述第二存储器写入第二份数的所述固件文件的步骤之后包括:
在所述固件状态信息中设置第二存储器的固件状态有效,并将所述固件状态信息写入所述第二存储器。
示例性地,固件状态信息中存放有关于当前固件状态的信息,设置第二存储器的固件状态有效,可以使系统启动时能够加载第二存储器中的固件文件进行启动。
可选地,所述固态硬盘配置方法还包括:
响应于系统启动,读取所述第二存储器中的所述固件状态信息,以获取所述固件状态信息中的第一存储器的固件状态设置;
当所述固件状态信息中的第一存储器的固件状态有效时,加载所述第一存储器中的固件文件,和/或,
当所述固件状态信息中的第一存储器的固件状态无效时,获取所述固件状态信息中的第二存储器的固件状态设置;
当所述固件状态信息中的第二存储器的固件状态有效时,加载所述第二存储器的固件文件,和/或,
当所述固件状态信息中的第二存储器的固件状态无效时,加载紧急启动固件。
示例性地,系统启动时,由系统对固件完成加载,但是加载第一存储器中还是第二存储器中的固件需要做出判断。
示例性地,启动时,系统首先从第二存储器中读出固件状态信息,然后根据固件状态信息中的相关信息提示,判断是从第二存储器中还是第一存储器中加载固件。
可选地,可以优先加载第一存储器中的固件。根据固件状态信息中第二存储器中固件是否有效标志位判断是否有效,如果有效则直接根据固件状态信息中固件的存储地址读取固件,完成加载后,启动加载的固件即可。
示例性地,如果固件状态信息中第一存储器中固件有效标志位显示固件无效,则判断第二存储器中固件是否有效,有效则到第二存储器中读取固件,完成加载后,启动加载的固件即可。
示例性地,如果固件状态信息中第二存储器中固件有效标志位同样显示固件无效,则系统可以直接去加载紧急启动的固件,用于紧急启动,方便后续定位故障。可选地,这份紧急启动的固件可以在量产时写入第二存储器中,在固态硬盘盘片的整个生命周期中不会再更改。
可选地,所述将所述固件状态信息写入所述第二存储器的步骤之后还包括:
读取所述第二存储器中的所述固件状态信息,以获取所述固件状态信息中的第一存储器和第二存储器的固件状态设置;
当所述固件状态信息中的第一存储器的固件状态有效,且所述固件状态信息中的第二存储器的固件状态无效时,读取所述第一存储器中的固件文件写入所述第二存储器,并在所述固件状态信息中设置第二存储器的固件状态有效,并将所述固件状态信息写入所述第二存储器。
示例性地,在盘片空闲的时候,系统可以启动后台任务,对Nand和Nor中的固件进行校验,并完成数据同步,最终确保第一存储器和第二存储器中的固件均有效。
示例性地,如果固件状态信息提示第一存储器和第二存储器中固件均有效,则后台任务直接结束,无需同步。
示例性地,如果固件状态信息提示第一存储器中固件有效,但第二存储器中固件无效,则启动从第一存储器到第二存储器的固件同步。
在从第一存储器到第二存储器的固件同步过程中,可以首先从第一存储器中将固件读到内存中,并对读出来的固件做有效性校验;然后将通过校验的固件写入第一存储器中;写入完毕后,可以将固件状态信息中第二存储器中固件有效标志位置有效;最后将固件状态信息写入第二存储器中,同步完成。
可选地,当所述固件状态信息中的第二存储器的固件状态有效,且所述固件状态信息中的第一存储器的固件状态无效时,读取所述第二存储器中的固件文件写入所述第一存储器,并在所述固件状态信息中设置第一存储器的固件状态有效,并将所述固件状态信息写入所述第二存储器。
示例性地,如果固件状态信息提示第二存储器中固件有效,但第一存储器中固件无效,则启动从第二存储器到第一存储器的固件同步。
在从第二存储器到第一存储器的固件同步过程中,可以首先从第二存储器中将固件读到内存中,并对读出来的固件做有效性校验;然后将通过校验的固件写入第一存储器中,写固件的同时需要将固件在第一存储器中的地址保存到内存中。在固件写入完成后,将固件状态信息中第一存储器中固件有效标志位置有效;将固件状态信息写入第二存储器中,同步完成。
可选地,所述第一份数的固件文件包括第一固件文件和第二固件文件。
示例性地,固态硬盘的固件文件大小为2M左右,在第一存储器上可以存放多份固件增加固件冗余性,提升系统容错性。在一实施例中,在Nor存储器中存放一份固件,在Nand存储器上存放四份固件,同时需要提示系统Nor存储器和Nan d存储器上的固件是否有效,提示信息保存在固件状态信息中,同时固件状态信息中还需要保存Nand上固件的Npa地址信息,系统优先从Nand存储器加载。固件状态信息中主要保存信息包含:Nor存储器中固件是否有效标志位、Nand存储器中固件是否有效标志位、固件在Nand存储器上的固件地址信息。固件状态信息采用双备份的设计,避免单份固件状态信息数据损坏,系统无法加载的故障,数据保存在Nor存储器中,预留4K大小的空间即可。
可选地,所述第一存储器为切片存储方式,所述第一固件文件和第二固件文件的每个切片分别按序对应存储。所述在固件状态信息中设置第一存储器的固件状态是否有效的步骤还包括:
在所述固件状态信息中记录所述第一固件文件和所述第二固件文件中的每个切片地址。
图2为本申请一实施例的固件冗余存放示意图。图3为本申请一实施例的Nand存储器切片示意图。
如图2所示,示例性地,升级时,系统将固件写入Nand存储器中,固件在Nand存储器中采用四备份的方式。可选地,可以在Nor存储器中存放一份固件。由于Nand存储器的blk写最小单元是page(页),而单个page远小于固件2M大小,所以单份固件将以切片的方式写入Nand存储器中,单个切片的大小就是blk page的大小,如图3所示灰色方块大小就是单个切片的大小。每一个切片数据落盘就需要在固件状态信息中保存一个固件地址,所以单次升级需要在Nand存储器中写入2M*4=8M的数据,写入固件信息的同时,需要保存固件切片的所有地址到固件状态信息中。
可选地,所述将所述固件状态信息写入所述第二存储器的步骤之后还包括:
读取所述第一固件文件的每个切片数据分别进行校验;
当所述第一固件文件的第一序位的切片数据验证失败时,读取所述第二固件文件的第一序位的切片数据进行校验;
当所述第二固件文件的第二序位的切片数据校验通过时,读取所述第二固件文件的第一序位的切片数据写入所述第一固件文件的第一序号的切片地址,以修复所述第一固件文件的第一序号的切片数据。
示例性地,当Nand存储器和Nor存储器上固件均出错时,因为Nand存储器上的固件的四备份的保存方式,可以复读Nand存储器上的多份固件,拼凑出合法有效的完整固件,将拼凑出的有效固件再次写入Nand存储器和Nor存储器,从而达到纠错容错自愈的目的。
图4为本申请一实施例的Nand存储器固件自愈修复示意图。
示例性地,由于固件是采用切片的方式写入Nand存储器的,如图4所示,红色方框表示数据损坏,四份固件均有切片损坏,此时从Nand存储器上读取固件时,将不可从同一份固件中读出一份完整有效的固件。
由于去Nand存储器读固件时,都是单切片顺序将数据读回来的。因此当某一份固件的某个切片数据损坏读出错时,可以去另一份固件中把对应位置的切片读回来即可,当时所有切片数据可成功读回并通过数据校验则表示固件数据恢复成功,此时需要将固件数据重新写入Nand存储器即可完成固件数据的自愈修复。
示例性地,在Nand存储器的固件修复过程中,可以首先启动自愈修复后台任务,从Nand存储器上读取固件,当某份固件切片数据出错时,再重读另一份固件对应位置切片数据,等所有切片数据都读到内存中后,通过数据校验,将固件以四备份的方式再次写入Nand存储器中,同时更新固件状态信息中的地址信息。
固件写入Nand存储器后,将固件状态信息中Nand存储器中固件有效标志位置成有效后,将固件状态信息写入No存储器r中,此时固件自愈修复完成。
第二实施例
本申请还提供一种电子设备,所述电子设备包括处理器和存储器;
所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如上述的固态硬盘配置方法的步骤。
请参考图2,示例性地,电子设备对固态硬盘的固件冗余设置,由于固定固件大小2M,在Nor中存放一份固件,在Nand上存放四份固件,同时需要提示Loader Nor和Nand上的固件是否有效,提示信息保存在固件状态信息中,同时固件状态信息中还需要保存Nand上固件的Npa地址信息,Loader优先从Nand加载。其中,Loader主要的作用是DRAM初始化和加载固件,将固件程序加载到DRAM中,建立基本的SSD运行环境。Npa是由nand颗粒阵列组成SSD存储器,Npa由block、page、lun、ce、channel、mauoff组成,其中各字段位宽根据实际盘片进行适配,Loader根据保存的固件Npa信息直接到对应Nand位置上读取固件信息用于加载。固件状态信息中主要保存信息包含:Nor中固件是否有效标志位、Nand中固件是否有效标志位、固件在Nand上的Npa地址信息。固件状态信息采用双备份的设计,避免单份固件状态信息数据损坏,Loader无法加载的故障,数据保存在Nor中,4K大小即可。
请参考图3,示例性地,由于Nand blk写最小单元是page,而单个page远小于固件2M大小,所以单份固件将以切片的方式写入Nand中,单个切片的大小就是blk page的大小,如下图所示灰色方块大小就是单个切片的大小。每一个切片数据落盘就需要在固件状态信息中保存一个Npa地址。
升级时,系统将固件写入Nand中,固件在Nand中采用四备份的方式,所以单次升级需要在Nand中写入2M*4=8M的数据,写入固件信息的同时,需要保存固件切片的所有Npa地址到固件状态信息中;
升级则认为当前写入Nand的目标版本固件有效,Nor中的固件无效,系统需将固件状态信息中Nor中固件是否有效标志位置成无效,同时将Nand中固件是否有效标志位置成有效。完成置位后,将固件状态信息写入Nor中,采用双备份的方式保存,避免单份数据损坏而无法加载的问题;
完成上述操作后,即可固件跳转,完成升级。
示例性地,电子设备在固态硬盘的系统启动时,由Loader对固件完成加载,但是加载Nor中还是Nand中的固件需要Loader做出判断。具体加载流程如下:
启动时,Loader首先从Nor中读出固件状态信息,然后根据固件状态信息中的相关信息提示,判断是从Nor中还是Nand中加载固件。
优先加载Nand中的固件,因为大数据量的情况下,从Nand读数据比Nor快得多,根据固件状态信息中Nand中固件是否有效标志位判断是否有效,如果有效则直接根据固件状态信息中固件的Npa地址读取固件,完成加载后,启动即可。
如果固件状态信息中Nand中固件有效标志位显示固件无效,则判断Nor中固件是否有效,有效则到Nor中读取固件,完成加载后,启动即可。
如果固件状态信息中Nor中固件有效标志位同样显示固件无效,则Loader可以直接去加载紧急启动的固件,用于紧急启动,方便工程师后续定位故障,这份紧急启动的固件由量产时写入Nor中,在盘片的整个生命周期中不会再更改。
示例性地,在盘片空闲的时候,系统可以启动后台任务,对Nand和Nor中的固件进行校验,并完成数据同步,最终确保Nand和Nor中的固件均有效。
1、如果固件状态信息提示Nand中固件和Nor中固件均有效,则后台任务直接结束,无需同步。
2、如果固件状态信息提示Nand中固件有效,但Nor中固件无效,则启动从Nand到Nor的固件同步。具体流程如下:
2.1、首先从Nand中将固件读到内存中,并对读出来的固件做有效性校验;
2.2、将通过校验的固件写入Nor中;
2.3、将固件状态信息中Nor中固件有效标志位置有效;
2.4、将固件状态信息写入Nor中,同步成功。
3、如果固件状态信息提示Nor中固件有效,但Nand中固件无效,则启动从Nor到Nand的固件同步。具体流程如下:
3.1、首先从Nor中将固件读到内存中,并对读出来的固件做有效性校验;
3.2、将通过校验的固件写入Nand中,写固件的同时需要将固件的Npa地址保存到内存中;
3.3、将固件状态信息中Nand中固件有效标志位置有效;
3.4、将固件状态信息写入Nor中,同步成功。
示例性地,电子设备在检测到Nand和Nor上固件均出错时,因为Nand上的固件的四备份的保存方式,可以复读Nand上固件,拼凑出合法有效的固件,将拼凑出的有效固件再次写入Nand和Nor,从而达到纠错容错自愈的目的。
固件是采用切片的方式写入Nand的,如下图所示,红色方框表示数据损坏,四份固件均有切片损坏,此时从Nand上读取固件时,将不可从同一份固件中读出一份完整有效的固件。
请参考图4,由于电子设备去Nand读固件时,都是单切片顺序将数据读回来的,当某一份固件某个切片数据损坏读出错时,可以去另一份固件中把对应位置的切片读回来即可,当所有切片数据可成功读回并通过数据校验则表示固件数据恢复成功,此时需要将固件数据重新写入Nand即可完成固件数据的自愈修复。具体流程如下:
首先启动自愈修复后台任务,从Nand上读取固件,对Nand中固件数据的数据校验的过程中,对每个切片的数据分别进行校验。当某份固件切片数据出错时,再重读另一份固件对应位置切片数据,等所有切片数据都读到内存中后,通过数据校验,将固件以四备份的方式再次写入Nand中,同时更新固件状态信息中的Npa地址信息。
固件写入Nand后,将固件状态信息中Nand中固件有效标志位置成有效后,将固件状态信息写入Nor中,此时固件自愈修复完成。
本实施例通过固件冗余存放方式,以达到相互备份的目的;在固态硬盘升级时将固件写入Nand,缩短升级写固件的时间;固态硬盘启动时从Nand加载固件,缩短了启动读固件的时间;固态硬盘的Nand中固件多备份,增强了系统的固件的容错率;固态硬盘中Nor与Nand固件还可相互同步。
本申请还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的固态硬盘配置方法的步骤。
本申请通过采用Nand固件启动的方式,大大提升了升级及启动的效率,从而缩短了因为升级而导致IO跌零的时间;减少了系统对Nor flash空间的需求,降低了生产成本;固件数据采用Nor和Nand同时保存,增加了系统对固件的容错率。
本申请提供的固态硬盘配置方法、电子设备及存储介质,通过在所述第一存储器写入第一份数的固件文件;在固件状态信息中设置第一存储器的固件状态有效,并将所述固件状态信息写入所述第二存储器;采用第一存储器启动的方式,大大提升了升级及启动的效率,从而缩短了因为升级而导致IO跌零的时间;减少了系统对第二存储器空间的需求,降低了生产成本,增加了系统容错率。
需要说明的是,在本申请中,采用了诸如S10、S20等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行S20后执行S10等,但这些均应在本申请的保护范围之内。
在本申请提供的系统和存储介质的实施例中,可以包含任一上述方法实施例的全部技术特征,说明书拓展和解释内容与上述方法的各实施例基本相同,在此不再做赘述。
本申请实施例还提供一种计算机程序产品,计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行如上各种可能的实施方式中的方法。
本申请实施例还提供一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片的设备执行如上各种可能的实施方式中的方法。
可以理解,上述场景仅是作为示例,并不构成对于本申请实施例提供的技术方案的应用场景的限定,本申请的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例设备中的单元可以根据实际需要进行合并、划分和删减。
在本申请中,对于相同或相似的术语概念、技术方案和/或应用场景描述,一般只在第一次出现时进行详细描述,后面再重复出现时,为了简洁,一般未再重复阐述,在理解本申请技术方案等内容时,对于在后未详细描述的相同或相似的术语概念、技术方案和/或应用场景描述等,可以参考其之前的相关详细描述。
在本申请中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请技术方案的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本申请记载的范围。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种固态硬盘配置方法,其特征在于,所述固态硬盘包括第一存储器和第二存储器;
所述固态硬盘配置方法包括:
响应于接收到所述固态硬盘的固件文件,在所述第一存储器写入第一份数的固件文件;
在固件状态信息中设置第一存储器的固件状态是否有效,并将所述固件状态信息写入所述第二存储器。
2.根据权利要求1所述的一种固态硬盘配置方法,其特征在于,还包括:
在所述第二存储器写入第二份数的所述固件文件,其中所述第一份数大于所述第二份数。
3.根据权利要求2所述的一种固态硬盘配置方法,其特征在于,还包括:
在所述固件状态信息中设置所述第二存储器的固件状态是否有效,并将所述固件状态信息写入所述第二存储器。
4.根据权利要求2所述的一种固态硬盘配置方法,其特征在于,还包括:
响应于固件升级,将所述第一份数的固件文件写入所述第一存储器中;在所述固件状态信息中设置所述第二存储器的固件状态无效,设置所述第一存储器的固件状态有效;
将所述固件状态信息写入所述第二存储器。
5.根据权利要求2所述的一种固态硬盘配置方法,其特征在于,还包括:
响应于系统启动,读取所述第二存储器中的所述固件状态信息,以获取所述固件状态信息中的第一存储器的固件状态设置;
当所述固件状态信息中的第一存储器的固件状态有效时,加载所述第一存储器中的固件文件,和/或,
当所述固件状态信息中的第一存储器的固件状态无效时,获取所述固件状态信息中的第二存储器的固件状态设置;
当所述固件状态信息中的第二存储器的固件状态有效时,加载所述第二存储器的固件文件,和/或,
当所述固件状态信息中的第二存储器的固件状态无效时,加载紧急启动固件。
6.根据权利要求2所述的一种固态硬盘配置方法,其特征在于,还包括:
读取所述第二存储器中的所述固件状态信息,以获取所述固件状态信息中的第一存储器和第二存储器的固件状态设置;
当所述固件状态信息中的第一存储器的固件状态有效,且所述固件状态信息中的第二存储器的固件状态无效时,读取所述第一存储器中的固件文件写入所述第二存储器,并在所述固件状态信息中设置第二存储器的固件状态有效,并将所述固件状态信息写入所述第二存储器;
和/或,
当所述固件状态信息中的第二存储器的固件状态有效,且所述固件状态信息中的第一存储器的固件状态无效时,读取所述第二存储器中的固件文件写入所述第一存储器,并在所述固件状态信息中设置第一存储器的固件状态有效,并将所述固件状态信息写入所述第二存储器。
7.根据权利要求1-6任一项所述的一种固态硬盘配置方法,其特征在于,所述第一份数的固件文件包括第一固件文件和第二固件文件;所述第一存储器为切片存储方式,所述第一固件文件和第二固件文件的每个切片分别按序对应存储;所述在固件状态信息中设置第一存储器的固件状态是否有效的步骤还包括:
在所述固件状态信息中记录所述第一固件文件和所述第二固件文件中的每个切片地址。
8.根据权利要求7所述的一种固态硬盘配置方法,其特征在于,所述将所述固件状态信息写入所述第二存储器的步骤之后还包括:
读取所述第一固件文件的每个切片数据分别进行校验;
当所述第一固件文件的第一序位的切片数据验证失败时,读取所述第二固件文件的第一序位的切片数据进行校验;
当所述第二固件文件的第二序位的切片数据校验通过时,读取所述第二固件文件的第一序位的切片数据写入所述第一固件文件的第一序号的切片地址,以修复所述第一固件文件的第一序号的切片数据。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;
所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-8任一项所述的固态硬盘配置方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的固态硬盘配置方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311631679.XA CN117608491A (zh) | 2023-11-29 | 2023-11-29 | 固态硬盘配置方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311631679.XA CN117608491A (zh) | 2023-11-29 | 2023-11-29 | 固态硬盘配置方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117608491A true CN117608491A (zh) | 2024-02-27 |
Family
ID=89953178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311631679.XA Pending CN117608491A (zh) | 2023-11-29 | 2023-11-29 | 固态硬盘配置方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117608491A (zh) |
-
2023
- 2023-11-29 CN CN202311631679.XA patent/CN117608491A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4371771B2 (ja) | 不揮発性メモリシステムにおいて用いられる電力管理ブロック | |
US8621144B2 (en) | Accelerated resume from hibernation in a cached disk system | |
US8694984B2 (en) | Memory apparatus and method of updating firmware of the memory apparatus | |
US20230016555A1 (en) | Data recovery method, apparatus, and solid state drive | |
US10061655B2 (en) | Volatile cache reconstruction after power failure | |
EP1895418A1 (en) | Nonvolatile memory device, method of writing data, and method of reading out data | |
US20110029726A1 (en) | Data updating method, memory system and memory device | |
US20100169710A1 (en) | Delta checkpoints for a non-volatile memory indirection table | |
KR100526178B1 (ko) | 플래시 메모리 액세스 장치 및 방법 | |
CN112035294B (zh) | 安全日志文件系统及其实现方法和介质 | |
US20130166991A1 (en) | Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same | |
CN113641390B (zh) | 一种系统升级方法、装置、设备及存储介质 | |
CN113190241B (zh) | 数据分区的容量扩充方法、装置、电子设备、存储介质 | |
CN116450418B (zh) | 基于卷备份的断点差异同步方法、系统及卷实时备份方法 | |
CN112802530A (zh) | Nand测试方法、装置、可读存储介质及电子设备 | |
CN117608491A (zh) | 固态硬盘配置方法、电子设备及存储介质 | |
CN117131014A (zh) | 数据库迁移方法、装置、设备及存储介质 | |
CN114464231B (zh) | 一种固件存储方法及系统 | |
CN116072202A (zh) | 一种存储设备的管理方法、系统及存储介质 | |
CN115373608A (zh) | 数据存储方法及装置 | |
CN110781031B (zh) | 控制器数据恢复方法、装置、控制器及汽车 | |
CN112433959A (zh) | 实现数据存储处理的方法、装置、计算机存储介质及终端 | |
CN108268336B (zh) | 保证元数据一致性的方法及装置 | |
CN114880277B (zh) | 块设备快照方法、系统和存储介质 | |
CN108053861A (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 |