CN115206381A - 用于固态存储装置的读取阈值的自适应dsp生成 - Google Patents
用于固态存储装置的读取阈值的自适应dsp生成 Download PDFInfo
- 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
Links
- 239000007787 solid Substances 0.000 title claims abstract description 61
- 230000003044 adaptive effect Effects 0.000 title description 2
- 238000012937 correction Methods 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims description 64
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013016 damping Methods 0.000 claims description 5
- 238000009826 distribution Methods 0.000 description 40
- 230000002776 aggregation Effects 0.000 description 13
- 238000004220 aggregation Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000014759 maintenance of location Effects 0.000 description 10
- 230000001186 cumulative effect Effects 0.000 description 6
- 101100001677 Emericella variicolor andL gene Proteins 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000002904 solvent Substances 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/12005—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5644—Multilevel memory comprising counting devices
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection 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
背景技术
在一些类型的固态存储装置(例如,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处,至少部分地基于级别计数差异来确定下一个读取阈值。例如,这可以包括至少部分地基于级别计数差异来确定下一个读取阈值相对于先前读取阈值的方向,以及(还)至少部分地基于级别计数差异来确定下一个读取阈值的幅度。在一个示例(其将在下面更详细地描述)中,使用下一个偏移量(例如,)来表达或以其它方式确定下一个读取阈值(例如,T i (t+1)):
其中T i 和Δ是固定的和/或预定义的,并且因此在这样的实施例中,在步骤102处确定下一个读取阈值包括确定下一个偏移量(例如,)。(为了清楚起见,并且为了至少初始地在高级别处解释示例性过程,下面将更详细地解释和描述术语。)。
在下面更详细描述的一个示例中,使用与第t个迭代或计数处的先前读取相关联的(第一)级别计数差异(例如,D i (t))、以及与第(t-1)个读取相关联的(第二)级别计数差异(例如,D i (t−1))来确定下一个偏移量(例如,):
其中,宽泛地说,是正值,并且对应于要与先前偏移量(例如,)相加或相减的幅度或值。该幅度是与先前偏移量相加还是相减(以及因此下一个偏移量是在先前偏移量的左边还是右边)由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)和(一个或多个)下一个偏移量,步骤102可以包括确定T i (t+1)和/或,其中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 0和L 1分布(204和206))在其处彼此交叉的电压或电荷水平,并且最优读取阈值是产生最小数量的误差的读取阈值。如下面将更详细描述的,图1的过程可以在概念上被视为是梯度下降过程,该梯度下降过程不假设基础高斯分布(这是并不始终保持的假设),也不需要为了生成下一个读取阈值而执行纠错解码(这相对耗时并且显著添加总读取时延)。
在该示例中,所有读取阈值(诸如先前读取阈值(例如,T i (t))或下一个读取阈值(例如,T i (t+1)))被限制为来自预定义值或准许值集合的值。例如,一些固态系统具有固定或预定义读取阈值,该固定或预定义读取阈值与特定状态级别相关联并且在本文中被称为目标(电压)阈值(T i )。这些目标阈值不能由用户改变或以其它方式调整,并且可以在概念上被视为默认阈值。如果用户想要使用不等于该对应目标阈值(例如,T i )的读取阈值(例如,T i (t)),则一些固态存储设备准许使用相对于固定目标阈值的增量偏移量进行读取。在一些这样的实施例中,读取阈值(例如,T i (t))被表达为:
其中T i 是(例如,固定和/或预定义)目标阈值,Δ是固态存储装置所支持的(例如,固定和/或预定义)最小电压增量,并且是本文中被称为阈值偏移量的标量参数(例如,其是可变的)。当前描述的示例具有该配置,并且因此尝试找到或以其它方式确定下一个阈值偏移量(),这等同于确定下一个读取阈值(T i (t+1))。如上面所描述的,具有索引(2 b −1)的读取阈值不是感兴趣的,因此{T i },其中i=0、……、(2 b –2),并且,其中i=0、……、(2 b −2)。
返回到图1,除了单元的观测数量之外,步骤100还使用单元的预期数量。在该示例中,处于每个状态级别的单元的预期数量(本文中有时被称为预期计数)是读取(数据)的长度(例如,n)除以状态级别的数量(例如,2 b )。例如,如果正在读取SLC存储装置中的字线,则E(l 0)将是字线的长度除以2,这是由于仅存在两个状态级别:L 0和L 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 的状态级别的单元的数量的总和。通过定义:
其中通过定义,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并且存在四个状态级别。
表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 ))的预期值(本文中有时被称为预期总和)是。如上面所描述的,假设在写入和/或编码路径中存在加扰器,以均匀地分布被存储的值和/或单元所处的状态级别,并且因此预期总和假设均匀分布。以下表示出了MLC存储装置的示例预期总和(E(S i ))。
表2:MLC存储装置的预期总和(E(S i ))的示例。
在上面的表中,n是读取或测量的单元的数量,并且假设加扰是(例如,完全)均匀的。例如,如果字线被读取,则那么n等于字线的长度。
级别计数差异D i (t)(例如,其在图1中的步骤100处被确定)被定义为累积观测计数(S i (t))减去预期总和(E(S i )):
假设加扰器完美且均匀地在n个单元当中分布所存储的值或状态级别,则可以叙述以下关于预期总和(E(S i ))和相关联的标准偏差(σ 2(S i )):
如上面所描述的,确定下一个阈值偏移量(例如,)等同于(至少在该示例中)确定下一个读取阈值(例如,T i (t+1)),其中。在上面的等式中,sign(D i (t))返回D i (t)的符号,并且因此确定第(t+1)个读取偏移量(以及对应地,读取阈值)是在第t个读取偏移量(以及对应地,读取阈值)的左边还是右边。正值 指定了下一个读取偏移量将处于先前读取偏移量的左边或右边多少。换句话说,确定下一个读取阈值包括:至少部分地基于级别计数差异(例如,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)在使用梯度下降而生成的(一个或多个)最后的读取阈值附近进行读取。更具体地,这些读取是在由梯度下降技术生成的最后的读取阈值(偏移量)周围以增量Δ来完成的。让(其中i=0、1、2、……、(2 b −2))是使用梯度下降而生成的(一个或多个)最新读取偏移量,并且沿着该(一个或多个)最新读取(阈值)偏移量的分别向右和向左的以下两个序列来执行附近的读取:
其中i=0、1、2、……、(2 b −2),(如上面所描述的)Δ是固态存储装置所支持的最小电压增量,并且v 1和v 2是动态确定的正整数(这在下面更详细地描述)。来自这些读取的读取数据由硬解码器(404)来解码,并且如果解码成功,则输出经解码的数据作为经纠正的读取数据,并且该过程结束。
在该示例中,在(一个或多个)最后的梯度下降生成的读取阈值((一个或多个)偏移量)周围的读取的数量不是预定义的,而是基于何时满足(停止)条件来动态确定的。在该示例中,停止条件取决于c i (j),c i (j)是使用相邻读取偏移量()和()被读取为开启(即,处于L i 状态级别或更低)的单元的数量之间的差,其中j=0的情况被忽略。以下图示出了相邻计数差的示例。
图5是图示了在跟踪聚合中使用的相邻计数差的实施例的图解。在该示例中,表500示出了与读取偏移量的递增序列(例如,、 、……、、)相关联的相邻计数差(c i (j))。在该表中,顶部行(502)示出了被读取为开启(例如,处于L i 或更低的状态级别)的单元的数量。偏移量的序列在值方面增加,因此顶部行(502)中的单元数量将倾向于(但不始终)增加。
底部行(504)示出了来自顶部行(502)中的相邻读取偏移量的计数之间的相邻计数差。在该示例中,预定义阈值(幅度)是200,并且第一次超过该阈值是针对c i (4)=266的,该c i (4)=266与和相邻偏移量相关联。因此,读取过程将在读取偏移量处停止(至少在该方向上停止)。
表510示出了针对读取偏移量的递减序列(例如,、、……、、)的相同信息。如之前,顶部行(512)示出了针对给定偏移量被读取为开启的单元的数量,并且底部行(514)示出了相邻偏移量之间的相邻计数差。在这种情况下,预定义阈值(幅度)200更早地在c i (−3)=−216时被超过,该c i (−3)=−216与和相邻读取偏移量相关联。因此,该读取过程将在读取偏移量处停止(至少在该方向上停止)。如上面所描述的,j=0的情况被忽略。
返回到图5,利用图5中所示出的示例性相邻差计数,在该聚合跟踪示例中使用以下逆加权平均来确定下一个读取阈值(偏移量):
其中(例如,在第二项中)使用最小值是为了对读取噪声进行折衷,并且其中是最后的读取偏移量(例如,如果这是跟踪聚合的第一次迭代,则它是由梯度下降过程生成的,或者如果这是跟踪聚合的第二次或后续迭代,则它是由跟踪聚合生成的最后偏移量),Δ是偏移量(例如,固态存储装置系统所支持的最小电压偏移量),并且对其执行该求和的范围(例如,从−v 2到v 1)由执行递增序列和递减序列读取的上和下多远决定。0.5与c i (j)的相加是为了防止精度溢出,并且使第二项的最小值至少为是为了对读取噪声进行折衷。两个求和的乘积的效果将取决于哪些差计数更小:是与向右的升序序列相关联的差计数,还是与向左的降序序列相关联的差计数。更小的差计数携带更多的权重,而更大的相邻差计数携带更少的权重(因此其被称为逆加权平均)。直观地或在概念上,逆加权平均尝试在发生于数据分布谷(valley)处的读取上插入更多的权重。
例如,如果使用图5中所示出的值来找到下一个偏移量:
等等。作为实际问题,由于Δ是该系统所支持的最小电压增量,因此下一个偏移量(或阈值)被舍入至Δ的最近整数倍。
简要地返回到表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所述的计算机程序产品,其中:
执行纠错解码包括对读取数据执行硬判决纠错解码;以及
所述方法进一步包括:
以整数增量Δ在固态存储装置上执行多个读取,以获得以增量Δ的多个读取数据,其中Δ是固态存储装置所支持的最小电压增量;
至少部分地基于逆加权平均以及以增量Δ的多个读取数据来确定第二下一个读取阈值;
使用第二下一个读取阈值在固态存储装置上执行读取以获得第二读取数据;以及
对第二读取数据执行软判决纠错解码。
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)
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)
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)
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 |
-
2021
- 2021-04-06 US US17/223,807 patent/US11355216B1/en active Active
-
2022
- 2022-03-04 CN CN202210205928.8A patent/CN115206381B/zh active Active
- 2022-05-05 US US17/737,781 patent/US20220328121A1/en active Pending
Patent Citations (9)
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 |