各個(gè)實(shí)施例總體上涉及計(jì)算系統(tǒng)架構(gòu),并且更具體地涉及管理系統(tǒng)級(jí)高速緩存。
背景技術(shù):
1、計(jì)算系統(tǒng)通常包括一個(gè)或更多個(gè)處理單元,例如中央處理單元(cpu)和/或圖形處理單元(gpu),以及一個(gè)或更多個(gè)存儲(chǔ)器系統(tǒng)?;ミB有助于計(jì)算系統(tǒng)的各種組件之間的通信,包括cpu、gpu、輔助處理器、視頻和/或音頻流設(shè)備、網(wǎng)絡(luò)適配器等。計(jì)算系統(tǒng)的這些組件代表一個(gè)或更多個(gè)應(yīng)用程序執(zhí)行各種過(guò)程,本文也稱(chēng)為工作。互連還促進(jìn)了計(jì)算系統(tǒng)的組件與共享存儲(chǔ)器系統(tǒng)(稱(chēng)為系統(tǒng)存儲(chǔ)器)之間進(jìn)行通信。在一些實(shí)施例中,系統(tǒng)存儲(chǔ)器用動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)設(shè)備和/或其他類(lèi)似的存儲(chǔ)器設(shè)備來(lái)實(shí)現(xiàn)。dram是一種常見(jiàn)類(lèi)型的存儲(chǔ)器,它提供了相對(duì)較大的存儲(chǔ)器空間和低功耗,但相對(duì)于其他類(lèi)型的存儲(chǔ)器具有相對(duì)較低的帶寬和較高的訪(fǎng)問(wèn)延時(shí)。
2、計(jì)算系統(tǒng)內(nèi)的控制電路有助于節(jié)省計(jì)算系統(tǒng)組件消耗的電力,同時(shí)保持適當(dāng)?shù)男阅芩健榱斯?jié)省電力,計(jì)算系統(tǒng)的組件在不同的使用場(chǎng)景中在高功率狀態(tài)和低功率狀態(tài)之間轉(zhuǎn)換。當(dāng)特定組件在執(zhí)行分配的工作期間被大量使用時(shí),該組件處于高功率狀態(tài)。當(dāng)特定組件在應(yīng)用程序執(zhí)行期間很少使用或根本不使用時(shí),該組件處于低功率狀態(tài)以降低功耗。
3、此外,在使用時(shí),計(jì)算系統(tǒng)的組件經(jīng)常訪(fǎng)問(wèn)系統(tǒng)存儲(chǔ)器,例如從系統(tǒng)存儲(chǔ)器中獲取指令、從系統(tǒng)存儲(chǔ)器加載數(shù)據(jù)、將數(shù)據(jù)存儲(chǔ)到系統(tǒng)存儲(chǔ)器,等等。因?yàn)槎鄠€(gè)組件可以訪(fǎng)問(wèn)系統(tǒng)存儲(chǔ)器,所以系統(tǒng)存儲(chǔ)器的有限帶寬會(huì)限制系統(tǒng)的整體性能。為了最小化計(jì)算系統(tǒng)的組件消耗的系統(tǒng)存儲(chǔ)器帶寬,可以在互連和系統(tǒng)存儲(chǔ)器之間,或者可替代地在互連本身內(nèi)放置所有組件都可以訪(fǎng)問(wèn)的共享高速緩存。這種類(lèi)型的共享高速緩存在本文中稱(chēng)為系統(tǒng)級(jí)高速緩存(slc),通常包括多個(gè)高速緩存行。在一些實(shí)施例中,slc用靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)設(shè)備和/或其他類(lèi)似的存儲(chǔ)器設(shè)備來(lái)實(shí)現(xiàn)。sram是一種常見(jiàn)類(lèi)型的存儲(chǔ)器,它提供相對(duì)較小的存儲(chǔ)器空間和較高的功耗,但相對(duì)于其他類(lèi)型的存儲(chǔ)器具有相對(duì)較高的帶寬和較短的訪(fǎng)問(wèn)延時(shí)。在系統(tǒng)中包括slc可以顯著減少針對(duì)系統(tǒng)存儲(chǔ)器的存儲(chǔ)器操作的數(shù)量,從而提高整體性能。
4、此外,由于slc提供了更高的帶寬,組件可以更快地完成工作,從而允許組件更頻繁地進(jìn)入低功率狀態(tài),并在這些低功率狀態(tài)下停留更長(zhǎng)的時(shí)間。另外,當(dāng)組件更頻繁地訪(fǎng)問(wèn)slc從而更不頻繁地訪(fǎng)問(wèn)系統(tǒng)存儲(chǔ)器時(shí),dram設(shè)備可以在不訪(fǎng)問(wèn)系統(tǒng)存儲(chǔ)器的時(shí)間段內(nèi)以較低的頻率運(yùn)行或進(jìn)入低功率狀態(tài)。
5、因?yàn)閟lc是一個(gè)相對(duì)較小的存儲(chǔ)器,所以在不久的將來(lái)可能會(huì)被訪(fǎng)問(wèn)的數(shù)據(jù)最好是在slc內(nèi)進(jìn)行維護(hù)。在現(xiàn)有技術(shù)中,高速緩存內(nèi)的或與高速緩存相關(guān)聯(lián)的控制電路實(shí)現(xiàn)一個(gè)或更多個(gè)高速緩存替換策略,以確定在向高速緩存發(fā)出新請(qǐng)求時(shí)要逐出哪些行。有利地,控制邏輯逐出過(guò)去可能已經(jīng)訪(fǎng)問(wèn)但在不久的將來(lái)不太可能被訪(fǎng)問(wèn)的數(shù)據(jù)。高速緩存替換策略試圖通過(guò)降低緩存未命中率來(lái)優(yōu)化slc的性能。
6、已經(jīng)部署了許多高速緩存替換策略。例如,隨機(jī)替換(rr)策略隨機(jī)選擇一個(gè)高速緩存行進(jìn)行逐出。雖然rr策略不需要訪(fǎng)問(wèn)歷史數(shù)據(jù),因此實(shí)現(xiàn)起來(lái)相對(duì)簡(jiǎn)單,但rr策略并沒(méi)有針對(duì)特定的存儲(chǔ)器訪(fǎng)問(wèn)模式進(jìn)行優(yōu)化。一些高速緩存替換策略基于訪(fǎng)問(wèn)新近性(recency),包括先進(jìn)先出(fifo)策略、后進(jìn)先出(lifo)策略、最近最不常使用(least-recently-used,lru)策略和最近最常使用(most-recently-used,mru)策略。同樣,一些高速緩存替換策略基于訪(fǎng)問(wèn)頻率,包括最不頻繁使用(lfu)策略。訪(fǎng)問(wèn)新近性策略和訪(fǎng)問(wèn)頻率策略涉及為每個(gè)高速緩存行存儲(chǔ)特定的訪(fǎng)問(wèn)歷史數(shù)據(jù),例如存儲(chǔ)時(shí)間、首次訪(fǎng)問(wèn)時(shí)間、上次訪(fǎng)問(wèn)時(shí)間、訪(fǎng)問(wèn)頻率等。因此,訪(fǎng)問(wèn)新近性策略和訪(fǎng)問(wèn)頻率策略的實(shí)現(xiàn)比rr策略更復(fù)雜,但針對(duì)特定的存儲(chǔ)器訪(fǎng)問(wèn)模式進(jìn)行了優(yōu)化。其他高速緩存替換策略基于存儲(chǔ)和使用訪(fǎng)問(wèn)歷史數(shù)據(jù),這些數(shù)據(jù)有助于預(yù)測(cè)高速高速緩存行何時(shí)可能被重新引用。這些高速緩存替換策略包括重引用區(qū)間預(yù)測(cè)(rrip)、靜態(tài)重引用區(qū)間預(yù)測(cè)(srrip)、雙峰重引用區(qū)間預(yù)測(cè)(brrip)、和動(dòng)態(tài)重引用區(qū)間預(yù)測(cè)(drrip)。重新引用預(yù)測(cè)策略的實(shí)現(xiàn)也比rr策略更復(fù)雜,并且在硬件和軟件復(fù)雜性與未命中率之間表現(xiàn)出不同的權(quán)衡,但同樣針對(duì)特定的存儲(chǔ)器訪(fǎng)問(wèn)模式進(jìn)行了優(yōu)化。
7、slc中傳統(tǒng)高速緩存替換策略的一個(gè)問(wèn)題是,計(jì)算系統(tǒng)的不同組件可以從不同的高速緩存替換策略中受益。在某些用例中,在數(shù)據(jù)被逐出之前可能引用存儲(chǔ)在高速緩存存儲(chǔ)器中的數(shù)據(jù)的第一組件可以從分配高速緩存存儲(chǔ)器中受益。然而,在數(shù)據(jù)被逐出之前不太可能引用存儲(chǔ)在高速緩存存儲(chǔ)器中的數(shù)據(jù)的第二組件可能不需要分配任何高速緩存存儲(chǔ)器。在這種用例中,選擇為第一組件分配高速緩存存儲(chǔ)器的高速緩存策略替換策略可能會(huì)導(dǎo)致不必要地為第二組件分配高速緩存存儲(chǔ)器,從而降低高速緩存存儲(chǔ)器對(duì)其他組件的好處。另一方面,不分配高速緩存存儲(chǔ)器可能適用于第二組件,但會(huì)導(dǎo)致第一組件以及可以從分配高速緩存存儲(chǔ)器中受益的其他組件的存儲(chǔ)器性能不佳。
8、與靜態(tài)策略相比,動(dòng)態(tài)高速緩存替換策略(如drrip)可以略微提高緩存利用率,但無(wú)法做出大膽的分配決策,從而顯著提高特定用例中高速緩存性能,并且無(wú)法最佳地處置諸如流式寫(xiě)入等情況,這些情況在很長(zhǎng)一段時(shí)間后才被訪(fǎng)問(wèn)一次。此外,系統(tǒng)狀態(tài)可以改變哪些高速緩存決策對(duì)于給定的一組客戶(hù)端請(qǐng)求流是最佳的。例如,當(dāng)cpu和其他客戶(hù)端處于活動(dòng)狀態(tài)時(shí),最佳解決方案可能是視頻客戶(hù)端請(qǐng)求流不在高速緩存中分配,而在視頻客戶(hù)端是唯一活動(dòng)客戶(hù)端的低功率用例中,這樣的客戶(hù)端可以從高速緩存中的分配中受益,以實(shí)現(xiàn)功率目標(biāo)。因此,與如果能夠更好地管理高速緩存行為相比,計(jì)算系統(tǒng)的性能和功率可能會(huì)受到影響。
9、如前所述,本領(lǐng)域需要的是利用客戶(hù)端的系統(tǒng)狀態(tài)和存儲(chǔ)器訪(fǎng)問(wèn)模式的知識(shí)來(lái)管理計(jì)算系統(tǒng)中的高速緩存存儲(chǔ)器的更有效的技術(shù)。
技術(shù)實(shí)現(xiàn)思路
1、本公開(kāi)的各個(gè)實(shí)施例闡述了一種用于管理計(jì)算系統(tǒng)中的高速緩存存儲(chǔ)器的計(jì)算機(jī)實(shí)現(xiàn)的方法。該方法包括識(shí)別計(jì)算系統(tǒng)的系統(tǒng)狀態(tài)。該方法還包括確定在計(jì)算系統(tǒng)中執(zhí)行的高速緩存存儲(chǔ)器的客戶(hù)端的存儲(chǔ)器訪(fǎng)問(wèn)模式。該方法還包括基于系統(tǒng)狀態(tài)和存儲(chǔ)器訪(fǎng)問(wèn)模式確定多個(gè)高速緩存控制參數(shù)。
2、其他實(shí)施例包括但不限于實(shí)現(xiàn)所公開(kāi)技術(shù)的一個(gè)或更多個(gè)方面的系統(tǒng),以及包括用于執(zhí)行所公開(kāi)技術(shù)一個(gè)或更多個(gè)方面的指令的一個(gè)或更多個(gè)計(jì)算機(jī)可讀介質(zhì)。
3、所公開(kāi)的技術(shù)相對(duì)于現(xiàn)有技術(shù)的至少一個(gè)技術(shù)優(yōu)點(diǎn)是,利用所公開(kāi)的方法,基于各種slc客戶(hù)端的存儲(chǔ)器訪(fǎng)問(wèn)用例動(dòng)態(tài)選擇高速緩存替換策略管理和高速緩存分區(qū)管理。這些技術(shù)既考慮了當(dāng)前系統(tǒng)狀態(tài),也考慮了客戶(hù)端提供的(子流)可緩存性信息。這些技術(shù)可以同時(shí)實(shí)現(xiàn)多種先前方法的優(yōu)點(diǎn),諸如drrip方法、基于狀態(tài)的方法、和基于客戶(hù)端提示的方法。與drrip方法一樣,這些技術(shù)可以推斷特定的客戶(hù)端流是否可以從高速緩存數(shù)據(jù)中受益。與基于狀態(tài)的方法一樣,這些技術(shù)可以根據(jù)當(dāng)前系統(tǒng)狀態(tài)配置高速緩存策略決策。與基于客戶(hù)端提示的方法一樣,這些技術(shù)可以為來(lái)自同一客戶(hù)端的不同類(lèi)型的請(qǐng)求做出不同的高速緩存決策。例如,這些技術(shù)可以選擇不為來(lái)自客戶(hù)端的流式數(shù)據(jù)訪(fǎng)問(wèn)分配高速緩存存儲(chǔ)器,并為來(lái)自同一客戶(hù)端的數(shù)據(jù)訪(fǎng)問(wèn)分配具有高重用可能性的高速緩存存儲(chǔ)器。通過(guò)這種方式,這些技術(shù)可以為每種客戶(hù)端和訪(fǎng)問(wèn)類(lèi)型做出最佳的高速緩存決策,同時(shí)考慮到當(dāng)前的系統(tǒng)狀態(tài)以及客戶(hù)端提供的子流信息。因此,與傳統(tǒng)方法相比,這些技術(shù)可以實(shí)現(xiàn)提高高速緩存存儲(chǔ)器的利用率、性能和電源管理。此外,這些技術(shù)是可擴(kuò)展的,因此高速緩存替換策略管理和高速緩存分區(qū)管理可以應(yīng)用于某些客戶(hù)端類(lèi)型和數(shù)據(jù)訪(fǎng)問(wèn)類(lèi)型,然后擴(kuò)展到應(yīng)用于其他客戶(hù)端類(lèi)型和數(shù)據(jù)訪(fǎng)問(wèn)類(lèi)型。此外,當(dāng)識(shí)別出其他用例時(shí),這些技術(shù)可以擴(kuò)展以識(shí)別和優(yōu)化其他用例。這些優(yōu)點(diǎn)代表了相對(duì)于現(xiàn)有技術(shù)方法的一個(gè)或更多個(gè)技術(shù)改進(jìn)。