CN102576567A - 用于非易失性存储器中的增强沟道升压的减小的编程脉宽 - Google Patents
用于非易失性存储器中的增强沟道升压的减小的编程脉宽 Download PDFInfo
- Publication number
- CN102576567A CN102576567A CN2010800277480A CN201080027748A CN102576567A CN 102576567 A CN102576567 A CN 102576567A CN 2010800277480 A CN2010800277480 A CN 2010800277480A CN 201080027748 A CN201080027748 A CN 201080027748A CN 102576567 A CN102576567 A CN 102576567A
- Authority
- CN
- China
- Prior art keywords
- state
- programming
- memory element
- word line
- temperature
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
Landscapes
- Read Only Memory (AREA)
Abstract
通过在编程操作中途将使用较长持续时间的编程脉冲切换到较短持续时间的编程脉冲而在编程操作期间在非易失性存储系统中减少编程干扰。切换点可以基于温度、所选择的字线位置和/或跟踪存储元件至触发状态。对于较高温度,并且对于漏极侧字线,切换点出现得更早。可以基于温度来选择触发状态。存储元件的被要求达到触发状态以触发转接的部分也可以被设定为温度的函数。较短持续时间的编程脉冲可以改进被禁止的存储元件的沟道升压,由此对于这些存储元件减少编程干扰。
Description
技术领域
本技术涉及非易失性储存器。
背景技术
半导体存储器已经变得越来越受欢迎地使用在各种电子设备中。例如,非易失性半导体存储器被用在蜂窝电话、数码相机、个人数字助理、移动计算设备、非移动计算设备和其他设备中。电可擦可编程只读存储器(EEPROM)和闪存处于最受欢迎的非易失性半导体存储器之列。与传统的全功能EEPROM相比,利用闪存——其也是一种类型的EEPROM——能够在一个步骤中擦除存储器的一部分或全部的存储器阵列的内容。
传统的EEPROM和闪存两者都使用位于半导体衬底中的沟道区域上方并与该沟道区域绝缘的浮栅(floating gate)。浮栅定位在源极区域和漏极区域之间。控制栅设置在浮栅上方并与其绝缘。由浮栅上保持的电荷量控制这样形成的晶体管的阈值电压(VTH)。也就是说,由浮栅上的电荷水平控制在晶体管被接通之前必须施加至控制栅上以允许其源极与漏极之间导通的最小电压量。
一些EEPROM和闪存设备具有用来存储两个范围的电荷的浮栅,因此,存储元件能够在两种状态(即,擦除状态和编程状态)之间被编程/擦除。这种闪存设备有时候被称作二进制闪存设备(binaryflash memory device),这是因为每个存储元件能够存储一位数据。
通过标识多个独特的容许/有效编程阈值电压范围来实现多状态(也称为多水平)闪存设备。每个独特的阈值电压范围与用于在存储器设备中编码的一组数据位的预定值对应。例如,当存储元件能够被置于与四个独特的阈值电压范围对应的四个离散的电荷带中的一个电荷带中时,每个存储元件都能够存储两位数据。
一般地,在编程操作期间施加至控制栅上的编程电压VPGM被施加成大小随时间增加的一系列脉冲。编程电压能够被施加至选定的字符线。在一种可能的方法中,脉冲的大小随着每个相继的脉冲而增大预定的步长尺寸,例如0.2-0.4V。VPGM能够被施加至闪存元件的控制栅。在编程脉冲之间的周期中,执行验证操作。也就是说,在相继的脉冲之间读取正在被并行地编程的一组元件中的每个元件的编程水平,以判断其是否等于或大于正在被编程的该元件的验证水平。对于多状态闪存元件的阵列,可以对元件的每种状态执行验证步骤,以判断该元件是否已经达到其数据关联验证水平。例如,能够以四种状态存储数据的多状态存储元件可能需要对三个比较点执行验证操作。
另外,当对EEPROM或闪存设备(诸如NAND串中的NAND闪存设备)进行编程时,一般地,VPGM被施加至控制栅,并且位线被接地,从而使来自存储元件(如储存元件)或单元的沟道的电子被注入浮栅中。当电子聚集在浮栅中时,浮栅变为带负电荷,并且存储元件的阈值电压升高,使得存储元件被认为处于编程状态。
然而,一直疑难的一个问题是编程干扰。编程干扰可能在对其他的选定NAND串进行编程期间出现在受抑制的未选NAND串中。在未选的非易失性存储元件的阈值电压由于其他非易失性存储元件的编程而改变时出现编程干扰。编程干扰可能出现在先前已编程的存储元件上以及还没有被编程的已擦除存储元件上。
附图说明
图1a是NAND串的俯视图。
图1b是NAND串的等效电路图。
图2是NAND串的横截面图。
图3是描绘三个NAND串的电路图。
图4是NAND闪存元件的阵列的框图。
图5是使用单行/单列解码器和读/写电路的非易失性存储系统的框图。
图6是描绘感测块的一个实施例的框图。
图7示出了将存储器阵列组建到用于所有位线存储器构架或用于奇-偶存储器构架的方框中的示例。
图8描绘了示例性的一组阈值电压分布和单程编程(one-passprogramming)。
图9描绘了示例性的一组阈值电压分布和双程编程。
图10a-c示出了多种阈值电压分布并描绘了对非易失性存储器进行编程的过程。
图11是NAND串的横截面,并且描述了升压期间的沟道结泄漏。
图12a描绘了当相邻的沟道被升压或不被升压时的沟道升压电势。
图12b描绘了作为温度的函数的沟道升压电势。
图12c描绘了作为编程脉宽和选定字线位置的函数的沟道升压电势。
图12d描绘了就作为温度和选定字线位置的函数的编程脉冲的数量而言的切换点。
图12e描绘了就作为温度的函数的触发状态而言的切换点。
图12f描绘了就作为温度的函数、达到触发状态的存储元件数量而言的切换点。
图13描绘了编程操作中的编程脉冲,其中在编程操作中途存在向较短持续时间编程脉冲的切换。
图14描绘了存储元件基于其距字线的解码器侧的距离而看到的编程脉冲。
图15是描绘对非易失性存储器进行编程的方法的一个实施例的流程图,其中向较短持续时间编程脉冲的切换基于编程脉冲数。
图16是描绘对非易失性存储器进行编程的方法的另一个实施例的流程图,其中向较短持续时间编程脉冲的切换基于达到触发状态的存储元件数量。
具体实施方式
提供了一种方法和非易失性存储系统,其中通过使用较短持续时间编程脉冲改进了沟道升压,从而减少了编程干扰。
在编程操作中途,编程操作从使用较长持续时间编程脉冲切换到较短持续时间编程脉冲,以减少编程干扰。切换点可以基于温度、选定字线位置和/或存储元件对触发状态的跟踪。对于较高的温度以及对于漏极侧字线,切换点出现得较快。可以基于温度来选择触发状态。另外,达到用于触发切换的触发状态所需的存储元件的一部分也可以被设定为温度的函数。
适当的存储系统的一个示例使用NAND闪存结构,该NAND闪存结构将多个晶体管串联地布置在两个选择栅之间。串联的晶体管和选择栅被称为NAND串。图1a是示出了一个NAND串的俯视图。图1b是其等效电路图。所描绘的NAND串包括四个晶体管100、102、104和106,这四个晶体管串联并且夹在第一选择栅120与第二选择栅122之间。选择栅120将NAND串连接于位线126。选择栅122将NAND串连接于源极线128。通过将适当的电压施加至控制栅120CG来控制选择栅120。通过将适当的电压施加至控制栅122CG来控制选择栅122。晶体管100、102、104和106中的每一个都具有控制栅和浮栅。晶体管100具有控制栅100CG和浮栅100FG。晶体管102包括控制栅102CG和浮栅102FG。晶体管104包括控制栅104CG和浮栅104FG。晶体管106包括控制栅106CG和浮栅106FG。控制栅100CG连接于字线WL3,控制栅102CG连接于字线WL2,控制栅104CG连接于字线WL1,以及控制栅106CG连接于字线WL0。在一个实施例中,晶体管100、102、104和106均为存储器单元。在其他实施例中,存储器单元可以包括多个晶体管,或者可以与所描绘的不同。选择栅120连接于选择线SGD。选择栅122连接于选择线SGS。
图2提供了上述NAND串的横截面视图。NAND串的这些晶体管形成在p阱区域140中。p阱区域则又可以位于p型衬底144的n阱区域142内。每个晶体管均包括由控制栅(100CG、102CG、104CG和106CG)和浮栅(100FG、102FG、104FG和106FG)构成的层叠栅结构。浮栅形成在氧化物或其他介电膜上方的p阱的表面上。控制栅位于浮栅上方,其中多晶硅间的介电层将控制栅与浮栅分开。存储器单元(100、102、104和106)的控制栅形成字线。在相邻的单元之间共享N+掺杂层130、132、134、136和138,由此,这些单元彼此串联地连接,从而形成NAND串。这些N+掺杂层形成每个单元的源极和漏极。例如,N+掺杂层130用作晶体管122的漏极和用于晶体管106的源极,N+掺杂层132用作用于晶体管106的漏极和用于晶体管104的源极,N+掺杂层134用作用于晶体管104的漏极和用于晶体管102的源极,N+掺杂层136用作用于晶体管102的漏极和用于晶体管100的源极,以及N+掺杂层138用作用于晶体管100的漏极和用于晶体管120的源极。N+掺杂层126连接于用于NAND串的位线,而N+掺杂层128连接于用于多个NAND串的公共源极线。
注意,尽管图1a、1b和图2示出了NAND串中的四个存储器单元,但与本文描述的技术一起使用的NAND串可以具有少于四个存储器单元或多于四个存储器单元。例如,一些NAND串将包括8个、16个、32个或更多个存储器单元。
每个存储器单元都能够存储以模拟形式或数字形式表示的数据。当存储一位数字数据时,存储器单元的可能阈值电压的范围被分成两个范围,这两个范围被分配逻辑数据“1”和“0”。在NAND型闪存的一个示例中,在存储器单元被擦除之后,电压阈值为负,并且被定义为逻辑“1”。在编程操作之后,电压阈值为正,并且被定义为逻辑“0”。当阈值电压为负并且通过向控制栅施加0伏电压来尝试读取操作时,存储器单元将接通以表示逻辑1正被存储。当阈值电压为正并且通过向控制栅施加0伏电压来尝试读取操作时,存储器单元将不接通,这表示逻辑0被存储。
存储器单元也能够存储多个状态,从而存储多位数字数据。在存储多状态数据的情况下,阈值电压窗口被分成对应于状态的数量。例如,如果使用四个状态,则将存在四个阈值电压范围,这四个阈值电压范围被分配给数据值“11”、“10”、“01”和“00”。在NAND型存储器的一个示例中,阈值电压在擦除操作之后为负,并且被定义为“11”。正阈值电压用于“10”、“01”和“00”的状态。在一些实施方式中,使用葛莱码分配来向阈值范围分配数据值(例如,逻辑状态),使得如果浮栅的阈值电压错误地移位到其相邻的物理状态,那么将仅有一位受影响。编程到存储器单元中的数据与单元的阈值电压范围之间的特定关系依赖于存储器单元采用的数据编码方案。
除了NAND闪存之外,还可以使用其他类型的非易失性存储器。
在闪存EEPROM系统中有用的另一种类型的存储器单元使用非导电性介电材料来代替导电性浮栅,从而以非易失性方式储存电荷。由氧化硅、氮化硅和氧化硅(“ONO”)形成的三层介电质夹在位于存储器单元沟道上方的半导体衬底的表面与导电控制栅之间。通过将来自单元沟道的电子注入到氮化物中来对单元进行编程,在氮化物中,电子被捕获并被存储在有限区域中。然后,该存储的电荷以可检测的方式改变单元的沟道的一部分的阈值电压。通过将热空穴注入到氮化物中来对单元进行擦除。可以以分裂栅的构造提供相似的单元,其中掺杂的多晶硅在存储器单元沟道的一部分的上方延伸,以形成单独的选择晶体管。
在另一种方法中,在每个NROM单元中存储两个位,其中ONO介电层在源极扩散和漏极扩散之间的沟道上延伸。用于一个数据位的电荷位于与漏极相邻的介电层中,而用于其他数据位的电荷位于与源极相邻的介电层中。通过单独地读取介电层内的在空间上分开的电荷存储区域的二进制状态而获得多状态数据存储。
图3是描绘了三个NAND串的电路图。用于使用NAND结构的闪存系统的典型构架将包括多个NAND串。例如,在具有多个更多NAND串的存储器阵列中示出了三个NAND串320、340和360。NAND串中的每一个都包括两个选择栅和四个存储元件。尽管为了简化的目的示出了四个存储元件,但现代的NAND串可以具有多达例如32或64个存储元件。
例如,NAND串320包括选择栅322和327以及存储元件323-326,NAND串340包括选择栅342和347以及存储元件343-346,NAND串360包括选择栅362和367以及存储元件363-366。每个NAND串都通过其选择栅(例如,选择栅327、347或367)连接于源极线。选择线SGS用来控制源极侧选择栅。各种NAND串320、340和360分别通过选择栅322、342、362中的选择晶体管连接于相应的位线321、341和361。由漏极选择线SGD控制这些选择晶体管。在其他实施例中,选择线不一定需要是NAND串之间共用的;也就是说,可以对不同的NAND串提供不同的选择线。字线WL3连接于用于存储元件323、343和363的控制栅。字线WL2连接于用于存储元件324、344和364的控制栅。字线WL1连接于用于存储元件325、345和365的控制栅。字线WL0连接于用于存储元件326、346和366的控制栅。能够看到,每个位线和相应的NAND串都包括成列的存储元件的阵列或组。字线(WL3、WL2、WL1和WL0)包括成行的阵列或组。每个字线对行中的每个存储元件的控制栅加以连接。或者,可以由字线自身来提供控制栅。例如,字线WL2提供用于存储元件324、344和364的控制栅。在实际中,在字线上能够存在数千个存储元件。
每个存储元件都能够存储数据。例如,当存储一位的数字数据时,存储元件的可能阈值电压(VTH)的范围被分成两个范围,这两个范围被分配逻辑数据“1”和“0”。在NAND型闪存的一个示例中,VTH在存储元件被擦除之后为负,并且被定义为逻辑“1”。VTH在编程操作之后为正,并且被定义为逻辑“0”。当VTH为负并且尝试读取时,存储元件将接通以表示逻辑“1”正被存储。当VTH为正并且尝试读取操作时,存储元件将不接通,这表示逻辑“0”被存储。存储元件还能够存储多个水平的信息,例如,多位的数字数据。在这种情况下,VTH值的范围被分成数据水平的数量。例如,如果四个水平的信息被存储,那么将存在被分配给数据值“11”、“10”、“01”和“00”的四个VTH范围。在NAND型存储器的一个示例中,VTH在擦除操作之后为负,并且被定义为逻辑“11”。正的VTH值用于“10”、“01”和“00”的状态。编程到存储元件中的数据与元件的阈值电压范围之间的特定关系依赖于存储元件采用的数据编码方案。
当对闪存元件进行编程时,编程电压被施加至存储元件的控制栅,并且与该存储元件相关联的位线被接地。来自沟道的电子被注入到浮栅中。当电子聚集在浮栅中时,浮栅变成带负电荷,并且存储元件的VTH升高。为了将编程电压施加至正在被编程的存储元件的控制栅上,将该编程电压施加至适当的字线上。如前面所讨论的,每个NAND串的一个存储元件共享同一个字线。例如,当对图3的存储元件324进行编程时,编程电压也将被施加至存储元件344和364的控制栅上。
然而,在其他NAND串的编程期间,在受抑制的NAND串处可能出现编程干扰,并且有时候在被编程的NAND串自身处,也可能出现编程干扰。在未选的非易失性存储元件的阈值电压由于其他非易失性存储元件的编程而改变时出现编程干扰。编程干扰可能出现在先前已编程的存储元件上以及还没有被编程的已擦除存储元件上。各种编程干扰机制可能限制非易失性存储设备(如NAND闪存)可用的操作窗口。
例如,如果NAND串320被抑制(例如,NAND串320是不包含当前正被编程的存储元件的未选NAND串)并且NAND串340正在被编程(例如,NAND串340是包含当前正被编程的存储元件的选定NAND串),那么编程干扰可能出现在NAND串320处。例如,如果通过电压VPASS低,那么受抑制的NAND串的沟道将不能很好地升压,并且未选NAND串的选定字线可能被意外地编程。在另一个可能的场景中,可能通过栅致漏极泄漏(Gate Induced Drain Leakage,GIDL)或其他泄漏机制降低升高的电压,从而产生同一问题。其他效果,如由于与随后编程的其他相邻存储元件的电容耦合而导致的电荷存储元件的VTH变化,也可能促成编程干扰。
图4示出了NAND存储元件(如图1a和1b中示出的那些)的阵列400的示例。沿每个列,位线406被耦合于用于NAND串450的漏极选择栅的漏极端子426。沿NAND串的每行,源极线404可以连接NAND串的源极选择栅的所有源极端子428。
存储元件的阵列被分成大量的存储元件的块。如对于闪存EEPROM系统常见的,所述块是擦除单位。也就是说,每个块都含有被一起擦除的最小数量的存储元件。每个块一般被分成多页(page)。页是最小编程单位。在存储元件的一行中一般存储一页或多页的数据。例如,行一般含有多个交叉的页,或者其可以构成一页。页的所有存储元件将被一起读取和编程。另外,页能够存储来自一个或多个扇区的用户数据。扇区是主机使用的逻辑概念,作为方便的用户数据单位;其一般不包含限定于控制器的系统开销数据。系统开销数据可以包括已经根据扇区的用户数据计算出的错误校正码(ECC)。控制器(将在后面描述)的一部分在数据被编程到阵列中时计算ECC,并且还在从阵列中读取数据时对其进行核对。可替代地,ECC和/或其他系统开销数据被存储在不同的页中,或者甚至存储在与其所属的用户数据不同的块中。
用户数据的扇区一般为512字节,这对应于磁盘驱动器中的扇区的尺寸。系统开销数据一般为额外的16-20字节。大量的页形成块,这些页的数量为从例如8个到多达32个、64个、128个或更多页之间的任何数量。在一些实施例中,一行NAND串包括块。
在一个实施例中,通过将p阱升高到擦除电压(例如,14-22V)达足够的时长并且在源极和位线浮动的同时将选定块的字线接地,来擦除存储器存储元件。由于电容耦合,未选的字线、位线、选择线以及c源极也被升高到擦除电压的一大部分。因此,当浮栅的电子被发射到衬底侧时(一般通过Fowler-Nordheim隧穿机制),强电场被施加至选定存储元件的隧道氧化物层,并且选定存储元件的数据被擦除。随着电子从浮栅转移到p阱区域,选定存储元件的阈值电压被降低。可以在整个存储器阵列、单独的块或存储元件的另一单元上执行擦除。
图5是使用单行/列解码器和读/写电路的非易失性存储系统的框图。该图示出了根据本发明的一个实施例,具有用于对存储元件的页进行并行的读取和编程的读/写电路的存储器设备596。存储器设备596可以包括一个或多个存储器芯片598。存储器芯片598包括存储元件的二维阵列400、控制电路510以及读/写电路565。在一些实施例中,存储元件的阵列可以是三维的。可以由字线通过行解码器530以及由位线通过列解码器560对存储器阵列400进行寻址。读/写电路565包括多个感测块500,并且允许对存储元件的页进行并行的读取或编程。一般地,控制器550被包括在与所述一个或多个存储器芯片598相同的存储器设备596(例如,可移除的存储卡)中。通过线520在主机与控制器550之间以及通过线518在控制器与所述一个或多个存储器芯片598之间传递命令和数据。
控制电路510与读/写电路565协作,以对存储器阵列400执行存储操作。控制电路510包括状态机512、片上地址解码器514、温度感测电路515以及功率控制模块516。状态机512提供存储操作的芯片级控制。片上地址解码器514提供主机或存储器控制器所使用的地址与解码器530和560所使用的硬件地址之间的地址接口。温度感测电路515能够用于提供基于温度的信号或数据以供在编程操作中使用,如此处所描述的。功率控制模块516控制存储操作期间供给到字线和位线的功率和电压。
在一些实施方式中,可以组合图5中的一些部件。在多种设计中,除存储元件阵列400之外的部件中的一个或多个部件(单独地或组合地)可以被认作是管理或控制电路。例如,一个或多个管理或控制电路可以包括控制电路510、状态机512、解码器514/560、温度感测电路515、功率控制模块516、感测块500、读/写电路565、控制器550等中的任何一个或其组合。
关于温度感测电路515,在诸如NAND闪存设备的当前非易失性存储设备中,温度变化带来了读取和写入数据时的多种问题。存储器设备受到基于其所处的环境的温度变化的影响。例如,一些当前的存储器设备被额定为在-30℃至+85℃之间使用。工业用、军用或者甚至民用的装置都可能经受显著的温度变化。
已知用于提供温度补偿信号的多种技术。这些技术中的一种或多种能够用来提供用于VOPTIMAL的温度依附关系。这些技术中的大多数都不依赖于获取实际温度测量,尽管该方法也是可以的。例如,名为“Voltage Generation Circuit Having Temperature Compesation(具有温度补偿的电压生成电路)”的美国专利6,801,454描述了一种电压生成电路,其基于温度系数向非易失性存储器输出读取电压,在此通过参引的方式将该美国专利并入本文。该电路使用带隙电流,该带隙电流包括与温度无关的部分和随着温度升高而增加的与温度相关的部分。名为“Non-Volatile Memory With Temperature CompensatedData Read(具有温度补偿数据读取的非易失性存储器)”的美国专利6,560,152使用偏压生成电路,该偏压生成电路偏置施加于数据存储元件的源极或漏极的电压,在此通过参引的方式将该美国专利并入本文。这些技术中的任何一种以及任何其他已知的技术都能够被温度感测电路515使用。
在另一个实施例中,非易失性存储系统使用双行/列解码器和读/写电路。各种外围电路对存储器阵列400的访问在阵列的相反侧以对称的方式实现,使得每一侧的访问线和电路的密集度被减半。因此,行解码器被分成两个行解码器,并且列解码器被分成两个列解码器。类似地,读/写电路被分成连接与来自阵列400的底部的位线连接的读/写电路和与来自阵列400的顶部的位线连接的读/写电路。这样,读/写模块的密集度基本上被减半。
图6是描绘感测块的一个实施例的框图。单个感测块500被分割成核心部分(称为感测模块580)和公共部590。在一个实施例中,将存在用于每个位线的单独感测模块580和用于一组多个感测模块580的一个公共部590。在一个示例中,感测块将包括一个公共部590和八个感测模块580。一组中的感测模块中的每一个感测模块将通过数据总线572与相关的公共部分连通(communicate)。
感测模块580包括感测电路570,感测电路570判断连接的位线中的导通电流是高于或是低于预定阈值水平。感测模块580还包括位线锁存器582,位线锁存器582用来设定连接的位线上的电压状态。例如,在位线锁存器582中锁存的预定状态将导致连接的位线被拉到指定编程抑制的状态(例如,1.5-3V)。
公共部590包括处理器592、一组数据锁存器594以及耦合在数据锁存器594与数据总线520之间的I/O接口596。处理器592进行计算。例如,处理器592的功能之一是确定被感测存储元件中存储的数据并且将所确定的数据存储在该组数据锁存器中。这组数据锁存器594用于在读取操作期间存储通过处理器592确定的数据位。其也用于在程序操作期间存储通过处理器592引入的数据位。所引入的数据位表示要被编程到存储器中的写数据。I/O接口596提供数据锁存器594和数据总线520之间的接口。
在读取或感测期间,系统的操作处于状态机512的控制之下,该状态机控制将不同的控制栅电压提供给被寻址的存储元件。随着状态机逐步通过(step through)与存储器支持的各种存储器状态对应的各种预定控制栅电压,感测模块580可以在这些电压中的一个处释放(trip),并且经由总线572将输出从感测模块580提供至处理器592。在该点,处理器592通过考虑感测模块的释放事件以及关于经由输入线593从状态机施加的控制栅电压的信息来确定作为结果的存储器状态。然后,处理器592计算用于存储器状态的二进制编码并且将作为结果的数据位存储到数据锁存器594中。在核心部分的另一实施例中,位线锁存器582双用,即作为用于对感测模块580的数据进行锁存的锁存器,又作为如上面描述那样的位线锁存器。
一些实施方式可以包括多个处理器592。在一个实施例中,每个处理器592将包括输出线(未描绘出)使得每个输出线被以线或的方式连接(wired-OR’d)在一起。在一些实施例中,输出线在连接到线或线之前被反转。该配置使得在编程处理已完成时的程序验证处理期间能够进行快速确定,这是因为接收线或的状态机可以确定所有正被编程的位何时到达了期望的水平。例如,当每个位到达了其期望的水平,用于该位的逻辑零将被发送给线或的线(或者被反转的数据一)。当所有位都输出数据0(或者被反转的数据一),则状态机知道要终止编程处理。因为每个处理器与八个感测模块连通,所以状态机需要读取线或的线八次,或者逻辑电路被添加给处理器592以对关联的位线的结果进行累积(accumulate),使得状态机仅需读取线或线一次。类似地,通过正确选择逻辑水平,全局状态机(global state machine)可以检测第一位何时改变其状态,并且因此改变算法。
在编程或验证期间,要被编程的数据从数据总线520存储在这组数据锁存器594中。受状态机控制的编程操作包括施加至被寻址的存储元件的控制栅的编程电压脉冲系列。在每个编程脉冲之后跟随有回读(验证)跟随,以确定存储元件是否被编程为期望的存储器状态。处理器592监控与期望的存储器状态相关的回读存储器状态。当这两个状态一致时,处理器592设定位线锁存器582,以便使位线被牵拉至指定编程禁止的状态。这禁止了耦合至位线的存储元件被进一步编程,即使在该存储元件的控制栅上出现编程脉冲。在另一实施例中,处理器起初加载位线锁存器582,并且感测电路在验证处理期间将该锁存器设定到禁止值。
数据锁存器堆栈594包含与感测模块对应的数据锁存器堆栈。在一个实施例中,对于每一感测模块580存在三个数据锁存器。在一些实施方式中(但不是必需的),数据锁存器被实施为移位寄存器,使得存储在其中的并行数据转换为用于数据总线520的串行数据,并且反之亦然。在一个优选实施例中,与m个存储元件的读/写块对应的所有数据锁存器可以被链接在一起,以形成模块移位寄存器,使得可以通过串行传送来输入或者输出数据块。具体地,读/写模块的存储体被适配,使得其数据锁存器组中的每个将数据顺序地移位到数据总线中或从其中移位出,就像它们是整个读/写块的移位寄存器的部分那样。
图7示出了将存储器阵列组织为用于所有位线存储器架构或者用于奇偶存储器架构的块的示例。描述了存储器阵列400的示例性结构。作为一个示例,描述了被分割为1024个块的NAND闪存EEPROM。存储在每个块中的数据可以被同时擦除。在一个实施例中,块是被同时擦除的存储元件的最小单位。在该示例中,在每个块中存在对应于位线BL0、BL1,...BL8511的8512列。在一个称作全位线(ABL)架构(架构710)的实施例中,可以在读取和编程操作期间同时选择一块的所有位线。可以同时对沿着一个公共字线并且连接至任意位线的存储元件进行编程。
在所提供的示例中,四个存储元件串联以形成NAND串。虽然四个存储元件被示出为要被包括在每个NAND串中,可以使用多于或少于四个存储元件(例如,16、32、64或其他数量)。NAND串的一个端子经由漏极选择栅连接至对应的位线(连接至栅漏极线SGD),并且另一端子经由源极选择栅连接至c源极(连接至选择栅源极线SGS)。
在称作奇偶架构(架构700)的另一实施例中,位线被划分为奇数位线(BLe)和偶数位线(BLo)。在奇/偶位线架构中,一次对沿着一个公共字线并且连接至奇数位线的存储元件进行编程,另一次对沿着一个公共字线并且连接至偶数位线的存储元件进行编程。在该示例中,在每个块中存在8512列,这些列被划分为偶数列和奇数列,并且六十四个存储元件被示出为串联成列以形成NAND串。
在读和编程操作的一个配置期间,同时选择4256个存储元件。所选择的存储元件具有相同的字线和相同类型的位线(例如偶或奇)。因此,形成逻辑页的532字节数据可以被同时读取或编程,并且一个存储器块可以存储至少八个逻辑页(四个字线,各具有奇数页和偶数页)。对于多状态存储元件,当每个存储元件存储两位数据时(其中这两位中的每个被存储在不同的页中),一个块存储十六个逻辑页。也可以使用其他尺寸的块和页。
对于ABL或者奇-偶架构,可以通过将p阱升高至擦除电压(例如20V)并将所选块的字线接地来擦除存储元件。源极和位线是浮动的。可以对整个存储器阵列、单独的块或者存储元件的作为存储器设备的一部分的其他单位进行擦除。电子从存储元件的浮动栅传送至p阱区域,使得存储元件的VTH变为负的。
在读取和验证操作中,选择栅(SGD和SGS)连接至2.5-4.5V的范围中电压,并且未选择的字线(例如,当WL2是被选择的字线时,为WL0、WL1和WL3)被提高至读取通过电压VREAD(典型地为在4.5V到6V的范围中的电压),以使得晶体管作为通过门(pass gate)进行操作。所选择的字线WL2连接至如下电压,对于每次读取和验证操作来规定该电压的水平,以确定所关心的存储元件的VTH在该水平以上还是以下。例如,在对于二水平存储元件的读取操作中,所选择的字线WL2可以被接地,使得检测VTH是否高于0V。在对于二水平存储元件的验证操作中,所选择的字线WL2连接至0.8V,例如,使得验证VTH是否已达到至少0.8V。源极和p阱在0V。假设为偶数位线(BLe)的所选择的位线被预充电至例如0.7V的水平。如果VTH高于字线上的读取或验证水平,则与感兴趣的存储元件关联的位线(BLe)的电势水平由于非导电存储元件而维持高水平。另一方面,如果VTH低于读取或验证水平,则所关心的位线(BLe)的电势水平降低至低水平,例如,小于0.5V,这是因为导电存储元件将位线放电。由此,可以通过连接至位线的电压比较器感测放大器来检测存储元件的状态。
图8描绘了阈值电压分布和单程编程(one pass programming)。用于存储元件阵列的示例阈值电压分布提供了每个存储元件存储两位数据的情况。针对被擦除的(E状态)存储元件提供第一阈值电压分布800。三个阈值电压分布802、804和806分别表示编程过的状态A、B和C。在一个实施例中,E分布中的阈值电压是负的并且A、B和C分布中的阈值电压是正的。分布803、805和807表示暂时或瞬时的分布,A、B和C状态存储元件在分别达到最终的分布802、804和806之前分别经历该暂时或瞬时的分布。例如,分布803指示了特定数量或部分的A状态存储元件或者意在于被编程为A状态的存储元件当前在A状态中。这些存储元件(其中VTH>Vva)被验证达到了A状态。A状态存储元件的剩余部分具有VTH<Vva,并且还未达到A状态。
类似地,分布805指示了特定数量或部分的B状态存储元件当前在B状态中,并且分布807指示了特定数量或部分的C状态存储元件当前在C状态中,可以通过维持阈值电压被确定为超过相应的验证水平的存储元件的计数来确定处于特定状态的存储元件的数量。
每个不同的阈值电压范围与用于一组数据位的预定值对应。编程到存储元件中的数据与存储元件的阈值电压水平之间的特定关系与被采取用于存储元件的数据编码方案有关。在一个实施例中,使用格雷码分配而将数据值分配给阈值电压范围,使得如果浮栅的阈值电压错位地移位至其相邻的物理状态,则将仅仅影响一位。一个示例将“11”分配给阈值电压范围E(状态E),“10”分配给阈值电压范围A(状态A),“00”分配给阈值电压范围B(状态B),并且将“01”分配给阈值电压C(状态C)。然而,在其他示例中,并未使用格雷码。尽管示出了四个状态,也可以使用多状态结构,包括多于或少于四个状态的结构。
也提供三个读取基准电压Vra、Vrb和Vrc,以用于从存储元件读取数据。通过测试给定的存储元件的阈值电压高于还是低于Vra、Vrb和Vrc,系统可以确定存储元件所处的状态,例如编程状况。
此外,提供了三个验证基准电压Vva、Vvb和Vvc。当存储元件被编程到状态A时,系统将测试这些存储元件是否具有大于或等于Vva的阈值电压。当存储元件被编程到状态B时,系统将测试存储元件是否具有大于或等于Vvb的阈值电压。当存储元件被编程到状态C时,系统将确定存储元件是否具有大于或等于Vvc的阈值电压。
在称作全序列编程(full sequence programming)的一个实施例中,存储元件可以被从擦除状态E直接编程到编程状态A、B或C中的任一个。要被编程的一组存储元件可以首先被擦除,使得该组中的所有存储元件处于擦除的状态E中。然后,如通过图13的控制栅电压序列描绘那样的编程脉冲系列将用于使存储元件直接编程到状态A、B或C中。一些存储元件被从状态E编程到状态A,而其他存储元件被从状态E编程至状态B和/或从状态E编程至状态C。当在WLn上从状态E编程到状态C时,在WLn-1下的邻近的浮栅的寄生耦合的量到达最大值,这是因为与当从状态E编程至状态A或者从状态E编程至状态B时的电荷变化相比,WLn下的浮栅上的电荷量变化最大。当从状态E编程至状态B时,邻近的浮栅的耦合量较小。当从状态E编程至状态A时,耦合量甚至进一步减小。
图9示出了对存储两个不同页(较下方的页和较上方的页)的数据的多状态存储元件进行编程的二程(two-pass)技术的示例。通过重复来自图8的阈值电压分布800、802、804和806来描绘四个状态。这些状态和其表示的位是:状态E(11)、状态A(10)、状态B(00)和状态C(01)。对于状态E,两页均存储“1”。对于状态A,较下方的页存储“0”,而较上方的页存储“1”。对于状态B,两页均存储“0”。对于状态C,较下方的页存储“1”,而较上方的页存储“0”。请注意,虽然特定的位模式被分配给各个状态,然而也可以分配不同的位模式。
在第一编程过程中,根据要编程到较下方的逻辑页中的位来设定存储元件的阈值电压水平。如果该位是逻辑“1”,则阈值电压不改变,这是因为该阈值电压处于作为之前已经被擦除的结果的恰当状态中。然而,如果要被编程的位是逻辑“0”,则存储元件的阈值水平增大至状态A,如通过箭头900所示那样。这结束第一编程过程。
在第二编程过程中,根据被编程到较上方的逻辑页的位来设定存储元件的阈值电压水平。如果较上方的逻辑页的位要存储逻辑“1”,则不发生编程,这是因为存储元件在状态E或A之一中,根据较低页位的编程,状态E和A均具有为“1”的较上方的页的位。如果较上方的页的位要为逻辑“0”,则阈值电压移位。如果第一过程导致存储元件保持在被擦除的状态E中,则在第二阶段中存储元件被编程以使得阈值电压增加至在状态C内,如通过箭头920描绘那样。如果存储元件被编程到状态A中作为第一编程过程的结果,则存储元件进一步在第二过程中被编程,使得阈值电压增加到处于状态B内,如通过箭头910描绘那样。第二过程的结果是要将存储元件编程到如下状态,该状态被分配给存储较上方的页的逻辑“0”,而不改变较低页的数据。在图8和图9中,在邻近的字线上至浮动栅的耦合量与最终状态有关。
在一个实施例中,如果写入足够的数据以填充整个页,则系统可以被设定为进行全序列写入。如果未对全页写足够的数据,则编程过程可以对以所接收的数据编程的较下方的页进行编程。如果接收了后续数据,则系统于是将对较上方的页进行编程。然而在另一实施例中系统可以以如下模式起动,该模式对较下方的页进行编程,并且,如果随后接收了足够的数据以填充整个字线(或字线的大部分)的存储元件,则系统转换为全序列编程模式。
请注意,图9中的分布802、804和806可以具有关联的暂时或临时的分布(在图8中示出),A、B和C状态存储元件在达到最终分布802、804和806之前分别经历该分布。
图10a-c公开了用于对非易失性存储器进行编程的另一处理,该处理通过对于任意特定存储元件,在写入到之前页的邻近的存储元件之后,写入关于特定页的该特定存储元件,来减少浮栅至浮栅耦合。在一个示例实施形式中,非易失性存储元件使用四个数据状态对于每个存储元件存储两位数据。例如,假设状态E是被擦除的状态,并且状态A、B和C是编程过的状态。状态E存储数据11。状态A存储数据01。状态B存储数据10。状态C存储数据00。因为两个位均再邻近状态A和B之间变化,所以这是非格雷编码的示例。也可以使用数据至物理数据的其他编码。每个存储元件存储两个数据页。为了进行参考,这些数据也将被称作较上方的页和较下方的页;然而,其可以被给予其他标记。参考状态A,较上方的页存储位0并且较下方的页存储位1。参考状态B,较上方的页存储位1并且较下方的页存储位0。参考状态C,两页均存储位数据0。
编程处理是两步骤处理。在第一步骤中,对较下方的页进行编程。如果较下方的页要维持数据1,则存储元件状态维持在状态E(分布1000)。如果数据要被编程为0,则存储元件的电压的阈值提高以使得存储元件被编程至状态B’(分布1010)。图10a因此示出了将存储元件从状态E编程至状态B’。状态B’是临时状态B;因此验证点被描绘为Vvb’,其比Vvb低。
请注意,分布1010可以具有关联的暂时或临时分布(未示出),B’状态在达到分布1010之前经历该暂时或临时分布。
在另一实施例中,在存储元件从状态E编程至状态B’之后,然后,其在NAND串中的相邻的存储元件(WLn+1)将关于其较下方的页编程。例如,回去看图2,在对存储元件106的较下方的页进行编程之后,将对存储元件104的较下方的页进行编程。在对存储元件104进行编程之后,如果存储元件104具有从状态E提高至状态B’的阈值电压,则浮栅至浮栅耦合效应将提高存储元件106的表观阈值电压(apparent threshold voltage)。这将具有如下效果:将对于状态B’的阈值电压分布扩宽为图10b的描绘为阈值电压分布1012的阈值电压分布。在对较上方的页进行编程时,将补偿阈值电压分布的明显扩宽。E状态也可以被扩宽较小程度,如通过分布1002描绘那样。
图10c描绘了对较上方的页进行编程的处理。如果存储元件处于被擦除的状态E,并且较上方的页维持在1,则存储元件将维持在状态E中(分布1002)。如果存储元件处于状态E并且其较上方的页数据要被编程为0,则存储元件的阈值电压将被提高以使得存储元件处于状态A(分布1004)。如果存储元件层处于中间的阈值电压分布1012,并且较上方的页数据要维持在1,则存储元件将被编程至最终状态B(分布1006)。如果存储元件处于中间的阈值电压分布1012,并且较上方的页数据要成为数据0,则存储元件的阈值电压将升高以使得存储元件处于状态C(分布1008)。通过图10a-c描绘的处理减少浮栅至浮栅耦合效果,这是因为仅仅相邻存储元件的较上方的页编程将影响给定的存储元件的表观阈值电压。替选状态编码的一个示例是当较上方的页的数据是1时从分布1012移动至状态C,并且当较上方的页的数据是0时移动至状态B。
请注意,分布1004、1006和1008可以具有关联的暂时或临时的分布,A、B和C状态存储元件随着其转变至最终分布1004、1006和1008而分别经历这些暂时或临时的分布。
尽管图10a-c提供了关于四个数据状态和两个数据页的示例,所教导的思想可以被施加至带有多于或少于四个状态和多于或少于两页的其他实施方式。例如,当前在计划或在生产每个存储元件具有八个或十六个状态的存储设备。
图11是NAND串的横截面,并且描绘了在升压期间的沟道结漏。该横截面描绘了在多个存储元件之间延伸的所选字线1100或者控制栅(CG)。每个存储元件包括浮栅(FG),例如FG 1102、1104和1106,该浮栅在衬底的相应的沟道区域1108、1110、1112之上,典型地在p阱中。每个沟道区域是NAND串的可以被视为从页出来的部分。在该示例中,沟道区域1110是被禁止的串,并且沟道区域1108和1112是被编程的串的。Vboost>0V表示沟道区域1110的升压过的电压电势。
如上面结合图3提及的那样,未选择的NAND串中的存储元件使其沟道在编程操作期间被升压,以禁止编程并且由此避免编程干扰。升压典型地通过将通过电压Vpass施加至未选择的字线来实现,而编程电压Vpgm被施加至被选择的字线。然而,Vpass不能过高,或者其可以对未选择的NAND串进行编程。升压通过减小横跨浮栅的电压来禁止浮栅的编程。最易受编程干扰影响的被禁止的存储元件是如下存储元件,其与被选择的字线1100连通,并且因此接收相对高的编程电压Vpgm。与未选择的字线连通的被禁止的存储元件在其控制栅上具有较低的通过电压Vpass而非编程电压,并且因此这些被禁止的存储元件较不易受编程干扰影响了很多。
随着NAND闪存继续按比例减少,沟道升压倾向于变得较困难,这是因为两个相邻沟道之间的耦合变得较强。沟道升压电势可以饱和或钳位在特定的水平,在该水平之上,即使Vpass进一步增加,该电势也不能增加很多。对于被禁止的给定存储元件,在连接至相同字线的两个相邻的存储元件的沟道处于例如为0V的低电压时(如在两个相邻的存储元件均被编程的情况下),该沟道升压饱和最严重。例如,沟道1110通过升压电压Vboost来禁止,并且沟道1108和1112并未被禁止(接收例如0V)。在一些情况下,例如在粗略-精细编程操作的精细阶段中,被选择的NAND串的沟道可以被提高至略高于0V,例如至0.5V,以减缓编程。然而,该水平也显著小于Vboost,其可以是几伏特。
升压电势饱和可能导致严重的编程干扰问题。例如,当字线上的一些存储元件被编程至高的阈值电压时,例如在每个存储元件三和四位的存储器设备中,编程电压可以增加至非常高的水平,然而沟道电势由于升压饱和而不可以充分增加。编程干扰可能容易在该编程情景和其他编程情景中出现。
具体地,当沟道升压电势高时,存储元件的源极/漏极区域中的结漏可能引起沟道升压饱和。然而,当编程脉冲宽度减小时,可以改进编程饱和,于是升压电势变得较高。这可能是由于较短的结漏持续时间。相邻沟道中的电势可以强烈地调节中央的、升压过的沟道中的横向电场εx并且影响结漏。如果将浅沟槽绝缘视为栅极氧化物,并且将相邻沟道视为栅极,则该效果与栅极导致的漏极泄露有点类似,其中栅极电压强烈调节该泄露。竖直电场εy也被描绘。通过强电场生成电子-空穴对1111。
图12a示出了当相邻沟道被升压或未被升压时的沟道升压电势。横轴描绘了施加至未选择的字线的通过电压(Vpass),纵轴示出了禁止/升压沟道(如图11中的沟道110)的沟道升压电势(Vboost)。沟道升压电势依赖于相邻沟道的电势。当相邻的两个沟道都被禁止时(曲线1200),Vboost最高。当相邻沟道之一被禁止/升压时,而另一个相邻沟道导通/未升压时(曲线1202),其中沟道电势在0V,Vboost为第二高。当两个相邻沟道都导通时(曲线1204),Vboost最低,这是最差的情况。在一些情况下,当使用几伏范围内的升压时,曲线1200和1204可以至少相差2V。
图12b描绘了作为温度的函数的沟道升压电势。升压饱和具有很强的温度依赖性。在高温下,升压变得更加困难,由于沟道中的反向偏置泄露电流而导致沟道电势在低水平处饱和。在低温下,反向偏置泄露电流低得多,因此改进了饱和并能够实现更高的Vboost。在所示的曲线中,对于给定的沟道,两个相邻沟道都导通。室温的情况对应于也在图12a中描绘的曲线1204。曲线1206表示在低温下如-30℃下作为Vpass的函数的Vboost,曲线1208表示在更高温度如+85℃下作为Vpass的函数的Vboost。
图12c描绘了作为编程脉宽和所选字线位置的函数的沟道升压电势。减小的编程脉宽或持续时间可以改进升压饱和,以使得可以实现更高的升压电势。这可能由于结漏持续时间变得短。此处,横轴描绘了编程脉冲(Vpgm)宽度,纵轴描绘了Vboost。一般而言,较短的脉宽与更高的Vboost相关。
减小编程脉宽,如额定宽度的二分之一或三分之一,可以将Vboost增大很大的量,从而显著地减少编程干扰。在一个情况下,将编程脉宽从20μs减小到10μs,Vboost增大约0.5V——实质的增大。对编程脉宽强加一个更低的实际限制,这在之后结合图14进一步讨论。
而且,相比于中间的字线(曲线1212)或源极侧字线(曲线1210),当所选字线是漏极侧字线(曲线1214)时,沟道经常能够更早地饱和。例如,这对于一些升压方案来说是真的,在这些升压方案中,隔离电压如0V在编程脉冲期间被施加至所选字线的源极侧的至少一个字线。隔离电压将沟道的源极侧与漏极侧断开(cut off),并在漏极侧编程期间,沟道电容可以变得更小,因此升压较低。因此,对于更高的字线来说,切换到较短的脉宽可以发生得更早。
具体地,对于漏极侧所选字线来说,Vboost对于给定Vpgm脉宽来说较低。利用如图7所示的字线编号方案,更远的源极侧字线是WL0(字线号0),并且字线号增大直到达到最远的漏极侧字线,在该示例中,最远的漏极侧字线是WL63。源极侧字线可以包含最远源极侧字线中的Nss个字线内的字线。漏极侧字线可以包含最远漏极侧字线中的Nds个字线内的字线。中间的字线可以包含源极侧字线和漏极侧字线之间的字线。要注意,此处参考了针对编程而选择的字线。
相比于使用较长持续时间脉冲的情况,缩短编程脉冲持续时间能够增大完成编程操作所需的编程脉冲的数量,并且编程脉冲可以达到更高的幅度。然而,较短的脉冲持续时间可能导致粒度更细的编程操作,这是因为以更小的增量来增大存储元件的阈值电压。此外,在存储元件通过每个短脉冲之后的验证测试之后,存储元件能够被更早地锁住。预计总的编程时间不会显著增大。
图12d描绘了就作为温度(横轴)的函数的编程脉冲数量(纵轴)而言的切换点,其中,调整是基于所选字线位置的。如所述,对于给定禁止沟道,实现更高Vboost的一个方法是使用具有减小的持续时间的编程脉冲。概念地,这涉及将一个长编程脉冲分为两个或更多个较短脉冲。从较长持续时间编程脉冲切换到较短持续时间编程脉冲,可以基于一个或多个标准而发生在编程操作的中途。一种可能的方法是在预定的编程脉冲数量处切换,即,在编程操作时施加的特定第N1个编程脉冲处。以下还参考图13进一步讨论。关键地,当编程脉冲幅度达到预定水平时发生切换,因为脉冲数量通常对应于脉冲幅度。
粒度更细的方法考虑了温度和/或所选字线位置。例如,在图12d中,曲线1224描绘了当所选字线是漏极侧字线时N1和温度的关系,曲线1222描绘了当所选字线是中间字线时N1和温度的关系,曲线1220描绘了当所选字线是源极侧字线时N1和温度的关系。在比中间范围的温度更低的地方,在温度T1和T2之间,这些曲线重合,并且当编程脉冲到达更高幅度时,可以使用更高的N1以使得在编程操作中相对晚地切换到较短持续时间编程脉冲。在更高的温度处,如在T2和T3之间,当编程脉冲未达到高幅度时,可以使用较低的N1以使得在编程操作中相对早地切换到较短持续时间编程脉冲。通过使用该方案,可以减轻沟道升压电势饱和的问题以使得减少高Vpgm处的编程干扰。
在一个方法中,多个存储器设备被测试为展现如图12d所示的曲线,存储器设备的控制电路被配置为基于该曲线来实施切换。可以通过表格中的数据点来限定曲线。控制电路可以被类似地配置为实施如本文提供的其他曲线。
图12e描绘了就作为温度的函数的触发状态而言的切换点。用于实施到较短持续时间编程脉冲的切换的另一方法涉及对正被编程到特定数据状态的存储元件进行跟踪。当存储元件的预定部分被验证为达到特定数据状态时,可以触发切换。可以使用在编程操作中的每个编程脉冲之后正常发生的验证操作,以使得不需要额外的验证操作。一般而言,利用每个存储元件、整数N>1位,将数据编码为2N个数据状态(例如,每个存储元件,四个或更多个状态,两位或更多位),并使用以下编码方案,在该编码方案中,几乎相等数量的存储元件被编程到每个状态。例如,对于四个状态:E、A、B和C,所选字线上的四分之一的存储元件被编程为E状态,另一个四分之一的存储元件被编程为A状态,又一个四分之一的存储元件被编程为B状态,又一个四分之一的存储元件被编程为C状态。因此,不同子集的存储元件被编程到不同的状态,一个子集一个状态。
因此,特定状态,例如,可用的四个或更多个状态中的一个可以被选作触发状态。当意在被编程为特定状态的存储元件的预定部分被验证为达到特定数据状态时,可以触发切换。例如,假设状态A是触发状态,并且字线上的1024个存储元件正被编程,256个存储元件留在E状态,256个存储元件要被编程到A状态,256个存储元件要被编程到B状态,并且256个存储元件要被编程到C状态。当所选字线的256个A状态存储元件的预定部分被验证为达到A状态时,可以触发切换。所述预定部分可以被表达为N2个存储元件、分数或百分比等。例如,N2可以是128个存储元件,表示A状态存储元件的二分之一。
此外,切换状态可以被固定,如最低状态,例如,当有四个可能状态时为A状态。或者,可以基于如温度等的标准来动态地和适应性地选择切换状态。相比于温度较低时,例如在T1和T2之间,当温度较高时,例如在T2和T3之间,选择更低的切换状态。相比于较高的切换状态,较低的切换状态导致在编程处理中更早地发生切换。例如,当有四个数据状态时,对于T1和T2之间的温度,切换状态可以是状态A,而对于T2和T3之间的温度,切换状态可以是状态B。如果有八个数据状态,从最低到最高,E、A、B、C、D、E、F和G,对于较高温度,触发状态可以是例如D状态,对于较低温度,触发状态可以是F状态。也可以使用多于两个的切换状态。
可以针对每个字线或针对一组字线定制触发状态,例如触发状态1用于漏极侧字线,触发状态2用于源极字线和中间字线。也可以针对每个字线或一组字线来定制指示不同触发状态的温度如T2,例如,T2=temp1用于漏极侧字线,而T2=temp2用于源极字线和中间字线。
图12f描绘了就作为温度的函数的达到触发状态的存储元件数量而言的切换点。在其他选项中,一旦基于温度将切换或触发状态确定作为预定的状态或者作为动态地选择的状态,则切换点可以被进一步定义为温度的函数。具体地,提到了当预定部分的或N2个存储元件被验证为达到特定数据状态时,可以触发切换。此外,N2作为温度的函数而变化,使得当温度较高时,N2较低,而当温度较低时,N2较高。横向标度描绘了触发状态的温度范围。
例如,图12f中的温度范围可以从T1延伸到T2,或者从T2延伸到T3(见图12e)。对于给定触发状态,在用于触发状态的温度范围内,当温度相对较高时,到较短持续时间编程脉冲的切换,将相对早地发生。类似地,在用于触发状态的温度范围内,当温度相对较低时,到更短持续时间编程脉冲的切换,将相对早地发生。例如,如果状态A的触发状态,并且温度在用于该状态的范围的高端处,则N2可以表示作为正被编程到A状态的所选字线的存储元件的70%的数量,例如,假设四种可能状态,该数量可以与所选字线上的存储元件的70%×1/4相同。如果温度在用于该状态的范围的低端,则N2可以表示例如90%的同等值。
就百分比而言,为了避免由于非常慢或非常快地对存储元件进行编程而导致不想要的结果,N2应当避免接近于0或100%的值。可以使用测试或模拟来验证N2的最佳值。例如,字线上的存储元件在特定温度下可以被编程为具有特定的N2值并被回读。当读取时,可以确定位错误的数量。可以用不同的N2值来重复该过程以找到产生最低错误数量的值。此外,可以针对每个字线或一组字线来定制N2,例如,对于漏极侧字线,N2=值1,而对于源极字线和中间字线,N2=值2。
图13描绘了编程操作中的编程脉冲,其中在编程操作的中途切换到较短持续时间编程脉冲。如所述的,利用较短持续时间编程脉冲的分裂(split)编程脉宽方法可以实现更高的升压电势。当Vpgm达到特定水平时,我们将编程脉冲分裂为两个或更多个较短的脉冲,而同时维持Vpgm水平和编程周期中的总编程时间。在每个短编程脉冲之后,我们对沟道进行放电,然后对沟道重新升压以确保升压电势在下个短编程脉冲期间是高的。在每个短编程脉冲之后,我们还可以执行验证操作。相比于施加不跟随有验证操作的编程脉冲来说,这可能减慢编程操作,但是该方法可以锁住通过每个短脉冲之后的验证的位,并减小对于升压而具有最差情况图案的可能性,其中禁止沟道对相邻的沟道进行了编程。还可以应用两个或更多个连续短编程脉冲而没有验证操作,而其他短编程脉冲之后跟随有验证操作。
一般而言,编程操作可以涉及将脉冲串(pulse train)施加于所选字线,其中脉冲串包括跟随有一个或多个验证脉冲的编程脉冲。要注意,编程脉冲可以具有任意数量的不同波形形状。描绘了方形波,尽管其他形状的波形也是可能的,如多级形状(multilevel shape)或斜坡式形状。此外,编程脉冲持续时间中的从较长持续时间脉冲到较短持续时间脉冲的切换,可以在脉冲串期间发生。该脉冲串1300包括一系列编程脉冲1305、1310、1315、1320、1325、1330、1335、1340、1345、1350、...、这些编程脉冲在时间t0至t9分别被施加于选择用于编程的字线。在一个实施例中,编程脉冲具有电压VPGM,该电压开始于12V并对于每个相继的编程脉冲以增量(例如,0.5V)递增,直到达到最大值,例如20-25V。在编程脉冲之间有验证脉冲,例如,三个验证脉冲,在验证操作中使用这些验证脉冲。在一些实施例中,针对数据被编程到的每个状态(例如,状态A、B和C),都可以有一个验证脉冲。在其他实施例中,可以有更多或更少的验证脉冲。例如,每组中的验证脉冲可以具有幅度Vva、Vvb和Vvc(图9)或Vvb’(图10a)。示例性的验证脉冲1306跟随在编程脉冲1305之后,并且示例性的验证脉冲1307跟随在编程脉冲1335之后。
切换点1303表示使用较长持续时间编程脉冲(持续时间Δt1)(如编程脉冲1305、1310、1315、1320、1325和1330)的第一系列编程脉冲1301和使用较短持续时间编程脉冲(持续时间Δt1<Δt2)的第二系列编程脉冲1302(1335、1340、1345和1350)之间的分界点。可以利用本文中给出的包括温度、所选字线位置和/或存储元件到触发状态的跟踪在内的各种标准,来确定切换点。
图14描绘了存储元件看到的编程脉冲,这些编程脉冲基于存储元件与字线的解码器侧的距离。编程电压在字线的解码器侧被施加至所选字线的一端。由于字线的阻容(resistance-capacitance,RC)延迟,更接近解码器侧的存储元件相比于更远离解码器侧的存储元件,编程脉冲的形状不同。编程脉冲1400表示从接近解码器侧的存储元件来看的预切换(pre-switchover)的较长的持续时间编程脉冲,该脉冲具有持续时间Δt1,而编程脉冲1402表示从远离解码器侧的存储元件来看的预切换编程脉冲。脉冲1402在其前沿(leading edge)处衰减,但是该脉冲达到期望的幅度Vpgm。编程脉冲1410表示从接近解码器侧的存储元件来看的后切换(post-switchover)的较短持续时间编程脉冲,该脉冲具有持续时间Δt2,而编程脉冲1412表示从远离解码器侧的存储元件来看的后切换编程脉冲。脉冲1412在其前沿处衰减并达到水平Vpgm-Δ,略低于期望的幅度Vpgm。
因此,更接近解码器侧的存储元件看到的Vpgm可以变得比从更远离解码器侧的存储元件看到的Vpgm更高。然而,这不会使编程干扰更差,这是因为对于接近字线的解码器侧的存储元件来说,可以更早完成编程,使得一旦施加了较短持续时间脉冲则这些存储元件被锁定,并且它们的沟道被禁止编程。对于给定存储元件,当相邻存储元件的沟道被禁止时,沟道升压电势明显更高。因此,当使用较短持续时间编程脉冲时,对于接近解码器侧的存储元件,编程干扰将不会变差。
要注意,关于脉宽可以多小,字线的RC延迟也强加了更低实际限制。如果脉宽太小,则可能无法达到期望的高编程电压水平。此外,如果脉宽太小,则可能由于不充分的Fowler-Nordheim隧穿注入而导致存储元件不被编程。预计初始脉宽的约三分之一到二分之一的减小的持续时间脉宽是实际的。然而,该范围对于不同存储器设备来说可以有所不同。
图15是描述用于对非易失存储器进行编程的方法的一个实施例的流程图,其中基于编程脉冲数量来切换到较短持续时间编程脉冲。在一种实施方式中,在编程之前擦除存储元件(以块或其他单位)。在步骤1500中,控制器发出“数据负荷”命令,并且控制电路510接收输入。在步骤1502中,用于指定页地址的地址数据从控制器或主机输入到解码器514。在步骤1504中,用于所寻址的页面的一页编程数据被输入到数据缓冲器,以用于编程。数据被锁存在适当的一组锁存器中。在步骤1506中,控制器将“编程”命令发送到状态机512。
通过“编程”命令的触发,在步骤1504中锁存的数据将利用施加至适当所选字线的图13的脉冲串1300的步进编程脉冲而被编程到状态机512控制的所选存储元件中。在步骤1508中,编程电压VPGM被初始化到开始脉冲(例如,12V或其他值)并且状态机512维持的编程计数器(PC)被初始化到零。在步骤1510中,通过访问温度感测电路515来确定温度。在步骤1512中,确定字线位置,字线位置是当前选择用于编程的字线的字线数量。在步骤1514中,基于温度和/或字线位置(如通过访问图12d中示出的数据)来确定切换编程脉冲数量(N1)。在步骤1516中,设置编程脉宽,如图13中的Δt1。最初,在编程操作开始处,使用较长持续时间脉冲。在步骤1518,当前编程脉冲数量或计数被初始化到值一。在确定步骤1520,确定当前编程脉冲数量是否等于或大于N1。如果当前编程脉冲数量不等于或超过N1,则在步骤1524施加具有持续时间Δt1的编程脉冲。
因此,第一编程脉冲被施加至所选字线以开始对与所选字线相关联的存储元件进行编程。如果表示相应的存储元件应当被编程的逻辑“0”被存储在特定数据锁存器中,则相应的位线接地。另一方面,如果表示相应存储元件应当保持在其当前状态下的逻辑“1”被存储在特定锁存器中,则相应位线连接到1.5-3V以禁止编程。
在步骤1526中,在验证操作中验证所选存储元件的状态。如果检测到所选存储元件的目标阈值电压已经达到适当水平,则存储在相应数据锁存器中的数据被改变到逻辑“1”。如果检测到阈值电压还未达到适当水平,则存储在相应数据锁存器中的数据不被改变。以该方式,在其相应数据锁存器中存储了逻辑“1”的位线不需要被编程。当所有数据锁存器正存储逻辑“1”时,状态机(通过上述的线或型机制)知道所有所选存储元件已被编程。在步骤1528,检查是否所有数据锁存器正存储逻辑“1”。如果所有数据锁存器正存储逻辑“1”,则因为所有所选存储元件都被编程和验证,而成功完成了编程过程。在步骤“1530”中报告状态“通过”。在一些实施例中,即使不是全部所选存储元件被验证为被编程,仍认为成功完成编程过程。在该情况下,由于未充分编程的存储元件可能在随后的读取操作期间发生错误。然而,这些错误可以被ECC纠正。
如果在步骤1528中确定不是全部的数据锁存器都存储了逻辑“1”,则继续编程过程。在一些实施例中,即使不是所有的数据锁存器都正存储逻辑“1”,仍停止编程过程。在步骤1532中,对照编程限值PCmax来检查编程计数器PC。编程限值的一个示例是20;然而也可以使用其他数量。如果编程计数器PC不小于PCmax,则编程过程失败并且在步骤1534中报告状态“失败”。如果编程计数器PC小于PCmax,则执行步骤1536。其中VPGM按步长增大,编程计数器PC递增一,并且当前编程脉冲数量递增一。然后,该处理循环回步骤1520以确定当前编程脉冲数量是否等于或大于N1。如果当前编程脉冲数量不等于或大于N1,则设置第二编程脉宽Δt2<Δt1。因此,随后编程脉冲将具有较短的持续时间。然后,如上所述地继续编程。如果当前编程脉冲数量不等于或大于N1,则在步骤1524施加具有第一脉宽Δt1的另一编程脉冲。
要注意,还可以使用多于两个的编程脉冲持续时间。例如,在脉冲串中,在具有第一持续时间Δt1的编程脉冲之后跟随有具有第二持续时间Δt2<Δt1的编程脉冲,之后接着跟随有具有第三持续时间Δt3<Δt2的编程脉冲。
图16是描述用于对非易失性存储器进行编程的方法的另一实施例的流程图,其中到较短持续时间编程脉冲的切换基于达到触发状态的存储元件的数量。类似编号的步骤对应于图15中的那些步骤。
步骤1612包括如通过利用图12e中的信息来基于温度确定要跟踪的触发状态。步骤1614包括基于温度来确定处于跟踪状态的要跟踪的存储元件N2的触发数量。在步骤1516中,确定编程脉宽,如图13中的Δt1。在步骤1618,已达到触发状态的存储元件的计数被初始化为零值。在确定步骤1620,确定计数是否等于或大于N2。如果当前计数不等于或大于N2,则在步骤1524施加具有持续时间Δt1的编程脉宽。
在步骤1526,如所讨论地验证所选存储元件的状态。在步骤1627中,针对已被验证为达到触发状态的每个存储元件,将计数增加1。如所讨论地进行步骤1528、1530、1532和1534。在确定步骤1532,如果编程计数器PC小于PCmax,则执行步骤1536,其中VPGM被增加一个步长,并且编程计数器PC被递增一。
然后该过程循环回到步骤1620以确定当前计数是否等于或大于N2。如果当前计数不等于或大于N2,则设置第二编程脉宽Δt2<Δt1。因此,后续的编程脉冲将具有较短的持续时间Δt2。然后,如上所述地继续编程。在该情况下,通过跟踪阈值电压达到触发状态的存储元件来触发到较短持续时间编程脉冲的切换。要注意,在该示例中,触发状态是编码位的数据状态。还可以通过跟踪阈值电压达到与数据状态的验证水平不同的指定验证水平的存储元件来触发到较短持续时间编程脉冲的切换。这提供了更大的灵活性,但是导致额外的验证操作。使用与数据状态相关联的已有验证水平的方法可以是更有效的,这是因为它利用了已有的验证操作而无需额外的验证操作。
通过跟踪存储元件来触发到较短持续时间编程脉冲的切换,是适当的方法,该方法考虑了存储器设备中可能随着时间发生的各种性能改变。例如,随着存储器设备累积了更多的编程擦除周期,存储元件可以更快地编程,例如,利用更少的编程脉冲。而且,不同的存储器设备,或存储器阵列中的存储元件的不同块可以按不同速度编程。一种适当的切换自动地考虑这样的变化。
在本文描述的技术的一个实施例中,用于对非易失性存储器进行操作的方法包括在编程操作中将第一系列编程脉冲施加至一组字线中的所选字线。
在另一实施例中,非易失性存储系统包括一组存储元件、与该组存储元件连通的一组字线、以及与该组字线连通的一个或多个控制电路。所述一个或多个控制电路:(a)在编程操作中将第一系列编程脉冲施加至该组字线中的所选字线,其中所选字线与至少一个所选存储元件和该组存储元件的至少一个未选存储元件连通;(b)确定是否满足切换标准,其中切换标准依赖于温度;以及(c),如果满足切换标准,则从在编程操作中将第一系列编程脉冲施加至所选字线切换到在编程操作中将第二系列编程脉冲施加至所选字线,其中第二系列中的至少一个编程脉冲比第一系列中的至少一个编程脉冲具有更短持续时间。
在另一个实施例中,用于对非易失性存储器进行操作的方法包括:在编程操作中将第一系列编程脉冲施加至一组字线中的所选字线,其中该组字线在该组字线的源极侧和该组字线的漏极侧之间延伸,并且与一组存储元件连通,并且所选字线与该组存储元件的至少一个所选存储元件和至少一个未选存储元件连通。该方法还包括确定是否满足切换标准,其中切换标准依赖于所选字线在该组字线中的位置。如果满足切换做标准,该方法还包括从在编程操作中将第一系列编程脉冲施加至所选字线切换至在编程操作中将第二系列编程脉冲施加至所选字线,其中第二系列中的至少一个编程脉冲比第一系列中的至少一个编程脉冲具有更短的持续时间。
在另一实施例中,非易失性存储系统包括一组NAND串,该组NAND包括所选NAND串和未选的NAND串,其中每个NAND串具有存储元件,并且该组NAND串与一组字线连通,该组字线在该组字线的源极侧与该组字线的漏极侧之间延伸。此外,一个或多个控制电路与该组字线连通。所述一个或多个控制电路执行编程操作,在编程操作中,该组存储元件中的不同子组的存储元件被编程为四个或更多个状态中的各个不同状态,并且在编程操作期间,所述一个或多个控制电路:(a)施加第一系列编程脉冲至该组字线中的所选字线;(b)确定是否满足切换标准,其中切换标准依赖于完成编程到四个或更多个状态中的一个状态的存储元件的部分,并且基于温度来选择所述一个状态;以及(b)如果满足切换标准,则从将第一系列编程脉冲施加至所选字线切换到将第二系列编程脉冲施加至所选字线,其中第二系列中的至少一个编程脉冲比第一系列中的至少一个编程脉冲具有更短的持续时间。
在本文中提供了相应方法、系统、以及用于执行这些方法的计算机可读或处理器可读的存储设备。
为了示例和描述的目的而给出前述详细描述。并不意在穷尽或限制于所披露的精确形式。按照上述教导,许多修改和变形都是可能的。选择所描述的实施例是为了最好地解释本技术的原理及其实际应用,从而使得本领域技术人员能够按照各种各样的实施例和各种各样的修改例来利用本技术,只要适合于设想的特定用途。意在用所附权利要求来限制本技术的范围。
权利要求书(按照条约第19条的修改)
1.一种用于对非易失性存储器进行操作的方法,包括:
在编程操作中将第一系列编程脉冲(1301)施加至一组字线(WL0-WL63)中的所选择的字线(WLn),所述一组字线与一组存储元件(700,710)连通,并且所述所选择的字线与所述一组存储元件中的至少一个所选择的存储元件和至少一个未被选择的存储元件连通;
确定是否满足切换标准(1520),所述切换标准依赖于温度;以及
如果满足所述切换标准,则从在所述编程操作中将所述第一系列编程脉冲施加至所选择的字线切换到在所述编程操作中将所述第二系列编程脉冲(1302)施加至所选择的字线,所述第二系列中的至少一个编程脉冲比在所述第一系列中的至少一个编程脉冲具有更短的持续时间(Δt2),在所述编程操作的中途发生所述切换。
2.根据权利要求1所述的方法,其中:
当所述温度相对较高时,在所述编程操作中相对较早地施加所述第二系列编程脉冲,而当所述温度相对较低时,在所述编程操作中相对较晚地施加所述第二系列编程脉冲。
3.根据权利要求1或2所述的方法,其中:
如果所述温度足够低(T2),则不满足所述切换标准,在该情况下,不从施加所述第一系列编程脉冲切换到施加所述第二系列编程脉冲,施加所述第一系列编程脉冲直至完成所述编程操作,并且所述第一系列中的每个编程脉冲具有相同的持续时间。
4.根据权利要求1至3中任一项所述的方法,其中:
所述第一系列中的每个编程脉冲具有第一持续时间(Δt1),而所述第二系列中的每个编程脉冲具有第二持续时间(Δt2),所述第二持续时间短于所述第一持续时间。
5.根据权利要求1至4中任一项所述的方法,其中:
所述第二持续时间是所述第一持续时间的三分之一至二分之一。
6.根据权利要求1至5中任一项所述的方法,其中:
确定是否满足所述切换标准包括:确定是否所述一组存储元件中的一个子组的存储元件完成了到四个或更多个状态中的一个状态的编程,所述一个状态是基于所述温度的。
7.根据权利要求6所述的方法,其中:
当所述温度相对较高时,所述一个状态是相对较低的状态,而当所述温度相对较低时,所述一个状态是相对较高的状态。
8.根据权利要求6所述的方法,其中:
从最低到最高存在四个数据状态E、A、B和C,当所述温度在T2与T3之间时,所述一个状态是状态B,而当所述温度在T1与T2之间时,所述一个状态是状态A,其中T1<T2<T3。
9.根据权利要求6所述的方法,其中:
从最低到最高存在八个数据状态E、A、B、C、D、E、F和G,当所述温度在T2与T3之间时,所述一个状态是状态D,而当所述温度在T1与T2之间时,所述一个状态是状态F,其中T1<T2<T3。
10.根据权利要求6所述的方法,其中:
确定是否满足所述切换标准包括:确定是否所述一组存储元件中的特定数量的存储元件完成了到四个或更多个状态中的一个特定状态的编程,所述特定数量是基于所述温度的。
11.一种非易失性存储系统,包括:
一组NAND串(700,710),所述一组NAND串包括所选择的NAND串和未被选择的NAND串,每个NAND串包括多个存储元件,所述一组NAND串与在所述一组字线(WL0-WL63)连通,所述一组字线在所述一组字线的源极侧和所述一组字线的漏极侧之间延伸;以及
一个或多个控制电路(510,550),所述一个或多个控制电路与所述一组字线连通,所述一个或多个控制电路执行编程操作,在所述编程操作中,所述一组存储元件中的不同子组的存储元件被编程为四个或更多个状态的不同相应状态,并且在所述编程操作期间,所述一个或多个控制电路:(a)将第一系列编程脉冲(1301)施加至所述一组字线的所选择的字线,(b)确定是否满足切换标准,所述切换标准依赖于温度,以及(b)如果满足所述切换标准,则从将所述第一系列编程脉冲施加至所选择的字线切换为将第二系列编程脉冲(1302)施加至所选择的字线,所述第二系列中的至少一个编程脉冲比所述第一系列中的至少一个编程脉冲具有更短的持续时间,在所述编程操作的中途发生所述切换。
12.根据权利要求11所述的非易失性存储系统,其中:
当所述温度相对较高时,在所述编程操作中相对较早地施加所述第二系列编程脉冲,而当所述温度相对较低时,在所述编程操作中相对较晚地施加所述第二系列编程脉冲。
13.根据权利要求11或12所述的非易失性存储系统,其中:
所述第一系列中的每个编程脉冲具有第一持续时间(Δt1),而所述第二系列中的每个编程脉冲具有第二持续时间(Δt2),所述第二持续时间短于所述第一持续时间。
14.根据权利要求11至13中任一项所述的非易失性存储系统,其中:
为了确定是否满足所述切换标准,所述一个或多个控制电路确定是否所述一组存储元件中的一个子组的存储元件完成了到四个或更多个状态中的一个状态的编程,当所述温度高于阈值时,所述一个状态是所述四个或更多个状态中的一个特定编程状态,当所述温度低于所述阈值时,所述一个状态是所述四个或更多个状态中的另一个较高的特定编程状态。
15.根据权利要求14所述的非易失性存储系统,其中:
当所述温度高于阈值(T2)时,所述一个状态是所述四个或更多个状态中的最低编程状态(A),而当所述温度低于所述阈值时,所述一个状态是所述四个或更多个状态中的次低编程状态(B)。
Claims (15)
1.一种用于对非易失性存储器进行操作的方法,包括:
在编程操作中将第一系列编程脉冲(1301)施加至一组字线(WL0-WL63)中的所选择的字线(WLn),所述一组字线与一组存储元件(700,710)连通,并且所述所选择的字线与所述一组存储元件中的至少一个所选择的存储元件和至少一个未被选择的存储元件连通;
确定是否满足切换标准(1520),所述切换标准依赖于温度;以及
如果满足所述切换标准,则从在所述编程操作中将所述第一系列编程脉冲施加至所选择的字线切换到在所述编程操作中将第二系列编程脉冲(1302)施加至所选择的字线,所述第二系列中的至少一个编程脉冲比在所述第一系列中的至少一个编程脉冲具有更短的持续时间(Δt2)。
2.根据权利要求1所述的方法,其中:
当所述温度相对较高时,在所述编程操作中相对较早地施加所述第二系列编程脉冲,而当所述温度相对较低时,在所述编程操作中相对较晚地施加所述第二系列编程脉冲。
3.根据权利要求1或2所述的方法,其中:
如果所述温度足够低(T2),则不满足所述切换标准,在该情况下,不从施加所述第一系列编程脉冲切换到施加所述第二系列编程脉冲,施加所述第一系列编程脉冲直至完成所述编程操作,并且所述第一系列中的每个编程脉冲具有相同的持续时间。
4.根据权利要求1至3中任一项所述的方法,其中:
所述第一系列中的每个编程脉冲具有第一持续时间(Δt1),而所述第二系列中的每个编程脉冲具有第二持续时间(Δt2),所述第二持续时间短于所述第一持续时间。
5.根据权利要求1至4中任一项所述的方法,其中:
所述第二持续时间是所述第一持续时间的三分之一至二分之一。
6.根据权利要求1至5中任一项所述的方法,其中:
确定是否满足所述切换标准包括:确定是否所述一组存储元件中的一个子组的存储元件完成了到四个或更多个状态中的一个状态的编程,所述一个状态是基于所述温度的。
7.根据权利要求6所述的方法,其中:
当所述温度相对较高时,所述一个状态是相对较低的状态,而当所述温度相对较低时,所述一个状态是相对较高的状态。
8.根据权利要求6所述的方法,其中:
从最低到最高存在四个数据状态E、A、B和C,当所述温度在T2与T3之间时,所述一个状态是状态B,而当所述温度在T1与T2之间时,所述一个状态是状态A,其中T1<T2<T3。
9.根据权利要求6所述的方法,其中:
从最低到最高存在八个数据状态E、A、B、C、D、E、F和G,当所述温度在T2与T3之间时,所述一个状态是状态D,而当所述温度在T1与T2之间时,所述一个状态是状态F,其中T1<T2<T3。
10.根据权利要求6所述的方法,其中:
确定是否满足所述切换标准包括:确定是否所述一组存储元件中的特定数量的存储元件完成了到四个或更多个状态中的一个特定状态的编程,所述特定数量是基于所述温度的。
11.一种非易失性存储系统,包括:
一组NAND串(700,710),所述一组NAND串包括所选择的NAND串和未被选择的NAND串,每个NAND串包括多个存储元件,所述一组NAND串与一组字线(WL0-WL63)连通,所述一组字线在所述一组字线的源极侧和所述一组字线的漏极侧之间延伸;以及
一个或多个控制电路(510,550),所述一个或多个控制电路与所述一组字线连通,所述一个或多个控制电路执行编程操作,在所述编程操作中,所述一组存储元件中的不同子组的存储元件被编程为四个或更多个状态的不同相应状态,并且在所述编程操作期间,所述一个或多个控制电路:
(a)将第一系列编程脉冲(1301)施加至所述一组字线的所选择的字线,
(b)确定是否满足切换标准,所述切换标准依赖于温度,以及(b)如果满足所述切换标准,则从将所述第一系列编程脉冲施加至所选择的字线切换为将第二系列编程脉冲(1302)施加至所选择的字线,所述第二系列中的至少一个编程脉冲比所述第一系列中的至少一个编程脉冲具有更短的持续时间。
12.根据权利要求11所述的非易失性存储系统,其中:
当所述温度相对较高时,在所述编程操作中相对较早地施加所述第二系列编程脉冲,而当所述温度相对较低时,在所述编程操作中相对较晚地施加所述第二系列编程脉冲。
13.根据权利要求11或12所述的非易失性存储系统,其中:
所述第一系列中的每个编程脉冲具有第一持续时间(Δt1),而所述第二系列中的每个编程脉冲具有第二持续时间(Δt2),所述第二持续时间短于所述第一持续时间。
14.根据权利要求11至13中任一项所述的非易失性存储系统,其中:
为了确定是否满足所述切换标准,所述一个或多个控制电路确定是否所述一组存储元件中的一个子组的存储元件完成了到四个或更多个状态中的一个状态的编程,当所述温度高于阈值时,所述一个状态是所述四个或更多个状态中的一个特定编程状态,当所述温度低于所述阈值时,所述一个状态是所述四个或更多个状态中的另一个较高的特定编程状态。
15.根据权利要求14所述的非易失性存储系统,其中:
当所述温度高于阈值(T2)时,所述一个状态是所述四个或更多个状态中的最低编程状态(A),而当所述温度低于所述阈值时,所述一个状态是所述四个或更多个状态中的次低编程状态(B)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/488,967 US8045384B2 (en) | 2009-06-22 | 2009-06-22 | Reduced programming pulse width for enhanced channel boosting in non-volatile storage |
US12/488,967 | 2009-06-22 | ||
PCT/US2010/037839 WO2011005401A2 (en) | 2009-06-22 | 2010-06-08 | Reduced programming pulse width for enhanced channel boosting in non-volatile storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102576567A true CN102576567A (zh) | 2012-07-11 |
CN102576567B CN102576567B (zh) | 2015-09-16 |
Family
ID=42941993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080027748.0A Active CN102576567B (zh) | 2009-06-22 | 2010-06-08 | 用于非易失性存储器中的增强沟道升压的减小的编程脉宽 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8045384B2 (zh) |
EP (1) | EP2446441B8 (zh) |
JP (1) | JP2012531003A (zh) |
KR (1) | KR101662760B1 (zh) |
CN (1) | CN102576567B (zh) |
TW (1) | TW201112252A (zh) |
WO (1) | WO2011005401A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036811A (zh) * | 2013-03-06 | 2014-09-10 | 飞思卡尔半导体公司 | 基于温度的自适应擦除或编程并行性 |
CN110073441A (zh) * | 2016-12-13 | 2019-07-30 | 赛普拉斯半导体公司 | 使用位线和选择栅极电压调节的编程干扰抑制 |
CN110556149A (zh) * | 2018-05-31 | 2019-12-10 | 北京兆易创新科技股份有限公司 | 一种抗干扰的编程方法、装置、设备及存储介质 |
CN110729016A (zh) * | 2018-07-16 | 2020-01-24 | 爱思开海力士有限公司 | 存储器装置、存储器系统及操作该存储器装置的方法 |
CN111727477A (zh) * | 2020-05-06 | 2020-09-29 | 长江存储科技有限责任公司 | 3d nand闪存的控制方法和控制器 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8130556B2 (en) * | 2008-10-30 | 2012-03-06 | Sandisk Technologies Inc. | Pair bit line programming to improve boost voltage clamping |
WO2012021379A2 (en) * | 2010-08-10 | 2012-02-16 | Rambus Inc. | Verify before program resume for memory devices |
US8498162B2 (en) * | 2011-04-29 | 2013-07-30 | Spansion Llc | Method, apparatus, and manufacture for flash memory write algorithm for fast bits |
US8711617B2 (en) | 2011-06-03 | 2014-04-29 | Micron Technology, Inc. | Data modulation for groups of memory cells |
US8804430B2 (en) | 2012-03-26 | 2014-08-12 | Sandisk Technologies Inc. | Selected word line dependent select gate diffusion region voltage during programming |
US8804425B2 (en) | 2012-03-26 | 2014-08-12 | Sandisk Technologies Inc. | Selected word line dependent programming voltage |
US8638608B2 (en) | 2012-03-26 | 2014-01-28 | Sandisk Technologies Inc. | Selected word line dependent select gate voltage during program |
US8879330B1 (en) * | 2013-04-30 | 2014-11-04 | Freescale Semiconductor, Inc. | Non-volatile memory (NVM) with variable verify operations |
KR102256918B1 (ko) * | 2014-09-23 | 2021-05-27 | 에스케이하이닉스 주식회사 | 가변적 ispp 방식을 이용하여 프로그램을 수행하는 3차원 비휘발성 반도체 메모리 장치, 데이터 저장 장치 및 사용자 장치 |
US9437318B2 (en) * | 2014-10-24 | 2016-09-06 | Sandisk Technologies Llc | Adaptive program pulse duration based on temperature |
US9496040B2 (en) * | 2015-01-22 | 2016-11-15 | Sandisk Technologies Llc | Adaptive multi-page programming methods and apparatus for non-volatile memory |
KR102659596B1 (ko) * | 2016-08-26 | 2024-04-19 | 삼성전자주식회사 | 비휘발성 메모리 장치 |
CN109658968B (zh) * | 2017-10-12 | 2024-07-30 | 三星电子株式会社 | 非易失性存储器装置的操作方法 |
CN112041825A (zh) * | 2018-05-02 | 2020-12-04 | 株式会社半导体能源研究所 | 半导体装置 |
CN111951857B (zh) * | 2019-05-15 | 2023-06-09 | 兆易创新科技集团股份有限公司 | 一种非易失性存储器的编程方法及控制装置 |
US11145336B2 (en) * | 2019-10-30 | 2021-10-12 | Micron Technology, Inc. | Program pulse control using environmental parameters |
US11694751B2 (en) * | 2019-11-30 | 2023-07-04 | Semibrain Inc. | Logic compatible flash memory programming with a pulse width control scheme |
US11145373B1 (en) * | 2020-05-22 | 2021-10-12 | Macronix International Co., Ltd. | Method for programming flash memory device and flash memory system |
KR20210158223A (ko) | 2020-06-23 | 2021-12-30 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
US11967383B2 (en) | 2022-01-20 | 2024-04-23 | Western Digital Technologies, Inc. | Non-volatile memory with enhanced program operation for last state on slow plane |
US20230253048A1 (en) * | 2022-02-08 | 2023-08-10 | Sandisk Technologies Llc | Variable programming clocks during a multi-stage programming operation in a nand memory device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1139887A (ja) * | 1997-07-14 | 1999-02-12 | Sony Corp | 不揮発性半導体記憶装置 |
US20030151950A1 (en) * | 2002-02-14 | 2003-08-14 | Mitsubishi Denki Kabushiki Kaisha | Non-volatile semiconductor memory device |
US6661724B1 (en) * | 2002-06-13 | 2003-12-09 | Cypress Semiconductor Corporation | Method and system for programming a memory device |
US6882567B1 (en) * | 2002-12-06 | 2005-04-19 | Multi Level Memory Technology | Parallel programming of multiple-bit-per-cell memory cells on a continuous word line |
CN1697084A (zh) * | 2004-05-14 | 2005-11-16 | 海力士半导体有限公司 | 闪存装置及其驱动方法 |
WO2006124525A1 (en) * | 2005-05-12 | 2006-11-23 | Sandisk Corporation | Selective application of program inhibit schemes in non-volatile memory |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5608679A (en) * | 1994-06-02 | 1997-03-04 | Intel Corporation | Fast internal reference cell trimming for flash EEPROM memory |
JP3965287B2 (ja) * | 2001-10-09 | 2007-08-29 | シャープ株式会社 | 不揮発性半導体記憶装置およびその書き込み時間決定方法 |
US6560152B1 (en) | 2001-11-02 | 2003-05-06 | Sandisk Corporation | Non-volatile memory with temperature-compensated data read |
US6625054B2 (en) * | 2001-12-28 | 2003-09-23 | Intel Corporation | Method and apparatus to program a phase change memory |
US6801454B2 (en) | 2002-10-01 | 2004-10-05 | Sandisk Corporation | Voltage generation circuitry having temperature compensation |
JP4204369B2 (ja) * | 2003-03-31 | 2009-01-07 | シャープ株式会社 | 不揮発性半導体メモリ装置 |
KR100719368B1 (ko) * | 2005-06-27 | 2007-05-17 | 삼성전자주식회사 | 플래시 메모리 장치의 적응적 프로그램 방법 및 장치 |
US7468911B2 (en) * | 2006-11-02 | 2008-12-23 | Sandisk Corporation | Non-volatile memory using multiple boosting modes for reduced program disturb |
US7630249B2 (en) * | 2007-06-21 | 2009-12-08 | Sandisk Corporation | Intelligent control of program pulse duration |
US7817467B2 (en) * | 2007-09-07 | 2010-10-19 | Micron Technology, Inc. | Memory controller self-calibration for removing systemic influence |
-
2009
- 2009-06-22 US US12/488,967 patent/US8045384B2/en not_active Expired - Fee Related
-
2010
- 2010-05-10 TW TW099114826A patent/TW201112252A/zh unknown
- 2010-06-08 EP EP10726381.6A patent/EP2446441B8/en not_active Not-in-force
- 2010-06-08 KR KR1020117030000A patent/KR101662760B1/ko active IP Right Grant
- 2010-06-08 WO PCT/US2010/037839 patent/WO2011005401A2/en active Application Filing
- 2010-06-08 JP JP2012516129A patent/JP2012531003A/ja not_active Withdrawn
- 2010-06-08 CN CN201080027748.0A patent/CN102576567B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1139887A (ja) * | 1997-07-14 | 1999-02-12 | Sony Corp | 不揮発性半導体記憶装置 |
US20030151950A1 (en) * | 2002-02-14 | 2003-08-14 | Mitsubishi Denki Kabushiki Kaisha | Non-volatile semiconductor memory device |
US6661724B1 (en) * | 2002-06-13 | 2003-12-09 | Cypress Semiconductor Corporation | Method and system for programming a memory device |
US6882567B1 (en) * | 2002-12-06 | 2005-04-19 | Multi Level Memory Technology | Parallel programming of multiple-bit-per-cell memory cells on a continuous word line |
CN1697084A (zh) * | 2004-05-14 | 2005-11-16 | 海力士半导体有限公司 | 闪存装置及其驱动方法 |
WO2006124525A1 (en) * | 2005-05-12 | 2006-11-23 | Sandisk Corporation | Selective application of program inhibit schemes in non-volatile memory |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036811B (zh) * | 2013-03-06 | 2018-08-24 | 恩智浦美国有限公司 | 基于温度的自适应擦除或编程并行性 |
CN104036811A (zh) * | 2013-03-06 | 2014-09-10 | 飞思卡尔半导体公司 | 基于温度的自适应擦除或编程并行性 |
CN110073441A (zh) * | 2016-12-13 | 2019-07-30 | 赛普拉斯半导体公司 | 使用位线和选择栅极电压调节的编程干扰抑制 |
CN110073441B (zh) * | 2016-12-13 | 2020-06-26 | 赛普拉斯半导体公司 | 使用位线和选择栅极电压调节的编程干扰抑制 |
CN110556149A (zh) * | 2018-05-31 | 2019-12-10 | 北京兆易创新科技股份有限公司 | 一种抗干扰的编程方法、装置、设备及存储介质 |
CN110556149B (zh) * | 2018-05-31 | 2021-04-30 | 北京兆易创新科技股份有限公司 | 一种抗干扰的编程方法、装置、设备及存储介质 |
CN110729016B (zh) * | 2018-07-16 | 2023-06-02 | 爱思开海力士有限公司 | 存储器装置、存储器系统及操作该存储器装置的方法 |
CN110729016A (zh) * | 2018-07-16 | 2020-01-24 | 爱思开海力士有限公司 | 存储器装置、存储器系统及操作该存储器装置的方法 |
CN111727477A (zh) * | 2020-05-06 | 2020-09-29 | 长江存储科技有限责任公司 | 3d nand闪存的控制方法和控制器 |
US11250910B2 (en) | 2020-05-06 | 2022-02-15 | Yangtze Memory Technologies Co., Ltd. | Control method and controller of a programming process for 3D NAND flash |
WO2021223099A1 (en) * | 2020-05-06 | 2021-11-11 | Yangtze Memory Technologies Co., Ltd. | Control method and controller of 3d nand flash |
TWI813886B (zh) * | 2020-05-06 | 2023-09-01 | 大陸商長江存儲科技有限責任公司 | 3d nand快閃記憶體的控制方法和控制器 |
US11948641B2 (en) | 2020-05-06 | 2024-04-02 | Yangtze Memory Technologies Co., Ltd. | Control method and controller of 3D NAND flash |
Also Published As
Publication number | Publication date |
---|---|
US8045384B2 (en) | 2011-10-25 |
EP2446441B1 (en) | 2015-02-25 |
US20100322005A1 (en) | 2010-12-23 |
WO2011005401A2 (en) | 2011-01-13 |
KR20120065274A (ko) | 2012-06-20 |
EP2446441A2 (en) | 2012-05-02 |
KR101662760B1 (ko) | 2016-10-06 |
CN102576567B (zh) | 2015-09-16 |
EP2446441B8 (en) | 2015-05-27 |
JP2012531003A (ja) | 2012-12-06 |
TW201112252A (en) | 2011-04-01 |
WO2011005401A4 (en) | 2011-08-18 |
WO2011005401A3 (en) | 2011-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102576567B (zh) | 用于非易失性存储器中的增强沟道升压的减小的编程脉宽 | |
CN102549673B (zh) | 用较小通道电压干扰和浮栅极到控制栅极泄漏对存储器编程 | |
CN101366091B (zh) | 多状态非易失性存储器的编程方法 | |
CN102576568B (zh) | 通过检测自然阈值电压分布预告存储器中的编程干扰 | |
CN102667948B (zh) | 减小存储器沟道与浮置栅极耦合的数据状态相关沟道升压 | |
CN101405814B (zh) | 使用不同电压的用于非易失性存储装置的检验操作 | |
CN101405812B (zh) | 编程不同大小的容限及在选择状态下使用补偿进行感测以改进非易失性存储器中的读取操作 | |
CN101584004B (zh) | 使用早期源极侧升压减少非易失性存储装置中的编程干扰 | |
CN101589436B (zh) | 在非易失性存储器中使用多个升压模式减少程序干扰 | |
CN101351849B (zh) | 在非易失性存储器写入操作中的持续检验的方法及装置 | |
CN101627441B (zh) | 用于非易失性存储装置的电阻感测及补偿 | |
CN101361134B (zh) | 使用经修改的通过电压在减小的程序干扰下对非易失性存储器进行编程的方法和存储系统 | |
CN102203878B (zh) | 用于改进升压箝位的对位线编程 | |
CN102187399B (zh) | 使用字线耦合的用于存储器的多趟次编程 | |
CN101371315B (zh) | 对显示位线耦合的非易失性存储器进行受控编程的方法 | |
CN105190763A (zh) | 在编程期间降低非易失性存储装置的nand串选择栅极电压 | |
CN101627443B (zh) | 通过考虑相邻存储器单元的所存储状态来读取非易失性存储器单元 | |
CN102037516A (zh) | 用于增加非易失性存储器中的沟道升压的增强的位线预充电方案 | |
CN102906820A (zh) | 用同步耦合编程非易失性存储器 | |
CN102138181A (zh) | 用最小的额外时间损失来减少干扰的改进编程算法 | |
CN101584006A (zh) | 非易失性存储器中的经分割的软编程 | |
CN103814408A (zh) | 用于非易失性存储器的部分编程块的读取补偿 | |
CN102959634A (zh) | 用于减小存储器中的编程噪声的锯齿形多脉冲编程 | |
CN101595527A (zh) | 非易失性存储器的最高多级状态的较快编程 | |
CN101715596B (zh) | 使用沟道隔离切换的非易失性存储器的升压 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: American Texas Patentee after: DELPHI INT OPERATIONS LUX SRL Address before: American Texas Patentee before: Sandisk Technologies, Inc |