本發(fā)明總體涉及處理器的性能優(yōu)化。更具體地,本發(fā)明涉及用于改善處理器性能的功率預(yù)算方法和系統(tǒng)。
背景技術(shù):
在計(jì)算機(jī)領(lǐng)域,改善處理器的性能是一個(gè)很重要的方面。處理器被設(shè)計(jì)為具有一定范圍的運(yùn)行頻率。有多種因素限制提供至處理器的最大功率,例如溫度、功率輸送系統(tǒng)的功率提供能力、功率提供網(wǎng)絡(luò)的電阻壓降問題等等。如何使得處理器更快地執(zhí)行應(yīng)用或者程序以在其功率限制范圍內(nèi)實(shí)現(xiàn)更好的性能是一個(gè)具有挑戰(zhàn)性的問題。
目前,提出了多種方法以在處理器的功能限制范圍內(nèi)優(yōu)化處理器性能。例如,一種現(xiàn)有的方法是用于在加速處理單元系統(tǒng)中進(jìn)行功率管理的協(xié)同提高方法。在該方法中,功率在CPU和GPU之間分配以通過考慮性能耦合和熱耦合效應(yīng)來實(shí)現(xiàn)優(yōu)化的性能。
另一種提出的方法是一種功率表征平衡方法,該方法在多個(gè)并行的多線程工作負(fù)載之間分配功率預(yù)算,以改善性能,同時(shí)保持功率在該功率預(yù)算之內(nèi),即,降低施加至非關(guān)鍵線程的功率并應(yīng)用到關(guān)鍵線程上。圖1顯示了這種方法的示意圖,其中核心C1、C2、C3和C4中的每一個(gè)被分配相同數(shù)量的功率,例如圖1中所顯示的“10”。當(dāng)核心2(C2)和核心3(C3)中的線程達(dá)到屏障并進(jìn)入自旋狀態(tài)時(shí),它們僅消耗少量的功率(例如圖1中所示的“4”),然后,其中的功率表征平衡單元(PTB)將多余的功率預(yù)算(即,圖1中所顯示的“6”)從核心2/核心3分配至核心1(C1)/核心4(C4),以加速核心1/核心4內(nèi)的線程的執(zhí)行,從而改善處理器的性能。
技術(shù)實(shí)現(xiàn)要素:
雖然現(xiàn)有技術(shù)中的上述方法能夠改善執(zhí)行性能,但是用于改善處理器性能的上述現(xiàn)有的方法是基于空間的功率分配并試圖在給定的短的時(shí)間窗內(nèi)優(yōu)化性能。這些方法沒有考慮時(shí)間上的溫度耦合對(duì)處理器性能的影響,因此所得到的結(jié)果是次佳的。
為了克服現(xiàn)有的性能改善方法中的缺點(diǎn),以進(jìn)一步優(yōu)化處理器性能,本發(fā)明提供了一種考慮時(shí)間熱耦合的功率預(yù)算方法和系統(tǒng),其考慮時(shí)間熱耦合對(duì)處理器性能的影響。
在第一方面,提供了一種功率預(yù)算方法。該方法包括預(yù)測(cè)程序的頻率不敏感階段和頻率敏感階段;當(dāng)被處理器執(zhí)行的所述程序進(jìn)入頻率不敏感階段時(shí),減少施加至該處理器的功率;以及當(dāng)被所述處理器執(zhí)行的所述程序進(jìn)入頻率敏感階段時(shí),增加施加至該處理器的功率。所述頻率敏感階段可緊接在所述頻率不敏感階段之后,并且可施加所述功率而不超出所述處理器的最高允許溫度。
在第二方面,提供了一種功率預(yù)算方法。該方法包括確定多個(gè)程序的頻率不敏感線程和頻率敏感線程;將該多個(gè)程序的所述頻率不敏感線程和所述頻率敏感線程交替地分配至同一個(gè)核心;當(dāng)處理器執(zhí)行所述頻率不敏感線程時(shí),減少施加至該處理器的功率;以及當(dāng)處理器執(zhí)行所述頻率敏感線程時(shí),增加施加至該處理器的功率。所述頻率敏感線程可緊接在所述頻率不敏感線程之后,并且可施加所述功率而不超出所述處理器的最高允許溫度。
在第三方面,提供了一種功率預(yù)算系統(tǒng)。該系統(tǒng)包括裝置,用于預(yù)測(cè)程序的頻率不敏感階段和頻率敏感階段;裝置,用于當(dāng)被處理器執(zhí)行的所述程序進(jìn)入頻率不敏感階段時(shí),減少施加至該處理器的功率;以及裝置,用于當(dāng)被所述處理器執(zhí)行的所述程序進(jìn)入頻率敏感階段時(shí),增加施加至該處理器的功率。所述頻率敏感階段可緊接在所述頻率不敏感階段之后,并且可施加所述功率而不超出所述處理器的最高允許溫度。
在第四方面,提供了一種功率預(yù)算系統(tǒng)。該系統(tǒng)包括裝置,用于確定多個(gè)程序的頻率不敏感線程和頻率敏感線程;裝置,用于將該多個(gè)程序的所述頻率不敏感線程和所述頻率敏感線程交替地分配至同一個(gè)核心;裝置,用于當(dāng)處理器執(zhí)行所述頻率不敏感線程時(shí),減少施加至該處理器的功 率;以及裝置,用于當(dāng)處理器執(zhí)行所述頻率敏感線程時(shí),增加施加至該處理器的功率。所述頻率敏感線程可緊接在所述頻率不敏感線程之后,并且可施加所述功率而不超出所述處理器的最高允許溫度。
通過提供上述方法的步驟以及上述的系統(tǒng),本發(fā)明能夠通過在時(shí)間上優(yōu)化施加到處理器的功率來克服現(xiàn)有的功率管理方案中的缺陷,從而能夠進(jìn)一步改善處理器的性能。此外,本發(fā)明的功率預(yù)算方法和系統(tǒng)也考慮了溫度,因而能夠確保處理器的可靠性。
附圖說明
附圖以示例的方式圖示了本發(fā)明,其并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中相同的數(shù)字表示相同的部件,其中:
圖1為現(xiàn)有技術(shù)中用于改善處理器性能的功率表征平衡方法的示意圖;
圖2為一示意圖,其顯示了(a)根據(jù)現(xiàn)有技術(shù)中的功率管理方案的在程序的不同執(zhí)行階段中的功率狀態(tài)、溫度和最高允許溫度與(b)本發(fā)明的功率預(yù)算方法中的相應(yīng)參數(shù)的比較。
圖3為使用在執(zhí)行單個(gè)程序的過程中的考慮時(shí)間熱耦合的功率預(yù)算方法的示例性實(shí)施方式的流程圖;以及
圖4為使用在執(zhí)行多個(gè)程序的過程中的考慮時(shí)間熱耦合的功率預(yù)算方法的示例性實(shí)施方式的流程圖;
具體實(shí)施方式
下面將參照附圖中所示的一些方面具體描述本發(fā)明。在下文的描述中,描述了一些具體的細(xì)節(jié)以提供對(duì)本發(fā)明的更深的理解。然而,對(duì)于本領(lǐng)域的技術(shù)人員來說顯而易見的是,即使不具有這些具體細(xì)節(jié)中的一些,本發(fā)明也可被實(shí)施。另一方面,一些公知的工藝步驟和/或結(jié)構(gòu)沒有被詳細(xì)描述以避免不必要地使本發(fā)明變得難以理解。
除了受到例如架構(gòu)、緩存大小等多種硬件特性的影響外,處理器的性能還受到執(zhí)行于其上的工作負(fù)載或者程序的特性的影響。也就是說,程 序或者應(yīng)用的特性也對(duì)處理器的執(zhí)行性能具有影響。一些應(yīng)用或程序是頻率敏感的。當(dāng)它們被處理器執(zhí)行時(shí),該處理器的執(zhí)行性能能夠隨著該處理器的運(yùn)行頻率的提高而顯著提高。一些應(yīng)用或程序是頻率不敏感的。當(dāng)它們被處理器執(zhí)行時(shí),頻率的變化對(duì)該處理器的執(zhí)行性能的影響比較小。同時(shí),對(duì)于單個(gè)程序或應(yīng)用而言,頻率敏感性在不同的執(zhí)行階段也是變化的。程序或應(yīng)用的一些執(zhí)行階段可能是頻率不敏感的,而其他執(zhí)行階段可能是頻率敏感的,這也會(huì)影響處理器的執(zhí)行性能。
圖2為一示意圖,其顯示了根據(jù)現(xiàn)有技術(shù)中的功率管理方案(例如雙向應(yīng)用功率管理方案)的在程序的不同執(zhí)行階段中的功率狀態(tài)、溫度和最高允許溫度與本發(fā)明的功率預(yù)算方法中的相應(yīng)參數(shù)的比較。如圖所示,圖2包括兩個(gè)圖(a)和(b),其中圖(a)顯示了當(dāng)程序由現(xiàn)有的功率管理方案(例如雙向應(yīng)用功率管理方案)執(zhí)行時(shí),在不同的執(zhí)行階段中的功率狀態(tài)、溫度和最高允許溫度,圖(b)顯示了當(dāng)程序由根據(jù)本發(fā)明的示例性實(shí)施方式的考慮時(shí)間熱耦合的功率預(yù)算方法執(zhí)行時(shí),在程序的不同執(zhí)行階段的功率狀態(tài)、溫度和最高允許溫度。
如圖2所示,圖(a)和(b)中的線M表示處理器允許達(dá)到的最高允許溫度。線P表示當(dāng)處理器根據(jù)現(xiàn)有的功率管理方案執(zhí)行單個(gè)程序時(shí),施加至該處理器的功率,而線P’表示當(dāng)處理器根據(jù)本發(fā)明的功率預(yù)算方案執(zhí)行單個(gè)程序時(shí),施加至該處理器的功率。線T表示當(dāng)處理器根據(jù)現(xiàn)有的功率管理方案執(zhí)行單個(gè)程序時(shí),處理器的溫度,而線T’表示當(dāng)處理器根據(jù)本發(fā)明的功率預(yù)算方案執(zhí)行單個(gè)程序時(shí),該處理器的溫度。
如圖2所示,在開始的時(shí)候,該示例性的程序處于頻率不敏感階段S1,這意味著處理器的執(zhí)行性能受頻率改變的影響較小。在這個(gè)階段,如圖(b)所示,能夠使得施加至處理器的功率P’低于現(xiàn)有技術(shù)中的功率P(參見圖(a)),以便降低處理器的溫度,這能夠使得在這個(gè)階段在降低微小的性能的情況下獲得更多的熱余量。例如,能夠降低處理器的運(yùn)行頻率以降低處理器的功率。然后,該程序進(jìn)入了頻率敏感階段S2,在該階段,處理器的執(zhí)行性能會(huì)隨著頻率的提高而顯著增加。在該階段,如圖(b)所示,通過利用在頻率不敏感階段S1獲得的額外的熱余量,施加至處理器的功 率P’能夠在不超出該處理器的最高允許溫度的情況下被增加到高于圖(a)所示的在相同階段施加至處理器的功率P?;蛘?,也可以在不超出該處理器的最高允許溫度M的情況下增加處理器的功率至小于P’的功率并且使處理器在更長的時(shí)間期間內(nèi)以該功率運(yùn)行。在一個(gè)方面,能夠提高處理器的運(yùn)行頻率以增加處理器的功率。通過這種方法,執(zhí)行程序的性能能夠在更長的時(shí)間窗內(nèi)被優(yōu)化,從而在整體上獲得了更高的性能。如圖2所示,使用現(xiàn)有的功率管理方案(例如雙向應(yīng)用功率管理方案)完成程序的執(zhí)行需要的時(shí)間T2,而相比之下,使用本發(fā)明的考慮時(shí)間熱耦合的功率預(yù)算方法,該程序能夠以更短的時(shí)間T1被完成。
在示例性的一個(gè)方面中,圖3顯示了使用在執(zhí)行單個(gè)程序或應(yīng)用的過程中的考慮時(shí)間熱耦合的功率預(yù)算方法的示例性實(shí)施方式的流程圖。該方法包括下述步驟,首先,在步驟30,預(yù)測(cè)程序的頻率不敏感階段和頻率敏感階段。然后,在步驟32,當(dāng)被處理器執(zhí)行的所述程序進(jìn)入頻率不敏感階段時(shí),減少施加至該處理器的功率。然后,在步驟34,該方法進(jìn)一步包括當(dāng)被所述處理器執(zhí)行的所述程序進(jìn)入頻率敏感階段時(shí),增加施加至該處理器的功率。在一種實(shí)施方式中,該頻率敏感階段緊接在該頻率不敏感階段之后。在一種實(shí)施方式中,可通過增加或降低處理器的運(yùn)行頻率來增加或者降低施加至該處理器的功率。
在一個(gè)方面,在上述步驟32中,當(dāng)前階段的頻率敏感性和下一個(gè)階段的頻率敏感性被用于確定當(dāng)前階段的最優(yōu)的功率預(yù)算。也就是說,可利用當(dāng)前階段和下一個(gè)階段的頻率敏感水平之間的相對(duì)關(guān)系來確定步驟32中功率的下降程度。例如,在一個(gè)方面,如果在當(dāng)前階段,頻率敏感水平非常低,而在下一個(gè)階段,頻率敏感水平非常高,則能將當(dāng)前階段施加的功率降低到最低的水平,由此,其不會(huì)顯著降低當(dāng)前階段的程序執(zhí)行性能,但是能夠使得在所述下一個(gè)階段獲得最大的頻率提高。如果當(dāng)前階段的頻率敏感水平為中等程度的低,并且下一個(gè)階段的頻率敏感水平為中等程度的高,則可將當(dāng)前階段的頻率敏感水平降低到與上述的情形相比相對(duì)較低的水平。在極端的情況下,當(dāng)當(dāng)前階段和下一個(gè)階段的頻率敏感水平相似時(shí),可不降低功率。
在一個(gè)方面中,所述程序的頻率不敏感階段可以是例如當(dāng)與存儲(chǔ)器相關(guān)的操作(例如存儲(chǔ)操作、訪問操作等等)被執(zhí)行時(shí)的階段。所述程序的頻率敏感階段可以是例如當(dāng)與計(jì)算相關(guān)的操作(例如算術(shù)運(yùn)算、邏輯運(yùn)算等等)被執(zhí)行時(shí)的階段。
根據(jù)圖3所示的上述方法,當(dāng)程序進(jìn)入頻率不敏感階段時(shí),通過降低施加至處理器的功率,可以使得該處理器運(yùn)行在更低的溫度,這能夠提供更多的溫度余量(即,處理器的當(dāng)前溫度與最高允許溫度之差),該溫度余量轉(zhuǎn)而能夠被用來允許處理器在程序的頻率敏感階段以更高的功率運(yùn)行。通過該方法,雖然在頻率不敏感階段,程序的執(zhí)行性能會(huì)有輕微的降低,但是在頻率敏感階段,程序的執(zhí)行性能會(huì)得到大幅的提高,其提高的幅度會(huì)超過在頻率不敏感階段所降低的性能。因此,總體來說,處理器執(zhí)行程序的整體的性能是提高的。
在一個(gè)方面中,圖4顯示了用于執(zhí)行多個(gè)程序的考慮時(shí)間熱耦合的功率預(yù)算方法的示例性實(shí)施方式的流程圖。該方法包括下述步驟:首先,在步驟40,確定多個(gè)程序的頻率不敏感線程和頻率敏感線程;然后在步驟42,將該多個(gè)程序的所述頻率不敏感線程和所述頻率敏感線程交替地分配至同一個(gè)核心;然后在步驟44,當(dāng)處理器執(zhí)行所述頻率不敏感線程時(shí),降低施加至該處理器的功率。以及在步驟46,該方法進(jìn)一步包括當(dāng)處理器執(zhí)行所述頻率敏感線程時(shí),增加施加至該處理器的功率。在一個(gè)方面,當(dāng)處理器執(zhí)行緊接在頻率不敏感線程之后的頻率敏感線程時(shí),可在不超出該處理器的最高允許溫度的情況下增加該處理器的功率。在一個(gè)方面,可通過增加或者減小該處理器的運(yùn)行頻率來增加或減小施加至該處理器的功率。在一個(gè)方面,所述程序的頻率不敏感線程可以是例如包括與存儲(chǔ)器相關(guān)的操作(例如存儲(chǔ)操作、訪問操作等等)的線程。所述程序的頻率敏感線程可以是例如包括與計(jì)算相關(guān)的操作(例如算術(shù)運(yùn)算、邏輯運(yùn)算等等)的線程。
在一個(gè)方面,在上述步驟44中,當(dāng)前線程的頻率敏感性和下一個(gè)線程的頻率敏感性被用于確定當(dāng)前線程的最優(yōu)的功率預(yù)算。也就是說,可利用當(dāng)前線程和下一個(gè)線程的頻率敏感水平之間的相對(duì)關(guān)系來確定步驟44中功率的下降程度。例如,在一個(gè)方面,如果在當(dāng)前線程,頻率敏感水平非常 低,而在下一個(gè)線程,頻率敏感水平非常高,則能將當(dāng)前線程施加的功率降低到最低的水平,由此,其不會(huì)顯著降低當(dāng)前線程的程序執(zhí)行性能,但是能夠使得在所述下一個(gè)線程獲得最大的頻率提高。如果當(dāng)前線程的頻率敏感水平為中等程度的低,并且下一個(gè)線程的頻率敏感水平為中等程度的高,則可將當(dāng)前線程的頻率敏感水平降低到與上述的情形相比相對(duì)較低的水平。在極端的情況下,當(dāng)當(dāng)前線程和下一個(gè)線程的頻率敏感水平相似時(shí),可不降低功率。
根據(jù)圖4所示的上述方法,當(dāng)程序執(zhí)行頻率不敏感線程時(shí),通過降低施加至處理器的功率,可以使得該處理器運(yùn)行在更低的溫度,這能夠提供更多的溫度余量,該溫度余量轉(zhuǎn)而能夠被用來允許處理器在執(zhí)行程序的頻率敏感線程時(shí)以更高的功率運(yùn)行。通過該方法,即使在執(zhí)行頻率不敏感線程時(shí),程序的執(zhí)行性能會(huì)有輕微的降低,但是在執(zhí)行頻率敏感線程時(shí),程序的執(zhí)行性能會(huì)得到大幅的提高,其提高的幅度會(huì)超過在執(zhí)行頻率不敏感線程時(shí)所降低的性能。因此,總體來說,處理器執(zhí)行程序的整體的性能是提高的。
除了改善執(zhí)行程序的整體性能,上述描述的本發(fā)明的功率預(yù)算方法也能夠產(chǎn)生其他的有益效果。例如,本發(fā)明的功率預(yù)算方法將溫度考慮在內(nèi),因此,能確保處理器的可靠性。另外,本發(fā)明的功率預(yù)算方法是基于時(shí)間功率分配的功率預(yù)算方法,其能夠與其它的空間功率預(yù)算方法結(jié)合以獲得處理器的全面的空間和時(shí)間性能優(yōu)化。
雖然在上文在具體的組合中描述了多個(gè)特征和元件,但是每個(gè)特征和元件能夠被單獨(dú)使用而不需要其它的特征和元件,或者在具有或不具有其它特征和元件的各種組合中使用。本文中提供的方法和流程圖可通過通用的計(jì)算機(jī)或處理器以并入計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)程序、軟件或者固件來實(shí)施。計(jì)算機(jī)可讀介質(zhì)的例子包括但不限于:磁介質(zhì),例如硬盤、軟盤和磁帶;光學(xué)介質(zhì),例如CD-ROM和全息存儲(chǔ)裝置;磁光介質(zhì),例如軟磁光盤;以及被專門配置成存儲(chǔ)和執(zhí)行程序代碼的硬件裝置,例如專用集成電路(ASICs)、可編程邏輯裝置、ROM和RAM裝置。
對(duì)于本領(lǐng)域的技術(shù)人員來說顯而易見的是,可以在不背離本發(fā)明的精神和權(quán)利要求的范圍的情況下對(duì)本發(fā)明作不同的修改和變型。因此,如 果對(duì)本發(fā)明的修改和變型落入了權(quán)利要求和它們的等同物的范圍內(nèi),那么應(yīng)當(dāng)認(rèn)為本發(fā)明覆蓋了對(duì)本發(fā)明所描述的不同實(shí)施例的修改和變型。