国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種快速寫nand型flash的方法

      文檔序號:6464663閱讀:186來源:國知局
      專利名稱:一種快速寫nand型flash的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種提高計算機系統(tǒng)中寫文件速度的方法,具體是涉及提 高寫大容量NAND型FLASH中文件速度的方法。
      背景技術(shù)
      隨著多媒體技術(shù)的迅猛發(fā)展,越來越多的數(shù)碼產(chǎn)品不斷涌現(xiàn),如MP3、 PMP、數(shù)碼相機、數(shù)碼相框、GPS等等。這些數(shù)碼產(chǎn)品往往需要內(nèi)置可擦寫非 易失的存儲設(shè)備,而在己有的存儲介質(zhì)中大容量NAND型FLASH往往是這些 應(yīng)用的首選。
      NAND型FLASH有其自身讀寫的特點,其最小的讀取單元為頁(Page), 一般每個頁的大小在512字節(jié)到4196個字節(jié)之間。而NAND型FLASH寫入時 必須先進行擦除,擦除的最小單位為數(shù)據(jù)塊(BLOCK), 一般情況下,數(shù)據(jù) 塊BL0CK由16-64個連續(xù)的頁組成。當(dāng)擦除區(qū)塊時,區(qū)塊內(nèi)所有頁的數(shù)據(jù)均 被擦除。
      由于可能存在壞塊,NAND型FLASH讀寫的邏輯地址還需最終轉(zhuǎn)換為物理 介質(zhì)上的物理地址進行操作。轉(zhuǎn)換表冗余分布存儲在NAND型FLASH的每頁 上,記載著其所在的數(shù)據(jù)塊信息,為物理地址到邏輯地址的轉(zhuǎn)換。
      在NAND型FLASH上, 一般使用FAT16或FAT32文件系統(tǒng)存儲文件。FAT 系統(tǒng)的一個特點就是利用存儲在邏輯地址前端的FAT表作為指針標記文件或 目錄。FAT表有兩個,分別為FAT1和FAT2, FAT2為進行備份之用。在較大 的NAND型FLASH上,典型FAT表所占用的空間不足整個物理空間的千分之
      4FAT系統(tǒng)最初設(shè)計使用在軟盤或是硬盤上面,而對于大文件讀取的介質(zhì) 往往是硬盤。為了提高讀寫速度,硬盤往往自帶緩沖。這樣,文件系統(tǒng)就可 以以簡單的策略進行操作。但是,NAND型FLASH在物理上缺乏這樣一組緩存。由于上面介紹的特點,不同的讀寫操作策略可能在速度上會相差很大, 尤其NAND型FLASH是以數(shù)據(jù)塊BLOCK為單位寫入,該特點使得在執(zhí)行寫 FLASH操作時經(jīng)常會花費大量時間讀回寫入扇區(qū)所在BLOCK中未更新扇區(qū)中 的數(shù)據(jù),若該數(shù)據(jù)對系統(tǒng)無意義,則會浪費大量時間,嚴重影響了讀寫速度。發(fā)明內(nèi)容本發(fā)明的目的是針對現(xiàn)有技術(shù)中存在的上述問題,提出了一種行之有 效的解決方法,切實加快對NAND型FLASH寫操作的速度。為達到上述目的,本發(fā)明提出了一種快速寫NAND型FLASH的方法, 其中系統(tǒng)執(zhí)行寫操作之前,在內(nèi)存中分別開辟存儲將邏輯扇區(qū)轉(zhuǎn)換為物理 扇區(qū)的索引表、FAT表備份、空FAT表寫記錄和以數(shù)據(jù)塊為單位的數(shù)據(jù)緩 沖區(qū),所述數(shù)據(jù)塊包括多個扇區(qū),用FAT表備份區(qū)備份系統(tǒng)FAT表區(qū),用 空FAT寫記錄區(qū)記載每個FLASH數(shù)據(jù)塊的數(shù)據(jù)寫入情況;所述方法包括下 列步驟將擬寫入FLASH數(shù)據(jù)塊的數(shù)據(jù),按扇區(qū)寫入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊中;當(dāng)需要將數(shù)據(jù)緩沖區(qū)某個數(shù)據(jù)塊的數(shù)據(jù)寫入FLASH數(shù)據(jù)塊時,判斷所 述數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊對應(yīng)的FAT表備份中的數(shù)據(jù)是否為空;若判斷結(jié)果為空,且所述空FAT表記錄指示相應(yīng)數(shù)據(jù)未被寫過,以及 相應(yīng)FAT表未被更新過時,直接將數(shù)據(jù)緩沖區(qū)的所述數(shù)據(jù)塊依據(jù)邏輯扇區(qū) 到物理扇區(qū)的索引表寫入到FLASH數(shù)據(jù)塊??蛇x的是,需要將數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊的數(shù)據(jù)寫入FLASH數(shù)據(jù)塊是指數(shù) 據(jù)緩沖區(qū)無法容納新的數(shù)據(jù)塊。優(yōu)選的是,包括在判斷數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊的全部扇區(qū)都被寫入的情況 下,直接將數(shù)據(jù)緩沖區(qū)該數(shù)據(jù)塊的數(shù)據(jù)按塊寫入到FLASH數(shù)據(jù)塊的步驟。優(yōu)選的是,包括在判斷所寫邏輯扇區(qū)不在數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊中且數(shù) 據(jù)緩沖區(qū)未滿的情況下,將數(shù)據(jù)寫入空的數(shù)據(jù)緩沖區(qū)中的步驟。優(yōu)選的是,包括當(dāng)所述需寫入FLASH的數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊所對應(yīng)的 FAT表備份中的數(shù)據(jù)不為空時,或其雖為空,但所述空FAT表記錄指示相 應(yīng)數(shù)據(jù)塊數(shù)據(jù)被寫過或相應(yīng)FAT表被更新過時,讀取FLASH上此數(shù)據(jù)塊未 更新扇區(qū)中的數(shù)據(jù)到所述數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊;然后,將此數(shù)據(jù)緩沖區(qū)的數(shù) 據(jù)塊的數(shù)據(jù)按塊寫入到FLASH。優(yōu)選的是,包括當(dāng)更新FAT表時,在所述空FAT表寫記錄區(qū)中記載當(dāng) 前更新FAT表操作。優(yōu)選的是,包括判斷數(shù)據(jù)所屬扇區(qū)是否在所述數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊 內(nèi),并且在判斷結(jié)果為是的情況下將數(shù)據(jù)寫入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊內(nèi)。本發(fā)明由于利用NAND型FLASH和FAT系統(tǒng)的特點,以空間換時間的 方式,在系統(tǒng)內(nèi)部開辟一定大小的存儲區(qū)域,作為邏輯扇區(qū)轉(zhuǎn)換為物理扇 區(qū)的索引表、FAT表備份、空FAT表寫記錄、以及BLOCK的緩沖區(qū),并在邏輯扇區(qū)讀寫層下添加一系列對上層透明的控制操作,達到了加快寫入速 度的效果。


      下文將參照附圖對本發(fā)明的具體實施方案進行更詳細的舉例說明,其中圖1是本發(fā)明的內(nèi)存空間分配結(jié)構(gòu)圖; 圖2是本發(fā)明的系統(tǒng)初始化過程流程圖; 圖3是本發(fā)明的系統(tǒng)寫入扇區(qū)的流程圖; 圖4是本發(fā)明的系統(tǒng)結(jié)束操作的流程圖。
      具體實施方式
      圖1是本發(fā)明的內(nèi)存空間分配結(jié)構(gòu)圖。如圖所示,本方法需要在系統(tǒng) 內(nèi)存空間中開辟四片空間,分別用于存儲邏輯扇區(qū)轉(zhuǎn)換為物理扇區(qū)的索引表、FAT表備份、空FAT表寫記錄、以及FLASH的數(shù)據(jù)塊BLOCK的緩沖區(qū), 其中,邏輯扇區(qū)到物理扇區(qū)的索引表可以以每一個邏輯塊影射為單位建立 一條索引,這樣如果邏輯塊到物理塊的影射關(guān)系為F,即物理塊二F (對應(yīng) 邏輯塊),那么,邏輯扇區(qū)A所對應(yīng)的物理扇區(qū)B就為B = D*F(A/D) + A%D,其中D為系統(tǒng)每個塊所包含的扇區(qū)數(shù),A。/。D代表A除以D的 余數(shù)。FAT表備份為系統(tǒng)FAT表區(qū)在內(nèi)存中的備份,空FAT表寫記錄記載 每個數(shù)據(jù)塊BLOCK的寫入情況。數(shù)據(jù)塊BLOCK緩沖用于以BLOCK為單位緩 沖物理介質(zhì)FLASH上的數(shù)據(jù),其大小可根據(jù)系統(tǒng)空間的大小進行調(diào)整,最 少1個BLOCK容量,優(yōu)選的是為BLOCK容量的整數(shù)倍。圖2是本發(fā)明的系統(tǒng)初始化過程流程圖。如圖所示,系統(tǒng)在開始運行 時,首先初始化上述空間,操作如下1、 讀取NAND型FLASH上存儲的物理扇區(qū)轉(zhuǎn)化為邏輯扇區(qū)的信息;2、 根據(jù)1所得到的信息建立邏輯扇區(qū)轉(zhuǎn)換為物理扇區(qū)的索引表;3、 讀取NAND型FLASH存儲的FAT表到FAT表備份;4、 將空FAT表寫記錄的每一位置O;5、 清空數(shù)據(jù)塊BLOCK的緩沖區(qū)。圖3是本發(fā)明的系統(tǒng)寫入扇區(qū)的流程圖。如圖所示,系統(tǒng)在寫入扇區(qū)時,需要進行如下操作-1、 判斷所寫邏輯扇區(qū)是否屬于FAT表,如果不是,轉(zhuǎn)到步驟6;2、 更新FAT表備份中的數(shù)據(jù);3、 判斷FAT表更新部分原來是否為空,如果不是,結(jié)束;4、 判斷FAT表更新部分所對應(yīng)的空FAT表寫記錄的相應(yīng)位置是否為 2,如果是,結(jié)束;5、 將FAT表更新部分所對應(yīng)的空FAT表寫記錄的相應(yīng)位置置為1,結(jié)束;6、 判斷所寫邏輯扇區(qū)是否在BLOCK緩沖內(nèi),如果不是,轉(zhuǎn)到步驟8;7、 將數(shù)據(jù)寫入BLOCK緩沖中,并標記此扇區(qū)已經(jīng)被更新;8、 判斷數(shù)據(jù)緩沖是否已滿,即數(shù)據(jù)緩沖區(qū)能容納新的數(shù)據(jù)塊,如果沒 滿還能夠繼續(xù)容納,則轉(zhuǎn)到步驟17;9、 確定要寫回的區(qū)塊,原則上優(yōu)先選擇扇區(qū)被更新最多的區(qū)塊;10、 判斷此被寫回的區(qū)塊的全部扇區(qū)是否都被更新,如果是,轉(zhuǎn)到步驟15;11、 判斷此區(qū)塊所對應(yīng)的FAT表備份中的數(shù)據(jù)是否為空,如果是,轉(zhuǎn)到步驟13;12、 判斷此區(qū)塊所對應(yīng)的空FAT表寫記錄是否為1,如果是,轉(zhuǎn)到步 驟14,如果不是,轉(zhuǎn)到步驟15;13、 判斷此區(qū)塊所對應(yīng)的空FAT表寫記錄是否為2,如過不是,轉(zhuǎn)到 步驟15;14、 讀取物理介質(zhì)上此區(qū)塊未更新頁中的數(shù)據(jù)到此區(qū)塊緩沖;15、 將此區(qū)塊的數(shù)據(jù)寫入到物理介質(zhì),并將此緩沖設(shè)為空;16、 將此區(qū)塊對應(yīng)的空FAT表寫記錄的相應(yīng)位置置為2;17、 將擬寫入扇區(qū)數(shù)據(jù)寫入空的BLOCK緩沖內(nèi)。圖4是本發(fā)明的系統(tǒng)結(jié)束操作的流程圖。如圖所示,在系統(tǒng)完成讀寫 文件后,還需進行如下收尾工作1、 讀取物理介質(zhì)上全部BLOCK緩沖未更新扇區(qū)中的數(shù)據(jù)到BLOCK緩 沖中;2、 將全部BLOCK緩沖中的數(shù)據(jù)寫入到物理介質(zhì)3、 將FAT表緩沖中的數(shù)據(jù)寫入物理介質(zhì)應(yīng)當(dāng)說明的是,以上描述旨在說明本發(fā)明的具體實施方案,不能理解 為對本發(fā)明的限制,本發(fā)明所要求保護的范圍僅由權(quán)利要求書進行限制。
      權(quán)利要求
      1.一種寫NAND型FLASH的方法,其中系統(tǒng)執(zhí)行寫操作之前,在內(nèi)存中分別開辟存儲將邏輯扇區(qū)轉(zhuǎn)換為物理扇區(qū)的索引表、FAT表備份、空FAT表寫記錄和以數(shù)據(jù)塊為單位的數(shù)據(jù)緩沖區(qū),所述數(shù)據(jù)塊包括多個扇區(qū),用FAT表備份區(qū)備份系統(tǒng)FAT表區(qū),用空FAT寫記錄區(qū)記載每個FLASH數(shù)據(jù)塊的數(shù)據(jù)寫入情況;所述方法包括下列步驟將擬寫入FLASH數(shù)據(jù)塊的數(shù)據(jù),按扇區(qū)寫入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊中;當(dāng)需要將數(shù)據(jù)緩沖區(qū)某個數(shù)據(jù)塊的數(shù)據(jù)寫入FLASH數(shù)據(jù)塊時,判斷所述數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊對應(yīng)的FAT表備份中的數(shù)據(jù)是否為空;若判斷結(jié)果為空,且所述空FAT表記錄指示相應(yīng)數(shù)據(jù)未被寫過,以及相應(yīng)FAT表未被更新過時,直接將數(shù)據(jù)緩沖區(qū)的所述數(shù)據(jù)塊依據(jù)邏輯扇區(qū)到物理扇區(qū)的索引表寫入到FLASH數(shù)據(jù)塊。
      2. 根據(jù)權(quán)利要求l所述的寫NAND型FLASH方法,其特征在于,需要 將數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊的數(shù)據(jù)寫入FLASH數(shù)據(jù)塊是指數(shù)據(jù)緩沖區(qū)無法容納 新的數(shù)據(jù)塊。
      3. 根據(jù)權(quán)利要求2所述的寫NAND型FLASH方法,其特征在于,包括 在判斷數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊的全部扇區(qū)都被寫入的情況下,直接將數(shù)據(jù)緩沖 區(qū)該數(shù)據(jù)塊的數(shù)據(jù)按塊寫入到FLASH數(shù)據(jù)塊的步驟。
      4. 根據(jù)權(quán)利要求l所述的寫NAND型FLASH方法,其特征在于,包括在判斷所寫邏輯扇區(qū)不在數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊中且數(shù)據(jù)緩沖區(qū)未滿的情 況下,將數(shù)據(jù)寫入空的數(shù)據(jù)緩沖區(qū)中的步驟。
      5. 根據(jù)權(quán)利要求l所述的寫NAND型FLASH方法,其特征在于,包括 當(dāng)所述需寫入FLASH的數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊所對應(yīng)的FAT表備份中的數(shù)據(jù)不 為空時,或其雖為空,但所述空FAT表記錄指示相應(yīng)數(shù)據(jù)塊數(shù)據(jù)被寫過或 相應(yīng)FAT表被更新過時,讀取FLASH上此數(shù)據(jù)塊未更新扇區(qū)中的數(shù)據(jù)到所述數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊;然后,將此數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊的數(shù)據(jù)按塊寫入到 FLASHo
      6. 根據(jù)權(quán)利要求1所述的寫NAND型FLASH方法,其特征在于,包括 當(dāng)更新FAT表時,在所述空FAT表寫記錄區(qū)中記載當(dāng)前更新FAT表操作。
      7. 根據(jù)權(quán)利要求1所述的寫NAND型FLASH方法,其特征在于,包括 判斷數(shù)據(jù)所屬扇區(qū)是否在所述數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊內(nèi),并且在判斷結(jié)果為 是的情況下將數(shù)據(jù)寫入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊內(nèi)。
      全文摘要
      本發(fā)明披露了一種寫NAND型FLASH的方法,系統(tǒng)在內(nèi)存中分別開辟空間存儲邏輯扇區(qū)轉(zhuǎn)換為物理扇區(qū)的索引表、FAT表備份、空FAT表寫記錄和以數(shù)據(jù)塊為單位的FLASH數(shù)據(jù),所述方法包括下列步驟將擬寫入FLASH數(shù)據(jù)塊的數(shù)據(jù),按扇區(qū)寫入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊中;當(dāng)需要將數(shù)據(jù)緩沖區(qū)某個數(shù)據(jù)塊的數(shù)據(jù)寫入FLASH數(shù)據(jù)塊時,判斷所述數(shù)據(jù)緩沖區(qū)數(shù)據(jù)塊對應(yīng)的FAT表備份中的數(shù)據(jù)是否為空;若判斷結(jié)果為空,且空FAT表記錄指示相應(yīng)數(shù)據(jù)未被寫過及相應(yīng)FAT表未被更新過時,直接將數(shù)據(jù)緩沖區(qū)的所述數(shù)據(jù)塊寫入到FLASH數(shù)據(jù)塊。本發(fā)明采用空間換時間的方式,提高了對NAND型FLASH寫操作的速度。
      文檔編號G06F17/30GK101324899SQ20081011782
      公開日2008年12月17日 申請日期2008年8月5日 優(yōu)先權(quán)日2008年8月5日
      發(fā)明者巖 史 申請人:北京海爾集成電路設(shè)計有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1