校准非易失性存储器读取阈值

文档序号:1818132 发布日期:2021-11-09 浏览:15次 >En<

阅读说明:本技术 校准非易失性存储器读取阈值 (Calibrating non-volatile memory read thresholds ) 是由 D.阿拉罕 A.巴扎斯基 R.费因布拉特 D.罗兹曼 于 2021-04-08 设计创作,主要内容包括:本发明题为“校准非易失性存储器读取阈值”。在读取扫描操作中,以第一候选读取电平扫描第一读取电平窗口,该第一候选读取电平相对于该窗口内的其他候选读取电平激活最少数量的存储器单元。然后,基于两个相邻存储器状态中的至少一个存储器状态和与第二读取电平窗口相关联的一个或多个其他相邻存储器状态之间的相关性,以第二候选读取电平配置第二读取电平窗口。以第二候选读取电平扫描第二读取电平窗口,该第二候选读取电平相对于第二读取电平窗口内的其他候选读取电平激活最少数量的存储器单元,或导致最少误码。接下来,读取操作被配置为使用第一候选读取电平和第二候选读取电平。(The invention provides a method for calibrating a read threshold of a nonvolatile memory. In a read scan operation, a first window of read levels is scanned at a first candidate read level that activates a minimum number of memory cells relative to other candidate read levels within the window. The second read level window is then configured with a second candidate read level based on a correlation between at least one of the two adjacent memory states and one or more other adjacent memory states associated with the second read level window. The second read level window is scanned with a second candidate read level that activates a minimum number of memory cells, or causes a minimum number of bit errors, relative to other candidate read levels within the second read level window. Next, the read operation is configured to use the first candidate read level and the second candidate read level.)

校准非易失性存储器读取阈值

背景技术

随着NAND存储器单元存储技术从每存储器单元一位(单层单元SLC)进展到多层、三层和四层操作(每个存储器单元分别存储两位、三位和四位数据),在电压范围(也称为Vt窗口)内定义的存储器状态的数量以指数方式增加。当使用存储器单元的非易失性存储器设备时,存储器状态可随时间推移而移位到较高阈值电压或较低阈值电压。此外,存储器状态可扩展加宽并与相邻存储器状态重叠。可在制造非易失性存储器设备时以及之后多次执行读取扫描操作(也称为读取电平校准),以便确定合适的电压阈值以将存储器状态彼此区分并提供准确的读取操作。

然而,随着存储器管芯中的存储器单元数量以及每个单元存储的数据量(TLC、MLC、QLC、PLC)增加,读取扫描操作可能成为耗时的过程。可响应于环境变化(诸如温度波动或高设备使用率)来执行读取电平校准,并且读取电平校准可在存储器状态之间区分较窄和较窄的边际值。因此,需要更快且更有效的读取扫描操作。

发明内容

本公开涉及用于改进的读取扫描操作(也称为读取电平校准扫描)的方法。以第一候选读取电平扫描第一读取电平窗口,所述第一读取电平窗口被配置为测试两个相邻存储器状态之间的读取电平,所述第一候选读取电平相对于所述第一读取电平窗口内的其他候选读取电平激活最少数量的存储器单元。然后,基于两个相邻存储器状态中的至少一个存储器状态和与第二读取电平窗口相关联的一个或多个其他相邻存储器状态之间的相关性,以第二候选读取电平配置所述第二读取电平窗口。以第二候选读取电平扫描所述第二读取电平窗口,所述第二候选读取电平相对于所述第二读取电平窗口内的其他候选读取电平激活所述最少数量的存储器单元。最后,读取操作被配置为使用所述第一候选读取电平和所述第二候选读取电平。

本公开还涉及一种装置。所述装置包括存储器单元的三维存储器阵列、管芯控制器和读取扫描电路。所述管芯控制器被配置为与所述存储器单元一起执行存储操作。所述读取扫描电路使用第一组候选读取电平迭代地扫描一组存储器单元,直到候选读取电平相对于所述第一组候选读取电平内的其他候选读取电平激活所述最少数量的存储器单元。然后,所述读取扫描电路基于激活所述最少数量的存储器单元的所述候选读取电平确定第一存储器状态的第一读取电平。所述读取扫描电路检索所述第一存储器状态和所述第二存储器状态之间的相关性。然后,所述读取扫描电路使用所述相关性确定所述第二存储器状态的第二读取电平,并为后续读取操作设置所述第一读取电平和第二读取电平。

最后,本公开涉及包括非易失性存储器阵列和存储控制器的系统。所述非易失性存储器阵列包括多个存储器管芯。所述存储控制器包括读取/写入电路、读取扫描电路、纠错码解码器和校准电路。所述读取/写入电路将数据写入所述多个存储器管芯的存储器单元。所述读取扫描电路实现非易失性存储器阵列存储块的读取扫描操作。这些读取扫描操作基于每个存储块的两个存储器单元存储器状态之间的相关性测试多组候选读取电平。所述纠错码解码器确定在所述读取扫描操作期间读取的数据的估计误码率。所述校准电路基于由所述读取扫描电路确定的所述读取电平校准存储器单元。

附图说明

为了容易地识别对任何特定元件或动作的讨论,参考标号中最有意义的一个或多个数位是指首次引入该元件的附图标号。

图1示出了根据一个实施方案的存储系统100。

图2示出了根据一个实施方案的存储设备200。

图3示出了根据一个实施方案的存储器阵列300。

图4示出了根据一个实施方案的单元阈值电压分布曲线400。

图5示出了根据一个实施方案的用于多层存储单元500的示例性编码。

图6示出了示例性读取扫描操作600。

图7示出了根据一个实施方案的存储器状态之间的相关性700。

图8示出了根据一个实施方案的存储器状态之间的相关性800。

图9示出了根据一个实施方案的移位相关性表900。

图10示出了根据一个实施方案的宽度相关性表1000。

图11示出了根据一个实施方案的读取扫描操作1100。

图12示出了根据一个实施方案的存储设备200。

图13为根据一个实施方案的示例性存储系统1300的框图。

图14示出了根据一个实施方案的进行读取扫描操作的方法1400。

图15是可以结合某些实施方案的计算设备1500的示例框图。

具体实施方式

本文所公开并受权利要求书保护的解决方案使用存储器状态之间的相关性使读取扫描操作更有效、更准确且更快速。当某些存储器状态移位到较高阈值电压或较低阈值电压或加宽或变窄时,其他存储器状态可具有移位、加宽、变窄等的相关模式。这些相关性可为正相关性或负相关性。

在一个实施方案中,可以使用存储器状态的完全测试/校验过的第一读取电平与测试中的第二读取电平之间的相关性来减少候选读取电平的数量,测试这些候选读取电平以找到第二读取电平。在另一个实施方案中,相关性可以用于通知预定义顺序的变化,以预定义顺序测试/校验候选读取电平。这两种调整均可具有减少扫描时间的效果。有利的是,所公开的解决方案的实施方案利用存储器状态之间的相关性来有效且高效地设置或调整读取电平。

图1是示出根据本发明所公开的解决方案的包括存储设备的存储系统100的一个实施方案的示意性框图。存储系统100包括存储设备200、存储控制器102、存储器管芯104、至少一个主机106、用户应用程序108、存储客户端110、数据总线112、总线114和网络116。“主机”是指被配置为发送和接收存储命令的任何计算设备或计算机设备或计算机系统。主机的示例包括但不限于计算机、膝上型计算机、移动设备、电器、虚拟机、企业服务器、台式计算机、平板计算机、主机架等。

“存储命令”是指与存储操作相关的任何命令。存储命令的示例包括但不限于读取命令、写入命令、维护命令、配置命令、管理命令、诊断命令、测试模式命令、对策命令和存储控制器可从主机接收或向另一个部件、设备或系统发出的任何其他命令。“读取命令”是指从存储器单元读取数据的存储命令的类型。

“写入命令”是指被配置为引导接收方在持久性存储介质(诸如硬盘驱动器、非易失性存储器介质等)上写入或存储一个或多个数据块的存储命令。写入命令可包括可导致数据被写入存储设备的物理存储介质的任何存储命令。写入命令可包括足够的数据以填充一个或多个数据块,或者写入命令可包括足够的数据以填充一个或多个数据块的一部分。在一个实施方案中,写入命令包括起始逻辑块地址(LBA)和指示要写入存储介质上的数据的LBA数据的计数。

“逻辑块地址”或“LBA”是指在块存储设备中用于将跨存储介质的可用于用户数据存储的n个逻辑块中的每个逻辑块与地址相关联的值。在某些块存储设备中,每个卷或分区的LBA范围可为从0到n。在块存储设备中,每个LBA直接映射到特定数据块,并且每个数据块映射到物理存储介质上的一组特定物理扇区。“用户数据”是指主机引导非易失性存储设备存储或记录的数据。

“数据块”是指使用存储命令可访问和/或可寻址的物理存储介质上的最小物理量的存储空间。物理存储介质可以是易失性存储器介质、非易失性存储器介质、持久性存储装置、非易失性存储装置、闪存存储介质、硬盘驱动器等。某些常规存储设备将物理存储介质划分为卷或逻辑分区(也称为分区)。每个卷或逻辑分区可包括多个扇区。一个或多个扇区被组织成块(也称为数据块)。在某些存储系统(诸如与操作系统对接的存储系统)中,数据块被称为群集。在其他存储系统(诸如与UNIX、Linux或类似操作系统对接的存储系统)中,数据块被简称为块。数据块或群集表示由存储控制器管理的存储介质上的最小物理量的存储空间。块存储设备可将可用于跨物理存储介质的用户数据存储的n个数据块与从0到n编号的LBA相关联。在某些块存储设备中,每个卷或逻辑分区的LBA范围可为从0到n。在常规块存储设备中,逻辑块地址直接映射到一个且仅一个数据块。

存储系统100包括至少一个存储设备200,该存储设备包括由总线114连接的存储控制器102和一个或多个存储器管芯104。“存储控制器”是指被配置为管理非易失性存储介质上的数据操作的任何硬件、设备、部件、元件或电路,并可包括一个或多个处理器、可编程处理器(例如,FPGA)、ASIC、微控制器等。在一些实施方案中,存储控制器被配置为将数据存储在非易失性存储器介质上和/或从该非易失性存储器介质读取数据,以将数据传输到一个或多个非易失性存储器装置/从该一个或多个非易失性存储器装置传输数据等。

“存储器管芯”是指在其上制造给定功能电路的一小片半导体材料。通常,通过诸如光刻法的工艺在电子级硅(EGS)或其他半导体(诸如GaAs)的单个晶圆上大批量生产集成电路。将晶圆切割(切片)成许多片,每片包含电路的一个副本。这些片中的每个被称为管芯或存储器管芯。(搜索2019年10月9日Wikipedia.com上的“管芯(集成电路)(die(integrated circuit))”。2019年11月18日访问)。

“非易失性存储器阵列”是指被组织成具有行和列的阵列结构的一组非易失性存储单元(也称为存储器单元或非易失性存储器单元)。存储器阵列可使用行标识符和列标识符寻址。

“存储器单元”是指被配置为在感测、读取或检测到存储介质时通过存储介质的可确定物理特性来表示一个或多个二进制值以确定最后将哪个(哪些)二进制值存储在存储器单元中的存储介质的类型。存储器单元和存储单元在本文中可互换使用。存储器阵列可使用行标识符和列标识符寻址。“存储单元”是指被配置为在感测、读取或检测存储介质时通过存储介质的可确定特性来表示一个或多个二进制值,以确定存储的或由存储器单元的可确定特性表示的一个或多个二进制值的存储介质的类型。存储单元和存储器单元在本文中可互换使用。

用于将数据存储在存储器单元中的可确定特性的类型可取决于所使用的存储器或存储技术的类型而变化。例如,在每个存储器单元包括具有源极引线、漏极引线和栅极的晶体管的闪存存储器单元中,可确定特性是当施加到栅极时使得存储器单元在漏极引线和源极引线之间传导电流的电压电平。在该示例中,电压电平在本文中被称为阈值电压。阈值电压也可称为控制栅极参考电压(CGRV)、读取电压或参考电压。

可确定物理特性的示例包括但不限于晶体管的阈值电压、存储器单元的电阻电平、通过存储器单元的电流电平、磁极取向、自旋传递扭矩等。

“非易失性存储器介质”是指被配置为在主电源被移除之后保持用于表示零或一的二进制值的可变物理特性的任何硬件、设备、部件、元件或电路。可变物理特性的示例包括但不限于晶体管的阈值电压、存储器单元的电阻电平、通过存储器单元的电流电平、磁极取向、自旋传递扭矩等。

可变物理特性使得一旦设置,物理特性就保持足够固定,使得当用于非易失性存储器介质的主电源不可用时,可在读取、检索或感测二进制值时测量、检测或感测可变物理特性。换句话讲,非易失性存储器介质是被配置为使得存储在非易失性存储器介质上的数据在用于非易失性存储器介质的电源被移除并且然后恢复之后可检索的存储介质。非易失性存储器介质可包括一个或多个非易失性存储器元件,该非易失性存储器元件可包括但不限于:芯片、封装件、平面、存储器管芯等。

非易失性存储器介质的示例包括但不限于:ReRAM、忆阻器存储器、可编程的金属化单元存储器、相变存储器(PCM、PCME、PRAM、PCRAM、双向统一存储器、硫属化物RAM或C-RAM)、NAND闪存存储器(例如,2D NAND闪存存储器、3D NAND闪存存储器)、NOR闪存存储器、纳米随机存取存储器(纳米RAM或NRAM)、基于纳米晶体线的存储器、基于硅氧化物的亚10纳米工艺存储器、石墨烯存储器、氧化硅氮氧化硅(SONOS)、可编程金属化单元(PMC)、导电桥接RAM(CBRAM)、磁阻RAM(MRAM)、磁存储介质(例如,硬盘、磁带)、光存储介质等。

虽然非易失性存储器介质在本文中被称为“存储器介质”,但在各种实施方案中,非易失性存储器介质可更一般地被称为非易失性存储器。因为非易失性存储器介质能够在移除电源时存储数据,所以非易失性存储器介质也可以被称为记录介质、非易失性记录介质、非易失性存储介质、存储装置、非易失性存储器、易失性存储器介质、非易失性存储介质、非易失性存储装置等。“非易失性存储介质”是指被配置为在主电源被移除之后保持用于表示零或一的二进制值的可变物理特性的任何硬件、设备、部件、元件或电路。非易失性存储介质在本文中可与术语非易失性存储器介质互换使用。

在某些实施方案中,存储在非易失性存储器介质中的数据可在块级寻址,这意味着非易失性存储器介质中的数据被组织成各自具有唯一逻辑地址(例如,LBA)的数据块。在其他实施方案中,存储在非易失性存储器介质中的数据可以字节级寻址,这意味着非易失性存储器介质中的数据被组织成数据的字节(8位),每个字节具有唯一地址,诸如逻辑地址。字节可寻址非易失性存储器介质的一个示例是存储级存储器(SCM)。

在一些实施方案中,每个存储设备200可包括两个或更多个存储器管芯104,诸如闪存存储器、纳米随机存取存储器(“纳米RAM或NRAM”)、磁阻RAM(“MRAM”)、动态RAM(“DRAM”)、相变RAM(“PRAM”)等。在另外的实施方案中,数据存储设备200可包括其他类型的非易失性和/或易失性数据存储,诸如动态RAM(“DRAM”)、静态RAM(“SRAM”)、磁性数据存储、光学数据存储和/或其他数据存储技术。

存储设备200可以是主机106内的部件,如这里所描绘,并且可以使用数据总线112连接,诸如外围部件快速互连(“PCI-e”)总线、串行高级技术附件(“串行ATA”)总线等。在另一个实施方案中,存储设备200在主机106外部并且经由通用串行总线(“USB”)连接、电气与电子工程师协会(“IEEE”)1394总线(“火线”)等进行连接。在其他实施方案中,存储设备200使用外围部件互连(“PCI”)快速总线连接到主机106,该外围部件互连快速总线使用外部电气或光学总线扩展或总线网络解决方案,诸如无限带宽或PCI快速高级切换(“PCIe-AS”)等。

在各种实施方案中,存储设备200可为双列直插式存储器模块(“DIMM”)、子卡或微模块的形式。在另一个实施方案中,存储设备200为机架安装的刀片内的部件。在另一个实施方案中,存储设备200包含在直接集成到更高级组件(例如,母板、膝上型计算机、图形处理器)上的封装件内。在另一个实施方案中,将包括存储设备200的各个部件直接集成到更高级组件上而无需中间封装件。参考图2更详细地描述存储设备200。

“处理器”是指被配置为接收、解译、解码和执行机器指令的任何电路、部件、芯片、管芯、封装件或模块。处理器的示例可包括但不限于中央处理单元、通用处理器、专用处理器、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、片上系统(SoC)、虚拟处理器、处理器内核等。

“电路”是指具有至少一个分立电路的电路、具有至少一个集成电路的电路、具有至少一个专用集成电路的电路、形成由计算机程序配置的通用计算设备(例如,由至少部分地执行本文所述的过程或设备的计算机程序配置的通用计算机,或由至少部分地执行本文所述的过程或设备的计算机程序配置的微处理器)的电路、形成存储器设备(例如,随机存取存储器的形式)的电路,或形成通信设备(例如,调制解调器、通信开关、光电设备)的电路。

在另一个实施方案中,数据存储设备200可通过数据网络连接到主机106,而不是作为DAS直接连接到主机106。例如,数据存储设备200可包括存储域网络(“SAN”)存储设备、网络附接存储(“NAS”)设备、网络共享等。在一个实施方案中,存储系统100可包括数据网络,诸如互联网、广域网(“WAN”)、城域网(“MAN”)、局域网(“LAN”)、令牌环、无线网络、光纤信道网络、SAN、NAS、ESCON等,或网络的任何组合。数据网络还可包括来自IEEE 802系列的网络技术的网络,诸如以太网、令牌环、Wi-Fi、Wi-Max等。数据网络可包括服务器、交换机、路由器、电缆、无线电设备和用于促进主机106与数据存储设备200之间的联网的其他设备。

存储系统100包括连接到存储设备200的至少一个主机106。可以使用多个主机106,并且该多个主机可以包括服务器、存储域网络(“SAN”)的存储控制器、工作站、个人计算机、膝上型计算机、手持计算机、超级计算机、计算机群集、网络交换机、路由器或器具、数据库或存储器具、数据采集或数据捕获系统、诊断系统、测试系统、机器人、便携式电子设备、无线设备等。在另一个实施方案中,主机106可以是客户端,并且存储设备200可自主操作以服务于从主机106发送的数据请求。在该实施方案中,主机106和存储设备200可使用计算机网络、系统总线、直接附接存储(DAS)或适用于计算机和自主存储设备200之间的连接的其他通信装置来进行连接。

所描绘的实施方案示出了作为主机106的一部分与存储客户端110通信的用户应用程序108。在一个实施方案中,用户应用程序108是在存储客户端110上或与存储客户端结合操作的软件应用程序。“存储客户端”是指被配置为与存储设备通信以便使用存储服务的任何硬件、软件、固件或逻辑部件或模块。存储客户端的示例包括但不限于操作系统、文件系统、数据库应用程序、数据库管理系统(“DBMS”)、服务器应用程序、服务器、音量管理器、内核级进程、用户级进程、应用程序、移动应用程序、线程、进程等。

“软件”是指实现为机器存储器(例如,读取/写入易失性存储器介质或非易失性存储器介质)中的处理器可执行指令的逻辑。

“硬件”是指体现为模拟和/或数字电路的功能元件。

“固件”是指体现为存储在易失性存储器介质和/或非易失性存储器介质上的处理器可执行指令的逻辑。

存储客户端110管理文件和数据,并且利用存储控制器102和相关联存储器管芯104的功能和特征。存储客户端的代表性示例包括但不限于服务器、文件系统、操作系统、数据库管理系统(“DBMS”)、卷管理器等。存储客户端110与存储设备200内的存储控制器102通信。在一些实施方案中,存储客户端110可包括在主机106上操作或以其他方式经由网络116可访问的远程存储客户端。存储客户端可包括但不限于:操作系统、文件系统、数据库应用程序、服务器应用程序、内核级进程、用户级进程、应用程序等。

在一个实施方案中,存储系统100包括通过一个或多个计算机网络116连接到一个或多个主机106的一个或多个客户端。主机106可以是服务器、SAN的存储控制器、工作站、个人计算机、膝上型计算机、手持计算机、超级计算机、计算机群集、网络交换机、路由器或器具、数据库或存储器具、数据采集或数据捕获系统、诊断系统、测试系统、机器人、便携式电子设备、无线设备等。网络116可包括互联网、广域网(“WAN”)、城域网(“MAN”)、局域网(“LAN”)、令牌环、无线网络、光纤信道网络、SAN、网络附接存储装置(“NAS”)、ESCON等,或网络的任何组合。网络116还可包括来自IEEE 802系列的网络技术的网络,诸如以太网、令牌环、WiFi、WiMax等。

网络116可包括服务器、交换机、路由器、电缆、无线电设备以及用于促进将主机106或主机106或客户端联网的其他设备。在一个实施方案中,存储系统100包括通过网络116作为对等实体通信的多个主机106。在另一个实施方案中,存储系统100包括通过网络116作为对等实体通信的多个存储设备200。本领域的技术人员将认识到,其他计算机网络包括一个或多个计算机网络以及在一个或多个客户端之间具有单个或冗余连接的相关设备,或者具有连接到一个或多个主机的一个或多个存储设备200的其他计算机。在一个实施方案中,存储系统100包括在没有直接连接到本地主机106或集成在本地主机内的情况下,通过网络116连接到远程主机106的两个或更多个存储设备200。

在一个实施方案中,存储客户端110通过包括输入/输出(I/O)接口的主机接口与存储控制器102通信。例如,存储设备200可支持ATA接口标准、ATA包接口(“ATAPI”)标准、小型计算机系统接口(“SCSI”)标准和/或光纤信道标准,这些标准由国际信息技术标准委员会(“INCITS”)维护。

在某些实施方案中,存储器设备的存储介质被划分为卷或分区。每个卷或分区可包括多个扇区。传统上,扇区是512字节的数据。一个或多个扇区被组织成块(在本文中可互换地称为块和数据块两者)。

在一个示例实施方案中,数据块包括八个4KB的扇区。在某些存储系统(诸如与操作系统对接的那些存储系统)中,数据块被称为群集。在其他存储系统(诸如与UNIX、Linux或类似操作系统对接的存储系统)中,数据块被简称为块。块或数据块或群集表示由存储管理器(诸如存储控制器、存储系统、存储单位、存储设备等)管理的存储介质上的最小物理量的存储空间。

在一些实施方案中,存储控制器102可被配置为将数据存储在一个或多个不对称的一次写入存储介质上,诸如存储器管芯104内的固态存储存储器单元。“一次写入存储介质”是指在新数据或数据的改变被写入或编程在其上之前被重新初始化(例如,擦除)的存储介质,诸如存储单元。换句话讲,一旦存储介质不能被重写,写入的数据;必须先擦除一次写入存储介质,然后再将数据写入一次写入存储介质。“非对称存储介质”是指针对不同存储操作具有不同延迟的存储介质。许多类型的固态存储介质(例如,存储器管芯)是非对称的;例如,读取操作可比写入/编程操作快得多,并且写入/编程操作可比擦除操作快得多(例如,读取存储介质可比擦除快数百倍,并且比对存储介质进行编程快数十倍)。

“读取操作”是指在存储器单元上执行以便获得、感测、检测或确定由存储器单元的状态特性表示的数据的值的操作。

“编程”是指存储器单元的特性从第一状态(通常为擦除状态)改变为第二状态的存储操作。编程存储操作在本文中也可称为写入操作。

在某些实施方案中,编程存储操作可包括递增地改变特性直到实现至少目标改变水平的一系列迭代。在其他实施方案中,编程存储操作可以使属性通过单次迭代改变到目标水平。

存储器管芯104可被划分成可作为群组(例如,擦除块)进行擦除以便尤其考虑存储器管芯104等的不对称性质的存储器分区。因此,就地修改单个数据段可涉及擦除包含该数据的整个擦除块,并且将经修改的数据连同原始未更改的数据一起重写到擦除块。这可能会导致效率低下的写入放大,该写入放大可能过度损耗存储器管芯104。

“擦除块”是指逻辑擦除块或物理擦除块。在一个实施方案中,物理擦除块表示给定存储器管芯内可在给定时间擦除的最小存储单位(例如,由于存储器管芯上的存储单元的布线)。在一个实施方案中,逻辑擦除块表示可由存储控制器响应于接收到擦除命令而擦除的最小存储单位或存储块。在此实施方案中,当存储控制器接收到指定特定逻辑擦除块的擦除命令时,存储控制器可同时擦除逻辑擦除块内的每个物理擦除块。需注意,给定逻辑擦除块内的物理擦除块可被视为在物理地址空间内是连续的,即使它们驻留在单独的管芯中。因此,术语“连续的”不仅可适用于存储在同一物理介质内的数据,还可适用于存储在单独介质内的数据。

因此,在一些实施方案中,存储控制器102可被配置为异地写入数据。如本文所用,“异地”写入数据是指将数据写入到一个或多个不同介质存储位置,而不是“就地”覆写数据(例如,覆写数据的原始物理位置)。异地修改数据可避免写入放大,因为具有要修改的数据的擦除块上的现有有效数据不需要被擦除和重新复制。此外,异地写入数据可从许多存储操作的延迟路径中移除擦除(例如,擦除延迟不再是写入操作的关键路径的一部分)。“存储操作”是指在存储器单元上执行以便改变或获得由存储器单元的状态特征表示的数据的值的操作。存储操作的示例包括但不限于从存储器单元读取数据(或感测存储器单元的状态)、将数据写入(或将数据编程到)存储器单元和/或擦除存储在存储器单元中的数据。

存储管理器对数据块的管理包括特别地针对读取操作、写入操作或维护操作对特定数据块寻址。“维护操作”是指在非易失性存储设备上执行的操作,该操作被配置、设计、校准或布置为改善或延长非易失性存储设备和/或其上存储的数据的寿命。

块存储设备可将可用于跨存储介质的用户数据存储的n个块与从0到n编号的逻辑块地址相关联。在某些块存储设备中,每个卷或分区的逻辑块地址范围可为从0到n。逻辑地址是指用于引用存储器资源(例如,数据)的任何标识符,包括但不限于:逻辑块地址(LBA)、柱面/磁头/扇区(CHS)地址、文件名、对象标识符、索引节点、通用唯一标识符(UUID)、全局唯一标识符(GUID)、哈希码、签名、索引条目、范围、程度等。逻辑地址不指示数据在存储介质上的物理位置,而是对数据的抽象引用。

在常规块存储设备中,逻辑地址直接映射到物理存储介质上的特定数据块。在常规块存储设备中,每个数据块映射到物理存储介质上的一组特定物理扇区。然而,某些存储设备不直接或必然地将逻辑地址与特定物理数据块相关联。这些存储设备可对常规块存储接口进行仿真以保持与块存储客户端110的兼容性。

在一个实施方案中,存储控制器102提供块I/O仿真层,该块I/O仿真层用作块设备接口或API。在该实施方案中,存储客户端110通过该块设备接口与存储设备通信。在一个实施方案中,根据该块设备接口,块I/O仿真层从存储客户端110接收命令和逻辑地址。因此,块I/O仿真层提供与块存储客户端110的存储设备兼容性。

在一个实施方案中,存储客户端110通过包括直接接口的主机接口与存储控制器102通信。在该实施方案中,存储设备直接交换特定于非易失性存储设备的信息。“非易失性存储设备”是指被配置为在主电源被移除之后保持用于表示零或一的二进制值的可变物理特性的任何硬件、设备、部件、元件或电路。非易失性存储设备的示例包括但不限于硬盘驱动器(HDD)、固态驱动器(SSD)、非易失性存储器介质等。

使用直接接口的存储设备可以使用各种组织构造将数据存储在存储器管芯104中,该组织构造包括但不限于块、扇区、页面、逻辑块、逻辑页面、擦除块、逻辑擦除块、ECC码字、逻辑ECC码字,或者呈有利于存储器管芯104的技术特性的任何其他格式或结构。“特性”是指对象或事物的任何性质、性状、质量或属性。特性的示例包括但不限于条件、使用准备就绪、未使用准备就绪、尺寸、重量、组成、特征组等。

存储控制器102从存储客户端110接收逻辑地址和命令,并且执行与存储器管芯104相关的对应操作。存储控制器102可以支持块I/O仿真、直接接口或两者。

图2是示例性存储设备200的框图。“存储设备”是指任何硬件、系统、子系统、电路、部件、模块、非易失性存储器介质、硬盘驱动器、存储阵列、设备或装置,其被配置、编程、设计或工程化为在存储设备不使用来自电源的电力的同时将数据存储一段时间并将数据保持在存储设备中。存储设备的示例包括但不限于硬盘驱动器、闪存存储器、MRAM存储器、固态存储设备、磁盘束(JBOD)、闪存束(JBOF)、外部硬盘、内部硬盘等。

存储设备200可包括存储控制器102和存储器阵列202。存储器阵列202中的每个存储器管芯104可包括管芯控制器204和至少一个三维阵列形式的非易失性存储器阵列206,以及读取/写入电路208。

“三维存储器阵列”是指与二维(2D)存储器阵列形成对比的存储器阵列的部件的物理布置。2D存储器阵列沿着半导体晶圆或其他衬底的平坦表面形成。三维(3D)存储器阵列从晶圆表面/衬底向上延伸,并且通常包括在z方向上向上延伸的存储器单元的叠堆或列。在3D存储器阵列中,字线包括当存储器阵列向上延伸时彼此堆叠的层。各种3D布置是可能的。在一种布置中,NAND串竖直地形成,其中一端(例如,源极)在晶圆表面处,并且另一端(例如,漏极)在顶部上。

“阈值电压”是指当施加到晶体管的栅极端子时使得晶体管在漏极电极和源极电极之间传导电流的电压电平。

因此,非易失性存储器阵列是具有存储器单元的存储器阵列,该存储器单元被配置为使得用于表示所存储数据的存储器单元的特性(例如,阈值电压电平、电阻电平、电导率等)保持存储器单元的属性,而无需使用电源来维持该特性。

存储器阵列可使用行标识符和列标识符寻址。本领域技术人员认识到,存储器阵列可包括平面内的该组存储器单元、存储器管芯内的该组存储器单元、一组平面内的该组存储器单元,一组存储器管芯内的该组存储器单元、存储器封装件内的该组存储器单元、一组存储器封装件内的该组存储器单元,或者具有其他已知的存储器单元组架构和配置。

存储器阵列可包括在存储或存储器系统内的多个组织级的一组存储器单元。在一个实施方案中,平面内的存储器单元可被组织成存储器阵列。在一个实施方案中,存储器管芯的多个平面内的存储器单元可被组织成存储器阵列。在一个实施方案中,存储器设备的多个存储器管芯内的存储器单元可被组织成存储器阵列。在一个实施方案中,存储系统的多个存储器设备内的存储器单元可被组织成存储器阵列。

非易失性存储器阵列206能够经由行解码器210通过字线寻址,并且能够经由列解码器212通过位线寻址。“字线”是指包括一组存储器单元的存储器阵列内的结构。存储器阵列被配置为使得在读取操作期间读取或感测字线的操作存储器单元。类似地,存储器阵列被配置为使得在读取操作期间读取或感测字线的操作存储器单元。字线也可以被称为物理页面或简称为页面。“位线”是指被配置为将递送电压和/或传导电流到存储器阵列的列的电路结构。在一个实施方案中,该列包括NAND串或存储器串,并且也可被称为沟道。在一个实施方案中,该列被称为NAND串,并且NAND串包括沟道。在一个实施方案中,位线在NAND串的漏极端或漏极侧处连接到NAND串。存储器阵列对于沿着存储器阵列的字线的每个存储器单元可具有一条位线。

“沟道”是指存储器阵列内从源极侧延伸到漏极侧的结构。在一个实施方案中,沟道是存储器阵列内的竖直列,该竖直列在耦接到NAND串的一端的源极线和耦接到NAND串的另一端的位线之间形成导电路径。沟道可由多种材料形成,包括例如多晶硅。

在一个实施方案中,NAND串内的沟道通过激活沿NAND串的一个或多个存储器单元(例如,一个或多个选定的存储器单元和未选定的存储器单元)以及一个或多个控制结构(例如,在连接到NAND串的一端(例如,源极侧)的源极线与连接到NAND串的另一端(例如,漏极侧)的感测放大器或位线之间的选择门(源极和/或漏极))形成导电路径。

“选择门”是指晶体管,该晶体管在结构上和/或电气地被配置为用作开关以将连接到晶体管的源极端子的第一电结构与连接到漏极端子的第二电结构电连接。当用作开关时,晶体管在本文中被称为“选择门”,并且用于(选择性地)选通或控制电流或电压何时以及以什么量在第一电结构和第二电结构之间流动或通过。取决于上下文,本文对选择门的引用可指整个晶体管或晶体管的栅极端子。

读取/写入电路208包括多个感测块SB1、SB2、…、SBp(感测电路)并且允许并行读取或编程一页存储器单元。在某些实施方案中,跨存储器阵列的行的每个存储器单元一起形成物理页面。“读取/写入电路”是指被配置为和/或可操作以从存储介质(诸如存储阵列的存储单元)读取数据并将数据写入该存储介质的设备、部件、元件、模块、系统、子系统、电路系统、逻辑、硬件或电路。

物理页面可包括用于单个平面或用于单个存储器管芯的沿着存储器阵列的行的存储器单元。在一个实施方案中,存储器管芯包括由两个相等尺寸的平面组成的存储器阵列。在一个实施方案中,存储器管芯的一个平面的物理页面包括四个数据块(例如,16KB)。在一个实施方案中,存储器管芯的物理页面(也称为“管芯页面”)包括各自具有四个数据块(例如,32KB)的两个平面。

命令和数据经由数据总线112在主机106与存储控制器102之间传输,并且经由总线114在存储控制器102与一个或多个存储器管芯104之间传输。存储控制器102可包括关于图1更详细描述的逻辑模块。

非易失性存储器阵列206可为二维的(2D-布置在单个制造平面中)或三维的(3D-布置在多个制造平面中)。非易失性存储器阵列206可包括存储器单元的一个或多个阵列,该一个或多个阵列包括3D阵列。在一个实施方案中,非易失性存储器阵列206可包括单片三维存储器结构(3D阵列),其中多个存储器级形成在诸如晶圆的单个衬底上方(并且不在其中),没有中间衬底。非易失性存储器阵列206可包括任何类型的非易失性存储器,该非易失性存储器一体地形成在具有设置在硅衬底上方的有源区域的一个或多个物理级的存储器单元阵列中。非易失性存储器阵列206可在非易失性固态驱动器中,该非易失性固态驱动器具有与存储器单元的操作相关联的电路,无论相关联的电路是在衬底上方还是在衬底内。

字线可包括包含存储器单元的层的区段,这些区段设置在衬底上方的层中。多条字线可以借助于沟槽或其他非导电隔离特征部形成在单个层上。

管芯控制器204与读取/写入电路208协作以在非易失性存储器阵列206的存储器单元上执行存储器操作,并且包括状态机214、地址解码器216和功率控件218。状态机214提供存储器操作的芯片级控制。“管芯控制器”是指被配置为管理管芯的操作的一组电路、电路系统、逻辑或部件。在一个实施方案中,管芯控制器是集成电路。在另一个实施方案中,管芯控制器是分立部件的组合。在另一个实施方案中,管芯控制器是一个或多个集成电路和一个或多个分立部件的组合。

地址解码器216将主机或存储控制器102所使用的地址接口之间的地址接口提供给行解码器210和列解码器212所使用的硬件地址。功率控件218控制在存储器操作期间供应给各种控制线的功率和电压。“控制线”是指被配置为将电流和/或电压从源输送到目的地的结构、电路、电路系统和/或相关联的逻辑部件。在某些实施方案中,通过控制线供应或放电的模拟电压、电流、偏置和/或数字信号用于控制开关、选择门和/或其他电气部件。基于控制线控制的电路的什么部分或控制线耦接或连接到其他电路的位置,某些控制线可具有特定名称。命名的控制线的示例包括字线、位线、源极控制线、漏极控制线等。

“源极控制线”是指被配置为操作选择门(例如,接通、激活和断开、去激活选择门)以用于将NAND串的源极侧耦接到源极线和/或另一个电路的控制线。

“源极侧”是指连接到存储器管芯上的源极层或线的NAND串的端部或三维存储器阵列的侧面。该术语来自场效应晶体管或类似部件的源极端子。在菊花链式晶体管串中,第一晶体管的源极端子可连接到源极线、地线或一些其他较低电压线,并且漏极端子可连接到下一个晶体管的源极端子,该晶体管的漏极端子可连接到下一个源极端子等,其中最终晶体管的漏极端子连接到较高电压信号或电源线。然后,每个晶体管的栅极端子可控制电流是否从源极到漏极流过晶体管,并且从源极线到位线流过串。

“源极线”是指被配置为将电流和/或电压从电源输送到相关联NAND串的一个或多个沟道的结构、电路、电路系统和/或相关联的逻辑。在某些实施方案中,源极线被配置为同时向多个NAND串输送电压,和/或同时从多个NAND串释放电压。在其他实施方案中,源极线被配置为向串联的多个NAND串输送电压和/或从串联的多个NAND串释放电压。

在某些实施方案中,源极控制线耦接到位于源极线和一个或多个NAND串之间的一个或多个源极侧选择门,并且源极控制线管理电压或电流是否在源极线和NAND串之间通过。在此实施方案中,源极线也可被称为公共源极线。

“源极侧选择门”是指用作开关以将源极线电连接到NAND串和/或NAND串的沟道的选择门。源极线的示例包括源极侧选择门、虚设字线选择门等。在某些实施方案中,源极侧选择门可以仅包括源极侧选择门(例如,SGS0、SGS1等)。在其他实施方案中,源极侧选择门可以仅包括虚设字线选择门(例如,DWLS0、DWLS1等)。在其他实施方案中,源极侧选择门可以包括源极侧选择门(例如,SGS0、SGS1等)和虚设字线选择门(例如,DWLS0、DWLS1等)两者。在NAND串的源极侧上定位在源极线和NAND串之间的选择门被称为源极侧选择门。

“漏极控制线”是指被配置为操作选择门(例如,接通、激活和断开、去激活选择门)以用于将NAND串的漏极侧耦接到位线和/或感测电路的控制线。“漏极侧”是指连接到一条或多条位线的NAND串的端部或三维存储器阵列的侧面。该术语来自场效应晶体管或类似部件的漏极端子。在菊花链式晶体管串中,第一晶体管的源极端子可连接到源极线、地线或一些其他较低电压线,并且漏极端子可连接到下一个晶体管的源极端子,该晶体管的漏极端子可连接到下一个源极端子等,其中最终晶体管的漏极端子连接到较高电压信号或电源线。然后,每个晶体管的栅极端子可控制电流是否从源极到漏极流过晶体管,并且从源极线到位线流过串。

“漏极侧选择门”是指用作开关以将位线电连接到NAND串和/或NAND串的沟道的选择门。在NAND串的漏极侧上定位在位线和NAND串之间的选择门被称为漏极侧选择门。

“逻辑”是指机器存储器电路、非暂态机器可读介质和/或电路,通过该电路的材料和/或材料能量配置包括控制和/或程序信号和/或设置和值(诸如电阻、阻抗、电容、电感、电流/电压等级等),这可应用于影响设备的操作。磁介质、电子电路、电和光学存储器(易失性和非易失性)以及固件为逻辑的示例。逻辑具体地排除纯信号或软件本身(然而不排除包括软件并由此形成事物的配置的机器存储器)。

功率控件218和/或读取/写入电路208可包括用于字线、源极栅极选择(SGS)晶体管、漏极栅极选择(DGS)晶体管、位线、衬底(在2D存储器结构中)、电荷泵和源极线的驱动器。在某些实施方案中,功率控件218可以检测到突然的功率损失并采取预防措施。功率控件218可包括各种第一电压发生器(例如,驱动器)以生成本文所述的电压。在一种方法中,感测块可包括位线驱动器和感测放大器。

在一些具体实施中,可组合部件中的一些部件。在各种设计中,除了非易失性存储器阵列206之外的部件中的一个或多个部件(单独或组合)可被认为是至少一个控制电路或存储控制器,该至少一个控制电路或存储控制器被配置为执行本文所述的技术。例如,控制电路可以包括以下任何一个或其组合:管芯控制器204、状态机214、地址解码器216、列解码器212、功率控件218、感测块SB1、SB2、…、SBp、读取/写入电路208、存储控制器102等。

在一个实施方案中,主机106是计算设备(例如,膝上型电脑、台式计算机、智能电话、平板电脑、数字相机),其包括一个或多个处理器、一个或多个处理器可读存储设备(RAM、ROM、闪存存储器、硬盘驱动器、固态存储器),所述一个或多个处理器可读存储设备存储用于对存储控制器102进行编程以执行本文所述的方法的处理器可读代码(例如,软件)。主机还可包括附加系统存储器、一个或多个输入/输出接口和/或与一个或多个处理器通信的一个或多个输入/输出设备、以及本领域中所熟知的其他部件。

相关联的电路通常涉及操作存储器单元并与存储器单元通信。作为非限制性示例,存储器设备可具有用于控制并驱动存储器单元以实现诸如编程和读取的功能的电路。该相关联的电路可在与存储器单元相同的衬底上和/或在单独的衬底上。例如,用于存储器读取-写入操作的存储控制器可以位于单独的存储控制器芯片上和/或位于与存储器单元相同的衬底上。

本领域技术人员将认识到,本发明所公开的技术和设备不限于所述的二维和三维示例性结构,但涵盖如本文所述的并且如本领域技术人员所理解的本技术的实质和范围内的所有相关存储器结构。

图3示出了根据一个实施方案的存储器阵列300。在例示的实施方案中,存储器阵列300被组织成逻辑擦除块(LEB),如逻辑擦除块302(在本文中也称为“元块”或“超块”)所示。这些LEB包括由物理擦除块0 304、物理擦除块n 306、物理擦除块0 308、物理擦除块n310、物理擦除块0 312和物理擦除块n 314示出的多个物理擦除块(PEB)。“物理擦除块”是指给定存储器管芯内可在给定时间擦除的最小存储单位(例如,由于存储器管芯上的存储单元的布线)。

物理擦除块可位于单独的存储管芯中,如管芯0 316、管芯1 318和管芯n 320所示。在某些实施方案中,管芯被分成平面。“平面”是指允许使用某些物理行地址和某些物理列地址在两个平面执行某些存储操作的管芯的划分。

本领域技术人员理解物理擦除块与逻辑擦除块之间的关系和差异,并且可通过使用缩略版本擦除块、块或存储块来指代一者或另一者或两者。根据对擦除块的引用的上下文,本领域技术人员理解物理擦除块或逻辑擦除块(或元块或超块)是否正被引用。本领域所用的概念和技术以及权利要求书中所述的那些概念和技术可同样应用于物理擦除块或逻辑擦除块。

“存储块”是指被组织成使得可并行地在存储单元组上执行存储操作的一组存储单元。该组存储单元的组织可以在物理级或逻辑级实现。因此,在一个实施方案中,存储块可包括物理页面,诸如字线、包括跨越平面和/或存储器管芯的物理页面的逻辑页面、包括一组物理页面的物理擦除块、包括一组逻辑页面的逻辑擦除块(LEB)等。存储块在本文中可被称为“块”、“存储块”或LEB。

如本文所用,“物理”结构诸如物理页面、物理字线、物理擦除块、物理平面、物理存储器管芯等是指单个物理结构,控制器、管理器、模块或系统的其他逻辑部件可在设备、系统或装置的组织中的物理抽象的一个或多个级别内以一定级别控制该单个物理结构和/或与其通信。类似地,“逻辑”结构诸如逻辑页面、逻辑字线、逻辑擦除块、逻辑平面、逻辑存储器管芯等是指相同类型的两个或更多个单个物理结构的集合,控制器、管理器、模块或系统的其他逻辑部件可在设备、系统或装置的组织中的物理抽象的一个或多个级别内以一定级别控制该集合和/或与其通信。应当指出的是,“物理”结构和“逻辑”结构中的一者或另一者或两者可具有不同的地址,这些地址可用于识别相对于具有类似性质和类型的其他结构的一个“物理”结构或“逻辑”结构。

“逻辑擦除块”是指存储块的另一个术语。在某些实施方案中,逻辑擦除块是指跨越平面、存储器管芯和/或芯片的一组逻辑页面。存储单元的这种组织被认为是“逻辑的”,因为物理页面可能不会彼此直接耦接。然而,物理页面是并行操作的,好像它们是单个页面一样。以类似的方式,多个物理擦除块可以并行操作,好像它们是单个擦除块一样,并且因此被称为逻辑擦除块。术语逻辑擦除块、元块和超级块在本文中可互换使用。

“逻辑页面”是指被视为用于存储操作的单个页面的物理页面的集合。“物理页面”是指表示可在单次操作中写入的给定存储器管芯内的最小存储块。

逻辑擦除块诸如逻辑擦除块302被进一步划分成多个逻辑页面(逻辑页面322),所述多个逻辑页面继而包括多个物理页面,诸如物理页面0 324、物理页面n 326、物理页面0328、物理页面n 330、物理页面0 332和物理页面n 334。物理页面可包括多个数据包,这些数据包可被分组为纠错码(ECC)组块。

在一个实施方案中,物理页面表示可在给定时间写入的给定管芯内的最小存储块。在一个实施方案中,逻辑页面是由存储控制器支持的最小可写存储块。(在一个实施方案中,存储控制器可包括缓冲器,该缓冲器被配置为存储最多一个逻辑页面的数据;在填充缓冲器时,存储控制器可将缓冲器的内容同时写入单个逻辑页面。)在一些情况下,跨多个管芯划分逻辑页面可导致在并行访问多个管芯时数据集的访问时间更快。正如逻辑擦除块一样,逻辑页面配置可以映射到管芯上或跨多个存储器管芯的任何物理页面。

在一些实施方案中,存储控制器102可将元数据(也称为介质特性)与存储块(逻辑擦除块、物理擦除块、逻辑页面和/或物理页面)中的一者或多者相关联。存储控制器102可管理识别逻辑擦除块存储数据的逻辑地址的元数据,以及逻辑地址空间内每个逻辑擦除块、数据块或扇区的存储数据包的相应数量。存储控制器102可将元数据或介质特性数据存储在多个位置中,包括非易失性存储介质上、易失性存储器中、与每个逻辑擦除块一起存储的结构中等。

“介质特性”是指一组特定存储单元的属性或统计值,诸如该组存储单元的编程/擦除循环计数、该组存储单元的读取计数、自该组存储单元的前一次写入以来的保留时间(亦称数据保留时间)、该组存储单元(诸如逻辑或物理擦除块)的停留时间(例如,擦除块的编程与擦除块的擦除之间的时间)、该组存储单元的多个先前停留时间的平均值、该组存储单元的误差统计值等。

一组存储单元的介质特性可以是基本上静态的,或者可以是动态的并随时间推移而改变。在一个实施方案中,介质特性是与非易失性存储器介质的属性相关联的统计的、启发式的、数学的模型、变换或其他描述符。

在一个实施方案中,介质特性包括或涉及存储设备和/或非易失性存储器介质的品牌、型号、制造商、产品版本等。在另一个实施方案中,介质特性可包括或涉及存储设备和/或非易失性存储器介质的环境条件或用途,诸如温度、用例(例如,高速缓存用例、存档用例、服务器用例、企业用例、消费者用例等)等。

图4示出了非易失性存储介质的存储器单元的单元阈值电压分布,以及单元阈值电压分布曲线400(诸如多层NAND闪存存储器单元等)的图。在所描绘的实施方案中,可使用格雷码编码模型来编码存储器状态,其中相邻存储器状态的二进制值在编码中相差单个位。

“存储器状态”是指被设计和/或配置为表示对一个或多个数据位值的编码的存储器单元或存储单元的状况、属性和/或特性。在某些实施方案中,可通过存储操作来改变存储器状态。在非易失性存储器单元中,存储器单元在没有电源的情况下保持其存储器状态。

在某些实施方案中,并且在某些上下文中,存储器状态还可以指共同具有类似条件、属性和/或特征的存储器单元的集合或集。关于非易失性存储器单元,在特定范围内具有类似条件的存储器单元的群组、集合或集可统称为特定存储器状态的存储器单元。此外,对存储器状态的引用可以作为对具有落入为该存储器状态定义的预定义范围内的条件的所有存储器单元的缩略引用。

例如,对于NAND存储器单元,阈值电压(Vt)窗口可以限定在负阈值电压或大约零阈值电压与最大阈值电压之间。在该Vt窗口内,可限定多个子范围并将其称为存储器状态。在某些实施方案中,整个Vt窗口可被划分,使得每个阈值电压落入存储器状态中的一个存储器状态内。在一个实施方案中,每个存储器状态具有下边界和上边界,并且可由单元阈值电压分布表示。

在图4中,Vt窗口可开始于已擦除存储器状态402(“Er”)的下端,并且延伸到“O”存储器状态的上端/边界。该图包括已擦除存储器状态402和存储器状态“A”-“O”,总共16个存储器状态表示存储在每个存储器单元中的4位。某些存储器状态是相邻存储器状态。“相邻存储器状态”是指沿阈值电压范围与给定存储器状态相邻存储器状态,其中在给定存储器状态及其相邻存储器状态之间未定义存储器状态。“Er”存储器状态(已擦除存储器状态402)和“A”存储器状态是相邻存储器状态。类似地,“A”存储器状态和“B”存储器状态是相邻存储器状态。“A”存储器状态和“C”存储器状态不是相邻存储器状态,因为“B”存储器状态在它们之间。

该图示出了非易失性存储介质的存储器单元沿x轴的阈值电压。y轴识别沿x轴具有对应阈值电压的感测/检测/读取的存储器单元的数量或计数。每个存储器状态内的曲线表示落入给定存储器状态内的存储器单元的正态分布。该图的曲线合在一起示出了单元阈值电压分布。在某些实施方案中,表示特定存储器状态内的存储器单元的曲线也可称为单元阈值电压分布。因此,非易失性存储介质的单元阈值电压分布可包括多个单元阈值电压分布。

“单元阈值电压分布”是指用于确定一组存储器单元中的每个存储器单元的阈值电压的过程或方法。单元阈值电压分布可称为单元电压分布,并且可使用首字母缩略词“CVD”来指代。

可在非易失性存储器技术的研究和开发期间确定单元阈值电压分布,以理解存储器单元在不同条件下如何表现。在某些实施方案中,可在非易失性存储器的操作期间执行单元阈值电压分布,以确定用于读取存储器单元的读取电平是否足够。如果第一组读取电平的误码率不适当,则可采取对策来减小误码率。

在某些实施方案中,这些对策可包括调整配置参数,使得误码率减小。在某些实施方案中,确定单元阈值电压分布、相对于误码率校验读取电平和其他介质特性以及采取任何对策的步骤可称为CVD扫描、读取扫描或读取扫描操作。由于所涉及的各个步骤和被扫描的存储器单元的数量,可能需要大量的时间来完成CVD扫描。具体地讲,在存储器单元每个存储器单元存储四位或更多位的情况下,除非使用受权利要求书保护的解决方案的各方面,否则CVD扫描可能会引发高延迟。“误码率”是指所处理的总位数中的错误位数的量度。根据用例,可以在纠错码(ECC)解码器已经进行一次或多次尝试以纠正一个或多个错误位之前或之后计算误码率。

“配置参数”是指可通过接口修改的一组存储单元的参数,例如读取阈值、写入或编程阈值、擦除阈值等。用于修改配置参数的接口可包括可编程数据寄存器、用于非易失性存储器阵列的控制总线的命令接口、存储设备的设备驱动程序的API、用于存储控制器的控制参数等。

每个存储器单元的阈值电压可被编码为表示二进制数据。具体地讲,每个存储器单元的阈值电压可被编码为每个存储器单元表示2、3、4或更多位。例如,在图4中,二进制值“1111”在一个实施方案中可以与最低存储器状态(标记为Er,已擦除存储器状态402)相关联,值“1110”可以与下一个最低读取电压状态和QLC编程存储器状态404中的第一个状态(标记为A)相关联,值“1010”可以与下一个最高读取电压状态(标记为B)相关联并且值“1000”可以与下一个最高读取电压状态(标记为C)相关联等,其中在存储器状态(也称为读取电压状态)之间仅改变一位。

在图4中,最低存储器状态Er被描绘为低于所描绘的0.0V的负阈值电压。在其他实施方案中,最低存储器状态Er可包括高于0.0V电平或跨越0.0V电平的正阈值电压。读取电压的值、量值、大小等可根据非易失性存储器单元的制造商和类型而变化,每一者均被本公开涵盖。管芯控制器使用读取电平来将一个存储器状态中的存储器单元与另一个存储器状态中的存储器单元区分开。

“读取电平”是指被配置为测试、校验、读取或感测哪些存储器单元在该电压电平下导通的电压电平。在某些实施方案中,存储器单元可包括晶体管,并且读取电平或读取电压是处于或高于存储器单元的使得存储器单元传导电流以激活的阈值电压的电压电平。

在某些实施方案中,取决于用于将数据存储在存储器单元上的编码类型和在每个存储器单元上编码的位数,使用单个读取电压的单个读取/感测操作可以确定存储器单元的存储器状态。在其他实施方案中,可使用各自在不同读取电压电平下执行的多个读取/感测操作来确定存储器单元的存储器状态。

然后可将所确定的存储器状态解码成由存储器单元存储的数据位的表示。“读取电压”是对“读取阈值电压”的简写引用。“读取电平”是常用于描述“读取电压”的另一个术语,并且这两个术语在本文中可互换使用。基于读取电平读取存储器单元可用于读取存储器单元中存储的数据以及用于测试/校验存储器单元的性能并确定是否对存储器单元的配置参数进行任何改变。

图4示出了多个默认读取电平,这些默认读取电平可在制造存储设备200时进行设置,并且可在制造过程期间和/或稍后在客户使用存储设备200时进行调谐。当存储器单元被编程时,阈值电压从已擦除存储器状态402改变为QLC编程存储器状态404中的一个状态。每个存储器状态由默认读取电平界定。如果被编程的、可操作的存储器单元在默认读取电平下不激活,则存储器单元的阈值电压高于默认读取电平。读取或感测存储操作是迭代过程。并且完成用于读取数据或用于感测所有存储器单元(诸如利用CVD)的迭代过程,将每个存储器单元识别为已擦除存储器状态402或QLC编程存储器状态404中的一者的成员。

在所描绘的实施方案中,读取电平A 406、读取电平B 408、读取电平C 410、读取电平D 412、读取电平E 414、读取电平F 416、读取电平G418、读取电平H 420、读取电平I 422、读取电平J 424、读取电平K 426、读取电平L 428、读取电平M 430、读取电平N 432和读取电平O 434可包括分别将存储器状态A与Er分开、将存储器状态B与A分开、将存储器状态C与B分开等的默认读取电平。虽然可以在制造时设置默认读取电平,但是可以根据需要调整默认读取电平以确保存储器单元的最佳性能。在某些实施方案中,默认读取电平表示存储器单元的当前读取电平。“当前读取电平”是指作为当前由管芯控制器或存储控制器用于存储器单元上的读取操作的值的读取电平。在某些实施方案中,当前读取电平可以是已用于先前读取操作的默认读取电平。在另一个实施方案中,当前读取电平可以包括由先前读取扫描操作设置的读取电平,并且该读取电平可以在当前执行的读取扫描操作中改变。

编程存储操作将存储器单元的介质特性(例如,阈值电压)改变为不同状态以表示被编程的条件。通过根据特定编码将介质特性设置为多个不同状态中的一个状态,可将多个位存储在单个存储器单元中。利用NAND存储器单元,编程操作将阈值电压改变为两个读取电平之间的阈值电压。例如,在一个实施方案中,编程操作可以通过将阈值电压改变为读取电平H 420和读取电平I 422之间的电平,将某些存储器单元编程为H存储器状态。在某些实施方案中,可使用附加阈值,包括编程电平、编程验证电平等。

基于数据编码,非易失性存储器存储控制器可以将四层存储单元的离散阈值电压解释为表示四个二进制位。图4和图5示出了使用格雷码编码的实施方案。可以使用其他编程和编码模型,并且某些非易失性存储器介质可以具有更多或更少的可能状态,从而允许将其他量的数据存储在单个存储单元中。存储器状态A至O可以是或可以不是连续的;例如,在某些实施方案中,电压电平可由被称为保护带的带隙隔开。例如,A和B可隔开0.3V。存储器状态A至O可另选地表现出重叠,如图6所示。

现在参见图4和图5,图4示出了单元阈值电压分布曲线400。所示的电压分布曲线用于被编程为存储四位数据的存储器单元。在给定时间点,每个存储器单元可处于多个存储器状态(也称为数据状态)中的一个存储器状态。存储器状态可包括已擦除状态和多个已编程状态。已编程状态的数量对应于存储器单元被编程以存储的位数。

被编程为存储四位的存储器单元可处于已擦除状态402或十五个已编程状态A至O中的一个已编程状态。每个单元阈值电压分布曲线(在状态Er-O内)与已擦除状态或已编程状态中的一个已编程状态相关联。另外,每个阈值电压分布曲线定义不同的阈值电压范围和/或与不同的阈值电压范围相关联,所述不同的阈值电压范围继而定义多个预先确定的N位二进制值中不同的二进制值、被分配所述不同的二进制值或与所述不同的二进制值相关联。因此,确定在哪个阈值电压VTH下存储器单元能够确定存储器单元正存储的数据(即,位的逻辑值)。

被编程到存储器单元中的数据与存储器单元的阈值电压电平之间的具体关系取决于用于对存储器单元进行编程的数据编码方案。在一个示例中,格雷码方案可用于将数据值分配到阈值电压分布曲线。“格雷码编码”是指基于将特定位值分配到存储器单元可具有的阈值电压范围的编号系统的一类编码方案。位值被分配为使得位模式在相邻阈值电压范围之间仅相差一位。这样的位模式分配是有利的,因为虽然阈值电压可以从一个范围改变、漂移到相邻范围,但非预期的变化或漂移可能不足以引起编码中的两位变化。这样,可检测并适应不期望的漂移。

在一个示例中,阈值电压的范围可以是可用于将多位数据编码到存储器单元中的多个阈值电压范围中的一个。例如,假设存储器单元被配置为存储两位信息,并且阈值电压的连续范围介于负下限阈值电压和正上限阈值之间,例如约5伏。如果定义了四个范围,则最下一个范围可具有‘00’的位分配,下一个最高的是‘01’的位分配,下一个最高的是‘10’的位分配,最后一个范围是‘10’的位分配。

当然,存储多位数据的存储器单元可使用灰色代码编码或另一种编码过程,诸如美国专利US6222762和/或US7237074中所述的那些,这些专利以引用方式并入本文以用于所有目的。

图4示出了格雷码编码的一个示例如何映射到存储器状态。在每个存储器状态下是一个4位的二进制值,从最高有效位(MSB)一直读到最低有效位(LSB)。图5以表格形式示出了相同编码映射。数据、逻辑或物理页面与二进制值中的每个位置相关联。换句话讲,沿非易失性存储器阵列的行沿物理字线、物理页面或物理页面群组读取存储器单元的所有MSB位形成逻辑页面。

在一个实施方案中,LSB对应于最低数据页面,MSB对应于最高数据页面,其他两位表示中间数据页面。在某些实施方案中,多层存储单元可以粘附到多相编程模型,这包括可以先写入LSB然后写入居间位和MSB,反之亦然。在另一个实施方案中,LSB、居间位和MSB可由存储控制器单独编程。可由于供应商或制造商对页面配对(例如,MLC单元的LSB位与不同MLC单元的MSB位配对)和页面寻址(例如,先编程LSB页面然后MSB页面或反之亦然)的要求而采取此类方法。在某些情况下,先写入LSB然后写入MSB,或先写入MSB然后写入LSB,等等。

图5示出了用于多层存储单元500的示例性编码。使用格雷码编码使得能够以更少的读取操作来读取逻辑页面,因为该编码确保了在相邻存储器状态之间仅发生位变化。例如,已擦除状态Er可由“1111”表示,并且可转换到存储器状态A以表示“1110”,其中改变的位是最低有效位。图5示出了四个页面,页面1 504、页面2 506、页面3 508和页面4 510。可按一次一个页面读取每个页面。例如,可以读取页面1 504,然后读取页面2 506等,并且因此可能需要四次页面读取以确定在特定存储器单元处表示的是QLC存储器状态502中的哪个存储器状态。

由于格雷码编码,可以通过在位可以在存储器状态之间改变的位置处读取来确定存储在单元中的位。例如,为了读取页面1 504,以读取电平A 406、读取电平D 412、读取电平F 416和读取电平K 426进行的读取操作的读取次数足以解码页面1 504的数据值,而无需以每个默认读取电平进行读取。

图6示出了被编程为十六个可能的存储器状态(例如,Er-O)中的一个存储器状态的存储器单元上的示例性读取扫描操作600。读取扫描操作可以将读取电平从默认读取电平调整到新的读取电平,以便在读取存储器单元时减少错误的数量。

“读取扫描操作”是指执行以识别和减轻或避免或抵消非易失性存储设备的数据或存储单元和/或其他部件中的错误的维护操作。读取扫描操作可以互换地称为“读取扫描”或“读取扫描操作”。在一个实施方案中,读取扫描操作涉及从存储块中的存储单元读取数据或感测存储块中的存储单元的可确定的物理特性或存储器状态。接下来,读取扫描操作校验存储单元的存储器状态的任何错误,校正尽可能多的错误,并确定误码率。然后,读取扫描操作确定误码率是否满足阈值,诸如读取误码率阈值。

在一个实施方案中,读取扫描操作从存储块的每个逻辑页面或字线读取数据。在另一个实施方案中,读取扫描操作选择少于存储块的所有逻辑页面。换句话讲,读取扫描操作可以对存储块的逻辑页面进行采样以从中读取数据用于读取扫描操作。

如果满足读取误码率阈值,则读取扫描操作可执行数据清理操作或数据刷新操作。在某些实施方案中,读取扫描操作可以总是包括数据清理操作或数据刷新操作。在其他实施方案中,执行数据清理操作或数据刷新操作的条件可为误码率满足读取误码率阈值。在此类实施方案中,读取扫描操作可称为“读取清理”或“读取清理操作”。在这些实施方案中,读取扫描操作可以有条件地包括数据清理操作。

在某些实施方案中,读取扫描操作可以作为前台过程操作,这意味着读取扫描操作中断或延迟非易失性存储设备服务于主机的读取命令或写入命令。此外,读取扫描操作可能需要完成对特定存储块的工作,从而延迟对该特定存储块上的数据的主机读取命令。因此,在此类实施方案中,读取扫描操作可以影响主机和非易失性存储设备之间的服务质量水平。

读取扫描操作可以使用多种技术和/或方法来调整读取电平。这些技术或方法中的某些技术或方法可以迭代地使用不同的候选读取电平,以便确定当前读取电平的替换读取电平。此外,读取扫描操作可以在存储控制器、管芯控制器、主机106或这些的组合中实现。

“候选读取电平”是指可提供比当前读取电平更准确的存储器单元感测和/或从存储器单元读取数据的读取电平的值、设置、配置、数值、移位等。在某些实施方案中,候选读取电平可以是预先确定的,并且可以存储在存储库诸如数据结构中。在其他实施方案中,可以预先确定候选读取电平,并且可以将其组织成预定义顺序,读取扫描电路可被配置为在选择候选读取电平以用于确定替换当前读取电平的读取电平时遵循该预定义顺序。

在其他实施方案中,可以基于读取扫描电路可在一组存储单元上执行的一个或多个先前感测和/或读取操作(本文称为一个或多个“扫描”)的结果来计算候选读取电平。例如,在一个实施方案中,读取扫描电路可使用当前候选读取电平将先前扫描的结果与当前扫描的结果进行比较。如果以当前候选读取电平得到的结果更有利,则读取扫描电路可基于当前候选读取电平计算下一个候选读取电平。如果以当前候选读取电平得到的结果不太有利,则读取扫描电路可基于使用候选读取电平的一个或多个先前扫描计算下一个候选读取电平。在确定哪个候选读取电平与连续迭代一起使用的实施方案中,读取扫描电路可将正移位或负移位应用于当前读取电平以确定下一个候选读取电平。

候选读取电平可包括通常定位在两个相邻存储器状态的单元阈值电压分布的大部分存储器单元之间的多个读取电平中的一个读取电平。期望在从被编程为两个相邻存储器状态中的一者的存储器单元读取数据时,候选读取电平产生最佳性能。

在一个实施方案中,候选读取电平中的至少一个候选读取电平将产生最佳结果,从而在从相邻存储器状态中的一个存储器状态读取时得到最少数量的误码。此类候选读取电平可以称为目标读取电平。目标读取电平是相对于可被迭代地校验的其他候选读取电平产生最小或最少数量的激活存储器单元的读取电平。在另一个实施方案中,目标读取电平是相对于可被迭代地校验的其他候选读取电平产生来自一组读取的存储器单元的最小或最少数量的误码或误码率或估计误码率的读取电平。

谷搜索操作

读取扫描操作可以使用的一种方法称为谷搜索操作。“谷搜索操作”是指被配置为迭代地测试或校验两个相邻存储器状态的单元阈值电压分布内的一组存储器单元的边界周围的多个候选读取电平的读取扫描操作的类型。在某些实施方案中,谷搜索操作可以从当前读取电平或默认读取电平开始,该默认读取电平可能在制造存储设备时已经设置。接下来,谷搜索操作可以应用候选读取电平以确定候选读取电平是否产生比当前读取电平更少的存储器单元激活。如果是这样的话,这意味着更多的存储器单元将被识别为正在被编程为正确的存储器状态。如果不是,则这意味着更多的存储器单元将被错误地识别为成为相邻存储器状态中的一个存储器状态。谷搜索操作继续以这种方式迭代,每次迭代改变候选读取电平,直到识别到使得最少数量的一组存储器单元被激活和/或产生最少数量的读取错误(例如,较低的误码率)的读取电平。这样,谷搜索操作寻求提供最佳读取结果的目标候选读取电平。谷搜索操作得名于测试候选读取电平的迭代过程,直到一个候选读取电平定位成与两个相邻存储器状态的单元阈值电压分布曲线之间的“谷”对准。

在一个实施方案中,可以进行谷搜索操作以调整最低逻辑页面(页面1 504)和/或每个逻辑页面的多组相邻存储器状态的读取电平。示出了页面1 504的谷搜索操作的细节以提供示例。

曲线下方示出了存储页面1 504的数据的存储器单元的二进制值。如这些值所指示,格雷码编码示出了读取页面1 504所需的四个读取操作。在一个实施方案中,谷搜索操作可以校验并任选地调整四个读取电平中的每个读取电平。每个读取电平可与读取电平窗口相关联。

“读取电平窗口”是指可用作两个相邻存储器状态之间的读取电平的一组候选读取电平。在使用一个或多个阈值电压读取读数的存储器单元的某些实施方案中,读取电平窗口可以包括低阈值电压和高阈值电压之间的一组阈值电压,其中读取电平窗口内的该组候选读取电平的每个成员包括不同的阈值电压。

在包括NAND存储器单元的另一个实施方案中,读取电平窗口可以包括低阈值电压和高阈值电压之间的一组阈值电压,其中读取电平窗口内的该组候选读取电平的每个成员包括从默认读取电平(诸如当前读取电平)偏移一个或多个偏移量的阈值电压移位。相对于默认读取电平的移位可以大于和/或小于默认读取电平。读取电平窗口也可称为“扫描”窗口。

图6包括读取电平窗口602、读取电平窗口604、读取电平窗口606和读取电平窗口608,每个读取电平A 406、读取电平D 412、读取电平F 416和读取电平K 426各对应一个窗口。对于每个读取电平窗口、扫描窗口,可以使用多组候选读取电平610中的一组。例如,阈值电压电平#1-#7可以是用于跨读取电平窗口602确定读取电平A 406的最佳位置的候选读取电平;阈值电压电平#8-#14可以是用于确定读取电平D 1110的最佳位置的候选读取电平;阈值电压电平#15-#21可以是用于确定读取电平F 416的最佳位置的候选读取电平;阈值电压电平#22-#28可以是用于确定读取电平K 1114的最佳位置的候选读取电平。

以举例的方式,谷搜索操作可以迭代地确定读取电平A 406、读取电平D 412、读取电平F 416和读取电平K 426中的每一者的最佳读取电平。对于读取电平A 406,假设默认读取电平为候选读取电平#5,并且存储器状态Er已向上移动、向右移位,并且存储器状态A已向左移动、向下移位。在确定有多少存储器单元候选读取电平#5激活(或者另选地,在读取电平A 406为候选读取电平#5时码字中有多少误码)之后,谷值搜索操作接下来可以校验下一个最高候选读取电平#6或校验下一个最低候选读取电平#4。

对于每次迭代校验,谷搜索操作将结果(例如,激活的存储器单元的数量或误码率)与先前校验的先前结果进行比较。如果被校验/测试的候选读取电平导致更高的误码或更多激活的存储器单元,则谷搜索操作可以在与导致更高误码(激活的存储器单元)的方向相反的方向上校验阈值电压。因此,如果候选读取电平#5比候选读取电平#6导致更少激活的存储器单元,则谷值搜索操作接下来可以测试候选读取电平#4。如果候选读取电平#4比候选读取电平#5导致更少激活的存储器单元,则谷值搜索操作接下来可以测试候选读取电平#3。如果候选读取电平#3比候选读取电平#4导致更多激活的存储器单元,则谷值搜索操作可以停止迭代并确定候选读取电平#4是Er存储器状态和存储器状态之间的“谷值”。因此,谷搜索操作可以将默认读取电平从候选读取电平#5改变为候选读取电平#4。接下来,谷搜索操作可以对读取电平D 412、读取电平F 416和读取电平K 426进行该类似过程。例如,可迭代地测试来自读取电平窗口604、读取电平窗口606和读取电平窗口608的候选读取电平。此外,在对所有逻辑页面进行谷搜索操作时,最终Vt窗口的所有读取电平将被测试并可能改变以获得最佳读取操作结果。谷搜索操作是用于确定如何调整读取电平的迭代试错方法。

例如读取电平窗口602的候选读取电平可以是预定义的。在另一个示例中,谷搜索操作通过应用上一个候选读取电平的移位来导出候选读取电平。

误码率估计(BES)

可使用的另一个读取扫描操作称为误码率估计(BES)方法。“误码率”是指所处理的总位数中的错误位数的量度。根据用例,可以在纠错码(ECC)解码器已经进行一次或多次尝试以纠正一个或多个错误位之前或之后计算误码率。

与谷搜索操作类似,BES读取扫描操作是一种迭代试错方法,其试图确定一个或多个读取电平中的最佳读取电平。类似地,为了设置页面1 504的读取电平,BES读取扫描操作可以校验读取电平A 406、读取电平D412、读取电平F 416和读取电平K 426。然而,可以优化BES读取扫描操作以确定每个读取电平中的最可能的最佳候选读取电平,并且当BES读取扫描操作测试一个读取电平时,仿真器可以确定扫描页面1 504的结果,其中其他读取电平设置有特定起始电平。在一个实施方案中,扫描可不同于读取,因为在正常意义上,所确定的阈值电压是仿真的并且来自存储器单元的数据实际上未被读取。使用所公开的解决方案的各方面可使得BES读取扫描操作能够以读取电平进行读取,但在BES读取扫描操作的扫描部分中执行较少的仿真阈值电压确定。这样,BES读取扫描操作试图限制在存储器单元上执行以确定最佳读取电平的读取/感测操作的迭代次数。

BES读取扫描操作能够以预定起始点处的所有读取电平开始,并且针对第一读取电平对不同候选读取电平进行感测测量。例如,基于BES的扫描可以在#4处以读取电平A406开始,然后以预定义顺序(#3然后#5然后#6然后#2等)迭代读取电平窗口602的候选读取电平,同时将其他读取电平(读取电平D 1110、读取电平F 416和读取电平K 1114)保持在相同位置。“预定义顺序”是指在发起遵循预定义顺序的操作之前定义的顺序中的步骤、操作、选择、功能、确定或动作的序列。

可以仿真而不是感测这些其他读取电平。当在多组候选读取电平610中的用于确定读取电平A 406的第一组候选读取电平中指示最小值(最少数量的存储器单元激活或最少数量的误码)时,可以分析用于下一个读取电平的下一组候选读取电平。在某些情况下,这里的最小值涉及校验节点的最小数量(校验子权重),其可以基于与所执行的感测的次数相关的不同假设用作BER的估计。为了获得校验子权重,BES读取扫描操作可使用解码器读取和解码数据,并且该过程可能需要大量时间。

当校验子权重低于阈值时,校验子权重的相对值是误码率的合适代理或指示符。这样,BES读取扫描操作利用估计误码率。“估计误码率”是指直接、间接和/或近似地表示存储在一个或多个存储器单元中的特定一组数据位的误码率的值。有利的是,估计误码率用作所计算的误码率的合适代理,并且能够以更少的计算周期和比确定误码率所需的时间更快的时间获得估计误码率。

估计误码率的一个示例是由误码率(BER)估计扫描(BES)操作产生的速率。BES读取扫描操作是以预定义顺序测试的逻辑页面的某些读取电平的候选读取电平进行的读取扫描操作类型。在一个实施方案中,BES读取扫描操作测试特定候选读取电平,并且算法确定特定逻辑页面的其他读取电平的模拟/仿真测试的结果。

在一个实施方案中,BES读取扫描操作可以通过比较迭代读取电平感测或读取操作之间的校验子权重来确定估计误码率,以确定哪个候选读取电平导致最少数量的激活存储器单元。在此类实施方案中,低于阈值的校验子权重用作误码率的代理,即估计误码率。校验子权重是来自低密度奇偶校验(LDPC)纠错码解码器(ECC解码器)的多个不满足ECC奇偶校验方程节点/方程。

在低密度奇偶校验(LDPC)ECC解码器中,当码字被解码时,码字的校验子权重是多个未被解析的方程或未被满足的校验节点。平均来说,未被满足的校验节点的数量越大(校验子权重越高),码字中的错误数量越高。平均来说,未被满足的校验节点的数量越少(校验子权重越高),码字中的错误数量越低。因此,在某些情况下,具有较少错误的码字可能仍然具有较大数量的未被满足的校验节点(较高的校验子权重)。

此外,BES读取扫描操作可以预定义顺序测试候选读取电平。例如,当校验读取电平D 412时,候选读取电平的预定义顺序可以是#10,然后#13,然后#14,然后#8,然后#9。可由制造商基于一系列测试和研究与开发来确定该预定义顺序,以了解在BES读取扫描操作中最少数量的迭代之后哪些候选读取电平最可能产生最低误码率。

BES读取扫描操作还存在各种其他方面,这里不再详细讨论。相反,与所公开的解决方案的各方面一起使用的BES读取扫描操作的合适的具体实施在2017年7月4日公布的2014年12月4日提交的美国专利9,697,905中有所描述,该专利以引用方式并入本文以用于所有目的。

图7描绘了存储器状态之间的相关性700和对非易失性存储器介质的一组多层存储单元的读取电平的调整的示例。本领域的技术人员认识到,由于各种因素,包括温度改变、存储器单元的磨损、干扰影响、泄漏等,存储器单元的阈值电压随时间改变。一般来讲,对于单元阈值电压分布内的大多数存储器单元而言,此类改变不是问题。然而,由于存储器状态的边界(此类边界可称为分布曲线的最靠近最低阈值电压的一部分的下尾和分布曲线的最靠近较高阈值电压的一部分的上尾)附近的存储器单元从具有一个存储器状态内的阈值电压移动到具有相邻存储器状态(相邻存储器状态)内的阈值电压,阈值电压的这些改变可导致较高的误码率。

为了解决这些变化,读取扫描操作调整单元阈值电压分布曲线边界处的读取电平。图7示出了已进行读取电平调整的一些示例性存储器状态。实线示出的曲线表示电流分布,虚线示出的曲线表示过去的单元阈值电压分布。

在所示实例中,已进行调整以生成经调整的读取电平B 702、经调整的读取电平E704和经调整的读取电平G 706。另外,先前读取电平被指示为先前读取电平B 708、先前读取电平E 710和先前读取电平G 712。在一个实施方案中,读取扫描操作确定对先前读取电平的不同调整,从而得到经调整的读取电平。在所描绘的实施方案中,读取扫描操作可以针对具有不同量值、不同方向等的不同存储器状态B、E和G分别确定调整714、调整716和调整718,从而针对不同存储器状态B、E和G的介质特性分别定制不同的调整电平:经调整的读取电平B 702、经调整的读取电平E 704和经调整的读取电平G 706。如图4所示的每个存储器状态Er、A、B、C等至O可接收该处理。为方便起见,这里示出了存储器状态的子集Er至G。

经调整的读取电平与经改变的单元阈值电压分布对齐。如果使用先前读取电平,诸如先前读取电平B 708、先前读取电平E 710、先前读取电平G 712,则边界附近的存储器单元将记录数据错误。类似地,因为不同存储器状态A、D和G的电荷电平已经漂移、泄漏、被干扰等不同的量和/或在不同的方向上漂移、泄漏、被干扰,所以在某些实施方案中,对于每个存储器状态B、E和G使用相同的调整可能记录数据错误。通过配置对应一组存储单元以使用单独调整的读取电平,读取扫描操作可以防止、避免或校正潜在的数据错误。在一个实施方案中,在误码率超过阈值之后,读取扫描操作响应性地确定经调整的读取电平:经调整的读取电平B 702、经调整的读取电平E 704和经调整的读取电平G 706。在另一个实施方案中,读取扫描操作基于对应一组存储器单元的操作条件和介质特性主动确定经调整的读取电平。

如此处所示,存储器状态A的增大阈值电压移位720可能需要调整714,从而产生经调整的读取电平B 702(其中读取电平B界定存储器状态A与存储器状态B之间的转变)。类似地,存储器状态D的增大阈值电压移位720可能需要调整716以产生经调整的读取电平E704。另一方面,基于图7所示的实例,存储器状态G的减小阈值电压移位722可能需要调整718以产生经调整的读取电平G 706。

可以观察到,存储器状态A 728的增大阈值电压移位720经常伴随着存储器状态D730的增大阈值电压移位720。这些移位是相关性的一个示例。“相关性”是指现象、属性、行为、或事物之间或数学变量或统计变量之间存在的关系,这些变量并非只是基于偶然而变化、相关联或一起出现。(“相关性(Correlation)”Merriam-Webster.com Dictionary,Merriam-Webster,2020年4月10日访问。修订。)

关系/相关性可以多种方式表示,包括使用数字、公式、图、图表等。在某些实施方案中,相关性可表示第一事物和第二事物之间的单向关系,这意味着从第一事物到第二事物存在相关性,但从第二事物到第一事物不存在相关性。在其他实施方案中,相关性可表示第一事物和第二事物之间的双向关系,这意味着在对比从第一事物到第二事物以及从第二事物到第一事物时存在相同的相关性。

在某些实施方案中,相关性表示两个或更多事物之间的属性或行为的变化量值和/或变化率。可通过测试和分析来自正常使用、实验、机器学习等的结果来观察或导出相关性。两个事物之间的相关性,诸如存储器单元、阈值电压、存储器管芯、存储器状态、单元阈值电压分布等之间的相关性可被表征为正相关性或负相关性。

具体地讲,因为存储器状态A的增大阈值电压移位720与存储器状态D的增大阈值电压移位720在相同的方向上发生,所以它们之间的相关性被称为正移位相关性724。“正相关性”是指其中两个或更多个相关事物以相同方式对特定影响、环境、动作或刺激作出响应的相关性。例如,其中存储器单元的阈值电压由单元阈值电压分布表示,并且单元阈值电压分布被映射到存储器状态,当第一存储器状态的存储器单元和第二存储器状态的存储器单元的相关属性沿相同方向变化时,第一存储器状态内的存储器单元与第二存储器状态内的存储器单元正相关。

换句话讲,如果第一存储器状态的存储器单元的相关属性增大,并且第二存储器状态的存储器单元的相关属性增大,则这是正相关性。在某些实施方案中,相关属性可包括存储器状态中的一组存储器单元的阈值电压或单元阈值电压分布的变化。

可以观察到,存储器状态D 730的增大阈值电压移位720通常伴随着存储器状态G732的减小阈值电压移位722。这种关系是相关性的另一个示例。由于存储器状态D 730中的增大阈值电压移位720和存储器状态G 732中的减小阈值电压移位722发生在相反方向上,因此该相关性被称为负移位相关性726。“负相关性”是指其中两个或更多个相关事物以相反方式对特定影响、环境、动作或刺激作出响应的相关性。例如,其中存储器单元的阈值电压由单元阈值电压分布表示,并且单元阈值电压分布被映射到存储器状态,当第一存储器状态的存储器单元和第二存储器状态的存储器单元的相关属性沿相反方向变化时,第一存储器状态内的存储器单元与第二存储器状态内的存储器单元负相关。

换句话讲,如果第一存储器状态的存储器单元的相关属性增大,并且第二存储器状态的存储器单元的相关属性减小,则这是负相关性。在某些实施方案中,相关属性可包括存储器状态中的一组存储器单元的阈值电压或单元阈值电压分布的变化。

正移位相关性724和负移位相关性726都是移位相关性的示例。“移位相关性”是指响应于时间的流逝或存储设备的使用,第一存储器状态内的单元阈值电压分布的存储器单元的阈值电压以与第二存储器状态内的单元阈值电压分布的存储器单元的阈值电压的改变或移位(增大或减小)相关的方式改变或移位(增大或减小)的相关性。移位相关性可存在于用于一组存储器单元的任何两个存储器状态之间。

在某些实施方案中,相关性可由两个或更多事物之间的属性或行为的变化量值和/或变化率来表示。表示相关性的值的大小可与相关性的强度或弱度直接相关。类似地,正相关性可由相关性正值表示,并且负相关性可由相关性负值表示。在一个实施方案中,相关性由相关性因子表示。“相关性因子”是指当相关属性乘以相关性因子时修改相关属性的值,使得该相关属性说明与相关性因子相关联的相关性。例如,在一个实施方案中,相关属性可以是读取电平。每个读取电平可以标记两个相邻存储器状态之间的边界。

相关性因子可以表示一个存储器状态如何与另一个存储器状态相关,使得相关性因子乘以当前读取电平得到经修改的相关读取电平以说明相关性。相关性因子可以是实数,并且可以是反映正相关性的正数、反映负相关性的负数、表示无相关性的零或表示完全相关性的1。相关性因子可有助于修改值以反映相关性。例如,在一个实施方案中,可将值乘以相关性因子,这样使得该值说明相关性。

可通过多种方法将相关性确定和量化为相关性因子。可执行存储器设计的研究和开发测试。可从在现场操作的设备收集分析。可实施大规模实验。可采用机器学习。然后可使用通过这些方法确定的相关性来实现本文所公开的解决方案。

图8描绘了存储器状态之间的相关性800和对非易失性存储器介质的一组多层存储单元的读取电平的调整的示例。在图7中,存储器单元的阈值电压的变化可导致阈值电压和对应的单元阈值电压分布(例如,曲线)的移位。

图8示出了存储器单元和对应的单元阈值电压分布(例如,曲线)的另一种变化现象。图8示出了基于单元阈值电压分布的加宽或变窄,某些存储器状态可与另一存储器状态具有相关性,在本文中称为宽度相关性。本领域的技术人员可理解,某些非易失性存储介质技术可经历或可不经历宽度相关性的类型中的一者或另一者或两者(加宽和变窄)。然而,本文所公开并受权利要求书保护的概念适用于经历宽度相关性的一者或另一者或两者的非易失性存储介质技术。“宽度相关性”是指响应于时间的流逝或存储设备的使用,第一存储器状态内的单元阈值电压分布的存储器单元以与通过使表示第二存储器状态内的单元阈值电压分布的曲线加宽或变窄而改变阈值电压相关的方式通过使表示第一存储器状态内的单元阈值电压分布的曲线加宽或变窄而改变阈值电压的相关性。

在所示实例中,已进行调整以生成经调整的读取电平B 802、经调整的读取电平E804和经调整的读取电平G 806。另外,先前读取电平被指示为先前读取电平B 808、先前读取电平E 810和先前读取电平G 812。在一个实施方案中,读取扫描操作确定对先前读取电平的不同调整,从而得到经调整的读取电平。读取扫描操作可以针对具有不同量值、不同方向等的不同存储器状态B、E和G分别确定调整814、调整816和调整818,从而针对不同存储器状态B、E和G的介质特性分别定制不同的调整电平:经调整的读取电平B 802、经调整的读取电平E 804、经调整的读取电平G 806。如图4所示的每个存储器状态Er、A、B、C等至O可接收该处理。为方便起见,这里示出了存储器状态的子集Er至G。经调整的读取电平与经改变的单元阈值电压分布对齐。

图7示出了存储器状态的移位和存储器状态之间的移位相关性,而图8示出了基于两个单元阈值电压分布的宽度变化的存储器状态之间的相关性的示例。一些存储器状态可表现出增大宽度820,而其他存储器状态表现出减小宽度(变窄)822。在例示的示例中,存储器状态A 824的增大宽度820可能需要调整814,从而产生经调整的读取电平B 802。存储器状态D 826中的增大宽度820可类似地产生经调整的读取电平E 804,而存储器状态G 830的减小宽度(变窄)822可产生经调整的读取电平G 806。

可以观察到,存储器状态A 824的增大宽度820经常伴随着存储器状态D 826的增大宽度820。这些宽度关系是相关性的一个示例。具体地讲,因为存储器状态A 824的增大宽度820与存储器状态D 826的增大宽度820在相同的方向上发生,所以它们之间的相关性被称为正宽度相关性828。

可以观察到,存储器状态D 826的增大宽度820通常伴随着存储器状态G 830的减小宽度(变窄)822。这种关系是相关性的另一个示例。由于存储器状态D 826的增大宽度820和存储器状态G 830中的减小宽度(变窄)822在相反方向上发生,因此该相关性被称为负宽度相关性832。

图9和图10分别示出了移位相关性表900和宽度相关性表1000。一个实施方案可使用移位相关性表900和宽度相关性表1000中的一者或两者,或将来自两者的相关性因子组合的表。在一个实施方案中,移位相关性表900和宽度相关性表1000存储用于改进读取扫描操作的相关性因子。移位相关性表900和宽度相关性表1000仅仅是受权利要求书保护的解决方案的实施方案可使用的各种可能类型的相关性数据结构的示例。

“相关性数据结构”是指被配置为存储一个或多个相关性因子和用于识别两个项目或事物之间的特定相关性的相关性因子的索引的数据结构。在一个实施方案中,相关性数据结构可以是表、阵列、列表、链接列表、存储器的一部分、数据库等。用于存储器状态之间的相关性因子的相关性数据结构的索引可包括相关性数据结构表的存储器状态的行标识符,并且相关存储器状态可包括相关性数据结构表的列。

在每个表中,行表示起始存储器状态,并且列表示存在相关性的结束存储器状态,该结束存储器状态由存储在行和列相交的单元中的相关性因子捕获。在一个示例性实施方案中,零相关性因子可指示没有相关性,相关性因子的量值可指示相关性的强度或为说明相关性而调整属性的程度(例如,移位、宽度等),并且正相关性因子值可表示正相关性,并且负相关性因子值可表示负相关性。

一般来讲,起始存储器状态(行存储器状态)是已通过各种方法中的一种或多种或部分确定其最佳读取电平的存储器状态。一旦确定了起始存储器状态的该最佳读取电平,就可以使用移位相关性表900和/或宽度相关性表1000来说明起始存储器状态与结束存储器状态之间的相关性,并利用该相关性来确定结束存储器状态的最佳读取电平。

以举例的方式,假设已经确定了起始存储器状态902,即存储器状态D,并且读取扫描操作被配置为利用存储器状态之间的相关性来确定结束存储器状态904的读取电平,即存储器状态G。读取扫描操作可以查询移位相关性表900并定位存储器状态D的行并读取与对应于存储器状态G的列相交的值。条目是移位相关性因子906并且指示当起始存储器状态902移位时,则基于相关性(负相关性),结束存储器状态904在相反方向上移位。负相关性由负值150指示。在该示例中,移位相关性因子906(例如,如图所示的-150mV)可以指示存储器状态G相对于存储器状态D经历150mV的负移位(平均电压向下移位约-150mV)。读取扫描操作可以利用该相关性因子来优化扫描操作以确定存储器状态G的最佳读取电平。

图10示出了具有相关性因子的宽度相关性表1000,该相关性因子说明存储器状态之间的宽度相关性。例如,假设已经确定了起始存储器状态1002的最佳读取电平,即存储器状态D,并且读取扫描操作被配置为利用存储器状态之间的相关性来确定结束存储器状态1004的读取电平,即存储器状态J。

读取扫描操作可以查询宽度相关性表1000并定位存储器状态D的行并读取与对应于存储器状态J的列相交的值。条目是宽度相关性因子1006并且指示当起始存储器状态1002加宽时,则基于相关性(正相关性),结束存储器状态1004也以1.1016的相关性因子进行加宽。正相关性由大于1的正值指示。在该示例中,宽度相关性因子1006(例如,如图所示的1.1016)可以指示存储器状态J经历的加宽是存储器状态D经历的加宽的1.1016倍。读取扫描操作可以利用该相关性因子来优化扫描操作以确定存储器状态J的最佳读取电平。

如果读取扫描操作确定起始存储器状态(例如,状态D)已经移位了多少或者已知状态加宽/变窄的程度,则可以针对其他相关未知存储器状态进行估计。这些估计可以促进进一步的读取扫描操作,或者甚至在某些实施方案中,消除了对结束存储器状态的进一步读取扫描操作的需要。

这样,读取扫描操作可以利用两个存储器状态之间的相关性作为分析的起始点。在一个实施方案中,这可以允许使用更少的迭代或谷搜索操作的更窄间隔的读取电平窗口来确定这些读取电平的最佳位置。在另一个实施方案中,通过使用这些表(移位相关性表900、宽度相关性表1000)给出的位置可以实现BES读取扫描操作的优化。

图11示出了根据一个实施方案的读取扫描操作1100。所示的读取扫描操作1100可以包括使用第一读取电平窗口1102内确定的最佳读取电平更有效地扫描另一个读取电平窗口,例如第二读取电平窗口1104。

读取扫描操作可以扫描第一读取电平窗口1102内的读取电平,校验候选读取电平1106中的第一候选读取电平,该第一候选读取电平相对于第一读取电平窗口1102内的其他候选读取电平1106激活最少数量的存储器单元。该第一读取电平窗口1102可以被配置为测试相邻存储器状态1108(存储器状态C和存储器状态D)之间的候选读取电平1106,以定位最佳读取电平D 1110。

一旦读取扫描操作确定读取电平D 1110,读取扫描操作就可以基于两个相邻存储器状态1108(例如,C或D)中的至少一个存储器状态和与第二读取电平窗口1104相关联的一个或多个其他相邻存储器状态1108(例如,J和K)之间的相关性来配置第二读取电平窗口1104。有利的是,在一个实施方案中,该相关性使得第二读取电平窗口1104能够比具有未用于配置第二读取电平窗口1104的相关性时更小,例如包括更少的候选读取电平1112。

接下来,读取扫描操作扫描第二读取电平窗口1104。以第二候选读取电平扫描配置的第二读取电平窗口1104可以包括确定第二候选读取电平,该第二候选读取电平相对于第二读取电平窗口1104内的其他候选读取电平1112激活最少数量的存储器单元。一旦读取扫描操作确定了最佳读取电平D 1110和最佳读取电平K 1114,读取扫描操作就将读取操作配置为使用最佳读取电平D 1110和最佳读取电平K 1114。

在一个实施方案中,配置第二读取电平窗口1104可以涉及基于与第一读取电平窗口1102相关联的两个相邻存储器状态1108中的一个存储器状态(存储器状态C和存储器状态D)的标识符来确定相关性因子。该标识符可与给定存储器状态(诸如所示示例中的“C”或“D”)的标签相关,或与存储器状态的一些其他唯一标识符相关。在一个实施方案中,可使用相关性数据结构诸如移位相关性表900和/或宽度相关性表1000来确定相关性因子。

读取扫描操作可以将确定的相关性因子应用于第二读取电平窗口1104,使得该相关性影响第二读取电平窗口1104的候选读取电平1112。例如,对于第二读取电平窗口1104,候选读取电平1112#23’、#24’、#25’、#26’和#27’可能以预计阈值电压为中心,例如,通过使用存储器状态C和存储器状态J之间或存储器状态C和存储器状态K之间或存储器状态D和存储器状态J之间以及存储器状态D和存储器状态K之间的相关性因子确定的#25’。

在一个实施方案中,相关性因子用于缩小候选读取电平1112之间(例如,#23’至#27’)的间距和/或可用于扫描更少的候选读取电平(例如,4个相对于7个,因为#25’是起始读取电平所以是4个)。因此,第二读取电平窗口1104比不使用相关性和/或相关性因子的读取电平窗口更小,具有更少的候选读取电平1112,并且导致更快的扫描时间。

在一个实施方案中,应用相关性因子可以包括将第二读取电平窗口1104的候选读取电平乘以相关性因子。在另一个实施方案中,应用相关性因子可以包括改变测试/校验第二读取电平窗口1104的候选读取电平1112的预定义顺序,使得在扫描中使用包含相关性的候选读取电平。

在一个实施方案中,读取扫描操作可以预定义顺序扫描候选读取电平1112。例如,预定义顺序可以在高阈值电压候选读取电平和低阈值电压候选读取电平(例如,#24’、#26’、#23’、#27’)之间交替。在一个实施方案中,应用相关性因子来配置第二读取电平窗口1104可以包括根据相关性因子将预定义顺序更改为新顺序。例如,假设相关性是负移位相关性(例如,负移位相关性726)。在一个实施方案中,读取扫描操作可以被配置为改变预定义顺序以利用负移位相关性,因此候选读取电平的经改变的顺序可以是#24’、#23’、#26’、#27”,使得在先检查较低阈值电压候选然后较高阈值电压候选。在另一个示例中,如果相关性指示存储器状态可经历加宽的强可能性,则可首先使用最外侧候选,并且扫描可向内推进。

在一个实施方案中,假设相关性指示第二候选读取电平可能比第一候选读取电平更优的可能性。在这样的实施方案中,读取扫描操作可以通过响应于第二候选读取电平相对于第二读取电平窗口1104内的其他候选读取电平激活最少数量的存储器单元而跳过迭代地测试第一候选读取电平来改变预定义顺序。

在图11的示例中,存储器状态C和存储器状态D中的一者或另一者与存储器状态J和存储器状态K中的一者或另一者之间的相关性。在一个实施方案中,可基于相关性的属性选择在两个状态之间使用的相关性。如果两个状态之间的相关性是对称的,则意味着从存储器状态A到存储器状态J的相关性是从存储器状态J到存储器状态A的相关性的倒数,那么,在存储器状态C和存储器状态D中的一者或另一者与存储器状态J和存储器状态K中的一者或另一者之间存在四种可能的相关性。如果相关性不对称,则存在八种可能的相关性。

在这种情况下,读取扫描操作可以使用相关性是所考虑的两个存储器状态之间的最稳定相关性。“稳定相关性”是指包括准确率和/或一组历史测试或支持数据的相关性,使得该相关性对于将来的大多数情况是真实的。

基于可能的相关性的稳定性度量,读取扫描操作可以响应于第一存储器状态和第二存储器状态具有稳定相关性,从两个相邻存储器状态中选择第一存储器状态,并且从与第二读取电平窗口相关联的其他相邻存储器状态中选择第二存储器状态。在图11所示的示例中,在存储器状态C和D(相邻存储器状态)与存储器状态J和K(其他相邻存储器状态)之间,可存在一至八个相关性。如果存储器状态C和存储器状态K之间的相关性是稳定相关性和/或比可以使用的其他相关性更稳定的相关性,则读取扫描操作可以使用存储器状态C和存储器状态K之间的相关性来配置第二读取电平窗口1104。

图12是示例性存储设备200的框图。许多部件,包括存储设备200,可如关于图1和图2所述的那样有效地操作。然而,存储设备200可包含根据受权利要求书保护的解决方案的一个实施方案配置的管芯控制器1202。管芯控制器1202可以包括状态机214、读取扫描电路1204和易失性存储器1206。易失性存储器1206可用于访问相关性数据结构1208。

非易失性存储器阵列206可以是包括多个存储器单元的三维存储器阵列。这些存储器单元可以是四层单元,使得每个存储器单元可以存储四位数据,如关于图4和图5所描述的。管芯控制器1202可被配置为在非易失性存储器阵列206(三维存储器阵列)的存储器单元上执行存储操作。

管芯控制器1202可以与读取/写入电路208配合在这些存储器单元上执行存储器操作,并且可以包括提供对存储器操作的芯片级控制的状态机214。在一个实施方案中,读取扫描电路1204被配置为调整存储器状态之间的一个或多个读取电平。在一个实施方案中,读取扫描电路1204实现谷搜索操作以确定是否调整读取电平。

管芯控制器1202的读取扫描电路1204可被配置为使用第一组候选读取电平迭代地感测一组存储器单元,直到候选读取电平相对于第一组内的其他候选读取电平激活最少数量的存储器单元。然后,读取扫描电路1204可以基于激活最少数量的存储器单元的候选读取电平确定第一存储器状态的第一读取电平。

耦接到读取扫描电路1204的易失性存储器1206可以包括相关性数据结构1208,该相关性数据结构被配置为存储该组存储器单元的一个或多个存储器状态和潜在的每个存储器状态的相关性因子。存储在相关性数据结构1208中的相关性因子可表示存储器状态之间的相关性,并且将候选读取电平乘以相关性因子可修改候选读取电平以说明该相关性。

在一个实施方案中,读取扫描电路1204可以被配置为检索第一存储器状态和第二存储器状态之间的相关性。读取扫描电路1204可以从相关性数据结构1208检索相关性。移位相关性表900和宽度相关性表1000是相关性数据结构1208的两个示例。

接下来,读取扫描电路1204可以使用该相关性确定第二存储器状态的第二读取电平。该相关性可存储在易失性存储器1206中可用的相关性数据结构1208(例如,移位相关性表900和/或宽度相关性表1000)中。确定相关性因子可以涉及读取扫描电路1204基于与正被扫描/校验的读取电平相关联的两个相邻存储器状态中的一个存储器状态的标识符(例如,‘Er’、‘A’、‘B’、‘C’等)搜索相关性数据结构1208。然后,读取扫描电路1204可以将所确定的相关性因子应用于第二读取电平。

在某些实施方案中,读取扫描电路1204可以将相关性因子直接应用于第二存储器状态的当前读取电平,从而确定第二读取电平,而无需测试或校验第二读取电平窗口的候选读取电平。例如,读取扫描电路1204可以将当前读取电平乘以表示第一存储器状态和第二存储器状态之间的相关性的相关性因子。在此类实施方案中,确定第二读取电平可以更有效,并且可以在两个存储器状态之间的相关性足够强的情况下使得跳过测试第二读取电平窗口1104的候选读取电平成为可能。

在某些实施方案中,如果可以通过彻底扫描、校验或测试来确定第一存储器状态的第一读取电平,则读取扫描操作可以更有效。接下来,可以使用第一存储器状态和第二存储器状态之间尽可能准确的相关性来确定读取电平,或者作为对第二存储器状态的读取电平的调整。在一些实施方案中,可以基于该相关性调整第二存储器状态的读取电平,从而消除了对用于调整与第二存储器状态相关联的读取电平的同等彻底(并且耗时)测试的需要。

在一个实施方案中,读取扫描电路1204可以通过将第二存储器状态的当前读取电平乘以表示相关性的相关性因子来确定第二读取电平。在其他实施方案中,读取扫描电路1204可以通过基于相关性选择第二组候选读取电平来确定第二读取电平。该第二组候选读取电平可以小于第一组候选读取电平(例如,如图11所示的第二读取电平窗口1104可以小于图6所示的读取电平窗口608)。读取扫描电路1204迭代地测试第二组候选读取电平,直到候选读取电平相对于第二组候选读取电平内的其他候选读取电平激活最少数量的存储器单元,以确定第二存储器状态的第二读取电平。

因此,读取扫描电路1204可由管芯控制器1202用于确定用于存储器状态的最合适的读取电平,如上文针对第一读取电平和第二读取电平所述。然后,管芯控制器1202可以与状态机214和读取/写入电路208交互,以设置第一读取电平和第二读取电平,以及由非易失性存储器阵列206的存储器单元表示的存储器状态的其他确定的读取电平。这些设置的读取电平可以用于后续的读取操作。

图13为根据一个实施方案的存储系统1300的示意性框图。存储系统1300可包括存储设备1302,该存储设备包括存储控制器1304和非易失性存储器阵列206。存储控制器1304还可包括读取/写入电路1306、纠错码解码器1308和健康管理器1310,该健康管理器包括读取扫描电路1312。本领域的技术人员将会理解,在某些实施方案中,这些部件可结合在存储设备1302的其他部分内,或者可由主机106执行。

“健康管理器”是指被配置、编程、设计、布置或工程化为查看、测试、校验、配置、调整和/或调试存储器单元、存储器管芯和/或存储控制器的配置参数,以便延长存储设备的实用性、有效性和/或效率的任何硬件、软件、固件、电路、部件、模块、逻辑、设备或装置。

读取/写入电路1306被配置为服务于存储操作以向一个或多个存储客户端110提供存储服务。读取/写入电路1306可被配置为将数据写入多个存储器管芯104的存储器单元。读取/写入电路1306与纠错码解码器1308配合以服务于写入命令和读取命令。

在一个实施方案中,健康管理器1310可以管理和监视非易失性存储器阵列206的非易失性存储介质的健康。在一个实施方案中,健康管理器1310对非易失性存储器阵列206的一个或多个或每个存储块执行读取扫描操作。当健康管理器1310检测到具有导致更多误码(更高误码率)的健康状况的存储块时,健康管理器1310可调整存储器状态的读取电平以降低误码率、恢复数据和/或延长非易失性存储介质的寿命。

健康管理器1310可包括读取扫描电路1312和校准电路1314。“读取扫描电路”是指被配置、编程、设计、布置或工程化为执行读取扫描操作的任何电路、子电路、电子部件、硬件、软件、固件、模块、逻辑、设备或装置。“校准电路”是指被配置、编程、设计、布置或工程化为改变、更改、修改、更新、配置或校准配置参数(包括但不限于读取电平)的任何电路、子电路、电子部件、硬件、软件、固件、模块、逻辑、设备或装置。

读取扫描电路1312从非易失性存储器阵列206的存储块读取数据并与健康管理器1310配合以确定存储块的存储单元的健康。读取扫描电路1312可以实现读取扫描操作,并且可以校验每个存储块的存储器状态读取电平。

读取扫描电路1312可以从存储块读取数据以确定适当的读取电平。例如,在一个实施方案中,健康管理器1310可使用读取扫描电路1312、校准电路1314和纠错码解码器1308来实现BES读取扫描操作。读取扫描电路1312可以与纠错码解码器1308配合以确定存储块的每次读取的误码率或者估计误码率或代理误码率,该误码率可以称为读取误码率。在一个实施方案中,纠错码解码器1308确定误码率,无需进行任何纠错或检测。在另一个实施方案中,纠错码解码器1308在尝试或完成纠错或检测之后确定误码率。

“纠错码解码器”是指被配置、编程、设计、布置、或工程化为使用为数据集(例如,码字)定义的冗余信息来检测和/或校正数据集中的错误的任何硬件、软件、固件、电路、部件、模块、逻辑、设备或装置。在一个实施方案中,纠错码解码器可包括一种或多种类型的解码器,包括但不限于低密度奇偶校验(LDPC)解码器、里德-所罗门码解码器、格雷码解码器、Bose Chaudhuri Hocquenghem(BCH)码解码器、涡轮码解码器、多维奇偶校验码解码器、海明码解码器、哈达姆码解码器、扩展器码解码器、Reed-Muller码解码器、维特比解码器、Fano解码器等。

在一个实施方案中,读取扫描电路1312通过主动设置和调整非易失性存储器阵列206的存储单元的配置参数来管理非易失性存储器阵列206。通过在错误发生之前主动确定配置参数,读取扫描电路1312可以防止某些错误发生,而没有重试读取或对防止的错误执行其他补救措施的性能损失。在某些实施方案中,读取扫描电路1312调试存储设备1302的用例的配置参数以配置用例的存储单元,而不是使用默认配置参数。

读取扫描电路1312针对一组存储单元引用一个或多个介质特性,以确定该组存储单元的配置参数。响应于确定一组存储单元的配置参数,读取扫描电路1312可以使用所确定的配置参数配置该组存储单元。读取扫描电路1312可以周期性地更新一组存储单元的介质特性,更新该组存储单元的配置参数,并使用更新的配置参数重新配置该组存储单元。读取扫描电路1312可以在执行输入/输出操作期间、启动操作期间、响应于一组存储单元的后台扫描指示经改变的介质特性等用配置参数配置存储单元。

在一个实施方案中,健康管理器1310可以实现使用读取扫描电路1312的BES读取扫描操作。读取扫描电路1312可以使用预定数量的候选读取电平迭代地读取存储块的数据。读取扫描电路1312可以基于存储块的存储器单元的两个存储器状态之间的相关性来测试一组候选读取电平中的候选读取电平。纠错码解码器1308可以确定在读取扫描操作期间读取的数据的估计误码率(例如,作为BES读取扫描操作的一部分),并且校准电路1314可以基于由读取扫描电路1312确定的读取电平校准存储器单元。

在一个实施方案中,读取扫描电路1312可以确定用于读取被编程到存储块1316的第一组存储器单元的数据的第一读取电平。第一组存储器单元可以与第一存储器状态相关联。

读取扫描电路1312可以确定第一组存储器单元的存储器状态与第二组存储器单元的存储器状态之间的相关性。接下来,读取扫描电路1312可以确定用于读取被编程到第二组存储器单元的数据的第二读取电平。第二读取电平可基于第一组存储器单元的存储器状态与第二组存储器单元的存储器状态之间的相关性确定。

然后,读取扫描电路1312可以将第一读取电平设置为用于从第一组存储器单元读取数据的当前读取电平,并且可以将第二读取电平设置为用于从第二组存储器单元读取数据的当前读取电平。本领域的技术人员将认识到,读取扫描电路1312和校准电路1314可以驻留在除健康管理器1310之外的逻辑模块中。该图示并非旨在限制所公开的系统的该方面。

图14示出了根据一个实施方案的进行读取扫描操作的方法1400。在框1402处,读取扫描电路可以第一候选读取电平扫描第一读取电平窗口,该第一候选读取电平相对于第一读取电平窗口内的其他候选读取电平激活最少数量的存储器单元。第一读取电平窗口可以测试两个相邻存储器状态之间的读取电平。

在框1404中,读取扫描电路可基于相关性以第二候选读取电平配置第二读取电平窗口。该相关性在所述两个相邻存储器状态中的至少一个存储器状态和与第二读取电平窗口相关联的一个或多个其他相邻存储器状态之间。

在框1406中,读取扫描电路可以第二候选读取电平扫描第二读取电平窗口,该第二候选读取电平相对于第二读取电平窗口内的其他候选读取电平激活最少数量的存储器单元。一旦读取扫描电路确定了第一候选读取电平和第二候选读取电平,在框1408中,读取扫描电路就可将读取操作配置为使用第一候选读取电平和第二候选读取电平。

图15是可以结合本解决方案的实施方案的计算设备1500的示例框图。图15仅示出了执行本文所述的技术过程各方面的机器系统,并且不限制权利要求书的范围。本领域的普通技术人员将认识到其他变型、修改和替代。在某些实施方案中,计算设备1500包括数据处理系统1502、通信网络1504、通信网络接口1506、一个或多个输入设备1508、一个或多个输出设备1510等。

如图15所描绘,数据处理系统1502可包括一个或多个处理器1512和存储子系统1514。“处理器”是指被配置为接收、解译、解码和执行机器指令的任何电路、部件、芯片、管芯、封装件或模块。“指令”是指表示由设备使用处理器、微处理器、控制器、解译器或其他可编程逻辑执行的命令的符号。广义地讲,“指令”可意指源代码、目标代码和可执行代码。本文的“指令”还旨在包括具体体现在可编程只读存储器(EPROM)或硬编码成硬件(例如,“微代码”)的命令以及其中指令在设备制造时被配置到机器只读存储器或其他硬件部件中的类似具体实施。处理器的示例可包括但不限于中央处理单元、通用处理器、专用处理器、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、片上系统(SoC)、虚拟处理器、处理器内核等。

一个或多个处理器1512经由总线子系统1516与多个外围设备进行通信。这些外围设备可包括一个或多个输入设备1508、一个或多个输出设备1510、通信网络接口1506和存储子系统1514。在一个实施方案中,存储子系统1514包括一个或多个存储设备和/或一个或多个存储器设备。

“存储设备”或“存储器设备”是指任何硬件、系统、子系统、电路、部件、模块、非易失性存储器介质、硬盘驱动器、存储阵列、设备或装置,其被配置、编程、设计或工程化为在存储设备不使用来自电源的电力的同时将数据存储一段时间并将数据保持在存储设备中。存储设备的示例包括但不限于硬盘驱动器、闪存存储器、MRAM存储器、固态存储设备、磁盘束(JBOD)、闪存束(JBOF)、外部硬盘、内部硬盘等。

“非易失性存储器介质”是指被配置为在主电源被移除之后保持用于表示零或一的二进制值的可变物理特性的任何硬件、设备、部件、元件或电路。可变物理特性的示例包括但不限于晶体管的阈值电压、存储器单元的电阻电平、通过存储器单元的电流电平、磁极取向、自旋传递扭矩等。

可变物理特性使得一旦设置,物理特性就保持足够固定,使得当用于非易失性存储器介质的主电源不可用时,可在读取、检索或感测二进制值时测量、检测或感测可变物理特性。换句话讲,非易失性存储器介质是被配置为使得存储在非易失性存储器介质上的数据在用于非易失性存储器介质的电源被移除并且然后恢复之后可检索的存储介质。非易失性存储器介质可包括一个或多个非易失性存储器元件,该非易失性存储器元件可包括但不限于:芯片、封装件、平面、存储器管芯等。

非易失性存储器介质的示例包括但不限于:ReRAM、忆阻器存储器、可编程的金属化单元存储器、相变存储器(PCM、PCME、PRAM、PCRAM、双向统一存储器、硫属化物RAM或C-RAM)、NAND闪存存储器(例如,2D NAND闪存存储器、3D NAND闪存存储器)、NOR闪存存储器、纳米随机存取存储器(纳米RAM或NRAM)、基于纳米晶体线的存储器、基于硅氧化物的亚10纳米工艺存储器、石墨烯存储器、氧化硅氮氧化硅(SONOS)、可编程金属化单元(PMC)、导电桥接RAM(CBRAM)、磁阻RAM(MRAM)、磁存储介质(例如,硬盘、磁带)、光存储介质等。

虽然非易失性存储器介质在本文中被称为“存储器介质”,但在各种实施方案中,非易失性存储器介质可更一般地被称为非易失性存储器。因为非易失性存储器介质能够在移除电源时存储数据,所以非易失性存储器介质也可以被称为记录介质、非易失性记录介质、存储介质、存储装置、非易失性存储器、易失性存储器介质、非易失性存储介质、非易失性存储装置等。

在某些实施方案中,存储在非易失性存储器介质中的数据可在块级寻址,这意味着非易失性存储器介质中的数据被组织成各自具有唯一逻辑地址(例如,LBA)的数据块。在其他实施方案中,存储在非易失性存储器介质中的数据可以字节级寻址,这意味着非易失性存储器介质中的数据被组织成数据的字节(8位),每个字节具有唯一地址,诸如逻辑地址。字节可寻址非易失性存储器介质的一个示例是存储级存储器(SCM)。

在一个实施方案中,存储子系统1514包括易失性存储器1518和非易失性存储器1520。易失性存储器1518和/或非易失性存储器1520可以存储计算机可执行的指令,这些指令单独或一起形成逻辑1522,该逻辑在被应用于一个或多个处理器1512并且由该一个或多个处理器执行时,实现本文所公开的过程的实施方案。

“易失性存储器”是指易失性存储器介质的缩略名称。在某些实施方案中,易失性存储器是指易失性存储器介质和逻辑、控制器、一个或多个处理器、一个或多个状态机和/或管理易失性存储器介质并提供对易失性存储器介质的访问的其他外围电路。

“易失性存储器介质”是指被配置为保持用于表示零或一的二进制值的可变物理特性的任何硬件、设备、部件、元件或电路,对于该二进制值,在移除主要电源时或除非使用主要电源刷新所表示的二进制值时,可变物理特性将恢复到不再表示二进制值的默认状态。易失性存储器介质的示例包括但不限于动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率随机存取存储器(DDR RAM)或其他随机存取固态存储器。

虽然易失性存储器介质在本文中被称为“存储器介质”,但在各种实施方案中,易失性存储器介质可更一般地被称为易失性存储器。

“非易失性存储器”是指非易失性存储器介质的缩略名称。在某些实施方案中,非易失性存储器介质是指非易失性存储器介质以及管理非易失性存储器介质并提供对非易失性存储器介质的访问的逻辑、控制器、处理器、状态机和/或其他外围电路。

“逻辑”是指机器存储器电路、非暂态机器可读介质和/或电路,通过该电路的材料和/或材料能量配置包括控制和/或程序信号和/或设置和值(诸如电阻、阻抗、电容、电感、电流/电压等级等),这可应用于影响设备的操作。磁介质、电子电路、电和光学存储器(易失性和非易失性)以及固件为逻辑的示例。逻辑具体地排除纯信号或软件本身(然而不排除包括软件并由此形成事物的配置的机器存储器)。

一个或多个输入设备1508包括用于将信息输入到数据处理系统1502的设备和机制。这些可以包括键盘、小键盘、结合到图形用户界面中的触摸屏、诸如语音识别系统、麦克风的音频输入设备以及其他类型的输入设备。在各种实施方案中,一个或多个输入设备1508可以体现为计算机鼠标、轨迹球、触控板、操纵杆、无线遥控器、绘图板、语音命令系统、眼睛跟踪系统等。一个或多个输入设备1508通常允许用户经由诸如单击按钮等的命令来选择出现在图形用户界面上的对象、图标、控制区域、文本等。

一个或多个输出设备1510包括用于从数据处理系统1502输出信息的设备和机制。这些可以包括本领域公知的图形用户界面、扬声器、打印机、红外LED等。在某些实施方案中,图形用户界面通过有线连接直接耦接到总线子系统1516。在其他实施方案中,图形用户界面通过通信网络接口1506耦接到数据处理系统1502。例如,图形用户界面可包括单独计算设备1500诸如台式计算机、服务器或移动设备上的命令行界面。

通信网络接口1506提供到通信网络(例如,通信网络1504)和数据处理系统1502外部的设备的接口。通信网络接口1506可以用作用于从其他系统接收数据并且向其他系统传输数据的接口。通信网络接口1506的实施方案可以包括以太网接口、调制解调器(电话、卫星、电缆、ISDN)、(异步)数字订户线路(DSL)、火线、USB、诸如蓝牙或WiFi的无线通信接口、近场通信无线接口、蜂窝接口等。

通信网络接口1506可以经由天线、电缆等耦接到通信网络1504。在一些实施方案中,通信网络接口1506可以物理地集成在数据处理系统1502的电路板上,或者在一些情况下可以在诸如“软调制解调器”等的软件或固件中实现。

计算设备1500可以包括使得能够使用协议诸如HTTP、TCP/IP、RTP/RTSP、IPX、UDP等通过网络通信的逻辑。

易失性存储器1518和非易失性存储器1520是被配置为存储计算机可读数据和指令以实现本文所述的过程的各种实施方案的有形介质的示例。其他类型的有形介质包括可移除存储器(例如,可插拔USB存储器设备、移动设备SIM卡)、光学存储介质诸如CD-ROM、DVD、半导体存储器诸如闪存存储器、非暂态只读存储器(ROMS)、电池支持的易失性存储器、联网存储设备等。易失性存储器1518和非易失性存储器1520可以被配置为存储提供落入本公开的范围内的其所公开的过程和其他实施方案的功能的基本编程和数据构造。

实现本解决方案的实施方案的一个或多个部分的逻辑1522可存储在易失性存储器1518和/或非易失性存储器1520中。逻辑1522可以从易失性存储器1518和/或非易失性存储器1520读取并且由一个或多个处理器1512执行。易失性存储器1518和非易失性存储器1520还可提供用于存储由逻辑1522使用的数据的存储库。“存储库”是指包括数据或内容的任何数据源或数据集。在一个实施方案中,存储库驻留在计算设备上。在另一个实施方案中,存储库驻留在远程计算或远程存储设备上。存储库可包括文件、文件夹、目录、一组文件、一组文件夹、一组目录、数据库、应用程序、软件应用程序、文本的内容、电子邮件的内容、日历条目的内容等。在一个实施方案中,存储库包括非结构化数据。在一个实施方案中,存储库包括结构化数据,诸如表、阵列、队列、查找表、散列表、堆、堆栈等。存储库可以任何格式存储数据,包括二进制、文本、加密、未加密、专有格式等。

易失性存储器1518和非易失性存储器1520可以包括多个存储器,该多个存储器包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)和在其中存储只读非暂态指令的只读存储器(ROM)。易失性存储器1518和非易失性存储器1520可以包括为程序和数据文件提供持久(非易失性)存储的文件存储子系统。易失性存储器1518和非易失性存储器1520可以包括诸如可移除的闪存存储器的可移除的存储系统。

总线子系统1516提供用于使数据处理系统1502的各种部件和子系统能够按预期彼此通信的机制。尽管通信网络接口1506被示意性地描绘为单条总线,但总线子系统1516的一些实施方案可利用多条不同的总线。

对于本领域的普通技术人员将显而易见的是,计算设备1500可以是诸如智能电话、台式计算机、膝上型计算机、机架式计算机系统、计算机服务器或平板计算机设备等的设备。如本领域所公知的,计算设备1500可以被实现为多个联网计算设备的集合。此外,计算设备1500通常将包括操作系统逻辑(未示出),该操作系统逻辑的类型和性质在本领域中是公知的。

本文所用的术语应被赋予它们在相关领域中的普通含义,或它们在上下文中的使用所指示的含义,但是如果提供了明确的定义,则意味着控制。

在本公开中,可将不同实体(其可不同地被称为“单元”、“电路”、“其他部件”等)描述或声明为“被配置”以执行一个或多个任务或操作。该表达方式—[实体]被配置为[执行一个或多个任务]—在本文被用来指代结构(即,诸如电子电路之类的物理工具)。更具体地,该表达方式用于指示该结构被布置用于在操作期间执行所述一个或多个任务。可以说结构“被配置为”执行一些任务,即使当前未在操作该结构也可如此。被配置为将信用分配到多个处理器内核的“信用分配电路”旨在涵盖例如集成电路,该集成电路具有在操作期间执行该功能的电路,即使所考虑的该集成电路当前未被使用(例如,电源未与其连接)。因此,被描述或列举为“被配置为”执行一些任务的实体是指物理的实体,诸如存储可执行以实现任务的程序指令的设备、电路、存储器等。本文中不使用该短语来指无形的事物。

术语“被配置为”并非旨在表示“可配置为”。例如,未编程的FPGA将不被认为是“被配置为”执行一些特定功能,尽管它在编程之后可为“可配置为”执行该功能。

在所附权利要求书中指出,结构“被配置为”执行一个或多个任务,这明确地旨在不对该权利要求要素调用35U.S.C.§112(f)。因此,本申请中不以另外的方式包括用于[执行功能]构造的“装置”的权利要求不应根据35U.S.C§112(f)进行解释。

如本文所用,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除其他因素可影响该确定的可能性。即,确定可仅基于指定的因素或基于指定的因素以及其他未指定的因素。参考短语“基于B确定A”该短语指定B是用于确定A或影响A的确定的因素。该短语不排除A的确定也可基于一些其他因素,诸如C。该短语也旨在涵盖其中仅基于B决定A的实施方案。如本文所用,短语“基于”与短语“至少部分地基于”同义。

如本文所用,短语“响应于”描述触发效果的一个或多个因素。该短语不排除附加因素可影响或以其他方式触发效果的可能性。即,效果可仅响应于那些因素,或可响应于指定的因素以及其他未指定的因素。参考短语“响应于B执行A”该短语指定B是触发A的性能的因素。该短语不排除执行A也可响应于一些其他因素,诸如C。该短语也旨在涵盖其中仅响应于B执行A的实施方案。

如本文所用,除非另外指明,否则术语“第一”、“第二”等用作它们前面的名词的标签,并且不意味着任何类型的排序(例如,空间的、时间的、逻辑的等)。例如,在具有八个寄存器的寄存器文件中,术语“第一寄存器”和“第二寄存器”可用于指代八个寄存器中的任两个,而不是例如仅逻辑寄存器0和1。

当用于权利要求中时,术语“或”用作包括性的或,而不是排他性的或。例如,短语“x、y或z中的至少一者”是指x、y和z中的任一个,以及它们的任何组合。

54页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种擦除方法、装置及计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!