專利名稱:數(shù)據(jù)存儲方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機領(lǐng)域,尤其涉及ー種數(shù)據(jù)存儲方法、裝置及系統(tǒng)。
背景技術(shù):
隨著集成電路的快速發(fā)展,非易失性存儲器的使用越來越廣泛。一般來說,非易失性存儲器由多個頁存儲單元(以下簡稱頁)組成,頁是非易失性存儲器擦寫的基本単元,每個頁的擦寫次數(shù)有限,而這個次數(shù)也決定了非易失性存儲器的壽命。實際應(yīng)用中,一部分?jǐn)?shù)據(jù)需要頻繁改寫,這些數(shù)據(jù)所在的頁因此經(jīng)常要進行擦寫,這些頁的擦寫次數(shù)上限往往決定了非易失性存儲器的壽命。目如,有一種提聞非易失性存儲器壽命的方法是在存儲器中開辟一塊空間,記錄每個頁的擦寫次數(shù),當(dāng)某一頁的擦寫次數(shù)接近設(shè)定的閾值時,通知軟件將該頁的數(shù)據(jù)改寫到其他頁,其他頁根據(jù)它們的擦寫次數(shù)選取。該方案采用軟件對頁進行調(diào)度,對用戶不透明,頁數(shù)據(jù)搬移由軟件完成,效率低。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供ー種數(shù)據(jù)存儲方法、裝置及系統(tǒng),延長存儲器的壽命,增強存儲器的可靠性。為解決上述技術(shù)問題,本發(fā)明提出了ー種數(shù)據(jù)存儲方法,用于將第一數(shù)據(jù)寫入第ー邏輯地址,包括查詢緩存單元中是否有數(shù)據(jù);若緩存單元中有數(shù)據(jù),則獲得緩存單元存儲的第二數(shù)據(jù),并查找第二數(shù)據(jù)應(yīng)寫入的第二邏輯地址;將第二數(shù)據(jù)寫入到所述第一邏輯地址對應(yīng)的物理地址中,將所述第一數(shù)據(jù)寫入到緩存單元中,記錄第一邏輯地址;將所述第一邏輯地址和第二邏輯地址對應(yīng)的物理地址互換。進ー步地,上述數(shù)據(jù)存儲方法還可具有以下特點,還包括若緩存單元中沒有數(shù)據(jù),則將所述第一數(shù)據(jù)寫入到緩存單元中,記錄第一邏輯地址。進ー步地,上述數(shù)據(jù)存儲方法還可具有以下特點,所述記錄第一邏輯地址指將第一邏輯地址標(biāo)識為緩存単元數(shù)據(jù)地址,所述查找第二數(shù)據(jù)應(yīng)寫入的第二邏輯地址是指查找標(biāo)識為緩存單元數(shù)據(jù)地址的邏輯地址。進ー步地,上述數(shù)據(jù)存儲方法還可具有以下特點,所述將邏輯地址標(biāo)識為緩存單元數(shù)據(jù)地址包括為每個邏輯地址對應(yīng)的物理地址設(shè)置第一標(biāo)識位,所述第一標(biāo)識位為有效的邏輯地址為緩存単元數(shù)據(jù)地址。進ー步地,上述數(shù)據(jù)存儲方法還可具有以下特點,所述記錄第一邏輯地址是指將所述第一邏輯地址作為緩存單元數(shù)據(jù)地址保存至單獨設(shè)置的第二標(biāo)識位,所述查找第二數(shù)據(jù)應(yīng)寫入的第二邏輯地址是指從所述第二標(biāo)識位中獲得緩存單元數(shù)據(jù)地址。為解決上述技術(shù)問題,本發(fā)明還提出了ー種數(shù)據(jù)存儲裝置,用于將第一數(shù)據(jù)寫入第一邏輯地址,包括查詢模塊,用于查詢緩存單元中是否有數(shù)據(jù),并將查詢結(jié)果傳輸給處理模塊;獲取模塊,用于在緩存單元有數(shù)據(jù)時獲得緩存單元存儲的第二數(shù)據(jù),并查找第二數(shù)據(jù)應(yīng)寫入的第二邏輯地址 ;處理模塊,用于將第二數(shù)據(jù)寫入到所述第一邏輯地址對應(yīng)的物理地址中,將所述第一數(shù)據(jù)寫入到緩存單元中,并記錄第一邏輯地址;地址映射更新模塊,用于在處理模塊結(jié)束處理后,將所述第一邏輯地址和第二邏輯地址對應(yīng)的物理地址互換。進ー步地,上述數(shù)據(jù)存儲裝置還可具有以下特點,所述處理模塊還用干在所述查詢模塊的查詢結(jié)果為緩存單元中沒有數(shù)據(jù)時,將所述第一數(shù)據(jù)寫入到緩存單元中,并記錄第一邏輯地址。進ー步地,上述數(shù)據(jù)存儲裝置還可具有以下特點,還包括標(biāo)識設(shè)置模塊,用于為每個邏輯地址設(shè)置標(biāo)識位;所述標(biāo)識位用于標(biāo)識對應(yīng)邏輯地址是否為緩存單元數(shù)據(jù)應(yīng)寫入的邏輯地址,即緩存單元數(shù)據(jù)地址,所述獲取模塊根據(jù)所述標(biāo)識位查找所述第二邏輯地址,所述處理模塊通過更改對應(yīng)標(biāo)識位記錄第一邏輯地址。進ー步地,上述數(shù)據(jù)存儲裝置還可具有以下特點,所述獲取模塊還用于存儲緩存単元數(shù)據(jù)應(yīng)寫入的邏輯地址,即緩存単元數(shù)據(jù)地址;所述獲取模塊用于將存儲的緩存單元數(shù)據(jù)地址作為第二邏輯地址傳輸給處理模塊;所述處理模塊用于將所述第一邏輯地址傳輸給獲取模塊作為緩存単元數(shù)據(jù)地址存儲。為解決上述技術(shù)問題,本發(fā)明還提出了ー種數(shù)據(jù)存儲系統(tǒng),包括存儲器、緩存單元、地址映射模塊和上述任一項所述的數(shù)據(jù)存儲裝置,其中所述存儲器,用于存儲數(shù)據(jù);所述緩存単元,用于緩存待存儲數(shù)據(jù);所述地址映射模塊,用于保存所述存儲器中各存儲單元的地址映射關(guān)系,所述地址映射關(guān)系為存儲器中各存儲單元的物理地址與邏輯地址的對應(yīng)關(guān)系;所述數(shù)據(jù)存儲裝置,用于根據(jù)所述地址映射模塊保存的地址映射關(guān)系,控制對所述緩存単元和所述存儲器的讀寫,以及將更新后的地址映射關(guān)系寫入到所述地址映射模塊。本發(fā)明的數(shù)據(jù)存儲方法、裝置及系統(tǒng),利用緩存單元,實現(xiàn)了存儲器中存儲單元地址的動態(tài)映射,頻繁擦寫的存儲單元會自動映射到其他存儲單元,均衡了各存儲單元的擦寫次數(shù),提高了存儲器整體可擦寫的次數(shù),從而延長了存儲器的壽命,增強了存儲器的可靠性。
圖I為本發(fā)明實施例中數(shù)據(jù)存儲方法的流程圖;圖2為頁緩存標(biāo)識位的設(shè)置方式一示意圖;圖3A為當(dāng)頁緩存標(biāo)識位采用設(shè)置方式一設(shè)置時,擦寫邏輯地址M前后的地址映射關(guān)系圖;圖3B為在圖3A基礎(chǔ)上,擦寫邏輯地址N前后的地址映射關(guān)系圖;圖3C為在圖3B基礎(chǔ)上,擦寫邏輯地址T前后的地址映射關(guān)系圖;圖4為頁緩存標(biāo)識位的設(shè)置方式ニ示意圖;圖5A為當(dāng)頁緩存標(biāo)識位采用設(shè)置方式ニ設(shè)置時,擦寫邏輯地址M前后的地址映射關(guān)系圖;
圖5B為在圖5A基礎(chǔ)上,擦寫邏輯地址N前后的地址映射關(guān)系圖;圖5C為在圖5B基礎(chǔ)上,擦寫邏輯地址T前后的地址映射關(guān)系圖;圖6為本發(fā)明實施例中數(shù)據(jù)存儲裝置的結(jié)構(gòu)框圖;圖7為本發(fā)明實施例中數(shù)據(jù)存儲系統(tǒng)的結(jié)構(gòu)框圖。
具體實施例方式以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。在執(zhí)行本發(fā)明的數(shù)據(jù)存儲方法之前,需要做以下設(shè)置工作設(shè)置地址映射空間,保存存儲器中各存儲單元的地址映射關(guān)系,即存儲器中各存儲單元的物理地址與邏輯地址的對應(yīng)關(guān)系;設(shè)置緩存單元標(biāo)識位,用于保存緩存單元標(biāo)識。緩存單元標(biāo)識可以給出兩方面的信息,一是緩存単元中是否有數(shù)據(jù),ニ是在緩存單元中有數(shù)據(jù)時指示緩存單元中數(shù)據(jù)的邏輯地址。緩存單元標(biāo)識包括有效標(biāo)識。有效標(biāo)識用來指示緩存單元中是否有數(shù)據(jù),或者說指示緩存單元是否為空。關(guān)于緩存單元標(biāo)識位的設(shè)置方式在后面進行說明。通常,系統(tǒng)會為非易失性存儲器配置緩存單元(例如頁緩存),用來提高系統(tǒng)的并行度,使得在存儲器較長時間的擦寫過程中,系統(tǒng)可以執(zhí)行其他操作。此時不必設(shè)置緩存單元。如果系統(tǒng)沒有為非易失性存儲器配置緩存單元,則還需要設(shè)置緩存單元。例如,對于沒有緩存單元的系統(tǒng),可以在系統(tǒng)中增加ー個RAM (Random Access Memory,隨機存儲器)作為緩存單元。假設(shè)需要擦寫(即存儲)邏輯地址為M的頁,則擦寫的過程可以如圖I所示。圖I為本發(fā)明實施例中數(shù)據(jù)存儲方法的流程圖。如圖I所示,本實施例中,數(shù)據(jù)存儲方法的流程包括如下步驟步驟101,查詢頁緩存的有效標(biāo)識是否為0,若為O則執(zhí)行步驟103,否則執(zhí)行步驟102 ;存儲器由存儲單元構(gòu)成,本實施例中,存儲單元為存儲器的物理頁(稱為頁存儲単元),每個物理頁的大小可以根據(jù)需要確定。本實施例中,緩存單元是頁緩存。存儲器中的每個存儲單元都對應(yīng)ー個邏輯地址和ー個物理地址。頁緩存的有效標(biāo)識為無效,表示頁緩存為空,或者說頁緩存中沒有數(shù)據(jù),有效標(biāo)識為有效,表示頁緩存不為空,或者說頁緩存中有數(shù)據(jù)。步驟101中,用O表示無效,I表示有效。當(dāng)然,在其他實施例中,也可以用其他的值表示有效和無效。步驟102,查詢頁緩存地址值,假設(shè)查詢到頁緩存地址值為Q,執(zhí)行步驟104 ;頁緩存地址值即頁緩存中數(shù)據(jù)的邏輯地址。步驟103,將需要寫入邏輯地址M的數(shù)據(jù)寫入頁緩存,執(zhí)行步驟111 ;步驟104,查詢邏輯地址Q對應(yīng)的物理地址X ;步驟105,查詢邏輯地址M對應(yīng)的物理地址Y ;
步驟106,將頁緩存中數(shù)據(jù)寫入物理地址為y的頁;步驟107,修改邏輯地址Q對應(yīng)的物理地址為I ;步驟108,將頁緩存的有效標(biāo)識改為O ;由于此時頁緩存中數(shù)據(jù)已經(jīng)被寫入物理地址為y的頁了,因此當(dāng)前頁緩存是空的,即頁緩存中沒有數(shù)據(jù)。步驟109,將需要寫入邏輯地址M的數(shù)據(jù)寫入頁緩存;步驟110,修改邏輯地址M對應(yīng)的物理地址為X ;步驟111,將頁緩存的有效標(biāo)識改為I ;此時,頁緩存中緩存了邏輯地址為M的數(shù)據(jù)。步驟112,將頁緩存數(shù)據(jù)地址修改為M。這里,舉例說明頁緩存標(biāo)識位的設(shè)置方式。頁緩存標(biāo)識位的設(shè)置方式同樣適用于其他緩存單元標(biāo)識位的設(shè)置。頁緩存標(biāo)識位的設(shè)置方式一在地址映射空間中,為每個頁存儲単元的物理地址設(shè)置ー個第一標(biāo)識位,作為頁緩存標(biāo)識位,該第一標(biāo)識位用于保存有效標(biāo)識,有效標(biāo)識為有效的物理地址所對應(yīng)的邏輯地址為頁緩存存儲的數(shù)據(jù)的邏輯地址(即步驟102中所述頁緩存地址值),簡稱為頁緩存數(shù)據(jù)地址。如前所述,有效標(biāo)識用來指示頁緩存中是否有數(shù)據(jù),或者說指示頁緩存是否為空。圖2為頁緩存標(biāo)識位的設(shè)置方式一示意圖。如圖2所示,標(biāo)識O、標(biāo)識I、標(biāo)識M、標(biāo)識N、標(biāo)識T等都是第一標(biāo)識位,每ー個第一標(biāo)識位對應(yīng)ー個物理地址和ー個邏輯地址。以標(biāo)識M為例,標(biāo)識M對應(yīng)物理地址X和邏輯地址M。圖2中,第一標(biāo)識位寬為I比特,值為I時表示頁緩存中存放的是該邏輯地址的數(shù)據(jù)。圖2還標(biāo)識了邏輯地址和物理地址的映射關(guān)系。圖4中假設(shè)邏輯地址O對應(yīng)的物理地址為a,邏輯地址M對應(yīng)的物理地址為X’以此類推。假設(shè)初始時頁緩存為空,依次要擦寫邏輯地址M、邏輯地址N和邏輯地址T,邏輯地址M對應(yīng)的物理地址為X,邏輯地址N對應(yīng)的物理地址為Y,邏輯地址T對應(yīng)的物理地址為
Zo當(dāng)頁緩存標(biāo)識位采用設(shè)置方式一設(shè)置時,地址映射關(guān)系的變化如圖3A、圖3B和圖3C所示。圖3A為當(dāng)頁緩存標(biāo)識位采用設(shè)置方式一設(shè)置時,擦寫邏輯地址M前后的地址映射關(guān)系圖。由于初始時頁緩存為空,因此當(dāng)需要擦寫邏輯地址為M的頁時,將需要寫入邏輯地址M的數(shù)據(jù)直接寫入到頁緩存中,修改標(biāo)識M為1,表示此時頁緩存中存放的是邏輯地址M的數(shù)據(jù),如圖3A所示。圖3B為在圖3A基礎(chǔ)上,擦寫邏輯地址N前后的地址映射關(guān)系圖。擦寫邏輯地址M后,緊接著擦寫邏輯地址為N的頁。如圖3B所示,由于頁緩存非空,查詢到標(biāo)識M為1,說明頁緩存中存放的是邏輯地址為M的頁,對應(yīng)的物理地址為X。當(dāng)前需要擦寫的邏輯地址為N,邏輯地址N對應(yīng)的物理地址為y,此時先將頁緩存中的數(shù)據(jù)寫入到物理地址為I的頁,修改邏輯地址M對應(yīng)的物理地址為y,標(biāo)識M為O。頁緩存為空后,再將邏輯地址N的數(shù)據(jù)存入頁緩存,同時修改邏輯地址N的物理地址X,標(biāo)識N為I。圖3C為在圖3B基礎(chǔ)上,擦寫邏輯地址T前后的地址映射關(guān)系圖。擦寫邏輯地址N后,接下來擦寫邏輯地址為T的頁。如圖3C所示,由于頁緩存非空,查詢到標(biāo)識N為1,說明頁緩存中存放的是邏輯地址為N的頁,對應(yīng)的物理地址為X。當(dāng)前需要擦寫的邏輯地址為T,對應(yīng)的物理地址為z,此時先將頁緩存中的數(shù)據(jù)寫入到物理地址為z的頁,修改邏輯地址N對應(yīng)的物理地址為z,標(biāo)識N為O。頁緩存為空后,再將邏輯地址T的數(shù)據(jù)存入頁緩存,同時修改邏輯地址T的物理地址X,標(biāo)識T為I。從圖3A、圖3B和圖3C可以看到,原本邏輯地址M、N、T分別對應(yīng)的物理地址為X、y、z,先后擦寫完M、N、T頁后,邏輯地址M、N、T對應(yīng)的物理地址變?yōu)閥、z、x,映射范圍大,各頁擦寫次數(shù)極大地被均衡。頁緩存標(biāo)識位的設(shè)置方式ニ 在地址映射空間中,單獨設(shè)置ー個第二標(biāo)識位作為頁緩存標(biāo)識位,該第二標(biāo)識位用于保存有效標(biāo)識和頁緩存數(shù)據(jù)地址。有效標(biāo)識用來指示頁緩存中是否有數(shù)據(jù),或者說指示頁緩存是否為空,頁緩存數(shù)據(jù)地址用來指示頁緩存中數(shù)據(jù)的邏輯地址。圖4為頁緩存標(biāo)識位的設(shè)置方式ニ示意圖。如圖4所示,有效標(biāo)識和頁緩存數(shù)據(jù)地址這兩個數(shù)據(jù)段為第二標(biāo)識位。有效標(biāo)識為I比特,有效標(biāo)識值為I時頁緩存數(shù)據(jù)地址的值就是頁緩存內(nèi)數(shù)據(jù)對應(yīng)的邏輯地址,有效標(biāo)識值為O時頁緩存數(shù)據(jù)地址值無效,即頁緩存為空。圖4還標(biāo)識了邏輯地址和物理地址的映射關(guān)系。圖4中假設(shè)邏輯地址O對應(yīng)的物理地址為a,邏輯地址M對應(yīng)的物理地址為X’以此類推。仍然假設(shè)初始時頁緩存為空,依次要擦寫邏輯地址M、邏輯地址N和邏輯地址T,邏輯地址M對應(yīng)的物理地址為X,邏輯地址N對應(yīng)的物理地址為Y,邏輯地址T對應(yīng)的物理地址為z。當(dāng)頁緩存標(biāo)識位采用設(shè)置方式ニ設(shè)置時,地址映射關(guān)系的變化如圖5A、圖5B和圖5C所示。圖5A為當(dāng)頁緩存標(biāo)識位采用設(shè)置方式ニ設(shè)置時,擦寫邏輯地址M前后的地址映射關(guān)系圖。由于初始時頁緩存為空,即有效標(biāo)識為0,當(dāng)需要擦寫邏輯地址為M的頁時,將數(shù)據(jù)直接寫入到頁緩存,修改有效標(biāo)識為1,頁緩存數(shù)據(jù)地址的值更新為M,表示此時頁緩存中存放的是需要寫入邏輯地址M的數(shù)據(jù),如5A圖所示。圖5B為在圖5A基礎(chǔ)上,擦寫邏輯地址N前后的地址映射關(guān)系圖。擦寫邏輯地址M后,緊接著擦寫邏輯地址為N的頁。如圖5B所示,有效標(biāo)識為1,說明頁緩存非空,查詢頁緩存數(shù)據(jù)地址為M,說明頁緩存中存放的是需要寫入邏輯地址為M的數(shù)據(jù),對應(yīng)的物理地址 為X。當(dāng)前需要擦寫的邏輯地址為N,對應(yīng)的物理地址為y,此時先將頁緩存中的數(shù)據(jù)寫入到物理地址為y的頁,修改邏輯地址M對應(yīng)的物理地址為y,有效標(biāo)識改為O。頁緩存為空后,再將需要寫入邏輯地址N的數(shù)據(jù)存入頁緩存,同時修改邏輯地址N的物理地址為X,有效標(biāo)識改為I,頁緩存數(shù)據(jù)地址更新為N。
圖5C為在圖5B基礎(chǔ)上,擦寫邏輯地址T前后的地址映射關(guān)系圖。擦寫邏輯地址N后,接下來擦寫邏輯地址為T的頁。如圖5C所示,有效標(biāo)識為1,說明頁緩存非空,查詢頁緩存數(shù)據(jù)地址為N,說明頁緩存中存放的是需要寫入邏輯地址為N的數(shù)據(jù),對應(yīng)的物理地址為X。當(dāng)前需要擦寫的邏輯地址為T,對應(yīng)的物理地址為z,此時先將頁緩存中的數(shù)據(jù)寫入到物理地址為z的頁,修改邏輯地址N對應(yīng)的物理地址為z,有效標(biāo)識改為O。頁緩存為空后,再將邏輯地址T的數(shù)據(jù)存入頁緩存,同時修改邏輯地址T的物理地址X,有效標(biāo)識改為1,頁緩存數(shù)據(jù)地址更新為T。從圖5A、圖5B和圖5C可以看到,原本邏輯地址M、N、T分別對應(yīng)的物理地址為X、y、z,先后擦寫完M、N、T頁 后,邏輯地址M、N、T對應(yīng)的物理地址變?yōu)閥、z、x,映射范圍大,各頁擦寫次數(shù)極大地被均衡。而且,頁緩存標(biāo)識位采用設(shè)置方式ニ設(shè)置比采用設(shè)置方式ー設(shè)置更加節(jié)省頁緩存標(biāo)識所占的存儲空間,并且頁緩存標(biāo)識位的查詢效率更高。本發(fā)明的數(shù)據(jù)存儲方法,利用緩存單元,實現(xiàn)了存儲器中存儲單元地址的動態(tài)映射,頻繁擦寫的存儲單元會自動映射到其他存儲單元,均衡了各存儲單元的擦寫次數(shù),提高了存儲器整體可擦寫的次數(shù),從而延長了存儲器的壽命,增強了存儲器的可靠性。并且,本發(fā)明的數(shù)據(jù)存儲方法,整個存儲過程自動完成,效率高,對用戶透明。本發(fā)明還提出了ー種數(shù)據(jù)存儲裝置,用以實施上述的數(shù)據(jù)存儲方法。圖6為本發(fā)明實施例中數(shù)據(jù)存儲裝置的結(jié)構(gòu)框圖。如圖6所示,本實施例中,數(shù)據(jù)存儲裝置200用于將第一數(shù)據(jù)寫入第一邏輯地址,數(shù)據(jù)存儲裝置200包括查詢模塊210、獲取模塊220、處理模塊230和地址映射更新模塊240。查詢模塊210用于查詢緩存單元中是否有數(shù)據(jù),并將查詢結(jié)果傳輸給處理模塊230。獲取模塊220用于在緩存單元有數(shù)據(jù)時獲得緩存單元存儲的第二數(shù)據(jù),并查找第二數(shù)據(jù)應(yīng)寫入的第二邏輯地址。處理模塊230用于將第二數(shù)據(jù)寫入到第一邏輯地址對應(yīng)的物理地址中,將第一數(shù)據(jù)寫入到緩存單元中,并記錄第一邏輯地址。地址映射更新模塊240用于在處理模塊230結(jié)束處理后,將第一邏輯地址和第二邏輯地址對應(yīng)的物理地址互換。其中,地址映射關(guān)系為存儲器中各存儲單元的物理地址與邏輯地址的對應(yīng)關(guān)系。其中,存儲單元可以是存儲器的物理頁(即頁存儲單元),緩存單元可以是頁緩存。處理模塊230還可以用于在查詢模塊210的查詢結(jié)果為緩存單元中沒有數(shù)據(jù)時,將第一數(shù)據(jù)寫入到緩存單元中,并記錄第一邏輯地址。在本發(fā)明的其他實施例中,數(shù)據(jù)存儲裝置中還可以包括標(biāo)識設(shè)置模塊。標(biāo)識設(shè)置模塊用于為每個邏輯地址設(shè)置標(biāo)識位。該標(biāo)識位用于標(biāo)識對應(yīng)邏輯地址是否為緩存單元數(shù)據(jù)應(yīng)寫入的邏輯地址,即緩存単元數(shù)據(jù)地址。獲取模塊根據(jù)該標(biāo)識位查找第二邏輯地址,處理模塊通過更改對應(yīng)標(biāo)識位記錄第一邏輯地址。在本發(fā)明的其他實施例中,獲取模塊還可以用于存儲緩存單元數(shù)據(jù)應(yīng)寫入的邏輯地址,即緩存単元數(shù)據(jù)地址。獲取模塊還可以用于將存儲的緩存單元數(shù)據(jù)地址作為第二邏輯地址傳輸給處理模塊。處理模塊還可以用于將第一邏輯地址傳輸給獲取模塊作為緩存單元數(shù)據(jù)地址存儲。 在本發(fā)明的其他實施例中,數(shù)據(jù)存儲裝置還可以包括緩存單元設(shè)置模塊。緩存單元設(shè)置模塊用于設(shè)置緩存單元。通常,系統(tǒng)會為非易失性存儲器配置緩存單元,用來提高系統(tǒng)的并行度,使得在存儲器較長時間的擦寫過程中,系統(tǒng)可以執(zhí)行其他操作。此時不必設(shè)置緩存單元。如果系統(tǒng)沒有為非易失性存儲器配置緩存單元,則還需要設(shè)置緩存單元。例如,對于沒有緩存單元的系統(tǒng),緩存単元設(shè)置模塊可以在系統(tǒng)中增加ー個RAM作為緩存単元。在本發(fā)明的其他實施例中,數(shù)據(jù)存儲裝置還可以包括地址映射設(shè)置模塊。地址映射設(shè)置模塊用于設(shè)置地址映射空間,保存存儲器中各存儲單元的地址映射關(guān)系。本發(fā)明的數(shù)據(jù)存儲裝置,利用緩存單元,實現(xiàn)了存儲器中存儲單元地址的動態(tài)映射,頻繁擦寫的存儲單元會自動映射到其他存儲單元,均衡了各存儲單元的擦寫次數(shù),提高了存儲器整體可擦寫的次數(shù),從而延長了存儲器的壽命,增強了存儲器的可靠性。本發(fā)明還提出了ー種數(shù)據(jù)存儲系統(tǒng)。圖7為本發(fā)明實施例中數(shù)據(jù)存儲系統(tǒng)的結(jié)構(gòu)框圖。如圖7所示,本實施例中,數(shù)據(jù)存儲系統(tǒng)包括存儲器100、緩存單元400、地址映射模塊300和數(shù)據(jù)存儲裝置200。其中,存儲器100用于存儲數(shù)據(jù)。緩存單元400用于緩存待存儲數(shù)據(jù)。地址映射模塊300用于保存存儲器100中各存儲單元的地址映射關(guān)系,地址映射關(guān)系為存儲器中各存儲單元的物理地址與邏輯地址的對應(yīng)關(guān)系。數(shù)據(jù)存儲裝置200用于根據(jù)地址映射模塊300保存的地址映射關(guān)系,控制對緩存單元400和存儲器100的讀寫,以及將更新后的地址映射關(guān)系寫入到地址映射模塊300。其中,地址映射模塊300也即前述提及的地址映射空間。該數(shù)據(jù)存儲系統(tǒng)中,數(shù)據(jù)存儲裝置200采用本發(fā)明前述的數(shù)據(jù)存儲方法,將待存儲數(shù)據(jù)存儲到緩存單元400和存儲器100中。數(shù)據(jù)存儲裝置200在前面已有描述,此處不再贅述。本發(fā)明的數(shù)據(jù)存儲系統(tǒng),利用緩存單元,實現(xiàn)了存儲器中存儲單元地址的動態(tài)映射,頻繁擦寫的存儲單元會自動映射到其他存儲單元,均衡了各存儲單元的擦寫次數(shù),提高了存儲器整體可擦寫的次數(shù),從而延長了存儲器的壽命,增強了存儲器的可靠性。 以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.ー種數(shù)據(jù)存儲方法,用于將第一數(shù)據(jù)寫入第一邏輯地址,其特征在于,包括 查詢緩存單元中是否有數(shù)據(jù); 若緩存單元中有數(shù)據(jù),則獲得緩存單元存儲的第二數(shù)據(jù),并查找第二數(shù)據(jù)應(yīng)寫入的第ニ邏輯地址; 將第二數(shù)據(jù)寫入到所述第一邏輯地址對應(yīng)的物理地址中,將所述第一數(shù)據(jù)寫入到緩存単元中,記錄第一邏輯地址; 將所述第一邏輯地址和第二邏輯地址對應(yīng)的物理地址互換。
2.根據(jù)權(quán)利要求I所述的數(shù)據(jù)存儲方法,其特征在于,還包括 若緩存單元中沒有數(shù)據(jù),則將所述第一數(shù)據(jù)寫入到緩存單元中,記錄第一邏輯地址。
3.根據(jù)權(quán)利要求I或2所述的數(shù)據(jù)存儲方法,其特征在于,所述記錄第一邏輯地址指將第一邏輯地址標(biāo)識為緩存単元數(shù)據(jù)地址,所述查找第二數(shù)據(jù)應(yīng)寫入的第二邏輯地址是指查找標(biāo)識為緩存単元數(shù)據(jù)地址的邏輯地址。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)存儲方法,其特征在于,所述將邏輯地址標(biāo)識為緩存單元數(shù)據(jù)地址包括為每個邏輯地址對應(yīng)的物理地址設(shè)置第一標(biāo)識位,所述第一標(biāo)識位為有效的邏輯地址為緩存単元數(shù)據(jù)地址。
5.根據(jù)權(quán)利要求I或2所述的數(shù)據(jù)存儲方法,其特征在于,所述記錄第一邏輯地址是指將所述第一邏輯地址作為緩存單元數(shù)據(jù)地址保存至單獨設(shè)置的第二標(biāo)識位,所述查找第二數(shù)據(jù)應(yīng)寫入的第二邏輯地址是指從所述第二標(biāo)識位中獲得緩存單元數(shù)據(jù)地址。
6.ー種數(shù)據(jù)存儲裝置,用于將第一數(shù)據(jù)寫入第一邏輯地址,其特征在于,包括 查詢模塊,用于查詢緩存單元中是否有數(shù)據(jù),并將查詢結(jié)果傳輸給處理模塊; 獲取模塊,用于在緩存單元有數(shù)據(jù)時獲得緩存單元存儲的第二數(shù)據(jù),并查找第二數(shù)據(jù)應(yīng)寫入的第二邏輯地址; 處理模塊,用于將第二數(shù)據(jù)寫入到所述第一邏輯地址對應(yīng)的物理地址中,將所述第一數(shù)據(jù)寫入到緩存單元中,并記錄第一邏輯地址; 地址映射更新模塊,用于在處理模塊結(jié)束處理后,將所述第一邏輯地址和第二邏輯地址對應(yīng)的物理地址互換。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)存儲裝置,其特征在于,所述處理模塊還用于在所述查詢模塊的查詢結(jié)果為緩存單元中沒有數(shù)據(jù)時,將所述第一數(shù)據(jù)寫入到緩存單元中,并記錄第一邏輯地址。
8.根據(jù)權(quán)利要求6或7所述的數(shù)據(jù)存儲裝置,其特征在于,還包括標(biāo)識設(shè)置模塊,用于為每個邏輯地址設(shè)置標(biāo)識位; 所述標(biāo)識位用于標(biāo)識對應(yīng)邏輯地址是否為緩存單元數(shù)據(jù)應(yīng)寫入的邏輯地址,即緩存單元數(shù)據(jù)地址,所述獲取模塊根據(jù)所述標(biāo)識位查找所述第二邏輯地址,所述處理模塊通過更改對應(yīng)標(biāo)識位記錄第一邏輯地址。
9.根據(jù)權(quán)利要求6或7所述的數(shù)據(jù)存儲裝置,其特征在于,所述獲取模塊還用于存儲緩存單元數(shù)據(jù)應(yīng)寫入的邏輯地址,即緩存單元數(shù)據(jù)地址; 所述獲取模塊用于將存儲的緩存單元數(shù)據(jù)地址作為第二邏輯地址傳輸給處理模塊; 所述處理模塊用于將所述第一邏輯地址傳輸給獲取模塊作為緩存単元數(shù)據(jù)地址存儲。
10.ー種數(shù)據(jù)存儲系統(tǒng),其特征在于,包括存儲器、緩存單元、地址映射模塊和權(quán)利要求6至9任一項所述的數(shù)據(jù)存儲裝置,其中 所述存儲器,用于存儲數(shù)據(jù); 所述緩存単元,用于緩存待存儲數(shù)據(jù); 所述地址映射模塊,用于保存所述存儲器中各存儲單元的地址映射關(guān)系,所述地址映射關(guān)系為存儲器中各存儲單元的物理地址與邏輯地址的對應(yīng)關(guān)系; 所述數(shù)據(jù)存儲裝置,用于根據(jù)所述地址映射模塊保存的地址映射關(guān)系,控制對所述緩 存單元和所述存儲器的讀寫,以及將更新后的地址映射關(guān)系寫入到所述地址映射模塊。
全文摘要
本發(fā)明涉及一種數(shù)據(jù)存儲方法、裝置及系統(tǒng)。數(shù)據(jù)存儲方法用于將第一數(shù)據(jù)寫入第一邏輯地址,包括查詢緩存單元中是否有數(shù)據(jù);若緩存單元中有數(shù)據(jù),則獲得緩存單元存儲的第二數(shù)據(jù),并查找第二數(shù)據(jù)應(yīng)寫入的第二邏輯地址;將第二數(shù)據(jù)寫入到所述第一邏輯地址對應(yīng)的物理地址中,將所述第一數(shù)據(jù)寫入到緩存單元中,記錄第一邏輯地址;將所述第一邏輯地址和第二邏輯地址對應(yīng)的物理地址互換。本發(fā)明的數(shù)據(jù)存儲方法、裝置及系統(tǒng),利用緩存單元,實現(xiàn)了存儲器中存儲單元地址的動態(tài)映射,頻繁擦寫的存儲單元會自動映射到其他存儲單元,均衡了各存儲單元的擦寫次數(shù),提高了存儲器整體可擦寫的次數(shù),從而延長了存儲器的壽命,增強了存儲器的可靠性。
文檔編號G06F12/08GK102650972SQ20121009847
公開日2012年8月29日 申請日期2012年4月6日 優(yōu)先權(quán)日2012年4月6日
發(fā)明者劉娟 申請人:國民技術(shù)股份有限公司