錯誤處理方法、存儲器儲存裝置及存儲器控制電路單元的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種錯誤處理方法,且特別是涉及一種用于可復寫式非揮發(fā)性存儲器 模塊的錯誤處理方法、存儲器儲存裝置及存儲器控制電路單元。
【背景技術(shù)】
[0002] 數(shù)碼相機、移動電話與MP3播放器在這幾年來的發(fā)展十分迅速,使得消費者對儲 存媒體的需求也急速增加。由于可復寫式非揮發(fā)性存儲器模塊(例如,閃存)具有數(shù)據(jù)非 揮發(fā)性、省電、體積小,以及無機械結(jié)構(gòu)等特性,所以非常適合內(nèi)建于上述所舉例的各種可 攜式多媒體裝置中。
[0003] -般來說,錯誤檢查與校正電路會被配置在存儲器控制器中。此錯誤檢查與校正 電路用以對從可復寫式非揮發(fā)性存儲器模塊中讀取出的數(shù)據(jù)進行錯誤檢查與更正。然而, 基于現(xiàn)有的錯誤檢查與校正機制,某些特定類型的錯誤(例如,數(shù)據(jù)在總線上傳輸引起的 錯誤)不容易被找到。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種錯誤處理方法、存儲器儲存裝置及存儲器控制電路單元,可辨識 出特定類型的錯誤,并記錄下相關(guān)信息供進一步使用。
[0005] 本發(fā)明的一實施例提供一種錯誤處理方法,其用于可復寫式非揮發(fā)性存儲器模 塊,此可復寫式非揮發(fā)性存儲器模塊包括多個存儲元,所述錯誤處理方法包括:發(fā)送第一讀 取指令序列,其中第一讀取指令序列用以從所述存儲元中讀取多個位元;對所述位元執(zhí)行 第一解碼;如果所述位元具有至少一個錯誤,則更正所述錯誤,并判斷每一所述錯誤是屬于 第一類錯誤或第二類錯誤;如果所述錯誤中的第一錯誤是屬于第一類錯誤,則記錄下第一 錯誤的相關(guān)信息;以及如果第一錯誤是屬于第二類錯誤,則不記錄第一錯誤的相關(guān)信息。
[0006] 在本發(fā)明的一實施例中,所述判斷每一所述錯誤是屬于第一類錯誤或第二類錯誤 的步驟包括:取得第一錯誤在所述位元中對應的錯誤位元的通道可靠度信息;判斷通道可 靠度信息的值是否大于可靠度閾值;如果通道可靠度信息的值大于可靠度閾值,則判定第 一錯誤是屬于第一類錯誤;以及如果通道可靠度信息的值沒有大于可靠度閾值,則判定第 一錯誤是屬于第二類錯誤。
[0007] 在本發(fā)明的一實施例中,所述判斷每一所述錯誤是屬于第一類錯誤或第二類錯誤 的步驟包括:辨識出第一錯誤在所述存儲元中對應的第一存儲元;判斷從第一存儲元中讀 取的參考位元是否是第一值,其中第一錯誤在所述位元中對應的錯誤位元不是參考位元; 如果參考位元是第一值,則判定第一錯誤是屬于第一類錯誤;以及如果參考位元不是第一 值,則判定第一錯誤是屬于第二類錯誤。
[0008] 在本發(fā)明的一實施例中,所述存儲元屬于下實體程序化單元且屬于上實體程序化 單元,錯誤位元是對應至下實體程序化單元,并且參考位元是對應至上實體程序化單元。
[0009] 在本發(fā)明的一實施例中,所述錯誤處理方法還包括:發(fā)送第二讀取指令序列,其中 第二讀取指令序列用以從所述存儲元中讀取所述位元;根據(jù)所記錄的相關(guān)信息,更正所述 位元;以及對更正后的所述位元執(zhí)行第二解碼。
[0010] 在本發(fā)明的一實施例中,所述錯誤處理方法還包括:累計所述位元中屬于第一類 錯誤的至少一個錯誤的總數(shù);判斷總數(shù)是否大于錯誤閾值;以及如果總數(shù)大于錯誤閾值, 則發(fā)送寫入指令序列,其中寫入指令序列用以將更正后的所述位元寫入至所述存儲元。 [0011] 本發(fā)明的一實施例提供一種存儲器儲存裝置,其包括連接接口單元、可復寫式非 揮發(fā)性存儲器模塊及存儲器控制電路單元。連接接口單元用以電性連接至主機系統(tǒng)??蓮?寫式非揮發(fā)性存儲器模塊包括多個存儲元。存儲器控制電路單元電性連接至連接接口單元 與可復寫式非揮發(fā)性存儲器模塊。其中存儲器控制電路單元用以發(fā)送第一讀取指令序列, 其中第一讀取指令序列用以從所述存儲元中讀取多個位元,存儲器控制電路單元還用以對 所述位元執(zhí)行一第一解碼,如果所述位元具有至少一個錯誤,則存儲器控制電路單元還用 以更正所述錯誤并判斷每一所述錯誤是屬于第一類錯誤或第二類錯誤,如果所述錯誤中的 第一錯誤是屬于第一類錯誤,則存儲器控制電路單元還用以記錄下第一錯誤的相關(guān)信息, 以及如果第一錯誤是屬于第二類錯誤,則存儲器控制電路單元不記錄第一錯誤的相關(guān)信 肩、。
[0012] 在本發(fā)明的一實施例中,所述存儲器控制電路單元判斷每一所述錯誤是屬于第一 類錯誤或第二類錯誤的操作包括:取得第一錯誤在所述位元中對應的錯誤位元的通道可靠 度信息;判斷通道可靠度信息的值是否大于可靠度閾值;如果通道可靠度信息的值大于可 靠度閾值,則判定第一錯誤是屬于第一類錯誤;以及如果通道可靠度信息的值沒有大于可 靠度閾值,則判定第一錯誤是屬于第二類錯誤。
[0013] 在本發(fā)明的一實施例中,所述存儲器控制電路單元判斷每一所述錯誤是屬于第一 類錯誤或第二類錯誤的操作包括:辨識出第一錯誤在所述存儲元中對應的第一存儲元;判 斷從第一存儲元中讀取的參考位元是否是第一值,其中第一錯誤在所述位元中對應的錯誤 位元不是參考位元;如果參考位元是第一值,則判定第一錯誤是屬于第一類錯誤;以及如 果參考位元不是第一值,則判定第一錯誤是屬于第二類錯誤。
[0014] 在本發(fā)明的一實施例中,所述存儲器控制電路單元還用以發(fā)送第二讀取指令序 列,其中第二讀取指令序列用以從所述存儲元中讀取所述位元,存儲器控制電路單元還用 以根據(jù)所記錄的相關(guān)信息更正所述位元,并且對更正后的所述位元執(zhí)行第二解碼。
[0015] 在本發(fā)明的一實施例中,所述存儲器控制電路單元還用以累計所述位元中屬于第 一類錯誤的至少一個錯誤的總數(shù),并且判斷總數(shù)是否大于錯誤閾值,如果總數(shù)大于錯誤閾 值,則存儲器控制電路單元發(fā)送寫入指令序列,其中寫入指令序列用以將更正后的所述位 元寫入至所述存儲元。
[0016] 本發(fā)明的一實施例提供一種存儲器控制電路單元,其用于控制可復寫式非揮發(fā)性 存儲器模塊,其中可復寫式非揮發(fā)性存儲器模塊包括多個存儲元,所述存儲器控制電路單 元包括主機接口、存儲器接口、錯誤檢查與校正電路及存儲器管理電路。主機接口用以電 性連接至主機系統(tǒng)。存儲器接口用以電性連接至可復寫式非揮發(fā)性存儲器模塊,其中可復 寫式非揮發(fā)性存儲器模塊包括多個存儲元。存儲器管理電路電性連接至主機接口、存儲器 接口及錯誤檢查與校正電路,其中存儲器管理電路用以發(fā)送第一讀取指令序列,其中第一 讀取指令序列用以從所述存儲元中讀取多個位元,錯誤檢查與校正電路用以對所述位元執(zhí) 行第一解碼,如果所述位元具有至少一錯誤,則錯誤檢查與校正電路還用以更正所述錯誤, 并且存儲器管理電路還用以判斷每一所述錯誤是屬于第一類錯誤或第二類錯誤,如果所述 錯誤中的第一錯誤是屬于第一類錯誤,則存儲器管理電路還用以記錄下第一錯誤的相關(guān)信 息,以及如果第一錯誤是屬于第二類錯誤,則存儲器管理電路不記錄第一錯誤的相關(guān)信息。
[0017] 在本發(fā)明的一實施例中,所述存儲器管理電路判斷每一所述錯誤是屬于第一類錯 誤或第二類錯誤的操作包括:取得第一錯誤在所述位元中對應的錯誤位元的可靠度信息; 判斷通道可靠度信息的值是否大于可靠度閾值;如果通道可靠度信息的值大于可靠度閾 值,則判定第一錯誤是屬于第一類錯誤;以及如果通道可靠度信息的值沒有大于可靠度閾 值,則判定第一錯誤是屬于第二類錯誤。
[0018] 在本發(fā)明的一實施例中,所述存儲器管理電路判斷每一所述錯誤是屬于第一類錯 誤或第二類錯誤的操作包括:辨識出第一錯誤在所述存儲元中對應的第一存儲元;判斷從 第一存儲元中讀取的參考位元是否是第一值,其中第一錯誤在所述位元中對應的錯誤位元 不是參考位元;如果參考位元是第一值,則判定第一錯誤是屬于第一類錯誤;以及如果參 考位元不是第一值,則判定第一錯誤是屬于第二類錯誤。
[0019] 在本發(fā)明的一實施例中,所述存儲器管理電路還用以發(fā)送第二讀取指令序列,其 中第二讀取指令序列用以從所述存儲元中讀取所述位元,存儲器管理電路還用以根據(jù)所記 錄的相關(guān)信息更正所述位元,并且錯誤檢查與校正電路還用以對更正后的所述位元執(zhí)行第 二解碼。
[0020] 在本發(fā)明的一實施例中,所述存儲器管理電路還用以累計所述位元中屬于第一類 錯誤的至少一個錯誤的總數(shù)并且判斷總數(shù)是否大于錯誤閾值,如果總數(shù)大于錯誤閾值,則 存儲器管理電路還用以發(fā)送寫入指令序列,其中寫入指令序列用以將更正后的所述位元寫 入至所述存儲元。
[0021] 本發(fā)明的一實施例提供一種錯誤處理方法,其用于可復寫式非揮發(fā)性存儲器模 塊,可復寫式非揮發(fā)性存儲器模塊包括多個存儲元,所述錯誤處理方法包括:發(fā)送第一讀取 指令序列,其中第一讀取指令序列用以從所述存儲元的第一存儲元中讀取多個位元;對所 述位元執(zhí)行第一解碼;如果所述位元具有至少一錯誤,則更正所述錯誤,并判斷每一所述錯 誤是屬于第一類錯誤或第二類錯誤;如果所述錯誤包含第一類錯誤,則發(fā)送寫入指令序列, 其中寫入指令序列用以將更正后的所述位元寫入至所述存儲元的第二存儲元;以及如果每 一所述錯誤都是屬于第二類錯誤,則輸出更正后的所述位元,其中,第一存儲元不同于第二 存儲元。
[0022] 在本發(fā)明的一實施例中,所述判斷每一所述錯誤是屬于第一類錯誤或第二類錯誤 的步驟包括:取得所述錯誤中的第一錯誤在所述位元中對應的錯誤位元的通道可靠度信 息;判斷通道可靠度信息的值是否大于可靠度閾值;以及如果通道可靠度信息的值大于可 靠度閾值,則判定第一錯誤屬于第一類錯誤。
[0023] 在本發(fā)明的一實施例中,所述判斷每一所述錯誤是屬于第一類錯誤或第二類錯誤 的步驟包括:判斷從第一存儲元中讀取的參考位元是否是第一值,其中所述錯誤中的第一 錯誤在所述位元中對應的錯誤位元不是參考位元;以及如果參考位元是第一值,則判定第 一錯誤是屬于第一類錯誤。
[0024] 本發(fā)明的一實施例提供一種存儲器儲存裝置,其包括連接接口單元、可復寫式非 揮發(fā)性存儲器模塊及存儲器控制電路單元。連接接口單元用以電性連接至主機系統(tǒng)。可復 寫式非揮發(fā)性存儲器模塊包括多個存儲元。存儲器控制電路單元電性連接至連接接口單元 與可復寫式非揮發(fā)性存儲器模塊。其中存儲器控制電路單元用以發(fā)送第一讀取指令序列, 其中第一讀取指令序列用以從所述存儲元的第一存儲元讀取多個位元,存儲器控制電路單 元還用以對所述位元執(zhí)行第一解碼,如果所述位元具有至少一錯誤,則存儲器控制電路單 元還用以更正所述錯誤并判斷每一所述錯誤是屬于第一類錯誤或第二類錯誤,如果所述錯 誤中包括第一類錯誤,則存儲器控制電路單元還用以發(fā)送寫入指令序列,其中寫入指令序 列用以將更正后的所述位元寫入至所述存儲元的第二存儲元,以及如果每一所述錯誤都是 屬于第二類錯誤,則存儲器控制電路單元還用以輸出更正后的所述位元,其中,第一存儲元 不同于第二存儲元。
[0025] 在本發(fā)明的一實施例中,所述存儲器控制電路單元判斷每一所述錯誤是屬于第一 類錯誤或第二類錯誤的操作包括:取得所述錯誤中的第一錯誤在所述位元中對應的錯誤位 元的通道可靠度信息;判斷通道可靠度信息的值是否大于可靠度閾值;以及如果通道可靠 度信息的值大于可靠度閾值,則判定第一錯誤屬于第一類錯誤。
[0026] 在本發(fā)明的一實施例中,所述存儲器控制電路單元判斷每一所述錯誤是屬于第一 類錯誤或第二類錯誤的操作包括:判斷從第一存儲元中讀取的參考位元是否是第一值,其 中所述錯誤中的第一錯誤在所述位元中對應的錯誤位元不是參考位元;以及如果參考位元 是第一值,則判定第一錯誤是屬于第一類錯誤。
[0027] 本發(fā)明的一實施例提供一種存儲器控制電路單元,其用于控制可復寫式非揮發(fā)性 存儲器模塊,其中可復寫式非揮發(fā)性存儲器模塊包括多個存儲元,所述存儲器控制電路單 元包括主機接口、存儲器接口、錯誤檢查與校正電路及存儲器管理電路。主機接口用以電性 連接至主機系統(tǒng)。存儲器接口用以電性連接至可復寫式非揮發(fā)性存儲器模塊,其中可復寫 式非揮發(fā)性存儲器模塊包括多個存儲元。存儲器管理電路電性連接至主機接口、存儲器接 口及錯誤檢查與校正電路,其中存儲器管理電路用以發(fā)送第一讀取指令序列,其中第一讀 取指令序列用以從所述存儲元的第一存儲元中讀取多個位元,錯誤檢查與校正電路用以對 所述位元執(zhí)行第一解碼,其中如果所述位元具有至少一個錯誤,則錯誤檢查與校正電路還 用以更正所述錯誤,并且存儲器管理電路還用以判斷每一所述錯誤是屬于第一類錯誤或第 二類錯誤,如果所述錯誤中包括第一類錯誤,則存儲器管理電路還用以發(fā)送寫入指令序列, 其中寫入指令序列用以將更正后的所述位元寫入至所述存儲元的第二存儲元,以及如果每 一所述錯誤都是屬于第二類錯誤,則存儲器管理電路還用以輸出更正后的所述位元,其中, 第一存儲元不同于第二存儲元。
[0028] 在本發(fā)明的一實施例中,所述存儲器管理電路判斷每一所述錯誤是屬于第一類錯 誤或第二類錯誤的操作包括:取得所述錯誤中的第一