新四季網

根據固態存儲器的擦除計數進行誤差校正的方法和裝置的製作方法

2023-08-09 21:11:41 2

專利名稱:根據固態存儲器的擦除計數進行誤差校正的方法和裝置的製作方法
技術領域:
本發明涉及用於校正在從諸如快閃記憶體的存儲器讀取的數據中的誤差的裝置、方法和 計算機介質。
背景技術:
非易失性存儲器是可以保持它所存儲的數據而無需電源的存儲器類型。存在具 有不同的讀/寫和擦除能力、訪問時間、數據保持(retention)、數據持續周期(endurance cycle)等的幾種類型的非易失性存儲器。電可擦除可編程只讀存儲器(EEPROM)能夠在每 字節的級別上執行讀寫操作,這意味著可以單獨讀和寫每個存儲器位置。由快閃型浮置柵極電晶體或單元組成的快閃記憶體是在功能上和性能上與EPROM存儲 器相似的非易失性存儲器;快閃記憶體具有相對不昂貴的優勢,雖然它工作在某些限制下。不能向 在快閃記憶體上之前寫過的位置重寫而不首先擦除整個存儲器部分,即,必須在可以再次編程閃 存單元之前擦除它們(例如編程到「1」)。快閃記憶體可以僅僅擦除相對大的單元組,其通常被稱 為擦除塊(例如,對於許多當前的商業設備,大小為16KB至2MB——預期隨著具有更高容量 的設備變得商業可用時,擦除塊的大小將在未來增加)。快閃記憶體器件中的誤差校ιΗ快閃記憶體以及其他存儲器(例如磁存儲器、光存儲和易失性存儲器)的一個顯著特徵 是這些存儲器是「破壞的(corrupting)介質」——一個或多個誤差有時被引入到被寫到存 儲器的原始數據中,使得當從存儲器讀回數據時,可能在「被翻轉(flipped) 」狀態中讀取一 個或多個信息比特。為了克服該現象並使NAND型存儲器可由實際的應用使用,結合這些存儲器使用 糾錯碼(ECC)是常用的技術。正存在對於處理快閃記憶體器件中以及包括除了快閃記憶體之外的固態存儲器的存儲器件中 的誤差校正的改善的技術和裝置的需要。器件架構的討論圖IA(現有技術)是快閃記憶體存儲器件260 (現有技術)的框圖。快閃記憶體存儲器件包括 快閃記憶體270以及可操作來讀取數據並將數據寫到快閃記憶體270的快閃控制器280。在這裡使用 術語「編程(program) 」、「編程(programming) 」、「被編程」和「可編程」可分別與術語「寫 (write) 」、「寫(writing) 」、「被寫」和「可寫」互換,以表示將數據存儲在快閃記憶體中。快閃記憶體存儲器件的一個例子是「外圍快閃記憶體件」。在計算領域中公知的是諸如 USB快閃記憶體驅動器(UFD)、PC卡以及與數字相機、音樂播放器、手持和掌上計算機以及蜂窩電 話一起使用的小存儲卡的形式的外圍快閃記憶體器件。
圖IB(現有技術)是與主機設備310(例如,膝上型或臺式或手持計算機、數字相 機、行動電話、音樂播放器和視頻遊戲控制臺)「耦接」或者被配置為經由器件側接口 250與 主機設備310交換數據的外圍快閃記憶體存儲器件260* (星號表示快閃記憶體存儲器件是外圍快閃記憶體存儲 器件)的框圖。外圍快閃記憶體存儲器件260*和主機設備310使用主機側接口 350和器件側接 口 250 (例如,分別是USB或SD接口)經由通信鏈路300相互通信。雖然在附圖中將外圍快閃記憶體存儲器件260*圖示為與主機設備310相分離的器件,但 是要認識到,在一些實現方式中,可以將快閃記憶體存儲器件260*部署在主機設備310的框架內。在一個例子中,快閃記憶體存儲器件260*向主機設備310提供數據讀和數據寫服務。通 過快閃控制器280將快閃記憶體存儲器件260*從主機設備310接收的數據寫到快閃記憶體270。此外, 響應於由快閃記憶體存儲器接收的「數據讀」請求,快閃控制器280從快閃記憶體270讀取數據。可以在「讀取時間」或任何稍後的時間校正所讀數據中的誤差。可以至少部分地 由快閃控制器280、至少部分地由主機設備310 (例如,通過主機側處理器320執行RAM 330 中的可執行代碼340或以任何其他方式)、以及任何其他位置並以任何其他方式來執行誤 差校正。技術人員將認識到,「外圍快閃記憶體器件」不是唯一一類快閃記憶體存儲器件。例如,某些移動 電話、臺式或膝上型計算機、PDA設備或其他電子設備也可以包括快閃記憶體和快閃控制器,並且 可能不是一定要被配置為與主機設備耦接和/或為主機設備提供數據讀服務和/或數據寫 服務。技術人員將認識到,在圖1A-1B中描述的快閃記憶體器件僅僅是一類外圍非易失性存儲 存儲器器件,並且其他存儲器器件可以包括其他類型的固態存儲器,比如光存儲器和磁阻 (magnetoresistive)隨機存取存儲器(MRAM)。

發明內容
各種實施例解決了這些和相關問題,在這裡提供了包括方法和系統的那些實施例 的例子。現在第一次公開一種用於處理誤差校正的方法,該方法包括a)維持固態存儲器 的至少一個塊的擦除計數;b)從具有相關聯的擦除計數的存儲器塊之一讀取數據;C)根據 所述存儲器塊的相關聯擦除計數,實現以下的至少之一 i)選擇第一解碼器和第二解碼器 之一;以及ii)選擇第一解碼器模式和第二解碼器模式之一 ;d)僅使用所選擇的解碼器或 所選擇的模式來校正所讀取的數據中的誤差。在一些實施例中,固態存儲器是快閃記憶體。在一些實施例中,由固態存儲器所駐留的存儲器件的器件控制器來執行維持、讀 取、影響和校正中的至少一個。在一些實施例中,存儲器件經由設備間接口操作地與主機設備耦接,以及其中該 方法還包括e)從存儲器件向主機設備發送誤差校正過的數據。現在第一次公開一種用於處理誤差校正的方法,該方法包括a)維持固態存儲器 的至少一個塊的擦除計數;b)從具有相關聯的擦除計數的存儲器塊之一讀取數據;C)根 據所述相關聯的擦除計數,實現以下的至少一個i)決定A)嘗試使用較輕權重解碼器來 校正誤差,還是B)嘗試僅使用比所述較輕權重解碼器更重的較重權重解碼器來校正誤差;
7ii)決定A)嘗試使用較快解碼器來校正誤差,還是B)嘗試僅使用比所述較快解碼器更慢 的較慢解碼器來校正誤差;iii)決定A)嘗試使用具體解碼器的較輕權重模式來校正誤 差,還是B)嘗試僅使用所述具體解碼器的比所述較輕權重模式更重的較重權重模式來校 正誤差;以及iv)決定A)嘗試使用具體解碼器的較快模式來校正誤差,還是B)嘗試僅使 用所述具體解碼器的比所述較快模式更慢的較慢模式來校正誤差;以及d)根據所述決定 中的至少一個,校正在讀取的數據中的誤差。在一些實施例中,由固態存儲器所駐留的存儲器件的器件控制器來執行維持、讀 取、一個或多個決定以及校正中的至少一個。現在第一次公開一種用於處理誤差校正的方法,該方法包括a)維持固態存儲器 的至少一個塊的擦除計數;b)從具有相關聯的擦除計數的存儲器塊之一讀取數據;C)根據 所述相關聯的擦除計數,確定以下的至少一個i)模式轉換條件;以及ii)誤差校正嘗試資 源預算;d)使用誤差校正參數的第一集合進行校正在讀取的數據中的誤差的第一嘗試;以 及e)在校正誤差的所述第一嘗試不成功的情況下,使用誤差校正參數的第二集合進行校 正在讀取的數據中的誤差的第二嘗試,所述第二嘗試根據如下至少之一而定i)所述第一 嘗試對所述模式轉換條件的觸發;以及ii)所述第一嘗試對所述資源預算的耗盡。在一些實施例中,i)該方法包括確定模式轉換條件;以及ii)第二嘗試根據至少 第一嘗試對模式轉換條件的觸發而定。在一些實施例中,i)該方法包括確定資源預算;以及ii)第二嘗試根據至少第一 嘗試對資源預算的耗盡而定。在一些實施例中,從由以下構成的組中選擇至少一個誤差校正參數i)用於從多 個解碼器中選擇解碼器的選擇參數(例如,描述解碼器「重度(heaviness)」或「解碼器速 度」的參數);ii)用於從多個解碼器模式中選擇給定解碼器的解碼器模式的解碼器模式參 數(例如,描述解碼器模式「重度」或解碼器模式「速度」的參數);iii)所讀取的數據的比 特概率值;iv)軟比特的數量;以及ν)解碼器總線寬度。在一些實施例中,從由以下構成的組中選擇模式轉換條件i)超時條件;ii)迭代 數量條件;以及iii) CPU周期量數條件。在一些實施例中,從由以下構成的組中選擇誤差校正嘗試資源預算i)時間預 算;ii) CPU周期預算;以及iii)迭代預算。在一些實施例中,由固態存儲器所駐留的存儲器件的器件控制器來執行維持、讀 取、確定以及一個或多個嘗試中的至少一個。現在第一次公開一種用於處理誤差校正的方法,該方法包括a)維持存儲器的至 少一個塊的擦除計數;b)從具有相關聯的擦除計數的存儲器塊之一讀取數據;C)根據所述 相關聯的擦除計數,實現以下的至少一個i)確定針對所述數據要讀取的軟比特的數量; 以及ii)選擇解碼總線寬度大小;以及d)在確定所述軟比特的數量的情況下,讀取針對所 述數據的所述數量的軟比特;以及e)嘗試使用以下的至少一個來校正所述數據中的誤差 i)所選擇的解碼總線寬度大小;以及ii)讀取的軟比特。在一些實施例中,i)該方法包括確定針對數據要讀取的軟比特數量,並讀取針對 該數據的該數量的軟比特;以及ii)嘗試包括嘗試使用至少所讀取的軟比特來校正數據中 的誤差。
在一些實施例中,i)該方法包括選擇解碼總線寬度大小;以及ii)嘗試包括嘗試 使用所讀取的解碼總線寬度大小來校正數據中的誤差。在一些實施例中,由固態存儲器所駐留的存儲器件的器件控制器來執行維持、一 個或多個讀取、確定、選擇和嘗試中的至少一個。現在第一次公開一種數據存儲器件,包括a)固態存儲器;以及b)器件控制器, 工作來i)維持所述固態存儲器的至少一個塊的擦除計數;ii)從具有相關聯的擦除計數 的存儲器塊之一讀取數據;iii)根據該存儲器塊的相關聯的擦除計數,實現以下的至少一 個A)選擇第一解碼器和第二解碼器之一;以及B)選擇第一解碼器模式和第二解碼器模式 之一;以及iv)僅使用所選擇的解碼器或所選擇的模式來校正在讀取的數據中的誤差。現在第一次公開一種數據存儲器件,包括a)固態存儲器;以及b)控制器,工作 來i)維持所述固態存儲器的至少一個塊的擦除計數;ii)從具有相關聯的擦除計數的存 儲器塊之一讀取數據;iii)根據所述相關聯的擦除計數,實現以下的至少一個A)決定1) 嘗試使用較輕權重解碼器來校正誤差,還是II)嘗試僅使用比所述較輕權重解碼器更重的 較重權重解碼器來校正誤差;B)決定1)嘗試使用較快解碼器來校正誤差,還是II)嘗試 僅使用比所述較快解碼器更慢的較慢解碼器來校正誤差;C)決定1)嘗試使用具體解碼器 的較輕權重模式來校正誤差,還是II)嘗試僅使用所述具體解碼器的比所述較輕權重模式 更重的較重權重模式來校正誤差;以及D)決定1)嘗試使用具體解碼器的較快模式來校 正誤差,還是II)嘗試僅使用所述具體解碼器的比所述較快模式更慢的較慢模式來校正誤 差;以及iv)根據所述決定中的至少一個,校正在讀取的數據中的誤差。現在第一次公開一種數據存儲器件,包括一種數據存儲器件,包括a)固態存儲 器;以及b)器件控制器,工作來i)維持所述固態存儲器的至少一個塊的擦除計數;ii)從 具有相關聯的擦除計數的存儲器塊之一讀取數據;iii)根據所述相關聯的擦除計數,確定 以下的至少一個A)模式轉換條件;以及B)誤差校正嘗試資源預算;iv)使用誤差校正參 數的第一集合進行校正在讀取的數據中的誤差的第一嘗試;以及ν)在校正誤差的所述第 一嘗試不成功的情況下,使用誤差校正參數的第二集合進行校正在讀取的數據中的誤差的 第二嘗試,所述第二嘗試根據以下的至少一個而定A)所述第一嘗試對所述模式轉換條件 的觸發;以及B)所述第一嘗試對所述資源預算的耗盡。現在第一次公開一種數據存儲器件,包括a)固態存儲器;以及b)器件控制器,工 作來i)維持所述固態存儲器的至少一個塊的擦除計數;ii)從具有相關聯的擦除計數的 存儲器塊之一讀取數據;iii)根據所述相關聯的擦除計數,實現以下的至少一個:A)確定 針對所述數據要讀取的軟比特的數量;以及B)選擇解碼總線寬度大小;以及iv)在確定所 述軟比特的數量情況下,讀取針對所述數據的所述數量的軟比特;以及ν)嘗試使用以下的 至少一個來校正所述數據中的誤差A)所選擇的解碼總線寬度大小;以及B)所讀取的軟比 特。要注意的是,與某些實施例有關的上述特徵還可以被包括在其他實施例中,除非 在下面指出與這裡描述的相反。


圖IA是快閃記憶體存儲器件的框圖。
圖IB是與主機設備耦接的外圍快閃記憶體存儲器件的框圖。圖2A是使用根據一個或多個存儲器塊的擦除計數而選擇的解碼器來校正誤差的 一個例程的流程圖。圖2B是使用根據一個或多個存儲器塊而選擇的解碼器模式來校正誤差的一個例 程的流程圖。圖3A是誤差校正的一個例程的流程圖,其中視一個或多個存儲器塊的擦除計數 而定,使用較輕權重解碼器來嘗試校正誤差。圖3B是誤差校正的一個例程的流程圖,其中視一個或多個存儲器塊的擦除計數 而定,使用較快的解碼器來嘗試校正誤差。圖3C是誤差校正的一個例程的流程圖,其中視一個或多個存儲器塊的擦除計數 而定,使用較輕權重解碼器模式來嘗試校正誤差。圖3D是誤差校正的一個例程的流程圖,其中視一個或多個存儲器塊的擦除計數 而定,使用較快解碼器模式來嘗試校正誤差。圖4A是誤差校正的一個例程的流程圖,其中根據一個或多個存儲器塊的擦除計 數來確定模式轉換觸發條件。圖4B是誤差校正的一個例程的流程圖,其中根據一個或多個存儲器塊的擦除計 數來確定誤差校正嘗試的資源預算。圖5A-5B是如下例程的流程圖,其中根據一個或多個存儲器塊的擦除計數來確定 針對誤差校正嘗試而要讀取的軟比特數。圖6A-6B是誤差校正的例程的流程圖,其中根據一個或多個存儲器塊的擦除計數 來確定解碼器總線寬度。
具體實施例方式參考附圖,通過參考示例實施例給出的詳細描述,將更好地理解下面的權利要求。 描述、實施例和附圖將不被認為限制權利要求的範圍。應該理解,當前公開的處理誤差校正 的方法和裝置的每個特徵在每個實現方式中並不都是一定需要的。還應該理解,貫穿於示 出或描述過程或方法的本公開,可以按任何順序或同時執行該方法的各步驟,除非上下文 清楚地表明一個步驟取決於首先執行的另一步驟。如貫穿本申請所使用的,詞「可以」用於 允許的意思(即,意味「具有......的可能性」),而不是強制的意思。本發明人現在公開其中根據從其讀取數據的一個或多個存儲器塊的擦除計數來 執行對從固態存儲器讀取的數據的ECC解碼的幾種技術。不希望被任何特定理論所界定,要注意,當多次擦除固態存儲器(例如,快閃記憶體、 MRAM或任何其他類型的固態存儲器)時,這可能降低作為存儲介質的存儲器的質量。同樣, 已經被擦除了數據達相對「大」次數的固態存儲器(或其一部分)可能是相比於已經被擦 除了數據達相對「小」次數的固態存儲器(或其一部分)「更差」或「更不可靠」或「更破壞 的」存儲介質。現在描述其中根據從其讀取數據的一個或多個塊的擦除計數來執行對從存儲器 讀取的數據的ECC解碼的幾種技術。在從具有「高擦除計數」的一個或多個塊讀取數據的 情況下,這可能指示該一個或多個存儲器塊作為存儲介質相對「更不可靠」——同樣,從「更不可靠」的一個或多個存儲器塊讀回的數據可能包括相對「大」數量的誤差。在該情況下, 可以使用適合於校正在具有相對「大數量」誤差的數據中的誤差的「悲觀(pessimistic)」 技術。相反,在從具有「低擦除計數」的一個或多個塊讀取數據的情況下,這可能指示該一 個或多個塊作為存儲介質「更可靠」,並且可以使用適合於校正在具有相對「小數量」誤差的 數據中的誤差的「樂觀(optimistic)」技術。第一技術(參見參考圖2A的討論)涉及如下情形,其中當校正從一個或多個存儲 器塊讀取的數據中的誤差時,可以使用「較輕權重解碼器」或「較重權重」解碼器。在從其 讀取數據的一個或多個存儲器塊的擦試計數相對「高」(指示該一個或多個存儲器塊經受了 相對大量的磨損)的情況下,這可能指示從其讀取了數據的一個或多個存儲器塊的「質量」 可能相對「低」。在該情況下,「高」擦除計數因而可以指示在校正誤差時利用更「悲觀」技 術並利用「較重權重」解碼器是有益的,即便較重權重解碼器可能較慢和/或需要更多計算 資源(例如CPU周期、電力和/或存儲器資源)。相反,在擦除計數相對「低」的情況下,這 可能指示從其讀取了數據的一個或多個存儲器塊的「質量」可能相對「高」,並且利用「較低 權重」解碼器可能是有益的。第二技術(參見參考圖3A-3D的討論)涉及「試錯(trial-and-error),,解碼例 程。「試錯解碼例程」工作如下首先,嘗試使用相對「輕權重」或「快」解碼器(或解碼器模 式)來校正誤差。在該嘗試成功的情況下,能夠「享受」相對快的解碼和/或消耗相對少的 計算資源的解碼。否則,如果該嘗試失敗,則使用較慢和/或消耗更多計算資源、但更不太 可能使校正誤差失敗的「較重權重」(或較慢)解碼器(或解碼器模式)來校正數據中的誤 差。根據該第二技術,現在公開了如果從具有相對「高」擦除計數的一個塊或多個塊讀 取數據,則應該採用悲觀方法,並且「悲觀地」跳過嘗試使用較輕權重或較快(但較不可靠) 解碼器(或模式)來解碼誤差的步驟是有益的。在該情況下,其中不嘗試使用無論如何可 能失敗的低權重和/或快解碼器的該「悲觀」方法可能對於節約時間和/或節省計算資源 是有用的。相反,如果從具有相對「低」擦除計數的一個塊或多個塊讀取數據,則可以假設 輕權重和/或快解碼器更不太可能失敗。從而,在從與該「較低」擦除計數相關聯的(一個 或多個)塊讀取數據的情況下,對較輕權重和/或較快解碼器可能失敗的「冒險」可能是有 益的。從而,在從與該「較低」擦除計數相關聯的一個或多個塊讀取數據的情況下,在嘗試 「較可靠」的較重權重和/或較慢解碼器(或模式)之前嘗試使用較輕權重和/或較快解碼 器(或模式)來解碼數據可能是有益的。第三技術(例如參見參考圖4A-4B的討論)也涉及「試錯」解碼例程。根據與該 第三技術相關的一些實施例,首先嘗試使用適合於處理「較少」數量誤差的較輕權重解碼器 和/或較快解碼器和/或解碼器模式(或解碼器)來校正誤差。如果該第一嘗試失敗(例 如,如果該第一嘗試在給定時間量內沒有成功,從而觸發一些「超時」條件),則進行第二嘗 試以使用適合於處理「較大」數量誤差的較重權重和/或較慢解碼器和/或模式(或解碼 器)來校正誤差。現在公開在從具有「高」擦除計數的固態存儲器的一個或多個塊讀取數據(即,期 望針對其校正誤差的數據)的情況下,則僅以「悲觀」方式——即通過投入相對「少」的資 源來執行嘗試使用較輕權重或較快(但較不可靠)解碼器(或模式)來解碼誤差的步驟可能是有益的。從而,在一個例子中,如果使用「較輕權重」或「較快解碼器」來校正誤差的嘗 試沒有相對「快」地(在「小的超時值」內)成功,則⑴相對「快」地丟棄該嘗試(即認為 「失敗」),並且(ii)然後使用較慢和/或較重權重和/或更適合於處理「較大」數量誤差的 不同解碼器和/或解碼器模式來執行校正誤差的「新」的嘗試。相反,在從具有「高」擦除計數的固態存儲器的一個或多個塊讀取將被校正的數據 的情況下,則以更「樂觀」方式——即通過在輕權重和/或較快解碼器(或解碼模式)中投 入「更多」資源來執行嘗試使用較輕權重或較快(但較不可靠)解碼器(或模式)來解碼 誤差的步驟可能是有益的。從而,在一個例子中,如果使用「較輕權重」或「較快解碼器」來 校正誤差的嘗試沒有相對「快」地成功,則仍然可以假設還是存在該嘗試將最終成功的某些 可能性。因而,在該例子中,在「前進」到使用「較重權重」和/或「較慢」的解碼器或模式來 校正誤差的嘗試之前,對使用「較重權重」和/或「較慢」的解碼器或模式來校正誤差的初 始嘗試「給予機會」一例如,允許其在被指定為失敗之前工作更長時間段(或更多CPU周 期)。第四技術(例如參見參考圖5A-5B的討論)涉及決定將被讀取來校正誤差的軟比 特(soft bit)的數量。在美國專利申請11/642,708和11/651,483中討論了將軟比特用 來改善存儲器中的誤差校正能力,通過全部引用將這兩者中的每個合併於此。因為讀取軟 比特導致在時間和功率上的花費,所以存在其中ECC解碼器首先嘗試解碼數據而根本不讀 取軟比特(或者僅讀取「低」數量的軟比特)的許多情形。如果失敗,則可以讀取一個或多 個軟比特,並且可以進行另一解碼嘗試。如果該第二嘗試也失敗,則讀取更多軟比特,並且 進行另一解碼嘗試。該過程可以繼續迭代(iterate),直到解碼成功或者達到了可用軟比特 的最大數量。現在公開可以根據從其讀取數據的一個或多個存儲器塊的擦除計數來決定多少 軟比特將被讀取並用於初始嘗試(例如參見圖5A的步驟S419)、和/或決定在初始嘗試失 敗之後要讀取多少另外的軟比特(參見例如圖5B的步驟S473)。從而,在該擦除計數相對「高」的情況下,可以採用「悲觀」方法,並且在使用零或 「小」數量軟比特的迭代不太可能成功(即,因為數據可能包含許多誤差,從而可能要求較大 數量軟比特來校正「有噪聲的」數據中的誤差)的假設下,可以跳過這些迭代(或者在失敗 之後,可以讀取相對「大」數量的軟比特)。相反,在該擦除計數(即,從其讀取數據的存儲器的一個或多個塊的擦除計數)相 對「低」的情況下,可以採用「樂觀」方法,並且在該情形下,在有可能數據是相對「高」質量 的、以及不使用軟比特或使用相對「小」數量的軟比特具有合理的成功機會的假設下,嘗試 使用零或「小」數量軟比特來校正誤差可能是有益的。第五技術(例如參見圖6A)涉及解碼器總線的寬度。現在公開在從具有相對「高」 擦除計數的一個或多個存儲器塊讀取數據的情況下,這指示數據可能是低質量的,並且可 能優選相對「悲觀」方法以校正誤差。從而,在該情形下,使用較大的解碼器總線來校正誤 差可能是有益的,即使較大的解碼器總線可能較慢和/或要求更多的計算資源。相反,在從具有相對「低」擦除計數的一個或多個存儲器塊讀取數據的情況下,這 指示數據可能是高質量的,並且可能優選嘗試用較小的解碼器總線來校正誤差的相對「樂 觀」方法以校正誤差。
12
貫穿本公開,當在「快閃記憶體」方面解釋某些教導時,要認識到,這些教導也可以應用到 除了快閃記憶體之外的其他固態存儲器——例如光存儲器或MRAM。技術人員將認識到,可以將當前公開的用於校正誤差的技術與用於校正在從存儲 器讀取的數據中的誤差的任何其他技術相結合。在描述附圖之前,給出了在快閃記憶體中使用ECC的一般概況,並且提供了各個術語的 定義(在接下來的兩部分中)。快閃記憶體器件中的誤差校IH在下面給出了在快閃記憶體中使用ECC的一般概況,包括如下步驟(1)在將數據寫到存儲器之前,將ECC算法應用到數據以便計算之後用於誤差檢 測和校正的另外的(即冗餘)比特。這些冗餘比特通常被稱為「奇偶比特」或「奇偶位」。被 輸入到ECC模塊中的數據和由該模塊輸出的奇偶位的組合被稱為碼字。到ECC模塊的輸入 數據的每個不同的值得到不同的碼字。(2)將整個碼字(即原始數據和奇偶位)記錄到快閃記憶體。應該注意,NAND型快閃記憶體的 實際大小大於原始數據的大小,並且存儲器被設計為也容納奇偶位。(3)當從存儲器獲取(retrieve)數據時,再次讀取整個碼字,並且將ECC算法應用 於該數據和奇偶位,以便檢測並校正可能的「比特翻轉」(即誤差)。應該注意,可以通過硬體、軟體或者硬體和軟體的組合來進行ECC的實現。此夕卜, 可以在存儲器器件內、存儲器器件控制器內、主機計算機內實現ECC,或者可以在系統的這 些部件之間「分布」 ECC。常用的算法包括裡德-所羅門(Reed-Solomon)、BCH、漢明(Hamming)和許多其他 算法。每個ECC算法由兩部分組成——接收數據比特並生成奇偶比特(或者等效地,生成 碼字)的部分,以及接收碼字並生成校正過的數據比特的部分。第一部分被稱為「編碼器」 並在寫期間使用,而第二部分被稱為「解碼器」並在讀期間使用。這兩部分的每個可以以硬 件或軟體實現,並且也能夠一部分以硬體實現而另一部分以軟體實現。對於每個部分,也能 夠以硬體和軟體的組合來實現。接收數據比特並生成相應碼字被稱為「編碼」。接收碼字並生成校正過的數據比特 被稱為「解碼」。應該注意,實際上有兩種ECC。在碼字中保留數據比特的身份(identity)的上述 種類ECC被稱為「系統性(systematic) 」 ECC。在「非系統性」 ECC中,將數據比特轉換為其 中不保留原始數據比特的身份的碼字。選擇如像BCH的算法作為將在快閃記憶體系統中使用的ECC算法不唯一地限定所選方 案。任何這樣的ECC算法實際上不是單一的算法,而是算法族。在相同族內的算法本身之 間在它們能夠保護的數據比特量方面不同。需要保護100個數據比特的算法不同於需要保 護10000個數據比特的算法,即使這兩個算法通常非常相似、並工作在相同的原理下。但是,甚至都保護相同數量的數據比特的相同家族的兩個算法也不是一定相同。 各算法可能在所提供的可靠性等級方面,或者等效地——在算法能夠校正的數據中的比特 誤差數量方面不同。例如,一個系統可能需要針對多達3個比特誤差的任何組合(而不是 針對4個或更多比特誤差的發生)而保護1000個數據比特的組塊(chunk),而在另一系統 中,期望高得多的可靠性,因此需要針對多達10個比特誤差的任何組合而保護1000個數據比特的組塊。通常,針對更多誤差的保護需要使用更多的奇偶比特(或更長的碼字),使得 ECC方案不太「有效」,其中通過碼字中數據比特的數量與碼字中比特的總數量(在對稱ECC 中,包括數據比特和奇偶比特)的比率來測量效率。該測量通常被稱為ECC編碼的「速率」。不同的ECC算法和實現方式在其他方面——編碼過程的速度、解碼過程的速度、編 碼過程的複雜性、解碼過程的複雜性、到解碼器的輸入中可接受的誤差率(根據存儲單元 的質量來定義)等等也不同。編碼和解碼的複雜性很重要,不僅因為它影響操作的速度,而 且因為它影響ECC方案的硬體實現方式的功耗和矽面積(silicon area) 0從而,顯然,為存儲器系統選擇ECC解決方案涉及多個考慮之間的複雜的折衷方 案。通常在ECC設計領域中的一些非限制的經驗法則(rules-of-thumb)是a.對於給定的存儲器可靠性,輸出可靠性越好(或者等效地,可校正的誤差數量 越多),碼速率越低(或者等效地,對於系統性ECC,需要的奇偶比特越多)b.對於給定的存儲器可靠性,輸出可靠性越好,解碼器越複雜。c.對於輸出可靠性的給定等級,碼速率越高,解碼器越複雜。d.對於輸出可靠性的給定等級,碼速率越高,解碼越慢。當設計ECC解決方案時,通常從解碼器的輸入處的誤差率(由存儲單元的質量規 定)和期望的輸出可靠性(由應用的要求規定)開始。基於這些數字,通常選擇特定的ECC 族,計算所需要的奇偶比特數,然後估算編碼器和解碼器的速度和複雜度。在一些情況下,對於系統的設計者最重要的考慮是解碼的速度,因為這可能對從 存儲器讀出數據的速度進行限制。在這樣的情況下,設計者可能遇到進退兩難的情形—— 達到輸出可靠性要求所需要的ECC方案可能卻得到具有慢操作的相當複雜的解碼器,不滿 足系統的速度目標。但是,另一方面,選擇相對簡單並得到快解碼的ECC方案不提供所需要 的輸出可靠性等級。^X為了方便,在這裡的描述的上下文中,在此給出各個術語。到明示地或暗示地、在 本申請中的此處或其他地方提供定義的程度,這樣的定義被理解為與由相關領域中技術人 員定義的術語的使用相一致。此外,將以與這樣的使用相一致的最寬泛的可能含義來解釋 這樣的定義。因為某些類型的固態存儲器(例如快閃記憶體、光存儲器或MRAM)是「破壞的介質」,所 以有時一個或多個誤差被引入到被寫到存儲器的「原始」數據中,使得當從存儲器讀回數據 (即,原始數據的表示)時,一個或多個信息比特被「翻轉」。本發明的實施例涉及「存儲器塊」的「擦除計數」。存儲器「塊」是用於擦除的存儲 器的最小「組塊(chunk)」或量。在與快閃記憶體有關的一個例子中,塊包括一些數量的快閃記憶體單元, 例如,至少幾十或幾百或幾千或更多快閃記憶體單元。對於其他類型的存儲器,例如RAM,「塊」可 以是單個存儲器單元或者多個存儲器單元。對於存儲器的給定塊的「擦除計數」是指示到目前為止固態存儲器的塊已被擦除 了多少次的計數器。無論何時擦除存儲器的塊時,該擦除計數可以遞增。如前所述,如果塊 具有相對「大」的擦除計數,則這可能指示該塊是易有誤差的相對「差」的存儲介質。本發明的實施例涉及「維持快閃記憶體的至少一個塊的擦除計數」。可以在主機側和/或 器件側維持擦除計數,並且可以將擦除計數存儲在易失性(例如RAM或寄存器)和/或非易失性存儲器(例如,快閃記憶體)的任何組合中。在一個例子中,擦除計數被存儲在控制器的晶 片(die)上。在另一例子中,擦除計數被存儲在快閃記憶體晶片之一中。可以將擦除計數存儲在 單個位置中和/或在多個位置之間分布擦除計數。在一個非限制的例子中,可以將擦除計 數存儲在用於實現在快閃記憶體塊之間的磨損校平(wear leveling)的數據結構中。在一些非限制的例子(但不是所有實施例)中,無論何時向固態存儲器寫入時,必 須首先擦除固態存儲器,作為寫過程的一部分。在這樣的系統中,「擦除計數」可以至少部分 地描述給定塊已被寫入的次數。可以使用維持擦除計數的任何技術,包括但不限於在如下中公開的技術=Logfren 等人的美國專利No. 6230233,Wells的美國專利No. 5341339,Jou等人的美國專利 No. 5568423,Assar 等人的美國專利No. 5388083,Harari 的美國專利No. 5712819,Harari 的 美國專利No. 6570790,Harari的美國專利No. 5963480,Chang等人的美國專利No. 6831865, 通過全部引用將其的每個合併於此。根據從存儲器讀回的數據來重建原始的、沒有誤差的數據的過程是「校正誤差」。 雖然以複數使用術語「校正誤差」,但是要認識到「校正誤差」也指校正單個誤差。要認識到 在一些實施例中,誤差的「校正」也可以包括校正誤差的一個或多個失敗的嘗試。如前所述,為了校正誤差,可以使用「解碼器」,以便從碼字的表示中恢復原始數 據。一些實施例涉及多個解碼器,包括「較輕權重」解碼器和「較重權重解碼器」。術語「較重權重」和「較輕權重」用於比較兩個解碼器和/或單個解碼器的兩個模 式。「較重權重」解碼器(或單個解碼器的較重權重模式)(i)消耗比「較輕權重」對應方更 多的電流,和/或(ii)需要比「較輕權重」對應方更多的存儲器(用於解碼器自身的計算 機可執行代碼,和/或用於存儲在校正誤差時計算的「中間結果」的更多存儲器),和/或 (iii)需要比「較輕權重」對應方更多的計算操作。一些實施例涉及根據從其讀取數據的一個或多個存儲器塊的擦除計數來確定要 讀取和/或在誤差校正中使用的「軟比特」的數量。「軟比特」是與估算的可靠性測量相組 合的比特值的估算。通常,相同的數字充當比特值的估算和可靠性測量兩者。例如,對數似 然比(LLR)的符號(sign)是由LLR表示的比特值的估算,以及LLR的量值是該估算的可靠 性的量度。在一些實施例中,可以通過使用比將數據寫入單元中的解析度「更高的解析度」從 存儲器讀取來計算和/或確定「軟比特」。使用「更高解析度」讀取的另外的比特可以給出 數據比特值的任何估算的「可靠性」的一定指示。在一個例子中,可以使用區分電壓帶的界 限的不同「參考電壓」來將數據寫到存儲器,並且可以通過使用位於電壓帶內的參考電壓或 者「一部分的(fractional)參考電壓」讀回數據來生成軟比特。技術人員參考例如Ban的 美國專利7023735,其通過全部引用被合併於此。當根據一個或多個軟比特校正數據時,這 對於改善誤差校正例程可能是有用的——然而,存在與確定(一個或多個)軟比特相關聯 的在時間和/或計算資源方面的花費。初步討論維持擦除計數以及從固態存儲器讀取數據(圖2A-2B、3A-3D、4A-4B、 5A-5B.6A-6D的步驟MU和S423的討論)在步驟S411中,對至少一個存儲器塊維持擦除計數。如前所述,可以在任何位置 中和/或以任何方式維持擦除計數。在一個非限制的例子中,由快閃控制器280維持擦除計數。在一個非限制的例子中,擦除計數被維持在數據結構中(例如,存儲在非易失性存儲 器中)——例如,還用於磨損校平目的的數據結構。在步驟S423中,從一個或多個存儲器塊讀回數據。可以確定從其讀取數據的一 個或多個存儲器塊的擦除計數——例如,通過在適當的數據結構中實現(effect) 「查找表 (look-up)」 來確定。圖 2A-2B、3A_3D 的討論考慮具有如下特徵的兩個解碼器(或者能夠以兩個不同模式工作的一個解碼 器)a.第一解碼器(或解碼器模式)較快和/或「較輕權重」,但是另一方面,不保證 在產生解碼處理的結果中成功。b.第二解碼器(或解碼器模式)較慢和/或「較重權重」,但是保證總是產生解碼 過程的正確結果(或者至少更可能產生解碼處理的正確結果)。通常,數據中的誤差數量越多,第一解碼器越頻繁地失敗。不幸的是,當從存儲器 讀回數據時,不總是先驗地(a-priori)知道在所讀回的數據中有多少誤差。從而,不總是 知道是否需要「較重權重」解碼器(或單個解碼器的較重權重模式),或者「較輕權重」解碼 器是否將足夠。本發明人現在公開在從其讀取數據的一個或多個存儲器塊的擦除計數的數量相 對「低」的情況下,這可能指示讀回的數據可能具有好的「質量」,並且可以選擇用於校正誤 差的相對「樂觀」技術來校正在步驟S615或S625中所讀取的數據中的誤差。從而,在該情 況下,「冒險」使用「較輕權重」解碼器(或單個解碼器的較輕權重模式)來校正誤差可能是 有益的。否則,使用「較重權重」解碼器或單個解碼器的較重權重模式來校正誤差可能是優 選的。現在參考圖2A。在步驟S615中,根據從其讀取數據的一個或多個塊的擦除計數, 從多個候選解碼器中選擇解碼器。在步驟S619中,僅使用所選擇的解碼器而不使用未選擇的「被拒絕的」解碼器來 校正誤差。現在參考圖2B。在步驟S625中,根據從其讀取數據的一個或多個塊的擦除計數, 從多個候選解碼器模式中選擇給定解碼器的模式。在步驟S629中,僅使用所選擇的解碼器模式而不使用未選擇的「被拒絕的」解碼 器模式來校正誤差。現在參考圖3A。在步驟S651中,根據從其讀取數據的一個或多個塊的擦除計數,決定是否嘗試使 用較輕權重解碼器(即多個候選解碼器中的較輕權重解碼器)來校正誤差。在從其讀取數據的固態存儲器的一個或多個塊的擦除計數相對「低」的情況下, 這可能指示所讀回的數據可能具有好的「質量」,並且可以採用相對「樂觀」的誤差校正策 略。從而,在該情景下,在步驟S655中嘗試使用較輕權重解碼器來校正誤差。如果較輕權 重解碼器成功(參見步驟S659),則不需要嘗試使用較重權重解碼器來校正誤差(參見步驟 S667)。如果較輕權重解碼器校正誤差失敗,則S663嘗試使用較重權重解碼器來校正誤差。此外,要注意的是,參考步驟S651,在從其讀取數據的一個或多個塊的擦除計數相對「高」的情況下,這可能指示所讀回的數據可能具有「差」的質量,並且可以採用相對「悲 觀」的誤差校正策略。在該情景下,能夠跳過步驟S665,並嘗試使用較重權重解碼器而不是 較輕權重解碼器來校正誤差(步驟S663中)。現在參考圖3B。在步驟S851中,根據擦除計數,決定是否嘗試使用較快解碼器(即多個候選解碼 器中的較快的解碼器)來校正誤差。在擦除計數「低」、並且採用相對「樂觀」的誤差校正策略的情況下,可以在步驟 S855中嘗試使用較快解碼器來校正誤差。如果較快解碼器成功(參見步驟S859),則不需 要嘗試使用較慢解碼器來校正誤差(參見步驟S867)。如果較快解碼器校正誤差失敗,則 S863嘗試使用較慢解碼器來校正誤差。此外,要注意的是,參考步驟S851,擦除計數「高」並且採用相對「悲觀」的誤差校 正策略,能夠跳過步驟S865,並嘗試使用較慢解碼器而不是較快解碼器來校正誤差(在步 驟S863中)。現在參考圖3C。在步驟S671中,根據一個或多個塊的擦除計數,決定是否嘗試使用較輕權重模式 (即給定解碼器的多個候選解碼器模式中的較輕權重模式)來校正誤差。在擦除計數「低」並且採用相對「樂觀」的誤差校正策略的情況下,在步驟S675中 可以嘗試使用較輕權重模式來校正誤差。如果較輕權重模式成功(參見步驟S679),則不 需要嘗試使用較重權重模式來校正誤差(參見步驟S687)。如果較輕權重模式校正誤差失 敗,則S683嘗試使用較重權重模式來校正誤差。此外,要注意的是,參考步驟S671,在擦除計數「高」並且採用相對「悲觀」的誤差 校正策略的情況下,能夠跳過步驟S675,並嘗試使用較重權重模式而不是較輕權重模式來 校正誤差(在步驟S683中)。現在參考圖3D。在步驟S871中,根據(一個或多個)存儲器塊的擦除計數,決定是否嘗試使用較 快解碼器模式(即多個候選解碼器模式中的較快解碼器模式)來校正誤差。在擦除計數「低」並且採用相對「樂觀」的誤差校正策略的情況下,在步驟S875中 可以嘗試使用較快解碼器模式來校正誤差。如果較快解碼器模式成功(參見步驟S879),則 不需要嘗試使用較慢解碼器模式來校正誤差(參見步驟S887)。如果較快解碼器模式校正 誤差失敗,則S883嘗試使用較慢解碼器模式來校正誤差。此外,要注意的是,參考步驟S871,在擦除計數「高」並且採用相對「悲觀」的誤差 校正策略的情況下,可能優選跳過步驟S865,並嘗試使用較慢解碼器模式而不是較快解碼 器模式來校正誤差(在步驟S863中)。圖4A-4B的討論圖4A-4B是如下技術的框圖,其中(i)進行校正誤差的第一嘗試(在步驟S519); ( )在某個時間點,如果第一嘗試沒有成功地校正誤差,則中止第一嘗試,並進行校正誤差 的第二嘗試(在步驟S539中)。圖4A-4B涉及建立並實施確定何時認為第一嘗試失敗並中 止的策略。該決定並非微不足道——在校正誤差的第一嘗試(在步驟S519中)「過早地」 被認為失敗的情況下,這可能導致不必要地慢和/或耗費資源的誤差校正過程,因為在第一嘗試如果被允許來運行其過程而將已經成功/足夠時,進行了 一個或多個「額外的/不必 要的」校正誤差的嘗試。另一方面,在到第二嘗試的轉換被不必要地延遲、並且花費了「太 多」時間/資源來執行第一嘗試的情況下,這也可能導致不必要地慢的和/或耗費資源的誤 差校正過程。在圖4A-4B中,公開了可以根據從其讀取將被校正誤差的數據的一個或多個存儲 器塊的一個或多個擦除計數來建立並實行用於確定何時第一嘗試被認為失敗(因而被中 止)的策略。在圖4A-4B中,在步驟S519中,使用在步驟S515中建立的一個或多個誤差校正參 數的「第一集合」來進行第一嘗試,並在步驟S539中,使用在步驟S535中建立的一個或多個 誤差校正參數的「第二集合」來進行第二嘗試。在圖4A和4B兩者中,在如在步驟S523確 定的第一嘗試成功的情況下,不需要在步驟S539中進行另外的嘗試(參見步驟S527)。圖4A涉及用於決定何時從步驟S519中的校正誤差的第一嘗試「轉換 (transition) 」 (從而中止第一嘗試)到步驟S539中的校正誤差的第二嘗試的標準。在一個或多個存儲器塊的擦除計數「低」的情況下,則根據第一嘗試將成功具有 相對「高」的機會的假設,可以採用樂觀方法。從而,在該情況下,在步驟S511中確定的 「模式轉換條件」可以是對於相對「快」或「輕權重」的初始誤差校正嘗試而言相對「慷慨 (generous),,的條件(可以至少部分地在步驟S515和/或步驟S535中如何「快」或「慢」 或「重權重」或「輕權重」地建立嘗試)。相反,在擦除計數「高」的情況下,則可以採用悲觀 方法,並且在步驟S511中確定的「模式轉換條件」可以是對於相對「快」或「輕權重」的初試 誤差校正嘗試而言「更吝嗇(stingy) 」的條件,因為假設了這些初始嘗試無論如何將失敗具 有高可能性。「模式轉換條件」是確定第一嘗試已經失敗並且到不同的「模式」的轉換被準許、以 便進行校正誤差的「第二」或「不同的」嘗試的條件。如圖4A所示,如果在步驟S531中觸 發模式轉換條件,則在步驟S535和S539中進行校正誤差的新的嘗試;如果在第一嘗試期間 的任何給定時間沒有觸發該條件,則在步驟S525中第一嘗試繼續。在一個例子中,「轉換條件」與「超時條件」有關——即,在步驟S531中確定允許步 驟S519和S534的第一嘗試「運行」多少時間,而不「中止」該嘗試並開始具有不同的誤差 校正參數的「新嘗試」。在另一例子中,第一嘗試本身利用迭代例程,並且「轉換條件」與「迭 代數量條件」有關——即,在「所利用的迭代例程」被認為失敗並為了「新的」或第二嘗試而 將其中止之前允許運行多少個步驟的「所利用的迭代例程」而沒有成功校正誤差。在另一 例子中,「轉換條件」與可以在中止第一嘗試之前由該第一嘗試「消耗」或使用的CPU周期的 數量有關。圖4A(和4B)的教導可應用到任何「迭代例程」,其中在步驟S519中進行「第一嘗 試」,然後,如果該第一嘗試「不成功」,則在之後進行「第二嘗試」。從而,在不同例子中,「模式轉換」涉及⑴從給定解碼器的較輕模式移動到較重模 式,或者(ii)從使用由多個解碼器中選擇的第一解碼器的第一 「模式」移動到使用從多個 解碼器中選擇的第二解碼器的第二「模式」,或者(iii)對於軟解碼器,從與比特概率值的 第一集合相關聯的第一模式移動到與比特概率值的第二集合相關聯的第二模式,或者(iv) 從使用第一數量(即非負整數)的軟比特的第一模式移動到使用第二數量的軟比特的第二模式,以及(V)從具有第一解碼器總線寬度的第一模式移動到具有第二解碼器總線寬度的 第二模式(參見圖6B)。要認識到,所提供的此列表是例示性的而不是窮盡的列表。在圖4B中,根據從其讀取數據(即,針對其嘗試誤差校正)的存儲器塊的一個或 多個擦除計數,為第一嘗試提供「預算」。該預算可以是時間預算或CPU周期數量預算或迭 代數量預算,或者是可以由第一嘗試「消耗」的任何其他類型的「資源」預算。在另一例子 中,該預算可以是被允許分配來存儲在第一嘗試中使用的「中間結果」的易失性存儲器的最 大量。在擦除計數相對「低」的情況下,在步驟S561中可以分配「較大」的預算;在擦除 計數相對「高」的情況下,可以分配「較小」的預算。在步驟S561中,確定該迭代步驟誤差校 正資源預算,並在步驟S565中,確定該資源預算是否已耗盡。如果該預算已耗盡,則在步驟 S535和S539中進行校正誤差的新嘗試;如果在第一嘗試期間該預算還沒有耗盡,則在步驟 S525中校正誤差的第一嘗試繼續。圖5A-5B的討論圖5A-5B涉及確定將被讀取來校正誤差的軟比特數量的技術(同樣參見上面參考 圖5A-5B的討論)。在圖5A的步驟S419中,確定將被讀取來用於校正誤差的初始嘗試的軟 比特數量。根據與(在步驟S423中)從其讀取將被校正誤差的數據的一個或多個目標存 儲器塊相關聯的(在步驟S415中確定的)擦除計數來確定該軟比特數量。在步驟S427中,讀取所確定的數量的軟比特,並在步驟S431中,嘗試使用這些軟 比特來校正數據(即步驟S423中所讀取的數據)中的誤差。在該嘗試成功的情況下(參 見步驟S439),不需要(參見步驟S443)繼續誤差校正過程。如果該嘗試不成功,則可以在 步驟S435中讀取一個或多個另外的軟比特。要注意的是,圖5A(以及本公開提供的所有附圖)中的步驟的順序不是限制性 的——例如,可以在步驟S419的確定之前執行步驟S423中從固態存儲器的(一個或多個) 目標塊中讀取數據。現在參考圖5B。在可選的步驟S461中,讀取某個數量N的軟比特,其中N是非負整 數(如果N是零,則跳過步驟S461,並且步驟S431中校正誤差的第一嘗試不利用軟比特)。 在步驟S431中,嘗試校正誤差(如果軟比特可用,則使用軟比特)。如果該嘗試成功(參見 步驟S665),則不需要(參見步驟S469)繼續誤差校正過程。如果該嘗試不成功,則在步驟 S473中確定將讀取多少軟比特(即,用於校正誤差的後續嘗試中)——根據與步驟S415和 S423的一個或多個目標存儲器塊相關聯的擦除計數來確定該數量。在步驟S477中,讀取該數量(即在步驟S473中確定的數量)的軟比特——在步 驟S431中使用這些軟比特。圖6A的討論圖6是根據從其讀取數據的存儲器的一個或多個塊的擦除計數來校正誤差的技 術的流程圖。軟解碼器通過向碼字的每個比特分配概率(例如,比特值是1而不是0的概率) 並運行多個迭代而工作,其中在每次迭代中,每個比特的概率根據其他比特的當前概率而 改變。
19
不是軟解碼器的任何解碼器在這裡被稱為「代數解碼器」。該類型的計算被表達為利用「消息傳遞(passing)」技術,因為每個比特向其對等 方「傳遞消息」。在實現這樣的解碼器時的主要設計決定是消息傳遞的總線寬度。使用寬總 線(例如10比特)保證如果算法可以應對誤差,則該算法確實將收斂到正確的數據。但是 另一方面,在這樣的設計中解碼器的功耗高。使用窄總線(例如3比特)提供低得多的功 耗,但是在具有相對大數量誤差的情況下,解碼器可能不能收斂到正確的數據(即使在相 應的寬總線解碼器中正確地解碼相同樣式(pattern)的數據和誤差)。用於消息傳遞的比 特數量對解碼過程的功耗具有顯著影響——比特數量越多,功耗越高。該現象的原因之一是在解碼操作期間將軟解碼器的消息和信道輸入(軟值)存儲 在大功耗RAM中。例如,當例如對每個消息使用3比特而不是10比特時,可以關閉70%的 RAM。節省功耗的另一來源是處理這些傳遞消息的處理單元。很明顯對3比特而不是10比 特執行計算需要更小且更低功耗的單元。能夠實現其中可以在解碼開始時設置「消息傳遞」中的比特數量的軟解碼器。從 而,在一些實施例中,根據從其讀取數據的一個或多個塊的擦除計數來選擇解碼總線寬度 大小。在指示「樂觀情形」的擦除計數「低」的情況下,能夠選擇較小的解碼總線寬度大小, 從而校正誤差。否則,可能優選選擇較大的解碼總線寬度大小。這在圖6A中圖示地示出。在步驟S751中,根據從其讀取數據的一個或多個塊的 擦除計數來選擇解碼器總線寬度。在步驟S755中,根據所選擇的解碼器總線寬度值來校正誤差。圖6B的討論在圖6B中,步驟S411、S423和S751與圖6A中的相同。在步驟S775中,嘗試使用在步驟S751中選擇的所選解碼器總線寬度來校正誤差。 如果該嘗試成功(參見步驟S779),則不需要(參見步驟S787)繼續誤差校正過程。否則, 如果該嘗試沒有成功(參見步驟S783),則選擇新的解碼器總線寬度,並進行校正誤差的新
嘗試ο另外的討論要注意,可以在「器件側」或「主機側」實現這裡公開的任何技術。在一個具體例 子中,這裡公開的任何步驟或步驟的組合(包括但不限於如下步驟維持擦除計數、讀取數 據或軟比特、校正誤差、進行校正誤差的嘗試、選擇解碼器或模式或軟比特數、確定是否利 用給定解碼器或解碼器模式、選擇解碼器總線寬度、確定或實行轉換條件或資源預算等等) 可以由快閃器件260的器件控制器280 (或包括固態存儲器的任何其他數據存儲器件)—— 例如,外圍存儲器件260*的器件控制器來實現。在一些實施例中,在「器件側」校正數據中的誤差之後,可以將被校正誤差的數據 從存儲器件260*經由各自的設備間接口發送給主機設備310。這(與步驟S425的數據讀 取和任何誤差校正一起)可以響應於由主機310發送給外圍存儲器件260*以讀取存儲在 固態非易失性存儲器(例如快閃記憶體270)內的數據的請求而執行。器件控制器280可以包括任何一個或多個軟體和/或固件和/或硬體元件,包括 但不限於一個或多個現場可編程邏輯陣列(FPLA)元件、一個或多個硬連線的邏輯元件、一 個或多個現場可編程門陣列(FPGA)元件以及一個或多個專用集成電路(ASIC)元件。可以在控制器280中使用任何指令集架構,包括但不限於精簡指令集計算機(RISC)架構和/或 複雜指令集計算機(CISC)架構。可以以硬體、由硬體執行的計算機可讀代碼模塊和固件的任何組合來實現任何所 公開的技術。本發明的實施例提供了用於實現任何公開的技術的裝置和計算機介質。在這裡引用的所有參考文件通過全部引用而被合併。參考文件的引用不構成該參 考文件是現有技術的認可。還要注意的是,上述任何實施例還可以包括在計算機可讀介質之上接收、發送或 存儲實現上面結合附圖描述的操作的指令和/或數據。一般來說,計算機可讀介質可以 包括諸如磁介質或快閃介質或光介質、例如盤或CD-ROM的存儲介質或存儲器介質、諸如 RAM、ROM等的易失性或非易失性介質、以及諸如經由諸如網絡和/或無線鏈路的通信介質 傳送的電、電磁或數位訊號的傳輸介質或信號。因而描述了上述示例實施例,對於本領域技術人員將明顯的是,不脫離如在下文 中陳述的權利要求的範圍和精神,各種等效物、變更、修改及其改進是可能的。特別是,不同 的實施例可以包括不同於在此所述的特徵的組合。從而,權利要求不限於前述討論。
2權利要求
1.一種用於處理誤差校正的方法,所述方法包括a)維持固態存儲器的至少一個塊的擦除計數;b)從具有相關聯的擦除計數的存儲器塊之一讀取數據;c)根據所述存儲器塊的相關聯擦除計數,實現以下的至少之一 i)選擇第一解碼器和第二解碼器之一;以及 )選擇第一解碼器模式和第二解碼器模式之一;d)僅使用所選擇的解碼器或所選擇的模式來校正所讀取的數據中的誤差。
2.根據權利要求1所述的方法,其中所述固態存儲器是快閃記憶體。
3.根據權利要求1所述的方法,其中由所述固態存儲器所駐留的存儲器件的器件控制 器來執行所述維持、所述讀取、所述實行和所述校正中的至少一個。
4.根據權利要求3所述的方法,其中所述存儲器件經由設備間接口操作性地與主機設 備耦接,以及其中所述方法還包括e)從所述存儲器件向所述主機設備發送誤差校正過的數據。
5.一種用於處理誤差校正的方法,所述方法包括a)維持固態存儲器的至少一個塊的擦除計數;b)從具有相關聯的擦除計數的存儲器塊之一讀取數據;c)根據所述相關聯的擦除計數,實現以下的至少一個 i)決定A)嘗試使用較輕權重解碼器來校正誤差,還是B)嘗試僅使用比所述較輕權重解碼器更重的較重權重解碼器來校正誤差; )決定A)嘗試使用較快解碼器來校正誤差,還是B)嘗試僅使用比所述較快解碼器更慢的較慢解碼器來校正誤差;iii)決定A)嘗試使用具體解碼器的較輕權重模式來校正誤差,還是B)嘗試僅使用所述具體解碼器的比所述較輕權重模式更重的較重權重模式來校正誤 差;以及iv)決定A)嘗試使用具體解碼器的較快模式來校正誤差,還是B)嘗試僅使用所述具體解碼器的比所述較快模式更慢的較慢模式來校正誤差;以及d)根據所述決定中的至少一個,校正在讀取的數據中的誤差。
6.根據權利要求5所述的方法,其中由所述固態存儲器所駐留的存儲器件的器件控制 器來執行所述維持、所述讀取、一個或多個所述決定以及所述校正中的至少一個。
7.一種用於處理誤差校正的方法,所述方法包括a)維持固態存儲器的至少一個塊的擦除計數;b)從具有相關聯的擦除計數的存儲器塊之一讀取數據;c)根據所述相關聯的擦除計數,確定以下的至少一個 i)模式轉換條件;以及 )誤差校正嘗試資源預算;d)使用誤差校正參數的第一集合進行校正在讀取的數據中的誤差的第一嘗試;以及e)在校正誤差的所述第一嘗試不成功的情況下,使用誤差校正參數的第二集合進行校 正在讀取的數據中的誤差的第二嘗試,所述第二嘗試根據如下至少之一而定i)所述第一嘗試對所述模式轉換條件的觸發;以及 )所述第一嘗試對所述資源預算的耗盡。
8.根據權利要求7所述的方法,其中i)所述方法包括確定所述模式轉換條件;以及 )所述第二嘗試根據至少所述第一嘗試對所述模式轉換條件的觸發而定。
9.根據權利要求7所述的方法,其中i)所述方法包括確定所述資源預算;以及 )所述第二嘗試根據至少所述第一嘗試對所述資源預算的耗盡而定。
10.根據權利要求7所述的方法,其中從由以下構成的組中選擇至少一個誤差校正參數i)用於從多個解碼器中選擇解碼器的選擇參數; )用於從多個解碼器模式中選擇給定解碼器的解碼器模式的解碼器模式參數;iii)所讀取的數據的比特概率值;iv)軟比特數量;以及 ν)解碼器總線寬度。
11.根據權利要求7所述的方法,其中從由以下構成的組中選擇所述模式轉換條件 i)超時條件; )迭代數量條件;以及 iii)CPU周期數量條件。
12.根據權利要求7所述的方法,其中從由以下構成的組中選擇所述誤差校正嘗試資 源預算i)時間預算;ii)CPU周期預算;以及iii)迭代預算。
13.根據權利要求7所述的方法,其中由所述固態存儲器所駐留的存儲器件的器件控 制器來執行所述維持、所述讀取、所述確定以及一個或多個所述嘗試中的至少一個。
14.一種用於處理誤差校正的方法,所述方法包括a)維持存儲器的至少一個塊的擦除計數;b)從具有相關聯的擦除計數的存儲器塊之一讀取數據;c)根據所述相關聯的擦除計數,實現以下的至少一個 i)確定針對所述數據要讀取的軟比特的數量;以及 )選擇解碼總線寬度大小;以及d)在確定所述軟比特的數量的情況下,讀取針對所述數據的所述數量的軟比特;以及e)嘗試使用以下的至少一個來校正所述數據中的誤差 i)所選擇的解碼總線寬度大小;以及; )讀取的軟比特。
15.根據權利要求14所述的方法,其中i)所述方法包括確定針對所述數據要讀取的軟比特的數量,並讀取針對所述數據的所 述數量的軟比特;以及 )所述嘗試包括嘗試至少使用所讀取的軟比特來校正所述數據中的誤差。
16.根據權利要求14所述的方法,其中i)所述方法包括選擇所述解碼總線寬度大小;以及 )所述嘗試包括嘗試使用所選擇的解碼總線寬度大小來校正所述數據中的誤差。
17.根據權利要求14所述的方法,其中由固態存儲器所駐留的存儲器件的器件控制器 來執行所述維持、一個或多個所述讀取、所述確定、所述選擇和所述嘗試中的至少一個。
18.一種數據存儲器件,包括a)固態存儲器;以及b)器件控制器,工作來i)維持所述固態存儲器的至少一個塊的擦除計數; )從具有相關聯的擦除計數的存儲器塊之一讀取數據;iii)根據該存儲器塊的相關聯的擦除計數,實現以下的至少一個A)選擇第一解碼器和第二解碼器之一;以及B)選擇第一解碼器模式和第二解碼器模式之一;以及iv)僅使用所選擇的解碼器或所選擇的模式來校正在讀取的數據中的誤差。
19.一種數據存儲器件,包括a)固態存儲器;以及b)控制器,工作來i)維持所述固態存儲器的至少一個塊的擦除計數; )從具有相關聯的擦除計數的存儲器塊之一讀取數據;iii)根據所述相關聯的擦除計數,實現以下的至少一個A)決定I)嘗試使用較輕權重解碼器來校正誤差,還是II)嘗試僅使用比所述較輕權重解碼器更重的較重權重解碼器來校正誤差;B)決定I)嘗試使用較快解碼器來校正誤差,還是II)嘗試僅使用比所述較快解碼器更慢的較慢解碼器來校正誤差;C)決定I)嘗試使用具體解碼器的較輕權重模式來校正誤差,還是II)嘗試僅使用所述具體解碼器的比所述較輕權重模式更重的較重權重模式來校正誤 差;以及D)決定I)嘗試使用具體解碼器的較快模式來校正誤差,還是II)嘗試僅使用所述具體解碼器的比所述較快模式更慢的較慢模式來校正誤差;以及iv)根據所述決定中的至少一個,校正在讀取的數據中的誤差。
20.一種數據存儲器件,包括a)固態存儲器;以及b)器件控制器,工作來i)維持所述固態存儲器的至少一個塊的擦除計數; )從具有相關聯的擦除計數的存儲器塊之一讀取數據;iii)根據所述相關聯的擦除計數,確定以下的至少一個A)模式轉換條件;以及B)誤差校正嘗試資源預算;iv)使用誤差校正參數的第一集合進行校正在讀取的數據中的誤差的第一嘗試;以及 ν)在校正誤差的所述第一嘗試不成功的情況下,使用誤差校正參數的第二集合進行校正在讀取的數據中的誤差的第二嘗試,所述第二嘗試根據以下的至少一個而定A)所述第一嘗試對所述模式轉換條件的觸發;以及B)所述第一嘗試對所述資源預算的耗盡。
21. 一種數據存儲器件,包括a)固態存儲器;以及b)器件控制器,工作來i)維持所述固態存儲器的至少一個塊的擦除計數; )從具有相關聯的擦除計數的存儲器塊之一讀取數據;iii)根據所述相關聯的擦除計數,實現以下的至少一個A)確定針對所述數據要讀取的軟比特的數量;以及B)選擇解碼總線寬度大小;以及iv)在確定所述軟比特的數量情況下,讀取針對所述數據的所述數量的軟比特;以及 ν)嘗試使用以下的至少一個來校正所述數據中的誤差Α)所選擇的解碼總線寬度大小;以及 B)所讀取的軟比特。
全文摘要
本發明的實施例涉及維持固態存儲器的至少一個塊的擦除計數的方法和設備。根據存儲器塊的相關聯的擦除計數來校正在從固態存儲器讀取的數據中的誤差。在一些實施例中,可以根據從其讀取數據的存儲器塊的相關聯的擦除計數來實現以下誤差校正操作中的一個或多個(i)選擇解碼器和/或解碼器模式;(ii)決定嘗試使用較輕權重的權重解碼器(模式)和/或較重權重解碼器(模式)和/或較快解碼器(模式)和/或較慢解碼器(模式)校正誤差;(iii)確定模式轉換和/或誤差校正嘗試資源預算;(iv)確定軟比特的數量;以及(v)選擇解碼總線寬度大小。
文檔編號G06F11/10GK102099793SQ200980128383
公開日2011年6月15日 申請日期2009年5月6日 優先權日2008年6月24日
發明者伊丹.奧爾羅德, 伊蘭.沙倫, 梅納漢.拉瑟 申請人:桑迪士克以色列有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀