通过对非易失性存储器的分区内的读取访问的计数来检测存储器上的读取干扰的利记博彩app
【专利摘要】在非易失性存储器器件中,在字线上数据的访问可以降低在邻近的字线上的数据质量,这称为读取干扰。提出通过使用哈希树用于跟踪读取的数量来确定字线可能经受读取干扰的技术。读取计数器以被维持用于相对粗粒度的存储器单位,诸如裸芯或块。当用于这些单位的一个的计数器达到某一级时,这些单位的一个被子分区成子单位,每个具有其自己的读取计数器,重复过程以确定用精细级的粒度频繁读取字线,同时仅使用存储器上的相对适量的RAM来存储计数器。
【专利说明】
通过对非易失性存储器的分区内的读取访问的计数来检测存储器上的读取干扰
【背景技术】
[0001]以下涉及可再编程的非易失性存储器系统(诸如半导体闪速存储器)的操作,并且更具体地,涉及在这样的存储器上的误差的确定和管理。
[0002 ]能够非易失性地存储电荷的固态存储器、特别是被封装为小型规格卡的EEPROM和闪速EEPROM形式的固态存储器最近成为各种移动和手持设备、特别是信息装置和消费电子产品中的存储装置的选择。不同于也是固态存储器的RAM(随机存取存储器),闪速存储器是非易失性的,并且即使在切断电源之后仍保留它所存储的数据。此外,不同于ROM(只读存储器),闪速存储器是可重写的,类似于磁盘存储器件。尽管成本更高,但是闪速存储器正被更多地用于大容量存储应用中。基于旋转磁介质(诸如硬盘驱动器和软盘)的传统的大容量存储不适于移动和手持环境。这是因为磁盘驱动器倾向于体积大,容易产生机械故障并且具有高等待时间和高功率要求。这些不希望的属性使得基于磁盘的存储在大多数移动和便携式应用中是不切实际的。另一方面,闪速存储器(无论是否是嵌入式)和固态驱动器(SSD)以可移除卡的形式理想地适合于移动和手持环境中,因为其校体积、低功耗、高速度和高可靠性的特征。
[0003]闪速EEPROM与EEPROM(电可擦除和可编程只读存储器)的相似之处在于,它是一种可被擦除并且使新数据被写到或“编程”到其存储器单元中的非易失性存储器。在场效应晶体管结构中,闪速EEPROM与EEPROM都利用在源极和漏极区域之间的、位于半导体基板中的沟道区之上的浮置(未连接的)导电栅极。然后在浮置栅极之上提供控制栅极。由被保留在浮置栅极上的电荷量来控制晶体管的阈值电压特性。也就是,对于浮置栅极上给定水平的电荷,存在必须在“导通”晶体管之前施加到控制栅极以允许在其源极和漏极区之间导电的相应电压(阈值)。特别是,诸如闪速EEPROM的闪速存储器允许整块的存储器单元同时被擦除。
[0004]浮置栅极可以保持一个范围的电荷,因此可以被编程到在阈值电压窗内的任何阈值电压电平。由器件的最小和最大阈值电平来界定阈值电压窗的大小,该最小和最大阈值电平又对应于可以被编程到浮置栅极上的电荷的范围。阈值窗通常取决于存储器器件的特性、工作条件和历史。在该窗内的每个不同的、可分辨的阈值电压电平范围原则上用于指定单元的明确的存储器状态。
[0005]作为存储器单元的晶体管通常通过两种机制之一被编程到“已编程”状态。在“热电子注入”中,施加到漏极的高电压加速电子穿过基板沟道区域。同时,施加到控制栅极的高电压拉动热电子通过薄的栅极电介质到浮置栅极之上。在“隧穿注入”中,高电压被施加到相对于基板的控制栅极。以这种方式,将电子从基板拉到中间浮置栅极。而术语“编程”历史上已经被用于描述通过将电子注入到存储器单元的初始擦除电荷存储单元来写入到存储器,以便改变存储器状态,其现在已经与更常用的术语(诸如“写入”或“记录”)互换使用。
[0006]存储器器件可以通过许多机制来擦除。对于EEPR0M,通过施加高电压到相对于控制栅极的基板,存储器单元是电可擦除的,以便引起浮置栅极中的电子隧穿通过薄的氧化物到基板通道区域(即,福勒-诺德海姆(Fowler-Nordheim)隧穿效应)。通常,EEPROM是可逐字节擦除的。对于闪速EEPR0M,存储器是同时全部电可擦除的或者一次电可擦除一个或多个最小的可擦除块,其中最小的可擦除块可以由一个或多个扇区(sector)组成,并且每个扇区可以存储512个字节或更多的数据。
[0007]存储器器件通常包括可以被安装在卡上或固态驱动器(SSD)中的一个或多个存储器芯片。每个存储器芯片包括由外围电路(诸如,解码器和擦除、写入和读取电路)支持的存储器单元的阵列。更复杂的存储器器件还带有进行智能和更高级存储器操作和接口的控制器。
[0008]现今有正在使用的许多商业上成功的非易失性固态存储器器件。这些存储器器件可以是闪速EEPR0M,或可以使用其他类型的非易失性存储器单元。闪速存储器及制造它们的系统和方法的示例在美国专利 Νο.5,070,032、Νο.5,095,344、Νο.5,315,541、Ν0.5,343,063、如.5,661,053、吣.5,313,421和吣.6,222,762中给出。特别是,具有熟仰串结构的闪速存储器器件在美国专利Νο.5,570,315、Νο.5,903,495、Ν0.6,046,935中描述。另外,非易失性存储器取件还由具有用于存储电荷的介电层的存储器单元来制造。取代先前描述的导电浮置栅极元件,使用介电层。使用电介质存储元件的这样的存储器器件已经由Eitan等描述,"NR0M:A Novel Localized Trapping,2~Bit Nonvolatile Memory Cell,"IEEE电子器件快报(IEEE Electron Device Letters),第21 卷第 11 期,2000年 11 月,第543-545页。0N0介电层延伸穿过在源极和漏极扩散之间的沟道。用于一个数据位的电荷被定位在与漏极相邻的介电层中,且用于另一个数据位的电荷被定位在与源极相邻的介电层中。例如,美国专利N0.5,768,192和N0.6,011,725公开了一种具有夹在两个二氧化硅层之间的俘获的电介质的非易失性存储器单元。通过分别读取该电介质内的空间上分开的电荷存储区域的二进制状态来实现多状态数据存储。
[0009]为了改进读取和编程性能,在阵列中的多个电荷存储元件或存储器晶体管被并行读取或编程。因此,存储器元件的页面被一起读取或编程。在现有存储器架构中,一行典型地含有若干交错页面或者可以构成一个页面。页面的所有存储器元件将被同时读取或编程。
[0010]在闪速存储器系统中,擦除操作可能需要多达比读取和编程操作更长的一个数量级的时间。因此,理想的是具有相当大的(substantial)大小的擦除块。以这种方式,擦除时间平摊(amortized)在大的存储器单元的集合体上。
[0011]闪速存储器的性质断定了数据必须被写入到已擦除的存储器位置。如果来自主机的某个逻辑地址的数据要被更新,一种方式是在相同物理存储器位置中重写更新数据。即,逻辑到物理地址的映射是不变的。然而,这将意味着整个擦除块包含:物理位置将必须被首先擦除,然后用更新的数据重写。该更新的方法是低效率的,因为其需要完整的擦除块以被擦除和重写,特别是,如果要被更新的数据仅占据小部分的擦除块。它也将导致存储器块的更高频率的擦除循环,考虑到这种类型的存储器器件的有限的忍耐力,这是不希望的。
[0012]通过主机系统、存储器系统和其它电子系统的外部接口通信的数据被处理,并且被映射到闪速存储器系统的物理位置。通常,依据数据的逻辑块(以下称为“LBA接口”),由系统生成或接收的数据文件的地址被映射到为系统建立的不同范围的连续逻辑地址空间。地址空间的范围通常足以覆盖该系统能够处理的全部范围的地址。在一个示例中,磁盘存储驱动器通过这样的逻辑地址空间与计算机或其他主机系统进行通信。该地址空间具有足以解决磁盘驱动器的整个数据存储容量的范围。
[0013]闪速存储器系统最常以与各种主机(诸如个人计算机、摄像机等)可移除地连接的存储器卡或闪速驱动器的形式提供,但也可以嵌入在这样的主机系统内或者以固态驱动器的形式。当将数据写入到存储器时,主机通常为扇区、群集或存储器系统的连续虚拟地址空间内的其他单位的数据分配唯一的逻辑地址。如同磁盘操作系统(D0S),主机将数据写入到存储器系统的逻辑地址空间内的地址,并且从存储器系统的逻辑地址空间内的地址读取数据。存储器系统内的控制器将从主机接收到的逻辑地址转换为存储器阵列内的物理地址,其中数据实际上被存储,然后保持追踪这些地址转换。存储器系统的数据存储容量至少与为存储器定义的整个逻辑地址空间上可寻址的数据的数量一样大。
[0014]在当前的商业闪速存储器系统中,擦除单位的大小已经增大到足够的存储器单元的块以存储多个扇区的数据。事实上,很多页面的数据存储在一个块中,并且页面可以存储多个扇区的数据。此外,两个或更多块通常作为元块(metablock)被一起操作,并且这样的块的页面作为元页面(metapage)逻辑地链接在一起。页面或元页面的数据一起写入和读取,页面或元页面的数据可以包括很多扇区的数据,从而增加了操作的并行性。随着这样的大容量的操作单位,挑战是有效地操作它们。
[0015]为了便于解释,除非另有说明,意图是本文所使用的术语“块”指的是擦除的块单位或者多个块的“元块”,这取决于是否在特定的系统中正在使用元块。类似地,本文参照“页面”可以指在单个块内的编程的单位,或在元块内的“元页面”,这取决于系统的配置。
[0016]在电荷存储非易失性存储器器件(诸如基于EEPROM或电介质存储的那些)中,非易失性是不完善的,并且存储在元件中的数据值可能通过泄漏而随时间降级。在存储器电路的一个部分中的操作也可能影响没有被直接作用的存储元件的数据值。例如,当邻近的字线被读取或写入时,在相邻的字线上的存储器单元之间的电容耦合可能导致“读取干扰”或“写入干扰” O (擦除干扰也可能出现,这取决于单元被擦除的粒度(granularity)。)为了保持这样的存储器系统中的数据的完整性,需要考虑这样的干扰的影响。
【发明内容】
[0017]根据本发明的一般方面,提出一种用于操作具有一个或多个存储器电路和控制器电路的非易失性存储器系统的方法。该存储器电路每个包括沿字线形成的非易失性存储器单元的一个或多个阵列,并且所述控制器电路管理所述控制器电路上的数据的存储。对于一个或多个存储器阵列的第一多个不同的分区(divis1n)的每个,控制器电路维持用于读取操作而访问对应的分区的字线的次数的计数。响应于用于对应的分区的计数中的一个计数达到第一阈值,将对应的分区细分为第二多个不同的第一子分区(subdivis1n)。对于第一子分区的每个,控制器电路随后维持用于读取操作而访问子分区的字线的次数的计数。
[0018]本发明的各种方面、优点、特征和实施例被包含在其典范的示例的下面的描述中,该描述应结合附图来考虑。出于所有目的,所有专利、专利申请、文章、其它出版物、文件和这里提及的东西在此通过参考将其全部合并入本文中。在任何合并的出版物、文档或事物与本申请之间的定义或词语的使用的任何不一致或冲突的程度,那些以本申请为准。
【附图说明】
[0019]图1示意性地示出了适于实现本发明的存储器系统的主要硬件组件。
[0020]图2示意性地示出了非易失性存储器单元。
[0021]图3示出了对于浮置栅极可以选择性地在任何一个时间存储的四个不同的电荷Q1-Q4的在源极-漏极电流ID和控制栅极电压VCG之间的关系。
[0022]图4A示意性地示出了组织成NAND串的存储器单元的串(string)。
[0023]图4B示出了由诸如图4A所示的NAND串50构成的存储器单元的NAND阵列210的示例。
[0024]图5示出了例如在NAND配置中组织的、并行被感测或编程的存储器单元的页面。
[0025]图6(0)-6(2)示出了编程4个状态的存储器单元的群体(populat1n)的示例。
[0026]图7A-7E示出了用给定的2位码编码的4个状态的存储器的编程和读取。
[0027]图7F示出了用给定的3位码编码的8个状态的存储器的模糊-精细(foggy-fine)编程。
[0028]图8示出了由具有存在于控制器中的软件组件的存储器管理器(withis asoftware component that resides in the controller)管理的存储器。
[0029]图9示出了后端系统的软件模块。
[0030]图10A( i )-10A( iii )示意性地示出了逻辑组和元块之间的映射。图10B示意性地示出了逻辑组和元块之间的映射。
[0031]图11是用于两级示例的过程的示意性表示。
[0032]图12和13提供哈希树(hash tree)以追踪读取区域的进一步说明。
【具体实施方式】
[0033]存储器系统
[0034]图1至图10B提供示例存储器系统,其中本发明的各种方面可以被实现或示出。
[0035]图1示意性地示出了适于实现本发明的存储器系统的主要硬件组件。存储器系统90通常通过主机接口与主机90—起操作。存储器系统通常是存储器卡、固态驱动器(SSD)或嵌入式存储器系统的形式。存储器系统90包含由控制器100控制其操作的存储器200。存储器200包括分布在一个或多个集成电路芯片上的一个或多个非易失性存储器单元阵列。控制器100包括接口 110、处理器120、可选的协处理器121、R0M 122(只读存储器)、RAM130(随机存取存储器)和可选的可编程非易失性存储器124。接口 110具有将控制器接口到主机的一个组件和接口到存储器200的另一个组件。存储在非易失性ROM 122和/或可选的非易失性存储器124中的固件为处理器120提供码,以实现控制器100的功能。误差校正码可以由处理器120或可选的协处理器121来处理。在可替代的实施例中,控制器100由状态机(未示出)来实现。在另一个实施例中,控制器100在主机内实现。
[0036]物理存储器结构
[0037]关于存储器部分200,存储器器件包含易失性存储器器件,诸如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)器件,非易失性存储器器件,诸如电阻式随机存取存储器(“ReRAM”)、电可擦除可编程只读存储器(“EEPR0M”)、闪速存储器(其也可以被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM")和磁阻随机存取存储器(“MRAM” )、以及其他能够存储信息的半导体元件。此外,存储器器件的每种类型可以具有不同的配置。例如,闪速存储器器件可以被配置在NAND或NOR配置中。
[0038]存储器器件可以由无源和/或有源元件、以任何组合形成。通过非限制性的示例,无源半导体存储器元件包含ReRAM器件元素,在一些实施例中其包含电阻率转换存储元件,诸如反熔丝、相变材料等,并且可选择地包含导向元件,诸如二极管等。进一步通过非限制性的示例,有源半导体存储器元件包含EEPROM和闪速存储器器件元件,在一些实施例中其包含含有电荷存储区域的元件,诸如浮置栅极、导电纳米粒子或电荷存储介电材料。
[0039]多个存储器元件可以被配置以使得它们串联连接或者使得每个元件单独访问。通过非限制性示例的方式,NAND器件包含串联连接的存储器元件(例如,包含电荷存储区域的器件)。例如,NAND存储器阵列可以被配置以便阵列由存储器的多个串组成,在存储器中每个串由共享一位行的多个存储器元件组成并且被作为一组而访问。相比之下,存储器元件可以被配置以便每个元件单独访问,例如,NOR存储器阵列。本领域的技术人员将认识到,NAND和NOR存储器配置是示范性的,并且存储器元件可以以其它方式配置。
[0040]单个器件的半导体存储器元件一一诸如位于相同的基板内和/或在相同的基板上或者在单个裸芯中的元件一一可以以二维或三维(诸如二维阵列结构或三维阵列结构)分布。
[0041]在二维存储器结构中,半导体存储器元件被布置在单个平面或单个存储器器件级(level)中。典型地,在二维存储器结构中,存储器元件位于大体上平行于支撑存储器元件的基板的主表面延伸的平面(例如,在x-z方向的平面)中。基板可以是晶片,在晶片上沉积存储器元件的层和/或在晶片上形成存储器元件,或者基板可以是载体基板,在形成存储器元件之后载体基板被附接至存储器元件。作为非限制性的示例,基板可以包含诸如硅的半导体。
[0042]存储器元件可能以有序阵列被布置在诸如多个行和/或列的单个存储器器件级中。然而,存储器元件可以被布置成非规则(non-regular)或非正交(non-orthogonal)的配置,如本领域中技术人员所理解的。每个存储器元件可以具有两个或更多电极或者诸如位线和字线的接触线。
[0043]三维存储器阵列被组织以便存储器元件占据多个平面或多个器件级,从而形成三维(即,在X、y和z方向,其中y方向大体上垂直于基板的主表面,且X方向和y方向大体上平行于基板的主表面)中的结构。
[0044]作为非限制性示例,在三维存储器阵列结构中的每个平面可以在物理上位于具有多个二维存储器级的二维(一个存储器级)中,以形成三维存储器阵列结构。作为另一个非限制性的示例,三维存储器阵列可以被物理构造成多个垂直列(例如,列大体上垂直于在y方向上的基板的主表面延伸),多个垂直列在每一列中具有多个元件,并且因此具有跨越存储器器件的若干垂直堆叠的存储器平面。列可以被布置在二维配置中,例如,在χ-ζ平面中,从而得到存储器元件的三维布置。本领域的技术人员将理解,三维的存储元件的其它配置也将构成三维存储器阵列。
[0045]通过非限制性的示例,在三维NAND存储器阵列中,存储器元件可以被连接在一起以形成在单个水平(例如,x-z)平面内的NAND串。可替代地,存储器元件可以连接在一起以延伸穿过多个水平平面。可以设想其他的三维配置,其中一些NAND串在单个存储器级中含有存储器元件,而其他串含有延伸穿过多个存储器级的存储器元件。三维存储器阵列也可以被设计在NOR配置中和ReRAM配置中。
[0046]单片三维存储器阵列是在其中多个存储器级被形成在单个基板(诸如半导体晶片)上方和/或单个基板内的一种阵列。在单片三维阵列中,阵列的每个级的层被形成在阵列的每个底层级的层上。本领域的技术人员将理解,单片三维存储器阵列的相邻级的层可以被共享或在存储器级之间具有中间层。与此相反,二维阵列可以被单独形成,然后被封装在一起以形成非单片存储器器件。例如,已经通过在单独的基板上形成存储器级然后在彼此的顶上粘附存储器级来构建非单片堆叠存储器。基板在接合前可以变薄或者从存储器级移除,但是由于存储器级最初在单独的基板上形成,因此这样的存储器不是单片三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可以被单独形成然后被封装在一起以形成堆叠芯片存储器器件。
[0047]对存储器元件的适当的操作和与存储器元件的适当的通信通常需要相关联的电路。该相关联的电路可以与存储器阵列在相同的基板上和/或在单独的基板上。作为非限制性的示例,存储器器件可以具有在存储器元件的编程和读取中使用的驱动器电路和控制电路。
[0048]本领域的技术人员将认识到,本发明不限于描述的二维和三维的示范性结构,而是覆盖如本文描述的和如由本领域技术人员所理解的发明的精神和范围内的所有相关的存储器结构。
[0049]图2示意性地示出了非易失性存储器单元。存储器单元10可以通过具有诸如浮置栅极或电介质层的电荷存储单元20的场效应晶体管来实现。存储器单元10还包含源极14、漏极16和控制栅极30。
[0050]现今有正在使用的许多商业上成功的非易失性固态存储器器件。这些存储器器件可以采用不同类型的存储器单元,每个类型具有一个或多个电荷存储元件。
[0051 ] 典型的非易失性存储器单元包含EEPROM和闪速EEPROMt3EEPROM单元以及制造它们的方法的示例已经在美国专利N0.5,595,924中给出。闪速EEPROM单元、其在存储器系统中的用途以及制造它们的方法的示例在美国专利N0.5,070,032、N0.5,095,344、N0.5,315,541、勵.5,343,063、如.5,661,053、%.5,313,421和如.6,222,762中给出。特别是,具有NAND单元结构的存储器器件的示例在美国专利N0.5,570,315,N0.5,903,495,N0.6,046,935中描述。另外,利用已经由Eitan等描述的电介质存储元件的存储器器件的示例“NR0M:一种新颖的局部俘获,2位非易失性存储器单元(NR0M:A Novel Localized Trapping,2-Bit Nonvolatile Memory Cell),”IEEE电子器件快报,第21 卷第 11 期,2000年 11 月,第543-545页,以及在美国专利N0.5,768,192和N0.6,011,725中描述。
[0052]在实践中,单元的存储器状态通常通过感测当参考电压被施加到控制栅极时穿过单元的源极和漏极电极的传导电流来读取。因此,对于在单元的浮置栅极上的每个给定电荷,相对于固定的参考控制栅极电压的相应的传导电流可以被检测到。类似地,可编程到浮置栅极上的电荷的范围限定了相应的阈值电压窗或相应的传导电流窗。
[0053]可替代地,取代检测在分区电流窗之间的传导电流,有可能在控制栅极处对于测试下的给定存储器状态设置阈值电压,且检测传导电流是否低于或高于阈值电流。在一个实现方式中,相对于阈值电流的传导电流的检测通过检查传导电流通过位线的电容放电的速率来完成。
[0054]图3示出了对于浮置栅极可以选择性地在任何一个时间存储的四个不同的电荷Q1-Q4的源极-漏极电流ID和控制栅极电压VCG之间的关系。四条ID对VCG实曲线表示可以在存储器单元的浮置栅极上编程的四个可能的电荷水平,其分别对应于四个可能的存储器状态。作为示例,总体的单元的阈值电压窗的范围可以从0.5V到3.5V。分别表示一个已擦除的状态和六个已编程的状态的七个可能的存储器状态“O”、“I”、“2”、“3”、“4”、“5”、“6”可以通过将阈值窗以每个0.5V为区间分成五个区域来分区。例如,如图所示如果使用2μΑ的参考电流、IREF,则用Ql编程的单元可以被认为是处于存储器状态“I”,因为其曲线在由VCG = 0.5V和1.0V分区的阈值窗的区域内与IREF相交。类似地,Q4是处于存储器状态“5”。
[0055]如从以上的描述中可以看出,使存储器单元存储越多的状态,其阈值窗被分得越精细。例如,存储器器件可以具有存储器单元,该存储器单元具有从-1.5V到5V的范围的阈值窗。这提供了 6.5V的最大宽度。如果存储器单元要存储16个状态,每个状态在阈值窗中可以占据200mV到300mV。这将需要在编程和读取操作中更高的精度,以便能够实现所需的分辨率。
[0056]图4A示意性地示出了组织成NAND串的存储器单元的串JAND串50包括通过其源极和漏极来菊花链状连接的一系列存储器晶体管Ml、M2、...Mn(例如,η = 4、8、16或更高)。一对选择晶体管S1、S2控制存储器晶体管分别经由NAND串的源极端子54和漏极端子56链式连接到外部。在存储器阵列中,当源极选择晶体管SI导通时,源极端子被耦合到源极线(见图4B)。类似地,当漏极选择晶体管S2导通时,NAND串的漏极端子被耦合到存储器阵列的位线。在链中的每个存储器晶体管10充当存储器单元。存储器晶体管10具有电荷存储元件20以存储给定数量的电荷,以便表示预期的存储器状态。每个存储器晶体管的控制栅极30允许控制读取和写入操作。如图4B所示,一行NAND串的相应的存储器晶体管的控制栅极30全部连接到相同的字线。类似地,选择晶体管S1、S2的每个的控制栅极32提供分别经由其源极端子54和漏极端子56对NAND串的控制访问。同样地,一行NAND串的相应的选择晶体管的控制栅极32全部连接到相同的选择线。
[0057]当NAND串内的被寻址的存储器晶体管10在编程期间被读取或被验证时,其控制栅极30被供应适当的电压。同时,在NAND串50中的非寻址存储器晶体管的其余部分通过在其控制栅极上施加足够的电压而完全导通。以这种方式,从各个存储器晶体管的源极到NAND串的源极端子54的导电路径被有效地创建,且同样地,对于从各个存储器晶体管的漏极到单元的漏极端子56的导电路径被有效地创建。具有这样的NAND串结构的存储器器件在美国专利 Νο.5,570,315、Νο.5,903,495、Ν0.6,046,935 中描述。
[0058]图4Β示出了由诸如图4Α所示的NAND串50构成的存储器单元的NAND阵列210的示例。沿着NAND串的每列,诸如位线36的位线被耦合到每个NAND串的漏极端子56。沿着NAND串的每堆,诸如源极线34的源极线被耦合到每个NAND串的源极端子54。另外,沿着一堆(bank)NAND串中的一行存储器单元的控制栅极被连接到字线,诸如字线42。沿着一排(row)NAND串中的一行选择晶体管的控制栅极被连接到选择线,诸如选择线44。一排NAND串中的整行存储器单元可以通过在该排NAND串的字线和选择线上的适当的电压被寻址。当正在读取NAND串内的存储器晶体管,该串中的剩余存储器晶体管经由其相关的字线而导通,使得流过该串的电流基本上取决于在正被读取的单元中存储的电荷的电平。
[0059]图5示出了例如在NAND配置中组织的、并行被感测或编程的存储器单元的页面。图5基本上示出了在图4B的存储器阵列210中的一堆NAND串50,其中每个NAND串的细节在如图4A中明确地示出。页面一一诸如页面60—一是能并行被感测或编程的一组存储器单元。这通过感测放大器212的相应的页面来完成。感测的结果被锁存在一组对应的锁存器214中。每个感测放大器可以经由位线被耦合到NAND串。页面由共同连接到字线42的页面的单元的控制栅极来被激活,且每个单元经由位线36通过可访问的感测放大器来被访问。作为示例,当分别感测或编程单元60的页面时,感测电压或编程电压连同在位线上的适当的电压被分别施加到公共字线WL3。
[0060]存储器的物理组织
[0061]闪速存储器及类型的存储器之间的一个重要的区别是,单元必须从已擦除的状态被编程。即,浮置栅极必须首先清空电荷。编程然后将所需数量的电荷添加回浮置栅极。它不支持从浮置移除一部分电荷以从更多的编程状态到更少的编程状态。这意味着更新数据不能重写现有的一个数据并且必须被写入到先前未写入的位置。
[0062]此外,擦除是从浮置栅极清空所有电荷且一般花费可观的时间。鉴于此,这将会麻烦和非常慢的擦除逐个单元或者甚至逐个页面。在实践中,存储器单元的阵列被分成存储器单元的大量的块。由于块对于闪速EEPROM系统是常见的,该块是擦除的单位。也就是说,每个块包含可被同时擦除的存储器单元的最小数量。而在块中聚集大量单元以被并行地擦除将改进擦除性能,大尺寸的块也需要处理大量更新的和过时的数据。就在块被擦除之前,需要垃圾收集来挽救(salvage)在块中的非过时数据。
[0063]每个块通常被分区成许多页面。页面是编程或读取的单位。在一个实施例中,各个页面可被分成片段,且该片段可以含有作为基本编程操作被一次写入的最少数量的单元。数据的一个或多个页面通常存储在存储器单元的一行。页面可以存储一个或多个扇区。扇区包含用户数据和开销数据。在多个阵列上分布的多个块和页面也可以作为元块和元页面一起操作。如果它们分布在多个芯片上,它们可以作为元块和元页面一起操作。
[0064]多级单元(uWLC )存储器分区的示例
[0065]已经结合图3进行描述这种非易失性存储器,在该非易失性存储器中的每个存储器单元存储多位数据。特定的示例是由场效应晶体管的阵列形成的存储器,每个场效应晶体管在其通道区域和其控制栅极之间具有电荷存储层。电荷存储层或单位可以存储一系列电荷,从而产生用于每个场效应晶体管的一系列阈值电压。可能的阈值电压的范围跨越阈值窗。当阈值窗被分区为阈值电压的多个子范围或区时,每个可分解的区被用来表示用于存储器单元的不同的存储器状态。多个存储器状态可以通过一个或多个二进制位来编码。例如,被分区为四个区的存储器单元可以支持可以被编码为2位数据的四个状态。类似地,被分区为八个区的存储器单元可以支持可以被编码为3位数据的八个状态。
[0066]所有位、全序列MLC编程
[0067]图6(0)-6(2)示出了编程4个状态的存储器单元的群体的示例。图6(0)示出了存储器单元的群体可编程为分别表示存储器状态“O”、“I”、“2”和“3”的阈值电压的四个不同分布。图6(1)示出了用于擦除存储器的“已擦除”阈值电压的初始分布。图6(2)示出了很多存储器单元已经被编程之后的存储器的示例。基本上,单元初始具有“已擦除”阈值电压,并且编程将把它移动到更高的值而进入由验证电平VV1^V2和vV3划界的三个区的一个。以这种方式,每个存储器单元可以被编程到三个编程状态“I”、“2”和“3”中的一个或者在“已擦除”状态中保持未编程。随着存储器得到更多的编程,在图6(1)中示出的“已擦除”状态的初始分布将变得更窄,并且擦除状态由“O”状态表示。
[0068]具有较低位和较高位的2位码可以被使用以表示四个存储器状态的每个。例如,“O”、“I”、“2”和“3”状态分别由“11”、“01”、“00”和“10“表示。该2位数据可以通过在“全序列”模式中感测来从存储器中读取,在“全序列”模式中,通过分别相对于在三个子遍(sub-pa s s)中的读取划界阈值r V1、r V2和r V3而感测来一起感测两位。
[0069]逐位MLC编程和读取
[0070]图7A-7E示出了用给定的2位码编码的4个状态的存储器的编程和读取。图7A示出了当每个存储器单元使用2位码存储两位数据时的4个状态存储器阵列的阈值电压分布。这样的2位码已经在由Li等于2004年4月24日提交的、题为“NON-VOLATILE MEMORY ANDCONTROL WITH IMPROVED PARTIAL PAGE PROGRAM CAPABILITY” 的美国专利申请N0.10/830,824中公开。
[0071]图7B示出了在使用2位码的2遍(2-pass)编程方案中的较低页面编程(较低位)。容错LM新码基本上避免任何较高页面编程通过任何中间状态转变。因此,第一遍较低页面编程使逻辑状态(较高位,较低位)=(I,I)转变到某个中间状态(x,0),如通过将“未编程的”存储器状态“O”编程为由(x,0)表示的“中间”状态来表示的,并且已编程的阈值电压大于Da但小于Dc。
[0072]图7C示出了在使用2位码的2遍编程方案中的较高页面编程(较高位)。在将较高页面位编程到“O”的第二遍中,如果较低页面位为“I”,逻辑状态(I,I)转变为(0,I),如通过将“未编程的”存储器状态“O”编程为“I”来表示的。如果较低页面位为“O”,逻辑状态(O,O)通过从“中间”状态编程为“3”来获得。类似地,如果较高页面保持在“I”,而较低页面已经被编程为“O”,这将需要从“中间”状态到(I,O)的转变,如通过将“中间”状态编程为“2”来表示的。
[0073]图7D示出了识别用2位码编码的4个状态存储器的较低位所需要的读取操作。首先进行读取B(readB)操作,以确定LM标记是否可以被读取。如果可以,则较高页面已经被编程,并且读取B操作将正确地产生较低页面数据。另一方面,如果较高页面尚未被编程,则将通过读取A(readA)操作来读取较低页面数据。
[0074]图7E示出了识别用2位码编码的4个状态存储器所需要的较高位的读取操作。如从图中清楚的,较高页面读取将需要分别相对于划界阈值电压Da、Db和Dc的读取A(readA)、读取B(readB)和读取C(readC)的三遍读取。
[0075]在用于2位存储器的逐位方案中,存储器单元的物理页面将存储两个逻辑数据页面,对应于较低位的较低数据页面和对应于较高位的较高数据页面。
[0076]模糊-精细编程
[0077]多状态编程的另一种变形采用模糊-精细算法,如在用于3位存储器示例的图7F中所示的。如图中所示,为另一个多阶段编程操作。进行第一编程操作,如在顶行所示的,接下来是模糊编程阶段。模糊阶段是使用所有八个最终状态的来自第一阶段的完整的3位编程操作。在模糊结束时,然而,这些状态中的数据还没有完全分解成用于8个状态(因此,“模糊”名称)的每个的定义明确的分布,并且不容易提取。
[0078]然而,由于每个单元被编程为接近其最终目标状态,则在美国专利N0.6,870,768中描述的那种邻近单元到单元的耦合、或“Yupin”效应呈现出其大部分作用。因为如此,当执行精细程序阶段(在底行示出)时,这些耦合大部分被代入(factor)到该最终阶段中,因此单元分布更准确地分解成它们的目标范围。关于这些问题的更多细节在美国专利N0.6,870 ,768和6 ,657 ,891、以及在由Gorobets等于2009年12月18日提交的题为“AtomicProgram Sequence and Write Abort Detect1n”的美国专利申请N0.12/642,740(其提出了 “对角线”第一-模糊-精细(f irst-foggy-f ine)方法)中给出。
[0079]二进制和MLC存储器分区
[0080]图6和图7示出了2位(也称为“D2”)存储器的示例。如可以看到的,D2存储器使其阈值范围或者阈值窗分区成4个区域,指定4个状态。类似地,在D3中,每个单元存储3位(较低位、中位、较高位),并且有8个区域。在D4中,有4个位和16个区域等。由于存储器的有限阈值窗分区成更多区域,用于编程和读取的分解将必然变得更精细。由于存储器单元被配置为存储更多位,出现两个问题。
[0081]首先,当单元的阈值必须被更准确地编程或读取时,编程或读取将会变更慢。事实上,在实践中,感测时间(在编程和读取中需要的)倾向于随着分区级的数量的平方而增加。
[0082]其次,闪速存储器具有耐久性问题,因为其随着使用而老化。当单元被重复编程和擦除时,通过隧穿穿过电介质,电荷往返进出浮置栅极20(见图2)。每次一些电荷可能被困在电介质中,并且将修改单元的阈值。事实上,过度使用,阈值窗将逐渐变窄。因此,MLC存储器通常被设计为在容量、性能和可靠性之间折衷。
[0083]相反,可以看出,对于二进制存储器,存储器的阈值窗仅分区为两个区域。这将允许最大的误差界限。因此,一■进制分区同时减少存储容量将提供最尚的性能和可靠性。
[0084]结合图7描述的多遍、逐位编程和读取技术提供MLC和二进制分区之间的平滑转变。在这种情况下,如果存储器仅用较低位来编程,其实际上是二进制分区存储器。虽然在单级单元(“SLC”)存储器的情况下,该方法并不能完全优化阈值窗的范围,但是其具有使用与MLC存储器的较低位的操作中相同的划界或感测级的优点。如后面将要描述的,本方法允许MLC存储器被“征用(expropriate)”用作二进制存储器,反之亦然。应该理解的是,MLC存储器倾向于具有对于使用更严格的规范。
_5] 二进制存储器和部分页面编程
[0086]被编程到一个存储器单元的电荷存储元件的电荷产生电场,该电场扰动邻近的存储器单元的电场。这将影响实质上是具有电荷存储元件的场效应晶体管的邻近的存储器单元的特性。特别是,当感测到存储器单元时将似乎比当存储器单元被更少扰动时具有更高的阈值电平(或更多编程)。
[0087]一般地,如果存储器单元在第一场(field)环境下被编程验证,由于邻近的单元随后用不同的电荷编程,之后在不同的场环境下再次读取,读取准确性可能会受到影响,这是由于被称为“Yupin效应”的邻近的浮置栅极之间的耦合。随着半导体存储器日益更高的集成,由于存储器单元之间存储的电荷(Yupin效应),电场的扰动随着单元间的间距缩小而变得越来越明显。
[0088]上面结合图7描述的逐位MLC编程技术被设计为沿着相同的字线从单元的最小的编程干扰。如图7B可以看出,在两遍编程的第一遍编程中,单元的阈值至多移动到阈值窗的一半路径。第一遍的效果由最终遍超过。在最终遍中,阈值仅移动四分之一路径。换句话说,对于D2,邻近单元之间的电荷差被限制为其最大值的四分之一。对于D3,通过三遍,最终遍将限制电荷差为其最大值的八分之一。
[0089]然而,逐位多遍编程技术将被部分页面编程连累(compromise)。页面是通常沿着行或字线的一组存储器单元,页面作为单位被一起编程。有可能在多遍编程上单独编程页面的非重叠的部分。然而,由于不是页面的所有单元在最终遍中被一起编程,因此在完成页面之后,可能在单元之间产生编程的电荷中的大的差异。因此,部分页面编程会导致更多的编程干扰并且要求对于感测精确度的更大的界限。
[0090]在存储器被配置为二进制存储器的情况下,操作的界限比MLC的操作的界限更宽。在优选的实施例中,二进制存储器被配置为支持部分页面编程,在该部分页面编程中,页面的非重叠部分可以单独地编程在页面上的多遍编程中的一个中。编程和读取性能可以通过用大页面操作来改善。然而,当页面大小比写入的主机的单位(通常是512字节扇区)大得多时,其使用将是低效率的。用比一个页面更精细的粒度来操作允许这样的页面的更有效的使用。
[0091]给出的该示例在二进制相比于MLC之间。应该理解的是,一般地,相同的原则应用在具有第一数量的级的第一存储器与具有第二数量的级的第二存储器之间,该第二数量的级比第一存储器更多。
[0092]逻辑和物理块结构
[0093]图8示出了由具有存在于控制器中的软件组件的存储器管理器管理的存储器。存储器200被组织成块,单元的每个块为擦除的最小单位。取决于实现方式,存储器系统可以用由块的集合体形成的甚至大单位的擦除来操作为“元块”还有“大型块(megablock)”。为了方便,描述将指擦除的单位作为元块,尽管可以理解的是,一些系统用更大单位的擦除(诸如由元块的集合体形成的〃大型块〃)来操作。
[0094]当在文件系统或操作系统下运行应用时,主机80访问存储器200。通常,主机系统处理以逻辑扇区为单位的数据,其中,例如,每个扇区可以包含512字节的数据。此外,主机通常以逻辑群集为单位来读取或写入,每个逻辑群集由一个或多个逻辑扇区组成。在一些主机系统中,可选的主机侧的存储器管理器可以存在以在主机处进行较低级的存储器管理。在读取或写入操作期间的大多数情况下,主机80基本上发出命令到存储器系统90,以读取或写入包含具有连续地址的数据的逻辑扇区的串的片段。
[0095]存储器侧的存储器管理器300在存储器系统90的控制器100中实现,以管理闪速存储器200的元块之间的主机逻辑扇区的数据的存储和检索。存储器管理器包括前端系统310和后端系统320。前端系统310包括主机接口 312。后端系统320包括用于管理元块的擦除、读取和写入操作的许多软件模块。存储器管理器还维持与闪速存储器200和控制器RAM 130之间的操作相关联的系统控制数据和目录数据。
[0096]图9示出了后端系统的软件模块。后端系统主要包括两个功能模块:介质管理层330、数据流和序列层340。
[0097]介质管理层330负责组织闪速存储器元块结构内的逻辑数据存储。更多细节稍后将在“介质管理层”部分中提供。
[0098]数据流和序列层340负责前端系统和闪速存储器之间的数据的扇区的排序和传送。该层包括命令定序器(sequencer) 342、低级定序器344和闪存控制层346。更多细节稍后将在“低级系统说明(spec)”部分中提供。
[0099]存储器管理器300优选在控制器100中实现。其将从主机接收到的逻辑地址转换为存储器阵列内的物理地址,其中数据实际上被存储,然后保持追踪这些地址转换。
[0100]图10A(i)-10A(m)示意性地示出了逻辑组和元块之间的映射。物理存储器的元块具有N个物理扇区,用于存储N个逻辑组的数据的逻辑扇区。图10A(i)示出了来自逻辑组LGi
的数据,其中该逻辑扇区为连续的逻辑顺序0、1.....N-1。图10A(ii)示出了以相同的逻辑顺序被存储在元块中的相同的数据。当以这种方式存储时,元块被说成是“有序的”。一般地,元块可以具有以不同的顺序存储的数据,在这种情况下,元块被说成是“无序的”或“混沌的”。
[0101]在逻辑组的最低地址和其所映射到的元块的最低地址之间可以存在偏移。在这种情况下,逻辑扇区地址环绕成从底部回到元块内的逻辑组的顶部的环。例如,在图lOA(iii)中,元块在其第一位置中以逻辑扇区k的数据开始存储。当到达最后的逻辑扇区N-1时,它绕回到扇区0,最终在其最后的物理扇区中存储与逻辑扇区k-Ι相关联的数据。在优选的实施例中,页面标记用于识别任何偏移,诸如识别存储在元块的第一物理扇区中的数据的起始逻辑扇区地址。当两个块只有页面标记不同时,两个块将被视为具有以类似的顺序存储的它们的逻辑扇区。
[0102]图1OB示意性地示出了逻辑组和元块之间的映射。每个逻辑组380被映射到唯一的元块370,除了其中数据正在被更新的少量的逻辑组。逻辑组已被更新后,可以被映射到不同的元块。映射信息被维持在一组逻辑到物理的目录中,这将在后面更详细地描述。
[0103]查找读取干扰
[0104]由于在相邻字线上的存储器单元之间的电容耦合,在访问一个字线上的数据时,使用的电压电平可以影响邻近字线、非访问字上的数据质量。这可能在写入操作(导致“写入干扰”)和读取操作(导致“读取干扰”)中出现。由用于处理编程干扰的已知的许多技术,包括改变电压斜升速率(参见,例如,美国专利N0.6,717,851),改变字线被写入的顺序(参见,例如,美国专利N0.7,986,554),使用模糊-精细算法(上述讨论的)或各种写入后读取验证(参见,例如,美国专利N0.8,634,240和美国专利公开N0.2013-0028021)。该部分考虑用于确定字线更可能经受读取干扰的技术,其中读取到存储器的局部区可能导致在块内的邻近字线中未检测到的干扰。
[0105]许多方法可以用来解决该问题。一种是使用在控制器上的RAM中的块读取计数器,该块读取计数器可以给出何时块可能被读取干扰的相当的近似。该解决方案消耗相当数量的存储器空间(每块至少4个字节乘以系统中的块的数量)。在具有256K的块的SSD中,这可以等同于约为IMB空间以追踪简单的读取计数器,该IMB空间是大量的相对昂贵的控制器RAM。甚至当使用该数量的RAM时,具有块计数器的主要问题是,它们不提供知道哪些字线引起的问题的粒度,并且阈值被设置极低。当用于块的阈值跳跃(trip)时,则整个块被清洗(SCrUb)(即复制),这导致过早的循环(cycling)。通过这里提出的方案,系统可以具体检测哪个字线被读取,移动数据和邻近数据,但可以保留完整块的其余部分。
[0106]另一种方法是读取追踪(参见美国专利N0.7,012,835; 7,477,547; 7,616,484和美国专利公开N0.2009/0172258),用有效数据随机或连续采样写入的块来寻找读取干扰。该方法使用额外的后台功率,并且不会及时找到热区(因为这取决于后台时间的数量)或根本找不到热区。读取追踪花费大量的时间以得到全部器件的覆盖。另外,读取追踪本身促进了读取干扰(其试图解决的问题)。用于主机读取的周期性读取邻近字线可以有助于检测潜在的读取干扰,但是增加了附加的功率并延迟主机操作。此外,读取邻近字线受到噪声误差,并且变成在试图检测和识别热读取数据地址中的阻碍。
[0107]这里呈现的示范性实施例使用哈希树以追踪读取区域,并找到闪存(闪速存储器)的热读取区域。哈希树使用小尺寸的存储器区域,并且可以比简单的块计数器提供更高准确度,这取决于树的设计级。哈希树可以帮助隔离主机正在读取的闪存的区域。取决于实施例,树可以被设计为高或矮,具有多个分支或多个单数,树可以是对称的或不对称的。
[0108]最初,当树开始时,只有一个级被使用,级O。级O可以是单个组的N个4字节计数器。随着区被读取击中,读取计数器递增。当区达到某一阈值时,区被提高到级I。当区被提高到级1,其空间在级I中被分成进一步的区。这为检测区的热空间提供了更高准确度。指针可用于指示哪个区已经提高。在区提高之后,其根仍然可以增加,以帮助追踪其读取计数。提高的阈值可以随着树填补来修改。
[0109]区的提高可以提升树,其中每个级的哈希可以具有一个或多个子节点。因为空间被限制在嵌入式器件中,当较低节点中的不同区变得更热,驱逐(evict1n)应在某些点处发生,使得树不能无界生长。当驱逐发生时,该区塌下,新的区在树中提高,用于更多的分析。在驱逐期间,区读取计数仍然保存,但是树信息丢失。
[0110]级的数量将取决于实现方式。随着区达到树尖端,并且达到最高阈值,该区可以放置在读取追踪列表上,用于读取清洗的进一步评估。关于清洗、刷新和追踪操作的更多细节可以在美国专利N0.7,012,835; 7,477,547 ;7,616,484和美国专利公开 N0.2009/0172258 中找到。
[0111]为了维持树结构和级计数,该树及其参数可以周期性地被保存到存储器部分上的非易失性存储器。然后,在上电时,该表可以从非易失性存储器加载回到控制器RAM。
[0112]为了避免计数器饱和,树可以通过一定量的周期性修剪回。修剪将与块擦除、热读取数据迀移同时出现,并且,可替代的,当达到某些热计数(擦除的数量)里程碑时。该过程可以称为“树平衡(leveling)”,其中,当编程/擦除计数器达到某个级时,整个树可以缩减回来。如果器件被均匀地磨损拉平,则系统中的所有块应该通过不超过百分比变化而在热计数方面变化。在哪里平衡的更多细节在美国专利N0.7,353,325; 7,441,067; 7,120,729和美国专利公开N0.2010-0174845中给出。使用该知识,某些热计数检查点可以被建立以修剪树。树的修剪可以是全局复位,或通过百分比配对计数器,或通过固定量配对树。每当树干(stem)阈值被超过(导致块、字线、逻辑组或对应于该级的区的其它结构到达清洗列表),树可以被修剪。
[0113]当区域被检测为热时,热区域(和其邻近字线)可以被刷新为新的块(留下完整块的其余部分),或者整个块可以被清洗。热数据可以被刷新为单独的区,以便随着读取继续而不会使得树跳跃向上,或者它可以仅自然地迀移。如果自然地迀移,则在热读取区变冷的情况下,没有特别的需要去做。用于热数据的单独的区可以以各种方式管理,以减少所得的数量的读取干扰。例如,数据可以以二进制格式、使用不同的界限来存储,可以通过存储数据的字线之间的一个或多个未使用的字线来存储等。对于这些布置,潜在的读取干扰的检测可以导致数据的局部块的驱逐,包括最接近的(immediate)邻近字线,或通过热读取数据的可能的特殊处理进行整个块的回收。如果热读取数据后来冷却,其可以重新加入常规池。
[0114]在一组实施例中,在区被检测为热之后,并且邻近区被检查和清洗,热数据可以使用单独的表来逻辑地追踪。单独追踪该数据可以提供检测何时数据变冷的优点,并且在清洗之后,可以帮助防止在树中具有相同的数据触发器分支。热数据仍然需要被追踪,以发现进一步的读取干扰。
[0115]如果树被用于物理地跟踪器件,并且在区内发生擦除,读取计数器可以通过定义的算法数量回滚以说明如下事实,即该区的一部分已经被刷新。取决于实施例和级,树的分支可以表示逻辑组(4KB,例如)、裸芯的WL、一系列WL或一系列块。由于在块的单位上发生擦除,因此表示该块的分支将需要塌下(collapse down)到块级,如果必要的话。在塌缩(Co I lapse)时,新的分支可以被提高,或者该提高可以发生在对该组的下一次读取上。
[0116]由于读取干扰是在物理上相邻字线上操作的结果,该示范性实施例基于在每个级追踪区的物理地址。可替代的实施例是使树逻辑跟踪地址代替物理跟踪地址,到区/分支的任何写入应该具有对计数器的递减的效果。
[0117]这些概念的一些分别在图11-图13中示出。图11是用于两级示例的过程的示意性表示。一般地,级O区可以是裸芯、裸芯的部分、块的数量等、下至一组字线。在最高级(在该示例中为级I)的区可以如各个字线一样小。(在该讨论中,“区”不意味着,或至少不必然意味着对应于在美国专利N0.6,901,498中描述的那种区结构,例如,但是被更普遍地用于物理存储器区域,诸如裸芯、块、字线等)。在图11的示例中,级O区域被取为一些数量的块,并且级I区被取为级O区的块的一些部分(fract1n)。
[0118]在图11的下部是级O计数器501,每个读取计数器对应于一个或区O至N。例如,计数器503追踪区O的块505被访问用于读取的次数的数量。在该示例中,区O的块被分成级I区,用于进一步分析,可以有若干级I计数器。如图所示的左侧,当计数器达到用于级的阈值,对应的区的块向上移动一级,用于进一步评估。当区在级中向上移动,计数可以均匀地分配到其子部分,复位为0,或分配到维持的单独的主区计数器。
[0119]在级I,提高的级O区被子分区成具有对应的计数器511的一组级I区:例如,块515的区A使用计数器513来监控。级I的计数器对照级的阈值来检查,并且根据需要向上移动到级或在用于读取扫描的列表上,其中,取决于实现方式,系统可以重复缩小过程以小到一组块、一组WL或者甚至到基于系统的ECC单位(指的是各种,如闪速管理单位、FMU、码字或ECC页面)的最小的读取/写入粒度。当块被擦除、并且块在更高的级(诸如图11中的级I)时,区可以被向下移位一个级。元件的塌缩可以基于比较其它计数器、块擦除,或者作为树平衡(levelling)过程的一部分。一个分支的塌缩可以导致在另一个分支中的分区。根节点可以根据树塌缩来评估,或者如果没有空闲的区计数器是可用的,则整个树可以根据任何塌缩来重新评估,其中可以向具有最高的计数器或最新的计数器的区给予优先级。
[0120]从级I,具有计数器521的区X被移动到用于读取扫描的候选列表以检查读取干扰影响。如果该区被缩小到字线或一系列字线,这些可以被放置在用于频繁访问的区的“燃烧区(burning zone)”列表上。
[0121]图12以更多细节显示该情形。在底部是用于级O的一组区计数器,其中区O-N可以表示整个平面、裸芯、芯片或器件容量。基于该计数值,随着这些达到对应的阈值,该组的计数器可以被分区成用于级I的相同大小的区。图12示出了当Q区(其中两个示出)从级O已经被提高到级I的情况,每个被子分区成具有对应的计数器的X个区。例如,区O从级O这里被分成多个更小的区,在级I的区A至区A+X。用于级I的区的计数器类似地用于确定合适将级I的区移动到级。例如,区A+1这里被分成多个(在该示例中还是X)级2中的更小的区。如果,比如说,然后,区“Ε+Γ具有高的计数值,其然后可以被发送到读取扫描以检查读取干扰的影响。
[0122]图13类似于图12,但是用于稍微不同的情形。图13示出了级O区(区O和N)的两个中的每个被子分区成一组级I区,然后每个级I区具有两个区(区A+1和A+X,区B和B+1),其被进一步分成多组级2区。对称的哈希树对于固件/硬件可以更容易维护,虽然不对称的树也可以良好使用。
[0123]对于任何实施例,该部分的技术可以有助于确定可能的读取干扰的位置,同时到器件的读取较少并且使用较少的功率。热读取区可以比在其他计数器解决方案中用更小的存储器占用更准确地发现。这可以有助于避免数据的非必要清洗和盲目的后台追踪。
[0124]结论
[0125]为了说明和描述的目的,本发明的前面的详细描述已经呈现。它不旨在穷尽或限制本发明为公开的精确形式。根据上述教导的许多变型和变化是可能的。选择所描述的实施例是为了最好地解释本发明的原理及其实际应用,从而使得本领域的技术人员最好地利用各种实施例中的发明且各种变型适合于预期的特定用途。本发明的范围由所附的权利要求限定。
【主权项】
1.一种操作非易失性存储器系统的方法,所述非易失性存储器系统具有一个或多个存储器电路和控制器电路,所述存储器电路每个包括沿字线形成的非易失性存储器单元的一个或多个阵列,并且所述控制器电路管理所述存储器电路上的数据的存储,所述方法包括: 对于所述一个或多个存储器阵列的第一多个不同的分区的每个,通过所述控制器电路维持用于读取操作而访问对应的分区的字线的次数的计数; 响应于用于对应的分区的计数中的一个计数达到第一阈值,将所述对应的分区细分为第二多个不同的第一子分区;以及 随后,对于所述第一子分区的每个,通过所述控制器电路来维持用于读取操作而访问所述子分区的字线的次数的计数。2.如权利要求1所述的方法,还包括: 响应于对于对应的子分区的计数中的一个计数达到第二阈值,将所述对应的子分区进一步细分为第三多个不同的第一子子分区;以及 随后,对于所述第一子子分区的每个,通过所述控制器电路来维持用于读取操作而访问所述子子分区的字线的次数的计数。3.如权利要求1所述的方法,其中所述第一多个不同的分区先前通过响应于用于读取操作的访问的数量来细分由这样的分区形成的多个结构中的一个结构来形成。4.如权利要求1所述的方法,还包括: 响应于对于对应的子分区的所述计数中的一个计数达到第二阈值,将所述子分区中的对应的一个子分区放置到在其上进行数据清洗操作的子分区的列表中。5.如权利要求1所述的方法,还包括: 响应于对于对应的子分区的所述计数中的一个计数达到第二阈值,对所述子分区中的所述对应的子分区进行清洗操作。6.如权利要求1所述的方法,还包括: 响应于对于对应的子分区的所述计数中的一个计数达到第二阈值,将来自所述子分区中的所述对应的子分区的数据再定位到所述存储器电路上的不同的位置。7.如权利要求6所述的方法,其中所述存储器电路上的所述不同的位置由所述控制器电路来保留,用于频繁访问的数据。8.如权利要求7所述的方法,其中由所述控制器电路保留的用于频繁访问的数据的所述位置通过所述控制器电路进行与所述存储器电路的其它部分不同的管理。9.如权利要求8所述的方法,其中数据以二进制格式存储在被保留用于频繁访问的数据的所述位置中。10.如权利要求8所述的方法,其中数据被存储在被保留用于频繁访问的数据的所述位置中的非相邻的字线上。11.如权利要求7所述的方法,其中响应于确定正在访问所述再定位的数据的频率减小,所述再定位的数据随后从被保留用于频繁访问的数据的所述位置驱逐。12.如权利要求6所述的方法,其中所述再定位的数据包括一个或多个频繁访问的字线和与所述频繁访问的字线相邻的一个或多个字线。13.如权利要求6所述的方法,其中所述再定位来自所述子分区中的所述对应的子分区的数据包括整个擦除块的再定位。14.如权利要求1所述的方法,其中所述控制器电路包括非易失性存储器,在该非易失性存储器中维持所述计数的值。15.如权利要求14所述的方法,其中所述控制器电路周期性地将所述计数值保存到所述存储器电路上的非易失性存储器。16.如权利要求15所述的方法,其中在上电时,所述控制器电路将保存在非易失性存储器中的所述计数值加载到所述控制器电路上的易失性存储器中。17.如权利要求1所述的方法,其中所述存储器电路是闪速存储器电路,并且所述分区对应于多个擦除块。18.如权利要求1所述的方法,其中所述存储器电路是闪速存储器电路,并且所述子分区对应于多个擦除块。19.如权利要求1所述的方法,其中所述存储器电路是闪速存储器电路,并且所述分区对应于一个擦除块。20.如权利要求1所述的方法,还包括: 随后停止通过所述控制器电路、对于所述第一子分区的一个或多个、维持用于读取操作而访问所述子分区的字线的次数的计数。21.如权利要求20所述的方法,其中所述停止是响应于所述计数的值相对于所述第一子分区的其它计数被停止。22.如权利要求20所述的方法,其中所述停止是响应于所述对应的分区被擦除。23.如权利要求20所述的方法,其中所述停止是响应于所述计数的数量被维持。24.如权利要求1所述的方法,其中所述存储器电路是闪速存储器电路,并且所述子分区对应于一个擦除块。25.如权利要求1所述的方法,其中所述分区对应于一组字线。26.如权利要求1所述的方法,其中所述子分区对应于一组字线。27.如权利要求1所述的方法,其中所述存储器电路包括多个裸芯,并且所述分区对应于裸芯。28.如权利要求1所述的方法,其中所述阵列是NAND类型的架构的。29.如权利要求1所述的存储器,其中所述阵列是具有三维存储器阵列的架构的,所述三维存储器阵列单片地形成为存储器单元的多个物理级、一个物理级具有设置在硅基板上方的有源层,所述存储器单元与操作电路通信。
【文档编号】G06F12/02GK105874541SQ201580003538
【公开日】2016年8月17日
【申请日】2015年3月3日
【发明人】D.E.图尔斯, Y.阿塔克尔蒂, A.马诺哈
【申请人】桑迪士克科技有限责任公司