專利名稱:面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法
技術(shù)領(lǐng)域:
本發(fā)明涉及文件系統(tǒng)緩存機(jī)制,特指面向固態(tài)硬盤的文件系統(tǒng)數(shù)據(jù)頁的緩存管理方法。
背景技術(shù):
當(dāng)前處理器性能一直按照摩爾定律在飛速提高,相對而言,以機(jī)械磁盤為主的存儲系統(tǒng)性能提高卻緩慢得多,計(jì)算性能和存儲性能之間的差距越來越大,存儲系統(tǒng)的I/O 性能瓶頸問題日益突出。磁盤作為當(dāng)前主流的外部存儲設(shè)備是提高整個(gè)計(jì)算機(jī)系統(tǒng)性能的一個(gè)瓶頸所在,因?yàn)樗淖x寫訪問速度和內(nèi)存相比一般都要相差3個(gè)數(shù)量級,在磁盤上讀取數(shù)據(jù)會(huì)影響整個(gè)應(yīng)用的運(yùn)行速度。目前,基于Flash的固態(tài)硬盤在I/O性能上有很大的上升空間,有很大的研究潛力,和磁盤相比固態(tài)硬盤有很多明顯的優(yōu)點(diǎn)很小的讀延遲,快速隨機(jī)讀寫訪問,低功耗,可靠性高等,所以固態(tài)硬盤比傳統(tǒng)磁盤的應(yīng)用前景更加廣闊,并且隨著固態(tài)存儲制造工藝會(huì)越來越成熟,性能會(huì)越來越高的,這些都可能促使固態(tài)硬盤會(huì)逐步取代目前的磁盤。在存儲系統(tǒng)中使用固態(tài)硬盤雖然能夠提供比傳統(tǒng)機(jī)械磁盤更高的讀寫訪問性能, 但是由于操作系統(tǒng)在軟件設(shè)計(jì)和優(yōu)化中假定的存儲系統(tǒng)不是固態(tài)硬盤,使得操作系統(tǒng)沒有完全發(fā)揮固態(tài)硬盤本身的優(yōu)勢,固態(tài)硬盤的性能沒有達(dá)到最理想的狀態(tài)。提高存儲系統(tǒng)性能的一般方法是使用文件系統(tǒng)緩存,內(nèi)存作為緩存位于文件系統(tǒng)和存儲設(shè)備之間,能減少從文件系統(tǒng)到存儲的讀和寫請求數(shù)目,提高存儲I/O性能。緩存的性能直接影響文件系統(tǒng)的性能,必須高效地維護(hù)緩存。當(dāng)緩存中沒有空閑空間時(shí),為了滿足接下來的讀寫緩存請求必須按照某種機(jī)制置換出一些數(shù)據(jù),這就牽涉到緩存的數(shù)據(jù)頁置換機(jī)制。大部分的傳統(tǒng)的數(shù)據(jù)頁置換方法主要關(guān)注的緩存的命中率,因?yàn)槊新试礁?,減少讀寫次數(shù)越多,磁盤讀寫請求開銷差不多,進(jìn)行置換時(shí)內(nèi)存中的讀寫數(shù)據(jù)不區(qū)別看待。文件系統(tǒng)的緩存都是通過一個(gè)用于緩存數(shù)據(jù)頁的緩沖鏈表來實(shí)現(xiàn)的,目前面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法為CFLRU(干凈頁優(yōu)先最近最少使用,Clean First LRU) 法和LRU-WSR(最近最少使用寫操作沖排序,LRU-Write Sequebce Recordering)法這兩種方法如圖1所示,CFLRU法將緩沖鏈表分為工作區(qū)和干凈優(yōu)先區(qū),根據(jù)數(shù)據(jù)頁的訪問狀態(tài)將數(shù)據(jù)頁分為干凈頁和臟頁。工作區(qū)緩存最近使用的數(shù)據(jù)頁,干凈頁基本上都位于這個(gè)區(qū)域,所以大部分的緩沖命中在這個(gè)區(qū)域;干凈優(yōu)先區(qū)是進(jìn)行頁置換的區(qū)域,干凈優(yōu)先區(qū)的大小(包含緩存頁的數(shù)目)用窗口大小W來衡量,窗口大小W是固定不變的。在干凈優(yōu)先區(qū)選擇待置換頁時(shí),則在干凈優(yōu)先區(qū)的窗口大小W范圍內(nèi)從表尾向表頭方向遍歷直到選中了一個(gè)干凈頁,那么這個(gè)干凈頁就是待置換頁,然后將待置換頁進(jìn)行置換寫回。本圖中D表示臟頁,C表示干凈頁,Pl為表頭端的數(shù)據(jù)頁,P8為表尾端的數(shù)據(jù)頁,從圖中可以可見P7為窗口大小W范圍內(nèi)從表尾向表頭方向的第一個(gè)干凈頁,因此此時(shí)P7為待置換頁。如圖2所示,LRU-WSR法結(jié)合數(shù)據(jù)頁的訪問頻率,對緩沖鏈表的數(shù)據(jù)頁采用冷熱標(biāo)志對臟頁根據(jù)訪問頻率進(jìn)行簡單分類干凈頁C、熱臟頁HD和冷臟頁CD。Pl為表頭端的數(shù)據(jù)頁,P7為表尾端的數(shù)據(jù)頁,LRU-WSR法的置換過程如下先從表尾端選擇一個(gè)數(shù)據(jù)頁作為候選頁,若候選頁是干凈頁,那么不考慮冷熱標(biāo)志就選擇它來置換。若候選頁是臟頁,必須先要檢查它的冷熱標(biāo)志如果它的冷熱標(biāo)志被設(shè)置,則選擇這個(gè)臟頁作為待置換頁進(jìn)行置換寫回;如果冷熱標(biāo)志沒有被設(shè)置,說明冷熱標(biāo)志為熱,然后將數(shù)據(jù)頁移動(dòng)至表頭,同時(shí)設(shè)置冷熱標(biāo)志。相當(dāng)于一個(gè)臟頁被給了二次機(jī)會(huì),同時(shí)會(huì)從表尾端的選擇另一個(gè)候選頁進(jìn)行再次判斷,設(shè)置了臟頁的冷熱標(biāo)志被在此引用時(shí)會(huì)被清除的,同時(shí)移動(dòng)到表頭,圖中可知P7 是干凈頁,因此此時(shí)P7會(huì)被選擇作為待置換頁進(jìn)行置換。
但是在Flash存儲系統(tǒng)中,讀和寫開銷完全不對稱,寫的訪問時(shí)間一般都是讀的 10倍以上,而上述方法均沒有考慮固態(tài)硬盤的讀寫不對稱性,無法發(fā)揮固態(tài)硬盤的特性,不能有效發(fā)揮軟件管理高速緩存的優(yōu)勢,緩存利用率不高,無法很好緩解存儲的I/O性能瓶頸。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種可充分利用固態(tài)硬盤特性、有效緩解外部存儲的性能瓶頸、提高系統(tǒng)存儲處理性能,I/O性能好、緩存頁置換代價(jià)低、開銷小、命中率高的面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法。為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為一種面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其實(shí)施步驟如下1)在高速緩存中建立用于緩存數(shù)據(jù)頁的緩沖鏈表;2)將固態(tài)硬盤中讀取的數(shù)據(jù)頁緩存在緩沖鏈表中以供訪問,并實(shí)時(shí)根據(jù)數(shù)據(jù)頁的訪問狀態(tài)和寫訪問狀態(tài)將緩沖鏈表中數(shù)據(jù)頁分類為冷干凈頁、熱干凈頁、冷臟頁和熱臟頁;3)當(dāng)緩沖鏈表中沒有空閑空間時(shí),首先在緩沖鏈表中根據(jù)冷干凈頁、熱干凈頁、冷臟頁、熱臟頁的優(yōu)先順序查找一個(gè)數(shù)據(jù)頁作為待置換頁,然后將待置換頁與從固態(tài)硬盤讀取的新數(shù)據(jù)頁進(jìn)行置換。作為本發(fā)明的進(jìn)一步改進(jìn)所述步驟2)中首先為緩沖鏈表中的數(shù)據(jù)頁建立用于標(biāo)記訪問狀態(tài)的冷熱標(biāo)志、 設(shè)置冷熱標(biāo)志的初始值、冷閾值范圍和熱閾值范圍,當(dāng)數(shù)據(jù)頁首次緩存至緩沖鏈表中時(shí)將數(shù)據(jù)頁的冷熱標(biāo)志置為所述初始值,緩沖鏈表中的數(shù)據(jù)頁每發(fā)生一次訪問則冷熱標(biāo)志向熱閾值范圍變化、每經(jīng)過一次待置換頁查找則冷熱標(biāo)志向冷閾值范圍變化,步驟2)中進(jìn)行數(shù)據(jù)頁分類時(shí),將冷熱標(biāo)志屬于冷閾值范圍內(nèi)且未發(fā)生寫訪問的數(shù)據(jù)頁分類為冷干凈頁、將冷熱標(biāo)志屬于冷閾值范圍內(nèi)且已發(fā)生寫訪問的數(shù)據(jù)頁分類為冷臟頁、將冷熱標(biāo)志屬于熱閾值范圍內(nèi)且未發(fā)生寫訪問的數(shù)據(jù)頁分類為熱干凈頁、將冷熱標(biāo)志屬于熱閾值范圍內(nèi)且已發(fā)生寫訪問的數(shù)據(jù)頁分類為熱臟頁。所述步驟2)中進(jìn)行數(shù)據(jù)頁分類時(shí),如果數(shù)據(jù)頁為冷干凈頁或者冷臟頁且被再次訪問,則修改該數(shù)據(jù)頁的冷熱標(biāo)志使其屬于熱閾值范圍內(nèi)。所述步驟1)中建立的緩沖鏈表包括用于緩存冷干凈頁的冷干凈鏈表和用于緩存熱干凈頁、冷臟頁、熱臟頁的混合鏈表;所述步驟2)中,冷干凈鏈表中的數(shù)據(jù)頁一旦發(fā)生訪問操作,則將其轉(zhuǎn)移至混合鏈表;所述步驟3)中,首先在冷干凈鏈表中查找待置換頁,如果冷干凈鏈表為空,則在混合鏈表中根據(jù)熱干凈頁、冷臟頁、熱臟頁的優(yōu)先順序查找待置換頁。所述步驟2)中冷干凈鏈表和混合鏈表中的數(shù)據(jù)頁采用最近最少使用算法進(jìn)行實(shí)時(shí)排序,將緩存至冷干凈鏈表的數(shù)據(jù)頁寫入冷干凈鏈表的表頭,冷干凈鏈表中的數(shù)據(jù)頁轉(zhuǎn)移至混合鏈表時(shí)寫入混合鏈表的表頭,在冷干凈鏈表中查找待置換頁時(shí),從冷干凈鏈表的表尾向表頭方向查找,在混合鏈表中查找待置換頁時(shí),從混合鏈表的表尾向表頭方向查找待置換頁。所述從混合鏈表的表尾向表頭方向查找待置換頁時(shí),首 先在混合鏈表的表尾建立一個(gè)用于查找熱干凈頁的查找窗口,然后首先在查找窗口內(nèi)查找熱干凈頁,如果找到熱干凈頁則將該熱干凈頁作為待置換頁,如果在查找窗口內(nèi)沒有找到熱干凈頁,則首先從混合鏈表的表尾向表頭方向查找冷臟頁作為待置換頁,如果在混合鏈表中沒有找到冷臟頁,則將混合鏈表的表尾端的熱臟頁作為待置換頁。所述建立查找窗口后,實(shí)時(shí)根據(jù)數(shù)據(jù)緩存的當(dāng)前主要訪問類型調(diào)整查找窗口的窗口大小,如果當(dāng)前主要訪問類型為讀訪問,則減少混合鏈表中查找窗口的窗口大??;如果當(dāng)前主要訪問類型為寫訪問,則增加混合鏈表中查找窗口的窗口大小。所述步驟1)中一并建立的用于保存被置換數(shù)據(jù)頁信息的克隆列表、設(shè)置用于判斷緩沖鏈表主要訪問類型的讀密集閾值和寫密集閾值;所述步驟3)中進(jìn)行置換時(shí)將被置換數(shù)據(jù)頁信息保存在克隆列表中,同時(shí)實(shí)時(shí)檢查克隆列表中的所有數(shù)據(jù)頁,如果克隆列表中冷干凈頁和熱干凈頁數(shù)量之和占克隆列表中數(shù)據(jù)頁總數(shù)的比例超過讀密集閾值,則判定緩沖鏈表當(dāng)前主要訪問類型為讀訪問;如果克隆列表中冷臟頁和熱臟頁數(shù)量之和占克隆列表中數(shù)據(jù)頁總數(shù)的比例超過寫密集閾值,則判定緩沖鏈表當(dāng)前主要訪問類型為寫訪問。所述減少窗口大小后查找窗口的窗口大小W為W= (1-1/(μ+1)) .Wtl,所述增加窗口大小后查找窗口的窗口大小W為W= (1+1/(μ+1)) · Wtl,其中Wtl為查找窗口的初始窗口大小,μ為查找窗口的窗口大小W與緩沖鏈表總數(shù)據(jù)頁數(shù)量的比值。本發(fā)明具有下述優(yōu)點(diǎn)1、本發(fā)明將緩沖鏈表中數(shù)據(jù)頁分類為冷干凈頁、熱干凈頁、冷臟頁和熱臟頁,然后在進(jìn)行數(shù)據(jù)頁置換時(shí)根據(jù)冷干凈頁、熱干凈頁、冷臟頁、熱臟頁的優(yōu)先順序查找待置換頁, 優(yōu)先置換開銷小的冷干凈頁,盡量延遲置換開銷大的熱臟頁,緩存整體開銷小,具有可有效緩解外部存儲的性能瓶頸、可提高系統(tǒng)存儲處理性能、I/O性能好、緩存頁置換代價(jià)低、開銷小、命中率高的優(yōu)點(diǎn)。2、本發(fā)明通過冷熱標(biāo)志來對數(shù)據(jù)頁進(jìn)行分類、把數(shù)據(jù)頁分為多個(gè)冷熱等級的數(shù)據(jù)頁冷檢測機(jī)制,通過對數(shù)據(jù)頁冷熱分類實(shí)現(xiàn)根據(jù)數(shù)據(jù)頁訪問頻率的細(xì)粒度調(diào)整,簡單方便、 置換開銷小。3、本發(fā)明進(jìn)一步在進(jìn)行數(shù)據(jù)頁分類時(shí),如果數(shù)據(jù)頁為冷干凈頁或者冷臟頁且被再次訪問則修改該數(shù)據(jù)頁的冷熱標(biāo)志使其屬于熱閾值范圍內(nèi),使其直接變成熱干凈頁或者熱臟頁,可以提高緩存中數(shù)據(jù)頁的命中率。4、本發(fā)明的緩沖鏈表進(jìn)一步包括用于緩存冷干凈頁的冷干凈鏈表和用于緩存熱干凈頁、冷臟頁、熱臟頁的混合鏈表,因此優(yōu)先查找冷干凈鏈表獲取冷干凈頁,在冷干凈鏈表為空時(shí)才去查找混合鏈表,因此查找置換頁的開銷更小、查找速度更快,可以進(jìn)一步提高緩沖鏈表的訪問性能。5、本發(fā)明冷干凈鏈表和混合鏈表中的數(shù)據(jù)頁進(jìn)一步采用最近最少使用算法進(jìn)行實(shí)時(shí)排序,查找待置換頁的時(shí)候從表尾向表頭方向查找,可以有效保障開銷最大的熱臟頁總是最后才被置換,有效提高了緩沖鏈表的訪問性能。6、本發(fā)明進(jìn)一步在查找熱干凈頁的時(shí)候在查找窗口中進(jìn)行查找,可以防止熱干凈頁的過度置換,通過有效結(jié)合考慮數(shù)據(jù)頁的新近性和訪問頻率,置換開銷小、性能高。7、本發(fā)明進(jìn)一步實(shí)時(shí)根據(jù)數(shù)據(jù)緩存的當(dāng)前主要訪問類型調(diào)整查找窗口的窗口大小,可以減少對固態(tài)硬盤的寫回操作數(shù)量,從而可以充分發(fā)揮固態(tài)硬盤讀取比寫回速度快的特性,可以有效提高固態(tài)硬盤的存儲系統(tǒng)的I/O效率和文件系統(tǒng)緩存性能。8、本發(fā)明進(jìn)一步通過克隆列表來檢測數(shù)據(jù)緩存的當(dāng)前主要訪問類型,克隆列表僅僅保存被置換數(shù)據(jù)頁的元數(shù)據(jù)信息,實(shí)現(xiàn)簡單高效、占用空間很小。
圖1為CFLRU法的緩沖鏈表結(jié)構(gòu)示意圖;圖2為LRU-WSR法的緩沖鏈表結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例緩存方法的流程示意圖;圖4為本發(fā)明實(shí)施例中混合鏈表的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例中冷干凈鏈表的結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例緩存方法查找代置換頁的詳細(xì)流程示意圖;圖7為本發(fā)明實(shí)施例中數(shù)據(jù)頁類型轉(zhuǎn)換示意圖;圖8為本發(fā)明實(shí)施例中克隆鏈表與冷干凈鏈表、混合鏈表的大小比較示意圖。
具體實(shí)施例方式如圖3所示,本發(fā)明實(shí)施例面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法的實(shí)施步驟如下1)在高速緩存中建立用于緩存數(shù)據(jù)頁的緩沖鏈表;2)將固態(tài)硬盤中讀取的數(shù)據(jù)頁緩存在緩沖鏈表中以供訪問,并實(shí)時(shí)根據(jù)數(shù)據(jù)頁的訪問狀態(tài)和寫訪問狀態(tài)將緩沖鏈表中數(shù)據(jù)頁分類為冷干凈頁、熱干凈頁、冷臟頁和熱臟頁;3)當(dāng)緩沖鏈表中沒有空閑空間時(shí),首先在緩沖鏈表中根據(jù)冷干凈頁、熱干凈頁、冷臟頁、熱臟頁的優(yōu)先順序查找一個(gè)數(shù)據(jù)頁作為待置換頁,然后將待置換頁與從固態(tài)硬盤讀取的新數(shù)據(jù)頁進(jìn)行置換。本實(shí)施例中,高速緩存是指內(nèi)存。從讀寫開銷的角度考慮,由于固態(tài)硬盤的讀寫開銷具有非對稱性的特點(diǎn),同等情況下置換臟頁引起的寫回操作開銷肯定是最大的,而置換干凈頁的開銷最小。而從緩沖命中率的角度考慮,置換熱頁引起的影響肯定比置換冷頁的影響大,引起的性能損失嚴(yán)重,這是由于熱頁包含了應(yīng)用中訪問頻繁的頁面數(shù)據(jù),如果選擇它來置換,在隨后的應(yīng)用請求很有可能因?yàn)樵俅卧L問這個(gè)頁面數(shù)據(jù)而發(fā)生缺頁,必須到外部存儲中取數(shù)據(jù)引起系統(tǒng)性能的損失,如果選擇冷頁來置換,因?yàn)樗脑L問頻率相對比較低,將來再次引用的可能性小,可以以較小的代價(jià)將其置換還不引起大的性能損失。根據(jù)讀寫開銷和頁面訪問頻率的分析,可以知道置換熱臟頁的開銷最大,置換冷干凈頁的開銷最小。因此本實(shí)施例中,在緩沖鏈表中查找待置換頁時(shí),是根據(jù)冷干凈頁、熱干凈頁、冷臟頁、 熱臟頁的優(yōu)先順序進(jìn)行依次查找。步驟2)中首先為緩沖鏈表中的數(shù)據(jù)頁建立用于標(biāo)記訪問狀態(tài)的冷熱標(biāo)志、設(shè)置冷熱標(biāo)志初始值、冷閾值范圍和熱閾值范圍,當(dāng)數(shù)據(jù)頁首次緩存至緩沖鏈表中時(shí)將數(shù)據(jù)頁的冷熱標(biāo)志置為初始值,緩沖鏈表中的數(shù)據(jù)頁每發(fā)生一次訪問則冷熱標(biāo)志向熱閾值范圍變化、每經(jīng)過一次待置換頁查找則冷熱標(biāo)志向冷閾值范圍變化,步驟2)中進(jìn)行數(shù)據(jù)頁分類時(shí),將冷熱標(biāo)志屬于冷閾值范圍內(nèi)且未發(fā)生寫訪問的數(shù)據(jù)頁分類為冷干凈頁、將冷熱標(biāo)志屬于冷閾值范圍內(nèi)且已發(fā)生寫訪問的數(shù)據(jù)頁分類為冷臟頁、將冷熱標(biāo)志屬于熱閾值范圍內(nèi)且未發(fā)生寫訪問的數(shù)據(jù)頁分類為熱干凈頁、將冷熱標(biāo)志屬于熱閾值范圍內(nèi)且已發(fā)生寫訪問的數(shù)據(jù)頁分類為熱臟頁。本實(shí)施例中冷熱標(biāo)志用COOL表示,冷閾值范圍為2 3,熱閾值范圍為0 1,冷熱標(biāo)志為2或3說明該頁是冷數(shù)據(jù)頁(包括冷干凈頁和冷臟頁),冷熱標(biāo)志為0或1時(shí)表示數(shù)據(jù)頁是熱數(shù)據(jù)頁(包括熱臟頁和熱干凈頁),COOL = 0表明數(shù)據(jù)頁最熱;COOL = 3表明數(shù)據(jù)頁最大程度即訪問頻率最小或最久沒有訪問了,冷熱標(biāo)志的初始值為COOLmax = 3,緩沖鏈表中的數(shù)據(jù)頁每發(fā)生一次訪問則冷熱標(biāo)志減1、每經(jīng)過一次待置換頁查找則冷熱標(biāo)志向冷閾值范圍加1。此外也可以將COOLmax初始設(shè)定為1,這樣COOL = 0表示熱,COOL = COOLmax表示冷,冷熱標(biāo)志退化為只有冷熱兩種程度了,這是最簡單的情況。除了本實(shí)施例中采用0表示最熱、COOLmax表示最冷的方式以外,也可以將0或者其他值表示最冷、COOLmax表示最熱,或者采用其他表示最冷或者最熱的值,或者采用其他冷閾值范圍和熱閾值范圍,又或者將冷閾值范圍和熱閾值范圍采用同一個(gè)邊界值進(jìn)行區(qū)分等等,其本質(zhì)與本實(shí)施例等同。通過對數(shù)據(jù)頁訪問頻率進(jìn)行優(yōu)化,可以提高緩沖鏈表的命中率和I/O性能。步驟2)中進(jìn)行數(shù)據(jù)頁分類時(shí),如果數(shù)據(jù)頁為冷干凈頁或者冷臟頁且被再次訪問,則修改該數(shù)據(jù)頁的冷熱標(biāo)志使其屬于熱閾值范圍內(nèi)。本實(shí)施例中,如果冷干凈頁被再次訪問,則將冷干凈頁的冷熱標(biāo)志直接置為0成為熱干凈頁;如果冷臟頁被再次訪問,則將冷臟頁的冷熱標(biāo)志直接置為0成為熱臟頁。步驟1)中建立的緩沖鏈表包括用于緩存冷干凈頁的冷干凈鏈表和用于緩存熱干凈頁、冷臟頁、熱臟頁的混合鏈表;步驟2)中,冷干凈鏈表中的數(shù)據(jù)頁一旦發(fā)生訪問操作, 則將其轉(zhuǎn)移至混合鏈表;步驟3)中,首先在冷干凈鏈表中查找待置換頁,如果冷干凈鏈表為空,則在混合鏈表中根據(jù)熱干凈頁、冷臟頁、熱臟頁的優(yōu)先順序查找待置換頁。本實(shí)施例中,緩沖鏈表包括混合鏈表Ll和冷干凈鏈表L2,混合鏈表Ll和冷干凈鏈表L2包含的數(shù)據(jù)頁數(shù)量L總和即為文件系統(tǒng)緩存的大小。混合鏈表Ll緩存熱干凈頁、冷臟頁、熱臟頁,其中熱干凈頁以HC表示、冷臟頁以CD表示、熱臟頁以HD表示;冷干凈鏈表L2僅僅緩存冷干凈頁,其中冷干凈頁以CC表示。如圖4和圖5所示,混合鏈表Ll中緩存有熱干凈頁HC、冷臟頁⑶、熱臟頁HD,其中位于表頭端的數(shù)據(jù)頁P(yáng)l為熱臟頁HD,位于表尾端的數(shù)據(jù)頁P(yáng)7為熱臟頁HD。冷干凈鏈表 L2僅僅緩存冷干凈頁CC,數(shù)據(jù)頁P(yáng)9位于冷干凈鏈表L2的表頭端,數(shù)據(jù)頁P(yáng)15位于冷干凈鏈表L2的表尾端。步驟2)中冷干凈鏈表和混合鏈表中的數(shù)據(jù)頁采用最近最少使用算法(LRU算法)進(jìn)行實(shí)時(shí)排序,將緩存至冷干凈鏈表的數(shù)據(jù)頁寫入冷干凈鏈表的表頭,冷干凈鏈表中的數(shù)據(jù)頁轉(zhuǎn)移至混合鏈表時(shí)寫入混合鏈表的表頭,在冷干凈鏈表中查找待置換頁時(shí),從冷干凈鏈表的表尾向表頭方向查找,在混合鏈表中查找待置換頁時(shí),從混合鏈表的表尾向表頭方向查找待置換頁。本實(shí)施例實(shí)質(zhì)上是在傳統(tǒng)的緩沖鏈表的基礎(chǔ)上增加了一個(gè)新的僅緩存冷干凈頁的冷干凈鏈表,冷干凈鏈表中的冷干凈頁根據(jù)最近最少使用算法(LRU算法)的順序排列,查找窗口位于混合鏈表Ll的表尾。此外,最近最少使用算法的表頭也可叫做最近最多使用端,表尾也叫最久最少使用端。根據(jù)前面對各種類型頁的置換開銷分析,我們知道置換熱臟頁的代價(jià)最大,在進(jìn)行置換時(shí)要盡可能保證熱臟頁延遲置換,因此在混合鏈表的查找窗口中,根據(jù)熱干凈頁、冷臟頁、熱臟頁的優(yōu)先順序依 次查找待置換頁,熱臟頁是作為最后的選擇。本實(shí)施例從混合鏈表的表尾向表頭方向查找待置換頁時(shí),首先在混合鏈表的表尾建立一個(gè)用于查找熱干凈頁的查找窗口,然后首先在查找窗口內(nèi)查找熱干凈頁,如果找到熱干凈頁則將該熱干凈頁作為待置換頁,如果在查找窗口內(nèi)沒有找到熱干凈頁,則首先從混合鏈表的表尾向表頭方向查找冷臟頁作為待置換頁,如果在混合鏈表中沒有找到冷臟頁,則將混合鏈表的表尾端的熱臟頁作為待置換頁。本實(shí)施例中查找待置換頁的流程如下1)首先查找冷干凈鏈表L2,如果冷干凈鏈表L2不為空,則選定冷干凈鏈表L2表尾端的數(shù)據(jù)頁(冷干凈頁)作為待置換頁,否則執(zhí)行下一步。2)如果冷干凈鏈表L2為空,則查找混合鏈表Ll 2. 1)在混合鏈表Ll的查找窗口內(nèi)從表尾向表頭方向查找熱干凈頁,數(shù)據(jù)頁每經(jīng)過一次查找則冷熱標(biāo)志加1,如果找到熱干凈頁則將該數(shù)據(jù)頁作為待置換頁,如果沒有找到熱干凈頁則進(jìn)行下一步;2. 2)從混合鏈表Ll的表尾向表頭方向遍歷查找冷臟頁,如果找到冷臟頁則將該數(shù)據(jù)頁作為待置換頁,如果沒有找到冷臟頁則進(jìn)行下一步;2.3)將查找窗口表尾端的數(shù)據(jù)頁(熱臟頁)作為待置換頁。如圖6所示,本實(shí)施例中查找待置換頁并進(jìn)行置換的詳細(xì)流程如下(1)、如果冷干凈鏈表L2非空,則標(biāo)記冷干凈鏈表L2表尾端的數(shù)據(jù)頁為待置換頁、 跳轉(zhuǎn)至步驟(7),否則執(zhí)行下一步;(2)、將混合鏈表Ll表尾端的數(shù)據(jù)頁為候選頁,然后執(zhí)行下一步;(3)、如果候選頁為熱干凈頁,則將該數(shù)據(jù)頁作為待置換頁并跳轉(zhuǎn)至步驟(7),否則執(zhí)行下一步;(4)、從混合鏈表Ll的表尾向表頭方向遍歷每一個(gè)查找窗口內(nèi)的數(shù)據(jù)頁來查找熱干凈頁,如果找到熱干凈頁則將該數(shù)據(jù)頁作為待置換頁并跳轉(zhuǎn)至步驟(7),如果當(dāng)前的候選頁不是熱干凈頁,則首先將候選頁的冷熱標(biāo)志加1,然后判斷該數(shù)據(jù)頁是否位于查找窗口內(nèi),如果已經(jīng)遍歷查找窗口的所有數(shù)據(jù)頁仍未找到熱干凈頁則執(zhí)行下一步;(5)、從混合鏈表Ll的表尾向表頭方向遍歷每一個(gè)數(shù)據(jù)頁來查找冷臟頁,如果找到冷臟頁則將該數(shù)據(jù)頁作為待置換頁并跳轉(zhuǎn)至步驟(7),如果最終沒有找到冷臟頁則執(zhí)行下一步;(6)、將查找窗口表尾端的數(shù)據(jù)頁(熱臟頁)作為待置換頁,然后執(zhí)行步驟(7),
(7)、將待置換頁進(jìn)行置換,置換完畢后退出本次置換流程。
如圖7所示,對于首次緩存至緩沖鏈表的數(shù)據(jù)頁,冷熱標(biāo)志默認(rèn)設(shè)置為COOLmax并插入到冷干凈鏈表L2的表頭。因?yàn)槔涓蓛翩湵鞮2更新速度非??欤绻涓蓛翩湵鞮2中的冷干凈頁被讀取,說明該數(shù)據(jù)頁從緩存至冷干凈鏈表L2到再次發(fā)生訪問并轉(zhuǎn)移至混合鏈表Ll的兩次訪問時(shí)間間隔非常短,因此本實(shí)施例中直接將冷干凈鏈表L2中再次發(fā)生訪問數(shù)據(jù)頁的冷熱標(biāo)志置為0,使其成為熱干凈頁以提高緩存中數(shù)據(jù)頁的命中率,并立即被轉(zhuǎn)移到混合鏈表Ll的表頭,這也是混合鏈表Ll中熱干凈頁的唯一來源;如果冷干凈鏈表L2 中的冷干凈頁發(fā)生寫訪問,冷熱標(biāo)志保持不變,冷干凈頁變?yōu)槔渑K頁,立即被轉(zhuǎn)移到混合鏈表Ll的表頭。混合鏈表Ll中,如果冷臟頁再次發(fā)生寫訪問,則冷熱標(biāo)志減1,如果冷熱標(biāo)志落入熱閾值范圍內(nèi),則冷臟頁變?yōu)闊崤K頁。對于首次寫訪問并緩存至緩沖鏈表的數(shù)據(jù)頁, 則直接作為冷臟頁放入混合鏈表Ll的表頭,這種方式會(huì)產(chǎn)生插入至混合鏈表Ll中的冷臟頁。對于混合鏈表Ll中的數(shù)據(jù)頁,不管它當(dāng)前處于什么狀態(tài),只要它被訪問了,那么它的冷熱標(biāo)志都要減1。同時(shí)在混合鏈表Ll中查找待置換頁時(shí),如果候選頁不是干凈頁,則將冷熱標(biāo)志加1,如果熱臟頁的冷熱標(biāo)志落入冷閾值范圍內(nèi)則變?yōu)槔渑K頁,從而可以有效保證熱臟頁總是被延遲置換。本實(shí)施例在建立查找窗口后,實(shí)時(shí)根據(jù)數(shù)據(jù)緩存的當(dāng)前主要訪問類型調(diào)整查找窗口的窗口大小,如果當(dāng)前主要訪問類型為讀訪問,則減少混合鏈表中查找窗口的窗口大?。?如果當(dāng)前主要訪問類型為寫訪問,則增加混合鏈表中查找窗口的窗口大小。若當(dāng)前主要訪問類型為讀訪問,則讀命中就顯得相當(dāng)重要,若還是大量置換干凈頁就會(huì)極大的增加緩沖的失效率,本實(shí)施例通過減少查找窗口的窗口大小盡量避免干凈頁被替換,可以有效提高讀命中的命中率;若當(dāng)前主要訪問類型為寫訪問,則寫命中就顯得相當(dāng)重要,本實(shí)施例通過增加查找窗口的窗口大小置換出更多的干凈頁,從而盡可能保持臟頁不被置換,可以有效提高寫命中的命中率,通過對讀寫訪問模式的檢測,可以充分發(fā)揮出固態(tài)硬盤寫訪問比讀訪問快的特性,提高系統(tǒng)的I/O性能。本實(shí)施例的混合鏈表Ll中查找窗口的窗口大小W是動(dòng)態(tài)變化的,窗口大小變化的基本依據(jù)是緩沖鏈表當(dāng)前主要訪問類型,當(dāng)前主要訪問類型可以根據(jù)混合鏈表Ll和冷干凈鏈表L2中的數(shù)據(jù)頁分類進(jìn)行判斷。但是本實(shí)施例中對當(dāng)前主要訪問類型的判斷是通過克隆鏈表L3實(shí)現(xiàn)的,其實(shí)現(xiàn)方法如下步驟1)中建立用于保存被置換數(shù)據(jù)頁信息的克隆列表,設(shè)置用于判斷緩沖鏈表主要訪問類型的讀密集閾值和寫密集閾值,步驟3)中進(jìn)行置換時(shí)將被置換數(shù)據(jù)頁信息保存在克隆列表中,同時(shí)實(shí)時(shí)檢查克隆列表中的所有數(shù)據(jù)頁,如果克隆列表中冷干凈頁和熱干凈頁數(shù)量之和占克隆列表中數(shù)據(jù)頁總數(shù)的比例超過讀密集閾值,則判定緩沖鏈表當(dāng)前主要訪問類型為讀訪問;如果克隆列表中冷臟頁和熱臟頁數(shù)量之和占克隆列表中數(shù)據(jù)頁總數(shù)的比例超過寫密集閾值,則判定緩沖鏈表當(dāng)前主要訪問類型為寫訪問??偟脕碚f,發(fā)生置換時(shí)文件系統(tǒng)緩存的總空間大小等于混合鏈表Ll加上冷干凈鏈表L2的總頁面數(shù)據(jù)大小,但是不同的應(yīng)用訪問模式會(huì)產(chǎn)生不同的鏈表組織情況,使得混合鏈表Ll和冷干凈鏈表L2包含的頁面數(shù)發(fā)生變化。當(dāng)前主要訪問類型為寫訪問,即表現(xiàn)為寫密集時(shí),大量的寫訪問所占用空間會(huì)大于緩沖鏈表,寫密集讓冷頁面快速成為熱頁,觸發(fā)置換時(shí)一方面會(huì)使冷干凈鏈表L2中的冷干凈頁轉(zhuǎn)化為熱干凈頁或者冷臟頁進(jìn)入混合鏈表Li,另一方面一些冷干凈頁會(huì)被優(yōu)先置換掉,使得冷干凈鏈表L2完全為空,文件緩存的所有數(shù)據(jù)頁全部都存儲到混合鏈表Ll中。但是,當(dāng)訪問是讀訪問時(shí),冷干凈鏈表L2發(fā)生置換的頻率會(huì)比較高,為空的概率就會(huì)很小。 如8所示,本實(shí)施例中混合鏈表Ll的數(shù)據(jù)頁數(shù)量I Ll |和冷干凈鏈表L2的數(shù)據(jù)頁數(shù)量|L2|之和|L1| + |L2|最大為L,克隆鏈表L3的數(shù)據(jù)頁數(shù)量| L3 |最大也為L,其中L指文件系統(tǒng)緩沖的大小。混合鏈表Li、冷干凈鏈表L2、克隆鏈表L3都是采用最近最少使用算法(LRU算法)進(jìn)行實(shí)時(shí)排序,即最近訪問數(shù)據(jù)頁放在表頭(LRU算法的最近最多使用端), 最久沒有訪問的依次往表尾(LRU算法的最久最少使用端)。除了優(yōu)先選擇冷干凈頁進(jìn)行置換外,本實(shí)施例實(shí)現(xiàn)了查找窗口的窗口大小的動(dòng)態(tài)調(diào)整,既可以說像CFLRU法里那樣操作混合鏈表Li,而且窗口大小還可以根據(jù)緩沖鏈表的當(dāng)前主要訪問類型而發(fā)生動(dòng)態(tài)改變以取得最好的性能效果。為了實(shí)現(xiàn)對當(dāng)前主要訪問類型的判斷,本實(shí)施例借助克隆鏈表實(shí)現(xiàn),克隆鏈表L3 中僅僅包含混合鏈表Ll和冷干凈鏈表L2中被置換數(shù)據(jù)頁的元數(shù)據(jù)。每個(gè)元數(shù)據(jù)是一個(gè)結(jié)構(gòu)體,包括用于記錄數(shù)據(jù)頁是否發(fā)生寫訪問的頁面干凈狀態(tài)DIRTY、冷熱標(biāo)志C00L、數(shù)據(jù)頁寫入內(nèi)存前的邏輯地址、數(shù)據(jù)頁在緩沖鏈表中的前后指針prev和next等??紤]用于存儲緩沖鏈表的高速緩存(例如內(nèi)存)空間開銷寶貴,因此本實(shí)施例中只維持一個(gè)有限長度的克隆鏈表L3,且不直接保存整個(gè)被置換的數(shù)據(jù)頁,而且僅僅保存被置換數(shù)據(jù)頁的元數(shù)據(jù)??寺℃湵鞮3中一個(gè)數(shù)據(jù)頁的元數(shù)據(jù)只有20bytes的信息,然而每個(gè)數(shù)據(jù)頁的大小一般都為2KB 或4KB,因此通過數(shù)據(jù)頁的元數(shù)據(jù)維持克隆鏈表L3的開銷很小。若克隆列表中包含了大量的干凈頁(冷干凈頁和熱干凈頁),說明當(dāng)前主要訪問類型為讀訪問,若克隆列表中包含了大量的臟頁(冷臟頁和熱臟頁),說明當(dāng)前主要訪問類型為寫訪問。本實(shí)施例中讀密集閾值和寫密集閾值均取值為70%,當(dāng)克隆列表中冷干凈頁和熱干凈頁數(shù)量之和占克隆列表中數(shù)據(jù)頁總數(shù)的比例超過70%時(shí)則減少查找窗口的窗口大小,當(dāng)克隆列表中冷臟頁和熱臟頁數(shù)量之和占克隆列表中數(shù)據(jù)頁總數(shù)量的比例超過70%時(shí)增加查找窗口的窗口大小,若當(dāng)前訪問模式位于讀密集閾值和寫密集閾值之間的狀態(tài)時(shí),即對緩沖鏈表的訪問沒有表現(xiàn)出特別明顯的讀密集或者寫密集,則保持窗口大小不變。本實(shí)施例中,減少窗口大小后查找窗口的窗口大小W為W= (1-1/(μ+1)) .W。,增加窗口大小后查找窗口的窗口大小W為W = (1+1/( μ+1)) · Wtl,其中Wtl為查找窗口的初始窗口大小,μ為查找窗口的窗口大小W與緩沖鏈表總數(shù)據(jù)頁數(shù)量的比值。本實(shí)施例中,過兩個(gè)變量P、q來控制W的變化,取ρ = (l+l/(y+l)),q= (1-1/( μ+1)),每次調(diào)整查找窗口的窗口大小W前p,q都由當(dāng)前的窗口大小W決定。其中,ρ用于增量控制,每次增加窗口大小時(shí)令W = ρ · Wtl,變化前的Wtl越小則增量ρ越大,當(dāng)W越大增量越小從而保持W變化的平滑性;q用于減量控制,每次減小窗口大小時(shí)令W = q · Wtl,變化前的Wtl越大則減量q越大, 查找窗口的調(diào)整更加合理,有利于充分發(fā)揮固態(tài)硬盤的特性。以上僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例, 凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其特征在于其實(shí)施步驟如下1)在高速緩存中建立用于緩存數(shù)據(jù)頁的緩沖鏈表;2)將固態(tài)硬盤中讀取的數(shù)據(jù)頁緩存在緩沖鏈表中以供訪問,并實(shí)時(shí)根據(jù)數(shù)據(jù)頁的訪問狀態(tài)和寫訪問狀態(tài)將緩沖鏈表中數(shù)據(jù)頁分類為冷干凈頁、熱干凈頁、冷臟頁和熱臟頁;3)當(dāng)緩沖鏈表中沒有空閑空間時(shí),首先在緩沖鏈表中根據(jù)冷干凈頁、熱干凈頁、冷臟頁、熱臟頁的優(yōu)先順序查找一個(gè)數(shù)據(jù)頁作為待置換頁,然后將待置換頁與從固態(tài)硬盤讀取的新數(shù)據(jù)頁進(jìn)行置換。
2.根據(jù)權(quán)利要求1所述的面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其特征在于所述步驟2)中首先為緩沖鏈表中的數(shù)據(jù)頁建立用于標(biāo)記訪問狀態(tài)的冷熱標(biāo)志、設(shè)置冷熱標(biāo)志的初始值、冷閾值范圍和熱閾值范圍,當(dāng)數(shù)據(jù)頁首次緩存至緩沖鏈表中時(shí)將數(shù)據(jù)頁的冷熱標(biāo)志置為初始值,緩沖鏈表中的數(shù)據(jù)頁每發(fā)生一次訪問則冷熱標(biāo)志向熱閾值范圍變化、 每經(jīng)過一次待置換頁查找則冷熱標(biāo)志向冷閾值范圍變化,所述步驟2)中進(jìn)行數(shù)據(jù)頁分類時(shí),將冷熱標(biāo)志屬于冷閾值范圍內(nèi)且未發(fā)生寫訪問的數(shù)據(jù)頁分類為冷干凈頁、將冷熱標(biāo)志屬于冷閾值范圍內(nèi)且已發(fā)生寫訪問的數(shù)據(jù)頁分類為冷臟頁、將冷熱標(biāo)志屬于熱閾值范圍內(nèi)且未發(fā)生寫訪問的數(shù)據(jù)頁分類為熱干凈頁、將冷熱標(biāo)志屬于熱閾值范圍內(nèi)且已發(fā)生寫訪問的數(shù)據(jù)頁分類為熱臟頁。
3.根據(jù)權(quán)利要求2所述的面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其特征在于所述步驟2)中進(jìn)行數(shù)據(jù)頁分類時(shí),如果數(shù)據(jù)頁為冷干凈頁或者冷臟頁且被再次訪問,則修改該數(shù)據(jù)頁的冷熱標(biāo)志使其屬于熱閾值范圍內(nèi)。
4.根據(jù)權(quán)利要求1或2或3所述的面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其特征在于所述步驟1)中建立的緩沖鏈表包括用于緩存冷干凈頁的冷干凈鏈表和用于緩存熱干凈頁、冷臟頁、熱臟頁的混合鏈表;所述步驟2)中,冷干凈鏈表中的數(shù)據(jù)頁一旦發(fā)生訪問操作,則將其轉(zhuǎn)移至混合鏈表;所述步驟3)中,首先在冷干凈鏈表中查找待置換頁,如果冷干凈鏈表為空,則在混合鏈表中根據(jù)熱干凈頁、冷臟頁、熱臟頁的優(yōu)先順序查找待置換頁。
5.根據(jù)權(quán)利要求4所述的面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其特征在于所述步驟2)中冷干凈鏈表和混合鏈表中的數(shù)據(jù)頁采用最近最少使用算法進(jìn)行實(shí)時(shí)排序,將緩存至冷干凈鏈表的數(shù)據(jù)頁寫入冷干凈鏈表的表頭,冷干凈鏈表中的數(shù)據(jù)頁轉(zhuǎn)移至混合鏈表時(shí)寫入混合鏈表的表頭,在冷干凈鏈表中查找待置換頁時(shí),從冷干凈鏈表的表尾向表頭方向查找,在混合鏈表中查找待置換頁時(shí),從混合鏈表的表尾向表頭方向查找待置換頁。
6.根據(jù)權(quán)利要求5所述的面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其特征在于所述從混合鏈表的表尾向表頭方向查找待置換頁時(shí),首先在混合鏈表的表尾建立一個(gè)用于查找熱干凈頁的查找窗口,然后首先在查找窗口內(nèi)查找熱干凈頁,如果找到熱干凈頁則將該熱干凈頁作為待置換頁,如果在查找窗口內(nèi)沒有找到熱干凈頁,則首先從混合鏈表的表尾向表頭方向查找冷臟頁作為待置換頁,如果在混合鏈表中沒有找到冷臟頁,則將混合鏈表的表尾端的熱臟頁作為待置換頁。
7.根據(jù)權(quán)利要求6所述的面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其特征在于所述建立查找窗口后,實(shí)時(shí)根據(jù)數(shù)據(jù)緩存的當(dāng)前主要訪問類型調(diào)整查找窗口的窗口大小,如果當(dāng)前主要訪問類型為讀訪問,則減少混合鏈表中查找窗口的窗口大?。蝗绻?dāng)前主要訪問類型為寫訪問,則增加混合鏈表中查找窗口的窗口大小。
8.根據(jù)權(quán)利要求7所述的面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其特征在于所述步驟1)中建立用于保存被置換數(shù)據(jù)頁信息的克隆列表、設(shè)置用于判斷緩沖鏈表主要訪問類型的讀密集閾值和寫密集閾值;所述步驟3)中進(jìn)行置換時(shí)將被置換數(shù)據(jù)頁信息保存在克隆列表中,同時(shí)實(shí)時(shí)檢查克隆列表中的所有數(shù)據(jù)頁,如果克隆列表中冷干凈頁和熱干凈頁數(shù)量之和占克隆列表中數(shù)據(jù)頁總數(shù)的比例超過讀密集閾值,則判定緩沖鏈表當(dāng)前主要訪問類型為讀訪問;如果克隆列表中冷臟頁和熱臟頁數(shù)量之和占克隆列表中數(shù)據(jù)頁總數(shù)的比例超過寫密集閾值,則判定緩沖鏈表當(dāng)前主要訪問類型為寫訪問。
9.根據(jù)權(quán)利要求7或8所述的面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其特征在于 所述減少窗口大小后查找窗口的窗口大小W為W= (1-1/(μ+1)) ^wtl,所述增加窗口大小后查找窗口的窗口大小W為W= (1+1/( μ+1)) · Wtl,其中Wtl為查找窗口的初始窗口大小, μ為查找窗口的窗口大小w與緩沖鏈表總數(shù)據(jù)頁數(shù)量的比值。
全文摘要
本發(fā)明公開了一種面向固態(tài)硬盤文件系統(tǒng)的數(shù)據(jù)頁緩存方法,其實(shí)施步驟如下1)在高速緩存中建立用于緩存數(shù)據(jù)頁的緩沖鏈表;2)將固態(tài)硬盤中讀取的數(shù)據(jù)頁緩存在緩沖鏈表中以供訪問,并實(shí)時(shí)根據(jù)數(shù)據(jù)頁的訪問狀態(tài)和寫訪問狀態(tài)將緩沖鏈表中數(shù)據(jù)頁分類為冷干凈頁、熱干凈頁、冷臟頁和熱臟頁;3)當(dāng)緩沖鏈表中沒有空閑空間時(shí),首先在緩沖鏈表中根據(jù)冷干凈頁、熱干凈頁、冷臟頁、熱臟頁的優(yōu)先順序查找一個(gè)數(shù)據(jù)頁作為待置換頁,然后將待置換頁與從固態(tài)硬盤讀取的新數(shù)據(jù)頁進(jìn)行置換。本發(fā)明可充分利用固態(tài)硬盤特性、有效緩解外部存儲的性能瓶頸、提高系統(tǒng)存儲處理性能,具有I/O性能好、緩存頁置換代價(jià)低、開銷小、命中率高的優(yōu)點(diǎn)。
文檔編號G06F17/30GK102156753SQ20111011026
公開日2011年8月17日 申請日期2011年4月29日 優(yōu)先權(quán)日2011年4月29日
發(fā)明者吳慶波, 孔金珠, 戴華東, 朱浩, 秦瑩, 顏躍進(jìn) 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)