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

文档序号:6780196阅读:131来源:国知局
专利名称:非易失性存储系统和相关编程方法
技术领域
本发明实施例总体上涉及非易失性的半导^H诸系统。更胁的,本发明实施 例涉及包括多级非易失'^^f诸单元的非易失性半^^f诸系统和用于编程多级非易 失'l"^^者单元的方法。
背景技术
非易失'^^賭系统通常应用于各种消费者和工业电子应用。该应用的常见示例 包括手机、个人数字助理(PDA)、 MP3才番》文器、数字才射斜几、便携磁盘驱动器、便携 媒#^番放器(PMP)禾"者如用于个人计算机的;l^4lr入/输出系统(BIOS)的辅助存 储器,此处仅列举了几个。
由于非易失性务賭系统的广泛使用,对于具有更高数据^^诸能力和更高整沐性 能的非易失性存储系统具有与日俱增的需求。结果,研究者持续致力于发现新方法 以在非易失'^^诸系统中每个务賭芯片单元区域保存更多数悟。
多级非易失'^##单元的^^]是已*^用以增加非易失^^[诸系统中每个单元 ^f诸芯片区域^4数据量的一项技术。多级非易失'^^f诸单元能^f絲一位以上的数 据。因此,多级非易失#^[诸单元经常被替换称为多位非易失'^^诸单元。
多级非易失'^^f诸单元的典型示例是多级闪存单元。总体上,闪存单元关于不 同的阈值电压分布而<转数据。换而言之,当在闪速单元内编程不同数据值时,闪 存单元的阈值电压从一个阈值电压分布内改变到另 一个阈值电压分布内。
例如,图(FIG. ) 1表示用于在单级闪存单元中^f絲数据的两个不同阈值电压 分布。在图l的例子中,在单级闪存单元具有在标记为'T,的阈值电压分布内的阈
值电压的地方,单级闪存单^t^H诸逻辑"r。否则,在单级闪存单元具有在标记为
"0"的阈值电压分布内的阈值电压的地方,单级闪存单it^f诸逻辑"0"。因此,可
以通过将读取电压Vread应用于单级闪存单元的控制门并确定单级闪存单元的阈值 电压大于或小于读取电压Vread (例如,当#^取电压Vread应用于控制门时,通过 ^f诸单iti企测电流流量)而确定单级闪存单元中保存的单个位的逻#^1犬态。
一般,在^f诸单元具有特定阈值电压分布内的阈值电压的地方,可以称^f诸单 元具有对应于阈值电压分布表示的逻^R态的"阈值电压状态"。
图2表示用于在多级闪存单元中保存数据的四个不同阈值电压分布。具体的, 图2的多级闪存单元肖络储两位数据,如四个阈值电压分布上的标签所示。换而言 之,对于图2的多级闪存单元具有标记为"11"的阈值电压分布内的阈值电压,多 级闪存单^L4J诸逻辑"11"(即,最高有效位(MSB) T,和最j贿效位(LSB) 'T,), 对于多级闪存单元具有标记为"10"的阈值电压分布内的阈值电压,多级闪存单元 ^j诸逻辑"10",对于多级闪存单元具有标记为"01"的阈值电压分布内的阈值电压, 多级闪存单it^f诸逻辑"01",以及对于多级闪存单元具有标为"00"的阈值电压分 布内的阈值电压,多级闪存单^4^诸逻辑"00"。可以通过将读取电压Vreadl、 Vread2 和Vread3不同地应用于多级闪存单元的控制门并确定相关于这些读取电压的多级闪 存单元的阔值电压的幅度而确定图2所示的多级闪存单元的逻^R态。
图3表示包括含有多级闪存单元的闪存的示例性非易失'^^f渚系统。
参考图3,示例性非易失性务賭系统IOO包括主机IIO、存储控制器120和闪存 130。其中,^f诸控制器120包4衫爰沖^f诸器121,而闪存130包括##单元阵列131 和页緩冲器132。
^f诸控制器120中,緩冲^^诸器121在编程操怍期间临时在闪存130中存储 要编程的数据,并在读取冲刻乍期间^f诸从闪存130读取的数据。緩沖^f诸器121在 ^i者控制器120的控制下梯作并在编程期间将数据/Ai机110转换到闪存130,并在 读取期间将数据从闪存130转换到主机110。
在闪存130中,#^者单元阵列131 ^f诸编程数据。页緩沖器132在编程#|乍中 临时^f^f诸单元阵列131中^f诸要编程的数据并在读取操怍中係存从^4者单元阵列 131读取的数据。存储单元阵列131包括以行和列排列的多个多位非易失性^[诸单 元。举例说明,单元阵列131可包括NAND闪存阵列,该NAND闪存阵列包括以多个 NAND串排列的NAND闪存单元。典型的,^^诸单元阵列131的列被连接到对应的位线 而4刊皮连4妄到对应的字线。
连接到^f诸单元阵列131中相同字线的多位非易失性^^诸单元的每行对应数据 ^i诸器的一个或多个页。典型的(但不是必须的), 一次一页地在^f诸单元阵列131
上4似亍编程械取操作。举例说明,首先将^#单元阵列131中要编程的一页数据
传递到页緩冲器132。然后,根据页緩沖器132中^4的数据页将合适的电压应用于 对应^f诸单元阵列131中要编程的存储单元的行的字线和位线。
对于行中的4^诸单元是多^^H者单元,连接到^^诸单元阵列131中相同字线的 非易失性##单元的每行将对应一个以上的数据存储器页。例如,2-位非易失4生存 储单元的行将对应两页数据。M的,可以独立编程的两页对应最j錄效位(LSB) 页和最高有效位(MSB)页,这是因为它们分别对应各个2-^i^f诸单元的LSB和MSB 数据。
在非易失'l"^f诸系统100的编程才剁乍中,主机110向^f诸控制器120发送编程 命令和相关程序数据。^f诸控制器120接收禾誘命4^^辨数据并将禾錄数^f转 在緩冲务賭器121中。响应于#辨命令,存储控制器120然后控制闪存130将来自 緩沖存储器121的程序数据装载到页緩沖器132中。然后,存储控制器120进一步 控制闪存130将禾踏数据编程到^f诸单元阵列131的所选^j诸单元中。其中编程程 序数据的^(诸单元阵列131中所选^f诸单元的位置一般由主机110向^[诸控制器120 提供的程序地址以及禾踏命令赋值。通常,闪存130包括可以用于根才射呈序i4iiL^ ^f诸单元阵列131中选择用于编程操作的合适行线和字线的行和列解码器。
在非易失性存储系统100的读取操作中,主机110向存储控制器120发送读取 命令。响应于读取命令,存储控制器120控制闪存130将^f诸单元阵列131的所 选^f诸单元中保存的读取数据传送到页緩沖器132。然后,存储控制器120进一步控 制闪存130将来自页緩冲器132的读取数据传送到緩冲存储器121。最后,存储控制 器120控制ll冲存储器121将读取数据/AI爰冲存储器121传i^jij主才几110。类似于编 程操作,读取操作中^(诸单元阵列131中所选^f诸单元的位置""^殳由主机110向存 储控制器120提供的读取地址以及读取命令赋值。同样,闪存130—般^jl]行和列 解码器以根据读ipU^ii^择用于读取操作的^f诸单元131的合适行线和字线。
编程操作后,存储控制器120—般控制闪存130以扭/f科呈序-3&正操作。除了程 序马H正操作的目的在于确定所选^H诸单元是否被成功编程"卜,程序-3^i正搡作类似 于读取^1乍。在程序马M正操作中,Mi扁程操作中被编程的所选^(诸单元传送禾l^验 证数据到页緩沖器132。页緩沖器132临时^j辆辨马^Ea据,而该程序-^iilt据与 仍^f诸^li冲^f诸器121中的禾誘数据进行比较。当緩冲^j诸器121中4转的禾踏 数据不同于页緩冲器132中的程序—3^iiElt据时,所选^f诸单itii没被成功编程。否 则,当緩冲^f诸器121中^4的程序数据与页緩冲器132中的禾誘马^iilt据相同时,
所选^^者单^^皮成功编程。对于所选^f诸单^没被成功编程的情况,则佳月缓冲
^^诸器121中係存的程序数据再编禾lil些^^诸单iLiU^f诸单元阵列131的新位置 (诸如不同页面或不同块)中编程3呈序数据。
图4和5表示用于编程诸如图3所示非易失性务賭系统的不同方法。具体的, 图4和5的方法是编程包括2-^##单元的非易失'^^诸系统的方法的示例。在这 些和其他示例中,可以重新配置逻4^l犬态和阈值电压之间的对应关系。例如,在图4
可以改变其中编程^M立的顺序。例如,虽然图4和5表示在编程MSB之前编程LSB, 但也或者肯t^LSB之前编程MSB。而且,本领域已知多种其他编程变化并因此将不详 细描述。
参考图4,多位非易失性^f诸单元的编程状态的特征在于与五个不同闳值电压 分布的关系。这五个不同阈值电压分布中的四个对应各个逻辑状态"11"、 "01"、 "10"和"00",以及一个阈值电压分布对应中间编程状态或阈值电压状态,由虚弧 表示并重叠多位非易失'^^^诸单元的读取电压VR2。在该例子中,逻#1犬态"11"对 应多位非易失'^^渚单元的擦除状态,而逻辑状态"01"、 "10"和"00"对应多位 非易失4^^者单元的编程状态。
在图4所示的方法中,##单元最初在擦除状态。从擦除状态,首先编禾l^f诸 单元的LSB,然后是^H诸单元的MSB。在编程LSB中,如果^fi者单元中要编程的LSB 是逻辑"0",则该方法将#^者单^^3£#^犬态"11"改变为中间编程状态,如标为 "ProgramO"的箭头所示。否则,^^者单元^#在逻辑状态"11"。然后在编程MSB 中,如果#^渚单元中要编程的MSB是逻辑"0",则该方法如标为"Programl"的箭 头所示将^(诸单it/人中间编程状态改变为逻4^l犬态"00",或如标为"Program3"的 箭头所示/AiC4^大态"11"变为逻l期犬态"01",这取决于LSB的逻4刷犬态。否则, 对于存储单元中要编程的MSB是逻辑'T,,该方法如标为"Program2"的箭头所示 将存储单元从中间编程状态改变为逻辑状态"10",或将^f诸单元维持在逻辑状态 "11", it取决于LSB的i^4^犬态。
参考图5,多位非易失性^f诸单元的编程状态的特征在于与四个不同阈值电压 分布的关系。这四个阈值电压分布对应抖逻4^犬态"11"、 "10"、 "00"和"01"。 在该例子中,逻辑状态"11"对应多位非易失性^^诸单元的擦除状态,以及逻辑状 态"10"、 "00"和"01"对应多位非易失^^f诸单元的编程状态。
在图5所示的方法中,^f诸单元最初在擦除状态。从擦除状态,首先编#1##
单元的LSB,然后是^j诸单元的MSB。在编程LSB中,如果^f诸单元中要编程的LSB 是逻辑"0",则该方法将^(诸单it/Ai^^犬态"11"改变为i^4^1犬态"10",如标为 "Programl"的箭头所示。否则,存储单元##在逻#^)犬态"11"。然后在编程MSB 中,如果4^诸单元中要编程的MSB是逻辑"0",则该方法如标为"Program2"的箭 头所示将^f诸单^t/Ai^^l犬态"10"改变为逻4^犬态"00",或如标为"Program3" 的箭头所示乂Ai^4刷犬态"11"变为ii:寿制大态"01",这取决于LSB的逻專^1犬态。否贝寸, 如果^(诸单元中要编程的MSB是逻辑T',则存〗诸单元保持在逻#^犬态"10"或逻 #^1犬态"11", i^取决于LSB的逸:#^犬态。
总体上,当"^f亍图4和5所示的编程方法时,不会悉是以直接连续的顺序编程 ^j诸单元的LSB和MSB。相反,例如,可能首先编程^4#单元的LSB,接着是^^f诸 单元阵列的不同行中对^f诸单元的编程操作,然后接着编程^f诸单元的MSB。因此, 在编禾1##单元的MSB之前, 一般必须例如通过读i^f诸单元而确定LSB的逻4^1犬 态,以便^f诸单元的阈值电压可以变为^i确的阈值电压分布内。
然而,遗憾的是,如^^编程MSB期间发生4^i吴或误才射乍,则可能永久丢失LSB。 例如,如果如图5中标为"Program3"的箭头所示对##单>^丸行MSB编程,以及 缺少对应于逻#^犬态"01"的阈值电压分布MSB编程停止,则不可負M艮据^f诸单元 的简单检查而确定^f诸单元的LSB是逻辑T或逻辑"0"。幸运的是,在该情况下, 一般可以从緩沖务賭器121恢复MSB数悟。然而,LSB数据的丢失将最终损害非易失 ,ri^^诸系统的性能。
当研究者持续致力于在非易失性^f浙殳备的有限芯片区域内满A^^多的数 据##能力时,该问题变得日益重要,因为非易失,^^^诸芯片的集成密度增加了, 编程操作中镅误^i吴操作的可能性W目应增加了。结果,有效地克服诸如由编程错 误或误4刻乍引起的多级单元中的上述数据丢失问题等的问题将是大有好处的。

发明内容
在认识至少上述问题中,本发明的所选实施例提供用于魏因为编程4射吴或误 才斜乍《j起的数据丟失的非易失'^^f诸系统和方法。
根据本发明的一个实施例,非易失性半"f^^f诸系统包括^^诸阵列和^f诸控制 器。^f诸阵列包括多个多^t^f诸单元。#^诸控制器包^1£沖#^器,'^1##器, 失败位置4&则器和修复单元。緩冲^^诸器用于^f诸在多个^f诸单元中所选^f诸单元
中编程的j-位数据。修复^[诸器用于^#/;^斤选4#单元读取的i-位数据。失败位
置检测器用于根据/A^斤选^i者单元读取的j-位数据和緩冲^^诸器中务賭的j-位数据
之间的比较确定i-位数据中的位4晉误的位置。修复单元用于修复在修复^^诸器中保
存的i-位数据中的位4射吴。
根据本发明的另一实施例,非易失性半"^M^诸系统包括第一至第n^f诸芯片 以及^^渚控制器。第一至第n^f诸芯片中的每个包括多个多位非易失寸i^诸单元。 ^f诸控制器包括第一至第m个緩沖^#器,每个用于係存第一至第n个^H诸芯片中 多个多位非易失性^f诸单元中所选^f诸单元中编程的j位数据。存储控制器进一步 包括第一至第p ^奮复^j诸器,用于^#在所选##单元中^#的i-位数据。 控制器进一步包括失败位置检测器,用于根据/A/斤选^j诸单元读取的j-位数据和緩 冲务賭器中务賭的j-位数据之间的比较确定i-位数据中的位错误的位置。^f诸控制 器进一步包4射'务复单元,用于修复在修复##器中^^的i-位数据中的位错i吴。
根据本发明的另一实施例,提[种在多位非易失性半导体中#^亍编程*(乍的 方法。多位非易失'f^f诸系统包括^f诸阵列以及^f诸控制器,该^^诸阵列包括多个 多位^f诸单元。该方法包括^^诸阵列的所选^f诸单元中编程i-位数据,在^f诸控 制器中^4j-位数据,编程所选^f诸单元中的j-位数据,确定在所选^^者单元中是 否成功编程j-位数据,接着确定在所选^f诸单元中没有成功编程j-位数据,并比较 所选^f诸单元中^4的j-位数据和^^l控制器中^4的j-位数据。根据比较,确定 所选^f诸单元中存储的i-位数据的至少一个位错误的位置,然后修复至少一个位错 误。
根据本发明的另一实施例,提供另一种编程非易失'^H诸器的方法。该非易失 性存储器包括多位非易失性存储单元,以及该方法包括定义存储单元的单元加扰 (scramble),并接着>^则#^者单元的所选单元中j-位数据的编程错误,关于单^U口 扰修复所选##单元中之前编程的i-位数据。


参考附图描述本发明实施例。在图中,相同的附图标i線示相同的示例性元件、 组件和步骤。在图中
图1 S类^rffl早在鱼奴
图2是表示用于在多级闪存单元中併存数据的四个不同阈值电压分布的曲线
图;
图3是表示常规非易失4^##系统的示意框图4表示用于非易失'^^f诸系统中非易失'f^^诸单元的一种编程才剁乍类型的阈 值电压分布图5表示用于非易失'^^f诸系统中非易失'fi^[诸单元的另一种编程才刻乍类型的
阈i直电压分布图6是表示才M居本发明实施例的非易失'^^渚系统的示意框图7是表示用于根据本发明实施例的非易失性#^诸系统的编程方法的流程图8是表示根据本发明另一实施例的非易失'fi^^诸系统的示意框图9是表示根据本发明又一实施例的非易失'^^f诸系统的示意框图10是表示根据本发明再一实施例的非易失'^##系统的示意框图11是表示用于图10的非易失l^f诸系统的非易失'f^H诸单元的一种编程操
作类型的阈值电压分布图12是表示图10的非易失'^#^诸系统的失败位置#^则和数拾^1#^乍的示意
图13是表示根据本发明实施例的编程图10的^f诸系统的方法的^^呈图; 图14是根据本发明另一实施例的非易失4i^f诸系统的示意框图; 图15是根据本发明另一实施例的非易失拔剤诸系统的示意框图。
M实施方式
下面参考相应附图描述本发明的示例性实施例。这些实施例只是教导性示例。
^^发明的实际范围由下面的斥又利要求定义。
总体上,本发明实施例提供用于当进一步编程多位非易失'性##单元时避免已
^^在多位非易失^^f诸单元中的数据丟失的非易失'^^f诸系统和相关方法。例如, 本发明的所选实施例提^"种包括^f分^^诸器和/或数才射务复组件的^^诸控制器,当 进一步编禾14^诸单元时,所述^f分^f诸器和/或数才斜务复组件用于避免已^4在多位 非易失,^i^诸单元中的数据的丢失。本发明的另一实施例提l种包樹'f复^f诸器 的存储控制器,用于保存已在多位非易失性^^诸单元中编程的数据,为了在已检测 到^f诸单元的编程故障^修复数据。
下面结合包括2-^^^单元的非易失性务賭系Mi笛i^^发明的所选实施例。然 而,这些实施例可以被随意修改为用于包括n-位单元的非易失'f^f诸系统,其中"n" 是大于2的整数。j)^卜,在多个公开的实施例中,在^H诸单元的最高有效位之前编牙1^H诸单元的最^^"效位。然而,也可以随意修改编禾li侦序。而且,本领域技术人 员能理解在不背离本发明范围的情况下可以对下述示例性实施例进行各种其他修改。M, /A^说明书有意地简^^省略非易失'fi^j诸系统的许多已知函数、变量和微差,因为它们的描i^于于使本领域技术人员理解和4躺所请求保护的发明不是 必须的。
图6是表示根据本发明实施例的非易失'^^f诸系统的示意框图。
参考图6,非易失^^H诸系统200包括主机210、 ^j诸控制器220和闪存230。 ^j诸控制器220包^^爰冲存储器221和最j贿效位(LSB)备份存储器222。闪存230 包括^f诸单元阵列231、解码器232、页緩冲器233、位线选择电路234、数据緩冲 器235和控制单元236。
^t^诸控制器220中,緩冲存储器221在编程操作期间临时存储闪存230中要 编程的数据。緩冲^f诸器221在读取4剁乍期间也临时^^诸从闪存230读取的数据。 緩冲存储器221在编程操作期间在^f诸控制器220的控制下操作并/U机210接收 数据并向闪存230传送数据,并在读取操怍期间从闪存230接收数据并将数据传送 到主机210。
在^f^vM爰沖^^诸器221的程序数据被编程到所选^[诸单&前,LSB ^f分 务賭器222 #^诸已在闪存230的所选^^诸单元中保存的数据。例如,在所选##单 元的编程才剁乍期间,缓沖^f诸器221可^^诸所选^f诸单元中要编程的MSB数据。因 此,^f^控制器控制闪存230传送LSB^f分^j诸器222中的所选^f诸单元中£^(诸 的LSB数据。因为LSB^f分^f诸器222 ^f诸已在所选^[诸单元中编程的数据,以及 緩沖存储器221存储将在所选^^(诸单元中编程的数据,如果当编程所选##单元时 发生4fi吴或故障,则可以乂Ai爰冲^^诸器221和LSB ^###器222 '^lA^斤选^ft 单元丟失的任何数据。结果,LSB名一分^j诸器222的出现增加了图6的非易失性半导 M^f浙殳备200的可靠性。
通常,可以在单个存储芯片中配置緩冲存储器221和LSB备份存储器222。例如, 存储控制器220可以存储称为LSB备份存储器222的动态随机访问存储器(DRAM)芯片的第一区域中的所选^f诸单元中已编程的数据,以及^(诸控制器220可以## 称为緩冲^^诸器221的DRAM芯片的第二区域中的所选^f诸单元中要编程的数据。
在闪存230中,^j诸单元阵列231存储编程数据。解码器232通过控制单元236 乂A4J诸控制器220接收读:^^^f;i^止并根才絲:^^4踏地址控制用于读Wp编程 操作的字线和位线的激活或选择。在图6的例子中,解码器232通过字线WLO至WLn连接到存储单元阵列231,并产生位线选择信号Yi以通过位线选择电路234控制用
于编程gjpa喿怍的位线的激活或选择。
页緩冲器233通过位线BLO至BLm连接到##单元阵列231并在编程操作中临 时##^[诸单元阵列231中要编程的数据并在读取搡怍期间^f诸乂A4^者单元阵列 231读取的数据。位线选择电路234根据位线选摔信号Yi控制用于编程禾喊取才剩乍 的位线的激活或选择。根据页緩冲器233中j絲的数据驱动所选或所激活的位线编 程或读取^f诸单元阵列231中的所选^f诸单元。
数据緩冲器235 A^)于在^f诸控制器220和闪存2 30之间传送数据的输入/输出 緩沖器。例如,在读取操作中,通过页緩冲器233和位线选择电路234 /A4J诸单元 阵列231向数据緩冲器235传送所选^^诸单元中保存的数据。然后,从数据緩冲器 235向^f诸控制器220传送数据,ith^数据被传^J'J主机210。另一方面,在编程操 作中,存储单元阵列231的所选^f诸单元中要编程的数据乂A^机210传i^J'J4^诸控 制器220,然后到数据緩沖器235。然后,通过位线选^泽电路234 /人数据緩沖器235 向页緩沖器233传送数據,并JU匕后,在所选^f诸单元中编程数据。数据緩冲器235 在控制电路236的控制下4桑怍,其依次响应^f诸控制器220产生的控制信号4喿怍。
^f诸单元阵列231包括多个以行和列配置的多位非易失'I4^f诸单元。举例说明, 单元阵列2 31可包括NAND闪存阵列,该闪存阵列包括以多个NAND字符串配置的NAND 闪存单元。M的,^f诸单元阵列231的列被连接到对应的位线而^f刊皮连接到对应 的字线。
连接到^f诸单元阵列231的同一字线的多位非易失'^^诸单元的每行对应数据 务賭器的一个或多个页。例如,由虚椭圓形在图6中表示页"页0"。进一步将^f诸 单元阵列231配置为多个块,每个块包括多个页。作为典型例子,每页可包括512 字节或2K字节的数据以及每块包括32或64页的数据。
常规地(但不是必须地),每次一页对^#单元阵列231执行编程g取操作并 每次一块:fe^Vf刊寮除操作。或者,例如,也可以每次以一个或多个块为单元编程存 储单元阵列231。
在图6的例子中,^f诸单元阵列231中的^f诸单元是2-位非易失'^^f诸单元。 通过首先编程LSB并然后编程MSB来编^il些^H诸单元。并不必紧紧连续编程每个 ^^者单元的LSB和MSB。换而言之,能首先编程所选#^诸单元的LSB、接着是其^^ 储单元的编程,接着是所选^f诸单元的MSB的编程。在图6的例子中,存储单元阵 列231中^^诸单iU皮每次一页:hki扁禾l^取并每次一块:hy察除。
如上所述,图6的示例和其他实施例中的多^##单元也可以务賭两位以上的
位。例如,^^者单元可能是3-^^^诸单元、4-^^f诸单元等。在用于^f诸不同位的 该^f诸单元中,#^者单元中要务賭的数据4殳被称为l-位数据、2-位数据、3-位数 据等,与2—i^[诸单元的例子中简单的LSB数据和MSB数据相反。例如,在^f诸数 据字符串"0100"的四^^^单元中,位'T,将被称为3-位数据因为它在字符串中 第三个位置。
也如上所述,图6的示例和其他实施例中的多l L^f诸单元或者可以以不同顺序 编程。例如,可以在JM页序位(例如,LSB数据)之前编程高顺序位(例如,MSB数 据)。而且,負诚过再配置逻4刷犬态和阈值电压分布之间的赋^J侦序进一步修改编程 顺序,例如,诸如图5所示。
图7是表示用于根据本发明实施例的图6所示的编程非易失'^^f诸系统200的 方法的^f呈图。虽然图7所示的方法涉及非易失'^##系统200,该方法也能随意修 改为用于根据本发明其他实施例的各种不同非易失性务賭系统。在下面的描述中, 示例性方法步骤将用圓括号(SXXX)表示以将它们与诸如图1至5所示的示例性曲 线图和系统纽件区分开来。
参考图7, ^j诸控制器220控制闪存230以将LSB数据页编程到^[诸单元阵列 231的第一^f缺blockl的所选^f诸单元中(SllO)。在所选^f诸单元中编程LSB 数据之后,闪存230 —般^^抖呈序马ti正操作以确定在所选^f诸单元中是否成功编程 LSB。在图7的方法中,々i设LSB数据^^功编程。 一般,直到在所选^f诸单元中成 功编禾呈LSB凄d居才继续该方法。在将LSB数据页编程到所选^f诸单iL^,在将MSB 数据编禾15'J所选^^诸单^L^前,育^t^f诸单元阵列231中不同^J诸单iUA^亍^^^呈 序跳
一旦MSB数据将被编禾l^所选^f诸单元,则存储控制器220控制闪存230通过 将LSB数据传i^J'j^^者控制器220的LSB备份存储器222而备份所选^j诸单元中的 LSB数据(S120 )。 一旦在LSB名4分存储器222中保存所选^f诸单元的LSB数据,则 在闪存230的第一^^者块blockl的所选^f渚单元中编程MSB数据页(S130)。
分别在步骤S110和Sl30(在blockl的所选^f诸单元中已编程LSB和MSB数据) ^,闪存230才似^聘马&正#^乍以确定在所选^(诸单元中是否已成功编程MSB数 据(S140)。当闪存230确定在所选^f诸单元中已成功编程MSB数据时,该方法终止, 如图7中标为"No"(表示没有程序失败)的箭头所示。否则,当闪存230确定在所 选^f诸单元中没有成功编程MSB数据时,存储控制器220控制闪存230将LSB数据
页编程到闪存230的第二^4J诸块block2中(S150),然后^f诸控制器220控制闪存 230将MSB数据页编程到闪存230的第二《4#块block2中(S160 )。在闪存230中成 功编程LSB和MSB数据之后,图7的编程方法终止。
图8是表示根据本发明另一实施例的非易失性务賭系统300的示意框图。 参考图8,非易失'l":i4J诸系统300包括主机310, ^f诸控制器320,以及第一和 第二闪存芯片330和340。 ^f诸控制器320包括第一緩沖^f诸器321、第一LSB^f分 务賭器322、第二緩冲务賭器323和第二LSB^f分务賭器324。 一般地,在诸如DRAM 的单个芯片上形成第一和第二緩冲存储器321和323以及第一和第二LSB^f分^j诸 器322和324。第一闪存芯片330包括第一单元阵列331和第一页緩沖器332而第二 闪存芯片340包括第4元阵列341和第二页緩沖器342。
在非易失性存储系统300中,主机310和^H诸控制器320分别类似于图6中的 主机210和^j诸控制器220的功能。此外,第一闪存芯片330和第二闪存芯片340 每个都类似于图6中的闪存230的功能。然而,^f诸控制器320中,每个第一緩 沖^f诸器321和第一LSB^f分^^f诸器322 4转用于编程^i卖取第一闪存芯片330的 数据而每个第二凝冲务賭器323和第二 LSB ^f分务賭器324保存用于编程g取第 二闪存芯片340的数据。而且,闪存芯片330用于响应^f诸控制器320产生的第一 芯片选^f言号CS1以及闪存芯片340用于响应^j诸控制器320产生的第二芯片选择 信号CS2。
在非易失'^^诸系统300的禾1^才斜乍中,##控制器320首先^ ]第一和第二 芯片选^f言号CSl和CS2选择第一和第二闪存芯片330和340之一。然后,^j ]诸 如图7所示的编程方法编程所选务賭芯片中的^f诸单元。换而言之,首先将LSB数 据编程到所选^f诸芯片内第一块内的所选^f诸单元中。然后,在将MSB数据编程到 第一块内所选^f诸单元中之前,将LSB数据传i^JiJ对应所选^f诸芯片的LSB ^f分存 储器。然后,MSB数据被编程到第一块内所选^f诸单元中,^所选^f渚芯片^l^^呈 序验证梯作以确定在那些所选^f诸单元中是否成功编程MSB数据。如^所选^f诸 单元中已成功编程MSB数据,则程序才斜乍终止。否则,如果在第一块中所选^j诸单 元中编程MSB数据期间发生4射吴或误#^乍,则可以A/J^应所选^j诸芯片的LSB ^f分 存储器和緩冲存储器恢复LSB数据和MSB数据并在所选闪存芯片或其他闪存芯片中 的第JL^^诸块编程LSB数据和MSB数据。
类似的,在非易失'^^f诸系统300的读取冲斜乍中,##控制器320根据要读取 的^f诸单元的地jjtit择第一或第二闪存芯片330或340。然后,类似于上面结合非易
失'l"^f诸系统100或200的描述,所选闪存芯片和^f诸控制器320 #^询取#4乍。
图9是表示根据本发明另一实施例的非易失性^j诸系统900的示意框图。除了 非易失'^4i者系统900能包括任意数V,的闪存芯片并JJ 十应的緩冲^f诸器和LSB ^f分^f诸器不是两个"^卜,非易失'^^^者系统900类似于非易失'f^f诸系统300。
参考图9,非易失'^^f诸系统900包括主机910、 ^f诸控制器920以及多个闪存 芯片931至93n。 ^ H诸控制器920包括用于每个闪存芯片的緩沖#^诸器和LSB ^f分存 储器。更糾的,^f诸控制器920包4衫爰沖^f诸器921至92n以力于应的LSB ^f分 ^f诸器921,至92n,。 一般的,在诸如DRAM的单个芯片上形^M爰沖^i渚器921至92n 和LSB^f分务賭器921'至92n,。
在编程才剩乍中,非易失'^^f诸系统900通iii敫活(或无岁iO多个对应芯片选择信 号之一而选择闪存芯片931至93n之一,然后使用类似于上述关于非易失'hi^賭系 统300的方法编程所选闪存芯片中的所选^(渚单元。类似的,可以通过选择闪存芯 片931至93n之一并且然后通过^f诸控制器920中的对应緩沖存储器从所选闪存芯 片读取数据以类似于非易失'^^f诸系统300的方式#^亍非易失'|"^##系统900的读 取樹乍。
在图8和9所示的示例性非易失'[^##系统中和包括多个非易失'^^(诸芯片的 其他系统中,可以每次一个或并行;W扁程或读取多个非易失'^^诸芯片。作为怎样 并行编禾l^读取多个非易失'fi^i者芯片的示例,可以4辆交叉编程或读取4剁乍或者 使用同时并行数据传送而编程或读取图9所示的V,个闪存芯片,其中交叉操怍或 并行数据传送可以由^f诸控制器9 2 0控制。为了便于同时并行数据传送和/或交叉操 作,"n"个闪存芯片931至93n能通过诸如多个独立数据总线的多个接口连接到存 储控制器。
逸感的是,在图6、 8和9所示的系统中,备份LSB数據的处理会降j^扁程^^乍 的性能。因为每当编程MSB数据时,这些系统中的每个^^^f分LSB数据,^f分LSB 数据的处理負M及大地影响这些系统的性能。
因此,提供图10至15所示的本发明的多个附加实施例,其中在每次编程MSB 数据时即使不备份LSB数据的情况下避免LSB数据的丟失。相反,如果在MSB编程 期间发生错误或误操怍,这些附加实施例只备盼LSB数据。
与本发明的其他实施例相同,在这些附加实施例中,编程LSB数据后编程MSB 数据的描述只用于教导示例。作为本示例的选择方案,可以修改编程操怍的顺序, 以便首先编程MSB数悟,接着是LSB数据。在这些情况下,如果编程LSB数据失败
可以备份MSB数据。在另一选择方案中,可以不同地改变每个^f诸单元中存储的位
数以及每个^j诸单元的编禾li顷序。
图10表示根据本发明一个实施例的非易失'1^4J诸系统400。下面参考图10描 述非易失'^4J诸系统400的M特征。进一步参考图11至13详细描m些特征的 樹乍。
参考图IO,非易失li4^者系统400包括主机410、 ^f诸控制器420和闪存430。 ^f诸控制器420包才钐爰沖肩储器421、 ^j分务賭器422 Wli皮称为"修复务賭器")、 4脊误纠正单元423、比较器424、失败位置检测器425和修复电路426。闪存430包 括##单元阵列431、解码器432、页緩沖器433、位线选择电路434、数据緩冲器 435和控制电路436。
在^(诸控制器420中,緩冲^^诸器421 ^j渚将在闪存430中编程的数据。緩冲 务賭器421在^f诸控制器420的控制下净斜乍并在编程操作期间/A^机410向闪存430 传送数据,并在读取才剁乍期间从闪存430向主机410传送数据。例如,在闪存430 中编程LSB或MSB数据的页之前,凝:据一4殳^j诸^i爰冲存储器421中。如絲闪存 430中LSB或MSB数據的编程失败,则緩冲务賭器421中保存的数据能用于'^ll数据 并将数据编程到闪存430中的不同位置。 一般,闪存430的所选^^诸单元中编程LSB 或MSB数悟的失败可导致在一个或多个所选#^诸单元中保存的一个或多个4針吴位。 然而,为了简化解释,下面的某些描述假设仅在单个所选^f诸单元中已发生编程失 败。
^f分^f诸器422 ^f诸用于从闪存430的编程:^f乍中4射吴或故障fel的数据。例 如,当在闪存430的所选^fi者单元中之前已编程LSB数据并进一步对所选^f诸单元 编程MSB数据时,如M—步编程MSB数据失败,则编程失败后所选^f诸单元中保 存的数据可以净錄载到^f分务賭器422中并用于'fel之前在所选^f诸单元中编程的 LSB数据。
一般地,在单个^f诸芯片中配置緩沖^f诸器421和^P分^f诸器422。例如,存 储控制器420可以在称为^f分^f诸器422的动态随机访问^[诸器(DRAM)的第一区域 中保存已在所选^#单元中编程的数据,以及^f诸控制器420可以在称为緩沖^f诸 器421的DR扁芯片的第二区域中^4将在所选^f诸单元中编程的数据。
4晉误纠正单元423用于冲企测并纠正^f分务賭器422中j踏的数据的错i吴。例如, 假设^f分^f诸器422中4转的数据包括4射吴编码数据页。根据4ti吴编^lt据中的错 误特性和/或数量,4^i吴纠正单元423可以^i Hti吴编码数据页内的4射吴纠iMV马以
4&则并纠正4射吴编;辆t据中的4射吴。
比较器424比较闪存430的所选^f诸单元中^^的数据和緩沖^^诸器421中保 存的数据以便检测和纠正编程错误。例如,在将緩冲务賭器421中保存的MSB数据 编禾1^闪存430的所选^f诸单it^, /A^斤选^f诸单元读取MSB数据并与緩冲^j诸 器421中j錄的MSB数据相比。~^殳,在当将MSB数据编禾lf'J所选^[诸单元时发生 4射吴或故障^进^i亥比较。下文将参考图11至13解释,MSB数据的比较可以用于 检测并纠正之前在所选^f诸单元中编程的LSB数据中的错误。
闪存430的所选^f诸单元中编程失败的位置(即,错i吴编禾l^f诸单元或一个或多个错 误位的位置)。失败位置4企测器425 ^f诸对应编程失败的位置的闪存430的地址并向 修复电路426输出位置。
修复电路426从失败位置检测器425接收编程失败的位置并佳月编程失败的位 置修改^f分^f诸器422中j絲的数据。换而言之,如果已发生编程失败(即, 一个或 多个^f诸单元中的4fi^),名—分务賭器422中j转的数据可能包含一个或多个错误。 编程失败的位置用于修改^#务賭器422中保存的数据以纠正错误。
在闪存430中,存储单元阵列431保存已编程数据。存储单元阵列431包括多 个以行和列配置的多4i^f诸单元,其中#^诸单元的每行连接到对应字线,以及## 单元的每列连接到对应位线。连接到相同字线的存储单元的每行对应多个数据页。 例如,如果多位^[诸单元是每个2-^4#单元,每个字^^"应两页凝:据。
^f诸单元阵列431进一步包括对应多位^^诸单元的行的多个标志单元。M的, 每行多位^f诸单元连接到对应标志单元,该标志单it4示对应已编程的行的那些数 据页。例如,如果每行对应两页数据,则每个标志单元可具有第一状态,表示已在 对应行的存储单元中编程LSB数据页,和第J^犬态,表示已在对应行的存储单元中 编程MSB数据页。
页緩冲器433通过位线BLO至BLm连接到^[诸单元阵列431并在编程操作期间 临时^f诸单元阵列431 ^[诸要编程的数据并在读取操怍期间^[诸/^##单元阵列 431读取的数据。位线选择电路434根据位线选#^言号Yi控制位线的激活或选择用 于编程g取才剁乍。根据页緩冲器433中^f絲的数据马区动所选或所激活的位线^M扁 程或读取^f诸单元阵列431中的所选##单元。 一般(但不是必须的),每次一页地 对^f诸单元阵列431扭行编禾封喊取操怍。^^'H兌明,首先将^f诸单元阵列431中 要编程的数据页传i^)J页緩冲器433。然后,根据页緩沖器433中^4的数据页将合
适的电压应用于对应^f诸单元阵列431中要编程的^f诸单iU亍的字线和位线。
解码器432 /A^j诸控制器420接收读W^l^:l^止并根^^^^41^;l4iil:控制 字线和位线的激活或选择用于控制单元436的读取-口编程操作。在图10的例子中, 解码器432通过字线WLO至WLn连接至^f诸单元阵列431,并产生位纟^it择信号Yi
数据緩冲器435是用于在^f诸控制器420和闪存430之间传送数据的输入/输出 緩冲器。例如,在读取才剁乍中,通过页緩沖器433和位线选择电路434 /A4^诸单元 阵列431向数据緩冲器435传送所选^f诸单元中保存的数椐。然后,从数据緩沖器 435向存储控制器420传送数据,并ibtb^数据被传iil^主机410。另一方面,在编 程搡怍中,在^f诸单元阵列431的所选^i诸单元中要编程的数据被/A^机410传送 到存储控制器420并iU匕后传送到数据緩冲器435。然后,通过位线选择电路434 从数据緩沖器435向页緩沖器433传送数据,并itb^,在所选^^诸单元中编程数据。 数据緩沖器435在控制单元436的控制下操作,其依次响应存储控制器420产生的 控制信号而纟乘怍。
图11是表示图10的非易失性务賭系统的所选^f诸单元的一种编程操作类型的 阈值电压分布图。在图11中, 一对标为"(a)"的阈值电压分布图表示在图IO的非 易失4^i诸系统中所选^f诸单元的LSB禾i^^f乍以及一对标为"(b)"的阈值电压分 布图表示在图10的非易失性务賭系统中所选^f诸单元的MSB程序操作。该对标为 "(a)"的阈值电压分布图在下文中将统一称为示意图"(a)"以及该对标为"(b)" 的阈值电压分布图在下文中将称为示意图"(b)"。
除了在图11的编程操作中,标志单元用于表示在所选^f诸单元上是否已扭Z亍 MSB编程^卜,图11的编程操作类似于图4中所示的编程操怍。应该注意,图4的 编程操作也能^^]标志单元。然而,为了简化解释从图4的描述中省略标志单元。
为了解释目的,假设结合图11描述的标志单元连接到所选^f诸单元位于的行。 如果在所选^f诸单元位于的行上还没执行MSB编程,则标志单元具有逻4刷犬态'T,, ^f^果所选^f诸单元位于的行上已执行MSB编程,则标志单元具有逻4期犬态"0"。 如勤十所选^^诸单^没有4;y亍MSB编程,则读取电压VR1用于确定所选^f诸单元 的LSB是逻辑'T,或逻辑"0",射口^十所选^f诸单元已M/f亍MSB编程,则读取电 压VR2用于确定所选^j诸单元的LSB是逻辑'T,或逻辑"0"。
如同图4的所选^j诸单元,图11的所选^^诸单元是育^f诸两位数据的多位非易 失性^^者单元。图ll的所选^f诸单元能关于分别在图(b)中标为"ll"、 "10"、 "10"
和"00"的四个阈值电压分布而务賭两位数据。所选^f诸单元也能关于图(a)的左 手侧上标为'T,的阔值电压分布和标为"0"的阈值电压分布而^f诸一位数据。
在图11的所选^f诸单元的编程^f乍中,所选^j诸单元最初处于擦除状态,对应 图(a)中左手侧标为'T,的阈值电压分布和图(b)中标为"11"的阈值电压分布。 此外,标志单元最初处于对应图(a)的右手侧标为"1"的阈值电压分布的擦除状 态。
在编程操作中,使用LSB数据编程所选^f诸单元的LSB,然后使用MSB数据编 程所选^f诸单元的MSB。如果编程LSB以存储逻辑"0",则所选^H诸单元的阈值电压 应能/人图(a)中标为'T,的阈值电压分布过渡到图(a)中标为"0"的阈值电压 分布。否则,所选^f诸单元的阈值电压应能保持在标为'T'的阈值电压分布。
然而,在已编程所选^f诸单元的LSB之后,扭^^1^马"正操怍以确保所选^(诸 单元的LSB被编程至其目标逻4^1犬态。如果^j诸单元的LSB不具有目标逻辑状态, 进一步使用緩沖存储器421中保存的LSB数据编程所选^f诸单元的LSB,或者可选地, 枱3则LSB编程4射吴或故障。如果枱,j到LSB编程4射吴或故障,则选择例如在##单 元阵列431的不同页或块的不同^f诸单元并将LSB数据/Ai爰冲存储器421编程到不 同存储单元中。如果程序3^i正操作确定所选^f诸单元的LSB被编程到目标逻#1犬态, 则认为LSB的编程是成功的。 一旦LSB成功编程,则标志单元##在擦除状态。
假i^斤选^f诸单元的LSB已被成功编程到逻辑"0", ^Ho果编程所选^[诸单元 的MSB,则所选^f诸单元应从图(a)中标为"0"的中间阈值电压分布选度到图(b) 中标为"10"的阈值电压分布或标为"00"的阈值电压分布,这取决于MSB分别是 逻辑"r或逻辑"0"。否则,假设所选^(诸单元的LSB已被成功编程到逻辑'T,, ^B口果编程所选^f诸单元的MSB,则存储单元应从图(a)中标为"1"的阈值电压分 布过渡到图(b)中标为"11"的阈值电压分布或标为"01"的阚值电压分布,这取 决于MSB分别是逻辑"1"或逻辑"0"。
在已编程所选^(诸单元的MSB之后,扭^^踏马^i正操作以确保将所选^[诸单元 的MSB和LSB编程到它们的目标1£#^犬态。如果禾辨-^i正搡怍确定所选^f诸单元的 MSB和LSB已被编禾li'J它们的目标逻l^犬态,则认为MSB的编程^功的。 一旦成功 编程MSB,则标志单元it;度到图(b)中标为"0"的阈i直电压分布。另一方面,如果 ^4者单元的MSB或LSB不具有其目标逻4^l犬态,则可进一步编程所选^f诸单元的MSB, 或者可i^i也,可以^r^则MSB编程4射吴或故障。如果^iP!'測MSB编程4射吴或故障,则 可以随意/Ai爰冲存储器421恢复MSB数椐用于编程到不同^j诸单元中。然而,逸感
的是,如果片&则到MSB编程4射吴或故障,##改之前^#在所选^(诸单元中的LSB 数据。因为当编程所选^^诸单元的MSB时緩沖^j诸器421不再^4LSB数据,需要 重要的'tt处理以确定所选^f诸单元的正确逻4刷犬态。
图12和13表示LSB数据的示例性'1^^处理。然而,在解释'1^1处理之前,应 该注意所i4^f诸单元的MSB或LSB编程操怍期间发生的编程4射吴或故障的特性一般 取决于所选^j诸单元的阈值电压分布的配置以及阈值电压分布赋值的逻4^1犬态。例 如,由于将图ll的图(b)中四个阈值电压分布赋值到^h逻辑状态"11"、 "01"、 "10"和"00",以及图(a)中标为"0"的相对宽的中间阈值电压分布的^j ),所 选^f诸单元的某种类型的禾1^4射吴或故障更有可肖汰生。
例如,对于已成功编程所选^f诸单元的LSB到逻辑"1"以及编程MSB到逻辑"0", 如果MSB的编程失败,则所选^#单元的阈值电压分布可能##在标为"11"的阈 值电压分布内。在该情况下,所选^f诸单元的LSB #^呆持逻辑'T,,并因此不受失 败影响以正确编程MSB。
另一方面,对于已成功编程所选^f诸单元的LSB到逻辑"0"以及编程MSB到逻 辑"1",如果MSB的编程失败,则所选^[诸单元的LSB可能不合需要^AiE辑"0" 修改为逻辑"1"。换而言之,所选##单元的目标逻4^l犬态是"10",但在MSB编程 失败^所选^f诸单元的实际逻4钊犬态终止为"01"。
所选^f诸单元的LSB可能不合需要i^Aii:辑"0"修改为逻辑'T,的一个原因 在于与图11中的其他阈值电压分布相比图(a)中标为"0"的阈值电压分布相对宽。 例如,如图(a)中点"A,,和"B"以及图(b)中对应点"A"和"B"所示,图(a) 中标为"0"的阈值电压分布与图(b)中标为"01"和"10"的各个阈值电压分布 重叠。因为图(a)中标为"0"的阈值电压分布与图(b)中的多个阈值电压分布重 叠,对于MSB编程之前所选^H诸单元的阈值电压在点"A,,的情况,如果MSB编程失 败,则所选^fi者单元将在标为"01"的阚值电压分布终止。
因为所选4"^者单元的MSB或LSB编程操怍期间发生编程《射吴或故障的特性典型 ;N^决于所选^f诸单元的阈值电压分布的配置和逻辑状态到阈值电压分布的赋值, 不同的'^1操作可用于具有不同阈值电压分布和对应逻4刷犬态的^f诸单元。因此, 在不背离本发明范围的情况下可以对图11至13所示的讲解示例进行各种修改。
为了简化解释,下文将阈值电压分布的配置和逻辑状态到不同阈值电压分布的 对应赋值称为^f诸单it^^f诸单iti且的"单iU口扰(cell scramble ),,。例如,由图 (a)和(b)中所选^f诸单元的阈值电压分布表示图11的所选^^者单元的',it>
扰"。因为所选^f诸单元的编程中4射吴或故障取决于所选^f诸单元的"单W口扰", 将关于单^>护3^则所选^#单元中的位错误。
~~^殳,对于使用图11的单^口扰的情况,如果MSB打算被编禾I^逻I^)犬态"1" ^^目反被编禾l^逻l科犬态"0",这一般暗示所选^j诸单元具有标为"01"的阈ii电 压分布内的阈值电压,而它打#*有标为"10"的阈值电压分布内的阈值电压。(或 者,可能是MSB4射吴可表示当所选^f诸单元打算在标为"11"的阈值电压分布内时, 所选^f诸单4标为"00"的阈值电压分布内;然而,该4射吴不可肯&以在非易失 ')"^f诸系统400的一般才剩乍中忽4见)。因此,'1^1处理可以比4^斤选^^诸单元中编程 的MSB数据和緩沖#^者器421中{絲的对应MSB,并如果所选^f渚单元的MSB是逻辑 "0"以及緩冲务賭器421中^^的MSB是逻辑"1",则'l"^l处理可以确定不仅4fi吴 存在于所选^f诸单元中存储的MSB数据中,而且4射吴已发生在所选^[诸单元中併存 的LSB凄t据中,将LSB数据/Aii:辑"0"改变为逻辑'T,。
图12是表示图10的非易失性务賭系统400的LSB和MSB数据的恢复处理的示 例的示意图。图12的'fc^l处理包括失败位置;^则和数据'l^^操怍。
图12中,行"(a)"表示^f诸单元阵列431的所选^f诸单元中要编程的原始数 据页,行"(b)"表示在^f诸单元阵列431的所选##单元中实际编程的数据页,行 "(c)"表示^f诸单元阵列431的所选^j诸单元中编程的MSB数据页(标为"闪存 MSB数据"),行"(d)"表示緩冲^4者器421中j转的MSB数据页(表示"緩沖MSB 数据");行"(e)"表示^^诸单元阵列341的所选^j诸单元中编程的LSB数据页(表 示"闪存LSB数据,,)以及行"(f )"表示^J^线处S/人闪存LSB数据'fcl的LSB 数据页(表示"'^llLSB数据")。
在图12中,由表示原始数据和在所选^j诸单元中实际编程的数据之间的差别的 ^^4示编程4射吴或故障。在图12的两个弧线中,原始数据是"10"以及编程数据 是"01"。换而言之,包括位错误的所选^f诸单元的目标一犬态对应图11中标为"10" 的阈值电压分布,而包括位错误的所选^(诸单元的实际状态对应图11中标为"01" 的阈值电压分布。如上所述,可以通过比较闪存MSB数据和緩冲MSB数据#^则该错 误的特定类型。如果特定^f诸单元的闪存MSB数据是逻辑"0"以及特定^f诸单元的 緩沖MSB数据是逻辑"1",应该'^ll特定^j诸单元中的LSB数据以便它是逻辑"0"。
在非易失性存储系统400中, 一般在^f诸控制器420的控制下在比较器424中 ^Vf亍闪存MSB数据和緩冲MSB数据之间的比较。根据比较器424 ^^f亍的比较可以检 测"失败位置"的定位(即,位错误)iHM在^:位置检测器425中。"^殳/X4
储单元阵列431将闪存LSB数据通过错误纠正电路422读入^f分存储器422。 一旦比 较器424和4fi吴位置一b则器424已识别出闪存LSB数据的4射吴需^f奮改,则'ftt电 路426可以使用4射吴位置修复闪存LSB数据以产生修复的LSB数据。
图13是表示根据本发明一实施例的图10的^H诸系统的编程^^乍的^^f呈图。图 13的流程图进一步阐明图12所示的'^ll操作,W苗述了在编程非易失性务賭系统 400中涉及的其^^呈序。在下面的描述中,由招号表示示例性方法步骤。itM卜,为了 便于解释,从编程操作的描述中省s^^种常规细节。例如,该描述不讨论涉及在主 机410和^f诸控制器420之间发送命令和;4iihil从控制器420向闪存430发送控制 信号的特定问题。然而,本领域技术人员可以理解在本发明的范围内^f乍和控制非 易失'fi^(诸系统400的各种技术。
参考图13,在非易失'f^[诸系统400的编程^1乍中,将LSB数据编考i^^(诸单 元阵列431的所选^i者单元(S205 )。为了简化解释,假设将LSB凄t据成功编考呈到所 选^f诸单元。然后,将所选^(诸单元中要编程的MSB数^f綠^Ml沖存储器421中 (S210 )。然后,将緩冲务賭器421中保存的MSB数据编程到所选^^诸单元中(S215 )。
在将緩冲存储器421中保存的MSB数据编程到所选^f诸单; L^后,扭/f^f呈序验 证操作以确^否已成功编程所有的所选^f诸单元(S220)。如果程序-^i正4乘怍确定 已成功编程所有的所选^f诸单元,则编程^1乍终止(参见,图13中标为"No"的上 箭头)。如果成功编程MSB数据, 一般编禾lM"应所选^f诸单元的标志单元以表示在所 选^f诸单元中已编程MSB数据。否则,如果当编程所选^f诸单元中的MSB数据时程 序验证操怍确定已;^4射吴或故障,则^^诸控制器420将编禾l^所选^f诸单元的LSB 数驗入銜吴纠正单元423 (S225 )。
此时,错i吴纠正单元423中保存的LSB数据可能包含错i吴,因为如上所述,当 编程所选^f诸单元中的MSB数据时发生的4射吴或故障也可能引起LSB数据中的4fi吴。 因此,接下来错误纠正单元423评价LSB数据以枱训LSB数据中错误的出现和/或确 ^A否^^1错误纠正技术纠正在LSB数据中可^^在的错误(S230 )。如果4脊误纠正 单元423确定LSB数据不包^f^f可^i吴或可以仗月错误纠正技术纠正LSB数据中的 ^f可4fi吴,则不真正需^f'f改或十tt LSB数据。相反,对应所选^(诸单元的标志单 元可^#在一状态,该状态表示已在所选^f诸单元中只正确编程LSB数据并可以从 緩冲存储器421将MSB数据编程到^f诸单元阵列431的不同位置。或者,可以将LSB 数据和MSB数据编程到##单元阵列431中的不同##单元集。在^f》刚青况下,如 果LSB数椐不包^f^可4fi吴或只包含可以由错误纠正单元423使用的错_误纠正4支术
容易纠正的4普误,则不需^f'务复LSB数據并因此如图13中标为"Yes"的箭头所示 可以省略图13中步骤S230以后的步骤。
如果4射吴纠正单元423中j錄的LSB数据包含不能^J 1由4射吴纠正单元423使 用的错i吴纠正技术容易纠正的错误,则#1晉误纠正单元423中保存的LSB数才刷絲 在^f分务賭器422并且4;^亍如图13中标为"No"的下部箭头所示的进一步的步骤。 具体的,比较器424接^^斤选^(诸单元中编程的MSB数据("闪存MSB数据,,)和緩 冲存储器421中保存的MSB数据("緩冲MSB数据,,)并比较闪存MSB数据和緩沖MSB 数据(S235 )。根据闪存MSB数据和緩冲MSB数据之间的差别,然后失败位置^^则器 425 4&则MSB数据中一个或多个位4射吴的位置(S240 X然后,4顿失败位置>^则器 425获得的位置,并根据所选^f诸单元的单元加扰,修复电路426修改^H"分存储器 422中^f絲的LSB数据(S245 )。然后,^H^分^f诸器422中^4的已修改LSB数据被 传送回到错误纠正单元423以及错i吴纠正单元423可禽^企测和/或纠正已修改LSB数 据中的剩余4射吴(S250)。 M, 一旦已修改LSB数据以纠正MSB数据的失败编程引 起的错误,将分别从错误纠正单元423或^f分存储器422以及缓冲存储器421将LSB 数据和MSB数据编禾li'j闪存430内的新块或页(S255 )。
图14是根据本发明另一实施例的非易失'^^f诸系统500的示意框图。非易失性 ^^诸系统500类似于图10所示的非易失'^##系统400。 M的,非易失^^fi者系 统500包括类似于主机410的主机510、类似于^i诸控制器420的^[诸控制器520 以及闪存芯片530和540,它们中每个都类似于闪存430。
与非易失'f4^f诸系统400相反,非易失'^^^诸系统500包括两个闪存芯片530 和540。相应地,^f诸控制器520包括用于分别编程闪存芯片530和闪存芯片540 的两个緩沖^^诸器52a和52a。然而,与图8中的##控制器320不同,^#控制器 520只包括一个^^分务賭器522。 ^f诸控制器520只包括一个^f分务賭器522的原因 在于^f谦检制器520类似于^^诸控制器420操作,其中在所选^f诸单元编程MSB数 据之前在闪存芯片530和540的所选^f诸单元中编程的LSB数据不是自动^ft在备 份^j诸器522中。相反,在将MSB数据编程到所选^f诸单元的尝试失败^,只将 所选^f诸单元中保存的LSB翁:据传i^J'j^f分存储器522。如果试图将MSB数据编程到 闪存芯片530或540的所选^f诸单元失败,则^^緩沖^(诸器521和^^分^^诸器522 M/f亍图13中的步骤S230至S255以A^斤选^^诸单元'l^lLSB数据。
图15是根据本发明另一实施例的非易失性务賭系统的示意框图。图15的非易 失寸^[诸系统600类似于图14所示的非易失'^4J诸系统500。 M的,非易失'f錄
储系统600包括类似于主机510的主机610、类似于^f诸控制器520的^f诸控制器 620以及每个都类似于闪存芯片530和540的闪存芯片631至63n。然而,与非易失 '^4^诸系统500相反,不是两个闪存芯片和两个对应緩冲^4者器,非易失'^H者系 统600可以具有任意数V,的緩沖存储器621至62n以及任意数V,的对应闪存 芯片631至63n。如同##控制器520, ^f诸控制器620包括单个共^|^分##器 62n,,用于当在^f可闪存芯片631至63n中的编程MSB数据失败时对LSB数据^;^亍 修复#1乍。非易失'hi^f诸系统600的功能类似于非易失性系统500和400,并因jtb^' 略其功能的详细描迷以it^冗余。
如同非易失'l"^ft系统300和900,非易失4^f诸系统500和600可^JD多种 不同接口和/或数据传送协议以分别^[诸控制器520和620以及^f诸芯片530和 540和631至63n之间传送数据。例如,非易失性存储系统500和600可以使用多个 4妾口以^/f亍同时并行数据传送或^^]一个或多个接口以^/f亍交叉数据传送。而且, 如同本发明的其他实施例,可以在诸如单个DR細的单个芯片的不同区域或多个不同 芯片中分别形^H诸控制器520和620中的緩冲^j诸器和^f分^^诸器。
因为图10至图15中所示的非易失性务賭系统不需M次^^亍MSB编程时名喻 LSB数据,这些系统相对于其中每次执行MSB数据#|^分LSB数据的系统具有更高的 性能,除非编程失败i^页繁以至于高频率地^if]^^分的LSB数據。此外,因为图IO 至15中所示的系统只为多个緩冲^H诸器使用一个共^I^分^^诸器,这些系统与为每 个缓冲^4者器都包括一个^P分"4i渚器的类似系乡W目比设计的M^莫更'J 、。
总而言之,通过为已在所选多层^f诸单元中保存的数据提供^f分务賭器,并通 过当MSB编程#^乍失败时提供^1数据的进程,本发明的实施例可以it^当编程多 i UH诸单元时的数据丢失。结果,本发明的实施例提供与常规非易失'^^诸系乡W目 比具有改进可靠性的非易失'l"i^^者系统。
上述示例性实施例只是讲解示例。本领域技术人员能理解在不背离后面的权利 要求定义的本发明范围的情况下可以对示例性实施例进行形式和细节上的各种改 变。
权利要求
1.一种非易失性半导体存储系统,包括包括多个多位存储单元的一存储阵列;和一存储控制器,包括一缓冲存储器,用于存储在多个存储单元中所选存储单元中已编程的j-位数据;一修复存储器,用于保存从所选存储单元中读取的i-位数据;一失败位置检测器,用于根据从所选存储单元读取的j-位数据和缓冲存储器中存储的j-位数据之间的比较确定i-位数据中的位错误的位置;和一修复单元,用于修复在修复存储器中保存的i-位数据中的位错误。
2、 根据权利要求l所述的系统,其中緩冲存储器具有比修复存储器更大的容量。
3、 根据权利要求l所述的系统,其中存储控制器进一步包括用于执行比较的比 较器。
4、 根据权利要求l所述的系统,其中存储控制器进一步包括用于纠正i-位数据 中错误的错误纠正单元。
5、 根据权利要求l所述的系统,其中存储控制器进一步包括用于纠正i-位数据 中错误的错误纠正电路。
6、 根据权利要求l所述的系统,其中失败位置检测器关于多位存储单元的单元 加拔确定位错误的位置。
7、 根据权利要求l所述的系统,其中i-位数据和j-位数据都包括数据页或块。
8、 根据权利要求l所述的系统,其中存储阵列包括NAND闪存阵列。
9、 一种非易失性半导^f诸系统,包括 第一至第n存储芯片,每个包括多个多位非易失性存储单元;和 一存储控制器,包括第一至第m緩冲存储器,每个用于存储在第一至第n刷诸芯片内的多个多位非易 失性存储单元中所选存储单元中编程的j-位数据;和第一至第P修复存储器,用于存储在所选存储单元中保存的j-位数据;一失败位置冲检测器,用于根据,从所选存储单元读取的j-位数据和緩冲存储器中 存储的j-位数据之间的比较,来确定i-位数据中的位4错误的位置;和—'多复单元,用于修复在修复存储器中保存的i-位数据中的位错误。
10、 根据权利要求9所述的系统,其中n和m都大于l以及第一至第p修复存储器包括单樣复賴器。
11、 根据权利要求9所述的系统,其中第一至第m緩沖^^诸器和第一至第p修复存储器包括单个存储芯片的不同区域。
12、 根据权利要求9所述的系统,其中n等于m。
13、 根据权利要求9所述的系统,其中^(诸控制器进一步包括用于净似亍比较的比 较器。
14、 根据权利要求9所述的系统,其中^f诸控制器进一步包括用于纠正i-位数 据中错误的错误纠正单元。
15、 根据权利要求9所述的系统,其中存储控制器进一步包括用于纠正i-位数 据中错误的错误纠正电路。
16、 根据权利要求9所述的系统,其中失败位置存储则器关于多存储单元的单元 加护W角定位4射吴的位置。
17、 根据权利要求9所述的系统,其中i-位数据和j-位数据都包括数据页或块。
18、 根据权利要求9所述的系统,其中一个或多个第一至第n个存储芯片包括NAND 闪存芯片。
19、 一种在多位非易失性半导体系统中执行编程操作的方法,所述多位非易 失性存储系统包括包含多个多位存储单元的一务賭阵列和一存储控制器,该方法包 括在存储阵列的所选存诸单元中编程i-位数据; 一存储控制器中一存储控制器; 编程所选存储单元中的j-位数据; 确定在所选存储单元中是否成功编程j-位数据;一旦确定在所选存储单元中没有成功编程j-位数据,则比较所选存储单元中保 存的j-位数据和存储控制器中保存的j-位数据;根据比较,确定所选存储单元中存储的i-位数据的至少一个位错误的位置;以及修复i-位数据中至少一个位4射吴。
20、 根据权利要求19所述的方法,进一步包括 一旦确定在所选存储单元中成功编程j-位数据,则终止编程才乘怍。
21、 根据权利要求19所述的方法,进一步包括一旦确定在所选##单元中没有成功编程j-位数提,并在比较所选存储单元中保存的j-位数据和存诸控制器中保存的j-位数据之前,将i-位数据从所选存诸单元 读入^f诸控制器中并确定通过错误纠正单元是否能够纠正i -位数据中的任何位错 误;以及一旦确定可以由错i吴纠正单元纠正i-位数据中的任何错误,则终止编程l喿怍。
22、 根据权利要求19所述的方法,进一步包括在修复i-位数据中的至少一个位4射吴之后,使用错误纠正单元纠正i-位数据中 的贿剩余位衞吴。
23、 根据权利要求19所述的方法,其中关于多位存诸单元的单元加扰确定i-位 数据中的至少一个位4射吴的位置。
24、 根据权利要求19所述的方法,其中第一至第n个务賭芯片中的一个或多个 包括NAND闪存芯片。
25、 根据权利要求19所述的方法,其中j-位数据和i-位数据都包括数据页或块。
26、 一种编程非易失性存储器的方法,该非易失性存储器包括多位非易失性存诸 单元,该方法包括定义存诸单元的单元加扰;一旦检测存诸单元的所选单元中j-位数据的编程错误,则关于单元加扰修复所 选存诸单元中之前编程的i-位数据。
27、 根据权利要求26所述的方法,进一步包括 使用错误纠正单元纠正i-位数据中的错i吴。
28、 根据权利要求26所述的方法,其中存诸单元是两位非易失性存诸单元;以及其中i-位数据是最高有效位数据以及j-位数据是最j絲效位数据。
29、 根据权利要求26所述的方法,其中存诸单元是两位非易失性 存 诸单元;以及其中i-位数据是最低有效位数据以及j-位数据是最高有效位数据。
30、 根据权利要求26所述的方法,其中j-位数据和i-位数据都包括数椐页或块。
31、 根据权利要求26所述的方法,其中非易失性存诸器包括NAND闪存。
全文摘要
一种非易失性存储系统包括主机、存储控制器和包含多级闪存单元的闪存芯片。存储控制器包括备份存储器,用于当进一步编程多级闪存单元失败时保存之前从多级闪存单元编程数据的备份拷贝。之前编程数据的备份拷贝用于在将之前编程数据再编程到非易失性存储系统中不同多级存储单元之前检测和纠正之前编程数据中的任何错误。
文档编号G11C16/06GK101202109SQ20071030778
公开日2008年6月18日 申请日期2007年10月19日 优先权日2006年10月19日
发明者崔珍赫 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1