數(shù)據(jù)寫入方法、存儲器控制電路單元與存儲器儲存裝置的制造方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明是有關(guān)于一種數(shù)據(jù)寫入方法,且特別是有關(guān)于用于可復(fù)寫式非易失性存儲器模塊的數(shù)據(jù)寫入方法、存儲器控制電路單元與存儲器儲存裝置。【
背景技術(shù):
】[0002]數(shù)字相機(jī)、手機(jī)與MP3在這幾年來的成長十分迅速,使得消費(fèi)者對儲存媒體的需求也急速增加。由于可復(fù)寫式非易失性存儲器(rewritablenon-volatilememory)具有數(shù)據(jù)非易失性、省電、體積小、無機(jī)械結(jié)構(gòu)、讀寫速度快等特性,最適于便攜式電子產(chǎn)品,例如筆記本電腦。固態(tài)硬盤就是一種以快閃存儲器作為儲存媒體的存儲器儲存裝置。因此,近年快閃存儲器產(chǎn)業(yè)成為電子產(chǎn)業(yè)中相當(dāng)熱門的一環(huán)。[0003]依據(jù)每個存儲單元可儲存的比特數(shù),與非(NAND)型快閃存儲器可區(qū)分為單階儲存單元(SingleLevelCell,簡稱SLC)NAND型快閃存儲器、多階儲存單元(MultiLevelCell,簡稱MLC)NAND型快閃存儲器與三階儲存單元(TrinaryLevelCell,簡稱TLC)NAND型快閃存儲器,其中SLCNAND型快閃存儲器的每個存儲單元可儲存I個比特的數(shù)據(jù)(即,“I”與“0”),MLCNAND型快閃存儲器的每個存儲單元可儲存2個比特的數(shù)據(jù)并且TLCNAND型快閃存儲器的每個存儲單元可儲存3個比特的數(shù)據(jù)。[0004]在NAND型快閃存儲器中,實(shí)體程序化單元是由排列在同一條字線上的數(shù)個存儲單元所組成。由于SLCNAND型快閃存儲器的每個存儲單元可儲存I個比特的數(shù)據(jù),因此,在SLCNAND型快閃存儲器中,排列在同一條字線上的數(shù)個存儲單元是對應(yīng)一個實(shí)體程序化單元。[0005]相對于SLCNAND型快閃存儲器來說,MLCNAND型快閃存儲器的每個存儲單元的浮動門儲存層可儲存2個比特的數(shù)據(jù),其中每一個儲存狀態(tài)(B卩,“11”、“10”、“01”與“00”)包括最低有效比特(LeastSignificantBit,簡稱LSB)以及最高有效比特(MostSignificantBit,簡稱MSB)。例如,儲存狀態(tài)中從左側(cè)算起的第I個比特的值為LSB,而從左側(cè)算起的第2個比特的值為MSB。因此,排列在同一條字線上的數(shù)個存儲單元可組成2個實(shí)體程序化單元,其中由此些存儲單元的LSB所組成的實(shí)體程序化單元稱為下實(shí)體程序化單元(lowphysicalprogrammingunit),并且由此些存儲單元的MSB所組成的實(shí)體程序化單元稱為上實(shí)體程序化單元(upperphysicalprogrammingunit)。特別是,下實(shí)體程序化單元的寫入速度會快于上實(shí)體程序化單元的寫入速度,并且當(dāng)程序化上實(shí)體程序化單元發(fā)生錯誤時,下實(shí)體程序化單元所儲存的數(shù)據(jù)也可能因此遺失。[0006]類似地,在TLCNAND型快閃存儲器中,每個存儲單元可儲存3個比特的數(shù)據(jù),其中每一個儲存狀態(tài)(即,“111”、“110”、“101”、“100”、“011”、“010”、“001”與“000”)包括每一個儲存狀態(tài)包括左側(cè)算起的第I個比特的LSB、從左側(cè)算起的第2個比特的中間有效比特(CenterSignificantBit,簡稱CSB)以及從左側(cè)算起的第3個比特的MSB。因此,排列在同一條字線上的數(shù)個存儲單元可組成3個實(shí)體程序化單元,其中由此些存儲單元的LSB所組成的實(shí)體程序化單元稱為下實(shí)體單元,由此些存儲單元的CSB所組成的實(shí)體程序化單元稱為中實(shí)體程序化單元,并且由此些存儲單元的MSB所組成的實(shí)體程序化單元稱為上實(shí)體程序化單元。特別是,對排列在同一條字線上的數(shù)個存儲單元進(jìn)行程序化時,僅能選擇僅程序化下實(shí)體程序化單元或者同時下實(shí)體單元、中實(shí)體程序化單元與上實(shí)體程序化單元,否則所儲存的數(shù)據(jù)可能會遺失。[0007]一般而言,使用TLCNAND型快閃存儲器的存儲器模塊,會將其中的部分實(shí)體抹除單元分組為使用只操作于下實(shí)體程序化單元的一單頁模式來模擬SLCNAND型快閃存儲器的運(yùn)作,藉此也提高了壽命(抹除次數(shù)上限),也因?yàn)橹徊僮饔谙聦?shí)體程序化單元,寫入、讀取速度也增進(jìn)許多。而此模擬SLCNAND型快閃存儲器操作模式的部分實(shí)體抹除單元,會被使用于作為存儲器模塊的緩沖區(qū),用來暫存數(shù)據(jù),或是用來儲存系統(tǒng)數(shù)據(jù)。但,若是大量使用此緩沖區(qū)來做數(shù)據(jù)暫存,會使此緩沖區(qū)的實(shí)體抹除單元抹除次數(shù)快速增加導(dǎo)致老化,而使之后暫存其中的數(shù)據(jù)容易發(fā)生不可恢復(fù)的數(shù)據(jù)錯誤。[0008]基于上述,如何避免因?yàn)榇司彌_區(qū)的實(shí)體抹除單元老化所導(dǎo)致的數(shù)據(jù)錯誤,以及提升每一存儲單元可儲存多個比特的快閃存儲器的可靠度與效能是此領(lǐng)域技術(shù)人員所致力的目標(biāo)?!?br/>發(fā)明內(nèi)容】[0009]本發(fā)明提供一種數(shù)據(jù)寫入方法、存儲器控制電路單元及存儲器儲存裝置,其能夠有效地延長存儲器儲存裝置的壽命。[0010]本發(fā)明的一范例實(shí)施例提出一種數(shù)據(jù)寫入方法,用于可復(fù)寫式非易失性存儲器模塊,其中可復(fù)寫式非易失性存儲器模塊具有多個實(shí)體抹除單元。本數(shù)據(jù)寫入方法包括:將這些實(shí)體抹除單元至少分組為閑置區(qū)與暫駐存儲區(qū);接收第一數(shù)據(jù),其中第一數(shù)據(jù)欲被儲存至第一邏輯單元的多個邏輯子單元中;根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù),從暫駐存儲區(qū)、或閑置區(qū)、或者暫駐存儲區(qū)及閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的多個暫存實(shí)體抹除單元;使用單頁模式將第一數(shù)據(jù)寫入至第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元;以及從閑置區(qū)中的這些實(shí)體抹除單元中提取第一實(shí)體抹除單元,從第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元中將第一數(shù)據(jù)復(fù)制至第一實(shí)體抹除單元中并且將第一邏輯單元映射至第一實(shí)體抹除單元,其中這些第一數(shù)據(jù)會被寫入至第一實(shí)體抹除單元的每個實(shí)體程序單元組的下實(shí)體程序化單元與上實(shí)體程序化單元中并且第一實(shí)體抹除單元的每個實(shí)體程序化單元組的下實(shí)體程序化單元與上實(shí)體程序化單元會同時被程序化。[0011]在本發(fā)明的一范例實(shí)施例中,上述根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù),從暫駐存儲區(qū)、或閑置區(qū)、或者暫駐存儲區(qū)及閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的多個暫存實(shí)體抹除單元的步驟包括:判斷暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù)是否小于第一預(yù)設(shè)門檻值;以及倘若暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù)小于第一預(yù)設(shè)門檻值時,僅從暫駐存儲區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元。[0012]在本發(fā)明的一范例實(shí)施例中,上述根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù),從暫駐存儲區(qū)、或閑置區(qū)、或者暫駐存儲區(qū)及閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的多個暫存實(shí)體抹除單元的步驟還包括:判斷暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù)是否大于第二預(yù)設(shè)門檻值;以及倘若暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù)大于第二預(yù)設(shè)門檻值時,僅從閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元。[0013]在本發(fā)明的一范例實(shí)施例中,上述根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù),從暫駐存儲區(qū)、或閑置區(qū)、或者暫駐存儲區(qū)及閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的多個暫存實(shí)體抹除單元的步驟還包括:倘若暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù)介于第一預(yù)設(shè)門檻值與第二預(yù)設(shè)門檻值之間時,從暫駐存儲區(qū)的實(shí)體抹除單元之中提取至少一個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的一部分且從閑置區(qū)的實(shí)體抹除單元之中提取至少一個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的另一部分。[0014]在本發(fā)明的一范例實(shí)施例中,上述根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù),從暫駐存儲區(qū)、或閑置區(qū)、或者暫駐存儲區(qū)及閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的多個暫存實(shí)體抹除單元的步驟還包括:根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù)計算暫駐存儲區(qū)提取比率;建立隨機(jī)亂數(shù)模塊,其中隨機(jī)亂數(shù)模塊是由多個第一數(shù)值與多個第二數(shù)值所組成并且這些第一數(shù)值的數(shù)目與這些第二數(shù)值的數(shù)目的比率相同于暫駐存儲區(qū)提取比率;從隨機(jī)亂數(shù)模塊中的這些第一數(shù)值與這些第二數(shù)值之中隨機(jī)取得數(shù)值,并且判斷此數(shù)值是否屬于這些第一數(shù)值的其中之一;倘若此數(shù)值屬于這些第一數(shù)值的其中之一時,則從暫駐存儲區(qū)的實(shí)體抹除單元之中提取一個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的其中之一;以及倘若數(shù)值不屬于這些第一數(shù)值的其中之一時,則從閑置區(qū)的實(shí)體抹除單元之中提取一個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的其中之另一。[0015]在本發(fā)明的一范例實(shí)施例中,上述閑置區(qū)的這些實(shí)體抹除單元和暫駐存儲區(qū)的這些實(shí)體抹除單元是彼此獨(dú)立地被操作。[0016]在本發(fā)明的一范例實(shí)施例中,在第一數(shù)據(jù)復(fù)制至第一實(shí)體抹除單元之后,作為該第一暫存實(shí)體抹除單元組的該些暫存實(shí)體抹除單元之中取自該暫駐存儲區(qū)的實(shí)體抹除單元會被關(guān)聯(lián)回該暫駐存儲區(qū),并且作為該第一暫存實(shí)體抹除單元組的該些暫存實(shí)體抹除單元之中取自該閑置區(qū)的實(shí)體抹除單元會被關(guān)聯(lián)回該閑置區(qū)。[0017]在本發(fā)明的一范例實(shí)施例中,上述僅從暫駐存儲區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的步驟包括:從暫駐存儲區(qū)的這些實(shí)體抹除單元之中提取3個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的第一暫存實(shí)體抹除單元、第二暫存實(shí)體抹除單元與第三暫存實(shí)體抹除單元。[0018]在本發(fā)明的一范例實(shí)施例中,上述僅從閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的步驟包括:從閑置區(qū)的這些實(shí)體抹除單元之中提取3個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的第一暫存實(shí)體抹除單元、第二暫存實(shí)體抹除單元與第三暫存實(shí)體抹除單元。[0019]在本發(fā)明的一范例實(shí)施例中,上述從暫駐存儲區(qū)的實(shí)體抹除單元之中提取至少一個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的一部分且從閑置區(qū)的實(shí)體抹除單元之中提取至少一個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的另一部分的步驟包括:從暫駐存儲區(qū)的這些實(shí)體抹除單元之中提取I個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的第一暫存實(shí)體抹除單元;以及從閑置區(qū)的這些實(shí)體抹除單元之中提取2個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的第二暫存實(shí)體抹除單元與第三暫存實(shí)體抹除單元。[0020]在本發(fā)明的一范例實(shí)施例中,上述從暫駐存儲區(qū)的實(shí)體抹除單元之中提取至少一個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的一部分且從閑置區(qū)的實(shí)體抹除單元之中提取至少一個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的另一部分的步驟包括:從暫駐存儲區(qū)的這些實(shí)體抹除單元之中提取2個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的第一暫存實(shí)體抹除單元與第二暫存實(shí)體抹除單元;以及從閑置區(qū)的這些實(shí)體抹除單元之中提取I個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的第三暫存實(shí)體抹除單元。[0021]本發(fā)明一范例實(shí)施例提供一種存儲器控制電路單元,用于控制可復(fù)寫式非易失性存儲器模塊,其中可復(fù)寫式非易失性存儲器模塊具有多個實(shí)體抹除單元。此存儲器控制電路單元包括:用以電性連接至主機(jī)系統(tǒng)的主機(jī)接口;用以電性連接至可復(fù)寫式非易失性存儲器模塊的存儲器接口;以及電性連接至主機(jī)接口與存儲器接口的存儲器管理電路。存儲器管理電路用以將此些實(shí)體抹除單元至少分組為閑置區(qū)與暫駐存儲區(qū),并且從主機(jī)系統(tǒng)中接收第一數(shù)據(jù),其中主機(jī)系統(tǒng)指示將第一數(shù)據(jù)儲存至第一邏輯單元的多個邏輯子單元中。此外,存儲器管理電路還用以根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù),從暫駐存儲區(qū)、或閑置區(qū)、或者暫駐存儲區(qū)及閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的多個暫存實(shí)體抹除單元。再者,存儲器管理電路還使用單頁模式將第一數(shù)據(jù)寫入至第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元。另外,存儲器管理電路還用以從閑置區(qū)中的這些實(shí)體抹除單元中提取第一實(shí)體抹除單元,從第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元中將第一數(shù)據(jù)合并至第一實(shí)體抹除單元中并且將第一邏輯單元映射至第一實(shí)體抹除單元,其中這些第一數(shù)據(jù)會被寫入至第一實(shí)體抹除單元的每個實(shí)體程序化單元組的下實(shí)體程序化單元與上實(shí)體程序化單元中并且第一實(shí)體抹除單元的每個實(shí)體程序化單元組的下實(shí)體程序化單元與上實(shí)體程序化單元會同時被程序化。[0022]在本發(fā)明的一范例實(shí)施例中,在根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù),從暫駐存儲區(qū)、或閑置區(qū)、或者暫駐存儲區(qū)及閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的運(yùn)作中,存儲器管理電路還用以判斷暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù)是否大于第二預(yù)設(shè)門檻值,其中倘若暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù)大于第二預(yù)設(shè)門檻值時,存儲器管理電路僅從閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元。[0023]在本發(fā)明的一范例實(shí)施例中,在根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù),從暫駐存儲區(qū)、或閑置區(qū)、或者暫駐存儲區(qū)及閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的運(yùn)作中,倘若暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù)介于第一預(yù)設(shè)門檻值與第二預(yù)設(shè)門檻值之間時,存儲器管理電路從暫駐存儲區(qū)的實(shí)體抹除單元之中提取至少一個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的一部分且從閑置區(qū)的實(shí)體抹除單元之中提取至少一個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的另一部分。[0024]在本發(fā)明的一范例實(shí)施例中,上述存儲器管理電路還用以根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù)計算暫駐存儲區(qū)提取比率,并且設(shè)定隨機(jī)亂數(shù)模塊,其中隨機(jī)亂數(shù)模塊是由多個第一數(shù)值與多個第二數(shù)值所組成并且這些第一數(shù)值的數(shù)目與這些第二數(shù)值的數(shù)目的比率相同于暫駐存儲區(qū)提取比率。并且,在根據(jù)暫駐存儲區(qū)的實(shí)體抹除單元的平均抹除次數(shù),從暫駐存儲區(qū)、或閑置區(qū)、或者暫駐存儲區(qū)及閑置區(qū)的實(shí)體抹除單元之中提取多個實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的運(yùn)作中,存儲器管理電路從隨機(jī)亂數(shù)模塊中的這些第一數(shù)值與這些第二數(shù)值之中隨機(jī)取得數(shù)值,并且判斷數(shù)值是否屬于這些第一數(shù)值的其中之一。倘若數(shù)值屬于這些第一數(shù)值的其中之一時,存儲器管理電路從暫駐存儲區(qū)的實(shí)體抹除單元之中提取實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的其中之一;并且倘若數(shù)值不屬于這些第一數(shù)值的其中之一時,存儲器管理電路從閑置區(qū)的實(shí)體抹除單元之中提取實(shí)體抹除單元作為對應(yīng)第一邏輯單元的第一暫存實(shí)體抹除單元組的這些暫存實(shí)體抹除單元的其中之另一。[0025]在本發(fā)明的一范例實(shí)施例中,在第一數(shù)據(jù)復(fù)制至第一實(shí)體抹除單元之后,上述存儲器管理電路還將作為該第一暫存實(shí)體抹除單元當(dāng)前第1頁1 2 3 4 5 6