CN115206381A - 用于固态存储装置的读取阈值的自适应dsp生成 - Google Patents

用于固态存储装置的读取阈值的自适应dsp生成 Download PDF

Info

Publication number
CN115206381A
CN115206381A CN202210205928.8A CN202210205928A CN115206381A CN 115206381 A CN115206381 A CN 115206381A CN 202210205928 A CN202210205928 A CN 202210205928A CN 115206381 A CN115206381 A CN 115206381A
Authority
CN
China
Prior art keywords
read
state storage
solid state
read threshold
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
Application number
CN202210205928.8A
Other languages
English (en)
Other versions
CN115206381B (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.)
Beijing Tenafei Electronic Technology Co ltd
Original Assignee
Beijing Tenafei Electronic Technology 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 Beijing Tenafei Electronic Technology Co ltd filed Critical Beijing Tenafei Electronic Technology Co ltd
Publication of CN115206381A publication Critical patent/CN115206381A/zh
Application granted granted Critical
Publication of CN115206381B publication Critical patent/CN115206381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12005Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5644Multilevel memory comprising counting devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters

Landscapes

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

Abstract

至少部分地基于固态存储装置中的多个单元的预期计数和固态存储装置中的多个单元的观测计数来确定级别计数差异,其中所述观测计数是从使用先前读取阈值在固态存储装置上执行的读取而获得的。至少部分地基于级别计数差异来确定下一个读取阈值。使用下一个读取阈值在固态存储装置上执行读取以获得读取数据,并且对读取数据执行纠错解码。

Description

用于固态存储装置的读取阈值的自适应DSP生成
背景技术
在一些类型的固态存储装置(例如,NAND闪速存储装置)中,通过在特殊类型的晶体管的浮动栅极中递增地注入预确定量的电荷来将数据存储在单元中。在对存储器单元进行编程(即,写入)之后,浮动栅极随着时间的推移逐渐失去其电荷(例如,由于电荷去俘获(charge de-trapping)和氧化物泄漏,更一般地被称为数据保留噪声)。在一些情况(例如,固态存储装置,其具有更长的保留时间、更高的存储温度和更高的编程/擦除(PE)周期计数,这加剧了数据保留噪声)下,读取数据中的错误数量可能超过应用于所存储数据的码的纠错能力。选择用于从固态存储装置读回数据的更好的非默认/非初始电压阈值(有时在本文中被称为读取阈值)可以减少读取数据中的错误数量,使得它在码的纠错能力内。然而,选择或以其它方式生成读取阈值的现有技术假设基础高斯分布(其并不始终是这种情况),具有不合期望的长时延,和/或具有其它不切实际的要求或限制。选择或以其它方式生成克服这些问题的更好的非默认/非初始读取阈值的新技术将是合期望的。
附图说明
在以下详细描述和附图中公开了本发明的各种实施例。
图1是图示了从固态存储装置读回数据、包括通过确定下一个读取阈值来读回数据的过程的实施例的流程图。
图2是图示了与单级单元(SLC)NAND闪速存储装置中的状态级别相关联的分布的实施例的图解。
图3是图示了具有使用梯度下降而生成的读取阈值以及硬判决纠错解码(如果需要的话)的固态存储装置系统的实施例的框图。
图4是图示了具有使用跟踪聚合而生成的读取阈值以及软判决纠错解码(如果需要的话)的固态存储装置系统的实施例的框图。
图5是图示了在跟踪聚合中使用的相邻计数差的实施例的图解。
图6是图示了使用跟踪聚合来生成读取阈值并且对读取数据执行软判决纠错解码的过程的实施例的流程图。
具体实施方式
本发明可以以许多方式来实现,包括作为过程;装置;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如被配置成执行存储在耦合到处理器的存储器上和/或由耦合到处理器的存储器提供的指令的处理器。在本说明书中,这些实现或者本发明可以采用的任何其它形式可以被称为技术。一般而言,可以在本发明的范围内更改所公开的过程的步骤的次序。除非另有声明,否则被描述为被配置成执行任务的组件(诸如处理器或存储器)可以被实现为被临时配置成在给定时间处执行该任务的一般组件、或者是被制造为执行该任务的特定组件。如本文中所使用的,术语“处理器”指代被配置成处理数据(诸如计算机程序指令)的一个或多个设备、电路和/或处理核心。
下面提供了本发明的一个或多个实施例的详细描述连同图示了本发明原理的附图。结合这样的实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求来限定,并且本发明涵盖许多替代方案、修改和等同物。在以下描述中阐述了许多特定细节,以便提供对本发明的透彻理解。这些细节是出于示例的目的而提供的,并且可以根据权利要求在没有这些特定细节中的一些或全部的情况下实践本发明。出于清楚的目的,尚未详细描述与本发明相关的技术领域中已知的技术材料,使得不会不必要地模糊本发明。
本文中描述了用于确定下一个读取阈值以获得或以其它方式输出经解码的数据的技术的各种实施例。在一些实施例中,该技术包括:至少部分地基于固态存储装置中的单元的预期计数和固态存储装置中的单元的观测计数来确定级别计数差异,其中所述观测计数是从使用先前读取阈值在固态存储装置上执行的读取而获得的;至少部分地基于级别计数差异来确定下一个读取阈值;使用下一个读取阈值在固态存储装置上执行读取以获得读取数据;以及对读取数据执行纠错解码以获得经解码的数据。
例如,在固态存储装置的寿命开始时,可以使用(一个或多个)默认读取阈值以良好的性能来执行读取(例如,读取数据中的相对较少的错误,这些错误可由纠错解码器来纠正)。然而,随着固态存储装置老化,如果数据被存储达相对长的时间,则读取数据中的错误数量可能由于存储器单元上的磨损(例如,由于编程和擦除)和/或电荷泄漏而增加。确定新的非默认读取阈值可以返回具有纠错解码器能够纠正的较少错误的读取数据。以下各图描述了该技术的各种实施例。
图1是图示了从固态存储装置读回数据、包括通过确定下一个读取阈值来读回数据的过程的实施例的流程图。在一些实施例中,当默认或先前使用的读取阈值返回了读取数据、该数据使纠错解码失败并且因此不能向上传递到从存储装置请求了该数据的应用时,由读取控制器来执行该过程。例如,当固态存储装置(例如,NAND闪速存储装置)是新的并且其上存储的数据仅已经被保留了达相对短的时间量时,用于读取该固态存储装置的默认或初始读取阈值可能足以获得具有足够少的错误的读取数据,使得纠错码(例如,在存储之前被应用于该数据)能够纠正读取数据中的错误。然而,随着固态存储装置变得更旧、更磨损和/或更热,默认或初始读取阈值可能返回具有纠错码无法纠正的太多错误的读取数据。可以选择或生成更好的非默认和/或非初始读取阈值,该阈值返回具有更少错误的读取数据,使得纠错码能够纠正错误,并且经纠正的数据可以被输出或以其它方式返回。在一些实施例中,那是图1中描述的示例性过程的情境和/或应用。
在100处,至少部分地基于固态存储装置中的单元的预期计数和固态存储装置中的单元的观测计数来确定级别计数差异(例如,D i (t)),其中观测计数是从使用先前读取阈值(例如,T i (t))从在固态存储装置上执行的读取(例如,在第t个迭代或计数处的读取)而获得的。
在一些实施例中,在步骤100处使用的预期计数和/或观测计数是与总和(例如,预期总和,诸如E(S i ),和/或累积观测计数,诸如S i (t))相关联的值。在其中每个单元存储两个或更多个位(即b≥2,诸如其中b=2的多级单元(MLC)存储装置等)并且正在确定多个读取阈值的实施例中,这可能是合期望的。例如,以(先前)读取阈值T i (t)来执行读取将开启或以其它方式激活处于或低于对应状态级别L i 的(大多数)单元,并且使用累积计数不需要第二个读取来区分处于不同状态级别的单元,和/或使用累积计数准许彼此独立地确定或以其它方式生成多个读取阈值。
在102处,至少部分地基于级别计数差异来确定下一个读取阈值。例如,这可以包括至少部分地基于级别计数差异来确定下一个读取阈值相对于先前读取阈值的方向,以及(还)至少部分地基于级别计数差异来确定下一个读取阈值的幅度。在一个示例(其将在下面更详细地描述)中,使用下一个偏移量(例如,
Figure DEST_PATH_IMAGE002
)来表达或以其它方式确定下一个读取阈值(例如,T i (t+1)):
Figure DEST_PATH_IMAGE004
其中T i 和Δ是固定的和/或预定义的,并且因此在这样的实施例中,在步骤102处确定下一个读取阈值包括确定下一个偏移量(例如,
Figure DEST_PATH_IMAGE005
)。(为了清楚起见,并且为了至少初始地在高级别处解释示例性过程,下面将更详细地解释和描述术语。)。
在下面更详细描述的一个示例中,使用与第t个迭代或计数处的先前读取相关联的(第一)级别计数差异(例如,D i (t))、以及与第(t-1)个读取相关联的(第二)级别计数差异(例如,D i (t−1))来确定下一个偏移量(例如,
Figure DEST_PATH_IMAGE007
):
Figure DEST_PATH_IMAGE009
其中,宽泛地说,
Figure DEST_PATH_IMAGE011
是正值,并且对应于要与先前偏移量(例如,
Figure DEST_PATH_IMAGE013
)相加或相减的幅度或值。该幅度是与先前偏移量相加还是相减(以及因此下一个偏移量是在先前偏移量的左边还是右边)由sign(D i (t))来决定,sign(D i (t))返回先前偏移量D i (t)的符号。
要注意的是,一些类型的固态存储装置每个单元存储多于一个位(即b≥2),并且在这样的实施例中,在步骤102处确定下一个读取阈值(例如,偏移量)包括确定多个读取阈值(例如,偏移量)。例如,对于其中b=1的单级单元(SLC)情况,仅确定单个下一个读取阈值(例如,T 0 (t+1)),而对于其中b=2的多级(MLC)情况,确定三个下一个读取阈值(例如,T 0 (t+1)T 1 (t+1)T 2 (t+1))。为了更一般地和/或正式地表达(一个或多个)下一个读取阈值T i (t+1)和(一个或多个)下一个偏移量
Figure DEST_PATH_IMAGE014
,步骤102可以包括确定T i (t+1)和/或
Figure DEST_PATH_IMAGE015
,其中i=0、……、(2 b −2)。
在104处,使用下一个读取阈值(例如,T i (t+1))在固态存储装置上执行读取以获得读取数据。
在106处,对读取数据执行纠错解码。如果纠错解码成功(例如,包含在读取数据中的错误在解码器的纠错能力内),则(例如,在步骤106处输出或生成的)经解码的数据被向上传递到适当的或请求的实体或块(例如,向下传递读取指令的应用)。
与图1中描述的方法形成对照,用于找到最优读取阈值的一些其它方法通过以下方式来执行若干读取:在一个方向上(例如,从右到左)使读取阈值移位或扫描读取阈值,并且对返回的每个读取数据执行纠错解码,直到纠错解码成功为止。然后,将恢复的数据与所读取的输出进行比较,以找到产生最低BER的阈值。然而,这种方法需要执行纠错解码,这显著地添加读取时延和/或显著地使读取吞吐量退化。相比之下,图1的示例性过程能够确定下一个读取阈值,而不必执行纠错解码,这对于读取时延和读取吞吐量是更好的。
用于找到最优读取阈值的一些其它方法假设针对处于各种状态级别的单元的电压或电荷水平的基础高斯分布。例如,一个技术假设高斯分布,并且使用渐进的读取来估计所假设的高斯分布的均值和方差,然后,从该均值和方差来估计或以其它方式确定最优读取阈值(例如,相邻的所假设的高斯分布在其处彼此相交的电压)。高斯分布的该假设并不始终是在其下生成下一个或新的读取阈值的好假设。例如,如果数据已经在固态存储装置中存储达长时间(即,高保留时间),则分布不太可能是像高斯的。此外,这些技术中的一些在所假设的高斯分布的最尾部处执行两个读取(例如,为了实现针对均值和方差估计的易处理的解决方案),这可能是有问题的,因为该分布的被认为是尾部的部分可能不表现得非常像尾部(例如,因为该分布实际上不是高斯的和/或因为小的样本大小)。
使用特定示例来遍历图1的过程可能是有帮助的。以下图示出了单级单元(SLC)NAND闪存示例,以图示可以如何执行图1的过程(至少在一些实施例中)。
图2是图示了与单级单元(SLC)NAND闪速存储装置中的状态级别相关联的分布的实施例的图解。为了简单和易于解释,示出了SLC示例,其中存储在每个单元中的(信息)位的数量(b)是1(即,b=1)。尽管该示例示出了SLC示例,但是本文中描述的技术不限于SLC实施例,并且可以扩展到其它类型的存储装置(例如,其中b=2的多级单元(MLC)存储装置、其中b=3的三级单元(TLC)存储装置、其中b=4的四级单元(QLC)存储装置、等等)。
在其中b=1的该SLC示例中,存在两个状态级别:L 0(例如,被写入或编程为保持第一较低量电荷的单元)和L 1(例如,被写入或编程为保持第二较高量电荷的单元)。例如,通过在特定类型的晶体管的浮动栅极中递增地注入预确定量的电荷,来将单元写入或以其它方式编程为处于特定状态级别。一般而言,如果每个单元存储b个位,则状态级别为{L i },其中i=0、1、……、(2 b −1)。状态级别对应于所存储的不同量或水平的电荷,使得L 0对应于最少量的电荷,L 1对应于比L 0更多的电荷,等等(例如,假设没有噪声、电荷损失等)。
即使单元被编程或写入为处于相同的状态级别,具有的单元也保持略微不同的电荷量。照此,状态级别在这里被示出为分布。例如,与L 0分布(200和204)相关联的单元全部被编程为处于第一状态级别(即,L 0),并且与L 1分布(202和206)相关联的单元全部被编程为处于第二状态级别(即,L 1)。一些其它读取阈值生成技术假设高斯分布,在这种情况下,状态级别分布将类似于高斯L 0分布(200)和高斯L 1分布(202)。在现实世界中(例如,取决于数据保留噪声、数据保留时间、存储温度、存储装置上的磨损(例如,编程/擦除(PE)周期计数)等),状态级别分布可能是杂乱的和/或非高斯的,诸如非高斯L 0分布(204)和非高斯L 1分布(206)。在一些实施例中,该分布开始为更像高斯的分布(例如,由于具有低编程和擦除计数的较短数据保留时间和较少磨损的单元),并且衰减成非高斯分布(例如,由于数据保留时间变得更长,并且这些单元随着较大编程和擦除计数而变得磨损)。
每个(例如,读回)状态级别被映射或解释为特定(例如,有效负载)编号、符号或值。在该示例中,L 0状态级别与值1相关联或映射到值1,并且L 1状态级别与值0相关联或映射到值0。更一般地,每个状态级别L i 映射到或对应于0到(2 b −1)范围内的值。每个值与L i 状态级别之间的映射(有时被称为单元级别位映射)通常是供应商特定的,并且由于相邻状态级别交叉错误的普遍存在,通常使用灰度编码来最小化位错误的数量。
如本文中所使用的,上标(t)标示与第t页读取相关联的变量(例如,相对于该读取阈值生成技术)。一个这样的变量是读取阈值T 0 (0)(208),读取阈值T 0 (0)(208)与第0个迭代处的读取相关联(例如,注意T 0 (0)中的上标(0)),并且其开启或以其它方式激活具有小于或等于读取阈值T 0 (0)的电荷的单元。照此,处于或低于T 0 (0)的单元被读回为处于L 0状态级别(例如,值1),并且具有1值或L 0状态级别的这样的单元的数量或计数是l 0 (0)(212)。具有大于T 0 (0)的电荷的其它单元以l 1 (0)(214)来计数。这意味着,在读取阈值T 0 (0)(208)右边的非高斯L 0分布(204)中的单元将被错误地读取为0值或L 1状态级别,并且在读取阈值T 0 (0)(208)左边的非高斯L 1分布(206)中的单元将被错误地读取为1值或L 0状态级别。
在一些实施例中,一个或多个初始读取阈值是预定义值。例如,对于t=0的读取,在第0个读取处使用的(一个或多个)读取阈值(T i (0))可以是来自先前读取(例如,该先前读取最近使纠错解码失败并且因此触发了该读取生成过程)的读取阈值和/或最优读取阈值的最近估计。对于t=1的读取,所使用的(一个或多个)读取阈值(例如,T i (1))是从t=0的读取以(一个或多个)某预定义值向左(例如,向下)移位的(一个或多个)读取阈值(例如,T i (1)T i (0) − <预定义值>)。保留噪声的主要影响是使单元级别电压分布加宽并向左移动(即,向下移动,这是由于保留噪声倾向于由电荷泄漏而不是由电荷的添加所主导),并且因此将t=0的读取阈值以某个量向左移位可能是针对该读取阈值的良好估计。在一个示例中,使用了预定义(向下)移位σ i ,即第i个级别从T i (0)T i (1)的分布的估计标准偏差,因为σ i 是尾部分布的主导指标。
返回到观测计数,使用读取阈值T 0 (0)(208)的读取产生了观测计数l 0 (0)(212),观测计数l 0 (0)(212)是在第0个读取时(例如,注意l 0 (0)中的上标(0))被读取为处于L 0状态级别(例如,注意l 0 (0)中的下标0)的单元的数量。类似地,观测计数l 1 (0)(214)是在第0个读取时被读取为处于L 1状态级别的单元的数量。这些观测计数包括来自读取阈值T 0 (0)(208)右边的非高斯L 0分布(204)中的单元和读取阈值T 0 (0)(208)左边的非高斯L 1分布(206)中的单元的读取错误。这些计数(即,l 0 (0)l 1 (0))是图1中的步骤100中的观测计数的示例。使用T 0 (0)(208)的读取还返回或以其它方式准许值l 1 (0)(214)的知识,因为未被开启或读取为值1(即,处于L 0状态级别)的单元被读取为具有值0和/或通过消除而具有值0(即,处于L 1状态级别)。更一般地,l i (t)是在第t个读取时获得的并且处于(被读取为处于)L i 状态级别的单元的观测计数。
返回到读取阈值的主题,不需要使用具有索引(2 b −1)的读取阈值来执行读取,该读取阈值开启或以其它方式激活处于高达并且包括最高状态级别(即,其开启或以其它方式激活大多数(如果不是全部的话)单元)的状态级别的单元。例如,在图2的SLC示例中,单个读取阈值足以在两个状态级别之间进行区分,并且因此不需要读取阈值T 1 (0)(例如,其将读取或以其它方式开启大多数(如果不是全部的话)单元)。类似地,对于其中存在四个状态级别的MLC实施例,将仅需要三个读取阈值以在四个状态级别之间进行区分或以其它方式读取四个状态级别,并且读取阈值T 3 (t)是不必要的。因此,仅具有在0到(2 b −2)范围内的索引的读取阈值才是感兴趣的:{T i (t)},其中i=0、……、(2 b −2)。
在确定下一个读取阈值时(例如,在图1中的步骤102处)的目标是确定(更)接近最优读取阈值(210)的读取阈值。最优读取阈值对应于两个相邻分布(例如,非高斯L 0L 1分布(204和206))在其处彼此交叉的电压或电荷水平,并且最优读取阈值是产生最小数量的误差的读取阈值。如下面将更详细描述的,图1的过程可以在概念上被视为是梯度下降过程,该梯度下降过程不假设基础高斯分布(这是并不始终保持的假设),也不需要为了生成下一个读取阈值而执行纠错解码(这相对耗时并且显著添加总读取时延)。
在该示例中,所有读取阈值(诸如先前读取阈值(例如,T i (t))或下一个读取阈值(例如,T i (t+1)))被限制为来自预定义值或准许值集合的值。例如,一些固态系统具有固定或预定义读取阈值,该固定或预定义读取阈值与特定状态级别相关联并且在本文中被称为目标(电压)阈值(T i )。这些目标阈值不能由用户改变或以其它方式调整,并且可以在概念上被视为默认阈值。如果用户想要使用不等于该对应目标阈值(例如,T i )的读取阈值(例如,T i (t)),则一些固态存储设备准许使用相对于固定目标阈值的增量偏移量进行读取。在一些这样的实施例中,读取阈值(例如,T i (t))被表达为:
Figure DEST_PATH_IMAGE017
其中T i 是(例如,固定和/或预定义)目标阈值,Δ是固态存储装置所支持的(例如,固定和/或预定义)最小电压增量,并且
Figure DEST_PATH_IMAGE019
是本文中被称为阈值偏移量的标量参数(例如,其是可变的)。当前描述的示例具有该配置,并且因此尝试找到或以其它方式确定下一个阈值偏移量(
Figure DEST_PATH_IMAGE021
),这等同于确定下一个读取阈值(T i (t+1))。如上面所描述的,具有索引(2 b −1)的读取阈值不是感兴趣的,因此{T i },其中i=0、……、(2 b –2),并且
Figure DEST_PATH_IMAGE023
,其中i=0、……、(2 b −2)。
返回到图1,除了单元的观测数量之外,步骤100还使用单元的预期数量。在该示例中,处于每个状态级别的单元的预期数量(本文中有时被称为预期计数)是读取(数据)的长度(例如,n)除以状态级别的数量(例如,2 b )。例如,如果正在读取SLC存储装置中的字线,则E(l 0)将是字线的长度除以2,这是由于仅存在两个状态级别:L 0L 1。在写入和/或编码过程期间,(通常)对数据执行加扰过程,这产生了要存储的均匀分布的值(例如,要针对SLC存储装置来存储的0和1的相等分布或数量)。结果,在许多应用中安全的是,假设在SLC存储装置中,读回的位的一半应当是1值(即,L 0状态级别),并且位的一半应当是0值(即,L 1状态级别)。E(l i )在本文中有时被称为预期计数(例如,处于L i 状态级别的单元的数量的预期值)。
在描述如何可以在图1的步骤100处确定级别计数差异(例如,D i (t)和/或前面的D i (t−1))的示例之前,首先定义一些其它项或变量将是有帮助的。S i (t)在本文中被称为累积观测计数,并且是被观测到处于(或被读回为)高达并且包括状态级别L i 的状态级别的单元的数量的总和。通过定义:
Figure DEST_PATH_IMAGE025
其中通过定义,S 0并且因此S 0 (t)等于0,并且l j (t)是在第t个读取处与第j个状态级别(例如,L j )相关联的观测计数。我们观测到,阈值的数量是2 b −1,其分别对应于S i i=1、2、……、2 b −1。对于图2中所示出的SLC示例,其中b=2,并且t=0,S 0 (0)=0并且S 1 (0)=l 0 (0)。下面的表示出了MLC存储装置的示例累积观测计数,其中b=2并且存在四个状态级别。
Figure DEST_PATH_IMAGE027
表1:MLC存储装置的累积观测计数S i (t)的示例。
要注意的是,上面的表中的每个累积观测计数对应于由特定读取阈值开启或激活的(例如,观测到的)单元。也就是说,S i (t)仅取决于T i−1 (t)(例如,仅可以从T i−1 (t)获得),而不是其它读取阈值。例如,对于S 1 (t),以l 0 (t)计数的单元全部被开启,并且可以仅使用读取阈值T 0 (t)来计数。对于S 2 (t),以l 0 (t)l 1 (t)计数的单元全部被开启,并且可以只利用读取阈值T 1 (t)来计数,等等。在一些情况下(例如,针对其中b≥2的存储装置),处理累积观测计数而不是l i (t)计数可能是更方便的,因为可以使用单个读取阈值(例如,针对单个状态级别)从单个读取获得累积观测计数。消除对其它状态级别的其它读取阈值的依赖也可能是有用的,这是由于那些其它读取阈值可能(也)处于正被调整或以其它方式细化以找到针对那些状态级别的下一个更好的读取阈值的过程中,并且读取阈值生成过程彼此独立是合期望的。
总和(E(S i ))的预期值(本文中有时被称为预期总和)是
Figure DEST_PATH_IMAGE029
。如上面所描述的,假设在写入和/或编码路径中存在加扰器,以均匀地分布被存储的值和/或单元所处的状态级别,并且因此预期总和假设均匀分布。以下表示出了MLC存储装置的示例预期总和(E(S i ))。
Figure DEST_PATH_IMAGE031
表2:MLC存储装置的预期总和E(S i ))的示例。
在上面的表中,n是读取或测量的单元的数量,并且假设加扰是(例如,完全)均匀的。例如,如果字线被读取,则那么n等于字线的长度。
级别计数差异D i (t)(例如,其在图1中的步骤100处被确定)被定义为累积观测计数(S i (t))减去预期总和(E(S i )):
Figure DEST_PATH_IMAGE033
假设加扰器完美且均匀地在n个单元当中分布所存储的值或状态级别,则可以叙述以下关于预期总和(E(S i ))和相关联的标准偏差(σ 2(S i )):
Figure DEST_PATH_IMAGE035
当针对t≥2来确定读取偏移量(
Figure DEST_PATH_IMAGE037
)时,使用以下内容:
Figure DEST_PATH_IMAGE039
其中{
Figure DEST_PATH_IMAGE041
}是正阻尼序列,诸如
Figure DEST_PATH_IMAGE043
,其在一些应用中可能是合期望的,因为在没有正阻尼序列的情况下,迭代可能振荡。
如上面所描述的,确定下一个阈值偏移量(例如,
Figure DEST_PATH_IMAGE045
)等同于(至少在该示例中)确定下一个读取阈值(例如,T i (t+1)),其中
Figure DEST_PATH_IMAGE047
。在上面的等式中,sign(D i (t))返回D i (t)的符号,并且因此确定第(t+1)个读取偏移量(以及对应地,读取阈值)是在第t个读取偏移量(以及对应地,读取阈值)的左边还是右边。正值
Figure DEST_PATH_IMAGE049
Figure DEST_PATH_IMAGE051
指定了下一个读取偏移量
Figure DEST_PATH_IMAGE052
将处于先前读取偏移量
Figure DEST_PATH_IMAGE054
的左边或右边多少。换句话说,确定下一个读取阈值包括:至少部分地基于级别计数差异(例如,D i (t))和第二个且更旧的级别计数差异(例如,D i (t−1))来确定下一个读取阈值(例如,相对于先前读取阈值)的偏移量,并且至少部分地基于级别计数差异的符号来确定是将该偏移量与先前读取阈值相加还是相减。一般来说,这就像梯度下降,其中该过程尝试沿着该分布的斜率而向下。
要注意的是,上面描述的确定或以其它方式生成下一个读取阈值的示例性技术不假设基础高斯分布,不需要冗长的纠错解码,并且不需要该分布的特定部分中的读取(例如,不需要尾部中的读取)。出于这些原因,该示例性技术可以产生更好的结果(例如,因为它不在其中不存在高斯分布的情况下假设高斯分布),和/或可以比一些其它技术更快地返回结果(例如,因为它不执行纠错解码,纠错解码可能花费相对长的时间)。
简要地返回到图1的过程,在一些实施例中,在步骤106处执行硬判决纠错解码。以下图示出了执行图1的示例性过程的固态存储装置系统的示例框图,该示例性过程包括步骤106处的硬解码。
图3是图示了具有使用梯度下降而生成的读取阈值以及硬判决纠错解码(如果需要的话)的固态存储装置系统的实施例的框图。在该示例中,要存储的写入数据例如从想要将数据存储在固态存储装置上的应用被传递到纠错编码器(300),该固态存储装置在该示例中是NAND闪速存储装置(302)。编码器(300)将纠错码应用于写入数据,并且执行加扰(例如,以均匀地分布所存储的值或单元状态级别),并且输出经编码和加扰的数据,该数据被传递到写入控制器(304)。写入控制器将经编码和加扰的数据存储在NAND闪速存储装置中的某个物理地址处,并且将该物理地址与逻辑地址相关联或以其它方式映射。该映射信息被存储在由写入控制器(304)和读取控制器(308)二者共享和/或对于其二者可访问的存储器(306)中。
为了检索所存储的数据(例如,响应于指向逻辑地址的读取请求),读取控制器(308)访问共享存储器(306)以确定与逻辑地址相关联的物理地址。在该示例中,读取控制器将使用一个或多个默认的、初始的和/或先前的读取阈值(诸如目标阈值(T i ))在所查找的物理地址处初始读取NAND闪速存储装置(302)。在该示例中,(例如,使用(一个或多个)默认的、初始的和/或先前的读取阈值获得的)读取数据具有如此多的错误,以至于硬判决纠错解码器(310)不能够纠正读取数据,并且因此不能输出经纠正的读取数据(例如,到应用)。例如,NAND闪速存储装置(302)可能相对旧,具有高编程和擦除计数,和/或数据可能已经在NAND闪速存储装置中被存储达相对长的时间。
响应于硬判决纠错解码器(310)对读取数据进行解码的失败,读取控制器(308)使用图1的过程来确定一个或多个新的和/或非默认的读取阈值(至少在该示例中)。如上面所描述的,用于确定新的和/或非默认的读取阈值的图1的过程可以使用被尝试的先前读取阈值和/或通过使用各种读取阈值来读取固态存储装置而获得的计数,并且该信息可以被存储在存储器(306)中并且由读取控制器(308)根据需要/如果需要的话来检索。一旦确定了(一个或多个)下一个读取阈值,就使用该读取阈值来读取NAND闪速存储装置中的适当物理地址,以便获得读取数据(例如,具有更少的错误和/或可纠正的不同错误模式)。然后,(新的)读取数据被传递到硬判决纠错解码器(310)以进行另一次解码尝试,并且如果解码成功,则输出经纠正的读取数据(例如,到发出读取指令或请求的应用)。如果没有成功,则可以重复(例如,图1的)该过程(例如,直到某个预定义的限制或最大尝试次数,停止图1的过程)。
在该示例中,解码器(310)是硬判决纠错解码器(本文中有时被称为硬解码器),而不是软判决纠错解码器(本文中有时被称为软解码器)。尽管软解码器能够解码硬解码器不能够解码的一些错误,但是它们倾向于花费更长的时间。照此,在该示例中,(例如,首先)使用硬解码器。以下图描述了类似的系统,其中如果使用上面描述的梯度下降技术获得的读取数据的硬解码在一些尝试次数内继续失败,则那么使用第二技术(例如,跟踪聚合)来确定新的和/或下一个读取阈值,并且对读取数据执行软解码。
图4是图示了具有使用跟踪聚合而生成的读取阈值以及软判决纠错解码(如果需要的话)的固态存储装置系统的实施例的框图。图4类似于图3,并且为了简洁起见,一些块没有在本文中描述。与图3的示例一样,读取控制器(400)通过使用(一个或多个)默认的、初始的和/或先前的读取阈值(诸如(一个或多个)目标阈值(T i ))来读取NAND闪速存储装置(402)而开始,并且该读取数据使用硬解码器(404)来解码。如果硬解码器(404)或软解码器(408)二者任一在任何时间处成功,则多路复用器(406)选择来自成功解码器的输出,并且将其作为经纠正的读取数据而输出(例如,到发出读取指令或读取请求的应用)。
如果硬解码器(404)未能解码使用(一个或多个)初始的、默认的和/或先前的读取阈值而获得的读取数据,则读取控制器(400)使用如上面所描述的梯度下降方法来生成一个或多个新的读取阈值。如上面的示例中所描述的,t=0和t=1的(一个或多个)读取阈值是预定义的,并且来自那些读取的读取数据不会被纠错。代替地,使用t=0和t=1的读取数据以根据上面描述的梯度下降示例来生成(一个或多个)下一个读取阈值。然而,对使用经由上面描述的梯度下降技术生成的读取阈值(偏移量)而获得的读取数据执行硬解码。梯度下降生成的(一个或多个)读取阈值和硬解码器被给予预定义和/或固定的尝试次数,以成功地输出经纠正的读取数据,但是在一些其它实施例中,使用不同的限制或最大尝试次数。
读取阈值生成技术 纠错解码
(一个或多个)初始的、默认的和/或先前的读取阈值 硬判决
(一个或多个)预定义的读取阈值(例如,梯度下降过程的一部分) N/A
梯度下降 硬判决
(一个或多个)最后的梯度下降阈值周围的预定义升序和降序序列(例如,跟踪聚合过程的一部分) 硬判决
跟踪聚合 软判决
表3:由图4的系统所尝试的读取阈值生成和纠错解码组合的示例序列。
如果达到最大尝试次数,则读取控制器(400)切换到聚合跟踪技术以生成(一个或多个)下一个读取阈值(例如,被表达为(一个或多个)偏移量)。为此,读取控制器(400)在使用梯度下降而生成的(一个或多个)最后的读取阈值附近进行读取。更具体地,这些读取是在由梯度下降技术生成的最后的读取阈值(偏移量)周围以增量Δ来完成的。让
Figure DEST_PATH_IMAGE056
(其中i=0、1、2、……、(2 b −2))是使用梯度下降而生成的(一个或多个)最新读取偏移量,并且沿着该(一个或多个)最新读取(阈值)偏移量的分别向右和向左的以下两个序列来执行附近的读取:
Figure DEST_PATH_IMAGE058
其中i=0、1、2、……、(2 b −2),(如上面所描述的)Δ是固态存储装置所支持的最小电压增量,并且v 1v 2是动态确定的正整数(这在下面更详细地描述)。来自这些读取的读取数据由硬解码器(404)来解码,并且如果解码成功,则输出经解码的数据作为经纠正的读取数据,并且该过程结束。
在该示例中,在(一个或多个)最后的梯度下降生成的读取阈值((一个或多个)偏移量)周围的读取的数量不是预定义的,而是基于何时满足(停止)条件来动态确定的。在该示例中,停止条件取决于c i (j)c i (j)是使用相邻读取偏移量(
Figure DEST_PATH_IMAGE060
)和(
Figure DEST_PATH_IMAGE062
)被读取为开启(即,处于L i 状态级别或更低)的单元的数量之间的差,其中j=0的情况被忽略。以下图示出了相邻计数差的示例。
图5是图示了在跟踪聚合中使用的相邻计数差的实施例的图解。在该示例中,表500示出了与读取偏移量的递增序列(例如,
Figure DEST_PATH_IMAGE064
Figure DEST_PATH_IMAGE066
Figure DEST_PATH_IMAGE068
、……、
Figure DEST_PATH_IMAGE070
Figure DEST_PATH_IMAGE072
)相关联的相邻计数差(c i (j))。在该表中,顶部行(502)示出了被读取为开启(例如,处于L i 或更低的状态级别)的单元的数量。偏移量的序列在值方面增加,因此顶部行(502)中的单元数量将倾向于(但不始终)增加。
底部行(504)示出了来自顶部行(502)中的相邻读取偏移量的计数之间的相邻计数差。在该示例中,预定义阈值(幅度)是200,并且第一次超过该阈值是针对c i (4)=266的,该c i (4)=266与
Figure DEST_PATH_IMAGE074
Figure DEST_PATH_IMAGE076
相邻偏移量相关联。因此,读取过程将在
Figure DEST_PATH_IMAGE077
读取偏移量处停止(至少在该方向上停止)。
表510示出了针对读取偏移量的递减序列(例如,
Figure DEST_PATH_IMAGE078
Figure DEST_PATH_IMAGE080
、……、
Figure DEST_PATH_IMAGE082
Figure DEST_PATH_IMAGE084
)的相同信息。如之前,顶部行(512)示出了针对给定偏移量被读取为开启的单元的数量,并且底部行(514)示出了相邻偏移量之间的相邻计数差。在这种情况下,预定义阈值(幅度)200更早地在c i (−3)=−216时被超过,该c i (−3)=−216与
Figure DEST_PATH_IMAGE086
Figure DEST_PATH_IMAGE088
相邻读取偏移量相关联。因此,该读取过程将在
Figure 448727DEST_PATH_IMAGE088
读取偏移量处停止(至少在该方向上停止)。如上面所描述的,j=0的情况被忽略。
返回到图5,利用图5中所示出的示例性相邻差计数,在该聚合跟踪示例中使用以下逆加权平均来确定下一个读取阈值(偏移量):
Figure DEST_PATH_IMAGE090
其中(例如,在第二项中)使用最小值
Figure DEST_PATH_IMAGE092
是为了对读取噪声进行折衷,并且其中
Figure DEST_PATH_IMAGE094
是最后的读取偏移量(例如,如果这是跟踪聚合的第一次迭代,则它是由梯度下降过程生成的,或者如果这是跟踪聚合的第二次或后续迭代,则它是由跟踪聚合生成的最后偏移量),Δ是偏移量(例如,固态存储装置系统所支持的最小电压偏移量),并且对其执行该求和的范围(例如,从−v 2v 1)由执行递增序列和递减序列读取的上和下多远决定。0.5与c i (j)的相加是为了防止精度溢出,并且使第二项的最小值至少为
Figure DEST_PATH_IMAGE092A
是为了对读取噪声进行折衷。两个求和的乘积的效果将取决于哪些差计数更小:是与向右的升序序列相关联的差计数,还是与向左的降序序列相关联的差计数。更小的差计数携带更多的权重,而更大的相邻差计数携带更少的权重(因此其被称为逆加权平均)。直观地或在概念上,逆加权平均尝试在发生于数据分布谷(valley)处的读取上插入更多的权重。
例如,如果使用图5中所示出的值来找到下一个偏移量:
Figure DEST_PATH_IMAGE096
等等。作为实际问题,由于Δ是该系统所支持的最小电压增量,因此下一个偏移量(或阈值)被舍入至Δ的最近整数倍。
简要地返回到表3,使用跟踪聚合而生成的(一个或多个)读取阈值((一个或多个)偏移量)被(例如,由图4中的软解码器408)软解码。可以根据期望重复许多次用于生成(一个或多个)读取阈值((一个或多个)偏移量)的跟踪聚合以及软解码的组合,直到该组合停止为止。
要注意的是,表3的示例和本文中所描述的其它示例中所示出的序列和组合仅仅是示例性的,而不意图是限制性的。在一些其它实施例中,与这里所示出的示例相比,可以使用不同的组合序列、不同的组合和/或不同的尝试次数。例如,可以对使用(一个或多个)梯度下降生成的读取阈值而获得的读取数据执行软解码。
在以下流程图中更正式地和/或一般地描述了该示例。
图6是图示了使用跟踪聚合来生成读取阈值并且对读取数据执行软判决纠错解码(如果需要的话)的过程的实施例的流程图。在该示例中,图6继续图1的示例(例如,用于在步骤102处生成(一个或多个)新的读取阈值、在步骤104处进行读取以及在步骤106处执行纠错解码的一些最大尝试次数已经被达到之后,而没有成功)。在一些实施例中,步骤106处的解码包括和/或限于硬判决纠错解码。
在600处,以整数增量Δ在固态存储装置上执行多个读取,以获得以增量Δ的多个读取数据,其中Δ是固态存储装置所支持的最小电压增量。例如,参见图5中的表500中以正增量Δ(例如,向先前读取阈值的右边)执行的读取、以及图5中的表510中以负增量Δ(例如,向先前读取阈值的左边)执行的读取。
在602处,至少部分地基于逆加权平均以及以增量Δ的多个读取数据来确定第二下一个读取阈值。在上面描述的以及图5中所示出的示例中,确定相邻差计数(c i (j)),并且然后将那些值用于逆加权平均,以确定下一个读取偏移量(阈值)。
在604处,使用第二下一个读取阈值在固态存储装置上执行读取以获得第二读取数据。在606处,对第二读取数据执行纠错解码。例如,如表3的示例中所示出的,可以对该读取数据执行软解码,即使软解码倾向于比硬解码花费更长的时间。在该示例中,尝试新的读取阈值并且后续纠错解码已经失败多次,并且因此使用软解码器是可接受的(至少在一些应用中),该软解码器可能花费更长的时间,但是能够解码硬解码器不能解码的一些错误。
根据需要或如果需要的话,可以重复图6中所示出的该过程,直到发生超时或者纠错解码(软解码或硬解码二者任一)成功为止。
尽管出于清楚理解的目的已经对前述实施例进行了一些详细描述,但是本发明不限于所提供的细节。存在实现本发明的许多替代方式。所公开的实施例是说明性的,而不是限制性的。

Claims (18)

1.一种系统,包括:
固态存储装置,其包括多个单元;
读取控制器,其被配置成:
至少部分地基于固态存储装置中的单元的预期计数和固态存储装置中的单元的观测计数来确定级别计数差异,其中所述观测计数是从使用先前读取阈值在固态存储装置上执行的读取而获得的;
至少部分地基于级别计数差异来确定下一个读取阈值;以及
使用下一个读取阈值在固态存储装置上执行读取以获得读取数据;以及
纠错解码器,其被配置成对读取数据执行纠错解码。
2.根据权利要求1所述的系统,其中所述纠错解码器包括硬判决纠错解码器,所述硬判决纠错解码器对读取数据执行硬判决纠错解码。
3.根据权利要求1所述的系统,其中所述读取控制器被配置成包括通过以下方式来确定下一个读取阈值:
至少部分地基于级别计数差异和第二个且较旧的级别计数差异来确定下一个读取阈值相对于先前读取阈值的偏移量;以及
至少部分地基于级别计数差异的符号来确定是将偏移量与先前读取阈值相加还是相减。
4.根据权利要求1所述的系统,其中所述读取控制器被配置成包括通过以下方式来确定下一个读取阈值:
至少部分地基于级别计数差异、第二个且较旧的级别计数差异、以及阻尼序列来确定下一个读取阈值相对于先前读取阈值的偏移量;以及
至少部分地基于级别计数差异的符号来确定是将偏移量与先前读取阈值相加还是相减。
5.根据权利要求1所述的系统,其中所述读取控制器进一步被配置成:
以整数增量Δ在固态存储装置上执行多个读取,以获得以增量Δ的多个读取数据,其中Δ是固态存储装置所支持的最小电压增量;
至少部分地基于逆加权平均以及以增量Δ的多个读取数据来确定第二下一个读取阈值;以及
使用第二下一个读取阈值在固态存储装置上执行读取以获得第二读取数据。
6.根据权利要求1所述的系统,其中:
纠错解码器包括,硬判决纠错解码器,所述硬判决纠错解码器对读取数据执行硬判决纠错解码;
读取控制器进一步被配置成:
以整数增量Δ在固态存储装置上执行多个读取,以获得以增量Δ的多个读取数据,其中Δ是固态存储装置所支持的最小电压增量;
至少部分地基于逆加权平均以及以增量Δ的多个读取数据来确定第二下一个读取阈值;以及
使用第二下一个读取阈值在固态存储装置上执行读取以获得第二读取数据;以及
所述系统进一步包括软判决纠错解码器,所述软判决纠错解码器对第二读取数据执行软判决纠错解码。
7.一种方法,包括:
至少部分地基于固态存储装置中的多个单元的预期计数和固态存储装置中的多个单元的观测计数来确定级别计数差异,其中所述观测计数是从使用先前读取阈值在固态存储装置上执行的读取而获得的;
至少部分地基于级别计数差异来确定下一个读取阈值;
使用下一个读取阈值在固态存储装置上执行读取以获得读取数据;以及
对读取数据执行纠错解码。
8.根据权利要求7所述的方法,其中执行纠错解码包括对读取数据执行硬判决纠错解码。
9.根据权利要求7所述的方法,其中确定下一个读取阈值包括:
至少部分地基于级别计数差异和第二个且较旧的级别计数差异来确定下一个读取阈值相对于先前读取阈值的偏移量;以及
至少部分地基于级别计数差异的符号来确定是将偏移量与先前读取阈值相加还是相减。
10.根据权利要求7所述的方法,其中确定下一个读取阈值包括:
至少部分地基于级别计数差异、第二个且较旧的级别计数差异、以及阻尼序列来确定下一个读取阈值相对于先前读取阈值的偏移量;以及
至少部分地基于级别计数差异的符号来确定是将偏移量与先前读取阈值相加还是相减。
11.根据权利要求7所述的方法,进一步包括:
以整数增量Δ在固态存储装置上执行多个读取,以获得以增量Δ的多个读取数据,其中Δ是固态存储装置所支持的最小电压增量;
至少部分地基于逆加权平均以及以增量Δ的多个读取数据来确定第二下一个读取阈值;以及
使用第二下一个读取阈值在固态存储装置上执行读取以获得第二读取数据。
12.根据权利要求7所述的方法,其中:
执行纠错解码包括对读取数据执行硬判决纠错解码;以及
所述方法进一步包括:
以整数增量Δ在固态存储装置上执行多个读取,以获得以增量Δ的多个读取数据,其中Δ是固态存储装置所支持的最小电压增量;
至少部分地基于逆加权平均以及以增量Δ的多个读取数据来确定第二下一个读取阈值;
使用第二下一个读取阈值在固态存储装置上执行读取以获得第二读取数据;以及
对第二读取数据执行软判决纠错解码。
13.一种体现在非暂时性计算机可读介质中并且包括计算机指令的计算机程序产品,所述计算机指令用于:
至少部分地基于固态存储装置中的多个单元的预期计数和固态存储装置中的多个单元的观测计数来确定级别计数差异,其中所述观测计数是从使用先前读取阈值在固态存储装置上执行的读取而获得的;
至少部分地基于级别计数差异来确定下一个读取阈值;
使用下一个读取阈值在固态存储装置上执行读取以获得读取数据;以及
对读取数据执行纠错解码。
14.根据权利要求13所述的计算机程序产品,其中执行纠错解码包括对读取数据执行硬判决纠错解码。
15.根据权利要求13所述的计算机程序产品,其中确定下一个读取阈值包括:
至少部分地基于级别计数差异和第二个且较旧的级别计数差异来确定下一个读取阈值相对于先前读取阈值的偏移量;以及
至少部分地基于级别计数差异的符号来确定是将偏移量与先前读取阈值相加还是相减。
16.根据权利要求13所述的计算机程序产品,其中确定下一个读取阈值包括:
至少部分地基于级别计数差异、第二个且较旧的级别计数差异、以及阻尼序列来确定下一个读取阈值相对于先前读取阈值的偏移量;以及
至少部分地基于级别计数差异的符号来确定是将偏移量与先前读取阈值相加还是相减。
17.根据权利要求13所述的计算机程序产品,进一步包括:
以整数增量Δ在固态存储装置上执行多个读取,以获得以增量Δ的多个读取数据,其中Δ是固态存储装置所支持的最小电压增量;
至少部分地基于逆加权平均以及以增量Δ的多个读取数据来确定第二下一个读取阈值;以及
使用第二下一个读取阈值在固态存储装置上执行读取以获得第二读取数据。
18.根据权利要求13所述的计算机程序产品,其中:
执行纠错解码包括对读取数据执行硬判决纠错解码;以及
所述方法进一步包括:
以整数增量Δ在固态存储装置上执行多个读取,以获得以增量Δ的多个读取数据,其中Δ是固态存储装置所支持的最小电压增量;
至少部分地基于逆加权平均以及以增量Δ的多个读取数据来确定第二下一个读取阈值;
使用第二下一个读取阈值在固态存储装置上执行读取以获得第二读取数据;以及
对第二读取数据执行软判决纠错解码。
CN202210205928.8A 2021-04-06 2022-03-04 用于固态存储装置的读取阈值的自适应dsp生成 Active CN115206381B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/223807 2021-04-06
US17/223,807 US11355216B1 (en) 2021-04-06 2021-04-06 Adaptive DSP generation of read thresholds for gaussian and non-gaussian distributions in solid state storage using cumulative observed counts

Publications (2)

Publication Number Publication Date
CN115206381A true CN115206381A (zh) 2022-10-18
CN115206381B CN115206381B (zh) 2024-09-10

Family

ID=81852384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210205928.8A Active CN115206381B (zh) 2021-04-06 2022-03-04 用于固态存储装置的读取阈值的自适应dsp生成

Country Status (2)

Country Link
US (2) US11355216B1 (zh)
CN (1) CN115206381B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11462279B1 (en) * 2021-05-13 2022-10-04 Western Digital Technologies, Inc. Modified distribution of memory device states

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110161775A1 (en) * 2009-12-24 2011-06-30 Hanan Weingarten System and method for setting a flash memory cell read threshold
CN102623050A (zh) * 2011-01-28 2012-08-01 株式会社东芝 半导体集成电路及存储器系统
US20130297988A1 (en) * 2012-05-04 2013-11-07 Lsi Corporation Low-density parity-check decoder disparity preprocessing
US8923062B1 (en) * 2012-07-06 2014-12-30 Sk Hynix Memory Solutions Inc. Generating read thresholds using gradient descent and without side information
US9240245B1 (en) * 2012-09-11 2016-01-19 Sk Hynix Memory Solutions Inc. Memory efficient triggers of read disturb checks in solid state storage
CN107094370A (zh) * 2012-05-04 2017-08-25 希捷科技有限公司 固态硬盘控制器的0‑1平衡管理
CN108986867A (zh) * 2017-05-31 2018-12-11 爱思开海力士有限公司 半导体存储器系统及其操作方法
US20190043589A1 (en) * 2018-04-09 2019-02-07 Intel Corporation One-sided soft reads
CN111104528A (zh) * 2018-10-29 2020-05-05 浙江宇视科技有限公司 图片获取方法、装置及客户端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130343131A1 (en) 2012-06-26 2013-12-26 Lsi Corporation Fast tracking for flash channels
US10236067B2 (en) * 2017-08-02 2019-03-19 International Business Machines Corporation State-dependent read voltage threshold adaptation for nonvolatile memory

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110161775A1 (en) * 2009-12-24 2011-06-30 Hanan Weingarten System and method for setting a flash memory cell read threshold
CN102623050A (zh) * 2011-01-28 2012-08-01 株式会社东芝 半导体集成电路及存储器系统
US20130297988A1 (en) * 2012-05-04 2013-11-07 Lsi Corporation Low-density parity-check decoder disparity preprocessing
CN107094370A (zh) * 2012-05-04 2017-08-25 希捷科技有限公司 固态硬盘控制器的0‑1平衡管理
US8923062B1 (en) * 2012-07-06 2014-12-30 Sk Hynix Memory Solutions Inc. Generating read thresholds using gradient descent and without side information
US9240245B1 (en) * 2012-09-11 2016-01-19 Sk Hynix Memory Solutions Inc. Memory efficient triggers of read disturb checks in solid state storage
CN108986867A (zh) * 2017-05-31 2018-12-11 爱思开海力士有限公司 半导体存储器系统及其操作方法
US20190043589A1 (en) * 2018-04-09 2019-02-07 Intel Corporation One-sided soft reads
CN111104528A (zh) * 2018-10-29 2020-05-05 浙江宇视科技有限公司 图片获取方法、装置及客户端

Also Published As

Publication number Publication date
US11355216B1 (en) 2022-06-07
CN115206381B (zh) 2024-09-10
US20220328121A1 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
US8650352B2 (en) Systems and methods for determining logical values of coupled flash memory cells
US8797795B2 (en) Methods and apparatus for intercell interference mitigation using modulation coding
US7876621B2 (en) Adaptive dynamic reading of flash memories
JP5475665B2 (ja) フラッシュメモリのクロスカップリング事後補正
US8937838B2 (en) Finding optimal read thresholds and related voltages for solid state memory
US8694715B2 (en) Methods for adaptively programming flash memory devices and flash memory systems incorporating same
TWI581269B (zh) 利用解碼器效能回饋用於記憶體裝置之軟性資料產生的設備及方法
WO2009048214A1 (en) Apparatus and method of multi-bit programming
US10216572B2 (en) Flash channel calibration with multiple lookup tables
KR20090101160A (ko) 플래시 메모리로부터 판독된 하드 비트 및 소프트 비트의 소프트 디코딩
US9390002B1 (en) Efficient bin labeling schemes for tracking cells in solid state storage devices
US9082480B2 (en) Detection and decoding in flash memories with error correlations for a plurality of bits within a sliding window
US8185787B1 (en) Blind and decision directed multi-level channel estimation
CN117751345A (zh) 存储器单元的选择性上电清除
CN115206381A (zh) 用于固态存储装置的读取阈值的自适应dsp生成
US9053804B2 (en) Reduced complexity reliability computations for flash memories
CN117079704A (zh) 软解码可校正页辅助的llr估值
CN115933998B (zh) 获取最优判决电平的方法、装置、存储设备及存储介质
JP6303039B2 (ja) ストレージシステム用のセル位置プログラミング
Liu et al. Improving multilevel PCM reliability through age-aware reading and writing strategies
CN117037878A (zh) 软解码可校正页辅助的参考电压跟踪
CN113921060A (zh) 管理在存储器子系统中的清理操作的执行
KR20110082016A (ko) 소프트 데이터 값 생성 방법 및 소프트 데이터 값 생성 시스템

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