專利名稱:具有基本程序序列和寫中止檢測的非易失性存儲器和方法
技術(shù)領(lǐng)域:
本申請涉及諸如半導(dǎo)體快閃存儲器的可再編程非易失性存儲器系統(tǒng)的操作,更具體地,涉及處理編程暫停和重新開始。
背景技術(shù):
能夠非易失性存儲電荷的固態(tài)存儲器、特別是被封裝為小型規(guī)格卡的EEPROM和快閃EEPROM形式的固態(tài)存儲器最近成為各種移動和手持設(shè)備、特別是信息裝置和消費電子產(chǎn)品中的存儲選擇。不同于也是固態(tài)存儲器的RAM (隨機存取存儲器),快閃存儲器是非易失性的,并且即使在切斷電源之后仍保持它所存儲的數(shù)據(jù)。而且,不同于ROM (只讀存儲器),快閃存儲器時可重寫的,類似于盤存儲設(shè)備。盡管成本更高,但是快閃存儲器正被更多地用于大容量存儲應(yīng)用中?;谥T如硬盤驅(qū)動和軟盤的旋轉(zhuǎn)磁介質(zhì)的傳統(tǒng)大容量存儲不適 合于移動和手持環(huán)境。這是因為盤驅(qū)動傾向于體積大,易出現(xiàn)機械故障,并且具有高等待時間和高功率要求。這些不希望的屬性使得基于盤的存儲在大部分移動和便攜式應(yīng)用中不實用。另一方面,嵌入式和可移動卡形式這兩種的快閃存儲器由于其小尺寸、低功耗、高速和高可靠性特征而理想地適合于移動和手持環(huán)境。快閃EEPROM類似于EEPROM (電可擦除可編程只讀存儲器)之處在于其是可被擦除的非易失性存儲器,并且使新數(shù)據(jù)被寫或“編程”到其存儲器單元中。在場效應(yīng)晶體管結(jié)構(gòu)中,兩者利用在源極和漏極區(qū)域之間的、位于半導(dǎo)體襯底中的溝道區(qū)之上的浮置(未連接)導(dǎo)電柵極。然后在浮置柵極之上提供控制柵極。由被保留在浮置柵極上的電荷量來控制晶體管的閾值電壓特性。也就是,對于浮置柵極上給定水平的電荷,存在必須在“導(dǎo)通”晶體管之前施加到控制柵極以允許在其源極和漏極區(qū)之間導(dǎo)電的相應(yīng)電壓(閾值)。具體地,諸如快閃EEPROM的快閃存儲器允許同時擦除存儲器單元的全部塊。浮置柵極可以保持一個范圍的電荷,因此可以被編程到在閾值電壓窗內(nèi)的任何閾值電壓電平。由器件的最小和最大閾值電平來界定(delimit)閾值電壓窗的大小,該最小和最大閾值電平又對應(yīng)于可以被編程到浮置柵極上的電荷的范圍。閾值窗通常取決于存儲器器件的特性、工作條件和歷史。在該窗內(nèi)的每個不同的可分辨的閾值電壓電平范圍原則上可以用于指定單元的明確的存儲器狀態(tài)。在目前的商業(yè)產(chǎn)品中,快閃EEPROM陣列的每個存儲元件通常通過工作在二進(jìn)制模式而存儲單個位的數(shù)據(jù),在該二進(jìn)制模式中,存儲元件晶體管的兩個范圍的閾值電平被定義為存儲級。晶體管的閾值電平對應(yīng)于在其存儲元件上存儲的電荷水平的范圍。除了縮小存儲器陣列的尺寸之外,趨勢是通過在每個存儲元件晶體管中存儲多于一位的數(shù)據(jù)而進(jìn)一步增加這樣的存儲器陣列的數(shù)據(jù)存儲的密度。這通過為每個存儲元件晶體管定義多于兩個閾值電平作為存儲狀態(tài)來實現(xiàn),現(xiàn)在四個這樣的狀態(tài)(每個存儲元件2位數(shù)據(jù))被包括在商業(yè)產(chǎn)品中。也在實現(xiàn)更多的存儲狀態(tài),比如每個存儲元件16個狀態(tài)。每個存儲元件存儲器晶體管具有其可以在其中實際操作的某個總范圍(窗)的閾值電壓,并且該范圍被劃分為對其定義的多個狀態(tài)加上允許各狀態(tài)彼此之間清楚區(qū)分的狀態(tài)之間的余量。顯然,存儲器單元被配置為存儲的位越多,其需要工作在的誤差余量越小。通常通過兩種機制之一來將充當(dāng)存儲器單元的晶體管編程到“已編程”狀態(tài)。在“熱電子注入”中,施加到漏極的高電壓加速了穿過襯底溝道區(qū)的電子。同時,施加到控制柵極的高電壓拉動熱電子經(jīng)過薄柵極電介質(zhì)到浮置柵極上。在“隧穿注入”中,相對于襯底,高電壓被施加到控制柵極。以此方式,將電子從襯底拉到中間的(intervening)浮置柵極。雖然歷史上使用術(shù)語“編程”來描述通過將電子注入到存儲器單元的初始被擦除的電荷存儲單元以便更改存儲器單元的狀態(tài)的向存儲器的寫入,但是現(xiàn)在該術(shù)語已經(jīng)與諸如“寫入”或“記錄”的更常用的術(shù)語可互換地使用??梢酝ㄟ^多種機制來擦除存儲器器件。對于EEPR0M,可通過相對于控制柵極向襯底施加高電壓以便誘導(dǎo)浮置柵極中的電子遂穿過薄氧化物到襯底溝道區(qū)(即,F(xiàn)owler-Nordheim隧穿)而電擦除存儲器單元。通常,EEPROM可逐字節(jié)擦除。對于快閃EEPR0M,該存儲器可一次性電擦除或一次一個或多個最小可擦除塊地電擦除,其中最小可擦除塊可以有一個或多個扇區(qū)組成,并且每個扇區(qū)可以由512字節(jié)或更多的數(shù)據(jù)組成?!?br>
存儲器器件通常包括可以被安裝在卡上的一個或多個存儲器芯片。每個存儲器芯片包括由諸如解碼器和擦除、寫和讀電路的外圍電路支持的存儲器單元的陣列。更復(fù)雜的存儲器器件還與進(jìn)行智能和更高級的存儲器操作和接口的外部存儲器控制器一起工作。存在現(xiàn)今正使用的許多商業(yè)上成功的非易失性固態(tài)存儲器器件。這些存儲器器件可以是快閃EEPR0M,或可以使用其他類型的非易失性存儲器單元。在美國專利No. 5070032、5095344、5315541、5343063 和 5661053,5313421 和 6222762 中給出了閃存和系統(tǒng)及其制造方法的例子。具體地,在美國專利No. 5570315,5903495,6046935中描述了具有NAND串結(jié)構(gòu)的閃存器件。而且還由具有用于存儲電荷的介電層的存儲器單元制造非易失性存儲器器件。取代先前描述的導(dǎo)電浮置柵極元件,使用介電層。由Eitan等人的“NR0M:A Novel Localized Trapping, 2_Bit Nonvolatile Memory Cell,,,IEEE ElectronDevice Letters, Vol. 21, No. 11,2000年11月,543-545頁描述了利用介電存儲元件的這種存儲器器件。0N0介電層延伸穿過在源極和漏極擴散之間的溝道。用于一個數(shù)據(jù)位的電荷被定位在與漏極相鄰的介電層中,且用于另一數(shù)據(jù)位的電荷被定位在與源極相鄰的電介質(zhì)層中。例如,美國專利No. 5768192和6011725公開了具有夾在兩個二氧化硅層之間的俘獲(trapping)電介質(zhì)的非易失性存儲器單元。通過分別讀取該電介質(zhì)內(nèi)的空間上分離的電荷存儲區(qū)域的二進(jìn)制狀態(tài)來實現(xiàn)多狀態(tài)數(shù)據(jù)存儲。為了改善讀取和編程性能,并行地讀取或編程陣列中的多個電荷存儲元件或存儲器晶體管。從而,一起讀取或編程一“頁”的存儲器元件。在現(xiàn)有存儲器架構(gòu)中,一行通常包含幾個交織的頁,或者它可能構(gòu)成一頁。一頁的所有存儲器元件將被一起讀取或編程。寫入的數(shù)據(jù)中的錯誤在再次所述的存儲器系統(tǒng)的類型以及包括磁盤存儲系統(tǒng)的其他類型中,通過使用錯誤校正技術(shù)來維持被存儲的數(shù)據(jù)的完整性。最普遍地,對同時被存儲的每個扇區(qū)或者其他單位的數(shù)據(jù)計算錯誤校正碼(ECC),并且該ECC與該數(shù)據(jù)一起存儲。ECC最普遍與用戶數(shù)據(jù)的單元組一起存儲,其中已經(jīng)根據(jù)該用戶數(shù)據(jù)的單元組計算了該ECC。用戶數(shù)據(jù)的單元組可以是扇區(qū)或者多扇區(qū)的頁。當(dāng)從存儲器讀取此數(shù)據(jù)時,ECC用于確定被讀取的用戶數(shù)據(jù)的完整性。通常可以通過使用ECC來校正單元組的數(shù)據(jù)內(nèi)的數(shù)據(jù)的錯誤位。
趨勢是降低存儲器系統(tǒng)的尺寸以便能夠?qū)⒏嗟拇鎯ζ鲉卧旁谙到y(tǒng)中并使得該系統(tǒng)盡可能地小以適合更小的主機設(shè)備。通過電路的更高集成以及配置每個存儲器單元以存儲更多位數(shù)據(jù)的組合來增加存儲器容量。這兩種技術(shù)需要存儲器以增加的更收緊的錯誤余量來工作。這又對ECC矯正錯誤帶來更多要求。可以設(shè)計ECC以校正預(yù)定數(shù)量的錯誤位。其需要校正的位越多,ECC將越復(fù)雜并計算強度越大。非易失性存儲器通常與主機一起工作以存儲并取回(retrieve)數(shù)據(jù)。為了適當(dāng)并有效的操作,還需要進(jìn)行許多內(nèi)部存儲器操作,比如在存儲器的不同部分之間復(fù)制數(shù)據(jù)。在主機空閑時,這些內(nèi) 部操作可以在后臺進(jìn)行,但是優(yōu)選通過背馱(piggy-back)到主機操作而在前臺進(jìn)行以避免非預(yù)期的電源關(guān)閉的可能性。例如,在每個主機寫命令期間,不是對主機寫命令預(yù)算的所有時間都用于進(jìn)行主機寫。空閑時間可以用于進(jìn)行一些內(nèi)部存儲器操作。因為內(nèi)部存儲器操作可能花費比單個主機命令中能夠給予的空閑時間更長,可能需要經(jīng)過幾個主機命令來進(jìn)行。因此,需要將內(nèi)部存儲器操作分割為更小的片段以便經(jīng)過幾個主機命令能夠給予的空閑時間而執(zhí)行它們。當(dāng)前一代的非易失性存儲器使用多種類型的編程遍(pass)的集合通過每個字線而使得多位數(shù)據(jù)可編程。優(yōu)選的集合具有以下特征被編程的多位數(shù)據(jù)中的一些或所有直到該集合的所有遍已經(jīng)完成才有效。在一組字線之上的編程操作通常包括一系列編程步驟,每個步驟對與上一步驟不同的字線進(jìn)行不同類型的編程遍。當(dāng)編程操作被分割成在不同時間執(zhí)行的更小的片段時,需要在下一片段中表示在上一片段中的終止編程步驟以便編程操作重新開始并從其繼續(xù)。但是,由于在編程遍之間的不明確的存儲器狀態(tài)以及非連續(xù)的字線編程順序,在下一編程片段中經(jīng)常不能清楚地發(fā)現(xiàn)上一編程步驟。因此,需要提供具有允許編程操作被分段并在不同的時間執(zhí)行同時能夠提供從一個片段到下一個的連續(xù)性的編程技術(shù)的非易失性存儲器。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一般方面,將非易失性存儲器中的編程操作在預(yù)定接合處分割為小片段用于在不同時間執(zhí)行。預(yù)定接合處使得當(dāng)在下一片段中重新開始操作時它們允許明確識別以便操作可以繼續(xù)而無需從該操作的最開始重新開始。這通過要求每個片段的編程序列是基本的、即僅在預(yù)定類型的編程步驟處終止而實現(xiàn)。在下一片段中,通過檢測在一組編程的字線之間的ECC錯誤的預(yù)定樣式來識別終止編程步驟。根據(jù)本發(fā)明的一個方面,在以下非易失性存儲器中提供基本編程序列。非易失性存儲器使得多位數(shù)據(jù)可使用多種類型的編程遍的集合通過每條字線編程。在一組字線上的編程操作通常包括一系列編程步驟,每個步驟對與上一步驟不同的字線進(jìn)行不同類型的編程遍。允許將編程操作分解為更小的片段,每個片段處的編程步驟僅終止于多種類型的編程遍的集合之中的預(yù)定類型處。預(yù)定類型是與不將被識別的集合中的其他類型相比,將允許終止編程步驟與被識別的類型。利用終止于預(yù)定類型的編程遍處的基本編程序列,可以在下一片段中清楚地識別該終止編程步驟以便從其處重新開始并繼續(xù)操作。在一個優(yōu)選實施例中,通過三種類型的編程遍、即較低、模糊和精細(xì)來編程字線上的一頁3位存儲器單元。在一個具體實施例中,基本編程序列終止于執(zhí)行較低遍的編程步驟。在另一具體實施例中,基本編程序列終止于執(zhí)行精細(xì)編程的編程步驟。
根據(jù)本發(fā)明的另一方面,通過檢測在一組被編程字線之間的預(yù)定樣式的ECC錯誤在下一片段中識別片段中的終止編程步驟。在一個優(yōu)選實施例中,在下一片段中識別上一片段的終止編程步驟。通過二進(jìn)制搜索來查找被編程和被擦除字線之間的邊界。從該邊界起得一組被編程字線的ECC錯誤形成可檢測的ECC樣式或者簽名以允許識別在上一片段中最后編程步驟終止于的字線。給定識別的字線和基本編程序列的終止遍的類型,確定最后編程步驟用于編程操作重新開始并繼續(xù)。
圖I例示主機與其中體現(xiàn)了本發(fā)明的特征的存儲器器件通信。圖2示意性例示非易失性存儲器單元。圖3例示存儲器單元的NOR陣列的例子。·圖4例示被并行感測或變成的被組織在例如NAND配置中的一頁存儲器單元。圖5A更詳細(xì)地例示圖I所示的感測模塊包含在存儲器單元的陣列之間的一堆P個感測模塊。圖5B例示包括感測放大器的感測模塊。圖6示意性例示以可擦除塊組織的存儲器陣列的例子。圖7例示具有每個單元處于兩個可能的狀態(tài)之一的全體單元的二進(jìn)制存儲器。圖8例示具有每個單元處于八個可能的狀態(tài)之一的全體單元的多狀態(tài)存儲器。圖9 (I)到9 (3)例示用于將三位數(shù)據(jù)編程到字線上的一頁的每個存儲器單元的優(yōu)選的(模糊-精細(xì))多遍編程。圖IOA例示具有2位存儲器單元(D2)并且其頁按最佳序列被編程以便最小化相鄰字線上的存儲器單元之間的Yupin效應(yīng)的存儲器的例子。圖IOB例示圖IOA的2_位存儲器的編程順序的另一視圖。圖IlA例示具有3位存儲器單元(D3)的存儲器的例子,其中每個單元頁3位可編程到每個字線中。圖IlB例示具有3位存儲器單元(D3)并且企業(yè)按最佳序列被編程以便最小化相鄰字線上的存儲器單元之間的Yupin效應(yīng)的存儲器的例子。圖IlC例示用于圖IlB中3位存儲器的編程順序的另一個視圖。圖12A例示連續(xù)主機地址中的頁的優(yōu)選排序的例子。圖12B例示D3存儲器中的頁的優(yōu)選存儲順序。圖13A示意性例示包含ECC字段的數(shù)據(jù)頁。圖13B時例示D3中的頁的可能的狀態(tài)的表。圖14例示適合于實踐本發(fā)明的存儲器的例子。圖15例示圖IlB中直到SlO的編程步驟。圖16A和16B列出編程步驟S7-S10的在各個接合處的寫中止的影響。圖17A和17B也列出編程步驟S7-S10的在各個接合處的寫中止的影響。圖18是例示本發(fā)明的基本編程序列的流程圖。圖19使歷史從先前編程片段中發(fā)現(xiàn)最后的編程步驟的流程圖。
具體實施例方式存儲器系統(tǒng)圖I例示主機與其中可以體現(xiàn)本發(fā)明的特征的存儲器器件通信。主機80通常發(fā)送要存儲在存儲器器件90處的數(shù)據(jù)或者通過讀取存儲器器件90而取回數(shù)據(jù)。存儲器器件90包括由控制器102管理的一個或多個存儲器芯片100。存儲器芯片100包括存儲器單元的存儲器陣列200,每個存儲器單元能夠被配置為多級單元(“MLC”)用于存儲多位數(shù)據(jù)。存儲器芯片還包括外圍電路,比如感測模塊480、數(shù)據(jù)鎖存器430和I/O電路440。芯片上控制電路110控制每個芯片的低級存儲器操作。控制電路110時與外圍電路合作來對存儲器陣列200進(jìn)行存儲器操作的芯片上控制器??刂齐娐?10通常包括狀態(tài)機112以提供對存儲器操作的芯片級控制。在許多實現(xiàn)方式中,主機80經(jīng)由控制器102與存儲器芯片100通信并與之相接口。控制器102與存儲器芯片合作并控制和管理較高級的存儲器操作。例如,在主機寫中, 主機10將要寫入的數(shù)據(jù)發(fā)送到從主機的操作系統(tǒng)的文件系統(tǒng)分配的邏輯扇區(qū)中的存儲器陣列100。在控制器中實現(xiàn)的存儲器塊管理系統(tǒng)將扇區(qū)分級并將它們映射并存儲到存儲器陣列的物理結(jié)構(gòu)。在2009年I月I日提交的美國申請No. 12/348891中公開了優(yōu)選的塊管理系統(tǒng),通過參考將其全部公開合并于此。固件60提供用于實現(xiàn)控制器102的功能的代碼。錯誤校正碼(“ECC”)處理器62在存儲器器件的操作期間處理ECC。在另一實施例中,在主機內(nèi)實現(xiàn)控制器102。物理存儲器結(jié)構(gòu)圖2示意性例示非易失性存儲器單元。存儲器單元10可以有具有電荷存儲單元20、比如浮置柵極或者電介質(zhì)層的場效應(yīng)晶體管實現(xiàn)。存儲器單元10還包括源極14、漏極16和控制柵極30。存在許多現(xiàn)今正使用的商業(yè)上成功的非易失性固態(tài)存儲器。這些存儲器器件可以采用不同類型的存儲器單元,某種類型具有一個或多個電荷存儲元件。典型的非易失性存儲器單元包括EEPROM和快閃EEPR0M。在美國專利no. 5595924中給出了 EEPROM單元及其制造方法的例子。在美國專利 No. 5070032、5095344、5315541、5343063、5661053、5313421和6222762中給出了快閃EEPROM單元、其在存儲器系統(tǒng)中的使用及其制造方法的例子。具體地,在美國專利No. 5570315,5903495和6046935中描述了具有NAND單元結(jié)構(gòu)的存儲器器件的例子。而且,已經(jīng)由Eitan等人在“NORM:ANovel Localized Trapping, 2_BitNonvolatile Memory Cell”,IEEE Electron Device Letters, Vol. 21,No. 11,2000 年 11月,543-545頁中以及在美國專利No. 5768192和6011725中描述了利用電介質(zhì)存儲元件的存儲器器件的例子。實際上,通常通過在向控制柵極施加參考電壓時感測在單元的源極和漏極電極之間的導(dǎo)電電流來讀取該單元的存儲器狀態(tài)。因此,對于在單元的浮置柵極上的每個給定電荷,可以檢測關(guān)于固定的參考控制柵極電壓的相應(yīng)導(dǎo)電電流。相反,將閾值電壓定義為利用給定電荷剛好導(dǎo)通單元的控制柵極上的電壓。類似地,可編程到浮置柵極上的電荷的范圍定義了相應(yīng)的閾值電壓窗或相應(yīng)的導(dǎo)電電流窗。
或者,取代檢測在劃分的電流窗之間的導(dǎo)電電流,能夠在控制柵極處為在測試下的給定存儲器狀態(tài)設(shè)置閾值電壓,并檢測導(dǎo)電電流是低于還是高于閾值電流。在一個實施方式中,通過檢查導(dǎo)電電流經(jīng)過位線的電容或已知的電容器而放電的速率來實現(xiàn)相對于閾值電流對導(dǎo)電電流的檢測。如從以上描述可見,使得存儲器單元存儲的狀態(tài)越多,其閾值窗劃分得越精細(xì)。例如,存儲器器件可以具有擁有范圍從-I. 5V到5V的閾值窗的存儲器單元。這提供了 6. 5V的最大寬度。如果該存儲器單元要存儲16個狀態(tài),每個狀態(tài)可以占據(jù)閾值窗中的200mv到300mv。這將需要在編程和讀取操作中更高的精度,以便能夠?qū)崿F(xiàn)所需的分辨率。存儲器陣列200通常被組織為在行和列中布置的并且可通過字線和位線尋址的存儲器單元的二維陣列。該陣列可以根據(jù)NOR類型或NAND類型架構(gòu)來形 成。圖3例示存儲器單元的NOR陣列的例子。在存儲器陣列200中,每行存儲器單元通過其源極14和漏極16以菊鏈方式連接。該設(shè)計有時被稱為虛擬接地設(shè)計。一行中的單元10使得其控制柵極30連接到諸如字線42的字線。一列中的單元使得其源極和漏極分別連接到諸如位線34和36的所選位線。圖4例示被并行感測或編程的例如按NAND配置組織的一頁存儲器單元。圖4主要示出存儲器陣列200中的一堆NAND串50。NAND串50由通過其源極和漏極菊鏈連接的一系列存儲器晶體管(例如,4、8、16或更高)組成。一對選擇晶體管S1、S2控制存儲器晶體管鏈分別經(jīng)由NAND串的源極端和漏極端與外部的連接。在存儲器陣列中,當(dāng)源極選擇晶體管SI導(dǎo)通時,源極端耦接到源極線34。類似地,當(dāng)漏極選擇晶體管S2導(dǎo)通時,NAND串的漏極端耦接到該存儲器陣列的位線36。在該鏈中的每個存儲器晶體管10用作存儲器單元。其具有電荷存儲元件20來存儲給定量的電荷,以便表示意圖的存儲器狀態(tài)。每個存儲器晶體管的控制柵極允許對讀和寫操作的控制。一行NAND串的相應(yīng)存儲器晶體管的控制柵極全部連接到同一字線(比如WL0、WL1、……)。類似地,(分別經(jīng)由選擇線SGS和S⑶訪問的)每個選擇晶體管S1、S2的控制柵極提供分別經(jīng)由其源極端和漏極端對NAND串的控制訪問。當(dāng)在編程期間讀取或驗證NAND串中的被尋址的存儲器晶體管10時,其控制柵極30經(jīng)由公共字線被供應(yīng)了適當(dāng)?shù)碾妷?。同時,NAND串50中的其余未被尋址的存儲器晶體管通過在其控制柵極上施加足夠的電壓而完全導(dǎo)通。以此方式,從各個存儲器晶體管的源極到NAND串的源極端有效地建立了導(dǎo)電路徑,且對各個存儲器晶體管的漏極到該單元的漏極端類似。在美國專利No. 5570315,5903495,6046935中描述了具有這種NAND串結(jié)構(gòu)的存儲器器件。諸如頁70的“頁”是使得能夠并行被感測或編程的一組存儲器單元。這通過相應(yīng)頁的感測放大器而實現(xiàn)。例如,頁70沿著一行并且通過施加到共同連接到字線WL3的頁的存儲器單元的控制柵極的感測電壓而被感測。沿著每列,諸如單元10的每個單元可由感測放大器經(jīng)由位線36訪問。以上所述的頁是物理頁存儲器單元或者感測放大器。依賴于上下文,在每個單元都在存儲的情況下。感測電路和技術(shù)圖5A更詳細(xì)地例示圖I所示的感測模塊包含在存儲器單元的陣列之間的一堆P個感測模塊。并行工作的整堆P個感測模塊480允許沿著一行的一組(或物理頁)P個單元10被并行讀取或編程。實質(zhì)上,感測模塊I將感測單元I中的電流I1,感測模塊2將感測單元2中的電流12,......,感測模塊P將感測單元P中的電流Ip,等等。從源極線34流出
到集合節(jié)點CLSRC中并從那里到地的對于頁的總單元電流iTra將是P個單元中所有電流之和。在傳統(tǒng)存儲器架構(gòu)中,具有公共字線的一行存儲器單元形成兩頁或多頁,其中一頁中的存儲器單元被并行讀取和編程。在一行具有兩頁的情況下,通過偶數(shù)位線訪問一頁,并通過奇數(shù)位線訪問另一頁。一個物理頁的感測電路在任何一個時間與偶數(shù)位線或奇數(shù)位線耦接。在當(dāng)前生產(chǎn)的芯片中,物理頁可以是64k或更大。在優(yōu)選實施例中,組是一連串(run)的整行單元。這是所謂的“全位線(all bit-line)”架構(gòu),其中頁由分別與連續(xù)位線耦接的一行連續(xù)的存儲器單元構(gòu)成。圖5B例示包括感測放大器的感測模塊。感測放大器490檢測單元的導(dǎo)電電流是在參考水平以上還是以下。感測的結(jié)果被鎖存在鎖存器430的相應(yīng)集合中(見圖I)。 擦除塊快閃存儲器和其他類型的存儲器之間的一個重要差別時單元必須從擦除狀態(tài)開始編程。也就是,浮置柵極首先必須沒有電荷。然后編程將期望量的點和添加回到浮置柵極。其不支持從浮置柵極移除電荷的一部分已從更多編程的狀態(tài)來到更少編程的狀態(tài)。這意味著,更新數(shù)據(jù)不能蓋寫(overwrite)現(xiàn)有數(shù)據(jù),并且必須被寫到先前未寫入的位置。此外,擦除將從浮置柵極清空所有電荷并通?;ㄙM一點時間。由于該原因,逐個單元擦除或甚至逐頁擦除將是麻煩和非常慢的。實踐中,將存儲器單元的陣列劃分為大量存儲器單元的塊。如對于快閃EEPROM系統(tǒng)共同的,塊時擦除的單位。即,每個塊包含一起被擦除的最小數(shù)量的存儲器單元。圖6示意性例示按可擦除塊組織的存儲器陣列的例子。電荷存儲存儲器器件的編程僅能夠?qū)е孪蚱潆姾纱鎯υ砑痈嚯姾?。因此,在編程操作之前,存儲器單元的電話存儲元件中的現(xiàn)有電荷必須被移除(或擦除)。當(dāng)單元200的整個陣列或者該陣列的大量單元組一起(即一閃)被電擦除時,諸如EEPROM的非易失性存儲器被稱為“快閃” EEPR0M。一旦被擦除,就可以對單元組再編程。可一起擦除的單元組可以由一個或多個可尋址擦除單元300組成。擦除單元或塊300通常存儲一頁或多頁數(shù)據(jù),頁是編程和讀取的最小單位,盡管可以在單個操作中編程或讀取多于一頁。每頁通常存儲一個或多個扇區(qū)的數(shù)據(jù),扇區(qū)的大小由主機系統(tǒng)定義。一個例子是遵循隨磁盤驅(qū)動器建立的標(biāo)準(zhǔn)的512字節(jié)的用戶數(shù)據(jù)的扇區(qū)加上一些數(shù)量字節(jié)的關(guān)于用戶數(shù)據(jù)和/或存儲該用戶數(shù)據(jù)的塊的開銷信息。在圖6所示的例子中,存儲器陣列200中的各個存儲器單元可通過諸如WLO-WLy的字線42和諸如BLO-BLx的位線36訪問。存儲器被組織為擦除塊,比如擦除塊O、I、……m。還參考圖5A和5B,如果NAND串50包含16個存儲器單元,則該陣列中的第一堆NAND串將可通過選擇線44和諸如WLO到WL15的字線42訪問。擦除塊O被組織為使第一堆NDND串的所有存儲器單元一起被擦除。在存儲器架構(gòu)中,多于一塊的NAND串可以一起被擦除。二講制(SLC)和多狀杰(MLC)存儲器劃分的例子如之前所述,非易失性存儲器的例子由場效應(yīng)晶體管的陣列形成,每個場效應(yīng)晶體管具有在其溝道區(qū)和其控制柵極之間的電荷存儲層。電荷存儲層或單元可以存儲一個范圍的電荷,引起對于每個場效應(yīng)晶體管的一個范圍的閾值電壓。可能的閾值電壓的范圍跨度是閾值窗。當(dāng)閾值窗被劃分為閾值電壓的多個子范圍或者區(qū)域時,每個可分辨的區(qū)域用于表示存儲器單元的不同存儲器狀態(tài)。可以通過一個或多個二進(jìn)制位來編碼多個存儲器狀態(tài)。圖7例示具有每個單元處于兩個可能的狀態(tài)之一的全體單元的二進(jìn)制存儲器。每個存儲器單元使得其閾值窗被單個分界電平劃分為兩個不同的區(qū)域。如圖7 (O)所示,在讀取期間,在較低區(qū)域和較高區(qū)域之間的讀取分界電平1%被用于確定單元的閾值電平位于哪個區(qū)域。如果其閾值位于較低區(qū)域中則單元處于“被擦除”狀態(tài),如果其閾值位于較高區(qū)域中,則該單元處于“被編程”狀態(tài)。圖7 (I)例示了存儲器單元初始地使其所有單元處于“被擦除”狀態(tài)。圖7 (2)例示被編程到“被編程狀態(tài)”的一些單元。I位或二進(jìn)制代碼用于對存儲器狀態(tài)編碼。例如,位值“ I ”表示“被擦除”狀態(tài)并且“O”表示“被編程”狀態(tài)。通常通過施加一個或多個變成電壓脈沖來進(jìn)行編程。在每個脈沖之后,單元被感測以驗證閾值電壓是否已經(jīng)移動超過驗證分界電平%。具有這樣的存儲器單元劃分的存儲器被稱為“二進(jìn)制”存儲器或者單級單元(“SLC”)存儲器。將看到,二進(jìn)制或者SLC存儲器以寬的錯誤余量而工作,因為整個閾值窗僅被兩個區(qū)域占據(jù)。圖8例示具有每個單元處于八個可能的狀態(tài)之一的全體單元的多狀態(tài)存儲器。每·個存儲器單元使得其閾值窗被至少七個分界電平劃分為八個不同的區(qū)域。如圖8(0)所示,在讀取期間,讀取分界電平!"V1到rV7用于確定單元的閾值電平位于哪個區(qū)域。如果單元的閾值位于最低區(qū)域中,則該單元處于“被擦除”狀態(tài),如果其閾值位于較高區(qū)域中,則該單元處于多個“被編程”狀態(tài)之一。圖8 (I)例示存儲器初始地使其所有單元處于“被擦除”狀態(tài)。圖8 (2)例示被編程到“被編程”狀態(tài)的一些單元。具有低位、中間位和高位的3位代碼可以用于表示八個存儲器狀態(tài)的每個。例如,“O ”、“ I ”、“ 2 ”、“ 3 ”、“4”、“ 5 ”、“6 ”和“ 7 ”狀態(tài)分另 Ij 由 “ 111”、“ 011 ”、“ 001”、“ 101 ”、“ 100 ”、“ 000 ”、“ 010 ” 和 “ 110 ” 表示。通常,通過施加一個或多個變成電壓脈沖來進(jìn)行編程。在每個脈沖之后,單元被感測以驗證閾值是否已經(jīng)移到超過作為驗證分界電平W1到vV7之一的參考。具有這樣的存儲器單元劃分的存儲器被稱為“多狀態(tài)”存儲器或者多級單元(“MLC”)存儲器。類似地,存儲4位代碼的存儲器將具有低位、第一中間位、第二中間位和高位,表示十六個狀態(tài)中的每個。閾值窗將被至少15個分界電平分界為十六個不同的區(qū)域。隨著存儲器的有限閾值窗被劃分為更多區(qū)域,編程和讀取的分辨率必然將變得更精細(xì)。因此,與具有更少劃分的區(qū)域的存儲器相比,多狀態(tài)或者M(jìn)LC存儲器需要以更窄的錯誤余量來工作。換句話說,錯誤率隨著每個單元中存儲的位的數(shù)量而增加。一般而言,錯誤率隨著閾值窗中的劃分的區(qū)域的數(shù)量而增加。浮置柵極與浮置柵極耦合(“Yupin效應(yīng)”)被編程到一個存儲器單元的電荷存儲元件中的電荷產(chǎn)生干擾相鄰存儲器單元的電場的電場。如果存儲器單元在第一場環(huán)境下被編程驗證并且稍后由于隨后用不同電荷編程的相鄰單元在不同的場環(huán)境下再次被讀取,則讀取準(zhǔn)確度可能受到被稱為浮置柵極與浮置柵極耦合或者“Yupin效應(yīng)”的影響。隨著半導(dǎo)體存儲器中不斷更高的集成,由于存儲器單元之間存儲的電荷引起的電場的干擾(Yupin效應(yīng))隨著單元之間的間距縮小而變得更加可觀。可以通過最小化在場環(huán)境中單元在編程驗證時間和在相鄰單元已經(jīng)被編程之后的讀時間之間的不對稱性來消除Yupin效應(yīng)。此問題影響存儲器陣列的沿著穿過位線的行(BL-BL Yupin效應(yīng))和沿著穿過字線的列(WL-WL Yupin效應(yīng))的相鄰單元。降低BL-BL Yupin效應(yīng)的一種方式是多遍編程,這避免在每遍編程之間電荷的大的改變。圖9 (1)-9 (3)例示了用于將三位數(shù)據(jù)編程到字線上的一頁的每個存儲器單元中的優(yōu)選的(模糊-精細(xì))多遍編程。存在三種類型的編程遍較低;模糊;以及精細(xì)。圖9 (I)例示較低(或第一)頁編程遍。這僅僅是較低頁數(shù)據(jù)的功能。盡管來自此遍編程的數(shù)據(jù)看起來像是二進(jìn)制的,但是由于存儲器設(shè)計限制,該數(shù)據(jù)可能可以或者可能不能可靠地讀回。如從圖9 (3)可見,較低頁讀取的正常分界點時分界310。為了讀取在較 低遍之后的二進(jìn)制數(shù)據(jù),將需要替換的讀取分界310’。圖9 (2)例示模糊頁編程遍。這是所有3頁數(shù)據(jù)的功能。這是以單元具有重疊的編程電平而結(jié)束的中間遍,使得不能可靠地讀回數(shù)據(jù)。圖9 (3)例示精細(xì)頁編程遍。這也是所有3頁數(shù)據(jù)的功能。這是字線的最后一遍編程。在精細(xì)編程之后,對于所有3個數(shù)據(jù)頁,數(shù)據(jù)都是可讀的。低(“O”)邏輯頁具有讀取分界點310。中間(“I”)邏輯頁具有讀取分界點320和322。高(“2”)邏輯頁具有讀取分界點 330、332、334 和 336。將看到,通過此“模糊-精細(xì)”多遍編程方案而編程的數(shù)據(jù)僅在最后的精細(xì)編程遍完成之后是可讀的。在模糊遍之后,數(shù)據(jù)不可讀。在較低遍之后,只有分界讀取閾值從正常分界310改變到替換分界310’時數(shù)據(jù)才是可讀的。如果存儲器不支持替換較低頁讀取分界,則較低頁數(shù)據(jù)僅在較低遍之后也是不可讀的。在US6657891和US7046548中已經(jīng)公開了類似的多遍編程技術(shù)。字線之間的Yupin效應(yīng)降低WL-WL Yupin效應(yīng)的一種方式是按最佳順序編程存儲器陣列中的頁。關(guān)于其中在相鄰字線上的存儲器單元之間存在干擾的WL-WL Yupin效應(yīng),可以在編程期間使用優(yōu)選的編程方案來消除。這將有效地降低一半的干擾。剩余的一半也可以通過使用優(yōu)選的“向前看(look ahead)”讀取方案在讀取期間校正。優(yōu)選編程方案將使得與字線相關(guān)聯(lián)的頁按最佳序列被編程。例如,在其中每個物理頁保持一頁二進(jìn)制數(shù)據(jù)的二進(jìn)制存儲器的情況下,優(yōu)選沿著一貫方向、比如從底部到頂部依次編程各頁。以此方式,當(dāng)具體頁被編程時,在該頁的更低側(cè)的頁已經(jīng)被編程。無論它們可能對當(dāng)前頁產(chǎn)生何種干擾影響,正在解決它們,因為正考慮到這些干擾對當(dāng)前頁進(jìn)行編程驗證。實質(zhì)上,對頁編程的序列應(yīng)該允許被編程的當(dāng)前頁考到在其已被編程之后在其環(huán)境周圍的最小改變。因此,每個被編程的頁僅售在其更高側(cè)的頁的干擾并且通過此編程序列將WL-WL Yupin效應(yīng)有效降低了一半。在其中存儲器單元的每個物理頁是多狀態(tài)的并且得到的多個邏輯數(shù)據(jù)頁在不同的遍中被編程的情況下,序列更少直接向前。圖IOA例示了具有2位存儲器單元(D2)并且其頁按最佳序列被編程以便最小化相鄰字線上的存儲器單元之間的Yupin效應(yīng)的存儲器的例子。為了方便,進(jìn)行標(biāo)記使得物理頁P0、P1、P2、……分別存在于字線WL0、WL1、WL2、……上。對于2位的存儲器,每個物理頁具有與其相關(guān)聯(lián)的兩個邏輯頁,即低位和高位邏輯頁,每個邏輯頁具有二進(jìn)制數(shù)據(jù)。通常,具體邏輯頁由LP (WL#. logical_page#)給出。例如,WO上的PO的低位和高位頁將分別被標(biāo)記為LP (O. O)和LP (O. I),并且WL2上的顯影頁將被標(biāo)記為LP (2. O)和LP (2.1)。實質(zhì)上,邏輯頁的編程將遵循序列η以便被編程的當(dāng)前頁將看到在其被編程之后在其環(huán)境周圍的最小改變。在此情況下,在從底部到頂部的一個一貫方向上再次遞增地移動將幫助消除來自一側(cè)的干擾。此外,因為每個物理頁可以具有兩遍編程,所以隨著編程向上移動物理頁,當(dāng)前高位頁在其相鄰低位頁已被編程之后將更好地被編程,使得當(dāng)編程當(dāng)前高位頁時將解決低位頁的干擾影響。因此,如果編程從LP (O. O)開始,則序列將如以下編程步驟順序所標(biāo)記的那樣S1、S2、S3、S4、S5、……Sn、……,這分別指向LP (0.0)、LP(L0)、LP (0.1)、LP (2.0)、LP (L1)、LP (3.0)、LP (2. I)......圖IOB例示對于圖IOA的2位存儲器的編程順序的另一視圖。在此視圖中,可以看出,編程步驟順序在交替地在兩個編程遍即較低遍和較高遍之間穿梭時,沿著穿過表中的字線的一系列對角Z型路徑。在US7046548中已經(jīng)公開了類似的多遍編程技術(shù),其全部公開通過參考合并于·此。圖IlA例示其中每單元頁的三位可編程到每個字線中的具有3位存儲器單元(D3)的存儲器的例子。例如,諸如WL5的字線鏈接到被并行編程和讀取的一組3位單元。代替像圖IOA中那樣利用兩個邏輯頁對每個字線編程,D3存儲器利用三個邏輯頁對每個字線編程。例如,可以利用由LP (5. 0)、LP (5. 1)、LP (5. 2)給出的三個I位邏輯頁對WL5編程。圖IlB例示具有3位存儲器單元(D3)并且其頁按最佳序列被編程以便最小化相鄰字線上的存儲器單元之間的Yupin效應(yīng)的存儲器的例子。編程通過按預(yù)定的非依次的順序行進(jìn)而步經(jīng)各字線。為了進(jìn)一步最小化位線之間的Yupin效應(yīng),可以通過圖9所示的優(yōu)選模糊-精細(xì)多遍編程技術(shù)將三個邏輯也編程到WL5上。則三種不同類型的三遍將是較低遍;模糊遍;以及精細(xì)遍。將看出,與給定字線相關(guān)聯(lián)的邏輯頁未在連續(xù)的步驟中編程。換句話說,三種類型的編程遍未被相繼應(yīng)用于相同字線。此外,如之前結(jié)合圖9所述,模糊-精細(xì)多遍編程要求來自所有三頁的數(shù)據(jù)作為模糊遍和精細(xì)遍兩者的編程目標(biāo)數(shù)據(jù)。圖IlC例示對于圖IlB的3位存儲器的編程順序的另一視圖。在此視圖中,可以在循環(huán)經(jīng)過三種類型的編程遍較低;模糊;以及精細(xì)時通過穿過該視圖的表的字線的一系列對角Z型路徑來構(gòu)造編程各個邏輯頁的步驟順序。Dl和D3之間的地址映射為了更好的讀取性能,在D3中的每個字線上的每三個一組的邏輯頁應(yīng)該按主機數(shù)據(jù)地址的依次順序被存儲。以此方式,當(dāng)主機從D3讀回時,其可以對具有相繼地址的所有三個邏輯頁的字線進(jìn)行單個讀取,并且無需低效地讀取來自一個字線的單個邏輯頁以及來自另一字線的另一單個邏輯頁。用于最小化WL-WL Yupin效應(yīng)的圖IlB和圖IlC所示的非依次的字線編程順序意味著當(dāng)執(zhí)行每個編程步驟時必須可獲得適當(dāng)?shù)木幊棠繕?biāo)數(shù)據(jù)。為了使主機地址在D3中的每個字線中排隊,同樣在Dl中分級的適當(dāng)?shù)脑错摫仨氃趫?zhí)行每個步驟之前被加載到編程電路的編程鎖存器中。圖12A例示依次的主機地址中的頁的優(yōu)選排序的例子。這通常是主機將在讀取中請求頁的順序。
圖12B例示D3存儲器中的頁的優(yōu)選存儲順序。例如,具有主機地址HO、HI、H2的頁被存儲為字線WLO中的較低、中間和較高邏輯頁,頁H3、H4、H5類似地被存儲在WLl中,等
坐寸ο如稍后將結(jié)合圖14描述的,源頁在被用作編程到D3中的編程面板數(shù)據(jù)之前在存儲器的二進(jìn)制部分Dl中被分級。因此,物理到物理Dl到D3映射被用于將源頁在Dl中的位置與其被編程在D3中的位置相聯(lián)系。在優(yōu)選實現(xiàn)方式中,Dl中的頁還被加擾以便確保在存儲器單元的陣列之間的平均電荷密度。這避免了不規(guī)則的浮置柵極與浮置柵極耦合。在芯片上加擾Dl頁的例子是反轉(zhuǎn)或者不反轉(zhuǎn)位值,作為其Dl物理地址的函數(shù)。加擾的Dl頁然后根據(jù)Dl到D3映射被編程到D3中。一旦Dl地址已知,相反映射將使得讀取的頁被解擾。
通過錯誤校IH碼(“ECC”)的錯誤檢測和校IH快閃存儲器易出現(xiàn)錯誤。為了確保無錯誤的數(shù)據(jù),實現(xiàn)錯誤校正碼(“ECC”)以校正錯誤。圖13A示意性例示包含ECC字段的數(shù)據(jù)頁。如結(jié)合圖4和圖6A所述,存儲器單元的物理頁依靠并行操作的相應(yīng)頁的感測模塊而被并行編程和讀取。當(dāng)每個存儲器單元存儲多位數(shù)據(jù)時,將存在與字線上的每個物理頁相關(guān)聯(lián)的多個數(shù)據(jù)頁。數(shù)據(jù)頁70’包括用戶部分72’和系統(tǒng)部分74’。用戶部分72’用于存儲用戶數(shù)據(jù)。系統(tǒng)部分74’通常由存儲器系統(tǒng)使用來存儲系統(tǒng)數(shù)據(jù)。包括在系統(tǒng)數(shù)據(jù)中的是ECC。為數(shù)據(jù)頁計算ECC。通常,由控制器102中的ECC處理器62 (見圖I)計算ECC。在一些實施例中,當(dāng)數(shù)據(jù)頁大時,可以將其劃分成更小的部分,每部分具有其自己的ECC。在從主機接收到數(shù)據(jù)時,一頁數(shù)據(jù)在控制器102中被分級并且由ECC處理器62計算其ECC。并入了 ECC的數(shù)據(jù)頁然后被寫到存儲器陣列200。通常,當(dāng)讀取數(shù)據(jù)頁時,該數(shù)據(jù)頁被鎖存在數(shù)據(jù)鎖存器430中并且從I/O電路440移除到控制器102。在控制器102處,將數(shù)據(jù)頁的現(xiàn)有ECC與對讀取的數(shù)據(jù)計算的ECC的第二版本相比較。ECC通常包括用于迅速檢測數(shù)據(jù)頁中的任何錯誤的錯誤檢測碼(“EDC”)。如果EDC指示在讀取的數(shù)據(jù)頁中存在任何錯誤,則調(diào)用ECC以校正讀取的數(shù)據(jù)頁中的錯誤位。設(shè)計ECC以校正達(dá)預(yù)定最大數(shù)量的錯誤。在實踐中,在存儲器的壽命中的任意給定時間,ECC可以具有用于校正少于預(yù)定最大數(shù)量的預(yù)定數(shù)量的錯誤的預(yù)算。在Dusija等人與本申請同日提交的題為“NON-VOLATILE MEMORY AND METHODWITH POST-WRITE READ AND ADAPTIVE RE-ffRITE TO MANAGE ERRORS”的美國專利申請中公開了 ECC的錯誤管理,其全部公開通過參考合并于此。圖13B使歷史D3中的頁的可能狀態(tài)的表。如之前所述,設(shè)計ECC來校正頁中的預(yù)定數(shù)量的錯誤。數(shù)據(jù)頁的狀態(tài)可以是以下之一CECC-可由ECC校正。所有3個數(shù)據(jù)頁中的錯誤的數(shù)量可校正,因為其在ECC的能力之內(nèi)。但是,僅在錯誤在預(yù)定閾值以上時數(shù)據(jù)的質(zhì)量才是良好的。UECC-不可由ECC校正。錯誤的數(shù)量超過了 ECC的能力或者盡管仍可由ECC校正但是在預(yù)定閾值以上。數(shù)據(jù)無效。良好的D3意味著字線的所有3個數(shù)據(jù)頁都具有可由ECC校正的并且在預(yù)定閾值以下的錯誤。數(shù)據(jù)有效。
被擦除意味著數(shù)據(jù)頁不大于非擦除狀態(tài)中的預(yù)訂數(shù)量的單元。在編程中止之后存儲器塊中的不確定的數(shù)據(jù)根據(jù)以上描述,在任何部分編程的擦除塊中,使用設(shè)計模糊-精細(xì)以及還有非依次字線編程順序的組合的多遍編程將在任意一個時間導(dǎo)致幾個字線使得少于所有三個邏輯頁被編程。因為模糊-精細(xì)編程要求在數(shù)據(jù)可讀之前所有邏輯頁被編程到字線,因此如果在對塊編程的中間時編程要中止(例如由于電力故障或者非預(yù)期的破壞),則這些部分被編程的字線將是不可讀的。在完成對于字線的前兩遍編程之后,以及在模糊-精細(xì)編程方案中的三遍的任意一個期間的寫中止之后,部分被編程的該字線將以不可校正的ECC (UECC)錯誤讀回。這表·示要在編程片段之間利用動力周期來進(jìn)行部分塊編程,就像沒有告知是否正常完成了中間編程片段或者是否存在由于突然電力損失而引起的寫中止的機制那樣。因此,傳統(tǒng)上,當(dāng)編程中止發(fā)生時,整個塊的數(shù)據(jù)被重寫到新的塊。重寫塊是耗時的。希望編程重新開始能夠在相同塊上從上次停止處繼續(xù)而無需將先前寫入的塊重寫到新的塊。 基本(atomic)與序列矛口編矛呈中l(wèi)h檢測I根據(jù)本發(fā)明的一個方面,提供了在將數(shù)據(jù)從配置用于低位存儲的存儲器的第一部分復(fù)制到配置用于高位存儲的第二部分的存儲器塊中的方法。該方法允許將復(fù)制操作分解為多個分離開的編程片段以便在每個片段之后的重新開始無需對新塊進(jìn)行而是從在上個片段中在塊中最后停止處繼續(xù)。該方法在對每個字線進(jìn)行多遍編程的背景下操作以便完成對在其上的數(shù)據(jù)的多位頁的編程。多遍編程使得僅在完成某個預(yù)定遍之后被編程的數(shù)據(jù)才有效。同時,最佳編程方案具有根據(jù)預(yù)定的非依次順序的對塊中的不同字線的每個編程步驟。這導(dǎo)致每個編程步驟對與上一步驟不同的字線進(jìn)行不同類型的編程遍。如果在當(dāng)前片段中編程在編程步驟之一處偶然終止,則在下一片段中的編程重新開始中可能不能發(fā)現(xiàn)終止步驟塊,因為從幾個相連的步驟讀回的數(shù)據(jù)可能共享相同的識別樣式。該方法規(guī)定稱為“基本寫序列”在于每個片段中的編程序列將在指定類型遍終止。指定類型遍時將使得在下一片段中清楚地確定該終止步驟以便重新開始可以從上一編程步驟繼續(xù)的類型遍。圖14例示適合于實踐本發(fā)明的存儲器的例子。存儲器單元的陣列200 (見圖I)被劃分為第一部分410和第二部分420。第二部分420具有被配置為高密度存儲的存儲器單元,每個單元存儲多位數(shù)據(jù)。第一部分410具有被配置為低密度存儲的存儲器單元,每個單元存儲比第二部分更少的位數(shù)。例如,與第二部分中的3位數(shù)據(jù)相比,第一部分中的存儲器單元被配置為存儲I位數(shù)據(jù)。每單元存儲I位數(shù)據(jù)的第一部分也將被稱為D1,并且每單元存儲3位數(shù)據(jù)的將被稱為D3??紤]到之前的描述,第一部分將以比第二部分寬得多的錯誤余量而工作。因此,第一部分中的存儲器操作將具有比第二部分中更少的錯誤。在一個實施例中,第一部分410或Dl還被劃分為第一部分411和第二部分412。在步驟(1),在主機寫期間,輸入數(shù)據(jù)首先被緩存在第一部分411中或者直接被寫到第二部分412。如果輸入數(shù)據(jù)是片斷(fragment),則其首先被緩存在第一部分中。如果輸入數(shù)據(jù)是一大串的依次的數(shù)據(jù),則其逐頁直接被寫到第二部分412中。在步驟(2),在任何情況下,輸入數(shù)據(jù)最終在第二部分412中結(jié)束,其中寫入的頁被分級到虛擬的Dl塊中,比如塊m. Um. 2和m. 3。在其中每個塊包含來自適當(dāng)定義的一組邏輯地址的數(shù)據(jù)的方案中,虛擬塊可能不對應(yīng)于物理塊,但是仍使得該組邏輯地址分布在幾個物理Dl塊上。在步驟(3),在數(shù)據(jù)正被逐頁寫到Dl中時,當(dāng)三個一組的二進(jìn)制頁處于Dl中時,可以將其復(fù)制到D3中的具有3位單元的單個頁中,這也被稱為從Dl折疊到D3。在虛擬Dl塊m. I、m. 2和m. 3的全部頁被折疊到D2塊m中之后,該D3塊m是完整的。折疊操作優(yōu)選由控制器102中的固件60控制的存儲器進(jìn)行。在主機命令正工作時,此操作優(yōu)選在空閑時段中在前臺進(jìn)行。配置有Dl和D3部分的存儲器也公開在與本申請同日提交的GOTobets等人的題為“MAINTAINING UPDATES OF MULTI-LEVEL NON-VOLATILE MEMORY IN BINARYNON-VOLATILE MEMORY”的美國申請中,其全部公開通過參考合并于此。因為每個主機命令中的空閑時段可能不足夠完成折疊操作,希望將折疊操作分解 為更小的片段,每個片段能夠在主機命令的空閑時段內(nèi)完成。基本程序序列特征允許將折疊劃分為更小的片段,同時能夠在下一片段中從相同塊中的上一編程步驟重新開始。當(dāng)實現(xiàn)3遍(第一,模糊,精細(xì))編程以用每單元頁3位編程D3中的每個字線時,基本寫序列將終止于指定類型遍的每個編程片段的編程步驟。預(yù)定該指定類型以允許在隨后的片斷中可識別該終止程序步驟。圖15例示圖IlB的直到SlO的編程步驟。具體地,從S7到SlO的編程步驟如下S7-對WL3進(jìn)行較低遍編程;S8-對WL2進(jìn)行模糊遍編程;S9-對WLl進(jìn)行精細(xì)遍編程;SlO-對WL4進(jìn)行另一較低遍編程。圖16A和16B列出在編程步驟S7-S10的各個接合處的寫中止的影響。這是在實現(xiàn)3遍模糊-精細(xì)編程和非依次字線順序特征時。編程步驟S7到S9列出在圖16A中的表格的第一行。編程步驟SlO列出在圖16B中的表格的第一行。與每個步驟一起的是進(jìn)行的編程遍,如圖15所不。在每個編程步驟期間,中斷或者寫中止(“WA”)可以發(fā)生在每種類型遍的四處地點的任意一處“開始附近”、“在中間”、“結(jié)尾附近”以及“完成”,如圖16A和16B中的表格中的第二行(事件)中列出的。如之前所述,利用模糊-精細(xì)3遍編程,僅可以在精細(xì)遍完成之后從字線讀取數(shù)據(jù)。因此,如圖16A中所述,在“較低,S7”列下,即使完成了步驟S7中的較低遍的編程時,WL3、WL2和WLl都丟失至少一遍。因此,如果在下一片段的重新開始中讀回來自這些字線的數(shù)據(jù),則它們將得到無效數(shù)據(jù),因為它們不可由ECC校正(UECC)(見圖13)。具有所有三遍的唯一字線是WL0,因此其將得到如由“良好D3”所示的良好數(shù)據(jù)。編程步驟S7還未訪問WL5,因此其仍處于被擦除狀態(tài)。從擦出的字線往回掃描,得到對于一組字線的ECC簽名或者樣式440,如被擦除、UECC、UECC、UECC、良好的D3。因此,如果在步驟S7的較低遍完成之后發(fā)生寫中止,則將在塊中的被擦除字線讀回一組字線的數(shù)據(jù)之后檢測到ECC簽名440,并且數(shù)據(jù)將無效。通過相同的分析,對于編程步驟S8 (模糊遍)中的所有寫中斷事件的ECC簽名也將是ECC簽名440,并且數(shù)據(jù)無效。通過相同的分析,字線WLl將僅在編程步驟S9完成(最后列)之后得到其三種類型遍。在該情況下,WLl現(xiàn)在將得到如由“良好D3”所示的有效數(shù)據(jù)。從被擦除字線往回掃描,得到對于一組字線的ECC簽名或樣式440.如被擦除、UECC、UECC、良好D3。因此,如果在步驟S9的精細(xì)遍的完成之后發(fā)生寫中斷,則將在從塊中的被擦除字線讀回一組字線的數(shù)據(jù)之后檢測到ECC簽名450。具有良好數(shù)據(jù)的字線(例如WLl)離開被擦除字線WL4三條字線遠(yuǎn),并且WLl上的數(shù)據(jù)將有效。根據(jù)以上描述,當(dāng)從塊中的被擦除和被編程字線之間的邊界往回掃描一組字線時,將存在對于該組的兩個可能的ECC簽名。簽名440指示數(shù)據(jù)無效并且在較低遍、粗略遍或甚至精細(xì)遍的甚至一部分期間可能已經(jīng)發(fā)生寫中斷。但是,有效數(shù)據(jù)簽名450僅在精細(xì)遍的完成之后在之如發(fā)生與中斷時才出現(xiàn)。存在具有簽名450的幾個不確定性。一個是這可能還意味著中斷可能發(fā)生在步驟 S9中的精細(xì)遍的附近。在該情況下,精細(xì)遍幾乎完成但是不是完全并且其引起的任何錯誤都可由ECC校正。因此數(shù)據(jù)有效,但以消耗更多ECC位為成本。在優(yōu)選實施例中,可以通過使用讀取分界點的更嚴(yán)格的設(shè)置(更小的閾值)和/或監(jiān)視即使可由ECC校正、錯誤位的數(shù)量是否已經(jīng)超過預(yù)定閾值來消除此不確定性。圖16B是圖16A的對于編程步驟SlO的繼續(xù)。其例示了具有簽名450的另一不確定性,其也可能意味著可能在精細(xì)遍之后的下一步驟中發(fā)生了寫中斷。如步驟SlO中所示,如果在下一較低遍的開始附近已經(jīng)發(fā)生了寫中斷,則出現(xiàn)相同的簽名450。這意味著SlO已經(jīng)前進(jìn)了一點較低遍編程。但是,這無關(guān)緊要,因為如果S9被識別為是最后的編程步驟,則下一重新開始將在SlO恢復(fù),并將繼續(xù)完成未完成的較低遍編程?;揪幊绦蛄械囊粋€實施例將具有終止于精細(xì)遍的編程序列。如上所述,這確保在隨后的編程段中,可以識別正確的編程步驟以便從其重新開始。如上所述,可以通過簽名相對于被編程和被擦除之間的邊界的位置來識別具有良好數(shù)據(jù)的第一字線。例如,在此情況下,發(fā)現(xiàn)第一良好D3時WL1,并且根據(jù)圖15的表格,可以確定最后的編程步驟是S9。因此,在下一編程片段中,可以通過從SlO開始來恢復(fù)對該塊的編程?;緦懶蛄械牧硪粌?yōu)選實施例將終止于第一遍。如果存儲器支持從正常讀取的分界310的替換分界310’(見圖9)用于讀取就在較低遍之后的較低頁數(shù)據(jù),則這是實用的。圖17A和17B也列出在編程步驟S7-S10的各個接合處的寫異常的影響。這是在實現(xiàn)3遍模糊-精細(xì)編程和非依次字線順序特征時。與圖16A和16B的不同之處是,存儲器支持從正常讀取的替換分界310’,由此,允許在較低遍之后立即讀取較低頁數(shù)據(jù)。分析類似于對圖16A和16B的分析。在此情況下,從被擦除字線往回掃描,作為被擦除、良好LP、良好LP、UECC、良好D3的對于一組字線的ECC簽名或樣式460可以用于識別較低遍的完成?!傲己肔P”表示較低頁數(shù)據(jù)有效。具體地,簽名460特征在于在擦除字線之后的兩條字線得到有效的較低頁數(shù)據(jù)。該簽名460僅在較低遍已經(jīng)完成之后或者就在完成之前或之后存在編程中斷時。這可以在圖17A中的S7、在“完成”下的較低遍以及S8、“在開始附近中斷”以及圖17B中的S10、較低遍、“在結(jié)尾附近中斷”中看出。換句話說,檢測到簽名460意味著在三個可能的結(jié)合處的任意一個處可能已經(jīng)發(fā)生寫中斷。但是,實際上,終端可以被認(rèn)為就在較低遍的完成時,因為其他兩種不確定性具有很小的實際后果。這是因為,對于就在較低遍的完成之前的接合處,較低頁數(shù)據(jù)(LP)接近于完全被編程??赡艿玫降娜魏五e誤都可以由ECC校正。因此,LP數(shù)據(jù)有效,但是以消耗稍微更多的ECC位為代價。在優(yōu)選實施例中,可以通過使用讀取分界點的更嚴(yán)格的設(shè)置(更小的閾值)和/或監(jiān)視即使可由ECC校正、錯誤位的數(shù)量是否已經(jīng)超過預(yù)定閾值來消除此不確定性。對于就在較低遍的完成之后的接合處,已經(jīng)有一點進(jìn)入到模糊遍的開始。如果編程步驟稍后在較低遍之后重新開始,則下一模糊遍中的數(shù)據(jù)將具有完成被編程的另一機
八
O在上一片斷中停止編程之后,在下一片段中識別在上一片斷中最后進(jìn)行的編程步驟,并且通過從該識別的最后編程步驟繼續(xù)來重新開始該編程?!?br>
圖18是例示本發(fā)明的基本編程序列的流程圖。步驟500 :提供具有被組織成塊的存儲器單元的陣列的非易失性存儲器,其中每個塊的存儲器單元可一起擦除并且可由多條字線訪問,字線的一部分每個具有通過多種類型的編程遍的集合可用多位數(shù)據(jù)編程的一頁單元。步驟510 :通過逐步編程到塊中的一組字線而將數(shù)據(jù)編程到該塊中。步驟520 :將編程分割為多個編程片段,每個片段具有終止于具有在該集合之間的指定類型的編程遍的最后編程步驟,以便在下一片段中可識別該最后編程步驟。根據(jù)本發(fā)明的另一方面,通過以下識別在編程最后停止之前進(jìn)行的最后編程步驟(1)查找塊中的被編程和被擦除字線之間的邊界;(2)對于具有預(yù)定ECC簽名的一組字線,從該邊界朝向被編程字線往回掃描,以識別在對其進(jìn)行基本寫入之后該最后編程步驟停止在的字線。依靠識別的字線和基本寫序列的指定的結(jié)尾遍,可以識別最后編程步驟用于基于其重新開始。圖19是例示從先前編程片段發(fā)現(xiàn)最后編程步驟的流程圖。步驟600 :提供具有被組織成塊的存儲器單元的陣列的非易失性存儲器,其中每個塊的存儲器單元可一起被擦除并且可由多條字線訪問,字線的一部分每個具有通過多種類型的編程遍的集合可用多位數(shù)據(jù)編程的一頁單元。步驟602 :通過一系列分離開的編程片段將數(shù)據(jù)編程到塊中。步驟610 :對在每遍編程期間編程的數(shù)據(jù)位提供通過ECC的錯誤校正。步驟620 :識別當(dāng)前編程片段中的塊中的被編程和被擦除字線之間的邊界。優(yōu)選通過二進(jìn)制搜索來查找該邊界。優(yōu)選讀取較高頁,因為其具有就在被擦除狀態(tài)以上的較低閾值330 (見圖9)。步驟630 :從該邊界起在一組被編程字線中檢測指示結(jié)束的上一編程片段中的最后編程遍是否是指定類型的編程遍以及該最后編程遍對哪一字線起作用的預(yù)定ECC簽名。要掃描的每條字線將被檢測為“UECC”或者具有良好數(shù)據(jù)。優(yōu)選通過讀取中間頁來進(jìn)行初始檢測(理論上,較高頁將是最佳的,但是如下所述,當(dāng)讀取僅具有第一遍的字線上的較高頁時,存在CECC的可能性)。在對于D3的例子中,當(dāng)基本寫序列終止于精細(xì)遍時,如圖16A和圖16B所示,檢測僅需在兩個ECC簽名440和450之間區(qū)分。差別是,ECC簽名440 (寫中斷)具有展現(xiàn)出“UECC”的來自被擦除的第三字線,而ECC簽名450 (終止于精細(xì)遍的完整基本寫入)具有對所有三個邏輯頁展現(xiàn)出良好數(shù)據(jù)“良好D3”的第三字線。因此,在此情況下的迅速檢測很容易查找在邊界處的被擦除字線,從該處來到第三被編程字線并且讀取并檢查以查看其ECC是“UECC”(寫中斷)還是“良好D3”(完整的基本寫入)。優(yōu)選通過在讀取閾值的更嚴(yán)格的集合下進(jìn)行讀取來進(jìn)行“良好D3”的檢測。在讀取之前,利用ECC檢查數(shù)據(jù)。檢查所有三個(較低、中間和較高)頁。步驟640 :基于指定遍類型和受該遍的作用的字線來識別上一編程片段中的最后編程步驟。為了例示和描述的目的已經(jīng)給出了本發(fā)明的以上詳細(xì)描述。不意圖詳盡或者將本發(fā)明限制到所公開的精確形式??紤]到以上教導(dǎo),許多修改和變更是可能的。選擇描述的實施例以便最佳得說明本發(fā)明的原理及其實際應(yīng)用,由此使得本領(lǐng)域技術(shù)人員能夠在各個實施例中并利用適合于預(yù)期的具體使用的各種修改最佳地利用本發(fā)明。意圖本發(fā)明的范圍 由附于此的權(quán)利要求定義。
權(quán)利要求
1.一種在非易失性存儲器中將數(shù)據(jù)編程到塊中的方法,該非易失性存儲器具有被組織成塊的存儲器單元的陣列,其中每個塊的存儲器單元可一起被擦除并可由多條字線訪問,字線的一部分每個具有通過多種類型的編程遍的集合可用多位數(shù)據(jù)編程的一頁單元,該方法包括 通過逐步對塊中的一組字線編程將數(shù)據(jù)編程到該塊中;以及 將該編程分割為多個編程片段,每個片段具有終止于具有在該集合之中的指定類型的編程遍的終止編程步驟的編程步驟,以便可在下一片段中發(fā)現(xiàn)該終止編程步驟。
2.如權(quán)利要求I的方法,其中在該編程遍的集合中存在三遍。
3.如權(quán)利要求I的方法,其中所述編程具有根據(jù)預(yù)定的非依次順序在該組之中的不同字線處的并且操作與前一步驟不同的編程遍的每個步驟。
4.如權(quán)利要求I的方法,其中所述編程是內(nèi)部存儲器操作的部分。·
5.如權(quán)利要求I的方法,其中 該存儲器在來自主機的命令之下操作;以及 每個編程片段可在執(zhí)行主機命令時的空閑時段內(nèi)執(zhí)行。
6.一種在非易失性存儲器中識別上一編程片段中的最后編程步驟的方法,該非易失性存儲器具有被組織成塊的存儲器單元的陣列,其中每個塊的存儲器單元可一起被擦除并可由多條字線訪問,字線的一部分每個具有通過多種類型的編程遍的集合可用多位數(shù)據(jù)編程的一頁單元,對塊的編程操作被分割為一系列分離的編程片段,包括 提供對于被編程到字線上的每組存儲器單元的數(shù)據(jù)的錯誤檢驗; 識別當(dāng)前編程片段中的塊中的被編程和被擦除字線之間的邊界; 從該邊界起在一組被編程字線中檢測指示上一編程片段中的最后編程遍是指定類型的編程遍以及該編程遍對哪條字線起作用的預(yù)定ECC簽名;以及 基于該指定的編程遍和受該最后編程遍的作用的字線來識別上一編程片段中的最后編程步驟。
7.如權(quán)利要求6的方法,其中 所述識別塊中的被編程和被擦除字線之間的邊界包括二進(jìn)制搜索該塊。
8.如權(quán)利要求6的方法,其中 編程操作包括根據(jù)預(yù)定的非依次順序?qū)K中的字線操作的一系列編程步驟。
9.如權(quán)利要求6的方法,其中 每個字線可用三個每單元I位的數(shù)據(jù)頁編程。
10.如權(quán)利要求-9的任意一項的方法,其中該非易失性存儲器是快閃存儲器。
11.一種非易失性存儲器,包括 被組織成塊的存儲器單元的陣列,其中每個塊的存儲器單元可一起被擦除并且可由多條字線訪問; 字線的一部分每個具有通過多種類型的編程遍的集合可用多位數(shù)據(jù)編程的一頁單元; 控制器,用于操作編程操作,所述編程操作還包括 通過逐步編程到塊中的一組字線將數(shù)據(jù)編程到該塊中;以及 將該編程分割為多個編程片段,每個片段具有終止于具有在該集合之中的指定類型的編程遍的終止編程步驟的編程步驟,以便可在下一片段中發(fā)現(xiàn)該終止編程步驟。
12.如權(quán)利要求11的非易失性存儲器,其中在該編程遍的集合中存在三遍。
13.如權(quán)利要求11的非易失性存儲器,其中所述編程具有根據(jù)預(yù)定的非依次順序在該組之中的不同字線處的并且操作與前一步驟不同的編程遍的每個步驟。
14.如權(quán)利要求11的非易失性存儲器,其中所述編程時內(nèi)部存儲器操作的部分。
15.如權(quán)利要求11的非易失性存儲器,其中 該存儲器在來自主機的命令之下操作;以及 每個編程片段可在執(zhí)行主機命令時的空閑時段內(nèi)執(zhí)行。
16.—種非易失性存儲器,包括 被組織成塊的存儲器單元的陣列,其中每個塊的存儲器單元可一起被擦除并且可由多條字線訪問; 字線的一部分每個具有通過多種類型的編程遍的集合可用多位數(shù)據(jù)編程的一頁單元; 控制器,用于 控制對塊的編程操作,該編程操作被分割為一系列分離的編程片段; 提供對于被編程到字線上的每組存儲器單元的數(shù)據(jù)的錯誤檢驗; 識別當(dāng)前編程片段中的塊中的被編程和被擦除字線之間的邊界; 從該邊界起在一組被編程字線中檢測指示上一編程片段中的最后編程遍是指定類型的編程遍以及該編程遍對哪條字線起作用的預(yù)定ECC簽名;以及 基于該指定的編程遍和受該最后編程遍的作用的字線來識別上一編程片段中的最后編程步驟。
17.如權(quán)利要求16的非易失性存儲器,其中 所述識別塊中的被編程和被擦除字線之間的邊界包括二進(jìn)制搜索該塊。
18.如權(quán)利要求16的非易失性存儲器,其中 編程操作包括根據(jù)預(yù)定的非依次順序?qū)K中的字線操作的一系列編程步驟。
19.如權(quán)利要求16的非易失性存儲器,其中 每個字線可用三個每單元I位的數(shù)據(jù)頁編程。
20.如權(quán)利要求11-19的任意一項的非易失性存儲器,其中該非易失性存儲器是快閃存儲器。
全文摘要
非易失性存儲器中的編程操作在預(yù)定接合處被分割為更小的片段用于在不同時間執(zhí)行。預(yù)定接合處使得當(dāng)在下一片段中重新開始操作時它們允許明確識別以便操作可以繼續(xù)而無需從該操作的最開始重新開始。這通過要求每個片段的編程序列是基本的、即僅在預(yù)定類型的編程步驟處終止而實現(xiàn)。在下一片段中,通過檢測在一組編程的字線之間的ECC錯誤的預(yù)定樣式來識別終止編程步驟。
文檔編號G11C16/10GK102918599SQ201080064313
公開日2013年2月6日 申請日期2010年12月16日 優(yōu)先權(quán)日2009年12月18日
發(fā)明者S.A.戈羅比茨, G.A.達(dá)西杰 申請人:桑迪士克科技股份有限公司