數據寫入方法、裝置及存儲器的制造方法
【技術領域】
[0001]本發明涉及數據存儲技術領域,特別是涉及一種數據寫入方法、裝置及存儲器。
【背景技術】
[0002]非易失性存儲器NVM (Non-Volatile Memory)的特點是在斷電時不會丟失內容。例如閃速存儲器(Flash Memory)、PCM (Phase Change Memory,相變存儲器)、FRAM(Ferroelectric Random Access Memory,鐵電介質存儲器)等,這些存儲器即使在斷電后仍能保持片內信息。目前非易失性存儲器中應用最廣的是Flash,但它的讀寫速度很難與DRAM (Dynamic Random Access Memory,動態隨機存取存儲器)相媲美,所以只能替代磁盤作為外存。而像PCM和FRAM這類存儲器具有讀寫速度快、密度大、可字節尋址等特點,被視為下一代新型非易失性存儲器,并可以用來替換DRAM和SDRAM。其中PCM是NVM中最典型的代表,下面以PCM為例進行說明。
[0003]PCM是利用特殊材料(硫族化合物GST)在晶態和非晶態之間相互轉化時所表現出來的導電性差異來存儲數據的,并且存儲數據通過寫操作來實現,寫操作包括:SET操作(寫入0)和RESET操作(寫入1)。現有的NVM設備中,在寫入數據時,通常在存儲介質中選取一個存儲塊,并且將待寫入數據寫入到該存儲塊,而不考慮所選的存儲塊中的存儲位的值,這使得相同位置上存儲塊中存儲位的值與待寫入數據的數據位的值可能不同,甚至可能完全不同,例如:待寫入數據為8*8大小,并且待寫入數據的每個數據位的值都為1,而存儲塊中的存儲位的值都為0,那么在寫入時需要對存儲塊中的每個存儲位的值都進行改寫,導致在數據寫入時,需要對存儲中存儲位的寫操作較多。
[0004]在NVM的應用設備中,不管是NVM的RESET操作,還是SET操作,NVM的寫操作能耗比讀操作能耗要高10-100倍左右。所以在NVM在工作過程中,大量寫操作不僅會帶來高能耗,而且還會降低NVM的使用壽命。
【發明內容】
[0005]本發明實施例中提供了一種數據寫入方法、裝置及存儲器,可減少寫入數據時的寫操作次數,降低了由于寫操作的能耗,提高了 NVM的使用壽命。
[0006]為了解決上述技術問題,本發明實施例公開了如下技術方案:
[0007]第一方面,本發明實施例提供了一種數據寫入方法,用于向非易失性存儲介質NVM中寫入數據,所述方法包括:
[0008]從待寫入數據塊中確定所述待寫入數據塊的樣本數據塊;
[0009]將所述待寫入數據塊的樣本數據塊分別與預設樣本集中的N個樣本數據塊進行比較,其中,所述N個樣本數據塊中的每一個樣本數據塊的大小與所述待寫入數據塊的樣本數據塊的大小相同,所述N個樣本數據塊分別從所述NVM中的N個空閑地址空間的數據塊中獲得,其中,N為不小于2的整數;
[0010]在所述N個樣本數據塊中確定與所述待寫入數據塊的樣本數據塊匹配度最高的一個樣本數據塊作為目標樣本數據塊;
[0011]將所述待寫入數據塊寫入與所述目標樣本數據塊對應的空閑地址空間中。
[0012]結合第一方面,在第一方面第一種可能的實現方式中,所述將所述待寫入數據塊寫入與所述目標樣本數據塊對應的空閑地址空間中,包括:
[0013]在所述N個空閑地址空間的數據塊中確定與所述目標樣本數據塊對應的目標數據塊;
[0014]確定所述目標數據塊中與所述待寫入數據塊不同的數據位;
[0015]在存儲所述目標數據塊的地址空間中,根據所述待寫入數據塊對確定的與所述待寫入數據塊不同的數據位的數據進行改寫。
[0016]結合第一方面,在第一方面第二種可能的實現方式中,所述在所述N個樣本數據塊中確定與所述待寫入數據塊的樣本數據塊匹配度最高的一個樣本數據塊作為目標樣本數據塊,包括:
[0017]分別計算所述待寫入數據塊的樣本數據塊與所述N個樣本數據塊的相似率,所述相似率為所述待寫入數據塊的樣本數據塊中與所述樣本集中樣本數據塊中相同的數據位的數量與所述待寫入數據塊的樣本數據塊內所有數據位的數量的比值;
[0018]將所述N個樣本數據塊中與所述待寫入數據塊的樣本數據塊相似率最高的樣本數據塊確定為目標樣本數據塊。
[0019]結合第一方面,在第一方面第三種可能的實現方式中,所述方法還包括:
[0020]從所述預設樣本集中刪除與所述目標樣本數據塊對應的樣本數據塊;
[0021]判斷所述預設樣本集中的樣本數據塊的數量是否小于預設數量;
[0022]當所述預設樣本集中的樣本數據塊的數量小于所述預設數量時,從所述NVM中的空閑地址空間的數據塊中獲取新的樣本數據塊并加入到所述預設樣本集中,對所述預設樣本集進行更新。
[0023]第二方面,本發明實施例提供了數據寫入裝置,用于向非易失性存儲介質NVM中寫入數據,包括:
[0024]樣本數據塊確定模塊,用于從待寫入數據塊中確定所述待寫入數據塊的樣本數據塊;
[0025]樣本數據塊比較模塊,用于將所述待寫入數據塊的樣本數據塊分別與預設樣本集中的N個樣本數據塊進行比較,其中,所述N個樣本數據塊中的每一個樣本數據塊的大小與所述待寫入數據塊的樣本數據塊的大小相同,所述N個樣本數據塊分別從所述NVM中的N個空閑地址空間的數據塊中獲得,其中,N為不小于2的整數;
[0026]目標樣本數據塊確定模塊,用于在所述N個樣本數據塊中確定與所述待寫入數據塊的樣本數據塊匹配度最高的一個樣本數據塊作為目標樣本數據塊;
[0027]寫入模塊,用于將所述待寫入數據塊寫入與所述目標樣本數據塊對應的空閑地址空間中。
[0028]結合第二方面,在第二方面第一種可能的實現方式中,所述寫入模塊,包括:
[0029]目標數據塊確定單元,在所述N個空閑地址空間的數據塊中確定與所述目標樣本數據塊對應的目標數據塊;
[0030]數據位確定單元,用于確定所述目標數據塊中與所述待寫入數據塊不同的數據位;
[0031]數據改寫單元,用于在存儲所述目標數據塊的地址空間中,根據所述待寫入數據塊對確定的與所述待寫入數據塊不同的數據位的數據進行改寫。
[0032]結合第二方面,在第二方面第二種可能的實現方式中,所述目標樣本數據塊確定模塊,包括:
[0033]相似率計算單元,分別計算所述待寫入數據塊的樣本數據塊與所述N個樣本數據塊的相似率,所述相似率為所述待寫入數據塊的樣本數據塊中與所述樣本集樣本數據塊中相同的數據位的數量與所述待寫入數據塊的樣本數據塊內所有數據位的數量的比值;
[0034]確定單元,用于將所述N個樣本數據塊中與所述待寫入數據塊的樣本數據塊相似率最高的樣本數據塊確定為目標樣本數據塊。
[0035]結合第二方面,在第二方面第三種可能的實現方式中,所述裝置還包括:
[0036]樣本數據塊刪除模塊,用于從所述預設樣本集中刪除與所述目標樣本數據塊對應的樣本數據塊;
[0037]判斷模塊,用于判斷所述預設樣本集中的樣本數據塊的數量是否小于預設數量;
[0038]更新模塊,用于當所述預設樣本集中的樣本數據塊的數量小于所述預設數量時,從所述NVM中的空閑地址空間的數據塊中獲取新的樣本數據塊并加入到所述預設樣本集中,對所述預設樣本集進行更新。
[0039]第三方面,本發明實施例提供了一種存儲器,包括:非易失性存儲介質NVM和NVM控制器,其中,
[0040]所述VNM,用于存儲數據;
[0041]所述NVM控制器,用于從待寫入數據塊中確定所述待寫入數據塊的樣本數據塊;
[0042]將所述待寫入數據塊的樣本數據塊分別與預設樣本集中的N個樣本數據塊進行比較,其中,所述N個樣本數據塊中的每一個樣本數據塊的大小與所述待寫入數據塊的樣本數據塊的大小相同,所述N個樣本數據塊分別從所述NVM中的N個空閑地址空間的數據塊中獲得,其中,N為不小于2的整數;
[0043]在所述N個樣本數據塊中確定與所述待寫入數據塊的樣本數據塊匹配度最高的一個樣本數據塊作為目標樣本數據塊;
[0044]將所述待寫入數據塊寫入與所述目標樣本數據塊對應的空閑地址空間中。
[0045]結合第三方面,在第三方面第一種可能的實現方式中,所述NVM控制器具體用于:
[0046]在所述N個空閑地址空間的數據塊中確定與所述目標樣本數據塊對應的目標數據塊;
[0047]確定所述目標數據塊中與所述待寫入數據塊的樣本數據