數(shù)據(jù)管理方法、存儲(chǔ)器存儲(chǔ)裝置及存儲(chǔ)器控制電路單元的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于一種管理存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器與易失性隨機(jī)存取存儲(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)建于上述所舉例的各種可攜式多媒體裝置中。一般來說,非易失性存儲(chǔ)器模塊會(huì)搭配易失性隨機(jī)存取存儲(chǔ)器使用。例如,當(dāng)主機(jī)系統(tǒng)欲將一數(shù)據(jù)寫入至非易失性存儲(chǔ)器模塊時(shí),此數(shù)據(jù)會(huì)先被存儲(chǔ)于此易失性隨機(jī)存取存儲(chǔ)器,然后再將此數(shù)據(jù)寫入至非易失性存儲(chǔ)器模塊。經(jīng)由適當(dāng)?shù)臄?shù)據(jù)管理機(jī)制,這種非易失性存儲(chǔ)器模塊搭配易失性隨機(jī)存取存儲(chǔ)器的組合可有效提高整體的數(shù)據(jù)存取速度與操作彈性。
[0003]然而,在將存儲(chǔ)于易失性隨機(jī)存取存儲(chǔ)器中的數(shù)據(jù)寫入至非易失性存儲(chǔ)器模塊的過程中,若突然發(fā)生斷電或電壓供應(yīng)不穩(wěn)等供電問題時(shí),存儲(chǔ)在易失性隨機(jī)存取存儲(chǔ)器的數(shù)據(jù)可能會(huì)遺失,從而導(dǎo)致數(shù)據(jù)無法完整地被寫入至非易失性存儲(chǔ)器模塊。因此,部分單位或個(gè)人可能會(huì)選擇額外安裝不斷電系統(tǒng)(Uninterruptible Power Supply,簡(jiǎn)稱:UPS)或超級(jí)電容(Supercapacitor),以在突然發(fā)生供電問題時(shí),還能有短暫的時(shí)間完成部分?jǐn)?shù)據(jù)的轉(zhuǎn)移或備份,例如,將所有存儲(chǔ)于易失性隨機(jī)存取存儲(chǔ)器中的數(shù)據(jù)備份至非易失性存儲(chǔ)器模塊,從而減少損失。但是,維護(hù)不斷電系統(tǒng)的成本很高,且所能維持供電的時(shí)間也很短暫,在使用上還是不甚方便。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種數(shù)據(jù)管理方法、存儲(chǔ)器存儲(chǔ)裝置及存儲(chǔ)器控制電路單元,可有效回復(fù)存儲(chǔ)器存儲(chǔ)裝置中因供電問題造成的數(shù)據(jù)寫入錯(cuò)誤。
[0005]本發(fā)明提供一種數(shù)據(jù)管理方法,適用于一存儲(chǔ)器控制電路單元,存儲(chǔ)器控制電路單元用以控制可復(fù)寫式非易失性存儲(chǔ)器模塊,此數(shù)據(jù)管理方法包括:配置非易失性隨機(jī)存取存儲(chǔ)器與易失性隨機(jī)存取存儲(chǔ)器;將第一數(shù)據(jù)存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器,其中第一數(shù)據(jù)包括來自主機(jī)系統(tǒng)的寫入數(shù)據(jù);將從可復(fù)寫式非易失性存儲(chǔ)器模塊中讀取的第二數(shù)據(jù)存儲(chǔ)于易失性隨機(jī)存取存儲(chǔ)器;當(dāng)存儲(chǔ)器存儲(chǔ)裝置斷電后重新上電時(shí),將第一數(shù)據(jù)從非易失性隨機(jī)存取存儲(chǔ)器寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊中。
[0006]在本發(fā)明的一實(shí)施例中,所述第一數(shù)據(jù)還包括邏輯地址與來自主機(jī)系統(tǒng)的寫入指令,邏輯地址映射至可復(fù)寫式非易失性存儲(chǔ)器模塊的實(shí)體抹除單元,并且將第一數(shù)據(jù)存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器的步驟包括:接收來自主機(jī)系統(tǒng)的寫入指令與對(duì)應(yīng)于寫入指令的寫入數(shù)據(jù),并根據(jù)寫入指令獲得邏輯地址;將寫入指令、對(duì)應(yīng)于寫入指令的寫入數(shù)據(jù)及邏輯地址存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器;經(jīng)由非易失性隨機(jī)存取存儲(chǔ)器將寫入數(shù)據(jù)寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊的實(shí)體抹除單元。
[0007]在本發(fā)明的一實(shí)施例中,所述實(shí)體抹除單元包括多個(gè)下實(shí)體程序化單元與對(duì)應(yīng)于這些下實(shí)體程序化單元的多個(gè)上實(shí)體程序化單元,并且此數(shù)據(jù)管理方法還包括:當(dāng)寫入數(shù)據(jù)的至少一部分被存儲(chǔ)于這些下實(shí)體程序化單元中的一第一下實(shí)體程序化單元,并且對(duì)應(yīng)于一第一下實(shí)體程序化單元的一第一上實(shí)體程序化單元尚未被寫入數(shù)據(jù)時(shí),持續(xù)維護(hù)存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器中的寫入指令、寫入數(shù)據(jù)及邏輯地址。
[0008]在本發(fā)明的一實(shí)施例中,所述當(dāng)存儲(chǔ)器存儲(chǔ)裝置斷電后重新上電時(shí),將第一數(shù)據(jù)從非易失性隨機(jī)存取存儲(chǔ)器寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊中的步驟包括:判斷是否發(fā)生對(duì)應(yīng)于寫入數(shù)據(jù)的寫入階段錯(cuò)誤,其中寫入階段錯(cuò)誤導(dǎo)致第一數(shù)據(jù)的至少一部分或全部沒有被寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊;若發(fā)生寫入階段錯(cuò)誤,將第一數(shù)據(jù)的至少一部分或全部寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊。
[0009]在本發(fā)明的一實(shí)施例中,所述判斷是否發(fā)生對(duì)應(yīng)于寫入數(shù)據(jù)的寫入階段錯(cuò)誤的步驟包括:判斷存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器中的寫入數(shù)據(jù)與可復(fù)寫式非易失性存儲(chǔ)器模塊中的特定數(shù)據(jù)是否相異;若存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器中的寫入數(shù)據(jù)與可復(fù)寫式非易失性存儲(chǔ)器模塊中的特定數(shù)據(jù)相異,判定發(fā)生對(duì)應(yīng)于寫入數(shù)據(jù)的寫入階段錯(cuò)誤。
[0010]在本發(fā)明的一實(shí)施例中,所述第一數(shù)據(jù)還包括對(duì)應(yīng)于寫入數(shù)據(jù)的接收狀態(tài)的接收狀態(tài)標(biāo)記,并且當(dāng)存儲(chǔ)器存儲(chǔ)裝置斷電后重新上電時(shí),將第一數(shù)據(jù)從非易失性隨機(jī)存取存儲(chǔ)器寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊中的步驟包括:判斷是否發(fā)生對(duì)應(yīng)于寫入數(shù)據(jù)的接收階段錯(cuò)誤,其中接收階段錯(cuò)誤導(dǎo)致第一數(shù)據(jù)的至少一部分或全部沒有被存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器;若發(fā)生接收階段錯(cuò)誤,根據(jù)接收狀態(tài)標(biāo)記,決定是否重新自主機(jī)系統(tǒng)接收第一數(shù)據(jù)的至少一部分或全部。
[0011]在本發(fā)明的一實(shí)施例中,所述當(dāng)存儲(chǔ)器存儲(chǔ)裝置斷電后重新上電時(shí),將第一數(shù)據(jù)從非易失性隨機(jī)存取存儲(chǔ)器寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊中的步驟包括:根據(jù)斷電狀態(tài)標(biāo)記判斷此斷電是否為異常斷電,其中斷電狀態(tài)標(biāo)記存儲(chǔ)于可復(fù)寫式非易失性存儲(chǔ)器模塊及/或非易失性隨機(jī)存取存儲(chǔ)器;當(dāng)斷電為異常斷電時(shí),將第一數(shù)據(jù)從非易失性隨機(jī)存取存儲(chǔ)器寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊中。
[0012]在本發(fā)明的一實(shí)施例中,所述第二數(shù)據(jù)包括邏輯地址-實(shí)體抹除單元映射表,并且邏輯地址-實(shí)體抹除單元映射表記載多個(gè)邏輯地址與可復(fù)寫式非易失性存儲(chǔ)器模塊的多個(gè)實(shí)體抹除單元的映射關(guān)系。
[0013]在本發(fā)明的一實(shí)施例中,所述將從可復(fù)寫式非易失性存儲(chǔ)器模塊中讀取的第二數(shù)據(jù)存儲(chǔ)于易失性隨機(jī)存取存儲(chǔ)器的步驟包括:對(duì)可復(fù)寫式非易失性存儲(chǔ)器模塊執(zhí)行垃圾回收程序,以自可復(fù)寫式非易失性存儲(chǔ)器模塊的多個(gè)實(shí)體抹除單元獲得回收數(shù)據(jù);將回收數(shù)據(jù)存儲(chǔ)于易失性隨機(jī)存取存儲(chǔ)器。
[0014]在本發(fā)明的一實(shí)施例中,所述易失性隨機(jī)存取存儲(chǔ)器的容量為非易失性隨機(jī)存取存儲(chǔ)器的容量的至少二倍。
[0015]本發(fā)明另提供一種存儲(chǔ)器存儲(chǔ)裝置,此存儲(chǔ)器存儲(chǔ)裝置包括連接器、可復(fù)寫式非易失性存儲(chǔ)器模塊、存儲(chǔ)器控制電路單元、非易失性隨機(jī)存取存儲(chǔ)器及易失性隨機(jī)存取存儲(chǔ)器。連接器用以電性連接至主機(jī)系統(tǒng)。存儲(chǔ)器控制電路單元電性連接至連接器、非易失性隨機(jī)存取存儲(chǔ)器、易失性隨機(jī)存取存儲(chǔ)器與可復(fù)寫式非易失性存儲(chǔ)器模塊。存儲(chǔ)器控制電路單元用以將第一數(shù)據(jù)存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器,其中第一數(shù)據(jù)包括來自主機(jī)系統(tǒng)的寫入數(shù)據(jù)。存儲(chǔ)器控制電路單元還用以將從可復(fù)寫式非易失性存儲(chǔ)器模塊中讀取的第二數(shù)據(jù)存儲(chǔ)于易失性隨機(jī)存取存儲(chǔ)器。當(dāng)存儲(chǔ)器存儲(chǔ)裝置斷電后重新上電時(shí),存儲(chǔ)器控制電路單元還用以將第一數(shù)據(jù)從非易失性隨機(jī)存取存儲(chǔ)器寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊中。
[0016]在本發(fā)明的一實(shí)施例中,所述第一數(shù)據(jù)還包括邏輯地址與來自主機(jī)系統(tǒng)的寫入指令,并且邏輯地址映射至可復(fù)寫式非易失性存儲(chǔ)器模塊的實(shí)體抹除單元,并且存儲(chǔ)器控制電路單元用以將第一數(shù)據(jù)存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器的步驟包括:存儲(chǔ)器控制電路單元還用以接收來自主機(jī)系統(tǒng)的寫入指令與對(duì)應(yīng)于寫入指令的寫入數(shù)據(jù),并根據(jù)寫入指令獲得邏輯地址。存儲(chǔ)器控制電路單元還用以將寫入指令、對(duì)應(yīng)于寫入指令的寫入數(shù)據(jù)及邏輯地址存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器。存儲(chǔ)器控制電路單元還用以經(jīng)由非易失性隨機(jī)存取存儲(chǔ)器將寫入數(shù)據(jù)寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊的實(shí)體抹除單元。
[0017]在本發(fā)明的一實(shí)施例中,所述實(shí)體抹除單元包括多個(gè)下實(shí)體程序化單元與對(duì)應(yīng)于這些下實(shí)體程序化單元的多個(gè)上實(shí)體程序化單元。當(dāng)寫入數(shù)據(jù)的至少一部分被存儲(chǔ)于這些下實(shí)體程序化單元中的一第一下實(shí)體程序化單元,并且對(duì)應(yīng)于第一下實(shí)體程序化單元的一第一上實(shí)體程序化單元尚未被寫入數(shù)據(jù)時(shí),存儲(chǔ)器控制電路單元還用以持續(xù)維護(hù)存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器中的寫入指令、寫入數(shù)據(jù)及邏輯地址。
[0018]在本發(fā)明的一實(shí)施例中,所述存儲(chǔ)器控制電路單元還用以判斷是否發(fā)生對(duì)應(yīng)于寫入數(shù)據(jù)的寫入階段錯(cuò)誤,其中寫入階段錯(cuò)誤導(dǎo)致第一數(shù)據(jù)的至少一部分或全部沒有被寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊。若發(fā)生寫入階段錯(cuò)誤,存儲(chǔ)器控制電路單元還用以將第一數(shù)據(jù)的至少一部分或全部寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊。
[0019]在本發(fā)明的一實(shí)施例中,所述存儲(chǔ)器控制電路單元還用以判斷存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器中的寫入數(shù)據(jù)與可復(fù)寫式非易失性存儲(chǔ)器模塊中的特定數(shù)據(jù)是否相異。若存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器中的寫入數(shù)據(jù)與可復(fù)寫式非易失性存儲(chǔ)器模塊中的特定數(shù)據(jù)相異,存儲(chǔ)器控制電路單元判定發(fā)生對(duì)應(yīng)于寫入數(shù)據(jù)的寫入階段錯(cuò)誤。
[0020]在本發(fā)明的一實(shí)施例中,所述第一數(shù)據(jù)還包括對(duì)應(yīng)于寫入數(shù)據(jù)的接收狀態(tài)的接收狀態(tài)標(biāo)記。存儲(chǔ)器控制電路單元還用以判斷是否發(fā)生對(duì)應(yīng)于寫入數(shù)據(jù)的接收階段錯(cuò)誤,其中接收階段錯(cuò)誤導(dǎo)致第一數(shù)據(jù)的至少一部分或全部沒有被存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器。若發(fā)生接收階段錯(cuò)誤,存儲(chǔ)器控制電路單元還用以根據(jù)接收狀態(tài)標(biāo)記,決定是否重新自主機(jī)系統(tǒng)接收第一數(shù)據(jù)的至少一部分或全部。
[0021 ] 在本發(fā)明的一實(shí)施例中,所述存儲(chǔ)器控制電路單元還用以根據(jù)斷電狀態(tài)標(biāo)記判斷此斷電是否為異常斷電,其中斷電狀態(tài)標(biāo)記存儲(chǔ)于可復(fù)寫式非易失性存儲(chǔ)器模塊及/或非易失性隨機(jī)存取存儲(chǔ)器。當(dāng)斷電為異常斷電時(shí),存儲(chǔ)器控制電路單元還用以將第一數(shù)據(jù)從非易失性隨機(jī)存取存儲(chǔ)器寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊中。
[0022]在本發(fā)明的一實(shí)施例中,所述存儲(chǔ)器控制電路單元還用以對(duì)可復(fù)寫式非易失性存儲(chǔ)器模塊執(zhí)行垃圾回收程序,以自可復(fù)寫式非易失性存儲(chǔ)器模塊的多個(gè)實(shí)體抹除單元獲得回收數(shù)據(jù)。存儲(chǔ)器控制電路單元還用以將回收數(shù)據(jù)存儲(chǔ)于易失性隨機(jī)存取存儲(chǔ)器。
[0023]此外,本發(fā)明還提供一種存儲(chǔ)器控制電路單元,此存儲(chǔ)器控制電路單元用于控制一可復(fù)寫式非易失性存儲(chǔ)器模塊,此存儲(chǔ)器控制電路單元包括主機(jī)接口、存儲(chǔ)器接口、非易失性隨機(jī)存取存儲(chǔ)器、易失性隨機(jī)存取存儲(chǔ)器及存儲(chǔ)器管理電路。主機(jī)接口用以電性連接至主機(jī)系統(tǒng)。存儲(chǔ)器接口用以電性連接至可復(fù)寫式非易失性存儲(chǔ)器模塊。存儲(chǔ)器管理電路電性連接至主機(jī)接口、存儲(chǔ)器接口、非易失性隨機(jī)存取存儲(chǔ)器及易失性隨機(jī)存取存儲(chǔ)器。存儲(chǔ)器管理電路用以將第一數(shù)據(jù)存儲(chǔ)于非易失性隨機(jī)存取存儲(chǔ)器,其中第一數(shù)據(jù)包括來自主機(jī)系統(tǒng)的寫入數(shù)據(jù)。存儲(chǔ)器管理電路還用以將從可復(fù)寫式非易失性存儲(chǔ)器模塊中讀取的第二數(shù)據(jù)存儲(chǔ)于易失性隨機(jī)存取存儲(chǔ)器。當(dāng)存儲(chǔ)器存儲(chǔ)裝置斷電后重新上電時(shí),存儲(chǔ)器管理電路還用以將第一數(shù)據(jù)從非易失性隨機(jī)存取存儲(chǔ)器寫入至可復(fù)寫式非易失性存儲(chǔ)器模塊