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

降低混合映射算法中日志塊映射表內(nèi)存資源占用的方法

文檔序號:9453009閱讀:833來源:國知局
降低混合映射算法中日志塊映射表內(nèi)存資源占用的方法
【技術領域】
[0001]本發(fā)明涉及NAND Flash存儲器存儲數(shù)據(jù)領域,尤其是涉及降低混合映射算法中日志塊映射表內(nèi)存資源占用的方法。
【背景技術】
[0002]半導體行業(yè)的蓬勃發(fā)展,出現(xiàn)了高性能的存儲器NAND Flash, NAND Flash存儲器使用半導體作為存儲介質(zhì),具有高速,低能耗和防震等優(yōu)點,但NAND Flash存儲器本身也存在一些不足。首先,它的存儲塊的擦除次數(shù)是有限的;其次,NAND Flash必須要擦除之后才能重新寫入,導致寫入性能較低。因此,磨損均衡顯得尤為重要,好的磨損均衡管理方法不但能夠提高NAND Flash性能和效率,還能夠大大的延長NAND Flash的使用壽命?;诖耍霈F(xiàn)了專門為NAND Flash存儲器所使用的文件系統(tǒng),如JFFS、JFFS2、YAFFS, TrueFFS等,這些NAND Flash專用的文件系統(tǒng)進行存儲管理為NAND Flash設備提供專門的驅(qū)動和更好的數(shù)據(jù)管理。但是對于一個小型的S0C,由于資源的限制,想采用以上的文件系統(tǒng)對NANDFlash進行管理不太現(xiàn)實,所以亟需一個輕量級的管理方法,能夠在有限資源的條件下,滿足對NAND Flash的磨損均衡控制。目前對于小型的系統(tǒng),常采用的管理方法為FTL (FlashTranslat1n Layer)ο
[0003]典型的FTL管理機制采用以頁為單位進行存儲管理的方式,如圖1所示,將物理頁地址與邏輯頁地址來進行一一對應,讀、寫操作都是按頁進行,數(shù)據(jù)存儲時存儲在空白的頁面存儲區(qū)中,數(shù)據(jù)寫入完成后需更新地址映射表中的轉(zhuǎn)換信息。這種管理算法比較直接,但是由于采用的頁映射機制,對于容量小、頁數(shù)少的存儲器,是極為方便的一種方法。但是,對于大容量NAND Flash來說,就顯得比較吃力,例如,對于美光公司的MT29F32G08CBACA這個型號的NAND Flash來說,共有4096個物理塊,每塊有256頁,基于頁映射共需要4096*256*4=4MB的內(nèi)存空間來保存當前的映射表,對于片上系統(tǒng)來說內(nèi)存消耗過大。
[0004]為了解決這個問題,提出了混合映射(Hybrid mapping)算法,它是基于塊和頁的混合映射的機制,如圖2所示,在該算法中,將NAND Flash在邏輯上分為數(shù)據(jù)塊和日志塊兩個部分,日志塊是有多個空閑塊組成。同時,在內(nèi)存中存儲著兩個表:基于塊映射的數(shù)據(jù)塊地址映射表DBMT和基于頁映射的日志塊頁映射表LPMT。寫數(shù)據(jù)操作時,數(shù)據(jù)首先按頁映射的方式寫入日志塊中,同時更新LPMT。當日志塊數(shù)據(jù)存儲滿時,則對頁映射表LPMT數(shù)據(jù)進行分析,將日志塊中有效數(shù)據(jù)拷貝到空閑的數(shù)據(jù)塊中,同時更新DBMT映射表,拷貝完成后釋放當前的日志塊,將數(shù)據(jù)寫入空閑的日志塊中,更新LPMT映射表。讀數(shù)據(jù)操作時,首先查找LPMT頁映射表,查詢有效數(shù)據(jù)是否在日志塊中,若是,則直接讀取日志塊中對應的數(shù)據(jù),若不在該日志塊上,則根據(jù)DBMT映射表,讀取有效數(shù)據(jù)。根據(jù)混合映射算法,以MT29F32G08CBACA型號的NAND Flash為例,物理結構如圖3,DBMT塊映射表映射粒度為塊,MT29F32G08CBACA共有4096個塊,則DBMT存儲的數(shù)值范圍為0~0χ1000,用2個字節(jié)就可以表示出完整的信息,LPMT頁映射表映射粒度為頁,MT29F32G08CBACA共有4096*256個塊,數(shù)值范圍為0~0χ100000,需要4個字節(jié)才可以表示出完整的信息,需要消耗的內(nèi)存如下:4096*2+ (TBN-X) *256*4,其中(TBN-X)為分配的日志塊個數(shù),可以看出,該算法所消耗的內(nèi)存與日志塊個數(shù)(TBN-X)有關,若(TBN-X)為64,則需要消耗內(nèi)存為:4096*2+ 64*256*4 =72 KB0相對于基于頁映射的算法,該算法內(nèi)存消耗已經(jīng)大大降低,但是經(jīng)過分析發(fā)現(xiàn),內(nèi)存消耗主要部分為日志映射表LPMT,并且內(nèi)存消耗與(TBN-X)相關,成倍數(shù)增長。

【發(fā)明內(nèi)容】

[0005]本發(fā)明的目的在于:為了進一步降低內(nèi)存消耗,增加日志塊的個數(shù),提高系統(tǒng)性能,本發(fā)明提供了一種降低內(nèi)存資源消耗的方法,可以降低基于頁映射的日志塊映射表的緩存占用,能夠顯著降低LPMT占用資源,對與系統(tǒng)內(nèi)存資源較為寶貴的嵌入式的片上系統(tǒng)具有實際意義,可廣泛應用于片上系統(tǒng)的NAND Flash存儲器的管理。
[0006]本發(fā)明目的通過下述技術方案來實現(xiàn):
一種降低混合映射算法中日志塊映射表內(nèi)存資源占用的方法包括:
步驟1:數(shù)據(jù)塊和日志塊都劃分為K組,則第η組的日志塊對應存儲第η組數(shù)據(jù)塊的數(shù)據(jù),一個日志塊組包括多個空閑塊,一個空閑塊包括多個空閑頁;將數(shù)據(jù)需要寫入的地址ADDR轉(zhuǎn)換為組號η和組內(nèi)偏移量offset ;設置日志塊信息表LBIT記錄對應日志塊所屬日志組號;所述11表示組別號;n為大于O的自然數(shù),n = (ADDR/PPB)/(X/ K);offset = ADDR-η *(X/ K) * PPB 或 offset = ADDR % ( (X/K) * PPB) ;η 的范圍為 0~Κ_1 ;
步驟2:當有地址為ADDR_x的數(shù)據(jù)寫入日志塊組時,根據(jù)步驟1,查找日志塊信息表LBIT中是否有組別屬性為η的空閑塊且根據(jù)LPMT映射表信息確認是否能進行數(shù)據(jù)寫入;步驟3:當需要讀取地址位ADDR_d的數(shù)據(jù)時,根據(jù)步驟1,查找日志塊信息表LBIT中是否有組別屬性為η的日志塊且通過查找LPMT映射表是否存在offset項來確認該日志塊中是存在有效數(shù)據(jù),并進行數(shù)據(jù)讀取。
[0007]進一步的,所述步驟2具體包括:
步驟21:當有地址為ADDR_x的數(shù)據(jù)寫入日志塊組時,根據(jù)步驟1,查找日志塊信息表LBIT中是否有組別屬性為η的空閑塊;若有,則執(zhí)行步驟22 ;否則,從日志塊中查找一個空閑塊作為存儲數(shù)據(jù)的日志塊,修改該日志塊信息表LBIT,將該日志塊組別屬性設置為η,然后將數(shù)據(jù)寫入該日志塊當中,同時更新LPMT ;
步驟22:根據(jù)LPMT映射表信息確認該空閑塊中是否有空閑頁,若有空閑頁,則將數(shù)據(jù)直接寫入該空閑塊的空閑頁中,同時更新LPMT ;若該空閑塊中沒有空閑頁,則執(zhí)行步驟23 ;
步驟23:從日志塊中分配一個空閑塊,修改該空閑塊對應的日志塊信息表LBIT信息,將該空閑塊組別屬性設置為η,然后將地址位ADDR_x的數(shù)據(jù)寫入該空閑塊當中,成為存儲該數(shù)據(jù)的日志塊,同時更新LPMT。
[0008]進一步的,所述步驟3包括:
步驟31:當需要讀取地位為ADDR_d的數(shù)據(jù)時,根據(jù)步驟1,查找日志塊信息表LBIT中是否有組別屬性為η的日志塊,若有,則執(zhí)行步驟32 ;
步驟32:查找LPMT映射表是否存在offset項來確認該日志塊中是否存在有效數(shù)據(jù),若存在,則讀取該數(shù)據(jù)。
[0009]本發(fā)明的有益效果:
在本發(fā)明中,將NAND Flash數(shù)據(jù)塊和日志塊劃分為K組以及針對地址的轉(zhuǎn)換即將地址ADDR轉(zhuǎn)換為組號η和組內(nèi)偏移量offset為算法關鍵,由于將數(shù)據(jù)塊和日志塊進行了分組,則LPMT只需要保存offset信息,所以大大減少了資源消耗。
【附圖說明】
[0010]圖1基于頁映射的映射表示意圖;
圖2基于混合映射的映射表不意圖;
圖3 NAND Flash結構示意圖;
圖4 NAND Flash數(shù)據(jù)塊和日志塊邏輯分組示意圖;
圖5是LBIT表數(shù)據(jù)結構示意圖;
圖6a數(shù)據(jù)寫入流程圖;
圖6b數(shù)據(jù)讀取流程圖。
【具體實施方式】
[0011]下列
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1