專利名稱:用于在虛擬化系統(tǒng)中控制中央處理單元功率的系統(tǒng)和方法
技術(shù)領(lǐng)域:
背景技術(shù):
便攜式計(jì)算裝置(PD)到處可見。這些裝置可包含蜂窩式電話、便攜式數(shù)字助理(PDA)、便攜式游戲控制臺(tái)、掌上型計(jì)算機(jī),和其它便攜式電子裝置。除了這些裝置的主要功 能之外,許多裝置包含外圍功能。舉例來說,蜂窩式電話可包含進(jìn)行蜂窩式電話呼叫的主要功能,和靜態(tài)相機(jī)、視頻相機(jī)、全球定位系統(tǒng)(GPS)導(dǎo)航、網(wǎng)絡(luò)瀏覽、發(fā)送和接收電子郵件、發(fā)送和接收文本消息、即按即說能力等的外圍功能。隨著此類裝置的功能性増加,支持此類功能性所需的計(jì)算或處理能力也増加。此外,隨著計(jì)算能力増加,更需要有效地管理提供計(jì)算能力的處理器。因此,所需的是控制多核CPU內(nèi)的功率的改進(jìn)的方法
發(fā)明內(nèi)容
在圖中,相同的參考數(shù)字在所有各種視圖中指代相同的部分,除非另有指示。圖I是處于閉合位置的便攜式計(jì)算裝置(P⑶)的第一方面的正視平面圖;圖2是處于打開位置的P⑶的第一方面的正視平面圖;圖3是P⑶的第二方面的方框圖;圖4是處理系統(tǒng)的方框圖;圖5是說明動(dòng)態(tài)地控制多核CPU內(nèi)的功率的方法的第一方面的流程圖;圖6是說明動(dòng)態(tài)地控制多核CPU內(nèi)的功率的方法的第二方面的流程圖;圖7是說明動(dòng)態(tài)地控制多核CPU內(nèi)的功率的方法的第三方面的流程圖;圖8是說明動(dòng)態(tài)地控制多核CPU內(nèi)的功率的方法的第四方面的流程圖;圖9是說明動(dòng)態(tài)地控制多核CPU內(nèi)的功率的方法的第五方面的第一部分的流程圖;圖10是說明動(dòng)態(tài)地控制多核CPU內(nèi)的功率的方法的第五方面的第二部分的流程圖;圖11是說明動(dòng)態(tài)地控制多核CPU內(nèi)的功率的方法的第五方面的第三部分的流程圖12是說明動(dòng)態(tài)地控制多核CPU內(nèi)的功率的方法的第五方面的第四部分的流程圖;以及圖13是說明測試多核CPU的方法的流程圖。
具體實(shí)施例方式詞語“示范性”在本文中用于表示“充當(dāng)實(shí)例、例子或說明”。在本文中描述為“示范性”的任何方面不一定解釋為比其它方面優(yōu)選或有利。在此描述中,術(shù)語“應(yīng)用程序”還可包含具有可執(zhí)行內(nèi)容的文件,例如對(duì)象代碼、腳本、字節(jié)代碼、標(biāo)記語言文件和補(bǔ)丁。另外,本文中所涉及的“應(yīng)用程序”還可包含本質(zhì)上不可執(zhí)行的文件,例如可能需要打開的文檔或需要存取的其它數(shù)據(jù)文件。
術(shù)語“內(nèi)容”還可包含具有可執(zhí)行內(nèi)容的文件,例如對(duì)象代碼、腳本、字節(jié)代碼、標(biāo)記語言文件和補(bǔ)丁。另外,本文中所涉及的“內(nèi)容”還可包含本質(zhì)上不可執(zhí)行的文件,例如可能需要打開的文檔或需要存取的其它數(shù)據(jù)文件。如此描述中所使用,術(shù)語“組件”、“數(shù)據(jù)庫”、“模塊”、“系統(tǒng)”等意欲指代計(jì)算機(jī)相關(guān)實(shí)體,硬件、固件、硬件和軟件的組合、軟件或執(zhí)行中的軟件。舉例來說,組件可為(但不限于)運(yùn)行在處理器上的進(jìn)程、處理器、對(duì)象、可執(zhí)行程序、執(zhí)行線程、程序,和/或計(jì)算機(jī)。以說明的方式,運(yùn)行在計(jì)算裝置上的應(yīng)用程序和計(jì)算裝置兩者均可為組件。ー個(gè)或ー個(gè)以上組件可駐留于進(jìn)程和/或執(zhí)行線程內(nèi),且組件可位于ー個(gè)計(jì)算機(jī)上和/或分布于兩個(gè)或兩個(gè)以上計(jì)算機(jī)之間。另外,這些組件可從上面存儲(chǔ)有各種數(shù)據(jù)結(jié)構(gòu)的各種計(jì)算機(jī)可讀媒體來執(zhí)行。組件可例如根據(jù)具有ー個(gè)或ー個(gè)以上數(shù)據(jù)包的信號(hào)(例如,來自ー個(gè)借助所述信號(hào)與在本地系統(tǒng)、分布式系統(tǒng)中的另ー組件和/或跨越例如因特網(wǎng)等網(wǎng)絡(luò)與其它系統(tǒng)交互的組件的數(shù)據(jù))而通過本地和/或遠(yuǎn)程進(jìn)程進(jìn)行通信。起初參看圖I和圖2,展示示范性便攜式計(jì)算裝置(P⑶)且大體上標(biāo)示為100。如圖所示,P⑶100可包含外殼102。外殼102可包含上部外殼部分104和下部外殼部分106。圖I展示上部外殼部分104可包含顯示器108。在特定方面中,顯示器108可為觸摸屏顯示器。上部外殼部分104還可包含跟蹤球輸入裝置110。此外,如圖I中所示,上部外殼部分104可包含通電按鈕112和斷電按鈕114。如圖I中所示,P⑶100的上部外殼部分104可包含多個(gè)指示器燈116和揚(yáng)聲器118。每ー指示器燈116可為發(fā)光二極管(LED)。在特定方面中,如圖2中所描繪,上部外殼部分104可相對(duì)于下部外殼部分106移動(dòng)。具體來說,上部外殼部分104可相對(duì)于下部外殼部分106滑動(dòng)。如圖2中所示,下部外殼部分106可包含多按鈕鍵盤120。在特定方面中,多按鈕鍵盤120可為標(biāo)準(zhǔn)QWERTY鍵盤。在上部外殼部分104相對(duì)于下部外殼部分106移動(dòng)時(shí)可露出多按鈕鍵盤120。圖2進(jìn)一步說明P⑶100可包含下部外殼部分106上的復(fù)位按鈕122。參看圖3,展示便攜式計(jì)算裝置(PCD)的示范性非限制性方面且大體上標(biāo)示為320。如圖所示,P⑶320包含芯片上系統(tǒng)322,芯片上系統(tǒng)322包含多核CPU 324。多核CPU324可包含第零核325、第一核326和第N核327。如圖3中所說明,顯示器控制器328和觸摸屏控制器330耦合到多核CPU 324。芯片上系統(tǒng)322外部的觸摸屏顯示器332又耦合到顯示器控制器328和觸摸屏控制器330。圖3進(jìn)ー步指示視頻編碼器334 (例如,逐行倒相(PAL)編碼器、順序傳送彩色與存儲(chǔ)(SECAM)編碼器,或美國電視系統(tǒng)委員會(huì)(NTSC)編碼器)耦合到多核CPU 324。此外,視頻放大器336耦合到視頻編碼器334和觸摸屏顯示器332。而且,視頻端ロ 338耦合到視頻放大器336。如圖3中所描繪,通用串行總線(USB)控制器340耦合到多核CPU324。而且,USB端ロ 342耦合到USB控制器340。存儲(chǔ)器344和訂戶身份模塊(SM)卡346也可耦合到多核CPU 324。此外,如圖3中所示,數(shù)碼相機(jī)348可耦合到多核CPU324。在示范性方面中,數(shù)碼相機(jī)348為電荷耦合裝置(CCD)相機(jī)或互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)相機(jī)。如圖3中進(jìn)ー步說明,立體聲音頻CODEC 350可耦合到多核CPU 324。另外,音頻放大器352可耦合到立體聲音頻CODEC 350。在示范性方面中,第一立體聲揚(yáng)聲器354和第二立體聲揚(yáng)聲器356耦合到音頻放大器352。圖3展示麥克風(fēng)放大器358也可耦合到立體聲音頻CODEC 350。另外,麥克風(fēng)360可耦合到麥克風(fēng)放大器358。在特定方面中,調(diào)頻(FM)無線電調(diào)諧器362可耦合到立體聲音頻CODEC 350。而且,F(xiàn)M天線364耦合到FM無線電調(diào)諧器362。此外,立體聲頭戴式送受話器366可耦合到立體聲音頻CODEC 350。
圖3進(jìn)ー步指示射頻(RF)收發(fā)器368可耦合到多核CPU 324。RF開關(guān)370可耦合到RF收發(fā)器368和RF天線372。如圖3中所示,小鍵盤374可耦合到多核CPU 324。而且,具有麥克風(fēng)的單聲道耳機(jī)376可耦合到多核CPU 324。此外,振動(dòng)器裝置378可耦合到多核CPU 324。圖3還展示電源380可耦合到芯片上系統(tǒng)322。在特定方面中,電源380為將電カ供應(yīng)給P⑶320的需要電カ的各種組件的直流(DC)電源。此外,在特定方面中,電源為可再充電DC電池或從連接到AC電源的交流(AC)/DC變壓器得到的DC電源。圖3進(jìn)ー步指示P⑶320還可包含網(wǎng)卡388,網(wǎng)卡388可用于接入數(shù)據(jù)網(wǎng)絡(luò),例如局域網(wǎng)、個(gè)域網(wǎng)或任何其它網(wǎng)絡(luò)。網(wǎng)卡388可為藍(lán)牙網(wǎng)卡、WiFi網(wǎng)卡、個(gè)域網(wǎng)(PAN)卡、個(gè)域網(wǎng)超低功率技術(shù)(PeANUT)網(wǎng)卡,或此項(xiàng)技術(shù)中眾所周知的任何其它網(wǎng)卡。此外,網(wǎng)卡388可并入到芯片中,即網(wǎng)卡388可為芯片上的整個(gè)解決方案,且可不為單獨(dú)的網(wǎng)卡388。如圖3中所描繪,觸摸屏顯示器332、視頻端ロ 338、USB端ロ 342、相機(jī)348、第一立體聲揚(yáng)聲器354、第二立體聲揚(yáng)聲器356、麥克風(fēng)360、FM天線364、立體聲頭戴式送受話器366、RF開關(guān)370、RF天線372、小鍵盤374、單聲道耳機(jī)376、振動(dòng)器378,和電源380在芯片上系統(tǒng)322的外部。在特定方面中,本文中所描述的方法步驟中的一者或一者以上可作為計(jì)算機(jī)程序指令存儲(chǔ)于存儲(chǔ)器344中。這些指令可由多核CPU 324執(zhí)行以便執(zhí)行本文中所描述的方法。此外,多核CPU 324、存儲(chǔ)器344或其組合可用作用于執(zhí)行本文中所描述的方法步驟中的一者或一者以上以便控制到多核CPU 324內(nèi)的每ー CPU或核的功率的裝置。參看圖4,展示處理系統(tǒng)且大體上標(biāo)示為500。在特定方面中,處理系統(tǒng)500可并入到上文結(jié)合圖3所描述的P⑶320中。如圖所示,處理器系統(tǒng)500可包含多核中央處理單元(CPU) 402和連接到多核CPU 402的存儲(chǔ)器404。多核CPU 402可包含第零核410、第一核412和第N核414。第零核410可包含在其上執(zhí)行的第零動(dòng)態(tài)時(shí)鐘和電壓縮放(DCVS)算法416。第一核412可包含在其上執(zhí)行的第一 DCVS算法417。此外,第N核414可包含在其上執(zhí)行的第N DCVS算法418。在特定方面中,每ー DCVS算法416、417、418可獨(dú)立地在相應(yīng)核412、414、416上執(zhí)行。另外,如所說明,存儲(chǔ)器404可包含存儲(chǔ)于其上的操作系統(tǒng)420。操作系統(tǒng)420可包含調(diào)度器422,且調(diào)度器422可包含第一運(yùn)行隊(duì)列424、第二運(yùn)行隊(duì)列426,和第N運(yùn)行隊(duì)列428。存儲(chǔ)器404還可包含存儲(chǔ)于其上的第一應(yīng)用程序430、第二應(yīng)用程序432和第N應(yīng)用程序434。在特定方面中,應(yīng)用程序430、432、434可將ー個(gè)或ー個(gè)以上任務(wù)436發(fā)送到操作系統(tǒng)420以在多核CPU 402內(nèi)的物理核410、412、414處進(jìn)行處理??蓪⑷蝿?wù)436處理或執(zhí)行為單個(gè)任務(wù)、線程或其組合。此外,調(diào)度器422可調(diào)度任務(wù)、線程或其組合以供在多核CPU402內(nèi)執(zhí)行。另外,調(diào)度器422可將任務(wù)、線程或其組合放置于運(yùn)行隊(duì)列424、426、428中。物理核410、412、414可按照(例如)操作系統(tǒng)420所指令從運(yùn)行隊(duì)列424、426、428檢索任務(wù)、線程或其組合,以用 于對(duì)物理核410、412、414處的那些任務(wù)和線程的處理或執(zhí)行。圖4還展示存儲(chǔ)器404可包含存儲(chǔ)于其上的管理程序440和多核處理器(MP)控制器442。管理程序440可連接到操作系統(tǒng)420和MP控制器442。具體來說,管理程序440可連接到操作系統(tǒng)420內(nèi)的調(diào)度器422。管理程序440可包含并行度監(jiān)視器(PM)444?;蛘?,并行度監(jiān)視器444可與管理程序440分開,但與其連接。如圖所示,存儲(chǔ)器404還可包含第零虛擬核446和第一虛擬核448。OS 420可經(jīng)由管理程序440與虛擬核446、448交互,如同虛擬核446、448正在執(zhí)行線程一般。然而,任務(wù)、線程或其組合可實(shí)際上在物理核410、412、414上執(zhí)行。虛擬核446、448可代表OS 420可存取的虛擬化環(huán)境。如本文中所描述,管理程序440可監(jiān)視虛擬核446、448上的工作負(fù)荷,且MP控制器442可控制到物理核410、412、414的功率,如下文所描述。在特定方面中,通過執(zhí)行方法步驟中的一者或一者以上,例如,作為計(jì)算機(jī)程序指令,如本文中所描述,管理程序440、MP控制器442、并行度監(jiān)視器444或其組合可用作用于動(dòng)態(tài)地控制到多核CPU 402內(nèi)的核410、412、414的功率的裝置。在特定雙虛擬核方面中,在操作期間,MP控制器442可從管理程序440接收輸入。所述輸入可為工作負(fù)荷的并行程度的運(yùn)行平均值?;谒鲚斎?,MP控制器442可確定單ー物理核或兩個(gè)物理核是否應(yīng)通電。此外,MP控制器442可將控制信號(hào)輸出到多核CPU402??刂菩盘?hào)可指示是接通還是斷開額外核。在雙虛擬核實(shí)例中,MP控制器442可包含四個(gè)閾值以用于控制對(duì)物理核通電和斷電的決策。所述四個(gè)閾值可包含用以觸發(fā)核醒來(core wake)的OS調(diào)度器隊(duì)列中的準(zhǔn)備運(yùn)行(read-to-run)線程的數(shù)目Nw;已超過Nw來確認(rèn)核醒來的持續(xù)時(shí)間Tw ;用以觸發(fā)核休眠的OS調(diào)度器中的準(zhǔn)備運(yùn)行線程的數(shù)目Ns ;以及已超過Ns來確認(rèn)核休眠的持續(xù)時(shí)間Ts。以單ー核活動(dòng)開始,例如第零核410,當(dāng)?shù)诹愫?10上的工作負(fù)荷的并行程度的運(yùn)行平均值在至少Tw的持續(xù)時(shí)間內(nèi)滿足或超過Nw吋,MP控制器442可喚醒第二個(gè)核,例如第一核412。相反,當(dāng)例如第零核410和第一核412兩者均活動(dòng)時(shí),且當(dāng)工作負(fù)荷的并行程度在至少Ts的持續(xù)時(shí)間內(nèi)下降到低于Ns吋,MP控制器442可決定將第二個(gè)核(例如第一核412)置于休眠。在特定方面中,時(shí)間Tw上的持續(xù)的閾值并行度暗示單一虛擬核是飽和的。此外,物理核可在功率最有效電壓-頻率(VF)操作點(diǎn)處啟動(dòng)。在特定方面中,在最佳VF處操作的兩個(gè)物理核比在最大VF處操作的單ー核提供更多的Dhrystone姆秒百萬指令(Dhrystonemillion instructions per second, DMIPS)。在雙核方面中,雙、獨(dú)立的DCVS算法可適應(yīng)不對(duì)稱的工作負(fù)荷,且在ー些情況下適應(yīng)異類核。此外,在雙核方面中,兩個(gè)物理核應(yīng)在多任務(wù)工作負(fù)荷期間保持活動(dòng),以便避免雙倍的性能損失。而且,當(dāng)并行度在規(guī)定時(shí)間Ts內(nèi)下降到低于Ns時(shí),第二核應(yīng)斷電且不置于備用中。在特定方面中,將第二核置于備用中可増加功率泄漏,且還降低性能。參數(shù)NW、TW、NS和Ts的最佳值可取決于系統(tǒng)400的確切的功率消耗特性。然而,在ー個(gè)方面中,所述值可如下Nw = I. 2,Tw = 40 毫秒(ms), Ns = O. 8 且Ts = 80ms。在此特定方面中,Nw = I. 2可確保在第二核被喚醒之前的持續(xù)的并行度。Ns = O. 8可確保在第二核被置于休眠之前的并行度的持續(xù)的缺失。Ts = 80ms是基于系統(tǒng)400的功率崩潰閾值。Tw = 40ms是Ts的一半,用以改進(jìn)多核響應(yīng)性。參看圖5,展示控制多核處理器內(nèi)的功率的方法的第一方面且大體上標(biāo)示為500。方法500以do循環(huán)開始于方框502處,其中在具有多核處理器的裝置的操作期間,可執(zhí)行接連的步驟。在方框504處,可在物理處理器內(nèi)執(zhí)行虛擬中央處理單元(CPU)程序。在執(zhí)行時(shí),虛擬CPU程序致使兩個(gè)或兩個(gè)以上虛擬CPU運(yùn)行在物理處理器上。虛擬CPU可模擬在所述裝置內(nèi)操作的兩個(gè)或兩個(gè)以上物理處理器。在方框506處,可允許操作系統(tǒng)(OS)存取虛擬CPU。在特定方面中,OS可以通常用于存取物理CPU的相同方式存取虛擬CPU。移動(dòng)到方框508,管理程序,即,虛擬機(jī)器管理器,可例如每當(dāng)虛擬CPU進(jìn)入閑置狀態(tài)時(shí)檢測虛擬CPU進(jìn)入閑置狀態(tài)中。在方框510處,管理程序可確定每一虛擬CPU上的利用率??赏ㄟ^首先確定實(shí)際虛擬循環(huán)的數(shù)目來確定所述利用率。實(shí)際虛擬循環(huán)是其間虛擬CPU不閑置或不在運(yùn)行OS閑置任務(wù)的循環(huán)。其后,可通過將有效虛擬循環(huán)的數(shù)目除以虛擬CPU循環(huán)的總數(shù)目來確定所述利用率。前進(jìn)到方框512,管理程序可基于每一虛擬CPU上的利用率來確定虛擬CPU的工作負(fù)荷的并行程度。接下來,在方框514處,控制器(例如,并行度監(jiān)視器)可至少部分基于虛擬CPU中的工作負(fù)荷的并行程度來將物理核上電或掉電。換句話說,并行度監(jiān)視器可基于虛擬核中的工作負(fù)荷來接通或斷開核。在決策516處,并行度監(jiān)視器可確定裝置是否被斷電。如果裝置被斷電,則所述方法可結(jié)束。否則,如果裝置保持通電,則方法500可返回到方框504且方法500可如所描述繼續(xù)下去。圖6說明控制多核處理器內(nèi)的功率的方法的第二方面。所述方法大體上被標(biāo)示為600。方法600以do循環(huán)開始于方框602處,其中在具有多核處理器的裝置的操作期間,可執(zhí)行接連的步驟。在方框604處,可在物理處理器內(nèi)執(zhí)行虛擬中央處理單元(CPU)程序。在執(zhí)行時(shí),虛擬CPU程序致使兩個(gè)或兩個(gè)以上虛擬CPU運(yùn)行在物理處理器上。虛擬CPU可模擬在所述裝置內(nèi)操作的兩個(gè)或兩個(gè)以上物理處理器。在方框606處,可允許操作系統(tǒng)(OS)存取虛擬CPU。在特定方面中,OS可以通常用于存取物理CPU的相同方式存取虛擬CPU。移動(dòng)到方框608,管理程序,即,虛擬機(jī)器管理器,可例如每當(dāng)虛擬CPU進(jìn)入閑置狀態(tài)時(shí)從操作系統(tǒng)(OS)接收指示虛擬處理器的閑置狀態(tài)的調(diào)用。在方框610處,管理程序可確定每一虛擬CPU上的利用率??赏ㄟ^首先確定實(shí)際虛擬循環(huán)的數(shù)目來確定所述利用率。實(shí)際虛擬循環(huán)是其間虛擬CPU不閑置或不在運(yùn)行OS閑置任務(wù)的循環(huán)。其后,可通過將有效虛擬循環(huán)的數(shù)目除以虛擬CPU循環(huán)的總數(shù)目來確定所述利用率。前進(jìn)到方框612,管理程序可基于每一虛擬CPU上的利用率來確定虛擬CPU的工作負(fù)荷的并行程度。接下來,在方框614處,管理程序可至少部分基于虛擬CPU的工作負(fù)荷的并行程度來將物理核上電或掉電。換句話說,功率控制器可基于工作負(fù)荷來接通或斷開核。在決策616處,功率控制器可確定裝置是否被斷電。如果裝置被斷電,則所述方法可結(jié)束。否則,如果裝置保持通電,則方法600可返回到方框604且方法600可如所描述繼續(xù)下去?,F(xiàn)在參看圖7,展示控制多核處理器內(nèi)的功率的方法的第三方面且大體上標(biāo)示為700。方法700以do循環(huán)開始于方框702處,其中在具有多核處理器的裝置的操作期間,可執(zhí)行接連的步驟。
在方框704處,可在物理處理器內(nèi)執(zhí)行虛擬中央處理單元(CPU)程序。在執(zhí)行時(shí),虛擬CPU程序致使兩個(gè)或兩個(gè)以上虛擬CPU運(yùn)行在物理處理器上。虛擬CPU可模擬在所述裝置內(nèi)操作的兩個(gè)或兩個(gè)以上物理處理器。在方框706處,可允許操作系統(tǒng)(OS)存取虛擬CPU。在特定方面中,OS可以通常用于存取物理CPU的相同方式存取虛擬CPU。移動(dòng)到方框708,功率控制器(例如,并行度監(jiān)視器)可周期性地對(duì)虛擬CPU利用率取樣,以便確定虛擬CPU或核內(nèi)的工作負(fù)荷的并行程度。移動(dòng)到方框710,至少部分基于虛擬CPU內(nèi)的工作負(fù)荷的并行程度,功率控制器可將物理核上電或掉電。換句話說,功率控制器可基于工作負(fù)荷來接通或斷開核。在決策712處,功率控制器可確定裝置是否被斷電。如果裝置被斷電,則所述方法可結(jié)束。否則,如果裝置保持通電,則方法700可返回到方框704且方法700可如所描述繼續(xù)下去。圖8展示控制多核處理器內(nèi)的功率的方法的第四方面且所述方法大體上標(biāo)示為800。方法800以do循環(huán)開始于方框802處,其中在具有多核處理器的裝置的操作期間,可執(zhí)行接連的步驟。在方框804處,可在物理處理器內(nèi)執(zhí)行虛擬中央處理單元(CPU)程序。在執(zhí)行時(shí),虛擬CPU程序致使兩個(gè)或兩個(gè)以上虛擬CPU運(yùn)行在物理處理器上。虛擬CPU可模擬在所述裝置內(nèi)操作的兩個(gè)或兩個(gè)以上物理處理器。在方框806處,可允許操作系統(tǒng)(OS)存取虛擬CPU。在特定方面中,OS可以通常用于存取物理CPU的相同方式存取虛擬CPU。移動(dòng)到方框808,功率控制器(例如,并行度監(jiān)視器)可每當(dāng)從OS運(yùn)行隊(duì)列添加或移除項(xiàng)目時(shí)從管理程序接收回調(diào)。在方框810處,功率控制器可確定虛擬CPU內(nèi)的工作負(fù)荷的并行程度的運(yùn)行平均值。其后,在方框812處,至少部分基于虛擬CPU內(nèi)的工作負(fù)荷的并行程度,功率控制器可將物理核上電或掉電。換句話說,功率控制器可基于工作負(fù)荷來接通或斷開核。在決策814處,功率控制器可確定裝置是否被斷電。如果裝置被斷電,則所述方法可結(jié)束。否則,如果裝置保持通電,則方法800可返回到方框804且方法800可如所描述繼續(xù)下去。參看圖9到圖12,展示控制多核處理器內(nèi)的功率的方法的第五方面且大體上標(biāo)示為900。方法900以do循環(huán)開始于方框902處,其中在具有多核處理器的裝置通電時(shí),可執(zhí)行以下步驟。在方框904處,可在物理處理器內(nèi)執(zhí)行虛擬中央處理單元(CPU)程序。在執(zhí)行時(shí),虛擬CPU程序致使兩個(gè)或兩個(gè)以上虛擬CPU運(yùn)行在物理處理器上。虛擬CPU可模擬在所述裝置內(nèi)操作的兩個(gè)或兩個(gè)以上物理處理器。在方框906處,可將第零物理核上電,即給電。在方框907處,可在第零物理核處在本地執(zhí)行第零DCVS算法。在方框908處,可在虛擬CPU處以虛擬方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、線程或其組合。此外,在方框910處,可在第零物理核處執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、線程或其組合。移動(dòng)到?jīng)Q策912,MP控制器可確定裝置是否被斷電。如果是,則方法900可結(jié)束。否則,如果裝置保持通電,則方法900可移動(dòng)到方框914,且MP控制器可從管理程序接收虛擬核上的工作負(fù)荷的并行程度的運(yùn)行平均值。在特定方面中,在任何時(shí)刻,在操作系統(tǒng)(OS)的準(zhǔn)備運(yùn)行隊(duì)列上等待的任務(wù)、線程或其組合的總數(shù)目加上實(shí)際運(yùn)行的任務(wù)的數(shù)目可為虛擬核上的工作負(fù)荷的并行程度的近似。在決策916處,MP控制器可確定并行程度是否等于第一喚醒條件。在特定方面中,第一喚醒條件可為與虛擬核上的工作負(fù)荷的并行程度相關(guān)聯(lián)的閾值。舉例來說,所述閾值 可為OS調(diào)度器隊(duì)列中的準(zhǔn)備運(yùn)行線程的最大數(shù)目,且如果并行度大于或等于此閾值,則可滿足第一喚醒條件。返回到?jīng)Q策916,如果并行程度不等于第一喚醒條件,則方法900可返回到方框914且方法900可如本文中所描述繼續(xù)下去。否則,如果并行程度等于第一喚醒條件,則方法900可移動(dòng)到方框918,且MP控制器可確定滿足第一喚醒條件的持續(xù)時(shí)間。在決策920處,MP控制器可確定持續(xù)時(shí)間是否等于第一確認(rèn)喚醒條件。在特定方面中,所述第一確認(rèn)喚醒條件可為時(shí)間閾值,且如果第一喚醒條件的持續(xù)時(shí)間大于或等于閾值,則可滿足第一確認(rèn)喚醒條件。返回到?jīng)Q策920,如果滿足第一喚醒條件的持續(xù)時(shí)間不等于第一確認(rèn)喚醒條件,則方法900可返回到方框914且方法900可如本文中所描述繼續(xù)下去。相反,如果滿足第一確認(rèn)喚醒條件,則方法900可移動(dòng)到方框922,且MP控制器可將第一物理核上電,使得兩個(gè)核(即,第零物理核和第一物理核)正運(yùn)行和執(zhí)行線程和任務(wù)。在方框924處,可在第一物理核處在本地執(zhí)行第一 DCVS算法。其后,方法900可前進(jìn)到圖10的方框1002?,F(xiàn)在移動(dòng)到圖10的方框1002,可以物理方式在第零物理核和第一物理核處執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、線程或其組合。在決策1004處,MP控制器可確定裝置是否被斷電。如果是,則方法900可結(jié)束。否則,如果裝置保持通電,則方法900可移動(dòng)到方框1006,且MP控制器可從管理程序接收虛擬核上的工作負(fù)荷的并行程度的運(yùn)行平均值。在決策1008處,MP控制器可確定并行程度是否等于第一休眠條件。在特定方面中,第一休眠條件可為與虛擬核上的工作負(fù)荷的并行程度相關(guān)聯(lián)的閾值。舉例來說,所述閾值可為OS調(diào)度器隊(duì)列中的準(zhǔn)備運(yùn)行線程的最小數(shù)目,且如果并行度小于或等于此閾值,則可滿足第一休眠條件。返回到?jīng)Q策1008,如果并行程度不等于第一休眠條件,則方法900可前進(jìn)到圖11的方框1102且方法900可如本文中所描述繼續(xù)下去。否則,如果并行程度等于第一休眠條件,則方法900可移動(dòng)到方框1010,且MP控制器可確定滿足第一休眠條件的持續(xù)時(shí)間。在決策1012處,MP控制器可確定所述持續(xù)時(shí)間是否等于第一確認(rèn)休眠條件。在特定方面中,所述第一確認(rèn)休眠條件可為時(shí)間閾值,且如果第一休眠條件的持續(xù)時(shí)間大于或等于閾值,則可滿足第一確認(rèn)休眠條件。
返回到?jīng)Q策1012,如果滿足第一休眠條件的持續(xù)時(shí)間不等于第一確認(rèn)休眠條件,則方法900可前進(jìn)到圖11的方框1102且方法900可如本文中所描述繼續(xù)下去。相反,如果滿足第一確認(rèn)休眠條件,則方法900可移動(dòng)到方框1014,且MP控制器可將第一物理核掉電,使得ー個(gè)核(即,第零物理核)正運(yùn)行和執(zhí)行線程和任務(wù)。其后,方法900可返回到圖9的方框910,且方法900可如本文中所描述繼續(xù)下去?,F(xiàn)在參看圖11,在方框1102處,MP控制器可從管理程序接收虛擬核上的工作負(fù)荷的并行程度的運(yùn)行平均值。在決策1104處,MP控制器可確定并行程度是否等于第N喚醒條件。在特定方面中,第N喚醒條件可為與虛擬核上的工作負(fù)荷的并行程度相關(guān)聯(lián)的閾值。舉例來說,所述閾值可為OS調(diào)度器隊(duì)列中的準(zhǔn)備運(yùn)行線程的最大數(shù)目,且如果并行度大于或等于此閾值,則可滿足第N喚醒條件。 返回到?jīng)Q策1104,如果并行程度不等于第N喚醒條件,則方法900可返回到圖10的方框1002且方法900可如本文中所描述繼續(xù)下去。否則,如果并行程度等于第N喚醒條件,則方法900可移動(dòng)到方框1106,且MP控制器可確定滿足第N喚醒條件的持續(xù)時(shí)間。在決策1108處,MP控制器可確定持續(xù)時(shí)間是否等于第N確認(rèn)喚醒條件。在特定方面中,所述第N確認(rèn)喚醒條件可為時(shí)間閾值,且如果第N喚醒條件的持續(xù)時(shí)間大于或等于閾值,則可滿足第N確認(rèn)喚醒條件。返回到?jīng)Q策1108,如果滿足第N喚醒條件的持續(xù)時(shí)間不等于第N確認(rèn)喚醒條件,則方法900可返回到圖10的方框1002且方法900可如本文中所描述繼續(xù)下去。相反,如果滿足第N確認(rèn)喚醒條件,則方法900可移動(dòng)到方框1110,且MP控制器可將第N物理核上電,使得N個(gè)核(即,第零物理核、第一物理核和第N物理核)正運(yùn)行和執(zhí)行線程和任務(wù)。在方框1112處,可在第N物理核處在本地執(zhí)行第N DCVS算法。其后,方法900可前進(jìn)到圖12的方框1202。在圖12的方框1202處,可以物理方式在第零物理核、第一物理核和第N物理核處執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、線程或其組合。在決策1204處,MP控制器可確定裝置是否被斷電。如果是,則方法900可結(jié)束。否則,如果裝置保持通電,則方法900可移動(dòng)到方框1206,且MP控制器可從管理程序接收虛擬核上的工作負(fù)荷的并行程度的運(yùn)行平均值。在決策1208處,MP控制器可確定并行程度是否等于第N休眠條件。在特定方面中,第N休眠條件可為與虛擬核上的工作負(fù)荷的并行程度相關(guān)聯(lián)的閾值。舉例來說,所述閾值可為OS調(diào)度器隊(duì)列中的準(zhǔn)備運(yùn)行線程的最小數(shù)目,且如果并行度小于或等于此閾值,則可滿足第N休眠條件。返回到?jīng)Q策1208,如果并行程度不等于第N休眠條件,則方法900可前進(jìn)到方框1202且方法900可如本文中所描述繼續(xù)下去。否則,如果并行程度等于第N休眠條件,則方法900可移動(dòng)到方框1210,且MP控制器可確定滿足第N休眠條件的持續(xù)時(shí)間。在決策1212處,MP控制器可確定持續(xù)時(shí)間是否等于第N確認(rèn)休眠條件。在特定方面中,所述第N確認(rèn)休眠條件可為時(shí)間閾值,且如果第N休眠條件的持續(xù)時(shí)間大于或等于閾值,則可滿足第N確認(rèn)休眠條件。返回到?jīng)Q策1212,如果滿足第N休眠條件的持續(xù)時(shí)間不等于第N確認(rèn)休眠條件,則方法900可返回到方框1202且方法900可如本文中所描述繼續(xù)下去。相反,如果滿足第N確認(rèn)休眠條件,則方法900可移動(dòng)到方框1214,且MP控制器可將第N物理核掉電,使得N減ー個(gè)核(例如,第零物理核和第一物理核(如果N為10且第二核被掉電))正運(yùn)行和執(zhí)行線程和任務(wù)。其后,方法900可返回到圖10的方框1002,且方法900可如本文中所描述繼續(xù)下去?,F(xiàn)在參看圖13,展示測試多核處理器的方法且大體上標(biāo)示為1300。如圖所示,方法1300可開始于方框1302處,其中可創(chuàng)建測試程序。所述測試程序可包含具有不同并行程度的穩(wěn)定狀態(tài)工作負(fù)荷,其將依據(jù)并行程度致使多個(gè)核上電和掉電,如本文中所描述。移動(dòng)到方框1304,可將測試程序加載到包含多核處理器的無線裝置中。在方框1306處,可在無線裝置上監(jiān)視多個(gè)核。舉例來說,可監(jiān)視每一核的核上電/掉電狀態(tài)。可通過監(jiān)視每ー核上的功率,通過監(jiān)視所消耗的總功率、完成工作負(fù)荷的速度,或其組合,來監(jiān)視上電/掉電狀態(tài)。在方框1308處,可在無線裝置處執(zhí)行測試程序。另外,在決策1310處,可確定無 線裝置內(nèi)的核是否正確地響應(yīng)于測試程序的執(zhí)行。換句話說,可確定是否正確地響應(yīng)于測試程序的執(zhí)行將核上電和/或掉電。在決策1310處,如果所述核未正確地響應(yīng)于測試程序的執(zhí)行,則方法1300可移動(dòng)到方框1312且可指示失敗結(jié)果。方法1300可隨后結(jié)束。在決策1310處,如果所述核正確地響應(yīng)于測試程序的執(zhí)行,則方法可前進(jìn)到方框1314且可指示通過結(jié)果。其后,方法1300可結(jié)束。應(yīng)理解,本文中所描述的方法步驟不需要一定以所描述的次序執(zhí)行。此外,例如“其后”、“隨后”、“接下來”等詞語無意限制步驟的次序。這些詞語僅用于引導(dǎo)讀者閱讀方法步驟的描述。另外,本文中所描述的方法被描述為可在便攜式計(jì)算裝置(PCD)上執(zhí)行。PCD可為移動(dòng)電話裝置、便攜式數(shù)字助理裝置、智能本計(jì)算裝置、上網(wǎng)本計(jì)算裝置、膝上型計(jì)算裝置、桌上型計(jì)算裝置或其組合。在特定方面中,本文中所描述的系統(tǒng)和方法可通過監(jiān)視虛擬化系統(tǒng)中的虛擬CPU的利用率來動(dòng)態(tài)地推斷出工作負(fù)荷的并行程度。在CPU虛擬化下,某些軟件要求可從高級(jí)操作系統(tǒng)(HLOS)消除并轉(zhuǎn)移到管理程序。因而,単一管理程序和MP-DCVS設(shè)計(jì)可理論上在不同的HLOS上一致地工作。在特定方面中,MP-DCVS軟件可為管理程序的部分,或其可具有到管理程序的特許接ロ。在虛擬化系統(tǒng)中,可將硬件CPU資源抽象為虛擬CPU??蓪惟`硬件CPU作為ー個(gè)或ー個(gè)以上多個(gè)虛擬CPU呈現(xiàn)給操作系統(tǒng)。通過使用此能力,對(duì)于兩個(gè)硬件(即,物理)核系統(tǒng),兩個(gè)虛擬核可呈現(xiàn)給操作系統(tǒng),而不管實(shí)際上有多少物理核被上電。HLOS可如同其一直在多處理器(MP)系統(tǒng)上ー樣運(yùn)行,且HLOS可將任務(wù)調(diào)度到一個(gè)或兩個(gè)虛擬CPU。管理程序的并行度監(jiān)視器MP-DCVS組件可監(jiān)視兩個(gè)虛擬CPU的HLOS使用,從而指示工作負(fù)荷并行度水平。在ー個(gè)方面中,并行程度僅為兩個(gè)虛擬CPU的利用率的總和。每一虛擬CPU上的利用率為有效虛擬CPU循環(huán)的數(shù)目除以總虛擬CPU循環(huán)的數(shù)目。有效虛擬循環(huán)是其間虛擬CPU不閑置或不在運(yùn)行OS閑置任務(wù)的循環(huán)。在完全虛擬化系統(tǒng)中,可通過管理程序攔截指令(例如,ARM指令WFI或WFE (等待中斷或等待事件))來檢測虛擬CPU進(jìn)入閑置狀態(tài)中。這些指令通常由操作系統(tǒng)的閑置任務(wù)調(diào)用。因?yàn)槠溆绊懻鎸?shí)的硬件資源,所以這些指令可導(dǎo)致完全虛擬化系統(tǒng)上的管理程序進(jìn)入。在半虛擬化系統(tǒng)中,操作系統(tǒng)可經(jīng)由特殊指令(例如,SVC、監(jiān)瞀程序調(diào)用)直接調(diào)用管理程序調(diào)用以指示閑置情形,以取代嘗試直接執(zhí)行WFI/WFE。在此方面中,管理程序不需要攔截WFI/WFE嘗試,且被直接通知閑置情形。本文中所掲示的系統(tǒng)和方法可監(jiān)視虛擬CPU利用率的總和。在ー個(gè)方面中,并行度監(jiān)視器可周期性地(例如,每一毫秒)對(duì)虛擬CPU利用率進(jìn)行取樣。在另一方面中,并行度監(jiān)視器可每當(dāng)虛擬CPU進(jìn)入或退出閑置狀態(tài)時(shí)從管理程序接收回調(diào)。在兩種情況下,并行度監(jiān)視器將即時(shí)讀數(shù)累加到工作負(fù)荷的并行程度的運(yùn)行平均值中。本文中所掲示的多處理器控制器可基于虛擬核中的并行程度來決定給多少物理核供電。在雙核系統(tǒng)的ー個(gè)方面中,多處理器控制器可應(yīng)用以下決策參數(shù)平均并行度的喚醒閾值Nw ;在喚醒第二核之前超過Nw閾值的持續(xù)時(shí)間Tw ;平均并行度的休眠閾值Ns ;以及在將第二核置于休眠之前必須超過Ns閾值的持續(xù)時(shí)間Ts。當(dāng)運(yùn)行非并行工作負(fù)荷吋,HLOS可能不能夠?qū)蓚€(gè)虛擬CPU保持在多于O. 5的利用率下。因此,此將展示為在任何監(jiān)視周期上的至多O. 5+0. 5 = I的并行程度。在這些情形 下,如果所述值針對(duì)大于Ts的周期來說小于Ns,則多處理器控制器可使第二核斷開功率。當(dāng)實(shí)際運(yùn)行并行工作負(fù)荷吋,HLOS將能夠在多于O. 5的利用率下使兩個(gè)虛擬CPU保持忙。再者,利用率值的總和指示任何監(jiān)視周期上的并行度的平均水平。在這些情形下,如果所述值針對(duì)大于Tw的周期來說大于Nw,則MP-DCVS可恢復(fù)給第二核供電。本文中所掲示的系統(tǒng)和方法可延伸到同時(shí)支持來自多個(gè)操作系統(tǒng)/環(huán)境的并行度。在那種情況下,對(duì)于N核硬件系統(tǒng),用N個(gè)虛擬CPU呈現(xiàn)每個(gè)運(yùn)行的操作環(huán)境。假設(shè)有M個(gè)操作系統(tǒng)/環(huán)境在運(yùn)行,則可例示M*N個(gè)虛擬CPU。為了計(jì)算并行程度,并行度監(jiān)視器對(duì)多個(gè)操作系統(tǒng)上的所有M*N個(gè)虛擬CPU的總利用率求和。在另一方面中,本文中所描述的系統(tǒng)和方法可用于動(dòng)態(tài)地控制多個(gè)處理器、多核處理器、多個(gè)多核處理器或其組合。另外,本文中所描述的系統(tǒng)和方法可用于動(dòng)態(tài)地控制任何數(shù)目個(gè)處理器,或多核處理器。在ー個(gè)方面中,呈現(xiàn)給每ー操作系統(tǒng)的虛擬核的數(shù)目可等于操作系統(tǒng)可存取的物理核的數(shù)目。在另一方面中,呈現(xiàn)給每ー操作系統(tǒng)的虛擬核的數(shù)目可小于操作系統(tǒng)可存取的物理核的數(shù)目。另外,在又一方面中,呈現(xiàn)給每ー操作系統(tǒng)的虛擬核的數(shù)目可大于操作系統(tǒng)可存取的物理核的數(shù)目。此外,本文中所描述的系統(tǒng)和方法可用于基于總系統(tǒng)負(fù)荷(例如,并行程度)來將多個(gè)核或處理器通電和斷電。舉例來說,在四核系統(tǒng)中,工作負(fù)荷可能突然下降且三個(gè)核可同時(shí)被斷電。本文中所掲示的方法不需要對(duì)應(yīng)用程序或運(yùn)行那些應(yīng)用程序的操作系統(tǒng)的任何修改,且本文中所掲示的方法可應(yīng)用于多個(gè)操作系統(tǒng)上。此外,本文中所掲示的方法可不牽涉到操作系統(tǒng)代碼,包含潛在開放的源代碼。此外,本文中所掲示的方法可發(fā)現(xiàn)并利用多個(gè)同時(shí)操作系統(tǒng)或環(huán)境上的并行度。無論是在單ー OS內(nèi)的線程層級(jí)處、在單一 OS內(nèi)的進(jìn)程層級(jí)處,還是在多個(gè)OS上的線程或進(jìn)程層級(jí)處發(fā)現(xiàn)并行度,本文中所掲示的方法都可被視為不可知論的。在ー個(gè)或ー個(gè)以上示范性方面中,可以硬件、軟件、固件或其任何組合來實(shí)施所描述的功能。如果以軟件實(shí)施,則可將功能作為ー個(gè)或ー個(gè)以上指令或代碼而存儲(chǔ)在計(jì)算機(jī)程序產(chǎn)品(例如,機(jī)器可讀媒體(即,計(jì)算機(jī)可讀媒體))上或經(jīng)由計(jì)算機(jī)程序產(chǎn)品進(jìn)行傳輸。計(jì)算機(jī)可讀媒體包含計(jì)算機(jī)存儲(chǔ)媒體與通信媒體兩者,通信媒體包含促進(jìn)將計(jì)算機(jī)程序從ー處傳遞到另ー處的任何媒體。存儲(chǔ)媒體可為可由計(jì)算機(jī)存取的任何可用媒體。舉例來說而非限制,此計(jì)算機(jī)可讀媒體可包含RAM、ROM、EEPROM、CD-ROM或其它光盤存儲(chǔ)裝置、磁盤存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置,或可用以運(yùn)載或存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼且可由計(jì)算機(jī)存取的任何其它媒體。而且,可恰當(dāng)?shù)貙⑷魏芜B接稱作計(jì)算機(jī)可讀媒體。舉例來說,如果使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(DSL)或例如紅外線、無線電及微波的無線技術(shù)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源傳輸軟件,則同軸電纜、光纖電纜、雙絞線、DSL或例如紅外線、無線電及微波的無線技術(shù)包含于媒體的定義中。如本文中所使用,磁盤及光盤包括壓縮光盤(CD)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(DVD)、軟盤和藍(lán)光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。以上各者的組合也應(yīng)包含在計(jì)算機(jī)可讀媒體的范圍內(nèi)。雖然已詳細(xì)地說明和描述了選定的方面,但將理解,在不脫離由所附權(quán)利要求書界定的本發(fā)明的精神和范圍的情況下,可在其 中進(jìn)行各種替代和更改。
權(quán)利要求
1.一種動(dòng)態(tài)地控制多核中央處理單元內(nèi)的功率的方法,所述方法包括 執(zhí)行多個(gè)虛擬核; 在所述虛擬核處以虛擬方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、ー個(gè)或ー個(gè)以上線程或其組合;以及 在第零物理核處以物理方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、ー個(gè)或ー個(gè)以上線程或其組ムロ O
2.根據(jù)權(quán)利要求I所述的方法,其進(jìn)ー步包括 接收多個(gè)虛擬核的工作負(fù)荷的并行程度;以及 確定所述虛擬核的所述工作負(fù)荷的所述并行程度是否等于第一喚醒條件。
3.根據(jù)權(quán)利要求2所述的方法,其中所述并行程度包括在操作系統(tǒng)調(diào)度器的一個(gè)或ー個(gè)以上準(zhǔn)備運(yùn)行隊(duì)列上等待的任務(wù)、線程或其組合的總數(shù)目、在所述虛擬核上以虛擬方式運(yùn)行的任務(wù)、線程或其組合的數(shù)目,或其組合。
4.根據(jù)權(quán)利要求2所述的方法,其進(jìn)ー步包括 在所述虛擬核的所述工作負(fù)荷的所述并行程度等于所述第一喚醒條件吋,確定滿足所述第一喚醒條件的持續(xù)時(shí)間;以及 確定所述持續(xù)時(shí)間是否等于第一確認(rèn)喚醒條件。
5.根據(jù)權(quán)利要求4所述的方法,其進(jìn)ー步包括 在所述持續(xù)時(shí)間等于所述第一確認(rèn)喚醒條件時(shí),將第一物理核上電;以及在所述第零物理核和所述第一物理核處以物理方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、ー個(gè)或ー個(gè)以上線程或其組合。
6.根據(jù)權(quán)利要求5所述的方法,其進(jìn)ー步包括 接收所述虛擬核上的工作負(fù)荷的并行程度。
7.根據(jù)權(quán)利要求6所述的方法,其進(jìn)ー步包括 確定所述虛擬核的所述工作負(fù)荷的所述并行程度是否等于第一休眠條件。
8.根據(jù)權(quán)利要求7所述的方法,其進(jìn)ー步包括 在所述虛擬核上的所述工作負(fù)荷的所述并行程度等于所述第一休眠條件吋,確定滿足所述第一休眠條件的持續(xù)時(shí)間。
9.根據(jù)權(quán)利要求8所述的方法,其進(jìn)ー步包括 確定滿足所述第一休眠條件的所述持續(xù)時(shí)間是否等于第一確認(rèn)休眠條件。
10.根據(jù)權(quán)利要求9所述的方法,其進(jìn)ー步包括 在滿足所述第一休眠條件的所述持續(xù)時(shí)間等于所述第一休眠條件吋,將所述第一核掉電。
11.一種無線裝置,其包括 用于執(zhí)行多個(gè)虛擬核的裝置; 用于在所述虛擬核處以虛擬方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、ー個(gè)或ー個(gè)以上線程或其組合的裝置;以及 用于在第零物理核處以物理方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、ー個(gè)或ー個(gè)以上線程或其組合的裝置。
12.根據(jù)權(quán)利要求11所述的無線裝置,其進(jìn)ー步包括用于接收多個(gè)虛擬核的工作負(fù)荷的并行程度的裝置;以及 用于確定所述虛擬核的所述工作負(fù)荷的所述并行程度是否等于第一喚醒條件的裝置。
13.根據(jù)權(quán)利要求12所述的無線裝置,其中所述并行程度包括在操作系統(tǒng)調(diào)度器的一個(gè)或ー個(gè)以上準(zhǔn)備運(yùn)行隊(duì)列上等待的任務(wù)、線程或其組合的總數(shù)目、在所述虛擬核上以虛擬方式運(yùn)行的任務(wù)、線程或其組合的數(shù)目,或其組合。
14.根據(jù)權(quán)利要求12所述的無線裝置,其進(jìn)ー步包括 用于在所述虛擬核的所述工作負(fù)荷的所述并行程度等于所述第一喚醒條件時(shí)確定滿足所述第一喚醒條件的持續(xù)時(shí)間的裝置;以及 用于確定所述持續(xù)時(shí)間是否等于第一確認(rèn)喚醒條件的裝置。
15.根據(jù)權(quán)利要求14所述的無線裝置,其進(jìn)ー步包括 用于在所述持續(xù)時(shí)間等于所述第一確認(rèn)喚醒條件時(shí)將第一物理核上電的裝置;以及用于在所述第零物理核和所述第一物理核處以物理方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、一個(gè)或ー個(gè)以上線程或其組合的裝置。
16.根據(jù)權(quán)利要求15所述的無線裝置,其進(jìn)ー步包括 用于接收所述虛擬核上的工作負(fù)荷的并行程度的裝置。
17.根據(jù)權(quán)利要求16所述的無線裝置,其進(jìn)ー步包括 用于確定所述虛擬核的所述工作負(fù)荷的所述并行程度是否等于第一休眠條件的裝置。
18.根據(jù)權(quán)利要求17所述的無線裝置,其進(jìn)ー步包括 用于在所述虛擬核上的所述工作負(fù)荷的所述并行程度等于所述第一休眠條件時(shí)確定滿足所述第一休眠條件的持續(xù)時(shí)間的裝置。
19.根據(jù)權(quán)利要求18所述的無線裝置,其進(jìn)ー步包括 用于確定滿足所述第一休眠條件的所述持續(xù)時(shí)間是否等于第一確認(rèn)休眠條件的裝置。
20.根據(jù)權(quán)利要求19所述的無線裝置,其進(jìn)ー步包括 用于在滿足所述第一休眠條件的所述持續(xù)時(shí)間等于所述第一休眠條件時(shí)將所述第一核掉電的裝置。
21.一種無線裝置,其包括 處理器,其中所述處理器可操作以 執(zhí)行多個(gè)虛擬核; 在所述虛擬核處以虛擬方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、ー個(gè)或ー個(gè)以上線程或其組合;以及 在第零物理核處以物理方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、ー個(gè)或ー個(gè)以上線程或其組ムロ ο
22.根據(jù)權(quán)利要求21所述的無線裝置,其中所述處理器進(jìn)ー步可操作以 接收多個(gè)虛擬核的工作負(fù)荷的并行程度;以及 確定所述虛擬核的所述工作負(fù)荷的所述并行程度是否等于第一喚醒條件。
23.根據(jù)權(quán)利要求22所述的無線裝置,其中所述并行程度包括在操作系統(tǒng)調(diào)度器的一個(gè)或ー個(gè)以上準(zhǔn)備運(yùn)行隊(duì)列上等待的任務(wù)、線程或其組合的總數(shù)目、在所述虛擬核上以虛擬方式運(yùn)行的任務(wù)、線程或其組合的數(shù)目,或其組合。
24.根據(jù)權(quán)利要求22所述的無線裝置,其中所述處理器進(jìn)ー步可操作以在所述虛擬核的所述工作負(fù)荷的所述并行程度等于所述第一喚醒條件吋,確定滿足所述第一喚醒條件的持續(xù)時(shí)間;以及 確定所述持續(xù)時(shí)間是否等于第一確認(rèn)喚醒條件。
25.根據(jù)權(quán)利要求24所述的無線裝置,其中所述處理器進(jìn)ー步可操作以 在所述持續(xù)時(shí)間等于所述第一確認(rèn)喚醒條件時(shí),將第一物理核上電;以及 在所述第零物理核和所述第一物理核處以物理方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、ー個(gè)或ー個(gè)以上線程或其組合。
26.根據(jù)權(quán)利要求25所述的無線裝置,其中所述處理器進(jìn)ー步可操作以 接收所述虛擬核上的工作負(fù)荷的并行程度。
27.根據(jù)權(quán)利要求26所述的無線裝置,其中所述處理器進(jìn)ー步可操作以 確定所述虛擬核的所述工作負(fù)荷的所述并行程度是否等于第一休眠條件。
28.根據(jù)權(quán)利要求27所述的無線裝置,其中所述處理器進(jìn)ー步可操作以 在所述虛擬核上的所述工作負(fù)荷的所述并行程度等于所述第一休眠條件吋,確定滿足所述第一休眠條件的持續(xù)時(shí)間。
29.根據(jù)權(quán)利要求28所述的無線裝置,其中所述處理器進(jìn)ー步可操作以 確定滿足所述第一休眠條件的所述持續(xù)時(shí)間是否等于第一確認(rèn)休眠條件。
30.根據(jù)權(quán)利要求29所述的無線裝置,其中所述處理器進(jìn)ー步可操作以 在滿足所述第一休眠條件的所述持續(xù)時(shí)間等于所述第一休眠條件吋,將所述第一核掉電。
31.一種存儲(chǔ)器媒體,其包括 用于執(zhí)行多個(gè)虛擬核的至少ー個(gè)指令; 用于在所述虛擬核處以虛擬方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、ー個(gè)或ー個(gè)以上線程或其組合的至少ー個(gè)指令;以及 用于在第零物理核處以物理方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、ー個(gè)或ー個(gè)以上線程或其組合的至少ー個(gè)指令。
32.根據(jù)權(quán)利要求31所述的存儲(chǔ)器媒體,其進(jìn)ー步包括 用于接收多個(gè)虛擬核的工作負(fù)荷的并行程度的至少ー個(gè)指令;以及用于確定所述虛擬核的所述工作負(fù)荷的所述并行程度是否等于第一喚醒條件的至少ー個(gè)指令。
33.根據(jù)權(quán)利要求32所述的存儲(chǔ)器媒體,其中所述并行程度包括在操作系統(tǒng)調(diào)度器的ー個(gè)或ー個(gè)以上準(zhǔn)備運(yùn)行隊(duì)列上等待的任務(wù)、線程或其組合的總數(shù)目、在所述虛擬核上以虛擬方式運(yùn)行的任務(wù)、線程或其組合的數(shù)目,或其組合。
34.根據(jù)權(quán)利要求32所述的存儲(chǔ)器媒體,其進(jìn)ー步包括 用于在所述虛擬核的所述工作負(fù)荷的所述并行程度等于所述第一喚醒條件時(shí)確定滿足所述第一喚醒條件的持續(xù)時(shí)間的至少ー個(gè)指令;以及 用于確定所述持續(xù)時(shí)間是否等于第一確認(rèn)喚醒條件的至少ー個(gè)指令。
35.根據(jù)權(quán)利要求34所述的存儲(chǔ)器媒體,其進(jìn)ー步包括 用于在所述持續(xù)時(shí)間等于所述第一確認(rèn)喚醒條件時(shí)將第一物理核上電的至少ー個(gè)指令;以及用于在所述第零物理核和所述第一物理核處以物理方式執(zhí)行ー個(gè)或ー個(gè)以上任務(wù)、一個(gè)或ー個(gè)以上線程或其組合的至少ー個(gè)指令。
36.根據(jù)權(quán)利要求35所述的存儲(chǔ)器媒體,其進(jìn)ー步包括 用于接收所述虛擬核上的工作負(fù)荷的并行程度的至少ー個(gè)指令。
37.根據(jù)權(quán)利要求36所述的計(jì)算機(jī)程序產(chǎn)品,其進(jìn)ー步包括 用于確定所述虛擬核上的所述工作負(fù)荷的所述并行程度是否等于第一休眠條件的至少ー個(gè)指令。
38.根據(jù)權(quán)利要求37所述的存儲(chǔ)器媒體,其進(jìn)ー步包括 用于在所述虛擬核上的所述工作負(fù)荷的所述并行程度等于所述第一休眠條件時(shí)確定滿足所述第一休眠條件的持續(xù)時(shí)間的至少ー個(gè)指令。
39.根據(jù)權(quán)利要求38所述的存儲(chǔ)器媒體,其進(jìn)ー步包括 用于確定滿足所述第一休眠條件的所述持續(xù)時(shí)間是否等于第一確認(rèn)休眠條件的至少ー個(gè)指令。
40.根據(jù)權(quán)利要求39所述的存儲(chǔ)器媒體,其進(jìn)ー步包括 用于在滿足所述第一休眠條件的所述持續(xù)時(shí)間等于所述第一休眠條件時(shí)將所述第一核掉電的至少ー個(gè)指令。
全文摘要
本發(fā)明揭示一種動(dòng)態(tài)地控制多核中央處理單元內(nèi)的功率的方法,且所述方法包含執(zhí)行多個(gè)虛擬核;在所述虛擬核處以虛擬方式執(zhí)行一個(gè)或一個(gè)以上任務(wù)、一個(gè)或一個(gè)以上線程,或其組合;以及在第零物理核處以物理方式執(zhí)行一個(gè)或一個(gè)以上任務(wù)、一個(gè)或一個(gè)以上線程,或其組合。所述方法可進(jìn)一步包含接收多個(gè)虛擬核的工作負(fù)荷的并行程度,且確定所述虛擬核的所述工作負(fù)荷的所述并行程度是否等于第一喚醒條件。
文檔編號(hào)G06F1/32GK102695998SQ201080056512
公開日2012年9月26日 申請(qǐng)日期2010年12月8日 優(yōu)先權(quán)日2009年12月16日
發(fā)明者博胡斯拉夫·雷赫利克, 史蒂文·S·湯姆森, 布萊恩·J·薩爾斯貝瑞, 素密·蘇爾, 阿里·伊蘭里 申請(qǐng)人:高通股份有限公司