CN109599143B - 具有读阈值机制的存储系统及其操作方法 - Google Patents

具有读阈值机制的存储系统及其操作方法 Download PDF

Info

Publication number
CN109599143B
CN109599143B CN201811120070.5A CN201811120070A CN109599143B CN 109599143 B CN109599143 B CN 109599143B CN 201811120070 A CN201811120070 A CN 201811120070A CN 109599143 B CN109599143 B CN 109599143B
Authority
CN
China
Prior art keywords
read
threshold
user data
control processor
offset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811120070.5A
Other languages
English (en)
Other versions
CN109599143A (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.)
CNEX Labs Inc
Original Assignee
CNEX Labs Inc
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 CNEX Labs Inc filed Critical CNEX Labs Inc
Publication of CN109599143A publication Critical patent/CN109599143A/zh
Application granted granted Critical
Publication of CN109599143B publication Critical patent/CN109599143B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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

Landscapes

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

Abstract

一种存储系统,包括:控制处理器,被配置为:读取用户数据;从所述用户数据生成比特翻转阵列,包括限制阈值偏移范围,以及从所述比特翻转阵列选择最佳读阈值集合;以及非易失性存储器阵列,耦连至所述控制处理器,被配置为存储所述用户数据;并且其中所述控制处理器进一步被配置为采用所述最佳读阈值集合读取扇区N,以增强所述非易失性存储器阵列的性能。

Description

具有读阈值机制的存储系统及其操作方法
技术领域
本发明的实施例总地涉及存储系统,并且更具体地,涉及用于调整读阈值电压的系统。
背景技术
非易失性存储器,例如NAND闪存,已经驱动了容量和验证过程的大幅度提升,以支持智能设备。为了减少每GB的非易失性存储器的成本,这些设备已通过在相同的硅区内封装更多数据、缩小闪存单元的尺寸、增加存储单元的三维阵列、以及在它们每个中存储更多比特而变得更加密集,但是在单元尺寸和存储单元配置上的改变是以读回可靠性为代价的。为了管理每个单元的多比特,对读阈值电压的调整变得非常关键和耗时。随着相邻单元的电压电平越来越接近,快速找到阈值电压以正确识别存储在每个单元中的数据的方法就变得越来越成问题。
因此,仍然需要具有读阈值调整机制的存储系统来提供改进的数据可靠性和最小化读取访问时间。鉴于日益增长的商业竞争压力,以及日益增长的消费者期望和在市场上有意义的产品差异化的越来越少的机会,找到这些问题的答案变得越来越重要。此外,降低成本、提高效率和性能以及满足竞争压力的需要使找到这些问题的答案的关键必要性更加紧迫。
这些问题的解决方案一直在被探寻,但现有技术并没有教导或建议任何解决方案,因此,这些问题的解决方案长期以来一直难倒了本领域的技术人员。
发明内容
本发明的实施例提供了一种装置,包括控制处理器,被配置为:读取用户数据,从用户数据生成比特翻转阵列,包括限制阈值偏移范围,以及从比特翻转阵列中选择最佳读阈值集合;以及与控制处理器耦连的非易失性存储器阵列,被配置为存储用户数据;并且其中,控制处理器进一步被配置为采用最佳读阈值集合读取扇区N,以提高非易失性存储器阵列的性能。
本发明的实施例提供了一种方法,包括:从非易失性存储器阵列读取用户数据;从用户数据生成比特翻转阵列,包括限制阈值偏移范围;从比特翻转阵列中选择最佳读阈值集合;采用最佳读阈值集合读取扇区N,以提高非易失性存储器阵列的性能。
本发明的实施例提供一种非暂存性计算机可读介质,包括:从非易失性存储器阵列读取用户数据;从用户数据生成比特翻转阵列,包括限制阈值偏移范围;从比特翻转阵列中选择最佳读阈值集合;采用最佳读阈值集合读取扇区N,以提高非易失性存储器阵列的性能。
除上述步骤或元件以外,本发明的某些实施例还包括其他步骤或元件。对于本领域技术人员来说,通过参照附图阅读下面的详细描述,这些步骤或元件将变得显而易见。
附图说明
图1是在本发明的实施例中的具有读阈值机制的存储系统。
图2描绘了三层单元NAND闪存页面的示例性访问的图形视图。
图3是本发明实施例中的用于选择最佳读阈值集合的读阈值机制的操作流程图。
图4是具有有限范围偏移的NAND的单元的示例性访问的图形视图。
图5是本发明实施例中具有读阈值机制的存储系统的操作流程图。
图6是本发明实施例中存储系统的操作方法的流程图。
详细描述
下面的实施例描述了足够详细的细节,以使本领域技术人员能够制造和使用本发明。需要理解的是,基于本发明的公开,其他实施例将是明显的,并且可以进行系统、过程或机械的改变而不脱离本发明实施例的范围。
在下面的描述中,给出了大量的具体细节,以提供对本发明的透彻理解。然而,很明显,本发明可以在没有这些具体细节的情况下被实践。为了避免模糊本发明的实施例,一些众所周知的电路、系统配置和过程步骤没有详细地公开。
显示系统实施例的图是半图解的,而不是按比例的,具体地,一些尺寸是为了清晰呈现并且在附图中被夸大显示。同样地,尽管为了便于描述,附图中的视图通常示出了相似的方位,但图中的这种描述在很大程度上是任意的。一般来说,本发明可以在任何方位上操作。
本文中提及的术语“模块”可以包括本发明实施例中的硬件或软件支持的硬件,取决于使用该术语的上下文。例如,软件可以是机器代码、固件、嵌入式代码和应用程序软件。还例如,硬件可以是电路、处理器、计算机、集成电路、集成电路核心、专用集成电路(ASIC)、无源器件或其组合。
作为示例,一种减少错误恢复所花费的时间的方法是:应用读阈值机制来预测存储页面的最佳读阈值,并在错误变得不可恢复之前对其进行调整,以用于可用的存储。
现在参照图1,其中示出了本发明实施例中具有读阈值机制的存储系统100的功能框图。存储系统100的功能框图描绘了耦连至读/写通道104的非易失性存储器阵列102。系统接口106可以将用户数据108传输到非易失性存储器阵列102以及从非易失性存储器阵列102传输用户数据108。系统接口106可以执行将用户数据108移入和移出存储系统100。例如,系统接口106可以通过读/写通道104传输用户数据108,以存储到非易失性存储器阵列102,以及从中检索。
控制处理器110可以为存储系统100提供至少一部分计算资源。控制处理器110可以协调存储系统100的操作。例如,控制处理器110可以耦连到系统接口106、读通道104和易失性存储器112。
易失性存储器112为存储系统100提供了信息存储的至少一部分。例如,易失性存储器112可以是耦连到控制处理器110的易失性存储器阵列,例如互连的易失性存储器集成电路的矩阵,包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、寄存器文件、非易失性存储器或其组合。
控制处理器110可以支持系统接口106。控制处理器110可以用硬件电路以多种方式实现。例如,控制处理器110可以是处理器、专用集成电路(ASIC)、嵌入式处理器、微处理器、硬件控制逻辑、硬件有限状态机(FSM)、数字信号处理器(DSP)或其组合。系统接口106可以实现为硬件控制逻辑,硬件有限状态机(FSM),或可编程总线控制器,其可以提供非易失性存储器阵列102和系统主机107之间的数据传输。
系统主机107可以是被配置为生成、存储和检索用户数据108的计算机、处理器、处理器核心、设备控制器或其组合。主机系统107可以直接耦连至系统接口106,或者系统接口106可以通过本地总线、局域网(LAN)或广域网(WAN)附接到主机系统107。
非易失性存储器阵列102可以是互连的非易失性存储器集成电路的矩阵,如单层单元(SLC)或多层单元(MLC)的NAND闪存阵列或其他非易失性存储器技术。非易失性存储器阵列102可以是远程资源,例如基于NAND闪存的网络附加存储(NAS)、存储区域网络(SAN)或其组合。非易失性存储器阵列102中的单元组成了多个物理块114。每个物理块114可以包含从扇区0 116到扇区N 118的数据扇区。其中所述扇区可以是读/写单元扇区、物理页面、字线或物理块。
读/写通道104可以是由软件支持的硬件结构,以对用户数据108进行编码和解码,用于存储在非易失性存储器阵列102中。读/写电路120可以管理从扇区0 116到扇区N 118的写入。在读取用户数据108期间,读/写电路120可以操纵读阈值122,以便调整错误恢复(ER)电路124所检测到的错误。当读阈值122改变时,控制处理器110可以收集读数据级别变化的计数。控制处理器110可以维持级别变化统计126的计数,表明由于级别变化而导致的用户数据108的比特翻转已经发生在任意的读阈值122上,这些阈值可以存储在易失性存储器112中。
基于级别变化统计126的读阈值机制,诸如表明读阈值122的相邻值之间的数据级别变化的比特翻转计数或信息,控制处理器110可以调整扇区0 116到扇区N 118的读阈值122,以维持物理块114中的当前寻址的扇区的运算性能。
控制处理器110可以管理读/写通道104的操作,包括执行计算、优化读阈值122和执行从主机系统107递送的接口命令。在读取用户数据108时,控制处理器110可以提供级别变化统计126。ER电路124可以是用于编码预期数据或目标数据以提供错误保护、检错、纠错、冗余或其组合的硬件结构。在对读阈值122的分析过程中,控制处理器110可以读取用户数据108,以捕获用户数据108的级别变化的每个实例,而不需要ER电路124对数据执行纠错。
读阈值122定义为在读取扇区0 116到扇区N 118中的存储值时所使用的可选的电压参考。读阈值122可以以增量步长(incremental step)提供电压参考。作为示例,读阈值可以有128个线性步长,其用于为理想的读回单元的每个设计点电压级别设置参考电压。TLC NAND将具有7个主要的比特阈值{A,B,C,D,E,F,G}。可用的128个步长可以以7个主要阈值的每个阈值为中心。这可以与QLC NAND进行比较,其具有15个主要阈值,并且128个步长应用于每个阈值。
通过采用读阈值122的步进值对用户数据108执行多次读取,存储系统100可以生成最佳读阈值集合128。在读取之间,可以递增读阈值122并比较结果数据。通过检测和记录每个增量步长中改变值的比特的数目,可以构造比特翻转阵列130。比特翻转阵列可以是对每个读阈值122{A,B,C,D,E,F,G}的每个选定的偏移步计数而计数的级别变化数目的矩阵。控制处理器110可以在比特翻转阵列中搜索偏移值,该偏移值表示每个读阈值122{A,B,C,D,E,F,G}的变化比特的最小数目。这些偏移值表示最佳读阈值集合128,其可以提供正确读取用户数据108的最佳可能性,而不会检测到不可纠正错误132。可以理解的是,不可纠正错误132是包含太多的误码的数据错误,以至于ER电路124纠正用户数据108而不进行额外的读处理。
当扇区0 116到扇区N 118被重复访问时,存储数据的电压水平可以发生变化,使读阈值122的有效集合随时间变化。可以理解的是,读阈值122可以基于ER电路124检测到的级别变化统计126进行动态调整。不可纠正错误132的检测可以导致比特翻转阵列130的再生,并选择一组新的最佳读阈值集合128,以便更好地读取非易失性存储器阵列102。
出于示例性目的,存储系统100将被描述为利用读阈值机制来使用NAND闪存存储和访问信息。然而,可以理解的是,存储系统100可以在其他类型的存储器中利用读阈值机制,如电阻式非易失性存储器,其他类型的闪存或非易失性存储器,或其组合。
可以理解的是,上面讨论的实施例用于描述本发明,并且其他实施例也是可能的。另一个可能的实施例可以将控制处理器110、读/写通道104、系统接口106、非易失性存储器阵列102或其组合集成到单个电路中。
已经发现,控制处理器110可以主动映射物理块114中扇区0 116到扇区N 118的最佳读阈值集合128。这可以允许ER电路124计算级别变化统计126,以进一步监测扇区0 116到扇区N 118的读可靠性。
现在参考图2,其中示出了三层单元NAND闪存扇区的示例性访问的图形视图。示例性访问201的图形视图描绘了访问应用于TLC单元的7个读阈值122以检测TLC数据。
在m比特闪存中,每个单元存储2m个不同的预定义电压级别中的一个。当每个单元存储多个比特,即m≥2时,信息比特到电压级别的映射是使用灰色编码来完成的,以确保相邻的级别之间只有一个比特发生变化。之所以这样做,是因为错误最可能发生在相邻级别之间。灰色编码使平均BER最小化。进一步地,每个m比特被分配到不同的扇区。
可以理解的是,只示出了对图1的扇区0 116到图1的扇区N 118的访问的部分。这是为了易于理解和简洁。每个访问可以涉及扇区0 116到扇区N 118中的一个或更多个。一旦输出数据206已被装配为扇区0 116到扇区N 118,ER电路124可以分析最低有效比特(LSB)扇区数据208,中心有效比特(CSB)扇区数据210,以及最高有效比特(MSB)扇区数据212。
大量的程序和擦除(P/E)周期会导致单元电压在编程后偏离预期范围。读干扰是指对图1的物理块114的扇区0 116到扇区N 118进行的大量的读操作,其也将会导致物理块114的单元电压214漂移到更高的范围。因此,计算图1的最佳读阈值集合128是非常关键的,其提供了最小数量的读错误。
现在参照图3,其中示出了读阈值机制301的操作流程图,以用于选择本发明实施例中的最佳读阈值集合。读阈值机制301的操作流程图可以描绘能够同时找到图1中最佳读阈值集合128的过程。可以理解的是,该过程可以应用于每单元NAND闪存的任何m比特,包括现有的单层单元(SLC)、多层单元(MLC)、三级单元(TLC)、四级单元(QLC),以及未来任何每单元具有甚至更多比特的NAND配置。读阈值机制301的关键方面是,它不需要任何关于数据写入的现有知识。最佳读阈值集合128是图1中读阈值122的最佳集合,包括每个读阈值122{A,B,C,D,E,F,G}的偏移计数。最佳读阈值集合128可以为读取图1中的用户数据108,而无需检测图1中的不可纠正错误132提供最大的可能性,并且是基于图1的物理块114中的数据的当前条件。可以理解的是,由于单元的条件、程序/擦除(P/E)计数、存储持续时间、读干扰或其组合,物理块114中的用户数据108的状态可以随时间而变化。
如今的NAND闪存所支持的读阈值122集合是约256个不同的步长值,其集中在设计阈值默认设置上。由于TLC NAND需要7个不同的读阈值122默认设置,而QLC NAND需要15个不同的读阈值122默认设置,因此相邻两个级别之间的阈值步长的数量代表小的电压变化。作为示例,TLC NAND的偏移步长(offset step)约为每步长1.2mV,QLC NAND的偏移步长约为每步长0.6mV。图1的最佳读阈值集合128通常在读阈值122默认设置的偏移候选值的有限范围内。
作为示例,最佳读阈值集合128可以包括落在级别ER和级别A之间的范围[A0,An]内的阈值A,如图2所示,以及落在级别A和级别B之间的范围[B0,Bn]内的阈值B。可以理解的是,极限“n”代表正在被分析的NAND中可用的阈值偏移步长的数量。对于阈值C到G也是如此。可以理解,最佳读阈值集合128中的每个读阈值122可以与图2所示的读阈值122的默认值偏移不同量。
读阈值机制301可以适用于每单元任何数量的m比特,快速阈值调整的过程可以通过读NAND闪存n+1次以确定最佳读阈值集合128来操作,相比而言,现有技术解决方案的穷举搜索需要多于nm次读NAND以进行分析。读阈值机制301可以确定适用于默认阈值{A,B,C,D,E,F,G}的偏移步长的范围。这可以在“确定偏移步长的范围”302中执行。控制处理器110可以限制偏移步长的范围,这样“R”的范围是1≤R≤n。对范围的限制可以支持存储系统100的延迟要求,可以由非易失性存储阵列102中的设备制造商推荐,基于以往的操作知识,或组结合。通过限制偏移步长的范围,生成最佳读阈值集合128所需的时间量。
作为示例,下列过程中的每单元TLC NAND闪存3比特可以直接应用于每单元NAND闪存任意m比特。如图2所示,TLC单元的3比特数据分别属于MSB扇区、CSB扇区以及LSB扇区。分享同一组单元的3个页面可以称为“共享页面”,并且该组单元称为“字线”。最佳读阈值集合128最小化读取数据中的错误的数量。图1的控制处理器110在图1的物理块114中全部的字线上使用最佳读阈值集合128。
读阈值机制301可以使用读阈值122读取用户数据108,读阈值122代表整个字线的最小范围{A0,B0,C0,D0,E0,F0,G0}。“使用范围最小值作为基线读取用户数据”304的执行可以为检测级别变化计数过程提供基线,但不在其自身上提供任何错误数据。通过执行“以范围值作为Ni收集级别变化数据”306只能在基线建立后提供级别变化数据。作出决定以验证已达到范围最大值。随着将值A到G应用于每个读阈值122,控制处理器110提供的范围R从R0增加到Rn。“达到范围最大值”308可以确定是否已经检查了所有的范围R0到Rn。如果尚未达到范围最大值,则读阈值机制301可以执行“以范围=当前范围+1读取用户数据”310。读阈值122可以递增到{A1,B1,C1,D1,E1,F1,G1}以捕获用户数据108的第二视图。
读阈值机制301可以返回到“以范围值作为Ni收集级别变化数据”306,其现在可以将用户数据108的第二视图与基线进行比较,以检测字线中的任何比特,其随着级别变化而改变值并且被记录在N1中,其包括{NA1,NB1,NC1,ND1,NE1,NF1,NG1}作为级别变化统计126。读阈值机制301可以持续递增范围并读取字线,直到达到范围最大值。当“达到范围最大值”308检测到比特翻转阵列130的构建,例如用于阈值A的{NA1,NA2,NA3,NA4,…NAn}已经通过编译针对Ni(其中1≤i≤n)收集的级别变化统计126而完成时,比特翻转阵列130可以包括N1到Nn
读阈值机制301可以通过扫描比特翻转阵列130来执行“选择最佳读阈值集合”312,以识别每个读阈值122的最小错误。对于每个读阈值122,最佳偏移是具有最小值Ni的那一个。例如,对于阈值A,其最佳偏移值可以是在和/>之间,其中iA=arg min1≤i≤ nNAi。由于/>控制处理器110可以使用/>或/>之一作为最佳读阈值122偏移,这两个值都可以提供低于其他选择的错误率,并且ER电路124应该能够纠正所有错误。如果控制处理器110需要存储最佳读阈值集合128,它可以使用两个偏移来读取,并比较它们的错误计数和存储具有较少错误的那个。由于控制处理器110可以读取用户数据108并计算精确的级别变化计数。相同的程序可以应用到全部的其他读阈值B、C、D、E、F和G。
当执行读阈值机制301时,控制处理器110可以同时读回同一字线上的3个页面。基于图2的输出数据206,读阈值机制301可以计算每个级别的单元数。在从这个初始读取开始采用阈值偏移集合{A0,B0,C0,D0,E0,F0,G0}读取之后,控制处理器110可以检测字线上每个单元的级别。接着,控制处理器110可以以下一个阈值偏移集合{A1,B1,C1,D1,E1,F1,G1}读取同一字线,其中每个偏移在其相应读阈值122方面比之前的集合具有更高的电压,例如,A1=A0+1,B1=B0+1等等。由此,控制处理器110能够识别在两次读取之间具有级别变化的单元。在所有具有级别变化的单元中,控制处理器110可以计数具有级别改变到其下一较高级别的阈值偏移的单元的数量,例如从级别ER到级别A,或者从级别A到级别B等等。当读阈值122偏移从A0变化到A1时,控制处理器110可以将输出数据206级别从级别ER变化到级别A的单元的数量表示为NA1。同样地,将输出数据206级别从级别B变化到级别A的单元的数量表示为NB1,并且继续完成级别变化统计126为NA1、NB1、NC1、ND1、NE1、NF1、NG1
读阈值机制301可以继续采用下一阈值偏移{A2,B2,C2,D2,E2,F2,G2}进行读取,并且再次计数从A1到A2的阈值偏移变化,并表示为NA2。在采用直到{An,Bn,Cn,Dn,En,Fn,Gn}的所有阈值偏移集合读取之后,有一组级别变化计数{Ai,Bi,Ci,Di,Ei,Fi,Gi},其中1≤i≤n。接着,我们得到了集合{NAi,NBi,NCi,NDi,NEi,NFi,NGi},其中1≤i≤n。
对于每个读阈值122,其最佳偏移是具有最小值Ni的一个。例如,对于阈值A,如果其最佳偏移值在与/>之间,此时:
iA=arg min1≤i≤nNAi 方程式(1)
由于控制处理器110可以使用/>或/>之一作为最佳读阈值偏移,因为它们都可以提供较低的错误率,并且ER电路124可以纠正所有的错误。如果控制处理器110需要存储最佳偏移,它可以用两个偏移读取并比较其级别变化计数以及存储具有较低级别变化的一个。相同的程序应用于所有其他读阈值B、C、D、E、F和G。在识别出每个默认读阈值122{A,B,C,D,E,F,G}的最佳阈值偏移之后,控制处理器110可以选择最佳读阈值集合128,以在物理块114中的扇区上使用。
现在参考图4,其中示出了具有有限范围偏移的NAND单元的示例性访问401的图形视图。示例性访问401的体系架构视图描述了1电压分布402,其可以定义为可能的电压分布,其可以解释为代表1的值。0电压分布404可以被定义为可能的电压分布,其可以解释为代表0的值。默认阈值406可以作为读取单元的设计目标值。在实际操作中,由于在读取前的磨损、读干扰和存储时间,默认阈值不足以正确读取单元。
阈值偏移最大值408可以表示被设计到图1中非易失性存储阵列102的设备的最大偏移步长能力。如上所述,偏移步长410可以是阈值偏移最大值408中可能的最小调整,如从默认阈值406所测量的。作为示例,在目前的针对SLC、MLC、TLC和QLC的NAND闪存设计中,阈值偏移最大值408可以包含256个偏移步长410。如所示,可以将阈值偏移最大值408设计为以默认阈值406为中心。
可以理解,图2所示的默认阈值406中的每一个可以是包括{A,B,C,D,E,F,G}的读阈值122中的任何一个。控制处理器110可以为每个读阈值122选择不同数量的偏移步长410。这种能力可以允许图3中的读阈值机制301调整偏移步长410的数量,以在非易失性存储阵列102的使用寿命中改变单元的条件。
当读阈值机制301确定图1的最佳读阈值集合128时,对于每个读阈值122{A,B,C,D,E,F,G},偏移步长410的数量和方向可以不同。通过以偏移步长410的单个增量在阈值偏移最大值408上读取NAND的单元,读阈值机制301可以收集级别变化统计126,以选择最佳的读阈值集合128。可以理解,在阈值偏移最大值408上执行读取所需的时间可能会给读取过程增加大量延迟。
为了使读取过程的延迟最小化,控制处理器110可以识别范围最小偏移412和范围最大偏移414,以限制读延迟的范围。范围最小偏移412和范围最大偏移414的选择可以定义偏移范围416,其可以限制收集级别变化统计126所需的读取的次数,同时保持级别变化统计126的收集和最佳读阈值集合128的完整性。
已经发现,读阈值机制301能够识别出在集合{NAi,NBi,NCi,NDi,NEi,NFi,NGi}中具有最小数量的级别变化的偏移步长410的数量和方向,其中1≤i≤n。可以理解,数量i对于每个读阈值122{A,B,C,D,E,F,G}可以是不同的。读阈值机制301可以提供图1的最佳读阈值集合128,而无需对所有可能的阈值执行穷尽式的测试。
为了进一步减少确定最佳读阈值集合128所需的延迟,可以将阈值偏移范围416划分为若干K细分418。为了便于描述和简洁,K细分418示为4,但任何数量都可能,直到阈值偏移最大值408。读阈值机制301可以初步评估K细分418边界处的级别变化统计126。当K细分418的边界处的样本检测到比特状态的变化时,可以选择较小的K值,以读取被评估的NAND单元的内容。通过设置偏移步长410的计数,以从检测到比特状态向K细分418的前边界变化的K细分418读取。通过减少K细分418中的步长大小和方向,集合{NAi,NBi,NCi,NDi,NEi,NFi,NGi}中最小数量的级别变化可以被快速识别,其中1≤i≤n。
对于读阈值122“X”,其中X∈{A,B,C,D,E,F,G},范围最小偏移412Xmin,以及范围最大偏移414Xmax可以定义阈值偏移范围416。阈值偏移范围416[Xmin,Xmax]可以被划分为K细分418,如此对于1≤k≤K-1,X0=Xmin,XK=Xmax,并且Xk+1-Xk=Xk-Xk-1。接着,读阈值机制301可以找到对于阈值X的最佳读偏移在和/>之间,但此时/>因此,查找范围从[Xman,Xmax]降低到/>并且我们可以重复这个过程直到很明显,有了K细分418的仔细选择,定位集合{NAi,NBi,NCi,NDi,NEi,NFi,NGi}中级别变化的最小值所需的读取数量是以log(n)的顺序,其中n是两个相邻级别之间所有可能的读偏移的数量。
现在参照图5,其中示出了本发明实施例中具有读阈值机制的存储系统100的操作流程图501。可以理解的是,该应用程序中描述的功能可以实现为存储在非暂存性计算机可读介质上的由主机处理器(未图示)、图1中的控制处理器单元110、数学协同处理器、处理器核心或其组合所执行的指令。
非暂存性计算机可读介质可以包括光盘(CD)、数码影碟(DVD)或通用串行总线(USB)闪存设备。非暂存性计算机可读介质可以被集成为未图示的主机系统的一部分,或安装为存储系统100的非易失性存储器阵列102。
非暂存性计算机可读介质可以包括执行“读取具有第一读阈值的用户数据”操作502所需的指令。图1的读阈值122的第一选择可以是图4的默认阈值406,图4的范围最小值412,图4的K细分418,或图4的阈值偏移最大值408中的读阈值122的任何初始值。采用读阈值122的初始值读取的图1的用户数据108可以作为用于进一步分析的基线。
该流程可以包括“采用第二读阈值读取用户数据”504,其中图1中的控制处理器110可以将读阈值122的初始值递增偏移步长410、K细分418或二者的组合。采用读阈值122的第二个值所读取的用户数据108可以与基线不同。
该流程包括“检测用户数据中的比特变化作为级别变化计数Ni”506,控制处理器110可以监控在用户数据108中的任何比特值变化的发生,作为错误Ni。错误Ni可以在图1的比特翻转阵列130中积累。该流程包括“积累比特翻转阵列130中的级别变化计数Ni以进行分析”508的过程。比特翻转阵列130可以调整每个默认阈值406的偏移值,例如读阈值122{A,B,C,D,E,F,G}。比特翻转阵列130可以具有从采用先前的阈值偏移值对用户数据108的读取而改变的比特的计数。
该流程包括“在读阈值的全部范围持续读取用户数据,以积累级别变化计数N的所有值”510,其中控制处理器110可以以偏移步长410、K细分418或二者的组合步进读阈值122。对于由控制处理器110选择的每个读阈值122,读取用户数据108,将生成比特翻转阵列130的额外条目。可以理解,控制处理器110可以使用K细分418和偏移步长410的组合来最小化读取处理的延迟。
该流程可以包括“从显示最小级别变化的比特翻转阵列中选择最佳读阈值”512。控制处理器110可以对比特翻转阵列130进行排序,以识别每个读阈值122{A,B,C,D,E,F,G}的最小级别变化计数。可以选择每个读阈值122{A,B,C,D,E,F,G}的读阈值偏移值作为图1的最佳读阈值集合128。可以理解,为了获得最佳的读性能,每个读阈值122{A,B,C,D,E,F,G}可以有不同的读阈值偏移值。一旦识别出最佳读阈值集合128,它将为图1的物理块114中的图1的扇区0 116到图1的扇区N 118提供最佳读取。可以理解的是,一旦发生了检测到不可纠正错误132,可以重复存储系统100的操作流程图501来调整最佳读阈值集合128为扇区0 116到扇区N 118的新的条件。控制处理器110可以在最佳读阈值集合128的变化中合并历史趋势,以便选择可能在读取用户数据108时提供最小延迟的K细分418。
已经发现,存储系统100可以在访问用户数据108时提高非易失性存储器阵列102的性能。当访问物理块114的扇区0 116到扇区N 118时,对最佳读阈值集合128的选择和调整可以最小化检测到图1中不可纠正错误132的可能性。可以理解的是,非易失性存储器阵列102中的每个物理块114都可以有一组不同的值,用于最佳读阈值集合128。
现在参照图6,其中示出了本发明实施例中存储系统100的操作方法600的流程图。方法600包括:在块602,从非易失性存储器阵列中读取用户数据;在块604,从所述用户数据生成比特翻转阵列,包括限制阈值偏移范围;在块606,从所述比特翻转阵列选择最佳读阈值集合;在块608,采用所述最佳读阈值集合读取扇区N,以提高非易失性存储器阵列的性能。
所得到的方法、过程、装置、设备、产品和/或系统是易懂、经济、简单、高度通用、精确、灵敏和有效的,并且可以通过调整已知的组件以方便、高效和经济地制造、应用和使用来实现。本发明实施例的另一个重要方面是,它有价值地支持和服务于降低成本、简化系统和提高性能的历史趋势。
本发明实施例的这些和其他有价值的方面因此促进了技术状态到至少下一个级别。虽然本发明已与具体的最佳模式结合描述,但需要理解的是,根据上述描述,对于本领域技术人员来说,许多备选方案、修改和变化将是显而易见的。因此,其意图包含所有这些落在所包括的权利要求范围内的备选方案、修改和变更。本文提出的或附图所示的一切事项,均应以说明性和非限制性的方式加以解释。

Claims (16)

1.一种存储系统,包括:
控制处理器,被配置为:
读取用户数据;
从所述用户数据生成比特翻转阵列,其包括在不需要错误恢复ER电路纠正所述用户数据的情况下限制阈值偏移范围,以及
从所述比特翻转阵列选择最佳读阈值集合,所述最佳读阈值集合包括针对所述最佳读阈值集合中每个读阈值计算的偏移计数;以及非易失性存储器阵列,其耦连至所述控制处理器,所述非易失性存储器阵列被配置为存储所述用户数据;并且
其中所述控制处理器进一步被配置为采用所述最佳读阈值集合读取扇区N,以提高所述非易失性存储器阵列的性能。
2.根据权利要求1所述的系统,其中所述控制处理器进一步被配置为定义所述阈值偏移范围为小于读取所述用户数据时的阈值偏移最大值。
3.根据权利要求1所述的系统,其中所述控制处理器进一步被配置为在读取所述用户数据时,调整读阈值以生成所述比特翻转阵列。
4.根据权利要求1所述的系统,其中所述控制处理器进一步被配置为定义所述阈值偏移范围的K细分,以减小所述比特翻转阵列的尺寸。
5.根据权利要求1所述的系统,其中所述控制处理器进一步被配置为在检测到不可纠正错误时,调整所述最佳读阈值集合。
6.根据权利要求1所述的系统,其中所述控制处理器进一步被配置为计算所述比特翻转阵列的最小元素以选择所述最佳读阈值集合。
7.根据权利要求1所述的系统,其中所述控制处理器被配置为使用所述最佳读阈值集合读取物理块的扇区0到扇区N中的所述用户数据。
8.根据权利要求1所述的系统,其中所述控制处理器进一步被配置为定义临近于默认读阈值的范围最小值和与所述范围最小值相对的范围最大值。
9.根据权利要求1所述的系统,其中所述控制处理器进一步被配置为将读阈值调整为K细分,其包括将所述K细分减少偏移步长以定位所述比特翻转阵列的最小元素。
10.根据权利要求1所述的系统,其中所述控制处理器进一步被配置为定义以每个所述读阈值为中心的所述阈值偏移范围,其包括以所述阈值偏移范围中的每个偏移步长读取所述用户数据。
11.一种存储系统的操作方法,包括:
从非易失性存储器阵列读取用户数据;
通过在不需要错误恢复ER电路纠正所述用户数据的情况下限制阈值偏移范围,而从所述用户数据生成比特翻转阵列;
从所述比特翻转阵列选择最佳读阈值集合,其包括计算针对所述最佳读阈值集合中的每个读阈值的偏移计数;以及
采用所述最佳读阈值集合读取扇区N,以提高所述非易失性存储器阵列的性能。
12.根据权利要求11所述的方法,进一步包括定义所述阈值偏移范围为小于读取所述用户数据时的阈值偏移最大值。
13.根据权利要求11所述的方法,进一步包括在读取所述用户数据时,调整读阈值以生成所述比特翻转阵列。
14.根据权利要求11所述的方法,进一步包括定义所述阈值偏移范围的K细分,以减小所述比特翻转阵列的尺寸。
15.根据权利要求11所述的方法,进一步包括在检测到不可纠正错误时,调整所述最佳读阈值集合。
16.一种非暂时性计算机可读存储介质,其包括指令,当所述指令由处理器执行时,使所述处理器执行权利要求11-15中所述的方法中的任何方法。
CN201811120070.5A 2017-10-03 2018-09-25 具有读阈值机制的存储系统及其操作方法 Active CN109599143B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/723,951 2017-10-03
US15/723,951 US10713104B2 (en) 2017-10-03 2017-10-03 Storage system with read threshold mechanism and method of operation thereof

Publications (2)

Publication Number Publication Date
CN109599143A CN109599143A (zh) 2019-04-09
CN109599143B true CN109599143B (zh) 2023-09-12

Family

ID=65897884

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811120070.5A Active CN109599143B (zh) 2017-10-03 2018-09-25 具有读阈值机制的存储系统及其操作方法

Country Status (3)

Country Link
US (1) US10713104B2 (zh)
CN (1) CN109599143B (zh)
TW (1) TW201928957A (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10658066B2 (en) 2018-09-05 2020-05-19 Micron Technology, Inc. First-pass continuous read level calibration
US11119848B2 (en) * 2019-07-10 2021-09-14 Micron Technology, Inc. Logic based read sample offset in a memory sub system
US11295819B2 (en) * 2020-06-30 2022-04-05 Western Digital Technologies, Inc. Dual sense bin balancing in NAND flash
US11960989B2 (en) * 2020-07-24 2024-04-16 SK Hynix Inc. Read threshold estimation systems and methods using deep learning
CN112151101B (zh) * 2020-09-18 2023-03-14 山东华芯半导体有限公司 一种扫描TLC NANDFlash最优读参数的方法
US11978524B2 (en) 2021-08-25 2024-05-07 Western Digital Technologies, Inc. Cumulative wordline dispersion and deviation for read sense determination
US11869614B2 (en) 2021-08-25 2024-01-09 Western Digital Technologies, Inc. Cell statistics generator for NVM devices
US11656789B2 (en) 2021-08-25 2023-05-23 Western Digital Technologies, Inc. Asymmetric read sense

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105679364A (zh) * 2014-12-08 2016-06-15 桑迪士克技术有限公司 具有软解码优化的可重写多比特非易失性存储器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9036417B2 (en) * 2012-09-06 2015-05-19 Sandisk Technologies Inc. On chip dynamic read level scan and error detection for nonvolatile storage
US10475523B2 (en) * 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
US9306600B2 (en) 2014-01-06 2016-04-05 Micron Technology, Inc. Read threshold calibration for LDPC
US9720754B2 (en) 2014-11-20 2017-08-01 Western Digital Technologies, Inc. Read level grouping for increased flash performance
KR102275717B1 (ko) 2015-01-21 2021-07-09 에스케이하이닉스 주식회사 플래시 메모리 시스템 및 그의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105679364A (zh) * 2014-12-08 2016-06-15 桑迪士克技术有限公司 具有软解码优化的可重写多比特非易失性存储器

Also Published As

Publication number Publication date
US10713104B2 (en) 2020-07-14
US20190102084A1 (en) 2019-04-04
TW201928957A (zh) 2019-07-16
CN109599143A (zh) 2019-04-09

Similar Documents

Publication Publication Date Title
CN109599143B (zh) 具有读阈值机制的存储系统及其操作方法
US10929474B2 (en) Proactive corrective actions in memory based on a probabilistic data structure
US11107550B2 (en) Self-adaptive read voltage adjustment using boundary error statistics for memories with time-varying error rates
KR101981355B1 (ko) 메모리 시스템들을 위한 소프트 정보 생성
JP5732147B2 (ja) データセンシングのための方法、装置、およびシステム
JP6134389B2 (ja) 誤り訂正に基づくデフォルト読み出し信号の設定
US10892029B1 (en) Self-adaptive read voltage adjustment using directional error statistics for memories with time-varying error rates
US11107543B2 (en) Adjustment of read and write voltages using a space between threshold voltage distributions
CN115938458A (zh) 存储装置、控制器以及存储装置的操作方法
US11404141B2 (en) Preemptive read refresh in memories with time-varying error rates
US11494254B2 (en) Storage system with predictive adjustment mechanism and method of operation thereof
US11561734B2 (en) Selecting read voltage using write transaction data
US20210055994A1 (en) Storage system with data reliability mechanism and method of operation thereof
EP4198988A1 (en) Storage controller using history data, method of operating the same, and method of operating storage device including the same
US11762589B2 (en) Dynamic read-level thresholds in memory systems
US11742053B2 (en) Managing execution of a scrub operation in view of an operating characteristic of a memory subsystem
US20230187002A1 (en) Storage controller using history data, method of operating the same, and method of operating storage device including the same
US20220310168A1 (en) Operating method of storage controller using count value of direct memory access, storage device including storage controller, and operating method of storage device
US20210035648A1 (en) Storage system with error mitigation mechanism and method of operation thereof

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