CN115114060A - 存储器装置中的错误处置流管理 - Google Patents

存储器装置中的错误处置流管理 Download PDF

Info

Publication number
CN115114060A
CN115114060A CN202210272849.9A CN202210272849A CN115114060A CN 115114060 A CN115114060 A CN 115114060A CN 202210272849 A CN202210272849 A CN 202210272849A CN 115114060 A CN115114060 A CN 115114060A
Authority
CN
China
Prior art keywords
error handling
operations
read
memory
error
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
CN202210272849.9A
Other languages
English (en)
Inventor
K·K·姆奇尔拉
S·诺埃尔
M·N·凯纳克
S·K·瑞特南
P·费利
S·帕塔萨拉蒂
D·M·巴图蒂斯
罗贤钢
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN115114060A publication Critical patent/CN115114060A/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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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/30Power supply 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
    • 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/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12005Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • 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

Landscapes

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

Abstract

本公开针对于存储器装置中的错误处置流管理。公开包含存储器装置和可操作地耦合到所述存储器装置的处理装置的系统和方法。所述处理装置可执行包含以下各项的操作:检测关于驻留于所述存储器装置的块中的数据的读取错误,其中所述块与电压偏移区间相关联;确定待执行以恢复与所述读取错误相关联的数据的多个错误处置操作的次序,其中所述次序在元数据表中指定并且基于与所述块相关联的所述电压偏移区间;和按所述元数据表指定的次序执行所述多个错误处置操作中的至少一个错误处置操作。

Description

存储器装置中的错误处置流管理
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及存储器装置中的错误处置流管理。
背景技术
存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
在一个方面中,本公开针对于一种系统,其包括:存储器装置;和处理装置,其以操作方式耦合到所述存储器装置以执行包括以下各项的操作:检测关于驻留于所述存储器装置的块中的数据的读取错误,其中所述块与电压偏移区间相关联;确定待执行以恢复与所述读取错误相关联的数据的多个错误处置操作的次序,其中所述次序在元数据表中指定并且基于与所述块相关联的所述电压偏移区间;和按所述元数据表指定的次序执行所述多个错误处置操作中的至少一个错误处置操作。
在另一个方面中,本公开针对于一种方法,其包括:检测关于驻留于所述存储器装置的块中的数据的读取错误,其中所述块与电压偏移区间相关联;按元数据表指定的次序执行多个错误处置操作中的至少一个错误处置操作,其中所述多个错误处置操作的所述次序是基于与所述块相关联的所述电压偏移区间;和执行对错误处置流的调整。
在另一个方面中,本公开针对于一种包括指令的非暂时性计算机可读存储媒体,所述指令当由以操作方式耦合到存储器的处理装置执行时执行包括以下操作的操作:检测关于驻留于所述存储器装置的块中的数据的读取错误,其中所述块与电压偏移区间相关联;确定待执行以恢复与所述读取错误相关联的数据的多个错误处置操作的次序,其中所述次序在元数据表中指定并且基于与所述块相关联的所述电压偏移区间;和按所述元数据表指定的次序执行所述多个错误处置操作中的至少一个错误处置操作。
附图说明
根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2示意性地说明根据本公开的一些实施例的能够通过将存储器单元编程为八个电荷状态而存储三个数据位的三层级存储器单元的时间电压移位,所述八个电荷状态相差单元的浮动栅极上的电荷量。
图3描绘说明根据本公开的一些实施例的阈值电压偏移量对编程后时间(即,从块已经编程开始经过的时间段)的相依性的实例图表。
图4说明根据本公开的方面的由存储器子系统控制器维持的实例元数据。
图5是根据本公开的一些实施例的执行的错误处置流管理实例方法的流程图。
图6是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的各方面针对于存储器装置中的错误处置流管理。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
存储器子系统可以利用一或多个存储器装置(包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合)来存储由主机系统提供的数据。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。存储器装置中的每一个可以包含一或多个存储器单元阵列。存储器单元(“单元”)是存储信息的电子电路。取决于单元类型,单元可存储一或多个二进制信息位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可以由二进制值(例如,“0”和“1”或这类值的组合)表示。
可由存储器子系统执行各种数据操作。数据操作可为主机发起的操作。举例来说,主机系统可在存储器子系统上发起数据操作(例如写入、读取、擦除等)。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。如由主机请求指定的待读取或写入的数据在下文中被称作“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名字空间),其是主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、名字空间)可为主机数据的元数据的部分。元数据还可以包含错误处置数据(例如,错误校正码(ECC)码字奇偶校验数据)、数据版本(例如,用于区分所写入数据的新旧)、有效位图(其LBA或逻辑传送单元含有有效数据)等。
存储器装置包含能够取决于存储器单元类型而存储一或多个位的信息的多个存储器单元。可通过将某一电压施加到存储器单元,使得有电荷正被存储器单元保持,以此对存储器单元进行编程(写入到存储器单元),所述电压被称为“阈值电压”且标示为Vt。
高质量存储器装置可具有与装置的单元所容许的控制电压的工作范围相比较窄的分布。因此,多个分布(在分布之间具有“谷值”)可刚好放入允许每单元存储并且可靠地检测多个位的工作电压窗中,例如针对TLC的23=8个分布(7个谷值)、针对MLC的22=4个分布(3个谷值)等。分布之间穿插有电压间隔(“谷值裕度”),其中所述装置中没有(或极少有)存储器单元具有其阈值电压。因此,可使用这类谷值裕度通过施加对应于每个谷值的读取电压来分离各种电荷状态,可通过在读取操作期间进行检测来确定单元的逻辑状态。这实际上允许单个存储器单元存储多个信息位:在2N个分布(也被称为层级)下操作的存储器单元能够存储N个信息位。在读取操作期间,施加2N-1个读取电压以区分2N个分布。具体地,可通过将存储器单元展现的所测量阈值电压VT与对应于存储器装置的已知谷值(例如,谷值中心)的一或多个参考电压电平进行比较,以此执行读取操作。
由于被称为缓慢电荷损失(SCL)的现象,随着单元的电荷减少,存储器单元的阈值电压VT可随时间而变化,过程有时被称为“时间电压移位”(TVS)。“存储电荷损失”和“系统电荷损失”命名还用于SCL。由于典型单元存储带负电荷的粒子(电子),因此电子的损失使得电压阈值沿着电压轴朝向下限电压阈值VT移位。阈值电压可首先快速改变(紧接在存储器单元经编程之后),同时相对于从单元编程事件以来经过的时间t,以大致对数线性或幂律方式(ΔVT(t)=-C*tb)在较大时间减缓。在本公开的一些实施例中,可通过保持跟踪从编程事件以来经过的时间以及特定存储器分区(块、平面等)的例如温度的环境条件,且使将在读取操作期间使用的每谷值的电压偏移ΔVT相关联来减缓TVS,其中标准“基础读取电平”阈值电压VT(紧接在编程之后由单元展现)改变量为电压偏移量:VT→VT+ΔVT,其中ΔVT由于电荷损失而为负值。虽然TVS为连续过程且对ΔVT(t)的补偿可以随着时间不断改变,但在一些实施例中,可以利用离散数目个偏移“区间”来达成偏移的足够准确度。块可使用元数据与区间相关联(例如,在指定时间窗内并且在类似环境(例如,温度)条件下被编程)。由于从编程以来经过的时间和温度条件处于影响TVS的量的主要因素行列,因此可推测与同一区间相关联的块展现其存储器单元的阈值电压的类似分布,且因此将需要将相同电压偏移施加到用于读取操作的基础读取电平。
存储器子系统控制器可周期性地执行校准过程以便使块与区间中的一个相关联。每一区间又可与将施加用于读取操作的一组电压偏移相关联。块与区间的关联在本文中被称为辅助读取元数据(ARM),表示存储器装置的更广状态度量的部分。状态度量还可包含被弃用物理存储器块(或其它分区)的数目、各种物理块已被擦除的次数、各种存储器分区的单元的配置类型(例如,单层级单元与多层级单元)或表示存储器装置的状态的任何其它类型的信息。ARM可存储在由存储器子系统控制器维持的元数据表中。
根据本公开的实施例,可选择性地跟踪分组成族的经编程分区的TVS。基于分区分组成族,在读取操作中将适当的特定于区间的读取(电压)偏移施加到基础读取(电压)电平。基础读取电平还可存储在存储器装置的元数据中。在接收到读取命令之后,存储器子系统控制器可执行以下操作:识别与由读取命令中指定的逻辑地址识别的存储器分区相关联的族;识别与所识别族相关联的当前区间;确定所识别区间的一组读取偏移;通过将与所识别区间相关联的读取偏移叠加地施加到基础读取电平而计算新读取电压;和使用新读取电压执行读取电压,如下文更详细地描述。
“读取错误”是指存储器子系统未能响应于读取命令验证已从存储器装置检索到的一或多个数据项。读取错误可与主机发起的读取操作或系统发起的扫描操作相关联并且可归因于例如以下原因而发生:存储器单元展现的所测量阈值电压VT由于TVS而与读取电压电平失配、所请求的数据经历噪声或干扰等。在读取错误中,读取数据中的位错误大于基本ECC可校正的位错误,这引起ECC失败并且相应地引起读取错误。响应于读取错误,存储器子系统可执行错误处置流以试图恢复数据。错误处置流可包含关于已从存储器装置检索到的数据项的一或多个错误处置操作。错误处置操作可包含相较于对存储器单元执行的初始读取操作,使用不同参数(例如,读取电压的变化)进行的一或多个读取重试。错误处置操作还可包含“深度错误处置技术”,例如具有各种版本的可靠性信息、混合自动重复请求(HARQ)等的前向错误校正(FEC)。
在一些实施方案中,存储器子系统控制器可使用默认(例如,静态)错误处置流,其中在错误处置流期间执行的错误处置操作的次序对于存储器装置的所有块保持相同。举例来说,在进入错误处置流之后,存储器子系统控制器可首先执行一组相对低时延步骤,例如使用施加到基础读取电平的不同的相对小(例如,不超过预定义阈值)读取偏移进行预定量读取重试。响应于成功恢复数据的低时延步骤,存储器子系统控制器可退出错误处置流以重新开始读取和写入操作。响应于低时延步骤未能恢复数据,存储器子系统控制器可执行在错误处置流中指定的下一错误处置操作。举例来说,存储器子系统控制器可执行较高时延步骤,例如相较于低时延步骤中使用的读取偏移施加更大读取偏移,或使用深度错误处置技术(例如,FEC、HARQ等)恢复数据。
然而,错误处置操作可能很费时并且影响存储器子系统的性能。错误处置操作可能会使读取时间增加和/或使性能降级,如主机系统所观察到的。触发错误处置操作的频率越频繁,存储器系统的性能就越慢,这是因为可执行的读取操作和写入操作更少。而且,存储器子系统进入错误处置流的特定位置被阻止从主机接收其它命令,从而导致存储器子系统执行其它读取操作或写入操作的可用性降低。
本公开的方面通过实施能够调整存储器装置中的错误处置流中的错误处置操作的错误处置操作次序和参数的存储器子系统控制器来提高错误处置操作的效率。特定来说,存储器子系统控制器可对不同区间实施不同错误处置流。在一个实例中,可在存储器子系统制造期间、在存储器子系统编程和/或校准期间或通过存储器子系统控制器动态地确定区间与不同错误处置流的关联。举例来说,与区间1相关联的错误处置流可发指令给存储器子系统控制器首先执行错误处置操作1,随后响应于错误处置操作1未能恢复数据而转到错误处置操作2,并且最后响应于错误处置操作2未能恢复数据而转到错误处置操作3;而与区间2相关联的错误处置流可发指令给存储器子系统控制器首先执行错误处置操作2,随后响应于错误处置操作2未能恢复数据而转到错误处置操作1,并且最后响应于错误处置操作1未能恢复数据而转到错误处置操作3。每个错误处置操作(例如,错误处置操作1、错误处置操作2、错误处置操作3)可包含发指令给存储器子系统控制器通过将一或多个读取偏移施加到基础读取、通过深度错误处置技术等来执行一或多个读取重试。
在其它实例中,存储器子系统控制器可基于与经历读取错误的块相关联的区间编号将默认错误处置流的错误处置操作重新排序。举例来说,可在存储器子系统制造和/或编程期间为存储器子系统进行默认错误处置流。响应于检测到读取错误,存储器子系统控制器可确定哪个区间与经历读取错误的块相关联,通过使用元数据表确定与区间相关联的错误处置操作的次序,并且按元数据的数据指定的次序执行默认错误处置流的错误处置操作。在一些实施例中,存储器子系统控制器可动态地修改与每一区间相关联的错误处置操作的次序。在一个实例中,存储器子系统控制器可维持基于每一区间的读取错误率(例如,针对预定数目的主机读取触发错误处置的读取命令数目)的错误处置统计数据。响应于读取错误率满足阈值准则,存储器子系统控制器可调整错误处置流中的操作中的一或多个操作。在一个实例中,存储器子系统控制器可使用错误处置流中的错误处置操作中的每一个的成功率(例如,可依据其恢复数据的成功率将错误处置操作重新排序)和/或与错误处置流中的每个错误处置操作相关联的时延数据,修改错误处置流中的错误处置操作的次序。在另一实例中,存储器子系统控制器可修改错误处置流中的一或多个错误处置操作,例如调整错误处置操作中使用的读取偏移或使用更大量的页样本(与每个读取电平阈值相关联的编程分布的谷值样本,供存储器子系统控制器用于校准操作)。在一些实施例中,存储器子系统控制器可实施闭合反馈环路确定哪些修改在恢复数据中是成功的。基于所述反馈,存储器子系统控制器可更新错误处置流以用于未来错误处置。
本公开的优点包含但不限于通过减小由存储器子系统执行的错误处置流的时延来提高存储器子系统的性能。这可提高存储器子系统的性并且降低存储器子系统的电力消耗。此外,这可增加存储器子系统的使用寿命。尽管使用NAND快闪存储器的存储器单元描述实施例,但本公开的各方面可应用于其它类型的存储器子系统。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。
存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、手提式计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或这类包含存储器和处理装置的计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与……耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。
主机系统120可包括处理器芯片组和由所述处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如,将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1说明作为实例的存储器子系统110。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包括例如二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单层级单元(SLC)可存储一个位每单元。其它类型的存储器单元(例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五到层级单元(PLC))可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,如SLC、MLC、TLC、QLC、PLC或此类的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。
虽然描述了非易失性存储器组件,例如3D交叉点非易失性存储器单元阵列和NAND型快闪存储器(例如,2D NAND、3D NAND),但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,及其它这类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。
存储器子系统控制器115可为处理装置,其包括配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明的实例中,存储器子系统控制器115的本地存储器119包括配置成存储指令的嵌入式存储器,所述指令用于进行控制存储器子系统110的操作的各种过程、操作、逻辑流程和例程,包括处置存储器子系统110与主机系统120之间的通信。
在所示实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流和例程。
在一些实施例中,本地存储器119可包含存储存储器指针、提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然在图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一个实施例中,存储器子系统110不包含存储器子系统控制器115,而是替代地可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理MU地址、物理块地址)之间的地址转译。存储器子系统控制器115可另外包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是受管理存储器装置,其包含具有裸片上的控制逻辑(例如,本地控制器132)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110包含可用以实施根据本公开的实施例的错误避免策略的错误处置流管理组件113。在一些实施例中,存储器子系统控制器115包含错误处置流管理组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,错误处置流管理组件113是主机系统120、应用程序或操作系统的部分。错误处置流管理组件113可管理与存储器装置130相关联的块族,如本文在下文更详细描述。
图2示意性地说明根据本公开的一些实施例的能够通过将存储器单元编程为八个电荷状态Qk(也被称为层级)而存储三个数据位的三层级存储器单元(TLC)的时间电压移位(TVS),所述八个电荷状态相差单元的存储栅极上的电荷量。阈值电压P(VT,Qk)的分布与7个谷值裕度VMn分开。编程为第k个电荷状态(Qk)的单元可存储3位的特定组合。举例来说,电荷状态Qk可存储二进制组合101,如所描绘。也可使用Qk到3位的其它映射。此电荷状态Qk可以在读出操作期间通过检测出谷值裕度VMk内的控制栅极电压VCG足以使单元向源极-漏极电流开放而前一谷值裕度VMk-1内的控制栅极电压不足以使单元向源极-漏极电流开放而确定。存储器单元可被配置成存储N=1个位(SLC)、N=2个位(MLC)、N=3个位(TLC)、N=4个位(QLC)等,这取决于在控制栅极电压的工作范围内可拟合多少分布(且散布有足够大小的谷值裕度)。即使图2描绘TLC,本公开中所描述的操作仍可应用于任何N位存储器单元。
存储器单元通常由字线(电连接到单元的控制栅极的导线)接合,并在一种设置下(通过选择连接到单元的源极电极和漏极电极的连续位线)一起编程为存储器页(例如,16KB或32KB页)。作为实例,图2示出其中在3个遍次中编程3位的场景。也可存储其它编程序列,例如1遍次编程和2遍次编程。对于图2中示出的实例,在读取操作期间,存储器控制器115可确定第六谷值裕度VM6内所施加的控制栅电压VCG足以使单元对源极-漏极电流开放,而第七谷值裕度VM7内的控制栅电压足以使单元开放。因此,存储器控制器115可确定单元处于对应于逻辑状态010的电荷状态Q7中(即,XP:0、UP:1、LP:0)。
用图2中的实线所描绘的阈值电压的分布是存储器单元紧接在编程之后具有的分布。随着时间的推移,由于缓慢的电荷损失,分布会发生移位(通常朝向VT的较低值),如用虚线指示的经移位谷值所指示。因此,各种存储器单元的阈值电压经移位一定值ΔVT,所述值可取决于从编程以来经过的时间、环境条件(例如,环境温度)等等。对于最优读取操作,控制器115(或错误处置流管理组件113)因此可以对应偏移VR→VR+ΔV(其中ΔV通常小于零)调整基础读取电平,所述对应偏移与时间电压移位相同(或大致相同)。在一个实施例中,可将偏移确定(或估计)为紧接在编程之后的谷值裕度的中心(例如,VM7的中心202)与稍后某一时刻相同-但经移位的-谷值裕度的中心(例如,新中心204)之间的差。如在图2中示意性地描绘,不同分布(谷值)和谷值裕度的TVS可彼此不同。在图2中描绘的典型情境中,对于较大电荷Q,TVS较大,且对于较小电荷,TVS较小。
如图2中所示,存储器装置中的TVS为连续过程。然而,在一些实施例中,可以使用一组离散的区间以及相应地一组离散的电压偏移ΔV来实现电压偏移的足够准确度。在此类实施例中,可以通过设置与各种存储器分区相关联的数个离散区间(例如,五个、八个、二十个等等)来解决TVS现象。作为实例,假设对于谷值7,期望最优读取位置移位500毫伏。在6个区间的情况下,可将谷值7的偏移定义为相等地间隔开例如0mV、100mV、200mV、300mV、400mV、500mV。类似地,可定义其它谷值的偏移。区间偏移可经定义为不相等地间隔开而是遵循不同的间距。可将区间相关的数据存储在元数据表210中。各种存储器分区(分组到族中,如下文更详细地描述)与区间的关联可存储于族-区间关联212中;族-区间关联可随时间的推移而动态地改变。举例来说,由于存储器单元随着时间、温度和编程/擦除循环(PEC)继续丢失电荷,因此相应存储器分区(分组成族)可以连续方式从低级区间移动到具有更大电压偏移量值的更高级区间。区间-偏移关联214还可存储在元数据表210中。在一些实施例中,区间-偏移关联214可为静态的,但可(基于存储器分区的校准)调整族-区间关联212以考虑相应分区的存储器单元的实际电荷损失。在一些实施例中,族-区间关联212可存储存储器分区的逻辑地址,例如相应块的LBA,而LBA与相应物理块地址(PBA)的关联可存储在元数据表210外部,例如,分开存储在本地存储器119或存储器装置130、140中的一个中的存储器转换表内。然而,在一些实施例中,族-区间关联212可另外包含LBA到PBA转换或存储直接PBA到区间关联。如在图2中用弯曲箭头示意性地描绘,区间的数目、区间-偏移关联214、分区-区间关联可基于存储器装置(或类似类型的存储器装置,例如,在设计和制造期间)的校准,以用于在读取操作期间使性能达到最大且使读取错误降至最低。
阈值电压偏移取决于编程后时间(TAP)。TAP是从单元已经写入起经过的时间并且是TVS的一级驱动器。可估计(例如,从数据状态度量推断)或直接测量(例如,从控制器时钟)TAP。单元、块、页、块族等在具有(相对)小TAP的情况下为新(或相对较新)并且在具有(相对)大TAP的情况下为旧(或相对较旧)。时间片是两个TAP点之间的持续时间,在此持续时间期间,可进行测量(例如在编程之后的8到12分钟执行参考校准)。时间片可被其中心点(例如,10分钟)引用。
可将存储器装置的块分组成块族,使得每一块族包含已在指定时间窗和可能地指定温度窗内编程的一或多个块。如上文所提及,由于在编程之后经过的时间以及温度是影响时间电压移位的主要因素,所以推测单个块族内的所有块和/或分区在存储器单元中展现类似的阈值电压分布,且因此将需要相同的电压偏移来进行读取操作。TVS还取决于程序擦除循环,然而,对于耗损均衡,所有块将具有类似PEC且因此PEC并非是块族内的块当中的TVS的区别性因素。
可相对于块编程事件异步创建块族。在说明性实例中,每当从最后一个块族的创建开始已经过指定时间段Δt(例如预定分钟数),或每当从当前块族的创建开始,存储器单元的参考温度(其以指定时间间隔更新)已改变了超过指定阈值ΔΘ(例如10C、30C或任何其它值),那么图1的存储器子系统控制器115可创建(“开启”)新的块族。类似地,在从创建族以来已经过时间Δt之后或当参考温度(在任一方向上)已改变超过ΔΘ时,可“关闭”族(且可创建新族)。存储器子系统控制器115可维持活动块族的识别符,所述活动块族与正在被编程的一或多个块相关联。
新创建的块族可与区间0相关联。随后,存储器子系统控制器可周期性地执行校准过程以便将每个块族的每一裸片与预定义的阈值电压偏移区间(在图3的说明性实例中针对单个谷值的区间0-9,其中沿着y轴向下,偏移变得更具负性,例如区间9的偏移与区间2相比将具有较高量值且这两个偏移均为负)中的一个相关联,继而与将被施加用于读取操作的电压偏移相关联。块与块族以及块族和裸片与阈值电压偏移区间的关联可存储在由存储器子系统控制器维护的相应元数据表中。
电压分布归因于缓慢电荷损失(SCL)在时间上发生改变,这引起阈值电压电平的值漂移。根据本公开的各种实施例,针对按块族分组的经编程块选择性地跟踪时间电压移位,且将基于与某一块族的块隶属关系的适当的电压偏移量施加到基础读取电平,以便执行读取操作。
图3示意性地说明根据本公开的实施例的针对特定谷值的一组预定义阈值电压偏移区间(区间0到区间9)。如图3示意性地说明,可将阈值电压偏移图表300细分为多个阈值电压偏移区间,使得每一区间对应于阈值电压偏移的预定范围。虽然图3的说明性实例定义了十个区间(0-9),但在其它实施方案中,可使用各种其它数目的区间(例如,64个区间)。基于周期性地执行的校准过程,存储器子系统控制器使每个块族的每一裸片与一阈值电压偏移量区间关联,所述阈值电压偏移量区间定义将施加到基础电压读取电平以便执行读取操作的一组阈值电压偏移量,如本文在下文更详细描述。
图4示意性地说明根据本公开的方面的由存储器子系统控制器维持的实例元数据。在一些实施例中,错误处置流管理组件113可维持错误处置元数据表410和错误处置元数据表420。在一些实施例中,错误处置元数据表410和420可存储于存储器子系统的存储器中(例如,存储器装置130、140、本地存储器119等处)并且可被错误处置流管理组件113引用于确定与特定偏移区间相关联的错误处置流。
如由错误处置元数据表410说明,每一区间可与相应错误处置流(例如,F0、F1…F5)相关联。如由错误处置元数据表420说明,错误处置流可将待以特定次序(例如,操作次序)执行的一组特定错误处置操作、每错误处置流的每个错误处置操作的参数值(例如读取电平调整值)(例如,OP1参数、OP2参数、OP3参数等)以及每错误处置流的每个错误处置操作的成功率(例如,OP1成功率、OP2成功率、OP3成功率)相关联。错误处置元数据表410和420可为两个单独的元数据表,或组合成单个元数据表。
错误处置流管理组件113可对与同一区间相关联的块族的框执行与所述区间相关联的错误处置流的错误处置操作。在一些实施例中,可在存储器子系统110制造或在存储器子系统110编程和/或校准期间期间确定和设置区间与相应错误处置流的关联。因而,每一区间可与具有待以特定次序执行的一组特定错误处置操作的错误处置流相关联。
在一些实施例中,存储器子系统控制器115可通过将存储器子系统110的默认错误处置流的错误处置操作重新排序来动态地设置每一区间的错误处置流。默认错误处置流可以指在存储器子系统110的编程和/或校准期间针对存储器子系统的每个块设置的错误处置流,且/或指初始与每一区间相关联的错误处置流(例如,F0、F1…F5)。错误处置操作的重新排序可基于每区间的每个错误处置操作的成功率(例如,SRF0-OP1、SRF0-OP2、SRF0-OP3)(例如,成功恢复数据超过阈值准则的百分比、彼此相比成功地恢复每个错误处置操作的数据的百分比等)。错误处置流管理组件113可经由元数据表420通过维持成功地恢复数据的每个错误处置操作的例子的每区间(或每错误处置流)计数器和未能恢复数据的每个错误处置操作的例子的每区间计数器,以此跟踪每个错误处置操作的成功率。
在说明性实例中,默认错误处置流可发指令给错误处置流管理组件113执行错误处置操作1,随后执行错误处置操作2,并且接着执行错误处置操作3。对于与区间3相关联的块,错误处置操作1可具有低于错误处置操作2和3的成功率的成功率,错误处置操作2可具有大于错误处置操作1和3的成功率的成功率,且错误处置操作3可具有大于错误处置操作1的成功率但小于错误处置操作2的成功率的成功率。因此,错误处置流管理组件113可将区间3的错误处置流(F3)重新排序以发指令给错误处置流管理组件113响应于与区间3相关联的块上的读取错误而执行错误处置操作2,随后执行错误处置操作3,接着执行错误处置操作1。在一些实施例中,多个区间可与同一错误处置流相关联。
在另一说明性实例中,错误处置流管理组件113可通过维持成功地恢复数据的错误处置操作的每个序列的例子的每区间计数器和未能恢复数据的错误处置操作的每个序列的例子的每区间计数器,以此跟踪两个或更多个错误处置操作的序列的成功率。因此,错误处置流管理组件113可基于每区间的错误处置操作的序列的成功率(例如,成功恢复数据超过阈值准则的百分比、彼此相比成功地恢复每个错误处置操作的百分比等)将默认错误处置流的错误处置操作动态地重新排序。
如上文所论述,每个错误处置流(例如,F0、F1…F5)可包含在成功地恢复读取操作的所要数据之前将由错误处置流管理组件113以预定次序执行的不同错误处置操作。错误处置操作可包含使用不同参数的一或多个读取重试,例如将不同读取偏移施加到基础读取电平,深度错误处置技术,例如FEC和HARQ等。在一些实施例中,一个错误处置操作可包含将一组读取偏移施加到基础读取电平的第一组读取重试,且另一错误处置操作可包含将不同组(具有不同值)的读取偏移施加到基础读取电平的第二组读取重试。一个错误处置流中的一或多个错误处置操作可不包含在另一错误处置流中,且反之亦然。
在说明性实例中,与较新块族(即,最近创建的归因于SCL的对数线性性质而经历较大TVS的块族,其中紧接在编程之后的电荷损失与稍后时间的电荷损失相比更快速)相关联的区间可与其中错误处置操作归因于较新块族中的块经历阈值电压的相对较大移位(例如,阈值电压紧接在存储器单元经编程之后快速改变)而包含相对大的读取电平调整(例如,将大于预定阈值的读取偏移施加到基础读取电平)的错误处置流关联。因而,通过执行相对宽广的读取电平调整代替相对狭窄的读取电平调整(例如,宽广读取电平调整的值大于狭窄读取电平调整的值),错误处置流管理组件113可使用错误处置流的初始错误处置操作增加读取电平调整成功恢复数据的机率。在一些实施例中,可为区间(例如,归因于具有相对大的TVS而为相对较旧区间)指配其中错误处置操作包含错误处置流管理组件113首先执行深度错误处置技术(例如,使用硬信息和软信息)的错误处置流。响应于深度错误处置技术未能恢复所要数据,错误处置流管理组件113随后可执行读取电平调整操作。
在一些实施例中,错误处置流管理组件113可跟踪每一区间的错误处置统计数据。举例来说,错误处置流管理组件113可维持读取错误率的记录,例如每预定数目的读取命令便触发错误处置的读取命令数目。响应于错误处置统计数据指示成功读取操作率(例如,每预定数目的读取命令便触发错误处置的读取命令数目超过预定阈值)降低,错误处置流管理组件113可对错误处置流的一或多个操作执行校正动作。
在一些实施例中,校正动作可包含错误处置流管理组件113校准错误处置流的一或多个错误处置操作的读取电平调整。举例来说,错误处置流管理组件113可调整读取偏移直到数据恢复或直到执行预定数目的读取重试为止。
在一些实施例中,校正动作可包含错误处置流管理组件113增加用于校准程序(例如,连续读取电平校准(cRLC))的页样本数目。CRLC是供存储器子系统控制器115用于通过使用多个页样本将两个编程分布之间的读取电平阈值定为中心来设置和/或调整存储器单元的读取电平阈值的程序。通过增加使用的页样本数目,错误处置流管理组件113可增加正在降级的存储器装置(例如,正在老化的存储器装置、经历热或冷的存储器装置等)的校准准确度。
在一些实施例中,校正动作可包含错误处置流管理组件113确定与区间相关联的块族(或所述块族)的一或多个块的编程后时间(TAP)与相邻区间的TAP的接近度。错误处置流管理组件113随后可基于最邻近区间的错误处置操作调整相关联的区间的错误处置操作中使用的读取偏移。使用图3作为参考,相邻区间是紧接在一区间之前或紧接在一区间之后的区间(例如,区间0和2是区间1的相邻区间,区间4和6是区间5的相邻区间等)。在说明性实例中,错误处置流管理组件113可基于所述块(或块族)的TAP值,确定与区间5相关联的块族中的一或多个块比区间6更接近区间4。错误处置流管理组件113随后可将与区间5相关联的错误处置操作中使用的读取偏移调整为与区间4相关联的错误处置操作中使用的读取偏移。
在一些实施例中,错误处置流管理组件113可基于区间和与关联于区间的块族中的一或多个块相关联的编程擦除循环,配置错误处置流中的错误处置操作的次序。特定来说,较旧区间是其中读取电平指向具有相对大TAP的数据的区间。具有相对高编程擦除循环的较旧区间中的块可具有相对大电压移位和相对狭窄的分布谷值。因而,深度错误处置技术与涉及读取电平调整的错误处置操作相比实现数据恢复的机率可能相对更大。因此,错误处置流管理组件113可基于区间(例如,区间编号)以及块族中的一或多个块的编程擦除循环超过阈值准则,动态地调整错误处置流的错误处置操作的次序。仅作为说明性实例,响应于区间6或更高编号区间中的10个或更多个块具有至少1000个编程擦除循环,错误处置流管理组件113可动态地调整错误处置流以开始深度错误处置技术。
在一些实施例中,错误处置流管理组件113可实施闭合反馈环路以确定哪些修改在恢复数据中是成功的。基于反馈,错误处置流管理组件113可更新错误处置流。特定来说,错误处置流管理组件113可跟踪错误处置流中的每个错误处置操作的数据恢复的成功率。错误处置流管理组件113随后可将错误处置操作中的每一个的成功率与彼此进行比较。基于所述比较(例如,哪个错误处置操作具有较高成功率),错误处置流管理组件113可将错误处置流中的错误处置操作重新排序(例如,可首先执行具有最高成功率的错误处置操作,其次可执行具有第二高的成功率的错误处置操作等)。错误处置流管理组件113可使用表(例如,元数据表、对数等)跟踪每一区间的每个错误处置操作的成功率。
在实例中,响应于错误处置流管理组件113确定错误处置流的后一错误处置操作与错误处置流的前一错误处置操作相比具有成功地恢复数据的较高成功率,错误处置流管理组件113可调整错误处置流开始第二错误处置操作而非第一错误处置操作。错误处置流管理组件113可在存储器子系统110的寿命期间连续地实施闭合反馈环路。
一些错误处置操作可具有高成功率,并且还具有高时延。举例来说,例如HARQ操作的深度错误处置技术可具有恢复数据的高成功率,并且相对于例如读取偏移操作还具有较高时延。因而,在一些实施例中,错误处置流管理组件113可跟踪每个错误处置操作的时延数据,并且依据每个错误处置操作的时延数据和/或每个错误处置操作的成功率将错误处置流中的错误处置操作重新排序。时延数据可存储于存储器子系统110的数据表或库中,并且可在存储器子系统110的制造期间或在存储器子系统110的编程和/或校准期间进行确定和设置。在一些实施例中,错误处置流管理组件113可基于时延数据和成功率数据将错误处置操作重新排序。在一些实施例中,错误处置流管理组件113可使用涉及以下动作的一组规则:为时延数据和错误处置流中的每个错误处置操作的成功率数据指配介于0和1之间的权重和数值,并且将加权数据组合以产生每个错误处置操作的位置值。错误处置流管理组件113可基于其相应位置值将错误处置操作排序。不同尺度和任何计分值可以与每个错误处置操作一起使用来确定每个位置值。在其它实施例中,错误处置流管理组件113可使用机器学习方法、基于统计数据的方法,或依据成功率数据和时延数据将错误处置流的错误处置操作排序的任何其它方法。
图5是由根据本公开的一些实施例进行操作的存储器子系统控制器实施的错误处置流管理的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法500由图1的错误处置流管理组件113执行。虽然以特定序列或次序来示出,但是除非另外规定,否则可修改操作的次序。因此,应理解,所说明的实施例仅为实例,且所说明的操作可以不同次序执行,且一些操作可并行地执行。另外,在一些实施例中,可省略一或多个操作。因此,在每一实施例中并不要求所说明的全部操作,且其它处理流程是可能的。
在操作510处,处理逻辑检测关于驻留于存储器装置的块中的数据的读取错误。在一些实施例中,块可以是与电压偏移区间相关联的块族的部分。
在操作520处,处理逻辑确定待执行以恢复与读取错误相关联的数据的错误处置操作的次序。举例来说,处理逻辑可使用元数据表(例如,元数据表410和/或420)确定哪个错误处置流与电压偏移区间相关联,以及错误处置流指定的错误处置操作的次序(以及其参数)。
在操作530处,处理逻辑执行错误处置流的至少一个错误处置操作。举例来说,处理逻辑可执行错误处置流的第一错误处置操作。响应于错误处置操作未能恢复数据,处理逻辑可执行错误处置流的第二错误处置操作,依此类推。
在操作540处,处理逻辑可执行对错误处置流的调整。举例来说,所述调整可响应于错误处置流的一或多个错误处置操作未能恢复数据,满足阈值准则等。在一些实施例中,处理逻辑可调整错误处置流中的错误处置操作的次序。举例来说,可基于对块执行的编程-擦除操作的数目超过预定准则、基于恢复数据的错误处置操作的成功率和/或时延等来调整次序。在一些实施例中,处理逻辑可维持电压偏移区间的读取错误率的记录,并且响应于检测到读取错误率满足阈值准则,处理逻辑可调整与错误处置操作相关联的读取电压偏移。在一些实施例中,处理逻辑可确定块的TAP值与相邻电压偏移区间的TAP值的接近度,并且基于与相邻电压偏移区间相关联的错误处置流调整读取电压偏移。在一些实施例中,处理逻辑可执行校准程序(例如cRLC)以确定块的区间关联并且增加与校准程序相关联的页样本数目。在一些实施例中,处理逻辑可确定与块相关联的编程擦除循环数目,并且响应于确定编程擦除循环数目超过预定阈值,调整错误处置流中的错误处置操作的次序或调整与一或多个错误处置操作相关联的读取电压调整。在一些实施例中,处理逻辑可基于哪个错误处置操作恢复了数据来更新错误处置操作的次序。
图6说明计算机系统600的实例机器,在所述计算机系统600内可执行用于致使所述机器执行本文中所论述的方法中的任一种或多种方法的指令集。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用以执行控制器的操作(例如,运行操作系统以执行对应于图1的错误处置流管理组件113的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、闪存存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,闪存存储器、静态随机存取存储器(SRAM)等),以及数据存储系统618,其经由总线630彼此通信。处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置602被配置成执行指令626以用于执行本文中所论述的操作和步骤。计算机系统600可另外包含网络接口装置608以在网络620上通信。
数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任一或多种的软件。指令626还可在由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包含用于实施对应于图1的错误处置流管理组件113的功能性的指令。尽管在实例实施例中机器可读存储媒体624展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。举例来说,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读取存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。

Claims (20)

1.一种系统,其包括:
存储器装置;和
处理装置,其以操作方式耦合到所述存储器装置以执行包括以下各项的操作:
检测关于驻留于所述存储器装置的块中的数据的读取错误,其中所述块与电压偏移区间相关联;
确定待执行以恢复与所述读取错误相关联的数据的多个错误处置操作的次序,其中所述次序在元数据表中指定并且基于与所述块相关联的所述电压偏移区间;和
按所述元数据表指定的次序执行所述多个错误处置操作中的至少一个错误处置操作。
2.根据权利要求1所述的系统,其中所述处理装置将进一步执行包括以下各项的操作:
调整所述多个错误处置操作的所述次序。
3.根据权利要求1所述的系统,其中所述处理装置将进一步执行包括以下各项的操作:
维持所述电压偏移区间的读取错误率的记录;和
响应于检测到所述读取错误率满足阈值准则,调整与至少一个错误处置操作相关联的读取电压偏移。
4.根据权利要求1所述的系统,其中所述处理装置将进一步执行包括以下各项的操作:
确定所述块的编程后时间TAP值与相邻电压偏移区间的TAP值的接近度,和基于与所述相邻电压偏移区间相关联的错误处置流来调整读取电压偏移。
5.根据权利要求1所述的系统,其中所述处理装置将进一步执行包括以下各项的操作:
执行校准程序以确定所述块的区间关联;和
增加与所述校准程序相关联的页样本的数目。
6.根据权利要求1所述的系统,其中所述处理装置将进一步执行包括以下各项的操作:
确定与所述块相关联的编程擦除循环的数目,和
响应于确定所述编程擦除循环数目超过预定阈值,调整所述多个错误处置操作的所述次序或与所述错误处置操作中的一个相关联的读取电压调整中的至少一个。
7.根据权利要求1所述的系统,其中所述处理装置将进一步执行包括以下各项的操作:
基于所述多个错误处置操作中的哪个错误处置操作恢复了所述数据来更新所述多个错误处置操作的所述次序。
8.根据权利要求1所述的系统,其中所述处理装置将进一步执行包括以下各项的操作:
基于与所述多个错误处置操作中的每一个相关联的时延数据来更新所述多个错误处置操作的所述次序。
9.一种方法,其包括:
检测关于驻留于所述存储器装置的块中的数据的读取错误,其中所述块与电压偏移区间相关联;
按元数据表指定的次序执行多个错误处置操作中的至少一个错误处置操作,其中所述多个错误处置操作的所述次序是基于与所述块相关联的所述电压偏移区间;和
执行对错误处置流的调整。
10.根据权利要求9所述的方法,其中执行对所述错误处置流的所述调整包括:
调整所述错误处置流中的所述多个错误处置操作的次序。
11.根据权利要求9所述的方法,其中执行对所述错误处置流的所述调整包括:
调整与所述至少一个错误处置操作相关联的读取电压偏移。
12.根据权利要求9所述的方法,其中执行对所述错误处置流的所述调整包括:
基于与相邻电压偏移区间相关联的另一错误处置流来调整读取电压偏移。
13.根据权利要求9所述的方法,其中执行对所述错误处置流的所述调整包括:
增加与校准程序相关联的页样本的数目以确定所述块的区间关联。
14.根据权利要求10所述的方法,其中所述调整所述错误处置流中的所述多个错误处置操作的所述次序是基于所述多个错误处置操作中的哪个错误处置操作恢复了所述数据。
15.一种包括指令的非暂时性计算机可读存储媒体,所述指令当由以操作方式耦合到存储器的处理装置执行时执行包括以下操作的操作:
检测关于驻留于所述存储器装置的块中的数据的读取错误,其中所述块与电压偏移区间相关联;
确定待执行以恢复与所述读取错误相关联的数据的多个错误处置操作的次序,其中所述次序在元数据表中指定并且基于与所述块相关联的所述电压偏移区间;和
按所述元数据表指定的次序执行所述多个错误处置操作中的至少一个错误处置操作。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置将进一步执行包括以下各项的操作:
调整所述多个错误处置操作的所述次序。
17.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置将进一步执行包括以下各项的操作:
维持所述电压偏移区间的读取错误率的记录;和
响应于检测到所述读取错误率满足阈值准则,调整与至少一个错误处置操作相关联的读取电压偏移。
18.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置将进一步执行包括以下各项的操作:
确定所述块的编程后时间TAP值与相邻电压偏移区间的TAP值的接近度,和
基于与所述相邻电压偏移区间相关联的错误处置流来调整读取电压偏移。
19.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置将进一步执行包括以下各项的操作:
执行校准程序以确定所述块的区间关联;和
增加与所述校准程序相关联的页样本的数目。
20.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置将进一步执行包括以下各项的操作:
基于以下中的至少一个来更新所述多个错误处置操作的所述次序:所述多个错误处置操作中的哪个错误处置操作恢复了所述数据或与所述多个错误处置操作中的每一个相关联的时延数据。
CN202210272849.9A 2021-03-18 2022-03-18 存储器装置中的错误处置流管理 Pending CN115114060A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/205,091 US11532373B2 (en) 2021-03-18 2021-03-18 Managing error-handling flows in memory devices
US17/205,091 2021-03-18

Publications (1)

Publication Number Publication Date
CN115114060A true CN115114060A (zh) 2022-09-27

Family

ID=83284008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210272849.9A Pending CN115114060A (zh) 2021-03-18 2022-03-18 存储器装置中的错误处置流管理

Country Status (2)

Country Link
US (2) US11532373B2 (zh)
CN (1) CN115114060A (zh)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304559B2 (en) * 2016-12-30 2019-05-28 Western Digital Technologies, Inc. Memory write verification using temperature compensation
KR102431238B1 (ko) * 2017-10-11 2022-08-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10658056B2 (en) * 2017-12-22 2020-05-19 Intel Corporation Internal copy to handle NAND program fail
US11126495B2 (en) * 2018-03-07 2021-09-21 Micron Technology, Inc. Dynamic error handling in a memory system
WO2019217454A1 (en) 2018-05-08 2019-11-14 Micron Technology, Inc. Read error recovery
US11175979B2 (en) 2019-08-06 2021-11-16 Micron Technology, Inc. Prioritization of error control operations at a memory sub-system
KR20210105096A (ko) * 2020-02-18 2021-08-26 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20210121650A (ko) 2020-03-31 2021-10-08 에스케이하이닉스 주식회사 반도체 메모리 장치, 컨트롤러 및 이들을 포함하는 메모리 시스템의 동작 방법
CN111863097B (zh) * 2020-06-29 2022-06-17 联芸科技(杭州)有限公司 快闪存储器的读取控制方法及装置

Also Published As

Publication number Publication date
US20230046724A1 (en) 2023-02-16
US20220301652A1 (en) 2022-09-22
US11532373B2 (en) 2022-12-20
US11837307B2 (en) 2023-12-05

Similar Documents

Publication Publication Date Title
US11455194B2 (en) Management of unmapped allocation units of a memory sub-system
US11217320B1 (en) Bin placement according to program-erase cycles
US11410734B1 (en) Voltage bin selection for blocks of a memory device after power up of the memory device
US11600354B2 (en) Determination of state metrics of memory sub-systems following power events
CN114175163A (zh) 基于存储器子系统的特性执行刷新操作
US11955194B2 (en) Tracking and refreshing state metrics in memory sub-systems
US11894090B2 (en) Selective power-on scrub of memory units
US20230325273A1 (en) Managing error-handling flows in memory devices
US11462280B2 (en) Adjusting pass-through voltage based on threshold voltage shift
US11693745B2 (en) Error-handling flows in memory devices based on bins
US11705192B2 (en) Managing read level voltage offsets for low threshold voltage offset bin placements
CN115004303A (zh) 存储器子系统中的电荷损失跟踪
US11837307B2 (en) Managing error-handling flows in memory devices
US11922041B2 (en) Threshold voltage bin calibration at memory device power up
US11823722B2 (en) Determining voltage offsets for memory read operations
US11977774B2 (en) Charge loss mitigation throughout memory device lifecycle by proactive window shift
US20230396270A1 (en) Dynamic decoding for memory systems
US20240036973A1 (en) Accessing data using error correction operation(s) to reduce latency at a memory sub-system
CN116266470A (zh) 用于选择器阈值电压扫描的动态优先级排序的方法和设备
CN115938443A (zh) 非易失性存储器的存储器操作之间的时间间隔

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