CN102651235B - 非易失性存储装置及其操作方法 - Google Patents
非易失性存储装置及其操作方法 Download PDFInfo
- Publication number
- CN102651235B CN102651235B CN201110141927.3A CN201110141927A CN102651235B CN 102651235 B CN102651235 B CN 102651235B CN 201110141927 A CN201110141927 A CN 201110141927A CN 102651235 B CN102651235 B CN 102651235B
- Authority
- CN
- China
- Prior art keywords
- programming
- voltage
- page region
- unit
- page
- 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.)
- Active
Links
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
- 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
- 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
- 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/10—Programming or data input circuits
Abstract
本发明公开了一种非易失性存储装置,包括:页区域,包括多个正常单元和多个辅助单元;检测单元,被配置为当页区域的编程目标单元中有至少一个单元被编程了高于参考电压的电压时输出合格信号;计数储存单元,被配置为在页区域的第一编程操作期间将计数储存在多个辅助单元中,其中所述计数表示直到从检测单元输出通过信号为止施加给至少一个单元的编程脉冲的总数;以及电压设置单元,被配置为基于储存在多个辅助单元中的计数来为页区域的第二编程操作设置编程起始电压。
Description
相关申请的交叉引用
本申请要求2011年2月28日提交的韩国专利申请No.10-2011-0017930的优先权,其全部内容通过引用合并在本文中。
技术领域
本发明的示例性实施例涉及一种半导体设计技术,更具体而言,涉及一种非易失性存储装置及其操作方法。
背景技术
非易失性存储装置因其是电编程和擦除的且不需要用于在恒定的时间间隔重新写入数据的刷新功能而被广泛应用。
非易失性存储器单元的编程和擦除操作是通过改变单元的阈值电压来执行的,其中阈值电压的改变是由于由施加给薄氧化物层的强电场而移动的电子所导致的。在非易失性存储器单元的编程操作中,执行验证操作以验证编程目标单元是否被编程了等于或高于验证电压的电压。在单电平单元(SLC)编程方法的情形中,只存在具有两种不同状态的单元,因而使用单个验证电压。另一方面,在多电平单元(MLC)编程方法中,一个页中存在具有若干状态的单元,因而使用多个验证电压。根据一个实例,在用2比特的多电平单元编程方法执行MSB编程操作的情况下,可以基于三个验证电压来执行验证操作。
根据增量步进脉冲编程(incremental step pulse program,ISPP)方法,可以在每次施加脉冲之后执行三次验证操作。此时,考虑到单元的编程速度,可以使用盲验证方法(blindverify method),盲验证方法不同时执行每个验证操作,而是仅执行验证操作中的一些。然而,随着非易失性存储装置的编程/擦除操作的次数增加,编程速度趋于增加。因此,考虑这种在编程速度上增加的编程方法是有用的。
图1是说明非易失性存储装置的现有多电平单元编程方法的图。
在LSB编程操作中,通过编程操作展现出两种不同的单元分布。更具体而言,把单元被编程了等于或高于验证电压LPV1的电压的单元分布称为第二状态,而把单元被编程了低于验证电压LPV1的电压的单元分布称为第一状态。
在执行LSB编程操作之后,执行MSB编程操作。由于MSB编程操作的缘故,展现出了具有不同阈值电压的四种单元分布(第三至第六状态)。此时,每种分布的验证电压是不同的。如果按照升序排列,验证电压包括第一验证电压MPV1、第二验证电压MPV2和第三验证电压MPV3。更具体而言,被编程了等于或高于第三验证电压MPV3的电压的状态被称为第六状态。被编程了低于第三验证电压MPV3且等于或高于第二验证电压MPV2的电压的状态被称为第五状态。被编程了低于第二验证电压MPV2且等于或高于第一验证电压MPV1的电压的状态被称为第四状态。被编程了低于第一验证电压MPV1的电压的状态被称为第三状态。这里,要编程到第四状态的单元被定义为第一验证目标单元,要编程到第五状态的单元被定义为第二验证目标单元。要编程到第六状态的单元被定义为第三验证目标单元。
在MSB编程操作中,要基于比LSB编程操作中的验证电压更多的验证电压来执行验证操作。
图2是说明非易失性存储装置的现有ISPP编程方法的概念的图。
根据ISPP编程方法,重复地施加编程脉冲,并在每次重复时执行验证操作。施加在每次重复时增加了步进电压Vstep的编程脉冲。
如图2所示,初始地施加编程起始电压Vstart,随后施加增加了步进电压Vstep的编程电压。每当施加编程脉冲时执行验证操作。因此,施加一次编程脉冲所花费的总时间等于脉冲施加时间tPULSE和验证时间tVFY之和。
同时,将在对已擦除的单元初始地施加编程起始电压Vstart之后的单元分布(即,单元的阈值分布)定义为固有分布ΔVthi。图2图示了固有分布跨度约为4V(伏特)。当利用编程起始电压、步进电压Vstep和第一验证电压PV1执行编程操作时,形成了这样的单元的分布:每个单元都具有比第一验证电压PV1高但比固有分布ΔVthi的最大电压值低的阈值电压。此时,已编程的单元在电压上的分布可以与步进电压Vstep的幅度(即,步进电压增量)相等。
根据一个实例,用于完成编程操作的脉冲施加次数Npgm由固有分布ΔVthi与步进电压Vstep的比值来确定。例如,当固有分布ΔVthi为4V且步进电压Vstep为1V时,要施加四次脉冲。
用于完成整个编程操作的时间tPROG等于脉冲施加次数Npgm与施加一次编程脉冲的时间(tPULSE+tVFY)的乘积。
根据ISPP编程的特性,脉冲施加次数Npgm随着步进电压Vstep的增加而减少。因此,用于完成整个编程操作所花费的时间tPROG减少。然而,由于已编程的单元在电压上的分布等于步进电压Vstep,因此整体分布可能被加宽。
图3是说明在现有的ISPP编程方法中阈值电压根据编程脉冲的施加而发生偏移的图。
根据一个实例,编程起始电压Vstart为16V,步进电压Vstep为1V,且固有分布ΔVthi为4V。要编程的目标电压为1至2V,且验证电压为1V。
在初始施加编程脉冲时,编程电压Vpgm为16V。在初始施加编程脉冲之后,根据固有分布ΔVthi确定了单元的阈值电压。对于在初始施加编程脉冲之后被编程了1V或更高的电压的单元而言,储存在页缓冲器中的数据改变,因而不施加下一个编程脉冲。
在第二次施加编程脉冲时,低于1V的单元阈值电压由于编程脉冲的施加而进一步增加。具体而言,低于1V的单元阈值电压可以被增加1V。可以看出的是,在初始施加编程脉冲之后的单元分布整体上增加了1V。然而,如上所述,由于在初始施加编程脉冲时,编程脉冲不会被施加给已编程为1V或更高的电压的单元,因此,相应单元的阈值电压没有进一步的变化。
此外,在第三次施加编程脉冲和第四次施加编程脉冲时,阈值电压都增加1V。这里,如上所述,在编程完成状态下的阈值电压的分布与步进电压的幅度相同。
图4是说明在现有的ISPP编程方法中根据不同的编程起始电压的值出现的分布变化的图。
取决于编程起始电压Vstart是16V还是17V(固有分布ΔVthi为4V且步进电压为1V),编程操作完成时的阈值电压的分布是不同的。更具体而言,随着编程起始电压Vstart变高,最大阈值电压进一步增大。根据一个实例,当编程起始电压Vstart为16V时,最大阈值电压为2V。当编程起始电压Vstart为17V时,最大阈值电压为3V。在这种情况下,尽管在编程完成状态下的最大阈值电压是不同的,但是这两种情况下的阈值电压的分布都等于1V。如上所述,这是因为阈值电压的分布是由步进电压Vstep确定的。
如此,编程完成状态根据编程起始电压Vstart的变化是不同的。然而,在上述两种情况下,编程脉冲施加计数次数以及用于执行编程操作的时间是相同的。鉴于这些特性,当要在具有若干个阈值电压分布状态的MLC编程操作中执行编程操作时,可以共用一个编程起始电压。更具体而言,当基于具有最低目标编程电压的单元来设置编程起始电压时,可以防止过度编程。
根据一个实例,在目标阈值电压为1至2V的情况下,如果编程起始电压被设置为17V,则单元因初始施加编程脉冲而具有2至3V的阈值电压,如图4所示。这种单元被认为已经被过度编程。因此,当执行编程操作时,编程起始电压被设置为16V。
图5是说明非易失性存储装置的编程速度根据编程/擦除操作的次数而变化的图。
在使用非易失性存储装置时,编程操作和擦除操作可以被重复若干次。编程操作是按页来执行的,擦除操作是按块来执行的。随着编程/擦除循环次数的增加,非易失性存储装置的编程速度倾向于变得更快。更具体而言,随着编程/擦除操作次数的增加,更多的电荷倾向于被俘获在非易失性存储装置的浮栅中。因此,相比于现有的单元,编程速度增加。此时,编程速度可以被定义为阈值电压关于单次(即,初始的)施加编程脉冲的变化。
因此,除了要考虑作为决定ISPP的编程脉冲施加计数次数Npgm的因素的固有分布ΔVthi之外,还要另外考虑根据编程/擦除操作次数的增加而出现的变化。这种变化随着编程/擦除循环次数的增加而增大。
如果根据这些特性设置编程起始电压,则要将编程起始电压设置为比在已执行过的编程/擦除操作的次数为最少的情况下的更低。更具体而言,鉴于编程速度根据编程/擦除循环次数的增加而发生改变,在非易失性存储装置的初次操作时施加低的编程起始电压。这种配置具有的效果是,实际上施加伪(dummy)编程脉冲,直到从初次操作开始达到特定的编程/擦除循环次数为止。因此,执行编程操作的时间增加。
图6是说明非易失性存储装置的现有的盲验证方法的图。
盲验证方法可以应用于MLC编程方法。图6所示的验证方法的具体实例是用于2比特多电平单元编程操作的验证方法。此验证操作是基于三种验证电压PV1、PV2和PV3来执行的。由于基于三种验证电压来执行验证操作,因此在初始施加编程脉冲之后要执行三次验证操作。
然而,如上所述,由于基于最低阈值电压来设置编程起始电压,因此在初次施加编程脉冲时没有单元被编程了第二验证电压PV2和第三验证电压PV3、或更高的电压。更具体而言,在施加编程脉冲达一定程度之后,单元才会被编程为第二验证电压PV2和第三验证电压PV3或更高的电压。因此,为了减少用于执行验证操作的时间,在最初的若干个周期期间的脉冲之后仅执行基于第一验证电压PV1的验证操作。由于跳过了一些验证操作,因此上述验证方法称为盲验证方法。在盲验证方法中,当考虑到根据编程/擦除验证循环次数而在编程速度上发生的变化来应用编程脉冲施加方法时,可能出现以下特征。
图7是说明现有的编程/验证方法的与非易失性存储装置的MSB编程相关的概念的图。
根据第一编程/验证方法,在初次施加编程脉冲之后仅执行基于第一验证电压MPV1的验证操作,如上面在盲验证方法中所描述的。原则上,要执行基于第二验证电压MPV2和第三验证电压MPV3的验证操作。然而,根据上述的盲验证方法,仅执行基于第一验证电压的验证操作。
在编程脉冲的施加和基于第一验证电压的验证操作被执行了三次之后,执行基于第一验证电压和第二验证电压的验证操作。另外,在基于第一验证电压和第二验证电压的验证操作被执行了三次之后,执行基于第三验证电压的验证操作。同时,可以预先设置基于第一验证电压的验证操作的次数以及基于第一验证电压和第二验证电压的验证操作的次数。
下面将描述第二编程/验证方法。第二编程/验证方法施加降低了的编程起始脉冲,以便补偿编程速度随编程/擦除循环次数的增加而增加的趋势。更具体而言,如图7所示,施加的是相比于第一编程/验证方法更低的编程起始脉冲。然而,这种补偿不能完全抵消根据编程/擦除循环次数而产生的所有特征。
更具体而言,由于编程/擦除循环次数大时编程速度快,因此即使在施加低的编程脉冲时阈值电压的变化也大。因此,即使在施加低的编程电压时也要执行验证操作。另外,在阈值电压轻微上升的时间点(A)之后,要执行基于第一验证电压和第二验证电压的验证操作。
然而,由于当编程/擦除循环次数小时编程速度慢,因此,由施加低的编程脉冲而导致的在起始阈值电压上的变化小。因此,当施加低的编程电压时,减少/避免了要执行验证操作的需要。此外,由于阈值电压的增加较小,因此,减少/避免了在编程脉冲增加到一定程度之后(即,在“A”之后)在执行基于第一验证电压的验证操作之后执行基于第二验证电压的验证操作的需要。
图8是说明非易失性存储装置的现有编程/验证操作的图。
参见图8,当系统地将上述盲验证方法应用于非易失性存储装置时,在编程/擦除循环次数少的初始操作中可能不必执行基于第二验证电压的验证操作和基于第一验证电压的验证操作。
为了防止这样的操作,例如,可以仅在检测到被编程了等于或高于第一验证电压的电压的单元时采用盲验证方法。
更具体而言,如所示的,交替地执行基于第一验证电压的第一验证操作和ISPP编程操作,直到检测到被编程了等于或高于第一验证电压的电压的单元为止。当检测到被编程了等于或高于第一验证电压的电压的单元时,储存所述直到检测为止所施加的编程脉冲施加计数次数,并且在对另一页区域进行编程时通过基于所储存的编程脉冲施加计数次数而调整编程起始电压来执行上述盲验证方法。
根据一个实例,非易失性存储装置可以在对第一页区域进行编程的同时对直到检测出被编程了等于或高于第一验证电压的电压的单元为止所施加的编程脉冲施加计数次数进行计数。从图8可以看出的是,施加给第一页区域的编程脉冲施加计数次数是4。因此,与第一页区域的编程起始电压和四倍的步进电压的总和相对应的电压被设置为第二页区域的编程起始电压。由于基于第一页区域的编程结果可变地设置了用于第二页区域的编程起始电压,因此可以减少施加伪编程脉冲的时间。更具体而言,如在图8的情形中,可以将在对第二页区域进行编程操作期间用于施加四次伪编程脉冲和执行验证操作的时间减少。
同时,在非易失性存储装置中,包括在控制器中的锁存器用来储存直到检测到被编程了等于或高于第一验证电压的电压的单元为止所施加的编程脉冲施加计数次数。
非易失性存储装置通常可以包括数十个或数百个页区域。因此,为了储存包括在非易失性存储装置中的所有页区域的编程脉冲施加计数次数,要在控制器的内部设置与页区域的数量一样多的锁存器。然而,这种配置是不实用的。
因此,在非易失性存储装置中,可通过所设定的页区域的编程操作来调整的编程起始电压被施加给与所设定的页区域相邻的多个页区域,其中与页区域中经设定的部分相对应的少量的锁存器被包括在控制器。
然而,如果在两个页区域之间出现了例如工艺、编程循环次数上的差异,则在向两个页区域施加相同的值时可能不能正常检测数据,即使两个页区域彼此相邻。因此,即使针对两个彼此相邻的页区域,也要考虑到两个页区域之间的差异而提供余量。
根据一个实例,即使在对某一页区域进行编程时检测到通过施加四次编程脉冲的操作而被编程了等于或高于第一验证电压的电压的单元,但是在相邻的页区域中可能存在在相同的条件下通过施加两次或三次编程脉冲的操作就被编程了等于或高于第一验证电压的单元。
因此,上述操作方法根据包括半导体芯片或操作计划的所有因素来设置余量。这里,在非易失性存储装置的编程/验证方法的性能中可能会根据所设置的余量而出现差异。
发明内容
本发明的一个示例性实施例涉及一种编程方法,所述编程方法能够使易失性存储装置的编程时间中的用于验证操作的时间最少化。
根据本发明的一个示例性实施例,一种非易失性存储装置包括:页区域,所述页区域包括多个正常单元和多个辅助单元;检测单元,所述检测单元被配置为当页区域的编程目标单元中有至少一个单元被编程了高于参考电压的电压时输出合格信号;计数储存单元,所述计数储存单元被配置为在页区域的第一编程操作期间将计数储存在多个辅助单元中,其中,所述计数表示直到从检测单元输出合格信号为止施加给至少一个单元的编程脉冲的总数;以及电压设置单元,所述电压设置单元被配置为基于储存在多个辅助单元中的计数来为页区域的第二编程操作设置编程起始电压。
根据本发明的另一个实施例,一种非易失性存储装置包括:共用字线的第一页区域和第二页区域,其中,第一页区域和第二页区域的每个包括多个正常单元和多个辅助单元;合格检测单元,所述合格检测单元被配置为当第一页区域的编程目标单元中有至少一个单元被编程了高于参考电压的电压时输出合格信号;计数储存单元,所述计数储存单元被配置为在第一区域的第一编程操作期间将计数储存在第一页区域的多个辅助单元中,其中,所述计数表示直到从合格检测单元输出合格信号为止施加给至少一个单元的编程脉冲的总数;以及电压设置单元,所述电压设置单元被配置为基于所述计数而为第一页区域和第二页区域中的至少一个设置编程起始电压。
根据本发明的又一个实施例,一种非易失性存储装置包括:共用字线的第一页区域和第二页区域,其中,第一页区域和第二页区域的每个包括多个正常单元和多个辅助单元;合格检测单元,所述合格检测单元被配置为当第一页区域和第二页区域中的至少一个的编程目标单元中有至少一个单元被编程了高于参考电压的电压时输出合格信号;第一电压调整单元,所述第一电压调整单元被配置为将第一计数储存在第一页区域的多个辅助单元中,并根据所储存的第一计数来调整第一编程起始电压,其中,第一计数表示直到从合格检测单元输出合格信号为止施加给第一页区域的编程脉冲的总数;以及第二电压调整单元,所述第二电压调整单元被配置为将第二计数储存在第二页区域的多个辅助单元中,并根据所储存的第二计数来调整第二编程起始电压,其中,第二计数表示直到从合格检测单元输出合格信号为止施加给第二页区域的编程脉冲的总数。
根据本发明的再一个实施例,一种操作非易失性存储装置的方法包括:通过施加初始编程起始电压来执行页区域的第一编程操作,所述页区域包括多个正常单元和多个辅助单元;在第一编程操作期间,对施加给页区域的编程脉冲进行计数,直到页区域的编程目标单元之中有至少一个单元被编程了高于验证电压的电压为止,并输出计数;将所述计数储存在多个辅助单元中;根据所述计数来设置编程起始电压;以及通过施加在所述设置操作中确定的所述编程起始电压来执行页区域的第二编程操作。
根据本发明的又另一个实施例,一种操作非易失性存储装置的方法包括:通过施加第一编程起始电压来执行第一页区域的编程操作,所述第一页区域包括多个正常单元和多个辅助单元;通过施加第二编程起始电压来执行第二页区域的编程操作,所述第二页区域包括多个正常单元和多个辅助单元,并且与第一页区域共用字线;在第一页区域的编程操作期间对施加给第一页区域的编程脉冲进行计数直到第一页区域的编程目标单元中有至少一个单元被编程了高于验证电压的电压为止,并输出计数;将所述计数储存在第一页区域的多个辅助单元中;以及根据储存在第一页区域的多个辅助单元中的计数来设置第二编程起始电压。
根据本发明的再另一个实施例,一种操作非易失性存储装置的方法包括:通过施加第一编程起始电压来执行第一页区域的编程操作,其中所述第一页区域包括多个正常单元和多个辅助单元;将计数储存在第一页区域的多个辅助单元中,其中所述计数表示在第一页区域的编程目标单元中有至少一个单元被编程了高于验证电压的电压编程之前施加给第一页区域的编程脉冲的总数;在第一页区域的编程操作期间根据所述计数来设置第一编程起始电压;通过选择第二编程起始电压来执行第二页区域的编程操作,其中,所述第二页区域包括多个正常单元和多个辅助单元,并且与第一页区域共用串;以及在第二页区域的编程操作期间根据所述计数来确定用于选择第二编程起始电压的电压选择信号的值。
附图说明
图1是说明非易失性存储装置的现有多电平单元编程方法的图。
图2是说明非易失性存储装置的现有ISPP编程方法的概念的图。
图3是说明在现有的ISPP编程方法中阈值电压根据编程脉冲的施加出现的变化的图。
图4是在现有的ISPP编程方法中根据设置编程开始电压而出现的分布变化的图。
图5是说明非易失性存储装置的编程速度根据编程/擦除循环次数的变化的图。
图6是说明非易失性存储装置的盲验证方法的图。
图7是说明现有的编程/验证方法的与非易失性存储装置的MSB操作相关的概念的图。
图8是说明非易失性存储装置的现有编程/验证方法的图。
图9是说明根据本发明一个示例性实施例的非易失性存储装置的框图。
图10是说明图9的非易失性存储装置中的存储器单元阵列和页缓冲单元的第一种配置的详细框图。
图11是解释图9的非易失性存储装置的编程操作的流程图。
图12是说明图9的非易失性存储装置中的存储器单元阵列和页缓冲单元的第二种配置的详细框图。
图13是说明图9的非易失性存储装置中的存储器单元阵列和页缓冲单元的第三种配置的详细框图。
图14是说明还包括电压选择信号发生单元的图9的非易失性存储装置的框图。
图15是解释图14的非易失性存储装置的编程操作的流程图。
图16是根据本发明另一个方面的集成电路芯片的框图。
图17是根据本发明另一个方面的紧凑型存储卡的框图。
图18是根据本发明另一个方面的信息处理系统的框图。
具体实施方式
下面将参照附图更加详细地描述本发明的示例性实施例。然而,本发明可以用不同的方式来实施,并且不应当理解为限于本文所描述的实施例。确切地说,提供这些实施例使得对于本领域技术人员而言,本说明书将是清楚且完整的,并且将充分传达本发明的范围。在整个说明书中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。
图9是说明根据本发明一个示例性实施例的非易失性存储装置的框图。
图10是说明图9的非易失性存储装置中的存储器单元阵列和页缓冲单元的第一种配置的详细框图。
参见图9,根据本发明一个示例性实施例的非易失性存储装置包括非易失性存储器单元阵列900、页缓冲单元910、比特合格检测单元920、控制器、以及高电压发生单元960。控制器包括编程起始电压设置单元930、编程脉冲施加计数储存单元940和编程脉冲计数单元950。
根据一个实例,控制器执行非易失性存储装置的各种操作,例如编程操作、读取操作和擦除操作。控制器接收外部命令、地址和数据并执行相关的操作。此外,控制器控制高电压发生单元960,以将针对每个操作的高电压(编程电压、合格电压、读取电压等等)施加给存储器单元阵列900。另外,在编程操作期间执行的验证操作中,控制器确认每个存储器单元是否被编程了参考电压或更高的电压,并在输入合格完成信号时控制编程操作结束。
更具体而言,包括在控制器中的编程起始电压设置单元930、编程脉冲施加计数储存单元940和编程脉冲计数单元950是这样的元件:它们用于对直到1比特合格时间点——即,在页区域的编程目标单元之中出现被编程了参考电压或更高的电压的单元的时间点——为止已经施加的编程脉冲的次数进行计数,并且根据计数得到的编程脉冲施加的次数来设置编程起始电压。
参照图10来描述根据本发明一个示例性实施例的非易失性存储装置的具体配置,图10示出了存储器单元阵列900和页缓冲单元910的详细配置。
首先,存储器单元阵列900包括正常区域900A和辅助区域900B。同样地,页缓冲单元910包括与存储器单元阵列900的正常区域900A相对应的正常页缓冲单元910A,以及与辅助区域900B相对应的辅助页缓冲单元910B。
存储器单元阵列900的正常区域900A是包括了上述非易失性存储装置的主区域、备用区域和冗余区域的区域。另一方面,存储器单元阵列900的辅助区域900B在正常区域900A的外部。更具体而言,存储器单元阵列900的辅助区域900B是特别地附加给根据本发明一个实施例的非易失性存储装置的区域。根据一个实例,辅助区域900B可以具有储存若干字节的容量,但这可能增加存储器单元阵列900的整体尺寸。根据另一个实例,可以将包括在上述正常区域900A中的备用区域或冗余区域的一部分划分出来并且将其设置为辅助区域,而不是通过为辅助区域900B形成额外的结构而增加存储器单元阵列900的整体尺寸。
由于存储器单元阵列900包括正常区域900A和辅助区域900B,因此设置在存储器单元阵列900中并且包括多个单元的多个单位页区域900<0:K>、901<0:K>、…的每个都包括多个正常单元BL<0:M-1>和多个辅助单元BL<M:N-1>。当单位页区域900<0:K>、901<0:K>、…的编程目标单元之中有单元被编程了高于参考电压的电压时,比特合格检测单元920输出1比特合格信号1BIT_PASS。编程脉冲施加计数储存单元940将编程脉冲施加计数次数储存在所述多个辅助单元BL<M:N-1>中,其中在对单位页区域900<0:K>、901<0:K>、…执行第一编程操作期间,施加所述编程脉冲直到输出1比特合格信号1BIT_PASS为止。编程起始电压设置单元930基于储存在多个辅助单元BL<M:N-1>中的编程脉冲施加计数次数而为单位页区域900<0:K>、901<0:K>、…的第二编程操作设置编程起始电压。
此外,在第一编程操作期间,编程脉冲计数单元950对施加给单位页区域900<0:K>、901<0:K>、…的编程脉冲进行计数,直到输出1比特合格信号1BIT_PASS为止,并将计数得到的编程脉冲施加的次数传送给编程脉冲施加次数计数储存单元940。
设置在存储器单元阵列900中的多个单元是多电平单元(MLC)。因此,包括在单位页区域900<0:K>、901<0:K>、…中的多个正常单元BL<0:M-1>和多个辅助单元BL<M:N-1>是多电平单元(MLC)。因此,根据本发明一个示例性实施例的非易失性存储装置的编程操作被划分为第一编程操作和第二编程操作,如图11的流程图所示。根据一个实例,第一编程操作是LSB编程操作,第二编程操作是MSB编程操作。
下面参照图11所示的流程图详细描述根据本发明一个示例性实施例的非易失性存储装置的编程操作。
当向非易失性存储装置供电(步骤1100)时,“初始化了的第一编程起始电压”和“初始化了的第二编程起始电压”可以是事先已知的。如上面参照图2所述的,初始化了的第一编程起始电压和初始化了的第二编程起始电压可以是初始地施加给已擦除的单元的编程起始电压Vstart,它们的默认值可以根据各种设计需要来调整。根据一个实例,初始化了的第一编程起始电压和初始化了的第二编程起始电压是施加给所述多个单位页区域900<0:K>、901<0:K>、…的恒定电压,它们的默认值可以被调整为彼此相等。根据另一个实例,初始化了的第一编程起始电压和初始化了的第二编程起始电压的默认值可以被调整为彼此不同。
在步骤1110确定要执行的编程操作。这是,要确定是执行第一编程操作还是执行第二编程操作。此时,当要对已擦除的单位页区域900<0:K>、901<0:K>、…执行编程操作时,执行第一编程操作。当在第一编程操作之后要对单位页区域900<0:K>、901<0:K>、…执行编程操作时,执行第二编程操作。根据一个实例,第一编程操作可以包括对已擦除的单元执行LSB编程操作,第二编程操作可以包括对其执行MSB编程操作。
第一编程操作如下。将初始化了的第一编程起始电压提供给单位页区域900<0:K>、901<0:K>、…(步骤1120),且确定是否检测到1比特合格(即,至少一个已编程的存储器单元的检测)。当没有检测到1比特合格时,将与初始化了的第一编程起始电压和步进电压的总和相对应的编程电压提供给单位页区域900<0:K>、901<0:K>、…(步骤1120),且再次确定是否检测到1比特合格(步骤1122)。当仍然没有检测到1比特合格时,再次将与初始的第一编程起始电压和“步进电压×2”的总和相对应的编程电压提供给单位页区域900<0:K>、901<0:K>、…(步骤1120),且确定是否检测到1比特合格(步骤1122)。
在每次重复进行向单位页区域900<0:K>、901<0:K>、…提供编程电压的操作1120和确定是否检测到1比特合格的操作1122时,提供给单位页区域900<0:K>、901<0:K>、…的编程电压的幅度增加“步进电压×N”(其中N是重复的次数)。更具体而言,在基于“初始化了的第一编程起始电压”执行ISPP操作的同时,重复地执行确定是否检测到1比特合格的操作1122。
当在执行向单位页区域900<0:K>、901<0:K>、…提供编程电压的操作1120和确定是否检测到1比特合格的操作1122时检测到1比特合格,则从编程脉冲施加计数储存单元940将编程脉冲施加计数次数(PD)——其中,对编程脉冲进行计数直到检测到1比特合格为止,并将检测时所累计的计数从编程脉冲计数单元950输出——输出给单位页区域900<0:K>、901<0:K>、…的辅助页缓冲单元910B(步骤1124),并执行第一编程操作(步骤1126)以完成编程操作(步骤1150)。
这样,编程脉冲施加计数储存单元940以上述直至检测到1比特合格为止计数得到并从编程脉冲计数单元950输出的编程脉冲施加计数次数(PD)来设置辅助页缓冲单元910B,且第一编程操作完成。上述直至检测到1比特合格为止计数得到并从编程脉冲计数单元950输出的编程脉冲施加计数次数(PD)被储存在与辅助页缓冲单元910B相对应的多个辅助单元BL<M:N-1>中。
另外,由于多个单位页区域900<0:K>、901<0:K>、…中的每个都包括多个正常单元BL<0:M-1>和多个辅助单元BL<M:N-1>,因此,上述直至检测到1比特合格为止计数得到的编程脉冲施加计数次数(PD)经由辅助页缓冲单元910B而被独立地储存在单位页区域900<0:K>、901<0:K>、…的多个辅助单元BL<M:N-1>中。
根据一个实例,上述的第一编程操作与图9的控制器所包括的编程脉冲计数单元950和编程脉冲施加计数储存单元940相对应。这里,尽管没有明确图示,但是用于执行ISPP操作的电路也是图9的控制器的一部分。
接下来将描述第二编程操作。在第一编程操作完成之后,在单位页区域中执行第二编程操作,在所述单位页区域中,上述直到检测到第一比特合格为止计数得到的编程脉冲施加计数次数(PD)储存在多个辅助单元BL<M:N-1>中。为此,在提供初始化了的第二编程起始电压之前,读取上述直到检测到1比特合格为止计数得到并且被储存在所述多个辅助单元BL<M:N-1>中的编程脉冲施加计数次数(PD)(步骤1140)。
由图9所示的编程开始电压设置单元930来执行将所读取的上述直到检测到1比特合格为止计数得到的编程脉冲施加计数次数(PD)应用于初始化了的第二编程开始电压的步骤。对于应用所读取的编程脉冲施加计数次数(PD)而言,下面描述可以如何使用编程脉冲施加计数次数的两个示例性情况。
对于第一种情况,在读取了储存在多个辅助单元BL<M:N-1>中的编程脉冲施加计数次数(PD)之后,将所读取的编程脉冲施加计数次数(PD)和步进电压的乘积与初始化了的第二编程起始电压相加。所得值被设置为新的第二编程起始电压(步骤1142)。
对于第二种情况,读取储存在多个辅助单元BL<M:N-1>中的编程脉冲施加计数次数(PD),在所读取的编程脉冲施加计数次数(PD)大于阈值的情况下,将读取的编程脉冲施加计数次数(PD)与阈值之差与步进电压相乘,并且将与相乘的所得值相对应的电压与初始化了的第二编程起始电压相加。将最终值设置为新的第二编程起始电压(步骤1142)。然而,在读取的编程脉冲施加计数次数(PD)小于或等于阈值的情况下,将初始化了的第二编程起始电压设置为第二编程起始电压(步骤1142)。可以根据不同的设计需求——例如单元的特性——来选择所述阈值。根据一个实例,当读取的编程脉冲施加计数次数(PD)小于2时,可以认为编程脉冲施加计数次数(PD)是微不足道的。因此,在这种情况下,可以将2设置为阈值。
这样,通过接收新的第二编程起始电压来执行第二编程操作,所述新的第二编程起始电压是通过将所读取的直到检测到1比特合格为止计数得到的编程脉冲施加计数次数(PD)应用于初始的第二编程起始电压的方法来确定的。此时,由于第二编程操作接收新的第二编程起始电压,因此,可以在比第一编程操作快的定时完成编程操作。根据一个实例,第二编程操作同样使用ISPP方法来操作。
在LSB编程操作中,当如上所述参照图9至图11对单位页区域900<0:K>、901<0:K>、…进行编程时,可以将用于寻找适合于单位页区域900<0:K>、901<0:K>、…特性的初始起始电压的信息——即,直到检测到1比特合格为止计数得到的编程脉冲施加计数次数(PD)——储存在多个辅助单元中。在MSB编程操作中,使用上述用于寻找适合于单位页区域900<0:K>、901<0:K>、…特性的初始起始电压且被储存在多个辅助单元中的信息,从而显著地减少用于执行MSB编程操作的时间。
此外,即使不向非易失性存储装置供电,上述用于寻找适合于单位页区域900<0:K>、901<0:K>、…特性的初始起始电压且被储存在多个辅助单元中的信息也不会被擦除。因此,即使在LSB编程操作之后供电中断且随后又恢复供电,所述信息仍被储存供MSB编程操作使用,从而显著地减少了用于执行MSB编程操作的时间。同样地,如果可以利用单独的方法来控制对单位页区域900<0:K>、901<0:K>、…内部的多个正常单元BL<0:M-1>进行的擦除操作以及对单位页区域900<0:K>、901<0:K>、…内部的多个辅助单元BL<M:N-1>进行的擦除操作,则可以在非易失性存储装置的早期阶段找到适合于多个单位页区域900<0:K>、901<0:K>、…特性的初始起始电压并将其储存在多个辅助单元BL<M:N-1>中,并且应用于所有后续的编程操作(例如,包括检测之后正常单元BL<0:M-1>的其余编程操作)。更具体而言,不论多个正常单元BL<0:M-1>和多个辅助单元BL<M:N-1>是MLC还是SLC,上述根据本发明一个示例性实施例的基于所检测到的多个单位页区域900<0:K>、901<0:K>的特性来调整初始起始电压的原理可以被应用于改善所述多个单位页区域900<0:K>、901<0:K>,或其他存储器单元或页区域的任何后续编程操作的速度。
图12是说明图9的非易失性存储装置中的存储器单元阵列和页缓冲单元的第二种配置的详细框图。
这里,如图10的情形,图12图示了图9的非易失性存储装置的存储器单元阵列900和页缓冲单元910的详细配置。然而,由于图12所示的存储器单元阵列900的详细配置与图10中的存储器单元阵列900的详细配置不同,因此在图10和图12所示的存储器单元阵列900的实施例中,图9的存储装置的整体操作可能有所不同。
参见图12,根据本发明一个示例性实施例的非易失性存储装置包括存储器单元阵列900。存储器单元阵列900包括正常区域900C和辅助区域900D。同样地,页缓冲单元910包括与存储器单元阵列900的正常区域900C相对应的正常页缓冲单元910C,以及与辅助区域900D相对应的辅助页缓冲单元910D。
存储器单元阵列900的正常区域900C是包括上述非易失性存储装置的主区域、备用区域和冗余区域的区域。另一方面,存储器单元阵列900的辅助区域900D在正常区域900C的外部。更具体而言,存储器单元阵列900的辅助区域900D是特别附加给根据本发明一个示例性实施例的非易失性存储装置的区域。根据一个实例,辅助区域900D可以具有储存若干字节的容量,但这可能会增加存储器单元阵列900的整体尺寸。根据另一个实例,可以将包括在上述正常区域900C中的备用区域或冗余区域的一部分划分出来并将其设置为辅助区域900D,而不是通过为辅助区域900D形成额外的结构而增加存储器单元阵列900的整体尺寸。
由于存储器单元阵列900包括正常区域900C和辅助区域900D,因此设置在存储器单元阵列900中的针对偶数存储器单元的第一页区域900<E0:EK>、901<E0:EK>、…和针对奇数存储器单元的第二页区域900<00:OK>、901<00:OK>、…被配置为包括多个正常单元BLE<0:M-1>和BLO<0:M-1>以及多个辅助单元BLE<M:N-1>和BLO<M:N-1>。第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…包括多个单元,并且共用字线WL<0:K>。更具体而言,共用字线WL<0:K>的第一页区域900<E0:EK>、901<E0:EK>、…包括多个正常单元BLE<0:M-1>和多个辅助单元BLE<M:N-1>,第二页区域900<00:OK>、901<00:OK>、…包括多个正常单元BLO<0:M-1>和多个辅助单元BLO<M:N-1>。
根据一个实例,由于第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…共用字线WL<0:K>,因此包括在第一页区域900<E0:EK>、901<E0:EK>、…中的多个正常单元BLE<0:M-1>和多个辅助单元BLE<M:N-1>以及包括在第二页区域900<00:OK>、901<00:OK>、…中的多个正常单元BLO<0:M-1>和多个辅助单元BLO<M:N-1>如图12所示那样交替地布置。根据一个实例,上述的布置是通过使存储器单元阵列串所占的面积比页缓冲器所占的面积小来实现的。这里,第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…彼此可以完全独立地操作,只不过共用字线WL<0:K>。
根据本发明一个示例性实施例的非易失性存储装置包括比特合格检测单元920、编程脉冲施加计数储存单元940和编程起始电压设置单元930。当第一页区域900<E0:EK>、901<E0:EK>、…的编程目标单元之中至少一个单元被编程了高于参考电压的电压时,比特合格检测单元920输出1比特合格信号1BIT_PASS。编程脉冲施加计数储存单元940将编程脉冲施加计数次数——其中,在对第一页区域900<E0:EK>、901<E0:EK>、…的编程操作期间,重复地施加编程脉冲直到输出1比特合格信号1BIT_PASS为止——储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中。编程起始电压设置单元930基于储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中的编程脉冲施加计数次数来设置用于第一页区域900<E0:EK>、901<E0:EK>、…和/或第二页区域900<00:OK>、901<00:OK>、…的编程操作的编程起始电压。
此外,根据本发明一个示例性实施例的非易失性存储装置还包括编程脉冲计数单元950。在第一页区域900<E0:EK>、901<E0:EK>、…的编程操作期间,编程脉冲计数单元950对施加给第一页区域900<E0:EK>、901<E0:EK>、…的编程脉冲施加计数次数进行计数,直到1比特合格信号1BIT_PASS输出为止,并将计数得到的编程脉冲施加的次数传送给编程脉冲施加计数储存单元940。
设置在存储器单元阵列900中的多个单元可以是多电平单元(MLC)或单电平单元(SLC)。更具体而言,包括在第一页区域900<E0:EK>、901<E0:EK>、…中的多个正常单元BLE<0:M-1>和多个辅助单元BLE<M:N-1>以及包括在第二页区域900<00:OK>、901<00:OK>、…中的多个正常单元BLO<0:M-1>和多个辅助单元BLO<M:N-1>可以是SLC或MLC。虽然根据设置在存储器单元阵列900中的多个单元是SLC还是MLC使得操作稍有不同,但是可参照图11的流程图来描述其示例性的实施例。
出于说明的目的,下面首先参照图11来描述设置在根据本发明一个示例性实施例的非易失性存储装置的存储器单元阵列900中的多个单元是SLC的情形。
在图示中,当向非易失性存储装置供电(步骤1100)时,提供“初始化了的第一编程起始电压”和“初始化了的第二编程起始电压”。然而,由于包括在图12所示的第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…中的多个单元是SLC,因此不对存储器单元执行在MLC中所使用的两个单独的编程操作。因此,用第一页区域的初始化了的编程起始电压来代替图11的初始化了的第一编程起始电压,并且用第二页区域的初始化了的编程起始电压来代替图11的初始化了第二编程起始电压。此时,如上面参照图2所述,在图11中,第一页区域的初始化了的编程起始电压和第二页区域的初始化了的编程起始电压与初始地施加给已擦除的单元的编程起始电压Vstart相对应,并且可以根据各种设计需要来调整它们的默认值。根据一个实例,第一页区域的初始化了的编程起始电压和第二页区域的初始化了的编程起始电压是施加给多个第一页区域900<E0:EK>、901<E0:EK>、…和多个第二页区域900<00:OK>、901<00:OK>的恒定电压,它们的默认值可以被调整为彼此相等。根据另一种实例,第一页区域的初始化了的编程起始电压和第二页区域的初始化了的编程起始电压的默认值可以被调整为彼此不同。
确定要执行的编程操作(步骤1110)。这里,确定是执行第一编程操作还是执行第二编程操作。此时,由于包括在第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…中的多个单元都是SLC,因此图11所示的第一编程可以与第一页区域900<E0:EK>、901<E0:EK>、…的编程操作相对应,而图11所示的第二编程可以与第二页区域900<00:OK>、901<00:OK>、…的编程操作相对应。尽管上面整体上已经讨论了单独的第一编程和第二编程,但是可以对具有SLC的非易失性存储装置中的任何单位单元仅执行一次编程操作。
下面将描述对第一页区域900<E0:EK>、901<E0:EK>、…的编程操作,此编程操作与第一编程操作相对应。向第一页区域900<E0:EK>、901<E0:EK>、…施加第一页区域的初始化了的编程起始电压(步骤1120),并且确定在第一页区域900<E0:EK>、901<E0:EK>、…中是否检测到1比特合格(即,至少一个已编程的存储器单元的检测)(步骤1122)。当在第一页区域900<E0:EK>、901<E0:EK>、…中没有检测到1比特合格时,将与第一页区域的初始化了的编程起始电压和步进电压的总和相对应的电压提供给第一页区域900<E0:EK>、901<E0:EK>、…(步骤1120),并且再次确定是否检测到1比特合格(步骤1122)。当仍然没有检测到1比特合格时,再次将与第一页区域的初始的编程起始电压和“步进电压×2”之和相对应的编程电压提供给第一页区域900<E0:EK>、901<E0:EK>、…(步骤1120),并且确定是否检测到1比特合格(步骤1122)。
在对向第一页区域900<E0:EK>、901<E0:EK>、…提供编程电压的操作1120以及确定是否检测到1比特合格的操作1122的每次重复中,提供给第一页区域900<E0:EK>、901<E0:EK>、…的编程电压的大小增加“步进电压×N”(其中,N是重复的次数)。更具体而言,在执行基于“第一页区域的初始化了的编程起始电压”的ISPP操作的同时,重复地执行确定是否检测到1比特合格的操作1122。
当在执行向第一页区域900<E0:EK>、901<E0:EK>、…提供编程电压的操作1120以及确定是否检测到1比特合格的操作1122时检测到了1比特合格时,将编程脉冲施加计数次数(PD)——其中,对编程脉冲进行计数直到检测到1比特合格为止,且将检测时所累计的计数从编程脉冲计数单元950输出——从编程脉冲计数储存单元940输出给第一页区域900<E0:EK>、901<E0:EK>、…的辅助页缓冲单元910D(步骤1124),并且执行第一编程操作(步骤1126)以完成编程操作(步骤1150)。
这样,编程脉冲施加计数储存单元940以上述直到检测到1比特合格为止计数得到并且从编程脉冲计数单元950输出编程脉冲施加计数次数(PD)来设置辅助页缓冲单元910D,并且完成第一编程操作。上述直到检测到1比特合格为止计数得到并从编程脉冲计数单元950输出的编程脉冲施加计数次数(PD)被储存在与辅助页缓冲单元910D相对应的多个辅助单元BLE<M:N-1>中。
此外,由于所述多个第一页区域900<E0:EK>、901<E0:EK>、…的每个都包括多个正常单元BLE<0:M-1>和多个辅助单元BLE<M:N-1>,因此,上述直到检测到1比特合格为止计数得到并与第一页区域900<E0:EK>、901<E0:EK>、…相对应的编程施加计数次数(PD)经由辅助页缓冲单元910D而独立地储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中。
根据一个实例,第一页区域的上述编程操作与包括在图9的控制器中的编程脉冲计数单元950和编程脉冲施加计数储存单元940相对应。这里,尽管没有明确示出,但是执行ISPP操作的电路也是图9的控制器的一部分。
接下来将描述第二编程操作。在完成第一页区域900<E0:EK>、901<E0:EK>、…的第一编程操作之后,基于上述直到检测到1比特合格为止计数得到并被储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中的编程脉冲施加计数次数(PD)来对第二页区域900<00:OK>、901<00:OK>、…执行编程操作。为此,在提供第二页区域的初始化了的编程起始电压之前,读取上述直到检测到1比特合格为止计数得到并被储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中的编程脉冲施加计数次数(PD)(步骤1140)。
由图9所示的编程起始电压设置单元930来执行将所读取的上述直到检测到1比特合格为止计数得到的编程脉冲施加计数次数(PD)应用于第二页区域的初始化了的编程起始电压的操作。对于应用所读取的编程脉冲施加计数次数(PD),下面描述如何使用编程脉冲施加计数次数(PD)的两个示例性实例。
对于第一实例,在读取储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中的编程脉冲施加计数次数(PD)之后,将所读取的编程脉冲施加计数次数(PD)和步进电压的乘积与第二页区域的初始的编程起始电压相加。所得值被设置为第二页区域的新的编程起始电压(步骤1142)。
对于第二实例,读取储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中的编程脉冲施加计数次数(PD),在所读取的编程脉冲施加计数次数(PD)大于阈值的情况下,将编程脉冲施加计数次数(PD)与阈值之差和步进电压相乘,并且将与相乘的所得值相对应的电压与第二页区域的初始化了的编程起始电压相加。将最终值设置为第二页区域的新的编程起始电压(步骤1142)。然而,在所读取的编程脉冲施加计数次数(PD)小于或等于阈值的情况下,将第二页区域的初始化了的编程起始电压设置为第二页区域的编程起始电压(步骤1142)。可以根据不同的设计需求——例如单元的特性——来选择阈值。根据一个实例,当编程脉冲施加计数次数(PD)小于2时,可以认为编程脉冲施加计数次数(PD)是微不足道的。因此,在这种情况下,可以将2设置为阈值。
这样,通过接收第二页区域的新的编程起始电压来执行第二页区域的编程操作,所述第二页区域的新的编程起始电压是通过将上述直到检测到1比特合格为止计数得到的编程脉冲施加计数次数(PD)应用于第二页区域的初始化了的编程起始电压的方法而确定的。此时,由于第二页区域的编程操作接收第二页区域的新的编程起始电压,因此可以以比第一页区域的编程操作快的定时完成编程操作。根据一个实例,也使用ISPP方法来操作第二页区域的编程操作。
在如上面参照图9、11和12所述的对第一页区域900<E0:EK>、901<E0:EK>、…编程的操作中,用于寻找适合于第一页区域900<E0:EK>、901<E0:EK>、…特性的初始起始电压的信息——即,直到检测到1比特合格为止计数得到的编程脉冲施加计数次数(PD)——可以被储存在第一页区域900<E0:EK>、901<E0:EK>、…所包括的多个辅助单元中。此时,由于第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>,901<00:OK>,…共用字线WL<0:K>,因此适合于第一页区域900<E0:EK>、901<E0:EK>、…特性的初始起始电压可以是适合于第二页区域900<00:OK>、901<00:OK>、…特性的初始起始电压。因此,在第二页区域900<00:OK>、901<00:OK>、…的编程操作中使用上述用于寻找适合于第一页区域900<E0:EK>、901<E0:EK>、…特性的初始起始电压且储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元中的信息,从而显著地减少用于执行第二页区域900<00:OK>、901<00:OK>、…的编程操作的时间。
此外,上述用于寻找适合于第一页区域900<E0:EK>、901<E0:EK>、…特性的初始起始电压且储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元中的信息即使在不供电给非易失性存储装置的时候也不会被擦除。因此,即使在第一页区域900<E0:EK>、901<E0:EK>、…的编程操作之后断电且之后又供电,所述信息也会被储存供第二页区域900<00:OK>、901<00:OK>、…的编程操作使用,从而显著地减少了用于执行第二页区域900<00:OK>、901<00:OK>、…的编程操作的时间。
接着,下面参照图11来描述根据本发明的一个示例性实施例的非易失性存储装置的存储器单元阵列900中所设置的多个单元是MLC的情形。
在图示中,当在步骤1100中向非易失性存储装置供电时,提供“初始化了的第一编程起始电压”和“初始化了的第二编程起始电压”。然而,由于图12所示的存储器单元阵列900包括第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…,且第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…所包括的多个单元可以全部都是MLC,因此编程起始电压不是简单地分为初始化了的第一编程起始电压和初始化了的第二编程起始电压。而是,初始化了的第一编程起始电压与第一页区域的初始化了的第一编程起始电压和第一页区域的初始化了的第二编程起始电压相对应,而初始化了的第二编程起始电压与第二页区域的初始化了的第一编程起始电压和第二页区域的初始化了的第二编程起始电压相对应。此时,如上面参照图2所述的,第一页区域的初始化了的第一编程起始电压、第一页区域的初始化了的第二编程起始电压、第二页区域的初始化了的第一编程起始电压和第二页区域的初始化了的第二编程起始电压与初始地施加给已擦除的单元的编程起始电压Vstart相对应,其中可以根据各种设计需要来调整它们的默认值。根据一个实例,第一页区域的初始化了的第一编程起始电压、第一页区域的初始化了的第二编程起始电压、第二页区域的初始化了的第一编程起始电压和第二页区域的初始化了的第二编程起始电压是施加给第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…的恒定电压,它们的默认值可以被调整为彼此相等。根据另一个实例,第一页区域的初始化了的第一编程起始电压、第一页区域的初始化了的第二编程起始电压、第二页区域的初始化了的第一编程起始电压和第二页区域的初始化了的第二编程起始电压的默认值可以被调整为彼此不同。
确定要执行的编程操作(步骤1110)。这里,确定是执行第一编程操作还是执行第二编程操作。此时,由于包括在第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…中的多个单元全部是MLC,因此图11所示的第一编程和第二编程可以与第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…的编程操作相对应。这里,对具有MLC的非易失性存储器单元中的单位单元执行LSB编程操作,并且随后对其执行MSB编程操作。
这里增加了一个不同的操作,这是因为根据本发明一个示例性实施例的非易失性存储装置的存储器单元阵列中所提供的多个单元是MLC,且包括了共用字线WL<0:K>的第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…。
例如,当执行第一页900<E0:EK>、901<E0:EK>、…的第一编程操作时,执行图11所示的第一编程操作。由于上面已经详细描述了第一编程操作,因此在此不再赘述。
在第一编程操作期间,直到检测到1比特合格为止计数得到的编程脉冲施加计数次数(PD)被储存在第一页区域900<E0:EK>、901<E0:EK>、…的辅助单元BLE<M:N-1>中。
当执行第一页900<E0:EK>、901<E0:EK>、…的第二编程操作时,执行图11所示的第二编程操作。由于上面已经详细描述了第二编程操作,因此在此不再赘述。
可以使用用于寻找适合于第一页区域900<0:EK>、901<0:EK>、…特性的初始起始电压且储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中的信息来执行第一页区域900<E0:EK>、901<E0:EK>、…的第二编程操作,从而显著地减少用于执行第一页区域900<E0:EK>、901<E0:EK>、…的第二编程操作的时间。
当要执行第二页区域900<00:OK>、901<00:OK>、…的第一编程操作时,可以执行图11所示第二编程操作,而不是执行图11所示的第一编程操作。这是因为第一页区域900<E0:EK>、901<E0:EK>、…和第二页区域900<00:OK>、901<00:OK>、…共用字线WL<0:K>,适合于第一页区域900<E0:EK>、901<E0:EK>、…特性的初始起始电压可以被视为是适合于第二页区域900<00:OK>、901<00:OK>、…特性的初始起始电压。因此,根据一个实例,由于第一页区域900<E0:EK>、901<E0:EK>、…的第一编程操作是以与图11的第一编程操作相同的方式来执行的,因此可以将所述用于寻找适合于第一页区域900<E0:EK>、901<E0:EK>、…特性的初始起始电压且储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中的信息应用于第二页区域900<00:OK>、901<00:OK>、…的编程操作。因此,通过有选择地跳过获得用于寻找适合于第二页区域900<00:OK>、901<00:OK>、…特性的初始起始电压的信息和执行第二页区域900<00:OK>、901<00:OK>、…的编程操作,并在确定适合第二页区域900<00:OK>、901<00:OK>、…特性的初始起始电压时使用上述用于寻找适合第一页区域900<E0:EK>、901<E0:EK>、…特性的初始起始电压且储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中的信息,可以显著地减少用于执行第二页区域900<00:OK>、901<00:OK>、…的第一编程操作和第二编程操作的时间。
此外,即使没有向非易失性存储装置供电,所述用于寻找适合于第一页区域900<E0:EK>、901<E0:EK>、…特性的初始起始电压且储存在第一页区域900<E0:EK>、901<E0:EK>、…的多个辅助单元BLE<M:N-1>中的信息也不会被擦除。因此,即使在第一页区域900<E0:EK>、901<E0:EK>、…的第一编程操作之后供电中断且之后又供电,所述信息也是被储存了的,且可用于第一页区域900<E0:EK>、901<E0:EK>、…的第二编程操作以及至少第二页区域900<00:OK>、901<00:OK>、…的第一编程操作,从而显著地减少用于执行第一页区域900<E0:EK>、901<E0:EK>、…的第二编程操作和第二页区域900<00:OK>、901<00:OK>、…的第一编程操作的时间。
图13是说明图9的非易失性存储装置中的存储器单元阵列和页缓冲单元的第三种配置的详细框图。
根据一个实例,由于图10的上述配置是针对单位页区域900<0:K>、901<0:K>、…为独立的状态而言,因此关于图10的操作是通过假设在一个页区域组中执行编程操作来描述的。
然而,如果以两个或更多个页区域组来执行对图10所示的单位页区域900<0:K>、901<0:K>、…的操作,则图10的配置可以如图13所示。
参见图13,存储单元阵列900包括具有多个正常单元BL<0:M-1>和多个辅助单元BL<M:N-1>且共用串的第一页区域900<0>(即,第一页区域组)和第二页区域900<1:K>、901<0:K>、…(即,第二页区域组)。更具体而言,当包括在存储器单元阵列900中的多个单位页区域900<0:K>、901<0:K>、…之中的一个页区域900<0>被设置为第一页区域组时,其余的页区域900<1:K>、901<0:K>、…可以被设置为第二页区域组。
图13的配置与图10的配置基本相同,只不过多个单位页区域900<0:K>、901<0:K>、…被划分为第一页区域900<0>和第二页区域900<1:K>、901<0:K>、…。
具体地,当假设包括在存储器单元阵列900中的多个单元是SLC时,图13所示的非易失性存储装置包括比特合格检测单元920、编程脉冲施加计数储存单元940和编程起始电压设置单元930。当第一页区域900<0>的编程目标单元之中有至少一个单元被编程了高于参考电压的电压时,比特合格检测单元920输出1比特合格信号1BIT_PASS。编程脉冲施加计数储存单元940将编程脉冲施加计数次数——其中,在对第一页区域900<0>的编程操作期间,重复地施加编程脉冲,直到1比特合格信号1BIT_PASS输出为止——储存在第一页区域900<0>的多个辅助单元BL<M:N-1>中。编程起始电压设置单元930基于储存在第一页区域900<0>的多个辅助单元BL<M:N-1>中的编程脉冲施加计数次数来为第二页区域900<1:K>、901<0:K>、…的编程操作设置编程起始电压。
此外,根据本发明一个示例性实施例的非易失性存储装置还包括编程脉冲计数单元950。在对第一页区域900<0>的编程操作期间,编程脉冲计数单元950对施加给第一页区域900<0>的编程脉冲施加计数次数进行计数,直到1比特合格信号输出为止,并将计数得到的编程脉冲施加的次数传送给编程脉冲施加计数储存单元940。
当包括在存储器单元阵列900中的多个单元是MLC时,图13所示的非易失性存储装置包括比特合格检测单元920、第一编程起始电压调整单元930、940和950以及第二编程起始电压调整单元930、940、950和910(例如,相同的起始电压调整单元930、940、950和910既用于第一编程起始电压调整单元也用于第二编程起始电压调整单元)。当第一页区域900<0>或第二页区域900<1:K>、901<0:K>、…的编程目标单元之中有至少一个单元被编程了高于参考电压的电压时,比特合格检测单元920输出1比特合格信号1BIT_PASS。第一编程起始电压调整单元930、940和950将编程脉冲施加计数次数——其中在对施加了第一编程起始电压的第一页区域900<0>的第一编程操作期间,重复地施加编程脉冲,直到1比特合格信号1BIT_PASS输出为止——储存在第一页区域900<0>的多个辅助单元BL<M:N-1>中,并且通过根据储存的编程脉冲施加计数次数调整第一编程起始电压而将编程脉冲施加计数次数应用于第一页区域900<0>的第二编程操作。第二编程起始电压调整单元930、940、950和910将编程脉冲施加计数次数——其中,在被选中并施加了编程起始电压的第二页区域900<1:K>、901<0:K>、…的第一编程操作期间,重复地施加编程脉冲,直到1比特通过信号1BIT_PASS输出为止——储存在第二页区域900<1:K>、901<0:K>、…的多个辅助单元BL<M:N-1>中,并通过根据储存的编程脉冲施加计数次数调整第二编程起始电压而将编程脉冲施加计数次数应用于第二页区域900<1:K>、901<0:K>、…的第二编程操作。
根据一个实例,第一编程起始电压调整单元930、940和950和第二编程起始电压调整单元930、940、950和910可以重叠,并且可以使用相同的元件来作为针对第一和第二编程起始电压调整单元的共同的元件。这里,已经用图9的配置说明了具有如上所述的不同操作的不同页区域组,即便两种特征具有相同的元件。
第一编程起始电压调整单元930、940和950是与图9所示的编程脉冲施加计数储存单元940、编程起始电压设置单元930和编程脉冲计数单元950相同的元件。更具体而言,非易失性存储装置包括第一编程脉冲施加计数储存单元940、第一编程起始电压设置单元930和编程脉冲计数单元950。第一编程脉冲施加计数储存单元940将编程脉冲施加计数次数——其中,在对施加了第一编程起始电压的第一页区域900<0>的第一编程操作中,重复地施加编程脉冲,直到1比特合格信号1BIT_PASS输出为止——储存在第一页区域900<0>的多个辅助单元BL<M:N-1>中。第一编程起始电压设置单元930根据储存在第一页区域900<0>的多个辅助单元BL<M:N-1>中的编程脉冲施加计数次数来设置第一编程起始电压,并将其应用于第一页区域900<0>的第二编程操作。编程脉冲计数单元950对在第一页区域900<0>的第一编程操作中输出的编程脉冲计数次数进行计数,并将计数得到的编程脉冲施加的次数传送给第一编程脉冲施加计数储存单元940。
因此,利用第一编程起始电压调整单元930、940和950的操作,可以执行图11所示的第一编程操作和第二编程操作。
然而,第二编程起始电压调整单元930、940、950和910的操作不同于第一编程起始电压调整单元930、940和950的操作之处在于,第二编程起始电压调整单元930、940、950和910的操作包括对应用于第二页区域900<1:K>、901<0:K>、…的第一编程操作的编程起始电压进行选择作为第一编程起始电压的操作。由于这种在操作上的差别,第二编程起始电压调整单元930、940、950和910包括图9所示的编程脉冲施加计数储存单元940、编程起始电压设置单元930和编程脉冲计数单元950,并且还包括图14所示的页缓冲单元910的电压选择信号发生单元9102。
因此,第二编程起始电压调整单元930、940、950和910包括电压选择信号发生单元9102、第二编程脉冲施加计数储存单元940、第二编程起始电压设置单元930和第二编程脉冲计数单元950。电压选择信号发生单元9102将储存在第一页区域900<0>的多个辅助区域900D中的编程脉冲施加计数次数与阈值进行比较,并在比较的基础上产生电压选择信号VSEL。在根据电压选择信号VSEL选择和施加编程起始电压的第二页区域900<1:K>、901<0:K>、…的第一编程操作中,第二编程脉冲施加计数储存单元940将编程脉冲施加计数次数储存在第二页区域900<1:K>、901<0:K>、…的多个辅助区域900D中。第二编程起始电压设置单元930根据储存在第二页区域900<1:K>、901<0:K>、…的多个辅助区域900D中的编程脉冲施加计数次数来为第二页区域900<1:K>、901<0:K>、…调整(或者不调整)编程起始电压,并将调整或未调整的编程起始电压应用于第二页区域900<1:K>、901<0:K>、…的第二编程操作。第二编程脉冲计数单元950对在第二页区域900<1:K>、901<0:K>、…的第一编程操作中输出的编程脉冲施加计数次数进行计数,并将计数得到的编程脉冲施加次数传送给第二编程脉冲施加计数储存单元940。
由于针对第二页区域的第二编程起始电压调整单元930、940、950和910的操作不同于针对第一页区域的第一编程起始电压调整单元930的操作,因此不能直接应用图11所示的第一编程操作和第二编程操作。因此,将图11所示的第一编程操作和第二编程操作稍作修改得到的第一编程操作和第二编程操作应用作为图15的第一编程操作和第二编程操作。
参照图15更加详细地描述根据本发明一个示例性实施例的非易失性存储装置的编程操作。
当在执行图11中的第一编程步骤和第二编程步骤之后在步骤1500向非易失性存储装置供电(即,不断电或在断电后又加电)时,提供初始化了的第一编程起始电压和初始化了的第二编程起始电压。通过假设将图15的操作步骤应用于单位页区域900<0:K>、901<0:K>、…来对操作进行解释。另一方面,在第二编程起始电压调整单元930、940、950和910中,在第一页区域900<0>的第一编程操作期间针对第一编程起始电压调整单元930、940和950的调整过的编程起始电压被定义为第一编程起始电压,且与第二页区域900<1:K>、901<0:K>、…的第一编程操作和第二编程操作相对应的编程起始电压被定义作为第二编程起始电压。因此,在图15所示的初始化了的第一编程起始电压和初始化了的第二编程起始电压应用于第一页区域900<0>的操作的情况下,它们都可以用第一页区域900<0>的第一编程起始电压来替换。在图15所示的初始化了的第一编程起始电压和初始化了的第二编程起始电压应用于第二页区域900<1:K>、901<0:K>、…的操作的情况下,它们都可以用第二页区域900<1:K>、901<0:K>、…的第二编程起始电压来替换。
在向非易失性存储装置供电(即,不断电或者在断电之后又加电)(步骤1500)之后,确定要执行的编程操作(步骤1510)。更具体而言,由于图15所示的操作是用于第二页区域900<1:K>、901<0:K>、....的第二编程起始电压调整单元930、940、950和910的操作,因此图15所示的第一编程操作执行的是第二页区域900<1:K>、901<0:K>、...的第一编程操作,且图15所示的第二编程操作执行的是第二页区域900<1:K>、901<0:K>、...的第二编程操作。
这里,经由图11所示的针对第一页区域的编程操作,编程脉冲施加计数次数PD[0]被储存在例如第一页区域900<0>的多个辅助单元BL<M:N-1>中。因此,在经由图15所示的第一编程操作而执行的第二页区域900<1:K>、901<0:K>、…的第一编程操作中,读取储存在第一页区域900<0>的辅助单元BL<M:N-1>中的编程脉冲施加计数次数PD[0](步骤1530)。
通过电压选择信号发生单元9102储存在第一页区域900<0>的辅助单元BL<M:N-1>中并从第一页区域900<0>的辅助单元BL<M:N-1>中读取的编程脉冲施加计数次数PD[0]与第二页区域900<1:K>、901<0:K>、…的阈值进行比较(步骤1532),并且根据比较的输出来调整或不调整第二页区域900<1:K>、901<0:K>的初始的第一起始电压(步骤1532)。
更具体而言,当所读取的编程脉冲施加计数次数PD[0]——该编程脉冲施加计数次数PD[0]是直到在第一页区域900<0>中检测到1比特合格为止计数得到的——不大于第二页区域900<1:K>、901<0:K>的阈值时,电压选择信号VSEL不被激活,且不调整第二页区域900<1:K>、901<0:K>的初始化了的第一编程起始电压。然而,在所读取的编程脉冲施加计数次数PD[0]——该编程脉冲施加计数次数PD[0]是直到在第一页区域900<0>中检测到1比特合格为止计数得到的——大于第二页区域900<1:K>、901<0:K>的阈值的情形中,电压选择信号VSEL被激活。当电压选择信号VSEL被激活时,根据一个实例,将所读取的编程脉冲施加计数次数PD[0]与步进电压的乘积与初始的第一编程起始电压相加,以用作第二页区域900<1:K>、901<0:K>、…的第一编程起始电压,并被设置为第二页区域900<1:K>、901<0:K>、…的新的第一编程起始电压(步骤1533)。根据另一个实例,将响应于电压选择信号VSEL的激活而读取的编程脉冲施加计数次数PD[0]与第二页区域900<1:K>、901<0:K>、…的阈值之差与步进电压相乘,并且将与所得的值相对应的电压与初始化了的第一编程起始电压相加,其中相加得到的电压被用作第二页区域900<1:K>、901<0:K>的新的第一编程起始电压。最终的相加得到的电压可以被设置为第二页区域900<1:K>、901<0:K>、…的新的第一编程起始电压(步骤1533)。
如上所述,在所读取的编程脉冲施加计数次数PD[0]——该编程脉冲施加计数次数PD[0]是直到在第一页区域900<0>中检测到1比特合格为止计数得到的——小于第二页区域900<1:K>、901<0:K>的阈值的情形中,电压选择信号发生单元9102的电压选择信号VSEL被去激活。因此,初始化了第一编程起始电压900<1:K>、901<0:K>、…在没有改变的情况下(步骤1532)被用作第二页区域900<1:K>的第一编程起始电压。
根据一个实例,可以根据不同的需要——例如单元的特性——来不同地选择第二页区域900<1:K>、901<0:K>、…的阈值。根据一个实例,当读取的编程脉冲施加计数次数PD[0]小于2时,可以认为编程脉冲施加计数次数PD[0]是微不足道的。因此,在这种情况下,可以将2设置作为阈值。此外,在所读取的编程脉冲施加计数次数PD[0]——该编程脉冲施加计数次数PD[0]是直到在第一页区域900<0>中检测到1比特合格为止计数得到的——大于第二页区域900<1:K>、901<0:K>的阈值并且设置了第二页区域900<1:K>、901<0:K>的新的第一编程起始电压的情形中,它实质上与经由第一编程起始电压调整单元930、940和950的操作来设置第一页区域900<0>的第一编程起始电压的状态相同。因此,图15所示的第一编程操作之中的操作1530、1532和1533确定是否将第二页区域900<1:K>、901<0:K>、…的第一编程起始电压调整为或是不调整为等于初始第一编程起始电压。
一旦图15所示的第一编程操作的操作1530、1532和1533完成,确定第二页区域900<1:K>、901<0:K>、…的第二编程起始电压的操作实质上与图11中的确定第二编程起始电压步骤相同。更具体而言,在第二页区域900<1:K>、901<0:K>的第一编程操作中直到检测到1比特合格为止计数得到的编程脉冲施加计数次数PD被储存在第二页区域900<1:K>、901<0:K>、…的多个辅助单元BL<M:N-1>中。
图15所示的第二编程操作与针对图11所示的第二编程操作而执行的步骤相同。更具体而言,与第二页区域900<1:K>、901<0:K>、…的第二编程操作相对应的第二编程起始电压是基于直到检测到1比特合格为止计数得到并被储存在第二页区域900<1:K>、901<0:K>、…的辅助单元BL<M:N-1>中的编程脉冲施加计数次数PD来确定的。
在图9、图11和图13至图15中,当包括在存储器单元阵列900中的多个单元是SLC时,可以利用图11的第一编程步骤将用于寻找适合于第一页区域900<0>特性的初始起始电压的信息——即,在第一页区域900<0>的编程操作中直到检测到1比特合格为止计数得到的编程脉冲施加计数次数(PD)——储存在第一页区域900<0>的多个辅助单元BL<M:N-1>中。然后,可以利用图11的第二编程步骤而在第二页区域900<1:K>、901<0:K>、…的编程操作期间基于上述用于寻找适合于第一页区域900<0>操作特性的初始起始电压的信息来找到适合于第二页区域900<1:K>、901<0:K>、…操作特性的初始起始电压。以此方式,可以减少用于执行第二页区域900<1:K>、901<0:K>、…的编程操作的时间。
此外,当包括在存储器单元阵列900中的多个单元是MLC时,利用图11的第一编程步骤将用于寻找适合于第一页区域900<0>操作特性的初始起始电压的信息——即,第一页区域900<0>的第一编程操作中的编程脉冲施加计数次数(PD)——储存在第一页区域900<0>的多个辅助单元BL<M:N-1>中。然后,利用图11的第二编程步骤将所述信息应用于第一页区域900<0>的第二编程操作,从而显著地减少用于执行第一页区域的第二编程操作的时间。此外,基于上述用于寻找适合于第一页区域900<0>操作特性的初始起始电压的信息,可以在第二页区域900<1:K>、901<0:K>、…的第一编程操作期间利用图15的第一编程步骤来寻找适合于第二页区域900<1:K>、901<0:K>、…操作特性的初始起始电压。以此方式,可以利用图15的第一编程步骤来减少用于执行寻找适合于第二页区域900<1:K>、901<0:K>、…操作特性的初始起始电压的操作的时间,和用于执行第二页区域900<1:K>、901<0:K>、…的第一编程操作的时间。
根据本发明的示例性实施例,在获得了与最佳编程起始电压有关的信息之后,在执行对单位页区域的第二编程操作中使用所述信息,所述信息可以在对包括多个正常单元和多个辅助单元的单位页区域执行第一编程操作时得知并被储存在多个辅助单元中。以此方式,可以减少在非易失性存储装置的编程中用于执行验证操作的时间。
此外,在获得了与最佳编程起始电压有关的信息之后,在执行对第二页区域的编程操作中使用所述信息,所述信息可以在对每个包括多个正常单元和多个辅助单元的第一页区域执行编程操作时得知并被储存在第一页区域的多个辅助单元中。以此方式,可以减少非易失性存储装置的编程时间中用于执行验证操作的时间。
另外,由于与最佳编程起始电压有关的信息被储存在多个辅助单元中,因此即使没有向非易失性存储装置供电也不会丢失信息。因此,即使在数据输入/输出操作期间供电条件频繁改变,仍可以用储存的信息来减少编程时间之中用于执行验证操作的时间。
图16是根据本发明另一个方面的集成电路芯片的框图。
图16所示的集成电路芯片1600包括如上所述的根据本发明实施例的非易失性存储装置1610。非易失性存储装置1610包括快闪存储器,并且与处理器1620共用集成电路芯片1600。非易失性存储装置1610和处理器1620通过合适的通信线或总线1630耦接在一起。
在本发明的另一个实施例中,可以在集成电路芯片中包括多个非易失性存储装置。
图17是根据本发明另一个方面的紧凑型(compact)存储卡的框图。
图17所示的紧凑型存储卡1700包括如上所述的根据本发明实施例的多个非易失性存储装置1710(1)至1710(N)。紧凑型存储卡1700可以是嵌入了非易失性存储装置1710(1)至1710(N)的单个集成电路。
图18是根据本发明另一方面的信息处理系统的框图。
图18所示的信息处理系统1800包括处理器1810、显示单元1820和输入/输出单元1830以及如上所述的根据本发明实施例的非易失性存储装置1840。
非易失性存储器1840和处理器1810可以嵌入在单个集成电路芯片上,例如图16所示的集成电路芯片。处理器1810、显示单元1820、输入/输出单元1830以及非易失性存储装置1840通过合适的通信线或总线1850耦接在一起。
根据本发明另一个方面,用户可以通过输入/输出单元1830对处理器1810或非易失性存储装置1840输入指令。输入/输出单元1830可以是键盘或其他设备,以允许用户与信息处理系统1800通信。
虽然已经参照具体的实施例描述了本发明,但是本领域技术人员将清楚的是,在不脱离所附权利要求所限定的本发明的精神和范围的前提下可以进行各种变化和修改。
Claims (24)
1.一种非易失性存储装置,包括:
页区域,所述页区域包括多个正常单元和多个辅助单元;
检测单元,所述检测单元被配置为当所述页区域的编程目标单元中有至少一个单元被编程了高于参考电压的电压时输出合格信号;
计数储存单元,所述计数储存单元被配置为在所述页区域的第一编程操作期间将计数储存在所述多个辅助单元中,其中所述计数表示直到从所述检测单元输出所述合格信号为止施加给所述至少一个单元的编程脉冲的总数;以及
电压设置单元,所述电压设置单元被配置为基于储存在所述多个辅助单元中的所述计数来为所述页区域的第二编程操作设置编程起始电压,
其中,在完成所述第一编程操作之后,在与所述第一编程操作相同的页区域中使用所述第一编程操作中的所述计数来执行所述第二编程操作,
其中,所述电压设置单元被配置为读取储存在所述多个辅助单元中的所述计数,通过将所述计数和单位步进电压相乘所获得的电压与所述第二编程操作的初始的编程起始电压相加来获得总和电压,并且将所述总和电压设置为所述第二编程操作的所述编程起始电压。
2.如权利要求1所述的非易失性存储装置,还包括计数单元,所述计数单元被配置为对所述编程脉冲进行计数,并将所述计数传送给所述计数储存单元。
3.如权利要求1所述的非易失性存储装置,还包括:
与所述多个正常单元相对应的正常页缓冲单元;和
与所述多个辅助单元相对应的辅助页缓冲单元。
4.如权利要求3所述的非易失性存储装置,其中,所述计数储存单元被配置为将所述计数输出给所述辅助页缓冲单元。
5.如权利要求1所述的非易失性存储装置,其中,
所述正常单元和所述辅助单元是多电平单元MLC,
所述第一编程操作是最低有效位LSB编程操作,以及
所述第二编程操作是最高有效位MSB编程操作。
6.一种非易失性存储装置,包括:
共用字线的第一页区域和第二页区域,其中所述第一页区域和所述第二页区域中的每个包括多个正常单元和多个辅助单元;
合格检测单元,所述合格检测单元被配置为当所述第一页区域的编程目标单元中有至少一个单元被编程了高于参考电压的电压时输出第一合格信号,以及当所述第二页区域中的编程目标单元中有至少一个单元被编程了高于参考电压的电压时输出第二合格信号;
第一电压调整单元,所述第一电压调整单元被配置为将第一计数储存在所述第一页区域的所述多个辅助单元中,并根据储存的所述第一计数来调整第一编程起始电压,其中所述第一计数表示直到从所述合格检测单元输出所述第一合格信号为止施加给所述第一页区域的编程脉冲的总数;以及
第二电压调整单元,所述第二电压调整单元被配置为将第二计数储存在所述第二页区域的所述多个辅助单元中,并根据储存的所述第二计数来调整第二编程起始电压,其中所述第二计数表示直到从所述合格检测单元输出所述第二合格信号为止施加给所述第二页区域的编程脉冲的总数,
其中,所述第一电压调整单元包括:
第一计数储存单元,所述第一计数储存单元被配置为在所述第一页区域的第一编程操作中将所述第一计数储存在所述第一页区域的所述多个辅助单元中;以及
第一电压设置单元,所述第一电压设置单元被配置为根据所述第一计数来设置所述第一编程起始电压,并对所述第一页区域的第二编程操作施加所述第一编程起始电压,
其中,在完成所述第一编程操作之后,在与所述第一编程操作相同的页区域中使用所述第一编程操作中的所述计数来执行所述第二编程操作,
其中,所述第一电压设置单元被配置为读取储存在所述第一页区域的所述多个辅助单元中的所述第一计数,通过将读取的所述第一计数乘以步进电压所获得的电压与用于第一编程起始电压的初始编程起始电压相加来获得总和电压,并施加所述总和电压作为用于所述第一页区域的第二编程操作的第一编程起始电压。
7.如权利要求6所述的非易失性存储装置,其中,所述第二电压调整单元包括:
电压选择信号发生单元,所述电压选择信号发生单元被配置为将阈值与所述第一计数进行比较,并产生电压选择信号;
第二计数储存单元,所述第二计数储存单元被配置为在所述第二页区域的第一编程操作期间将所述第二计数储存在所述第二页区域的所述多个辅助单元中,其中在所述第二页区域的第二编程操作期间根据所述电压选择信号来调整并施加用于所述第二编程起始电压的初始编程起始电压;以及
第二电压设置单元,所述第二电压设置单元被配置为根据所述第二计数来设置所述第二编程起始电压,并在所述第二页区域的第二编程操作期间施加所述第二编程起始电压。
8.如权利要求7所述的非易失性存储装置,还包括计数单元,所述计数单元被配置为对编程脉冲进行计数并将所述第一计数输出给所述第一计数储存单元,并且还被配置为将所述第二计数输出给所述第二计数储存单元。
9.如权利要求6所述的非易失性存储装置,还包括:
正常页缓冲单元,所述正常页缓冲单元与所述第一页区域和所述第二页区域的所述多个正常单元相对应;和
辅助页缓冲单元,所述辅助页缓冲单元与所述第一页区域和所述第二页区域的所述多个辅助单元相对应。
10.如权利要求9所述的非易失性存储装置,其中,所述第一计数储存单元被配置为将所述第一计数输出到与所述第一页区域的所述多个辅助单元相对应的所述辅助页缓冲单元。
11.如权利要求7所述的非易失性存储装置,其中,所述第二计数储存单元被配置为将所述第二计数输出给与所述第二页区域的所述多个辅助单元相对应的所述辅助页缓冲单元。
12.如权利要求7所述的非易失性存储装置,其中,所述电压选择信号发生单元被配置为读取储存在所述第一页区域的所述多个辅助单元中的所述第一计数,当读取的所述第一计数大于阈值时将所述电压选择信号激活,调整用于所述第二编程起始电压的初始编程起始电压,并施加经调整的初始编程起始电压作为用于所述第二页区域的第一编程操作的第二编程起始电压,以及
当读取的所述第一计数等于或小于所述阈值时,所述电压选择信号发生单元被配置为将所述电压选择信号去激活,并施加所述第二编程起始电压的初始编程起始电压作为所述第二页区域的第一编程操作的第二编程起始电压。
13.如权利要求7所述的非易失性存储装置,其中,所述第二电压设置单元被配置为读取储存在所述第二页区域的所述多个辅助单元中的所述第二计数,通过将所述第二计数乘以步进电压所获得的电压与用于所述第二编程起始电压的初始编程起始电压相加来获得总和电压,并施加所述总和电压作为用于所述第二页区域的第一编程操作的第二编程起始电压。
14.如权利要求7所述的非易失性存储装置,其中,
所述第二电压设置单元被配置为读取储存在所述第二页区域的所述多个辅助单元中的所述第二计数,当所述第二计数大于阈值时通过将所述第二计数与所述阈值之差乘以步进电压所获得的电压与用于所述第二编程起始电压的初始编程起始电压相加来获得总和电压,并施加所述总和电压作为用于所述第二页区域的第一编程操作的第二编程起始电压;以及
当所述第二计数等于或小于所述阈值时,所述第二电压设置单元被配置为施加用于所述第二编程起始电压的所述初始编程起始电压作为用于所述第二页区域的第一编程操作的第二编程起始电压。
15.如权利要求6所述的非易失性存储装置,其中,
所述第一页区域的所述正常单元和所述辅助单元以及所述第二页区域的所述正常单元和所述辅助单元是多电平单元MLC,
所述第一页区域和所述第二页区域的第一编程操作是最低有效位LSB编程操作,以及
所述第一页区域和所述第二页区域的第二编程操作是最高有效位MSB编程操作。
16.一种操作非易失性存储装置的方法,所述方法包括以下步骤:
通过施加初始编程起始电压来执行页区域的第一编程操作,所述页区域包括多个正常单元和多个辅助单元;
在所述第一编程操作期间,对施加给所述页区域的编程脉冲进行计数,直到所述页区域的编程目标单元之中有至少一个单元被编程了高于验证电压的电压为止,并输出计数;
将所述计数储存在所述多个辅助单元中;
根据所述计数来设置编程起始电压;以及
通过施加在所述设置操作中确定的所述编程起始电压来执行所述页区域的第二编程操作,
其中,在完成所述第一编程操作之后,在与所述第一编程操作相同的页区域中使用所述第一编程操作中的所述计数来执行所述第二编程操作,
其中,设置编程起始电压的步骤包括以下步骤:
读取储存在所述多个辅助单元中的所述计数;以及
通过将所述计数乘以步进电压所获得的电压与所述初始编程起始电压相加来获得总和电压,并输出所述总和电压作为用于所述页区域的第二编程操作的编程起始电压。
17.如权利要求16所述的方法,其中,储存所述计数的步骤包括以下步骤:
将所述计数输出到与所述多个辅助单元相对应的辅助页缓冲器;以及
在将所述计数输出给所述辅助页缓冲器之后完成所述第一编程操作。
18.如权利要求16所述的方法,其中,
所述正常单元和所述辅助单元是多电平单元MLC;
所述第一编程操作是最低有效位LSB编程操作;以及
所述第二编程操作是最高有效位MSB编程操作。
19.一种操作非易失性存储装置的方法,所述方法包括以下步骤:
通过施加第一编程起始电压来执行第一页区域的第一编程操作,其中所述第一页区域包括多个正常单元和多个辅助单元;
将计数储存在所述第一页区域的所述多个辅助单元中,其中所述计数表示在所述第一页区域的编程目标单元中有至少一个单元被编程了高于验证电压的电压之前施加给所述第一页区域的编程脉冲的总数;
在所述第一页区域的编程操作期间根据所述计数来设置所述第一编程起始电压;
通过选择第二编程起始电压来执行第二页区域的第一编程操作,其中所述第二页区域包括多个正常单元和多个辅助单元并且与所述第一页区域共用串;以及
在所述第二页区域的编程操作期间根据所述计数来确定用于选择所述第二编程起始电压的电压选择信号的值,
其中,设置所述第一编程起始电压的步骤包括以下步骤:
读取储存在所述第一页区域的所述多个辅助单元中的所述计数;以及
通过将所述计数乘以步进电压所获得的电压与用于所述第一编程起始电压的初始编程起始电压相加来获得总和电压,并输出所述总和电压作为用于所述第一页区域的第二编程操作的第一编程起始电压,
其中,在完成所述第一编程操作之后,在与所述第一编程操作相同的页区域中使用所述第一编程操作中的所述计数来执行所述第二编程操作。
20.如权利要求19所述的方法,其中,储存所述编程脉冲计数次数的步骤包括以下步骤:
对编程脉冲的总数进行计数;
将所述计数输出到与所述第一页区域的所述多个辅助单元相对应的辅助页缓冲器;以及
在将所述计数输出到与所述第一页区域的所述多个辅助单元相对应的辅助页缓冲器之后完成所述第一页区域的编程操作。
21.如权利要求19所述的方法,其中,确定所述电压选择信号的值的步骤包括以下步骤:
读取储存在所述第一页区域的所述多个辅助单元中的所述计数;
当所述计数大于阈值时将所述电压选择信号激活,调整用于所述第二编程起始电压的初始编程起始电压,并施加经调整的所述初始编程起始电压作为用于所述第二页区域的第二编程操作的第二编程起始电压;以及
当所述计数等于或小于所述阈值时将所述电压选择信号去激活,并施加用于所述第二编程起始电压的所述初始编程起始电压作为用于所述第二页区域的编程操作的第二编程起始电压。
22.如权利要求19所述的方法,其中,所述第一页区域的所述正常单元和所述辅助单元以及所述第二页区域的所述正常单元和所述辅助单元是多电平单元MLC,并且所述方法还包括以下步骤:
将第二计数储存在所述第二页区域的所述多个辅助单元中,其中所述第二计数表示在所述第二页区域的编程操作期间直到所述第二页区域的编程目标单元之中有至少一个单元被编程了高于验证电压的电压为止施加给所述第二页区域的编程脉冲的总数;
根据所述第二计数来为所述第二页区域的第二编程操作设置编程起始电压,
其中,所述第一页区域的编程操作分为所述第一页区域的第一编程操作和第二编程操作,所述第二页区域的编程操作分为所述第二页区域的第一编程操作和第二编程操作。
23.如权利要求22所述的方法,其中,
分别在所述第一页区域的第一编程操作和第二编程操作期间执行所述将计数储存在所述第一页区域的所述多个辅助单元中的操作和设置所述第一编程起始电压的操作;
将所述第一编程起始电压施加于所述第一页区域的所述第二编程操作;
分别在所述第二页区域的第一编程操作和第二编程操作期间执行将所述第二计数储存在所述第二页区域的所述多个辅助单元中的操作和设置所述第二编程起始电压的操作;以及
将所述第二编程起始电压应用于所述第二页区域的所述第二编程操作。
24.如权利要求22所述的方法,其中,所述第一页区域和所述第二页区域的所述第一编程操作每个都是最低有效位LSB编程操作,所述第一页区域和所述第二页区域的所述第二编程操作每个都是最高有效位MSB编程操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2011-0017930 | 2011-02-28 | ||
KR1020110017930A KR101222063B1 (ko) | 2011-02-28 | 2011-02-28 | 불휘발성 메모리 장치 및 그 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102651235A CN102651235A (zh) | 2012-08-29 |
CN102651235B true CN102651235B (zh) | 2018-05-04 |
Family
ID=46693227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110141927.3A Active CN102651235B (zh) | 2011-02-28 | 2011-05-30 | 非易失性存储装置及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8456912B2 (zh) |
JP (1) | JP6154986B2 (zh) |
KR (1) | KR101222063B1 (zh) |
CN (1) | CN102651235B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8385123B2 (en) * | 2010-08-18 | 2013-02-26 | Micron Technology, Inc. | Programming to mitigate memory cell performance differences |
KR101211840B1 (ko) * | 2010-12-30 | 2012-12-12 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치의 프로그램 방법 |
US9324433B2 (en) | 2011-04-25 | 2016-04-26 | Microsoft Technology Licensing, Llc | Intelligent flash reprogramming |
US8693252B2 (en) * | 2011-07-12 | 2014-04-08 | Samsung Electronics Co., Ltd. | Method and system for adjusting read voltage in flash memory device |
WO2013173729A1 (en) * | 2012-05-18 | 2013-11-21 | Cornell University | Methods and systems for providing hardware security functions using flash memories |
US8842477B2 (en) * | 2012-06-01 | 2014-09-23 | Spansion Llc | Method, apparatus, and manufacture for flash memory adaptive algorithm |
US9142298B2 (en) * | 2013-02-11 | 2015-09-22 | Sandisk Technologies Inc. | Efficient smart verify method for programming 3D non-volatile memory |
KR102118979B1 (ko) * | 2013-09-13 | 2020-06-05 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
KR20150047821A (ko) | 2013-10-25 | 2015-05-06 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법 |
JP2015176620A (ja) * | 2014-03-14 | 2015-10-05 | 株式会社東芝 | 半導体記憶装置 |
JP6196199B2 (ja) * | 2014-09-12 | 2017-09-13 | 東芝メモリ株式会社 | 半導体記憶装置 |
KR20160059174A (ko) * | 2014-11-18 | 2016-05-26 | 에스케이하이닉스 주식회사 | 반도체 장치 |
KR20160108770A (ko) | 2015-03-06 | 2016-09-20 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
KR20160112450A (ko) | 2015-03-19 | 2016-09-28 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것을 포함하는 테스트 시스템 |
US9548130B2 (en) * | 2015-04-08 | 2017-01-17 | Sandisk Technologies Llc | Non-volatile memory with prior state sensing |
JP6538496B2 (ja) * | 2015-09-11 | 2019-07-03 | 東芝メモリ株式会社 | メモリシステム |
US9792999B2 (en) * | 2015-10-30 | 2017-10-17 | SK Hynix Inc. | Adaptive scheme for incremental step pulse programming of flash memory |
KR102391514B1 (ko) * | 2015-11-04 | 2022-04-27 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 동작 방법 |
KR102340328B1 (ko) * | 2016-01-07 | 2021-12-16 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
KR102505852B1 (ko) * | 2016-01-15 | 2023-03-03 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 동작 방법 |
JP2017168156A (ja) * | 2016-03-14 | 2017-09-21 | 東芝メモリ株式会社 | 半導体記憶装置 |
KR20190007252A (ko) | 2017-07-12 | 2019-01-22 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10049729B1 (en) * | 2017-09-19 | 2018-08-14 | Qualcomm Incorporated | Flexible memory assistance scheme |
KR20190050487A (ko) * | 2017-11-03 | 2019-05-13 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
US10535412B2 (en) | 2018-02-09 | 2020-01-14 | Sandisk Technologies Llc | Single pulse verification of memory cells |
KR20200017220A (ko) * | 2018-08-08 | 2020-02-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
CN111383697B (zh) * | 2018-12-30 | 2022-09-06 | 北京兆易创新科技股份有限公司 | 用于部分页编程的位扫描方法,部分页编程方法及非易失性存储器 |
KR20200106748A (ko) * | 2019-03-05 | 2020-09-15 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그 동작 방법 |
CN111951856B (zh) * | 2019-05-14 | 2023-06-02 | 兆易创新科技集团股份有限公司 | 一种部分编程的方法和装置 |
KR20200136173A (ko) * | 2019-05-27 | 2020-12-07 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그 동작 방법 |
JP2022040515A (ja) * | 2020-08-31 | 2022-03-11 | ウィンボンド エレクトロニクス コーポレーション | フラッシュメモリおよびプログラミング方法 |
CN113707204B (zh) * | 2021-08-31 | 2023-08-08 | 长江存储科技有限责任公司 | 存储器编程方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1697084A (zh) * | 2004-05-14 | 2005-11-16 | 海力士半导体有限公司 | 闪存装置及其驱动方法 |
CN101587748A (zh) * | 2008-05-23 | 2009-11-25 | 海力士半导体有限公司 | 非易失性存储器的编程方法 |
CN101794618A (zh) * | 2009-02-04 | 2010-08-04 | 海力士半导体有限公司 | 非易失性存储器件及其操作方法 |
CN102103889A (zh) * | 2009-12-22 | 2011-06-22 | 英特尔公司 | Nand编程技术 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001084788A (ja) * | 1999-09-10 | 2001-03-30 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2003051193A (ja) * | 2001-08-07 | 2003-02-21 | Hitachi Ltd | 半導体装置 |
JP2004158053A (ja) * | 2002-11-01 | 2004-06-03 | Fujitsu Ltd | 不揮発性半導体記憶装置 |
KR100691379B1 (ko) * | 2005-06-24 | 2007-03-09 | 삼성전자주식회사 | 프로그램 동작 안정성이 향상된 불휘발성 반도체 메모리장치 및 이에 대한 프로그램 구동방법 |
KR100742278B1 (ko) * | 2005-11-23 | 2007-07-24 | 삼성전자주식회사 | 향상된 동작 속도 및 듀얼 프로그램 기능을 갖는 낸드플래시 메모리 장치 |
US7630249B2 (en) * | 2007-06-21 | 2009-12-08 | Sandisk Corporation | Intelligent control of program pulse duration |
KR100965071B1 (ko) * | 2008-07-10 | 2010-06-21 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 프로그램 방법 |
KR100976696B1 (ko) * | 2008-07-10 | 2010-08-18 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 프로그램 방법 |
JP5292052B2 (ja) * | 2008-10-21 | 2013-09-18 | 力晶科技股▲ふん▼有限公司 | 不揮発性半導体記憶装置とその書き込み方法 |
-
2011
- 2011-02-28 KR KR1020110017930A patent/KR101222063B1/ko active IP Right Grant
- 2011-05-10 US US13/104,475 patent/US8456912B2/en active Active
- 2011-05-30 CN CN201110141927.3A patent/CN102651235B/zh active Active
- 2011-08-30 JP JP2011187344A patent/JP6154986B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1697084A (zh) * | 2004-05-14 | 2005-11-16 | 海力士半导体有限公司 | 闪存装置及其驱动方法 |
CN101587748A (zh) * | 2008-05-23 | 2009-11-25 | 海力士半导体有限公司 | 非易失性存储器的编程方法 |
CN101794618A (zh) * | 2009-02-04 | 2010-08-04 | 海力士半导体有限公司 | 非易失性存储器件及其操作方法 |
CN102103889A (zh) * | 2009-12-22 | 2011-06-22 | 英特尔公司 | Nand编程技术 |
Also Published As
Publication number | Publication date |
---|---|
US20120218818A1 (en) | 2012-08-30 |
JP6154986B2 (ja) | 2017-06-28 |
KR20120098164A (ko) | 2012-09-05 |
KR101222063B1 (ko) | 2013-01-15 |
JP2012181907A (ja) | 2012-09-20 |
CN102651235A (zh) | 2012-08-29 |
US8456912B2 (en) | 2013-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102651235B (zh) | 非易失性存储装置及其操作方法 | |
CN109716440B (zh) | 在3d存储器的读取恢复阶段期间减少热电子注入类型的读取干扰 | |
CN111406291B (zh) | 非易失性存储器中的交错编程和验证 | |
US7881110B2 (en) | Method of programming nonvolatile memory device | |
CN101399083B (zh) | 非易失性存储装置及其操作方法 | |
CN103477392B (zh) | 具有减少的验证的改进的编程的非易失性存储器和方法 | |
US8050097B2 (en) | Method of programming nonvolatile memory device | |
US7525838B2 (en) | Flash memory device and method for programming multi-level cells in the same | |
TWI307099B (en) | Flash memory device being programmed and verified using voltage higher than target/read threshold voltage to achieve unifrom threshold voltage characteristic | |
CN110197690A (zh) | 非易失性存储器器件及其操作方法 | |
CN110400588A (zh) | 存储器装置以及该存储器装置的操作方法 | |
WO2017044165A1 (en) | Verify operations using different sense node voltages in a memory device | |
CN102067233B (zh) | 使用索引编程和减少的验证的非易失性存储器和方法 | |
CN101711414A (zh) | 非易失性存储器和用于预测编程的方法 | |
CN102347073B (zh) | 非易失性可变电阻元件的电阻控制方法 | |
CN113196401B (zh) | 对由于块氧化物减薄引起的编程速度变化进行补偿的存储器设备 | |
CN101779250B (zh) | 编程脉冲持续期的智能控制 | |
CN101640072A (zh) | 闪速存储设备的编程方法 | |
US20180374518A1 (en) | Sense Circuit With Two-Step Clock Signal For Consecutive Sensing | |
CN101783177A (zh) | 对非易失性存储设备进行编程的方法 | |
CN102089827A (zh) | 非易失性存储器和关联多遍编程的方法 | |
CN103489480A (zh) | 非易失性存储器件以及控制该非易失性存储器件的方法 | |
US20090122616A1 (en) | Non-volatile memory device and method of controlling a bulk voltage thereof | |
US8654590B2 (en) | Nonvolatile memory device performing a program verification with sense signals based on program data of adjacent memory cells and program method thereof | |
JP2011187145A (ja) | 不揮発性記憶装置及びデータ書き込み方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |