CN110851162A - 兼容raid与非raid的ssd固件升级方法和装置 - Google Patents

兼容raid与非raid的ssd固件升级方法和装置 Download PDF

Info

Publication number
CN110851162A
CN110851162A CN201911093608.2A CN201911093608A CN110851162A CN 110851162 A CN110851162 A CN 110851162A CN 201911093608 A CN201911093608 A CN 201911093608A CN 110851162 A CN110851162 A CN 110851162A
Authority
CN
China
Prior art keywords
firmware
raid
information
byte
configuration information
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
Application number
CN201911093608.2A
Other languages
English (en)
Inventor
沈荣娟
韩道静
邹一凡
王伟良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN201911093608.2A priority Critical patent/CN110851162A/zh
Priority to PCT/CN2020/077087 priority patent/WO2021093222A1/zh
Priority to US17/043,465 priority patent/US20230132119A1/en
Publication of CN110851162A publication Critical patent/CN110851162A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Abstract

本申请涉及一种兼容RAID与非RAID的SSD固件升级方法、装置、计算机设备及存储介质,其中该方法包括:当存在RAID和非RAID两个版本的固件需要发布时,将对应版本的两个固件打包到一起;在打包好的固件开头添加一个固定长度字节的配置信息,所述配置信息中包括RAID和非RAID固件的索引值、偏移量及文件大小信息;根据SSD内部信息判断匹配的固件版本是RAID还是非RAID;根据所述SSD内部信息通过与固件头部的配置信息进行比对,选择匹配的固件索引,并根据偏移量和文件大小读取相应的固件。本发明实现了提高SSD固件升级的效率,降低了维护成本。

Description

兼容RAID与非RAID的SSD固件升级方法和装置
技术领域
本发明涉及固态硬盘技术领域,特别是涉及一种兼容RAID与非RAID的SSD固件升级方法、装置、计算机设备及存储介质。
背景技术
磁盘阵列(Redundant Arrays of Independent Drives,RAID),是指“独立磁盘构成的具有冗余能力的阵列”。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。
在传统技术中,由于RAID与非RAID的在硬盘使用上的差异性,导致构成存储设备的SSD在硬件电路设计和固件设计上均存在差异,对于SSD生产厂商来说,可能同时开发多款SSD产品,不同产品、不同容量会有不同的固件,再加上RAID与非RAID的差异,这个固件数量会是原来的2倍,在固件升级时,需要维护非常多的固件版本,其时间成本和人力成本都是比较高的。
发明内容
基于此,有必要针对上述技术问题,提供一种可以提高SSD固件升级效率的兼容RAID与非RAID的SSD固件升级方法、装置、计算机设备及存储介质。
一种兼容RAID与非RAID的SSD固件升级方法,所述方法包括:
当存在RAID和非RAID两个版本的固件需要发布时,将对应版本的两个固件打包到一起;
在打包好的固件开头添加一个固定长度字节的配置信息,所述配置信息中包括RAID和非RAID固件的索引值、偏移量及文件大小信息;
根据SSD内部信息判断匹配的固件版本是RAID还是非RAID;
根据所述SSD内部信息通过与固件头部的配置信息进行比对,选择匹配的固件索引,并根据偏移量和文件大小读取相应的固件。
在其中一个实施例中,所述固件头部的配置信息的长度为512字节;
其中,所述配置信息中Byte 0-3为4个字节长度的魔术字节,设置为固定值,用于固件信息的初步校验;
所述配置信息中Byte 4用于表示需要打包在一起的固件个数。
在其中一个实施例中,所述配置信息中Byte 5-16存储第一固件信息,用于标识所述第一固件的索引、偏移、大小及内部信息;
所述配置信息中Byte 17-28存储第二固件信息,用于标识所述第二固件的索引、偏移、大小及内部信息;
所述配置信息中Byte 29-511为保留位。
在其中一个实施例中,所述第一固件信息中Byte 0-1表示固件索引值;
所述第一固件信息中Byte 2-5表示固件偏移量;
所述第一固件信息中Byte 6-9表示固件的大小;
所述第一固件信息中Byte10-11表示固件的内部信息,所述内部信息用于提供给上层固件升级工具使用,工具根据所述内部信息判断当前这个固件是否为SSD适配的固件。
一种兼容RAID与非RAID的SSD固件升级装置,所述装置包括:
打包模块,所述打包模块用于当存在RAID和非RAID两个版本的固件需要发布时,将对应版本的两个固件打包到一起;
添加模块,所述添加模块用于在打包好的固件开头添加一个固定长度字节的配置信息,所述配置信息中包括RAID和非RAID固件的索引值、偏移量及文件大小信息;
判断模块,所述判断模块用于根据SSD内部信息判断匹配的固件版本是RAID还是非RAID;
匹配模块,所述匹配模块用于根据所述SSD内部信息通过与固件头部的配置信息进行比对,选择匹配的固件索引,并根据偏移量和文件大小读取相应的固件。
在其中一个实施例中,所述固件头部的配置信息的长度为512字节;
其中,所述配置信息中Byte 0-3为4个字节长度的魔术字节,设置为固定值,用于固件信息的初步校验;
所述配置信息中Byte 4用于表示需要打包在一起的固件个数。
在其中一个实施例中,所述配置信息中Byte 5-16存储第一固件信息,用于标识所述第一固件的索引、偏移、大小及内部信息;
所述配置信息中Byte 17-28存储第二固件信息,用于标识所述第二固件的索引、偏移、大小及内部信息;
所述配置信息中Byte 29-511为保留位。
在其中一个实施例中,所述第一固件信息中Byte 0-1表示固件索引值;
所述第一固件信息中Byte 2-5表示固件偏移量;
所述第一固件信息中Byte 6-9表示固件的大小;
所述第一固件信息中Byte10-11表示固件的内部信息,所述内部信息用于提供给上层固件升级工具使用,工具根据所述内部信息判断当前这个固件是否为SSD适配的固件。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述兼容RAID与非RAID的SSD固件升级方法、装置、计算机设备及存储介质,通过当存在RAID和非RAID两个版本的固件需要发布时,将对应版本的两个固件打包到一起;在打包好的固件开头添加一个固定长度字节的配置信息,所述配置信息中包括RAID和非RAID固件的索引值、偏移量及文件大小信息;根据SSD内部信息判断匹配的固件版本是RAID还是非RAID;根据所述SSD内部信息通过与固件头部的配置信息进行比对,选择匹配的固件索引,并根据偏移量和文件大小读取相应的固件。本发明根据以上方法打包的固件配置信息,升级工具可以准确无误地定位到SSD适配的固件,然后读取到内存中,通过发送标准固件升级命令将对应的固件下载到SSD中。通过将固件和固件升级工具事先约定的格式将RAID与非RAID两种固件打包成一个固件的方式,对外显示就变为统一的固件,然后由固件升级工具根据约定好的格式解析固件,并选择合适的固件进行升级,由此可大大提高工作效率,降低维护成本。
附图说明
图1为传统技术中SSD固件升级技术的示意图;
图2为本发明中SSD固件升级技术的示意图;
图3为一个实施例中兼容RAID与非RAID的SSD固件升级方法的流程示意图;
图4为一个实施例中固件打包格式的示意图;
图5为一个实施例中兼容RAID与非RAID的SSD固件升级装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
目前,参考图1所示的现有固件升级技术方案。如果存在RAID和非RAID两个版本的固件需要发布,则需要管理和维护两份固件,使用RAID固件给需要支持RAID功能的SSD升级,使用非RAID固件给不需要支持RAID功能的SSD进行升级,对外发布固件升级包时需要仔细区分版本,否则容易引起交叉升级,可能导致SSD不能识盘等问题。
基于此,本发明旨在提出一种Raid与非Raid兼容的SSD固件升级方案,可以通过固件和固件升级工具事先约定的格式将RAID与非RAID两种固件打包成一个,对外显示为统一的固件,然后由固件升级工具根据约定好的格式解析固件,并选择合适的固件进行升级,由此可大大提高工作效率,降低维护成本。
在一个实施例中,如图3所示,提供了一种兼容RAID与非RAID的SSD固件升级方法,该方法包括:
步骤302,当存在RAID和非RAID两个版本的固件需要发布时,将对应版本的两个固件打包到一起;
步骤304,在打包好的固件开头添加一个固定长度字节的配置信息,配置信息中包括RAID和非RAID固件的索引值、偏移量及文件大小信息;
步骤306,根据SSD内部信息判断匹配的固件版本是RAID还是非RAID;
步骤308,根据SSD内部信息通过与固件头部的配置信息进行比对,选择匹配的固件索引,并根据偏移量和文件大小读取相应的固件。
具体地,结合图2所示的SSD固件升级技术的流程图,当存在RAID和非RAID两个版本的固件需要发布时,首先,将两种固件打包到一起,并在固件开头添加一个512字节的配置信息,配置信息中需包含RAID和非RAID固件的索引值、偏移量、文件大小等信息。同时,固件升级工具需要能根据SSD内部信息知晓适配的固件版本是RAID还是非RAID,然后根据该信息通过与固件头部配置信息进行比对,从而选择正确的固件索引,再根据偏移量和文件大小读取相应的固件。该方法对外呈现的是同一份固件,不受RAID和非RAID可能引起混淆的影响,减小了固件维护和管理成本。
在本实施例中,通过固件和固件升级工具事先约定的格式将RAID与非RAID两种固件打包成一个,对外显示为统一的固件,然后由固件升级工具根据约定好的格式解析固件,并选择合适的固件进行升级,由此可大大提高工作效率,降低维护成本。
在一个实施例中,固件头部的配置信息的长度为512字节;
其中,配置信息中Byte 0-3为4个字节长度的魔术字节,设置为固定值,用于固件信息的初步校验;
配置信息中Byte 4用于表示需要打包在一起的固件个数。
在一个实施例中,配置信息中Byte 5-16存储第一固件信息,用于标识第一固件的索引、偏移、大小及内部信息;
配置信息中Byte 17-28存储第二固件信息,用于标识第二固件的索引、偏移、大小及内部信息;
配置信息中Byte 29-511为保留位。
在一个实施例中,第一固件信息中Byte 0-1表示固件索引值;
第一固件信息中Byte 2-5表示固件偏移量;
第一固件信息中Byte 6-9表示固件的大小;
第一固件信息中Byte10-11表示固件的内部信息,内部信息用于提供给上层固件升级工具使用,工具根据内部信息判断当前这个固件是否为SSD适配的固件。
在上述实施例中,结合参考图4,对实施例中固件头部涉及的512字节配置信息的详细说明如下:
Byte 0-3:magic number(魔术数字),4个字节,设置为固定值,用于固件信息的初步校验。
Byte 4:固件个数,需要打包在一起的固件个数,如果是RAID和非RAID两种,则设置为2。
Byte 5-16:单个固件信息,共占12个字节,标识每个固件的索引、偏移、大小、内部信息等信息。
在Byte 5-16中,具体地,Byte 0-1:固件索引值,以0-base计算,第一个固件设置为0,第二个固件设置为1;Byte 2-5:固件偏移量,这里相对于整个固件第一个字节开始的偏移量,以0-base计算,第一个固件的偏移量为512,第二个固件的偏移量为512+第一个固件的大小;Byte 6-9:固件的大小;Byte 10-11:固件的内部信息,该项信息是提供给上层固件升级工具使用的,工具根据此信息判断当前这个固件是否为SSD适配的固件。
Byte 17-28:第二个固件的配置信息,同Byte 5-16。
Byte 29-511:保留。
在上述实施例中,根据以上方法打包的固件配置信息,升级工具可以准确无误地定位到SSD适配的固件,然后读取到内存中,通过发送标准固件升级命令将对应的固件下载到SSD中。通过将固件和固件升级工具事先约定的格式将RAID与非RAID两种固件打包成一个固件的方式,对外显示就变为统一的固件,然后由固件升级工具根据约定好的格式解析固件,并选择合适的固件进行升级,由此可大大提高工作效率,降低维护成本。
应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种兼容RAID与非RAID的SSD固件升级装置500,该装置包括:
打包模块501,用于当存在RAID和非RAID两个版本的固件需要发布时,将对应版本的两个固件打包到一起;
添加模块502,用于在打包好的固件开头添加一个固定长度字节的配置信息,配置信息中包括RAID和非RAID固件的索引值、偏移量及文件大小信息;
判断模块503,用于根据SSD内部信息判断匹配的固件版本是RAID还是非RAID;
匹配模块504,用于根据SSD内部信息通过与固件头部的配置信息进行比对,选择匹配的固件索引,并根据偏移量和文件大小读取相应的固件。
在一个实施例中,固件头部的配置信息的长度为512字节;
其中,配置信息中Byte 0-3为4个字节长度的魔术字节,设置为固定值,用于固件信息的初步校验;
配置信息中Byte 4用于表示需要打包在一起的固件个数。
在一个实施例中,配置信息中Byte 5-16存储第一固件信息,用于标识第一固件的索引、偏移、大小及内部信息;
配置信息中Byte 17-28存储第二固件信息,用于标识第二固件的索引、偏移、大小及内部信息;
配置信息中Byte 29-511为保留位。
在其中一个实施例中,第一固件信息中Byte 0-1表示固件索引值;
第一固件信息中Byte 2-5表示固件偏移量;
第一固件信息中Byte 6-9表示固件的大小;
第一固件信息中Byte10-11表示固件的内部信息,内部信息用于提供给上层固件升级工具使用,工具根据所述内部信息判断当前这个固件是否为SSD适配的固件。
关于兼容RAID与非RAID的SSD固件升级装置的具体限定可以参见上文中对于兼容RAID与非RAID的SSD固件升级方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图6所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种兼容RAID与非RAID的SSD固件升级方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括易失性存储器。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种兼容RAID与非RAID的SSD固件升级方法,其特征在于,所述方法包括:
当存在RAID和非RAID两个版本的固件需要发布时,将对应版本的两个固件打包到一起;
在打包好的固件开头添加一个固定长度字节的配置信息,所述配置信息中包括RAID和非RAID固件的索引值、偏移量及文件大小信息;
根据SSD内部信息判断匹配的固件版本是RAID还是非RAID;
根据所述SSD内部信息通过与固件头部的配置信息进行比对,选择匹配的固件索引,并根据偏移量和文件大小读取相应的固件。
2.根据权利要求1所述的兼容RAID与非RAID的SSD固件升级方法,其特征在于,所述固件头部的配置信息的长度为512字节;
其中,所述配置信息中Byte 0-3为4个字节长度的魔术字节,设置为固定值,用于固件信息的初步校验;
所述配置信息中Byte 4用于表示需要打包在一起的固件个数。
3.根据权利要求2所述的兼容RAID与非RAID的SSD固件升级方法,其特征在于,所述配置信息中Byte 5-16存储第一固件信息,用于标识所述第一固件的索引、偏移、大小及内部信息;
所述配置信息中Byte 17-28存储第二固件信息,用于标识所述第二固件的索引、偏移、大小及内部信息;
所述配置信息中Byte 29-511为保留位。
4.根据权利要求3所述的兼容RAID与非RAID的SSD固件升级方法,其特征在于,所述第一固件信息中Byte 0-1表示固件索引值;
所述第一固件信息中Byte 2-5表示固件偏移量;
所述第一固件信息中Byte 6-9表示固件的大小;
所述第一固件信息中Byte10-11表示固件的内部信息,所述内部信息用于提供给上层固件升级工具使用,工具根据所述内部信息判断当前这个固件是否为SSD适配的固件。
5.一种兼容RAID与非RAID的SSD固件升级装置,其特征在于,所述装置包括:
打包模块,所述打包模块用于当存在RAID和非RAID两个版本的固件需要发布时,将对应版本的两个固件打包到一起;
添加模块,所述添加模块用于在打包好的固件开头添加一个固定长度字节的配置信息,所述配置信息中包括RAID和非RAID固件的索引值、偏移量及文件大小信息;
判断模块,所述判断模块用于根据SSD内部信息判断匹配的固件版本是RAID还是非RAID;
匹配模块,所述匹配模块用于根据所述SSD内部信息通过与固件头部的配置信息进行比对,选择匹配的固件索引,并根据偏移量和文件大小读取相应的固件。
6.根据权利要求5所述的兼容RAID与非RAID的SSD固件升级装置,其特征在于,所述固件头部的配置信息的长度为512字节;
其中,所述配置信息中Byte 0-3为4个字节长度的魔术字节,设置为固定值,用于固件信息的初步校验;
所述配置信息中Byte 4用于表示需要打包在一起的固件个数。
7.根据权利要求6所述的兼容RAID与非RAID的SSD固件升级装置,其特征在于,所述配置信息中Byte 5-16存储第一固件信息,用于标识所述第一固件的索引、偏移、大小及内部信息;
所述配置信息中Byte 17-28存储第二固件信息,用于标识所述第二固件的索引、偏移、大小及内部信息;
所述配置信息中Byte 29-511为保留位。
8.根据权利要求7所述的兼容RAID与非RAID的SSD固件升级装置,其特征在于,所述第一固件信息中Byte 0-1表示固件索引值;
所述第一固件信息中Byte 2-5表示固件偏移量;
所述第一固件信息中Byte 6-9表示固件的大小;
所述第一固件信息中Byte10-11表示固件的内部信息,所述内部信息用于提供给上层固件升级工具使用,工具根据所述内部信息判断当前这个固件是否为SSD适配的固件。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN201911093608.2A 2019-11-11 2019-11-11 兼容raid与非raid的ssd固件升级方法和装置 Pending CN110851162A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201911093608.2A CN110851162A (zh) 2019-11-11 2019-11-11 兼容raid与非raid的ssd固件升级方法和装置
PCT/CN2020/077087 WO2021093222A1 (zh) 2019-11-11 2020-02-28 兼容raid与非raid的ssd固件升级方法和装置
US17/043,465 US20230132119A1 (en) 2019-11-11 2020-02-28 Method and apparatus for upgrading ssd firmware compatible with raid ssd and non-raid

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911093608.2A CN110851162A (zh) 2019-11-11 2019-11-11 兼容raid与非raid的ssd固件升级方法和装置

Publications (1)

Publication Number Publication Date
CN110851162A true CN110851162A (zh) 2020-02-28

Family

ID=69601278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911093608.2A Pending CN110851162A (zh) 2019-11-11 2019-11-11 兼容raid与非raid的ssd固件升级方法和装置

Country Status (3)

Country Link
US (1) US20230132119A1 (zh)
CN (1) CN110851162A (zh)
WO (1) WO2021093222A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538513A (zh) * 2020-04-16 2020-08-14 深圳比特微电子科技有限公司 一种虚拟货币矿机电源的批量固件更新方法和系统
CN112732307A (zh) * 2020-12-29 2021-04-30 北京浪潮数据技术有限公司 一种不同容量ssd的固件升级方法、系统及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105302613A (zh) * 2015-11-23 2016-02-03 武汉烽火网络有限责任公司 采用合并文件对eoc软件进行升级的方法及系统
US9304759B2 (en) * 2009-10-30 2016-04-05 Cleversafe, Inc. Distributed storage network for modification of a data object
CN106598632A (zh) * 2015-10-15 2017-04-26 中兴通讯股份有限公司 一种光模块的固件升级方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996819B1 (en) * 1999-09-10 2006-02-07 Unisys Corporation Method for efficiently downloading SCSI and SERVO firmware to SCSI target controllers
US7480907B1 (en) * 2003-01-09 2009-01-20 Hewlett-Packard Development Company, L.P. Mobile services network for update of firmware/software in mobile handsets
US7376943B2 (en) * 2003-12-18 2008-05-20 Lsi Corporation Safe method for upgrading firmware of optical disk product
KR100801014B1 (ko) * 2006-08-21 2008-02-04 삼성전자주식회사 Dos 부트 프로그램을 내장한 디스크를 구비하는 하드 디스크 드라이브와 그를 포함하는 컴퓨터 시스템, 상기 하드 디스크 드라이브의 펌웨어 다운로드 방법 및 그를 포함하는 기록 매체
JP4968342B2 (ja) * 2007-12-27 2012-07-04 富士通株式会社 Raid制御装置及びraidシステム
US8577613B2 (en) * 2008-07-01 2013-11-05 Schlumberger Technology Corporation Effective hydrocarbon reservoir exploration decision making
US8665601B1 (en) * 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US9170737B1 (en) * 2009-09-30 2015-10-27 Emc Corporation Processing data storage system configuration information
US20140059278A1 (en) * 2011-11-14 2014-02-27 Lsi Corporation Storage device firmware and manufacturing software
US8938731B2 (en) * 2012-10-24 2015-01-20 Telefonaktiebolaget L M Ericsson (Publ) Cost optimization for firmware updates for globally mobile machine-to-machine devices
US9116774B2 (en) * 2013-05-14 2015-08-25 Sandisk Technologies Inc. Firmware updates for multiple product configurations
CN104219092B (zh) * 2014-08-27 2016-03-30 小米科技有限责任公司 一种路由器管理应用与路由器固件的兼容方法和装置
CN104503781A (zh) * 2014-12-10 2015-04-08 华为技术有限公司 硬盘的固件升级方法和存储系统
US9798534B1 (en) * 2015-07-01 2017-10-24 EMC IP Holding Company LLC Method and system to perform non-intrusive online disk firmware upgrades
CN105224253A (zh) * 2015-09-29 2016-01-06 浪潮电子信息产业股份有限公司 一种固态硬盘性能优化的方法
US10042634B1 (en) * 2015-12-28 2018-08-07 EMC IP Holding Company LLC Storage management system and method
US10263844B1 (en) * 2017-07-19 2019-04-16 EMC IP Holdiing Company LLC Techniques for performing an upgrade
US10691354B1 (en) * 2018-01-31 2020-06-23 EMC IP Holding Company LLC Method and system of disk access pattern selection for content based storage RAID system
CN108804128A (zh) * 2018-05-30 2018-11-13 郑州云海信息技术有限公司 一种存储系统的硬盘固件在线升级方法
CN109213509A (zh) * 2018-08-31 2019-01-15 郑州云海信息技术有限公司 一种raid卡的升级方法、升级系统及相关装置
US10558453B1 (en) * 2018-12-13 2020-02-11 Dell Products, Lp System and method to achieve shared drive firmware version consistency via ESRT update

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304759B2 (en) * 2009-10-30 2016-04-05 Cleversafe, Inc. Distributed storage network for modification of a data object
CN106598632A (zh) * 2015-10-15 2017-04-26 中兴通讯股份有限公司 一种光模块的固件升级方法及装置
CN105302613A (zh) * 2015-11-23 2016-02-03 武汉烽火网络有限责任公司 采用合并文件对eoc软件进行升级的方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538513A (zh) * 2020-04-16 2020-08-14 深圳比特微电子科技有限公司 一种虚拟货币矿机电源的批量固件更新方法和系统
CN111538513B (zh) * 2020-04-16 2021-08-27 深圳比特微电子科技有限公司 一种虚拟货币矿机电源的批量固件更新方法和系统
CN112732307A (zh) * 2020-12-29 2021-04-30 北京浪潮数据技术有限公司 一种不同容量ssd的固件升级方法、系统及装置
CN112732307B (zh) * 2020-12-29 2024-03-08 北京浪潮数据技术有限公司 一种不同容量ssd的固件升级方法、系统及装置

Also Published As

Publication number Publication date
WO2021093222A1 (zh) 2021-05-20
US20230132119A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
CN103119554B (zh) 提供平台无关的存储器逻辑
US8136015B2 (en) Data storage apparatus and data storage method
JP6175684B2 (ja) Nandフラッシュメモリ上のデータの記憶のためのアーキテクチャ
US10475517B2 (en) Characterizing and operating a non-volatile memory device
CN110442473B (zh) 一种非易失性数据存储方法、装置、电子设备及介质
EP3336702B1 (en) Metadata recovery method and device
US11550474B2 (en) Data storage device and method for rewriting parameters thereof
CN111930309A (zh) 基于数据分块技术的文件循环存储方法和装置
CN110851162A (zh) 兼容raid与非raid的ssd固件升级方法和装置
US7657697B2 (en) Method of controlling a semiconductor memory device applied to a memory card
US8566689B2 (en) Data integrity units in nonvolatile memory
CN115756984A (zh) 内存测试方法、装置、设备及存储介质
US20140164845A1 (en) Host computer and method for testing sas expanders
CN112558868A (zh) 一种配置数据存储的方法和装置及设备
CN105354107A (zh) NOR Flash的数据传输方法及系统
CN115857811A (zh) 一种数据处理方法、装置、固态硬盘及可读存储介质
CN110275596B (zh) 基于固态硬盘的上电初始化加速方法、装置和计算机设备
US20200151119A1 (en) Method and apparatus for performing access control between host device and memory device
US10452368B2 (en) Recording medium having compiling program recorded therein, information processing apparatus, and compiling method
CN111897495A (zh) 提高ssd写性能的实现方法、装置、计算机设备及存储介质
CN110825714A (zh) 文件存储控制方法及其装置、文件存储装置、电子装置
CN109686394B (zh) Nand Flash Phy参数配置方法和装置
CN107632902B (zh) 用于程序化失败时回复数据的方法、控制器及存储系统
CN114185620B (zh) 加速ssd固件加载实现方法、装置、计算机设备及存储介质
CN113342557B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200228

RJ01 Rejection of invention patent application after publication