專利名稱:一種針對Flash存儲器的緩存換入換出算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明專利涉及一種緩存換入換出算法,尤其是針對嵌入式設(shè)備中Flash存儲器 的緩存換入換出算法。
背景技術(shù):
目前,公知的存儲器緩存換入換出算法均是針對傳統(tǒng)的磁盤存儲器,并針對磁盤 存儲設(shè)備做了大量的優(yōu)化工作,以提高磁盤存儲設(shè)備的性能,基本都是基于最近最少被使 用次數(shù)(LRU,Least Recently Used)值來進(jìn)行命中率判斷,做出將緩存中哪一塊進(jìn)行換出 的決定。但是Fla sh存儲設(shè)備與傳統(tǒng)的磁盤設(shè)備有著很大的不同,F(xiàn)lash存儲設(shè)備讀寫過 程中不需要找尋磁道來定位數(shù)據(jù),并且在改寫之前必須進(jìn)行擦除操作,單塊的擦寫壽命也 有限。Flash存儲器還有個很顯著的特點,就是讀操作和寫操作耗時差距很大而且功耗也有 著很大的區(qū)別。由于Flash存儲器如此的特別和傳統(tǒng)磁盤存儲器相比有著如此大的差異, 所以就必須對現(xiàn)有的操作系統(tǒng)中存儲系統(tǒng)的策略和機制進(jìn)行針對Flash存儲設(shè)備的優(yōu)化 和調(diào)整。
發(fā)明內(nèi)容
為了克服現(xiàn)有的緩存換入換出算法均普遍針對傳統(tǒng)的磁盤存儲器,用于Flash存 儲器效果并不理想的問題,本發(fā)明提供了一種新的針對Flash存儲器的緩存換入換出算 法,該緩存換入換出算法不僅能提高Flash存儲器的讀寫性能,而且可以降低Flash存儲器 的磨損消耗,延長Flash存儲器的壽命。本發(fā)明解決其技術(shù)問題所應(yīng)用的技術(shù)方案是當(dāng)緩存換入換出發(fā)生的時候,并不 僅僅簡單基于LRU值來做出將哪塊換出的決定,還需要綜合考慮將各塊的換出代價問題, 將干凈塊優(yōu)先換出部分的干凈塊再根據(jù)LRU值優(yōu)先換出。緩存中的塊與實際物理塊的內(nèi)容 一致,則這樣的塊被稱為干凈塊;緩存中的塊與實際物理塊的內(nèi)容不一致,這樣的塊被稱為 臟快。顯而易見,當(dāng)干凈塊換出的時候,不需要進(jìn)行寫回Flash上物理塊的操作,而臟快被 換出時,則必須進(jìn)行實際的物理的塊寫回操作,同時由于是一個更新快的操作,還帶來了擦 除操作。由于Flash存儲器讀寫性能的不平衡性,讀的性能遠(yuǎn)遠(yuǎn)好于寫和擦除的性能,而且 寫和擦除的功耗遠(yuǎn)遠(yuǎn)大于讀,所以應(yīng)用于Flash存儲器的緩存換入換出算法顯然要通過減 少將緩存中的內(nèi)容寫回到外部存儲器的時間來提升性能。為了這個目的,我們提出一種新 的緩存換入換出算法,叫做干凈塊優(yōu)先換出算法,是對LRU算法做出了一點改進(jìn)。我們將緩 存中的塊根據(jù)LRU值分為兩個部分,正常LRU換出部分和干凈塊優(yōu)先換出部分。在正常部 分中的塊換出時只基于LRU值進(jìn)行換出,故每次換出都是換出最小LRU值的塊,而在干凈塊 優(yōu)先換出部分,則遵守優(yōu)先換出干凈塊,同是干凈塊則換出LRU值低的塊的準(zhǔn)則。本發(fā)明的有益效果是,可以在對Flash存儲器讀性能沒有明顯影響的同時,提高 了 Flash存儲器的寫性能,并且降低了 Flash存儲器使用過程中的功耗。
下面結(jié)合附圖和實施例對本發(fā)明進(jìn)一步說明。圖1是本發(fā)明的緩存分區(qū)圖。圖2是本發(fā)明的操作流程方框圖。圖3是本發(fā)明的順序?qū)懶в眯阅軋D。圖4是本發(fā)明的隨機寫效用性能圖
具體實施例方式如圖1所示,Bl到B8依據(jù)LRU值降序排列,我們將緩存中的塊根據(jù)LRU值分為兩 個部分,正常LRU換出部分和干凈塊優(yōu)先換出部分。在正常部分中的塊換出時只基于LRU 值進(jìn)行換出,故每次換出都是換出最小LRU值的塊,而在干凈塊優(yōu)先換出部分,則遵守優(yōu)先 換出干凈塊,同是干凈塊則換出LRU值低的塊的準(zhǔn)則。如圖1所示,D表示Dirty塊即是臟快,C表示Clean塊即為干凈塊,如果僅是根據(jù) LRU值判斷命中率來緩存換出,那么換出的次序應(yīng)當(dāng)是B8、B7、B6、B5,而根據(jù)我們的改進(jìn)算 法也就是干凈塊優(yōu)先,那么換出的次序應(yīng)當(dāng)是B7、B5、B8、B6。如圖2所示,當(dāng)收到塊緩存換出請求的時候,先遍歷1區(qū)(干凈塊優(yōu)先換出區(qū))找 尋是否有干凈塊,若有干凈塊,則換出LRU值最小的干凈塊;若1區(qū)沒有干凈塊均為臟快,則 換出2區(qū)(正常換出區(qū))中LRU值最小的塊,無論該塊是干凈塊還是臟塊。如圖3、圖4所示,采用我們的改進(jìn)后的緩存換出算法,不論是順序?qū)懶阅苓€是隨 機寫性能都有了明顯的提高。同時由于優(yōu)先換出的是干凈的塊,盡可能避免了擦除和寫操 作,降低了 Flash的使用功耗,并且延長了 Flash的使用壽命。
權(quán)利要求
1.一種針對Flash存儲器的緩存換入換出算法,不僅僅依據(jù)LRU值判斷命中率來決定 換出塊,還綜合考慮了塊換出的代價問題,其特征是在緩存塊換出時,將干凈塊優(yōu)先換出 區(qū)中的干凈塊優(yōu)先換出。
2.根據(jù)權(quán)利要求1所述的Flash存儲器的緩存換入換出算法,其特征是將緩存區(qū)中 的各塊分為兩個區(qū),低LRU值的為干凈塊優(yōu)先換出區(qū),高LRU值的為正常換出區(qū)。
3.根據(jù)權(quán)利要求1所述的Flash存儲器的緩存換入換出算法,其特征是干凈塊優(yōu)先 換出區(qū)中干凈塊優(yōu)先換出,正常換出區(qū)中LRU值低的優(yōu)先換出。
全文摘要
一種針對Flash存儲器設(shè)計的改進(jìn)緩存換入換出算法,主要應(yīng)用于嵌入式設(shè)備中。它對原有的基于LRU值判斷命中率來決定換出塊的算法進(jìn)行了改進(jìn),不僅僅根據(jù)LRU值來進(jìn)行換出判定,而是綜合考慮了換出代價,使得更加符合Flash存儲器的自身特點,提高了Flash存儲器的讀寫性能,降低了Flash存儲器的功耗,延長了Flash的使用壽命。
文檔編號G06F12/12GK102103550SQ20091024250
公開日2011年6月22日 申請日期2009年12月17日 優(yōu)先權(quán)日2009年12月17日
發(fā)明者余愛群, 秦曉康, 陳荷荷 申請人:余愛群, 秦曉康, 陳荷荷