專利名稱:一種實(shí)現(xiàn)基于ubi的動態(tài)磨損均衡的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種實(shí)現(xiàn)存儲器擦寫均衡的方法,特別是涉及一種適用于實(shí)現(xiàn)基于Flash文件系統(tǒng)的動態(tài)磨損均衡的方法。
背景技術(shù):
隨著半導(dǎo)體技術(shù)的發(fā)展,F(xiàn)lash存儲器(閃存)以其體積、功耗、性能等各方面的優(yōu)勢,終于取代了傳統(tǒng)的R0M、EPR0M等成為嵌入式領(lǐng)域主流的存儲器。閃存是一種非易失性存儲器,即斷電數(shù)據(jù)也不會丟失。由于其體積小,攜帶方便,所以廣泛應(yīng)用于數(shù)碼相機(jī),掌上電腦,MP3等小型數(shù)碼產(chǎn)品中作為存儲介質(zhì)中。然而,有限的使用壽命成為閃存廣泛應(yīng)用的一大絆腳石,市場上曾經(jīng)出現(xiàn)的閃存芯片包括3種:
SLC = Single-Level Cell ,即lbit/cell,其特點(diǎn)是速度快,壽命長,但價(jià)格超貴,約10萬次擦寫壽命。MLC = Mult1-Level Cell,即2bit/cell,其特點(diǎn)是速度一般壽命一般,價(jià)格一般,約300010000次擦寫壽命。TLC = Trinary-Level Cell,即 3bit/cell,也有 Flash 廠家叫 8LC,其特點(diǎn)是速度慢壽命短,價(jià)格便宜,約500次擦寫壽命,目前還沒有廠家能做到1000次。從上述可以看出,TLC芯片的閃存僅僅有約500次的壽命,然而,由于其容量大價(jià)格便宜,反而成為當(dāng)前市面上主流的閃存芯片,因此,如何增加Flash芯片的使用壽命已經(jīng)成為一項(xiàng)至關(guān)重要的任務(wù)。研究者們雖然開發(fā)出了專門針對閃存而設(shè)計(jì)的文件系統(tǒng),在一定程度上緩解了一部分壓力,卻不能從根本上解決問題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種實(shí)現(xiàn)基于UBI (Unsorted Block Images)的動態(tài)磨損均衡的方法,該方法在原有基礎(chǔ)上通過修改文件系統(tǒng)有選擇的擦寫Flash芯片中的塊,使得芯片中各個(gè)塊均衡的被擦寫,從而延長整塊Flash芯片的壽命。本發(fā)明或發(fā)明采用的技術(shù)方案如下:
一種實(shí)現(xiàn)基于UBI的動態(tài)磨損均衡的方法,其特征在于:
步驟一、對所有的邏輯塊進(jìn)行溫度評估,劃分為高溫塊和低溫塊;
步驟二、對所有物理塊根據(jù)擦寫次數(shù)劃歸入低齡區(qū)、高齡區(qū)和超齡區(qū);
步驟三、對邏輯塊進(jìn)行空閑塊分配,依據(jù)邏輯塊溫度類型選擇低齡區(qū)和高齡區(qū)中合適的物理塊作為映射對象,超齡區(qū)中物理塊不進(jìn)行映射;
步驟四、通過數(shù)據(jù)遷移回收臟頁,清理Flash存儲器中的臟頁,獲得可用的物理塊; 步驟五、若回收后仍無法得到足夠的可用的物理塊,則釋放超齡區(qū)中的物理塊。作為優(yōu)化,所述步驟一中溫度評估的依據(jù)為各個(gè)邏輯塊的寫操作頻率。
作為優(yōu)化,所述步驟三中對邏輯塊進(jìn)行空閑分配的具體方法步驟為:將低溫邏輯塊映射到高齡物理塊,高溫邏輯塊映射到低齡物理塊,而超齡區(qū)中的物理塊被強(qiáng)制凍結(jié)。作為優(yōu)化,所述步驟三的具體方法步驟為:
a.將有效塊集合按照臟度由高到低排列;
b.當(dāng)空閑塊的集合中的物理塊數(shù)量小于預(yù)先指定的閾值N1時(shí),就喚醒垃圾回收線程;
c.對臟度大于閾值Dtl的物理塊進(jìn)行數(shù)據(jù)遷移,并放入臟塊集合中;
d.擦除臟塊集合中的物理塊,再次進(jìn)入睡眠。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
1.設(shè)計(jì)溫度評估方法,使實(shí)驗(yàn)中獲得數(shù)據(jù)更加接近真實(shí)設(shè)備運(yùn)行的情況;為空閑塊分配方法提供最理想的依據(jù);
2.使用超齡區(qū)(擦寫次數(shù)大于等于給定閾值的物理塊劃歸的區(qū)域)可以盡量減少有效數(shù)據(jù)遷移操作的發(fā)生,還可以有效的避免了有效數(shù)據(jù)遷移操作的副作用,從而不再需要新分塊數(shù)據(jù)保護(hù)措施,簡化了設(shè)計(jì),同時(shí)也降低了系統(tǒng)損耗。
圖1為本發(fā)明其中一實(shí)施例的垃圾回收流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本說明書中公開的所有特征,除了互相排除的特征以外,均可以以任何方式組合。本說明書(包括任何附加權(quán)利要求、摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或者具有類似目的的替代特征加以替換。即,除非特別敘述,每個(gè)特征只是一系列等效或類似特征中的一個(gè)例子而已。在本發(fā)明中提出“超齡區(qū)”和“虛年齡”的概念,使用虛年齡來區(qū)分由于磨損統(tǒng)計(jì)方法本身所帶來物理塊擦除次數(shù)的增加,盡量降低虛年齡的增加,從而減少磨損均衡統(tǒng)計(jì)方法本身所帶來的損耗。本發(fā)明是基于已有的UBI文件系統(tǒng),結(jié)合基于溫度的磨損均衡統(tǒng)計(jì)方法及垃圾回收方法而實(shí)現(xiàn)的。其過程主要包括以下幾個(gè)步驟:
步驟一、對所有的邏輯塊進(jìn)行溫度評估,劃分為高溫塊和低溫塊;
步驟二、對所有物理塊根據(jù)擦寫次數(shù)劃歸入低齡區(qū)、高齡區(qū)和超齡區(qū);
步驟三、對邏輯塊進(jìn)行空閑塊分配,依據(jù)邏輯塊溫度類型選擇低齡區(qū)和高齡區(qū)中合適的物理塊作為映射對象,超齡區(qū)中物理塊不進(jìn)行映射;
步驟四、通過數(shù)據(jù)遷移回收臟頁,清理Flash存儲器中的臟頁,獲得可用的物理塊; 步驟五、若回收后仍無法得到足夠的可用的物理塊,則釋放超齡區(qū)中的物理塊。所述步驟一中溫度評估的依據(jù)為各個(gè)邏輯塊的寫操作頻率。邏輯塊溫度評估策略:根據(jù)過去一段時(shí)間各個(gè)邏輯塊的寫操作頻率(單位時(shí)間內(nèi)的擦寫次數(shù))將所有邏輯塊劃分為高溫塊和低溫塊,為優(yōu)化空閑塊分配策略提供依據(jù);頻率劃分點(diǎn)可以根據(jù)實(shí)際運(yùn)行情況人工配置,通過調(diào)整劃分點(diǎn)的大小來獲得一個(gè)最優(yōu)的方案。設(shè)計(jì)溫度評估方法,使實(shí)驗(yàn)中獲得數(shù)據(jù)更加接近真實(shí)設(shè)備運(yùn)行的情況;為空閑塊分配方法提供最理想的依據(jù)。所述步驟三中對邏輯塊進(jìn)行空閑分配的具體方法步驟為:將低溫邏輯塊映射到高齡物理塊,高溫邏輯塊映射到低齡物理塊,而超齡區(qū)中的物理塊被強(qiáng)制凍結(jié)??臻e塊分配:當(dāng)系統(tǒng)執(zhí)行寫操作時(shí),依據(jù)邏輯塊溫度類型(高溫塊和低溫塊)選擇合適的物理塊作為映射對象。在傳統(tǒng)方法中,依據(jù)前面邏輯塊溫度評估的結(jié)果,將高溫邏輯塊映射到低齡塊集合中,中溫邏輯塊映射到中齡塊中,低溫邏輯塊映射到高齡塊中,這樣可以降低高齡塊的頻繁擦除操作,從而使得各個(gè)物理塊盡可能得到平均的使用。統(tǒng)計(jì)表明,在Flash存儲系統(tǒng)上,超過80%的邏輯塊都是低溫塊,如果只是簡單的將低溫邏輯塊映射到高齡塊,雖然低溫邏輯塊的使用頻率低于高溫邏輯塊,但是低溫邏輯塊的數(shù)量要遠(yuǎn)遠(yuǎn)大于高溫邏輯塊,最終的結(jié)果將導(dǎo)致高齡物理塊使用的頻率不僅沒有減少,反而增加了。有效數(shù)據(jù)遷移策略雖然可以在一定程度上緩解高低年齡差值的增大,但是又將帶來巨大的系統(tǒng)消耗和虛年齡的增加,是一種飲鴆止渴的方法。本發(fā)明提出“超齡區(qū)”的概念,同樣是將物理塊按年齡劃分為3個(gè)區(qū)間,分別為低齡區(qū)、高齡區(qū)和超齡區(qū),而將邏輯塊劃分為高溫塊和低溫塊兩個(gè)區(qū)間,不再考慮中溫區(qū)間,和傳統(tǒng)方法一樣,將低溫邏輯塊映射到高齡物理塊,高溫邏輯塊映射到低齡物理塊,而超齡區(qū)中的物理塊被強(qiáng)制凍結(jié),這樣就避免了低齡塊與高齡塊年齡差距繼續(xù)拉大的情況發(fā)生。統(tǒng)計(jì)數(shù)據(jù)表明,系統(tǒng)存儲器中數(shù)據(jù)占用率通常都在95%以下,F(xiàn)lash存儲器就更低一些,超齡區(qū)正是利用這一空閑區(qū)間,既保護(hù)了高齡物理塊,又沒影響到系統(tǒng)存儲器的正常使用。強(qiáng)制凍結(jié)就是在邏輯塊分配給物理塊的過程中,不考慮超齡區(qū)的物理塊,即超齡區(qū)的物理塊永遠(yuǎn)不會被使用,相當(dāng)于被凍結(jié)。所述步驟三的具體方法步驟為:
a.將有效塊集合按照臟度由高到低排列;
b.當(dāng)空閑塊的集合中的物理塊數(shù)量小于預(yù)先指定的閾值N1時(shí),就喚醒垃圾回收線程;
c.對臟度大于閾值Dtl的物理塊進(jìn)行數(shù)據(jù)遷移,并放入臟塊集合中;
d.擦除臟塊集合中的物理塊,再次進(jìn)入睡眠。圾回收:垃圾回收的目的是獲得可用的空閑塊,本方法以物理塊的擦除次數(shù)和有效塊的“臟度”為依據(jù)(臟度是一個(gè)可以人工配置的閾值),通過數(shù)據(jù)遷移回收臟頁,清理Flash存儲器中的臟頁。有效數(shù)據(jù)遷移:數(shù)據(jù)遷移發(fā)生在有效塊集合和空閑塊集合之間,其過程是將有效塊中數(shù)據(jù)復(fù)制到空閑塊中,將空閑塊集合中的高齡物理塊轉(zhuǎn)移到有效塊集合中保護(hù)起來,控制物理塊年齡差距的進(jìn)一步擴(kuò)大。垃圾回收:垃圾回收的對象是有效塊集合與臟塊集合,主要是臟塊集合,以臟度為依據(jù),圖1展示了垃圾回收的過程。首先將有效塊集合按照臟度由高到低排列,當(dāng)空閑塊的集合中的物理塊數(shù)量小于預(yù)先指定的閾值N1時(shí),就喚醒垃圾回收線程,對臟度大于閾值D0的物理塊進(jìn)行數(shù)據(jù)遷移,并放入臟塊集合中,之后擦除臟塊集合中的物理塊,再次進(jìn)入睡眠。閾值N1和Dtl,本領(lǐng)域技術(shù)人員可結(jié)合實(shí)際情況進(jìn)行指定。
設(shè)計(jì)溫度評估方法,使實(shí)驗(yàn)中獲得數(shù)據(jù)更加接近真實(shí)設(shè)備運(yùn)行的情況;為空閑塊分配方法提供最理想的依據(jù);同時(shí),有效數(shù)據(jù)遷移對系統(tǒng)的消耗很大,又要增加物理塊的虛年齡,使用超齡區(qū)(擦寫次數(shù)大于等于給定閾值的物理塊劃歸的區(qū)域)可以盡量減少有效數(shù)據(jù)遷移操作的發(fā)生,還可以有效的避免了有效數(shù)據(jù)遷移操作的副作用,從而不再需要新分塊數(shù)據(jù)保護(hù)措施,簡化了設(shè)計(jì),同時(shí)也降低了系統(tǒng)損耗。
權(quán)利要求
1.一種實(shí)現(xiàn)基于UBI的動態(tài)磨損均衡的方法,其特征在于: 步驟一、對所有的邏輯塊進(jìn)行溫度評估,劃分為高溫塊和低溫塊; 步驟二、對所有物理塊根據(jù)擦寫次數(shù)劃歸入低齡區(qū)、高齡區(qū)和超齡區(qū); 步驟三、對邏輯塊進(jìn)行空閑塊分配,依據(jù)邏輯塊溫度類型選擇低齡區(qū)和高齡區(qū)中合適的物理塊作為映射對象,超齡區(qū)中物理塊不進(jìn)行映射; 步驟四、通過數(shù)據(jù)遷移回收臟頁,清理Flash存儲器中的臟頁,獲得可用的物理塊; 步驟五、若回收后仍無法得到足夠的可用的物理塊,則釋放超齡區(qū)中的物理塊。
2.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)基于UBI的動態(tài)磨損均衡的方法,其特征在于: 所述步驟一中溫度評估的依據(jù)為各個(gè)邏輯塊的寫操作頻率。
3.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)基于UBI的動態(tài)磨損均衡的方法,其特征在于: 所述步驟三中對邏輯塊進(jìn)行空閑分配的具體方法步驟為:將低溫邏輯塊映射到高齡物理塊,高溫邏輯塊映射到低齡物理塊,而超齡區(qū)中的物理塊被強(qiáng)制凍結(jié)。
4.根據(jù)權(quán)利要求1所述的一種實(shí)現(xiàn)基于UBI的動態(tài)磨損均衡的方法,其特征在于: 所述步驟三的具體方法步驟為: a.將有效塊集合按照臟度由高到低排列; b.當(dāng)空閑塊的集合中的物理塊數(shù)量小于預(yù)先指定的閾值N1時(shí),就喚醒垃圾回收線程; c.對臟度大于閾 值Dtl的物理塊進(jìn)行數(shù)據(jù)遷移,并放入臟塊集合中; d.擦除臟塊集合中的物理塊,再次進(jìn)入睡眠。
全文摘要
本發(fā)明提供了一種實(shí)現(xiàn)基于UBI的動態(tài)磨損均衡的方法,該方法在原有基礎(chǔ)上通過修改文件系統(tǒng)有選擇的擦寫Flash芯片中的塊,使得芯片中各個(gè)塊均衡的被擦寫,從而延長整塊Flash芯片的壽命。本發(fā)明提出“超齡區(qū)”和“虛年齡”的概念可以盡量減少有效數(shù)據(jù)遷移操作的發(fā)生,還可以有效的避免了有效數(shù)據(jù)遷移操作的副作用,從而不再需要新分塊數(shù)據(jù)保護(hù)措施,簡化了設(shè)計(jì),同時(shí)也降低了系統(tǒng)損耗。
文檔編號G06F12/06GK103218306SQ201310105890
公開日2013年7月24日 申請日期2013年3月29日 優(yōu)先權(quán)日2013年3月29日
發(fā)明者李宗海 申請人:四川長虹電器股份有限公司