
技术摘要:
主动减少重读触发。半导体装置的实施例可以包括用于执行以下步骤的技术:确定与针对持久性存储介质的读取请求相关联的错误率,将所确定的错误率与失败前门限进行比较,以及如果所确定的错误率超过失败前门限则调整用于持久性存储介质的读取电压偏移方向。公开并要求保 全部
背景技术:
诸如固态驱动器(SSD)之类的持久性存储设备可以包括诸如NAND存储器之类的介 质。诸如NAND存储器之类的各种类型的非易失性存储器(NVM)可以利用各种纠错方案来响 应于读取错误而搜索改善的读取参考电压。读取失败可能源自多种错误机制和不同的使用 模型。这些错误机制和使用模型可以更改存储器单元门限电压(Vt)分布。作为改变Vt分布 的结果,移动读取参考电压值并重试读取存储器单元可以帮助防止读取错误。读取参考的 这种移动可以被称为移动读取参考(MRR)。 附图说明 通过阅读以下说明书和所附权利要求并参考以下附图,实施例的各种优点对于本 领域技术人员将变得显而易见,在附图中: 图1是根据实施例的电子存储系统的示例的框图; 图2是根据实施例的半导体装置的示例的框图; 图3A至图3C是根据实施例的控制存储装置的方法的示例的流程图; 图4A至图4E是根据实施例的主动移动读取参考电压的方法的示例的流程图; 图5A至图5C是根据实施例的主动移动读取参考电压的方法的另一示例的流程图; 图6是根据实施例的在四级每单元(QLC)NAND中的门限电压分布的示例的示意图; 图7是根据实施例的将数据示例性地编码成格雷码的说明性表; 图8是根据实施例的自动读取校准的示例的示意图; 图9是根据实施例的计算系统的示例的框图;并且 图10是根据实施例的SSD的示例的框图。
技术实现要素:
本文描述的各种实施例可以包括存储器组件和/或到存储器组件的接口。这样的 存储器组件可以包括易失性和/或非易失性(NV)存储器。易失性存储器可以是需要电力以 维持由该介质存储的数据的状态的存储介质。易失性存储器的非限制性示例可以包括各种 类型的随机存取存储器(RAM),例如动态RAM(DRAM)或静态RAM(SRAM)。可以在存储器模块中 使用的一种特定类型的DRAM是同步动态RAM(SDRAM)。在特定实施例中,存储器组件的DRAM 可以符合由联合电子设备工程委员会(JEDEC)颁布的标准,例如用于双倍数据速率(DDR) SDRAM的JESD79F、用于DDR2 SDRAM的JESD79-2F、用于DDR3 SDRAM的JESD79-3F、用于DDR4 SDRAM的JESD79-4A、用于低功耗DDR(LPDDR)的JESD209、用于LPDDR2的JESD209-2、用于 LPDDR3的JESD209-3和用于LPDDR4的JESD209-4(这些标准可在www.jedec.org处获得)。这 样的标准(和类似的标准)可以被称为基于DDR的标准,并且实现这样的标准的存储设备的 4 CN 111581009 A 说 明 书 2/15 页 通信接口可以被称为基于DDR的接口。 NVM可以是不需要电力来维持由该介质存储的数据的状态的存储介质。在一个实 施例中,存储器设备可以包括可块寻址存储器设备,例如基于NAND或NOR技术的那些。存储 器设备还可以包括未来代的非易失性设备,例如三维(3D)交叉点存储器设备,或其他可字 节寻址的就地写入非易失性存储器设备。在一个实施例中,该存储器设备可以是或可以包 括使用硫族化物玻璃的存储器设备、多门限级NAND闪存、NOR闪存、单级或多级相变存储器 (PCM)、电阻式存储器、纳米线存储器、铁电晶体管RAM(FeTRAM)、反铁电存储器、包括忆阻器 技术的磁阻RAM(MRAM)存储器、包括金属氧化物基体、氧空位基体和导电桥RAM(CB-RAM)的 电阻存储器、或自旋转移扭矩(STT)-MRAM、基于自旋电子磁性结存储器的设备、基于磁性隧 穿结(MTJ)的设备、基于DW(域壁)和SOT(自旋轨道传输)的设备、基于晶闸管(thiristor)的 存储设备、或以上各项的任何项的组合、或其他存储器。存储器设备可以指代管芯本身和/ 或封装的存储器产品。在特定实施例中,具有非易失性存储器的存储器组件可以符合由 JEDEC颁布的一个或多个标准,例如JESD218、JESD219、JESD220-1、JESD223B、JESD223-1或 其他合适的标准(本文引用的JEDEC标准可在jedec.org处获得)。 现在转到图1,电子存储系统10的实施例可以包括持久性存储介质12,以及通信地 耦合到持久性存储介质12的控制器11。控制器11可以包括逻辑13,以确定与针对持久性存 储介质12的读取请求相关联的错误率(例如,原始误码率(RBER)),将所确定的错误率与失 败前门限(pre-fail threshold)进行比较,如果所确定的错误率超过失败前门限,则调整 用于持久性存储介质12的读取电压偏移方向。在一些实施例中,逻辑13可以被配置为基于 平面中的错误数来针对信道任务(channel task)确定错误率,如果错误率超过失败前门限 则引起中断,并且响应于中断而校准读取参考偏移。例如,逻辑13还可以被配置为基于持久 性存储介质12的自动读取校准来校准读取参考偏移,并且基于持久性存储介质提供的电压 值来调整读取电压偏移方向。在一些实施例中,逻辑13可以替代地或附加地被配置为基于 具有电平指示符的对持久性存储介质12的硬位读取来校准读取参考偏移,并且基于被解码 为零的第一数量的符号和被解码为一的第二数量的符号来调整读取电压偏移方向。在本文 的任何实施例中,持久性存储介质12可以包括NAND介质,并且电子存储系统10可以是SSD设 备。在一些实施例中,逻辑13可以位于包括控制器11的各种组件中或与各种组件共置(例 如,在同一管芯上)。 上述控制器11、持久性存储介质12、逻辑13以及其他系统组件中的每一个的实施 例可以实现在硬件、软件或其任何合适的组合中。例如,硬件实施方式可以包括可配置逻 辑,例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)或 使用电路技术(例如,专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体 管逻辑(TTL)技术)的固定功能逻辑硬件或其任何组合。控制器11的实施例可以包括通用控 制器、专用控制器、存储器控制器、存储器控制器、微控制器、通用处理器、中央处理器单元 (CPU)等。 替代地或附加地,这些组件的全部或部分可以作为存储在机器或计算机可读存储 介质(例如,随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等)中 的一组逻辑指令而实现在一个或多个模块中,以供处理器或计算设备执行。例如,用于执行 组件的操作的计算机程序代码可以以一种或多种操作系统(OS)适用/适当的编程语言的任 5 CN 111581009 A 说 明 书 3/15 页 何组合编写,包括面向对象编程语言(例如,PYTHON、PERL、JAVA、SMALLTALK、C 、C#等)以及 常规过程编程语言(例如,“C”编程语言或类似编程语言)。例如,持久性存储介质12或其他 系统存储器可以存储一组指令,所述指令在由控制器11执行时使系统10实现系统10的一个 或多个组件、特征或方面(例如,逻辑13,其确定错误率,如果所确定的错误率超过失败前门 限,则调整读取电压偏移方向,等等)。 现在转到图2,与持久性存储介质一起使用的半导体装置15的实施例可以包括一 个或多个基板16以及耦合到一个或多个基板16的逻辑17,其中,逻辑17至少部分地实现在 一个或多个可配置逻辑和固定功能硬件逻辑中。耦合到一个或多个基板16的逻辑17可以被 配置为确定与针对持久性存储介质的读取请求相关联的错误率,将所确定的错误率与失败 前门限进行比较,并且如果所确定的错误率超过失败前门限,则调整读取电压偏移方向。在 一些实施例中,逻辑17可以被配置为基于平面中的错误数量来针对信道任务确定错误率, 如果错误率超过失败前门限,则引起中断,并且响应于中断而校准读取参考偏移。例如,逻 辑17还可以被配置为基于对持久性存储介质的自动读取校准来校准读取参考偏移,并且基 于持久性存储介质提供的电压值来调整读取电压偏移方向。在一些实施例中,逻辑17可以 替代地或附加地被配置为基于具有电平指示符的对持久性存储介质的硬位读取来校准读 取参考偏移,并且基于被解码为零的第一数量的符号和被解码为一的第二数量的符号来调 整读取电压偏移方向。在本文的任何实施例中,持久性存储介质可以包括NAND介质,其可以 被包括在SSD设备中。在一些实施例中,耦合到一个或多个基板16的逻辑17可以包括位于一 个或多个基板16内的晶体管沟道区。 逻辑17的实施例以及装置15的其他组件可以实现在硬件、软件或其任何组合中, 包括至少部分的硬件实施方式。例如,硬件实施方式可以包括可配置逻辑,例如PLA、FPGA、 CPLD或使用电路技术(例如,ASIC、CMOS或TTL技术)的固定功能逻辑硬件,或其任何组合。另 外,这些组件的一部分可以实现在一个或多个模块中作为存储在机器或计算机可读存储介 质(例如,RAM、ROM、PROM、固件、闪存等)中的一组逻辑指令,以供处理器或计算设备执行。例 如,用于执行组件的操作的计算机程序代码可以以一种或多种OS适用/适当的编程语言的 任何组合来编写,包括面向对象的编程语言(例如,PYTHON、PERL、JAVA、SMALLTALK、C 、C# 等)以及常规过程编程语言(例如,“C”编程语言或类似的编程语言)。 装置15可以实现方法20(图3A至图3C)或本文讨论的任何实施例的一个或多个方 面。在一些实施例中,所示的装置15可以包括一个或多个基板16(例如,硅、蓝宝石、砷化镓) 和耦合到基板16的逻辑17(例如,晶体管阵列和其他集成电路/IC组件)。逻辑17可以至少部 分地实现在可配置逻辑或固定功能逻辑硬件中。在一个示例中,逻辑17可以包括被定位(例 如,嵌入)在基板16内的晶体管沟道区。因此,逻辑17和基板16之间的界面可以不是突变结。 逻辑17也可以被认为包括在基板16的初始晶片上生长的外延层。 现在转到图3A至图3C,控制存储装置的方法20的实施例可以包括:在框21处确定 与针对持久性存储介质的读取请求相关联的错误率;在框22处将所确定的错误率与失败前 门限进行比较;以及在框23处如果所确定的错误率超过失败前门限,则调整用于持久性存 储介质的读取电压偏移方向。方法20的一些实施例可以包括:在框24处基于平面中的错误 数来针对信道任务确定错误率,在框25处如果错误率超过失败前门限则引起中断,并在框 26处响应于该中断来校准读取参考偏移。例如,方法20可以包括:基于在框27处对持久性存 6 CN 111581009 A 说 明 书 4/15 页 储介质的自动读取校准而校准读取参考偏移,并在框28处基于持久性存储介质提供的电压 值来调整读取电压偏移方向。可替代地或附加地,方法20可以包括:在框29处基于具有电平 指示符的对持久性存储介质的硬位读取来校准读取参考偏移;以及在框30处基于被解码为 零的第一数量的符号和被解码为一的第二数量的符号来调整读取电压偏移方向。在本文的 任何实施例中,在框31处持久性存储介质可以包括NAND介质。 方法20的实施例可以在系统、装置、计算机、设备等中实现,例如本文所述的那些。 更具体地,方法20的硬件实施方式可以包括可配置逻辑,例如PLA、FPGA、CPLD、或者在使用 电路技术(例如,ASIC、CMOS或TTL技术)的固定功能逻辑硬件中,或者它们的任何组合。替代 地或附加地,方法20可以被实现在一个或多个模块中作为存储在机器或计算机可读存储介 质(例如,RAM、ROM、PROM、固件、闪存等)中的一组逻辑指令,以供处理器或计算设备执行。例 如,用于执行组件的操作的计算机程序代码可以以一种或多种OS适用/适当的编程语言的 任何组合来编写,包括面向对象的编程语言(例如,PYTHON、PERL、JAVA、SMALLTALK、C 、C# 等)以及常规过程编程语言(例如,“C”编程语言或类似的编程语言)。 例如,方法20可以在如下面结合示例23至29所述的计算机可读介质上实现。方法 20的实施例或部分可以在固件、应用(例如,通过应用编程接口(API))或在操作系统(OS)上 运行的驱动程序软件中实现。另外,逻辑指令可能包括汇编程序指令、指令集架构(ISA)指 令、机器指令、机器相关指令、微码、状态设置数据、用于集成电路的配置数据、对硬件固有 的电子电路和/或其他结构组件(例如,主机处理器、中央处理器/CPU、微控制器等)进行个 性化的状态信息。 一些实施例可以有利地提供用于在错误恢复期间主动减少重读触发的技术。例 如,在NAND闪存设备中,当读取失败时,可以使用另一读取参考电压来重读同一页面。例如, 在一些SSD中,可以在错误恢复中利用MRR技术来重读同一页面。当触发MRR时,将施加不同 的读取电压。然而,重读时间加上低密度奇偶校验(LDPC)解码时间、固件和硬件开销使错误 恢复延时比未触发MRR时要长得多。有利地,一些实施例可以主动降低MRR触发率。 一些实施例可以在将RBER增加到某个水平时调整读取电的偏移方向和值,以防止 MRR触发(例如,在读取失败之前)。例如,在一些实施例中,当信道任务期间平面中存在足够 的错误时,固件获得中断并设置特征以校准通过组件的读取参考偏移。读取参考偏移的校 准可以通过具有一个电平的分段自动读取校准(ARC)、快速ARC、或具有电平指示符的硬位 读取中的一个或多个来执行。如果发出分段ARC或快速ARC,则NAND介质将提供最佳电压。如 果发出具有电平指示符的硬位读取,则可以基于被解码为0的符号数和被解码为1的符号数 来计算读取电压偏移。固件可以使用新电压(例如,由NAND介质提供或由固件计算)作为下 面具有相同的页面类型的读取中的粘性电压。一些实施例可以被称为主动MRR。一些实施例 可以有利地主动防止MRR触发以降低触发率。适当地在SSD系统中实现的一些实施例可以有 利地提供更少的延时和更好的服务质量。例如,一些实施例可以在错误校正码(ECC)未能防 止MRR触发之前调整读取电压。 在不限于特定的实施方式的情况下,用于主动防止MRR触发的合适技术的实施例 可以包括以下硬件、固件和/或软件特征中的一个或多个:1)存储器信道提供两组的每任务 ID寄存器,其提供主动MRR状态,每组包含八(8)位,其中,每平面一位;第一组(MRR状态组1) 指示每个平面是否超过最小和(Min-Sum)解码器数量和迭代计数门限;第二组(MRR状态组 7 CN 111581009 A 说 明 书 5/15 页 2)指示每个平面中最差的码字是否超过错误数门限。2)如果主动MRR状态组1或组2中的任 何位为1,则信道完成报告状态失败,但针对所有码字的校正成功。3)使用最小和解码器的 码字数量的八(8)个门限值是可由固件配置的;平面中读取的码字数量用作用于选择要使 用的门限的索引;例如:如果在一个平面中读取的码字数量为三(3),则使用三(3)作为索 引,以找到使用最小和解码器的码字数量的对应门限。4)最小和迭代计数的一(1)个门限值 是可由固件配置的。5)错误数的一(1)个门限是可由固件配置的。 6)如果任何平面的主动MRR状态为一(1),则固件将通过发出具有一个电平的分段 自动读取校准(ARC)、发出快速ARC、或发出具有电平指示符的单平面硬位读取以用于对同 一物理地址的下一个后台读取,来设置一个特征以校准通过NAND组件的读取电压偏移。7) 在下一次读取期间,如果发出分段ARC:a)分段ARC一次被发出一个电平,b)该电平基于优先 级并被跟踪,并且c)NAND将提供最佳电压。8)在下一次读取期间,如果发出快速ARC,则NAND 将为所有电平提供最佳电压。9)在下一次读取期间,如果发出具有电平指示符的硬位读取: a)使用最小和软解码,并且信道将启用用于符号翻转信息的LDPC校正(LCOR)记录;b)LCOR 在单个平面读取信道任务的一页中累积符号翻转信息,并锁定记录此数据,以防止被下一 个信道任务覆盖;b)固件从LCOR日志记录中获得数据,并决定要针对读取电压移动的方向 和值以防止触发MRR,c)固件在已经处理完数据后向LCOR发送确认信号,并且d)LCOR将日志 记录解锁以释放日志记录空间以供下一次使用。 10)固件将使用由分段ARC或快速ARC中的NAND提供的最佳电压,或由固件基于在 具有电平指示符的硬位读取中的符号翻转信息而计算出的电压作为具有相同页面类型的 随后的读取中的粘性电压。11)逐电平地发出分段的ARC,直到不再触发主动MRR状态为止。 12)系统执行一些后台读取以提高NAND可靠性。一些实施例可以将这些后台读取用作具有 电平指示符的分段ARC读取/快速ARC读取/硬位读取;基本上,一些实施例可以将自动复位 读取(ARR)读取与主动MRR结合。 在不限于特定实施方式的情况下,一些实施例可以包括以下硬件(例如,ASIC)特 征中的一个或多个:1)ECC:i)用于每个码字的输出解码器指示符:一(1)指示最小和解码器 正被使用,0指示位翻转算法(BFA)正被使用;ii)用于每个码字的一(1)位;iii)输出用于每 个码字的八(8)位最小和迭代计数;iv)针对每个码字输出十六(16)位错误数;v)输出每个 码字中被解码为0的输入符号i的数量和被解码为1的输入符号i的数量;vi)使用来自最小 和解码器的软解码,vii)每个符号翻转计数为16位长,并且取决于页面的类型,针对每个码 字存在多个符号计数器;viii)支持具有电平指示符(LI)的读取模式硬位读取(HBR)(HBR LI)。2)LCOR:i)在一页中累积符号翻转计数(例如,32个计数器,其中,每个计数器为19位 宽);ii)为HBR LI读取模式提供对数似然无线电(LLR)映射;iii)LLR映射正在基于符号的 最高有效位(例如,低阶位被忽略)使用硬LLR;iv)符号的低位在符号翻转信息日志中有所 区别。3)LCOR日志记录:i)关于符号翻转计数的信息被记录在LCOR上;ii)用于每个信道的 四(4)个日志缓冲区条目,其中,每个条目包含32个计数器;iii)锁定机制,以用于防止固件 在读取用于一个信道任务的日志数据时盖写数据;iv)以及解锁机制,以允许在接收到来自 固件的确认信号时将数据写入,以释放记录空间以供下一次使用。 4)信道完成逻辑:i)计算在一个信道任务的每个页面中使用最小和解码器的码字 的总数;ii)如果在页面中使用最小和解码器的码字数量大于最大门限,并且该页面中的任 8 CN 111581009 A 说 明 书 6/15 页 何码字的最小和迭代计数大于门限,则主动MRR状态寄存器组1针对平面被设置为1;iii)如 果页面中的任何码字的错误数大于门限,则主动MRR状态寄存器组2针对该平面被设置为1; iv)需要两(2)组主动MRR状态寄存器,每组8位,其中,每个平面1位;v)仅在解码成功时有 效。5)信道完成状态报告:i)两(2)个寄存器,其中,每个寄存器八(8)位宽,以报告主动MRR 状态,其中,每个平面一(1)位。6)在NAND设计中实现硬位读取 电平指示符。7)在NAND设计 中实现的分段ARC。8)在NAND设计中实现的快速ARC。 在不限于特定实施方式的情况下,一些实施例可以包括以下固件特征中的一个或 多个:1)当主动MRR状态组1或组2为非零时,固件被中断并读取错误状态寄存器;固件设置 了特征,以通过分段ARC、快速ARC和具有电平指示符的硬位读取中的一个或多个来校准通 过组件设计的读取参考偏移。2)固件可以将分段ARC发出到相同的物理地址,以供下一次后 台读取,NAND提供最佳的读取电压。3)固件可以向相同的物理地址发出快速ARC,以供下一 次后台读取,NAND提供最佳的读取电压。4)固件可以发出具有位指示符的硬位读取,以供下 一次后台读取:a)固件进行分配检查以查看日志记录缓冲区是否可用;b)如果日志记录缓 冲区不可用,则固件完成任务,将数据传输到主机,并且开始下一个任务;c)否则:固件设置 了特征,以执行具有位指示符的硬位读取,以供对相同的物理地址的下一次读取;同时,固 件启用LCOR日志记录以供下一次读取。然后固件完成任务,将数据传输到主机,并且开始下 一个任务;在下一次读取中,如果具有电平指示符的硬位读取指示灯亮起并且所有码字都 已成功解码,则固件将从LCOR日志记录中读取符号翻转计数,并决定在同一管芯中针对下 一次读取,读取电压需要向哪个方向移动;固件向LCOR发送确认信号;然后固件完成任务, 将数据传输到主机,并且开始下一个任务;固件还设置了特征,以针对随后的读取调整读取 电压,并禁用日志记录和电平指示符。 现在转到图4A至图4E,利用HBR LI主动移动读取参考电压的方法35的实施例可以 示出具有虚线框的名义上的硬件动作和具有实线框的名义上的固件动作。本领域技术人员 将理解,取决于特定的实施方式,可以替代地在硬件、固件和/或软件中实现这种框的各方 面。硬件动作和固件动作之间的名义上的分开应被理解为非限制性示例。如图所示,方法35 包括在框36处的主机读取,然后在框37确定是否启用了具有电平指示符的硬读取和LCOR日 志记录。如果是,则方法35然后可以包括在框38处由LCOR从ECC累积每页面类型的符号翻转 计数,并在框39处锁定地记录累积的符号翻转计数,然后前进到框40。 如果在框37处没有启用具有电平指示符的硬读取和LCOR日志记录,则方法35可以 在框40处包括信道完成中断,随后在框41处确定在该信道任务中所有码字解码是否成功。 如果否,则方法35可以包括在框42处将信道任务完成状态设置为失败,在框43处针对错误 固件被中断,以及在框44处固件读取错误状态寄存器,其中,码字完成状态和平面状态为非 零。方法35然后可以包括:在框45处确定是否启用具有电平指示符的硬读取。如果否,则在 框46处,方法35可以前进到触发MRR并基于码字完成状态和平面状态来执行MRR。如果是,则 方法35可以前进到在框47处确定是否启用LCOR日志记录。如果否,则方法35可以前进到在 框48处固件设置用于禁用日志记录和电平指示符的特征,然后前进到框46。如果是,则方法 35可以前进到在框49处固件向LCOR发送确认信号以及在框50处LCOR解锁和清除日志记录, 然后顺序前进到框48和46。在框46之后,方法35可以包括在框51处确定MRR是否成功,并且 如果是,则在框52处固件继续完成任务,将数据传输到主机,并且开始下一个任务。如果否, 9 CN 111581009 A 说 明 书 7/15 页 则方法35可以在前进到框52之前在框53处执行XOR运算。然后,方法35可以前进到框36处的 下一个主机读取。 如果在框41处在该信道任务中所有码字解码成功,则方法35可以前进到在框54处 确定是否启用了具有电平指示符的硬读取。如果是,则该方法可以前进到在框55处将信道 任务完成状态设置为成功。方法35然后可以前进到固件从LCOR日志记录读取符号翻转计 数,并在框56处决定在同一管芯中针对下一个主机读取的读取移动电压到哪个方向,在框 57处固件发送确认信号到LCOR,在框58处LCOR解锁和清除日志记录,在框59处固件完成任 务,将数据传输到主机并且开始下一个任务,并且在框60处固件将特征设置为调整读取电 压并禁用日志记录和电平指示符。方法35然后可以前进到在框36处的下一个主机读取。 如果在框54处未启用具有电平指示符的硬读取,则方法35可以前进到在框61处确 定是否有任何页面具有大于门限的使用最小和解码器的码字数,以及该页面中最差的码字 是否具有大于门限的最小和迭代计数,或者是否有任何码字具有大于门限的错误数。如果 否,则方法35可以在框62处将信道任务完成状态设置为成功,并且在框63处固件完成任务, 将数据传输到主机并开始下一个任务(例如,此后方法35在框36处前进到下一个主机读 取)。如果是,则方法35可以前进到框64处将信道任务完成状态设置为失败。在框65处,方法 35前进到信道提供两组8位主动MRR状态寄存器,每平面一位,其中,组1指示使用最小和解 码器的码字数量是否大于门限,并且最差码字的最小和迭代计数是否大于每个平面的门 限,并且组2指示平面中的任何码字的错误数是否大于门限。然后,方法35前进到在框66处 固件针对错误而被中断,并且在框67处固件读取错误状态寄存器,其中,码字完成状态和平 面状态都为0,但是主动MRR状态为非零。方法35然后在框68处前进到分配检查日志记录缓 冲区是否可用。如果否,则方法前进到框63处(例如,此后,方法35前进到在框36处的下一次 主机读取)。 如果在框68处日志记录缓冲区可用,则方法35前进到在框69处固件设置具有电平 指示符的硬读取的特征以用于在具有相同页面类型的同一管芯、同一平面、同一块中的下 一次读取。然后,方法35前进到在框70处固件启用LCOR记录以供具有电平指示符的下一次 读取,并且在框71处固件完成任务,将数据传输到主机并且开始下一个任务。方法35然后可 以前进到在框36处的下一次主机读取。 现在转到图5A至图5C,利用分段ARC或快速ARC来主动移动读取参考电压的方法75 的实施例可以示出具有虚线框的名义上的硬件动作和具有实线框的名义上的固件动作。本 领域技术人员将理解,取决于特定的实施方式,可以替代地在硬件、固件和/或软件中实现 这种框的各方面。硬件动作和固件动作之间的名义上的分开应被理解为非限制性示例。如 图所示,方法75包括在框76处的读取命令,随后在框77处确定是否启用了后台分段ARC读取 或快速ARC读取。如果是,则方法75前进到在框78处固件设置用于针对由NAND提供的最佳电 压调整电压以供下一次读取的特征,并且然后在框76处返回以用于下一个读取命令。如果 否,则方法75前进到在框79处的信道完成中断,随后在框80处确定在该信道任务中所有码 字解码是否成功。 如果在框80处在该信道任务中所有码字解码均未成功,则方法75前进到在框81处 将信道任务完成状态设置为失败,在框82处固件针对错误而被中断,以及在框83处固件读 取错误状态寄存器,其中,码字完成状态和平面状态为非零。然后方法75可以前进到在框84 10 CN 111581009 A 说 明 书 8/15 页 处基于码字完成状态和平面状态触发MRR并执行MRR,并在框85处确定MRR是否成功。如果 是,则方法75前进到在框86处固件完成任务,将数据传输到主机,并开始下一个任务。如果 否,则方法75可以前进到在框87处执行XOR运算,然后前进到框86。方法75然后可以前进到 在框76处的下一个读取命令。 如果在框80处在该信道任务中所有码字解码成功,则方法75前进到在框88处确定 是否有任何页面具有大于门限的使用最小和解码器的码字数量,以及该页面中最差码字是 否具有大于门限的最小和迭代计数,或者是否有任何码字具有大于门限的错误数。如果否, 则方法75可以前进到在框89处将信道任务完成状态设置为成功,并且在框90处固件完成任 务,将数据传输到主机并且开始下一个任务(例如,此后方法75前进到在框76处的下一个读 取命令)。如果是,则方法75可以前进到在框91处将信道任务完成状态设置为失败。在框92 处,方法75前进到信道提供两组8位主动MRR状态寄存器,每平面一位,其中,组1指示使用最 小和解码器的码字数量是否大于门限,最差码字的最小和迭代计数是否大于每个平面的门 限,并且组2指示平面中的任何码字的错误数是否大于门限。然后,方法75前进到在框93处 固件针对错误而被中断,以及在框94处固件读取错误状态寄存器,其中,码字完成状态和平 面状态全为0,但是主动MRR状态寄存器组1或组2为非零。然后,方法75前进到在框95处固件 设置具有一个电平的分段ARC读取或快速ARC以用于具有相同页面类型的同一管芯、同一平 面、同一块中的下一个后台读取的特征,以及在框96处,固件完成任务,将数据传输到主机 并且开始下一个任务(例如,此后,方法75前进到在框76处的下一个读取命令)。 HBR LI示例 现在转到图6,示意图示出了QLC NAND中的门限电压分布。在每单元N级的非易失 性存储器中,基于由用户提供的数据将每个单元编程为2N个可能状态之一。例如,在QLC NAND设备中,单元的门限电压被编程为图6所示的16个可能电平之一,其中,Li对应于电压 电平(i=0至15)并且Rj对应于参考电压(j=1至15)。 现在转到图7,说明性表格示出了根据示例性格雷码将数据可能地编码成16种可 能格雷码之一。为了对由用户提供的数据进行编码,使用诸如格雷码之类的代码。图7示出 了一种可能的格雷码,其中,基于由用户提供并由LP、UP、XP和TP表示的四(4)页数据中的对 应位的值来对每个单元进行编程。 为了读取数据,在参考电压下执行一系列读取操作。例如,为了根据图7的格雷编 码来读取LP数据,将单元的门限电压与R8进行比较。门限电压高于R8的单元被标识为0,并 且门限电压低于R8的单元被标识为1。实际上,当从一些单元中读取数据时一些错误是不可 避免的。例如,属于L8的一些单元可能被不正确地读取为1,并且属于L7的一些单元可能被 不正确地读取为0。ECC引擎用于校正数据。在校正数据之后,固件检查多少位从0校正为1 (N1),以及多少位从1校正为0(N2)。如果N1>N2,则更加最佳的读取电平是R8向左移位的电 平,而如果N1