數(shù)據(jù)存取方法、存儲器儲存裝置及存儲器控制電路單元的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明是有關(guān)于一種數(shù)據(jù)存取方法,且特別是有關(guān)于一種用于可復(fù)寫式非易失性 存儲模塊的數(shù)據(jù)存取方法、存儲器儲存裝置及存儲器控制電路單元。
【背景技術(shù)】
[0002] 數(shù)碼相機(jī)、行動電話與MP3播放器在這幾年來的成長十分迅速,使得消費(fèi)者對儲 存媒體的需求也急速增加。由于可復(fù)寫式非易失性存儲模塊(例如,快閃存儲器)具有數(shù) 據(jù)非揮發(fā)性、省電、體積小,以及無機(jī)械結(jié)構(gòu)等特性,所以非常適合內(nèi)建于上述所舉例的各 種可攜式多媒體裝置中。
[0003] -般來說,為了確保數(shù)據(jù)的完整性,欲寫入至可復(fù)寫式非易失性存儲模塊的數(shù)據(jù) 會被編碼。編碼過的數(shù)據(jù)才會被寫入至可復(fù)寫式非易失性存儲模塊。從可復(fù)寫式非易失性 存儲模塊中讀取出的數(shù)據(jù)則會經(jīng)過對應(yīng)的解碼程序。在出廠時,每個可復(fù)寫式非易失性存 儲模塊的數(shù)據(jù)保護(hù)能力取決于編碼時所產(chǎn)生的錯誤校驗(yàn)與校正碼的強(qiáng)度。但,所產(chǎn)生的錯 誤校驗(yàn)與校正碼的強(qiáng)度并不會根據(jù)快閃存儲器的特性而作調(diào)整。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種數(shù)據(jù)存取方法、存儲器儲存裝置及存儲器控制電路單元,其可提 升對于具有不同可靠度的實(shí)體程序化單元的使用效率。
[0005] 本發(fā)明的一范例實(shí)施例提供一種數(shù)據(jù)存取方法,其用于可復(fù)寫式非易失性存儲模 塊,其中可復(fù)寫式非易失性存儲模塊包含多個實(shí)體抹除單元,其中每一實(shí)體抹除單元具有 多個實(shí)體程序化單元,所述數(shù)據(jù)存取方法包括:判斷所述實(shí)體程序化單元中用以儲存第一 數(shù)據(jù)的第一實(shí)體程序化單元屬于第一類實(shí)體程序化單元或第二類實(shí)體程序化單元;若第一 實(shí)體程序化單元屬于第一類實(shí)體程序化單元,產(chǎn)生對應(yīng)于第一數(shù)據(jù)的第一驗(yàn)證碼與用以與 第一驗(yàn)證碼結(jié)合的第二驗(yàn)證碼,并且將第一數(shù)據(jù)與第一驗(yàn)證碼寫入至第一實(shí)體程序化單元 中;以及若使用第一驗(yàn)證碼無法成功地解碼第一數(shù)據(jù),結(jié)合第二驗(yàn)證碼與第一驗(yàn)證碼來解 碼第一數(shù)據(jù)。
[0006] 在本發(fā)明的一范例實(shí)施例中,所述數(shù)據(jù)存取方法還包括:若第一實(shí)體程序化單元 屬于第二類實(shí)體程序化單元,產(chǎn)生對應(yīng)于第一數(shù)據(jù)的第三驗(yàn)證碼,并且將第一數(shù)據(jù)、第三驗(yàn) 證碼及用以與第五驗(yàn)證碼結(jié)合的第四驗(yàn)證碼寫入至第一實(shí)體程序化單元,其中第五驗(yàn)證碼 用以驗(yàn)證第二數(shù)據(jù),第二數(shù)據(jù)與第五驗(yàn)證碼儲存于所述實(shí)體程序化單元中屬于第一類實(shí)體 程序化單元的第二實(shí)體程序化單元,并且第三驗(yàn)證碼的數(shù)據(jù)長度短于第一驗(yàn)證碼的數(shù)據(jù)長 度。
[0007] 在本發(fā)明的一范例實(shí)施例中,所述數(shù)據(jù)存取方法還包括:若使用第五驗(yàn)證碼無法 成功地解碼第二數(shù)據(jù),結(jié)合第四驗(yàn)證碼與第五驗(yàn)證碼來解碼第二數(shù)據(jù)。
[0008] 在本發(fā)明的一范例實(shí)施例中,若使用第五驗(yàn)證碼無法成功地解碼第二數(shù)據(jù),所述 結(jié)合第四驗(yàn)證碼與第五驗(yàn)證碼來解碼第二數(shù)據(jù)的步驟包括:根據(jù)讀取指令從第二實(shí)體程序 化單元中讀取第二數(shù)據(jù)與第五驗(yàn)證碼;根據(jù)第五驗(yàn)證碼對第二數(shù)據(jù)執(zhí)行第一解碼,并且判 斷第一解碼是否產(chǎn)生有效碼字;以及若第一解碼沒有產(chǎn)生有效碼字,從第一實(shí)體程序化單 元讀取第四驗(yàn)證碼,結(jié)合第四驗(yàn)證碼與第五驗(yàn)證碼為第六驗(yàn)證碼,并且根據(jù)第六驗(yàn)證碼對 第二數(shù)據(jù)執(zhí)行第二解碼。
[0009] 在本發(fā)明的一范例實(shí)施例中,所述第五驗(yàn)證碼的數(shù)據(jù)長度等于第三驗(yàn)證碼的數(shù)據(jù) 長度與第四驗(yàn)證碼的數(shù)據(jù)長度的總和。
[0010] 在本發(fā)明的一范例實(shí)施例中,所述數(shù)據(jù)存取方法還包括:將第二驗(yàn)證碼寫入至所 述實(shí)體程序化單元中屬于第二類實(shí)體程序化單元的第三實(shí)體程序化單元。
[0011] 在本發(fā)明的一范例實(shí)施例中,若使用第一驗(yàn)證碼無法成功地解碼第一數(shù)據(jù),所述 結(jié)合第二驗(yàn)證碼與第一驗(yàn)證碼來解碼第一數(shù)據(jù)的步驟包括:根據(jù)讀取指令從第一實(shí)體程序 化單元中讀取第一數(shù)據(jù)與第一驗(yàn)證碼;根據(jù)第一驗(yàn)證碼對第一數(shù)據(jù)執(zhí)行第一解碼,并且判 斷第一解碼是否產(chǎn)生有效碼字;以及若第一解碼沒有產(chǎn)生有效碼字,讀取第二驗(yàn)證碼,結(jié)合 第一驗(yàn)證碼與第二驗(yàn)證碼為第七驗(yàn)證碼,并且根據(jù)第七驗(yàn)證碼對第一數(shù)據(jù)執(zhí)行第二解碼。
[0012] 在本發(fā)明的一范例實(shí)施例中,所述第一類實(shí)體程序化單元是上實(shí)體程序化單元, 并且第二類實(shí)體程序化單元是下實(shí)體程序化單元。
[0013] 在本發(fā)明的一范例實(shí)施例中,若第一實(shí)體程序化單元屬于第一類實(shí)體程序化單 元,所述數(shù)據(jù)存取方法還包括:結(jié)合第一驗(yàn)證碼與第二驗(yàn)證碼以獲得由N個比特組成的第 七驗(yàn)證碼,其中第一驗(yàn)證碼是由N個比特中的第1至第Μ個比特組成,并且第二驗(yàn)證碼是由 Ν個比特中的第Μ+1至第Ν個比特組成。
[0014] 在本發(fā)明的一范例實(shí)施例中,所述數(shù)據(jù)存取方法是使用低密度奇偶校驗(yàn)碼演算法 來編碼與解碼。
[0015] 本發(fā)明的一范例實(shí)施例提供一種存儲器控制電路單元,其用于控制可復(fù)寫式非易 失性存儲模塊,其中可復(fù)寫式非易失性存儲模塊包含多個實(shí)體抹除單元,其中每一實(shí)體抹 除單元具有多個實(shí)體程序化單元,所述存儲器控制電路單元包括主機(jī)接口、存儲器接口、存 儲器管理電路及錯誤校驗(yàn)與校正電路。主機(jī)接口用以電性連接至主機(jī)系統(tǒng)。存儲器接口用 以電性連接至可復(fù)寫式非易失性存儲模塊。存儲器管理電路電性連接至主機(jī)接口與存儲器 接口并且用以發(fā)送讀取指令序列以從可復(fù)寫式非易失性存儲模塊中讀取數(shù)據(jù),或是用以發(fā) 送寫入指令序列以寫入數(shù)據(jù)至可復(fù)寫式非易失性存儲模塊中。錯誤校驗(yàn)與校正電路電性連 接至存儲器管理電路。存儲器管理電路用以判斷所述實(shí)體程序化單元中用以儲存第一數(shù)據(jù) 的第一實(shí)體程序化單元屬于第一類實(shí)體程序化單元或第二類實(shí)體程序化單元。若第一實(shí)體 程序化單元屬于第一類實(shí)體程序化單元,存儲器管理電路還用以指示錯誤校驗(yàn)與校正電路 產(chǎn)生對應(yīng)于第一數(shù)據(jù)的第一驗(yàn)證碼與用以與第一驗(yàn)證碼結(jié)合的第二驗(yàn)證碼,并且存儲器管 理電路還用以發(fā)送寫入指令序列以將第一數(shù)據(jù)與第一驗(yàn)證碼寫入至第一實(shí)體程序化單元 中。若使用第一驗(yàn)證碼無法成功地解碼第一數(shù)據(jù),錯誤校驗(yàn)與校正電路還用以結(jié)合第二驗(yàn) 證碼與第一驗(yàn)證碼來解碼第一數(shù)據(jù)。
[0016] 在本發(fā)明的一范例實(shí)施例中,若第一實(shí)體程序化單元屬于第二類實(shí)體程序化單 元,所述存儲器管理電路還用以指示錯誤校驗(yàn)與校正電路產(chǎn)生對應(yīng)于第一數(shù)據(jù)的第三驗(yàn)證 碼,并且存儲器管理電路還用以發(fā)送寫入指令序列以將第一數(shù)據(jù)、第三驗(yàn)證碼及用以與第 五驗(yàn)證碼結(jié)合的第四驗(yàn)證碼寫入至第一實(shí)體程序化單元中,其中第五驗(yàn)證碼用以驗(yàn)證第二 數(shù)據(jù),第二數(shù)據(jù)與第五驗(yàn)證碼儲存于所述實(shí)體程序化單元中屬于第一類實(shí)體程序化單元的 第二實(shí)體程序化單元,并且第三驗(yàn)證碼的數(shù)據(jù)長度短于第一驗(yàn)證碼的數(shù)據(jù)長度。
[0017] 在本發(fā)明的一范例實(shí)施例中,若使用第五驗(yàn)證碼無法成功地解碼第二數(shù)據(jù),所述 錯誤校驗(yàn)與校正電路還用以結(jié)合第四驗(yàn)證碼與第五驗(yàn)證碼來解碼第二數(shù)據(jù)。
[0018] 在本發(fā)明的一范例實(shí)施例中,若使用第五驗(yàn)證碼無法成功地解碼第二數(shù)據(jù)時,所 述錯誤校驗(yàn)與校正電路結(jié)合第四驗(yàn)證碼與第五驗(yàn)證碼來解碼第二數(shù)據(jù)的操作包括:由存儲 器管理電路根據(jù)讀取指令,發(fā)送讀取指令序列以從第二實(shí)體程序化單元中讀取第二數(shù)據(jù)與 第五驗(yàn)證碼,其中第二實(shí)體程序化單元屬于第一類實(shí)體程序化單元;由錯誤校驗(yàn)與校正電 路根據(jù)第五驗(yàn)證碼對第二數(shù)據(jù)執(zhí)行第一解碼,并且判斷第一解碼是否產(chǎn)生有效碼字;以及 若第一解碼沒有產(chǎn)生有效碼字,由存儲器管理電路發(fā)送讀取指令序列以從第一實(shí)體程序化 單元讀取第四驗(yàn)證碼,結(jié)合第四驗(yàn)證碼與第五驗(yàn)證碼為第六驗(yàn)證碼,并且由錯誤校驗(yàn)與校 正電路根據(jù)第六驗(yàn)證碼對第二數(shù)據(jù)執(zhí)行第二解碼。
[0019] 在本發(fā)明的一范例實(shí)施例中,存儲器管理電路還用以發(fā)送寫入指令序列以將第二 驗(yàn)證碼寫入至所述實(shí)體程序化單元中屬于第二類實(shí)體程序化單元的第三實(shí)體程序化單元。
[0020] 在本發(fā)明的一范例實(shí)施例中,若使用第一驗(yàn)證碼無法成功地解碼第一數(shù)據(jù)時,所 述錯誤校驗(yàn)與校正電路結(jié)合第二驗(yàn)證碼與第一驗(yàn)證碼來解碼第一數(shù)據(jù)的操作包括:由存儲 器管理電路根據(jù)讀取指令,發(fā)送讀取指令序列以從第一實(shí)體程序化單元中讀取第一數(shù)據(jù)與 第一驗(yàn)證碼;由錯誤校驗(yàn)與校正電路根據(jù)第一驗(yàn)證碼對第一數(shù)據(jù)執(zhí)行第一解碼,并且判斷 第一解碼是否產(chǎn)生有效碼字;以及若第一解碼沒有產(chǎn)生有效碼字,由存儲器管理電路發(fā)送 讀取指令序列以讀取第二驗(yàn)證碼,由錯誤校驗(yàn)與校正電路結(jié)合第一驗(yàn)證碼與第二驗(yàn)證碼為 第七驗(yàn)證碼并且根據(jù)第七驗(yàn)證碼對第一數(shù)據(jù)執(zhí)行第二解碼。
[0021] 在本發(fā)明的一范例實(shí)施例中,若第一實(shí)體程序化單元屬于第二類實(shí)體程序化單 元,所述存儲器管理電路還用以結(jié)合第一驗(yàn)證碼與第二驗(yàn)證碼以獲得由N個比特組成的第 七驗(yàn)證碼,其中第一驗(yàn)證碼是由N個比特中的第1至第Μ個比特組成,并且第二驗(yàn)證碼是由 Ν個比特中的第Μ+1至第Ν個比特組成。
[0022] 在本發(fā)明的一范例實(shí)施例中,所述錯誤校驗(yàn)與校正電路是使用低密度奇偶校驗(yàn)碼 演算法來編碼與解碼。
[0023] 本發(fā)明的一范例實(shí)施例提供一種存儲器儲存裝置,其包括連接接口單元、可復(fù)寫 式非易失性存儲模塊及存儲器控制電路單元。連接接口單元用以電性連接至主機(jī)系統(tǒng)???復(fù)寫式非易失性存儲模塊包含多個實(shí)體抹除單元,其中每一所述實(shí)體抹除單元具有多個實(shí) 體程序化單元。存儲器控制電路單元電性連接至連接接口單元與可復(fù)寫式非易失性存儲模 塊。存儲器控制電路單元用以判斷所述實(shí)體程序化單元中用以儲存第一數(shù)據(jù)的第一實(shí)體程 序化單元屬于第一類實(shí)體程序化單元或第二類實(shí)體程序化單元。若第一實(shí)體程序化單元屬 于第一類實(shí)體程序化單元,存儲器控制電路單元還用以產(chǎn)生對應(yīng)于第一數(shù)據(jù)的第一驗(yàn)證碼 與用以與第一驗(yàn)證碼結(jié)合的第二驗(yàn)證碼,并且將第一數(shù)據(jù)與第一驗(yàn)證碼寫入至第一實(shí)體程 序化單元中。若使用第一驗(yàn)證碼無法成功地解碼第一數(shù)據(jù),存儲器控制電路單元還用以結(jié) 合第二驗(yàn)證碼與第一驗(yàn)證碼來解碼第一數(shù)據(jù)。
[0024] 在本發(fā)明的一范例實(shí)施例中,若第一實(shí)體程序化單元屬于第二類實(shí)體程序化單 元,所述存儲器控制電路單元還用以產(chǎn)生對應(yīng)于第一數(shù)據(jù)的第三驗(yàn)證碼,并且將第一數(shù)據(jù)、 第三驗(yàn)證碼及用以與第五驗(yàn)證碼結(jié)合的第四驗(yàn)證碼寫入至第一實(shí)體程序化單元中,其中第 五驗(yàn)證碼用以驗(yàn)證第二數(shù)據(jù),第二數(shù)據(jù)與第五驗(yàn)證碼儲存于所述實(shí)體程序化單元中屬于第 一類實(shí)體程序化單元的第二實(shí)體程序化單元,并且第三驗(yàn)證碼的數(shù)據(jù)長度短于第一驗(yàn)證碼 的數(shù)據(jù)長度。
[0025] 在本發(fā)明的一范例實(shí)施例中,若使用第五驗(yàn)證碼無法成功地解碼第二數(shù)據(jù),所述 存儲器控制電路單元還用以結(jié)合第四驗(yàn)證碼與第五驗(yàn)證碼來解碼第二數(shù)據(jù)。
[0026] 在本發(fā)明的一范例實(shí)施例中,若使用第五驗(yàn)證碼無法成功地解碼第二數(shù)據(jù),所述 存儲器控制電路單元結(jié)合第四驗(yàn)證碼與第五驗(yàn)證碼來解碼第二數(shù)據(jù)的操作包括:根據(jù)讀取 指令從第二實(shí)體程序化單元中讀取第二數(shù)據(jù)與第五驗(yàn)證碼;根據(jù)第五驗(yàn)證碼對第二數(shù)據(jù)執(zhí) 行第一解碼,并且判斷第一解碼是否產(chǎn)生有效碼字;以及若第一解碼沒有產(chǎn)生有效碼字,從 第一實(shí)體程序化單元讀取第四驗(yàn)證碼,結(jié)合第四驗(yàn)證碼與第五驗(yàn)證碼為第六驗(yàn)證碼,并且 根據(jù)第六驗(yàn)證碼對第二數(shù)據(jù)執(zhí)行第二解碼。
[0027] 在本發(fā)明的一范例實(shí)施例中,所述存儲器控制電路單元還用以將第二驗(yàn)證碼寫入 至所述實(shí)體程序化單元中屬于第二類實(shí)體程序化單元的第三實(shí)體程序化單元。
[0028] 在本發(fā)明的一范例實(shí)施例中,若使用第一驗(yàn)證碼無法成功地解碼第一數(shù)據(jù),所述 存儲器控制電路單元結(jié)合第二驗(yàn)證碼與第一驗(yàn)證碼來解碼第一數(shù)據(jù)的操作包括:根據(jù)讀取 指令從第一實(shí)體程序化單元中讀取第一數(shù)據(jù)與第一驗(yàn)證碼,其中第一實(shí)體程序化單元屬于 第一類實(shí)體程序化單元;根據(jù)第一驗(yàn)證碼對第一數(shù)據(jù)執(zhí)行第一解碼,并且判斷第一解碼是 否產(chǎn)生有效碼字;以及若第一迭代解碼沒有產(chǎn)生有效碼字,讀取第二驗(yàn)證碼,結(jié)合第一驗(yàn)證 碼與第二驗(yàn)證碼為第七驗(yàn)證碼,并且根據(jù)第七驗(yàn)證碼對第一數(shù)據(jù)執(zhí)行第二解碼。
[0029] 在本發(fā)明的一范例實(shí)施例中,若第一實(shí)體程序化單元是屬于第一類實(shí)體程序化單 元,存儲器控制電路單元還用以結(jié)合第一驗(yàn)證碼與第二驗(yàn)證碼以獲得由N個比特組成的第 七驗(yàn)證碼,其中第一驗(yàn)證碼是由N個比特中的第1至第Μ個比特組成,并且第二驗(yàn)證碼是由 Ν個比特中的第Μ+1至第Ν個比特組成。
[0030] 在本發(fā)明的一范例實(shí)施例中,所述存儲器控制電路單元是使用低密度奇偶校驗(yàn)碼 演算法來編碼與解碼。
[0031] 本發(fā)明的一范例實(shí)施例提供一種存儲器儲存裝置,其包括連接接口單元、可復(fù)寫 式非易失性存儲模塊及存儲器控制電路單元。連接接口單元用以電性連接至主機(jī)系統(tǒng)???復(fù)寫式非易失性存儲模塊包含多個實(shí)體抹除單元,其中每一所述實(shí)體抹除單元具有多個實(shí) 體程序化單元。存儲器控制電路單元電性連接至連接接口單元與可復(fù)寫式非易失性存儲模 塊。存儲器控制電路單元用以判斷所述實(shí)體程序化單元中用以儲存第一數(shù)據(jù)的第一實(shí)體程 序化單元的可靠度是屬于第一類可靠度或第二類可靠度。若第一實(shí)體程序化單元的可靠度 是屬于第一類可靠度,存儲器控制電路單元還用以產(chǎn)生對應(yīng)于第一數(shù)據(jù)的第一主驗(yàn)證碼, 其中第一主驗(yàn)證碼具有第一長度。若第一實(shí)體程序化單元的可靠度是屬于第二類可靠度, 存儲器控制電路單元還用以產(chǎn)生對應(yīng)于第一數(shù)據(jù)的第二主驗(yàn)證碼,其中第二主驗(yàn)證碼具有 第二長度,并且第一長度長于第二長度。
[0032] 在本發(fā)明的一范例實(shí)施例中,若第一實(shí)體程序化單元的可靠度是屬于第一類可靠 度,所述存儲器控制電路單元還用以產(chǎn)生對應(yīng)于第一數(shù)據(jù)的副驗(yàn)證碼,其中副驗(yàn)證碼用以 與第一主驗(yàn)證碼結(jié)合使用、提供解碼信息或者在預(yù)解碼程序中使用。
[0033] 在本發(fā)明的一范例實(shí)施例中,所述存儲器控制電路單元產(chǎn)生對應(yīng)于第一數(shù)據(jù)的副 驗(yàn)證碼的操作包括:獲得產(chǎn)生矩陣并且根據(jù)產(chǎn)生矩陣來產(chǎn)生預(yù)設(shè)驗(yàn)證碼,其中第一主驗(yàn)證 碼包含于預(yù)設(shè)驗(yàn)證碼中;以及根據(jù)預(yù)設(shè)驗(yàn)證碼與第一主驗(yàn)證碼來產(chǎn)生副驗(yàn)證碼。
[0034] 在本發(fā)明的一范例實(shí)施例中,所述第二類可靠度高于所述第一類可靠度。
[0035] 基于上述,根據(jù)欲儲存數(shù)據(jù)的實(shí)體程序化單元是屬于第一類實(shí)體程序化單元或第 二類實(shí)體程序化單元,本發(fā)明可選擇產(chǎn)生一個驗(yàn)證碼或可結(jié)合使用的多個驗(yàn)證碼,并且在 無法成功解碼時使用結(jié)合后的驗(yàn)證碼來解碼。藉此,可提升對于具有不同可靠度的實(shí)體程 序化單元的使用效率。
[0036] 為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合所附圖式 作詳細(xì)說明如下。
【附圖說明】
[0037] 圖1是根據(jù)本發(fā)明的一范例實(shí)施例所繪示的主機(jī)系統(tǒng)與存儲器儲存裝置的范例 不意圖;
[0038] 圖2是根據(jù)本發(fā)明的一范例實(shí)施例所繪示的電腦、輸入/輸出裝置與存儲器儲存 裝置的范例示意圖;
[0039] 圖3是根據(jù)本發(fā)明的一范例實(shí)施例所繪示的主機(jī)系統(tǒng)與存儲器儲存裝置的范例 不意圖;
[0040] 圖4是繪示圖1所示的存儲器儲存裝置的概要方塊圖;
[0041] 圖5是根據(jù)本發(fā)明的一范例實(shí)施例所繪示的可復(fù)寫式非易失性存儲模