CN115951839A - 分区命名空间固态硬盘的数据写入方法、装置及电子设备 - Google Patents
分区命名空间固态硬盘的数据写入方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115951839A CN115951839A CN202310096162.9A CN202310096162A CN115951839A CN 115951839 A CN115951839 A CN 115951839A CN 202310096162 A CN202310096162 A CN 202310096162A CN 115951839 A CN115951839 A CN 115951839A
- Authority
- CN
- China
- Prior art keywords
- data
- partition
- address
- writing
- target
- 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
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及数据存储技术领域,公开了一种分区命名空间固态硬盘的数据写入方法、装置及电子设备。其中,该方法包括:获取待随机写入的主机数据,确定主机数据对应的逻辑区块地址;确定固态硬盘当前分区的目标写入地址,该目标写入地址为当前分区的写指针所指向的下一数据块物理地址;构建逻辑区块地址与目标写入地址之间的物理映射关系;基于物理映射关系将主机数据写入目标数据块。通过实施本公开技术方案,能够将主机数据的随机写入转换为顺序写入,无需进行主机数据的循环刷写,最大程度上降低了固态硬盘的数据写放大,保证了固态硬盘的使用寿命。即使固态硬盘出现掉电,在其重新上电后,能够通过物理映射关系进行数据恢复,避免了数据丢失。
Description
技术领域
本公开涉及数据存储技术领域,具体涉及一种分区命名空间固态硬盘的数据写入方法、装置及电子设备。
背景技术
随着存储技术的发展,诞生了分区命名空间固态硬盘(ZNS SSD),其仅支持顺序写,不支持随机写,相对标准的企业级SSD,数据可以进行良好的隔离,对读写的延迟性能有较大的提高,并且在成本和寿命上有明显优势,它的出现伴随着生态系统的发展,一些应用也开始逐渐去适配。
在实际的适配过程中,由于上层应用的数据不是全部顺序写的,可能有一些元数据需要进行随机写。针对随机写的问题,目前所采取的方法主要是将数据放到内存中,将数据进行周期性的刷下,以将数据循环刷写到SSD,但这样会增加SSD的写放大,降低SSD的寿命。而且一旦出现掉电,若数据没有及时的刷写到SSD中,就会出现数据丢失的问题,且再次上电后也无法恢复,这就导致了严重的数据丢失。
发明内容
有鉴于此,本公开实施例提供了一种分区命名空间固态硬盘的数据写入方法、装置及电子设备,以解决数据写放大和数据难以恢复的问题。
根据第一方面,本公开实施例提供了一种分区命名空间固态硬盘的数据写入方法,包括:获取待随机写入的主机数据,确定所述主机数据对应的逻辑区块地址;确定固态硬盘当前分区的目标写入地址,所述目标写入地址为所述当前分区的写指针所指向的下一数据块物理地址;构建所述逻辑区块地址与所述目标写入地址之间的物理映射关系;基于所述物理映射关系将所述主机数据写入目标数据块。
本公开实施例提供的分区命名空间固态硬盘的数据写入方法,通过获取随机写入的主机数据对应的逻辑区块地址以及固态硬盘当前分区的目标写入地址,构建主机数据的逻辑区块地址与目标写入地址之间的物理映射,以将随机写入的主机数据按照该物理映射关系顺序写入固态硬盘中的目标数据块中。由此,将主机数据的随机写入转换为顺序写入,无需进行主机数据的循环刷写,最大程度上降低了固态硬盘的数据写放大,保证了固态硬盘的使用寿命。即使固态硬盘出现掉电,在其重新上电后,能够通过物理映射关系进行数据恢复,避免了数据丢失。
根据第二方面,本公开实施例提供了一种分区命名空间固态硬盘的数据写入装置,包括:获取模块,用于获取待随机写入的主机数据,确定所述主机数据对应的逻辑区块地址;确定模块,用于确定固态硬盘当前分区的目标写入地址,所述目标写入地址为所述当前分区的写指针所指向的下一数据块物理地址;构建模块,用于构建所述逻辑区块地址与所述目标写入地址之间的物理映射关系;写入模块,用于基于所述物理映射关系将所述主机数据写入目标数据块。
根据第三方面,本公开实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或第一方面任一实施方式所述的分区命名空间固态硬盘的数据写入方法。
根据第四方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面或第一方面任一实施方式所述的分区命名空间固态硬盘的数据写入方法。
需要说明的是,本公开实施例提供的分区命名空间固态硬盘的数据写入装置、电子设备以及计算机可读存储介质的相应有益效果,请参见分区命名空间固态硬盘的数据写入方法中相应内容的描述,在此不再赘述。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本实施例的分区命名空间固态硬盘的数据写入方法的流程图;
图2是本实施例的分区命名空间固态硬盘的分区划分示意图;
图3是本实施例的各个分区中的LBA示意图;
图4是本实施例的主机数据的数据存放示意图;
图5是本实施例的分区命名空间固态硬盘的数据写入方法的另一流程图;
图6是本实施例的分区命名空间固态硬盘的数据写入方法的又一流程图;
图7是本实施例的分区命名空间固态硬盘的数据写入方法的再一流程图;
图8是本实施例的分区数据有效表以及有效数据统计表的示意图;
图9是本实施例的分区命名空间固态硬盘的数据写入装置的结构框图;
图10是本实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在分区命名空间固态硬盘(ZNS SSD)的实际适配过程中,由于上层应用的数据不是全部顺序写的,可能有一些元数据需要进行随机写。目前,通过支持顺序写的分区命名空间(zoned namespace)、支持随机写的常规命名空间conventional namespace以及支持持久存储区域(Persistent Memory Region,PMR)的方法来实现适配,但并非适用于所有的固态硬盘,并非通用的解决方法。
基于上述方法不通用,一种较为通用的解决方法应运而生,其主要是将数据放到内存中,将数据进行周期性的刷下,但是这样会增加SSD的写放大,并且万一出现掉电这种情况,将丢失大量的有效数据,难以实现数据的实时刷新。
根据本公开实施例,提供了一种分区命名空间固态硬盘的数据写入方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种分区命名空间固态硬盘的数据写入方法,可用于上述的移动终端,如手机、平板电脑、电脑等。图1是根据本公开实施例的分区命名空间固态硬盘的数据写入方法的流程图,如图1所示,该流程包括如下步骤:
S11,获取待随机写入的主机数据,确定主机数据对应的逻辑区块地址。
在主机端将数据写入固态硬盘时,可以将该数据在逻辑上分为若干份数据,每份数据对应有相应的逻辑区块地址(logical block address,LBA)。主机数据为需要随机写入固态硬盘的元数据,该元数据为主机端所产生数据中的一份或多份。
具体地,可以将n份数据进行依次编号,例如HLBA0、HLBA1、HLBA2……HLBAn等,这样在接收到待随机写入的主机数据之后,即可确定出主机数据对应的逻辑区块地址。其中,每份数据可以为4KB、8KB、16KB、32KB等,此处不作具体限定,本领域技术人员可以根据实际需要对主机数据进行划分。
S12,确定固态硬盘当前分区的目标写入地址,该目标写入地址为当前分区的写指针所指向的下一数据块物理地址。
将ZNS SSD的存储空间划分为X等分,得到X个分区zone,并将X个zone进行依次编号,如图2所示。每个分区zone均为固态硬盘的逻辑物理空间代表,且每个分区zone由若干个LBA组成,每个LBA的空间大小存在有多种格式类型,例如4KB,如图3所示。对于ZNS SSD而言,每个分区zone内只能进行数据的顺序写入,否则就会进行报错。即每个分区zone按照LBA 0、LBA 1、LBA 2……LBA n这一顺序进行数据写入。
数据块物理地址表示当前分区中的各个LBA的地址,目标写入地址为当前分区中的写指针wp所指向的下一数据块物理地址。当前分区的目标写入地址可以根据当前分区的写指针wp所指向的写入地址予以确定,例如,当前分区为zone 0,且zone 0已经写满第8个LBA(LBA7),则目标写入地址指向zone0的第9个LBA(LBA8),由此能够根据当前分区的写指针所指向位置进行数据的顺序写入。
S13,构建逻辑区块地址与目标写入地址之间的物理映射关系。
物理映射关系用于表征主机数据到ZNSSSD的物理映射。具体地,物理映射关系可以根据逻辑区块地址与写入地址之间的对应关系进行确定,该物理映射关系可以通过物理映射表予以表征。
例如,需要随机写入的主机数据为HLBA5,若当前分区zone已经写到第3个LBA,则主机数据HLBA 5需要写入至当前分区的第4个LBA(LBA 3),该LBA 3对应的物理地址即为目标写入地址,由此,将主机数据HLBA 5对应的逻辑区块地址则与LBA 3对应的物理地址进行映射,即可构建得到逻辑区块地址与目标写入地址之间的物理映射关系。
S14,基于物理映射关系将主机数据写入目标数据块。
主机数据写入时可以按照用户元数据和逻辑区块地址元数据进行连续存放,其中,用户元数据用于表征主机端所需随机写入的数据;逻辑区块地址元数据用于表征用户数据所对应的逻辑区块地址。
以图4为例,主机数据可以按照4KB的用户元数据和8byte的逻辑区块地址元数据进行连续存放。其中,逻辑区块地址元数据的数据结构可以表示为:4byte的逻辑区块地址(即HLBA对应的逻辑区块地址)+4byte的空闲地址。
具体地,根据物理映射关系可以确定出主机数据的逻辑区块地址对应的目标写入地址,从而确定出该目标写入地址所对应的ZNSSSD的目标数据块。继而,按照该目标写入地址将主机数据写入到目标数据块中。
本实施例提供的分区命名空间固态硬盘的数据写入方法,通过获取随机写入的主机数据对应的逻辑区块地址以及固态硬盘当前分区的目标写入地址,构建主机数据的逻辑区块地址与目标写入地址之间的物理映射,以将随机写入的主机数据按照该物理映射关系顺序写入固态硬盘中的目标数据块中。由此,将主机数据的随机写入转换为顺序写入,无需进行主机数据的循环刷写,最大程度上降低了固态硬盘的数据写放大,保证了固态硬盘的使用寿命。即使固态硬盘出现掉电,在其重新上电后,能够通过物理映射关系进行数据恢复,避免了数据丢失。
在本实施例中提供了一种分区命名空间固态硬盘的数据写入方法,可用于上述的移动终端,如手机、平板电脑、电脑等。图5是根据本公开实施例的分区命名空间固态硬盘的数据写入方法的流程图,如图5所示,该流程包括如下步骤:
S21,获取待随机写入的主机数据,确定主机数据对应的逻辑区块地址。详细说明参见上述实施例对应的相关描述,此处不再赘述。
S22,确定固态硬盘当前分区的目标写入地址,该目标写入地址为当前分区的写指针所指向的下一数据块物理地址。详细说明参见上述实施例对应的相关描述,此处不再赘述。
S23,构建逻辑区块地址与写入地址之间的物理映射关系。
具体地,上述步骤S23可以包括:
S230,获取当前分区的写入状态。
写入状态用于表征当前分区的空间使用状态,具体地,该写入状态包括:开启状态opened、掉电重启状态closed、满状态full以及空状态empty。
其中,开启状态opened表示当前分区zone正在写入;掉电重启状态closed表示当前分区zone在掉电前处于开启状态opened,在其发生掉电再上电后变为掉电重启状态closed;满状态full表示当前分区已经被写满,即当前分区已经可供数据写入的多余空间;空状态empty表示当前分区并未写入任何数据,或者当前分区被复位,即当前分区中的所有数据已经被清空。
对于不同写入状态而言,写指针所指向的位置以及当前分区所对应的剩余存储空间存在一定的差异,通过检测以及当前分区中的写指针所指向的位置即可确定当前分区的写入状态。具体地,对于开启状态opened以及掉电重启状态closed而言,可以通过检测当前分区是否存在掉电状态以确定;满状态full以及空状态empty可以通过检测剩余写入空间以确定。
S231,当该当前分区的写入状态为空状态时,确定当前分区的起始写入地址。
若当前分区的写入状态为空状态,表示当前分区为未使用的zone。起始写入地址为当前分区所对应的起始LAB的物理地址,即当前分区所对应的第一个LAB所对应的物理地址。
S232,将起始写入地址确定为目标写入地址,生成目标写入地址与逻辑区块地址之间的物理映射关系。
以该起始写入地址作为主机数据写入ZNSSSD时的目标写入地址,将该目标写入地址与主机数据对应的逻辑区块地址进行物理映射,即可得到两者之间的物理映射关系。
具体地,上述步骤S23还可以包括:
S233,当该当前分区的写入状态为满状态时,获取下一个可写入分区。
对于ZNSSSD而言,可以预先设定若干个用于支持随机写的分区,并为支持随机写的每个分区分配相应的写入空间。具体地,用于支持随机写的多个分区的总存储空间需要大于主机端可支持随机写的数据量。例如,主机端支持随机写的数据量为6G,此处可以设定10个分区zone以用于支持数据随机写,且每个分区zone的可写入数据量为1G。
若当前分区的写入状态为满状态,表示当前分区已经写满,即当前分区已经不存在数据的可写入空间,此时可以从多个支持随机写的分区中选择出下一个支持随机写的可写入分区,并记录下一个可写入分区的标识信息zone ID以及序列号SN,并将该可写入分区的随机写区域flag置为预设值(例如1),以表征该可写入分区为数据随机写区域。
S234,确定下一个可写入分区的写指针指向的写入地址。
写指针指向的写入地址为下一个可写入分区中的起始LBA所对应的物理地址。具体地,若当前分区为zone 0,其对应有10个LBA(LBA 0~LBA9),则下一个可写入分区为zone1,zone 1对应的10个LBA为LBA 10~LBA 19,此时写指针所指向的写入地址为LBA10,即zone 1中的首个LBA在ZNSSSD中的物理地址。
S235,将写指针指向的写入地址确定为目标写入地址,生成目标写入地址与逻辑区块地址之间的物理映射关系。
以写指针指向的写入地址作为主机数据写入ZNSSSD时的目标写入地址,将该目标写入地址与主机数据对应的逻辑区块地址进行物理映射,即可得到两者之间的物理映射关系。
需要说明的是,对于写入状态为开启状态opened或掉电重启状态closed的分区而言,其写指针wp所指向的写入地址为下一个可写入的LBA所对应的物理地址,该LBA所对应的物理地址即为目标写入地址。具体地,写指针wp可以通过report zone命令予以获取。
S24,基于物理映射关系将主机数据写入目标数据块。详细说明参见上述实施例对应的相关描述,此处不再赘述。
随着主机数据的写入,固态硬盘中的可写入分区越来越少,为了保证主机数据的有效存储,需要保持固态硬盘中存在充足的可写入分区。相应地,上述方法还可以包括:
S25,获取固态硬盘中的可写入分区的剩余数量。
可写入分区的剩余数量可以根据可写入分区的总数以及处于满状态的分区的个数确定。具体地,该剩余数量M=可写入分区的总数S-满状态的分区的个数F。若预先设定的可写入分区的总数S=10,当前处于满状态的分区个数F=4,则可写入分区的剩余数量M=6。
S26,当剩余数量小于第一预设值时,获取已写满的各个分区的第一序列号以及当前分区的第二序列号。
第一预设值为预先设定的可写入分区的最少剩余量,具体地,该第一预设值可以设置为3,还可以设置为4等等。此处对第一预设值不作具体限定,其可以根据实际需求予以设定。
每当写满一个分区时,将可写入分区的剩余数量与第一预设值进行对比,以确定剩余数量是否小于第一预设值。当剩余数量小于第一预设值时,此时为了保证数据的有效写入,需要对已写满分区进行回收。
具体地,每个分区对应有各自的序列号SN,此时,为了保证已写满分区的回收不会影响当前的数据写入进程,在针对已写满分区进行回收时,首先获取各个已写满分区的第一序列号以及当前分区的第二序列号。
以第一预设值为3,可写入分区的总数为10为例,当已经写满7个分区时,此时可以通过释放存储空间来扩充可写入分区的剩余数量。当然,为了提高待回收分区的空间释放效率,还可以增加可写入分区的总数。
S27,对比第一序列号与第二序列号,确定出第一序列号小于第二序列号的待回收分区。
将第一序列号与第二序列号进行对比,确定出第一序列号与第二序列号之间的大小关系。为了保证数据恢复时的历史数据不会覆盖新数据,此处需要保证第一序列号小于第二序列号,即保证待回收分区对应的第一序列号小于正在使用的当前分区的第二序列号。
具体地,如图6所示,上述步骤S27可以包括:
S271,对比第一序列号与第二序列号,确定出多个第一序列号小于第二序列号的第一写满分区。
当需要进行空间释放时,已写满分区存在多个,此处可以将多个第一序列号与第二序列号进行对比,确定各个第一序列号与第二序列号之间的大小关系,以从中选择出第一序列号小于第二序列号的所有已写满分区,即第一写满分区。
S272,获取各个第一写满分区中的有效数据块的数量,确定出有效数据块最少的第二写满分区。
S273,将第二写满分区确定为待回收分区。
对第一写满分区的LBA从小到大逐个判断数据有效性,确定出第一写满分区中的一个或多个有效的LBA。具体地,根据物理映射关系可以构建相应的分区数据有效表,例如,数据有效时,其对应的bit位为1,数据无效时,其对应的bit位为0。继而,根据该分区数据有效表对各个第一写满分区中的LBA从小到大依次进行数据有效性判断,从而统计得到第一写满分区中的有效数据块。将各个第一写满分区中的有效数据块的数量进行排序,并根据排序结果确定出有效数据块最少的写满分区,即第二写满分区。继而,以该第二写满分区作为待回收分区进行空间释放。
通过检测各个已写满分区中所包含的有效数据块的数量,以确定出有效数据最少的写满分区,减少有效数据的迁移量,以实现存储空间的有效回收。
S28,对待回收分区中所写入的数据进行迁移,释放待回收分区的存储空间。若待回收分区中所写入的数据均为无效数据,此时可以直接针对该待回收分区进行复位,以清空数据释放存储空间。若待回收分区中所写入的数据中仍然存在有效数据,则为了避免有效数据的丢失,此时可以将有效数据迁移出待回收分区,以便释放该待回收分区的存储空间。
具体地,在释放存储空间时,为了避免有效数据的丢失,可以将待回收分区中的有效数据块转移至预设分区中。如图6所示,上述步骤S28可以包括:
S281,遍历待回收分区中的有效数据块,将有效数据块迁移至预设分区中。
预设分区为处于空状态的分区,该预设分区为从预先设定的用于支持随机写的多个分区中的任意一个。在对该待回收分区进行有效数据块的遍历时,依次将遍历到的有效数据块迁移至预设分区中,直至待回收分区上的有效数据块全部遍历完成为止。
S282,对经过数据迁移的待回收分区进行存储空间的释放。
经过数据迁移的待回收分区变为一个无效分区,此时可以向该待回收分区下发复位命令以清空该待回收分区中的数据,释放该待回收分区的存储空间。待完成存储空间释放后,该待回收分区即可作为可写入分区,并将其放入至可写入分区池中。
需要说明的是,在开启针对于已写满分区的空间回收时,先选择一个处于空状态的可写入分区,对该可写入分区的序列号SN、标识信息zone ID以及随机写区域标记进行更新,并将该更新信息写入到ZNS SSD中。继而,主机才可以选择新的可写入分区进行数据的有效写入。
作为一个可选的实施方式,上述方法还可以包括:
(1)当剩余数量小于第二预设值时,停止向固态硬盘写入主机数据,并将主机数据存储至预设空间。
(2)当剩余数量大于第一预设值时,从预设空间中取出主机数据,并继续将主机数据写入固态硬盘中。
其中,第二预设值小于第一预设值。
第二预设值为预先设定的停止主机数据写入的可写入分区的剩余量。具体地,该第二预设值可以设置为2,还可以设置为3等等。此处对第二预设值不作具体限定,其可以根据实际需求予以设定。
在进行存储空间释放的同时,主机数据可能仍在继续写入。随着主机数据的写入,可写入分区的剩余数量会越来越少。将可写入分区的剩余数量与第二预设值进行对比,以确定可写入分区的剩余数量是否小于第二预设值。
当可写入分区的剩余数量小于等于第二预设值时,停止向ZNSSSD写入主机数据,此时可以先将主机数据存储至预设空间(如待定列表pending list),直至完成存储空间释放后的待回收分区补充至可写入分区池中。在可写入分区的剩余数量大于等于第一预设值时重新启动主机数据向ZNSSSD的写入。具体地,对预设空间中所存储的主机数据进行遍历,并将读取到的主机数据依次写入至ZNSSSD的可写入分区中。由此避免了存储空间不足而影响主机数据的写入,保证了主机数据的有效写入。同时,将待写入的主机数据存储至预设空间中,避免了突然掉电而丢失主机数据。
本实施例提供的分区命名空间固态硬盘的数据写入方法,基于当前分区的不同状态确定主机数据在固态硬盘中的目标写入地址,提高了主机数据的写入灵活性,实现了主机数据的有效存储。通过将第一序列号小于第二序列号的分区作为待回收分区,以保证避免新数据被历史数据覆盖。同时,针对于待回收分区中的有效数据进行迁移,以避免数据丢失。通过释放待回收分区的存储空间,以保证随机写入的主机数据具有存储空间,实现了主机数据的有效存储。
在本实施例中提供了一种分区命名空间固态硬盘的数据写入方法,可用于上述的移动终端,如手机、平板电脑、电脑等。图7是根据本公开实施例的分区命名空间固态硬盘的数据写入方法的流程图,如图7所示,该流程包括如下步骤:
S31,获取待随机写入的主机数据,确定主机数据对应的逻辑区块地址。详细说明参见上述实施例对应的相关描述,此处不再赘述。
S32,确定固态硬盘当前分区的目标写入地址,该目标写入地址为当前分区的写指针所指向的下一数据块物理地址。详细说明参见上述实施例对应的相关描述,此处不再赘述。
S33,构建逻辑区块地址与写入地址之间的物理映射关系。详细说明参见上述实施例对应的相关描述,此处不再赘述。
S34,构建与物理映射关系对应分区数据有效表。
其中,分区数据有效表(zone valid data table,ZVDT)用于记录分区中各个逻辑区块地址的数据是否有效。
具体地,物理映射关系表征分区中所写入主机数据的HLBA到分区所对应LBA的物理映射。如图8所示,采用1bit表示一个LBA对应的主机数据是否有效,例如,以1表示LBA对应的主机数据有效,以0表示LBA对应的主机数据无效。
S35,构建与分区数据有效表对应的有效数据统计表。
其中,有效数据统计表(zone valid data count,ZVDC)用于记录分区中有效逻辑区块地址的数量。
具体地,分区数据有效表中记录了各个LBA对应的数据是否有效,通过有效数据统计表对各个分区中的有效LBA进行记录,如图8所示。以data count表示有效LBA的数量,每增加一个有效LBA,则有效数据统计表的data count累加1;每减少一个有效LBA,则有效数据统计表的data count累减1。
S36,基于物理映射关系将主机数据写入目标数据块。
具体地,上述步骤S36可以包括:
S361,判断物理映射关系是否有效。
物理映射关系的有效性用于表征当前分区是否写入过主机数据。若并未向ZNSSSD写入过主机数据,那么此时物理映射关系为空,表示物理映射关系无效;若向ZNSSSD写入过主机数据,那么此时存在相应的物理映射关系,表示物理映射关系有效。当物理映射关系无效时,执行步骤S362至步骤S364。
当按照物理映射关系向ZNSSSD中写入主机数据时,首先读取随机写入的主机数据所对应的逻辑区块地址,并根据物理映射关系确定当前分区写入过主机数据。
S362,当物理映射关系无效时,获取主机数据的当前写入地址。
当前写入地址为主机数据在当前分区中的实际写入地址。当物理映射关系无效时,表示之前并未向ZNSSSD写入过主机数据,此时可以获取主机数映射至ZNSSSD时的LBA,并将该LBA对应的物理地址确定为主机数据的当前写入地址。
S363,基于当前写入地址更新主机数据对应的物理映射关系。
将主机数据的逻辑区块地址HLBA与当前写入地址构成物理映射关系,并根据更新后的物理映射关系找到对应的分区数据有效表,并将分区数据有效表中的数据位设定为1,表示当前写入地址对应的数据为有效数据,且分区数据有效表所对应的有效数据统计表中的有效数据块累加1。
S364,基于更新后的物理映射关系将主机数据写入目标数据块。
根据当前写入地址确定出与其相对应的LBA,即目标数据块。继而,ZNSSSD可以根据更新后物理映射关系将主机数据写入至当前写入地址所对应的目标数据块中。
S365,当物理映射关系有效时,获取主机数据的当前写入地址。
当物理映射关系有效时,表示物理映射关系并非空值,即之前向ZNSSSD的分区写入过主机数据。此时根据已有物理映射关系可以确定出当前主机数据映射至ZNSSSD时的物理地址,该物理地址即为主机数据的当前写入地址。
S366,根据当前写入地址将主机数据写入至目标数据块,并基于物理映射关系确定当前写入地址对应的历史数据。
根据当前写入地址确定出与其相对应分区的LBA,即目标数据块。继而,ZNS SSD可以根据更新后物理映射关系将主机数据写入至当前写入地址所对应分区的目标数据块中。
历史数据为过去时间内写入至该分区的主机数据,在向该分区中写入新的主机数据时,其对应的历史数据即为无效数据,因此,需要获取当前写入地址对应的历史数据以更新分区数据有效表。
S367,基于物理映射关系查询分区数据有效表,将历史数据更新为无效数据,并将写入当前写入地址的主机数据更新为有效数据。
根据物理映射关系中的LBA查询分区数据有效表,并将历史数据所对应LBA的数据有效位设置为0,表示该LBA所对应的历史数据为无效数据。同时,将当前写入地址所对应的LBA的数据有效位更新为1,表示该LBA所对应的主机数据为有效数据。
S368,基于分区数据有效表的更新,对有效数据统计表中的有效数据块数量进行更新。
当分区数据有效表发生更新后,其对应的有效数据统计表的有效数据块数量亦随之发生更新。具体地,在将历史数据所对应LBA的数据有效位设置为0时,其对应分区的有效数据块数量累减1;将当前写入地址所对应的LBA的数据有效位更新为1时,其对应的分区的有效数据块数量累加1。
作为一种可选的实施方式,上述方法还可以包括:
(1)当固态硬盘重新上电时,获取固态硬盘的分区元数据。
分区元数据用于表征各个分区的数据存储状态,其存储在固态硬盘的某一分区中。当固态硬盘掉电并重新上电时,可以通过检测分区元数据所处的分区,以从该分区中读取固态硬盘的分区元数据,进而通过该分区元数据确定各个分区中的数据存储状态,以便根据该数据存储状态对写入各个分区中的数据进行有效恢复。
(2)解析分区元数据,确定固态硬盘中各个分区的序列号。
分区元数据中存放了分区zone的序列号SN、随机写的分区标记zoneflag以及分区标识zone ID。通过解析分区元数据,获取到固态硬盘中各个分区的序列号SN。
(3)根据序列号对各个分区进行排序,得到分区排序结果。
根据各个分区的序列号SN进行由小到大(或由大到小)的排序,生成各个分区的分区排序结果,并将该分区排序结果存放至一个list表中。
(4)基于分区排序结果对各个分区中的数据块进行恢复。
根据list表中所存储的分区排序结果,从序列号SN最小的分区zone开始,逐个读取主机数据所对应的逻辑区块地址,继而对逻辑区块地址对各个分区中的数据块进行恢复。
具体地,上述步骤(4)可以包括:
(41)基于分区排序结果确定出序列号最小的目标分区。
(42)遍历目标分区中的数据,确定出目标分区中的有效数据。
(43)基于物理映射关系确定有效数据对应的数据块物理地址,并将有效数据恢复至数据块物理地址。
从list表中选择出序列号SN最小的目标分区,根据物理映射关系遍历写入该目标分区各个LBA中的主机数据所对应的HLBA,并判断该HLBA对应的主机数据是否有效,若有效,则基于该物理映射关系确定出该HLBA在目标分区中的LBA,并将LBA的物理地址更新为HLBA在目标分区中的数据块物理地址,继而按照该数据块物理地址将有效数据恢复至目标分区中。
在恢复有效数据的同时,基于物理映射关系对目标分区所对应的分区数据有效表以及有效数据统计表进行更新。具体地,若对应目标分区的分区数据有效表的数据有效位从0更新为1,那么该目标分区的有效数据统计表中的有效数据块数量加1;若将对应目标分区的分区数据有效表的数据有效位从1更新为0,那么该目标分区的有效数据统计表中的有效数据块数量减1。
以序列号最小的分区作为目标分区,依次进行数据恢复,避免数据恢复无序而出现错乱,保证了数据的有效恢复。通过遍历目标分区中的有效数据以及有效数据对应的数据块物理地址,将有效数据恢复至相应位置,由此实现了数据的准确恢复,最大程度上避免了数据丢失。
作为一种可选的实施方式,上述步骤(4)还可以包括:
(44)当遍历至最后一个分区且最后一个分区的写入状态为掉电重启状态时,获取写指针在最后一个分区掉电前所指向的写入地址。
(45)将最后一个分区确定为下一个随机写入的落盘分区,并根据写入地址写入主机数据。
根据分区标识zone ID通过report zone命令即可得到当前所遍历分区的写入状态和写指针wp所指向的写入地址。其中,该写入状态可能为开启状态opened、掉电重启状态closed、满状态full或者空状态empty。
当遍历至最后一个分区且确定最后一个分区的写入状态为掉电重启状态closed时,读取该分区中写指针wp所指向的写入地址,且该最后一个分区可以继续作为随机写的分区。当下一个随机写入的主机数据到来后,将该最后一个分区作为数据随机写的落盘分区,并根据写指针wp所指向的写入地址将主机数据顺序写入该最后一个分区中。
需要说明的是,当读取到任一支持随机写的分区的用户数据时(4k数据),会根据主机端所提供的随机写数据的内存首地址,将有效数据恢复到ZNSSSD中所对应的内存地址。若主机端未提供内存首地址,则不会将该数据存放至ZNSSSD中的任何内存地址。
当最后一个分区的写入状态为掉电重启状态时,获取其掉电前的写入地址,以该分区作为下一个随机写入的主机数据的落盘分区,并以该写入地址作为主机数据的写入地址,由此保证了主机数据的顺序写入。
本实施例提供的分区命名空间固态硬盘的数据写入方法,通过构建对应于物理映射关系的分区数据有效表和有效数据统计表,保证了主机数据的一致性,以使分区存储空间能够进行有效的释放,保证数据恢复的准确性。在向固态硬盘的分区写入主机数据时,通过更新物理映射关系及其对应的分区数据有效表以及有效数据统计表,进一步保证了主机数据的有效写入。在固态硬盘重新上电后,通过确定固态硬盘中各个分区的序列号,以便根据分区排序结果对存储至固态硬盘中的主机数据进行有序恢复。
在本实施例中还提供了一种分区命名空间固态硬盘的数据写入装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种分区命名空间固态硬盘的数据写入装置,如图9所示,包括:
获取模块41,用于获取待随机写入的主机数据,确定主机数据对应的逻辑区块地址。
确定模块42,用于确定固态硬盘当前分区的目标写入地址,该目标写入地址为当前分区的写指针所指向的下一数据块物理地址。
构建模块43,用于构建逻辑区块地址与目标写入地址之间的物理映射关系。
写入模块44,用于基于物理映射关系将主机数据写入目标数据块。
可选地,上述构建模块43可以包括:
状态获取子模块,用于获取当前分区的写入状态。
第一确定子模块,用于当该当前分区的写入状态为空状态时,确定当前分区的起始写入地址。
第一生成子模块,用于将起始写入地址确定为目标写入地址,生成目标写入地址与逻辑区块地址之间的物理映射关系。
可选地,上述构建模块43还可以包括:
分区获取子模块,用于,当该当前分区的写入状态为满状态时,获取下一个可写入分区。
第二确定子模块,用于确定下一个可写入分区的写指针指向的写入地址。
第二生成子模块,用于将写指针指向的写入地址确定为目标写入地址,生成目标写入地址与逻辑区块地址之间的物理映射关系。
可选地,上述分区命名空间固态硬盘的数据写入装置还可以包括:
分区数量获取模块,用于获取固态硬盘中的可写入分区的剩余数量。
序列号获取模块,用于当剩余数量小于第一预设值时,获取已写满的各个分区的第一序列号以及当前分区的第二序列号。
对比模块,用于对比第一序列号与第二序列号,确定出第一序列号小于第二序列号的待回收分区。
迁移模块,用于对待回收分区中所写入的数据进行迁移,释放待回收分区的存储空间。
可选地,上述对比模块可以包括:
对比子模块,用于对比第一序列号与第二序列号,确定出多个第一序列号小于第二序列号的第一写满分区。
第三确定子模块,用于获取各个第一写满分区中的有效数据块的数量,确定出有效数据块最少的第二写满分区。
第四确定子模块,用于将第二写满分区确定为待回收分区。
可选地,上述迁移模块可以包括:
遍历子模块,用于遍历待回收分区中的有效数据块,将有效数据块迁移至预设分区中。
释放子模块,用于,对经过数据迁移的待回收分区进行存储空间的释放。
可选地,上述分区命名空间固态硬盘的数据写入装置还可以包括:
停止写入模块,用于当剩余数量小于第二预设值时,停止向固态硬盘写入主机数据,并将主机数据存储至预设空间,其中,第二预设值小于第一预设值。
继续写入模块,用于当剩余数量大于第一预设值时,从预设空间中取出主机数据,并继续将主机数据写入固态硬盘中。
可选地,上述分区命名空间固态硬盘的数据写入装置还可以包括:
分区数据有效表构建模块,用于构建与物理映射关系对应分区数据有效表。其中,分区数据有效表用于记录分区中各个逻辑区块地址的数据是否有效。
有效数据统计表构建模块,用于构建与分区数据有效表对应的有效数据统计表。其中,有效数据统计表用于记录分区中有效逻辑区块地址的数量。
可选地,上述写入模块44可以包括:
判断子模块,用于判断物理映射关系是否有效。
第一获取子模块,用于当物理映射关系无效时,获取主机数据的当前写入地址。
第一更新子模块,用于基于当前写入地址更新主机数据对应的物理映射关系。
第一写入模块,用于基于更新后的物理映射关系将主机数据写入目标数据块。
第二获取子模块,用于当物理映射关系有效时,获取主机数据的当前写入地址。
第二写入模块,用于根据当前写入地址将主机数据写入至目标数据块,并基于物理映射关系确定当前写入地址对应的历史数据。
查询子模块,用于基于物理映射关系查询分区数据有效表,将历史数据更新为无效数据,并将写入当前写入地址的主机数据更新为有效数据。
第二更新子模块,用于基于分区数据有效表的更新,对有效数据统计表中的有效数据块数量进行更新。
可选地,上述分区命名空间固态硬盘的数据写入装置还可以包括:
元数据获取模块,用于当固态硬盘重新上电时,获取固态硬盘的分区元数据。
解析模块,用于解析分区元数据,确定固态硬盘中各个分区的序列号。
排序模块,用于根据序列号对各个分区进行排序,得到分区排序结果。
数据恢复模块,用于基于分区排序结果对各个分区中的数据块进行恢复。
可选地,上述数据恢复模块可以包括:
第五确定子模块,用于基于分区排序结果确定出序列号最小的目标分区。
第六确定子模块,用于遍历目标分区中的数据,确定出目标分区中的有效数据。
恢复子模块,用于基于物理映射关系确定有效数据对应的数据块物理地址,并将有效数据恢复至数据块物理地址。
可选地,上述数据恢复模块还可以包括:
写入地址获取子模块,用于当遍历至最后一个分区且最后一个分区的写入状态为掉电重启状态时,获取写指针在最后一个分区掉电前所指向的写入地址。
第七确定子模块,用于将最后一个分区确定为下一个随机写入的落盘分区,并根据写入地址写入主机数据。
本实施例中的分区命名空间固态硬盘的数据写入装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块以及各个子模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例提供的分区命名空间固态硬盘的数据写入装置,通过获取随机写入的主机数据对应的逻辑区块地址以及固态硬盘当前分区的目标写入地址,构建主机数据的逻辑区块地址与目标写入地址之间的物理映射,以将随机写入的主机数据按照该物理映射关系顺序写入固态硬盘中的目标数据块中。由此,将主机数据的随机写入转换为顺序写入,无需进行主机数据的循环刷写,最大程度上降低了固态硬盘的数据写放大,保证了固态硬盘的使用寿命。即使固态硬盘出现掉电,在其重新上电后,能够通过物理映射关系进行数据恢复,避免了数据丢失。
本公开实施例还提供一种电子设备,具有上述图9所示的分区命名空间固态硬盘的数据写入装置。
请参阅图10,图10是本公开可选实施例提供的一种电子设备的结构示意图,如图10所示,该电子设备可以包括:至少一个处理器501,例如中央处理器(Central ProcessingUnit,CPU),至少一个通信接口503,存储器504,至少一个通信总线502。其中,通信总线502用于实现这些组件之间的连接通信。其中,通信接口503可以包括显示屏(Display)、键盘(Keyboard),可选通信接口503还可以包括标准的有线接口、无线接口。存储器504可以是高速易挥发性随机存取存储器(Random Access Memory,RAM),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器504可选的还可以是至少一个位于远离前述处理器501的存储装置。其中处理器501可以结合图9所描述的装置,存储器504中存储应用程序,且处理器501调用存储器504中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线502可以是外设部件互连标准(peripheral componentinterconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。通信总线502可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器504可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器504还可以包括上述种类的存储器的组合。
其中,处理器501可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
其中,处理器501还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
可选地,存储器504还用于存储程序指令。处理器501可以调用程序指令,实现如本申请上述实施例中所示的分区命名空间固态硬盘的数据写入方法。
本公开实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的分区命名空间固态硬盘的数据写入方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本公开的实施例,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (16)
1.一种分区命名空间固态硬盘的数据写入方法,其特征在于,包括:
获取待随机写入的主机数据,确定所述主机数据对应的逻辑区块地址;
确定固态硬盘当前分区的目标写入地址,所述目标写入地址为所述当前分区的写指针所指向的下一数据块物理地址;
构建所述逻辑区块地址与所述目标写入地址之间的物理映射关系;
基于所述物理映射关系将所述主机数据写入目标数据块。
2.根据权利要求1所述的方法,其特征在于,所述构建所述逻辑区块地址与所述目标写入地址之间的物理映射关系,包括:
获取所述当前分区的写入状态;
当所述当前分区的写入状态为空状态时,确定所述当前分区的起始写入地址;
将所述起始写入地址确定为所述目标写入地址,生成所述目标写入地址与所述逻辑区块地址之间的物理映射关系。
3.根据权利要求2所述的方法,其特征在于,所述构建所述逻辑区块地址与所述目标写入地址之间的物理映射关系,还包括:
当所述当前分区的写入状态为满状态时,获取下一个可写入分区;
确定所述下一个可写入分区的写指针指向的写入地址;
将所述写指针指向的写入地址确定为所述目标写入地址,生成所述目标写入地址与所述逻辑区块地址之间的物理映射关系。
4.根据权利要求1所述的方法,其特征在于,还包括:
获取所述固态硬盘中的可写入分区的剩余数量;
当所述剩余数量小于第一预设值时,获取已写满的各个分区的第一序列号以及所述当前分区的第二序列号;
对比所述第一序列号与所述第二序列号,确定出所述第一序列号小于所述第二序列号的待回收分区;
对所述待回收分区中所写入的数据进行迁移,释放所述待回收分区的存储空间。
5.根据权利要求4所述的方法,其特征在于,所述对比所述第一序列号与所述第二序列号,确定出所述第一序列号小于所述第二序列号的待回收分区,包括:
对比所述第一序列号与所述第二序列号,确定出多个所述第一序列号小于所述第二序列号的第一写满分区;
获取各个所述第一写满分区中的有效数据块的数量,确定出有效数据块最少的第二写满分区;
将所述第二写满分区确定为所述待回收分区。
6.根据权利要求4所述的方法,其特征在于,所述对所述待回收分区中所写入的数据进行迁移,释放所述待回收分区的存储空间,包括:
遍历所述待回收分区中的有效数据块,将所述有效数据块迁移至预设分区中;
对经过数据迁移的所述待回收分区进行存储空间的释放。
7.根据权利要求4所述的方法,其特征在于,还包括:
当所述剩余数量小于第二预设值时,停止向所述固态硬盘写入所述主机数据,并将所述主机数据存储至预设空间;
当所述剩余数量大于所述第一预设值时,从所述预设空间中取出所述主机数据,并继续将所述主机数据写入所述固态硬盘中;
其中,所述第二预设值小于所述第一预设值。
8.根据权利要求1所述的方法,其特征在于,在所述构建所述逻辑区块地址与所述目标写入地址之间的物理映射关系之后,还包括:
构建与所述物理映射关系对应分区数据有效表,所述分区数据有效表用于记录分区中各个逻辑区块地址的数据是否有效;
构建与所述分区数据有效表对应的有效数据统计表,所述有效数据统计表用于记录分区中有效逻辑区块地址的数量。
9.根据权利要求8所述方法,其特征在于,所述基于所述物理映射关系将所述主机数据写入所述目标写入位置,包括:
判断所述物理映射关系是否有效;
当所述物理映射关系无效时,获取所述主机数据的当前写入地址;
基于所述当前写入地址更新所述主机数据对应的物理映射关系;
基于更新后的所述物理映射关系将所述主机数据写入所述目标数据块。
10.根据权利要求9所述的方法,其特征在于,所述基于所述物理映射关系将所述主机数据写入目标数据块,还包括:
当所述物理映射关系有效时,获取所述主机数据的当前写入地址;
根据所述当前写入地址将所述主机数据写入至所述目标数据块,并基于所述物理映射关系确定所述当前写入地址对应的历史数据;
基于所述物理映射关系查询所述分区数据有效表,将所述历史数据更新为无效数据,并将写入所述当前写入地址的所述主机数据更新为有效数据;
基于所述分区数据有效表的更新,对所述有效数据统计表中的有效数据块数量进行更新。
11.根据权利要求1所述的方法,其特征在于,还包括:
当所述固态硬盘重新上电时,获取所述固态硬盘的分区元数据;
解析所述分区元数据,确定所述固态硬盘中各个分区的序列号;
根据所述序列号对所述各个分区进行排序,得到分区排序结果;
基于所述分区排序结果对各个分区中的数据块进行恢复。
12.根据权利要求11所述的方法,其特征在于,所述基于所述分区排序结果对各个分区中的数据块进行恢复,包括:
基于所述分区排序结果确定出序列号最小的目标分区;
遍历所述目标分区中的数据,确定出所述目标分区中的有效数据;
基于所述物理映射关系确定所述有效数据对应的数据块物理地址,并将所述有效数据恢复至所述数据块物理地址。
13.根据权利要求11所述的方法,其特征在于,还包括:
当遍历至最后一个分区且最后一个分区的写入状态为掉电重启状态时,获取写指针在所述最后一个分区掉电前所指向的写入地址;
将所述最后一个分区确定为下一个随机写入的落盘分区,并根据所述写入地址写入所述主机数据。
14.一种分区命名空间固态硬盘的数据写入装置,其特征在于,包括:
获取模块,用于获取待随机写入的主机数据,确定所述主机数据对应的逻辑区块地址;
确定模块,用于确定固态硬盘当前分区的目标写入地址,所述目标写入地址为所述当前分区的写指针所指向的下一数据块物理地址;
构建模块,用于构建所述逻辑区块地址与所述目标写入地址之间的物理映射关系;
写入模块,用于基于所述物理映射关系将所述主机数据写入目标数据块。
15.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-13任一项所述的分区命名空间固态硬盘的数据写入方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-13任一项所述的分区命名空间固态硬盘的数据写入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310096162.9A CN115951839A (zh) | 2023-01-18 | 2023-01-18 | 分区命名空间固态硬盘的数据写入方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310096162.9A CN115951839A (zh) | 2023-01-18 | 2023-01-18 | 分区命名空间固态硬盘的数据写入方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115951839A true CN115951839A (zh) | 2023-04-11 |
Family
ID=87289485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310096162.9A Pending CN115951839A (zh) | 2023-01-18 | 2023-01-18 | 分区命名空间固态硬盘的数据写入方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115951839A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578246A (zh) * | 2023-07-05 | 2023-08-11 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
CN117056245A (zh) * | 2023-08-18 | 2023-11-14 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的面向日志记录应用的数据组织方法 |
CN117149085A (zh) * | 2023-09-07 | 2023-12-01 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的快速寻址方法 |
CN117369729A (zh) * | 2023-12-04 | 2024-01-09 | 武汉麓谷科技有限公司 | 一种zns ssd的附加写入实现方法 |
CN117406933A (zh) * | 2023-12-12 | 2024-01-16 | 深圳大普微电子股份有限公司 | 固态硬盘数据处理方法、装置、电子设备及存储介质 |
-
2023
- 2023-01-18 CN CN202310096162.9A patent/CN115951839A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578246A (zh) * | 2023-07-05 | 2023-08-11 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
CN116578246B (zh) * | 2023-07-05 | 2023-09-29 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
CN117056245A (zh) * | 2023-08-18 | 2023-11-14 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的面向日志记录应用的数据组织方法 |
CN117056245B (zh) * | 2023-08-18 | 2024-02-23 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的面向日志记录应用的数据组织方法 |
CN117149085A (zh) * | 2023-09-07 | 2023-12-01 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的快速寻址方法 |
CN117149085B (zh) * | 2023-09-07 | 2024-03-15 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的快速寻址方法 |
CN117369729A (zh) * | 2023-12-04 | 2024-01-09 | 武汉麓谷科技有限公司 | 一种zns ssd的附加写入实现方法 |
CN117369729B (zh) * | 2023-12-04 | 2024-02-06 | 武汉麓谷科技有限公司 | 一种zns ssd的附加写入实现方法 |
CN117406933A (zh) * | 2023-12-12 | 2024-01-16 | 深圳大普微电子股份有限公司 | 固态硬盘数据处理方法、装置、电子设备及存储介质 |
CN117406933B (zh) * | 2023-12-12 | 2024-03-29 | 深圳大普微电子股份有限公司 | 固态硬盘数据处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115951839A (zh) | 分区命名空间固态硬盘的数据写入方法、装置及电子设备 | |
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 | |
US11704239B2 (en) | Garbage collection method for storage medium, storage medium, and program product | |
CN102063943B (zh) | Nand闪存参数自动检测系统 | |
US20120317337A1 (en) | Managing data placement on flash-based storage by use | |
US11354236B2 (en) | Garbage collection method for data storage device | |
CN108139902A (zh) | 用于提供混合模式来访问ssd驱动器的方法和装置 | |
TWI592865B (zh) | 資料讀取方法、資料寫入方法及使用所述方法的儲存控制器 | |
US10565075B2 (en) | Storage device and block storage method based on the storage device | |
CN107665091B (zh) | 数据读取方法、数据写入方法及其存储控制器 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
CN109669889B (zh) | 一种轻量型Nor Flash闪存控制方法和装置 | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN109840218B (zh) | 有效数据管理方法以及存储控制器 | |
CN109408416B (zh) | 一种地址映射表项页管理方法及装置 | |
CN111324549B (zh) | 一种存储器及其控制方法和装置 | |
CN107817943A (zh) | 数据传输方法、存储器存储装置及存储器控制电路单元 | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
JPH11272569A (ja) | フラッシュメモリを使用した外部記憶装置のデータ回復方式 | |
US11436105B2 (en) | Data processing method and memory controller utilizing the same | |
CN103354925B (zh) | 存储器控制器和存储器访问方法 | |
CN114328280A (zh) | 一种基于Flash的日志存取方法、装置、存储介质及终端 | |
CN110162493B (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 |