專利名稱:非易失性存儲(chǔ)器的平均抹寫方法
技術(shù)領(lǐng)域:
本發(fā)明為一種非易失性存儲(chǔ)器的平均抹寫方法,尤指一種以儲(chǔ)存區(qū)塊(block)的歷史數(shù)值(history number)為主要參數(shù)的非易失性存儲(chǔ)器的平均抹寫方法
背景技術(shù):
目前的存儲(chǔ)器(memory)大致可分為兩類,分別是易失性存儲(chǔ)器 (volatilememory)跟非易失性存儲(chǔ)器(non-volatile memory) 0易失性存儲(chǔ)器以靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)與動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)為代表,其特征為當(dāng)提供易失性存儲(chǔ)器所需的電源被關(guān)閉時(shí),儲(chǔ)存于易失性存儲(chǔ)器內(nèi)的數(shù)據(jù)就會(huì)消失不見。非易失性存儲(chǔ)器以可擦除可編程只讀存儲(chǔ)器(EPROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、閃存(flash memory)為代表,其特征為當(dāng)提供非易失性存儲(chǔ)器所需的電源被關(guān)閉時(shí),儲(chǔ)存于非易失性存儲(chǔ)器內(nèi)的數(shù)據(jù)依然可保存,但其缺點(diǎn)是相對的讀取(read)跟寫入(write)速度會(huì)比靜態(tài)隨機(jī)存取存儲(chǔ)器或動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器慢。請參照圖1,其所繪示為具有非易失性存儲(chǔ)器裝置的主機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。主機(jī)系統(tǒng)100(例如移動(dòng)式儲(chǔ)存裝置)主要包含系統(tǒng)總線(SyStembuS)104、微控制器(micro-processor) 108、隨機(jī)存取存儲(chǔ)器(RAM) 112、輸入輸出電路(input/output circuit) 116與非易失性存儲(chǔ)器裝置120。其中,微控制器108、隨機(jī)存取存儲(chǔ)器112、輸入輸出電路116與非易失性存儲(chǔ)器裝置120間可通過系統(tǒng)總線104作數(shù)據(jù)的傳輸。再者,主機(jī)系統(tǒng)100 (例如移動(dòng)式儲(chǔ)存裝置)可經(jīng)由輸入輸出電路116連接至另一主機(jī)系統(tǒng)(例如計(jì)算機(jī)系統(tǒng))。請參照圖2,其所繪示為非易失性存儲(chǔ)器裝置120的結(jié)構(gòu)示意圖。非易失性存儲(chǔ)器裝置120主要包含非易失性存儲(chǔ)器124與存儲(chǔ)器控制器(memorycontroller) 128。非易失性存儲(chǔ)器124由多個(gè)儲(chǔ)存區(qū)塊(block)所組成(Block-O至Block-Ν),而每一儲(chǔ)存區(qū)塊再由多個(gè)頁面(page)所組成。此外,用以儲(chǔ)存數(shù)據(jù)的每一頁面包含有使用者數(shù)據(jù)(user data) 與冗余數(shù)據(jù)(overhead data,0H),其中使用者數(shù)據(jù)為使用者儲(chǔ)存于非易失性存儲(chǔ)器124內(nèi)的數(shù)據(jù),而冗余數(shù)據(jù)(OH)包含其所對應(yīng)頁面(page)的錯(cuò)誤檢測修正碼(error correction code, ECC)與清除次數(shù)(erase count)等數(shù)據(jù)。在非易失性存儲(chǔ)器的規(guī)格中,數(shù)據(jù)的讀取或?qū)懭胧且皂撁鏋樽钚挝?,而?shù)據(jù)的清除(erase)是以儲(chǔ)存區(qū)塊為最小單位。舉例來說,儲(chǔ)存于儲(chǔ)存區(qū)塊1 (Block-I)的頁面 5(Page-5)數(shù)據(jù)可以被單獨(dú)地寫入或讀取,但是欲清除儲(chǔ)存于儲(chǔ)存區(qū)塊1 (Block-I)的頁面 5(Page-5)的數(shù)據(jù)時(shí),必須將儲(chǔ)存于儲(chǔ)存區(qū)塊1 (Block-I)內(nèi)所有頁面的數(shù)據(jù)同時(shí)一起被清除。再者,非易失性存儲(chǔ)器并不允許對同一頁面作數(shù)據(jù)的直接更新(update),舉例來說,若是欲更新頁面5(Page-5)上的數(shù)據(jù)時(shí),必須將所欲更新的數(shù)據(jù)存入另一原本未儲(chǔ)存有數(shù)據(jù)的頁面,再擇機(jī)將頁面5(Page-5)上的數(shù)據(jù)清除以寫入更新的數(shù)據(jù)。由于非易失性存儲(chǔ)器特殊的存取特性,也造成了非易失性存儲(chǔ)器并不能與現(xiàn)存的文件系統(tǒng)(如FAT16/32、NTFS)直接兼容。為了讓非易失性存儲(chǔ)器可以在原有的文件系統(tǒng)(如FAT16/32、NTFS)下運(yùn)作,必須另加入非易失性存儲(chǔ)器地址轉(zhuǎn)換層表(Flash Translation Layer Table, FTL Table)。非易失性存儲(chǔ)器地址轉(zhuǎn)換層表(FTL Table)的主要功能為邏輯區(qū)塊地址(Logical BlockAddress, LBA)與物理地址(Physical Block Address, PBA)間的轉(zhuǎn)換工作,亦即將主機(jī)(Host)送出的邏輯區(qū)塊地址(LBA),轉(zhuǎn)換成非易失性存儲(chǔ)器的物理地址(PBA)。一般來說,為了提高非易失性存儲(chǔ)器的存取速度,非易失性存儲(chǔ)器地址轉(zhuǎn)換層表大部分儲(chǔ)存于速度較快的隨機(jī)存取存儲(chǔ)器112內(nèi)。如前所述,非易失性存儲(chǔ)器數(shù)據(jù)的清除是以儲(chǔ)存區(qū)塊為最小單位。而由于非易失性存儲(chǔ)器先天物理結(jié)構(gòu)的限制,根據(jù)非易失性存儲(chǔ)器型態(tài)的不同,每一儲(chǔ)存區(qū)塊能被清除的次數(shù)有一定的限制(例如十萬次)。當(dāng)某一儲(chǔ)存區(qū)塊被清除的次數(shù)超過一定的限制時(shí), 會(huì)造成整個(gè)非易失性存儲(chǔ)器效能(performance)的降低、儲(chǔ)存于此儲(chǔ)存區(qū)塊的數(shù)據(jù)容易消失或是甚至無法將數(shù)據(jù)正確地儲(chǔ)存于此儲(chǔ)存區(qū)塊。此時(shí),此儲(chǔ)存區(qū)塊則被視為磨損(worn out),不適于寫入或儲(chǔ)存數(shù)據(jù)。
一般來說,儲(chǔ)存于非易失性存儲(chǔ)器的數(shù)據(jù)依其被更新的頻率,可分為冷數(shù)據(jù)(cold data)與熱數(shù)據(jù)(hot data)。舉例來說,冷數(shù)據(jù)包含有操作系統(tǒng)的程序碼(code)與多媒體數(shù)據(jù)等,此等數(shù)據(jù)幾乎只被讀取而鮮少被更新;熱數(shù)據(jù)包含有記錄文件(log file)等,此等數(shù)據(jù)需要經(jīng)常地被更新。如果冷數(shù)據(jù)只被固定地儲(chǔ)存于某些特定儲(chǔ)存區(qū)塊而熱數(shù)據(jù)也只被固定地儲(chǔ)存于另些特定儲(chǔ)存區(qū)塊,則將造成儲(chǔ)存有熱數(shù)據(jù)的儲(chǔ)存區(qū)塊的磨損是遠(yuǎn)早于儲(chǔ)存有冷數(shù)據(jù)的儲(chǔ)存區(qū)塊。因此,一般采用平均抹寫儲(chǔ)存區(qū)塊(wear leveling)方法,讓非易失性存儲(chǔ)器內(nèi)的每一儲(chǔ)存區(qū)塊盡可能被平均使用,以延長非易失性存儲(chǔ)器的使用壽命。平均抹寫儲(chǔ)存區(qū)塊方法主要采取的作法為存儲(chǔ)器交換(SWAP),亦即將鮮少被更新的冷數(shù)據(jù)移至已被多次清除的儲(chǔ)存區(qū)塊中。由于將冷數(shù)據(jù)移至清除次數(shù)相對較高的儲(chǔ)存區(qū)塊,將導(dǎo)致此清除次數(shù)相對較高的儲(chǔ)存區(qū)塊在隨后被清除的頻率大為降低,這將使得整個(gè)非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊被清除的頻率趨于一致,進(jìn)而達(dá)到延長非易失性存儲(chǔ)器使用壽命的目的。美國專利(US 7,035,967 B2)揭露一種平均抹寫儲(chǔ)存區(qū)塊方法。請參照圖3,其所繪示為美國專利(US 7,035,967 B2)所揭露平均抹寫儲(chǔ)存區(qū)塊初始化的流程圖。此平均抹寫儲(chǔ)存區(qū)塊初始化的主要目的是將非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊分類為映像群組、已清除且具較高清除次數(shù)群組與已清除且具較低清除次數(shù)群組,且計(jì)算出非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的平均清除次數(shù)(average erase count)。首先,接受平均抹寫儲(chǔ)存區(qū)塊初始化的指令(步驟302)。此平均抹寫儲(chǔ)存區(qū)塊初使化的指令可由使用者主動(dòng)實(shí)施,或由該主機(jī)系統(tǒng)于符合某些特定條件下自動(dòng)實(shí)施。隨后,確認(rèn)出非易失性存儲(chǔ)器內(nèi)所有已被清除的儲(chǔ)存區(qū)塊(erasedblock)(步驟 304)。當(dāng)非易失性存儲(chǔ)器內(nèi)所有已被清除的儲(chǔ)存區(qū)塊被確認(rèn)后,可根據(jù)每一頁面的冗余數(shù)據(jù)所儲(chǔ)存的清除次數(shù),從所有已被清除的儲(chǔ)存區(qū)塊中,找出前N個(gè)具有相對較高清除次數(shù)的儲(chǔ)存區(qū)塊,并將此N個(gè)具有較高清除次數(shù)且已被清除的儲(chǔ)存區(qū)塊分類于已清除且具較高清除次數(shù)群組(步驟306)。其中,數(shù)字N的選擇可根據(jù)非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的實(shí)際數(shù)目所決定。再者,將特定儲(chǔ)存區(qū)塊分類至已清除且具較高清除次數(shù)群組可通過更新非易失性存儲(chǔ)器地址轉(zhuǎn)換層表來表示。隨后,從所有已被清除的儲(chǔ)存區(qū)塊中,找出前M個(gè)具有相對較少清除次數(shù)的儲(chǔ)存區(qū)塊,并將此M個(gè)具有較少清除次數(shù)且已被清除的儲(chǔ)存區(qū)塊分類于已清除且具較少清除次數(shù)群組(步驟308)。同理,數(shù)字M的選擇可根據(jù)非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的實(shí)際數(shù)目所決定。再者,將特定儲(chǔ)存區(qū)塊分類至已清除且具較少清除次數(shù)群組可通過更新非易失性存儲(chǔ)器地址轉(zhuǎn)換層表來表示。隨后,將剩下所有尚未被分類的儲(chǔ)存區(qū)塊分類于映像群組(步驟310)。其中映像群組中包含有非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存有數(shù)據(jù)的儲(chǔ)存區(qū)塊以及部分已被清除的儲(chǔ)存區(qū)塊,且此部分已被清除的儲(chǔ)存區(qū)塊的清除次數(shù)是介于已清除且具較高清除次數(shù)群組與已清除且具較低清除次數(shù)群組內(nèi)的儲(chǔ)存區(qū)塊的清除次數(shù)之間。將非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊分類完成后,計(jì)算出非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的平均清除次數(shù)(步驟312)。此步驟可經(jīng)由將非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的清除次數(shù)相加,再除以非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的數(shù)目得出。 在執(zhí)行圖3所示的平均抹寫儲(chǔ)存區(qū)塊初始化的流程后,即可進(jìn)行平均抹寫儲(chǔ)存區(qū)塊方法,亦即根據(jù)平均抹寫儲(chǔ)存區(qū)塊初始化所得的結(jié)果,將原本儲(chǔ)存于某一儲(chǔ)存區(qū)塊的冷數(shù)據(jù),搬移至清除次數(shù)相對較高的另一儲(chǔ)存區(qū)塊中。請參照圖4,其所繪示為美國專利(US 7,035,967 B2)所揭露針對某一儲(chǔ)存有冷數(shù)據(jù)的儲(chǔ)存區(qū)塊的平均抹寫儲(chǔ)存區(qū)塊方法的流程圖。首先,自映像群組中選取一儲(chǔ)存有數(shù)據(jù)的儲(chǔ)存區(qū)塊A(步驟402)。隨后,判斷儲(chǔ)存區(qū)塊A所儲(chǔ)存的數(shù)據(jù)是否為冷數(shù)據(jù)(步驟404)。 儲(chǔ)存區(qū)塊A所儲(chǔ)存的數(shù)據(jù)是否為冷數(shù)據(jù)可由儲(chǔ)存區(qū)塊A的清除次數(shù)與平均清除次數(shù)相比較判斷得知,也就是說,若儲(chǔ)存區(qū)塊A的清除次數(shù)遠(yuǎn)小于平均清除次數(shù),則代表儲(chǔ)存區(qū)塊A鮮少被清除,即可判斷出儲(chǔ)存區(qū)塊A所儲(chǔ)存的數(shù)據(jù)為冷數(shù)據(jù)。反之,若儲(chǔ)存區(qū)塊A的清除次數(shù)非遠(yuǎn)小于平均清除次數(shù),則代表儲(chǔ)存區(qū)塊A并非鮮少被清除,即可判斷出儲(chǔ)存區(qū)塊A所儲(chǔ)存的數(shù)據(jù)并非為冷數(shù)據(jù)。若儲(chǔ)存區(qū)塊A所儲(chǔ)存的數(shù)據(jù)為冷數(shù)據(jù),則自已清除且具較高清除次數(shù)群組中選取一儲(chǔ)存區(qū)塊B (步驟406)。一般來說,儲(chǔ)存區(qū)塊B為自已清除且具較高清除次數(shù)群組中挑選出具最高的清除次數(shù)者。隨后,將儲(chǔ)存區(qū)塊A所儲(chǔ)存的數(shù)據(jù)復(fù)制(copy)至儲(chǔ)存區(qū)塊B (步驟408),亦即,將儲(chǔ)存區(qū)塊A的使用者數(shù)據(jù)復(fù)制至儲(chǔ)存區(qū)塊B。一旦儲(chǔ)存區(qū)塊A 的使用者數(shù)據(jù)被復(fù)制至儲(chǔ)存區(qū)塊B后,儲(chǔ)存區(qū)塊A即可被清除,當(dāng)儲(chǔ)存區(qū)塊A被清除后,儲(chǔ)存區(qū)塊A的清除次數(shù)則被累進(jìn)加一(步驟410)。隨后,自已清除且具較低清除次數(shù)群組中選取一儲(chǔ)存區(qū)塊C,并將儲(chǔ)存區(qū)塊C分類至已清除且具較高清除次數(shù)群組內(nèi)(步驟412)。一般來說,儲(chǔ)存區(qū)塊C為自已清除且具較低清除次數(shù)群組中選取具最高的清除次數(shù)者。將儲(chǔ)存區(qū)塊C分類至已清除且具較高清除次數(shù)群組主要是為了替已清除且具較低清除次數(shù)群組清出空間,使得儲(chǔ)存區(qū)塊A可在隨后的步驟中由映射群組被分類至已清除且具較低清除次數(shù)群組內(nèi)(步驟414)。隨后,由于儲(chǔ)存區(qū)塊B已儲(chǔ)存有數(shù)據(jù),儲(chǔ)存區(qū)塊B將被分類至映像群組(步驟416)。通過圖4所示的平均抹寫儲(chǔ)存區(qū)塊方法的流程,原本儲(chǔ)存有冷數(shù)據(jù)而導(dǎo)致清除次數(shù)相對偏低的儲(chǔ)存區(qū)塊A,由于其所儲(chǔ)存的冷數(shù)據(jù)被復(fù)制至儲(chǔ)存區(qū)塊B,使得儲(chǔ)存區(qū)塊A可被清除而提高其利用率。再者,由于儲(chǔ)存區(qū)塊B的清除次數(shù)相對偏高,通過將冷數(shù)據(jù)搬移至儲(chǔ)存區(qū)塊B后,使得儲(chǔ)存區(qū)塊B的清除次數(shù)在隨后將有效地被控制。再者,將儲(chǔ)存區(qū)塊A由原本的映像群組分類至已清除且具較少清除次數(shù)群組,將儲(chǔ)存區(qū)塊B由原本的已清除且具較高清除次數(shù)群組分類至映像群組,與將儲(chǔ)存區(qū)塊C由原本的已清除且具較少清除次數(shù)群組分類至已清除且具較高清除次數(shù)群組可經(jīng)由更新非易失性存儲(chǔ)器地址轉(zhuǎn)換層表來表示。當(dāng)非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存有冷數(shù)據(jù)的儲(chǔ)存區(qū)塊經(jīng)由圖4所示的平均抹寫儲(chǔ)存區(qū)塊方法處理后,即可達(dá)成非易失性存儲(chǔ)器的平均抹寫儲(chǔ)存區(qū)塊。
發(fā)明內(nèi)容
已知的平均抹寫儲(chǔ) 存區(qū)塊方法是以儲(chǔ)存區(qū)塊的清除次數(shù)作為主要參數(shù),根據(jù)清除次數(shù)來做平均抹寫儲(chǔ)存區(qū)塊方法。本發(fā)明則是提出另一種參數(shù)取代清除次數(shù),作為平均抹寫儲(chǔ)存區(qū)塊方法的主要參數(shù)。本發(fā)明提出一種平均抹寫儲(chǔ)存區(qū)塊方法,應(yīng)用于一具有多個(gè)儲(chǔ)存區(qū)塊的非易失性存儲(chǔ)器,該方法包含有根據(jù)每一儲(chǔ)存區(qū)塊的一歷史數(shù)值與是否儲(chǔ)存有數(shù)據(jù),將該多個(gè)儲(chǔ)存區(qū)塊分類為一第一群組、一第二群組與一第三群組;計(jì)算出該非易失性存儲(chǔ)器的一平均歷史數(shù)值;自該第三群組中選取一儲(chǔ)存有一冷數(shù)據(jù)的一第一儲(chǔ)存區(qū)塊;自該第一群組中選取一第二儲(chǔ)存區(qū)塊;將儲(chǔ)存于該第一儲(chǔ)存區(qū)塊的該冷數(shù)據(jù)復(fù)制至該第二儲(chǔ)存區(qū)塊,且根據(jù)將該冷數(shù)據(jù)寫入至該第二儲(chǔ)存區(qū)塊的一絕對時(shí)間,對該第二儲(chǔ)存區(qū)塊的該歷史數(shù)值作更新; 清除該第一儲(chǔ)存區(qū)塊;自該第二群組中選取一第三儲(chǔ)存區(qū)塊,并將該第三儲(chǔ)存區(qū)塊分類至該第一群組;將該第一儲(chǔ)存區(qū)塊由該第三群組分類至該第二群組;以及將該第二儲(chǔ)存區(qū)塊由該第一群組分類至該第三群組。在本發(fā)明的平均抹寫儲(chǔ)存區(qū)塊方法中,該歷史數(shù)值為其儲(chǔ)存區(qū)塊所儲(chǔ)存數(shù)據(jù)的絕對時(shí)間,該第一群組由該非易失性存儲(chǔ)器所有該些儲(chǔ)存區(qū)塊中具有相對較高的該歷史數(shù)值且無儲(chǔ)存有數(shù)據(jù)的N個(gè)儲(chǔ)存區(qū)塊所組成;該第二群組由該非易失性存儲(chǔ)器所有該些儲(chǔ)存區(qū)塊中具有相對較低的該歷史數(shù)值且無儲(chǔ)存有數(shù)據(jù)的M個(gè)儲(chǔ)存區(qū)塊所組成;該第三群組由該非易失性存儲(chǔ)器所有該些儲(chǔ)存區(qū)塊中去除分類于該第一群組與該第二群組的多個(gè)儲(chǔ)存區(qū)塊所組成。當(dāng)非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存有冷數(shù)據(jù)的儲(chǔ)存區(qū)塊經(jīng)由本發(fā)明的平均抹寫儲(chǔ)存區(qū)塊方法處理后,即可達(dá)成非易失性存儲(chǔ)器的平均抹寫儲(chǔ)存區(qū)塊。
本發(fā)明得通過下列圖式及說明,俾得一更深入的了解圖1所繪示為具有非易失性存儲(chǔ)器裝置的主機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。圖2所繪示為非易失性存儲(chǔ)器裝置的結(jié)構(gòu)示意圖。圖3所繪示為美國專利(US 7,035,967 B2)所揭露平均抹寫儲(chǔ)存區(qū)塊初始化的流程圖。圖4所繪示為美國專利(US 7,035,967 B2)所揭露平均抹寫儲(chǔ)存區(qū)塊方法的流程圖。圖5所繪示為本發(fā)明的平均抹寫儲(chǔ)存區(qū)塊初始化的流程圖。圖6所繪示為本發(fā)明的平均抹寫儲(chǔ)存區(qū)塊方法的流程圖。本發(fā)明圖式中所包含的各元件列式如下主機(jī)系統(tǒng)100系統(tǒng)總線104微控制器108隨機(jī)存取存儲(chǔ)器112
輸入輸出電路116非易失性存儲(chǔ)器裝置120 非易失性存儲(chǔ)器124存儲(chǔ)器控制器128
具體實(shí)施例方式已知的平均抹寫儲(chǔ)存區(qū)塊方法是以儲(chǔ)存區(qū)塊的清除次數(shù)作為主要參數(shù),根據(jù)清除次數(shù)來做平均抹寫儲(chǔ)存區(qū)塊方法。本發(fā)明則是以儲(chǔ)存區(qū)塊的歷史數(shù)值取代清除次數(shù),作為平均抹寫儲(chǔ)存區(qū)塊方法的主要參數(shù)?!阍诰哂蟹且资源鎯?chǔ)器裝置的主機(jī)系統(tǒng)中,另有一參數(shù)用以記錄每一儲(chǔ)存區(qū)塊最近一次寫入數(shù)據(jù)的絕對時(shí)間,而此絕對時(shí)間是從主機(jī)系統(tǒng)于第一次通電啟動(dòng)后開始計(jì)算,且以每兩分鐘作累加。舉例來說,某一儲(chǔ)存區(qū)塊于其主機(jī)系統(tǒng)第一次通電啟動(dòng)后的第一絕對時(shí)間被第一次寫入數(shù)據(jù),則主機(jī)系統(tǒng)會(huì)將此第一絕對時(shí)間記錄下來,并將此儲(chǔ)存區(qū)塊的歷史數(shù)值定義為此第一絕對時(shí)間。當(dāng)此儲(chǔ)存區(qū)塊于其主機(jī)系統(tǒng)第一次通電啟動(dòng)后的第二絕對時(shí)間再次被寫入數(shù)據(jù),則主機(jī)系統(tǒng)會(huì)將此第二絕對時(shí)間記錄下來,并將此儲(chǔ)存區(qū)塊的歷史數(shù)值更新為第二絕對時(shí)間。顯而易見地,當(dāng)某一儲(chǔ)存區(qū)塊的歷史數(shù)值遠(yuǎn)低于所有儲(chǔ)存區(qū)塊的平均歷史數(shù)值 (average history number)時(shí),則此儲(chǔ)存區(qū)塊最近一次被寫入數(shù)據(jù)的時(shí)間則距離現(xiàn)在時(shí)間相對久遠(yuǎn),亦即儲(chǔ)存于此儲(chǔ)存區(qū)塊的數(shù)據(jù)在距離現(xiàn)在相對久遠(yuǎn)的時(shí)間內(nèi)未被更新,則儲(chǔ)存于此儲(chǔ)存區(qū)塊的數(shù)據(jù)可視為一冷數(shù)據(jù)。反之,當(dāng)某一儲(chǔ)存區(qū)塊的歷史數(shù)值遠(yuǎn)高于所有儲(chǔ)存區(qū)塊的平均歷史數(shù)值時(shí),則此儲(chǔ)存區(qū)塊最近一次被寫入數(shù)據(jù)的時(shí)間則距離現(xiàn)在時(shí)間相對接近,亦即儲(chǔ)存于此儲(chǔ)存區(qū)塊的數(shù)據(jù)在距離現(xiàn)在相對接近的時(shí)間內(nèi)被更新過,則儲(chǔ)存于此儲(chǔ)存區(qū)塊的數(shù)據(jù)可視為一熱數(shù)據(jù)。本發(fā)明的平均抹寫儲(chǔ)存區(qū)塊方法即以此特征,將冷數(shù)據(jù)搬移至具相對較大歷史數(shù)值的儲(chǔ)存區(qū)塊內(nèi),以平均使用非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊,進(jìn)而延長非易失性存儲(chǔ)器的使用壽命。請參照圖5,其所繪示為本發(fā)明的平均抹寫儲(chǔ)存區(qū)塊初始化的流程圖。此平均抹寫儲(chǔ)存區(qū)塊初始化主要是將非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊分類為映像群組、已清除且具較高歷史數(shù)值群組與已清除且具較低歷史數(shù)值群組,且計(jì)算出非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的平均歷史數(shù)值。首先,接受平均抹寫儲(chǔ)存區(qū)塊初始化的指令(步驟502)。此平均抹寫儲(chǔ)存區(qū)塊初使化的指令可由使用者主動(dòng)實(shí)施,或由儲(chǔ)存區(qū)塊所屬的主機(jī)系統(tǒng)于符合某些特定條件下自動(dòng)實(shí)施。隨后,確認(rèn)出非易失性存儲(chǔ)器內(nèi)所有已被清除的儲(chǔ)存區(qū)塊(步驟504)。當(dāng)非易失性存儲(chǔ)器內(nèi)所有已被清除的儲(chǔ)存區(qū)塊被確認(rèn)后,將所記錄下的每一儲(chǔ)存區(qū)塊的歷史數(shù)值與一較高的預(yù)設(shè)歷史數(shù)值相比,從所有已被清除的儲(chǔ)存區(qū)塊中找出前N個(gè)具有相對較高歷史數(shù)值的儲(chǔ)存區(qū)塊,并將此N個(gè)具有較高歷史數(shù)值且已被清除的儲(chǔ)存區(qū)塊分類于已清除且具較高歷史數(shù)值群組(步驟506)。其中,數(shù)字N的選擇可根據(jù)非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的實(shí)際數(shù)目所決定。再者,將特定儲(chǔ)存區(qū)塊分類至已清除且具較高歷史數(shù)值群組可通過更新非易失性存儲(chǔ)器地址轉(zhuǎn)換層表來表示。隨后,將每一儲(chǔ)存區(qū)塊的歷史數(shù)值與一較低的預(yù)設(shè)歷史數(shù)值相比,從所有已被清除的儲(chǔ)存區(qū)塊中找出前M個(gè)具有相對較少歷史數(shù)值的儲(chǔ)存區(qū)塊,并將此M個(gè)具有較少歷史數(shù)值且已被清除的儲(chǔ)存區(qū)塊分類于已清除且具較少歷史數(shù)值群組(步驟508)。同理,數(shù)字 M的選擇可根據(jù)非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的實(shí)際數(shù)目所決定。再者,將特定儲(chǔ)存區(qū)塊分類至已清除且具較少歷史數(shù)值群組可通過更新非易失性存儲(chǔ)器地址轉(zhuǎn)換層表來表示。隨后,將剩下所有尚未被分類的儲(chǔ)存區(qū)塊分類于映像群組(步驟510)。其中映像群組中包含有非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存有數(shù)據(jù)的儲(chǔ)存區(qū)塊,以及部分已被清除的儲(chǔ)存區(qū)塊,且此部分已被清除的儲(chǔ)存區(qū)塊的歷史數(shù)值是介于已清除且具較高歷史數(shù)值群組與已清除且具較低歷史數(shù)值群組內(nèi)的儲(chǔ)存區(qū)塊的歷史數(shù)值之間。將非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊分類完成后,最后,計(jì)算出非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的平均歷史數(shù)值(步驟512)。此步驟可經(jīng)由將非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的歷史數(shù)值相加,再除以非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存區(qū)塊的數(shù)目得出。在執(zhí)行圖5所示本發(fā)明的平均抹寫儲(chǔ)存區(qū)塊初始化的流程后,即可進(jìn)行本發(fā)明的平均抹寫儲(chǔ)存區(qū)塊方法,亦即根據(jù)平均抹寫儲(chǔ)存區(qū)塊初始化所得的結(jié)果,將原本儲(chǔ)存于某一儲(chǔ)存區(qū)塊的冷數(shù)據(jù),搬移至歷史數(shù)值相對較高的另一儲(chǔ)存區(qū)塊中。請參照圖6,其所繪示為本發(fā)明的針對某一儲(chǔ)存有冷數(shù)據(jù)的儲(chǔ)存區(qū)塊的平均抹寫儲(chǔ)存區(qū)塊方法的流程圖。首先,自映像群組中選取一儲(chǔ)存有數(shù)據(jù)的儲(chǔ)存區(qū)塊x(步驟602)。 隨后,判斷儲(chǔ)存區(qū)塊X所儲(chǔ)存的數(shù)據(jù)是否為一冷數(shù)據(jù)(步驟604)。儲(chǔ)存區(qū)塊X所儲(chǔ)存的數(shù)據(jù)是否為冷數(shù)據(jù)可由儲(chǔ)存區(qū)塊X的歷史數(shù)值與平均歷史數(shù)值的比較判斷出,也就是說,若儲(chǔ)存區(qū)塊X的歷史數(shù)值遠(yuǎn)小于平均歷史數(shù)值,則此儲(chǔ)存區(qū)塊最近一次被寫入數(shù)據(jù)的時(shí)間則距離現(xiàn)在時(shí)間相對久遠(yuǎn),亦即儲(chǔ)存于此儲(chǔ)存區(qū)塊的數(shù)據(jù)在距離現(xiàn)在相對久遠(yuǎn)時(shí)間內(nèi)未被更新,則儲(chǔ)存于此儲(chǔ)存區(qū)塊的數(shù)據(jù)可視為冷數(shù)據(jù)。反之,若儲(chǔ)存區(qū)塊X的歷史數(shù)值非遠(yuǎn)小于平均歷史數(shù)值,即可判斷出儲(chǔ)存區(qū)塊X所儲(chǔ)存的數(shù)據(jù)并非為冷數(shù)據(jù)。若儲(chǔ)存區(qū)塊X所儲(chǔ)存的數(shù)據(jù)為冷數(shù)據(jù),則自已清除且具較高歷史數(shù)值群組中選取一儲(chǔ)存區(qū)塊Y (步驟606)。一般來說,儲(chǔ)存區(qū)塊Y為自已清除且具較高歷史數(shù)值群組中挑選出具最高的歷史數(shù)值者。隨后,將儲(chǔ)存區(qū)塊X所儲(chǔ)存的數(shù)據(jù)復(fù)制至儲(chǔ)存區(qū)塊Y,亦即,將儲(chǔ)存區(qū)塊X的使用者數(shù)據(jù)復(fù)制至儲(chǔ)存區(qū)塊Y,且根據(jù)將數(shù)據(jù)寫入至儲(chǔ)存區(qū)塊Y的絕對時(shí)間,將儲(chǔ)存區(qū)塊Y的歷史數(shù)值作更新(步驟608)。一旦儲(chǔ)存區(qū)塊X的使用者數(shù)據(jù)被復(fù)制至儲(chǔ)存區(qū)塊Y后,儲(chǔ)存區(qū)塊X即可被清除(步驟 610)。隨后,自已清除且具較低歷史數(shù)值群組中選取一儲(chǔ)存區(qū)塊Z,并將儲(chǔ)存區(qū)塊Z分類至已清除且具較高歷史數(shù)值群組內(nèi)(步驟612)。一般來說,儲(chǔ)存區(qū)塊Z為自已清除且具較低歷史數(shù)值群組中選取具最高的歷史數(shù)值者。將儲(chǔ)存區(qū)塊Z分類至已清除且具較高歷史數(shù)值群組主要是為了替已清除且具較低清除次數(shù)群組清出空間,使得儲(chǔ)存區(qū)塊X可在隨后的步驟中由映射群組被分類至已清除且具較低歷史數(shù)值群組內(nèi)(步驟614)。隨后,由于儲(chǔ)存區(qū)塊Y已儲(chǔ)存有數(shù)據(jù),儲(chǔ)存區(qū)塊Y將被分類至映像群組(步驟616)。通過圖6所示本發(fā)明的平均抹寫儲(chǔ)存區(qū)塊方法流程,原本儲(chǔ)存有冷數(shù)據(jù)而導(dǎo)致歷史數(shù)值相對偏低的儲(chǔ)存區(qū)塊X,由于將其所儲(chǔ)存的冷數(shù)據(jù)被復(fù)制至儲(chǔ)存區(qū)塊Y,使得儲(chǔ)存區(qū)塊X可被清除,待下次進(jìn)行平均抹寫儲(chǔ)存區(qū)塊方法時(shí),儲(chǔ)存區(qū)塊X可被利用而提高其利用率。再者,由于儲(chǔ)存區(qū)塊Y的歷史數(shù)值相對偏高,通過將冷數(shù)據(jù)移至儲(chǔ)存區(qū)塊Y后,使得儲(chǔ)存區(qū)塊Y的歷史數(shù)值變高后,儲(chǔ)存區(qū)塊Y的數(shù)據(jù)將變成熱數(shù)據(jù),在之后的一段時(shí)間內(nèi),儲(chǔ)存
9區(qū)塊Y的數(shù)據(jù)將不再進(jìn)行更動(dòng),直到其余儲(chǔ)存區(qū)塊的歷史數(shù)值超過儲(chǔ)存區(qū)塊Y的歷史數(shù)值時(shí)才會(huì)變更到儲(chǔ)存區(qū)塊Y的數(shù)據(jù),因此儲(chǔ)存區(qū)塊Y的歷史數(shù)值在隨后將有效地被控制。再者,將儲(chǔ)存區(qū)塊X由原本的映像群組分類至已清除且具較少歷史數(shù)值群組,將儲(chǔ)存區(qū)塊Y由原本的已清除且具較高歷史數(shù)值群組分類至映像群組,與將儲(chǔ)存區(qū)塊Z由原本的已清除且具較少歷史數(shù)值群組分類至已清除且具較高歷史數(shù)值群組可經(jīng)由更新非易失性存儲(chǔ)器地址轉(zhuǎn)換層表來表示。當(dāng)非易失性存儲(chǔ)器內(nèi)所有儲(chǔ)存有冷數(shù)據(jù)的儲(chǔ)存區(qū)塊經(jīng)由圖6所示本發(fā)明的平均抹寫儲(chǔ)存區(qū)塊方法流程處理后,即可達(dá)成非易失性存儲(chǔ)器的平均抹寫儲(chǔ)存區(qū)塊。在本發(fā)明實(shí)施例中,具有較高及較低歷史數(shù)值的兩個(gè)群組是根據(jù)將所有儲(chǔ)存區(qū)塊的歷史數(shù)值與兩個(gè)預(yù)設(shè)的歷史數(shù)值來比較,因此可以將非易失性存儲(chǔ)器分類為三個(gè)群組 映射群組、已清除且具較高歷史數(shù)值群組與已清除且具較低歷史數(shù)值群組。然而,也可以以兩個(gè)以上的預(yù)設(shè)歷史數(shù)值,將非易失性存儲(chǔ)器的儲(chǔ)存區(qū)塊分類為更多群組,以進(jìn)行更詳細(xì)的分類來進(jìn)行平均抹寫儲(chǔ)存區(qū)塊方法,其方法與上述類似,在此便不再贅述。綜上所述,雖然本發(fā)明已以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種更動(dòng)與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求范圍所界定者為準(zhǔn)。
權(quán)利要求
1.一種平均抹寫儲(chǔ)存區(qū)塊方法,應(yīng)用于一具有多個(gè)儲(chǔ)存區(qū)塊的非易失性存儲(chǔ)器,該方法包含有下列步驟根據(jù)每一儲(chǔ)存區(qū)塊的一歷史數(shù)值與是否儲(chǔ)存有數(shù)據(jù),將該多個(gè)儲(chǔ)存區(qū)塊分類為一第一群組、一第二群組與一第三群組,其中該歷史數(shù)值為其儲(chǔ)存區(qū)塊所儲(chǔ)存數(shù)據(jù)的一絕對時(shí)間, 該第一群組由該非易失性存儲(chǔ)器所有該多個(gè)儲(chǔ)存區(qū)塊中具有相對較高的該歷史數(shù)值且無儲(chǔ)存有數(shù)據(jù)的N個(gè)儲(chǔ)存區(qū)塊所組成;該第二群組由該非易失性存儲(chǔ)器所有該多個(gè)儲(chǔ)存區(qū)塊中具有相對較低的該歷史數(shù)值且無儲(chǔ)存有數(shù)據(jù)的M個(gè)儲(chǔ)存區(qū)塊所組成;該第三群組由該非易失性存儲(chǔ)器所有該多個(gè)儲(chǔ)存區(qū)塊中去除分類于該第一群組與該第二群組的多個(gè)儲(chǔ)存區(qū)塊所組成;計(jì)算出該非易失性存儲(chǔ)器的一平均歷史數(shù)值;自該第三群組中選取儲(chǔ)存有一冷數(shù)據(jù)的一第一儲(chǔ)存區(qū)塊;自該第一群組中選取一第二儲(chǔ)存區(qū)塊;將儲(chǔ)存于該第一儲(chǔ)存區(qū)塊的該冷數(shù)據(jù)復(fù)制至該第二儲(chǔ)存區(qū)塊,且根據(jù)將該冷數(shù)據(jù)寫入至該第二儲(chǔ)存區(qū)塊的該絕對時(shí)間,對該第二儲(chǔ)存區(qū)塊的該歷史數(shù)值作更新;以及清除該第一儲(chǔ)存區(qū)塊。
2.根據(jù)權(quán)利要求1所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中還包括下列步驟自該第二群組中選取一第三儲(chǔ)存區(qū)塊,并將該第三儲(chǔ)存區(qū)塊分類至該第一群組;將該第一儲(chǔ)存區(qū)塊由該第三群組分類至該第二群組;以及將該第二儲(chǔ)存區(qū)塊由該第一群組分類至該第三群組。
3.根據(jù)權(quán)利要求2所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中該第三儲(chǔ)存區(qū)塊為選取自該第二群組中具最高歷史數(shù)值的儲(chǔ)存區(qū)塊。
4.根據(jù)權(quán)利要求1所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中該第二儲(chǔ)存區(qū)塊為選取自該第一群組中具最高歷史數(shù)值的儲(chǔ)存區(qū)塊。
5.根據(jù)權(quán)利要求1所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中任一儲(chǔ)存區(qū)塊分類至該第一群組、該第二群組及該第三群組是通過更新該非易失性存儲(chǔ)器的一非易失性存儲(chǔ)器地址轉(zhuǎn)換層表來表不。
6.根據(jù)權(quán)利要求1所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中該絕對時(shí)間為其所對應(yīng)的儲(chǔ)存區(qū)塊最近一次被寫入的時(shí)間。
7.根據(jù)權(quán)利要求6所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中該絕對時(shí)間由該非易失性存儲(chǔ)器所屬的一主機(jī)系統(tǒng)第一次通電啟動(dòng)的時(shí)間開始起算。
8.根據(jù)權(quán)利要求1所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中該平均歷史數(shù)值是經(jīng)由該非易失性存儲(chǔ)器內(nèi)所有該多個(gè)儲(chǔ)存區(qū)塊的的該歷史數(shù)值相加,再除以該非易失性存儲(chǔ)器內(nèi)所有該多個(gè)儲(chǔ)存區(qū)塊的數(shù)目得出。
9.根據(jù)權(quán)利要求1所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中該冷數(shù)據(jù)是由其所儲(chǔ)存的儲(chǔ)存區(qū)塊的該歷史數(shù)值與該平均歷史數(shù)值的比較而判斷出。
10.根據(jù)權(quán)利要求9所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中若任一儲(chǔ)存有數(shù)據(jù)且該儲(chǔ)存區(qū)塊的該歷史數(shù)值小于該平均歷史數(shù)值時(shí),則該儲(chǔ)存區(qū)塊所儲(chǔ)存的數(shù)據(jù)為該冷數(shù)據(jù)。
11.根據(jù)權(quán)利要求1所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中該平均抹寫儲(chǔ)存區(qū)塊方法是由使用者主動(dòng)實(shí)施,或由該非易失性存儲(chǔ)器所屬的一主機(jī)系統(tǒng)于符合某些特定條件下自動(dòng)實(shí)施。
12.根據(jù)權(quán)利要求1所述的平均抹寫儲(chǔ)存區(qū)塊方法,其中還包含下列步驟 根據(jù)兩個(gè)預(yù)設(shè)且大小不同的歷史數(shù)值,將該非易失性存儲(chǔ)器的所有儲(chǔ)存區(qū)塊分類為該第一群組、該第二群組與該第三群組。
全文摘要
一種平均抹寫儲(chǔ)存區(qū)塊方法,應(yīng)用于一非易失性存儲(chǔ)器,該方法包含根據(jù)非易失性存儲(chǔ)器中每一儲(chǔ)存區(qū)塊的一歷史數(shù)值與是否儲(chǔ)存有數(shù)據(jù),將該多個(gè)儲(chǔ)存區(qū)塊分類為一第一群組、一第二群組與一第三群組;計(jì)算出該非易失性存儲(chǔ)器中所有儲(chǔ)存區(qū)塊的一平均歷史數(shù)值;自該第三群組中將一冷數(shù)據(jù)搬移至該第一群組,且根據(jù)將該冷數(shù)據(jù)寫入至該第一群組的一絕對時(shí)間,更新該冷數(shù)據(jù)所屬儲(chǔ)存區(qū)塊的歷史數(shù)值;清除原存有該冷數(shù)據(jù)的儲(chǔ)存區(qū)塊并由該第三群組分類至該第二群組;將一儲(chǔ)存區(qū)塊由該第二群組分類至該第一群組;以及將該儲(chǔ)存有冷數(shù)據(jù)的儲(chǔ)存區(qū)塊由該第一群組分類至該第三群組。
文檔編號G11C16/06GK102201259SQ201010145070
公開日2011年9月28日 申請日期2010年3月24日 優(yōu)先權(quán)日2010年3月24日
發(fā)明者徐正煜, 楊文宗, 蔡松峰 申請人:建興電子科技股份有限公司