CN109426622B - 一种提高闪存固态盘寿命的方法及高寿命闪存固态盘 - Google Patents

一种提高闪存固态盘寿命的方法及高寿命闪存固态盘 Download PDF

Info

Publication number
CN109426622B
CN109426622B CN201710772988.7A CN201710772988A CN109426622B CN 109426622 B CN109426622 B CN 109426622B CN 201710772988 A CN201710772988 A CN 201710772988A CN 109426622 B CN109426622 B CN 109426622B
Authority
CN
China
Prior art keywords
data
blocks
reuse
block
flash memory
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.)
Active
Application number
CN201710772988.7A
Other languages
English (en)
Other versions
CN109426622A (zh
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.)
Shenzhen Research Institute HKPU
Original Assignee
Shenzhen Research Institute HKPU
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 Shenzhen Research Institute HKPU filed Critical Shenzhen Research Institute HKPU
Priority to CN201710772988.7A priority Critical patent/CN109426622B/zh
Publication of CN109426622A publication Critical patent/CN109426622A/zh
Application granted granted Critical
Publication of CN109426622B publication Critical patent/CN109426622B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明适用于计算机存储领域,提供了一种提高闪存固态盘寿命的方法及高寿命闪存固态盘,该方法包括:将闪存数据块分类为正常块、再利用块和坏块,并定时更新;将感知到的存储数据请求分类为准确数据请求和近似数据请求;将常规数据分配到正常块,将近似数据分配到再利用块;通过冗余校验信息对存储数据进行存储管理;根据正常块、再利用块和坏块的数量比例执行动态垃圾回收管理。本发明通过继续使用带有错误单元的闪存数据块存储近似数据以延长闪存固态盘的使用寿命,并采用相互独立的多种错误率数据块组成的具有冗余能力的条带结构进行数据存储管理,以及对数据块动态分配并配合动态垃圾回收进一步提高固态盘的读写可靠性。

Description

一种提高闪存固态盘寿命的方法及高寿命闪存固态盘
技术领域
本发明属于计算机存储领域,尤其涉及一种提高闪存固态盘寿命的方法及高寿命闪存固态盘。
背景技术
目前,基于闪存(Flash)的固态硬盘(SSD)以其读写速度快、能耗低、体积小等特点使其广泛的应用在数据存储中心,被认为是下一代主流存储设备。
但随着闪存技术的发展,固态硬盘的容量不断增大的同时,其使用寿命短的问题变得越来越严重,典型的三阶存储单元(TLC)闪存的写/擦除寿命仅有几千次。其原因就是由于随着闪存块擦除操作的增多,一些数据块无法达到百分百的存储正确率,从而缩短了固态盘的寿命。
发明内容
本发明实施例的目的在于提供一种高寿命闪存固态盘,旨在解决现有固态盘因闪存块多次擦除操作而影响使用寿命的问题。
本发明实施例是这样实现的,一种提高闪存固态盘寿命的方法,所述方法包括下述步骤:
将闪存数据块分类为正常块、再利用块和坏块,并定时更新,所述正常块提供百分百准确度的数据;
将感知到的存储数据请求分类为准确数据请求和近似数据请求;
将所述准确数据请求存储的常规数据分配到所述正常块,将所述近似数据请求存储的近似数据分配到再利用块;
通过冗余校验信息对存储数据进行存储管理;
根据所述正常块、所述再利用块和所述坏块的数量比例执行动态垃圾回收管理,从而加速闪存固态盘的替换时间,提高寿命。
本发明实施例的另一目的在于,提供一种高寿命闪存固态盘,所述闪存固态盘包括主机逻辑接口、固态盘控制器、闪存数据块和数据块恢复单元,所述固态盘控制器包括:
数据块分配器,用于将闪存数据块分类为正常块、再利用块和坏块,并定时更新,所述正常块提供百分百准确度的数据;所述数据块分配器还将感知到的存储数据请求分类为准确数据请求和近似数据请求,并将所述准确数据请求存储的常规数据分配到所述正常块,将所述近似数据请求存储的近似数据分配到再利用块;
条带管理器,用于通过冗余校验信息对存储数据进行存储管理;
垃圾回收,用于根据所述正常块、所述再利用块和所述坏块的数量比例执行动态垃圾回收管理,从而加速闪存固态盘的替换时间,提高寿命。
本发明实施例通过继续使用带有错误单元的闪存数据块存储近似数据以延长闪存固态盘的使用寿命,并采用相互独立的多种错误率数据块组成的具有冗余能力的条带结构,进行数据存储管理,还通过对数据块动态分配并配合动态垃圾回收方式进一步提高了闪存固态盘的读写可靠性。
附图说明
图1为本发明实施例提供的提高闪存固态盘寿命的方法的流程结构图;
图2为本发明实施例提供的高寿命闪存固态盘的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明实施例通过继续使用带有错误单元的闪存数据块存储近似数据以延长闪存固态盘的使用寿命,并采用相互独立的多种错误率数据块组成的具有冗余能力的条带结构,进行数据存储管理,还通过对数据块动态分配并配合动态垃圾回收方式进一步提高了闪存固态盘的读写可靠性。
图1示出了本发明实施例提供的电池电量检测电路的结构,为了便于说明,仅示出了与本发明相关的部分。
作为本发明一实施例,该提高闪存固态盘寿命的方法可以应用于近似计算应用中,比如图像分析和视频编解码数据等。对于计算机的图像应用,通常可以容忍大约20%的数据错误率,因此,通过存储设备读取的含有一定错误率的数据作为输入依然可以满足近似应用的需求,这样不仅能够减少存储开销,也能够在一定程度上通过降低校验码的强度以提升固态盘的读写性能。
该提高闪存固态盘寿命的方法包括下述步骤:
在步骤S101中,数据块分配器将闪存数据块分类为正常块、再利用块和坏块,并定时更新,正常块提供百分百准确度的数据;
在步骤S102中,数据块分配器将感知到的存储数据请求分类为准确数据请求和近似数据请求;
在步骤S103中,数据块分配器将准确数据请求存储的常规数据分配到正常块,将近似数据请求存储的近似数据分配到再利用块;
在步骤S104中,条带管理器通过冗余校验信息对存储数据进行存储管理;
在步骤S105中,固态盘控制器根据正常块、再利用块和坏块的数量比例执行动态垃圾回收管理,从而加速闪存固态盘的替换时间,提高寿命。
在本发明实施例中,当应用程序产生的数据访问请求下发到闪存固态盘存储系统中时,固态盘控制器根据不同应用程序产生的数据进行不同的处理。一般应用程序生成的数据请求访问闪存的正常数据页上,而近似数据可以存储在含有错误单元的闪存数据块中,从而可以有效的增加闪存块的使用次数从而延长了整个闪存盘的使用寿命。
随着擦除次数的增加,存储近似数据的闪存数据块有更大的概率产生更多的错误单元,因此本发明利用相互独立的多种错误率数据块组成的具有冗余能力的条带技术(Redundant Array of Independent NAND with Hybrid Error-rate,RAINHE)来保障近似数据的可靠性,使得近似数据的最大错误率能够满足近似应用所能容忍的。
此外,随着擦除次数的增加等错误源的影响,不同类型的闪存数据块的数量是动态变化的,因此本发明基于闪存盘中不同类型的数据块数量提出了动态垃圾回收策略,从而在整个固态盘生命周期中保证提升固态盘的读写性能。
作为本发明一实施例,步骤S101,将闪存数据块分类为正常块、再利用块和坏块的具体步骤为:
在未进行数据存储前,将闪存数据块标记为正常块;
定时将正常块中由于数据存储、擦除导致不能被纠错码纠正位错误的闪存数据块标记为再利用块,再利用块的错误率小于最大错误阈值;
定时将再利用块中由于数据存储、擦除导致错误率大于或等于最大错误阈值的闪存数据块标记为坏块。
在本发明实施例中,将NAND闪存的数据块分为三类:正常块、再利用块和坏块。正常块表示在ECC的保护下,能够提供百分百准确度的数据。随着擦除次数的增多,正常块中会产生一些不能由纠错码纠正的位错误。当数据块存在不可纠正的位错误时,且错误率小于阈值W(W为下文中的错误检测码所能检测到的最大错误率),则标记此数据块为再利用块。由于再利用数据块本身含有的错误位,因此利用此类型数据块存储数据时,错误数据将持久性的存储到闪存中。随着越来越多的擦除次数及数据滞留时间的影响,当再利用块的错误率超过设定的阈值W时,则标志此块为坏块,不会再被使用。
在本发明实施例中,由于常规数据和近似数据有不同的数据准确度要求,因此本发明根据不同的数据类型采取不同的管理策略。
常规数据请求则调用传统的系统调用接口。数据要求完整的数据准确度,因此只分配到正常块上。不同的近似数据有不同的错误容忍率,因此设备驱动层功能被提升使其能够传递近似数据的错误容忍率。然后固态盘控制器解析从设备驱动层传递下来的I/O请求,一个近似数据请求的接口定义如下:
Approx_read(Buf,LPN,Size,Tolerance);
Approx_write(Buf,LPN,Size,Tolerance)。
其中,Buf指向近似数据的内存地址,LPN为起始页号,Size是数据块的长度,Tolerance代表了近似数据的错误容忍率。Tolerance用32位浮点类型表示,其百分值为近似应用所能容忍的错误率。
比如当接口中的Tolerance参数为5.7,则代表近似应用能够容忍5.7%的错误率。近似数据由于能够容忍一定的错误率,所以优先分配到再利用块上。
本发明根据近似数据请求中的错误容忍度分配对应的再利用块,选取错误率小于近似数据请求的错误容忍度的再利用块,以保证近似数据的可靠性。
更进一步地,闪存固态盘的使用是一个阶段性变化的过程,根据正常块、再利用块和坏块的数量比例变化,闪存固态盘分为青年阶段、中年阶段和老年阶段;状态过程的转变是根据不用类型数据块的比例来触发的,固态盘控制器根据不同数据块的数量比例更新判断所处的阶段从而执行不同的垃圾回收策略来优化性能。Tn、Te和Tk是在固态盘存储系统中设定的三个阈值,用于判断固态盘所处的不同阶段。
青年阶段,Pn大于Tn,
Figure BDA0001395389030000051
Tn为第一阈值;
中年阶段,Pn小于或等于Tn,且Pe大于Te,
Figure BDA0001395389030000052
Te为第二阈值;
老年阶段,Pn小于Tk,Tk为第三阈值;
Nn为当前闪存固态盘中正常块的数量,Ne为当前闪存固态盘中再利用块的数量,Nsum为当前闪存固态盘中闪存数据块的总数,Pn+Pe<1。
在本发明实施例中,闪存固态盘处在青年阶段时,闪存固态盘主要由正常块构成,此时常规数据和近似数据都存储在正常块中,并且按照传统的地址映射和磨损均衡策略。随着擦除次数的增加以及磨损均衡的影响,存在一定错误率的再利用块会在固态盘中的各个通道均匀的出现。当再利用数据块比例增大时(Pe>Te),闪存固态盘进入中年阶段,此时近似数据优先存储到再利用块上,以延长固态盘使用寿命和提高闪存利用率。为了保障近似数据的可靠性,本专利设计了相互独立的多种错误率数据块组成的具有冗余能力的条带技术(RAINHE)。
进一步地,再利用块管理器按照再利用块错误率的大小划分高错误率和低错误率两种数据块,每个闪存通道上利用先进先出的链表组织管理可用的再利用块;
在存储近似数据时,条带管理器从多个通道中的链表中选取相对应错误率的再利用块组成条带,并记录条带信息;
对于具有不同错误率的再利用块,通过“写数据-读数据-比对”的方式获得准确的错误率并按照先进先出的方式放入到对应错误率的再利用块链表中。
在本发明实施例中,再利用块按照其错误率的大小划分高错误率和低错误率两种数据块,每个闪存通道上利用先进先出的链表组织管理可用的再利用块。当存储近似数据时,条带管理器从多个通道中的链表中选取相对应错误率的再利用块组成条带,并记录条带信息。
不同的再利用块有不同的错误率,通过“写数据-读数据-比对”的方式获得准确的错误率并按照先进先出的方式放入到对应错误率的再利用块链表中。闪存固态盘的每个通道维护低错误率和高错误率两个队列。闪存数据块发生错误是由多种原因造成的,包括块擦除操作、数据驻留时间和存储单元间的影响。其中数据块的错误率与擦除操作的关系呈现O(N2)的趋势(N表示擦除次数),因此擦除次数多的再利用块产生更多位错误的概率要远大于擦除次数少的再利用块,其错误率的增量会越来越大。如果每次回收再利用块时都按照“写数据-读数据-比对”的方式获得再利用块的准确错误率会严重影响固态盘性能,本发明对于再利用块每擦除500次按照“写数据-读数据-比对”的方式获得其准确错误率并加入到对应的链表中,当错误率超过阈值W时,则标记为坏块。
由于擦除操作、驻留时间等闪存单元错误源的影响,在获得准确错误率的周期中一些再利用块的实际错误率可能会超过了其所在队列的错误率,发生错误率偏差。尤其是当再利用块的实际错误率超过近似数据所能容忍的错误率时,就对近似数据带来了可靠性风险。基于此,本发明应用相互独立的多种错误率数据块组成的具有冗余能力的条带技术来保证近似数据的可靠性。
为了提高空间利用率和保证数据可靠性,当存储近似数据时,条带由多个不同错误率的再利用块和正常块混合组成。当条带中的再利用块发生错误率偏差时,利用条带上的冗余信息修复该再利用块。
值得注意的是,本发明仅考虑单个再利用数据块发生错误率偏差的情况,因此每个条带包含一个冗余信息块。
作为本发明一实施例,在步骤S104中,通过冗余校验信息对再利用块上存储数据进行存储管理的步骤具体为:
当发生错误率偏差时,通过条带管理器上的冗余校验信息恢复再利用块上的数据,以保证近似数据的可靠性。
在本发明实施例中,对于数据出存储管理,对存储在再利用块上的近似数据,当发生错误率偏差时,本发明利用条带上的冗余校验信息恢复再利用块上的数据,以保证近似数据的可靠性。
条带是由不同通道上的不同错误率的再利用块和正常块组成的。条带在保证近似数据的可靠性的同时,也能够同时响应近似数据和常规数据的请求。根据第一部分分析,由于再利用数据块发生错误偏差的可能性要远大于正常块,因此本发明只考虑条带中的再利用块发生错误偏差对近似数据的可靠性影响。近似数据和常规数据请求分别用K和F表示,其中近似数据的错误率容忍度为A。
当近似应用访问条带中的再利用块时,再利用块的实际数据错误率由条带上的错误检测码判断。准确识别较高的再利用块比特错误率需要更多的预留空间存储错误校验码,考虑到现有闪存芯片预留空间的限制,本专利多个再利用块的错误编码信息存储在条带上的正常块中。按照(信息数据:校验数据)=(813:244)的校验方式编码,能够检测出4.18%的数据错误。每次访问条带上的再利用块时,多个通道并行读取数据块和错误检测码块,并通过解码能够准确的获取再利用块的实际错误率。为保证近似数据的可靠性,固态盘控制器比较再利用块的实际错误率和近似应用的错误容忍率。如果再利用块的实际错误率小于满足近似应用的错误容忍率,则传递数据给上层应用,否则通过条带上的冗余信息进行恢复。
存储近似数据的条带是由相互独立的多种错误率的数据块组成的。当近似数据K的请求大小能够放入到一个条带时,以6个数据块组成的条带为例,条带包括一个高错误率(h)的再利用块存储条带冗余信息,两个低错误率(w)的再利用块和两个正常块存储近似数据以及一个正常块存储再利用块的编码信息。每次访问再利用块的近似数据时,解码相对应再利用块的编码信息能够获取该再利用块的实际错误率。当解码时,如果再利用块发生错误率偏差,既再利用块上的实际错误率大于所在队列的错误率,则利用条带上的冗余信息保证数据的可靠性。本发明考虑一个条带上的高错误率(h)和低错误率(w)的再利用块分别发生错误率偏差的情况。第一种是存储条带冗余校验信息的再利用块发生错误率偏差,其实际错误率为(h+o),该数据块发生错误率偏差并不影响该条带上近似数据的错误率。因此当该再利用块发生错误率偏差时,则标记为无效块等待被回收。若其错误率超过错误率上限W时,则标记为坏块。另一种情况是存储近似数据的低错误率(w)再利用块发生错误率偏差,其实际错误率为(w+o)。当实际错误率(w+o)小于或等于(w+h)时,则此条带上的近似数据的最大错误率为该再利用块的实际错误率(w+o)。当(w+o)大于(w+h)时,固态盘控制器利用该条带上的冗余校验信息,重新恢复该再利用的数据。由于条带上的校验数据块(错误率为w)和另一个再利用块(错误率为h)持久性的写入了一些错误数据,因此通过恢复得到的数据块也包含错误,但其最高错误率为(w+h)。在以上情况下,当为容忍错误率A的近似数据分配再利用块时,同一条带上的不同错误率的再利用块分配需要满足其错误率(w+h)<A,从而确保了近似数据的可靠性。
当近似数据的请求大小不满足一个条带时,可与常规数据F组成一个条带。常规数据由于需要完整的数据准确度,因此存储到条带上的正常块。除此之外常规数据可能是更新频繁的热数据,条带上的冗余校验块存储到正常块上,当常规数据更新时,只需更新条带的冗余校验块,而对近似数据不会构成影响。以6个数据块组成的条带为例,条带包括一个高错误率(h)和两个低错误率(w)的再利用块存储近似数据,三个正常块分别存储常规数据、条带冗余数据以及再利用块的编码信息。条带上的再利用块可能会发生错误率偏差,当高错误率(h)再利用块发生错误率偏差时,其实际错误率为(h+o)。若(h+o)小于或等于(2*w)时,该条带的最大错误率为(h+o)。当(h+o)大于(2*w)时,控制器通过读取条带上的其他数据块恢复此再利用块。恢复后数据的最大错误率为(2*w)。第二种情况是低错误率(w)再利用块发生错误率偏差,其实际错误率为(w+o)。当(w+o)小于或等于(w+h)时,该条带上的近似数据的最大错误率为(w+o)。当(w+o)大于(w+h)时,控制器恢复此再利用块,能够保证恢复后数据的最大错误率为(w+h)。由此可见,当为近似数据分配再利用块时,与第一种情况相似,当为一个条带分配不同错误率的再利用块时要满足其错误率(w+h)<A。
当一个条带上的再利用块发生错误率偏差时,通过冗余信息恢复出来的带有一定错误率的数据能够满足近似应用的错误率要求,但之后该条带上的其他再利用块同样会发生错误率偏差。为了限制近似数据的错误率,一旦条带发生恢复再利用块操作,则恢复后的近似数据和该条带的其他再利用块上的近似数据都转移到正常块上,并释放条带上的冗余和编码信息块。本专利预留一些正常块为替换再利用块和坏块。此外,如果当前缓存中的近似数据请求与常规数据请求不足以构成一个条带,则先将近似数据写入到正常块中,并在条带管理器中产生一个Partial-Stripe。当随后到来的数据能够与条带管理器中的Partial-Stripe形成一个完整的条带时,则从正常块中读出近似数据并计算冗余校验信息和再利用块数据编码,最后将该条带存储在多个通道中的相应数据块上并更新条带管理器。
在步骤S105中,固态盘控制器根据正常块、再利用块和坏块的数量比例执行动态垃圾回收管理。
针对闪存固态盘的青年阶段,对具有少量有效页的正常块进行垃圾回收操作,对再利用块不采取垃圾回收操作;
针对闪存固态盘的中年阶段,对再利用块进行错误率判断,垃圾回收器标记再利用块上删除的数据块为预无效,当条带上的所有存放数据的数据块被删除时,则标记对应条带上的所有数据块为无效,对标记为无效的数据块进行垃圾回收;对正常块,对标记为无效的数据块进行垃圾回收,若无效的数据块不足,则垃圾回收器选择有效页最少的预无效数据块或有效数据块进行垃圾回收;
针对闪存固态盘的老年阶段,垃圾回收器将无效的高错误率再利用块标记为坏块,当删除条带上为常规数据时,解除预无效标记,并将对应条带上的校验数据和常规数据从新计算并将新的条带校验信息更新到可用的正常块上,删除的数据块则被标记为无效,以加速闪存固态盘的替换时间,保证数据可靠性。
在本发明实施例中,当闪存固态盘处于青年阶段时,再利用块的数目比较少,近似数据和常规数据都存储在正常块上。在选取要回收数据块时,选取策略只挑选有较少有效页的正常块进行回收。由于再利用块上还没有存储近似数据,因此对再利用块不采取垃圾回收操作。
当闪存固态盘进入中年阶段时,近似数据将以条带的方式存储在再利用块上。当删除条带上的部分数据块时,由于条带上的数据与校验信息存在关联性,删除数据块需要更新校验信息从而带来额外的数据块操作,因此本发明不立刻回收删除的数据块,而是让垃圾回收器标记这些删除的数据块为预无效,这种方式称为”Light-Delete”。当条带上的所有存放数据的数据块被删除时,则标记该条带上的所有数据块为无效。除此之外,正常块垃圾回收时不需要进行错误率判断,而再利用块会根据其擦除次数周期性的做“写数据-读数据-比对”操作,所以在固态盘中年阶段对正常块和再利用块执行不同的垃圾回收策略。
根据数据块比例的变化,为了应对固态盘阶段变化对读写性能及寿命的影响,本发明在固态盘的生命周期中设计了动态垃圾回收策略。
对于正常块,先回收无效数据块,如果没有足够多的无效数据块,则垃圾回收器选择包括有效页最少的预无效和有效数据块中进行回收。正常块采用“eager”垃圾回收策略:当可用正常块小于阈值T1时,垃圾回收器回收所有的无效块;当可用正常块小于阈值T2时,垃圾回收器询问条带管理器,合并多个不完全条带,既存在数据块为预无效状态的条带,成为完整的条带。比如合并只有近似数据存储在正常块上的条带并按照本发明的第二部分生成新的条带,从而能够回收更多的正常块,并能够平衡多个通道间的空间利用率。对于合并存储在正常块的近似数据的条带时,生成新的条带时按照最小的错误容忍率将其存储在再利用块上。
对再利用区域采用“radical”垃圾回收策略:当可用的再利用块少于阈值B1时,垃圾回收器回收所有的无效再利用块;当可用的再利用块少于阈值B2时,需要回收更多的再利用块,由于再利用块上的数据块与条带中其他数据块有关联性,因此垃圾回收器询问条带管理器,优先选取条带上只有一个有效再利用块的近似数据,将此再利用块转移到正常块中。转移时判断该再利用块是否发生错误率偏差,若发生则利用条带冗余信息进行恢复,使其最大错误率为(w+h)。
当闪存固态盘进入老年阶段时,坏块和再利用块的比例越来越大,并且更多的再利用块发生错误率偏差引起条带恢复操作,从而触发更多的I/O操作,对数据的可靠性提出了更高的要求。因此,为了保证固态盘的性能和数据可靠性,此阶段的垃圾回收器提前标将把无效的高错误率再利用块记为坏块。除此之外,当删除条带上的常规数据时,关闭”Light-Delete”策略,将该条带上的校验数据和常规数据从新计算并将新的条带校验信息更新到可用的正常块上,删除的数据块则被标记为无效,这种“Heavy-Delete”方式能够加速固态盘的替换时间,以保证数据的可靠性。
本发明实施例通过继续使用带有错误单元的闪存数据块存储近似数据以延长闪存固态盘的使用寿命,并采用相互独立的多种错误率数据块组成的具有冗余能力的条带结构,进行数据存储管理,还通过对数据块动态分配并配合动态垃圾回收方式进一步提高了闪存固态盘的读写可靠性。
图2示出了本发明实施例提供的高寿命闪存固态盘的结构,为了便于说明,仅示出了与本发明相关的部分。
作为本发明一实施例,该闪存固态盘可以应用于近似计算应用中,比如图像分析和视频编解码数据等。对于计算机的图像应用,通常可以容忍大约20%的数据错误率,因此,通过存储设备读取的含有一定错误率的数据作为输入依然可以满足近似应用的需求,这样不仅能够减少存储开销,也能够在一定程度上通过降低校验码的强度以提升固态盘的读写性能。
该闪存固态盘1包括主机逻辑接口20、固态盘控制器10和闪存数据块(NADN闪存块)30:
固态盘控制器10包括磨损均衡器103,以及:
数据块分配器101,用于将闪存数据块30分类为正常块、再利用块和坏块,并定时更新,正常块提供百分百准确度的数据;数据块分配器101还将感知到的存储数据请求分类为准确数据请求和近似数据请求,并将准确数据请求存储的常规数据分配到正常块,将近似数据请求存储的近似数据分配到再利用块;
条带管理器104,用于通过冗余校验信息对存储数据进行存储管理;
垃圾回收器102,用于根据正常块、再利用块和坏块的数量比例执行动态垃圾回收管理,从而加速闪存固态盘的替换时间,提高寿命。
在本发明实施例中,当应用程序产生的数据访问请求通过主机逻辑接口20下发到闪存固态盘存储系统中时,数据块分配器101根据不同应用程序产生的数据进行不同的处理。一般应用程序生成的数据请求访问闪存的正常数据页上,而近似数据可以存储在含有错误单元的闪存数据块中,从而可以有效的增加闪存块的使用次数从而延长了整个闪存盘的使用寿命。
随着擦除次数的增加,存储近似数据的闪存数据块有更大的概率产生更多的错误单元,因此本发明利用相互独立的多种错误率数据块组成的具有冗余能力的条带技术(Redundant Array of Independent NAND with Hybrid Error-rate,RAINHE)来保障近似数据的可靠性,使得近似数据的最大错误率能够满足近似应用所能容忍的。
此外,随着擦除次数的增加等错误源的影响,不同类型的闪存数据块的数量是动态变化的,因此本发明基于闪存盘中不同类型的数据块数量提出了动态垃圾回收策略,从而在整个固态盘生命周期中保证提升固态盘的读写性能。
进一步地,数据块分配器10在未进行数据存储前,将闪存数据块标记为正常块;定时将正常块中由于数据存储、擦除导致不能被纠错码纠正位错误的闪存数据块标记为再利用块,再利用块的错误率小于最大错误阈值;定时将再利用块中由于数据存储、擦除导致错误率大于或等于最大错误阈值的闪存数据块标记为坏块。
在本发明实施例中,将NAND闪存块30分为三类:正常块、再利用块和坏块。正常块表示在ECC的保护下,能够提供百分百准确度的数据。随着擦除次数的增多,正常块中会产生一些不能由纠错码纠正的位错误。当数据块存在不可纠正的位错误时,且错误率小于阈值W(W为下文中的错误检测码所能检测到的最大错误率),则标记此数据块为再利用块。由于再利用数据块本身含有的错误位,因此利用此类型数据块存储数据时,错误数据将持久性的存储到闪存中。随着越来越多的擦除次数及数据滞留时间的影响,当再利用块的错误率超过设定的阈值W时,则标志此块为坏块,不会再被使用。
在本发明实施例中,由于常规数据和近似数据有不同的数据准确度要求,因此本发明根据不同的数据类型采取不同的管理策略。
常规数据请求则调用传统的系统调用接口。数据要求完整的数据准确度,因此只分配到正常块上。不同的近似数据有不同的错误容忍率,因此设备驱动层功能被提升使其能够传递近似数据的错误容忍率。然后固态盘控制器解析从设备驱动层传递下来的I/O请求,一个近似数据请求的接口定义如下:
Approx_read(Buf,LPN,Size,Tolerance);
Approx_write(Buf,LPN,Size,Tolerance)。
其中,Buf指向近似数据的内存地址,LPN为起始页号,Size是数据块的长度,Tolerance代表了近似数据的错误容忍率。Tolerance用32位浮点类型表示,其百分值为近似应用所能容忍的错误率。
比如当接口中的Tolerance参数为5.7,则代表近似应用能够容忍5.7%的错误率。近似数据由于能够容忍一定的错误率,所以优先分配到再利用块上。
本发明根据近似数据请求中的错误容忍度分配对应的再利用块,选取错误率小于近似数据请求的错误容忍度的再利用块,以保证近似数据的可靠性。
更进一步地,闪存固态盘的使用是一个阶段性变化的过程,根据正常块、再利用块和坏块的数量比例变化,闪存固态盘分为青年阶段、中年阶段和老年阶段;状态过程的转变是根据不用类型数据块的比例来触发的,垃圾回收器根据不同数据块的数量比例更新判断所处的阶段从而执行不同的垃圾回收策略来优化性能。Tn、Te和Tk是在固态盘存储系统中设定的三个阈值,用于判断固态盘所处的不同阶段。
青年阶段,Pn大于Tn,
Figure BDA0001395389030000141
Tn为第一阈值;
中年阶段,Pn小于或等于Tn,且Pe大于Te,
Figure BDA0001395389030000142
Te为第二阈值;
老年阶段,Pn小于Tk,Tk为第三阈值;
Nn为当前闪存固态盘中正常块的数量,Ne为当前闪存固态盘中再利用块的数量,Nsum为当前闪存固态盘中闪存数据块的总数,Pn+Pe<1。
在本发明实施例中,闪存固态盘处在青年阶段时,闪存固态盘主要由正常块构成,此时常规数据和近似数据都存储在正常块中,并且按照传统的地址映射和磨损均衡器103控制磨损均衡策略。随着擦除次数的增加以及磨损均衡的影响,存在一定错误率的再利用块会在固态盘中的各个通道均匀的出现。当再利用数据块比例增大时(Pe>Te),闪存固态盘进入中年阶段,此时近似数据优先存储到再利用块上,以延长固态盘使用寿命和提高闪存利用率。为了保障近似数据的可靠性,本专利设计了相互独立的多种错误率数据块组成的具有冗余能力的条带技术(RAINHE)。
进一步地,固态盘控制器还可以包括再利用块管理器105和坏块管理器106;
再利用块管理器105按照再利用块的错误率的大小划分高错误率和低错误率两种数据块,每个闪存通道上利用先进先出的链表组织管理可用的再利用块;
在存储近似数据时,条带管理器104从多个通道中的链表中选取相对应错误率的再利用块组成条带,并记录条带信息;
对于具有不同错误率的再利用块,通过“写数据-读数据-比对”的方式获得准确的错误率并按照先进先出的方式放入到对应错误率的再利用块链表中。
在本发明实施例中,再利用块按照其错误率的大小划分高错误率和低错误率两种数据块,每个闪存通道上利用先进先出的链表组织管理可用的再利用块。当存储近似数据时,条带管理器从多个通道中的链表中选取相对应错误率的再利用块组成条带,并记录条带信息。
不同的再利用块有不同的错误率,通过“写数据-读数据-比对”的方式获得准确的错误率并按照先进先出的方式放入到对应错误率的再利用块链表中。闪存固态盘的每个通道维护低错误率和高错误率两个队列。闪存数据块发生错误是由多种原因造成的,包括块擦除操作、数据驻留时间和存储单元间的影响。其中数据块的错误率与擦除操作的关系呈现O(N2)的趋势(N表示擦除次数),因此擦除次数多的再利用块产生更多位错误的概率要远大于擦除次数少的再利用块,其错误率的增量会越来越大。如果每次回收再利用块时都按照“写数据-读数据-比对”的方式获得再利用块的准确错误率会严重影响固态盘性能,本发明对于再利用块每擦除500次按照“写数据-读数据-比对”的方式获得其准确错误率并加入到对应的链表中,当错误率超过阈值W时,则标记为坏块。
由于擦除操作、驻留时间等闪存单元错误源的影响,在获得准确错误率的周期中一些再利用块的实际错误率可能会超过了其所在队列的错误率,发生错误率偏差。尤其是当再利用块的实际错误率超过近似数据所能容忍的错误率时,就对近似数据带来了可靠性风险。基于此,本发明应用相互独立的多种错误率数据块组成的具有冗余能力的条带技术来保证近似数据的可靠性。
为了提高空间利用率和保证数据可靠性,当存储近似数据时,条带由多个不同错误率的再利用块和正常块混合组成。当条带中的再利用块发生错误率偏差时,利用条带上的冗余信息修复该再利用块。
值得注意的是,本发明仅考虑单个再利用数据块发生错误率偏差的情况,因此每个条带包含一个冗余信息块。
进一步地,条带管理器104当发生错误率偏差时,通过冗余校验信息恢复再利用块上的数据,以保证近似数据的可靠性。
在本发明实施例中,对于数据出存储管理,对存储在再利用块上的近似数据,当发生错误率偏差时,本发明利用条带上的冗余校验信息恢复再利用块上的数据,以保证近似数据的可靠性。
条带是由不同通道上的不同错误率的再利用块和正常块组成的。条带在保证近似数据的可靠性的同时,也能够同时响应近似数据和常规数据的请求。根据第一部分分析,由于再利用数据块发生错误偏差的可能性要远大于正常块,因此本发明只考虑条带中的再利用块发生错误偏差对近似数据的可靠性影响。近似数据和常规数据请求分别用K和F表示,其中近似数据的错误率容忍度为A。
当近似应用访问条带中的再利用块时,再利用块的实际数据错误率由条带上的错误检测码判断。准确识别较高的再利用块比特错误率需要更多的预留空间存储错误校验码,考虑到现有闪存芯片预留空间的限制,本专利多个再利用块的错误编码信息存储在条带上的正常块中。按照(信息数据:校验数据)=(813:244)的校验方式编码,能够检测出4.18%的数据错误。每次访问条带上的再利用块时,多个通道并行读取数据块和错误检测码块,并通过解码能够准确的获取再利用块的实际错误率。为保证近似数据的可靠性,固态盘控制器比较再利用块的实际错误率和近似应用的错误容忍率。如果再利用块的实际错误率小于满足近似应用的错误容忍率,则传递数据给上层应用,否则通过条带上的冗余信息进行恢复。
存储近似数据的条带是由相互独立的多种错误率的数据块组成的。当近似数据K的请求大小能够放入到一个条带时,以6个数据块组成的条带为例,条带包括一个高错误率(h)的再利用块存储条带冗余信息,两个低错误率(w)的再利用块和两个正常块存储近似数据以及一个正常块存储再利用块的编码信息。每次访问再利用块的近似数据时,解码相对应再利用块的编码信息能够获取该再利用块的实际错误率。当解码时,如果再利用块发生错误率偏差,既再利用块上的实际错误率大于所在队列的错误率,则利用条带上的冗余信息保证数据的可靠性。本发明考虑一个条带上的高错误率(h)和低错误率(w)的再利用块分别发生错误率偏差的情况。第一种是存储条带冗余校验信息的再利用块发生错误率偏差,其实际错误率为(h+o),该数据块发生错误率偏差并不影响该条带上近似数据的错误率。因此当该再利用块发生错误率偏差时,则标记为无效块等待被回收。若其错误率超过错误率上限W时,则标记为坏块。另一种情况是存储近似数据的低错误率(w)再利用块发生错误率偏差,其实际错误率为(w+o)。当实际错误率(w+o)小于或等于(w+h)时,则此条带上的近似数据的最大错误率为该再利用块的实际错误率(w+o)。当(w+o)大于(w+h)时,固态盘控制器利用该条带上的冗余校验信息,重新恢复该再利用的数据。由于条带上的校验数据块(错误率为w)和另一个再利用块(错误率为h)持久性的写入了一些错误数据,因此通过恢复得到的数据块也包含错误,但其最高错误率为(w+h)。在以上情况下,当为容忍错误率A的近似数据分配再利用块时,同一条带上的不同错误率的再利用块分配需要满足其错误率(w+h)<A,从而确保了近似数据的可靠性。
当近似数据的请求大小不满足一个条带时,可与常规数据F组成一个条带。常规数据由于需要完整的数据准确度,因此存储到条带上的正常块。除此之外常规数据可能是更新频繁的热数据,条带上的冗余校验块存储到正常块上,当常规数据更新时,只需更新条带的冗余校验块,而对近似数据不会构成影响。以6个数据块组成的条带为例,条带包括一个高错误率(h)和两个低错误率(w)的再利用块存储近似数据,三个正常块分别存储常规数据、条带冗余数据以及再利用块的编码信息。条带上的再利用块可能会发生错误率偏差,当高错误率(h)再利用块发生错误率偏差时,其实际错误率为(h+o)。若(h+o)小于或等于(2*w)时,该条带的最大错误率为(h+o)。当(h+o)大于(2*w)时,控制器通过读取条带上的其他数据块恢复此再利用块。恢复后数据的最大错误率为(2*w)。第二种情况是低错误率(w)再利用块发生错误率偏差,其实际错误率为(w+o)。当(w+o)小于或等于(w+h)时,该条带上的近似数据的最大错误率为(w+o)。当(w+o)大于(w+h)时,控制器恢复此再利用块,能够保证恢复后数据的最大错误率为(w+h)。由此可见,当为近似数据分配再利用块时,与第一种情况相似,当为一个条带分配不同错误率的再利用块时要满足其错误率(w+h)<A。
当一个条带上的再利用块发生错误率偏差时,通过冗余信息恢复出来的带有一定错误率的数据能够满足近似应用的错误率要求,但之后该条带上的其他再利用块同样会发生错误率偏差。为了限制近似数据的错误率,一旦条带发生恢复再利用块操作,则恢复后的近似数据和该条带的其他再利用块上的近似数据都转移到正常块上,并释放条带上的冗余和编码信息块。本专利预留一些正常块为替换再利用块和坏块。此外,如果当前缓存中的近似数据请求与常规数据请求不足以构成一个条带,则先将近似数据写入到正常块中,并在条带管理器中产生一个Partial-Stripe。当随后到来的数据能够与条带管理器中的Partial-Stripe形成一个完整的条带时,则从正常块中读出近似数据并计算冗余校验信息和再利用块数据编码,最后将该条带存储在多个通道中的相应数据块上并更新条带管理器。
进一步地,垃圾回收器102针对闪存固态盘的青年阶段,对具有少量有效页的正常块进行垃圾回收操作,对再利用块不采取垃圾回收操作;
垃圾回收器102针对闪存固态盘的中年阶段,对再利用块进行错误率判断,垃圾回收器标记再利用块上删除的数据块为预无效,当条带上的所有存放数据的数据块被删除时,则标记对应条带上的所有数据块为无效,对标记为无效的数据块进行垃圾回收;对正常块,对标记为无效的数据块进行垃圾回收,若无效的数据块不足,则垃圾回收器选择有效页最少的预无效数据块或有效数据块进行垃圾回收;
垃圾回收器102针对闪存固态盘的老年阶段,垃圾回收器将无效的高错误率再利用块标记为坏块,当删除条带上为常规数据时,解除预无效标记,并将对应条带上的校验数据和常规数据从新计算并将新的条带校验信息更新到可用的正常块上,删除的数据块则被标记为无效,以加速闪存固态盘的替换时间,保证数据可靠性。
在本发明实施例中,当闪存固态盘处于青年阶段时,再利用块的数目比较少,近似数据和常规数据都存储在正常块上。在选取要回收数据块时,选取策略只挑选有较少有效页的正常块进行回收。由于再利用块上还没有存储近似数据,因此对再利用块不采取垃圾回收操作。
当闪存固态盘进入中年阶段时,近似数据将以条带的方式存储在再利用块上。当删除条带上的部分数据块时,由于条带上的数据与校验信息存在关联性,删除数据块需要更新校验信息从而带来额外的数据块操作,因此本发明不立刻回收删除的数据块,而是让垃圾回收器标记这些删除的数据块为预无效,这种方式称为”Light-Delete”。当条带上的所有存放数据的数据块被删除时,则标记该条带上的所有数据块为无效。除此之外,正常块垃圾回收时不需要进行错误率判断,而再利用块会根据其擦除次数周期性的做“写数据-读数据-比对”操作,所以在固态盘中年阶段对正常块和再利用块执行不同的垃圾回收策略。
根据数据块比例的变化,为了应对固态盘阶段变化对读写性能及寿命的影响,本发明在固态盘的生命周期中设计了动态垃圾回收策略。
对于正常块,先回收无效数据块,如果没有足够多的无效数据块,则垃圾回收器选择包括有效页最少的预无效和有效数据块中进行回收。正常块采用“eager”垃圾回收策略:当可用正常块小于阈值T1时,垃圾回收器回收所有的无效块;当可用正常块小于阈值T2时,垃圾回收器询问条带管理器,合并多个不完全条带,既存在数据块为预无效状态的条带,成为完整的条带。比如合并只有近似数据存储在正常块上的条带并按照本发明的第二部分生成新的条带,从而能够回收更多的正常块,并能够平衡多个通道间的空间利用率。对于合并存储在正常块的近似数据的条带时,生成新的条带时按照最小的错误容忍率将其存储在再利用块上。
对再利用区域采用“radical”垃圾回收策略:当可用的再利用块少于阈值B1时,垃圾回收器回收所有的无效再利用块;当可用的再利用块少于阈值B2时,需要回收更多的再利用块,由于再利用块上的数据块与条带中其他数据块有关联性,因此垃圾回收器询问条带管理器,优先选取条带上只有一个有效再利用块的近似数据,将此再利用块转移到正常块中。转移时判断该再利用块是否发生错误率偏差,若发生则利用条带冗余信息进行恢复,使其最大错误率为(w+h)。
当闪存固态盘进入老年阶段时,坏块和再利用块的比例越来越大,并且更多的再利用块发生错误率偏差引起条带恢复操作,从而触发更多的I/O操作,对数据的可靠性提出了更高的要求。因此,为了保证固态盘的性能和数据可靠性,此阶段的垃圾回收器提前标将把无效的高错误率再利用块记为坏块。除此之外,当删除条带上的常规数据时,关闭”Light-Delete”策略,将该条带上的校验数据和常规数据从新计算并将新的条带校验信息更新到可用的正常块上,删除的数据块则被标记为无效,这种“Heavy-Delete”方式能够加速固态盘的替换时间,以保证数据的可靠性。
本发明实施例通过继续使用带有错误单元的闪存数据块存储近似数据以延长闪存固态盘的使用寿命,并采用相互独立的多种错误率数据块组成的具有冗余能力的条带结构,进行数据存储管理,还通过对数据块动态分配并配合动态垃圾回收方式进一步提高了闪存固态盘的读写可靠性。
本发明实施例通过继续使用带有错误单元的闪存数据块存储近似数据以延长闪存固态盘的使用寿命,并采用相互独立的多种错误率数据块组成的具有冗余能力的条带结构,进行数据存储管理,还通过对数据块动态分配并配合动态垃圾回收方式进一步提高了闪存固态盘的读写可靠性。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种提高闪存固态盘寿命的方法,其特征在于,所述方法包括下述步骤:
将闪存数据块分类为正常块、再利用块和坏块,并定时更新,所述正常块提供百分百准确度的数据;
将感知到的存储数据请求分类为准确数据请求和近似数据请求;
将所述准确数据请求存储的常规数据分配到所述正常块,将所述近似数据请求存储的近似数据分配到再利用块;
通过冗余校验信息对存储数据进行存储管理;
根据所述正常块、所述再利用块和所述坏块的数量比例执行动态垃圾回收管理,从而加速闪存固态盘的替换时间,提高寿命;
所述方法还包括:根据所述正常块、所述再利用块和所述坏块的数量比例变化,所述闪存固态盘分为青年阶段、中年阶段和老年阶段;
所述青年阶段,Pn大于Tn,
Figure FDA0002662725520000011
Tn为第一阈值;
所述中年阶段,Pn小于或等于Tn,且Pe大于Te,
Figure FDA0002662725520000012
Te为第二阈值;
所述老年阶段,Pn小于Tk,所述Tk为第三阈值;
Nn为当前闪存固态盘中正常块的数量,Ne为当前闪存固态盘中再利用块的数量,Nsum为当前闪存固态盘中闪存数据块的总数,Pn+Pe<1;
针对所述闪存固态盘的青年阶段,对具有少量有效页的正常块进行垃圾回收操作,对再利用块不采取垃圾回收操作;
针对所述闪存固态盘的中年阶段,对再利用块进行错误率判断,垃圾回收器标记再利用块上删除的数据块为预无效,当条带上的所有存放数据的数据块被删除时,则标记对应条带上的所有数据块为无效,对标记为无效的数据块进行垃圾回收;对正常块,对标记为无效的数据块进行垃圾回收,若无效的数据块不足,则垃圾回收器选择有效页最少的预无效数据块或有效数据块进行垃圾回收;
针对所述闪存固态盘的老年阶段,垃圾回收器将无效的高错误率再利用块标记为坏块,当删除条带上为常规数据时,解除预无效标记,并将对应条带上的校验数据和常规数据从新计算并将新的条带校验信息更新到可用的正常块上,删除的数据块则被标记为无效,以加速所述闪存固态盘的替换时间,保证数据可靠性。
2.如权利要求1所述的方法,其特征在于,所述将闪存数据块分类为正常块、再利用块和坏块的具体步骤为:
在未进行数据存储前,将闪存数据块标记为正常块;
定时将所述正常块中由于数据存储、擦除导致不能被纠错码纠正位错误的闪存数据块标记为再利用块,所述再利用块的错误率小于最大错误阈值;
定时将所述再利用块中由于数据存储、擦除导致错误率大于或等于最大错误阈值的闪存数据块标记为坏块。
3.如权利要求1所述的方法,其特征在于,通过冗余校验信息对再利用块上存储数据进行存储管理的步骤具体为:
当发生错误率偏差时,通过条带管理器上的冗余校验信息恢复所述再利用块上的数据,以保证近似数据的可靠性。
4.如权利要求3所述的方法,其特征在于,再利用块管理器按照所述再利用块错误率的大小划分高错误率和低错误率两种数据块,每个闪存通道上利用先进先出的链表组织管理可用的再利用块;
在存储所述近似数据时,所述条带管理器从多个通道中的链表中选取相对应错误率的再利用块组成条带,并记录条带信息;
对于具有不同错误率的再利用块,通过“写数据-读数据-比对”的方式获得准确的错误率并按照先进先出的方式放入到对应错误率的再利用块链表中。
5.一种高寿命闪存固态盘,其特征在于,所述闪存固态盘包括主机逻辑接口、固态盘控制器和闪存数据块,所述固态盘控制器包括:
数据块分配器,用于将闪存数据块分类为正常块、再利用块和坏块,并定时更新,所述正常块提供百分百准确度的数据;所述数据块分配器还将感知到的存储数据请求分类为准确数据请求和近似数据请求,并将所述准确数据请求存储的常规数据分配到所述正常块,将所述近似数据请求存储的近似数据分配到再利用块;
条带管理器,用于通过冗余校验信息对存储数据进行存储管理;
垃圾回收器,用于根据所述正常块、所述再利用块和所述坏块的数量比例执行动态垃圾回收管理,从而加速闪存固态盘的替换时间,提高寿命;
所述垃圾回收器根据所述正常块、所述再利用块和所述坏块的数量比例变化,所述闪存固态盘分为青年阶段、中年阶段和老年阶段;
所述青年阶段,Pn大于Tn,
Figure FDA0002662725520000031
Tn为第一阈值;
所述中年阶段,Pn小于或等于Tn,且Pe大于Te,
Figure FDA0002662725520000032
Te为第二阈值;
所述老年阶段,Pn小于Tk,所述Tk为第三阈值;
Nn为当前闪存固态盘中正常块的数量,Ne为当前闪存固态盘中再利用块的数量,Nsum为当前闪存固态盘中闪存数据块的总数,Pn+Pe<1;
所述垃圾回收器针对所述闪存固态盘的青年阶段,对具有少量有效页的正常块进行垃圾回收操作,对再利用块不采取垃圾回收操作;
所述垃圾回收器针对所述闪存固态盘的中年阶段,对再利用块进行错误率判断,垃圾回收器标记再利用块上删除的数据块为预无效,当条带上的所有存放数据的数据块被删除时,则标记对应条带上的所有数据块为无效,对标记为无效的数据块进行垃圾回收;对正常块,对标记为无效的数据块进行垃圾回收,若无效的数据块不足,则垃圾回收器选择有效页最少的预无效数据块或有效数据块进行垃圾回收;
所述垃圾回收器针对所述闪存固态盘的老年阶段,垃圾回收器将无效的高错误率再利用块标记为坏块,当删除条带上为常规数据时,解除预无效标记,并将对应条带上的校验数据和常规数据从新计算并将新的条带校验信息更新到可用的正常块上,删除的数据块则被标记为无效,以加速所述闪存固态盘的替换时间,保证数据可靠性。
6.如权利要求5所述的闪存固态盘,其特征在于,所述数据块分配器在未进行数据存储前,将闪存数据块标记为正常块;定时将所述正常块中由于数据存储、擦除导致不能被纠错码纠正位错误的闪存数据块标记为再利用块,所述再利用块的错误率小于最大错误阈值;定时将所述再利用块中由于数据存储、擦除导致错误率大于或等于最大错误阈值的闪存数据块标记为坏块。
7.如权利要求5所述的闪存固态盘,其特征在于,所述条带管理器当发生错误率偏差时,通过冗余校验信息恢复所述再利用块上的数据,以保证近似数据的可靠性。
8.如权利要求7所述的闪存固态盘,其特征在于,所述固态盘控制器还包括再利用块管理器;
所述再利用块管理器按照所述再利用块的错误率的大小划分高错误率和低错误率两种数据块,每个闪存通道上利用先进先出的链表组织管理可用的再利用块;
在存储所述近似数据时,所述条带管理器从多个通道中的链表中选取相对应错误率的再利用块组成条带,并记录条带信息;
对于具有不同错误率的再利用块,通过“写数据-读数据-比对”的方式获得准确的错误率并按照先进先出的方式放入到对应错误率的再利用块链表中。
CN201710772988.7A 2017-08-31 2017-08-31 一种提高闪存固态盘寿命的方法及高寿命闪存固态盘 Active CN109426622B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710772988.7A CN109426622B (zh) 2017-08-31 2017-08-31 一种提高闪存固态盘寿命的方法及高寿命闪存固态盘

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710772988.7A CN109426622B (zh) 2017-08-31 2017-08-31 一种提高闪存固态盘寿命的方法及高寿命闪存固态盘

Publications (2)

Publication Number Publication Date
CN109426622A CN109426622A (zh) 2019-03-05
CN109426622B true CN109426622B (zh) 2020-11-24

Family

ID=65505480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710772988.7A Active CN109426622B (zh) 2017-08-31 2017-08-31 一种提高闪存固态盘寿命的方法及高寿命闪存固态盘

Country Status (1)

Country Link
CN (1) CN109426622B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309078B (zh) * 2019-07-02 2021-07-02 北京计算机技术及应用研究所 一种全闪存储阵列的主机与固态盘协同垃圾回收方法
CN111767010B (zh) * 2020-06-30 2023-03-14 杭州海康威视系统技术有限公司 数据处理方法、装置、设备及存储介质
CN112347001B (zh) * 2020-10-13 2023-09-26 深圳市宏旺微电子有限公司 闪存垃圾回收的校验方法、装置及电子设备
CN114442905A (zh) * 2020-10-31 2022-05-06 华为技术有限公司 数据存储方法、装置、设备及存储介质
CN113742255B (zh) * 2021-08-26 2023-08-08 合肥康芯威存储技术有限公司 一种无效标记命令的处理方法、系统及数据存储设备
CN114281271B (zh) * 2022-03-07 2022-05-13 北京得瑞领新科技有限公司 判断nand闪存数据可靠性的方法、存储介质及存储设备
CN114822664A (zh) 2022-05-12 2022-07-29 合肥兆芯电子有限公司 基于数据优先级的风险评估方法、存储装置及控制电路
CN116880777B (zh) * 2023-09-07 2023-12-01 合肥康芯威存储技术有限公司 一种内嵌式存储器及闪存恢复方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101110058A (zh) * 2006-07-20 2008-01-23 何纯淳 闪速存储器的回收方法
CN102253899A (zh) * 2011-07-28 2011-11-23 张岭 一种提高闪存芯片存储单元使用效率的方法
CN102347082A (zh) * 2011-05-30 2012-02-08 福州思迈特数码科技有限公司 录音/录像设备的flash坏块重用方法
CN104881370A (zh) * 2015-05-11 2015-09-02 中国人民解放军国防科学技术大学 协同使用纠删码和纠错码的可靠闪存存储系统构建方法
EP3002680A1 (en) * 2014-09-30 2016-04-06 EMC Corporation Method and system for improving flash storage utilization by predicting bad m-pages

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150020385A (ko) * 2013-08-13 2015-02-26 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101110058A (zh) * 2006-07-20 2008-01-23 何纯淳 闪速存储器的回收方法
CN102347082A (zh) * 2011-05-30 2012-02-08 福州思迈特数码科技有限公司 录音/录像设备的flash坏块重用方法
CN102253899A (zh) * 2011-07-28 2011-11-23 张岭 一种提高闪存芯片存储单元使用效率的方法
EP3002680A1 (en) * 2014-09-30 2016-04-06 EMC Corporation Method and system for improving flash storage utilization by predicting bad m-pages
CN104881370A (zh) * 2015-05-11 2015-09-02 中国人民解放军国防科学技术大学 协同使用纠删码和纠错码的可靠闪存存储系统构建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种多通道并行固态存储系统的设计与实现;彭军等;《计算机工程》;20131231;第39卷(第12期);第40-44页 *

Also Published As

Publication number Publication date
CN109426622A (zh) 2019-03-05

Similar Documents

Publication Publication Date Title
CN109426622B (zh) 一种提高闪存固态盘寿命的方法及高寿命闪存固态盘
CN109901788B (zh) 存储器控制器、存储器系统及控制方法
US10204042B2 (en) Memory system having persistent garbage collection
TWI399644B (zh) 非揮發記憶體區塊管理方法
CN109496300B (zh) 一种存储介质垃圾回收方法、存储介质和程序产品
US20140075100A1 (en) Memory system, computer system, and memory management method
US20130227246A1 (en) Management information generating method, logical block constructing method, and semiconductor memory device
US20100332726A1 (en) Structure and method for managing writing operation on mlc flash memory
CN110347613B (zh) 多租户固态盘中实现raid的方法、控制器及多租户固态盘
US11762567B2 (en) Runtime memory allocation to avoid and delay defect effects in memory sub-systems
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
CN109471594B (zh) 一种mlc闪存读写方法
US11036429B2 (en) Memory control method, memory storage device and memory control circuit unit to determine a source block using interleaving information
CN105204783A (zh) 一种基于数据生存期的固态盘垃圾回收方法
CN111104045A (zh) 一种存储控制方法、装置、设备和计算机存储介质
CN109947589B (zh) 一种闪存中近似数据存储方法
CN108563586B (zh) 一种分离固态盘中垃圾回收数据与用户数据的方法
CN103106148B (zh) 区块管理方法、存储器控制器与存储器存储装置
CN112835534B (zh) 一种基于存储阵列数据访问的垃圾回收优化方法及装置
US11550502B2 (en) Apparatus and method for controlling multi-stream program operations performed in a memory block included in a memory system
TWI521346B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
CN114579040A (zh) 用于保持在存储器系统中存储的数据的设备和方法
US20150186058A1 (en) Data storing method, memory control circuit unit and memory storage apparatus
US11275651B2 (en) Memory controller and flash memory system
CN106021124B (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
GR01 Patent grant
GR01 Patent grant