新四季網

用於在源和目標處理電路間轉移工作量的數據處理裝置和方法

2023-09-12 11:00:05 2

專利名稱:用於在源和目標處理電路間轉移工作量的數據處理裝置和方法
技術領域:
本發明涉及用於在第一和第二處理電路之間切換工作量的數據處理裝置和方法,並且具體涉及用於提高切換之後工作量的處理性能的技木。
背景技術:
在當今的數據處理系統中,諸如遊戲操作之類的高強度任務和諸如MP3播放之類的低強度任務之間的性能需求差異可能超過100:1的比率。對於要被用於所有任務的ー個處理器而言,該處理器將必須是高性能的,但是處理器微結構的公理是高性能的處理器比低性能處理器的能量效率低。公知可以利用諸如動態電壓和頻率縮放(DVFS)或功率門控之類的技術為處理器提供一定範圍的性能水平和相應的能量消耗特 性,從而提高處理器層的能量效率。然而,這些技術普遍變得不足以允許單個處理器承接具有如此分散性能需求的任務。因此,已經考慮使用多核體系結構來提供用於執行這些不同任務的能量高效系統。雖然具有多個處理器核心的系統被用於提高性能已有一段時間了,這些系統通過允許不同的核心並行地工作於不同的任務上來提高吞吐量,但是關於這些系統如何被用於提高能量效率的分析還是相對近期的發展方向。V Kumar 等的文章「Towards Better Performance Per Watt in VirtualEnvironments on Asymmetric Single-ISA Multi-Core Systems」, ACM SIGOPS OperatingSystems Review,第43卷,第3期(2009年7月)討論了不對稱單一指令集體系結構(ASISA)多核系統,該系統由面向相同的指令集體系結構(ISA)但在特徵、複雜度、功耗和性能方面不同的若干個核心構成。在這篇文章中,虛擬工作量的屬性被研究以了解這些工作量應該怎樣在ASISA系統上被調度,從而提高性能和能量消耗。這篇文章認定某些任務更適用於高頻率/性能的微體系結構(通常是計算密集型任務),而其它任務則更適合於較低頻率/性能的微體系結構並且作為副效應將消耗更少的能量(通常是輸入/輸出密集型任務)。雖然這些研究掲示了 ASISA系統可以怎樣被用於以能量高效的方式運行各種任務,但是仍然需要提供一種用於將各個任務調度到最合適的處理器的機制。這種調度管理通常會給作業系統帶來很大的負擔。R Kumar 等的文章「 Single-ISA Heterogeneous Multi-Core Architectures: ThePotential for Processor Power Reduction, Proceedings of the 36 internationalSymposium of Microarchitecture (MICR0-36』03)討論了一種多核體系結構,其中所有核心執行相同的指令集但是具有不同的功能和性能水平。在運行時,系統軟體對應用的資源需求進行評估,並選擇可以最佳地滿足這些需求同時又最小化能量消耗的核心。如這篇文章的第2部分中所論述的,在應用執行期間,作業系統軟體嘗試將應用與不同的核心匹配,試圖滿足定義的目標功能,例如特定的性能要求。在2. 3部分中,提到會有切換核心的開銷,需要對切換的粒度進行限制。接下來論述了具體示例,其中如果作業系統確定切換已就緒,則對新核心加電,觸發緩存刷新(cache flush)以將所有髒的緩存數據保存到共享的存儲器結構中,然後發信號告知新核心在預定義的作業系統入口點處啟動。然後,舊核心可以被關閉電源,同時新核心從存儲器中獲取所需要的數據。這種方法在2. 3部分中被描述為允許通過作業系統將應用在核心之間切換。這篇文章的其餘部分還論述了在目標是減少能量消耗的情況下,這種切換可以怎樣在多核設置內被動態執行。雖然上述文章討論了単一 ISA異構多核體系結構實現能量消耗減少的可能,但是它仍然要求作業系統被提供足夠的功能以實現針對各個應用做出的調度決定。當在具有不同體系結構特徵的處理器實例之間切換時,作業系統的角色會被變得更加複雜。在此,應當注意該文章中所考慮的Alpha核心EV4到EV8不是完全ISA兼容的,例如在2. 2部分的第五段中所論述的。此外,這篇文章不能解決在核心之間切換應用時會涉及到很大開銷的問題,這個 問題可能很大程度上減少了從這種切換中所獲得的好處。開銷不僅包括執行切換所花費的時間(在這期間沒有處理器在執行被轉移的工作量),還包括切換之後緩存缺失所帯來的懲罰。當目標核心開始執行轉移來的處理工作量吋,設置在目標核心中的任何緩存都在不包含有效數據的情況下開始工作,所以目標核心要經歷冷啟動緩存缺失。這意味著數據必須從存儲器中獲取,這減慢了處理的執行並且要使用非常多的能量。只有在目標緩存通過緩存ー些存儲器中所存儲的數據值而變得「熱起來」之後,性能和能量效率才會恢復。雖然以上R. Kumar等的文章在4. 4部分中指明了冷啟動緩存缺失的問題,但是Kumar沒有提供針對該問題的任何解決方案。本發明尋求提高切換到目標處理器之後的處理性能。

發明內容
從ー個方面來看,本發明提供了ー種數據處理裝置,包括第一處理電路和第二處理電路,被配置為執行處理工作量以使得所述處理工作量在同一時間由所述第一處理電路和所述第二處理電路中的一個執行;電カ控制電路,用於獨立地控制對所述第一處理電路和所述第二處理電路的電力供應;工作量轉移控制器,響應於轉移激勵,在源處理電路被所述電カ控制電路置於省電狀態之前控制對所述處理工作量的執行使之從所述源處理電路轉移到目標處理電路,所述源處理電路是所述第一和第二處理電路中的ー個處理電路且所述目標處理電路是所述第一和第二處理電路中的另ー個處理電路;其中至少所述源處理電路具有緩存;所述電カ控制電路被配置為在所述目標處理電路開始執行被轉移的處理工作量之後的偵查時段中將至少所述源處理電路的所述緩存保持在加電狀態;所述數據處理裝置包括緩存偵查電路,被配置為在所述偵查時段中偵查所述源處理電路的所述緩存中的數據值並獲取所述被偵查的數據值用於所述目標處理電路;並且所述電カ控制電路被配置為在所述偵查時段結束之後將所述至少所述源處理電路的所述緩存置於所述省電狀態。本發明的數據處理裝置具有第一和第二處理電路,並且在處理期間的任意時間,第一和第二處理電路中的ー個在執行處理工作量。當轉移激勵發生時,對處理工作量的執行從源處理電路(在接收到轉移激勵時第一和第二處理電路中當前正在執行工作量的任一電路)被轉移到目標處理電路(第一和第二處理電路中的另一電路),為源處理電路被置於省電狀態做準備。不管轉移本身是如何被實現的,本發明都提高了處理工作量被轉移到目標電路之後的目標電路的性能水平。本發明意識到在轉移之後,目標處理電路可能需要在轉移之前被存儲在源處理電路的緩存中的數據值。在目標處理電路對被轉移來的處理工作量的執行開始之後的有限時段(偵查時段)內,至少源處理電路的緩存被保持在加電狀態。緩存偵查電路在偵查時段中偵查源緩存中的數據,並代表目標處理電路獲取數據。通過在偵查時段中保持對源緩存的供電,目標處理電路在處理的最初時段內可訪問源緩存中的數據,從而避免了需要從存儲器中獲取數據。由於訪問源緩存比訪問存儲器更快並且使用更少的電力,所以本發明在轉移處理工作量之後提高了目標處理電路的性能水平以及整個裝置的能量效率。本發明還意識到對源緩存中的數據的偵查只對於在目標處理電路開始執行處理工作量之後的有限時段是有用的。最終,源緩存中的數據都將不再與目標處理電路所執行的處理相關。例如,目標處理電路可能開始處理不需要來自源緩存的數據的另一應用,或者目標處理電路可能已經處理了數據使得不同於存儲在源緩存中的值的更新後的值當前正 在被使用。因此,在偵查時段結束時,緩存偵查電路停止偵查來自源緩存的數據值,並且電力控制電路被配置為將至少源處理電路的緩存置於省電狀態以節能。總結來說,不是在處理工作量轉移到目標處理電路之後立即關閉源緩存的電源,而是源緩存在偵查時段內被保持在加電狀態,在偵查時段中緩存偵查電路可以偵查源緩存中的數據值並獲取偵查的數據值以用於目標處理電路。通過減少從存儲器中獲取數據的次數,性能水平和能量效率被提高。雖然本申請將總地針對有兩個處理電路(第一和第二處理電路)的情況描述本發明,但是數據處理裝置可以包括其它處理電路並且本發明可以被應用於在處理電路中的任意兩個之間轉移處理工作量。此外,每個處理電路可以包括單個處理器核心或者多個處理器核心。處理工作量可以包括至少一個處理應用和用於運行這至少一個處理應用的至少一個作業系統。通過將整個工作量作為在任意特定時間點處都僅在第一和第二處理電路中的一個上被執行的宏觀實體,工作量可以以一種對作業系統透明的方式很好地在第一和第二處理電路之間切換。這種方法解決了由於使用作業系統來管理針對特定處理電路的應用的調度而產生的前述問題。工作量轉移控制器可以被配置為在轉移期間對所述至少一個作業系統屏蔽預定的處理器專用配置信息,以使得工作量的轉移對所述至少一個作業系統而言是透明的。這意味著作業系統的配置被簡化了,因為作業系統不需要知道與第一處理電路相關聯的處理器專用配置信息和與第二處理電路相關聯的處理器專用配置信息之間的差異。由於第一和第二處理電路的處理器專用信息差異對於作業系統被屏蔽起來,所以從作業系統的角度(以及作業系統所運行的任何應用的角度)來看,工作量被運行在單一硬體平臺上。不管工作量是被運行在第一處理電路還是第二處理電路上,作業系統所看到的硬體平臺是一樣的。這使得更容易配置作業系統和應用。工作量轉移控制器可以至少包括虛擬軟體(virtualisation software),該虛擬軟體從邏輯上將所述至少一個作業系統與第一處理電路和第二處理電路分隔開。虛擬軟體提供一種抽象水平以將各個處理電路的硬體配置對作業系統隱藏起來,使得作業系統不知道哪個處理電路在執行工作量。因此,作業系統配置可以被簡化。虛擬軟體可以控制將處理工作量分配給第一處理電路或第二處理電路。第一處理電路可以在體系結構上與第二處理電路兼容,使得要被數據處理裝置執行的處理工作量可以在第一處理電路或第二處理電路上被執行。這意味著從應用的角度來看,運行在第一處理電路上的應用與運行在第二處理電路上的應用之間的唯一差異就在於所實現的性能水平或能量效率。不需要進行第一和第二處理電路之間的指令集轉換。包括作業系統和正在被作業系統運行的應用的整個處理工作量可以按簡單的方式在第一和第二處理電路之間來迴轉移。第一處理電路可以在微體系結構上不同於第二處理電路,使得第一處理電路的性能不同於第二處理電路的性能。第一和第二處理電路中具有較高性能水平的那個電路通常比第一和第二處理電路中的另一個電路消耗更多的能量。這意味著如果高性能處理被需要(例如當遊戲應用被執行時),則工作量可以被切換到較高性能的處理電路。另一方面,如果 諸如MP3播放之類的低性能處理正在被執行,則處理工作量可以被整個切換到較低性能的處理電路以提高能量效率。因而,通過提供微體系結構不同的處理電路,對處理工作量的執行可以根據要被執行的工作量的特徵針對性能和能耗而被優化。處理電路之間的微體系結構差異可以包括例如具有不同的執行管線長度或不同的執行資源。管線長度的不同通常將導致操作頻率的不同,進而將對性能產生影響。類似地,執行資源的不同將對吞吐量以及性能產生影響。例如,具有更寬範圍的執行資源的處理電路將使得在任意特定時間點處有更多的信息被處理,提高吞吐量。附加地或者替代地,一個處理電路可以具有比另一處理電路更多的執行資源,例如更多的算術邏輯單元(ALU),這同樣將提高吞吐量。作為不同執行資源的另一示例,高能量效率的處理電路可以具有簡單的順序管線,而較高性能的處理電路可以具有亂序超標量管線。此外,較高性能的處理電路可以具有分支預測功能,該功能通過在分支被解析之前提前獲取預測的分支目標來加速處理,而更高能量效率的處理電路可能不具有分支預測器。這些體系結構差異不影響每個體系結構上兼容的處理電路執行相同處理工作量的能力,但是在各個處理電路執行處理工作量時得到不同的性能水平和能耗。當只有源處理電路有緩存時,本發明可以被使用。在這種情況下,目標處理電路的一些存儲器訪問可以通過利用緩存偵查電路在偵查時段中偵查源緩存而被避免。在偵查時段結束之後,所有的數據都將需要從存儲器中獲取。然而,通常目標處理電路也將包括緩存,使得第一和第二處理電路都包括緩存。在這種情況下,由緩存偵查電路偵查的和由緩存偵查電路為目標處理電路獲取的數據值可以被存儲在目標處理電路的緩存中以加速之後對數據的引用。在實施例中,電力控制電路可被配置為在偵查時段中將除源處理電路的緩存以外的源處理電路置於省電狀態,並且在偵查時段結束之後將源處理電路的緩存置於省電狀態。這減少了數據處理裝置的功耗,因為源處理電路的大部分可以在工作量已被移交給目標處理器之後被關閉電源。在偵查時段中只有源處理電路的緩存保持加電,使得緩存偵查電路能夠獲取存儲在源緩存中的值以用於目標處理電路。
在一個實施例中,當緩存是源處理電路內的緩存等級結構中的一部分時,在偵查時段中被偵查的源緩存可以被保持在加電狀態中,而緩存等級結構中的至少一個其它緩存處於省電狀態中。這種情況的一個示例是當要被偵查的源緩存是二級包含型緩存時,該緩存被配置為存儲在緩存等級結構的任意(一個或多個)一級緩存中存儲的全部數據。在這種情況下,在偵查時段中二級緩存可以被保持在加電狀態中以允許來自緩存偵查電路的代表目標處理電路的偵查,而一級緩存可與源處理電路的其餘部分一起被關閉電源。或者,電力控制電路可以被配置為在偵查時段中將源處理電路保持在加電狀態,並且在偵查時段結束之後將包括源處理電路的緩存在內的整個源處理電路置於省電狀態。雖然在偵查時段中將源處理電路保持加電增加了功耗,但是減少了數據處理裝置的複雜度,這是因為不需要對源緩存和源處理電路的其餘部分的獨立電源控制。其中可能需要對源緩存和源處理電路一起供電的示例情況是當要被緩存偵查電路偵查的源處理電路的緩存是一級緩存時。一級緩存可能與源處理電路內的處理核心過於 緊密地集成,以至於不能提供對緩存和源處理電路的其餘部分的單獨電源控制。在這種情況下,包括緩存在內的整個源處理電路可以在偵查時段中被保持加電,並且在偵查時段結束之後關閉電源。源處理電路可以被配置為在偵查時段結束之後並且在電力控制電路將源處理電路的緩存置於省電狀態之前,對源緩存執行清除操作以將來自緩存的任意髒數據寫回共享存儲器中。通過在源緩存關閉電源之前清除緩存,確保了其最新值尚未被寫回到存儲器中的任何髒數據都不會丟失。為了節省能量,電力控制電路在轉移激勵發生之前將目標處理電路保持在省電狀態可能是有用的。在這種情況下,電力控制電路可以響應於轉移激勵對目標處理電路加電。目標處理電路可以被配置為在目標處理電路開始執行被轉移來的處理工作量之前使目標緩存無效。例如,如果在對處理工作量的執行轉移之前目標處理電路處於省電狀態,則在對目標處理電路加電時,目標緩存可能包含錯誤數據。通過在目標處理電路開始執行被轉移來的處理工作量之前使目標緩存無效,可以避免處理錯誤。為了提高處理性能,源處理電路可以被配置為在目標處理電路的緩存正被無效時繼續執行處理工作量,並且工作量轉移控制器可被配置為在目標處理電路的緩存已被無效之後將對處理工作量的執行轉移到目標處理電路。通過允許源處理電路繼續執行處理工作量一直到目標處理電路準備好開始執行處理工作量為止,其間沒有處理電路在執行處理工作量的時段被減少,所以處理工作量的性能水平被提高。在一個實施例中,偵查時段可以開始於目標處理電路開始執行處理工作量之時。在包括至少一個偵查停止事件的一組偵查停止事件中的任一個發生時偵查時段可以結束。指示不再值得將源緩存保持在加電狀態的一個或多個偵查停止事件可以觸發緩存偵查電路來結束偵查時段。通常,這些事件指示源緩存中的數據不再被目標處理電路所需要。緩存偵查電路可被配置為監控所述一組偵查停止事件中是否有任一事件發生。例如,緩存偵查電路可以包括性能計數器,用於監控目標處理電路的處理和目標處理電路所執行的數據訪問。利用性能計數器,緩存偵查電路可以分析源緩存中的數據是否仍與正在被目標處理電路執行的處理相關。通過配置緩存偵查電路而非目標處理電路來監控是否有偵查停止事件發生,目標處理電路可以被保持不知道源緩存是否仍在被偵查。這使得目標處理電路的配置更簡單。 至少一個偵查停止事件可以包括當導致源處理電路的緩存中的緩存命中的由緩存偵查電路執行的偵查的百分比降到預定的閾值水平以下時發生的事件。如果源緩存中的緩存命中的百分比變得很低,則表明目標處理電路所尋找的很多數據值不再存在於源緩存中,所以源緩存中的數據與目標處理電路無關。因此,可以通過一旦緩存命中的百分比降到預定的閾值水平以下,則結束偵查時段並且關掉源緩存來提高電源效率。至少一個偵查停止事件還可以包括當目標處理電路完成預定數目的預定類型的處理事務時發生的事件。雖然目標處理電路可以經由緩存偵查電路訪問存儲在源緩存中的數據,但是目標處理電路通常不能更新源緩存中的值。在預定數目的事務完成之後可以預期目標處理電路將已經為原本存儲在源緩存中的數據中的一些生成了新值。由於目標處理 電路不能將數據寫入源緩存,所以新的數據值將被存儲在存儲器和/或目標緩存中,這意味著源緩存中的原始數據值不再與目標處理電路相關。因此,預定數目的預定類型的處理事務的完成可以表明源緩存已不再需要,因而可以觸發偵查時段的結束。預定類型的處理事務可以包括例如目標處理電路所執行的全部事務或者可以只包括可緩存的事務。另一種偵查停止事件可以是在目標處理電路開始執行被轉移來的處理工作量之後經過了預定數目的處理周期時發生的事件。如上所述,目標處理電路通常不能更新源緩存中的值。因此,在目標處理電路已經執行了特定數目的處理周期的處理之後,目標處理電路所使用的數據(例如存儲在存儲器或目標緩存中的數據)很可能不會與仍存儲在源緩存中的數據相同了。這意味著從目標處理電路開始執行處理工作量起經過的處理周期的數目可以作為指示符,指示源緩存對目標處理電路而言不再有用並且可以被關閉電源。在裝置包括在第一和第二處理電路之間共享的共享存儲器的情況下,至少一個偵查停止事件可以包括在開始執行被轉移來的處理工作量之後目標處理電路第一次訪問共享存儲器的特定存儲器區域時發生的事件。對特定存儲器區域的第一次訪問例如可以指示出目標處理電路已啟動與特定存儲區域相關聯的不同於之前被目標處理電路處理的應用的新應用。這可以指示與新應用不相關聯的源緩存中的數據不再與目標處理電路相關。因此,對特定存儲器區域的第一次訪問可以觸發偵查時段的結束。由於類似的原因,偵查停止事件還可以包括當目標處理電路在開始執行被轉移來的處理工作量之後的最初時段內所訪問的共享存儲器的特定存儲器區域在預定的時段內未被所述目標處理電路訪問時發生的事件。當目標處理電路開始處理與原本被源處理電路處理的那個應用不同的應用時,與原始應用相關聯的存儲器區域可能在一段時間內都不被訪問。這可能表示源緩存中的數據不再被目標處理電路使用,因而可以觸發偵查時段的結束。另一種偵查停止事件是當目標處理電路在開始執行被轉移來的處理工作量之後第一次向共享存儲器的預定存儲器位置寫入時發生的事件。這允許目標處理電路通過向預定的存儲位置寫入來發信號告知緩存偵查電路其不再需要源緩存中的數據了。這組偵查停止事件可以包括上述偵查停止事件中的任意一個或多個,以及其它類型的偵查停止事件。
這裡所使用的術語「共享存儲器」指的是可以被第一處理電路和第二處理電路兩者直接訪問的存儲器,例如經由互連被耦接到第一和第二處理電路的主存儲器。該裝置可以包括偵查撤消(override)控制器,該偵查撤消控制器響應於偵查撤消條件撤消緩存偵查電路對源處理電路的緩存的偵查,並且控制電力控制電路在對處理工作量的執行轉移之後將包括緩存的源處理電路置於省電狀態,而不等待所述偵查時段的結束。在某些情況下,對源緩存的偵查可能對於目標處理電路而言是沒用的。在這些情況下,偵查撤消控制器可以通過以下步驟來撤消緩存偵查電路,所述步驟即阻止對源緩存的偵查並且控制電力控制電路將包括緩存在內的源處理電路置於省電狀態而不等待偵查時段的結束。偵查撤消控制器可以例如作為在源處理電路上執行的固件或者作為虛擬軟體的一部分被提供,所述虛擬軟體對作業系統屏蔽處理電路的硬體專用信息。例如,可能在對處理工作量的執行轉移之前知道源緩存中的數據對於在轉移之後將由目標處理電路執行的處理而言將是不需要的。例如,如果源處理電路剛剛結束執行遊戲應用,則該遊戲應用所使用的數據在目標處理電路開始處理不同的應用之後可能對其是沒用的。在這種情況下,偵查撤消控制器可以用信號告知緩存偵查電路和電力控制電路對緩存的偵查不再需要。 緩存偵查電路可以包括被耦接到第一和第二處理電路的一致互連(coherentinterconnect).該一致互連具有源緩存和存在於數據處理裝置中的任何共享存儲器這兩者的視圖。目標處理電路可以簡單地請求來自一致互連的數據,並且一致互連可以管理數據是從源緩存中被偵查還是從存儲器中獲取(這取決於偵查時段是否已結束以及數據訪問請求是否導致源緩存中的命中)。一致互連管理數據訪問以使得目標處理電路不需要知道被請求數據的確切位置。目標處理電路可能不知道對來自源緩存的數據的偵查。在一些實施例中,一致互連可以提供一種方便的機制,用於在處理工作量的移交期間將體系結構狀態從源處理電路轉移到目標處理電路。從另一方面看,本發明提供了一種數據處理裝置,包括用於執行處理的第一處理裝置和用於執行處理的第二處理裝置,所述第一處理裝置和第二處理裝置被配置為執行處理工作量以使得所述處理工作量在同一時間由所述第一處理裝置和所述第二處理裝置中的一個執行;電力控制裝置,用於獨立地控制對所述第一處理裝置和所述第二處理裝置的電力供應;工作量轉移控制裝置,用於響應於轉移激勵,在源處理裝置被所述電力控制裝置置於省電狀態之前控制對所述處理工作量的執行使之從所述源處理裝置轉移到目標處理裝置,所述源處理裝置是所述第一和第二處理裝置中的一個處理裝置且所述目標處理裝置是所述第一和第二處理裝置中的另一個處理裝置;其中至少所述源處理裝置具有用於存儲被緩存的數據值的緩存裝置;所述電力控制裝置被配置為在所述目標處理裝置開始執行被轉移的處理工作量之後的偵查時段中將至少所述源處理裝置的所述緩存裝置保持在加電狀態;所述數據處理裝置包括緩存偵查裝置,用於在所述偵查時段中偵查所述源處理裝置的所述緩存裝置中的數據值並獲取所述被偵查的數據值用於所述目標處理裝置;並且所述電力控制裝置被配置為在所述偵查時段結束之後將所述至少所述源處理裝置的所述緩存裝置置於所述省電狀態。從另一方面來看,本發明提供了用於包括第一處理電路和第二處理電路的裝置的數據處理方法,所述第一和第二處理電路被配置為執行處理工作量以使得所述處理工作量在同一時間被所述第一處理電路和所述第二處理電路中的一個執行;該方法包括利用源處理電路執行所述處理工作量,所述源處理電路為所述第一和第二處理電路中的一個並且包括緩存,所述第一和第二處理電路中的另一個為目標處理電路;響應於轉移激勵,在所述源處理電路被置於省電狀態之前將對所述處理工作量的執行從所述源處理電路轉移到所述目標處理電路;在所述目標處理電路對被轉移來的處理工作量的執行開始之後的偵查時段中將至少所述源處理電路的緩存保持在加電狀態;在所述偵查時段中,偵查所述源處理電路的緩存中的數據值並獲取所述被偵查的 數據值以用於所述目標處理電路;並且在所述偵查時段結束之後將至少所述源處理電路的緩存置於所述省電狀態。從另一方面來看,本發明提供了一種數據處理裝置,該數據處理裝置包括第一處理電路和第二處理電路,被配置為執行處理工作量以使得所述處理工作量在同一個時間被所述第一處理電路和所述第二處理電路中的一個執行;工作量轉移控制器,響應於轉移激勵,在源處理電路被電力控制電路置於省電狀態之前控制對所述處理工作量的執行使之從所述源處理電路轉移到目標處理電路,所述源處理電路是所述第一和第二處理電路中的一個處理電路且所述目標處理電路是所述第一和第二處理電路中的另一個處理電路;其中至少所述目標處理電路具有緩存;所述目標處理電路被配置為在所述目標處理電路開始執行被轉移來的處理工作量之前使所述目標處理電路的緩存無效; 所述源處理電路被配置為在所述目標處理電路被無效的同時繼續執行所述處理
工作量;並且所述工作量轉移控制器被配置為在所述目標處理電路的緩存已被無效之後將對所述處理工作量的執行轉移到所述目標處理電路。本發明通過在接收到轉移激勵之後目標處理電路的緩存正在被無效的同時允許目標處理電路在一段時間內繼續處理處理工作量,可以提高處理性能。通過只是在目標處理電路的緩存被無效之後將對處理工作量的執行轉移到目標處理電路,其間沒有處理電路在執行工作量的時間可被減少。因此,處理工作量被更快速且更高效地執行。


下面將僅以示例的方式參考如附圖中所示的本發明的實施例進一步描述本發明,在附圖中圖I是根據一個實施例的數據處理系統的框圖;圖2示意性地圖示了根據一個實施例提供切換控制器(這裡也被稱為工作量轉移控制器)以在邏輯上將由數據處理裝置執行的工作量與在數據處理裝置內被用於執行所述工作量的特定硬體平臺分開;
圖3是示意性地圖示了根據一個實施例的源處理器和目標處理器響應於切換激勵以將工作量從源處理器轉移到目標處理器而執行的步驟;圖4A示意性地圖示了在圖3的保存操作期間將源處理電路的當前體系結構狀態存入其相關聯的緩存;圖4B示意性地圖示了在圖3的恢復操作期間利用偵查控制單元控制源處理電路的當前體系結構狀態向目標處理電路的轉移;圖5圖示了根據一個實施例的用於在轉移操作期間提供加速機制以將源處理電路的當前體系結構狀態轉移給目標處理電路的替代結構;圖6A到61示意性地圖示了根據一個實施例的將工作量從源處理電路轉移給目標處理電路所執行的步驟;圖7是根據一個實施例的示出了能量效率隨性能的變化曲線並且圖示了在該曲 線上的各個點處圖I中所示的各個處理器核心如何被使用的圖;圖8A和SB分別示意性地圖示了如在一個實施例中所使用的低性能處理器管線和高性能處理器管線;以及圖9是示出了當對處理工作量的執行在低性能、高能量效率處理電路和高性能、低能量效率處理電路之間切換時數據處理系統所消耗的功率變化的圖。
具體實施例方式圖I是示意性地圖示了根據一個實施例的數據處理系統的框圖。如圖I中所示,該系統包括兩個在體系結構上兼容的處理電路實例(處理電路010和處理電路150),但是這兩個不同的處理電路實例具有不同的微結構。具體而言,處理電路10被安排為與處理電路50相比以更高的性能進行操作,但是作為權衡,處理電路10將比處理電路50的能量效率低。關於微結構差異的示例將在下面參考圖8A和SB進行更詳細的描述。每個處理電路可以包括單個處理單元(這裡也被稱為處理器核心),或者這些處理電路實例中的至少一個本身可以包括具有相同微結構的處理單元的集群。在圖I中所示的示例中,處理電路10包括體系結構和微結構都相同的兩個處理器核心15,20。作為對比,處理電路50隻包含單個處理器核心55。在以下描述中,處理器核心15,20將被稱為「大」核心,而處理器核心55將被稱為「小」核心,這是因為處理器核心15,20由於在設計時著重考慮性能所以通常比處理器核心55更複雜,而相比之下,處理器核心55由於在設計時著重考慮能量效率所以通常複雜度要低很多。在圖I中,每個處理器核心15,20,55被假設分別具有他們自己的相關聯的本地I級緩存25,30,60,這些緩存可以被布置為用於存儲供相關聯的核心引用的指令和數據的統一緩存,或者可以被布置為具有Harvard體系結構,提供不同的I級數據和I級指令緩存。雖然每個核心被顯示為具有其自己的相關聯的I級緩存,但這不是必須的,在替代實施例中,這些核心中的一個或多個核心可以沒有本地緩存。在圖I中所示的實施例中,處理電路10還包括在核心15與核心20之間共享的2級緩存35,偵查控制單元40被用於確保兩個I級緩存25,30與2級緩存35之間的緩存一致性。在一個實施例中,2級緩存被布置為包含型緩存,因此被存儲在任一 I級緩存25,30中的任意數據也都將存在於2級緩存35中。本領域技術人員將很清楚,偵查控制單元40的目的是確保各個緩存之間的緩存一致性,以使得可以確保任一核心15,20在發出訪問請求時將總是訪問到最新版本的數據。因此,僅作為示例,如果核心15發出針對不在相關聯的I級緩存25中的數據的訪問請求,則偵查控制單元40截獲正在傳輸的對I級緩存25的請求,並且參考I級緩存30和/或2級緩存35確定是否可以根據那些其它緩存中的一個的內容為訪問請求提供服務。只有在數據不存在於任何緩存中的情況下,訪問請求才經由互連70被傳送給主存儲器80,主存儲器80是在處理電路10與處理電路50之間共享的存儲器。設置在互連70內的偵查控制單元75按照與偵查控制單元40相類似的方式進行操作,但是在該示例中,用於保持設置在處理電路10內的緩存結構與設置在處理電路50內的緩存結構之間的一致性。在2級緩存35為包含型緩存的示例中,偵查控制單元保持處理電路10的2級緩存35與處理電路50的I級緩存60之間的硬體緩存一致性。但是,如果2級緩存35被布置為排他型2級緩存,則偵查控制單元75還將偵查保存在I級緩存25,30中的數據以確保處理電路10的緩存與處理電路50的緩存60之間的緩存一致性。
根據一個實施例,在任意時間點處,將只有處理電路10和處理電路50中的一個在積極處理工作量。為了本申請的目的,所述工作量可以被認為包括至少一個應用和用於運行該至少一個應用的至少一個作業系統,例如在圖2中用標號100所示意性示出的。在該示例中,兩個應用105,110正在作業系統115的控制下運行,並且應用105,110和作業系統115 —起構成工作量100。這些應用可以被認為是存在於用戶層,而作業系統存在於優先層(privileged level),並且總地來說由應用和作業系統所構成的工作量運行在硬體平臺125 (代表硬體層視圖)上。在任意時間點處,硬體平臺將由處理電路10或者由處理電路50提供。如圖I中所示,電力控制電路50被提供用於選擇性地獨立地向處理電路10和處理電路50提供電力。在從一個處理電路向另一處理電路轉移工作量之前,通常只有處理電路中的一個是被充分供電的,即,當前正在執行工作量的那個處理電路(源處理電路),而另一處理電路(目標處理電路)通常處於省電狀態。當確定工作量應當從一個處理電路被轉移給另一處理電路時,在轉移操作期間將有一段時間兩個處理電路都處於加電狀態,但是在轉移操作之後的某個時間點處,工作量從其中被轉移的源處理電路將被置於省電狀態中。取決於實現方式,省電狀態可以採用各種形式,因而例如可以是關閉電源狀態、部分/全部數據保持狀態、休眠狀態或發呆狀態中的一個。這些狀態將可以被本領域技術人員很好地理解,因此這裡將不進行詳細論述。所述實施例的目的是根據工作量所需要的性能/能量水平在處理電路之間執行工作量的切換。因此,當工作量涉及執行一個或多個性能密集型任務(例如執行遊戲應用)時,工作量可以在高性能處理電路10上被執行,或者利用大核心15,20中的一個或兩者來執行。然而,作為對比,當工作量是僅僅執行低執行強度的任務(例如MP3播放)時,整個工作量可以被轉移到處理電路50,從而得益於通過使用處理電路50而實現的能量效率。為了最優地利用這些切換功能,需要提供一種機制,允許切換以一種簡單且高效的方式進行以使得轉移工作量的動作不會過多地消耗能量到抵消了切換所帶來的好處的程度,並且還確保切換過程足夠快以使得其本身不會在很大程度上降低性能。在一個實施例中,這些好處至少部分地通過將處理電路10安排為與處理電路50在體系結構上兼容來獲得。這確保了工作量可以從一個處理電路被轉移到另一處理電路,同時確保正確的操作。作為最低要求,這種體系結構的兼容要求兩個處理電路10和50共享相同的指令集體系結構。然而,在一個實施例中,這種體系結構的兼容還意味著更高的兼容要求以確保兩個處理電路實例從編程者的角度看是相同的。在一個實施例中,這包括使用相同的體系結構寄存器,以及存儲作業系統在執行應用時所使用的數據的一個或多個專用寄存器。有了這種級別的體系結構兼容,就可以對作業系統115屏蔽工作量在處理電路之間的轉移,以使得作業系統完全不知道工作量是在處理電路10上還是在處理電路50上被執行的。在一個實施例中,對從一個處理電路到另一處理電路的轉移的處理由圖2中所示的切換控制器120 (這裡也被稱為虛擬器並且在文中的其它地方還被稱為工作量轉移控制器)管理。切換控制器可以用硬體、固件和/或軟體特徵的混合來實現,但是在一個實施例 中包括本質上類似於虛擬機中發現的管理程序軟體的軟體以使得用一種本地指令集編寫的應用能夠在採用不同本地指令集的硬體平臺上被執行。由於兩個處理電路10,50之間的體系結構兼容性,切換控制器120可以僅僅通過對作業系統屏蔽一個或多個預定的處理器專用配置信息項來對作業系統屏蔽所述轉移。例如,處理器專用配置信息可以包括CP15處理器ID寄存器和CP15緩存類型寄存器的內容。在這樣的實施例中,切換控制器然後只需要確保在轉移被起動時尚不能從共享存儲器80中獲得的、源處理電路在轉移時所保持的任意當前體系結構狀態被使得可用於目標處理電路,以使得目標電路處於能夠成功接管對工作量的執行的狀況下。利用前述示例,這種體系結構狀態通常將包括存儲在源處理電路的體系結構寄存器文件中的當前值以及源處理電路的一個或多個專用寄存器的當前值。由於處理電路10,50之間的體系結構的兼容性,如果所述當前體系結構狀態可以從源處理電路被傳送給目標處理電路,則目標處理電路將處於成功接管對來自源處理電路的工作量的執行的狀況下。雖然處理電路10,50之間的體系結構的兼容性便於整個工作量在這兩個處理電路之間的轉移,但是在一個實施例中,處理電路10,50在微體系結構上彼此不同,使得存在與這兩個處理電路相關聯的不同的性能特性以及能量消耗特性。如前所述,在一個實施例中,處理電路10是高性能、高能耗處理電路,而處理電路50是較低性能、較低能耗的處理電路。這兩個處理電路可以在很多方面上具有彼此不同的微體系結構,但是通常具有不同的執行管線長度和/或不同的執行資源中的至少一個。管線長度的不同通常將導致操作頻率的不同,進而將對性能產生影響。類似地,執行資源的不同將對吞吐量以及性能產生影響。因而,例如,處理電路10可以具有更寬範圍的執行資源和/或更多的執行資源以提高吞吐量。此外,處理器核心15,20內的管線可以被安排為執行亂序超標量處理,而能量高效處理電路50內的更簡單的核心55可以被安排為順序管線。關於微體系結構差異的更多討論將在後面參考圖8A和8B給出。生成轉移激勵以使得切換控制器120起動移交操作將工作量從一個處理電路轉移到另一處理電路可能因為很多種原因而被觸發。例如,在一個實施例中,應用可以被描述和標記為「大」、「小」或者「大/小」,從而作業系統可以與切換控制器接口以相應地移動工作量。因此,利用這種方法,轉移激勵的生成可被映射到被執行的應用的特定組合,以確保當需要高性能時,工作量在高性能處理電路10上被執行,而當不需要高性能時,作為替代,能量高效處理電路50被使用。在其它實施例中,算法可以被執行以基於一個或多個輸入動態地確定何時觸發從一個處理電路到另一處理電路的工作量的轉移。例如,處理電路的性能計數器可以被設置為對性能敏感事件進行計數(例如被執行指令的數目或者載入存儲(load-store)操作的數目)。與周期計數器或系統定時器耦接,這允許識別出高度計算密集型應用正在執行,這種應用可以通過切換到較高性能的處理電路被更好地服務,或者識別出指示可以在能量高效的處理電路上被更好地服務的I/O密集型應用的大量載入-存儲操作等。作為轉移激勵可能被生成的另一示例,數據處理系統可以包括用於監控數據處理系統在操作期間的溫度的一個或多個熱傳感器90。可能出現這樣的情況,即現在的高性能處理電路(例如那些運行在GHz頻率上的處理電路)有時會達到或者超過它們被指定工作的溫度上限。利用這種熱傳感器90,當這些溫度上限被達到時可以被檢測到,並且在這種情況下,轉移激勵可以被生成以觸發工作量向能量效率更高的處理電路轉移,從而導致數據處理系統的整體冷卻。因而,考慮圖I的示例,其中處理電路10是高性能處理電路且處理電路50是消耗較少能量的較低性能的處理電路,當設備的溫度上限被達到時將工作量從處理電路10轉移到處理電路50將導致接下來設備的冷卻,同時仍然允許進行連續的程序執行,盡 管會有較低的吞吐量。雖然在圖I中兩個處理電路10,50被示出,但是應當理解上述實施例的技術也可以被應用於包括兩個以上不同處理電路的系統,允許數據處理系統有更大範圍的性能/能量水平的跨度。在這些實施例中,不同處理電路中的每一個將被安排為在體系結構上彼此兼容以允許整個工作量在處理電路之間的妥當轉移,但是也可以在微體系結構上彼此不同以允許根據所需要的性能/能量水平在對那些處理電路的使用之間進行選擇。圖3是圖示了在接收到轉移激勵之後工作量從源處理器被轉移到目標處理器時在源處理器和目標處理器上執行的一系列步驟的流程圖。這種轉移激勵可以經由系統固件接口由作業系統115或虛擬器120生成,導致在步驟200中源處理器(該處理器將不僅在運行工作量,並且在運行構成切換控制器120的至少一部分的虛擬器軟體)檢測到該切換激勵。在步驟200中接收到轉移激勵(這裡也被稱為切換激勵)將使得電力控制器65在目標處理器上起動加電和重置操作205。在該加電和重置操作之後,目標處理器將在步驟210中使其本地緩存無效,然後在步驟215中啟動偵查。此時,目標處理器將用信號告知源處理器其已準備好進行工作量的轉移,該信號使得源處理器在步驟225中執行保存狀態操作。該保存狀態操作將在後面參考圖4A進行更詳細的論述,但是在一個實施例中保存狀態操作涉及源處理電路將其當前體系結構狀態中任意在移交操作被起動時不能從共享存儲器中獲取且對於目標處理電路成功接管對工作量的執行而言必需的狀態存儲到其本地緩存中。在保存狀態操作225之後,切換狀態信號將被發給目標處理器230,向目標處理器指示其現在應該開始偵查源處理器以獲取所需要的體系結構狀態。該過程通過恢復狀態操作230進行,該恢復狀態操作將在後面參考圖4B進行更詳細的論述,但是在一個實施例中,恢復狀態操作涉及目標處理電路起動一系列訪問,這些訪問被在互連70內的偵查控制單元75截獲,並且使得在源處理器的本地緩存中緩存的體系結構狀態的拷貝被獲取並返回給目標處理器。在步驟230之後,目標處理器就能夠接管對工作量的執行了,因此在步驟235中常規操作開始。在一個實施例中,一旦在目標處理器上常規操作開始,源處理器的緩存就可以被清除了,如步驟250中所示,從而將任何髒數據都刷新到共享存儲器80中,然後在步驟255中源處理器可以被關閉電源。然而,在一個實施例中,為了進一步提高目標處理器的效率,源處理器被安排為在一段時間內保持加電,該段時間在圖3中被稱為偵查時段。在這個時段中,源電路的緩存中的至少一個保持加電,以使得其內容可以被偵查控制電路75響應於目標處理器所發布的訪問請求進行偵查。在利用圖3中所述的過程轉移整個工作量之後,預期至少在最初的一段時間內(在該段時間之後目標處理器開始對工作量的執行),工作量的執行期間所需要的數據中的一些將保留在源處理器的緩存中。如果源處理器已經將其內容刷新到存儲器中並且已經被關閉電源,則目標處理器在這些早期階段將相對低效率地操作,這是因為在其本地緩存中可能有大量的緩存缺失,並且大量地從共享存儲器中獲取數據,導致在目標處理器的緩存「熱起來」(即填充了目標處理器電路執行工作量所指定的操作所需要的數據值)的同時有很大的性能影響。然而,通過在偵查時段中保持源處理器的緩存加電,偵查控制電路75將能夠參考源電路的緩存為大量的這些緩存缺失請求提供服務,與從共享存儲器80中獲取數據相比具有很大的性能優勢。 然而,這個性能優勢只能期望在切換之後持續一段特定的時間,在切換之後源處理器的緩存的內容將變為無效。因此,在某個時間點處,偵查停止事件將在步驟245中被生成以禁止偵查,之後在步驟250中源處理器的緩存將被清除,然後在步驟255中源處理器將被關閉電源。關於偵查停止事件可能被生成的各種情境的討論將在後面參考圖6G進行更詳細的論述。圖4A示意性地圖示了根據一個實施例在圖3中的步驟225處執行的保存操作。具體而言,在一個實施例中,需要從源處理電路300被存儲到本地緩存330中的體系結構狀態由寄存器文件310的內容以及各個專用寄存器320的內容構成,所述寄存器文件310在數據處理操作的執行期間被算術邏輯單元(ALU) 305參考,所述各個專用寄存器320標識工作量所需要的各條信息以成功使工作量能被目標處理電路接管。專用寄存器320的內容將包括例如標識當前被執行的指令的程序計數器值以及各種其它信息。例如,其它專用寄存器包括保存針對處理器模式、中斷屏蔽、執行狀態和標記的控制位的處理器狀態寄存器(例如,ARM體系結構中的CPSR和SPSR)。其它專用寄存器包括保存改變數據字節排序、開關MMU、開關數據/指令緩存等的位的體系結構控制(ARM體系結構中的CP15系統控制寄存器)。CP15中的其它專用寄存器存儲異常地址和狀態信息。如圖4A中示意性圖示的,源處理電路300通常還保存一些處理器專用配置信息315,但是這個信息不需要保存到緩存330中,這是因為其不可應用於目標處理電路。處理器專用配置信息315通常利用邏輯常量被硬編碼在源處理電路300中,並且可以包括例如CP15處理器ID寄存器的內容(該內容對於每個處理電路而言是不同的)或者CP15緩存類型寄存器的內容(該內容將取決於緩存25,30,60的配置,例如指示緩存具有不同的緩存行長度)。當作業系統115需要一項處理器專用配置信息315時,那麼除非處理器已經處於管理程序模式(hypervisor mode),否則到管理程序模式的執行陷講(execution trap)發生。作為響應,在一個實施例中,虛擬器120可以指出被請求的信息的值,但是在另一實施例中將返回「虛擬」值。在處理器ID值的情況下,這個虛擬值可以被選擇為對於「大」和「小」處理器來說是相同的,從而使得實際的硬體配置通過虛擬器120對作業系統115隱藏。如圖4A中示意性圖示的,在保存操作期間,寄存器文件310和專用寄存器320的內容被源處理電路存儲到緩存330中以形成緩存拷貝335。然後,該緩存拷貝被標記為可共享的,這允許目標處理器經由偵查控制單元75偵查該狀態。隨後在目標處理器上執行的恢復操作在圖4B中被示意性地示出。具體而言,目標處理電路350 (該電路可以有或沒有其自己的本地緩存)將發布針對體系結構狀態的特定項的請求,該請求被偵查控制單元75截獲。然後,偵查控制單元向源處理電路的本地緩存330發布偵查請求以確定所述體系結構狀態的該項是否存在於源處理電路的緩存中。因為在圖4A中所討論的保存操作期間所進行的步驟,命中將在源處理電路的緩存330中被檢測至IJ,導致被緩存的體系結構狀態經由偵查控制單元75被返回給目標處理電路350。該過程可以被來回重複一直到體系結構狀態的所有項都已經由對源處理電路的緩存的偵查被獲取為止。與目標處理電路350相關的任意處理器專用配置信息通常被硬編碼在目標處理電路350中,如前所述。因此,一旦恢復操作已完成,目標處理電路就擁有了使其能夠成功接 管對工作量的處理所需要的全部信息。此外,在一個實施例中,不管工作量100是在被「大」處理電路10還是被「小」處理電路50執行,虛擬器120都向作業系統115提供具有相同值的虛擬配置信息,所以「大」和「小」處理電路10,50之間的硬體差異被通過虛擬器120對作業系統115屏蔽起來。這意味著作業系統115不知道工作量100的執行已被轉移到不同的硬體平臺。根據參考圖4A和4B描述的保存和恢復操作,各個處理器實例10,50被安排為具有彼此相一致的硬體緩存,以減少在將體系結構狀態從源處理器傳送給目標處理器中所涉及的時間量、能量以及硬體複雜度。該技術利用源處理器的本地緩存來存儲必須從源處理器轉移到目標處理器的在轉移操作發生時不能從共享存儲器中獲得的所有狀態。因為狀態在源處理器的緩存內被標記為可共享的,所以這允許硬體緩存一致的目標處理器能夠在轉移操作期間偵查所述狀態。利用這種技術,可以在處理器實例之間轉移狀態,而不需要將該狀態保存到主存儲器或者本地存儲器映射的存儲單元中。因而,這會帶來很大的性能和能耗方面的好處,增加了適合於切換工作量以尋求實現能耗優勢的各種情形。然而,雖然上述利用緩存一致性的技術提供了一種加速機制,用於在不需要經由共享存儲器來路由當前體系結構狀態的情況下使得當前體系結構狀態可用於目標處理器,但是這不是這種加速機制可以實現的唯一方式。例如,圖5圖示了一種替代機制,其中專用總線380被設置在源處理電路300和目標處理電路350之間以允許體系結構狀態在移交操作期間被轉移。因而,在這種實施例中,圖3的保存和恢復操作225,230用利用專用總線380的替代轉移機制來代替。雖然這種方法通常比利用緩存一致性方法有更高的硬體成本(緩存一致性方法通常利用已經在數據處理系統內的硬體),但是該方法將提供一種更加快速的執行切換的方式,這在某些實現方式中可能是有利的。圖6A到61示意性地圖示了被執行用來將對工作量的執行從源處理電路300轉移到目標處理電路350的一系列步驟。源處理電路300是處理電路10,50中在轉移之前正在執行工作量的任一處理電路,而目標處理電路則是處理電路10,50中的另一處理電路。圖6A示出了在初始狀態下的系統,其中源處理電路300被電力控制器65供電並且正在執行處理工作量100,而目標處理電路350處於省電狀態。在該實施例中,省電狀態是斷電狀態,但是如上所述,其它類型的省電狀態也可以被使用。包括應用105,110和用於運行應用105,110的作業系統115的工作量100被虛擬器120從源處理電路300的硬體平臺提取出來。在執行工作量100的同時,源處理電路300維護體系結構狀態400,該體系結構狀態可以包括例如寄存器文件310和專用寄存器320的內容,如圖4A中所示。在圖6B中,轉移激勵430被虛擬器120檢測到。雖然轉移激勵430在圖6B中被顯示為外部事件(例如熱傳感器90檢測到熱超標),但是轉移激勵430也可以是由虛擬器120本身或者由作業系統115觸發的事件(例如作業系統115可以被配置為當特定類型的應用要被處理時通知虛擬器120)。虛擬器120通過控制電力控制器65向目標處理電路350提供電力來對轉移激勵430做出響應,以將目標處理電路350置於加電狀態。在圖6C中,目標處理電路350開始執行虛擬器120。虛擬器120控制目標處理電路350來無效其緩存420,從而防止在對目標處理電路350加電時可能存在於緩存420中的錯誤數據值所引起的處理錯誤。在目標緩存420被無效的同時,源處理電路300繼續執行工作量100。當目標緩存420的無效完成時,虛擬器120控制目標處理電路350以用信號告知源處理電路300 :目標處理電路350已經準備好接管工作量100。通過繼續在源處理電 路300上處理工作量100 —直到目標處理電路350準備好移交操作,可以減少移交對性能的影響。在接下來的階段中,如圖6D中所示,源處理電路300停止執行工作量100。在此階段期間,源處理電路300和目標處理電路350都不執行工作量100。體系結構狀態400的拷貝從源處理電路300被傳送給目標處理電路350。例如,體系結構狀態400可以被保存到源緩存410中並且被返回給目標處理電路350,如圖4A和4B中所示,或者可以如圖5中所示通過專用總線來傳送。體系結構狀態400包括除已經存在於共享存儲器80中的信息以外的目標處理電路250執行工作量100所需要的全部狀態信息。在將體系結構狀態400轉移給目標處理電路350之後,源處理電路300被電力控制電路65置於省電狀態(參考圖6E),例外的是源緩存410保持加電狀態。同時,目標處理電路350開始利用被轉移來的體系結構狀態400執行工作量100。當目標處理電路350開始處理工作量100時,偵查時段開始(參考圖6F)。在偵查時段中,偵查控制單元75可以代表目標處理電路350偵查存儲在源緩存410中的數據並獲取數據。當目標處理電路350請求不存在於目標緩存420中的數據時,目標處理電路350請求來自偵查控制單元75的數據。然後,偵查控制單元75偵查源緩存410,並且如果偵查導致緩存命中,則偵查控制單元75從源緩存410中獲取所偵查的數據並將其返回給目標處理電路350,其中所偵查的數據可被存儲在目標緩存420中。另一方面,如果偵查導致源緩存410中的緩存缺失,則被請求的數據從共享存儲器80中被獲取並被返回給目標處理電路350。因為對源緩存410中的數據的訪問比訪問共享存儲器80更快並且需要更少的能量,所以在一段時間內偵查源緩存410在工作量100移交到目標處理電路350之後的最初時段中提高了處理性能並且減少了能耗。在圖6G中所示的步驟中,偵查控制單元75檢測到偵查停止事件,該事件指示將源緩存410保持在加電狀態已經不再是高效的了。偵查停止事件觸發偵查時段的結束。該偵查停止事件可以是被偵查控制電路75監控的一組偵查停止事件中的任意一個。例如,這組偵查停止事件可以包括以下事件中的任意一個或多個
(a)當在目標處理電路350已經開始執行工作量100之後導致源緩存410內的緩存命中的偵查命中的百分比或比例(即,與偵查命中的數目/總偵查的數目成比例的量)降到預定的閾值水平以下時;(b)當從目標處理電路350開始執行工作量100起被執行的事務的數目或者預定類型的事務(例如,可緩存事務)的數目超過預定閾值時;(c)當從目標處理電路350開始執行工作量100起經過的處理周期的數目超過預定閾值時;(d)當從目標處理電路350開始執行工作量100起共享存儲器80的特定區域第一次被訪問時;(e)當共享存儲器80中在目標處理電路350開始執行工作量100之後的最初時段內被訪問的特定區域在預定數目的周期或預定的時間段內未被訪問時;
(f)當目標處理電路350在開始執行被轉移來的工作量100起第一次向預定的存儲器位置寫入時。這些偵查停止事件可以利用在包括偵查控制單元75的一致性互連70中的可編程計數器被檢測到。其它類型的偵查停止事件也可以被包括在這組偵查停止事件中。在檢測到偵查停止事件時,偵查控制單元75向源處理器300發送偵查停止信號440。偵查控制單元75停止偵查源緩存410並且從此刻開始通過從共享存儲器80中獲取被請求數據並將所獲取的數據返回給目標處理電路350對來自目標處理電路350的數據訪問請求做出響應,所獲取的數據可以被緩存在目標處理電路350中。在圖6H中,源緩存的控制電路響應於偵查停止信號440清除緩存410,以將任何有效的髒數據值(即,其被緩存的值比共享存儲器80中的相應值更新)保存到共享存儲器80中。在圖61中,源緩存410隨後被電力控制器65關掉電源以使得源處理電路300整個處於省電狀態。目標處理電路繼續執行工作量100。從作業系統115的角度看,現在的情況與圖6A中一樣。作業系統115不知道工作量的執行從一個處理電路轉移到了另一處理電路。當另一轉移激勵發生時,則圖6A到61的相同步驟可被用於將工作量的執行切換回第一處理器(在這種情況下,處理電路10,50中誰是「源處理電路」誰是「目標處理電路」將被反過來)。在圖6A到61的實施例中,對緩存410和源處理電路300的獨立電源控制是可實現的,使得一旦目標處理電路350開始執行工作量以後除了源緩存410以外的源處理電路300可以被關閉電源(如圖6E),而只有源處理電路300的緩存410保持在加電狀態(如圖6F到6H)。然後在圖61中,源緩存410被關閉電源。這種方法對於節省能量來說是有用的,尤其當源處理電路300是「大」處理電路10時。然而,也可以在偵查時段中繼續對整個源處理電路300加電,然後在偵查時段結束並且清除源緩存410之後將源處理電路300整個置於省電狀態,如圖61。這在源緩存410與源處理器核心嵌入得太深以至於不能獨立地從源處理器核心供電的情況下可能是更有用的。當源處理器為「小」處理電路50 (其功率消耗與「大」處理電路10相比不算大)時這種方法可能也是更實用的,因為一旦「大」處理電路10開始處理被轉移來的工作量100,則在偵查時段中將除緩存60以外的「小」處理電路50切換到省電狀態對系統的整體功率消耗的影響很小。這可能意味著向「小」處理電路50和「小」處理器核心的緩存60提供單獨功率控制的附加硬體複雜度可能是不合理的。在一些情況下,在工作量轉移之前可能知道當目標處理電路350開始執行工作量100時源緩存410中所存儲的數據將不被目標處理電路350所需要。例如,當轉移發生時源處理電路300可能剛剛完成一個應用,因此轉移時源緩存410中的數據與已完成的應用有關,而與轉移後目標處理電路350所要執行的應用無關。在這種情況下,偵查撤消(override)控制器可以觸發虛擬器120和偵查控制電路75以撤消對源緩存410的偵查並且控制源處理電路300清除源緩存410並關掉其電源,而不等待偵查停止事件用信號告知偵查時段的結束。在這種情況下,圖6A到61的技術將從圖6E的步驟直接跳到圖6G的步驟,而不執行其中數據從源緩存410中被偵查的圖6F的步驟。因而,如果提前知道源緩存410中的數據對於目標處理電路350而言將不是有用的,則可以通過在不等待偵查停止事件的情況下將源緩存410和源處理電路300置於省電狀態來節省電源。偵查撤消控制器可以是虛擬器120的一部分,或者可以被實現為在源處理電路300上執行的固件。偵查撤消控制器也可以被實現為元件的組合,例如當應用結束時作業系統115可以通知虛擬器120,並且如果轉移發生在應用結束時,則虛擬器120可以撤消對源緩存410的偵查。
圖7是其中曲線600示出了能量消耗如何隨性能變化的曲線圖。對於該曲線圖的各個部分,數據處理系統可以被安排為利用圖I中所示的處理器核心15,20的不同組合,以尋求在性能和能耗之間獲得適當的權衡。因而,例如當大量非常高性能的任務需要被執行時,可以運行處理電路10的兩個大核心15,20以得到所希望的性能。可選地,電源電壓變化技術可被用於在利用這兩個核心時允許性能和能耗上的一些變化。當性能要求降到只利用這些大核心中的一個就可以實現所需要的性能的水平時, 任務可以被轉移到大核心15,20中的一個上,另一個核心被關閉電源或者置於某種其它省電狀態中。同樣,當利用這樣一個大核心時,電源電壓變化也可以被用來允許性能和能耗之間的某些變化。應當注意從兩個大核心轉移到一個大核心不需要生成轉移激勵,也不需要實用上述用於轉移工作量的技術,因為無論怎樣都是處理電路10在被使用,而處理電路50將處於省電狀態。然而,如圖7中的虛線610所示,當性能降至小核心能夠實現所需要的性能的水平時,轉移激勵可以被生成以觸發上述用於將整個工作量從處理電路10轉移到處理電路50的機制,使得整個工作量運行在小核心55上,而處理電路10被置於省電狀態。同樣,電源電壓變化可以被用於允許在小核心55的性能和能耗上的某些變化。圖8A和SB分別圖示了根據一個實施例的低性能處理器管線800與高性能處理器管線850之間的微體系結構差異。圖8A的低性能處理器管線800將適合於圖I的小處理核心55,而圖8B的高性能處理器管線850將適合於大核心15,20。圖8A的低性能處理器管線800包括用於從存儲器80獲取指令的取指階段810、用於對所獲取的指令解碼的解碼階段820、用於發布供執行的指令的發布階段830以及多個執行管線,所述多個執行管線包括用於執行整數操作的整數管線840、用於執行乘累加操作的MAC管線842以及用於執行SMD (單一指令多數據)操作或浮點操作的SMD/FPU管線844。在低性能處理器管線800中,發布階段830每次發布一個指令,並且按照指令被獲取的順序發布指令。圖SB的高性能處理器管線850包括用於從存儲器80獲取指令的取指階段860、用於對所獲取的指令解碼的解碼階段870、用於為解碼後的指令中所指定的寄存器重命名的重命名階段875、用於派發供執行的指令的派發階段880以及包括兩個整數管線890,892、MAC管線894和兩個SMD/FPU管線896,898的多個執行管線。在高性能處理器管線850中,派發階段880是可以一次性向管線890,892,894,896,898中的不同管線發布多個指令的並行發布階段。派發階段880還可以亂序發布指令。與在低性能處理器管線800中不同,SMD/FPU管線896,898是可變長度的,這意味著通過SMD/FPU管線896,898進行的操作可以被控制跳過某些階段。這種方法的優點是如果多個執行管線分別有不同的資源,則不需要人為地加長最短的管線以使其與最長的管線有相同的長度,但是反而需要邏輯來應對不同管線所產生的結果的亂序特徵(例如如果處理異常發生則要將一切按順序放回)。重命名階段875被提供用於將寄存器指示符映射到作為硬體平臺的實際寄存器的物理寄存器,所述寄存器指示符被包括在程序指令中並且標識從編程者模式的角度看的特定體系結構寄存器。重命名階段875使得與存在於微處理器的編程者模式視角內的寄存器相比,更大的物理寄存器的集合被微處理器提供。這個更大的物理寄存器的集合在亂序執行期間是有用的,因為它通過將兩個或多個不同指令中所指定的相同體系結構寄存器映 射到兩個或多個不同的物理寄存器而使得諸如寫後寫(WAW)危險(hazard)之類的危險被避免,從而使不同的指令可以被同時執行。對於寄存器重命名技術的更多細節,讀者可以參考同時擁有的美國專利申請US 2008/114966和美國專利7,590,826。低性能管線800和高性能管線850的微體系結構在很多方面上是不同的。這些微體系結構差異可以包括(a)管線具有不同的階段。例如,高性能管線850具有不存在於低性能管線800中的重命名階段875.(b)管線階段具有不同的功能。例如,低性能管線800的發布階段830隻能夠發布單個指令,而高性能管線850的派發階段880可以並行地發布指令。並行發布提高了管線的處理吞吐量,從而提高了性能。(C)管線階段具有不同的長度。例如,高性能管線850的解碼階段870可以包括三個子階段,而低性能管線800的解碼階段820可只包括一個子階段。管線階段越長(子階段的數目越多),可以同時進行的指令的數目就越多,從而管線可以工作的工作頻率就越大,導致更高的性能水平。(d)不同數目的執行管線(例如高性能管線850比低性能管線800有更多的執行管線)。通過提供更多的執行管線,更多的指令可以被並行處理,從而性能被提高。(e)提供順序執行(如管線800中)或亂序執行(如管線850中)。當指令可以被亂序執行時,由於指令的執行可以被動態調度以最優化性能所以提高了性能。例如,在低性能順序管線800中,在後面的指令可以被整數管線840和SMD/浮點管線844中的一個執行之前,一系列MAC指令需要一個一個地被MAC管線842執行。作為對比,在高性能管線850中,MAC指令可以被MAC管線894執行,同時(面臨不能通過重命名解決的數據危險)使用不同的執行管線890,892,896,898的後面的指令可以與MAC指令並行地被執行。這意味著亂序執行可提高處理性能。這些及其它微體系結構差異的示例導致管線850提供比管線800更高性能的處理。另一方面,微體系結構差異也使得管線850比管線800消耗更多的能量。因此,提供微體系結構不同的管線800,850使得對工作量的處理針對高性能(通過使用具有高性能管線850的「大」處理電路10)或高能量效率(通過使用具有低性能管線800的「小」處理電路50)被優化。圖9示出了圖示出數據處理系統的功耗在對工作量100的執行在大處理電路10和小處理電路50之間切換時的變化的曲線圖。在圖9的點A處,工作量100正在小處理電路50上被執行,因而功耗較低。在點B處,轉移激勵發生,指示高強度處理要被執行,所以對工作量的執行被移交給大處理電路
10。然後,在點C處功耗增大並且保持高值,同時大處理電路10在執行工作量。在點D處,假設兩個大核心在一起工作以處理工作量。然而,如果性能要求降到工作量可以僅用一個大核心來處理的水平,則工作量被轉移到僅一個大核心上,並且另一個大核心被關掉電源,如功率下降到臨近點E的水平所示。然而,在點E處,另一轉移激勵發生(指示需要返回到低強度處理)以觸發將對工作量的執行轉移到小處理電路50。
當小處理電路50開始處理處理工作量時,大處理電路的大部分處於省電狀態,但是大處理電路10的緩存在偵查時段(圖9中的點F)中保持加電,以使得緩存中的數據被獲取用於小處理電路50。因而,大處理電路10的緩存使得在點F處的功耗比只有小處理電路50被加電的點A處的功耗要高。在偵查時段結束時,大處理電路10的緩存被關掉電源,並且在點G處功耗返回到只有小處理電路50有效時的較低水平。如上所述,在圖9中,由於大處理電路10的緩存在偵查時段中被加電,所以在點F處的偵查時段中功耗比在點G處要高。雖然這種功耗的增加被指示為只是在大到小轉換之後,但是在小到大轉換之後,也可以有偵查時段,在該時段中小處理電路50的緩存中的數據可以由偵查控制單元75代表大處理電路10進行偵查。針對小到大轉換的偵查時段在圖9中未被示出,這是因為通過在偵查時段中將小處理電路50的緩存保持在加電狀態所消耗的功率與大處理電路10執行處理工作量時所消耗的功率相比是很小的,所以由於小處理電路50的緩存被加電而造成的功耗的少量增加在圖9中的曲線圖中是看不到的。上述實施例描述了包含兩個或多個體系結構兼容且具有針對能量效率或性能優化的微體系結構的處理器實例的系統。作業系統和應用所需要的體系結構狀態可以根據所需要的性能/能量水平在處理器實例之間被切換,以允許整個工作量在處理器實例之間切換。在一個實施例中,在任意給定時間處理器實例中只有一個在運行工作量,而另一個處理實例處於省電狀態或者在進入/退出省電狀態的過程中。在一個實施例中,處理器實例可以被安排為彼此硬體緩存一致,以減少在將體系結構狀態從源處理器切換到目標處理器的過程中所涉及的時間量、能量以及硬體複雜度。這減少了執行切換操作的時間,增加了實施例的技術可被使用的機會。這些系統可以被用在能量效率對於電池壽命和/或熱管理來說非常重要的各種情況下,並且性能的擴展使得更高能量效率的處理器可被用於較低的處理工作量,而較高性能的處理器可被用於較高的處理工作量。因為兩個或多個處理實例在體系結構上是兼容的,所以從應用的角度來看,兩個處理器之間唯一的差異就是可得到的性能。通過一個實施例中的技術,所有需要的體系結構狀態可以在處理器之間移動而不需要涉及到作業系統,使得關於作業系統和應用在哪個處理器上運行對於作業系統和運行在作業系統上的應用來說是透明的。
當使用在以上實施例中所述的體系結構兼容的處理器時,需要被轉移的全部體系結構狀態可以很容易地放到數據緩存內,並且由於現在的處理系統通常實現緩存一致性,所以通過將要被切換的體系結構狀態存儲到數據緩存內,目標處理器可以快速地利用現有的電路結構以高能量效率的方式偵查所述狀態。在一個所述實施例中,切換機制被用於確保針對數據處理系統的熱上限不被達至IJ。具體而言,當熱上限快要達到時,整個工作量可以被切換到更高能量效率的處理器實例上,允許整個系統冷卻,同時繼續進行程序執行,儘管是有較低的吞吐量。雖然這裡已經描述了特定實施例,但是應當理解本發明並不限於此,並且很多對 本發明的修改和添加都可以在本發明的範圍內被進行。例如,後面的從屬權利要求的特徵可以與獨立權利要求的特徵進行各種組合,而不脫離本發明的範圍。
權利要求
1.ー種數據處理裝置,包括 第一處理電路和第二處理電路,所述第一處理電路和第二處理電路被配置為執行處理工作量以使得所述處理工作量在同一時間由所述第一處理電路和所述第二處理電路中的一個執行; 電カ控制電路,用於獨立地控制向所述第一處理電路和所述第二處理電路的電力供應; 工作量轉移控制器,該工作量轉移控制器響應於轉移激勵,控制對所述處理工作量的執行在源處理電路被所述電カ控制電路置於省電狀態之前從所述源處理電路轉移到目標處理電路,所述源處理電路是所述第一和第二處理電路中的一個處理電路且所述目標處理電路是所述第一和第二處理電路中的另ー個處理電路;其中 至少所述源處理電路具有緩存; 所述電カ控制電路被配置為在所述目標處理電路開始執行被轉移的處理工作量之後的偵查時段中將至少所述源處理電路的所述緩存保持在加電狀態; 所述數據處理裝置包括緩存偵查電路,該緩存偵查電路被配置為在所述偵查時段中偵查所述源處理電路的所述緩存中的數據值並為所述目標處理電路獲取所述被偵查的數據值;並且 所述電カ控制電路被配置為在所述偵查時段結束之後將所述至少所述源處理電路的所述緩存置於所述省電狀態。
2.根據權利要求I所述的數據處理裝置,其中所述處理工作量包括至少ー個處理應用和用於運行所述至少一個處理應用的至少ー個作業系統。
3.根據權利要求2所述的數據處理裝置,其中所述工作量轉移控制器被配置為在所述轉移期間對所述至少ー個作業系統屏蔽預定的處理器專用配置信息以使得所述工作量的轉移對於所述至少ー個作業系統而言是透明的。
4.根據權利要求3所述的數據處理裝置,其中所述工作量轉移控制器至少包括虛擬軟體,該虛擬軟體在邏輯上將所述至少ー個作業系統與所述第一處理電路和所述第二處理電路分開。
5.根據任一前述權利要求所述的數據處理裝置,其中所述第一處理電路在體系結構上與所述第二處理電路兼容,以使得要由所述數據處理裝置執行的處理工作量可以在所述第ー處理電路或者所述第二處理電路上被執行。
6.根據權利要求5所述的數據處理裝置,其中所述第一處理電路在微體系結構上不同於所述第二處理電路,以使得所述第一處理電路的性能不同於所述第二處理電路的性能。
7.根據任一前述權利要求所述的數據處理裝置,其中所述目標處理電路也包括緩存。
8.根據權利要求7所述的數據處理裝置,其中通過所述緩存偵查電路為所述目標處理電路獲取的被偵查數據值被存儲在所述目標處理電路的緩存中。
9.根據任一前述權利要求所述的數據處理裝置,其中所述電カ控制電路被配置為在所述偵查時段中將除所述源處理電路的緩存以外的所述源處理電路置於所述省電狀態,並且在所述偵查時段結束之後將所述源處理電路的緩存置於所述省電狀態。
10.根據權利要求9所述的數據處理裝置,其中所述源處理電路的緩存是所述源處理電路內的緩存等級結構中的一部分,並且在所述偵查時段中,所述緩存被保持在加電狀態中而所述緩存等級結構中的至少ー個其它緩存處於省電狀態中。
11.根據權利要求10所述的數據處理裝置,其中所述源處理電路的緩存是ニ級包含型緩存,該緩存被配置為存儲在所述緩存等級結構的至少ー個一級緩存中存儲的全部數據。
12.根據權利要求I至8中的任ー權利要求所述的數據處理裝置,其中所述電カ控制電路被配置為在所述偵查時段中將所述源處理電路保持在所述加電狀態,並且在所述偵查時段結束之後將包括所述源處理電路的緩存在內的所述源處理電路置於所述省電狀態。
13.根據權利要求12所述的數據處理裝置,其中所述源處理電路的緩存是ー級緩存。
14.根據任一前述權利要求所述的數據處理裝置,其中所述源處理電路被配置為在所述偵查時段結束之後並且在所述電カ控制電路將所述源處理電路的緩存置於所述省電狀態之前,對所述源處理電路的緩存執行清除操作以將來自所述緩存的任意髒數據寫回共享存儲器中。
15.根據任一前述權利要求所述的數據處理裝置,其中所述目標處理電路在所述轉移激勵發生之前處於所述省電狀態,並且所述電カ控制電路被配置為響應於所述轉移激勵將所述目標處理電路置於所述加電狀態。
16.根據權利要求7的任一前述從屬權利要求所述的數據處理裝置,其中所述目標處理電路被配置為在所述目標處理電路開始執行所述被轉移的處理工作量之前使所述目標處理電路的緩存無效。
17.根據權利要求16所述的數據處理裝置,其中所述源處理電路被配置為在所述目標處理電路的緩存被無效的同時繼續執行所述處理工作量,並且所述工作量轉移控制器被配置為在所述目標處理電路的緩存已被無效之後將對所述處理工作量的執行轉移到所述目標處理電路。
18.根據任一前述權利要求所述的數據處理裝置,其中當所述目標處理電路開始執行所述處理工作量時所述偵查時段開始。
19.根據任一前述權利要求所述的數據處理裝置,其中在包括至少ー個偵查停止事件的一組偵查停止事件中的任ー個發生時所述偵查時段結束。
20.根據權利要求19所述的數據處理裝置,其中所述緩存偵查電路被配置為監控是否有所述ー組偵查停止事件中的任ー個事件已發生。
21.根據權利要求19所述的數據處理裝置,其中所述至少一個偵查停止事件包括當導致所述源處理電路的緩存中的緩存命中的由所述緩存偵查電路執行的偵查的百分比降到預定的閾值水平以下時發生的事件。
22.根據權利要求19所述的數據處理裝置,其中所述至少一個偵查停止事件包括當所述目標處理電路完成預定數目的預定類型的處理事務時發生的事件。
23.根據權利要求19所述的數據處理裝置,其中所述至少一個偵查停止事件包括在所述目標處理電路開始執行被轉移來的處理工作量之後經過了預定數目的處理周期時發生的事件。
24.根據權利要求19所述的數據處理裝置,包括在所述第一和第二處理電路之間共享的共享存儲器; 其中所述至少一個偵查停止事件包括在開始執行被轉移來的處理工作量之後所述目標處理電路第一次訪問所述共享存儲器的特定存儲器區域時發生的事件。
25.根據權利要求19所述的數據處理裝置,包括在所述第一和第二處理電路之間共享的共享存儲器; 其中所述至少一個偵查停止事件包括當所述目標處理電路在開始執行被轉移來的處理工作量之後的最初時段內所訪問的所述共享存儲器的特定存儲器區域在預定的時段內未被所述目標處理電路訪問時發生的事件。
26.根據權利要求19所述的數據處理裝置,包括在所述第一和第二處理電路之間共享的共享存儲器; 其中所述至少一個偵查停止事件包括當所述目標處理電路在開始執行被轉移來的處理工作量之後第一次向所述共享存儲器的預定存儲器位置寫入時發生的事件。
27.根據任一前述權利要求所述的數據處理裝置,包括偵查撤消控制器,該偵查撤消控 制器響應於偵查撤消條件撤消所述緩存偵查電路對所述源處理電路的緩存的偵查,並且控制所述電カ控制電路在對所述處理工作量的執行轉移之後將包括緩存在內的所述源處理電路置於所述省電狀態,而不等待所述偵查時段的結束。
28.根據權利要求27所述的數據處理裝置,其中所述偵查撤消條件發生在所述源處理電路的緩存不被所述目標處理電路為了執行所述被轉移來的處理工作量而需要吋。
29.根據任一前述權利要求所述的數據處理裝置,其中所述緩存偵查電路包括被耦接到所述第一處理電路和所述第二處理電路的一致互連。
30.ー種數據處理裝置,包括 用於執行處理的第一處理裝置和用於執行處理的第二處理裝置,所述第一處理裝置和第二處理裝置被配置為執行處理工作量以使得所述處理工作量在同一時間由所述第一處理裝置和所述第二處理裝置中的一個執行; 電カ控制裝置,用於獨立地控制向所述第一處理裝置和所述第二處理裝置的電カ供應; 工作量轉移控制裝置,用於響應於轉移激勵,控制對所述處理工作量的執行在源處理裝置被所述電カ控制裝置置於省電狀態之前從所述源處理裝置轉移到目標處理裝置,所述源處理裝置是所述第一和第二處理裝置中的一個處理裝置且所述目標處理裝置是所述第一和第二處理裝置中的另ー個處理裝置;其中 至少所述源處理裝置具有用於存儲被緩存的數據值的緩存裝置; 所述電カ控制裝置被配置為在所述目標處理裝置開始執行被轉移的處理工作量之後的偵查時段中將至少所述源處理裝置的所述緩存裝置保持在加電狀態; 所述數據處理裝置包括緩存偵查裝置,該緩存偵查裝置用於在所述偵查時段中偵查所述源處理裝置的所述緩存裝置中的數據值並為所述目標處理裝置獲取被偵查的數據值;並且 所述電カ控制裝置被配置為在所述偵查時段結束之後將所述至少所述源處理裝置的所述緩存裝置置於所述省電狀態。
31.一種用於包括第一處理電路和第二處理電路的裝置的數據處理方法,所述第一和第二處理電路被配置為執行處理工作量以使得所述處理工作量在同一時間被所述第一處 理電路和所述第二處理電路中的一個執行;該方法包括 利用源處理電路執行所述處理工作量,所述源處理電路為所述第一和第二處理電路中的一個並且包括緩存,所述第一和第二處理電路中的另ー個為目標處理電路; 響應於轉移激勵,在所述源處理電路被置於省電狀態之前將對所述處理工作量的執行從所述源處理電路轉移到所述目標處理電路; 在所述目標處理電路對被轉移來的處理工作量的執行開始之後的偵查時段中將至少所述源處理電路的緩存保持在加電狀態; 在所述偵查時段中,偵查所述源處理電路的緩存中的數據值並為所述目標處理電路獲取被偵查的數據值;並且 在所述偵查時段結束之後將所述至少所述源處理電路的所述緩存置於所述省電狀態。
32.ー種數據處理裝置,包括 第一處理電路和第二處理電路,所述第一處理電路和第二處理電路被配置為執行處理工作量以使得所述處理工作量在同一時間被所述第一處理電路和所述第二處理電路中的一個執行; 工作量轉移控制器,該工作量轉移控制器響應於轉移激勵,控制對所述處理工作量的執行在源處理電路被電カ控制電路置於省電狀態之前從所述源處理電路轉移到目標處理電路,所述源處理電路是所述第一和第二處理電路中的ー個處理電路且所述目標處理電路是所述第一和第二處理電路中的另ー個處理電路;其中 至少所述目標處理電路具有緩存; 所述目標處理電路被配置為在所述目標處理電路開始執行被轉移來的處理工作量之前無效所述目標處理電路的緩存; 所述源處理電路被配置為在所述目標處理電路的緩存正被無效時繼續執行所述處理工作量;並且 所述工作量轉移控制器被配置為在所述目標處理電路的緩存已被無效之後將對所述處理工作量的執行轉移到所述目標處理電路。
全文摘要
響應於轉移激勵,對處理工作量的執行從源處理電路被轉移到目標處理電路,為源處理電路在轉移之後被置於省電狀態做準備。為了減少在轉移之後目標處理電路所需要進行的存儲器數據獲取的數目,源處理電路的緩存在偵查時段內被保持在加電狀態。在偵查時段中,緩存偵查電路偵查源緩存中的數據值並獲取偵查的數據值用於目標處理電路。
文檔編號G06F1/32GK102804103SQ201180012192
公開日2012年11月28日 申請日期2011年2月17日 優先權日2010年3月1日
發明者彼得·理察·格林哈爾格 申請人:Arm有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀