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