專利名稱:根據(jù)固態(tài)存儲(chǔ)器的擦除計(jì)數(shù)進(jìn)行誤差校正的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于校正在從諸如閃存的存儲(chǔ)器讀取的數(shù)據(jù)中的誤差的裝置、方法和 計(jì)算機(jī)介質(zhì)。
背景技術(shù):
非易失性存儲(chǔ)器是可以保持它所存儲(chǔ)的數(shù)據(jù)而無需電源的存儲(chǔ)器類型。存在具 有不同的讀/寫和擦除能力、訪問時(shí)間、數(shù)據(jù)保持(retention)、數(shù)據(jù)持續(xù)周期(endurance cycle)等的幾種類型的非易失性存儲(chǔ)器。電可擦除可編程只讀存儲(chǔ)器(EEPROM)能夠在每 字節(jié)的級別上執(zhí)行讀寫操作,這意味著可以單獨(dú)讀和寫每個(gè)存儲(chǔ)器位置。由快閃型浮置柵極晶體管或單元組成的閃存是在功能上和性能上與EPROM存儲(chǔ) 器相似的非易失性存儲(chǔ)器;閃存具有相對不昂貴的優(yōu)勢,雖然它工作在某些限制下。不能向 在閃存上之前寫過的位置重寫而不首先擦除整個(gè)存儲(chǔ)器部分,即,必須在可以再次編程閃 存單元之前擦除它們(例如編程到“1”)。閃存可以僅僅擦除相對大的單元組,其通常被稱 為擦除塊(例如,對于許多當(dāng)前的商業(yè)設(shè)備,大小為16KB至2MB——預(yù)期隨著具有更高容量 的設(shè)備變得商業(yè)可用時(shí),擦除塊的大小將在未來增加)。閃存器件中的誤差校ιΗ閃存以及其他存儲(chǔ)器(例如磁存儲(chǔ)器、光存儲(chǔ)和易失性存儲(chǔ)器)的一個(gè)顯著特征 是這些存儲(chǔ)器是“破壞的(corrupting)介質(zhì)”——一個(gè)或多個(gè)誤差有時(shí)被引入到被寫到存 儲(chǔ)器的原始數(shù)據(jù)中,使得當(dāng)從存儲(chǔ)器讀回?cái)?shù)據(jù)時(shí),可能在“被翻轉(zhuǎn)(flipped) ”狀態(tài)中讀取一 個(gè)或多個(gè)信息比特。為了克服該現(xiàn)象并使NAND型存儲(chǔ)器可由實(shí)際的應(yīng)用使用,結(jié)合這些存儲(chǔ)器使用 糾錯(cuò)碼(ECC)是常用的技術(shù)。正存在對于處理閃存器件中以及包括除了閃存之外的固態(tài)存儲(chǔ)器的存儲(chǔ)器件中 的誤差校正的改善的技術(shù)和裝置的需要。器件架構(gòu)的討論圖IA(現(xiàn)有技術(shù))是閃存存儲(chǔ)器件260 (現(xiàn)有技術(shù))的框圖。閃存存儲(chǔ)器件包括 閃存270以及可操作來讀取數(shù)據(jù)并將數(shù)據(jù)寫到閃存270的快閃控制器280。在這里使用 術(shù)語“編程(program) ”、“編程(programming) ”、“被編程”和“可編程”可分別與術(shù)語“寫 (write) ”、“寫(writing) ”、“被寫”和“可寫”互換,以表示將數(shù)據(jù)存儲(chǔ)在閃存中。閃存存儲(chǔ)器件的一個(gè)例子是“外圍快閃存儲(chǔ)器件”。在計(jì)算領(lǐng)域中公知的是諸如 USB閃存驅(qū)動(dòng)器(UFD)、PC卡以及與數(shù)字相機(jī)、音樂播放器、手持和掌上計(jì)算機(jī)以及蜂窩電 話一起使用的小存儲(chǔ)卡的形式的外圍閃存器件。
圖IB(現(xiàn)有技術(shù))是與主機(jī)設(shè)備310(例如,膝上型或臺(tái)式或手持計(jì)算機(jī)、數(shù)字相 機(jī)、移動(dòng)電話、音樂播放器和視頻游戲控制臺(tái))“耦接”或者被配置為經(jīng)由器件側(cè)接口 250與 主機(jī)設(shè)備310交換數(shù)據(jù)的外圍閃存存儲(chǔ)器件260* (星號表示閃存存儲(chǔ)器件是外圍閃存存儲(chǔ) 器件)的框圖。外圍閃存存儲(chǔ)器件260*和主機(jī)設(shè)備310使用主機(jī)側(cè)接口 350和器件側(cè)接 口 250 (例如,分別是USB或SD接口)經(jīng)由通信鏈路300相互通信。雖然在附圖中將外圍閃存存儲(chǔ)器件260*圖示為與主機(jī)設(shè)備310相分離的器件,但 是要認(rèn)識(shí)到,在一些實(shí)現(xiàn)方式中,可以將閃存存儲(chǔ)器件260*部署在主機(jī)設(shè)備310的框架內(nèi)。在一個(gè)例子中,閃存存儲(chǔ)器件260*向主機(jī)設(shè)備310提供數(shù)據(jù)讀和數(shù)據(jù)寫服務(wù)。通 過快閃控制器280將閃存存儲(chǔ)器件260*從主機(jī)設(shè)備310接收的數(shù)據(jù)寫到閃存270。此外, 響應(yīng)于由閃存存儲(chǔ)器接收的“數(shù)據(jù)讀”請求,快閃控制器280從閃存270讀取數(shù)據(jù)??梢栽凇白x取時(shí)間”或任何稍后的時(shí)間校正所讀數(shù)據(jù)中的誤差??梢灾辽俨糠值?由快閃控制器280、至少部分地由主機(jī)設(shè)備310 (例如,通過主機(jī)側(cè)處理器320執(zhí)行RAM 330 中的可執(zhí)行代碼340或以任何其他方式)、以及任何其他位置并以任何其他方式來執(zhí)行誤 差校正。技術(shù)人員將認(rèn)識(shí)到,“外圍閃存器件”不是唯一一類閃存存儲(chǔ)器件。例如,某些移動(dòng) 電話、臺(tái)式或膝上型計(jì)算機(jī)、PDA設(shè)備或其他電子設(shè)備也可以包括閃存和快閃控制器,并且 可能不是一定要被配置為與主機(jī)設(shè)備耦接和/或?yàn)橹鳈C(jī)設(shè)備提供數(shù)據(jù)讀服務(wù)和/或數(shù)據(jù)寫 服務(wù)。技術(shù)人員將認(rèn)識(shí)到,在圖1A-1B中描述的閃存器件僅僅是一類外圍非易失性存儲(chǔ) 存儲(chǔ)器器件,并且其他存儲(chǔ)器器件可以包括其他類型的固態(tài)存儲(chǔ)器,比如光存儲(chǔ)器和磁阻 (magnetoresistive)隨機(jī)存取存儲(chǔ)器(MRAM)。
發(fā)明內(nèi)容
各種實(shí)施例解決了這些和相關(guān)問題,在這里提供了包括方法和系統(tǒng)的那些實(shí)施例 的例子?,F(xiàn)在第一次公開一種用于處理誤差校正的方法,該方法包括a)維持固態(tài)存儲(chǔ)器 的至少一個(gè)塊的擦除計(jì)數(shù);b)從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);C)根據(jù) 所述存儲(chǔ)器塊的相關(guān)聯(lián)擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少之一 i)選擇第一解碼器和第二解碼器 之一;以及ii)選擇第一解碼器模式和第二解碼器模式之一 ;d)僅使用所選擇的解碼器或 所選擇的模式來校正所讀取的數(shù)據(jù)中的誤差。在一些實(shí)施例中,固態(tài)存儲(chǔ)器是閃存。在一些實(shí)施例中,由固態(tài)存儲(chǔ)器所駐留的存儲(chǔ)器件的器件控制器來執(zhí)行維持、讀 取、影響和校正中的至少一個(gè)。在一些實(shí)施例中,存儲(chǔ)器件經(jīng)由設(shè)備間接口操作地與主機(jī)設(shè)備耦接,以及其中該 方法還包括e)從存儲(chǔ)器件向主機(jī)設(shè)備發(fā)送誤差校正過的數(shù)據(jù)?,F(xiàn)在第一次公開一種用于處理誤差校正的方法,該方法包括a)維持固態(tài)存儲(chǔ)器 的至少一個(gè)塊的擦除計(jì)數(shù);b)從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);C)根 據(jù)所述相關(guān)聯(lián)的擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少一個(gè)i)決定A)嘗試使用較輕權(quán)重解碼器來 校正誤差,還是B)嘗試僅使用比所述較輕權(quán)重解碼器更重的較重權(quán)重解碼器來校正誤差;
7ii)決定A)嘗試使用較快解碼器來校正誤差,還是B)嘗試僅使用比所述較快解碼器更慢 的較慢解碼器來校正誤差;iii)決定A)嘗試使用具體解碼器的較輕權(quán)重模式來校正誤 差,還是B)嘗試僅使用所述具體解碼器的比所述較輕權(quán)重模式更重的較重權(quán)重模式來校 正誤差;以及iv)決定A)嘗試使用具體解碼器的較快模式來校正誤差,還是B)嘗試僅使 用所述具體解碼器的比所述較快模式更慢的較慢模式來校正誤差;以及d)根據(jù)所述決定 中的至少一個(gè),校正在讀取的數(shù)據(jù)中的誤差。在一些實(shí)施例中,由固態(tài)存儲(chǔ)器所駐留的存儲(chǔ)器件的器件控制器來執(zhí)行維持、讀 取、一個(gè)或多個(gè)決定以及校正中的至少一個(gè)。現(xiàn)在第一次公開一種用于處理誤差校正的方法,該方法包括a)維持固態(tài)存儲(chǔ)器 的至少一個(gè)塊的擦除計(jì)數(shù);b)從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);C)根據(jù) 所述相關(guān)聯(lián)的擦除計(jì)數(shù),確定以下的至少一個(gè)i)模式轉(zhuǎn)換條件;以及ii)誤差校正嘗試資 源預(yù)算;d)使用誤差校正參數(shù)的第一集合進(jìn)行校正在讀取的數(shù)據(jù)中的誤差的第一嘗試;以 及e)在校正誤差的所述第一嘗試不成功的情況下,使用誤差校正參數(shù)的第二集合進(jìn)行校 正在讀取的數(shù)據(jù)中的誤差的第二嘗試,所述第二嘗試根據(jù)如下至少之一而定i)所述第一 嘗試對所述模式轉(zhuǎn)換條件的觸發(fā);以及ii)所述第一嘗試對所述資源預(yù)算的耗盡。在一些實(shí)施例中,i)該方法包括確定模式轉(zhuǎn)換條件;以及ii)第二嘗試根據(jù)至少 第一嘗試對模式轉(zhuǎn)換條件的觸發(fā)而定。在一些實(shí)施例中,i)該方法包括確定資源預(yù)算;以及ii)第二嘗試根據(jù)至少第一 嘗試對資源預(yù)算的耗盡而定。在一些實(shí)施例中,從由以下構(gòu)成的組中選擇至少一個(gè)誤差校正參數(shù)i)用于從多 個(gè)解碼器中選擇解碼器的選擇參數(shù)(例如,描述解碼器“重度(heaviness)”或“解碼器速 度”的參數(shù));ii)用于從多個(gè)解碼器模式中選擇給定解碼器的解碼器模式的解碼器模式參 數(shù)(例如,描述解碼器模式“重度”或解碼器模式“速度”的參數(shù));iii)所讀取的數(shù)據(jù)的比 特概率值;iv)軟比特的數(shù)量;以及ν)解碼器總線寬度。在一些實(shí)施例中,從由以下構(gòu)成的組中選擇模式轉(zhuǎn)換條件i)超時(shí)條件;ii)迭代 數(shù)量條件;以及iii) CPU周期量數(shù)條件。在一些實(shí)施例中,從由以下構(gòu)成的組中選擇誤差校正嘗試資源預(yù)算i)時(shí)間預(yù) 算;ii) CPU周期預(yù)算;以及iii)迭代預(yù)算。在一些實(shí)施例中,由固態(tài)存儲(chǔ)器所駐留的存儲(chǔ)器件的器件控制器來執(zhí)行維持、讀 取、確定以及一個(gè)或多個(gè)嘗試中的至少一個(gè)?,F(xiàn)在第一次公開一種用于處理誤差校正的方法,該方法包括a)維持存儲(chǔ)器的至 少一個(gè)塊的擦除計(jì)數(shù);b)從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);C)根據(jù)所述 相關(guān)聯(lián)的擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少一個(gè)i)確定針對所述數(shù)據(jù)要讀取的軟比特的數(shù)量; 以及ii)選擇解碼總線寬度大??;以及d)在確定所述軟比特的數(shù)量的情況下,讀取針對所 述數(shù)據(jù)的所述數(shù)量的軟比特;以及e)嘗試使用以下的至少一個(gè)來校正所述數(shù)據(jù)中的誤差 i)所選擇的解碼總線寬度大?。灰约癷i)讀取的軟比特。在一些實(shí)施例中,i)該方法包括確定針對數(shù)據(jù)要讀取的軟比特?cái)?shù)量,并讀取針對 該數(shù)據(jù)的該數(shù)量的軟比特;以及ii)嘗試包括嘗試使用至少所讀取的軟比特來校正數(shù)據(jù)中 的誤差。
在一些實(shí)施例中,i)該方法包括選擇解碼總線寬度大?。灰约癷i)嘗試包括嘗試 使用所讀取的解碼總線寬度大小來校正數(shù)據(jù)中的誤差。在一些實(shí)施例中,由固態(tài)存儲(chǔ)器所駐留的存儲(chǔ)器件的器件控制器來執(zhí)行維持、一 個(gè)或多個(gè)讀取、確定、選擇和嘗試中的至少一個(gè)。現(xiàn)在第一次公開一種數(shù)據(jù)存儲(chǔ)器件,包括a)固態(tài)存儲(chǔ)器;以及b)器件控制器, 工作來i)維持所述固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù);ii)從具有相關(guān)聯(lián)的擦除計(jì)數(shù) 的存儲(chǔ)器塊之一讀取數(shù)據(jù);iii)根據(jù)該存儲(chǔ)器塊的相關(guān)聯(lián)的擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少一 個(gè)A)選擇第一解碼器和第二解碼器之一;以及B)選擇第一解碼器模式和第二解碼器模式 之一;以及iv)僅使用所選擇的解碼器或所選擇的模式來校正在讀取的數(shù)據(jù)中的誤差?,F(xiàn)在第一次公開一種數(shù)據(jù)存儲(chǔ)器件,包括a)固態(tài)存儲(chǔ)器;以及b)控制器,工作 來i)維持所述固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù);ii)從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存 儲(chǔ)器塊之一讀取數(shù)據(jù);iii)根據(jù)所述相關(guān)聯(lián)的擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少一個(gè)A)決定1) 嘗試使用較輕權(quán)重解碼器來校正誤差,還是II)嘗試僅使用比所述較輕權(quán)重解碼器更重的 較重權(quán)重解碼器來校正誤差;B)決定1)嘗試使用較快解碼器來校正誤差,還是II)嘗試 僅使用比所述較快解碼器更慢的較慢解碼器來校正誤差;C)決定1)嘗試使用具體解碼器 的較輕權(quán)重模式來校正誤差,還是II)嘗試僅使用所述具體解碼器的比所述較輕權(quán)重模式 更重的較重權(quán)重模式來校正誤差;以及D)決定1)嘗試使用具體解碼器的較快模式來校 正誤差,還是II)嘗試僅使用所述具體解碼器的比所述較快模式更慢的較慢模式來校正誤 差;以及iv)根據(jù)所述決定中的至少一個(gè),校正在讀取的數(shù)據(jù)中的誤差?,F(xiàn)在第一次公開一種數(shù)據(jù)存儲(chǔ)器件,包括一種數(shù)據(jù)存儲(chǔ)器件,包括a)固態(tài)存儲(chǔ) 器;以及b)器件控制器,工作來i)維持所述固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù);ii)從 具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);iii)根據(jù)所述相關(guān)聯(lián)的擦除計(jì)數(shù),確定 以下的至少一個(gè)A)模式轉(zhuǎn)換條件;以及B)誤差校正嘗試資源預(yù)算;iv)使用誤差校正參 數(shù)的第一集合進(jìn)行校正在讀取的數(shù)據(jù)中的誤差的第一嘗試;以及ν)在校正誤差的所述第 一嘗試不成功的情況下,使用誤差校正參數(shù)的第二集合進(jìn)行校正在讀取的數(shù)據(jù)中的誤差的 第二嘗試,所述第二嘗試根據(jù)以下的至少一個(gè)而定A)所述第一嘗試對所述模式轉(zhuǎn)換條件 的觸發(fā);以及B)所述第一嘗試對所述資源預(yù)算的耗盡。現(xiàn)在第一次公開一種數(shù)據(jù)存儲(chǔ)器件,包括a)固態(tài)存儲(chǔ)器;以及b)器件控制器,工 作來i)維持所述固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù);ii)從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的 存儲(chǔ)器塊之一讀取數(shù)據(jù);iii)根據(jù)所述相關(guān)聯(lián)的擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少一個(gè):A)確定 針對所述數(shù)據(jù)要讀取的軟比特的數(shù)量;以及B)選擇解碼總線寬度大??;以及iv)在確定所 述軟比特的數(shù)量情況下,讀取針對所述數(shù)據(jù)的所述數(shù)量的軟比特;以及ν)嘗試使用以下的 至少一個(gè)來校正所述數(shù)據(jù)中的誤差A(yù))所選擇的解碼總線寬度大??;以及B)所讀取的軟比 特。要注意的是,與某些實(shí)施例有關(guān)的上述特征還可以被包括在其他實(shí)施例中,除非 在下面指出與這里描述的相反。
圖IA是閃存存儲(chǔ)器件的框圖。
圖IB是與主機(jī)設(shè)備耦接的外圍閃存存儲(chǔ)器件的框圖。圖2A是使用根據(jù)一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù)而選擇的解碼器來校正誤差的 一個(gè)例程的流程圖。圖2B是使用根據(jù)一個(gè)或多個(gè)存儲(chǔ)器塊而選擇的解碼器模式來校正誤差的一個(gè)例 程的流程圖。圖3A是誤差校正的一個(gè)例程的流程圖,其中視一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù) 而定,使用較輕權(quán)重解碼器來嘗試校正誤差。圖3B是誤差校正的一個(gè)例程的流程圖,其中視一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù) 而定,使用較快的解碼器來嘗試校正誤差。圖3C是誤差校正的一個(gè)例程的流程圖,其中視一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù) 而定,使用較輕權(quán)重解碼器模式來嘗試校正誤差。圖3D是誤差校正的一個(gè)例程的流程圖,其中視一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù) 而定,使用較快解碼器模式來嘗試校正誤差。圖4A是誤差校正的一個(gè)例程的流程圖,其中根據(jù)一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì) 數(shù)來確定模式轉(zhuǎn)換觸發(fā)條件。圖4B是誤差校正的一個(gè)例程的流程圖,其中根據(jù)一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì) 數(shù)來確定誤差校正嘗試的資源預(yù)算。圖5A-5B是如下例程的流程圖,其中根據(jù)一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù)來確定 針對誤差校正嘗試而要讀取的軟比特?cái)?shù)。圖6A-6B是誤差校正的例程的流程圖,其中根據(jù)一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù) 來確定解碼器總線寬度。
具體實(shí)施例方式參考附圖,通過參考示例實(shí)施例給出的詳細(xì)描述,將更好地理解下面的權(quán)利要求。 描述、實(shí)施例和附圖將不被認(rèn)為限制權(quán)利要求的范圍。應(yīng)該理解,當(dāng)前公開的處理誤差校正 的方法和裝置的每個(gè)特征在每個(gè)實(shí)現(xiàn)方式中并不都是一定需要的。還應(yīng)該理解,貫穿于示 出或描述過程或方法的本公開,可以按任何順序或同時(shí)執(zhí)行該方法的各步驟,除非上下文 清楚地表明一個(gè)步驟取決于首先執(zhí)行的另一步驟。如貫穿本申請所使用的,詞“可以”用于 允許的意思(即,意味“具有......的可能性”),而不是強(qiáng)制的意思。本發(fā)明人現(xiàn)在公開其中根據(jù)從其讀取數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù)來 執(zhí)行對從固態(tài)存儲(chǔ)器讀取的數(shù)據(jù)的ECC解碼的幾種技術(shù)。不希望被任何特定理論所界定,要注意,當(dāng)多次擦除固態(tài)存儲(chǔ)器(例如,閃存、 MRAM或任何其他類型的固態(tài)存儲(chǔ)器)時(shí),這可能降低作為存儲(chǔ)介質(zhì)的存儲(chǔ)器的質(zhì)量。同樣, 已經(jīng)被擦除了數(shù)據(jù)達(dá)相對“大”次數(shù)的固態(tài)存儲(chǔ)器(或其一部分)可能是相比于已經(jīng)被擦 除了數(shù)據(jù)達(dá)相對“小”次數(shù)的固態(tài)存儲(chǔ)器(或其一部分)“更差”或“更不可靠”或“更破壞 的”存儲(chǔ)介質(zhì)?,F(xiàn)在描述其中根據(jù)從其讀取數(shù)據(jù)的一個(gè)或多個(gè)塊的擦除計(jì)數(shù)來執(zhí)行對從存儲(chǔ)器 讀取的數(shù)據(jù)的ECC解碼的幾種技術(shù)。在從具有“高擦除計(jì)數(shù)”的一個(gè)或多個(gè)塊讀取數(shù)據(jù)的 情況下,這可能指示該一個(gè)或多個(gè)存儲(chǔ)器塊作為存儲(chǔ)介質(zhì)相對“更不可靠”——同樣,從“更不可靠”的一個(gè)或多個(gè)存儲(chǔ)器塊讀回的數(shù)據(jù)可能包括相對“大”數(shù)量的誤差。在該情況下, 可以使用適合于校正在具有相對“大數(shù)量”誤差的數(shù)據(jù)中的誤差的“悲觀(pessimistic)” 技術(shù)。相反,在從具有“低擦除計(jì)數(shù)”的一個(gè)或多個(gè)塊讀取數(shù)據(jù)的情況下,這可能指示該一 個(gè)或多個(gè)塊作為存儲(chǔ)介質(zhì)“更可靠”,并且可以使用適合于校正在具有相對“小數(shù)量”誤差的 數(shù)據(jù)中的誤差的“樂觀(optimistic)”技術(shù)。第一技術(shù)(參見參考圖2A的討論)涉及如下情形,其中當(dāng)校正從一個(gè)或多個(gè)存儲(chǔ) 器塊讀取的數(shù)據(jù)中的誤差時(shí),可以使用“較輕權(quán)重解碼器”或“較重權(quán)重”解碼器。在從其 讀取數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器塊的擦試計(jì)數(shù)相對“高”(指示該一個(gè)或多個(gè)存儲(chǔ)器塊經(jīng)受了 相對大量的磨損)的情況下,這可能指示從其讀取了數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器塊的“質(zhì)量” 可能相對“低”。在該情況下,“高”擦除計(jì)數(shù)因而可以指示在校正誤差時(shí)利用更“悲觀”技 術(shù)并利用“較重權(quán)重”解碼器是有益的,即便較重權(quán)重解碼器可能較慢和/或需要更多計(jì)算 資源(例如CPU周期、電力和/或存儲(chǔ)器資源)。相反,在擦除計(jì)數(shù)相對“低”的情況下,這 可能指示從其讀取了數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器塊的“質(zhì)量”可能相對“高”,并且利用“較低 權(quán)重”解碼器可能是有益的。第二技術(shù)(參見參考圖3A-3D的討論)涉及“試錯(cuò)(trial-and-error),,解碼例 程?!霸囧e(cuò)解碼例程”工作如下首先,嘗試使用相對“輕權(quán)重”或“快”解碼器(或解碼器模 式)來校正誤差。在該嘗試成功的情況下,能夠“享受”相對快的解碼和/或消耗相對少的 計(jì)算資源的解碼。否則,如果該嘗試失敗,則使用較慢和/或消耗更多計(jì)算資源、但更不太 可能使校正誤差失敗的“較重權(quán)重”(或較慢)解碼器(或解碼器模式)來校正數(shù)據(jù)中的誤 差。根據(jù)該第二技術(shù),現(xiàn)在公開了如果從具有相對“高”擦除計(jì)數(shù)的一個(gè)塊或多個(gè)塊讀 取數(shù)據(jù),則應(yīng)該采用悲觀方法,并且“悲觀地”跳過嘗試使用較輕權(quán)重或較快(但較不可靠) 解碼器(或模式)來解碼誤差的步驟是有益的。在該情況下,其中不嘗試使用無論如何可 能失敗的低權(quán)重和/或快解碼器的該“悲觀”方法可能對于節(jié)約時(shí)間和/或節(jié)省計(jì)算資源 是有用的。相反,如果從具有相對“低”擦除計(jì)數(shù)的一個(gè)塊或多個(gè)塊讀取數(shù)據(jù),則可以假設(shè) 輕權(quán)重和/或快解碼器更不太可能失敗。從而,在從與該“較低”擦除計(jì)數(shù)相關(guān)聯(lián)的(一個(gè) 或多個(gè))塊讀取數(shù)據(jù)的情況下,對較輕權(quán)重和/或較快解碼器可能失敗的“冒險(xiǎn)”可能是有 益的。從而,在從與該“較低”擦除計(jì)數(shù)相關(guān)聯(lián)的一個(gè)或多個(gè)塊讀取數(shù)據(jù)的情況下,在嘗試 “較可靠”的較重權(quán)重和/或較慢解碼器(或模式)之前嘗試使用較輕權(quán)重和/或較快解碼 器(或模式)來解碼數(shù)據(jù)可能是有益的。第三技術(shù)(例如參見參考圖4A-4B的討論)也涉及“試錯(cuò)”解碼例程。根據(jù)與該 第三技術(shù)相關(guān)的一些實(shí)施例,首先嘗試使用適合于處理“較少”數(shù)量誤差的較輕權(quán)重解碼器 和/或較快解碼器和/或解碼器模式(或解碼器)來校正誤差。如果該第一嘗試失敗(例 如,如果該第一嘗試在給定時(shí)間量內(nèi)沒有成功,從而觸發(fā)一些“超時(shí)”條件),則進(jìn)行第二嘗 試以使用適合于處理“較大”數(shù)量誤差的較重權(quán)重和/或較慢解碼器和/或模式(或解碼 器)來校正誤差?,F(xiàn)在公開在從具有“高”擦除計(jì)數(shù)的固態(tài)存儲(chǔ)器的一個(gè)或多個(gè)塊讀取數(shù)據(jù)(即,期 望針對其校正誤差的數(shù)據(jù))的情況下,則僅以“悲觀”方式——即通過投入相對“少”的資 源來執(zhí)行嘗試使用較輕權(quán)重或較快(但較不可靠)解碼器(或模式)來解碼誤差的步驟可能是有益的。從而,在一個(gè)例子中,如果使用“較輕權(quán)重”或“較快解碼器”來校正誤差的嘗 試沒有相對“快”地(在“小的超時(shí)值”內(nèi))成功,則⑴相對“快”地丟棄該嘗試(即認(rèn)為 “失敗”),并且(ii)然后使用較慢和/或較重權(quán)重和/或更適合于處理“較大”數(shù)量誤差的 不同解碼器和/或解碼器模式來執(zhí)行校正誤差的“新”的嘗試。相反,在從具有“高”擦除計(jì)數(shù)的固態(tài)存儲(chǔ)器的一個(gè)或多個(gè)塊讀取將被校正的數(shù)據(jù) 的情況下,則以更“樂觀”方式——即通過在輕權(quán)重和/或較快解碼器(或解碼模式)中投 入“更多”資源來執(zhí)行嘗試使用較輕權(quán)重或較快(但較不可靠)解碼器(或模式)來解碼 誤差的步驟可能是有益的。從而,在一個(gè)例子中,如果使用“較輕權(quán)重”或“較快解碼器”來 校正誤差的嘗試沒有相對“快”地成功,則仍然可以假設(shè)還是存在該嘗試將最終成功的某些 可能性。因而,在該例子中,在“前進(jìn)”到使用“較重權(quán)重”和/或“較慢”的解碼器或模式來 校正誤差的嘗試之前,對使用“較重權(quán)重”和/或“較慢”的解碼器或模式來校正誤差的初 始嘗試“給予機(jī)會(huì)”一例如,允許其在被指定為失敗之前工作更長時(shí)間段(或更多CPU周 期)。第四技術(shù)(例如參見參考圖5A-5B的討論)涉及決定將被讀取來校正誤差的軟比 特(soft bit)的數(shù)量。在美國專利申請11/642,708和11/651,483中討論了將軟比特用 來改善存儲(chǔ)器中的誤差校正能力,通過全部引用將這兩者中的每個(gè)合并于此。因?yàn)樽x取軟 比特導(dǎo)致在時(shí)間和功率上的花費(fèi),所以存在其中ECC解碼器首先嘗試解碼數(shù)據(jù)而根本不讀 取軟比特(或者僅讀取“低”數(shù)量的軟比特)的許多情形。如果失敗,則可以讀取一個(gè)或多 個(gè)軟比特,并且可以進(jìn)行另一解碼嘗試。如果該第二嘗試也失敗,則讀取更多軟比特,并且 進(jìn)行另一解碼嘗試。該過程可以繼續(xù)迭代(iterate),直到解碼成功或者達(dá)到了可用軟比特 的最大數(shù)量。現(xiàn)在公開可以根據(jù)從其讀取數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù)來決定多少 軟比特將被讀取并用于初始嘗試(例如參見圖5A的步驟S419)、和/或決定在初始嘗試失 敗之后要讀取多少另外的軟比特(參見例如圖5B的步驟S473)。從而,在該擦除計(jì)數(shù)相對“高”的情況下,可以采用“悲觀”方法,并且在使用零或 “小”數(shù)量軟比特的迭代不太可能成功(即,因?yàn)閿?shù)據(jù)可能包含許多誤差,從而可能要求較大 數(shù)量軟比特來校正“有噪聲的”數(shù)據(jù)中的誤差)的假設(shè)下,可以跳過這些迭代(或者在失敗 之后,可以讀取相對“大”數(shù)量的軟比特)。相反,在該擦除計(jì)數(shù)(即,從其讀取數(shù)據(jù)的存儲(chǔ)器的一個(gè)或多個(gè)塊的擦除計(jì)數(shù))相 對“低”的情況下,可以采用“樂觀”方法,并且在該情形下,在有可能數(shù)據(jù)是相對“高”質(zhì)量 的、以及不使用軟比特或使用相對“小”數(shù)量的軟比特具有合理的成功機(jī)會(huì)的假設(shè)下,嘗試 使用零或“小”數(shù)量軟比特來校正誤差可能是有益的。第五技術(shù)(例如參見圖6A)涉及解碼器總線的寬度。現(xiàn)在公開在從具有相對“高” 擦除計(jì)數(shù)的一個(gè)或多個(gè)存儲(chǔ)器塊讀取數(shù)據(jù)的情況下,這指示數(shù)據(jù)可能是低質(zhì)量的,并且可 能優(yōu)選相對“悲觀”方法以校正誤差。從而,在該情形下,使用較大的解碼器總線來校正誤 差可能是有益的,即使較大的解碼器總線可能較慢和/或要求更多的計(jì)算資源。相反,在從具有相對“低”擦除計(jì)數(shù)的一個(gè)或多個(gè)存儲(chǔ)器塊讀取數(shù)據(jù)的情況下,這 指示數(shù)據(jù)可能是高質(zhì)量的,并且可能優(yōu)選嘗試用較小的解碼器總線來校正誤差的相對“樂 觀”方法以校正誤差。
12
貫穿本公開,當(dāng)在“閃存”方面解釋某些教導(dǎo)時(shí),要認(rèn)識(shí)到,這些教導(dǎo)也可以應(yīng)用到 除了閃存之外的其他固態(tài)存儲(chǔ)器——例如光存儲(chǔ)器或MRAM。技術(shù)人員將認(rèn)識(shí)到,可以將當(dāng)前公開的用于校正誤差的技術(shù)與用于校正在從存儲(chǔ) 器讀取的數(shù)據(jù)中的誤差的任何其他技術(shù)相結(jié)合。在描述附圖之前,給出了在閃存中使用ECC的一般概況,并且提供了各個(gè)術(shù)語的 定義(在接下來的兩部分中)。閃存器件中的誤差校IH在下面給出了在閃存中使用ECC的一般概況,包括如下步驟(1)在將數(shù)據(jù)寫到存儲(chǔ)器之前,將ECC算法應(yīng)用到數(shù)據(jù)以便計(jì)算之后用于誤差檢 測和校正的另外的(即冗余)比特。這些冗余比特通常被稱為“奇偶比特”或“奇偶位”。被 輸入到ECC模塊中的數(shù)據(jù)和由該模塊輸出的奇偶位的組合被稱為碼字。到ECC模塊的輸入 數(shù)據(jù)的每個(gè)不同的值得到不同的碼字。(2)將整個(gè)碼字(即原始數(shù)據(jù)和奇偶位)記錄到閃存。應(yīng)該注意,NAND型閃存的 實(shí)際大小大于原始數(shù)據(jù)的大小,并且存儲(chǔ)器被設(shè)計(jì)為也容納奇偶位。(3)當(dāng)從存儲(chǔ)器獲取(retrieve)數(shù)據(jù)時(shí),再次讀取整個(gè)碼字,并且將ECC算法應(yīng)用 于該數(shù)據(jù)和奇偶位,以便檢測并校正可能的“比特翻轉(zhuǎn)”(即誤差)。應(yīng)該注意,可以通過硬件、軟件或者硬件和軟件的組合來進(jìn)行ECC的實(shí)現(xiàn)。此夕卜, 可以在存儲(chǔ)器器件內(nèi)、存儲(chǔ)器器件控制器內(nèi)、主機(jī)計(jì)算機(jī)內(nèi)實(shí)現(xiàn)ECC,或者可以在系統(tǒng)的這 些部件之間“分布” ECC。常用的算法包括里德-所羅門(Reed-Solomon)、BCH、漢明(Hamming)和許多其他 算法。每個(gè)ECC算法由兩部分組成——接收數(shù)據(jù)比特并生成奇偶比特(或者等效地,生成 碼字)的部分,以及接收碼字并生成校正過的數(shù)據(jù)比特的部分。第一部分被稱為“編碼器” 并在寫期間使用,而第二部分被稱為“解碼器”并在讀期間使用。這兩部分的每個(gè)可以以硬 件或軟件實(shí)現(xiàn),并且也能夠一部分以硬件實(shí)現(xiàn)而另一部分以軟件實(shí)現(xiàn)。對于每個(gè)部分,也能 夠以硬件和軟件的組合來實(shí)現(xiàn)。接收數(shù)據(jù)比特并生成相應(yīng)碼字被稱為“編碼”。接收碼字并生成校正過的數(shù)據(jù)比特 被稱為“解碼”。應(yīng)該注意,實(shí)際上有兩種ECC。在碼字中保留數(shù)據(jù)比特的身份(identity)的上述 種類ECC被稱為“系統(tǒng)性(systematic) ” ECC。在“非系統(tǒng)性” ECC中,將數(shù)據(jù)比特轉(zhuǎn)換為其 中不保留原始數(shù)據(jù)比特的身份的碼字。選擇如像BCH的算法作為將在閃存系統(tǒng)中使用的ECC算法不唯一地限定所選方 案。任何這樣的ECC算法實(shí)際上不是單一的算法,而是算法族。在相同族內(nèi)的算法本身之 間在它們能夠保護(hù)的數(shù)據(jù)比特量方面不同。需要保護(hù)100個(gè)數(shù)據(jù)比特的算法不同于需要保 護(hù)10000個(gè)數(shù)據(jù)比特的算法,即使這兩個(gè)算法通常非常相似、并工作在相同的原理下。但是,甚至都保護(hù)相同數(shù)量的數(shù)據(jù)比特的相同家族的兩個(gè)算法也不是一定相同。 各算法可能在所提供的可靠性等級方面,或者等效地——在算法能夠校正的數(shù)據(jù)中的比特 誤差數(shù)量方面不同。例如,一個(gè)系統(tǒng)可能需要針對多達(dá)3個(gè)比特誤差的任何組合(而不是 針對4個(gè)或更多比特誤差的發(fā)生)而保護(hù)1000個(gè)數(shù)據(jù)比特的組塊(chunk),而在另一系統(tǒng) 中,期望高得多的可靠性,因此需要針對多達(dá)10個(gè)比特誤差的任何組合而保護(hù)1000個(gè)數(shù)據(jù)比特的組塊。通常,針對更多誤差的保護(hù)需要使用更多的奇偶比特(或更長的碼字),使得 ECC方案不太“有效”,其中通過碼字中數(shù)據(jù)比特的數(shù)量與碼字中比特的總數(shù)量(在對稱ECC 中,包括數(shù)據(jù)比特和奇偶比特)的比率來測量效率。該測量通常被稱為ECC編碼的“速率”。不同的ECC算法和實(shí)現(xiàn)方式在其他方面——編碼過程的速度、解碼過程的速度、編 碼過程的復(fù)雜性、解碼過程的復(fù)雜性、到解碼器的輸入中可接受的誤差率(根據(jù)存儲(chǔ)單元 的質(zhì)量來定義)等等也不同。編碼和解碼的復(fù)雜性很重要,不僅因?yàn)樗绊懖僮鞯乃俣?,?且因?yàn)樗绊慐CC方案的硬件實(shí)現(xiàn)方式的功耗和硅面積(silicon area) 0從而,顯然,為存儲(chǔ)器系統(tǒng)選擇ECC解決方案涉及多個(gè)考慮之間的復(fù)雜的折衷方 案。通常在ECC設(shè)計(jì)領(lǐng)域中的一些非限制的經(jīng)驗(yàn)法則(rules-of-thumb)是a.對于給定的存儲(chǔ)器可靠性,輸出可靠性越好(或者等效地,可校正的誤差數(shù)量 越多),碼速率越低(或者等效地,對于系統(tǒng)性ECC,需要的奇偶比特越多)b.對于給定的存儲(chǔ)器可靠性,輸出可靠性越好,解碼器越復(fù)雜。c.對于輸出可靠性的給定等級,碼速率越高,解碼器越復(fù)雜。d.對于輸出可靠性的給定等級,碼速率越高,解碼越慢。當(dāng)設(shè)計(jì)ECC解決方案時(shí),通常從解碼器的輸入處的誤差率(由存儲(chǔ)單元的質(zhì)量規(guī) 定)和期望的輸出可靠性(由應(yīng)用的要求規(guī)定)開始?;谶@些數(shù)字,通常選擇特定的ECC 族,計(jì)算所需要的奇偶比特?cái)?shù),然后估算編碼器和解碼器的速度和復(fù)雜度。在一些情況下,對于系統(tǒng)的設(shè)計(jì)者最重要的考慮是解碼的速度,因?yàn)檫@可能對從 存儲(chǔ)器讀出數(shù)據(jù)的速度進(jìn)行限制。在這樣的情況下,設(shè)計(jì)者可能遇到進(jìn)退兩難的情形—— 達(dá)到輸出可靠性要求所需要的ECC方案可能卻得到具有慢操作的相當(dāng)復(fù)雜的解碼器,不滿 足系統(tǒng)的速度目標(biāo)。但是,另一方面,選擇相對簡單并得到快解碼的ECC方案不提供所需要 的輸出可靠性等級。^X為了方便,在這里的描述的上下文中,在此給出各個(gè)術(shù)語。到明示地或暗示地、在 本申請中的此處或其他地方提供定義的程度,這樣的定義被理解為與由相關(guān)領(lǐng)域中技術(shù)人 員定義的術(shù)語的使用相一致。此外,將以與這樣的使用相一致的最寬泛的可能含義來解釋 這樣的定義。因?yàn)槟承╊愋偷墓虘B(tài)存儲(chǔ)器(例如閃存、光存儲(chǔ)器或MRAM)是“破壞的介質(zhì)”,所 以有時(shí)一個(gè)或多個(gè)誤差被引入到被寫到存儲(chǔ)器的“原始”數(shù)據(jù)中,使得當(dāng)從存儲(chǔ)器讀回?cái)?shù)據(jù) (即,原始數(shù)據(jù)的表示)時(shí),一個(gè)或多個(gè)信息比特被“翻轉(zhuǎn)”。本發(fā)明的實(shí)施例涉及“存儲(chǔ)器塊”的“擦除計(jì)數(shù)”。存儲(chǔ)器“塊”是用于擦除的存儲(chǔ) 器的最小“組塊(chunk)”或量。在與閃存有關(guān)的一個(gè)例子中,塊包括一些數(shù)量的閃存單元, 例如,至少幾十或幾百或幾千或更多閃存單元。對于其他類型的存儲(chǔ)器,例如RAM,“塊”可 以是單個(gè)存儲(chǔ)器單元或者多個(gè)存儲(chǔ)器單元。對于存儲(chǔ)器的給定塊的“擦除計(jì)數(shù)”是指示到目前為止固態(tài)存儲(chǔ)器的塊已被擦除 了多少次的計(jì)數(shù)器。無論何時(shí)擦除存儲(chǔ)器的塊時(shí),該擦除計(jì)數(shù)可以遞增。如前所述,如果塊 具有相對“大”的擦除計(jì)數(shù),則這可能指示該塊是易有誤差的相對“差”的存儲(chǔ)介質(zhì)。本發(fā)明的實(shí)施例涉及“維持閃存的至少一個(gè)塊的擦除計(jì)數(shù)”??梢栽谥鳈C(jī)側(cè)和/或 器件側(cè)維持擦除計(jì)數(shù),并且可以將擦除計(jì)數(shù)存儲(chǔ)在易失性(例如RAM或寄存器)和/或非易失性存儲(chǔ)器(例如,閃存)的任何組合中。在一個(gè)例子中,擦除計(jì)數(shù)被存儲(chǔ)在控制器的晶 片(die)上。在另一例子中,擦除計(jì)數(shù)被存儲(chǔ)在閃存晶片之一中??梢詫⒉脸?jì)數(shù)存儲(chǔ)在 單個(gè)位置中和/或在多個(gè)位置之間分布擦除計(jì)數(shù)。在一個(gè)非限制的例子中,可以將擦除計(jì) 數(shù)存儲(chǔ)在用于實(shí)現(xiàn)在閃存塊之間的磨損校平(wear leveling)的數(shù)據(jù)結(jié)構(gòu)中。在一些非限制的例子(但不是所有實(shí)施例)中,無論何時(shí)向固態(tài)存儲(chǔ)器寫入時(shí),必 須首先擦除固態(tài)存儲(chǔ)器,作為寫過程的一部分。在這樣的系統(tǒng)中,“擦除計(jì)數(shù)”可以至少部分 地描述給定塊已被寫入的次數(shù)??梢允褂镁S持擦除計(jì)數(shù)的任何技術(shù),包括但不限于在如下中公開的技術(shù)=Logfren 等人的美國專利No. 6230233,Wells的美國專利No. 5341339,Jou等人的美國專利 No. 5568423,Assar 等人的美國專利No. 5388083,Harari 的美國專利No. 5712819,Harari 的 美國專利No. 6570790,Harari的美國專利No. 5963480,Chang等人的美國專利No. 6831865, 通過全部引用將其的每個(gè)合并于此。根據(jù)從存儲(chǔ)器讀回的數(shù)據(jù)來重建原始的、沒有誤差的數(shù)據(jù)的過程是“校正誤差”。 雖然以復(fù)數(shù)使用術(shù)語“校正誤差”,但是要認(rèn)識(shí)到“校正誤差”也指校正單個(gè)誤差。要認(rèn)識(shí)到 在一些實(shí)施例中,誤差的“校正”也可以包括校正誤差的一個(gè)或多個(gè)失敗的嘗試。如前所述,為了校正誤差,可以使用“解碼器”,以便從碼字的表示中恢復(fù)原始數(shù) 據(jù)。一些實(shí)施例涉及多個(gè)解碼器,包括“較輕權(quán)重”解碼器和“較重權(quán)重解碼器”。術(shù)語“較重權(quán)重”和“較輕權(quán)重”用于比較兩個(gè)解碼器和/或單個(gè)解碼器的兩個(gè)模 式?!拜^重權(quán)重”解碼器(或單個(gè)解碼器的較重權(quán)重模式)(i)消耗比“較輕權(quán)重”對應(yīng)方更 多的電流,和/或(ii)需要比“較輕權(quán)重”對應(yīng)方更多的存儲(chǔ)器(用于解碼器自身的計(jì)算 機(jī)可執(zhí)行代碼,和/或用于存儲(chǔ)在校正誤差時(shí)計(jì)算的“中間結(jié)果”的更多存儲(chǔ)器),和/或 (iii)需要比“較輕權(quán)重”對應(yīng)方更多的計(jì)算操作。一些實(shí)施例涉及根據(jù)從其讀取數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù)來確定要 讀取和/或在誤差校正中使用的“軟比特”的數(shù)量?!败洷忍亍笔桥c估算的可靠性測量相組 合的比特值的估算。通常,相同的數(shù)字充當(dāng)比特值的估算和可靠性測量兩者。例如,對數(shù)似 然比(LLR)的符號(sign)是由LLR表示的比特值的估算,以及LLR的量值是該估算的可靠 性的量度。在一些實(shí)施例中,可以通過使用比將數(shù)據(jù)寫入單元中的分辨率“更高的分辨率”從 存儲(chǔ)器讀取來計(jì)算和/或確定“軟比特”。使用“更高分辨率”讀取的另外的比特可以給出 數(shù)據(jù)比特值的任何估算的“可靠性”的一定指示。在一個(gè)例子中,可以使用區(qū)分電壓帶的界 限的不同“參考電壓”來將數(shù)據(jù)寫到存儲(chǔ)器,并且可以通過使用位于電壓帶內(nèi)的參考電壓或 者“一部分的(fractional)參考電壓”讀回?cái)?shù)據(jù)來生成軟比特。技術(shù)人員參考例如Ban的 美國專利7023735,其通過全部引用被合并于此。當(dāng)根據(jù)一個(gè)或多個(gè)軟比特校正數(shù)據(jù)時(shí),這 對于改善誤差校正例程可能是有用的——然而,存在與確定(一個(gè)或多個(gè))軟比特相關(guān)聯(lián) 的在時(shí)間和/或計(jì)算資源方面的花費(fèi)。初步討論維持擦除計(jì)數(shù)以及從固態(tài)存儲(chǔ)器讀取數(shù)據(jù)(圖2A-2B、3A-3D、4A-4B、 5A-5B.6A-6D的步驟MU和S423的討論)在步驟S411中,對至少一個(gè)存儲(chǔ)器塊維持擦除計(jì)數(shù)。如前所述,可以在任何位置 中和/或以任何方式維持擦除計(jì)數(shù)。在一個(gè)非限制的例子中,由快閃控制器280維持擦除計(jì)數(shù)。在一個(gè)非限制的例子中,擦除計(jì)數(shù)被維持在數(shù)據(jù)結(jié)構(gòu)中(例如,存儲(chǔ)在非易失性存儲(chǔ) 器中)——例如,還用于磨損校平目的的數(shù)據(jù)結(jié)構(gòu)。在步驟S423中,從一個(gè)或多個(gè)存儲(chǔ)器塊讀回?cái)?shù)據(jù)??梢源_定從其讀取數(shù)據(jù)的一 個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù)——例如,通過在適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)中實(shí)現(xiàn)(effect) “查找表 (look-up)” 來確定。圖 2A-2B、3A_3D 的討論考慮具有如下特征的兩個(gè)解碼器(或者能夠以兩個(gè)不同模式工作的一個(gè)解碼 器)a.第一解碼器(或解碼器模式)較快和/或“較輕權(quán)重”,但是另一方面,不保證 在產(chǎn)生解碼處理的結(jié)果中成功。b.第二解碼器(或解碼器模式)較慢和/或“較重權(quán)重”,但是保證總是產(chǎn)生解碼 過程的正確結(jié)果(或者至少更可能產(chǎn)生解碼處理的正確結(jié)果)。通常,數(shù)據(jù)中的誤差數(shù)量越多,第一解碼器越頻繁地失敗。不幸的是,當(dāng)從存儲(chǔ)器 讀回?cái)?shù)據(jù)時(shí),不總是先驗(yàn)地(a-priori)知道在所讀回的數(shù)據(jù)中有多少誤差。從而,不總是 知道是否需要“較重權(quán)重”解碼器(或單個(gè)解碼器的較重權(quán)重模式),或者“較輕權(quán)重”解碼 器是否將足夠。本發(fā)明人現(xiàn)在公開在從其讀取數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù)的數(shù)量相 對“低”的情況下,這可能指示讀回的數(shù)據(jù)可能具有好的“質(zhì)量”,并且可以選擇用于校正誤 差的相對“樂觀”技術(shù)來校正在步驟S615或S625中所讀取的數(shù)據(jù)中的誤差。從而,在該情 況下,“冒險(xiǎn)”使用“較輕權(quán)重”解碼器(或單個(gè)解碼器的較輕權(quán)重模式)來校正誤差可能是 有益的。否則,使用“較重權(quán)重”解碼器或單個(gè)解碼器的較重權(quán)重模式來校正誤差可能是優(yōu) 選的。現(xiàn)在參考圖2A。在步驟S615中,根據(jù)從其讀取數(shù)據(jù)的一個(gè)或多個(gè)塊的擦除計(jì)數(shù), 從多個(gè)候選解碼器中選擇解碼器。在步驟S619中,僅使用所選擇的解碼器而不使用未選擇的“被拒絕的”解碼器來 校正誤差?,F(xiàn)在參考圖2B。在步驟S625中,根據(jù)從其讀取數(shù)據(jù)的一個(gè)或多個(gè)塊的擦除計(jì)數(shù), 從多個(gè)候選解碼器模式中選擇給定解碼器的模式。在步驟S629中,僅使用所選擇的解碼器模式而不使用未選擇的“被拒絕的”解碼 器模式來校正誤差?,F(xiàn)在參考圖3A。在步驟S651中,根據(jù)從其讀取數(shù)據(jù)的一個(gè)或多個(gè)塊的擦除計(jì)數(shù),決定是否嘗試使 用較輕權(quán)重解碼器(即多個(gè)候選解碼器中的較輕權(quán)重解碼器)來校正誤差。在從其讀取數(shù)據(jù)的固態(tài)存儲(chǔ)器的一個(gè)或多個(gè)塊的擦除計(jì)數(shù)相對“低”的情況下, 這可能指示所讀回的數(shù)據(jù)可能具有好的“質(zhì)量”,并且可以采用相對“樂觀”的誤差校正策 略。從而,在該情景下,在步驟S655中嘗試使用較輕權(quán)重解碼器來校正誤差。如果較輕權(quán) 重解碼器成功(參見步驟S659),則不需要嘗試使用較重權(quán)重解碼器來校正誤差(參見步驟 S667)。如果較輕權(quán)重解碼器校正誤差失敗,則S663嘗試使用較重權(quán)重解碼器來校正誤差。此外,要注意的是,參考步驟S651,在從其讀取數(shù)據(jù)的一個(gè)或多個(gè)塊的擦除計(jì)數(shù)相對“高”的情況下,這可能指示所讀回的數(shù)據(jù)可能具有“差”的質(zhì)量,并且可以采用相對“悲 觀”的誤差校正策略。在該情景下,能夠跳過步驟S665,并嘗試使用較重權(quán)重解碼器而不是 較輕權(quán)重解碼器來校正誤差(步驟S663中)?,F(xiàn)在參考圖3B。在步驟S851中,根據(jù)擦除計(jì)數(shù),決定是否嘗試使用較快解碼器(即多個(gè)候選解碼 器中的較快的解碼器)來校正誤差。在擦除計(jì)數(shù)“低”、并且采用相對“樂觀”的誤差校正策略的情況下,可以在步驟 S855中嘗試使用較快解碼器來校正誤差。如果較快解碼器成功(參見步驟S859),則不需 要嘗試使用較慢解碼器來校正誤差(參見步驟S867)。如果較快解碼器校正誤差失敗,則 S863嘗試使用較慢解碼器來校正誤差。此外,要注意的是,參考步驟S851,擦除計(jì)數(shù)“高”并且采用相對“悲觀”的誤差校 正策略,能夠跳過步驟S865,并嘗試使用較慢解碼器而不是較快解碼器來校正誤差(在步 驟S863中)。現(xiàn)在參考圖3C。在步驟S671中,根據(jù)一個(gè)或多個(gè)塊的擦除計(jì)數(shù),決定是否嘗試使用較輕權(quán)重模式 (即給定解碼器的多個(gè)候選解碼器模式中的較輕權(quán)重模式)來校正誤差。在擦除計(jì)數(shù)“低”并且采用相對“樂觀”的誤差校正策略的情況下,在步驟S675中 可以嘗試使用較輕權(quán)重模式來校正誤差。如果較輕權(quán)重模式成功(參見步驟S679),則不 需要嘗試使用較重權(quán)重模式來校正誤差(參見步驟S687)。如果較輕權(quán)重模式校正誤差失 敗,則S683嘗試使用較重權(quán)重模式來校正誤差。此外,要注意的是,參考步驟S671,在擦除計(jì)數(shù)“高”并且采用相對“悲觀”的誤差 校正策略的情況下,能夠跳過步驟S675,并嘗試使用較重權(quán)重模式而不是較輕權(quán)重模式來 校正誤差(在步驟S683中)?,F(xiàn)在參考圖3D。在步驟S871中,根據(jù)(一個(gè)或多個(gè))存儲(chǔ)器塊的擦除計(jì)數(shù),決定是否嘗試使用較 快解碼器模式(即多個(gè)候選解碼器模式中的較快解碼器模式)來校正誤差。在擦除計(jì)數(shù)“低”并且采用相對“樂觀”的誤差校正策略的情況下,在步驟S875中 可以嘗試使用較快解碼器模式來校正誤差。如果較快解碼器模式成功(參見步驟S879),則 不需要嘗試使用較慢解碼器模式來校正誤差(參見步驟S887)。如果較快解碼器模式校正 誤差失敗,則S883嘗試使用較慢解碼器模式來校正誤差。此外,要注意的是,參考步驟S871,在擦除計(jì)數(shù)“高”并且采用相對“悲觀”的誤差 校正策略的情況下,可能優(yōu)選跳過步驟S865,并嘗試使用較慢解碼器模式而不是較快解碼 器模式來校正誤差(在步驟S863中)。圖4A-4B的討論圖4A-4B是如下技術(shù)的框圖,其中(i)進(jìn)行校正誤差的第一嘗試(在步驟S519); ( )在某個(gè)時(shí)間點(diǎn),如果第一嘗試沒有成功地校正誤差,則中止第一嘗試,并進(jìn)行校正誤差 的第二嘗試(在步驟S539中)。圖4A-4B涉及建立并實(shí)施確定何時(shí)認(rèn)為第一嘗試失敗并中 止的策略。該決定并非微不足道——在校正誤差的第一嘗試(在步驟S519中)“過早地” 被認(rèn)為失敗的情況下,這可能導(dǎo)致不必要地慢和/或耗費(fèi)資源的誤差校正過程,因?yàn)樵诘谝粐L試如果被允許來運(yùn)行其過程而將已經(jīng)成功/足夠時(shí),進(jìn)行了 一個(gè)或多個(gè)“額外的/不必 要的”校正誤差的嘗試。另一方面,在到第二嘗試的轉(zhuǎn)換被不必要地延遲、并且花費(fèi)了“太 多”時(shí)間/資源來執(zhí)行第一嘗試的情況下,這也可能導(dǎo)致不必要地慢的和/或耗費(fèi)資源的誤 差校正過程。在圖4A-4B中,公開了可以根據(jù)從其讀取將被校正誤差的數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ) 器塊的一個(gè)或多個(gè)擦除計(jì)數(shù)來建立并實(shí)行用于確定何時(shí)第一嘗試被認(rèn)為失敗(因而被中 止)的策略。在圖4A-4B中,在步驟S519中,使用在步驟S515中建立的一個(gè)或多個(gè)誤差校正參 數(shù)的“第一集合”來進(jìn)行第一嘗試,并在步驟S539中,使用在步驟S535中建立的一個(gè)或多個(gè) 誤差校正參數(shù)的“第二集合”來進(jìn)行第二嘗試。在圖4A和4B兩者中,在如在步驟S523確 定的第一嘗試成功的情況下,不需要在步驟S539中進(jìn)行另外的嘗試(參見步驟S527)。圖4A涉及用于決定何時(shí)從步驟S519中的校正誤差的第一嘗試“轉(zhuǎn)換 (transition) ” (從而中止第一嘗試)到步驟S539中的校正誤差的第二嘗試的標(biāo)準(zhǔn)。在一個(gè)或多個(gè)存儲(chǔ)器塊的擦除計(jì)數(shù)“低”的情況下,則根據(jù)第一嘗試將成功具有 相對“高”的機(jī)會(huì)的假設(shè),可以采用樂觀方法。從而,在該情況下,在步驟S511中確定的 “模式轉(zhuǎn)換條件”可以是對于相對“快”或“輕權(quán)重”的初始誤差校正嘗試而言相對“慷慨 (generous),,的條件(可以至少部分地在步驟S515和/或步驟S535中如何“快”或“慢” 或“重權(quán)重”或“輕權(quán)重”地建立嘗試)。相反,在擦除計(jì)數(shù)“高”的情況下,則可以采用悲觀 方法,并且在步驟S511中確定的“模式轉(zhuǎn)換條件”可以是對于相對“快”或“輕權(quán)重”的初試 誤差校正嘗試而言“更吝嗇(stingy) ”的條件,因?yàn)榧僭O(shè)了這些初始嘗試無論如何將失敗具 有高可能性?!澳J睫D(zhuǎn)換條件”是確定第一嘗試已經(jīng)失敗并且到不同的“模式”的轉(zhuǎn)換被準(zhǔn)許、以 便進(jìn)行校正誤差的“第二”或“不同的”嘗試的條件。如圖4A所示,如果在步驟S531中觸 發(fā)模式轉(zhuǎn)換條件,則在步驟S535和S539中進(jìn)行校正誤差的新的嘗試;如果在第一嘗試期間 的任何給定時(shí)間沒有觸發(fā)該條件,則在步驟S525中第一嘗試?yán)^續(xù)。在一個(gè)例子中,“轉(zhuǎn)換條件”與“超時(shí)條件”有關(guān)——即,在步驟S531中確定允許步 驟S519和S534的第一嘗試“運(yùn)行”多少時(shí)間,而不“中止”該嘗試并開始具有不同的誤差 校正參數(shù)的“新嘗試”。在另一例子中,第一嘗試本身利用迭代例程,并且“轉(zhuǎn)換條件”與“迭 代數(shù)量條件”有關(guān)——即,在“所利用的迭代例程”被認(rèn)為失敗并為了“新的”或第二嘗試而 將其中止之前允許運(yùn)行多少個(gè)步驟的“所利用的迭代例程”而沒有成功校正誤差。在另一 例子中,“轉(zhuǎn)換條件”與可以在中止第一嘗試之前由該第一嘗試“消耗”或使用的CPU周期的 數(shù)量有關(guān)。圖4A(和4B)的教導(dǎo)可應(yīng)用到任何“迭代例程”,其中在步驟S519中進(jìn)行“第一嘗 試”,然后,如果該第一嘗試“不成功”,則在之后進(jìn)行“第二嘗試”。從而,在不同例子中,“模式轉(zhuǎn)換”涉及⑴從給定解碼器的較輕模式移動(dòng)到較重模 式,或者(ii)從使用由多個(gè)解碼器中選擇的第一解碼器的第一 “模式”移動(dòng)到使用從多個(gè) 解碼器中選擇的第二解碼器的第二“模式”,或者(iii)對于軟解碼器,從與比特概率值的 第一集合相關(guān)聯(lián)的第一模式移動(dòng)到與比特概率值的第二集合相關(guān)聯(lián)的第二模式,或者(iv) 從使用第一數(shù)量(即非負(fù)整數(shù))的軟比特的第一模式移動(dòng)到使用第二數(shù)量的軟比特的第二模式,以及(V)從具有第一解碼器總線寬度的第一模式移動(dòng)到具有第二解碼器總線寬度的 第二模式(參見圖6B)。要認(rèn)識(shí)到,所提供的此列表是例示性的而不是窮盡的列表。在圖4B中,根據(jù)從其讀取數(shù)據(jù)(即,針對其嘗試誤差校正)的存儲(chǔ)器塊的一個(gè)或 多個(gè)擦除計(jì)數(shù),為第一嘗試提供“預(yù)算”。該預(yù)算可以是時(shí)間預(yù)算或CPU周期數(shù)量預(yù)算或迭 代數(shù)量預(yù)算,或者是可以由第一嘗試“消耗”的任何其他類型的“資源”預(yù)算。在另一例子 中,該預(yù)算可以是被允許分配來存儲(chǔ)在第一嘗試中使用的“中間結(jié)果”的易失性存儲(chǔ)器的最 大量。在擦除計(jì)數(shù)相對“低”的情況下,在步驟S561中可以分配“較大”的預(yù)算;在擦除 計(jì)數(shù)相對“高”的情況下,可以分配“較小”的預(yù)算。在步驟S561中,確定該迭代步驟誤差校 正資源預(yù)算,并在步驟S565中,確定該資源預(yù)算是否已耗盡。如果該預(yù)算已耗盡,則在步驟 S535和S539中進(jìn)行校正誤差的新嘗試;如果在第一嘗試期間該預(yù)算還沒有耗盡,則在步驟 S525中校正誤差的第一嘗試?yán)^續(xù)。圖5A-5B的討論圖5A-5B涉及確定將被讀取來校正誤差的軟比特?cái)?shù)量的技術(shù)(同樣參見上面參考 圖5A-5B的討論)。在圖5A的步驟S419中,確定將被讀取來用于校正誤差的初始嘗試的軟 比特?cái)?shù)量。根據(jù)與(在步驟S423中)從其讀取將被校正誤差的數(shù)據(jù)的一個(gè)或多個(gè)目標(biāo)存 儲(chǔ)器塊相關(guān)聯(lián)的(在步驟S415中確定的)擦除計(jì)數(shù)來確定該軟比特?cái)?shù)量。在步驟S427中,讀取所確定的數(shù)量的軟比特,并在步驟S431中,嘗試使用這些軟 比特來校正數(shù)據(jù)(即步驟S423中所讀取的數(shù)據(jù))中的誤差。在該嘗試成功的情況下(參 見步驟S439),不需要(參見步驟S443)繼續(xù)誤差校正過程。如果該嘗試不成功,則可以在 步驟S435中讀取一個(gè)或多個(gè)另外的軟比特。要注意的是,圖5A(以及本公開提供的所有附圖)中的步驟的順序不是限制性 的——例如,可以在步驟S419的確定之前執(zhí)行步驟S423中從固態(tài)存儲(chǔ)器的(一個(gè)或多個(gè)) 目標(biāo)塊中讀取數(shù)據(jù)。現(xiàn)在參考圖5B。在可選的步驟S461中,讀取某個(gè)數(shù)量N的軟比特,其中N是非負(fù)整 數(shù)(如果N是零,則跳過步驟S461,并且步驟S431中校正誤差的第一嘗試不利用軟比特)。 在步驟S431中,嘗試校正誤差(如果軟比特可用,則使用軟比特)。如果該嘗試成功(參見 步驟S665),則不需要(參見步驟S469)繼續(xù)誤差校正過程。如果該嘗試不成功,則在步驟 S473中確定將讀取多少軟比特(即,用于校正誤差的后續(xù)嘗試中)——根據(jù)與步驟S415和 S423的一個(gè)或多個(gè)目標(biāo)存儲(chǔ)器塊相關(guān)聯(lián)的擦除計(jì)數(shù)來確定該數(shù)量。在步驟S477中,讀取該數(shù)量(即在步驟S473中確定的數(shù)量)的軟比特——在步 驟S431中使用這些軟比特。圖6A的討論圖6是根據(jù)從其讀取數(shù)據(jù)的存儲(chǔ)器的一個(gè)或多個(gè)塊的擦除計(jì)數(shù)來校正誤差的技 術(shù)的流程圖。軟解碼器通過向碼字的每個(gè)比特分配概率(例如,比特值是1而不是0的概率) 并運(yùn)行多個(gè)迭代而工作,其中在每次迭代中,每個(gè)比特的概率根據(jù)其他比特的當(dāng)前概率而 改變。
19
不是軟解碼器的任何解碼器在這里被稱為“代數(shù)解碼器”。該類型的計(jì)算被表達(dá)為利用“消息傳遞(passing)”技術(shù),因?yàn)槊總€(gè)比特向其對等 方“傳遞消息”。在實(shí)現(xiàn)這樣的解碼器時(shí)的主要設(shè)計(jì)決定是消息傳遞的總線寬度。使用寬總 線(例如10比特)保證如果算法可以應(yīng)對誤差,則該算法確實(shí)將收斂到正確的數(shù)據(jù)。但是 另一方面,在這樣的設(shè)計(jì)中解碼器的功耗高。使用窄總線(例如3比特)提供低得多的功 耗,但是在具有相對大數(shù)量誤差的情況下,解碼器可能不能收斂到正確的數(shù)據(jù)(即使在相 應(yīng)的寬總線解碼器中正確地解碼相同樣式(pattern)的數(shù)據(jù)和誤差)。用于消息傳遞的比 特?cái)?shù)量對解碼過程的功耗具有顯著影響——比特?cái)?shù)量越多,功耗越高。該現(xiàn)象的原因之一是在解碼操作期間將軟解碼器的消息和信道輸入(軟值)存儲(chǔ) 在大功耗RAM中。例如,當(dāng)例如對每個(gè)消息使用3比特而不是10比特時(shí),可以關(guān)閉70%的 RAM。節(jié)省功耗的另一來源是處理這些傳遞消息的處理單元。很明顯對3比特而不是10比 特執(zhí)行計(jì)算需要更小且更低功耗的單元。能夠?qū)崿F(xiàn)其中可以在解碼開始時(shí)設(shè)置“消息傳遞”中的比特?cái)?shù)量的軟解碼器。從 而,在一些實(shí)施例中,根據(jù)從其讀取數(shù)據(jù)的一個(gè)或多個(gè)塊的擦除計(jì)數(shù)來選擇解碼總線寬度 大小。在指示“樂觀情形”的擦除計(jì)數(shù)“低”的情況下,能夠選擇較小的解碼總線寬度大小, 從而校正誤差。否則,可能優(yōu)選選擇較大的解碼總線寬度大小。這在圖6A中圖示地示出。在步驟S751中,根據(jù)從其讀取數(shù)據(jù)的一個(gè)或多個(gè)塊的 擦除計(jì)數(shù)來選擇解碼器總線寬度。在步驟S755中,根據(jù)所選擇的解碼器總線寬度值來校正誤差。圖6B的討論在圖6B中,步驟S411、S423和S751與圖6A中的相同。在步驟S775中,嘗試使用在步驟S751中選擇的所選解碼器總線寬度來校正誤差。 如果該嘗試成功(參見步驟S779),則不需要(參見步驟S787)繼續(xù)誤差校正過程。否則, 如果該嘗試沒有成功(參見步驟S783),則選擇新的解碼器總線寬度,并進(jìn)行校正誤差的新
嘗試ο另外的討論要注意,可以在“器件側(cè)”或“主機(jī)側(cè)”實(shí)現(xiàn)這里公開的任何技術(shù)。在一個(gè)具體例 子中,這里公開的任何步驟或步驟的組合(包括但不限于如下步驟維持擦除計(jì)數(shù)、讀取數(shù) 據(jù)或軟比特、校正誤差、進(jìn)行校正誤差的嘗試、選擇解碼器或模式或軟比特?cái)?shù)、確定是否利 用給定解碼器或解碼器模式、選擇解碼器總線寬度、確定或?qū)嵭修D(zhuǎn)換條件或資源預(yù)算等等) 可以由快閃器件260的器件控制器280 (或包括固態(tài)存儲(chǔ)器的任何其他數(shù)據(jù)存儲(chǔ)器件)—— 例如,外圍存儲(chǔ)器件260*的器件控制器來實(shí)現(xiàn)。在一些實(shí)施例中,在“器件側(cè)”校正數(shù)據(jù)中的誤差之后,可以將被校正誤差的數(shù)據(jù) 從存儲(chǔ)器件260*經(jīng)由各自的設(shè)備間接口發(fā)送給主機(jī)設(shè)備310。這(與步驟S425的數(shù)據(jù)讀 取和任何誤差校正一起)可以響應(yīng)于由主機(jī)310發(fā)送給外圍存儲(chǔ)器件260*以讀取存儲(chǔ)在 固態(tài)非易失性存儲(chǔ)器(例如閃存270)內(nèi)的數(shù)據(jù)的請求而執(zhí)行。器件控制器280可以包括任何一個(gè)或多個(gè)軟件和/或固件和/或硬件元件,包括 但不限于一個(gè)或多個(gè)現(xiàn)場可編程邏輯陣列(FPLA)元件、一個(gè)或多個(gè)硬連線的邏輯元件、一 個(gè)或多個(gè)現(xiàn)場可編程門陣列(FPGA)元件以及一個(gè)或多個(gè)專用集成電路(ASIC)元件??梢栽诳刂破?80中使用任何指令集架構(gòu),包括但不限于精簡指令集計(jì)算機(jī)(RISC)架構(gòu)和/或 復(fù)雜指令集計(jì)算機(jī)(CISC)架構(gòu)??梢砸杂布⒂捎布?zhí)行的計(jì)算機(jī)可讀代碼模塊和固件的任何組合來實(shí)現(xiàn)任何所 公開的技術(shù)。本發(fā)明的實(shí)施例提供了用于實(shí)現(xiàn)任何公開的技術(shù)的裝置和計(jì)算機(jī)介質(zhì)。在這里引用的所有參考文件通過全部引用而被合并。參考文件的引用不構(gòu)成該參 考文件是現(xiàn)有技術(shù)的認(rèn)可。還要注意的是,上述任何實(shí)施例還可以包括在計(jì)算機(jī)可讀介質(zhì)之上接收、發(fā)送或 存儲(chǔ)實(shí)現(xiàn)上面結(jié)合附圖描述的操作的指令和/或數(shù)據(jù)。一般來說,計(jì)算機(jī)可讀介質(zhì)可以 包括諸如磁介質(zhì)或快閃介質(zhì)或光介質(zhì)、例如盤或CD-ROM的存儲(chǔ)介質(zhì)或存儲(chǔ)器介質(zhì)、諸如 RAM、ROM等的易失性或非易失性介質(zhì)、以及諸如經(jīng)由諸如網(wǎng)絡(luò)和/或無線鏈路的通信介質(zhì) 傳送的電、電磁或數(shù)字信號的傳輸介質(zhì)或信號。因而描述了上述示例實(shí)施例,對于本領(lǐng)域技術(shù)人員將明顯的是,不脫離如在下文 中陳述的權(quán)利要求的范圍和精神,各種等效物、變更、修改及其改進(jìn)是可能的。特別是,不同 的實(shí)施例可以包括不同于在此所述的特征的組合。從而,權(quán)利要求不限于前述討論。
2權(quán)利要求
1.一種用于處理誤差校正的方法,所述方法包括a)維持固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù);b)從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);c)根據(jù)所述存儲(chǔ)器塊的相關(guān)聯(lián)擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少之一 i)選擇第一解碼器和第二解碼器之一;以及 )選擇第一解碼器模式和第二解碼器模式之一;d)僅使用所選擇的解碼器或所選擇的模式來校正所讀取的數(shù)據(jù)中的誤差。
2.根據(jù)權(quán)利要求1所述的方法,其中所述固態(tài)存儲(chǔ)器是閃存。
3.根據(jù)權(quán)利要求1所述的方法,其中由所述固態(tài)存儲(chǔ)器所駐留的存儲(chǔ)器件的器件控制 器來執(zhí)行所述維持、所述讀取、所述實(shí)行和所述校正中的至少一個(gè)。
4.根據(jù)權(quán)利要求3所述的方法,其中所述存儲(chǔ)器件經(jīng)由設(shè)備間接口操作性地與主機(jī)設(shè) 備耦接,以及其中所述方法還包括e)從所述存儲(chǔ)器件向所述主機(jī)設(shè)備發(fā)送誤差校正過的數(shù)據(jù)。
5.一種用于處理誤差校正的方法,所述方法包括a)維持固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù);b)從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);c)根據(jù)所述相關(guān)聯(lián)的擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少一個(gè) i)決定A)嘗試使用較輕權(quán)重解碼器來校正誤差,還是B)嘗試僅使用比所述較輕權(quán)重解碼器更重的較重權(quán)重解碼器來校正誤差; )決定A)嘗試使用較快解碼器來校正誤差,還是B)嘗試僅使用比所述較快解碼器更慢的較慢解碼器來校正誤差;iii)決定A)嘗試使用具體解碼器的較輕權(quán)重模式來校正誤差,還是B)嘗試僅使用所述具體解碼器的比所述較輕權(quán)重模式更重的較重權(quán)重模式來校正誤 差;以及iv)決定A)嘗試使用具體解碼器的較快模式來校正誤差,還是B)嘗試僅使用所述具體解碼器的比所述較快模式更慢的較慢模式來校正誤差;以及d)根據(jù)所述決定中的至少一個(gè),校正在讀取的數(shù)據(jù)中的誤差。
6.根據(jù)權(quán)利要求5所述的方法,其中由所述固態(tài)存儲(chǔ)器所駐留的存儲(chǔ)器件的器件控制 器來執(zhí)行所述維持、所述讀取、一個(gè)或多個(gè)所述決定以及所述校正中的至少一個(gè)。
7.一種用于處理誤差校正的方法,所述方法包括a)維持固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù);b)從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);c)根據(jù)所述相關(guān)聯(lián)的擦除計(jì)數(shù),確定以下的至少一個(gè) i)模式轉(zhuǎn)換條件;以及 )誤差校正嘗試資源預(yù)算;d)使用誤差校正參數(shù)的第一集合進(jìn)行校正在讀取的數(shù)據(jù)中的誤差的第一嘗試;以及e)在校正誤差的所述第一嘗試不成功的情況下,使用誤差校正參數(shù)的第二集合進(jìn)行校 正在讀取的數(shù)據(jù)中的誤差的第二嘗試,所述第二嘗試根據(jù)如下至少之一而定i)所述第一嘗試對所述模式轉(zhuǎn)換條件的觸發(fā);以及 )所述第一嘗試對所述資源預(yù)算的耗盡。
8.根據(jù)權(quán)利要求7所述的方法,其中i)所述方法包括確定所述模式轉(zhuǎn)換條件;以及 )所述第二嘗試根據(jù)至少所述第一嘗試對所述模式轉(zhuǎn)換條件的觸發(fā)而定。
9.根據(jù)權(quán)利要求7所述的方法,其中i)所述方法包括確定所述資源預(yù)算;以及 )所述第二嘗試根據(jù)至少所述第一嘗試對所述資源預(yù)算的耗盡而定。
10.根據(jù)權(quán)利要求7所述的方法,其中從由以下構(gòu)成的組中選擇至少一個(gè)誤差校正參數(shù)i)用于從多個(gè)解碼器中選擇解碼器的選擇參數(shù); )用于從多個(gè)解碼器模式中選擇給定解碼器的解碼器模式的解碼器模式參數(shù);iii)所讀取的數(shù)據(jù)的比特概率值;iv)軟比特?cái)?shù)量;以及 ν)解碼器總線寬度。
11.根據(jù)權(quán)利要求7所述的方法,其中從由以下構(gòu)成的組中選擇所述模式轉(zhuǎn)換條件 i)超時(shí)條件; )迭代數(shù)量條件;以及 iii)CPU周期數(shù)量條件。
12.根據(jù)權(quán)利要求7所述的方法,其中從由以下構(gòu)成的組中選擇所述誤差校正嘗試資 源預(yù)算i)時(shí)間預(yù)算;ii)CPU周期預(yù)算;以及iii)迭代預(yù)算。
13.根據(jù)權(quán)利要求7所述的方法,其中由所述固態(tài)存儲(chǔ)器所駐留的存儲(chǔ)器件的器件控 制器來執(zhí)行所述維持、所述讀取、所述確定以及一個(gè)或多個(gè)所述嘗試中的至少一個(gè)。
14.一種用于處理誤差校正的方法,所述方法包括a)維持存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù);b)從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);c)根據(jù)所述相關(guān)聯(lián)的擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少一個(gè) i)確定針對所述數(shù)據(jù)要讀取的軟比特的數(shù)量;以及 )選擇解碼總線寬度大小;以及d)在確定所述軟比特的數(shù)量的情況下,讀取針對所述數(shù)據(jù)的所述數(shù)量的軟比特;以及e)嘗試使用以下的至少一個(gè)來校正所述數(shù)據(jù)中的誤差 i)所選擇的解碼總線寬度大??;以及; )讀取的軟比特。
15.根據(jù)權(quán)利要求14所述的方法,其中i)所述方法包括確定針對所述數(shù)據(jù)要讀取的軟比特的數(shù)量,并讀取針對所述數(shù)據(jù)的所 述數(shù)量的軟比特;以及 )所述嘗試包括嘗試至少使用所讀取的軟比特來校正所述數(shù)據(jù)中的誤差。
16.根據(jù)權(quán)利要求14所述的方法,其中i)所述方法包括選擇所述解碼總線寬度大??;以及 )所述嘗試包括嘗試使用所選擇的解碼總線寬度大小來校正所述數(shù)據(jù)中的誤差。
17.根據(jù)權(quán)利要求14所述的方法,其中由固態(tài)存儲(chǔ)器所駐留的存儲(chǔ)器件的器件控制器 來執(zhí)行所述維持、一個(gè)或多個(gè)所述讀取、所述確定、所述選擇和所述嘗試中的至少一個(gè)。
18.一種數(shù)據(jù)存儲(chǔ)器件,包括a)固態(tài)存儲(chǔ)器;以及b)器件控制器,工作來i)維持所述固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù); )從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);iii)根據(jù)該存儲(chǔ)器塊的相關(guān)聯(lián)的擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少一個(gè)A)選擇第一解碼器和第二解碼器之一;以及B)選擇第一解碼器模式和第二解碼器模式之一;以及iv)僅使用所選擇的解碼器或所選擇的模式來校正在讀取的數(shù)據(jù)中的誤差。
19.一種數(shù)據(jù)存儲(chǔ)器件,包括a)固態(tài)存儲(chǔ)器;以及b)控制器,工作來i)維持所述固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù); )從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);iii)根據(jù)所述相關(guān)聯(lián)的擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少一個(gè)A)決定I)嘗試使用較輕權(quán)重解碼器來校正誤差,還是II)嘗試僅使用比所述較輕權(quán)重解碼器更重的較重權(quán)重解碼器來校正誤差;B)決定I)嘗試使用較快解碼器來校正誤差,還是II)嘗試僅使用比所述較快解碼器更慢的較慢解碼器來校正誤差;C)決定I)嘗試使用具體解碼器的較輕權(quán)重模式來校正誤差,還是II)嘗試僅使用所述具體解碼器的比所述較輕權(quán)重模式更重的較重權(quán)重模式來校正誤 差;以及D)決定I)嘗試使用具體解碼器的較快模式來校正誤差,還是II)嘗試僅使用所述具體解碼器的比所述較快模式更慢的較慢模式來校正誤差;以及iv)根據(jù)所述決定中的至少一個(gè),校正在讀取的數(shù)據(jù)中的誤差。
20.一種數(shù)據(jù)存儲(chǔ)器件,包括a)固態(tài)存儲(chǔ)器;以及b)器件控制器,工作來i)維持所述固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù); )從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);iii)根據(jù)所述相關(guān)聯(lián)的擦除計(jì)數(shù),確定以下的至少一個(gè)A)模式轉(zhuǎn)換條件;以及B)誤差校正嘗試資源預(yù)算;iv)使用誤差校正參數(shù)的第一集合進(jìn)行校正在讀取的數(shù)據(jù)中的誤差的第一嘗試;以及 ν)在校正誤差的所述第一嘗試不成功的情況下,使用誤差校正參數(shù)的第二集合進(jìn)行校正在讀取的數(shù)據(jù)中的誤差的第二嘗試,所述第二嘗試根據(jù)以下的至少一個(gè)而定A)所述第一嘗試對所述模式轉(zhuǎn)換條件的觸發(fā);以及B)所述第一嘗試對所述資源預(yù)算的耗盡。
21. 一種數(shù)據(jù)存儲(chǔ)器件,包括a)固態(tài)存儲(chǔ)器;以及b)器件控制器,工作來i)維持所述固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù); )從具有相關(guān)聯(lián)的擦除計(jì)數(shù)的存儲(chǔ)器塊之一讀取數(shù)據(jù);iii)根據(jù)所述相關(guān)聯(lián)的擦除計(jì)數(shù),實(shí)現(xiàn)以下的至少一個(gè)A)確定針對所述數(shù)據(jù)要讀取的軟比特的數(shù)量;以及B)選擇解碼總線寬度大小;以及iv)在確定所述軟比特的數(shù)量情況下,讀取針對所述數(shù)據(jù)的所述數(shù)量的軟比特;以及 ν)嘗試使用以下的至少一個(gè)來校正所述數(shù)據(jù)中的誤差Α)所選擇的解碼總線寬度大小;以及 B)所讀取的軟比特。
全文摘要
本發(fā)明的實(shí)施例涉及維持固態(tài)存儲(chǔ)器的至少一個(gè)塊的擦除計(jì)數(shù)的方法和設(shè)備。根據(jù)存儲(chǔ)器塊的相關(guān)聯(lián)的擦除計(jì)數(shù)來校正在從固態(tài)存儲(chǔ)器讀取的數(shù)據(jù)中的誤差。在一些實(shí)施例中,可以根據(jù)從其讀取數(shù)據(jù)的存儲(chǔ)器塊的相關(guān)聯(lián)的擦除計(jì)數(shù)來實(shí)現(xiàn)以下誤差校正操作中的一個(gè)或多個(gè)(i)選擇解碼器和/或解碼器模式;(ii)決定嘗試使用較輕權(quán)重的權(quán)重解碼器(模式)和/或較重權(quán)重解碼器(模式)和/或較快解碼器(模式)和/或較慢解碼器(模式)校正誤差;(iii)確定模式轉(zhuǎn)換和/或誤差校正嘗試資源預(yù)算;(iv)確定軟比特的數(shù)量;以及(v)選擇解碼總線寬度大小。
文檔編號G06F11/10GK102099793SQ200980128383
公開日2011年6月15日 申請日期2009年5月6日 優(yōu)先權(quán)日2008年6月24日
發(fā)明者伊丹.奧爾羅德, 伊蘭.沙倫, 梅納漢.拉瑟 申請人:桑迪士克以色列有限公司