CN107346288A - 一种数据写入方法及装置 - Google Patents
一种数据写入方法及装置 Download PDFInfo
- Publication number
- CN107346288A CN107346288A CN201610294604.0A CN201610294604A CN107346288A CN 107346288 A CN107346288 A CN 107346288A CN 201610294604 A CN201610294604 A CN 201610294604A CN 107346288 A CN107346288 A CN 107346288A
- Authority
- CN
- China
- Prior art keywords
- ssd
- data
- cleaning block
- write request
- write
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 239000012634 fragment Substances 0.000 claims abstract description 110
- 238000004140 cleaning Methods 0.000 claims description 139
- 239000003550 marker Substances 0.000 claims description 8
- 239000007787 solid Substances 0.000 abstract description 7
- 230000003321 amplification Effects 0.000 abstract description 6
- 238000003199 nucleic acid amplification method Methods 0.000 abstract description 6
- 238000011084 recovery Methods 0.000 abstract description 2
- 239000010813 municipal solid waste Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据写入方法及装置,应用于固态硬盘SSD,该方法通过获取SSD中的目标待擦除块以及目标待擦除块信息,并计算当前写请求相对目标待擦除块的写请求次数,以及判断该写请求次数是否满足预先设置的擦除规则,进而使得当满足时,将获取到的SSD中的下一待擦除块确定为目标待擦除块;当不满足时,将SSD中满足当前写请求的数据写入需求的碎片页中的数据信息和当前写请求中的待写入数据存储到SSD中的待写入块中,并将碎片页标记为无效页的方式,减少了待擦除块中有效页的数量,进而减少了写放大导致的GC延迟,更进一步的减少了数据回收操作对SSD性能的影响。
Description
技术领域
本申请涉及存储技术领域,更具体地说,涉及一种数据写入方法及装置。
背景技术
固态硬盘(SSD)是由控制单元和固态存储单元(NAND Flash)组成的硬盘。固态硬盘采用固态存储单元存储数据,数据写入之前需要对固态存储单元进行擦除操作,擦除操作的基本单位为块(Block),每个块包含若干个页(Page),页是数据读写操作的基本单元。
以写操作对应的数据在写操作前后均保存在SSD中为例,完成一次写操作分两步:首先将数据写入已经擦除过的Page(即空白Page),再将原先存放该数据的Page标记为无效,其中,被标记为无效的Page未经擦除前不能再次被写入,这样的Page称为垃圾Page。通常,SSD初始时会预留一部分空白Page供新的写入操作,在这些空白Page耗尽前必须及时启动回收,回收那些被标记为无效的垃圾Page,这个过程被称为垃圾回收(Garbage Collection)。
然而,由于擦除的基本单位是Block,且实际操作中Block中不可能全是无效Page,为达到回收无效Page的目的,需要先将Block中的有效Page中的数据搬移走,然后再将该Block擦除。这种先擦后写的特性导致了GC延迟(Garbage Collection Latency)问题,相比于写操作来说,回收操作本身带来了额外的后台数据搬移,这就是通常所说的写放大,而写放大所导致的GC延迟,直接影响了SSD的性能(GC延迟越小,整个SSD的性能就越好)。
发明内容
有鉴于此,本申请实施例提供一种数据写入方法及装置,通过减少待擦除块中有效页的数量,减少写放大导致的GC延迟,进而减少数据回收操作对SSD性能的影响。
为了实现上述目的,现提出的方案如下:
一种数据写入方法,应用于固态硬盘SSD,包括:
S11、获取所述SSD中的目标待擦除块;
S12、确定所述目标待擦除块的目标待擦除块信息,所述目标待擦除块信息中携带所述目标待擦除块中每个碎片页的碎片页信息;
S13、计算当前写请求相对所述目标待擦除块的写请求次数;
S14、判断所述写请求次数是否满足预先设置的擦除规则;当满足时;执行步骤S19;当不满足时,执行步骤S15;
S15、依据所述碎片页信息,逐个判断所述目标待擦除块中是否存在剩余空间满足当前所述写请求的数据写入需求的碎片页;当存在时,执行步骤S16;当不存在时,执行步骤S18;
S16、获取剩余空间满足当前所述写请求的数据写入需求的碎片页中的数据信息,并将所述碎片页标记为无效页;
S17、将所述数据信息和当前所述写请求中的待写入数据,写入所述SSD中的待写入块中;
S18、将当前所述写请求中的所述待写入数据,写入所述SSD中的所述待写入块中;
S19、获取所述SSD中的下一待擦除块,并将获取到的所述下一待擦除块确定为所述SSD中的目标待擦除块,返回执行S11。
优选的,所述获取所述SSD中的目标待擦除块包括:
当所述SSD中的空闲空间低于启动数据回收操作的阈值时,获取所述SSD中的目标待擦除块。
优选的,当所述SSD中的空闲空间不低于所述启动数据回收操作的阈值时,该方法还包括:
将当前所述写请求中的待写入数据写入所述SSD中的所述待写入块中。
优选的,所述确定所述目标待擦除块的目标待擦除块信息包括:
确定所述目标待擦除块中的有效页;
分别将每个存在剩余空间的有效页确定为一个碎片页;
由所述目标待擦除块中的每个所述碎片页的碎片页信息组成所述目标待擦除块信息。
优选的,当所述碎片页信息包括对应所述碎片页信息的碎片页中的剩余空间信息时,所述判断所述目标待擦除块中是否存在剩余空间满足当前所述写请求的数据写入需求的碎片页包括:
针对所述目标待擦除块信息中的每个碎片页信息,逐个判断所述碎片页信息中包括的剩余空间信息指示的剩余空间是否大于当前所述写请求中的待写入数据的存储空间;
当判断出存在碎片页信息中包括的剩余空间信息指示的剩余空间大于当前所述写请求中的待写入数据的存储空间时,确定所述目标待擦除块中存在剩余空间满足当前所述写请求的数据写入需求的碎片页;
当未判断出存在碎片页信息中包括的剩余空间信息指示的剩余空间大于当前所述写请求中的待写入数据的存储空间时,确定所述目标待擦除块中不存在剩余空间满足当前所述写请求的数据写入需求的碎片页。
优选的,在所述步骤S7之后还包括:
获取所述数据信息和当前所述写请求中的待写入数据,写入的所述SSD中的待写入块中的第一地址;
获取所述数据信息所属的碎片页位于所述SSD中的第二地址;
存储所述第一地址和第二地址的对应关系。
一种数据写入装置,应用于固态硬盘SSD,包括:
第一获取单元,用于执行S11、获取所述SSD中的目标待擦除块;
目标待擦除块信息确定单元,用于执行S12、确定所述目标待擦除块的目标待擦除块信息,所述目标待擦除块信息中携带所述目标待擦除块中每个碎片页的碎片页信息;
写请求次数计算单元,用于执行S13、计算当前写请求相对所述目标待擦除块的写请求次数;
第一判断单元,用于执行S14、判断所述写请求次数是否满足预先设置的擦除规则;当满足时;执行步骤S19;当不满足时,执行步骤S15;
第二判断单元,用于执行S15、依据所述碎片页信息,逐个判断所述目标待擦除块中是否存在剩余空间满足当前所述写请求的数据写入需求的碎片页;当存在时,执行步骤S16;当不存在时,执行步骤S18;
数据信息获取单元,用于执行S16、获取剩余空间满足当前所述写请求的数据写入需求的碎片页中的数据信息,并将所述碎片页标记为无效页;
第一写入单元,用于执行S17、将所述数据信息和当前所述写请求中的待写入数据,写入所述SSD中的待写入块中;
第二写入单元,用于执行S18、将当前所述写请求中的所述待写入数据,写入所述SSD中的所述待写入块中;
第二获取单元,用于执行S19、获取所述SSD中的下一待擦除块,并将获取到的所述下一待擦除块确定为所述SSD中的目标待擦除块,返回执行S11。
优选的,第一获取单元,用于当所述SSD中的空闲空间低于启动数据回收操作的阈值时,获取所述SSD中的目标待擦除块。
优选的,还包括第三写入单元,用于当所述SSD中的空闲空间不低于所述启动数据回收操作的阈值时,将当前所述写请求中的待写入数据写入所述SSD中的所述待写入块中。
优选的,还包括存储单元,用于在将所述数据信息和当前所述写请求中的待写入数据,写入所述SSD中的待写入块中之后,获取所述数据信息和当前所述写请求中的待写入数据,写入的所述SSD中的待写入块中的第一地址;以及,获取所述数据信息所属的碎片页位于所述SSD中的第二地址;以及,存储所述第一地址和第二地址的对应关系。
本申请提供一种数据写入方法及装置,应用于固态硬盘SSD,该方法通过获取SSD中的目标待擦除块以及目标待擦除块信息,并计算当前写请求相对目标待擦除块的写请求次数,以及判断该写请求次数是否满足预先设置的擦除规则,进而使得当满足时,将获取到的SSD中的下一待擦除块确定为目标待擦除块;当不满足时,将SSD中满足当前写请求的数据写入需求的碎片页中的数据信息和当前写请求中的待写入数据存储到SSD中的待写入块中,并将碎片页标记为无效页的方式,减少了待擦除块中有效页的数量,进而减少了写放大导致的GC延迟,更进一步的减少了数据回收操作对SSD性能的影响。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据写入方法流程图;
图2为本申请实施例提供的一种确定目标待擦除块的目标待擦除块信息的方法流程图;
图3为本申请实施例提供的一种判断目标待擦除块中是否存在剩余空间满足当前写请求的数据写入需求的碎片页的方法流程图;
图4为本申请实施例提供的一种数据写入装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例:
图1为本申请实施例提供的一种数据写入方法流程图。
如图1所示,该方法包括:
S11、获取SSD中的目标待擦除块;
本申请实施例提供的一种数据写入方法应用于固态硬盘(SSD),并且,应用于需要对SSD进行数据回收操作的情况下。
在本申请实施例中,优选的,当需要对SSD进行数据回收时,需要获取SSD中的目标待擦除块。
具体的,当需要对SSD进行数据回收时,可通过与SSD的交互直接获取SSD中的目标待擦除块,该目标待擦除块即为SSD中当前需要被擦除的块。
S12、确定目标待擦除块的目标待擦除块信息,目标待擦除块信息中携带目标待擦除块中每个碎片页的碎片页信息;
S13、计算当前写请求相对目标待擦除块的写请求次数;
在本申请实施例中,优选的,当前写请求相对目标待擦除块的写请求次数包括:从目标待擦除块被获取的时刻开始,一直到计算当前写请求相对目标待擦除块的写请求次数的时刻为止,针对目标待擦除块的写请求的总个数,其中,总个数即为目标待擦除块的写请求次数。
例如,当确定SSD中的目标待擦除块1后,第一次计算当前写请求相对目标待擦除块的写请求次数时,计算得到的写请求次数为1;当再次计算当前写请求相对目标待擦除块的写请求次数时,计算得到的写请求次数为2;以此类推,每当增加一次计算当前写请求相对目标待擦除块的写请求次数时,计算得到的写请求次数加1。
S14、判断写请求次数是否满足预先设置的擦除规则;当满足时;执行步骤S19;当不满足时,执行步骤S15;
在本申请实施例中,优选的,判断写请求次数是否满足预先设置的擦除规则包括:判断写请求次数是否高于预先设置的擦除规则阈值;当高于时,确定写请求次数满足预先设置的擦除规则;当不高于时,确定写请求次数不满足预先设置的擦除规则。
在本申请实施例中,优选的,预先设置的擦除规则阈值为6。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置判断写请求次数是否满足预先设置的擦除规则的方式,在此不做限定。
S15、依据碎片页信息,逐个判断目标待擦除块中是否存在剩余空间满足当前写请求的数据写入需求的碎片页;当存在时,执行步骤S16;当不存在时,执行步骤S18;
S16、获取剩余空间满足当前写请求的数据写入需求的碎片页中的数据信息,并将碎片页标记为无效页;
S17、将数据信息和当前写请求中的待写入数据,写入SSD中的待写入块中;
在本申请实施例中,优选的,可通过与SSD的交互,直接获取SSD中的待写入块。
S18、将当前写请求中的待写入数据,写入SSD中的待写入块中;
S19、获取SSD中的下一待擦除块,并将获取到的下一待擦除块确定为SSD中的目标待擦除块,返回执行S11。
在本申请实施例中,优选的,可通过与SSD的交互,直接获取SSD中目标擦除块中的下一待擦除块。
具体的,在获取到SSD中的下一待擦除块后,可将获取到的该下一待擦除块确定为SSD中最新的目标待擦除块,并返回执行S11,以便获取最新确定的SSD中的目标待擦除块。
在本申请实施例中,优选的,获取SSD中的目标待擦除块包括:当SSD中的空闲空间低于启动数据回收操作的阈值时,获取SSD中的目标待擦除块。
在本申请实施例中,优选的,上述提到的“在获取到SSD中的下一待擦除块后,可将获取到的该下一待擦除块确定为SSD中最新的目标待擦除块,并返回执行S11,以便获取最新确定的SSD中的目标待擦除块”的过程,具体为:在获取到SSD中的下一待擦除块后,可将获取到的该下一待擦除块确定为SSD中最新的目标待擦除块,并返回执行S11,以便在SSD中的空闲空间低于启动数据回收操作的阈值时,获取最新确定的SSD中的目标待擦除块。
进一步的,在本申请实施例提供的一种数据写入方法中,当SSD中的空闲空间不低于启动数据回收操作的阈值时,该方法还包括:将当前写请求中的待写入数据写入SSD中的待写入块中。
在本申请实施例中,优选的,可通过与SSD的交互,直接获取SSD中的待写入块。
图2为本申请实施例提供的一种确定目标待擦除块的目标待擦除块信息的方法流程图。
如图2所示,该方法包括:
S21、确定目标待擦除块中的有效页;
S22、分别将每个存在剩余空间的有效页确定为一个碎片页;
在本申请实施例中,优选的,针对目标待擦除块中的每个有效页,判断该有效页是否存在剩余空间,当存在时,将该有效页确定为一个碎片页。
S23、由目标待擦除块中的每个碎片页的碎片页信息组成目标待擦除块信息。
在本申请实施例中,优选的,碎片页信息包括对应碎片页信息的碎片页中的剩余空间信息时。
具体的,每个碎片页的碎片页信息中均包括该碎片页中的剩余空间信息。
在本申请实施例中,优选的,当碎片页信息包括对应碎片页信息的碎片页中的剩余空间信息时,判断目标待擦除块中是否存在剩余空间满足当前写请求的数据写入需求的碎片页的方法,请参见图3。
如图3所示,该方法包括:
S31、针对目标待擦除块信息中的每个碎片页信息,逐个判断碎片页信息中包括的剩余空间信息指示的剩余空间是否大于当前写请求中的待写入数据的存储空间;
在本申请实施例中,优选的,在判断目标待擦除块中是否存在剩余空间满足当前写请求的数据写入需求的碎片页时,需针对目标待擦除块的目标待擦除块信息中的各个碎片页信息进行逐个判断,判断的过程为:判断碎片页信息中包括的剩余空间信息指示的剩余空间是否大于当前写请求中的待写入数据的存储空间(也就是当前写请求中的待写入数据进行存储时需占用的存储空间)。
S32、当判断出存在碎片页信息中包括的剩余空间信息指示的剩余空间大于当前写请求中的待写入数据的存储空间时,确定目标待擦除块中存在剩余空间满足当前写请求的数据写入需求的碎片页;
在本申请实施例中,优选的,当判断出存在碎片页信息中包括的剩余空间信息指示的剩余空间大于当前写请求中的待写入数据的存储空间时,则不在对目标待擦除块信息中的剩余未进行判断的碎片页信息进行判断,以提高效率。
S33、当未判断出存在碎片页信息中包括的剩余空间信息指示的剩余空间大于当前写请求中的待写入数据的存储空间时,确定目标待擦除块中不存在剩余空间满足当前写请求的数据写入需求的碎片页。
进一步的,在本申请实施例提供的一种数据写入方法中,在将数据信息和当前写请求中的待写入数据,写入SSD中的待写入块中之后,该方法还包括:获取数据信息和当前写请求中的待写入数据,写入的SSD中的待写入块中的第一地址;以及,获取数据信息所属的碎片页位于SSD中的第二地址;以及,存储第一地址和第二地址的对应关系。
在本申请实施例中,优选的,第一地址为:数据信息和当前写请求中的待写入数据写入在SSD中的地址(即数据信息和当前写请求中的待写入数据在SSD中的写入地址);第二地址为数据信息所属的碎片页在SSD中的地址。
在本申请实施例中,优选的,存储第一地址和第二地址的对应关系包括:将第一地址存储为原始地址,将第二地址存储为最新地址,并且将第二地址设置为与第一地址对应。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置存储第一地址和第二地址的对应关系的具体方式,在此不做限定。
图4为本申请实施例提供的一种数据写入装置的结构示意图。
如图4所示,该装置包括:
第一获取单元41,用于执行S11、获取SSD中的目标待擦除块;
目标待擦除块信息确定单元42,用于执行S12、确定目标待擦除块的目标待擦除块信息,目标待擦除块信息中携带目标待擦除块中每个碎片页的碎片页信息;
写请求次数计算单元43,用于执行S13、计算当前写请求相对目标待擦除块的写请求次数;
第一判断单元44,用于执行S14、判断写请求次数是否满足预先设置的擦除规则;当满足时;执行步骤S19;当不满足时,执行步骤S15;
第二判断单元45,用于执行S15、依据碎片页信息,逐个判断目标待擦除块中是否存在剩余空间满足当前写请求的数据写入需求的碎片页;当存在时,执行步骤S16;当不存在时,执行步骤S18;
数据信息获取单元46,用于执行S16、获取剩余空间满足当前写请求的数据写入需求的碎片页中的数据信息,并将碎片页标记为无效页;
第一写入单元47,用于执行S17、将数据信息和当前写请求中的待写入数据,写入SSD中的待写入块中;
第二写入单元48,用于执行S18、将当前写请求中的待写入数据,写入SSD中的待写入块中;
第二获取单元49,用于执行S19、获取SSD中的下一待擦除块,并将获取到的下一待擦除块确定为SSD中的目标待擦除块,返回执行S11。
在本申请实施例中,优选的,第一获取单元41,用于当SSD中的空闲空间低于启动数据回收操作的阈值时,获取SSD中的目标待擦除块。
进一步的,在本申请实施例提供的一种数据写入装置中,还包括第三写入单元,该第三写入单元用于当SSD中的空闲空间不低于启动数据回收操作的阈值时,将当前写请求中的待写入数据写入SSD中的待写入块中。
在本申请实施例中,优选的,目标待擦除块信息确定单元,用于确定目标待擦除块中的有效页;以及,分别将每个存在剩余空间的有效页确定为一个碎片页;以及,由目标待擦除块中的每个碎片页的碎片页信息组成目标待擦除块信息。
在本申请实施例中,优选的,第二判断单元,用于当碎片页信息包括对应碎片页信息的碎片页中的剩余空间信息时,针对目标待擦除块信息中的每个碎片页信息,逐个判断碎片页信息中包括的剩余空间信息指示的剩余空间是否大于当前写请求中的待写入数据的存储空间;以及,当判断出存在碎片页信息中包括的剩余空间信息指示的剩余空间大于当前写请求中的待写入数据的存储空间时,确定目标待擦除块中存在剩余空间满足当前写请求的数据写入需求的碎片页;以及,当未判断出存在碎片页信息中包括的剩余空间信息指示的剩余空间大于当前写请求中的待写入数据的存储空间时,确定目标待擦除块中不存在剩余空间满足当前写请求的数据写入需求的碎片页。
进一步的,在本申请实施例提供的一种数据写入装置中,还包括存储单元,该存储单元用于在将数据信息和当前写请求中的待写入数据,写入SSD中的待写入块中之后,获取数据信息和当前写请求中的待写入数据,写入的SSD中的待写入块中的第一地址;以及,获取数据信息所属的碎片页位于SSD中的第二地址;以及,存储第一地址和第二地址的对应关系。
本申请提供一种数据写入方法及装置,应用于固态硬盘SSD,该方法通过获取SSD中的目标待擦除块以及目标待擦除块信息,并计算当前写请求相对目标待擦除块的写请求次数,以及判断该写请求次数是否满足预先设置的擦除规则,进而使得当满足时,将获取到的SSD中的下一待擦除块确定为目标待擦除块;当不满足时,将SSD中满足当前写请求的数据写入需求的碎片页中的数据信息和当前写请求中的待写入数据存储到SSD中的待写入块中,并将碎片页标记为无效页的方式,减少了待擦除块中有效页的数量,进而减少了写放大导致的GC延迟,更进一步的减少了数据回收操作对SSD性能的影响。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据写入方法,应用于固态硬盘SSD,其特征在于,包括:
S11、获取所述SSD中的目标待擦除块;
S12、确定所述目标待擦除块的目标待擦除块信息,所述目标待擦除块信息中携带所述目标待擦除块中每个碎片页的碎片页信息;
S13、计算当前写请求相对所述目标待擦除块的写请求次数;
S14、判断所述写请求次数是否满足预先设置的擦除规则;当满足时;执行步骤S19;当不满足时,执行步骤S15;
S15、依据所述碎片页信息,逐个判断所述目标待擦除块中是否存在剩余空间满足当前所述写请求的数据写入需求的碎片页;当存在时,执行步骤S16;当不存在时,执行步骤S18;
S16、获取剩余空间满足当前所述写请求的数据写入需求的碎片页中的数据信息,并将所述碎片页标记为无效页;
S17、将所述数据信息和当前所述写请求中的待写入数据,写入所述SSD中的待写入块中;
S18、将当前所述写请求中的所述待写入数据,写入所述SSD中的所述待写入块中;
S19、获取所述SSD中的下一待擦除块,并将获取到的所述下一待擦除块确定为所述SSD中的目标待擦除块,返回执行S11。
2.根据权利要求1所述的方法,其特征在于,所述获取所述SSD中的目标待擦除块包括:
当所述SSD中的空闲空间低于启动数据回收操作的阈值时,获取所述SSD中的目标待擦除块。
3.根据权利要求2所述的方法,其特征在于,当所述SSD中的空闲空间不低于所述启动数据回收操作的阈值时,该方法还包括:
将当前所述写请求中的待写入数据写入所述SSD中的所述待写入块中。
4.根据权利要求3所述的方法,其特征在于,所述确定所述目标待擦除块的目标待擦除块信息包括:
确定所述目标待擦除块中的有效页;
分别将每个存在剩余空间的有效页确定为一个碎片页;
由所述目标待擦除块中的每个所述碎片页的碎片页信息组成所述目标待擦除块信息。
5.根据权利要求4所述的方法,其特征在于,当所述碎片页信息包括对应所述碎片页信息的碎片页中的剩余空间信息时,所述判断所述目标待擦除块中是否存在剩余空间满足当前所述写请求的数据写入需求的碎片页包括:
针对所述目标待擦除块信息中的每个碎片页信息,逐个判断所述碎片页信息中包括的剩余空间信息指示的剩余空间是否大于当前所述写请求中的待写入数据的存储空间;
当判断出存在碎片页信息中包括的剩余空间信息指示的剩余空间大于当前所述写请求中的待写入数据的存储空间时,确定所述目标待擦除块中存在剩余空间满足当前所述写请求的数据写入需求的碎片页;
当未判断出存在碎片页信息中包括的剩余空间信息指示的剩余空间大于当前所述写请求中的待写入数据的存储空间时,确定所述目标待擦除块中不存在剩余空间满足当前所述写请求的数据写入需求的碎片页。
6.根据权利要求1-5任意一项所述的方法,其特征在于,在所述步骤S7之后还包括:
获取所述数据信息和当前所述写请求中的待写入数据,写入的所述SSD中的待写入块中的第一地址;
获取所述数据信息所属的碎片页位于所述SSD中的第二地址;
存储所述第一地址和第二地址的对应关系。
7.一种数据写入装置,应用于固态硬盘SSD,其特征在于,包括:
第一获取单元,用于执行S11、获取所述SSD中的目标待擦除块;
目标待擦除块信息确定单元,用于执行S12、确定所述目标待擦除块的目标待擦除块信息,所述目标待擦除块信息中携带所述目标待擦除块中每个碎片页的碎片页信息;
写请求次数计算单元,用于执行S13、计算当前写请求相对所述目标待擦除块的写请求次数;
第一判断单元,用于执行S14、判断所述写请求次数是否满足预先设置的擦除规则;当满足时;执行步骤S19;当不满足时,执行步骤S15;
第二判断单元,用于执行S15、依据所述碎片页信息,逐个判断所述目标待擦除块中是否存在剩余空间满足当前所述写请求的数据写入需求的碎片页;当存在时,执行步骤S16;当不存在时,执行步骤S18;
数据信息获取单元,用于执行S16、获取剩余空间满足当前所述写请求的数据写入需求的碎片页中的数据信息,并将所述碎片页标记为无效页;
第一写入单元,用于执行S17、将所述数据信息和当前所述写请求中的待写入数据,写入所述SSD中的待写入块中;
第二写入单元,用于执行S18、将当前所述写请求中的所述待写入数据,写入所述SSD中的所述待写入块中;
第二获取单元,用于执行S19、获取所述SSD中的下一待擦除块,并将获取到的所述下一待擦除块确定为所述SSD中的目标待擦除块,返回执行S11。
8.根据权利要求7所述的装置,其特征在于,第一获取单元,用于当所述SSD中的空闲空间低于启动数据回收操作的阈值时,获取所述SSD中的目标待擦除块。
9.根据权利要求8所述的装置,其特征在于,还包括第三写入单元,用于当所述SSD中的空闲空间不低于所述启动数据回收操作的阈值时,将当前所述写请求中的待写入数据写入所述SSD中的所述待写入块中。
10.根据权利要求6-9任意一项所述的装置,其特征在于,还包括存储单元,用于在将所述数据信息和当前所述写请求中的待写入数据,写入所述SSD中的待写入块中之后,获取所述数据信息和当前所述写请求中的待写入数据,写入的所述SSD中的待写入块中的第一地址;以及,获取所述数据信息所属的碎片页位于所述SSD中的第二地址;以及,存储所述第一地址和第二地址的对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610294604.0A CN107346288B (zh) | 2016-05-05 | 2016-05-05 | 一种数据写入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610294604.0A CN107346288B (zh) | 2016-05-05 | 2016-05-05 | 一种数据写入方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107346288A true CN107346288A (zh) | 2017-11-14 |
CN107346288B CN107346288B (zh) | 2020-08-28 |
Family
ID=60254289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610294604.0A Active CN107346288B (zh) | 2016-05-05 | 2016-05-05 | 一种数据写入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107346288B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897492A (zh) * | 2018-05-30 | 2018-11-27 | 新华三技术有限公司 | 一种数据写入方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1485745A (zh) * | 2003-08-08 | 2004-03-31 | 倚天资讯股份有限公司 | 非挥发性存储器存取系统及其存取方法 |
CN101819509A (zh) * | 2010-04-19 | 2010-09-01 | 清华大学深圳研究生院 | 一种固态硬盘读写方法 |
US20140201429A1 (en) * | 2013-01-15 | 2014-07-17 | Kaminario Technologies Ltd. | Ssd-block aligned writes |
CN104484283A (zh) * | 2014-11-27 | 2015-04-01 | 记忆科技(深圳)有限公司 | 一种降低固态硬盘写放大的方法 |
-
2016
- 2016-05-05 CN CN201610294604.0A patent/CN107346288B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1485745A (zh) * | 2003-08-08 | 2004-03-31 | 倚天资讯股份有限公司 | 非挥发性存储器存取系统及其存取方法 |
CN101819509A (zh) * | 2010-04-19 | 2010-09-01 | 清华大学深圳研究生院 | 一种固态硬盘读写方法 |
US20140201429A1 (en) * | 2013-01-15 | 2014-07-17 | Kaminario Technologies Ltd. | Ssd-block aligned writes |
CN104484283A (zh) * | 2014-11-27 | 2015-04-01 | 记忆科技(深圳)有限公司 | 一种降低固态硬盘写放大的方法 |
Non-Patent Citations (1)
Title |
---|
孙健; 陈岚; 郝晓冉: "基于PCRAM主存系统的访问机制", 《微电子学与计算机》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897492A (zh) * | 2018-05-30 | 2018-11-27 | 新华三技术有限公司 | 一种数据写入方法和装置 |
CN108897492B (zh) * | 2018-05-30 | 2021-06-29 | 新华三技术有限公司 | 一种数据写入方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107346288B (zh) | 2020-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7515500B2 (en) | Memory device performance enhancement through pre-erase mechanism | |
KR101907059B1 (ko) | 비휘발성 메모리 장치의 블록 관리 방법 및 블록 관리 시스템 | |
CN111045956B (zh) | 一种基于多核cpu的固态硬盘垃圾回收方法以及装置 | |
AU2003286967B2 (en) | Dual journaling store method and storage medium thereof | |
TW201413451A (zh) | 非揮發性記憶體的資料收集方法 | |
CN103577338A (zh) | 一种回收垃圾数据的方法及存储设备 | |
US11204697B2 (en) | Wear leveling in solid state devices | |
WO2011095516A1 (en) | Method and system for mass storage on flash memory | |
CN109671458A (zh) | 管理闪存模块的方法及相关的闪存控制器 | |
JP2011530758A (ja) | フラッシュメモリ制御方法および制御装置 | |
CN110389712B (zh) | 数据写入方法及其装置、固态硬盘和计算机可读存储介质 | |
CN106445832A (zh) | 闪存存储系统的地址映射方法及装置 | |
CN110377599A (zh) | 键值存储装置及其操作方法 | |
US20170160940A1 (en) | Data processing method and apparatus of solid state disk | |
CN104156321A (zh) | 一种数据预取的方法以及装置 | |
JP2007220107A (ja) | 不揮発性メモリのマッピング情報管理装置及び方法 | |
TWI792534B (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
KR101626218B1 (ko) | 블록 기반의 페이지 매핑 방법 | |
CN107346288A (zh) | 一种数据写入方法及装置 | |
CN111190835B (zh) | 一种数据写入方法、装置、设备及介质 | |
CN105677244B (zh) | 一种降低tlc闪存的固态硬盘写放大的方法 | |
WO2017143972A1 (zh) | 数据处理方法及装置 | |
JPWO2015087651A1 (ja) | メモリの使用可能期間を延ばすための装置、プログラム、記録媒体および方法 | |
Lee et al. | RMSS: an efficient recovery management scheme on NAND flash memory based solid state disk | |
US10990520B2 (en) | Method for gabage collecting for non-volatile memory |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |