CN102099865B - 用于在闪存存储器中每信号电平编程多个编程值的方法和装置 - Google Patents
用于在闪存存储器中每信号电平编程多个编程值的方法和装置 Download PDFInfo
- Publication number
- CN102099865B CN102099865B CN200980128255.3A CN200980128255A CN102099865B CN 102099865 B CN102099865 B CN 102099865B CN 200980128255 A CN200980128255 A CN 200980128255A CN 102099865 B CN102099865 B CN 102099865B
- Authority
- CN
- China
- Prior art keywords
- programming
- unit
- value
- flash memory
- signal level
- 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.)
- Expired - Fee Related
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/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- 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
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
提供了用于在闪存存储器中每信号电平编程多个编程值的方法和装置。通过对于给定的信号电平对闪存存储器器件编程来对具有多个编程值的闪存存储器器件编程,其中编程步骤包括编程阶段和多个验证阶段。在另一变化方案中,对具有多个编程值的闪存存储器器件编程,并且编程步骤包括编程阶段和多个验证阶段,其中至少一个信号电平包括多个编程值。可以使用电压、电流和电阻中的一个或更多个来表示信号电平或编程值(或此两者)。
Description
相关申请的交叉引用
本发明要求在2008年7月22日提交的美国临时专利申请序列号No.61/135,732和在2008年9月30日提交的美国临时专利申请序列号No.61/194,751的优先权,通过引用将这些申请合并于此。
本申请涉及在2009年3月11日提交的题为“Methods andApparatus for Storing Data in a Multi-Level Cell Flash Memory Devicewith C ross-Page Sectors,Multi-Page Coding and Per-Page Coding”的国际专利申请序列号No.PCT/US09/36810以及均在2009年6月30日提交的题为“Methods and Apparatus for Read-Side Intercell InterferenceMitigation in Flash Memories”的国际专利申请序列号No.PCT/US09/49326;题为“Methods and Apparatus for Write-SideIntercell Interference Mitigation in Flash Memories”的国际专利申请序列号No.PCT/US09/49327;题为“Methods and Apparatus forInterfacing Between a Flash Memory Controller and a Flash MemoryArray”的国际专利申请序列号No.PCT/US09/49328;题为“Methodsand Apparatus for Intercell Interference Mitigation Using ModulationCoding”的国际专利申请序列号No.PCT/US09/49330;和题为“Methods and Apparatus for Soft Demapping and Intercell InterferenceMitigation in Flash Memories”的国际专利申请序列号No.PCT/US09/49333,通过引用将这些申请合并于此。
技术领域
本发明通常涉及闪存存储器器件,更具体地,涉及用于在这些闪存存储器器件中每个信号电平编程多个编程值的技术。
背景技术
诸如闪存存储器器件的许多存储器器件使用模拟存储器单元存储数据。每个存储器单元存储诸如电荷或电压的模拟值,其也被称为存储值。存储值表示单元中存储的信息。在闪存存储器器件中,例如,每个模拟存储器单元典型地存储某个电压。每个单元的可能的模拟值的范围典型地被划分成阈值区域,每个区域对应于一个或更多个数据位值。通过写入对应于所期望的一个或更多个位的标称模拟值,将数据写入模拟存储器单元。
单电平单元(SLC)闪存存储器器件例如每个存储器单元存储一个位(或者,两个可能的存储器状态)。另一方面,多电平单元(MLC)闪存存储器器件每个存储器单元存储两个或更多个位(即,每个单元具有四个或更多个可编程状态)。对于MLC闪存存储器器件的更详细的讨论,参见例如在2009年3月11日提交的题为“Methods andApparatus for Storing Data in a Multi-Level Cell Flash Memory Devicewith C ross-Page Sectors,Multi-Page Coding and Per-Page Coding”的国际专利申请序列号No.PCT/US09/36810,通过引用将其合并于此。
在多电平NAND闪存存储器器件中,例如,使用具有在被划分成多个区间的范围中的可编程阈值电压的浮栅器件,每个区间对应于不同的多位值。为了将给定多位值编程到存储器单元中,存储器单元中的浮栅器件的阈值电压被编程到对应于该值的阈值电压区间中。
存储器单元中存储的模拟值常常失真。这种失真典型地归因于例如,后向模式依赖(back pattern dependency)(BDP)、噪声和单元间干扰(ICI)。对于闪存存储器器件中的失真的更详细的讨论,参见例如,J.D.Lee等人的″Effects of Floating-Gate Interference on NANDFlash Memory Cell Operation,″IEEE Electron Device Letters,264-266(May 2002)或者Ki-Tae Park等人的″A Zeroing Cell-to-CellInterference Page Architecture With Temporary LSB Storing andParallel MSB Program Scheme for MLC NAND Flash Memories,″IEEEJ.of Solid State Circuits,Vol.43,No.4,919-928,(April 2008),通过引用将这些文献合并于此。
已提出或建议了许多技术用于减轻ICI以及这样的其他失真的影响。例如,Ki-Tae Park等人描述了现有的减轻ICI的编程技术,诸如偶数/奇数编程、自底至上编程和多级编程。尽管这些现有方法有助于减少ICI和其他失真的影响,但是随着晶体管尺寸的减小(例如,65nm以下的技术,在该情况中寄生电容因闪存单元紧密接近而变得大得多),它们变得不太有效。
题为“Methods and Apparatus for Write-Side Intercell InterferenceMitigation in Flash Memories”的国际专利申请序列号No.PCT/US09/49327公开了写入端单元间干扰减轻技术。通过获得将写入到闪存存储器中的至少一个目标单元以及将晚于目标单元编程的至少一个入侵单元的编程数据,对闪存存储器器件编程。计算经预补偿的编程值,其对目标单元上的单元间干扰进行预补偿。入侵单元包括与目标单元相邻的一个或更多个单元。仍需要用于将经预补偿的编程值或者与多个阈值电压关联的其他值写入闪存存储器阵列的改进的技术。
发明内容
一般地说,提供了用于在闪存存储器中每个信号电平编程多个编程值的方法和装置。根据本发明的一个方面,通过对于给定的信号电平对闪存存储器器件编程,来对具有多个编程值的闪存存储器器件编程,其中编程步骤包括编程阶段和多个验证阶段。可以重复编程步骤,直至对于给定信号电平的所有单元都被编程。此外,可以对于一个或更多个另外的信号电平重复该编程步骤。
根据本发明的另一方面,对具有多个编程值的闪存存储器器件编程,并且编程步骤包括编程阶段和多个验证阶段,其中至少一个信号电平包括多个编程值。可以重复编程步骤直至所有单元被编程。可以使用电压、电流和电阻中的一个或更多个来表示信号电平或编程值(或两者)。
每个编程值与多个不相交的组中的一个关联。在一个变化方案中,每个不相交的组与信号电平对应。在另一变化方案中,不相交的组中的至少两个包括不同数目的成员。在又一变化方案中,不相交的组的数目对应于闪存存储器器件中的信号电平的数目。
在一个示例性实现方案中,所述多个编程值包括对单元间干扰、后向模式依赖、编程扰动、读扰动和附加噪声中的一个或更多个进行预补偿。例如,所属多个编程值可以对应于对扰动(诸如来自至少一个入侵单元的单元间干扰)进行补偿的经预补偿的编程值。公开了用于以减小的复杂性对扰动进行补偿的许多可选的简化方案。
通过参照下面的详细描述和附图将获得对本发明以及本发明的另外的特征和优点的更全面的理解。
附图说明
图1是传统闪存存储器系统的示意性框图;
图2示出了关于图1的示例性多电平单元闪存存储器的示例性阈值电压分布;
图3示出了多电平单元(MLC)闪存存储器器件中的示例性闪存单元阵列的架构;
图4示出了关于图2的电压分配方案的示例性两级MLC编程方案;
图5A和5B共同示出了减少加在邻居单元上的ICI的替代的MLC编程方案;
图6更详细地示出了多电平单元(MLC)闪存存储器器件中的示例性闪存单元阵列;
图7示出了对于目标单元的因来自多个示例性入侵单元的寄生电容而存在的ICI;
图8是并入了基于控制器的ICI减轻技术的示例性闪存存储器系统的示意性框图;
图9是并入了基于存储器的ICI减轻技术的示例性闪存存储器系统的示意性框图;
图10是描述并入了本发明的特征的写入端ICI减轻处理的示例性实现方案的流程图;
图11是描述传统的ISPP(Incremental Step Pulse Programming,增量步进脉冲编程)处理的流程图;
图12是描述并入了本发明的特征的ISPP处理的流程图;以及
图13是描述并入了本发明的特征的替代的ISPP处理的流程图。
具体实施方式
本发明的多个方面涉及信号处理技术用于减轻存储器器件(诸如单电平单元或多电平单元(MLC)NAND闪存存储器器件)中的ICI的信号处理技术。如这里使用的,多电平单元闪存存储器包括其中每个存储器单元存储两个或更多个位的存储器。典型地,一个闪存单元中存储的多个位属于不同的页。对于本领域的普通技术人员将理解,尽管这里使用将模拟值存储为电压的存储器单元说明了本发明,但是本发明可以与闪存存储器的任何存储机制(诸如使用电压、电流或电阻来表示所存储的数据状态)一起使用。
图1是传统闪存存储器系统100的示意性框图。如图1中所示,示例性闪存存储器系统100包括闪存控制系统110和闪存存储器模块160。示例性闪存控制系统110包括闪存控制器120、编码器/解码器模块140、和一个或更多个缓存器145。在替代的实施例中,编码器/解码器模块140和一些缓存器145可以实现在闪存控制器120内部。例如,可以使用公知的商用技术和/或产品来实现编码器/解码器模块140和缓存器145。
示例性闪存存储器模块160包括存储器阵列170和一个或更多个缓存器180,它们均可以使用公知的商用技术和/或产品来实现。存储器阵列170可以被实施为单电平或多电平单元闪存存储器,诸如NAND闪存存储器、相变存储器(PCM)、MRAM存储器、NOR闪存存储器、或者另一非易失性闪存存储器。对于本领域的普通技术人员将理解,尽管主要在多电平单元NAND闪存存储器的背景下说明了本发明,但是本发明可以应用于单电平单元闪存存储器和其他非易失性存储器。
多电平单元闪存存储器
在多电平单元NAND闪存存储器中,典型地使用阈值检测器将与特定单元关联的电压值转译为预先定义的存储器状态。图2示出了关于图1的示例性多电平单元闪存存储器170的示例性阈值电压分布,其基于美国专利No.6,522,580的教导(通过引用将该专利合并于此)。通常,单元的阈值电压是需要施加到单元从而使单元传导特定量的电流的电压。阈值电压是单元中存储的数据的量度。
在图2中示出的示例性实施例中,在每个存储器单元中每个存储元件采用四个可能的数据状态来存储两位的数据。图2示出了四个峰210-213,每个峰对应于一个状态。在多电平单元闪存器件中,利用阈值电压分布曲线200的不同的峰210-213在单元中存储两个位。
阈值电压分布曲线200的峰210-213标有相应的二进制值。因此,当单元处于第一状态210时,其表示低位(也被称为最低有效位LSB)的“1”和高位(也被称为最高有效位MSB)的“1”。状态210通常是单元的初始的未编程或擦除的状态。类似地,当单元处于第二状态211时,其表示低位的“0”和高位的“1”。当单元处于第三状态212时,其表示低位的“0”和高位的“0”。最后,当单元处于第四状态213时,其表示低位的“1”和高位的“0”。
阈值电压分布210表示处于擦除状态(“11”数据状态)的阵列中的单元的阈值电压Vt的分布,具有低于0伏的负阈值电压电平。分别存储“10”和“00”用户数据的存储器单元的阈值电压分布211和212被示出为分别位于0和1伏之间和1和2伏之间。阈值电压分布213示出了已被编程为“01”数据状态的单元的分布,具有设定在2和4.5伏的读通电压(read pass voltage)之间的阈值电压电平。
因此,在图2的示例性实施例中,可以使用0伏、1伏和2伏作为每个电平或状态之间的电压电平阈值。闪存存储器160(例如,闪存存储器160中的感测电路)使用该电压电平阈值确定给定单元的电压电平或状态。闪存存储器160将基于测量的电压与电压电平阈值的比较结果将一个或更多个位分配给每个单元,其随后作为硬判决被传送到闪存控制系统110。另外或者替代地,在使用软信息的实现方案中,闪存存储器160可以向闪存控制系统110传送作为软信息的测量的电压或者测量的电压的量化版本,其中较之存储器单元中存储的位的数目,使用数目更多的位来表示测量的电压。
应当进一步注意,典型地使用公知的ISPP(增量步进脉冲编程)和编程/验证技术来对单元编程。对于ISPP和编程/验证技术的讨论,参见例如:美国专利申请公开No.2008/0084751;Ki-Tae Park等人的″AZeroing Cell-to-Cell Interference Page Architecture With TemporaryLSB Storing and Parallel MSB Program Scheme for MLC NAND FlashMemories,″IEEE J.of Solid State Circuits,Vol.43.No.4,919-928,(April2008);T.-S.Jung的″A 117-mm23.3-V only 128-Mb Multilevel NANDFlash Memory for Mass Storage Applications,″IEEE J.of Solid StateCircuits,vol.31,No.11,1575-1583.(November 1996);和K.-D.Suh等人的″A 3.3V 32Mb NAND Flash Memory with Incremental Step PulseProgramming Scheme.″IEEE J.of Solid State Circuits,vol.30,No.11,1149-1156,(November 1995),通过引用将这些文献合并于此。通常,在编程/验证周期中,闪存存储器160逐渐施加增加的电压以将电荷存储在单元晶体管中,直至超过最小目标阈值电压(在这里也被称为“编程电压”)。例如,当在图2的示例中编程“10”数据状态时,闪存存储器160可以逐渐施加增加的电压以将电荷存储在单元晶体管中,直至超过0.4V的最小目标阈值电压。
如下文将进一步讨论的,单个存储器单元中存储的两个位中的每一个来自不同的页。换言之,每个存储器单元中存储的两个位中的每个位承载不同的页地址。当输入低页(lower page)地址时,访问图2中示出的右侧位。当输入高页(upper page)地址时,访问左侧位。
图3示出了多电平单元(MLC)闪存存储器器件160中的示例性闪存单元阵列300的架构,其中每个示例性单元典型地对应于存储两个位的浮栅晶体管。在图3中,每个单元与两个位所属的两个页的两个编号关联。示例性单元阵列部分300示出了字线n至n+2和四条位线。示例性闪存存储器阵列300被分为偶数页和奇数页,其中例如具有偶数编号的单元(诸如具有编号0和2的单元)对应于偶数页,而具有奇数编号的单元(诸如具有编号1和3的单元)对应于奇数页。字线n例如在偶数位线中存储偶数页0和2,并且在奇数位线中存储奇数页1和3。
此外,图3指示出了示例性编程序列,其中按照指示出的顺序依次地(自底而上)选择偶数或奇数位线并且对其编程。编号指示出了对页编程的顺序。例如,页0在页1之前被编程。对于偶数和奇数页的编程的进一步的讨论,参见例如,K.-T.Park等人的″A Zeroing Cell-to-CellInterference Page Architecture with Temporary LSB Storing and ParallelMSB Program Scheme for MLC NAND Flash Memories,″IEEE Journalof Solid-State Circuits,Vol.43,No.4,919-928(April 2008),通过引用将其合并于此。
图4示出了关于图2的电压分配方案的示例性的两级MLC编程方案400。如图4中所示,在LSB编程阶段期间,如果LSB是零,则处于擦除状态410的所选择的单元的状态移动到最低编程状态411。因此,在LSB编程阶段,存储器单元被从擦除状态“11”编程到“10”。接着,在MSB编程阶段期间,取决于先前的LSB数据,依次形成两个状态,即状态“00”(412)和状态“01”(413)。通常,在MSB编程阶段期间,“10”状态被编程到“00”,而状态“11”被编程到“01”。
应当注意,图4的编程方案400示出了与从状态410到状态413的状态改变关联的最大电压偏移。已提出或建议了许多编程方案用于减少与状态改变关联的最大电压偏移,并且由此减少由电压偏移引起的ICI。
图5A和5B共同示出了减少加在邻居单元上的ICI的替代的MLC编程方案500。如图5A中所示,在LSB编程阶段期间,按与SLC编程相似的方式,将存储器单元从状态“11”编程到作为临时(或中间)状态的状态“x0”。在同一字线中的邻居单元也进行LSB编程之后,由于ICI,分布可能被扩宽,如图5A中的峰510所示。随后,在图5B中示出的MSB编程阶段中,“x0”状态被编程到作为与输入数据对应的最终状态的“00”和“10”,或者“11”状态被编程到最终的“01”状态。通常,除“11”单元之外的所有存储器单元在MSB编程阶段中从对于LSB数据的临时编程状态重新编程到它们的最终状态,从而可以极大地减小由邻居单元引起的ICI。处于最终状态的单元将不会遭受到其处于中间状态时经历的ICI,这是因为其已被重新编程到最终状态。处于最终状态的单元将仅遭受到由于处于最终状态而经历的ICI。如上文提到的,图5A和5B的多步(multi-step)编程序列使用中间编程状态来减少最大电压改变,并且因此减少了由这些电压改变引起的ICI。在图5B中可以看到,例如MSB编程阶段期间的最大电压偏移分别与从状态“11”到“01”和状态“x0”到状态“10”的转变关联。这些电压偏移明显小于图4中的从状态“11”到“01”的最大电压偏移。
图6更详细地示出了多电平单元(MLC)闪存存储器器件130中的示例性闪存单元阵列600。如图6中所示,闪存单元阵列600对于每个闪存单元ci存储三个位。图6示出了关于一个模块的闪存单元阵列架构,其中每个示例性单元典型地对应于存储三个位的浮栅晶体管。示例性单元阵列600由m条字线和n条位线组成。典型地,在当前的多页单元闪存存储器中,单个单元中的位属于不同的页。在图6的示例中,每个单元的三个位对应于三个不同的页,并且每条字线存储三个页。在下面的讨论中,页0、1和2被称为字线中的低页层级(page level)、中间页层级和高页层级。
如上文所指出的,闪存单元阵列可以被进一步分为偶数和奇数页,其中例如,具有偶数编号的单元(诸如图6中的单元2和4)对应于偶数页,而具有奇数编号的单元(诸如图6中的单元1和3)对应于奇数页。在该情况中,页(诸如页0)将包含偶数单元中的偶数页(偶数页0)和奇数单元中的奇数页(奇数页0)。
单元间干扰
如前面指出的,ICI是单元之间的寄生电容的结果,并且通常被视为最主要的失真源之一。图7示出了对于目标单元710的因来自多个示例性入侵单元720的寄生电容而存在的ICI。在图7中使用如下记号:
WL:字线
BL:位线
Blo:奇数位线;
BLe:偶数位线;以及
C:电容。
ICI由在目标单元710已经被编程之后进行编程的入侵单元720引起。ICI改变目标单元710的电压Vt。在示例性实施例中,采取“自底而上”编程方案,并且位线i和i+1中的相邻入侵单元引起了对于目标单元710的ICI。如图7中所示,通过模块的这种自底而上的编程,来自下面的字线i-1的ICI被移除,并且高达五个邻居单元作为入侵单元720对ICI有贡献。然而,应当注意,对于本领域的普通技术人员将理解,这里公开的技术可以被推广到来自其他字线(诸如字线i-1)的入侵单元也对ICI有贡献的情况。如果来自字线i-1、i和i+1的入侵单元对ICI有贡献,则需要考虑高达八个最近的邻居单元。更远离目标单元的其他单元可以忽略,如果它们对ICI的贡献可忽略的话。通常,通过分析编程序列方案(诸如自底而上或者偶数/奇数技术)以识别在给定的目标单元710之后进行编程的入侵单元720,如此来识别入侵单元720。
在示例性实施例中,入侵单元720引起的对目标单元710的ICI可以如下建模:
通常,Vt是表述单元上存储的数据的电压并且是在读操作期间获得的。Vt可以通过读操作获得,例如,作为具有比每单元存储的位数目更高的精度的软电压值,或者作为被量化到具有与每单元存储的位数目相同的分辨率(例如,对于3位/单元的闪存,为3位)的硬电压电平的值。
系统级考虑
图8是并入了基于控制器的ICI减轻技术的示例性闪存存储器系统800的示意性框图。如图8中所示,示例性闪存存储器系统800包括由接口850连接的闪存控制系统810和闪存存储器模块860。示例性闪存控制系统810包括典型地在一个或更多个集成电路上的闪存控制器820和读通道825。例如,可以使用公知的商用技术和/或产品,如在这里所修改的以支持本发明的特征和功能,来实现该示例性的闪存控制器820。
示例性读通道825包括信号处理单元830、编码器/解码器模块840、和一个或更多个缓存器845。应当注意,术语“读通道”也可以包括写通道。在替代的实施例中,编码器/解码器模块840和一些缓存器845可以实现在闪存控制器820内部。例如,可以使用公知的商用技术和/或产品,如在这里所修改的以提供本发明的特征和功能,来实现编码器/解码器模块840和缓存器845。
示例性信号处理单元830包括一个或多个处理器,其实现下文结合例如图10进一步讨论的一个或更多个ICI减轻处理835。此外,图8中示出的各模块之间的数据流也在下文结合例如图10进一步讨论。通常,如下文结合图10进一步讨论的,为了在写操作期间执行ICI减轻,一个或更多个ICI减轻处理835基于对于目标单元和入侵单元的编程数据生成要存储在存储器阵列870中的经预补偿的编程值。
示例性闪存存储器模块860包括存储器阵列870、一个或更多个缓存器880、和存储器控制电路895。缓存器880每一均可以使用公知的商用技术和/或产品来实现。示例性存储器控制电路895进一步包括一个或更多个ISPP(增量步进脉冲编程)功能898,其如下文结合图11至13进一步讨论的,将计算的经预补偿的编程值写入存储器阵列870。此外,对于本领域的普通技术人员将理解,存储器控制电路895还可以包括读功能(例如,感测放大器)、偶数/奇数位线选择功能、和用于编程的高速缓存/缓存器存储。对于传统的增量步进脉冲编程技术的讨论,参见例如,美国专利申请公开No.2008/0084751;Ki-Tae Park等人的″A Zeroing Cell-to-Cell Interference Page Architecture WithTemporary LSB Storing and Parallel MSB Program Scheme for MLCNAND Flash Memories,″IEEE J.of Solid State Circuits,Vol.43.No.4,919-928,(April 2008);T.-S.Jung的″A 117-mm2 3.3-V only 128-MbMultilevel NAND Flash Memory for Mass Storage Applications,″IEEE J.of Solid State Circuits,vol.31,No.11,1575-1583.(November 1996);和K.-D.Suh等人的″A 3.3V 32Mb NAND Flash Memory withIncremental Step Pulse Programming Scheme.″IEEE J.of Solid StateCircuits,vol.30,No.11,1149-1156,(November 1995),通过引用将这些文献合并于此。对于本领域的普通技术人员将理解,尽管本发明主要是在ICI减轻的背景下进行说明的,但是本发明可以应用于减轻任何扰动。
在所公开的ICI减轻技术的各种实施例中,相对于传统的闪存存储器系统,示例性接口850可能需要传送另外的信息,诸如表示与入侵单元关联的信息的值。因此,较之传统的闪存存储器系统中的接口,接口850可能需要具有更高的容量(例如,更多的输入或输出引脚)或更快的速率。接口850可以可选地例如根据在2009年6月30日提交的题为“Methods and Apparatus for Interfacing Between a Flash MemoryController and a Flash Memory Array”的国际专利申请序列号No.PCT/US09/49328(Attorney Docket No.08-0769)(通过引用将该申请合并于此)的教导来实现,其使用例如双数据速率(DDR)技术来增加接口850的信息承载容量。
在写操作期间,接口850典型地使用页或字线级访问技术来传送要存储在目标单元中的经预补偿的编程值。对于示例性页或字线级访问技术的更详细的讨论,参见例如,在2009年3月11日提交的题为“Methods and Apparatus for Storing Data in a Multi-Level Cell FlashMemory Device with Cross-Page Sectors,Multi-Page Coding and Per-Page Coding”的国际专利申请序列号No.PCT/US09/36810,通过引用将其合并于此。典型地,由于经预补偿的编程值的数量典型地大于原始编程值的数量,因此较之表示原始编程值,需要更多的位来表示经预补偿的编程值。因此,对于写入端ICI减轻,接口850需要传送比传统接口更多的数据。
在图8的实施例中,所公开的写入端ICI减轻技术是在闪存存储器外部实现的,典型地是通过对逻辑电路进行优化以实现最低面积的工艺技术实现的。然而,其代价是必须在接口850上传输另外的入侵单元数据。
图9是根据替代的实施例的并入了基于存储器的ICI减轻技术的示例性闪存存储器系统900的示意性框图。如图9中所示,示例性闪存存储器系统900包括通过接口950连接的闪存控制系统910和闪存存储器模块960。示例性闪存控制系统910包括典型地在一个或更多个集成电路上的闪存控制器920和可选的读通道925。示例性读通道925包括编码器/解码器模块940和一个或更多个缓存器945。在替代的实施例中,编码器/解码器模块940和一些缓存器945可以实现在闪存控制器920内部。例如,可以使用公知的商用技术和/或产品,如在这里所修改的以支持本发明的特征和功能,来实现示例性闪存控制器920。可以使用公知的商用技术和/或产品来实现编码器/解码器模块940和缓存器945。
示例性闪存存储器模块960包括存储器阵列970、一个或更多个缓存器980、信号处理单元985、和存储器控制电路995。缓存器980每一均可以使用公知的商用技术和/或产品来实现。示例性信号处理单元985包括一个或更多个处理器,其实现如下文结合例如图10进一步讨论的一个或更多个ICI减轻处理990。
此外,图9中示出的各模块之间的数据流也在下文结合例如图10进一步讨论。通常,如下文结合图10进一步讨论的,为了在写操作期间执行ICI减轻,一个或更多个ICI减轻处理990基于从闪存控制器910接收的关于目标单元和入侵单元的编程数据生成经预补偿的编程值。
示例性存储器控制电路995进一步包括一个或更多个ISPP功能998,其按照与图8相似的方式并且如下文结合图11至13进一步讨论的,将计算的经预补偿的编程值写入闪存存储器阵列970。另外,如本领域普通技术人员将理解的,存储器控制电路995也可以包括读功能(例如,感测放大器)、偶数/奇数位线选择功能、以及供编程用的高速缓存/缓存器,
在所公开的ICI减轻技术的各种实施例中,相对于于传统的闪存存储器系统,示例性接口950可能需要传送另外的信息,诸如表示与入侵单元关联的信息的值。因此,较之传统的闪存存储器系统中的接口,接口950可能需要具有更高的容量(例如,更多的输入或输出引脚)或更快的速率。接口950可以可选地例如根据在2009年6月30日提交的题为“Methods and Apparatus for Interfacing Between a Flash MemoryController and a Flash Memory Array”的国际专利申请序列号No.PCT/US09/49328(Attorney Docket No.08-0769)(通过引用将该申请合并于此)的教导来实现,其使用例如双数据速率(DDR)技术来增加接口950的信息承载容量。
在写操作期间,接口950传送要存储在目标和入侵单元中的编程数据,并且经预补偿的编程值是在闪存存储器960内部计算的。接口950将如传统的闪存存储器系统中的那样,传送例如对于具有目标单元的页的编程数据,以及另外的对于具有入侵单元的相邻字线或者偶数或奇数位线的编程数据。典型地,较之表示经预补偿的编程值,需要较少的位来表示该编程数据。因此,对于写入端ICI减轻,接口950将典型地需要比接口850小的带宽。然而,其代价是使用用于制造闪存存储器的存储器工艺技术(其典型地对于存储器而非逻辑电路进行优化)来实现存储器内部的写入端ICI减轻处理。
应当注意,可以在闪存控制系统810、910和/或闪存存储器模块860、960中计算图8和9的ICI减轻技术的各种实施例中使用的电容耦合系数kx、ky和kxy。可能有必要在各个接口850、950上传送电容耦合系数kx、ky和kxy。应当注意,电容耦合系数可以是自适应的并且连续地、不定期地或者定期地更新。
如前面指出的,本发明的各种方面提供了用于减轻ICI的信号处理技术。除其他益处之外,用于减轻ICI的信号处理方法不受技术和物理约束的限制。通常,如后面所讨论的,利用将存储在入侵单元720中的编程电压的知识,可以在目标单元710的编程期间实现写入端ICI减轻。
写入端ICI减轻
图10是描述并入了本发明的特征的写入端ICI减轻处理1000的示例性实现方案的流程图。如上文结合图8和9讨论的,写入端ICI减轻处理1000将典型地由闪存控制系统810中的信号处理单元830或者闪存存储器960中的信号处理单元985实现。如图10中所示,在步骤1010中,写入端ICI减轻处理1000初始获得要写入到闪存存储器700中的一个或更多个目标单元710的编程数据。如前面指出的,在例如于2009年3月11日提交的题为“Methods and Apparatus for Storing Datain a Multi-Level Cell Flash Memory Device with Cross-Page Sectors,Multi-Page Coding and Per-Page Coding”的国际专利申请序列号No.PCT/US09/36810中,可以找到示例性的页或字线级访问技术的更详细的讨论,通过引用将该申请合并于此。
随后,在步骤1020中,对于目标单元710,写入端ICI减轻处理1000获得关于以后将进行编程的至少一个相邻单元720的一个或更多个位的编程数据。应当注意,在步骤1020中获得的入侵单元720可以与存储器700中的相邻页关联,并且写入端ICI减轻处理1000可能不得不等待直至对于入侵单元720的编程数据变得可用。对于目标单元和潜在的入侵单元的编程数据可以被存储在例如缓存器845或980中,直至对于入侵单元的所有值变得可用。这些缓存器可以存储例如具有目标单元的页,以及相邻字线或者相邻偶数或奇数位线中的x、y或xy方向上的相邻页,直至收集到足以执行ICI减轻的数据量。可以在缓存器中从在先的写处理获得用于潜在的入侵单元的编程数据。如前面指出的,通过分析编程序列方案(诸如,自底而上或者偶数/奇数技术)以识别在给定的目标单元710之后进行编程的入侵单元720,从而来识别入侵单元720。
在步骤1030中写入端ICI减轻处理1000对对于目标单元的ICI进行预补偿。通过下式获得对预期的ICI进行补偿的目标单元710的新的编程电压:
其中PVt是原始编程电压或者目标阈值电压;PVtc是ICI消除之后的新的编程电压或者目标阈值电压,而ΔVc是ICI消除项。
通常,基于入侵单元720的耦合系数和电压改变来计算式(2)的ICI减轻项。如前面指出的,在图7的示例性实施例中,入侵单元720包括同一字线和上面的相邻字线中的单元。可选地,如果下面的相邻字线中的入侵单元引起ICI,则也可以考虑它们。因此,减轻了因ICI引起的电压分布的偏移和扩宽。
ICI减轻项可以被计算如下:
其中(l)是电压电平l被编程到单元(w,b)中时的单元(w,b)的Vt电压的改变;l∈{1,2,..L}是电压电平(对于3位/单元,L=8);并且kx、ky和kxy是电容耦合系数。应当注意,不同的电压电平l可以被编程到不同的目标和入侵单元中。
ICI减轻简化方案
A.多步的页编程序列
如上文所讨论的,图5A和5B示出了示例性的多步的页编程序列。本发明的一个方面认识到,在将多步的页编程序列应用到MLC闪存器件600时,通过最终的高页的后续编程使在中间编程期间呈现的ICI偏移。通常,高(MSB)页的最终编程进行重新编程并且使最终编程的电压的分布收紧,并且因此消除施加到中间状态的ICI。因此,在本发明的一个实施例中,仅在对最终的最高页(MSB)编程时ICI被消除。可选地,可以对较低页的编程(即,中间状态)消除ICI,但是通常不需要实现良好的错误率性能。例如,对于图6的三个位/单元的闪存器件600,可以忽略低页和中间页的中间编程。
通常,对于写入端ICI减轻,需要例如相邻字线或位线中的入侵单元的编程电平l的知识。通常,在式(3)中存在L个不同的ΔVt(l)值。在图6的示例性MLC闪存存储器阵列600中,例如,在具有每单元三个位的MLC闪存存储器阵列600中,L等于8。然而,本发明的一个方面认识到,取决于所使用的编程算法,可以仅使用M个不同的ΔVt(l)来近似描述L个不同的ΔVt(l)值,其中M<L。对于图5B中示出的示例性编程方案,由于从“11”到“01”和从“x0”到“10”的转变近似具有相同的电压偏移,因此考虑M=3个不同的ΔVt(l)是足够的。更复杂的ICI减轻处理将考虑对于所有可能的“11”到“11”、“11”到“01”、“x0”到“00”、“x0”到“10”的转变的L=4个不同的ΔVt(l)值。在图7的实施例中,由于有五个相邻单元720引起ICI,因此式(2)和(3)中的不同的ΔVc值的数目是M5而非L5。因此当M<L时,显著地减少了需要计算的不同的ΔVc值的数目。
当对于图7中示出的示例性闪存存储器使用多步的页编程序列时,如下实现图10的基于控制器或者基于存储器的ICI减轻处理1000。页数据被临时存储在缓冲存储器845或980中,并且未被写入到闪存存储器器件870、970,直至对于上面的相邻字线的高页数据可用。如上文结合图10讨论的,各ICI减轻模块835或990基于这些数据位计算新的编程电压(经预补偿的编程值)。如果电源电压例如因电力中断或关机而下降到阈值电压以下,则缓冲存储器845或980中存储的数据可以被写入闪存存储器870、970(或者另一非易失性存储器)以防止数据丢失。
上述写入端侧ICI减轻不仅可以应用于最终状态,也可以应用于中间状态,例如在对3位/单元闪存中的中间页编程时。应当注意,多步的页编程考虑影响闪存存储器的读和写。一旦被编程到中间状态,则单元可以被不确定地保持在中间状态。
B.忽略X-Y方向上的电容耦合系数
如前面指出的,在示例性实施例中,式(3)考虑电容耦合系数kx、ky和kxy以解决图7中示出的示例性闪存存储器中的目标单元710和高达五个相邻入侵单元720之间的ICI。然而,本发明的另一方面认识到,kxy<<kx<ky。因此,在式(3)中可以忽略x-y方向上的电容耦合kxy并且ICI减轻项变为:
这样,不同的ΔVc值的数目减少到L3而非如式(3)给出的L5。通过仅考虑M<L个不同的电压偏移ΔVt(l),可以进一步减少不同的ΔVc值的数目。于是,需要计算的不同的ΔVc值的数目减少到M3。通常,在ICI减轻简化方案A和B中,不同的ΔVc值的数目由Mk给出,其中k是所考虑的入侵单元的数目,而M是所考虑的不同的电压偏移的数目。用于写入端减轻的式(3)可以如这里描述地简化。如根据式(2)明显的是,通过减少不同的ΔVc值的数目,还减少了经预补偿的编程值的数目。这有助于例如减少需要在接口850上传输的数据量,并且作为结果,通过仅考虑M<L个不同的电压偏移ΔVt(l),较之未减少不同的ΔVc值的数目的写入端减轻方案,可以减小接口850的容量(在引脚或传输速率方面)。
C.对偶数/奇数编程忽略X方向上的系数
如上文结合图3讨论的,示例性的偶数/奇数编程序列选择偶数或奇数位线单元,并且按照所指出的顺序(自底而上)依次编程。本发明的另一方面认识到,对于偶数或奇数页(例如,如果奇数页在偶数页之后进行编程,则对于奇数页),可以忽略x方向上的耦合。因此,对于奇数页,式(3)中的ICI减轻项简化为:
其中需要计算的不同的ΔVc值的数目减少到仅为M。一些具有奇数和偶数位线的并行编程的闪存架构允许忽略所有x耦合以及小的性能损失。通常,式(5)可以用于偶数和奇数页两者以减小硬件复杂性。用于写入端减轻的式(3)可以如这里所描述地简化。
改进的ISPP技术
根据本发明的一个方面,提供了用于对于一个电压电平或数据状态编程多个阈值电压的改进的ISPP技术。在下文结合图12讨论的一个示例性实施例中,所公开的ISPP处理1200使用编程阶段和多个验证阶段对闪存存储器器件的每个电压电平编程。在下文结合图13讨论的另一示例性实施例中,所公开的ISPP处理1300使用编程阶段和多个验证阶段对闪存存储器器件的所有电压电平编程,其中所述电压电平中的至少一个包括在被编程的多个编程电压或者目标阈值电压。
在其他应用中,所公开的ISPP技术可以用于对针对单元扰动计算的经预补偿的编程值编程,诸如示例性写入端ICI减轻处理。如上文结合式(2)讨论的,PVtc是ICI减轻之后的新的编程电压或目标阈值电压。因此,存储相同的数据或电压电平的同一字线中的单元之间的编程电压是不同的,因为这些编程电压取决于邻居单元中存储的数据。
这里描述的信号电平(如上文结合图2,也被称为数据状态)可以使用任意数目的示例性信号表示,诸如电压电平、电流水平或者电阻水平。在一个示例性实现方案中,每个存储元件使用四个可能的数据状态在每个存储器单元中存储两位的数据。每个可能的数据状态具有至少一个相应的编程值,诸如相应的编程电压(也被称为目标阈值电压)、编程电流、或者编程电阻。当使用所公开的ISPP技术对针对单元扰动计算的经预补偿的编程值编程时,例如,给定的数据状态或者信号电平可以具有多个相应的编程值。
图11是描述传统的ISPP处理1100的流程图。对于传统的增量步进脉冲编程技术的讨论,参见例如,美国专利申请公开No.2008/0084751;Ki-Tae Park等人的″A Zeroing Cell-to-Cell InterferencePage Architecture With Temporary LSB Storing and Parallel MSBProgram Scheme for MLC NAND Flash Memories,″IEEE J.of SolidState Circuits,Vol.43.No.4,919-928,(April 2008);T.-S.Jung的″A 117-mm2 3.3-V only 128-Mb Multilevel NAND Flash Memory for MassStorage Applications,″IEEE J.of Solid State Circuits,vol.31,No.11,1575-1583.(November 1996);和K.-D.Suh等人的″A 3.3V 32MbNAND Flash Memory with Incremental Step Pulse ProgrammingScheme.″IEEE J.of Solid State Circuits,vol.30,No.11,1149-1156,(November 1995),通过引用将这些文献合并于此。通常,传统的ISPP处理1100将同一编程电压编程到整个字线中的存储相同数据或者电压电平的所有单元,并且对于一个电压电平(例如,结合图2,也被称为数据状态)在整个字线中仅存在一个要实现的目标阈值电压。例如,对于每个单元存储两个位的多电平单元,存在四个电压电平或状态。
如图11中所示,在步骤1110中,传统的ISPP 1100初始加载页数据。在传统的编程处理中,仅加载具有目标单元的页(即,将被编程的页)。典型地,闪存存储器将按照增加电压电平的顺序逐渐地对单元编程。在最初时,选择被编程在当前电压电平或者更高的电压电平的所有单元。在步骤1120中,通过施加编程脉冲对所选择的单元编程。随后,在步骤1130中执行验证阶段以确定所选择的单元是否达到所期望的目标阈值电压。在步骤1130中,已达到或超越目标阈值电压的任何经验证的单元被取消选择。通常,验证阶段从闪存存储器器件读取一个或更多个读取值,并且将读取值与关于所期望的编程电压或目标阈值电压的阈值比较。
在步骤1140中执行测试以确定是否已对所有单元编程。如果在步骤1140中确定仍未对所有单元编程,则编程控制返回到步骤1120以使编程脉冲增加以进一步将剩余的单元编程到它们的目标阈值电压。然而,如果在步骤1140中确定所有单元均已被编程,则编程控制在步骤1160中结束。
本发明认识到,对于存储相同数据的页或字线中的单元,由于取决于相邻单元中存储的数据的不同的单元间干扰的影响,用于示例性ICI减轻技术的编程电压调整可能是不同的。如上文所讨论的,对于示例性写入端ICI减轻,通常需要例如相邻字线或位线中的入侵单元的编程电平l的知识。通常,对于k个入侵单元720中的每一个,在式(3)中存在L个不同的ΔVt(l)值。因此,对于每个电压电平存在N=Lk个可能的经预补偿的编程值。
在图6的示例性MLC闪存存储器阵列600中,例如,在具有每单元三个位的MLC闪存存储器阵列600中,L等于8。然而,本发明的一个实施例认识到,取决于所使用的编程算法,可以仅使用M个不同的ΔVt(l)来近似描述L个不同的ΔVt(l)值,其中M<L。于是,对于电压电平,仅需要计算N=Mk个经预补偿的编程值,并且仅需要应用N=Mk个验证阶段。因此,可以减少验证阶段的数目。减少验证阶段的数目具有减少编程时间的益处,这提高了写速度。在示例性实现方案中,假设仅有上面的相邻单元720引起目标单元710上的主要ICI耦合。因此,对于一个电压电平的可能的编程电压的数目限于M个电平(这可以被视为上述公开的ICI减轻技术的复杂度减小的版本),并且仅需要应用M个验证阶段。因此进一步进少了编程时间。如果给定的闪存存储器具有两个信号电平并且存在一个入侵单元720,则M等于2。同样地,如果给定的闪存存储器使用下文进一步讨论的多步的页编程序列,存在一个入侵单元720并且在MSB页的编程期间应用写入端ICI消除,则对于一个电压电平,M也等于2。应当注意,关于电压电平的经预补偿的编程电压的数目N不需要对于所有电压电平都是相同的,并且每个电压电平可以具有不同的数目N。
本发明的一个方面提供了下文结合图12讨论的改进的ISPP处理1200,其对于每个电压电平编程多个不同的编程电压。通常,当闪存存储器器件具有多个编程电压时,每个编程电压可以与多个不相交的组中的一个关联。在闪存存储器器件的编程期间,每个编程阶段包括多个验证阶段。用于给定的不相交的组的验证阶段的数目等于在该给定的不相交的组中的成员的数目。例如,每个不相交的组可以对应于不同的电压电平(例如,电压阈值)。每个不相交的组具有一定数目的成员,其可以不同于其他不相交的组。如前面指出的,对于本领域的普通技术人员将理解,本发明可以与闪存存储器的任何存储机制(诸如使用电压、电流或电阻表示所存储的数据)一起使用。
图12是描述并入了本发明的特征的ISPP处理1200的流程图。通常,所公开的ISPP处理1200在多个编程步骤中将多个电压电平编程到字线,其中对于至少一个电压电平的编程步骤包括编程阶段和多个验证阶段。因此,在至少一个编程阶段中,通过相应的多个验证阶段对编程的电压电平进行验证。通过该方式,对于存储相同数据的页中的单元,对于示例性ICI减轻技术的编程电压调整可以是不同的。
如图12中所示,所公开的ISPP处理1200在步骤1210中初始加载页数据,其包括用于目标和入侵单元的数据,如上文和题为“Methodsand Apparatus for Write-Side Intercell Interference Mitigation in FlashMemories”的国际专利申请序列号No.PCT/US09/49327中描述的那样,通过引用将该申请合并于此。例如,该页数据包含要被编程的当前页和另外的页(诸如包含入侵单元的相邻页)。基于加载的页数据中的位,在步骤1215中确定经预补偿的编程值,其将被写入闪存存储器器件中的单元。经预补偿的编程值是例如根据式(2)和(3)计算的。如上文指出的,闪存存储器典型地将按照增加电压电平的顺序逐渐地对单元编程。在最初时,选择被编程在当前电压电平或者更高的电平的所有单元。在步骤1220中利用经预补偿的编程值对所选择的单元编程。随后,在步骤1230-1到1230-N(被共同称为“步骤1230”)中执行多个(N个)验证阶段,以确定所选择的单元是否已达到所期望的编程或目标阈值电压。验证阶段的数目N等于对于当前电压电平的不同的可能的经预补偿的编程值的数目。在步骤1230中,已达到或超越目标阈值电压的任何经验证的单元被取消选择。例如,如上文所讨论的,对于每个电压电平的不同的可能的经预补偿的编程值的数目通常是N=Lk。在这里所描述的各种简化方案中,不同的可能的经预补偿的编程值的数目可以减少到N=Mk甚或N=M。
再次地,注意,对于电压电平的经预补偿的编程电压的数目N不需要对于所有电压电平都是相同的,但是每个电压电平可以具有不同的数目N(例如,存在至少两个如下的电压电平,对于该至少两个电压电平,相应的验证阶段的数目N是不同的)。
因此,在步骤1220中的每个编程阶段之后在步骤1230中应用N个验证阶段,以便对于页中的不同单元,实现对于一个电压电平的N个不同的编程电压或者目标电压阈值。例如,在这里描述的示例性实施例中,N等于2。因此,在步骤1220中的每个编程阶段之后在步骤1230中应用两个验证阶段,以确认对于每个电压电平的必要的两个不同的编程电压。在示例性实施例中,验证1确认第一目标电压阈值,而验证2确认第二目标电压阈值。验证1的目标电压阈值低于验证2的目标电压阈值。在验证2期间不需要验证那些需要被编程到第一目标电压的单元。另一方面,在验证1期间不需要验证那些需要被编程到第二目标电压的单元。在验证阶段期间已被确定为被充分编程的单元被取消选择,用于未来的编程阶段。
在步骤1240中执行测试以确定需要被编程在当前电压电平的所有单元是否已被编程。如果在步骤1240中确定并非所有的单元都已被编程,则编程控制返回到步骤1220以使编程脉冲增加以进一步将剩余的单元编程到它们的目标阈值电压。然而,如果在步骤1240中确定所有单元均已被编程,则编程控制前进至步骤1250。
在步骤1250中执行测试以确定是否存在另外的要编程的电压电平。如果在步骤1250中确定存在另外的要编程的电压电平,则编程控制返回到步骤1220以对下一电平编程。然而,如果在步骤1240中确定所有电平均已被编程,则编程控制在步骤1260中结束。
图13是描述并入了本发明的特征的ISPP处理1300的替代的实现方案的流程图。通常,所公开的ISPP处理1300在单次迭代中对闪存存储器器件的所有电压电平编程。如图13中所示,所公开的ISPP处理1300在步骤1310中初始加载页数据,其包括对于目标和入侵单元的数据,如上文和题为“Methods and Apparatus for Write-Side IntercellInterference Mitigation in Flash Memories”的国际专利申请序列号No.PCT/US09/49327中描述的那样,通过引用将该申请合并于此。基于加载的页数据中的位,在步骤1315中确定经预补偿的编程值,其将被写入到闪存存储器器件中的单元。经预补偿的编程值是根据式(2)和(3)计算的。在步骤1320中利用对于所有电平的经预补偿的编程值对所选择的单元编程。随后,在步骤1330-1到1330-N(被共同称为“步骤1330”)中执行多个(N个)验证阶段,以确定所选择的单元是否已达到目标阈值电压。N等于要被编程的经预补偿的编程值的总数。在步骤1330中已达到或超越所期望的目标阈值或编程电压的任何经验证的单元被取消选择,从而它们不会被进一步编程。应当注意,由于至少一个电压电平或数据状态具有多个编程电压,因此在步骤1330中进行验证的验证阶段的数目N超过电压电平或数据状态的数目。这些编程电压是例如用于减轻单元间干扰或者其他扰动机制的影响的经预补偿的编程值。在这里描述的各种示例性写入端ICI消除技术中,例如,由于存在L个电平,因此N可以等于LxLk、LxMk或者LxM,并且对于每个电平,计算Lk、Mk或者M个经预补偿的编程值。如果我们考虑擦除状态典型地未在被编程,则N等于例如(L-1)x Mk或者(L-1)x M。应当注意,L可以表示例如如图5B中所示的最终状态已被编程之后的电平的数目,其中L等于4,或者可以表示多步编程序列中的如图5A中所示的中间电平的数目(其中L=2)。
因此,在步骤1320中的每个编程阶段之后在步骤1330中应用N个验证阶段,以实现N个不同的编程电压或目标电压阈值,其中N超过与页关联的电压电平或数据状态的数目(由于擦除状态典型地未在被编程,因此未计入擦除状态)。例如,在将所公开的技术应用于结合图5A和5B描述的示例性的两位/单元的闪存存储器的LSB页的编程时,根据本发明N大于1,而在传统编程方法中,由于仅需要对与状态“x0”关联的一个目标阈值电压进行编程和验证,因此N等于1。在将所公开的技术应用于结合图5A和5B描述的示例性的2位/单元的闪存存储器的MSB页的编程时,根据本发明N大于3,而在传统传统编程方法中,由于仅需要对与状态“01”、“00”和“10”关联的三个目标阈值电压进行编程和验证,因此N等于3。在步骤1340中执行测试以确定是否所有单元均已被编程(即,已达到期望的目标阈值电压)。如果在步骤1340中确定并非所有的单元都已被编程,则编程控制返回盗步骤1320以使编程脉冲增加,以进一步将剩余的单元编程到它们的期望的目标阈值电压。然而,如果在步骤1340中确定所有单元均已被编程,则编程控制在步骤1360中结束。
应当注意,当在如图5B中所示地对最终状态编程时或者当在如图5A所示地对中间状态编程时,可以使用所公开的使用多个验证阶段的编程技术。
处理过程、系统和产品的细节
尽管这里的多个流程图描述了示例性的步骤序列,但是序列可以变化这也是本发明的实施例。算法的各种置换被视为本发明的替代的实施例。尽管已经针对软件程序中的处理步骤描述了本发明的示例性实施例,但是如本领域的技术人员将理解的,各种功能可以在数字领域中实现为软件程序中的处理步骤,在硬件中通过电路元件或状态机实现,或者通过软件和硬件的组合实现。该软件可以用在例如数字信号处理器、专用集成电路、微控制器或者通用计算机中。该硬件和软件可以以在集成电路内实现的电路中实施。
因此,本发明的功能可以被实施为方法和用于实践这些方法的装置的形式。本发明的一个或更多个方面可以被实施为程序代码的形式,而不管该程序代码例如是存储在存储介质中、加载到机器中和/或由该机器执行、或者在某种传输介质上传送,其中当程序代码被加载到诸如计算机的机器中并且由该机器执行时,该机器变为用于实践本发明的装置。当在通用处理器上实现时,程序代码段与处理器组合以提供按与特定逻辑电路相似的方式操作的装置。本发明也可以实现在集成电路、数字信号处理器、微处理器和微控制器中的一个或更多个中。
如本领域中已知的,这里讨论的方法和装置可以作为产品分发,该产品自身包括具有在其上实施的计算机可读代码单元的计算机可读介质。该计算机可读程序代码单元可以结合计算机系统操作以执行用于执行这里讨论的方法的所有或一些步骤或者创建这里讨论的装置。该计算机可读介质可以是可记录介质(例如,软盘、硬盘、压缩盘、存储器卡、半导体器件、芯片、专用集成电路(ASIC)),或者可以是传输介质(例如,网络,包括光纤、万维网、线缆、或者使用时分多址、码分多址的无线信道或者其他射频信道)。可以使用能够存储适于与计算机系统一起使用的信息的任何已知的或开发的介质。计算机可读代码单元是用于允许计算机读取指令和数据的任何机制,诸如磁介质上的磁性变化或者压缩盘表面的高度变化。
这里描述的计算机系统和服务器每一均包含存储器,该存储器将配置关联的处理器来实现这里公开的方法、步骤和功能。存储器可以是分布式的或者本地的,并且处理器可以是分布式的或者单个的。存储器可以被实现为电、磁或光存储器,或者这些或其他类型的存储装置的任何组合。而且,术语“存储器”应被足够广泛地解释以涵盖能够被从关联的处理器访问的可寻址空间中的地址读取或者写入该地址的任何信息。通过该定义,网络上的信息仍在存储器范围内,这是因为关联的处理器可以从网络取回信息。
应当理解,这里示出和描述的实施例的变化方案仅是本发明的原理的说明,并且本领域的技术人员可以实现多种修改而不偏离本发明的范围和精神。
Claims (10)
1.一种用于对具有多个编程值的闪存存储器器件(100)编程的方法,特征在于:
对于给定的信号电平对所述闪存存储器器件编程;以及
对于所述给定的信号电平,通过从原始编程值减去消除项来计算多个编程值;
其中所述给定的信号电平对应于多个编程值,
其中所述编程步骤包括编程阶段和多个验证阶段,其中所述多个验证阶段中的至少两个对应于用于所述给定的信号电平的不同的编程值。
2.根据权利要求1所述的方法,其中所述验证阶段进一步包括如下步骤:从所述闪存存储器器件读取一个或更多个读取值,以及将所述一个或更多个读取值与对应于一个所述编程值的至少一个阈值相比较。
3.根据权利要求1所述的方法,其中每个所述编程值与多个组中的一个关联,以及其中每个所述组与信号电平对应。
4.根据权利要求1所述的方法,其中每个所述编程值与多个组中的一个关联,以及其中所述组的数目对应于所述闪存存储器器件中的信号电平的数目。
5.根据权利要求1所述的方法,进一步包括步骤:从所述验证阶段中的给定的一个验证阶段排除一个或更多个单元,如果与所述给定验证阶段关联的编程值未应用于被排除的所述一个或更多个单元的话。
6.根据权利要求1所述的方法,进一步包括步骤:从所述验证阶段中的另一个验证阶段排除一个或更多个单元,如果被排除的所述一个或更多个单元通过所述验证阶段中的一个验证阶段的话。
7.根据权利要求1所述的方法,其中所述多个编程值包括对单元间干扰、后向模式依赖、编程扰动、读取扰动和附加噪声中的一个或更多个进行预补偿的编程值。
8.根据权利要求1所述的方法,其中所述多个编程值对应于对扰动进行补偿的经预补偿的编程值,其中所述扰动包括来自至少一个入侵单元(720)的单元间干扰。
9.根据权利要求8所述的方法,其中所述编程值的数目对应于下列中的一个或多个:
Lk,其中L是不同的ΔVt(,)值的数目,ΔVt(,)是单元的Vt电压的改变,并且k是所考虑的入侵单元的数目;
Mk,其中k是所考虑的入侵单元的数目,并且M是所考虑的不同的电压偏移的数目;以及
M,其中M是所考虑的不同的电压偏移的数目。
10.一种用于对具有多个编程值的闪存存储器器件编程的系统,特征在于包括:
存储器;以及
至少一个处理器,其耦合到所述存储器,操作用于:
对于给定的信号电平对所述闪存存储器器件编程;以及
对于所述给定的信号电平,通过从原始编程值减去消除项来计算多个编程值;
其中所述给定的信号电平对应于多个编程值,
其中所述编程步骤包括编程阶段和多个验证阶段,其中所述多个验证阶段中的至少两个对应于用于所述给定的信号电平的不同编程值。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13573208P | 2008-07-22 | 2008-07-22 | |
US61/135,732 | 2008-07-22 | ||
US19475108P | 2008-09-30 | 2008-09-30 | |
US61/194,751 | 2008-09-30 | ||
PCT/US2009/051314 WO2010011692A1 (en) | 2008-07-22 | 2009-07-21 | Methods and apparatus for programming multiple program values per signal level in flash memories |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102099865A CN102099865A (zh) | 2011-06-15 |
CN102099865B true CN102099865B (zh) | 2014-05-28 |
Family
ID=40977876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980128255.3A Expired - Fee Related CN102099865B (zh) | 2008-07-22 | 2009-07-21 | 用于在闪存存储器中每信号电平编程多个编程值的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8634250B2 (zh) |
EP (1) | EP2311041A1 (zh) |
JP (1) | JP5496198B2 (zh) |
KR (1) | KR101662621B1 (zh) |
CN (1) | CN102099865B (zh) |
TW (1) | TWI501239B (zh) |
WO (1) | WO2010011692A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070106317A1 (en) | 2005-11-09 | 2007-05-10 | Shelton Frederick E Iv | Hydraulically and electrically actuated articulation joints for surgical instruments |
US8573465B2 (en) | 2008-02-14 | 2013-11-05 | Ethicon Endo-Surgery, Inc. | Robotically-controlled surgical end effector system with rotary actuated closure systems |
US7866527B2 (en) | 2008-02-14 | 2011-01-11 | Ethicon Endo-Surgery, Inc. | Surgical stapling apparatus with interlockable firing system |
EP2308058B1 (en) * | 2008-07-01 | 2016-01-27 | LSI Corporation | Methods and apparatus for read-side intercell interference mitigation in flash memories |
US9386983B2 (en) | 2008-09-23 | 2016-07-12 | Ethicon Endo-Surgery, Llc | Robotically-controlled motorized surgical instrument |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US9301753B2 (en) | 2010-09-30 | 2016-04-05 | Ethicon Endo-Surgery, Llc | Expandable tissue thickness compensator |
US8464137B2 (en) * | 2010-12-03 | 2013-06-11 | International Business Machines Corporation | Probabilistic multi-tier error correction in not-and (NAND) flash memory |
US8737130B2 (en) | 2012-02-29 | 2014-05-27 | Sandisk Technologies Inc. | System and method of determining a programming step size for a word line of a memory |
US9408606B2 (en) | 2012-06-28 | 2016-08-09 | Ethicon Endo-Surgery, Llc | Robotically powered surgical device with manually-actuatable reversing system |
KR102040904B1 (ko) * | 2012-11-05 | 2019-11-05 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
US10405857B2 (en) | 2013-04-16 | 2019-09-10 | Ethicon Llc | Powered linear surgical stapler |
US9147472B2 (en) * | 2013-08-19 | 2015-09-29 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device having stacked memory cell layers and a control circuit controlling write or read based on parameters according to a selected memory cell layer |
US9218851B2 (en) | 2013-10-24 | 2015-12-22 | Sandisk Technologies Inc. | Power drop protection for a data storage device |
US9798613B2 (en) | 2013-12-27 | 2017-10-24 | Toshiba Memory Corporation | Controller of nonvolatile semiconductor memory |
US9962161B2 (en) | 2014-02-12 | 2018-05-08 | Ethicon Llc | Deliverable surgical instrument |
US9943310B2 (en) | 2014-09-26 | 2018-04-17 | Ethicon Llc | Surgical stapling buttresses and adjunct materials |
US9987000B2 (en) | 2014-12-18 | 2018-06-05 | Ethicon Llc | Surgical instrument assembly comprising a flexible articulation system |
TWI656475B (zh) * | 2016-12-13 | 2019-04-11 | 慧榮科技股份有限公司 | 具資料儲存裝置的電子系統 |
TWI604373B (zh) | 2016-12-13 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US10770155B2 (en) * | 2018-10-11 | 2020-09-08 | International Business Machines Corporation | Determining a read apparent voltage infector page and infected page |
CN112017726A (zh) * | 2020-08-26 | 2020-12-01 | 上海华虹宏力半导体制造有限公司 | 闪存芯片的读干扰测试方法、装置及可读存储介质 |
TW202331726A (zh) * | 2022-01-21 | 2023-08-01 | 聯華電子股份有限公司 | 編程多階單元記憶體裝置之方法及相關多階單元記憶體裝置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1271553A2 (en) * | 2001-06-27 | 2003-01-02 | SanDisk Corporation | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory in multiple-data states |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6859397B2 (en) * | 2003-03-05 | 2005-02-22 | Sandisk Corporation | Source side self boosting technique for non-volatile memory |
JP4005000B2 (ja) * | 2003-07-04 | 2007-11-07 | 株式会社東芝 | 半導体記憶装置及びデータ書き込み方法。 |
US6996004B1 (en) * | 2003-11-04 | 2006-02-07 | Advanced Micro Devices, Inc. | Minimization of FG-FG coupling in flash memory |
US7002843B2 (en) * | 2004-01-27 | 2006-02-21 | Sandisk Corporation | Variable current sinking for coarse/fine programming of non-volatile memory |
JP4410188B2 (ja) | 2004-11-12 | 2010-02-03 | 株式会社東芝 | 半導体記憶装置のデータ書き込み方法 |
JP4734110B2 (ja) * | 2005-12-14 | 2011-07-27 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7400532B2 (en) | 2006-02-16 | 2008-07-15 | Micron Technology, Inc. | Programming method to reduce gate coupling interference for non-volatile memory |
JP4940300B2 (ja) * | 2006-07-20 | 2012-05-30 | サンディスク コーポレイション | プログラミング中における結合の補償 |
US7894269B2 (en) * | 2006-07-20 | 2011-02-22 | Sandisk Corporation | Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells |
JP4886434B2 (ja) * | 2006-09-04 | 2012-02-29 | 株式会社東芝 | 不揮発性半導体記憶装置 |
ITRM20070273A1 (it) | 2007-05-16 | 2008-11-17 | Micron Technology Inc | Lettura di celle di memoria non volatile a livello mutiplo. |
JP2009272016A (ja) * | 2008-05-09 | 2009-11-19 | Hitachi Ltd | フラッシュメモリシステム |
-
2009
- 2009-07-21 WO PCT/US2009/051314 patent/WO2010011692A1/en active Application Filing
- 2009-07-21 KR KR1020117001676A patent/KR101662621B1/ko active IP Right Grant
- 2009-07-21 CN CN200980128255.3A patent/CN102099865B/zh not_active Expired - Fee Related
- 2009-07-21 EP EP09790691A patent/EP2311041A1/en not_active Withdrawn
- 2009-07-21 JP JP2011520143A patent/JP5496198B2/ja not_active Expired - Fee Related
- 2009-07-21 US US13/001,295 patent/US8634250B2/en active Active
- 2009-07-22 TW TW098124756A patent/TWI501239B/zh active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1271553A2 (en) * | 2001-06-27 | 2003-01-02 | SanDisk Corporation | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory in multiple-data states |
Also Published As
Publication number | Publication date |
---|---|
TW201019323A (en) | 2010-05-16 |
JP5496198B2 (ja) | 2014-05-21 |
US20110141808A1 (en) | 2011-06-16 |
EP2311041A1 (en) | 2011-04-20 |
KR101662621B1 (ko) | 2016-10-05 |
TWI501239B (zh) | 2015-09-21 |
KR20110043614A (ko) | 2011-04-27 |
JP2011529241A (ja) | 2011-12-01 |
US8634250B2 (en) | 2014-01-21 |
WO2010011692A1 (en) | 2010-01-28 |
CN102099865A (zh) | 2011-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102099865B (zh) | 用于在闪存存储器中每信号电平编程多个编程值的方法和装置 | |
CN102132353B (zh) | 用于闪存存储器中读取端单元间干扰减轻的方法和装置 | |
CN102132349B (zh) | 用于在闪存存储器控制器和闪存存储器阵列之间接口的方法和设备 | |
EP3273443B1 (en) | A method of operating a memory | |
CN103843067B (zh) | 用于非易失性存储器的片上动态读取 | |
US8130552B2 (en) | Multi-pass programming for memory with reduced data storage requirement | |
EP2345038B1 (en) | Multi-pass programming for memory using word line coupling | |
CN102067237A (zh) | 闪存中的倒序页写入 | |
US20070297247A1 (en) | Method for programming non-volatile memory using variable amplitude programming pulses | |
CN101833996A (zh) | 非易失性存储设备及其读取方法 | |
CN109949848A (zh) | 存储器系统及存储器系统的操作方法 | |
US7606071B2 (en) | Compensating source voltage drop in non-volatile storage |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140528 Termination date: 20170721 |
|
CF01 | Termination of patent right due to non-payment of annual fee |