欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

解碼方法、存儲(chǔ)器控制電路單元及存儲(chǔ)器存儲(chǔ)裝置與流程

文檔序號(hào):11261878閱讀:295來源:國(guó)知局
解碼方法、存儲(chǔ)器控制電路單元及存儲(chǔ)器存儲(chǔ)裝置與流程

本發(fā)明是有關(guān)于一種解碼方法,且特別是有關(guān)于一種用于可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊的數(shù)據(jù)解碼方法、存儲(chǔ)器控制電路單元及存儲(chǔ)器存儲(chǔ)裝置。



背景技術(shù):

數(shù)碼相機(jī)、移動(dòng)電話與mp3播放器在這幾年來的成長(zhǎng)十分迅速,使得消費(fèi)者對(duì)存儲(chǔ)媒體的需求也急速增加。由于可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊(例如,快速存儲(chǔ)器)具有數(shù)據(jù)非揮發(fā)性、省電、體積小,以及無機(jī)械結(jié)構(gòu)等特性,所以非常適合內(nèi)建于上述所舉例的各種便攜式多媒體裝置中。

一般來說,寫入至可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊的數(shù)據(jù)都會(huì)根據(jù)一個(gè)錯(cuò)誤更正碼來編碼,并且從可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊中所讀取的數(shù)據(jù)也會(huì)經(jīng)過對(duì)應(yīng)的程序來解碼。例如,若使用渦輪碼演算法通過迭代方式來實(shí)施錯(cuò)誤更正碼,數(shù)據(jù)會(huì)先被分割為子數(shù)據(jù)單元,每一個(gè)子數(shù)據(jù)單元會(huì)對(duì)應(yīng)一個(gè)子錯(cuò)誤更正碼,由此些子錯(cuò)誤更正碼組成對(duì)應(yīng)數(shù)據(jù)的錯(cuò)誤更正碼。然而,子錯(cuò)誤更正碼的更正能力有其上限。倘若依據(jù)子錯(cuò)誤更正碼解碼子數(shù)據(jù)單元時(shí)發(fā)生錯(cuò)誤校正(mis-correct)的情況,整體的校正能力會(huì)因此而下降?;?,如何提升錯(cuò)誤更正碼的校正能力以對(duì)所讀取的數(shù)據(jù)順利地進(jìn)行解碼而獲取原始數(shù)據(jù),是此領(lǐng)域技術(shù)人員所致力的目標(biāo)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供一種解碼方法、存儲(chǔ)器控制電路單元及存儲(chǔ)器存儲(chǔ)裝置,可提升對(duì)所讀取數(shù)據(jù)的解碼效能。

本發(fā)明的一范例實(shí)施例提出一種用于可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊的解碼方法。可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊具有多個(gè)存儲(chǔ)單元。本方法包括根據(jù)第一電壓從該些存儲(chǔ)單元中讀取數(shù)據(jù),其中數(shù)據(jù)包括使用者數(shù)據(jù)串與錯(cuò)誤檢查與校正碼組,使用者數(shù)據(jù)串包括多個(gè)子數(shù)據(jù)單元。本方法也包括以第一解 碼演算法對(duì)此些子數(shù)據(jù)單元至少部份進(jìn)行解碼以獲取多個(gè)已解碼子數(shù)據(jù)單元,其中此些已解碼子數(shù)據(jù)單元包括已校正位元,并且已校正位元的值從原始位元值被解碼成校正位元值。本方法還包括判斷已校正位元是否符合可靠度條件。本方法還包括倘若已校正位元符合可靠度條件,將已校正位元的值回復(fù)為原始位元值。

在本發(fā)明的一范例實(shí)施例中,上述的解碼方法還包括根據(jù)第二解碼演算法對(duì)包含該原始位元值的一數(shù)據(jù)串進(jìn)行解碼。

在本發(fā)明的一范例實(shí)施例中,上述的解碼方法還包括根據(jù)第一電壓決定預(yù)設(shè)區(qū)域。上述判斷已校正位元是否符合可靠度條件的步驟包括:判斷存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓是否落在預(yù)設(shè)區(qū)域之內(nèi);倘若存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓落在預(yù)設(shè)區(qū)域之內(nèi),判定已校正位元不符合可靠度條件;以及倘若存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓值非落在預(yù)設(shè)區(qū)域之內(nèi),判定已校正位元符合可靠度條件。

在本發(fā)明的一范例實(shí)施例中,上述倘若已校正位元符合可靠度條件,將已校正位元的值回復(fù)為原始位元值的步驟之后還包括:計(jì)數(shù)迭代次數(shù);判斷迭代次數(shù)是否達(dá)到預(yù)設(shè)次數(shù);以及倘若迭代次數(shù)非達(dá)到預(yù)設(shè)次數(shù),根據(jù)第一電壓重新決定預(yù)設(shè)區(qū)域。

在本發(fā)明的一范例實(shí)施例中,上述以第一解碼演算法對(duì)此些子數(shù)據(jù)單元至少部份進(jìn)行解碼以獲取此些已解碼子數(shù)據(jù)單元包括:根據(jù)第一解碼演算法獲取此些子數(shù)據(jù)單元中的錯(cuò)誤位元,其中錯(cuò)誤位元的值為原始位元值;調(diào)整錯(cuò)誤位元的值以取得已校正位元的值,其中已校正位元的值為校正位元值;以及根據(jù)已校正位元獲取此些已解碼子數(shù)據(jù)單元。

在本發(fā)明的一范例實(shí)施例中,上述倘若已校正位元符合可靠度條件,將已校正位元的值回復(fù)為原始位元值的步驟包括:將已校正位元的值回復(fù)為原始位元值,并且根據(jù)已校正位元的值更新此些已解碼子數(shù)據(jù)單元。

在本發(fā)明的一范例實(shí)施例中,上述的錯(cuò)誤檢查與校正碼組包括多個(gè)第一方向錯(cuò)誤校正碼與多個(gè)第二方向錯(cuò)誤校正碼,此些第一方向錯(cuò)誤校正碼是分別地對(duì)應(yīng)以矩陣形式排列的此些子數(shù)據(jù)單元之中的多個(gè)第一方向數(shù)據(jù)段,此些第二方向錯(cuò)誤校正碼是分別地對(duì)應(yīng)以矩陣形式排列的此些子數(shù)據(jù)單元之中的多個(gè)第二方向數(shù)據(jù)段。上述以第一解碼演算法對(duì)此些子數(shù)據(jù)單元至少部份 進(jìn)行解碼以獲取此些已解碼子數(shù)據(jù)單元包括:根據(jù)此些第一方向錯(cuò)誤校正碼解碼此些第一方向數(shù)據(jù)段以獲取此些已解碼子數(shù)據(jù)單元。

在本發(fā)明的一范例實(shí)施例中,上述的解碼方法還包括:根據(jù)此些第二方向錯(cuò)誤校正碼解碼此些第二方向數(shù)據(jù)段以獲取多個(gè)更新已解碼子數(shù)據(jù)單元;以及根據(jù)此些更新已解碼子數(shù)據(jù)單元獲取對(duì)應(yīng)使用者數(shù)據(jù)的已校正數(shù)據(jù)串。

在本發(fā)明的一范例實(shí)施例中,上述的此些第一方向數(shù)據(jù)段為以矩陣形式排列的此些子數(shù)據(jù)單元的多個(gè)行數(shù)據(jù)段,并且此些第二方向數(shù)據(jù)段為以矩陣形式排列的此些子數(shù)據(jù)單元的多個(gè)列數(shù)據(jù)段。

在本發(fā)明的一范例實(shí)施例中,上述的此些第一方向錯(cuò)誤校正碼對(duì)應(yīng)第一最大可校正錯(cuò)誤位元數(shù),此些第二方向錯(cuò)誤校正碼對(duì)應(yīng)第二最大可校正錯(cuò)誤位元數(shù),并且第一最大可校正錯(cuò)誤位元數(shù)小于第二最大可校正錯(cuò)誤位元數(shù)。

本發(fā)明的一范例實(shí)施例提出一種用于控制可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊的存儲(chǔ)器控制電路單元??蓮?fù)寫式非揮發(fā)性存儲(chǔ)器模塊具有多個(gè)存儲(chǔ)單元。本存儲(chǔ)器控制電路單元包括主機(jī)接口、存儲(chǔ)器接口、存儲(chǔ)器管理電路與錯(cuò)誤檢查與校正電路。主機(jī)接口電性連接至主機(jī)系統(tǒng)。存儲(chǔ)器接口電性連接至可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊。存儲(chǔ)器管理電路電性連接至主機(jī)接口與存儲(chǔ)器接口。錯(cuò)誤檢查與校正電路電性連接至存儲(chǔ)器管理電路。存儲(chǔ)器管理電路發(fā)送讀取指令序列以根據(jù)第一電壓從此些存儲(chǔ)單元中讀取數(shù)據(jù),其中此數(shù)據(jù)包括使用者數(shù)據(jù)串與錯(cuò)誤檢查與校正碼組,使用者數(shù)據(jù)串包括多個(gè)子數(shù)據(jù)單元。錯(cuò)誤檢查與校正電路以第一解碼演算法對(duì)此些子數(shù)據(jù)單元至少部份進(jìn)行解碼以獲取多個(gè)已解碼子數(shù)據(jù)單元,其中此些已解碼子數(shù)據(jù)單元包括已校正位元,并且已校正位元的值從原始位元值被解碼成校正位元值。錯(cuò)誤檢查與校正電路判斷已校正位元是否符合可靠度條件。倘若已校正位元符合可靠度條件,錯(cuò)誤檢查與校正電路將已校正位元的值回復(fù)為原始位元值。

在本發(fā)明的一范例實(shí)施例中,上述的錯(cuò)誤檢查與校正電路根據(jù)一第二解碼演算法對(duì)包含該原始位元值的一數(shù)據(jù)串進(jìn)行解碼。

在本發(fā)明的一范例實(shí)施例中,上述的錯(cuò)誤檢查與校正電路根據(jù)第一電壓決定預(yù)設(shè)區(qū)域。在上述判斷已校正位元是否符合可靠度條件的運(yùn)作中,上述的錯(cuò)誤檢查與校正電路判斷存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓是否落在預(yù)設(shè)區(qū)域之內(nèi)。倘若存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓落在預(yù)設(shè)區(qū)域之 內(nèi),上述的錯(cuò)誤檢查與校正電路判定已校正位元不符合可靠度條件。倘若存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓值非落在預(yù)設(shè)區(qū)域之內(nèi),上述的錯(cuò)誤檢查與校正電路判定已校正位元符合可靠度條件。

在本發(fā)明的一范例實(shí)施例中,上述的錯(cuò)誤檢查與校正電路計(jì)數(shù)迭代次數(shù)。上述的錯(cuò)誤檢查與校正電路判斷迭代次數(shù)是否達(dá)到預(yù)設(shè)次數(shù)。倘若迭代次數(shù)非達(dá)到預(yù)設(shè)次數(shù),上述的錯(cuò)誤檢查與校正電路根據(jù)第一電壓重新決定預(yù)設(shè)區(qū)域。

在本發(fā)明的一范例實(shí)施例中,在上述以第一解碼演算法對(duì)此些子數(shù)據(jù)單元至少部份進(jìn)行解碼以獲取此些已解碼子數(shù)據(jù)單元的運(yùn)作中,上述的錯(cuò)誤檢查與校正電路根據(jù)第一解碼演算法獲取此些子數(shù)據(jù)單元中的錯(cuò)誤位元,其中錯(cuò)誤位元的值為原始位元值。上述的錯(cuò)誤檢查與校正電路調(diào)整錯(cuò)誤位元的值以取得已校正位元的值,其中已校正位元的值為校正位元值。上述的錯(cuò)誤檢查與校正電路根據(jù)已校正位元獲取此些已解碼子數(shù)據(jù)單元。

在本發(fā)明的一范例實(shí)施例中,在上述倘若已校正位元符合可靠度條件,將已校正位元的值回復(fù)為原始位元值的運(yùn)作中,上述的錯(cuò)誤檢查與校正電路將已校正位元的值回復(fù)為原始位元值,并且根據(jù)已校正位元的值更新此些已解碼子數(shù)據(jù)單元。

在本發(fā)明的一范例實(shí)施例中,上述的錯(cuò)誤檢查與校正碼組包括多個(gè)第一方向錯(cuò)誤校正碼與多個(gè)第二方向錯(cuò)誤校正碼,此些第一方向錯(cuò)誤校正碼是分別地對(duì)應(yīng)以矩陣形式排列的此些子數(shù)據(jù)單元之中的多個(gè)第一方向數(shù)據(jù)段,此些第二方向錯(cuò)誤校正碼是分別地對(duì)應(yīng)以矩陣形式排列的此些子數(shù)據(jù)單元之中的多個(gè)第二方向數(shù)據(jù)段。在上述以第一解碼演算法對(duì)此些子數(shù)據(jù)單元至少部份進(jìn)行解碼以獲取此些已解碼子數(shù)據(jù)單元的運(yùn)作中,上述的錯(cuò)誤檢查與校正電路根據(jù)此些第一方向錯(cuò)誤校正碼解碼此些第一方向數(shù)據(jù)段以獲取此些已解碼子數(shù)據(jù)單元。

在本發(fā)明的一范例實(shí)施例中,上述的錯(cuò)誤檢查與校正電路根據(jù)此些第二方向錯(cuò)誤校正碼解碼此些第二方向數(shù)據(jù)段以獲取多個(gè)更新已解碼子數(shù)據(jù)單元。上述的錯(cuò)誤檢查與校正電路根據(jù)此些更新已解碼子數(shù)據(jù)單元獲取對(duì)應(yīng)使用者數(shù)據(jù)的已校正數(shù)據(jù)串。

在本發(fā)明的一范例實(shí)施例中,其中此些第一方向數(shù)據(jù)段為以矩陣形式排 列的此些子數(shù)據(jù)單元的多個(gè)行數(shù)據(jù)段,并且此些第二方向數(shù)據(jù)段為以矩陣形式排列的此些子數(shù)據(jù)單元的多個(gè)列數(shù)據(jù)段。

在本發(fā)明的一范例實(shí)施例中,其中此些第一方向錯(cuò)誤校正碼對(duì)應(yīng)第一最大可校正錯(cuò)誤位元數(shù),此些第二方向錯(cuò)誤校正碼對(duì)應(yīng)第二最大可校正錯(cuò)誤位元數(shù),并且第一最大可校正錯(cuò)誤位元數(shù)小于第二最大可校正錯(cuò)誤位元數(shù)。

本發(fā)明的一范例實(shí)施例提出一種存儲(chǔ)器存儲(chǔ)裝置。其包括連接接口單元、可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊與存儲(chǔ)器控制電路單元。連接接口單元電性連接至主機(jī)系統(tǒng)??蓮?fù)寫式非揮發(fā)性存儲(chǔ)器模塊具有多個(gè)存儲(chǔ)單元。存儲(chǔ)器控制電路單元電性連接至連接接口單元與可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊。存儲(chǔ)器控制電路單元發(fā)送讀取指令序列以根據(jù)第一電壓從此些存儲(chǔ)單元中讀取數(shù)據(jù),其中此數(shù)據(jù)包括使用者數(shù)據(jù)串與錯(cuò)誤檢查與校正碼組,使用者數(shù)據(jù)串包括多個(gè)子數(shù)據(jù)單元。存儲(chǔ)器控制電路單元以第一解碼演算法對(duì)此些子數(shù)據(jù)單元至少部份進(jìn)行解碼以獲取多個(gè)已解碼子數(shù)據(jù)單元,其中此些已解碼子數(shù)據(jù)單元包括已校正位元,并且已校正位元的值從原始位元值被解碼成校正位元值。存儲(chǔ)器控制電路單元判斷已校正位元是否符合可靠度條件。倘若已校正位元符合可靠度條件,存儲(chǔ)器控制電路單元將已校正位元的值回復(fù)為原始位元值。

在本發(fā)明的一范例實(shí)施例中,上述的存儲(chǔ)器控制電路單元根據(jù)一第二解碼演算法對(duì)包含該原始位元值的一數(shù)據(jù)串進(jìn)行解碼。

在本發(fā)明的一范例實(shí)施例中,上述的存儲(chǔ)器控制電路單元根據(jù)第一電壓決定預(yù)設(shè)區(qū)域。在上述判斷已校正位元是否符合可靠度條件的運(yùn)作中,上述的存儲(chǔ)器控制電路單元判斷存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓是否落在預(yù)設(shè)區(qū)域之內(nèi)。倘若存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓落在預(yù)設(shè)區(qū)域之內(nèi),上述的存儲(chǔ)器控制電路單元判定已校正位元不符合可靠度條件。倘若存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓值非落在預(yù)設(shè)區(qū)域之內(nèi),上述的存儲(chǔ)器控制電路單元判定已校正位元符合可靠度條件。

在本發(fā)明的一范例實(shí)施例中,上述的存儲(chǔ)器控制電路單元計(jì)數(shù)迭代次數(shù),并且判斷迭代次數(shù)是否達(dá)到預(yù)設(shè)次數(shù)。倘若迭代次數(shù)非達(dá)到預(yù)設(shè)次數(shù),上述的存儲(chǔ)器控制電路單元根據(jù)第一電壓重新決定預(yù)設(shè)區(qū)域。

在本發(fā)明的一范例實(shí)施例中,在上述以第一解碼演算法對(duì)此些子數(shù)據(jù)單 元至少部份進(jìn)行解碼以獲取此些已解碼子數(shù)據(jù)單元的運(yùn)作中,上述的存儲(chǔ)器控制電路單元根據(jù)第一解碼演算法獲取此些子數(shù)據(jù)單元中的錯(cuò)誤位元,其中錯(cuò)誤位元的值為原始位元值。上述的存儲(chǔ)器控制電路單元調(diào)整錯(cuò)誤位元的值以取得已校正位元的值,其中已校正位元的值為校正位元值。上述的存儲(chǔ)器控制電路單元根據(jù)已校正位元獲取此些已解碼子數(shù)據(jù)單元。

在本發(fā)明的一范例實(shí)施例中,在上述倘若已校正位元符合可靠度條件,將已校正位元的值回復(fù)為原始位元值的運(yùn)作中,上述的存儲(chǔ)器控制電路單元將已校正位元的值回復(fù)為原始位元值,并且根據(jù)已校正位元的值更新此些已解碼子數(shù)據(jù)單元。

在本發(fā)明的一范例實(shí)施例中,上述的錯(cuò)誤檢查與校正碼組包括多個(gè)第一方向錯(cuò)誤校正碼與多個(gè)第二方向錯(cuò)誤校正碼,此些第一方向錯(cuò)誤校正碼是分別地對(duì)應(yīng)以矩陣形式排列的此些子數(shù)據(jù)單元之中的多個(gè)第一方向數(shù)據(jù)段,此些第二方向錯(cuò)誤校正碼是分別地對(duì)應(yīng)以矩陣形式排列的此些子數(shù)據(jù)單元之中的多個(gè)第二方向數(shù)據(jù)段。在上述以第一解碼演算法對(duì)此些子數(shù)據(jù)單元至少部份進(jìn)行解碼以獲取此些已解碼子數(shù)據(jù)單元的運(yùn)作中,上述的存儲(chǔ)器控制電路單元根據(jù)此些第一方向錯(cuò)誤校正碼解碼此些第一方向數(shù)據(jù)段以獲取此些已解碼子數(shù)據(jù)單元。

在本發(fā)明的一范例實(shí)施例中,上述的存儲(chǔ)器控制電路單元根據(jù)此些第二方向錯(cuò)誤校正碼解碼此些第二方向數(shù)據(jù)段以獲取多個(gè)更新已解碼子數(shù)據(jù)單元。上述的存儲(chǔ)器控制電路單元根據(jù)此些更新已解碼子數(shù)據(jù)單元獲取對(duì)應(yīng)使用者數(shù)據(jù)的已校正數(shù)據(jù)串。

在本發(fā)明的一范例實(shí)施例中,其中此些第一方向數(shù)據(jù)段為以矩陣形式排列的此些子數(shù)據(jù)單元的多個(gè)行數(shù)據(jù)段,并且此些第二方向數(shù)據(jù)段為以矩陣形式排列的此些子數(shù)據(jù)單元的多個(gè)列數(shù)據(jù)段。

在本發(fā)明的一范例實(shí)施例中,其中此些第一方向錯(cuò)誤校正碼對(duì)應(yīng)第一最大可校正錯(cuò)誤位元數(shù),此些第二方向錯(cuò)誤校正碼對(duì)應(yīng)第二最大可校正錯(cuò)誤位元數(shù),并且第一最大可校正錯(cuò)誤位元數(shù)小于第二最大可校正錯(cuò)誤位元數(shù)。

基于上述,本發(fā)明所提供的解碼方法、存儲(chǔ)器控制電路單元與存儲(chǔ)器存儲(chǔ)裝置可以在解碼的過程中,通過檢查已解碼的數(shù)據(jù)中的已校正位元是否符合可靠度條件以判斷已校正位元的正確性。并且,倘若不符合可靠度條件, 會(huì)再次調(diào)整已校正位元的值,由此避免發(fā)生錯(cuò)誤校正的情況,進(jìn)而增進(jìn)對(duì)數(shù)據(jù)的整體校正能力,提升解碼效能。

為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合附圖作詳細(xì)說明如下。

附圖說明

圖1是根據(jù)一范例實(shí)施例所示出的主機(jī)系統(tǒng)、存儲(chǔ)器存儲(chǔ)裝置及輸入/輸出(i/o)裝置的示意圖;

圖2是根據(jù)另一范例實(shí)施例所示出的主機(jī)系統(tǒng)、存儲(chǔ)器存儲(chǔ)裝置及輸入/輸出(i/o)裝置的示意圖;

圖3是根據(jù)另一范例實(shí)施例所示出的主機(jī)系統(tǒng)與存儲(chǔ)器存儲(chǔ)裝置的示意圖;

圖4是根據(jù)一范例實(shí)施例所示出的主機(jī)系統(tǒng)與存儲(chǔ)器存儲(chǔ)裝置的概要方塊圖;

圖5是根據(jù)一范例實(shí)施例所示出的存儲(chǔ)器控制電路單元的概要方塊圖;

圖6與圖7是根據(jù)一范例實(shí)施例所示出的管理實(shí)體抹除單元的范例示意圖;

圖8是根據(jù)本發(fā)明的一范例實(shí)施例所示出的存儲(chǔ)單元的臨界電壓分布的示意圖;

圖9是根據(jù)本發(fā)明的另一范例實(shí)施例所示出的存儲(chǔ)單元的臨界電壓分布的示意圖;

圖10是根據(jù)本發(fā)明的又一范例實(shí)施例所示出的存儲(chǔ)單元的臨界電壓分布的示意圖;

圖11是根據(jù)一范例實(shí)施例所示出的錯(cuò)誤檢查與校正碼框的示意圖;

圖12是根據(jù)一范例實(shí)施例所示出的使用區(qū)塊渦輪碼進(jìn)行錯(cuò)誤校正編碼程序的示意圖;

圖13a與圖13b是根據(jù)一范例實(shí)施例所示出的設(shè)定預(yù)設(shè)區(qū)域的示意圖;

圖14是根據(jù)一范例實(shí)施例所示出的根據(jù)解碼結(jié)果調(diào)整已校正位元的示意圖;

圖15是根據(jù)一范例實(shí)施例所示出的解碼方法的流程圖。

附圖標(biāo)記說明:

10:存儲(chǔ)器存儲(chǔ)裝置;

11:主機(jī)系統(tǒng);

12:輸入/輸出(i/o)裝置;

110:系統(tǒng)匯流排;

111:處理器;

112:隨機(jī)存取存儲(chǔ)器(ram);

113:只讀存儲(chǔ)器(rom);

114:數(shù)據(jù)傳輸接口;

20:主機(jī)板;

201:u盤;

202:內(nèi)存卡;

203:硬盤;

204:無線存儲(chǔ)器存儲(chǔ)裝置;

205:全球定位系統(tǒng)模塊;

206:網(wǎng)絡(luò)接口卡;

207:無線傳輸裝置;

208:鍵盤;

209:屏幕;

210:喇叭;

30:存儲(chǔ)器存儲(chǔ)裝置;

31:主機(jī)系統(tǒng);

32:sd卡;

33:cf卡;

34:嵌入式存儲(chǔ)裝置;

341:嵌入式多媒體卡;

342:嵌入式多芯片封裝存儲(chǔ)裝置;

402:連接接口單元;

404:存儲(chǔ)器控制電路單元;

406:可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊;

410(0)~410(n)、820、920、930:實(shí)體抹除單元;

502:存儲(chǔ)器管理電路;

504:主機(jī)接口;

506:存儲(chǔ)器接口;

508:緩沖存儲(chǔ)器;

510:電源管理電路;

512:錯(cuò)誤檢查與校正電路;

602:數(shù)據(jù)區(qū);

604:閑置區(qū);

606:系統(tǒng)區(qū);

608:取代區(qū);

lba(0)~lba(h):邏輯單元;

lz(0)~lz(m):邏輯區(qū)域;

810、820、910~940、1010~1080:狀態(tài);

va~vg、vread、v1、v2:電壓;

eccf1:錯(cuò)誤檢查與校正碼框;

ecc1:錯(cuò)誤檢查與校正碼組;

ud1:數(shù)據(jù);

db1~db32:子數(shù)據(jù)單元;

rg1~rg4、1420(1)~1420(4):列數(shù)據(jù)段;

cg1~cg8、1410(1)~1410(n):行數(shù)據(jù)段;

bch1~bch12:錯(cuò)誤校正碼;

1200、1400:數(shù)據(jù)矩陣;

1310、1320:臨界電壓分布;

d1、d2:預(yù)設(shè)差值;

bread、b1、b2、b3、b4、1401、1402:位元;

r1、r2:預(yù)設(shè)區(qū)域;

s1501:從主機(jī)系統(tǒng)接收讀取指令的步驟;

s1503:下達(dá)讀取指令序列以根據(jù)一讀取電壓從多個(gè)存儲(chǔ)單元中讀取數(shù)據(jù),其中所讀取的數(shù)據(jù)包括使用者數(shù)據(jù)串與錯(cuò)誤檢查與校正碼組的步驟;

s1505:根據(jù)錯(cuò)誤檢查與校正碼組中的第一方向錯(cuò)誤校正碼解碼使用者數(shù)據(jù)串中的第一方向數(shù)據(jù)段的子數(shù)據(jù)單元以獲取已解碼子數(shù)據(jù)單元的步驟;

s1507:判斷已解碼子數(shù)據(jù)單元中是否存在已校正位元,其中已校正位元的值從原始位元值被解碼成校正位元值的步驟;

s1509:判斷存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓是否符合可靠度條件的步驟;

s1511:將已校正位元的值回復(fù)為原始位元值,并根據(jù)已校正位元的值更新已解碼子數(shù)據(jù)單元的步驟;

s1513:根據(jù)已解碼子數(shù)據(jù)單元獲取對(duì)應(yīng)使用者數(shù)據(jù)的已校正數(shù)據(jù)串的步驟。

具體實(shí)施方式

一般而言,存儲(chǔ)器存儲(chǔ)裝置(亦稱,存儲(chǔ)器存儲(chǔ)系統(tǒng))包括可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊與控制器(亦稱,控制電路單元)。通常存儲(chǔ)器存儲(chǔ)裝置是與主機(jī)系統(tǒng)一起使用,以使主機(jī)系統(tǒng)可將數(shù)據(jù)寫入至存儲(chǔ)器存儲(chǔ)裝置或從存儲(chǔ)器存儲(chǔ)裝置中讀取數(shù)據(jù)。

圖1是根據(jù)一范例實(shí)施例所示出的主機(jī)系統(tǒng)、存儲(chǔ)器存儲(chǔ)裝置及輸入/輸出(i/o)裝置的示意圖,且圖2是根據(jù)另一范例實(shí)施例所示出的主機(jī)系統(tǒng)、存儲(chǔ)器存儲(chǔ)裝置及輸入/輸出(i/o)裝置的示意圖。

請(qǐng)參照?qǐng)D1與圖2,主機(jī)系統(tǒng)11一般包括處理器111、隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram)112、只讀存儲(chǔ)器(readonlymemory,rom)113及數(shù)據(jù)傳輸接口114。處理器111、隨機(jī)存取存儲(chǔ)器112、只讀存儲(chǔ)器113及數(shù)據(jù)傳輸接口114皆電性連接至系統(tǒng)匯流排(systembus)110。

在本范例實(shí)施例中,主機(jī)系統(tǒng)11是通過數(shù)據(jù)傳輸接口114與存儲(chǔ)器存儲(chǔ)裝置10電性連接。例如,主機(jī)系統(tǒng)11可通過數(shù)據(jù)傳輸接口114將數(shù)據(jù)寫入至存儲(chǔ)器存儲(chǔ)裝置10或從存儲(chǔ)器存儲(chǔ)裝置10中讀取數(shù)據(jù)。此外,主機(jī)系統(tǒng)11是通過系統(tǒng)匯流排110與i/o裝置12電性連接。例如,主機(jī)系統(tǒng)11可通過系統(tǒng)匯流排110將輸出信號(hào)傳送至i/o裝置12或從i/o裝置12接收輸入信號(hào)。

在本范例實(shí)施例中,處理器111、隨機(jī)存取存儲(chǔ)器112、只讀存儲(chǔ)器113 及數(shù)據(jù)傳輸接口114是可設(shè)置在主機(jī)系統(tǒng)11的主機(jī)板20上。數(shù)據(jù)傳輸接口114的數(shù)目可以是一或多個(gè)。通過數(shù)據(jù)傳輸接口114,主機(jī)板20可以通過有線或無線方式電性連接至存儲(chǔ)器存儲(chǔ)裝置10。存儲(chǔ)器存儲(chǔ)裝置10可例如是u盤201、內(nèi)存卡202、硬盤(solidstatedrive,ssd)203或無線存儲(chǔ)器存儲(chǔ)裝置204。無線存儲(chǔ)器存儲(chǔ)裝置204可例如是近距離無線通訊(nearfieldcommunicationstorage,nfc)存儲(chǔ)器存儲(chǔ)裝置、無線保真(wifi)存儲(chǔ)器存儲(chǔ)裝置、藍(lán)牙(bluetooth)存儲(chǔ)器存儲(chǔ)裝置或低功耗藍(lán)牙存儲(chǔ)器存儲(chǔ)裝置(例如,ibeacon)等以各式無線通訊技術(shù)為基礎(chǔ)的存儲(chǔ)器存儲(chǔ)裝置。此外,主機(jī)板20也可以通過系統(tǒng)匯流排110電性連接至全球定位系統(tǒng)(globalpositioningsystem,gps)模塊205、網(wǎng)絡(luò)接口卡206、無線傳輸裝置207、鍵盤208、屏幕209、喇叭210等各式i/o裝置。例如,在一范例實(shí)施例中,主機(jī)板20可通過無線傳輸裝置207存取無線存儲(chǔ)器存儲(chǔ)裝置204。

在一范例實(shí)施例中,所提及的主機(jī)系統(tǒng)為可實(shí)質(zhì)地與存儲(chǔ)器存儲(chǔ)裝置配合以存儲(chǔ)數(shù)據(jù)的任意系統(tǒng)。雖然在上述范例實(shí)施例中,主機(jī)系統(tǒng)是以電腦系統(tǒng)來作說明,然而,圖3是根據(jù)另一范例實(shí)施例所示出的主機(jī)系統(tǒng)與存儲(chǔ)器存儲(chǔ)裝置的示意圖。請(qǐng)參照?qǐng)D3,在另一范例實(shí)施例中,主機(jī)系統(tǒng)31也可以是數(shù)碼相機(jī)、攝像機(jī)、通訊裝置、音頻播放器、視頻播放器或平板電腦等系統(tǒng),而存儲(chǔ)器存儲(chǔ)裝置30可為其所使用的sd卡32、cf卡33或嵌入式存儲(chǔ)裝置34等各式非揮發(fā)性存儲(chǔ)器存儲(chǔ)裝置。嵌入式存儲(chǔ)裝置34包括嵌入式多媒體卡(embeddedmmc,emmc)341及/或嵌入式多芯片封裝存儲(chǔ)裝置(embeddedmultichippackage,emcp)342等各類型將存儲(chǔ)器模塊直接電性連接于主機(jī)系統(tǒng)的基板上的嵌入式存儲(chǔ)裝置。

圖4是根據(jù)一范例實(shí)施例所示出的主機(jī)系統(tǒng)與存儲(chǔ)器存儲(chǔ)裝置的概要方塊圖。

請(qǐng)參照?qǐng)D4,存儲(chǔ)器存儲(chǔ)裝置10包括連接接口單元402、存儲(chǔ)器控制電路單元404與可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406。

在本范例實(shí)施例中,連接接口單元402是相容于序列先進(jìn)附件(serialadvancedtechnologyattachment,sata)標(biāo)準(zhǔn)。然而,必須了解的是,本發(fā)明不限于此,連接接口單元402也可以是符合并列先進(jìn)附件(paralleladvancedtechnologyattachment,pata)標(biāo)準(zhǔn)、電氣和電子工程師協(xié)會(huì)(instituteof electricalandelectronicengineers,ieee)1394標(biāo)準(zhǔn)、高速周邊零件連接接口(peripheralcomponentinterconnectexpress,pciexpress)標(biāo)準(zhǔn)、通用序列匯流排(universalserialbus,usb)標(biāo)準(zhǔn)、超高速一代(ultrahighspeed-i,uhs-i)接口標(biāo)準(zhǔn)、超高速二代(ultrahighspeed-ii,uhs-ii)接口標(biāo)準(zhǔn)、安全數(shù)字(securedigital,sd)接口標(biāo)準(zhǔn)、記憶棒(memorystick,ms)接口標(biāo)準(zhǔn)、多芯片封裝(multi-chippackage)接口標(biāo)準(zhǔn)、多媒體存儲(chǔ)卡(multimediacard,mmc)接口標(biāo)準(zhǔn)、嵌入式多媒體存儲(chǔ)卡(embeddedmultimediacard,emmc)接口標(biāo)準(zhǔn)、通用快速存儲(chǔ)器(universalflashstorage,ufs)接口標(biāo)準(zhǔn)、嵌入式多芯片封裝(embeddedmultichippackage,emcp)接口標(biāo)準(zhǔn)、小型快速(compactflash,cf)接口標(biāo)準(zhǔn)、整合式驅(qū)動(dòng)電子接口(integrateddeviceelectronics,ide)標(biāo)準(zhǔn)或其他適合的標(biāo)準(zhǔn)。在本范例實(shí)施例中,連接接口單元402可與存儲(chǔ)器控制電路單元404封裝在一個(gè)芯片中,或者連接接口單元402是布設(shè)于一包含存儲(chǔ)器控制電路單元的芯片外。

存儲(chǔ)器控制電路單元404用以執(zhí)行以硬件或軟件實(shí)作的多個(gè)邏輯門或控制指令,并且根據(jù)主機(jī)系統(tǒng)11的指令在可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中進(jìn)行數(shù)據(jù)的寫入、讀取與抹除等運(yùn)作。

可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406是電性連接至存儲(chǔ)器控制電路單元404,并且用以存儲(chǔ)主機(jī)系統(tǒng)11所寫入的數(shù)據(jù)。可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406具有實(shí)體抹除單元410(0)~410(n)。例如,實(shí)體抹除單元410(0)~410(n)可屬于同一個(gè)存儲(chǔ)器晶粒(die)或者屬于不同的存儲(chǔ)器晶粒。每一實(shí)體抹除單元分別具有復(fù)數(shù)個(gè)實(shí)體程序化單元,其中屬于同一個(gè)實(shí)體抹除單元的實(shí)體程序化單元可被獨(dú)立地寫入且被同時(shí)地抹除。然而,必須了解的是,本發(fā)明不限于此,每一實(shí)體抹除單元是可由64個(gè)實(shí)體程序化單元、256個(gè)實(shí)體程序化單元或其他任意個(gè)實(shí)體程序化單元所組成。

在本范例實(shí)施例中,可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中的存儲(chǔ)單元會(huì)構(gòu)成多個(gè)實(shí)體程序化單元,并且此些實(shí)體程序化單元會(huì)構(gòu)成多個(gè)實(shí)體抹除單元。特別是,在同一條字線上的存儲(chǔ)單元會(huì)構(gòu)成一或多個(gè)實(shí)體程序化單元。

更詳細(xì)來說,實(shí)體抹除單元為抹除的最小單位。亦即,每一實(shí)體抹除單元含有最小數(shù)目的一并被抹除的存儲(chǔ)單元。實(shí)體程序化單元為程序化的最小單元。即,實(shí)體程序化單元為寫入數(shù)據(jù)的最小單元。每一實(shí)體程序化單元通 常包括數(shù)據(jù)位元區(qū)與冗余位元區(qū)。數(shù)據(jù)位元區(qū)包含多個(gè)實(shí)體存取位址用以存儲(chǔ)使用者的數(shù)據(jù),而冗余位元區(qū)用以存儲(chǔ)系統(tǒng)的數(shù)據(jù)(例如,控制信息與錯(cuò)誤更正碼)。在本范例實(shí)施例中,每一個(gè)實(shí)體程序化單元的數(shù)據(jù)位元區(qū)中會(huì)包含8個(gè)實(shí)體存取位址,且一個(gè)實(shí)體存取位址的大小為512位元組(byte)。然而,在其他范例實(shí)施例中,數(shù)據(jù)位元區(qū)中也可包含數(shù)目更多或更少的實(shí)體存取位址,本發(fā)明并不限制實(shí)體存取位址的大小以及個(gè)數(shù)。例如,在一范例實(shí)施例中,實(shí)體抹除單元為實(shí)體區(qū)塊,并且實(shí)體程序化單元為實(shí)體頁(yè)面或?qū)嶓w扇區(qū),但本發(fā)明不以此為限。

在本范例實(shí)施例中,可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406為多階存儲(chǔ)單元(multilevelcell,mlc)nand型快速存儲(chǔ)器模塊(即,一個(gè)存儲(chǔ)單元中可存儲(chǔ)2個(gè)數(shù)據(jù)位元的快速存儲(chǔ)器模塊)。然而,本發(fā)明不限于此,可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406也可是單階存儲(chǔ)單元(singlelevelcell,slc)nand型快速存儲(chǔ)器模塊(即,一個(gè)存儲(chǔ)單元中可存儲(chǔ)1個(gè)數(shù)據(jù)位元的快速存儲(chǔ)器模塊)、復(fù)數(shù)階存儲(chǔ)單元(trinarylevelcell,tlc)nand型快速存儲(chǔ)器模塊(即,一個(gè)存儲(chǔ)單元中可存儲(chǔ)3個(gè)數(shù)據(jù)位元的快速存儲(chǔ)器模塊)、其他快速存儲(chǔ)器模塊或其他具有相同特性的存儲(chǔ)器模塊。

在可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中的每一個(gè)存儲(chǔ)單元可通過改變存儲(chǔ)單元的臨界電壓(thresholdvoltage)來存儲(chǔ)一個(gè)或更多的位元(或,位(digit))。特別是,在每一個(gè)存儲(chǔ)單元中,控制門與通道之間提供了一個(gè)電荷存儲(chǔ)層。通過施加一個(gè)寫入電壓到控制門來改變電荷存儲(chǔ)層中的電子數(shù)量,可進(jìn)一步改變存儲(chǔ)單元的電壓。這個(gè)改變電壓的過程也被稱為“將數(shù)據(jù)寫入存儲(chǔ)單元”或是“程序化存儲(chǔ)單元”。根據(jù)臨界電壓的改變,可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中的每一個(gè)存儲(chǔ)單元可具有多種存儲(chǔ)狀態(tài)(以下也稱為狀態(tài))。此外,通過施加讀取電壓可讀取出存儲(chǔ)單元所屬的存儲(chǔ)狀態(tài),進(jìn)而獲得存儲(chǔ)在此存儲(chǔ)單元中的數(shù)據(jù)。在本范例實(shí)施例中,存儲(chǔ)單元的電荷存儲(chǔ)層也可以是指浮動(dòng)門(floatinggate)或電荷捕獲層(chargetrappinglayer)。

圖5是根據(jù)一范例實(shí)施例所示出的存儲(chǔ)器控制電路單元的概要方塊圖。

請(qǐng)參照?qǐng)D5,存儲(chǔ)器控制電路單元404包括存儲(chǔ)器管理電路502、主機(jī)接口504與存儲(chǔ)器接口506、緩沖存儲(chǔ)器508、電源管理電路510與錯(cuò)誤檢查與校正電路512。

存儲(chǔ)器管理電路502用以控制存儲(chǔ)器控制電路單元404的整體運(yùn)作。具體來說,存儲(chǔ)器管理電路502具有多個(gè)控制指令,并且在存儲(chǔ)器存儲(chǔ)裝置10運(yùn)作時(shí),此些控制指令會(huì)被執(zhí)行以進(jìn)行數(shù)據(jù)的寫入、讀取與抹除等運(yùn)作。

在本范例實(shí)施例中,存儲(chǔ)器管理電路502的控制指令是以軟件來實(shí)作。例如,存儲(chǔ)器管理電路502具有微處理器單元(未示出)與只讀存儲(chǔ)器(未示出),并且此些控制指令是被燒錄至此只讀存儲(chǔ)器中。當(dāng)存儲(chǔ)器存儲(chǔ)裝置10運(yùn)作時(shí),此些控制指令會(huì)由微處理器單元來執(zhí)行以進(jìn)行數(shù)據(jù)的寫入、讀取與抹除等運(yùn)作。

在本發(fā)明另一范例實(shí)施例中,存儲(chǔ)器管理電路502的控制指令也可以程序碼型式存儲(chǔ)于可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406的特定區(qū)域(例如,存儲(chǔ)器模塊中專用于存放系統(tǒng)數(shù)據(jù)的系統(tǒng)區(qū))中。此外,存儲(chǔ)器管理電路502具有微處理器單元(未示出)、只讀存儲(chǔ)器(未示出)及隨機(jī)存取存儲(chǔ)器(未示出)。特別是,此只讀存儲(chǔ)器具有驅(qū)動(dòng)碼,并且當(dāng)存儲(chǔ)器控制電路單元404被致能時(shí),微處理器單元會(huì)先執(zhí)行此驅(qū)動(dòng)碼段來將存儲(chǔ)于可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中的控制指令載入至存儲(chǔ)器管理電路502的隨機(jī)存取存儲(chǔ)器中。之后,微處理器單元會(huì)運(yùn)轉(zhuǎn)此些控制指令以進(jìn)行數(shù)據(jù)的寫入、讀取與抹除等運(yùn)作。

此外,在本發(fā)明另一范例實(shí)施例中,存儲(chǔ)器管理電路502的控制指令也可以一硬件來實(shí)作。例如,存儲(chǔ)器管理電路502包括微控制器、存儲(chǔ)單元管理電路、存儲(chǔ)器寫入電路、存儲(chǔ)器讀取電路、存儲(chǔ)器抹除電路與數(shù)據(jù)處理電路。存儲(chǔ)單元管理電路、存儲(chǔ)器寫入電路、存儲(chǔ)器讀取電路、存儲(chǔ)器抹除電路與數(shù)據(jù)處理電路是電性連接至微控制器。其中,存儲(chǔ)單元管理電路用以管理可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406的實(shí)體抹除單元;存儲(chǔ)器寫入電路用以對(duì)可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406下達(dá)寫入指令以將數(shù)據(jù)寫入至可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中;存儲(chǔ)器讀取電路用以對(duì)可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406下達(dá)讀取指令以從可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中讀取數(shù)據(jù);存儲(chǔ)器抹除電路用以對(duì)可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406下達(dá)抹除指令以將數(shù)據(jù)從可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中抹除;而數(shù)據(jù)處理電路用以處理欲寫入至可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406的數(shù)據(jù)以及從可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中讀取的數(shù)據(jù)。

主機(jī)接口504是電性連接至存儲(chǔ)器管理電路502并且用以電性連接至連接接口單元402,以接收與識(shí)別主機(jī)系統(tǒng)11所傳送的指令與數(shù)據(jù)。也就是說,主機(jī)系統(tǒng)11所傳送的指令與數(shù)據(jù)會(huì)通過主機(jī)接口504來傳送至存儲(chǔ)器管理電路502。在本范例實(shí)施例中,主機(jī)接口504是相容于sata標(biāo)準(zhǔn)。然而,必須了解的是本發(fā)明不限于此,主機(jī)接口504也可以是相容于pata標(biāo)準(zhǔn)、ieee1394標(biāo)準(zhǔn)、pciexpress標(biāo)準(zhǔn)、usb標(biāo)準(zhǔn)、uhs-i接口標(biāo)準(zhǔn)、uhs-ii接口標(biāo)準(zhǔn)、sd標(biāo)準(zhǔn)、ms標(biāo)準(zhǔn)、mmc標(biāo)準(zhǔn)、cf標(biāo)準(zhǔn)、ide標(biāo)準(zhǔn)或其他適合的數(shù)據(jù)傳輸標(biāo)準(zhǔn)。

存儲(chǔ)器接口506是電性連接至存儲(chǔ)器管理電路502并且用以存取可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406。也就是說,欲寫入至可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406的數(shù)據(jù)會(huì)通過存儲(chǔ)器接口506轉(zhuǎn)換為可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406所能接受的格式。

緩沖存儲(chǔ)器508是電性連接至存儲(chǔ)器管理電路502并且用以暫存來自于主機(jī)系統(tǒng)11的數(shù)據(jù)與指令或來自于可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406的數(shù)據(jù)。

電源管理電路510是電性連接至存儲(chǔ)器管理電路502并且用以控制存儲(chǔ)器存儲(chǔ)裝置10的電源。

錯(cuò)誤檢查與校正電路512是電性連接至存儲(chǔ)器管理電路502并且用以執(zhí)行錯(cuò)誤檢查與校正程序以確保數(shù)據(jù)的正確性。具體來說,當(dāng)存儲(chǔ)器管理電路502從主機(jī)系統(tǒng)11中接收到寫入指令時(shí),錯(cuò)誤檢查與校正電路512會(huì)為對(duì)應(yīng)此寫入指令的數(shù)據(jù)產(chǎn)生對(duì)應(yīng)的錯(cuò)誤檢查與校正碼(errorcheckingandcorrectingcode,ecccode),并且存儲(chǔ)器管理電路502會(huì)將對(duì)應(yīng)此寫入指令的數(shù)據(jù)與對(duì)應(yīng)的錯(cuò)誤檢查與校正碼寫入至可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中。之后,當(dāng)存儲(chǔ)器管理電路502從可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中讀取數(shù)據(jù)時(shí)會(huì)同時(shí)讀取此數(shù)據(jù)對(duì)應(yīng)的錯(cuò)誤檢查與校正碼,并且錯(cuò)誤檢查與校正電路512會(huì)根據(jù)此錯(cuò)誤檢查與校正碼對(duì)所讀取的數(shù)據(jù)執(zhí)行錯(cuò)誤檢查與校正程序。

圖6與圖7是根據(jù)一范例實(shí)施例所示出的管理實(shí)體抹除單元的范例示意圖。

必須了解的是,在此描述可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406的實(shí)體抹除 單元的運(yùn)作時(shí),以“提取”、“分組”、“劃分”、“關(guān)聯(lián)”等詞來操作實(shí)體抹除單元是邏輯上的概念。也就是說,可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊的實(shí)體抹除單元的實(shí)際位置并未更動(dòng),而是邏輯上對(duì)可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊的實(shí)體抹除單元進(jìn)行操作。

請(qǐng)參照?qǐng)D6,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)將實(shí)體抹除單元410(0)~410(n)邏輯地分組為數(shù)據(jù)區(qū)602、閑置區(qū)604、系統(tǒng)區(qū)606與取代區(qū)608。

邏輯上屬于數(shù)據(jù)區(qū)602與閑置區(qū)604的實(shí)體抹除單元是用以存儲(chǔ)來自于主機(jī)系統(tǒng)11的數(shù)據(jù)。具體來說,數(shù)據(jù)區(qū)602的實(shí)體抹除單元是被視為已存儲(chǔ)數(shù)據(jù)的實(shí)體抹除單元,而閑置區(qū)604的實(shí)體抹除單元是用以替換數(shù)據(jù)區(qū)602的實(shí)體抹除單元。也就是說,當(dāng)從主機(jī)系統(tǒng)11接收到寫入指令與欲寫入的數(shù)據(jù)時(shí),存儲(chǔ)器管理電路502會(huì)從閑置區(qū)604中提取實(shí)體抹除單元,并且將數(shù)據(jù)寫入至所提取的實(shí)體抹除單元中,以替換數(shù)據(jù)區(qū)602的實(shí)體抹除單元。

邏輯上屬于系統(tǒng)區(qū)606的實(shí)體抹除單元是用以記錄系統(tǒng)數(shù)據(jù)。例如,系統(tǒng)數(shù)據(jù)包括關(guān)于可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊的制造商與型號(hào)、可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊的實(shí)體抹除單元數(shù)、每一實(shí)體抹除單元的實(shí)體程序化單元數(shù)等。

邏輯上屬于取代區(qū)608中的實(shí)體抹除單元是用于壞實(shí)體抹除單元取代程序,以取代損壞的實(shí)體抹除單元。具體來說,倘若取代區(qū)608中仍存有正常的實(shí)體抹除單元并且數(shù)據(jù)區(qū)602的實(shí)體抹除單元損壞時(shí),存儲(chǔ)器管理電路502會(huì)從取代區(qū)608中提取正常的實(shí)體抹除單元來更換損壞的實(shí)體抹除單元。

特別是,數(shù)據(jù)區(qū)602、閑置區(qū)604、系統(tǒng)區(qū)606與取代區(qū)608的實(shí)體抹除單元的數(shù)量會(huì)根據(jù)不同的存儲(chǔ)器規(guī)格而有所不同。此外,必須了解的是,在存儲(chǔ)器存儲(chǔ)裝置10的運(yùn)作中,實(shí)體抹除單元關(guān)聯(lián)至數(shù)據(jù)區(qū)602、閑置區(qū)604、系統(tǒng)區(qū)606與取代區(qū)608的分組關(guān)系會(huì)動(dòng)態(tài)地變動(dòng)。例如,當(dāng)閑置區(qū)604中的實(shí)體抹除單元損壞而被取代區(qū)608的實(shí)體抹除單元取代時(shí),則原本取代區(qū)608的實(shí)體抹除單元會(huì)被關(guān)聯(lián)至閑置區(qū)604。

請(qǐng)參照?qǐng)D7,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)配置邏輯單元lba(0)~lba(h)以映射數(shù)據(jù)區(qū)602的實(shí)體抹除單元,其中每一邏輯單元具有多個(gè)邏輯子單元以映射對(duì)應(yīng)的實(shí)體抹除單元的實(shí)體程序化單元。并 且,當(dāng)主機(jī)系統(tǒng)11欲寫入數(shù)據(jù)至邏輯單元或更新存儲(chǔ)于邏輯單元中的數(shù)據(jù)時(shí),存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)從閑置區(qū)604中提取一個(gè)實(shí)體抹除單元來寫入數(shù)據(jù),以輪替數(shù)據(jù)區(qū)602的實(shí)體抹除單元。在本范例實(shí)施例中,邏輯子單元可以是邏輯頁(yè)面或邏輯扇區(qū)。

為了識(shí)別每個(gè)邏輯單元的數(shù)據(jù)被存儲(chǔ)在哪個(gè)實(shí)體抹除單元,在本范例實(shí)施例中,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)記錄邏輯單元與實(shí)體抹除單元之間的映射。并且,當(dāng)主機(jī)系統(tǒng)11欲在邏輯子單元中存取數(shù)據(jù)時(shí),存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)確認(rèn)此邏輯子單元所屬的邏輯單元,并且在此邏輯單元所映射的實(shí)體抹除單元中來存取數(shù)據(jù)。例如,在本范例實(shí)施例中,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)在可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中存儲(chǔ)邏輯位址-實(shí)體位址映射表來記錄每一邏輯單元所映射的實(shí)體抹除單元,并且當(dāng)欲存取數(shù)據(jù)時(shí)存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)將邏輯地址-實(shí)體位址映射表載入至緩沖存儲(chǔ)器508來維護(hù)。

值得一提的是,由于緩沖存儲(chǔ)器508的容量有限無法存儲(chǔ)記錄所有邏輯單元的映射關(guān)系的映射表,因此,在本范例實(shí)施例中,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)將邏輯單元lba(0)~lba(h)分組為多個(gè)邏輯區(qū)域lz(0)~lz(m),并且為每一邏輯區(qū)域配置一個(gè)邏輯位址-實(shí)體位址映射表。特別是,當(dāng)存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)欲更新某個(gè)邏輯單元的映射時(shí),對(duì)應(yīng)此邏輯單元所屬的邏輯區(qū)域的邏輯位址-實(shí)體位址映射表會(huì)被載入至緩沖存儲(chǔ)器508來被更新。

圖8是根據(jù)本發(fā)明的一范例實(shí)施例所示出的存儲(chǔ)單元的臨界電壓分布的示意圖。

請(qǐng)參照?qǐng)D8,在將數(shù)據(jù)寫入至多個(gè)存儲(chǔ)單元后,此些存儲(chǔ)單元的臨界電壓分布包括兩個(gè)狀態(tài)810和820。舉例來說,具有較低的臨界電壓峰值的狀態(tài)810用以表示數(shù)據(jù)“1”,而具有較高的臨界電壓峰值的狀態(tài)820用以表示數(shù)據(jù)“0”。通過施加介于狀態(tài)810和820之間的讀取電壓va至此些存儲(chǔ)單元,可獲得存儲(chǔ)于此些存儲(chǔ)單元的數(shù)據(jù)。例如,反應(yīng)于所施加的讀取電壓va,臨界電壓低于所施加的讀取電壓va的存儲(chǔ)單元可被識(shí)別為存儲(chǔ)數(shù)據(jù)“1”,而臨界電壓高于所施加的讀取電壓va的另一存儲(chǔ)單元可被識(shí)別為存儲(chǔ)數(shù)據(jù) “0”。然而,在另一范例實(shí)施例中,狀態(tài)810也可用以表示數(shù)據(jù)“0”,并且狀態(tài)820也可用以表示數(shù)據(jù)“1”。

在本范例實(shí)施例中,包括兩個(gè)狀態(tài)(例如,狀態(tài)810和狀態(tài)820)的存儲(chǔ)單元也可視為是被操作于2階存儲(chǔ)單元(two-levelcell,2lc)模式(或稱為2lc程序化模式)。操作于2階存儲(chǔ)單元模式的一個(gè)存儲(chǔ)單元用以存儲(chǔ)一個(gè)位元的數(shù)據(jù)(例如,數(shù)據(jù)“1”或數(shù)據(jù)“0”)。

圖9是根據(jù)本發(fā)明的另一范例實(shí)施例所示出的存儲(chǔ)單元的臨界電壓分布的示意圖。

請(qǐng)參照?qǐng)D9,在將數(shù)據(jù)寫入至多個(gè)存儲(chǔ)單元,此些存儲(chǔ)單元的臨界電壓分布包括四個(gè)狀態(tài)910至940。狀態(tài)910至940分別用以表示數(shù)據(jù)“11”、“10”、“00”以及“01”。通過施加介于狀態(tài)910至940之間的不同的讀取電壓va~vc至此些存儲(chǔ)單元,可獲得存儲(chǔ)在此些存儲(chǔ)單元中的數(shù)據(jù)。

在本范例實(shí)施例中,包括四種狀態(tài)的存儲(chǔ)單元也可視為是被操作于4階存儲(chǔ)單元(four-levelcell,4lc)模式(或稱為4lc程序化模式)。操作于4階存儲(chǔ)單元模式的一個(gè)存儲(chǔ)單元用以存儲(chǔ)兩個(gè)位元的數(shù)據(jù)。然而,狀態(tài)910至940中的每一者所代表的數(shù)據(jù)可能取決于不同的設(shè)計(jì)而有所不同。

圖10是根據(jù)本發(fā)明的又一范例實(shí)施例所示出的存儲(chǔ)單元的臨界電壓分布的示意圖。

請(qǐng)參照?qǐng)D10,數(shù)據(jù)寫入多個(gè)存儲(chǔ)單元后,此些存儲(chǔ)單元的臨界電壓分布包括八個(gè)狀態(tài)1010至1080。狀態(tài)1010至1080分別表示數(shù)據(jù)“111”、“110”、“100”、“101”、“001”、“000”、“010”以及“011”。通過施加介于狀態(tài)1010至1080之間的不同的讀取電壓va~vg至此些存儲(chǔ)單元,可獲得存儲(chǔ)在此些存儲(chǔ)單元中的數(shù)據(jù)。然而,狀態(tài)1010至1080中的每一者所代表的數(shù)據(jù)可能取決于不同的設(shè)計(jì)而有所不同。

在本范例實(shí)施例中,包括八個(gè)狀態(tài)的存儲(chǔ)單元也可視為是被操作于8階存儲(chǔ)單元(eight-levelcell,8lc)模式(或稱為8lc程序化模式)。操作于8階存儲(chǔ)單元模式的一個(gè)存儲(chǔ)單元用以存儲(chǔ)三個(gè)位元的數(shù)據(jù)。

值得注意的是,在另一范例實(shí)施例中,每一個(gè)存儲(chǔ)單元的狀態(tài)的數(shù)量也可以是三、五、六、七或者更多,本發(fā)明不加以限制。換言之,每一個(gè)存儲(chǔ)單元皆可被操作于一個(gè)特定階(specific-level)存儲(chǔ)單元模式。其中,此特定 階存儲(chǔ)單元模式可以是指2階存儲(chǔ)單元模式、3階存儲(chǔ)單元模式、4階存儲(chǔ)單元模式、5階存儲(chǔ)單元模式、6階存儲(chǔ)單元模式等等。在本范例實(shí)施例中,若某一個(gè)存儲(chǔ)單元操作于m階存儲(chǔ)單元(m-levelcell,mlc)模式,則表示此存儲(chǔ)單元包括m個(gè)狀態(tài)(或,m個(gè)峰)。例如,m是大于1的正整數(shù)。

另外,在本范例實(shí)施例中,當(dāng)存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)接收到數(shù)據(jù)時(shí),存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)先將數(shù)據(jù)分割為多個(gè)子數(shù)據(jù)單元,之后錯(cuò)誤檢查與校正電路512再對(duì)這些子數(shù)據(jù)單元進(jìn)行錯(cuò)誤校正編碼程序以產(chǎn)生對(duì)應(yīng)的錯(cuò)誤校正碼,并且將這些子數(shù)據(jù)單元與此些錯(cuò)誤校正碼編碼形成為錯(cuò)誤檢查與校正碼框。例如,每個(gè)錯(cuò)誤檢查與校正碼框內(nèi)的數(shù)據(jù)(也稱為使用者數(shù)據(jù))的長(zhǎng)度可以是4仟位元組(kilobyte,kb)、2kb、1kb或其他大小。

在本范例實(shí)施例中,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)以錯(cuò)誤檢查與校正碼框?yàn)閱挝粊韺?duì)數(shù)據(jù)解碼以讀取數(shù)據(jù)。舉例來說,假設(shè)主機(jī)系統(tǒng)11發(fā)送讀取指令給存儲(chǔ)器存儲(chǔ)裝置10,其中讀取指令指示從某個(gè)邏輯位址中讀取數(shù)據(jù),并且此欲讀取的數(shù)據(jù)被編碼至1個(gè)錯(cuò)誤檢查與校正碼框。在接收到此讀取指令后,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)發(fā)送讀取指令序列至可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406以從映射此邏輯位址的實(shí)體程序化單元中讀取數(shù)據(jù),從所讀取的數(shù)據(jù)中獲取使用者數(shù)據(jù)串,對(duì)此使用者數(shù)據(jù)串執(zhí)行錯(cuò)誤校正解碼操作以產(chǎn)生對(duì)應(yīng)的已校正數(shù)據(jù)串,并且將已校正數(shù)據(jù)串傳送給主機(jī)系統(tǒng)以回應(yīng)讀取指令。應(yīng)注意的是,若欲讀取的數(shù)據(jù)被編碼至2個(gè)以上的錯(cuò)誤檢查與校正碼框中時(shí),存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)讀取對(duì)應(yīng)每一錯(cuò)誤檢查與校正碼框的數(shù)據(jù)串,對(duì)所讀取的數(shù)據(jù)串進(jìn)行錯(cuò)誤校正解碼操作,并且在成功地校正所讀取的數(shù)據(jù)串后合并數(shù)據(jù)串成為已校正數(shù)據(jù)串并且傳送至主機(jī)系統(tǒng)以回應(yīng)讀取指令。

特別是,在本范例實(shí)施例中,錯(cuò)誤檢查與校正電路512所使用的是區(qū)塊渦輪碼(blockturbocode,btc)演算法來進(jìn)行錯(cuò)誤校正編碼/解碼操作。以下將配合圖式說明區(qū)塊渦輪碼演算法的詳細(xì)流程。

圖11是根據(jù)本發(fā)明的一范例實(shí)施例所示出的錯(cuò)誤檢查與校正碼框的示意圖,并且圖12是根據(jù)本發(fā)明的一范例實(shí)施例所示出的使用區(qū)塊渦輪碼進(jìn)行錯(cuò)誤校正編碼程序的示意圖。必須了解的是,在此描述錯(cuò)誤檢查與校正電路 512對(duì)數(shù)據(jù)的運(yùn)作時(shí),“選擇”、“分割”、“劃分”、“關(guān)聯(lián)”、“排列”等詞是邏輯上的概念。也就是說,錯(cuò)誤檢查與校正電路512所處理的數(shù)據(jù)本身的存儲(chǔ)位置并未更動(dòng),而是邏輯上對(duì)數(shù)據(jù)進(jìn)行操作。

請(qǐng)參照?qǐng)D11與圖12,錯(cuò)誤檢查與校正電路512對(duì)數(shù)據(jù)串ud1進(jìn)行錯(cuò)誤校正編碼程序,以產(chǎn)生錯(cuò)誤檢查與校正碼組ecc1,其中錯(cuò)誤檢查碼ecc1會(huì)與數(shù)據(jù)串ud1一起形成錯(cuò)誤與檢查校正碼框eccf1而被程序化至可復(fù)寫式揮發(fā)性存儲(chǔ)器模塊406的實(shí)體程序化單元中。如上所述,在本范例實(shí)施例中,錯(cuò)誤檢查與校正電路512會(huì)使用區(qū)塊渦輪碼演算法來對(duì)數(shù)據(jù)串ud1進(jìn)行錯(cuò)誤校正編碼/解碼操作。在執(zhí)行區(qū)塊渦輪碼演算法的過程中,錯(cuò)誤檢查與校正電路512會(huì)將數(shù)據(jù)串ud1劃分為多個(gè)子數(shù)據(jù)單元,將所劃分的子數(shù)據(jù)單元以矩陣形式排列,分別為以矩陣形式排列的子數(shù)據(jù)單元產(chǎn)生對(duì)應(yīng)的行錯(cuò)誤檢查碼與列錯(cuò)誤檢查碼,并且合并所產(chǎn)生的行錯(cuò)誤檢查碼與列錯(cuò)誤檢查碼來形成錯(cuò)誤檢查與校正碼組ecc1。

舉例來說,首先,錯(cuò)誤檢查與校正電路512會(huì)將數(shù)據(jù)串ud1分割為子數(shù)據(jù)單元db1~db32。應(yīng)注意的是,在本范例實(shí)施例中,為了便于說明,每一子數(shù)據(jù)單元包含1個(gè)位元組的數(shù)據(jù)(即,8個(gè)位元的數(shù)據(jù)),但本發(fā)明不限于此。例如,在其他實(shí)施例中,每一子數(shù)據(jù)單元也可包含多于1個(gè)的位元組的數(shù)據(jù)。

接著,錯(cuò)誤檢查與校正電路512將子數(shù)據(jù)單元db1~db32排列為一個(gè)8乘以4的二維(橫向與縱向)數(shù)據(jù)矩陣,并且依照維度來劃分為多個(gè)行(column)數(shù)據(jù)段(也稱為第一方向數(shù)據(jù)段)與列(row)數(shù)據(jù)段(也稱為第二方向數(shù)據(jù)段)。值得一提的是,在以下揭示中使用第一方向與第二方向來描述數(shù)據(jù)段與錯(cuò)誤校正碼僅是為了要區(qū)別對(duì)應(yīng)不同方向排列的子數(shù)據(jù)單元的數(shù)據(jù)段與錯(cuò)誤校正碼,并非限制本發(fā)明,即,第一方向也可用來描述矩陣的列方向且第二方向也可用來描述矩陣的行方向。例如,橫向排列的子數(shù)據(jù)單元db1~db8會(huì)被劃分為列數(shù)據(jù)段rg1;子數(shù)據(jù)單元db9~db16會(huì)被劃分為列數(shù)據(jù)段rg2;子數(shù)據(jù)單元db17~db24會(huì)被劃分為列數(shù)據(jù)段rg3;子數(shù)據(jù)單元db25~db32會(huì)被劃分為列數(shù)據(jù)段rg4。此外,縱向排列的子數(shù)據(jù)單元db1、db9、db17、db25會(huì)被劃分為行數(shù)據(jù)段cg1;子數(shù)據(jù)單元db2、db10、db18、db26會(huì)被劃分為行數(shù)據(jù)段cg2;子數(shù)據(jù)單元db3、db11、db19、 db27會(huì)被劃分為行數(shù)據(jù)段cg3;子數(shù)據(jù)單元db4、db12、db20、db28會(huì)被劃分為行數(shù)據(jù)段cg4;子數(shù)據(jù)單元db5、db13、db21、db29會(huì)被劃分為行數(shù)據(jù)段cg5;子數(shù)據(jù)單元db6、db14、db22、db30會(huì)被劃分為行數(shù)據(jù)段cg6;子數(shù)據(jù)單元db7、db15、db23、db31會(huì)被劃分為行數(shù)據(jù)段cg7;子數(shù)據(jù)單元db8、db16、db24、db32會(huì)被劃分為行數(shù)據(jù)段cg8。

在本范例實(shí)施例中,在將子數(shù)據(jù)單元db1~db32劃分為橫向的列數(shù)據(jù)段rg1~rg4與縱向的行數(shù)據(jù)段cg1~cg8后,錯(cuò)誤檢查與校正電路512會(huì)使用一編碼演算法(以下稱為第一編碼演算法)作為輔助編碼演算法來分別對(duì)此些子數(shù)據(jù)單元做編碼,以產(chǎn)生對(duì)應(yīng)此些列數(shù)據(jù)段與行數(shù)據(jù)段的錯(cuò)誤校正碼。也就是說,對(duì)于橫向的列數(shù)據(jù)段rg1~rg4,錯(cuò)誤檢查與校正電路512會(huì)通過bch演算法對(duì)劃分至列數(shù)據(jù)段rg1的數(shù)據(jù)(亦即,子數(shù)據(jù)單元db1~db8)進(jìn)行編碼以產(chǎn)生對(duì)應(yīng)列數(shù)據(jù)段rg1的列錯(cuò)誤校正碼bch1。依此類推,錯(cuò)誤檢查與校正電路512會(huì)產(chǎn)生對(duì)應(yīng)列數(shù)據(jù)段rg2的列錯(cuò)誤校正碼bch2;產(chǎn)生對(duì)應(yīng)列數(shù)據(jù)段rg3的列錯(cuò)誤校正碼bch3;產(chǎn)生對(duì)應(yīng)列數(shù)據(jù)段rg4的列錯(cuò)誤校正碼bch4。此外,對(duì)于縱向的行數(shù)據(jù)段cg1~cg8,錯(cuò)誤檢查與校正電路512也會(huì)產(chǎn)生對(duì)應(yīng)行數(shù)據(jù)段cg1的行錯(cuò)誤校正碼bch5;產(chǎn)生對(duì)應(yīng)行數(shù)據(jù)段cg2的行錯(cuò)誤校正碼bch6;產(chǎn)生對(duì)應(yīng)行數(shù)據(jù)段cg3的行錯(cuò)誤校正碼bch7;產(chǎn)生對(duì)應(yīng)行數(shù)據(jù)段cg4的行錯(cuò)誤校正碼bch8;產(chǎn)生對(duì)應(yīng)行數(shù)據(jù)段cg5的行錯(cuò)誤校正碼bch9;產(chǎn)生對(duì)應(yīng)行數(shù)據(jù)段cg6的行錯(cuò)誤校正碼bch10;產(chǎn)生對(duì)應(yīng)行數(shù)據(jù)段cg7的行錯(cuò)誤校正碼bch11;并且產(chǎn)生對(duì)應(yīng)行數(shù)據(jù)段cg8的行錯(cuò)誤校正碼bch12。通過,列數(shù)據(jù)段rg1~rg4與行數(shù)據(jù)段cg1~cg8中的數(shù)據(jù)可分別被對(duì)應(yīng)的列錯(cuò)誤校正碼bch1~bch4與行錯(cuò)誤校正碼bch5~bch12保護(hù)。此外,必須了解的是,在本范例實(shí)施例中,列數(shù)據(jù)段與行數(shù)據(jù)段揭示以相同的輔助編碼演算法來進(jìn)行編碼,然而本發(fā)明不限于此。例如,在另一范例實(shí)施例中,錯(cuò)誤檢查與校正電路512可使用第一編碼演算法來編碼列數(shù)據(jù)段,并且使用第二編碼演算法來編碼行數(shù)據(jù)段。例如,上述第一編碼演算法與第二編碼演算法可以分別是博斯-喬赫里-霍克碼(以下也稱為bch)編碼演算法、低密度奇偶檢查校正編碼演算法或其他適合的編碼演算法。

值得一提的是,在本范例實(shí)施例中,錯(cuò)誤檢查與校正電路512會(huì)先將子 數(shù)據(jù)單元?jiǎng)澐种炼鄠€(gè)行數(shù)據(jù)段與列數(shù)據(jù)段之后,再對(duì)每一行數(shù)據(jù)段與列數(shù)據(jù)段進(jìn)行編碼以產(chǎn)生對(duì)應(yīng)每一行數(shù)據(jù)段與列數(shù)據(jù)段的行錯(cuò)誤校正碼與列錯(cuò)誤校正碼,但本發(fā)明不限于此。例如,在另一范例實(shí)施例中,錯(cuò)誤檢查與校正電路512可不先將子數(shù)據(jù)單元?jiǎng)澐譃榇诵┬袛?shù)據(jù)段與列數(shù)據(jù)段,并且直接根據(jù)子數(shù)據(jù)單元的排列方式來對(duì)子數(shù)據(jù)單元作錯(cuò)誤校正編碼。舉例來說,錯(cuò)誤檢查與校正電路512會(huì)直接對(duì)子數(shù)據(jù)單元db1~db8來進(jìn)行錯(cuò)誤校正編碼程序,以產(chǎn)生對(duì)應(yīng)子數(shù)據(jù)單元db1~db8的列錯(cuò)誤校正碼bch1。此外,在本范例實(shí)施例中,列錯(cuò)誤校正碼的校正能力可以優(yōu)于行錯(cuò)誤校正碼的校正能力。換句話說,列錯(cuò)誤校正碼的最大可校正錯(cuò)誤位元數(shù)可大于行錯(cuò)誤校正碼的最大可校正錯(cuò)誤位元數(shù)。但本發(fā)明并不以此為限。在其他范例實(shí)施例中,行錯(cuò)誤校正碼的最大可校正錯(cuò)誤位元數(shù)可大于列錯(cuò)誤校正碼的最大可校正錯(cuò)誤位元數(shù)。

請(qǐng)參照?qǐng)D11,在本范例實(shí)施例中,錯(cuò)誤檢查與校正電路512會(huì)將列錯(cuò)誤校正碼bch1~bch4和行錯(cuò)誤校正碼bch5~bch12合并成為錯(cuò)誤檢查與校正碼組ecc1,并且將包含數(shù)據(jù)串ud1(亦即,子數(shù)據(jù)單元db1~db32)與錯(cuò)誤檢查與校正碼組ecc1的錯(cuò)誤檢查與校正碼框eccf1存儲(chǔ)至可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406。之后,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)從可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406中讀取錯(cuò)誤檢查與校正碼框eccf1后,可使用錯(cuò)誤檢查與校正碼組ecc1對(duì)錯(cuò)誤檢查與校正碼框eccf1所讀取到的數(shù)據(jù)串進(jìn)行錯(cuò)誤校正解碼程序以獲得正確的數(shù)據(jù)串ud1。

舉例來說,當(dāng)從主機(jī)系統(tǒng)接收到讀取指令時(shí),存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)根據(jù)讀取指令從可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406的實(shí)體程序化單元中讀取對(duì)應(yīng)的錯(cuò)誤檢查與校正碼框eccf1并且獲取未校正的數(shù)據(jù)串ud1及對(duì)應(yīng)的錯(cuò)誤檢查與校正碼組ecc1。接著,錯(cuò)誤檢查與校正電路512會(huì)執(zhí)行對(duì)應(yīng)的錯(cuò)誤校正解碼操作,以將未校正的數(shù)據(jù)串ud1分割為32個(gè)子數(shù)據(jù)單元db1~db32,并且將子數(shù)據(jù)單元db1~db32排列成二維數(shù)據(jù)矩陣1200,并且從錯(cuò)誤檢查與校正碼組ecc1中獲取對(duì)應(yīng)每一行數(shù)據(jù)段的行錯(cuò)誤校正碼bch5~bch12與每一列數(shù)據(jù)段的列錯(cuò)誤校正碼bch1~bch4。然后,錯(cuò)誤檢查與校正電路512會(huì)使用對(duì)應(yīng)的行錯(cuò)誤校正碼對(duì)每一行數(shù)據(jù)段使用對(duì)應(yīng)的解碼演算法進(jìn)行解碼并使用對(duì)應(yīng)的列錯(cuò)誤校正碼使 用對(duì)應(yīng)的解碼演算法對(duì)列數(shù)據(jù)段進(jìn)行解碼。在此,對(duì)應(yīng)的解碼演算法是對(duì)應(yīng)前述第一編碼演算法與第二編碼演算法的第一解碼演算法與第二解碼演算法。在此,第一解碼演算法與第二解碼演算法可分別是bch解碼演算法、低密度奇偶檢查校正解碼演算法或其他適合的解碼演算法。例如,錯(cuò)誤檢查與校正電路512會(huì)先根據(jù)對(duì)應(yīng)此些列數(shù)據(jù)段的列錯(cuò)誤校正碼對(duì)橫向排列的子數(shù)據(jù)單元所形成的多個(gè)列數(shù)據(jù)段進(jìn)行解碼。即,錯(cuò)誤檢查與校正電路512會(huì)使用列錯(cuò)誤校正碼bch1來解碼子數(shù)據(jù)單元db1~db8;使用列錯(cuò)誤校正碼bch2來解碼子數(shù)據(jù)單元db9~db16;使用列錯(cuò)誤校正碼bch3來解碼子數(shù)據(jù)單元db17~db24;并且使用列錯(cuò)誤校正碼bch4來解碼子數(shù)據(jù)單元db25~db32。倘若在經(jīng)過第一次橫向解碼之后,子數(shù)據(jù)單元db1~db32之中存有無法校正的子數(shù)據(jù)單元時(shí),錯(cuò)誤檢查與校正電路512會(huì)再根據(jù)對(duì)應(yīng)此些行數(shù)據(jù)段的行錯(cuò)誤校正碼對(duì)包含有無法校正的子數(shù)據(jù)單元的行數(shù)據(jù)段數(shù)據(jù)進(jìn)行第一次縱向解碼。例如,錯(cuò)誤檢查與校正電路512會(huì)使用行錯(cuò)誤校正碼bch5來解碼子數(shù)據(jù)單元db1、db9、db17、db25;或使用行錯(cuò)誤校正碼bch6來解碼子數(shù)據(jù)單元db2、db10、db18、db26;或使用行錯(cuò)誤校正碼bch7來解碼子數(shù)據(jù)單元db3、db11、db19、db27;或使用行錯(cuò)誤校正碼bch8來解碼子數(shù)據(jù)單元db4、db12、db20、db28;或使用行錯(cuò)誤校正碼bch9來解碼子數(shù)據(jù)單元db5、db13、db21、db29;或使用行錯(cuò)誤校正碼bch10來解碼子數(shù)據(jù)單元db6、db14、db22、db30;或使用行錯(cuò)誤校正碼bch11來解碼子數(shù)據(jù)單元db7、db15、db23、db31;或使用行錯(cuò)誤校正碼bch12來解碼子數(shù)據(jù)單元db8、db16、db24、db32。在執(zhí)行第一次縱向解碼之后,錯(cuò)誤檢查與校正電路512會(huì)以相同方式,再次執(zhí)行橫向解碼(亦即,第二次橫向解碼),之后再執(zhí)行縱向解碼(亦即,第二次縱向解碼),并且以此類推直到所有子數(shù)據(jù)單元被校正或解碼終止條件到達(dá)(例如,迭代次數(shù)超過一預(yù)定次數(shù))。由于在前次橫向解碼部分無法校正的子數(shù)據(jù)單元,可能在目前縱向解碼被校正,因此,在下次橫向解碼中,會(huì)有更多原先無法校正的子數(shù)據(jù)單元被校正。基此,通過橫向與縱向的迭代解碼可快速地對(duì)檢查與校正碼框中的使用者數(shù)據(jù)進(jìn)行解碼并產(chǎn)生校正后的使用者數(shù)據(jù)。

值得一提的是,在上述區(qū)塊渦輪碼演算法迭代過程中,在一個(gè)子數(shù)據(jù)單元中出現(xiàn)的錯(cuò)誤位元的數(shù)目非大于錯(cuò)誤檢查與校正電路512能夠校正的上限 值(亦即,最大可校正錯(cuò)誤位元數(shù))時(shí),此子數(shù)據(jù)單元內(nèi)的數(shù)據(jù)可被校正以獲取已解碼子數(shù)據(jù)單元。因此,在已解碼子數(shù)據(jù)單元中,子數(shù)據(jù)單元中的錯(cuò)誤位元已被校正為已校正位元。在此,從存儲(chǔ)單元讀取出的位元的值在校正前為原始位元值,而經(jīng)校正后會(huì)被調(diào)整為校正位元值。例如,倘若錯(cuò)誤檢查與校正電路512的最大可校正錯(cuò)誤位元數(shù)大于1,而一個(gè)子數(shù)據(jù)單元存在一個(gè)錯(cuò)誤位元(亦即,錯(cuò)誤位元數(shù)為1)時(shí),錯(cuò)誤檢查與校正電路512會(huì)通過調(diào)整此錯(cuò)誤位元的值來校正子數(shù)據(jù)單元。例如,某錯(cuò)誤位元的原始位元值為“1”,經(jīng)校正為已校正位元后的校正位元值為“0”。然而,錯(cuò)誤檢查與校正電路512所識(shí)別出的錯(cuò)誤位元實(shí)際上卻有可能是正確位元。在此情況下,雖然在改變所識(shí)別出的錯(cuò)誤位元(實(shí)際上是正確位元)的值之后,錯(cuò)誤檢查與校正電路512會(huì)判定解碼成功,但實(shí)際上卻是改變了正確位元的值,而真正發(fā)生錯(cuò)誤的位元卻未被校正,因而發(fā)生錯(cuò)誤校正的情況。為了避免錯(cuò)誤校正,在本范例實(shí)施例中,錯(cuò)誤檢查與校正電路512在對(duì)使用者數(shù)據(jù)串中至少部份的子數(shù)據(jù)單元進(jìn)行解碼之后,會(huì)檢查已解碼子數(shù)據(jù)單元中的已校正位元是否為實(shí)際上發(fā)生錯(cuò)誤的位元。

在本范例實(shí)施例中,錯(cuò)誤檢查與校正電路512會(huì)根據(jù)已校正位元是否符合可靠度條件來決定已校正位元的值。倘若已校正位元符合可靠度條件,錯(cuò)誤檢查與校正電路512會(huì)決定已校正位元的值為原始位元值,亦即忽略已解碼子數(shù)據(jù)單元的解碼結(jié)果。例如,錯(cuò)誤檢查與校正電路512會(huì)將已解碼子數(shù)據(jù)單元中的已校正位元的值調(diào)整(即,回復(fù))為原始位元值。相對(duì)地,倘若已校正位元不符合可靠度條件,錯(cuò)誤檢查與校正電路512會(huì)決定已校正位元的值為校正位元值,亦即采用已解碼子數(shù)據(jù)單元的解碼結(jié)果。也就是說,錯(cuò)誤檢查與校正電路512不會(huì)再對(duì)已解碼子數(shù)據(jù)單元中的已校正位元的值進(jìn)行調(diào)整。

具體而言,錯(cuò)誤檢查與校正電路512會(huì)根據(jù)存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓是否落在一個(gè)預(yù)設(shè)區(qū)域內(nèi)來判斷已校正位元是否符合可靠度條件。倘若判定存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓落在此預(yù)設(shè)區(qū)域內(nèi),錯(cuò)誤檢查與校正電路512會(huì)判定已校正位元不符合可靠度條件。相對(duì)地,倘若判定存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓落在此預(yù)設(shè)區(qū)域之外(亦即,非落在預(yù)設(shè)區(qū)域內(nèi)),錯(cuò)誤檢查與校正電路512會(huì)判定已校正位元符合可靠度 條件。

預(yù)設(shè)區(qū)域是根據(jù)讀取數(shù)據(jù)時(shí)所施加的讀取電壓來決定。在本范例實(shí)施例中,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)會(huì)根據(jù)讀取電壓(以下也稱為第一電壓)以及一個(gè)預(yù)設(shè)差值來決定預(yù)設(shè)區(qū)域。例如,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)將讀取電壓減掉預(yù)設(shè)差值取得一個(gè)電壓(以下也稱為第二電壓),并且將讀取電壓加上預(yù)設(shè)差值取得另一個(gè)電壓(以下也稱為第三電壓)。進(jìn)一步地,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)將介于第二電壓與第三電壓之間的電壓范圍設(shè)定為預(yù)設(shè)區(qū)域。然而,本發(fā)明并不限制決定預(yù)設(shè)區(qū)域的方式。例如,在另一范例實(shí)施例中,預(yù)設(shè)區(qū)域還可以是通過查表的方式來決定。

此外,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)可以在上述區(qū)塊渦輪碼演算法的每一次迭代解碼中設(shè)定不同的預(yù)設(shè)區(qū)域。例如,在本范例實(shí)施例中,在第一次迭代解碼中,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)根據(jù)讀取電壓與一個(gè)預(yù)設(shè)差值(以下也稱為第一預(yù)設(shè)差值)來取得一個(gè)電壓范圍以設(shè)定一個(gè)預(yù)設(shè)區(qū)域(以下也稱為第一預(yù)設(shè)區(qū)域)。而在第二次迭代解碼中,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)可再根據(jù)讀取電壓值與不同于第一預(yù)設(shè)差值的另一個(gè)預(yù)設(shè)差值(以下也稱為第二預(yù)設(shè)差值)來取得另一個(gè)電壓范圍以設(shè)定另一個(gè)預(yù)設(shè)區(qū)域(以下也稱為第二預(yù)設(shè)區(qū)域)。例如,第一預(yù)設(shè)差值小于第二預(yù)設(shè)差值,因此第一預(yù)設(shè)區(qū)域所對(duì)應(yīng)的電壓范圍較窄,而第二預(yù)設(shè)區(qū)域所對(duì)應(yīng)的電壓范圍較寬。然而,在另一范例實(shí)施例中,上述的第一預(yù)設(shè)區(qū)域與第二預(yù)設(shè)區(qū)域還可以是通過查表的方式來決定。在此,區(qū)塊渦輪碼演算法的一次迭代解碼包括對(duì)各行數(shù)據(jù)段執(zhí)行一次解碼并且對(duì)各列數(shù)據(jù)段執(zhí)行一次解碼。而在一次迭代解碼中,倘若對(duì)其中一方向的數(shù)據(jù)段執(zhí)行解碼后所獲取的已解碼數(shù)據(jù)已不存在不可校正的位元時(shí),可不繼續(xù)執(zhí)行對(duì)另一方向數(shù)據(jù)段的解碼。

圖13a與圖13b是根據(jù)一范例實(shí)施例所示出的設(shè)定預(yù)設(shè)區(qū)域的示意圖。為了簡(jiǎn)化說明,在本范例實(shí)施例中是以一個(gè)存儲(chǔ)單元存儲(chǔ)一個(gè)位元的數(shù)據(jù)為例來進(jìn)行說明。

請(qǐng)參照?qǐng)D13a與圖13b,橫軸代表存儲(chǔ)單元的臨界電壓,而縱軸代表存儲(chǔ)單元數(shù)目。例如,圖13a與圖13b是表示某一個(gè)字元線上各個(gè)存儲(chǔ)單元的 臨界電壓。在此假設(shè)某一個(gè)存儲(chǔ)單元的臨界電壓落在分布1310時(shí),此存儲(chǔ)單元所存儲(chǔ)的是位元“1”,相對(duì)地,若某一個(gè)存儲(chǔ)單元的臨界電壓落在分布1320時(shí),此存儲(chǔ)單元所存儲(chǔ)的是位元“0”。值得一提的是,本范例實(shí)施例是以slc型快速存儲(chǔ)器模塊為例,因此臨界電壓的分布有兩種可能。然而,在其他范例實(shí)施例中,臨界電壓的分布可能四種、八種或其他任意個(gè)可能。此外,本發(fā)明也不限制每一個(gè)分布所代表的位元。

當(dāng)要從可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406讀取數(shù)據(jù)時(shí),存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)發(fā)送一讀取指令序列至可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406。此讀取指令序列包括一或多個(gè)指令或程序碼,并且用以指示根據(jù)讀取電壓vread來讀取多個(gè)存儲(chǔ)單元所組成的實(shí)體程序化單元,以取得多個(gè)位元。若某一個(gè)存儲(chǔ)單元的臨界電壓小于讀取電壓vread,則此存儲(chǔ)單元會(huì)導(dǎo)通,并且存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)讀到位元“1”。相對(duì)地,若某一個(gè)存儲(chǔ)單元的臨界電壓大于讀取電壓vread,則此存儲(chǔ)單元不會(huì)導(dǎo)通,并且存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)讀到位元“0”。值得注意的是,分布1310與分布1320會(huì)包含一個(gè)重疊區(qū)域(以斜線表示)。重疊區(qū)域表示有一些存儲(chǔ)單元中所存儲(chǔ)的應(yīng)所述是位元“1”(屬于分布1310),但其臨界電壓大于讀取電壓vread;或者,有一些存儲(chǔ)單元中所存儲(chǔ)的應(yīng)所述是位元“0”(屬于分布1320),但其臨界電壓小于讀取電壓vread。換言之,所讀取的位元中,有部份的位元會(huì)有錯(cuò)誤。也就是說,倘若一個(gè)存儲(chǔ)單元的臨界電壓落在重疊區(qū)域內(nèi),此存儲(chǔ)單元中所存儲(chǔ)的位元發(fā)生錯(cuò)誤的機(jī)率較大。相對(duì)地,倘若一個(gè)存儲(chǔ)單元的臨界電壓落在重疊區(qū)域之外的區(qū)域,此存儲(chǔ)單元中所存儲(chǔ)的位元發(fā)生錯(cuò)誤的機(jī)率較小。

請(qǐng)參照?qǐng)D13a,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)會(huì)根據(jù)讀取電壓vread與預(yù)設(shè)差值d1來設(shè)定一個(gè)預(yù)設(shè)區(qū)域r1。具體而言,存儲(chǔ)器控制電路單元404會(huì)以讀取電壓vread與預(yù)設(shè)差值d1計(jì)算出電壓v1與電壓v2,并且將介于電壓v1與電壓v2之間的電壓范圍設(shè)定為預(yù)設(shè)區(qū)域r1。當(dāng)存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓落在預(yù)設(shè)區(qū)域r1內(nèi)(亦即,不符合可靠度條件)時(shí),表示此存儲(chǔ)單元所存儲(chǔ)的位元發(fā)生錯(cuò)誤的機(jī)率較大,亦即已校正位元很有可能是實(shí)際上發(fā)生錯(cuò)誤的位元,錯(cuò)誤檢查與校正電路512因而決定此已校正位元的值為校正位元值。例如,在校正子數(shù)據(jù)單元內(nèi)的錯(cuò) 誤位元而獲取已解碼子數(shù)據(jù)單元之后,當(dāng)已解碼子數(shù)據(jù)單元中的已校正位元所屬的存儲(chǔ)單元的臨界電壓落在預(yù)設(shè)區(qū)域r1內(nèi)時(shí),錯(cuò)誤檢查與校正電路512會(huì)保留已解碼子數(shù)據(jù)單元中的已校正位元的值(亦即校正位元值)。然而,當(dāng)存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓落在預(yù)設(shè)區(qū)域r1之外的區(qū)域(亦即,符合可靠度條件)時(shí),表示此存儲(chǔ)單元所存儲(chǔ)的位元發(fā)生錯(cuò)誤的機(jī)率較小,亦即已校正位元很有可能原本是正確位元,錯(cuò)誤檢查與校正電路512會(huì)判定因而決定已校正位元的值為原始位元值。例如,在校正子數(shù)據(jù)單元內(nèi)的錯(cuò)誤位元而獲取已解碼子數(shù)據(jù)單元之后,當(dāng)已解碼子數(shù)據(jù)單元中的已校正位元所屬的存儲(chǔ)單元的臨界電壓非落在預(yù)設(shè)區(qū)域r1內(nèi)時(shí),錯(cuò)誤檢查與校正電路512會(huì)再次將已解碼子數(shù)據(jù)單元中的已校正位元的值調(diào)整為原始位元值。也就是說,已校正位元的值會(huì)被回復(fù)為未經(jīng)校正的原始位元值,因此包括此已校正位元的子數(shù)據(jù)單元會(huì)被識(shí)別為未解碼成功。

存儲(chǔ)單元的臨界電壓是否落在預(yù)設(shè)區(qū)域r1內(nèi)的判斷方式可以是根據(jù)從存儲(chǔ)單元所讀取到的位元來判斷。例如,請(qǐng)參照?qǐng)D13a,預(yù)設(shè)區(qū)域r1是根據(jù)電壓v1與電壓v2來設(shè)定。存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)可以通過分別施加電壓v1與電壓v2來讀取某個(gè)存儲(chǔ)單元以取得位元b1與位元b2。當(dāng)施加電壓v1時(shí),倘若讀取到位元b1為“1”,表示此存儲(chǔ)單元的臨界電壓小于電壓v1;相對(duì)地,倘若讀取到位元b1為“0”,表示此存儲(chǔ)單元的臨界電壓大于電壓v1。另一方面,當(dāng)施加電壓v2時(shí),倘若讀取到位元b2為“1”,表示此存儲(chǔ)單元的臨界電壓小于電壓v2;相對(duì)地,倘若讀取到位元b2為“0”,表示存儲(chǔ)單元的臨界電壓大于電壓v2。因此,如圖13a所示,當(dāng)施加電壓v1而讀取到位元b1為“0”并且施加電壓v2而讀取到位元b2為“1”時(shí),存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)即可判斷此存儲(chǔ)單元的臨界電壓落在預(yù)設(shè)區(qū)域r1內(nèi)。

當(dāng)已執(zhí)行了一次迭代解碼后,倘若仍存在未解碼成功的子數(shù)據(jù)單元,錯(cuò)誤檢查與校正電路512會(huì)執(zhí)行下一次迭代解碼。請(qǐng)參照?qǐng)D13b,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)會(huì)根據(jù)讀取電壓vread與預(yù)設(shè)差值d2來設(shè)定另一個(gè)預(yù)設(shè)區(qū)域r2。預(yù)設(shè)差值d2可以是大于預(yù)設(shè)差值d1。因此,存儲(chǔ)器控制電路單元404會(huì)以讀取電壓vread與預(yù)設(shè)差值d2計(jì)算出電壓v3與電壓v4,并且將介于電壓v3到電壓v4之間的范圍設(shè)定為預(yù)設(shè)區(qū)域 r2。進(jìn)一步地,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)會(huì)根據(jù)所設(shè)定的預(yù)設(shè)區(qū)域r2來判斷已校正位元是否符合可靠度條件。判斷方式已于圖13a的范例實(shí)施例中詳細(xì)說明,在此不再贅述。

圖14是根據(jù)一范例實(shí)施例所示出的根據(jù)解碼結(jié)果調(diào)整已校正位元的示意圖。在本范例實(shí)施例中,是以區(qū)塊渦輪碼演算法來進(jìn)行錯(cuò)誤校正解碼操作。

請(qǐng)參照?qǐng)D14,當(dāng)從主機(jī)系統(tǒng)接收到讀取指令時(shí),存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)根據(jù)讀取指令使用一讀取電壓從多個(gè)存儲(chǔ)單元中讀取未校正的數(shù)據(jù)串及對(duì)應(yīng)的錯(cuò)誤檢查與校正碼組。接著,錯(cuò)誤檢查與校正電路512會(huì)執(zhí)行錯(cuò)誤校正解碼操作,以將未校正的數(shù)據(jù)串分割為多個(gè)子數(shù)據(jù)單元,并且將此些子數(shù)據(jù)單元排列成二維數(shù)據(jù)矩陣1400以獲取多個(gè)行數(shù)據(jù)段與多個(gè)列數(shù)據(jù)段。例如,此些子數(shù)據(jù)單元可形成行數(shù)據(jù)段1410(1)~1410(n)與列數(shù)據(jù)段1420(1)~1420(4)。為簡(jiǎn)化說明,在本范例實(shí)施例中,一個(gè)子數(shù)據(jù)單元僅包括一個(gè)位元的數(shù)據(jù)。然而,在其他范例實(shí)施例中,一個(gè)子數(shù)據(jù)單元可以包括更多位元的數(shù)據(jù)。之后,錯(cuò)誤檢查與校正電路512會(huì)根據(jù)錯(cuò)誤檢查與校正碼組的行錯(cuò)誤校正碼與列錯(cuò)誤校正碼分別對(duì)行數(shù)據(jù)段與列數(shù)據(jù)段進(jìn)行解碼。例如,錯(cuò)誤檢查與校正電路512解碼行數(shù)據(jù)段1410(1)并且判定位元1401發(fā)生錯(cuò)誤,因而改變位元1401的值以進(jìn)行校正。在本范例實(shí)施例中,錯(cuò)誤檢查與校正電路512將行數(shù)據(jù)段1410(1)的位元1401的值從“0”(亦即,原始位元值)改變?yōu)椤?”(亦即,校正位元值)。

請(qǐng)繼續(xù)參照?qǐng)D14,例如,在對(duì)行數(shù)據(jù)段1410(1)執(zhí)行錯(cuò)誤校正解碼操作之后,錯(cuò)誤檢查與校正電路512會(huì)判斷存儲(chǔ)位元1401的存儲(chǔ)單元的臨界電壓是否落在預(yù)設(shè)區(qū)域內(nèi)。在本范例實(shí)施例中,假設(shè)存儲(chǔ)位元1401的存儲(chǔ)單元的臨界電壓落在預(yù)設(shè)區(qū)域之外的區(qū)域,亦即表示位元1401可能并非實(shí)際上發(fā)生錯(cuò)誤的位元,因此錯(cuò)誤檢查與校正電路512會(huì)再次調(diào)整位元1401,將位元1401的值從“1”(亦即,校正位元值)調(diào)整為“0”(亦即,原始位元值)。換句話說,錯(cuò)誤檢查與校正電路512會(huì)通過再次改變位元1401的值以忽略對(duì)位元1401的校正。接著,錯(cuò)誤檢查與校正電路512會(huì)繼續(xù)對(duì)下一個(gè)行數(shù)據(jù)段1410(2)進(jìn)行解碼。此時(shí),錯(cuò)誤檢查與校正電路512判定行數(shù)據(jù)段1410(2)中的位元1402為錯(cuò)誤位元,因而改變位元1402的值以進(jìn)行校正。在本范例實(shí)施例中,錯(cuò)誤檢查與校正電路512將行數(shù)據(jù)段1410(2)的位元1402的值從“1” (亦即,原始位元值)調(diào)整為“0”(亦即,校正位元值)。然后,錯(cuò)誤檢查與校正電路512會(huì)判斷存儲(chǔ)位元1402的存儲(chǔ)單元的臨界電壓是否落在預(yù)設(shè)區(qū)域內(nèi)。在本范例實(shí)施例中,假設(shè)存儲(chǔ)位元1402的存儲(chǔ)單元的臨界電壓落在預(yù)設(shè)區(qū)域內(nèi),亦即表示位元1402很有可能就是實(shí)際上發(fā)生錯(cuò)誤的位元,因此錯(cuò)誤檢查與校正電路512會(huì)保留對(duì)位元1402的校正結(jié)果,并且繼續(xù)對(duì)下一個(gè)行數(shù)據(jù)段1410(3)進(jìn)行解碼。而在本范例實(shí)施例中,假設(shè)錯(cuò)誤檢查與校正電路512是先執(zhí)行列數(shù)據(jù)段的解碼,再執(zhí)行行數(shù)據(jù)段的解碼。倘若在本次迭代解碼中已對(duì)每一個(gè)列數(shù)據(jù)段與每一個(gè)行數(shù)據(jù)段都執(zhí)行過解碼,由于至少存在行數(shù)據(jù)段1410(1)包括未解碼成功的子數(shù)據(jù)單元,因此錯(cuò)誤檢查與校正電路512會(huì)繼續(xù)執(zhí)行下一次迭代解碼,直到所有子數(shù)據(jù)單元被校正或解碼終止條件到達(dá)(例如,迭代次數(shù)超過一預(yù)定次數(shù))。

在本范例實(shí)施例中,是在對(duì)每一行數(shù)據(jù)段執(zhí)行解碼之后針對(duì)被校正的位元進(jìn)行判斷。然而,在另一范例實(shí)施例中,也可以是在對(duì)每一列數(shù)據(jù)段執(zhí)行解碼之后針對(duì)被校正的位元進(jìn)行判斷。此外,在又一范例實(shí)施例中,也可以是在對(duì)每一列數(shù)據(jù)段及每一行數(shù)據(jù)段執(zhí)行解碼之后皆對(duì)被校正的位元進(jìn)行判斷。

圖15是根據(jù)一范例實(shí)施例所示出的解碼方法的流程圖。

請(qǐng)參照?qǐng)D15,在步驟s1501中,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)從主機(jī)系統(tǒng)接收讀取指令。

在步驟s1503中,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)下達(dá)讀取指令序列以根據(jù)一讀取電壓從可復(fù)寫式非揮發(fā)性存儲(chǔ)器模塊406的多個(gè)存儲(chǔ)單元中讀取數(shù)據(jù),其中所讀取的數(shù)據(jù)包括使用者數(shù)據(jù)串與錯(cuò)誤檢查與校正碼組。

在步驟s1505中,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)根據(jù)錯(cuò)誤檢查與校正碼組中的第一方向錯(cuò)誤校正碼解碼使用者數(shù)據(jù)串中的第一方向數(shù)據(jù)段的子數(shù)據(jù)單元以獲取已解碼子數(shù)據(jù)單元。

在步驟s1507中,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)會(huì)判斷已解碼子數(shù)據(jù)單元中是否存在已校正位元,其中已校正位元的值從原始位元值被解碼成校正位元值。

倘若判定存在已校正位元,在步驟s1509中,存儲(chǔ)器控制電路單元404 (或錯(cuò)誤檢查與校正電路512)會(huì)判斷存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓是否符合可靠度條件。

倘若存儲(chǔ)已校正位元的存儲(chǔ)單元的臨界電壓符合可靠度條件,在步驟s1511中,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)將已校正位元的值回復(fù)為原始位元值,并根據(jù)已校正位元的值更新已解碼子數(shù)據(jù)單元。

在上述步驟s1507之后,倘若不存在已校正位元,在步驟s1513中,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)根據(jù)已解碼子數(shù)據(jù)單元獲取對(duì)應(yīng)使用者數(shù)據(jù)的已校正數(shù)據(jù)串。進(jìn)而,存儲(chǔ)器控制電路單元404(或存儲(chǔ)器管理電路502)會(huì)將已校正數(shù)據(jù)串回應(yīng)于主機(jī)系統(tǒng)。

在上述步驟s1511之后,存儲(chǔ)器控制電路單元404(或錯(cuò)誤檢查與校正電路512)會(huì)根據(jù)錯(cuò)誤檢查與校正碼組中的第二方向錯(cuò)誤校正碼解碼使用者數(shù)據(jù)串中的第二方向數(shù)據(jù)段的子數(shù)據(jù)單元以獲取更新已解碼子數(shù)據(jù)單元。并且,上述各步驟已詳細(xì)說明如上,在此不再贅述。

綜上所述,本發(fā)明在對(duì)所讀取的數(shù)據(jù)的至少部分的子數(shù)據(jù)單元執(zhí)行解碼校正時(shí),通過檢查已解碼子數(shù)據(jù)單元中的已校正位元是否屬于預(yù)設(shè)區(qū)域來判斷已校正位元即為發(fā)生錯(cuò)誤的位元的機(jī)率大小。當(dāng)已校正位元不屬于預(yù)設(shè)區(qū)域時(shí),會(huì)判定已校正位元即為發(fā)生錯(cuò)誤的位元的機(jī)率較小而再次調(diào)整已校正位元,以將已校正位元的值還原為校正前的的原始位元值。由此可避免錯(cuò)誤校正的情況,進(jìn)而提升對(duì)所讀取的數(shù)據(jù)的錯(cuò)誤校正能力。

最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
调兵山市| 新绛县| 华宁县| 宁明县| 锡林郭勒盟| 湟源县| 甘德县| 铜川市| 舟曲县| 陆良县| 安庆市| 锦屏县| 通榆县| 淮滨县| 乃东县| 积石山| 鞍山市| 孟州市| 乐昌市| 山阳县| 措美县| 武宣县| 景德镇市| 九龙城区| 普兰店市| 伊吾县| 长丰县| 曲周县| 盐亭县| 青浦区| 合阳县| 托克逊县| 青神县| 天峻县| 精河县| 兴业县| 安溪县| 通州区| 谢通门县| 武冈市| 温州市|