欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

控制高速緩存行的時效減少對存儲器的回寫的制作方法

文檔序號:11475660閱讀:294來源:國知局
控制高速緩存行的時效減少對存儲器的回寫的制造方法與工藝

本公開的實(shí)施例總體上涉及儲存類存儲器,并且更具體地涉及用于減少對存儲器的回寫的管理方法。



背景技術(shù):

新興的儲存類存儲器(相變存儲器、自旋轉(zhuǎn)移力矩隨機(jī)存取存儲器等)技術(shù)具有動態(tài)隨機(jī)存取存儲器(dram)或更好的讀取等待時間。這導(dǎo)致新興的儲存類存儲器作為對處理器存儲器層級的強(qiáng)有力的補(bǔ)充,作為dram的替代、混合存儲器,或甚至是末級高速緩存的替代。然而,出現(xiàn)的困難是儲存類存儲器中的慢寫入等待時間和耐久性。寫入中的任何延遲都將直接影響應(yīng)用程序的性能。類似地,處理器存儲器層級中的寫入頻率比持久性儲存的寫入頻率高幾個數(shù)量級。

因此,為了使用儲存類存儲器作為dram的替換或在混合主存儲器系統(tǒng)中使用儲存類存儲器,需要控制寫入的總數(shù)以及限制寫入帶寬需求。



技術(shù)實(shí)現(xiàn)要素:

本公開總體上涉及用于減少對存儲器的回寫的方法和裝置。該方法包括確定進(jìn)入較低級高速緩存的讀取請求是否是包含修改數(shù)據(jù)的高速緩存行,以及響應(yīng)于確定該讀取請求不是包含修改數(shù)據(jù)的高速緩存行,操縱高速緩存行的時效信息以減少對存儲器的回寫的數(shù)量。

在一個實(shí)施例中,本文公開了一種用于減少對存儲器的回寫的方法。該方法包括確定進(jìn)入較低級高速緩存的讀取請求是否是包含修改數(shù)據(jù)的高速緩存行,以及響應(yīng)于確定該讀取請求不是包含修改數(shù)據(jù)的高速緩存行,操縱高速緩存行的時效信息以減少對存儲器的回寫的數(shù)量。

在另一實(shí)施例中,本文公開了一種用于減少對存儲器的回寫的系統(tǒng)。該系統(tǒng)包括處理器和存儲器。存儲器存儲程序代碼,當(dāng)在處理器上執(zhí)行時,該程序代碼執(zhí)行用于管理存儲器的操作。該操作包括確定進(jìn)入較低級高速緩存的讀取請求是否是包含修改數(shù)據(jù)的高速緩存行,以及響應(yīng)于確定該讀取請求不是包含修改數(shù)據(jù)的高速緩存行,操縱高速緩存行的時效信息以減少對存儲器的回寫的數(shù)量。

在另一實(shí)施例中,本文公開了一種計(jì)算機(jī)可讀存儲介質(zhì)。該計(jì)算機(jī)可讀存儲介質(zhì)上存儲有指令,這些指令在由處理器執(zhí)行時使處理器運(yùn)行用于管理存儲器的操作。該操作包括確定進(jìn)入較低級高速緩存的讀取請求是否是包含修改數(shù)據(jù)的高速緩存行,以及響應(yīng)于確定該讀取請求不是包含修改數(shù)據(jù)的高速緩存行,操縱高速緩存行的時效信息以減少對存儲器的回寫的數(shù)量。

附圖說明

為了可以詳細(xì)地理解本公開的上述特征的方式,可以通過參考實(shí)施例來實(shí)現(xiàn)對以上簡要概述的本公開的更具體的描述,其中一些實(shí)施例在附圖中示出。然而,應(yīng)注意,附圖僅示出本公開的典型實(shí)施例,并且因此不應(yīng)被認(rèn)為是對其范圍的限制,因?yàn)楸竟_可以接受其他等效的實(shí)施例。

圖1示出了根據(jù)一個實(shí)施例的計(jì)算系統(tǒng)。

圖2示出了根據(jù)一個實(shí)施例的高速緩存的詳細(xì)視圖。

圖3示出了根據(jù)一個實(shí)施例的用于當(dāng)處理器將新的高速緩存行引入高速緩存時從該高速緩存中置換高速緩存行的常規(guī)方法。

圖4示出根據(jù)一個實(shí)施例的用于從較低級高速緩存中逐出高速緩存行的改進(jìn)的方法。

圖5示出根據(jù)另一實(shí)施例的用于從較低級高速緩存中逐出高速緩存行的方法。

圖6示出根據(jù)另一實(shí)施例的用于從較低級高速緩存中逐出高速緩存行的方法。

為了便于理解,在可能的情況下使用相同的附圖標(biāo)記來表示附圖中共同的相同元件。預(yù)期在一個實(shí)施例中公開的元件可以有利地用于其他實(shí)施例而無需具體詳述。

具體實(shí)施方式

在下文中,參考本公開的實(shí)施例。然而,應(yīng)當(dāng)理解,本公開不限于具體描述的實(shí)施例。相反,以下特征和元件的任何組合,無論是否涉及不同的實(shí)施例,都被預(yù)期為實(shí)現(xiàn)和實(shí)踐本公開。此外,盡管本公開的實(shí)施例可以實(shí)現(xiàn)優(yōu)于其他可能的解決方案和/或現(xiàn)有技術(shù)的優(yōu)點(diǎn),但是給定實(shí)施例是否實(shí)現(xiàn)特定優(yōu)點(diǎn)都不限制本公開。因此,以下方面、特征、實(shí)施例和優(yōu)點(diǎn)僅僅是說明性的,并且不被認(rèn)為是所附權(quán)利要求的要素或限制,除非在權(quán)利要求中明確地陳述。同樣地,對“本公開”的引用不應(yīng)被解釋為本文公開的任何發(fā)明主題的概括,并且不應(yīng)被認(rèn)為是所附權(quán)利要求的元素或限制,除非在權(quán)利要求中明確地陳述。

本公開總體上涉及一種用于減少對存儲器的回寫的方法和裝置。該方法包括確定進(jìn)入較低級高速緩存的讀取請求是否是包含修改數(shù)據(jù)的高速緩存行,以及響應(yīng)于確定該讀取請求不是包含修改數(shù)據(jù)的高速緩存行,操縱高速緩存行的時效(age)信息以減少對存儲器的回寫的數(shù)量。

圖1示出根據(jù)一個實(shí)施例的計(jì)算系統(tǒng)100。計(jì)算系統(tǒng)100包括硬件組件102,該硬件組件包括處理器104、存儲器106、儲存108以及網(wǎng)絡(luò)接口110。計(jì)算系統(tǒng)100還包括連接到計(jì)算系統(tǒng)100的i/o設(shè)備112(例如鍵盤和鼠標(biāo)設(shè)備)。

在一個實(shí)施例中,處理器104檢索并執(zhí)行存儲在存儲器106中的編程指令(例如程序代碼118)以及存儲并檢索駐留在存儲器106中的應(yīng)用數(shù)據(jù)。包括處理器104以代表單個處理器、多個處理器、具有多個處理核心的單個處理器等。處理器104包括多個硬件模塊,例如高速緩存116。高速緩存116存儲數(shù)據(jù),以便可以更快地服務(wù)于對該數(shù)據(jù)的未來的請求。例如,存儲在高速緩存116中的數(shù)據(jù)可以是較早計(jì)算的結(jié)果,或者是存儲在別處的數(shù)據(jù)的副本。

在一個實(shí)施例中,通常包括存儲器106以代表儲存類存儲器。儲存類存儲器包括非易失性的計(jì)算機(jī)存儲器形式,即,即使在重啟之后也可以檢索所存儲的信息的計(jì)算機(jī)存儲器。例如,存儲器106可以是只讀存儲器、閃存、鐵電隨機(jī)存取存儲器(f-ram)等。存儲器106包括具有多個編程指令的程序代碼118。例如,該多個編程指令可以包括用于減少從高速緩存116到存儲器106的回寫的程序代碼。

儲存108可以是磁盤驅(qū)動器儲存設(shè)備。盡管被示為單個單元,但是儲存108可以是固定和/或可移動儲存設(shè)備的組合,如固定磁盤驅(qū)動器、可移動存儲卡、光存儲器、網(wǎng)路附接儲存器(nas)或儲存區(qū)域網(wǎng)絡(luò)(san)。網(wǎng)絡(luò)接口110可以是允許計(jì)算系統(tǒng)100經(jīng)由網(wǎng)絡(luò)126與其他計(jì)算機(jī)通信的任何類型的網(wǎng)絡(luò)通信。

圖2示出了根據(jù)一個實(shí)施例的高速緩存116的詳細(xì)視圖。高速緩存116包括三個級別:末級(或較低級或l3)高速緩存202、二級(l2)高速緩存204以及一級(l1)高速緩存206。l1高速緩存206是最快的高速緩存,但是也是最小的高速緩存。l2高速緩存204比l1高速緩存206慢,但是具有比l1高速緩存206更大的容量。l3高速緩存202是高速緩存116中最慢的高速緩存。l3高速緩存202也是高速緩存116中最大的高速緩存。在現(xiàn)代處理器中,l1高速緩存206、l2高速緩存204和較低級高速緩存202由處理器(如圖1中的處理器104)本身進(jìn)行管理。處理器嘗試保持頻繁訪問數(shù)據(jù)(即高速緩存行)在高速緩存中,以避免要去儲存類存儲器106。最頻繁訪問的數(shù)據(jù)存儲在l1高速緩存206中。每當(dāng)在高速緩存116中沒有找到數(shù)據(jù)或高速緩存行時,處理器104從存儲器106引入數(shù)據(jù),并將高速緩存行保持在高速緩存116中。為了在高速緩存116中為新的高速緩存行騰出空間,需要從高速緩存116中置換高速緩存116中的現(xiàn)有高速緩存行。

圖3示出了根據(jù)一個實(shí)施例的用于當(dāng)處理器104將新的高速緩存行引入高速緩存116時從高速緩存116中置換高速緩存行的常規(guī)方法300。方法300開始于步驟302。在步驟302,讀/寫請求從處理器到達(dá)較低級高速緩存。在判定塊304,處理器確定是否存在高速緩存命中。當(dāng)所請求的高速緩存行已經(jīng)位于較低級高速緩存中時,發(fā)生高速緩存命中。如果發(fā)生高速緩存命中,則在步驟306,處理器更新高速緩存行的時效信息。例如,時效為0的高速緩存行比時效為1的高速緩存行更舊。這將意味著,時效為1的高速緩存行比時效為0的高速緩存行更頻繁地被訪問。

然而,如果在判定塊304,處理器確定不存在高速緩存命中,則在步驟308,處理器從高速緩存器中逐出最近最少使用的高速緩存行,用于為新的高速緩存行騰出空間。最近最少使用的高速緩存行是該高速緩存中最舊的高速緩存行或是最舊的高速緩存行之一。

驅(qū)逐最近最少使用策略不區(qū)分“干凈的”高速緩存行和“臟的”高速緩存行?!芭K的”高速緩存行是包含修改數(shù)據(jù)的高速緩存行,即包含僅在該高速緩存內(nèi)修改的數(shù)據(jù)的高速緩存行?!案蓛舻摹备咚倬彺嫘惺遣话魏涡薷臄?shù)據(jù)的高速緩存行,即僅包含在高速緩存內(nèi)未被修改的數(shù)據(jù)的高速緩存行。驅(qū)逐最近最少使用策略僅優(yōu)先考慮關(guān)于該高速緩存行的時效信息,即何時最后使用該高速緩存行。最近最少使用策略適用于基于易失性的主存儲器系統(tǒng),因?yàn)榛谝资缘闹鞔鎯ζ髦械淖x/寫等待時間大致相同。然而,對于儲存類存儲器,寫入可能比在基于易失性的主存儲器中慢得多。因此,驅(qū)逐最近最少使用策略可能不是最優(yōu)的,因?yàn)閷⑴K數(shù)據(jù)回寫到儲存類存儲器中可能花費(fèi)更長時間并且可能最終阻塞計(jì)算。

圖4示出根據(jù)一個實(shí)施例的用于從較低級高速緩存中逐出高速緩存行的改進(jìn)的方法400。該方法開始于步驟402。在步驟402,讀/寫請求到達(dá)較低級高速緩存。在判定塊404,處理器確定高速緩存行是干凈的高速緩存行還是臟的高速緩存行。如果高速緩存行是臟高速緩存行,則在判定塊406,處理器確定是否存在高速緩存命中。如果存在高速緩存命中,則在步驟408,處理器更新已經(jīng)存在于低級高速緩存中的高速緩存行的時效。如果沒有高速緩存命中,則在步驟420,處理器逐出最近最少使用的高速緩存行,因?yàn)樽x/寫請求是進(jìn)入該較低級高速緩存的新高速緩存行。

然而,如果在判定塊404處理器確定該高速緩存行是干凈的高速緩存行,則在判定塊410處理器確定該請求是讀取請求還是寫入請求。如果處理器確定該請求是寫入請求,則該方法移動到判定塊412,因?yàn)橛糜趯懭胝埱蟮母咚倬彺嫘袑⒆罱K變臟,并且應(yīng)當(dāng)使用傳統(tǒng)的最近最少使用方法。在判定塊412,處理器確定是否發(fā)生了高速緩存命中。如果發(fā)生了高速緩存命中,則在步驟414更新高速緩存行的時效信息。然而,如果處理器確定沒有發(fā)生高速緩存命中,則在步驟422更新高速緩存行的時效信息,并且在步驟420將最近最少使用的高速緩存行從該較低級高速緩存中逐出。

如果在判定塊410,處理器確定該請求是讀取請求,則該方法移動到判定塊416。在判定塊416,處理器確定是否發(fā)生了高速緩存命中。如果已經(jīng)發(fā)生高速緩存命中,則在步驟414更新高速緩存行的時效信息。如果在判定塊416處理器確定沒有發(fā)生高速緩存命中,則在步驟418處理器不更新高速緩存行的時效信息。處理器可以例如為高速緩存行指定零時效?;旧?,方法400在操縱干凈的高速緩存行的時效信息,用以在被訪問一次且從未被重用的干凈高速緩存行與被頻繁訪問的干凈高速緩存行之間進(jìn)行解密。

在處理器不更新該高速緩存行的時效信息之后,在步驟420理器逐出最近最少使用的高速緩存行。

圖5示出根據(jù)另一實(shí)施例的用于從較低級高速緩存中逐出高速緩存行的方法500。該方法開始于步驟502。在步驟502,讀/寫請求到達(dá)較低級高速緩存。在判定塊504,處理器確定高速緩存行是干凈的高速緩存行還是臟的高速緩存行。如果高速緩存行是臟高速緩存行,則在判定塊506,處理器確定是否存在高速緩存命中。如果存在高速緩存命中,則在步驟508,處理器更新已經(jīng)存在于低級高速緩存中的高速緩存行的時效。如果沒有高速緩存命中,則在步驟520,處理器逐出最近最少使用的高速緩存行,因?yàn)樽x/寫請求是進(jìn)入該較低級高速緩存的新高速緩存行。

然而,如果在判定塊504處理器確定高速緩存行是干凈的高速緩存行,則方法500前進(jìn)到判定塊510。在判定塊510,處理器確定該請求是讀取請求還是寫入請求。如果處理器確定該請求是寫入請求,則該方法移動到判定塊512,因?yàn)橛糜趯懭胝埱蟮母咚倬彺嫘袑⒆罱K變臟,并且可以使用傳統(tǒng)的最近最少使用方法。在判定塊512,處理器確定是否發(fā)生了高速緩存命中。如果發(fā)生了高速緩存命中,則在步驟514更新高速緩存行的時效信息。如果處理器確定沒有發(fā)生高速緩存命中,則在步驟522更新高速緩存行的時效信息,并且在步驟520將最近最少使用的高速緩存行從該較低級高速緩存中逐出。

如果在判定塊510,處理器確定該請求是讀取請求,則該方法移動到判定塊516。在判定塊516,處理器確定是否發(fā)生了高速緩存命中。如果沒有發(fā)生高速緩存命中,則在步驟522更新該高速緩存行的時效信息。在步驟520,處理器逐出最近最少使用的高速緩存行。然而,如果在判定塊516處理器確定發(fā)生了高速緩存命中,則在步驟518處理器不更新高速緩存行的時效信息?;旧希椒?00操縱干凈的高速緩存行的時效信息,用以通過僅僅更新一次干凈的高速緩存行的時效信息來確保所有干凈的高速緩存行具有相同的時效信息,即何時高速緩存行首先進(jìn)入該較低級高速緩存。在處理器不更新高速緩存行的時效信息之后,在步驟524,方法500回到步驟502。

圖6示出根據(jù)另一實(shí)施例的用于從較低級高速緩存中逐出高速緩存行的方法600。該方法開始于步驟602。在步驟602,讀/寫請求到達(dá)較低級高速緩存。在判定塊604,處理器確定高速緩存行是干凈的高速緩存行還是臟的高速緩存行。如果高速緩存行是臟高速緩存行,則在判定塊606,處理器確定是否存在高速緩存命中。如果存在高速緩存命中,則在步驟608,處理器更新已經(jīng)存在于低級高速緩存中的高速緩存行的時效。如果沒有高速緩存命中,則在步驟620,處理器逐出最近最少使用的高速緩存行,因?yàn)樽x/寫請求是進(jìn)入該較低級高速緩存的新高速緩存行。

然而,如果在判定塊604處理器確定高速緩存行是干凈的高速緩存行,則方法600前進(jìn)到判定塊610。在判定塊610,處理器確定該請求是讀取請求還是寫入請求。如果處理器確定該請求是寫入請求,則該方法移動到判定塊612,因?yàn)橛糜趯懭胝埱蟮母咚倬彺嫘袑⒆罱K變臟,并且應(yīng)當(dāng)使用傳統(tǒng)的最近最少使用方法。在判定塊612,處理器確定是否發(fā)生了高速緩存命中。如果發(fā)生了高速緩存命中,則在步驟614更新高速緩存行的時效信息。然而,如果處理器確定沒有發(fā)生高速緩存命中,則在步驟624更新高速緩存行的時效信息,并且在步驟620將最近最少使用的高速緩存行從該較低級高速緩存中逐出。

如果在判定塊610,處理器確定該請求是讀取請求,則該方法移動到判定塊616。在判定塊616,處理器確定是否發(fā)生了高速緩存命中。如果已發(fā)生高速緩存命中,則在步驟622,方法600返回到步驟602。如果在判定塊616處理器確定沒有發(fā)生高速緩存命中,則在步驟618處理器不更新高速緩存行的時效信息?;旧希椒?00通過不再更新干凈高速緩存行的時效信息來操縱干凈高速緩存行的時效信息。

在處理器不更新該高速緩存行的時效信息之后,在步驟620理器逐出最近最少使用的高速緩存行。

通過操縱干凈高速緩存行的時效信息,減少了對儲存類存儲器的回寫數(shù)量。減少對儲存類存儲器的回寫數(shù)量提高了替換作為主存儲器的易失性存儲器的儲存類存儲器的性能。因此,可以通過使用儲存類存儲器來增加讀取等待時間,而無需減少或至少不顯著減少寫入等待時間。

雖然前述內(nèi)容針對本公開的實(shí)施例,但是在不脫離本公開的基本范圍的情況下,可以設(shè)計(jì)本公開的其他和進(jìn)一步的實(shí)施例,并且本公開的范圍是由所附權(quán)利要求來確定的。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
皋兰县| 石柱| 保亭| 报价| 武安市| 图片| 正阳县| 龙井市| 新和县| 昌邑市| 汕尾市| 永登县| 鹿泉市| 静乐县| 丰台区| 莱西市| 大港区| 泰州市| 藁城市| 南康市| 哈巴河县| 八宿县| 含山县| 雅江县| 酉阳| 靖边县| 洪洞县| 棋牌| 罗城| 丹寨县| 通许县| 安阳市| 常山县| 长汀县| 城口县| 博野县| 凌海市| 汶上县| 中牟县| 新干县| 泸州市|