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

一種基于數(shù)據(jù)交換區(qū)的NANDFlash閃存優(yōu)化管理方法

文檔序號:6466250閱讀:124來源:國知局
專利名稱:一種基于數(shù)據(jù)交換區(qū)的NAND Flash閃存優(yōu)化管理方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種閃存的內(nèi)部數(shù)據(jù)管理方法,尤其涉及的是一種基于數(shù)據(jù) 交換區(qū)的NAND Flash閃存優(yōu)化管理方法。
背景技術(shù)
現(xiàn)有技術(shù)中的閃存已經(jīng)廣泛應(yīng)用于移動存儲裝置中,如U盤,SD卡, SSD固態(tài)硬盤;NOR和NAND Flash閃存是現(xiàn)在市場上兩種主要的非易失 閃存技術(shù)。Intel于1988年首先開發(fā)出NORFlash技術(shù),徹底改變了原先由 EPROM和EEPROM —統(tǒng)天下的局面。1989年,東芝公司發(fā)表了 NAND Flash結(jié)構(gòu),強調(diào)降低每比特的成本,更高的性能,并且象磁盤一樣可以通 過接口輕松升級。由于大多數(shù)情況下閃存只是用來存儲少量的代碼,這時 NORFlash閃存更適合一些,而NAND Flash閃存則是大容量數(shù)據(jù)存儲的理 想解決方案,因此很多硬件工程師常不能分辨兩者之間的根本區(qū)別。
NOR Flash的特點是芯片內(nèi)執(zhí)行(XIP, eXecute In Place),這樣應(yīng)用程序 可以直接在Flash閃存內(nèi)運行,不必再把代碼讀到系統(tǒng)RAM中。NOR Flash 的傳輸效率很高,在1-4MB的小容量時具有很高的成本效益,但是很低 的寫入和擦除速度大大影響了它的性能。NAND Flash結(jié)構(gòu)能提供極高的單 元密度,并且寫入和擦除的速度也很快,但應(yīng)用NAND Flash的困難在于閃 存內(nèi)部的操作與管理并需要特殊的系統(tǒng)接口 。
NAND Flash閃存是非易失存儲器,可以對稱為BLOCK塊的存儲器單 元塊進行擦寫和再編程。任何NAND Flash器件的寫入操作只能在空或已擦 除的單元內(nèi)進行,所以大多數(shù)情況下,在進行寫入操作之前必須先執(zhí)行擦
除的操作。
如圖1所示,為現(xiàn)有技術(shù)的數(shù)據(jù)寫入操作過程,假如塊120和塊130 都為閃存中的一個標(biāo)準(zhǔn)大小的BLOCK塊(塊的定義可以參見圖3),其中 BLOCK 120為已有數(shù)據(jù)存放區(qū)域,BLOCK 130為一個空置的區(qū)域,現(xiàn)要將 數(shù)據(jù)塊110 (大小應(yīng)該是小于或等于一個BLOCK)寫入到BLOCK 120中 的邏輯A地址區(qū)域(就是數(shù)據(jù)塊110的大小),在現(xiàn)有技術(shù)的NAND Flash 閃存芯片中,在A區(qū)域的起始邏輯地址寫入數(shù)據(jù)時,其操作過程包括
A0、找到一個新的空置的BLOCK 130,將BLOCK 120的A區(qū)域以外 的數(shù)據(jù)拷貝到BLOCK 130中相應(yīng)位置;
B0、將要寫入的數(shù)據(jù)塊IIO直接寫到BLOCK130的A區(qū)域。
以上步驟也可以先執(zhí)行步驟B0,后執(zhí)行步驟A0。 也可以部分執(zhí)行步 驟A0,然后執(zhí)行步驟B0,再執(zhí)行步驟AO剩下的步驟。
在AO的步驟中,即先拷貝BLOCK 120的B區(qū)域到BLOCK 130的B 區(qū)域,再拷貝BLOCK 120的C區(qū)域到BLOCK 130的C區(qū)域。
隨著NAND閃存供應(yīng)商采用越來越小的工藝尺寸, 一些較小尺寸的 SLC NAND閃存的可擦除次數(shù)則從10萬次降低到了 5萬次,MLC NAND 閃存的可擦除次數(shù)從1萬次下降到5千次(某些情況下甚至降低到3千次)。
目前基于NAND Flash的文件系統(tǒng)中要寫入一段數(shù)據(jù)時,首先要頻繁的 修改它的系統(tǒng)文件。例如普遍使用的FAT文件系統(tǒng)要寫入一個文件,必須 要先修改FAT表,F(xiàn)DT表,最后才是數(shù)據(jù)。事實上FAT表修改只是一個扇 區(qū),而FDT表也只是修改8個扇區(qū),而且是連續(xù)修改幾次后才寫入真實數(shù) 據(jù),由于NAND Flash的特性,不能對同一頁進行重復(fù)編程,必須整塊先擦 除后再編程(編程即數(shù)據(jù)寫入)。但是在擦除一個BLOCK塊時,必須先把 塊上的其他數(shù)據(jù)保存到新的(空置塊)地址。
拷貝 一個文件操作命令的數(shù)據(jù)流程如下代碼所示 CDB 2a 00 00 00-00 20 00 00-01 00 FAT 71us
CDB2a 00 00 00 -02 20 00 00-08 00FDT78us
CDB2a 00 00 00國02 20 00 00-08 00FDTllOus
CDB2a 00 00 00國00 26 00 00-01 00FAT39us
CDB2a 00 00 00 -01 23 00 00-01 00FAT76us
CDB2a 00 00 00 -02 20 00 00-08 00FDT64us
CDB2a 00 00 00-02 40 00 00-17 00DATA184us
CDB2a 00 00 00 -02 20 00 00-08 00FDT78us
CDB2a 00 00 00-02 20 00 00-08 00FDT97us
CDB2a 00 00 00 -00 20 00 00-01 00FAT914ms
CDB2a 00 00 00 -00 26 00 00-01 00FAT51us
CDB2a 00 00 00 -01 23 00 00-01 00FAT444us
需做說明的是,上述文件操作流程是通過監(jiān)測程序獲得,其中的加下
劃線用語為添加說明,不是命令本身;CDB 2a 00 00 00 -aa bb 00 00 -cnt 00 指的是在aa+bb*256的邏輯地址寫入長度為cnt的數(shù)據(jù)。
這樣,在現(xiàn)有技術(shù)的操作中當(dāng)只拷貝一個文件時,文件系統(tǒng)卻修改了 12次,也就是說執(zhí)行了 12次如圖1所示的操作過程,即不停的在搬運數(shù)據(jù)。 系統(tǒng)文件區(qū)在這個過程被修改了 11次,但是實質(zhì)的數(shù)據(jù)區(qū)只修改了一次。 這樣由于系統(tǒng)文件區(qū)不停的反復(fù)被讀寫,就造成一種嚴(yán)重的磨損不平衡, 導(dǎo)致NAND Flash壽命縮短,大大降低了產(chǎn)品的壽命。
由于NAND Flash的性能優(yōu)勢,目前已經(jīng)開始大范圍應(yīng)用于各種存^t裝 置,并可能取代傳統(tǒng)的硬盤成為下一代技術(shù)飛躍的核心。但目前大容量 NAND Flash在低緩存消耗的情況下小文件拷貝速度過慢,以及由于FAT表 區(qū)域在每次數(shù)據(jù)的傳輸時對每個頁的數(shù)據(jù)讀寫都要在該區(qū)反復(fù)多次讀寫, 導(dǎo)致其被快速磨損而容易造成NAND Flash文件系統(tǒng)損壞,降低整個芯片的 壽命。因此,現(xiàn)有讀寫NAND Flash的技術(shù)還有待于改進和發(fā)展。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于數(shù)據(jù)交換區(qū)的NAND Flash優(yōu)化管理 方法,特別是基于NAND Flash的文件系統(tǒng)進行優(yōu)化和改進,解決了由于系 統(tǒng)文件區(qū)域的快速磨損而導(dǎo)致NAND Flash的文件系統(tǒng)損壞所造成的壽命 縮減的問題,以及大大提高了大容量NAND Flash在低緩存消耗的情況下文 件拷貝的速度。
本發(fā)明的技術(shù)方案包括
一種基于數(shù)據(jù)交換區(qū)的NAND Flash閃存優(yōu)化管理方法,其包括閃存 控制器執(zhí)行的以下步驟
A、 在NAND Flash閃存上設(shè)置至少2個BLOCK塊作為數(shù)據(jù)交換區(qū);
B、 加入一個動態(tài)的數(shù)據(jù)有效性標(biāo)識表項,用于記錄所述數(shù)據(jù)交換區(qū)中 數(shù)據(jù)的新舊程度,當(dāng)數(shù)據(jù)塊在設(shè)定時間內(nèi)再沒有被修改時,則把最近寫入 到數(shù)據(jù)交換區(qū)的數(shù)據(jù)塊拷貝到邏輯地址重新映射后的閃存真實物理地址 內(nèi)。
所述邏輯地址重新映射后的真實物理地址指的是一個可存儲的區(qū)域,它 是一個空置塊中的一個地址區(qū)域,也是數(shù)據(jù)塊從邏輯地址要寫入到的一個 物理地址區(qū)域, 一個邏輯地址在一個時刻只對應(yīng)一個物理地址,但是在不 同時間可能對應(yīng)不同的物理地址。
所述的方法,其中,所述步驟B還包括
當(dāng)數(shù)據(jù)交換區(qū)中的任意一個BLOCK塊填滿之后,則可以開始把最近寫 入到這個BLOCK塊中的數(shù)據(jù)塊或部分數(shù)據(jù)塊寫入到邏輯地址重新映射后 的閃存的真實物理地址內(nèi)。
所述的方法,其中,所述步驟B還包括
所述閃存控制器再設(shè)置一地址映射表項用于記錄所述數(shù)據(jù)交換區(qū)內(nèi)數(shù) 據(jù)塊的邏輯地址與數(shù)據(jù)交換區(qū)物理地址的對應(yīng)關(guān)系以及數(shù)據(jù)塊所占用的扇
區(qū)數(shù)。
所述的方法,其中,所述步驟B還包括
在所述閃存控制器處于相對閑置狀態(tài)時或者上位機接口數(shù)據(jù)傳輸階段 性完成時,優(yōu)先將所述數(shù)據(jù)交換區(qū)中的數(shù)據(jù)塊寫入到邏輯地址重新映射后 的閃存的真實物理地址中。
所述的方法,其中,所述上位機結(jié)構(gòu)為USB接口或SATA接口或SD 接口或MMC接口。
所述的方法,其中,所述步驟B還包括
Bl、在所述NANDFlash中找到一空置的BLOCK塊,將原來邏輯地址 映射BLOCK塊中要寫入的數(shù)據(jù)塊所對應(yīng)此BLOCK塊中物理地址區(qū)域以外 的數(shù)據(jù)塊拷貝到所述空置BLOCK塊中的相應(yīng)位置;
B2、將所述數(shù)據(jù)有效性標(biāo)識對應(yīng)的數(shù)據(jù)寫入到所述空置BLOCK塊的 對應(yīng)邏輯地址重新映射后的真實物理地址中。
所述的方法,其中,所述步驟B還包括
對寫入數(shù)據(jù)時所需的對系統(tǒng)文件修改》文在NAND Flash的數(shù)據(jù)交換區(qū) 中進行。
所述的方法,其中,所述步驟B還包括
對寫入數(shù)據(jù)時所需的對用戶數(shù)據(jù)修 文;故在NAND Flash的數(shù)據(jù)交換區(qū) 中進行。
所述的方法,其中,用作所述數(shù)據(jù)交換區(qū)的BLOCK塊數(shù)設(shè)置為3個以上。
所述的方法,其中,所述步驟B還包括在寫滿ft據(jù)交換區(qū)中的任意 一個BLOCK塊后,則開始向彩:據(jù)交換區(qū)中的下一個BLOCK塊寫入;閃存 控制器可開始將已填滿塊的數(shù)據(jù)拷貝到邏輯地址重新映射后的真實物理地 址,并擦除該已填滿的塊。
本發(fā)明所提供的一種基于數(shù)據(jù)交換區(qū)的NAND Flash優(yōu)化管理方法,由
于采用了通過閃存控制器在NAND Flash芯片中設(shè)置多個BLOCK塊作為數(shù) 據(jù)交換區(qū),將讀寫中的中間過程數(shù)據(jù)進行緩沖存儲,減少了對NANDFlash 芯片的系統(tǒng)文件區(qū)的寫入頻度,提高了芯片的讀寫速度,同時均衡了芯片 的磨損,延長了 NAND Flash的使用壽命。


圖1為現(xiàn)有技術(shù)的NAND Flash的數(shù)據(jù)讀寫過程的示意圖; 圖2為本發(fā)明基于數(shù)據(jù)交換區(qū)的NAND Flash優(yōu)化管理方法數(shù)據(jù)讀寫過 程的示意圖3為本發(fā)明方法的NAND Flash內(nèi)部閃存存儲結(jié)構(gòu)系統(tǒng)示意圖。
具體實施例方式
以下結(jié)合附圖,將對本發(fā)明的各較佳實施例進行更為詳細的說明。 本發(fā)明方法實現(xiàn)需要依賴于現(xiàn)有的NAND Flash閃存存儲結(jié)構(gòu)系統(tǒng),如 圖3所示的內(nèi)部閃存存儲結(jié)構(gòu)系統(tǒng)簡要示意,外部由一閃存控制器實現(xiàn)對 NAND Flash的操作,該閃存控制器通常內(nèi)部會嵌入有CPU或微處理器, 如8051, ARM系列等,本發(fā)明方法需要通過控制器的指令來控制實現(xiàn)。 NAND Flash的操作特性是以頁page為單位來寫(或編程)或者讀, 一個 頁page不能重復(fù)的寫,重復(fù)寫之前必須先擦除。而擦除是以BLOCK塊為 單位進行的(原因是寫操作可以使存儲單元由1變成O,但是不能由0變成 1;要使0變成1,只有擦除操作)。
為方便描述,本發(fā)明申請文件中將擦除操作的一個單位稱為BLOCK 塊,是一種NAND Flash的物理存儲結(jié)構(gòu)單元;對BLOCK中的部分數(shù)據(jù)稱 為數(shù)據(jù)塊,但數(shù)據(jù)塊是小于或等于BLOCK塊的,即數(shù)據(jù)塊是在一個BLOCK 塊中實際數(shù)據(jù)存儲的連續(xù)區(qū)域,也有可能是一個完整的BLOCK塊。
本發(fā)明基于數(shù)據(jù)交換區(qū)的NAND Flash優(yōu)化管理方法,通過閃存控制器 在目前通用的NAND Flash中設(shè)置2個以上的BLOCK塊固定用于數(shù)據(jù)交 換,其物理地址可知。在其表項中記錄數(shù)據(jù)交換區(qū)內(nèi)的邏輯地址與物理地 址的對應(yīng)關(guān)系以及該數(shù)據(jù)塊所占用的扇區(qū)個數(shù),在收到相同的邏輯地址的 數(shù)據(jù)塊時,只要將對應(yīng)的物理地址做修改,就可以將以前在交換區(qū)的數(shù)據(jù) 自動放棄,而數(shù)據(jù)就會存放到新的物理地址。
每一數(shù)據(jù)塊,需要加入動態(tài)標(biāo)識表項表示該數(shù)據(jù)塊的生存時間,作為 數(shù)據(jù)塊的有效性標(biāo)識,以記錄其數(shù)據(jù)塊的新舊程度,當(dāng)數(shù)據(jù)越被頻繁修改 時,表示數(shù)據(jù)就越年輕;如數(shù)據(jù)在寫入后很久都沒被修改,則代表數(shù)據(jù)很 老。 一旦閃存控制器處于相對空閑IDLE模式或者上位機接口包括但不限于 如USB接口或SATA接口或SD接口或MMC接口等,階段性的沒有數(shù)據(jù) 傳輸時,則優(yōu)先將數(shù)據(jù)交換區(qū)中的數(shù)據(jù)塊寫入到邏輯地址重新映射后的閃 存真實物理地址。當(dāng)凄t據(jù)交換區(qū)的任意BLOCK塊填滿后,則將數(shù)據(jù)向其邏 輯地址重新映射后的真實物理地址中寫入。
本發(fā)明的上述處理方式可以使數(shù)據(jù)快速從PC上通過上位機接口如 USB接口或SATA接口或SD接口或MMC接口寫入到NAND Flash中,避 免了數(shù)據(jù)在NAND Flash上實時空間分配所耗的時間過長從而導(dǎo)致拷貝過
L曰
本發(fā)明所述NAND Flash在讀數(shù)據(jù)的時候,可以先查找其表項是否有對 應(yīng)的邏輯地址,有就直接在NAND Flash的交換區(qū)中直接讀取數(shù)據(jù),以加快 速度,沒有則^使用以前流程到真實的物理地址中去查找。當(dāng)?shù)綦姾笤偕想?時,內(nèi)存中的數(shù)據(jù)交換區(qū)表項會重建,同時擦除數(shù)據(jù)交換區(qū)BLOCK塊。由 于數(shù)據(jù)交換區(qū)數(shù)據(jù)寫入也是按頁(page)為單位來進行, 一旦該數(shù)據(jù)交換區(qū) 的任一 BLOCK塊填滿后,而且又把此BLOCK中的最新的凄t據(jù)塊拷貝到真 實物理地址之后,則進行塊擦除。然后可再從第一個頁(page)開始寫,或 者寫入數(shù)據(jù)交換區(qū)的下一個BLOCK塊的第 一個頁,這樣就可以依次使用各
個數(shù)據(jù)交換區(qū)BLOCK塊,不會只對系統(tǒng)文件的BLOCK塊進行讀寫,可利 用整體NAND Flash來實現(xiàn)平衡磨損。
針對一個文件拷貝,本發(fā)明方法把對系統(tǒng)文件的修改變成把最終修改 的結(jié)果寫入到邏輯地址重新映射后的真實物理地址,而中間的臨時操作僅 在NAND Flash的數(shù)據(jù)交換區(qū)中進行,并沒有頻繁寫入到邏輯地址所對應(yīng)的 一系列物理地址中。系統(tǒng)在需要數(shù)據(jù)時就可直接在數(shù)據(jù)交換區(qū)BLOCK塊中 找尋,這樣系統(tǒng)文件區(qū)的磨損次數(shù)將會大大降低,從而提高NAND Flash 的可用性。
本發(fā)明方法的操作如圖2所示,其包括以下步驟
A、 在NAND Flash上設(shè)置2個或以上BLOCK塊固定用于數(shù)據(jù)交換; 當(dāng)有數(shù)據(jù)要求寫入某物理地址時,如圖2中所示的邏輯A地址,可以是系 統(tǒng)文件區(qū)地址或者用戶數(shù)據(jù)區(qū)地址,就先寫入NAND Flash的數(shù)據(jù)交換區(qū) BLOCK塊210中,并記下數(shù)據(jù)交換區(qū)的物理地址;
本發(fā)明方法主要是設(shè)置一個地址映射表項來記錄數(shù)據(jù)交換區(qū)內(nèi)數(shù)據(jù)塊 的邏輯地址與物理地址的對應(yīng)關(guān)系以及數(shù)據(jù)塊所占用的扇區(qū)個數(shù)。在收到 相同的邏輯地址時,只要將其對應(yīng)的數(shù)據(jù)交換區(qū)BLOCK塊中的物理地址做 修改,就可以將以前在緩沖的數(shù)據(jù)自動放棄,數(shù)據(jù)依次存放到所述數(shù)據(jù)交 換區(qū)中新的物理地址上;
B、 在寫數(shù)據(jù)的過程中,尤其對系統(tǒng)文件區(qū)的數(shù)據(jù),會反復(fù)多次在同一 地址位置進行讀寫數(shù)據(jù);當(dāng)每次有數(shù)據(jù)要求寫入邏輯A地址時,都依次在 數(shù)據(jù)交換區(qū)BLOCK塊中寫入,直至寫滿一個BLOCK塊為止,然后可轉(zhuǎn)向 下一 BLOCK塊來寫入,同時修改邏輯A地址所對應(yīng)的數(shù)據(jù)交換區(qū)的相應(yīng) 地址,即根據(jù)更新的數(shù)據(jù)交換區(qū)地址保持映射到該物理A地址;
C、 同時設(shè)置一動態(tài)的數(shù)據(jù)有效性標(biāo)識表項,當(dāng)對應(yīng)A地址的數(shù)據(jù)在預(yù) 定設(shè)置的時間內(nèi)再沒有被寫入(修改)時,表明對應(yīng)的數(shù)據(jù)塊需要被寫入 到邏輯地址重新映射后的閃存真實物理地址中;
D、 在所述NAND Flash中找到一新BLOCK塊230,將BLOCK塊220 中的A地址以上部分數(shù)據(jù)塊B拷貝到空置的BLOCK塊230的B中;
E、 將所述數(shù)據(jù)有效性標(biāo)識對應(yīng)需要寫入的數(shù)據(jù)塊AN寫入到所述新 BLOCK塊230中A地址中;
F、 將BLOCK塊220的其他數(shù)據(jù)塊C拷貝到該空置的BLOCK塊230 的相應(yīng)位置C。上述步驟D、 E、 F完全是現(xiàn)有技術(shù)中NAND Flash數(shù)據(jù)寫 入的必須過程,每更改一次數(shù)據(jù)都要執(zhí)行步驟D、 E、 F,只是他們的先后 執(zhí)行次序可以改變或調(diào)整。與現(xiàn)有技術(shù)相比,本發(fā)明方法減少了頻繁對系 統(tǒng)文件區(qū)BLOCK塊進行此種操作,提高了 NAND Flash所帶來的壽命和速 度問題。
本發(fā)明方法可以在NAND Flash芯片上設(shè)置更多的BLOCK塊作為數(shù)據(jù) 交換區(qū),例如設(shè)置NAND Flash的一半作為數(shù)據(jù)交換區(qū)的BLOCK塊,這樣, 數(shù)據(jù)交換區(qū)BLOCK塊將作為主要的頻繁寫入?yún)^(qū)域,但由于數(shù)據(jù)交換區(qū) BLOCK塊可以依次順序被使用,即寫滿一個BLOCK塊后再寫入相鄰的下 一個數(shù)據(jù)交換區(qū)BLOCK塊中,從而將NAND Flash芯片中的多個BLOCK 塊依次使用,避免對一個固定BLOCK塊的反復(fù)頻繁讀寫,由此均衡磨損, 提高整個芯片的使用壽命。
本發(fā)明方法中在拷貝一個文件時,其文件系統(tǒng)也是修改了 12次,但是 并沒有像之前的方法那樣對NAND Flash的BLOCK塊需要擦除12次,而 只是把最終結(jié)果寫入到相應(yīng)物理地址中即可,也就是只操作了 3個BLOCK 塊。數(shù)據(jù)每修改一次,本發(fā)明方法的系統(tǒng)文件也只修改兩次。真正達到了 NAND Flash的磨損平衡,同時提高了寫入速度。
本發(fā)明基于數(shù)據(jù)交換區(qū)的NAND Flash優(yōu)化管理方法,主要對寫入的數(shù) 據(jù)進行了分別處理,區(qū)分文件系統(tǒng)數(shù)據(jù)和用戶數(shù)據(jù)。系統(tǒng)文件的修改由于 在大部分的情況下是臨時的,當(dāng)數(shù)據(jù)量不大的時候,可適量放在閃存控制 器內(nèi)存中。但是用戶數(shù)據(jù)是一定要寫入的,沒必要占用寶貴的閃存控制器
存儲空間。
當(dāng)更新一次用戶數(shù)據(jù)時,F(xiàn)AT表同一地址就更新了 4次,但是每次都 是兩個扇區(qū),就可以把數(shù)據(jù)放在閃存控制器的內(nèi)存中,處理方式同放在 NAND Flash數(shù)據(jù)交換區(qū)一樣。但是FDT表一次更新8個扇區(qū),如果把它 也放在控制器內(nèi)存中則占用大量空間,所以放在NAND Flash中的數(shù)據(jù)交換 區(qū)是合適的,當(dāng)閃存控制器內(nèi)存空間寬裕的情況下,也可考慮放在其內(nèi)存 中。
本發(fā)明方法中動態(tài)數(shù)據(jù)有效性標(biāo)識可用于表示數(shù)據(jù)更新狀況,但是其 思想還是在于保證數(shù)據(jù)在設(shè)定時間沒被修改或者一直沒^皮修改的狀況下就 可被寫入到真實物理地址中,以保證數(shù)據(jù)交換區(qū)利用率。
本發(fā)明基于數(shù)據(jù)交換區(qū)的NAND Flash優(yōu)化管理方法,極大提高NAND Flash的文件讀寫速度與NAND Flash的使用壽命。
與現(xiàn)有技術(shù)相比,本發(fā)明方法的效率對比說明如下現(xiàn)有技術(shù)中拷貝 一個文件原來所消耗時間為Tl:
T1=A+ (B + C + D + E) *10N;
而本發(fā)明方法改進后所消耗時間T2為
T2 = A+ (B + C + 2*D + E) *N;
其中,A為USB (假設(shè)的上位才幾接口 )傳輸?shù)介W存控制器的時間;B 為空置塊分配系統(tǒng)消耗時間;C為拷貝舊塊數(shù)據(jù)到空置塊的消耗時間;D 為新數(shù)據(jù)的寫入時間;E為舊塊的擦除時間;N為寫入文件個數(shù)。
現(xiàn)有技術(shù)的用戶可^L時間Til: Tll-T;而本發(fā)明方法改進后用戶的 可視時間T21為T21=A + D。
現(xiàn)有技術(shù)的磨損密度COl為C01 = (CI+C2 + C3) *10N;而本發(fā) 明方法改進后磨損密度C02為C02- (C1+2*C2 + C3) *N;其中,CI: 為拷貝舊塊中的數(shù)據(jù)到新塊中造成的磨損;C2:為新數(shù)據(jù)寫入新塊造成的 磨損;C3:為舊塊擦除造成的磨損。
本發(fā)明方法所增加的閃存控制器內(nèi)存消耗包括 一個交換塊最大內(nèi)存 需要1280byte,最小內(nèi)存需要為30byte。
由此可知,本發(fā)明方法確實實現(xiàn)了一種能夠提高NANDFlash使用壽命 和讀寫速度的NANDFlash操作方案,但應(yīng)當(dāng)理解的是,上述針對本發(fā)明較 佳實施例的描述較為詳細,并不能因此而認為是對本發(fā)明專利保護范圍的 限制,本發(fā)明的專利保護范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1、一種基于數(shù)據(jù)交換區(qū)的NAND Flash閃存優(yōu)化管理方法,其包括閃存控制器執(zhí)行的以下步驟:A、在NAND Flash閃存上設(shè)置至少2個BLOCK塊作為數(shù)據(jù)交換區(qū);B、加入一個動態(tài)的數(shù)據(jù)有效性標(biāo)識表項,用于記錄所述數(shù)據(jù)交換區(qū)中數(shù)據(jù)塊的新舊程度,當(dāng)數(shù)據(jù)塊在設(shè)定時間內(nèi)再沒有被修改時,則把最近寫入到數(shù)據(jù)交換區(qū)的數(shù)據(jù)塊拷貝到邏輯地址重新映射后的閃存真實物理地址內(nèi)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B還包括 當(dāng)數(shù)據(jù)交換區(qū)中的任意一個BLOCK塊填滿之后,則可以開始把最近寫入到這個BLOCK塊中的數(shù)據(jù)塊寫入到邏輯地址重新映射后的閃存所對應(yīng) 的真實物理地址內(nèi)。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B還包括 所述閃存控制器再設(shè)置一地址映射表項用于記錄所述數(shù)據(jù)交換區(qū)內(nèi)數(shù)據(jù)塊的邏輯地址與數(shù)據(jù)交換區(qū)物理地址的對應(yīng)關(guān)系以及數(shù)據(jù)塊所占用的扇 區(qū)數(shù)。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述步驟B還包括 在所述閃存控制器處于相對閑置狀態(tài)時或者上位機接口數(shù)據(jù)傳輸階段性完成時,優(yōu)先將所述數(shù)據(jù)交換區(qū)中的數(shù)據(jù)塊寫入到邏輯地址重新映射后 的閃存的真實物理地址中。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述上位機接口為USB 接口或SATA接口或SD接口或MMC接口。
6、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟B還包括 Bl、在所述NANDFlash中找到一空置的BLOCK塊,將原來邏輯地址映射BLOCK塊中要寫入的數(shù)據(jù)塊所對應(yīng)此BLOCK塊中物理地址區(qū)域以外 的數(shù)據(jù)塊拷貝到所述空置BLOCK塊中的相應(yīng)位置;B2、將所述數(shù)據(jù)有效性標(biāo)識所對應(yīng)的數(shù)據(jù)塊寫入到所述空置BLOCK 塊中邏輯地址重新映射后的的真實物理地址中。
7、 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟B還包括 對寫入數(shù)據(jù)時所需的對系統(tǒng)文件修改放在NAND Flash的數(shù)據(jù)交換區(qū)中進行。
8、 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟B還包括 對寫入數(shù)據(jù)時所需的對用戶數(shù)據(jù)修改放在NAND Flash的數(shù)據(jù)交換區(qū)中進行。
9、 根據(jù)權(quán)利要求6所述的方法,其特征在于,用作所述數(shù)據(jù)交換區(qū)的 BLOCK塊數(shù)設(shè)置為3個或以上。
10、 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述步驟B還包括 在寫滿數(shù)據(jù)交換區(qū)中的任意 一個BLOCK塊后,則開始向數(shù)據(jù)交換區(qū)中的下 一個BLOCK塊寫入;閃存控制器可開始將已填滿塊的彰:據(jù)拷貝到邏輯地址 重新映射后的閃存真實物理地址,并擦除該已填滿的塊。
全文摘要
本發(fā)明公開了一種基于數(shù)據(jù)交換區(qū)的NAND Flash閃存優(yōu)化管理方法,其包括以下步驟在NAND Flash上設(shè)置至少2個BLOCK塊作為數(shù)據(jù)交換區(qū);加入一個動態(tài)的數(shù)據(jù)有效性標(biāo)識表項,記錄所述數(shù)據(jù)交換區(qū)中數(shù)據(jù)塊的新舊程度;在數(shù)據(jù)塊在設(shè)定時間內(nèi)還沒有被修改時,寫入到邏輯地址重新映射后的閃存真實物理地址內(nèi)。本發(fā)明方法由于采用了通過閃存控制器在NAND Flash芯片中設(shè)置的多個BLOCK塊的數(shù)據(jù)交換區(qū),將讀寫中的中間過程數(shù)據(jù)進行緩沖存儲,減少了對NAND Flash芯片的系統(tǒng)文件區(qū)的寫入頻度,提高了芯片的讀寫速度,同時均衡了芯片的磨損,延長了NAND Flash的使用壽命。
文檔編號G06F12/06GK101382918SQ200810142659
公開日2009年3月11日 申請日期2008年7月26日 優(yōu)先權(quán)日2008年7月26日
發(fā)明者勝 羅, 譚四方 申請人:深圳市硅格半導(dǎo)體有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1