CN116665745A - 一种闪存读取方法及装置 - Google Patents
一种闪存读取方法及装置 Download PDFInfo
- Publication number
- CN116665745A CN116665745A CN202310363141.9A CN202310363141A CN116665745A CN 116665745 A CN116665745 A CN 116665745A CN 202310363141 A CN202310363141 A CN 202310363141A CN 116665745 A CN116665745 A CN 116665745A
- Authority
- CN
- China
- Prior art keywords
- voltage
- data
- read
- reading
- voltage corresponding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 119
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012545 processing Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 abstract description 11
- 238000013461 design Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/702—Masking faults in memories by using spares or by reconfiguring by replacing auxiliary circuits, e.g. spare voltage generators, decoders or sense amplifiers, to be used instead of defective ones
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种闪存读取方法及装置,用以在闪存读取过程中发生数据错误时找到最佳的读取电压。该方法包括:以第一电压作为读取电压读取闪存中指定页面的数据时,若发生数据错误,则将所述第一电压进行偏移,得到满足预设条件的第二电压;所述第一电压为历史读取所述指定页面的数据的读取电压;以所述第二电压作为读取电压读取所述指定页面的数据。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种闪存读取方法及装置。
背景技术
闪存存储(flash memory)是基于浮栅(floating gate)的存储技术,数据在闪存中以电荷的形式存储,并且电荷可以保持很长时间,在无电源时仍然可以进行数据存储。
以每个储存单元内储存1个信息位的单阶储存单元(single-level cell,SLC)为例,正常擦除状态时,闪存内部读取的数据值全部都是“1”,若是将闪存进行编程操作,则有一部分处于擦除状态的存储单元会被编程为编程状态,即被编程的存储单元读取的数据值会从“1”变成“0”。由于电荷的不稳定性,闪存中的电荷可能出现偏移现象,比如,同一个块被读取多次之后会有一些页容易发生比特翻转,很多擦除状态下的“1”会被编程成“0”,导致闪存在读取过程中可能会发生数据出错的问题。
目前,通常使用ECC/EDC算法对出错的数据进行纠正,或者对可能出现错误的存储区域提前做数据迁移。这两种方式都是提前对闪存做一定的测试运算,在读取到的数据出错时根据预先的测试结果做相应的对策。但是实际读取时产生数据错误的情况,可能出现与提前测试的情况不一致,只要有一个数据没法解回来,可能就会造成数据丢失。并且如果测试过程中考虑的场景不够多,也无法应对实际读取时的偶然情况。
因此,目前亟需一种方案,用以在闪存读取过程中发生数据错误时找到最佳的读取电压。
发明内容
本申请提供一种闪存读取方法及装置,用以在闪存读取过程中发生数据错误时找到最佳的读取电压。
第一方面,本申请提供一种闪存读取方法,该方法包括:以第一电压作为读取电压读取闪存中指定页面的数据时,若发生数据错误,则将所述第一电压进行偏移,得到满足预设条件的第二电压;所述第一电压为历史读取所述指定页面的数据的读取电压;以所述第二电压作为读取电压读取所述指定页面的数据。
上述技术方案中,可以在实际读取闪存的过程中出现数据错误时,通过对读取电压进行偏移的方式找到最佳的读取电压。不仅可以避免实际读取时产生数据错误的情况,可能出现与提前测试的情况不一致的问题。也可以避免提前做更多的数据搬移,造成写入放大的问题。
在一种可能的设计中,所述将所述第一电压进行偏移,得到满足预设条件的第二电压,包括:以第一位置为基准,向设定方向偏移第一设定距离,得到第二位置对应的电压;所述第一位置为预设位置或所述第一电压的位置;分别统计使用第一位置对应的电压和第二位置对应的电压读取所述指定页面的数据时,读取到第一状态的第一数量和第二数量;所述第一状态为擦除状态或编程状态;若所述第一数量与所述第二数量的差的绝对值小于预设数量,则所述第二位置对应的电压满足所述预设条件,将所述第二位置对应的电压作为所述第二电压。
在一种可能的设计中,所述方法还包括:若所述第一数量与所述第二数量的差的绝对值不小于预设数量,则以所述第二位置为基准,向所述设定方向偏移第一设定距离,得到第三位置对应的电压;分别统计使用第二位置对应的电压和所述第三位置对应的电压读取所述指定页面的数据时,读取到第一状态的第二数量和第三数量,并通过判断所述第二数量与所述第三数量的差的绝对值与预设数量的大小关系,来确定所述第三位置对应的电压是否满足预设条件。
在一种可能的设计中,所述方法还包括:若偏移设定次数仍未找到第二读取电压,则将第一设定距离缩小得到第二设定距离;以所述第一位置为基准,向设定方向偏移第二设定距离,得到第四位置对应的电压;分别统计使用第一位置对应的电压和所述第四位置对应的电压读取所述指定页面的数据时,读取到第一状态的第一数量和第四数量,并通过判断所述第一数量与所述第四数量的差的绝对值与预设数量的大小关系,来确定所述第四位置对应的电压是否满足预设条件。
上述技术方案中,当偏移设定次数仍未找到合适的读取电压,可以将偏移距离缩小,然后以缩小后的偏移距离进行电压偏移,进而更容易找到满足预设条件的电压。
在一种可能的设计中,所述将所述第一电压进行偏移,得到满足预设条件的第二电压,包括:以第一位置为基准,依次向设定方向偏移第一设定距离,得到M个位置对应的电压;所述第一位置为预设位置或所述第一电压的位置;分别统计读取所述指定页面的数据时,使用第N位置对应的电压读取到第一设定状态的数量,与使用第N-1位置对应的电压读取到第一设定状态的数量的差的绝对值;所述第一状态为擦除状态或编程状态;所述M个位置中所述差的绝对值最小的位置对应的电压满足所述预设条件,将所述差的绝对值最小的位置对应的电压作为所述第二电压。
上述技术方案中,比较在每一次电压偏移后,当前位置的电压与上一个偏移位置对应的电压读取到编程状态或擦除状态的数量的差的绝对值,以找到两次读取到编程或擦除状态的差距最小的位置,以该位置对应的电压作为读取电压,此种方式可以找到更准确的读取电压。
在一种可能的设计中,通过低密度奇偶校验码LDPC或BCH码对所述闪存中指定页面的数据解码,当解码失败时确认发生数据错误。
在一种可能的设计中,所述预设数量根据闪存中一个页面的存储单元数量,以及设定百分比确定。
上述技术方案中,由于不同厂商的不同型号的闪存,其一个页面的大小可能存在差异。因此,为了得到合适的读取电压,预设数量可以根据闪存中一个页面的存储单元数量,以及设定百分比确定。
第二方面,本申请实施例提供一种闪存读取装置,包括:
判断模块,用于判断以第一电压作为读取电压读取闪存中指定页面的数据时,发生数据错误。
处理模块,用于将所述第一电压进行偏移,得到满足预设条件的第二电压;所述第一电压为历史读取所述指定页面的数据的读取电压;
读取模块,用于以所述第二电压作为读取电压读取所述指定页面的数据。
在一种可能的设计中,所述处理模块,还用于以第一位置为基准,向设定方向偏移第一设定距离,得到第二位置对应的电压;所述第一位置为预设位置或所述第一电压的位置;分别统计使用第一位置对应的电压和第二位置对应的电压读取所述指定页面的数据时,读取到第一状态的第一数量和第二数量;所述第一状态为擦除状态或编程状态;若所述第一数量与所述第二数量的差的绝对值小于预设数量,则所述第二位置对应的电压满足所述预设条件,将所述第二位置对应的电压作为所述第二电压。
在一种可能的设计中,所述处理模块,还用于若所述第一数量与所述第二数量的差的绝对值不小于预设数量,则以所述第二位置为基准,向所述设定方向偏移第一设定距离,得到第三位置对应的电压;分别统计使用第二位置对应的电压和所述第三位置对应的电压读取所述指定页面的数据时,读取到第一状态的第二数量和第三数量,并通过判断所述第二数量与所述第三数量的差的绝对值与预设数量的大小关系,来确定所述第三位置对应的电压是否满足预设条件。
在一种可能的设计中,所述处理模块,还用于若偏移设定次数仍未找到第二读取电压,则将第一设定距离缩小得到第二设定距离;以所述第一位置为基准,向设定方向偏移第二设定距离,得到第四位置对应的电压;分别统计使用第一位置对应的电压和所述第四位置对应的电压读取所述指定页面的数据时,读取到第一状态的第一数量和第四数量,并通过判断所述第一数量与所述第四数量的差的绝对值与预设数量的大小关系,来确定所述第四位置对应的电压是否满足预设条件。
在一种可能的设计中,所述处理模块,还用于以第一位置为基准,依次向设定方向偏移第一设定距离,得到M个位置对应的电压;所述第一位置为预设位置或所述第一电压的位置;分别统计读取所述指定页面的数据时,使用第N位置对应的电压读取到第一设定状态的数量,与使用第N-1位置对应的电压读取到第一设定状态的数量的差的绝对值;所述第一状态为擦除状态或编程状态;所述M个位置中所述差的绝对值最小的位置对应的电压满足所述预设条件,将所述差的绝对值最小的位置对应的电压作为所述第二电压。
在一种可能的设计中,所述判断模块,还用于通过低密度奇偶校验码LDPC或BCH码对所述闪存中指定页面的数据解码,当解码失败时确认发生数据错误。
在一种可能的设计中,所述预设数量根据闪存中一个页面的存储单元数量,以及设定百分比确定。
第三方面,本申请实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如第一方面的任一种可能的设计中所述的方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,其中存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得上述第一方面的任一种可能的设计中所述的方法实现。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例SLC正常状态下的电荷分布图;
图2为本申请实施例TLC正常状态下的电荷分布图;
图3为本申请实施例TLC发生电荷偏移情况下的电荷分布的示意图;
图4为本申请实施例提供的一种闪存读取方法的流程示意图;
图5为本申请实施例提供的一种闪存读取装置的结构示意图;
图6为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请的实施例中,多个是指两个或两个以上。“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
闪存内部存在默认的读取电压(Vread),正常情况下,通过对比存储单元中的电荷产生的电压与默认读取电压的大小,决定该存储单元表示的数值,比默认读取电压小的电压会被读为擦除状态,反之比默认读取电压大的电压则被读为编程状态。
闪存中存储的电荷非常不稳定,进而很容易发生数据读取错误。数据读取错误的原因有多种,比如闪存中的氧化层老化,电荷容易位置异常,导致数据读取错误;或者随时间变化,存储单元中的电子流失,阈值电压值向左移动,导致数据读取错误;又或者存中同一个块被读取多次之后会有一些页面容易发生bit翻转,很多擦除状态下的“1”会被编程成“0”,我们称这种现象为读干扰(read disturb)。
闪存根据其存储单元内存储的信息位的数目被划分为单阶储存单元(single-level cell,SLC)、多阶储存单元(multi-level cell,MLC)、三阶储存单元(triple-levelcell,TLC)等。其中,SLC每个储存单元内储存1个信息位,即可以存储1bit的数据;MLC每个储存单元内储存2个信息位,即可以存储2bit的数据;TLC每个储存单元内储存3个信息位,即可以存储3bit的数据。
以SLC为例,正常情况下SLC在擦除状态时,会对电荷进行放电,此时SLC中每个存储单元读取的数据值全部都是“1”,若对SLC进行编程操作,则有一部分处于擦除状态的电子会被编程成编程状态,被编程的电荷读取的数据值会从“1”变成“0”。当闪存受到各种因素影响后,比如经过读干扰影响后的闪存中会有很多擦除状态“1”的存储单元被编程为编程状态“0”,那么此时如果仍用默认状态下的读取电压去读,该存储单元的数据会被读为编程状态“0”,这时候原本应该被读为“1”的存储单元就发生了bit翻转,造成数据出错。
图1为SLC在正常状态下的电荷分布图,图中的曲线可以看做是SLC中存储单元的电压(存储单元中存储的电荷所产生的电压)分布函数,横轴是电压,纵轴是存储单元数量。从图1可以看出,并非所有的存储单元都有相同的电压,实际存储单元的测量电压落在1的范围内,则该存储单元表示“1”;存储单元的测量电压落在0的范围内;则该存储单元表示“0”。
又如,图2为TLC在正常状态下的电荷分布图,图3为本申请实施例TLC发生电荷偏移情况下的电荷分布的示意图,图2和图3的电荷分布图均省略了擦除状态对应的曲线。正常情况下,擦除状态和编程状态之间的距离AB很大,也就是说B右面的电压才认为是编程状态(A可以相当于图1中的ev擦除电压,B可以相当于图1中的pv编程电压),以AB之间任一位置的电压作为读取电压都不会出错,因为,没有存储单元的电压落在A和B之间。但是图3发生读干扰后,有少部分存储单元的电压落在A和B之间,比如位置2,这时候仍用位置1的读取电压去读,位置2的电压大于位置1的电压会被读成“0”,导致位置2的数据读取错误。对此,本申请将读取电压进行偏移,以通过不断偏移找到此次读取时的最佳读取电压,例如将读取电压偏移到图3中的位置3,从图中可以看出位置3周围的曲线波动范围较小。偏移后的读取电压可以将被因为读干扰而被编程的电荷(“1”变成“0”)全部强制读成“1”,进而可以使读取数据时的误差降低,避免数据出错。
图4示例性地示出了本申请实施例提供的一种闪存读取方法的流程示意图,如图4所示,该方法包括以下步骤:
步骤401、以第一电压作为读取电压读取闪存中指定页面的数据时,若发生数据错误,则将第一电压进行偏移,得到满足预设条件的第二电压。
本申请实施例中,在对闪存进行读写操作时,很容易对邻近的存储单元造成干扰,干扰后会让附近单元的电荷脱离实际的逻辑数值,造成bit翻转,导致在读取闪存时发生错误检查和纠正失败(ECC Fail)的问题,造成数据丢失。示例性地,可以通过低密度奇偶校验码LDPC或BCH码对闪存中指定页面的数据解码,当解码失败时确认发生数据错误。
第一电压为历史读取指定页面的数据的读取电压;第二电压为对第一电压进行偏移后得到的满足预设条件的电压。可以理解为第一电压是上一次读取指定页面的数据时的读取电压,而此次读取闪存时如果仍使用第一电压作为读取电压去读取指定页面的数据时,发现读取的数据出现错误,因此需要通过对电压偏移的方式重新确定此次的读取电压。其中,电压偏移是指对第一电压的位置进行偏移,每个位置对应的电压值预先存储在闪存中。
步骤402、以第二电压作为读取电压读取指定页面的数据。
本申请实施例中,通过重新确定的第二电压作为读取电压,可以准确地读出指定页面的数据。
上述技术方案中,可以在实际读取闪存的过程中出现数据错误时,通过对读取电压进行偏移的方式找到最佳的读取电压。不仅可以避免实际读取时产生数据错误的情况,可能出现与提前测试的情况不一致的问题。也可以避免提前做更多的数据搬移,造成写入放大的问题。
示例性地,可以通过如下方式将第一电压进行偏移,得到满足预设条件的第二电压:
步骤一、以第一位置为基准,向设定方向偏移第一设定距离,得到第二位置对应的电压。
其中,第一位置为预设位置或第一电压的位置;设定方向为第一位置向左或向右偏移,第一设定距离为预先设定的偏移距离,例如可以设定为偏移4个位置或偏移5个位置。
例如,可以以第一电压的位置为基准,向左偏移4个位置得到第二位置对应的电压。
步骤二、分别统计使用第一位置对应的电压和第二位置对应的电压读取指定页面的数据时,读取到第一状态的第一数量和第二数量,其中,第一状态为擦除状态或编程状态。
以第一状态为擦除状态为例,分别统计以第一位置对应的电压读取指定页面的数据时,读取到擦除状态的第一数量,和以第二位置对应的电压读取指定页面的数据时,读取到擦除状态的第二数量。
步骤三、判断第一数量与第二数量的差的绝对值与预设数量的大小关系。
若第一数量与第二数量的差的绝对值小于预设数量,则第二位置对应的电压满足预设条件,将第二位置对应的电压作为第二电压。
由于不同厂商的不同型号的闪存,其一个页面的大小可能存在差异。因此,为了得到合适的读取电压,预设数量可以根据闪存中一个页面的存储单元数量,以及设定百分比确定。
若第一数量与第二数量的差的绝对值不小于预设数量,则以第二位置为基准,继续向设定方向偏移第一设定距离,得到第三位置对应的电压。
得到第三位置对应的电压后,分别统计使用第二位置对应的电压和第三位置对应的电压读取指定页面的数据时,读取到第一状态的第二数量和第三数量,并通过判断第二数量与第三数量的差的绝对值与预设数量的大小关系,来确定第三位置对应的电压是否满足预设条件。
如果第二数量与第三数量的差的绝对值仍不小于预设数量,则继续向设定方向偏移第一设定距离,直至得到偏移后的电压满足预设条件,则结束偏移操作,将满足预设条件的电压作为此次读取闪存的读取电压。
进一步地,若偏移设定次数仍未找到第二读取电压,则可以将第一设定距离缩小得到第二设定距离。例如第一设定距离为5,第二设定距离为4,即,将偏移5个位置缩小到偏移4个位置。仍然以第一位置为基准,向设定方向偏移第二设定距离,得到第四位置对应的电压。
分别统计使用第一位置对应的电压和第四位置对应的电压读取指定页面的数据时,读取到第一状态的第一数量和第四数量,并通过判断第一数量与第四数量的差的绝对值与预设数量的大小关系,来确定第四位置对应的电压是否满足预设条件。
上述技术方案中,当偏移设定次数仍未找到合适的读取电压,可以将偏移距离缩小,然后以缩小后的偏移距离进行电压偏移,进而更容易找到满足预设条件的电压。
示例性地,也可以通过如下方式将第一电压进行偏移,得到满足预设条件的第二电压:
步骤一、以第一位置为基准,依次向设定方向偏移第一设定距离,得到M个位置对应的电压,其中,第一位置为预设位置或第一电压的位置。
其中,设定方向为第一位置向左或向右偏移。第一设定距离为预先设定的偏移距离,例如可以设定为偏移4个位置或偏移5个位置。
步骤二、分别统计读取指定页面的数据时,使用第N位置对应的电压读取到第一设定状态的数量,与使用第N-1位置对应的电压读取到第一设定状态的数量的差的绝对值,其中,第一状态为擦除状态或编程状态。
以第一状态为擦除状态为例,分别统计相邻两个偏移位置对应的电压读取到擦除状态的数量的差的绝对值。
步骤三、M个位置中差的绝对值最小的位置对应的电压满足预设条件,将差的绝对值最小的位置对应的电压作为第二电压。
上述技术方案中,比较在每一次电压偏移后,当前位置的电压与上一个偏移位置对应的电压读取到编程状态或擦除状态的数量的差的绝对值,以找到两次读取到编程或擦除状态的差距最小的位置,以该位置对应的电压作为读取电压,此种方式可以找到更准确的读取电压。
本申请实施例提供的一种方法,可以在实际读取闪存的过程中出现数据错误时,通过对读取电压进行偏移的方式找到最佳的读取电压。不仅可以避免实际读取时产生数据错误的情况,可能出现与提前测试的情况不一致的问题。也可以避免提前做更多的数据搬移,造成写入放大的问题。
基于相同的技术构思,图5例性地示出了本申请实施例提供的一种闪存读取装置的结构示意图,如图5所示,该装置500包括:
判断模块501,用于判断以第一电压作为读取电压读取闪存中指定页面的数据时,发生数据错误。
处理模块502,用于将所述第一电压进行偏移,得到满足预设条件的第二电压;所述第一电压为历史读取所述指定页面的数据的读取电压;
读取模块503,用于以所述第二电压作为读取电压读取所述指定页面的数据。
在一种可能的设计中,所述处理模块502,还用于以第一位置为基准,向设定方向偏移第一设定距离,得到第二位置对应的电压;所述第一位置为预设位置或所述第一电压的位置;分别统计使用第一位置对应的电压和第二位置对应的电压读取所述指定页面的数据时,读取到第一状态的第一数量和第二数量;所述第一状态为擦除状态或编程状态;若所述第一数量与所述第二数量的差的绝对值小于预设数量,则所述第二位置对应的电压满足所述预设条件,将所述第二位置对应的电压作为所述第二电压。
在一种可能的设计中,所述处理模块502,还用于若所述第一数量与所述第二数量的差的绝对值不小于预设数量,则以所述第二位置为基准,向所述设定方向偏移第一设定距离,得到第三位置对应的电压;分别统计使用第二位置对应的电压和所述第三位置对应的电压读取所述指定页面的数据时,读取到第一状态的第二数量和第三数量,并通过判断所述第二数量与所述第三数量的差的绝对值与预设数量的大小关系,来确定所述第三位置对应的电压是否满足预设条件。
在一种可能的设计中,所述处理模块502,还用于若偏移设定次数仍未找到第二读取电压,则将第一设定距离缩小得到第二设定距离;以所述第一位置为基准,向设定方向偏移第二设定距离,得到第四位置对应的电压;分别统计使用第一位置对应的电压和所述第四位置对应的电压读取所述指定页面的数据时,读取到第一状态的第一数量和第四数量,并通过判断所述第一数量与所述第四数量的差的绝对值与预设数量的大小关系,来确定所述第四位置对应的电压是否满足预设条件。
在一种可能的设计中,所述处理模块502,还用于以第一位置为基准,依次向设定方向偏移第一设定距离,得到M个位置对应的电压;所述第一位置为预设位置或所述第一电压的位置;分别统计读取所述指定页面的数据时,使用第N位置对应的电压读取到第一设定状态的数量,与使用第N-1位置对应的电压读取到第一设定状态的数量的差的绝对值;所述第一状态为擦除状态或编程状态;所述M个位置中所述差的绝对值最小的位置对应的电压满足所述预设条件,将所述差的绝对值最小的位置对应的电压作为所述第二电压。
在一种可能的设计中,所述判断模块501,还用于通过低密度奇偶校验码LDPC或BCH码对所述闪存中指定页面的数据解码,当解码失败时确认发生数据错误。
在一种可能的设计中,所述预设数量根据闪存中一个页面的存储单元数量,以及设定百分比确定。
基于相同的技术构思,本申请实施例提供了一种计算设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本申请实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行上述任一方式所列的闪存读取方法。
其中,处理器601是计算设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而进行资源设置。
可选地,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行程序,计算机可执行程序用于使计算机执行上述任一方式所列的闪存读取方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种闪存读取方法,其特征在于,所述方法包括:
以第一电压作为读取电压读取闪存中指定页面的数据时,若发生数据错误,则将所述第一电压进行偏移,得到满足预设条件的第二电压;所述第一电压为历史读取所述指定页面的数据的读取电压;
以所述第二电压作为读取电压读取所述指定页面的数据。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一电压进行偏移,得到满足预设条件的第二电压,包括:
以第一位置为基准,向设定方向偏移第一设定距离,得到第二位置对应的电压;所述第一位置为预设位置或所述第一电压的位置;
分别统计使用第一位置对应的电压和第二位置对应的电压读取所述指定页面的数据时,读取到第一状态的第一数量和第二数量;所述第一状态为擦除状态或编程状态;
若所述第一数量与所述第二数量的差的绝对值小于预设数量,则所述第二位置对应的电压满足所述预设条件,将所述第二位置对应的电压作为所述第二电压。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述第一数量与所述第二数量的差的绝对值不小于预设数量,则以所述第二位置为基准,向所述设定方向偏移第一设定距离,得到第三位置对应的电压;
分别统计使用第二位置对应的电压和所述第三位置对应的电压读取所述指定页面的数据时,读取到第一状态的第二数量和第三数量,并通过判断所述第二数量与所述第三数量的差的绝对值与预设数量的大小关系,来确定所述第三位置对应的电压是否满足预设条件。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若偏移设定次数仍未找到第二读取电压,则将第一设定距离缩小得到第二设定距离;
以所述第一位置为基准,向设定方向偏移第二设定距离,得到第四位置对应的电压;
分别统计使用第一位置对应的电压和所述第四位置对应的电压读取所述指定页面的数据时,读取到第一状态的第一数量和第四数量,并通过判断所述第一数量与所述第四数量的差的绝对值与预设数量的大小关系,来确定所述第四位置对应的电压是否满足预设条件。
5.根据权利要求1所述的方法,其特征在于,所述将所述第一电压进行偏移,得到满足预设条件的第二电压,包括:
以第一位置为基准,依次向设定方向偏移第一设定距离,得到M个位置对应的电压;所述第一位置为预设位置或所述第一电压的位置;
分别统计读取所述指定页面的数据时,使用第N位置对应的电压读取到第一设定状态的数量,与使用第N-1位置对应的电压读取到第一设定状态的数量的差的绝对值;所述第一状态为擦除状态或编程状态;
所述M个位置中所述差的绝对值最小的位置对应的电压满足所述预设条件,将所述差的绝对值最小的位置对应的电压作为所述第二电压。
6.根据权利要求1所述的方法,其特征在于,所述以第一电压作为读取电压读取闪存中指定页面的数据时,若发生数据错误,包括:
通过低密度奇偶校验码LDPC或BCH码对所述闪存中指定页面的数据解码,当解码失败时确认发生数据错误。
7.根据权利要求1所述的方法,其特征在于,所述预设数量根据闪存中一个页面的存储单元数量,以及设定百分比确定。
8.一种闪存读取装置,其特征在于,所述装置包括:
判断模块,用于判断以第一电压作为读取电压读取闪存中指定页面的数据时,发生数据错误;
处理模块,用于将所述第一电压进行偏移,得到满足预设条件的第二电压;所述第一电压为历史读取所述指定页面的数据的读取电压;
读取模块,用于以所述第二电压作为读取电压读取所述指定页面的数据。
9.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得如权利要求1至7中任一项所述的方法实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310363141.9A CN116665745A (zh) | 2023-03-30 | 2023-03-30 | 一种闪存读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310363141.9A CN116665745A (zh) | 2023-03-30 | 2023-03-30 | 一种闪存读取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116665745A true CN116665745A (zh) | 2023-08-29 |
Family
ID=87724952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310363141.9A Pending CN116665745A (zh) | 2023-03-30 | 2023-03-30 | 一种闪存读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116665745A (zh) |
-
2023
- 2023-03-30 CN CN202310363141.9A patent/CN116665745A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8286055B2 (en) | Nonvolatile memory device and method of operating the same | |
US8345487B2 (en) | Method of setting read voltage minimizing read data errors | |
EP1506552B1 (en) | Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data | |
US9081708B2 (en) | Dynamic read scheme for high reliability high performance flash memory | |
US8887011B2 (en) | Erased page confirmation in multilevel memory | |
US7813187B2 (en) | Multi-bit flash memory device and program method thereof | |
US8504884B2 (en) | Threshold voltage techniques for detecting an imminent read failure in a memory array | |
JP4585520B2 (ja) | 試験装置及び試験方法 | |
US8910020B2 (en) | Intelligent bit recovery for flash memory | |
JP7414921B2 (ja) | メモリシステムをプログラムする方法 | |
CN105144302A (zh) | 存储器装置中的错误校正操作 | |
US8391076B2 (en) | Nonvolatile memory device using interleaving technology and programming method thereof | |
US9286993B2 (en) | Determining read voltages for reading memory | |
CN106548802B (zh) | 固态存储装置及其相关读取控制方法 | |
US20160306696A1 (en) | Marker programming in non-volatile memories | |
US11374595B2 (en) | Method for selectively inverting words to be written to a memory and device for implementing same | |
US9972383B2 (en) | Reading memory cells | |
US7639539B2 (en) | Method and apparatus for programming data of memory cells considering floating poly coupling | |
US11048582B2 (en) | Method for programming non-volatile memory | |
CN109215716B (zh) | 提高nand型浮栅存储器可靠性的方法及装置 | |
CN116665745A (zh) | 一种闪存读取方法及装置 | |
TW202013211A (zh) | 訓練人工智慧更正儲存裝置的對數概度比的方法 | |
CN107391290A (zh) | 一种闪存制程差异的检测方法 | |
CN111512373B (zh) | 非易失性存储器器件和空白检查方法 | |
CN115273942A (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 |