大核和小核中的任務(wù)調(diào)度的制作方法
【專利摘要】本發(fā)明涉及大核和小核中的任務(wù)調(diào)度。一個(gè)方面提供了一種方法,該方法包括:對(duì)待被調(diào)度來在具有兩個(gè)或更多個(gè)不同大小的核的信息處理設(shè)備上執(zhí)行的任務(wù)進(jìn)行識(shí)別;確定任務(wù)的適當(dāng)調(diào)度以在兩個(gè)或更多個(gè)不同大小的核上執(zhí)行,其中,任務(wù)的適當(dāng)調(diào)度經(jīng)由任務(wù)的核簽名來確定;基于所確定的適當(dāng)調(diào)度將任務(wù)引向適當(dāng)?shù)暮藖韴?zhí)行;以及,在適當(dāng)?shù)暮松蠄?zhí)行任務(wù)。其他方面也被描述并要求保護(hù)。
【專利說明】大核和小核中的任務(wù)調(diào)度
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及進(jìn)行任務(wù)調(diào)度的方法及其信息處理設(shè)備。
【背景技術(shù)】
[0002]傳統(tǒng)的多核處理器包括單個(gè)組件或芯片,其中設(shè)置了多個(gè)中央處理單元或核以讀取并執(zhí)行程序指令。通常,多核處理器具有在處理能力方面相同的核。
[0003]當(dāng)前,考慮到電池供電的移動(dòng)設(shè)備的能效要求,對(duì)設(shè)置有不同大小的核的多核芯片不斷做出改進(jìn)。例如,在延長(zhǎng)電池壽命方面,作為非限制性的示例,ARM C0RTEX?-A7處理器既提供了高性能又省電。目標(biāo)是將較大核(例如ARM CORTEX-A15MPC0RE?處理器)的性能與較小核(例如ARM C0RTEX?-A7處理器)的能效聯(lián)系起來。ARM C0RTEXtm-A7MPC0RE?處理器架構(gòu)和特征集與Cortex-A15處理器的架構(gòu)和特征集相關(guān)聯(lián)地進(jìn)行保存,其中微架構(gòu)被配置成通過使兩個(gè)處理器能夠協(xié)同工作來提供能效。
【發(fā)明內(nèi)容】
[0004]總的來說,一個(gè)方面提供了一種方法,該方法包括:對(duì)待被調(diào)度來在具有兩個(gè)或更多個(gè)不同大小的核的信息處理設(shè)備上執(zhí)行的任務(wù)進(jìn)行識(shí)別;確定任務(wù)的適當(dāng)調(diào)度以在兩個(gè)或更多個(gè)不同大小的核上執(zhí)行,其中,任務(wù)的適當(dāng)調(diào)度經(jīng)由任務(wù)的核簽名來確定;基于所確定的適當(dāng)調(diào)度將任務(wù)引向適當(dāng)?shù)暮藖韴?zhí)行;以及,在適當(dāng)?shù)暮松蠄?zhí)行任務(wù)。
[0005]另一方面提供了一種信息處理設(shè)備,該信息處理設(shè)備包括:一個(gè)或更多個(gè)處理器和與該一個(gè)或更多個(gè)處理器通信的存儲(chǔ)器。該存儲(chǔ)器存儲(chǔ)程序指令,該程序指令在由一個(gè)或更多個(gè)處理器執(zhí)行時(shí)執(zhí)行下述步驟:對(duì)待被調(diào)度來在具有兩個(gè)或更多個(gè)不同大小的核的信息處理設(shè)備上執(zhí)行的任務(wù)進(jìn)行識(shí)別;確定對(duì)所述任務(wù)的適當(dāng)調(diào)度以在兩個(gè)或更多個(gè)不同大小的核上執(zhí)行,其中,該任務(wù)的適當(dāng)調(diào)度經(jīng)由任務(wù)的核簽名來確定;基于所確定的適當(dāng)調(diào)度將任務(wù)引向適當(dāng)?shù)暮藖韴?zhí)行;以及,在適當(dāng)?shù)暮松蠄?zhí)行任務(wù)。
[0006]再一方面提供了一種程序產(chǎn)品,該程序產(chǎn)品包括存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)具有程序代碼。該程序代碼包括:被配置成對(duì)待被調(diào)度來在具有兩個(gè)或更多個(gè)不同大小的核的信息處理設(shè)備上執(zhí)行的任務(wù)進(jìn)行識(shí)別的程序代碼;被配置成確定任務(wù)的適當(dāng)調(diào)度以在兩個(gè)或更多個(gè)不同大小的核上執(zhí)行的程序代碼,其中,任務(wù)的適當(dāng)調(diào)度經(jīng)由任務(wù)的核簽名來確定;被配置成基于所確定的適當(dāng)調(diào)度將任務(wù)引向適當(dāng)?shù)暮藖韴?zhí)行的程序代碼;以及,被配置成在適當(dāng)?shù)暮松蠄?zhí)行任務(wù)的程序代碼。
[0007]前述是概要,從而可以包含細(xì)節(jié)的簡(jiǎn)化、概括和省略;因此,本領(lǐng)域技術(shù)人員將理解的是,該概要僅僅是說明性的并且不意在以任何方式進(jìn)行限制。
[0008]為了更好地理解實(shí)施方式以及實(shí)施方式的其他的和進(jìn)一步的特征和優(yōu)點(diǎn),參照以下的結(jié)合附圖的描述。本發(fā)明的范圍將在所附權(quán)利要求中指出。
【專利附圖】
【附圖說明】[0009]圖1示出了示例信息處理設(shè)備。
[0010]圖2示出了另一示例信息處理設(shè)備。
[0011]圖3示出了任務(wù)調(diào)度的示例。
[0012]圖4示出了將核簽名分配給任務(wù)的示例。
[0013]圖5A至5B示出了任務(wù)調(diào)度的另一示例。
[0014]圖6示出了任務(wù)調(diào)度的又一示例。
【具體實(shí)施方式】
[0015]將容易地理解,此處附圖中具體描述和示出的實(shí)施方式的組件可以除所描述的示例實(shí)施方式以外的多種不同的配置來布置和設(shè)計(jì)。從而,以下如示出在附圖中的、示例實(shí)施方式的更詳細(xì)的描述,不意在限制所要求保護(hù)的實(shí)施方式的范圍,而只是典型的示例實(shí)施方式。
[0016]本說明書全文中,對(duì)“一個(gè)(one)實(shí)施方式”或“一種(an)實(shí)施方式”(等)的引用意味著結(jié)合實(shí)施方式所描述的特定特征、結(jié)構(gòu)或特性包含在至少一個(gè)實(shí)施方式中。因此,在本說明書全文的各處所出現(xiàn)的短語“在一個(gè)實(shí)施方式中”或“在一種實(shí)施方式中”等未必都指同一實(shí)施方式。
[0017]而且,在一個(gè)或更多個(gè)實(shí)施方式中,所描述的特征、結(jié)構(gòu)或特性可以以任何適當(dāng)?shù)姆绞竭M(jìn)行組合。在下面的描述中,提供了許多具體的細(xì)節(jié)以給出對(duì)實(shí)施方式的透徹的理解。然而,相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,可以在沒有一個(gè)或更多個(gè)具體細(xì)節(jié)的情況下實(shí)施各種實(shí)施方式,或可以使用其他的方法、組件、材料等來實(shí)施各種實(shí)施方式。在其他的示例中,不再詳細(xì)地示出或描述公知的結(jié)構(gòu)、材料或操作以避免困惑。
[0018]對(duì)于有時(shí)依靠電池電力來長(zhǎng)時(shí)間工作的移動(dòng)設(shè)備的用戶來說,增加電池壽命是重要的。片上系統(tǒng)(SoC, System on Chip)設(shè)計(jì)中的處理器核隨著性能提升而耗費(fèi)較多的電力。這是因?yàn)椴捎昧嗽黾訒r(shí)鐘頻率和/或額外邏輯的方法。這兩種方法都耗費(fèi)較多的電力來運(yùn)行系統(tǒng)。
[0019]傳統(tǒng)的多核處理器都具有相同的性能、頻率和功率。操作系統(tǒng)將任務(wù)平均地調(diào)度給每個(gè)核,并對(duì)每個(gè)核進(jìn)行類似的功率管理。隨著在常規(guī)芯片模上具有不同性能水平的多個(gè)核(不同大小的核)的芯片的發(fā)展,可以有差別地采用核。因?yàn)檩^小的核耗費(fèi)較少的電力但具有較低的性能,因此可以使用的較小核越多(偏向于使用較大核)則電池壽命越長(zhǎng),這是由于當(dāng)不使用較大核時(shí)系統(tǒng)可以將較大核關(guān)閉以節(jié)省電力。然而,如果以不適當(dāng)?shù)姆绞讲捎幂^小核,那么性能甚至節(jié)電效果會(huì)下降。
[0020]因此,實(shí)施方式自動(dòng)地確定如何調(diào)度在小核和大核上執(zhí)行的任務(wù),以使得一個(gè)或更多個(gè)較小核的使用最佳化,從而使得一個(gè)或更多個(gè)大核盡可能多地被關(guān)閉。另一實(shí)施方式提供了在大核和小核中使用編輯時(shí)間選項(xiàng)來管理任務(wù)調(diào)度。又一實(shí)施方式提供了在大核和小核的環(huán)境中使用中斷處理過程來管理任務(wù)調(diào)度。
[0021]可以通過參考附圖來最好地理解所示出的示例實(shí)施方式。下面的描述意在僅作為示例,并且僅示出了某些示例實(shí)施方式。
[0022]圖1描繪了信息處理設(shè)備電路、電路系統(tǒng)或組件的一個(gè)示例的框圖,但可以采用多種其他電路、電路系統(tǒng)或組件。圖1中描繪的示例可以對(duì)應(yīng)于計(jì)算系統(tǒng),例如由位于北卡羅來納州莫里斯維爾的聯(lián)想(美國(guó))公司銷售的THINKPAD系列個(gè)人電腦或其他設(shè)備。根據(jù)此處的描述明顯的是,實(shí)施方式可以包括圖1中示出的示例的特征中的僅一些特征或其他特征。
[0023]圖1的示例包括所謂的芯片組110 (—組一起工作的集成電路或芯片、芯片組),該芯片組110具有可以根據(jù)制造商(例如,INTEL、AMD、ARM等)而變化的架構(gòu)。芯片組110的架構(gòu)包括核和存儲(chǔ)器控制組120以及I/O控制器中樞150,該I/O控制器中樞150經(jīng)由直接管理接口(DMI) 142或鏈路控制器144交換信息(例如,數(shù)據(jù)、信號(hào)、命令等)。在圖1中,DMI142是芯片到芯片的接口(有時(shí)被稱為“北橋”與“南橋”之間的鏈路)。核和存儲(chǔ)器控制組120包括經(jīng)由前端總線(FSB) 124交換信息的一個(gè)或更多個(gè)處理器122 (例如,單核或多核)和存儲(chǔ)器控制器中樞126 ;注意,核和存儲(chǔ)器控制組120的組件可以被集成在代替?zhèn)鹘y(tǒng)的“北橋”式架構(gòu)的芯片中。
[0024]在圖1中,存儲(chǔ)器控制器中樞126與存儲(chǔ)器140有接口(例如,為可被稱為“系統(tǒng)存儲(chǔ)器”或“存儲(chǔ)器”的一類RAM提供支持)。存儲(chǔ)器控制器中樞126還包括用于顯示設(shè)備192 (例如,CRT、平板、觸摸屏等)的LVDS (低壓差分信號(hào))接口 132。模塊138包括可以經(jīng)由LVDS接口 132支持的一些技術(shù)(例如,串行數(shù)字視頻、HDMI/DVI (高清晰度多媒體接口/數(shù)字視頻接口)和顯示端口)。存儲(chǔ)器控制器中樞126還包括可以支持獨(dú)立顯卡136的PC1-express (串行總線)接口(PC1-E) 134。
[0025]在圖1中,I/O控制器中樞150包括SATA (串行高級(jí)技術(shù)附件)接口 151 (例如,用于HDD (硬盤驅(qū)動(dòng)器)/SDD (固態(tài)硬盤)180等)、PC1-E接口 152 (例如,用于無線連接182)、USB接口 153 (例如,用于諸如數(shù)字轉(zhuǎn)換器、鍵盤、鼠標(biāo)、照相機(jī)、電話、存儲(chǔ)器、其他連接設(shè)備等設(shè)備184)、網(wǎng)絡(luò)接口 154 (例如,LAN)、GPIO (通用輸入輸出)接口 155、LPC (低引腳數(shù))接口 170 (用于ASIC (專用集成電路)171、TPM (可信平臺(tái)模塊)172、超級(jí)1/0173、固件集線器174、BIOS支持175以及諸如R0M177、閃存178和NVRAM (非易失性隨機(jī)存儲(chǔ)器)179等各種類型的存儲(chǔ)器176)、電力管理接口 161、時(shí)鐘發(fā)生器接口 162、音頻接口 163(例如,用于揚(yáng)聲器194)、TCO接口 164、系統(tǒng)管理總線接口 165和可以包括BIOS (基本輸入輸出系統(tǒng))168和引導(dǎo)代碼190的SPI (串行)閃存166。I/O控制器中樞150可以包括千兆以太網(wǎng)支持。
[0026]系統(tǒng)在通電時(shí)可以被配置來執(zhí)行在SPI閃存166內(nèi)存儲(chǔ)的、用于B10S168的引導(dǎo)代碼190,此后,在一個(gè)或更多個(gè)操作系統(tǒng)和應(yīng)用軟件(例如,存儲(chǔ)在系統(tǒng)存儲(chǔ)器140中)的控制下處理數(shù)據(jù)。操作系統(tǒng)可以存儲(chǔ)在多種位置中的任何位置處,并例如根據(jù)B10S168的指令來訪問。如此處所述,設(shè)備可以包括比在圖1的系統(tǒng)中示出的特征更少或者更多的特征。
[0027]例如,參考圖2,關(guān)于諸如智能電話和/或平板電腦電路圖200等電池供電的設(shè)備,其示例包括基于ARM的系統(tǒng)(片上系統(tǒng))設(shè)計(jì),其中軟件和處理器在芯片210中。內(nèi)部總線等依賴于不同的供應(yīng)商,但基本上所有的外圍設(shè)備(220)都可以附接到單個(gè)芯片210。與圖1示出的電路系統(tǒng)相比,平板電路系統(tǒng)200將處理器、存儲(chǔ)器控制和I/O控制器中樞全都結(jié)合到了單個(gè)芯片210中。而且,基于ARM的系統(tǒng)200通常不使用SATA或PCI或LPC。通用接口例如包括SDIO (安全數(shù)字輸入輸出卡)和I2C (集成電路間)。存在一個(gè)或更多個(gè)電力管理芯片230,該電力管理芯片230對(duì)例如經(jīng)由可再充電電池240供應(yīng)的電力進(jìn)行管理,該可再充電電池240可以通過連接到電源(沒有示出)來再充電,且在至少一個(gè)設(shè)計(jì)中,單個(gè)芯片(例如210)用于提供類似BIOS的功能和DRAM (動(dòng)態(tài)隨機(jī)存取器)存儲(chǔ)器。
[0028]諸如基于ARM的系統(tǒng)200等任何移動(dòng)設(shè)備通??梢园╓ffAN (無線廣域網(wǎng))收發(fā)器250和WLAN (無線局域網(wǎng))收發(fā)器260中的一個(gè)或更多個(gè)以用于連接到各種網(wǎng)絡(luò),例如通信網(wǎng)絡(luò)和無線基站。通常,基于ARM的系統(tǒng)200包括用于數(shù)據(jù)輸入和顯示的觸摸屏270?;贏RM的系統(tǒng)200通常還包括各種存儲(chǔ)設(shè)備,例如閃存280和SDRAM(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)290。
[0029]參考圖3,實(shí)施方式可以使用預(yù)測(cè)性學(xué)習(xí)來確定在每個(gè)核中哪些任務(wù)可以最佳地運(yùn)行。例如,實(shí)施方式可以學(xué)習(xí)哪些應(yīng)用程序最適合在小核上執(zhí)行。作為一種機(jī)制,在步驟310中實(shí)施方式可以在較大核中通過啟動(dòng)“新”任務(wù),即沒有執(zhí)行歷史以利于學(xué)習(xí)的任務(wù)(應(yīng)用程序或進(jìn)程),來開始學(xué)習(xí)處理,以確保可接受的性能??商鎿Q地,實(shí)施方式在一些情況下(例如當(dāng)采用編譯時(shí)間或編程選項(xiàng)時(shí))可以排除這種保守方法,如下文所述。
[0030]然后,當(dāng)任務(wù)在較大核120上執(zhí)行時(shí)實(shí)施方式可以跟蹤一個(gè)或更多個(gè)參數(shù),同時(shí)考慮任務(wù)的一個(gè)或更多個(gè)特性。例如,實(shí)施方式可以跟蹤例如大核利用的百分比或任務(wù)在大核上運(yùn)行的時(shí)間等性能(執(zhí)行)參數(shù)。而且,實(shí)施方式可以考慮任務(wù)的一個(gè)或更多個(gè)特性,例如:確定任務(wù)是否為高優(yōu)先級(jí),如始終運(yùn)行的任務(wù)或例如當(dāng)系統(tǒng)處于常開啟時(shí)需要運(yùn)行的任務(wù);或確定任務(wù)是否需要在常連接模式(深度睡眠模式)下運(yùn)行等。
[0031]由此,隨著時(shí)間的推移,實(shí)施方式可以為每個(gè)任務(wù)130建立歷史,以為任務(wù)通知適當(dāng)?shù)暮撕灻?。從而,?shí)施方式可以針對(duì)給定任務(wù)適當(dāng)?shù)卮_定調(diào)度策略,并為任務(wù)分配核簽名以用于后續(xù)使用。例如,實(shí)施方式可以基于任務(wù)的歷史和任務(wù)特性來確定哪些任務(wù)應(yīng)該被移至較小核,如在步驟340中由任務(wù)核簽名所反映的那樣。因此,例如如果在步驟340中任務(wù)被確定為具有小核簽名,則在步驟350中該任務(wù)可以被引向芯片上的小核;反之,如果任務(wù)具有大核簽名,則在步驟360中該任務(wù)可以被引向較大核。一些示例確定方式可以由下面的實(shí)施方式來實(shí)現(xiàn)。
[0032]參考圖4,實(shí)施方式可以采用任務(wù)歷史和/或特性來確定任務(wù)應(yīng)該引向大核還是引向小核。例如,在步驟410中實(shí)施方式可以使用任務(wù)是否能夠與較小核的容量相“適配”的確定結(jié)果或估計(jì)結(jié)果來作為標(biāo)準(zhǔn)。例如,實(shí)施方式可以通過確定或訪問較小核與較大核(例如,在處理性能和/或其他相關(guān)參數(shù)方面)的比率并將較大核的百分比利用率轉(zhuǎn)換成較小核來計(jì)算這個(gè)“適配”。從而,實(shí)施方式可以根據(jù)較大核的百分比利用率跟蹤任務(wù)在較大核上的執(zhí)行,并將其映射到較小核的容量。這些信息可以包含在形成任務(wù)的核簽名的過程中。
[0033]從而,如果任務(wù)適配,則實(shí)施方式可以作出關(guān)于任務(wù)是否應(yīng)該被移至較小核的確定。這個(gè)決定結(jié)果可能依賴于各種因素,例如,是否存在與具有較高優(yōu)先級(jí)的較小核相適配的其他任務(wù),其中,該較高優(yōu)先級(jí)以多種方式確定(例如,使用頻率、臨界狀態(tài)等)。
[0034]在步驟420中實(shí)施方式可以確定任務(wù)是否被視為高優(yōu)先級(jí)。具有最高優(yōu)先級(jí)的任務(wù)可以被引向較小核中來執(zhí)行,例如在系統(tǒng)處于重度或深度睡眠模式時(shí)運(yùn)行的任務(wù)。這些任務(wù)要求設(shè)備處于常開啟狀態(tài)或常連接模式(“A0AC模式”,例如,深度睡眠)。這么做的原因是在深度睡眠模式中能夠完全關(guān)閉較大核。如果任務(wù)與兩個(gè)標(biāo)準(zhǔn)(與較小核適配并具有高優(yōu)先級(jí))適配,則下一個(gè)步驟430可以包括確定隨著時(shí)間變化的總CPU利用率以確保在任務(wù)被置于小核上的情形下,即使該任務(wù)與小核適配且為高優(yōu)先級(jí)任務(wù),則該任務(wù)的(該小核的)CPU利用率仍是合理的。
[0035]從而,可能存在有如下情況:與較小核適配的高優(yōu)先級(jí)任務(wù)仍然應(yīng)該在較大核上運(yùn)行,例如,因?yàn)檩^小核上特定的過高CPU利用率事件將使用較多的電力來結(jié)束,如在任務(wù)需要花費(fèi)很長(zhǎng)時(shí)間來完成或者任務(wù)在時(shí)幀期間被重復(fù)地執(zhí)行的情形,或者節(jié)能不是主要關(guān)注點(diǎn)(例如,當(dāng)設(shè)備被插入到電源中并且電池正在充電時(shí))的情形。由于與較小核適配且在AOAC模式期間運(yùn)行的任務(wù)趨向于更加頻繁地運(yùn)行(從而具有較高的優(yōu)先級(jí)),所以這些任務(wù)很可能是用于在小核上執(zhí)行的候選。使用這種調(diào)度,實(shí)施方式可以使得被分配給較小核的任務(wù)最優(yōu)化,從而盡可能地降低系統(tǒng)能耗。
[0036]參考圖5 (A至B),實(shí)施方式可以提供提示,這些提示被編程到任務(wù)中或被分配給任務(wù)(或任務(wù)中的子組件),從而能夠有更多的機(jī)會(huì)將正確的核簽名分配給任務(wù)或任務(wù)的子組件。再者,因?yàn)檩^小核耗費(fèi)較少電力但具有較低性能,所以系統(tǒng)使用較小核(而非使用較大核)越多,電池壽命越長(zhǎng),這是由于在不使用較大核時(shí)系統(tǒng)基本上可以將較大核關(guān)閉。實(shí)施方式在任務(wù)本身中提供提示,在該提示中程序員可以在編寫程序時(shí)指示要使用的最佳核。從而,實(shí)施方式通過將核簽名或提示編程到任務(wù)程序中來在運(yùn)行期間為任務(wù)更有效地選擇適當(dāng)?shù)暮恕?br>
[0037]確定在傳統(tǒng)多核芯片中使用的適當(dāng)?shù)暮嘶谧罱\(yùn)行程序的經(jīng)驗(yàn)來執(zhí)行而不知曉程序的將來需要,這在一些情況下可能是不適當(dāng)?shù)?。因?yàn)槌绦騿T可能使用編譯器標(biāo)志和語言元素來指示任務(wù)的某些運(yùn)行時(shí)間行為,例如待使用的指令集特征和動(dòng)態(tài)對(duì)靜態(tài)加載,這些特征可以有益地應(yīng)用在具有大核和小核架構(gòu)的芯片的環(huán)境中。
[0038]當(dāng)程序員在編寫程序時(shí)可能能夠指定最佳地利用大核和小核的方式,因?yàn)槌绦虻男再|(zhì)和所需資源的估計(jì)是可用的。因此,實(shí)施方式提供了一種功能,即程序員可以指定包括下述情況的核調(diào)度的提示:例如I)在可用的最小核上運(yùn)行該程序;2)該程序需要高性能核;3)基于最近的性能歷史將該任務(wù)動(dòng)態(tài)地分配給各個(gè)核;或其他核調(diào)度的提示。
[0039]如在圖5A的示例中所示,在步驟510A中程序員可以將提示指定為標(biāo)志。從而,在步驟510A中程序員在標(biāo)志中指定一個(gè)或更多個(gè)提示,在步驟520A中在編譯時(shí)間將程序和標(biāo)志發(fā)送至編譯器時(shí),在步驟530A中適當(dāng)?shù)貞?yīng)用提示(例如,應(yīng)用于整個(gè)任務(wù)/程序)。在這種情況下,提示可以靜態(tài)地應(yīng)用到整個(gè)程序,以便在步驟540A中將程序引向標(biāo)志所指示的核。然后,在步驟550A中程序和一個(gè)或更多個(gè)提示可以被安裝在設(shè)備上以按照所編程的那樣運(yùn)行,換言之,程序和提示根據(jù)一個(gè)或更多個(gè)提示而被引向一個(gè)或更多個(gè)適當(dāng)?shù)暮恕亩?,可以將任?wù)適當(dāng)?shù)匾蜉^小核或較大核。
[0040]還可以通過語言元素來動(dòng)態(tài)地應(yīng)用提示以便在步驟510B中運(yùn)行程序時(shí),在步驟520B中提示出現(xiàn)沖突的情形下可以根據(jù)程序的狀態(tài)來改變提示。這些提示可以是編譯器指示(僅在編譯時(shí)間有效)中的任何一個(gè),以指示代碼段的提示??商鎿Q地,在步驟530B中該提示不是靜態(tài)(固定)提示的情況下,在步驟550B中可以由程序使用系統(tǒng)功能調(diào)用來調(diào)整提示。例如,程序可以導(dǎo)致新的線程開始。新線程中的代碼可以進(jìn)行系統(tǒng)調(diào)用以指定該線程可以完全在最小的且最低性能的可用核上運(yùn)行??商鎿Q地,如果沒有動(dòng)態(tài)地更新提示,則在步驟560B中可以將提示如初始編程的那樣應(yīng)用到程序子組件。
[0041]實(shí)施方式還可以在任務(wù)調(diào)度策略中包含中斷處理以影響芯片上的大核和小核的可用性。如此處所述,大核機(jī)制和小核機(jī)制結(jié)合了不同大小的CPU,從而在同一封裝或芯片中具有不同數(shù)量的晶體管。這些大小核的設(shè)計(jì),在適當(dāng)管理的情形下可以帶來顯著的節(jié)能效果,因?yàn)檩^小CPU對(duì)小任務(wù)具有較高的效率。根據(jù)實(shí)施方式,中斷處理被配置成充分發(fā)揮由這樣的執(zhí)行環(huán)境所提供的節(jié)能效果。
[0042]照常規(guī),在多CPU系統(tǒng)中,隨機(jī)地引入中斷或者將中斷引入到特定CPU (例如最后的CPU)以運(yùn)行與中斷相關(guān)聯(lián)的設(shè)備驅(qū)動(dòng)程序。當(dāng)使用不同大小和能耗的CPU (大核和小核)時(shí),這些方法未必會(huì)給出最佳性能。
[0043]因此,在圖6示出的實(shí)施方式中,除了至一個(gè)低功率(小)CPU的中斷以外,可以屏蔽至所有CPU的中斷。例如,默認(rèn)情況下,在啟動(dòng)時(shí),實(shí)施方式可以將所有的或幾乎所有的中斷路由給該小核。實(shí)施方式可以根據(jù)適當(dāng)?shù)牟呗詫?duì)中斷去屏蔽。
[0044]例如,由于任務(wù)的工作歷史(例如對(duì)于給定設(shè)備驅(qū)動(dòng)程序,小核的循環(huán)飽和)或通過特定的配置或策略,其他核可以具有去屏蔽的中斷。從而,在步驟610中,對(duì)于中斷,可以查明任務(wù)的工作歷史以確定中斷與證明去屏蔽有效的策略是否適配。如果不適配,則在步驟620中可以將中斷默認(rèn)地引向小核。然而,在步驟610中,如果中斷與將中斷引向大核的策略適配,則在步驟630中可以根據(jù)策略將中斷去屏蔽,并在步驟640中將中斷引向大核進(jìn)行處理。以下是根據(jù)策略對(duì)中斷進(jìn)行去屏蔽以便將中斷引向其他核(例如,大核)并被其他核處理的一些示例情況。
[0045]在第一示例中,如果處理給定的中斷時(shí)出現(xiàn)消耗小核CPU的全部或大部分可用功率的歷史,例如,超過了某個(gè)閾值,可以將這樣的中斷路由到一個(gè)或更多個(gè)大核上,因?yàn)檫@些大核是高性能CPU。從而,通過將已知的處理密集的中斷引向適當(dāng)大小的核,,實(shí)現(xiàn)了節(jié)能,即使較大的核被使用。
[0046]在第二示例中,已知,中斷頻率很高以致當(dāng)將中斷重復(fù)地引向小核時(shí)CPU不能處理該中斷。在這樣的情況下,中斷可能被丟棄或所有的小核CPU循環(huán)將耗費(fèi)一段時(shí)間(例如,100毫秒)??梢詫⑦@樣的多個(gè)中斷分配給多個(gè)CPU以均衡負(fù)載。在這樣的情況下,可以查明芯片環(huán)境以根據(jù)預(yù)定的策略來確定中斷是被適當(dāng)?shù)匾蛞粋€(gè)或更多個(gè)小核還是被引向一個(gè)或更多個(gè)大核,還是被弓I向小核和大核的一些適當(dāng)?shù)慕M合。
[0047]在第三示例中,開發(fā)者或管理員可以知道特定的驅(qū)動(dòng)程序或其他任務(wù)需要高性能CPU。因此,在實(shí)施方式中,內(nèi)核可以被配置成屏蔽到高性能(大)CPU中進(jìn)行處理的相關(guān)中斷。
[0048]如此處所述,各種實(shí)施方式提供給各種任務(wù)處理或調(diào)度過程以使得大/小核環(huán)境可以被最佳地利用。在實(shí)施方式中,可以利用預(yù)測(cè)性任務(wù)調(diào)度或動(dòng)態(tài)任務(wù)調(diào)度,或可以利用靜態(tài)任務(wù)調(diào)度。在實(shí)施方式中,可以根據(jù)工作環(huán)境(例如,設(shè)備的工作狀態(tài)或充電狀態(tài))和待調(diào)度的任務(wù)的性質(zhì)(例如,具有已知?dú)v史的任務(wù)、包括有或包含提示的任務(wù)等),來利用預(yù)測(cè)性任務(wù)調(diào)度和靜態(tài)任務(wù)調(diào)度二者。應(yīng)該注意的是,盡管給出了任務(wù)的具體示例(程序、中斷、引用程序子組件或線程),并說明了具體的任務(wù)處理或調(diào)度過程,但這些是非限制性的示例且各種方面可以以任何適當(dāng)?shù)姆绞浇M合以實(shí)現(xiàn)在大核和小核之間的任務(wù)工作負(fù)載的恰當(dāng)調(diào)度。
[0049]可以在以下一個(gè)或更多個(gè)信息處理設(shè)備中來實(shí)現(xiàn)實(shí)施方式:所述一個(gè)或更多個(gè)信息處理設(shè)備適當(dāng)?shù)嘏渲贸蓤?zhí)行與此處描述的實(shí)施方式的功能一致的程序指令。在這方面,圖1和圖2示出了這樣的設(shè)備及其組件的非限制性示例。雖然諸如平板電腦、膝上型計(jì)算機(jī)和智能電話等移動(dòng)計(jì)算系統(tǒng)已在此處作為示例被具體地說明,但可以使用其他的系統(tǒng)或設(shè)備(例如電子閱讀器、導(dǎo)航系統(tǒng)、公用電話亭等)來實(shí)現(xiàn)實(shí)施方式。
[0050]而且,應(yīng)該注意的是,盡管此處給出了大核和小核示例,但可以將各種實(shí)施方式的原理和方面延伸至與此處的教示相稱的具有三個(gè)或更多個(gè)不同大小的核的設(shè)備。
[0051]本領(lǐng)域的普通技術(shù)人員將理解的是,本發(fā)明的各個(gè)方面可以實(shí)施為系統(tǒng)、方法或設(shè)備程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以采用完全硬件實(shí)施方式的形式或采用包括軟件的實(shí)施方式的形式,所述軟件在本文中可以全部統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。而且,本發(fā)明的各個(gè)方面可以采用在一個(gè)或更多個(gè)設(shè)備可讀介質(zhì)中實(shí)施的設(shè)備程序產(chǎn)品的形式,所述一個(gè)或更多個(gè)設(shè)備可讀介質(zhì)包含有設(shè)備可讀程序代碼。
[0052]可以利用一個(gè)或更多個(gè)無信號(hào)設(shè)備可讀介質(zhì)的任何組合。無信號(hào)介質(zhì)可以是存儲(chǔ)介質(zhì)。存儲(chǔ)介質(zhì)可以是例如電子的、磁的、光學(xué)的、電磁的、紅外線的或半導(dǎo)體的系統(tǒng)、裝置或設(shè)備,或前述的任何適當(dāng)?shù)慕M合。存儲(chǔ)介質(zhì)的更多的具體示例包括如下:便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦除可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式光盤只讀存儲(chǔ)器(CD-ROM)、光學(xué)儲(chǔ)存設(shè)備、磁存儲(chǔ)設(shè)備,或前述的任何適當(dāng)?shù)慕M合。
[0053]可以使用任何適當(dāng)?shù)慕橘|(zhì)包括但不限于無線、有線、光纜、RF等或前述的任何適當(dāng)?shù)慕M合來傳輸在存儲(chǔ)介質(zhì)上所包含的程序代碼。
[0054]可以以一種或更多種編程語言的任何組合來編寫用于執(zhí)行操作的程序代碼。程序代碼可以完全在單個(gè)設(shè)備上執(zhí)行或部分地在單個(gè)設(shè)備上執(zhí)行、作為獨(dú)立軟件包部分地在單個(gè)設(shè)備上且部分地在另一設(shè)備上執(zhí)行或完全在其他設(shè)備上執(zhí)行。在一些情況下,可以通過任何類型的連接或網(wǎng)絡(luò)(包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN))來連接設(shè)備,或可以通過其他設(shè)備(例如,通過使用因特網(wǎng)服務(wù)提供商的因特網(wǎng))或通過硬線連接(例如通過USB連接)來進(jìn)行連接。
[0055]在此參考示出了根據(jù)各種示例實(shí)施方式的示例方法、設(shè)備和程序產(chǎn)品的附圖來描述各個(gè)方面。將理解的是,示出的動(dòng)作和功能可以至少部分地由程序指令來實(shí)現(xiàn)??梢詫⑦@些程序指令提供給通用信息處理設(shè)備、專用信息處理設(shè)備或其他可編程數(shù)據(jù)處理設(shè)備或信息處理設(shè)備的處理器以產(chǎn)生機(jī)制,使得指令實(shí)現(xiàn)指定的功能/動(dòng)作,所述指令經(jīng)由設(shè)備的處理器來執(zhí)行。
[0056]也可以將程序指令存儲(chǔ)在設(shè)備可讀介質(zhì)中,該設(shè)備可讀介質(zhì)可以以特定的方式引導(dǎo)設(shè)備運(yùn)行,以使得存儲(chǔ)在設(shè)備可讀介質(zhì)中的指令生成制品,該制品包括實(shí)現(xiàn)指定的功能/動(dòng)作的指令。
[0057]也可以將程序指令加載到設(shè)備上以使得待在設(shè)備上執(zhí)行的一系列操作步驟生成設(shè)備實(shí)現(xiàn)的處理,使得在設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)指定功能/動(dòng)作的處理。
[0058]給出本公開內(nèi)容是為了說明和描述,而非意在是窮舉或限制。對(duì)本領(lǐng)域技術(shù)人員來說,許多修改和變化是明顯的。選擇并描述示例實(shí)施方式是為了說明原理和實(shí)際應(yīng)用,并且使得除了本領(lǐng)域技術(shù)人員以外的其他人員能夠理解本公開內(nèi)容,本公開內(nèi)容對(duì)應(yīng)于與預(yù)期的特定使用相稱的、具有多種修改的多種實(shí)施方式。
[0059]從而,盡管在此參考附圖描述了說明性的示例實(shí)施方式,但要理解的是,該描述不是限制性的,并且在不偏離本公開內(nèi)容的范圍或精神的情況下本領(lǐng)域技術(shù)人員可以作出各種其他變化和修改。
【權(quán)利要求】
1.一種任務(wù)執(zhí)行方法,包括: 對(duì)待被調(diào)度來在具有兩個(gè)或更多個(gè)不同大小的核的信息處理設(shè)備上執(zhí)行的任務(wù)進(jìn)行識(shí)別; 確定所述任務(wù)的適當(dāng)調(diào)度以在所述兩個(gè)或更多個(gè)不同大小的核上執(zhí)行,其中,所述任務(wù)的適當(dāng)調(diào)度經(jīng)由所述任務(wù)的核簽名來確定; 基于所確定的適當(dāng)調(diào)度將所述任務(wù)引向適當(dāng)?shù)暮藖韴?zhí)行;以及 在所述適當(dāng)?shù)暮松蠄?zhí)行所述任務(wù)。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述不同大小的核中的大核是高功率中央處理單元,此外,所述不同大小的核中的小核是相對(duì)于所述大核功率較低的中央處理單元。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述核簽名包括被跟蹤的執(zhí)行歷史。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述核簽名包括被確定的任務(wù)特性。
5.根據(jù)權(quán)利要求4所述的方法,其中,所述被確定的任務(wù)特性包括指示所述任務(wù)是高優(yōu)先級(jí)任務(wù)的特性。
6.根據(jù)權(quán)利要求1所述的方法,其中,針對(duì)所述任務(wù),對(duì)核簽名進(jìn)行編程,且所述核簽名包括與整個(gè)任務(wù)相關(guān)聯(lián)的提示。
7.根據(jù)權(quán)利要求1所述的方法,其中,針對(duì)所述任務(wù),對(duì)核簽名進(jìn)行編程,且所述核簽名包括與所述任務(wù)的子組件相關(guān)聯(lián)的提示。
8.根據(jù)權(quán)利要求1所述的方法,其中,針對(duì)所述任務(wù),對(duì)核簽名進(jìn)行編程,且所述核簽名是靜態(tài)的。
9.根據(jù)權(quán)利要求1所述的方法,其中,針對(duì)所述任務(wù),對(duì)核簽名進(jìn)行編程,且所述核簽名在所述任務(wù)的執(zhí)行期間被動(dòng)態(tài)地更新。
10.根據(jù)權(quán)利要求1所述的方法,其中,所述核簽名經(jīng)由如下過程確定,所述過程包括: 確定所述任務(wù)與小核是否適配; 確定所述任務(wù)是否為高優(yōu)先級(jí);以及 確定所述任務(wù)是否能夠在小核利用率的閾值容限范圍內(nèi)在所述小核上執(zhí)行。
11.一種信息處理設(shè)備,包括: 一個(gè)或更多個(gè)處理器;以及 存儲(chǔ)器,所述存儲(chǔ)器與所述一個(gè)或更多個(gè)處理器通信; 所述存儲(chǔ)器存儲(chǔ)程序指令, 所述程序指令在由所述一個(gè)或更多個(gè)處理器執(zhí)行時(shí)執(zhí)行下述步驟: 對(duì)待被調(diào)度來在具有兩個(gè)或更多個(gè)不同大小的核的信息處理設(shè)備上執(zhí)行的任務(wù)進(jìn)行識(shí)別; 確定所述任務(wù)的適當(dāng)調(diào)度以在所述兩個(gè)或更多個(gè)不同大小的核上執(zhí)行,其中,所述任務(wù)的適當(dāng)調(diào)度經(jīng)由所述任務(wù)的核簽名來確定; 基于所確定的適當(dāng)調(diào)度將所述任務(wù)引向適當(dāng)?shù)暮藖韴?zhí)行;以及 在所述適當(dāng)?shù)暮松蠄?zhí)行所述任務(wù)。
12.根據(jù)權(quán)利要求11所述的信息處理設(shè)備,其中,所述不同大小的核中的大核是高功率中央處理單元,此外,所述不同大小的核中的小核是相對(duì)于所述大核功率較低的中央處理單元。
13.根據(jù)權(quán)利要求11所述的信息處理設(shè)備,其中,所述核簽名包括被跟蹤的執(zhí)行歷史。
14.根據(jù)權(quán)利要求11所述的信息處理設(shè)備,其中,所述核簽名包括被確定的任務(wù)特征。
15.根據(jù)權(quán)利要求14所述的信息處理設(shè)備,其中,所述被確定的任務(wù)特性包括指示所述任務(wù)是高優(yōu)先級(jí)任務(wù)的特性。
16.根據(jù)權(quán)利要求11所述的信息處理設(shè)備,其中,針對(duì)所述任務(wù),對(duì)核簽名進(jìn)行編程,且所述核簽名包括與整個(gè)所述任務(wù)相關(guān)聯(lián)的提示。
17.根據(jù)權(quán)利要求11所述的信息處理設(shè)備,其中,針對(duì)所述任務(wù),對(duì)核簽名進(jìn)行編程,且所述核簽名包括與所述任務(wù)的子組件相關(guān)聯(lián)的提示。
18.根據(jù)權(quán)利要求11所述的信息處理設(shè)備,其中,針對(duì)所述任務(wù),對(duì)核簽名進(jìn)行編程,且所述核簽名是靜態(tài)的。
19.根據(jù)權(quán)利要求11所述的信息處理設(shè)備,其中,針對(duì)所述任務(wù),對(duì)核簽名進(jìn)行編程,且所述核簽名在所述任務(wù)的執(zhí)行期間被動(dòng)態(tài)地更新。
20.根據(jù)權(quán)利要求11所述的信息處理設(shè)備,其中,所述核簽名經(jīng)由如下過程確定,所述過程包括: 確定所述任務(wù)與小核是否適配; 確定所述任務(wù)是否為高優(yōu)先級(jí);以及 確定所述任務(wù)是否能夠在小核利用率的閾值容限的范圍內(nèi)在所述小核上執(zhí)行。
【文檔編號(hào)】G06F15/163GK103631656SQ201310351523
【公開日】2014年3月12日 申請(qǐng)日期:2013年8月13日 優(yōu)先權(quán)日:2012年8月21日
【發(fā)明者】馬克·C·達(dá)維斯, 達(dá)賴爾·C·克羅默, 霍華德·J·洛克, 斯科特·E·凱爾索 申請(qǐng)人:聯(lián)想(新加坡)私人有限公司