CN106776095B - Ssd固态硬盘数据可靠性智能检测方法及检测装置 - Google Patents

Ssd固态硬盘数据可靠性智能检测方法及检测装置 Download PDF

Info

Publication number
CN106776095B
CN106776095B CN201611199482.3A CN201611199482A CN106776095B CN 106776095 B CN106776095 B CN 106776095B CN 201611199482 A CN201611199482 A CN 201611199482A CN 106776095 B CN106776095 B CN 106776095B
Authority
CN
China
Prior art keywords
flash memory
memory block
data
block
flash
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
CN201611199482.3A
Other languages
English (en)
Other versions
CN106776095A (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.)
Hunan Goke Microelectronics Co Ltd
Original Assignee
Hunan Goke Microelectronics Co Ltd
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 Hunan Goke Microelectronics Co Ltd filed Critical Hunan Goke Microelectronics Co Ltd
Priority to CN201611199482.3A priority Critical patent/CN106776095B/zh
Publication of CN106776095A publication Critical patent/CN106776095A/zh
Application granted granted Critical
Publication of CN106776095B publication Critical patent/CN106776095B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供一种SSD固态硬盘数据可靠性智能检测方法,包括:闪存块参数初始化;计算闪存块的第一概率值、第二概率值,并读取闪存块的实际数据错误率R,利用N值、M值计算经验数据错误率,将判断闪存块是否为待检测闪存块;利用中央处理器对待检测闪存块进行读取,并计算该闪存块的检测错误率,判断是否需对闪存块进行回收处理。本发明还提供一种SSD固态硬盘数据可靠性智能检测装置,包括中央处理器、闪存块状态管理模块、纠错模块。本发明通过对闪存进行智能监控与测试,可以在保证数据可靠性的同时,最大化减少对闪存上数据的影响以及减少对正常业务流程的影响。

Description

SSD固态硬盘数据可靠性智能检测方法及检测装置
技术领域
本发明涉及一种检测方法及检测装置,尤其涉及一种对闪存进行智能检测的方法及检测装置。
背景技术
闪存具有如下特性:
(1)数据保持特性:保存在闪存上的数据并不是可以永久保存的。随着时间的推移,因闪存浮栅极(float gate)中的电子会丢失或者增多,从而导致闪存上的数据发生错误。时间越长,发生错误的数据越多。另外该特性跟闪存的编程和擦除(program/erase)次数有很大关系,编程和擦除次数也称为读写/擦除次数,读写/擦除次数的值越大,相同时间内发生错误的数据越多;
(2)读取干扰(Read disturb)特性:当对闪存上的数据进行读取时,也有可能导致闪存上与读取位置相同的闪存块发生数据错误,当然这种错误通常都比较小,但在读取的次数累计到一定程度时,闪存上的数据也会超过纠错模块可纠正的范围。
由于闪存具有以上两个特性,因此会导致存放在闪存上数据发生错误。闪存上的数据发生错误是一种正常的现象,通常固态硬盘主控都会自带纠错模块,用于对错误的数据进行纠正。但是纠错模块的纠错能力是有限的,当数据错误得超出其范围时,数据将发生真正的损坏。
目前市面上实现的固态硬盘主控一种情况是没有实现通过对闪存块进行监控,将即将发生损坏的闪存块上的数据进行回收的功能,认为数据发生错误的速度极慢,在数据还没有损坏之前主机就已经把它们改写到其它位置。这种做法是极其危险的,我们并不能保证用户的行为,并不能保证数据被真正损坏之前会被改写。在某些场景下,用户很可能在固态硬盘保存只读的数据,那么这些数据就会在固态硬盘上长时间不会被搬移到其它位置,时间久或者读取次数够多的情况下,就会发生不可修复的损坏。
另一种情况是虽然实现了该功能,但是较为简单。基本做法就是设置一个较短的时间周期,定期的读取闪存上的数据,并对错误率进行统计,以此决定是否需要将数据回收搬移到其它地方。但是该方法的缺点就是有一定的盲目性,增加了不必要的底层开销,会对正常的数据流程产生一定影响,并且无形中提高了闪存的读取次数,增加了数据发生损坏的可能。
综上,现存固态硬盘主控要么没有实现对闪存上即将发生不可纠正的情况进行处理,可能导致在一些特殊场景下,发生数据损坏;要么实现的较为简单,影响正常的数据流程,并进一步了增加数据发生损坏的可能。
因此,现有SSD固态硬盘数据可靠性智能检测方法及检测装置无法满足需求。
发明内容
本发明要解决的问题是针对固态硬盘上的闪存读取业务较多的情况下现有技术中固态硬盘主控无法对闪存进行有效监控的问题,提出一种对闪存进行智能检测的方法及检测装置。
为解决上述技术问题,本发明采用的技术方案是:一种SSD固态硬盘数据可靠性智能检测方法,SSD固态硬盘中包括SSD固态硬盘主控制器、闪存;所述闪存包括闪存块,所述闪存块包括多个页面;所述SSD固态硬盘主控制器包括闪存块状态管理模块、纠错模块,所述闪存块状态管理模块中设置有定时器模块;所述SSD固态硬盘数据可靠性智能检测方法包括如下步骤:
(1)在中央处理器设置各个闪存块的标号,并对闪存块是否有效、闪存块中编程完成的时间、闪存块的读取次数进行初始化,并初始化第一阈值Y1、第二阈值Y2
(2)在定时器模块的每一个定时器周期完成时,计算各个有效的闪存块的t1、t2及第一概率值M,其中,t1为闪存块编程完成后到当前时刻经历的时间,t2为闪存块编程完成之后,闪存中数据的理论保持时间;
(3)中央处理器对有效的闪存块的读取完成后,读取纠错模块记录的该闪存块的实际数据错误率R,并计算该闪存块的k1、k2、第二概率值N,其中
Figure BDA0001188768360000022
k1为当前的实际数据读取次数,k2为数据未发生错误的闪存块的理论最大数据读取次数;
(4)根据步骤(3)中计算得到的N值、步骤(2)中计算得到的M值计算经验数据错误率P=M+N;
(5)对于各个闪存块,若P≥Y1或R≥Y1中至少有一项成立,则设置该闪存块为待检测闪存块,并跳转到步骤(6),否则,跳转到步骤(2);
(6)中央处理器对待检测闪存块进行读取,并计算该闪存块的检测错误率Q;
(7)判断Q≥Y2是否成立;若上式成立,则中央处理器对该闪存块进行回收处理,且闪存块状态管理模块将该闪存块的状态设置为无效。
主控需要在数据不可纠正之前,将该闪存块上的有效数据通过回收的方式搬移到其它的闪存块上。本发明中,预判哪些闪存块需要进行检测以进行回收搬移处理。本发明中,闪存块状态管理模块根据各个闪存块的数据错误率信息,即通过将各个闪存块的经验数据错误率、实际数据错误率分别与第一阈值进行比较,决定是否需要对该闪存块进行检测,当闪存块中的数据错误率达到初始化的第一阈值时,闪存块状态管理模块请求中央处理器对该闪存块进行检测;中央处理器对待检测闪存块进行读取,计算该闪存块的检测错误率,通过将检测错误率与初始化的第二阈值进行比较,确定闪存块是否达到回收处理的条件。
上述技术方案中,所述SSD固态硬盘数据可靠性智能检测方法,还包括如下步骤:
(8)若Q≥Y2不成立,则增大第一阈值Y1
本发明中,若Q≥Y2不成立,说明待检测闪存块的检测错误率未超过第一阈值Y1,说明第一阈值Y1的设置值过小,将有效的闪存块误判为无效,因此通过增大第一阈值Y1可以避免误判,提高本发明中检测方法的检测效率。如果中央处理器对闪存块的检测没有达到回收处理的条件,还需要设置新的闪存块检测的数据错误率阈值。
上述技术方案中,所述的步骤(1)中,Y2的初始值由闪存(2)的出厂数据或数据手册获得或由试验得到。
上述技术方案中,所述的步骤(2)中,t2由闪存(2)的出厂数据或数据手册获得,或由读写/擦除次数与闪存中数据的理论保持时间的对应关系得到,其中读写/擦除次数表示闪存块的编程和擦除的总次数。
上述技术方案中,所述的步骤(3)中,k2由闪存(2)的出厂数据或数据手册获得或由试验得到。
上述技术方案中,所述的步骤(6)中,中央处理器(14)选取待检测闪存块中的多个页面进行读取,该闪存块的检测错误率Q为待检测闪存块中所选取的的多个页面的总错误率。在对闪存块进行检测的时候,通常不需要对闪存块全部读取,抽取闪存块中的部分页面即可。具体选取哪些页面以及选取页面的个数,由实际情况确定即可。
本发明还提出一种实现上述任一项所述的SSD固态硬盘数据可靠性智能检测方法的SSD固态硬盘数据可靠性智能检测装置,包括闪存、对闪存进行控制的SSD固态硬盘主控制器,其特征在于:所述SSD固态硬盘主控制器包括闪存块状态管理模块、纠错模块、中央处理器,所述闪存块状态管理模块中设置有定时器模块,所述SSD固态硬盘主控制器与闪存连接,所述闪存块状态管理模块、纠错模块均与所述中央处理器连接。
进一步地,所述闪存为NAND闪存。
本发明具有的优点和积极效果是:本发明提出一种提高SSD固态硬盘数据可靠性的智能检测方法,从导致闪存上数据发生损坏的根本入手,监控闪存的使用状态,能够及时有效的将即将发生损坏的数据搬移到其它地方;通过对闪存进行智能监控与测试,可以在保证数据可靠性的同时,最大化减少对闪存上数据的影响以及减少对正常业务流程的影响。本发明通过统计正常业务流程中读业务的错误率,更加及时准确监控到需要检测的闪存块;本发明通过对待检测闪存块抽样读取页面的数据内容,并统计总的错误率判断一个闪存块是否需要进行回收处理,大大减小了检测的工作量。本发明包含一个闪存块状态管理模块,该模块通过对闪存块的状态管理,智能选取闪存块进行检测,及时将即将发生数据损坏的闪存块进行回收处理,达到保证闪存上数据可靠的目的;本发明根据闪存两个特性作为依据判断点,选择恰当的闪存块;本发明通过统计正常业务流程中读业务的错误率,更加及时准确监控到需要检测的闪存块;本发明通过对待检测闪存块抽样读取页面的数据内容,并统计总的错误率判断一个闪存块是否需要进行回收处理。
附图说明
图1是本发明的SSD固态硬盘数据可靠性智能检测方法的流程图;
图2是本发明的SSD固态硬盘与主机连接的原理框图;
图3是本发明的数据保持时间与读写/擦除次数关系的曲线图,图中,x轴表示读写和擦除次数的总次数,y轴表示数据保持时间;
图4是本发明的闪存块状态管理模块的状态更新与闪存块选取流程图;
图5是本发明的闪存块检测处理流程图。
图中,1、SSD固态硬盘主控制器,11、闪存块状态管理模块,12、定时器模块,13、纠错模块,14、中央处理器,2、闪存,3、主机,4、SSD固态硬盘。
具体实施方式
下面结合附图对本发明作进一步说明。
(1)本发明的闪存块状态管理模块11通过对闪存2中各个闪存块的状态管理,智能选取闪存块进行检测,及时将即将发生数据损坏的闪存块进行回收处理,达到保证闪存2上数据可靠的目的;
(2)本发明根据背景技术中所述的闪存2的两个特性作为依据判断点,选择恰当的闪存块;
(3)本发明通过统计正常业务流程中读业务的错误率,更加及时准确监控到需要检测的闪存块;
(4)本发明通过对待检测闪存块抽样读取页面的数据内容,并统计总的错误率判断一个闪存块是否需要进行回收处理。
(5)本发明从导致闪存上数据发生损坏的根本入手,监控闪存的使用状态,能够及时有效的将即将发生损坏的数据搬移到其它地方,并且最大化减少对正常业务流程的影响。
根据背景技术中所述的闪存2的两个特性,如果要保证闪存2上数据的可靠性,主控就需要在数据不可纠正之前,将该闪存块上的有效数据通过回收(recycle)的方式搬移到其它的闪存块上。根据上述的闪存2的两个特性,我们可以提前预判哪些闪存块需要进行检测以进行回收搬移处理。本发明通过智能选取可能发生数据损坏的闪存块进行检测,从而达到保证闪存2上数据可靠的目的。
图2是本发明的SSD固态硬盘与主机连接的原理框图。SSD固态硬盘4中包括SSD固态硬盘主控制器1、闪存2,其中闪存2可采用NAND闪存。主机3是固态硬盘的使用者,在本发明中应用场景下,有可能下发只读属性的数据。这部分数据下发到SSD固态硬盘4之后,极少或者根本不进行修改,只进行读取或者读取都很少。主机3与SSD固态硬盘4连接,主机3对SSD固态硬盘4中的闪存进行读取。SSD固态硬盘4为固态硬盘,区别于机械硬盘,目前见得较多的使用nand闪存存储数据,没有转动马达。NAND闪存是闪存的一种,用于存放数据的闪存介质,可以保存数据,具有存储密度高的特点,长时间使用有发生数据损坏的可能。在NAND闪存中,闪存块是NAND闪存(NAND FLASH)进行擦除的基本单元,它由多个页面(pages)组成,页面是NAND闪存的基本读写单位。
SSD固态硬盘主控制器1是SSD固态硬盘4的核心组成部分,是用于管理闪存2的模块,它一方面向主机3提供数据的输入输出接口,一方面利用闪存2的接口将数据写入闪存2或从闪存2中读取数据,它负责将用户数据保存到闪存2或者从闪存2读取数据提供给用户。SSD固态硬盘主控制器1内部实际还需要进行地址转换、垃圾回收、错误处理等。根据本发明需要,图2中仅画出本发明用到的几个模块。
SSD固态硬盘主控制器1包括闪存块状态管理模块11、纠错模块13(ECC模块)、中央处理器14、回收处理模块15。闪存块状态管理模块11内置有定时器。闪存块状态管理模块11管理的基本单元是闪存块。闪存块状态管理模块11通过对闪存块的状态管理,智能选取闪存块进行检测,及时将即将发生数据损坏的闪存块进行回收处理,达到保证闪存2上数据可靠的目的;通过对闪存块状态的监控,实现智能选取闪存块进行检测。闪存块状态管理模块11支持中央处理器14的初始化配置,闪存块状态管理模块11检测到满足条件的闪存块时,通知中央处理器14对指定的闪存块进行检测。在首次成盘初始化完成之后,闪存块状态管理模块11就可以正常工作了。成盘初始化指的是,SSD固态硬盘4通过烧录器写入到盘片当中,之后盘就可以正常使用了。纠错模块13也称为ECC模块,纠错模块13可以对闪存2上读取的数据进行纠错,并给出错误率数据。中央处理器14会将错误率数据发送给闪存块状态管理模块11,供其对该闪存块进行监控。中央处理器14负责控制器内部总的调度,可以请求纠错模块13产生校验码,请求纠错模块13对读出来的数据进行校验并获取错误率数据;对闪存块状态管理模块11进行初始化并更新闪存块状态数据;处理闪存块状态管理模块11给出的闪存块检测请求。使用过程中,中央处理器14负责对其中各个闪存块的状态信息进行更新。当闪存块需要检测时,闪存块状态管理模块11通知中央处理器14进行检测。
本发明中,设置第一阈值Y1、第二阈值Y2、第一概率值M、第二概率值N。第一阈值Y1为闪存块选取的数据错误率阈值;第二阈值Y2为闪存块检测的数据错误率阈值;第一概率值M是由闪存块的读写/擦除次数造成的数据错误概率值;第二概率值N是由对闪存2上的数据的读取次数造成的数据错误概率值。
如图1、4、5所示,本发明提出的SSD固态硬盘数据可靠性智能检测方法包括如下步骤:
(1)闪存块的初始化
在中央处理器14中设置各个闪存块的标号,并对闪存块是否有效、闪存块中编程完成的时间、闪存块的读取次数进行初始化,并初始化第一阈值Y1、第二阈值Y2。第一阈值Y1、第二阈值Y2是经验值,根据实际需要确定。上述参数需要写入程序当中。在闪存块状态管理模块11正常运作之前,需要对其进行初始化。首先需要配置的是当前使用闪存芯片的特性参数,包括:
(A)对于不同的读写/擦除次数,闪存中数据的理论保持时间,其中读写/擦除次数表示闪存块的编程和擦除的总次数;
(B)闪存在编程完成之后,在数据不可纠正之前最大可读取的次数;这些参数由闪存的出厂数据或数据手册获得,或由试验得到;
(C)初始化各个闪存块的状态参数
这些配置信息需要保持连贯性,在下电的时候,需要将其保存到闪存芯片上或者其他能够保存的地方。上电的时候需要将这些最新的状态信息加载到闪存块状态管理模块当中。
闪存块的状态参数包括:(C1)闪存块是否有效;(C2)闪存块中编程完成的时间;(C3)闪存块的读取次数;(C4)定时器模块12的定时器信息,包括设置定时器周期。
(2)计算第一概率值M
在定时器模块12的每一个定时器周期完成时,计算各个有效的闪存块的t1、t2,并通过t1、t2计算第一概率值M,其中
Figure BDA0001188768360000061
t1为闪存块编程完成后到当前时刻经历的时间,t2为闪存块编程完成之后,闪存2中数据的理论保持时间。
依据背景技术中闪存的特性,闪存芯片上的数据随着时间的推移,数据会发生错误,且发生错误的速度与读写/擦除次数(program/erase)有关。数据保持的时间与读写/擦除次数关系示意图如图3所示。图3中数据的理论数据保持时间和读写/擦除次数的关系可通过具体闪存芯片的数据手册得到,也可通过多次具体试验得到。M值可由读写/擦除次数决定。
定时器模块12用于定时更新M值,定时器模块12定时周期性轮询有效闪存块来更新各个闪存块的M值。根据经验,对于SLC闪存芯片,t2约为5年;对于MLC闪存芯片,t2约为3年。不同闪存芯片的t2值可由具体闪存芯片的数据手册或实际的试验值得出。
在已知读写/擦除次数的情况下,便可以查询到与该读写/擦除次数对应的数据保持时间。那么只需要记录闪存块编程完成的时间,那么后续很方便可以计算该闪存块编程完成后经历过的总时间,将该时间与数据保持的时间进行对比,并设置一个合适的阈值,便可以实现在数据损坏之前通知中央处理器14对该闪存块进行检测。
如果没有下电,则闪存块编程完成后经历过的总时间就是当前时间点减去闪存块编程完成的时间点。如果有下电,那么就需要把各个闪存块从编程完成到下电的所经历的时间进行保存,得到闪存块编程完成后经历过的总时间。计算闪存块编程完成后经历过的总时间时,不考虑各个闪存块从编程完成到下电的时间区间内闪存块未上电的时间。数据保持指的是闪存块编程完成之后,数据在闪存2当中可以保持的时间。时间是从闪存块编程完成后开始计算的。
(3)计算第二概率值N
中央处理器14对有效的闪存块的读取完成后,读取纠错模块13记录的该闪存块的实际数据错误率R,并计算该闪存块的k1、k2,通过k1、k2计算第二概率值N,其中
Figure BDA0001188768360000071
k1为当前的实际数据读取次数,k2为数据未发生错误的闪存块的理论最大数据读取次数。
依据闪存2的特性,在对闪存芯片进行读取时,会导致该闪存块上的数据产生轻微错误。错误随着读取的次数累加,最终超过纠错模块13可纠正的范围。根据经验,对于SLC闪存芯片,k2约为100万次;对于MLC闪存芯片,k2约为10万次。不同闪存芯片的k2值可由具体闪存芯片的数据手册和/或实际的试验值得出。因此只需要知道该闪存块读取的次数,便可以判断何时需要对该闪存块进行检测。以上参数可以从闪存原厂获取,也可以自己通过大规模测试得到。首先需要知道对颗粒读取多少次数据将发生错误的信息。数据保持时间等参数需要由闪存的出厂数据或数据手册获得或者自己试验得到。
当主机读取数据时,中央处理器14会通知闪存块状态管理模块11,闪存块状态管理模块11以此来更新值N和R。
在实际的读业务过程中,中央处理器14需要将从纠错模块13获取到的错误率统计数据发送给闪存块状态管理模块11进行统计管理,该数据信息可以更实时准确地了解当前闪存块的状态。纠错模块13是自动纠错并给出错误率数据的。纠错模块13纠错完成之后,由纠错模块13通过中央处理器14,中央处理器14主动去获取纠错模块13获取到的错误率统计数据。
(4)计算经验数据错误率P
根据步骤(3)中计算得到的N值、步骤(2)中计算得到的M值计算经验数据错误率P=M+N;
(5)判断闪存块是否为待检测闪存块
对于各个闪存块,若P≥Y1或R≥Y1中至少有一项成立,则设置该闪存块为待检测闪存块,并跳转到步骤(6),否则,跳转到步骤(2)。
假设通过特性1获取到闪存块数据错误的概率值M,通过特性2获取到的闪存块错误概率值为N,通过读流程获取的数据错误率统计值为R(即通过纠错模块13获取到的错误率统计数据)。通过闪存块的读写/擦除次数获取到在读写/擦除次数下对应的数据保持的值。闪存块编程之后总的时间与该数据保持比较获得M值。
当M+N或者R超过预设置的第一阈值Y1时,闪存块状态管理模块11就会给中央处理器14发起对该闪存块进行检测的请求。接着由中央处理器14抽样读取该闪存块中的页面,统计实际的错误率,以此判断是否需要对该闪存块进行回收处理。
M+N是一个经验值,表达的是两者共同作用下对数据错误率的影响,M+N在达到初始化的阈值之后,开始认为该闪存块可以且需要进行检测。R则是一个实际的值,反应当时实际的错误率的情况。
(6)对待检测闪存块进行检测并计算检测错误率
中央处理器14对待检测闪存块进行读取,并计算该闪存块的检测错误率Q。当中央处理器14接收到闪存块状态管理模块11的闪存块检测请求之后,需要对该闪存块进行读取以确定是否需要进行回收处理。主要流程如图4所示。
闪存块状态管理模块11闪存块检测处理步骤为:根据闪存块状态管理模块11请求中的闪存块标号,在该闪存块上选取多个页面进行读取,并对检测错误率Q进行统计;一个闪存块由若干个页面组成,比如东芝颗粒通常包括256个页面。在进行检测的时候,通常不需要全部读取,抽取部分页面即可。具体在闪存块中选取哪些页面以及选取页面的个数,由实际情况确定即可。
(7)判断闪存块是否需进行回收处理
在所有抽样页面读取完成之后,判断检测错误率Q是否超过第二阈值Y2,如果Q≥Y2成立,则说明该闪存块需要进行回收处理,则中央处理器14通知回收模块对该闪存块进行回收处理。在回收处理完成之后,中央处理器14通知闪存块状态管理模块11更新该闪存块的状态,闪存块状态管理模块11将该闪存块的状态设置为无效,至此闪存块状态管理模块11请求处理完成。第二阈值Y2对于某一种颗粒是一个固定的值。该值来源于对给颗粒的特性测试,也是一个经验值,根据实际需要确定;
(8)阈值更新
执行到此步说明该闪存块的错误率尚未达到第二阈值Y2,需要更新闪存块状态管理模块11,设置下次触发给闪存块检测的阈值条件。请求处理完成。若Q≥Y2不成立,则增大阈值Y1。如果中央处理器14对闪存块的检测没有达到回收处理的条件,还需要设置新的闪存块检测的数据错误率阈值。在M+N或者R达到第一阈值Y1之后,开始对该闪存块进行检测,但是很有可能达不到第二阈值Y2。此时需要对第一阈值Y1进行适当的微调,等待下一次满足该第一阈值Y1条件之后选取该闪存块进行检测是否满足第二阈值条件Y2,直到数据被回收走。对第一阈值Y1进行调整的范围即为将第一阈值Y1增大ΔY1,其中ΔY1的范围为[0.001%,5%]。也就是Y1是需要适当调节,Y2则是一个定值。其中,第一阈值Y1、第二阈值Y2的取值范围均为[0.1%,30%]。
闪存块状态管理模块11中保存了各个闪存块的状态管理信息,在正常业务过程中,需要中央处理器14对其中的数据进行更新,更新情况包括:
(A)新的闪存块编程完成后,中央处理器14通知闪存块状态管理模块11并附带时间信息,时间信息包括闪存块中编程完成的时间等;
(B)闪存块被擦除之后,中央处理器14通知闪存块状态管理模块11将该闪存块设置为无效;
(C)发生读业务时,中央处理器14通知闪存块状态管理模块11更新读取次数并进行错误率统计;
(D)在对某一个闪存块检测之后,如果未达到回收的条件,需要将新的阈值信息更新到闪存块状态管理模块11。
本发明还提出一种利用上述SSD固态硬盘数据可靠性智能检测方法的SSD固态硬盘数据可靠性智能检测装置,包括闪存2、对闪存2进行控制的SSD固态硬盘主控制器1,所述SSD固态硬盘主控制器1包括闪存块状态管理模块11、纠错模块13、中央处理器14,所述闪存块状态管理模块中设置有定时器模块12,所述SSD固态硬盘主控制器与闪存2连接,所述闪存块状态管理模块11、纠错模块13均与所述中央处理器14连接。
以上对本发明的实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明范围所作的均等变化与改进等,均应仍归属于本专利涵盖范围之内。

Claims (8)

1.一种SSD固态硬盘数据可靠性智能检测方法,SSD固态硬盘(4)中包括SSD固态硬盘主控制器(1)、闪存(2);所述闪存(2)包括闪存块,所述闪存块包括多个页面,其特征在于:所述SSD固态硬盘主控制器包括闪存块状态管理模块(11)、纠错模块(13),所述闪存块状态管理模块(11)中设置有定时器模块(12);所述SSD固态硬盘数据可靠性智能检测方法包括如下步骤:
(1)在中央处理器(14)设置各个闪存块的标号,并对闪存块是否有效、闪存块中编程完成的时间、闪存块的读取次数进行初始化,并初始化第一阈值Y1、第二阈值Y2
(2)在定时器模块(12)的每一个定时器周期完成时,计算各个有效的闪存块的t1、t2及第一概率值M其中,
Figure FDA0002228824880000011
t1为闪存块编程完成后到当前时刻经历的时间,t2为闪存块编程完成之后,闪存(2)中数据的理论保持时间;
(3)中央处理器(14)对有效的闪存块的读取完成后,读取纠错模块(13)记录的该闪存块的实际数据错误率R,并计算该闪存块的k1、k2、第二概率值N,其中
Figure FDA0002228824880000012
k1为当前的实际数据读取次数,k2为数据未发生错误的闪存块的理论最大数据读取次数;
(4)根据步骤(3)中计算得到的N值、步骤(2)中计算得到的M值计算经验数据错误率P=M+N;
(5)对于各个闪存块,若P≥Y1或R≥Y1中至少有一项成立,则设置该闪存块为待检测闪存块,并跳转到步骤(6),否则,跳转到步骤(2);
(6)中央处理器(14)对待检测闪存块进行读取,并计算该闪存块的检测错误率Q;
(7)判断Q≥Y2是否成立;若上式成立,则中央处理器(14)对该闪存块进行回收处理,且闪存块状态管理模块(11)将该闪存块的状态设置为无效。
2.根据权利要求1所述的SSD固态硬盘数据可靠性智能检测方法,其特征在于:还包括如下步骤:
(8)若Q≥Y2不成立,则增大阈值Y1
3.根据权利要求1或2所述的SSD固态硬盘数据可靠性智能检测方法,其特征在于:所述步骤(1)中,Y2的初始值由闪存(2)的出厂数据或数据手册获得或由试验得到。
4.根据权利要求1或2所述的SSD固态硬盘数据可靠性智能检测方法,其特征在于:所述步骤(2)中,t2由闪存(2)的出厂数据或数据手册获得,或由读写/擦除次数与闪存中数据的理论保持时间的对应关系得到,其中读写/擦除次数表示闪存块的编程和擦除的总次数。
5.根据权利要求1或2所述的SSD固态硬盘数据可靠性智能检测方法,其特征在于:所述步骤(3)中,k2由闪存(2)的出厂数据或数据手册获得或由试验得到。
6.根据权利要求1或2所述的SSD固态硬盘数据可靠性智能检测方法,其特征在于:所述步骤(6)中,中央处理器(14)选取待检测闪存块中的多个页面进行读取,该闪存块的检测错误率Q为待检测闪存块中所选取的的多个页面的总错误率。
7.一种实现权利要求1-6中任一项所述的SSD固态硬盘数据可靠性智能检测方法的SSD固态硬盘数据可靠性智能检测装置,包括闪存(2)、对闪存(2)进行控制的SSD固态硬盘主控制器(1),其特征在于:所述SSD固态硬盘主控制器(1)包括闪存块状态管理模块(11)、纠错模块(13)、中央处理器(14),所述闪存块状态管理模块中设置有定时器模块(12),所述SSD固态硬盘主控制器与闪存(2)连接,所述闪存块状态管理模块(11)、纠错模块(13)均与所述中央处理器(14)连接;
所述中央处理器(14):用于设置各个闪存块的标号,并对闪存块是否有效、闪存块中编程完成的时间、闪存块的读取次数进行初始化,并初始化第一阈值Y1、第二阈值Y2;且用于对有效的闪存块进行读取;且用于在对有效的闪存块的读取完成后,读取纠错模块(13)记录的该闪存块的实际数据错误率R,并计算该闪存块的第二概率值N;且用于对待检测闪存块进行读取,并计算该闪存块的检测错误率Q;且用于当Q≥Y2时对该闪存块进行回收处理;
所述定时器模块(12):用于在每一个定时器周期完成时计算M值;
所述纠错模块(13):用于记录闪存块的实际数据错误率R;
所述闪存块状态管理模块(11):用于当P≥Y1或R≥Y1中至少有一项成立时,设置该闪存块为待检测闪存块,且请求中央处理器对该闪存块进行检测;且用于当Q≥Y2成立时将该闪存块的状态设置为无效。
8.根据权利要求7所述的SSD固态硬盘数据可靠性智能检测装置,其特征在于:所述闪存(2)为NAND闪存。
CN201611199482.3A 2016-12-22 2016-12-22 Ssd固态硬盘数据可靠性智能检测方法及检测装置 Active CN106776095B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611199482.3A CN106776095B (zh) 2016-12-22 2016-12-22 Ssd固态硬盘数据可靠性智能检测方法及检测装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611199482.3A CN106776095B (zh) 2016-12-22 2016-12-22 Ssd固态硬盘数据可靠性智能检测方法及检测装置

Publications (2)

Publication Number Publication Date
CN106776095A CN106776095A (zh) 2017-05-31
CN106776095B true CN106776095B (zh) 2020-01-03

Family

ID=58899480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611199482.3A Active CN106776095B (zh) 2016-12-22 2016-12-22 Ssd固态硬盘数据可靠性智能检测方法及检测装置

Country Status (1)

Country Link
CN (1) CN106776095B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984131B (zh) * 2018-07-25 2021-07-16 浪潮电子信息产业股份有限公司 数据操作的处理方法以及相关装置
CN110837428B (zh) * 2018-08-16 2023-09-19 杭州海康威视***技术有限公司 存储设备管理方法及装置
CN109343796B (zh) * 2018-09-21 2022-03-01 新华三技术有限公司 一种数据处理方法和装置
CN109542667B (zh) * 2018-10-26 2023-03-24 珠海妙存科技有限公司 一种提高nand闪存数据可靠性的方法及装置
CN110018795A (zh) * 2019-04-11 2019-07-16 苏州浪潮智能科技有限公司 一种block状态的检测方法、装置、设备及存储介质
CN111863109A (zh) * 2020-07-08 2020-10-30 上海威固信息技术股份有限公司 一种三维闪存层间错误率模型及评估方法
CN112015338B (zh) * 2020-08-19 2021-07-23 山东大学 一种非易失性存储器查表巡检方法
CN112069004B (zh) 2020-08-21 2023-01-06 苏州浪潮智能科技有限公司 一种闪存芯片中块读取与页读取换算关系测试方法及***
CN112162935B (zh) * 2020-09-30 2021-06-08 深圳市时创意电子有限公司 存储芯片的数据处理方法、装置、计算机设备及存储介质
CN112347001B (zh) * 2020-10-13 2023-09-26 深圳市宏旺微电子有限公司 闪存垃圾回收的校验方法、装置及电子设备
CN112596676B (zh) * 2020-12-23 2023-12-22 北京浪潮数据技术有限公司 一种状态评估方法、装置及设备
CN114356211B (zh) * 2021-11-19 2023-08-29 苏州浪潮智能科技有限公司 一种存储空间的处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577342A (zh) * 2012-07-25 2014-02-12 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
CN104091617A (zh) * 2014-06-17 2014-10-08 深圳市江波龙电子有限公司 一种闪存存储设备检测的方法及装置
CN106021013A (zh) * 2016-03-22 2016-10-12 威盛电子股份有限公司 非挥发性存储器装置及其操作方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122636B2 (en) * 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577342A (zh) * 2012-07-25 2014-02-12 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
CN104091617A (zh) * 2014-06-17 2014-10-08 深圳市江波龙电子有限公司 一种闪存存储设备检测的方法及装置
CN106021013A (zh) * 2016-03-22 2016-10-12 威盛电子股份有限公司 非挥发性存储器装置及其操作方法

Also Published As

Publication number Publication date
CN106776095A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106776095B (zh) Ssd固态硬盘数据可靠性智能检测方法及检测装置
US10496535B2 (en) Power-safe data management system
US8464106B2 (en) Computer system with backup function and method therefor
US9042181B2 (en) Periodic erase operation for a non-volatile medium
US7774540B2 (en) Storage system and method for opportunistic write-verify
US8370720B2 (en) Mass storage device and method for offline background scrubbing of solid-state memory devices
CN110047546B (zh) 存储器***中的擦除管理
CN111752487B (zh) 一种数据恢复方法、装置及固态硬盘
US11714580B2 (en) Dynamic background scan optimization in a memory sub-system
KR100975164B1 (ko) 비휘발성 메모리 시스템에 대한 내부 보수 스케줄 요청
WO2019178845A1 (zh) 一种存储介质垃圾回收方法、存储介质和程序产品
US11200003B2 (en) Bounded latency and command non service methods and apparatus
WO2016172235A1 (en) Method and system for limiting write command execution
EP3292463B1 (en) Media region management for data storage device
US10204693B2 (en) Retiring computer memory blocks
US10324648B1 (en) Wear-based access optimization
CN108874574B (zh) 一种垃圾回收处理方法及相关装置
US9965181B2 (en) Hybrid-HDD with multiple caching modes
CN117931091B (zh) 一种异常掉电处理方法、装置、设备、介质及产品
CN108564981B (zh) 一种存储装置数据安全动态监控方法
CN112347001B (zh) 闪存垃圾回收的校验方法、装置及电子设备
US20170017406A1 (en) Systems and methods for improving flash-oriented file system garbage collection
US20200097215A1 (en) Adaptive solid state device management based on data expiration time
US10564886B2 (en) Methods and apparatus for controlling flash translation layer recycle from host
US11443826B2 (en) Storage area retirement in a storage device

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