本公開涉及數(shù)據(jù)處理領(lǐng)域。更具體而言,本申請涉及對數(shù)據(jù)處理裝置中的緩存的操作。
背景技術(shù):
使用緩存儲存擷取自內(nèi)存的數(shù)據(jù)項(xiàng)的臨時副本允許與自內(nèi)存擷取數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的潛時得以降低,且進(jìn)一步減少與那些數(shù)據(jù)項(xiàng)的擷取相關(guān)聯(lián)的功率消耗。然而,緩存本身對其中實(shí)施該緩存的系統(tǒng)具有漏泄功率成本;且在大的緩存中,此功率消耗可能相當(dāng)大。當(dāng)以數(shù)個部分(例如,數(shù)個存儲庫)提供緩存時,例如藉由當(dāng)決定較小的緩存將足夠滿足系統(tǒng)的處理要求而將緩存的一個或多個部分?jǐn)嚯姇r,可以采取步驟以減少緩存的漏泄。因此,可獲得由于將緩存的一部分?jǐn)嚯姰a(chǎn)生的漏泄功率減少的益處。然而,決定何時適于將緩存的一部分?jǐn)嚯姴⒉蝗菀?,并且存在改良此緩存功率管理決策制定處理的機(jī)會。
技術(shù)實(shí)現(xiàn)要素:
在至少一些實(shí)施例中,一種操作緩存的方法包含以下步驟:根據(jù)對緩存的性能的監(jiān)控來計算緩存命中帶寬;依據(jù)緩存的當(dāng)前供電的部分的比例來計算有效緩存漏泄功率;計算與在內(nèi)存訪問上消耗的有效緩存漏泄功率等效的內(nèi)存帶寬;且當(dāng)緩存命中帶寬小于等效的內(nèi)存帶寬時,減小緩存的當(dāng)前供電部分的比例。
在至少一些實(shí)施例中,提供一種用于操作緩存的裝置,該裝置包含:緩存監(jiān)控電路,用于監(jiān)控緩存的性能;緩存性能計算電路,用于自緩存監(jiān)控電路接收性能數(shù)據(jù)并且:根據(jù)性能數(shù)據(jù)計算緩存命中帶寬,依據(jù)緩存的當(dāng)前供電的部分比例來計算有效緩存漏泄功率,并且計算與在內(nèi)存訪問上消耗的有效緩存漏泄功率等效的內(nèi)存帶寬;及緩存功率控制電路,用于當(dāng)緩存命中帶寬小于等效的內(nèi)存帶寬時,減少緩存的當(dāng)前供電部分的比例。
在至少一些實(shí)施例中,提供一種用于操作緩存的裝置,該裝置包含:用于根據(jù)對緩存的性能的監(jiān)控來計算緩存命中帶寬的裝置;用于依據(jù)緩存的當(dāng)前供電部分的比例來計算有效緩存漏泄功率的裝置;用于計算與在內(nèi)存訪問上消耗的有效緩存漏泄功率等效的內(nèi)存帶寬的裝置;及用于當(dāng)緩存命中帶寬小于等效內(nèi)存帶寬時,降低緩存的當(dāng)前供電的部分的比例的裝置。
附圖說明
本申請的技術(shù)將進(jìn)一步僅例如參考如附圖中所示的本申請的實(shí)施例來描述,在這些附圖中:
圖1示意地圖示在一個實(shí)施例中的包含緩存的數(shù)據(jù)處理系統(tǒng);
圖2示意地更詳細(xì)地圖示在一個實(shí)施例中的圖1的緩存性能監(jiān)控塊;
圖3a及圖3b示意地圖示在一個實(shí)施例中的斷電閾值及上電閾值的選擇;及
圖4示意地圖示當(dāng)執(zhí)行一個實(shí)施例的方法時所采取的步驟序列。
具體實(shí)施方式
至少一些實(shí)施例提供一種操作緩存的方法,該方法包含以下步驟:根據(jù)對緩存的性能的監(jiān)控來計算緩存命中帶寬;依據(jù)緩存的當(dāng)前供電部分的比例來計算有效緩存漏泄功率;計算與在內(nèi)存訪問上消耗的有效緩存漏泄功率等效的內(nèi)存帶寬;及當(dāng)緩存命中帶寬小于等效內(nèi)存帶寬時,降低緩存的當(dāng)前供電部分的比例。
因此,本申請的技術(shù)提供了一種客觀實(shí)用的度量,根據(jù)該度量可做出關(guān)于是否將緩存的一部分?jǐn)嚯姷臎Q策。具體而言,本文考慮的折衷為由緩存的活動的給定比例部分提供的緩存命中帶寬與緩存的此比例部分的漏泄功率之間的折衷。換言之,為了證明緩存的正供電部分的此比例是適當(dāng)?shù)?,緩存的命中帶寬必須超過其漏泄。為了進(jìn)行此評估,本申請認(rèn)識到,應(yīng)評估等效的內(nèi)存成本(亦即,自內(nèi)存返回相同帶寬所需的功率(在此意謂超出訪問所需數(shù)據(jù)項(xiàng)的緩存,例如對于諸如dram的外部內(nèi)存))且隨后將該等效內(nèi)存成本與歸因于緩存的當(dāng)前有效比例部分的漏泄功率比較。具體而言,在緩存命中帶寬下降到小于等效內(nèi)存帶寬的情況下,本申請的技術(shù)教示以下結(jié)論:將緩存的此比例部分供電是不適當(dāng)?shù)那揖彺娴囊徊糠謶?yīng)斷電。
緩存可以各種形式提供,且具體而言,緩存的子劃分可以各種方式實(shí)施。與本申請的技術(shù)相關(guān)的特性為緩存的一部分可個別地斷電,而緩存的其余部分供電。在一些實(shí)施例中,緩存包含多個存儲庫(bank),其中多個存儲庫中的至少一個存儲庫能夠獨(dú)立于多個存儲庫中的其余部分?jǐn)嚯姟?赡艿那闆r是,各存儲庫以相同方式配置;且因此在一些實(shí)施例中,多個存儲庫的各存儲庫能夠個別地斷電。此外,可以各種方式提供對緩存的多個存儲庫的功率控制;但是在一些實(shí)施例中,減少緩存的當(dāng)前供電部分的比例包含將多個存儲庫中的至少一個存儲庫斷電。以類似的方式,緩存的當(dāng)前供電部分的比例可由多個存儲庫中當(dāng)前供電的存儲庫的數(shù)目給出。
基于緩存的當(dāng)前供電部分的比例計算的有效緩存漏泄功率例如可為每存儲庫漏泄功率乘以當(dāng)前供電的存儲庫數(shù)目。然而,在一些實(shí)施例中,有效緩存漏泄功率依據(jù)斷電閾值因子來計算,其中當(dāng)緩存的當(dāng)前供電部分的比例的值用于計算有效緩存漏泄功率時,斷電閾值因子減小該值。換言之,藉由將斷電閾值因子引入有效緩存漏泄功率的計算以修改在計算中使用的緩存的當(dāng)前(可能地)供電部分的比例,“縮放的”的有效漏泄功率被使用。具體而言,當(dāng)計算有效緩存漏泄功率時,人工地降低了緩存的當(dāng)前供電部分的比例。如此進(jìn)而降低所計算的等效的內(nèi)存帶寬。因而,此可設(shè)定值被實(shí)施為斷電閾值因子,此值的設(shè)定使得系統(tǒng)設(shè)計者(或操作者)能夠影響得出應(yīng)減少緩存的當(dāng)前供電部分的比例的結(jié)論的時刻。因此,對此閾值的影響提供了對緩存的一部分?jǐn)嚯姷臅r刻的控制,且具體而言對如何容易地觸發(fā)此斷電決策的設(shè)定的控制。
可以定義且以各種方式使用斷電閾值因子,但是在一些實(shí)施例中,斷電閾值因子可以設(shè)定在一定范圍以使得在計算有效緩存漏泄功率時使用的緩存的當(dāng)前供電部分的比例的值在以下范圍之間:針對第一斷電閾值因子值的緩存的當(dāng)前供電部分的比例;針對第二斷電閾值因子值的緩存的當(dāng)前供電部分的比例減去緩存的能夠被斷電的增量比例,。因此,斷電閾值因子可被設(shè)定以便計算中使用有效緩存漏泄功率對應(yīng)于所有的緩存的當(dāng)前供電比例,亦即,實(shí)際的緩存的當(dāng)前供電比例;直至在緩存的增量比例部分?jǐn)嚯?例如,其中該增量以存儲庫為單位,其中一個存儲庫斷開)的情況下的緩存的當(dāng)前供電比例。如此進(jìn)而導(dǎo)致等效的內(nèi)存帶寬得以對應(yīng)于所有的緩存的當(dāng)前供電比例而計算,直至等效內(nèi)存帶寬對應(yīng)于在增量比例部分被斷電的情況。對此值進(jìn)行選擇的效應(yīng)為設(shè)定做出關(guān)于將緩存的增量比例部分?jǐn)嚯姷臎Q策的侵害性,增量比例范圍自第一斷電閾值因子值(該第一斷電閾值因子值會更容易地使得此增量比例部分?jǐn)嚯?,?shí)質(zhì)上當(dāng)將此增量比例部分供電的命中帶寬效益小于最佳效益時即斷電),直至第二斷電閾值因子值(該第二斷電閾值因子值將導(dǎo)致此緩存的增量比例部分僅當(dāng)實(shí)質(zhì)上感知對該增量比例部分供電根本無法獲得任何命中帶寬效益時才斷電)。
在一些實(shí)施例中,斷電閾值因子被設(shè)定為比接近第一斷電閾值因子值更接近第二斷電閾值因子值的值。對斷電閾值因子的選擇使得性能能夠優(yōu)先化于節(jié)能(優(yōu)先一定的可設(shè)定的程度),盡管其他許多選擇亦是可預(yù)期的(取決于這些因子的相對重要性)。
對于比所有緩存更少的緩存被供電,本申請的技術(shù)認(rèn)識到,關(guān)于何時適于將緩存的一部分上電,可做出的類似決策。例如,歸因于正執(zhí)行的程序的改變(且因此其內(nèi)存訪問模式的改變)或若實(shí)際上做出縮減的未命中決策,則此舉可變得合適。然而,本申請的技術(shù)另外認(rèn)識到,在重設(shè)大小之后的命中帶寬的變化不提供擴(kuò)升決策所基于的適當(dāng)標(biāo)準(zhǔn),因?yàn)闅w因于上述因素(程序的改變及縮減未命中決策)中的任一者或兩者,命中帶寬可能降低。實(shí)際情況為,本申請的技術(shù)提倡將緩存未命中帶寬用作潛在擴(kuò)升效益的指示符。緩存未命中帶寬被認(rèn)為是“指示性”度量,因?yàn)殛P(guān)于擴(kuò)升的未命中至命中的轉(zhuǎn)換是未知的。該方法可使擴(kuò)升優(yōu)先化于縮減,以將性能損失最小化,且根據(jù)此專業(yè)的性能偏向,可以假定未命中至命中的100%轉(zhuǎn)換的最佳案例。因此,在一些實(shí)施例中,該方法包含當(dāng)緩存的當(dāng)前供電部分的比例少于所有緩存時所采取的以下進(jìn)一步步驟:根據(jù)對緩存的性能的監(jiān)控來計算緩存未命中帶寬;依據(jù)緩存的當(dāng)前未供電部分的增量比例來計算增量緩存漏泄功率;計算與用于引發(fā)增量緩存漏泄功率等效的緩存命中帶寬;且當(dāng)緩存未命中帶寬超過等效的緩存命中帶寬時,將緩存的當(dāng)前供電部分的比例增大所述增量比例。
在一些實(shí)施例中,緩存的增量比例為多個存儲庫中的一定存儲庫。
類似于上述斷電閾值因子,在一些實(shí)施例中,增量緩存漏泄功率依據(jù)上電閾值因子來計算,其中當(dāng)緩存的當(dāng)前未供電部分的增量比例值用于計算增量緩存漏泄功率時,上電閾值因子減小該值。換言之,藉由引入計算增量緩存漏泄功率的上電閾值因子,使用了“縮放”的增量緩存漏泄功率。具體而言,人工地降低了增量緩存漏泄功率。如此進(jìn)而降低了等效的緩存命中帶寬。因而,此可設(shè)定值被實(shí)施為上電閾值因子,此值的設(shè)定使得系統(tǒng)設(shè)計者(或操作者)能夠影響得出應(yīng)增加緩存的當(dāng)前供電部分的比例的結(jié)論的時刻。對此閾值的影響從而提供了對緩存的一部分上電的時刻的控制,尤其是對設(shè)置如何容易地觸發(fā)此上電決策的控制。
可以定義且以各種方式使用上電閾值因子,但是在一些實(shí)施例中,上電閾值因子可設(shè)定在一定范圍以使得在計算增量緩存漏泄功率時使用的緩存的當(dāng)前未供電部分的增量比例值在以下范圍之間:針對第一上電閾值因子值的緩存的當(dāng)前未供電部分的增量比例;和針對第二上電閾值因子值的零值。因此,上電閾值因子可被設(shè)定為使得用于計算的增量緩存漏泄功率對應(yīng)于所有的緩存的增量比例(即用于加電的候選部分)直至零(即對于用于計算的緩存的增量比例無影響)。這進(jìn)而又導(dǎo)致等效的緩存未命中帶寬對應(yīng)于所有的緩存的增量比例而被計算,直至等效的緩存未命中帶寬等于零。對此值的選擇的影響為做出關(guān)于將緩存的增量比例部分上電的決策的侵害性如何,增量比例范圍自使用第一斷電閾值因子值(更容易地將此增量比例部分上電,實(shí)質(zhì)上當(dāng)預(yù)期到將此增量比例部分上電的帶寬任何優(yōu)勢時就馬上對此增量部分上電),直至非常接近于第二斷電閾值因子值的值(亦即,僅略大于零),該第二斷電閾值因子值將導(dǎo)致此緩存的增量比例部分僅當(dāng)預(yù)期到從對該增量比例部分上電能獲得緩存命中帶寬的「“總體存儲庫的價值”時才對該增量比例部分上電。應(yīng)注意,以第一上電閾值因子值本身設(shè)定斷電閾值因子值將導(dǎo)致緩存未命中帶寬總是超過等效的緩存命中帶寬,且因此該特定情況要避免(除非明確地要求此“總是觸發(fā)”配置,例如用于測試目的)。
在一些實(shí)施例中,上電閾值因子被設(shè)定為比接近第二上電閾值因子值來說更接近第一上電閾值因子值的值。對上電閾值因子的選擇使得性能能夠優(yōu)先化于節(jié)能(優(yōu)先化一定的可設(shè)定程度),盡管還預(yù)期到很多其他選擇(取決于這些因子的相對重要性)。
除了上述決定何時降低緩存的當(dāng)前供電部分的比例及何時增加緩存的當(dāng)前供電部分的比例,本申請的技術(shù)還認(rèn)識到,在緩存的當(dāng)前供電部分的比例降低之后,在穩(wěn)定之前,緩存未命中率通??赡茉黾踊蛑辽佟巴辉?spike)”。然而,為了識別其中緩存未命中率增加,保持,但仍然很低而無法觸發(fā)緩存未命中帶寬檢查的情況,在緩存的當(dāng)前供電部分的比例降低之后,引入進(jìn)一步檢查以監(jiān)控緩存未命中率??梢愿鞣N方式定義該檢查,例如,檢查是否緩存未命中率增加了比預(yù)設(shè)緩存未命中率預(yù)設(shè)比例(相對閾值)更大的比例(通常在緩存縮減之前)?;蛘?,在適當(dāng)情況下,可以定義絕對未命中率閾值。在任一情況下,該檢查可進(jìn)一步包含識別在降低緩存的供電部分的部分之后的緩存未命中率是否超過所定義的閾值長達(dá)比預(yù)定時段更長的時間。因此,在一些實(shí)施例中,該方法在降低緩存的當(dāng)前供電部分的部分之后還包括以下進(jìn)一步步驟:監(jiān)控緩存未命中率;及當(dāng)緩存未命中率超過預(yù)定緩存未命中率閾值長達(dá)預(yù)定時段時,增加緩存的當(dāng)前供電部分的比例。
此外,本申請的技術(shù)認(rèn)識到,在上述緩存功率管理技術(shù)被應(yīng)用以控制何時將緩存的一部分?jǐn)嚯娂凹与姷那闆r下,通過防止緩存功率管理在緩存的當(dāng)前供電部分的比例增大之后又減小緩存的當(dāng)前供電部分的比例,提供了更加穩(wěn)定的功率管理協(xié)議。因此,避免了系統(tǒng)顛簸。因此,在一些實(shí)施例中,該方法包含以下進(jìn)一步步驟中的至少一者:延遲關(guān)于等效內(nèi)存帶寬是否超過緩存命中帶寬的計算;及延遲緩存的當(dāng)前供電部分的比例的任何后續(xù)降低。
可以各種方式監(jiān)控緩存的性能,具體而言在緩存的命中率及未命中率方面。應(yīng)注意,緩存性能的監(jiān)控可藉由(僅)以下各者中的任意兩者來執(zhí)行:命中計數(shù)器、未命中計數(shù)器、訪問計數(shù)器(因?yàn)樵L問計數(shù)等于命中計數(shù)加未命中計數(shù))。監(jiān)控可以針對整個緩存的“全局”水平來執(zhí)行,或可逐個存儲庫地執(zhí)行。因此,在一些實(shí)施例中,監(jiān)控緩存的性能包含監(jiān)控全局緩存性能;而在其他實(shí)施例中,監(jiān)控緩存的性能包含監(jiān)控每存儲庫緩存性能。
本申請的技術(shù)可藉由軟件(或包含于為固件)或硬件來實(shí)施,且一些實(shí)施例提供一種計算裝置可讀儲存介質(zhì),該計算裝置可讀儲存介質(zhì)以非瞬時方式儲存有指令,,這些指令當(dāng)由計算裝置執(zhí)行時引起計算裝置執(zhí)行任何前述所請求的方法。
一些實(shí)施例提供一種軟件,該軟件當(dāng)由計算裝置執(zhí)行時引起計算裝置執(zhí)行如上所述方法的任何特定實(shí)施例。
一些實(shí)施例提供一種用于操作緩存的裝置,該裝置包含:緩存監(jiān)控電路,用于監(jiān)控緩存的性能;緩存性能計算電路,用于自緩存監(jiān)控電路接收性能數(shù)據(jù)并且:根據(jù)性能數(shù)據(jù)計算緩存命中帶寬,依據(jù)緩存的當(dāng)前供電部分的比例來計算有效緩存漏泄功率,并且計算與在內(nèi)存訪問上消耗的有效緩存漏泄功率等效的內(nèi)存帶寬;及緩存功率控制電路,用于當(dāng)緩存命中帶寬小于等效的內(nèi)存帶寬時,減少緩存的當(dāng)前供電部分的比例。
一些實(shí)施例提供一種用于操作緩存的裝置,該裝置包含:用于根據(jù)對緩存的性能的監(jiān)控來計算緩存命中帶寬的裝置;用于依據(jù)緩存的當(dāng)前供電部分的比例來計算有效緩存漏泄功率的裝置;用于計算與在內(nèi)存訪問上消耗的有效緩存漏泄功率等效的內(nèi)存帶寬的裝置;及用于當(dāng)緩存命中帶寬小于等效的內(nèi)存帶寬時,降低緩存的當(dāng)前供電部分的比例的裝置?,F(xiàn)將參考附圖來描述一些特定實(shí)施例。
圖1示意地圖示數(shù)據(jù)處理系統(tǒng)10,該數(shù)據(jù)處理系統(tǒng)包含處理器核心12、緩存14及內(nèi)存(dram)16。如將為本領(lǐng)域技術(shù)人員所熟悉,處理器核心12對擷取自內(nèi)存16的數(shù)據(jù)項(xiàng)執(zhí)行數(shù)據(jù)處理操作,且為了避免與常常自內(nèi)存16讀取數(shù)據(jù)項(xiàng)和向內(nèi)存寫入數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的潛時及能量消耗,提供緩存14以保存這些數(shù)據(jù)項(xiàng)的臨時副本。緩存14本身被細(xì)分成數(shù)個(此處四個)存儲庫18至24。本上下文中所說明的特定特征為形成緩存14的一部分的緩存庫功率控制電路30。如此使得各存儲庫得以個別地上電或斷電。清除支持電路34在當(dāng)給定存儲庫被斷電時使得該存儲庫中的項(xiàng)目得以清除,而不造成危險或阻斷連續(xù)的執(zhí)行。緩存14還包含數(shù)個性能計數(shù)器32,這些性能計數(shù)器在圖1中的所示實(shí)施例中包含全局命中計數(shù)器及全局未命中計數(shù)器。應(yīng)注意,其他實(shí)施例可同等地提供訪問計數(shù)器(對緩存的所有訪問進(jìn)行計數(shù))及命中計數(shù)器與未命中計數(shù)器中的僅一者,因?yàn)樵L問的數(shù)目等于命中數(shù)目加上未命中數(shù)目。此外,盡管在所示實(shí)施例中,性能計數(shù)器32被配置以全局地橫跨緩存的四個存儲庫來監(jiān)控該緩存的性能,但是在其他實(shí)施例中,針對每個存儲庫提供個別的性能計數(shù)器。
在本上下文中,由核心12支持的兩個特定功能在本文中具有特定重要性,且這些功能藉由緩存性能監(jiān)控40及緩存性能計算42來說明。應(yīng)注意,在圖1中所示的實(shí)施例中的這些功能為自內(nèi)存16擷取且在核心12中執(zhí)行的軟件的結(jié)果,但是在其他實(shí)施例中,這些功能可以由固件或硬件提供,在此情況下,被配置以支持這些功能的緩存性能監(jiān)控電路及緩存性能計算電路形成核心12的一部分(或系統(tǒng)10的另一部分)。關(guān)于硬件實(shí)施的描述可見下文進(jìn)一步說明。在數(shù)據(jù)處理系統(tǒng)的操作(亦即,涉及核心訪問緩存14及內(nèi)存16中的數(shù)據(jù)項(xiàng)的數(shù)據(jù)處理操作)期間,緩存性能監(jiān)控單元40自性能計數(shù)器32接收命中計數(shù)及未命中計數(shù)的指示,且在此基礎(chǔ)上決定緩存命中帶寬及緩存未命中帶寬。圖1亦圖示由緩存性能監(jiān)控單元40接收的值n(有效緩存存儲庫的數(shù)目),且此值被傳遞至緩存性能計算單元42。在其他實(shí)施例中,值n可由緩存性能計算單元42自緩存存儲庫功率控制30直接地接收。n指示緩存14中當(dāng)前供電的存儲庫的數(shù)目。緩存性能計算單元42亦訪問儲存裝置44及46,從這些存儲裝置擷取值l、ed、td及tu。l為一個存儲庫的漏泄功率,例如,以mw為單位。ed為用于訪問dram16中的數(shù)據(jù)的能量消耗,例如以mj/mb為單位,其中該能量消耗包括在使用內(nèi)存控制器(未圖示)、ddrphy(未圖示)及dram本身中消耗的能量。td為縮減(downsizing)閾值參數(shù)及tu為擴(kuò)升(upsizing)閾值參數(shù)。
緩存性能計算單元42執(zhí)行兩個特定計算,首先基于當(dāng)前供電的存儲庫的數(shù)目來計算有效緩存漏泄功率,且其次計算在內(nèi)存訪問上消耗的有效緩存漏泄功率的等效內(nèi)存帶寬。這些計算基于在針對是否有效緩存庫的數(shù)目n是合理的判斷中的損益平衡點(diǎn)為:l×n=ed×hbw(其中hbw為緩存命中帶寬,例如以mb/s為單位)的前提。在這些項(xiàng)中,當(dāng)hbw>n×l/ed時,對緩存(其中n個存儲庫是有效的)繼續(xù)操作是合理的。因此,當(dāng)hbw<n×l/d時,可確定適于將緩存“縮減”至n-1個存儲庫。然而,在本文中亦使用縮減閾值td(該值被定義為采用0與1之間的值),且應(yīng)用該值以判斷是否hbw<(n-td)×l/e,且在此為真的情況下,緩存性能計算單元42發(fā)出斷電信號至緩存存儲庫功率控制30,于是存儲庫中的一個存儲庫被斷電。
在此處應(yīng)注意,此決定沒有考慮清除緩存的成本,但是該成本被認(rèn)為在縮減的益處下會隨著時間被吸收,因?yàn)槌绦蛲ǔT谙鄬﹂L的時段上是穩(wěn)定的。此外,由于斷電存儲庫,還有標(biāo)記動態(tài)節(jié)能的益處,上述公式并不依賴于此。
相反地,一旦緩存已減小了尺寸(至少一個存儲庫斷電),則通常會遇到將需要再次增大緩存的尺寸的時刻,這是因?yàn)橛珊诵膱?zhí)行的軟件已改變并帶來(潛在的)緩存使用率的變化,或因?yàn)樽龀隽丝s減的失誤決策。本文采用的用于決定何時擴(kuò)升緩存(將存儲庫上電)的技術(shù)利用緩存未命中帶寬(mbw)作為對潛在擴(kuò)升益處的指示。應(yīng)注意,未命中帶寬可最多為指示性度量,因?yàn)閷τ跀U(kuò)升的未命中至命中的轉(zhuǎn)換是未知的。然而,另外地,擴(kuò)升決策優(yōu)先于縮減決策,以最小化性能損失。為了決定何時擴(kuò)升,緩存性能監(jiān)控單元40確定緩存未命中帶寬(mbw),且緩存性能計算單元42確定在另一存儲庫被加電的情況下的增量緩存漏泄功率(。緩存性能計算單元42針對此增量緩存漏泄功率計算等效的緩存命中帶寬,且將此緩存命中帶寬與緩存未命中帶寬相比較。因此,在未命中帶寬(mbw)超過等效緩存命中帶寬的情況下,可以決定適于將緩存“擴(kuò)升”至n+1個存儲庫。
然而,類似于如上所述的縮減,使用擴(kuò)升閾值td(該值被定義為采用0與1之間的值),且應(yīng)用該值以決定是否mbw>(1-tu)×l/d,且在此舉為真的情況下,緩存性能計算單元42發(fā)出上電信號至緩存存儲庫功率控制30,于是存儲庫中的一個存儲庫被上電。
如將在下文參考圖4更詳細(xì)地描述,緩存性能計算42亦相對于緩存存儲庫功率控制發(fā)揮調(diào)節(jié)作用,以使得在緩存被縮減(至少一個存儲庫斷電)之后,檢查是否未命中率隨后增加,即使此檢查可能低于上述未命中帶寬檢查,例如藉由判斷是否已發(fā)生緩存未命中率的相對增大(例如,大于先前縮減值的10%)或是否發(fā)生緩存未命中率的絕對增加(例如超過定義的閾值長達(dá)比預(yù)設(shè)時段更長的時間)。在這些情況下,可隨后返回對存儲庫上電,且在預(yù)設(shè)時段內(nèi)防止對緩存的另外縮減以防止系統(tǒng)顛簸。
如上所述,此控制可在硬件中實(shí)施,且在該情況下,用于硬件控制回路的基本算法梗概的實(shí)例(忽略調(diào)節(jié)機(jī)制)如下:
圖2示意地更詳細(xì)地圖示圖1的緩存性能監(jiān)控單元40的示例性配置,且分別可見命中計數(shù)及未命中計數(shù)被轉(zhuǎn)換成為命中帶寬及未命中帶寬。先前命中計數(shù)56被與當(dāng)前命中計數(shù)比較,且這兩者之間于時段54上的差異給出命中帶寬。類似地,在先前未命中計數(shù)58與當(dāng)前未命中計數(shù)之間于時段54上的未命中計數(shù)變化52的決定給出未命中帶寬。
圖3a及圖3b示意地圖示設(shè)定斷電閾值td及上電閾值tu的影響。根據(jù)條件的上述定義(hbw<(n-td)×l/ed),可見斷電閾值td的效應(yīng)是人工地將值n降低最多一個單元,亦即,一個存儲庫。此舉可見地圖示于圖3a中,其中箭頭亦圖示降低斷電侵害的方向,亦即,當(dāng)td=0時,最容易越過在圖3a中用于決定斷電存儲庫3的閾值,而設(shè)定td=1意謂將最不容易地決定縮減(及斷電存儲庫3)。相反地,圖3b圖示相反情況,其中進(jìn)行關(guān)于是否將存儲庫3(該存儲庫當(dāng)前斷電)上電的決定。對上電閾值tu的值的選擇決定著此決策的侵害性,其中tu=1(接近于1)的設(shè)定最容易允許觸發(fā)將存儲庫3上電的決策,而對于tu=0,進(jìn)行最少侵害性的設(shè)定。應(yīng)注意,上述說明關(guān)于在大部分通常使用配置中避免設(shè)定tu=1。在實(shí)施本申請的技術(shù)時執(zhí)行的測試已表明,將td及tu兩者設(shè)定為大于0.5以將緩存的功率配置偏向擴(kuò)升是有益的。因此,性能比功率消耗優(yōu)先化。然而,其他配置是可想象的且例如在其中節(jié)能應(yīng)優(yōu)先于所有其他考慮的配置中,可以實(shí)施將tu及td設(shè)定為小于0.5。取決于系統(tǒng)要求,也可以將tu及td不對稱設(shè)定。
圖4示意地圖示根據(jù)一個實(shí)施例的方法所采用的步驟序列。該流程可視為開始于步驟60處,其中在計數(shù)器中收集指示緩存性能的度量,在圖1的實(shí)例中,這些計數(shù)器為命中計數(shù)器及未命中計數(shù)器。隨后,在步驟62處,決定是否已經(jīng)過監(jiān)控時段,且當(dāng)未經(jīng)過監(jiān)控時段時,流程返回至步驟60。一旦監(jiān)控時段已經(jīng)過,則在步驟64處,計算緩存命中帶寬(hbw)及緩存未命中帶寬(mbw)。在步驟66處,決定是否最后一次功率變化為存儲庫斷電。若為此情況,則流程進(jìn)行至步驟68,在該步驟處,檢查是否已作為結(jié)果發(fā)生了緩存未命中率增大。在圖4的示例性實(shí)施例中,此舉藉由決定是否緩存未命中率已超過未命中率閾值達(dá)長于預(yù)設(shè)時段的時段來檢查,其中應(yīng)理解此閾值可以相對項(xiàng)或絕對項(xiàng)來定義。若該增大尚未發(fā)生,則流程進(jìn)行至步驟70,其中決定是否比緩存的所有存儲庫更少的存儲庫被當(dāng)前供電(n<n存儲庫),且是否緩存未命中帶寬(mbw)超過所計算的等效的緩存命中帶寬,亦即,(1-tu)×l/ed。若為此情況,則在步驟72處,將存儲庫上電;且隨后在步驟74處,監(jiān)控時段定時器重置。流程隨后返回至步驟60。決策步驟70的否定結(jié)果采取流程至步驟76,其中決定是否緩存的至少一存儲庫被當(dāng)前供電(n>1)及是否緩存命中帶寬(hbw)小于等效內(nèi)存帶寬,亦即(n-td)×l/ed的決定。若此為真,則在步驟78處,將存儲庫斷電且流程進(jìn)行至步驟74。另外,在步驟76處的決策的否定結(jié)果將流程直接引導(dǎo)向步驟74。最終,返回至步驟68的考慮,若在此處確定緩存未命中率已因?yàn)榇鎯鞌嚯妼?shí)際上以不受歡迎的方式增大,則流程進(jìn)行至步驟80,在該步驟中存儲庫被上電且隨后的存儲庫斷電被禁止達(dá)冷卻時段。其后,在步驟82處重置監(jiān)控時段時間,且流程返回至步驟60。
作為簡單的總體總結(jié),提供了一種操作緩存的方法及相應(yīng)裝置。緩存僅能夠部分地供電,且用于降低緩存的當(dāng)前供電部分的比例的決策基于計算與在內(nèi)存訪問上消耗的當(dāng)前有效緩存漏泄功率等效的內(nèi)存帶寬。緩存命中帶寬被與此等效的內(nèi)存帶寬比較,且當(dāng)緩存命中帶寬小于等效的內(nèi)存帶寬時,緩存的當(dāng)前供電部分的比例被降低。亦可進(jìn)行類似決策且基于計算等效于緩存漏泄功率的增量增加的緩存命中帶寬,且當(dāng)緩存未命中帶寬超過等效的緩存命中帶寬時,緩存的當(dāng)前供電部分的比例被增加。
在本申請中,措辭“被配置以……”或“被布置以……”用于意謂裝置的組件具有能夠執(zhí)行所定義的操作的配置。在此上下文中,“配置”意謂硬件或軟件的布置或互連方式。例如,裝置可具有提供所定義的操作的專用硬件,或處理器或其他處理裝置可被編程以執(zhí)行此功能?!氨慌渲靡浴被颉氨徊贾靡浴辈灰馕堆b置組件需要以任何方式來改變以提供所定義的操作。
盡管已參考附圖在本文中詳細(xì)描述了說明性實(shí)施例,但是應(yīng)理解,本發(fā)明并不限于那些精確實(shí)施例,且在不背離如由所附權(quán)利要求所定義的本發(fā)明的范圍的情況下,本領(lǐng)域技術(shù)人員可實(shí)現(xiàn)各種變化、添加及修改。例如,在不背離本發(fā)明的范圍的情況下,可對獨(dú)立權(quán)利要求的特征與從屬權(quán)利要求的特征進(jìn)行各種組合。