日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

非易失性存儲器的數(shù)據(jù)刷新的制作方法

文檔序號:6768383閱讀:171來源:國知局
專利名稱:非易失性存儲器的數(shù)據(jù)刷新的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及非易失性存儲器技術(shù)。
背景技術(shù)
半導(dǎo)體存儲器由于用于各種電子設(shè)備中而變得更為流行。例如,非易失性半導(dǎo)體存儲器用于個人導(dǎo)航設(shè)備、蜂窩電話、數(shù)碼相機、個人數(shù)字助理、移動計算設(shè)備、非移動計算設(shè)備和其它設(shè)備中。電可擦除可編程只讀存儲器(EEPROM)和閃速存儲器是其中最流行的非易失性半導(dǎo)體存儲器。EEPROM和閃速存儲器兩者皆利用位于半導(dǎo)體襯底中的溝道區(qū)域之上并與之隔離的浮置柵極。該浮置柵極和溝道區(qū)域位于源區(qū)與漏區(qū)之間??刂茤艠O設(shè)在浮置柵極之上且與之隔離。晶體管的閾值電壓受浮置柵極上保持的電荷量控制。也就是說,在晶體管導(dǎo)通以允許其源極與漏極之間傳導(dǎo)之前必須施加至控制柵極的電壓的最小值受浮置柵極上的電荷水平控制。在對EEPROM或閃速存儲器設(shè)備如NAND閃速存儲器設(shè)備編程時,通常對控制柵極施加編程電壓且將比特線接地。來自溝道的電子被注入浮置柵極中。當電子在浮置柵極中累積時,浮置柵極變?yōu)閹ж撾娗掖鎯ζ鲉卧拈撝惦妷荷?,使得存儲器單元處于被編程狀態(tài)。在題為“Source Side Self Boosting Technique for Non-Volatile Memory”的第 6,859,397 號美國專利、題為 “Detecting Over Programmed Memory” 的第 6,917,542 號美國專利和題為“Programming Non-Volatile Memory”的第6,888,758號美國專利中具有更多關(guān)于編程的信息,所引用的這三個專利通過引用而全部并入本文。在很多情況下,編程電壓作為一系列脈沖(稱為編程脈沖)施加至控制柵極,這些脈沖的幅值隨著每個脈沖而增加。在編程脈沖之間,執(zhí)行一個或多個驗證操作的集合,以確定處于編程中的一個或多個存儲器單元是否已達到其目標電平。如果存儲器單元已達到其目標電平,則對該存儲器單元停止編程。如果存儲器單元未達到其目標電平,則對該存儲器單元繼續(xù)編程。一些EEPROM和閃速存儲器設(shè)備具有用于存儲兩個電荷范圍的浮置柵極,因此,該存儲器單元可在兩個狀態(tài)(被擦除狀態(tài)和被編程狀態(tài))之間被進行編程/擦除。有時將這樣的存儲器設(shè)備稱為二進制存儲器設(shè)備。通過標識多個不同的有效閾值電壓(Vt)分布(或數(shù)據(jù)狀態(tài)),多狀態(tài)存儲器設(shè)備關(guān)于每個存儲器單元存儲多個數(shù)據(jù)比特。每個不同的Vt分布對應(yīng)于關(guān)于存儲器設(shè)備中所編碼的數(shù)據(jù)比特集合的預(yù)定值。例如,存儲兩個數(shù)據(jù)比特的存儲器單元使用四個有效Vt分布。存儲三個數(shù)據(jù)比特的存儲器單元使用八個有效Vt分布。在非易失性存儲器元件已被編程后,重要的是能夠高度可靠地讀回其編程狀態(tài)。 但是,由于多種因素,包括噪聲以及設(shè)備往往隨著時間而趨向于電中性,所以感測到的編程狀態(tài)有時可能與預(yù)期的編程狀態(tài)不同。應(yīng)當注意,諸如溫度等環(huán)境因素會影響編程狀態(tài)變化的速率。例如,暴露于高溫下可能導(dǎo)致存儲器單元很快變?yōu)殡娭行浴?br> 因此,在讀取非易失性存儲器時可能遇到錯誤的或遭破壞的數(shù)據(jù)比特。通常,采用某種形式的檢錯和糾錯算法(“糾錯算法”)來檢驗和糾正遭破壞的數(shù)據(jù)比特。一種常用的糾錯算法是在寫入過程中存儲附加的奇偶校驗位來將一組數(shù)據(jù)比特的奇偶性設(shè)置為所需的邏輯電平。附加的奇偶校驗位有時稱為糾錯碼(ECC)。在讀取過程中,糾錯算法通過計算該組數(shù)據(jù)比特的奇偶性來對奇偶校驗位解碼以檢測遭破壞的數(shù)據(jù)。該糾錯算法糾正未遭嚴重破壞的數(shù)據(jù)。在一些實現(xiàn)中,遭破壞的數(shù)據(jù)越多,糾錯算法用于糾正數(shù)據(jù)的時間越久。為防止數(shù)據(jù)遭破壞,可刷新存儲器單元中的數(shù)據(jù),這使該數(shù)據(jù)恢復(fù)到期望的閾值電壓。存儲器單元塊中數(shù)據(jù)的刷新往往通過以下實現(xiàn)讀取該數(shù)據(jù),糾正由糾錯算法檢測到的錯誤,以及將該數(shù)據(jù)寫入到不同的塊中,這作為包括損耗均衡在內(nèi)的方案的一部分。但是,如果需要的話,數(shù)據(jù)可被寫入相同的塊中。然而,數(shù)據(jù)刷新太過頻繁會使存儲器單元負擔過重。而且,數(shù)據(jù)刷新可能干擾用戶自身對存儲器的訪問。因此,一方面,如果數(shù)據(jù)刷新的頻率不夠,則數(shù)據(jù)可能丟失或者由于糾錯算法需花更長時間來糾正數(shù)據(jù)而可能導(dǎo)致存儲器訪問緩慢。另一方面,如果數(shù)據(jù)刷新太頻繁,則存儲器設(shè)備可能負擔太重或者用戶存儲器訪問可能受阻。而且,在存儲器設(shè)備可能受到不同的環(huán)境條件(例如大范圍的溫度)時,確定何時刷新數(shù)據(jù)尤其具有挑戰(zhàn)性。例如,存儲器設(shè)備可能嵌入個人導(dǎo)航設(shè)備中,該導(dǎo)航設(shè)備可能留在??康钠囍?。在夏日,車內(nèi)溫度可能上升至極高的溫度。在另一方面,存儲器設(shè)備可能經(jīng)過很長的一段時間而沒有被置于高溫下。因此,非常難以預(yù)計環(huán)境條件例如溫度會對數(shù)據(jù)保持起的作用。

發(fā)明內(nèi)容
本發(fā)明公開的技術(shù)用于刷新非易失性存儲器設(shè)備中的數(shù)據(jù),該刷新足夠頻繁,足以克服錯誤的或遭破壞的數(shù)據(jù)比特,但不會太頻繁而干擾存儲器存取或?qū)е麓鎯ζ鲉卧摀^重。該技術(shù)非常適合可能被置于各種環(huán)境條件(如大范圍的溫度)下的存儲器設(shè)備。一個實施例包括基于設(shè)備中第一組非易失性存儲器元件中的數(shù)據(jù)的條件,確定執(zhí)行對該第一組非易失性存儲器元件中所存儲數(shù)據(jù)的刷新;根據(jù)相對于最近一次對所述第一組非易失性存儲器元件進行了編程的時間于何時對該設(shè)備中的第二組非易失性存儲器元件進行了最近一次編程,確定應(yīng)當對該第二組非易失性存儲器元件進行刷新程序;以及對所述第二組非易失性存儲器元件執(zhí)行所述刷新程序。一個實施例包括將數(shù)據(jù)寫入多狀態(tài)非易失性存儲器元件的集合;基于該集合中的第一組非易失性存儲器元件中的一個或多個非易失性存儲器元件的條件,確定是否應(yīng)當執(zhí)行對該第一組非易失性存儲器元件中所存儲數(shù)據(jù)的刷新;如果確定出應(yīng)當刷新該第一組中存儲的數(shù)據(jù),則確定該集合中的那些非易失性存儲器元件在第一組非易失性存儲器元件之前被寫入;以及確定在第一組之前被寫入的非易失性存儲器元件應(yīng)當進行刷新程序。一個實施例為一種用于操作多狀態(tài)存儲器設(shè)備的方法,該存儲器設(shè)備被組織成為非易失性存儲器元件的塊。該方法包括確定所述塊中的第一塊中的一個或多個非易失性存儲器元件存在數(shù)據(jù)完整性問題;確定該設(shè)備中的哪些塊在該第一塊之前被寫入;以及在沒有確定在所述第一塊之前被寫入的塊中的非易失性存儲器元件存在數(shù)據(jù)完整性問題的情況下,刷新在所述第一塊和在該第一塊之前被寫入的其它塊中所存儲的數(shù)據(jù)。
一種示例性實現(xiàn)包括非易失性存儲器元件的集合,以及與該非易失性存儲器元件的集合通信的一個或多個管理電路。所述一個或多個管理電路執(zhí)行上述處理。


圖1是NAND串的俯視圖;圖2是NAND串的等效電路圖;圖3是非易失性存儲器系統(tǒng)的框圖;圖4是示出存儲器陣列的一個實施例的框圖;圖5是示出感測塊的一個實施例的框圖;圖6A示出Vt分布的示例性集合;圖6B示出Vt分布的示例性集合;圖7是其中可嵌入根據(jù)本發(fā)明實施例的存儲器設(shè)備的示例性移動式設(shè)備;圖8示出應(yīng)當刷新數(shù)據(jù)的塊的確定過程的一個實施例;圖9A的流程圖示出存儲器陣列的塊中所存儲數(shù)據(jù)的刷新過程的一個實施例;圖9B的流程圖描述用于對非易失性存儲器進行編程的過程的一個實施例;圖IOA的流程圖示出用于確定塊是否存在數(shù)據(jù)完整性問題的過程的一個實施例;圖IOB示出基于有多少比特需要根據(jù)糾錯算法進行更正來確定是否需要進行數(shù)據(jù)刷新的過程的一個實施例;圖IOC示出基于糾錯算法收斂所需時間來確定是否需要進行數(shù)據(jù)刷新的過程的一個實施例;圖11示出示例性分布函數(shù);圖12示出存儲用于確定是否需要進行數(shù)據(jù)刷新的值的表格的一個實施例;圖13A示出標識出候選塊用于刷新程序的過程的一個實施例;圖13B的流程圖示出用于標識出候選塊用于刷新程序的過程的一個實施例;圖14示出用于標識刷新程序候選塊的序號的管理過程的一個實施例;圖15示出用于選擇刷新程序候選塊的時間戳的管理過程的一個實施例;圖16示出警告用戶采取旨在減輕數(shù)據(jù)保持問題的動作的過程的一個實施例。
具體實施例方式閃速存儲器系統(tǒng)的一個示例使用NAND結(jié)構(gòu),其包括布置串聯(lián)的多個晶體管,夾于兩個選擇柵極之間。所述串聯(lián)的晶體管和所述選擇柵極被稱為NAND串。圖1是示出一個 NAND串的俯視圖。圖2是其等效電路。圖1和圖2中所示的NAND串包括串聯(lián)且夾在第一 (或漏極側(cè))選擇柵極120與第二(或源極側(cè))選擇柵極122之間的四個晶體管100、102、 104和106。選擇柵極120通過比特線接觸126將NAND串與比特線連接。選擇柵極122將 NAND串與源極線128連接。通過將適當?shù)碾妷菏┘拥竭x擇線S⑶控制選擇柵極120。通過將適當?shù)碾妷菏┘拥竭x擇線SGS控制選擇柵極122。晶體管100、102、104和106中的每一個具有控制柵極和浮置柵極。例如,晶體管loo具有控制柵極ioocG和浮置柵極loore。 晶體管102包括控制柵極102CG和浮置柵極102TO。晶體管104包括控制柵極104CG和浮置柵極104TO。晶體管106包括控制柵極106CG和浮置柵極106TO。控制柵極100CG連接
6到字線WL3,控制柵極102CG連接到字線WL2,控制柵極104CG連接到字線WLl,且控制柵極 106CG連接到字線WLO。注意,雖然圖1和圖2示出在NAND串中有四個存儲器單元,但是使用四個存儲器單元僅為示例。NAND串可具有少于四個存儲器單元或多于四個存儲器單元。例如,一些 NAND串會包括八個存儲器單元、16個存儲器單元、32個存儲器單元、64個存儲器單元、128 個存儲器單元,等等。本文的討論并不限于NAND串中任何特定數(shù)量的存儲器單元。使用NAND結(jié)構(gòu)的閃速存儲器系統(tǒng)的典型架構(gòu)可包括若干NAND串。每一 NAND串通過其受選擇線SGS控制的源極選擇柵極而連接至源極線,并且通過其受選擇線SGD控制的漏極選擇柵極而連接至其所關(guān)聯(lián)的比特線。每一比特線以及經(jīng)由比特線接觸部連接到該比特線的相應(yīng)NAND串包括存儲器單元陣列的列。多個NAND串共字比特線。通常,比特線在垂直于字線的方向上在NAND串的頂部走線,并且連接到一個或多個感測放大器。每一存儲器單元可存儲數(shù)據(jù)(模擬或數(shù)字數(shù)據(jù))。當存儲一比特數(shù)字數(shù)據(jù)時,存儲器單元的可能閾值電壓的范圍被劃分為兩個范圍,這兩個范圍被分配給邏輯數(shù)據(jù)“1”和 “0”。在NAND類型閃速存儲器的一個示例中,閾值電壓在存儲器單元被擦除之后是負值,并且定義為邏輯“1”。在編程之后的閾值電壓是正值,并且定義為邏輯“0”。當閾值電壓是負值并且通過將0伏特施加至控制柵極而嘗試讀取時,存儲器單元會導(dǎo)通以指示目前存儲的是邏輯1。當閾值電壓是正值并且通過將0伏特施加至控制柵極而嘗試讀取操作時,存儲器單元不會導(dǎo)通,這指示存儲的是邏輯零。在存儲多個數(shù)據(jù)電平的情況下,可能閾值電壓的范圍劃分為所述數(shù)據(jù)電平的數(shù)目。例如,如果存儲四個電平的信息(兩個比特數(shù)據(jù)),則會有分配給數(shù)據(jù)值“11”、“10”、 “01”和“00”的四個閾值電壓范圍。在NAND類型存儲器的一個示例中,在擦除操作之后的閾值電壓是負值且定義為“11”。正閾值電壓用于數(shù)據(jù)狀態(tài)“10”、“01”和“00”。如果存儲八個電平的信息(或狀態(tài))(例如對于三比特數(shù)據(jù)),則會有分配給數(shù)據(jù)值“000”、“001”、 “010”、“011”、“100”、“101”、“110”、“111”的八個閾值電壓范圍。被編程至存儲器單元中的數(shù)據(jù)與該存儲器單元的閾值電壓電平之間的特定關(guān)系取決于所述單元采用的數(shù)據(jù)編碼方案。例如,第6,222,762號美國專利和第2004/0255090 號美國專利申請公布描述了用于多狀態(tài)閃速存儲器單元的各種數(shù)據(jù)編碼方案,這兩個專利和專利申請皆通過引用整體并入本文。在一個實施例中,使用格雷碼分配方式來將數(shù)據(jù)值分配給閾值電壓范圍,從而如果浮置柵極的閾值電壓錯誤地變?yōu)槠溧徑奈锢頎顟B(tài),則僅會有一個比特受影響。在一些實施例中,數(shù)據(jù)編碼方案可隨不同的字線而不同,數(shù)據(jù)編碼方案可以隨時間而改變,或者可將隨機字線的數(shù)據(jù)比特反轉(zhuǎn)或者隨機化,以降低數(shù)據(jù)模式敏感性甚至存儲器單元上的損耗。在以下美國專利/專利申請中提供了 NAND型閃速存儲器的有關(guān)示例及其操作第 5,570,315號美國專利;第5,774,397號美國專利;第6,046,935號美國專利;第6,456,528 號美國專利;以及美國專利公開NO.US2003/0002348,所有這些專利/專利申請通過引用并入本文。這里的說明也可應(yīng)用于除NAND之外的其它類型的閃速存儲器以及其它類型的非易失性存儲器。除了 NAND閃速存儲器之外,也可以使用其它類型的非易失性存儲器設(shè)備。例如,所謂的TANOS結(jié)構(gòu)(包括硅襯底上的TaN-Al2O3-SiN-SiO2疊層),其本質(zhì)上為利用了氮化物層(而不是浮置柵極)中的電荷捕獲的存儲器單元,也可與本發(fā)明一起使用??捎糜陂W速EEPROM系統(tǒng)中的另一類型的存儲器單元利用非導(dǎo)電介電材料代替導(dǎo)電浮置柵極來以非易失性方式存儲電荷。在Chan等人的文章“A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device”(IEEE Electron Device Letters,卷 EDL-8,第 3 號,1987年3月,第93-95頁)中描述了這種單元。以氧化硅、氮化硅和氧化硅(“0N0”) 形成的三層電介質(zhì)夾在導(dǎo)電的控制柵極與存儲器單元溝道上方的半導(dǎo)電襯底的表面之間。 通過將電子從該單元溝道注入到氮化物中對該單元進行編程,在該氮化物中,電子被捕獲并存儲在有限區(qū)域中。這種存儲的電荷于是以可檢測的方式改變該單元的一部分溝道的閾值電壓。通過將熱空穴注入氮化物中來擦除存儲器單元。此外,參見Nozaki等人著的"A I-Mb EEPROM with M0N0S Memory Cell for Semiconductor Disk Application,“ (IEEE Journal of Solid-State Circuits,卷 26,第 4 號,1991 年 4 月,第 497-501 頁),其描述了為分離柵極式結(jié)構(gòu)的類似存儲器單元,其中,摻雜的多晶硅柵極在存儲器單元溝道的一部分上延伸以形成單獨的選擇晶體管。前述兩篇文章通過引用而全部并入本文。在通過引用并入本文的、由 William D. Brown 禾口 Joe Ε. Brewer 編輯的"Nonvolatile Semiconductor Memory Technology”(IEEE Press,1998年)的第1. 2部分中提到的編程技術(shù)在該部分中也被描述為可應(yīng)用于電介質(zhì)電荷捕獲設(shè)備。也可以使用其它類型的存儲器設(shè)備。圖3示出非易失性存儲器器件210,該存儲器器件210可包括一個或多個存儲器管芯或芯片212。存儲器管芯212包括存儲器單元的(二維或三維)陣列200、控制電路 220以及讀取/寫入電路230A和230B。在一個實施例中,通過各種外圍電路對存儲器陣列 200的存取是以對稱方式(在該陣列的相對兩側(cè))實現(xiàn)的,使得每側(cè)的存取線和電路的密度減少一半。讀取/寫入電路230A和230B包括多個感測塊300,所述感測塊允許并行讀取存儲器單元的頁面或者對其進行編程。存儲器陣列200可經(jīng)由行解碼器240A和240B由字線尋址以及經(jīng)由列解碼器242A和242B由比特線尋址。在典型實施例中,控制器244與一個或多個存儲器管芯212包括在同一存儲器器件210 (例如可移動存儲卡或封裝)中。命令和數(shù)據(jù)經(jīng)由線232在主機與控制器244之間傳輸并且經(jīng)由線234在控制器與一個或多個存儲器管芯212之間傳輸。一種實現(xiàn)可包括多個芯片212??刂齐娐?20與讀取/寫入電路230A和230B協(xié)作,以對存儲器陣列200執(zhí)行存儲器操作??刂齐娐?20包括狀態(tài)機222、片上地址解碼器224和功率控制模塊226。狀態(tài)機222提供存儲器操作的芯片級控制。片上地址解碼器224提供在由主機或存儲器控制器使用的地址與由解碼器240A、240B、242A和242B使用的硬件地址之間轉(zhuǎn)換的地址接口。功率控制模塊226控制在存儲器操作期間供應(yīng)給字線和比特線的功率和電壓。在一個實施例中,功率控制模塊226包括一個或多個電荷泵,所述電荷泵可形成比電源電壓更高的電壓。在一個實施例中,控制電路220、功率控制電路226、解碼器電路224、狀態(tài)機電路 222、解碼器電路242A、解碼器電路242B、解碼器電路240A、解碼器電路240B、讀取/寫入電路230A、讀取/寫入電路230B和/或控制器244中的一個或其任何組合可以被稱為一個或多個管理電路。圖4描述存儲器單元陣列200的示例性結(jié)構(gòu)。在一個實施例中,存儲器單元陣列劃分為M個存儲器單元塊。對于EEPROM系統(tǒng),通常,塊是擦除的單位。也就是說,每個塊包含被一起擦除的最小數(shù)量的存儲器單元。每個塊通常分成數(shù)個頁面。頁面是編程單位。在一行存儲器單元中通常存儲一個或多個數(shù)據(jù)頁面。頁面可存儲一個或多個扇區(qū)。扇區(qū)包括用戶數(shù)據(jù)和開銷數(shù)據(jù)。開銷數(shù)據(jù)通常包括從扇區(qū)的用戶數(shù)據(jù)計算出的糾錯碼(ECC)。當數(shù)據(jù)被編程到陣列中時,控制器的一部分(在下文中描述)計算ECC,并且當數(shù)據(jù)從陣列中被讀取時還對ECC進行檢查?;蛘?,ECC和/或其它開銷數(shù)據(jù)存儲在與其所屬的用戶數(shù)據(jù)不同的頁面或甚至不同的塊中。用戶數(shù)據(jù)扇區(qū)通常是512字節(jié),對應(yīng)于磁盤驅(qū)動器中扇區(qū)的大小。大量的頁面形成塊,例如為從8個頁面直至32、64、128或更多個頁面中的任何數(shù)量。 也可使用不同大小的塊和布置。在另一實施例中,比特線劃分為奇比特線和偶比特線。在奇/偶比特線架構(gòu)中,在一個時間對公共字線上的、連接到奇比特線的存儲器單元進行編程,而在另一時間對公共字線上的、連接到偶比特線的存儲器單元進行編程。圖4示出存儲器陣列200的塊i的更多細節(jié)。塊i包括X+1個比特線和X+1個 NAND串。塊i還包括64個數(shù)據(jù)字線(WL0-WL63)、兩個啞元字線(WL_dO和WL_dl)、漏極側(cè)選擇線(SGD)和源極側(cè)選擇線(SGS)。每一 NAND串的一個端子經(jīng)由漏極選擇柵極(其連接至選擇線SGD)連接至相應(yīng)比特線,而另一端子經(jīng)由源極選擇柵極(其連接至選擇線SGS) 連接至源極線。因為存在64個數(shù)據(jù)字線和兩個啞元字線,所以每一 NAND串包括64個數(shù)據(jù)存儲器單元和兩個啞元存儲器單元。在其它實施例中,NAND串可具有多于或少于64個數(shù)據(jù)存儲器單元和兩個啞元存儲器單元。數(shù)據(jù)存儲器單元可存儲用戶或系統(tǒng)數(shù)據(jù)。啞元存儲器單元通常并不用于存儲用戶或系統(tǒng)數(shù)據(jù)。一些實施例不包括啞元存儲器單元。圖5是單個感測塊300的框圖,該感測塊被分區(qū)為核心部分(稱為感測模塊480) 和公共部分490。在一個實施例中,關(guān)于每一比特線會具有單獨的感測模塊480且關(guān)于多個感測模塊480的集合具有一個公共部分490。在一個示例中,感測塊包括一個公共部分490 和八個感測模塊480。在組中的每個感測模塊將經(jīng)由數(shù)據(jù)總線472與關(guān)聯(lián)的公共部分通信。 請參考美國專利申請公布2006/0140007獲取更多細節(jié),該申請通過引用全部并入本文。感測模塊480包括感測電路470,其確定所連接的比特線中的傳導(dǎo)電流是大于還是小于預(yù)定閾值電平。在一些實施例中,感測模塊480包括通常稱為感測放大器的電路。 感測模塊480還包括比特線鎖存器482,其用于設(shè)置關(guān)于所連接的比特線的電壓條件。例如,比特線鎖存器482中鎖存的預(yù)定狀態(tài)會導(dǎo)致所連接的比特線被拉到指出編程禁止的狀態(tài)(例如Vdd)。公共部分490包括處理器492、數(shù)據(jù)鎖存器494集合和耦合在數(shù)據(jù)鎖存器494集合與數(shù)據(jù)總線420之間的I/O接口 496。處理器492執(zhí)行計算。例如,其功能之一在于,確定感測到的存儲器單元中存儲的數(shù)據(jù),并且將確定的數(shù)據(jù)存儲在數(shù)據(jù)鎖存器集合中。數(shù)據(jù)鎖存器494集合用于在讀取操作期間存儲由處理器492確定的數(shù)據(jù)比特。其還用于在編程操作期間存儲從數(shù)據(jù)總線420導(dǎo)入的數(shù)據(jù)比特。導(dǎo)入的數(shù)據(jù)比特代表要被編程到存儲器中的寫入數(shù)據(jù)。I/O接口 496在數(shù)據(jù)鎖存器494與數(shù)據(jù)總線420之間提供接口。在讀取或感測期間,系統(tǒng)的操作受狀態(tài)機222控制,該狀態(tài)機222控制將不同控制柵極電壓供給尋址到的存儲器單元。隨著遍歷與存儲器所支持的不同存儲器狀態(tài)對應(yīng)的各預(yù)定控制柵極電壓,感測模塊480可在這些電壓之一處跳變,并且將從感測模塊480經(jīng)由總線472向處理器492提供輸出。此時,通過考慮感測模塊的跳變事件以及關(guān)于從狀態(tài)機通過輸入線493施加的控制柵極電壓的信息,處理器492確定所得存儲器狀態(tài)。然后計算存儲器狀態(tài)的二進制編碼并將所得數(shù)據(jù)比特存儲在數(shù)據(jù)鎖存器494中。在核心部分的另一實施例中,比特線鎖存器482具有雙重職責,既作為用于對感測模塊480的輸出進行鎖存的鎖存器,又作為如上所述的比特線鎖存器??梢韵氲剑恍崿F(xiàn)方式可包括多個處理器492。在一個實施例中,每一處理器 492包括輸出線(圖5中未示出),使得每一輸出線是線或(wired-OR)在一起的。在一些實施例中,輸出線在連接到線或的線之前被反轉(zhuǎn)。因為接收該線或的線的狀態(tài)機能夠確定被編程的所有比特何時已達到期望電平,所以這種配置使得能夠在編程驗證處理期間快速確定編程處理何時已完成。例如,當每一比特均已達到其期望電平時,會向線或的線發(fā)送關(guān)于該比特的邏輯0(或數(shù)據(jù)1被反轉(zhuǎn))。當所有比特輸出數(shù)據(jù)0(或反轉(zhuǎn)的數(shù)據(jù)1)時,則狀態(tài)機獲知要終止編程處理。在每一處理器與八個感測模塊通信的實施例中,狀態(tài)機可能(在一些實施例中)需要八次讀取線或的線,或者在處理器492中添加邏輯以累加關(guān)聯(lián)的比特線的結(jié)果,使得狀態(tài)機僅需讀取線或的線一次。在編程或驗證期間,待編程的數(shù)據(jù)來自數(shù)據(jù)總線420并存儲在數(shù)據(jù)鎖存器494集合中。受狀態(tài)機控制的編程操作包括施加至尋址到的存儲器單元的控制柵極的編程電壓脈沖序列(其幅值漸增)。每一編程脈沖后跟隨著用于確定存儲器單元是否已被編程為期望狀態(tài)的驗證處理。處理器492相對于期望的存儲器狀態(tài)來監(jiān)控被驗證的存儲器狀態(tài)。當這二者吻合時,處理器492設(shè)置比特線鎖存器482,從而使得該比特線被拉到指示編程禁止的狀態(tài)。這樣,即使耦合到該比特線的存儲器單元在其控制柵極上受到編程脈沖,也能禁止該單元被進一步編程。在其它實施例中,處理器在初始時加載比特線鎖存器482,且感測電路在驗證處理期間將其設(shè)置為禁止值。數(shù)據(jù)鎖存器棧494包含與感測模塊對應(yīng)的數(shù)據(jù)鎖存器的棧。在一個實施例中,每感測模塊480存在3-5個(或另一數(shù)量)的數(shù)據(jù)鎖存器。在一個實施例中,鎖存器中每個為一比特。在一些實現(xiàn)方式中(但不要求),數(shù)據(jù)鎖存器被實現(xiàn)為移位寄存器,從而其中存儲的并行數(shù)據(jù)被轉(zhuǎn)換為串行數(shù)據(jù)用于數(shù)據(jù)總線420,反之亦然。在一個優(yōu)選實施例中,與m個存儲器單元的讀取/寫入塊對應(yīng)的所有數(shù)據(jù)鎖存器可被鏈接在一起以形成塊移位寄存器, 從而數(shù)據(jù)塊可通過串行傳送而輸入或輸出。具體地說,調(diào)整一排讀取/寫入模塊,從而其數(shù)據(jù)鎖存器集合中的每一個會仿佛它們?yōu)橛糜谡麄€讀取/寫入塊的移位寄存器的一部分那樣將數(shù)據(jù)依次移入或者移出數(shù)據(jù)總線。在(1)第7,196,931 號美國專利 “Non-Volatile Memory And Method With Reduced Source Line Bias Errors", (2)第 7, 023, 736 號美國專利 “Non-Volatile Memory And Method with Improved Sensing”,(3)美國專利申請公布 No. 2005/0169082, (4)第 7,196,928 號美國專禾Ij "Compensating for Coupling During Read Operations of Non-Volatile Memory”和(5)2006年7月20日公布的美國專利申請公布 No. 2006/0158947 "Reference Sense Amplifier For Non-Volatile Memory"
取操作和感測放大器的其它信息。所有這五個剛列出的專利文獻通過引用而全部并入本文。在適當時,在成功編程處理(具有驗證)結(jié)束時,存儲器單元的閾值電壓應(yīng)在被編程的存儲器單元的閾值電壓的一個或多個分布內(nèi),或在被擦除的存儲器單元的閾值電壓的分布內(nèi)。圖6Α示出當每一存儲器單元存儲四個數(shù)據(jù)比特時與存儲器單元陣列的數(shù)據(jù)狀態(tài)對應(yīng)的示例性Vt分布。然而,另外的實施例可關(guān)于每個存儲器單元使用多于四個或少于四個比特的數(shù)據(jù)。圖6A示出與數(shù)據(jù)狀態(tài)0-15對應(yīng)的16個Vt分布。在一個實施例中,狀態(tài) 0中的閾值電壓是負值,而狀態(tài)1-15中的閾值電壓是正值。然而,狀態(tài)1-15中的一個或多個中的閾值電壓可以是負值。在數(shù)據(jù)狀態(tài)0-15中各狀態(tài)之間是用于從存儲器單元讀取數(shù)據(jù)的讀取基準電壓。 例如,圖6A示出數(shù)據(jù)狀態(tài)0與數(shù)據(jù)狀態(tài)1之間的讀取基準電壓Vrl,以及數(shù)據(jù)狀態(tài)1與數(shù)據(jù)狀態(tài)2之間的讀取基準電壓Vr2。通過測試給定存儲器單元的閾值電壓是大于還是小于相應(yīng)的讀取基準電壓,系統(tǒng)能夠確定存儲器單元處于什么狀態(tài)。在每一數(shù)據(jù)狀態(tài)0-15的下邊緣或該下邊緣附近為驗證基準電壓。例如,圖6A示出關(guān)于狀態(tài)1的Vvl和關(guān)于狀態(tài)2的Vv2。當將存儲器單元編程為給定狀態(tài)時,系統(tǒng)會測試這些存儲器單元是否具有大于或等于驗證基準電壓的閾值電壓。圖6B示出由于糾錯算法能夠處理特定百分比的錯誤的存儲器單元,所以與數(shù)據(jù)狀態(tài)0-15對應(yīng)的Vt分布的另一實施例可部分交疊。還應(yīng)當注意,由于通過源極或體偏置產(chǎn)生的襯底效應(yīng)(body effect)被用于將負閾值電壓偏移至可測量的正值范圍中,因此Vt軸可偏離被施加至控制柵極的實際電壓。還需要注意,與所示十六個狀態(tài)的相等的間隔/寬度相反,不同狀態(tài)可具有不同的寬度/間隔,以容忍對數(shù)據(jù)保持損失的不同的敏感度。在一些實施例中,狀態(tài)0和/或15比其它狀態(tài)更寬。圖7示出示例性移動式設(shè)備700,其中嵌入了根據(jù)本發(fā)明實施例的存儲器設(shè)備 210。該示例性設(shè)備700具有全球衛(wèi)星定位(GPQ接收器710,用于接收GPS信息,使其能夠用作個人導(dǎo)航設(shè)備。存儲器設(shè)備210可用于存儲地圖,基于由GPS信息確定的該示例性設(shè)備的位置,處理器720在顯示器702上向用戶顯示該地圖。通常,在用戶于存儲器設(shè)備210中存儲了一套地圖后,則用戶在較長一時間段內(nèi)不需要覆蓋所存儲的地圖。例如,地圖數(shù)據(jù)中的大部分在數(shù)年內(nèi)不會改變。這里描述的實施例確定每隔多久刷新數(shù)據(jù),例如地圖數(shù)據(jù),該刷新足夠頻繁以保護該數(shù)據(jù),但是也不會太頻繁而干擾用戶或使存儲器設(shè)備210負擔過重。該示例性設(shè)備700用作具有嵌入式存儲器設(shè)備210的設(shè)備的一個示例。但是,嵌入式存儲器設(shè)備210可與個人數(shù)字助理、蜂窩電話、 個人媒體播放器等一起使用。圖8示出用于確定存儲器設(shè)備210中的哪個塊應(yīng)該刷新其數(shù)據(jù)的處理800的實施例。通常,該處理800用于其中每個存儲器單元存儲多于一個比特的塊,例如每個存儲器單元存儲四比特的圖6A和6B所示示例。該處理800可以在存儲器設(shè)備210上電之后一有空閑時間時啟動,或者在此后定期地啟動。在一個實施例中,存儲器設(shè)備210集成到便攜式設(shè)備(例如個人導(dǎo)航設(shè)備)中,該便攜式設(shè)備即使在其自身斷電后也可被供電較長一段時間。 例如,個人導(dǎo)航設(shè)備可能某一次保持插入汽車的點煙器中數(shù)天,在這種情況下,能夠定期執(zhí)行該處理800。在一個實施例中,基于糾錯算法的性能觸發(fā)處理800。例如,如果糾錯算法的收斂時間過長,或者如果需要由糾錯算法糾正的數(shù)據(jù)比特的數(shù)目大于臨界值,則啟動處理800以確定特定的塊(與檢測到的問題相關(guān)的塊或者其它塊)是否應(yīng)當刷新其自身的數(shù)據(jù)。在步驟802中,選擇存儲器陣列200的塊進行關(guān)于數(shù)據(jù)完整性問題(例如數(shù)據(jù)保持問題、讀取干擾問題,等等)的測試。但是,不需要明確地標識該數(shù)據(jù)完整性問題的原因 (例如數(shù)據(jù)保持)。在一個實施例中,依次測試存儲器陣列200中的塊,以保證每個塊經(jīng)過測試。但是,可按不同的順序測試所述塊,例如按隨機順序,或者按所述塊最近一次被編程的順序。所述處理800并不必須要測試存儲器陣列200中的每個塊。例如,可推遲對近期編程的塊進行測試。但是,由于難以監(jiān)視和記錄溫度歷史,因此可能難以預(yù)測對數(shù)據(jù)完整性問題的影響。例如,可能難以直接確定存儲器設(shè)備210是否暴露于高溫下。例如,存儲器設(shè)備210可能留在溫度高的環(huán)境中,但是沒有電源來驅(qū)動能夠監(jiān)視和存儲溫度數(shù)據(jù)的邏輯。 結(jié)果,即使近期編程的塊也可能進行測試,以避免數(shù)據(jù)完整性問題失敗。在一個實施例中,處理800僅選擇存儲器陣列200中少量的塊樣本進行測試。在一個實施例中,僅對每存儲器單元存儲特定最小數(shù)量比特的塊進行數(shù)據(jù)完整性問題測試。例如,一些塊可能每存儲器單元存儲單個比特,而其它的塊可能每存儲器單元存儲四比特。在這種情況下,每存儲器單元存儲單個比特的塊在Vt分布之間具有很大的間隙而不需要測試O在一些實施例中,系統(tǒng)保證基本同時對整個數(shù)據(jù)塊進行寫入,在這種情況下,不需要對所選擇的塊中的每個字線進行數(shù)據(jù)完整性問題分析。通過基本同時進行寫入,意味著系統(tǒng)執(zhí)行以下規(guī)則如果對塊的寫入中斷,則放棄對該塊的寫入。也就是說,丟棄該塊中的數(shù)據(jù)并且后續(xù)將該數(shù)據(jù)寫入另一個塊。注意,基本同時進行寫入并不意味著同時對所有字線進行編程。通常,依次對字線進行編程。基本同時對整個塊進行寫入的一個示例是在其中每個存儲器單元存儲單個比特的塊(二進制塊)中臨時存儲數(shù)據(jù)。于是,在填寫四個這樣的二進制塊后,則數(shù)據(jù)被寫入每個存儲器單元存儲四個比特的塊(本文中稱為“X4塊”)中。如果對X4塊寫入數(shù)據(jù)中斷, 則放棄對該X4塊的寫入。隨后,仍在二進制塊中的數(shù)據(jù)被寫入另一 X4塊中。如果該寫入完成而沒有中斷,則該塊寫入成功。因此,X4塊中的所有數(shù)據(jù)被基本同時寫入。在步驟804中,選擇所選塊中的一個字線進行數(shù)據(jù)完整性分析。在一些實施例中, 系統(tǒng)保證以某一特定順序?qū)ψ志€進行寫入。在以特定順序?qū)ψ志€進行寫入的實施例中,選擇被寫入過的塊中的第一字線進行數(shù)據(jù)完整性分析。在一個實施例中,隨機選擇字線。如果需要,可以對塊中的多個字線進行數(shù)據(jù)完整性分析。并不是塊中的所有字線都需要作為候選者。在一個實施例中,可以選擇已知比其它字線更具問題的字線進行數(shù)據(jù)完整性分析。 例如,工程特征可能早已確定每個塊中的第一字線更容易具有數(shù)據(jù)完整性問題。在其它實施例中,因為靠近塊的中間的字線在每個塊測試單個字線的情況下可能更適合,所以可將該塊邊緣附近的字線排除在候選池之外。盡管在所述處理800的一個實施例中字線是隨機選擇的,但是并不要求隨機選擇字線。在一個實施例中,記錄經(jīng)測試的一個或多個字線,使得每個字線(或者至少是候選集合中的每一個字線)經(jīng)過測試。例如,可以按順序進行字線的測試,在每次對塊進行測試時測試不同的字線。在步驟806中,確定塊中被選字線中存儲的數(shù)據(jù)是否具有數(shù)據(jù)完整性問題,該數(shù)據(jù)完整性問題標識該塊應(yīng)當進行刷新。圖10AU0B和IOC提供了能夠用于確定是否存在數(shù)據(jù)完整性問題的數(shù)種技術(shù)的細節(jié)。簡單而言,一種技術(shù)包括確定塊中的一個或多個Vt分布是否偏移大于允許量,大于允許量表示存在數(shù)據(jù)保持問題。這樣的偏移還可能指出另一問題,例如讀取干擾。對這種偏移的測試不要求對所有Vt分布進行偏移分析。用于測試數(shù)據(jù)完整性問題的另一技術(shù)包括對從被選塊的字線讀取的數(shù)據(jù)運行糾錯算法?;谛枰杉m錯算法糾正的比特的數(shù)目,或者根據(jù)糾錯算法收斂得到解所需的時間長度,指出數(shù)據(jù)完整性問題。如果存儲器單元塊不存在數(shù)據(jù)完整性問題,則控制進入步驟802以選擇另一個塊進行測試。如果被選塊不存在數(shù)據(jù)完整性問題,則保持該記錄,使得能夠在某時刷新該塊中的數(shù)據(jù)。應(yīng)當注意,該數(shù)據(jù)不必立即刷新。例如,在執(zhí)行任何塊的數(shù)據(jù)刷新之前,可確定要刷新那個塊集合。在一些情況下,在執(zhí)行數(shù)據(jù)刷新之前設(shè)備可能斷電。在一個實施例中,使用備用塊來記錄應(yīng)當刷新哪些數(shù)據(jù)塊。圖9A示出刷新數(shù)據(jù)的處理。應(yīng)當注意,一旦確定一個塊具有數(shù)據(jù)完整性問題,則可能許多其它塊也會存在同樣的問題。例如,如果由于存儲器設(shè)備暴露于高溫下而引起數(shù)據(jù)完整性問題,則其它的塊可能也具有同樣的數(shù)據(jù)完整性問題。這對于在具有該問題的塊之前最近編程的或者在其之后近期編程的其它的塊尤其如此。因此,這些其它的塊可以是刷新程序的候選者。因此,如果步驟806確定該塊具有數(shù)據(jù)完整性問題(在下文中稱為“壞塊”),則控制進入步驟808以確定其它的塊進行刷新程序。在步驟808中,基于各個塊相對于壞塊最近一次編程的時間而于何時被最近一次編程,標識要進行刷新程序的塊。本文中,這些其它的塊被稱為“候選塊”。例如,將所有在壞塊之前進行編程的塊標識為候選塊。但是,在壞塊之后特定時間段內(nèi)進行編程的塊也可被標識為“候選塊”。在步驟810中,對候選塊執(zhí)行刷新程序。該刷新程序確定候選塊中的數(shù)據(jù)是否應(yīng)當刷新。在一個實施例中,刷新程序自動刷新候選塊中的數(shù)據(jù),而不確定在候選塊中是否存在數(shù)據(jù)完整性問題。在一個這樣的自動數(shù)據(jù)刷新實施例中,圖9A的處理900用于實現(xiàn)步驟 810。在一個實施例中,步驟810的刷新程序確定候選塊是否存在數(shù)據(jù)完整性問題,以確定是否要刷新候選塊中的數(shù)據(jù)。圖10AU0B和IOC所示處理中的任何一者或其他處理能夠用于確定候選塊中的字線是否存在數(shù)據(jù)完整性問題。在基本同時對整個塊進行寫入的實施例中,隨機選擇候選塊中要測試的字線。如果圖10AU0B和IOC所示處理之一確定候選塊存在數(shù)據(jù)完整性問題,則圖9A的處理900可用于刷新候選塊中的數(shù)據(jù)。注意,有可能在所述處理800的一次重復(fù)中通過步驟806對候選塊進行數(shù)據(jù)完整性測試,而且在所述處理800的不同次重復(fù)中的步驟810中再次進行數(shù)據(jù)完整性測試。但是,很可能在步驟810中選擇與步驟806中測試過的字線不同的、隨機選擇的字線進行測試。此外,可以采用與步驟806中不同的數(shù)據(jù)完整性測試。例如,在步驟806中可能已使用圖IOB所示的測試(確定需要通過糾錯算法糾正多少比特),而在步驟810可能使用圖IOA 的測試(尋找Vt分布中的偏移)。但是,可能使用相同的測試,但是具有不同參數(shù)。舉例而言,為了觸發(fā)數(shù)據(jù)刷新而需要由糾錯算法糾正的比特的數(shù)目可能與第二次測試該塊時不同。通過刷新根據(jù)策略標識出的候選塊中的數(shù)據(jù),處理800以足夠的頻次刷新數(shù)據(jù)以足以防止數(shù)據(jù)丟失,但是又不會太頻繁而使設(shè)備210負擔過重或者干擾用戶訪問存儲器陣列200。注意,可能在步驟802-806中已于近期對有些候選塊進行數(shù)據(jù)完整性問題測試,但是該測試并不導(dǎo)致確定要刷新該數(shù)據(jù)。其可能原因在于數(shù)據(jù)完整性問題的嚴重性未完全處于觸發(fā)數(shù)據(jù)刷新的閾值。注意,通過基于候選塊相對于壞塊最近一次編程的時間而于何時被最近一次編程,對候選塊執(zhí)行刷新程序,能夠在適當時間刷新存儲器設(shè)備210中的塊,該適當時間使得既不會太頻繁以致使存儲器設(shè)備負擔過重,又不會太稀少而使得數(shù)據(jù)完整性問題太嚴重而糾錯算法無法糾正。例如考慮存儲器設(shè)備210可能留在極熱環(huán)境(例如夏天里的汽車內(nèi)部)中的情況。將存儲器設(shè)備210置于如此高的溫度下可能大大加速電荷損失/獲取的速率,這可能潛在導(dǎo)致數(shù)據(jù)保持問題。但是,應(yīng)當注意,由于存儲器設(shè)備不一定會被置于高溫下,所以不需要簡單地頻繁刷新數(shù)據(jù)。而且,頻繁的數(shù)據(jù)刷新由于可能使存儲器設(shè)備負擔過重或者干擾該設(shè)備的正常使用,所以可能并不希望出現(xiàn)。圖9A是示出存儲器陣列200的塊中所存儲數(shù)據(jù)的刷新處理900的一個實施例的流程圖。對處理800的步驟806或步驟810已標識出的需要數(shù)據(jù)刷新的塊啟動該處理900。 在一個實施例中,處理900刷新塊中所有的頁面。但是,不要求刷新所有頁面中的數(shù)據(jù)。在步驟902中,從要刷新的塊讀取數(shù)據(jù)。如前所述,在當初存儲該塊的數(shù)據(jù)時,逐個扇區(qū)地計算奇偶校驗位,且將奇偶校驗位與用戶數(shù)據(jù)結(jié)合作為ECC編碼機制的一部分。注意,在存儲該數(shù)據(jù)之前,為了將數(shù)據(jù)隨機化,也可以采用擾碼程序。在一些實施例中,一個字線上的存儲器單元形成數(shù)個扇區(qū)或ECC頁面。扇區(qū)的數(shù)據(jù)可以首先進行擾碼,然后由ECC引擎進行編碼。與數(shù)個扇區(qū)對應(yīng)的經(jīng)擾碼和ECC編碼的數(shù)據(jù)可以累積,然后被同時寫入單個字線。例如,一個字線可供給相當于四個扇區(qū)的數(shù)據(jù)。在一些實施例中,可對一個字線上的所有單元同時進行寫入。對一個塊進行編程在于在每一平面中一次將數(shù)據(jù)寫入一個字線。在美國專利申請公布No. 2006/0158947中描述了能夠?qū)λ斜忍鼐€一起編程的NAND體系結(jié)構(gòu)(ABL NAND體系結(jié)構(gòu))的示例。在步驟904中,對剛剛讀取的數(shù)據(jù)執(zhí)行ECC算法以糾正該數(shù)據(jù)。在一個實施例中, 控制器244執(zhí)行能夠每512比特糾正6個或更多比特的強糾錯算法。在一個實施例中,控制器244執(zhí)行迭代解碼技術(shù)。在一個實施例中,在多位化(Multi-bit-per-cell)閃速存儲器中控制器244執(zhí)行概率性糾錯。在2007年4月19日公布的題為“!Probabilistic Error Correction in Multi-bit-per-cell Flash Memory” 的美國專利申請公布 2007/0086239 以及 2007 年 4 月 19 日公布的題為“Method of Error Correction in MBC Flash Memory" 的美國專利申請公布2007/0089034中提供了在多位化閃速存儲器中執(zhí)行糾錯的更多細節(jié),這兩個申請均通過弓I用并入本文。在步驟906中,經(jīng)糾錯的數(shù)據(jù)被寫入存儲器陣列200的塊中。在一個實施例中,總是將數(shù)據(jù)寫入與被刷新的塊不同的塊中,以實現(xiàn)“損耗均衡”。也就是說,將數(shù)據(jù)寫入不同的塊中能夠有助于使每個塊受到的編程量平均化。在一個實施例中,確定是將數(shù)據(jù)刷新至新的塊還是同樣的塊。該決定可基于自最近一次對該塊進行寫入以來的時間和/或該塊已被編程的次數(shù),即“最新計數(shù)”(hot count)來作出。例如,如果該塊近期被編程和/或如果該最新計數(shù)高,則可希望將數(shù)據(jù)寫入不同的塊。在一個實施例中,每個塊存儲其自身的最新計數(shù)。在一個實施例中,向用戶顯示不要將設(shè)備斷電直到刷新程序900完成的消息。但是,不管是否顯示這樣的消息,用戶也可能在數(shù)據(jù)刷新期間將設(shè)備斷電。而且,有可能用戶通過訪問存儲器陣列200而中斷刷新程序。因此,在非易失性存儲器中保留數(shù)據(jù)刷新處理 900進程的記錄,使得該處理900如果被中斷則能夠恢復(fù)。圖9B是描述用于對連接至被選字線的存儲器單元進行編程的編程處理的流程圖。在一個實施例中,圖9B所示處理用于對一個頁面的數(shù)據(jù)進行編程。因此,可多次使用圖9B的處理來對在所述處理900的步驟906中被進行寫入的塊中不同的頁面進行編程。在圖9B所示處理的一種實現(xiàn)中,存儲器單元在編程之前進行擦除(步驟940)。 在一個實施例中,通過將P阱提升至擦除電壓(例如20伏)直到足夠長的一段時間,并將被選擇的塊的字線接地而將源極線和比特線浮置,擦除存儲器單元。由于電容性耦合, 未被選擇的字線、比特線、選擇線和共同源極線也被提升至該擦除電壓的相當大的部分。 因此,被選存儲器單元的溝道氧化物層被施加以強電場,且隨著浮置柵極的電子通常由于 Fowler-Nordheim隧穿機制而被輸送至襯底側(cè),于是被選存儲器單元的數(shù)據(jù)被擦除。隨著電子從浮置柵極被傳送到P阱區(qū)域,被選單元的閾值電壓降低。可對整個存儲器陣列、單獨的塊或另一單位量的單元執(zhí)行擦除。在存儲器單元的塊被擦除后,可如本文所述那樣對各存儲器單元進行編程或部分編程。注意,不需要在一個塊的每個字線被編程之前執(zhí)行步驟 940中所執(zhí)行的擦除。相反,可擦除所述塊然后對每個字線編程,而在各字線的編程之間不進行擦除。在步驟942中,執(zhí)行軟編程以將被擦除的存儲器單元的擦除閾值電壓的分布變窄。由于該擦除處理,一些存儲器單元可處于比所需更深的擦除狀態(tài)。軟編程可施加小的編程脈沖以將被擦除的存儲器單元的閾值電壓移至更靠近擦除驗證電平。在步驟950中, 由控制器244發(fā)出“數(shù)據(jù)加載”命令,且該命令被輸入到狀態(tài)機222。在步驟952,將指定頁面地址的地址數(shù)據(jù)提供給解碼器224。在步驟954,將關(guān)于被尋址頁面的編程數(shù)據(jù)頁面輸入供進行編程。例如,在一個實施例中,可以輸入5 字節(jié)的數(shù)據(jù)。該數(shù)據(jù)被鎖存在被選擇比特線的適當寄存器/鎖存器中。在一些實施例中,該數(shù)據(jù)也被鎖存在被選擇比特線的第二寄存器中以用于驗證操作。在步驟956中,從控制器244接收“編程”命令,并將其提供給狀態(tài)機222。由“編程”命令觸發(fā),使用施加至適當字線的電壓,將步驟954中鎖存的數(shù)據(jù)編程到由狀態(tài)機222控制的被選存儲器單元中。在步驟958中,將編程信號“Vpgm” (例如電壓脈沖序列)初始化為起始幅度(例如 12V或另一合適的電平),且將狀態(tài)機222所維護的編程計數(shù)器PC初始化為0。在步驟960中,將編程信號Vpgm的脈沖施加至被選擇的字線。 未選擇的字線接收被稱為“Vpass”的一個或多個升壓電壓(boosting voltage) 0如果在特定數(shù)據(jù)鎖存器中存儲邏輯“0”指示應(yīng)對相應(yīng)存儲器單元進行編程,則將相應(yīng)比特線接地。 另一方面,如果在特定鎖存器中存儲邏輯“ 1”指示對將相應(yīng)存儲器單元保持在其當前數(shù)據(jù)狀態(tài),則將相應(yīng)比特線連接到Vdd以禁止編程。注意,編程信號包括電壓脈沖的集合,其中, 脈沖的幅度隨每一相繼脈沖而增加。在電壓脈沖之間是一組驗證脈沖。在步驟962中,使用適當?shù)哪繕穗娖郊向炞C被選擇的存儲器單元的狀態(tài),如上所述。如果檢測出被選擇單元的閾值電壓已達到適當?shù)哪繕穗娖?,則在對應(yīng)數(shù)據(jù)鎖存器中存儲的數(shù)據(jù)變?yōu)檫壿嫛?”。如果檢測出該閾值電壓尚未達到適當?shù)哪繕穗娖?,則在對應(yīng)數(shù)據(jù)鎖存器中存儲的數(shù)據(jù)不變。通過此方式,在其對應(yīng)的數(shù)據(jù)鎖存器中存儲有邏輯“1”的比特線無需進行編程。當所有數(shù)據(jù)鎖存器存儲有邏輯“1”時,狀態(tài)機222獲知所有被選擇的單元均已被編程。在步驟964中,檢查所有數(shù)據(jù)鎖存器是否存儲有邏輯“1”。如果是,則因為所有被選擇的存儲器單元已被編程且針對它們的目標狀態(tài)進行了驗證,所以編程處理完成并且成功。在步驟966中報告“PASS”狀態(tài)。注意,在一些實現(xiàn)方式中,在步驟964,檢查是否有至少預(yù)定數(shù)量的數(shù)據(jù)鎖存器存儲有邏輯“1”。該預(yù)定數(shù)量可以小于全部數(shù)據(jù)鎖存器的數(shù)量,從而允許編程處理在所有存儲器單元達到它們的適當?shù)尿炞C電平之前停止。未成功編程的存儲器單元可以在讀取處理期間使用糾錯操作得以糾正。在步驟964中,如果確定出并非所有數(shù)據(jù)鎖存器都存儲有邏輯“ 1 ”,則繼續(xù)編程處理。在步驟968中,針對編程限制值檢查編程計數(shù)器PC。編程限制值的一個示例為20 ;然而,在不同實現(xiàn)方式中可使用其它值。如果編程計數(shù)器PC不小于編程限制值,則在步驟969 中確定尚未成功編程的存儲器單元的數(shù)量是否等于或小于預(yù)定數(shù)量。如果未成功編程的存儲器單元的數(shù)量等于或小于該預(yù)定數(shù)量,則將編程處理標記為通過,并且在步驟971中報告PASS狀態(tài)。在很多情況下,能夠在讀取處理期間使用糾錯操作糾正未被成功編程的存儲器單元。然而,如果未被成功編程的存儲器單元的數(shù)量大于預(yù)定數(shù)量,則將編程處理標記為失敗,且在步驟970中報告FAIL狀態(tài)。如果在步驟968中確定出編程計數(shù)器PC小于編程限制值(例如20),則將下一 Vpgm電壓脈沖的幅度增加步長大小(例如0. 2-0. 4伏特步長大小),并且在步驟972中使編程計數(shù)器PC遞增。在步驟972之后,所述處理環(huán)回到步驟 960以施加下一 Vpgm電壓脈沖。通常,在驗證操作(例如在圖9B所示步驟962期間執(zhí)行的驗證操作)和讀取操作期間,被選擇的字線連接到一電壓,該電壓的電平是針對每一讀取和驗證操作而指定,以確定所關(guān)注的存儲器單元的閾值電壓是否已達到這樣的電平。在施加字線電壓之后,測量存儲器單元的傳導(dǎo)電流,以確定該存儲器單元是否響應(yīng)于施加到字線的電壓而被導(dǎo)通。如果測量的傳導(dǎo)電流大于特定值,則假設(shè)該存儲器單元導(dǎo)通且施加到字線的電壓大于該存儲器單元的閾值電壓。如果測量的傳導(dǎo)電流未大于該特定值,則假設(shè)存儲器單元未導(dǎo)通且施加到字線的電壓不大于該存儲器單元的閾值電壓。存在很多在讀取或驗證操作期間測量存儲器單元的傳導(dǎo)電流的方法。在一個示例中,根據(jù)存儲器單元的傳導(dǎo)電流對感測放大器中的專用電容器放電或充電的速率測量存儲器單元的傳導(dǎo)電流。在另一示例中,被選擇的存儲器單元的的傳導(dǎo)電流允許(或者無法允許)包括存儲器單元的NAND串對相應(yīng)的比特線放電。在一段時間之后測量比特線上的電壓,以查看該比特線是否已被放電。圖IOA是示出用于確定塊是否存在數(shù)據(jù)完整性問題的處理1000的一個實施例的流程圖。該處理1000可用于執(zhí)行圖8的步驟806。處理1000還能夠用于步驟810的刷新程序的實施例,其中,確定候選塊是否具有數(shù)據(jù)完整性問題。在步驟1002,對非易失性存儲器元件執(zhí)行高分辨率掃描。該掃描可在有限范圍內(nèi)執(zhí)行。例如參考圖6B,可在狀態(tài)14和15 部分執(zhí)行掃描。該高分辨率掃描包括以比正常讀取處理更高的分辨率執(zhí)行數(shù)次讀取。僅需掃描塊中的單個字線(或其一部分)以收集用于檢測數(shù)據(jù)完整性問題的所有數(shù)據(jù)。但是, 根據(jù)需要,也可掃描來自多個字線的數(shù)據(jù)。在這里,高分辨率讀取點被稱為“軟讀取”。圖11示出分布函數(shù)1101 (視作控制柵極電壓的函數(shù)的單元)。該分布1101對應(yīng)于例如16個Vt分布(例如圖6B中所示的Vt分布)中的大約四個。該分布具有頂峰之間
16的“凹谷”,該“凹谷”對應(yīng)于將存儲器單元編程至不同狀態(tài)而產(chǎn)生的Vt分布。在一個實施例中,確定分布函數(shù)1101中的谷底1111之一。由于僅需確定對應(yīng)于一個谷底的閾值電壓, 所以僅需確定分布函數(shù)1101的一部分。在圖11所示的該示例中,使用16個不同的控制柵極電壓(軟讀取電壓Vsrl-Vsrie)產(chǎn)生實線所示的分布1101部分??墒褂枚嘤诨蛏儆?6 個軟讀取電壓。該分布1101的虛線部分指出在施加更大范圍的控制柵極電壓的情況下該分布1101如何表現(xiàn)。在一個實施例中,目的用于標識的凹谷是基于由于編程至不同狀態(tài)而產(chǎn)生的Vt 分布的預(yù)期特征確定的。例如,可基于諸如Vt分布之間的預(yù)期分隔以及不同Vt分布預(yù)期會出現(xiàn)的偏移量等因素選擇凹谷。對于一些非易失性存儲器設(shè)備,具有更高電壓的Vt分布具有更大的分隔并且預(yù)期出現(xiàn)更大偏移。但是注意,每個狀態(tài)可因不同的數(shù)據(jù)完整性問題而受到不同影響,這還會影響關(guān)于標識哪個凹谷的決定。例如,狀態(tài)15可能比其它狀態(tài)受到更大程度的讀取干擾。因此,如果旨在針對數(shù)據(jù)保持問題進行測量,則可能希望避免讀取受讀取干擾(或者至少讀取干擾會如何影響Vt分布的偏移的因素)影響很大的狀態(tài)。注意,高分辨率掃描是在非常有限的、不包括其它14個Vt分布(在使用16個數(shù)據(jù)狀態(tài)的實施例中)中的任何一個的電壓范圍上執(zhí)行的。因此,讀取操作的總數(shù)保持為合理低的數(shù)目。 另一方面,由于以下原因,可能希望選擇掃描狀態(tài)14與15之間的凹谷(即,在存在16個狀態(tài)時最高的凹谷)。有可能出現(xiàn)所述分布的向下偏移如此之大,使得狀態(tài)14與15之間的凹谷可能被錯誤解釋為狀態(tài)13與14之間的凹谷。搜索兩個最高狀態(tài)之間的凹谷可緩解該問題。為確定所述分布,軟讀取電壓Vsrl-Vsrie被相繼施加至塊中被選擇字線的存儲器單元的控制柵極。例如,施加至存儲器單元的控制柵極的電壓隨著每個相繼電壓而遞增例如50mV。記錄響應(yīng)于每次軟讀取而傳導(dǎo)(導(dǎo)通)的存儲器單元的數(shù)量。不要求記錄每個指定單元中存儲的實際數(shù)據(jù)。相反,可基于對響應(yīng)于每個軟讀取電壓有多少存儲器單元傳導(dǎo)(導(dǎo)通)的分析來確定分布1101的形狀。在處理1000的步驟1004中,確定分布函數(shù)中的谷底。在一個實施例中,標識谷底電壓。谷底電壓的目的在于引入?yún)⒖键c,用于確定Vt分布中的至少一個偏移了多少。在圖 11中,在Vt分布110 和1102b之間示出谷底電壓1111的示例。在一個實施例中,參考點是不同于谷底的某處。例如,參考電壓可能是分布函數(shù)1101中的頂峰。在一個實施例中,通過首先使閾值電壓分布數(shù)據(jù)平滑而確定凹谷??墒褂迷S多適當?shù)囊阎瘮?shù)之一來使閾值電壓分布數(shù)據(jù)平滑。例如,可使用低通濾波器來使數(shù)據(jù)平滑。于是,可確定平滑后數(shù)據(jù)的導(dǎo)數(shù)。存在許多用于創(chuàng)建和存儲關(guān)于該導(dǎo)數(shù)的信息的方法和形式, 并不要求特定的方法和形式。接下來,研究導(dǎo)數(shù)計算的輸出以尋找跨零點,以標識凹谷。下文中描述用于尋找凹谷的另一技術(shù)。在該實施例中,通過利用函數(shù)對閾值電壓分布進行卷積,對閾值電壓分布數(shù)據(jù)進行平滑。在一個實施例中,該函數(shù)是高斯函數(shù)。在另一實施例中,該函數(shù)是截斷高斯,使得去除高斯函數(shù)的前尾部和后尾部。在另一實施例中, 可使用不同于高斯的其他函數(shù)。然后,確定平滑后數(shù)據(jù)的導(dǎo)數(shù)。接下來,研究導(dǎo)數(shù)計算的輸出以尋找從負到正的過零點,以標識凹谷。可用于定位凹谷的另一種技術(shù)是將閾值電壓分布數(shù)據(jù)進行平方。這可用于為該數(shù)據(jù)提供更大的對比。然后,使用任一上述方法對閾值電壓分布數(shù)據(jù)的平方進行平滑。接下來,確定平滑后數(shù)據(jù)的倒數(shù)并根據(jù)跨零點確定凹谷。在步驟1006中,基于參考點(例如,谷底電壓的閾值電壓)確定Vt分布的偏移。 作為另一示例,可基于分布函數(shù)中頂峰的閾值電壓確定Vt分布1102b的偏移。在一個實施例中,可修改上述導(dǎo)數(shù)方法以標識分布函數(shù)1101中的頂峰。在一個實施例中,計算Vt分布的偏移作為谷底電壓與參考電壓之間的差。可基于在編程后Vt分布1102b的預(yù)期形狀確定參考電壓。該預(yù)期形狀可根據(jù)工程特征確定。因此,不需要為確定參考電壓而確定緊接著在現(xiàn)場編程之后的Vt分布110 和1102b的形狀。還應(yīng)該注意,在首次編程時,Vt分布 110 和1102b可能完全不交疊。注意,取決于在編程期間是從存儲器單元去除電荷還是向存儲器單元添加電荷,所述分布110 和1102b可由于數(shù)據(jù)保持問題而向右或向左偏移。在步驟1008中,確定是否要至少部分地基于Vt分布的偏移而刷新數(shù)據(jù)??苫诖_定所述偏移如何影響加速讀取數(shù)據(jù)的能力的實驗室試驗,確定保證數(shù)據(jù)刷新的偏移量。如果要刷新塊中的數(shù)據(jù),則執(zhí)行圖9A的處理900。但是,數(shù)據(jù)刷新不需要立即執(zhí)行。例如,可推遲數(shù)據(jù)刷新,直到確定整個存儲器陣列200中的哪些塊要刷新。保留要刷新的塊的記錄, 使得數(shù)據(jù)刷新(例如,處理900)可在方便時執(zhí)行。在一些情況下,不會在存儲器設(shè)備210 斷電前執(zhí)行數(shù)據(jù)刷新。因此,該記錄應(yīng)當保持在諸如備用塊等非易失性存儲器中。步驟1008的刷新確定可基于不同于Vt分布偏移、或者除Vt分布偏移之外的很多因素。注意,相比與較低閾值電壓相關(guān)的狀態(tài),存儲器單元具有較高閾值電壓時的狀態(tài)可按更快的速率損失/獲取電荷。因此,刷新確定中的一個因素在于進行分析的Vt分布與哪些狀態(tài)相關(guān)。如前所述,不同的狀態(tài)可能具有不同的寬度/間隔,以適應(yīng)不同程度的數(shù)據(jù)保持損失。因此,更傾向于偏移的狀態(tài)可更加適合測量Vt分布中的偏移。但是,任一狀態(tài)可用于測量Vt分布中的偏移??苫趯嶒炇抑性O(shè)備執(zhí)行的測試得知特定存儲器設(shè)備的不同 Vt分布偏移特征。在刷新確定中要考慮的另一因素在于對哪個或哪些字線進行數(shù)據(jù)完整性測試。如上所述,在一個實施例中,選擇單個字線用于進行數(shù)據(jù)完整性問題的測試。關(guān)于特定的數(shù)據(jù)完整性問題,例如數(shù)據(jù)保持,不同的字線可具有不同的特征。注意,由于一些字線的特征彼此會很類似,所以可將不同的字線組成集合。要考慮的又一因素是所述塊已被編程的次數(shù),該次數(shù)被另稱為“最新計數(shù)”。該最新計數(shù)可存儲作為該塊的開銷。與僅被編程數(shù)次的塊相比,已被編程很多次的塊可傾向于更快速地朝向電中性變化。因此,至少對于一些存儲器設(shè)備,具有高的最新計數(shù)的塊與具有較低最新計數(shù)的塊相比,可能應(yīng)當以更小的Vt分布偏移進行刷新。另一因素是自所述塊被編程起經(jīng)過的時間。但是,由于存儲器設(shè)備可能受到差別很大的環(huán)境條件,所以,自上一次寫入以來的時間自身可能不是可靠的、關(guān)于需要刷新數(shù)據(jù)的指示。也就是說,過度依賴自上一次編程以來的時間可能導(dǎo)致如果該時間參數(shù)太長,則無法在需要時刷新;或者,如果該時間參數(shù)太短,則刷新太頻繁。但是,作為許多因素之一, 當在臨界情況下決定是否刷新數(shù)據(jù)時,使用時間參數(shù)是有利的。要考慮的另一因素是當前的電源電壓,該電源電壓能夠影響許多電壓的幅值,例如用于確定Vt分布相交的點的軟讀取電壓的幅值。刷新決定也可基于對所選塊進行編程時的溫度和當前溫度。注意,晶體管的閾值電壓是溫度的函數(shù)。因此,如果這兩個溫度實質(zhì)上不同,則預(yù)期會出現(xiàn)Vt分布的偏移。在一個實施例中,存儲器設(shè)備210內(nèi)建有溫度補償,以解決這些由溫度引起的閾值電壓偏移, 在這種情況下,不必在進行刷新確定時將溫度考慮在內(nèi)。在一個實施例中,存儲器設(shè)備210存儲多軸“刷新因素”表,該表指出上述因素如何影響刷新確定。該刷新因素表可在將存儲器設(shè)備210提供給用戶之前存儲在存儲器設(shè)備 210中,使得該表可由管理電路訪問。圖12示出具有第一軸和第二軸的雙軸表1200的一個示例,第一軸用于16個不同的狀態(tài)(S0-S15),而第二軸用于五個不同的字線(WL)組。在實際中,每個存儲器單元包含用于確定允許Vt分布由于與該單元相關(guān)的因素而偏移多少的值。例如,與狀態(tài)13和WJ1-WL23相關(guān)的存儲器單元具有值“Vx”。在示例性雙軸表1200 的其它單元中未顯示值,以不使該圖變得不清晰。作為一個特定示例,如果測試過字線17且正在分析狀態(tài)13,則參考表1200,將Vt 分布的偏移與值“Vx”比較,以確定是否存在數(shù)據(jù)完整性問題。表1200可具有更多的軸,每個軸對應(yīng)于上述或其它因素之一。例如,該表1200可具有對應(yīng)于不同最新計數(shù)范圍的另一個軸。圖IOB示出基于有多少比特需要通過糾錯算法糾正而確定是否需要數(shù)據(jù)刷新的處理1030的一個實施例。該處理1030是一種用于執(zhí)行圖8的步驟806的技術(shù)。在步驟 1032中,讀取所選字線上的單元。如上所述,在一個實施例中,隨機選擇字線。在步驟1034中,對剛剛讀入的數(shù)據(jù)執(zhí)行ECC算法。該ECC算法確定該數(shù)據(jù)中有多少比特需要糾正。在步驟1038中,控制器244確定需要糾正的比特的數(shù)目是否大于閾值比特數(shù)。如果是,則將塊標識為需要數(shù)據(jù)刷新,且在此時或者隨后執(zhí)行刷新程序(例如,圖9A)。如果錯誤比特的數(shù)目小于閾值,則此時不標識該塊進行數(shù)據(jù)刷新(步驟1042)。在一個實施例中, 該閾值是最新計數(shù)的函數(shù)。例如,該最新計數(shù)越高,則該閾值越低。圖IOC示出處理1060的一個實施例,該處理用于根據(jù)糾錯算法需要多久收斂來確定是否需要數(shù)據(jù)刷新。處理1060是一種用于執(zhí)行圖8的步驟806的技術(shù)。在步驟1062中, 讀取所選字線上的單元。在步驟1064中,控制器244執(zhí)行ECC算法,以嘗試恢復(fù)錯誤的數(shù)據(jù)比特。在步驟 1068中,控制器244確定糾錯算法收斂所需時間是否超過允許的時間。在一個實施例中,控制器244確定迭代解碼技術(shù)是否采用比允許的迭代次數(shù)更多的迭代而收斂。允許的次數(shù)是可變的,可進行調(diào)整以改變該處理1060的敏感性。例如,如果該塊是處理800的步驟808 中標識出的候選塊,則可增加敏感性。如果糾錯算法收斂時間過長,則在此時或隨后刷新這個塊(步驟90幻。如果糾錯算法在允許的迭代次數(shù)內(nèi)收斂,則不刷新這個塊中的數(shù)據(jù)(步驟1072)。在一個實施例中,迭代次數(shù)是最新計數(shù)的函數(shù)。例如,對于越高的最新計數(shù),收斂所需的允許迭代次數(shù)越低。圖13A示出處理1300的一個實施例,該處理用于標識出候選塊用于刷新程序。圖 13A所示處理可用于實現(xiàn)圖8的步驟808。該處理1300使用與每個塊相關(guān)的時間戳來標識候選塊。在步驟1302中,存取與壞塊相關(guān)的時間戳(該壞塊是在處理800的步驟806中標識出的)。在步驟1304中,存取與其它的塊相關(guān)的時間戳。在一個實施例中,塊的時間戳存儲在該塊自身中。通常,每個字線具有未用于數(shù)據(jù)存儲的一些存儲器單元。時間戳可存儲在與這些未使用的存儲器單元之一相關(guān)的存儲器元件。如果在每個塊中存儲時間戳,則僅需讀取具有時間戳的字線。此外,注意,由于時間戳數(shù)據(jù)僅為字線中數(shù)據(jù)的很小部分,所以可忽略字線上的大多數(shù)數(shù)據(jù)。在一個實施例中,存儲器設(shè)備中的“時間戳”表存儲時間戳, 減輕了從每個塊讀取時間戳的需求。例如,將存儲器陣列200中的一個或多個塊留出用于該時間戳表。在步驟1306中,確定哪些塊的時間戳相比與壞塊相關(guān)的時間戳更早。這些塊被標識為進行刷新程序的候選塊。在一個實施例中,在具有數(shù)據(jù)完整性問題的塊之后一定時間內(nèi)被最近一次編程的塊也被標記進行刷新程序。例如,在壞塊之后一天或兩天內(nèi)被最近一次編程的那些塊也可能存在同樣由環(huán)境引起的數(shù)據(jù)完整性問題,因而被標識為候選塊。對于被標識為候選塊的這些塊執(zhí)行處理800的步驟810。在一個實施例中,將序列號而不是時間戳與每個塊關(guān)聯(lián)。序列號指出所述塊被編程的順序。圖13B為示出處理1350的一個實施例的流程圖,該處理1350用于通過使用序列號標識進行刷新程序的候選塊。圖13B的處理1350可用于實現(xiàn)圖8的步驟808。在步驟1352中,存取與壞塊相關(guān)的序列號。在步驟13M中,存取與其它的塊相關(guān)的序列號。通常,一個塊的序列號存儲于該塊中。但是,序列號可存儲在其它地方,例如存儲在具有與塊號相關(guān)的序列號的表格的備用塊中。在步驟1356中,其序列號低于與壞塊相關(guān)的序列號的塊被標識為進行刷新程序的候選者。對于被標識為候選塊的這些塊執(zhí)行處理800的步驟810。圖14示出處理1400的一個實施例,該處理1400用于管理被用來標識進行刷新程序的候選塊的序列號。在步驟1402中,存儲器設(shè)備210上電。注意,該存儲器設(shè)備210可集成于另一設(shè)備如個人導(dǎo)航設(shè)備中。使用該示例,只要該個人導(dǎo)航設(shè)備有電源可用時,該存儲器設(shè)備210就可具有電源。例如,用戶可能將個人導(dǎo)航設(shè)備插入電源如汽車的“電引燃器”中。在該示例中,即使用戶關(guān)閉了個人導(dǎo)航設(shè)備,通過用戶將存儲器設(shè)備210插入該引燃器中,也可使該存儲器設(shè)備210上電。在步驟1404中,從存儲器陣列200的塊中讀取序列號。一些塊可能沒有序列號。 例如,當前未存儲有效數(shù)據(jù)的塊不會具有序列號。在一個實施例中,每單元僅存儲單個比特的塊由于不需要測試而沒有序列號。注意,在存儲器設(shè)備210上電之后、在讀取序列號之前,可執(zhí)行許多其它動作。在步驟1406中,將最高的序列號記錄作為當前序列號。當前序列號可存儲于隨機存取存儲器中,該隨機存取存儲器可以在存儲器設(shè)備210上或者在存儲器設(shè)備210之外。例如,與設(shè)備210耦合的主機可具有隨機存取存儲器?;蛘?,當前序列號可記錄在非易失性存儲器(例如,備用塊)中。在步驟1408中,存儲器陣列200收到寫入一個或多個塊的請求。在步驟1410中, 使當前序列號遞增。在步驟1412中,將當前序列號(在遞增之后)存儲在正被寫入的塊中。 如果存在多個要寫入的塊(步驟1414),則控制進入到步驟1410,以使序列號遞增并將其存儲在下一正被寫入的塊中。圖15示出處理1500的一個實施例,該處理1500用于管理用來選擇進行刷新程序 (例如,處理800的步驟810)的候選塊的時間戳。該處理1500以步驟1502開始,其中,存儲器設(shè)備210上電。在步驟1504中,從不同的塊中讀取時間戳。對于使用序列號的實施例,并非所有
20的塊會具有時間戳。如上所述,在處理1300的步驟1304的一個實施例中,從表中存取時間戳。在任選的步驟1506中,在步驟1504中讀取的時間戳存儲在該時間戳表中。該表可在 RAM中,或者該表可占用非易失性存儲器的一個或多個塊。在步驟1508中,接收對一個或多個塊進行寫入的請求。在步驟1510中,確定當前時間。注意,在一些情況下,可用時間的準確性可能存在問題。例如,可能通過詢問與存儲器設(shè)備210耦合的主機而存取時間。但是,該主機可能提供不準確的時間。例如,該主機的時鐘可能已被錯誤編程??筛鶕?jù)時間源的類型(例如,不受信任的個人計算機)或者根據(jù)與在先時間不一致的時間(例如,時間倒退)質(zhì)疑時間的準確性。如果時間信息未獲信任, 則可使用 值代替該時間信息?;蛘?,可存儲最新的可信的時間信息。注意,如果存儲最新的可信的時間信息,這可能導(dǎo)致塊在其實際編程時間之前被進行編程的結(jié)論。因此,根據(jù)塊何時編程而確定何時刷新的處理1300可能過渡包含。在一些實施例中,存儲器設(shè)備210可訪問被認為是非??煽康目尚艜r間源。例如, 如果存儲器設(shè)備210用于從衛(wèi)星接收正確時間的個人導(dǎo)航設(shè)備中,則可認為該時間是可信且準確的。在步驟1512中,將時間戳存儲在正被寫入的塊中。根據(jù)需要,可針對每個被寫入的塊重復(fù)步驟1510。但是,只要寫入處理未中斷相當長的一段時間,則該同一時間戳仍可用于按給定的寫入請求而進行寫入的所有的塊。在任選的步驟1514中,更新時間戳表。注意,可為所述塊存儲時間戳和序列號兩者。如上所述,如果時間信息不可信,則所存儲的時間戳可為啞值。當執(zhí)行處理1300以確定是否要基于時間戳進行刷新時,對于具有啞值的這些塊,可將序列號用于刷新確定。圖16示出處理1600的一個實施例,該處理1600警告用戶采取旨在減輕數(shù)據(jù)保持問題的動作。在步驟1602中,判斷出存儲器設(shè)備210的刷新太頻繁。在一個實施例中,管理電路作出此判斷,但是該判斷也可在存儲器設(shè)備210外部作出。為確定數(shù)據(jù)的刷新是否太頻繁,可維持關(guān)于數(shù)據(jù)刷新的記錄。該記錄可跟蹤每次處理800,每次處理800導(dǎo)致刷新至少一個塊。該記錄也可包括總共刷新了多少個塊,有多少個塊是根據(jù)對實際數(shù)據(jù)完整性問題的判斷(例如,由所述處理1000、1030或1060中的一個或多個判斷)而刷新的,有多少個塊是根據(jù)基于何時被編程而自動刷新的,等等。如果時間信息可用的話,上述記錄還可指出何時進行了刷新。在一些情況下,不會知道特定數(shù)據(jù)刷新的時間,但是能夠確定時間窗口。例如,當出現(xiàn)數(shù)據(jù)刷新時,存儲器設(shè)備可能耦合至未提供正確或可信的時間的主機。但是,如果存儲器設(shè)備后來耦合至提供該時間的主機,則可將刷新時間本地化至時間窗口(假設(shè)刷新之前的時間已知)??筛鶕?jù)在存儲器設(shè)備于實驗室中進行檢驗時獲知的信息,確定在一段時間內(nèi)有多少數(shù)據(jù)刷新被認為是太頻繁。在步驟1604中顯示消息,警告用戶采取正確的動作以減輕數(shù)據(jù)完整性問題。作為示例,該消息指出用戶不應(yīng)將存儲器設(shè)備留在高溫環(huán)境中過長時間。上文中提供了對本發(fā)明的具體描述以用于進行闡述和說明。但并非要窮舉或者將本發(fā)明限于所公開的精確形式。根據(jù)以上教導(dǎo),可實現(xiàn)很多修改和變型。上述實施例被選取用于最佳地解釋本發(fā)明的原理及其實際應(yīng)用,從而使得本領(lǐng)域技術(shù)人員能夠以不同的實施例并利用適于特定預(yù)期用途的不同變型來最佳地利用本發(fā)明。本發(fā)明的范圍要由所附權(quán)利要求來定義。
權(quán)利要求
1.一種用于操作非易失性存儲器設(shè)備的方法,該方法包括基于所述設(shè)備的第一組非易失性存儲器元件中的一個或多個非易失性存儲器元件的條件,確定出應(yīng)當執(zhí)行對該第一組非易失性存儲器元件中所存儲數(shù)據(jù)的刷新(806);根據(jù)相對于最近一次對所述第一組非易失性存儲器元件進行了編程的時間于何時對所述設(shè)備中的第二組非易失性存儲器元件進行了最近一次編程,確定出應(yīng)當對該第二組非易失性存儲器元件進行刷新程序(808);以及對所述第二組非易失性存儲器元件執(zhí)行所述刷新程序(810)。
2.根據(jù)權(quán)利要求1所述的方法,其中,執(zhí)行所述刷新程序包括基于所述第二組非易失性存儲器元件中的一個或多個非易失性存儲器元件的條件,確定是否刷新所述第二組非易失性存儲器元件中所存儲的數(shù)據(jù)。
3.根據(jù)權(quán)利要求1或2所述的方法,其中,所述確定應(yīng)當對所述設(shè)備中的第二組非易失性存儲器元件進行刷新程序包括確定所述設(shè)備中的哪些非易失性存儲器元件在所述第一組非易失性存儲器元件之前被編程。
4.根據(jù)權(quán)利要求1至3中任一項所述的方法,其中,所述確定應(yīng)當對所述設(shè)備中的第二組非易失性存儲器元件進行刷新程序包括存取與第一組非易失性存儲器元件相關(guān)的第一時間戳,該第一時間戳指出所述第一組非易失性存儲器元件被最近一次編程的時間;存取與所述設(shè)備中非易失性存儲器元件的塊相關(guān)的時間戳,與所述塊相關(guān)的該時間戳指出所述非易失性存儲器元件的塊中的每一個塊被最近一次編程的時間;以及確定哪個所述塊具有早于所述第一時間戳的相關(guān)時間戳。
5.根據(jù)權(quán)利要求1至4中任一項所述的方法,還包括將所述第一組編程至包括第一閾值電壓分布和第二閾值電壓分布的多個閾值電壓分布,并且,其中所述確定應(yīng)當執(zhí)行對所述第一組非易失性存儲器元件中所存儲數(shù)據(jù)的刷新包括確定所述第一組非易失性存儲器單元的閾值分布;確定所述閾值分布上的參考點;基于所述參考點的偏移,確定所述第一組中存儲的數(shù)據(jù)是否應(yīng)當刷新。
6.根據(jù)權(quán)利要求5所述的方法,其中,確定所述閾值分布中的參考點包括將多個讀取參考電壓施加至所述第一組中的至少一部分非易失性存儲器元件,在包括所述第二閾值電壓分布和第一閾值電壓分布中的一部分的電壓范圍上施加所述讀取參考電壓;基于施加所述讀取參考電壓,確定閾值分布中的凹谷,該凹谷為參考點。
7.根據(jù)權(quán)利要求6所述的方法,其中,所述第一組與多個字線相關(guān),并且,其中該方法還包括隨機選擇所述字線的第一字線以對其施加所述多個讀取參考電壓。
8.根據(jù)權(quán)利要求7所述的方法,其中,確定應(yīng)當執(zhí)行對所述設(shè)備的第一組非易失性存儲器元件中所存儲數(shù)據(jù)的刷新還基于所述第一字線的、相對于其它字線位置的位置。
9.根據(jù)權(quán)利要求8所述的方法,其中,確定應(yīng)當執(zhí)行對所述設(shè)備的第一組非易失性存儲器元件中所存儲數(shù)據(jù)的刷新還基于該第一組中的一個或多個非易失性存儲器元件已被編程的次數(shù)。
10.根據(jù)權(quán)利要求1至3中任一項所述的方法,其中,確定應(yīng)當對所述設(shè)備中第二組非易失性存儲器元件進行刷新程序包括存取所述設(shè)備中多個非易失性存儲器元件組中的每一個組的序列號,所述序列號表示所述多個組被編程的順序,且所述序列號包括用于所述第一組的第一序列號和用于所述第二組的第二序列號;以及確定應(yīng)當刷新序列號低于所述第一序列號的組中存儲的數(shù)據(jù),所述第二序列號低于所述第一序列號。
11.根據(jù)權(quán)利要求1所述的方法,其中,執(zhí)行所述刷新程序包括在沒有確定所述第二組非易失性存儲器元件存在數(shù)據(jù)完整性問題的情況下,刷新所述第二組非易失性存儲器元件中存儲的數(shù)據(jù)。
12.—種非易失性存儲器設(shè)備,包括多個非易失性存儲器元件組,包括第一組(塊i) 和第二組(塊i+n);以及與所述多個非易失性存儲器元件組通信的管理電路(220,230,240,242,244),該管理電路基于所述第一組非易失性存儲器元件中的一個或多個非易失性存儲器元件的條件,確定應(yīng)當執(zhí)行對該第一組非易失性存儲器元件中所存儲數(shù)據(jù)的刷新;該管理電路根據(jù)相對于最近一次對所述第一組非易失性存儲器元件進行了編程的時間于何時對所述第二組非易失性存儲器元件進行了最近一次編程,確定是否應(yīng)當對該第二組非易失性存儲器元件進行刷新程序;該管理電路對該第二組執(zhí)行刷新程序。
13.根據(jù)權(quán)利要求12所述的非易失性存儲器設(shè)備,其中,所述管理電路將所述第一組編程至包括第一閾值電壓分布和第二閾值電壓分布的多個閾值電壓分布,所述管理電路確定所述第一組非易失性存儲器單元的閾值分布,所述管理電路確定所述閾值分布上的凹谷,所述管理電路基于所述凹谷的偏移,確定是否應(yīng)當執(zhí)行對所述第一組非易失性存儲器元件中所存儲數(shù)據(jù)的刷新。
14.根據(jù)權(quán)利要求13所述的非易失性存儲器設(shè)備,其中,通過將多個讀取參考電壓施加至所述第一組中的至少一部分非易失性存儲器元件,所述管理電路確定所述凹谷,所述管理電路在包括所述第二閾值電壓分布和第一閾值電壓分布中的一部分的電壓范圍上施加所述讀取參考電壓。
15.根據(jù)權(quán)利要求12所述的非易失性存儲器設(shè)備,其中,基于所述第二組非易失性存儲器元件的最近一次編程是否在所述第一組的最近一次編程之前,所述管理電路確定所述第二組非易失性存儲器元件是否應(yīng)當進行所述刷新程序。
全文摘要
公開了用于刷新非易失性存儲器設(shè)備中的數(shù)據(jù)的技術(shù),該刷新足夠頻繁,足以克服錯誤的或遭破壞的數(shù)據(jù)比特,但不會太頻繁而干擾存儲器存取或?qū)е麓鎯ζ鲉卧摀^重。一個實施例包括基于設(shè)備中第一組非易失性存儲器元件中的數(shù)據(jù)的條件,確定執(zhí)行對該第一組非易失性存儲器元件中所存儲數(shù)據(jù)的刷新;根據(jù)相對于最近一次對所述第一組非易失性存儲器元件進行了編程的時間于何時對該設(shè)備中的第二組非易失性存儲器元件進行了最近一次編程,確定應(yīng)當對該第二組非易失性存儲器元件進行刷新程序;以及對所述第二組非易失性存儲器元件執(zhí)行所述刷新程序。
文檔編號G11C16/34GK102246241SQ200980150591
公開日2011年11月16日 申請日期2009年9月30日 優(yōu)先權(quán)日2008年12月18日
發(fā)明者尼瑪·穆赫萊斯 申請人:桑迪士克股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1