CN1905068B - 提高编程速度的非易失性存储器及相关编程方法 - Google Patents

提高编程速度的非易失性存储器及相关编程方法 Download PDF

Info

Publication number
CN1905068B
CN1905068B CN2006101076022A CN200610107602A CN1905068B CN 1905068 B CN1905068 B CN 1905068B CN 2006101076022 A CN2006101076022 A CN 2006101076022A CN 200610107602 A CN200610107602 A CN 200610107602A CN 1905068 B CN1905068 B CN 1905068B
Authority
CN
China
Prior art keywords
programmed
circuit
scan operation
secondary series
column
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
Application number
CN2006101076022A
Other languages
English (en)
Other versions
CN1905068A (zh
Inventor
李哲昊
李真烨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1905068A publication Critical patent/CN1905068A/zh
Application granted granted Critical
Publication of CN1905068B publication Critical patent/CN1905068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells

Landscapes

  • Read Only Memory (AREA)

Abstract

一种非易失性存储器件,包括存储单元阵列,该存储单元阵列具有以行和列方式排列的多个非易失性存储单元。通过对选定存储单元施加编程电压来对其编程。接下来,读取存储在选定单元中的数据位。然后,执行第一列扫描操作,以确定所选存储单元中的任一个是否未被充分编程。当确定所选存储单元中的至少一个未被充分编程时,执行第二列扫描操作以检测未被充分编程的选定存储单元的总数。当确定未被充分编程的选定存储单元的总数小于可由纠错电路纠正的数目时,编程操作用编程通过状态终止。

Description

提高编程速度的非易失性存储器及相关编程方法
技术领域
本发明的实施例一般涉及半导体存储器件。本发明的实施例尤其涉及非易失性存储器件以及相关联的编程方法。
本发明要求于2005年7月26日提交的韩国专利申请第2005-68039号的优先权,通过引用将该韩国专利申请的全部公开在此并入。
背景技术
近年来,对于高性能非易失性存储器件的要求以及显著地增加了。这种增加的要求至少部分是由于:越来越复杂的便携式电子装置的激增需要即使从设备切断电源时也能存储数据的高容量、高速存储器。
闪速存储器是当前使用的最普及形式的非易失性存储器之一。由于诸如其非易失性性质、其高容量、高速度、低功耗、防震、容易实现、以及每比特低成本之类的原因,闪速存储器是用于便携式电子设备的流行选择。包括闪速存储器的便携式电子设备的普通例子为蜂窝电话、相机、便携式音乐播放器、记忆棒等。闪速存储器还在诸如大多数个人计算机的BIOS之类的各种非便携式设备中使用。
大多数闪速存储器粗略地分为主要两类:与非(NAND)闪速存储器、和或非(NOR)闪速存储器。由于与NOR闪速存储器相比、其相对较高的密度,所以NAND闪速存储通常器用于长期数据存储,而由于与NAND非闪速存储器相比、其相对高的读取速度,NOR闪速存储器经常用于存储诸如编程代码之类、需要快速访问的数据。
在各种专利文档中公开了示范闪速存储器件。例如,美国专利第5677873号和第5991202号均公开了闪速存储器件及相关联的编程方法。
图1示出了用于对非易失性存储器件编程的传统方法的流程图。下面描述该方法。在下面的描述中,用括号(XXX)来表示示范方法步骤。
参见图1,将编程数据加载到非易失性存储器件的第一寄存器中(S10)。接下来,将加载到第一寄存器中的编程数据编程到非易失性存储器件的所选存储单元中(S20)。此后,执行验证读取操作以确定所选存储单元是否已达到了期望的阈值电压(S30),并且将验证读取操作的结果暂时存储在第二寄存器中。然后选择存储在第二寄存器中的数据,并将其加载到内部数据总线中(S40)。此操作被称为列扫描操作、或Y扫描操作。
在列扫描操作之后,检查加载到内部数据总线中的数据以确定它是否具有编程通过值(program pass value)(S50)。编程通过值是指示所选存储单元已被充分编程的数据值。与编程通过值相反的是编程失败值,其指示所选存储单元未被充分地编程。如果加载到内部数据总线中的数据具有编程通过值(S80),则完成存储单元的编程,并终止该方法。否则,该方法确定在所选存储单元上执行的编程循环的数目是否已到达了预定义的所允许的最大循环数目(S60)。如果在所选存储单元上执行的编程循环的数目到达了所允许的最大数目,则所选存储单元的编程已失败(S70),并且该方法终止。否则,重复步骤S20至S60,直到到达了循环的最大数目、或正确地编程了所选存储单元为止。
如果到达了编程循环的最大数目且所选存储单元未被编程,则将所选存储单元驻留的非易失性存储器件的块归类为坏块。换句话说,如果在最大数目的编程循环之后未能充分地对位进行编程,则认为包含该位的块是坏块。下文中,将把在执行编程操作之后未被充分编程的位称为“失败位(failedbit)”。
无论存储块中包含总共多少数目的失败块,存储块都被归类为“坏块”。然而,基于单个失败位而将整个块归类为坏块可能是浪费的,这是因为,通过在存储器件中包括纠错电路经常可补救少量的失败位的存在。当执行读取操作时,纠错电路可确保否则会被归类为“坏块”的块将输出正确的数据值。
发明内容
本发明的选定实施例通过提供非易失性存储器件来解决上述问题,在该非易失性存储器件中,只要存储块中的失败位的数目小于可由纠错电路纠正的位数,就可将该存储块归类为“好块”。另外,本发明的选定实施例允许通过放宽必须完整地编程每个存储块中的所有单元的要求来提高编程速度。
根据本发明的一个实施例,提供了一种执行非易失性存储器件的编程操作的方法。该方法包括:(a)对非易失性存储器件的选定存储单元进行编程;(b)从所选存储单元读取数据位;(c)通过顺序地选择预定子单位的数据位、并基于所选子单位确定是否有任何所选存储单元未被充分编程,来执行第一列扫描操作;(d)当在第一列扫描操作中确定所选存储单元中的至少一个未被充分编程、并且是在选择所有预定子单位的数据位之前时,执行第二列扫描操作来检测未被充分编程的选定存储单元的总数;以及(e)当确定未被充分编程的选定存储单元的总数小于可由纠错电路校正的数目时,用编程通过状态终止该编程操作。
根据本发明的另一个实施例,提供了另一种对非易失性存储器件进行编程的方法。该方法包括:(a)对非易失性存储器件的选定存储单元进行编程;(b)在对所选存储单元进行编程之后,执行验证读取操作以从所选存储单元中读取数据位;(c)在执行验证读取操作之后,执行第一列扫描操作以确定是否有任何选定存储单元未被充分编程;(d)当确定所选存储单元中的至少一个未被充分编程时,执行第二列扫描操作以确定未被充分编程的选定存储单元的总数;以及(e)当检测到未被充分编程的选定存储单元的总数小于可由纠错电路纠正的数目时,利用编程通过状态终止该编程操作。
根据本发明的另一个实施例,提供了一种非易失性存储器件。该非易失性存储器件包括存储单元阵列,该存储单元阵列包括以行和列形式排列的多个非易失性存储单元。该器件还包括:页缓冲器电路,用于在编程操作的验证读取操作中,从存储单元的选定行读取并存储数据位;列选择电路,用于响应于列地址、从页缓冲器电路中选择预定单位的数据位;通过/失败检查电路,用于基于由列选择电路在第一列扫描操作中选择的预定单位的数据位、确定所选行中的所有存储单元是否未被充分编程;以及失败位计数器,用于在第二列扫描操作中对所选行中未被充分编程的存储单元的总数进行计数。该器件还包括控制逻辑电路,用于激活失败位计数器,以便当在第一列扫描操作中由列选择电路选择的至少一个数据位指示所选行中的对应存储单元未被充分编程时,执行第二列扫描操作。当由第二列扫描操作确定的、未被充分编程的存储单元的总数小于可由纠错电路纠正的数目时,控制逻辑电路用编程通过状态终止该编程操作。
附图说明
下面与在附图中说明的几个实施例相关联地描述本发明。所有附图中,相同的附图标记表示相同的示范元件、组件、或步骤。附图中:
图1是说明对非易失性存储器件进行编程的传统方法的流程图;
图2是根据本发明的实施例的非易失性存储器件的框图;
图3是说明对在图2所述的非易失性存储器件进行编程的方法的流程图;
图4A是说明根据本发明实施例的非易失性存储器件的编程操作的概念图;以及
图4B是说明非易失性存储器件的传统编程操作的概念图。
具体实施方式
下面通过参考相应附图来描述本发明的示范实施例。这些实施例作为教导示例给出。本发明的实际范围由所附权利要求定义。
在下面的描述中,使用NAND闪速存储器作为非易失性存储器件的例子,来说明由本发明的某些方面提供的各种特性和功能。然而,本领域的技术人员将会理解,可使用其它类型的非易失性存储器件而不会背离本发明的范围。
图2是根据本发明实施例的非易失性存储器件1000的框图。参见图2,非易失性存储器件1000包括存储单元阵列120,其包括以矩阵方式排列、并连接到分别以行和列方式排列的对应字线和位线的多个非易失性存储单元。存储单元通常以NAND结构或NOR结构排列;然而,为了说明目的,将假定存储单元以NAND结构排列。
非易失性存储器件1000还包括控制逻辑电路140、行选择电路160、页缓冲器180、列选择电路200、第一地址生成器220、第二地址生成器240、通过/失败检查电路260、失败位计数器280、编程电路300、以及循环计数器320。
控制逻辑电路140被配置为控制非易失性存储器件1000的总体操作。下面的描述提供了控制逻辑电路140可以如何控制非易失性存储器件1000的编程操作的说明。然而,控制逻辑电路140还可控制诸如读取、擦除、和测试操作之类的非易失性存储器件1000的其它方面。控制逻辑电路140包括状态寄存器142,该状态寄存器142中存储了诸如编程失败信息和编程通过信息之类的编程状态信息。响应于诸如状态读取命令之类的命令,从非易失性存储器件1000输出状态寄存器142中存储的信息。
通常,通过列选择电路200和行选择电路160的操作选择存储单元阵列120中的一组存储单元来执行编程操作。然后在所选存储单元上执行一个或多个编程循环,其中,编程循环包括:将编程电压施加到所选存储单元,然后检查所选单元是否已被充分编程。如果确定足够数目的选定存储单元已被充分编程,则编程操作终止。否则,执行更多的编程循环直到足够数目的选定存储单元被编程了、或达到了最大数目的编程循环为止。如果与正被编程的总位数相比失败位的数目足够低,则认为足够数目的所选存储单元被编程了,以便尽管有失败位,纠错电路仍可恢复所有正被编程的位。
为了确定是否充分地编程了足够数目的选定存储单元,每个编程循环通常包括第一列扫描操作,用来确定是否有任何位未被正确编程。在第一列扫描操作确定一个或多个位未被正确编程的情况下,使用第二列扫描操作来确定未被正确编程的总位数。
下面提供由非易失性存储器件1000的各种组件执行的操作的更具体描述。
控制逻辑电路140控制行选择电路160以基于行地址选择存储单元阵列120中的行。页缓冲器电路180根据非易失性存储器件1000的操作模式,作为读出放大器或者写驱动器进行操作。例如,在读操作中,页缓冲器电路180从存储单元阵列120中读取数据,并暂时存储所读取的数据。在编程操作中,页缓冲器电路180暂时存储通过列选择电路200接收的输入数据,并根据所存储的输入数据,利用位线偏压来驱动所选位线。
控制逻辑电路140还控制第一和第二地址生成器220和240。第一地址生成器220在第一列扫描操作期间生成第一列地址。然后,第二地址生成器240使用第一地址生成器220的输出(即,第一列地址的当前值)、在第二列扫描操作期间生成第二列地址。通常执行第一列扫描操作来确定整组存储单元是否已被充分编程。如果该组存储单元中的任一个未被充分编程,则然后执行第二列扫描操作,以确定未充分编程的存储单元的数目。
在第一列扫描操作中,列选择电路200响应于第一列地址而选择存储在页缓冲器电路180中的预定单位的数据。在第二列扫描操作中,列选择电路200响应于第二列地址而选择存储在页缓冲器电路180中的预定单位的数据。在第二列扫描操作中选择的第一数据单位是在第一列扫描操作中选择的最后数据单位。换句话说,第一列扫描操作检查数据以检测任何失败位。一旦在第一列扫描操作中有失败位,则第一列扫描操作终止。然后,如果需要第二列扫描操作来对失败位的总数计数,则该列扫描操作在第一列扫描操作停止的地址处开始。这样,第一和第二列扫描操作避免了检查相同的位组多于一次,由此,保留用来执行编程操作的时间量。
控制逻辑电路140还控制通过/失败检查电路260。通过/失败检查电路检查在第一列扫描操作中由列选择电路200选择的数据是否均具有相同值,例如,编程通过值,然后生成指示其的检查结果。将检查结果传送到控制逻辑电路140。
也由控制逻辑电路140控制的失败位计数器280对在第二列扫描操作中由列选择电路200选择的数据当中的失败位的数目计数。然后将由失败位计数器280计数的位数传送到控制逻辑电路140。
由控制逻辑电路140控制循环计数器电路320,以对在存储单元阵列120中的选定存储单元的编程操作中执行的编程循环的数目计数。在控制逻辑电路140的控制下,编程电路300存储要在所选存储单元上执行的编程循环的预定最大数目。因而,控制逻辑电路140在编程操作期间引用编程电路300,以确保在每个编程操作中的循环数目不超过最大数目。
在编程循环的第一列扫描操作确定一个或多个位未被正确编程的情况下,则执行第二列扫描操作。也就是说,每个编程循环包括第一列扫描操作,并包括第二列扫描操作。在第二列扫描操作中,对失败位数目的数目计数。在失败位的数目小于或等于可由纠错电路校正的预定数目的情况下,确定编程循环为“通过”,并完成编程操作。
通过使用上述技术来在非易失性存储器件中执行编程操作,有可能增强编程速度,并且还防止相对少量的失败位导致整个存储块被归类为坏块。另外,以上技术还允许通过将编程循环的最大数目输入到编程电路300中来控制该最大数目。
图3是更详细地说明非易失性存储器件1000的编程操作的流程图。
参见图3,首先,非易失性存储器件100进入编程操作模式。在编程操作模式中,通过列选择电路200将编程数据加载到页缓冲器电路180中(S100)。页缓冲器电路180通常包括分别与所选位线相对应的多个页缓冲器。列选择电路200响应于由第一地址生成器220输出的列地址、以预定单位(例如,8、16或32)选择页缓冲器。然后,页缓冲器电路180将编程数据传送到所选页缓冲器。
一旦将编程数据加载到所选页缓冲器中,便在控制逻辑电路140的控制下对由行选择电路160选择的行中的存储单元进行编程(S110)。通过多个编程循环来执行编程操作,其中每个编程循环具有编程部分和验证部分。具体而言,在验证部分期间连续地执行第一和第二列扫描操作。
一旦执行了编程循环的编程部分,便在控制逻辑电路140的控制下执行验证读取部分(S120)。在验证读取操作中,由页缓冲器电路180读出在编程部分中编程的存储单元。然后,执行第一列扫描操作(S130)。
在第一列扫描操作中,列选择电路200基于由第一地址生成器220输出的列地址,以预定单位顺序地选择页缓冲器电路180中的页缓冲器。通过列选择电路200将存储在所选页缓冲器中的数据位传送到通过/失败检查电路260。
通过/失败检查电路260检查数据位是否具有编程通过值(S140),并将对应的检查结果输出到控制逻辑电路140。在输入到通过/失败检查电路260的所有数据位具有编程通过值的情况下,选择其它页缓冲器,并且通过/失败检查电路260确定存储在其它所选页缓冲器中的数据位是否具有编程通过值。换句话说,只要所选页缓冲器中的所有数据位具有编程通过值,则列选择电路200便继续基于由第一地址生成器220输出的列地址顺序地选择页缓冲器电路180中的页缓冲器,并且通过/失败检查电路260检查所选数据位,直到已检查了存储在页缓冲器电路180中的所有数据位为止。因而,如果执行该列扫描操作直到已选择了所有页缓冲器为止,且检测出所有数据位都具有编程通过值,则将指示成功编程操作的数据值存储在状态寄存器142中,并完成编程操作。
然而,如果页缓冲器电路180中的一个或多个数据位被检测为具有编程失败值,则通过/失败检查电路260将编程失败信息输出到控制逻辑电路140。响应于该编程失败信息,控制逻辑电路140使第一列扫描操作停止。换句话说,当控制逻辑电路140接收到编程失败信息时,它使第一地址生成器220停止输出用来选择页缓冲器电路180中的数据的列地址。此后,控制逻辑电路140确定记录在循环计数器电路320中的当前编程循环数目是否大于参考值M(S160)。如果当前编程循环数目小于参考值M,则执行操作S170。
在操作S170中,控制逻辑电路140确定当前编程循环数目是否等于编程电路300的最大编程循环数目N。如果当前编程循环数目小于最大编程循环数目N,则控制逻辑电路140控制循环计数器电路320将编程循环数目增1(S180),并且编程操作返回到操作S110。
参考值M表示小于或等于最大编程循环数目N的第一预定编程循环数目。如果当前编程循环数目大于参考值M,则控制逻辑电路140执行第二列扫描操作,以计算在页缓冲器电路180的页缓冲器中存储的数据位当中的失败位的数目。在停止第一列扫描操作、且当前编程循环数目大于参考值M的情况下,控制逻辑电路140控制第一和第二地址生成电路220和240,以便将由第一地址生成电路220输出的列地址传送到第二地址生成电路240。第二地址生成电路240基于由第一地址生成电路220输出的列地址而顺序地生成一系列列地址作为起始地址。
在第二列扫描操作中,要选择的第一数据单位是在第一列扫描操作中由列选择电路200选择的最后数据单位。列选择电路200响应于第二地址生成电路240的列地址、顺序地从页缓冲器电路180的页缓冲器中选择预定单位的数据。通过列选择电路200将来自所选页缓冲器的数据位传送到失败位计数器280。在第二列扫描操作期间,失败位计数器280在其中对所接收的数据位当中的失败位的数目计数(S190)。失败位计数器280在其从所选页缓冲器接收连续单位的数据时执行计数。将在第二列扫描操作中由失败位计数器280计数的失败位数目传送到控制逻辑电路140。控制逻辑电路140确定由失败位计数器280提供的失败位数目是否大于可由纠错电路纠正的失败位的数目(S200)。
如果由失败位计数器280计数的失败位数目小于或等于可由纠错电路纠正的失败位数目,则控制逻辑电路140将来自通过/失败检查电路260的编程通过信息存储在状态寄存器142中(S150),并完成编程操作。然而,如果在第二列扫描操作中由失败位计数器280计数的失败位数目大于可由纠错电路纠正的失败位的数目,则控制逻辑电路140使第二列扫描操作终止(S210)。换句话说,控制逻辑电路140使第二地址生成器240停止生成地址,并还使失败位计数器280停止对失败位数目的计数。
接着操作S210之后,编程操作前进到操作S170。在操作S170中,控制逻辑电路140确定当前编程循环的数目是否已到达了编程电路300的最大编程循环数目N。如果当前编程循环的数目已到达了编程电路300的最大编程循环数目N,则控制逻辑电路140将编程失败信息存储在状态寄存器142中,以指示编程操作失败,并终止该编程操作。如果当前编程循环的数目小于最大编程循环数目N,则编程操作继续进行到操作S180。此后,如上所述重复编程循环。
如上所述,只要所编程位当中的失败位数目小于或等于可由纠错电路纠正的位数,则可成功地完成图3所述的编程操作。通常,可通过在允许的最大编程循环数目内执行进一步的编程循环来对这些失败位编程。然而,当在现有的失败位数目小于或等于可由纠错电路纠正的位数时,编程操作完成,所以不需要进一步的编程循环。如果避免了进一步的编程循环,则相对于诸如图1所述的传统编程方法,对所选存储单元编程所需的时间量减小了。在图1所述的传统编程方法中,即使在失败位的数目小于可由纠错电路纠正的位数时,编程操作也继续进行。
图4A和4B是说明根据在本发明的一个实施例执行的编程操作和传统的编程操作之间的比较的概念图。具体而言,图4A说明了根据本发明的一个实施例执行的编程操作,而图4B说明了传统的编程操作。
参见图4A,执行预定数目的编程循环而没有第二列扫描操作。在此示例中,在无第二列扫描操作的情况下执行的编程循环的数目为二(2),即PL#1和PL#2。换句话说,在图4A中,参考数目M=2。然后,在第三编程循环PL#3中执行的第二列扫描操作PL3S2确定失败位的数目(FBN)是否大于可由纠错电路纠正的位数。然而,在第四编程循环PL#4中,第二列扫描操作PL4S2确定失败位的数目已经下降到可由纠错电路纠正的失败位的数目以下。因而,编程操作在第四编程循环之后终止。
相反,在图4B所述的传统编程操作中,即使在失败位的数目下降到可由纠错电路纠正的数目(如标记“存在X位失败”所示)以下的情况下,编程操作仍继续进行,直到到达了编程循环的最大数目“Y”为止。一旦完成了Y次编程循环,则编程操作用失败状态终止,并且将对应的存储块归类为坏块。因而,图4B所述的传统方法趋向于花费更多时间,并且导致存储器使用效率不如图4A所述的方法。
上述的优选实施例是示教例子。本领域的技术人员将会理解,可对示范实施例作出各种形式和细节上的改变,而不会背离如由所附权利要求定义的本发明的范围。

Claims (22)

1.一种执行非易失性存储器件的编程操作的方法,该方法包括:
(a)对非易失性存储器件中的选定存储单元进行编程;
(b)从所选存储单元中读取数据位;
(c)通过顺序地选择预定子单位的数据位、并基于所选子单位确定是否有任何所选存储单元未被充分编程,来执行第一列扫描操作;
(d)当在第一列扫描操作中确定所选存储单元中的至少一个未被充分编程、并且是在对所有预定子单位的数据位进行选择之前时,执行第二列扫描操作,以检测未被充分编程的选定存储单元的总数;以及
(e)当确定未被充分编程的选定存储单元的总数小于可由纠错电路纠正的数目时,便用编程通过状态终止该编程操作。
2.如权利要求1所述的方法,其中,仅在包括(a)、(b)和(c)的编程循环已重复了M次之后,才执行第二列扫描操作,其中,M是大于或等于二的参考值。
3.如权利要求1所述的方法,还包括:
当确定未被充分编程的存储单元的总数大于可由纠错电路纠正的数目时,终止第二列扫描操作。
4.如权利要求3所述的方法,还包括:
当终止第二列扫描操作时重复(a)、(b)和(c)。
5.如权利要求1所述的方法,其中,执行第二列扫描操作包括:从第一列扫描操作中选择的最后子单位开始,顺序地选择预定子单位的数据位。
6.一种对非易失性存储器件进行编程的方法,该方法包括:
(a)对非易失性存储器件中的选定存储单元进行编程;
(b)在对选定存储单元进行编程之后,执行验证读取操作以从选定存储单元读取数据位;
(c)在执行验证读取操作之后,执行第一列扫描操作以确定是否有任何选定存储单元未被充分编程;
(d)当确定选定存储单元中的至少一个未被充分编程时,执行第二列扫描操作以确定未被充分编程的选定存储单元的总数;以及
(e)当检测到未被充分编程的选定存储单元的总数小于可由纠错电路纠正的数目时,便利用编程通过状态终止该编程操作。
7.如权利要求6所述的方法,其中,执行第一列扫描操作包括:顺序地选择预定子单位的数据位,并基于所选子单位确定是否有任何数据位未被充分编程。
8.如权利要求6所述的方法,其中,执行第二列扫描操作包括:顺序地选择预定子单位的数据位,并对来自所选子单位的、未被充分编程的选定存储单元当中的存储单元的总数计数。
9.如权利要求6所述的方法,其中,仅在包括(a)、(b)和(c)的编程循环已重复了M次之后,才执行第二列扫描操作,其中,M是大于或等于二的参考值。
10.如权利要求9所述的方法,其中,M等于2或3。
11.如权利要求6所述的方法,还包括:当确定未被充分编程的存储单元的总数大于可由纠错电路纠正的数目时,终止第二列扫描操作。
12.如权利要求11所述的方法,其中,在终止第二列扫描操作之后,重复(a)、(b)、(c)和(d)。
13.如权利要求6所述的方法,其中,执行第二列扫描操作包括:从在第一列扫描操作中选择的最后子单位开始,顺序地选择预定子单位的数据位。
14.一种非易失性存储器件,包括:
存储单元阵列,其包括以行和列方式排列的多个非易失性存储单元;
页缓冲器电路,用于在编程操作的验证读取操作中,从存储单元的所选行中读取并存储数据位;
列选择电路,用于响应于列地址,从页缓冲器电路中选择预定单位的数据位;
通过/失败检查电路,用于基于由列选择电路在第一列扫描操作中选择的预定单位的数据位,确定所选行中的选定存储单元是否被充分编程;以及
失败位计数器,用于在第二列扫描操作中对未被充分编程的选定行中的存储单元的总数计数;
控制逻辑电路,用于激活失败位计数器,以便当在第一列扫描操作中由列选择电路选择的至少一个数据位指示选定行中的对应存储单元未被充分编程时,执行第二列扫描操作,
其中,当如第二列扫描操作所确定的那样、未被充分编程的存储单元的总数小于可由纠错电路纠正的数目时,控制逻辑电路用编程通过状态终止该编程操作。
15.如权利要求14所述的非易失性存储器件,其中,当由列选择电路选择的至少一个数据位指示选定存储单元中的对应一个未被充分编程时,控制逻辑电路激活失败位计数器。
16.如权利要求14所述的非易失性存储器件,还包括:
由控制逻辑电路控制的第一地址生成电路,用来在第一列扫描操作期间顺序地生成要施加到列选择电路的第一列地址;以及
由控制逻辑电路控制的第二地址生成电路,用来在第二列扫描操作期间顺序地生成要施加到列选择电路的第二列地址,其中,基于由第一列生成电路在第一列扫描操作期间生成的起始地址而生成第二列地址。
17.如权利要求14所述的非易失性存储器件,其中,在对选定存储单元执行了两次或三次编程循环之后,执行第二列扫描操作。
18.如权利要求14所述的非易失性存储器件,其中,当在第二列扫描操作中计数的未被充分编程的存储单元的总数大于可由纠错电路纠正的数目时,控制逻辑电路终止第二列扫描操作。
19.如权利要求18所述的非易失性存储器件,其中,当终止了第二列扫描操作时,控制逻辑电路对选定存储单元执行下一个编程循环。
20.如权利要求14所述的非易失性存储器件,还包括:
由控制逻辑电路控制的循环计数器电路,用来对在选定存储单元上执行的编程循环的数目计数;以及
编程电路,用于存储最大编程循环数目;
其中,将存储在编程电路中的最大编程循环数目提供到控制逻辑电路。
21.如权利要求20所述的非易失性存储器件,其中,对编程电路进行编程,使得最大编程循环数目可变化。
22.如权利要求20所述的非易失性存储器件,其中,当由循环计数器电路提供的编程循环数目到达了最大编程循环数目时,控制逻辑电路终止该编程操作。
CN2006101076022A 2005-07-26 2006-07-26 提高编程速度的非易失性存储器及相关编程方法 Active CN1905068B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050068039A KR100648290B1 (ko) 2005-07-26 2005-07-26 프로그램 속도를 향상시킬 수 있는 불 휘발성 메모리 장치및 그것의 프로그램 방법
KR68039/05 2005-07-26

Publications (2)

Publication Number Publication Date
CN1905068A CN1905068A (zh) 2007-01-31
CN1905068B true CN1905068B (zh) 2010-10-13

Family

ID=37674299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101076022A Active CN1905068B (zh) 2005-07-26 2006-07-26 提高编程速度的非易失性存储器及相关编程方法

Country Status (5)

Country Link
US (1) US7352630B2 (zh)
JP (1) JP2007035244A (zh)
KR (1) KR100648290B1 (zh)
CN (1) CN1905068B (zh)
DE (1) DE102006034495B4 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487812A (zh) * 2014-10-01 2016-04-13 三星电子株式会社 用于支持存储器内处理的方法和存储器模块

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7567461B2 (en) * 2006-08-18 2009-07-28 Micron Technology, Inc. Method and system for minimizing number of programming pulses used to program rows of non-volatile memory cells
JP4235236B2 (ja) * 2006-09-12 2009-03-11 東芝テック株式会社 無線通信装置
EP2458592B1 (en) * 2007-02-20 2014-03-26 SanDisk Technologies, Inc. Multiple pass write sequence for non-volatile storage
KR100927119B1 (ko) * 2007-05-10 2009-11-18 삼성전자주식회사 불 휘발성 반도체 메모리 장치 및 그것의 프로그램 방법
KR100933859B1 (ko) * 2007-11-29 2009-12-24 주식회사 하이닉스반도체 플래시 메모리 소자 및 그것의 프로그램 방법
KR100933838B1 (ko) * 2008-03-10 2009-12-24 주식회사 하이닉스반도체 불휘발성 메모리 소자의 테스트 방법
KR101464255B1 (ko) * 2008-06-23 2014-11-25 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 시스템
KR20100012605A (ko) 2008-07-29 2010-02-08 삼성전자주식회사 Ecc를 이용하여 프로그램하는 불휘발성 메모리 장치 및그 프로그램 방법
KR101022882B1 (ko) * 2009-06-12 2011-03-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 동작 방법
JP5426250B2 (ja) * 2009-06-26 2014-02-26 三星電子株式会社 不揮発性半導体メモリの放電回路
KR101634363B1 (ko) * 2009-10-05 2016-06-29 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
JP2011123964A (ja) * 2009-12-11 2011-06-23 Toshiba Corp 半導体記憶装置
US8446768B2 (en) * 2009-12-24 2013-05-21 Samsung Electronics Co., Ltd. Control device for nonvolatile memory and method of operating control device
KR101653206B1 (ko) * 2010-01-19 2016-09-02 삼성전자주식회사 프로그램 검증 회로 및 이를 포함하는 비휘발성 메모리 장치
US8634261B2 (en) * 2010-09-06 2014-01-21 SK Hynix Inc. Semiconductor memory device and method of operating the same
JP2012069180A (ja) * 2010-09-21 2012-04-05 Toshiba Corp 半導体記憶装置
KR101200125B1 (ko) * 2010-12-20 2012-11-12 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US8595597B2 (en) * 2011-03-03 2013-11-26 Intel Corporation Adjustable programming speed for NAND memory devices
JP5259765B2 (ja) * 2011-03-29 2013-08-07 株式会社東芝 不揮発性半導体メモリ
US9110829B2 (en) * 2012-11-30 2015-08-18 Taiwan Semiconductor Manufacturing Co. Ltd. MRAM smart bit write algorithm with error correction parity bits
KR20160060917A (ko) * 2014-11-21 2016-05-31 에스케이하이닉스 주식회사 비휘발성 메모리 소자 및 이의 프로그래밍 방법
JP6457364B2 (ja) * 2015-09-11 2019-01-23 東芝メモリ株式会社 メモリシステム
TWI696078B (zh) * 2017-05-26 2020-06-11 旺宏電子股份有限公司 記憶體裝置及其操作方法
US10445173B2 (en) * 2017-06-26 2019-10-15 Macronix International Co., Ltd. Method and device for programming non-volatile memory
US10566062B2 (en) * 2017-12-14 2020-02-18 Macronix International Co., Ltd. Memory device and method for operating the same
CN111863085B (zh) * 2019-04-29 2022-07-26 北京兆易创新科技股份有限公司 一种控制编程性能的方法和装置
KR20200136743A (ko) 2019-05-28 2020-12-08 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN113707208B (zh) * 2020-05-21 2024-05-03 晶豪科技股份有限公司 用于非易失性存储装置的错误纠正的控制验证操作的方法及非易失性存储装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6288936B1 (en) * 2000-06-30 2001-09-11 Fujitsu Limited Nonvolatile memory for storing multivalue data

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5954828A (en) * 1995-01-05 1999-09-21 Macronix International Co., Ltd. Non-volatile memory device for fault tolerant data
JP3941149B2 (ja) 1996-12-03 2007-07-04 ソニー株式会社 半導体不揮発性記憶装置
JP2005018983A (ja) 1996-12-03 2005-01-20 Sony Corp 半導体不揮発性記憶装置およびメモリシステム
JP4034949B2 (ja) 2001-09-06 2008-01-16 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP3889699B2 (ja) * 2002-11-29 2007-03-07 株式会社東芝 不揮発性半導体記憶装置及びそのデータ書き込み方法
JP4158526B2 (ja) 2003-01-09 2008-10-01 松下電器産業株式会社 メモリカード及びメモリへのデータ書き込み方法
JP2005056394A (ja) * 2003-07-18 2005-03-03 Toshiba Corp 記憶装置及びメモリカード
KR100525004B1 (ko) * 2004-02-26 2005-10-31 삼성전자주식회사 멀티레벨 셀(Multi-level cell)플래쉬메모리장치 및 이의 프로그램 방법
US7158416B2 (en) * 2005-03-15 2007-01-02 Infineon Technologies Flash Gmbh & Co. Kg Method for operating a flash memory device
US7193898B2 (en) * 2005-06-20 2007-03-20 Sandisk Corporation Compensation currents in non-volatile memory read operations
US7301817B2 (en) * 2005-10-27 2007-11-27 Sandisk Corporation Method for programming of multi-state non-volatile memory using smart verify

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6288936B1 (en) * 2000-06-30 2001-09-11 Fujitsu Limited Nonvolatile memory for storing multivalue data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487812A (zh) * 2014-10-01 2016-04-13 三星电子株式会社 用于支持存储器内处理的方法和存储器模块

Also Published As

Publication number Publication date
DE102006034495B4 (de) 2017-11-09
CN1905068A (zh) 2007-01-31
US20070025159A1 (en) 2007-02-01
KR100648290B1 (ko) 2006-11-23
JP2007035244A (ja) 2007-02-08
DE102006034495A1 (de) 2007-02-22
US7352630B2 (en) 2008-04-01

Similar Documents

Publication Publication Date Title
CN1905068B (zh) 提高编程速度的非易失性存储器及相关编程方法
US7580322B2 (en) High speed programming for nonvolatile memory
KR100865830B1 (ko) 메모리 소자의 독출 방법
US8270215B2 (en) Nonvolatile memory device and method of programming the same
CN100463077C (zh) 同时编程与编程验证存储器的方法及其集成电路
US6981188B2 (en) Non-volatile memory device with self test
US20080049497A1 (en) Methods of Programming Multi-Bit Flash Memory Devices and Related Devices
US7782667B2 (en) Method of operating a flash memory device
US20070204098A1 (en) Non-volatile memory having a multiple block erase mode and method therefor
US20060140027A1 (en) Semiconductor memory device and method of operating the same
KR100898039B1 (ko) 불휘발성 반도체 메모리 장치 및 그것의 프로그램 방법
US8184483B2 (en) Nonvolatile memory device and method of programming the same
CN104051018A (zh) 非易失性存储器装置及其操作方法
US6888764B2 (en) Semiconductor device including semiconductor memory
JP2006024347A (ja) ビットスキャニングプログラムを実行する不揮発性メモリ装置
CN101169973B (zh) 高编程速度的多阶单元存储器
JP2009099202A (ja) 半導体記憶装置
US6515905B2 (en) Nonvolatile semiconductor memory device having testing capabilities
KR20140124545A (ko) 비휘발성 메모리 및 이의 부트업 동작 방법
US20110019492A1 (en) Test device and test method for resistive random access memory and resistive random access memory device
US7486570B2 (en) Flash memory device having reduced program time and related programming method
KR20100085657A (ko) 불휘발성 메모리 소자 및 그 동작 방법
US9478314B2 (en) Memory utilizing bundle-level status values and bundle status circuits
KR19990074594A (ko) 반도체 메모리 장치 및 그 장치의 패스/페일 검사 방법
CN107633863B (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