數(shù)據(jù)寫入方法、存儲(chǔ)器存儲(chǔ)裝置及存儲(chǔ)器控制電路單元的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于一種數(shù)據(jù)寫入機(jī)制,且特別是有關(guān)于一種用于可復(fù)寫式非易失性存儲(chǔ)器模塊的數(shù)據(jù)寫入方法、存儲(chǔ)器存儲(chǔ)裝置及存儲(chǔ)器控制電路單元。
【背景技術(shù)】
[0002]數(shù)碼相機(jī)、移動(dòng)電話與MP3播放器在這幾年來的成長(zhǎng)十分迅速,使得消費(fèi)者對(duì)存儲(chǔ)媒體的需求也急速增加。由于可復(fù)寫式非易失性存儲(chǔ)器模塊(例如,快閃存儲(chǔ)器)具有數(shù)據(jù)非易失性、省電、體積小,以及無機(jī)械結(jié)構(gòu)等特性,所以非常適合內(nèi)裝于上述所舉例的各種便攜式多媒體裝置中。
[0003]一般來說,可復(fù)寫式非易失性存儲(chǔ)器模塊內(nèi)的每一個(gè)實(shí)體區(qū)塊的使用壽命是與實(shí)體區(qū)塊的抹除次數(shù)有關(guān)。在一個(gè)實(shí)體區(qū)塊被重復(fù)的抹除之后,存儲(chǔ)在此實(shí)體區(qū)塊內(nèi)的數(shù)據(jù)的錯(cuò)誤比特會(huì)逐漸增加。當(dāng)數(shù)據(jù)的錯(cuò)誤比特?cái)?shù)超過可以正確地被更正的數(shù)量(例如,實(shí)體區(qū)塊的抹除次數(shù)超過一抹除次數(shù)上限)時(shí),此實(shí)體區(qū)塊往往會(huì)被舍棄不用。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種數(shù)據(jù)寫入方法、存儲(chǔ)器存儲(chǔ)裝置及存儲(chǔ)器控制電路單元,可在實(shí)體抹除單元的比特錯(cuò)誤率升高時(shí),改為利用可靠度較高的方式來持續(xù)使用此實(shí)體抹除單元,而不是直接將其舍棄不用。
[0005]本發(fā)明提供一種數(shù)據(jù)寫入方法,用于控制可復(fù)寫式非易失性存儲(chǔ)器模塊,可復(fù)寫式非易失性存儲(chǔ)器模塊包括多個(gè)實(shí)體抹除單元,每一所述實(shí)體抹除單元包括多個(gè)實(shí)體程序化單元,并且所述數(shù)據(jù)寫入方法包括:接收寫入指令,其中寫入指令指示將一數(shù)據(jù)寫入至多個(gè)邏輯單元的至少其中之一,其中所述邏輯單元的至少其中之一映射至所述實(shí)體程序化單元中的第一實(shí)體程序化單元,并且第一實(shí)體程序化單元屬于所述實(shí)體抹除單元中的第一實(shí)體抹除單元;判斷第一實(shí)體抹除單元屬于第一類實(shí)體抹除單元或第二類實(shí)體抹除單元,其中第一類實(shí)體抹除單元的第一比特錯(cuò)誤率低于第二類實(shí)體抹除單元的第二比特錯(cuò)誤率;當(dāng)?shù)谝粚?shí)體抹除單元屬于第一類實(shí)體抹除單元時(shí),依據(jù)第一碼率(code rate)來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的一校驗(yàn)碼編程至第一實(shí)體程序化單元;以及當(dāng)?shù)谝粚?shí)體抹除單元屬于第二類實(shí)體抹除單元時(shí),依據(jù)第二碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼編程至第一實(shí)體程序化單元,其中第一碼率高于第二碼率。
[0006]在本發(fā)明的一范例實(shí)施例中,所述判斷第一實(shí)體抹除單元屬于第一類實(shí)體抹除單元或第二類實(shí)體抹除單元的步驟包括:判斷第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值是否符合門檻條件;若第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值不符合門檻條件,判定第一實(shí)體抹除單元屬于第一類實(shí)體抹除單元;以及若第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值符合門檻條件,判定第一實(shí)體抹除單元屬于第二類實(shí)體抹除單元。
[0007]在本發(fā)明的一范例實(shí)施例中,所述數(shù)據(jù)寫入方法還包括:根據(jù)第一實(shí)體抹除單元的抹除次數(shù)信息、寫入次數(shù)信息、讀取次數(shù)信息、錯(cuò)誤比特?cái)?shù)信息、錯(cuò)誤比特率信息、數(shù)據(jù)存放時(shí)間信息及溫度信息的至少其中之一或至少二者的組合,來決定第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值。
[0008]在本發(fā)明的一范例實(shí)施例中,所述依據(jù)第一碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元的步驟包括:將數(shù)據(jù)分成至少一第一數(shù)據(jù)段并且產(chǎn)生至少一第一校驗(yàn)碼段,其中每一所述第一校驗(yàn)碼段對(duì)應(yīng)于所述第一數(shù)據(jù)段的其中之一。所述依據(jù)第二碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元的步驟包括:將數(shù)據(jù)分成至少一第二數(shù)據(jù)段并且產(chǎn)生至少一第二校驗(yàn)碼段,其中每一所述第二校驗(yàn)碼段對(duì)應(yīng)于所述第二數(shù)據(jù)段的其中之一。其中每一所述第一數(shù)據(jù)段的一數(shù)據(jù)長(zhǎng)度相同于每一所述第二數(shù)據(jù)段的一數(shù)據(jù)長(zhǎng)度,并且每一所述第一校驗(yàn)碼段的一數(shù)據(jù)長(zhǎng)度短于每一所述第二校驗(yàn)碼段的一數(shù)據(jù)長(zhǎng)度。
[0009]在本發(fā)明的一范例實(shí)施例中,所述其中依據(jù)第一碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元的步驟包括:將數(shù)據(jù)分成至少一第一數(shù)據(jù)段并且產(chǎn)生至少一第一校驗(yàn)碼段,其中每一所述第一校驗(yàn)碼段對(duì)應(yīng)于所述第一數(shù)據(jù)段的其中之一。所述依據(jù)第二碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元的步驟包括:將數(shù)據(jù)分成至少一第二數(shù)據(jù)段并且產(chǎn)生至少一第二校驗(yàn)碼段,其中每一所述第二校驗(yàn)碼段對(duì)應(yīng)于所述第二數(shù)據(jù)段的其中之一。其中每一所述第一數(shù)據(jù)段的一數(shù)據(jù)長(zhǎng)度長(zhǎng)于每一所述第二數(shù)據(jù)段的一數(shù)據(jù)長(zhǎng)度,并且每一所述第一校驗(yàn)碼段的一數(shù)據(jù)長(zhǎng)度相同于每一所述第二校驗(yàn)碼段的一數(shù)據(jù)長(zhǎng)度。
[0010]在本發(fā)明的一范例實(shí)施例中,所述依據(jù)第二碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元的步驟包括:判斷數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度是否超過N個(gè)基本管理單位的數(shù)據(jù)長(zhǎng)度,其中N是正整數(shù),并且N+1個(gè)基本管理單位的數(shù)據(jù)長(zhǎng)度等于第一實(shí)體程序化單元的容量大小;當(dāng)數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度不超過N個(gè)基本管理單位的數(shù)據(jù)長(zhǎng)度時(shí),僅依據(jù)第二碼率將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元;以及當(dāng)數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度超過N個(gè)基本管理單位的數(shù)據(jù)長(zhǎng)度時(shí),依據(jù)第二碼率將第一部分的數(shù)據(jù)與第一部分的校驗(yàn)碼寫入至第一實(shí)體程序化單元并且將第二部分的數(shù)據(jù)與第二部分的校驗(yàn)碼寫入至所述實(shí)體程序化單元中的第二實(shí)體程序化單元。
[0011 ] 在本發(fā)明的一范例實(shí)施例中,所述第二實(shí)體程序化單元屬于第一實(shí)體抹除單元或者所述實(shí)體抹除單元中也屬于第二類實(shí)體抹除單元的第二實(shí)體抹除單元。
[0012]在本發(fā)明的一范例實(shí)施例中,所述第一部分的數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度符合N個(gè)基本管理單位的數(shù)據(jù)長(zhǎng)度,并且所述數(shù)據(jù)寫入方法還包括:將至少一第一無效比特寫入至第一實(shí)體程序化單元中以填滿未被第一部分的數(shù)據(jù)與第一部分的校驗(yàn)碼所寫滿的部分;以及將至少一第二無效比特寫入至第二實(shí)體程序化單元中以填滿未被第二部分的數(shù)據(jù)與第二部分的校驗(yàn)碼所寫滿的部分。
[0013]本發(fā)明另提供一種存儲(chǔ)器存儲(chǔ)裝置,所述存儲(chǔ)器存儲(chǔ)裝置包括連接接口單元、可復(fù)寫式非易失性存儲(chǔ)器模塊及存儲(chǔ)器控制電路單元。連接接口單元用以電連接至主機(jī)系統(tǒng)。可復(fù)寫式非易失性存儲(chǔ)器模塊包括多個(gè)實(shí)體抹除單元,并且每一所述實(shí)體抹除單元包括多個(gè)實(shí)體程序化單元。存儲(chǔ)器控制電路單元電連接至連接接口單元與可復(fù)寫式非易失性存儲(chǔ)器模塊。其中存儲(chǔ)器控制電路單元用以接收寫入指令,其中寫入指令指示將數(shù)據(jù)寫入至多個(gè)邏輯單元的至少其中之一,其中所述邏輯單元的至少其中之一映射至所述實(shí)體程序化單元中的第一實(shí)體程序化單元,并且第一實(shí)體程序化單元屬于所述實(shí)體抹除單元中的第一實(shí)體抹除單元。存儲(chǔ)器控制電路單元還用以判斷第一實(shí)體抹除單元屬于第一類實(shí)體抹除單元或第二類實(shí)體抹除單元,其中第一類實(shí)體抹除單元的第一比特錯(cuò)誤率低于第二類實(shí)體抹除單元的第二比特錯(cuò)誤率。當(dāng)?shù)谝粚?shí)體抹除單元屬于第一類實(shí)體抹除單元時(shí),存儲(chǔ)器控制電路單元還用以依據(jù)第一碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼編程至第一實(shí)體程序化單元。當(dāng)?shù)谝粚?shí)體抹除單元屬于第二類實(shí)體抹除單元時(shí),存儲(chǔ)器控制電路單元還用以依據(jù)第二碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼編程至第一實(shí)體程序化單元,其中第一碼率高于第二碼率。
[0014]在本發(fā)明的一范例實(shí)施例中,所述存儲(chǔ)器控制電路單元判斷第一實(shí)體抹除單元屬于第一類實(shí)體抹除單元或第二類實(shí)體抹除單元的操作包括:判斷第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值是否符合門檻條件;若第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值不符合門檻條件,判定第一實(shí)體抹除單元屬于第一類實(shí)體抹除單元;以及若第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值符合門檻條件,判定第一實(shí)體抹除單元屬于第二類實(shí)體抹除單元。
[0015]在本發(fā)明的一范例實(shí)施例中,所述存儲(chǔ)器控制電路單元還用以根據(jù)第一實(shí)體抹除單元的抹除次數(shù)信息、寫入次數(shù)信息、讀取次數(shù)信息、錯(cuò)誤比特?cái)?shù)信息、錯(cuò)誤比特率信息、數(shù)據(jù)存放時(shí)間信息及溫度信息的至少其中之一或至少二者的組合,來決定第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值。
[0016]在本發(fā)明的一范例實(shí)施例中,所述存儲(chǔ)器控制電路單元依據(jù)第一碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元的操作包括:將數(shù)據(jù)分成至少一第一數(shù)據(jù)段并且產(chǎn)生至少一第一校驗(yàn)碼段,其中每一所述第一校驗(yàn)碼段對(duì)應(yīng)于所述第一數(shù)據(jù)段的其中之一。所述存儲(chǔ)器控制電路單元依據(jù)第二碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元的操作包括:將數(shù)據(jù)分成至少一第二數(shù)據(jù)段并且產(chǎn)生至少一第二校驗(yàn)碼段,其中每一所述第二校驗(yàn)碼段對(duì)應(yīng)于所述第二數(shù)據(jù)段的其中之一。其中每一所述第一數(shù)據(jù)段的一數(shù)據(jù)長(zhǎng)度相同于每一所述第二數(shù)據(jù)段的一數(shù)據(jù)長(zhǎng)度,并且每一所述第一校驗(yàn)碼段的一數(shù)據(jù)長(zhǎng)度短于每一所述第二校驗(yàn)碼段的一數(shù)據(jù)長(zhǎng)度。
[0017]在本發(fā)明的一范例實(shí)施例中,所述存儲(chǔ)器控制電路單元依據(jù)第一碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元的操作包括:將數(shù)據(jù)分成至少一第一數(shù)據(jù)段并且產(chǎn)生至少一第一校驗(yàn)碼段,其中每一所述第一校驗(yàn)碼段對(duì)應(yīng)于所述第一數(shù)據(jù)段的其中之一。所述存儲(chǔ)器控制電路單元依據(jù)第二碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元的操作包括:將數(shù)據(jù)分成至少一第二數(shù)據(jù)段并且產(chǎn)生至少一第二校驗(yàn)碼段,其中每一所述第二校驗(yàn)碼段對(duì)應(yīng)于所述第二數(shù)據(jù)段的其中之一。其中每一所述第一數(shù)據(jù)段的一數(shù)據(jù)長(zhǎng)度長(zhǎng)于每一所述第二數(shù)據(jù)段的一數(shù)據(jù)長(zhǎng)度,并且每一所述第一校驗(yàn)碼段的一數(shù)據(jù)長(zhǎng)度相同于每一所述第二校驗(yàn)碼段的一數(shù)據(jù)長(zhǎng)度。
[0018]在本發(fā)明的一范例實(shí)施例中,所述存儲(chǔ)器控制電路單元依據(jù)第二碼率來將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元的操作包括:判斷數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度是否超過N個(gè)基本管理單位的數(shù)據(jù)長(zhǎng)度,其中N是正整數(shù),并且N+1個(gè)基本管理單位的數(shù)據(jù)長(zhǎng)度等于第一實(shí)體程序化單元的容量大?。划?dāng)數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度不超過N個(gè)基本管理單位的數(shù)據(jù)長(zhǎng)度時(shí),僅依據(jù)第二碼率將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼寫入至第一實(shí)體程序化單元;以及當(dāng)數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度超過N個(gè)基本管理單位的數(shù)據(jù)長(zhǎng)度時(shí),依據(jù)第二碼率將第一部分的數(shù)據(jù)與第一部分的校驗(yàn)碼寫入至第一實(shí)體程序化單元并且將第二部分的數(shù)據(jù)與第二部分的校驗(yàn)碼寫入至所述實(shí)體程序化單元中的第二實(shí)體程序化單元。
[0019]在本發(fā)明的一范例實(shí)施例中,所述第一部分的數(shù)據(jù)的一數(shù)據(jù)長(zhǎng)度符合N個(gè)基本管理單位的數(shù)據(jù)長(zhǎng)度。所述存儲(chǔ)器控制電路單元還用以將至少一第一無效比特寫入至第一實(shí)體程序化單元中以填滿未被第一部分的數(shù)據(jù)與第一部分的校驗(yàn)碼所寫滿的部分。所述存儲(chǔ)器控制電路單元還用以將至少一第二無效比特寫入至第二實(shí)體程序化單元中以填滿未被第二部分的數(shù)據(jù)與第二部分的校驗(yàn)碼所寫滿的部分。
[0020]本發(fā)明另提供一種存儲(chǔ)器控制電路單元,所述存儲(chǔ)器控制電路單元用于控制可復(fù)寫式非易失性存儲(chǔ)器模塊。其中可復(fù)寫式非易失性存儲(chǔ)器模塊包括多個(gè)實(shí)體抹除單元,每一所述實(shí)體抹除單元包括多個(gè)實(shí)體程序化單元,并且存儲(chǔ)器控制電路單元包括主機(jī)接口、存儲(chǔ)器接口、錯(cuò)誤檢查與校正電路及存儲(chǔ)器管理電路。主機(jī)接口用以電連接至主機(jī)系統(tǒng)。存儲(chǔ)器接口用以電連接至可復(fù)寫式非易失性存儲(chǔ)器模塊。存儲(chǔ)器管理電路電連接至主機(jī)接口、存儲(chǔ)器接口及錯(cuò)誤檢查與校正電路。其中存儲(chǔ)器管理電路用以接收寫入指令,其中寫入指令指示將數(shù)據(jù)寫入至多個(gè)邏輯單元中的至少其中之一,其中所述邏輯單元中的至少其中之一映射至所述實(shí)體程序化單元中的第一實(shí)體程序化單元,并且第一實(shí)體程序化單元屬于所述實(shí)體抹除單元中的一第一實(shí)體抹除單元。存儲(chǔ)器控制電路單元還用以判斷第一實(shí)體抹除單元屬于第一類實(shí)體抹除單元或第二類實(shí)體抹除單元,其中第一類實(shí)體抹除單元的第一比特錯(cuò)誤率低于第二類實(shí)體抹除單元的第二比特錯(cuò)誤率。當(dāng)?shù)谝粚?shí)體抹除單元屬于第一類實(shí)體抹除單元時(shí),存儲(chǔ)器管理電路還用以發(fā)送第一指令串行,其中第一指令串行指示依據(jù)第一碼率將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼編程至第一實(shí)體程序化單元。當(dāng)?shù)谝粚?shí)體抹除單元屬于第二類實(shí)體抹除單元時(shí),存儲(chǔ)器管理電路還用以發(fā)送第二指令串行,其中第二指令串行指示依據(jù)第二碼率將數(shù)據(jù)與對(duì)應(yīng)于數(shù)據(jù)的校驗(yàn)碼編程至第一實(shí)體程序化單元,其中第一碼率高于第二碼率。
[0021]在本發(fā)明的一范例實(shí)施例中,所述存儲(chǔ)器管理電路判斷第一實(shí)體抹除單元屬于第一類實(shí)體抹除單元或第二類實(shí)體抹除單元的操作包括:判斷第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值是否符合門檻條件;若第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值不符合門檻條件,判定第一實(shí)體抹除單元屬于第一類實(shí)體抹除單元;以及若第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值符合門檻條件,判定第一實(shí)體抹除單元屬于第二類實(shí)體抹除單元。
[0022]在本發(fā)明的一范例實(shí)施例中,所述存儲(chǔ)器管理電路還用以根據(jù)第一實(shí)體抹除單元的抹除次數(shù)信息、寫入次數(shù)信息、讀取次數(shù)信息、錯(cuò)誤比特?cái)?shù)信息、錯(cuò)誤比特率信息、數(shù)據(jù)存放時(shí)間信息及溫度信息的至少其中之一或至少二者的組合,來決定第一實(shí)體抹除單元的比特錯(cuò)誤率評(píng)估值。
[0023]在本發(fā)明的一范例實(shí)施例中,所述存儲(chǔ)器管理電路發(fā)送第一指令串行的操作還包括:將數(shù)據(jù)分成至少一第一數(shù)據(jù)段并且控制錯(cuò)誤檢查與校正電路產(chǎn)生至少一第一校驗(yàn)碼段,其中每一所述第一校驗(yàn)碼段對(duì)應(yīng)于所述第一數(shù)據(jù)段的其中之一。其中存儲(chǔ)器管理電路發(fā)送第二指令串行的操作還包括:將數(shù)據(jù)分成至少一第二數(shù)據(jù)段并且控制錯(cuò)誤檢查與校正電路產(chǎn)生至少一第二校驗(yàn)碼段,其中每一所述第二校驗(yàn)碼段對(duì)應(yīng)于所述第二數(shù)據(jù)段的其中之一。其中每一所述第一數(shù)據(jù)段的