專利名稱:高效使用能量的處理器間的管理方法以及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及多處理器系統(tǒng),以及更加具體地涉及用于多處理器體系結(jié)構(gòu)的高效使用能量的方法以及系統(tǒng)。
背景技術(shù):
出現(xiàn)的移動(dòng)通信涉及的多媒體種類日益豐富,并且通常包括并行處理以及存儲(chǔ)器密集的操作,僅舉幾個(gè)例子,例如基于定位的服務(wù)、導(dǎo)航服務(wù)、視頻(記錄、重放、流)、從文本到語音的合成器、以及語音識(shí)別。
為了闡明本申請,移動(dòng)裝置的設(shè)計(jì)者使用多處理器體系結(jié)構(gòu),諸如,例如與DSP(數(shù)字信號(hào)處理器)結(jié)合或集成的(可能多芯的)ARM(高級(jí)精簡指令集計(jì)算機(jī)),該DSP(數(shù)字信號(hào)處理器)與該ARM(高級(jí)精簡指令集計(jì)算機(jī))利用常規(guī)的處理器間協(xié)議互相通信。
該方案的缺點(diǎn)在于,當(dāng)與單處理器體系結(jié)構(gòu)相比時(shí),具有上述體系結(jié)構(gòu)的移動(dòng)裝置會(huì)受到有限的電池壽命性能的限制。此外,現(xiàn)有的多處理器體系結(jié)構(gòu)通常還具有小于最優(yōu)載荷的管理方案。以下給出的本發(fā)明的實(shí)施例克服了現(xiàn)有技術(shù)中的這些不足。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的實(shí)施例提供了一種基本提高移動(dòng)裝置的效率的裝置以及方法。
在本發(fā)明的第一實(shí)施例中,在包括聯(lián)接到多個(gè)處理器的處理器間管理器系統(tǒng)的處理系統(tǒng)中,其中多個(gè)處理器中的兩個(gè)或更多能夠處理服務(wù)應(yīng)用程序,處理器間管理器中的方法包括如下步驟接收用于將服務(wù)應(yīng)用程序委派給多個(gè)處理器中的至少其中之一的請求,根據(jù)與多個(gè)處理器中的每一個(gè)相對應(yīng)的服務(wù)應(yīng)用程序的多個(gè)計(jì)劃能量消耗,選擇多個(gè)處理器中的最優(yōu)的一個(gè)來執(zhí)行該服務(wù)應(yīng)用程序,以及將服務(wù)應(yīng)用程序委派給最優(yōu)處理器用于執(zhí)行。
在本發(fā)明的第二實(shí)施例中,一種移動(dòng)裝置,包括處理系統(tǒng),該處理系統(tǒng)包括處理器間管理器,以及聯(lián)接到該處理器間管理器的多個(gè)處理器,以及其中該多個(gè)處理器中的兩個(gè)或更多能夠處理服務(wù)應(yīng)用程序,以及其中該處理器間管理器被編程用于接收用于將該服務(wù)應(yīng)用程序委派給多個(gè)處理器中的至少其中之一的請求,根據(jù)與多個(gè)處理器包括的每一個(gè)相對應(yīng)的服務(wù)應(yīng)用程序的多個(gè)計(jì)劃能量消耗,選擇多個(gè)處理器中的最優(yōu)的一個(gè)來執(zhí)行該服務(wù)應(yīng)用程序,以及將服務(wù)應(yīng)用程序委派給最優(yōu)處理器用于執(zhí)行。
圖1示出了根據(jù)本發(fā)明的實(shí)施例的與若干移動(dòng)裝置通信的通信系統(tǒng)圖。
圖2示出了根據(jù)本發(fā)明實(shí)施例的圖1的移動(dòng)裝置的框圖。
圖3示出了根據(jù)本發(fā)明實(shí)施例的處理系統(tǒng)的框圖。
圖4示出了根據(jù)本發(fā)明實(shí)施例的用于基本提高移動(dòng)裝置的能量效率的方法的流程圖。
具體實(shí)施例方式
盡管說明書包括了定義了本發(fā)明實(shí)施例的特征的、被認(rèn)為是新穎的權(quán)利要求,相信通過結(jié)合以下說明書和附圖后將會(huì)更好的理解本發(fā)明的實(shí)施例,其中相同的參考數(shù)字不變。
參考圖1,示出了與若干移動(dòng)裝置106通信的通信系統(tǒng)100的圖。通信系統(tǒng)100是常規(guī)的無線網(wǎng)絡(luò),其包括多個(gè)無線電基站104、其每一個(gè)都覆蓋地理上的小區(qū)位置102,總計(jì)覆蓋了例如城市區(qū)域。
在該系統(tǒng)100中,移動(dòng)裝置106可以采取常規(guī)的蜂窩電話或者其他無線電通信裝置(例如,聯(lián)接到無線局域網(wǎng)的無線PDA)的形式。然而,對于本領(lǐng)域技術(shù)人員而言,很明顯這里的實(shí)施例適用于非無線移動(dòng)裝置106,諸如例如便攜式游戲裝置(例如,GameBoyTM),DVD視頻播放器等等。更加概括地講,以下將要描述的實(shí)施例可以適用于如下所述的任何裝置,即在該裝置中,能量效率能夠與應(yīng)用無關(guān)地為移動(dòng)裝置106的供應(yīng)商帶來經(jīng)濟(jì)價(jià)值。
僅僅為了說明目的,以下說明書將著重于具有無線能力的移動(dòng)裝置106。本發(fā)明的實(shí)施例的以下說明的所有替換以及增加將導(dǎo)致與此處描述的實(shí)施例相同的等效結(jié)構(gòu)(即,提供相同功能的結(jié)構(gòu))、方法以及結(jié)果都落入以下權(quán)利要求書的保護(hù)范圍以及精神之內(nèi)。
圖2示出了移動(dòng)裝置106的更加詳細(xì)的視圖。移動(dòng)裝置106可以包括常規(guī)的組件,諸如無線收發(fā)信機(jī)202、顯示器204、輸入/輸出端口208、電池電源210、以及音頻系統(tǒng)212。無線收發(fā)信機(jī)202旁邊的虛線與可選實(shí)施例相對應(yīng),該可選實(shí)施例的特征在于例如上述的非無線移動(dòng)裝置106。
處理系統(tǒng)206是移動(dòng)裝置106的處理中心,其控制上述組件202-212的操作。處理系統(tǒng)206例如控制語音處理(例如,語音電話),多媒體處理(視頻MPEG4播放器)、數(shù)據(jù)消息處理(例如,應(yīng)用程序下載、短信息系統(tǒng)交換等等),以及其他的移動(dòng)裝置106的內(nèi)務(wù)處理(house-keeping)功能。
圖3示出了處理系統(tǒng)106的展開圖,其包括常規(guī)存儲(chǔ)器302、多個(gè)處理器304-306(通過舉例示出了如第一和第二處理器)以及處理器間管理器308。存儲(chǔ)器303可以是一個(gè)或者多個(gè)常規(guī)存儲(chǔ)設(shè)備的組合(例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,閃爍存儲(chǔ)器等等),處理系統(tǒng)106的部件304-308單獨(dú)地或者共同地對其進(jìn)行操作。
多個(gè)處理器304-306可以使用常規(guī)處理部件,其每一個(gè)能夠整體地或者部分地執(zhí)行軟件,所述軟件例如是使用任何算法(例如,視頻播放器)的服務(wù)應(yīng)用程序或者具有其最基本形式的指令(例如,CISC處理器的微操作碼)。處理器間管理器308可以包括常規(guī)的專用集成電路(ASIC)、微處理器、狀態(tài)機(jī)或者能夠根據(jù)如以下將要描述的圖4的方法400進(jìn)行操作的其他處理裝置。可選地,處理器間管理器308的處理功能可以采取硬件、軟件或者其組合的形式,其從第一或者第二處理器304或者獨(dú)立的硬件中整體地或者部分地操作。
處理系統(tǒng)206的處理部件302-308通過常規(guī)的通信總線310互連??偩€310的構(gòu)建可以是物理的或者邏輯的。在前者中,物理連接可以是常規(guī)的串行或并行總線,用于在利用常規(guī)收發(fā)信機(jī)(例如,通用異步收發(fā)器-UART,或者通用串行總線-USB驅(qū)動(dòng)器)作為源的各裝置之間發(fā)送信號(hào)??蛇x地,通信總線310的部分或者整體可以表示邏輯連接,例如共享數(shù)據(jù)結(jié)構(gòu)的軟件組件。聯(lián)接到通信總線310的處理部件302-308可以以具有在其中操作的子部件的單個(gè)集成電路(IC)或者IC的組合來表示,該IC組合中的每一個(gè)作為處理系統(tǒng)206的各部件302-308的相應(yīng)的一個(gè)工作。
圖4的流程圖示出了用于基本提高移動(dòng)裝置106的能量效率的處理器間管理器308的方法400。始于步驟402,在那里處理器間管理器308接收將服務(wù)應(yīng)用程序委派給多個(gè)處理器304-306中的至少其中之一的請求。委派請求可以來自于多個(gè)源。
例如,移動(dòng)裝置106可以根據(jù)常規(guī)的操作系統(tǒng)(OS)來操作,所述操作系統(tǒng)例如是Linux(或者較小的定制內(nèi)核),其設(shè)計(jì)用于每當(dāng)已經(jīng)調(diào)用服務(wù)應(yīng)用程序時(shí)向處理器間管理器308提交請求。可選地,來自O(shè)S的請求可以僅在部分時(shí)間到達(dá),例如當(dāng)已知服務(wù)應(yīng)用程序會(huì)消耗大量由例如MIPS(百萬次指令運(yùn)算每秒)量化的處理循環(huán)時(shí)到達(dá)。向處理器間管理器308提出的請求的頻率是可以根據(jù)應(yīng)用調(diào)節(jié)的設(shè)計(jì)參數(shù)。頻率越高,則本發(fā)明的實(shí)施例更加可能向移動(dòng)裝置106提供能源節(jié)約。
在步驟404中,如果服務(wù)應(yīng)用程序可以運(yùn)行在多個(gè)處理器上,則處理器間管理器308前進(jìn)到步驟406;否則,其前進(jìn)至步驟405,在那里,僅由處理系統(tǒng)206中的可用的(或者有能力的)處理器對服務(wù)應(yīng)用程序進(jìn)行處理。
在步驟406中,根據(jù)與處理器304-306中的每一個(gè)相對應(yīng)的服務(wù)應(yīng)用程序的多個(gè)計(jì)劃能量消耗,處理器間管理器308選擇第一以及第二處理器304-306中最優(yōu)的一個(gè)來執(zhí)行該服務(wù)應(yīng)用程序。在第一實(shí)施例中,多個(gè)計(jì)劃的能量消耗可以是預(yù)定的。例如,每一服務(wù)應(yīng)用程序可以被預(yù)先篩選,從而確定移動(dòng)裝置106的組件202-212上的應(yīng)用的計(jì)劃能量消耗。
可選地,或者結(jié)合上述實(shí)施例,該多個(gè)計(jì)劃的能量消耗基于對應(yīng)的歷史能量消耗數(shù)據(jù),該歷史能量消耗數(shù)據(jù)是從多個(gè)處理器304-306中的至少其中之一上的服務(wù)應(yīng)用程序的實(shí)時(shí)操作中收集的。例如,在移動(dòng)裝置106的上電循環(huán)之后,如果在處理系統(tǒng)206可以執(zhí)行的服務(wù)應(yīng)用程序上沒有發(fā)展出歷史數(shù)據(jù),則處理器間管理器308可以使用預(yù)定的能量消耗。然而,當(dāng)收集了足夠的數(shù)據(jù)時(shí),處理器間管理器308切換到歷史的方法,用于確定特定服務(wù)應(yīng)用程序的計(jì)劃能量消耗??蛇x地,在處理器間管理器302應(yīng)用了相應(yīng)的服務(wù)應(yīng)用程序最近已知的計(jì)劃能量消耗的情況下,該歷史數(shù)據(jù)可以被存儲(chǔ)以及保存在部分存儲(chǔ)器302中。
處理器間管理器308(或者后臺(tái)處理)可以利用用于服務(wù)應(yīng)用程序的計(jì)劃能量消耗的常規(guī)統(tǒng)計(jì)學(xué)或者直接的數(shù)學(xué)方法來對歷史數(shù)據(jù)進(jìn)行處理。此外,處理器間管理器308可以使用若干用于測量能量消耗的裝置。
例如,用于測量能量消耗的度量可以由計(jì)劃的服務(wù)應(yīng)用程序的MIPS構(gòu)成??梢愿鶕?jù)常規(guī)分析軟件產(chǎn)品預(yù)先確定這些度量,該常規(guī)分析軟件產(chǎn)品例如是,例如,用于對在處理系統(tǒng)206中操作的服務(wù)應(yīng)用程序的軟件組件(或者命令)進(jìn)行檢查的CASE(計(jì)算機(jī)輔助的軟件工程)工具??蛇x地,具有不那么復(fù)雜但與CASE工具相似的軟件的處理器間管理器308可以實(shí)時(shí)地測量每個(gè)服務(wù)應(yīng)用程序的MIPS。
在選擇方法中處理器間管理器308可以使用的另一度量是讀取電池210該殘留能量,其中該電池210向移動(dòng)裝置106的組件提供能量??梢酝ㄟ^傳統(tǒng)方法獲得該能量讀取,例如在負(fù)載條件下讀取電池210的電壓電平以及使用已知的電池210的特性數(shù)據(jù)從而將該電壓轉(zhuǎn)化為電池的殘留能級(jí)。在使用該度量時(shí),處理器間管理器308可以在第一以及第二處理器304-306中的選擇判斷和對移動(dòng)裝置106的電池壽命的影響之間做出權(quán)衡。
在另一實(shí)施例中,根據(jù)與處理器304-306相對應(yīng)的多個(gè)負(fù)載條件,處理器間管理器308選擇第一以及第二處理器304-306中的任意一個(gè)。類似于上述說明,負(fù)載條件可以預(yù)先確定,或者可以根據(jù)在處理器304-306的每個(gè)服務(wù)應(yīng)用程序的實(shí)時(shí)操作期間收集的數(shù)據(jù)而歷史地發(fā)展。此外,這些負(fù)載條件可以被轉(zhuǎn)換為處理器304-306的能量消耗速率(或者運(yùn)行平均值),其可以被處理器間管理器308使用作為附加的能量消耗統(tǒng)計(jì),以輔助選擇處理。
在更加復(fù)雜的實(shí)施例中,根據(jù)處理器304-306的負(fù)載條件以及服務(wù)應(yīng)用程序的計(jì)劃能量消耗的最優(yōu)對,處理器間管理器308可以選擇任一處理器304-306。此外,可以通過預(yù)定的標(biāo)準(zhǔn)來權(quán)衡每一計(jì)劃能量消耗以及負(fù)載條件。該預(yù)定的標(biāo)準(zhǔn)可以基于,例如,計(jì)分系統(tǒng),其為處理器304-306的每一計(jì)劃能量消耗以及負(fù)載條件給出分?jǐn)?shù)。該分?jǐn)?shù)具有正負(fù)偏移效果。例如,可以通過處罰來驅(qū)動(dòng)負(fù)分?jǐn)?shù)(例如,服務(wù)應(yīng)用程序的迅速處理需要),而可以利用重要性、優(yōu)先級(jí)和/或電能節(jié)約的順序來驅(qū)動(dòng)正分?jǐn)?shù)。
可能有這樣的狀態(tài),其中與能量消耗相比,計(jì)分系統(tǒng)認(rèn)為負(fù)載條件更為重要。例如,當(dāng)服務(wù)應(yīng)用程序需要較高的MIPS時(shí),例如是通過顯示器204用于提供良好的用戶體驗(yàn)的視頻處理,可以主要地依據(jù)負(fù)載條件以及次要地依據(jù)能量消耗的好處來選擇最優(yōu)處理器。然而,當(dāng)可以同樣地實(shí)現(xiàn)兩種好處(MIPS以及能源節(jié)約)時(shí),可以幾乎相等或相等地權(quán)衡用于負(fù)載以及能量消耗的計(jì)分系統(tǒng)。計(jì)分系統(tǒng)的選擇取決于移動(dòng)裝置106的設(shè)計(jì)者,該計(jì)分系統(tǒng)定義了用于選擇最優(yōu)處理器的方案。
然而,在普通的實(shí)施例中,根據(jù)具有處理服務(wù)應(yīng)用程序的最低計(jì)劃能量消耗的處理器304或者306,處理器間管理器308可以被編程用于選擇最優(yōu)處理器。
如迄今為之應(yīng)當(dāng)很明顯的,對于步驟406的選擇處理,可以開發(fā)許多復(fù)雜的實(shí)施例。例如,處理器間管理器308可以被編程用于根據(jù)各服務(wù)應(yīng)用程序的計(jì)劃能量消耗中的一個(gè)與如下所述的組的優(yōu)化組合來選擇最優(yōu)處理器,所述組包括負(fù)載條件、電池210中的殘留能量、在每個(gè)處理器304-306中處理服務(wù)應(yīng)用程序的速度以及該服務(wù)應(yīng)用程序的優(yōu)先級(jí)的單獨(dú)或者組合地選擇的一個(gè)。
因此,上述沒有提及的、導(dǎo)致與此處的描述相同的方法以及等效結(jié)構(gòu)的修改或者用于測量能量的附加的度量都應(yīng)當(dāng)被視為落入要求保護(hù)的本發(fā)明的范疇中。
考慮到以上的實(shí)施例,直接前進(jìn)至步驟408。即,服務(wù)應(yīng)用程序被委派給在步驟406中選擇用于執(zhí)行的最優(yōu)處理器,以使得對于移動(dòng)裝置106來說可以基本提高能量效率。
根據(jù)上述說明書,應(yīng)當(dāng)認(rèn)識(shí)到本發(fā)明的實(shí)施例可以以硬件、軟件、或者硬件和軟件的組合來實(shí)現(xiàn)。這些實(shí)施例還可以根據(jù)在以下權(quán)利要求書的精神以及保護(hù)范圍之內(nèi)構(gòu)想的多種結(jié)構(gòu)來實(shí)現(xiàn)。應(yīng)該理解,權(quán)利要求書意圖覆蓋此處被描述為執(zhí)行所述功能的結(jié)構(gòu),而并非僅僅覆蓋結(jié)構(gòu)上的等價(jià)物。權(quán)利要求被充分地概括以包括各個(gè)等效結(jié)構(gòu)。
例如,方法的軟件實(shí)現(xiàn)和同樣方法的硬件實(shí)現(xiàn)可以不是結(jié)構(gòu)等價(jià)物,因?yàn)檐浖?shí)現(xiàn)取決于用于執(zhí)行的處理系統(tǒng),而硬件實(shí)現(xiàn)可以具有自身包含的處理裝置。然而,在現(xiàn)有技術(shù)中,公知軟件和硬件實(shí)現(xiàn)可以被設(shè)計(jì)為產(chǎn)生相同結(jié)果的等效結(jié)構(gòu)。因此,以上說明書的全部等價(jià)改型和添加應(yīng)當(dāng)被視為落入以下權(quán)利要求書的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.在包括聯(lián)接到多個(gè)處理器的處理器間管理器的處理系統(tǒng)中,其中多個(gè)處理器的兩個(gè)或更多處理器能夠處理服務(wù)應(yīng)用程序,一種處理器間管理器中的方法包括如下步驟接收將服務(wù)應(yīng)用程序委派給多個(gè)處理器中的至少其中之一的請求;根據(jù)與多個(gè)處理器中的每一個(gè)相對應(yīng)的服務(wù)應(yīng)用程序的多個(gè)計(jì)劃能量消耗,選擇多個(gè)處理器中的最優(yōu)的一個(gè)來執(zhí)行該服務(wù)應(yīng)用程序;以及將服務(wù)應(yīng)用程序委派給最優(yōu)處理器用于執(zhí)行。
2.如權(quán)利要求1的方法,其中服務(wù)應(yīng)用程序的多個(gè)計(jì)劃能量消耗是預(yù)定的。
3.如權(quán)利要求1的方法,其中該服務(wù)應(yīng)用程序的多個(gè)計(jì)劃能量消耗基于對應(yīng)的歷史能量消耗數(shù)據(jù),該歷史能量消耗數(shù)據(jù)是從多個(gè)處理器中的至少其中之一上的服務(wù)應(yīng)用程序的實(shí)時(shí)操作中收集的。
4.如權(quán)利要求1的方法,其中該多個(gè)處理器的最優(yōu)的一個(gè)具有服務(wù)應(yīng)用程序的多個(gè)計(jì)劃能量消耗的最低的計(jì)劃能量消耗。
5.如權(quán)利要求1的方法,其中選擇步驟進(jìn)一步包括根據(jù)與多個(gè)處理器相對應(yīng)的多個(gè)負(fù)載條件來選擇最優(yōu)處理器的步驟。
6.如權(quán)利要求5的方法,其中多個(gè)負(fù)載條件是預(yù)定的。
7.如權(quán)利要求5的方法,其中該多個(gè)負(fù)載條件基于對應(yīng)的歷史負(fù)載條件數(shù)據(jù),該歷史負(fù)載條件數(shù)據(jù)是從多個(gè)處理器的實(shí)時(shí)操作中收集的。
8.如權(quán)利要求5的方法,其中在選擇步驟期間,通過預(yù)定標(biāo)準(zhǔn)來權(quán)衡多個(gè)計(jì)劃能量消耗以及負(fù)載條件中的每一個(gè),根據(jù)多個(gè)計(jì)劃能量消耗以及負(fù)載條件的最優(yōu)對來選擇多個(gè)處理器中的最優(yōu)的一個(gè)。
9.如權(quán)利要求1的方法,其中在選擇步驟期間,根據(jù)服務(wù)應(yīng)用程序的多個(gè)計(jì)劃能量消耗中的一個(gè)以及如下所述的組的最優(yōu)組合來選擇多個(gè)處理器中最優(yōu)的一個(gè),其中所述組單獨(dú)地或組合地包括與多個(gè)處理器相對應(yīng)的多個(gè)負(fù)載條件、向處理系統(tǒng)提供能量的電池中的殘留能量、該多個(gè)處理器的每一個(gè)的處理速度以及應(yīng)用于該服務(wù)應(yīng)用程序的優(yōu)先級(jí)。
全文摘要
一種移動(dòng)裝置(106),包括處理系統(tǒng)(206),該處理系統(tǒng)包括處理器間管理器(308),以及聯(lián)接到該處理器間管理器的多個(gè)處理器(304-306),其中該多個(gè)處理器中的兩個(gè)或更多個(gè)能夠處理服務(wù)應(yīng)用程序,以及其中該處理器間管理器被編程用于接收(402)用于將該服務(wù)應(yīng)用程序委派給多個(gè)處理器中的至少其中之一的請求,根據(jù)與多個(gè)處理器包括的每一個(gè)相對應(yīng)的服務(wù)應(yīng)用程序的多個(gè)計(jì)劃能量消耗,選擇(406)多個(gè)處理器(304-306)中的最優(yōu)的一個(gè)來執(zhí)行該服務(wù)應(yīng)用程序,以及將服務(wù)應(yīng)用程序委派(408)給最優(yōu)處理器用于執(zhí)行。
文檔編號(hào)G06F9/30GK101061459SQ200580039865
公開日2007年10月24日 申請日期2005年11月8日 優(yōu)先權(quán)日2004年11月19日
發(fā)明者林志翰, 沙爾貝勒·哈萬德 申請人:摩托羅拉公司