CN107748722A - 一种保证固态硬盘中数据持续性的自适应数据刷新方法 - Google Patents
一种保证固态硬盘中数据持续性的自适应数据刷新方法 Download PDFInfo
- Publication number
- CN107748722A CN107748722A CN201710914680.1A CN201710914680A CN107748722A CN 107748722 A CN107748722 A CN 107748722A CN 201710914680 A CN201710914680 A CN 201710914680A CN 107748722 A CN107748722 A CN 107748722A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- memory page
- page
- data
- storage time
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
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)
- Read Only Memory (AREA)
Abstract
本发明公开了一种保证固态硬盘中数据持续性的自适应数据刷新方法,属于固态硬盘存储技术领域。该方法根据闪存页的比特错误数对闪存页进行分类并设定各类闪存页的继续存放时间,根据一个闪存块中各类闪存页的数量,估算该闪存块的数据可靠持续存放时间的实际值T;根据一个闪存页所属的类,在该闪存页存放时间达到T之后,推迟一段该闪存页对应的继续存放时间后再对该闪存页实施刷新。本发明能自动根据固态硬盘的比特错误情况估算数据可靠持续存放时间,并确定不同类别闪存页需要发起刷新操作的时机;由于对不同类闪存页发起刷新操作的时机不同,避免同一时间有过多页被刷新导致的性能下降,同时可以降低闪存页被刷新的频率,延长闪存的使用寿命。
Description
技术领域
本发明属于固态硬盘存储技术领域,更具体地,涉及一种保证固态硬盘中数据完整性的自适应数据刷新方法。
背景技术
基于闪存的固态硬盘存储技术与传统磁盘存储相比具有高吞吐率,低延时以及低功耗的优点,因此已经被广泛应用到各种类型的计算机中。近几年来,为了降低固态硬盘的价格,厂商陆续开发出了拥有高存储密度的闪存技术——Multi-Level Cell(MLC)。MLC技术通过在一个闪存单元中存储2个乃至多个比特信息,达到存储容量成倍增长的目的。然而,引入MLC技术也带来了一个问题,就是数据写入后在闪存中的可靠持续存放时间(retention time,RT)较短,换句话说,这些闪存的非易失性较弱。传统固态硬盘的设计完全依赖闪存的非易失性保证数据的持续性,但是在引入只具有弱非易失性的MLC闪存后,这种设计无法继续保证数据的持续性。因此有必要在固态硬盘中引入新的技术以保证数据持续性。
已有研究提出周期性数据刷新技术,通过周期性地把数据从闪存中读出并重新写入,达到保证数据持续性的效果。但是这种技术方案存在着以下缺陷:发起刷新的周期需要预先设定,而一旦预设的刷新周期长于闪存的数据可靠持续存放时间,就有可能导致数据丢失;因而刷新周期需要预设为一个显著短于闪存数据可靠持续存放时间的值,但这样就导致固态硬盘需要频繁刷新其存储的数据,降低固态硬盘的性能,同时浪费闪存的擦写次数,降低使用寿命。
发明内容
针对现有技术的以上缺陷或改进需求,本发明旨在提供一种数据刷新方法,能够预估可靠持续存放时间的实际值,并对固态硬盘中的闪存页进行分类、分级刷新,从而提升固态硬盘的性能及寿命,提升数据存放可靠性。
为了实现上述目的,本发明提供了一种保证固态硬盘中数据持续性的自适应数据刷新方法,根据闪存页的比特错误数对闪存页进行分类,并设定各类闪存页的继续存放时间,根据一个闪存块中各类闪存页的数量,估算该闪存块的数据可靠持续存放时间的实际值T;根据一个闪存页所属的类,在该闪存页存放时间达到T之后,推迟一段该闪存页对应的继续存放时间后再对该闪存页实施刷新。
进一步地,该方法包括如下步骤:
步骤1:当一个闪存块被写入数据后,记录该闪存块中数据的存放时间;
步骤2:为该闪存块初始化一个数据可靠持续存储时间的估计值Thypo;
步骤3:根据闪存页的比特错误数对闪存页进行分类,并设定各类闪存页的继续存放时间,根据一个闪存块中各类闪存页数量的概率分布函数以及各类闪存页的实际数量,校验并调整Thypo,直至校验结果为T=Thypo,此时Thypo的取值即为该闪存块的数据可靠持续存放时间的实际值T;
步骤4:等待该闪存块中数据的存放时间达到T;
步骤5:根据各类闪存页对应的继续存放时间对该闪存块进行刷新;
步骤6:数据刷新完成,回收该闪存块。
进一步地,步骤3包括如下子步骤:
步骤3-1:当该闪存块的存放时间达到Thypo/r时,检查该闪存块中各个闪存页的比特错误数,根据各闪存页的比特错误数,对各闪存页进行分类并统计各类闪存页的数量,设定各类闪存页的继续存放时间;r是一个预设的不小于1的常数;
步骤3-2:根据各类闪存页数量的概率分布函数以及各类闪存页的实际数量,通过使用统计学的假设检验方法检验Thypo的正确性;如果检验认为Thypo低于T,转入步骤3-3;如果检验不否定Thypo的假设,则设定T=Thypo,转入步骤3-4;如果检验认为Thypo高于T,则设定T=Thypo/r,转入步骤3-4;
步骤3-3:把Thypo增大至原值的r倍,转入步骤3-1;
步骤3-4:估算结束,得到该闪存块数据可靠持续存放时间的实际值T。
步骤3-1:当该闪存块的存放时间达到Thypo/r时,检查该闪存块中各个闪存页的比特错误数,根据各闪存页的比特错误数,对各闪存页进行分类并统计各类闪存页的数量,设定各类闪存页的继续存放时间;r是一个预设的不小于1的常数;
步骤3-2:根据各类闪存页数量的概率分布函数以及各类闪存页的实际数量,通过使用统计学的假设检验方法检验Thypo的正确性;如果检验认为Thypo低于T,转入步骤3-3;如果检验不否定Thypo的假设,则设定T=Thypo,转入步骤3-4;如果检验认为Thypo高于T,则设定T=Thypo/r,转入步骤3-4;
步骤3-3:把Thypo增大至原值的r倍,转入步骤3-1;
步骤3-4:估算结束,得到该闪存块数据可靠持续存放时间的实际值T。
进一步地,步骤3-1中对各闪存页进行分类的方法如下:把各闪存页按照比特错误数从多到少划分为N类,其中第i类页类闪存页有不小于li个比特错误,可以在存放时间达到T后继续存放Ti时间,第j类闪存页有不小于lj个比特错误,可以在存放时间达到T后继续存放Tj时间,而且,当i<j时,li>lj,Ti<Tj,i、j为不大于N的正整数;并且,
设第i类闪存页的比特错误数为l,则有:
进一步地,确定各类闪存页的比特错误数及划分标准的方法如下:
设某个闪存页使用纠错码(n,k,d)进行差错校验,其中n,k和d分别是该闪存页的总比特数、有效数据比特数以及可容错比特数;
设可靠性要求为UBERreq,即一个闪存页的不可纠正的比特错误率UBER应不高于UBERreq;
不可纠正的比特错误率UBER与比特错误率RBER的关系如下:
式中,a为该一个闪存页在T时段内的比特错误数;
根据上式求出RBER在到达存放时间T时的阈值RBERthr;
RBER与数据存放时间t的关系如下:
式中,m为常数,T是该闪存页的数据可靠持续存放时间的实际值;
对于第i类闪存页,在Ti时间段时段内的不可纠正比特错误率UBERext<UBERreq,其中,
RBERext=RBER(T+Ti)-RBER(T),
式中,l是该第i类闪存页在Ti时段内的比特错误数,
RBER(T+Ti)是该第i类闪存页在T+Ti时段内的比特错误率,
RBER(T)是该第i类闪存页在T时段内的比特错误率;
调整l的值使得UBERext≤UBERreq,得到第i类闪存页的划分标准li。
进一步地,步骤5包括如下子步骤:
步骤5-1:从目标闪存块中取出一个未检查的闪存页,检查该闪存页的比特错误数;
步骤5-2:根据闪存页的比特错误数判断闪存页的类别,按照比特错误数多少对各类闪存页进行排序,比特错误数越多,刷新优先级越高;为每个闪存页按照所属类别设置并存放一个标记位flag;第i类闪存页的flag设置为i,i≤N,N为总类别数,i=1时比特错误数最多,刷新优先级最高;
步骤5-3:若还有未检查的闪存页,转入步骤5-1,否则转入步骤5-4;
步骤5-4:设定计数器i=1,i≤N,从刷新优先级最高的闪存页开始,按照刷新优先级递减的顺序开始刷新;
步骤5-5:等待计时器记录的数据存放时间达到T+Ti,其中,Ti为第i类闪存页对应的继续存放时间;
步骤5-6:把flag=i的闪存页读出并写入到新的闪存页中,原来的闪存页标记为无效;
步骤5-7:判断闪存块中是否所有闪存页都被标记为无效,如是,转入步骤5-8;否则,令i=i+1,转入步骤5-5;
步骤5-8:刷新完成。
进一步地,i=1时Ti=T1=0,步骤5包括如下子步骤:
步骤5-1:从目标闪存块中取出一个未检查的闪存页,检查该闪存页的比特错误数;
步骤5-2:根据闪存页的比特错误数判断闪存页的类别,按照比特错误数多少对各类闪存页进行排序,比特错误数越多,刷新优先级越高;由于T1=0,第1类闪存页立即刷新;为剩余每个闪存页按照所属类别设置并存放一个标记位flag,第i类闪存页的flag设置为i,2≤i≤N,N为总类别数;
步骤5-3:若还有未检查的闪存页,转入步骤5-1,否则转入步骤5-4;
步骤5-4:设定计数器i=2,i≤N,从刷新优先级最高的闪存页开始,按照刷新优先级递减的顺序开始刷新;
步骤5-5:等待计时器记录的数据存放时间达到T+Ti,其中,Ti为第i类闪存页对应的继续存放时间;
步骤5-6:把flag=i的闪存页读出并写入到新的闪存页中,原来的闪存页标记为无效;
步骤5-7:判断闪存块中是否所有闪存页都被标记为无效,如是,转入步骤5-8;否则,令i=i+1,转入步骤5-5;
步骤5-8:刷新完成。
进一步地,步骤3-1中,
设某个闪存页使用纠错码(n,k,d)进行差错校验,其中n,k和d分别是该闪存页的总比特数、有效数据比特数以及可容错比特数,该闪存页的不可纠正的比特错误率为UBER;
假设该闪存页中的数据在存放时间T后发生了l个比特错误,l<d,则该闪存页还可以容d-l个比特错误;该闪存页在时段的RBER,记为表示时间与时间T时RBER的差值,从而有:
式中,m、rG为常数,RBERthr为RBER在到达存放时间T时的阈值;
如果该闪存页继续存放那么在这段延长的存放时间里,它的UBER,记为其计算如下:
根据式(7)可以计算出整数lG,使得当l≤lG时, 表示只要该闪存页的比特错误数不高于lG,就可以在满足可靠性要求的同时继续存放从而对这一个闪存页的刷新可以延迟
将rG替换为rB,由式(7)可得lB,使得只要一个闪存页在存放时间T后比特错误数不高于lB,就可以在满足可靠性要求的同时继续存放从而对这一个闪存页的刷新可以延迟令rB>rG,则lB不小于lG;
获得lG和lB后,根据闪存页的比特错误数把闪存页划分为N=3类:
第i=1类:比特错误数l不小于lB的闪存页,继续存放时间为T1=0,即应当马上被刷新;
第i=2类:比特错误数l满足lG≤l<lB的闪存页,可以继续存放
第i=3类:比特错误数l满足0≤l<lG的闪存页,可以继续存放
进一步地,步骤3-2中检验Thypo时进行假设检验的方法如下:
预设一个显著性水平α,根据各类闪存页数量的概率分布函数,如果各类闪存页实际数量的发生概率低于预设的显著性水平α,则否定估计值Thypo,否则,肯定估计值Thypo;根据某类闪存页的实际数量显著高于或低于该类闪存页的期望值判断估计值Thypo是高于T或低于T。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下优点:
1、本发明能自动根据固态硬盘的实际比特错误情况对闪存页进行分类,并根据分类结果估算出数据的可靠持续存放时间,从而准确确定需要发起刷新操作的时机;
2、本发明能按照各类闪存页对应的继续存放时间,延迟不同类闪存页的刷新操作,避免同一时间有过多页被刷新导致的性能下降,同时减少对闪存的磨损,提升闪存的使用寿命;
3、在数据存放时间达到Thypo/r时,若取r=1,相当于存放时间达到Thypo时立即对Thypo进行校验,具有即时性;若取r>1,相当于提前对Thypo进行校验,具有更高的预见性,降低数据丢失概率;
4、把各闪存页按照比特错误数从少到多进行分类,可以由某个闪存页的分类序号直观判断出该闪存页的刷新迫切程度,分类序号越大,表示比特错误数越多,应当越早被刷新;
5、通过设置显著性水平α来校验Thypo,能够更准确的判断估计值Thypo与实际值T的关系,从而在调整Thypo时有据可循,提高估算T的效率和准确度。
附图说明
图1为本发明的基本原理框图;
图2为本发明实施自适应数据刷新的主要步骤示意图;
图3为本发明RT估算机制主要步骤的示意图;
图4为本发明延迟刷新机制主要步骤的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明实施例中将会用到一些名词,为便于理解,部分名词解释如下:
闪存(flash):是一种存储介质,与计算机***中传统的存储介质磁盘相比,有读写吞吐率高、延迟低的优点;相对地,闪存的使用寿命受擦除次数的限制,此外,闪存断电后,存储的数据可能会因为电子逃逸而丢失。
页(page):闪存实施的写入和读出操作的单位。
块(block):闪存实施擦除操作的单位,一个闪存块包含多个页。
BCH校验码:一种广泛应用于闪存中保护数据的纠错码,通常用一个三元组(n,k,d)表示,其中n是以比特为单位的码长,k是用户数据长度,d表示可纠正错误比特数。
差错校验模块:固态硬盘中检查比特错误的功能模块;在所使用的纠错码的容错能力范围内,可以确认一个闪存页的比特错误数和比特错误位置。
闪存转换层:固态硬盘中用以管理闪存的软件,通常实现地址映射、垃圾回收、损耗均衡等功能。
累积二项分布函数,Binomial(a,b,p):一个累积分布函数,其等于
比特错误率(RBER):一个比特数据发生错误的概率。
不可纠正比特错误率(UBER):一个比特数据发生不可纠正错误的概率,常被用来衡量存储***的可靠性。
数据可靠持续存放时间(retention time,RT):指在满足***可靠性需求的条件下,一个闪存页的数据在一次写入后能够持续存放的时间。
数据持续性:存储设备应当提供的一个基本性质,即数据在写入存储设备后应当能可靠地持续存放满足应用需求的时间。
写入干扰错误(program interference error):指对闪存中一个闪存页写入数据时对其他页产生干扰导致的比特错误。
持续存放错误(retention error):指闪存中数据随着存放时间增长而累积的比特错误。
假设检验:数理统计学中根据样本检验假设正确性的方法,基本思想是小概率反证法。
自适应数据刷新方法(self-adaptive refreshing,SaR):本发明提出的用以保证固态硬盘中数据持续性的方法,该方法可作为一个功能模块加入到闪存转换层中。
RT估算机制:本发明提出的SaR的一个主要机制,用以估算闪存块的数据可靠持续存放时间,从而确定发起刷新操作的时机。
延迟刷新机制:本发明提出的SaR的一个主要机制,用以根据闪存页的比特错误数延迟一段对应的时间后再发起刷新操作。
请参照图1,本发明的自适应数据刷新方法(Self-adaptive Refreshing,SaR)包括两个主要机制——RT估算机制以及延迟刷新机制。RT估算机制是指自适应刷新方法在数据存放的过程中通过调整并校验估计值Thypo估算出各个块的数据可靠持续存放时间的实际值T;延迟刷新机制是指根据闪存页的错误数对闪存页进行分类并设置对应类别的继续存放时间,当一个闪存块中所有页的存放时间达到其数据可靠持续存放时间的实际值T后,根据闪存页所属类别对应的继续存放时间进行分类刷新。
请参照图2,使用本发明的自适应数据刷新方法(SaR)对SSD中的闪存块实施刷新的基本步骤如下:
步骤1:当一个闪存块被写入数据后,为该闪存块设定一个计时器,用以记录该闪存块中数据的存放时间;
步骤2:为该闪存块初始化一个RT的估计值Thypo;
步骤3:校验并调整Thypo,直至T=Thypo,估算出该闪存块的数据可靠持续存放时间的实际值T;
步骤4:等待该闪存块中数据的存放时间达到T;
步骤5:根据各类闪存页对应的继续存放时间对该闪存块进行刷新;
步骤6:数据刷新完成,回收该闪存块。
请参照图3,步骤3中利用RT估算机制估算T的具体步骤如下:
步骤3-1:当该闪存块的存放时间达到Thypo/r时,检查该闪存块中各个闪存页的比特错误数,根据各闪存页的比特错误数,对各闪存页进行分类并统计各类闪存页的数量;r是一个预设的不小于1的常数;
步骤3-2:根据各类闪存页数量的概率分布函数以及各类闪存页的实际数量,通过使用统计学的假设检验方法检验Thypo的正确性;如果检验认为Thypo低于T,转入步骤3-3;如果检验不否定Thypo的假设,则设定T=Thypo,转入步骤3-4;如果检验认为Thypo高于T,则设定T=Thypo/r,转入步骤3-4;
步骤3-3:把Thypo增大至原值的r倍,转入步骤3-1;
步骤3-4:估算结束,得到该闪存块数据可靠持续存放时间的实际值T。
相应地,步骤5包括如下子步骤:
步骤5-1:从目标闪存块中取出一个未检查的闪存页,检查该闪存页的比特错误数;
步骤5-2:根据闪存页的比特错误数判断闪存页的类别,按照比特错误数多少对各类闪存页进行排序,比特错误数越多排序越靠前,刷新优先级越高;为每个闪存页按照所属类别设置并存放一个标记位flag;该标记位存放在对应闪存页的预留空间中;
步骤5-3:若还有未检查的闪存页,转入步骤5-1,否则转入步骤5-4;
步骤5-4:刷新优先级最高的闪存页开始,按照刷新优先级逐渐降低顺序开始刷新;
步骤5-5:等待计时器记录的数据存放时间达到当前类别对应的继续存放时间;
步骤5-6:把拥有当前类别flag标记的闪存页读出并写入到新的闪存页中,原来的闪存页标记为无效;
步骤5-7:判断闪存块中是否所有闪存页都被标记为无效,如是,转入步骤5-8;否则,选择次一优先级类别的闪存页,转入步骤5-5;
步骤5-8:刷新完成。
下面,结合具体实施例对本发明的方法进行详细介绍。
在本发明的第一实施例中,主要对步骤3-1的分类方法进行设计。具体地,步骤3-1中对各闪存页进行分类的方法如下:把各闪存页按照比特错误数从多到少划分为N类,其中第i类页类闪存页有不小于li个比特错误,可以在存放时间达到T后继续存放Ti时间,第j类闪存页有不小于lj个比特错误,可以在存放时间达到T后继续存放Tj时间,而且,当i<j时,li>lj,Ti<Tj,i、j为不大于N的正整数;并且,
设第i类闪存页的比特错误数为l,则有:
确定第i类闪存页的比特错误数l和划分标准li的方法如下:
设某个闪存页使用纠错码(n,k,d)进行差错校验,其中n,k和d分别是该闪存页的总比特数、有效数据比特数以及可容错比特数;
设可靠性要求为UBERreq,即一个闪存页的不可纠正的比特错误率UBER应不高于UBERreq;
不可纠正的比特错误率UBER与比特错误率RBER的关系如下:
式中,a为该一个闪存页的比特错误数;
根据上式求出RBER的阈值RBERthr;
RBER与数据存放时间t的关系如下:
式中,T是该一个闪存页的数据可靠持续存放时间的实际值;
对于第i类闪存页,在[T,T+Ti]时段内的不可纠正比特错误率UBERext<UBERreq,其中,
RBERext=RBER(T+Ti)-RBER(T),
式中,l是第i类闪存页在[T,T+Ti]时段内发生的比特错误数,
RBER(T+Ti)是第i类闪存页在T+Ti时段内的比特错误率,
RBER(T)是第i类闪存页在T时段内的比特错误率;
调整l的值使得UBERext≤UBERreq,即可得到第i类闪存页的划分标准li。
按照本发明第一实施例的方法,可以根据具体场景,设置两个以上的类别,按照对应的划分标准确定各类别闪存页的继续存放时间。特别地,如果将第1类,即比特错误数最多的类的继续存放时间设置为0,则表示该类闪存页应当在存放时间达到T以后立即刷新。
下面介绍本发明的第二实施例。在第二实施例中,对于一个使用BCH(n,k,d)保护存放数据的闪存页,其UBER与RBER有如下关系:
UBER=[1-Binomial(d,n,RBER)]/k (1)
设该闪存页的可靠性要求为UBER≤UBERreq,则可以根据方程(1)对应地求出RBER的阈值RBERthr,使得只要满足RBER≤RBERthr就能满足UBER≤UBERreq。
一个闪存页的RBER是关于数据存放时间t的增函数,特别地,RBER可以表示为t的幂函数:
RBER(t)=RBER0+RBERΔ×tm (2)
其中RBER0是数据写入后的初始RBER;RBERΔ表示RBER随时间的增长因子;m是一个常数,可以通过对实验数据的拟合获得。RBER0是由于写入干扰导致的比特错误,其与随着时间增长的持续存放错误——RBERΔ×tm相比非常小,因此,方程(2)可简化为:
RBER(t)=RBERΔ×tm (3)
假设已知一个闪存页的数据可靠持续存放时间为T,那么,这一个闪存页的RBER应当在时间T时达到阈值RBERthr,即
RBER(T)=RBERthr (4)
在方程(3)中代入等式(4)可以计算出RBERΔ=RBERthr/Tm,从而方程(3)可以转化为:
基于上述原理,现有技术中的闪存数据刷新方法认为,当一个闪存页的存放时间达到它的数据可靠持续存放时间T后,由于其RBER到达阈值,为保证数据持续性,这一个闪存页的数据应当马上被重写到一个新的闪存页。
但实际上,本发明认为,一个只发生少量比特错误的闪存页中的数据,是有可能被可靠地继续存放一段时间的。
本实施例提出了一个闪存页中的数据在已经存放了时间T后依然能够继续可靠地存放一段时间的条件。
假设一个闪存页中的数据在存放时间T后发生了l(l<d)个比特错误,由于该闪存页使用的BCH(n,k,d)能够容d个比特错误,因此该闪存页还可以容(d-l)个比特错误。该闪存页在时段的RBER,记为可表述为时间与时间T时RBER的差值,从而,根据方程(5)可得:
如果该闪存页继续存放那么在这段延长的存放时间里,它的UBER,记为应当计算如下:
分析方程(7)可以得知,是关于比特错误数l的增函数。根据方程(7)可以计算出整数lG,只要当l≤lG时,这表明只要该闪存页的比特错误数不高于lG,就可以在满足可靠性要求的同时继续存放从而对这一个闪存页的刷新可以延迟
同理可得lB,使得只要一个闪存页在存放时间T后比特错误数不高于lB,就可以在满足可靠性要求的同时继续存放从而对这一个闪存页的刷新可以延迟令rB>rG,一般地,lB不小于lG。
获得lG和lB后,可以根据闪存页的比特错误数把闪存页划分为三类:比特错误数不高于lG的闪存页称为绿页(Green page);比特错误数高于lG且不高于lB的闪存页称为蓝页(Blue page);比特错误数高于lB的闪存页称为红页(Red page)。其中绿页可以继续存放蓝页可以继续存放而红页应当马上被刷新。从而,可以根据闪存页的比特错误数推迟一段对应的时间再实施刷新操作。
本发明第二实施例的核心构思在于,根据各闪存页的比特错误数,判断数据刷新的迫切程度,并据此将闪存页的延迟刷新时间,即数据的继续存放时间划分为3类(即N=3):
第i=1类:比特错误数l不小于lB的闪存页称为红页(Red page),红页的继续存放时间为T1=0,即应当马上被刷新;
第i=2类:比特错误数l满足lG≤l<lB的闪存页称为蓝页(Blue page),可以继续存放
第i=3类:比特错误数l满足0≤l<lG的闪存页称为绿页(Green page),可以继续存放
在一个典型的应用场景里,固态硬盘使用BCH(8640,8192,24)保护数据,可靠性需求为UBERreq=10-16,则根据方程(1)可以计算出RBER的阈值RBERthr=4.5×10-4。实验数据显示,方程(6)中的m可取值为1.08,1.25和1.33,其中1.25为典型值。取m=1.25,rG=2,rB=4,则根据方程(6)可以计算得把和UBERreq代入方程(7)可以求得lG=4,因此若一个闪存页在存放时间T后发生的比特错误数不超过4,就可以继续可靠地存放类似地,可以求得lB=8,从而,比特错误数高于4且不高于8的闪存页可以继续可靠地存放只有比特错误数高于8的闪存页应当被马上刷新,即可以继续可靠存放的时间为0。
本发明的第三实施例与第二实施例的区别在于RT估算方法的具体设计。一个闪存页的刷新时机与其数据可靠持续存放时间是紧密相关的,现有刷新方法都假设闪存页的RT已知,然而RT会受到多种因素影响,是无法预先获得的,因此本发明在使用的过程中估算闪存页的RT。本实施例给出基于统计假设检验的RT估算机制,本实施例的步骤3通过“给出一个RT的假设——检验假设的正确性——调整对RT的假设”这样一个迭代的过程估算实际的RT。
通常可以认为一个闪存块中的所有页有相同的数据可靠持续存放时间,假定其实际值为T。以绿页为例,仍然取rG=2,则绿页可继续存放的时间为其在继续存放时间里的比特错误数为一个闪存页在经历时间T后为绿页的概率——P(Green)可计算如下:
假设一个闪存块中包含N个页,那么该闪存块在经历时间T后的绿页数量G的累积分布函数为:
F(G≤g)=Binomial(g,N,P(Green)) (9)
一个闪存块中绿页数量G的分布函数可用来检验对该闪存块的数据可靠存放时间T的假设是否正确。
假设一个闪存块的刷新周期为Thypo,并且该闪存块在经历时间Thypo后绿页的数量为gact。设定显著性水平α,如果gact满足:
则有(1-α)的置信度认为原假设正确,即该闪存块的数据可靠持续存放时间就是Thypo,亦即T=Thypo;否则,否定原假设,即该闪存块的数据可靠持续存放时间不是Thypo,亦即T≠Thypo。
更进一步,如果表明绿页的数量与期望值相比明显偏少,可认为原假设高估了该闪存块的数据可靠持续存放时间,即Thypo>>T;相反,如果表明绿页的数量与期望值相比明显偏多,原假设低估了该闪存块的数据可靠持续存放时间,即Thypo<<T。通过这一假设检验的手段,通过多次调整和检验假设的Thypo的值,可以最终估算出一个闪存块的数据可靠持续存放时间的实际值T。
为了提高估算的精确度,还可以同时使用多种类型页的分布对假设进行检验,例如可以同时根据绿页和蓝页的数量对Thypo进行检验。
上述方法在假设一个闪存块的RT为Thypo时,需要等待该闪存块经历Thypo时间后才能检验Thypo的正确性。但是,若实际上T<Thypo,就可能造成数据丢失。
考虑到上述情况,本发明的第四实施例提前检验假设的Thypo而不是等待该闪存块存放时间到达Thypo再检验。
例如,一个RT为T的闪存页,其在数据存放时间达到T/2时(即取r=2)是一个绿页的概率可以计算如下:
其中RBER(T/2)可以通过方程(5)计算得到,其等于从而,一个闪存块在存放时间达到T/2后绿页的数量的累积分布函数为:
从而,当假设一个闪存块的刷新周期为T=Thypo时,可以在该闪存块经历时间Thypo/2时就通过绿页的数量以及其累积分布函数(11),以一定的显著性水平α判断Thypo的估计是否正确,当判定Thypo的估计正确时,取T=Thypo。
基于上述检验方法,步骤5的延迟刷新机制又可以分为以下子步骤:
步骤5-1:从目标闪存块中取出一个未检查的闪存页,调用SSD内的差错校验模块检查该闪存页的比特错误数。
步骤5-2:根据闪存页的比特错误数判断页的类别,为每个闪存页设置并存放一个标记位flag;该标记位可以存放在对应页的预留空间中;对于存在红页的分类模式,第i类闪存页的flag设置为i,i≤N。
具体地,以绿、蓝、红三个分类为例,根据该闪存页的比特错误数判断该闪存页是红页(第1类)、蓝页(第2类)还是绿页(第3类);
如果是绿页,为该闪存页设置并记录一个单比特标记位flag,并把flag初始化为3,转入步骤5-3;
如果是蓝页,为该闪存页设置并记录一个单比特标记位flag,并把flag初始化为2,转入步骤5-3;
如果是红页,读出该闪存页并写入到一个新的闪存页中,把原来的闪存页标记为无效,转入步骤5-3;
步骤5-3:若还有未检查的闪存页,转入步骤5-1,否则转入步骤5-4;
步骤5-4:设定计数器i=2,i≤N,由于红页已经立即刷新,故从i=2开始,本实施例取N=3,则总循环次数最高为2次。
步骤5-5:等待该闪存块中剩余闪存页的存放时间达到 由于rB=4,T=Thypo,继续存放时间为1.25Thypo;
步骤5-6:把该闪存块中设置了单比特标记位flag且flag=2的闪存页读出(即将蓝页读出),并写入到新的闪存页中,原来的闪存页都标记为无效;
步骤5-7:判断闪存块中是否所有页都被标记为无效,是,则进入步骤5-11;否则,令i=i+1,转入步骤5-5继续执行,得到步骤5-9;
步骤5-9:等待块中剩余页的存放时间达到由于rG=2,T=Thypo,存放时间为1.5Thypo;
步骤5-10:把该闪存块中剩余闪存页(即设置了单比特标记位flag且flag=3的闪存页,亦即此时剩余的闪存页全为绿页)都读出并写入到新的闪存页中,原来的所有闪存页标记为无效;
步骤5-11:刷新完成。
本发明的第五实施例与第四实施例的区别在于,设置flag时不区分第1类是否需要立刻刷新,均设置flag,请参照图4,步骤如下:
步骤5-1:从目标闪存块中取出一个未检查的闪存页,检查该闪存页的比特错误数;
步骤5-2:根据闪存页的比特错误数判断闪存页的类别,按照比特错误数多少对各类闪存页进行排序,比特错误数越多,刷新优先级越高;为每个闪存页按照所属类别设置并存放一个标记位flag;第i类闪存页的flag设置为i,i≤N,N为总类别数,i=1时比特错误数最多,刷新优先级最高;
步骤5-3:若还有未检查的闪存页,转入步骤5-1,否则转入步骤5-4;
步骤5-4:设定计数器i=1,i≤N,从刷新优先级最高的闪存页开始,按照刷新优先级递减的顺序开始刷新;
步骤5-5:等待计时器记录的数据存放时间达到T+Ti,其中,Ti为第i类闪存页对应的继续存放时间;
步骤5-6:把flag=i的闪存页读出并写入到新的闪存页中,原来的闪存页标记为无效;
步骤5-7:判断闪存块中是否所有闪存页都被标记为无效,如是,转入步骤5-8;否则,令i=i+1,转入步骤5-5;
步骤5-8:刷新完成。
在本实施例中,i=1时,最先刷新的是迫切程度最高(比特错误数最多)的第1类闪存页,无论第1类闪存页是否需要在存放时间达到T时立刻刷新,本实施例的方法均适用。
特别地,如果在本实施例中设置T1=0,则i=1时第1类闪存页会在存放时间达到T时立刻刷新。
进一步地,如果取N=3的同时设置T1=0,则i=1相当于第四实施例的步骤5-2中红页立即刷新,i=2相当于第四实施例的步骤5-5,i=3相当于第四实施例的步骤5-9,此时与第四实施例的实质区别仅在于flag的值不同,对应关系亦未改变。
以上实施例是以3级延迟刷新为例(立即刷新也算一个级别),但N的取值并不受以上实施例限制,例如需要4级延迟则可以取N=4,仅需2级延迟也可以取N=2,其他取值均可按照上述方法进行拓展,不再赘述。
与现有技术相比,使用本发明的SaR方法对闪存实施数据刷新的特点如下:
SaR是一个通过及时刷新闪存中数据以保证数据持续性的方法。该方法包括两个主要机制,分别是RT估算机制和延迟刷新机制。该方法根据闪存页在存放时间达到其数据可靠持续存放时间(RT)后可以继续可靠存放的时间把闪存页划分为多类;RT估算机制根据一个闪存块中不同类闪存页的数量,估算这一个闪存块的RT;延迟刷新机制根据一个闪存页所属的类,延迟一段对应的时间后再对该闪存页实施刷新。与现有的同类发明相比,SaR可以实现对数据可靠持续存放时间的估算,从而可以更准确地设定闪存页的刷新时机;此外,SaR可以延迟部分闪存页的刷新,避免同一时间有过多页需要被刷新导致固态硬盘的性能大幅度下降,同时减少了对闪存的磨损;总的来说,使用SaR实现闪存的数据刷新能使固态硬盘有更稳定的性能以及更高的使用寿命。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种保证固态硬盘中数据持续性的自适应数据刷新方法,其特征在于,根据闪存页的比特错误数对闪存页进行分类,并设定各类闪存页的继续存放时间,根据一个闪存块中各类闪存页的数量,估算该闪存块的数据可靠持续存放时间的实际值T;根据一个闪存页所属的类,在该闪存页存放时间达到T之后,推迟一段该闪存页对应的继续存放时间后再对该闪存页实施刷新。
2.如权利要求1所述的自适应数据刷新方法,其特征在于,包括如下步骤:
步骤1:当一个闪存块被写入数据后,记录该闪存块中数据的存放时间;
步骤2:为该闪存块初始化一个数据可靠持续存储时间的估计值Thypo;
步骤3:根据闪存页的比特错误数对闪存页进行分类,并设定各类闪存页的继续存放时间,根据一个闪存块中各类闪存页数量的概率分布函数以及各类闪存页的实际数量,校验并调整Thypo,直至校验结果为T=Thypo,此时Thypo的取值即为该闪存块的数据可靠持续存放时间的实际值T;
步骤4:等待该闪存块中数据的存放时间达到T;
步骤5:根据各类闪存页对应的继续存放时间对该闪存块进行刷新;
步骤6:数据刷新完成,回收该闪存块。
3.如权利要求2所述的自适应数据刷新方法,其特征在于,步骤3包括如下子步骤:
步骤3-1:当该闪存块的存放时间达到Thypo/r时,检查该闪存块中各个闪存页的比特错误数,根据各闪存页的比特错误数,对各闪存页进行分类并统计各类闪存页的数量,设定各类闪存页的继续存放时间;r是一个预设的不小于1的常数;
步骤3-2:根据各类闪存页数量的概率分布函数以及各类闪存页的实际数量,通过使用统计学的假设检验方法检验Thypo的正确性;如果检验认为Thypo低于T,转入步骤3-3;如果检验不否定Thypo的假设,则设定T=Thypo,转入步骤3-4;如果检验认为Thypo高于T,则设定T=Thypo/r,转入步骤3-4;
步骤3-3:把Thypo增大至原值的r倍,转入步骤3-1;
步骤3-4:估算结束,得到该闪存块数据可靠持续存放时间的实际值T。
4.如权利要求3所述的自适应数据刷新方法,其特征在于,步骤3-1中对各闪存页进行分类的方法如下:把各闪存页按照比特错误数从多到少划分为N类,其中第i类页类闪存页有不小于li个比特错误,可以在存放时间达到T后继续存放Ti时间,第j类闪存页有不小于lj个比特错误,可以在存放时间达到T后继续存放Tj时间,而且,当i<j时,li>lj,Ti<Tj,i、j为不大于N的正整数;并且,
设第i类闪存页的比特错误数为l,则有:
5.如权利要求4所述的自适应数据刷新方法,其特征在于,确定各类闪存页的比特错误数及划分标准的方法如下:
设某个闪存页使用纠错码(n,k,d)进行差错校验,其中n,k和d分别是该闪存页的总比特数、有效数据比特数以及可容错比特数;
设可靠性要求为UBERreq,即一个闪存页的不可纠正的比特错误率UBER应不高于UBERreq;
不可纠正的比特错误率UBER与比特错误率RBER的关系如下:
<mrow>
<mi>U</mi>
<mi>B</mi>
<mi>E</mi>
<mi>R</mi>
<mo>=</mo>
<mo>&lsqb;</mo>
<mn>1</mn>
<mo>-</mo>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>a</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mi>d</mi>
</msubsup>
<mfenced open = "(" close = ")">
<mtable>
<mtr>
<mtd>
<mi>n</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>a</mi>
</mtd>
</mtr>
</mtable>
</mfenced>
<msup>
<mi>RBER</mi>
<mi>a</mi>
</msup>
<msup>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>-</mo>
<mi>R</mi>
<mi>B</mi>
<mi>E</mi>
<mi>R</mi>
<mo>)</mo>
</mrow>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mi>a</mi>
</mrow>
</msup>
<mo>&rsqb;</mo>
<mo>/</mo>
<mi>k</mi>
</mrow>
式中,a为该一个闪存页在T时段内的比特错误数;
根据上式求出RBER在到达存放时间T时的阈值RBERthr;
RBER与数据存放时间t的关系如下:
<mrow>
<mi>R</mi>
<mi>B</mi>
<mi>E</mi>
<mi>R</mi>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msub>
<mi>RBER</mi>
<mrow>
<mi>t</mi>
<mi>h</mi>
<mi>r</mi>
</mrow>
</msub>
<mo>&times;</mo>
<msup>
<mrow>
<mo>(</mo>
<mfrac>
<mi>t</mi>
<mi>T</mi>
</mfrac>
<mo>)</mo>
</mrow>
<mi>m</mi>
</msup>
</mrow>
式中,m为常数,T是该闪存页的数据可靠持续存放时间的实际值;
对于第i类闪存页,在Ti时间段时段内的不可纠正比特错误率UBERext<UBERreq,其中,
<mrow>
<msub>
<mi>UBER</mi>
<mrow>
<mi>e</mi>
<mi>x</mi>
<mi>t</mi>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mo>&lsqb;</mo>
<mn>1</mn>
<mo>-</mo>
<msubsup>
<mi>&Sigma;</mi>
<mrow>
<mi>a</mi>
<mo>=</mo>
<mn>0</mn>
</mrow>
<mrow>
<mi>d</mi>
<mo>-</mo>
<mi>l</mi>
</mrow>
</msubsup>
<mfenced open = "(" close = ")">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mi>l</mi>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>a</mi>
</mtd>
</mtr>
</mtable>
</mfenced>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>RBER</mi>
<mrow>
<mi>e</mi>
<mi>x</mi>
<mi>t</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mi>a</mi>
</msup>
<msup>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>-</mo>
<msub>
<mi>RBER</mi>
<mrow>
<mi>e</mi>
<mi>x</mi>
<mi>t</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mrow>
<mi>n</mi>
<mo>-</mo>
<mi>l</mi>
<mo>-</mo>
<mi>a</mi>
</mrow>
</msup>
<mo>&rsqb;</mo>
</mrow>
<mi>k</mi>
</mfrac>
</mrow>
RBERext=RBER(T+Ti)-RBER(T),
式中,l是该第i类闪存页在Ti时段内的比特错误数,
RBER(T+Ti)是该第i类闪存页在T+Ti时段内的比特错误率,
RBER(T)是该第i类闪存页在T时段内的比特错误率;
调整l的值使得UBERext≤UBERreq,得到第i类闪存页的划分标准li。
6.如权利要求5所述的自适应数据刷新方法,其特征在于,步骤5包括如下子步骤:
步骤5-1:从目标闪存块中取出一个未检查的闪存页,检查该闪存页的比特错误数;
步骤5-2:根据闪存页的比特错误数判断闪存页的类别,按照比特错误数多少对各类闪存页进行排序,比特错误数越多,刷新优先级越高;为每个闪存页按照所属类别设置并存放一个标记位flag;第i类闪存页的flag设置为i,i≤N,N为总类别数,i=1时比特错误数最多,刷新优先级最高;
步骤5-3:若还有未检查的闪存页,转入步骤5-1,否则转入步骤5-4;
步骤5-4:设定计数器i=1,i≤N,从刷新优先级最高的闪存页开始,按照刷新优先级递减的顺序开始刷新;
步骤5-5:等待计时器记录的数据存放时间达到T+Ti,其中,Ti为第i类闪存页对应的继续存放时间;
步骤5-6:把flag=i的闪存页读出并写入到新的闪存页中,原来的闪存页标记为无效;
步骤5-7:判断闪存块中是否所有闪存页都被标记为无效,如是,转入步骤5-8;否则,令i=i+1,转入步骤5-5;
步骤5-8:刷新完成。
7.如权利要求5所述的自适应数据刷新方法,其特征在于,i=1时Ti=T1=0,步骤5包括如下子步骤:
步骤5-1:从目标闪存块中取出一个未检查的闪存页,检查该闪存页的比特错误数;
步骤5-2:根据闪存页的比特错误数判断闪存页的类别,按照比特错误数多少对各类闪存页进行排序,比特错误数越多,刷新优先级越高;由于T1=0,第1类闪存页立即刷新;为剩余每个闪存页按照所属类别设置并存放一个标记位flag,第i类闪存页的flag设置为i,2≤i≤N,N为总类别数;
步骤5-3:若还有未检查的闪存页,转入步骤5-1,否则转入步骤5-4;
步骤5-4:设定计数器i=2,i≤N,从刷新优先级最高的闪存页开始,按照刷新优先级递减的顺序开始刷新;
步骤5-5:等待计时器记录的数据存放时间达到T+Ti,其中,Ti为第i类闪存页对应的继续存放时间;
步骤5-6:把flag=i的闪存页读出并写入到新的闪存页中,原来的闪存页标记为无效;
步骤5-7:判断闪存块中是否所有闪存页都被标记为无效,如是,转入步骤5-8;否则,令i=i+1,转入步骤5-5;
步骤5-8:刷新完成。
8.如权利要求3~7任意一项所述的自适应数据刷新方法,其特征在于,步骤3-1中,
设某个闪存页使用纠错码(n,k,d)进行差错校验,其中n,k和d分别是该闪存页的总比特数、有效数据比特数以及可容错比特数,该闪存页的不可纠正的比特错误率为UBER;
假设该闪存页中的数据在存放时间T后发生了l个比特错误,l<d,则该闪存页还可以容d-l个比特错误;该闪存页在时段的RBER,记为表示时间与时间T时RBER的差值,从而有:
<mrow>
<msub>
<mi>RBER</mi>
<mrow>
<mfrac>
<mn>1</mn>
<msub>
<mi>r</mi>
<mi>G</mi>
</msub>
</mfrac>
<mi>e</mi>
<mi>x</mi>
<mi>t</mi>
</mrow>
</msub>
<mo>=</mo>
<mo>&lsqb;</mo>
<msup>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>+</mo>
<mfrac>
<mn>1</mn>
<msub>
<mi>r</mi>
<mi>G</mi>
</msub>
</mfrac>
<mo>)</mo>
</mrow>
<mi>m</mi>
</msup>
<mo>-</mo>
<mn>1</mn>
<mo>&rsqb;</mo>
<mo>&times;</mo>
<msub>
<mi>RBER</mi>
<mrow>
<mi>t</mi>
<mi>h</mi>
<mi>r</mi>
</mrow>
</msub>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>6</mn>
<mo>)</mo>
</mrow>
</mrow>
式中,m、rG为常数,RBERthr为RBER在到达存放时间T时的阈值;
如果该闪存页继续存放那么在这段延长的存放时间里,它的UBER,记为其计算如下:
<mrow>
<msub>
<mi>UBER</mi>
<mrow>
<mfrac>
<mn>1</mn>
<msub>
<mi>r</mi>
<mi>G</mi>
</msub>
</mfrac>
<mi>e</mi>
<mi>x</mi>
<mi>t</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>l</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<mo>&lsqb;</mo>
<mn>1</mn>
<mo>-</mo>
<mi>B</mi>
<mi>i</mi>
<mi>n</mi>
<mi>o</mi>
<mi>m</mi>
<mi>i</mi>
<mi>a</mi>
<mi>l</mi>
<mrow>
<mo>(</mo>
<mi>d</mi>
<mo>-</mo>
<mi>l</mi>
<mo>,</mo>
<mi>n</mi>
<mo>-</mo>
<mi>l</mi>
<mo>,</mo>
<msub>
<mi>RBER</mi>
<mrow>
<mfrac>
<mn>1</mn>
<msub>
<mi>r</mi>
<mi>G</mi>
</msub>
</mfrac>
<mi>e</mi>
<mi>x</mi>
<mi>t</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mo>&rsqb;</mo>
<mo>/</mo>
<mi>k</mi>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>7</mn>
<mo>)</mo>
</mrow>
</mrow>
根据式(7)可以计算出整数lG,使得当l≤lG时, 表示只要该闪存页的比特错误数不高于lG,就可以在满足可靠性要求的同时继续存放从而对这一个闪存页的刷新可以延迟
将rG替换为rB,由式(7)可得lB,使得只要一个闪存页在存放时间T后比特错误数不高于lB,就可以在满足可靠性要求的同时继续存放从而对这一个闪存页的刷新可以延迟令rB>rG,则lB不小于lG;
获得lG和lB后,根据闪存页的比特错误数把闪存页划分为N=3类:
第i=1类:比特错误数l不小于lB的闪存页,继续存放时间为T1=0,即应当马上被刷新;
第i=2类:比特错误数l满足lG≤l<lB的闪存页,可以继续存放
第i=3类:比特错误数l满足0≤l<lG的闪存页,可以继续存放
9.如权利要求3所述的自适应数据刷新方法,其特征在于,步骤3-2中检验Thypo时进行假设检验的方法如下:
预设一个显著性水平α,根据各类闪存页数量的概率分布函数,如果各类闪存页实际数量的发生概率低于预设的显著性水平α,则否定估计值Thypo,否则,肯定估计值Thypo;根据某类闪存页的实际数量显著高于或低于该类闪存页的期望值判断估计值Thypo是高于T或低于T。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710914680.1A CN107748722B (zh) | 2017-09-30 | 2017-09-30 | 一种保证固态硬盘中数据持续性的自适应数据刷新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710914680.1A CN107748722B (zh) | 2017-09-30 | 2017-09-30 | 一种保证固态硬盘中数据持续性的自适应数据刷新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107748722A true CN107748722A (zh) | 2018-03-02 |
CN107748722B CN107748722B (zh) | 2020-05-19 |
Family
ID=61255952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710914680.1A Active CN107748722B (zh) | 2017-09-30 | 2017-09-30 | 一种保证固态硬盘中数据持续性的自适应数据刷新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107748722B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829346A (zh) * | 2018-05-28 | 2018-11-16 | 华中科技大学 | 一种适应闪存页差异的固态硬盘的用户写请求处理方法 |
CN108845765A (zh) * | 2018-05-31 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种nand数据读取方法、***、设备及存储介质 |
CN111142797A (zh) * | 2019-12-26 | 2020-05-12 | 华中科技大学 | 一种固态硬盘刷新方法、装置及固态硬盘 |
CN115904264A (zh) * | 2023-03-13 | 2023-04-04 | 浪潮电子信息产业股份有限公司 | 一种存储***中块的垃圾数据回收方法、装置以及介质 |
CN116992504A (zh) * | 2023-09-26 | 2023-11-03 | 合肥联宝信息技术有限公司 | 一种固态硬盘的数据保护方法、电子设备及存储介质 |
CN117687570A (zh) * | 2023-11-17 | 2024-03-12 | 鸿秦(北京)科技有限公司 | 一种固态硬盘中读写服务自适应的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301525A1 (en) * | 2007-05-31 | 2008-12-04 | Kabushiki Kaisha Toshiba | Data refresh apparatus and data refresh method |
CN101981627A (zh) * | 2008-06-30 | 2011-02-23 | 英特尔公司 | Nand存储器 |
CN103995756A (zh) * | 2013-02-14 | 2014-08-20 | 索尼公司 | 存储控制器、存储设备、信息处理***和存储控制方法 |
US20150052416A1 (en) * | 2013-08-16 | 2015-02-19 | Seagate Technology Llc | Determining Data Retention Time in a Solid-State Non-Volatile Memory |
WO2017152392A1 (zh) * | 2016-03-09 | 2017-09-14 | 华为技术有限公司 | 一种闪存设备的刷新方法和装置 |
-
2017
- 2017-09-30 CN CN201710914680.1A patent/CN107748722B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301525A1 (en) * | 2007-05-31 | 2008-12-04 | Kabushiki Kaisha Toshiba | Data refresh apparatus and data refresh method |
CN101981627A (zh) * | 2008-06-30 | 2011-02-23 | 英特尔公司 | Nand存储器 |
CN103995756A (zh) * | 2013-02-14 | 2014-08-20 | 索尼公司 | 存储控制器、存储设备、信息处理***和存储控制方法 |
US20150052416A1 (en) * | 2013-08-16 | 2015-02-19 | Seagate Technology Llc | Determining Data Retention Time in a Solid-State Non-Volatile Memory |
WO2017152392A1 (zh) * | 2016-03-09 | 2017-09-14 | 华为技术有限公司 | 一种闪存设备的刷新方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829346A (zh) * | 2018-05-28 | 2018-11-16 | 华中科技大学 | 一种适应闪存页差异的固态硬盘的用户写请求处理方法 |
CN108829346B (zh) * | 2018-05-28 | 2020-11-17 | 华中科技大学 | 一种适应闪存页差异的固态硬盘的用户写请求处理方法 |
CN108845765A (zh) * | 2018-05-31 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种nand数据读取方法、***、设备及存储介质 |
CN108845765B (zh) * | 2018-05-31 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种nand数据读取方法、***、设备及存储介质 |
CN111142797A (zh) * | 2019-12-26 | 2020-05-12 | 华中科技大学 | 一种固态硬盘刷新方法、装置及固态硬盘 |
CN111142797B (zh) * | 2019-12-26 | 2021-02-09 | 华中科技大学 | 一种固态硬盘刷新方法、装置及固态硬盘 |
CN115904264A (zh) * | 2023-03-13 | 2023-04-04 | 浪潮电子信息产业股份有限公司 | 一种存储***中块的垃圾数据回收方法、装置以及介质 |
CN116992504A (zh) * | 2023-09-26 | 2023-11-03 | 合肥联宝信息技术有限公司 | 一种固态硬盘的数据保护方法、电子设备及存储介质 |
CN117687570A (zh) * | 2023-11-17 | 2024-03-12 | 鸿秦(北京)科技有限公司 | 一种固态硬盘中读写服务自适应的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107748722B (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107748722B (zh) | 一种保证固态硬盘中数据持续性的自适应数据刷新方法 | |
US8751726B2 (en) | System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices | |
US8386860B2 (en) | Methods of calculating compensation voltage and adjusting threshold voltage and memory apparatus and controller | |
US8015346B2 (en) | Memory system having hybrid density memory and methods for wear-leveling management and file distribution management thereof | |
US8458417B2 (en) | Garbage collection in a storage device | |
US9141475B2 (en) | Methods for tag-grouping of blocks in storage devices | |
US8305818B2 (en) | Memory device and method for estimating characteristics of multi-bit programming | |
US8332696B2 (en) | Defect management method for storage medium and system thereof | |
US10884665B2 (en) | Data reading method, storage controller and storage device for optimizing read voltages | |
US10579518B2 (en) | Memory management method and storage controller | |
US9535611B2 (en) | Cache memory for hybrid disk drives | |
KR20110004100A (ko) | 불휘발성 메모리 장치의 읽기 방법 및 그것을 포함하는 메모리 시스템 | |
CN112068772B (zh) | 数据存储方法、数据存储装置及存储装置 | |
US10990477B2 (en) | Device and method for controlling the data refresh cycles in reprogrammable non-volatile memories | |
US10324648B1 (en) | Wear-based access optimization | |
CN111813591B (zh) | Nand Flash的数据纠错方法、装置、电子设备及存储介质 | |
CN105867834A (zh) | 存储装置数据整理方法 | |
CN115599706B (zh) | 一种数据存储设备的垃圾回收处理方法及数据存储设备 | |
CN112256193A (zh) | 一种提高固态硬盘数据安全性的方法、装置和存储介质 | |
CN113076218A (zh) | Nvm芯片读数据错误快速处理方法及其控制器 | |
TWI382420B (zh) | 利用多值式快閃記憶體實施單值式快閃記憶體功能之儲存裝置與方法 | |
CN112347001A (zh) | 闪存垃圾回收的校验方法、装置及电子设备 | |
CN113793636B (zh) | 一种闪存块磨损度的评估方法及固态硬盘 | |
CN115509798A (zh) | 一种刷新、副本和ldpc混合解码结合的存储器读取优化方法 | |
CN111767165B (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 |