專利名稱:閃存及閃存的地址轉(zhuǎn)換方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)及電子信息技術(shù)領(lǐng)域,尤其涉及一種閃存及閃存的地址轉(zhuǎn)換方法。
背景技術(shù):
閃存,NAND Flash具有非易失性、功耗低、性能高和抗震性能強(qiáng)等特點(diǎn),有著廣泛的應(yīng)用。NAND flash具有以下特點(diǎn):1)、讀寫最小單位是頁;2)、擦除最小單位是塊;3)、不能復(fù)寫,必須先擦除后寫;4)、有的塊在出廠時(shí)或使用過程中會(huì)變成壞塊,不能繼續(xù)使用。NAND的頁有主(main)區(qū)和備用(spare)區(qū)構(gòu)成,主區(qū)存放用戶數(shù)據(jù),備用區(qū)一般存放ECC糾錯(cuò)碼、部分映射信息和其他管理信息等。閃存轉(zhuǎn)換層(FTL)負(fù)責(zé)邏輯地址到物理地址的映射,壞塊管理等信息,將NAND抽象成一個(gè)標(biāo)準(zhǔn)塊設(shè)備,對(duì)主機(jī)隱藏NAND底層信息。閃存的映射方式一般分為塊映射、頁映射和混合映射三種。塊映射對(duì)內(nèi)存資源占用少,但效率低;頁映射效率高,但是對(duì)內(nèi)存資源占用大;混合映射根據(jù)需求在前述二者之間做折中。申請?zhí)枮?01010133944.8的中國發(fā)明專利申請“閃存FTL的地址轉(zhuǎn)換方法”提出了一種三級(jí)映射的原理,但是未指明在實(shí)際運(yùn)用中,各級(jí)映射表是如何存儲(chǔ)和構(gòu)建的,并且效率低。
發(fā)明內(nèi)容
有鑒于此,有必要提供一種閃存及閃存的地址轉(zhuǎn)換方法。本發(fā)明提供的閃存,閃存與SRAM通信連接,由物理塊組成,其中所述物理塊由多個(gè)物理頁組成,邏輯頁與物理頁一一對(duì)應(yīng),所述物理頁內(nèi)包括第二級(jí)映射表以及第三級(jí)映射表,所述多個(gè)物理塊組成一個(gè)超級(jí)塊,還包括:獲取模塊、記錄模塊、建立模塊、判斷模塊以及輸出模塊,其中:獲取模塊用于將邏輯頁劃分為三段,分別對(duì)應(yīng)超級(jí)塊塊號(hào)、組號(hào)和組內(nèi)偏移;記錄模塊用于將每一個(gè)超級(jí)塊所包含的物理塊塊號(hào)記錄到超級(jí)塊分配表中;建立模塊用于根據(jù)所述超級(jí)塊分配表在SRAM中建立第一級(jí)映射表,并以所述超級(jí)塊塊號(hào)作為所述第一級(jí)映射表的索引;判斷模塊用于通過所述超級(jí)塊塊號(hào)判斷所述第二級(jí)映射表在SRAM的緩存是否被命中,且在所述第二級(jí)映射表在SRAM的緩存被命中時(shí)通過所述組號(hào)判斷所述第三級(jí)映射表在SRAM的緩存是否被命中,在所述第三級(jí)映射表在SRAM的緩存被命中時(shí)判斷所述超級(jí)塊分配表在SRAM的緩存是否被命中;輸出模塊,用于在所述超級(jí)塊分配表在SRAM的緩存被命中時(shí)根據(jù)所述第二級(jí)映射表的緩存、所述第三級(jí)映射表的緩存以及所述超級(jí)塊分配表的緩存聯(lián)合得到所述物理塊的塊號(hào),以獲得所述邏輯頁的物理地址。本發(fā)明提供的閃存的地址轉(zhuǎn)換方法,其中,閃存與SRAM通信連接,由物理塊組成,其中所述物理塊由多個(gè)物理頁組成,邏輯頁與物理頁一一對(duì)應(yīng),所述物理頁內(nèi)包括第二級(jí)映射表以及第三級(jí)映射表,所述多個(gè)物理塊組成一個(gè)超級(jí)塊,所述方法包括以下步驟:將邏輯頁劃分為三段,分別對(duì)應(yīng)超級(jí)塊塊號(hào)、組號(hào)和組內(nèi)偏移;將每一個(gè)超級(jí)塊所分配的物理塊塊號(hào)記錄到超級(jí)塊分配表中;根據(jù)所述超級(jí)塊分配表在SRAM中建立第一級(jí)映射表,并以所述超級(jí)塊塊號(hào)作為所述第一級(jí)映射表的索引;通過所述超級(jí)塊塊號(hào)判斷所述第二級(jí)映射表在SRAM的緩存是否被命中;若是,則通過所述組號(hào)判斷所述第二級(jí)映射表在SRAM的緩存是否被命中;若是,則判斷所述超級(jí)塊分配表在SRAM的緩存是否被命中;若是,則根據(jù)所述第二級(jí)映射表的緩存、所述第三級(jí)映射表的緩存以及所述超級(jí)塊分配表的緩存聯(lián)合得到所述物理塊的塊號(hào),以獲得所述邏輯頁的物理地址。本發(fā)明提供的閃存及閃存的地址轉(zhuǎn)換方法,通過利用超級(jí)塊分配表在SRAM上建立第一級(jí)映射表,并在SRAM上根據(jù)第一級(jí)映射表建立第二級(jí)映射表的緩存,根據(jù)第二級(jí)映射表的緩存建立第三級(jí)映射表的緩存,并根據(jù)第二級(jí)映射表的緩存、第三級(jí)映射表的緩存以及超級(jí)塊分配表的緩存聯(lián)合得到所述物理塊的塊號(hào),以獲得所述邏輯頁的物理地,有效的提高了地址轉(zhuǎn)換的效率。
圖1為本發(fā)明一實(shí)施方式中邏輯塊、物理塊、邏輯頁以及物理頁的關(guān)系圖;圖2為本發(fā)明一實(shí)施方式邏輯頁的結(jié)構(gòu)圖;圖3為本發(fā)明一實(shí)施方式物理頁的結(jié)構(gòu)圖;圖4為本發(fā)明一實(shí)施方式中閃存的模塊圖;圖5為本發(fā)明一實(shí)施方式中超級(jí)塊分配表的結(jié)構(gòu)圖;圖6為本發(fā)明一實(shí)施方式中閃存的地址轉(zhuǎn)換方法的流程圖;圖7為圖6所示流程圖中步驟S20的具體流程圖。
具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。在本發(fā)明的描述中,術(shù)語“內(nèi)”、“外”、“縱向”、“橫向”、“上”、“下”、“頂”、“底”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明而不是要求本發(fā)明必須以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。請參閱圖1,圖1所示為本發(fā)明一實(shí)施方式中邏輯塊、物理塊、邏輯頁以及物理頁的關(guān)系圖。在本實(shí)施方式中,閃存與SRAM (圖未示)通信連接,由物理塊組成,其中所述物理塊由多個(gè)物理頁組成,邏輯頁與物理頁一一對(duì)應(yīng),所述物理頁內(nèi)包括第二級(jí)映射表以及第三級(jí)映射表,所述多個(gè)物理塊組成一個(gè)超級(jí)塊,物理塊由多個(gè)物理頁組成。在本實(shí)施方式中,閃存有8個(gè)物理塊,每個(gè)物理塊有8個(gè)物理頁,一共有8x8=64個(gè)物理頁,如果一個(gè)物理頁大小為8KB,那么物理塊的容量為64x8=512KB。主機(jī)可以使用的空間一般小于該值,例如256KB (這個(gè)完全由設(shè)計(jì)者自己劃分),相當(dāng)于只有4個(gè)物理塊的有效空間(4*6=32個(gè)物理頁),超級(jí)塊是邏輯概念,超級(jí)塊一般大于物理塊,如果超級(jí)塊的大小為2個(gè)物理塊的大小,那么主機(jī)認(rèn)為一共有4/2=2個(gè)超級(jí)塊,每個(gè)超級(jí)塊有8*2=16個(gè)邏輯頁,一共剛好也是32個(gè)邏輯頁,邏輯頁和物理頁大小相等。
邏輯頁、超級(jí)塊是邏輯地址,也就是主機(jī)使用的地址;物理頁、物理塊是物理地址,指的是NAND上的地址。邏輯頁O 15屬于超級(jí)塊0,邏輯頁16 31屬于超級(jí)塊I (按順序劃分),主機(jī)讀寫數(shù)據(jù)時(shí)給出的是邏輯地址,它不關(guān)心數(shù)據(jù)具體存放在NAND上的物理地址,比如主機(jī)讀邏輯頁O時(shí),邏輯頁O就屬于超級(jí)塊0,那么通過三級(jí)映射關(guān)系,最終發(fā)現(xiàn)該邏輯頁O存儲(chǔ)在NAND的物理塊3的物理頁I上,那么讀取該頁就得到數(shù)據(jù)。請參閱圖2,圖2為本發(fā)明一實(shí)施方式邏輯頁的結(jié)構(gòu)圖。在本實(shí)施方式中,邏輯頁包括超級(jí)塊塊號(hào)、組號(hào)以及組內(nèi)偏移三部分。請參閱圖3,圖3為本發(fā)明一實(shí)施方式物理頁的結(jié)構(gòu)圖。在本實(shí)施方式中,物理頁的內(nèi)容包括用戶數(shù)據(jù)、第二級(jí)映射表、第三級(jí)映射表以及其他內(nèi)容。在本實(shí)施方式中,第二級(jí)映射表與第三級(jí)映射表分散存儲(chǔ)在多個(gè)物理頁中。請參閱圖4,圖4為閃存10的模塊圖。在本實(shí)施方式中,閃存10包括獲取模塊102、記錄模塊104、建立模塊106、判斷模塊108、輸出模塊110、存儲(chǔ)模塊112以及處理器114,其中,存儲(chǔ)模塊112用于存儲(chǔ)獲取模塊102、記錄模塊104、建立模塊106、判斷模塊108以及輸出模塊110,處理器114用于執(zhí)行存儲(chǔ)模塊112中的各個(gè)功能模塊。在本實(shí)施方式中,閃存10與SRAM (圖未示)通信連接,由物理塊組成,其中所述物理塊由多個(gè)物理頁組成,邏輯頁與物理頁一一對(duì)應(yīng),所述物理頁內(nèi)包括第二級(jí)映射表以及第三級(jí)映射表,所述多個(gè)物理塊組成一個(gè)超級(jí)塊,邏輯頁與物理頁一一對(duì)應(yīng),所述物理頁內(nèi)包括第二級(jí)映射表以及第三級(jí)映射表,所述多個(gè)物理頁組成一個(gè)物理塊,所述多個(gè)物理塊組成一個(gè)超級(jí)塊。在本實(shí)施方式中,在超級(jí)塊大小固定的情況下,分組越小,第二級(jí)映射表越小,第三級(jí)映射表越大。在本實(shí)施方式中,獲取模塊102用于將邏輯頁劃分為三段,分別對(duì)應(yīng)超級(jí)塊塊號(hào)、組號(hào)和組內(nèi)偏移。在本實(shí)施方式中,組號(hào)用來索弓丨第二級(jí)映射表(又稱組映射表),組內(nèi)偏移用來索引第三級(jí)映射表(又稱組內(nèi)映射表)。記錄模塊104用于將每一個(gè)超級(jí)塊所包含的物理塊的塊號(hào)記錄到超級(jí)塊分配表中。在本實(shí)施方式中,超級(jí)塊分配表存儲(chǔ)在閃存10的特定的物理塊內(nèi),而特定的物理塊存儲(chǔ)在其他非易失性存儲(chǔ)設(shè)備(如NOR Flash)上。請參閱圖5,圖5所示為超級(jí)塊分配表的結(jié)構(gòu)圖。在本實(shí)施方式中,物理頁包括有效(invalid)頁、無效(valid)頁以及空(empty)頁。在本實(shí)施方式中,超級(jí)塊分配表存儲(chǔ)在閃存的特定塊內(nèi),可能需要占用多個(gè)頁,當(dāng)超級(jí)分配表更新時(shí),寫入到下一個(gè)空頁中。請繼續(xù)參閱圖4,建立模塊106用于根據(jù)所述超級(jí)塊分配表在SRAM中建立第一級(jí)映射表,并以所述超級(jí)塊塊號(hào)作為所述第一級(jí)映射表的索引。在本實(shí)施方式中,所述建立模塊106包括獲取子模塊1062、查找子模塊1064、讀取子模塊1066以及判斷子模塊1068。
在本實(shí)施方式中,獲取子模塊1062用于獲取所述超級(jí)塊分配表在閃存上的物理塊的塊號(hào)。查找子模塊1064用于通過利用二分查找法查找所述物理塊上最后寫入的物理頁頁號(hào)。讀取子模塊1066用于讀取所述最新的超級(jí)塊分配表,并記錄相應(yīng)的物理頁頁號(hào),其中,所述查找子模塊1064還用于查詢所述超級(jí)塊分配表得到每一個(gè)超級(jí)塊最后寫入的物理塊塊號(hào),并利用二分查找法查找所述最后寫入的物理塊上最后寫入的頁號(hào)。判斷子模塊1068用于判斷是否為最后一個(gè)超級(jí)塊,若是為最后一個(gè)超級(jí)塊,則所述第一級(jí)映射表完成建立。所述查找子模塊1064還用于在所述超級(jí)塊若不是最后一個(gè)超級(jí)塊,則繼續(xù)查詢所述超級(jí)塊分配表找到下一個(gè)超級(jí)塊最后寫入的物理塊的塊號(hào)。請繼續(xù)參閱圖4,判斷模塊108用于通過所述超級(jí)塊塊號(hào)判斷所述第二級(jí)映射表在SRAM的緩存是否被命中,且在所述第二級(jí)映射表在SRAM的緩存被命中時(shí)通過所述組號(hào)判斷所述第三級(jí)映射表在SRAM的緩存是否被命中,在所述第三級(jí)映射表在SRAM的緩存被命中時(shí)判斷所述超級(jí)塊分配表在SRAM的緩存是否被命中。在本實(shí)施方式中,SRAM中的緩存維持少量的第三級(jí)映射表的緩存和盡量多的第二級(jí)映射表的緩存,這樣,使閃存10有最優(yōu)的順序讀寫性能和隨機(jī)讀寫性能。在本實(shí)施方式中,第二級(jí)映射表與第三級(jí)映射表的緩存包括塊號(hào)查詢碼、物理頁的頁號(hào)以及緩存標(biāo)記。塊號(hào)查詢碼是為了查詢超級(jí)塊分配表獲得物理塊的塊號(hào)。因?yàn)殚W存10的物理塊很多,而每個(gè)超級(jí)塊落在的物理塊個(gè)數(shù)是有限的。例如,一個(gè)超級(jí)塊最多會(huì)寫入到4個(gè)物理塊上(這個(gè)可以由設(shè)計(jì)者自己定義),那么塊號(hào)查詢碼只需要2bit就可以,有效的節(jié)省閃存物理頁備用區(qū)空間的使用。輸出模塊110用于在所述超級(jí)塊分配表在SRAM的緩存被命中時(shí)根據(jù)所述第二級(jí)映射表的緩存、所述第三級(jí)映射表的緩存以及所述超級(jí)塊分配表的緩存聯(lián)合得到所述物理塊的塊號(hào),以獲得所述邏輯頁的物理地址。具體的,在本實(shí)施方式中,輸出模塊110根據(jù)第二級(jí)映射表緩存,第三級(jí)映射表緩存和超級(jí)塊分配表緩存聯(lián)合得到物理塊號(hào),根據(jù)第二級(jí)映射表緩存和第三級(jí)映射表緩存得到物理塊內(nèi)頁號(hào),由此得到一個(gè)邏輯頁的物理地址,即物理地址即物理塊塊號(hào)及物理塊內(nèi)的物理頁號(hào)。在本實(shí)施方式中,所述建立模塊106還用于在所述第二級(jí)映射表在SRAM的緩存沒有被命中時(shí),通過所述超級(jí)塊塊號(hào)查詢所述第一級(jí)映射表,并根據(jù)所述第一級(jí)映射表在SRAM建立第二級(jí)映射表的緩存。在本實(shí)施方式中,所述建立模塊106還用于在所述第三級(jí)映射表在SRAM的緩存沒有被命中時(shí),通過所述組號(hào)查詢所述第二級(jí)映射表的緩存,并根據(jù)所述第二級(jí)映射表的緩存在SRAM建立第三級(jí)映射表的緩存。在本實(shí)施方式中,所述建立模塊106還用于在所述超級(jí)塊分配表在SRAM的緩存沒有被命中時(shí),將所述超級(jí)塊分配表寫回,并替換所述超級(jí)塊分配表的緩存。請參閱圖6,圖6所示為本發(fā)明一實(shí)施方式中閃存10的地址轉(zhuǎn)換方法的流程圖。在本實(shí)施方式中,閃存10與SRAM (圖未示)通信連接,由物理塊組成,其中所述物理塊由多個(gè)物理頁組成,邏輯頁與物理頁一一對(duì)應(yīng),所述物理頁內(nèi)包括第二級(jí)映射表以及第三級(jí)映射表,所述多個(gè)物理塊組成一個(gè)超級(jí)塊,所述方法包括以下步驟:在步驟S00,獲取模塊102將邏輯頁劃分為三段,分別對(duì)應(yīng)超級(jí)塊塊號(hào)、組號(hào)和組內(nèi)偏移。在本實(shí)施方式中,組號(hào)用來索引第二級(jí)映射表(又稱組映射表),組內(nèi)偏移用來索引第三級(jí)映射表(又稱組內(nèi)映射表)。在步驟S10,記錄模塊104將每一個(gè)超級(jí)塊所分配的物理塊塊號(hào)記錄到超級(jí)塊分配表中。在步驟S20,建立模塊106根據(jù)所述超級(jí)塊分配表在SRAM中建立第一級(jí)映射表,并以所述超級(jí)塊塊號(hào)作為所述第一級(jí)映射表的索引。在步驟S30,判斷模塊108通過所述超級(jí)塊塊號(hào)判斷所述第二級(jí)映射表在SRAM的緩存是否被命中。在本實(shí)施方式中,第二級(jí)映射表與第三級(jí)映射表的緩存包括塊號(hào)查詢碼、物理頁的頁號(hào)以及緩存標(biāo)記。在本實(shí)施方式中,塊號(hào)查詢碼是為了查詢超級(jí)塊分配表獲得物理塊的塊號(hào)。因?yàn)殚W存10的物理塊很多,而每個(gè)超級(jí)塊落在的物理塊個(gè)數(shù)是有限的。例如,一個(gè)超級(jí)塊最多會(huì)寫入到4個(gè)物理塊上(這個(gè)可以由設(shè)計(jì)者自己定義),那么塊號(hào)查詢碼只需要2bit就可以,有效的節(jié)省閃存物理頁備用區(qū)空間的使用。若所述第二級(jí)映射表在SRAM的緩存被命中,則在步驟S40,判斷模塊108通過所述組號(hào)判斷所述第二級(jí)映射表在SRAM的緩存是否被命中;若所述第三級(jí)映射表在SRAM的緩存被命中,則在步驟S50,判斷模塊108判斷所述超級(jí)塊分配表在SRAM的緩存是否被命中。 若所述超級(jí)塊分配表在SRAM的緩存被命中,則在步驟S60,輸出模塊110跟據(jù)所述第二級(jí)映射表的緩存、所述第三級(jí)映射表的緩存以及所述超級(jí)塊分配表的緩存聯(lián)合得到所述物理塊的塊號(hào),以獲得所述邏輯頁的物理地址。在本實(shí)施方式中,輸出模塊110根據(jù)第二級(jí)映射表緩存,第三級(jí)映射表緩存和超級(jí)塊分配表緩存聯(lián)合得到物理塊號(hào),根據(jù)第二級(jí)映射表緩存和第三級(jí)映射表緩存得到物理塊內(nèi)頁號(hào),由此得到一個(gè)邏輯頁的物理地址,即物理地址即物理塊塊號(hào)及物理塊內(nèi)的物理頁號(hào)。若所述第二級(jí)映射表在SRAM的緩存沒有被命中,則在步驟S70,建立模塊106通過所述超級(jí)塊塊號(hào)查詢所述第一級(jí)映射表,并根據(jù)所述第一級(jí)映射表在SRAM建立第二級(jí)映射表的緩存。若所述第三級(jí)映射表在SRAM的緩存沒有被命中,則在步驟S80,建立模塊106通過所述組號(hào)查詢所述第二級(jí)映射表的緩存,并根據(jù)所述第二級(jí)映射表的緩存在SRAM建立第三級(jí)映射表的緩存。若所述超級(jí)塊分配表在SRAM的緩存沒有被命中,則在步驟S90,建立模塊106將所述超級(jí)塊分配表寫回,并替換所述超級(jí)塊分配表的緩存。請參閱圖7,圖7所示為圖6中S20的具體流程圖。在本實(shí)施方式中,步驟S20包括以下步驟:在步驟S202,獲取子模塊1062獲取所述超級(jí)塊分配表在閃存上的物理塊的塊號(hào)。在步驟S204,查找子模塊1064利用二分查找法查找所述物理塊上最后寫入的物理頁頁號(hào)。在步驟S206,讀取子模塊1066讀取最新的超級(jí)塊分配表,并記錄相應(yīng)的物理頁頁號(hào)。在本實(shí)施方式中,讀取子模塊1066讀取最后寫入的物理頁,并往回讀取每個(gè)物理頁,直到將最新的超級(jí)塊分配表全部讀取到,并記下對(duì)應(yīng)的物理頁號(hào)和超級(jí)塊分配表的對(duì)應(yīng)關(guān)系在步驟S208,查找子模塊1064查詢所述超級(jí)塊分配表得到每一個(gè)超級(jí)塊最后寫入的物理塊塊號(hào)。在步驟S210,查找子模塊1066利用二分查找法查找所述最后寫入的物理塊上最后寫入的頁號(hào)。在步驟S212,判斷子模塊1068判斷所述超級(jí)塊是否為最后一個(gè)超級(jí)塊。若所述超級(jí)塊為最后一個(gè)超級(jí)塊,則在步驟S214,建立模塊106完成所述第一級(jí)映射表的建立。若所述超級(jí)塊不是最后一個(gè)超級(jí)塊,則繼續(xù)返回步驟S208,查找子模塊1064查詢所述超級(jí)塊分配表找到下一個(gè)超級(jí)塊最后寫入的物理塊的塊號(hào)。本發(fā)明提供的閃存10及閃存的地址轉(zhuǎn)換方法,通過利用超級(jí)塊分配表在SRAM上建立第一級(jí)映射表,并在SRAM上根據(jù)第一級(jí)映射表建立第二級(jí)映射表的緩存,根據(jù)第二級(jí)映射表的緩存建立第三級(jí)映射表的緩存,并跟據(jù)所述第二級(jí)映射表的緩存、所述第三級(jí)映射表的緩存以及所述超級(jí)塊分配表的緩存聯(lián)合得到所述物理塊的塊號(hào),以獲得所述邏輯頁的物理地址,有效的提高了地址轉(zhuǎn)換的效率。雖然本發(fā)明參照當(dāng)前的較佳實(shí)施方式進(jìn)行了描述,但本領(lǐng)域的技術(shù)人員應(yīng)能理解,上述較佳實(shí)施方式僅用來說明本發(fā)明,并非用來限定本發(fā)明的保護(hù)范圍,任何在本發(fā)明的精神和原則范圍之內(nèi),所做的任何修飾、等效替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種閃存,與SRAM通信連接,由物理塊組成,其中所述物理塊由多個(gè)物理頁組成,邏輯頁與物理頁一一對(duì)應(yīng),所述物理頁內(nèi)包括第二級(jí)映射表以及第三級(jí)映射表,所述多個(gè)物理塊組成一個(gè)超級(jí)塊,還包括: 獲取模塊,用于將邏輯頁劃分為三段,分別對(duì)應(yīng)超級(jí)塊塊號(hào)、組號(hào)和組內(nèi)偏移; 記錄模塊,用于將每一個(gè)超級(jí)塊所包含的物理塊塊號(hào)記錄到超級(jí)塊分配表中; 建立模塊,用于根據(jù)所述超級(jí)塊分配表在SRAM中建立第一級(jí)映射表,并以所述超級(jí)塊塊號(hào)作為所述第一級(jí)映射表的索引; 判斷模塊,用于通過所述超級(jí)塊塊號(hào)判斷所述第二級(jí)映射表在SRAM的緩存是否被命中,且在所述第二級(jí)映射表在SRAM的緩存被命中時(shí)通過所述組號(hào)判斷所述第三級(jí)映射表在SRAM的緩存是否被命中,在所述第三級(jí)映射表在SRAM的緩存被命中時(shí)判斷所述超級(jí)塊分配表在SRAM的緩存是否被命中; 輸出模塊,用于在所述超級(jí)塊分配表在SRAM的緩存被命中時(shí)根據(jù)所述第二級(jí)映射表的緩存、所述第三級(jí)映射表的緩存以及所述超級(jí)塊分配表的緩存聯(lián)合得到所述物理塊的塊號(hào),以獲得所述邏輯頁的物理地址。
2.如權(quán)利要求1所述的閃存,其特征在于,所述建立模塊還用于在所述第二級(jí)映射表在SRAM的緩存沒有被命中時(shí)通過所述超級(jí)塊塊號(hào)查詢所述第一級(jí)映射表,并根據(jù)所述第一級(jí)映射表在SRAM建立第二級(jí)映射表的緩存。
3.如權(quán)利要求1所述的閃存,其特征在于,所述建立模塊還用于在所述第三級(jí)映射表在SRAM的緩存沒有被命中時(shí)通過所述組號(hào)查詢所述第二級(jí)映射表的緩存,并根據(jù)所述第二級(jí)映射表的緩存在SRAM建立第三級(jí)映射表的緩存。
4.如權(quán)利要求1所 述的閃存,其特征在于,所述建立模塊還用于在所述超級(jí)塊分配表在SRAM的緩存沒有被命中時(shí)將所述超級(jí)塊分配表寫回,并替換所述超級(jí)塊分配表的緩存。
5.如權(quán)利要求1所述的閃存,其特征在于,所述建立模塊包括: 獲取子模塊,用于獲取所述超級(jí)塊分配表在閃存上的物理塊的塊號(hào); 查找子模塊,用于利用二分查找法查找所述物理塊上最后寫入的物理頁頁號(hào); 讀取子模塊,用于讀取最新的超級(jí)塊分配表,并記錄相應(yīng)的物理頁頁號(hào),其中,所述查找子模塊還用于查詢所述最新超級(jí)塊分配表得到每一個(gè)超級(jí)塊最后寫入的物理塊塊號(hào),并利用二分查找法查找所述最后寫入的物理塊上最后寫入的頁號(hào); 判斷子模塊,用于判斷是否為最后一個(gè)超級(jí)塊,若是最后一個(gè)超級(jí)塊,則所述第一級(jí)映射表完成建立。
6.如權(quán)利要求5所述的閃存,其特征在于,所述查找子模塊還用于在所述超級(jí)塊不是最后一個(gè)超級(jí)塊時(shí),繼續(xù)查詢所述超級(jí)塊分配表找到下一個(gè)超級(jí)塊最后寫入的物理塊的塊號(hào)。
7.—種閃存的地址轉(zhuǎn)換方法,其中,閃存與SRAM通信連接,由物理塊組成,其中所述物理塊由多個(gè)物理頁組成,邏輯頁與物理頁一一對(duì)應(yīng),所述物理頁內(nèi)包括第二級(jí)映射表以及第三級(jí)映射表,所述多個(gè)物理塊組成一個(gè)超級(jí)塊,所述方法包括以下步驟: 將邏輯頁劃分為三段,分別對(duì)應(yīng)超級(jí)塊塊號(hào)、組號(hào)和組內(nèi)偏移; 將每一個(gè)超級(jí)塊所分配的物理塊的塊號(hào)記錄到超級(jí)塊分配表中; 根據(jù)所述超級(jí)塊分配表在SRAM中建立第一級(jí)映射表,并以所述超級(jí)塊塊號(hào)作為所述第一級(jí)映射表的索引; 通過所述超級(jí)塊塊號(hào)判斷所述第二級(jí)映射表在SRAM的緩存是否被命中; 若是,則通過所述組號(hào)判斷所述第三級(jí)映射表在SRAM的緩存是否被命中; 若是,則判斷所述超級(jí)塊分配表在SRAM的緩存是否被命中; 若是,則根據(jù)所述第二級(jí)映射表的緩存、所述第三級(jí)映射表的緩存以及所述超級(jí)塊分配表的緩存聯(lián)合得到所述物理塊的塊號(hào),以獲得所述邏輯頁的物理地址。
8.如權(quán)利要求7所述的閃存的地址轉(zhuǎn)換方法,其特征在于,若所述第二級(jí)映射表在SRAM的緩存沒有被命中,則通過所述超級(jí)塊塊號(hào)查詢所述第一級(jí)映射表,并根據(jù)所述第一級(jí)映射表在SRAM建立第二級(jí)映射表的緩存。
9.如權(quán)利要求7所述的閃存的地址轉(zhuǎn)換方法,其特征在于,若所述第三級(jí)映射表在SRAM的緩存沒有被命中,則通過所述組號(hào)查詢所述第二級(jí)映射表的緩存,并根據(jù)所述第二級(jí)映射表的緩存在SRAM建立第三級(jí)映射表的緩存。
10.如權(quán)利要求7所述的閃存的地址轉(zhuǎn)換方法,其特征在于,若所述超級(jí)塊分配表在SRAM的緩存沒有被命中,則將所述超級(jí)塊分配表寫回,并替換所述超級(jí)塊分配表的緩存。
11.如權(quán)利要求7所述的閃存的地址轉(zhuǎn)換方法,其特征在于,所述“根據(jù)所述超級(jí)塊分配表在SRAM中建立第一級(jí)映射表”的步驟中包括以下步驟: 獲取所述超級(jí)塊分配表在閃存上的物理塊的塊號(hào); 利用二分查找法查找 所述物理塊上最后寫入的物理頁頁號(hào); 讀取所述最新的超級(jí)塊分配表,并記錄相應(yīng)的物理頁頁號(hào); 查詢所述超級(jí)塊分配表得到每一個(gè)超級(jí)塊最后寫入的物理塊塊號(hào); 利用二分查找法查找所述最后寫入的物理塊上最后寫入的頁號(hào); 判斷所述超級(jí)塊是否為最后一個(gè)超級(jí)塊; 若是,則所述第一級(jí)映射表完成建立。
12.如權(quán)利要求11所述的閃存的地址轉(zhuǎn)換方法,其特征在于,若所述超級(jí)塊不是最后一個(gè)超級(jí)塊,則繼續(xù)查詢所述超級(jí)塊分配表找到下一個(gè)超級(jí)塊最后寫入的物理塊的塊號(hào)。
全文摘要
一種閃存,與SRAM通信連接,由物理塊組成,其中物理塊由多個(gè)物理頁組成,邏輯頁與物理頁一一對(duì)應(yīng),物理頁內(nèi)包括第二級(jí)映射表以及第三級(jí)映射表,多個(gè)物理塊組成一個(gè)超級(jí)塊,還包括獲取模塊、記錄模塊、建立模塊、判斷模塊以及輸出模塊,本發(fā)明通過利用超級(jí)塊分配表在SRAM上建立第一級(jí)映射表,并判斷第二級(jí)映射表、第三級(jí)映射表以及超級(jí)塊分配表的緩存來得到物理頁的地址,在SRAM上根據(jù)第一級(jí)映射表建立第二級(jí)映射表的緩存,根據(jù)第二級(jí)映射表的緩存建立第三級(jí)映射表的緩存,并根據(jù)第二級(jí)映射表的緩存、第三級(jí)映射表的緩存以及超級(jí)塊分配表的緩存聯(lián)合得到所述物理塊的塊號(hào),以獲得所述邏輯頁的物理地,有效的提高了地址轉(zhuǎn)換的效率。
文檔編號(hào)G06F12/10GK103176916SQ20131007196
公開日2013年6月26日 申請日期2013年3月7日 優(yōu)先權(quán)日2013年3月7日
發(fā)明者郁志平, 張耀輝 申請人:中國科學(xué)院蘇州納米技術(shù)與納米仿生研究所