CN114631147A - 计算非易失性随机存取存储器中的校正读取电压偏移 - Google Patents
计算非易失性随机存取存储器中的校正读取电压偏移 Download PDFInfo
- Publication number
- CN114631147A CN114631147A CN202080074453.2A CN202080074453A CN114631147A CN 114631147 A CN114631147 A CN 114631147A CN 202080074453 A CN202080074453 A CN 202080074453A CN 114631147 A CN114631147 A CN 114631147A
- Authority
- CN
- China
- Prior art keywords
- block
- shift value
- read
- operating state
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- 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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3422—Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem
-
- 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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits 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
-
- 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/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- 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/06—Auxiliary circuits, e.g. for writing into memory
-
- 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/08—Address circuits; Decoders; Word-line control 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
- 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
-
- 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/563—Multilevel memory reading aspects
- G11C2211/5634—Reference cells
-
- 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/5648—Multilevel 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)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
根据一种方法,一种计算机实现的方法用于校准存储器块的读取电压。该计算机实现的方法包括:确定其中包括一个以上字线的块的当前操作状态,并且其中一个以上读取电压与所述字线中的每一个相关联。此外,对于块中的字线中的每一个:选择与给定字线相关联的读取电压之一作为参考读取电压,并且计算参考读取电压的绝对移位值。确定与给定字线相关联的剩余读取电压中的每一个的相对移位值,其中,相对于参考读取电压确定相对移位值。此外,使用绝对移位值和相应相对移位值中的每一个来调整与给定字线相关联的读取电压中的每一个。
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个)以读取包括在其中的任何页。此外,随着垂直堆叠和工艺技术的改进,每个新一代3-D NAND闪存中的层的数目也增加。随后,每个块中的页数也增加。举例来说,当前3-D QLC NAND闪存可具有多于90个层且每一块可具有多于4000个页。因此,如果独立地(或单个地)校准3-D QLCNAND中的所有这些15个不同读取电压,则在一块中存储每一页或页群组的单个读取偏移值组所涉及的元数据量及每页的校准读取次数显著增加。
随着存储器的存储容量持续增加,与存储器相关联的可靠性问题也增加。因此,除了与存储器的每一块中的每一页相关联的读取电压偏移值的数目增加之外,常规校准引擎还经历由存储器的可靠性下降所引起的处理开销量的增加。
发明内容
根据一种方法,一种计算机实现的方法用于校准存储器块的读取电压。该计算机实现的方法包括:确定其中包括一个以上字线的块的当前操作状态,并且其中一个以上读取电压与所述字线中的每一个相关联。此外,对于块中的字线中的每一个:选择与给定字线相关联的读取电压之一作为参考读取电压,并且计算参考读取电压的绝对移位值。确定与给定字线相关联的剩余读取电压中的每一个的相对移位值,其中,相对于参考读取电压确定相对移位值。此外,使用绝对移位值和相应相对移位值中的每一个来调整与给定字线相关联的读取电压中的每一个。
由此,作为实际上仅计算电压移位值之一的结果,计算机实现的方法能够确定与给定字线和/或页组相关联的所有读取电压的电压移位值。这显著地减少了处理开销和性能延迟,同时还确保了高读取性能和高效的存储器使用。在一些情况下,这些显著改进是由于实施能够认识到在设备操作状态的某些边界的情况下保持读取电压之间的相对移位的过程而实现,例如,如下文将进一步详细描述的。
继续参考上述计算机实现的方法,在一些情况下,确定与给定字线相关联的剩余读取电压中的每一个的相对移位值的过程包括:将所述块的当前操作状态与多个预定操作状态中的对应一个相匹配。此外,从分配给匹配的预定操作状态的预定电压映射提取相对移位值。此外,根据一些情况,使用对应于块的当前操作状态的预定电压映射来确定剩余读取电压的相对移位值。
由此,可以使用与块的当前操作状态相对应的预定电压映射,针对剩余的读取电压来确定给定字线的相对移位值。例如,当前正被校准的块的当前操作状态可以与多个预定操作状态中的对应一个匹配。此外,相对移位值可以简单地从分配给匹配的预定操作状态的预定电压映射中提取。这最终允许作为仅计算移位值之一的结果来确定与给定字线相关联的所有读取电压的电压移位值,例如,如将在下面进一步详细描述的。这进一步减少了处理开销和性能延迟,同时还确保了高读取性能和高效的存储器使用。
根据另一种方法,一种计算机程序产品用于校准存储器块的读取电压。该计算机程序产品包括具有程序指令的计算机可读存储介质。此外,所述程序指令可由处理器读取和/或可由处理器执行以使所述处理器:执行前述方法。
根据又一方法,一种系统包括:多个NVRAM块,其被配置为存储数据;处理器;以及逻辑,其与所述处理器集成和/或可由所述处理器执行。所述逻辑被配置为,对于所述块中的每个块:执行前述方法。
根据另一种方法,一种计算机实现的方法用于校准存储器块的读取电压。该计算机实现的方法包括:确定其中包含一个以上类型的页的块的当前操作状态,且其中至少一个读取电压与所述页类型中的每一个相关联。此外,对于块中的每个字线:基于相应的页类型将读取电压划分为组。此外,对于给定字线中的每组读取电压:选择给定组中的读取电压之一作为参考读取电压。还计算参考读取电压的绝对移位值。确定给定组中的每个剩余读取电压的相对移位值,其中,相对移位值是相对于参考读取电压确定的。此外,使用绝对移位值和相应相对移位值中的每一个来调整给定组中的读取电压中的每一个。
由此,作为实际上仅计算电压移位值之一的结果,该计算机实现的方法还能够确定与给定字线和/或页组相关联的所有读取电压的电压移位值。这显著地减少了处理开销和性能延迟,同时还确保了高读取性能和高效的存储器使用。在一些情况下,这些显著改进是由于实施能够认识到在设备操作状态的某些边界的情况下保持读取电压之间的相对移位的过程而实现,例如,如下文将进一步详细描述的。
从以下详细描述中,本发明的其他方面和实施例将变得显而易见,当结合附图时,以下详细描述通过示例的方式示出了本发明的原理。
附图说明
图1是根据一种方法的非易失性存储卡的示意图;
图2是根据一种方法的数据存储系统体系结构的示意图;
图3是根据一种方法的系统图;
图4A是根据一种方法的包括块-条带和页-条带的概念图;
图4B是根据一种方法的3-D非易失性存储器结构的局部透视图;
图5是示出根据一种方法的阈值电压移位现象的曲线图;
图6A是根据一种方法的方法流程图;
图6B是根据一种方法的方法流程图;
图7是根据一种方法的呈现多个操作状态的表;
图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)。此外,QLCNAND闪存的给定块中的每个不同类型的页具有与其对应的不同组读取电压。根据一实例(其决不打算限制本发明),下部页对应于V8读取电压,上部页对应于V4及V12读取电压,额外页对应于V2、V6、V10及V14读取电压,而顶部页对应于V1、V3、V5、V7、V9、V11、V13及V15读取电压。
实线分布502指示编程之后的VTH电平。垂直实线504指示对于VTH分布502最佳的读取电压(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闪存等,或任何其他期望类型的存储器。此外,如本领域技术人员在阅读本说明书时将理解的,方法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还包括确定是否应当重新校准给定存储器块。在一些方法中,可以实现标识何时以及是否应当重新校准特定块的标准。例如,在经历了预定数量的P/E循环(例如,500个P/E循环)、经历了不期望的低性能度量(例如,表现出预定错误计数阈值的位错误的数量)、自上一次重新校准以来已经过去了预定的时间量等之后,可以重新校准块。这允许所经历的计算开销的量的一些减少,例如,如本领域技术人员在阅读本描述之后将理解的。
响应于确定给定存储器块不应由于任何原因而重新校准,方法600返回到操作602,借此前进到下一块,然后重复决策604。然而,响应于确定给定存储器块应当被重新校准,方法600进行到操作606。在那里,操作606包括确定给定存储器块的当前操作状态。
可基于各种类型的可用信息(例如,包含对应于所述块的统计)来确定此操作状态。例如,包括P/E循环计数器值、读取干扰计数器值、由保持定时器维持的保持时间量、打开/关闭块状态(即,给定块是部分还是完全编程的)、块中的编程页的数目、操作温度等的块统计可用于确定块的当前操作状态。存储器的给定块可能正经历的当前操作状态的说明性列表包含(但决不限于)保持状态、读取干扰状态、循环状态、打开和/或关闭状态(例如,所述块中的部分或全部页是否已被编程)等,和/或其任何组合。
给定块可能正在经历的操作状态可提供描述阈值电压(图5中的L0-L15)的状态且因此描述对应于给定块的相应读取电压(图5中的V1-V15)所需的调整的信息。这主要是因为给定字线的阈值电压在暴露于相同或类似操作条件时经历类似的损耗机制,例如至少相对于彼此,且因此相应读取电压需要类似的移位或调整。换句话说,给定字线的阈值电压中的每一者将响应于经受给定集合的操作条件而经历相应移位。虽然这些移位对于同一字线中的每个阈值电压通常不是相同值,但是它们之间的相对差异是可预测地可重复的。举例来说,每当字线在随后遇到相同或类似的操作条件集合时,可以预测,每一相应阈值电压所经历的相对阈值电压移位以及导致阈值电压移位的相对读取电压移位将与先前遇到的相同。
根据一个示例,其决不旨在限制本发明,在给定块B上执行的测试揭示,当处于特定操作状态S1时,第一读取电压经历-4的移位,第二读取电压经历-8的移位,且第三读取电压经历-2的移位。这些移位值中的每一个之间的关系可以由此存储在存储器中,指示对于操作状态S1,块B作出反应,使得第一读取电压经历是第二读取电压的移位的一半的移位,并且第三读取电压经历是第二读取电压的移位的四分之一的移位。因此,下一次块B经历操作状态S1时,可以预测第一、第二和第三读取电压将经历相同的相对移位,而不执行任何校准、计算等。类似地,具有相同操作状态S1的另一个块C也可以受益于这样的预测,即其第一、第二和第三读取电压将经历与块B经历的相同的相对移位,而不执行任何校准、计算等。
因此,可以在多个不同的操作状态下测试块,以便确定对于其每个读取电压发生的相对变化。这些相对变化也可存储在存储器中(例如,作为查找表中的预定电压映射),使得可简单地从存储器提取处于相同或类似操作状态的块的读取电压移位值,例如,如下文将进一步详细描述的。尽管相对读取电压移位可以存储在存储器中以供将来使用,但是这些读取电压移位仅相对于彼此来表示。因此,相对读取电压移位不能确定已经经历的任何实际读取电压移位值。然而,通过计算一个读取电压的实际读取电压移位值,相对读取电压移位可以用于推断其余读取电压的实际读取电压移位值,例如,如不久将变得显而易见的。
再次返回图6A,方法600从操作606前进到操作608。在那里,操作608包括前进到正被评估的当前块中的下一字线。如前所述,“下一字线”可以根据给定的方法而变化。例如,在操作608的初始迭代期间,块的下一字线可以简单地是第一字线。在其它方法中,下一字线可以是块中的下一逻辑字线。此外,操作608可以以任何期望的方式在字线之间进行,例如,顺序地、随机地、使用模式等。
操作610还包括选择与给定字线相关联的读取电压之一作为参考读取电压,而操作612包括计算参考读取电压的绝对移位值。如上所述,通过计算一个读取电压(这里是“参考读取电压”)的实际读取电压移位值(这里是“绝对移位值”),相对读取电压移位可用于推断其余读取电压的实际读取电压移位值。
例如,取决于期望的方法,可以选择与给定字线相关联的读取电压中的任何一个作为参考读取电压。例如,在一些方法中,最右边的读取电压(例如,最高读取电压)可以被选择为参考读取电压,而在其他方法中,最左边的读取电压(例如,最低读取电压)可以被选择为参考读取电压。在其他方法中,可以选择字线的读取电压中的随机一个、预测为经历字线的最大电压移位值的读取电压、由用户选择的读取电压等作为参考读取电压。参考读取电压的绝对移位值也可使用所属领域的技术人员在阅读本描述之后将明了的任何过程来计算。
进行到操作614,方法600包括确定与给定字线相关联的剩余读取电压中的每一个的相对电压移位值。如上所述,与给定字线相关联的读取电压的相对移位值优选地基于测试、建模、分析过去的性能等而已知。由此,参考读取电压的绝对移位值可以与相对移位值结合使用,以推断剩余读取电压的实际读取电压移位值。换句话说,相对移位值是相对于参考读取电压而确定的。
在一些方法中,相对移位值被并入预定电压映射中。对于首要块的给定操作状态,预定电压映射将相对移位值与相应读取电压中的每一个相关联。例如,暂时参考图8A,表800描绘了说明性的电压映射。如图所示,每个操作状态s1、s2、…、sN具有与其对应的多个相对移位值(例如,a(2,5))。每个相对移位值进一步与相应的读取电压(例如,V5)相关。
由此,在方法600的操作614中,可以使用与块的当前操作状态相对应的预定电压映射,针对剩余的读取电压来确定给定字线的相对移位值。例如,当前正被校准的块的当前操作状态可以与多个预定操作状态中的相应一个匹配,例如,如图8A的表800中所见。此外,相对移位值可以简单地从分配给匹配的预定操作状态的预定电压映射中提取。这最终允许作为仅计算移位值之一的结果来确定与给定字线相关联的所有读取电压的电压移位值,例如,如将在下面进一步详细描述的。这显著地减少了处理开销和性能延迟,同时还确保了高读取性能和高效的存储器使用。
继续参考图6A,操作616包括使用绝对移位值和相应的相对移位值中的每一个来调整与给定字线相关联的读取电压中的每一个。如上所述,相对移位值是相对于针对参考读取电压计算的绝对移位值。因此,可以通过将相应的相对移位值应用于绝对移位值并且将得到的移位值应用于给定读取电压来调整读取电压中的每一个(除了参考读取电压之外)。
返回到上文关于块B所呈现的示例,可将第二读取电压指定为参考读取电压。结果,将为第二读取电压计算绝对移位值-8,指示应将-8的移位施加到其读取电压。使用该绝对移位值-8,第一读取电压的1/2的相对移位值和第三读取电压的1/4的相对移位值指示,实际移位值-4应当被施加到第一读取电压,而实际移位值-2应当被施加到第三读取电压。
在一些方法中,在操作616中,还将绝对移位值应用于参考读取电压。然而,在其它方法中,可将绝对移位值应用于参考读取电压作为执行以上操作612中的计算的一部分。绝对移位值和/或其它所得移位值可以所属领域的技术人员在阅读本描述之后将明了的方式施加到相应读取电压。例如,在一些方法中,移位值可以存储在存储器中、发送到存储器控制器以便应用、用于实际调整相应的读取电压等。
方法从操作616前进到操作618,其包括递增字线计数器。如上所述,方法600优选地用于校准存储器中的各种块,以及校准每一块中的每一字线。由此,字线计数器可以用于跟踪在给定块中已经评估了多少字线。还应当注意,例如,根据该方法,可以以任何期望的单位来递增字线计数器。此外,对于被校准的每个块,字线计数器优选地被复位到基值(例如,0)。
进行到决策620,作出关于字线计数器是否大于包含在当前正被校准的块中的字线的数目的确定。换句话说,决策620确定是否已评估当前块中的字线中的每一者。响应于确定字线计数器不大于块中所包括的字线的数目,方法600返回到操作608,使得可评估下一字线,例如,如上文所描述的。由此,可以以迭代的方式对块中的每个字线重复过程608-620。
返回到决策620,方法600响应于确定字线计数器大于块中所包含的字线的数目而返回到操作602。换句话说,方法600返回到操作602,使得下一块可被校准。由此,可以以迭代的方式对存储器中的每个块重复过程602-620。结果,方法600中的各种过程能够显著地减少所经历的校准开销,特别是与可能经历百分之几百的更多校准开销的常规过程相比。
虽然方法600涉及计算每个字线中的一个参考读取电压的绝对移位值,但是作为基于页类型进一步划分给定字线中的读取电压的结果,可以实现类似的改进。例如,现在参见图6B,根据一种方法示出了用于校准以每单元多位模式配置的存储器块的读取电压的另一方法650。然而,应注意,图6B的方法650包括图6A的方法600的变化,其描绘用于校准存储器块的读取电压的过程的若干示范性配置。因此,图6B的各种过程具有与图6A的过程相同的编号。因此,方法650中包括的任何一个或多个过程可以实现以上关于方法600中包括的那些过程描述的任何一个或多个方法。
根据本发明,方法650可以在图1-5中描述的任何环境中执行,其中,可以以各种方法执行。例如,方法650中包括的任何过程可相对于NVRAM中的存储空间的块来执行,例如3-D TLC NAND闪存、3-D QLC NAND闪存等,或任何其它期望类型的存储器。此外,如本领域技术人员在阅读本说明书时将理解的,方法650中可以包括比图6B中具体描述的操作更多或更少的操作。
方法650的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种方法中,方法650可以部分地或完全地由控制器(例如,闪存控制器)、处理器、计算机等或其中具有一个或多个处理器的一些其他设备来执行。因此,在一些方法中,方法650可以是计算机实现的方法。还应当注意,关于这里的任何方法,术语计算机、处理器和控制器可以互换使用,这样的组件被认为是本发明的许多不同排列中的等价物。
此外,对于具有处理器的那些方法,处理器是例如以硬件和/或软件实现的处理电路、芯片和/或模块,并且优选地具有至少一个硬件组件,可以在任何设备中使用该处理器来执行方法650的一个或多个步骤。说明性处理器包括但不限于中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其它合适的计算设备。
如图6B所示,方法650的操作602包括前进到下一存储器块。如上所述,对于本说明书,“下一存储器块”可以根据给定的方法而变化。方法650从操作602前进到决策604,其确定是否应当重新校准给定的存储器块。
响应于确定给定存储器块不应由于任何原因而重新校准,方法650返回到操作602,由此前进到下一块,然后重复决策604。然而,响应于确定给定存储器块应当被重新校准,方法650进行到操作606。在那里,操作606包括例如根据上述方法中的任何一种来确定存储器的给定块的当前操作状态。此外,操作608包括前进到正被评估的当前块中的下一字线。如前所述,“下一字线”可以根据给定的方法而变化。
方法650进一步包括基于相应的页类型将对应于当前字线的读取电压划分成组。见操作652。优选地,划分读取电压,使得给定组中的每个读取电压对应于相同的页类型。例如,第一组中的每个读取电压可以对应于给定字线中的顶部页,而第二组中的每个读取电压可以对应于给定字线中的额外页。可以根据方法来不同地指定组。例如,在一些方法中,可以通过设置对应的标志、在一个或多个不同的表中列出读取电压、向读取电压分配标识符等来将读取电压中的每一个分配给给定组。
响应于基于页类型将读取电压分成多个组,优选地单独和/或并行地评估每个组,然后进行到下一字线。因此,操作654包括前进到下一组读取电压。如上所述,取决于期望的方法,“下一组”读取电压可以简单地是第一组、下一组、最后一组、这些组中的随机一组等。
方法650从操作654进行到操作656,其进一步包括选择给定组中的读取电压之一作为参考读取电压。如上所述,例如,根据期望的方法,可以选择给定组中的任何一个读取电压作为参考读取电压。例如,在一些方法中,可以选择该组中的第一读取电压作为参考读取电压,而在其他方法中,可以选择该组中的最左读取电压(例如,最低读取电压)作为参考读取电压。在其他方法中,可以选择组中的读取电压中的随机一个、预测经历组的最大电压移位值的读取电压、由用户选择的读取电压等作为参考读取电压。
操作612进一步包括计算参考读取电压的绝对移位值,而操作658包括确定给定组中的剩余读取电压中的每一者的相对电压移位值。由此,可按原样修改及/或实施上文相对于操作614所描述的方法中的任一个或多个,以便针对给定组中的剩余读取电压执行操作658,例如,如所属领域的技术人员在阅读本描述之后将了解的。
例如,在优选方法中,通过将块的当前操作状态和给定组中的页的类型与多个预定操作状态中的对应一个匹配来确定给定组中的剩余读取电压中的每一个的相对电压移位值。此外,优选地从预定电压映射提取相对移位值,该预定电压映射被分配给匹配的预定操作状态并且对应于给定组中的页的类型。由此,对应于给定组的特定页类型对所确定的相对电压移位值有影响。暂时参考图8B,表830、840、850、860描绘了说明性电压映射,每个对应于不同的页类型。由此,表830、840、850、860中的每一个可以对应于给定字线的不同组的页类型。如图所示,每个页类型LP、UP、XP、TP的每个操作状态s1、s2、…、sN具有与其对应的多个相对移位值(例如,表860中的a(2,5))。相对移位值中的每一者进一步与相应读取电压(例如,表860中的V5)相关。
如上所述,在方法650的操作658中,可使用对应于块的当前操作状态以及给定组中的页类型的预定电压映射来针对剩余读取电压确定给定组的页的相对移位值。例如,当前正被校准的块的当前操作状态可以与多个预定操作状态中的对应的一个匹配。预定操作状态可进一步具有与其相关联的一个以上电压映射,其中所述电压映射中的每一者对应于页类型中的一个不同的页类型,例如,如图8B的表830、840、850、860中所见。此外,相对移位值可简单地从分配给匹配的预定操作状态和页类型的预定电压映射提取。这最终允许作为实际上仅计算移位值之一的结果来确定与给定组相关联的所有读取电压的电压移位值,例如,如以下将进一步详细描述的。这显著地减少了处理开销和性能延迟,同时还确保了高读取性能和高效的存储器使用。
继续参考图6B,操作660包括使用绝对移位值和相应的相对移位值中的每一个来调整给定组中的读取电压中的每一个。如上文所提及,相对移位值是相对于针对给定组的参考读取电压而计算的绝对移位值的。因此,可以通过将相应的相对移位值应用于绝对移位值并且将得到的移位值应用于给定读取电压来调整该组中的每个读取电压(除了参考读取电压之外)。再次,由此,以上关于操作616描述的任何一个或多个方法可被修改和/或按原样实现以执行操作660,例如,如本领域技术人员在阅读本描述之后将理解的。
方法650从操作660前进到决策662,确定是否已经评估了对应于当前字线的每个组。响应于确定至少一组还没有被评估,方法650返回到操作654,使得可以前进到下一组读取电压。由此,可以以迭代的方式对字线中的每个组重复方法650中包括的过程654-662。
然而,响应于确定已经评估了与当前字线相对应的每个组,方法650前进到操作618。在那里,操作618包括递增字线计数器。此外,方法650优选地用于校准存储器中的各种块,以及经校准的每个块中的每一字线。由此,字线计数器可以用于跟踪在给定块中已经评估了多少字线。因此,进行到决策620,作出关于字线计数器是否大于当前正被校准的块中所包含的字线的数目的确定。响应于确定字线计数器不大于块中所包括的字线的数目,方法650返回到操作608,使得可以评估下一字线,例如,如上所述。由此,可以以迭代的方式针对块中的每个字线重复方法650中所包括的过程608-620。
再次参看决策620,方法650响应于确定字线计数器大于块中所包含的字线的数目而返回到操作602。换句话说,方法650返回到操作602,使得下一块可以被校准。由此,可以以迭代的方式对存储器中的每个块重复方法650中包括的过程602-620。
方法650中的各种过程还能够显著减少所经历的校准开销,特别是与可能经历百分之几百的更多校准开销的常规过程相比。
虽然方法600和650在如何确定读取电压移位值方面实施不同粒度级别,但在一些方法中,所述两种方法可组合成单个过程。例如,方法(未示出)可以包括确定是评估字线级别上的读取电压还是评估特定页类型级别上的读取电压的决策。换句话说,可以实现一种方法,其例如根据用户输入、系统设置、性能度量等来确定对于给定块应当实现上述校准策略中的哪一个。
现在参看图7,如上文所提及,表700呈现给定存储器块当前可能正在经历的若干示范性操作状态(例如,参见s2)。如图所示,“状态”列中列出的每个状态对应于多个不同类型的统计的特定值。根据一个示例,状态sk+1对应于已经经历了0到1000之间的P/E循环、0到24小时之间的保持时间、0个读取干扰循环、并且系统的操作温度是40℃的块。由此,被确定为具有与前述范围和值匹配的统计的任何块可以被识别为具有sk+1的当前操作状态。一旦块的当前操作状态与预定操作状态中的一者匹配,预定操作状态可进一步用于识别正被评估的块的读取电压的预定相对移位值,例如,参见以下图8A到8B。如本领域技术人员将理解的,表700可以包括用于P/E循环、保持时间、读取干扰循环、操作温度或其他统计的不同值或范围的多个不同操作状态。
继续参考图7,优选地,对于给定存储系统的各种块、字线、页类型等,预先确定块操作状态的数量。例如,图7的表700中所示的多个块操作状态可以根据方法针对特定类型的存储器、特定产品、特定用户等预先确定。此外,这些块操作状态可以使用测试、建模、制造商规范、过去的性能信息等来预先确定。
如上所述,这些操作状态中的每一者可进一步与同正被评估的块相关联的读取电压的特定相对移位值相关。例如,参见图8A,表800包括说明性电压映射。操作状态s1、s2、…、sN中的每一个可响应于将块的当前操作状态与预定操作状态进行比较而从诸如图7中所示的表中选择。图8A的表800可由此用于识别对应于块正经历的特定操作状态的多个相对移位值(例如,A(2,5))。每个相对移位值进一步与相应的读取电压(例如,V5)相关,并且由此可以用于例如根据本文所包括的任何方法来计算大多数读取电压的实际读取电压移位值。
图8B还包括表830、840、850、860,其中的每一个包括对应于特定页类型的电压映射。因此,可以以与图8A的表800类似的方式使用表830、840、850、860,以便确定与相同类型的页(例如,额外页“XP”)对应的各种读取电压的相对移位值。相对移位值中的每一者进一步与相应读取电压(例如,表860中的V5)相关,且可借此用于计算与给定页类型相关联的读取电压中的大多数的实际读取电压移位值,例如根据本文所包含的方法中的任一者。例如,通过将块的当前操作状态和给定组中的页的类型与多个预定操作状态中的对应一个(例如,见图7)进行匹配来确定给定组中的多个读取电压中的每一个的相对电压移位值。此后,优选地从预定电压映射提取相对移位值,该预定电压映射被分配给匹配的预定操作状态并且对应于给定组中的页的类型。
应注意,尽管已在表830、840、850、860中的每一者中将读取电压中的特定读取电压识别为参考电压“参考”,但这决不希望为限制性的。如上所述,例如,根据期望的方法,可以选择给定组中的任何读取电压作为参考电压。
由此,作为实际上仅计算电压移位值之一的结果,本文所包括的各种方法能够确定与给定字线和/或页组相关联的所有读取电压的电压移位值。这显著地减少了处理开销和性能延迟,同时还确保了高读取性能和高效的存储器使用。如上所述,这些显著的改进是作为实现能够认识到在器件工作状态的某些边界处保持读取电压之间的相对偏移的过程的结果而实现的。本文所包括的一些方法还能够认识到,电压的绝对移位值将改变,但是相对移位值仍然保持在上述边界内。因此,通过用相应的参考电压映射相对电压移位值,可以将相对移位值从绝对移位值中解耦合。通过确定块的当前操作状态,可以确定给定块是否在前述边界中,其中保持电压的相对移位值。参考电压还可以用于在块可能经历的不同操作状态期间周期性地跟踪绝对移位值的改变。
根据使用中的示例,其决不打算限制本发明,图5中所示的阈值电压移位对应于给定块的具有i=0,1,...,15电压阈值(VTH)电平的3D QLC NAND。因此,令“s”表示该块的状态(例如,该块已经经历了“x”个p/e循环,“y”周的保持等)。结果,在字线“w”处的第i个VTH分布的平均值的变化可以表示为:VTH(i,w,s)=VTH(i,w,0)+Δ·a(i,w,s),其中,VTH(i,w,0)是当该块被首次编程时(例如,在寿命开始时)的VTH。此外,Δ是VTH移位的正单位,并且a(i,w,s)表示当块处于状态s时相对于状态0的第i个VTH分布的移位量的整数值。
因此,对于块的给定状态,16个VTH分布可以由整数集合表征:a(i,w,s),i=0,...,15。使用最右边的分布作为参考,以上集合可以写为:a’(0,w,s),a’(1,w,s),...,a’(14,w,s),a’(15,w,s),其中a’(i,w,s)=a(i,w,s)/|a(15,w,s)|。该归一化集合表示在状态s处的16个VTH分布相对于VTH i=15的变化的相对变化。例如,令s对应于1,000个循环和1周的保持,使得以下等式1成立:
{a’(0,w,s),a’(1,w,s),...,a’(14,w,s),a’(15,w,s)}={-0.1,-0.2,...,-0.8,-1} 等式1
因此,等式1提供了VTH分布的平均值的移位的表示,其与相应的读取电压的类似移位相关,以补偿VTH变化。对于字线w和块状态s的VTH移位的先前表示a’(i,w,s),i=0,...,15进一步保持在块操作的余量中。这是因为由于典型(例如,非瞬时)磨损机制引起的16个VTH分布的相对移位是相对缓慢的变化过程。相对变化通常由引起VTH移位的物理机制(例如,保持期间的电荷损失)驱动。例如,通常,VTH分布的相对变化在0和1周保持之间保持相同,但可在1和2周保持之间变化,等等,使得{a’(0,w,s1=1,000循环和0-1周保持),a’(1,w,s1),...,a’(14,w,s1),a’(15,w,s1)}={-0.1,-0.2,-0.2,...,-0.8,-1}。此外,{a’(0,w,s2=1,000循环和1-2周保持),a’(1,w,s2),…,a’(14,w,s2),a’(15,w,s2)}={-0.2,-0.3,-0.3,…,-0.9,-1}。
另一方面,16个VTH分布的绝对移位可以是相对快的过程(例如,至少相对于典型的磨损机制),并且由于处理变化、材料等或其它技术特定的可变性问题,其也可以在块的不同部分(例如,字线的不同层或组)之间变化。因此,{a’(0,在较低层的wl,s),a’(1,w1,s),...,a’(14,w1,s),a’(15,w1,s)}={a’(0,在较高层的w2),a’(1,w2,s),...,a’(14,w2,s),a’(15,w2,s)},然而a(15,w1,s)=-4而a(15,w2,s)=-5。
由此,本文所包括的各种方法能够通过识别块的当前状态s、使用一个或多个参考读取电压来确定这些参考电压的绝对移位、然后确定剩余电压相对于给定状态s处的参考电压的相对移位的映射,来校准任何给定状态s处的读取电压。此外,可以基于相应读取电压的绝对偏移、相对偏移和当前值(例如,在校准之前)来调整剩余的非参考读取电压。
还应当注意,在这里包括的任何方法中所包括的特定配置都不是限制性的。例如,包括在给定字线和/或存储器块中的页的数量和/或类型、读取电压的数量和/或值、阈值电压电平的数量和/或值、对应于每个校准方案的公共和/或独立读取电压偏移值的数量等,包括在这里的任何方法中,决不旨在限制,而是仅通过示例的方式呈现。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(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.根据权利要求2所述的计算机实现的方法,其中确定与所述给定字线相关联的所述剩余读取电压中的每一个的所述相对移位值包括:
将所述块的所述当前操作状态与多个预定操作状态中的对应一个匹配;以及
从分配给匹配的预定操作状态的所述预定电压映射提取所述相对移位值。
4.根据权利要求1所述的计算机实现的方法,其中,所述块的所述当前操作状态是使用对应于所述块的一个或多个统计来确定的,其中,用于确定所述块的所述当前操作状态的所述一个或多个统计选自由以下各项构成的组:循环计数、读取干扰计数和保持时间。
5.根据权利要求1所述的计算机实现的方法,其中所述存储器是非易失性随机存取存储器(NVRAM)。
6.根据权利要求5所述的计算机实现的方法,其中所述NVRAM包括三维三级单元NAND闪存。
7.根据权利要求5所述的计算机实现的方法,其中所述NVRAM包括三维四级单元NAND闪存。
8.一种用于校准存储器块的读取电压的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令可由处理器读取和/或可由处理器执行以使所述处理器:
由所述处理器确定所述块的当前操作状态,其中所述块在其中包含一个以上字线,其中一个以上读取电压与所述字线中的每一个相关联;以及
对于所述块中的所述字线中的每一个:
由所述处理器选择与所述给定字线相关联的所述读取电压中的一个作为参考读取电压,
由所述处理器计算所述参考读取电压的绝对移位值,
由所述处理器确定与所述给定字线相关联的剩余读取电压中的每一个的相对移位值,其中,所述相对移位值是相对于所述参考读取电压确定的,以及
由所述处理器使用所述绝对移位值和所述相应相对移位值中的每一个来调整与所述给定字线相关联的所述读取电压中的每一个。
9.根据权利要求8所述的计算机程序产品,其中使用对应于所述块的所述当前操作状态的预定电压映射来确定所述剩余读取电压的所述相对移位值。
10.根据权利要求9所述的计算机程序产品,其中确定与所述给定字线相关联的所述剩余读取电压中的每一个的所述相对移位值包含:
将所述块的所述当前操作状态与多个预定操作状态中的对应一个匹配;以及
从分配给匹配的预定操作状态的所述预定电压映射提取所述相对移位值。
11.根据权利要求8所述的计算机程序产品,其中所述块的所述当前操作状态是使用对应于所述块的一或多个统计来确定的,其中用于确定所述块的所述当前操作状态的所述一或多个统计选自由以下各项构成的组:循环计数、读取干扰计数和保持时间。
12.根据权利要求8所述的计算机程序产品,其中所述存储器是非易失性随机存取存储器(NVRAM)。
13.根据权利要求12所述的计算机程序产品,其中所述NVRAM包含三维三级单元NAND闪存。
14.根据权利要求12所述的计算机程序产品,其中所述NVRAM包含三维四级单元NAND闪存。
15.一种系统,包括:
多个非易失性随机存取存储器(NVRAM)块,其被配置为存储数据;
处理器;以及
与处理器集成和/或可由处理器集成的逻辑,所述逻辑被配置为,针对所述块中的每个块:
由所述处理器确定所述给定块的当前操作状态,其中所述给定块在其中包括一个以上字线,其中一个以上读取电压与所述字线中的每一个相关联;以及
对于所述给定块中的所述字线中的每一个:
由所述处理器选择与所述给定字线相关联的所述读取电压中的一个作为参考读取电压,
由所述处理器计算所述参考读取电压的绝对移位值,
由所述处理器确定与所述给定字线相关联的剩余读取电压中的每一个的相对移位值,其中,所述相对移位值是相对于所述参考读取电压确定的,以及
由所述处理器使用所述绝对移位值和所述相应相对移位值中的每一个来调整与所述给定字线相关联的所述读取电压中的每一个。
16.根据权利要求15所述的系统,其中使用对应于所述块的所述当前操作状态的预定电压映射来确定所述剩余读取电压的所述相对移位值。
17.根据权利要求16所述的系统,其中确定与所述给定字线相关联的所述剩余读取电压中的每一者的所述相对移位值包含:
将所述块的所述当前操作状态与多个预定操作状态中的对应一个匹配;以及
从分配给匹配的预定操作状态的所述预定电压映射提取所述相对移位值。
18.根据权利要求15所述的系统,其中所述块的所述当前操作状态是使用对应于所述块的一或多个统计来确定的,其中用于确定所述块的所述当前操作状态的所述一或多个统计选自由以下各项构成的组:循环计数、读取干扰计数和保持时间。
19.根据权利要求15所述的系统,其中所述NVRAM块中的至少一些被包括在三维三级单元NAND闪存中。
20.根据权利要求15所述的系统,其中所述NVRAM块中的至少一些被包括在三维四级单元NAND闪存中。
21.一种用于校准存储器块的读取电压的计算机实现的方法,包括:
确定所述块的当前操作状态,其中所述块在其中包含一个以上类型的页,其中至少一个读取电压与所述页类型中的每一个相关联;
对于块中的每个字线:
基于相应的页类型将所述读取电压划分成组;以及
对于所述给定字线中的每组读取电压:
选择所述给定组中的读取电压之一作为参考读取电压,
计算所述参考读取电压的绝对移位值,
确定所述给定组中的剩余读取电压的每一个的相对移位值,其中,所述相对移位值是相对于所述参考读取电压确定的,以及
使用所述绝对移位值及所述相应相对移位值中的每一个来调整所述给定组中的所述读取电压中的每一个。
22.根据权利要求21所述的计算机实现的方法,其中,给定组中的所述读取电压中的每一个对应于相同的页类型。
23.根据权利要求21所述的计算机实现的方法,其中使用对应于所述块的所述当前操作状态及所述给定组中的页的所述类型的预定电压映射来确定所述给定组中的所述剩余读取电压的所述相对移位值。
24.根据权利要求23所述的计算机实现的方法,其中,确定所述给定组中的所述剩余读取电压中的每一个的所述相对移位值包括:
将所述块的所述当前操作状态及所述给定组中的所述页类型与多个预定操作状态中的对应一个匹配;以及
从所述预定电压映射提取所述相对移位值,所述预定电压映射被分配给匹配的预定操作状态并且对应于所述给定组中的所述页类型。
25.根据权利要求21所述的计算机实现的方法,其中,所述块的所述当前操作状态是使用对应于所述块的一个或多个统计来确定的,其中,用于确定所述块的所述当前操作状态的所述一个或多个统计选自由以下各项构成的组:循环计数、读取干扰计数和保持时间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/669,241 | 2019-10-30 | ||
US16/669,241 US10957407B1 (en) | 2019-10-30 | 2019-10-30 | Calculating corrective read voltage offsets in non-volatile random access memory |
PCT/EP2020/079198 WO2021083692A1 (en) | 2019-10-30 | 2020-10-16 | Calculating corrective read voltage offsets in non-volatile random access memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114631147A true CN114631147A (zh) | 2022-06-14 |
Family
ID=73005592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080074453.2A Pending CN114631147A (zh) | 2019-10-30 | 2020-10-16 | 计算非易失性随机存取存储器中的校正读取电压偏移 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10957407B1 (zh) |
EP (1) | EP4022619A1 (zh) |
JP (1) | JP7448646B2 (zh) |
KR (1) | KR102654374B1 (zh) |
CN (1) | CN114631147A (zh) |
AU (1) | AU2020374243B2 (zh) |
WO (1) | WO2021083692A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10957407B1 (en) | 2019-10-30 | 2021-03-23 | International Business Machines Corporation | Calculating corrective read voltage offsets in non-volatile random access memory |
US11231863B2 (en) * | 2019-12-19 | 2022-01-25 | Micron Technology, Inc. | Block family-based error avoidance for memory devices |
JP2022144291A (ja) * | 2021-03-18 | 2022-10-03 | キオクシア株式会社 | メモリシステム |
WO2023146520A1 (en) * | 2022-01-27 | 2023-08-03 | Siemens Industry Software Inc. | Memory built-in self-test with address skipping trim search |
US12087379B2 (en) * | 2022-08-23 | 2024-09-10 | International Business Machines Corporation | Calibration of threshold voltage shift values |
CN115617567B (zh) * | 2022-12-16 | 2023-04-14 | 珠海妙存科技有限公司 | 闪存的数据恢复方法、装置、电子设备及介质 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4660353B2 (ja) | 2005-11-01 | 2011-03-30 | 株式会社東芝 | 記憶媒体再生装置 |
WO2008111058A2 (en) | 2007-03-12 | 2008-09-18 | Anobit Technologies Ltd. | Adaptive estimation of memory cell read thresholds |
KR100891005B1 (ko) * | 2007-06-28 | 2009-03-31 | 삼성전자주식회사 | 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법 |
US8111549B2 (en) | 2009-07-13 | 2012-02-07 | Intel Corporation | Dynamic wordline start voltage for nand programming |
KR20130070927A (ko) | 2011-12-20 | 2013-06-28 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치 및 그 동작 방법 |
KR20160062214A (ko) * | 2012-03-29 | 2016-06-01 | 인텔 코포레이션 | 메모리 셀을 위한 적응적 판독 기준 이동 |
US9645177B2 (en) * | 2012-05-04 | 2017-05-09 | Seagate Technology Llc | Retention-drift-history-based non-volatile memory read threshold optimization |
KR101979734B1 (ko) * | 2012-08-07 | 2019-05-17 | 삼성전자 주식회사 | 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법 |
US9190159B2 (en) | 2013-03-15 | 2015-11-17 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
US20140359202A1 (en) * | 2013-05-31 | 2014-12-04 | Western Digital Technologies, Inc. | Reading voltage calculation in solid-state storage devices |
US9251909B1 (en) | 2014-09-29 | 2016-02-02 | International Business Machines Corporation | Background threshold voltage shifting using base and delta threshold voltage shift values in flash memory |
KR102263046B1 (ko) | 2014-10-29 | 2021-06-09 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
US9576671B2 (en) | 2014-11-20 | 2017-02-21 | Western Digital Technologies, Inc. | Calibrating optimal read levels |
US9720754B2 (en) | 2014-11-20 | 2017-08-01 | Western Digital Technologies, Inc. | Read level grouping for increased flash performance |
GB2537484B (en) * | 2015-03-20 | 2019-07-03 | HGST Netherlands BV | Read level grouping for increased flash performance |
US20170076790A1 (en) | 2015-09-14 | 2017-03-16 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
CN105205008B (zh) | 2015-09-18 | 2018-07-20 | 成都三零嘉微电子有限公司 | 降低混合映射算法中日志块映射表内存资源占用的方法 |
CN106528323B (zh) | 2016-11-04 | 2019-07-30 | 郑州云海信息技术有限公司 | 一种Nand flash数据校准方法及系统 |
KR102713411B1 (ko) * | 2017-01-18 | 2024-10-08 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 |
US10236067B2 (en) | 2017-08-02 | 2019-03-19 | International Business Machines Corporation | State-dependent read voltage threshold adaptation for nonvolatile memory |
KR20190040604A (ko) | 2017-10-11 | 2019-04-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10276233B1 (en) | 2017-10-31 | 2019-04-30 | Seagate Technology Llc | Adaptive read threshold voltage tracking with charge leakage mitigation using threshold voltage offsets |
US10325665B2 (en) | 2017-12-08 | 2019-06-18 | Intel Corporation | Block by deck operations for NAND memory |
JP2019164850A (ja) | 2018-03-19 | 2019-09-26 | 東芝メモリ株式会社 | メモリシステム |
US10453537B1 (en) | 2018-05-10 | 2019-10-22 | International Business Machines Corporation | Techniques for reducing read voltage threshold calibration in non-volatile memory |
US10957407B1 (en) | 2019-10-30 | 2021-03-23 | International Business Machines Corporation | Calculating corrective read voltage offsets in non-volatile random access memory |
-
2019
- 2019-10-30 US US16/669,241 patent/US10957407B1/en active Active
-
2020
- 2020-10-16 WO PCT/EP2020/079198 patent/WO2021083692A1/en unknown
- 2020-10-16 KR KR1020227010832A patent/KR102654374B1/ko active IP Right Grant
- 2020-10-16 CN CN202080074453.2A patent/CN114631147A/zh active Pending
- 2020-10-16 AU AU2020374243A patent/AU2020374243B2/en active Active
- 2020-10-16 EP EP20796518.7A patent/EP4022619A1/en active Pending
- 2020-10-16 JP JP2022524047A patent/JP7448646B2/ja active Active
-
2021
- 2021-01-14 US US17/149,592 patent/US11302403B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210134378A1 (en) | 2021-05-06 |
KR102654374B1 (ko) | 2024-04-04 |
KR20220053019A (ko) | 2022-04-28 |
US10957407B1 (en) | 2021-03-23 |
AU2020374243A1 (en) | 2022-03-31 |
EP4022619A1 (en) | 2022-07-06 |
AU2020374243B2 (en) | 2023-02-16 |
JP7448646B2 (ja) | 2024-03-12 |
US11302403B2 (en) | 2022-04-12 |
WO2021083692A1 (en) | 2021-05-06 |
JP2023500068A (ja) | 2023-01-04 |
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 | |
JP7448646B2 (ja) | 不揮発性ランダム・アクセス・メモリにおける補正読取り電圧オフセットの計算 | |
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 | |
US9990279B2 (en) | Page-level health equalization | |
US11157379B2 (en) | Managing blocks of memory based on block health using hybrid controllers | |
US11086565B2 (en) | Reducing effects of read array operations of read apparent voltage | |
US11094383B2 (en) | Selective page calibration based on hierarchical page mapping | |
US10977181B2 (en) | Data placement in write cache architecture supporting read heat data separation | |
US11036415B2 (en) | Managing memory block calibration based on priority levels | |
US10783024B2 (en) | Reducing block calibration overhead using read error triage | |
US10942662B2 (en) | Relocating and/or re-programming blocks of storage space based on calibration frequency and resource utilization | |
US11334492B2 (en) | Calibrating pages of memory using partial page read operations | |
US11119855B2 (en) | Selectively storing parity data in different types of memory |
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 |