的虛擬處理器Vi的條件是在圖8中上述以外的剩余的3個(gè)條件。S卩,在溫度為攝氏70度以下,電池剩余容量為50%以上且處理負(fù)荷比70%大的情況下,分配加一的處理量的虛擬處理器(Vi —Vi+1)。相反地,在處理負(fù)荷比30%小的情況下,轉(zhuǎn)換成減一的處理量的虛擬處理器(Vi — V1-1)。在電池剩余容量為50%以下且處理負(fù)荷比30%小的情況下,轉(zhuǎn)換成減一的處理量的虛擬處理器(Vi — V1-D。但是,在圖8的例子中,在已經(jīng)分配了最大處理性能的V12或最小處理性能的VI但不能在現(xiàn)狀的基礎(chǔ)上向上或向下轉(zhuǎn)換的情況下,自然要保持現(xiàn)狀。
[0158]在圖6的步驟21中將虛擬處理器Vi分配給動態(tài)進(jìn)程組之后,等待事件(步驟22)。在事件等待期間內(nèi),利用步驟21中分配的虛擬處理器Vi執(zhí)行圖1的動態(tài)進(jìn)程組2的程序。步驟22中等待的事件是再次要求虛擬處理器分配處理的事件,例如,以某時(shí)間間隔啟動的計(jì)時(shí)器中斷、或溫度上升到規(guī)定的閾值以上的情況下的熱傳感器中斷等。這里說明的熱量的發(fā)生狀況的確認(rèn)和處理只是一例,不是必須條件。以上說明的步驟19至22的處理反復(fù)實(shí)施直到在步驟23中判斷為一系列的程序處理的結(jié)束。
[0159]對虛擬處理器Vi的分配處理進(jìn)行控制的圖1的調(diào)節(jié)器(Governor) 1使例如CPU (Little CPU) 9a?9d內(nèi)的一個(gè)CPU動作。在圖中,雖然處于用戶空間層123,但也可以處于內(nèi)核層122。需要利用用戶空間層123的軟件進(jìn)行高性能處理的程序預(yù)先放入能夠動態(tài)地切換虛擬處理器Vi的動態(tài)進(jìn)程組2。如上所述,針對動態(tài)進(jìn)程組2的數(shù)據(jù)處理的CPU分配,即虛擬處理器Vi的分配只要基于圖8例示的規(guī)則根據(jù)圖3的定義信息來進(jìn)行即可??傊?,根據(jù)電池的剩余容量、處理器內(nèi)的熱量的發(fā)生狀況或所執(zhí)行的程序的負(fù)荷,能夠利用CPU (Big CPU) 8a?8d和CPU (Little CPU) 9a?9d的最佳組合來執(zhí)行用于數(shù)據(jù)處理的CPU的設(shè)定。因此,以對數(shù)據(jù)處理性能高的CPU僅分配負(fù)荷大的任務(wù)且對低耗電的CPU僅分配負(fù)荷小的任務(wù)的方式進(jìn)行的控制可以不完全依賴于0S的調(diào)度器4 (或任務(wù)分配器)。因此,不需要為了進(jìn)行這樣的處理而使0S的調(diào)度器4(或任務(wù)分配器)最優(yōu)化。另外,能夠最大限度地利用全部CPU8a?8d、9a?9d,從而CPU資源的運(yùn)轉(zhuǎn)效率也好,而且,通過針對CPU的數(shù)據(jù)處理分配而能夠?qū)崿F(xiàn)的性能不限于高的數(shù)據(jù)處理性能或低的數(shù)據(jù)處理性能,還能夠?qū)崿F(xiàn)中間性的數(shù)據(jù)處理性能,因此認(rèn)為幾乎不會有不必要的耗電。因此,能夠根據(jù)數(shù)據(jù)處理負(fù)荷等的數(shù)據(jù)處理環(huán)境抑制浪費(fèi)不必要的耗電,并且能夠易于實(shí)現(xiàn)必要的數(shù)據(jù)處理性能。
[0160]《虛擬處理器Vi的分配更新中的逐級更新和跳過更新》
[0161]作為虛擬處理器Vi的分配規(guī)則的一例而示出的圖8是在更新虛擬處理器Vi的分配時(shí),采用一級一級地逐級對虛擬處理器Vi進(jìn)行更新的逐級更新。不僅限于此,還能夠采用一次跨過(跳過)多級地對更新目標(biāo)的虛擬處理器Vi進(jìn)行更新的跳過更新。圖9例示了采用虛擬處理器Vi的逐級更新并且還能夠采用跳過更新的情況下的虛擬處理器分配流程。這里,示出了從用戶發(fā)出虛擬處理器選擇的迅速上升、迅速下降的指示的情況下的例子。在用戶啟動負(fù)荷重的應(yīng)用程序的情況下,需要虛擬處理器選擇的迅速上升,但在負(fù)荷重的應(yīng)用程序的執(zhí)行結(jié)束后,為了減少電池容量的不必要的消耗,需要迅速地下降。若存在基于圖?的用戶指令(User Instruct1n) le的迅速上升、迅速下降的指示,貝>J判斷為需要變更虛擬處理器(圖9的步驟20),針對其原因是否為迅速上升或迅速下降的指示的判斷在下一步驟20b中進(jìn)行。在存在迅速上升或迅速下降的指示的情況下,進(jìn)行基于步驟21b的指示的虛擬處理器Vi選擇。在該例中,在迅速上升的情況下,選擇最大性能的V12,在迅速下降的情況下,選擇最小性能的VI,但也不妨根據(jù)個(gè)別要求進(jìn)行的任意選擇。
[0162]《CPU的電源控制》
[0163]在用戶設(shè)定或在電池余量變少時(shí)的方針為省電優(yōu)先的情況下,通過還采用動態(tài)地關(guān)閉未使用的CPU的電源這樣的機(jī)制,能夠?qū)崿F(xiàn)進(jìn)一步減少耗電量。另外,在處理器100內(nèi)部的溫度異常上升時(shí),通過將與CPU (Big CPU) 8a?8d關(guān)聯(lián)的電源全部關(guān)閉,能夠降低溫度。針對進(jìn)一步應(yīng)用該機(jī)制的具體例進(jìn)行說明。圖10層級地例示了在還考慮了 CPU的電源控制時(shí)的處理器100的硬件及軟件的結(jié)構(gòu)。對與這里的說明沒有直接關(guān)系的部分省略了圖示。
[0164]在圖10中,向圖1追加的重要組件是CPU熱插拔(CPU Hot plug)6a和電源管理硬件(Power Management HW) 14。CPU 熱插拔(CPU Hot plug) 6a 是 Linux (注冊商標(biāo))內(nèi)核(Linux Kernel)的電源管理(Power Management) 6的一個(gè)功能,通過使用硬件層120的電源管理硬件14,能夠在其運(yùn)轉(zhuǎn)過程中執(zhí)行所搭載的全部CPU8a?8d、9a?9d的電源的接通/斷開。在使用其他0S的情況下,也能夠使用相同的功能。CPU熱插拔6a具有面向用戶空間層123的接口,在圖10的例子中,例如通過調(diào)節(jié)器(Governor) 1控制該接口,由此,能夠進(jìn)一步強(qiáng)化基于圖1說明的省電效果。
[0165]圖11例示了在采用圖10的結(jié)構(gòu)的情況下的初始化部分的處理流程。圖11所示的初始化部分與圖6的圖4的啟動處理(Boot) 18對應(yīng)。
[0166]在圖11的步驟18-1中,進(jìn)行各種設(shè)定。例如,進(jìn)行所使用的單片模塊類的全部電源接通、時(shí)鐘頻率設(shè)定、中斷矢量表格的設(shè)定等。在進(jìn)行了各種設(shè)定之后,啟動內(nèi)核層(Kerne) 122的程序(步驟18_2)。在啟動了內(nèi)核層122的程序之后,作為初始化處理的一環(huán),確認(rèn)用戶設(shè)定模式、溫度及電池余量(步驟18-3),基于該確認(rèn)結(jié)果,判斷是否需要減少應(yīng)動作的CPU (步驟18-4)。在需要減少時(shí),使用CPU熱插拔6a的功能從使用對象排除不需要的CPU (步驟18-5)。
[0167]圖12示出對在步驟18-4、18-5中減少不需要的CPU時(shí)的判斷所使用的標(biāo)準(zhǔn)進(jìn)行規(guī)定的表格的一例。根據(jù)熱量的發(fā)生狀況(Temperature) lc、電池剩余容量(BatteryLevel) Id、用戶設(shè)定(User Setting) If,進(jìn)行用于減少CPU的處理(Operat1n)。處理(Operat1n)的內(nèi)容只是為了說明其機(jī)制的簡單的一例,當(dāng)然能夠根據(jù)實(shí)際的系統(tǒng)而變化。在圖12的例子中,在溫度比攝氏70度大的情況下,判斷為異常事態(tài),無論電池剩余容量或用戶設(shè)定如何,都僅使CPU (Little CPU) 9a?9d內(nèi)的一個(gè)CPU的電源接通。在溫度比攝氏70度低的情況下,進(jìn)行根據(jù)重視處理能力或使低耗電優(yōu)先這樣的用戶設(shè)定和電池電量的選擇。
[0168]在啟動處理中,根據(jù)用戶設(shè)定等,使所使用的CPU的電源接通,使未使用的CPU的電源斷開,由此,在系統(tǒng)啟動時(shí),能夠通過用戶設(shè)定從最初起對不使用的CPU將其動作設(shè)為不活躍,因此,能夠從最初起就抑制不必要的耗電。在沒有將不使用的CPU設(shè)為不活躍的情況下,該CPU以電源供給狀態(tài)待機(jī),與這種狀況相比更能夠?qū)崿F(xiàn)低耗電。
[0169]然后,說明在初始設(shè)定后的系統(tǒng)運(yùn)轉(zhuǎn)過程中,能夠更新用于數(shù)據(jù)處理的CPU的種類和個(gè)數(shù)的分配。在系統(tǒng)運(yùn)轉(zhuǎn)過程中,也通過圖10的調(diào)節(jié)器(Governor) 1控制CPU熱插拔6a,由此能夠進(jìn)一步強(qiáng)化省電效果。圖13例示了其處理流程。
[0170]在圖13中,向圖6的流程圖追加了步驟21-2。在調(diào)節(jié)器(Governor) 1選擇適當(dāng)?shù)奶摂M處理器Vi并分配給動態(tài)進(jìn)程組2之后,通過CPU熱插拔6a動態(tài)地將變得不使用的CPU的電源斷開。通過斷開電源,使得不必要的漏電流不再流動,能夠得到大的省電效果。尤其是,在不使用的情況下,能夠?qū)⒉粌H動作中的消耗電流而且漏電流也很大的重視性能的CPU (Big CPU) 8a?8d的電源斷開的效果很大。
[0171]《DVFS控制》
[0172]在向?qū)μ摂M處理器Vi的分配動態(tài)地切換的動態(tài)進(jìn)程組2的CPU分配為全部CPU (Big CPU) 8a?8d和CPU (Little CPU) 9a?9d這8個(gè)的狀態(tài)下,即使接收到進(jìn)一步提高性能的要求,僅憑借圖3的選擇方式,只會停滯于該狀態(tài),也不能實(shí)現(xiàn)性能提高。若可以增加耗電量的話,則能夠通過提高CPU的電壓和頻率這兩者,來實(shí)現(xiàn)進(jìn)一步的性能提高。該技術(shù)已知為DVFS (Dynamic Voltage Frequency Scaling)這樣的名稱。但是,由于耗電量與電壓的平方、頻率的一次方成正比,所以為了將耗電的增加抑制到必要最低限度,需要極其精細(xì)的控制。基于非對稱多處理器系統(tǒng)的效率好的安裝方法并非已知。通過在上述圖10的例子的基礎(chǔ)上進(jìn)一步組合DVFS控制,能夠?qū)嵤⒑碾娨种频奖匾畹拖薅纫詫?shí)現(xiàn)連續(xù)的性能提高的控制。圖14層級地例示了進(jìn)一步追加了 DVFS控制的處理器100的硬件及軟件的結(jié)構(gòu)。對與這里的說明沒有直接關(guān)系的部分省略了圖示。
[0173]在圖14中米用的重要的組件是DVFS6b、電源管理硬件(Power Management HW) 14及時(shí)鐘控制硬件(Clock Control HW) lejVFSeb 是Linux (注冊商標(biāo))內(nèi)核(Linux Kernel)的電源管理(Power Management) 6的一個(gè)功能,使用硬件層120的電源管理硬件(PowerManagement HW) 14和時(shí)鐘控制硬件(Clock Control HW) 16,使所搭載的全部CPU8a?8d、9a?9d的電源電壓14a、14b與同步時(shí)鐘16a、16b連動地進(jìn)行動態(tài)控制。DVFS6b響應(yīng)從調(diào)節(jié)器1接收的升壓請求(Boost Request) 15而開始控制。
[0174]圖15例示了向圖6追加了 DVFS處理的控制流程。從該圖可知,在已選擇了最高性能(V12)的狀態(tài)(參照步驟S20c)下,在接收到進(jìn)一步的性能提高要求時(shí),執(zhí)行DVFS處理(步驟25),其中最高性能(V12)是指,虛擬處理器Vi的分配被動態(tài)地切換的動態(tài)進(jìn)程組2 使用了 CPU (Big CPU) 8a ?8d 和 CPU (Little CPU) 9a ?9d 這 8 個(gè)全部。
[0175]圖16例示了步驟25的DVFS處理的內(nèi)容。在本說明書的例子中,將CPU (LittleCPU) 9a?9d的處理性能假定為基準(zhǔn)的1,將CPU (Big CPU) 8a?8d的處理性能假定為2,但這里,將當(dāng)初向雙方的組8、9的CPU (Big CPU) 8a?8d和CPU (Little CPU) 9a?9d供給的電源電壓作為基準(zhǔn)的1,當(dāng)在步驟25的DVFS處理中,將該電源電壓提高到1.2倍,并使同步時(shí)鐘頻率也與其連動地高速化時(shí),假定雙方的組8、9的CPU (Big CPU) 8a?8d和CPU (LittleCPU) 9a?9d的處理性能分別成為1.5和3。但是,這些假定是為了便于說明該例,其實(shí)自然是與實(shí)際的系統(tǒng)相應(yīng)地變化的。
[0176]在圖16中例示了以應(yīng)用DVFS處理之前的虛擬處理器V12中的最高性能的狀態(tài)(合成性能為12)為基準(zhǔn)來提高性能的多個(gè)方式。在以此為基準(zhǔn),實(shí)現(xiàn)例如合計(jì)性能為13的情況下,將DVFS處理應(yīng)用于CPU (Little CPU) 19a?19d內(nèi)的2個(gè)CPU。由于CPU (LittleCPU) 9a?9d內(nèi)的2個(gè)性能分別從1提高到1.5,所以如性能詳細(xì)內(nèi)容記載的那樣,合計(jì)性能成為13。合計(jì)性能為14以上的情況也同樣。在“Big CPU電壓”、“Little CPU電壓”的欄中,記載了性能提高所需的電壓也與性能提高相應(yīng)地增加。在實(shí)現(xiàn)例如合計(jì)性能為14的情況下,能夠?qū)VFS處理應(yīng)用于CPU (Little CPU) 9a?9d內(nèi)的2個(gè)和CPU (Big CPU) 8a?8d內(nèi)的1個(gè),但在步驟25的DVFS處理中,根據(jù)與圖16的定義相應(yīng)的定義信息,選擇僅使一方的電源電壓增加到1.2的方式。這是因?yàn)?,與提高雙方的組的CPU的電源電壓相比,僅使低功率的CPU (Little CPU)提高電源電壓的方式在低耗電方面