專利名稱:多核處理器系統(tǒng)、電力控制方法及電力控制程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及控制電力的多核處理器系統(tǒng)、電力控制方法以及電力控制程序。
背景技術(shù):
在現(xiàn)有的移動電話中,由基帶處理器(以下,稱為“BP”)承擔通信、通話功能,由應用處理器(以下,稱為“APL”)承擔其他多媒體處理。進而,BP使DSP (Digital SignalProcessor :數(shù)字信號處理器)執(zhí)行對通話功能中使用的聲音進行編碼與解碼的聲音編解碼處理(例如參照非專利文獻I 3)。DSP以高速地進行特定運算處理為目的,是主要用于聲音處理、圖像處理等的處理器。這樣,控制移動電話的處理器是具有BP、APL、DSP這類執(zhí)行不同處理的處理器的異構(gòu)多核處理器系統(tǒng)。
作為異構(gòu)多核處理器系統(tǒng)的省電力的技術(shù),公開了下述技術(shù),即在專用CPU(Central Processing Unit)和通用CPU中根據(jù)是外部電源還是電池驅(qū)動來選擇分配程序的CPU,來實現(xiàn)省電力化(例如,參照下述專利文獻I)。另外,由于APL承擔負荷高的多媒體處理,所以正在執(zhí)行的多媒體處理會導致運算能力大幅地變化。因此,APL有時也具有時鐘齒輪(clock gear)功能作為使運算能力變化的功能。時鐘齒輪功能是能夠使頻率分等級地變更的功能。APL具有的時鐘齒輪功能往往可以將頻率變更為3 5等級。這樣,APL通過根據(jù)正在執(zhí)行的多媒體處理來變更時鐘齒輪,能夠?qū)崿F(xiàn)省電力化。專利文獻I :日本特開2008 - 276395號公報非專利文獻I :頭脳放談第20回日立# S-MAP全変文石?,[online],[平成 22 年 03 月 18 日検索],^ > 夕一才、'7 卜〈http //www. atmarkit. co. jp/fpc/rensai/zunouhoudan020/smap. html>非專利文獻2 I T :頭脳放談第44回二 〃 >半導體,復活O力¥ ii攜帯電話?,[online],[平成 22 年 03 月 18 日検索],^ > 夕一才、'7 卜〈http //www. atmarkit.co. jp/fsys/zunouhoudan/044zunou/app_processor. html>非專利文獻3 :Mobile :TI乃“0ΜΑΡ”、NEC、松下、富士通# 3G攜帯(二採用,[online],[平成 22 年 03 月 18 日検索],彳 > 夕一才、'7 卜〈http: / / plusd. itmedia.co. jp / mobile / 0203 / 18 / η—omap. html>
發(fā)明內(nèi)容
但是,在上述的現(xiàn)有技術(shù)中,專利文獻I所涉及的技術(shù)根據(jù)電源的利用方式是外部電源還是電池驅(qū)動來選擇分配程序的CPU。在電池驅(qū)動之時,會選擇為省電力狀態(tài)的低性能的CPU,從而存在著即使電池中有余量,程序的執(zhí)行速度也總是為低速這樣的問題。另夕卜,存在下述問題點,即、即使使用時鐘齒輪功能來進行省電力化,也會由于在時鐘齒輪中設(shè)定的等級數(shù)少,從而執(zhí)行中的多媒體處理在適當?shù)倪\算能力和APL的運算能力上產(chǎn)生差異,產(chǎn)生運算能力的剩余。
本發(fā)明為消除上述的現(xiàn)有技術(shù)中的問題點,其目的在于提供減少運算能力的剩余并且省電力化的多核處理器系統(tǒng)、電力控制方法以及電力控制程序。為了解決上述的課題并達成目的,公開的多核處理器系統(tǒng)的技術(shù)特征是對在與執(zhí)行特定處理的特定核不同的其他核中,多個軟件中特定軟件具有與特定處理同等的功能并且多個軟件中與特定軟件不同的其他軟件正在執(zhí)行的狀態(tài)進行檢測,當檢測出其他軟件正在其他核中執(zhí)行的狀態(tài)時從以多個軟件中該各個軟件為單位存儲有運算能力的要求值的數(shù)據(jù)庫中,提取特定軟件與其他軟件的運算能力的要求值,判斷提取出的特定軟件與其他軟件的運算能力的要求值的合計是否在其他核的運算能力值以下,當判斷為運算能力的要求值的合計在其他核的運算能力值以下時,向其他核分配特定軟件,當向其他核分配了特定軟件時,使特定核休止。根據(jù)本多核處理器系統(tǒng)、電力控制方法以及電力控制程序,可起到能夠減少運算能力的剩余并且省電力化這一效果。
圖I是表示本實施方式所涉及的多核處理器系統(tǒng)的硬件的框圖。圖2是表不多核處理器系統(tǒng)100的框圖。圖3是表示多核處理器系統(tǒng)100的各CPU的執(zhí)行狀態(tài)的轉(zhuǎn)變的說明圖。圖4是圖3的狀態(tài)302下的各CPU的執(zhí)行狀況和消耗電力的說明圖。圖5是圖3的狀態(tài)304下的各CPU的執(zhí)行狀況和消耗電力的說明圖。圖6是圖3的狀態(tài)303下的各CPU的執(zhí)行狀況和消耗電力的說明圖。圖7是表示軟件能力要求表201的存儲內(nèi)容的一個例子的說明圖。圖8A是表示多核處理器系統(tǒng)100的調(diào)度處理的流程圖(其I)。圖SB是表示多核處理器系統(tǒng)100的調(diào)度處理的流程圖(其2)。圖9是表不PMU事件獲取處理的流程圖。圖10是表示外部中斷檢測處理的流程圖。圖11是表示編解碼結(jié)果處理的流程圖。圖12是表示DSP起動要求處理的流程圖。圖13是表示有剩余的處理的流程圖。圖14是表示APL103為一個時的剩余判斷處理的流程圖。圖15A是表示APL103為多個時的剩余判斷處理的流程圖(其I)。圖15B是表示APL103為多個時的剩余判斷處理的流程圖(其2)。圖16是表示編解碼開始處理的流程圖。圖17是表不DSP編解碼處理的流程圖。圖18是表示外部中斷結(jié)束處理的流程圖。圖19是表示步驟S1517中的作為變換對象的移動對象軟件的檢索處理的一個例子的流程圖。
具體實施例方式以下,參照附圖,詳細地說明本發(fā)明的多核處理器系統(tǒng)、電力控制方法以及電力控制程序的優(yōu)選實施方式。(多核處理器系統(tǒng)的硬件)圖I是表示本實施方式的多核處理器系統(tǒng)的硬件的框圖。在圖I中,多核處理器系統(tǒng)100具備基帶處理器(BP) 101、PMU (Power Management Unit :電源管理單元)102、應用處理器(APL) 103和DSP104。多核處理器系統(tǒng)是指含有安裝了多個核的處理器的計算機系統(tǒng)。安裝了多個核即可,可以是安裝了多個核的單一處理器,也可以是單核處理器被并列而成的處理器組。優(yōu)選多核處理器系統(tǒng)100可以是具備多個性能不同的核的異構(gòu)多核處理器系統(tǒng)。另外,作為專用的存儲區(qū)域,多核處理器系統(tǒng)100具備BP101可以訪問的RAM(Random Access Memory) 107和APL103可以訪問的RAM108。作為共用的存儲區(qū)域,多核處理器系統(tǒng)100具備ROM (Read Only Memory) 109、RAMllO和閃存ROMlll。另外,作為與用戶、其他設(shè)備的輸入輸出裝置,多核處理器系統(tǒng)100具備天線105、RF電路106、顯示器 112和鍵盤113。另外,各部分分別通過總線114連接。這里,BP101通過控制RF電路106來進行通話檢測,是承擔通信、通話功能的處理器核。另外,本實施方式的BP101根據(jù)APL103的運算能力是否有剩余,將伴隨通話的聲音編解碼處理分配給APL103或DSP104。PMU102是按裝置管理消耗電力的裝置,在本實施方式中,使APL103和DSP104休眠。APL103是承擔多媒體處理的處理器核。另外,APL103當運算能力有剩余時,也承擔聲音編解碼。APL103作為能夠變更APL103與RAM108等的動作頻率的功能,也可以具有時鐘齒輪功能。APL103根據(jù)正在執(zhí)行的軟件的負荷來切換時鐘齒輪,從而能夠得到省電力效果。例如,APL103能夠?qū)r鐘齒輪變更為3 5等級。作為具體的動作頻率的例子,有100[MHz],200 [MHz],600 [MHz],作為與各個動作頻率對應的消耗電力的例子,有100 [mW]、200 [mW]、600 [mff]0DSP104是承擔聲音編解碼的處理器核。作為聲音編解碼的格式,存在PCM (PulseCode Modulation :脈沖編解碼調(diào)制)、ADPCM (Adaptive Differential Pulse CodeModulation 自適應差值脈沖編解碼調(diào)制)。雖未圖示DSP104的專用RAM,但也可以存在DSP104專用RAM。另外,多核處理器系統(tǒng)100在APL103訪問RAM108來執(zhí)行聲音編解碼處理的中途,也可以將聲音編解碼處理移向DSP104。此時,為了訪問保存于RAM108中的聲音編解碼的中途結(jié)果,DSP104也可以按照能夠訪問RAM108的方式接線。天線105發(fā)送接收無線信號。RF電路106是高頻處理部,經(jīng)由天線105從因特網(wǎng)等網(wǎng)絡(luò)接收數(shù)據(jù),或者向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。這里,假設(shè)RF電路106具備A(Analog)/D(Digital)轉(zhuǎn)換器、D / A轉(zhuǎn)換器等,將來自網(wǎng)絡(luò)的數(shù)據(jù)變換為數(shù)字信號,或者將來自BP101的數(shù)據(jù)變換為模擬信號。R0M109 存儲有引導程序等程序。RAM110 作為 BP101、PMU102、APL103、DSP104 的工作區(qū)域被使用。閃存R0M111存儲有OS (Operating System :操作系統(tǒng))等系統(tǒng)軟件、應用程序軟件等。顯示器112顯示以光標、圖標或者工具箱為代表的文件、圖像、功能信息等數(shù)據(jù)。顯示器112例如能夠采用TFT液晶顯示器等。鍵盤113具備用于輸入文字、數(shù)字、各種指示等的鍵,進行數(shù)據(jù)的輸入。圖I中圖示的例子是數(shù)字鍵,將來自用戶的輸入作為外部中斷發(fā)送至 PMU102。(多核處理器系統(tǒng)100)接下來,對多核處理器系統(tǒng)100進行說明。圖2是表示多核處理器系統(tǒng)100的框圖。多核處理器系統(tǒng)100包含檢測部202、提取部203、剩余判斷部204、分配部205、休止部206、決定部207、移動部208、休止通知部209、編解碼處理檢測部210和編解碼處理分配部211。作為該控制部的功能(檢測部202 編解碼處理分配部211)通過BP101、PMU102、APL103中的任意一個執(zhí)行存儲于存儲裝置中的程序,來實現(xiàn)其功能。存儲裝置是指例如圖I 所示的 RAM107、RAM108、R0M109、RAM110、W#R0M111 等。另外,多核處理器系統(tǒng)100可以訪問軟件能力要求表201。軟件能力要求表201按多個軟件中的各個軟件存儲運算能力的要求值。訪問軟件能力要求表201的是APL 103,因此在圖2中,軟件能力要求表201保存于RAM108中,但也可以保存于RAMllO等中。另外,各控制部中的檢測部202 分配部205、決定部207 休止通知部209由APL103執(zhí)行。休止部206由PMU102執(zhí)行。編解碼處理檢測部210、編解碼處理分配部211由BPlOl執(zhí)行。檢測部202具有下述功能,即檢測多個軟件中與特定軟件不同的其他軟件正在與執(zhí)行特定處理的特定核不同的其他核中執(zhí)行的狀態(tài)。特定軟件屬于多個軟件,具有與特定處理同等的功能。另外,特定處理是指例如聲音的編解碼處理,特定核是指DSP104。另外,作為特定處理,也可以是DSP104通常擅長的數(shù)字圖像處理。與特定核不同的其他核是APL103。另外,其他軟件只要是由APL103執(zhí)行的特定軟件以外的軟件即可,可以是任意軟件。例如,其他軟件也可以是作為特定處理以外的多媒體處理的流影像再生處理。例如,除了執(zhí)行多媒體處理以外,若其他軟件是作為商務軟件的文字處理器軟件,也可以執(zhí)行文章編輯處理。另外,特定核與其他核也可以是性能不同的CPU。圖I、圖2所示的APL103是I個CPU,但執(zhí)行多媒體處理的APL103也可以包含多個CPU。具有與特定處理同等功能的特定軟件是指例如具有與DSP104承擔的編解碼處理同等的功能的編解碼處理軟件。具體而言,例如檢測部202檢測在DSP104中正在執(zhí)行聲音編解碼處理,在APL103中正在執(zhí)行與編解碼處理軟件不同的其他軟件的狀態(tài)。其中,檢測到的信息被存儲于RAM108、RAMllO等存儲區(qū)域中。提取部203具有下述功能,即當由檢測部202檢測到其他軟件正在其他核中執(zhí)行的狀態(tài)時,從軟件能力要求表201中提取特定軟件和其他軟件的運算能力的要求值。運算能力的要求值是指軟件正常動作所用的運算能力。運算能力的要求值使用執(zhí)行前的模擬、分析器(Profiler)來事先測量。另外,APL103也可以在軟件執(zhí)行時取得記錄,來更新軟件能力要求表201。具體而言,例如在由檢測部202進行了檢測的情況下,提取部203提取特定軟件的運算能力的要求值。提取出的值例如由MIPS (Million Instructions Per Second)來表不,該 MIPS表示I秒鐘能夠執(zhí)行幾百萬個命令。例如,通過提取部203提取出作為特定軟件的編解碼處理軟件的運算能力的要求值為60[MIPS]。同樣地,通過提取部203提取出作為其他軟件的流再生軟件的運算能力的要求值為100 [MIPS],聲音再生軟件的運算能力的要求值為40[MIPS]。其中,提取出的運算能力的要求值存儲于RAM108、RAMllO等存儲區(qū)域中。
剩余判斷部204具有下述功能,即判斷由提取部203提取出的特定軟件和其他軟件的運算能力的要求值的合計是否在其他核的運算能力值以下。另外,剩余判斷部204當由移動部208使移動對象軟件移動時,也可以判斷與移動源的核的移動對象軟件以外的其余軟件的運算能力的要求值的合計是否在移動源的核的運算能力值以下。另外,剩余判斷部204也可以判斷是否在移動源的核的運算能力值以下,并且特定軟件與正在每個其他核中執(zhí)行的軟件組的運算能力的要求值的合計是否在其他核的運算能力值的合計以下。具體而言,例如假設(shè)下述狀態(tài),即特定軟件的運算能力的要求值為60[MIPS],其他軟件的運算能力的要求值為100 [MIPS],40 [MIPS],APL103的運算能力值為200 [MIPS]。由于60 + 100 + 40彡200,因此剩余判斷部204判斷為運算能力的要求值的合計在APL103的運算能力值以下。其中,判斷出的信息被存儲于RAM108、RAMllO等存儲區(qū)域中。分配部205具有下述功能,即當由剩余判斷部204判斷為在其他核的運算能力值 以下時,向其他核分配特定軟件。另外,分配部205也可以向由決定部207決定的核分配特定軟件。具體而言,例如當由剩余判斷部204判斷為在APL103的運算能力值以下時,分配部205向APL103分配編解碼處理軟件。其中,分配結(jié)果存儲于RAM108、RAM110等存儲區(qū)域中。休止部206具有下述功能,即由分配部205向其他核分配了特定軟件時,從休止通知部209接受通知,使特定核休止。另外,休止部206當由分配部205向由決定部207決定的核分配了特定軟件時,也可以使特定核休止。具體而言,例如,當向APL103分配了編解碼處理軟件時,PMU102使DSP104休止。其中,使其休止的信息存儲于RAMllO等存儲區(qū)域中。決定部207具有下述功能,即由剩余判斷部204判斷為在其他核的運算能力值以下時,從其他核之中,決定運算能力值與特定軟件以及其他軟件的運算能力的要求值的合計的差值為最大的核。例如,APL103包含APL#1 APL#3這3個CPU。另外,APL#1的運算能力值是100[MIPS],若要求值的合計為70 [MIPS],則差值為30 [MIPS]。同樣地,APL#2的運算能力值為200 [MIPS],若要求值的合計為120 [MIPS],則差值為80 [MIPS]。同樣地,APL#3的運算能力值為600 [MIPS],若要求值的合計為580 [MIPS],則差值為20 [MIPS]。此時,決定部207從APL#1 APL#3中將差值為最大的APL#2決定為要分配編解碼處理軟件的CPU。其中,被決定的CPU的信息存儲于RAM108、RAMllO等存儲區(qū)域中。移動部208具有下述功能,即,使正在其他核中的移動源的核中執(zhí)行的移動對象軟件向其他核中的移動目的地的核移動。另外,移動部208當由剩余判斷部204判斷為特定軟件與移動源的核的移動對象軟件以外的其余軟件的運算能力的要求值的合計在移動源的核的運算能力值以下時,也可以使移動對象軟件移動。例如,APL103包含APL#1、APL#2這2個CPU。進而,假設(shè)APL#1為移動源的核,APL#2為移動目的地的核。若正在APL#1中執(zhí)行的軟件的運算能力的要求值為160[MIPS],移動對象軟件的運算能力的要求值為20[MIPS],則其余軟件的運算能力的要求值的合計為160 — 20 = 140 [MIPS]。進而,若APL#1的運算能力值為200 [MIPS],特定軟件的運算能力的要求值為60[MIPS],則140 + 60 ^ 200,從而剩余判斷部204判斷為在移動源的核的運算能力值以下。因此,移動部208使移動對象軟件移向APL#2。其中,使其移動的移動對象軟件的信息也可以存儲于RAM108、RAMllO等存儲區(qū)域中。休止通知部209具有下述功能,即當由分配部205向其他核分配了特定軟件時,通知特定核的休止請求。具體而言,例如向APL103分配了作為特定軟件的編解碼處理軟件后,休止通知部209對PMU102通知DSP104的休止請求。其中,休止請求信息也可以存儲于RAM108、RAMllO等存儲區(qū)域中。編解碼處理檢測部210具有下述功能,即基于由RF電路106輸入輸出的數(shù)據(jù),檢測是否發(fā)生了編解碼處理。具體而言,例如對于依據(jù)在多核處理器系統(tǒng)100中應用輸入的數(shù)據(jù)的協(xié)議而變換后的結(jié)果,當輸入的數(shù)據(jù)的格式為PCM、ADPCM時,BPlOl檢測出發(fā)生了編解碼處理。其中,檢測出的數(shù)據(jù)存儲于RAM107、RAMllO等存儲區(qū)域中。編解碼處理分配部211具有下述功能,即基于APL103的運算能力的剩余,向APL103或DSP104分配由編解碼處理檢測部210檢測出的編解碼處理。具體而言,例如若APL103的運算能力有剩余,則BPlOl向APL103分配編解碼處理。若APL103的運算能力沒有剩余,則BPlOl向DSP104分配編解碼處理。其中,向APL103或DSP104中的哪一個分配 編解碼處理這一信息存儲于RAM107、RAMllO等存儲區(qū)域中。圖3是表示多核處理器系統(tǒng)100的各CPU的執(zhí)行狀態(tài)的轉(zhuǎn)變的說明圖。多核處理器系統(tǒng)100的狀態(tài)為以下5種狀態(tài)中的任意一種狀態(tài)。狀態(tài)301不是通話中,僅正在BPlOl中執(zhí)行。狀態(tài)302是通話中,正在BPlOl與DSP104中執(zhí)行。狀態(tài)303是通話中,正在BPlOl與APL103中執(zhí)行。狀態(tài)304是通話中,正在BP101、APL103和DSP104中執(zhí)行。狀態(tài)305不是通話中,正在BPlOl與APL103中執(zhí)行。在多核處理器系統(tǒng)100為狀態(tài)301的狀態(tài)下,當BPlOl進行通話檢測時,PMU102使進行聲音編解碼處理的DSP104從休止狀態(tài)恢復。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)301轉(zhuǎn)變?yōu)闋顟B(tài)302。另外,多核處理器系統(tǒng)100在狀態(tài)301的狀態(tài)下,當PMU102檢測出來自鍵盤113的外部中斷時,PMU102使進行多媒體處理的APL103從休止狀態(tài)恢復。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)301轉(zhuǎn)變?yōu)闋顟B(tài)305。在多核處理器系統(tǒng)100為狀態(tài)302的狀態(tài)下,當BPlOl進行通話結(jié)束檢測時,PMU102使進行聲音編解碼處理的DSP104休止。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)302轉(zhuǎn)變?yōu)闋顟B(tài)301。另外,在多核處理器系統(tǒng)100為狀態(tài)302的狀態(tài)下,當PMU102檢測出來自鍵盤113的外部中斷時,PMU102使進行多媒體處理的APL103從休止狀態(tài)恢復。進而,當APL103的運算能力有剩余時,PMU102使編解碼處理從DSP104移向APL103。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)302轉(zhuǎn)變?yōu)闋顟B(tài)303。如果當APL103的運算能力沒有剩余時,DSP104繼續(xù)編解碼處理。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)302轉(zhuǎn)變?yōu)闋顟B(tài)304。在多核處理器系統(tǒng)100為狀態(tài)303的狀態(tài)下,當無操作狀態(tài)超過一定時間而超時時,APL103結(jié)束多媒體處理。接下來,PMU102使DSP104從休止狀態(tài)恢復后,并將編解碼處理從APL103移向DSP104后,使APL103休止。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)303轉(zhuǎn)變?yōu)闋顟B(tài)302。另外,在多核處理器系統(tǒng)100為狀態(tài)303的狀態(tài)下,檢測更進一步的外部中斷,多媒體處理增加,當APL103的運算能力不再有剩余時,PMU102首先使DSP104從休止狀態(tài)恢復。然后,PMU102使編解碼處理從APL103移向DSP104。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)303轉(zhuǎn)變?yōu)闋顟B(tài)304。另外,在多核處理器系統(tǒng)100為狀態(tài)303的狀態(tài)下,當BPlOl進行通話結(jié)束檢測時,APL103結(jié)束聲音編解碼處理。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)303轉(zhuǎn)變?yōu)闋顟B(tài)305。在多核處理器系統(tǒng)100為狀態(tài)304的狀態(tài)下,多媒體處理中的幾個處理結(jié)束,當APL103的運算能力產(chǎn)生了剩余時,PMU102使編解碼處理從DSP104移向APL103。然后,PMU102使DSP104休止。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)304轉(zhuǎn)變?yōu)闋顟B(tài)303。另外,在多核處理器系統(tǒng)100為狀態(tài)304的狀態(tài)下,當BPlOl進行通話結(jié)束檢測時,PMU102使進行聲音編解碼處理的DSP104休止。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)304轉(zhuǎn)變?yōu)闋顟B(tài)305。在多核處理器系統(tǒng)100為狀態(tài)305的狀態(tài)下,當BPlOl進行通話檢測時,APL103的運算能力存在剩余的情況下,APL103執(zhí)行編解碼處理。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)305轉(zhuǎn)變?yōu)闋顟B(tài)303。另外,在APL103的運算能力沒有剩余的情況下,PMU102使DSP104從
休止狀態(tài)恢復。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)305轉(zhuǎn)變?yōu)闋顟B(tài)304。另外,在多核處理器系統(tǒng)100為狀態(tài)305的狀態(tài)下,當無操作狀態(tài)超過一定時間而超時時,APL103結(jié)束多媒體處理。在多媒體處理全部都結(jié)束了的情況下,PMU102使APL103休止。結(jié)果,多核處理器系統(tǒng)100從狀態(tài)305轉(zhuǎn)變?yōu)闋顟B(tài)301。圖4是圖3的狀態(tài)302下的各CPU的執(zhí)行狀況與消耗電力的說明圖。當多核處理器系統(tǒng)100的狀態(tài)為狀態(tài)302時,BPlOl與DSP104正在執(zhí)行通話處理。另外,假設(shè)DSP104的消耗電力為50 [mff],APL103的消耗電力按時鐘齒輪低的順序為100 [mW]、200 [mW]、600[mff]0多核處理器系統(tǒng)100的狀態(tài)302下的DSP104與APL103的合計消耗電力為50 + 0=50 [mff]0圖5是圖3的狀態(tài)304下的各CPU的執(zhí)行狀況與消耗電力的說明圖。當多核處理器系統(tǒng)100的狀態(tài)為狀態(tài)304時,BP101、APL103和DSP104正在執(zhí)行。假設(shè)APL103以從下開始第2個時鐘齒輪進行動作。多核處理器系統(tǒng)100的狀態(tài)304下的DSP104與APL103的合計消耗電力為50 + 200 = 250 [mff]0圖6是圖3的狀態(tài)303下的各CPU的執(zhí)行狀況與消耗電力的說明圖。當多核處理器系統(tǒng)100的狀態(tài)為狀態(tài)303時,BPlOl與APL103正在執(zhí)行。多核處理器系統(tǒng)100的狀態(tài)303下的DSP104與APL103的合計消耗電力為O + 200 = 200[mW]。這樣,當比較狀態(tài)304與狀態(tài)303時,雖然作為多核處理器系統(tǒng)100執(zhí)行的處理一致,但是由于將APL103的運算能力的剩余量在編解碼處理中使用,因此狀態(tài)303省電力。圖7是表示軟件能力要求表201的存儲內(nèi)容的一個例子的說明圖。表具有軟件名稱、運算能力的要求值這2個字段。軟件名稱字段保存軟件的名稱。運算能力的要求值字段保存軟件的運算能力的要求值。為使“流播放再生”軟件正常動作,例如運算能力為100[MIPS]。同樣地,為使“聲音再生”軟件正常動作,例如運算能力為40 [MIPS],為使“地圖顯示”軟件正常動作,運算能力例如為110 [MIPS]。另外,為使具有與DSP104進行的編解碼處理同等的功能的“PCM編解碼”軟件正常動作,運算能力例如為60 [MIPS]。關(guān)于具體的運算能力的要求值的設(shè)定方法,設(shè)定使用執(zhí)行前的模擬、分析器事先測量而得的結(jié)果。使用圖7,表示多核處理器系統(tǒng)100從狀態(tài)304變?yōu)闋顟B(tài)303時在APL103中執(zhí)行多媒體處理的例子。例如,APL103的消耗電力為200 [mW],對應的運算能力為200 [MIPS]。此時,若APL103中執(zhí)行的軟件是“流播放再生”軟件與“聲音再生”軟件,則兩軟件的運算能力的要求值的合計為140 [MIPS]。由于APL103的運算能力為200 [MIPS],剩余運算能力為200 - 140 = 60 [MIPS],因此APL103對于“PCM編解碼”軟件的正常動作,能夠確保60[MIPS]。該情況下,存在著剩余,多核處理器系統(tǒng)100的狀態(tài)從狀態(tài)304變?yōu)闋顟B(tài)303。另外,假設(shè)APL103中執(zhí)行的軟件是“地圖顯示”軟件與“聲音再生”軟件的情況。該情況的兩軟件的運算能力的要求值的合計為110 + 40 = 150 [MIPS]。由于剩余運算能力為200 — 150 = 50 [MIPS],因此APL103不能確保60 [MIPS],因此不能使“PCM編解碼”軟件正常動作。因此,多核處理器系統(tǒng)100的狀態(tài)維持狀態(tài)304。圖8A、圖8B是表示多核處理器系統(tǒng)100的調(diào)度處理的流程圖。圖8A中表示PMU102與APL103的調(diào)度處理,圖8B中表示BPlOl的調(diào)度處理。PMU102若從后述的步驟S826、步驟S828、步驟S830、步驟S832、步驟S846、步驟S850、步驟S851接收到通知,則執(zhí)行PMU事件獲取處理(步驟S801)。PMU事件獲取處理的 詳細內(nèi)容在圖9中后述。PMU102根據(jù)PMU事件獲取處理中輸出的事件來使處理分支(步驟S802)。若輸出的事件是“外部中斷事件”(步驟S802 :外部中斷事件),則PMU102執(zhí)行外部中斷檢測處理(步驟S803)。外部中斷檢測處理的詳細內(nèi)容在圖10中后述。在步驟S803的處理內(nèi),根據(jù)APL103的狀態(tài),PMU102向APL103發(fā)送外部中斷通知。外部中斷檢測處理執(zhí)行后,PMU102移向步驟S801的處理。若輸出的事件是“編解碼結(jié)果事件”(步驟S802 :編解碼結(jié)果事件),則PMU102執(zhí)行編解碼結(jié)果處理(步驟S804)。編解碼結(jié)果處理的詳細內(nèi)容在圖11中后述。編解碼結(jié)果處理執(zhí)行后,PMU102移向步驟S801的處理。若輸出的事件是“DSP起動要求事件”(步驟S802 :DSP起動要求事件),則PMU102執(zhí)行DSP起動要求處理(步驟S805)。DSP起動要求處理的詳細內(nèi)容在圖12中后述。在步驟S805的處理內(nèi),根據(jù)進行了 DSP起動要求的要求源的不同,PMU102向APL103或BPlOl發(fā)送DSP起動結(jié)束通知。DSP起動要求處理執(zhí)行后,PMU102移向步驟S801的處理。若輸出的事件是“存在剩余的事件”(步驟S802 :存在剩余的事件),則PMU102執(zhí)行存在剩余處理(步驟S806)。存在剩余處理的詳細內(nèi)容在圖13中后述。另外,在步驟S806的處理內(nèi),PMU102向BPlOl發(fā)送存在剩余的通知。存在剩余處理執(zhí)行后,PMU102移向步驟S801的處理。若輸出的事件是“APL休眠要求事件”(步驟S802:APL休眠要求事件),則PMU102使APL103休止(步驟S807)。執(zhí)行后,PMU102移向步驟S801的處理。然后,說明APL103的流程圖。APL103在接收到通知前休止(步驟S821 )。作為具體的休止方法,例如PMU102對APL103停止電力供給,從而使APL103為休止狀態(tài)。接下來,當從步驟S803、步驟S805、或者從后述的步驟S845、步驟S849接收到通知時,APL103獲取接收到的通知(步驟S822)。然后,APL103開始外部中斷處理(步驟S823)。具體而言,APL103作為與外部中斷處理對應的多媒體處理,執(zhí)行流播放再生軟件、聲音再生軟件等。外部中斷處理開始后,APL103執(zhí)行剩余判斷處理(步驟S824)。剩余判斷處理的詳細內(nèi)容在圖14、圖15A、圖15B中后述。APL103根據(jù)判斷結(jié)果來判斷是否存在剩余(步驟
5825)。當判斷為存在剩余時(步驟S825:是),APL103向PMU102發(fā)送存在剩余的通知(步驟
5826)。發(fā)送后,APL103判斷在步驟S822的處理中是否接收到編解碼處理請求通知(步驟S827)。當接受了編解碼處理請求通知時(步驟S827 :是),APL103執(zhí)行編解碼開始處理(步驟S828)。編解碼開始處理的詳細內(nèi)容在圖16中后述。在步驟S828的處理內(nèi),若DSP104為休止狀態(tài),則APL103向PMU102發(fā)送DSP起動要求通知。另外,當編解碼處理結(jié)束時,APL103向BPlOl通知編解碼處理的結(jié)果。編解碼開始處理執(zhí)行后,APL103判斷外部中斷處理是否結(jié)束(步驟S831)。當外部中斷處理結(jié)束時(步驟S831 :是),APL103執(zhí)行外部中斷結(jié)束處理(步驟S832 )。外部中斷結(jié)束處理的詳細內(nèi)容在圖18中后述。在步驟S832的處理內(nèi),當向PMU102發(fā)送了存在剩余的通知時,APL103向PMU102發(fā)送存在剩余的取消通知。外部中斷結(jié)束處理結(jié)束后,APL103移向步驟S821的處理。當外部中斷處理未結(jié)束時(步驟S831 :否),APL103判斷是否發(fā)生了任務調(diào)度(步驟S833)。當發(fā)生了任務調(diào)度時(步驟S833 :是),會再次發(fā)生外部中斷處理,因此APL103移向步驟S823的處理。當未發(fā)生任務調(diào)度時(步驟S833 :否),APL103移向步驟S831的處理。當判斷為不存在剩余時(步驟S825 :否),APL103判斷是否接受了編解碼處理請求通知(步驟S829)。當接受了編解碼處理請求通知時(步驟S829 :是),APL103執(zhí)行DSP編解碼處理(步驟S830)。DSP編解碼處理的詳細內(nèi)容在圖17中后述。在步驟S830的處理內(nèi),若DSP104為休止狀態(tài),則APL103向PMU102發(fā)送DSP起動要求通知。DSP編解碼處理后,APL103移向步驟S831的處理。當未接受編解碼處理請求通知時(步驟S827 :否,步驟S829 否),APL103也移向步驟S831的處理。接下來,使用圖8B來說明BPlOl的調(diào)度處理。BPlOl判斷是否發(fā)生了編解碼處理(步驟S841)。當未發(fā)生編解碼處理時(步驟S841 :否),BPlOl在一定時間后,再次執(zhí)行步驟S841的處理。當發(fā)生了編解碼處理時(步驟S841 :是),BP101獲取從步驟S805、步驟S806、步驟S828發(fā)送,BPlOl接收到的通知(步驟S842)。獲取通知后,BPlOl判斷DSP104或APL103當前是否正在執(zhí)行編解碼處理(步驟S843)。當執(zhí)行編解碼處理時(步驟S843 :是),BP101判斷是否從PMU102接收到APL103存在剩余的通知(步驟S844)。當未接收到存在剩余的通知時(步驟S844 :否),BPlOl判斷是否從DSP104或者APL103接收到編解碼處理的結(jié)果(步驟S847)。當接收到編解碼處理的結(jié)果時(步驟S847 :是),BP101向PMU102發(fā)送編解碼處理結(jié)果受取通知(步驟S851)。發(fā)送后,BPlOl移向步驟S841的處理。當未接收編解碼處理的結(jié)果時(步驟S847 :否),BPlOl移向步驟S842的處理。當接收到存在剩余的通知時(步驟S844 :是),BPlOl向APL103發(fā)送編解碼處理請求通知(步驟S845)。在發(fā)送后,BPlOl向PMU102、APL103發(fā)送分配完成通知(步驟S846),移向步驟S842的處理。當編解碼處理既不在DSP104中,也不在APL103中執(zhí)行時(步驟S843 :否),BPlOl判斷是否從PMU102接收了 APL103存在剩余的通知(步驟S848)。當接收了存在剩余的通知時(步驟S848 :是),BPlOl向APL103發(fā)送編解碼處理請求通知(步驟S849),移向步驟S842的處理。當未接收到存在剩余的通知時(步驟S848 :否),BPlOl執(zhí)行DSP編解碼處理(步驟S850),移向步驟S842的處理。在步驟S850的處理內(nèi),若DSP104處于休止狀態(tài),則BPlOl向PMU102發(fā)送DSP起動要求通知。
圖9是表示PMU事件獲取處理的流程圖。PMU102在接收到中斷或者通知前待機(步驟S901)。PMU102獲取中斷或者通知(步驟S902),判斷是否獲取了存在剩余的取消通知(步驟S903)。當獲取了存在剩余的取消通知時(步驟S903 :是),PMU102從存儲通知的隊列之中刪除存在剩余的通知(步驟S904),再次移向步驟S901的處理。當獲取到的通知不是存在剩余的取消通知時(步驟S903 :否),PMU102判斷是否獲取了外部中斷(步驟S905)。當獲取了外部中斷時(步驟S905 :是),PMU102輸出外部中斷事件(步驟S906),來結(jié)束PMU事件處理。當未獲取外部中斷時(步驟S905 :否),PMU102判斷是否獲取了來自BPlOl的編解碼處理結(jié)果受取通知(步驟S907)。當獲取了編解碼處理結(jié)果受取通知時(步驟S907 :是),PMU102輸出編解碼結(jié)果事件(步驟S908),來結(jié)束PMU事件處理。當未獲取編解碼處理結(jié)果受取通知時(步驟S907 :否),PMU102判斷是否獲取了DSP起動要求通知(步驟S909)。當獲取了 DSP起動要求通知時(步驟S909 :是),PMU102輸出DSP起動要求事件(步驟S910),結(jié)束PMU事件處理。當未獲取DSP起動要求通知時(步驟 S909 :否),PMU102判斷是否獲取了存在剩余的通知(步驟S911)。當獲取了存在剩余的通知時(步驟S911 :是),PMU102輸出存在剩余的事件(步驟S912),結(jié)束PMU事件處理。當未獲取存在剩余的通知時(步驟S911 :否),PMU102判斷是否獲取了來自APL103的休眠要求通知(步驟S913)。當獲取了休眠要求通知時(步驟S913 :是),PMU102輸出APL休眠要求事件(步驟S914),結(jié)束PMU事件處理。當未獲取APL休眠要求通知時(步驟S913 否),廢棄在步驟S902中獲取到的通知,移向步驟S901的處理。圖10是表示外部中斷檢測處理的流程圖。PMU102判斷APL103是否正在起動(步驟SlOOD0當APL103不是正在起動時(步驟S1001 :否),PMU102使APL103起動(步驟S1002)。當APL正在起動中時(步驟S1001 :是),或者步驟S1002處理后,PMU102向APL103發(fā)送外部中斷通知(步驟S1003),結(jié)束外部中斷檢測處理。圖11是表示編解碼結(jié)果處理的流程圖。PMU102判斷DSP104是否正在起動(步驟SllODo當正在起動時(步驟SllOl :是),PMU102使DSP104休止(步驟S1102),結(jié)束編解碼結(jié)果處理。當DSP104不正在起動時(步驟SllOl :否),PMU102也結(jié)束編解碼結(jié)果處理。圖12是表示DSP起動要求處理的流程圖。PMU102使DSP104起動(步驟S1201)。DSP104起動后,PMU102判斷是否從APL103接收到DSP起動要求通知(步驟S1202)。當從APL103接收到DSP起動要求通知時(步驟S1202 :是),PMU102向APL103發(fā)送DSP起動結(jié)束通知(步驟S1203)。步驟S1203處理后,另外未從BPlOl接收到DSP起動要求通知時(步驟S1202 :否),PMU102向BPlOl發(fā)送DSP起動結(jié)束通知(步驟S1204),來結(jié)束DSP起動要求處理。圖13是表示存在剩余處理的流程圖。PMU102向BPlOl發(fā)送存在剩余的通知(步驟S1301)。發(fā)送后,PMU102判斷是否接收到從BPlOl向APL103的分配完成通知(步驟S1302)。當未接收到分配完成通知時(步驟S1302 :否),PMU102在一定時間后,再次移向步驟S1302的處理。當接收到分配完成通知時(步驟S1302 :是),PMU102判斷DSP104是否正在起動(步驟S1303)。當DSP104正在起動時(步驟S1303 :是),PMU102使DSP104休止(步驟S1304),結(jié)束存在剩余處理。當DSP104不正在起動時(步驟S1303 :否),PMU102結(jié)束存在剩余處理。
圖14、圖15A、圖15B是表示剩余判斷處理的流程圖。圖14表示多核處理器系統(tǒng)100中的APL103的個數(shù)為一個時的流程圖,圖15A、圖15B表示多核處理器系統(tǒng)100中的APL103的個數(shù)為多個時的流程圖。圖14是表示APL103為一個時的剩余判斷處理的流程圖。APL103從軟件能力要求表201獲取編解碼處理軟件的運算能力的要求值C (步驟S1401)。然后,APL103將變量k設(shè)定為I (步驟S1402)。設(shè)定后,APL103從軟件能力要求表201獲取在APL103中執(zhí)行的第k個軟件的運算能力的要求值A(chǔ) (k)(步驟S1403)。獲取后,APL103對變量k進行增量處理(步驟S1404),判斷變量k是否在正在APL103中執(zhí)行的軟件數(shù)以下(步驟S1405)。當變量k在正在執(zhí)行的軟件數(shù)以下時(步驟S1405 :是),APL103移向步驟S1403的處理。
當變量k超過了正在執(zhí)行的軟件數(shù)時(步驟S1405 :否),APL103獲取APL103的相對于當前的時鐘齒輪η的運算能力Ρ(η)(步驟S1406)。APL103使用步驟S1403、步驟S1406中獲取到的值來判斷不等式SkA (k)+C^P (η)是否成立(步驟S1407)。當不等式成立時(步驟S1407 :是),APL103判斷為存在剩余(步驟S1408),結(jié)束剩余判斷處理。當不等式不成立時(步驟S1407 :否),APL103判斷為不存在剩余(步驟S1409),結(jié)束剩余判斷處理。圖15Α、圖15Β是表示APL103為多個時的剩余判斷處理的流程圖。在圖15Α、圖15Β中,APL103包含APL#1、APL #2、-,APL #皿這11個CPU。另外,當APL103存在多個時,APL103執(zhí)行的調(diào)度處理由APL #1 APL #M中的任意一個CPU執(zhí)行。圖15A、圖15B的流程圖說明APL #1執(zhí)行的狀態(tài)。APL#1從軟件能力要求表201獲取編解碼處理軟件的運算能力的要求值C (步驟S1501)。獲取后,APL #1對變量X設(shè)定1(步驟S1502)。設(shè)定后,APL#I選擇第x個APL(步驟S1503)。選擇后,APL #1對變量k設(shè)定I (步驟S1504)。設(shè)定后,APL #1從軟件能力要求表201獲取在APL #x中執(zhí)行的第k個軟件的運算能力的要求值A(chǔ)x (k)(步驟S1505)。獲取后,APL #1對變量k進行增量處理(步驟S1506),判斷變量k是否在正在APL#x中執(zhí)行的軟件數(shù)以下(步驟S1507)。當變量k在正在執(zhí)行的軟件數(shù)以下時(步驟S1507 是),APL #1移向步驟S1505的處理。當變量k超過了正在執(zhí)行的軟件數(shù)時(步驟S1507 :否),APL#1獲取APL #x的相對于當前的時鐘齒輪nx的運算能力Px (nx)(步驟S1508)。獲取后,APL #I對變量X進行增量處理(步驟S1509),判斷變量X是否在APL的個數(shù)以下(步驟S1510)。當變量X在APL的個數(shù)以下時(步驟S1510 :是),移向步驟S1503的處理。當變量X不在APL的個數(shù)以下時(步驟S1510 :否),APL #1判斷不等式Σχ ΣkAx(k) + C彡ΣχΡχ (nx)是否成立(步驟S1511)。當不等式不成立時(步驟S1511 :否),APL#1判斷為不存在剩余(步驟S1520),結(jié)束剩余判斷處理。當不等式成立時(步驟S1511 :是),APL#1將變量χ設(shè)定為I (步驟S1512)。然后,APL#1將APL #x中的編解碼分配后的剩余運算能力S (χ)計算為S (χ)=Px (nx) - { Σ,Αχ (k) + C}(步驟S1513)。在計算后,APL #1對變量χ進行增量處理(步驟S1514),判斷變量χ是否在APL的個數(shù)以下(步驟S1515)。當變量χ在APL的個數(shù)以下時(步驟S1515 :是),APL#1移向步驟S1513的處理。
當變量χ不在APL的個數(shù)以下時(步驟S1515 :否),APL # I判斷Max (S (χ))是否為O以上(步驟S1516)。當Max (S (χ))在O以上時(步驟S1516 :是),APL # I將作為Max (S (χ))的APL # χ判斷為存在剩余的CPU (步驟S1519),結(jié)束剩余判斷處理。當Max(S (χ))小于O時(步驟S1516 :否 ),APL # I APL # M在APL # I APL # M中進行軟件的重新調(diào)度、或者變換(步驟S1517)。對于步驟S1517的處理結(jié)果,APL # I判斷在APL # I APL # M之中是否存在作為Max (S (χ))彡O的APL # χ (步驟S1518)。當APL # χ存在時(步驟S1518 :是),APL # I移向步驟S1519的處理。當APL# χ不存在時(步驟S1518 :否),APL # I移向步驟S1520的處理。作為步驟S1517的處理的重新調(diào)度、或者變換按照APL # I APL# M的剩余運算能力S (χ)超過編解碼處理軟件的運算能力的要求值C的方式被執(zhí)行。以下,表示具體的變換的例子。具體而言,例如APL存在APL # I、APL # 2這2個,根據(jù)各個時鐘齒輪,假設(shè)APL # I的運算能力為100 [MIPS], APL # 2的運算能力為200[MIPS]的情況。另外,在APL# I中執(zhí)行的軟件為軟件A、軟件B這2個,運算能力的要求值分別為60 [MIPS],20 [MIPS]。另外,在APL# 2中執(zhí)行的軟件為軟件C、軟件D這2個,運算能力的要求值為140 [MIPS],20 [MIPS]。另外,編解碼處理軟件的運算能力的要求值C為60[MIPS]。此時,步驟S1511 的不等式為(60 + 20) + (140 + 20) + 60 彡 100 + 200,因此APL # I在步驟S1511中,處理“是”這一路徑。接下來,在步驟S1516中,S (I) =- 40, S
(2)=— 20,APL # I在步驟S1517中,處理“否”這一路徑。在步驟S1517的處理中,APL # I、APL # 2將正在APL # 2中執(zhí)行的軟件D作為移動對象軟件,移向APL # 1,從而S (2) = O, APL # I會在步驟S1518中處理“是”這一路徑。這樣,在APL # UAPL # 2中,為了超過編解碼處理軟件的運算能力的要求值C,APL# UAPL # 2進行重新調(diào)度或者變換。表示作為變換對象的移動對象軟件的檢索處理的一個例子的流程圖在圖19中后述。圖16是表示編解碼開始處理的流程圖。APL103開始編解碼處理(步驟S1601 )。在編解碼處理中,APL103判斷外部中斷處理是否已結(jié)束,或者APL103的運算能力是否已無剩余(步驟S1602)。當外部中斷處理未結(jié)束,并且APL103的運算能力有剩余時(步驟S1602 否),APL103判斷編解碼處理是否已結(jié)束(步驟S1603)。當編解碼處理未結(jié)束時,APL103移向步驟S1602的處理。當編解碼處理結(jié)束了時(步驟S1603 :是),APL103向BPlOl歸還編解碼處理的結(jié)果(步驟S1604)。歸還結(jié)果后,APL103判斷是否接著 接收了編解碼處理的請求通知(步驟S1606)。當未接收時(步驟S1606 :否),APL103結(jié)束編解碼開始處理。當接收了編解碼處理的請求通知時(步驟S1606 :是),APL103移向步驟S1601的處理。當外部中斷處理已結(jié)束或者APL103的運算能力中已無剩余時(步驟S1602 :是),APL103執(zhí)行DSP編解碼處理(步驟S1605),結(jié)束編解碼開始處理。圖17是表示DSP編解碼處理的流程圖。DSP編解碼處理由BPlOl或APL103執(zhí)行。在圖17的例子中,假設(shè)DSP編解碼處理由BPlOl執(zhí)行的情況。
BPlOl向PMU102發(fā)送DSP起動要求通知(步驟S1701)。發(fā)送了 DSP起動要求通知后,BPlOl判斷是否從PMU102接收了 DSP起動結(jié)束通知(步驟S1702)。當未接收DSP起動結(jié)束通知時(步驟S1702 :否),BP101在一定時間后,再次移向步驟S1702的處理。當接收了 DSP起動結(jié)束通知時(步驟S1702 :是),BPlOl判斷是否在APL103中執(zhí)行了編解碼處理(步驟S1703)。當在APL103中執(zhí)行了編解碼處理時(步驟S1703 :是),BPlOl使編解碼處理從APL103移向DSP104(步驟S1704),來結(jié)束DSP編解碼處理。當未在APL103中執(zhí)行編解碼處理時(步驟S1703 :否),BPlOl向DSP104分配編解碼處理(步驟S1705),來結(jié)束DSP編解碼處理。圖18是表示外部中斷結(jié)束處理的流程圖。APL103判斷是否向PMU102發(fā)送了存在剩余通知(步驟S1801)。當發(fā)送了存在剩余通知時(步驟S1801 :是),APL103向PMU102發(fā)送存在剩余的取消通知(步驟S1802)。當未發(fā)送存在剩余通知時(步驟S1801 :否),或者步驟S1802結(jié)束后,APL103向PMU102發(fā)送APL休眠要求(步驟S1803),來結(jié)束外部中斷結(jié)束 處理。此外,在發(fā)送存在剩余的取消通知之時,APL103也可以在保存PMU102的通知的隊列的最前頭保存存在剩余的取消通知。由此,PMU102在步驟S902中獲取通知之時,能夠在存在剩余通知之前獲取存在剩余的取消通知,PMU102能夠刪除存在剩余通知。圖19是表示步驟S1517中的作為變換對象的移動對象軟件的檢索處理的一個例子的流程圖。APL # I對變量χ設(shè)定I (步驟S1901),對變量k也設(shè)定I (步驟S1902)。設(shè)定后,APL # I在APL # χ的第k個軟件中,計算S (x) + A (k)(步驟S1903)。計算后,APL # I增加變量k (步驟S1904),判斷變量k是否在正在執(zhí)行的軟件以下(步驟S1905)。當變量k在正在執(zhí)行的軟件數(shù)以下時(步驟S1905 :是),APL # I移向步驟S1903的處理。當變量k超過了正在執(zhí)行的軟件數(shù)時(步驟S1905 :否),APL # I對變量χ進行增量處理(步驟S1906),判斷變量χ是否在APL的個數(shù)以下(步驟S1907)。當變量χ在APL的個數(shù)以下時(步驟S1907 :是),APL # I移向步驟S1902的處理。當變量χ比APL的個數(shù)大時(步驟S1907 :否),APL # I將計算出的S (x)+A (k)中的、S (χ)+A (k)彡O并且為最小的S (χ)+A (k)的x、k設(shè)定為xl、kl (步驟S1908)。APL # Xl為移動源的CPU,APL # xl的第kl個軟件變?yōu)橐苿訉ο筌浖?。當不存在S(xl) +A (kl)彡O的xl、kl時,APL # I不設(shè)定值。此外,關(guān)于S (xl) + A (kl)彡0,能夠如下變形。S (xl) + A (kl ) >0<^Px ( nxl ) - (ZkAx ( k ) + C } + A ( kl) >0( nxl ) > { LkAx ( k ) - A ( kl )} + C{ Σ,Αχ (k) — A (kl)} + C為移動對象軟件以外的其余軟件和編解碼處理的運算能力的要求值的合計。因此,滿足S (xl)+A (kl)彡O與前述的合計在APL # Xl的運算能力值以下為相同的值。APL # I判斷是否對xl、kl設(shè)定了值(步驟S1909)。當未設(shè)定值時(步驟S1909 :否),APL # I輸出為未發(fā)現(xiàn)移動對象軟件(步驟S1916),來結(jié)束移動對象軟件的檢索處理。當設(shè)定了值時(步驟S1909 :是),APL # I對變量χ設(shè)定I (步驟S1910)。設(shè)定后,APL # I判斷變量χ是否在APL的個數(shù)以下(步驟S1911)。當變量χ比APL的個數(shù)大時(步驟S1911 :否),APL # I移向步驟S1916的處理。當變量χ在APL的個數(shù)以下時(步驟S1911 :是),APL # I判斷變量χ與xl是否相等(步驟S1912)。當變量χ與xl相等時(步驟S1912 :是),APL # I對變量χ進行增量處理(步驟S1914),移向步驟S1911的處理。當變量χ與xl不相等時(步驟S1912 :否),APL # I判斷不等式Px (nx) - Σ,Α(k) - A (kl)彡O是否成立(步驟S1913)。當不等式不成立時(步驟S1913 :否),APL # I移向步驟S1914的處理。當不等式成立時(步驟S1913 :是),APL # I輸出為APL # xl是移動源的CPU,APL # xl的第kl個軟件是移動對象軟件,APL # χ是移動目的地的CPU (步驟S1915)。在輸出后,APL # I結(jié)束移動對象軟件的檢索處理。在圖19的例子中,舉出了移動對象軟件為I個的例子,也可以將多個軟件作為移動對象軟件,以便在移動源的APL的運算能力中產(chǎn)生編解碼處理軟件的運算能力的要求值C所對應的量的剩余。
如以上說明的那樣,根據(jù)多核處理器系統(tǒng)、電力控制方法以及電力控制程序,判斷具有在特定核中執(zhí)行的功能的特定軟件和在其他核中正在執(zhí)行的其他軟件的運算能力的合計是否在其他核的運算能力以內(nèi)。若在運算能力以內(nèi),則多核處理器系統(tǒng)將特定軟件分配給其他核,來使特定核休止。由此,多核處理器系統(tǒng)能夠有效地活用在其他核中產(chǎn)生的運算能力的剩余,能夠?qū)崿F(xiàn)特定核使用的電力的量的省電力化。另外,多核處理器系統(tǒng)也可以將特定軟件分配給其他核之中的運算能力的剩余最大的核。由此,多核處理器系統(tǒng)能夠?qū)崿F(xiàn)特定核的相應的省電力化。進而,多核處理器系統(tǒng)能夠按照其他核的負荷近似相等的方式來分配特定軟件。另外,多核處理器系統(tǒng)也可以使正在移動源的核中執(zhí)行的移動對象軟件移動到移動目的地的核中,來向移動源的核分配特定軟件。由此,多核處理器系統(tǒng)即使其他核各自的運算能力的剩余達不到特定軟件的運算能力的要求值,也能夠通過將運算能力的剩余集中在I個核中來在前述的I個核中執(zhí)行特定軟件,從而實現(xiàn)省電力化。另外,多核處理器系統(tǒng)當特定軟件和正在各個其他核中執(zhí)行的軟件的運算能力的要求值的合計在其他核的運算能力值的合計以下時,也可以移動移動對象軟件。由此,多核處理器系統(tǒng)在集中運算能力的剩余前,能夠判斷是否可在其他核的I個核中執(zhí)行特定軟件,可以不進行多余的移動處理來實現(xiàn)。此外,本實施方式中說明的電力控制方法能夠通過利用個人計算機、工作站等計算機執(zhí)行預先準備的程序來實現(xiàn)。本電力控制程序被記錄于硬盤、軟盤、CD - ROM,MO,DVD等計算機可讀的記錄介質(zhì),通過利用計算機從記錄介質(zhì)中將其讀出來執(zhí)行。另外,本電力控制程序也可以經(jīng)由因特網(wǎng)等網(wǎng)絡(luò)來分配。附圖標記的說明101BP ;102PMU ;103APL ;104DSP ;105 天線;106RF 電路;108RAM ;114 總線;201 軟件能力要求表;202檢測部;203提取部;204剩余判斷部;205分配部;206休止部;207決定部;208移動部;209休止通知部;210編解碼處理檢測部;211編解碼處理分配部。
權(quán)利要求
1.一種多核處理器系統(tǒng),其特征在于,具備 檢測單元,所述檢測單元對在與執(zhí)行所述特定處理的特定核不同的其他核中,多個軟件中特定軟件具有與特定處理同等的功能并且所述多個軟件中與所述特定軟件不同的其他軟件正在執(zhí)行的狀態(tài)進行檢測; 提取單元,當由所述檢測單元檢測到所述其他軟件正在所述其他核中執(zhí)行的狀態(tài)時,所述提取單元從數(shù)據(jù)庫中提取所述特定軟件與所述其他軟件的運算能力的要求值,其中,所述數(shù)據(jù)庫以所述多個軟件中的各個該軟件為單位存儲有運算能力的要求值; 判斷單元,所述判斷單元判斷由所述提取單元提取出的所述特定軟件與所述其他軟件的運算能力的要求值的合計是否在所述其他核的運算能力值以下; 分配單元,當由所述判斷單元判斷為所述運算能力的要求值的合計在所述其他核的運算能力值以下時,所述分配單元向所述其他核分配所述特定軟件;以及 休止單元,當由所述分配單元向所述其他核分配了所述特定軟件時,所述休止單元使所述特定核休止。
2.根據(jù)權(quán)利要求I所述的多核處理器系統(tǒng),其特征在于, 所述多核處理器系統(tǒng)具備決定單元,當由所述判斷單元判斷為所述運算能力的要求值的合計在所述其他核的運算能力值以下時,所述決定單元從所述其他核中決定所述運算能力值與運算能力要求值的合計之間的差值為最大的核,其中,所述運算能力要求值的合計是所述特定軟件以及所述其他軟件的運算能力值的合計, 所述分配單元向由所述決定單元決定出的核分配所述特定軟件, 當由所述分配單元向所述決定出的核分配了所述特定軟件時,所述休止單元使所述特定核休止。
3.根據(jù)權(quán)利要求2所述的多核處理器系統(tǒng),其特征在于, 所述多核處理器系統(tǒng)還具備移動單元,所述移動單元使正在所述其他核中的移動源的核中執(zhí)行的移動對象軟件向所述其他核中的移動目的地的核移動, 所述判斷單元判斷由所述提取單元提取出的所述特定軟件與所述移動源的核的所述移動對象軟件以外的其余軟件的運算能力的要求值的合計是否在所述移動源的核的運算能力值以下, 當由所述判斷單元判斷為在所述移動源的核的運算能力值以下時,所述移動單元使所述移動源的核的所述移動對象軟件向所述移動目的地的核移動, 當由所述移動單元使所述移動對象軟件移動后,所述分配單元向所述移動源的核分配所述特定軟件。
4.根據(jù)權(quán)利要求3所述的多核處理器系統(tǒng),其特征在于, 所述判斷單元判斷 由所述提取單元提取出的所述特定軟件與正在各個所述其他核中執(zhí)行的軟件組的運算能力的要求值的合計是否在所述其他核的運算能力值的合計以下,并且 由所述提取單元提取出的所述移動源的核的所述移動對象軟件以外的其余軟件與所述特定軟件的運算能力的要求值的合計是否在所述移動源的核的運算能力值以下。
5.一種電力控制方法,其特征在于,與執(zhí)行特定處理的特定核不同的其他核執(zhí)行下述步驟檢測步驟,對在所述其他核中,多個軟件中的特定軟件具有與所述特定處理同等的功能并且所述多個軟件中與所述特定軟件不同的其他軟件正在執(zhí)行的狀態(tài)進行檢測; 提取步驟,當由所述檢測步驟檢測出所述其他軟件正在所述其他核中執(zhí)行的狀態(tài)時,從數(shù)據(jù)庫中提取所述特定軟件與所述其他軟件的運算能力的要求值,其中,所述數(shù)據(jù)庫以所述多個軟件中的各個該軟件為單位存儲有運算能力的要求值; 判斷步驟,判斷由所述提取步驟提取出的所述特定軟件與所述其他軟件的運算能力的要求值的合計是否在所述其他核的運算能力值以下; 分配步驟,當由所述判斷步驟判斷為所述運算能力的要求值的合計在所述其他核的運算能力值以下時,向所述其他核分配所述特定軟件;以及 休止通知步驟,當由所述分配步驟向所述其他核分配了所述特定軟件時,通知所述特定核的休止請求。
6.一種電力控制程序,其特征在于,使與執(zhí)行特定處理的特定核不同的其他核執(zhí)行下述步驟 檢測步驟,對在所述其他核中,多個軟件中的特定軟件具有與所述特定處理同等的功能并且所述多個軟件中與所述特定軟件不同的其他軟件正在執(zhí)行的狀態(tài)進行檢測; 提取步驟,當由所述檢測步驟檢測出所述其他軟件正在所述其他核中執(zhí)行的狀態(tài)時,從數(shù)據(jù)庫中提取所述特定軟件與所述其他軟件的運算能力的要求值,其中,所述數(shù)據(jù)庫以所述多個軟件中的各個該軟件為單位存儲有運算能力的要求值; 判斷步驟,判斷由所述提取步驟提取出的所述特定軟件與所述其他軟件的運算能力的要求值的合計是否在所述其他核的運算能力值以下; 分配步驟,當由所述判斷步驟判斷為所述運算能力的要求值的合計在所述其他核的運算能力值以下時,向所述其他核分配所述特定軟件;以及 休止通知步驟,當由所述分配步驟向所述其他核分配了所述特定軟件時,通知所述特定核的休止請求。
全文摘要
APL(103)由檢測部(202)對在與執(zhí)行特定處理的特定核不同的其他核中,多個軟件中特定軟件具有與特定處理同等的功能并與特定軟件不同的其他軟件正在執(zhí)行的狀態(tài)進行檢測。在檢測后,APL(103)由提取部(203)從軟件能力要求表(201)中提取特定軟件與其他軟件的運算能力的要求值。當使用提取出的要求值由剩余判斷部(204)判斷出特定軟件與其他軟件的運算能力的要求值的合計在其他核的運算能力值以下時,APL(103)由分配部(205)來分配特定軟件。在分配后,PMU(102)通過休止部(206)使DSP(104)休止。
文檔編號G06F9/50GK102822803SQ201080065829
公開日2012年12月12日 申請日期2010年3月31日 優(yōu)先權(quán)日2010年3月31日
發(fā)明者栗原康志, 山下浩一郎, 都和美 申請人:富士通株式會社