專利名稱:識別和減輕存儲器系統(tǒng)中的硬錯誤的制作方法
技術(shù)領(lǐng)域:
本公開的各實施方式涉及存儲器系統(tǒng)領(lǐng)域,并且更具體地涉及存儲器系統(tǒng)中的硬錯誤。
背景技術(shù):
在此出于一般地呈現(xiàn)本公開的上下文的目的而提供了背景技術(shù)描述。在該背景技術(shù)部分中所描述的當(dāng)前署名的發(fā)明人的工作以及本說明書中的并未以其他方式被判定為申請日時的現(xiàn)有技術(shù)的各方面,均不表示明確地或隱含地被承認為相對于本公開的現(xiàn)有技術(shù)。存儲器系統(tǒng)(例如,閃存系統(tǒng))通常包括解碼器以對從存儲器讀取的數(shù)據(jù)進行解碼。解碼器例如使用迭代軟解碼算法。例如,解碼器使用糾錯碼(ECC),諸如低密度奇偶校驗(LDPC)碼、Reed-Solomon(RS)碼、Turbo 碼,等等。存儲器系統(tǒng)中的錯誤可以包括硬錯誤和軟錯誤。用于存儲単元的對數(shù)似然比(LLR)與存儲單元中的數(shù)據(jù)比特等于I或O的概率相關(guān)聯(lián)。由于存儲単元中的硬錯誤,用于存儲單元的LLR的估計的誤差例如與由于軟錯誤的LLR的估計的誤差相比通常是顯著的。由干與硬錯誤相關(guān)聯(lián)的LLR的估計的顯著誤差,軟解碼算法(例如,LDPC碼)的性能在要解碼的數(shù)據(jù)中存在硬錯誤時顯著地惡化,即便是數(shù)據(jù)中僅存在有限數(shù)量的硬錯誤時也是如此。軟解碼算法的性能即便是在數(shù)據(jù)中的硬錯誤率相對較低時也會顯著地惡化。
發(fā)明內(nèi)容
在各種實施方式中,提供了ー種方法,包括估計用于存儲器的多個存儲單元的第一組對數(shù)似然比(LLR)值;基于第一組LLR值,執(zhí)行第一糾錯碼(ECC)解碼操作;響應(yīng)于確定第一 ECC解碼操作失敗,通過調(diào)整第一組LLR值生成用于該多個存儲単元的第二組LLR值;以及基于第二組LLR值,執(zhí)行第二 ECC解碼操作。本公開還提供了一種用于操作包括多個字線(word line)的存儲器的方法,其中該多個字線中的每ー個包括M個存儲単元,其中M是整數(shù),其中存儲器進ー步包括M個位線(bit line),其中該M個位線中的姆ー個與該多個字線中的姆ー個中的該M個存儲單元中的對應(yīng)的存儲單元相關(guān)聯(lián),并且其中該方法包括在解碼來自該多個字線的子集中的每ー個的讀取數(shù)據(jù)的同時,針對至少第一數(shù)量的字線中的每ー個識別該M個存儲単元中的第K個存儲単元具有錯誤;以及響應(yīng)于第一數(shù)量大于閾值,確定該M個位線中的第K個位線有故障。
本公開還提供了一種用于處理存儲器中的存儲單元的方法,其中存儲器包括存儲単元,其中存儲單元配置為存儲至少第一比特和第二比特,該方法包括通過將第一比特的第一值校正為第二值來解碼與第一比特相關(guān)聯(lián)的讀取數(shù)據(jù),其中第二值對應(yīng)于存儲単元的N個閾值電壓范圍;未能解碼與第二比特相關(guān)聯(lián)的讀取數(shù)據(jù);以及響應(yīng)于未能解碼與第二比特相關(guān)聯(lián)的讀取數(shù)據(jù),基于(i)與第一比特相關(guān)聯(lián)的讀取數(shù)據(jù)和(ii)與第二比特相關(guān)聯(lián)的讀取數(shù)據(jù),識別與第二比特相關(guān)聯(lián)的第一閾值電壓范圍,確定第一閾值電壓范圍是否既不鄰近該N個閾值電壓范圍中的至少ー個也不包括在該N個閾值電壓范圍中的至少ー個內(nèi),以及基于該確定處理存儲單元。
通過結(jié)合附圖的以下詳細描述,將很容易理解實施方式。實施方式在附圖的各圖中以示例的方式而不是以限制的方式示出。圖I示意性地圖示了存儲器系統(tǒng)的示例。
圖2圖示了存儲器的存儲塊的一部分。圖3圖示了用于對存儲在存儲器中的數(shù)據(jù)進行ECC解碼的方法的示例。圖4圖示了用于調(diào)節(jié)所估計的LLR以減輕存儲器的一個或多個存儲単元中的硬錯誤的影響的方法的示例。圖5圖示了描繪對所估計的LLR的調(diào)整的各種曲線圖的示例。圖6圖示了 2比特/單元存儲單元的閾值電壓分布的示例。圖7至圖9圖示了施加于存儲單元的參考電壓。圖10圖示了用于識別存儲器中的阻塞単元(stuck cell)的方法的示例。圖11圖示了存儲器的存儲塊的一部分的多個存儲單元,其中該多個存儲單元中的某些被錯誤地編程。圖12圖示了用于識別存儲器中的有故障的位線的方法的示例。
具體實施例方式圖I示意性地圖示了存儲器系統(tǒng)10的示例。存儲器系統(tǒng)10包括存儲器14。存儲器14是任何適當(dāng)類型的存儲器,例如,易失性存儲器(例如,適當(dāng)類型的隨機存取存儲器)、非易失性存儲器(例如,只讀存儲器),等等。在實施方式中,存儲器14是電可擦除可編程只讀存儲器(EEPROM),例如,閃存。雖然在圖I中未示出,存儲器14包括多個存儲塊,其中每個存儲塊包括多個存儲單元,每個存儲單元存儲ー個或多個比特的數(shù)據(jù)。例如,存儲器14的各存儲單元可以是單層單元(SLC),其存儲單個比特的數(shù)據(jù)。在另ー示例中,存儲器14的各存儲單元可以是多層単元(MLC),其存儲多個比特的數(shù)據(jù)。存儲器系統(tǒng)10包括讀取控制模塊20,讀取控制模塊20包括讀取模塊24、LLR估計模塊28、解碼器模塊32以及硬錯誤模塊36。讀取控制模塊20配置為從存儲器14讀取數(shù)據(jù)并對其進行解碼。雖然在圖I中未示出,存儲器系統(tǒng)10還包括各種其他組件,例如,配置為在存儲器14中寫入數(shù)據(jù)(例如,可能是在對數(shù)據(jù)進行編碼和/或加密之后)的寫入控制模塊、編碼模塊,等等。
在實施方式中,讀取控制模塊20的ー個或多個組件可以使用例如電子電路、處理器、組合邏輯電路和/或其他合適的組件來實現(xiàn)。在各種實施方式中,數(shù)據(jù)由讀取控制模塊20以存儲頁面為単位從存儲器14讀取。也就是說,來自存儲器14的存儲頁面的存儲單元的數(shù)據(jù)比特在單個讀取周期期間被讀取。在讀取周期期間,讀取模塊24向存儲頁面的各存儲單元施加參考電壓。對于給定的存儲單元,讀取模塊24確定存儲單元的電壓電平與所施加的參考電壓相比是更高還是更低。基于該確定,例如,如果存儲單元是SLC,則LLR估計模塊28和/或解碼器模塊32估計存儲単元中存儲的比特是零還是一。如果存儲單元是MLC,則施加多個參考電壓以估計存儲在存儲單元中的比持。因此,讀取周期與ー個或多個參考電壓相關(guān)聯(lián),該ー個或多個參考電壓在讀取周期期間被施加于存儲器14的存儲頁面的存儲單元。當(dāng)讀取模塊24從存儲單元讀取數(shù)據(jù)時,LLR估計模塊28提供對存儲器14的存儲単元的數(shù)據(jù)比特的軟估計。例如,LLR估計模塊28以LLR的形式提供每個數(shù)據(jù)比特是O或I的概率。LLR指示從存儲器14讀取的每個數(shù)據(jù)比特為零(“O”)或一(“I”)的置信度。
基于所估計的數(shù)據(jù)比特的LLR,解碼器模塊32對數(shù)據(jù)進行解碼。LLR的估計直接影響解碼性能以及存儲器系統(tǒng)10的性能??梢詫⒂糜跀?shù)據(jù)比特的LLR定義為
f數(shù)據(jù)比特等于ο的概率I _ i5gL數(shù)據(jù)比特等于I的概率J因此,正的LLR表明數(shù)據(jù)比特等于O的概率較大,負的LLR表明數(shù)據(jù)比特等于I的概率較大。也就是說,LLR的符號提供了對數(shù)據(jù)比特的估計,LLR的大小提供了估計的可靠性(例如,LLR = O意味著估計完全不可Φ,并且|LLR| = 00意味著估計完全可Φ并且比特值已知)。用于確定LLR的示例方法可以例如在2012年2月15日提交的美國專利申請No. 13/397,434(律師存檔號1^4055)中找到,整個公開在此通過引用的方式包含其全部內(nèi)容。解碼器模塊32使用迭代軟解碼技術(shù)執(zhí)行解碼操作。例如,解碼器模塊32使用糾錯碼(ECC),諸如低密度奇偶校驗(LDPC)碼、Reed-Solomon(RS)碼、Turbo碼,或者任何其他適當(dāng)?shù)挠糜趯?shù)據(jù)進行ECC解碼的迭代軟解碼代碼。在實施方式中,硬錯誤模塊36識別存儲器14中的硬錯誤,并且/或者減輕硬錯誤在解碼處理期間的影響,正如在此將更詳細地討論那樣。軟錯誤和硬錯誤存儲器系統(tǒng)中的錯誤通常包括硬錯誤和軟錯誤。軟錯誤是讀取和/或解碼所存儲的數(shù)據(jù)時看起來隨機的錯誤。軟錯誤可能是由例如偶然的電噪聲、環(huán)境條件、存儲器14的老化等等引起的。在示例中,由于存儲單元中的軟錯誤,用于存儲單元的LLR的估計的誤差不顯著(例如,與由于硬錯誤的LLR的估計的誤差相比)。例如,從用于實際存儲在存儲單元中的比特的LLR的均值估計LLR時的偏差在存儲單元中存在軟錯誤的情況下不顯著(例如,與硬錯誤情況下相比)。例如,由于軟錯誤,可能將存儲單元的LLR估計為+1,同時將比特I存儲在存儲單元中(例如,用于存儲在存儲單元中的比特I的LLR的均值例如是-12)。在另ー示例中,由于軟錯誤,可能將另一存儲單元的LLR估計為-2,同時將比特O存儲在存儲單元中(例如,用于存儲在存儲單元中的比特O的LLR的均值例如是+12)。相反,由于存儲単元中的硬錯誤,用于存儲単元的LLR的估計的誤差通常是顯著的(例如,與由于軟錯誤的LLR的估計的誤差相比)。例如,從用于實際存儲在存儲單元中的比特的LLR的均值估計LLR時的偏差在存儲單元中存在硬錯誤的情況下是顯著大的(例如,與軟錯誤情況下相比)。例如,由于硬錯誤,可能將存儲單元的LLR估計為+11,同時將比特I存儲在存儲單元中(其中用于存儲在存儲單元中的比特I的LLR的均值例如是-12)。也就是說,在這一示例中,所估計的LLR是大的正數(shù),而將比特I存儲在存儲單元中(即,LLR應(yīng)當(dāng)是大的負數(shù))。在另ー示例中,由于硬錯誤,可能將另一存儲單元的LLR估計為-10,同時將比特O存儲在存儲單元中(其中用于存儲在存儲單元中的比特O的LLR的均值例如是+12)。在實施方式中,硬錯誤代表存儲器陣列的暫時的、半永久性的或永久性的電故障, 通常局限于特定的存儲位置(例如,局限于存儲器的一個或多個存儲単元),但有時也可能與存儲器陣列的外圍電路相關(guān)聯(lián)從而使得整個陣列都會受影響。在示例中,由于LLR估計中的與硬錯誤相關(guān)聯(lián)的顯著偏差,軟解碼算法(例如,LDPC碼)的性能在要解碼的數(shù)據(jù)中存在硬錯誤時顯著地惡化,即便是數(shù)據(jù)中僅存在有限數(shù)量的硬錯誤時也是如此(即,軟解碼算法的性能顯著地惡化,即便是數(shù)據(jù)中的硬錯誤率相對較低時也是如此)。因此,可能所希望的是識別存儲器14中的硬錯誤,并且可能地在使用軟解碼算法來對來自存儲器14中的數(shù)據(jù)進行解碼時減輕硬錯誤的影響。在存儲器中發(fā)生硬錯誤背后的示例原因圖2圖示了圖I的存儲器14的存儲塊200的一部分。存儲塊200具有多個字線216a,...,216N以及多個位線220a,...,220M,其中M和N是適當(dāng)?shù)恼麛?shù)。在對應(yīng)的字線和對應(yīng)的位線的交叉處形成相應(yīng)的存儲單元,如圖2所圖示。例如,存儲單元All, A12, ,AIM與字線216a相關(guān)聯(lián),存儲單元A21,A22,. . .,A2M與字線216b相關(guān)聯(lián),等等(雖然出于說明的清楚性的目的,在圖2中并未標出全部的存儲單元)。類似地,存儲單元A11,A21,...,ANl與位線220a相關(guān)聯(lián),存儲單元A12,A22,. . .,AN2與位線220b相關(guān)聯(lián),等等。通過在對應(yīng)的字線和對應(yīng)的位線中施加和/或感應(yīng)電壓來編程或讀取存儲單元。除非另有說明以及出于本公開的目的,與字線相關(guān)聯(lián)的存儲頁面包括字線的存儲單元。例如,存儲單元All,A12,...,AlM形成與字線216a相關(guān)聯(lián)的存儲頁面。在實施方式中,存儲頁面中的全部存儲單元(即,對應(yīng)的字線中的全部存儲單元)在單個讀取周期期間被讀取(并且在單個編程周期期間被編程)。在實施方式中,硬錯誤可能由于例如有故障的位線而發(fā)生在存儲塊的多個存儲單元中。例如,如果位線220b有故障,則存儲單元A12,A22,. . . AN2中的某些或全部可能不會被正確地編程。例如,如果存儲單元A12,A22,. . . AN2是SLC存儲單元,則存儲單元A12,A22, . . . AN2中的大約一半可能由于位線220b中的故障而被錯誤地編程。在另ー示例中,如果存儲單元A12, A22,· · · AN2是2比特MLC存儲單元,則全部存儲單元A12,A22,· · · AN2中的大約3/4可能由于位線220b中的故障而被錯誤地編程。在實施方式中,存儲器14中的存儲單元可能阻塞到特定的已編程的值,從而導(dǎo)致存儲單元中的硬錯誤。例如,在2比特存儲単元的第一編程周期期間,存儲単元被編程為11。在存儲單元的第二編程周期(在此期間存儲單元將被編程為例如10)期間,存儲単元未能被編程為值10(例如,由于存儲単元中的故障)。相應(yīng)地,在第二編程周期之后,存儲単元將繼續(xù)存儲11,即便曾要存儲在存儲單元中的是10,從而導(dǎo)致硬錯誤。這種存儲單元在此又稱為“阻塞的存儲單元”。阻塞的存儲單元可能暫時地(例如,僅僅持續(xù)ー個編程周期)、半永久性地(例如,持續(xù)少量幾個編程周期)或永久性地(例如,持續(xù)許多編程周期)阻塞。在示例中,阻塞的SLC存儲單元具有50%的被正確地編程的概率。在另ー示例中,如果阻塞的存儲單元是2比特MLC存儲單元,則阻塞的存儲單元有大約25%的概率可能被正確地編程。雖然上述討論了存儲器14中的硬錯誤的兩個示例原因(例如,由于有故障的位線而產(chǎn)生的硬錯誤,以及由于阻塞的存儲單元而產(chǎn)生的硬錯誤),可能有其他的與存儲器14中的硬錯誤相關(guān)聯(lián)的原因(例如,與存儲器14的一個或多個存儲單元相關(guān)聯(lián)的電路中的故障)。識別和/或減輕硬錯誤的影響 正如先前所討論的那樣,軟解碼算法(例如,LDPC碼)的性能在要解碼的數(shù)據(jù)中存在硬錯誤時顯著地惡化。相應(yīng)地,所希望的是在對從存儲器14讀取的數(shù)據(jù)進行解碼的同時減輕硬錯誤的影響。圖3圖示了用于對存儲在存儲器系統(tǒng)10中的數(shù)據(jù)進行ECC解碼的方法300的示例。在304處,圖I的讀取模塊24對存儲器14的多個存儲単元執(zhí)行讀取操作,LLR估計模塊28估計相關(guān)聯(lián)的LLR,并且解碼器模塊32基于所估計的LLR執(zhí)行ECC解碼。如果在308處ECC解碼成功(即,如果在308處為“是”),則方法300返回304處(例如,執(zhí)行存儲器14的另外多個存儲単元的讀取和解碼操作)。如果在308處ECC解碼失敗(即,如果在308處為“否”),則讀取控制模塊20 (例如,硬錯誤模塊36)執(zhí)行ー個或多個硬錯誤識別和/或減輕技木。在此將更詳細地討論方法300的一個或多個硬錯誤識別和/或減輕技術(shù)312。使用LLR調(diào)整來減輕硬錯誤的影響正如先前所討論的那樣,由于存儲單元中的硬錯誤,用于存儲單元的LLR的估計的誤差是顯著的。在示例中,假定用于存儲器14的存儲單元的LLR的估計的范圍可以在-12與+12之間(S卩,所估計的LLR的范圍可以從-12到+12,雖然這種范圍僅僅是ー個示例,并不會限制本公開的啟示)。在示例中,由于第一存儲單元中的硬錯誤,將第一存儲單元的LLR估計為+11,同時在第一存儲單元中存儲比特I。也就是說,在這ー示例中,基于存儲在第一存儲單元中的比特1,LLR的均值是相對較大的負數(shù)(例如,-12);而所估計的用于第一存儲單元的LLR是大的正數(shù)(即,+11)。因此,由于硬錯誤,在用于第一存儲單元的LLR的估計中有大的錯誤。此外,由于所估計的LLR的大的大小(即,11),在解碼處理期間,解碼器模塊32認為第一存儲單元以非常高的概率存儲比特O ( S卩,解碼器模塊32以非常高的置信度假定存儲器中存儲了比特O)——而實際上,曾要編程在第一存儲單元中編程的是比特I。作為結(jié)果,在解碼處理期間,甚至是考慮第一存儲單元中可能存儲的是比特1(而不是比特O)的可能性對于解碼器模塊32都是相對困難的。在實施方式中,為對抗或減輕解碼器模塊32關(guān)于存儲在存儲器14的各種各樣的存儲單元中的數(shù)據(jù)比特的假定中的這種高置信度,調(diào)整用于各種各樣的存儲單元的LLR的估計,正如下面將討論的那樣。
圖4圖示了用于調(diào)整所估計的LLR以減輕存儲器14的一個或多個存儲單元中的硬錯誤的影響的方法400的示例。圖5圖示了描繪對所估計的LLR的調(diào)整的各種曲線圖的示例。參考圖I、圖4和圖5,在404處,LLR估計模塊估計用于存儲器(例如,圖I的存儲器14)的多個存儲単元的第一組LLR。對第一組LLR的估計基于例如由讀取模塊24對多個存儲單元執(zhí)行的讀取操作。在實施方式中,第一組LLR包括多個所估計的LLR(例如,對應(yīng)于該多個存儲單元)。在實施方式中,第一組LLR包括對應(yīng)于具有硬錯誤的該多個存儲單元中的ー個或多個的ー個或多個LLR估計。也就是說,第一組LLR的該ー個或多個LLR估計(對應(yīng)于該ー個或多個存儲単元)具有顯著錯誤。在實施方式中,第一組LLR包括范圍在例如-12到+12之間(正如在以上示例中討論的那樣)的該多個所估計的LLR(例如,對應(yīng)于該多個存儲單元)。例如,圖5將第一組LLR圖示為曲線圖504 (在圖5中標記為“第一組LLR 504”)。如圖5所圖示,該多個存儲單元中的各存儲單元被分配了第一組LLR的LLR估計,范圍從-12到+12。
再次參考圖4,在408處,解碼器模塊32嘗試基于對應(yīng)的第一組LLR對從多個存儲單元讀取的數(shù)據(jù)進行ECC解碼。如果ECC解碼成功(即,如果在408處為“是”),則該多個存儲單元的當(dāng)前讀取和解碼操作在416處結(jié)束。然而,如果在408處ECC解碼操作失敗(即,如果在408處為“否”),則在412處,讀取控制模塊20 (例如,硬錯誤模塊36)通過調(diào)整第一組LLR來生成用于該多個存儲単元的第二組LLR。例如,第一組LLR中的每個LLR在第二組LLR中具有對應(yīng)的LLR(即,第一組LLR中的各LLR被映射到第二組LLR中的對應(yīng)的LLR)。在實施方式中,第二組LLR中的LLR的范圍小于第一組LLR中的LLR的范圍。第二組LLR中的LLR的范圍從例如-10到+10,如圖5所圖示。第一組LLR中的LLR到第二組LLR中的對應(yīng)的LLR的映射可以用各種方式來執(zhí)行,圖5中圖示了其中ー種方式。在圖5中所圖示的示例中,第一組LLR中的LLR -12被映射為第二組LLR中的-10,第一組LLR中的LLR +12被映射為第二組LLR中的+10,并且第一組LLR中的LLR O被映射為第二組LLR中的O。使用線性或非線性函數(shù)將第一組LLR中的其他LLR映射到第二組LLR中的對應(yīng)的LLR。例如,圖5圖示了將第一組LLR中的LLR映射到第二組LLR中的對應(yīng)的LLR的示例曲線。在實施方式中,減小第一組LLR中的各LLR的大小以生成第二組LLR中的對應(yīng)的LLR0例如,減小第一組LLR中的LLR Lla和L2a的大小以分別生成第二組LLR中的LLR Llb和L2b。在將第一組LLR中的LLR Lla映射到第二組LLR中的LLR Llb時產(chǎn)生大小的第一減小,并且在將第一組LLR中的LLR L2a映射到第二組LLR中的LLR L2b時產(chǎn)生大小的第ニ減小。在實施方式中,響應(yīng)于LLRLla的大小大于LLR L2a的大小,大小的第一減小大于大小的第二減小。也就是說,第一組LLR中的LLR的大小越高,在生成第二組LLR中的對應(yīng)的LLR時LLR大小的減小越大。再次參考圖4,在420處,解碼器模塊32使用第二組LLR重試ECC解碼。雖然在圖4中未示出,如果在420處ECC解碼不成功,則通過調(diào)整第二組LLR生成第三組LLR(例如,如圖5所圖示),并且使用第三組LLR再一次重試ECC解碼,其中第三組LLR的范圍(例如,在圖5中為在-9到+9之間)小于第二組LLR的范圍。
在實施方式中,通過減少第一組LLR的范圍來生成第二組LLR有助于減輕硬錯誤的影響。例如,正如先前所討論的那樣,由于第一存儲單元中的硬錯誤,可以將第一存儲單元的LLR估計為+11,同時在第一存儲單元中存儲比特I。因此,在這ー示例中,第一組LLR包括用于第一存儲單元的+11值。然而,在生成第二組LLR時,將LLR值+11映射為第ニ組LLR中的例如+9. 2。所以,在解碼器模塊32在420處嘗試執(zhí)行ECC解碼時,其使用+9. 2作為用于第一存儲單元的LLR值用于ECC解碼。也就是說,在該解碼操作期間,解碼器模塊32在對第一存儲單元的LLR估計上具有相對較低的置信度(例如,與在408處的初始ECC解碼期間基于用于第一存儲單元的LLR值+11而具有的置信度相比)。相應(yīng)地,在從第一組LLR生成第二組LLR時減小LLR的范圍降低了解碼器模塊32對具有相對較高的大小的LLR的置信度。由于硬錯誤(例如,在ECC解碼期間難以檢測的那些硬錯誤)通常與高大小的LLR值相關(guān)聯(lián),LLR范圍的這種減小(以及作為結(jié)果的LLR大小的減小)使得解碼器模塊32對硬錯誤的檢測更加容易。
識別和減輕由于阻塞単元而產(chǎn)生的硬錯誤圖6圖示了圖I的存儲器14的2比特/單元存儲單元600的閾值電壓分布的示例。例如,在圖6中,分布604a與比特11相關(guān)聯(lián),分布604b與比特10相關(guān)聯(lián),分布604c與比特00相關(guān)聯(lián),并且分布604d與比特01相關(guān)聯(lián)。因此,存儲單元600是MLC存儲單元。雖然將存儲單元600假定為2比特/単元存儲單元,但在另ー實施方式中,存儲單元600可以存儲任何其他適當(dāng)數(shù)量的比特(例如,3、4,等等),并且2比持/単元存儲單元并不限制本公開的教示。正如先前所討論的那樣,存儲器14中的存儲單元可能阻塞到特定已編程的值,導(dǎo)致存儲單元中的硬錯誤。例如,存儲單元600可能阻塞到已編程的值11。相應(yīng)地,在將存儲単元600重新編程為例如00期間,存儲単元600可能保持阻塞到先前已編程的值11。出于本公開的目的以及除非另有說明,2比特/単元存儲單元600的第一比特(例如,左邊的比持)稱為最大距離(MD)比特并且2比持/単元存儲單元600的第二比特(例如,右邊的比持)稱為最小距離(LD)比特,如圖6所圖示。在每單元多比特的設(shè)備中,每個存儲單元可以存儲多個比特。在示例中,在存儲單元中的比特的排序方面,不同的設(shè)備廠商可以具有不同的習(xí)慣。舉例來說,考慮ー種2比特/單元設(shè)備(例如,圖6的存儲單元600),其中有三個可能的參考電壓X、Y和Z。其中ー個比特的值可以通過驅(qū)動參考電壓Y來推斷,而另ー比特的值可以通過驅(qū)動參考電壓X和Z來推斷??梢詫Υ鎯卧械谋忍剡M行排序從而使得用于ー個廠商的最高有效比特(MSB)可以是用于另ー廠商的最低有效比特(LSB),反之亦然。為了避免這種模糊性,在本公開中,使用了用于2比持/単元設(shè)備的術(shù)語最大距離(MD)比特和最小距離(LD)比持。MD比特對應(yīng)于可以通過驅(qū)動例如參考電壓Y來推斷的比持,并且LD比特對應(yīng)于可以通過驅(qū)動參考電壓X和Z來推斷的比持。與LD比特相比,MD比特經(jīng)歷更少的錯誤可能性,從而表現(xiàn)為在相鄰狀態(tài)之間具有更大的距離??梢詫⑿g(shù)語推廣到每單元三比特的設(shè)備以便具有MD比持、中心距離(CD)比特和LD比持。更一般地,具有k比特/単元的設(shè)備具有從O到(k-Ι)的k種類型的比持。在2比特/単元設(shè)備的情況下,MD比特是類型0,LD比特是類型I。在3比特/単元設(shè)備中,MD比特是類型0,⑶比特是類型1,LD比特是類型2。再次參考圖6,在實施方式中,存儲單元600包括在存儲器14的存儲頁面608中。存儲頁面608與存儲器14的字線(例如,圖2的字線216a)相關(guān)聯(lián),并且包含多個存儲單元,包括存儲單元600。由于2比持/単元存儲單元具有四種可能的狀態(tài),為阻塞的単元的2比持/単元存儲單元的大約1/4將被編程為正確的值。在示例中,如果存儲單元600阻塞在11并且將被編程為10,則存儲単元600阻塞到正確的MD值(但將具有錯誤的LD值)。在另ー示例中,如果存儲單元600阻塞在11并且將被編程為01,則存儲單元600阻塞到正確的LD值(但是將具有錯誤的MD值)。類似地,在另ー示例中,如果存儲単元600阻塞在11并且將被編程為00,則存儲單元600將具有錯誤的MD和LD值。在讀取存儲單元600的比特時,首先讀取和解碼MD比特(例如,在讀取和解碼存儲頁面608的多個存儲単元(包括存儲單元600)的MD比特時),接著是讀取和解碼LD比特(例如,在讀取和解碼存儲頁面608的多個存儲単元(包括存儲單元600)的LD比特時)。存儲單元600的MD比特通過施加其值大約在分布604b與604c之間的參考電壓來 讀取(但是,例如,如果施加單個參考電壓不足以解碼MD比特,則可以施加多個參考電壓)。基于所施加的參考電壓,估計與存儲單元600的MD比特相關(guān)聯(lián)的LLR值,并且解碼器模塊32解碼存儲頁面608的多個存儲単元的MD比特以確定存儲単元600的MD比特值。在讀取和解碼存儲単元的MD比特之后,讀取控制模塊20嘗試讀取和解碼存儲單元600的LD比特。例如,存儲單元600的LD比特通過施加兩個參考電壓來讀取(例如,一個大約在分布604a與604b之間,另ー個大約在分布604c與604d之間)?;谒┘拥膮⒖茧妷海烙嬇c存儲單元600的LD比特相關(guān)聯(lián)的LLR值,并且解碼器模塊32解碼存儲頁面608的多個存儲単元的LD比特以確定存儲単元600的LD比特值。如果存儲單元600的LD比特的解碼失敗,則讀取控制模塊20 (例如,讀取模塊24)通過施加多個參考電壓來嘗試重新讀取存儲單元600的LD比特。例如,向存儲單元600施加參考電壓VI,. . .,v8,如圖7所圖示。參考電壓VI,. . .,v8將閾值電壓區(qū)域劃分為區(qū)域A,B,. . .,H和A。例如,如果確認存儲單元的閾值電壓大于v2,但小于v3,則確定存儲單元600的閾值電壓位于區(qū)域C。在另ー不例中,如果確認存儲單兀的閾值電壓大于v7,但小于v8,則確定存儲單元600的閾值電壓位于區(qū)域H。如果確認存儲單元的閾值電壓小于VI,則存儲単元的LD比特很可能是I。類似地,如果確認存儲單元的閾值電壓大于v8,則存儲單元的LD比特很可能是I。也就是說,在電壓Vl左邊的閾值電壓區(qū)域和在電壓v8右邊的閾值電壓區(qū)域兩者都與存儲單元600的LD比特很可能是I相關(guān)聯(lián)。相應(yīng)地,這兩個閾值電壓區(qū)域被標記為A。基于對閾值電壓區(qū)域A,. . .,H之一的選擇,LLR估計模塊28估計用于LD比特的LLR,并且解碼器模塊32嘗試基于所估計的LLR解碼LD比持。如果LD比特的解碼失敗,則讀取控制模塊20嘗試確定存儲単元600是否是阻塞単元。為確定存儲單元600是否是阻塞単元,再次使用與MD比特相關(guān)聯(lián)的讀取數(shù)據(jù)。例如,參考圖8,假定先前將參考電壓v9施加于存儲單元600以讀取和解碼MD比特。將與參考電壓v9相關(guān)聯(lián)的讀取數(shù)據(jù)用于進ー步劃分存儲單元600的閾值電壓區(qū)域。應(yīng)當(dāng)注意,與參考電壓v9相關(guān)聯(lián)的讀取數(shù)據(jù)包括確定存儲單元600的閾值電壓是大于還是小于參考電壓v9?;趨⒖茧妷篤I,...,v9,將存儲単元600的閾值電壓區(qū)域劃分為閾值電壓區(qū)域A’,. . .,J’,如圖8所圖示,并且將閾值電壓區(qū)域A’,. . .,J’之一識別為包括存儲單元600的閾值電壓。應(yīng)當(dāng)注意,與圖7不同,在圖8中,在電壓vl左邊的閾值電壓區(qū)域與在電壓v8右邊的閾值電壓區(qū)域相區(qū)別的。這是因為,由于MD比特信息現(xiàn)在是可用的,因此在電壓vl左邊的閾值電壓區(qū)域現(xiàn)在很可能是11,而在電壓v8右邊的閾值電壓區(qū)域現(xiàn)在很可能是01。相應(yīng)地,在圖8中,在電壓vl左邊的閾值電壓區(qū)域被標記為A’,并且在電壓v8右邊的閾值電壓區(qū)域被標記為J’。在圖7中,在電壓vl左邊的閾值電壓區(qū)域和在電壓v8右邊的閾值電壓區(qū)域不是可區(qū)別的,因為這兩個區(qū)域都與用于LD比特的值I相關(guān)聯(lián)。然而,使用對于MD比特可用的讀取數(shù)據(jù),這兩個區(qū)域現(xiàn)在是可區(qū)別的,如圖8所圖示。在實施方式中,如果MD比特在MD比特讀取操作期間被正確地識別(即,在解碼MD比特時,未對MD比特值進行校正),則不能進行關(guān)于存儲単元600是否是阻塞単元的確定(即,不能確定存儲單元600是否是阻塞単元)。
在實施方式中,如果MD比特在MD比特讀取操作期間被不正確地識別(即,在解碼MD比特時,對MD比特值進行了校正),則能夠有可能進行關(guān)于存儲単元600是否是阻塞單元的確定,在此將更詳細地討論這ー點。假定在MD比特的解碼期間,MD比特值從I被校正到O。圖9中圖示了存儲單元的閾值電壓的范圍(其對應(yīng)于MD比特等于O)。也就是說,閾值電壓區(qū)域F’,. . .,J’對應(yīng)于MD比特等于O。因此,閾值電壓區(qū)域F,,. . .,J’對應(yīng)于MD比特的正確值。如果在讀取存儲單元600的LD比特時,將存儲單元600的閾值電壓識別為包括在閾值電壓區(qū)域F’,. . .,J’之一中,則不可能進行關(guān)于存儲単元600是阻塞単元的概率的確定。類似地,如果在讀取存儲單元600的LD比特時,將存儲單元600的閾值電壓識別為包括在閾值電壓區(qū)域E’中,則不可能進行關(guān)于存儲単元600是阻塞単元的概率的確定(因為在這種情況下,例如,存儲單元600的實際閾值電壓可能在閾值電壓區(qū)域F’中;而由于軟錯誤,閾值電壓區(qū)域E’被識別為是包括存儲單元600的閾值電壓的區(qū)域)。在實施方式中,如果在讀取存儲單元600的LD比特時,將存儲單元600的閾值電壓識別為包括在閾值電壓區(qū)域A’,. . .,D’之一中,則將存儲單元600識別為阻塞単元。這是因為,在這種情況下,存儲單元600的實際閾值電壓在閾值電壓區(qū)域F’,. . .,J’之一中;并且在(i)存儲單元的實際閾值電壓與(ii)被識別為是包括存儲單元600的閾值電壓的區(qū)域的閾值電壓區(qū)域之間存在顯著的偏差。換言之,如果在讀取存儲單元600的LD比特時,將存儲単元600的閾值電壓識別為包括在閾值電壓區(qū)域A’,. . .,D’之一中,則在所估計的LLR中將存在顯著誤差,導(dǎo)致硬錯誤。如果存儲單元600被識別為阻塞單元,則LLR估計模塊28向存儲單元600分配零LLR(例如,零LLR表示LLR估計模塊28不確定存儲單元600中存儲的是什么)。在實施方式中,由于MD比特已經(jīng)被成功地解碼,LLR估計模塊28僅向存儲單元600的LD比特分配零LLR。在另ー實施方式中,LLR估計模塊28向存儲單元600的MD比特和LD比特兩者分配零LLR。一旦已經(jīng)將零LLR分配給存儲単元600 (例如,分配給存儲単元600的LD比特),解碼器模塊32就嘗試使用例如用于存儲単元600的LD比特的零LLR重新解碼存儲頁面608的LD比特。
圖10圖示了用于識別存儲器(例如,存儲器14)中的阻塞單元的方法的示例。在1004處,讀取控制模塊20 (例如,解碼器模塊32)解碼與存儲單元(例如,存儲單元600)的第一比特(例如,MD比持)相關(guān)聯(lián)的讀取數(shù)據(jù)。在實施方式中,在解碼與第一比特相關(guān)聯(lián)的讀取數(shù)據(jù)時,將第一比特的第一值校正為第二值。例如,將存儲単元600的MD比特從I校正為0,正如先前在示例中所討論的那樣。在實施方式中,第二值對應(yīng)于存儲單元的N個閾值電壓范圍,其中N是整數(shù)。例如,存儲單元600的MD比特的第二值O對應(yīng)于存儲單元600的五個閾值電壓范圍(例如,圖11和圖12的閾值電壓區(qū)域F’,. . .,J’)。在1008處,解碼器模塊32未能解碼與存儲單元的第二比特(例如,LD比特)相關(guān)聯(lián)的讀取數(shù)據(jù)。與第二比特相關(guān)聯(lián)的讀取數(shù)據(jù)包括例如對應(yīng)于參考電壓vl,. . ·,v8的讀取數(shù)據(jù),如圖7所圖示。應(yīng)當(dāng)注意,在方法1000的1008中,與第二比特相關(guān)聯(lián)的讀取數(shù)據(jù)包括在重新讀取存儲單元600的LD比特期間讀取的讀取數(shù)據(jù)(例如,因為在圖10中未示出的先前的讀取操作也失敗了)。在1012處,讀取控制模塊20 (例如,硬錯誤模塊36)基于(i)與第一比特相關(guān)聯(lián)的讀取數(shù)據(jù)和(ii)與第二比特相關(guān)聯(lián)的讀取數(shù)據(jù),識別與第二比特相關(guān)聯(lián)的第一閾值電 壓范圍。例如,基于(i)與參考電壓v9相關(guān)聯(lián)的讀取數(shù)據(jù)(其對應(yīng)于與第一比特相關(guān)聯(lián)的讀取數(shù)據(jù))和(ii)與參考電壓vl,. . .,v8相關(guān)聯(lián)的讀取數(shù)據(jù)(其對應(yīng)于與第二比特相關(guān)聯(lián)的讀取數(shù)據(jù)),識別與第二比特相關(guān)聯(lián)的第一閾值電壓范圍,其中第一閾值電壓范圍是圖8和圖9的閾值電壓范圍A’,. . .,J’之一。在1016處,讀取控制模塊20 (例如,硬錯誤模塊36)確定第一閾值電壓范圍是否包括在N個閾值電壓范圍中的至少ー個中或鄰近于N個閾值電壓范圍中的至少ー個(例如,其中N個閾值電壓范圍包括閾值電壓區(qū)域F’,. . .,J’)。如果第一閾值電壓范圍包括在N個閾值電壓范圍中的至少ー個中或鄰近于N個閾值電壓范圍中的至少ー個(即,如果在1016處為“是”),則不能進行關(guān)于存儲単元是否是阻塞單元的確定。如果第一閾值電壓范圍既不包括在N個閾值電壓范圍中的至少ー個中又不鄰近于N個閾值電壓范圍中的至少ー個(S卩,如果在1016處為“否”),則在1020處,將存儲單元識別為潛在的阻塞単元。雖然在圖10中未示出,如果將存儲單元600識別為阻塞單元,則LLR估計模塊28向存儲單元600 (例如,向存儲單元600的第二比特)分配零LLR。一旦已經(jīng)將零LLR分配給存儲單元600,解碼器模塊32就嘗試使用例如用于存儲單元600的LD比特的零LLR重新解碼存儲頁面608的LD比特。雖然圖6至圖9的存儲單元600是2比持/単元存儲單元,但在實施方式中,方法1000可以推廣到設(shè)置為存儲任何數(shù)量(例如,三、四,等等)比特的存儲單元,本領(lǐng)域技術(shù)人員基于本公開的啟示可以很容易理解這一點。在這里先前所討論的(例如,參考圖7-圖10所討論的)某些實施方式中,首先讀取和解碼存儲単元的MD比特,然后進行嘗試以讀取和解碼存儲単元的LD比持。然而,在實施方式中,在讀取和解碼MD比特以前,可以進行嘗試以讀取和解碼存儲単元的LD比持。例如,在實施方式中,進行嘗試以讀取和解碼存儲単元的LD比持。如果LD比特的解碼失敗,則讀取和解碼MD比持。使用MD比特的信息,進行另一嘗試以(i)解碼LD比特(例如,正如參考圖7-圖10所討論的那樣)和(ii)潛在地將存儲単元識別為阻塞単元。識別和減輕由于有故障的位線而產(chǎn)生的硬錯誤圖11圖示了圖I的存儲器14的存儲塊1400的一部分。圖11中的存儲塊1400的該部分的結(jié)構(gòu)類似于圖2中。例如,存儲塊1400的該部分包括字線216a,. . .,216N,以及位線220a,, 220M,并且每個字線包括M個存儲單元。在解碼來自例如第一字線216a的存儲單元All,A12,. . .,AIM的讀取數(shù)據(jù)時,可以將ー個或多個存儲単元(例如,存儲單元A12和AIM)識別為被不正確地編程(例如,識別為存儲0,而不是存儲I)。在圖11中,使用陰影線來標記被識別為被不正確地編程的存儲單元。一旦已經(jīng)解碼了多個字線(例如,字線216a,. . . ,216N)的存儲單元,就可以將若干存儲單元識別為被不正確地編程。在實施方式中,如果對于給定的位線,大于閾值數(shù)量的與位線相關(guān)聯(lián)的存儲單元被識別為被不正確地編程,則可以有位線有故障的可能性。例如, 如果有128個字線(B卩,在圖11中N= 128),則每個位線與128個存儲單元相關(guān)聯(lián)。如果例如至少30個與位線相關(guān)聯(lián)的存儲單元被識別為被不正確地編程(即,如果閾值數(shù)量是30),則位線有故障的概率較高。在實施方式中,閾值是可編程的且是動態(tài)調(diào)整的。例如,隨著存儲器14老化,存儲器14的存儲單元的性能惡化。例如,對于在相對較長的時間內(nèi)一直在使用的存儲器,大量存儲單元可能變得有故障或可能表現(xiàn)出軟錯誤,但這種有故障的存儲單元和/或軟錯誤可能不與有故障的位線相關(guān)聯(lián)。相應(yīng)地,為應(yīng)對這種因素,閾值例如隨著存儲器14的老化而増大。在實施方式中,為確定有故障的位線,并不是全部字線都需要解碼。在示例中,僅圖11的N個字線的子集被解碼以確定大于閾值數(shù)量的與位線相關(guān)聯(lián)的存儲單元被不正確地編程。相應(yīng)地,將位線識別為有故障的位線。在實施方式中,標記(例如,分配零LLR)與有故障的位線相關(guān)聯(lián)的存儲單元用于擦除(例如,由于位線有故障,LLR估計模塊28不確定在相關(guān)聯(lián)的存儲單元中存儲的是O還是1,并且相應(yīng)地,向這些存儲單元分配零LLR)。圖12圖示了用以識別存儲器(例如,圖I的存儲器14)中的有故障的位線的方法的示例。在實施方式中,存儲器包括多個字線(例如,字線216a,...,216N),其中該多個字線中的每ー個包括M個存儲單元(例如,字線216a包括存儲單元Al I,A12,. . .,AIM),其中M是整數(shù),其中存儲器進ー步包括M個位線(例如,位線220a,. . .,220M),其中該M個位線中的每ー個與該多個字線中的M個存儲單元中的對應(yīng)的存儲單元相關(guān)聯(lián)(例如,位線220b與存儲單元A12, A22,A32,· · ·,AN2相關(guān)聯(lián))。再次參考圖12,在1204處,在解碼來自該多個字線中的每ー個(或來自該多個字線的子集中的每ー個)的讀取數(shù)據(jù)時,讀取控制模塊20 (例如,解碼器模塊32)針對至少第一數(shù)量的字線中的每ー個識別該M個存儲単元中的第K個存儲単元具有錯誤。例如,如圖11所圖示,針對至少4個字線中的每ー個,識別該M個存儲単元中的第2単元(例如,単元A12, A32, A42 和 An2)具有錯誤。在1208,響應(yīng)于第一數(shù)量大于閾值,讀取控制模塊20 (例如,硬錯誤模塊36)確定該M個位線中的第K個位線有故障。在1212處,讀取控制模塊20 (例如,LLR估計模塊28)針對該多個字線中的每ー個,標記對應(yīng)的字線的該M個存儲単元中的第K個存儲単元用于擦除。例如,參考圖11,如果字線220b被識別為有故障的,則存儲單元A12,A22,. . .,AN2中的每ー個都被標記用于擦除。相應(yīng)地,讀取控制模塊20 (例如,LLR估計模塊28)向存儲單元A12,A22,. . .,AN2中的每ー個分配零LLR(例如,由于位線220b有故障,LLR估計模塊28不確定在這些存儲單元中的每ー個中存儲的是O還是1,并且相應(yīng)地,向這些存儲單元中的姆ー個分配零LLR)。在1216處,解碼器模塊32嘗試基于分配給與有故障的位線相關(guān)聯(lián)的存儲單元的零LLR來重新解碼來自該多個字線中的每ー個的讀取數(shù)據(jù)。產(chǎn)品根據(jù)實施方式,可以假設(shè)產(chǎn)品包括具有存儲在其上的指令的存儲介質(zhì),該指令如果執(zhí)行就會引起在此分別參考圖3、圖4和圖10和/或圖12的方法300,400,1000和/或1200而描述的操作(和/或在本公開中所討論的各種其他操作)。在實施方式中,指令如果執(zhí)行就會引起圖I的存儲器系統(tǒng)10執(zhí)行操作。在實施方式中,存儲介質(zhì)包括某種類型的 非瞬態(tài)存儲器(未示出)。根據(jù)各種各樣的實施方式,該產(chǎn)品可以是計算機可讀介質(zhì),諸如軟件或固件。在此所用的術(shù)語“模塊”可以指代以下各項、作為以下各項的一部分或者包括以下各項專用集成電路(ASIC)、電子電路、執(zhí)行一個或多個軟件或固件程序的處理器(共享、專用或群組)和/或存儲器(共享、專用或群組)、組合邏輯電路和/或提供所描述的功能性的其他合適的組件??梢杂米钣兄诶斫馑蟊Wo的主題的方式將各種各樣的操作描述為多個依次進行的不連續(xù)的動作或操作。然而,描述的順序不應(yīng)當(dāng)解釋為暗示這些操作必然是依賴于順序的。特別地,這些操作可以不按照所呈現(xiàn)的順序來執(zhí)行??梢杂门c所描述的實施方式不同的順序來執(zhí)行所描述的操作。在附加實施方式中,可以執(zhí)行各種各樣的附加的操作并且/或者所描述的操作可以被省略。描述可以使用術(shù)語“實施方式”或“多個實施方式”,其均指代ー個或多個相同或不同的實施方式。另外,針對實施方式使用的術(shù)語“包括”、“包含”、“具有”等等是同義的。盡管已經(jīng)在此示出和描述了特定實施方式,但在不脫離本公開范圍的情況下,本領(lǐng)域技術(shù)人員將會意識到,用于實現(xiàn)相同目的的廣泛的各種各樣的變更和/或等同的實施方式或?qū)崿F(xiàn)可以代替所示出和描述的實施方式。本領(lǐng)域技術(shù)人員將會意識到,實施方式可以用非常廣泛的各種各樣的方式來實現(xiàn)。本公開g在覆蓋在此討論的實施方式的任何調(diào)整或變化。因此,實施方式顯然g在僅由權(quán)利要求書及其等同形式限定。
權(quán)利要求
1.ー種方法,包括 估計用于存儲器的多個存儲単元的第一組對數(shù)似然比(LLR)值; 基于所述第一組LLR值,執(zhí)行第一糾錯碼(ECC)解碼操作; 響應(yīng)于確定第一 ECC解碼操作失敗,通過調(diào)整所述第一組LLR值生成用于所述多個存儲單元的第二組LLR值;以及 基于所述第二組LLR值,執(zhí)行第二 ECC解碼操作。
2.根據(jù)權(quán)利要求I的方法,其中 所述第一組LLR值具有第一范圍; 所述第二組LLR值具有第二范圍;以及 生成所述第二組LLR值,使得所述第一范圍大于所述第二范圍。
3.根據(jù)權(quán)利要求I的方法,其中所述第一組LLR值至少包括第一LLR值和第二 LLR值,其中所述第一 LLR值的大小大于所述第二 LLR值的大小,并且其中生成所述第二組LLR值進ー步包括 生成所述第二組LLR值使得所述第二組LLR值至少包括(i)通過將所述第一 LLR值的大小減小第一值而生成的第三LLR值,以及(ii)通過將所述第二 LLR值的大小減小第二值而生成的第四LLR值, 其中,基于所述第一 LLR值的大小大于所述第二 LLR值的大小,所述第一值大于所述第ニ值。
4.根據(jù)權(quán)利要求I的方法,其中生成所述第二組LLR值進一歩包括 確定所述第一 ECC解碼操作已經(jīng)失??;以及 生成所述第二組LLR值。
5.根據(jù)權(quán)利要求I的方法,其中 所述第一組LLR值包括多個LLR值;以及 所述多個LLR值中的每ー個對應(yīng)于所述多個存儲單元中的相應(yīng)存儲単元。
6.根據(jù)權(quán)利要求I的方法,其中生成所述第二組LLR值進一歩包括 使用非線性映射從所述第一組LLR值生成所述第二組LLR值。
7.根據(jù)權(quán)利要求I的方法,進ー步包括 響應(yīng)于確定所述第二 ECC解碼操作失敗,通過調(diào)整所述第二組LLR值生成用于所述多個存儲単元的第三組LLR值;以及 基于所述第三組LLR值,執(zhí)行第三ECC解碼操作, 其中所述第二組LLR值具有第一范圍,所述第三組LLR值具有第二范圍,并且其中所述第一范圍大于所述第二范圍。
8.一種用于操作包括多個字線的存儲器的方法,其中所述多個字線中的每ー個包括M個存儲単元,其中M是整數(shù),其中所述存儲器進ー步包括M個位線,其中所述M個位線中的每ー個與所述多個字線中的每ー個中的所述M個存儲單元中的對應(yīng)的存儲單元相關(guān)聯(lián),并且其中所述方法包括 在解碼來自所述多個字線的子集中的每ー個的讀取數(shù)據(jù)的同時,針對至少第一數(shù)量的字線中的每ー個識別所述M個存儲単元中的第K個存儲単元具有錯誤;以及 響應(yīng)于所述第一數(shù)量大于閾值,確定所述M個位線中的所述第K個位線有故障。
9.根據(jù)權(quán)利要求8的方法,進ー步包括 響應(yīng)于確定第K個位線有故障,針對所述多個字線中的每ー個,將為零的對數(shù)似然比(LLR)分配給所述對應(yīng)的字線的所述M個存儲単元中的第K個存儲単元。
10.根據(jù)權(quán)利要求9的方法,進ー步包括 使用所分配的為零的LLR重新解碼來自所述多個字線中的一個或多個的讀取數(shù)據(jù)。
11.根據(jù)權(quán)利要求8的方法,進ー步包括 響應(yīng)于確定第K個位線有故障,針對所述多個字線中的每ー個,標記所述M個存儲単元中的第K個存儲単元用于擦除。
12.根據(jù)權(quán)利要求8的方法,進ー步包括 動態(tài)地調(diào)節(jié)所述閾值以便考慮所述存儲器的老化。
13.根據(jù)權(quán)利要求8的方法,其中所述存儲器是電可擦除可編程只讀存儲器(EEPROM)和閃存中的ー種。
14.一種用于處理存儲器中的存儲單元的方法,其中所述存儲器包括存儲單元,其中所述存儲単元配置為存儲至少第一比特和第二比特,所述方法包括 通過將所述第一比特的第一值校正為第二值來解碼與所述第一比特相關(guān)聯(lián)的讀取數(shù)據(jù),其中所述第二值對應(yīng)于所述存儲單元的N個閾值電壓范圍; 未能解碼與所述第二比特相關(guān)聯(lián)的讀取數(shù)據(jù);以及 響應(yīng)于未能解碼與所述第二比特相關(guān)聯(lián)的讀取數(shù)據(jù), 基于(i)與所述第一比特相關(guān)聯(lián)的讀取數(shù)據(jù)和(ii)與所述第二比特相關(guān)聯(lián)的讀取數(shù)據(jù),識別與所述第二比特相關(guān)聯(lián)的第一閾值電壓范圍, 確定所述第一閾值電壓范圍是否既不鄰近所述N個閾值電壓范圍中的至少ー個也不包括在所述N個閾值電壓范圍中的至少ー個內(nèi),以及基于所述確定處理所述存儲單元。
15.根據(jù)權(quán)利要求14的方法,其中所述第一閾值電壓范圍包括所述存儲単元實際上被編程為的閾值電壓。
16.根據(jù)權(quán)利要求14的方法,其中所述N個閾值電壓范圍包括所述存儲単元曾要被編程為的閾值電壓。
17.根據(jù)權(quán)利要求14的方法,其中處理所述存儲単元包括 將為零的對數(shù)似然比(LLR)分配給所述存儲單元的所述第二比持。
18.根據(jù)權(quán)利要求17的方法,進ー步包括 在將為零的LLR分配給所述第二比特之后,重新解碼與所述第二比特相關(guān)聯(lián)的讀取數(shù)據(jù)。
19.根據(jù)權(quán)利要求17的方法,其中 所述第一比特是所述存儲単元的最大距離(MD)比持;以及 所述第二比特是所述存儲単元的最小距離(LD)比持。
20.根據(jù)權(quán)利要求14的方法,其中所述存儲器是電可擦除可編程只讀存儲器(EEPROM)和閃存中的ー種。
全文摘要
本發(fā)明涉及識別和減輕存儲器系統(tǒng)中的硬錯誤。各實施方式提供了一種方法,包括估計用于存儲器的多個存儲單元的第一組對數(shù)似然比(LLR)值;基于第一組LLR值,執(zhí)行第一糾錯碼(ECC)解碼操作;響應(yīng)于確定第一ECC解碼操作失敗,通過調(diào)整第一組LLR值生成用于該多個存儲單元的第二組LLR值;以及基于第二組LLR值,執(zhí)行第二ECC解碼操作。
文檔編號G11C29/42GK102820064SQ20121019302
公開日2012年12月12日 申請日期2012年6月7日 優(yōu)先權(quán)日2011年6月7日
發(fā)明者S·K·奇拉帕加里, G·伯德, 陳振鋼 申請人:馬維爾國際貿(mào)易有限公司