亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種寫存儲器的實現(xiàn)方法

文檔序號:6447318閱讀:227來源:國知局
專利名稱:一種寫存儲器的實現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)及通信領(lǐng)域的信息存儲技術(shù),尤其涉及一種寫存儲器的實現(xiàn)方法。
背景技術(shù)
在計算機(jī)系統(tǒng)中,由文件系統(tǒng)對存儲器中的數(shù)據(jù)進(jìn)行管理。當(dāng)需要對存儲器中的數(shù)據(jù)進(jìn)行讀寫操作時,由文件系統(tǒng)確定需要操作的存儲位置,然后從存儲器中讀出數(shù)據(jù)或?qū)?shù)據(jù)寫入存儲器。
閃存(FLASH)作一種非易失存儲器,在計算機(jī)系統(tǒng)中被廣泛地應(yīng)用于存儲數(shù)據(jù)。文件系統(tǒng)向FLASH寫數(shù)據(jù)和從FLASH讀數(shù)據(jù)的最小操作單位一般為512-528個字節(jié)(Bytes);由于FLASH的特性,文件系統(tǒng)在向FLASH寫入數(shù)據(jù)時,如果欲寫入位置已經(jīng)存在數(shù)據(jù),則需將該單元位置數(shù)據(jù)擦除后,方能寫入,一般需要擦除16-32Kbytes。
例如,文件系統(tǒng)需要向FLASH中已存在數(shù)據(jù)的第3扇區(qū)寫入一個512字節(jié)的數(shù)據(jù)時,此時需要將該第1-32扇區(qū)的內(nèi)容讀入內(nèi)存,在內(nèi)存中將第3扇區(qū)的內(nèi)容替換掉,并擦除1-32扇區(qū)的所有內(nèi)容,然后再寫回FLASH 1-32扇區(qū)的內(nèi)容。
由于文件系統(tǒng)在對FLASH中已存儲數(shù)據(jù)的位置進(jìn)行寫操作時,需要進(jìn)行讀數(shù)據(jù)、擦除數(shù)據(jù)和寫入數(shù)據(jù)各一次,因而存在以下缺點(diǎn)1、由于FLASH的擦除數(shù)據(jù)和寫入數(shù)據(jù)速度較慢,因此,導(dǎo)致整個寫操作的執(zhí)行效率低。
2、每次向FLASH寫入數(shù)據(jù)時,要對FLASH進(jìn)行多次操作,而對存儲器的高頻率的操作,導(dǎo)致存儲器的使用壽命縮短。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種寫存儲器的實現(xiàn)方法,以解決現(xiàn)有的文件系統(tǒng)每次執(zhí)行寫操作時多次對存儲器操作而導(dǎo)致執(zhí)行效率低和影響存儲器使用壽命的問題。
一種寫存儲器的實現(xiàn)方法,包括如下步驟A、在內(nèi)存中建立映射表,并將文件系統(tǒng)中描述文件存儲位置的存儲位置描述表信息映射到該映射表中;B、所述文件系統(tǒng)將需要寫入存儲器的數(shù)據(jù)保存到內(nèi)存中,并在所述映射表中記錄在存儲器中為該數(shù)據(jù)分配的存儲位置和在內(nèi)存中的實際存儲位置之間的對應(yīng)關(guān)系;C、所述文件系統(tǒng)接收到操作所述數(shù)據(jù)的請求時,根據(jù)該數(shù)據(jù)在存儲器中的存儲位置查詢所述映射表得到數(shù)據(jù)在內(nèi)存的實際存儲位置,并在內(nèi)存操作所述數(shù)據(jù);D、至少在系統(tǒng)空閑或卸載文件系統(tǒng)時,根據(jù)所述存儲位置描述表和映射表中對所述數(shù)據(jù)的存儲位置描述,將保存在內(nèi)存中所述數(shù)據(jù)寫入存儲器的對應(yīng)位置并修改所述存儲位置描述表。
所述步驟B包括如下步驟B1、文件系統(tǒng)在接收到向存儲器寫入數(shù)據(jù)的請求時在存儲器中為該數(shù)據(jù)分配存儲位置并記錄在所述映射表中;B2、在內(nèi)存中為所述數(shù)據(jù)分配實際存儲位置并記錄在所述映射表中,在該表中使數(shù)據(jù)在存儲器的存儲位置與在內(nèi)存的實際存儲位置形成對應(yīng)關(guān)系;以及B3、將所述數(shù)據(jù)寫入內(nèi)存的實際存儲位置。
所述步驟C包括如下步驟C1、接收到從存儲器讀取數(shù)據(jù)的請求時查詢映射表確定該數(shù)據(jù)在存儲器的存儲位置;C2、查詢所述存儲器的存儲位置是否對應(yīng)有數(shù)據(jù)在內(nèi)存的實際存儲位置,如果是,則從內(nèi)存的該實際存儲位置獲取數(shù)據(jù)完成操作,否則,從存儲器獲取數(shù)據(jù)完成操作。
步驟D中,當(dāng)系統(tǒng)空閑時將能整除存儲器最小擦寫單位數(shù)據(jù)量的所述數(shù)據(jù)寫入存儲器未使用的數(shù)據(jù)區(qū),修改所述存儲位置描述表和映射表,以及釋放相應(yīng)的內(nèi)存。
步驟D中,當(dāng)系統(tǒng)卸載文件系統(tǒng)或存儲器時,將內(nèi)存中所有的所述數(shù)據(jù)寫入存儲器,并在所述存儲位置描述表中記錄數(shù)據(jù)在存儲器中的位置。
本發(fā)明在文件系統(tǒng)執(zhí)行寫操作時先將數(shù)據(jù)暫存在內(nèi)存中,并且后續(xù)對該數(shù)據(jù)的讀寫操作在內(nèi)存中進(jìn)行,在系統(tǒng)空閑或卸載文件系統(tǒng)時才將數(shù)據(jù)寫入到存儲器,避免了每次執(zhí)行寫操作都需要對存儲器進(jìn)行讀、擦和寫操作,減少了擦、寫存儲器的頻率。因此,本發(fā)明不僅寫操作的效率高,而且能夠延長存儲器的使用壽命。


圖1為FAT表映射到內(nèi)存的示意圖;圖2為本發(fā)明的流程圖;圖3為內(nèi)存映射表與FAT表中對應(yīng)的存儲位置關(guān)系示意圖。
具體實施例方式
本實施例主要以文件分配表(File Allocation Table,F(xiàn)AT)文件系統(tǒng)對本發(fā)明進(jìn)行說明,其中存儲位置描述表對應(yīng)FAT表。本發(fā)明所稱數(shù)據(jù)可以是一個文件的全部數(shù)據(jù),也可以是一個文件中的部分?jǐn)?shù)據(jù)。
計算機(jī)系統(tǒng)中的文件系統(tǒng)主要完成三項功能跟蹤記錄存儲器上中被耗用的空間和自由空間,維護(hù)目錄名和文件名,跟蹤記錄每一個文件的物理存儲位置。FAT文件系統(tǒng)采用文件描述表(FDT)來記錄文件的屬性信息,如存儲文件的起始位置、文件長度(大小)等;通過FAT表來記錄文件的物理存儲位置,F(xiàn)AT表是在FAT文件系統(tǒng)中用于磁盤數(shù)據(jù)(文件)索引和定位的一種鏈?zhǔn)奖恚碇杏涗洿鎯Ω魑募拇靥?。?Cluster)是將某一線形范圍的物理位置(地址)形成一個管理單位,如磁盤的最小單位是一個扇區(qū),一個簇可以根據(jù)需要包含兩個、四個甚至更多的扇區(qū)。FLASH的讀寫操作最小單位為一個頁/扇區(qū)(Page/Sector),擦除的最小單位為一個塊(Block),每塊包含16-64或更多個扇區(qū)不等(視不同的存儲器)。
為了提高FAT文件系統(tǒng)執(zhí)行寫操作的效率,本發(fā)明在執(zhí)行寫操作時,先將數(shù)據(jù)暫存到內(nèi)存而不直接對存儲器進(jìn)行操作,以提高執(zhí)行效率和訪問速度,在系統(tǒng)空閑或卸載文件系統(tǒng)時再將數(shù)據(jù)寫回存儲器。
為了使數(shù)據(jù)在存儲器的存儲位置與在內(nèi)存的存儲位置保持對應(yīng)關(guān)系,在每次裝載(mount)存儲器時,先獲得FAT表所描述的最大的簇數(shù)量,并建立相應(yīng)的內(nèi)存映射表,參閱圖1所示。
建立內(nèi)存映射表時先獲知文件系統(tǒng)中的FAT表在存儲器上的容量,即存儲器上的總簇數(shù);然后在內(nèi)存中建立一個同F(xiàn)AT表所描述的簇數(shù)量相同的FAT內(nèi)存映射表,該映射表描述每簇單位數(shù)據(jù)的包含下一個簇的簇號和地址,簇號的存儲寬度與FAT表相同,地址的存儲寬度包括但不限于8位、12位、16位、32位、64位,該地址為數(shù)據(jù)在內(nèi)存的實際地址。
當(dāng)文件系統(tǒng)接收到寫存儲器請求時,根據(jù)數(shù)據(jù)量大小按現(xiàn)有的方法查詢和在存儲器中分配要寫的簇,并在FAT映射表中記錄這些簇;然后在內(nèi)存中為數(shù)據(jù)分配存儲空間,將數(shù)據(jù)寫入內(nèi)存并在FAT映射表中記錄對應(yīng)的內(nèi)存地址,使為數(shù)據(jù)分配的簇號與數(shù)據(jù)在內(nèi)存的地址間形成對應(yīng)關(guān)系,即根據(jù)該簇號能獲得數(shù)據(jù)在內(nèi)存的地址。
當(dāng)文件系統(tǒng)響應(yīng)后續(xù)的讀、寫操作時,首先查詢FAT內(nèi)存映射表,若發(fā)現(xiàn)要操作的簇對應(yīng)有內(nèi)存地址,則從內(nèi)存的該位置讀數(shù)據(jù)或重新在該位置寫數(shù)據(jù);若沒有對應(yīng)內(nèi)存地址,對于讀操作而言則根據(jù)簇號從存儲器的讀取數(shù)據(jù),對于寫操作而言則按上述方式將數(shù)據(jù)寫到內(nèi)存。
結(jié)合圖2說明向存儲器寫數(shù)據(jù)和后續(xù)讀取該數(shù)據(jù)的過程在步驟10,文件系統(tǒng)接收到訪問存儲器的請求;在步驟20,文件系統(tǒng)確定是讀還是寫操作,如果是寫操作進(jìn)行步驟30,如果是讀操行進(jìn)行步驟50;在步驟30,文件系統(tǒng)按現(xiàn)有方式在存儲器中為這些數(shù)據(jù)分配簇號,將這些簇號記錄在FAT內(nèi)存映射表中;在步驟40,根據(jù)數(shù)據(jù)量分配內(nèi)存,將數(shù)據(jù)寫入內(nèi)存并記錄在FAT內(nèi)存映射表中;在步驟50,確定數(shù)據(jù)所在的簇號;在步驟60,根據(jù)步驟50確定的簇號查詢FAT內(nèi)存映射表,判斷該簇號是否對應(yīng)有內(nèi)存地址(即判斷該數(shù)據(jù)是否暫存在內(nèi)存中),如果是則進(jìn)行步驟70,否則進(jìn)行步驟80;在步驟70,文件系統(tǒng)根據(jù)對應(yīng)的內(nèi)存地址從內(nèi)存讀取數(shù)據(jù);在步驟80,文件系統(tǒng)根據(jù)簇號從存儲器中讀取數(shù)據(jù)。
當(dāng)系統(tǒng)空閑時,將能整除存儲器最小擦寫單位的數(shù)據(jù)量的內(nèi)存數(shù)據(jù)區(qū)數(shù)據(jù)寫入存儲器未使用數(shù)據(jù)區(qū),并調(diào)整FAT表及釋放內(nèi)存數(shù)據(jù)區(qū)寫入后的數(shù)據(jù)。系統(tǒng)空閑主要是指系統(tǒng)休眠、待機(jī)或處理器資源使用較少的情況。
當(dāng)系統(tǒng)卸載(un-mount)文件系統(tǒng)/存儲器時比較FAT表和FAT映射表,然后將將所有應(yīng)保存到存儲器而暫存在內(nèi)存的數(shù)據(jù)寫到存儲器中,并在FAT表中記錄這些位置在存儲器的位置。
以下以一實例進(jìn)行說明參閱圖3所示,假設(shè)文件系統(tǒng)為FAT32系統(tǒng),存儲器為FLASH,每簇占4個扇區(qū)(每扇區(qū)512字節(jié))。內(nèi)存中用于映射存儲器剩余空間的起始地址為0xC0000000,F(xiàn)AT內(nèi)存映射表單位數(shù)據(jù)類型為32位。FAT表描述30個簇,一共占用120個字節(jié),同樣FAT內(nèi)存映射表也是占用120個字節(jié)30x4bytes(32bit)。簇15-簇19位連續(xù)鏈表,由簇15描述簇16,簇16描述簇17......
當(dāng)系統(tǒng)欲對文件ABC的17、18簇進(jìn)行寫操作時其數(shù)據(jù)已存在于存儲器中,這時數(shù)據(jù)實際寫入在0xC0000000-0xc0001000的內(nèi)存區(qū)內(nèi)。修改FAT內(nèi)存映射表在簇16的值為0xC0000000,簇17的值為0xC0000800。
當(dāng)系統(tǒng)欲讀取17、18簇內(nèi)容時,首先需要通過FAT內(nèi)存映射表查找簇15依次找到簇16;通過簇16描述下一個簇的位置為簇17。其間簇15在FAT內(nèi)存映射表中未對應(yīng)內(nèi)存地址(即未被賦值),因此在FAT映射表中繼續(xù)查詢,發(fā)現(xiàn)其下一個簇為16;再在FAT內(nèi)存映射表中進(jìn)行查詢,發(fā)現(xiàn)簇16在映射表中已被賦值,其指向下一簇17的地址為內(nèi)存地址0xC0000000,表明簇17的內(nèi)容位于內(nèi)存區(qū)的0xC0000000-0xC00007ff,因此從內(nèi)存的該區(qū)域讀取數(shù)據(jù);再在FAT內(nèi)存映射表中進(jìn)行查詢簇17,發(fā)現(xiàn)簇17在映射表中已被賦值,其指向下一簇18的地址為內(nèi)存地址0xC0000800,表明簇18的內(nèi)容位于內(nèi)存區(qū)的0xC0000800-0xC0000FFF,因此,從內(nèi)存的該區(qū)域讀取數(shù)據(jù)。
上述的內(nèi)存是指易失性存儲器,如RAM、SRAM、SDRAM等。上述存儲包括但不限于軟盤、硬盤和閃存等。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種寫存儲器的實現(xiàn)方法,其特征在于包括如下步驟A、在內(nèi)存中建立映射表,并將文件系統(tǒng)中描述文件存儲位置的存儲位置描述表信息映射到該映射表中;B、所述文件系統(tǒng)將需要寫入存儲器的數(shù)據(jù)保存到內(nèi)存中,并在所述映射表中記錄在存儲器中為該數(shù)據(jù)分配的存儲位置和在內(nèi)存中的實際存儲位置之間的對應(yīng)關(guān)系;C、所述文件系統(tǒng)接收到操作所述數(shù)據(jù)的請求時,根據(jù)該數(shù)據(jù)在存儲器中的存儲位置查詢所述映射表得到數(shù)據(jù)在內(nèi)存的實際存儲位置,并在內(nèi)存操作所述數(shù)據(jù);D、至少在系統(tǒng)空閑或卸載文件系統(tǒng)時,根據(jù)所述存儲位置描述表和映射表中對所述數(shù)據(jù)的存儲位置描述,將保存在內(nèi)存中所述數(shù)據(jù)寫入存儲器的對應(yīng)位置并修改所述存儲位置描述表。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟B包括如下步驟B1、文件系統(tǒng)在接收到向存儲器寫入數(shù)據(jù)的請求時在存儲器中為該數(shù)據(jù)分配存儲位置并記錄在所述映射表中;B2、在內(nèi)存中為所述數(shù)據(jù)分配實際存儲位置并記錄在所述映射表中,在該表中使數(shù)據(jù)在存儲器的存儲位置與在內(nèi)存的實際存儲位置形成對應(yīng)關(guān)系;以及B3、將所述數(shù)據(jù)寫入內(nèi)存的實際存儲位置。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟C包括如下步驟C1、接收到從存儲器讀取數(shù)據(jù)的請求時查詢映射表確定該數(shù)據(jù)在存儲器的存儲位置;C2、查詢所述存儲器的存儲位置是否對應(yīng)有數(shù)據(jù)在內(nèi)存的實際存儲位置,如果是,則從內(nèi)存的該實際存儲位置獲取數(shù)據(jù)完成操作,否則,從存儲器獲取數(shù)據(jù)完成操作。
4.如權(quán)利要求1所述的方法,其特征在于,步驟D中,當(dāng)系統(tǒng)空閑時將能整除存儲器最小擦寫單位數(shù)據(jù)量的所述數(shù)據(jù)寫入存儲器未使用的數(shù)據(jù)區(qū),修改所述存儲位置描述表和映射表,以及釋放相應(yīng)的內(nèi)存。
5.如權(quán)利要求4所述的方法,其特征在于,所述系統(tǒng)空閑時是指系統(tǒng)休眠、待機(jī)或占用處理器資源較少時。
6.如權(quán)利要求1所述的方法,其特征在于,步驟D中,當(dāng)系統(tǒng)卸載文件系統(tǒng)或存儲器時,將內(nèi)存中所有的所述數(shù)據(jù)寫入存儲器,并在所述存儲位置描述表中記錄數(shù)據(jù)在存儲器中的位置。
7.如權(quán)利要求1至6任一項所述的方法,其特征在于,所述存儲器包括但不限于軟盤、硬盤和閃存。
8.如權(quán)利要求7所述的方法,其特征在于,所述文件系統(tǒng)包括但不限于FAT文件系統(tǒng)和NTFS文件系統(tǒng)。
全文摘要
本發(fā)明公開了一種寫存儲器的實現(xiàn)方法,該方法為在內(nèi)存中建立映射表,并將文件系統(tǒng)中描述文件存儲位置的存儲位置描述表信息映射到該映射表中;文件系統(tǒng)將需要寫入存儲器的數(shù)據(jù)保存到內(nèi)存中,并在所述映射表中記錄在存儲器中為該數(shù)據(jù)分配的存儲位置和在內(nèi)存中的實際存儲位置之間的對應(yīng)關(guān)系;當(dāng)文件系統(tǒng)接收到操作所述數(shù)據(jù)的請求時,根據(jù)該數(shù)據(jù)在存儲器中的存儲位置查詢所述映射表得到數(shù)據(jù)在內(nèi)存的實際存儲位置,并在內(nèi)存操作所述數(shù)據(jù);以及至少在系統(tǒng)空閑或卸載文件系統(tǒng)時,根據(jù)所述存儲位置描述表和映射表中對所述數(shù)據(jù)的存儲位置描述,將保存在內(nèi)存中所述數(shù)據(jù)寫入存儲器的對應(yīng)位置并修改所述存儲位置描述表。
文檔編號G06F12/00GK1622058SQ200410104050
公開日2005年6月1日 申請日期2004年12月31日 優(yōu)先權(quán)日2004年12月31日
發(fā)明者譚帥 申請人:北京中星微電子有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1