本發(fā)明是有關于電子裝置的處理器控制,更具體地,是有關于電子裝置中的需求處理器資源分配方法及相關裝置。
背景技術:
根據(jù)相關技術,隨著現(xiàn)代電子裝置的進步,中央處理器(Central Process Unit,CPU)拓撲動態(tài)變化且增加了多樣性。例如,從系統(tǒng)靈活性,功耗,散熱策略,產(chǎn)品差異等角度出發(fā),開發(fā)了從對稱式多處理器(Symmetric Multi-Processor,SMP)到異構(gòu)多核處理器(Heterogeneous Multi-Processor,HMP),非對稱式多處理器(Asymmetric Multi-Processor,AMP)甚至混合結(jié)構(gòu)等。與SMP相比,這些非SMP拓撲通常由有關物理特性的非對稱式CPU變量所組成,包括微架構(gòu),計算能力及功耗等。在非對稱式CPU之間的這些物理變量對傳統(tǒng)技術的SMP熱插拔(hot-plugging)及動態(tài)電壓和頻率調(diào)節(jié)(Dynamic Voltage and Frequency Scaling,DVFS)形成極大挑戰(zhàn)。
傳統(tǒng)的熱插拔和DVFS起源于SMP系統(tǒng),被設計為根據(jù)系統(tǒng)負載調(diào)節(jié)激活的核心(core)數(shù)目和有關的工作頻率。例如,若系統(tǒng)負載高于某閾值,一個或多個核心可被插入,并執(zhí)行頻率上移(frequency up-shifting)。若系統(tǒng)負載低于某閾值,一個或多個核心可被移除(un-plugged),并執(zhí)行頻率下移。但是SMP系統(tǒng)不會考慮來調(diào)整哪個核心,這是因為所有的核心都沒有差別。在非SMP系統(tǒng)上,為了在性能與低功耗之間進行平衡,特插拔和DVFS的決定有可能變得更加復雜。另外,在HMP上,一個較大的核心有可能具有更好的性能以及更高的功耗,而較小的核心可能具有更加平衡的功耗與性能。根據(jù)這些物理特性,兩個較小的核心可提供與一個較大的核心相同的計算能力,但是具有較少的總功耗。然而,任務不總是能夠可分的,且在兩個較小的核心中的一個上面運行的性能有可能只有一個較大核心的性能的一半,或者小于一半。因此,性能和低功耗的均衡有可能成為現(xiàn)代移動裝置上的重要問題,特別是在非對稱式系統(tǒng)上。例如,選擇錯誤類型的CPU有可能導致不佳的用戶體驗或不必要的系統(tǒng)電力浪費。已公開的實施方法及相關裝置可應用于一種或多種類型的處理器資源的組合,例 如SMP架構(gòu),HMP架構(gòu)以及AMP架構(gòu),其中SMP架構(gòu)通常包含具有相同的每秒百萬條指令的整數(shù)運算(Dhrystone Million Instructions Per Second,DMIPS)速度以及相同的工作頻率(例如,以兆赫茲為單位)的多個核心,HMP架構(gòu)通常包含具有不同的DMIPS,不同工作頻率以及不同功耗的多個核心,以及AMP架構(gòu)通常包含具有相同的DMIPS但不同的工作頻率或制造工藝的多個核心。
圖1為本領域處理器資源分配的傳統(tǒng)方法的示意圖。例如,該傳統(tǒng)方法可包含處理器資源110,處理器資源110包含多個處理器核心(例如,CPU核心),該多個處理器核心的例子可包含圖1頂部所示的處理器核心CPUX,CPUZ,CPUY,CPUL和CPUT。如圖1所示的多個處理器核心CPUX,CPUZ,CPUY,CPUL和CPUT中以虛線所表示的處理器核心(例如,處理器核心CPUZ,CPUL和CPUT)代表該處理器核心為熱拔出的(hot-unplugged)(即該處理器核心的電力被臨時關閉),以非虛線所表示的處理器核心(例如,處理器核心CPUX和CPUY)代表該處理器核心為熱插入的(hot-plugged)(即該處理器核心的電力被臨時打開),并根據(jù)該處理器核心中非虛線部分與虛線部分在整個處理器核心中所占的比率而以該處理器核心的全部能力或部分能力進行運作;舉例而言,在圖1所示處理器核心CPUX中,非虛線部分占據(jù)整個處理器核心的2/3,則處理器核心CPUX以其全部能力的2/3進行運作。在圖1所示處理器資源110結(jié)構(gòu)的下方,處理器核心中所顯示的陰影內(nèi)容指示該處理器核心相較于其計算能力的工作負載。該處理器核心的狀態(tài)可能隨時發(fā)生變化。
根據(jù)相關技術,傳統(tǒng)方法有可能使用遺留的熱插拔/DVFS方法。例如,在大概花費10毫秒(ms)或更長時間的第一次轉(zhuǎn)換中,傳統(tǒng)方法的DVFS操作有可能將線上的(online)CPU頻率上移至合理水平(有可能是線上CPU的最大能力)。在大概花費100毫秒(ms)或更長時間的第二次轉(zhuǎn)換中,當已有的線上CPU無法處理總體系統(tǒng)負載時,傳統(tǒng)方法的熱插拔操作可能使能(enable)一個或多個CPU減輕工作負載的緊張度(tensions)。使能CPU的考慮出發(fā)點可以是最大功率,最大工作效率,最大省電等。然而,傳統(tǒng)方法也遇到了一些問題。例如,傳統(tǒng)方法有可能響應比較晚,熱插拔和DVFS的獨立使用有可能導致額外的延遲和響應時間。
如上所述,在相關技術中存在一些問題。因此,需要一種新的方法來增強電子裝置的處理器控制。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明提供一種處理器資源分配方法及裝置。
根據(jù)本發(fā)明一實施例的處理器資源分配方法,用于執(zhí)行電子裝置中的處理器資源分配,所述處理器資源分配方法包含:獲取任務相關信息以確定多個任務中的一個是否為繁重任務(heavy task),以選擇性地使用多個處理器核心中的特定處理器核心來執(zhí)行所述任務;確定在所述多個任務中的其它任務中是否存在至少一個場景任務(scenario task),并根據(jù)多個應用需求確定最小處理器核心數(shù)目和用以執(zhí)行所述至少一場景任務的最小工作頻率;以及根據(jù)功率表和系統(tǒng)負載執(zhí)行處理器資源分配,以執(zhí)行所述多個任務中的任意剩余部分。
根據(jù)本發(fā)明一實施例的處理器資源分配裝置,用于執(zhí)行電子裝置中的處理器資源分配,所述處理器資源分配裝置包含:多個處理器核心,位于所述電子裝置內(nèi),用于選擇性地執(zhí)行所述電子裝置的多個操作;以及控制電路,嵌入于所述多個處理器核心內(nèi)或者位于所述多個處理器核心之外,用于獲取任務相關信息以確定多個任務中的一個任務是否為繁重任務,以選擇性地使用所述多個處理器核心中的特定處理器核心來執(zhí)行所述任務,并確定是否在所述多個任務中的其它任務中存在至少一場景任務,以選擇性地根據(jù)應用需求確定最小處理器核心數(shù)目和用以執(zhí)行所述至少一場景任務的最小工作頻率,其中,所述控制電路根據(jù)功率表和系統(tǒng)負載執(zhí)行處理器資源分頻,以執(zhí)行所述多個任務中的任意剩余部分。
本發(fā)明所提供的處理器資源分配方法及裝置,其優(yōu)點之一在于能夠適當?shù)剡M行處理器資源分配,提高電子裝置的總體性能。
附圖說明
圖1為本領域處理器資源分配的傳統(tǒng)方法的示意圖。
圖2為根據(jù)本發(fā)明一實施例的執(zhí)行電子裝置中的處理器資源分配的裝置100的示意圖。
圖3為根據(jù)本發(fā)明一實施例的在電子裝置中執(zhí)行處理器資源分配的方法200的流程圖。
圖4為根據(jù)本發(fā)明一實施例的結(jié)合圖3所示方法200的控制機制的示意圖。
圖5為根據(jù)本發(fā)明一實施例的圖2所示控制電路120的一些具體實施示意圖。
圖6為根據(jù)本發(fā)明一實施例的結(jié)合圖3所示方法200的時序圖。
具體實施方式
在說明書及權(quán)利要求當中使用了某些詞匯來指稱特定的組件。本領域技術人員應可理解,硬件制造商可能會用不同的名詞來稱呼同一個組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準則。在通篇說明書及權(quán)利要求當中所提及的“包含”及“包括”為一開放式的用語,故應解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮艿恼`差范圍內(nèi),本領域技術人員能夠在一定誤差范圍內(nèi)解決所述技術問題,基本達到所述技術效果。此外,“耦接”一詞在此包含任何直接及間接的電性連接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表該第一裝置可直接電性連接于該第二裝置,或通過其它裝置或連接手段間接地電性連接至該第二裝置?!斑B接”一詞在此包含任何直接及間接、有線及無線的連接手段。以下所述為實施本發(fā)明的較佳方式,目的在于說明本發(fā)明的精神而非用以限定本發(fā)明的保護范圍,本發(fā)明的保護范圍當視后附的權(quán)利要求所界定者為準。
圖2為根據(jù)本發(fā)明一實施例的執(zhí)行電子裝置中的處理器資源分配的裝置100的示意圖,其中裝置100可包含該電子裝置的至少一部分。例如,裝置100可包含上述電子裝置的一部分,更具體地,裝置100可以是至少一硬件電路,例如電子裝置內(nèi)的至少一集成電路(Integrated Circuit,IC)及其相關電路。在另一實施例中,裝置100可以是上述電子裝置的全部。在另一實施例中,裝置100可包含系統(tǒng),該系統(tǒng)包含上述電子裝置(例如,包含該電子裝置的無線通信系統(tǒng))。該電子裝置的多個實施例可包含但不僅限于,移動電話(例如,多功能移動電話),平板電腦及諸如膝上型電腦或臺式電腦的個人電腦。
根據(jù)本實施例,裝置100可包含上述處理器資源110(包含多個處理器核心),在本實施例中,處理器資源110可位于電子裝置之內(nèi)。例如,裝置100可包含電子裝置中的至少一處理器,以及上述至少一處理器可包含多個處理器核心。為了便于理解,圖中所示處理器核心CPUX,CPUZ,CPUY,CPUL和CPUT可作為本實施例的多個處理器核心的實施例。如圖2所示,裝置100可進一步包含含控制電路120,控制電路120可位于該多個處理器核心之外。根據(jù)一些實施例,控制電路120可嵌入于多個處理器核心之內(nèi)。例如,控制電路120可使用上述至少一處理器來實施,在上述至少一處理器上可運行至少一程序模塊,例如從 操作系統(tǒng)(Operating System,OS)的現(xiàn)有內(nèi)核(kernel)修改得到的內(nèi)核程序模塊。
如圖2所示,處理器核心CPUX位于線上(表示處理器核心CPUx可以是熱插拔的,例如,處理器核心CPUX的電力可臨時打開),且并未工作在最大工作頻率上,這是因為剩余的虛線顯示了未使用的頻率能力,然而處理器核心CPUY完全以實線顯示,這指示該處理器核心CPUY位于線上(表示處理器核心CPUY可以是熱插拔的,例如,處理器核心CPUY的電力可臨時打開)且工作在最大工作頻率上,其中,完全以虛線所顯示的核心CPUZ,CPUL和CPUT指示該處理器核心CPUZ,CPUL和CPUT位于線下(表示處理器核心CPUZ,CPUL和CPUT可以是熱插拔的,例如,處理器核心CPUX的電力可臨時關閉)。與原處理器核心相比,具有相同半徑但總高度減半的多個處理器核心具有相同的DMIPS,但是最大工作頻率的比率為1:2,例如,處理器核心CPUX,CPUY和CPUZ與處理器核心CPUL相比。以及更大的半徑指示處理器核心具有更高的DMIP。由于處理器核心CPUT的高度大于處理器核心CPUX,CPUY和CPUZ,因此,處理器核心CPUT的最大工作效率高于處理器核心CPUX,CPUY和CPUZ。該多個處理器核心中的任意一個(例如圖2所示的處理器核心CPUX,CPUZ,CPUY,CPUL和CPUT中的任意一個)的狀態(tài)可隨時發(fā)生變化。
由于多個處理器核心中的任意一個可臨時熱插入或熱拔出,該多個處理器核心可用于選擇性地執(zhí)行用于電子裝置的操作。另外,控制電路120可用于將多個任務劃分為多個類別,并進一步根據(jù)上述一個或多個任務屬于多個類別中的哪個,將一個或多個任務分配或重新分配給該多個處理器核心中的一個或多個。根據(jù)本實施例,控制機制可用于滿足能效考慮,適用于任意現(xiàn)代CPU拓撲(包括但不僅限于SMP,HMP,AMP及混合結(jié)構(gòu))等性能需求。除系統(tǒng)總體負載之外,控制機制可將任務的不同所帶來的計算需求的變化也納入考量,不同任務所對應的計算需求應被獨立看待,而不應與系統(tǒng)負載的概念相混。例如,控制機制根據(jù)特性對關注性能的任務進行分類,包括但不僅限于幀產(chǎn)生(frame rendering)的任務,繁重負載的任務等,以便分配所需的核心數(shù)量及對應的類別(class)或頻率?;谛阅芩璧暮诵臄?shù)量,類別,頻率及總體系統(tǒng)負載,控制機制可參考一功率表以尋求滿足整個系統(tǒng)需求的最小功耗。因此,本實施例的系統(tǒng)100可解決圖1所示的傳統(tǒng)方法中的上述問題。
根據(jù)一些實施例,對于給定的一組CPU資源,根據(jù)該控制機制工作的裝置100可基于性能需求和能源問題分配必要的CPU。例如,通過使用CPU熱插拔 和DVFS,裝置100可盡量在具有不同物理特性(包括計算能力和電源效率)的群集(Cluster/Clusters)與一個或多個CPU之間作出最佳抉擇,以滿足性能需求。
圖3為根據(jù)本發(fā)明一實施例的在電子裝置中執(zhí)行處理器資源分配的方法200的流程圖。圖3所示的方案200可應用于圖2所示的裝置100及其上述至少一處理器,并可應用于上述控制電路120,而不論控制電路120位于圖2所示實施例中的多個處理器核心的外部還是嵌入于上述一些實施例的多個處理器核心的內(nèi)部。
在步驟210中,控制電路120可獲取任務相關信息以確定多個任務中的一個任務是否為繁重任務,然后選擇性地使用多個處理器核心中的特定處理器核心來執(zhí)行該任務,其中,該特定處理器核心可以是相較于該多個處理器核心中的其它處理器核心具有較高計算能力的處理器核心,以滿足繁重任務的需求。例如,當該任務為繁重任務時,控制電路120可使用特定處理器核心(例如,相較于該多個處理器核心中的其它處理器核心具有較高計算能力,且滿足繁重任務需求的處理器核心)來執(zhí)行該任務。為了實現(xiàn)最佳性能,該特定處理器核心可工作在其最高工作頻率上,例如,該特定處理器核心可用的最大工作頻率。根據(jù)一些實施例,任務相關信息可從運行在電子裝置上的程序模塊來獲取,例如,內(nèi)核程序。
舉例而言,任務相關信息可以包含排隊時間(queue time),排隊時間表示該任務排隊所需的時段;以及任務相關信息可進一步包含連續(xù)執(zhí)行時間,連續(xù)執(zhí)行時間表示任務在排隊排到后執(zhí)行所需的時段??刂齐娐?20可確定排隊時間和執(zhí)行時間的總和是否滿足預定準則(例如,該準則可以指示該繁重任務相較于該多個任務中的其它任務對應于較重的負載),以確定該任務是否為繁重任務。例如,當排隊時間和執(zhí)行時間的總和達到預定時間閾值時,控制電路120可確定該任務為繁重任務。在另一實施例中,當排隊時間和執(zhí)行時間的總和與某時段的比率達到預定比率閾值時,控制電路120可確定該任務為繁重任務。
在步驟220中,控制電路120可確定在該多個任務中的其它任務中是否存在至少一場景任務,以根據(jù)應用需求選擇性地確定用以執(zhí)行上述至少一場景任務的最小處理器核心數(shù)目和最小工作頻率。例如,當上述至少一場景任務存在時,控制電路120可根據(jù)應用需求確定用以執(zhí)行上述至少一場景任務的最小處理器核心數(shù)目和最小工作頻率。更具體地,當上述至少一場景任務存在時,控制電路120可使用該多個處理器核心中的至少另一處理器核心來執(zhí)行上述至少 一場景任務,其中,上述至少另一處理器核心的數(shù)目大于或等于最小處理器核心數(shù)目,以及上述至少另一處理器核心的工作頻率大于或等于該場景任務的應用所需的最小工作頻率。
在步驟230中,控制電路120可根據(jù)功率表和系統(tǒng)負載來執(zhí)行處理器資源分配,以執(zhí)行該多個任務中的任意剩余部分,例如該多個任務中的其它任務。舉例而言,控制電路120可計算所有剩余任務的工作負載的加和,然后根據(jù)該功率表執(zhí)行表查找操作,用以調(diào)整處理器核心的數(shù)目及共享總體工作負載,其中,對應于最小功耗的一個或多個已選擇處理器核心可具有步驟230中所使用的最高優(yōu)先級。
在一些實施例中,控制電路120可將功率表和總體工作負載也納入考慮,以選擇最合適的分配,從而以最低的功率成本滿足系統(tǒng)需求。例如,在這些實施例中的系統(tǒng)負載可以是代表總體工作負載的一個數(shù)字,而不同的任務特性有可能不會被考慮。
根據(jù)一些實施例,控制電路120可對任務執(zhí)行負載測量以產(chǎn)生負載測量結(jié)果。負責測量結(jié)果的多個實施例可包含但不僅限于,排隊時間,執(zhí)行時間及二者的派生(例如,排隊時間和執(zhí)行時間的總和,或者排隊時間和執(zhí)行時間的總和與某時段的比率)。另外,控制電路120可根據(jù)負載測量結(jié)果產(chǎn)生步驟210所提到的任務相關信息。例如,在步驟210中,當負載測量結(jié)果到達預定閾值(例如,預定時間閾值或預定比率閾值,取決于不同的預定準確實施例)時,控制電路120可確定該多個任務中的該任務為繁重任務。為便于說明,負載測量結(jié)果可在0%至100%的范圍內(nèi)變化,以及基于多種不同需求,預定閾值可定義為90%或另一固定值。此處僅用于說明目的,本發(fā)明并不以此為限。
根據(jù)一些實施例,例如圖4-7所示的一個或多個實施例,控制電路120可將多個任務劃分為多個分類,其中,該多個分類可包含“繁重任務類別”,“場景類別”以及“其它類別”。
表1
例如,控制電路120可將多個任務分類為根據(jù)任務的特性的多個分類,例如表1所示的分類。多個分類的實施例可包含但不僅限于,繁重任務類別(標識為表1中的“繁重任務”),場景類別(標識為表1中的“場景”)及上述其它類別(標識為表1中的“其它”)。繁重任務類別可對應于步驟210中所提到的繁重任務,場景類別可對應于步驟220中所提到的至少一場景任務,以及其它類別可對應于該多個任務中的剩余部分(即步驟230中所提到的剩余部分)。例如,步驟220中所提到的該至少一場景任務可包含至少一幀產(chǎn)生任務。為便于理解,幀產(chǎn)生任務可視為場景類別的一個例子,其中,對應于幀產(chǎn)生任務的多個任務的數(shù)目NFPS,累加的負載參數(shù)AccLoadFPS,以及預定的工作頻率FFPS可分別視為對應于場景類別的任務的數(shù)目NSCE,累加的負載參數(shù)AccLoadSCE,以及預定的工作頻率FSCE的例子。
關于場景類別,假定裝置100通過執(zhí)行對應于幀產(chǎn)生的一個或多個任務來更新幀??刂齐娐?20可確定與場景類別有關的一些參數(shù),例如一組每秒幀(Frame Per Second,FPS)參數(shù)。例如,有可能存在NFPS幀產(chǎn)生任務,其中,數(shù)目NFPS為大于或等于0的證書。這組FPS參數(shù)的例子可包含但不僅限于:
(F0),累加的負載參數(shù)AccLoadFPS,即,對應于一個或多個幀產(chǎn)生任務的累加負載;
(F1),用于幀產(chǎn)生任務所需的多個處理器核心中的在線核心的最小數(shù)目,例如,等于NFPS的一個數(shù)字;以及
(F2),這些在線核心所需的最小頻率,例如預定工作頻率FFPS。
為了滿足幀產(chǎn)生任務的需求,在該多個處理器核心內(nèi)用于幀產(chǎn)生任務所需的在線核心的數(shù)目可等于或大于NFPS,以及應用于幀產(chǎn)生任務的每個處理器核心的工作頻率可等于或大于FFPS。
關于繁重任務類別,控制電路120可確定與繁重任務類別有關的一些參數(shù)。例如,在步驟210所述多個任務內(nèi)存在NHT個繁重任務,其中,數(shù)目NHT為大于或等于0的整數(shù)。這組繁重任務(HT)參數(shù)的例子可包含但不僅限于:
(H0),累加的負載參數(shù)AccLoadFPS,即,對應于繁重任務的累加負載;以及
(H1),在該多個處理器核心中用于繁重任務所需的最強處理器核心(例如,最強CPU核心)的數(shù)目,例如,等于NHT的一個數(shù)字。
根據(jù)一些實施例,當電力充足且無需省電時,在該多個處理器核心中用于繁重任務所需的最強處理器核心的數(shù)目大于或等于NHT。根據(jù)一些實施例,該多個處理器核心中的每個處理器核心可以是單個核心處理器的處理器核心,因此,這組HT參數(shù)可包含這些實施例中的最強處理器的數(shù)目。
關于其它類別,舉例而言,假定存在NOTH個其它任務,其中,數(shù)目NOTH,即上述其它任務的任務數(shù)目,為大于或等于0的整數(shù)??刂齐娐?20可確定與其它類別有關的一些參數(shù),例如,累加負載參數(shù)AccLoadOTH,即對應于其它任務的累加負載。
圖4為根據(jù)本發(fā)明一實施例的結(jié)合圖3所示方法200的控制機制的示意圖。根據(jù)繁重任務的任務數(shù)目NHT,控制電路120可將最強處理器核心(例如,最強CPU核心)的數(shù)目確定為適當?shù)闹担杂行У赝瓿蒒HT個繁重任務。以及每個最強處理器核心可工作在可用的最大工作頻率FMAX。如圖4所示,高度和半徑指示處理器核心CPUT為最強的處理器核心。
該多個任務可包含一組幀產(chǎn)生任務P1,P2和P3,繁重任務P4,以及一個或多個其它任務PN??刂齐娐?20可分配處理器核心CPUT來執(zhí)行繁重任務P4,其中處理器核心CPUT至少工作在繁重任務P4所需的最小工作頻率上。另外,在功率表20的幫助下,控制電路120可分別分配處理器核心CPUX,CPUZ和CPUY來執(zhí)行幀組幀產(chǎn)生任務P1,P2和P3。另外,控制電路120可分配處理器核心CPUL以及處理器核心CPUX,CPUZ和CPUY的部分能力來執(zhí)行上述一個或多個其它任務PN。總之,當為一個或多個其它任務PN分配處理資源時,控制電路120可參考功率表20以尋找對應于最小功耗的配置。該方法的原則通常滿足以下需求:
(R1),至少NHT個最強處理器核心在線,每個在線的最強處理器核心工作在這些最強處理器核心的可用的最大工作頻率FMAX;
(R2),除繁重任務外,裝置100處理場景任務或來自應用的任務的累加負載。 通過至少NSCE個處理器核心在線,每個處理器核心工作在所需的工作頻率,例如預定的工作頻率FSCE或更高的工作頻率;以及
(R3),基于電力效率的問題,使用功率表來為一個或多個任務分配處理器核心。
在需求R2中的NSCE個處理器核心中,NHT個最強處理器核心可被排除,這意味著這NHT個最強處理器核心未包含于這組NSCE處理器核心之中。另外,若滿足上述需求R1,則在步驟210中,當該任務為繁重任務時,控制電路120可使用多個處理器核心中的一組特定處理器核心,例如,NHT個最強處理器核心,來執(zhí)行步驟210中的任務,其中,這組特定處理器核心包含該特定處理器核心。例如,該組特定處理器核心中的每個可工作在其最高工作頻率,例如,可用的最大工作頻率FMAX。通常,這組特定處理器核心可對應于與該多個處理器核心有關的最高計算能力,以及該組特定處理器核心(例如NHT個最強處理器核心)可用于盡快完成繁重任務。在一些實施例中,當步驟210中的任務為繁重任務時,控制電路120可使用該多個處理器核心中的這組特定處理器核心來分別執(zhí)行一組繁重任務(包含步驟210中所述的任務),例如NHT個繁重任務。舉例而言,這組特定處理器核心中的每個可工作在其最高工作頻率,例如可用的最高工作頻率FMAX。
圖5為根據(jù)本發(fā)明一實施例的圖2所示控制電路120的一些具體實施示意圖,其中,控制電路120可實施為上述至少一處理器,在該至少一處理器上可運行多個程序模塊。例如,這多個程序模塊可包含Linux內(nèi)核程序模塊(簡潔起見,在圖5中標記為“LINUX KERNEL”),庫(library)程序模塊(簡潔起見,在圖5中標記為“LIBRARIES”),以及處理器資源分配(Processor Resource Allocation,PRA)程序模塊(簡潔起見,在圖5中標記為“PRA”)。請注意,Linux內(nèi)核程序模塊可作為圖2所示實施例中的上述內(nèi)核程序模塊的一個例子,該內(nèi)核程序模塊可從現(xiàn)有的操作系統(tǒng)的內(nèi)核修改而來。另外,該Linux內(nèi)核程序模塊可包含一些子模塊,例如調(diào)度器(scheduler)和CPU拓撲單元(簡潔起見,在圖5中標記為“CPU拓撲”),以及庫程序模塊可包含一些子模塊,例如功率表(例如,功率表20)及圖5中的自升壓(i-boost)單元(簡潔起見,在圖5中標記為“iBoost”)。
如圖5所示,處理器資源分配程序模塊可從庫程序模塊中獲取功率表的內(nèi)容,并可從嵌入于庫程序模塊的性能服務單元中的自升壓單元中獲取數(shù)目NSCE (即上述場景任務的任務數(shù)目)和預定工作頻率FSCE。由于Linux內(nèi)核程序模塊可確定用于執(zhí)行處理器資源分配操作進一步所需的一些參數(shù),處理器資源分配程序模塊可從Linux內(nèi)核程序模塊中獲取這些參數(shù),并根據(jù)這些參數(shù)執(zhí)行處理器資源分配操作。例如,Linux內(nèi)核程序模塊的調(diào)度器可確定數(shù)目NHT(即,上述NHT繁重任務的任務數(shù)目),累加負載參數(shù)AccLoadFPS(即對應于幀產(chǎn)生任務的累加負載),累加負載參數(shù)AccLoadOTH(即對應于其它任務的累加負載),以及系統(tǒng)線程級并行處理(Thread-Level Parallelism,TLP)。例如,在步驟230中,控制電路120可檢查系統(tǒng)TLP,以確定步驟210是否應重新進入,以及在步驟210重新進入的情形下,可能需要再次執(zhí)行關于處理器資源分配的一些操作(例如,從步驟210開始的工作流程操作)。此處僅用于說明目的,并非用以限制本發(fā)明。另外,CPU拓撲單元可確定關于拓撲和效率的信息,例如,CPU拓撲信息和CPU效率信息。因此,處理器資源分配程序模塊可根據(jù)從Linux內(nèi)核程序模塊所獲取的參數(shù)和功率表,以及根據(jù)從庫程序模塊所獲取的其它參數(shù),來執(zhí)行處理器資源分配操作,以動態(tài)確定多個處理器資源分配控制參數(shù)。舉例而言,多個處理器資源分配控制參數(shù)可包含用于每個類別(更具體地,多個分類中的每個類別)的核心的數(shù)目,例如用于繁重任務類別的最強處理器核心的數(shù)目(例如,等于NHT的數(shù)目)以及用于場景任務類別的幀產(chǎn)生任務所需的最小在線核心數(shù)目(例如,大于或等于NSCE的數(shù)目)。另外,多個處理器資源分配控制參數(shù)可進一步包含有關的每個處理器核心的對應頻率(便于理解起見,在圖5中標記為“每個CPU的對應頻率”),例如關于用于繁重任務類別的最強處理器核心的可用的最大工作頻率(例如,F(xiàn)MAX)以及這些在線核心所需的最小頻率(例如,預定工作頻率FSCE)。根據(jù)一些實施例,有關的每個處理器核心的對應頻率的實施例可進一步包含大于預定工作頻率FSCE的上述其它預定工作頻率,即在圖5所示實施例中確定用于具有較低DMIPS的處理器核心的其它預定工作頻率。簡潔起見,對于本實施例的類似描述此處不再重復。
根據(jù)一些實施例,當一個或多個數(shù)目NSCE(即,上述場景任務的任務數(shù)目),這些在線核心所需的最小頻率(例如,預定工作頻率FSCE),以及數(shù)目NHT(即,上述NHT個繁重任務的任務數(shù)目)發(fā)生變化時,處理器資源分配程序模塊可根據(jù)最新的參數(shù)和功率表再次執(zhí)行處理器資源分配操作,以更新多個處理器資源分配控制參數(shù)。簡潔起見,有關本實施例的類似描述此處不再重復。
圖6為根據(jù)本發(fā)明一實施例的結(jié)合圖3所示方法200的時序圖。根據(jù)本實 施例,在執(zhí)行處理器資源分配操作期間,控制電路120(更具體地,處理器資源分配程序模塊)不僅控制處理器資源110以響應具有繁重負載的任務和用于幀產(chǎn)生的任務,而且關注系統(tǒng)TLP。
例如,圖6所示的調(diào)度標記(schedule tick)可以是Linux定義的用于檢查的時段(例如,10毫秒或另一預定長度的時間),以及在本實施例中,圖6所示的曲線,從頂部開始到底部,可稱為第一曲線至第六曲線。如圖6所示,使用加重粗線所顯示的曲線,例如第一曲線(即最頂部的曲線),可指示對應的任務在圖6所示的調(diào)度標記期間運行。類似地,使用加重粗線顯示的部分曲線,例如第二曲線的右半部分,可指示對應的任務在該粗線所顯示的較短時間期間運行,而非加重粗線顯示的部分曲線,例如第二曲線的左半部分,可指示對應任務在非粗線顯示的時間期間并未被喚醒(便于理解起見,在一些實施例中可視為“睡眠”狀態(tài)),其中,曲線的陰影部分,例如第二曲線的陰影部分,可指示對應任務在該陰影部分所顯示的時間期間已被喚醒但沒有處理器核心被分配用以執(zhí)行該任務。
在現(xiàn)實世界中,系統(tǒng)TLP通常隨著裝置100調(diào)度任務的入隊(enqueues)和出隊(dequeues)而時刻發(fā)生變化,而任務調(diào)度的行為太過頻繁,則裝置100無法對每次改變均作出反應。一種通用的妥協(xié)方式為基于樣本的追蹤(sample-based tracking)。另外,當通過參考系統(tǒng)TLP來嘗試增加CPU資源時,基于樣本的方法可帶來一些問題。例如,最嚴重的一個問題在于暫態(tài)(transient state)可能被采樣,因而發(fā)生虛警(false alarm)??紤]一個剛剛被喚醒的任務,在到達采樣時間點進行采樣之前,系統(tǒng)TLP在該采樣時間點上將增加,但裝置100有可能在接下來下一毫秒放棄運行該任務。
根據(jù)本實施例,可引入“可運行期間”TLP以用作系統(tǒng)TLP,用以反映CPU資源是否充足。例如,在控制電路120(更具體地,處理器資源分配程序模塊)的控制下,除繁重任務以及幀生成任務以外,任何滿足以下函數(shù)的任務均可出發(fā)處理器資源分配程序以重新分配CPU資源:
((TRUNNABLE*NONLINE_CPU)/TACC_ONLINE_CPU)>X%;
其中,符號“TRUNNABLE”可代表可運行時間(例如,在該時段期間沒有處理器核心運行該任務),符號“NONLINE_CPU”可代表在線處理器核心的數(shù)目,符號“TACC_ONLINE_CPU”可代表整個系統(tǒng)的在線處理器核心的累加時間,以及符號“X%”可代表預定百分比。預定百分比(即X%)可作為預定比率閾值的實施 例。簡潔起見,有關本實施例的類似描述此處不再重復。
本發(fā)明的優(yōu)點之一在于,對于給定的一組處理器資源,例如上述多個處理器核心,本發(fā)明所提供的處理器資源分配方法和裝置可基于與能量有關的性能需求來分配必要的處理器核心。例如,通過執(zhí)行處理器熱插拔(例如,CPU熱插拔或CPU核心熱插拔)以及DVFS,本發(fā)明所提供的處理器資源分配方法和裝置可在具有不同的計算能力和電源效率等物理特性的群集和CPU之間盡量作出最佳抉擇,以滿足對于能效系統(tǒng)的性能需求。由于用戶體驗和省電均對于毫秒級敏感,因此,本發(fā)明所提供的處理器資源分配方法及裝置可以更靈敏的方式來執(zhí)行熱插拔和DVFS,以響應可變化的性能需求及回應以有關能量的適當調(diào)節(jié)。另外,本發(fā)明所提供的處理器資源分配方法及裝置可以較少的負面效應實現(xiàn)適當?shù)墓β士刂?。與現(xiàn)有技術相比,本發(fā)明可防止或極大地減少不當?shù)暮诵姆峙浼?或不當?shù)念l率分配的機率。因此,可實現(xiàn)電子裝置的最佳總體性能。
雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何熟習此技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當可作些許的更動與潤飾,因此本發(fā)明的保護范圍當視后附的權(quán)利要求所界定者為準。