專利名稱:閃存的高效率靜態(tài)平均抹除方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種閃存的高效率靜態(tài)平均抹除方法。
技術(shù)背景以目前現(xiàn)有閃存資料存取管理技術(shù)而言, 一個閃存區(qū)塊抹除約十萬 次后,存放其上的資料即有可能無法正確被讀出。當(dāng)一個閃存區(qū)塊因為 抹除次數(shù)過多,而造成無法正確讀出資料時,即稱此區(qū)塊被寫穿。由于 閃存有這樣的壽命限制,因此如何盡量延后閃存區(qū)塊被寫穿,以延長整 個閃存芯片的使用壽命,便成為一個重要的課題。目前常見的解決方法為使用平均抹除機制(Wear Leveling Scheme),以將資料平均寫到閃存芯 片的各個區(qū)塊內(nèi),使每個區(qū)塊的平均抹除次數(shù)盡可能一樣?,F(xiàn)有平均抹除機制又可細分為動態(tài)平均抹除機制(Dynamic Wear Leveling Scheme)及靜態(tài)平均抹除機制(Static Wear Leveling Scheme), 動態(tài)平均抹除機制是將更新或新寫入的資料寫到一個閑置區(qū)塊(free block),而系統(tǒng)的閑置區(qū)塊來自抹除存有過期資料的區(qū)i央,此機制的缺點為資料常被更新的區(qū)塊會經(jīng)常被抹除,而資料鮮少被更新的區(qū)塊很少被抹 除,因此整個閃存塊被抹除的次數(shù)不平均,而此機制的優(yōu)點為簡單、成 本低且可達到一定程度上的區(qū)塊平均抹除。另外,靜態(tài)平均抹除機制是記錄閃存內(nèi)每個區(qū)塊的抹除次數(shù),每當(dāng) 系統(tǒng)需要額外的閑置區(qū)塊時,就會將抹除次數(shù)最少的區(qū)塊抹除,此機制 的缺點為需要很高的管理成本,如額外的資料搬移及儲存每個區(qū)塊被抹 除次數(shù)的內(nèi)存空間,優(yōu)點是可達成真正的區(qū)塊平均抹除。 發(fā)明內(nèi)容本發(fā)明所要解決的主要技術(shù)問題在于,克服現(xiàn)有技術(shù)存在的上述缺 陷,而提供一種閃存的高效率靜態(tài)平均抹除方法,在較低的系統(tǒng)管理成本狀態(tài)下,達到真正區(qū)塊平均抹除效果,僅需在現(xiàn)有閃存的閃存轉(zhuǎn)換層 或是原生檔案系統(tǒng)中的區(qū)塊回收單元上加入至少一個具有較高的移植性 及通用性的高效率靜態(tài)抹除單元。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種閃存的高效率靜態(tài)平均抹除方法,其特征在于,是由一高效率 靜態(tài)平均抹除單元連接于一閃存轉(zhuǎn)換層、原生檔案系統(tǒng)中的區(qū)塊抹除單 元,該區(qū)塊抹除單元連接閃存以進行閃存內(nèi)的實體區(qū)塊抹除動作,其步 驟包含A. 開始;B. 根據(jù)閃存的實體區(qū)塊定義一區(qū)塊抹除記錄表,即根據(jù)閃存的實體 區(qū)塊抹除次數(shù)定義一區(qū)塊抹除記錄表,該區(qū)塊抹除記錄表用來記 錄實體區(qū)塊抹除次數(shù);C. 命令隊列中是否有來自上層的存取命令,如果有則進行步驟K, 如果沒有則進行步驟D,即該高效率靜態(tài)抹除單元會在閃存轉(zhuǎn)換 層、原生檔案系統(tǒng)上層系統(tǒng),沒有發(fā)出命令來存取閃存一段時間 之后激活;D. 檢査工區(qū)塊抹除的分布情況是否過度集中而高過設(shè)定的門檻值, 如果有則進行步驟E,如果沒有則進行步驟K;E. 要求區(qū)塊抹除單元強制抹除一個很久沒被抹除的區(qū)塊,將此區(qū)塊 相對應(yīng)的字段值加1,即區(qū)塊抹除記錄表的字段值為0所對應(yīng)實 體區(qū)塊,由閃存轉(zhuǎn)換層或是原生檔案系統(tǒng)內(nèi)的區(qū)塊抹除單元強制 抹除,并進行區(qū)塊記錄表的維護作業(yè);F. 區(qū)塊抹除單元在開始進行抹除區(qū)塊前,必須通知內(nèi)存管理單元在 此其間不可存取閃存,并開始搬移將被抹除區(qū)塊內(nèi)的有效資料, 接著進行抹除該區(qū)塊,該閃存轉(zhuǎn)換層、原生檔案系統(tǒng)的區(qū)塊抹除 單元進行閃存的實體區(qū)塊抹除前,需由該閃存轉(zhuǎn)換層、原生檔案 系統(tǒng)的一內(nèi)存管理單元予以停止存取閃存的資料存取動作,并開 始搬動被抹除的實體區(qū)塊的數(shù)據(jù),再進行抹除;G. 區(qū)塊抹除單元在完成有效的資料搬移及區(qū)塊抹除后,通知內(nèi)存管理單元有效資料被搬移后的新地址,以利內(nèi)存管理單元更新資料 邏輯地址與實體地址的對應(yīng)關(guān)系,即當(dāng)區(qū)塊抹除單元完成對閃存 的實體區(qū)塊數(shù)據(jù)搬移及抹除后,將數(shù)據(jù)搬移后新的實體區(qū)塊的新 地址通知該內(nèi)存管理單元,而更新地址與實體區(qū)塊的地址對應(yīng)關(guān)系;H. 區(qū)塊抹除單元回報區(qū)塊已抹除完畢,即區(qū)塊抹除單元回報給步驟 G的內(nèi)存管理單元確實抹除完畢的訊息;I. 是否已經(jīng)掃描過整個區(qū)塊抹除記錄表的所有字段,如果是則進行 步驟J,如果不是則回復(fù)進行步驟C,即判斷該區(qū)塊抹除記錄表 中的字段值是否皆為非O的值;J.進行區(qū)塊抹除記錄表的衰退作業(yè),對該區(qū)塊抹除記錄表進行衰退 作業(yè)并返回步驟C;K.結(jié)束。前述的閃存的高效率靜態(tài)平均抹除方法,其中步驟B的區(qū)塊抹除記錄表的字段為一多位字段。前述的閃存的高效率靜態(tài)平均抹除方法,其中步驟B的區(qū)塊抹除記錄表的字段為一單一位字段。前述的閃存的高效率靜態(tài)平均抹除方法,其中步驟E的區(qū)塊抹除記 錄表的維護作業(yè),其步驟包含 El.開始;E2.區(qū)塊回收單元通知高效率靜態(tài)平均抹除單元其欲抹除的區(qū)塊,即 由該閃存轉(zhuǎn)換層、原生檔案系統(tǒng)的區(qū)塊抹除單元通知該高效率靜 態(tài)抹除單元針對閃存內(nèi)欲抹除實體區(qū)塊進行抹除;E3.在區(qū)塊抹除記錄表中對應(yīng)至該區(qū)塊的字段值是否已到達最高值, 如果是則進行步驟E5,如果不是則進行步驟E4,即去掃描該區(qū) 塊抹除記錄表的字段值之位是否全為1;E4.該區(qū)塊抹除記錄表的字段值加1,即針對閃存中被抹除的實體區(qū) 塊所對應(yīng)的區(qū)塊抹除記錄表的字段值加1,即顯示該實體區(qū)塊的 實際抹除次數(shù)狀態(tài);E5.結(jié)束。前述的閃存的高效率靜態(tài)平均抹除方法,其中步驟J的區(qū)塊抹除記 錄表的衰退作業(yè),其步驟包含-Jl.開始;J2.是否區(qū)塊抹除記錄表內(nèi)的所有字段都為非0值,如果是則進行步 驟J3,如果不是則進行步驟J4,即利用一計數(shù)器記錄已被掃描過 的字段個數(shù)來判斷是否整個表格已被整個掃描過一次;J3將所有字段的值都減去表中目前最小的字段值,使最小的字段值 為0,即將該區(qū)塊抹除記錄表的字段的值皆減去區(qū)塊抹除記錄表 中最小字段的值,使該原先區(qū)塊抹除記錄表中最小字段的值為0;J4.結(jié)束。本發(fā)明的有益效果是,本發(fā)明具有低成本、高移植性及真正區(qū)塊平 均抹除的效果。
下面結(jié)合附圖和實施例對本發(fā)明進一步說明。 圖1是本發(fā)明方法的閃存地址轉(zhuǎn)換層的快取方法的系統(tǒng)結(jié)構(gòu)圖 圖2是本本發(fā)明方法閃存地址轉(zhuǎn)換層的快取方法的流程圖 圖3是本發(fā)明方法中的區(qū)塊抹除記錄表結(jié)構(gòu)的第一實施例圖 圖4是本發(fā)明方法中的區(qū)塊抹除記錄表結(jié)構(gòu)的第二實施例圖 圖5是本發(fā)明方法中的區(qū)塊抹除記錄表維護作業(yè)的詳細流程圖 圖6是本發(fā)明方法中的區(qū)塊抹除記錄表衰退作業(yè)的詳細流程圖 圖中標(biāo)號說明-100高效率靜態(tài)平均抹除單元11內(nèi)存管理單元20檔案系統(tǒng)31內(nèi)存管理單元40虛擬檔案系統(tǒng)60閃存62及62'區(qū)塊抹除記錄10閃存轉(zhuǎn)換層 12區(qū)塊回收單元 30原生檔案系統(tǒng) 32區(qū)塊回收單元 50內(nèi)存技術(shù)裝置 61實體區(qū)塊 621及621'字段200開始205根據(jù)閃存的實體區(qū)塊定義一區(qū)塊抹除記錄表 210命令隊列中是否有來自上層的存取命令 220檢查區(qū)塊抹除的分布情況是否過度集中而高過設(shè)定的門檻值 230要求區(qū)塊抹除單元強制抹除一個很久沒被抹除的區(qū)塊,將此區(qū)塊 相對應(yīng)的字段值加1 231開始232區(qū)塊回收單元通知高效率靜態(tài)平均抹除單元其欲抹除的區(qū)塊 233在區(qū)塊抹除記錄表中對應(yīng)至該區(qū)塊的字段值是否已到達最高值 234該區(qū)塊抹除記錄表的字段值加1 235結(jié)束240區(qū)塊抹除單元在開始進行抹除區(qū)塊前,必須通知內(nèi)存管理單元在 此其間不可存取閃存,并開始搬移將被抹除區(qū)塊內(nèi)的有效資料,接著進行抹除該區(qū)塊250區(qū)塊抹除單元在完成有效的資料搬移及區(qū)塊抹除后,通知內(nèi)存管 理單元有效資料被搬移后的新地址,以利內(nèi)存管理單元更新資料邏輯地 址與實體地址的對應(yīng)關(guān)系260區(qū)塊抹除單元回報區(qū)塊己抹除完畢270是否已經(jīng)掃描過整個區(qū)塊抹除記錄表的所有字段280進行區(qū)塊抹除記錄表的衰退作業(yè)281開始282是否區(qū)塊抹除記錄表內(nèi)的所有字段都為非0值283將所有字段的值都減去表中目前最小的字段值,使最小的字段值為0284結(jié)束 290結(jié)束具體實施方式
首先請參閱圖1所示,為本發(fā)明的閃存的高效率靜態(tài)平均抹除方法 的系統(tǒng)結(jié)構(gòu)圖,其中,,現(xiàn)有的系統(tǒng)通過閃存轉(zhuǎn)換層10(flash Translation Layer, FTL)來與現(xiàn)有的檔案系統(tǒng)20,如FAT、 EXT2檔案系統(tǒng)溝通,或是通過一原生檔案系統(tǒng)(Native File System) 30,如JFFS2及YAFFS2系 統(tǒng),而直接與上層的虛擬檔案系統(tǒng)40溝通;往下則通過一內(nèi)存技術(shù)裝置 (Memory Technology Device, MTD) 50來對一閃存60進行存取。該閃存轉(zhuǎn)換層10內(nèi)設(shè)有一內(nèi)存管理單元11及區(qū)塊回收單元12,該 原生檔案系統(tǒng)30內(nèi)設(shè)有一內(nèi)存管理單元31及區(qū)塊回收單元32,以借由 該內(nèi)存管理單元11及31向上連接上層虛擬檔案系統(tǒng)40,且該內(nèi)存管理 單元11及31向下分別連接區(qū)塊回收單元12及32,以管理及執(zhí)行該閃存 60的區(qū)塊抹除工作。無論使用閃存轉(zhuǎn)換層10或是原生檔案系統(tǒng)管理單元,在本發(fā)明方法 中是在閃存轉(zhuǎn)換層10的區(qū)塊回收單元11或原生檔案系統(tǒng)管理單元的區(qū) 塊回收單元21上加上一高效率靜態(tài)平均抹除單元100來達到區(qū)塊平均抹 除的目的,具有極高的可移植性,該高效率靜態(tài)平均抹除單元100可以 是一個硬件電路或以軟件程序來構(gòu)成。請再配合圖2至圖4所示,圖2為本發(fā)明的閃存的高效率靜態(tài)平均 抹除方法的流程圖,即圖1中所示的高效率靜態(tài)平均抹除單元100的詳 細操作流程,包含步驟200 步驟290,其中(200)開始;(205)根據(jù)閃存的實體區(qū)塊定義一區(qū)塊抹除記錄表,即根據(jù)閃存60 的實體區(qū)塊61抹除次數(shù)定義一區(qū)塊抹除記錄表62或62,,如圖3 或圖4所示,其中,圖3所示的區(qū)塊抹除記錄表62為一個實體 區(qū)塊61對應(yīng)到一個具有4位的字段621的一對多模式,其中該 第一個實體區(qū)塊61已經(jīng)抹除了6次,而第三個實體區(qū)塊61已被 抹除一次(如圖3中箭頭所示);而圖4顯示的區(qū)塊抹除記錄表 62'為多對一的模式,即多個實體區(qū)塊61對應(yīng)到一個1位的字段 621,,其中第三個實體區(qū)塊61已經(jīng)被抹除過,但是從區(qū)塊抹除記 錄表62'中所得到的信息只能知道第二個實體區(qū)塊61與第三個實 體區(qū)塊61至少有一個實體區(qū)塊61被抹除過,雖然此模式的精確 度比較差,但是因為只有當(dāng)對應(yīng)到同一個字段621,的兩個實體區(qū) 塊61都沒有被抹除過才有可能會被強制搬移資料并進行抹除;若是兩個對應(yīng)到同一個字段621'的實體區(qū)塊61只有其中一個有 被抹除過的話,則表示常被更新的數(shù)據(jù)會被寫到其它實體區(qū)塊61 去,而最后當(dāng)不常被更新的數(shù)據(jù)寫到此實體區(qū)塊61的話,則此 字段621'所對應(yīng)的兩個實體區(qū)塊61塊都是不常被更新的資料, 最終會一起被強迫搬移,該區(qū)塊抹除記錄表62或62'存在于高效 率靜態(tài)平均抹除單元100內(nèi)或閃存60中。(210)命令隊列中是否有來自上層的存取命令?如果有則進行步驟 290,如果沒有則進行步驟220,即該高效率靜態(tài)抹除單元會在上 層系統(tǒng),例如原生檔案系統(tǒng)30架構(gòu)下的虛擬檔案系統(tǒng)40沒有發(fā) 出命令來存取閃存60 —段時間之后激活;(220)檢查區(qū)塊抹除的分布情況是否過度集中而高過設(shè)定的門檻 值?如果有則進行步驟230,如果沒有則進行步驟290。(230)要求區(qū)塊抹除單元強制抹除一個很久沒被抹除的區(qū)塊,將此 區(qū)塊相對應(yīng)的字段值加1 ,即區(qū)塊抹除記錄表62或62'的字段621 或621'值為0所對應(yīng)實體區(qū)塊61,予以由閃存轉(zhuǎn)換層IO或是原 生檔案系統(tǒng)30的區(qū)塊抹除單元12或32強制抹除,并進行區(qū)塊 記錄表62或62'的維護作業(yè)。(240)區(qū)塊抹除單元在開始進行抹除區(qū)塊前,必須通知內(nèi)存管理單 元在此其間不可存取閃存,并開始搬移將被抹除區(qū)塊內(nèi)的有效資 料,接著進行抹除該區(qū)塊,該閃存轉(zhuǎn)換層10或是原生檔案系統(tǒng) 30的區(qū)塊抹除單元12或32進行閃存的實體區(qū)塊61抹除前,需 由該內(nèi)存管理單元11或31予以停止存取閃存60的資料存取動 作,并開始搬動被抹除的實體區(qū)塊61的數(shù)據(jù),再進行抹除。(250)區(qū)塊抹除單元在完成有效的資料搬移及區(qū)塊抹除后,通知內(nèi) 存管理單元有效資料被搬移后的新地址,以利內(nèi)存管理單元更新資料邏輯地址與實體地址的對應(yīng)關(guān)系,即當(dāng)區(qū)塊抹除單元12或 32完成對閃存60的實體區(qū)塊61數(shù)據(jù)搬移及抹除后,將數(shù)據(jù)搬移 后新的實體區(qū)塊61的新地址通知該內(nèi)存管理單元11或31,而更 新地址與實體區(qū)塊61的地址對應(yīng)關(guān)系。(260)區(qū)塊抹除單元回報區(qū)塊已抹除完畢,即區(qū)塊抹除單元12或 32回報給內(nèi)存管理單元11或31確實抹除完畢的訊息。(270)是否已經(jīng)掃描過整個區(qū)塊抹除記錄表的所有字段?如果是 則進行步驟280,即判斷該區(qū)塊抹除記錄表62或62'中的字段621 或621'值是否皆為非0的值,如果不是則回復(fù)進行步驟210。(280)進行區(qū)塊抹除記錄表的衰退作業(yè),對該區(qū)塊抹除記錄表62或 62'進行衰退作業(yè)并返回步驟210。(290) 結(jié)束。請再配合圖5所示,為本發(fā)明方法中的區(qū)塊抹除記錄表的維護作業(yè) 詳細流程圖,即圖2中的步驟230中的區(qū)塊抹除記錄表維護作業(yè)流程, 包含步驟231 235,其中(231) 開始;(232) 區(qū)塊回收單元通知高效率靜態(tài)平均抹除單元其欲抹除的區(qū) 塊,即由該閃存10或10或是原生檔案系統(tǒng)30的區(qū)塊抹除單元 12或32通知該高效率靜態(tài)抹除單元100針對閃存60內(nèi)欲抹除實 體區(qū)塊61進行抹除。(233) 在區(qū)塊抹除記錄表中對應(yīng)至該區(qū)塊的字段值是否已到達最高 值?如果是則進行步驟235,如果不是則進行步驟234,即去掃 描該區(qū)塊抹除記錄表62或62'中的字段621或621'值之位是否全 為l。(234) 該區(qū)塊抹除記錄表的字段值加1,即針對閃存60中被抹除的 實體區(qū)塊61所對應(yīng)的區(qū)塊抹除記錄表62或62'的字段621或621' 值加l,即顯示該實體區(qū)塊61的實際抹除次數(shù)狀態(tài)。(235) 結(jié)束。請再參閱圖6所示,為本發(fā)明方法中的區(qū)塊抹除記錄表的衰退作業(yè) 流程圖,即圖2中的步驟280中的區(qū)塊抹除記錄表衰退作業(yè)流程,包含 步驟281 284,其中(281) 開始;(282) 是否區(qū)塊抹除記錄表內(nèi)的所有字段都為非O值?如果是則進行步驟283,如果不是則進行步驟284,即將區(qū)塊抹除記錄表62 或62'整個掃描過一次。(283) 將所有字段的值都減去表中目前最小的字段值,使最小的字 段值為0,即將該區(qū)塊抹除記錄表62或62'的字段621或621'的 值皆減去區(qū)塊抹除記錄表62或62'中最小字段621或621'的值, 使該原先區(qū)塊抹除記錄表62或62'中最小字段621或621'的值為 0。(284) 結(jié)束。以上圖1 圖6所示本發(fā)明的方法中,該高效率靜態(tài)平均抹除單元 100的基本概念是利用少量的內(nèi)存來追蹤閃存60內(nèi)的各實體區(qū)塊61抹除 的分布狀況,當(dāng)系統(tǒng)閑置時(接受來自上層的命令隊列中,經(jīng)過一段時 間都沒有接受到任何存取命令),此高效率靜態(tài)平均抹除單元100就會檢 査抹除分布狀況的記錄,找出抹除次數(shù)少于門檻值的實體區(qū)塊61,即存 有資料且未被抹除的時間間隔太久的實體區(qū)塊61,并向區(qū)塊回收單元12 或32提出要求抹除此類的實體區(qū)塊61,如此一來,不常更新的資料有非 常高的可能性被強迫從一個實體區(qū)塊61搬到另一個抹除頻率較高的實體 區(qū)塊61,長期下來,平均的實體區(qū)塊61抹除次數(shù)會非常平均。另外,此高效率靜態(tài)平均抹除單元100僅與區(qū)塊回收單元12或32 溝通,因此只需在閃存轉(zhuǎn)換層10的區(qū)塊回收單元12或原生檔案系統(tǒng)30 的區(qū)塊回收單元32內(nèi)加入與高效率靜態(tài)平均抹除單元100溝通的接口, 不需要修改系統(tǒng)的其它部分,因此,該閃存轉(zhuǎn)換層10的內(nèi)存管理單元11 或原生檔案系統(tǒng)30的存儲管理單元31與閃存轉(zhuǎn)換層10的區(qū)塊回收單元 12或原生檔案系統(tǒng)30的區(qū)塊回收單元32原本的運作機制得以保留。以上所述,僅是本發(fā)明的較佳實施例而己,并非對本發(fā)明作任何形 式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單 修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
權(quán)利要求
1. 一種閃存的高效率靜態(tài)平均抹除方法,其特征在于,是由一高效率靜態(tài)平均抹除單元連接于一閃存轉(zhuǎn)換層、原生檔案系統(tǒng)中的區(qū)塊抹除單元,該區(qū)塊抹除單元連接閃存以進行閃存內(nèi)的實體區(qū)塊抹除動作,其步驟包含A.開始;B.根據(jù)閃存的實體區(qū)塊定義一區(qū)塊抹除記錄表,即根據(jù)閃存的實體區(qū)塊抹除次數(shù)定義一區(qū)塊抹除記錄表,該區(qū)塊抹除記錄表用來記錄實體區(qū)塊抹除次數(shù);C.命令隊列中是否有來自上層的存取命令,如果有則進行步驟K,如果沒有則進行步驟D,即該高效率靜態(tài)抹除單元會在閃存轉(zhuǎn)換層、原生檔案系統(tǒng)上層系統(tǒng),沒有發(fā)出命令來存取閃存一段時間之后激活;D.檢查工區(qū)塊抹除的分布情況是否過度集中而高過設(shè)定的門檻值,如果有則進行步驟E,如果沒有則進行步驟K;E.要求區(qū)塊抹除單元強制抹除一個很久沒被抹除的區(qū)塊,將此區(qū)塊相對應(yīng)的字段值加1,即區(qū)塊抹除記錄表的字段值為0所對應(yīng)實體區(qū)塊,由閃存轉(zhuǎn)換層或是原生檔案系統(tǒng)內(nèi)的區(qū)塊抹除單元強制抹除,并進行區(qū)塊記錄表的維護作業(yè);F.區(qū)塊抹除單元在開始進行抹除區(qū)塊前,必須通知內(nèi)存管理單元在此其間不可存取閃存,并開始搬移將被抹除區(qū)塊內(nèi)的有效資料,接著進行抹除該區(qū)塊,該閃存轉(zhuǎn)換層、原生檔案系統(tǒng)的區(qū)塊抹除單元進行閃存的實體區(qū)塊抹除前,需由該閃存轉(zhuǎn)換層、原生檔案系統(tǒng)的一內(nèi)存管理單元予以停止存取閃存的資料存取動作,并開始搬動被抹除的實體區(qū)塊的數(shù)據(jù),再進行抹除;G.區(qū)塊抹除單元在完成有效的資料搬移及區(qū)塊抹除后,通知內(nèi)存管理單元有效資料被搬移后的新地址,以利內(nèi)存管理單元更新資料邏輯地址與實體地址的對應(yīng)關(guān)系,即當(dāng)區(qū)塊抹除單元完成對閃存的實體區(qū)塊數(shù)據(jù)搬移及抹除后,將數(shù)據(jù)搬移后新的實體區(qū)塊的新地址通知該內(nèi)存管理單元,而更新地址與實體區(qū)塊的地址對應(yīng)關(guān)系;H.區(qū)塊抹除單元回報區(qū)塊已抹除完畢,即區(qū)塊抹除單元回報給步驟G的內(nèi)存管理單元確實抹除完畢的訊息;I.是否已經(jīng)掃描過整個區(qū)塊抹除記錄表的所有字段,如果是則進行步驟J,如果不是則回復(fù)進行步驟C,即判斷該區(qū)塊抹除記錄表中的字段值是否皆為非0的值;J.進行區(qū)塊抹除記錄表的衰退作業(yè),對該區(qū)塊抹除記錄表進行衰退作業(yè)并返回步驟C;K.結(jié)束。
2、 根據(jù)權(quán)利要求1所述的閃存的高效率靜態(tài)平均抹除方法,其特征 在于所述步驟B的區(qū)塊抹除記錄表的字段為一多位字段。
3、 根據(jù)權(quán)利要求1所述的閃存的高效率靜態(tài)平均抹除方法,其特征 在于所述步驟B的區(qū)塊抹除記錄表的字段為一單一位字段。
4、 根據(jù)權(quán)利要求1所述的閃存的高效率靜態(tài)平均抹除方法,其特征 在于所述步驟E的區(qū)塊抹除記錄表的維護作業(yè),其步驟包含El.開始;E2.區(qū)塊回收單元通知高效率靜態(tài)平均抹除單元其欲抹除的區(qū)塊,即 由該閃存轉(zhuǎn)換層、原生檔案系統(tǒng)的區(qū)塊抹除單元通知該高效率靜態(tài)抹除單元針對閃存內(nèi)欲抹除實體區(qū)塊進行抹除; E3.在區(qū)塊抹除記錄表中對應(yīng)至該區(qū)塊的字段值是否已到達最高值,如果是則進行步驟E5,如果不是則進行步驟E4,即去掃描該區(qū)塊抹除記錄表的字段值之位是否全為1; E4.該區(qū)塊抹除記錄表的字段值加1,即針對閃存中被抹除的實體區(qū)塊所對應(yīng)的區(qū)塊抹除記錄表的字段值加1,即顯示該實體區(qū)塊的實際抹除次數(shù)狀態(tài); E5.結(jié)束。
5、 根據(jù)權(quán)利要求1所述的閃存的高效率靜態(tài)平均抹除方法,其特征在于所述步驟J的區(qū)塊抹除記錄表的衰退作業(yè),其步驟包含Jl.開始;J2.是否區(qū)塊抹除記錄表內(nèi)的所有字段都為非0值,如果是則進行步 驟J3,如果不是則進行步驟J4,即利用一計數(shù)器記錄已被掃描過 的字段個數(shù)來判斷是否整個表格已被整個掃描過一次;J3將所有字段的值都減去表中目前最小的字段值,使最小的字段值 為0,即將該區(qū)塊抹除記錄表的字段的值皆減去區(qū)塊抹除記錄表 中最小字段的值,使該原先區(qū)塊抹除記錄表中最小字段的值為0;J4.結(jié)束。
全文摘要
一種閃存的高效率靜態(tài)平均抹除方法,由一高效率靜態(tài)平均抹除單元連接于一閃存轉(zhuǎn)換層、原生檔案系統(tǒng)中的區(qū)塊抹除單元,區(qū)塊抹除單元連接閃存以進行閃存內(nèi)的實體區(qū)塊抹除動作,其步驟包含開始;根據(jù)閃存的實體區(qū)塊定義一區(qū)塊抹除記錄表;命令隊列中是否有來自上層的存取命令;檢查工區(qū)塊抹除的分布情況是否過度集中而高過設(shè)定的門檻值;要求區(qū)塊抹除單元強制抹除一個很久沒被抹除的區(qū)塊;區(qū)塊抹除單元開始進行抹除區(qū)塊前和區(qū)塊抹除單元在完成有效的資料搬移及區(qū)塊抹除后;區(qū)塊抹除單元回報區(qū)塊已抹除完畢;是否已經(jīng)掃描過整個區(qū)塊抹除記錄表的所有字段;進行區(qū)塊抹除記錄表的衰退作業(yè);結(jié)束。本發(fā)明具有低成本、高移植性及真正區(qū)塊平均抹除的效果。
文檔編號G06F12/06GK101256534SQ200710079569
公開日2008年9月3日 申請日期2007年3月1日 優(yōu)先權(quán)日2007年3月1日
發(fā)明者張原豪, 楊政智, 謝仁偉, 郭大維 申請人:創(chuàng)惟科技股份有限公司