TWI564793B - 在多核心處理器中的非對稱核心之間遷移執行緒 - Google Patents
在多核心處理器中的非對稱核心之間遷移執行緒 Download PDFInfo
- Publication number
- TWI564793B TWI564793B TW101149298A TW101149298A TWI564793B TW I564793 B TWI564793 B TW I564793B TW 101149298 A TW101149298 A TW 101149298A TW 101149298 A TW101149298 A TW 101149298A TW I564793 B TWI564793 B TW I564793B
- Authority
- TW
- Taiwan
- Prior art keywords
- core
- processor
- threads
- characteristic
- thread
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Description
本發明之若干實施例大體上關於處理器之作業。更特別地,本發明之若干實施例關於多核心處理器中的非對稱核心之間遷移執行緒。
處理器可具有多核心,其中每一核心與其他核心具有類似特性。例如,多核心之每一者可執行相同指令組,可以類似或相同時鐘頻率操作,可消耗類似電量等。此類型多核心處理器可稱為對稱處理器。對稱多核心處理器可有助於在多核心之間分佈多執行緒。然而,對稱多核心處理器可受限於與多核心之每一者相關之特性,諸如時鐘頻率。
文中所說明之技術大體上關於具非對稱多核心之處理器。處理器為非對稱係因為處理器之多核心的一或多個核心具有與處理器之其他核心不同的至少一特性。例如,依據工作頻率、電力使用、熱特性、指令集、另一核心特性、或其任何組合,一或多個核心可與其他核心不同。為予描繪,一或多個核心可以較其他核心更快時鐘速度作業。有關另一描繪,一或多個核心可執行其他核心無法執行之至少一多媒體指令。具多非對稱核心之處理器亦可稱
為異質處理器。
處理器可包括遷移政策,其識別條件,當滿足該條件時致使處理器從處理器之一核心遷移執行緒至處理器之另一核心。執行緒為作業系統可配置用於在核心上執行之處裡的最小單元。例如,處理器可識別配置供第一核心作業以第一頻率執行之執行緒,可在以較第一頻率快之第二頻率作業的第二核心執行。依據特別政策,處理器接著可從第一核心遷移一或多個執行緒至第二核心。
為予描繪,行動裝置中之處理器,諸如無線電話或平板運算裝置,可包括至少第一核心及第二核心。相較於第二核心,第一核心可以不同(例如較慢)工作頻率運行,具有不同(例如較小)指令集,具有不同(例如較低)傳輸量,具有不同(例如較低)電力使用,或其任何組合。處理器可配置執行緒供第一核心執行以降低電力使用及藉以延長電池壽命。處理器可決定配置供第一核心執行之執行緒包括特別指令,其係第一核心未支援或第二核心可較第一核心更快執行。回應於決定,處理器可從第一核心遷移執行緒至第二核心。在若干範例中,在特別指令已藉由第二核心執行之後,處理器可從第二核心遷移執行緒至第一核心以降低電力使用。
非對稱處理器可經設計而具有多於二個核心。例如,在若干實施中,非對稱處理器可包括多第一類型之核心(例如低用電量核心)及較少核心之第二類型核心(例如單一高效能、較高用電量核心)。在該些類型實施中,處
理器可使用多第一類型核心用於多工作業執行緒(例如負載平衡執行緒,其可並聯執行),及當特別執行緒包括未被支援或可藉由第二類型核心實質上更快執行之指令時,將特別執行緒遷移至第二類型核心。其他實施可包括多第一類型核心(例如低用電量核心),較少第二類型核心(例如單一高效能、較高電力使用、通用核心),及較少第三類型核心(例如單一高效能專用核心,諸如多媒體核心)。在該些類型實施中,處理器可使用多第一類型核心用於多工作業執行緒,及當特別執行緒包括可藉由第二類型核心實質上更快執行之指令時,將特別執行緒遷移至第二類型核心,及當特別執行緒包括可藉由第三類型核心但不可藉由第一及第二類型核心執行之指令(例如多媒體指令)時,將特別執行緒遷移至第三類型核心。
因而,具有至少二不同類型核心之非對稱處理器可提供超越對稱處理器之許多優點。例如,非對稱處理器可使用較具有相同核心之對稱處理器(其為較高電力使用及較高效能核心)較少電力,但可提供較具有相同核心之對稱處理器(其為較低電力使用及較低效能核心)較佳效能。
圖1描繪依據若干實施之框架100的範例,其依據遷移政策以致能非對稱多核心處理器中遷移執行緒。框架100包括具有多非對稱核心之處理器102,諸如第一核心104及第二核心106。第一核心104可具有相關第一特性108組。第二核心106可具有相關第二特性110組。第一特性108組可包括一或多個特性,諸如第一工作頻率
112、第一傳輸量114(例如每秒執行之平均指令數量)、第一用電量116、第一熱特性118、第一指令集120、與第一核心104相關之另一特性、或其任何組合。第二特性110組可包括一或多個特性,諸如第二工作頻率122、第二傳輸量124(例如每秒執行之平均指令數量)、第二用電量126、第二熱特性128、第二指令集130、與第二核心106相關之另一特性、或其任何組合。
工作頻率112或122可識別最小工作頻率、最大工作頻率、工作頻率範圍、與核心相關之另一工作頻率有關特性、或其任何組合。用電量116可識別核心104於特別時間點使用之電量,及用電量126可識別核心106於特別時間點使用之電量。熱特性118可識別核心104於特別時間之核心溫度,及熱特性128可識別核心106於特別時間之核心溫度。
第一指令集120可包括指令以實施各式功能,諸如讀取資料、修改資料、寫入資料等。第二指令集130可包括至少一特別指令(例如多媒體指令),第二核心106可執行但第一核心104無法執行。多媒體指令可包括音頻有關指令、視訊有關指令、另一類型多媒體有關指令、或其任何組合。在若干範例中,第二指令集130可為第一指令集120之超集,例如第二指令集130可包括第一指令集120中所有指令,及未在第一指令集120中之至少一指令。例如,相較於第一核心104,第二核心106可具有擴展指令集。在若干狀況下,第二指令集130可與第一指令集120
完全不同,例如第二指令集130中之指令可排除來自第一指令集120之所有指令。例如,第二核心106可為具專門指令集之專門處理器,諸如圖形處理器、多媒體處理器、數學處理器(例如用以實施浮點運算)、另一類型專門處理器、或其任何組合。
記憶體132可為可存取處理器102。記憶體132可與處理器102整合(例如在與處理器102相同晶片上),記憶體132可與處理器102實體不同,或為二者組合(例如記憶體132之第一部分可與處理器102整合,同時記憶體132之第二部分可與處理器102實體不同)。記憶體132可用以儲存遷移政策134,諸如第一遷移政策136或第二遷移政策138。記憶體132可用以儲存閾值140,諸如工作頻率閾值142、熱閾值144、或傳輸量閾值146。
在作業中,遷移政策134及/或閾值140可識別狀況,當滿足時,致使處理器102實施各式動作。例如,作業系統148包括排程器150,可配置一或多個執行緒152用於在第一核心104執行。執行緒152可包括一或多個指令154。處理器102可定期(例如以預定時間間隔)監視與第一核心104相關之一或多個第一特性108及/或與第二核心106相關之一或多個第二特性110。核心處理器102可依據執行緒152、與核心104相關之第一特性108、與第二核心106相關之第二特性110、或其任何組合而識別特別狀況。例如,核心處理器102可決定第一核心104是否可執行指令154,決定第一核心104之核心溫度,及
核心104或106之其他特性。處理器102可決定是否依據特別狀況應用遷移政策134之一者。例如,處理器102可至少部分依據特別狀況決定應用第一遷移政策136並於可處理器102中遷移156(例如啟動遷移)執行緒152從一核心(例如第一核心104)至另一核心(例如第二核心106)。
在若干狀況下,遷移政策134之一者可回應於決定與第一核心104相關之第一熱特性118滿足熱閾值144,及與第二核心106相關之第二熱特性128不滿足熱閾值144,而指示處理器102遷移156執行緒。例如,在第一核心104執行執行緒152可致使第一熱特性118改變,諸如與第一核心104相關之溫度。為予描繪,指令154可包括計算密集指令其致使第一核心104之溫度增加以接近第一核心104之最大作業溫度。當第一熱特性118滿足熱閾值144且第二熱特性128不滿足熱閾值144時,處理器102可應用第一遷移政策136。第一遷移政策136可指示處理器102遷移156執行緒152,從第一核心104至第二核心106。例如,第二核心106可執行計算密集指令而未造成第二熱特性128顯著改變。在遷移執行緒152至第二核心106之後,處理器102可繼續定期監視特性108及110。
在之後時間點,處理器102可決定應用第二遷移政策138。例如,處理器102可決定第一熱特性118指出第一核心104之溫度已降低及不再滿足溫度閾值144。處理器
102亦可決定目前藉由第二核心106執行之執行緒152不包括計算密集指令(例如第二核心106已完成執行執行緒152之計算密集指令154)。例如,處理器102可決定第二核心106之一或多個指令管線僅包括非計算密集指令。處理器102接著可決定應用第二遷移政策138並遷移158執行緒152,從第二核心106至另一核心(例如第一核心104)。因而,當第一核心104之第一熱特性118滿足熱閾值144及/或第二熱特性128不滿足熱閾值144時,處理器102可遷移156執行緒152,從第一核心104至第二核心106。之後,當第一核心104之溫度不滿足熱閾值144時,處理器102可遷移158執行緒152,從第二核心106至另一核心(例如第一核心104或具類似或相同特性之另一核心)。例如,處理器102可遷移158執行緒152至第三核心,其具有類似或相同於第一核心104之特性。此外,執行緒152之後可遷移至第一核心104、第二核心106、或處理器102之另一核心。
在若干實施中,遷移政策134之一者可回應於決定與第一核心104相關之第一傳輸量114特性不滿足傳輸量閾值146,且與第二核心106相關之第二傳輸量124特性滿足傳輸量閾值146,而致使處理器遷移156執行緒152。例如,處理器102可決定第一核心104之第一傳輸量114(例如每秒執行之指令數量)小於第二核心106之第二傳輸量124。處理器102可決定(例如依據檢查第一核心104之指令管線)指令154為計算密集指令,第二核心
106可較第一核心104更快執行。處理器102接著可決定應用第一遷移政策136。當滿足特別狀況時,第一遷移政策136可指示處理器102遷移156執行緒152,從第一核心104至第二核心106。例如,第一遷移政策136可指明當執行緒152配置用於在第一核心104執行並包括計算密集指令,且第二傳輸量124滿足傳輸量閾值146但第一傳輸量114不滿足傳輸量閾值146時,處理器102可遷移156執行緒152,從第一核心104至第二核心106。在執行緒152之計算密集指令已藉由第二核心執行之後,處理器102可決定應用第二遷移政策138。例如,第二遷移政策138可指明當執行緒152配置用於在第二核心106執行並不包括計算密集指令時,處理器102可遷移158執行緒152,從第二核心106至另一核心(例如第一核心104或具類似或相同特性之另一核心)。因而,當第二核心106可以滿足傳輸量閾值146之速率執行指令154(例如當指令154包括計算密集指令時)及/或第一核心104無法以滿足傳輸量閾值146之速率執行指令154時,處理器102可遷移156執行緒152,從第一核心104至第二核心106。在之後時間點,在第二核心106已完成執行執行緒152之指令154之後,處理器102可遷移158執行緒152,從第二核心106至另一核心(例如第一核心104或具與第一核心104類似或相同特性之第三核心)。
在若干狀況下,遷移政策134之一者可回應於決定與第一核心104相關之第一工作頻率112不滿足工作頻率閾
值142且與第二核心106相關之第二工作頻率122滿足工作頻率閾值142,而致使處理器遷移156執行緒152。例如,執行緒152可指明將以滿足工作頻率閾值142之特別頻率執行指令154。例如,指令154可致使顯示多媒體內容(例如音頻內容及視訊內容),諸如即時視訊聊天螢幕。排程器150可配置執行緒152供第一核心104執行。處理器102可決定第一核心104之第一工作頻率112不滿足工作頻率閾值142,但第二核心106之第二工作頻率112滿足工作頻率閾值142。處理器102可依據指令154、第一工作頻率112、第二工作頻率122、及工作頻率閾值142之一或多者決定應用第一遷移政策136,並遷移156執行緒152,從第一核心104至第二核心106。處理器102可繼續監視特性108及110。在第二核心106已完成執行指令154之後,處理器102可決定應用第二遷移政策138(例如執行緒152未指明以工作頻率閾值142之指令154的執行),並遷移158執行緒152,從第二核心106至另一核心(例如第一核心104或類似或等同於第一核心104之另一核心)。例如,處理器102可遷移158執行緒152至第三核心,其具有類似於與第一核心104相關之特性108的特性。
在若干範例中,遷移政策134之一者可回應於決定與第一核心104相關之第一電力使用特性116大於與第二核心106相關之第二電力使用特性126,而致使處理器遷移156執行緒152。例如,第一核心104之電力使用特性116
可大於第二核心106之用電量特性126,且處理器102可決定電力保存政策應用(例如與電池相關之電池壽命量可滿足特別閾值)。為予描繪,處理器102可決定可攜式運算裝置之電池具有小於剩餘電力百分之十。處理器102可遷移156執行緒152,從第一核心104至第二核心106,以降低用以執行執行緒152之電力。
在之後時間點,處理器102可遷移158執行緒152,從第二核心106至第一核心104。例如,在遷移之後,當藉由第二核心106執行執行緒152時,處理器102可決定不應用電力保存政策(例如重新充電可攜式運算裝置之電池),指令154包括計算密集指令,指令154包括在第一指令集120中但不在第二指令集130中之指令,或其組合。處理器102接著可遷移158執行緒152,從第二核心106至第一核心104。因而,當第一用電量116大於第二用電量126並應用電力保存政策(例如遷移政策134之一者)時,處理器102可遷移156執行緒152,從第一核心104至第二核心106。在之後時間點,處理器102可回應於決定不再應用電力保存政策、應用遷移政策134之另一者、或二者,而遷移158執行緒152,從第二核心106至另一核心(例如第一核心104或具類似特性之另一核心)。例如,處理器102可遷移158執行緒152至第三核心,其具有與第一核心104類似或相同之特性。
回應於決定第一指令集120不包括特別指令且第二指令集130包括特別指令,遷移政策134之一者可致使處理
器遷移156執行緒152。例如,第二核心106可執行第一核心104無法執行之至少一指令。為予描繪,第二核心106可為第一核心104之先進及/或較新版本,使得第二指令集130可包括第一指令集120及不在第一指令集120中之至少一指令。有關另一描繪,第二核心106可執行專門指令,諸如多媒體指令、浮點指令等。排程器150可配置執行緒152供第一核心104執行。處理器102可決定(例如藉由檢查核心104之指令高速緩衝記憶體)第一核心104無法執行一或多個指令154,且第二核心106可執行指令154。例如,處理器102可決定指令154之至少一者係從與第一核心104相關之第一指令集120排除,並包括於與第二核心106相關之第二指令集130中。處理器102可決定應用遷移政策134,諸如第一遷移政策136。當配置供第一核心104執行之執行緒152包括特別指令154,其係包括於第二指令集130中,但從第一指令集120排除時,遷移政策134可指示處理器102遷移156執行緒152,從第一核心104至第二核心106。在若干範例中,在第二核心106已完成執行指令154之後,處理器102可決定應用其他遷移政策,並遷移158執行緒152,從第二核心106至第一核心104。例如,在指令154已藉由第二核心106執行之後,處理器102可決定剩餘指令可藉由第一處理器102執行(例如包括於第一指令集120中),並遷移158執行緒152至另一核心(例如第一核心104或具有類似或相等特性之另一核心)。例如,處理器102可遷移
158執行緒152至第三核心,其具有特性類似或等同於第一核心104。
因而,處理器102可定期監視特性108及110及執行緒152中之指令154,以決定是否應用特別遷移政策(例如遷移政策134之一者)。回應於決定應用特別遷移政策,處理器102可遷移156執行緒152,從處理器102中多核心之第一核心104至第二核心106。在之後時間點,回應於決定不再應用特別遷移政策、應用另一遷移政策、或二者,處理器102可遷移執行緒152,從第二核心106至另一核心,諸如第一核心104或具有類似或等同於特性108之特性的第三核心。例如,第一核心104可為較低電力使用及較低效能核心,同時第二核心106可為較高電力使用及較高效能核心。在此範例中,依據遷移政策134,藉由配置執行緒供第一核心104執行,同時依需要藉由遷移執行緒152至第二核心106而提供效能,處理器102可為相對低用電量。因而,諸如無線電話之無線運算裝置合併處理器102,經由第一核心104可提供相對較低電力使用,但可經由第二核心106而快速實施計算密集指令或多媒體指令。
圖2描繪依據若干實施之框架200範例,以依據核心特性識別符致能非對稱多核心處理器中遷移執行緒。框架200可包括包含多核心之處理器102,該多核心包括第一核心104、第二核心106、及額外核心,最多至第N核心202,其中N大於二。核心104、106、及202之每一者可
具有相關特性。例如,第一特性108可與第一核心104相關,第二特性110可與第二核心106相關,第N特性204可與第N核心202相關。
記憶體132可用以儲存核心特性識別符206,其識別處理器102中多核心之一或多個特性。在若干實施中,核心特性識別符206可包括多識別符,且每一識別符對應於處理器102之核心。例如,第一識別符208可對應於第一核心104,第二識別符210可對應於第二核心106,及第N識別符212可對應於第N核心202。記憶體132可用以儲存邏輯214,其包括邏輯指令,諸如微碼或其他邏輯指令,可藉由處理器102執行以實施各式功能,諸如在中圖1,決定何時遷移156或遷移158執行緒152,從處理器102之一核心至另一核心。
核心特性識別符206可識別處理器102中多核心之一或多個特性。若作業系統148不知道或無法存取核心特性識別符206,如以上參照圖1所討論,處理器102可決定何時遷移執行緒,從一核心至另一核心。若作業系統148可存取核心特性識別符206以識別處理器102中多核心之特性,作業系統148可依據一或多個遷移政策218決定何時遷移執行緒,從一核心至另一核心。遷移政策218可指明狀況,當滿足時,致使作業系統148實施動作,諸如遷移執行緒,從一核心至另一核心。核心特性識別符206可儲存於記憶體132中。核心特性識別符206可識別與核心104、106、或202相關之特性108、110、或204之一或多
者。例如,第一識別符208可識別與第一核心104相關之一或多個第一特性108,第二識別符210可識別與第二核心106相關之一或多個第二特性110,及第N識別符212可識別與第N核心202相關之一或多個第N特性204。
核心特性識別符206可實施為位元遮罩、資料結構、或另一類型識別符。例如,當核心104、106、及202包括二類型核心時,核心特性識別符206可為位元遮罩,其中「0」識別第一類型核心(例如較低電力使用及較低效能類型核心),及「1」識別第二類型核心(例如較高電力使用及較高效能核心)。因而,若N=3且第N核心202為第三核心,遮罩「0 0 1」(例如核心特性識別符206)可指出核心104及106為第一類型核心及第N核心202為第二類型核心。有關另一範例,處理器102可包括三核心類型,諸如較低用電量類型核心、較高效能類型核心、及多媒體核心。在此範例中,二位元可用以識別核心類型。因而,遮罩「00 01 10」(例如核心特性識別符206)可識別第一核心104為較低用電量類型核心,第二核心106為較高效能類型核心,及第N核心202為多媒體核心。當然,其他類型位元遮罩及/或資料結構可識別與核心104、106、及202相關之特性108、110、及204。
此外,識別符208、210、及212可識別核心104、106、及202之額外特性,諸如工作頻率、傳輸量、電力使用、熱特性、指令集、核心104、106、及202之其他特性、或其組合。例如,第一識別符208可識別與第一核心
104相關之至少若干第一特性108,及第二識別符210可識別第二核心106之至少若干第二特性110。
在若干實施中,核心特性識別符206可為靜態(例如未改變),同時在其他實施中,至少一部分核心特性識別符206可動態或定期更新。例如,特性108、110、及204可包括熱(例如核心溫度)特性,其係定期(例如以預定間隔)或動態(例如當熱特性滿足特別閾值時)更新。為予描繪,處理器102可定期監視特性108、110、及204,諸如與核心104、106、及202相關之核心溫度。當特性108、110、及204之一者滿足特別閾值時,處理器102可更新識別符208、210、或212之一或多者。例如,處理器102可決定第一核心104之核心溫度滿足溫度閾值並更新第一識別符208之對應部分。
作業系統148可定期存取核心特性識別符206,並決定是否應用遷移政策218之一者。若應用遷移政策218之一者,作業系統148可實施動作,諸如遷移執行緒152,從處理器102中一核心至另一核心。例如,作業系統148可存取核心特性識別符206(例如藉由實施讀取核心特性識別符指令216),決定與第一核心104相關之核心溫度特性滿足溫度閾值,決定應用遷移政策134之一者,及遷移執行緒152,從處理器102中第一核心104至N核心之另一核心。
特性108、110、或204之一或多者可識別與核心104、106、或202相關之容量或負載。為予描繪,處理器
102可定期或動態更新識別符208、210、或212之一者,以指出相關核心執行M執行緒(其中M為大於或等於零),相關核心是否執行計算密集指令,相關核心是否具有容量以執行額外執行緒,核心是否閒置或停止,及/或其他核心容量有關特性。作業系統148可定期存取核心特性識別符206及至少部分依據核心特性識別符206而實施動作,諸如遷移執行緒152,從處理器102中一核心至另一核心。例如,當與第一核心104相關之核心溫度滿足溫度閾值時,作業系統148可識別處理器102中哪一剩餘核心(例如核心106及202)具有充分容量,以於遷移執行緒152至剩餘核心之一者之前,執行執行緒152。
在若干狀況下,作業系統148可不知道或無法存取核心特性識別符206。在該些狀況下,處理器102可產生中斷220以致使作業系統遷移執行緒152。例如,排程器150可配置執行緒152供第一核心104執行。處理器102可決定第一核心104無法執行指令154之至少一者(例如第一指令集120不包括指令154之至少一者)並產生中斷220。與作業系統148相關之中斷處理程序222可接收藉由處理器102產生之中斷220。中斷處理程序222可依據中斷220、遷移政策218、或二者中所包括之資訊遷移執行緒152。例如,在具二核心之處理器中,諸如圖1中所描繪之處理器102,中斷處理程序222可回應於接收中斷220,而遷移執行緒152從第一核心104至第二核心106。在此範例中,遷移政策可指明「當中斷發生時,遷移執行
緒,從配置將執行之核心至其他核心」。有關另一範例,在具二類型核心(例如第一類型核心及第二類型核心)之處理器中,作業系統148可決定執行緒係配置藉由第一類型核心執行並遷移執行緒至第二類型核心。
在若干範例中,中斷220可指示中斷處理程序222遷移執行緒152至特別類型核心。例如,若指令154為計算密集,中斷220可指示中斷處理程序222遷移執行緒152至更快或更有力(例如更大傳輸量)之核心。若指令154包括專門指令,諸如多媒體指令,中斷處理程序222可指示中斷處理程序222遷移執行緒152至多媒體類型核心。中斷220可包括至少一部分核心特性識別符206。在若干實施中,處理器102可產生中斷220以指示作業系統148電力保存政策生效(例如行動裝置之電池壽命已下降低於特別電力閾值)。回應於接收中斷,作業系統148可遷移執行緒152至具有較低電力使用之核心。
因而,處理器102可協助作業系統148決定作業系統148應於何時遷移執行緒,從處理器102之一核心至另一核心。處理器102可經由識別符,諸如核心特性識別符206,提供有關核心104、106、及202之特性108、110、及204的資訊至作業系統148。處理器102可定期監視特性108、110、或204,及依據特性108、110、或204而定期或動態(例如回應於滿足預定閾值之特別特性)更新識別符208、210、或212之一或多者。
在若干實施中,作業系統148可使用讀取核心特性指
令216以讀取核心特性識別符206之內容。作業系統148可依據核心特性識別符206而決定是否應用遷移政策218之一者。作業系統148可依據核心特性識別符206、遷移政策218、或二者,應用遷移政策218之一者,並遷移執行緒152。若作業系統148不知道或無法讀取核心特性識別符206,處理器102可產生中斷220。中斷220可包括充分資訊以致能作業系統148遷移執行緒,從一核心至另一核心。例如,中斷220可包括至少一部分核心特性識別符206。
以此方式,處理器102可配合廣泛的各種作業系統工作,諸如可讀取核心特性識別符206之作業系統,以及不知道或無法讀取核心特性識別符206之作業系統。依據作業系統148之能力,處理器102可遷移執行緒,從一核心至另一核心,更新核心特性識別符206以使作業系統148可決定何時遷移執行緒,產生中斷220以指示作業系統148遷移執行緒,或其任何組合。
圖3描繪依據若干實施之用於遷移執行緒之框架300的第一範例。框架300描繪非對稱多核心處理器中如何可遷移執行緒,從一核心至另一核心。
執行緒152可配置供第一核心104執行。處理器102或作業系統148可依據指令154、第一特性108、第二特性110、遷移政策134、核心特性識別符206、或其任何組合而決定遷移156執行緒152(例如啟動執行緒152之遷移),從第一核心104至第二核心106。
因此,可指示第一核心104停止執行執行緒152。在第一核心104已停止之後,可實施背景保存302以製造與第一核心104相關之保存狀態304。保存狀態304可包括第一核心104之狀態快照,諸如與第一核心104相關之管線、高速緩衝記憶體、緩衝器等內容。若第二核心106為與第一核心104不同類型核心(例如與第一特性108不同之第二特性110之至少一者),狀態映射306則可用以映射第一核心104之保存狀態304至映射狀態308,其適於藉由第二核心106執行。
狀態映射306可映射保存狀態304之內容至與第二核心106之狀態相關之對應內容。例如,第一核心104可為32位元處理器,同時第二核心可為64位元處理器。在此範例中,狀態映射306可藉由將32位元記憶體位址轉換為64位元記憶體位址、將32位元指令轉換為64位元指令、及實施其他32位元至64位元映射,而修改保存狀態304之至少若干內容。狀態映射306可適當地實施保存狀態304之其他映射,以使第二核心106可使用映射狀態308執行執行緒152,且極少或不影響執行緒152之執行。在狀態映射306用以製造映射狀態308之後,可停止第二核心106(若其正在執行),並可實施背景恢復310以將映射狀態308載入第二核心106。若第二核心106在停止前執行執行緒,可實施背景保存作業以保存第二核心106之狀態,且映射狀態308在實施背景恢復310之前可與第二核心106之保存狀態合併或結合(例如在遷移未藉
由執行緒152遷移至第二核心106顯著影響之前,於第二核心106執行執行緒)。在背景恢復310已完成後,可指示第二核心106使用映射狀態308執行執行緒152。因而,在遷移156執行緒152至第二核心106之後,執行緒152可恢復藉由第二核心106執行。
執行緒152從第一核心104遷移至第二核心106對包括處理器102之運算裝置的使用者而言是顯見的。例如,使用者可注意到藉由執行緒152實施之作業鮮少或無中斷。包括處理器102之運算裝置可以使用者不知道執行緒152從處理器102之一核心遷移至另一核心之方式作動。
若第二核心106具有與第一核心104類似或相同特性110,可不實施狀態映射306。相反地,保存狀態304可用作映射狀態308。例如,第二核心106可為第一核心104之較新或改良版本,相較於第一核心104具類似或相同架構。在該等環境下,可不實施狀態映射306。為予描繪,若第二核心106具有較第一核心104更快工作頻率,但具有與第一核心104相同或類似架構,則可不實施狀態映射306。有關另一描繪,若第二核心106具有包括第一核心104之指令集的指令集,但具有與第一核心104相同或類似架構,則可不實施狀態映射306。
因而,當啟動遷移執行緒,從第一核心(例如第一核心104)至第二核心(例如第二核心106)時,可停止第一核心並可實施背景保存302以製造保存狀態304。若第二核心具有與第一核心充分不同特性,可實施狀態映射
306以依據保存狀態304製造映射狀態308。可停止第二核心並可使用背景恢復310將映射狀態308載入第二核心106。在背景恢復310已完成後,可指示第二核心依據映射狀態308執行執行緒152。若第二核心具有與第一核心類似或相同特性,使得不實施狀態映射306,保存狀態304可用作映射狀態308用於背景恢復310。以此方式,執行緒可無縫及明顯地遷移,從處理器102之一核心至另一核心,且極少或無毀壞/影響執行緒152。執行緒152可遷移156,從一核心至另一核心,且無使用者知道執行緒152之執行中斷。例如,遷移可不造成執行緒152、處理器102、及運算裝置之執行效能的任何顯著下降。相反的,使用者可注意到藉由執行緒152實施之工作正在更快地執行,或正在實施多媒體作業。例如,在若干實施中,可於少於四十微秒發生整個遷移156作業。
圖4描繪依據若干實施之用於遷移執行緒之框架400的第二範例。框架400描繪在從第一核心遷移至第二核心之後,執行緒如何可遷移回至另一核心。處理器102可包括第一核心104、第二核心106、及第三核心402。第三特性404可與第三核心402相關。
在若干範例中,在如以上參照圖3說明之執行緒152已從第一核心104遷移至第二核心106之後,可實施決定以啟動遷移執行緒152,從第二核心106至另一核心,諸如第一核心104或第三核心402。例如,在第二核心106完成執行指令154後,處理器102或作業系統148可決定
執行緒152可藉由處理器102之另一核心執行。例如,相較於其他核心,諸如核心104或402,第二核心106可具有相對較高用電量。處理器102或作業系統148可決定應用政策,諸如電力保存政策。為降低與執行執行緒152相關之電力使用,處理器102或作業系統148可遷移158執行緒152,從處理器102之第二核心106至另一核心(例如第三核心402或第一核心104),其使用較第二核心106更少電力。
因此,可指示第二核心106停止執行執行緒152。可實施背景保存406以製造與第二核心106相關之保存狀態408。可實施狀態映射410以製造映射狀態412用於目的地核心(例如第三核心402或第一核心104)。可實施背景恢復414以提供映射狀態412至目的地核心。例如,在圖4中,背景恢復414可用以提供映射狀態412至第三核心402。第三核心402可依據映射狀態412執行執行緒152。
當然,可發生其他情況,其中處理器102或作業系統148首先遷移執行緒152,從第一核心104至第二核心106,接著遷移執行緒152,從第二核心106至第三核心402。例如,第一核心104可為低電力使用、低效能核心,第二核心106可為高電力使用、高效能核心,及第三核心402可為專門核心,諸如多媒體核心。最初,執行緒152可藉由第一核心104執行以保存電力使用。指令154可包括計算密集指令,其致使第一核心104之核心溫度增
加,使得其滿足圖1之熱閾值144。執行緒152可從第一核心104遷移至第二核心106,以致能第一核心104之核心溫度減少。第二核心106可執行執行緒152而為不利地影響第二核心106之核心溫度。在遷移之後,第二核心106可執行執行緒152。執行緒152可包括核心104及106無法執行之專門指令(例如多媒體指令)。當執行緒152之專門指令配置供第二核心執行時,處理器102或作業系統148可遷移158執行緒152,從第二核心106至可執行專門指令之專門核心(例如第三核心402)。
圖5、6、及7為依據若干實施之用於遷移執行緒之程序範例。在圖5、6、及7之流程圖中,每一方塊代表一或多個作業,可於硬體、韌體、軟體、或其組合中實施。在圖5、6、及7中說明之程序可藉由具多個非對稱核心之處理器實施,諸如處理器102。在軟體之背景中,方塊代表電腦可執行指令,當藉由處理器執行時,使處理器實施所提及之作業。通常電腦可執行指令包括常式、程式、物件、模組、組件、資料結構等,實施特別功能或實施特別抽象資料類型。其中說明方塊之順序不希望被解譯為限制,且任何數量的所說明之作業可以任何順序組合及/或平行實施程序。為討論之目的,參照以上說明之框架100、200、300、及400說明程序500、600、及700,儘管其他模型、框架、系統及環境可實施該些程序。
圖5描繪依據若干實施之用於遷移執行緒之程序500範例之流程圖。在方塊502,一或多個執行緒可配置用於
(或可被執行)第一核心,且核心可被停止。例如,在圖3中,處理器102或作業系統148可決定遷移156執行緒152,從第一核心104至第二核心106。遷移程序可包括停止第一核心104。
在方塊504,可實施背景保存作業以保存第一核心之狀態。例如,在圖3中,背景保存302可製造與第一核心104相關之保存狀態304。在方塊506,可映射保存狀態以製造供第二核心使用之映射狀態。例如,在圖3中,狀態映射306可映射保存狀態304以製造供第二核心106使用之映射狀態308。在方塊508,實施背景恢復作業以提供映射狀態至第二核心。例如,在圖3中,背景恢復310提供映射狀態308至第二核心106。在方塊510,經由第二核心依據映射狀態執行一或多個執行緒。例如,在圖3中,藉由第二核心106依據映射狀態308執行執行緒152。
因而,執行緒可從非對稱多核心處理器一類型核心遷移至另一類型核心。遷移執行緒可使處理器或作業系統可利用不同類型核心之不同特性。例如,執行緒可遷移至低用電量核心以保存電力,至高效能核心以改進效能或執行計算密集指令,或至專門核心(例如多媒體核心)以執行專門指令。尤其,具有限電量之可攜式運算裝置(例如電池充電裝置),諸如無線電話或平板運算裝置,可合併非對稱處理器以提供相對低用電量,同時依需要提供效能(例如依據被執行之軟體需求)。
圖6描繪依據若干實施之程序600範例的流程圖,用於依據遷移政策遷移執行緒。在方塊602,識別配置用於在處理器執行之一或多個執行緒。處理器包括複數核心,包括第一核心及第二核心。第一核心可具有相關第一特性,及第二核心可具有與第一特性不同之相關第二特性。例如,在圖1中,處理器102可具有多核心,包括第一核心104及第二核心106。第一核心104可具有相關第一特性108,及第二核心106可具有相關第二特性110。第一特性108之至少一者可與第二特性110不同。在方塊604,處理器可啟動藉由第一核心執行一或多個執行緒。例如,在圖1中,排程器150可配置執行緒152供第一核心104執行。為予回應,第一核心104可啟動執行執行緒152。
在方塊606,可決定是否應用遷移政策。遷移政策可識別特定的一組條件,當條件滿足時,指示處理器遷移執行緒,從一核心至另一核心。例如,在圖1中,處理器102可依據特性108、特性110、指令154、閾值140、或其任何組合,而決定是否應用遷移政策134之一者。有關另一範例,作業系統148可依據核心特性識別符206、指令154、各式閾值(類似於圖1之閾值140)、或其任何組合,而決定是否應用遷移政策218之一者。在方塊608,可啟動遷移一或多個執行緒,從第一核心至第二核心。例如,如圖3中所描繪,從第一核心104至第二核心106遷移一或多個執行緒152,可包括實施背景保存302
以製造保存狀態304,實施狀態映射306以製造映射狀態308,及藉由第二核心依據映射狀態308執行執行緒。
因而,可依據遷移政策,從非對稱多核心處理器中之一類型核心至另一類型核心遷移執行緒。例如,當電力保存政策生效時,遷移政策可指示處理器102遷移執行緒152。有關又另一範例,當第一核心104無法執行指令154之至少一者,且第二核心106可執行指令154之至少一者時,遷移政策可致使處理器102遷移執行緒152。遷移執行緒使處理器或作業系統可利用不同類型核心之不同特性。
圖7描繪依據若干實施之程序700範例的流程圖,用於依據指令集遷移執行緒。在方塊702,識別配置供處理器之第一核心執行的一組執行緒。例如,在圖1中,處理器102可識別執行緒152為配置供第一核心104執行。在方塊704,可決定第二核心可執行執行緒組。例如,在圖1中,處理器102或作業系統148可決定第二核心106可執行執行緒152,並可較可執行執行緒152之第一核心104更快執行執行緒152,因為第二核心106具有較第一核心104更快執行傳輸量。
在方塊706,執行緒組可從第一核心遷移至第二核心。例如,在圖1中,處理器102或作業系統148可決定執行緒152包括計算密集指令,其造成第一核心104之核心溫度增加。處理器102或作業系統148可決定執行緒152可藉由第二核心106執行。在此範例中,處理器102
或作業系統148可遷移執行緒152從第一核心104遷移至第二核心106,以使第一核心104之核心溫度可減少、以使執行緒152可藉由具有更多執行傳輸量之核心執行、或二者。在方塊708,第二組執行緒可識別為配置供第一核心執行。例如,在圖1中,處理器102可識別執行緒152為配置供第一核心104執行。
在方塊710,可決定第二組執行緒包括第一核心無法執行且第二核心可執行之至少一指令。在方塊712,第二組執行緒從第一核心遷移至第二核心。例如,在圖2中,處理器102或作業系統148(例如經由中斷220)可決定執行緒152中指令154之至少一者不可藉由第一核心104執行。處理器102或作業系統148可決定另一核心,諸如第二核心106或第N核心202,可執行指令154。處理器102或作業系統148可遷移執行緒152至其他核心(例如第二核心106或第N核心202)。
因而,執行緒可從非對稱多核心處理器中一類型核心遷移至另一類型核心。遷移執行緒可使處理器或作業系統利用不同類型核心之不同特性。例如,執行緒可從低電力使用/低效能核心遷移至高電力使用/高效能核心,以改進效能或執行計算密集指令。有關另一範例,執行緒可遷移至可執行第一核心無法執行之特別指令的第二核心。
圖8描繪依據若干實施之框架800範例,其包括非對稱多核心處理器。框架800包括裝置802,其可為電子裝置,諸如桌上型運算裝置、膝上型運算裝置、平板運算裝
置、輕省筆電運算裝置、無線運算裝置等。
裝置802可包括一或多個處理器,諸如處理器102、時鐘產生器804、記憶體132、輸入/輸出控制集線器806、及電源808(例如電池或電力供應器)。在若干實施中,裝置802中至少一處理器可包括多核心處理器,諸如處理器102。例如,多核心處理器102可包括多於一個核心,諸如第一核心104、第二核心106,及在若干實施中,一或多個額外核心,直至並包括第N核心202。處理器102可包括記憶體控制器810,以致能存取(例如讀取自或寫入至)記憶體132。
N核心104、106、及202之每一者可具有相關特性。例如,第一核心104可具有相關第一特性108。核心特性識別符206可識別處理器102之N核心之每一者的一或多個特性。在若干實施中,作業系統148可讀取核心特性識別符206以決定何時遷移執行緒152,從N核心之第一核心至第二核心。在其他實施中,其中作業系統148不知道或無法讀取核心特性識別符206,處理器102可決定何時遷移執行緒152,從第一核心104至第二核心106。例如,作業系統148或處理器102可依據遷移政策134遷移執行緒152,從第一核心104至第二核心106。在遷移期間,可停止第一核心104,並可保存第一核心104之狀態為第一狀態304。在若干狀況下,第一核心104之保存狀態304可使用狀態映射306映射,以製造映射狀態308。映射狀態308可用以恢復第二核心106上執行緒152之執
行。遷移政策134、保存狀態304、狀態映射306、或映射狀態308之一或多者可儲存於處理器102之板上記憶體中、記憶體132中、或二者之組合。
時鐘產生器804可產生時鐘信號,其為處理器102之N核心之一或多者的工作頻率基礎。例如,N核心104、106、或202之一或多者可以藉由時鐘產生器804產生之時鐘信號的倍數操作。
輸入/輸出控制集線器806可耦接至大量儲存器812。大量儲存器812可包括一或多個非揮發性儲存裝置,諸如磁碟機、固態驅動器等。作業系統148可儲存於大量儲存器812中。
輸入/輸出控制集線器806可耦接至網路埠814。網路埠814可使裝置802經由網路816與其他裝置通訊。網路816可包括多網路,諸如有線網路(例如公共交換電話網路等)、無線網路(例如802.11,分碼多工存取(CDMA)、全球行動系統(GSM)、長期演進(LTE)等)、其他類型通訊網路、或其任何組合。輸入/輸出控制集線器804可耦接至顯示裝置818,其可顯示文字、圖形等。
如文中所說明,處理器102可包括多運算單元或多核心。處理器102可實施為一或多個微處理器、微電腦、微控制器、數位信號處理器、中央處理單元、狀態機器、邏輯電路、及/或依據作業指令操縱信號之任何裝置。在其他能力中,處理器102可經組配以提取及執行儲存於記憶
體132或其他電腦可讀取媒體中之指令。
記憶體132為電腦儲存媒體之範例,用於儲存藉由處理器102執行之指令,以實施以上所說明之各式功能。記憶體132一般可包括揮發性記憶體及非揮發性記憶體(例如RAM、ROM等)。記憶體132文中可稱為記憶體或電腦儲存媒體,並可為非暫態性媒體,其可將電腦可讀取、處理器可執行程式指令儲存為電腦程式碼,可藉由處理器102執行為特別機器經組配用於實施文中之實施中所說明之作業及功能。
文中所說明之系統及運算裝置範例僅為適於若干實施之範例,不希望暗示有關使用範圍或實施文中所說明之程序、組件、及特徵的環境功能性、架構及框架的任何限制。因而,文中實施為許多環境或架構之作業,並可以通用及專用運算系統、或具有處理能力之其他裝置實施。通常,參照圖式說明之任何功能可使用軟體、硬體(例如固定邏輯電路)或該些實施之組合實施。文中使用之「模組」、「機構」或「組件」用詞通常代表軟體、硬體、或軟體及硬體之組合,可經組配以實施規定功能。例如,在軟體實施之狀況下,「模組」、「機構」或「組件」用詞可代表程式碼(及/或陳述型指令),當於處理裝置或裝置(例如CPU或處理器)上執行時,實施特定工作或作業。程式碼可儲存於一或多個電腦可讀取記憶體裝置或其他電腦儲存裝置中。因而,文中所說明之程序、組件及模組可藉由電腦程式產品實施。
此外,本揭露提供如說明及如圖式中所描繪之各式實施範例。然而,本揭露不侷限於文中所說明及描繪之實施,而是可延伸至其他實施,如熟悉本技藝之人士所已知或將已知。說明書中提及「一實施」、「本實施」、「該些實施」或「若干實施」表示所說明之特徵、結構、或特性係包括於至少一實施中,且該些用語出現於說明書中各處不一定均指相同實施。
儘管已以結構特徵及/或方法論動作專用語言說明標的,申請專利範圍中所界定的標的並不侷限於以上所說明之特徵或動作。而是,揭露以上所說明之特徵及動作作為實施之範例形式。本揭露希望涵蓋所揭露實施之任何或所有調適或改變,且申請專利範圍不應解譯為侷限於說明書中所揭露之特定實施。相反地,本文獻之範圍係完全藉由申請專利範圍連同申請專利範圍所主張之整個相等範圍決定。
100、200、300、400、800‧‧‧框架
102‧‧‧處理器
104‧‧‧第一核心
106‧‧‧第二核心
108‧‧‧第一特性
110‧‧‧第二特性
112‧‧‧第一工作頻率
114‧‧‧第一傳輸量
116‧‧‧第一用電量
118‧‧‧第一熱特性
120‧‧‧第一指令集
122‧‧‧第二工作頻率
124‧‧‧第二傳輸量
126‧‧‧第二用電量
128‧‧‧第二熱特性
130‧‧‧第二指令集
132‧‧‧記憶體
134、218‧‧‧遷移政策
136‧‧‧第一遷移政策
138‧‧‧第二遷移政策
140‧‧‧閾值
142‧‧‧工作頻率閾值
144‧‧‧熱閾值
146‧‧‧傳輸量閾值
148‧‧‧作業系統
150‧‧‧排程器
152‧‧‧執行緒
154‧‧‧指令
156、158‧‧‧遷移
202‧‧‧第N核心
204‧‧‧第N特性
206‧‧‧核心特性識別符
208‧‧‧第一識別符
210‧‧‧第二識別符
212‧‧‧第N識別符
214‧‧‧邏輯
216‧‧‧讀取核心特性識別符指令
220‧‧‧中斷
222‧‧‧中斷處理程序
302、406‧‧‧背景保存
304、408‧‧‧保存狀態
306、410‧‧‧狀態映射
308、412‧‧‧映射狀態
310、414‧‧‧背景恢復
402‧‧‧第三核心
404‧‧‧第三特性
500、600、700‧‧‧程序
502、504、506、508、510、602、604、606、608、610、702、704、706、708、710、712‧‧‧方塊
802‧‧‧裝置
804‧‧‧時鐘產生器
806‧‧‧輸入/輸出控制集線器
808‧‧‧電源
810‧‧‧記憶體控制器
812‧‧‧大量儲存器
814‧‧‧網路埠
816‧‧‧網路
818‧‧‧顯示裝置
詳細說明係參照圖式提出。在圖式中,代號之最左數字識別代號首次出現之圖。不同圖式中使用相同代號指出類似或相同物件或特徵。
圖1描繪依據若干實施之框架範例,其依據遷移政策以致能非對稱多核心處理器中遷移執行緒。
圖2描繪依據若干實施之框架範例,其依據核心特性識別符以致能非對稱多核心處理器中遷移執行緒。
圖3描繪依據若干實施之用於遷移執行緒之框架的第一範例。
圖4描繪依據若干實施之用於遷移執行緒之框架的第二範例。
圖5描繪依據若干實施之用於遷移執行緒之程序範例的流程圖。
圖6描繪依據若干實施之根據遷移政策用於遷移執行緒之程序範例的流程圖。
圖7描繪依據若干實施之根據指令集用於遷移執行緒之程序範例的流程圖。
圖8描繪依據若干實施之包括非對稱多核心處理器之框架範例。
100‧‧‧框架
102‧‧‧處理器
104‧‧‧第一核心
106‧‧‧第二核心
108‧‧‧第一特性
110‧‧‧第二特性
112‧‧‧第一工作頻率
114‧‧‧第一傳輸量
116‧‧‧第一用電量
118‧‧‧第一熱特性
120‧‧‧第一指令集
122‧‧‧第二工作頻率
124‧‧‧第二傳輸量
126‧‧‧第二用電量
128‧‧‧第二熱特性
130‧‧‧第二指令集
132‧‧‧記憶體
134‧‧‧遷移政策
136‧‧‧第一遷移政策
138‧‧‧第二遷移政策
140‧‧‧閾值
142‧‧‧工作頻率閾值
144‧‧‧熱閾值
146‧‧‧傳輸量閾值
148‧‧‧作業系統
150‧‧‧排程器
152‧‧‧執行緒
154‧‧‧指令
156、158‧‧‧遷移
Claims (20)
- 一種處理器,包含:複數核心,包括第一核心及第二核心;記憶體,用以儲存核心特性識別符,該核心特性識別符包含第一識別符及第二識別符,該第一識別符指出與該第一核心相關之第一特性,及該第二識別符指出與該第二核心相關之第二特性,該核心特性識別符使作業系統能根據是否該第二核心可執行一或多個執行緒來檢測該一或多個執行緒何時從該第一核心遷移至該第二核心。
- 如申請專利範圍第1項之處理器,其中,該核心特性識別符係藉由該處理器回應於該處理器檢測該第一特性或該第二特性中的改變而予修改。
- 如申請專利範圍第1項之處理器,其中:該處理器回應於讀取核心特性指令提供該核心特性識別符至該作業系統;以及該一或多個執行緒依據該核心特性識別符而從該第一核心遷移至該第二核心。
- 如申請專利範圍第1項之處理器,其中,該處理器產生中斷以致使該作業系統從該第一核心遷移該一或多個執行緒至該第二核心。
- 如申請專利範圍第4項之處理器,其中,該處理器回應於檢測到藉由該第一核心配置執行的一或多個執行緒包括該第一核心無法執行之至少一特別指令,而產生該中斷。
- 一種系統,包含:處理器,包括可以第一時鐘速度執行之第一核心,及可以快於該第一時鐘速度之第二時鐘速度執行之第二核心;以及記憶體,用以儲存邏輯,該邏輯用以:識別藉由該第一核心配置執行的一組執行緒;檢測該第二核心是否可執行該組執行緒;以及回應於檢測到該第二核心可執行該組執行緒,從該第一核心遷移該組執行緒至該第二核心。
- 如申請專利範圍第6項之系統,其中,從該第一核心遷移該組執行緒至該第二核心包含:儲存該第一核心之狀態;映射該第一核心之該狀態以製造該第二核心之映射狀態;配置在該第二核心執行該組執行緒;以及依據該映射狀態恢復在該第二核心執行該一或多個執行緒。
- 如申請專利範圍第6項之系統,該邏輯用以:識別藉由該第一核心配置執行的第二組執行緒;以及檢測到該第二組執行緒包括該第一核心無法執行且該第二核心可執行的至少一指令。
- 如申請專利範圍第8項之系統,該邏輯用以回應於檢測到該第二組執行緒包括該第一核心無法執行且該第二核心可執行的該至少一指令,從該第一核心遷移該第二組 執行緒至該第二核心。
- 如申請專利範圍第8項之系統,該邏輯用以致使中斷以指示作業系統藉由該第二核心而非藉由該第一核心配置執行該第二組執行緒。
- 如申請專利範圍第8項之系統,該邏輯用以:識別藉由該第二核心配置執行的第三組執行緒;檢測到在該第一核心執行該第三組執行緒所消耗之電力少於在該第二核心執行該第三組執行緒所消耗之電力;從該第二核心遷移該第三組執行緒至該第一核心;以及啟動藉由該第一核心執行該第三組執行緒。
- 一種方法,包含:識別配置在處理器執行的一或多個執行緒,該處理器包含複數核心,該複數核心包括具有第一特性之第一核心及具有不同於該第一特性之第二特性的第二核心;啟動藉由該第一核心執行該一或多個執行緒;根據是否該第二核心可執行該一或多個執行緒,決定應用遷移政策;以及回應於決定應用該遷移政策,啟動從該第一核心遷移該一或多個執行緒至該第二核心。
- 如申請專利範圍第12項之方法,進一步包含:停止藉由該第一核心執行該一或多個執行緒;儲存該第一核心之狀態;映射該第一核心之該狀態以製造該第二核心之映射狀 態;從該第一核心遷移該一或多個執行緒至該第二核心;以及依據該映射狀態恢復藉由該第二核心執行該一或多個執行緒。
- 如申請專利範圍第12項之方法,進一步包含:決定是否應用第二遷移政策;以及回應於決定應用該第二遷移政策,依據該第二遷移政策啟動從該第二核心遷移該一或多個執行緒至該第一核心。
- 如申請專利範圍第14項之方法,進一步包含:停止藉由該第二核心執行該一或多個執行緒;儲存該第二核心之第二狀態;映射該第二核心之該第二狀態以製造該第一核心之第二映射狀態;遷移該一或多個執行緒至該第一核心;以及依據該第二映射狀態恢復藉由該第一核心執行該一或多個執行緒。
- 如申請專利範圍第12項之方法,其中,決定是否應用該遷移政策包含:檢測到與該第一核心相關之第一熱特性滿足熱閾值;以及檢測到與該第二核心相關之第二熱特性未滿足該熱閾值。
- 如申請專利範圍第12項之方法,其中,決定是否應用該遷移政策包含:檢測到與該第一核心相關之第一傳輸量特性未滿足傳輸量閾值;以及檢測到與該第二核心相關之第二傳輸量特性滿足該傳輸量閾值。
- 如申請專利範圍第12項之方法,其中,決定是否應用該遷移政策包含:檢測到與該第一核心相關之第一工作頻率特性未滿足工作頻率閾值;以及檢測到與該第二核心相關之第二工作頻率特性滿足該工作頻率閾值。
- 如申請專利範圍第12項之方法,其中,決定是否應用該遷移政策包含檢測到與該第一核心相關之第一用電量特性大於與該第二核心相關之第二用電量特性。
- 如申請專利範圍第12項之方法,其中,決定是否應用該遷移政策包含檢測到該第一核心可執行之第一指令集不包括至少一特別指令,且該第二核心可執行之第二指令集包括該至少一特別指令。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/067778 WO2013101032A1 (en) | 2011-12-29 | 2011-12-29 | Migrating threads between asymmetric cores in a multiple core processor |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201342209A TW201342209A (zh) | 2013-10-16 |
TWI564793B true TWI564793B (zh) | 2017-01-01 |
Family
ID=48698271
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105130836A TWI656479B (zh) | 2011-12-29 | 2012-12-22 | 在多核心處理器中的非對稱核心之間遷移執行緒 |
TW101149298A TWI564793B (zh) | 2011-12-29 | 2012-12-22 | 在多核心處理器中的非對稱核心之間遷移執行緒 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105130836A TWI656479B (zh) | 2011-12-29 | 2012-12-22 | 在多核心處理器中的非對稱核心之間遷移執行緒 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9727388B2 (zh) |
TW (2) | TWI656479B (zh) |
WO (1) | WO2013101032A1 (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102959512A (zh) * | 2010-07-02 | 2013-03-06 | 瑞典爱立信有限公司 | 虚拟机拆分方法和系统 |
EP2588955A1 (en) * | 2010-07-02 | 2013-05-08 | Telefonaktiebolaget LM Ericsson (publ) | Virtual machine merging method and system |
US8930950B2 (en) * | 2012-01-19 | 2015-01-06 | International Business Machines Corporation | Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors |
US9009508B2 (en) * | 2012-08-28 | 2015-04-14 | Advanced Micro Devices, Inc. | Mechanism for reducing interrupt latency and power consumption using heterogeneous cores |
KR102082859B1 (ko) * | 2013-01-07 | 2020-02-28 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법 |
US10423216B2 (en) * | 2013-03-26 | 2019-09-24 | Via Technologies, Inc. | Asymmetric multi-core processor with native switching mechanism |
JP6321325B2 (ja) * | 2013-04-03 | 2018-05-09 | ルネサスエレクトロニクス株式会社 | 情報処理装置および情報処理方法 |
US9367325B2 (en) * | 2013-06-29 | 2016-06-14 | Intel Corporation | Common architecture state presentation for processor having processing cores of different types |
US20150046676A1 (en) * | 2013-08-12 | 2015-02-12 | Qualcomm Incorporated | Method and Devices for Data Path and Compute Hardware Optimization |
US9424092B2 (en) | 2014-09-26 | 2016-08-23 | Microsoft Technology Licensing, Llc | Heterogeneous thread scheduling |
US10620979B2 (en) * | 2014-10-08 | 2020-04-14 | Intel Corporation | Techniques for checkpointing/delivery between primary and secondary virtual machines |
US9891964B2 (en) | 2014-11-19 | 2018-02-13 | International Business Machines Corporation | Network traffic processing |
US9958932B2 (en) * | 2014-11-20 | 2018-05-01 | Apple Inc. | Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture |
US9898071B2 (en) | 2014-11-20 | 2018-02-20 | Apple Inc. | Processor including multiple dissimilar processor cores |
US9563431B2 (en) * | 2014-12-26 | 2017-02-07 | Intel Corporation | Techniques for cooperative execution between asymmetric processor cores |
US10234930B2 (en) * | 2015-02-13 | 2019-03-19 | Intel Corporation | Performing power management in a multicore processor |
US10942748B2 (en) * | 2015-07-16 | 2021-03-09 | Nxp B.V. | Method and system for processing interrupts with shadow units in a microcontroller |
US20170039093A1 (en) * | 2015-08-04 | 2017-02-09 | Futurewei Technologies, Inc. | Core load knowledge for elastic load balancing of threads |
US10459759B2 (en) | 2015-08-26 | 2019-10-29 | Netapp, Inc. | Migration between CPU cores |
US9910700B2 (en) | 2015-08-26 | 2018-03-06 | Netapp, Inc. | Migration between CPU cores |
US10037227B2 (en) * | 2015-12-17 | 2018-07-31 | Intel Corporation | Systems, methods and devices for work placement on processor cores |
US9904563B2 (en) * | 2015-12-18 | 2018-02-27 | Htc Corporation | Processor management |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US9977488B1 (en) * | 2016-03-10 | 2018-05-22 | Changming Kong | Electronic device with smart power management system |
US10387154B2 (en) * | 2016-03-14 | 2019-08-20 | International Business Machines Corporation | Thread migration using a microcode engine of a multi-slice processor |
US20170300101A1 (en) * | 2016-04-14 | 2017-10-19 | Advanced Micro Devices, Inc. | Redirecting messages from idle compute units of a processor |
US10459517B2 (en) * | 2017-03-31 | 2019-10-29 | Qualcomm Incorporated | System and methods for scheduling software tasks based on central processing unit power characteristics |
US10417731B2 (en) | 2017-04-24 | 2019-09-17 | Intel Corporation | Compute optimization mechanism for deep neural networks |
US10417734B2 (en) | 2017-04-24 | 2019-09-17 | Intel Corporation | Compute optimization mechanism for deep neural networks |
CN110968415B (zh) * | 2018-09-29 | 2022-08-05 | Oppo广东移动通信有限公司 | 多核处理器的调度方法、装置及终端 |
US11836102B1 (en) | 2019-03-20 | 2023-12-05 | Kepler Computing Inc. | Low latency and high bandwidth artificial intelligence processor |
US12086410B1 (en) | 2019-05-31 | 2024-09-10 | Kepler Computing Inc. | Ferroelectric memory chiplet in a multi-dimensional packaging with I/O switch embedded in a substrate or interposer |
CN111541451B (zh) | 2020-06-23 | 2021-10-29 | 深圳比特微电子科技有限公司 | 用于对时钟信号进行升频的方法和时钟电路 |
CN113282536B (zh) * | 2021-07-26 | 2021-11-30 | 浙江毫微米科技有限公司 | 基于内存密集型算法的数据处理系统和计算机设备 |
US11791233B1 (en) * | 2021-08-06 | 2023-10-17 | Kepler Computing Inc. | Ferroelectric or paraelectric memory and logic chiplet with thermal management in a multi-dimensional packaging |
TWI792546B (zh) * | 2021-09-09 | 2023-02-11 | 瑞昱半導體股份有限公司 | 用於管線化控制的設備以及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090222654A1 (en) * | 2008-02-29 | 2009-09-03 | Herbert Hum | Distribution of tasks among asymmetric processing elements |
US20110066830A1 (en) * | 2009-09-11 | 2011-03-17 | Andrew Wolfe | Cache prefill on thread migration |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4763242A (en) * | 1985-10-23 | 1988-08-09 | Hewlett-Packard Company | Computer providing flexible processor extension, flexible instruction set extension, and implicit emulation for upward software compatibility |
US6501999B1 (en) * | 1999-12-22 | 2002-12-31 | Intel Corporation | Multi-processor mobile computer system having one processor integrated with a chipset |
US7996839B2 (en) * | 2003-07-16 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | Heterogeneous processor core systems for improved throughput |
US7437581B2 (en) * | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
US20080263324A1 (en) * | 2006-08-10 | 2008-10-23 | Sehat Sutardja | Dynamic core switching |
US20080115010A1 (en) * | 2006-11-15 | 2008-05-15 | Rothman Michael A | System and method to establish fine-grained platform control |
US8006077B2 (en) * | 2007-03-29 | 2011-08-23 | Intel Corporation | Thread migration control based on prediction of migration overhead |
US8230425B2 (en) * | 2007-07-30 | 2012-07-24 | International Business Machines Corporation | Assigning tasks to processors in heterogeneous multiprocessors |
US7930574B2 (en) * | 2007-12-31 | 2011-04-19 | Intel Corporation | Thread migration to improve power efficiency in a parallel processing environment |
US7925923B1 (en) * | 2008-01-31 | 2011-04-12 | Hewlett-Packard Development Company, L.P. | Migrating a virtual machine in response to failure of an instruction to execute |
US8561073B2 (en) * | 2008-09-19 | 2013-10-15 | Microsoft Corporation | Managing thread affinity on multi-core processors |
US8418187B2 (en) * | 2010-03-01 | 2013-04-09 | Arm Limited | Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system |
TWI425422B (zh) * | 2010-07-16 | 2014-02-01 | Mstar Semiconductor Inc | 多cpu領域行動電子裝置與其操作方法 |
US8797332B2 (en) * | 2010-12-15 | 2014-08-05 | Ati Technologies Ulc | Device discovery and topology reporting in a combined CPU/GPU architecture system |
-
2011
- 2011-12-29 US US13/995,340 patent/US9727388B2/en active Active
- 2011-12-29 WO PCT/US2011/067778 patent/WO2013101032A1/en active Application Filing
-
2012
- 2012-12-22 TW TW105130836A patent/TWI656479B/zh not_active IP Right Cessation
- 2012-12-22 TW TW101149298A patent/TWI564793B/zh not_active IP Right Cessation
-
2017
- 2017-08-08 US US15/672,086 patent/US10761898B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090222654A1 (en) * | 2008-02-29 | 2009-09-03 | Herbert Hum | Distribution of tasks among asymmetric processing elements |
US20110066830A1 (en) * | 2009-09-11 | 2011-03-17 | Andrew Wolfe | Cache prefill on thread migration |
Also Published As
Publication number | Publication date |
---|---|
TWI656479B (zh) | 2019-04-11 |
TW201716989A (zh) | 2017-05-16 |
US20180129542A1 (en) | 2018-05-10 |
WO2013101032A1 (en) | 2013-07-04 |
TW201342209A (zh) | 2013-10-16 |
US9727388B2 (en) | 2017-08-08 |
US20140026146A1 (en) | 2014-01-23 |
US10761898B2 (en) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI564793B (zh) | 在多核心處理器中的非對稱核心之間遷移執行緒 | |
TWI494850B (zh) | 通透地提供給作業系統之非對稱多核心處理器系統 | |
KR101476568B1 (ko) | 코어 마다의 전압 및 주파수 제어 제공 | |
TWI599960B (zh) | 在多核心處理器中執行電源管理 | |
CN106598184B (zh) | 在处理器中执行跨域热控制 | |
US8930722B2 (en) | Distribution of tasks among asymmetric processing elements | |
JP5583837B2 (ja) | コンピュータ・システム内でタスクを開始するためのコンピュータ実装方法、システム及びコンピュータ・プログラム | |
JP5695766B2 (ja) | マルチコアシステムエネルギー消費最適化 | |
US9697124B2 (en) | Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture | |
US8752060B2 (en) | Multi-CPU domain mobile electronic device and operation method thereof | |
KR102062507B1 (ko) | 동적 입력/출력 코히어런시 | |
US9596136B2 (en) | Software migration method and apparatus in micro-server environment | |
US10635337B2 (en) | Dynamic configuration of compressed virtual memory | |
US20170108908A1 (en) | Instruction optimization using voltage-based functional performance variation | |
US20160154649A1 (en) | Switching methods for context migration and systems thereof | |
US10579125B2 (en) | Processors, methods, and systems to adjust maximum clock frequencies based on instruction type | |
US20160170474A1 (en) | Power-saving control system, control device, control method, and control program for server equipped with non-volatile memory | |
JP6217008B2 (ja) | 電子機器、制御方法、及び、プログラム | |
JP5085611B2 (ja) | 実環境と仮想環境を遷移させるコンピュータ・プログラム | |
US20230418688A1 (en) | Energy efficient computing workload placement | |
WO2024138235A2 (en) | Backward-compatible heterogeneous multi-core processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |