CN117762328A - 固态硬盘的数据存储方法及其装置、计算机设备 - Google Patents

固态硬盘的数据存储方法及其装置、计算机设备 Download PDF

Info

Publication number
CN117762328A
CN117762328A CN202311611846.4A CN202311611846A CN117762328A CN 117762328 A CN117762328 A CN 117762328A CN 202311611846 A CN202311611846 A CN 202311611846A CN 117762328 A CN117762328 A CN 117762328A
Authority
CN
China
Prior art keywords
mapping table
target
solid state
state disk
storage area
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
CN202311611846.4A
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.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center 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 Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202311611846.4A priority Critical patent/CN117762328A/zh
Publication of CN117762328A publication Critical patent/CN117762328A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据存储技术领域,公开了一种固态硬盘的数据存储方法及其装置、计算机设备。该方法包括:获取所述固态硬盘中的第一映射表和第二映射表;将所述第一映射表和所述第二映射表存储至所述顺序寻址存储区域中;创建目标映射表,所述目标映射表用于指示所述第二映射表在所述固态硬盘中的顺序寻址存储区域上的物理地址;将所述目标映射表存储至所述固态硬盘的直接寻址存储区域中;获取待存储用户数据;基于所述第一映射表、所述第二映射表和所述目标映射表对所述待存储用户数据进行存储。根据本发明实施例的方案,能够在满足大容量盘的需求的同时,节省硬件成本。

Description

固态硬盘的数据存储方法及其装置、计算机设备
技术领域
本发明涉及数据存储技术领域,具体涉及固态硬盘的数据存储方法及其装置、计算机设备。
背景技术
随着单个固态硬盘(Solid State Drive,SSD)盘容量点的不断增大,保存元数据的位置的索引数据(比如物理地址与索引号的映射信息)也在急剧增大,而索引数据一般都保存在成本较高的闪存(比如Nor Flash(即直接寻址存储区域)),原先预留给索引数据的大小已经无法满足大容量盘的需求。
相关技术中,通常通过增大Nor Flash的容量大小,来满足大容量盘带来的内存开销,但是,随着Nor Flash容量的增大,配置文件、坏块表信息等原先保存在Nor Flash的数据量也会增大,这些数据量综合起来有可能超过了原先的固态硬盘的硬件容量,从而导致硬件成本的增加。
发明内容
有鉴于此,本发明提供了一种固态硬盘的数据存储方法及其装置、计算机设备,能够在满足大容量盘的需求的同时,节省硬件成本。
第一方面,本发明提供了固态硬盘的数据存储方法,应用于固态硬盘,所述方法包括:
获取所述固态硬盘中的第一映射表和第二映射表,所述第一映射表用于指示元数据在所述固态硬盘中的顺序寻址存储区域上的物理地址,所述第二映射表用于指示所述第一映射表在所述顺序寻址存储区域上的物理地址,所述元数据用于指示用户数据在所述顺序寻址存储区域上的物理地址;
将所述第一映射表和所述第二映射表存储至所述顺序寻址存储区域中;
创建目标映射表,所述目标映射表用于指示所述第二映射表在所述固态硬盘中的顺序寻址存储区域上的物理地址;
将所述目标映射表存储至所述固态硬盘的直接寻址存储区域中;
获取待存储用户数据;
基于所述第一映射表、所述第二映射表和所述目标映射表对所述待存储用户数据进行存储。
本发明实施例提供的固态硬盘的数据存储方法,通过将第一映射表和所述第二映射表存储至所述顺序寻址存储区域中,以及创建目标映射表,将所述目标映射表存储至所述固态硬盘的直接寻址存储区域中,基于所述第一映射表、所述第二映射表和所述目标映射表对所述待存储用户数据进行存储,能够不增大关键区域的前提下,重新规划直接寻址存储区域中内存的分配,减少了对Nor Flash内存空间的使用,因此,不会导致配置文件、坏块表信息等保存在Nor Flash的数据量增大,进而不会出现配置文件、坏块表信息等数据量超过了原先的固态硬盘的硬件容量的情况,而且由于顺序寻址存储区域的容量大于直接寻址存储区域的容量,因此,顺序寻址存储区域的容量足够存储第二映射表,因此,本申请实施例能够在满足大容量盘的需求的同时,节省硬件成本。
在一些可选的实施方式中,所述创建目标映射表,包括:
确定所述目标映射表的存储容量以及存储格式;
基于所述存储容量和所述存储格式,创建所述目标映射表。
本发明实施例提供的固态硬盘的数据存储方法,通过确定目标映射表的存储容量以及存储格式,能够基于存储容量和存储格式,创建目标映射表,以便于后续步骤可以基于目标映射表对第二映射表进行存储。
在一些可选的实施方式中,所述基于所述第一映射表、所述第二映射表和所述目标映射表对所述待存储用户数据进行存储,包括:
确定所述待存储用户数据对应的目标元数据;
基于所述第一映射表、所述第二映射表和所述目标映射表对所述目标元数据进行存储。
本发明实施例提供的固态硬盘的数据存储方法,通过确定待存储用户数据对应的目标元数据,基于第一映射表、第二映射表和目标映射表对目标元数据进行存储,能够将原先的“二级跳转机制”优化到了“三级跳转机制”,这不仅能够减少对直接寻址存储区域(即Nor Flash)内存空间的使用,而且还能够在满足固态硬盘大容量需求的同时,节省了硬件成本。
在一些可选的实施方式中,所述基于所述第一映射表、所述第二映射表和所述目标映射表对所述目标元数据进行存储,包括:
将所述目标元数据存储至所述固态硬盘的缓存区域中;
确定所述缓存区域中所述目标元数据的容量;
若所述目标元数据的容量大于或者等于第一预设容量,将所述目标元数据刷写至所述顺序寻址存储区域中;
确定所述目标元数据对应的第一索引号,以及所述目标元数据存储在所述顺序寻址存储区域中的物理地址;
将所述第一索引号和所述目标元数据的物理地址进行映射,得到第一映射信息;
将所述第一映射信息更新至所述第一映射表中;
将所述第一映射表存储至所述缓存区域中;
确定所述缓存区域中所述第一映射表的容量;
若所述第一映射表的容量大于或者等于第二预设容量,将所述第一映射表刷写至所述顺序寻址存储区域中;
确定所述第一映射表对应的第二索引号,以及所述第一映射表存储在所述顺序寻址存储区域中的物理地址;
将所述第二索引号和所述第一映射表的物理地址进行映射,得到第二映射信息;
将所述第二映射信息更新至所述第二映射表中;
基于所述目标映射表和所述缓存区域对所述第二映射表进行存储。
本发明实施例提供的固态硬盘的数据存储方法,通过目标元数据、第一映射表、第二映射表以及目标映射表的存储关系,能够保证数据存储的准确性和一致性。
在一些可选的实施方式中,所述基于所述目标映射表和所述缓存区域对所述第二映射表进行存储,包括:
将所述第二映射表缓存至所述缓存区域中;
确定所述缓存区域中所述第二映射表的容量;
若所述第二映射表的容量大于或者等于第三预设容量,将所述第二映射表刷写至所述顺序寻址存储区域中;
确定所述第二映射表对应的第三索引号,以及所述第二映射表存储在所述顺序寻址存储区域中的物理地址;
将所述第三索引号和所述第二映射表的物理地址进行映射,得到第三映射信息;
将所述第三映射信息存储至所述目标映射表中。
本发明实施例提供的固态硬盘的数据存储方法,通过第二映射表以及目标映射表的存储关系,能够保证基于目标映射表实现对第二映射表的索引。
在一些可选的实施方式中,所述方法还包括:
在接收到主机端的下电指令时,对所述固态硬盘的缓存区域中所述目标元数据、所述第一映射表、所述第二映射表以及所述目标映射表进行保存。
在一些可选的实施方式中,所述对所述固态硬盘的缓存区域中所述目标元数据、所述第一映射表、所述第二映射表以及所述目标映射表进行保存,包括:
若所述固态硬盘的缓存区域中的所述目标元数据的容量小于第一预设容量,将所述缓存区域中的所述目标元数据刷写至所述顺序寻址存储区域中;
确定所述目标元数据在所述顺序寻址存储区域中的物理地址;
将所述目标元数据的物理地址更新至所述第一映射表;
若所述固态硬盘的缓存区域中的所述第一映射表的容量小于第二预设容量,将所述缓存区域中的所述第一映射表刷写至所述顺序寻址存储区域中;
确定所述第一映射表在所述顺序寻址存储区域中的物理地址;
将所述第一映射表的物理地址更新至所述第二映射表;
若所述固态硬盘的缓存区域中的所述第二映射表的容量小于第三预设容量,将所述缓存区域中的所述第二映射表刷写至所述顺序寻址存储区域中;
确定所述第二映射表在所述顺序寻址存储区域中的物理地址;
将所述第二映射表的物理地址更新至所述目标映射表;
将所述目标映射表保存至所述直接寻址存储区域中。
在一些可选的实施方式中,所述方法还包括:
在接收到主机端的上电指令时,对所述固态硬盘的缓存区域中所述目标元数据、所述第一映射表、所述第二映射表以及所述目标映射表进行恢复。
第二方面,本发明提供了一种固态硬盘的数据存储装置,包括:
第一获取模块,用于获取所述固态硬盘中的第一映射表和第二映射表,所述第一映射表用于指示元数据在所述固态硬盘中的顺序寻址存储区域上的物理地址,所述第二映射表用于指示所述第一映射表在所述顺序寻址存储区域上的物理地址,所述元数据用于指示用户数据在所述顺序寻址存储区域上的物理地址;
第一存储模块,用于将所述第一映射表和所述第二映射表存储至所述顺序寻址存储区域中;
创建模块,用于创建目标映射表,所述目标映射表用于指示所述第二映射表在所述固态硬盘中的顺序寻址存储区域上的物理地址;
第二存储模块,用于将所述目标映射表存储至所述固态硬盘的直接寻址存储区域中;
第二获取模块,用于获取待存储用户数据;
第三存储模块,用于基于所述第一映射表、所述第二映射表和所述目标映射表对所述待存储用户数据进行存储。
在一些可选的实施方式中,创建模块具体包括:
第一确定子模块,用于确定所述目标映射表的存储容量以及存储格式;
创建子模块,用于基于所述存储容量和所述存储格式,创建所述目标映射表。
在一些可选的实施方式中,第三存储模块具体包括:
第二确定子模块,用于确定所述待存储用户数据对应的目标元数据;
第一存储子模块,用于基于所述第一映射表、所述第二映射表和所述目标映射表对所述目标元数据进行存储。
在一些可选的实施方式中,第一存储子模块具体包括:
第一存储单元,用于将所述目标元数据存储至所述固态硬盘的缓存区域中;
第一确定单元,用于确定所述缓存区域中所述目标元数据的容量;
第一刷写单元,用于若所述目标元数据的容量大于或者等于第一预设容量,将所述目标元数据刷写至所述顺序寻址存储区域中;
第二确定单元,用于确定所述目标元数据对应的第一索引号,以及所述目标元数据存储在所述顺序寻址存储区域中的物理地址;
第一映射单元,用于将所述第一索引号和所述目标元数据的物理地址进行映射,得到第一映射信息;
第一更新单元,用于将所述第一映射信息更新至所述第一映射表中;
第二存储单元,用于将所述第一映射表存储至所述缓存区域中;
第三确定单元,用于确定所述缓存区域中所述第一映射表的容量;
第二刷写单元,用于若所述第一映射表的容量大于或者等于第二预设容量,将所述第一映射表刷写至所述顺序寻址存储区域中;
第四确定单元,用于确定所述第一映射表对应的第二索引号,以及所述第一映射表存储在所述顺序寻址存储区域中的物理地址;
第二映射单元,用于将所述第二索引号和所述第一映射表的物理地址进行映射,得到第二映射信息;
第二更新单元,用于将所述第二映射信息更新至所述第二映射表中;
第三存储单元,用于基于所述目标映射表和所述缓存区域对所述第二映射表进行存储。
在一些可选的实施方式中,第三存储单元具体包括:
第一存储子单元,用于将所述第二映射表缓存至所述缓存区域中;
第一确定子单元,用于确定所述缓存区域中所述第二映射表的容量;
刷写子单元,用于若所述第二映射表的容量大于或者等于第三预设容量,将所述第二映射表刷写至所述顺序寻址存储区域中;
第二确定子单元,用于确定所述第二映射表对应的第三索引号,以及所述第二映射表存储在所述顺序寻址存储区域中的物理地址;
映射子单元,用于将所述第三索引号和所述第二映射表的物理地址进行映射,得到第三映射信息;
第二存储子单元,用于将所述第三映射信息存储至所述目标映射表中。
在一些可选的实施方式中,固态硬盘的数据存储装置还包括:
保存模块,用于在接收到主机端的下电指令时,对所述固态硬盘的缓存区域中所述目标元数据、所述第一映射表、所述第二映射表以及所述目标映射表进行保存。
在一些可选的实施方式中,保存模块元具体包括:
第二存储子模块,用于若所述固态硬盘的缓存区域中的所述目标元数据的容量小于第一预设容量,将所述缓存区域中的所述目标元数据刷写至所述顺序寻址存储区域中;
第二确定子模块,用于确定所述目标元数据在所述顺序寻址存储区域中的物理地址;
第一更新子模块,用于将所述目标元数据的物理地址更新至所述第一映射表;
第一刷写子模块,用于若所述固态硬盘的缓存区域中的所述第一映射表的容量小于第二预设容量,将所述缓存区域中的所述第一映射表刷写至所述顺序寻址存储区域中;
第三确定子模块,用于确定所述第一映射表在所述顺序寻址存储区域中的物理地址;
第二更新子模块,用于将所述第一映射表的物理地址更新至所述第二映射表;
第二刷写子模块,用于若所述固态硬盘的缓存区域中的所述第二映射表的容量小于第三预设容量,将所述缓存区域中的所述第二映射表刷写至所述顺序寻址存储区域中;
第四确定子模块,用于确定所述第二映射表在所述顺序寻址存储区域中的物理地址;
第三更新子模块,用于将所述第二映射表的物理地址更新至所述目标映射表;
保存子模块,用于将所述目标映射表保存至所述直接寻址存储区域中。
在一些可选的实施方式中,固态硬盘的数据存储装置还包括:
恢复模块,用于在接收到主机端的上电指令时,对所述固态硬盘的缓存区域中所述目标元数据、所述第一映射表、所述第二映射表以及所述目标映射表进行恢复。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的固态硬盘的数据存储方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的固态硬盘的数据存储方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种可选的固态硬盘的示意图;
图2是根据本发明实施例的一种固态硬盘的数据存储的结构示意图;
图3是根据本发明实施例的另一种固态硬盘的数据存储的结构示意图;
图4是根据本发明实施例的又一种固态硬盘的数据存储的结构示意图;
图5是根据本发明实施例的一种固态硬盘的数据存储方法的流程图;
图6是根据本发明实施例的另一种固态硬盘的数据存储方法的流程图;
图7是根据本发明实施例的再一种固态硬盘的数据存储的结构示意图;
图8是本申请实施例提供的一种固态硬盘的数据存储装置的示意图;
图9是本发明实施例提供的一种可选的计算机设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,图1为本申请实施例提供的一种可选的固态硬盘的示意图,该固态硬盘包括控制管理器(Control manager,CM)和日志管理器(Journal Manager,JM)。
示例性地,日志管理器可以获取固态硬盘中的第一映射表和第二映射表,将第一映射表和第二映射表存储至顺序寻址存储区域中,控制管理器可以创建目标映射表,将目标映射表存储至固态硬盘的直接寻址存储区域中,然后日志管理器获取待存储用户数据,基于第一映射表、第二映射表和目标映射表对待存储用户数据进行存储。
相关技术中,如图2所示,采用固态硬盘的关键区域(即Nor Flash)存储二级表(即第二映射表),二级表用于记录一级表(即第一映射表)的物理地址,一级表用于记录元数据(比如l2p(Logical To Physical Table逻辑块到物理块的映射)表)的物理地址,其中,由于l2p表很大(16T对应16G左右),因此,需要对l2p表进行分段保存,l2p part1、l2p part2、l2p part3、l2p part4、l2p part5和l2p part6即分段的区域,一级表可以用于定位某个l2p part对应在slc(Single Layer Cell,单层单存储单元)nand(NAND flash memory,非易失性存储介质),即顺序寻址存储区域的物理地址。同样地,也可以将一级表划分为多段保存,通过二级表来定位。
但是,随着单个固态硬盘容量点的不断增大,保存元数据的位置的索引数据(比如一级表和二级表)也在急剧增大。
具体地,如图3和图4所示,图3最左边的关键区域,其用来保存二级表,下电时由控制管理器CM负责保存,其中,控制流从元数据至一级表,一级表至二级表,将用户数据从缓存区域(即RAM)保存到顺序寻址存储区域(即slcnand),以及固态硬盘上电重启后,控制流从二级表至一级表,从一级表至元数据的方向,将用户数据从顺序寻址存储区域读取出来恢复到缓存区域;JMWriteBuffer内存空间是固态硬盘内部的RAM(即缓存区域),由JM(Journal Manager,日志管理器)负责,其用来暂存元数据、第一映射表,当数据存满一个16K(JM_LBA)大小时会保存到nand中,或者下电时也会将未满16K大小的数据刷新保存到nand中。
slcnand空间由JM负责,用来持久化保存l2p、vdfc等元数据。在上电后,JM从slcnand中读取出来元数据并恢复到RAM中,其中,vdfc用于说明当前条带(super page)保存的有效用户数据个数。
从图3和图4可以看出,当前的保存、恢复机制包含了JM和CM,当固态硬盘容量点增大,元数据体量也会增大,进而导致一级表、二级表增大。而二级表由CM保存在关键区域,二级表的增大一方面会导致CM原有的保存机制失效,另一方面也会增大CM对关键区域大小的需求,但是,随着Nor Flash容量的增大,配置文件、坏块表信息等原先保存在Nor Flash的数据量也会增大,这些数据量综合起来有可能超过了原先的固态硬盘的硬件容量,从而导致硬件成本的增加。此外,随着Nor Flash(即关键区域)容量的增大,还会引起软件架构的改变,尤其是原先只需要用1个page(16K)(其中,page即闪存页)的空间存储二级表,现在需要用多个page的空间存储二级表,因此,会额外增加软件开发工作,从而降低了软件开发的效率。
基于此,本发明实施例提供了一种固态硬盘的数据存储方法及其装置、计算机设备,能够在满足大容量盘的需求的同时,节省硬件成本,而且能够提高软件开发的效率。此外,还不会对CM原有的保存机制产生影响。
根据本发明实施例,提供了一种固态硬盘的数据存储方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种固态硬盘的数据存储方法,可用于上述的固态硬盘。图5是根据本发明实施例的固态硬盘的数据存储方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,获取固态硬盘中的第一映射表和第二映射表。
其中,第一映射表用于指示元数据在固态硬盘中的顺序寻址存储区域上的物理地址,第二映射表用于指示第一映射表在顺序寻址存储区域上的物理地址,元数据用于指示用户数据在顺序寻址存储区域上的物理地址。顺序寻址存储区域即slcnand。
第一映射表和第二映射表均可以以JM_LBA(16K)为存储容量的单位,采用Header+Delta+Base的组合形式进行信息保存。其中,Header部分占用了64bytes的存储空间,其包含了meta_type字段,该meta_type字段用来标识当前的映射表(比如第一映射表、第二映射表或者目标映射表);Delta部分占用4032bytes的存储空间,其格式为(meta_index,pca),其中meta_index表示当前记录的映射表(比如第一映射表或者第二映射表)的索引号,pca表示存储在顺序寻址存储区域的物理地址(比如channel/target/lun/block/page);Base部分占用了12k的存储空间,其用于记录整个第一映射表或者第二映射表的局部信息。具体地,第二映射表对应的Delta部分存储的是第一映射表的第二映射信息,第一映射表对应的Delta部分存储的是元数据(比如l2p表)的第一映射信息。
步骤S502,将第一映射表和第二映射表存储至顺序寻址存储区域中。
通过JM能够将第一映射表和第二映射表存储至顺序寻址存储区域中,即通过JM将已有数据进行二次索引后保存到CM中,再通过CM保存至顺序寻址存储区域中,此时,数据量减少,可见,本步骤能够将因固态硬盘容量增大而引发的软件修改限制在JM,即仅需要JM修改第二映射表的存储位置,而无需CM修改第二映射表的存储位置,不会对CM原有的保存机制产生影响,这不仅降低了开发难度,而且还提高了开发效率,同时,还能够减少对直接寻址存储区域内存大小的依赖。
另外,顺序寻址存储区域被分为多个物理块,第一映射表和第二映射表分别存储在顺序寻址存储区域中的不同物理块中。
步骤S503,创建目标映射表。
其中,目标映射表用于指示第二映射表在固态硬盘中的顺序寻址存储区域上的物理地址。
步骤S504,将目标映射表存储至固态硬盘的直接寻址存储区域中。
其中,直接寻址存储区域即Nor Flash,Nor Flash允许直接进行数据读取访问,相对于顺序寻址存储区域,读取速度更快,并且成本更高。
步骤S505,获取待存储用户数据。
步骤S506,基于第一映射表、第二映射表和目标映射表对待存储用户数据进行存储。
具体地,基于第一映射表对待存储用户数据进行保存,基于第二映射表对第一映射表进行保存,基于目标映射表对第二映射表进行保存。
可以理解的是,创建目标映射表,基于目标映射表对第二映射表进行存储,会增加上电恢复元数据时间,比如,32T/64T容量盘会增加2/4个slc page(即闪存页)的读取时间,比如,并发读取时间大概为37us,经过评估该增加的上电恢复元数据时间满足上电时间要求。另外,目标映射表会增加固态硬盘的缓存区域(如DRAM)的存储容量,比如,32T/64T容量盘会增加16K的DRAM,经过评估该缓存区域的存储空间相对充足,可以满足要求。
在一些可选的实现方式中,若固态硬盘容量点持续增大,直到Nor Flash的存储容量无法满足对应的目标映射表的数据量时,在缓存区域的存储空间相对充足的情况下,可以将目标映射表作为第三映射表,将第三映射表存储在顺序寻址存储区域中,并创建新的目标映射表,将新的目标映射表存储在直接寻址存储区域中,通过新的目标映射表记录第三映射表对应于顺序寻址存储区域的物理地址。
本实施例提供的固态硬盘的数据存储方法,通过将第一映射表和第二映射表存储至顺序寻址存储区域中,以及创建目标映射表,将目标映射表存储至固态硬盘的直接寻址存储区域中,基于第一映射表、第二映射表和目标映射表对待存储用户数据进行存储,能够不增大关键区域的前提下,重新规划直接寻址存储区域中内存的分配,减少了对Nor Flash内存空间的使用,因此,不会导致配置文件、坏块表信息等保存在Nor Flash的数据量增大,进而不会出现配置文件、坏块表信息等数据量超过了原先的固态硬盘的硬件容量的情况,而且由于顺序寻址存储区域的容量大于直接寻址存储区域的容量,因此,顺序寻址存储区域的容量足够存储第二映射表,因此,本申请实施例能够在满足大容量盘的需求的同时,节省硬件成本。此外,还能够降低开发难度,以及提高开发效率,同时,还能够减少对直接寻址存储区域内存大小的依赖。
在本实施例中提供了一种固态硬盘的数据存储方法,可用于上述的固态硬盘。图6是根据本发明实施例的固态硬盘的数据存储方法的流程图,如图6所示,该流程包括如下步骤:
步骤S601,获取固态硬盘中的第一映射表和第二映射表。
详细请参见图5所示实施例的步骤S501,在此不再赘述。
步骤S602,将第一映射表和第二映射表存储至顺序寻址存储区域中。
详细请参见图5所示实施例的步骤S502,在此不再赘述。
步骤S603,创建目标映射表,目标映射表用于指示第二映射表在固态硬盘中的顺序寻址存储区域上的物理地址。
具体地,上述步骤S603包括:
步骤S6031,确定目标映射表的存储容量以及存储格式。
步骤S6032,基于存储容量和存储格式,创建目标映射表。
具体地,目标映射表的存储容量是以JM_LBA(16K)为存储容量的单位,其存储容量可以是第二映射表的存储容量的1/16K,即1/16JM_LBA,如此,能够减少JM在直接寻址存储区域的占用空间,进而能够留出更多的存储空间给其他业务。
目标映射表的存储格式可以采用Header+Delta+Base的组合形式。其中,Header部分占用了64bytes的存储空间,其包含了meta_type字段,该meta_type字段用来标识当前的映射表是目标映射表;Delta部分占用4032bytes的存储空间,其格式为(meta_index,pca),该格式表明第二映射表的某个值存在了顺序寻址存储区域对应的pca的位置上,其中meta_index表示当前记录的第二映射表的第三索引号,pca表示存储在顺序寻址存储区域的物理地址(比如channel/target/lun/block/page);Base部分占用了12k的存储空间,其用于记录整个第二映射表的局部信息。
在本申请实施例中,通过确定目标映射表的存储容量以及存储格式,能够基于存储容量和存储格式,创建目标映射表,以便于后续步骤可以基于目标映射表对第二映射表进行存储。
步骤S604,将目标映射表存储至固态硬盘的直接寻址存储区域中。
详细请参见图5所示实施例的步骤S504,在此不再赘述。
步骤S605,获取待存储用户数据。
详细请参见图5所示实施例的步骤S505,在此不再赘述。
步骤S606,基于第一映射表、第二映射表和目标映射表对待存储用户数据进行存储。
具体地,上述步骤S606包括:
步骤S6061,确定待存储用户数据对应的目标元数据。
其中,目标元数据用于指示待存储用户数据在顺序寻址存储区域上的物理地址。
步骤S6062,基于第一映射表、第二映射表和目标映射表对目标元数据进行存储。
具体地,基于第一映射表对目标映射表进行保存,基于第二映射表对第一映射表进行保存,基于目标映射表对第二映射表进行保存。
在本申请实施例中,通过确定待存储用户数据对应的目标元数据,基于第一映射表、第二映射表和目标映射表对目标元数据进行存储,能够将原先的“二级跳转机制”优化到了“三级跳转机制”,这不仅能够减少对直接寻址存储区域(即Nor Flash)内存空间的使用,而且还能够在满足固态硬盘大容量需求的同时,节省了硬件成本。其中,“二级跳转机制”即元数据、第一映射表和第二映射表对应的寻址的机制,“三级跳转机制”元数据、第一映射表、第二映射表和目标映射表对应的寻址的机制。
在一些可选的实现方式中,步骤S6062具体包括:
步骤a1,将目标元数据存储至固态硬盘的缓存区域中。
其中,在FIO运行时,开始将目标元数据存储至固态硬盘的缓存区域中,FIO是一个可以产生很多线程或进程并执行用户指定的特定类型I/O操作的工具。
示例性地,可以将目标元数据分为多个数据块,缓存区域也可以被分为多个区域块,将目标元数据对应的数据块分别存储至缓存区域的各个区域块中。
示例性地,可以先确定目标元数据的容量,若目标元数据的容量小于第一预设容量,先将目标元数据存储在固态硬盘的缓存区域中,若是目标元数据的容量大于或者等于第一预设容量,直接将目标元数据刷写至顺序寻址存储区域中。
步骤a2,确定缓存区域中目标元数据的容量。
其中,目标元数据的容量即目标元数据存储在缓存区域中的数据量。
步骤a3,若目标元数据的容量大于或者等于第一预设容量,将目标元数据刷写至顺序寻址存储区域中。
其中,第一预设容量可以是一个JM_LBA(即16k),也可以是其他容量值,可以根据实际需求设置,在此不作具体限制。
步骤a4,确定目标元数据对应的第一索引号,以及目标元数据存储在顺序寻址存储区域中的物理地址。
具体地,可以将目标元数据分为若干个数据块,每个数据块对应一个索引号,将这些数据块分别存储在顺序寻址存储区域中,每个数据块对应有存储在顺序寻址存储区域的物理地址,因此,每个数据块对应有一个索引号和一个物理地址,因此,目标元数据对应的第一索引号可以是目标元数据对应的所有数据块的索引号的集合,目标元数据对应的物理地址可以是目标元数据对应的所有数据块的物理地址的集合。
步骤a5,将第一索引号和目标元数据的物理地址进行映射,得到第一映射信息。
其中,第一映射信息用于表征第一索引号和目标元数据的物理地址之间的映射关系。
示例性地,若目标元数据被分为若干个数据块,那么可以将每个数据块对应的索引号和物理地址进行映射,得到每个数据块的映射信息,此时,第一映射信息可以为目标元数据中每个数据块对应的映射信息的集合。
步骤a6,将第一映射信息更新至第一映射表中。
步骤a7,将第一映射表存储至缓存区域中。
具体地,可以先确定第一映射表的容量,若是第一映射表的容量大于或者等于第二预设容量,可以将第一映射表直接刷写至顺序寻址存储区域中。
步骤a8,确定缓存区域中第一映射表的容量。
其中,第一映射表的容量即第一映射表存储在缓存区域中的数据量。
步骤a9,若第一映射表的容量大于或者等于第二预设容量,将第一映射表刷写至顺序寻址存储区域中。
其中,第二预设容量可以是一个JM_LBA(即16k),也可以是其他容量值,可以根据实际需求设置,在此不作具体限制。
步骤a10,确定第一映射表对应的第二索引号,以及第一映射表存储在顺序寻址存储区域中的物理地址。
具体地,可以将第一映射表分为若干个分区,每个分区对应一个索引号,将这些分区分别存储在顺序寻址存储区域中,每个分区对应有存储在顺序寻址存储区域的物理地址,因此,每个分区对应有一个索引号和一个物理地址,因此,第一映射表对应的第二索引号可以是第一映射表对应的所有分区的索引号的集合,第一映射表对应的物理地址可以是第一映射表对应的所有分区的物理地址的集合。
步骤a11,将第二索引号和第一映射表的物理地址进行映射,得到第二映射信息。
其中,第二映射信息用于表征第二索引号和第一映射表的物理地址之间的映射关系。
示例性地,若第一映射表被分为若干个分区,那么可以将每个分区对应的索引号和物理地址进行映射,得到每个分区的映射信息,此时,第二映射信息可以为第一映射表中每个分区对应的映射信息的集合。
步骤a12,将第二映射信息更新至第二映射表中。
步骤a13,基于目标映射表和缓存区域对第二映射表进行存储。
在本申请实施例中,通过目标元数据、第一映射表、第二映射表以及目标映射表的存储关系,能够保证数据存储的准确性和一致性。
在一些可选的实现方式中,步骤a13具体包括:
a131,将第二映射表缓存至缓存区域中。
具体地,可以先确定第二映射表的容量,若是第二映射表的容量大于或者等于第三预设容量,可以将第二映射表直接刷写至顺序寻址存储区域中,而无需存储在缓存区域中。
a132,确定缓存区域中第二映射表的容量。
其中,第二映射表的容量即第二映射表存储在缓存区域中的数据量。
a133,若第二映射表的容量大于或者等于第三预设容量,将第二映射表刷写至顺序寻址存储区域中。
其中,第三预设容量可以是一个JM_LBA(即16k),也可以是其他容量值,可以根据实际需求设置,在此不作具体限制。
a134,确定第二映射表对应的第三索引号,以及第二映射表存储在顺序寻址存储区域中的物理地址。
具体地,可以将第二映射表分为若干个分区,每个分区对应一个索引号,将这些分区分别存储在顺序寻址存储区域中,每个分区对应有存储在顺序寻址存储区域的物理地址,因此,每个分区对应有一个索引号和一个物理地址,因此,第二映射表对应的第三索引号可以是第二映射表对应的所有分区的索引号的集合,第二映射表对应的物理地址可以是第二映射表对应的所有分区的物理地址的集合。
a135,将第三索引号和第二映射表的物理地址进行映射,得到第三映射信息。
第三映射信息用于表征第三索引号和第二映射表的物理地址之间的映射关系。
示例性地,若第一映射表被分为若干个分区,那么可以将每个分区对应的索引号和物理地址进行映射,得到每个分区的映射信息,此时,第二映射信息可以为第一映射表中每个分区对应的映射信息的集合。
a136,将第三映射信息存储至目标映射表中。
在本申请实施例中,通过第二映射表以及目标映射表的存储关系,能够保证基于目标映射表实现对第二映射表的索引。
在一些可选的实现方式中,在接收到主机端(即host端)的下电指令时,固态硬盘下电,此时,需要对固态硬盘的缓存区域中目标元数据、第一映射表、第二映射表以及目标映射表进行保存。
具体地,如图7所示,若固态硬盘的缓存区域中的目标元数据的容量小于第一预设容量,由JM将缓存区域中的目标元数据刷写至顺序寻址存储区域中,同时确定目标元数据在顺序寻址存储区域中的物理地址,由JM将目标元数据的物理地址更新至第一映射表。进一步地,若固态硬盘的缓存区域中的目标元数据的容量大于或者等于第一预设容量,也是由JM将缓存区域中的目标元数据刷写至顺序寻址存储区域中。
若固态硬盘的缓存区域中的第一映射表的容量小于第二预设容量,由JM将缓存区域中的第一映射表刷写至顺序寻址存储区域中,确定第一映射表在顺序寻址存储区域中的物理地址,将第一映射表的物理地址更新至第二映射表。进一步地,若固态硬盘的缓存区域中的第一映射表的容量大于或者等于第二预设容量,也是由JM将缓存区域中的第一映射表刷写至顺序寻址存储区域中。
若固态硬盘的缓存区域中的第二映射表的容量小于第三预设容量,由JM将缓存区域中的第二映射表刷写至顺序寻址存储区域中,确定第二映射表在顺序寻址存储区域中的物理地址,由CM将第二映射表的物理地址更新至目标映射表,将目标映射表保存至直接寻址存储区域中。
可以理解的是,直接寻址存储区域可以对目标映射表进行持久化保存。
在一些可选的实现方式中,在接收到主机端的上电指令时,固态硬盘上电,此时,需要对固态硬盘的缓存区域中目标元数据、第一映射表、第二映射表以及目标映射表进行恢复。
具体地,如图7所示,首先由CM从直接寻址存储区域中读取目标映射表,将目标映射表恢复至缓存区域中,然后基于目标映射表中的第三映射信息按照item(即条目)中的(second_table_num,pca)格式,将第二映射表进行恢复,其中,second_table_num表示第二映射表的第三索引号,second_table_num对应的pca表示第二映射表对应于顺序寻址存储区域的物理地址。接着,由JM基于第二映射表中的第二映射信息按照item中的(first_table_num,pca)格式,将第一映射表进行恢复,其中,first_table_num表示第一映射表的第二索引号,first table_num对应的pca表示第一映射表对应于顺序寻址存储区域的物理地址。最后,由JM基于第一映射表中的第一映射信息按照item中的(meta_type_num,pca)格式,将目标元数据恢复,其中,meta_type_num表示目标元数据的第一索引号,meta_type_num对应的pca表示目标元数据对应于顺序寻址存储区域的物理地址。
综上可知,JM和CM的交互接口只有目标映射表,因此目标映射表的大小决定了CM对nor-flash的内存大小的依赖。而且,通过上述固态硬盘上电和下电固态硬盘对应的实施例,实现了以“时间换空间”的方案。此外,在固态硬盘下电时,控制流从目标元数据至第一映射表,第一映射表至第二映射表,第二映射表至目标映射表,将用户数据从缓存区域(即RAM)保存到顺序寻址存储区域(即slcnand),以及固态硬盘上电重启后,控制流按照第三映射表至第二映射表,从第二映射表至第一映射表,从第一映射表至目标元数据的方向,将用户数据从顺序寻址存储区域读取出来恢复到缓存区域,实现了数据流的可逆双向流动,确保了数据的正确性和一致性。
参照图8,本申请的一个实施例还提供了一种固态硬盘的数据存储装置,包括:
第一获取模块801,用于获取固态硬盘中的第一映射表和第二映射表,第一映射表用于指示元数据在固态硬盘中的顺序寻址存储区域上的物理地址,第二映射表用于指示第一映射表在顺序寻址存储区域上的物理地址,元数据用于指示用户数据在顺序寻址存储区域上的物理地址;
第一存储模块802,用于将第一映射表和第二映射表存储至顺序寻址存储区域中;
创建模块803,用于创建目标映射表,目标映射表用于指示第二映射表在固态硬盘中的顺序寻址存储区域上的物理地址;
第二存储模块804,用于将目标映射表存储至固态硬盘的直接寻址存储区域中;
第二获取模块805,用于获取待存储用户数据;
第三存储模块806,用于基于第一映射表、第二映射表和目标映射表对待存储用户数据进行存储。
在一些可选的实施方式中,创建模块803具体包括:
第一确定子模块,用于确定目标映射表的存储容量以及存储格式;
创建子模块,用于基于存储容量和存储格式,创建目标映射表。
在一些可选的实施方式中,第三存储模块806具体包括:
第二确定子模块,用于确定待存储用户数据对应的目标元数据;
第一存储子模块,用于基于第一映射表、第二映射表和目标映射表对目标元数据进行存储。
在一些可选的实施方式中,第一存储子模块具体包括:
第一存储单元,用于将目标元数据存储至固态硬盘的缓存区域中;
第一确定单元,用于确定缓存区域中目标元数据的容量;
第一刷写单元,用于若目标元数据的容量大于或者等于第一预设容量,将目标元数据刷写至顺序寻址存储区域中;
第二确定单元,用于确定目标元数据对应的第一索引号,以及目标元数据存储在顺序寻址存储区域中的物理地址;
第一映射单元,用于将第一索引号和目标元数据的物理地址进行映射,得到第一映射信息;
第一更新单元,用于将第一映射信息更新至第一映射表中;
第二存储单元,用于将第一映射表存储至缓存区域中;
第三确定单元,用于确定缓存区域中第一映射表的容量;
第二刷写单元,用于若第一映射表的容量大于或者等于第二预设容量,将第一映射表刷写至顺序寻址存储区域中;
第四确定单元,用于确定第一映射表对应的第二索引号,以及第一映射表存储在顺序寻址存储区域中的物理地址;
第二映射单元,用于将第二索引号和第一映射表的物理地址进行映射,得到第二映射信息;
第二更新单元,用于将第二映射信息更新至第二映射表中;
第三存储单元,用于基于目标映射表和缓存区域对第二映射表进行存储。
在一些可选的实施方式中,第三存储单元具体包括:
第一存储子单元,用于将第二映射表缓存至缓存区域中;
第一确定子单元,用于确定缓存区域中第二映射表的容量;
刷写子单元,用于若第二映射表的容量大于或者等于第三预设容量,将第二映射表刷写至顺序寻址存储区域中;
第二确定子单元,用于确定第二映射表对应的第三索引号,以及第二映射表存储在顺序寻址存储区域中的物理地址;
映射子单元,用于将第三索引号和第二映射表的物理地址进行映射,得到第三映射信息;
第二存储子单元,用于将第三映射信息存储至目标映射表中。
在一些可选的实施方式中,固态硬盘的数据存储装置还包括:
保存模块,用于在接收到主机端的下电指令时,对固态硬盘的缓存区域中目标元数据、第一映射表、第二映射表以及目标映射表进行保存。
在一些可选的实施方式中,保存模块元具体包括:
第二存储子模块,用于若固态硬盘的缓存区域中的目标元数据的容量小于第一预设容量,将缓存区域中的目标元数据刷写至顺序寻址存储区域中;
第二确定子模块,用于确定目标元数据在顺序寻址存储区域中的物理地址;
第一更新子模块,用于将目标元数据的物理地址更新至第一映射表;
第一刷写子模块,用于若固态硬盘的缓存区域中的第一映射表的容量小于第二预设容量,将缓存区域中的第一映射表刷写至顺序寻址存储区域中;
第三确定子模块,用于确定第一映射表在顺序寻址存储区域中的物理地址;
第二更新子模块,用于将第一映射表的物理地址更新至第二映射表;
第二刷写子模块,用于若固态硬盘的缓存区域中的第二映射表的容量小于第三预设容量,将缓存区域中的第二映射表刷写至顺序寻址存储区域中;
第四确定子模块,用于确定第二映射表在顺序寻址存储区域中的物理地址;
第三更新子模块,用于将第二映射表的物理地址更新至目标映射表;
保存子模块,用于将目标映射表保存至直接寻址存储区域中。
在一些可选的实施方式中,固态硬盘的数据存储装置还包括:
恢复模块,用于在接收到主机端的上电指令时,对固态硬盘的缓存区域中目标元数据、第一映射表、第二映射表以及目标映射表进行恢复。
上述固态硬盘的数据存储装置与固态硬盘的数据存储方法基于相同的发明构思,通过将第一映射表和第二映射表存储至顺序寻址存储区域中,以及创建目标映射表,将目标映射表存储至固态硬盘的直接寻址存储区域中,基于第一映射表、第二映射表和目标映射表对待存储用户数据进行存储,能够不增大关键区域的前提下,重新规划直接寻址存储区域中内存的分配,减少了对Nor Flash内存空间的使用,因此,不会导致配置文件、坏块表信息等保存在Nor Flash的数据量增大,进而不会出现配置文件、坏块表信息等数据量超过了原先的固态硬盘的硬件容量的情况,而且由于顺序寻址存储区域的容量大于直接寻址存储区域的容量,因此,顺序寻址存储区域的容量足够存储第二映射表,因此,本申请实施例能够在满足大容量盘的需求的同时,节省硬件成本。
本实施例中的固态硬盘的数据存储装置是以功能模块的形式来呈现,这里的模块是指专用集成电路(Application Specific Integrated Circuit,简称ASIC),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种计算机设备,具有上述图8所示的固态硬盘的数据存储装置。
请参阅图9,图9是本发明可选实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (11)

1.一种固态硬盘的数据存储方法,其特征在于,应用于固态硬盘,所述方法包括:
获取所述固态硬盘中的第一映射表和第二映射表,所述第一映射表用于指示元数据在所述固态硬盘中的顺序寻址存储区域上的物理地址,所述第二映射表用于指示所述第一映射表在所述顺序寻址存储区域上的物理地址,所述元数据用于指示用户数据在所述顺序寻址存储区域上的物理地址;
将所述第一映射表和所述第二映射表存储至所述顺序寻址存储区域中;
创建目标映射表,所述目标映射表用于指示所述第二映射表在所述固态硬盘中的顺序寻址存储区域上的物理地址;
将所述目标映射表存储至所述固态硬盘的直接寻址存储区域中;
获取待存储用户数据;
基于所述第一映射表、所述第二映射表和所述目标映射表对所述待存储用户数据进行存储。
2.根据权利要求1所述的方法,其特征在于,所述创建目标映射表,包括:
确定所述目标映射表的存储容量以及存储格式;
基于所述存储容量和所述存储格式,创建所述目标映射表。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一映射表、所述第二映射表和所述目标映射表对所述待存储用户数据进行存储,包括:
确定所述待存储用户数据对应的目标元数据;
基于所述第一映射表、所述第二映射表和所述目标映射表对所述目标元数据进行存储。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一映射表、所述第二映射表和所述目标映射表对所述目标元数据进行存储,包括:
将所述目标元数据存储至所述固态硬盘的缓存区域中;
确定所述缓存区域中所述目标元数据的容量;
若所述目标元数据的容量大于或者等于第一预设容量,将所述目标元数据刷写至所述顺序寻址存储区域中;
确定所述目标元数据对应的第一索引号,以及所述目标元数据存储在所述顺序寻址存储区域中的物理地址;
将所述第一索引号和所述目标元数据的物理地址进行映射,得到第一映射信息;
将所述第一映射信息更新至所述第一映射表中;
将所述第一映射表存储至所述缓存区域中;
确定所述缓存区域中所述第一映射表的容量;
若所述第一映射表的容量大于或者等于第二预设容量,将所述第一映射表刷写至所述顺序寻址存储区域中;
确定所述第一映射表对应的第二索引号,以及所述第一映射表存储在所述顺序寻址存储区域中的物理地址;
将所述第二索引号和所述第一映射表的物理地址进行映射,得到第二映射信息;
将所述第二映射信息更新至所述第二映射表中;
基于所述目标映射表和所述缓存区域对所述第二映射表进行存储。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标映射表和所述缓存区域对所述第二映射表进行存储,包括:
将所述第二映射表缓存至所述缓存区域中;
确定所述缓存区域中所述第二映射表的容量;
若所述第二映射表的容量大于或者等于第三预设容量,将所述第二映射表刷写至所述顺序寻址存储区域中;
确定所述第二映射表对应的第三索引号,以及所述第二映射表存储在所述顺序寻址存储区域中的物理地址;
将所述第三索引号和所述第二映射表的物理地址进行映射,得到第三映射信息;
将所述第三映射信息存储至所述目标映射表中。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在接收到主机端的下电指令时,对所述固态硬盘的缓存区域中所述目标元数据、所述第一映射表、所述第二映射表以及所述目标映射表进行保存。
7.根据权利要求6所述的方法,其特征在于,所述对所述固态硬盘的缓存区域中所述目标元数据、所述第一映射表、所述第二映射表以及所述目标映射表进行保存,包括:
若所述固态硬盘的缓存区域中的所述目标元数据的容量小于第一预设容量,将所述缓存区域中的所述目标元数据刷写至所述顺序寻址存储区域中;
确定所述目标元数据在所述顺序寻址存储区域中的物理地址;
将所述目标元数据的物理地址更新至所述第一映射表;
若所述固态硬盘的缓存区域中的所述第一映射表的容量小于第二预设容量,将所述缓存区域中的所述第一映射表刷写至所述顺序寻址存储区域中;
确定所述第一映射表在所述顺序寻址存储区域中的物理地址;
将所述第一映射表的物理地址更新至所述第二映射表;
若所述固态硬盘的缓存区域中的所述第二映射表的容量小于第三预设容量,将所述缓存区域中的所述第二映射表刷写至所述顺序寻址存储区域中;
确定所述第二映射表在所述顺序寻址存储区域中的物理地址;
将所述第二映射表的物理地址更新至所述目标映射表;
将所述目标映射表保存至所述直接寻址存储区域中。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在接收到主机端的上电指令时,对所述固态硬盘的缓存区域中所述目标元数据、所述第一映射表、所述第二映射表以及所述目标映射表进行恢复。
9.一种固态硬盘的数据存储装置,其特征在于,包括:
第一获取模块,用于获取所述固态硬盘中的第一映射表和第二映射表,所述第一映射表用于指示元数据在所述固态硬盘中的顺序寻址存储区域上的物理地址,所述第二映射表用于指示所述第一映射表在所述顺序寻址存储区域上的物理地址,所述元数据用于指示用户数据在所述顺序寻址存储区域上的物理地址;
第一存储模块,用于将所述第一映射表和所述第二映射表存储至所述顺序寻址存储区域中;
创建模块,用于创建目标映射表,所述目标映射表用于指示所述第二映射表在所述固态硬盘中的顺序寻址存储区域上的物理地址;
第二存储模块,用于将所述目标映射表存储至所述固态硬盘的直接寻址存储区域中;
第二获取模块,用于获取待存储用户数据;
第三存储模块,用于基于所述第一映射表、所述第二映射表和所述目标映射表对所述待存储用户数据进行存储。
10.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至8中任一项所述的固态硬盘的数据存储方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至8中任一项所述的固态硬盘的数据存储方法。
CN202311611846.4A 2023-11-28 2023-11-28 固态硬盘的数据存储方法及其装置、计算机设备 Pending CN117762328A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311611846.4A CN117762328A (zh) 2023-11-28 2023-11-28 固态硬盘的数据存储方法及其装置、计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311611846.4A CN117762328A (zh) 2023-11-28 2023-11-28 固态硬盘的数据存储方法及其装置、计算机设备

Publications (1)

Publication Number Publication Date
CN117762328A true CN117762328A (zh) 2024-03-26

Family

ID=90311337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311611846.4A Pending CN117762328A (zh) 2023-11-28 2023-11-28 固态硬盘的数据存储方法及其装置、计算机设备

Country Status (1)

Country Link
CN (1) CN117762328A (zh)

Similar Documents

Publication Publication Date Title
US11636032B2 (en) Memory system, data storage device, user device and data management method thereof
CN111475427B (zh) 使用低延迟非易失性存储器进行逻辑至物理映射管理
US20200319966A1 (en) Memory system for controlling nonvolatile memory
US10331364B2 (en) Method and apparatus for providing hybrid mode to access SSD drive
US10642729B2 (en) Data storage device and operating method thereof wherein update to physical-to-logical mapping of destination block is restarted when closing active block
EP2605142B1 (en) Lba bitmap usage
KR101631348B1 (ko) 불휘발성 메모리에 대한 메타데이터 리던던시 스킴
KR100843543B1 (ko) 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
US8756458B2 (en) Mount-time reconciliation of data availability
KR20200022118A (ko) 데이터 저장 장치 및 그 동작 방법
US11042305B2 (en) Memory system and method for controlling nonvolatile memory
US8825946B2 (en) Memory system and data writing method
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US9058256B2 (en) Data writing method, memory controller and memory storage apparatus
US9558108B2 (en) Half block management for flash storage devices
KR20200020464A (ko) 데이터 저장 장치 및 그 동작 방법
CN103136111A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN112988069B (zh) 存储器管理方法、存储器存储装置及存储器控制器
CN117762328A (zh) 固态硬盘的数据存储方法及其装置、计算机设备
KR20190134034A (ko) 복구 가능한 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR100982440B1 (ko) 단일 플래시 메모리의 데이터 관리시스템
US20240143226A1 (en) Data storage device and method for managing a write buffer
US20240126473A1 (en) Data storage device and method for managing a write buffer
US11941246B2 (en) Memory system, data processing system including the same, and operating method thereof
US10613973B1 (en) Garbage collection in solid state drives

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