国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用位值的存儲的計數(shù)來校正數(shù)據(jù)錯誤的系統(tǒng)和方法

      文檔序號:6359400閱讀:181來源:國知局
      專利名稱:使用位值的存儲的計數(shù)來校正數(shù)據(jù)錯誤的系統(tǒng)和方法
      技術領域
      本公開通常涉及數(shù)據(jù)處理和存儲系統(tǒng),且更具體地涉及檢測和校正在存儲或傳輸?shù)臄?shù)據(jù)內(nèi)的錯誤。
      背景技術
      計算機數(shù)據(jù)存儲系統(tǒng)通常包括改善數(shù)據(jù)完整性的錯誤校正碼(ECC)處理。例如,可以在讀取操作期間使用ECC,來確定所訪問的數(shù)據(jù)位(例如,表示由處理器提取的信息的存儲器単元)是否具有不正確的狀態(tài)。ECC處理可以通過檢測和校正多個出錯位來增加存儲器器件的操作可靠性。校正的位的閾值數(shù)量取決于應用的特定ECC技術的校正能力。盡管ECC提供了先進性,但是將期望能夠校正超過應用的ECC技術的校正能力的錯誤。

      發(fā)明內(nèi)容
      公開了可以標識和校正存儲或傳輸?shù)臄?shù)據(jù)內(nèi)的錯誤的系統(tǒng)和方法。ー個特定實施例可以跟蹤從字線讀取的數(shù)據(jù)內(nèi)或從來自存儲器的一頁或多頁數(shù)據(jù)中發(fā)現(xiàn)的多個錯誤。當在讀取的數(shù)據(jù)中的錯誤的數(shù)量超過錯誤校正碼(ECC)引擎的能力時,可以使用校正后模塊來確定要調整的ー個或多個位來呈現(xiàn)(render)可由ECC引擎校正的數(shù)據(jù)。例如,讀取字線可以包括存儲多個位的多級單元(MLC),諸如在所述字線的第一邏輯頁中存儲第一位且在所述字線的第二邏輯頁中存儲第二位。第一頁可以具有ECC引擎無法校正的錯誤,而第二頁可以具有可由ECC引擎校正的錯誤。該校正模塊可以至少部分地基于在第二頁中標識的錯誤來選擇第一頁內(nèi)的一個或多個位。例如,特定MLC在第一頁中具有位錯誤的可能性可以與MLC在其他頁中具有的位錯誤的數(shù)量或類型相關。可以通過改變第一頁中的所選位的值(例如從邏輯“ I”改變?yōu)檫壿嫛癘”或從邏輯“O”改變?yōu)檫壿嫛?I”)來調整第一頁,且可以將調整后的第一頁重新發(fā)送到ECC引擎來確定該調整后的第一頁是否可校正??梢灾貜驮诘谝豁撝羞x擇和翻轉位的處理,直到調整后的第一頁可由ECC引擎校正。當存儲器器件確定特定字線的錯誤的數(shù)量逼近其ECC引擎的校正能力時,該器件可以存儲附加的信息來幫助標識錯誤類型和在字線內(nèi)的位置。例如,當錯誤的數(shù)量到達閾值時,可以存儲該字線內(nèi)的一組位中所標識的I的數(shù)量的計數(shù)。該字線或頁內(nèi)的単元可以根據(jù)該計數(shù)來分組。例如,隨著頁內(nèi)的錯誤的數(shù)量増加,組的數(shù)量也可以增加。ー頁的每個組的I的數(shù)量的計數(shù)可以與從先前讀取中保存的該組的I的數(shù)量的計數(shù)相比較??梢允褂迷摫容^來確定在每個組內(nèi)要翻轉的位的值和數(shù)量(例如,當讀取的計數(shù)超過存儲的計數(shù)兩個時,組內(nèi)的兩個I將被翻轉為O)??梢允褂酶怕时韥砘谠摻M中哪個位更可能出錯來確定要翻轉哪個(些)位??梢允褂眠@些概率表、以及每組的I的數(shù)量來決定翻轉對應于被標識為具有ー個或多個其他位錯誤、諸如在其他頁中的校正后的位錯誤的MLC的位。在翻轉了所選位之后,可以執(zhí)行ECC過程來驗證翻轉該所選位的決定。該處理可以是反復的,且可以當ECC引擎可以恢復原始數(shù)據(jù)時、當完成了預定數(shù)量的反復時、或根據(jù)其他終止標準而終止。


      圖I是包括被配置以標識和校正在從存儲器陣列中提取的數(shù)據(jù)中的錯誤的控制器的系統(tǒng)的特定示例實施例的方框圖;圖2是圖示具有使用錯誤校正碼計算和概率表查找來翻轉出錯位而被校正的狀態(tài)的存儲器單元的一般圖;圖3是包括具有讀取的計數(shù)和錯誤概率表的存儲器陣列的系統(tǒng)的特定實施例的方框圖;圖4是分析和校正存儲器単元內(nèi)的錯誤的方法的特定實施例的流程圖;圖5是分析和校正存儲器単元內(nèi)的錯誤的方法的另ー特定實施例的流程圖;圖6是基于表查找來校正存儲器単元內(nèi)的錯誤的方法的特定實施例的流程圖。·
      具體實施例方式圖I是包括被配置以校正從存儲器陣列102 (例如,閃存多級單元陣列)中讀取的數(shù)據(jù)中的超出ECC引擎118的校正能力的錯誤的控制器104的系統(tǒng)100的特定示例實施例的方框圖。控制器104包括被配置以確定在ECC引擎119無法校正的數(shù)據(jù)中要調整的ー個或多個位的校正模塊130。該存儲器陣列102可以包括一個或多個字線108。字線108可以表示包括ー個或多個多級単元(MLC)144的存儲器陣列102的行和耦合于存儲器陣列102的行中的MLC 144的控制柵極的導線。存儲器陣列102可以通過通信路徑156諸如經(jīng)由讀取操作146來針對控制器104發(fā)送和接收數(shù)據(jù)??刂破?04可以響應于諸如主機設備的外部設備106,且可以使能對存儲器陣列102的寫入和讀取訪問??刂破?04包括校正模塊130,校正模塊130被配置以調整ECC引擎118無法校正的數(shù)據(jù)且向ECC引擎118提供調整后的數(shù)據(jù)用于校正。控制器104還包括緩沖器162、校正后緩沖器124、日志文件134、和錯誤概率表138。該ECC引擎118可以被配置以基于諸如里德-所羅門(Reed-Solomon) (RS), Bose-Chaudhuri-Hochquenghem(BCH)、低密度奇偶校驗(Low Density Parity Check) (LDPC)、一個或多個其他ECC處理或其任ー組合的錯誤校正機制來解碼和校正錯誤。ECC引擎118可以被配置以解碼具有少于或等于ECC引擎118的錯誤校正能力的錯誤的數(shù)量的接收的數(shù)據(jù)。例如,該錯誤校正能力可以是每編碼數(shù)據(jù)的512字節(jié)的12位錯誤。該ECC引擎118可以被配置以經(jīng)由路徑120向校正后緩沖器124傳送校正后的數(shù)據(jù)(B卩,不具有錯誤且不需要校正的數(shù)據(jù)、或已經(jīng)由ECC引擎118校正的數(shù)據(jù))。該ECC引擎118可以被配置以經(jīng)由路徑116向緩沖器162傳送ECC引擎118無法校正的數(shù)據(jù)。該緩沖器162可以被配置以存儲ECC引擎118無法校正的數(shù)據(jù),且校正后緩沖器124可以被配置以存儲已經(jīng)由ECC引擎118校正的數(shù)據(jù)。例如,當讀取字線108吋,從字線108讀取的第一組110位ECC引擎118無法校正,且被存儲在緩沖器162處,且從字線108讀取的第二組126位可以由ECC引擎118校正,且被存儲在校正后緩沖器124處。該第一組110可以包括ー個或多個未校正頁112,且該第二組126可以包括ー個或多個校正后的頁128。為了例示,每個MLC 144可以具有對應于三位值的狀態(tài),且每個MLC144的低階(lower-order)位被分配給第一邏輯頁,且中間位被分配給第二邏輯頁,且高階位被分配給第三邏輯頁。每個頁可以單獨編碼且在ECC引擎118處獨立地處理。該字線108的ー個或多個頁可能不可由ECC引擎118校正,且被存儲在緩沖器162中作為未校正的頁112,而字線108的一個或多個其他頁可由ECC引擎118校正,且被存儲在校正后緩沖器162中作為校正后的頁128。校正模塊130被配置以經(jīng)由路徑140訪問緩沖器162處的第一組110位,且被配置以翻轉該第一組110的一個或多個位來生成調整后的ー組170位。調整后的該組170位被提供給ECC引擎118以便處理。如果調整后的該組170位可由ECC引擎118校正,則可以向外部設備106提供校正后且解碼后的數(shù)據(jù),作為對針對字線108的讀取訪問的請求的響應。如果調整后的該組170位ECC引擎118無法校正,則可以在反復處理中由校正模塊130翻轉第一組110的一個或多個其他位,來呈現(xiàn)可由ECC引擎118校正的第一組110數(shù)據(jù)位。校正模塊130可以被配置以通過將第一組110的位值的計數(shù)114與經(jīng)由路徑158從日志文件134中提取的存儲的先前計數(shù)136相比較來確定在第一組110中要校正的具有 特定值的位的數(shù)量148??梢酝ㄟ^校正模塊130或通過控制器104內(nèi)的其他硬件來生成該計數(shù)114??梢詮脑谙惹皩懭氩僮髌陂g被寫入字線108的數(shù)據(jù)中、或從先前從字線108讀取并由ECC引擎118校正的數(shù)據(jù)中生成該存儲的先前計數(shù)136。例如,該計數(shù)114可以指示未校正的第一組110中的I的數(shù)量,且存儲的先前計數(shù)136可以指示在校正了所有錯誤之后應該在第一組110中出現(xiàn)的I的數(shù)量。當該計數(shù)114超過存儲的先前計數(shù)1361個時,第一組110中的取“O”值的位錯誤地改變?yōu)榱恕癐”值,且校正模塊130可以選擇第一組110中的取“I”值的位來翻轉為“O”值。當存儲的先前計數(shù)136超過計數(shù)114時,取“ I”值的位錯誤地改變?yōu)榱恕癘”值,且校正模塊130可以選擇第一組Iio中的取“O”值的位來翻轉為“I”值。該校正模塊130可以被配置以選擇等于計數(shù)114和存儲的先前計數(shù)136之間的差的數(shù)量148的位來翻轉。雖然該計數(shù)114和該存儲的先前計數(shù)136被描述為“I”值的計數(shù),但是相反,該計數(shù)114和存儲的先前計數(shù)136可以是“O”值的計數(shù),且該校正模塊130可以被配置以基于比較O的計數(shù)來確定要翻轉的位的數(shù)量和值。該配置模塊130可以根據(jù)所選的位出錯的可能性來選擇第一組110中要翻轉的特定位。例如,該配置模塊130可以被配置以訪問錯誤概率表138中的至少ー個來標識第一組110中的用于校正的至少ー個位。錯誤概率表138包括對應于多位單元(例如MLC)的一個位基于是否已經(jīng)檢測和/或校正了多位単元的其他位中的錯誤152而是否可能出錯的錯誤數(shù)據(jù)150。例如,MLC可以具有由未校正的頁112中的第一位和校正后的頁128中的第二位的值表示的狀態(tài)(例如,閾值電壓)。MLC的狀態(tài)可能由于硬件故障(諸如斷開的字線或其他連接)而被錯誤地讀取,或可能被其他事件(諸如由對相鄰字線的寫入操作導致的編程干擾)損壞。導致校正后的頁128中的位錯誤的事件也可能導致未校正的頁112中的位錯誤。如在圖2-3中描述的,特定位出錯的可能性可以與MLC的其他位中的錯誤152的數(shù)量、特定位的值、MLC的ー個或多個狀態(tài)值160、一個或多個其他因素或其任意組合相關。校正模塊130可以被配置以從ECC引擎118接收指示第二組126中的哪些位被校正了的校正數(shù)據(jù)。校正模塊130可以被配置以定位第一組110的與第二組126的校正位共享公共MLC的每個位。校正模塊130可以針對第一組110中的每個定位的位開始在錯誤概率表138處的查找操作,以提取指示該位出錯的可能性的數(shù)據(jù)。例如,該校正模塊130可以經(jīng)由路徑142來訪問校正后緩沖器124來提取在第二組126中與第一組110的特定位共享MLC的一個或多個位的位值。校正模塊130可以處理提取的位值,且使用MLC的校正后的位的數(shù)量、MLC的一個或多個位值、或其他信息來在錯誤概率表138處進行查找操作,以在錯誤概率表138處定位條目。在錯誤概率表138處定位的條目的錯誤可能性值可以被返回到該校正模塊130,且與第一組110的特定位相關聯(lián)。校正模塊130可以通過選擇被指示為具有最高錯誤可能性值的位來選擇在第一組110中要校正的確定的數(shù)量148的位。例如,在確定要校正的位的數(shù)量148為N的情況下,則可以選擇對應于N個最高錯誤可能性值的N位。校正模塊130可以讀取第一組110位,翻轉所選位來生成調整后的組170,且開始在ECC引擎118處對調整后的組170的解碼。在操作期間,可以對字線108進行讀取操作。ECC引擎118可以成功地解碼字線 108的每個邏輯頁,且可以生成指示每個頁的校正的錯誤的數(shù)量的校正數(shù)據(jù)。校正模塊130可以將校正的錯誤的數(shù)量與閾值錯誤數(shù)量相比較,來確定字線108或字線108的一個或多個頁是否面臨在隨后的讀取操作中超出ECC引擎118的校正能力的危險。響應于滿足該閾值的校正的錯誤的數(shù)量,校正模塊130可以邏輯地將字線108或該字線108的頁劃分為ー個或多個組,且在日志文件134中存儲每個組的I的計數(shù)。因此,在日志文件中存儲的計數(shù)對應于數(shù)據(jù)的校正后、無錯誤的表示(即,在ECC引擎118的成功校正之后)??梢源_定組的數(shù)量來減少在相同組中出現(xiàn)I改變?yōu)镺錯誤和O改變?yōu)镮錯誤兩者的概率。例如,如果ECC引擎118的校正能力是每512字節(jié)頁12位,則每頁可以被邏輯地劃分為十二或更多組。在稍后的讀取操作期間,當在該頁中的多于十二個錯誤使得該頁不可由ECC引擎118校正時,每個組在統(tǒng)計上很可能僅具有ー個錯誤。雖然被圖示為被存儲在控制器104內(nèi),但是日志文件134可以替換地被存儲在存儲器陣列102處。在針對字線108或該字線108內(nèi)的ー個或多個頁而存儲每個組內(nèi)的對應于具有特定值的位的數(shù)量的計數(shù),在字線108處的隨后的讀取操作可能返回具有比ECC引擎118的校正能力更多數(shù)量的錯誤的頁數(shù)據(jù)。該ECC引擎118可以生成諸如非收斂錯誤信號的信號,且響應于其,可以在緩沖器162處存儲讀取的數(shù)據(jù)的ー個或多個不可校正的頁。字線108的校正后的頁可以被存儲在校正后緩沖器124處。還可以由ECC引擎生成對應于校正后的數(shù)據(jù)的錯誤位置數(shù)據(jù),并將其存儲在校正后緩沖器124處。校正模塊130可以提取對應于不可校正的頁的數(shù)據(jù)組中的I的存儲的計數(shù)、諸如存儲的先前計數(shù)136。校正模塊130可以通過將每個組的最近計數(shù)(諸如計數(shù)114)與該組的存儲的先前計數(shù)相比較,來對于在緩沖器162處存儲的數(shù)據(jù)的各個組確定要翻轉的位的數(shù)量和位值。對于被指示為具有要校正的一個或多個位錯誤的每個組,該錯誤校正模塊130可以通過訪問錯誤概率表138并基于該概率表查找結果來選擇被指示為最可能出錯的位,來選擇要翻轉的ー個或多個位。校正模塊130可以生成調整后的組170,并對ECC引擎118發(fā)信號來開始包括調整后的組170的解碼操作。例如,校正模塊130可以生成匹配緩沖器162中的數(shù)據(jù)的每個組的所選的位被翻轉的調整后的數(shù)據(jù)頁(即,調整后的頁包含以頁格式的調整后的一個或多個組)。調整后的數(shù)據(jù)頁可以被發(fā)送到ECC引擎118。作為另一例子,校正模塊130可以在緩沖器162處翻轉所選位,且指示ECC引擎118來讀取緩沖器162以便解碼(例如,在緩沖器162內(nèi)生成調整后的組170)。當翻轉了足夠數(shù)量的出錯位時,調整后的數(shù)據(jù)中的剰余錯誤的數(shù)量可以在ECC引擎118的錯誤校正能力之內(nèi),且可以完成解碼。該ECC引擎118可以生成指示在調整后的數(shù)據(jù)中的校正的錯誤的位置的數(shù)據(jù)。校正模塊130可以基于錯誤的總數(shù)(由模塊130翻轉的位和由ECC引擎130校正的位)、錯誤的位置、錯誤值或其組合來更新將頁邏輯地劃分為組的邏輯劃分。校正模塊130可以為新的組生成I值的新的計數(shù),且在日志文件134中存儲該分組信息和計數(shù)信息用于在對字線108的下一次讀取中使用。因此,即使從字線108讀取的數(shù)據(jù)不再可由ECC引擎118校正,也可以繼續(xù)使用字線108。因此,該存儲器陣列102可以具有與不使用錯誤校正模塊130且受ECC引擎118的 校正能力限制的系統(tǒng)相比更長的有用生命?;蛘撸蛄硗?,控制器104可以被設計為通過對于具有較少能力的ECC引擎118使用校正模塊130來維持更有能力的ECC引擎的有效錯誤校正能力,且相比于更有能力的ECC引擎,其可以用減少的功耗、器件大小、和制造成本來操作。圖2示出被分析用于錯誤標識和校正的存儲器単元的變型。存儲器単元可以包括MLC、諸如圖I的存儲器陣列102的MLC 144。圖2示出可以從存儲器陣列讀取的存儲器單元的不同變型200、250和290。為了簡化描述,該存儲器單元被圖示為包括以列格式排列的三個位、包括頂部位、中間位和底部位。頂部位可以是第一頁的部分,中間位可以是第二頁的部分,且底部位可以是第三頁的部分。可以使用ECC引擎來校正第二和第三頁,而第ー頁不可由ECC引擎校正。該單元變型200包括具有頂部、中間和底部位值的不同組合的不同狀態(tài)202、204、206、208、210、212、214和216。每個狀態(tài)202-216可以對應于存儲器單元的不同閾值電壓范圍。該存儲器単元可以被初始地讀為“101”,對應于該狀態(tài)208。該狀態(tài)208可以被存儲為“之前(before)”值。包括存儲器単元的頂部位的第一頁可以包括不可校正的錯誤。單元變型250和290圖示了在由ECC引擎校正了第二和第三頁之后可能發(fā)生的兩種情況。例如,單元變型250包括狀態(tài)202-216。單元變型250的校正后的狀態(tài)可以包括“ 100”,這對應于狀態(tài)210。因此,第三頁的校正導致第三位從“I”改變?yōu)椤?”,而該第二位不改變。該狀態(tài)210可以被存儲為“之后(after)”值。從208到210的狀態(tài)的改變可以表示一個狀態(tài)位置的移動。箭頭218圖示了從“之前”狀態(tài)到“之后”狀態(tài)的移動。該移動對應于ー的漢明距離(Hammingdistance)。相反,單元變型290的校正后的狀態(tài)可以包括“ 110”,這對應于狀態(tài)216。因此,在變型290中,第三頁的校正導致第三位從“I”改變?yōu)椤?”,且第二頁的校正導致第二位從“O”改變?yōu)椤癐”。該狀態(tài)216可以被存儲為“之后(after)”值。從208到216的狀態(tài)的改變可以表示兩個狀態(tài)位置的移動。箭頭220圖示了從“之前”狀態(tài)到“之后”狀態(tài)的移動。該移
      動對應于ニ的漢明距離??梢允褂脻h明距離的值作為輸入以尋址錯誤概率表來確定第一位不正確的概率。例如,對應于單元變型250的、一的漢明距離可以被用于查找諸如圖I的錯誤概率表138的查找錯誤概率表內(nèi)的值。還可以使用包括該單元的該組的I的計數(shù)、諸如圖I的計數(shù)114作為查找因素。諸如圖I的控制器104的控制器可以使用ECC計算的錯誤概率表輸入(例如,一的漢明距離)且使用該計數(shù)來確定該単元的校正后的狀態(tài)應該是“000”。箭頭222示出單元狀態(tài)向正確狀態(tài)212的可能的翻轉。在另一例子中,對應于單元變型290的ニ的漢明距離可以被用于查找諸如圖I的錯誤概率表138的查找錯誤概率表內(nèi)的值。該錯誤概率表還可以使用包括該單元的該組的I的計數(shù)、諸如圖I的計數(shù)114作為查找因素。諸如圖I的控制器104的控制器可以生成包括ECC計算的錯誤概率表輸入(例如,ニ的漢明距離)和該計數(shù)來確定該単元的校正后的狀態(tài)應該是“010”。箭頭224示出頂部位向正確狀態(tài)214的可能的翻轉。因此,單元變型250和290圖示了具有使用ECC計算和概率表查找來翻轉出錯位而被校正的狀態(tài)的存儲器單元的例子。提供給諸如圖I的錯誤概率表138的錯誤概率表的數(shù)據(jù)可以通過從讀取的值到部分校正的值的漢明距離來索引??梢允褂镁哂邢鄬π〉奶幚硇枨蟮腅CC機制,且可以快速地標識錯誤。可以使用最后確定的校正后的狀態(tài)來改善數(shù)據(jù) 完整性。
      圖3圖示了被配置以標識并校正數(shù)據(jù)錯誤的系統(tǒng)300的另ー特定實施例。系統(tǒng)300類似于圖I的系統(tǒng)100 ;但是,存儲的計數(shù)310和錯誤概率表312被包括在存儲器陣列302中。圖3圖示被存儲在存儲器陣列302內(nèi)的第一、存儲的計數(shù)(例如存儲的計數(shù)310),而圖I圖示被存儲在控制器104內(nèi)的第一、存儲的計數(shù)(例如,存儲的先前計數(shù)136)。如圖3所示,該存儲器陣列302被耦合于控制器304,且包括字線308??刂破?04可以包括與圖I的控制器104相似的功能??刂破?04耦合于外部設備306。外部設備306可以與圖I的外部設備106相同。該存儲器陣列302包括錯誤概率表312。錯誤概率表312可以與圖I的錯誤概率表138相同。圖3所示的錯誤概率表包括查找表350、352、354和356??刂破?04可以包括校正模塊314、緩沖器316和ECC引擎318。校正模塊314可以與圖I的校正模塊130相同。緩沖器316可以對應于圖I的緩沖器162和校正后緩沖器124。ECC引擎318可以與圖I的ECC引擎118相同??梢允褂貌檎冶?50來基于MLC的其他檢測的錯誤的數(shù)量來確定MLC的特定位出錯的概率。例如,在MLC存儲三位值、每個位值對應于不同頁、且兩頁可校正且第三頁不可校正的情況下,第三頁中的特定位的錯誤的概率可以與MLC的其他兩位中檢測到的錯誤的
      數(shù)量相關。在如由路徑346指示的、第一、存儲的計數(shù)310和第二、讀取的計數(shù)的差等于I的情況下,且在特定位值等于I的情況下,可以使用該查找表350。在如在346指示的、第一、存儲的計數(shù)310和讀取的計數(shù)的差等于I的情況下,且在特定位值等于O的情況下,可以使用該查找表352。查找表352包括指示MLC中的校正的錯誤的數(shù)量的列。該列與指示位錯誤的概率的列相關。例如,在MLC中檢測到了 O個錯誤的情況下,特定位出錯的概率可以對應于被示為“A”的值。在MLC中檢測到了 I個錯誤的情況下,特定位出錯的概率可以對應于被示為“B”的值。在另一例子中,在MLC中檢測到了 2個錯誤的情況下,特定位出錯的概率可以對應于被示為“ C ”的值。例如,值“ A ”可以小于值“ B ”,值“ B ”可以小于值“ C ”。
      在如在348指示的、第一、存儲的計數(shù)310和讀取的計數(shù)的差大于I的情況下,且在特定位值等于I的情況下,可以使用該查找表354。在如在348指示的、第一、存儲的計數(shù)310和讀取的計數(shù)的差大于I的情況下,且在特定位值等于O的情況下,可以使用該查找表356。查找表356包括指示部分校正的值的列。該列與指示位錯誤的概率的列相關。為了例示,在三位MLC中,特定位出錯的概率可以對應于其他兩位的校正后的值。例如,在三位MLC的第一位和第二位的校正后的值都是“O”的情況下,特定位出錯的概率可以對應于被示為“D”的值。在第一位的校正后的值是“O”且第二位的校正后的值是“I”的情況下,特定位出錯的概率可以對應于被示為“E”的值。在另一例子中,在第一位的校正后的值是“I”且第二位的校正后的值是“O”的情況下,特定位出錯的概率可以對應于被示為“F”的值。在三位MLC的第一位和第二位的校正后的值都是“I”的情況下,特定位出錯的概率可以對應于被示為“G”的值。因為表354和356指示作為單個MLC的正確的位值和讀取的位值的函數(shù)的位錯誤的可能性,因此表354和356可以基于MLC的狀態(tài)(例如,基于MLC 的閾值電壓)反映錯誤的可能性。在操作中,控制器304可以接收如下指示從存儲器陣列302讀取的數(shù)據(jù)位包括不能由ECC引擎318校正的錯誤??刂破?04可以使得校正模塊314能夠基于錯誤概率表312的查找值且基于存儲的計數(shù)310來改變數(shù)據(jù)位的值??刂破?04可以反復地翻轉位,直到ECC引擎318可以校正數(shù)據(jù)位。雖然圖3圖示了基于錯誤的數(shù)量的查找表350和352和基于部分校正的值的查找表354和356,但是,在其他實施例中,可以使用其他標準作為確定或評估錯誤的概率的基礎。例如,可以通過部分校正的值來索引所有錯誤概率表312,或可以通過檢測到的錯誤的數(shù)量來索引所有錯誤概率表312。作為另一例子,錯誤概率表312可以與第一、存儲的計數(shù)310和讀取的計數(shù)之間的差無關。而且,雖然錯誤概率表312被示為對應于三位值(例如,MLC的八個狀態(tài)),但是另一實施例的存儲器単元的狀態(tài)所表示的位的數(shù)量可以小于三位或大于三位。可以基于實驗數(shù)據(jù)、基于理論計算、基于諸如計算簡化性和表存儲大小的ー個或多個其他因素、或其任一組合來確定圖示的值等中的ー個或多個。如此,雖然圖示的值等被描述為對應于位錯誤的概率,但是在其他實施例中,圖示的值等中的ー個或多個可能不對應于實際的概率,且相反可以指示錯誤的相對可能性或檢查MLC以找到可能的錯誤的優(yōu)先化機制。圖4是分析和校正存儲器単元內(nèi)的錯誤的方法的特定實施例的流程圖。通常被指定為400的該方法包括在402處讀取字線。例如,圖I的控制器104可以從存儲器陣列102讀取字線108。該方法400可以包括在404處讀取包括不可校正的錯誤的頁。例如,圖I的控制器104可以在讀取操作146期間從存儲器陣列102讀取該頁112。在406處,可以保存讀取的單元的當前狀態(tài)。該當前的狀態(tài)可以被標記為“之前”狀態(tài)。例如,圖I的第一組Iio和計數(shù)114可以被存儲在緩沖器162內(nèi)。在408處,可以進行字線的復制,且可以校正這些頁上的可校正的錯誤。校正后的數(shù)據(jù)的副本可以被標記為“之后”。例如,圖I的ECC引擎118可以校正字線108上的其他頁上的錯誤,且存儲校正后的數(shù)據(jù)作為頁128。
      該方法400可以包括在410處標識已經(jīng)校正且移動到不同狀態(tài)的單元。例如,圖I的校正模塊130可以標識在頁128中已經(jīng)校正且移動到不同狀態(tài)的MLC 144??梢酝ㄟ^ECC引擎118向校正模塊130提供關于校正的単元的信息。在41 2處,可以分析要翻轉的特定単元。例如,圖I的校正模塊130可以通過確定ECC引擎118不能校正的一組位中要校正的位的數(shù)量來分析MLC144。校正模塊130可以進行概率表中的查找操作來確定最可能不正確的MLC位。校正模塊130可以翻轉所確定的位,且向ECC引擎118發(fā)送該數(shù)據(jù)。如果該組位仍然不可校正,則校正模塊130可以基于與下一位相關的確定的概率來選擇要翻轉的下一位。圖5是校正存儲器単元內(nèi)的錯誤的方法的一個實施例的流程圖。可以在耦合于存儲器陣列的諸如圖I的控制器104的控制器處進行通常被指定為500的方法。該方法500包括在502處接收如下指示從所述存儲器陣列讀取的第一組數(shù)據(jù)位包括不可由ECC引擎校正的錯誤。例如,圖I的控制器104可以從讀取操作146中確定第一組110包括不可由ECC引擎118校正的錯誤。為了例示,圖I的校正模塊130可以從ECC引擎118接收指示ECC引擎118不能校正第一組110的ー個或多個頁112的信號。校正模塊130還可以從ECC引擎118接收指示曾由ECC引擎118成功校正了的在第二組126中的ー個或多個頁128中發(fā)生的錯誤的信號。在504處,可以將具有特定位值的第一組數(shù)據(jù)位的計數(shù)與具有該特定位值的數(shù)據(jù)位的先前計數(shù)相比較。例如,圖I的校正模塊130可以經(jīng)由通信路徑140接收該計數(shù)114。校正模塊130可以諸如通過訪問日志文件134、(例如,通過將第一組110的存儲器地址與對應于存儲的先前計數(shù)136的存儲器地址相比較來)定位對應于第一組110的存儲的先前計數(shù)136且從日志文件134提取存儲的先前計數(shù)136來接收該存儲的先前計數(shù)136。校正模塊130可以諸如通過進行減法操作、逐位(bit-wise)比較操作、或確定計數(shù)114和存儲的先前計數(shù)136之間的差的另ー操作,來將計數(shù)114與存儲的先前計數(shù)136相比較。該特定位值可以是“0”,且該計數(shù)114可以對應于第一組110的“ O”值的數(shù)量?;蛘撸撎囟ㄎ恢悼梢允恰?1”,且該計數(shù)114可以對應于第一組110的“ I ”值的數(shù)量。在506處,可以確定在第一組中要翻轉的位的數(shù)量。例如,圖I的校正模塊130可以確定要校正的位的數(shù)量148作為下述操作的結果,所述操作為從存儲的先前計數(shù)136中減去該計數(shù)114并分配該減法的結果作為要校正的位的數(shù)量148。負的值可以指示ー個或多個位應該被翻轉為具有該特定值,而正的值可以指示具有該特定值的ー個或多個位應該被翻轉?;蛘?,可以使用一個或多個其他處理來確定計數(shù)114和存儲的先前計數(shù)136之間的差的符號和量值。響應于確定所述計數(shù)超過所述先前計數(shù),在508處,可以標識第一組數(shù)據(jù)位中的具有特定位值且與第二組數(shù)據(jù)位的校正的數(shù)據(jù)位對應于相同的存儲器単元的位。例如,圖I的控制器104可以響應于計數(shù)114超過存儲的先前計數(shù)136,標識與第二組126的校正的位對應于相同的存儲器単元的第一組110的位。 為了例示,ECC引擎118可以生成指示由ECC引擎118校正了的第二組126的位的數(shù)據(jù)。該校正模塊130可以從ECC引擎118接收數(shù)據(jù),且可以定位對應于第二組126的校正后的位的第一組110的ー個或多個位。例如,MLC144可以具有對應于三個位值的狀態(tài),每個位值與分離的頁上的相同位位置相關聯(lián)(例如,如針對圖2描述的)。可以標識ー個或多個頁128中的校正的錯誤的位位置,且可以將在校正的錯誤的位位置處的頁112中的位標識為對應于與校正的錯誤相同的MLC。在其他實施例中,校正模塊130可以根據(jù)與相同MLC 144相關聯(lián)的第一和第二組110、124的對應位之間的ー個或多個其他映射來標識第一組110的位??梢远ㄎ慌c第二組126中的校正的錯誤的MLC對應的、第一組110的多個位。圖I的校正模塊130可以進行在錯誤概率表138處的多個查找操作。每個查找操作可以返回第一組110的對應位出錯的可能性值或概率。校正模塊130可以對對應于與第二組126中的校正的錯誤相同的MLC的、第一組110的每個定位的位進行查找操作,且標識由查找操作返回的ー個或多個最大值。可以標識與最大返回的值相關聯(lián)的第一組126中的位(例如,根據(jù)概率表138被指示為最可能出錯的位)。例如,校正模塊130可以生成包括第一組110中對應于第二組126中的校正的錯誤的位位置、且包括針對每個位位置的表查找的結果的條目的表或緩沖器。每個表查找可以包含確定索引數(shù)據(jù),諸如圖3所示的。例如,校正模塊130可以將第一組110中的位位置與對應于相同MLC的第二組126的位相比較。校正模塊130可以基于由ECC引擎118生成的數(shù)據(jù)來確定第二組126中的(相同MLC的)對應位中多少位被校正了,且可以在對諸如圖·3的表350或352的概率表的查找操作期間供應該結果。作為另一例子,校正模塊130可以訪問校正后緩沖器124來讀取第二組126的(相同MLC的)對應位的校正后的位值,且可以在對諸如圖3的表354或356的概率表的查找操作期間提供校正后的位值。繼續(xù)該例子,在用與位位置和表查找的相關結果對應的條目來填充該表或緩沖器之后,可以定位最大表查找結果。例如,可以基于表查找結果值來對這些結果排序,且可以標識排序第一的條目。作為另一例子,可以遍歷該表或緩沖器,且可以定位最大表查找結果。雖然在本例子中,基于最大表結果值來標識單個位,但是在其他實施例中,可以基于定位的N個最大表查找結果值來標識多個位(即N位)。例如,N的值可以等于要翻轉的位的值。在510處,可以改變第一組的所標識的位的值以生成調整后的一組數(shù)據(jù)位。例如,校正模塊130可以改變所標識的位來生成調整后的組。為了例示,校正模塊130可以訪問緩沖器162且從第一組110中生成位值的副本。校正模塊130可以在位值的副本中定位與第一組110的所標識的位對應的位位置。當所標識的位具有“O”值時,校正模塊130可以用“I”值來替換“O”值以生成調整后的該組數(shù)據(jù)位170。當所標識的位具有“I”值時,校正模塊130可以用“O”值來替換“I”值以生成調整后的該組數(shù)據(jù)位170。如果標識多個位,則校正模塊130可以對每個所標識的位進行替換操作,以生成調整后的該組數(shù)據(jù)位。在512處,可以基于表查找(例如至少部分地基于漢明距離、計數(shù)或狀態(tài)值中的一種或多種)來選擇所標識的位。為了例示,當如針對圖3的表350和352描述的使用MLC中的錯誤的數(shù)量來確定錯誤的可能性時,表查找可以至少部分地基于漢明距離。作為另一例子,表查找可以通過使用計數(shù)作為選擇要訪問的概率表的參數(shù)、而至少部分地基于該計數(shù),如針對圖3的路徑346和路徑348描述的。作為另一例子,表查找可以至少部分地基于狀態(tài)值、諸如結合該特定值基于MLC單元的部分校正后的位值,如圖3的表354和356描述的。可以選擇所標識的位作為具有定位的位中的最大表查找結果的位。在514處,可以向ECC引擎提供調整后的該組數(shù)據(jù)位。例如,圖I的校正模塊130可以經(jīng)由路徑122向ECC引擎118的輸入傳送該調整后的組170。校正模塊130可以生成一個或多個控制信號或引起一個或多個控制信號以向ECC引擎118提供,來使用調整后的該組170數(shù)據(jù)位作為輸入數(shù)據(jù)來開始解碼操作。ECC引擎118可以開始該解碼操作,且可以生成校正后的輸出或失敗指示符。當ECC引擎118生成校正后的輸出時,在調整后的組170中已經(jīng)校正了第一組110的足夠數(shù)量的錯誤從而滿足了 ECC引擎118的校正能力。在接收到失敗指示符時,在516處,可以反復翻轉第一組中的位,直到ECC引擎確定該第一組是可校正的。例如,對調整后的該組數(shù)據(jù)位的ECC操作可能導致失敗指示符提供給圖I的校正模塊130。響應于其,校正模塊130可以選擇要翻轉的ー個或多個附加或替換的位來生成調整后的另ー組數(shù)據(jù)位,以供使用ECC引擎118評估。例如,在校正模塊130標識要翻轉的每次反復的單個位(即,以用“O”值來替換單個“I”值或用“I”值來替換單個“O”值)的情況下,校正模塊130可以將最近翻轉的位返回到其原始值,且翻轉第一組110的下ー最可能出錯的位來生成調整后的下一組數(shù)據(jù)位,以供在ECC引擎118處測試??梢愿鶕?jù)諸如先前描述的查找表結果來標識下ー最可能出錯的位。可以向ECC引擎118提供得到的調整后的下一組數(shù)據(jù)位作為反復處理的下一反復,該 反復處理可以當ECC引擎可以在任一特定反復中校正調整后的該組數(shù)據(jù)位時終止。該反復處理的其他終止標準可以包括已經(jīng)測試了所有定位的位,且每個得到的調整后的組都不能解碼;已經(jīng)測試了第一組110的所有位(即,包括不對應干與第二組126的校正的錯誤相同的単元的位),且每個得到的調整后的組都不能解碼;已經(jīng)完成了預定數(shù)量的反復;ー個或多個其他終止標準;或其任ー組合。圖6是基于表查找來校正存儲器単元內(nèi)的錯誤的方法的一個實施例的流程圖??梢栽隈詈嫌诖鎯ζ麝嚵械闹T如圖I的控制器104的控制器處進行通常被指定為600的方法。該方法600包括在602處存儲一組位中被標識為具有特定位值的位的第一計數(shù),該組位對應于該存儲器陣列的字線的至少一部分。例如,圖I的計數(shù)114可以對應于字線108,且可以被存儲在日志文件134中作為存儲的先前計數(shù)136,以供在ECC引擎118無法校正字線108的數(shù)據(jù)讀取情況下以后提取。該特定位值可以是“0”,且被存儲在緩沖器162中的該計數(shù)114可以對應于第一組110的“ O”值的數(shù)量?;蛘?,該特定位值可以是“1”,且被存儲在緩沖器162中的該計數(shù)114可以對應于第一組110的“I”值的數(shù)量。雖然緩沖器162在圖I中被圖示為包括計數(shù)114,但是計數(shù)可以替換地被存儲在與校正模塊130或相當?shù)倪壿嬈骷ㄐ诺娜惟`適當?shù)拇鎯ζ鲀?nèi)。位的第一計數(shù)可以被存儲在控制器處或存儲器陣列處。雖然存儲的先前計數(shù)136在圖I中被圖示為在日志文件134內(nèi),但是在其他實施例中,該存儲的計數(shù)可以不被存儲在日志文件內(nèi)。雖然圖I示出在控制器104處存儲該存儲的先前計數(shù)136,但是在其他實施例中,該存儲的計數(shù)不被存儲在控制器處,而是可以被存儲在存儲器陣列102處。例如,第一計數(shù)可以被存儲在存儲器陣列內(nèi)的日志文件中。在604處,可以接收如下指示該字線具有超過閾值錯誤數(shù)量的數(shù)量的錯誤,且可以響應于接收到該指示來存儲該計數(shù)。例如,圖I的控制器可以響應于從ECC引擎118接收到字線108具有過量的錯誤的指示來存儲先前計數(shù)136。ECC引擎118可以指示錯誤的數(shù)量,且校正模塊130可以確定該字線108很可能很快超出ECC引擎118的校正能力。隨著逼近校正能力,控制器104可以開始存儲針對字線108內(nèi)的一組或多組數(shù)據(jù)位的先前計數(shù)136。可以在存儲器陣列102或控制器104內(nèi)設置標記或其他指示符(designator)以指示字線108具有大量錯誤或與存儲的計數(shù)相關聯(lián)。作為例子,圖I的校正模塊130可以從ECC引擎118接收指示已經(jīng)由ECC引擎118檢測到超過閾值的字線108的錯誤的數(shù)量的信號。對應于字線108的校正后的數(shù)據(jù)可以被邏輯地劃分為一組或多組數(shù)據(jù)位,且為每組生成ー個計數(shù)。與字線108相關聯(lián)的計數(shù)可以被存儲在日志文件134處以當在以后的讀取操作期間從字線108讀取數(shù)據(jù)時提取。在606處,與字線相關聯(lián)的計數(shù)的數(shù)量可以隨著字線中的錯誤的數(shù)量増加而增カロ。例如,圖I的字線108中的大量錯誤可以增加計數(shù)114的數(shù)量。為了例示,校正模塊130可以接收由ECC引擎118檢測的錯誤的數(shù)量,或可以基于計數(shù)114和針對該字線108的存儲的先前計數(shù)136之間的差來確定該數(shù)量。校正模塊130可以使用錯誤的數(shù)量來確定要在緩沖器162內(nèi)存儲的計數(shù)的數(shù)量。隨著字線108內(nèi)的錯誤的數(shù)量増加,計數(shù)的數(shù)量也可能増加。增加計數(shù)的數(shù)量可以減少由單個組內(nèi)的多個單元的狀態(tài)表示的位值將錯誤地翻轉的概率。在608處,可以確定計數(shù)的數(shù)量,以便在該組位內(nèi)包括I改變?yōu)镺的錯誤和O改變 為I的錯誤中的僅ー個。例如,可以基于ECC引擎118檢測的錯誤的數(shù)量來確定圖I的計數(shù)114的數(shù)量,以便在該組110內(nèi)包括I改變?yōu)镺的錯誤和O改變?yōu)镮的錯誤中的僅ー個。為了例示,字線108的讀取操作146可能導致ー個或多個組(例如,組110)具有與該組的存儲的計數(shù)(例如,存儲的計數(shù)136)相差多于I的計數(shù)。具有比對應的存儲的計數(shù)超過ニ或更多的計數(shù)的組的數(shù)量和具有比存儲的計數(shù)小ニ或更多的計數(shù)的組的數(shù)量可以被確定且添加到組的當前數(shù)量,以確定更大數(shù)量的組來邏輯地劃分該字線108??梢酝ㄟ^將字線108劃分為基本上相等大小的數(shù)據(jù)位來確定對應于字線108的新的組集合,每個組具有相關聯(lián)的“I”或“O”的計數(shù)。作為另一例子,具有與其存儲的計數(shù)相差ニ或更多的計數(shù)的每個組可以被劃分為兩個或更多的較小組,導致字線108的不均勻的組大小,但在字線108的下述部分中提供更精細的粒度,所述部分比其他部分具有更多錯誤。在610處,可以響應于導致不可由ECC引擎校正的數(shù)據(jù)的字線的讀取來提取第一計數(shù)。例如,可以響應于導致具有ECC引擎118的不可校正數(shù)量的錯誤的數(shù)據(jù)的字線108的讀取操作146來提取圖I的存儲的先前計數(shù)136。例如,圖I的校正模塊130可以從ECC引擎118接收指示ECC引擎118不能校正ー個或多個頁112的信號。響應于其,校正模塊130可以提取存儲的先前計數(shù)136。為了例示,校正模塊130可以訪問日志文件134,定位對應于第一組110的存儲的先前計數(shù)136。例如,校正模塊130可以將第一組110的存儲器地址與對應于存儲的先前計數(shù)136的存儲器地址相比較,且從日志文件134中提取存儲的先前計數(shù)136。在612處,可以將第一計數(shù)與具有特定位值的位的第二計數(shù)相比較,且基于從字線讀取的數(shù)據(jù)來確定位的第二計數(shù)。例如,可以將圖I的存儲的先前計數(shù)136與計數(shù)114相比較。為了例示,校正模塊130可以通過進行減法操作、位式比較操作、或確定計數(shù)114和存儲的先前計數(shù)136之間的差的另ー操作來將計數(shù)114與存儲的先前計數(shù)136相比較。在614處,可以從該比較中確定要校正的位的數(shù)量。為了例示,可以將“I”值校正為“O”值,或可以用“ I”值來替換“O”值。在例子中,可以通過將具有特定值的提取的位的計數(shù)114與存儲的先前計數(shù)136相比較來確定圖I的要校正的位的數(shù)量148。為了例示,圖I的校正模塊130可以由于從存儲的先前計數(shù)136中減去計數(shù)114并分配減法的結果作為要校正的位的數(shù)量148而確定要校正的位的數(shù)量148。負的值可以指示ー個或多個位應該被翻轉以具有特定值,而正的值可以指示具有該特定值的ー個或多個位應該被翻轉?;蛘撸梢允褂靡粋€或多個其他處理來確定計數(shù)114和存儲的先前計數(shù)136之間的差的符號和量值。在616處,可以校正存儲器陣列的單元的狀態(tài)??梢曰诒聿檎襾硇U摖顟B(tài)。例如,存儲器陣列可以包括多個多級単元,且可以使用圖I的錯誤功率表138以使得表查找來改變存儲器陣列102的MLC 144的狀態(tài)。為了例示,校正模塊130可以訪問緩沖器162來標識第一組110的位用于使用表查找來校正。當使用MLC中的錯誤的數(shù)量來確定錯誤的可能性時,表查找可以至少部分地基于漢明距離,如針對圖3的表350和352描述的。作為另ー例子,表查找可以通過使用該計數(shù)作為選擇要訪問的概率表的參數(shù)而至少部分地基于該計數(shù),如針對圖3的346和348描述的。作為另一例子,表查找可以至少部分地基于狀態(tài)值,諸如基于MLC單元的部分校正后的位值結合該特定位值,如針對圖3的354和356描述的。雖然在此描述的各種組件被圖示為塊組件且以通用術語描述,但是這種組件可以包括ー個或多個微處理器、狀態(tài)機或被配置以使得圖I的控制器104或圖3的控制器304來進行歸屬于這種組件的特定功能的其他電路、或其任意組合。例如,圖I的校正模塊130、或圖3的ECC引擎318和校正模塊314或其任ー組合可以表示物理組件、諸如硬件控制器、狀態(tài)機、邏輯電路或其他結構來使得圖I的控制器104或圖3的控制器304來檢測和校正錯誤。例如,可以使用被編程以通過確定要校正的位的數(shù)量來分析MLC 144的微處理器或微控制器來實現(xiàn)校正模塊130。為了例示,諸如控制器104的微處理器或微控制器可以被編程以進行查找操作來確定很可能翻轉的MLC位??刂破?04可以翻轉確定的位,且試圖ECC操作。如果包括該位的數(shù)據(jù)仍然不可校正,則控制器104可以基于與下一位相關聯(lián)的確定的功率來選擇要翻轉的下一位。校正模塊130可以包括由控制器104執(zhí)行的可執(zhí)行指令。由控制器104執(zhí)行的可以被包括在校正模塊130中的可執(zhí)行指令可以被存儲在分離的存儲器位置處、諸如在只讀存儲器(ROM)(未示出)處。雖然在本公開中使用各種特定值,提供這種值為了例示的目的而不是為了限制。例如,雖然描述了存儲三個位的MLC,但是可以使用存儲兩個位、或四個或更多位的MLC。作為另一例子,雖然ECC校正能力被描述為每512字節(jié)頁的12位,但是可以使用ECC校正能力。例如,ECC校正能力可以大于每512字節(jié)的字的12位,或小于每512字節(jié)的字的12位,且可以基于與512字節(jié)不同的字線大小(例如256字節(jié)、1024字節(jié)或任何其他字線大小)。另外,ECC校正能力可以根據(jù)ECC機制(例如Reed-Solomon vs. BCH)和強度(例如,12奇偶校驗位/字vs. 16奇偶校驗位/字)而改變,作為例示的例子。雖然描述了各種實施例為諸如經(jīng)由圖3的查找表312而確定位值出錯的概率或可能性,但是,在其他實施例中,可以使用位值正確的可能性或概率。例如,可以使用指示特定位具有正確的值的可能性或其他指示符的ー個或多個概率表。在未校正的一組位中翻轉的位的確定可以包括定位從表查找返回的最小值,指示對應的位正確的最低信心。在字線包含在ECC引擎處獨立可解碼的多頁、將頁邏輯地劃分為位的組且在所表 示的頁內(nèi)為每個組存儲I (或O)的計數(shù)的方面描述各種實施例。但是,在其他實施例中,字線可以包含單個頁,且該字線可以是在ECC處單獨可解碼的最小數(shù)據(jù)單元(例如單個碼字)。或者,或另外,諸如當劃分為邏輯組的字線基于錯誤密度且特定頁相對無錯誤、導致整個頁處于單個組中吋,(對應于存儲的計數(shù)的)ー組位可以包括一個或多個頁。雖然描述對頁或字線內(nèi)的位的分組以對于每個組生成在稍后的讀取操作期間存儲和使用的I (O)的計數(shù),但是,在一些實施例中,頁或字線的一部分但不是所有可以被邏輯地劃分為多個組。例如,字線或頁(或其他存儲單元)的中心區(qū)域或端部區(qū)域內(nèi)的位可以被分配給組和存儲的計數(shù),而字線或頁的剩余區(qū)域內(nèi)的位可以不被分配給組。圖I和3中描述的系統(tǒng)、諸如耦合于圖I的存儲器陣列102的控制器104可以被實現(xiàn)為被配置以選擇性地耦合于ー個或多個外部設備、諸如外部設備106的便攜式設備。但是,在其他實施例中,圖I的控制器104和存儲器陣列102可以被附接或嵌入在一個或多個主機設備中、諸如在便攜式通信設備的外殼內(nèi)。例如,圖I的控制器104和存儲器陣列102可以在諸如無線電話、個人數(shù)字助理(PDA)、游戲設備或控制臺、便攜式導航設備、或使 用內(nèi)部非易失性存儲器的其他設備的包裝好的裝置內(nèi)。存儲器陣列102包括非易失性存儲器、諸如閃存(例如,NAND,N0R,多級單元(MLC)、分裂位線NOR(DINOR)、AND、高電容耦合率(HiCR)、非對稱無接觸晶體管(ACT)、或其他閃存)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、只讀存儲器(ROM)、一次可編程存儲器(OTP)或任意其他類型的存儲器。在此描述的實施例的圖示意圖提供各種實施例的結構的大體理解??梢允褂们铱梢詮墓_中得出其他實施例,以便可以進行結構和邏輯的替換和修改,而不脫離本公開的范圍。該公開意圖覆蓋各種實施例的任意和所有隨后的適用或變型。上述主題要被考慮為例示的而不限制的,且所附權利要求意圖覆蓋所有這種修改、改進和其他實施例,這都落入本公開的范圍內(nèi)。因此,為了允許的最大限度,本發(fā)明的范圍要由以下權利要求和其等同物的最大可允許的解釋來確定,而不應該由前述詳細描述局限或限制。
      權利要求
      1.ー種方法,包括 在耦合于存儲器陣列的控制器處 接收如下指示從所述存儲器陣列讀取的第一組數(shù)據(jù)位包括錯誤校正碼(ECC)引擎無法校正的錯誤; 將具有特定位值的所述第一組數(shù)據(jù)位的計數(shù)與具有所述特定位值的數(shù)據(jù)位的先前計數(shù)相比較; 響應于確定所述計數(shù)超過所述先前計數(shù),標識所述第一組數(shù)據(jù)位中的具有所述特定位值且與第二組數(shù)據(jù)位的校正的數(shù)據(jù)位對應于相同的存儲器単元的位; 改變所述第一組的所標識的位的值以生成調整后的一組數(shù)據(jù)位;以及 向所述ECC引擎提供所述調整后的該組數(shù)據(jù)位。
      2.根據(jù)權利要求I的方法,其中,所述存儲器陣列包括多個多級単元。
      3.根據(jù)權利要求I的方法,還包括基于表查找來選擇所標識的位。
      4.根據(jù)權利要求3的方法,其中,所述表查找至少部分地基于漢明距離。
      5.根據(jù)權利要求3的方法,其中,所述表查找至少部分地基于所述計數(shù)。
      6.根據(jù)權利要求3的方法,其中,所述表查找至少部分地基于狀態(tài)值。
      7.根據(jù)權利要求I的方法,還包括確定所述第一組中要翻轉的位的數(shù)量。
      8.根據(jù)權利要求I的方法,還包括反復地翻轉所述第一組中的位,直到所述ECC引擎確定所述第一組是可校正的。
      9.ー種方法,包括 在耦合于存儲器陣列的控制器處 存儲ー組位中被標識為具有特定位值的位的第一計數(shù),該組位對應于所述存儲器陣列的字線的至少一部分;以及 響應于讀取所述字線導致錯誤校正碼(ECC)引擎無法校正的數(shù)據(jù) 提取所述第一計數(shù); 將所述第一計數(shù)與具有所述特定位值的位的第二計數(shù)相比較,所述第二計數(shù)是基于從所述字線讀取的數(shù)據(jù)確定的;以及 根據(jù)該比較確定要校正的位的數(shù)量。
      10.根據(jù)權利要求9的方法,還包括隨著所述字線中的錯誤的數(shù)量増加而增加與所述字線相關聯(lián)的計數(shù)的數(shù)量。
      11.根據(jù)權利要求10的方法,還包括確定所述計數(shù)的數(shù)量,以便在該組位中僅出現(xiàn)I變?yōu)镺的錯誤和O變?yōu)镮的錯誤之一。
      12.根據(jù)權利要求9的方法,還包括在存儲器陣列內(nèi)的日志文件中存儲所述第一計數(shù)。
      13.根據(jù)權利要求9的方法,還包括接收如下指示所述字線具有超過閾值錯誤數(shù)量的數(shù)量的錯誤,且所述方法還包括響應于接收到該指示來存儲所述第一計數(shù)。
      14.根據(jù)權利要求9的方法,其中,在所述控制器處或在所述存儲器陣列處存儲所述位的第一計數(shù)。
      15.根據(jù)權利要求9的方法,其中,所述存儲器陣列包括多個多級単元。
      16.根據(jù)權利要求9的方法,還包括校正所述存儲器陣列的単元的狀態(tài)。
      17.根據(jù)權利要求16的方法,還包括基于表查找來校正所述狀態(tài)。
      18.根據(jù)權利要求17的方法,其中,所述表查找至少部分地基于漢明距離和所述第二計數(shù)中的至少ー種。
      19.一種存儲器器件,包括 存儲器陣列; 至少ー個錯誤概率表,其存儲指示所述存儲器陣列的存儲器単元的多位值的特定位的錯誤的可能性的數(shù)據(jù),所述數(shù)據(jù)至少部分地基于所述存儲器単元的其他位的錯誤的數(shù)量;以及 耦合于所述存儲器陣列的控制器,所述控制器包括被配置以檢測所述存儲器単元的所述其他位的錯誤的錯誤校正碼(ECC)引擎,其中,所述控制器被配置以確定要校正的具有特定值的位的數(shù)量,所述位是經(jīng)由在存儲器陣列處的讀取操作而提取的,所述位的數(shù)量是基于將具有特定值的提取的位的計數(shù)與位值的存儲的計數(shù)相比較而確定的,所述控制器還被配置以訪問所述至少ー個錯誤概率表來標識用于校正的至少ー個位。
      20.根據(jù)權利要求19的存儲器器件,其中,通過從讀取的值到部分校正的值的漢明距離來索引所述至少ー個錯誤概率表。
      21.根據(jù)權利要求19的存儲器器件,其中,通過部分校正的值來索引所述至少ー個錯誤概率表。
      22.根據(jù)權利要求19的存儲器器件,其中,在所述控制器處存儲所述至少ー個錯誤概率表。
      23.根據(jù)權利要求19的存儲器器件,其中,在所述存儲器陣列處存儲所述至少ー個錯誤概率表。
      24.根據(jù)權利要求19的存儲器器件,其中,在所述控制器處的存儲器中存儲所述存儲的計數(shù)。
      25.根據(jù)權利要求19的存儲器器件,其中,在所述存儲器陣列處存儲所述存儲的計數(shù)。
      26.根據(jù)權利要求19的存儲器器件,其中,所述存儲器陣列包括閃存多級單元陣列。
      全文摘要
      在耦合于存儲器陣列的控制器處,一種方法包括接收如下指示從存儲器陣列讀取的第一組數(shù)據(jù)位包括錯誤校正碼(ECC)引擎無法校正的錯誤??梢詫⒕哂刑囟ㄎ恢档牡谝唤M數(shù)據(jù)位的計數(shù)與具有該特定位值的數(shù)據(jù)位的先前計數(shù)相比較。響應于確定所述計數(shù)超過所述先前計數(shù),標識所述第一組數(shù)據(jù)位中的具有所述特定位值且與第二組數(shù)據(jù)位的校正的數(shù)據(jù)位對應于相同的存儲器單元的位??梢愿淖兊谝唤M的所標識的位的值,以生成調整后的一組數(shù)據(jù)位,可以將調整后的該組數(shù)據(jù)位提供給ECC引擎。
      文檔編號G06F11/10GK102725738SQ201180007063
      公開日2012年10月10日 申請日期2011年1月7日 優(yōu)先權日2010年1月27日
      發(fā)明者C.J.岡薩雷茲, M.A.德阿布里奧, S.斯卡拉 申請人:桑迪士克科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1