CN109164978A - 闪存管理方法、闪存存储设备及计算机可读存储介质 - Google Patents
闪存管理方法、闪存存储设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109164978A CN109164978A CN201810844611.2A CN201810844611A CN109164978A CN 109164978 A CN109164978 A CN 109164978A CN 201810844611 A CN201810844611 A CN 201810844611A CN 109164978 A CN109164978 A CN 109164978A
- Authority
- CN
- China
- Prior art keywords
- data
- flash memory
- reading
- write
- error correction
- 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
- 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
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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]
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明适用于数据处理技术领域,提供了一种闪存管理方法、闪存存储设备及计算机可读存储介质,其中,一种闪存管理方法,通过在读取闪存中目标存储位置上的数据时,调用错误检测和纠正工具对读取的数据进行纠错;判断数据的错误率是否小于预设的第一阈值;若否,将纠错后的数据写入所述目标存储位置,写入完成后,读取闪存中目标存储位置上的数据,调用错误检测和纠正工具对读取的数据进行纠错,并循环执行纠错和判断数据的错误率大小;若是,数据读取结束;提高了闪存数据存储的稳定性。
Description
技术领域
本发明属于闪存数据管理技术领域,尤其涉及一种闪存管理方法、闪存存储设备及计算机可读存储介质。
背景技术
闪存(Flash)是一种非挥发性的半导体存储芯片,具有体积小、功耗低、无磁头等运动器件、不易受物理破坏的优点,是现有便携式存储设备的理想存储介质。以闪存为存储介质的设备包括有U盘、SD卡(Secure Digital Memory Card,安全数码卡)、SSD(SolidState Disk,固态硬盘)、MP3、eMMC(嵌入式多媒体卡)等闪存存储设备。
闪存通常具有如下的物理结构:每片封装片分为一颗或多个晶粒(Dice);每颗晶粒分为多个块(Block);每个块分为多个页面(Page)。对闪存的数据操作有三种类型:擦除、写入和读取,其中写入操作也称为编程操作,且写入操作只能在空的单元或者已擦除成空的单元内进行。受闪存的物理特性影响,擦除时必须以块为单位,写入时必须以页为单位。读取操作则具有比较大的随意性,多数闪存可以以字节为单位读取。
闪存存储设备包括主控芯片和闪存,操作闪存的主控芯片一般都会有纠错功能,在闪存内数据出错的情况下,可以把错误的数据纠正回来。如ECC(Error Code Correct,差错纠正)纠错功能,但是ECC纠错能力是有限的,当闪存内数据出错的比特数目超出了ECC的最大纠错能力时,从闪存内读取的数据就是错误的了,就会导致数据损坏或者数据丢失。
现有技术中,闪存存储设备在长时间存储,高温或者其他条件下,会漏电使得电子不足,导致闪存存储设备中存储的数据的错误率升高,从而超出纠错工具可以纠错的范围,造成闪存存储设备中数据丢失,导致数据存储不稳定的问题。
发明内容
有鉴于此,本发明实施例提供了一种闪存管理方法、闪存存储设备及计算机可读存储介质,以提高对数据进行存储的稳定性。本发明实施例的第一方面提供了一种闪存管理方法,包括:
步骤A1:在读取闪存中目标存储位置上的数据时,调用错误检测和纠正工具对读取的数据进行纠错;
步骤A2:判断所述数据的错误率是否小于预设的第一阈值;若否,执行步骤A3;若是,执行步骤A4;
步骤A3:将纠错后的数据写入所述目标存储位置,写入完成后,读取闪存中目标存储位置上的数据,回到步骤A1,并循环执行步骤A1、步骤A2;
步骤A4:数据读取结束。
本发明实施例的第二方面提供了一种闪存存储设备,包括闪存、控制器以及存储在所述闪存和/或所述控制器的内存中并可在所述控制器上运行的计算机程序,所述控制器执行所述计算机程序时实现以下步骤:
步骤A1:在读取闪存中目标存储位置上的数据时,调用错误检测和纠正工具对读取的数据进行纠错;
步骤A2:判断所述数据的错误率是否小于预设的第一阈值;若否,执行步骤A3;若是,执行步骤A4;
步骤A3:将纠错后的数据写入所述目标存储位置,写入完成后,读取闪存中目标存储位置上的数据,回到步骤A1,并循环执行步骤A1、步骤A2;
步骤A4:数据读取结束。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被控制器执行时实现以下步骤:
步骤A1:在读取闪存中目标存储位置上的数据时,调用错误检测和纠正工具对读取的数据进行纠错;
步骤A2:判断所述数据的错误率是否小于预设的第一阈值;若否,执行步骤A3;若是,执行步骤A4;
步骤A3:将纠错后的数据写入所述目标存储位置,写入完成后,读取闪存中目标存储位置上的数据,回到步骤A1,并循环执行步骤A1、步骤A2;
步骤A4:数据读取结束。
实施本发明实施例提供的一种闪存管理方法、闪存及计算机可读存储介质具有以下有益效果:
本发明实施例,通过在读取闪存中目标存储位置上的数据时,调用错误检测和纠正工具对读取的数据进行纠错;判断数据的错误率是否小于预设的第一阈值;若否,将纠错后的数据写入所述目标存储位置,写入完成后,读取闪存中目标存储位置上的数据,调用错误检测和纠正工具对读取的数据进行纠错,并循环执行纠错和判断数据的错误率大小;若是,数据读取结束;提高了闪存数据存储的稳定性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种闪存管理方法的实现流程图;
图2是本发明另一实施例提供的一种闪存管理方法的实现流程图;
图3是本发明再一实施例提供的一种闪存管理方法的实现流程图;
图4是本发明又一实施例提供的一种闪存管理方法的实现流程图;
图5是本发明一实施例提供的一种闪存装置的结构框图;
图6是本发明另一实施例提供的一种闪存装置的结构框图;
图7是本发明再一实施例提供的一种闪存存储设备的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例,通过在读取闪存中的数据时,调用ECC对读取的数据进行纠错,并将纠错后的数据存储至RAM中,获取数据纠错过程中的错误率,当错误率大于预设阈值时,纠错后的数据复写至存储单元中得到错误率小于或等于预设阈值的目标数据,解决了闪存对数据进行存储时,存在稳定性较低的问题。
在本发明实施例中,流程的执行主体为闪存存储设备,闪存存储设备中包括控制器和用于存储数据的闪存。图1示出了本发明一实施例提供的闪存管理方法的实现流程图,详述如下:
步骤A1:在读取闪存中目标存储位置上的数据时,调用错误检测和纠正工具对读取的数据进行纠错。
步骤A2:判断所述数据的错误率是否小于预设的第一阈值;若否,执行步骤A3;若是,执行步骤A4。
步骤A3:将纠错后的数据写入所述目标存储位置,写入完成后,读取闪存中目标存储位置上的数据,回到步骤A1,并循环执行步骤A1、步骤A2;
步骤A4:数据读取结束。
在步骤A3中,将纠错后的数据写入所述目标存储位置,不需要预先擦除所述目标存储位置上的数据,而是将纠错后的数据直接写入所述目标存储位置。
本发明实施例,通过在读取闪存中目标存储位置上的数据时,调用错误检测和纠正工具对读取的数据进行纠错;判断数据的错误率是否小于预设的第一阈值;若否,将纠错后的数据写入所述目标存储位置,写入完成后,读取闪存中目标存储位置上的数据,调用错误检测和纠正工具对读取的数据进行纠错,并循环执行纠错和判断数据的错误率大小;若是,数据读取结束;提高了闪存数据存储的稳定性。
图2示出了本发明另一实施例提供的闪存管理方法的实现流程图,详述如下:
作为本实施例一种可能实现的方式,闪存管理方法,还包括:
步骤B1:在写入数据至闪存中目标存储位置上时,待数据写入完成后,读取闪存中目标存储位置上的数据。
步骤C1:在写入数据至闪存中目标存储位置上时,待数据写入完成后,记录写入数据的时间,当写入数据的时间间隔达到预设的第二阈值时,读取闪存中目标存储位置上的数据。
在本实施例中,第二阈值通过闪存的类型、闪存的使用环境分析所述闪存中数据的出错概率之后设定。
结合图1或图2,作为本实施例一种可能实现的方式,闪存管理方法,还包括:
对将纠错后的数据写入所述目标存储位置的写入次数进行记数,在步骤A2之后,且在步骤A3之前,执行步骤:判断所述写入次数是否达到预设的第三阈值;若是,执行步骤:申请闪存中新的存储位置,将纠错后的数据写入所述新的存储位置;若否,执行步骤A3。
需要说明的是,首先选择存有有效数据的存储单元,然后用同样的数据对存储单元做一次或一次以上的编程操作,直到达到停止条件(停止条件一般为校验错误字节数不超过ECC的阈值,所述ECC阈值小余所述ECC最大纠错字节数),最后结束重复编程流程。
本技术重复编程的单元,是一类单元的集合,包括且不限于“页”、“相关性页”等。在nand flash中,存储单元可以是page,同一组plane的page。在MLC、TLC、QLC nand flash中,还可以是同一组cell里的几个page。在nor flash中,存储单元可以是一个byte、多个byte。存储单元,在其它存储装置中,可以是其它的,这里不一一列举。
本技术的选择存有有效数据的存储单元的方法,是一类集合,凡是用到后面重复编程的,都在此范围内。
本技术里每次重复编程的原始数据,是和当前单元最开始编程的原始数据,符合大于90%的相似度。
本技术的重复编程次数,是一类集合,凡是用到前面重复编程的,都在此范围内。
为了更好理解本实施例,增加以下场景:
一、host写数据到闪存存储设备的情况:
1)从host接收数据到闪存存储设备的ram中;
2)数据编程(编程即数据写入)到闪存存储设备的位置A;
3)读取A的数据;
4)校验读取的数据,不符合要求重做步骤2)。
二、读取数据时,如host读闪存存储设备,或闪存存储设备内部的各种读取行为,如:垃圾回收,动态读校验时(闪存设备空闲的时候会读校验,ecc超过阈值,重新编程)。
1)读取闪存存储设备位置A的数据,放到闪存存储设备ram中;
2)如果数据可纠错,且错误率超过阈值,则继续;
3)把ram中的数据编程到闪存存储设备的位置A;
4)读取位置A的数据;
5)校验读取的数据,不符合要求重做步骤3)。
三、闪存存储设备里面的数据,错误率会随着时间而提高。因此,在本实施方式中,对闪存存储设备里面的有效数据的编程时间做记录管理,在达到一定的时间间隔后(所述间隔时间需要根据闪存的类型、使用环境如温度等进行统计分析,分析其出错的概率之后设定,如闪存类型为SLC闪存,则间隔时间可以设置长一些;如闪存类型为TLC闪存,则间隔时间可以设置短一些),对数据做重新编程操作,降低数据错误率。
1)数据写到闪存存储设备的位置A,记录写入时间;
2)计算写入时间,间隔达到一定值则继续;
3)读取闪存存储设备位置A的数据,放到闪存存储设备ram中;
4)如果数据可纠错,且错误率超过阀值,则继续;
5)把ram中的数据编程到闪存存储设备的位置A;
6)读取位置A的数据;
7)校验读取的数据,不符合要求重做步骤5)。
图3示出了本发明再一实施例提供的闪存管理方法的实现流程图,详述如下:
S11:若检测到用于从存储单元的目标位置中读取第一数据的操作指令,则调用数据错误检测和纠正工具对所述第一数据进行纠错,并将纠错后的第一数据读取至随机存储器RAM中,得到第二数据。
在步骤S11中,第一数据为写入存储单元中的数据,或者是从存储单元中读取出来的数据。第二数据为暂存于闪存中控制单元的随机存储器(Random Access Memory,RAM)中的数据。
需要说明的是,为了验证存储单元中第一数据的可靠性,在将第一数据写入存储单元中之后,生成用于从存储单元中读取第一数据的操作指令,通过读取第一数据并对第一数据的错误率进行确定,以获悉存储单元中第一数据的可靠性。
在本申请的所有实施例中,存储单元可以包括闪存芯片,内存芯片可以为flash存储芯片,例如,SLC、MLC、TLC、QLC nandflash或者nor flash。
置于何时还会检测到用于从存储单元中读取第一数据的操作指令,可以包括但不仅限于以下场景。
场景:若当前时间为进行闪存管理的预设时间点,则检测到用于从存储单元中读取第一数据的操作指令。
例如,通过与终端的外部接口相连,将数据A写入闪存的存储单元中,并对数据A设定进行闪存管理的预设时间点。通过获取当前时间,并在当前时间为进行闪存管理的预设时间点时,发起用于从存储单元中读取第一数据的操作指令,以实现对数据A的错误率监控管理。
S12:获取调用所述数据错误检测和纠正工具对所述第一数据进行纠错过程中确定的错误率。
在步骤S12中,错误率用于描述第一数据与第二数据之间的差异程度。
在本实施例中,闪存中设有数据错误检测和纠正工具,例如,ECC(ErrorCorrecting Code,ECC)脚本,用于测算从存储单元中读取第一数据过程中确定的第一数据的错误率。
需要说明的是,通过调用ECC对第一数据进行纠错的过程中,由于ECC脚本的数据错误检查和纠正机制,当数据位每增加一倍,ECC只增加一位检验位。例如,当数据位是8位时,则需要5位来进行ECC错误检查和纠正,当数据位为16位时ECC位为6位,当数据位为32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。
可以理解的是,在实际应用中,本领域技术人员基于不同的需求,以及数据的具体结构,能够获悉如何配置ECC脚本的内容,故此处不再赘述。
S13:若所述错误率大于预设阈值,则将所述第二数据复写至所述目标位置中,以得到第一目标数据,所述第一目标数据的第一错误率小于或等于预设阈值。
在步骤S13中,将第二数据复写至存储单元的目标位置中,具体是将第二数据的内容重复存储单元中第一数据所在的位置,即在第一数据未被擦除的条件下,于第一数据被存储的存储空间中,重复多次写入第二数据的内容。
在本实施例中,预设阈值小于所述ECC的最大可纠错数。
需要说明的是,错误率与预设阈值之间的大小比较,决定了是否将第二数据复写至存储单元中。
以上可以看出,本发明实施例提供的一种闪存管理方法,通过在读取第一数据时,调用数据错误检测和纠正工具对第一数据进行纠错,并将纠错后的第一数据存储至RAM中,得到第二数据,获取第一数据在进行纠错过程中的错误率,当错误率大于预设阈值时,将第二数据复写至存储单元中得到第一错误率小于或等于预设阈值的第一目标数据,提高了闪存存储数据的稳定性。
图4示出了本发明又一实施例提供的一种闪存管理方法的具体实现流程图。参见图4所示,相对于图3所述实施例,本实施例提供的一种闪存管理方法中还包括S21,具体详述如下:
进一步地,作为本发明另一实施例,在若检测到用于从存储单元的目标位置中读取第一数据的操作指令,则调用数据错误检测和纠正工具对所述第一数据进行纠错,并将纠错后的第一数据读取至随机存储器RAM中,得到第二数据之前,还包括:
S21:若检测到用于将第一数据写入存储单元的目标位置中的第一预设指令,则在所述第一数据写入所述存储单元后,生成所述用于从存储单元的目标位置中读取第一数据的操作指令。
在步骤S21中,第一预设指令用于将第一数据写入存储单元的目标位置中,该第一预设指令可以是在闪存与主机进行连接后,主机向闪存存储设备发送写入第一数据的请求时,由闪存存储设备中的控制器响应主机发送的写入第一数据的请求所生成。
需要说明的是,第一数据被写入存储单元的目标位置后,由闪存存储设备生成用于从存储单元的目标位置中读取第一数据的操作指令。
在本实施例中,闪存存储设备检测到用于从存储单元的目标位置中读取第一数据的操作指令,则调用数据错误检测和纠正工具对第一数据进行纠错,并将纠错后的第一数据读取至随机存储器RAM中,得到第二数据;闪存存储设备通过判断调用数据错误检测和纠正工具,对第一数据进行纠错过程中确定的错误率是否大于预设阈值,进而决定是否对存储单元的目标位置中的数据进行复写。具体地,当错误率大于预设阈值,则将第二数据复写至目标位置中,以得到第一错误率小于或等于预设阈值的第一目标数据。
作本申请的一个实施例,步骤S13具体包括:将所述第二数据写入所述目标位置N次,得到第四数据,N为等于或大于1的整数;调用所述数据错误检测和纠正工具获取所述第四数据的错误率;若所述第四数据的错误率小于或等于所述预设阈值,则将所述第四数据识别为所述目标数据。
作本申请的一个实施例,在调用所述ECC获取所述第四数据的错误率之后,还包括:
若所述第四数据的错误率大于所述预设阈值,则将所述第二数据写入所述预设存储位置N次,以得到第五数据,其中,N为等于或大于1的整数,所述第五数据的错误率小于或等于所述预设阈值。
需要说明的是,预设存储位置为存储单元中除了目标位置以为的其他位置,具体是未写入数据的空白区域。
在本实施例中,将第二数据写入目标位置N次,得到第四数据,如果第四数据的错误率大于预设阈值,则表示该存储单元中目标位置出现物理故障,不适合存储数据,将第二数据写入存储单元中的其他位置,保证数据的完整性。
在本申请的所有实施例中,预设存储位置和目标位置,都可以包括且不限于存储芯片中的“页”、“相关性页”等。在nand flash中,可以是page,同一组plane的page。在MLC、TLC、QLC nandflash中,还可以是同一组cell里的几个page。在nor flash中,可以是一个字节、多个字节。
在数据存储至存储单元之后,由于数据长时间存储在存储单元中,存储单元中的数据会因为周围环境的温度、湿度等环境因素变化,导致其内部电子衰减的变化,进而造成数据丢失。
作本申请的一个实施例,为了避免长时间存储在存储单元中的数据出现数据丢失现象,闪存管理方法还可以包括与步骤S13并列的步骤:
对写入存储单元的目标位置中的第一数据的写入时长进行计时;若所述第一数据的写入时长等于或大于预设检测时长,则生成从存储单元的目标位置中读取第一数据的操作指令,调用所述数据错误检测和纠正工具对所述第一数据进行纠错,并将纠错后的第一数据读取至所述RAM中,得到第三数据;获取调用所述数据错误检测和纠正工具对所述第一目标数据进行纠错过程中确定的第二错误率;若所述第二错误率大于所述预设阈值,则将所述第三数据复写至所述目标位置中,以得到第二目标数据,所述第二目标数据的第三错误率小于或等于所述预设阈值。
需要说明的是,本申请中通过调用数据错误检测和纠正工具对第一数据进行纠错,并将纠错后的第一数据读取至RAM中,得到参考数据,也即第三数据,在第二错误率大于预设阈值时,将该第三数据复写至目标位置中,进而能够保证存储在存储单元中的数据在长时间存储后,其数据内容不变,提高了闪存的数据存储稳定性。
本发明实施例本发明实施例提供的一种闪存管理方法,通过在读取第一数据时,调用数据错误检测和纠正工具对第一数据进行纠错,并将纠错后的第一数据存储至RAM中,得到第二数据,获取第一数据在进行纠错过程中的错误率,当错误率大于预设阈值时,将第二数据复写至存储单元中得到第一错误率小于或等于预设阈值的第一目标数据,提高了闪存管理数据的稳定性。
图5示出了本发明一实施例提供的一种闪存装置的结构框图,该闪存装置包括的各单元用于执行图2对应的实施例中的各步骤。具体请参阅图2与图2所对应的实施例中的相关描述,此处不再赘述。
图6示出了本发明另一实施例提供的一种闪存装置的结构框图,该闪存装置包括的各单元用于执行图4对应的实施例中的各步骤。具体请参阅图4与图4所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。
参见图6,所述闪存装置30包括:第一执行单元31、第一获取单元32以及第二执行单元33。具体地:
第一执行单元31,用于若检测到用于从存储单元的目标位置中读取第一数据的操作指令,则调用数据错误检测和纠正工具对所述第一数据进行纠错,并将纠错后的第一数据读取至随机存储器RAM中,得到第二数据。
第一获取单元32,用于获取调用所述数据错误检测和纠正工具对所述第一数据进行纠错过程中确定的错误率。
执行单元33,用于若所述错误率大于预设阈值,则将所述第二数据复写至所述目标位置中,以得到第一目标数据,所述第一目标数据的第一错误率小于或等于预设阈值。
作为本实施例一种可能实现的方式,闪存装置30还包括:指令生成单元301。具体地:
指令生成单元301,用于若检测到用于将第一数据写入存储单元的目标位置中的第一预设指令,则在所述第一数据写入所述存储单元后,生成所述用于从存储单元的目标位置中读取第一数据的操作指令。
作为本实施例一种可能实现的方式,闪存装置还包括:计时单元、第三执行单元、第二获取单元以及第四执行单元。
计时单元,用于对所述第一数据写入至所述目标位置中的写入时长进行计时。
第三执行单元,用于若所述第一数据的写入时长等于或大于预设检测时长,则调用所述数据错误检测和纠正工具对所述第一目标数据进行纠错,并将纠错后的第一目标数据读取至所述RAM中,得到第三数据。
第二获取单元,用于获取调用所述数据错误检测和纠正工具对所述第一数据进行纠错过程中确定的第二错误率。
第四执行单元,用于若所述第二错误率大于所述预设阈值,则将所述第三数据复写至所述目标位置中,以得到第二目标数据,所述第二目标数据的第三错误率小于或等于所述预设阈值。
作为本实施例一种可能实现的方式,第二执行单元33具体用于,将所述第二数据写入所述目标位置N次,得到第四数据,N为等于或大于1的整数;调用所述数据错误检测和纠正工具获取所述第四数据的错误率;若所述第四数据的错误率小于或等于所述预设阈值,则将所述第四数据识别为所述目标数据。
作为本实施例一种可能实现的方式,第二执行单元33具体用于,若所述第四数据的错误率大于所述预设阈值,则将所述第二数据写入所述存储单元中的预设存储位置N次,以得到第五数据,其中,N为等于或大于1的整数,所述第五数据的错误率小于或等于所述预设阈值。
图7是本发明再一实施例提供的一种闪存存储设备的示意图。如图7所示,该实施例的闪存存储设备6包括:控制器60、闪存61以及存储在所述闪存61和/或所述控制器60的内存中并可在所述控制器60上运行的计算机程序62,例如确定用户风险等级的程序。所述控制器60执行所述计算机程序62时实现上述各个闪存管理方法实施例中的步骤,例如图1、图2、图3或图4所示的步骤。或者,所述控制器60执行所述计算机程序62时实现上述各装置实施例中各单元的功能,例如图6所示模块31至33的功能以及模块301的功能。
示例性的,所述计算机程序62可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述闪存61中,并由所述控制器60执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述闪存存储设备6中的执行过程。
图7仅仅是闪存存储设备6的示例,并不构成对闪存存储设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述闪存还可以包括输入输出设备、网络接入设备、总线等。
所称控制器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被控制器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种闪存管理方法,其特征在于,包括:
步骤A1:在读取闪存中目标存储位置上的数据时,调用错误检测和纠正工具对读取的数据进行纠错;
步骤A2:判断所述数据的错误率是否小于预设的第一阈值;若否,执行步骤A3;若是,执行步骤A4;
步骤A3:将纠错后的数据写入所述目标存储位置,写入完成后,读取闪存中目标存储位置上的数据,回到步骤A1,并循环执行步骤A1、步骤A2;
步骤A4:数据读取结束。
2.根据权利要求1所述的闪存管理方法,其特征在于,还包括:
步骤B1:在写入数据至闪存中目标存储位置上时,待数据写入完成后,读取闪存中目标存储位置上的数据。
3.根据权利要求1所述的闪存管理方法,其特征在于,还包括:
步骤C1:在写入数据至闪存中目标存储位置上时,待数据写入完成后,记录写入数据的时间,当写入数据的时间间隔达到预设的第二阈值时,读取闪存中目标存储位置上的数据。
4.根据权利要求3所述的闪存管理方法,其特征在于,所述第二阈值通过闪存的类型、闪存的使用环境分析所述闪存中数据的出错概率之后设定。
5.根据权利要求1-4任一项所述的闪存管理方法,其特征在于,还包括:
对将纠错后的数据写入所述目标存储位置的写入次数进行记数,在步骤A2之后,且在步骤A3之前,执行步骤D1;
步骤D1:判断所述写入次数是否达到预设的第三阈值;若是,执行步骤D2;若否,执行步骤A3;
步骤D2:申请闪存中新的存储位置,将纠错后的数据写入所述新的存储位置。
6.一种闪存存储设备,其特征在于,所述闪存存储设备包括闪存、控制器以及存储在所述闪存和/或所述控制器的内存中并可在所述控制器上运行的计算机程序,所述控制器执行所述计算机程序时实现如下步骤:
步骤A1:在读取闪存中目标存储位置上的数据时,调用错误检测和纠正工具对读取的数据进行纠错;
步骤A2:判断所述数据的错误率是否小于预设的第一阈值;若否,执行步骤A3;若是,执行步骤A4;
步骤A3:将纠错后的数据写入所述目标存储位置,写入完成后,读取闪存中目标存储位置上的数据,回到步骤A1,并循环执行步骤A1、步骤A2;
步骤A4:数据读取结束。
7.根据权利要求6项所述的闪存存储设备,其特征在于,所述控制器执行所述计算机程序时还实现如下步骤:
步骤B1:在写入数据至闪存中目标存储位置上时,待数据写入完成后,读取闪存中目标存储位置上的数据。
8.根据权利要求6项所述的闪存存储设备,其特征在于,所述控制器执行所述计算机程序时还实现如下步骤:
步骤C1:在写入数据至闪存中目标存储位置上时,待数据写入完成后,记录写入数据的时间,当写入数据的时间间隔达到预设的第二阈值时,读取闪存中目标存储位置上的数据。
9.根据权利要求8项所述的闪存存储设备,其特征在于,所述第二阈值通过闪存的类型、闪存的使用环境分析所述闪存中数据的出错概率之后设定。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被控制器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810844611.2A CN109164978B (zh) | 2018-07-27 | 2018-07-27 | 闪存管理方法、闪存存储设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810844611.2A CN109164978B (zh) | 2018-07-27 | 2018-07-27 | 闪存管理方法、闪存存储设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109164978A true CN109164978A (zh) | 2019-01-08 |
CN109164978B CN109164978B (zh) | 2021-09-24 |
Family
ID=64898509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810844611.2A Active CN109164978B (zh) | 2018-07-27 | 2018-07-27 | 闪存管理方法、闪存存储设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109164978B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992446A (zh) * | 2019-04-12 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种固态硬盘纠错方法及相关装置 |
CN111625200A (zh) * | 2020-05-29 | 2020-09-04 | 中国科学院微电子研究所 | 一种非易失性存储器的读取方法、装置及系统 |
CN113010338A (zh) * | 2021-02-19 | 2021-06-22 | 山东英信计算机技术有限公司 | 一种内存ce的漏错阈值调整方法、装置、设备及介质 |
CN113470728A (zh) * | 2021-06-29 | 2021-10-01 | 成都佰维存储科技有限公司 | 纠错能力测试方法、装置、可读存储介质及电子设备 |
CN114442905A (zh) * | 2020-10-31 | 2022-05-06 | 华为技术有限公司 | 数据存储方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073563A (zh) * | 2011-02-23 | 2011-05-25 | 深圳市江波龙电子有限公司 | 闪存设备、闪存设备中存储块的管理方法及系统 |
CN102203740A (zh) * | 2011-05-27 | 2011-09-28 | 华为技术有限公司 | 数据处理方法、装置及系统 |
CN103955431A (zh) * | 2014-04-11 | 2014-07-30 | 深圳市江波龙电子有限公司 | 一种闪存存储设备中数据管理的方法及装置 |
CN103984506A (zh) * | 2014-04-30 | 2014-08-13 | 深圳市江波龙电子有限公司 | 闪存存储设备数据写的方法和系统 |
CN105867833A (zh) * | 2015-01-21 | 2016-08-17 | 深圳市硅格半导体有限公司 | 数据存储装置及数据存储方法 |
US20170077960A1 (en) * | 2014-05-29 | 2017-03-16 | Netapp, Inc. | Adaptively strengthening ecc for solid state cache |
CN108052414A (zh) * | 2017-12-28 | 2018-05-18 | 湖南国科微电子股份有限公司 | 一种提升ssd工作温度范围的方法及系统 |
-
2018
- 2018-07-27 CN CN201810844611.2A patent/CN109164978B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073563A (zh) * | 2011-02-23 | 2011-05-25 | 深圳市江波龙电子有限公司 | 闪存设备、闪存设备中存储块的管理方法及系统 |
CN102203740A (zh) * | 2011-05-27 | 2011-09-28 | 华为技术有限公司 | 数据处理方法、装置及系统 |
CN103955431A (zh) * | 2014-04-11 | 2014-07-30 | 深圳市江波龙电子有限公司 | 一种闪存存储设备中数据管理的方法及装置 |
CN103984506A (zh) * | 2014-04-30 | 2014-08-13 | 深圳市江波龙电子有限公司 | 闪存存储设备数据写的方法和系统 |
US20170077960A1 (en) * | 2014-05-29 | 2017-03-16 | Netapp, Inc. | Adaptively strengthening ecc for solid state cache |
CN105867833A (zh) * | 2015-01-21 | 2016-08-17 | 深圳市硅格半导体有限公司 | 数据存储装置及数据存储方法 |
CN108052414A (zh) * | 2017-12-28 | 2018-05-18 | 湖南国科微电子股份有限公司 | 一种提升ssd工作温度范围的方法及系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992446A (zh) * | 2019-04-12 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种固态硬盘纠错方法及相关装置 |
CN111625200A (zh) * | 2020-05-29 | 2020-09-04 | 中国科学院微电子研究所 | 一种非易失性存储器的读取方法、装置及系统 |
CN111625200B (zh) * | 2020-05-29 | 2024-02-27 | 合肥中科智存科技有限公司 | 一种非易失性存储器的读取方法、装置及系统 |
CN114442905A (zh) * | 2020-10-31 | 2022-05-06 | 华为技术有限公司 | 数据存储方法、装置、设备及存储介质 |
CN113010338A (zh) * | 2021-02-19 | 2021-06-22 | 山东英信计算机技术有限公司 | 一种内存ce的漏错阈值调整方法、装置、设备及介质 |
CN113010338B (zh) * | 2021-02-19 | 2022-11-15 | 山东英信计算机技术有限公司 | 一种内存ce的漏错阈值调整方法、装置、设备及介质 |
CN113470728A (zh) * | 2021-06-29 | 2021-10-01 | 成都佰维存储科技有限公司 | 纠错能力测试方法、装置、可读存储介质及电子设备 |
CN113470728B (zh) * | 2021-06-29 | 2023-11-21 | 成都佰维存储科技有限公司 | 纠错能力测试方法、装置、可读存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109164978B (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109164978A (zh) | 闪存管理方法、闪存存储设备及计算机可读存储介质 | |
TWI591631B (zh) | 更新記憶體內讀取電壓之系統與方法 | |
US9053808B2 (en) | Flash memory with targeted read scrub algorithm | |
US8164967B2 (en) | Systems and methods for refreshing non-volatile memory | |
TWI467591B (zh) | 於非揮發記憶體系統中損壞區塊隔離的方法及其相關非揮發記憶體器件 | |
US8732519B2 (en) | Method for using bad blocks of flash memory | |
US8996936B2 (en) | Enhanced error correction in memory devices | |
US8392794B2 (en) | Non-volatile memory device and data processing method thereof | |
EP2530594A1 (en) | System and method of tracking error data within a storage device | |
CN103984506B (zh) | 闪存存储设备数据写的方法和系统 | |
US9129689B2 (en) | Tracking erase pulses for non-volatile memory | |
TW201324127A (zh) | 資料儲存裝置及使用多重讀取電壓以校正位元值之方法 | |
KR20110036816A (ko) | 고체 상태 메모리의 소거 횟수에 따라 에러를 정정하기 위한 방법과 장치 | |
TWI633428B (zh) | 資料儲存裝置與記憶體裝置之資料處理方法 | |
US20160005464A1 (en) | Counter for write operations at a data storage device | |
CN112347001B (zh) | 闪存垃圾回收的校验方法、装置及电子设备 | |
CN112185453A (zh) | 读干扰测试方法、装置、计算机可读存储介质及电子设备 | |
CN109411002A (zh) | 一种数据读取的方法及闪存控制器 | |
CN110444243A (zh) | 存储设备读错误纠错能力的测试方法、系统及存储介质 | |
CN103811070B (zh) | 一种高可靠性NAND Flash的读取方法及其系统 | |
CN110910938A (zh) | 一种数据纠正方法、装置、存储设备及存储介质 | |
US10734079B1 (en) | Sub block mode read scrub design for non-volatile memory | |
CN115470052B (zh) | 存储芯片的坏块检测方法、检测装置及存储介质 | |
TWI442406B (zh) | 針對一快閃記憶體的控制器之錯誤管理機制來提升驗證效率之方法以及相關之記憶裝置及其控制器 | |
CN110277132A (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 |