亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于處理器使用率動態(tài)地修正功率/性能權(quán)衡的制造方法與工藝

文檔序號:11489875閱讀:216來源:國知局
基于處理器使用率動態(tài)地修正功率/性能權(quán)衡的制造方法與工藝
基于處理器使用率動態(tài)地修正功率/性能權(quán)衡

背景技術(shù):
半導(dǎo)體加工和邏輯設(shè)計的發(fā)展已允許可存在于集成電路設(shè)備上的邏輯的量增加。結(jié)果,計算機(jī)系統(tǒng)配置已從系統(tǒng)中的單個或多個集成電路演變至多硬件線程、多核、多設(shè)備和/或單個集成電路上的完整系統(tǒng)。附加地,隨著集成電路的密度增加,計算系統(tǒng)的功率需求(從嵌入式系統(tǒng)至服務(wù)器)也已逐步升級。此外,軟件低效率及其對硬件的需要也已造成計算設(shè)備能耗的增加。事實上,一些研究表明,計算設(shè)備消耗整個國家(例如美國)的電力供給的相當(dāng)大百分比。結(jié)果,對于與集成電路關(guān)聯(lián)的能效和節(jié)能存在至關(guān)重要的需求。隨著服務(wù)器、臺式計算機(jī)、筆記本計算機(jī)、超級本、平板計算機(jī)、移動電話、處理器、嵌入式系統(tǒng)等設(shè)備變得越來越盛行(從納入到典型計算機(jī)、汽車和電視機(jī)至生物技術(shù)),這些需求將增加。在許多計算環(huán)境中,已成事實的是在大多數(shù)時間例如服務(wù)器的系統(tǒng)在它們的峰值性能之下很好地工作。在這些低使用率周期,焦點在于節(jié)省盡可能多的功率以節(jié)省能量成本。功率管理技術(shù)可在低使用率周期期間帶來顯著的功率節(jié)省。然而,每種功率管理技術(shù)牽涉到功率/性能權(quán)衡,尤其是在高活動周期期間。用戶理想地在低使用率下想要節(jié)省盡可能多的功率,同時在高使用率時間實現(xiàn)最大性能。無法忍受高使用率下的性能損失的用戶一般調(diào)節(jié)功率管理特征以實現(xiàn)性能策略。這暗示當(dāng)服務(wù)器未被充分利用時,將消耗比優(yōu)化狀態(tài)更多的功率。想要在低使用率下節(jié)省功率的用戶一般調(diào)節(jié)功率管理特征以實現(xiàn)功率節(jié)省策略。這暗示當(dāng)服務(wù)器被高利用時,可能無法實現(xiàn)服務(wù)器的最高性能。然而,在其中終端用戶典型地可容忍較高性能損失的低服務(wù)器使用率時,未能實現(xiàn)可獲得的功率節(jié)省。附圖簡述圖1是根據(jù)本發(fā)明實施例的具有動態(tài)負(fù)載線調(diào)節(jié)的對于不同功率/性能分布的示例功率性能負(fù)載線的曲線圖。圖2是根據(jù)本發(fā)明實施例的方法的流程圖。圖3是根據(jù)本發(fā)明的一個實施例的動態(tài)切換架構(gòu)的框圖。圖4是根據(jù)本發(fā)明實施例的確定最大性能和活動狀態(tài)的時間的方法的流程圖。圖5是根據(jù)本發(fā)明實施例的處理器的框圖。圖6是根據(jù)本發(fā)明另一實施例的多域處理器的框圖。圖7是根據(jù)本發(fā)明實施例的系統(tǒng)的框圖。圖8是根據(jù)本發(fā)明一個實施例的具有點對點(PtP)互連的多處理器系統(tǒng)的框圖。圖9是根據(jù)本發(fā)明一個實施例的部分連接的四核處理器系統(tǒng)的框圖。具體實施方式這些實施例提供檢測處理器(例如多核處理器)的低/中等使用率的周期的機(jī)制,并響應(yīng)于該檢測調(diào)節(jié)功率管理特征以節(jié)省盡可能多的功率。同時,該機(jī)制可檢測處理器的高使用率周期并調(diào)節(jié)功率管理特征以最小化性能損失。更具體地,提供動態(tài)負(fù)載線調(diào)節(jié)架構(gòu)以實現(xiàn)該機(jī)制。功率性能負(fù)載線是諸如服務(wù)器之類的計算機(jī)系統(tǒng)在不同使用率下的功耗的表示。該負(fù)載線由此代表在每個傳遞的性能水平下消耗的功率并將功率管理特征對性能的影響考慮在內(nèi)。圖1是服務(wù)器對于功率/性能調(diào)節(jié)的不同設(shè)定的示例性功率性能負(fù)載線的圖形表示。當(dāng)功率/性能設(shè)定藉由性能策略10向性能傾斜時,服務(wù)器取得可能的最高性能;然而在低至中等使用率下的功耗更高。當(dāng)功率/性能設(shè)定藉由功率節(jié)省策略20向功率傾斜時,在低至中等使用率下的功耗減少;然而峰值性能也降低。進(jìn)而,功率/性能設(shè)定中的平衡策略30提供在功率和性能設(shè)定之間的中間立場。如本文中使用的,“功率/性能調(diào)節(jié)”的概念是以一般方式定義的。在非常一般的術(shù)語中,這表示對多功率管理特征的一組調(diào)節(jié)。術(shù)語“性能策略”表示以性能為目標(biāo)的一組調(diào)節(jié)。類似地,術(shù)語“功率節(jié)省策略”用來表示以功率為目標(biāo)的調(diào)節(jié),而術(shù)語“平衡策略”用來表示在功率節(jié)省策略和性能策略之間的調(diào)節(jié)。一般來說,功率節(jié)省策略和平衡策略可被視為非性能策略。在傳統(tǒng)系統(tǒng)中,這些不同的負(fù)載線是通過系統(tǒng)的靜態(tài)配置靜態(tài)地實現(xiàn)的。作為一個例子,操作系統(tǒng)(OS)可提供這三種策略中的一種的靜態(tài)選擇,這可通過終端用戶進(jìn)行配置。替代地,實施例提供在向功率傾斜的設(shè)定和向性能傾斜的設(shè)定之間動態(tài)地和自動地切換的技術(shù)。如此,在低使用率下可節(jié)省功率而在高使用率下保持性能。更具體地,實施例提供在低使用率下遵循功率節(jié)省策略20而在高使用率下則替代地經(jīng)由動態(tài)負(fù)載線切換25動態(tài)地向性能策略10移動的功率性能負(fù)載線。在各實施例中,可使用動態(tài)負(fù)載線調(diào)諧算法來檢測使用率點,在該使用率點下達(dá)到可供當(dāng)前功率/性能調(diào)節(jié)的最大性能水平,并朝著向性能傾斜的調(diào)節(jié)來切換策略。這種最大性能水平在各實施例中是可配置的。作為基于使用率的例子,動態(tài)負(fù)載線調(diào)節(jié)可在約8瓦(W)至30W之間以及40%和70%使用率之間的任何情況下節(jié)省。也可以看出,在將近100%的使用率下,性能水平與性能策略相匹配。實施例由此在低使用率下最大化功率節(jié)省,同時在高使用率下最大化性能。盡管下面的實施例是參照例如計算平臺或處理器的特定集成電路中的節(jié)能和能效來描述的,然而其它實施例適用于其它類型的集成電路和邏輯器件。本文描述的實施例的相似技術(shù)和教導(dǎo)可適用于可從更好的能效和節(jié)能中獲益的其它類型的電路或半導(dǎo)體器件。例如,所披露的實施例不限于任何具體類型的計算機(jī)系統(tǒng),并也可用于其它設(shè)備,例如手持設(shè)備、芯片上系統(tǒng)(SoC)以及嵌入式應(yīng)用。手持設(shè)備的一些例子包括蜂窩電話、互聯(lián)網(wǎng)協(xié)議設(shè)備、數(shù)字相機(jī)、個人數(shù)字助理(PDA)和手持PC。嵌入式應(yīng)用一般包括微控制器、數(shù)字信號處理器(DSP)、網(wǎng)絡(luò)計算機(jī)(上網(wǎng)本)、機(jī)頂盒、網(wǎng)絡(luò)集線器、廣域網(wǎng)(WAN)交換機(jī)或能執(zhí)行下面教導(dǎo)的功能和操作的任何其它系統(tǒng)。此外,本文描述的裝置、方法和系統(tǒng)不限于物理計算設(shè)備,而是也涉及對節(jié)能和能效的軟件優(yōu)化。如從下面的描述中變得更清楚的那樣,本文描述的方法、裝置和系統(tǒng)的實施例(不管是針對硬件、固件、軟件或其組合)對于“綠色技術(shù)”未來是至關(guān)重要的,例如涵蓋美國經(jīng)濟(jì)的很大一部分的產(chǎn)品中的節(jié)能和能效?,F(xiàn)在參照圖2,其中示出了根據(jù)本發(fā)明一實施例的方法的流程圖。如圖2所示,方法100可在諸如處理器的功率控制單元(PCU)的功率控制器中執(zhí)行。更具體地,PCU可包括根據(jù)本發(fā)明一個實施例的動態(tài)負(fù)載線調(diào)節(jié)邏輯。如圖所示,方法100可通過在評估間隔(方框110)期間確定多核處理器的核花費在最大性能狀態(tài)下的時間量而開始。如下文中進(jìn)一步描述的那樣,可采用不同的確定該持續(xù)時間的方式。注意盡管圖2的方法關(guān)于多核處理器,然而要理解本發(fā)明的范圍不限于這方面,并且其它實施例等同地適用于單核處理器。如進(jìn)一步看到的那樣,方法100在評估間隔期間通過確定處理器核花費在活動狀態(tài)下的時間量而繼續(xù)(方框120)。由于這些核中的至少一個核對于評估間隔的至少一些量的時間可能處于活動狀態(tài)但不是最大性能狀態(tài),因此花費在活動狀態(tài)下的時間量有可能大于花費在最大性能狀態(tài)下的時間量。仍然參見圖2,在方框130可確定比值。更具體地,該比值可對應(yīng)于最大性能狀態(tài)下的持續(xù)時間與活動狀態(tài)下的持續(xù)時間的比較。如此,如果兩個持續(xù)時間相同,則該比值為1。如果在活動狀態(tài)下花費的時間遠(yuǎn)大于在最大性能狀態(tài)下花費的時間,則該比值將更接近0。這些實施例可充分利用該比值信息以確定是否在功率管理策略之間動態(tài)地切換。具體如圖2中的菱形140所示,可以確定該比值是否大于第一閾值,即高閾值。盡管本發(fā)明的范圍不僅限于這個方面,然而在一些實施例中,該高閾值可在大約70%和90%之間。注意,該高閾值可由用戶動態(tài)地配置,例如基于系統(tǒng)的典型工作負(fù)載的表征。如果該比值高于該高閾值,則控制進(jìn)至方框150,在那里將功率管理策略設(shè)定至性能策略。是這樣的,由于在該高比值下,核在其活動的絕大多數(shù)時間處于最大性能狀態(tài),并由此系統(tǒng)可能從較高性能策略中獲益,這盡管可能減少功率節(jié)省,但能增加吞吐量并由此可能降低總的消耗功率。仍然參見圖2,如果相反該值比小于該高閾值,則控制進(jìn)至菱形框160,在那里可確定該比值是否低于低閾值。盡管本發(fā)明的范圍不僅限于這個方面,然而在一些實施例中,該低閾值可在大約10%和30%之間。如果該比值低于該低閾值,則控制進(jìn)至方框180,在那里可將功率管理策略設(shè)定至非性能策略。否則如果該比值在這些閾值之間,則控制進(jìn)至方框170,在那里可維持當(dāng)前策略。注意策略的更新可通過更新配置寄存器(例如在CPU中)的值來實現(xiàn)。雖然在圖2的實施例中示出具有該特定實現(xiàn),然而要理解本發(fā)明的范圍不限于此方面。隨著要求的系統(tǒng)性能增加,操作系統(tǒng)請求更高的性能狀態(tài)(被稱為P狀態(tài))。在給定的性能狀態(tài)下,如果核變得閑置,則它們進(jìn)入閑置狀態(tài)(被稱為C狀態(tài))。這些狀態(tài)可根據(jù)基于OS的機(jī)制,即先進(jìn)配置和平臺接口(ACIP)標(biāo)準(zhǔn)(例如2006年10月10日公布的修訂版3.0b)。根據(jù)ACPI,處理器可工作在多種功率和性能狀態(tài)下。對于功率狀態(tài),ACPI規(guī)定不同的功耗狀態(tài),一般指的是所謂的C1至Cn狀態(tài)。當(dāng)核處于活動時,其運行在C0狀態(tài),而當(dāng)核處于閑置時,其處于核低功率狀態(tài)、所謂的核非零C狀態(tài)(例如C1-C6狀態(tài))。除了這些功率狀態(tài),處理器可進(jìn)一步被配置成運行在多個性能狀態(tài)中的一個下,即從P0-PN。一般來說,P1性能狀態(tài)可對應(yīng)于能夠由OS請求的最高保證性能狀態(tài)。除了該P1狀態(tài),OS可進(jìn)一步請求更高的性能狀態(tài),即P0狀態(tài),該狀態(tài)對應(yīng)于最大性能狀態(tài)。該P0狀態(tài)由此可以是投機(jī)狀態(tài),其中當(dāng)功率和/或熱預(yù)算可用時,處理器硬件可配置該處理器或其至少一些部分以工作在比保證頻率更高的頻率下。隨著系統(tǒng)使用率從中等水平移動至高水平,平均P狀態(tài)增加并最終到達(dá)最大渦輪(turbo)狀態(tài)。同時,可用閑置周期減少并且核在多數(shù)時間保持活動。在一個實施例中,通過檢測所有核對于整個評估間隔均處于最高P狀態(tài)所在的點,可推斷出達(dá)到當(dāng)前功率/性能設(shè)定的最高性能點。對于給定的評估周期T(Eval),當(dāng)?shù)趇核在最高P狀態(tài)(Pmax)下處于活動狀態(tài)(例如C0)時其花費的時間被表示為T(i,C0,Pmax),并且可被稱為最大活動時間。跨所有核(例如M個核)的該時間之和由此等于:T(C0,Pmax)=ΣT(i,C0,Pmax).T(C0,Pmax)的最高值等于M*T(Eval)。當(dāng)T(C0,Pmax)到達(dá)其最高值時,則達(dá)到對于當(dāng)前功率/性能設(shè)定的最高性能點。這是根據(jù)本發(fā)明實施例的用于動態(tài)切換檢測器的原理。對于檢測器,可計入兩個附加的考量。首先,可使檢測器不受性能的瞬時變化影響。為此,可計算出總最大活動時間度量的指數(shù)移動平均值。對第N周期計算的平均值在下面給出,其中α代表平均常數(shù)。平均T(C0,Pmax,N)=α*平均T(C0,Pmax,N-1)+(1-α)*T(C0,Pmax)第二考量是活動核的數(shù)量從一個工作負(fù)載至另一工作負(fù)載和從一個周期至另一周期地改變。為了確保檢測器能適應(yīng)這種變化的工作負(fù)載,可執(zhí)行下列操作。在每個周期T(Eval)中,T(C0,i)代表第i核的活動時間。當(dāng)跨M個核求和時,這得到T(C0)并可被稱為活動時間。現(xiàn)在可使用與對T(C0,Pmax)求平均的相同方法來計算出第N周期的T(C0)的平均值:平均T(C0,N)=α*平均T(C0,N-1)+(1-α)*T(C0)平均T(C0,N)由此代表所有核的平均活動時間,而平均T(C0,Pmax,N)代表所有核當(dāng)活動并處于最高P狀態(tài)時的平均時間。在最高性能點,兩個平均值將變得彼此非??拷S纱?,檢測器可部分地根據(jù)下列操作來確定性能策略和非性能策略之間的最佳切換點:檢測器比值=平均T(C0,Pmax,N)/平均T(C0,N)。如果檢測器比值非常接近1(例如在大約80%和100%之間),則可執(zhí)行向性能策略的切換。相反如果檢測器比遠(yuǎn)低于1,則可作出向非性能策略的切換(基于用戶配置,向功率節(jié)省策略或者向平衡策略切換)。為了確保算法是穩(wěn)定的,可定義高、低閾值Threshold_High和Threshold_Low。檢測器由此確定該工作點,它可用來動態(tài)地設(shè)定正確的策略。如果檢測器比大于Threshold_High,則策略被設(shè)定至性能策略。如果檢測器比小于Threshold_Low,則策略被設(shè)定至非性能策略,例如功率節(jié)省策略或平衡策略中的一個。替代地,OS或其它軟件也可被給予選擇Threshold_High和Threshold_Low值的靈活性。圖3是根據(jù)本發(fā)明的一個實施例的動態(tài)切換架構(gòu)的框圖。如圖3所示,在一個實施例中可實現(xiàn)在PCU電路中的動態(tài)策略切換器200可用來確定評估間隔期間處理器處于多個狀態(tài)下的時間量,以給定方式比較這些持續(xù)時間,并至少部分地基于該比較和可選地基于閾值確定在下一操作間隔期間擬被運用的功率管理策略,這在一些實施例中可對應(yīng)于下一評估間隔。如圖所示,切換器200接收關(guān)于處理器的一個或多個核的狀態(tài)改變的信息。一旦出現(xiàn)任何這類狀態(tài)改變,就可更新最大性能累加器210和活動性能累加器220以維持其中處理器核處于給定狀態(tài)的評估間隔的總持續(xù)時間之和。如圖所示,該信息可被提供給累加器采樣器230,該累加器采樣器230可根據(jù)預(yù)定的間隔(例如每毫秒)采樣來自累加器的值。同時,采樣器可使累加器值重置以開始對下一評估間隔進(jìn)行累加。采樣器230將在評估間隔期間處理器處于最大性能狀態(tài)的持續(xù)時間提供給移動平均值最大性能處理器240。另外,采樣器230將與在處理器核處于活動狀態(tài)的評估間隔期間的持續(xù)時間相對應(yīng)的活動狀態(tài)值提供給移動平均值活動狀態(tài)處理器250。如圖所見,這些處理器可進(jìn)一步接收α值,其細(xì)節(jié)將在后面進(jìn)一步討論?;谠撔畔ⅲ@些處理器可產(chǎn)生移動平均值,這些移動平均值可以是在數(shù)個評估間隔內(nèi)的多個采樣器輸出的平均值。例如,盡管本發(fā)明的范圍不限于這個方面,然而在一些實施例中,移動平均值可以由大約5毫秒和100毫秒之間的評估間隔形成。由此,可將這些平均持續(xù)時間值提供給比較器和閾值檢測器260。首先,可確定與最大性能狀態(tài)的時間量與處于活動狀態(tài)的總時間對應(yīng)的比值。然后可將該比值與一個或多個閾值進(jìn)行比較?;谠摫容^,可選擇與前一評估間隔的功率管理策略相同的功率管理策略,或者可以是例如從非性能策略至性能策略(或相反)的動態(tài)切換。下面將描述所執(zhí)行的實際計算的進(jìn)一步細(xì)節(jié)。在各實施例中,最大活動狀態(tài)累加器210產(chǎn)生所有核在(C0,Pmax)狀態(tài)下花費的總時間之和。該累加器可實現(xiàn)在事件處理程序中,該事件處理程序每當(dāng)存在任何核的C狀態(tài)和/或P狀態(tài)改變時被觸發(fā)。事件處理程序保持兩個變量,即每個核對于(C0,Pmax)狀態(tài)的進(jìn)入時間戳以及代表一特定核在上次調(diào)用事件處理程序時是否曾處于(C0,Pmax)狀態(tài)的狀態(tài)掩碼。當(dāng)調(diào)用事件處理程序時,其跨所有核循環(huán)并計算當(dāng)前狀態(tài)掩碼。它將當(dāng)前狀態(tài)掩碼與上次狀態(tài)掩碼比較并檢測特定核退出(C0,Pmax)狀態(tài)還是進(jìn)入(C0,Pmax)狀態(tài)還是保持如前的相同狀態(tài)。當(dāng)從(C0,Pmax)狀態(tài)檢測到退出時,從當(dāng)前時間戳減去進(jìn)入時間戳并將結(jié)果值加至T(C0,Pmax)累加器。如果檢測到進(jìn)入(C0,Pmax),則將當(dāng)前時間戳存儲在對于該核的上次時間戳中。當(dāng)跨所有核完成這些動作時,累加器包含T(C0,Pmax)的最新值。在各實施例中,活動狀態(tài)累加器220產(chǎn)生跨所有核在(C0)狀態(tài)下花費的總時間之和。該累加器可同樣實現(xiàn)在事件處理程序中,該事件處理程序每當(dāng)存在核的C狀態(tài)和/或P狀態(tài)改變時被觸發(fā)。事件處理程序保持兩個變量,每個核對于(C0)狀態(tài)的進(jìn)入時間戳以及代表一特定核在上次調(diào)用事件處理程序時是否曾處于(C0)狀態(tài)的狀態(tài)掩碼。當(dāng)調(diào)用事件處理程序時,其跨所有核循環(huán)并計算當(dāng)前狀態(tài)掩碼。它將當(dāng)前狀態(tài)掩碼與上次狀態(tài)掩碼比較并檢測特定核退出(C0)狀態(tài)還是進(jìn)入(C0)狀態(tài)還是保持如前的相同狀態(tài)。當(dāng)從(C0)狀態(tài)檢測到退出時,從當(dāng)前時間戳減去進(jìn)入時間戳并將結(jié)果值加至T(C0)累加器。如果檢測到進(jìn)入(C0),則當(dāng)前時間戳被存儲在對于該核的上次時間戳中。當(dāng)跨所有核完成這些動作時,累加器包含T(C0)的最新值。在一個實施例中,累加器采樣器230可每1ms一次地對累加器進(jìn)行采樣。可基于期望的響應(yīng)時間對該采樣率作出調(diào)整。一旦對累加器進(jìn)行了采樣,就可將它們重置至零以允許對下一評估周期進(jìn)行累加。可將采樣的值存儲在例如一對寄存器的給定存儲區(qū)內(nèi),以分別存儲T(C0,Pmax,N)和T(C0,N)。進(jìn)而,處理器240、250通過使用T(C0,Pmax,N)和T(C0,N)的最新采樣輸入來更新這些平均值來執(zhí)行指數(shù)移動平均值計算。處理器240、250可在累加器采樣器以相同速率(例如每1ms一次)產(chǎn)生采樣值之后立即產(chǎn)生平均值,并由此可產(chǎn)生平均值T(C0,Pmax)和平均值T(C0)。進(jìn)而,可響應(yīng)于平均值的接收而執(zhí)行比較器260。在比較器260中,可計算平均值T(C0,Pmax)和平均值T(C0)之比值。然后可將該比值與高閾值和低閾值進(jìn)行比較。從該比較可如前所述地產(chǎn)生操作策略的最終確定。盡管關(guān)于確定最大性能和活動狀態(tài)的持續(xù)時間的分析是參考圖3的電路和圖4接下來的流程圖討論來描述的,然而要理解關(guān)于這些持續(xù)時間的確定在不同實施例中可以其它方式進(jìn)行?,F(xiàn)在參見圖4,圖4是根據(jù)本發(fā)明的實施例確定最大性能和活動狀態(tài)的時間的方法的流程圖。在一些實施例中,方法300可實現(xiàn)在圖3的電路200中。如圖所示,方法通過確定至少一個核的功率或性能狀態(tài)是否已發(fā)生改變而開始(菱形框310)??赏ㄟ^接收在PCU或其它功率控制器中的這種狀態(tài)改變的請求而確定是否已發(fā)生上述改變。根據(jù)關(guān)于不同處理器的更新狀態(tài)的這種信息,可產(chǎn)生當(dāng)前狀態(tài)掩碼(方框320)。注意,可以存在多種狀態(tài)掩碼,即關(guān)于最大性能狀態(tài)的一個和關(guān)于活動狀態(tài)的一個。在方框325,可將這些掩碼與之前的狀態(tài)掩碼進(jìn)行比較。如此可確定給定核的狀態(tài)是否由于方法300的上次執(zhí)行已改變。因此,對于多核處理器的每個核,可執(zhí)行在菱形框330開始的循環(huán)。在菱形框330,可確定給定核的狀態(tài)是否已發(fā)生改變。如果是,則控制進(jìn)至菱形框335,在那里可確定該狀態(tài)改變是否是從最大性能狀態(tài)和/或活動狀態(tài)的退出。如果是,控制進(jìn)至方框350,在那里可確定核在最大性能狀態(tài)和/或活動狀態(tài)中的停留長度。如進(jìn)一步討論的,這種確定在一些實施例中可基于時間戳信息。然后可在方框360將該確定的值累加到相應(yīng)累加器中??刂迫缓筮M(jìn)至菱形框365,在那里可確定是否要分析額外的核。如果是,則控制進(jìn)至方框370,在那里可對核數(shù)遞增,并且如前所述控制回到菱形框330。此外注意,如果在菱形框330確定給定核狀態(tài)沒有改變,則可在方框333完成相同的核遞增,并且控制還是進(jìn)至菱形框330。仍然參見圖4,否則如果確定該核沒有退出,則控制進(jìn)至菱形框340,在那里可確定是否已發(fā)生對最大性能和/或活動狀態(tài)的進(jìn)入。如果是,控制進(jìn)至方框345,在那里可對相應(yīng)的核記錄當(dāng)前時間戳以指示該進(jìn)入時間。控制如前所述地進(jìn)至菱形框365。一旦已確定所有核的狀態(tài)并相應(yīng)地更新各值,控制就進(jìn)至方框380,在那里可對累加器采樣以獲得最大性能停留值和活動狀態(tài)停留值。控制然后進(jìn)至方框390,在那里根據(jù)這些值產(chǎn)生最大性能停留和活動狀態(tài)停留的平均值(例如移動平均值)。在一個實施例中,這些值可用來確定它們之間的比值,并從中可作出給定的功率管理策略選擇。盡管在圖4的實施例中示出具有該特定實現(xiàn),然而要理解本發(fā)明的范圍不限于此方面?,F(xiàn)在參見表1,其示出根據(jù)本發(fā)明一個實施例的累加器算法偽代碼。表1BitVectorLast_C0_Mask[Num_Cores];BitVectorLast_C0Pmax_Mask[Num_Cores];BitVectorCurrent_C0_Mask[Num_Cores];BitVectorCurrent_C0Pmax_Mask[Num_Cores];ArrayLast_C0_Time_Stamp[Num_Cores];ArrayLast_C0Pmax_Time_Stamp[Num_Cores];T_C0Pmax_Accumulator;T_C0_Accumulator;Current_Time_Stamp;On(P-狀態(tài)或C-狀態(tài)改變)://采樣當(dāng)前時間戳Current_Time_Stamp=Read_TSC()//捕捉當(dāng)前狀態(tài)掩碼For(i=1;i<=Num_Cores;i++){If(current_state=C0),Current_C0_Mask[i]=1If(current_state=C0andP-state=Pmax),Current_C0Pmax_Mask[i]=1}//與前一狀態(tài)比較,更新C0、Pmax累加器For(i=0;i<=Num_Cores;i++){If(Current_C0Pmax_Mask[i]=1andLast_C0Pmax_Mask[i]=0)//進(jìn)入C0Pmax{Last_C0Pmax_Time_Stamp[i]=Current_Time_Stamp}Elseif(Current_C0Pmax_Mask[i]=0andLast_C0Pmax_Mask[i]=1)//從C0Pmax退出{T_C0Pmax_Accumulator+=Current_Time_Stamp–Last_C0Pmax_Time_Stamp[i]}Elseif(Current_C0Pmax_Mask[i]=1andLast_C0Pmax_Mask[i]=1)//繼續(xù)在C0Pmax{T_C0Pmax_Accumulator+=Current_Time_Stamp-Last_C0Pmax_Time_Stamp[i]Last_C0Pmax_Time_Stamp[i]=Current_Time_Stamp}}//與前一狀態(tài)比較,更新C0累加器For(i=0;i<=Num_Cores;i++){If(Current_C0_Mask[i]=1andLast_C0_Mask[i]=0)//進(jìn)入C0{Last_C0_Time_Stamp[i]=Current_Time_Stamp}Elseif(Current_C0_Mask[i]=0andLast_C0_Mask[i]=1)//從C0退出{T_C0_Accumulator+=Current_Time_Stamp–Last_C0_Time_Stamp[i]}Elseif(Current_C0_Mask[i]=1andLast_C0_Mask[i]=1)//繼續(xù)在C0{T_C0_Accumulator+=Current_Time_Stamp-Last_C0_Time_Stamp[i]Last_C0_Time_Stamp[i]=Current_Time_Stamp}}在一個實施例中,動態(tài)負(fù)載線調(diào)節(jié)算法具有三個可調(diào)節(jié)參數(shù)。α、閾值高和閾值低。在一些實施例中,這些值可在具有真實工作負(fù)載的系統(tǒng)中被調(diào)節(jié),該系統(tǒng)可基于這些值運行在不同的使用率下以確保切換發(fā)生在最大性能下。使用本發(fā)明的實施例,終端用戶可在低使用率下實現(xiàn)降低的功耗,并更具體地,終端用戶可在低/中等使用率下選擇優(yōu)選的調(diào)節(jié)策略,即令目標(biāo)使用率的功率節(jié)省最大化的調(diào)節(jié)。在高使用率下,處理器可動態(tài)地和自動地切換至性能策略,由此防止任何性能損失。因此,處理器可動態(tài)地檢測使用率并基于使用率動態(tài)地切換功率/性能策略。如此,之前使用性能策略的用戶可通過選擇功率節(jié)省或平衡模式實現(xiàn)典型使用(例如低/中等使用率)功率節(jié)省,而不需要顧慮損失峰值性能。實施例可實現(xiàn)在用于多個市場的處理器中,包括服務(wù)器處理器、臺式機(jī)處理器、移動處理器等等。現(xiàn)在參照圖5,其中示出了根據(jù)本發(fā)明一實施例的處理器的框圖。如圖5所示,處理器400可以是包括多個核410a–410n的多核處理器。在一個實施例中,每個這樣的核可處于獨立功率域并可被配置成基于工作負(fù)載進(jìn)入和退出活動狀態(tài)和/或最大性能狀態(tài)。各核可經(jīng)由互連415耦合至系統(tǒng)代理或包含多個組件的非核(uncore)420。如所見那樣,非核420可包括共享的高速緩沖存儲器430,它可以是最末級高速緩沖存儲器。另外,非核可包括集成的存儲器控制器440、多個接口450和功率控制單元455。在各實施例中,功率控制單元455可包括動態(tài)策略切換邏輯459,它可以是基于處理器使用率執(zhí)行功率管理策略的動態(tài)切換的邏輯。如進(jìn)一步看到的,多個寄存器或其它存儲可出現(xiàn)并由邏輯訪問。具體地說,狀態(tài)掩碼存儲456可存儲與活動狀態(tài)和最大性能狀態(tài)關(guān)聯(lián)的掩碼,包括對于每個狀態(tài)的當(dāng)前和前一狀態(tài)掩碼,其每一個具有對于每個核的指標(biāo)以指示該核是否處于相應(yīng)狀態(tài)下。另外,停留計數(shù)器(圖5中未示出)可存在以存儲累加值,該累加值可基于時間戳存儲457和時間戳計數(shù)器458中的時間戳信息而產(chǎn)生,所述時間戳存儲457可存儲對于每個核的給定狀態(tài)的進(jìn)入時間,所述時間戳計數(shù)器458可以是維持當(dāng)前系統(tǒng)時間戳值的計數(shù)器。進(jìn)一步參見圖5,處理器400可經(jīng)由存儲器總線與系統(tǒng)存儲器460通信。另外,通過接口450可連接諸如外圍設(shè)備、大容量存儲器等多種芯片外組件。雖然在圖5的實施例中示出具有該特定實現(xiàn),本發(fā)明的范圍不限于此方面。現(xiàn)在參照圖6,其中示出了根據(jù)本發(fā)明另一實施例的多域處理器的框圖。如圖6的實施例所示,處理器500包括多個域。具體地說,核域510可包括多個核5100–510n,圖形域520可包括一個或多個圖形引擎,并且可進(jìn)一步存在系統(tǒng)代理域550。在各實施例中,系統(tǒng)代理域550可在固定頻率下執(zhí)行并可在所有時間保持加電以應(yīng)對功率控制事件和功率管理,由此這些域510、520可被控制以動態(tài)地進(jìn)入和退出低功率狀態(tài)。每個域510、520可工作在不同電壓和/或功率下。注意,盡管僅示出了三個域,然而要理解本發(fā)明的范圍不限于這個方面并且其它實施例中可存在附加的域。例如,可存在多核域,其每一個域包括至少一個核。一般地說,除了各執(zhí)行單元和附加的處理元件外,每個核510可進(jìn)一步包括低級高速緩沖存儲器。進(jìn)而,各核可彼此耦合并耦合至由最末級高速緩沖存儲器(LLC)5400–540n的多個單元形成的共享高速緩沖存儲器。在各實施例中,LLC540可在核和圖形引擎以及多種媒體處理電路之中共享。如所見那樣,環(huán)形互連530由此將核耦合在一起,并提供核、圖形域520和系統(tǒng)代理電路550之間的互連。在一個實施例中,互連530可以是核域的一部分。然而在其它實施例中,環(huán)互連可以處于其本身的域。如進(jìn)一步所見那樣,系統(tǒng)代理域550可包括顯示器控制器552,其可將接口的控制提供給關(guān)聯(lián)的顯示器。如進(jìn)一步所見那樣,系統(tǒng)代理域550可包括功率控制單元555,它可包括根據(jù)本發(fā)明實施例的動態(tài)策略切換邏輯559以基于處理器使用率動態(tài)地控制為系統(tǒng)提供的活動功率管理,例如使用從策略管理存儲557獲得的信息。在各實施例中,邏輯可執(zhí)行圖1、圖2和圖4中如前所述的算法。如圖6中進(jìn)一步所見的,處理器500可進(jìn)一步包括集成的存儲器控制器(IMC)570,它可向例如動態(tài)隨機(jī)存取存儲器(DRAM)的系統(tǒng)存儲器提供接口??纱嬖诙鄠€接口5800–580n以允許處理器和其它電路之間的互連。例如,在一個實施例中,可提供至少一個直接媒體接口(DMI)接口以及一個或多個高速外設(shè)組件互連(PCIExpressTM(PCIeTM))接口。再進(jìn)一步,為了提供諸如附加處理器或其它電路的其它代理之間的通信,根據(jù)快速通道互連(QPI)協(xié)議的一個或多個接口也可被提供。盡管在圖6的實施例以這樣高程度地作出表示,然而要理解本發(fā)明的范圍不限于此方面。實施例可在許多不同的系統(tǒng)類型中實現(xiàn)。參照圖7,其中示出了根據(jù)本發(fā)明實施例的系統(tǒng)的框圖。如圖7所示,微處理器系統(tǒng)600是點對點互連系統(tǒng),并包括經(jīng)由點對點互連650耦合的第一處理器670和第二處理器680。如圖7所示,處理器670、680中的每一個可以是多核處理器,包括第一和第二處理器核(即處理器核674a和674b以及處理器核684a和684b),盡管處理器中可能存在潛在地多得多的核。如本文描述的,處理器中的每一個可包括PCU或其它邏輯以基于處理器使用率執(zhí)行功率管理策略的動態(tài)控制。仍然參見圖7,第一處理器670進(jìn)一步包括存儲器控制器中樞(MCH)672和點對點(P-P)接口676、678。類似地,第二處理器680包括MCH682和P-P接口686、688。如圖7所示,MCH672、682將處理器耦合至各存儲器,即存儲器632和存儲器634,它們可以是本地附連至各處理器的系統(tǒng)存儲器(例如DRAM)的部分。第一處理器670和第二處理器680可分別經(jīng)由P-P互連652和654耦合至芯片組690。如圖7中所示,芯片組690包括P-P接口694和698。此外,芯片組690包括通過P-P互連639將芯片組690耦合至高性能圖形引擎638的接口692。進(jìn)而,芯片組690可經(jīng)由接口696耦合至第一總線616。如圖7所示,各輸入/輸出(I/O)設(shè)備614可耦合至第一總線616以及總線橋618,該總線橋618將第一總線616耦合至第二總線620。各設(shè)備可耦合至第二總線620,所述設(shè)備包括例如鍵盤/鼠標(biāo)622、通信設(shè)備626和數(shù)據(jù)存儲單元628,所述數(shù)據(jù)存儲單元628在一個實施例中例如是可包括代碼630的盤驅(qū)動器或其它大容量存儲設(shè)備。此外,音頻I/O624可耦合至第二總線620。實施例可納入其它類型的系統(tǒng),包括諸如智能蜂窩電話、平板計算機(jī)、上網(wǎng)本、超級本之類的移動設(shè)備。圖8是使用QPI鏈路作為系統(tǒng)互連根據(jù)給定的高速緩沖存儲器相關(guān)協(xié)議與點對點(PtP)系統(tǒng)互連耦合的系統(tǒng)的方框圖。在圖示實施例中,每個處理器710耦合至兩個PtP鏈路725,并包括集成存儲器控制器715的一個實例,該集成存儲器控制器715進(jìn)而耦合至系統(tǒng)存儲器720的對應(yīng)本地部分。每個處理器可如本文所述地執(zhí)行在不同的功率管理策略之間的動態(tài)切換。處理器可使用一個鏈路連接至輸入/輸出中樞(IOH)730,并且剩下的鏈路被用來連接兩個處理器。參照圖9,其中示出了根據(jù)本發(fā)明另一實施例的系統(tǒng)的框圖。如圖9所示,系統(tǒng)800可以是部分連接的四核處理器系統(tǒng),其中每個處理器810(其每一個可以是多核多域處理器)經(jīng)由PtP鏈路耦合至每一其它處理器,并經(jīng)由存儲器互連耦合至存儲器的本地部分(例如動態(tài)隨機(jī)存取存儲器(820)),該存儲器互連耦合至對應(yīng)處理器的集成存儲器控制器815。在圖9的部分連接系統(tǒng)中,注意存在兩個IOH830、840,以使處理器8100、8101直接地耦合至IOH830并且處理器8102、8103類似地直接耦合至IOH840。實施例可以代碼的形式實現(xiàn),而且可存儲在其上存儲有指令的非瞬態(tài)存儲介質(zhì)上,這些指令可用于對系統(tǒng)編程以執(zhí)行這些指令。存儲介質(zhì)可包括但不限于:包括軟盤、光盤、固態(tài)驅(qū)動器(SSD)、壓縮盤只讀存儲器(CD-ROM)、可重寫壓縮盤(CD-RW)以及磁光盤的任何類型的盤;諸如只讀存儲器(ROM)、諸如動態(tài)隨機(jī)存取存儲器(DRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)之類的隨機(jī)存取存儲器(RAM)、可擦寫可編程只讀存儲器(EPROM)、閃存、電可擦寫可編程只讀存儲器(EEPROM)之類的半導(dǎo)體器件;磁卡或光卡,或適合于存儲電子指令的任何其他類型的介質(zhì)。雖然已經(jīng)針對有限個實施例描述了本發(fā)明,但本領(lǐng)域技術(shù)人員將會理解從中得出的多種修改和變化。所附權(quán)利要求旨在覆蓋落入本發(fā)明的真實精神和范圍中的所有這些修改和變化。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1