專利名稱:用于在源和目標(biāo)處理電路間轉(zhuǎn)移工作量的數(shù)據(jù)處理裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于在第一和第二處理電路之間切換工作量的數(shù)據(jù)處理裝置和方法,并且具體涉及用于提高切換之后工作量的處理性能的技木。
背景技術(shù):
在當(dāng)今的數(shù)據(jù)處理系統(tǒng)中,諸如游戲操作之類的高強(qiáng)度任務(wù)和諸如MP3播放之類的低強(qiáng)度任務(wù)之間的性能需求差異可能超過100:1的比率。對于要被用于所有任務(wù)的ー個處理器而言,該處理器將必須是高性能的,但是處理器微結(jié)構(gòu)的公理是高性能的處理器比低性能處理器的能量效率低。公知可以利用諸如動態(tài)電壓和頻率縮放(DVFS)或功率門控之類的技術(shù)為處理器提供一定范圍的性能水平和相應(yīng)的能量消耗特 性,從而提高處理器層的能量效率。然而,這些技術(shù)普遍變得不足以允許單個處理器承接具有如此分散性能需求的任務(wù)。因此,已經(jīng)考慮使用多核體系結(jié)構(gòu)來提供用于執(zhí)行這些不同任務(wù)的能量高效系統(tǒng)。雖然具有多個處理器核心的系統(tǒng)被用于提高性能已有一段時間了,這些系統(tǒng)通過允許不同的核心并行地工作于不同的任務(wù)上來提高吞吐量,但是關(guān)于這些系統(tǒng)如何被用于提高能量效率的分析還是相對近期的發(fā)展方向。V Kumar 等的文章“Towards Better Performance Per Watt in VirtualEnvironments on Asymmetric Single-ISA Multi-Core Systems”, ACM SIGOPS OperatingSystems Review,第43卷,第3期(2009年7月)討論了不對稱單一指令集體系結(jié)構(gòu)(ASISA)多核系統(tǒng),該系統(tǒng)由面向相同的指令集體系結(jié)構(gòu)(ISA)但在特征、復(fù)雜度、功耗和性能方面不同的若干個核心構(gòu)成。在這篇文章中,虛擬工作量的屬性被研究以了解這些工作量應(yīng)該怎樣在ASISA系統(tǒng)上被調(diào)度,從而提高性能和能量消耗。這篇文章認(rèn)定某些任務(wù)更適用于高頻率/性能的微體系結(jié)構(gòu)(通常是計(jì)算密集型任務(wù)),而其它任務(wù)則更適合于較低頻率/性能的微體系結(jié)構(gòu)并且作為副效應(yīng)將消耗更少的能量(通常是輸入/輸出密集型任務(wù))。雖然這些研究掲示了 ASISA系統(tǒng)可以怎樣被用于以能量高效的方式運(yùn)行各種任務(wù),但是仍然需要提供一種用于將各個任務(wù)調(diào)度到最合適的處理器的機(jī)制。這種調(diào)度管理通常會給操作系統(tǒng)帶來很大的負(fù)擔(dān)。R Kumar 等的文章“ Single-ISA Heterogeneous Multi-Core Architectures: ThePotential for Processor Power Reduction, Proceedings of the 36 internationalSymposium of Microarchitecture (MICR0-36’03)討論了一種多核體系結(jié)構(gòu),其中所有核心執(zhí)行相同的指令集但是具有不同的功能和性能水平。在運(yùn)行時,系統(tǒng)軟件對應(yīng)用的資源需求進(jìn)行評估,并選擇可以最佳地滿足這些需求同時又最小化能量消耗的核心。如這篇文章的第2部分中所論述的,在應(yīng)用執(zhí)行期間,操作系統(tǒng)軟件嘗試將應(yīng)用與不同的核心匹配,試圖滿足定義的目標(biāo)功能,例如特定的性能要求。在2. 3部分中,提到會有切換核心的開銷,需要對切換的粒度進(jìn)行限制。接下來論述了具體示例,其中如果操作系統(tǒng)確定切換已就緒,則對新核心加電,觸發(fā)緩存刷新(cache flush)以將所有臟的緩存數(shù)據(jù)保存到共享的存儲器結(jié)構(gòu)中,然后發(fā)信號告知新核心在預(yù)定義的操作系統(tǒng)入口點(diǎn)處啟動。然后,舊核心可以被關(guān)閉電源,同時新核心從存儲器中獲取所需要的數(shù)據(jù)。這種方法在2. 3部分中被描述為允許通過操作系統(tǒng)將應(yīng)用在核心之間切換。這篇文章的其余部分還論述了在目標(biāo)是減少能量消耗的情況下,這種切換可以怎樣在多核設(shè)置內(nèi)被動態(tài)執(zhí)行。雖然上述文章討論了単一 ISA異構(gòu)多核體系結(jié)構(gòu)實(shí)現(xiàn)能量消耗減少的可能,但是它仍然要求操作系統(tǒng)被提供足夠的功能以實(shí)現(xiàn)針對各個應(yīng)用做出的調(diào)度決定。當(dāng)在具有不同體系結(jié)構(gòu)特征的處理器實(shí)例之間切換時,操作系統(tǒng)的角色會被變得更加復(fù)雜。在此,應(yīng)當(dāng)注意該文章中所考慮的Alpha核心EV4到EV8不是完全I(xiàn)SA兼容的,例如在2. 2部分的第五段中所論述的。此外,這篇文章不能解決在核心之間切換應(yīng)用時會涉及到很大開銷的問題,這個 問題可能很大程度上減少了從這種切換中所獲得的好處。開銷不僅包括執(zhí)行切換所花費(fèi)的時間(在這期間沒有處理器在執(zhí)行被轉(zhuǎn)移的工作量),還包括切換之后緩存缺失所帯來的懲罰。當(dāng)目標(biāo)核心開始執(zhí)行轉(zhuǎn)移來的處理工作量吋,設(shè)置在目標(biāo)核心中的任何緩存都在不包含有效數(shù)據(jù)的情況下開始工作,所以目標(biāo)核心要經(jīng)歷冷啟動緩存缺失。這意味著數(shù)據(jù)必須從存儲器中獲取,這減慢了處理的執(zhí)行并且要使用非常多的能量。只有在目標(biāo)緩存通過緩存ー些存儲器中所存儲的數(shù)據(jù)值而變得“熱起來”之后,性能和能量效率才會恢復(fù)。雖然以上R. Kumar等的文章在4. 4部分中指明了冷啟動緩存缺失的問題,但是Kumar沒有提供針對該問題的任何解決方案。本發(fā)明尋求提高切換到目標(biāo)處理器之后的處理性能。
發(fā)明內(nèi)容
從ー個方面來看,本發(fā)明提供了ー種數(shù)據(jù)處理裝置,包括第一處理電路和第二處理電路,被配置為執(zhí)行處理工作量以使得所述處理工作量在同一時間由所述第一處理電路和所述第二處理電路中的一個執(zhí)行;電カ控制電路,用于獨(dú)立地控制對所述第一處理電路和所述第二處理電路的電力供應(yīng);工作量轉(zhuǎn)移控制器,響應(yīng)于轉(zhuǎn)移激勵,在源處理電路被所述電カ控制電路置于省電狀態(tài)之前控制對所述處理工作量的執(zhí)行使之從所述源處理電路轉(zhuǎn)移到目標(biāo)處理電路,所述源處理電路是所述第一和第二處理電路中的ー個處理電路且所述目標(biāo)處理電路是所述第一和第二處理電路中的另ー個處理電路;其中至少所述源處理電路具有緩存;所述電カ控制電路被配置為在所述目標(biāo)處理電路開始執(zhí)行被轉(zhuǎn)移的處理工作量之后的偵查時段中將至少所述源處理電路的所述緩存保持在加電狀態(tài);所述數(shù)據(jù)處理裝置包括緩存?zhèn)刹殡娐?,被配置為在所述偵查時段中偵查所述源處理電路的所述緩存中的數(shù)據(jù)值并獲取所述被偵查的數(shù)據(jù)值用于所述目標(biāo)處理電路;并且所述電カ控制電路被配置為在所述偵查時段結(jié)束之后將所述至少所述源處理電路的所述緩存置于所述省電狀態(tài)。本發(fā)明的數(shù)據(jù)處理裝置具有第一和第二處理電路,并且在處理期間的任意時間,第一和第二處理電路中的ー個在執(zhí)行處理工作量。當(dāng)轉(zhuǎn)移激勵發(fā)生時,對處理工作量的執(zhí)行從源處理電路(在接收到轉(zhuǎn)移激勵時第一和第二處理電路中當(dāng)前正在執(zhí)行工作量的任一電路)被轉(zhuǎn)移到目標(biāo)處理電路(第一和第二處理電路中的另一電路),為源處理電路被置于省電狀態(tài)做準(zhǔn)備。不管轉(zhuǎn)移本身是如何被實(shí)現(xiàn)的,本發(fā)明都提高了處理工作量被轉(zhuǎn)移到目標(biāo)電路之后的目標(biāo)電路的性能水平。本發(fā)明意識到在轉(zhuǎn)移之后,目標(biāo)處理電路可能需要在轉(zhuǎn)移之前被存儲在源處理電路的緩存中的數(shù)據(jù)值。在目標(biāo)處理電路對被轉(zhuǎn)移來的處理工作量的執(zhí)行開始之后的有限時段(偵查時段)內(nèi),至少源處理電路的緩存被保持在加電狀態(tài)。緩存?zhèn)刹殡娐吩趥刹闀r段中偵查源緩存中的數(shù)據(jù),并代表目標(biāo)處理電路獲取數(shù)據(jù)。通過在偵查時段中保持對源緩存的供電,目標(biāo)處理電路在處理的最初時段內(nèi)可訪問源緩存中的數(shù)據(jù),從而避免了需要從存儲器中獲取數(shù)據(jù)。由于訪問源緩存比訪問存儲器更快并且使用更少的電力,所以本發(fā)明在轉(zhuǎn)移處理工作量之后提高了目標(biāo)處理電路的性能水平以及整個裝置的能量效率。本發(fā)明還意識到對源緩存中的數(shù)據(jù)的偵查只對于在目標(biāo)處理電路開始執(zhí)行處理工作量之后的有限時段是有用的。最終,源緩存中的數(shù)據(jù)都將不再與目標(biāo)處理電路所執(zhí)行的處理相關(guān)。例如,目標(biāo)處理電路可能開始處理不需要來自源緩存的數(shù)據(jù)的另一應(yīng)用,或者目標(biāo)處理電路可能已經(jīng)處理了數(shù)據(jù)使得不同于存儲在源緩存中的值的更新后的值當(dāng)前正 在被使用。因此,在偵查時段結(jié)束時,緩存?zhèn)刹殡娐吠V箓刹閬碜栽淳彺娴臄?shù)據(jù)值,并且電力控制電路被配置為將至少源處理電路的緩存置于省電狀態(tài)以節(jié)能??偨Y(jié)來說,不是在處理工作量轉(zhuǎn)移到目標(biāo)處理電路之后立即關(guān)閉源緩存的電源,而是源緩存在偵查時段內(nèi)被保持在加電狀態(tài),在偵查時段中緩存?zhèn)刹殡娐房梢詡刹樵淳彺嬷械臄?shù)據(jù)值并獲取偵查的數(shù)據(jù)值以用于目標(biāo)處理電路。通過減少從存儲器中獲取數(shù)據(jù)的次數(shù),性能水平和能量效率被提高。雖然本申請將總地針對有兩個處理電路(第一和第二處理電路)的情況描述本發(fā)明,但是數(shù)據(jù)處理裝置可以包括其它處理電路并且本發(fā)明可以被應(yīng)用于在處理電路中的任意兩個之間轉(zhuǎn)移處理工作量。此外,每個處理電路可以包括單個處理器核心或者多個處理器核心。處理工作量可以包括至少一個處理應(yīng)用和用于運(yùn)行這至少一個處理應(yīng)用的至少一個操作系統(tǒng)。通過將整個工作量作為在任意特定時間點(diǎn)處都僅在第一和第二處理電路中的一個上被執(zhí)行的宏觀實(shí)體,工作量可以以一種對操作系統(tǒng)透明的方式很好地在第一和第二處理電路之間切換。這種方法解決了由于使用操作系統(tǒng)來管理針對特定處理電路的應(yīng)用的調(diào)度而產(chǎn)生的前述問題。工作量轉(zhuǎn)移控制器可以被配置為在轉(zhuǎn)移期間對所述至少一個操作系統(tǒng)屏蔽預(yù)定的處理器專用配置信息,以使得工作量的轉(zhuǎn)移對所述至少一個操作系統(tǒng)而言是透明的。這意味著操作系統(tǒng)的配置被簡化了,因?yàn)椴僮飨到y(tǒng)不需要知道與第一處理電路相關(guān)聯(lián)的處理器專用配置信息和與第二處理電路相關(guān)聯(lián)的處理器專用配置信息之間的差異。由于第一和第二處理電路的處理器專用信息差異對于操作系統(tǒng)被屏蔽起來,所以從操作系統(tǒng)的角度(以及操作系統(tǒng)所運(yùn)行的任何應(yīng)用的角度)來看,工作量被運(yùn)行在單一硬件平臺上。不管工作量是被運(yùn)行在第一處理電路還是第二處理電路上,操作系統(tǒng)所看到的硬件平臺是一樣的。這使得更容易配置操作系統(tǒng)和應(yīng)用。工作量轉(zhuǎn)移控制器可以至少包括虛擬軟件(virtualisation software),該虛擬軟件從邏輯上將所述至少一個操作系統(tǒng)與第一處理電路和第二處理電路分隔開。虛擬軟件提供一種抽象水平以將各個處理電路的硬件配置對操作系統(tǒng)隱藏起來,使得操作系統(tǒng)不知道哪個處理電路在執(zhí)行工作量。因此,操作系統(tǒng)配置可以被簡化。虛擬軟件可以控制將處理工作量分配給第一處理電路或第二處理電路。第一處理電路可以在體系結(jié)構(gòu)上與第二處理電路兼容,使得要被數(shù)據(jù)處理裝置執(zhí)行的處理工作量可以在第一處理電路或第二處理電路上被執(zhí)行。這意味著從應(yīng)用的角度來看,運(yùn)行在第一處理電路上的應(yīng)用與運(yùn)行在第二處理電路上的應(yīng)用之間的唯一差異就在于所實(shí)現(xiàn)的性能水平或能量效率。不需要進(jìn)行第一和第二處理電路之間的指令集轉(zhuǎn)換。包括操作系統(tǒng)和正在被操作系統(tǒng)運(yùn)行的應(yīng)用的整個處理工作量可以按簡單的方式在第一和第二處理電路之間來回轉(zhuǎn)移。第一處理電路可以在微體系結(jié)構(gòu)上不同于第二處理電路,使得第一處理電路的性能不同于第二處理電路的性能。第一和第二處理電路中具有較高性能水平的那個電路通常比第一和第二處理電路中的另一個電路消耗更多的能量。這意味著如果高性能處理被需要(例如當(dāng)游戲應(yīng)用被執(zhí)行時),則工作量可以被切換到較高性能的處理電路。另一方面,如果 諸如MP3播放之類的低性能處理正在被執(zhí)行,則處理工作量可以被整個切換到較低性能的處理電路以提高能量效率。因而,通過提供微體系結(jié)構(gòu)不同的處理電路,對處理工作量的執(zhí)行可以根據(jù)要被執(zhí)行的工作量的特征針對性能和能耗而被優(yōu)化。處理電路之間的微體系結(jié)構(gòu)差異可以包括例如具有不同的執(zhí)行管線長度或不同的執(zhí)行資源。管線長度的不同通常將導(dǎo)致操作頻率的不同,進(jìn)而將對性能產(chǎn)生影響。類似地,執(zhí)行資源的不同將對吞吐量以及性能產(chǎn)生影響。例如,具有更寬范圍的執(zhí)行資源的處理電路將使得在任意特定時間點(diǎn)處有更多的信息被處理,提高吞吐量。附加地或者替代地,一個處理電路可以具有比另一處理電路更多的執(zhí)行資源,例如更多的算術(shù)邏輯單元(ALU),這同樣將提高吞吐量。作為不同執(zhí)行資源的另一示例,高能量效率的處理電路可以具有簡單的順序管線,而較高性能的處理電路可以具有亂序超標(biāo)量管線。此外,較高性能的處理電路可以具有分支預(yù)測功能,該功能通過在分支被解析之前提前獲取預(yù)測的分支目標(biāo)來加速處理,而更高能量效率的處理電路可能不具有分支預(yù)測器。這些體系結(jié)構(gòu)差異不影響每個體系結(jié)構(gòu)上兼容的處理電路執(zhí)行相同處理工作量的能力,但是在各個處理電路執(zhí)行處理工作量時得到不同的性能水平和能耗。當(dāng)只有源處理電路有緩存時,本發(fā)明可以被使用。在這種情況下,目標(biāo)處理電路的一些存儲器訪問可以通過利用緩存?zhèn)刹殡娐吩趥刹闀r段中偵查源緩存而被避免。在偵查時段結(jié)束之后,所有的數(shù)據(jù)都將需要從存儲器中獲取。然而,通常目標(biāo)處理電路也將包括緩存,使得第一和第二處理電路都包括緩存。在這種情況下,由緩存?zhèn)刹殡娐穫刹榈暮陀删彺鎮(zhèn)刹殡娐窞槟繕?biāo)處理電路獲取的數(shù)據(jù)值可以被存儲在目標(biāo)處理電路的緩存中以加速之后對數(shù)據(jù)的引用。在實(shí)施例中,電力控制電路可被配置為在偵查時段中將除源處理電路的緩存以外的源處理電路置于省電狀態(tài),并且在偵查時段結(jié)束之后將源處理電路的緩存置于省電狀態(tài)。這減少了數(shù)據(jù)處理裝置的功耗,因?yàn)樵刺幚黼娐返拇蟛糠挚梢栽诠ぷ髁恳驯灰平唤o目標(biāo)處理器之后被關(guān)閉電源。在偵查時段中只有源處理電路的緩存保持加電,使得緩存?zhèn)刹殡娐纺軌颢@取存儲在源緩存中的值以用于目標(biāo)處理電路。
在一個實(shí)施例中,當(dāng)緩存是源處理電路內(nèi)的緩存等級結(jié)構(gòu)中的一部分時,在偵查時段中被偵查的源緩存可以被保持在加電狀態(tài)中,而緩存等級結(jié)構(gòu)中的至少一個其它緩存處于省電狀態(tài)中。這種情況的一個示例是當(dāng)要被偵查的源緩存是二級包含型緩存時,該緩存被配置為存儲在緩存等級結(jié)構(gòu)的任意(一個或多個)一級緩存中存儲的全部數(shù)據(jù)。在這種情況下,在偵查時段中二級緩存可以被保持在加電狀態(tài)中以允許來自緩存?zhèn)刹殡娐返拇砟繕?biāo)處理電路的偵查,而一級緩存可與源處理電路的其余部分一起被關(guān)閉電源?;蛘?,電力控制電路可以被配置為在偵查時段中將源處理電路保持在加電狀態(tài),并且在偵查時段結(jié)束之后將包括源處理電路的緩存在內(nèi)的整個源處理電路置于省電狀態(tài)。雖然在偵查時段中將源處理電路保持加電增加了功耗,但是減少了數(shù)據(jù)處理裝置的復(fù)雜度,這是因?yàn)椴恍枰獙υ淳彺婧驮刺幚黼娐返钠溆嗖糠值莫?dú)立電源控制。其中可能需要對源緩存和源處理電路一起供電的示例情況是當(dāng)要被緩存?zhèn)刹殡娐穫刹榈脑刺幚黼娐返木彺媸且患壘彺鏁r。一級緩存可能與源處理電路內(nèi)的處理核心過于 緊密地集成,以至于不能提供對緩存和源處理電路的其余部分的單獨(dú)電源控制。在這種情況下,包括緩存在內(nèi)的整個源處理電路可以在偵查時段中被保持加電,并且在偵查時段結(jié)束之后關(guān)閉電源。源處理電路可以被配置為在偵查時段結(jié)束之后并且在電力控制電路將源處理電路的緩存置于省電狀態(tài)之前,對源緩存執(zhí)行清除操作以將來自緩存的任意臟數(shù)據(jù)寫回共享存儲器中。通過在源緩存關(guān)閉電源之前清除緩存,確保了其最新值尚未被寫回到存儲器中的任何臟數(shù)據(jù)都不會丟失。為了節(jié)省能量,電力控制電路在轉(zhuǎn)移激勵發(fā)生之前將目標(biāo)處理電路保持在省電狀態(tài)可能是有用的。在這種情況下,電力控制電路可以響應(yīng)于轉(zhuǎn)移激勵對目標(biāo)處理電路加電。目標(biāo)處理電路可以被配置為在目標(biāo)處理電路開始執(zhí)行被轉(zhuǎn)移來的處理工作量之前使目標(biāo)緩存無效。例如,如果在對處理工作量的執(zhí)行轉(zhuǎn)移之前目標(biāo)處理電路處于省電狀態(tài),則在對目標(biāo)處理電路加電時,目標(biāo)緩存可能包含錯誤數(shù)據(jù)。通過在目標(biāo)處理電路開始執(zhí)行被轉(zhuǎn)移來的處理工作量之前使目標(biāo)緩存無效,可以避免處理錯誤。為了提高處理性能,源處理電路可以被配置為在目標(biāo)處理電路的緩存正被無效時繼續(xù)執(zhí)行處理工作量,并且工作量轉(zhuǎn)移控制器可被配置為在目標(biāo)處理電路的緩存已被無效之后將對處理工作量的執(zhí)行轉(zhuǎn)移到目標(biāo)處理電路。通過允許源處理電路繼續(xù)執(zhí)行處理工作量一直到目標(biāo)處理電路準(zhǔn)備好開始執(zhí)行處理工作量為止,其間沒有處理電路在執(zhí)行處理工作量的時段被減少,所以處理工作量的性能水平被提高。在一個實(shí)施例中,偵查時段可以開始于目標(biāo)處理電路開始執(zhí)行處理工作量之時。在包括至少一個偵查停止事件的一組偵查停止事件中的任一個發(fā)生時偵查時段可以結(jié)束。指示不再值得將源緩存保持在加電狀態(tài)的一個或多個偵查停止事件可以觸發(fā)緩存?zhèn)刹殡娐穪斫Y(jié)束偵查時段。通常,這些事件指示源緩存中的數(shù)據(jù)不再被目標(biāo)處理電路所需要。緩存?zhèn)刹殡娐房杀慌渲脼楸O(jiān)控所述一組偵查停止事件中是否有任一事件發(fā)生。例如,緩存?zhèn)刹殡娐房梢园ㄐ阅苡?jì)數(shù)器,用于監(jiān)控目標(biāo)處理電路的處理和目標(biāo)處理電路所執(zhí)行的數(shù)據(jù)訪問。利用性能計(jì)數(shù)器,緩存?zhèn)刹殡娐房梢苑治鲈淳彺嬷械臄?shù)據(jù)是否仍與正在被目標(biāo)處理電路執(zhí)行的處理相關(guān)。通過配置緩存?zhèn)刹殡娐范悄繕?biāo)處理電路來監(jiān)控是否有偵查停止事件發(fā)生,目標(biāo)處理電路可以被保持不知道源緩存是否仍在被偵查。這使得目標(biāo)處理電路的配置更簡單。 至少一個偵查停止事件可以包括當(dāng)導(dǎo)致源處理電路的緩存中的緩存命中的由緩存?zhèn)刹殡娐穲?zhí)行的偵查的百分比降到預(yù)定的閾值水平以下時發(fā)生的事件。如果源緩存中的緩存命中的百分比變得很低,則表明目標(biāo)處理電路所尋找的很多數(shù)據(jù)值不再存在于源緩存中,所以源緩存中的數(shù)據(jù)與目標(biāo)處理電路無關(guān)。因此,可以通過一旦緩存命中的百分比降到預(yù)定的閾值水平以下,則結(jié)束偵查時段并且關(guān)掉源緩存來提高電源效率。至少一個偵查停止事件還可以包括當(dāng)目標(biāo)處理電路完成預(yù)定數(shù)目的預(yù)定類型的處理事務(wù)時發(fā)生的事件。雖然目標(biāo)處理電路可以經(jīng)由緩存?zhèn)刹殡娐吩L問存儲在源緩存中的數(shù)據(jù),但是目標(biāo)處理電路通常不能更新源緩存中的值。在預(yù)定數(shù)目的事務(wù)完成之后可以預(yù)期目標(biāo)處理電路將已經(jīng)為原本存儲在源緩存中的數(shù)據(jù)中的一些生成了新值。由于目標(biāo)處理 電路不能將數(shù)據(jù)寫入源緩存,所以新的數(shù)據(jù)值將被存儲在存儲器和/或目標(biāo)緩存中,這意味著源緩存中的原始數(shù)據(jù)值不再與目標(biāo)處理電路相關(guān)。因此,預(yù)定數(shù)目的預(yù)定類型的處理事務(wù)的完成可以表明源緩存已不再需要,因而可以觸發(fā)偵查時段的結(jié)束。預(yù)定類型的處理事務(wù)可以包括例如目標(biāo)處理電路所執(zhí)行的全部事務(wù)或者可以只包括可緩存的事務(wù)。另一種偵查停止事件可以是在目標(biāo)處理電路開始執(zhí)行被轉(zhuǎn)移來的處理工作量之后經(jīng)過了預(yù)定數(shù)目的處理周期時發(fā)生的事件。如上所述,目標(biāo)處理電路通常不能更新源緩存中的值。因此,在目標(biāo)處理電路已經(jīng)執(zhí)行了特定數(shù)目的處理周期的處理之后,目標(biāo)處理電路所使用的數(shù)據(jù)(例如存儲在存儲器或目標(biāo)緩存中的數(shù)據(jù))很可能不會與仍存儲在源緩存中的數(shù)據(jù)相同了。這意味著從目標(biāo)處理電路開始執(zhí)行處理工作量起經(jīng)過的處理周期的數(shù)目可以作為指示符,指示源緩存對目標(biāo)處理電路而言不再有用并且可以被關(guān)閉電源。在裝置包括在第一和第二處理電路之間共享的共享存儲器的情況下,至少一個偵查停止事件可以包括在開始執(zhí)行被轉(zhuǎn)移來的處理工作量之后目標(biāo)處理電路第一次訪問共享存儲器的特定存儲器區(qū)域時發(fā)生的事件。對特定存儲器區(qū)域的第一次訪問例如可以指示出目標(biāo)處理電路已啟動與特定存儲區(qū)域相關(guān)聯(lián)的不同于之前被目標(biāo)處理電路處理的應(yīng)用的新應(yīng)用。這可以指示與新應(yīng)用不相關(guān)聯(lián)的源緩存中的數(shù)據(jù)不再與目標(biāo)處理電路相關(guān)。因此,對特定存儲器區(qū)域的第一次訪問可以觸發(fā)偵查時段的結(jié)束。由于類似的原因,偵查停止事件還可以包括當(dāng)目標(biāo)處理電路在開始執(zhí)行被轉(zhuǎn)移來的處理工作量之后的最初時段內(nèi)所訪問的共享存儲器的特定存儲器區(qū)域在預(yù)定的時段內(nèi)未被所述目標(biāo)處理電路訪問時發(fā)生的事件。當(dāng)目標(biāo)處理電路開始處理與原本被源處理電路處理的那個應(yīng)用不同的應(yīng)用時,與原始應(yīng)用相關(guān)聯(lián)的存儲器區(qū)域可能在一段時間內(nèi)都不被訪問。這可能表示源緩存中的數(shù)據(jù)不再被目標(biāo)處理電路使用,因而可以觸發(fā)偵查時段的結(jié)束。另一種偵查停止事件是當(dāng)目標(biāo)處理電路在開始執(zhí)行被轉(zhuǎn)移來的處理工作量之后第一次向共享存儲器的預(yù)定存儲器位置寫入時發(fā)生的事件。這允許目標(biāo)處理電路通過向預(yù)定的存儲位置寫入來發(fā)信號告知緩存?zhèn)刹殡娐菲洳辉傩枰淳彺嬷械臄?shù)據(jù)了。這組偵查停止事件可以包括上述偵查停止事件中的任意一個或多個,以及其它類型的偵查停止事件。
這里所使用的術(shù)語“共享存儲器”指的是可以被第一處理電路和第二處理電路兩者直接訪問的存儲器,例如經(jīng)由互連被耦接到第一和第二處理電路的主存儲器。該裝置可以包括偵查撤消(override)控制器,該偵查撤消控制器響應(yīng)于偵查撤消條件撤消緩存?zhèn)刹殡娐穼υ刺幚黼娐返木彺娴膫刹椋⑶铱刂齐娏刂齐娐吩趯μ幚砉ぷ髁康膱?zhí)行轉(zhuǎn)移之后將包括緩存的源處理電路置于省電狀態(tài),而不等待所述偵查時段的結(jié)束。在某些情況下,對源緩存的偵查可能對于目標(biāo)處理電路而言是沒用的。在這些情況下,偵查撤消控制器可以通過以下步驟來撤消緩存?zhèn)刹殡娐?,所述步驟即阻止對源緩存的偵查并且控制電力控制電路將包括緩存在內(nèi)的源處理電路置于省電狀態(tài)而不等待偵查時段的結(jié)束。偵查撤消控制器可以例如作為在源處理電路上執(zhí)行的固件或者作為虛擬軟件的一部分被提供,所述虛擬軟件對操作系統(tǒng)屏蔽處理電路的硬件專用信息。例如,可能在對處理工作量的執(zhí)行轉(zhuǎn)移之前知道源緩存中的數(shù)據(jù)對于在轉(zhuǎn)移之后將由目標(biāo)處理電路執(zhí)行的處理而言將是不需要的。例如,如果源處理電路剛剛結(jié)束執(zhí)行游戲應(yīng)用,則該游戲應(yīng)用所使用的數(shù)據(jù)在目標(biāo)處理電路開始處理不同的應(yīng)用之后可能對其是沒用的。在這種情況下,偵查撤消控制器可以用信號告知緩存?zhèn)刹殡娐泛碗娏刂齐娐穼彺娴膫刹椴辉傩枰?緩存?zhèn)刹殡娐房梢园ū获罱拥降谝缓偷诙幚黼娐返囊恢禄ミB(coherentinterconnect).該一致互連具有源緩存和存在于數(shù)據(jù)處理裝置中的任何共享存儲器這兩者的視圖。目標(biāo)處理電路可以簡單地請求來自一致互連的數(shù)據(jù),并且一致互連可以管理數(shù)據(jù)是從源緩存中被偵查還是從存儲器中獲取(這取決于偵查時段是否已結(jié)束以及數(shù)據(jù)訪問請求是否導(dǎo)致源緩存中的命中)。一致互連管理數(shù)據(jù)訪問以使得目標(biāo)處理電路不需要知道被請求數(shù)據(jù)的確切位置。目標(biāo)處理電路可能不知道對來自源緩存的數(shù)據(jù)的偵查。在一些實(shí)施例中,一致互連可以提供一種方便的機(jī)制,用于在處理工作量的移交期間將體系結(jié)構(gòu)狀態(tài)從源處理電路轉(zhuǎn)移到目標(biāo)處理電路。從另一方面看,本發(fā)明提供了一種數(shù)據(jù)處理裝置,包括用于執(zhí)行處理的第一處理裝置和用于執(zhí)行處理的第二處理裝置,所述第一處理裝置和第二處理裝置被配置為執(zhí)行處理工作量以使得所述處理工作量在同一時間由所述第一處理裝置和所述第二處理裝置中的一個執(zhí)行;電力控制裝置,用于獨(dú)立地控制對所述第一處理裝置和所述第二處理裝置的電力供應(yīng);工作量轉(zhuǎn)移控制裝置,用于響應(yīng)于轉(zhuǎn)移激勵,在源處理裝置被所述電力控制裝置置于省電狀態(tài)之前控制對所述處理工作量的執(zhí)行使之從所述源處理裝置轉(zhuǎn)移到目標(biāo)處理裝置,所述源處理裝置是所述第一和第二處理裝置中的一個處理裝置且所述目標(biāo)處理裝置是所述第一和第二處理裝置中的另一個處理裝置;其中至少所述源處理裝置具有用于存儲被緩存的數(shù)據(jù)值的緩存裝置;所述電力控制裝置被配置為在所述目標(biāo)處理裝置開始執(zhí)行被轉(zhuǎn)移的處理工作量之后的偵查時段中將至少所述源處理裝置的所述緩存裝置保持在加電狀態(tài);所述數(shù)據(jù)處理裝置包括緩存?zhèn)刹檠b置,用于在所述偵查時段中偵查所述源處理裝置的所述緩存裝置中的數(shù)據(jù)值并獲取所述被偵查的數(shù)據(jù)值用于所述目標(biāo)處理裝置;并且所述電力控制裝置被配置為在所述偵查時段結(jié)束之后將所述至少所述源處理裝置的所述緩存裝置置于所述省電狀態(tài)。從另一方面來看,本發(fā)明提供了用于包括第一處理電路和第二處理電路的裝置的數(shù)據(jù)處理方法,所述第一和第二處理電路被配置為執(zhí)行處理工作量以使得所述處理工作量在同一時間被所述第一處理電路和所述第二處理電路中的一個執(zhí)行;該方法包括利用源處理電路執(zhí)行所述處理工作量,所述源處理電路為所述第一和第二處理電路中的一個并且包括緩存,所述第一和第二處理電路中的另一個為目標(biāo)處理電路;響應(yīng)于轉(zhuǎn)移激勵,在所述源處理電路被置于省電狀態(tài)之前將對所述處理工作量的執(zhí)行從所述源處理電路轉(zhuǎn)移到所述目標(biāo)處理電路;在所述目標(biāo)處理電路對被轉(zhuǎn)移來的處理工作量的執(zhí)行開始之后的偵查時段中將至少所述源處理電路的緩存保持在加電狀態(tài);在所述偵查時段中,偵查所述源處理電路的緩存中的數(shù)據(jù)值并獲取所述被偵查的 數(shù)據(jù)值以用于所述目標(biāo)處理電路;并且在所述偵查時段結(jié)束之后將至少所述源處理電路的緩存置于所述省電狀態(tài)。從另一方面來看,本發(fā)明提供了一種數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置包括第一處理電路和第二處理電路,被配置為執(zhí)行處理工作量以使得所述處理工作量在同一個時間被所述第一處理電路和所述第二處理電路中的一個執(zhí)行;工作量轉(zhuǎn)移控制器,響應(yīng)于轉(zhuǎn)移激勵,在源處理電路被電力控制電路置于省電狀態(tài)之前控制對所述處理工作量的執(zhí)行使之從所述源處理電路轉(zhuǎn)移到目標(biāo)處理電路,所述源處理電路是所述第一和第二處理電路中的一個處理電路且所述目標(biāo)處理電路是所述第一和第二處理電路中的另一個處理電路;其中至少所述目標(biāo)處理電路具有緩存;所述目標(biāo)處理電路被配置為在所述目標(biāo)處理電路開始執(zhí)行被轉(zhuǎn)移來的處理工作量之前使所述目標(biāo)處理電路的緩存無效; 所述源處理電路被配置為在所述目標(biāo)處理電路被無效的同時繼續(xù)執(zhí)行所述處理
工作量;并且所述工作量轉(zhuǎn)移控制器被配置為在所述目標(biāo)處理電路的緩存已被無效之后將對所述處理工作量的執(zhí)行轉(zhuǎn)移到所述目標(biāo)處理電路。本發(fā)明通過在接收到轉(zhuǎn)移激勵之后目標(biāo)處理電路的緩存正在被無效的同時允許目標(biāo)處理電路在一段時間內(nèi)繼續(xù)處理處理工作量,可以提高處理性能。通過只是在目標(biāo)處理電路的緩存被無效之后將對處理工作量的執(zhí)行轉(zhuǎn)移到目標(biāo)處理電路,其間沒有處理電路在執(zhí)行工作量的時間可被減少。因此,處理工作量被更快速且更高效地執(zhí)行。
下面將僅以示例的方式參考如附圖中所示的本發(fā)明的實(shí)施例進(jìn)一步描述本發(fā)明,在附圖中圖I是根據(jù)一個實(shí)施例的數(shù)據(jù)處理系統(tǒng)的框圖;圖2示意性地圖示了根據(jù)一個實(shí)施例提供切換控制器(這里也被稱為工作量轉(zhuǎn)移控制器)以在邏輯上將由數(shù)據(jù)處理裝置執(zhí)行的工作量與在數(shù)據(jù)處理裝置內(nèi)被用于執(zhí)行所述工作量的特定硬件平臺分開;
圖3是示意性地圖示了根據(jù)一個實(shí)施例的源處理器和目標(biāo)處理器響應(yīng)于切換激勵以將工作量從源處理器轉(zhuǎn)移到目標(biāo)處理器而執(zhí)行的步驟;圖4A示意性地圖示了在圖3的保存操作期間將源處理電路的當(dāng)前體系結(jié)構(gòu)狀態(tài)存入其相關(guān)聯(lián)的緩存;圖4B示意性地圖示了在圖3的恢復(fù)操作期間利用偵查控制單元控制源處理電路的當(dāng)前體系結(jié)構(gòu)狀態(tài)向目標(biāo)處理電路的轉(zhuǎn)移;圖5圖示了根據(jù)一個實(shí)施例的用于在轉(zhuǎn)移操作期間提供加速機(jī)制以將源處理電路的當(dāng)前體系結(jié)構(gòu)狀態(tài)轉(zhuǎn)移給目標(biāo)處理電路的替代結(jié)構(gòu);圖6A到61示意性地圖示了根據(jù)一個實(shí)施例的將工作量從源處理電路轉(zhuǎn)移給目標(biāo)處理電路所執(zhí)行的步驟;圖7是根據(jù)一個實(shí)施例的示出了能量效率隨性能的變化曲線并且圖示了在該曲 線上的各個點(diǎn)處圖I中所示的各個處理器核心如何被使用的圖;圖8A和SB分別示意性地圖示了如在一個實(shí)施例中所使用的低性能處理器管線和高性能處理器管線;以及圖9是示出了當(dāng)對處理工作量的執(zhí)行在低性能、高能量效率處理電路和高性能、低能量效率處理電路之間切換時數(shù)據(jù)處理系統(tǒng)所消耗的功率變化的圖。
具體實(shí)施例方式圖I是示意性地圖示了根據(jù)一個實(shí)施例的數(shù)據(jù)處理系統(tǒng)的框圖。如圖I中所示,該系統(tǒng)包括兩個在體系結(jié)構(gòu)上兼容的處理電路實(shí)例(處理電路010和處理電路150),但是這兩個不同的處理電路實(shí)例具有不同的微結(jié)構(gòu)。具體而言,處理電路10被安排為與處理電路50相比以更高的性能進(jìn)行操作,但是作為權(quán)衡,處理電路10將比處理電路50的能量效率低。關(guān)于微結(jié)構(gòu)差異的示例將在下面參考圖8A和SB進(jìn)行更詳細(xì)的描述。每個處理電路可以包括單個處理單元(這里也被稱為處理器核心),或者這些處理電路實(shí)例中的至少一個本身可以包括具有相同微結(jié)構(gòu)的處理單元的集群。在圖I中所示的示例中,處理電路10包括體系結(jié)構(gòu)和微結(jié)構(gòu)都相同的兩個處理器核心15,20。作為對比,處理電路50只包含單個處理器核心55。在以下描述中,處理器核心15,20將被稱為“大”核心,而處理器核心55將被稱為“小”核心,這是因?yàn)樘幚砥骱诵?5,20由于在設(shè)計(jì)時著重考慮性能所以通常比處理器核心55更復(fù)雜,而相比之下,處理器核心55由于在設(shè)計(jì)時著重考慮能量效率所以通常復(fù)雜度要低很多。在圖I中,每個處理器核心15,20,55被假設(shè)分別具有他們自己的相關(guān)聯(lián)的本地I級緩存25,30,60,這些緩存可以被布置為用于存儲供相關(guān)聯(lián)的核心引用的指令和數(shù)據(jù)的統(tǒng)一緩存,或者可以被布置為具有Harvard體系結(jié)構(gòu),提供不同的I級數(shù)據(jù)和I級指令緩存。雖然每個核心被顯示為具有其自己的相關(guān)聯(lián)的I級緩存,但這不是必須的,在替代實(shí)施例中,這些核心中的一個或多個核心可以沒有本地緩存。在圖I中所示的實(shí)施例中,處理電路10還包括在核心15與核心20之間共享的2級緩存35,偵查控制單元40被用于確保兩個I級緩存25,30與2級緩存35之間的緩存一致性。在一個實(shí)施例中,2級緩存被布置為包含型緩存,因此被存儲在任一 I級緩存25,30中的任意數(shù)據(jù)也都將存在于2級緩存35中。本領(lǐng)域技術(shù)人員將很清楚,偵查控制單元40的目的是確保各個緩存之間的緩存一致性,以使得可以確保任一核心15,20在發(fā)出訪問請求時將總是訪問到最新版本的數(shù)據(jù)。因此,僅作為示例,如果核心15發(fā)出針對不在相關(guān)聯(lián)的I級緩存25中的數(shù)據(jù)的訪問請求,則偵查控制單元40截獲正在傳輸?shù)膶級緩存25的請求,并且參考I級緩存30和/或2級緩存35確定是否可以根據(jù)那些其它緩存中的一個的內(nèi)容為訪問請求提供服務(wù)。只有在數(shù)據(jù)不存在于任何緩存中的情況下,訪問請求才經(jīng)由互連70被傳送給主存儲器80,主存儲器80是在處理電路10與處理電路50之間共享的存儲器。設(shè)置在互連70內(nèi)的偵查控制單元75按照與偵查控制單元40相類似的方式進(jìn)行操作,但是在該示例中,用于保持設(shè)置在處理電路10內(nèi)的緩存結(jié)構(gòu)與設(shè)置在處理電路50內(nèi)的緩存結(jié)構(gòu)之間的一致性。在2級緩存35為包含型緩存的示例中,偵查控制單元保持處理電路10的2級緩存35與處理電路50的I級緩存60之間的硬件緩存一致性。但是,如果2級緩存35被布置為排他型2級緩存,則偵查控制單元75還將偵查保存在I級緩存25,30中的數(shù)據(jù)以確保處理電路10的緩存與處理電路50的緩存60之間的緩存一致性。
根據(jù)一個實(shí)施例,在任意時間點(diǎn)處,將只有處理電路10和處理電路50中的一個在積極處理工作量。為了本申請的目的,所述工作量可以被認(rèn)為包括至少一個應(yīng)用和用于運(yùn)行該至少一個應(yīng)用的至少一個操作系統(tǒng),例如在圖2中用標(biāo)號100所示意性示出的。在該示例中,兩個應(yīng)用105,110正在操作系統(tǒng)115的控制下運(yùn)行,并且應(yīng)用105,110和操作系統(tǒng)115 —起構(gòu)成工作量100。這些應(yīng)用可以被認(rèn)為是存在于用戶層,而操作系統(tǒng)存在于優(yōu)先層(privileged level),并且總地來說由應(yīng)用和操作系統(tǒng)所構(gòu)成的工作量運(yùn)行在硬件平臺125 (代表硬件層視圖)上。在任意時間點(diǎn)處,硬件平臺將由處理電路10或者由處理電路50提供。如圖I中所示,電力控制電路50被提供用于選擇性地獨(dú)立地向處理電路10和處理電路50提供電力。在從一個處理電路向另一處理電路轉(zhuǎn)移工作量之前,通常只有處理電路中的一個是被充分供電的,即,當(dāng)前正在執(zhí)行工作量的那個處理電路(源處理電路),而另一處理電路(目標(biāo)處理電路)通常處于省電狀態(tài)。當(dāng)確定工作量應(yīng)當(dāng)從一個處理電路被轉(zhuǎn)移給另一處理電路時,在轉(zhuǎn)移操作期間將有一段時間兩個處理電路都處于加電狀態(tài),但是在轉(zhuǎn)移操作之后的某個時間點(diǎn)處,工作量從其中被轉(zhuǎn)移的源處理電路將被置于省電狀態(tài)中。取決于實(shí)現(xiàn)方式,省電狀態(tài)可以采用各種形式,因而例如可以是關(guān)閉電源狀態(tài)、部分/全部數(shù)據(jù)保持狀態(tài)、休眠狀態(tài)或發(fā)呆狀態(tài)中的一個。這些狀態(tài)將可以被本領(lǐng)域技術(shù)人員很好地理解,因此這里將不進(jìn)行詳細(xì)論述。所述實(shí)施例的目的是根據(jù)工作量所需要的性能/能量水平在處理電路之間執(zhí)行工作量的切換。因此,當(dāng)工作量涉及執(zhí)行一個或多個性能密集型任務(wù)(例如執(zhí)行游戲應(yīng)用)時,工作量可以在高性能處理電路10上被執(zhí)行,或者利用大核心15,20中的一個或兩者來執(zhí)行。然而,作為對比,當(dāng)工作量是僅僅執(zhí)行低執(zhí)行強(qiáng)度的任務(wù)(例如MP3播放)時,整個工作量可以被轉(zhuǎn)移到處理電路50,從而得益于通過使用處理電路50而實(shí)現(xiàn)的能量效率。為了最優(yōu)地利用這些切換功能,需要提供一種機(jī)制,允許切換以一種簡單且高效的方式進(jìn)行以使得轉(zhuǎn)移工作量的動作不會過多地消耗能量到抵消了切換所帶來的好處的程度,并且還確保切換過程足夠快以使得其本身不會在很大程度上降低性能。在一個實(shí)施例中,這些好處至少部分地通過將處理電路10安排為與處理電路50在體系結(jié)構(gòu)上兼容來獲得。這確保了工作量可以從一個處理電路被轉(zhuǎn)移到另一處理電路,同時確保正確的操作。作為最低要求,這種體系結(jié)構(gòu)的兼容要求兩個處理電路10和50共享相同的指令集體系結(jié)構(gòu)。然而,在一個實(shí)施例中,這種體系結(jié)構(gòu)的兼容還意味著更高的兼容要求以確保兩個處理電路實(shí)例從編程者的角度看是相同的。在一個實(shí)施例中,這包括使用相同的體系結(jié)構(gòu)寄存器,以及存儲操作系統(tǒng)在執(zhí)行應(yīng)用時所使用的數(shù)據(jù)的一個或多個專用寄存器。有了這種級別的體系結(jié)構(gòu)兼容,就可以對操作系統(tǒng)115屏蔽工作量在處理電路之間的轉(zhuǎn)移,以使得操作系統(tǒng)完全不知道工作量是在處理電路10上還是在處理電路50上被執(zhí)行的。在一個實(shí)施例中,對從一個處理電路到另一處理電路的轉(zhuǎn)移的處理由圖2中所示的切換控制器120 (這里也被稱為虛擬器并且在文中的其它地方還被稱為工作量轉(zhuǎn)移控制器)管理。切換控制器可以用硬件、固件和/或軟件特征的混合來實(shí)現(xiàn),但是在一個實(shí)施例 中包括本質(zhì)上類似于虛擬機(jī)中發(fā)現(xiàn)的管理程序軟件的軟件以使得用一種本地指令集編寫的應(yīng)用能夠在采用不同本地指令集的硬件平臺上被執(zhí)行。由于兩個處理電路10,50之間的體系結(jié)構(gòu)兼容性,切換控制器120可以僅僅通過對操作系統(tǒng)屏蔽一個或多個預(yù)定的處理器專用配置信息項(xiàng)來對操作系統(tǒng)屏蔽所述轉(zhuǎn)移。例如,處理器專用配置信息可以包括CP15處理器ID寄存器和CP15緩存類型寄存器的內(nèi)容。在這樣的實(shí)施例中,切換控制器然后只需要確保在轉(zhuǎn)移被起動時尚不能從共享存儲器80中獲得的、源處理電路在轉(zhuǎn)移時所保持的任意當(dāng)前體系結(jié)構(gòu)狀態(tài)被使得可用于目標(biāo)處理電路,以使得目標(biāo)電路處于能夠成功接管對工作量的執(zhí)行的狀況下。利用前述示例,這種體系結(jié)構(gòu)狀態(tài)通常將包括存儲在源處理電路的體系結(jié)構(gòu)寄存器文件中的當(dāng)前值以及源處理電路的一個或多個專用寄存器的當(dāng)前值。由于處理電路10,50之間的體系結(jié)構(gòu)的兼容性,如果所述當(dāng)前體系結(jié)構(gòu)狀態(tài)可以從源處理電路被傳送給目標(biāo)處理電路,則目標(biāo)處理電路將處于成功接管對來自源處理電路的工作量的執(zhí)行的狀況下。雖然處理電路10,50之間的體系結(jié)構(gòu)的兼容性便于整個工作量在這兩個處理電路之間的轉(zhuǎn)移,但是在一個實(shí)施例中,處理電路10,50在微體系結(jié)構(gòu)上彼此不同,使得存在與這兩個處理電路相關(guān)聯(lián)的不同的性能特性以及能量消耗特性。如前所述,在一個實(shí)施例中,處理電路10是高性能、高能耗處理電路,而處理電路50是較低性能、較低能耗的處理電路。這兩個處理電路可以在很多方面上具有彼此不同的微體系結(jié)構(gòu),但是通常具有不同的執(zhí)行管線長度和/或不同的執(zhí)行資源中的至少一個。管線長度的不同通常將導(dǎo)致操作頻率的不同,進(jìn)而將對性能產(chǎn)生影響。類似地,執(zhí)行資源的不同將對吞吐量以及性能產(chǎn)生影響。因而,例如,處理電路10可以具有更寬范圍的執(zhí)行資源和/或更多的執(zhí)行資源以提高吞吐量。此外,處理器核心15,20內(nèi)的管線可以被安排為執(zhí)行亂序超標(biāo)量處理,而能量高效處理電路50內(nèi)的更簡單的核心55可以被安排為順序管線。關(guān)于微體系結(jié)構(gòu)差異的更多討論將在后面參考圖8A和8B給出。生成轉(zhuǎn)移激勵以使得切換控制器120起動移交操作將工作量從一個處理電路轉(zhuǎn)移到另一處理電路可能因?yàn)楹芏喾N原因而被觸發(fā)。例如,在一個實(shí)施例中,應(yīng)用可以被描述和標(biāo)記為“大”、“小”或者“大/小”,從而操作系統(tǒng)可以與切換控制器接口以相應(yīng)地移動工作量。因此,利用這種方法,轉(zhuǎn)移激勵的生成可被映射到被執(zhí)行的應(yīng)用的特定組合,以確保當(dāng)需要高性能時,工作量在高性能處理電路10上被執(zhí)行,而當(dāng)不需要高性能時,作為替代,能量高效處理電路50被使用。在其它實(shí)施例中,算法可以被執(zhí)行以基于一個或多個輸入動態(tài)地確定何時觸發(fā)從一個處理電路到另一處理電路的工作量的轉(zhuǎn)移。例如,處理電路的性能計(jì)數(shù)器可以被設(shè)置為對性能敏感事件進(jìn)行計(jì)數(shù)(例如被執(zhí)行指令的數(shù)目或者載入存儲(load-store)操作的數(shù)目)。與周期計(jì)數(shù)器或系統(tǒng)定時器耦接,這允許識別出高度計(jì)算密集型應(yīng)用正在執(zhí)行,這種應(yīng)用可以通過切換到較高性能的處理電路被更好地服務(wù),或者識別出指示可以在能量高效的處理電路上被更好地服務(wù)的I/O密集型應(yīng)用的大量載入-存儲操作等。作為轉(zhuǎn)移激勵可能被生成的另一示例,數(shù)據(jù)處理系統(tǒng)可以包括用于監(jiān)控?cái)?shù)據(jù)處理系統(tǒng)在操作期間的溫度的一個或多個熱傳感器90??赡艹霈F(xiàn)這樣的情況,即現(xiàn)在的高性能處理電路(例如那些運(yùn)行在GHz頻率上的處理電路)有時會達(dá)到或者超過它們被指定工作的溫度上限。利用這種熱傳感器90,當(dāng)這些溫度上限被達(dá)到時可以被檢測到,并且在這種情況下,轉(zhuǎn)移激勵可以被生成以觸發(fā)工作量向能量效率更高的處理電路轉(zhuǎn)移,從而導(dǎo)致數(shù)據(jù)處理系統(tǒng)的整體冷卻。因而,考慮圖I的示例,其中處理電路10是高性能處理電路且處理電路50是消耗較少能量的較低性能的處理電路,當(dāng)設(shè)備的溫度上限被達(dá)到時將工作量從處理電路10轉(zhuǎn)移到處理電路50將導(dǎo)致接下來設(shè)備的冷卻,同時仍然允許進(jìn)行連續(xù)的程序執(zhí)行,盡 管會有較低的吞吐量。雖然在圖I中兩個處理電路10,50被示出,但是應(yīng)當(dāng)理解上述實(shí)施例的技術(shù)也可以被應(yīng)用于包括兩個以上不同處理電路的系統(tǒng),允許數(shù)據(jù)處理系統(tǒng)有更大范圍的性能/能量水平的跨度。在這些實(shí)施例中,不同處理電路中的每一個將被安排為在體系結(jié)構(gòu)上彼此兼容以允許整個工作量在處理電路之間的妥當(dāng)轉(zhuǎn)移,但是也可以在微體系結(jié)構(gòu)上彼此不同以允許根據(jù)所需要的性能/能量水平在對那些處理電路的使用之間進(jìn)行選擇。圖3是圖示了在接收到轉(zhuǎn)移激勵之后工作量從源處理器被轉(zhuǎn)移到目標(biāo)處理器時在源處理器和目標(biāo)處理器上執(zhí)行的一系列步驟的流程圖。這種轉(zhuǎn)移激勵可以經(jīng)由系統(tǒng)固件接口由操作系統(tǒng)115或虛擬器120生成,導(dǎo)致在步驟200中源處理器(該處理器將不僅在運(yùn)行工作量,并且在運(yùn)行構(gòu)成切換控制器120的至少一部分的虛擬器軟件)檢測到該切換激勵。在步驟200中接收到轉(zhuǎn)移激勵(這里也被稱為切換激勵)將使得電力控制器65在目標(biāo)處理器上起動加電和重置操作205。在該加電和重置操作之后,目標(biāo)處理器將在步驟210中使其本地緩存無效,然后在步驟215中啟動偵查。此時,目標(biāo)處理器將用信號告知源處理器其已準(zhǔn)備好進(jìn)行工作量的轉(zhuǎn)移,該信號使得源處理器在步驟225中執(zhí)行保存狀態(tài)操作。該保存狀態(tài)操作將在后面參考圖4A進(jìn)行更詳細(xì)的論述,但是在一個實(shí)施例中保存狀態(tài)操作涉及源處理電路將其當(dāng)前體系結(jié)構(gòu)狀態(tài)中任意在移交操作被起動時不能從共享存儲器中獲取且對于目標(biāo)處理電路成功接管對工作量的執(zhí)行而言必需的狀態(tài)存儲到其本地緩存中。在保存狀態(tài)操作225之后,切換狀態(tài)信號將被發(fā)給目標(biāo)處理器230,向目標(biāo)處理器指示其現(xiàn)在應(yīng)該開始偵查源處理器以獲取所需要的體系結(jié)構(gòu)狀態(tài)。該過程通過恢復(fù)狀態(tài)操作230進(jìn)行,該恢復(fù)狀態(tài)操作將在后面參考圖4B進(jìn)行更詳細(xì)的論述,但是在一個實(shí)施例中,恢復(fù)狀態(tài)操作涉及目標(biāo)處理電路起動一系列訪問,這些訪問被在互連70內(nèi)的偵查控制單元75截獲,并且使得在源處理器的本地緩存中緩存的體系結(jié)構(gòu)狀態(tài)的拷貝被獲取并返回給目標(biāo)處理器。在步驟230之后,目標(biāo)處理器就能夠接管對工作量的執(zhí)行了,因此在步驟235中常規(guī)操作開始。在一個實(shí)施例中,一旦在目標(biāo)處理器上常規(guī)操作開始,源處理器的緩存就可以被清除了,如步驟250中所示,從而將任何臟數(shù)據(jù)都刷新到共享存儲器80中,然后在步驟255中源處理器可以被關(guān)閉電源。然而,在一個實(shí)施例中,為了進(jìn)一步提高目標(biāo)處理器的效率,源處理器被安排為在一段時間內(nèi)保持加電,該段時間在圖3中被稱為偵查時段。在這個時段中,源電路的緩存中的至少一個保持加電,以使得其內(nèi)容可以被偵查控制電路75響應(yīng)于目標(biāo)處理器所發(fā)布的訪問請求進(jìn)行偵查。在利用圖3中所述的過程轉(zhuǎn)移整個工作量之后,預(yù)期至少在最初的一段時間內(nèi)(在該段時間之后目標(biāo)處理器開始對工作量的執(zhí)行),工作量的執(zhí)行期間所需要的數(shù)據(jù)中的一些將保留在源處理器的緩存中。如果源處理器已經(jīng)將其內(nèi)容刷新到存儲器中并且已經(jīng)被關(guān)閉電源,則目標(biāo)處理器在這些早期階段將相對低效率地操作,這是因?yàn)樵谄浔镜鼐彺嬷锌赡苡写罅康木彺嫒笔?,并且大量地從共享存儲器中獲取數(shù)據(jù),導(dǎo)致在目標(biāo)處理器的緩存“熱起來”(即填充了目標(biāo)處理器電路執(zhí)行工作量所指定的操作所需要的數(shù)據(jù)值)的同時有很大的性能影響。然而,通過在偵查時段中保持源處理器的緩存加電,偵查控制電路75將能夠參考源電路的緩存為大量的這些緩存缺失請求提供服務(wù),與從共享存儲器80中獲取數(shù)據(jù)相比具有很大的性能優(yōu)勢。 然而,這個性能優(yōu)勢只能期望在切換之后持續(xù)一段特定的時間,在切換之后源處理器的緩存的內(nèi)容將變?yōu)闊o效。因此,在某個時間點(diǎn)處,偵查停止事件將在步驟245中被生成以禁止偵查,之后在步驟250中源處理器的緩存將被清除,然后在步驟255中源處理器將被關(guān)閉電源。關(guān)于偵查停止事件可能被生成的各種情境的討論將在后面參考圖6G進(jìn)行更詳細(xì)的論述。圖4A示意性地圖示了根據(jù)一個實(shí)施例在圖3中的步驟225處執(zhí)行的保存操作。具體而言,在一個實(shí)施例中,需要從源處理電路300被存儲到本地緩存330中的體系結(jié)構(gòu)狀態(tài)由寄存器文件310的內(nèi)容以及各個專用寄存器320的內(nèi)容構(gòu)成,所述寄存器文件310在數(shù)據(jù)處理操作的執(zhí)行期間被算術(shù)邏輯單元(ALU) 305參考,所述各個專用寄存器320標(biāo)識工作量所需要的各條信息以成功使工作量能被目標(biāo)處理電路接管。專用寄存器320的內(nèi)容將包括例如標(biāo)識當(dāng)前被執(zhí)行的指令的程序計(jì)數(shù)器值以及各種其它信息。例如,其它專用寄存器包括保存針對處理器模式、中斷屏蔽、執(zhí)行狀態(tài)和標(biāo)記的控制位的處理器狀態(tài)寄存器(例如,ARM體系結(jié)構(gòu)中的CPSR和SPSR)。其它專用寄存器包括保存改變數(shù)據(jù)字節(jié)排序、開關(guān)MMU、開關(guān)數(shù)據(jù)/指令緩存等的位的體系結(jié)構(gòu)控制(ARM體系結(jié)構(gòu)中的CP15系統(tǒng)控制寄存器)。CP15中的其它專用寄存器存儲異常地址和狀態(tài)信息。如圖4A中示意性圖示的,源處理電路300通常還保存一些處理器專用配置信息315,但是這個信息不需要保存到緩存330中,這是因?yàn)槠洳豢蓱?yīng)用于目標(biāo)處理電路。處理器專用配置信息315通常利用邏輯常量被硬編碼在源處理電路300中,并且可以包括例如CP15處理器ID寄存器的內(nèi)容(該內(nèi)容對于每個處理電路而言是不同的)或者CP15緩存類型寄存器的內(nèi)容(該內(nèi)容將取決于緩存25,30,60的配置,例如指示緩存具有不同的緩存行長度)。當(dāng)操作系統(tǒng)115需要一項(xiàng)處理器專用配置信息315時,那么除非處理器已經(jīng)處于管理程序模式(hypervisor mode),否則到管理程序模式的執(zhí)行陷講(execution trap)發(fā)生。作為響應(yīng),在一個實(shí)施例中,虛擬器120可以指出被請求的信息的值,但是在另一實(shí)施例中將返回“虛擬”值。在處理器ID值的情況下,這個虛擬值可以被選擇為對于“大”和“小”處理器來說是相同的,從而使得實(shí)際的硬件配置通過虛擬器120對操作系統(tǒng)115隱藏。如圖4A中示意性圖示的,在保存操作期間,寄存器文件310和專用寄存器320的內(nèi)容被源處理電路存儲到緩存330中以形成緩存拷貝335。然后,該緩存拷貝被標(biāo)記為可共享的,這允許目標(biāo)處理器經(jīng)由偵查控制單元75偵查該狀態(tài)。隨后在目標(biāo)處理器上執(zhí)行的恢復(fù)操作在圖4B中被示意性地示出。具體而言,目標(biāo)處理電路350 (該電路可以有或沒有其自己的本地緩存)將發(fā)布針對體系結(jié)構(gòu)狀態(tài)的特定項(xiàng)的請求,該請求被偵查控制單元75截獲。然后,偵查控制單元向源處理電路的本地緩存330發(fā)布偵查請求以確定所述體系結(jié)構(gòu)狀態(tài)的該項(xiàng)是否存在于源處理電路的緩存中。因?yàn)樵趫D4A中所討論的保存操作期間所進(jìn)行的步驟,命中將在源處理電路的緩存330中被檢測至IJ,導(dǎo)致被緩存的體系結(jié)構(gòu)狀態(tài)經(jīng)由偵查控制單元75被返回給目標(biāo)處理電路350。該過程可以被來回重復(fù)一直到體系結(jié)構(gòu)狀態(tài)的所有項(xiàng)都已經(jīng)由對源處理電路的緩存的偵查被獲取為止。與目標(biāo)處理電路350相關(guān)的任意處理器專用配置信息通常被硬編碼在目標(biāo)處理電路350中,如前所述。因此,一旦恢復(fù)操作已完成,目標(biāo)處理電路就擁有了使其能夠成功接 管對工作量的處理所需要的全部信息。此外,在一個實(shí)施例中,不管工作量100是在被“大”處理電路10還是被“小”處理電路50執(zhí)行,虛擬器120都向操作系統(tǒng)115提供具有相同值的虛擬配置信息,所以“大”和“小”處理電路10,50之間的硬件差異被通過虛擬器120對操作系統(tǒng)115屏蔽起來。這意味著操作系統(tǒng)115不知道工作量100的執(zhí)行已被轉(zhuǎn)移到不同的硬件平臺。根據(jù)參考圖4A和4B描述的保存和恢復(fù)操作,各個處理器實(shí)例10,50被安排為具有彼此相一致的硬件緩存,以減少在將體系結(jié)構(gòu)狀態(tài)從源處理器傳送給目標(biāo)處理器中所涉及的時間量、能量以及硬件復(fù)雜度。該技術(shù)利用源處理器的本地緩存來存儲必須從源處理器轉(zhuǎn)移到目標(biāo)處理器的在轉(zhuǎn)移操作發(fā)生時不能從共享存儲器中獲得的所有狀態(tài)。因?yàn)闋顟B(tài)在源處理器的緩存內(nèi)被標(biāo)記為可共享的,所以這允許硬件緩存一致的目標(biāo)處理器能夠在轉(zhuǎn)移操作期間偵查所述狀態(tài)。利用這種技術(shù),可以在處理器實(shí)例之間轉(zhuǎn)移狀態(tài),而不需要將該狀態(tài)保存到主存儲器或者本地存儲器映射的存儲單元中。因而,這會帶來很大的性能和能耗方面的好處,增加了適合于切換工作量以尋求實(shí)現(xiàn)能耗優(yōu)勢的各種情形。然而,雖然上述利用緩存一致性的技術(shù)提供了一種加速機(jī)制,用于在不需要經(jīng)由共享存儲器來路由當(dāng)前體系結(jié)構(gòu)狀態(tài)的情況下使得當(dāng)前體系結(jié)構(gòu)狀態(tài)可用于目標(biāo)處理器,但是這不是這種加速機(jī)制可以實(shí)現(xiàn)的唯一方式。例如,圖5圖示了一種替代機(jī)制,其中專用總線380被設(shè)置在源處理電路300和目標(biāo)處理電路350之間以允許體系結(jié)構(gòu)狀態(tài)在移交操作期間被轉(zhuǎn)移。因而,在這種實(shí)施例中,圖3的保存和恢復(fù)操作225,230用利用專用總線380的替代轉(zhuǎn)移機(jī)制來代替。雖然這種方法通常比利用緩存一致性方法有更高的硬件成本(緩存一致性方法通常利用已經(jīng)在數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件),但是該方法將提供一種更加快速的執(zhí)行切換的方式,這在某些實(shí)現(xiàn)方式中可能是有利的。圖6A到61示意性地圖示了被執(zhí)行用來將對工作量的執(zhí)行從源處理電路300轉(zhuǎn)移到目標(biāo)處理電路350的一系列步驟。源處理電路300是處理電路10,50中在轉(zhuǎn)移之前正在執(zhí)行工作量的任一處理電路,而目標(biāo)處理電路則是處理電路10,50中的另一處理電路。圖6A示出了在初始狀態(tài)下的系統(tǒng),其中源處理電路300被電力控制器65供電并且正在執(zhí)行處理工作量100,而目標(biāo)處理電路350處于省電狀態(tài)。在該實(shí)施例中,省電狀態(tài)是斷電狀態(tài),但是如上所述,其它類型的省電狀態(tài)也可以被使用。包括應(yīng)用105,110和用于運(yùn)行應(yīng)用105,110的操作系統(tǒng)115的工作量100被虛擬器120從源處理電路300的硬件平臺提取出來。在執(zhí)行工作量100的同時,源處理電路300維護(hù)體系結(jié)構(gòu)狀態(tài)400,該體系結(jié)構(gòu)狀態(tài)可以包括例如寄存器文件310和專用寄存器320的內(nèi)容,如圖4A中所示。在圖6B中,轉(zhuǎn)移激勵430被虛擬器120檢測到。雖然轉(zhuǎn)移激勵430在圖6B中被顯示為外部事件(例如熱傳感器90檢測到熱超標(biāo)),但是轉(zhuǎn)移激勵430也可以是由虛擬器120本身或者由操作系統(tǒng)115觸發(fā)的事件(例如操作系統(tǒng)115可以被配置為當(dāng)特定類型的應(yīng)用要被處理時通知虛擬器120)。虛擬器120通過控制電力控制器65向目標(biāo)處理電路350提供電力來對轉(zhuǎn)移激勵430做出響應(yīng),以將目標(biāo)處理電路350置于加電狀態(tài)。在圖6C中,目標(biāo)處理電路350開始執(zhí)行虛擬器120。虛擬器120控制目標(biāo)處理電路350來無效其緩存420,從而防止在對目標(biāo)處理電路350加電時可能存在于緩存420中的錯誤數(shù)據(jù)值所引起的處理錯誤。在目標(biāo)緩存420被無效的同時,源處理電路300繼續(xù)執(zhí)行工作量100。當(dāng)目標(biāo)緩存420的無效完成時,虛擬器120控制目標(biāo)處理電路350以用信號告知源處理電路300 :目標(biāo)處理電路350已經(jīng)準(zhǔn)備好接管工作量100。通過繼續(xù)在源處理電 路300上處理工作量100 —直到目標(biāo)處理電路350準(zhǔn)備好移交操作,可以減少移交對性能的影響。在接下來的階段中,如圖6D中所示,源處理電路300停止執(zhí)行工作量100。在此階段期間,源處理電路300和目標(biāo)處理電路350都不執(zhí)行工作量100。體系結(jié)構(gòu)狀態(tài)400的拷貝從源處理電路300被傳送給目標(biāo)處理電路350。例如,體系結(jié)構(gòu)狀態(tài)400可以被保存到源緩存410中并且被返回給目標(biāo)處理電路350,如圖4A和4B中所示,或者可以如圖5中所示通過專用總線來傳送。體系結(jié)構(gòu)狀態(tài)400包括除已經(jīng)存在于共享存儲器80中的信息以外的目標(biāo)處理電路250執(zhí)行工作量100所需要的全部狀態(tài)信息。在將體系結(jié)構(gòu)狀態(tài)400轉(zhuǎn)移給目標(biāo)處理電路350之后,源處理電路300被電力控制電路65置于省電狀態(tài)(參考圖6E),例外的是源緩存410保持加電狀態(tài)。同時,目標(biāo)處理電路350開始利用被轉(zhuǎn)移來的體系結(jié)構(gòu)狀態(tài)400執(zhí)行工作量100。當(dāng)目標(biāo)處理電路350開始處理工作量100時,偵查時段開始(參考圖6F)。在偵查時段中,偵查控制單元75可以代表目標(biāo)處理電路350偵查存儲在源緩存410中的數(shù)據(jù)并獲取數(shù)據(jù)。當(dāng)目標(biāo)處理電路350請求不存在于目標(biāo)緩存420中的數(shù)據(jù)時,目標(biāo)處理電路350請求來自偵查控制單元75的數(shù)據(jù)。然后,偵查控制單元75偵查源緩存410,并且如果偵查導(dǎo)致緩存命中,則偵查控制單元75從源緩存410中獲取所偵查的數(shù)據(jù)并將其返回給目標(biāo)處理電路350,其中所偵查的數(shù)據(jù)可被存儲在目標(biāo)緩存420中。另一方面,如果偵查導(dǎo)致源緩存410中的緩存缺失,則被請求的數(shù)據(jù)從共享存儲器80中被獲取并被返回給目標(biāo)處理電路350。因?yàn)閷υ淳彺?10中的數(shù)據(jù)的訪問比訪問共享存儲器80更快并且需要更少的能量,所以在一段時間內(nèi)偵查源緩存410在工作量100移交到目標(biāo)處理電路350之后的最初時段中提高了處理性能并且減少了能耗。在圖6G中所示的步驟中,偵查控制單元75檢測到偵查停止事件,該事件指示將源緩存410保持在加電狀態(tài)已經(jīng)不再是高效的了。偵查停止事件觸發(fā)偵查時段的結(jié)束。該偵查停止事件可以是被偵查控制電路75監(jiān)控的一組偵查停止事件中的任意一個。例如,這組偵查停止事件可以包括以下事件中的任意一個或多個
(a)當(dāng)在目標(biāo)處理電路350已經(jīng)開始執(zhí)行工作量100之后導(dǎo)致源緩存410內(nèi)的緩存命中的偵查命中的百分比或比例(即,與偵查命中的數(shù)目/總偵查的數(shù)目成比例的量)降到預(yù)定的閾值水平以下時;(b)當(dāng)從目標(biāo)處理電路350開始執(zhí)行工作量100起被執(zhí)行的事務(wù)的數(shù)目或者預(yù)定類型的事務(wù)(例如,可緩存事務(wù))的數(shù)目超過預(yù)定閾值時;(c)當(dāng)從目標(biāo)處理電路350開始執(zhí)行工作量100起經(jīng)過的處理周期的數(shù)目超過預(yù)定閾值時;(d)當(dāng)從目標(biāo)處理電路350開始執(zhí)行工作量100起共享存儲器80的特定區(qū)域第一次被訪問時;(e)當(dāng)共享存儲器80中在目標(biāo)處理電路350開始執(zhí)行工作量100之后的最初時段內(nèi)被訪問的特定區(qū)域在預(yù)定數(shù)目的周期或預(yù)定的時間段內(nèi)未被訪問時;
(f)當(dāng)目標(biāo)處理電路350在開始執(zhí)行被轉(zhuǎn)移來的工作量100起第一次向預(yù)定的存儲器位置寫入時。這些偵查停止事件可以利用在包括偵查控制單元75的一致性互連70中的可編程計(jì)數(shù)器被檢測到。其它類型的偵查停止事件也可以被包括在這組偵查停止事件中。在檢測到偵查停止事件時,偵查控制單元75向源處理器300發(fā)送偵查停止信號440。偵查控制單元75停止偵查源緩存410并且從此刻開始通過從共享存儲器80中獲取被請求數(shù)據(jù)并將所獲取的數(shù)據(jù)返回給目標(biāo)處理電路350對來自目標(biāo)處理電路350的數(shù)據(jù)訪問請求做出響應(yīng),所獲取的數(shù)據(jù)可以被緩存在目標(biāo)處理電路350中。在圖6H中,源緩存的控制電路響應(yīng)于偵查停止信號440清除緩存410,以將任何有效的臟數(shù)據(jù)值(即,其被緩存的值比共享存儲器80中的相應(yīng)值更新)保存到共享存儲器80中。在圖61中,源緩存410隨后被電力控制器65關(guān)掉電源以使得源處理電路300整個處于省電狀態(tài)。目標(biāo)處理電路繼續(xù)執(zhí)行工作量100。從操作系統(tǒng)115的角度看,現(xiàn)在的情況與圖6A中一樣。操作系統(tǒng)115不知道工作量的執(zhí)行從一個處理電路轉(zhuǎn)移到了另一處理電路。當(dāng)另一轉(zhuǎn)移激勵發(fā)生時,則圖6A到61的相同步驟可被用于將工作量的執(zhí)行切換回第一處理器(在這種情況下,處理電路10,50中誰是“源處理電路”誰是“目標(biāo)處理電路”將被反過來)。在圖6A到61的實(shí)施例中,對緩存410和源處理電路300的獨(dú)立電源控制是可實(shí)現(xiàn)的,使得一旦目標(biāo)處理電路350開始執(zhí)行工作量以后除了源緩存410以外的源處理電路300可以被關(guān)閉電源(如圖6E),而只有源處理電路300的緩存410保持在加電狀態(tài)(如圖6F到6H)。然后在圖61中,源緩存410被關(guān)閉電源。這種方法對于節(jié)省能量來說是有用的,尤其當(dāng)源處理電路300是“大”處理電路10時。然而,也可以在偵查時段中繼續(xù)對整個源處理電路300加電,然后在偵查時段結(jié)束并且清除源緩存410之后將源處理電路300整個置于省電狀態(tài),如圖61。這在源緩存410與源處理器核心嵌入得太深以至于不能獨(dú)立地從源處理器核心供電的情況下可能是更有用的。當(dāng)源處理器為“小”處理電路50 (其功率消耗與“大”處理電路10相比不算大)時這種方法可能也是更實(shí)用的,因?yàn)橐坏按蟆碧幚黼娐?0開始處理被轉(zhuǎn)移來的工作量100,則在偵查時段中將除緩存60以外的“小”處理電路50切換到省電狀態(tài)對系統(tǒng)的整體功率消耗的影響很小。這可能意味著向“小”處理電路50和“小”處理器核心的緩存60提供單獨(dú)功率控制的附加硬件復(fù)雜度可能是不合理的。在一些情況下,在工作量轉(zhuǎn)移之前可能知道當(dāng)目標(biāo)處理電路350開始執(zhí)行工作量100時源緩存410中所存儲的數(shù)據(jù)將不被目標(biāo)處理電路350所需要。例如,當(dāng)轉(zhuǎn)移發(fā)生時源處理電路300可能剛剛完成一個應(yīng)用,因此轉(zhuǎn)移時源緩存410中的數(shù)據(jù)與已完成的應(yīng)用有關(guān),而與轉(zhuǎn)移后目標(biāo)處理電路350所要執(zhí)行的應(yīng)用無關(guān)。在這種情況下,偵查撤消(override)控制器可以觸發(fā)虛擬器120和偵查控制電路75以撤消對源緩存410的偵查并且控制源處理電路300清除源緩存410并關(guān)掉其電源,而不等待偵查停止事件用信號告知偵查時段的結(jié)束。在這種情況下,圖6A到61的技術(shù)將從圖6E的步驟直接跳到圖6G的步驟,而不執(zhí)行其中數(shù)據(jù)從源緩存410中被偵查的圖6F的步驟。因而,如果提前知道源緩存410中的數(shù)據(jù)對于目標(biāo)處理電路350而言將不是有用的,則可以通過在不等待偵查停止事件的情況下將源緩存410和源處理電路300置于省電狀態(tài)來節(jié)省電源。偵查撤消控制器可以是虛擬器120的一部分,或者可以被實(shí)現(xiàn)為在源處理電路300上執(zhí)行的固件。偵查撤消控制器也可以被實(shí)現(xiàn)為元件的組合,例如當(dāng)應(yīng)用結(jié)束時操作系統(tǒng)115可以通知虛擬器120,并且如果轉(zhuǎn)移發(fā)生在應(yīng)用結(jié)束時,則虛擬器120可以撤消對源緩存410的偵查。
圖7是其中曲線600示出了能量消耗如何隨性能變化的曲線圖。對于該曲線圖的各個部分,數(shù)據(jù)處理系統(tǒng)可以被安排為利用圖I中所示的處理器核心15,20的不同組合,以尋求在性能和能耗之間獲得適當(dāng)?shù)臋?quán)衡。因而,例如當(dāng)大量非常高性能的任務(wù)需要被執(zhí)行時,可以運(yùn)行處理電路10的兩個大核心15,20以得到所希望的性能??蛇x地,電源電壓變化技術(shù)可被用于在利用這兩個核心時允許性能和能耗上的一些變化。當(dāng)性能要求降到只利用這些大核心中的一個就可以實(shí)現(xiàn)所需要的性能的水平時, 任務(wù)可以被轉(zhuǎn)移到大核心15,20中的一個上,另一個核心被關(guān)閉電源或者置于某種其它省電狀態(tài)中。同樣,當(dāng)利用這樣一個大核心時,電源電壓變化也可以被用來允許性能和能耗之間的某些變化。應(yīng)當(dāng)注意從兩個大核心轉(zhuǎn)移到一個大核心不需要生成轉(zhuǎn)移激勵,也不需要實(shí)用上述用于轉(zhuǎn)移工作量的技術(shù),因?yàn)闊o論怎樣都是處理電路10在被使用,而處理電路50將處于省電狀態(tài)。然而,如圖7中的虛線610所示,當(dāng)性能降至小核心能夠?qū)崿F(xiàn)所需要的性能的水平時,轉(zhuǎn)移激勵可以被生成以觸發(fā)上述用于將整個工作量從處理電路10轉(zhuǎn)移到處理電路50的機(jī)制,使得整個工作量運(yùn)行在小核心55上,而處理電路10被置于省電狀態(tài)。同樣,電源電壓變化可以被用于允許在小核心55的性能和能耗上的某些變化。圖8A和SB分別圖示了根據(jù)一個實(shí)施例的低性能處理器管線800與高性能處理器管線850之間的微體系結(jié)構(gòu)差異。圖8A的低性能處理器管線800將適合于圖I的小處理核心55,而圖8B的高性能處理器管線850將適合于大核心15,20。圖8A的低性能處理器管線800包括用于從存儲器80獲取指令的取指階段810、用于對所獲取的指令譯碼的譯碼階段820、用于發(fā)布供執(zhí)行的指令的發(fā)布階段830以及多個執(zhí)行管線,所述多個執(zhí)行管線包括用于執(zhí)行整數(shù)操作的整數(shù)管線840、用于執(zhí)行乘累加操作的MAC管線842以及用于執(zhí)行SMD (單一指令多數(shù)據(jù))操作或浮點(diǎn)操作的SMD/FPU管線844。在低性能處理器管線800中,發(fā)布階段830每次發(fā)布一個指令,并且按照指令被獲取的順序發(fā)布指令。圖SB的高性能處理器管線850包括用于從存儲器80獲取指令的取指階段860、用于對所獲取的指令譯碼的譯碼階段870、用于為譯碼后的指令中所指定的寄存器重命名的重命名階段875、用于派發(fā)供執(zhí)行的指令的派發(fā)階段880以及包括兩個整數(shù)管線890,892、MAC管線894和兩個SMD/FPU管線896,898的多個執(zhí)行管線。在高性能處理器管線850中,派發(fā)階段880是可以一次性向管線890,892,894,896,898中的不同管線發(fā)布多個指令的并行發(fā)布階段。派發(fā)階段880還可以亂序發(fā)布指令。與在低性能處理器管線800中不同,SMD/FPU管線896,898是可變長度的,這意味著通過SMD/FPU管線896,898進(jìn)行的操作可以被控制跳過某些階段。這種方法的優(yōu)點(diǎn)是如果多個執(zhí)行管線分別有不同的資源,則不需要人為地加長最短的管線以使其與最長的管線有相同的長度,但是反而需要邏輯來應(yīng)對不同管線所產(chǎn)生的結(jié)果的亂序特征(例如如果處理異常發(fā)生則要將一切按順序放回)。重命名階段875被提供用于將寄存器指示符映射到作為硬件平臺的實(shí)際寄存器的物理寄存器,所述寄存器指示符被包括在程序指令中并且標(biāo)識從編程者模式的角度看的特定體系結(jié)構(gòu)寄存器。重命名階段875使得與存在于微處理器的編程者模式視角內(nèi)的寄存器相比,更大的物理寄存器的集合被微處理器提供。這個更大的物理寄存器的集合在亂序執(zhí)行期間是有用的,因?yàn)樗ㄟ^將兩個或多個不同指令中所指定的相同體系結(jié)構(gòu)寄存器映 射到兩個或多個不同的物理寄存器而使得諸如寫后寫(WAW)危險(hazard)之類的危險被避免,從而使不同的指令可以被同時執(zhí)行。對于寄存器重命名技術(shù)的更多細(xì)節(jié),讀者可以參考同時擁有的美國專利申請US 2008/114966和美國專利7,590,826。低性能管線800和高性能管線850的微體系結(jié)構(gòu)在很多方面上是不同的。這些微體系結(jié)構(gòu)差異可以包括(a)管線具有不同的階段。例如,高性能管線850具有不存在于低性能管線800中的重命名階段875.(b)管線階段具有不同的功能。例如,低性能管線800的發(fā)布階段830只能夠發(fā)布單個指令,而高性能管線850的派發(fā)階段880可以并行地發(fā)布指令。并行發(fā)布提高了管線的處理吞吐量,從而提高了性能。(C)管線階段具有不同的長度。例如,高性能管線850的譯碼階段870可以包括三個子階段,而低性能管線800的譯碼階段820可只包括一個子階段。管線階段越長(子階段的數(shù)目越多),可以同時進(jìn)行的指令的數(shù)目就越多,從而管線可以工作的工作頻率就越大,導(dǎo)致更高的性能水平。(d)不同數(shù)目的執(zhí)行管線(例如高性能管線850比低性能管線800有更多的執(zhí)行管線)。通過提供更多的執(zhí)行管線,更多的指令可以被并行處理,從而性能被提高。(e)提供順序執(zhí)行(如管線800中)或亂序執(zhí)行(如管線850中)。當(dāng)指令可以被亂序執(zhí)行時,由于指令的執(zhí)行可以被動態(tài)調(diào)度以最優(yōu)化性能所以提高了性能。例如,在低性能順序管線800中,在后面的指令可以被整數(shù)管線840和SMD/浮點(diǎn)管線844中的一個執(zhí)行之前,一系列MAC指令需要一個一個地被MAC管線842執(zhí)行。作為對比,在高性能管線850中,MAC指令可以被MAC管線894執(zhí)行,同時(面臨不能通過重命名解決的數(shù)據(jù)危險)使用不同的執(zhí)行管線890,892,896,898的后面的指令可以與MAC指令并行地被執(zhí)行。這意味著亂序執(zhí)行可提高處理性能。這些及其它微體系結(jié)構(gòu)差異的示例導(dǎo)致管線850提供比管線800更高性能的處理。另一方面,微體系結(jié)構(gòu)差異也使得管線850比管線800消耗更多的能量。因此,提供微體系結(jié)構(gòu)不同的管線800,850使得對工作量的處理針對高性能(通過使用具有高性能管線850的“大”處理電路10)或高能量效率(通過使用具有低性能管線800的“小”處理電路50)被優(yōu)化。圖9示出了圖示出數(shù)據(jù)處理系統(tǒng)的功耗在對工作量100的執(zhí)行在大處理電路10和小處理電路50之間切換時的變化的曲線圖。在圖9的點(diǎn)A處,工作量100正在小處理電路50上被執(zhí)行,因而功耗較低。在點(diǎn)B處,轉(zhuǎn)移激勵發(fā)生,指示高強(qiáng)度處理要被執(zhí)行,所以對工作量的執(zhí)行被移交給大處理電路
10。然后,在點(diǎn)C處功耗增大并且保持高值,同時大處理電路10在執(zhí)行工作量。在點(diǎn)D處,假設(shè)兩個大核心在一起工作以處理工作量。然而,如果性能要求降到工作量可以僅用一個大核心來處理的水平,則工作量被轉(zhuǎn)移到僅一個大核心上,并且另一個大核心被關(guān)掉電源,如功率下降到臨近點(diǎn)E的水平所示。然而,在點(diǎn)E處,另一轉(zhuǎn)移激勵發(fā)生(指示需要返回到低強(qiáng)度處理)以觸發(fā)將對工作量的執(zhí)行轉(zhuǎn)移到小處理電路50。
當(dāng)小處理電路50開始處理處理工作量時,大處理電路的大部分處于省電狀態(tài),但是大處理電路10的緩存在偵查時段(圖9中的點(diǎn)F)中保持加電,以使得緩存中的數(shù)據(jù)被獲取用于小處理電路50。因而,大處理電路10的緩存使得在點(diǎn)F處的功耗比只有小處理電路50被加電的點(diǎn)A處的功耗要高。在偵查時段結(jié)束時,大處理電路10的緩存被關(guān)掉電源,并且在點(diǎn)G處功耗返回到只有小處理電路50有效時的較低水平。如上所述,在圖9中,由于大處理電路10的緩存在偵查時段中被加電,所以在點(diǎn)F處的偵查時段中功耗比在點(diǎn)G處要高。雖然這種功耗的增加被指示為只是在大到小轉(zhuǎn)換之后,但是在小到大轉(zhuǎn)換之后,也可以有偵查時段,在該時段中小處理電路50的緩存中的數(shù)據(jù)可以由偵查控制單元75代表大處理電路10進(jìn)行偵查。針對小到大轉(zhuǎn)換的偵查時段在圖9中未被示出,這是因?yàn)橥ㄟ^在偵查時段中將小處理電路50的緩存保持在加電狀態(tài)所消耗的功率與大處理電路10執(zhí)行處理工作量時所消耗的功率相比是很小的,所以由于小處理電路50的緩存被加電而造成的功耗的少量增加在圖9中的曲線圖中是看不到的。上述實(shí)施例描述了包含兩個或多個體系結(jié)構(gòu)兼容且具有針對能量效率或性能優(yōu)化的微體系結(jié)構(gòu)的處理器實(shí)例的系統(tǒng)。操作系統(tǒng)和應(yīng)用所需要的體系結(jié)構(gòu)狀態(tài)可以根據(jù)所需要的性能/能量水平在處理器實(shí)例之間被切換,以允許整個工作量在處理器實(shí)例之間切換。在一個實(shí)施例中,在任意給定時間處理器實(shí)例中只有一個在運(yùn)行工作量,而另一個處理實(shí)例處于省電狀態(tài)或者在進(jìn)入/退出省電狀態(tài)的過程中。在一個實(shí)施例中,處理器實(shí)例可以被安排為彼此硬件緩存一致,以減少在將體系結(jié)構(gòu)狀態(tài)從源處理器切換到目標(biāo)處理器的過程中所涉及的時間量、能量以及硬件復(fù)雜度。這減少了執(zhí)行切換操作的時間,增加了實(shí)施例的技術(shù)可被使用的機(jī)會。這些系統(tǒng)可以被用在能量效率對于電池壽命和/或熱管理來說非常重要的各種情況下,并且性能的擴(kuò)展使得更高能量效率的處理器可被用于較低的處理工作量,而較高性能的處理器可被用于較高的處理工作量。因?yàn)閮蓚€或多個處理實(shí)例在體系結(jié)構(gòu)上是兼容的,所以從應(yīng)用的角度來看,兩個處理器之間唯一的差異就是可得到的性能。通過一個實(shí)施例中的技術(shù),所有需要的體系結(jié)構(gòu)狀態(tài)可以在處理器之間移動而不需要涉及到操作系統(tǒng),使得關(guān)于操作系統(tǒng)和應(yīng)用在哪個處理器上運(yùn)行對于操作系統(tǒng)和運(yùn)行在操作系統(tǒng)上的應(yīng)用來說是透明的。
當(dāng)使用在以上實(shí)施例中所述的體系結(jié)構(gòu)兼容的處理器時,需要被轉(zhuǎn)移的全部體系結(jié)構(gòu)狀態(tài)可以很容易地放到數(shù)據(jù)緩存內(nèi),并且由于現(xiàn)在的處理系統(tǒng)通常實(shí)現(xiàn)緩存一致性,所以通過將要被切換的體系結(jié)構(gòu)狀態(tài)存儲到數(shù)據(jù)緩存內(nèi),目標(biāo)處理器可以快速地利用現(xiàn)有的電路結(jié)構(gòu)以高能量效率的方式偵查所述狀態(tài)。在一個所述實(shí)施例中,切換機(jī)制被用于確保針對數(shù)據(jù)處理系統(tǒng)的熱上限不被達(dá)至IJ。具體而言,當(dāng)熱上限快要達(dá)到時,整個工作量可以被切換到更高能量效率的處理器實(shí)例上,允許整個系統(tǒng)冷卻,同時繼續(xù)進(jìn)行程序執(zhí)行,盡管是有較低的吞吐量。雖然這里已經(jīng)描述了特定實(shí)施例,但是應(yīng)當(dāng)理解本發(fā)明并不限于此,并且很多對 本發(fā)明的修改和添加都可以在本發(fā)明的范圍內(nèi)被進(jìn)行。例如,后面的從屬權(quán)利要求的特征可以與獨(dú)立權(quán)利要求的特征進(jìn)行各種組合,而不脫離本發(fā)明的范圍。
權(quán)利要求
1.ー種數(shù)據(jù)處理裝置,包括 第一處理電路和第二處理電路,所述第一處理電路和第二處理電路被配置為執(zhí)行處理工作量以使得所述處理工作量在同一時間由所述第一處理電路和所述第二處理電路中的一個執(zhí)行; 電カ控制電路,用于獨(dú)立地控制向所述第一處理電路和所述第二處理電路的電力供應(yīng); 工作量轉(zhuǎn)移控制器,該工作量轉(zhuǎn)移控制器響應(yīng)于轉(zhuǎn)移激勵,控制對所述處理工作量的執(zhí)行在源處理電路被所述電カ控制電路置于省電狀態(tài)之前從所述源處理電路轉(zhuǎn)移到目標(biāo)處理電路,所述源處理電路是所述第一和第二處理電路中的一個處理電路且所述目標(biāo)處理電路是所述第一和第二處理電路中的另ー個處理電路;其中 至少所述源處理電路具有緩存; 所述電カ控制電路被配置為在所述目標(biāo)處理電路開始執(zhí)行被轉(zhuǎn)移的處理工作量之后的偵查時段中將至少所述源處理電路的所述緩存保持在加電狀態(tài); 所述數(shù)據(jù)處理裝置包括緩存?zhèn)刹殡娐?,該緩存?zhèn)刹殡娐繁慌渲脼樵谒鰝刹闀r段中偵查所述源處理電路的所述緩存中的數(shù)據(jù)值并為所述目標(biāo)處理電路獲取所述被偵查的數(shù)據(jù)值;并且 所述電カ控制電路被配置為在所述偵查時段結(jié)束之后將所述至少所述源處理電路的所述緩存置于所述省電狀態(tài)。
2.根據(jù)權(quán)利要求I所述的數(shù)據(jù)處理裝置,其中所述處理工作量包括至少ー個處理應(yīng)用和用于運(yùn)行所述至少一個處理應(yīng)用的至少ー個操作系統(tǒng)。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理裝置,其中所述工作量轉(zhuǎn)移控制器被配置為在所述轉(zhuǎn)移期間對所述至少ー個操作系統(tǒng)屏蔽預(yù)定的處理器專用配置信息以使得所述工作量的轉(zhuǎn)移對于所述至少ー個操作系統(tǒng)而言是透明的。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理裝置,其中所述工作量轉(zhuǎn)移控制器至少包括虛擬軟件,該虛擬軟件在邏輯上將所述至少ー個操作系統(tǒng)與所述第一處理電路和所述第二處理電路分開。
5.根據(jù)任一前述權(quán)利要求所述的數(shù)據(jù)處理裝置,其中所述第一處理電路在體系結(jié)構(gòu)上與所述第二處理電路兼容,以使得要由所述數(shù)據(jù)處理裝置執(zhí)行的處理工作量可以在所述第ー處理電路或者所述第二處理電路上被執(zhí)行。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)處理裝置,其中所述第一處理電路在微體系結(jié)構(gòu)上不同于所述第二處理電路,以使得所述第一處理電路的性能不同于所述第二處理電路的性能。
7.根據(jù)任一前述權(quán)利要求所述的數(shù)據(jù)處理裝置,其中所述目標(biāo)處理電路也包括緩存。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理裝置,其中通過所述緩存?zhèn)刹殡娐窞樗瞿繕?biāo)處理電路獲取的被偵查數(shù)據(jù)值被存儲在所述目標(biāo)處理電路的緩存中。
9.根據(jù)任一前述權(quán)利要求所述的數(shù)據(jù)處理裝置,其中所述電カ控制電路被配置為在所述偵查時段中將除所述源處理電路的緩存以外的所述源處理電路置于所述省電狀態(tài),并且在所述偵查時段結(jié)束之后將所述源處理電路的緩存置于所述省電狀態(tài)。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)處理裝置,其中所述源處理電路的緩存是所述源處理電路內(nèi)的緩存等級結(jié)構(gòu)中的一部分,并且在所述偵查時段中,所述緩存被保持在加電狀態(tài)中而所述緩存等級結(jié)構(gòu)中的至少ー個其它緩存處于省電狀態(tài)中。
11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)處理裝置,其中所述源處理電路的緩存是ニ級包含型緩存,該緩存被配置為存儲在所述緩存等級結(jié)構(gòu)的至少ー個一級緩存中存儲的全部數(shù)據(jù)。
12.根據(jù)權(quán)利要求I至8中的任ー權(quán)利要求所述的數(shù)據(jù)處理裝置,其中所述電カ控制電路被配置為在所述偵查時段中將所述源處理電路保持在所述加電狀態(tài),并且在所述偵查時段結(jié)束之后將包括所述源處理電路的緩存在內(nèi)的所述源處理電路置于所述省電狀態(tài)。
13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)處理裝置,其中所述源處理電路的緩存是ー級緩存。
14.根據(jù)任一前述權(quán)利要求所述的數(shù)據(jù)處理裝置,其中所述源處理電路被配置為在所述偵查時段結(jié)束之后并且在所述電カ控制電路將所述源處理電路的緩存置于所述省電狀態(tài)之前,對所述源處理電路的緩存執(zhí)行清除操作以將來自所述緩存的任意臟數(shù)據(jù)寫回共享存儲器中。
15.根據(jù)任一前述權(quán)利要求所述的數(shù)據(jù)處理裝置,其中所述目標(biāo)處理電路在所述轉(zhuǎn)移激勵發(fā)生之前處于所述省電狀態(tài),并且所述電カ控制電路被配置為響應(yīng)于所述轉(zhuǎn)移激勵將所述目標(biāo)處理電路置于所述加電狀態(tài)。
16.根據(jù)權(quán)利要求7的任一前述從屬權(quán)利要求所述的數(shù)據(jù)處理裝置,其中所述目標(biāo)處理電路被配置為在所述目標(biāo)處理電路開始執(zhí)行所述被轉(zhuǎn)移的處理工作量之前使所述目標(biāo)處理電路的緩存無效。
17.根據(jù)權(quán)利要求16所述的數(shù)據(jù)處理裝置,其中所述源處理電路被配置為在所述目標(biāo)處理電路的緩存被無效的同時繼續(xù)執(zhí)行所述處理工作量,并且所述工作量轉(zhuǎn)移控制器被配置為在所述目標(biāo)處理電路的緩存已被無效之后將對所述處理工作量的執(zhí)行轉(zhuǎn)移到所述目標(biāo)處理電路。
18.根據(jù)任一前述權(quán)利要求所述的數(shù)據(jù)處理裝置,其中當(dāng)所述目標(biāo)處理電路開始執(zhí)行所述處理工作量時所述偵查時段開始。
19.根據(jù)任一前述權(quán)利要求所述的數(shù)據(jù)處理裝置,其中在包括至少ー個偵查停止事件的一組偵查停止事件中的任ー個發(fā)生時所述偵查時段結(jié)束。
20.根據(jù)權(quán)利要求19所述的數(shù)據(jù)處理裝置,其中所述緩存?zhèn)刹殡娐繁慌渲脼楸O(jiān)控是否有所述ー組偵查停止事件中的任ー個事件已發(fā)生。
21.根據(jù)權(quán)利要求19所述的數(shù)據(jù)處理裝置,其中所述至少一個偵查停止事件包括當(dāng)導(dǎo)致所述源處理電路的緩存中的緩存命中的由所述緩存?zhèn)刹殡娐穲?zhí)行的偵查的百分比降到預(yù)定的閾值水平以下時發(fā)生的事件。
22.根據(jù)權(quán)利要求19所述的數(shù)據(jù)處理裝置,其中所述至少一個偵查停止事件包括當(dāng)所述目標(biāo)處理電路完成預(yù)定數(shù)目的預(yù)定類型的處理事務(wù)時發(fā)生的事件。
23.根據(jù)權(quán)利要求19所述的數(shù)據(jù)處理裝置,其中所述至少一個偵查停止事件包括在所述目標(biāo)處理電路開始執(zhí)行被轉(zhuǎn)移來的處理工作量之后經(jīng)過了預(yù)定數(shù)目的處理周期時發(fā)生的事件。
24.根據(jù)權(quán)利要求19所述的數(shù)據(jù)處理裝置,包括在所述第一和第二處理電路之間共享的共享存儲器; 其中所述至少一個偵查停止事件包括在開始執(zhí)行被轉(zhuǎn)移來的處理工作量之后所述目標(biāo)處理電路第一次訪問所述共享存儲器的特定存儲器區(qū)域時發(fā)生的事件。
25.根據(jù)權(quán)利要求19所述的數(shù)據(jù)處理裝置,包括在所述第一和第二處理電路之間共享的共享存儲器; 其中所述至少一個偵查停止事件包括當(dāng)所述目標(biāo)處理電路在開始執(zhí)行被轉(zhuǎn)移來的處理工作量之后的最初時段內(nèi)所訪問的所述共享存儲器的特定存儲器區(qū)域在預(yù)定的時段內(nèi)未被所述目標(biāo)處理電路訪問時發(fā)生的事件。
26.根據(jù)權(quán)利要求19所述的數(shù)據(jù)處理裝置,包括在所述第一和第二處理電路之間共享的共享存儲器; 其中所述至少一個偵查停止事件包括當(dāng)所述目標(biāo)處理電路在開始執(zhí)行被轉(zhuǎn)移來的處理工作量之后第一次向所述共享存儲器的預(yù)定存儲器位置寫入時發(fā)生的事件。
27.根據(jù)任一前述權(quán)利要求所述的數(shù)據(jù)處理裝置,包括偵查撤消控制器,該偵查撤消控 制器響應(yīng)于偵查撤消條件撤消所述緩存?zhèn)刹殡娐穼λ鲈刺幚黼娐返木彺娴膫刹?,并且控制所述電カ控制電路在對所述處理工作量的?zhí)行轉(zhuǎn)移之后將包括緩存在內(nèi)的所述源處理電路置于所述省電狀態(tài),而不等待所述偵查時段的結(jié)束。
28.根據(jù)權(quán)利要求27所述的數(shù)據(jù)處理裝置,其中所述偵查撤消條件發(fā)生在所述源處理電路的緩存不被所述目標(biāo)處理電路為了執(zhí)行所述被轉(zhuǎn)移來的處理工作量而需要吋。
29.根據(jù)任一前述權(quán)利要求所述的數(shù)據(jù)處理裝置,其中所述緩存?zhèn)刹殡娐钒ū获罱拥剿龅谝惶幚黼娐泛退龅诙幚黼娐返囊恢禄ミB。
30.ー種數(shù)據(jù)處理裝置,包括 用于執(zhí)行處理的第一處理裝置和用于執(zhí)行處理的第二處理裝置,所述第一處理裝置和第二處理裝置被配置為執(zhí)行處理工作量以使得所述處理工作量在同一時間由所述第一處理裝置和所述第二處理裝置中的一個執(zhí)行; 電カ控制裝置,用于獨(dú)立地控制向所述第一處理裝置和所述第二處理裝置的電カ供應(yīng); 工作量轉(zhuǎn)移控制裝置,用于響應(yīng)于轉(zhuǎn)移激勵,控制對所述處理工作量的執(zhí)行在源處理裝置被所述電カ控制裝置置于省電狀態(tài)之前從所述源處理裝置轉(zhuǎn)移到目標(biāo)處理裝置,所述源處理裝置是所述第一和第二處理裝置中的一個處理裝置且所述目標(biāo)處理裝置是所述第一和第二處理裝置中的另ー個處理裝置;其中 至少所述源處理裝置具有用于存儲被緩存的數(shù)據(jù)值的緩存裝置; 所述電カ控制裝置被配置為在所述目標(biāo)處理裝置開始執(zhí)行被轉(zhuǎn)移的處理工作量之后的偵查時段中將至少所述源處理裝置的所述緩存裝置保持在加電狀態(tài); 所述數(shù)據(jù)處理裝置包括緩存?zhèn)刹檠b置,該緩存?zhèn)刹檠b置用于在所述偵查時段中偵查所述源處理裝置的所述緩存裝置中的數(shù)據(jù)值并為所述目標(biāo)處理裝置獲取被偵查的數(shù)據(jù)值;并且 所述電カ控制裝置被配置為在所述偵查時段結(jié)束之后將所述至少所述源處理裝置的所述緩存裝置置于所述省電狀態(tài)。
31.一種用于包括第一處理電路和第二處理電路的裝置的數(shù)據(jù)處理方法,所述第一和第二處理電路被配置為執(zhí)行處理工作量以使得所述處理工作量在同一時間被所述第一處 理電路和所述第二處理電路中的一個執(zhí)行;該方法包括 利用源處理電路執(zhí)行所述處理工作量,所述源處理電路為所述第一和第二處理電路中的一個并且包括緩存,所述第一和第二處理電路中的另ー個為目標(biāo)處理電路; 響應(yīng)于轉(zhuǎn)移激勵,在所述源處理電路被置于省電狀態(tài)之前將對所述處理工作量的執(zhí)行從所述源處理電路轉(zhuǎn)移到所述目標(biāo)處理電路; 在所述目標(biāo)處理電路對被轉(zhuǎn)移來的處理工作量的執(zhí)行開始之后的偵查時段中將至少所述源處理電路的緩存保持在加電狀態(tài); 在所述偵查時段中,偵查所述源處理電路的緩存中的數(shù)據(jù)值并為所述目標(biāo)處理電路獲取被偵查的數(shù)據(jù)值;并且 在所述偵查時段結(jié)束之后將所述至少所述源處理電路的所述緩存置于所述省電狀態(tài)。
32.ー種數(shù)據(jù)處理裝置,包括 第一處理電路和第二處理電路,所述第一處理電路和第二處理電路被配置為執(zhí)行處理工作量以使得所述處理工作量在同一時間被所述第一處理電路和所述第二處理電路中的一個執(zhí)行; 工作量轉(zhuǎn)移控制器,該工作量轉(zhuǎn)移控制器響應(yīng)于轉(zhuǎn)移激勵,控制對所述處理工作量的執(zhí)行在源處理電路被電カ控制電路置于省電狀態(tài)之前從所述源處理電路轉(zhuǎn)移到目標(biāo)處理電路,所述源處理電路是所述第一和第二處理電路中的ー個處理電路且所述目標(biāo)處理電路是所述第一和第二處理電路中的另ー個處理電路;其中 至少所述目標(biāo)處理電路具有緩存; 所述目標(biāo)處理電路被配置為在所述目標(biāo)處理電路開始執(zhí)行被轉(zhuǎn)移來的處理工作量之前無效所述目標(biāo)處理電路的緩存; 所述源處理電路被配置為在所述目標(biāo)處理電路的緩存正被無效時繼續(xù)執(zhí)行所述處理工作量;并且 所述工作量轉(zhuǎn)移控制器被配置為在所述目標(biāo)處理電路的緩存已被無效之后將對所述處理工作量的執(zhí)行轉(zhuǎn)移到所述目標(biāo)處理電路。
全文摘要
響應(yīng)于轉(zhuǎn)移激勵,對處理工作量的執(zhí)行從源處理電路被轉(zhuǎn)移到目標(biāo)處理電路,為源處理電路在轉(zhuǎn)移之后被置于省電狀態(tài)做準(zhǔn)備。為了減少在轉(zhuǎn)移之后目標(biāo)處理電路所需要進(jìn)行的存儲器數(shù)據(jù)獲取的數(shù)目,源處理電路的緩存在偵查時段內(nèi)被保持在加電狀態(tài)。在偵查時段中,緩存?zhèn)刹殡娐穫刹樵淳彺嬷械臄?shù)據(jù)值并獲取偵查的數(shù)據(jù)值用于目標(biāo)處理電路。
文檔編號G06F1/32GK102804103SQ201180012192
公開日2012年11月28日 申請日期2011年2月17日 優(yōu)先權(quán)日2010年3月1日
發(fā)明者彼得·理查德·格林哈爾格 申請人:Arm有限公司