一種利用mram存儲小文件的存儲結構的制作方法
【技術領域】
[0001]本發(fā)明涉及固態(tài)硬盤,尤其涉及一種利用MRAM存儲小文件的存儲結構。
【背景技術】
[0002]現(xiàn)在計算機、智能手機、平板電腦中,用戶數(shù)據(jù)、文件被存在硬盤,或者NAND閃存芯片中以及由NAND閃存組成的固態(tài)硬盤里。NAND和固態(tài)硬盤取代傳統(tǒng)的機械硬盤又是一個產(chǎn)業(yè)發(fā)展的大趨勢。
[0003]硬盤和固態(tài)硬盤內(nèi)的NAND閃存都是整塊讀寫的塊設備(block device),最小可讀取的單元叫頁(page),最小可擦除的單元叫塊(block),一個塊往往由很多頁組成,塊擦除后里面的頁可以進行單獨的寫入操作。
[0004]NAND閃存的一個問題是NAND具有有限的壽命。里面的每一個頁經(jīng)過一定次數(shù)的擦寫以后,就會永久失效不能繼續(xù)使用。目前的產(chǎn)業(yè)發(fā)展趨勢是NAND的容量和數(shù)據(jù)密度增長非???,但卻是以降低壽命為代價??刹翆懘螖?shù)從最初的10萬次降低到目前的3000次左右。
[0005]如圖1所示,手機與計算機的文件操作方式如下:
[0006](I)應用軟件向操作系統(tǒng)發(fā)出打開、關閉、讀、寫文件指令;
[0007](2)操作系統(tǒng)中的文件系統(tǒng)部分把讀、寫文件的指令轉化為讀、寫存儲塊的指令;
[0008](3)NAND驅動與管理軟件接受讀寫存儲塊區(qū)的指令,進行緩存、寫均衡等優(yōu)化,向芯片發(fā)出讀page,寫block等指令。
[0009]在手機中,NAND驅動與管理軟件通常作為與操作系統(tǒng)緊密相關的軟件模塊,在主機芯片上運行;在計算機中,NAND驅動與管理軟件通常在固態(tài)硬盤的主控芯片上運行。
[0010]文件系統(tǒng)是操作系統(tǒng)軟件中的一個重要部分,負責解決文件的存儲問題。它會把文件劃分成一個個的塊,一般每一個塊和NAND閃存中的一個頁對應。每當一個新文件創(chuàng)建,文件系統(tǒng)會分配給它一個塊,當一個塊寫滿后,再分配一個新的塊。由于系統(tǒng)中很多文件都在增長,一個文件中的不同的塊常常地址不連續(xù),這就是文件的碎片化。并且,一個文件刪除后,釋放出的空閑塊會被新的文件占用。所以,隨著產(chǎn)品的使用,文件的碎片化會越來越嚴重。
[0011]隨著當代技術的發(fā)展,NAND閃存的密度越來越大。于此同時,頁和塊的尺寸也變得越來越大。頁從幾年前的512字節(jié)(byte)變成了今天的16Kbyte ;塊從幾年前的16Kbyte變成了今天的8192Kbyte。
[0012]而一個計算機系統(tǒng)中相當數(shù)量的文件是小文件,從10-20字節(jié),到幾百個字節(jié)。小文件中最典型的例子就是文件夾目錄。在大部分文件系統(tǒng)中,目錄也是作為一個單獨的文件存儲的。大部分目錄文件都很小,而且被修改的幾率非常高。不適合存儲在block device里。
[0013]計算機文件系統(tǒng)中文件的最小存儲單元,一般和NAND的頁一樣大。因此NAND越來越不適于存儲這樣的小文件。為存儲一個20字節(jié)的文件,要占用16Kbyte的空間,存儲空間的利用率非常低。為修改這樣一個20字節(jié)的小文件,甚至可能要對8192Kbyte的數(shù)據(jù)進行擦除重寫,極大地加重了系統(tǒng)的負擔。
[0014]本領域技術人員致力于提供一種存儲小文件的方法,能夠提高的存儲空間的利用效率,同時降低系統(tǒng)的負擔。
【發(fā)明內(nèi)容】
[0015]有鑒于現(xiàn)有技術的上述缺陷,本發(fā)明所要解決的技術問題是提供一種存儲小文件的存儲結構,能夠提高的存儲空間的利用效率,同時降低系統(tǒng)的負擔。
[0016]本發(fā)明的重要背景是MRAM技術的發(fā)展。MRAM是一種新的內(nèi)存和存儲技術,可以像RAM 一樣快速隨機讀寫,還可以像NAND閃存一樣在斷電后永久保留數(shù)據(jù)。不像NAND,MRAM可以無限多次地擦寫。但預計未來相當長一段時間內(nèi),MRAM的容量比NAND低,成本比NAND尚O
[0017]本發(fā)明中,采用MRAM協(xié)同NAND閃存或者硬盤等塊設備一起存儲文件,利用成本更低的塊設備存儲大文件,利用能夠隨機讀寫的MRAM存儲小文件。
[0018]本發(fā)明提供一種利用MRAM存儲小文件的存儲結構,包括MRAM與塊存儲設備,MRAM包括小文件存儲區(qū),用于存儲小文件,小文件是指文件大小小于或等于一個頁的文件,塊存儲設備用于存儲大文件,大文件是指文件大小大于一個頁的文件,小文件存儲區(qū)的塊的容量小于塊存儲設備的塊的容量。
[0019]本發(fā)明提供的利用MRAM存儲小文件的存儲結構,存儲小文件采用的塊的容量小于塊存儲設備的塊的容量,因而能夠提尚存儲空間的利用率。
[0020]在修改文件時,首先需要擦除的塊較小,能夠降低系統(tǒng)的負擔;其次修改操作是在MRAM中完成,而不是在硬盤或NAND中完成,在MRAM中操作要比在硬盤或NAND中快得多,整個系統(tǒng)的性能會因此提升。
[0021]另外減少了對NAND的寫入,延長了系統(tǒng)壽命。
[0022]進一步地,小文件存儲區(qū)至少包括兩個存儲區(qū),存儲區(qū)的塊的容量依次增大。
[0023]設置不同塊容量的存儲區(qū),能夠將不同大小的文件存儲在不同塊容量的存儲區(qū),進一步提高的存儲空間的利用率,降低系統(tǒng)的負擔。
[0024]進一步地,小文件存儲區(qū)中最大的塊的容量等于設定值。
[0025]進一步地,根據(jù)第一次寫入的數(shù)據(jù),創(chuàng)建文件時在合適的存儲區(qū)中選擇一個空閑塊分配給文件,合適的存儲區(qū)是指存儲區(qū)的塊是能夠容納文件的最小的塊。
[0026]進一步地,創(chuàng)建文件時在小文件存儲區(qū)找不到合適的存儲區(qū),將文件交給下一級軟件處理,由下一級軟件決定存入緩存、直接寫入塊存儲設備,或做其他處理。
[0027]本發(fā)明的軟件涉及對計算機文件系統(tǒng)的修改,如圖1所示,文件系統(tǒng)的下一級軟件是指NAND管理軟件。由于有可能存在緩存機制。所以交給下一級軟件處理不一定馬上寫回到NAND中,也可能留在MRAM的寫緩存中。
[0028]進一步地,文件修改后,如果文件的大小大于對應的存儲區(qū)的塊的容量,在下一個存儲區(qū)中選擇一個空閑塊分配給文件,并釋放對應的存儲區(qū)的塊。
[0029]進一步地,文件修改后,如果文件的大小小于或等于對應的存儲區(qū)的上一個存儲區(qū)的塊的容量,在上一個存儲區(qū)中選擇一個空閑塊分配給文件,并釋放對應的存儲區(qū)的塊。
[0030]進一步地,MRAM通過DDR DRAM接口與手機的主控芯片或計算機的CPU連接。
[0031]進一步地,MRAM集成在固態(tài)硬盤中。
[0032]進一步地,小文件存儲區(qū)還用于存儲大文件的尾頁,即最后一個未寫滿的頁,減少了對NAND的寫入,延長了系統(tǒng)壽命。
[0033]與現(xiàn)有技術相比,本發(fā)明提供的利用MRAM存儲小文件的存儲結構具有以下有益效果:
[0034](I)存儲小文件采用的塊的容量小于塊存儲設備的塊的容量,因而能夠提高存儲空間的利用率;
[0035](2)在修改文件時,首先需要擦除的塊較小,能夠降低系統(tǒng)的負擔;其次修改操作是在MRAM中完成,而不是在硬盤或NAND中完成,在MRAM中操作要比在硬盤或NAND中快得多,整個系統(tǒng)的性能會因此提升;
[0036](3)小文件存儲區(qū)用于存儲小文件,還用于存儲大文件的尾頁,減少了對NAND的寫入,延長了系統(tǒng)壽命。
[0037]以下將結合附圖對本發(fā)明的構思、具體結構及產(chǎn)生的技術效果作進一步說明,以充分地了解本發(fā)明的目的、特征和效果。
【附圖說明】
[0038]圖1是現(xiàn)有技術中文件操作流程圖;
[0039]圖2是本發(fā)明的一個實施例的利用MRAM存儲小文件的存儲結構的示意圖;
[0040]圖3是本發(fā)明的另一個實施例的利用MRAM存儲小文件的存儲結構的示意圖。
【具體實施方式】
[0041]如圖2所示,本發(fā)明的一個實施例的利用MRAM存儲小文件的存儲結構,包括MR