CN116627350A - 固态硬盘的固件配置数据管理方法及相关装置 - Google Patents

固态硬盘的固件配置数据管理方法及相关装置 Download PDF

Info

Publication number
CN116627350A
CN116627350A CN202310722791.8A CN202310722791A CN116627350A CN 116627350 A CN116627350 A CN 116627350A CN 202310722791 A CN202310722791 A CN 202310722791A CN 116627350 A CN116627350 A CN 116627350A
Authority
CN
China
Prior art keywords
data
storage area
configuration
size
update
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
CN202310722791.8A
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.)
Chengdu Xinsheng Integrated Circuit Co ltd
Original Assignee
Chengdu Xinsheng Integrated Circuit 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 Chengdu Xinsheng Integrated Circuit Co ltd filed Critical Chengdu Xinsheng Integrated Circuit Co ltd
Priority to CN202310722791.8A priority Critical patent/CN116627350A/zh
Publication of CN116627350A publication Critical patent/CN116627350A/zh
Pending legal-status Critical Current

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/0614Improving the reliability 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种固态硬盘的固件配置数据管理方法及相关装置,涉及硬盘存储领域。固态硬盘中预设有用于存储自身的固件配置数据的配置存储区域,固件配置数据包括N个数据片段。如此,通过获得的更新指令来得到第n个数据片段的更新数据;然后当配置存储区域存在满足预设条件的空闲区域时,将更新数据写入空闲区域;再基于更新数据在配置存储区域的存储地址和所占空间的大小,分别更新查找表和数据大小表。这样维护查找表和数据大小表,在配置数据需要更新时,直接写入更新数据同时更新查找表和数据大小表,无需数据擦除后写入,能够减少擦写次数,延长固态硬盘的使用寿命和增加固件配置数据的可靠性。

Description

固态硬盘的固件配置数据管理方法及相关装置
技术领域
本发明涉及硬盘存储领域,具体而言,涉及一种固态硬盘的固件配置数据管理方法及相关装置。
背景技术
硬盘是电脑主要的储存媒介之一,由一个或者多个铝制或者玻璃制的碟片组成,碟片外覆盖有铁磁性材料。硬盘可以分为固态硬盘(Solid State Drives,简称SSD)、机械硬盘(Hard Disk Drive,简称HDD)、混合硬盘(hybrid hard drive,简称HHD)。SSD是用固态电子存储芯片阵列制成的硬盘,采用闪存颗粒(一般是Nand)来实现存储,其中还包括闪存控制器和高速缓存(DRAM)。
固件配置数据是一种固态硬盘中固件使用的重要数据,用于决定SSD的盘片固件如何运行以及决定固件是否能正常运行,其数据量较大。固件配置数据在SSD盘片运行过程中初始写入Nand后需要频繁更新,但是Nand的特性就是数据需要先擦除才能再次写入,不能直接覆盖写入。
所以,固件配置数据的频繁更新,使得Nand中存储固件配置数据的存储区域频繁地经历数据擦除再写入,这会减少Nand的使用寿命,严重的话甚至会出现配置数据发生错误而导致SSD固件失效和SSD盘片变砖问题。
发明内容
本发明的目的在于提供一种固态硬盘的固件配置数据管理方法及相关装置,以改善现有技术存在的问题。
本发明的实施例可以这样实现:
第一方面,本发明提供一种固态硬盘的固件配置数据管理方法,所述固态硬盘中预设有用于存储固件配置数据的配置存储区域,所述固件配置数据包括N个数据片段;所述方法包括:
获得更新指令,所述更新指令用于指示对第n个数据片段进行更新;
基于所述更新指令,获得所述第n个数据片段的更新数据;n=1,2,…N;
当所述配置存储区域存在满足预设条件的空闲区域时,将所述更新数据写入所述空闲区域;
基于所述更新数据在所述配置存储区域的存储地址和所占空间的大小,分别更新所述查找表和所述数据大小表。
可选的,所述数据片段包括片段ID;在所述获得所述第n个数据片段的更新数据的步骤之后,所述方法还包括:
当所述配置存储区域不存在满足所述预设条件的空闲区域时,基于所述查找表和所述数据大小表从所述配置存储区域中读取除所述第n个数据片段之外的其它数据片段:其中,全部所述其它数据片段以及所述更新数据即为当前的N个数据片段;
擦除所述配置存储区域中的全部数据;
按照所述片段ID从小到大的顺序,将所述当前的N个数据片段依次重新写入所述配置存储区域;
基于所述当前的N个数据片段各自在所述配置存储区域中的存储地址和所占空间的大小,分别更新所述查找表和所述数据大小表。
可选的,所述查找表包括每个所述数据片段的片段ID及其在所述配置存储区域的存储地址,所述数据大小表包括每个所述数据片段的片段ID及其所占空间的大小;所述方法还包括:
获取读取指令;所述读取指令包括待读数据的至少一个片段ID;
基于所述至少一个片段ID,从所述查找表和所述数据大小表中查找所述待读数据的存储地址和大小;
基于所述待读数据的存储地址和大小,从所述配置存储区域中读出所述待读数据。
可选的,在所述配置存储区域中,所述数据片段包括元数据信息;所述方法还包括:
当出现所述查找表和/或所述数据大小表出现查找异常时,删除异常的查找表和/或异常的数据大小表;
扫描整个所述配置存储区域,得到N个有效数据片段的元数据信息;
基于所述元数据信息中的片段ID和所述有效数据片段所占用的每个数据单元的排列序号,确定每个所述有效数据片段的存储地址和/或所占空间的大小;
基于每个所述有效数据片段的存储地址和/或所占空间的大小,重新生成新的查找表和/或新的数据大小表并进行存储。
可选的,所述固态硬盘中还预设有备份存储区域,所述方法还包括:
当对所述配置存储区域进行数据擦除或者数据写入时,同步对所述备份存储区域进行相同的数据擦除或者数据写入;
当所述配置存储区域出现数据读取异常时,基于所述查找表和所述数据大小表从所述备份存储区域重新读取。
可选的,所述方法还包括:
当所述配置存储区域中的固件配置数据出现数据损坏时,基于所述查找表和所述数据大小表,从所述备份存储区域读出N个数据片段;
擦除所述配置存储区域和所述备份存储区域中的全部数据;
将所述N个数据片段重新写入所述配置存储区域和所述备份存储区域;
基于所述N个数据片段各自在所述配置存储区域中的存储地址和所占空间的大小,分别更新所述查找表和所述数据大小表。
第二方面,本发明提供一种固态硬盘的固件配置数据管理装置,所述固态硬盘中预设有用于存储固件配置数据的配置存储区域,所述固件配置数据包括N个数据片段;所述装置包括:
获取模块,用于获得更新指令,所述更新指令用于指示对第n个数据片段进行更新;
更新模块,用于:
基于所述更新指令,获得所述第n个数据片段的更新数据;
当所述配置存储区域存在满足预设条件的空闲区域时,将所述更新数据写入所述空闲区域;
基于所述更新数据在所述配置存储区域的存储地址和所占空间的大小,分别更新所述查找表和所述数据大小表;其中,所述查找表用于存储每个所述数据片段在所述配置存储区域的存储地址,所述数据大小表用于存储每个所述数据片段所占空间的大小。
第三方面,本发明提供一种固态硬盘,所述固态硬盘包括闪存和主控器,所述闪存中存储有软件程序,当所述固态硬盘运行时所述主控器执行所述软件程序以实现如前述实施方式中任一项所述的固态硬盘的固件配置数据管理方法。
第四方面,本发明提供一种电子设备,所述电子设备包括如前述实施方式所述的固态硬盘。
第五方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被主控器执行时实现前述实施方式中任一项所述的固态硬盘的固件配置数据管理方法。
与现有技术相比,本发明实施例提供了一种固态硬盘的固件配置数据管理方法及相关装置,固态硬盘中预设有用于存储固件配置数据的配置存储区域,固件配置数据包括N个数据片段,如此,通过获得的更新指令来得到第n个数据片段的更新数据;然后当配置存储区域存在满足预设条件的空闲区域时,将更新数据写入空闲区域;再基于更新数据在配置存储区域的存储地址和所占空间的大小,分别更新查找表和数据大小表。通过维护查找表和数据大小表,在需要更新时,直接写入同时更新查找表和数据大小表,无需数据擦除后写入,能够减少擦写次数,延长固态硬盘的使用寿命和增加固件配置数据的可靠性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种固态硬盘的结构示意图。
图2为本发明实施例提供的一种固态硬盘的固件配置数据管理方法的流程示意图之一。
图3为本发明实施例提供的一种固态硬盘的固件配置数据管理方法的流程示意图之二。
图4为本发明实施例提供的一种更新前的数据示意图。
图5为本发明实施例提供的一种更新后的数据示意图。
图6为本发明实施例提供的一种数据页的空间示意图。
图7为本发明实施例提供的一种固态硬盘的固件配置数据管理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
在此,首先对本发明涉及的关键词或者关键术语进行介绍:
1、SSD:固态硬盘,又称固态驱动器,是用固态电子存储芯片阵列制成的硬盘;
2、Nand:固态硬盘中的固态电子存储芯片,用于存放数据的Flash(闪存存储器)介质;
3、Block:Nand中的存储管理单元,Block是Nand中的最小擦除单位;
4、Page:Block中的存储管理单元,Page是Nand中的最小读写单位。
如背景技术部分所言,固件配置数据是一种SSD中固件使用的重要数据,用于决定SSD的盘片固件如何运行以及决定固件是否能正常运行,其数据量较大。固件配置数据在SSD盘片运行过程中初始写入Nand后经常需要频繁更新。但是Nand的特性就是一个Block中存储的数据需要先擦除才能再次写入,不能直接覆盖写入。
现有技术中,假设SSD中存储固件配置数据涉及了2个Block,若是固件配置数据需要全量更新或者部分更新,那么2个Block需要全部擦除后再重新写入新的固件配置数据。如此频繁更新的话,每次更新时2个Block都要经历依次擦除再写入的过程的,这会减少Nand使用寿命,严重的话甚至会出现配置数据发生错误而导致SSD固件失效和SSD盘片变砖问题。
基于上述技术问题的发现,发明人经过创造性劳动提出下述技术方案以解决或者改善上述问题。需要注意的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在发明创造过程中对本申请做出的贡献,而不应当理解为本领域技术人员所公知的技术内容。
在本发明中,通过在SSD的NAND中预留多个Block用以存储固件配置数据,并且将固件配置数据分成多个数据片段进行存储,然后采用查找表、数据大小表来分别记录每个数据片段的存储地址、所占空间的大小。这样,可以以一个数据片段为最小更新单位,将更新数据直接写入多个Block中的空闲区域,再更新查找表和数据大小表,以使查找表能够指向更新后的数据片段的存储地址、数据大小表能够对应更新数据所占空间的大小。在多个Block全部写满的情况下,才进行整体擦除,然后重新写入全部的固件配置数据。
如此,即使固件配置数据需要频繁更新,采用本发明提供的方式能够有效减少NAND的擦写次数,延长固态硬盘的使用寿命和增加固件配置数据的可靠性。以下通过实施例,并配合所附附图,进行详细说明。
在此先对本发明的固态硬盘进行介绍。
请参照图1,固态硬盘100包括主控器110和闪存120。其中,主控器110可以是主控芯片;闪存120为一种非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,闪存120可以包括多个闪存芯片(闪存芯片为Nand Flash)。而主控器110为整个固态硬盘100的核心器件,其作用一是合理调配数据在各个闪存芯片上的负荷,二则是承担了整个数据中转,连接闪存芯片和外部SATA(Serial Advanced Technology Attachment,串行高级技术附件)或者PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)接口。
固态硬盘100的运行是依赖于固件配置数据,固件配置数据包括硬盘容量、OP预留空间的大小(预留空间即Over-Provision,是由主控器110控制的,且用户不可操作的隐藏空间)、写保护参数、raid模式等。
在本实施例中,闪存120中预设有用以存储固件配置数据的配置存储区域121以及备份存储区域122,固态硬盘100的运行是依靠配置存储区域121中存储的固件配置数据,而备份存储区域122中的固件配置数据作为备份数据。其中,配置存储区域121以及备份存储区域122二者的存储空间大小相同,但是都大于固件配置数据实际占用的空间大小,以保证能够容纳多次更新的数据占用。
需要说明的是,图1所示的结构仅为示意,固态硬盘100还可以包括比图1中所示更多或者更少的组件(例如:固态硬盘100还可以包括缓存或者主控器上集成了缓存),或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参考图2,图2为本发明实施例提供的一种固态硬盘的固件配置数据管理方法的流程示意图,该方法的执行主体可以是图1所示固态硬盘中的主控器,该方法包括以下步骤S101~S104:
S101、获得更新指令。
在本实施例中,固件配置数据包括N个数据片段,不同数据片段之间的大小可以相同或者不同,且每个数据片段均可以包括一个片段ID,也就是,在配置存储区域,固件配置数据是分段进行存储的,按照片段ID从小到大的顺序将所有数据片段存储。
进而,更新时的最小单位也可以是一个数据片段,即更新指令可以用于指示对第n个数据片段进行更新,第n个数据片段可以是N个数据片段中的任意一个,即n=1,2,…N。
并且,主控器维护有查找表和数据大小表。其中,查找表用于存储每个数据片段在配置存储区域的存储地址,数据大小表用于存储每个数据片段所占空间的大小。
S102、基于更新指令,获得第n个数据片段的更新数据。
在本实施例中,一种可能的情况下,更新指令可以包括更新数据,该更新数据可以包括片段ID,所以对更新指令进行解析即可获得更新数据和片段ID,片段ID即代表了需要更新的对象。
另一种可能的情况下,更新指令可以包括片段ID和其他信息(例如参数更新信息),此时,需要基于更新指令中解析出的片段ID去查找出该片段ID对应数据片段的存储地址和所占空间的大小,进而再基于查找出来的存储地址和所占空间的大小从配置存储区域中读出该片段ID对应数据片段,在基于该数据片段和其他信息确定出更新数据。
需要说明的是,在实际应用时,更新数据的获得方式以实际应用需求而定,可以是上述两种情况中的任意一种,在此不作限定。
S103、当配置存储区域存在满足预设条件的空闲区域时,将更新数据写入空闲区域。
S104、基于更新数据在配置存储区域的存储地址和所占空间的大小,分别更新查找表和数据大小表。
在本实施例中,预设条件可以是:配置存储区域中空闲区域的大小大于或者等于更新数据的大小。所以,可以先查看配置存储区域中空闲区域的大小,再判断配置存储区域中空闲区域的大小和更新数据的大小是否满足预设条件;若满足,就可将更新数据直接写入空闲区域。然后基于更新数片段ID和更新数据在配置存储区域的存储地址和所占空间的大小,分别更新查找表和数据大小表。
本发明实施例提供的固态硬盘的固件配置数据管理方法,在固件配置数据需要部分更新时,直接将更新数据写入配置存储区域的空闲区域,同时更新查找表和数据大小表,无需数据擦除后写入,相较于现有技术,能够有效减少更新时的擦写次数,延长固态硬盘的使用寿命和增加固件配置数据的可靠性。
可选的实现方式中,配置存储区域中存储的每个数据片段均包括自身的片段ID。请参照图3,在上述步骤S102之后,固态硬盘的固件配置数据管理方法还可以包括以下步骤S105~S108。
S105、当配置存储区域不存在满足预设条件的空闲区域时,基于查找表和数据大小表从配置存储区域中读取除第n个数据片段之外的其它数据片段。
在本实施例中,对第n个数据片段更新后,更新数据即为更新后的第n个数据片段,当前的N个数据片段可以包括全部其它数据片段以及更新数据。
S106、擦除配置存储区域中的全部数据。
S107、按照片段ID从小到大的顺序,将当前的N个数据片段依次重新写入配置存储区域;
S108、基于当前的N个数据片段各自在配置存储区域中的存储地址和所占空间的大小,分别更新查找表和数据大小表。
可选的示例中,假设固件配置数据分为20个数据片段。若此时需要对第9个数据片段进行更新,假设由于之前已进行了5次更新,此时配置存储区域中空闲区域的大小为0,接下来的处理方式为:
1、先基于查找表和数据大小表从配置存储区域中读取除第9个数据片段之外的其它19个数据片段;此时,当前的20个数据片段即包括第9个数据片段的更新数据和其它19个数据片段;
2、接着擦除配置存储区域中的全部数据;
3、然后按照片段ID从小到大的顺序,将当前的20个数据片段依次重新写入配置存储区域;
4、最后基于当前的20个数据片段各自的片段ID、以及在配置存储区域中的存储地址和所占空间的大小,分别更新查找表和数据大小表。
在该示例中,固件配置数据经历了5次更新,配置存储区域才被擦除一次,相较于现有技术的每次需要更新时都擦除再写入,有效减少了固件配置数据的更新带来的擦除次数,能够延长固态硬盘的使用寿命。
在可选的实现方式中,配置存储区域包括Y个数据块,每个数据块包括X个数据页,每个数据页包括4个数据单元,每个数据片段可以占用至少一个数据页。
查找表可以包括每个数据片段的片段ID以及数据片段在配置存储区域的存储地址;数据大小表可以包括每个数据片段的片段ID与其所占空间的大小。查找表中存储地址可以采用地址指针(ptr),可以指向配置存储区域的一个数据页。在查找表中,一个片段ID对应的地址指针,代表存储于配置存储区域(或者备份存储区域)中,该片段ID所对应数据片段的起始位置相对于整个配置存储区域(或者备份存储区域)的偏移量。
所以对于利用一个片段ID,基于查找表中该片段ID的地址指针和数据大小表中该片段ID对应的数据大小,可以从配置存储区域唯一确定该片段ID对应的数据片段。
其中,固态硬盘中还预设有与配置存储区域相同的备份存储区域,备份存储区域用于存储与固件配置数据相同的备份配置数据,并且备份配置数据的每个数据片段在备份存储区域的存储地址和空间占用大小,与固件配置数据的每个数据片段在配置存储区域的存储地址和空间占用大小是一致的。
在固态硬盘的初始化阶段,主控器可以基于N个数据片段各自在配置存储区域中的存储地址和所占空间的大小,首次生成查找表和数据大小表,并将两张表存储至Nand中。
可选的,为了保证备份存储区域与配置存储区域之间的数据一致性,当对配置存储区域进行数据擦除或者数据写入时,需要同步对备份存储区域进行相同的数据擦除或者数据写入。
例如,在执行上述步骤S103时,同时需要将更新数据写入备份存储区域的空闲区域;在执行上述步骤S106时,同时也要擦除备份存储区域中的全部数据;在执行上述步骤S107时,同时需要基于片段ID从小到大的顺序,将更新数据和全部其它数据片段依次重新写入备份存储区域。
为了便于理解,以下给出一种数据更新的示例。
一种可选的示例中,请参照图4,图4中,配置存储区域包括Y个数据块(Block0~Block y-1),每个Block包括X个数据页(page0~page x-1),每个数据页包括4个数据单元(即一个page包括4个Unit)。备份存储区域同样包括Y个数据块(Backup copy0~Backupcopy y-1)。
主控器维护的查找表和数据大小表即为图4中的Lut(Look up table)表、SegSize(Segment Size)表。Lut表和SegSize表中,N个数据片段的片段ID为:Seg ID0~Seg ID N-1;Lut表中,N个数据片段各自的存储地址为:ptr0~ptr N-1;SegSize表中,N个数据片段各自所占空间大小为:size0~size N-1。其中,SegSize表中size(大小)值可以表示占用的Unit的个数。
需要说明的是,图4中,Lut表和SegSize表中仅为一种代号表示,实际应用时以实际应用情况为准。
结合图4可以看出。N个数据片段中,Seg ID0~Seg ID3各自在配置存储区域中占用16个Unit、8个Unit、4个Unit、4个Unit;Seg ID(N-1)在配置存储区域中占用4个Unit,SegID4至Seg ID(N-2)在配置存储区域中合计占用(4*x-24)个Unit。在备份存储区域,N个数据片段的空间占用情况与此一致。
在图4的基础上,当需要对Seg ID0进行更新时,请参照图5,配置存储区域中,Block0的page0~page3中存储的Seg ID0原先的数据片段不做处理,处理方式是:
1、写数据:将Seg ID0对应的更新数据直接写入至配置存储区域中Block1的page3~page6,同时将Seg ID0对应的更新数据写入至备份存储区域中Backup copy1的page3~page6;
2、更新表:更新Lut表中Seg ID0对应的地址指针,使之不再指向Block1的page1,而是指向Block1的page3;更新SegSize表中Seg ID0对应的所占空间的大小,在本示例中,Seg ID0的数据片段在更新前后所占空间的大小不变。
需要说明的是,上述举例仅为示例,在实际应用中,X、Y的取值由实际应用的NANDFLASH的类型决定。且每个片段ID对应数据片段所占用Unit的个数根据实际配置数据类型确定,不同数据片段所占用的Unit个数可能不同,在实际应用中根据实际情况分配,此不作具体限定。
可选的实现方式中,对固件配置数据的数据读取需要依赖于查找表和数据大小表,并且,当配置存储区域出现数据读取异常的情况时,可以基于查找表和数据大小表从备份存储区域重新读取。对应地,该固态硬盘的固件配置数据管理方法还可以包括以下步骤S109~S112。
S109、获取读取指令。
在本实施例中,读取指令可以包括待读数据的至少一个片段ID,即待读数据可以是一个数据片段、多个数据片段或者整个固件配置数据。
S110、基于至少一个片段ID,从查找表和数据大小表中查找待读数据的存储地址和大小。
S111、基于待读数据的存储地址和大小,从配置存储区域中读出待读数据。
S112、当从配置存储区域中读出待读数据失败时,基于待读数据的存储地址和大小,从备份存储区域中读出待读数据。
例如,请继续参照图5,假设读取指令包括的片段ID为Seg ID0,那么查找Lut表、SegSize表可知:Seg ID0的地址指针指向Block1的page3、Seg ID0的数据大小为16个Unit;基于此,可以从Block1的page3~page6读出Seg ID0的数据片段;若是读取失败,那么可以重新从Backup copy1的page3~page6读出Seg ID0的数据片段。该举例仅为示例,在此不作限定。
在一种可能出现的情况中,查找表、数据大小表可能会损坏,出现查表异常的情形,此时可以对配置存储区域进行扫描以实现表重建。
可选的,在配置存储区域中,写入的每个数据片段均包括元数据信息,元数据信息可以包括片段ID以及该片段ID的数据片段所占用的每个数据单元在整个配置存储区域的排列序号;在备份存储区域同样如此。
以配置存储区域为例,当一个片段ID对应的数据片段占用s个page,即占用4×s个Unit,那么其对应的元数据信息包括4×s个元数据,即数据片段所占的每个Unit均有一个元数据。其中,元数据记载了片段ID、Unit在整个配置存储区域的排列序号以及一个校验值,校验值可以用于校验元数据是否异常。
以下结合附图对元数据进行说明:
通常情况下,一个page中的实际存储空间为16KB,page中还有2KB的隐藏存储空间,用于存储元数据信息。请结合图6,page中,每个Unit的分配的空间为4.5KB,其中4KB用于存储数据,0.5KB用于存放元数据。
结合图5,假设图6所示的page为图5中Block1的page2,那么图6中Unit1中元数据可以包括:Seg ID N-1、Unit1在整个配置存储区域的排列序号以及校验值。
因而,向配置存储区域和备份存储区域写入一个更新数据时,需要根据该更新数据的数据大小以及写入的起始位置,插入元数据或者更新元数据。
以插入元数据为例,执行步骤S103中的将更新数据写入空闲区域时:结合图5、图6,此时更新数据为64KB,即需要插入16个元数据,更新数据写入的起始位置为图5中Block1的page3,那么即可确定Block1的page3~page6中每个Unit在整个配置存储区域的排列序号,这样就得到了更新数据所需占用的16个Unit的排列序号,再结合片段ID校验值就得到16个排列序号依次增大的16个元数据,然后将16个元数据插入更新数据,再将更新数据写入到配置存储区域。该举例仅为示例,在此不作限定。
因此,表重建正是基于数据片段的元数据信息来实现的,表重建的过程可以包括以下步骤S201~204。
S201、当查找表和/或数据大小表出现异常时,删除异常的查找表和/或异常的数据大小表。
S202、扫描整个配置存储区域,得到N个有效数据片段的元数据信息。
可以理解,在配置存储区域中,固件配置数据实质上只包括其中的N个有效数据片段,无效数据片段是固件配置数据更新时产生的。所以在固件配置数据多次更新的前提下,配置存储区域和备份存储区域都会存在无效数据片段。当一个片段ID的数据进行数据更新后,更新前该片段ID对应的有效数据片段即成为了无效数据片段,例如图5中Block0的page0~page3中存储的即为Seg ID0的无效数据片段。
在本实施例中,是先扫描出整个配置存储区域中的所有数据片段,其中包括全部无效数据片段和N个有效数据片段。由于查找表、数据大小表的异常,N个有效数据片段混杂在无效数据片段中难以区分,此时需要依赖于元数据信息中的排列序号来确定出N个有效数据片段的元数据信息,详细过程包括以下三步:
1、先按照元数据信息中的片段ID对扫描出来的所有数据片段进行分类,得到N个数据集合;
2、找出每个数据集合中的有效数据片段;
对于一个数据集合,存在以下两种情况:
(1)、若其中只有一个数据片段,那么该数据片段即为有效数据片段;
(2)、若其中不止一个数据片段,就将数据集合中各个数据片段各自元数据信息中的所有排列序号进行比较,从中确定出所有排列序号均最大的特定数据片段,该特定数据片段即为将数据集合中唯一的有效数据片段;
3、取出每个有效数据片段中的元数据信息,即得到N个有效数据片段的元数据信息;
可以理解,一个片段ID对应一个数据集合,数据集合中包括该片段ID下唯一的有效数据片段,若该片段ID涉及过数据更新,则数据集合中还可能包括每次更新产生的无效数据片段。
在上面的步骤2中即需要找出每个数据集合中的有效数据片段,以一个数据集合在包括两个数据片段(A、B)为例,找出唯一的有效数据片段的方式为:
将A、B各自元数据信息中的所有排列序号进行比较;若B中元数据信息中的所有排列序号全部大于A中元数据信息中的所有排列序号,那么B即为该类数据中唯一的有效数据片段,A则属于无效元数据。
该举例仅为示例,在此不作限定。
S203、基于元数据信息中的片段ID和数据片段所占用的每个数据单元的排列序号,确定每个有效数据片段的存储地址和/或所占空间的大小。
S204、基于每个有效数据片段的存储地址和/或所占空间的大小,重新生成新的查找表和/或新的数据大小表并进行存储。
结合上例,对于B:基于B中的元数据信息中的第一个排列序号,可以确定出B在配置存储区域的初始地址,这就是重新生成的查找表中B的片段ID对应的存储地址。而基于B中的元数据信息中的所有排列序号,可以确定出B所占空间的大小,这就是重新生成的查找表中B的片段ID对应的size值。
在可选的实现方式中,有时配置存储区域中的固件配置数据出现数据损坏,这种情况下,可以基于查找表、数据大小表以及备份存储区域,重新写入固件配置数据至配置存储区域。对应的,固态硬盘的固件配置数据管理方法还可以包括S301~S303。
S301、当配置存储区域中的固件配置数据出现数据损坏时,基于查找表和数据大小表,从备份存储区域读出N个数据片段。
S302、擦除配置存储区域和备份存储区域中的全部数据。
S303、按照片段ID从小到大的顺序,将N个数据片段依次重新写入配置存储区域和备份存储区域。
S304、基于N个数据片段各自在配置存储区域中的存储地址和所占空间的大小,分别更新查找表和数据大小表。
在本实施例中,当配置存储区域中的固件配置数据出现数据损坏时,此时需要先基于查找表和数据大小表,从备份存储区域读出N个数据片段(不包括无效数据片段),然后将两个区域的数据都擦除,再按照片段ID从小到大的顺序,将N个数据片段依次重新写入配置存储区域和备份存储区域。
需要说明的是,上述方法实施例中各个步骤的执行顺序不以附图所示为限制,各步骤的执行顺序以实际应用情况为准。
与现有技术相比,本发明实施例具有以下有益效果:
(1)本发明在固态硬盘预设有配置存储区域和备份存储区域,在需要更新时直接将更新数据写入配置存储区域然后再更新查找表和数据大小表,无需数据擦除后写入,相较于现有技术,本发明在多次更新后才会对配置存储区域和备份存储区域进行擦除,这样能够有效减少更新时的擦写次数,延长固态硬盘的使用寿命和增加固件配置数据的可靠性。
(2)利用查找表和数据大小表来指明固件配置数据包括的N个数据段各自的存储地址和所占空间大小,可以有效避免更新产生的无效数据片段对数据读取的干扰,增加了读取性能。
(3)在查找表和数据大小表异常时,可以基于每个数据片段的元数据信息重新生成新的查找表和数据大小表,能够有效保障数据读出的可靠性。
(4)在配置存储区域中的固件配置数据失效时,可以基于查找表和数据大小表从备份存储区域读出N个数据片段,来实现对配置存储区域的数据恢复,保障固态硬盘的盘片固件正常运行,有效避免解决固件失效和盘片变砖问题。
为了执行上述方法实施例及各个可能的实施方式中的相应步骤,下面给出一种固态硬盘的固件配置数据管理装置的实现方式。
请参见图7,图7示出了本发明实施例提供的固态硬盘的固件配置数据管理装置的结构示意图。该固态硬盘的固件配置数据管理装置200应用于固态硬盘的主控器,固态硬盘中预设有用于存储固态硬盘的固件配置数据的配置存储区域。固件配置数据包括N个数据片段。该固态硬盘的固件配置数据管理装置200包括获取模块210和更新模块220。
获取模块210,用于获得更新指令,更新指令用于指示对第n个数据片段进行更新;n=1,2,…N;
更新模块220,用于:基于更新指令,获得第n个数据片段的更新数据;当确认配置存储区域存在满足预设条件的空闲区域时,将更新数据写入空闲区域;基于更新数据在配置存储区域的存储地址和所占空间的大小,分别更新查找表和数据大小表;其中,查找表用于存储每个数据片段在配置存储区域的存储地址,数据大小表用于存储每个数据片段所占空间的大小。
可选的,数据片段可以包括片段ID。更新模块220在获得第n个数据片段的更新数据之后,还可以用于:当配置存储区域不存在满足预设条件的空闲区域时,基于查找表和数据大小表从配置存储区域中读取除第n个数据片段之外的其它数据片段,其中,当前的N个数据片段包括全部其它数据片段以及更新数据:擦除配置存储区域中的全部数据;按照片段ID从小到大的顺序,将当前的N个数据片段依次重新写入配置存储区域;基于当前的N个数据片段各自在配置存储区域中的存储地址和所占空间的大小,分别更新查找表和数据大小表。
可选的,查找表包括每个数据片段的片段ID及其在配置存储区域的存储地址,数据大小表包括每个数据片段的片段ID及其所占空间的大小。固态硬盘的固件配置数据管理装置200还可以包括数据读取模块,用于:获取读取指令;读取指令包括待读数据的至少一个片段ID;基于至少一个片段ID,从查找表和数据大小表中查找待读数据的存储地址和大小;基于待读数据的存储地址和大小,从配置存储区域中读出待读数据。
可选的,在配置存储区域中的数据片段包括元数据信息。固态硬盘的固件配置数据管理装置200还可以包括表重建模块,用于:当查找表和/或数据大小表出现异常时,删除异常的查找表和/或异常的数据大小表;扫描整个配置存储区域,得到N个有效数据片段的元数据信息;基于元数据信息中的片段ID和有效数据片段所占用的每个数据单元的排列序号,确定每个有效数据片段的存储地址和/或所占空间的大小;基于每个有效数据片段的存储地址和/或所占空间的大小,重新生成新的查找表和/或新的数据大小表并进行存储。
可选的,固态硬盘中还预设有备份存储区域。固态硬盘的固件配置数据管理装置200还可以包括备份模块,可以用于:当对配置存储区域进行数据擦除或者数据写入时,同步对备份存储区域进行相同的数据擦除或者数据写入;当配置存储区域出现数据读取异常时,基于查找表和数据大小表从备份存储区域重新读取。
可选的,固态硬盘的固件配置数据管理装置200还可以包括数据恢复模块,用于:当配置存储区域中的固件配置数据出现数据损坏的情况时,基于查找表和数据大小表,从备份存储区域读出N个数据片段;擦除配置存储区域和备份存储区域中的全部数据;将N个数据片段重新写入配置存储区域和备份存储区域;基于N个数据片段各自在配置存储区域中的存储地址和所占空间的大小,分别更新查找表和数据大小表。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的固态硬盘的固件配置数据管理装置200的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供一种固态硬盘,该固态硬盘包括闪存和主控器,闪存中存储有软件程序,当固态硬盘运行时主控器执行软件程序以实现上述固态硬盘的固件配置数据管理方法。
本发明实施例还提供一种电子设备,该电子设备中包括上述固态硬盘。电子设备可以是但不限于:笔记本电脑、个人电脑、服务器等。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被主控器运行时实现上述实施例揭示的固态硬盘的固件配置数据管理方法。该计算机可读存储介质可以是但不限于:U盘、移动硬盘、随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),闪存存储器(Flash),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(ElectricErasable Programmable Read-Only Memory,EEPROM)、磁碟或者光盘等各种可以存储程序代码的介质。
综上,本发明实施例提供了一种固态硬盘的固件配置数据管理方法及相关装置,固态硬盘中预设有用于存储自身的固件配置数据的配置存储区域,固件配置数据包括N个数据片段。如此,通过获得的更新指令来得到第n个数据片段的更新数据;然后当确认配置存储区域存在满足预设条件的空闲区域时,将更新数据写入空闲区域;再基于更新数据在配置存储区域的存储地址和所占空间的大小,分别更新查找表和数据大小表。通过维护查找表和数据大小表,在需要更新时,直接写入更新数据同时更新查找表和数据大小表,无需数据擦除后写入,能够减少擦写次数,延长固态硬盘的使用寿命和增加固件配置数据的可靠性。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种固态硬盘的固件配置数据管理方法,其特征在于,所述固态硬盘中预设有用于存储固件配置数据的配置存储区域,所述固件配置数据包括N个数据片段;所述方法包括:
获得更新指令,所述更新指令用于指示对第n个数据片段进行更新;n=1,2,…N;
基于所述更新指令,获得所述第n个数据片段的更新数据;
当所述配置存储区域存在满足预设条件的空闲区域时,将所述更新数据写入所述空闲区域;
基于所述更新数据在所述配置存储区域的存储地址和所占空间的大小,分别更新查找表和数据大小表;其中,所述查找表用于存储每个所述数据片段在所述配置存储区域的存储地址,所述数据大小表用于存储每个所述数据片段所占空间的大小。
2.根据权利要求1所述的方法,其特征在于,所述数据片段包括片段ID;
在所述获得所述第n个数据片段的更新数据的步骤之后,所述方法还包括:
当所述配置存储区域不存在满足所述预设条件的空闲区域时,基于所述查找表和所述数据大小表从所述配置存储区域中读取除所述第n个数据片段之外的其它数据片段;其中,当前的N个数据片段包括全部所述其它数据片段以及所述更新数据;
擦除所述配置存储区域中的全部数据;
按照所述片段ID从小到大的顺序,将所述当前的N个数据片段依次重新写入所述配置存储区域;
基于所述当前的N个数据片段各自在所述配置存储区域中的存储地址和所占空间的大小,分别更新所述查找表和所述数据大小表。
3.根据权利要求1所述的方法,其特征在于,所述查找表包括每个所述数据片段的片段ID及其在所述配置存储区域的存储地址,所述数据大小表包括每个所述数据片段的片段ID及其所占空间的大小;所述方法还包括:
获取读取指令;所述读取指令包括待读数据的至少一个片段ID;
基于所述至少一个片段ID,从所述查找表和所述数据大小表中查找所述待读数据的存储地址和大小;
基于所述待读数据的存储地址和大小,从所述配置存储区域中读出所述待读数据。
4.根据权利要求3所述的方法,其特征在于,在所述配置存储区域中的数据片段包括元数据信息;所述方法还包括:
当所述查找表和/或所述数据大小表出现异常时,删除异常的查找表和/或异常的数据大小表;
扫描整个所述配置存储区域,得到N个有效数据片段的元数据信息;
基于所述元数据信息中的片段ID和所述有效数据片段所占用的每个数据单元的排列序号,确定每个所述有效数据片段的存储地址和/或所占空间的大小;
基于每个所述有效数据片段的存储地址和/或所占空间的大小,重新生成新的查找表和/或新的数据大小表并进行存储。
5.根据权利要求1-4任一所述的方法,其特征在于,所述固态硬盘中还预设有备份存储区域,所述方法还包括:
当对所述配置存储区域进行数据擦除或者数据写入时,同步对所述备份存储区域进行相同的数据擦除或者数据写入;
当所述配置存储区域出现数据读取异常时,基于所述查找表和所述数据大小表从所述备份存储区域重新读取。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述配置存储区域中的固件配置数据出现数据损坏时,基于所述查找表和所述数据大小表,从所述备份存储区域读出N个数据片段;
擦除所述配置存储区域和所述备份存储区域中的全部数据;
将所述N个数据片段重新写入所述配置存储区域和所述备份存储区域;
基于所述N个数据片段各自在所述配置存储区域中的存储地址和所占空间的大小,分别更新所述查找表和所述数据大小表。
7.一种固态硬盘的固件配置数据管理装置,其特征在于,所述固态硬盘中预设有用于存储固件配置数据的配置存储区域,所述固件配置数据包括N个数据片段;所述装置包括:
获取模块,用于获得更新指令,所述更新指令用于指示对第n个数据片段进行更新;n=1,2,…N;
更新模块,用于:
基于所述更新指令,获得所述第n个数据片段的更新数据;
当所述配置存储区域存在满足预设条件的空闲区域时,将所述更新数据写入所述空闲区域;
基于所述更新数据在所述配置存储区域的存储地址和所占空间的大小,分别更新所述查找表和所述数据大小表;其中,所述查找表用于存储每个所述数据片段在所述配置存储区域的存储地址,所述数据大小表用于存储每个所述数据片段所占空间的大小。
8.一种固态硬盘,其特征在于,所述固态硬盘包括闪存和主控器,所述闪存中存储有软件程序,当所述固态硬盘运行时所述主控器执行所述软件程序以实现如权利要求1-6中任一项所述的固态硬盘的固件配置数据管理方法。
9.一种电子设备,其特征在于,所述电子设备包括如权利要求8所述的固态硬盘。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被主控器执行时实现权利要求1-7中任一项所述的固态硬盘的固件配置数据管理方法。
CN202310722791.8A 2023-06-16 2023-06-16 固态硬盘的固件配置数据管理方法及相关装置 Pending CN116627350A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310722791.8A CN116627350A (zh) 2023-06-16 2023-06-16 固态硬盘的固件配置数据管理方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310722791.8A CN116627350A (zh) 2023-06-16 2023-06-16 固态硬盘的固件配置数据管理方法及相关装置

Publications (1)

Publication Number Publication Date
CN116627350A true CN116627350A (zh) 2023-08-22

Family

ID=87609893

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310722791.8A Pending CN116627350A (zh) 2023-06-16 2023-06-16 固态硬盘的固件配置数据管理方法及相关装置

Country Status (1)

Country Link
CN (1) CN116627350A (zh)

Similar Documents

Publication Publication Date Title
US8892814B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
US9069673B2 (en) Memory system configured to perform segment cleaning and related method of operation
US8417882B2 (en) Storage device and deduplication method
US9043536B2 (en) Method of recording mapping information, and memory controller and memory storage apparatus using the same
JP3708047B2 (ja) フラッシュメモリの管理方法
US8312204B2 (en) System and method for wear leveling in a data storage device
US20200151110A1 (en) Memory addressing
US8230160B2 (en) Flash memory storage system and flash memory controller and data processing method thereof
US9058255B2 (en) Solid state drive and method for constructing logical-to-physical table thereof
CN111581126B (zh) 一种基于ssd的日志数据保存方法、装置、设备和介质
CN113568582B (zh) 数据管理方法、装置和存储设备
KR102215748B1 (ko) 저장 장치를 사전 조정하는 방법 및 시스템
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
CN110147332B (zh) 目录数据的管理方法与存储器装置
US20110107056A1 (en) Method for determining data correlation and a data processing method for a memory
EP2381354A2 (en) Data recording device
JP2000285001A (ja) 半導体フラッシュメモリ装置及びその制御方法
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
CN116627350A (zh) 固态硬盘的固件配置数据管理方法及相关装置
CN109002265B (zh) 一种数据处理的方法以及相关装置
CN111506255B (zh) 基于nvm的固态硬盘元数据管理方法及系统
CN103455444B (zh) 文件保护方法与系统及其存储器控制器与存储器存储装置
US11579789B2 (en) Techniques for managing context information for a storage device
KR100859989B1 (ko) 플래시 메모리의 공간정보 관리장치 및 그 방법
US11487429B1 (en) Flash translation layer table processing method for solid state drive

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