專利名稱:一種多核cpu的電源管理方法、系統(tǒng)及cpu的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機 技術(shù)領(lǐng)域,尤其涉及一種多核CPU的電源管理方法、系統(tǒng)及CPU。
背景技術(shù):
目前,多核CPU(包括多個內(nèi)核的CPU)的應(yīng)用越來越廣泛,很多設(shè)備中都使用多核CPU來進行業(yè)務(wù)處理,提高處理速度,然而,多核CPU在帶來業(yè)務(wù)處理性能提升的同時,也帶來了較大的功耗,隨著信息技術(shù)領(lǐng)域的節(jié)能環(huán)保問題越來越受到關(guān)注,多核CPU設(shè)備的功耗管理也變得越來越重要。由于大多數(shù)多核CPU支持多種工作模式,單個核可以進入休眠模式,在空閑時段可以通過休眠一些核來達到降低功耗的作用,現(xiàn)有技術(shù)利用該特性,通過監(jiān)控CPU占用率來調(diào)整多核的功耗,若處于運行狀態(tài)的核(運行核)的占用率小于預(yù)設(shè)的閾值就休眠一些核。如果運行核的占用率大于預(yù)設(shè)的閾值就喚醒一些休眠的核。然而,CPU占用率是一段時間內(nèi)的平均值,不是瞬時狀態(tài),不能及時反映任務(wù)突發(fā),從而導(dǎo)致在任務(wù)突發(fā)時,任務(wù)處理不及時或被丟棄,使得用戶提交的業(yè)務(wù)執(zhí)行被中斷。
發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提供一種多核CPU的電源管理方法,旨在解決由于現(xiàn)有技術(shù)無法提供一種有效的多核CPU電源管理方法,導(dǎo)致在多核CPU任務(wù)突發(fā)時,任務(wù)處理不及時或被丟棄,使得用戶提交的業(yè)務(wù)執(zhí)行被中斷的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種多核CPU的電源管理方法,所述方法包括下述步驟當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,所述內(nèi)核組中內(nèi)核的數(shù)量至少大于I ;根據(jù)所述待處理任務(wù)的數(shù)量計算在所述時間周期內(nèi)完成所述待處理任務(wù)所需內(nèi)核數(shù)量,所需內(nèi)核數(shù)量少于所述內(nèi)核組中休眠的內(nèi)核數(shù)量;當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,從所述內(nèi)核組中喚醒數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核;當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值時,根據(jù)所需內(nèi)核數(shù)量以及所述內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠所述內(nèi)核組中數(shù)量為第三預(yù)設(shè)值的內(nèi)核。本發(fā)明實施例的另一目的在于提供一種多核CPU的電源管理裝置,所述裝置包括任務(wù)數(shù)量獲取單元,用于當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,所述內(nèi)核組中內(nèi)核的數(shù)量至少大于I ;內(nèi)核數(shù)量計算單元,用于根據(jù)待處理任務(wù)的數(shù)量計算在所述時間周期內(nèi)完成所述待處理任務(wù)所需內(nèi)核數(shù)量,所需內(nèi)核數(shù)量少于所述內(nèi)核組中休眠的內(nèi)核數(shù)量;
內(nèi)核喚醒單元,用于當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,從所述內(nèi)核組中喚醒數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核;以及內(nèi)核休眠單元,用于當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值時,根據(jù)所需內(nèi)核數(shù)量以及所述內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠所述內(nèi)核組中數(shù)量為第三預(yù)設(shè)值的內(nèi)核。本發(fā)明實施例的另一目的在于提供一種包括上述多核CPU的電源管理裝置的CPU。本發(fā)明實施例在當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,計算在時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量,當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,從內(nèi)核組中喚醒數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核,當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值時,根據(jù)所需內(nèi)核數(shù)量以及內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量, 休眠內(nèi)核組中數(shù)量為第三預(yù)設(shè)值的內(nèi)核,實現(xiàn)了根據(jù)多核CPU內(nèi)核組中待處理任務(wù)數(shù)量動態(tài)調(diào)整內(nèi)核的狀態(tài)(休眠和運行),以及多核CPU電源功耗的有效管理,從而在降低電源功耗的同時,及時地處理遞交的任務(wù)。
圖I是本發(fā)明第一實施例提供的多核CPU的電源管理方法的實現(xiàn)流程圖;圖2是本發(fā)明第二實施例提供的多核CPU的電源管理方法的實現(xiàn)流程圖;圖3是本發(fā)明第三實施例提供的多核CPU的電源管理裝置的結(jié)構(gòu)圖;圖4是本發(fā)明第四實施例提供的多核CPU的電源管理裝置的結(jié)構(gòu)圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例通過獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量計算完成待處理任務(wù)所需內(nèi)核數(shù)量,根據(jù)所所需內(nèi)核數(shù)量進行內(nèi)核組中內(nèi)核的動態(tài)休眠和喚醒,實現(xiàn)了根據(jù)多核CPU內(nèi)核組中待處理任務(wù)數(shù)量動態(tài)調(diào)整內(nèi)核的狀態(tài)(休眠和運行),以及多核CPU電源功耗的有效管理,從而在降低電源功耗的同時,及時地處理遞交的任務(wù)。以下結(jié)合具體實施例對本發(fā)明的具體實現(xiàn)進行詳細描述實施例一:圖I示出了本發(fā)明第一實施例提供的多核CPU的電源管理方法的實現(xiàn)流程,詳述如下在步驟SlOl中,當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,該內(nèi)核組中內(nèi)核的數(shù)量至少大于I。在本發(fā)明實施例中,可以根據(jù)多核CPU中內(nèi)核的功能不同預(yù)先對多核CPU中的內(nèi)核進行邏輯上的劃分,例如,用于完成業(yè)務(wù)對應(yīng)的任務(wù)的業(yè)務(wù)平面,以及用于控制和管理多核CPU中內(nèi)核的控制平面,其中業(yè)務(wù)平面包括一個或多個邏輯上的業(yè)務(wù)組(內(nèi)核組),控制平面可以部署在一個內(nèi)核上,也可以部署在多個內(nèi)核上,通過對業(yè)務(wù)平面內(nèi)核組中內(nèi)核的負載狀態(tài)的監(jiān)測,控制平面可實現(xiàn)對業(yè)務(wù)平面的內(nèi)核組中內(nèi)核的電源管理,實現(xiàn)內(nèi)核的休眠和喚醒。在本發(fā)明實施例中,預(yù)先為內(nèi)核組分配用于緩存待處理任務(wù)的緩存空間,其中內(nèi)核組中內(nèi)核的數(shù)量至少大于1,當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,具體地,預(yù)設(shè)的時間周期可以根據(jù)多核CPU的工作頻率、多核CPU設(shè)備的應(yīng)用環(huán)境(例如實時性要求)等一個或多個因素來進行時間周期的設(shè)置。在步驟S102中,根據(jù)待處理任務(wù)的數(shù)量計算在時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量,所需內(nèi)核數(shù)量少于內(nèi)核組中休眠的內(nèi)核數(shù)量。在本發(fā)明實施例中,獲取到多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量后,計算在
時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量M,其中M =纟,C為內(nèi)核組待處理任務(wù)的數(shù)
S*T·
量,S為內(nèi)核組中內(nèi)核的任務(wù)處理速度,T為預(yù)設(shè)的時間周期。所需內(nèi)核數(shù)量應(yīng)少于內(nèi)核組中已休眠的內(nèi)核數(shù)量,從而保證有足夠多的內(nèi)核用來處理緩存的任務(wù),保證待處理任務(wù)能夠得到及時地處理。在步驟S103中,當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,從內(nèi)核組中喚醒數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核。在本發(fā)明實施例中,內(nèi)核的狀態(tài)有休眠狀態(tài)、運行狀態(tài)或其它狀態(tài),當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,根據(jù)內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,喚醒內(nèi)核組中數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核。在具體實施過程中,第一預(yù)設(shè)值的大小可以根據(jù)多核CPU運行環(huán)境或?qū)嶒灁?shù)據(jù)進行設(shè)置。在步驟S104中,當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值時,根據(jù)所需內(nèi)核數(shù)量以及內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠內(nèi)核組中數(shù)量為第三預(yù)設(shè)值的內(nèi)核。在本發(fā)明實施例中,第一預(yù)設(shè)值、第二預(yù)設(shè)值和第三預(yù)設(shè)值可以根據(jù)多核CPU的工作頻率、多核CPU設(shè)備的應(yīng)用環(huán)境(例如實時性要求)等一個或多個因素來進行設(shè)置。較優(yōu)地,第一預(yù)設(shè)值,第二預(yù)設(shè)值和第三預(yù)設(shè)值為1,從而當所需內(nèi)核數(shù)量大于I時,及時地從內(nèi)核組中喚醒內(nèi)核進行任務(wù)處理,當所需內(nèi)核數(shù)量不大于I時,為了防止所有內(nèi)核被休眠,應(yīng)根據(jù)所需內(nèi)核數(shù)量以及內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠內(nèi)核組中的一個內(nèi)核,實現(xiàn)在降低能量消耗的前提下逐步地休眠內(nèi)核,保證待處理任務(wù)能夠得到及時的處理,并保證處于運行狀態(tài)的內(nèi)核的數(shù)量至少為I。在本發(fā)明實施例中,采用內(nèi)核組的待處理任務(wù)的數(shù)量來表征多核CPU的負載狀況,在達到預(yù)設(shè)的時間周期時獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,進而計算在時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量,當所需內(nèi)核數(shù)量大于預(yù)設(shè)值時,喚醒內(nèi)核組中數(shù)量為所需內(nèi)核數(shù)量的處于休眠狀態(tài)的內(nèi)核,當所需內(nèi)核的數(shù)量不大于預(yù)設(shè)值時,根據(jù)內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠內(nèi)核組中預(yù)設(shè)數(shù)量的處于運行狀態(tài)的內(nèi)核,從而保證CPU功耗降低的同時,防止任務(wù)被丟棄。實施例二 :在本發(fā)明實施例中,為整個內(nèi)核組預(yù)先構(gòu)建一個任務(wù)隊列,用于緩存待處理任務(wù),從而方便待處理任務(wù)數(shù)量的獲取。圖2示出了本發(fā)明第二實施例提供的多核CPU的電源管理方法的實現(xiàn)流程,詳述如下在步驟S201中,向多核CPU中預(yù)設(shè)內(nèi)核組分配預(yù)設(shè)長度的任務(wù)隊列。在本發(fā)明實施例中,向多核CPU中預(yù)設(shè)內(nèi)核組分配預(yù)設(shè)長度的任務(wù)隊列,該任務(wù)隊列用于緩存多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)??梢詾檎麄€內(nèi)核組分配一個任務(wù)隊列,從而方便待處理任務(wù)的數(shù)量的獲取,任務(wù)隊列的長度可以根據(jù)內(nèi)核在預(yù)設(shè)的時間周期內(nèi)可完成的任務(wù)數(shù)量以及系統(tǒng)可用資源來確定,較優(yōu)地,由于任務(wù)隊列也是任務(wù)突發(fā)的緩存池,以此來保證在只有一個內(nèi)核或少數(shù)內(nèi)核處于運行狀態(tài)時遇到突發(fā)任務(wù)時可以先緩存在任務(wù)隊列中,而不會丟棄任務(wù),因此將任務(wù)隊列的長度設(shè)置為L,其中L= (N-1)*S*T+B,N為內(nèi)核組中內(nèi)核的數(shù)量,S為內(nèi)核組中內(nèi)核的任務(wù)處理速度,T為預(yù)設(shè)的時間周期,B為時間周期T內(nèi)最大突發(fā)任務(wù)量,從而保證CPU功耗降低的同時,防止任務(wù)被丟棄,在具體實施過程中,時間周期的設(shè)置T以及最大突發(fā)任務(wù)量B的設(shè)置可以根據(jù)多核CPU運行環(huán)境或?qū)嶒灁?shù)據(jù)進行設(shè)置。在步驟S202中,當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,該內(nèi)核組中內(nèi)核的數(shù)量至少大于I。在本發(fā)明實施例中,可以根據(jù)多核CPU中內(nèi)核的功能不同預(yù)先對多核CPU中的內(nèi)核進行邏輯上的劃分,例如,用于完成業(yè)務(wù)對應(yīng)的任務(wù)的業(yè)務(wù)平面,以及用于控制和管理多核CPU中內(nèi)核的控制平面,其中業(yè)務(wù)平面包括一個或多個邏輯上的業(yè)務(wù)組(內(nèi)核組),控制平面可以部署在一個內(nèi)核上,也可以部署在多個內(nèi)核上,通過對業(yè)務(wù)平面內(nèi)核組中內(nèi)核的負載狀態(tài)的監(jiān)測,控制平面可實現(xiàn)對業(yè)務(wù)平面的內(nèi)核組中內(nèi)核的電源管理,實現(xiàn)內(nèi)核的休眠和喚醒。在本發(fā)明實施例中,預(yù)先為內(nèi)核組分配用于緩存待處理任務(wù)的緩存空間,其中內(nèi)核組中內(nèi)核的數(shù)量至少大于1,當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,具體地,預(yù)設(shè)的時間周期可以根據(jù)多核CPU的工作頻率、多核CPU設(shè)備的應(yīng)用環(huán)境(例如實時性要求)等一個或多個因素來進行時間周期的設(shè)置。在步驟S203中,根據(jù)待處理任務(wù)的數(shù)量計算在時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量,所需內(nèi)核數(shù)量少于內(nèi)核組中休眠的內(nèi)核數(shù)量。在本發(fā)明實施例中,獲取到多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量后,計算在
時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量M,其中M =纟,C為內(nèi)核組待處理任務(wù)的數(shù)
S*T
量,S為內(nèi)核組中內(nèi)核的任務(wù)處理速度,T為預(yù)設(shè)的時間周期。所需內(nèi)核數(shù)量應(yīng)少于內(nèi)核組中休眠的內(nèi)核數(shù)量,從而保證待處理任務(wù)能夠得到及時地處理。在步驟S204中,當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,喚醒內(nèi)核組中M+1個處于休眠狀態(tài)的內(nèi)核,其中M為在時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量。在步驟S205中,當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值且內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量大于I,休眠內(nèi)核組中處于運行狀態(tài)的一個內(nèi)核。在本發(fā)明實施例中,第一預(yù)設(shè)值、第二預(yù)設(shè)值和第三預(yù)設(shè)值可以根據(jù)多核CPU的工作頻率、多核CPU設(shè)備的應(yīng)用環(huán)境(例如實時性要求)等一個或多個因素來進行設(shè)置。較優(yōu)地,第一預(yù)設(shè)值,第二預(yù)設(shè)值和第三預(yù)設(shè)值為1,具體地,當所需內(nèi)核數(shù)量大于I時,表明在一個時間周期內(nèi)要完成任務(wù)隊列中緩存的任務(wù),則至少需要喚醒內(nèi)核組中數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核,較優(yōu)地,為了盡快完成任務(wù)隊列中緩存的任務(wù)并進一步減少任務(wù)的延時,可以喚醒內(nèi)核組中M+1個處于休眠狀態(tài)的內(nèi)核,其中M為在時間周期內(nèi)完成任務(wù)隊列中的任
務(wù)所需內(nèi)核數(shù)量,所需內(nèi)核數(shù)量M =;叾,其中C為任務(wù)隊列中的任務(wù)數(shù)量,S為內(nèi)核組中
S*T
內(nèi)核的任務(wù)處理速度,T為預(yù)設(shè)的時間周期。在本發(fā)明實施例中,當所需內(nèi)核的數(shù)量不大于I時,表明多核CPU當前的負載比較小,可以采取逐一休眠的方式休眠已處于運行狀態(tài)的內(nèi)核,即在本時間周期內(nèi)休眠內(nèi)核組中處于運行狀態(tài)的一個內(nèi)核,從而防止因此時所需內(nèi)核為瞬時狀態(tài),導(dǎo)致下一時間周期內(nèi)多核CPU的任務(wù)得不到及時處理的情況的發(fā)生,提高了多核CPU對瞬時高負載任務(wù)的處理能力。這樣在下一時間周期時,若所需內(nèi)核的數(shù)量還是不大于I且內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量大于1,則繼續(xù)休眠內(nèi)核組中處于運行狀態(tài)的一個內(nèi)核,實現(xiàn)在降低能量消耗 的前提下逐步地休眠內(nèi)核,同時也保證了待處理任務(wù)的及時處理。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如R0M/RAM、磁盤、光盤等。實施例三:圖3示出了本發(fā)明第三實施例提供的多核CPU的電源管理裝置的結(jié)構(gòu),為了便于說明,僅不出了與本發(fā)明實施例相關(guān)的部分。該多核CPU的電源管理裝置可以用于多核CPU,用于電源的控制或管理裝置,其中任務(wù)數(shù)量獲取單元31當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,該內(nèi)核組中內(nèi)核的數(shù)量至少大于I。內(nèi)核數(shù)量計算單元32根據(jù)待處理任務(wù)的數(shù)量計算在時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量,所需內(nèi)核數(shù)量少于內(nèi)核組中休眠的內(nèi)核數(shù)量。內(nèi)核喚醒單元33當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,從內(nèi)核組中喚醒數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核。內(nèi)核休眠單元34當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值時,根據(jù)所需內(nèi)核數(shù)量以及內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠內(nèi)核組中數(shù)量為第三預(yù)設(shè)值的內(nèi)核。實施例四圖4示出了本發(fā)明第四實施例提供的多核CPU的電源管理裝置的結(jié)構(gòu),為了便于說明,僅不出了與本發(fā)明實施例相關(guān)的部分。任務(wù)隊列分配單元41向多核CPU中預(yù)設(shè)內(nèi)核組分配預(yù)設(shè)長度的任務(wù)隊列,該任務(wù)隊列用于緩存多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)。任務(wù)數(shù)量獲取單元42當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,該內(nèi)核組中內(nèi)核的數(shù)量至少大于I。內(nèi)核數(shù)量計算單元43根據(jù)待處理任務(wù)的數(shù)量計算在時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量,所需內(nèi)核數(shù)量少于內(nèi)核組中休眠的內(nèi)核數(shù)量。內(nèi)核喚醒單元44當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,從內(nèi)核組中喚醒數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核。
內(nèi)核休眠單元45當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值時,根據(jù)所需內(nèi)核數(shù)量以及內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠內(nèi)核組中數(shù)量為第三預(yù)設(shè)值的內(nèi)核。進一步地,內(nèi)核喚醒單元44可以包括內(nèi)核喚醒子單元441,當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,內(nèi)核喚醒子單元441喚醒內(nèi)核組中M+1個處于休眠狀態(tài)的內(nèi)核,M為在時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量,且M = C/(S*T),其中C為內(nèi)核組待處理任務(wù)的數(shù)量,S為內(nèi)核組中內(nèi)核的任務(wù)處理速度,T為預(yù)設(shè)的時間周期。進一步地,內(nèi)核休眠單元45可以包括內(nèi)核休眠子單元451,當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值且內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量大于I時,內(nèi)核休眠子單元451休眠內(nèi)核組中處于運行狀態(tài)的一個內(nèi)核。本發(fā)明實施例以多核CPU的任務(wù)隊列來判斷多核CPU的負載狀況,通過在預(yù)設(shè)時 間周期內(nèi)獲取完成多核CPU中內(nèi)核組中待處理任務(wù)所需內(nèi)核數(shù)量,根據(jù)內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,確定是否進行內(nèi)核的休眠與喚醒,實現(xiàn)多核CPU電源功耗的有效管理,進一步地設(shè)置合適長度的任務(wù)隊列用于緩存待處理任務(wù),以防止任務(wù)突發(fā)狀態(tài)下用戶提交的任務(wù)被丟棄,當所需內(nèi)核數(shù)量不大于I且內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量大于I時,采取逐一休眠的方式休眠已處于運行狀態(tài)的內(nèi)核,從而防止若該時刻所需內(nèi)核為瞬時狀態(tài),導(dǎo)致下一時間周期內(nèi)多核CPU的任務(wù)得不到及時處理的情況的發(fā)生,在降低功耗的同時提高多核CPU對瞬時高負載任務(wù)的處理能力。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種多核CPU的電源管理方法,其特征在于,所述方法包括下述步驟 當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,所述內(nèi)核組中內(nèi)核的數(shù)量至少大于I ; 根據(jù)所述待處理任務(wù)的數(shù)量計算在所述時間周期內(nèi)完成所述待處理任務(wù)所需內(nèi)核數(shù)量,所需內(nèi)核數(shù)量少于所述內(nèi)核組中休眠的內(nèi)核數(shù)量; 當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,從所述內(nèi)核組中喚醒數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核; 當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值時,根據(jù)所需內(nèi)核數(shù)量以及所述內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠所述內(nèi)核組中數(shù)量為第三預(yù)設(shè)值的內(nèi)核。
2.如權(quán)利要求I所述的方法,其特征在于,當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量的步驟之前,所述方法還包括 向多核CPU中預(yù)設(shè)內(nèi)核組分配預(yù)設(shè)長度的任務(wù)隊列,所述任務(wù)隊列用于緩存多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述任務(wù)隊列的預(yù)設(shè)長度為L,L=(N-I) *S*T+B,其中N為所述內(nèi)核組中內(nèi)核的數(shù)量,S為所述內(nèi)核組中內(nèi)核的任務(wù)處理速度,T為預(yù)設(shè)的時間周期,B為時間周期T內(nèi)最大突發(fā)任務(wù)量。
4.如權(quán)利要求I所述的方法,其特征在于,所述第一預(yù)設(shè)值、第二預(yù)設(shè)值和第三預(yù)設(shè)值為I。
5.如權(quán)利要求4所述的方法,其特征在于,當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,從所述內(nèi)核組中喚醒數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核的步驟包括步驟 當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,喚醒所述內(nèi)核組中M+1個處于休眠狀態(tài)的內(nèi)核,所述M為在所述時間周期內(nèi)完成所述待處理任務(wù)所需內(nèi)核數(shù)量,所述M = C/(S*T),其中C為內(nèi)核組待處理任務(wù)的數(shù)量,S為內(nèi)核組中內(nèi)核的任務(wù)處理速度,T為預(yù)設(shè)的時間周期。
6.如權(quán)利要求4所述的方法,其特征在于,所述當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值時,根據(jù)所需內(nèi)核數(shù)量以及所述內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠所述內(nèi)核組中數(shù)量為第三預(yù)設(shè)值的內(nèi)核的步驟包括步驟 當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值且所述內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量大于I時,休眠所述內(nèi)核組中處于運行狀態(tài)的一個內(nèi)核。
7.一種多核CPU的電源管理裝置,其特征在于,所述裝置包括 任務(wù)數(shù)量獲取單元,用于當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,所述內(nèi)核組中內(nèi)核的數(shù)量至少大于I ; 內(nèi)核數(shù)量計算單元,用于根據(jù)待處理任務(wù)的數(shù)量計算在所述時間周期內(nèi)完成所述待處理任務(wù)所需內(nèi)核數(shù)量,所需內(nèi)核數(shù)量少于所述內(nèi)核組中休眠的內(nèi)核數(shù)量; 內(nèi)核喚醒單元,用于當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,從所述內(nèi)核組中喚醒數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核;以及 內(nèi)核休眠單元,用于當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值時,根據(jù)所需內(nèi)核數(shù)量以及所述內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠所述內(nèi)核組中數(shù)量為第三預(yù)設(shè)值的內(nèi)核。
8.如權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括 任務(wù)隊列分配單元,用于向多核CPU中預(yù)設(shè)內(nèi)核組分配預(yù)設(shè)長度的任務(wù)隊列,所述任務(wù)隊列用于緩存多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)。
9.如權(quán)利要求8所述的裝置,其特征在于,所述任務(wù)隊列的預(yù)設(shè)長度為L,L=(N-I) *S*T+B,其中N為所述內(nèi)核組中內(nèi)核的數(shù)量,S為所述內(nèi)核組中內(nèi)核的任務(wù)處理速度,T為預(yù)設(shè)的時間周期,B為時間周期T內(nèi)最大突發(fā)任務(wù)量。
10.如權(quán)利要求7所述的裝置,其特征在于,所述第一預(yù)設(shè)值、第二預(yù)設(shè)值和第三預(yù)設(shè)值為I。
11.如權(quán)利要求10所述的裝置,其特征在于,所述內(nèi)核喚醒單元包括 內(nèi)核喚醒子單元,用于當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,喚醒所述內(nèi)核組中M+1個處于休眠狀態(tài)的內(nèi)核,所述M為在所述時間周期內(nèi)完成所述待處理任務(wù)所需內(nèi)核數(shù)量,所述M = C/(S*T),其中C為內(nèi)核組待處理任務(wù)的數(shù)量,S為內(nèi)核組中內(nèi)核的任務(wù)處理速度,T為預(yù)設(shè)的時間周期。
12.如權(quán)利要求10所述的裝置,其特征在于,所述內(nèi)核休眠單元包括 內(nèi)核休眠子單元,用于當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值且內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量大于I時,休眠所述內(nèi)核組中處于運行狀態(tài)的一個內(nèi)核。
13.一種CPU,其特征在于,所述CPU包括如權(quán)利要求7至13任一所述的多核CPU的電源管理裝置。
全文摘要
本發(fā)明適用于計算機技術(shù)領(lǐng)域,提供了一種多核CPU的電源管理方法、系統(tǒng)及CPU,包括下述步驟當達到預(yù)設(shè)的時間周期時,獲取多核CPU中預(yù)設(shè)內(nèi)核組待處理任務(wù)的數(shù)量,所述內(nèi)核組中內(nèi)核的數(shù)量至少大于1;根據(jù)待處理任務(wù)的數(shù)量計算在時間周期內(nèi)完成待處理任務(wù)所需內(nèi)核數(shù)量;當所需內(nèi)核數(shù)量大于第一預(yù)設(shè)值時,從內(nèi)核組中喚醒數(shù)量為所需內(nèi)核數(shù)量的內(nèi)核;當所需內(nèi)核數(shù)量不大于第二預(yù)設(shè)值時,根據(jù)所需內(nèi)核數(shù)量以及內(nèi)核組中處于運行狀態(tài)的內(nèi)核的數(shù)量,休眠內(nèi)核組中數(shù)量為第三預(yù)設(shè)值的內(nèi)核。本發(fā)明根據(jù)多核CPU內(nèi)核組的任務(wù)隊列中的任務(wù)動態(tài)調(diào)整內(nèi)核的狀態(tài),實現(xiàn)多核CPU電源功耗的有效管理,從而在降低電源功耗的同時,實現(xiàn)任務(wù)的及時處理。
文檔編號G06F1/26GK102955549SQ20111025109
公開日2013年3月6日 申請日期2011年8月29日 優(yōu)先權(quán)日2011年8月29日
發(fā)明者於少峰, 徐永新 申請人:華為技術(shù)有限公司