CN106484323A - 一种固态存储的损耗均衡方法及*** - Google Patents
一种固态存储的损耗均衡方法及*** Download PDFInfo
- Publication number
- CN106484323A CN106484323A CN201610820522.5A CN201610820522A CN106484323A CN 106484323 A CN106484323 A CN 106484323A CN 201610820522 A CN201610820522 A CN 201610820522A CN 106484323 A CN106484323 A CN 106484323A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- data block
- chained list
- free
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本发明公开了一种固态存储的损耗均衡方法及***,包括:当检测到空闲块链表中的数据块数量小于第一阈值时,从脏块链表中选取无效页面最多的数据块进行回收,将回收的数据块***所述空闲块链表;判断所述空闲块链表中的数据块数量是否大于第二阈值;若是,则从所述脏块链表中选取擦除次数最小的数据块进行回收,并将回收后的数据块***所述空闲块链表;判断所述空闲块链表中的数据块数量是否大于第三阈值;若是,则停止执行回收操作;若否,则继续执行上一次回收步骤;可见,在垃圾回收过程中根据数据块的擦除次数选择进行优先回收的数据块,不仅提高垃圾回收的效率,而且还使各个数据块的使用更加均衡,延长固态存储整体的使用寿命。
Description
技术领域
本发明涉及计算机存储技术领域,更具体地说,涉及一种固态存储的损耗均衡方法及***。
背景技术
固态存储的寿命是有限的,其寿命的长短是由擦写块的最大可擦除次数决定的,固态存储介质的最大可擦除次数大约为万次左右。所以为了延长固态存储的使用寿命,避免由于某个擦写块被过度擦写而影响数据安全性和存储设备的使用,应该在尽量小的性能影响下使擦写操作均匀的分布在每个擦写块上,这个过程就叫做损耗均衡。损耗均衡算法其中一种方式是通过垃圾回收来实现,在垃圾回收的过程中兼顾损耗均衡的效果。固态存储作为一种闪存设备,其与一般磁盘设备最大的不同就是它不采用“覆写”一的形式进行更新,而是采用“out-of-place”的更新方式。这种方式需要先将要更新的数据写入其他的空闲空间,并将原来的数据标记为脏数据,在适当的时候对这些无效的脏数据进行擦除回收,这个过程就叫做垃圾回收,同时脏数据的擦除时以整块为单位的,一个擦除快中包含多个数据页。
垃圾回收的消耗主要包括两个方面当擦除块内的页面不是全部为脏数据,即含有有效数据时,需要拷贝回收块中的有效页面,当把擦除块中的有效页面回收完后再对擦除块进行擦除操作。由于闪存的擦除操作的消耗远远大于拷贝有效页的消耗,所以从垃圾回收的角度看,垃圾回收应该尽可能释放多的可用空间,减少擦除次数。同时文件中经常会存储一些只需要读而很少更新的数据,这类数据成为静态数据。由于静态数据几乎不更新导致其所在的数据块很少会被擦除,而存储经常更新的动态数据的数据块则会经常被擦除,造成了数据块之间的不平衡。
因此,如何提高垃圾回收的效率,实现固态存储的损耗均衡,延长固态存储整体的使用寿命,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种固态存储的损耗均衡方法及***,以实现提高垃圾回收的效率,实现固态存储的损耗均衡,延长固态存储整体的使用寿命。
为实现上述目的,本发明实施例提供了如下技术方案:
一种固态存储的损耗均衡方法,包括:
S1、检测空闲块链表中的数据块数量是否小于第一阈值,若是,则执行S2;其中,所述空闲块链表中的数据块均为空闲数据块;
S2、从脏块链表中选取无效页面最多的数据块进行回收,将回收的数据块***所述空闲块链表;其中,脏块链表中的数据块为不全是有效数据的数据块;
S3、判断所述空闲块链表中的数据块数量是否大于第二阈值;若是,则执行S4;若否,则继续执行S2;
S4、从所述脏块链表中选取擦除次数最小的数据块进行回收,并将回收后的数据块***所述空闲块链表;
S5、判断所述空闲块链表中的数据块数量是否大于第三阈值;
若是,则停止执行回收操作;若否,则继续执行S4。
其中,所述S2包括:
从脏块链表中选取无效页面最多的数据块作为第一数据块;
判断所述第一数据块是否存在有效数据;
若存在,从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,将所述第一数据块中的有效数据拷贝到所述当前数据块,并擦除所述第一数据块;若不存在,则将所述第一数据块直接擦除;
将擦除后的第一数据块***所述空闲块链表。
其中,所述S4包括:
从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,从脏块链表中选取擦除次数最小的数据块作为第二数据块;
将所述第二数据块中的有效数据拷贝到当前数据块中,并擦除所述第二数据块,将擦除后的第二数据块***所述空闲块链表。
其中,还包括:
检测到坏数据块后,判断坏数据块是否存在有效数据;
若存在,则从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,将所述坏数据块中的有效数据拷贝到所述当前数据块,并将所述坏数据块***坏块链表;若不存在,则直接将所述坏数据块***坏块链表。
其中,还包括:
接收到数据写指令时,从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,将所述数据写指令携带的新数据顺序写入当前数据块的每个页面;
当前数据块的所有页面均被写完后,检测所述当前数据块是否存在无效数据;若存在,则将所述当前数据块***所述脏块链表;若不存在,则将所述当前数据块存入干净块链表。
其中,还包括:
判断干净块链表中擦除次数最大的数据块与擦除次数最小的数据块的擦除次数之差是否大于第四阈值;
若是,则将擦除次数最大的数据块作为第三数据块,将擦除次数最小的数据块作为第四数据块;
从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,并将所述第三数据块中的数据拷贝到所述当前数据块,并擦除所述第三数据块;
将所述第四数据块中的数据拷贝到所述第三数据块中,并将所述第四数据块***所述空闲块链表。
其中,每个数据块中均包括本数据块的数据结构;
所述数据结构包括:数据块的地址、该数据块的擦除次数、数据块的有效页数目、数据块的无效页数目和数据块的空闲页数目。
一种固态存储的损耗均衡***,包括:
检测模块,用于检测到空闲块链表中的数据块数量小于第一阈值时,触发第一回收模块;其中,所述空闲块链表中的数据块均为空闲数据块;
所述第一回收模块,用于从脏块链表中选取无效页面最多的数据块进行回收,将回收的数据块***所述空闲块链表;其中,脏块链表中的数据块为不全是有效数据的数据块;
第一判断模块,用于判断所述空闲块链表中的数据块数量是否大于第二阈值;若是,则触发第二回收模块;若否,则触发所述第一回收模块;
所述第二回收模块,用于从所述脏块链表中选取擦除次数最小的数据块进行回收,并将回收后的数据块***所述空闲块链表;
第二判断模块,用于判断所述空闲块链表中的数据块数量是否大于第三阈值;若是,则停止执行回收操作;若否,则触发所述第二回收模块。
其中,还包括:
第三判断模块,用于检测到坏数据块后,判断坏数据块是否存在有效数据;若存在,则触发第三回收模块;若不存在,则直接将所述坏数据块***坏块链表;
所述第三回收模块,用于从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块;将所述坏数据块中的有效数据拷贝到所述当前数据块,并将所述坏数据块***坏块链表。
其中,还包括:
第四判断模块,用于判断干净块链表中擦除次数最大的数据块与擦除次数最小的数据块的擦除次数之差是否大于第四阈值;若是,则触发数据迁移模块;
所述数据迁移模块,用于将擦除次数最大的数据块作为第三数据块,将擦除次数最小的数据块作为第四数据块,从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块;将所述第三数据块中的数据拷贝到所述当前数据块,擦除所述第三数据块;将所述第四数据块中的数据拷贝到所述第三数据块中,并将所述第四数据块***所述空闲块链表。
通过以上方案可知,本发明实施例提供的一种固态存储的损耗均衡方法及***,所述方法包括:S1、检测空闲块链表中的数据块数量是否小于第一阈值,若是,则执行S2;其中,所述空闲块链表中的数据块均为空闲数据块;S2、从脏块链表中选取无效页面最多的数据块进行回收,将回收的数据块***所述空闲块链表;其中,脏块链表中的数据块为不全是有效数据的数据块;S3、判断所述空闲块链表中的数据块数量是否大于第二阈值;若是,则执行S4;若否,则继续执行S2;S4、从所述脏块链表中选取擦除次数最小的数据块进行回收,并将回收后的数据块***所述空闲块链表;S5、判断所述空闲块链表中的数据块数量是否大于第三阈值;若是,则停止执行回收操作;若否,则继续执行S4;
可见,在本方案中,将固态存储设备中的数据块分为不同的状态,在垃圾回收过程中根据数据块的擦除次数选择进行优先回收的数据块,不仅提高垃圾回收的效率,而且还使各个数据块的使用更加均衡,延长固态存储整体的使用寿命。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的不同链表的关系结构示意图;
图2为本发明实施例公开的一种固态存储的损耗均衡方法流程示意图;
图3为本发明实施例公开的静态数据损耗均衡流程示意图;
图4为本发明实施例公开的一种固态存储的损耗均衡***结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
可以理解的是,本方案中固态存储是指采用FASH介质的存储设备而有别于采用磁介质的机械硬盘设备,并且固态存储设备有别于磁介质存储设备,其写数据的方式需要先擦除后写,同时由于介质的要求,固态存储设备中每个存储单位的擦除次数是有上限值的,超过这个上限以后会更容易丢失数据。因此,本发明实施例公开了一种固态存储的损耗均衡方法及***,以实现提高垃圾回收的效率,实现固态存储的损耗均衡,延长固态存储整体的使用寿命。
在本实施例中,为存储设备中的每个数据块中均包括本数据块的数据结构;所述数据结构包括:数据块的地址、该数据块的擦除次数、数据块的有效页数目、数据块的无效页数目和数据块的空闲页数目等信息。
在本方案中,在初始状态下,将存储设备中的所有数据块分为四种,分别是空闲块、干净块、脏块、坏块。空闲块表示该块刚刚进行完擦除操作,数据块上所有页面都是空闲的,可以直接进行分配。干净块表示该块上的所有数据都是有效的。脏块表示该块上的数据并不全是有效的,至少有一页由于数据更新或者文件删除留下的无效数据。坏块表示该块不能再被使用,包含设备出厂时的坏块和使用过程中产生的坏块。此外还有一个当前块,当前块中至少有一个页面可以直接写入新数据。
并且,参见图1,在本方案中为四种块状态建立了四个链表,分别是空闲块链表(free_list)、干净块链表(clean_list)、脏块链表(dirty_list)和坏块链表(bad_list)。在空闲块链表、干净块链表和脏块链表中的块都以块擦除次数升序的方式排列。当接收到数据写指令时,从空闲块链表中选取擦除次数最小的数据块作为当前数据块,将数据写指令携带的新数据顺序写入当前数据块的每个页面;当前数据块的所有页面均被写完后,检测当前数据块是否存在无效数据;若存在,则将当前数据块***所述脏块链表;若不存在,则将当前数据块存入干净块链表。
需要说明的是,存储设备在最初被使用时,除了坏块之外的所有块均在空闲链表中。当要写入新的数据时,通过页面分配操作从空闲链表中取擦除次数最小的块,即空闲链表的第一块,分配得到的块即为当前块,然后将新数据顺序写入每个页面。当当前块上的所有页面均被写完,且所有页面上的数据均为有效数据时,则将当前块***到干净链表中。当当前块上的所有页面均被写完,但是其中含有无效数据时,则将当前块***到脏块链表中。在将当前块***到干净链表或者脏链表之后,当前链表为空,当下次需要分配页面时,再从空闲链表中取空闲块转变为当前块。
本发明实施例提供的一种固态存储的损耗均衡方法,包括:
S1、检测空闲块链表中的数据块数量是否小于第一阈值,若是,则执行S2;其中,所述空闲块链表中的数据块均为空闲数据块;
具体的,存储设备在使用过程中,空闲块链表中的空闲块会逐渐减少,其他三个链表中的块会逐渐增多,当空闲链表中的擦除块数量达到一定下限时,开始垃圾回收的操作,即执行S2。在本实施例中将该下限设置为1,即空闲块链表中只有一个擦除块时启动垃圾回收操作。
S2、从脏块链表中选取无效页面最多的数据块进行回收,将回收的数据块***所述空闲块链表;其中,脏块链表中的数据块为不全是有效数据的数据块;
其中,所述S2包括:
从脏块链表中选取无效页面最多的数据块作为第一数据块;
判断所述第一数据块是否存在有效数据;
若存在,从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,将所述第一数据块中的有效数据拷贝到所述当前数据块,并擦除所述第一数据块;若不存在,则将所述第一数据块直接擦除;
将擦除后的第一数据块***所述空闲块链表。
具体的,在本实施例中设置一个空闲链表中最小块数的数量第二阈值,free_min_num,在启动垃圾回收之后,在空闲链表中的块数小于free_min_num时,垃圾回收操作在脏块链表中查找包含无效页面最多的块进行回收。
具体的,当空闲块链表中的块数目为1时,从脏块链表中查找无效页数最多的块,进行擦除操作,如果该块中不含有有效页则将该块直接擦除,如果该块中含有有效块,则将空闲链表中的空闲块取下转变为当前块,将刚才找到的脏块中的有效数据拷贝到当前块中,擦除脏块,并将擦除后的块***到空闲链表。当前块写满之后,将当前块***干净块,并从空闲链表中取新的块作为当前块。
S3、判断所述空闲块链表中的数据块数量是否大于第二阈值;若是,则执行S4;若否,则继续执行S2;
具体的,在空闲块链表中的块数大于free_min_num时,垃圾回收操作取脏块链表中擦除次数最小的块进行回收。
S4、从所述脏块链表中选取擦除次数最小的数据块进行回收,并将回收后的数据块***所述空闲块链表;
其中,所述S4包括:
从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,从脏块链表中选取擦除次数最小的数据块作为第二数据块;
将所述第二数据块中的有效数据拷贝到当前数据块中,并擦除所述第二数据块,将擦除后的第二数据块***所述空闲块链表。
S5、判断所述空闲块链表中的数据块数量是否大于第三阈值;
若是,则停止执行回收操作;若否,则继续执行S4。
具体的,在本方案中设置一个第三阈值free_th1_num,在空闲块链表中的块数目大于该值之后,停止垃圾回收操作。参见图2,为本实施例提供的固态存储的损耗均衡方法流程示意图。
需要说明的是,在该流程的所有操作中,涉及到块擦除操作的,均会修改该块对应数据结构中的块擦除次数,在数据读写及垃圾回收过程中也会修改该数据结构中的有效页数、无效页数、空闲页数等属性。
具体的,对保存静态数据的块几乎没有擦除操作,而保存动态数据的块擦除操作过于频繁的问题,本实施例提供了一种损耗均衡操作。在启动垃圾回收操作的同时也会启动该损耗均衡操作。本方案中设定了一个第四阈值era_th1。在损耗均衡操作启动之后,读取干净块链表中所有擦除块的附加区字段中的擦除次数字段,从中找出擦除次数最多的擦除块和擦除次数最少的块,得到两者的擦除次数差值,如果差值大于第四阈值era_th1时,认为擦除次数最小的擦除上存储的是静态数据,其更新的频率非常低,需要对其进行迁移操作,具体流程如下:
S11、判断干净块链表中擦除次数最大的数据块与擦除次数最小的数据块的擦除次数之差是否大于第四阈值;若是,则执行S12;
S12、将擦除次数最大的数据块作为第三数据块,将擦除次数最小的数据块作为第四数据块;
S13、从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,并将所述第三数据块中的数据拷贝到所述当前数据块,并擦除所述第三数据块;
S14、将所述第四数据块中的数据拷贝到所述第三数据块中,并将所述第四数据块***所述空闲块链表。
具体的,参见图3,为了方便理解,举例如下:
步骤S101:遍历干净块列表,查找擦除次数最大的块BlockA和擦除次数最小的块BlockB,其擦除次数分别为EraseA和EraseB。
步骤S102:如果EraseA同EraseB的差值大于era_th1,对BlockA进行迁移操作。从空闲链表中取空闲块FreeBlockC,将BlockA上的数据复制到FreeBlockC中,擦除BlockA,修改BlockA和FreeBlockC的擦除次数及有效页、空闲页等标记。将FreeBlockC***到干净链表中
步骤S103:将BlockB中的数据复制到BlockA中,修改BlockB和BlockA的擦除次数及有效页、空闲页等标记
步骤S104:将BlockB***到脏块链表中
步骤S105:重复步骤S101-S104,直到所有满足条件的静态数据迁移成功。
基于上述技术方案,检测到坏数据块后,需要判断坏数据块是否存在有效数据;若存在,则从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,将所述坏数据块中的有效数据拷贝到所述当前数据块,并将所述坏数据块***坏块链表;若不存在,则直接将所述坏数据块***坏块链表。
具体的,在垃圾块回收和数据写入过程中产生的坏块,由于这些块中可能包含有效数据,所以需要首先将有效的数据拷贝到好的块中,然后将坏块***坏块链表中。
下面对本发明实施例提供的损耗均衡***进行介绍,下文描述的损耗均衡***与上文描述的损耗均衡方法可以相互参照。
参见图4,本发明实施例提供的一种固态存储的损耗均衡***,包括:
检测模块100,用于检测到空闲块链表中的数据块数量小于第一阈值时,触发第一回收模块200;其中,所述空闲块链表中的数据块均为空闲数据块;
所述第一回收模块200,用于从脏块链表中选取无效页面最多的数据块进行回收,将回收的数据块***所述空闲块链表;其中,脏块链表中的数据块为不全是有效数据的数据块;
第一判断模块300,用于判断所述空闲块链表中的数据块数量是否大于第二阈值;若是,则触发第二回收模块400;若否,则触发所述第一回收模块200;
所述第二回收模块400,用于从所述脏块链表中选取擦除次数最小的数据块进行回收,并将回收后的数据块***所述空闲块链表;
第二判断模块500,用于判断所述空闲块链表中的数据块数量是否大于第三阈值;若是,则停止执行回收操作;若否,则触发所述第二回收模块400。
基于上述技术方案,本方案还包括:
第三判断模块,用于检测到坏数据块后,判断坏数据块是否存在有效数据;若存在,则触发第三回收模块;若不存在,则直接将所述坏数据块***坏块链表;
所述第三回收模块,用于从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块;将所述坏数据块中的有效数据拷贝到所述当前数据块,并将所述坏数据块***坏块链表。
基于上述技术方案,本方案还包括:
第四判断模块,用于判断干净块链表中擦除次数最大的数据块与擦除次数最小的数据块的擦除次数之差是否大于第四阈值;若是,则触发数据迁移模块;
所述数据迁移模块,用于将擦除次数最大的数据块作为第三数据块,将擦除次数最小的数据块作为第四数据块,从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块;将所述第三数据块中的数据拷贝到所述当前数据块,擦除所述第三数据块;将所述第四数据块中的数据拷贝到所述第三数据块中,并将所述第四数据块***所述空闲块链表。
综上可见,本方案提供的对固态存储损耗均衡的改进方法,将固态存储设备中的数据块分为不同的状态,在垃圾回收过程中根据空闲块数目和擦除次数选择进行回收的数据块,提高垃圾回收的效率。同时对不经常更新的静态数据定时迁移到擦除次数较多的数据块中,使得各个数据块的使用更加均衡,延长固态存储整体的使用寿命。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种固态存储的损耗均衡方法,其特征在于,包括:
S1、检测空闲块链表中的数据块数量是否小于第一阈值,若是,则执行S2;其中,所述空闲块链表中的数据块均为空闲数据块;
S2、从脏块链表中选取无效页面最多的数据块进行回收,将回收的数据块***所述空闲块链表;其中,脏块链表中的数据块为不全是有效数据的数据块;
S3、判断所述空闲块链表中的数据块数量是否大于第二阈值;若是,则执行S4;若否,则继续执行S2;
S4、从所述脏块链表中选取擦除次数最小的数据块进行回收,并将回收后的数据块***所述空闲块链表;
S5、判断所述空闲块链表中的数据块数量是否大于第三阈值;
若是,则停止执行回收操作;若否,则继续执行S4。
2.根据权利要求1所述的损耗均衡方法,其特征在于,所述S2包括:
从脏块链表中选取无效页面最多的数据块作为第一数据块;
判断所述第一数据块是否存在有效数据;
若存在,从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,将所述第一数据块中的有效数据拷贝到所述当前数据块,并擦除所述第一数据块;若不存在,则将所述第一数据块直接擦除;
将擦除后的第一数据块***所述空闲块链表。
3.根据权利要求2所述的损耗均衡方法,其特征在于,所述S4包括:
从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,从脏块链表中选取擦除次数最小的数据块作为第二数据块;
将所述第二数据块中的有效数据拷贝到当前数据块中,并擦除所述第二数据块,将擦除后的第二数据块***所述空闲块链表。
4.根据权利要求1所述的损耗均衡方法,其特征在于,还包括:
检测到坏数据块后,判断坏数据块是否存在有效数据;
若存在,则从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,将所述坏数据块中的有效数据拷贝到所述当前数据块,并将所述坏数据块***坏块链表;若不存在,则直接将所述坏数据块***坏块链表。
5.根据权利要求1所述的损耗均衡方法,其特征在于,还包括:
接收到数据写指令时,从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,将所述数据写指令携带的新数据顺序写入当前数据块的每个页面;
当前数据块的所有页面均被写完后,检测所述当前数据块是否存在无效数据;若存在,则将所述当前数据块***所述脏块链表;若不存在,则将所述当前数据块存入干净块链表。
6.根据权利要求1-5中任意一项所述的损耗均衡方法,其特征在于,还包括:
判断干净块链表中擦除次数最大的数据块与擦除次数最小的数据块的擦除次数之差是否大于第四阈值;
若是,则将擦除次数最大的数据块作为第三数据块,将擦除次数最小的数据块作为第四数据块;
从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块,并将所述第三数据块中的数据拷贝到所述当前数据块,并擦除所述第三数据块;
将所述第四数据块中的数据拷贝到所述第三数据块中,并将所述第四数据块***所述空闲块链表。
7.根据权利要求6所述的损耗均衡方法,其特征在于,每个数据块中均包括本数据块的数据结构;
所述数据结构包括:数据块的地址、该数据块的擦除次数、数据块的有效页数目、数据块的无效页数目和数据块的空闲页数目。
8.一种固态存储的损耗均衡***,其特征在于,包括:
检测模块,用于检测到空闲块链表中的数据块数量小于第一阈值时,触发第一回收模块;其中,所述空闲块链表中的数据块均为空闲数据块;
所述第一回收模块,用于从脏块链表中选取无效页面最多的数据块进行回收,将回收的数据块***所述空闲块链表;其中,脏块链表中的数据块为不全是有效数据的数据块;
第一判断模块,用于判断所述空闲块链表中的数据块数量是否大于第二阈值;若是,则触发第二回收模块;若否,则触发所述第一回收模块;
所述第二回收模块,用于从所述脏块链表中选取擦除次数最小的数据块进行回收,并将回收后的数据块***所述空闲块链表;
第二判断模块,用于判断所述空闲块链表中的数据块数量是否大于第三阈值;若是,则停止执行回收操作;若否,则触发所述第二回收模块。
9.根据权利要求8所述的损耗均衡***,其特征在于,还包括:
第三判断模块,用于检测到坏数据块后,判断坏数据块是否存在有效数据;若存在,则触发第三回收模块;若不存在,则直接将所述坏数据块***坏块链表;
所述第三回收模块,用于从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块;将所述坏数据块中的有效数据拷贝到所述当前数据块,并将所述坏数据块***坏块链表。
10.根据权利要求8或9所述的损耗均衡***,其特征在于,还包括:
第四判断模块,用于判断干净块链表中擦除次数最大的数据块与擦除次数最小的数据块的擦除次数之差是否大于第四阈值;若是,则触发数据迁移模块;
所述数据迁移模块,用于将擦除次数最大的数据块作为第三数据块,将擦除次数最小的数据块作为第四数据块,从所述空闲块链表中选取擦除次数最小的数据块作为当前数据块;将所述第三数据块中的数据拷贝到所述当前数据块,擦除所述第三数据块;将所述第四数据块中的数据拷贝到所述第三数据块中,并将所述第四数据块***所述空闲块链表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610820522.5A CN106484323A (zh) | 2016-09-13 | 2016-09-13 | 一种固态存储的损耗均衡方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610820522.5A CN106484323A (zh) | 2016-09-13 | 2016-09-13 | 一种固态存储的损耗均衡方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106484323A true CN106484323A (zh) | 2017-03-08 |
Family
ID=58273596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610820522.5A Pending CN106484323A (zh) | 2016-09-13 | 2016-09-13 | 一种固态存储的损耗均衡方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106484323A (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066394A (zh) * | 2017-03-31 | 2017-08-18 | 深圳市金印达科技有限公司 | 一种成像设备的数据读写方法和*** |
CN107193493A (zh) * | 2017-05-19 | 2017-09-22 | 惠州佰维存储科技有限公司 | Nand闪存块的管理方法及其*** |
CN107391392A (zh) * | 2017-07-21 | 2017-11-24 | 重庆大学 | 一种基于闪存存储设备并行特征的垃圾回收优化方法 |
CN107562381A (zh) * | 2017-08-30 | 2018-01-09 | 紫光华山信息技术有限公司 | 一种数据处理方法及装置 |
CN107992268A (zh) * | 2017-11-24 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种坏块标记的方法及相关装置 |
CN108089822A (zh) * | 2017-12-20 | 2018-05-29 | 北京京存技术有限公司 | 存储芯片的管理方法、***、设备及存储介质 |
CN109164990A (zh) * | 2018-09-13 | 2019-01-08 | 东信和平科技股份有限公司 | 一种存储器数据更新方法、装置、设备及存储介质 |
CN109254927A (zh) * | 2018-08-30 | 2019-01-22 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘磨损均衡的实现方法 |
WO2019015462A1 (zh) * | 2017-07-18 | 2019-01-24 | 华为技术有限公司 | 一种检测块发送和接收的方法、网络设备和*** |
WO2019062370A1 (zh) * | 2017-09-30 | 2019-04-04 | 华为技术有限公司 | 一种存储***中垃圾回收的方法及装置 |
CN109800178A (zh) * | 2017-11-17 | 2019-05-24 | 爱思开海力士有限公司 | 垃圾收集方法以及用于混合地址映射的存储器*** |
CN110109625A (zh) * | 2019-05-16 | 2019-08-09 | 深圳市时创意电子有限公司 | 一种改善Free Queue的管理方法 |
CN110347612A (zh) * | 2019-06-04 | 2019-10-18 | 华南理工大学 | 一种适用于固态盘的动态调整垃圾回收方法 |
CN111026673A (zh) * | 2019-11-19 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种nand flash垃圾回收动态优化方法 |
CN111124305A (zh) * | 2019-12-20 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 固态硬盘磨损均衡方法、装置及计算机可读存储介质 |
CN111414138A (zh) * | 2020-03-19 | 2020-07-14 | 青岛镕铭半导体有限公司 | 一种固态硬盘磨损均衡方法和装置 |
CN111913647A (zh) * | 2019-05-08 | 2020-11-10 | 华为技术有限公司 | 一种存储设备的磨损均衡方法、装置及相关设备 |
CN112585683A (zh) * | 2018-07-19 | 2021-03-30 | 美光科技公司 | 用于损耗均衡的偏置采样方法 |
US11082317B2 (en) | 2017-07-18 | 2021-08-03 | Huawei Technologies Co., Ltd. | Detection block sending and receiving method, and network device and system |
CN115586874A (zh) * | 2022-11-24 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种数据块回收方法、装置及电子设备和存储介质 |
CN118069068A (zh) * | 2024-04-16 | 2024-05-24 | 苏州元脑智能科技有限公司 | 固态硬盘的管理方法、装置、电子设备以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369252A (zh) * | 2008-09-16 | 2009-02-18 | 浙江大学 | 基于nand闪存文件***中静态数据损耗均衡的方法 |
US20100023675A1 (en) * | 2008-07-23 | 2010-01-28 | Phison Electronics Corp. | Wear leveling method, and storage system and controller using the same |
CN105912279A (zh) * | 2016-05-19 | 2016-08-31 | 河南中天亿科电子科技有限公司 | 固态存储回收***及固态存储回收方法 |
-
2016
- 2016-09-13 CN CN201610820522.5A patent/CN106484323A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100023675A1 (en) * | 2008-07-23 | 2010-01-28 | Phison Electronics Corp. | Wear leveling method, and storage system and controller using the same |
CN101369252A (zh) * | 2008-09-16 | 2009-02-18 | 浙江大学 | 基于nand闪存文件***中静态数据损耗均衡的方法 |
CN105912279A (zh) * | 2016-05-19 | 2016-08-31 | 河南中天亿科电子科技有限公司 | 固态存储回收***及固态存储回收方法 |
Non-Patent Citations (2)
Title |
---|
李海霞: "基于NAND闪存的嵌入式文件***研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
潘沁 等: "磨损均衡算法在NAND Flash管理中的改进", 《微计算机信息》 * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066394A (zh) * | 2017-03-31 | 2017-08-18 | 深圳市金印达科技有限公司 | 一种成像设备的数据读写方法和*** |
CN107193493A (zh) * | 2017-05-19 | 2017-09-22 | 惠州佰维存储科技有限公司 | Nand闪存块的管理方法及其*** |
WO2019015462A1 (zh) * | 2017-07-18 | 2019-01-24 | 华为技术有限公司 | 一种检测块发送和接收的方法、网络设备和*** |
US11082317B2 (en) | 2017-07-18 | 2021-08-03 | Huawei Technologies Co., Ltd. | Detection block sending and receiving method, and network device and system |
US11539607B2 (en) | 2017-07-18 | 2022-12-27 | Huawei Technologies Co., Ltd. | Detection block sending and receiving method, and network device and system |
CN107391392A (zh) * | 2017-07-21 | 2017-11-24 | 重庆大学 | 一种基于闪存存储设备并行特征的垃圾回收优化方法 |
CN107562381A (zh) * | 2017-08-30 | 2018-01-09 | 紫光华山信息技术有限公司 | 一种数据处理方法及装置 |
WO2019062370A1 (zh) * | 2017-09-30 | 2019-04-04 | 华为技术有限公司 | 一种存储***中垃圾回收的方法及装置 |
CN109800178A (zh) * | 2017-11-17 | 2019-05-24 | 爱思开海力士有限公司 | 垃圾收集方法以及用于混合地址映射的存储器*** |
CN109800178B (zh) * | 2017-11-17 | 2023-05-16 | 爱思开海力士有限公司 | 垃圾收集方法以及用于混合地址映射的存储器*** |
CN107992268B (zh) * | 2017-11-24 | 2021-08-10 | 郑州云海信息技术有限公司 | 一种坏块标记的方法及相关装置 |
CN107992268A (zh) * | 2017-11-24 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种坏块标记的方法及相关装置 |
CN108089822A (zh) * | 2017-12-20 | 2018-05-29 | 北京京存技术有限公司 | 存储芯片的管理方法、***、设备及存储介质 |
CN112585683A (zh) * | 2018-07-19 | 2021-03-30 | 美光科技公司 | 用于损耗均衡的偏置采样方法 |
CN109254927A (zh) * | 2018-08-30 | 2019-01-22 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘磨损均衡的实现方法 |
CN109164990B (zh) * | 2018-09-13 | 2022-03-29 | 东信和平科技股份有限公司 | 一种存储器数据更新方法、装置、设备及存储介质 |
CN109164990A (zh) * | 2018-09-13 | 2019-01-08 | 东信和平科技股份有限公司 | 一种存储器数据更新方法、装置、设备及存储介质 |
WO2020224646A1 (zh) * | 2019-05-08 | 2020-11-12 | 华为技术有限公司 | 一种存储设备的磨损均衡方法、装置及相关设备 |
CN111913647A (zh) * | 2019-05-08 | 2020-11-10 | 华为技术有限公司 | 一种存储设备的磨损均衡方法、装置及相关设备 |
CN110109625A (zh) * | 2019-05-16 | 2019-08-09 | 深圳市时创意电子有限公司 | 一种改善Free Queue的管理方法 |
CN110347612A (zh) * | 2019-06-04 | 2019-10-18 | 华南理工大学 | 一种适用于固态盘的动态调整垃圾回收方法 |
CN111026673B (zh) * | 2019-11-19 | 2023-05-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种nand flash垃圾回收动态优化方法 |
CN111026673A (zh) * | 2019-11-19 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种nand flash垃圾回收动态优化方法 |
CN111124305A (zh) * | 2019-12-20 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 固态硬盘磨损均衡方法、装置及计算机可读存储介质 |
CN111414138A (zh) * | 2020-03-19 | 2020-07-14 | 青岛镕铭半导体有限公司 | 一种固态硬盘磨损均衡方法和装置 |
CN111414138B (zh) * | 2020-03-19 | 2024-02-13 | 镕铭微电子(济南)有限公司 | 一种固态硬盘磨损均衡方法和装置 |
CN115586874A (zh) * | 2022-11-24 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种数据块回收方法、装置及电子设备和存储介质 |
CN115586874B (zh) * | 2022-11-24 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 一种数据块回收方法、装置及电子设备和存储介质 |
CN118069068A (zh) * | 2024-04-16 | 2024-05-24 | 苏州元脑智能科技有限公司 | 固态硬盘的管理方法、装置、电子设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106484323A (zh) | 一种固态存储的损耗均衡方法及*** | |
CN106598878B (zh) | 一种固态硬盘冷热数据分离方法 | |
CN102508788B (zh) | Ssd及ssd垃圾回收方法和装置 | |
CN102511044B (zh) | 一种数据删除方法及装置 | |
CN100504814C (zh) | 闪存的区块管理方法 | |
CN101169751B (zh) | 具有闪存设备的***及其数据恢复方法 | |
CN101923448B (zh) | 一种nand闪存的转换层读写方法 | |
CN101673243B (zh) | 数据储存装置与方法 | |
CN102508785B (zh) | 一种磨损均衡方法及装置 | |
CN105868122A (zh) | 快闪存储设备的数据处理方法及装置 | |
CN110399310A (zh) | 一种存储空间的回收方法及装置 | |
CN104077197B (zh) | ***恢复方法、装置、固态硬盘和电子设备 | |
CN103577336B (zh) | 一种存储数据处理方法及装置 | |
CN106227598A (zh) | 一种缓存资源的回收方法 | |
CN101354681A (zh) | 存储器***、非易失性存储器的磨损均衡方法及装置 | |
CN102799535A (zh) | 固态硬盘的数据处理方法及固态硬盘 | |
CN103440207A (zh) | 缓存方法及装置 | |
CN103455435A (zh) | 数据写入方法及装置 | |
CN107391774A (zh) | 基于重复数据删除的日志文件***的垃圾回收方法 | |
CN107818269A (zh) | 一种基于Flash的文件保存方法及*** | |
CN102073592B (zh) | 一种闪存快速读写方法和装置 | |
CN107817945A (zh) | 一种混合内存结构的数据读取方法和*** | |
CN107797772A (zh) | 一种基于闪存介质的垃圾回收***及方法 | |
CN106293497A (zh) | 瓦记录感知文件***中垃圾数据的回收方法和装置 | |
CN103617124B (zh) | 一种闪存管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170308 |