CN101202109B - 非易失性存储系统和相关编程方法 - Google Patents

非易失性存储系统和相关编程方法 Download PDF

Info

Publication number
CN101202109B
CN101202109B CN2007103077842A CN200710307784A CN101202109B CN 101202109 B CN101202109 B CN 101202109B CN 2007103077842 A CN2007103077842 A CN 2007103077842A CN 200710307784 A CN200710307784 A CN 200710307784A CN 101202109 B CN101202109 B CN 101202109B
Authority
CN
China
Prior art keywords
storage unit
data
bit data
bit
memory
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
CN2007103077842A
Other languages
English (en)
Other versions
CN101202109A (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 CN101202109A publication Critical patent/CN101202109A/zh
Application granted granted Critical
Publication of CN101202109B publication Critical patent/CN101202109B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5642Multilevel memory with buffers, latches, registers at input or output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5643Multilevel memory comprising cache storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Abstract

一种非易失性存储系统包括主机、存储控制器和包含多级闪存单元的闪存芯片。存储控制器包括备份存储器,用于当进一步编程多级闪存单元失败时保存之前从多级闪存单元编程数据的备份拷贝。之前编程数据的备份拷贝用于在将之前编程数据再编程到非易失性存储系统中不同多级存储单元之前检测和纠正之前编程数据中的任何错误。

Description

非易失性存储系统和相关编程方法
相关专利申请的交叉引用
本申请请求于2006年10月19日在韩国知识产权局提交的韩国专利申请No.10-2006-0101954的优先权,在此引入其内容以供参考。
技术领域
本发明实施例总体上涉及非易失性的半导体存储系统。更具体的,本发明实施例涉及包括多级非易失性存储单元的非易失性半导体存储系统和用于编程多级非易失性存储单元的方法。
背景技术
非易失性存储系统通常应用于各种消费者和工业电子应用。该应用的常见示例包括手机、个人数字助理(PDA)、MP3播放器、数字摄像机、便携磁盘驱动器、便携媒体播放器(PMP)和诸如用于个人计算机的基本输入/输出系统(BIOS)的辅助存储器,此处仅列举了几个。
由于非易失性存储系统的广泛使用,对于具有更高数据存储能力和更高整体性能的非易失性存储系统具有与日俱增的需求。结果,研究者持续致力于发现新方法以在非易失性存储系统中每个存储芯片单元区域保存更多数据。
多级非易失性存储单元的使用是已被采用以增加非易失性存储系统中每个单元存储芯片区域保存数据量的一项技术。多级非易失性存储单元能保存一位以上的数据。因此,多级非易失性存储单元经常被替换称为多位非易失性存储单元。
多级非易失性存储单元的典型示例是多级闪存单元。总体上,闪存单元关于不同的阈值电压分布而保存数据。换而言之,当在闪速单元内编程不同数据值时,闪存单元的阈值电压从一个阈值电压分布内改变到另一个阈值电压分布内。
例如,图(FIG.)1表示用于在单级闪存单元中保存数据的两个不同阈值电压分布。在图1的例子中,在单级闪存单元具有在标记为“1”的阈值电压分布内的阈值电压的地方,单级闪存单元存储逻辑“1”。否则,在单级闪存单元具有在标记为“0”的阈值电压分布内的阈值电压的地方,单级闪存单元存储逻辑“0”。因此,可以通过将读取电压Vread应用于单级闪存单元的控制门并确定单级闪存单元的阈值电压大于或小于读取电压Vread(例如,当将读取电压Vread应用于控制门时,通过存储单元检测电流流量)而确定单级闪存单元中保存的单个位的逻辑状态。
一般,在存储单元具有特定阈值电压分布内的阈值电压的地方,可以称存储单元具有对应于阈值电压分布表示的逻辑状态的“阈值电压状态”。
图2表示用于在多级闪存单元中保存数据的四个不同阈值电压分布。具体的,图2的多级闪存单元能存储两位数据,如四个阈值电压分布上的标签所示。换而言之,对于图2的多级闪存单元具有标记为“11”的阈值电压分布内的阈值电压,多级闪存单元存储逻辑“11”(即,最高有效位(MSB)“1”和最低有效位(LSB)“1”),对于多级闪存单元具有标记为“10”的阈值电压分布内的阈值电压,多级闪存单元存储逻辑“10”,对于多级闪存单元具有标记为“01”的阈值电压分布内的阈值电压,多级闪存单元存储逻辑“01”,以及对于多级闪存单元具有标为“00”的阈值电压分布内的阈值电压,多级闪存单元存储逻辑“00”。可以通过将读取电压Vread1、Vread2和Vread3不同地应用于多级闪存单元的控制门并确定相关于这些读取电压的多级闪存单元的阈值电压的幅度而确定图2所示的多级闪存单元的逻辑状态。
图3表示包括含有多级闪存单元的闪存的示例性非易失性存储系统。
参考图3,示例性非易失性存储系统100包括主机110、存储控制器120和闪存130。其中,存储控制器120包括缓冲存储器121,而闪存130包括存储单元阵列131和页缓冲器132。
在存储控制器120中,缓冲存储器121在编程操作期间临时在闪存130中存储要编程的数据,并在读取操作期间存储从闪存130读取的数据。缓冲存储器121在存储控制器120的控制下操作并在编程期间将数据从主机110转换到闪存130,并在读取期间将数据从闪存130转换到主机110。
在闪存130中,存储单元阵列131存储编程数据。页缓冲器132在编程操作中临时在存储单元阵列131中存储要编程的数据并在读取操作中保存从存储单元阵列131读取的数据。存储单元阵列131包括以行和列排列的多个多位非易失性存储单元。举例说明,单元阵列131可包括NAND闪存阵列,该NAND闪存阵列包括以多个NAND串排列的NAND闪存单元。典型的,存储单元阵列131的列被连接到对应的位线而行被连接到对应的字线。
连接到存储单元阵列131中相同字线的多位非易失性存储单元的每行对应数据存储器的一个或多个页。典型的(但不是必须的),一次一页地在存储单元阵列131上执行编程和读取操作。举例说明,首先将存储单元阵列131中要编程的一页数据传递到页缓冲器132。然后,根据页缓冲器132中保存的数据页将合适的电压应用于对应存储单元阵列131中要编程的存储单元的行的字线和位线。
对于行中的存储单元是多位存储单元,连接到存储单元阵列131中相同字线的非易失性存储单元的每行将对应一个以上的数据存储器页。例如,2-位非易失性存储单元的行将对应两页数据。具体的,可以独立编程的两页对应最低有效位(LSB)页和最高有效位(MSB)页,这是因为它们分别对应各个2-位存储单元的LSB和MSB数据。
在非易失性存储系统100的编程操作中,主机110向存储控制器120发送编程命令和相关程序数据。存储控制器120接收程序命令和程序数据并将程序数据保存在缓冲存储器121中。响应于程序命令,存储控制器120然后控制闪存130将来自缓冲存储器121的程序数据装载到页缓冲器132中。然后,存储控制器120进一步控制闪存130将程序数据编程到存储单元阵列131的所选存储单元中。其中编程程序数据的存储单元阵列131中所选存储单元的位置一般由主机110向存储控制器120提供的程序地址以及程序命令赋值。通常,闪存130包括可以用于根据程序地址在存储单元阵列131中选择用于编程操作的合适行线和字线的行和列解码器。
在非易失性存储系统100的读取操作中,主机110向存储控制器120发送读取命令。响应于读取命令,存储控制器120控制闪存130将在存储单元阵列131的所选存储单元中保存的读取数据传送到页缓冲器132。然后,存储控制器120进一步控制闪存130将来自页缓冲器132的读取数据传送到缓冲存储器121。最后,存储控制器120控制缓冲存储器121将读取数据从缓冲存储器121传送到主机110。类似于编程操作,读取操作中存储单元阵列131中所选存储单元的位置一般由主机110向存储控制器120提供的读取地址以及读取命令赋值。同样,闪存130一般使用行和列解码器以根据读取地址选择用于读取操作的存储单元131的合适行线和字线。
编程操作后,存储控制器120一般控制闪存130以执行程序验证操作。除了程序验证操作的目的在于确定所选存储单元是否被成功编程之外,程序验证操作类似于读取操作。在程序验证操作中,从编程操作中被编程的所选存储单元传送程序验证数据到页缓冲器132。页缓冲器132临时存储程序验证数据,而该程序验证数据与仍存储在缓冲存储器121中的程序数据进行比较。当缓冲存储器121中保存的程序数据不同于页缓冲器132中的程序验证数据时,所选存储单元还没被成功编程。否则,当缓冲存储器121中保存的程序数据与页缓冲器132中的程序验证数据相同时,所选存储单元被成功编程。对于所选存储单元还没被成功编程的情况,则使用缓冲存储器121中保存的程序数据再编程这些存储单元或在存储单元阵列131的新位置(诸如不同页面或不同块)中编程程序数据。
图4和5表示用于编程诸如图3所示非易失性存储系统的不同方法。具体的,图4和5的方法是编程包括2-位存储单元的非易失性存储系统的方法的示例。在这些和其他示例中,可以重新配置逻辑状态和阈值电压之间的对应关系。例如,在图4和5中,分别将逻辑状态赋值为非灰度编码和灰度编码顺序中的阈值电压。此外,可以改变其中编程各个位的顺序。例如,虽然图4和5表示在编程MSB之前编程LSB,但也或者能在LSB之前编程MSB。而且,本领域已知多种其他编程变化并因此将不详细描述。
参考图4,多位非易失性存储单元的编程状态的特征在于与五个不同阈值电压分布的关系。这五个不同阈值电压分布中的四个对应各个逻辑状态“11”、“01”、“10”和“00”,以及一个阈值电压分布对应中间编程状态或阈值电压状态,由虚弧表示并重叠多位非易失性存储单元的读取电压VR2。在该例子中,逻辑状态“11”对应多位非易失性存储单元的擦除状态,而逻辑状态“01”、“10”和“00”对应多位非易失性存储单元的编程状态。
在图4所示的方法中,存储单元最初在擦除状态。从擦除状态,首先编程存储单元的LSB,然后是存储单元的MSB。在编程LSB中,如果存储单元中要编程的LSB是逻辑“0”,则该方法将存储单元从逻辑状态“11”改变为中间编程状态,如标为“Program0”的箭头所示。否则,存储单元保持在逻辑状态“11”。然后在编程MSB中,如果存储单元中要编程的MSB是逻辑“0”,则该方法如标为“Program1”的箭头所示将存储单元从中间编程状态改变为逻辑状态“00”,或如标为“Program3”的箭头所示从逻辑状态“11”变为逻辑状态“01”,这取决于LSB的逻辑状态。否则,对于存储单元中要编程的MSB是逻辑“1”,该方法如标为“Program2”的箭头所示将存储单元从中间编程状态改变为逻辑状态“10”,或将存储单元维持在逻辑状态“11”,这取决于LSB的逻辑状态。
参考图5,多位非易失性存储单元的编程状态的特征在于与四个不同阈值电压分布的关系。这四个阈值电压分布对应各个逻辑状态“11”、“10”、“00”和“01”。在该例子中,逻辑状态“11”对应多位非易失性存储单元的擦除状态,以及逻辑状态“10”、“00”和“01”对应多位非易失性存储单元的编程状态。
在图5所示的方法中,存储单元最初在擦除状态。从擦除状态,首先编程存储单元的LSB,然后是存储单元的MSB。在编程LSB中,如果存储单元中要编程的LSB是逻辑“0”,则该方法将存储单元从逻辑状态“11”改变为逻辑状态“10”,如标为“Program1”的箭头所示。否则,存储单元保持在逻辑状态“11”。然后在编程MSB中,如果存储单元中要编程的MSB是逻辑“0”,则该方法如标为“Program2”的箭头所示将存储单元从逻辑状态“10”改变为逻辑状态“00”,或如标为“Program3”的箭头所示从逻辑状态“11”变为逻辑状态“01”,这取决于LSB的逻辑状态。否则,如果存储单元中要编程的MSB是逻辑“1”,则存储单元保持在逻辑状态“10”或逻辑状态“11”,这取决于LSB的逻辑状态。
总体上,当执行图4和5所示的编程方法时,不会总是以直接连续的顺序编程存储单元的LsB和MSB。相反,例如,可能首先编程存储单元的LSB,接着是在存储单元阵列的不同行中对存储单元的编程操作,然后接着编程存储单元的MSB。因此,在编程存储单元的MSB之前,一般必须例如通过读取存储单元而确定LSB的逻辑状态,以便存储单元的阈值电压可以变为在正确的阈值电压分布内。
然而,遗憾的是,如果在编程MSB期间发生错误或误操作,则可能永久丢失LSB。例如,如果如图5中标为“Program3”的箭头所示对存储单元执行MSB编程,以及缺少对应于逻辑状态“01”的阈值电压分布MSB编程停止,则不可能根据存储单元的简单检查而确定存储单元的LSB是逻辑“1”或逻辑“0”。幸运的是,在该情况下,一般可以从缓冲存储器121恢复MSB数据。然而,LSB数据的丢失将最终损害非易失性存储系统的性能。
当研究者持续致力于在非易失性存储设备的有限芯片区域内满足越来越多的数据存储能力时,该问题变得日益重要,因为非易失性存储芯片的集成密度增加了,编程操作中错误和误操作的可能性也相应增加了。结果,有效地克服诸如由编程错误或误操作引起的多级单元中的上述数据丢失问题等的问题将是大有好处的。
发明内容
在认识至少上述问题中,本发明的所选实施例提供用于避免因为编程错误或误操作引起的数据丢失的非易失性存储系统和方法。
根据本发明的一个实施例,非易失性半导体存储系统包括存储阵列和存储控制器。存储阵列包括多个多位存储单元。存储控制器包括缓冲存储器,恢复存储器,失败位置检测器和修复单元。缓冲存储器用于存储在多个存储单元中所选存储单元中编程的j-位数据。修复存储器用于存储从所选存储单元读取的i-位数据。失败位置检测器用于根据从所选存储单元读取的j-位数据和缓冲存储器中存储的j-位数据之间的比较确定i-位数据中的位错误的位置。修复单元用于修复在修复存储器中保存的i-位数据中的位错误。
根据本发明的另一实施例,非易失性半导体存储系统包括第一至第n存储芯片以及存储控制器。第一至第n存储芯片中的每个包括多个多位非易失性存储单元。存储控制器包括第一至第m个缓冲存储器,每个用于保存第一至第n个存储芯片中多个多位非易失性存储单元中所选存储单元中编程的j位数据。存储控制器进一步包括第一至第p个修复存储器,用于保存在所选存储单元中保存的i-位数据。存储控制器进一步包括失败位置检测器,用于根据从所选存储单元读取的j-位数据和缓冲存储器中存储的j-位数据之间的比较确定i-位数据中的位错误的位置。存储控制器进一步包括修复单元,用于修复在修复存储器中保存的i-位数据中的位错误。
根据本发明的另一实施例,提供一种在多位非易失性半导体中执行编程操作的方法。多位非易失性存储系统包括存储阵列以及存储控制器,该存储阵列包括多个多位存储单元。该方法包括在存储阵列的所选存储单元中编程i-位数据,在存储控制器中保存j-位数据,编程所选存储单元中的j-位数据,确定在所选存储单元中是否成功编程j-位数据,接着确定在所选存储单元中没有成功编程j-位数据,并比较所选存储单元中保存的j-位数据和存储控制器中保存的j-位数据。根据比较,确定所选存储单元中存储的i-位数据的至少一个位错误的位置,然后修复至少一个位错误。
根据本发明的另一实施例,提供另一种编程非易失性存储器的方法。该非易失性存储器包括多位非易失性存储单元,以及该方法包括定义存储单元的单元加扰(scramble),并接着检测存储单元的所选单元中j-位数据的编程错误,关于单元加扰修复所选存储单元中之前编程的i-位数据。
附图说明
参考附图描述本发明实施例。在图中,相同的附图标记表示相同的示例性元件、组件和步骤。在图中:
图1是表示用于在单级闪存单元中保存数据的两个不同阈值电压分布的曲线图;
图2是表示用于在多级闪存单元中保存数据的四个不同阈值电压分布的曲线图;
图3是表示常规非易失性存储系统的示意框图;
图4表示用于非易失性存储系统中非易失性存储单元的一种编程操作类型的阈值电压分布图;
图5表示用于非易失性存储系统中非易失性存储单元的另一种编程操作类型的阈值电压分布图;
图6是表示根据本发明实施例的非易失性存储系统的示意框图;
图7是表示用于根据本发明实施例的非易失性存储系统的编程方法的流程图;
图8是表示根据本发明另一实施例的非易失性存储系统的示意框图;
图9是表示根据本发明又一实施例的非易失性存储系统的示意框图;
图10是表示根据本发明再一实施例的非易失性存储系统的示意框图;
图11是表示用于图10的非易失性存储系统的非易失性存储单元的一种编程操作类型的阈值电压分布图;
图12是表示图10的非易失性存储系统的失败位置检测和数据恢复操作的示意图;
图13是表示根据本发明实施例的编程图10的存储系统的方法的流程图;
图14是根据序发明另一实施例的非易失性存储系统的示意框图;
图15是根据本发明另一实施例的非易失性存储系统的示意框图。
具体实施方式
下面参考相应附图描述本发明的示例性实施例。这些实施例只是教导性示例。本发明的实际范围由下面的权利要求定义。
总体上,本发明实施例提供用于当进一步编程多位非易失性存储单元时避免已保存在多位非易失性存储单元中的数据丢失的非易失性存储系统和相关方法。例如,本发明的所选实施例提供一种包括备份存储器和/或数据修复细件的存储控制器,当进一步编程存储单元时,所述备份存储器和/或数据修复组件用于避免已保存在多位非易失性存储单元中的数据的丢失。本发明的另一实施例提供一种包括修复存储器的存储控制器,用于保存已在多位非易失性存储单元中编程的数据,为了在已检测到存储单元的编程故障之后修复数据。
下面结合包括2-位存储单元的非易失性存储系统描述本发明的所选实施例。然而,这些实施例可以被随意修改为用于包括n-位单元的非易失性存储系统,其中“n”是大于2的整数。此外,在多个公开的实施例中,在存储单元的最高有效位之前编程存储元的最低有效位。然而,也可以随意修改编程顺序。而且,本领域技术人员能理解在不背离本发明范围的情况下可以对下述示例性实施例进行各种其他修改。最后,从本说明书有意地简化或省略非易失性存储系统的许多已知函数、变量和微差,因为它们的描述对于使本领域技术人员理解和使用所请求保护的发明不是必须的。
图6是表示根据本发明实施例的非易失性存储系统的示意框图。
参考图6,非易失性存储系统200包括主机210、存储控制器220和闪存230。存储控制器220包括缓冲存储器221和最低有效位(LSB)备份存储器222。闪存230包括存储单元阵列231、解码器232、页缓冲器233、位线选择电路234、数据缓冲器235和控制单元236。
在存储控制器220中,缓冲存储器221在编程操作期间临时存储闪存230中要编程的数据。缓冲存储器221在读取操作期间也临时存储从闪存230读取的数据。缓冲存储器221在编程操作期间在存储控制器220的控制下操作并从主机210接收数据并向闪存230传送数据,并在读取操作期间从闪存230接收数据并将数据传送到主机210。
在将保存在缓冲存储器221的程序数据被编程到所选存储单元之前,LSB备份存储器222存储已在闪存230的所选存储单元中保存的数据。例如,在所选存储单元的编程操作期间,缓冲存储器221可存储所选存储单元中要编程的MSB数据。因此,存储控制器控制闪存230传送LSB备份存储器222中的所选存储单元中已存储的LSB数据。因为LSB备份存储器222存储已在所选存储单元中编程的数据,以及缓冲存储器221存储将在所选存储单元中编程的数据,如果当编程所选存储单元时发生错误或故障,则可以从缓冲存储器221和LSB备份存储器222恢复从所选存储单元丢失的任何数据。结果,LSB备份存储器222的出现增加了图6的非易失性半导体存储设备200的可靠性。
通常,可以在单个存储芯片中配置缓冲存储器221和LSB备份存储器222。例如,存储控制器220可以存储称为LSB备份存储器222的动态随机访问存储器(DRAM)芯片的第一区域中的所选存储单元中已编程的数据,以及存储控制器220可以存储称为缓冲存储器221的DRAM芯片的第二区域中的所选存储单元中要编程的数据。
在闪存230中,存储单元阵列231存储编程数据。解码器232通过控制单元236从存储控制器220接收读取和程序地址并根据读取和程序地址控制用于读取和编程操作的字线和位线的激活或选择。在图6的例子中,解码器232通过字线WL0至WLn连接到存储单元阵列231,并产生位线选择信号Yi以通过位线选择电路234控制用于编程和读取操作的位线的激活或选择。
页缓冲器233通过位线BL0至BLm连接到存储单元阵列231并在编程操作中临时存储在存储单元阵列231中要编程的数据并在读取操作期间存储从存储单元阵列231读取的数据。位线选择电路234根据位线选择信号Yi控制用于编程和读取操作的位线的激活或选择。根据页缓冲器233中保存的数据驱动所选或所激活的位线编程或读取存储单元阵列231中的所选存储单元。
数据缓冲器235是用于在存储控制器220和闪存230之间传送数据的输入/输出缓冲器。例如,在读取操作中,通过页缓冲器233和位线选择电路234从存储单元阵列231向数据缓冲器235传送所选存储单元中保存的数据。然后,从数据缓冲器235向存储控制器220传送数据,此后数据被传送到主机210。另一方面,在编程操作中,存储单元阵列231的所选存储单元中要编程的数据从主机210传送到存储控制器220,然后到数据缓冲器235。然后,通过位线选择电路234从数据缓冲器235向页缓冲器233传送数据,并且此后,在所选存储单元中编程数据。数据缓冲器235在控制电路236的控制下操作,其依次响应存储控制器220产生的控制信号操作。
存储单元阵列231包括多个以行和列配置的多位非易失性存储单元。举例说明,单元阵列231可包括NAND闪存阵列,该闪存阵列包括以多个NAND字符串配置的NAND闪存单元。具体的,存储单元阵列231的列被连接到对应的位线而行被连接到对应的字线。
连接到存储单元阵列231的同一字线的多位非易失性存储单元的每行对应数据存储器的一个或多个页。例如,由虚椭圆形在图6中表示页“页0”。进一步将存储单元阵列231配置为多个块,每个块包括多个页。作为典型例子,每页可包括512字节或2K字节的数据以及每块包括32或64页的数据。
常规地(但不是必须地),每次一页对存储单元阵列231执行编程和读取操作并每次一块地执行擦除操作。或者,例如,也可以每次以一个或多个块为单元编程存储单元阵列231。
在图6的例子中,存储单元阵列231中的存储单元是2-位非易失性存储单元。通过首先编程LSB并然后编程MSB来编程这些存储元。并不必紧紧连续编程每个存储单元的LSB和MSB。换而言之,能首先编程所选存储单元的LSB、接着是其他存储单元的编程,接着是所选存储单元的MSB的编程。在图6的例子中,存储单元阵列231中存储单元被每次一页地编程和读取并每次一块地擦除。
如上所述,图6的示例和其他实施例中的多级存储单元也可以存储两位以上的位。例如,存储单元可能是3-位存储单元、4-位存储单元等。在用于存储不同位的该存储单元中,存储单元中要存储的数据一般被称为1-位数据、2-位数据、3-位数据等,与2-位存储单元的例子中简单的LSB数据和MSB数据相反。例如,在存储数据字符串“0100”的四位存储单元中,位“1”将被称为3-位数据因为它在字符串中第三个位置。
也如上所述,图6的示例和其他实施例中的多级存储单元或者可以以不同顺序编程。例如,可以在低顺序位(例如,LSB数据)之前编程高顺序位(例如,MSB数据)。而且,能通过再配置逻辑状态和阈值电压分布之间的赋值顺序进一步修改编程顺序,例如,诸如图5所示。
图7是表示用于根据本发明实施例的图6所示的编程非易失性存储系统200的方法的流程图。虽然图7所示的方法涉及非易失性存储系统200,该方法也能随意修改为用于根据本发明其他实施例的各种不同非易失性存储系统。在下面的描述中,示例性方法步骤将用圆括号(SXXX)表示以将它们与诸如图1至5所示的示例性曲线图和系统组件区分开来。
参考图7,存储控制器220控制闪存230以将LSB数据页编程到存储单元阵列231的第一存储块block1的所选存储单元中(S110)。在所选存储单元中编程LSB数据之后,闪存230一般执行程序验证操作以确定在所选存储单元中是否成功编程LSB。在图7的方法中,假设LSB数据被成功编程。一般,直到在所选存储单元中成功编程LSB数据才继续该方法。在将LSB数据页编程到所选存储单元之后,在将MSB数据编程到所选存储单元之前,能对存储单元阵列231中不同存储单元执行其他程序操作。
一旦MSB数据将被编程到所选存储单元,则存储控制器220控制闪存230通过将LSB数据传送到存储控制器220的LSB备份存储器222而备份所选存储单元中的LSB数据(S120)。一旦在LSB备份存储器222中保存所选存储单元的LSB数据,则在闪存230的第一存储块block1的所选存储单元中编程MSB数据页(S130)。
分别在步骤S110和S130(在block1的所选存储单元中已编程LSB和MSB数据)之后,闪存230执行程序验证操作以确定在所选存储单元中是否已成功编程MSB数据(S140)。当闪存230确定在所选存储单元中已成功编程MSB数据时,该方法终止,如图7中标为“No”(表示没有程序失败)的箭头所示。否则,当闪存230确定在所选存储单元中没有成功编程MSB数据时,存储控制器220控制闪存230将LSB数据页编程到闪存230的第二存储块block2中(S150),然后存储控制器220控制闪存230将MSB数据页编程到闪存230的第二存储块block2中(S160)。在闪存230中成功编程LSB和MSB数据之后,图7的编程方法终止。
图8是表示根据本发明另一实施例的非易失性存储系统300的示意框图。
参考图8,非易失性存储系统300包括主机310,存储控制器320,以及第一和第二闪存芯片330和340。存储控制器320包括第一缓冲存储器321、第一LSB备份存储器322、第二缓冲存储器323和第二LSB备份存储器324。一般地,在诸如DRAM的单个芯片上形成第一和第二缓冲存储器321和323以及第一和第二LSB备份存储器322和324。第一闪存芯片330包括第一单元阵列331和第一页缓冲器332而第二闪存芯片340包括第二单元阵列341和第二页缓冲器342。
在非易失性存储系统300中,主机310和存储控制器320分别类似于图6中的主机210和存储控制器220的功能。此外,第一闪存芯片330和第二闪存芯片340每个都类似于图6中的闪存230的功能。然而,在存储控制器320中,每个第一缓冲存储器321和第一LSB备份存储器322保存用于编程和读取第一闪存芯片330的数据而每个第二缓冲存储器323和第二LSB备份存储器324保存用于编程和读取第二闪存芯片340的数据。而且,闪存芯片330用于响应存储控制器320产生的第一芯片选择信号CS1以及闪存芯片340用于响应存储控制器320产生的第二芯片选择信号CS2。
在非易失性存储系统300的程序操作中,存储控制器320首先使用第一和第二芯片选择信号CS1和CS2选择第一和第二闪存芯片330和340之一。然后,使用诸如图7所示的编程方法编程所选存储芯片中的存储单元。换而言之,首先将LSB数据编程到所选存储芯片内第一块内的所选存储单元中。然后,在将MSB数据编程到第一块内所选存储单元中之前,将LSB数据传送到对应所选存储芯片的LSB备份存储器。然后,MSB数据被编程到第一块内所选存储单元中,之后所选存储芯片执行程序验证操作以确定在那些所选存储单元中是否成功编程MSB数据。如果在所选存储单元中已成功编程MSB数据,则程序操作终止。否则,如果在第一块中所选存储单元中编程MSB数据期间发生错误或误操作,则可以从对应所选存储芯片的LSB备份存储器和缓冲存储器恢复LSB数据和MSB数据并在所选闪存芯片或其他闪存芯片中的第二存储块编程LSB数据和MSB数据。
类似的,在非易失性存储系统300的读取操作中,存储控制器320根据要读取的存储单元的地址选择第一或第二闪存芯片330或340。然后,类似于上面结合非易失性存储系统100或200的描述,所选闪存芯片和存储控制器320执行读取操作。
图9是表示根据本发明另一实施例的非易失性存储系统900的示意框图。除了非易失性存储系统900能包括任意数“n”的闪存芯片并且对应的缓冲存储器和LSB备份存储器不是两个之外,非易失性存储系统900类似于非易失性存储系统300。
参考图9,非易失性存储系统900包括主机910、存储控制器920以及多个闪存芯片931至93n。存储控制器920包括用于每个闪存芯片的缓冲存储器和LSB备份存储器。更具体的,存储控制器920包括缓冲存储器921至92n以及对应的LSB备份存储器921’至92n’。一般的,在诸如DRAM的单个芯片上形成缓冲存储器921至92n和LSB备份存储器921’至92n’。
在编程操作中,非易失性存储系统900通过激活(或无效)多个对应芯片选择信号之一而选择闪存芯片931至93n之一,然后使用类似于上述关于非易失性存储系统300的方法编程所选闪存芯片中的所选存储单元。类似的,可以通过选择闪存芯片931至93n之一并且然后通过存储控制器920中的对应缓冲存储器从所选闪存芯片读取数据以类似于非易失性存储系统300的方式执行非易失性存储系统900的读取操作。
在图8和9所示的示例性非易失性存储系统中和包括多个非易失性存储芯片的其他系统中,可以每次一个或并行地编程或读取多个非易失性存储芯片。作为怎样并行编程或读取多个非易失性存储芯片的示例,可以使用交叉编程或读取操作或者使用同时并行数据传送而编程或读取图9所示的“n”个闪存芯片,其中交叉操作或并行数据传送可以由存储控制器920控制。为了便于同时并行数据传送和/或交叉操作,“n”个闪存芯片931至93n能通过诸如多个独立数据总线的多个接口连接到存储控制器。
遗憾的是,在图6、8和9所示的系统中,备份LSB数据的处理会降低编程操作的性能。因为每当编程MSB数据时,这些系统中的每个都要备份LSB数据,备份LSB数据的处理能极大地影响这些系统的性能。
因此,提供图10至15所示的本发明的多个附加实施例,其中在每次编程MSB数据时即使不备份LSB数据的情况下避免LSB数据的丢失。相反,如果在MSB编程期间发生错误或误操作,这些附加实施例只备份LSB数据。
与本发明的其他实施例相同,在这些附加实施例中,编程LSB数据后编程MSB数据的描述只用于教导示例。作为本示例的选择方案,可以修改编程操作的顺序,以便首先编程MSB数据,接着是LSB数据。在这些情况下,如果编程LSB数据失败可以备份MSB数据。在另一选择方案中,可以不同地改变每个存储单元中存储的位数以及每个存储单元的编程顺序。
图10表示根据本发明一个实施例的非易失性存储系统400。下面参考图10描述非易失性存储系统400的各个特征。进一步参考图11至13详细描述这些特征的操作。
参考图10,非易失性存储系统400包括主机410、存储控制器420和闪存430。存储控制器420包括缓冲存储器421、备份存储器422(也被称为“修复存储器”)、错误纠正单元423、比较器424、失败位置检测器425和修复电路426。闪存430包括存储单元阵列431、解码器432、页缓冲器433、位线选择电路434、数据缓冲器435和控制电路436。
在存储控制器420中,缓冲存储器421存储将在闪存430中编程的数据。缓冲存储器421在存储控制器420的控制下操作并在编程操作期间从主机410向闪存430传送数据,并在读取操作期间从闪存430向主机410传送数据。例如,在闪存430中编程LSB或MSB数据的页之前,数据一般存储在缓冲存储器421中。如果在闪存430中LSB或MSB数据的编程失败,则缓冲存储器421中保存的数据能用于恢复数据并将数据编程到闪存430中的不同位置。一般,闪存430的所选存储单元中编程LSB或MSB数据的失败可导致在一个或多个所选存储单元中保存的一个或多个错误位。然而,为了简化解释,下面的某些描述假设仅在单个所选存储单元中已发生编程失败。
备份存储器422存储用于从闪存430的编程操作中错误或故障恢复的数据。例如,当在闪存430的所选存储单元中之前已编程LSB数据并进一步对所选存储单元编程MSB数据时,如果进一步编程MSB数据失败,则编程失败后所选存储单元中保存的数据可以被装载到备份存储器422中并用于恢复之前在所选存储单元中编程的LSB数据。
一般地,在单个存储芯片中配置缓冲存储器421和备份存储器422。例如,存储控制器420可以在称为备份存储器422的动态随机访问存储器(DRAM)的第一区域中保存已在所选存储单元中编程的数据,以及存储控制器420可以在称为缓冲存储器421的DRAM芯片的第二区域中保存将在所选存储单元中编程的数据。
错误纠正单元423用于检测并纠正备份存储器422中保存的数据的错误。例如,假设备份存储器422中保存的数据包括错误编码数据页。根据错误编码数据中的错误特性和/或数量,错误纠正单元423可以使用错误编码数据页内的错误纠正代码以检测并纠正错误编码数据中的错误。
比较器424比较闪存430的所选存储单元中保存的数据和缓冲存储器421中保存的数据以便检测和纠正编程错误。例如,在将缓冲存储器421中保存的MSB数据编程到闪存430的所选存储单元之后,从所选存储单元读取MSB数据并与缓冲存储器421中保存的MSB数据相比。一般,在当将MSB数据编程到所选存储单元时发生错误或故障之后进行该比较。下文将参考图11至13解释,MSB数据的比较可以用于检测并纠正之前在所选存储单元中编程的LSB数据中的错误。
失败位置检测器425接收比较器424的输出并使用比较器424的输出以确定在闪存430的所选存储单元中编程失败的位置(即,错误编程存储单元或一个或多个错误位的位置)。失败位置检测器425存储对应编程失败的位置的闪存430的地址并向修复电路426输出位置。
修复电路426从失败位置检测器425接收编程失败的位置并使用编程失败的位置修改备份存储器422中保存的数据。换而言之,如果已发生编程失败(即,一个或多个存储单元中的错误),备份存储器422中保存的数据可能包含一个或多个错误。编程失败的位置用于修改备份存储器422中保存的数据以纠正错误。
在闪存430中,存储单元阵列431保存已编程数据。存储单元阵列431包括多个以行和列配置的多位存储单元,其中存储单元的每行连接到对应字线,以及存储单元的每列连接到对应位线。连接到相同字线的存储单元的每行对应多个数据页。例如,如果多位存储单元是每个2-位存储单元,每个字线对应两页数据。
存储单元阵列431进一步包括对应多位存储单元的行的多个标志单元。具体的,每行多位存储单元连接到对应标志单元,该标志单元表示对应已编程的行的那些数据页。例如,如果每行对应两页数据,则每个标志单元可具有第一状态,表示已在对应行的存储单元中编程LSB数据页,和第二状态,表示已在对应行的存储单元中编程MSB数据页。
页缓冲器433通过位线BL0至BLm连接到存储单元阵列431并在编程操作期间临时在存储单元阵列431存储要编程的数据并在读取操作期间存储从存储单元阵列431读取的数据。位线选择电路434根据位线选择信号Yi控制位线的激活或选择用于编程和读取操作。根据页缓冲器433中保存的数据驱动所选或所激活的位线来编程或读取存储单元阵列431中的所选存储单元。一般(但不是必须的),每次一页地对存储单元阵列431执行编程和读取操作。举例说明,首先将存储单元阵列431中要编程的数据页传送到页缓冲器433。然后,根据页缓冲器433中保存的数据页将合适的电压应用于对应存储单元阵列431中要编程的存储单元行的字线和位线。
解码器432从存储控制器420接收读取和程序地址并根据读取和程序地址控制字线和位线的激活或选择用于控制单元436的读取和编程操作。在图10的例子中,解码器432通过字线WL0至WLn连接至存储单元阵列431,并产生位线选择信号Yi以控制位线的激活或选择用于位线选择电路434的编程和读取操作。
数据缓冲器435是用于在存储控制器420和闪存430之间传送数据的输入/输出缓冲器。例如,在读取操作中,通过页缓冲器433和位线选择电路434从存储单元阵列431向数据缓冲器435传送所选存储单元中保存的数据。然后,从数据缓冲器435向存储控制器420传送数据,并且此后数据被传送到主机410。另一方面,在编程操作中,在存储单元阵列431的所选存储单元中要编程的数据被从主机410传送到存储控制器420并且此后传送到数据缓冲器435。然后,通过位线选择电路434从数据缓冲器435向页缓冲器433传送数据,并此后,在所选存储单元中编程数据。数据缓冲器435在控制单元436的控制下操作,其依次响应存储控制器420产生的控制信号而操作。
图11是表示图10的非易失性存储系统的所选存储单元的一种编程操作类型的阈值电压分布图。在图11中,一对标为“(a)”的阈值电压分布图表示在图10的非易失性存储系统中所选存储单元的LSB程序操作以及一对标为“(b)”的阈值电压分布图表示在图10的非易失性存储系统中所选存储单元的MSB程序操作。该对标为“(a)”的阈值电压分布图在下文中将统一称为示意图“(a)”以及该对标为“(b)”的阈值电压分布图在下文中将称为示意图“(b)”。
除了在图11的编程操作中,标志单元用于表示在所选存储单元上是否已执行MSB编程之外,图11的编程操作类似于图4中所示的编程操作。应该注意,图4的编程操作也能使用标志单元。然而,为了简化解释从图4的描述中省略标志单元。
为了解释目的,假设结合图11描述的标志单元连接到所选存储单元位于的行。如果在所选存储单元位于的行上还没执行MSB编程,则标志单元具有逻辑状态“1”,并如果所选存储单元位于的行上已执行MSB编程,则标志单元具有逻辑状态“0”。如果对所选存储单元还没有执行MSB编程,则读取电压VR1用于确定所选存储单元的LSB是逻辑“1”或逻辑“0”,并如果对所选存储单元已执行MSB编程,则读取电压VR2用于确定所选存储单元的LSB是逻辑“1”或逻辑“0”。
如同图4的所选存储单元,图11的所选存储单元是能存储两位数据的多位非易失性存储单元。图11的所选存储单元能关于分别在图(b)中标为“11”、“10”、“10”和“00”的四个阈值电压分布而存储两位数据。所选存储单元也能关于图(a)的左手侧上标为“1”的阈值电压分布和标为“0”的阈值电压分布而存储一位数据。
在图11的所选存储单元的编程操作中,所选存储单元最初处于擦除状态,对应图(a)中左手侧标为“1”的阈值电压分布和图(b)中标为“11”的阈值电压分布。此外,标志单元最初处于对应图(a)的右手侧标为“1”的阈值电压分布的擦除状态。
在编程操作中,使用LSB数据编程所选存储单元的LSB,然后使用MSB数据编程所选存储单元的MSB。如果编程LSB以存储逻辑“0”,则所选存储单元的阈值电压应能从图(a)中标为“1”的阈值电压分布过渡到图(a)中标为“0”的阈值电压分布。否则,所选存储单元的阈值电压应能保持在标为“1”的阈值电压分布。
然而,在已编程所选存储单元的LSB之后,执行程序验证操作以确保所选存储单元的LSB被编程至其目标逻辑状态。如果存储单元的LSB不具有目标逻辑状态,进一步使用缓冲存储器421中保存的LSB数据编程所选存储单元的LSB,或者可选地,检测LSB编程错误或故障。如果检测到LSB编程错误或故障,则选择例如在存储单元阵列431的不同页或块的不同存储单元并将LSB数据从缓冲存储器421编程到不同存储单元中。如果程序验征操作确定所选存储单元的LSB被编程到目标逻辑状态,则认为LSB的编程是成功的。一旦LSB成功编程,则标志单元保持在擦除状态。
假设所选存储单元的LSB已被成功编程到逻辑“0”,并如果编程所选存储单元的MSB,则所选存储单元应从图(a)中标为“0”的中间阈值电压分布过渡到图(b)中标为“10”的阈值电压分布或标为“00”的阈值电压分布,这取决于MSB分别是逻辑“1”或逻辑“0”。否则,假设所选存储单元的LSB已被成功编程到逻辑“1”,并如果编程所选存储单元的MSB,则存储单元应从图(a)中标为“1”的阈值电压分布过渡到图(b)中标为“11”的阈值电压分布或标为“01”的阈值电压分布,这取决于MSB分别是逻辑“1”或逻辑“0”。
在已编程所选存储单元的MSB之后,执行程序验证操作以确保将所选存储单元的MSB和LSB编程到它们的目标逻辑状态。如果程序验证操作确定所选存储单元的MSB和LSB已被编程到它们的目标逻辑状态,则认为MSB的编程是成功的。一旦成功编程MSB,则标志单元过渡到图(b)中标为“0”的阈值电压分布。另一方面,如果存储单元的MSB或LSB不具有其目标逻辑状态,则可进一步编程所选存储单元的MSB,或者可选地,可以检测MSB编程错误或故障。如果检测到MSB编程错误或故障,则可以随意从缓冲存储器421恢复MSB数据用于编程到不同存储单元中。然而,遗憾的是,如果检测到MSB编程错误或故障,将修改之前保存在所选存储单元中的LSB数据。因为当编程所选存储单元的MSB时缓冲存储器421不再保存LSB数据,需要重要的恢复处理以确定所选存储单元的正确逻辑状态。
图12和13表示LSB数据的示例性恢复处理。然而,在解释恢复处理之前,应该注意所选存储单元的MSB或LSB编程操作期间发生的编程错误或故障的特性一般取决于所选存储单元的阈值电压分布的配置以及阈值电压分布赋值的逻辑状态。例如,由于将图11的图(b)中四个阈值电压分布赋值到各个逻辑状态“11”、“01”、“10”和“00”,以及图(a)中标为“0”的相对宽的中间阈值电压分布的使用,所选存储单元的某种类型的程序错误或故障更有可能发生。
例如,对于已成功编程所选存储单元的LSB到逻辑“1”以及编程MSB到逻辑“0”,如果MSB的编程失败,则所选存储单元的阈值电压分布可能保持在标为“11”的阈值电压分布内。在该情况下,所选存储单元的LSB将保持逻辑“1”,并因此不受失败影响以正确编程MSB。
另一方面,对于已成功编程所选存储单元的LSB到逻辑“0”以及编程MSB到逻辑“1”,如果MSB的编程失败,则所选存储单元的LSB可能不合需要地从逻辑“0”修改为逻辑“1”。换而言之,所选存储单元的目标逻辑状态是“10”,但在MSB编程失败之后所选存储单元的实际逻辑状态终止为“01”。
所选存储单元的LSB可能不合需要地从逻辑“0”修改为逻辑“1”的一个原因在于与图11中的其他阈值电压分布相比图(a)中标为“0”的阈值电压分布相对宽。例如,如图(a)中点“A”和“B”以及图(b)中对应点“A”和“B”所示,图(a)中标为“0”的阈值电压分布与图(b)中标为“01”和“10”的各个阈值电压分布重叠。因为图(a)中标为“0”的阈值电压分布与图(b)中的多个阈值电压分布重叠,对于MSB编程之前所选存储单元的阈值电压在点“A”的情况,如果MSB编程失败,则所选存储单元将在标为“01”的阈值电压分布终止。
因为所选存储单元的MSB或LSB编程操作期间发生编程错误或故障的特性典型地取决于所选存储单元的阈值电压分布的配置和逻辑状态到阈值电压分布的赋值,不同的恢复操作可用于具有不同阈值电压分布和对应逻辑状态的存储单元。因此,在不背离本发明范围的情况下可以对图11至13所示的讲解示例进行各种修改。
为了简化解释,下文将阈值电压分布的配置和逻辑状态到不同阈值电压分布的对应赋值称为存储单元或存储单元组的“单元加扰(cell scramble)”。例如,由图(a)和(b)中所选存储单元的阈值电压分布表示图11所选存储单元的“单元加扰”。因为所选存储单元的编程中错误或故障取决于所选存储单元的“单元加扰”,将关于单元加扰检测所选存储单元中的位错误。
一般,对于使用图11的单元加扰的情况,如果MSB打算被编程到逻辑状态“1”但相反被编程到逻辑状态“0”,这一般暗示所选存储单元具有标为“01”的阈值电压分布内的阈值电压,而它打算具有标为“10”的阈值电压分布内的阈值电压。(或者,可能是MSB错误可表示当所选存储单元打算在标为“11”的阈值电压分布内时,所选存储单元在标为“00”的阈值电压分布内;然而,该错误不可能足以在非易失性存储系统400的一般操作中忽视)。因此,恢复处理可以比较所选存储单元中编程的MSB数据和缓冲存储器421中保存的对应MSB,并如果所选存储单元的MSB是逻辑“0”以及缓冲存储器421中保存的MSB是逻辑“1”,则恢复处理可以确定不仅错误存在于所选存储单元中存储的MSB数据中,而且错误已发生在所选存储单元中保存的LSB数据中,将LSB数据从逻辑“0”改变为逻辑“1”。
图12是表示图10的非易失性存储系统400的LSB和MSB数据的恢复处理的示例的示意图。图12的恢复处理包括失败位置检测和数据恢复操作。
图12中,行“(a)”表示存储单元阵列431的所选存储单元中要编程的原始数据页,行“(b)”表示在存储单元阵列431的所选存储单元中实际编程的数据页,行“(c)”表示在存储单元阵列431的所选存储单元中编程的MSB数据页(标为“闪存MSB数据”),行“(d)”表示缓冲存储器421中保存的MSB数据页(表示“缓冲MSB数据”);行“(e)”表示在存储单元阵列341的所选存储单元中编程的LSB数据页(表示“闪存LSB数据”)以及行“(f)”表示使用恢复处理从闪存LSB数据恢复的LSB数据页(表示“恢复LSB数据”)。
在图12中,由表示原始数据和在所选存储单元中实际编程的数据之间的差别的弧线表示编程错误或故障。在图12的两个弧线中,原始数据是“10”以及编程数据是“01”。换而言之,包括位错误的所选存储单元的目标状态对应图11中标为“10”的阈值电压分布,而包括位错误的所选存储单元的实际状态对应图11中标为“01”的阈值电压分布。如上所述,可以通过比较闪存MSB数据和缓冲MSB数据检测该错误的特定类型。如果特定存储单元的闪存MSB数据是逻辑“0”以及特定存储单元的缓冲MSB数据是逻辑“1”,应该恢复特定存储单元中的LSB数据以便它是逻辑“0”。
在非易失性存储系统400中,一般在存储控制器420的控制下在比较器424中执行闪存MSB数据和缓冲MSB数据之间的比较。根据比较器424执行的比较可以检测“失败位置”的定位(即,位错误)并保存在失败位置检测器425中。一般从存储单元阵列431将闪存LSB数据通过错误纠正电路422读入备份存储器422。一旦比较器424和错误位置检测器424已识别出闪存LSB数据的错误需要修改,则恢复电路426可以使用错误位置修复闪存LSB数据以产生修复的LSB数据。
图13是表示耜据本发明一实施例的图10的存储系统的编程操作的流程图。图13的流程图进一步阐明图12所示的恢复操作,也描述了在编程非易失性存储系统400中涉及的其他程序。在下面的描述中,由括号表示示例性方法步骤。此外,为了便于解释,从编程操作的描述中省略各种常规细节。例如,该描述不讨论涉及在主机410和存储控制器420之间发送命令和地址或从控制器420向闪存430发送控制信号的特定问题。然而,本领域技术人员可以理解在本发明的范围内操作和控制非易失性存储系统400的各种技术。
参考图13,在非易失性存储系统400的编程操作中,将LSB数据编程到存储单元阵列431的所选存储单元(S205)。为了简化解释,假设将LSB数据成功编程到所选存储单元。然后,将所选存储单元中要编程的MSB数据保存在缓冲存储器421中(S210)。然后,将缓冲存储器421中保存的MSB数据编程到所选存储单元中(S215)。
在将缓冲存储器421中保存的MSB数据编程到所选存储单元之后,执行程序验证操作以确定是否已成功编程所有的所选存储单元(S220)。如果程序验证操作确定已成功编程所有的所选存储单元,则编程操作终止(参见,图13中标为“No”的上箭头)。如果成功编程MSB数据,一般编程对应所选存储单元的标志单元以表示在所选存储单元中已编程MSB数据。否则,如果当编程所选存储单元中的MSB数据时程序验证操作确定已发生错误或故障,则存储控制器420将编程到所选存储单元的LSB数据读入错误纠正单元423(S225)。
此时,错误纠正单元423中保存的LSB数据可能包含错误,因为如上所述,当编程所选存储单元中的MSB数据时发生的错误或故障也可能引起LSB数据中的错误。因此,接下来错误纠正单元423评价LSB数据以检测LSB数据中错误的出现和/或确定是否使用错误纠正技术纠正在LSB数据中可能存在的错误(S230)。如果错误纠正单元423确定LSB数据不包含任何错误或可以使用错误纠正技术纠正LSB数据中的任何错误,则不真正需要修改或恢复LSB数据。相反,对应所选存储单元的标志单元可保持在一状态,该状态表示已在所选存储单元中只正确编程LSB数据并可以从缓冲存储器421将MSB数据编程到存储单元阵列431的不同位置。或者,可以将LSB数据和MSB数据编程到存储单元阵列431中的不同存储单元集。在任何情况下,如果LSB数据不包含任何错误或只包含可以由错误纠正单元423使用的错误纠正技术容易纠正的错误,则不需要修复LSB数据并因此如图13中标为“Yes”的箭头所示可以省略图13中步骤S230以后的步骤。
如果错误纠正单元423中保存的LSB数据包含不能使用由错误纠正单元423使用的错误纠正技术容易纠正的错误,则将错误纠正单元423中保存的LSB数据保存在备份存储器422并且执行如图13中标为“No”的下部箭头所示的进一步的步骤。具体的,比较器424接收所选存储单元中编程的MSB数据(“闪存MSB数据”)和缓冲存储器421中保存的MSB数据(“缓冲MSB数据”)并比较闪存MSB数据和缓冲MSB数据(S235)。根据闪存MSB数据和缓冲MSB数据之间的差别,然后失败位置检测器425检测MSB数据中一个或多个位错误的位置(S240)。然后,使用失败位置检测器425获得的位置,并根据所选存储单元的单元加扰,修复电路426修改备份存储器422中保存的LSB数据(S245)。然后,备份存储器422中保存的已修改LSB数据被传送回到错误纠正单元423以及错误纠正单元423可能检测和/或纠正已修改LSB数据中的剩余错误(S250)。最后,一旦已修改LSB数据以纠正MSB数据的失败编程引起的错误,将分别从错误纠正单元423或备份存储器422以及缓冲存储器421将LSB数据和MSB数据编程到闪存4 30内的新块或页(S255)。
图14是根据本发明另一实施例的非易失性存储系统500的示意框图。非易失性存储系统500类似于图10所示的非易失性存储系统400。具体的,非易失性存储系统500包括类似于主机410的主机510、类似于存储控制器420的存储控制器520以及闪存芯片530和540,它们中每个都类似于闪存430。
与非易失性存储系统400相反,非易失性存储系统500包括两个闪存芯片530和540。相应地,存储控制器520包括用于分别编程闪存芯片530和闪存芯片540的两个缓冲存储器52a和52a。然而,与图8中的存储控制器320不同,存储控制器520只包括一个备份存储器522。存储控制器520只包括一个备份存储器522的原因在于存储控制器520类似于存储控制器420操作,其中在所选存储单元编程MSB数据之前在闪存芯片530和540的所选存储单元中编程的LSB数据不是自动存储在备份存储器522中。相反,在将MSB数据编程到所选存储单元的尝试失败之后,只将所选存储单元中保存的LSB数据传送到备份存储器522。如果试图将MSB数据编程到闪存芯片530或540的所选存储单元失败,则使用缓冲存储器521和备份存储器522执行图13中的步骤S230至S255以从所选存储单元恢复LSB数据。
图15是根据本发明另一实施例的非易失性存储系统的示意框图。图15的非易失性存储系统600类似于图14所示的非易失性存储系统500。具体的,非易失性存储系统600包括类似于主机510的主机610、类似于存储控制器520的存储控制器620以及每个都类似于闪存芯片530和540的闪存芯片631至63n。然而,与非易失性存储系统500相反,不是两个闪存芯片和两个对应缓冲存储器,非易失性存储系统600可以具有任意数“n”的缓冲存储器621至62n以及任意数“n”的对应闪存芯片631至63n。如同存储控制器520,存储控制器620包括单个共享备份存储器62n’,用于当在任何闪存芯片631至63n中的编程MSB数据失败时对LSB数据执行修复操作。非易失性存储系统600的功能类似于非易失性系统500和400,并因此省略其功能的详细描述以避免冗余。
如同非易失性存储系统300和900,非易失性存储系统500和600可使用多种不同接口和/或数据传送协议以分别在存储控制器520和620以及存储芯片530和540和631至63n之间传送数据。例如,非易失性存储系统500和600可以使用多个接口以执行同时并行数据传送或使用一个或多个接口以执行交叉数据传送。而且,如同本发明的其他实施例,可以在诸如单个DRAM的单个芯片的不同区域或多个不同芯片中分别形成存储控制器520和620中的缓冲存储器和备份存储器。
因为图10至图15中所示的非易失性存储系统不需要每次执行MSB编程时备份LSB数据,这些系统相对于其中每次执行MSB数据都备份LSB数据的系统具有更高的性能,除非编程失败太频繁以至于高频率地使用备份的LSB数据。此外,因为图10至15中所示的系统只为多个缓冲存储器使用一个共享备份存储器,这些系统与为每个缓冲存储器都包括一个备份存储器的类似系统相比设计的规模更小。
总而言之,通过为已在所选多层存储单元中保存的数据提供备份存储器,并通过当MSB编程操作失败时提供恢复数据的进程,本发明的实施例可以避免当编程多级存储单元时的数据丢失。结果,本发明的实施例提供与常规非易失性存储系统相比具有改进可靠性的非易失性存储系统。
上述示例性实施例只是讲解示例。本领域技术人员能理解在不背离后面的权利要求定义的本发明范围的情况下可以对示例性实施例进行形式和细节上的各种改变。

Claims (31)

1.一种非易失性半导体存储系统,包括:
包括多个多位存储单元的一存储阵列;和
一存储控制器,包括:
一缓冲存储器,用于存储在多个存储单元中所选存储单元中已编程的j-位数据;
一修复存储器,用于保存从所选存储单元中读取的i-位数据;
一失败位置检测器,用于根据从所选存储单元读取的j-位数据和缓冲存储器中存储的j-位数据之间的比较确定i-位数据中的位错误的位置;和
一修复单元,用于修复在修复存储器中保存的i-位数据中的位错误。
2.根据权利要求1所述的系统,其中缓冲存储器具有比修复存储器更大的容量。
3.根据权利要求1所述的系统,其中存储控制器进一步包括用于执行比较的比较器。
4.根据权利要求1所述的系统,其中存储控制器进一步包括用于纠正i-位数据中错误的错误纠正单元。
5.根据权利要求1所述的系统,其中存储控制器进一步包括用于纠正i-位数据中错误的错误纠正电路。
6.根据权利要求1所述的系统,其中失败位置检测器关于多位存储单元的单元加扰确定位错误的位置,其中,所述单元加扰是指阈值电压分布的配置和逻辑状态到不同阈值电压分布的对应赋值。
7.根据权利要求1所述的系统,其中i-位数据和j-位数据都包括数据页或块。
8.根据权利要求1所述的系统,其中存储阵列包括NAND闪存阵列。
9.一种非易失性半导体存储系统,包括:
第一至第n存储芯片,每个包括多个多位非易失性存储单元;和
一存储控制器,包括:
第一至第m缓冲存储器,每个用于保存在第一至第n存储芯片内的多个多位非易失性存储单元中所选存储单元中编程的j-位数据;
和第一至第p修复存储器,用于保存在所选存储单元中保存的i-位数据;
一失败位置检测器,用于根据从所选存储单元读取的j-位数据和缓冲存储器中存储的j-位数据之间的比校,来确定i-位数据中的位错误的位置;和
一修复单元,用于修复在修复存储器中保存的i-位数据中的位错误。
10.根据权利要求9所述的系统,其中n和m都大于1以及第一至第p修复存储器包括单个修复存储器。
11.根据权利要求9所述的系统,其中第一至第m缓冲存储器和第一至第p修复存储器包括单个存储芯片的不同区域。
12.根据权利要求9所述的系统,其中n等于m。
13.根据权利要求9所述的系统,其中存储控制器进一步包括用于执行比较的比较器。
14.根据权利要求9所述的系统,其中存储控制器进一步包括用于纠正i-位数据中错误的错误纠正单元。
15.根据权利要求9所述的系统,其中存储控制器进一步包括用于纠正i-位数据中错误的错误纠正电路。
16.根据权利要求9所述的系统,其中失败位置检测器关于多位存储单元的单元加扰确定位错误的位置,其中,所述单元加扰是指阈值电压分布的配置和逻辑状态到不同阈值电压分布的对应赋值。
17.根据权利要求9所述的系统,其中i-位数据和j-位数据都包括数据页或块。
18.根据权利要求9所述的系统,其中一个或多个第一至第n存储芯片包括NAND闪存芯片。
19.一种在多位非易失性半导体存储系统中执行编程操作的方法,所述多位非易失性存储系统包括包含多个多位存储单元的一存储阵列和一存储控制器,该方法包括:
在存储阵列的所选存储单元中编程i-位数据;
在存储控制器中保存j-位数据;
编程所选存储单元中的j-位数据;
确定在所选存储单元中是否成功编程j-位数据;
一旦确定在所选存储单元中没有成功编程j-位数据,则比较所选存储单元中保存的j-位数据和存储控制器中保存的j-位数据;
根据比较,确定所选存储单元中存储的i-位数据的至少一个位错误的位置;以及
修复i-位数据中至少一个位错误。
20.根据权利要求19所述的方法,进一步包括:
一旦确定在所选存储单元中成功编程j-位数据,则终止编程操作。
21.根据权利要求19所述的方法,进一步包括:
一旦确定在所选存储单元中没有成功编程j-位数据,并在比较所选存储单元中保存的j-位数据和存储控制器中保存的j-位数据之前,将i-位数据从所选存储单元读入存储控制器中并确定通过错误纠正单元是否能够纠正i-位数据中的任何位错误;以及
一旦确定可以由错误纠正单元纠正i-位数据中的任何错误,则终止编程操作。
22.根据权利要求19所述的方法,进一步包括:
在修复i-位数据中的至少一个位错误之后,使用错误纠正单元纠正i-位数据中的任何剩余位错误。
23.根据权利要求19所述的方法,其中关于多位存储单元的单元加扰确定i-位数据中的至少一个位错误的位置,其中,所述单元加扰是指阈值电压分布的配置和逻辑状态到不同阈值电压分布的对应赋值。
24.根据权利要求19所述的方法,其中存储阵列包括NAND闪存阵列。
25.根据权利要求19所述的方法,其中j-位数据和i-位数据都包括数据页或块。
26.一种编程非易失性存储器的方法,该非易失性存储器包括多位非易失性存储单元,该方法包括:
定义存储单元的单元加扰;
在非易失性存储器的所选存储单元中编程i-位数据;
在存储控制器中保存j-位数据;
编程所选存储单元中的j-位数据;
确定在所选存储单元中是否成功编程j-位数据;
一旦确定在所选存储单元中没有成功编程j-位数据,则比较所选存储单元中保存的j-位数据和存储控制器中保存的j-位数据;
根据比较,确定所选存储单元中存储的i-位数据的至少一个位错误的位置;
以及
关于单元加扰修复所选存储单元中的i-位数据,
其中,所述单元加扰是指阈值电压分布的配置和逻辑状态到不同阈值电压分布的对应赋值。
27.根据权利要求26所述的方法,进一步包括:
使用错误纠正单元纠正i-位数据中的错误。
28.根据权利要求26所述的方法,其中存储单元是两位非易失性存储元;以及
其中i-位数据是最高有效位数据以及j-位数据是最低有效位数据。
29.根据权利要求26所述的方法,其中存储单元是两位非易失性存储单元;以及
其中i-位数据是最低有效位数据以及j-位数据是最高有效位数据。
30.根据权利要求26所述的方法,其中j-位数据和i-位数据都包括数据页或块。
31.根据权利要求26所述的方法,其中非易失性存储器包括NAND闪存。
CN2007103077842A 2006-10-19 2007-10-19 非易失性存储系统和相关编程方法 Active CN101202109B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR101954/06 2006-10-19
KR1020060101954A KR100845526B1 (ko) 2006-10-19 2006-10-19 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법
US11/730,322 US7602642B2 (en) 2006-10-19 2007-03-30 Nonvolatile memory system and associated programming methods
US11/730,322 2007-03-30

Publications (2)

Publication Number Publication Date
CN101202109A CN101202109A (zh) 2008-06-18
CN101202109B true CN101202109B (zh) 2012-12-26

Family

ID=39317738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007103077842A Active CN101202109B (zh) 2006-10-19 2007-10-19 非易失性存储系统和相关编程方法

Country Status (3)

Country Link
US (1) US7602642B2 (zh)
KR (1) KR100845526B1 (zh)
CN (1) CN101202109B (zh)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
EP1808863A1 (en) * 2006-01-16 2007-07-18 Deutsche Thomson-Brandt Gmbh Method and apparatus for recording high-speed input data into a matrix of memory devices
KR100784867B1 (ko) * 2006-12-13 2007-12-14 삼성전자주식회사 엠에스비 프로그램 상태를 저장하는 플래그 셀들을구비하는 비휘발성 메모리 장치
KR100877610B1 (ko) * 2007-01-23 2009-01-09 삼성전자주식회사 페이지 데이터 저장 방법과 저장 장치
US7577028B2 (en) * 2007-03-23 2009-08-18 Intel Corporation Memory storage technique for a bi-directionally programmable memory device
KR100889781B1 (ko) 2007-04-30 2009-03-20 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템
KR100873825B1 (ko) 2007-05-02 2008-12-15 삼성전자주식회사 비휘발성 메모리의 멀티 비트 프로그래밍 장치 및 방법
KR101264112B1 (ko) * 2007-12-07 2013-05-13 삼성전자주식회사 최상위 비트 프로그램 판정방법을 개선한 플래시 메모리장치
KR100923821B1 (ko) * 2007-12-24 2009-10-27 주식회사 하이닉스반도체 불휘발성 메모리 장치의 페이지 버퍼 및 그 프로그램 방법
TW200929225A (en) * 2007-12-25 2009-07-01 Powerchip Semiconductor Corp Memory programming method and data access method
US8040730B2 (en) * 2008-11-28 2011-10-18 Samsung Electronics Co., Ltd. Nonvolatile memory device
KR101005120B1 (ko) * 2009-02-04 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 방법
KR20100107294A (ko) 2009-03-25 2010-10-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 불휘발성 메모리 장치의 프로그램 방법
US8285917B2 (en) * 2009-03-26 2012-10-09 Scaleo Chip Apparatus for enhancing flash memory access
KR101594030B1 (ko) * 2009-05-13 2016-02-29 삼성전자주식회사 플래시 메모리 장치의 프로그램 방법
KR101005164B1 (ko) * 2009-05-29 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 이의 프로그램 방법
JP2011048725A (ja) * 2009-08-28 2011-03-10 Panasonic Corp 不揮発性記憶装置および不揮発性メモリコントローラ
JP2012003644A (ja) * 2010-06-21 2012-01-05 Fujitsu Ltd メモリエラー箇所検出装置、及びメモリエラー箇所検出方法。
US8503238B1 (en) * 2010-07-21 2013-08-06 Sk Hynix Memory Solutions Inc. Error recovery for flash memory
KR20120059035A (ko) * 2010-11-30 2012-06-08 에스케이하이닉스 주식회사 반도체 메모리 장치의 프로그램 방법
US9324433B2 (en) * 2011-04-25 2016-04-26 Microsoft Technology Licensing, Llc Intelligent flash reprogramming
KR20130049332A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
CN103327315B (zh) * 2012-03-22 2016-12-21 上海算芯微电子有限公司 动态可回退码流缓冲模块系统与方法
KR101979392B1 (ko) 2012-05-17 2019-05-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR101348354B1 (ko) * 2012-05-30 2014-01-08 주식회사 디에이아이오 낸드 플래시 메모리 장치의 페이지 데이터 독출 방법
KR102006995B1 (ko) * 2012-11-22 2019-08-02 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR101994672B1 (ko) 2012-12-04 2019-07-01 삼성전자 주식회사 저장 장치 및 저장 장치의 동작 방법
KR102025341B1 (ko) 2012-12-04 2019-09-25 삼성전자 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작 방법
KR102002826B1 (ko) 2012-12-04 2019-07-23 삼성전자 주식회사 저장 장치, 플래시 메모리 및 저장 장치의 동작 방법
JP2015022516A (ja) * 2013-07-19 2015-02-02 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
KR102163872B1 (ko) * 2013-08-09 2020-10-13 삼성전자 주식회사 멀티 비트 메모리 장치, 그것의 온칩 버퍼 프로그램 방법 및 멀티 비트 메모리 시스템
KR102190399B1 (ko) 2013-10-11 2020-12-11 삼성전자주식회사 신뢰성을 보장할 수 있는 불휘발성 메모리 장치의 동작 방법 및 상기 방법을 수행하는 메모리 시스템
US9477423B2 (en) 2013-11-26 2016-10-25 Seagate Technology Llc Eliminating or reducing programming errors when programming flash memory cells
US9417960B2 (en) 2013-12-20 2016-08-16 Seagate Technology Llc Preventing programming errors from occurring when programming flash memory cells
US10365966B1 (en) * 2014-03-25 2019-07-30 Marvell lnternational Ltd. Methods and systems for wordline based encoding and decoding in NAND flash
US9507663B1 (en) * 2015-05-04 2016-11-29 Macronix International Co., Ltd. Memory device and operation method
KR20170073792A (ko) * 2015-12-18 2017-06-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10402314B2 (en) * 2016-05-16 2019-09-03 SK Hynix Inc. Self-management memory system and operating method thereof
KR102641107B1 (ko) * 2016-07-29 2024-02-27 삼성전자주식회사 스토리지 장치, 이를 포함하는 시스템 및 그 동작 방법
KR20180070779A (ko) * 2016-12-16 2018-06-27 삼성전자주식회사 리페어 온 시스템에서의 포스트 패키지 리페어를 위한 데이터 백업 방법
KR102362858B1 (ko) * 2017-09-11 2022-02-15 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10839925B2 (en) * 2017-09-11 2020-11-17 SK Hynix Inc. Semiconductor memory device and method of operating the same
CN108109665A (zh) * 2018-01-12 2018-06-01 成都信息工程大学 一种存储器操作方法
CN110134322B (zh) * 2018-02-02 2022-05-31 建兴储存科技(广州)有限公司 运用dram的储存装置及其相关数据处理方法
US11055226B2 (en) * 2018-06-29 2021-07-06 Intel Corporation Mitigation of cache-latency based side-channel attacks
US11309032B2 (en) * 2019-11-26 2022-04-19 Samsung Electronics Co., Ltd. Operating method of memory system including memory controller and nonvolatile memory device
CN112667446B (zh) * 2021-01-13 2022-11-08 珠海妙存科技有限公司 Mlc nand的数据备份方法、装置及闪存系统
KR20220156399A (ko) * 2021-05-18 2022-11-25 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532556B1 (en) * 2000-01-27 2003-03-11 Multi Level Memory Technology Data management for multi-bit-per-cell memories
CN1630911A (zh) * 2002-02-11 2005-06-22 先进微装置公司 多级闪存的部分页编程

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6839875B2 (en) * 1996-10-18 2005-01-04 Micron Technology, Inc. Method and apparatus for performing error correction on data read from a multistate memory
US6119251A (en) * 1997-04-22 2000-09-12 Micron Technology, Inc. Self-test of a memory device
JP2000173289A (ja) 1998-12-10 2000-06-23 Toshiba Corp エラー訂正可能なフラッシュメモリシステム
KR100386296B1 (ko) * 2000-12-30 2003-06-02 주식회사 하이닉스반도체 멀티레벨을 가지는 플래쉬 메모리를 프로그램/리드하기위한 회로 및 그 방법
JP2002334586A (ja) 2001-05-07 2002-11-22 Yamaha Corp フラッシュメモリを用いた情報記憶方法および情報記憶プログラム
ITTO20010529A1 (it) * 2001-06-01 2002-12-01 St Microelectronics Srl Metodo di controllo dell'errore in celle di memoria multilivello con numero di bit memorizzati configurabile.
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
JP4034949B2 (ja) 2001-09-06 2008-01-16 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP4158526B2 (ja) 2003-01-09 2008-10-01 松下電器産業株式会社 メモリカード及びメモリへのデータ書き込み方法
US6868022B2 (en) * 2003-03-28 2005-03-15 Matrix Semiconductor, Inc. Redundant memory structure using bad bit pointers
KR100512181B1 (ko) * 2003-07-11 2005-09-05 삼성전자주식회사 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
TWI309776B (en) * 2003-10-24 2009-05-11 Hon Hai Prec Ind Co Ltd Secure storage system and method for solid memory
US7336531B2 (en) * 2004-06-25 2008-02-26 Micron Technology, Inc. Multiple level cell memory device with single bit per cell, re-mappable memory block
US7420847B2 (en) 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7380191B2 (en) * 2005-02-09 2008-05-27 International Business Machines Corporation ABIST data compression and serialization for memory built-in self test of SRAM with redundancy
KR101080912B1 (ko) * 2005-04-11 2011-11-09 주식회사 하이닉스반도체 멀티 레벨 셀을 갖는 비휘발성 메모리 장치의 프로그램방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6532556B1 (en) * 2000-01-27 2003-03-11 Multi Level Memory Technology Data management for multi-bit-per-cell memories
CN1630911A (zh) * 2002-02-11 2005-06-22 先进微装置公司 多级闪存的部分页编程

Also Published As

Publication number Publication date
CN101202109A (zh) 2008-06-18
US7602642B2 (en) 2009-10-13
KR100845526B1 (ko) 2008-07-10
KR20080035353A (ko) 2008-04-23
US20080094893A1 (en) 2008-04-24

Similar Documents

Publication Publication Date Title
CN101202109B (zh) 非易失性存储系统和相关编程方法
EP3520108B1 (en) A method of reading data from a memory device using dynamic redundancy registers
CN101246738B (zh) 具有备份电路的存储系统及编程方法
US8286055B2 (en) Nonvolatile memory device and method of operating the same
US20200110547A1 (en) Storage device and operating method of storage device
US7554859B2 (en) Nonvolatile memory system and associated programming methods
CN102033785B (zh) 检测不稳定存储单元的分布的存储系统和方法
US7457911B2 (en) Nonvolatile memory device and method for storing status information using multiple strings
US8327224B2 (en) Data recovery in a solid state storage system
US10127104B2 (en) Semiconductor memory device and memory system
US20210311828A1 (en) Copy-back operations in a memory device
CN101303891A (zh) 存储系统及其编程方法和包括存储系统的计算系统
US20170162267A1 (en) Data Storage Device and Data Maintenance Method
US9170937B2 (en) Data storage device and operating method for flash memory
US20160307610A9 (en) Memory system that detects bit errors due to read disturbance and methods thereof
US20120002469A1 (en) Nonvolatile semiconductor memory device
US8046529B2 (en) Updating control information in non-volatile memory to control selection of content
US11108412B2 (en) Memory systems and methods of correcting errors in the memory systems
US11119854B2 (en) Method of controlling verification operations for error correction of non-volatile memory device, and non-volatile memory device
KR101081879B1 (ko) 불휘발성 메모리 장치의 프로그램 방법
US20100332898A1 (en) Nonvolatile memory device and copyback program method thereof
JP2012243332A (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
C14 Grant of patent or utility model
GR01 Patent grant