CN114556303A - 更新非易失性随机存取存储器中的校正读取电压偏移 - Google Patents

更新非易失性随机存取存储器中的校正读取电压偏移 Download PDF

Info

Publication number
CN114556303A
CN114556303A CN202080073128.4A CN202080073128A CN114556303A CN 114556303 A CN114556303 A CN 114556303A CN 202080073128 A CN202080073128 A CN 202080073128A CN 114556303 A CN114556303 A CN 114556303A
Authority
CN
China
Prior art keywords
given page
read voltage
page
determining
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080073128.4A
Other languages
English (en)
Inventor
N·帕潘德尔欧
C·波奇蒂斯
N·约安努
R·普莱卡
R·斯托伊卡
S·托米克
A·弗赖伊
T·费希尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114556303A publication Critical patent/CN114556303A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/3422Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem
    • 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/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • 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
    • G11C2029/0409Online test
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • 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/563Multilevel memory reading aspects
    • G11C2211/5634Reference cells
    • 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/5648Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant

Landscapes

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

Abstract

根据一种方法,一种计算机实现的方法包括:通过计算给定页的第一数目的独立读取电压偏移值,使用第一校准方案来校准块中的给定页(606)。尝试读取经校准的给定页(608),且响应于确定在尝试读取经校准的给定页时发生错误校正码失败,使用第二校准方案来重新校准块中的给定页(612)。第二校准方案被配置为计算给定页的第二数目的独立读取电压偏移值。还尝试读取重新校准的给定页(614)。响应于确定在尝试读取重新校准的给定页时确实发生错误校正码失败,发送用于重定位存储在给定页中的数据的一个或多个指令(618)。

Description

更新非易失性随机存取存储器中的校正读取电压偏移
背景技术
本发明涉及数据存储系统,并且更具体地,本发明涉及更新非易失性随机存取存储器(NVRAM)中的存储器块的校正读取电压偏移值。
NVRAM是一种即使在电源关闭之后也能保持存储在其上的信息的随机存取存储器,并且包括多种不同形式。使用闪存作为示例,常规的基于NAND闪存的固态驱动器(SSD)的性能特性与传统的硬盘驱动器(HDD)的性能特性根本不同。常规SSD中的数据通常以4、8或16KB大小的页来组织。此外,SSD中的页读取操作通常比写入操作快一个数量级,且等待时间既不取决于操作的当前位置也不取决于操作的先前位置。
由于额外的编程/擦除(P/E)循环、随时间的电荷泄漏(即,数据保持)和由读取或编程操作置于单元中的额外电荷(即,分别为读取或编程干扰错误),因此闪存块的原始位错误率(RBER)将通常随时间而增加。通常,当块中的任何页展现达到页引退错误计数限制的码字时,引退闪存块。该限制通常被设置为结合适当的纠错码(ECC)来实现,从而导致在对闪存块应用ECC之后的不可纠正的位错误率(UBER)被设置为类似于传统硬盘驱动器中的UBER,例如大约10-15,但是可以更多或更少。
块校准指的是调整读取电压的算法,块校准已经被证明显著地改善RBER,并因此增强耐久性和保持力,特别是对于使用现代三维(3-D)三电平单元(TLC)或四电平单元(QLC)NAND闪存的企业级闪存系统。先前维持有效存储器性能的尝试通常包括以扫描方式或通过读取电压移位算法检查每一存储器块的读取电压,所述读取电压移位算法依据阈值电压分布如何由于循环或保持或其他干扰效应而改变而跟踪并校正读取电压。
理想地,存储器块中的每个页的读取电压被单独地更新。然而,随着存储器的存储容量增加,在存储器的每一块中,通过维持用于每一页的一组读取电压偏移值所消耗的存储量也增加,这取决于与读取给定页相关联的读取电压的数目。例如,从TLC NAND闪存中的每单元3位前进到QLC NAND闪存中的每单元4位,每个块实现16个阈值电压电平(而不是TLC中的8个)和15个不同的读取电压(而不是TLC中的7个)以读取包括在其中的任何页。取决于页类型(例如,下部、上部、额外、顶部),使用那15个读取电压的子集来读取给定页。此外,随着垂直堆叠和工艺技术的改进,每个新一代3-D NAND闪存中的层的数目也增加。随后,每个块中的页数也增加。举例来说,当前3-D QLC NAND闪存可具有多于90个层且每一块可具有多于4000个页。因此,如果独立地(或单个地)校准3-D QLC NAND中的所有这些15个不同读取电压,则在一块中存储每一页或页群组的单个读取偏移值组所涉及的元数据量及每页的校准读取次数显著增加。
随着存储器的存储容量持续增加,与存储器相关联的可靠性问题也增加。因此,除了与存储器的每一块中的每一页相关联的读取电压偏移值的数目增加之外,常规校准引擎还经历由存储器的可靠性下降所引起的处理开销量的增加。
发明内容
根据一种方法,一种计算机实现的方法包括,对于存储器块中的每个页:使用第一校准方案来校准所述块中的给定页。第一校准方案被配置为计算存储器块中的页的第一数目的独立读取电压偏移值和第一数目的公共读取电压偏移值。尝试读取所述经校准的给定页,且响应于确定在尝试读取所述经校准的给定页时发生错误校正码失败,使用第二校准方案来重新校准所述块中的所述给定页。第二校准方案被配置为计算存储器块中的页的第二数目的独立读取电压偏移值和第二数目的公共读取电压偏移值。此外,第一数目的独立读取电压偏移值少于第二数目的独立读取电压偏移值。还尝试读取重新校准的给定页。响应于确定在尝试读取重新校准的给定页时确实发生错误校正码失败,发送一个或多个指令以重定位存储在给定页中的数据。
在一些方法中,使用第一校准方案来校准块中的给定页包括:确定与对应于所述给定页的页类型相关联的一个或多个读取电压,及确定对应于所述一个或多个读取电压的一个或多个现有读取电压偏移值。计算每个现有读取电压偏移值的校正偏移,并且使用校正偏移更新现有读取电压偏移值。在其他方法中,使用第二校准方案来校准块中的给定页包括:确定与对应于所述给定页的页类型相关联的一个或多个读取电压,及确定对应于所述一个或多个读取电压的一个或多个现有读取电压偏移值。计算每个现有读取电压偏移值的校正偏移,并且使用校正偏移来更新现有读取电压偏移值。
由此可见,对于不同的情况,可能更需要不同类型的校准方案,其中特定的校准方案指示页面将如何被实际校准。例如,与涉及针对字线中的仅部分读取电压计算公共读取电压偏移值以及针对字线中的剩余读取电压计算独立电压偏移值的校准算法相比,涉及针对与字线中的相应页类型相关联的读取电压的每一子集计算公共读取电压偏移值的校准方案涉及较少的计算开销和计算延迟。尽管有与涉及计算字线中的仅部分读取电压的公共读取电压偏移值以及字线中的剩余读取电压的独立电压偏移值的校准算法相关联的额外计算开销和计算延迟,但由于额外的准确度,也实现了增加的读取性能。
因此,本文所包括的各种方法能够通过显著地减少校准开销同时还确保存储器的高效性能来改进存储器和/或存储器控制器的操作。这些改进可以至少部分地作为在标称操作期间实现第一校准方案以及在错误恢复模式情况下按需实现第二校准方案的结果来实现。虽然第二校准方案与第一校准方案相比能够实现更准确的校准结果,但是第一校准方案相对于作为实现第二校准方案的结果而言产生较少的校准开销。因此,通过选择性地实现第二校准方案,性能得到改善,同时还确保了有利的存储器管理。
根据另一种方法,计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令。所述程序指令可由处理器读取和/或可由处理器执行以使所述处理器针对存储器块中的每一页:执行前述方法。
根据又一方法,一种系统包括:多个NVRAM块,其被配置为存储数据;处理器;以及逻辑,其与所述处理器集成和/或可由所述处理器执行。所述逻辑经配置以针对所述块中的一者中的每一页:执行前述方法。
从以下详细描述中,本发明的其他方面和方法将变得显而易见,当结合附图时,以下详细描述通过示例的方式示出了本发明的原理。
附图说明
图1是根据一种方法的非易失性存储卡的示意图。
图2是根据一种方法的数据存储系统体系结构的示意图。
图3是根据一种方法的系统图。
图4A是根据一种方法的包括块-条带和页-条带的概念图。
图4B是根据一种方法的3-D非易失性存储器结构的局部透视图。
图5是示出根据一种方法的阈值电压移位现象的曲线图。
图6A是根据一种方法的方法流程图。
图6B是根据一种方法的方法流程图。
图6C是根据一种方法的图6A的方法中的操作之一的子过程的流程图。
图7A是示出根据一种方法的不同的页类型及其相应的(多个)读取电压的表。
图7B是示出根据一种方法的不同的页类型及其相应的(多个)读取电压的表。
图7C是示出根据一种方法的根据元数据结构的读取电压偏移值的表。
图7D是示出根据一种方法如何将元数据映射到相应校正偏移的表。
图7E是示出根据一种方法如何将元数据映射到相应校正偏移的表。
图8A是根据一种方法执行校准方案的代表性视图。
图8B是根据使用中的示例的存储读取电压偏移值的代表性视图。
图9是根据一种方法的网络架构。
图10是根据一种方法的可以与图9的服务器和/或客户端相关联的代表性硬件环境。
图11是根据一种方法的分层数据存储系统的示意图。
具体实施方式
以下描述是为了说明本发明的一般原理,而不是为了限制这里要求保护的发明概念。此外,本文所述的特定特征可与其他所述特征以各种可能的组合和排列组合使用。
除非本文另有明确定义,否则所有术语将被给予其最广泛的可能解释,包括说明书中暗示的含义以及本领域技术人员理解的和/或词典、论文等中定义的含义。
还必须注意,如在说明书和所附权利要求中所使用的,除非另有说明,单数形式“一”、“一个”和“该”包括复数对象。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
以下描述公开了数据存储系统的若干方法及其操作和/或组成部分。应当理解,可以用各种存储介质来实现本文的各种方法,包括例如NVRAM技术,诸如NAND闪存、NOR闪存、相变存储器(PCM)、磁阻RAM(MRAM)和电阻RAM(RRAM)。为了提供上下文,并且仅为了帮助读者,可以参考一种类型的非易失性存储器来描述各种方法。这仅通过示例的方式完成,并且不应被认为是对权利要求中限定的本发明的限制。
在一种一般方法中,一种计算机实现的方法包括,对于存储器块中的每个页:使用第一校准方案来校准所述块中的给定页。第一校准方案被配置为计算存储器块中的页的第一数目的独立读取电压偏移值和第一数目的公共读取电压偏移值。尝试读取所述经校准的给定页,且响应于确定在尝试读取所述经校准的给定页时发生错误校正码失败,使用第二校准方案来重新校准所述块中的所述给定页。第二校准方案被配置为计算存储器块中的页的第二数目的独立读取电压偏移值和第二数目的公共读取电压偏移值。此外,第一数目的独立读取电压偏移值少于第二数目的独立读取电压偏移值。还尝试读取重新校准的给定页。响应于确定在尝试读取重新校准的给定页时确实发生错误校正码失败,发送一个或多个指令以重定位存储在给定页中的数据。
在另一一般方法中,计算机程序产品包括具有体现在其中的程序指令的计算机可读存储介质。所述程序指令可由处理器读取和/或可由处理器执行以使所述处理器针对存储器块中的每一页:执行前述方法。
在又一一般方法中,一种系统包括:多个NVRAM块,其被配置为存储数据;处理器;以及逻辑,其与所述处理器集成和/或可由所述处理器执行。所述逻辑经配置以针对所述块中的一者中的每一页:执行前述方法。
图1示出了根据一种方法的存储卡100。应注意,尽管在本方法中将存储卡100描绘为一示例性非易失性数据存储卡,但根据替代方法,可在数据存储系统中使用各种其他类型的非易失性数据存储卡。由此可见,存储卡100的结构和/或组件决不打算限制本发明,而是作为非限制性示例呈现。
此外,作为选择,本存储卡100可结合来自本文所列的任何其他方法的特征来实施,例如参考其他图所描述的那些特征,然而,此存储卡100及本文所呈现的其他存储卡可用于各种应用中及/或以可或可不在本文中所列的说明性方法中具体描述的排列形式使用。此外,本文所呈现的存储卡100可用于任何所需环境中。
继续参考图1,存储卡100包括网关102、连接到GPP存储器114(其可以包括RAM、ROM、电池支持的DRAM、相变存储器PC-RAM、MRAM、STT-MRAM等或其组合)的通用处理器(GPP)112(诸如ASIC、FPGA、CPU等)、以及多个存储器控制器108,在本示例中,其包括闪存控制器。每个存储器控制器108经由通道106连接到多个NVRAM存储器模块104(其可以包括NAND闪存或诸如以上列出的其他非易失性存储器类型)。
根据各种方法,控制器108中的一个或多个可以是或包括一个或多个处理器和/或用于控制存储卡100的任何子系统的任何逻辑。例如,控制器108通常控制NVRAM存储器模块104的功能,诸如数据写入、数据再循环、数据读取等。控制器108可以使用本领域中已知的逻辑以及本文公开的任何逻辑来操作,并且因此可以在各种方法中被认为是用于本文所包括的非易失性存储器的任何描述的处理器。
此外,控制器108可以被配置和/或可编程为执行或控制本文呈现的方法中的一些或全部。因此,控制器108可以被认为被配置为,通过被编程到一个或多个芯片、模块和/或块中的逻辑;软件、固件和/或可用于一个或多个处理器的其他指令等以及它们的组合,来执行各种操作。
仍参考图1,每个存储器控制器108还连接到控制器存储器110,其优选地包括根据这里描述的各种方法复制非易失性存储器结构的高速缓存。然而,取决于所期望的方法,控制器存储器110可为电池支持的DRAM、相变存储器PC-RAM、MRAM、STT-MRAM等,或其组合。
如先前所提及,取决于所期望的方法,存储卡100可实施于各种类型的数据存储系统中。图2示出了根据示例性方法的数据存储系统体系结构200,其决不旨在限制本发明。此外,应当注意,图2的数据存储系统220可以包括在图1的方法中找到的各种组件。
参见图2,数据存储系统220包括多个接口卡202,其被配置为经由I/O互连204与一个或多个处理器系统201通信。数据存储系统220还可包括一个或多个独立磁盘冗余阵列(RAID)控制器206,其被配置为控制多个非易失性数据存储卡208中的数据存储。非易失性数据存储卡208可包括NVRAM、闪存卡、RAM、ROM和/或一些其他已知类型的非易失性存储器。
I/O互连204可以包括任何已知的通信协议,例如光纤通道(FC)、以太网FC(FCoE)、无限带宽(Infiniband)、因特网小型计算机系统接口(iSCSI)、传输控制协议/因特网协议(TCP/IP)、快速外围组件互连(PCIe)等,和/或其任何组合。
数据存储系统220中的RAID控制器206可以执行与RAID-5、RAID-6、RAID-10所采用的奇偶方案类似的奇偶方案,或者执行本领域技术人员在阅读本说明书时将理解的一些其他适当的奇偶方案。
每个处理器系统201包括一个或多个处理器210(例如CPU、微处理器等)、本地数据存储器211(例如图10的RAM 1014、图10的ROM 1016等)以及被配置为与数据存储系统220通信的I/O适配器218。
再次参考图1,存储器控制器108和/或本文描述的其他控制器(例如,图2的RAID控制器206)能够根据所期望的方法对存储的数据执行各种功能。具体地,存储器控制器可以包括被配置为执行以下功能中的任何一个或多个的逻辑,这些功能决不旨在是排他性列表。换句话说,取决于所期望的方法,存储系统的逻辑可以被配置为执行附加的或替代的功能,如本领域技术人员在阅读本说明书时将理解的。
垃圾收集
在本描述的SSD存储器控制器的上下文中的垃圾收集可以包括识别要被回收以供将来使用的数据块以及重定位其中仍然有效的所有页的过程。此外,取决于特定控制器和/或相应的垃圾收集操作单元,可以识别逻辑擦除块(LEB)以便被回收和/或重定位。通常,一个LEB对应于一个块条带,但是替代实现方式也可以考虑构建LEB的固定数目的块条带。
物理“块”表示可在非易失性存储器(例如,NAND闪存)上擦除且借此准备向其写入数据的最小单位。然而,典型的垃圾收集操作单元通常是非易失性存储器的多个物理块,并且在此也被称为LEB。这是由于在LEB中添加了典型的类似RAID的奇偶信息。因此,在页或块故障的情况下,仅当LEB中的所有块仍保持数据时,才可以重建数据。因此,一旦来自LEB中的所有块的所有仍然有效的数据已经被成功地重定位到新位置,来自垃圾收集单元的各个块只能被单独地或以单个单元擦除。因此,完整的垃圾收集单元作为单个单元进行垃圾收集。此外,LEB的大小直接影响垃圾收集引起的写入放大。LEB越大,无关的数据一起存储在LEB中的可能性就越大,因此在垃圾收集选择时,更多的LEB数据可能必须被重定位。
通常,来自不同芯片和/或闪存通道的块被分组在一起,使得来自同一组的块可以被并行地读取或写入,从而增加了总带宽。还可以组合先前的两种方法,并且使用来自可以并行访问的不同闪存通道的块来构成RAID条带。
还应当注意,LEB可以包括作为物理擦除单位的任意多个物理存储器块。此外,将存储器块组织为LEB不仅允许在来自不同存储器芯片、存储器平面和/或通道的存储器块之间添加类似RAID的奇偶保护方案,而且允许通过更高的并行性来显著地增强性能。例如,多个非易失性存储器块可以被一起分组在RAID条带中。本领域技术人员在阅读本说明书时将理解,RAID方案通常提高可靠性并降低数据丢失的概率。
根据示例性方法,其决不旨在限制本发明,存储器控制器(例如,参见图1的108)可以在内部执行垃圾收集。如前所述,垃圾收集可以包括选择要被重定位的LEB,之后,可以重定位(例如,移动)在所选择的LEB上仍然有效的所有数据。在仍然有效的数据被重定位之后,LEB可以被擦除,并且此后用于存储新数据。从经垃圾收集的LEB重定位的数据量确定写入放大。此外,一种减小写入放大的有效方式包括实施热隔离(heat segregation)。
热隔离
在本上下文中,数据的“写入热”是指数据被更新(例如,用新数据重写)的速率(例如,频率)。被认为是“热”的存储器块往往具有频繁的更新速率,而被认为是“冷”的存储器块具有比热块慢的更新速率。
跟踪逻辑页的写入热例如可涉及在所述页的逻辑到物理表(LPT)映射条目中分配特定数目的位以跟踪所述页在特定时间周期或窗口中已经历多少写入操作。通常,主机写入操作增加写入热,而内部重定位写入减少写入热。写入热的实际增加和/或减少可以是确定性的或概率性的。
类似地,可以利用每个逻辑页的LPT中的特定数量的附加位来跟踪读取热。为了减少元数据,还可以在物理块级跟踪读取热,其中可以维护用于跨越(straddling)和非跨越读取的每块单独计数器。然而,应当注意,当针对一些方法确定存储器块的热度时,针对存储器块的读请求和/或对存储器块执行的读操作的数目可能不会对热隔离起作用。例如,如果频繁地从特定存储器块读取数据,则高读取频率不一定意味着存储器块也将具有高更新速率。相反,对给定存储器块执行的高频率读取操作可以表示存储在存储器块中的数据的重要性、值等。
通过将具有相同和/或相似写入热值的存储器块分组,可以实现写入热隔离。具体地,写入热隔离方法可以将写入热存储器页一起分组在某些存储器块中,而将写入冷存储器页一起分组在另外的存储器块中。因此,写入热隔离LEB往往被写入热或冷数据占据。
写入热隔离的优点是双重的。首先,对写入热存储器块执行垃圾收集处理也将防止触发写入冷数据的重定位。在没有热隔离的情况下,频繁执行的对写入热数据的更新也导致与正被重定位的热数据一起被并置在同一LEB上的所有写入冷数据的不期望的重定位。因此,对于实现写入热隔离的方法,由执行垃圾收集引起的写入放大要低得多。
其次,数据的相对写入热可用于损耗均衡目的。例如,写入热数据可以被放置在更健康(例如,更年轻)的存储器块中,而写入冷数据可以被放置在相对于那些更健康的存储器块不太健康(例如,更老)的存储器块上。因此,相对较老的块受到磨损的速率被有效地减慢,从而提高实现写入热隔离的给定数据存储系统的总耐久性。
写入分配
写入分配包括将写入操作的数据放置到开放LEB的空闲位置。一旦LEB中的所有页都已被写入,则关闭LEB并将其放置在保存已占用的LEB的池中。通常,被占用池中的LEB变得有资格进行垃圾收集。开放LEB的数量通常是有限的,并且任何关闭的LEB可以立即或者在一定延迟之后用正在打开的新LEB替换。
在执行期间,垃圾收集可与用户写入操作同时发生。例如,当用户(例如主机)向设备写入数据时,设备控制器可以对具有无效数据的LEB连续地执行垃圾收集,以便为新的进入数据页腾出空间。如上所述,正在其上执行垃圾收集的LEB通常将具有在垃圾收集操作时仍然有效的一些页;因此,这些页优选地被重定位(例如,写入)到新的LEB。
此外,前述功能决不旨在限制本文描述和/或建议的任何存储系统的能力。相反,前述功能是通过示例的方式呈现的,并且取决于期望的方法,存储系统的逻辑可以被配置为执行附加的或替代的功能,如本领域技术人员在阅读本说明书时将理解的。
现在参考图3,根据一种方法示出了系统300。作为选择,本系统300可以结合来自本文列出的任何其他方法的特征来实现,诸如参考其他附图描述的那些,然而,这样的系统300和本文呈现的其他系统可以用于各种应用和/或以可以或可以不在本文列出的说明性方法中具体描述的排列使用。此外,本文呈现的系统300可以在任何期望的环境中使用,例如与控制器组合。
如图所示,系统300包括写高速缓存302,其耦合到包括垃圾收集器304的若干其他组件。如前所述,垃圾收集器304可以用于通过重定位有效数据并且提供要擦除的非易失性存储器块以便以后重新使用来释放LEB单元。因此,垃圾收集器304可以根据期望的方法回收连续物理空间的块。根据示例性方法,块擦除单元可以用于跟踪和/或完成由垃圾收集器304移交的非易失性存储器块的擦除。
写高速缓存302还耦合到空闲块管理器306,其可以在空闲非易失性存储器块被擦除之后跟踪它们。此外,如本领域普通技术人员在阅读本描述时将认识到的,空闲块管理器306可以使用已擦除的空闲非易失性存储器块从不同通道(例如,块条带)建立非易失性存储器块的空闲条带。
仍然参考图3,写高速缓存302耦合到LPT管理器308和存储器I/O单元310。LPT管理器308保持逻辑地址到存储器的物理页的逻辑到物理映射。根据一个示例,其决不旨在限制本发明,LPT管理器308可以保持4KiB逻辑地址的逻辑到物理映射。存储器I/O单元310与存储器芯片通信,以便执行低级操作,例如,读取一个或多个非易失性存储器页、写入非易失性存储器页、擦除非易失性存储器块等。
为了更好地理解如本文所使用的块-条带和页-条带之间的区别,图4A是根据一种方法的概念图400。LEB由块条带构建,并且通常使用单个块条带来构建LEB。然而,替代方法可使用多个块条带以形成LEB。作为选择,本概念图400可以结合来自本文列出的任何其他方法的特征来实现,诸如参考其他附图描述的那些,然而,这样的概念图400和本文呈现的其他概念图可以用于各种应用和/或置换,其可以或可以不在本文列出的说明性方法中具体描述。此外,本文呈现的控制器概念图400可以在任何期望的环境中使用。因此,图4A的示例性非易失性存储器控制器概念图400可以在高速缓存架构中实现。然而,取决于所需方法,图4A的概念图400可在定义存储在非易失性存储器中的数据的组织时实现。因此,下面依次描述两种实现方式。
非易失性存储器
现在看图4A,概念图400包括一组M+1个聚合平面,标记为“平面0”到“平面M”。聚合平面由在不同通道上具有相同平面索引的所有物理平面组成。应当注意,聚合平面在这里也被简单地称为平面。
当用存储在非易失性存储器中的数据实现时,通道上的每个物理平面可以包括一大组块,例如,通常为1024、2048或更大的量级。此外,一个或多个物理平面还可包含若干额外块,其可用作坏块(例如,表现不佳的块、具有不合需要的特性的块等)的替换块。
在非易失性存储器的每一平面中,来自每一通道的单个块形成相应块条带。因此,非易失性存储器的给定方法所支持的块条带的数目可由每平面的块的数目和平面的数目来确定。
在平面0的分解图中,概念图400进一步示出了在其余平面中支持的块条带集合中的单个块条带(块条带0)。平面0的块条带0被示出为包括11个块,被标记为“通道0”至“通道10”的每个通道一个块。应注意,块与块条带的关联可随时间而改变,因为块条带通常在其已被垃圾收集之后被分解。已擦除块可被置于空闲块池中,由此当写入分配请求新的块条带时,从空闲块池中的块组装新的块条带。例如,参见概念图400,来自通道0的块10和来自通道4的块41当前与平面0的所示块条带0相关联。此外,所示块条带0持有N+1个页条带,并且每个块因此持有标记为“页0”到“页N”的N+1个页。
高速缓存架构
仍然参考图4A,当在高速缓存架构中实现时,聚合平面0的分解图中示出的每个页面块可以构成来自一个通道的唯一块。类似地,每个通道贡献形成块条带的单个、独立块。例如,参见概念图400,来自通道0的块10包括其中的所有页(页0到页N),而来自通道4的块41对应于其中的所有页,等等。
在存储器控制器的上下文中,例如,其能够在通道级别实现RAID,块条带由多个块组成,其等于块的一个条带。仍然参见图4A,聚合平面0的多个块组成块条带0。虽然块条带中的所有块通常属于相同的聚合平面,但是在一些方法中,块条带的一个或多个块可以属于不同的物理平面。由此得出结论,每个聚合平面可以包括一个或多个块条带。因此,根据说明性方法,来自不同物理平面的块0到块10可构成块条带。
不管图4A的概念图400是否用非易失性存储器和/或高速缓存架构来实现,在不同的方法中,每个块中的页数量和/或每个平面中的通道数量可以根据期望的方法而变化。根据一种示例性方法,其决不旨在限制本发明,块可以包括1024页,但是在各种方法中可以包括更多或更少的页。类似地,每个平面的通道的数量和/或平面的数量可以根据期望的方法而变化。
仍参考图4A,块条带中具有相同页索引的所有页表示页条带。例如,页条带0包括平面0的块条带0中每个通道的第一页(页0),类似地,页条带N包括平面0的块条带0中每个通道的最后一页(页N)。
在一些方法中,图4A的概念图400中所示的一般存储架构也通过使用3-D存储器结构来实现。例如,图4B描绘了根据一种方法的3-D非易失性存储器结构450的代表性视图。作为选择,本结构450可以结合来自这里列出的任何其他方法的特征来实现,例如参考其他附图(例如图4A)描述的那些。然而,这样的结构450和本文呈现的其他结构可以用于各种应用和/或置换,其可以或可以不在本文列出的说明性方法中具体描述。此外,本文所呈现的结构450可以用于任何期望的环境中。因此,图4B(和其他图)可以被认为包括任何可能的置换。
如图所示,3-D非易失性存储器结构450的每个层452沿x轴和y轴延伸。这些层452中的每一者包含多个存储组件(未图示),例如电压供应线、传感器堆叠、晶体管等,其用于实施图4A的概念图400中所说明的一般存储架构的非易失性存储器设备,例如,如所属领域的技术人员在阅读本描述之后将了解的。此外,各层452沿z轴以堆叠方式布置,以便增加存储密度和效率。来自沿字线(通常在图4B的x或y维度上)的不同位线的单元被逻辑组合以形成页。因此,每一块中包括多个字线,且每一字线具有多个与其相关联的读取电压。例如,在TLC中,块中的每个字线包含3个物理页(例如,下部页、上部页和额外页),并且字线通常属于z维度(垂直于x-y平面)中的一个特定层。
对于由通过字线和位线连接的单元的栅格形成的特定块,位于同一层上的字线的数量通常较小。因此,可以由所有层452的字线形成块。此外,字线以及同一块中的页可驻留在不同层452上。还应注意,块在其中包含多于一种类型的页(例如,上部页、下部页、额外页、顶部页),且至少一个读取电压与所述页类型中的每一者相关联,例如,如所属领域的技术人员在阅读本描述之后将了解的。
再次,由于循环、保持、读取干扰、编程干扰等,或可特定于3-D NAND快闪技术(例如,基于浮动栅极或基于电荷陷阱的技术)、处理技术、单元和材料设计、电路和阵列架构等的其他机制,或其他特定设计因素,存储器块中的经编程阈值电压分布可随以相对缓慢或快速的方式写入和擦除数据(循环)、读取数据(读取干扰)、时间(保持)等而改变。换句话说,闪存块的RBER随着时间和使用而增加。当使用存储器块时,对块执行的每个P/E循环导致存储单元的损坏,这又增加了相应的RBER。
块校准是通过减少所经历的RBER来增强闪存存储系统(例如,特别是企业级闪存系统)的耐久性和保持力的重要方面。此块校准对应于读取电压且指代能够跟踪阈值电压分布的改变且相应地调整读取电压的算法,借此通过减少原本将由错误恢复机制调用引起的读取尾部等待时间而显著减少位错误且改进相应装置中的性能一致性。
此外,在读取命令期间相应地施加对读取电压的调整。其中,阈值电压表示与导通给定闪存单元的晶体管相关联的电压,且其值取决于编程期间所存储的电荷量。然而,读取电压是偏置电压,其值通常在两个邻近逻辑状态的阈值电压之间,例如,如下文在图5中进一步详细解释的。
暂时参考图5,根据示例示出了图示阈值电压移位现象的曲线图500。曲线图500的x轴表示编程阈值电压VTH,而y轴表示QLC NAND闪存块的对应单元计数。在QLC NAND闪存中,每个存储单元存储4位信息,因此,VTH分布对应于16个可能的离散电平(L0、L1、…、L15)。此外,QLC NAND闪存的给定块中的每个不同类型的页具有与其对应的不同组读取电压。根据一实例(其决不打算限制本发明),下部页对应于V8读取电压,上部页对应于V4及V12读取电压,额外页对应于V2、V6、V10及V14读取电压,而顶部页对应于V1、V3、V5、V7、V9、V11、V13及V15读取电压。
实线分布502指示编程之后的VTH电平。垂直实线指示对于VTH分布502最佳的读取电压504(V1、…、V15)。虚线分布506指示由于电荷随时间的损失而导致的VTH电平的负移位。由于这种向较低电压的负移位,读取电压504不再是最佳的。实际上,必须将负偏移施加到读取电压,以便考虑VTH分布从502到506的变化。垂直虚线508指示在506中的VTH分布的保持期间最佳的读取电压(V1、…、V15)。通常,图中所示的16个电平(L0、L1、…、L15)中的每一个可以具有不同的VTH移位,因此,15个读取电压(V1、…、V15)中的每一个可以具有不同的最佳移位。
因此,优选地在块被写入之后不久和/或之后周期性地确定读取电压移位值(或偏移值)。可将阈值电压视为单元编程电平(即,L0、L1、…、L15)的指数,如通过测量在将控制栅极偏压施加到存储单元时的源极-漏极电流而确定。通常,在读取操作时,使用邻近标称阈值电压电平之间的一个或多个读取电压来确定存储单元状态。当存储单元的阈值电压值改变时(如上所述),在读取操作期间施加的读取电压优选地使用一组偏移值来相应地移位,以获得最佳读出条件并最小化RBER。随后,可以周期性地更新最佳读取电压移位值,例如,在后台健康检查中,或者根据需要更新最佳读取电压移位值,例如,在高位错误计数或ECC故障的情况下。
尽管RBER的增加对于一些块是不可修复的(例如,由延长的P/E周期引起的那些),但是由诸如保留和/或读取干扰的事件引起的RBER的增加在受影响的块不被不可逆地损坏的意义上是瞬时的。当重新校准对应的存储器块以便校正对应的读取电压时,RBER的这种不利的增加被补救。在其他方法中,经历瞬时RBER增加的块可以通过被擦除、编程和重新校准来补救。因此,显然,块的RBER取决于块的状态,其可由循环状态、保留状态、读取干扰状态和/或其任何组合确定。块重新校准通过调整读取电压来改善RBER,使得它们在永久效应和/或瞬态效应下VTH分布的各种变化下是最佳的。
理想地,存储器块中的每个页的读取电压被单独地更新。然而,随着存储器的存储容量增加,在存储器的每一块中,通过维持每一页的一个或多个读取电压偏移值而消耗的存储量也增加,其中读取电压偏移值的数目取决于给定页的页类型。例如,从TLC NAND闪存中的每单元3位前进到QLC NAND闪存中的每单元4位,每个块实现16个阈值电压电平(而不是TLC中的8个)和15个不同的读取电压(而不是TLC中的7个)以读取包括在其中的任何页。此外,随着垂直堆叠和工艺技术的改进,每个新一代3-D NAND闪存中的层的数目也增加。随后,每个块中的页数也增加。举例来说,当前3-D QLC NAND闪存可具有多于90个层且每一块可具有多于4000个页。因此,如果独立地(或个别地)校准3-D QLC NAND中的所有这些15个不同读取电压,则在一块中存储每一页或页群组的个别读取偏移值组所涉及的元数据量及每页的校准读取次数显著增加。
随着存储器的存储容量持续增加,与存储器相关联的可靠性问题也增加。因此,除了与存储器的每一块中的每一页相关联的读取电压偏移值的数目增加之外,常规校准引擎还经历由存储器的可靠性下降所引起的处理开销量的增加。
与传统存储系统管理存储器性能的日益低效的方式形成鲜明对比,本文所包括的各种方法能够显著减少校准开销,同时还改进读取性能。除了减少对应于校准过程的元数据对存储容量的影响之外,这些改进在一些方法中实现,例如,如将在下面进一步详细描述的。
现在参考图6A,根据一种方法示出了用于校准存储器块中的页的读取电压的方法600的流程图。根据本发明,方法600可以在图1-5中描述的任何环境中执行,其中,可以以各种方法执行。例如,方法600中包括的任何过程可相对于NVRAM中的存储空间的块来执行,例如3-D TLC NAND闪存、3-D QLC NAND闪存、3-D五级单元(PLC)NAND闪存等,或任何其他期望类型的存储器。此外,如本领域技术人员在阅读本说明书时将理解的,方法600中可以包括比图6A中具体描述的操作更多或更少的操作。
方法600的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种方法中,方法600可以部分地或完全地由控制器(例如,闪存控制器、混合控制器等)、处理器、计算机等或其中具有一个或多个处理器的一些其他设备来执行。因此,在一些方法中,方法600可以是计算机实现的方法。还应当注意,关于这里的任何方法,术语计算机、处理器和控制器可以互换使用,这样的组件被认为是本发明的许多不同排列中的等价物。
此外,对于具有处理器的那些方法,处理器例如是以硬件和/或软件实现的处理电路、芯片和/或模块,并且优选地具有至少一个硬件组件,可以在任何设备中使用该处理器来执行方法600的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其他合适的计算设备。
如图6A所示,方法600的操作602包括前进到下一存储器块。关于本说明书,“下一存储器块”可以根据给定的方法而变化。例如,在启动方法600时,下一存储器块可以简单地是第一存储器块。在其他方法中,下一存储器块可以是下一存储器逻辑块。此外,操作602可以以任何期望的方式在存储器的块之间进行,例如,顺序地、随机地、使用模式等。此外,操作602可由检查所有NAND块的后台进程周期性地触发,例如每1周触发,或可在需要时触发,例如在块中的页读取呈现高位错误计数或ECC故障的情况下触发。此外,存储器优选地包括NVRAM。例如,在一些方法中,存储器包括3-D TLC NAND闪存,而在其他方法中,存储器包括3-D QLC NAND闪存。
操作604还包括前进到给定块中的下一页。如上所述,“下一页”可以根据给定的方法而变化。例如,在前进到新的存储器块时,下一页可以简单地是块中的第一页。在其他方法中,存储器块中的下一页可以是特定类型的下一页(例如,下一额外页)。在其他方法中,下一页可简单地为给定块中的后续页。由此可见,操作604可以任何期望的方式在存储器块中的页之间进行,例如,顺序地、随机地、使用模式等。
方法600从操作604前进到操作606,其包含使用第一校准方案来校准用于块中的给定页的一个或多个读取电压偏移值。如上文所暗示,每一块包含取决于块的配置的若干不同页类型。根据一个示例,该示例决不旨在限制本发明,3-D QLC NAND闪存存储器的块在其中包括四种不同类型的页,包括下部页、上部页、额外页和顶部页。这些类型的页中的每一者进一步包含对应于读取存储在其中的数据的一个或多个读取电压。然而,存储单元的阈值电压值随时间而改变,从而使得读取电压无效。由此在读取操作期间施加读取电压偏移值,以便获得最佳数据读出条件并最小化RBER。随后,这些读取电压偏移值可例如在背景健康检查中周期性地更新。
可使用许多不同类型的校准方案中的任何一个或多个来校准存储器块中的页。每个校准方案可以在如何应用(例如,如何执行)、其重新校准块的准确度、所消耗的时间量和/或计算资源量等方面不同。因此,对于不同的情况,可能更需要不同类型的校准方案,其中特定的校准方案指示页面将如何被实际校准。
例如,与涉及针对字线中的读取电压的仅一部分计算公共读取电压偏移值以及针对字线中的剩余读取电压计算独立电压偏移值的校准算法相比,涉及针对与字线中的相应页类型相关联的读取电压的每个子集计算公共读取电压偏移(在本文中也称为“移位”)值的校准方案涉及较少的计算开销和计算延迟。尽管与涉及计算针对字线中的仅部分读取电压的公共读取电压偏移值以及字线中的剩余读取电压的独立电压偏移值的校准算法相关联的额外计算开销和计算延迟,但由于额外的准确度,还实现了增加的读取性能。在经历高读取错误计数的情况下,这种改进的读取性能可能是期望的。由此得出结论,在“标称”操作期间可以实现引起较少计算开销和/或计算延迟的校准方案,而产生较大量的计算开销和计算延迟的校准方案可以被保留用于高错误情况,例如不久将变得明显的ECC故障。由此得出结论,例如根据期望的方法,可以在不同的情况下实现不同的校准算法。
继续参考操作606,第一校准方案优选地涉及能够校准读取电压偏移值同时产生相对较低量的计算额外开销和/或计算延迟的一个或多个过程。在一些情况下,这可通过利用校准方案来实现,所述校准方案涉及例如至少与如下文所述的第二校准方案相比计算相对低数目的独立电压偏移值及相对高数目的公共读取电压偏移值。
操作608进一步包括尝试读取给定块中的校准页。换句话说,操作608包括使用由第一校准方案在操作606中产生的(一个或多个)读取电压偏移值来尝试读取该页。此外,决策610包含确定在尝试读取所述页期间是否发生ECC故障。ECC故障对应于在尝试读取页时经历的位错误的数目高于可通过给定错误校正码的错误校正能力校正的错误的数目的情形。
因此,响应于确定在尝试读取校准页期间确实发生ECC故障,方法600前进到操作612。在那里,操作612包括使用第二校准方案来重新校准块中的给定页。如上所述,产生较少计算开销和/或计算延迟的第一校准方案可以在“标称”操作期间实现,而涉及更大量的计算开销和/或计算延迟的更精确的校准方案可以保留用于高错误情况,例如ECC故障。因此,关于本说明书,“第二校准方案”是能够比第一校准方案更准确地确定存储器块中的页的读取电压偏移值的校准方案。与第一校准方案相比,这种增加的准确度是比第一校准方案校准更大数目的独立读取电压偏移值的结果。
根据示例,其决不打算限制本发明,第一校准方案能够通过计算施加到所有八个读取电压的一个公共偏移值来校准在读取顶部页时使用的八个读取电压,而第二校准方案能够通过计算八个读取电压中的四个读取电压的四个独立偏移值和施加到剩余四个读取电压的公共偏移值来校准所述八个读取电压。
继续参考图6A,操作614包括尝试读取给定块中的重新校准的页。换句话说,操作614包括使用由第二校准方案在操作612中产生的(一个或多个)读取电压偏移值来尝试读取页。此外,决策616包括确定在尝试读取重新校准的页期间是否发生ECC故障。如上文所述,ECC故障对应于在尝试读取页时经历的位错误的数目高于可通过给定错误校正码的错误校正能力校正的错误的数目的情形。
因此,响应于确定在尝试读取重新校准的页期间确实发生ECC故障,方法600前进到操作618。在那里,操作618包括发送一个或多个指令以将存储在给定页中的数据重定位到存储器中的另一页。重定位存储在给定页中的数据涉及通过诸如RAID方案的更高级方案进行数据重建,并且允许至少暂时地使该页无效和停用。
方法600从操作618前进到决策620,其包含确定给定块中的所有页是否已被校准。响应于确定给定块中的至少一页尚未被校准,方法600返回到操作604,使得可以校准给定块中的下一页。然而,响应于确定给定块中的所有页已经被校准,方法600返回到操作602并前进到存储器中的下一块。由此得出结论,方法600中所包括的各种过程可以以迭代方式重复任何期望的次数。
现在返回到决策610,方法600响应于确定在尝试读取经校准页期间未发生ECC故障而前进到决策622而非操作612。换句话说,方法600响应于确定操作608能够成功地从经校准的页读取数据而前进到决策622。如图所示,决策622包括确定对应于给定页的错误计数是否在第一预定范围内。决策622由此确定当前页最近是否已不期望地执行,例如使得可以采取反作用措施来避免附加的差性能。第一预定范围可以由用户基于工业标准、使用存储器的性能能力来预定,可以基于过去的性能来动态地更新,等等。然后,可以为存储器中的每个页维护错误计数,并且基于存储器的性能随时间更新错误计数。此外,在一些方法中,各种错误计数可以存储在指定的存储器位置中,而在其他方法中,每个错误计数可以由与存储器的相应页相关的一个或多个位来维护。
响应于确定与给定页相对应的错误计数在第一预定范围内,方法600前进至操作612,使得第二校准方案可被用于重新校准随时间过去已经历差的性能的给定块中的页。然而,响应于确定与给定页对应的错误计数不在第一预定范围内,可以确定给定页已经被准确地校准并且已经被期望地执行。因此,方法600直接从决策622进行到决策620。应当注意的是,“在第一预定范围内”或本文中使用“预定范围”决不旨在限制本发明。不是确定值是否在预定范围内,而是可以根据期望的方法,进行等效的确定,例如关于值是否在阈值以上、值是否在预定范围之外、绝对值是否在阈值以上、值是否在阈值以下等。
现在返回到决策616,方法600响应于确定在读取经重新校准的页的尝试期间未发生ECC故障而前进到决策624而非操作618。换句话说,方法600响应于确定操作614能够成功地从经校准的页读取数据而进行到决策624。如图所示,决策624包括确定对应于给定页的错误计数是否在第二预定范围内。决策624由此确定当前页是否已经例如如上所述地不期望地执行。第二预定范围可以与第一预定范围相同、相似或不同,例如,取决于期望的方法。在一些方法中,第二预定范围可以比第一预定范围窄,以试图确保在重新校准操作之后期望地执行给定页。此外,第二范围可以由用户基于工业标准、使用存储器的性能能力来预先确定,可以基于过去的性能来动态地更新,等等。
响应于确定对应于给定页的错误计数在第二预定范围中,方法600进行到操作618,使得存储在给定页中的数据可被重定位。然而,响应于确定与给定页对应的错误计数不在第二预定范围内,可以确定给定页已被准确地重新校准并且已被期望地执行。因此,方法600从决策624前进到操作626,其包括递增对应于给定页的错误恢复计数器。错误恢复计数器用于维持指示页或块已触发第二校准方案的执行的次数的计数。错误恢复计数器由此可用于有效地管理存储器中的页或块的重定位。
进行到决策628,作出关于错误恢复计数器是否在第三预定范围中的确定。响应于确定错误恢复计数器在第三预定范围中,方法600前进到操作618,使得可重定位给定页中的数据。然而,响应于确定错误恢复计数器不在第三预定范围中,方法600直接前进到决策620,使得可评估下一页或块。
管理错误恢复计数器的一部分涉及周期性地递减或甚至清除其当前值以说明经由擦除操作的块重新初始化。还应注意,在某些情况下,也可在主机读取操作期间触发错误恢复。暂时参考图6B,根据一种方法示出了具有用于管理错误恢复计数器的过程的示例性方法650,其中的任何一个或多个可以在以上方法600的背景中实现。然而,应当注意,图6B的过程是根据一种方法来说明的,该方法决不旨在限制本发明。
如图所示,方法650包括前进到存储器中的下一页。见操作652。在本说明书中,“存储器中的下一页”可以根据给定的方法而变化。例如,在启动方法650时,存储器中的下一页可以简单地是存储器中的第一页。在其他方法中,存储器中的下一页可对应于使用方法600评估的下一页。由此得出结论,操作652可以以任何期望的方式在存储器的页之间进行,例如,顺序地、随机地、使用模式等。还优选的是,在例如如上所述的任何其他正在进行的数据管理过程的后台中执行方法650中包括的过程。
仍然参考图6B,决策654包括确定是否已经满足对应于错误恢复计数器的预定条件。这些条件可以由用户、系统管理员等根据期望的方法来预先确定,但是优选地对应于给定页或块的性能。根据一个示例,该示例决不旨在限制本发明,预定条件可以指定在可以递减错误恢复计数器之前给定页或块应当执行的P/E周期的数量。
因此,响应于确定已经满足与错误恢复计数器对应的预定条件,流程图进行到操作656,其包括递减错误恢复计数器。错误恢复计数器被递减和/或递增的量根据该方法而变化。例如,在一些方法中,错误恢复计数器每次递增和递减一。方法650从操作656返回到操作652,例如使得可以评估与后续页对应的错误恢复计数器。此外,返回到决策654,方法650响应于确定尚未满足与错误恢复计数器相对应的预定条件而直接返回到操作652。
由此得出结论,方法600中的各种过程以及方法650中包括的那些过程能够通过显著地减少校准开销同时还确保存储器的高效性能来改进存储器和/或存储器控制器的操作。这些改进可以至少部分地作为在标称操作期间实现第一校准方案以及在错误恢复模式情况下按需实现第二校准方案的结果来实现。如上所述,虽然第二校准方案与第一校准方案相比能够实现更准确的校准结果,但是第一校准方案相对于作为实现第二校准方案的结果而言产生较少的校准开销。因此,通过选择性地实现第二校准方案,性能得到改善,同时还确保了有利的存储器管理。
现在参考图6C,根据一种方法示出了使用第一校准方案来校准用于块中的给定页的一个或多个读取电压偏移值的示例性子处理。图6C中包括的子过程中的任何一个或多个可以用于执行图6A的操作606。然而,应当注意,图6C的子过程是根据一种方法来说明的,该方法决不旨在限制本发明。
如图所示,图6C包括确定对应于给定页的页类型。见子操作660。同样,每一页类型具有与其相关联的不同数目的读取电压,例如,如所属领域的技术人员将了解的。
在一些情况下,可通过实际检查给定页的物理地址来确定页类型,而在其他情形下,可通过存取查找表来确定页类型。因此,可以使用本领域技术人员在阅读本说明书之后将显而易见的任何过程来确定页类型。响应于确定页类型,流程图进行到操作662,其包括确定与对应于给定页的页类型相关联的一个或多个读取电压。如上所述,每个页类型对应于总读取电压的不同子集,例如QLC NAND中的15个读取电压,并且每个子集中的读取电压的数量对于每个页类型可以不同。因此,在子操作662中确定的读取电压的数目取决于给定的页类型。这些读取电压对于每一页类型是固定的且可取决于存储器设备。
此外,子操作664包括确定一个或多个现有读取电压偏移值,所述读取电压偏移值中的每一者对应于一个或多个读取电压中的相应一者。在一些方法中,可使用元数据映射来确定一个或多个现有读取电压偏移值,但可使用所属领域的技术人员在阅读本描述之后将明了的任何过程。
子操作666进一步包含将一个或多个现有读取电压偏移值施加到一个或多个读取电压,而子操作668包含计算用于现有读取电压偏移值中的每一者的校正偏移。在一些方法中,计算用于现有读取电压偏移值中的每一者的校正偏移包含使用所述一个或多个现有读取电压偏移值和所述一个或多个读取电压来执行电平移位算法。随后,计算现有读取电压偏移值的校正偏移的过程可包括实际上将一个或多个电压施加到给定页,并使用这样做的结果来计算一组新的校正偏移值。
现在进行到子操作670,使用校正偏移来更新现有的读取电压偏移值。在优选方法中,校正偏移用于基于第一元数据映射来更新现有读取电压偏移值。在本说明书中,“第一元数据映射”指定在校正偏移和现有读取电压偏移值之间延伸(例如,使其相关)的第一映射关系。该第一映射关系也对应于第一校准方案。换句话说,尽管可以为每个现有的读取电压偏移值确定校正偏移,但是子操作670优选地能够确定可以被应用于每个现有的读取电压偏移值的公共校正偏移。
还应注意,可实施上文相对于图6C所描述的子过程中的任何一者或一者以上以便使用第二校准方案来重新校准块中的给定页的一个或多个读取电压偏移值。然而,具体地参照子操作670,应当注意,校正偏移优选地用于基于第二元数据映射来更新现有的读取电压偏移值。如上所述,校正偏移用于基于与第一校准方案相对应的第一元数据映射来更新现有的读取电压偏移值。因此,涉及执行第二校准方案以重新校准块中的给定页的一个或多个读取电压偏移值的方法可在某些方面不同。
例如,在以上子操作668中确定的校正偏移优选地用于基于实现第二校准方案的方法的第二元数据映射来更新现有读取电压偏移值。第二元数据映射定义在校正偏移和现有的读取电压偏移值之间延伸(例如,其相关)的第二映射关系。第二映射关系对应于第二校准方案。
在校正偏移和现有的读取电压偏移值之间延伸的映射关系根据特定方法而变化。例如,第一映射关系对应于第一校准方案,而第二映射关系对应于第二校准方案。参看图7A-7E,根据一些示范性方法更详细地解释页类型、读取电压偏移值与校正偏移之间的关系。作为选择,图7A-7E中的任何一个可以结合来自这里列出的任何其他方法的特征来实现,例如参考其他图,例如图6A-6C描述的那些方法。然而,此类图7A-7E和本文呈现的其他图可以用于各种应用和/或置换,其可以或可以不在本文的方法中具体描述。
如上文所提及,不同组读取电压对应于读取不同页类型。根据一个示例,该示例决不旨在限制本发明,在QLC NAND中使用的15个读取电压、即V1、…、V15中,读取电压V1、V3、V5、V7、V9、V11、V13、V15用于读取顶部页,读取电压V2、V6、V10、V14用于读取额外页,读取电压V4、V12用于读取上部页,以及读取电压V8用于读取下部页。
图7A的表710根据一种方法将每种页类型与对应的(多个)读取电压相关联。因此,表710描绘了在校正偏移和每种页类型的现有读取电压之间延伸(例如,其相关)的映射关系。在一些情况下,该映射关系还可以对应于第二校准方案。根据表710的映射关系,其同样不旨在限制本发明,总共10个校正偏移被映射到QLC NAND中的15个读取电压。针对对应于顶部页TP的读取电压V5、V7、V9、V11界定公共读取电压偏移a3,而针对分别对应于顶部页TP的剩余读取电压V1、V3、V13、V15界定唯一校正偏移a1、a2、a4、a5。因此,为对应于额外页XP的读取电压V6、V10定义公共读取电压偏移a7,而为分别对应于额外页XP的剩余读取电压V2、V14定义唯一校正偏移a6、a8。
此外,针对对应于上部页UP的读取电压V4、V12界定公共读取电压偏移a9,且针对对应于下部页LP的读取电压V8界定唯一读取电压偏移a10。由此得出结论,在一些方法中,图7A中描述的实现方式对应于上面关于方法600描述的第二校准方案。
此外,图7B的表730使页类型中的每一者与对应读取电压(一个或多个)相关。因此,表730描绘了在校正偏移和每种页类型的现有读取电压之间延伸(例如,其相关)的映射关系。在一些情况下,该映射关系还可以对应于第一校准方案。由此得出结论,在一些方法中,图7B中所描绘的实现方式可以对应于上面关于方法600所描述的第一校准方案。
图7C中所示的表740示出了根据元数据结构的读取电压偏移值。如图所示,表740中所描绘的元数据结构支持给定块中的每个字线的十个不同的读取电压偏移值(编号为1-10)。此外,读取电压偏移值1-10中的每一者对应于特定页类型TP、XP、UP、LP。在一些方法中,每个偏移值(例如,o2)可仅包括一个字节的信息。因此,表740中的每一行表示针对给定存储器块中的每一字线存储的元数据。
还应当注意,作为实现第一和/或第二校准方案的结果而确定的读取电压和对应的读取电压偏移值可以用于更新存储在表740中的值。举例来说,这些值可用以更新在试图从某一字线的块中的特定页读取数据时应用的偏移值。因此,读取给定页的过程可涉及存取表740、确定对应于所述页的所得偏移值及使用所述所得偏移值调整读取电压。
继续到图7D的表750和图7E的表760,对应于存储器中的给定页的元数据可以被映射到相应的校正偏移。然而,表750和760的不同之处在于,表750包括更大量的校正偏移值,而表760依赖于多个公共校正偏移值。因此,表750和/或表760可以应用于存储器块中的每个字线。
现在参见图8A,根据使用中的示例示出了执行校准方案的过程800,这决不旨在限制本发明。如图所示,在校准回合n-1中,可假定尚未确定读取电压偏移值,且因此可使用现有读取电压来从所述页中的每一者读取数据。然而,校准回合n对应于应用于具有读取电压偏移值“c2”的示例性额外页XP的第一校准方案。根据第一校准方案(例如,参见上表730),将c2的此读取电压偏移值施加到额外页的读取电压中的每一者。类似地,根据第一校准方案,在校准回合n+1中,将新的读取电压偏移值c2施加到每个已经调整的读取电压,从而形成针对元数据结构(例如,参见上表740)中的偏移o6、o7、o8中的每个的校正偏移值的和的结果读取电压偏移值c2。
然而,参见校准回合n+2,实施第二校准方案,并且使用不同的读取电压偏移值更新读取电压。举例来说,读取电压V6及V10移位公共偏移值a7,而读取电压V2移位偏移值a6且读取电压V14移位偏移值a8。最后,校准回合n+3返回到第一校准方案,使得相同的读取电压偏移值c2被施加到每个读取电压,如图所示。
应注意,可执行图8A中所描绘的操作的控制器可能无法存取实际读取电压值V2、V6、V10、V14,但可能能够存取所施加的偏移值,例如,即o6、o7及o8。如图所示,对于各个电压中的每一个所施加的偏移o6、o7、o8可取决于方法而具有相同或不同的值,并且校正偏移值取决于所实现的校准方案。
如上所述,本文所包括的各种方法根据在尝试校准给定页时所经历的读取性能来实施不同的校准方案。此外,这些校准方案中的每一者实施不同数目的独立读取电压偏移值以及公共读取电压偏移值。由此得出结论,对应于每个不同校准方案的读取电压偏移值优选地是可互操作的,使得它们可以根据正在实现的校准方案而互换地使用。这可以在一些方法中通过利用对应于存储器的元数据结构和偏移更新机制来实现。这允许在标称操作期间实现计算强度较低的第一校准方案,为期望增加的精度的情况保留计算强度更高的第二校准方案。
由此得出结论,与第一和第二校准方案相对应的读取电压偏移值优选地存储在存储器中,使得它们可以根据正在实现的校准方案而容易地转换。举例来说,参看图8B,其说明存储读取电压偏移值的使用中示例。如图所示,可以在任何时间启动块b中的给定页p的后台校准。见操作802。操作804由此通过实现第一校准方案来校准页p。此过程包含以扩展格式(例如,对应于第二校准方案的格式)加载当前读取电压偏移值,且使用这些偏移值来执行页p的校准。然而,使用从元数据结构801加载的当前读取电压偏移值的过程涉及将偏移值从其扩展格式(其中存储偏移值)转换为对应于第一校准方案的紧凑格式。
根据决不希望限制本发明的示例,当前读取电压偏移值存储在元数据结构801中,使得十个不同的读取电压偏移值可用,这十个不同的值包含七个独立读取电压偏移值和三个公共读取电压偏移值(例如,如表710中所见)。然而,这些读取电压偏移值经转换,使得仅四个不同读取电压偏移值可用以便进行第一校准方案,这四个不同值包含四个公共读取电压偏移值(例如,如表730中所见)。取决于给定方法,可以多种不同方式来执行对读取电压偏移值的转换。例如,在一些方法中,可以对独立读取电压偏移值中的多个进行平均,以产生一个公共读取电压偏移值。
继续参考图8B,执行操作804的结果优选地在被存储在元数据结构801中之前被转换回对应于第二校准方案的格式。然而,响应于块b中的页p经历ECC故障,进行选择性校准。见操作806。操作808由此通过实现第二校准方案来校准页p。该过程包括以扩展格式(例如,对应于第二校准方案的格式)从元数据结构801加载当前读取电压偏移值,并使用这些偏移值来执行页p的校准。
因为从元数据结构801加载的当前读取电压偏移值已经处于对应于第二校准方案的格式,所以操作808不涉及执行任何转换。类似地,执行操作808的结果在被存储在元数据结构801中之前不需要被转换。因此,在一些方法中,元数据结构801定义了在对应于第一校准方案的读取电压偏移值与存储值之间的映射以及在对应于第二校准方案的读取电压偏移值与存储值之间的第二映射。该映射可以基于将多个读取电压偏移值关联到单个值的任何所期望函数。例如,如本领域技术人员在阅读本说明书之后将理解的,通过计算多个读取电压偏移值的平均值、中值、加权平均值等,多个读取电压偏移值可以被映射到单个值。这还理想地避免了在错误恢复模式中执行频繁的块重定位。
由此可见,本文所包括的各种方法能够通过显著地减少校准开销同时还确保存储器的高效性能来改进存储器和/或存储器控制器的操作。这些改进可以至少部分地作为在标称操作期间实现第一校准方案以及在错误恢复模式情况下按需实现第二校准方案的结果来实现。如上所述,虽然第二校准方案与第一校准方案相比能够实现更准确的校准结果,但是第一校准方案相对于作为实现第二校准方案的结果而言产生较少的校准开销。因此,通过选择性地实现第二校准方案,性能得到改善,同时还确保了有利的存储器管理。此外,将读取电压偏移值存储在存储器中的方式能够进一步改进针对不同校准方案的可访问性和适用性。这至少部分地通过以最复杂的格式存储这些偏移值来实现,使得执行任何转换的计算复杂度被最小化。
还应当注意,在这里包括的任何方法中所包括的特定配置都不是限制性的。例如,包括在给定字线和/或存储器块中的页的数量和/或类型、读取电压的数量和/或值、阈值电压电平的数量和/或值、对应于每个校准方案的公共和/或独立读取电压偏移值的数量等,包括在这里的任何方法中,决不旨在限制,而是仅通过示例的方式呈现。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
此外,根据各种实施例的系统可以包括处理器和与处理器集成和/或可由处理器集成的逻辑,该逻辑被配置为执行本文所述的过程步骤中的一个或多个。处理器可以是如本文所述的任何配置,例如分立处理器或包括诸如处理硬件、存储器、I/O接口等许多组件的处理电路。所谓与其集成,是指处理器具有与其一起嵌入的逻辑作为硬件逻辑,诸如专用集成电路(ASIC)、FPGA等。通过可由处理器执行,意味着逻辑是硬件逻辑;软件逻辑,例如固件、操作系统的一部分、应用程序的一部分;等等,或者硬件和软件逻辑的某种组合,其可由处理器访问并且被配置成使处理器在由处理器执行时执行某种功能。软件逻辑可以存储在任何存储器类型的本地和/或远程存储器上,如本领域所公知的。可以使用本领域已知的任何处理器,诸如软件处理器模块和/或硬件处理器,诸如ASIC、FPGA、中央处理单元(CPU)、集成电路(IC)、图形处理单元(GPU)等。
图9示出了根据一种方法的网络架构900。如图9所示,提供了多个远程网络902,包括第一远程网络904和第二远程网络906。网关901可耦合在远程网络902与邻近网络908之间。在本网络架构900的上下文中,网络904、906可以各自采取任何形式,包括但不限于LAN、诸如因特网的WAN、公共交换电话网络(PSTN)、内部电话网络等。
在使用中,网关901用作从远程网络902到邻近网络908的入口点。这样,网关901可以用作能够引导到达网关901的给定数据分组的路由器,以及为给定分组提供进出网关901的实际路径的交换机。
进一步包括耦合到邻近网络908的至少一个数据服务器914,且其可经由网关901从远程网络902接入。应当注意,数据服务器914可以包括任何类型的计算设备/组件。多个用户设备916耦合到每个数据服务器914。这样的用户设备916可以包括台式计算机、膝上型计算机、手持式计算机、打印机和/或任何其他类型的包含逻辑的设备。应注意,在一些方法中,用户设备911也可直接耦合到网络中的任一者。
外围设备920或一系列外围设备920,例如传真机、打印机、扫描仪、硬盘驱动器、联网和/或本地数据存储单元或系统等,可以耦合到网络904、906、908中的一个或多个。应注意,数据库和/或额外组件可与耦合到网络904、906、908的任何类型的网络元件一起使用或集成到所述网络元件中。在本说明书的上下文中,网络元件可以指网络的任何组件。
根据一些方法,本文描述的方法和系统可以利用虚拟系统和/或仿真一个或多个其他系统的系统来实现和/或在虚拟系统和/或仿真一个或多个其他系统的系统上实现,诸如虚拟地托管MICROSOFT WINDOWS环境的UNIX系统等。在一些方法中,可以通过使用VMWARE软件来增强这种虚拟化和/或仿真。
在其他方法中,一个或多个网络904、906、908可以表示通常被称为“云”的系统的集群。在云计算中,诸如处理能力、外围设备、软件、数据、服务器等的共享资源以按需关系被提供给云中的任何系统,从而允许跨许多计算系统的服务的访问和分布。云计算通常涉及在云中操作的系统之间的因特网连接,但是如本领域已知的,也可以使用连接系统的其他技术。
图10示出了根据一种方法的与图9的用户设备916和/或服务器914相关联的代表性硬件环境。图10示出了根据一种方法的处理器系统1000的典型硬件配置,该处理器系统具有诸如微处理器的中央处理单元1010和经由系统总线1012互连的多个其他单元。在一些方法中,中央处理单元1010可以包括以上参考图2的一个或多个处理器210描述的任何方法。
图10所示的处理器系统1000包括RAM 1014、只读存储器(ROM)1016和I/O适配器1018。根据一些方法,其决不旨在限制本发明,I/O适配器1018可以包括以上参考图2的I/O适配器218描述的任何方法。仍然参考图10的处理器系统1000,前述的组件1014、1016、1018可以用于将诸如存储子系统1020的外围设备连接到总线1012。在一些方法中,存储子系统1020可以包括与图2的数据存储系统220类似和/或相同的配置,根据一个示例,其决不旨在限制本发明,存储子系统1020可以包括非易失性数据存储卡,例如,除了如图2所示的RAID控制器之外,还具有NVRAM存储卡、RAM、ROM和/或一些其他已知类型的非易失性存储器。
继续参考图10,用户接口适配器1022用于将键盘1024、鼠标1026、扬声器1028、麦克风1032和/或诸如触摸屏、数码相机(未示出)等的其他用户接口设备连接到总线1012。
处理器系统1000还包括将处理器系统1000连接到通信网络1035(例如,数据处理网络)的通信适配器1034,以及将总线1012连接到显示设备1038的显示适配器1036。
处理器系统1000可具有驻留于其上的操作系统,例如MICROSOFT WINDOWS操作系统(OS)、MAC OS、UNIX OS等。应当理解,优选方法也可以在除了所提及的那些之外的平台和操作系统上实现。优选的方法可以使用JAVA、XML、C和/或C++语言或其他编程语言连同面向对象的编程方法来编写。可以使用已经变得越来越多地用于开发复杂应用的面向对象编程(OOP)。
此外,图11示出了根据一种方法实现与较低级(例如磁带)存储层组合的高级(例如SSD)存储层的存储系统1100。注意,根据各种方法,图11中所示的一些元件可以被实现为硬件和/或软件。存储系统1100可以包括用于与至少一个较高存储层1102和至少一个较低存储层1106上的多个介质通信的存储系统管理器1112。然而,在其他方法中,存储系统管理器1112可以与至少一个较高存储层1102上但不在较低存储层上的多个介质通信。(一个或多个)较高存储层1102优选地可以包括一个或多个随机存取和/或直接存取介质1104,诸如硬盘、非易失性存储器(NVM)、NVRAM)、SSD中的固态存储器、闪存、SSD阵列、闪存阵列等和/或本文中提到的或本领域已知的其他介质。根据说明性示例,图3-4示出了取决于期望的方法可以用作较高存储层1102的SSD系统的示例性架构。
仍然参考图11,较低存储层1106优选地包括一个或多个较低性能存储介质1108,包括顺序存取介质,例如磁带驱动器中的磁带和/或光介质、较慢存取HDD、较慢存取SSD等,和/或本文所述或本领域已知的其他介质。一个或多个附加存储层1116可以包括系统1100的设计者所期望的存储存储器介质的任何组合。因此,在一些方法中,一个或多个附加存储层1116可以包括与图1-2中所示的那些类似或相同的SSD系统架构。
存储系统管理器1112可通过网络1110、例如图11所示的存储区域网络(SAN)或一些其他合适的网络类型与较高存储层1102和较低存储层1106上的存储介质1104、1108通信。存储系统管理器1112还可以通过主机接口1114与一个或多个主机系统(未示出)通信,该主机接口可以是或可以不是存储系统管理器1112的一部分。存储系统管理器1112和/或存储系统1100的任何其他组件可以以硬件和/或软件来实现,并且可以利用用于执行本领域已知类型的命令的处理器(未示出),诸如中央处理单元(CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。当然,可以使用存储系统的任何布置,如本领域技术人员在阅读本说明书时将显而易见的。
在更多的方法中,存储系统1100可以包括任意数量的数据存储层,并且可以在每个存储层内包括相同或不同的存储存储器介质。例如,每个数据存储层可以包括相同类型的存储存储器介质,例如HDD、SSD、顺序存取介质(磁带驱动器中的磁带、光盘驱动器中的光盘等)、直接存取介质(CD-ROM、DVD-ROM等)或介质存储类型的任何组合。在一个这样的配置中,较高存储层1102可以主要包括SSD存储介质,用于在较高性能存储环境中存储数据,并且剩余存储层、包括较低存储层1106和附加存储层1116可以包括SSD、HDD、磁带驱动器等的任何组合,用于在较低性能存储环境中存储数据。这样,更频繁访问的数据、具有更高优先级的数据、需要更快访问的数据等可以存储到较高存储层1102,而不具有这些属性之一的数据可以存储到包括较低存储层1106的附加存储层1116。当然,本领域技术人员在阅读本说明书时可以根据本文所提出的方法设计存储介质类型的许多其他组合以实现为不同的存储方案。
根据一些方法,存储系统(诸如1100)可以包括被配置为接收打开数据集的请求的逻辑、被配置为确定所请求的数据集是否在多个相关联的部分中被存储到分层数据存储系统1100的较低存储层1106的逻辑、被配置为将所请求的数据集的每个相关联的部分移动到分层数据存储系统1100的较高存储层1102的逻辑、以及被配置为从相关联的部分将所请求的数据集组合到分层数据存储系统1100的较高存储层1102上的逻辑。
当然,根据各种实施例,该逻辑可以被实现为任何设备和/或系统上的方法或计算机程序产品。
很清楚,前述系统和/或方法的各种特征可以以任何方式组合,从而从以上所呈现的描述中产生多个组合。
还应当理解,本发明的实施例可以以代表客户部署的服务的形式提供,以便按需提供服务。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。

Claims (25)

1.一种计算机实现的方法,包括,对于存储器块中的每个页:
使用第一校准方案来校准所述块中的给定页,其中所述第一校准方案被配置为计算存储器块中的页的第一数目的独立读取电压偏移值及第一数目的公共读取电压偏移值;
尝试读取所述经校准的给定页;
响应于确定在尝试读取所述经校准的给定页时发生错误校正码失败,使用第二校准方案来重新校准所述块中的所述给定页,其中所述第二校准方案被配置为计算存储器块中的页的第二数目的独立读取电压偏移值及第二数目的公共读取电压偏移值;
尝试读取所述重新校准的给定页;以及
响应于确定在尝试读取所述重新校准的给定页时确实发生错误校正码失败,发送一个或多个指令以重定位存储在所述给定页中的数据,
其中所述第一数目的独立读取电压偏移值少于所述第二数目的独立读取电压偏移值。
2.根据权利要求1所述的计算机实现的方法,包括:
响应于确定在尝试读取所述经校准的给定页时未发生错误校正码失败,确定对应于所述给定页的错误计数是否在第一预定范围中;以及
响应于确定对应于所述给定页的所述错误计数在所述第一预定范围中,使用所述第二校准方案来重新校准所述块中的所述给定页。
3.根据权利要求1所述的计算机实现的方法,包括:
响应于确定在尝试读取所述重新校准的给定页时未发生错误校正码失败,确定对应于所述给定页的错误计数是否在第二预定范围中;以及
响应于确定对应于所述给定页的所述错误计数在所述第二预定范围中,发送一个或多个指令以重定位存储在所述给定页中的数据。
4.根据权利要求3所述的计算机实现的方法,包括:
响应于确定对应于所述给定页的所述错误计数不在所述第二预定范围中,递增对应于所述给定页的错误恢复计数器;
确定对应于所述给定页的所述错误恢复计数器是否在第三预定范围中;以及
响应于确定对应于所述给定页的所述错误恢复计数器在所述第三预定范围中,发送一个或多个指令以重定位存储在所述给定页中的数据。
5.根据权利要求1所述的计算机实现的方法,其中使用所述第一校准方案来校准所述块中的所述给定页包括:
确定与对应于所述给定页的页类型相关联的一个或多个读取电压;
确定对应于所述一个或多个读取电压的一个或多个现有读取电压偏移值;
计算所述现有读取电压偏移值中的每一者的校正偏移;以及
使用所述校正偏移来更新所述现有读取电压偏移值。
6.根据权利要求5所述的计算机实现的方法,其中,所述校正偏移用于基于在所述校正偏移和所述现有读取电压偏移值之间延伸的第一映射关系来更新所述现有读取电压偏移值,其中,所述第一映射关系对应于所述第一校准方案。
7.根据权利要求1所述的计算机实现的方法,其中使用所述第二校准方案来校准所述块中的所述给定页包括:
确定与对应于所述给定页的页类型相关联的一个或多个读取电压;
确定对应于所述一个或多个读取电压的一个或多个现有读取电压偏移值;
计算所述现有读取电压偏移值中的每一者的校正偏移;以及
使用所述校正偏移来更新所述现有读取电压偏移值。
8.根据权利要求7所述的计算机实现的方法,其中,所述校正偏移用于基于在所述校正偏移和所述现有读取电压偏移值之间延伸的第二映射关系来更新所述现有读取电压偏移值,其中,所述第二映射关系对应于所述第二校准方案。
9.根据权利要求1所述的计算机实现的方法,其中所述存储器是三维四电平单元NAND闪存。
10.一种计算机程序产品,包括具有与其一起体现的程序指令的计算机可读存储介质,所述程序指令可由处理器读取和/或执行以使所述处理器针对存储器块中的每个页:
由所述处理器使用第一校准方案来校准所述块中的给定页,其中所述第一校准方案被配置为校准存储器块中的页的第一数目的独立读取电压偏移值及第一数目的公共读取电压偏移值;
由所述处理器尝试读取所述经校准的给定页;
响应于确定在尝试读取所述经校准的给定页时发生错误校正码失败,由所述处理器使用第二校准方案来重新校准所述块中的所述给定页,其中所述第二校准方案被配置为校准存储器块中的页的第二数目的独立读取电压偏移值及第二数目的公共读取电压偏移值;
由所述处理器尝试读取所述重新校准的给定页;以及
响应于确定在尝试读取所述重新校准的给定页时确实发生错误校正码失败,由所述处理器发送一个或多个指令以重定位存储在所述给定页中的数据,
其中所述第一数目的独立读取电压偏移值少于所述第二数目的独立读取电压偏移值。
11.根据权利要求10所述的计算机程序产品,其中,所述程序指令可由处理器读取和/或执行以使所述处理器:
响应于确定在尝试读取所述经校准的给定页时未发生错误校正码失败,由所述处理器确定对应于所述给定页的错误计数是否在第一预定范围中;以及
响应于确定对应于所述给定页的所述错误计数在所述第一预定范围中,由所述处理器使用所述第二校准方案来重新校准所述块中的所述给定页。
12.根据权利要求10所述的计算机程序产品,其中,所述程序指令可由处理器读取和/或执行以使所述处理器:
响应于确定在尝试读取所述重新校准的给定页时未发生错误校正码失败,由所述处理器确定对应于所述给定页的错误计数是否在第二预定范围中;以及
响应于确定对应于所述给定页的所述错误计数在所述第二预定范围中,由所述处理器发送一个或多个指令以重定位存储在所述给定页中的数据。
13.根据权利要求12所述的计算机程序产品,其中,所述程序指令可由处理器读取和/或执行以使所述处理器:
响应于确定对应于所述给定页的所述错误计数不在所述第二预定范围中,由所述处理器递增对应于所述给定页的错误恢复计数器;
由所述处理器确定对应于所述给定页的所述错误恢复计数器是否在第三预定范围中;以及
响应于确定对应于所述给定页的所述错误恢复计数器在所述第三预定范围中,由所述处理器发送一个或多个指令以重定位存储在所述给定页中的数据。
14.根据权利要求10所述的计算机程序产品,其中使用所述第一校准方案来校准所述块中的所述给定页包括:
确定与对应于所述给定页的页类型相关联的一个或多个读取电压;
确定对应于所述一个或多个读取电压的一个或多个现有读取电压偏移值;
计算所述现有读取电压偏移值中的每一者的校正偏移;以及
使用所述校正偏移来更新所述现有读取电压偏移值。
15.根据权利要求14所述的计算机程序产品,其中,所述校正偏移用于基于在所述校正偏移与所述现有读取电压偏移值之间延伸的第一映射关系来更新所述现有读取电压偏移值,其中,所述第一映射关系对应于所述第一校准方案。
16.根据权利要求10所述的计算机程序产品,其中使用所述第二校准方案来校准所述块中的所述给定页包括:
确定与对应于所述给定页的页类型相关联的一或多个读取电压;
确定对应于所述一个或多个读取电压的一个或多个现有读取电压偏移值;
计算所述现有读取电压偏移值中的每一者的校正偏移;以及
使用所述校正偏移来更新所述现有读取电压偏移值。
17.根据权利要求16所述的计算机程序产品,其中,所述校正偏移用于基于在所述校正偏移与所述现有读取电压偏移值之间延伸的第二映射关系来更新所述现有读取电压偏移值,其中,所述第二映射关系对应于所述第二校准方案。
18.根据权利要求10所述的计算机程序产品,其中所述存储器是三维四电平单元NAND闪存。
19.一种系统,包括:
多个非易失性随机存取存储器(NVRAM)块,其被配置为存储数据;
处理器;以及
与所述处理器集成和/或可由所述处理器集成的逻辑,所述逻辑被配置为,对于所述块中的一个块中的每个页:
由所述处理器使用第一校准方案来校准所述块中的给定页,其中所述第一校准方案被配置为校准存储器块中的页的第一数目的独立读取电压偏移值及第一数目的公共读取电压;
由所述处理器尝试读取所述经校准的给定页;
响应于确定在尝试读取所述经校准的给定页时发生错误校正码失败,由所述处理器使用第二校准方案来重新校准所述块中的所述给定页,其中所述第二校准方案被配置为校准存储器块中的页的第二数目的独立读取电压偏移值及第二数目的公共读取电压;
由所述处理器尝试读取所述重新校准的给定页;以及
响应于确定在尝试读取所述重新校准的给定页时确实发生错误校正码失败,由所述处理器发送一个或多个指令以重定位存储在所述给定页中的数据,
其中所述第一数目的独立读取电压偏移值少于所述第二数目的独立读取电压偏移值。
20.根据权利要求19所述的系统,所述逻辑被配置为:
响应于确定在尝试读取所述经校准的给定页时未发生错误校正码失败,由所述处理器确定对应于所述给定页的错误计数是否在第一预定范围中;以及
响应于确定对应于所述给定页的所述错误计数在所述第一预定范围中,由所述处理器使用所述第二校准方案来重新校准所述块中的所述给定页。
21.根据权利要求19所述的系统,所述逻辑被配置为:
响应于确定在尝试读取所述重新校准的给定页时未发生错误校正码失败,由所述处理器确定对应于所述给定页的错误计数是否在第二预定范围中;以及
响应于确定对应于所述给定页的所述错误计数在所述第二预定范围中,由所述处理器发送一个或多个指令以重定位存储在所述给定页中的数据。
22.根据权利要求19所述的系统,所述逻辑被配置为:
响应于确定对应于所述给定页的所述错误计数不在所述第二预定范围中,由所述处理器递增对应于所述给定页的错误恢复计数器;
由所述处理器确定对应于所述给定页的所述错误恢复计数器是否在第三预定范围中;以及
响应于确定对应于所述给定页的所述错误恢复计数器在所述第三预定范围中,由所述处理器发送一个或多个指令以重定位存储在所述给定页中的数据。
23.根据权利要求19所述的系统,其中所述存储器是三维四电平单元NAND闪存。
24.根据权利要求19所述的系统,其中使用所述第一校准方案来校准所述块中的所述给定页包含:
确定与对应于所述给定页的页类型相关联的一个或多个读取电压;
确定对应于所述一个或多个读取电压的一个或多个现有读取电压偏移值;
计算所述现有读取电压偏移值中的每一者的校正偏移;以及
使用所述校正偏移来更新所述现有读取电压偏移值。
25.根据权利要求24所述的系统,其中,所述校正偏移用于基于在所述校正偏移与所述现有读取电压偏移值之间延伸的第一映射关系来更新所述现有读取电压偏移值,其中,所述第一映射关系对应于所述第一校准方案。
CN202080073128.4A 2019-10-30 2020-10-16 更新非易失性随机存取存储器中的校正读取电压偏移 Pending CN114556303A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/669,264 2019-10-30
US16/669,264 US11056199B2 (en) 2019-10-30 2019-10-30 Updating corrective read voltage offsets in non-volatile random access memory
PCT/IB2020/059745 WO2021084365A1 (en) 2019-10-30 2020-10-16 Updating corrective read voltage offsets in non-volatile random access memory

Publications (1)

Publication Number Publication Date
CN114556303A true CN114556303A (zh) 2022-05-27

Family

ID=75687722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080073128.4A Pending CN114556303A (zh) 2019-10-30 2020-10-16 更新非易失性随机存取存储器中的校正读取电压偏移

Country Status (6)

Country Link
US (1) US11056199B2 (zh)
JP (1) JP2023500617A (zh)
CN (1) CN114556303A (zh)
DE (1) DE112020005350T5 (zh)
GB (1) GB2604517B (zh)
WO (1) WO2021084365A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11264103B2 (en) * 2019-08-28 2022-03-01 International Business Machines Corporation Hybrid read voltage calibration in non-volatile random access memory
US11398289B2 (en) 2020-01-27 2022-07-26 Stmicroelectronics International N.V. Memory calibration device, system and method
US11923025B2 (en) * 2020-12-22 2024-03-05 Kioxia Corporation Generation of programming parameters for non-volatile memory device based on physical device parameters
CN114296645B (zh) * 2021-12-17 2024-01-02 合肥大唐存储科技有限公司 一种Nand闪存中重读方法和固态硬盘
US11875831B2 (en) 2021-12-27 2024-01-16 International Business Machines Corporation Page group read voltage threshold calibration
CN116665761B (zh) * 2023-05-24 2024-01-23 珠海妙存科技有限公司 数据分析方法、数据分析装置、电子设备和存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101578511B1 (ko) 2009-05-20 2015-12-18 삼성전자주식회사 리드 전압 설정 방법
US8407564B2 (en) 2009-07-15 2013-03-26 Intel Corporation Prediction and cancellation of systematic noise sources in non-volatile memory
US8072805B2 (en) * 2009-08-18 2011-12-06 Skymedi Corporation Method and system of finding a read voltage for a flash memory
US9367391B2 (en) 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
US9905302B2 (en) * 2014-11-20 2018-02-27 Western Digital Technologies, Inc. Read level grouping algorithms for increased flash performance
US9576671B2 (en) * 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
KR102420588B1 (ko) * 2015-12-04 2022-07-13 삼성전자주식회사 비휘발성 메모리 장치, 메모리 시스템, 비휘발성 메모리 장치의 동작 방법 및 메모리 시스템의 동작 방법
US9996281B2 (en) 2016-03-04 2018-06-12 Western Digital Technologies, Inc. Temperature variation compensation
US10446255B2 (en) 2016-06-13 2019-10-15 International Business Machines Corporation Reference voltage calibration in memory during runtime
US10236067B2 (en) 2017-08-02 2019-03-19 International Business Machines Corporation State-dependent read voltage threshold adaptation for nonvolatile memory
US10199111B1 (en) 2017-08-04 2019-02-05 Micron Technology, Inc. Memory devices with read level calibration
US10268407B1 (en) 2017-09-29 2019-04-23 Intel Corporation Method and apparatus for specifying read voltage offsets for a read command
US10453537B1 (en) * 2018-05-10 2019-10-22 International Business Machines Corporation Techniques for reducing read voltage threshold calibration in non-volatile memory
US10699791B2 (en) * 2018-08-24 2020-06-30 International Business Machines Corporation Adaptive read voltage threshold calibration in non-volatile memory

Also Published As

Publication number Publication date
GB2604517B (en) 2023-08-02
JP2023500617A (ja) 2023-01-10
US11056199B2 (en) 2021-07-06
GB2604517A (en) 2022-09-07
WO2021084365A1 (en) 2021-05-06
GB202207336D0 (en) 2022-07-06
US20210134377A1 (en) 2021-05-06
DE112020005350T5 (de) 2022-08-11

Similar Documents

Publication Publication Date Title
CN112447245B (zh) 非易失性随机存取存储器中的混合读取电压校准
US11023150B2 (en) Block mode toggling using hybrid controllers
US11048571B2 (en) Selectively performing multi-plane read operations in non-volatile memory
US11056199B2 (en) Updating corrective read voltage offsets in non-volatile random access memory
US11086705B2 (en) Managing the reliability of pages in non-volatile random access memory
US11302403B2 (en) Calculating corrective read voltage offsets in non-volatile random access memory
US11086565B2 (en) Reducing effects of read array operations of read apparent voltage
US11360903B2 (en) Data placement in write cache architecture supporting read heat data separation
US20210004158A1 (en) Adapting memory block pool sizes using hybrid controllers
US11036415B2 (en) Managing memory block calibration based on priority levels
US11151053B2 (en) Increasing data read and/or write heat tracking resolution in storage devices having cache architecture
US10942662B2 (en) Relocating and/or re-programming blocks of storage space based on calibration frequency and resource utilization
US11119855B2 (en) Selectively storing parity data in different types of memory
US10783024B2 (en) Reducing block calibration overhead using read error triage
JP7496841B2 (ja) 読出しヒート・データ分離をサポートしている書込みキャッシュ・アーキテクチャ内でのデータ配置

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