非易失性存儲(chǔ)設(shè)備的緩存管理方法及裝置制造方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例公開(kāi)了一種非易失性存儲(chǔ)設(shè)備的緩存管理方法及裝置,涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,避免臟頁(yè)頻繁替換,提高存儲(chǔ)設(shè)備工作壽命,降低實(shí)現(xiàn)成本,提高執(zhí)行效率。本發(fā)明實(shí)施例包括:判斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系;當(dāng)所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和大于或者等于所述緩存容量時(shí),判斷所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息是否在干凈頁(yè)歷史列表或者在臟頁(yè)歷史列表中;當(dāng)確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在干凈頁(yè)歷史列表中時(shí),將干凈子池容量閾值增加一個(gè)第一調(diào)整值;當(dāng)所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在臟頁(yè)歷史列表中時(shí),將所述干凈子池容量閾值減少一個(gè)第二調(diào)整值。本發(fā)明實(shí)施例主要應(yīng)用于非易失性存儲(chǔ)設(shè)備的緩存管理過(guò)程中。
【專(zhuān)利說(shuō)明】非易失性存儲(chǔ)設(shè)備的緩存管理方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其涉及一種非易失性存儲(chǔ)設(shè)備的緩存管理方法及裝置。
【背景技術(shù)】
[0002]隨著半導(dǎo)體技術(shù)的高速發(fā)展,使用磁性介質(zhì)記錄信息的存儲(chǔ)設(shè)備(如硬盤(pán)等)的訪問(wèn)帶寬的增長(zhǎng)已遠(yuǎn)遠(yuǎn)跟不上處理器處理速度的增長(zhǎng)。同時(shí),基于半導(dǎo)體技術(shù)的各種非易失性存儲(chǔ)技術(shù),如閃存等存儲(chǔ)設(shè)備高速發(fā)展,容量不斷増大,成本不斷降低,性?xún)r(jià)比不斷提高。在這樣的發(fā)展趨勢(shì)下,基于半導(dǎo)體的非易失性存儲(chǔ)設(shè)備正逐漸取代基于磁性介質(zhì)的傳統(tǒng)存儲(chǔ)設(shè)備,成為主要存儲(chǔ)設(shè)備。目前的非易失性存儲(chǔ)設(shè)備都具有讀寫(xiě)不対稱(chēng)的特性,實(shí)際上,使用非易失性存儲(chǔ)設(shè)備時(shí),讀操作的延時(shí)遠(yuǎn)小于寫(xiě)操作的延時(shí)。
[0003]雖然非易失性存儲(chǔ)設(shè)備的訪問(wèn)時(shí)延和實(shí)際帶寬均優(yōu)于傳統(tǒng)存儲(chǔ)設(shè)備,但仍比不上內(nèi)存,更比不上處理器的片內(nèi)緩存。因此,在處理器與非易失性存儲(chǔ)設(shè)備之間,需要有中間的存儲(chǔ)層次(主存或處理器片內(nèi)緩存)作為緩存來(lái)提升非易失性存儲(chǔ)設(shè)備的實(shí)際訪問(wèn)帶寬。
[0004]針對(duì)于傳統(tǒng)存儲(chǔ)設(shè)備的緩存設(shè)計(jì)方案都圍繞著提升緩存命中率的核心目標(biāo)而優(yōu)化,直接應(yīng)用到采用非易失性存儲(chǔ)設(shè)備的存儲(chǔ)架構(gòu)中,會(huì)造成因臟頁(yè)的頻繁替換而導(dǎo)致讀寫(xiě)平均時(shí)延増大,設(shè)備工作壽命降低等問(wèn)題。而將復(fù)雜的代價(jià)模型應(yīng)用到采用非易失性存儲(chǔ)設(shè)備的存儲(chǔ)架構(gòu),實(shí)現(xiàn)成本高,執(zhí)行效率低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的實(shí)施例提供一種非易失性存儲(chǔ)設(shè)備的緩存管理方法及裝置,避免臟頁(yè)頻繁替換,提高存儲(chǔ)設(shè)備工作壽命,降低實(shí)現(xiàn)成本,提高執(zhí)行效率。
[0006]本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0007]—種非易失性存儲(chǔ)設(shè)備的緩存管理方法,應(yīng)用于基于非易失性存儲(chǔ)設(shè)備的緩存系統(tǒng),所述緩存系統(tǒng)包括:緩存、非易失性存儲(chǔ)設(shè)備以及緩存管理裝置;所述緩存用于保存從所述非易失性存儲(chǔ)設(shè)備中讀取的頁(yè)面數(shù)據(jù)以及準(zhǔn)備寫(xiě)入所述非易失性存儲(chǔ)設(shè)備中的頁(yè)面數(shù)據(jù),包括干凈頁(yè)子池和臟頁(yè)子池;所述非易失性存儲(chǔ)設(shè)備用于保存所有頁(yè)面數(shù)據(jù);所述緩存管理裝置使用以下信息管理所述緩存,所述信息包括干凈子池容量閾值、干凈頁(yè)子池的頁(yè)面信息,干凈頁(yè)歷史列表,臟頁(yè)子池的頁(yè)面信息和臟頁(yè)歷史列表,其中,所述頁(yè)面信息包括子池容量,所述干凈頁(yè)歷史列表用于存儲(chǔ)最近被替換出緩存的歷史干凈頁(yè)的標(biāo)識(shí)信息,所述臟頁(yè)歷史列表用于存儲(chǔ)最近被替換出緩存的歷史臟頁(yè)的標(biāo)識(shí)信息;
[0008]該方法包括:
[0009]當(dāng)確定待訪問(wèn)頁(yè)面不在干凈頁(yè)子池,并且也不在臟頁(yè)子池時(shí),判斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系;
[0010]當(dāng)所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和大于或者等于所述緩存容量吋,判斷所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息是否在干凈頁(yè)歷史列表或者在臟頁(yè)歷史列表中;[0011]當(dāng)確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在干凈頁(yè)歷史列表中吋,將干凈子池容量閾值增加ー個(gè)第一調(diào)整值;
[0012]當(dāng)所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在臟頁(yè)歷史列表中時(shí),將所述干凈子池容量閾值減少ー個(gè)第二調(diào)整值。
[0013]一種非易失性存儲(chǔ)設(shè)備的緩存管理裝置,應(yīng)用于基于非易失性存儲(chǔ)設(shè)備的緩存系統(tǒng),所述緩存系統(tǒng)包括:緩存、非易失性存儲(chǔ)設(shè)備以及緩存管理裝置;所述緩存用于保存從所述非易失性存儲(chǔ)設(shè)備中讀取的頁(yè)面數(shù)據(jù)以及準(zhǔn)備寫(xiě)入所述非易失性存儲(chǔ)設(shè)備中的頁(yè)面數(shù)據(jù),包括干凈頁(yè)子池和臟頁(yè)子池;所述非易失性存儲(chǔ)設(shè)備用于保存所有頁(yè)面數(shù)據(jù);所述緩存管理裝置使用以下信息管理所述緩存,所述信息包括干凈子池容量閾值、干凈頁(yè)子池的頁(yè)面信息,干凈頁(yè)歷史列表,臟頁(yè)子池的頁(yè)面信息和臟頁(yè)歷史列表,其中,所述頁(yè)面信息包括子池容量,所述干凈頁(yè)歷史列表用于存儲(chǔ)最近被替換出緩存的歷史干凈頁(yè)的標(biāo)識(shí)信息,所述臟頁(yè)歷史列表用于存儲(chǔ)最近被替換出緩存的歷史臟頁(yè)的標(biāo)識(shí)信息;
[0014]該裝置包括:
[0015]判斷単元,用于在確定待訪問(wèn)頁(yè)面不在干凈頁(yè)子池,并且也不在臟頁(yè)子池時(shí),判斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系;
[0016]所述判斷単元,還用于在確定所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和大于或者等于所述緩存容量時(shí),判斷所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息是否在干凈頁(yè)歷史列表或者在臟頁(yè)歷史列表中;
[0017]調(diào)整單元,用于在所述判斷單元確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在干凈頁(yè)歷史列表中吋,將干凈子池容量閾值增加ー個(gè)第一調(diào)整值;
[0018]所述調(diào)整単元,還用于在所述判斷單元確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在臟頁(yè)歷史列表中時(shí),將所述干凈子池容量閾值減少ー個(gè)第二調(diào)整值。
[0019]本發(fā)明實(shí)施例提供的一種非易失性存儲(chǔ)設(shè)備的緩存調(diào)整方法及裝置,通過(guò)在干凈子池容量超過(guò)容量閾值吋,依據(jù)寫(xiě)操作延時(shí)和讀操作延時(shí)對(duì)干凈子池的容量進(jìn)行調(diào)整,實(shí)現(xiàn)了對(duì)干凈子池和臟頁(yè)子池容量的控制。由于非易失性存儲(chǔ)設(shè)備的讀寫(xiě)不對(duì)稱(chēng)特性,使得在對(duì)干凈子池和臟頁(yè)子池容量的控制時(shí),可以?xún)?yōu)先加大臟頁(yè)子池的容量,從而避免臟頁(yè)頻繁替換,提高存儲(chǔ)設(shè)備工作壽命。并且,調(diào)整值的計(jì)算方法簡(jiǎn)單,相關(guān)參數(shù)獲取容易,降低實(shí)現(xiàn)成本,提聞執(zhí)行效率。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0020]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0021]圖1為本發(fā)明實(shí)施例1中的一種基于非易失性存儲(chǔ)設(shè)備的緩存系統(tǒng)的組成框圖;
[0022]圖2為本發(fā)明實(shí)施例1中的一種基于非易失性存儲(chǔ)設(shè)備的緩存調(diào)整方法流程圖;
[0023]圖3為本發(fā)明實(shí)施例2中的一種基于非易失性存儲(chǔ)設(shè)備的緩存調(diào)整方法流程圖;
[0024]圖4為本發(fā)明實(shí)施例2中的另ー種基于非易失性存儲(chǔ)設(shè)備的緩存調(diào)整方法流程圖;[0025]圖5為本發(fā)明實(shí)施例2中的另一種基于非易失性存儲(chǔ)設(shè)備的緩存調(diào)整方法流程 圖;
[0026]圖6為本發(fā)明實(shí)施例3中的一種基于非易失性存儲(chǔ)設(shè)備的緩存調(diào)整裝置的組成框 圖;
[0027]圖7為本發(fā)明實(shí)施例3中的另一種基于非易失性存儲(chǔ)設(shè)備的緩存調(diào)整裝置的組成 框圖;
[0028]圖8為本發(fā)明實(shí)施例3中的另一種基于非易失性存儲(chǔ)設(shè)備的緩存調(diào)整裝置的組成 框圖;
[0029]圖9為本發(fā)明實(shí)施例3中的另一種基于非易失性存儲(chǔ)設(shè)備的緩存調(diào)整裝置的組成 框圖;
[0030]圖10為本發(fā)明實(shí)施例3中的另一種基于非易失性存儲(chǔ)設(shè)備的緩存調(diào)整裝置的組 成框圖;
[0031]圖11為本發(fā)明實(shí)施例3中的另一種基于非易失性存儲(chǔ)設(shè)備的緩存調(diào)整裝置的組 成框圖。
【具體實(shí)施方式】
[0032]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā) 明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施 例,都屬于本發(fā)明保護(hù)的范圍。
[0033]實(shí)施例1
[0034]本發(fā)明實(shí)施例提供了一種非易失性存儲(chǔ)設(shè)備的緩存管理方法,可以應(yīng)用在基于非 易失性存儲(chǔ)設(shè)備的緩存系統(tǒng),如圖1所示,所述緩存系統(tǒng)包括:緩存、非易失性存儲(chǔ)設(shè)備以 及緩存管理裝置。
[0035]所述緩存,可以用于保存從所述非易失性存儲(chǔ)設(shè)備中讀取的頁(yè)面數(shù)據(jù)以及準(zhǔn)備寫(xiě) 入所述非易失性存儲(chǔ)設(shè)備中的頁(yè)面數(shù)據(jù),包括干凈頁(yè)子池和臟頁(yè)子池。所述干凈頁(yè)子池為 緩存中未被修改的頁(yè)面的集合,所述臟頁(yè)子池為緩存中已被修改的頁(yè)面的集合。所述干凈 頁(yè)子池和臟頁(yè)子池可以由鏈表linked list或數(shù)組array等數(shù)據(jù)結(jié)構(gòu)中的一種或多種的組 合來(lái)實(shí)現(xiàn)。
[0036]所述非易失性存儲(chǔ)設(shè)備,例如,閃存,PCM (Phase Change Memory,相變化存儲(chǔ)器) 等存儲(chǔ)設(shè)備,可以用于保存所有頁(yè)面數(shù)據(jù)。
[0037]所述緩存管理裝置,可以使用以下信息管理所述緩存,所述信息包括干凈子池容 量閾值、干凈頁(yè)子池的頁(yè)面信息,干凈頁(yè)歷史列表,臟頁(yè)子池的頁(yè)面信息和臟頁(yè)歷史列表, 其中,所述頁(yè)面信息包括子池容量,所述干凈頁(yè)歷史列表用于存儲(chǔ)最近被替換出緩存的歷 史干凈頁(yè)的標(biāo)識(shí)信息,所述臟頁(yè)歷史列表用于存儲(chǔ)最近被替換出緩存的歷史臟頁(yè)的標(biāo)識(shí)信 息。為實(shí)現(xiàn)對(duì)干凈頁(yè)和臟頁(yè)的獨(dú)立管理,可以將緩存管理裝置中設(shè)置干凈頁(yè)管理單元和臟 頁(yè)管理單元。其中,在本發(fā)明實(shí)施例中,列表這一名稱(chēng)是對(duì)應(yīng)于本發(fā)明實(shí)施例所處【技術(shù)領(lǐng)域】 內(nèi)協(xié)議和標(biāo)準(zhǔn)中l(wèi)ist —詞的中文解釋。列表list的實(shí)現(xiàn)形式是多樣的,可以由linkedlist 或者array等數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn),本發(fā)明實(shí)施例對(duì)此不進(jìn)行限制。[0038]進(jìn)ー步的,在實(shí)現(xiàn)基于非易失性存儲(chǔ)設(shè)備的緩存系統(tǒng)的過(guò)程中,需要進(jìn)行預(yù)先設(shè)置,以保證該緩存系統(tǒng)的正常運(yùn)行,這些設(shè)置具體包括:
[0039]干凈頁(yè)子池與臟頁(yè)子池的容量之和不超過(guò)緩存的物理容量。干凈頁(yè)子池的容量與干凈頁(yè)歷史列表的容量之和不超過(guò)緩存的物理容量。此外,干凈頁(yè)子池的頁(yè)面信息,干凈頁(yè)歷史列表,臟頁(yè)子池的頁(yè)面信息和臟頁(yè)歷史列表四者的容量之和不超過(guò)緩存的物理容量的2倍。干凈頁(yè)歷史列表和臟頁(yè)歷史列表均為L(zhǎng)RlKLeast Recently Used,最近最少使用)列表。干凈頁(yè)子池和臟頁(yè)子池使用獨(dú)立的頁(yè)面替換策略,如LRU,LFU (least frequentlyused,最不經(jīng)常使用頁(yè)置換算法)等,其頁(yè)面信息的格式和維護(hù)與其選擇的頁(yè)面替換策略相匹配。當(dāng)然,上述設(shè)置僅僅是實(shí)現(xiàn)基于非易失性存儲(chǔ)設(shè)備的緩存系統(tǒng)的一種設(shè)置方法,具體的設(shè)置方法可以根據(jù)實(shí)際情況進(jìn)行選擇,并不局限于此。
[0040]在上述基于非易失性存儲(chǔ)設(shè)備的緩存系統(tǒng)中,本發(fā)明實(shí)施例提供的一種非易失性存儲(chǔ)設(shè)備的緩存管理方法,如圖2所示,具體包括:
[0041]101、當(dāng)確定待訪問(wèn)頁(yè)面不在干凈頁(yè)子池,并且也不在臟頁(yè)子池時(shí),緩存管理裝置判斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系。
[0042]102、當(dāng)所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和大于或者等于所述緩存容量吋,所述緩存管理裝置判斷所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息是否在干凈頁(yè)歷史列表或者在臟頁(yè)歷史列表中。
[0043]其中,所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息可以設(shè)置為I D編號(hào)等具有標(biāo)識(shí)功能的信息,本發(fā)明實(shí)施例在此不 列舉。
[0044]103、當(dāng)確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在干凈頁(yè)歷史列表中時(shí),所述緩存管理裝置將干凈子池容量閾值增加ー個(gè)第一調(diào)整值。
[0045]其中,所述第一調(diào)整值可以設(shè)置為讀操作延時(shí)除以寫(xiě)操作延時(shí)得到的商值與I之間的較大值。并且,所述干凈頁(yè)子池容量閾值經(jīng)過(guò)調(diào)整后不能超過(guò)緩存容量。
[0046]其中,讀操作延時(shí)和寫(xiě)操作延時(shí)針對(duì)于同一個(gè)非易失性存儲(chǔ)設(shè)備是固定不變的,而對(duì)于不同的非易失性存儲(chǔ)設(shè)備可能存在不同。
[0047]104、當(dāng)所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在臟頁(yè)歷史列表中時(shí),所述緩存管理裝置將所述干凈子池容量閾值減少ー個(gè)第二調(diào)整值。
[0048]其中,所述第二調(diào)整值可以設(shè)置為寫(xiě)操作延時(shí)除以讀操作延時(shí)得到的商值與I之間的較大值。并且,所述臟頁(yè)子池容量閾值經(jīng)過(guò)調(diào)整后不能超過(guò)緩存容量。
[0049]本發(fā)明實(shí)施例提供的一種非易失性存儲(chǔ)設(shè)備的緩存調(diào)整方法,通過(guò)在干凈子池容量超過(guò)容量閾值時(shí),依據(jù)寫(xiě)操作延時(shí)和讀操作延時(shí)對(duì)干凈子池的容量進(jìn)行調(diào)整,實(shí)現(xiàn)了對(duì)干凈子池和臟頁(yè)子池容量的控制。由于非易失性存儲(chǔ)設(shè)備的讀寫(xiě)不對(duì)稱(chēng)特性,使得在對(duì)干凈子池和臟頁(yè)子池容量的控制時(shí),可以?xún)?yōu)先加大臟頁(yè)子池的容量,從而避免臟頁(yè)頻繁替換,提高存儲(chǔ)設(shè)備工作壽命。并且,調(diào)整值的計(jì)算方法簡(jiǎn)單,相關(guān)參數(shù)獲取容易,降低實(shí)現(xiàn)成本,提聞執(zhí)行效率。
[0050]實(shí)施例2
[0051]本發(fā)明實(shí)施例提供了一種非易失性存儲(chǔ)設(shè)備的緩存調(diào)整方法,也可以應(yīng)用于如圖1所示的基于非易失性存儲(chǔ)設(shè)備的緩存系統(tǒng)中,并且對(duì)該緩存系統(tǒng)的設(shè)置方法也可以與實(shí)施例I中相同,如圖2所示,該方法具體包括:[0052]201、當(dāng)確定待訪問(wèn)頁(yè)面不在干凈頁(yè)子池,并且也不在臟頁(yè)子池時(shí),緩存管理裝置 判斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系。當(dāng)所述干凈頁(yè) 子池與所述臟頁(yè)子池容量之和大于或者等于所述緩存容量時(shí),執(zhí)行步驟202 ;當(dāng)所述干凈 頁(yè)子池與所述臟頁(yè)子池容量之和小于所述緩存容量時(shí),則執(zhí)行步驟209。
[0053]202、所述緩存管理裝置從所述干凈頁(yè)子池和臟頁(yè)子池中選取一個(gè)用于選擇待替 換頁(yè)面的子池。
[0054]其中,所述步驟202的實(shí)現(xiàn)方法具體如下,如圖3所示,包括:
[0055]2011、所述緩存管理裝置判斷所述干凈頁(yè)子池容量與所述干凈子池容量閾值之間 的大小關(guān)系。當(dāng)所述干凈頁(yè)子池容量大于所述干凈子池容量閾值時(shí),則執(zhí)行步驟2022 ;當(dāng) 所述干凈頁(yè)子池容量小于所述干凈子池容量閾值時(shí),則執(zhí)行步驟2023 ;當(dāng)所述干凈頁(yè)子池 容量等于所述干凈子池容量閾值時(shí),則執(zhí)行步驟2024。
[0056]2022、所述緩存管理裝置選取干凈頁(yè)子池作為用于選擇待替換頁(yè)面的子池。
[0057]2023、所述緩存管理裝置選取臟頁(yè)子池作為用于選擇待替換頁(yè)面的子池。
[0058]2024、所述緩存管理裝置判斷如下條件是否成立,所述條件為所述待訪問(wèn)頁(yè)面在 所述干凈頁(yè)歷史列表中并且臟頁(yè)子池容量大于O。若所述條件成立,則執(zhí)行所述步驟2022 ; 否則執(zhí)行所述步驟2023。
[0059]203、根據(jù)選取到的子池對(duì)應(yīng)的頁(yè)面替換策略,所述緩存管理裝置從所述選取到的 子池中選取一個(gè)待替換頁(yè)面。
[0060]其中,干凈頁(yè)子池和臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略可以為L(zhǎng)RU、ACR等,并且干凈 頁(yè)子池和臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略可以設(shè)置為相同的,也可以設(shè)置為不同的,本發(fā)明 在此不進(jìn)行限制。
[0061]需要說(shuō)明的是,根據(jù)設(shè)置好的頁(yè)面替換策略選擇待替換頁(yè)面的實(shí)現(xiàn)方法為本領(lǐng)域 技術(shù)人員公知的技術(shù),本發(fā)明實(shí)施例在此不進(jìn)行限制。
[0062]204、所述緩存管理裝置維護(hù)所述選取到的子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息。
[0063]需要說(shuō)明的是,所述頁(yè)面替換策略當(dāng)前所需的信息根據(jù)頁(yè)面替換策略的不同而不 同。維護(hù)頁(yè)面替換策略當(dāng)前所需的信息為本領(lǐng)域技術(shù)人員公知的技術(shù),本發(fā)明實(shí)施例在此 不詳細(xì)描述。
[0064]205、所述緩存管理裝置將所述待替換頁(yè)面的標(biāo)識(shí)信息遷移到所述選取到的子池 對(duì)應(yīng)的歷史列表的最近使用位置。
[0065]其中,所述步驟205具體實(shí)現(xiàn)方法如下,包括:
[0066]當(dāng)選取到的子池為干凈頁(yè)子池時(shí),所述緩存管理裝置將所述待替換頁(yè)面的標(biāo)識(shí)信 息遷移到干凈頁(yè)歷史列表的最近使用位置。
[0067]當(dāng)選取到的子池為臟頁(yè)子池時(shí),所述緩存管理裝置將所述待替換頁(yè)面的標(biāo)識(shí)信息 遷移到臟頁(yè)歷史列表的最近使用位置。
[0068]206、所述緩存管理裝置判斷所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息是否在干凈頁(yè)歷史列表 或者在臟頁(yè)歷史列表中。當(dāng)確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在干凈頁(yè)歷史列表中時(shí),則執(zhí) 行步驟207 ;當(dāng)所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在臟頁(yè)歷史列表中時(shí),則執(zhí)行步驟208。
[0069]207、所述緩存管理裝置將干凈子池容量閾值增加一個(gè)第一調(diào)整值,所述第一調(diào)整值為讀操作延時(shí)除以寫(xiě)操作延時(shí)得到的商值與I之間的較大值,并執(zhí)行步驟210。
[0070]208、所述緩存管理裝置將所述干凈子池容量閾值減少ー個(gè)第二調(diào)整值,所述第二調(diào)整值為寫(xiě)操作延時(shí)除以讀操作延時(shí)得到的商值與I之間的較大值,并執(zhí)行步驟210。
[0071]209、所述緩存管理裝置從所述非易失性存儲(chǔ)設(shè)備中讀取所述待訪問(wèn)頁(yè)面,并執(zhí)行步驟210。
[0072]210、所述緩存管理裝置判斷當(dāng)前請(qǐng)求所述待訪問(wèn)頁(yè)面的操作對(duì)應(yīng)的操作類(lèi)型。當(dāng)確定所述操作類(lèi)型為讀操作吋,則執(zhí)行步驟211 ;當(dāng)確定所述操作類(lèi)型為寫(xiě)操作吋,則執(zhí)行步驟215。
[0073]211、所述緩存管理裝置將所述待訪問(wèn)頁(yè)面讀取到所述干凈頁(yè)子池中,并維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息。
[0074]212、所述緩存管理裝置判斷干凈頁(yè)子池容量與干凈頁(yè)歷史列表容量之和是否大于所述緩存容量。若確定所述干凈頁(yè)子池容量與所述干凈頁(yè)歷史列表容量之和大于所述緩存容量,則執(zhí)行步驟213 ;若確定所述干凈頁(yè)子池容量與所述干凈頁(yè)歷史列表容量之和小于或者等于所述緩存容量,則執(zhí)行步驟214。
[0075]213、所述緩存管理裝置移除干凈頁(yè)歷史列表的最近最少使用位置的頁(yè)面標(biāo)識(shí)信息,并結(jié)束緩存管理流程。
[0076]214、所述緩存管理裝置保持干凈頁(yè)歷史列表不變,并結(jié)束緩存管理流程。
[0077]215、所述緩存管理裝置將所述待訪問(wèn)頁(yè)面讀取到所述臟頁(yè)子池中,并維護(hù)所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息。
[0078]216、所述緩存管理裝置判斷干凈頁(yè)子池容量、臟頁(yè)子池容量、干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和是否大于所述緩存容量的兩倍。若確定干凈頁(yè)子池容量、臟頁(yè)子池容量、干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和大于所述緩存容量的兩倍,則執(zhí)行步驟217 ;若確定干凈頁(yè)子池容量、臟頁(yè)子池容量、干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和小于或者等于所述緩存容量的兩倍,則執(zhí)行步驟218。
[0079]217、所述緩存管理裝置移除臟頁(yè)歷史列表的最近最少使用位置的頁(yè)面標(biāo)識(shí)信息,并結(jié)束緩存管理流程。
[0080]218、所述緩存管理裝置保持臟頁(yè)歷史列表不變,并結(jié)束緩存管理流程。
[0081]在本實(shí)施例中,通過(guò)在干凈子池容量超過(guò)容量閾值時(shí),依據(jù)寫(xiě)操作延時(shí)和讀操作延時(shí)對(duì)干凈子池的容量進(jìn)行調(diào)整,實(shí)現(xiàn)了對(duì)干凈子池和臟頁(yè)子池容量的控制。由于非易失性存儲(chǔ)設(shè)備的讀寫(xiě)不對(duì)稱(chēng)特性,使得在對(duì)干凈子池和臟頁(yè)子池容量的控制時(shí),可以?xún)?yōu)先加大臟頁(yè)子池的容量,從而避免臟頁(yè)頻繁替換,提高存儲(chǔ)設(shè)備工作壽命。
[0082]并且,只需要根據(jù)寫(xiě)操作延時(shí)和讀操作延時(shí)對(duì)干凈子池的容量進(jìn)行調(diào)整,調(diào)整值的計(jì)算方法簡(jiǎn)單,相關(guān)參數(shù)獲取容易,降低實(shí)現(xiàn)成本,提高執(zhí)行效率。
[0083]而且,對(duì)歷史列表的容量大小也進(jìn)行控制,降低了緩存管理裝置需要管理的信息,保證緩存管理裝置工作性能。
[0084]需要說(shuō)明的是,在處理器請(qǐng)求訪問(wèn)頁(yè)面的過(guò)程可分為兩個(gè)部分流程,其中ー個(gè)部分流程為當(dāng)待訪問(wèn)頁(yè)面在緩存中時(shí),直接從緩存中讀取待訪問(wèn)頁(yè)面;另一部分流程為當(dāng)待訪問(wèn)頁(yè)面不在緩存中吋,需要進(jìn)行頁(yè)面缺失流程。上述步驟201至步驟218屬于頁(yè)面缺失流程。[0085]進(jìn)一步的,處理器請(qǐng)求訪問(wèn)頁(yè)面的過(guò)程對(duì)應(yīng)的緩存管理流程如圖4所示,具體包 括:
[0086]301、所述緩存管理裝置判斷所述待訪問(wèn)頁(yè)面是否在干凈頁(yè)子池中。若確定所述待 訪問(wèn)頁(yè)面在干凈頁(yè)子池中,則執(zhí)行步驟302 ;否則執(zhí)行步驟305。
[0087]302、所述緩存管理裝置判斷當(dāng)前請(qǐng)求所述待訪問(wèn)頁(yè)面的操作對(duì)應(yīng)的操作類(lèi)型。當(dāng) 確定所述操作類(lèi)型為讀操作時(shí),則執(zhí)行步驟303 ;當(dāng)確定所述操作類(lèi)型為寫(xiě)操作時(shí),則執(zhí)行 步驟304。
[0088]303、所述緩存管理裝置維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信
肩、O
[0089]304、所述緩存管理裝置將所述待訪問(wèn)頁(yè)面遷移到臟頁(yè)子池中,并維護(hù)所述干凈頁(yè) 子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息以及所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所 需的信息,并結(jié)束緩存管理流程。
[0090]305、所述緩存管理裝置判斷所述待訪問(wèn)頁(yè)面是否在臟頁(yè)子池中。若確定所述待訪 問(wèn)頁(yè)面在臟頁(yè)子池中,則執(zhí)行步驟306 ;否則執(zhí)行步驟307。
[0091]306、所述緩存管理裝置維護(hù)所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息, 并結(jié)束緩存管理流程。
[0092]307、進(jìn)入待訪問(wèn)頁(yè)面缺失流程,即所述步驟201至步驟218,以使得所述緩存管理 裝置將所述待訪問(wèn)頁(yè)面讀取到緩存中,并結(jié)束緩存管理流程。
[0093]在本實(shí)施例中,步驟301至步驟307實(shí)現(xiàn)了處理器請(qǐng)求訪問(wèn)頁(yè)面的過(guò)程對(duì)應(yīng)的緩
存管理流程。
[0094]本發(fā)明實(shí)施例提供的一種非易失性存儲(chǔ)設(shè)備的緩存管理方法,通過(guò)在干凈子池容 量超過(guò)容量閾值時(shí),依據(jù)寫(xiě)操作延時(shí)和讀操作延時(shí)對(duì)干凈子池的容量進(jìn)行調(diào)整,實(shí)現(xiàn)了對(duì) 干凈子池和臟頁(yè)子池容量的控制。由于非易失性存儲(chǔ)設(shè)備的讀寫(xiě)不對(duì)稱(chēng)特性,使得在對(duì)干 凈子池和臟頁(yè)子池容量的控制時(shí),可以?xún)?yōu)先加大臟頁(yè)子池的容量,從而避免臟頁(yè)頻繁替換, 提高存儲(chǔ)設(shè)備工作壽命。
[0095]并且,只需要根據(jù)寫(xiě)操作延時(shí)和讀操作延時(shí)對(duì)干凈子池的容量進(jìn)行調(diào)整,調(diào)整值 的計(jì)算方法簡(jiǎn)單,相關(guān)參數(shù)獲取容易,降低實(shí)現(xiàn)成本,提高執(zhí)行效率。
[0096]而且,對(duì)歷史列表的容量大小也進(jìn)行控制,降低了緩存管理裝置需要管理的信息, 保證緩存管理裝置工作性能。
[0097]實(shí)施例3
[0098]本發(fā)明實(shí)施例提供了一種非易失性存儲(chǔ)設(shè)備的緩存管理裝置,如圖6所示,該裝 置包括:判斷單元41、調(diào)整單元42。
[0099]判斷單元41,用于在確定待訪問(wèn)頁(yè)面不在干凈頁(yè)子池,并且也不在臟頁(yè)子池時(shí),判 斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系。
[0100]所述判斷單元41,還用于在確定所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和大于或 者等于所述緩存容量時(shí),判斷所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息是否在干凈頁(yè)歷史列表或者在臟 頁(yè)歷史列表中。
[0101]調(diào)整單元42,用于在所述判斷單元41確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在干凈頁(yè) 歷史列表中時(shí),將干凈子池容量閾值增加一個(gè)第一調(diào)整值,所述第一調(diào)整值為讀操作延時(shí)除以寫(xiě)操作延時(shí)得到的商值與I之間的較大值。
[0102]所述調(diào)整単元42,還用于在所述判斷単元41確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在臟頁(yè)歷史列表中時(shí),將所述干凈子池容量閾值減少ー個(gè)第二調(diào)整值,所述第二調(diào)整值為寫(xiě)操作延時(shí)除以讀操作延時(shí)得到的商值與I之間的較大值。
[0103]可選的是,如圖7所示,該裝置還包括:選取單元43、維護(hù)單元44、遷移單元45。
[0104]選取單元43,用于在所述判斷単元41確定所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和大于或者等于所述緩存容量,從所述干凈頁(yè)子池和臟頁(yè)子池中選取ー個(gè)用于選擇待替換頁(yè)面的子池;
[0105]所述選取単元43,用于根據(jù)選取到的子池對(duì)應(yīng)的頁(yè)面替換策略,從所述選取到的子池中選取ー個(gè)待替換頁(yè)面;
[0106]維護(hù)單元44,用于維護(hù)所述選取単元44選取到的子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息;
[0107]遷移單元45,用于將所述待替換頁(yè)面的標(biāo)識(shí)信息遷移到所述選取到的子池對(duì)應(yīng)的歷史列表的最近使用位置。
[0108]可選的是,如圖8所示,所述選取単元43還包括:判斷模塊431、子池選取模塊432。
[0109]判斷模塊431,用于判斷所述干凈頁(yè)子池容量與所述干凈子池容量閾值之間的大小關(guān)系。
[0110]子池選取模塊432,用于在所述判斷模塊431確定所述干凈頁(yè)子池容量大于所述干凈子池容量閾值時(shí),選取干凈頁(yè)子`池作為用于選擇待替換頁(yè)面的子池。
[0111]所述選取模塊432,用于在所述判斷模塊431確定所述干凈頁(yè)子池容量小于所述干凈子池容量閾值時(shí),選取臟頁(yè)子池作為用于選擇待替換頁(yè)面的子池。
[0112]所述判斷模塊431,用于在所述干凈頁(yè)子池容量等于所述干凈子池容量閾值時(shí),判斷如下條件是否成立,所述條件為所述待訪問(wèn)頁(yè)面在所述干凈頁(yè)歷史列表中并且臟頁(yè)子池容量大于O。
[0113]所述子池選取模塊432,用于在所述判斷模塊431確定所述條件成立時(shí),選取臟頁(yè)子池作為用于選擇待替換頁(yè)面的子池。
[0114]所述子池選取模塊432,用于在所述判斷模塊431確定所述條件不成立時(shí),選取干凈頁(yè)子池作為用于選擇待替換頁(yè)面的子池。
[0115]可選的是,如圖9所示,該裝置還包括:讀取單元46。
[0116]讀取單元46,用于在所述判斷単元41確定所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和小于所述緩存容量吋,從所述非易失性存儲(chǔ)設(shè)備中讀取所述待訪問(wèn)頁(yè)面。
[0117]可選的是,所述判斷単元41,還用于判斷當(dāng)前請(qǐng)求所述待訪問(wèn)頁(yè)面的操作對(duì)應(yīng)的操作類(lèi)型。
[0118]所述讀取単元46,用于在所述判斷単元41確定所述操作類(lèi)型為讀操作吋,將所述待訪問(wèn)頁(yè)面讀取到所述干凈頁(yè)子池中。
[0119]所述維護(hù)単元44,用于維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信
o
[0120]所述讀取単元46,用于所述判斷単元確定操作類(lèi)型為寫(xiě)操作吋,將所述待訪問(wèn)頁(yè)面讀到所述臟頁(yè)子池中。
[0121]所述維護(hù)單元,用于維護(hù)所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息。
[0122]可選的是,如圖10所示,該裝置還包括:第一移除單元47。
[0123]所述判斷單元41,用于判斷干凈頁(yè)子池容量與干凈頁(yè)歷史列表容量之和是否大于 所述緩存容量。
[0124]第一移除單元47,用于在所述判斷單元41確定所述干凈頁(yè)子池容量與所述干凈 頁(yè)歷史列表容量之和大于所述緩存容量時(shí),移除干凈頁(yè)歷史列表的最近最少使用位置的頁(yè) 面標(biāo)識(shí)信息。
[0125]所述第一移除單元47,還用于在所述判斷單元41確定所述干凈頁(yè)子池容量與所 述干凈頁(yè)歷史列表容量之和小于或者等于所述緩存容量時(shí),保持干凈頁(yè)歷史列表不變。
[0126]可選的是,如圖11所示,該裝置還包括:第二移除單元48。
[0127]所述判斷單元41,用于判斷干凈頁(yè)子池容量、臟頁(yè)子池容量、干凈頁(yè)歷史列表容量 以及臟頁(yè)歷史列表容量之和是否大于所述緩存容量的兩倍。
[0128]第二移除單元48,用于在所述判斷單元41確定干凈頁(yè)子池容量、臟頁(yè)子池容量、 干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和大于所述緩存容量的兩倍時(shí),移除臟頁(yè)歷 史列表的最近最少使用位置的頁(yè)面標(biāo)識(shí)信息。
[0129]所述第二移除單元48,用于在所述判斷單元41確定干凈頁(yè)子池容量、臟頁(yè)子池 容量、干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和小于或者等于所述緩存容量的兩倍 時(shí),保持臟頁(yè)歷史列表不變。
[0130]可選的是,所述判斷單元41,用于判斷所述待訪問(wèn)頁(yè)面是否在干凈頁(yè)子池中;
[0131]所述判斷單元41,還用于在確定所述待訪問(wèn)頁(yè)面不在干凈頁(yè)子池中時(shí),判斷所述 待訪問(wèn)頁(yè)面是否在臟頁(yè)子池中;
[0132]所述維護(hù)單元44,用于在所述判斷單元41確定所述待訪問(wèn)頁(yè)面在臟頁(yè)子池中時(shí), 則維護(hù)所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息;
[0133]所述判斷單元41,用于在確定所述待訪問(wèn)頁(yè)面不在臟頁(yè)子池中時(shí),判斷所述干凈 頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系。
[0134]可選的是,所述判斷單元41,還用于在確定所述待訪問(wèn)頁(yè)面在干凈頁(yè)子池中時(shí),獲 取當(dāng)前請(qǐng)求所述待訪問(wèn)頁(yè)面的操作對(duì)應(yīng)的操作類(lèi)型。
[0135]所述維護(hù)單元44,還用于在判斷單元41確定所述操作類(lèi)型為讀操作時(shí),維護(hù)所述 干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息。
[0136]所述遷移單元45,用于在所述判斷單元41確定所述操作類(lèi)型為寫(xiě)操作時(shí),將所述 待訪問(wèn)頁(yè)面遷移到臟頁(yè)子池中。
[0137]所述維護(hù)單元44,還用于維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信 息以及所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息。
[0138]本發(fā)明實(shí)施例提供的一種非易失性存儲(chǔ)設(shè)備的緩存管理裝置,通過(guò)在干凈子池容 量超過(guò)容量閾值時(shí),依據(jù)寫(xiě)操作延時(shí)和讀操作延時(shí)對(duì)干凈子池的容量進(jìn)行調(diào)整,實(shí)現(xiàn)了對(duì) 干凈子池和臟頁(yè)子池容量的控制。由于非易失性存儲(chǔ)設(shè)備的讀寫(xiě)不對(duì)稱(chēng)特性,使得在對(duì)干 凈子池和臟頁(yè)子池容量的控制時(shí),可以?xún)?yōu)先加大臟頁(yè)子池的容量,從而避免臟頁(yè)頻繁替換, 提高存儲(chǔ)設(shè)備工作壽命。[0139]并且,只需要根據(jù)寫(xiě)操作延時(shí)和讀操作延時(shí)對(duì)干凈子池的容量進(jìn)行調(diào)整,調(diào)整值的計(jì)算方法簡(jiǎn)單,相關(guān)參數(shù)獲取容易,降低實(shí)現(xiàn)成本,提高執(zhí)行效率。
[0140]而且,對(duì)歷史列表的容量大小也進(jìn)行控制,降低了緩存管理裝置需要管理的信息,保證緩存管理裝置工作性能。
[0141]通過(guò)以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤(pán),硬盤(pán)或光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
[0142]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種非易失性存儲(chǔ)設(shè)備的緩存管理方法,其特征在于,應(yīng)用于基于非易失性存儲(chǔ)設(shè)備的緩存系統(tǒng),所述緩存系統(tǒng)包括:緩存、非易失性存儲(chǔ)設(shè)備以及緩存管理裝置;所述緩存用于保存從所述非易失性存儲(chǔ)設(shè)備中讀取的頁(yè)面數(shù)據(jù)以及準(zhǔn)備寫(xiě)入所述非易失性存儲(chǔ)設(shè)備中的頁(yè)面數(shù)據(jù),包括干凈頁(yè)子池和臟頁(yè)子池;所述非易失性存儲(chǔ)設(shè)備用于保存所有頁(yè)面數(shù)據(jù);所述緩存管理裝置使用以下信息管理所述緩存,所述信息包括干凈子池容量閾值、干凈頁(yè)子池的頁(yè)面信息,干凈頁(yè)歷史列表,臟頁(yè)子池的頁(yè)面信息和臟頁(yè)歷史列表,其中,所述頁(yè)面信息包括子池容量,所述干凈頁(yè)歷史列表用于存儲(chǔ)最近被替換出緩存的歷史干凈頁(yè)的標(biāo)識(shí)信息,所述臟頁(yè)歷史列表用于存儲(chǔ)最近被替換出緩存的歷史臟頁(yè)的標(biāo)識(shí)信息; 該方法包括: 當(dāng)確定待訪問(wèn)頁(yè)面不在干凈頁(yè)子池,并且也不在臟頁(yè)子池時(shí),判斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系; 當(dāng)所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和大于或者等于所述緩存容量時(shí),判斷所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息是否在干凈頁(yè)歷史列表或者在臟頁(yè)歷史列表中; 當(dāng)確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在干凈頁(yè)歷史列表中吋,將干凈子池容量閾值增加ー個(gè)第一調(diào)整值; 當(dāng)所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在臟頁(yè)歷史列表中時(shí),將所述干凈子池容量閾值減少一個(gè)第二調(diào)整值。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述判斷所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息是否在干凈頁(yè)歷史列表或者在臟頁(yè)歷史列表中之前,還包括: 從所述干凈頁(yè)子池和臟頁(yè)子池中選取ー個(gè)用于選擇待替換頁(yè)面的子池;` 根據(jù)選取到的子池對(duì)應(yīng)的頁(yè)面替換策略,從所述選取到的子池中選取ー個(gè)待替換頁(yè)面; 維護(hù)所述選取到的子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息; 將所述待替換頁(yè)面的標(biāo)識(shí)信息遷移到所述選取到的子池對(duì)應(yīng)的歷史列表的最近使用位置。
3.根據(jù)權(quán)利要求2所述的方法,其特征在干,所述從所述干凈頁(yè)子池和臟頁(yè)子池中選取一個(gè)用于選擇待替換頁(yè)面的子池具體包括: 判斷所述干凈頁(yè)子池容量與所述干凈子池容量閾值之間的大小關(guān)系; 當(dāng)所述干凈頁(yè)子池容量大于所述干凈子池容量閾值時(shí),選取干凈頁(yè)子池作為用于選擇待替換頁(yè)面的子池; 當(dāng)所述干凈頁(yè)子池容量小于所述干凈子池容量閾值時(shí),選取臟頁(yè)子池作為用于選擇待替換頁(yè)面的子池; 當(dāng)所述干凈頁(yè)子池容量等于所述干凈子池容量閾值時(shí),判斷如下條件是否成立,所述條件為所述待訪問(wèn)頁(yè)面在所述干凈頁(yè)歷史列表中并且臟頁(yè)子池容量大于O ; 若所述條件成立,則選取臟頁(yè)子池作為用于選擇待替換頁(yè)面的子池; 若所述條件不成立,則選取干凈頁(yè)子池作為用于選擇待替換頁(yè)面的子池。
4.根據(jù)權(quán)利要求1-3任意一項(xiàng)所述的方法,其特征在于,還包括: 當(dāng)所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和小于所述緩存容量時(shí),所述從所述非易失性存儲(chǔ)設(shè)備中讀取所述待訪問(wèn)頁(yè)面。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在將干凈子池容量閾值增加一個(gè)第一調(diào)整值之后,或者在將所述干凈子池容量閾值減少一個(gè)第二調(diào)整值之后,還包括:判斷當(dāng)前請(qǐng)求所述待訪問(wèn)頁(yè)面的操作對(duì)應(yīng)的操作類(lèi)型;當(dāng)確定所述操作類(lèi)型為讀操作時(shí),將所述待訪問(wèn)頁(yè)面讀取到所述干凈頁(yè)子池中,并維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息;當(dāng)確定所述操作類(lèi)型為寫(xiě)操作時(shí),將所述待訪問(wèn)頁(yè)面讀取到所述臟頁(yè)子池中,并維護(hù)所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息之后,還包括:判斷干凈頁(yè)子池容量與干凈頁(yè)歷史列表容量之和是否大于所述緩存容量;若確定所述干凈頁(yè)子池容量與所述干凈頁(yè)歷史列表容量之和大于所述緩存容量,則移除干凈頁(yè)歷史列表的最近最少使用位置的頁(yè)面標(biāo)識(shí)信息;若確定所述干凈頁(yè)子池容量與所述干凈頁(yè)歷史列表容量之和小于或者等于所述緩存容量,則保持干凈頁(yè)歷史列表不變。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述維護(hù)所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息之后,還包括:判斷干凈頁(yè)子池容量、臟頁(yè)子池容量、干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和是否大于所述緩存容量的兩倍;若確定干凈頁(yè)子池容量、臟頁(yè)子池容量、干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和大于所述緩存容量的兩倍,則移除臟頁(yè)歷史列表的最近最少使用位置的頁(yè)面標(biāo)識(shí)信若確定干凈頁(yè)子池容量、臟頁(yè) 子池容量、干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和小于或者等于所述緩存容量的兩倍,則保持臟頁(yè)歷史列表不變。
8.根據(jù)權(quán)利要求6或7所述的方法,其特征在于,在所述判斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系之前,還包括:判斷所述待訪問(wèn)頁(yè)面是否在干凈頁(yè)子池中;若確定所述待訪問(wèn)頁(yè)面不在干凈頁(yè)子池中,則判斷所述待訪問(wèn)頁(yè)面是否在臟頁(yè)子池中;若確定所述待訪問(wèn)頁(yè)面在臟頁(yè)子池中,則維護(hù)所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的息;若確定所述待訪問(wèn)頁(yè)面不在臟頁(yè)子池中,則執(zhí)行所述判斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,還包括:若確定所述待訪問(wèn)頁(yè)面在干凈頁(yè)子池中,則判斷當(dāng)前請(qǐng)求所述待訪問(wèn)頁(yè)面的操作對(duì)應(yīng)的操作類(lèi)型;當(dāng)確定所述操作類(lèi)型為讀操作時(shí),維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息;當(dāng)確定所述操作類(lèi)型為寫(xiě)操作時(shí),將所述待訪問(wèn)頁(yè)面遷移到臟頁(yè)子池中,并維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息以及所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息。
10.一種非易失性存儲(chǔ)設(shè)備的緩存管理裝置,其特征在于,應(yīng)用于基于非易失性存儲(chǔ)設(shè)備的緩存系統(tǒng),所述緩存系統(tǒng)包括:緩存、非易失性存儲(chǔ)設(shè)備以及緩存管理裝置;所述緩存用于保存從所述非易失性存儲(chǔ)設(shè)備中讀取的頁(yè)面數(shù)據(jù)以及準(zhǔn)備寫(xiě)入所述非易失性存儲(chǔ)設(shè)備中的頁(yè)面數(shù)據(jù),包括干凈頁(yè)子池和臟頁(yè)子池;所述非易失性存儲(chǔ)設(shè)備用于保存所有頁(yè)面數(shù)據(jù);所述緩存管理裝置使用以下信息管理所述緩存,所述信息包括干凈子池容量閾值、干凈頁(yè)子池的頁(yè)面信息,干凈頁(yè)歷史列表,臟頁(yè)子池的頁(yè)面信息和臟頁(yè)歷史列表,其中,所述頁(yè)面信息包括子池容量,所述干凈頁(yè)歷史列表用于存儲(chǔ)最近被替換出緩存的歷史干凈頁(yè)的標(biāo)識(shí)信息,所述臟頁(yè)歷史列表用于存儲(chǔ)最近被替換出緩存的歷史臟頁(yè)的標(biāo)識(shí)信息; 該裝置包括: 判斷単元,用于在確定待訪問(wèn)頁(yè)面不在干凈頁(yè)子池,并且也不在臟頁(yè)子池時(shí),判斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系; 所述判斷単元,還用于在確定所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和大于或者等于所述緩存容量時(shí),判斷所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息是否在干凈頁(yè)歷史列表或者在臟頁(yè)歷史列表中; 調(diào)整單元,用于在所述判斷單元確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在干凈頁(yè)歷史列表中吋,將干凈子池容量閾值增加ー個(gè)第一調(diào)整值;在所述判斷單元確定所述待訪問(wèn)頁(yè)面的標(biāo)識(shí)信息在臟頁(yè)歷史列表中時(shí),將所述干凈子池容量閾值減少ー個(gè)第二調(diào)整值。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,該裝置還包括: 選取單元,用于在所述判斷單元確定所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和大于或者等于所述緩存容量,從所述干凈頁(yè)子池和臟頁(yè)子池中選取ー個(gè)用于選擇待替換頁(yè)面的子池;還用于根據(jù)選取到的子池對(duì)應(yīng)的頁(yè)面替換策略,從所述選取到的子池中選取ー個(gè)待替換頁(yè)面;` 維護(hù)單元,用于維護(hù)所述選取單元選取到的子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息; 遷移單元,用于將所述待替換頁(yè)面的標(biāo)識(shí)信息遷移到所述選取到的子池對(duì)應(yīng)的歷史列表的最近使用位置。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述選取単元具體包括: 判斷模塊,用于判斷所述干凈頁(yè)子池容量與所述干凈子池容量閾值之間的大小關(guān)系;還用于在所述干凈頁(yè)子池容量等于所述干凈子池容量閾值時(shí),判斷如下條件是否成立,所述條件為所述待訪問(wèn)頁(yè)面在所述干凈頁(yè)歷史列表中并且臟頁(yè)子池容量大于0 ; 子池選取模塊,用于在所述判斷模塊確定所述干凈頁(yè)子池容量大于所述干凈子池容量閾值時(shí),選取干凈頁(yè)子池作為用于選擇待替換頁(yè)面的子池;還用于在所述判斷模塊確定所述干凈頁(yè)子池容量小于所述干凈子池容量閾值時(shí),選取臟頁(yè)子池作為用于選擇待替換頁(yè)面的子池;還用于在所述判斷模塊確定所述條件成立時(shí),選取臟頁(yè)子池作為用于選擇待替換頁(yè)面的子池;還用于在所述判斷模塊確定所述條件不成立時(shí),選取干凈頁(yè)子池作為用于選擇待替換頁(yè)面的子池。
13.根據(jù)權(quán)利要求10-12任一項(xiàng)所述的裝置,其特征在于,該裝置還包括: 讀取單元,用于在所述判斷單元確定所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和小于所述緩存容量時(shí),從所述非易失性存儲(chǔ)設(shè)備中讀取所述待訪問(wèn)頁(yè)面。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述判斷單元,還用于判斷當(dāng)前請(qǐng)求所述待訪問(wèn)頁(yè)面的操作對(duì)應(yīng)的操作類(lèi)型;所述讀取單元,還用于在所述判斷單元確定所述操作類(lèi)型為讀操作時(shí),將所述待訪問(wèn)頁(yè)面讀取到所述干凈頁(yè)子池中;還用于所述判斷單元確定操作類(lèi)型為寫(xiě)操作時(shí),將所述待訪問(wèn)頁(yè)面讀到所述臟頁(yè)子池中;所述維護(hù)單元,還用于維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息;維護(hù)所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,該裝置還包括:所述判斷單元,用于判斷干凈頁(yè)子池容量與干凈頁(yè)歷史列表容量之和是否大于所述緩存容量;第一移除單元,用于在所述判斷單元確定所述干凈頁(yè)子池容量與所述干凈頁(yè)歷史列表容量之和大于所述緩存容量時(shí),移除干凈頁(yè)歷史列表的最近最少使用位置的頁(yè)面標(biāo)識(shí)信息;還用于在所述判斷單元確定所述干凈頁(yè)子池容量與所述干凈頁(yè)歷史列表容量之和小于或者等于所述緩存容量時(shí),保持干凈頁(yè)歷史列表不變。
16.根據(jù)權(quán)利要求14所述的裝置,其特征在于,該裝置還包括:所述判斷單元,用于判斷干凈頁(yè)子池容量、臟頁(yè)子池容量、干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和是否大于所述緩存容量的兩倍;第二移除單元,用于在所述判斷單元確定干凈頁(yè)子池容量、臟頁(yè)子池容量、干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和大于所述緩存容量的兩倍時(shí),移除臟頁(yè)歷史列表的最近最少使用位置的頁(yè)面標(biāo)識(shí)信息;還用于在所述判斷單元確定干凈頁(yè)子池容量、臟頁(yè)子池容量、干凈頁(yè)歷史列表容量以及臟頁(yè)歷史列表容量之和小于或者等于所述緩存容量的兩倍時(shí),保持臟頁(yè)歷史列表不變。
17.根據(jù)權(quán)利要求16所述的裝 置,其特征在于,所述判斷單元,用于判斷所述待訪問(wèn)頁(yè)面是否在干凈頁(yè)子池中;還用于在確定所述待訪問(wèn)頁(yè)面不在干凈頁(yè)子池中時(shí),判斷所述待訪問(wèn)頁(yè)面是否在臟頁(yè)子池中;還用于在確定所述待訪問(wèn)頁(yè)面不在臟頁(yè)子池中時(shí),判斷所述干凈頁(yè)子池與所述臟頁(yè)子池容量之和與緩存容量之間的大小關(guān)系;所述維護(hù)單元,用于在所述判斷單元確定所述待訪問(wèn)頁(yè)面在臟頁(yè)子池中時(shí),則維護(hù)所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息。
18.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述判斷單元,還用于在確定所述待訪問(wèn)頁(yè)面在干凈頁(yè)子池中時(shí),判斷當(dāng)前請(qǐng)求所述待訪問(wèn)頁(yè)面的操作對(duì)應(yīng)的操作類(lèi)型;所述維護(hù)單元,還用于在判斷單元確定所述操作類(lèi)型為讀操作時(shí),維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息;還用于維護(hù)所述干凈頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息以及所述臟頁(yè)子池對(duì)應(yīng)的頁(yè)面替換策略當(dāng)前所需的信息;所述遷移單元,用于在所述判斷單元確定所述操作類(lèi)型為寫(xiě)操作時(shí),將所述待訪問(wèn)頁(yè)面遷移到臟頁(yè)子池中。
【文檔編號(hào)】G06F12/12GK103514110SQ201210205360
【公開(kāi)日】2014年1月15日 申請(qǐng)日期:2012年6月20日 優(yōu)先權(quán)日:2012年6月20日
【發(fā)明者】朱俊華 申請(qǐng)人:華為技術(shù)有限公司