一種混合內(nèi)存環(huán)境下淘汰數(shù)據(jù)感知的緩存方法與系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種混合內(nèi)存環(huán)境下淘汰數(shù)據(jù)感知的緩存系統(tǒng),其目標(biāo)是在保證緩存系統(tǒng)自身性能的前提下盡量減少寫(xiě)回非易失性主存的次數(shù)從而提升其壽命。系統(tǒng)主要包含元數(shù)據(jù)監(jiān)控模塊、頁(yè)面置換模塊和自適應(yīng)空間劃分模塊。監(jiān)控模塊收集緩存淘汰數(shù)據(jù)的元數(shù)據(jù)信息,然后基于元數(shù)據(jù)信息分析出緩存中頁(yè)面的淘汰權(quán)重;頁(yè)面置換模塊,實(shí)現(xiàn)基于緩存性能和非易失性主存壽命來(lái)選擇淘汰頁(yè)面;自適應(yīng)空間劃分模塊結(jié)合請(qǐng)求的特點(diǎn)和頁(yè)面是否發(fā)生過(guò)淘汰來(lái)判斷當(dāng)前階段應(yīng)該選擇哪種類(lèi)型的頁(yè)面作為淘汰對(duì)象。本發(fā)明能夠的在保證緩存系統(tǒng)性能的前提下有效的減少對(duì)非易失性主存的寫(xiě)回次數(shù),從而提升其壽命。
【專利說(shuō)明】
一種混合內(nèi)存環(huán)境下淘汰數(shù)據(jù)感知的緩存方法與系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于內(nèi)存計(jì)算領(lǐng)域,更具體地,涉及一種混合內(nèi)存環(huán)境下淘汰數(shù)據(jù)感知的緩存方法和緩存系統(tǒng),主要目標(biāo)是在保證緩存性能的前提下提升非易失性主存的壽命。
【背景技術(shù)】
[0002]內(nèi)存計(jì)算技術(shù)的飛速發(fā)展,導(dǎo)致現(xiàn)有基于DRAM的主存系統(tǒng)在擴(kuò)展性、能耗等方面已經(jīng)難以適應(yīng)進(jìn)一步的發(fā)展,而新型非易失性主存的出現(xiàn)為優(yōu)化現(xiàn)有的內(nèi)存系統(tǒng)提供了新的機(jī)會(huì),因?yàn)樽鳛閮?nèi)存時(shí)非易失性主存具有非易失、能耗低以及更好的擴(kuò)展性等優(yōu)勢(shì),但要想完全取代現(xiàn)有的DRAM,在寫(xiě)速度、動(dòng)態(tài)能耗以及壽命等方面非易失性主存還相距DRAM甚遠(yuǎn),所以一種比較常見(jiàn)的內(nèi)存結(jié)構(gòu)是采取DRAM和非易失性主存作為混合主存,其中DRAM作為非易失性主存的上層緩存,這樣可以更好的優(yōu)勢(shì)劣勢(shì)互補(bǔ)從而提升整體的性能和可靠性。
[0003]非易失性主存作為內(nèi)存時(shí),其中一個(gè)重要的問(wèn)題就是壽命有限。比如,相變內(nèi)存,它的寫(xiě)操作原理是阻變材料在低阻結(jié)晶態(tài)(邏輯I)和高阻非晶態(tài)(邏輯O)之間轉(zhuǎn)變,從而導(dǎo)致相變內(nèi)存難以承受大量的寫(xiě)操作,相比較DRAM而言相變內(nèi)存的寫(xiě)操作壽命只有108-1012次,比DRAM差了幾個(gè)數(shù)量級(jí),如果集中寫(xiě)的話,只需要很短的時(shí)間(100天左右,基于典型的SPECCPU應(yīng)用)就可以將相變內(nèi)存中的某些相變內(nèi)存單元寫(xiě)壞,因此,為了能充分利用非易失性主存的性能,需要著重解決非易失性主存的壽命問(wèn)題
[0004]當(dāng)前階段已有的研究工作主要集中在以下三類(lèi):減少寫(xiě)非易失性主存次數(shù),比如先讀后寫(xiě)、翻轉(zhuǎn)后再寫(xiě)、陪集映射寫(xiě)入以及傳統(tǒng)的緩存層面提高命中率從而相應(yīng)的減少寫(xiě)回?cái)?shù)據(jù)的次數(shù);磨損均衡,從段、頁(yè)面、內(nèi)存行、比特等不同粒度來(lái)進(jìn)行數(shù)據(jù)的交換和翻轉(zhuǎn);錯(cuò)誤糾錯(cuò)及壞塊復(fù)用,主要針對(duì)局部頁(yè)面被寫(xiě)壞后進(jìn)行硬件層面讀錯(cuò)誤比特并分組進(jìn)行錯(cuò)誤恢復(fù)及利用壞塊中剩余的正常比特來(lái)協(xié)助其它的塊進(jìn)行硬件糾錯(cuò)。
[0005]上述研究方案主要針對(duì)緩存發(fā)來(lái)的寫(xiě)請(qǐng)求來(lái)進(jìn)行優(yōu)化處理,實(shí)際的寫(xiě)回請(qǐng)求數(shù)量并沒(méi)有減少,并且?guī)?lái)了額外的記錄、迀移等開(kāi)銷(xiāo),因此可以考慮從緩存層面來(lái)優(yōu)化請(qǐng)求寫(xiě)入非易失性主存的問(wèn)題。目前緩存系統(tǒng)中已有的研究工作主要是集中在基于緩存數(shù)據(jù)中臟數(shù)據(jù)淘汰時(shí)需要寫(xiě)回非易失性主存而干凈數(shù)據(jù)則無(wú)需寫(xiě)回的差異,在緩存空間需要淘汰數(shù)據(jù)時(shí)有意的優(yōu)先選擇干凈數(shù)據(jù)來(lái)進(jìn)行淘汰,降低淘汰數(shù)據(jù)中臟數(shù)據(jù)所占的比例,從而達(dá)到減少緩存空間向非易失性主存寫(xiě)回臟數(shù)據(jù)次數(shù)的目的,或者是通過(guò)分析具體應(yīng)用具體程序段的訪問(wèn)命中率分布來(lái)有意的選擇低命中率的干凈數(shù)據(jù)來(lái)進(jìn)行淘汰。上述工作雖然從總體上降低了寫(xiě)回非易失性主存的次數(shù),但這種刻意減少臟數(shù)據(jù)寫(xiě)回操作次數(shù)的策略卻帶來(lái)了以下幾點(diǎn)問(wèn)題:(I)刻意淘汰干凈數(shù)據(jù)保留臟數(shù)據(jù)會(huì)影響緩存空間中的數(shù)據(jù)分布,進(jìn)而損害到上層訪問(wèn)緩存系統(tǒng)的命中率,給系統(tǒng)的整體性能帶來(lái)不利影響。(2)考慮到緩存性能的工作需要對(duì)具體應(yīng)用不同時(shí)間段的運(yùn)行特點(diǎn)先進(jìn)行分析然后選擇特定的策略執(zhí)行,不能很好地適應(yīng)不同系統(tǒng)的緩存環(huán)境。
【發(fā)明內(nèi)容】
[0006]針對(duì)現(xiàn)有技術(shù)的以上缺陷,本發(fā)明提供了一種淘汰數(shù)據(jù)感知的緩存系統(tǒng),其目的在于保證緩存的訪問(wèn)命中率使得緩存系統(tǒng)性能不受影響的前提下能有效減少寫(xiě)回非易失性主存的次數(shù)從而提升非易失性主存壽命,由此解決無(wú)法同時(shí)提升非易失性主存寫(xiě)操作壽命和保證緩存性能的技術(shù)問(wèn)題。
[0007]為實(shí)現(xiàn)上述目的,按照本發(fā)明的一方面,提供了一種淘汰數(shù)據(jù)感知的緩存方法,包含以下步驟:
[0008](I)當(dāng)待淘汰頁(yè)面確定后,緩存淘汰數(shù)據(jù)監(jiān)控方法獲取頁(yè)面對(duì)應(yīng)的元數(shù)據(jù)信息,包含頁(yè)面地址、淘汰時(shí)間和淘汰次數(shù)等等,并初始化或者更新緩存淘汰記錄集合中對(duì)應(yīng)的淘汰記錄;當(dāng)不命中發(fā)生時(shí),監(jiān)控方法基于收集到的元數(shù)據(jù)信息分析淘汰記錄的局部性特征(時(shí)間局部性和空間局部性)并基于上述特征計(jì)算出對(duì)應(yīng)緩存頁(yè)面的淘汰權(quán)重;
[0009](2)頁(yè)面置換策略基于淘汰數(shù)據(jù)的類(lèi)型確定不同的置換方法,如果淘汰對(duì)象最近沒(méi)有淘汰過(guò)則優(yōu)先選擇最近未淘汰過(guò)頁(yè)面類(lèi)型中的干凈頁(yè)面進(jìn)行淘汰,而如果淘汰對(duì)象最近發(fā)生過(guò)淘汰則基于監(jiān)控得到的淘汰權(quán)重,計(jì)算出對(duì)應(yīng)的淘汰閾值,并結(jié)合頁(yè)面自身的訪問(wèn)特征在淘汰閾值范圍內(nèi)優(yōu)先選擇干凈的頁(yè)面作為淘汰對(duì)象,以減少額外的寫(xiě)回非易失性主存操作,若沒(méi)有對(duì)應(yīng)的干凈頁(yè)面則選擇最小權(quán)重的臟頁(yè)面作為淘汰對(duì)象,以達(dá)到保證緩存性能和提升非易失性主存壽命的目標(biāo);
[0010](3)自適應(yīng)空間劃分機(jī)制主要發(fā)生在請(qǐng)求不命中時(shí),若請(qǐng)求頁(yè)面在緩存淘汰記錄集合中有對(duì)應(yīng)記錄則說(shuō)明該記錄最近發(fā)生過(guò)淘汰,則選擇最近沒(méi)有發(fā)生過(guò)淘汰的緩存頁(yè)面作為淘汰對(duì)象;而若請(qǐng)求頁(yè)面在緩存淘汰記錄集合沒(méi)有記錄,則說(shuō)明該記錄最近沒(méi)有被訪問(wèn)過(guò),更沒(méi)有被淘汰過(guò),所以選擇最近曾淘汰過(guò)的頁(yè)面作為淘汰對(duì)象。
[0011]通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明的系統(tǒng)具有以下的優(yōu)點(diǎn)和技術(shù)效果:
[0012]1、由于采用了步驟(I),在淘汰操作執(zhí)行時(shí)能夠及時(shí)獲取并分析出該頁(yè)面的淘汰特征,當(dāng)頁(yè)面再次存放到緩存中時(shí)為其提供是否可以淘汰的理論支撐;
[0013]2、由于采用了步驟(2),可以將淘汰頁(yè)面對(duì)緩存下一階段的性能負(fù)面影響降至最小并能減少不必要的寫(xiě)回操作,從而提高非易失性主存寫(xiě)操作壽命;
[0014]3、由于采用了步驟(3),緩存空間的數(shù)據(jù)分布可以更符合當(dāng)前階段訪問(wèn)請(qǐng)求的特點(diǎn),因而對(duì)應(yīng)的訪問(wèn)命中率也會(huì)有所提升,以進(jìn)一步保證緩存系統(tǒng)的性能。
[0015]按照本發(fā)明的另一方面,還提供了一種混合內(nèi)存環(huán)境下淘汰數(shù)據(jù)感知的緩存系統(tǒng),包括淘汰數(shù)據(jù)監(jiān)控模塊、頁(yè)面置換模塊和自適應(yīng)空間劃分模塊。監(jiān)控模塊,用于對(duì)緩存中淘汰的數(shù)據(jù)記錄進(jìn)行元數(shù)據(jù)收集和淘汰權(quán)重分析,以支撐下面的頁(yè)面置換和空間劃分;頁(yè)面置換模塊,是用于緩存系統(tǒng)發(fā)生請(qǐng)求不命中時(shí),選擇對(duì)緩存性能影響最小且盡量不需要寫(xiě)回非易失性主存的頁(yè)面進(jìn)行淘汰;自適應(yīng)空間劃分模塊,主要考慮到緩存中未曾淘汰過(guò)的頁(yè)面對(duì)緩存性能的影響,采用自適應(yīng)的思想結(jié)合請(qǐng)求和監(jiān)控模塊的數(shù)據(jù)來(lái)決定淘汰頁(yè)面的類(lèi)型,從而達(dá)到空間劃分的目的。
[0016]淘汰數(shù)據(jù)監(jiān)控模塊在當(dāng)緩存選定特定頁(yè)面進(jìn)行淘汰時(shí)進(jìn)行,主要用來(lái)監(jiān)控最近一段時(shí)間緩存淘汰過(guò)的頁(yè)面記錄,具體通過(guò)地址計(jì)算出其在淘汰記錄集合中的位置來(lái)判斷是否已經(jīng)有對(duì)應(yīng)的淘汰記錄,若是沒(méi)有則初始化記錄該頁(yè)面的元數(shù)據(jù)記錄信息,若是有則更新該記錄的相關(guān)元數(shù)據(jù)信息(淘汰時(shí)間、淘汰次數(shù)等等);當(dāng)需要替換頁(yè)面時(shí),分析所有已淘汰過(guò)頁(yè)面對(duì)應(yīng)的淘汰記錄的局部性權(quán)重,主要是淘汰時(shí)間和淘汰頻率的權(quán)重,并基于上述權(quán)重得到對(duì)應(yīng)緩存頁(yè)面的淘汰權(quán)重。
[0017]頁(yè)面置換模塊,在每次緩存發(fā)生請(qǐng)求未命中時(shí)進(jìn)行,用來(lái)選擇最終的淘汰對(duì)象,先確定默認(rèn)選中的待淘汰頁(yè)面是否屬于曾發(fā)生淘汰的頁(yè)面,并分別針對(duì)未發(fā)生淘汰和最近淘汰過(guò)的頁(yè)面實(shí)施不同的置換策略,其中對(duì)于未淘汰過(guò)的頁(yè)面優(yōu)先選擇干凈淘汰即可,而對(duì)于最近淘汰過(guò)的頁(yè)面則基于頁(yè)面淘汰權(quán)重來(lái)選擇,優(yōu)先選擇權(quán)重較小的干凈頁(yè)面作為淘汰對(duì)象,以達(dá)到保證緩存訪問(wèn)命中率和減少寫(xiě)回的目的。
[0018]自適應(yīng)空間劃分模塊,當(dāng)請(qǐng)求不命中時(shí)首先確定淘汰數(shù)據(jù)的類(lèi)型,具體是根據(jù)請(qǐng)求狀態(tài)以及監(jiān)控模塊的數(shù)據(jù)記錄來(lái)判斷哪種類(lèi)型的頁(yè)面最近更傾向于被訪問(wèn),而自適應(yīng)的選擇另一種類(lèi)型的頁(yè)面作為淘汰對(duì)象,通過(guò)兩種類(lèi)型數(shù)據(jù)的空間劃分來(lái)適應(yīng)上層訪問(wèn)請(qǐng)求的變化。
[0019]通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明的系統(tǒng)具有以下的優(yōu)點(diǎn)和技術(shù)效果:
[0020]1、由于采用了淘汰數(shù)據(jù)監(jiān)控模塊,能夠精準(zhǔn)的檢測(cè)和分析緩存分組中各個(gè)頁(yè)面的淘汰權(quán)重大小,并進(jìn)行低空間開(kāi)銷(xiāo)的存儲(chǔ),因此得出頁(yè)面在下一階段被再次訪問(wèn)的可能程度,為下面的頁(yè)面置換和空間劃分提供了有效的支撐;
[0021]2、由于采用了頁(yè)面置換模塊,基于監(jiān)控到的頁(yè)面淘汰權(quán)重和頁(yè)面本身的訪問(wèn)特征,可以將緩存系統(tǒng)本身的性能和非易失性主存的寫(xiě)操作壽命同時(shí)兼顧到,因?yàn)椴粫?huì)因?yàn)樽非鬁p少寫(xiě)回而對(duì)緩存性能帶來(lái)大的負(fù)面影響;
[0022]3、由于采用了自適應(yīng)空間劃分模塊,可以將緩存中未曾淘汰過(guò)的頁(yè)面考慮在內(nèi),使得緩存空間中各類(lèi)數(shù)據(jù)的分布滿足現(xiàn)階段請(qǐng)求訪問(wèn)的傾向,使得緩存的性能得到進(jìn)一步的提升。
[0023]總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,由于淘汰數(shù)據(jù)時(shí)結(jié)合了頁(yè)面淘汰權(quán)重的大小和請(qǐng)求訪問(wèn)的特征來(lái)選擇淘汰目標(biāo),能夠使得在保證緩存性能基本不受影響的前提下有效的提升非易失性主存的壽命。
【附圖說(shuō)明】
[0024]圖1為本發(fā)明實(shí)施例的數(shù)據(jù)監(jiān)控方法流程圖;
[0025]圖2為本發(fā)明實(shí)施例的頁(yè)面置換策略的流程圖;
[0026]圖3為本發(fā)明實(shí)施例的自適應(yīng)空間劃分機(jī)制的流程圖;
[0027]圖4為本發(fā)明實(shí)施例的系統(tǒng)模塊框圖。
【具體實(shí)施方式】
[0028]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0029]本發(fā)明提供了一種淘汰數(shù)據(jù)感知的緩存方法,包括以下步驟:
[0030](I)如圖1所示,淘汰數(shù)據(jù)監(jiān)控方法,在系統(tǒng)運(yùn)行的整個(gè)過(guò)程中進(jìn)行,具體包含如下幾個(gè)子步驟:
[0031](1.1)數(shù)據(jù)收集:當(dāng)緩存選定特定頁(yè)面進(jìn)行淘汰時(shí),通過(guò)地址計(jì)算出其存放的位置,然后判斷是否已經(jīng)有對(duì)應(yīng)的淘汰記錄,若是沒(méi)有則初始化記錄該頁(yè)面的頁(yè)面地址、已淘汰次數(shù)(設(shè)定為I)和淘汰時(shí)間(當(dāng)前時(shí)間),若是有則取出該數(shù)據(jù)的記錄,更新其淘汰時(shí)間為當(dāng)前時(shí)間、淘汰次數(shù)增加一。
[0032](1.2)數(shù)據(jù)分析:當(dāng)需要替換頁(yè)面時(shí),分析所有已淘汰過(guò)頁(yè)面對(duì)應(yīng)的淘汰記錄。一是淘汰時(shí)間的權(quán)重,將所有記錄以淘汰時(shí)間排序,并按照從小到大的順序先后賦值權(quán)重(1-n);二是,淘汰頻率的權(quán)重,將所有記錄按照淘汰次數(shù)從小到大排序,并按照此順序賦值權(quán)重(1-η)。最后,將各個(gè)頁(yè)面對(duì)應(yīng)的時(shí)間和頻率權(quán)重求和得到對(duì)應(yīng)的淘汰權(quán)重,并按照淘汰權(quán)重從小到大排序得到緩存中曾淘汰頁(yè)面的淘汰權(quán)重先后順序。
[0033 ] (2)如圖2所示,頁(yè)面置換策略,每次緩存發(fā)生請(qǐng)求未命中時(shí)進(jìn)行,具體包括下面幾個(gè)子步驟:
[0034](2.1)對(duì)默認(rèn)選中的待淘汰頁(yè)面判斷該頁(yè)面在監(jiān)控模塊的數(shù)據(jù)中是否有記錄。
[0035](2.2)若是有記錄則說(shuō)明該頁(yè)面屬于曾發(fā)生淘汰的頁(yè)面,則基于監(jiān)控模塊分析得到的權(quán)重進(jìn)行進(jìn)一步的判斷,若是沒(méi)有記錄則進(jìn)入(2.4)。
[0036](2.3)對(duì)所有曾發(fā)生淘汰的頁(yè)面基于現(xiàn)階段權(quán)重的閾值,選擇淘汰對(duì)象,若是權(quán)重小于閾值的頁(yè)面中存在干凈數(shù)據(jù),則優(yōu)先選擇該頁(yè)面淘汰,若是沒(méi)有干凈數(shù)據(jù)存在,則選擇權(quán)重最小的臟數(shù)據(jù)頁(yè)面進(jìn)行淘汰。
[0037](2.4)若是頁(yè)面未發(fā)生過(guò)淘汰則說(shuō)明該頁(yè)面屬于未曾發(fā)生淘汰的頁(yè)面。按照默認(rèn)的LRU規(guī)則選擇淘汰頁(yè)面,同時(shí)優(yōu)先考慮干凈頁(yè)面來(lái)進(jìn)行選擇。
[0038](3)如圖3所示,自適應(yīng)空間劃分機(jī)制,,具體包括下面幾個(gè)子步驟:
[0039](3.1)上層發(fā)來(lái)的訪問(wèn)緩存請(qǐng)求,判斷是否命中。
[0040](3.2)若命中,則繼續(xù)進(jìn)行訪問(wèn)操作,若未命中,則查詢監(jiān)控模塊是否有對(duì)應(yīng)的淘汰記錄,若是存在則進(jìn)入(3.3),否則進(jìn)入(3.4)。
[0041](3.3)該頁(yè)面最近曾發(fā)生過(guò)淘汰,則說(shuō)明對(duì)該頁(yè)面的淘汰導(dǎo)致了本次的不命中,所以需要擴(kuò)大所屬的曾發(fā)生過(guò)淘汰頁(yè)面的空間大小,即從未曾發(fā)生淘汰的頁(yè)面中選擇合適的頁(yè)面進(jìn)行淘汰。
[0042](3.4)該頁(yè)面最近沒(méi)有發(fā)生過(guò)淘汰,則說(shuō)明該頁(yè)面最近沒(méi)有被訪問(wèn)過(guò)更沒(méi)有被淘汰過(guò),所以需要擴(kuò)大所屬的未曾發(fā)生淘汰頁(yè)面的空間大小,即從曾發(fā)生淘汰的頁(yè)面中選擇合適的頁(yè)面作為淘汰對(duì)象。
[0043]如圖4所示,本發(fā)明提供了一種混合內(nèi)存環(huán)境下淘汰數(shù)據(jù)感知的緩存系統(tǒng),包括淘汰數(shù)據(jù)監(jiān)控模塊、頁(yè)面置換模塊和自適應(yīng)空間劃分模塊。監(jiān)控模塊,用于對(duì)緩存中淘汰的數(shù)據(jù)記錄進(jìn)行元數(shù)據(jù)收集和淘汰權(quán)重分析,以支撐下面的頁(yè)面置換和空間劃分;頁(yè)面置換模塊,是用于緩存系統(tǒng)發(fā)生請(qǐng)求不命中時(shí),選擇對(duì)緩存性能影響最小且盡量不需要寫(xiě)回非易失性主存的頁(yè)面進(jìn)行淘汰;自適應(yīng)空間劃分模塊,主要考慮到緩存中未曾淘汰過(guò)的頁(yè)面對(duì)緩存性能的影響,采用自適應(yīng)的思想結(jié)合請(qǐng)求和監(jiān)控模塊的數(shù)據(jù)來(lái)決定淘汰頁(yè)面的類(lèi)型,從而達(dá)到空間劃分的目的。
[0044]淘汰數(shù)據(jù)監(jiān)控模塊在當(dāng)緩存選定特定頁(yè)面進(jìn)行淘汰時(shí)進(jìn)行,主要用來(lái)監(jiān)控最近一段時(shí)間緩存淘汰過(guò)的頁(yè)面記錄,具體通過(guò)地址計(jì)算出其在淘汰記錄集合中的位置來(lái)判斷是否已經(jīng)有對(duì)應(yīng)的淘汰記錄,若是沒(méi)有則初始化記錄該頁(yè)面的元數(shù)據(jù)記錄信息,若是有則更新該記錄的相關(guān)元數(shù)據(jù)信息(淘汰時(shí)間、淘汰次數(shù)等等);當(dāng)需要替換頁(yè)面時(shí),分析所有已淘汰過(guò)頁(yè)面對(duì)應(yīng)的淘汰記錄的局部性權(quán)重,主要是淘汰時(shí)間和淘汰頻率的權(quán)重,并基于上述權(quán)重得到對(duì)應(yīng)緩存頁(yè)面的淘汰權(quán)重。
[0045]頁(yè)面置換模塊,在每次緩存發(fā)生請(qǐng)求未命中時(shí)進(jìn)行,用來(lái)選擇最終的淘汰對(duì)象,先確定默認(rèn)選中的待淘汰頁(yè)面是否屬于曾發(fā)生淘汰的頁(yè)面,并分別針對(duì)未發(fā)生淘汰和最近淘汰過(guò)的頁(yè)面實(shí)施不同的置換策略,其中對(duì)于未淘汰過(guò)的頁(yè)面優(yōu)先選擇干凈淘汰即可,而對(duì)于最近淘汰過(guò)的頁(yè)面則基于頁(yè)面淘汰權(quán)重來(lái)選擇,優(yōu)先選擇權(quán)重較小的干凈頁(yè)面作為淘汰對(duì)象,以達(dá)到保證緩存訪問(wèn)命中率和減少寫(xiě)回的目的。
[0046]自適應(yīng)空間劃分模塊,當(dāng)請(qǐng)求不命中時(shí)首先確定淘汰數(shù)據(jù)的類(lèi)型,具體是根據(jù)請(qǐng)求狀態(tài)以及監(jiān)控模塊的數(shù)據(jù)記錄來(lái)判斷哪種類(lèi)型的頁(yè)面最近更傾向于被訪問(wèn),而自適應(yīng)的選擇另一種類(lèi)型的頁(yè)面作為淘汰對(duì)象,通過(guò)兩種類(lèi)型數(shù)據(jù)的空間劃分來(lái)適應(yīng)上層訪問(wèn)請(qǐng)求的變化。
[0047]本發(fā)明提供了一種混合內(nèi)存環(huán)境下淘汰數(shù)據(jù)感知的緩存方法,由于采用了步驟
(I),在淘汰操作執(zhí)行時(shí)能夠及時(shí)獲取并分析出該頁(yè)面的淘汰特征,當(dāng)頁(yè)面再次存放到緩存中時(shí)為其提供是否可以淘汰的理論支撐;由于采用了步驟(2),可以將淘汰頁(yè)面對(duì)緩存下一階段的性能負(fù)面影響降至最小并能減少不必要的寫(xiě)回操作,從而提高非易失性主存寫(xiě)操作壽命;由于采用了步驟(3),緩存空間的數(shù)據(jù)分布可以更符合當(dāng)前階段訪問(wèn)請(qǐng)求的特點(diǎn),因而對(duì)應(yīng)的訪問(wèn)命中率也會(huì)有所提升,以進(jìn)一步保證緩存系統(tǒng)的性能。
[0048]對(duì)于本發(fā)明提供的混合內(nèi)存環(huán)境下淘汰數(shù)據(jù)感知的緩存系統(tǒng),由于采用了淘汰數(shù)據(jù)監(jiān)控模塊,能夠精準(zhǔn)的檢測(cè)和分析緩存分組中各個(gè)頁(yè)面的淘汰權(quán)重大小,并進(jìn)行低空間開(kāi)銷(xiāo)的存儲(chǔ),因此得出頁(yè)面在下一階段被再次訪問(wèn)的可能程度,為下面的頁(yè)面置換和空間劃分提供了有效的支撐;由于采用了頁(yè)面置換模塊,基于監(jiān)控到的頁(yè)面淘汰權(quán)重和頁(yè)面本身的訪問(wèn)特征,可以將緩存系統(tǒng)本身的性能和非易失性主存的寫(xiě)操作壽命同時(shí)兼顧到,因?yàn)椴粫?huì)因?yàn)樽非鬁p少寫(xiě)回而對(duì)緩存性能帶來(lái)大的負(fù)面影響;由于采用了自適應(yīng)空間劃分模塊,可以將緩存中未曾淘汰過(guò)的頁(yè)面考慮在內(nèi),使得緩存空間中各類(lèi)數(shù)據(jù)的分布滿足現(xiàn)階段請(qǐng)求訪問(wèn)的傾向,使得緩存的性能得到進(jìn)一步的提升。
[0049]本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種混合內(nèi)存環(huán)境下淘汰數(shù)據(jù)感知的緩存方法,其特征在于,包括如下步驟: (1)通過(guò)收集到的緩存系統(tǒng)淘汰數(shù)據(jù)分析出緩存頁(yè)面的淘汰權(quán)重; (2)基于監(jiān)控得到的淘汰權(quán)重并結(jié)合頁(yè)面自身的訪問(wèn)特征選取對(duì)緩存性能和非易失性主存壽命有好的頁(yè)面進(jìn)行淘汰; (3)基于請(qǐng)求特征和淘汰數(shù)據(jù)記錄自適應(yīng)的調(diào)整頁(yè)面置換時(shí)選取淘汰對(duì)象的類(lèi)型。2.如權(quán)利要求1所述的緩存方法,其特征在于,所述步驟(I)具體包括如下子步驟: (1.1)待淘汰頁(yè)面確定后,監(jiān)控方法獲取頁(yè)面對(duì)應(yīng)的元數(shù)據(jù)信息,包含頁(yè)面地址、淘汰時(shí)間和淘汰次數(shù); (1.2)不命中發(fā)生時(shí),基于收集到的元數(shù)據(jù)信息分析淘汰記錄的局部性特征并計(jì)算出對(duì)應(yīng)緩存頁(yè)面的淘汰權(quán)重。3.如權(quán)利要求1或2所述的緩存方法,其特征在于,所述步驟(2)具體包括如下子步驟: (2.1)如若淘汰對(duì)象為最近淘汰過(guò)的頁(yè)面,則基于緩存分組中所有最近發(fā)生淘汰頁(yè)面的淘汰權(quán)重,計(jì)算出對(duì)應(yīng)的淘汰閾值; (2.2)在淘汰閾值范圍內(nèi)優(yōu)先選擇干凈的頁(yè)面作為淘汰對(duì)象,以減少額外的寫(xiě)回非易失性主存操作,若沒(méi)有對(duì)應(yīng)的干凈頁(yè)面則選擇最小權(quán)重的臟頁(yè)面作為淘汰對(duì)象。4.如權(quán)利要求1或2所述的緩存方法,其特征在于,所述步驟(3)具體包括如下子步驟: (3.1)請(qǐng)求不命中,若請(qǐng)求頁(yè)面在緩存淘汰記錄集合中有對(duì)應(yīng)記錄則說(shuō)明該記錄最近發(fā)生過(guò)淘汰則選擇最近沒(méi)有發(fā)生過(guò)淘汰的緩存頁(yè)面作為淘汰對(duì)象; (3.2)若請(qǐng)求頁(yè)面在緩存淘汰記錄集合沒(méi)有記錄,則說(shuō)明該記錄最近沒(méi)有被訪問(wèn)過(guò)也沒(méi)有被淘汰過(guò),選擇最近曾淘汰過(guò)的頁(yè)面作為淘汰對(duì)象。5.—種混合內(nèi)存環(huán)境下淘汰數(shù)據(jù)感知的緩存系統(tǒng),其特征在于,包括監(jiān)控模塊、頁(yè)面置換模塊以及自適應(yīng)空間劃分模塊,其中: 所述監(jiān)控模塊,用于對(duì)緩存中淘汰的數(shù)據(jù)記錄進(jìn)行元數(shù)據(jù)收集和淘汰權(quán)重分析,用于支撐下面的頁(yè)面置換和空間劃分; 所述頁(yè)面置換模塊,用于緩存系統(tǒng)發(fā)生請(qǐng)求不命中時(shí),選擇對(duì)緩存性能影響最小且盡量不需要寫(xiě)回非易失性主存的頁(yè)面進(jìn)行淘汰; 所述自適應(yīng)空間劃分模塊,用于請(qǐng)求不命中且淘汰數(shù)據(jù)類(lèi)型未確定之前來(lái)判斷當(dāng)前階段應(yīng)該選擇哪種類(lèi)型的頁(yè)面作為淘汰對(duì)象。6.根據(jù)權(quán)利要求5所述淘汰數(shù)據(jù)感知的緩存系統(tǒng),其特征在于,所述監(jiān)控模塊包括淘汰頁(yè)面元數(shù)據(jù)收集子模塊和頁(yè)面淘汰權(quán)重分析子模塊,其中淘汰頁(yè)面元數(shù)據(jù)收集子模塊用來(lái)在淘汰操作發(fā)生后收集被淘汰頁(yè)面的元數(shù)據(jù)信息,元數(shù)據(jù)信息包含頁(yè)面地址、頁(yè)面淘汰時(shí)間和頁(yè)面淘汰次數(shù);頁(yè)面淘汰權(quán)重分析子模塊,用于在需要淘汰頁(yè)面時(shí),分析淘汰記錄集合中各個(gè)記錄的局部性權(quán)重,然后計(jì)算得出對(duì)應(yīng)緩存頁(yè)面的淘汰權(quán)重。7.根據(jù)權(quán)利要求5所述淘汰數(shù)據(jù)感知的緩存系統(tǒng),其特征在于,所述頁(yè)面置換模塊包括淘汰閾值評(píng)估子模塊和淘汰頁(yè)面選取子模塊,其中淘汰閾值評(píng)估子模塊,用于基于當(dāng)前緩存分組中各個(gè)頁(yè)面的淘汰權(quán)重大小,計(jì)算出權(quán)重的均值和中位數(shù),然后基于兩個(gè)值得出目標(biāo)淘汰閾值;淘汰頁(yè)面選取子模塊,用于基于淘汰閾值和頁(yè)面訪問(wèn)特征,選取目標(biāo)淘汰頁(yè)面,目標(biāo)淘汰頁(yè)面是指對(duì)緩存命中率影響小且盡量無(wú)需寫(xiě)回的頁(yè)面。8.根據(jù)權(quán)利要求5所述淘汰數(shù)據(jù)感知的緩存系統(tǒng),其特征在于,所述自適應(yīng)空間劃分模塊,用于在淘汰頁(yè)面類(lèi)型未確定之前,基于請(qǐng)求類(lèi)型和淘汰記錄,判定本次淘汰的目標(biāo)頁(yè)面類(lèi)型。
【文檔編號(hào)】G06F12/02GK105975402SQ201610278653
【公開(kāi)日】2016年9月28日
【申請(qǐng)日】2016年4月28日
【發(fā)明人】吳松, 賈佑闖, 金海
【申請(qǐng)人】華中科技大學(xué)