專(zhuān)利名稱(chēng):異構(gòu)多處理器計(jì)算平臺(tái)中的應(yīng)用調(diào)度的制作方法
技術(shù)領(lǐng)域:
本公開(kāi)總體上涉及電子學(xué)領(lǐng)域。更特別地,本發(fā)明的一個(gè)實(shí)施例涉及用于調(diào)度異構(gòu)多處理器計(jì)算平臺(tái)中的應(yīng)用的技術(shù)。
背景技術(shù):
為了改進(jìn)性能,一些計(jì)算系統(tǒng)包括多個(gè)處理器。然而,多處理器計(jì)算系統(tǒng)的縮放受到功率約束限制。即,隨著更多處理器被添加至系統(tǒng),功率消耗增加。此外,附加功率消耗生成更多熱。因此,熱和功率要求可能限制多處理器計(jì)算系統(tǒng)的縮放。
參照附圖來(lái)提供詳細(xì)描述。在附圖中,附圖標(biāo)記的最左側(cè)的(一個(gè)或多個(gè))數(shù)字標(biāo)識(shí)該附圖標(biāo)記首次出現(xiàn)的圖。在不同圖中使用相同附圖標(biāo)記指示相似或相同的項(xiàng)目。圖1、5和6示出可以被利用以實(shí)施本文討論的各種實(shí)施例的計(jì)算系統(tǒng)的實(shí)施例的框圖。圖2示出根據(jù)一個(gè)實(shí)施例的計(jì)算系統(tǒng)的處理器核心和其他部件的部分的框圖。圖3-4示出根據(jù)一些實(shí)施例的流程圖。
具體實(shí)施例方式在下列描述中,闡述了許多特定細(xì)節(jié)以便提供對(duì)各種實(shí)施例的透徹理解。然而,可以在沒(méi)有這些特定細(xì)節(jié)的情況下實(shí)踐本發(fā)明的各種實(shí)施例。在其他實(shí)例中,公知的方法、過(guò)程、部件和電路未被詳細(xì)地描述以免模糊本發(fā)明的特定實(shí)施例。此外,可以使用各種手段(例如集成半導(dǎo)體電路(“硬件”)、被組織成一個(gè)或多個(gè)程序的計(jì)算機(jī)可讀指令(“軟件”)、或者硬件和軟件的某種組合)來(lái)執(zhí)行本發(fā)明的實(shí)施例的各種方面。為了本公開(kāi)的目的,對(duì)“邏輯”的引用應(yīng)當(dāng)是指硬件、軟件、或其某種組合。此外,如本文所討論的,對(duì)“指令”和“微操作”(UOP)的使用是可互換的。隨著芯片多處理器(CMP)系統(tǒng)變得普遍(例如對(duì)于服務(wù)器和客戶(hù)端平臺(tái)來(lái)說(shuō)),異構(gòu)CMP開(kāi)始贏得勢(shì)頭。例如,較小處理器核心可以提供更好的性能/功率優(yōu)勢(shì)。因此,將較小處理器核心與較大處理器核心一起添加可以是有吸引力的。如本文所討論的,異構(gòu)CMP包含在性能、面積和/或功率耗散方面不同的核心的集合。這種平臺(tái)提供下述機(jī)會(huì):即允許計(jì)算資源與各種應(yīng)用的更好映射,使得在一些實(shí)施例中可以同時(shí)實(shí)現(xiàn)性能和功率效率。然而,在異構(gòu)CMP平臺(tái)設(shè)計(jì)中的關(guān)鍵挑戰(zhàn)之一是對(duì)性能和/或功率效率進(jìn)行優(yōu)化的應(yīng)用調(diào)度(即,將應(yīng)用映射至多個(gè)處理器核心)。為此,一個(gè)實(shí)施例涉及動(dòng)態(tài)地調(diào)度異構(gòu)核心當(dāng)中的應(yīng)用(例如在單個(gè)集成電路(IC)芯片/管芯上)。在一個(gè)實(shí)施例中,可以使用兩個(gè)部件來(lái)調(diào)度應(yīng)用。第一,可以提供處理器核心建模預(yù)測(cè)啟發(fā)式法。第二,可以使用調(diào)度邏輯以基于所述核心建模預(yù)測(cè)啟發(fā)式法來(lái)調(diào)度用于異構(gòu)處理器核心的應(yīng)用。可以在具有性能狀態(tài)設(shè)置的任一類(lèi)型的處理器(例如參照?qǐng)D1和5-6討論的處理器)中使用本文討論的技術(shù)。更特別地,圖1示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算系統(tǒng)100的框圖。系統(tǒng)100可以包括一個(gè)或多個(gè)處理器102-1至102-N (本文總體上稱(chēng)為“多個(gè)處理器102”或“處理器102”)。多個(gè)處理器102可以經(jīng)由互連網(wǎng)絡(luò)或總線104進(jìn)行通信。每個(gè)處理器可以包括各種部件,為了清楚,僅參照處理器102-1討論這些部件中的一些。因此,剩余處理器102-2至102-N中的每一個(gè)可以包括參照處理器102-1討論的相同或相似部件。在一個(gè)實(shí)施例中,處理器102-1可以包括一個(gè)或多個(gè)處理器核心106-1至106-M(本文稱(chēng)為“多個(gè)核心106”或者更一般地稱(chēng)為“核心106”)、共享高速緩存108、和/或路由器110。可以在單個(gè)集成電路(IC)芯片上實(shí)施多個(gè)處理器核心106。此外,該芯片可以包括一個(gè)或多個(gè)共享和/或?qū)S酶咚倬彺?例如高速緩存108)、總線或互連(例如總線或互連網(wǎng)絡(luò)112)、存儲(chǔ)控制器(例如參照?qǐng)D5和6討論的那些存儲(chǔ)控制器)、或者其他部件。此外,多個(gè)核心106可以是異構(gòu)的(例如具有不同的大小、性能特性、功率消耗特性等等,如本文所討論的)。在一個(gè)實(shí)施例中,路由器110可以被用來(lái)在處理器102-1和/或系統(tǒng)100的各種部件之間通信。此外,處理器102-1可以包括多于一個(gè)路由器110。此外,大量路由器(110)可以進(jìn)行通信以實(shí)現(xiàn)在處理器102-1內(nèi)部或外部的各種部件之間的數(shù)據(jù)路由。共享高速緩存108可以存儲(chǔ)由處理器102-1的一個(gè)或多個(gè)部件(例如多個(gè)核心106)利用的數(shù)據(jù)(例如包括指令)。例如,共享高速緩存108可以在邏輯上對(duì)在存儲(chǔ)器114中存儲(chǔ)的數(shù)據(jù)進(jìn)行高速緩存,以供處理器102的部件更快速訪問(wèn)。在一個(gè)實(shí)施例中,高速緩存108可以包括中級(jí)高速緩存(例如2級(jí)(L2)、3級(jí)(L3)、4級(jí)(L4)、或高速緩存的其他級(jí))、最后一級(jí)高速緩存(LLC)、和/或其組合。此外,處理器102-1的各種部件可以直接地、通過(guò)總線(例如總線112)和/或存儲(chǔ)控制器或集線器來(lái)與共享高速緩存108通信。如圖1中所示,在一些實(shí)施例中,多個(gè)核心106中的一個(gè)或多個(gè)可以包括I級(jí)(LI)和/或2級(jí)(L2)高速緩存(116-1)(本文總體上稱(chēng)為“L1/L2高速緩存116”)。LI和/或L2高速緩存116在各種實(shí)施例中可以是專(zhuān)用的或共享的。在一個(gè)實(shí)施例中,如下面將參照?qǐng)D2-4進(jìn)一步討論的,多個(gè)核心中的每一個(gè)可以包括幫助將應(yīng)用分配給系統(tǒng)中的各種處理器核心的邏輯120。例如,可以基于在(一個(gè)或多個(gè))計(jì)數(shù)器122 (例如指示系統(tǒng)中的一個(gè)或多個(gè)其他核心的性能的(一個(gè)或多個(gè))性能計(jì)數(shù)器)中存儲(chǔ)的信息來(lái)(例如由操作系統(tǒng)(OS))分配應(yīng)用。還可以基于可以被用來(lái)編索引至表(例如性能歷史表(PHT) 124-1)中的進(jìn)程標(biāo)識(shí)符(ID)來(lái)(例如由OS)分配應(yīng)用。該表可以被存儲(chǔ)在共享存儲(chǔ)器(例如存儲(chǔ)器114和/或共享高速緩存108)中或者被存儲(chǔ)在處理器102或核心106中的專(zhuān)用存儲(chǔ)設(shè)備(例如專(zhuān)用高速緩存(例如L1/L2高速緩存116))中(例如PHT124-1)。該表可以在調(diào)度應(yīng)用時(shí)將信息/提示提供給操作系統(tǒng)(OS),例如如下面將參照?qǐng)D2-4進(jìn)一步討論的。在一些實(shí)施例中,OS和應(yīng)用可以被存儲(chǔ)在存儲(chǔ)器114 (或者圖5的存儲(chǔ)器512和圖6的610/612)中。圖2示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算系統(tǒng)的處理器核心106和其他部件的部分的框圖。在一個(gè)實(shí)施例中,圖2中所示的箭頭示出在整個(gè)核心106中指令的流向??梢栽趩蝹€(gè)集成電路芯片(或管芯)上實(shí)施一個(gè)或多個(gè)處理器核心(例如處理器核心106),例如參照?qǐng)D1所討論的。此外,芯片可以包括一個(gè)或多個(gè)共享和/或?qū)S酶咚倬彺?例如圖1的高速緩存106和108)、互連(例如圖1的互連104和/或112)、邏輯120、(一個(gè)或多個(gè))計(jì)數(shù)器122、存儲(chǔ)控制器、或其他部件。如圖2中所示,處理器核心106可以包括取指令(包括具有條件分支的指令)以用于由核心106執(zhí)行的取單元202??梢詮娜魏未鎯?chǔ)設(shè)備(例如存儲(chǔ)器114和/或參照?qǐng)D4和5討論的存儲(chǔ)器設(shè)備)中取指令。核心106還可以包括對(duì)所取的指令進(jìn)行解碼的解碼單元204。例如,解碼單元204可以將所取的指令解碼成多個(gè)uop (微操作)。另外,核心106可以包括調(diào)度單元206。調(diào)度單元206可以執(zhí)行與存儲(chǔ)經(jīng)解碼的指令(例如從解碼單元204接收的)相關(guān)聯(lián)的各種操作,直到指令為分派做好準(zhǔn)備,例如直到經(jīng)解碼的指令的所有源值變得可用。在一個(gè)實(shí)施例中,調(diào)度單元206可以將經(jīng)解碼的指令調(diào)度和/或發(fā)出(issue)(或分派)至執(zhí)行單元208以供執(zhí)行。在指令被解碼(例如由解碼單元204)和分派(例如由調(diào)度單元206)之后,執(zhí)行單元208可以執(zhí)行所分派的指令。在一個(gè)實(shí)施例中,執(zhí)行單元208可以包括多于一個(gè)執(zhí)行單元。執(zhí)行單元208還可以執(zhí)行各種算術(shù)運(yùn)算(例如加法、減法、乘法、和/或除法),并且可以包括一個(gè)或多個(gè)算術(shù)邏輯單元(ALU)。在一個(gè)實(shí)施例中,協(xié)處理器(未示出)可以結(jié)合執(zhí)行單元208來(lái)執(zhí)行各種算術(shù)運(yùn)算。此外,執(zhí)行單元208可以亂序執(zhí)行指令。因此,在一個(gè)實(shí)施例中處理器核心106可以是亂序處理器核心。核心106還可以包括引退(retirement)單元210。在所執(zhí)行的指令被提交之后,引退單元210可以引退所執(zhí)行的指令。在一個(gè)實(shí)施例中,所執(zhí)行的指令的引退可以導(dǎo)致從指令的執(zhí)行中提交處理器狀態(tài)、解除分配由指令所使用的物理寄存器等等。核心106還可以包括經(jīng)由一個(gè)或多個(gè)總線(例如總線104和/或112)實(shí)現(xiàn)處理器核心106的部件與其他部件(例如參照?qǐng)D1討論的部件)之間的通信的總線單元214。核心106還可以包括存儲(chǔ)由核心106的各種部件(包括邏輯120,如參照?qǐng)D1和3-4所討論的)訪問(wèn)的數(shù)據(jù)的一個(gè)或多個(gè)計(jì)數(shù)器122。此外,在一些實(shí)施例中,邏輯120不僅跟蹤應(yīng)用的性能,而且預(yù)測(cè)在應(yīng)用要是在系統(tǒng)中的另一核心上執(zhí)行的情況下應(yīng)用的執(zhí)行和/或功率消耗性能(例如基于計(jì)數(shù)器122中存儲(chǔ)的值)。可以將該信息 提供給OS,該OS可以基于各種閾值(例如功率、性能、能量、其組合等等)來(lái)執(zhí)行調(diào)度。例如,OS和/或邏輯120可以將所考慮的多個(gè)處理器核心的各種執(zhí)行或功率消耗性能數(shù)據(jù)進(jìn)行比較,并且關(guān)于哪個(gè)核心將提供更好的執(zhí)行或功率消耗性能進(jìn)行確定(基于本文討論的各種閾值)。根據(jù)一個(gè)實(shí)施例,可以使用基于簽名的方法。例如,可以在系統(tǒng)中的一個(gè)或多個(gè)核心上執(zhí)行每個(gè)應(yīng)用,并且可以將應(yīng)用性能統(tǒng)計(jì)存儲(chǔ)在性能歷史表(PHT)中。性能統(tǒng)計(jì)可以包括CPI (每指令周期)、MPI (每指令缺失(miss))等等。例如,如樣本表I中所示,每個(gè)表?xiàng)l目可以具有三個(gè)或更多個(gè)字段。第一個(gè)字段指示進(jìn)程ID,第二個(gè)字段用于存儲(chǔ)應(yīng)用在大的核心上執(zhí)行時(shí)的CPI,以及最后一個(gè)字段存儲(chǔ)應(yīng)用在小的核心上執(zhí)行時(shí)的性能。每當(dāng)應(yīng)用被上下文切換至其他核心時(shí),邏輯120都可以獲得新信息并更新PHT 124。
_ID|大的核心CPI I小的核心CPI
101107981.35—
101207731.44—
2013 |l.19|l.31—
表1-樣本性能歷史表(PHT)。PHT 124的大小可以相當(dāng)小。例如,如果僅使用CPI,則每條目12字節(jié)是存儲(chǔ)歷史信息所需的存儲(chǔ)器。每當(dāng)應(yīng)用被調(diào)度以運(yùn)行時(shí),還可以將PHT 124存儲(chǔ)在應(yīng)用的進(jìn)程控制塊(PCB)中和/或可以將PHT 124加載至另一存儲(chǔ)器(例如PHT 124、高速緩存106、存儲(chǔ)器114、高速緩存108等等)中。該方法可以被擴(kuò)展至進(jìn)程之外,并且可以被用于進(jìn)程內(nèi)的各種執(zhí)占。一旦設(shè)置了 PHT,每當(dāng)應(yīng)用被調(diào)度以運(yùn)行時(shí),邏輯120都從PHT中讀取信息,并基于預(yù)定義度量(例如功率/性能等等)、針對(duì)最優(yōu)調(diào)度策略將提示提供給OS,如圖3中所示。參照?qǐng)D3,根據(jù)一個(gè)實(shí)施例,示出基于簽名的核心建模預(yù)測(cè)啟發(fā)式方法的流程圖。在一些實(shí)施例中,可以利用參照?qǐng)D1-2和5-6討論的各種部件來(lái)執(zhí)行參照?qǐng)D3討論的操作中的一個(gè)或多個(gè)。參照?qǐng)D1-3,在操作302處,在上下文切換時(shí),加載應(yīng)用(例如從進(jìn)程控制塊或另一位置,如本文所討論的)。在操作304處,邏輯120從PHT中讀取信息。在操作306處,基于PHT信息來(lái)確定進(jìn)程對(duì)大的或小的處理器核心來(lái)說(shuō)是否最優(yōu)(例如出于性能或功率消耗目的)。然后,在操作308處,將該信息發(fā)送至OS(例如,在一個(gè)實(shí)施例中基于如由邏輯120確定的功率消耗和/或性能考慮)。在操作310處,邏輯120收集另外的歷史信息(例如基于在操作306處的最近確定)并更新PHT信息。參照?qǐng)D4,根據(jù)一個(gè)實(shí)施例,示出基于性能的核心建模預(yù)測(cè)啟發(fā)式方法的流程圖。在一些實(shí)施例中,可以利用參照?qǐng)D1-2和5-6討論的各種部件來(lái)執(zhí)行參照?qǐng)D4討論的操作中的一個(gè)或多個(gè)。參照?qǐng)D1-2和4,在操作402處,在上下文切換時(shí),加載應(yīng)用(例如從進(jìn)程控制塊或另一位置,如本文所討論的)。在操作404處,邏輯120讀取在性能計(jì)數(shù)器(例如計(jì)數(shù)器122)中存儲(chǔ)的值。在操作406處,基于性能計(jì)數(shù)器信息來(lái)確定進(jìn)程對(duì)大的或小的處理器核心來(lái)說(shuō)是否最優(yōu)(例如出于性能或功率消耗目的)。然后,在操作408處,將該信息發(fā)送至OS (例如,在一個(gè)實(shí)施例中基于如由邏輯120確定的功率消耗和/或性能考慮)。在操作410處,邏輯120收集另外的歷史信息(例如基于在操作406處的最近確定)并更新性能計(jì)數(shù)器(例如計(jì)數(shù)器122)。在基于性能計(jì)數(shù)器的方法中,根據(jù)一些實(shí)施例,可以使用動(dòng)態(tài)模型,該動(dòng)態(tài)模型可以有效地預(yù)測(cè)小的核心上的應(yīng)用在大的核心上執(zhí)行時(shí)的性能,以及反之亦然。該方法使用性能計(jì)數(shù)器(例如計(jì)數(shù)器122),并基于下列等式來(lái)預(yù)測(cè)性能:
小的核心中的周期=((大的核心中的周期-大的核心上的暫停(stall)周期)*小的核心的發(fā)出寬度/大的核心的發(fā)出寬度*倍增因子)+ (大的核心中的LI缺失*小的核心的LI缺失損失)+ (大的核心中的L2缺失*小的核心的L2缺失損失)。在一個(gè)實(shí)施例中,可以基于L2缺失和加載/存儲(chǔ)指令的數(shù)目來(lái)憑經(jīng)驗(yàn)導(dǎo)出倍增因子。在一些實(shí)施例中,大的核心可以具有與小的核心相比兩倍的加載/存儲(chǔ)單元數(shù)目。此夕卜,在一些實(shí)施中,由于缺少在一些工作負(fù)荷中觀察到的存儲(chǔ)級(jí)并行性,顯著L2缺失應(yīng)用可能不通過(guò)大的核心的亂序特性而受益。大的核心中的周期=((小的核心中的周期-小的核心上的暫停周期)*大的核心的發(fā)出寬度/小的核心的發(fā)出寬度)/(1 -暫停因子)??梢酝ㄟ^(guò)在大的核心上運(yùn)行應(yīng)用一次并收集暫停周期和總周期性能數(shù)據(jù)來(lái)導(dǎo)出暫停因子。此外,一些平臺(tái)可以包括標(biāo)識(shí)由于長(zhǎng)延遲操作而引起的暫停(例如高速緩存缺失、浮點(diǎn)暫停等等)的各種性能計(jì)數(shù)器。當(dāng)在邏輯120中使用時(shí)與其他計(jì)數(shù)器(例如引退的加載/存儲(chǔ)指令、L2缺失等等)組合的這些暫停可以有助于預(yù)測(cè)應(yīng)用在要是在另一核心上運(yùn)行的情況下的性能。即使在平臺(tái)中不具有特定存儲(chǔ)暫停計(jì)數(shù)器,也可以使用平臺(tái)中的其他暫停計(jì)數(shù)器來(lái)估計(jì)暫停。關(guān)于調(diào)度,一些實(shí)施例可以如下基于由邏輯120提供的性能信息將各種應(yīng)用映射至大的和小的核心:(I)對(duì)于單個(gè)應(yīng)用,如果大的與小的核心的性能比大于可編程值,那么在大的核心上調(diào)度應(yīng)用;否則在小的核心上調(diào)度應(yīng)用。該可編程值可以駐留在核心中,并且可以是基于各種功率/性能度量、使用MSR (機(jī)器狀態(tài)寄存器)來(lái)寫(xiě)入的;(2)對(duì)于多個(gè)應(yīng)用(例如需要調(diào)度的N個(gè)應(yīng)用),基于其大的與小的核心的性能比來(lái)對(duì)應(yīng)用進(jìn)行排序。將頂部N/2個(gè)應(yīng)用(例如具有最大增益的應(yīng)用)調(diào)度至大的核心上,并且在小的核心上調(diào)度底部N/2個(gè)應(yīng)用。在一些實(shí)施例中,可以使用下列計(jì)數(shù)器中的一個(gè)或多個(gè)(例如對(duì)于計(jì)數(shù)器122):
(1)核心時(shí)鐘周期:該計(jì)數(shù)器對(duì)核心主動(dòng)執(zhí)行指令的周期的數(shù)目進(jìn)行計(jì)數(shù);
(2)引退的指令:該計(jì)數(shù)器對(duì)核心在給定時(shí)間樣本期間引退的指令的數(shù)目進(jìn)行計(jì)數(shù);
(3)L2缺失:該計(jì)數(shù)器對(duì)缺失了 L2的存儲(chǔ)器引用的數(shù)目進(jìn)行計(jì)數(shù);
(4)調(diào)度器暫停:該計(jì)數(shù)器對(duì)小的核心不能調(diào)度指令的周期的數(shù)目進(jìn)行計(jì)數(shù)(該計(jì)數(shù)還可以基于小的核心中的L2缺失和L2缺失延遲的乘積而導(dǎo)出);
(5)資源暫停:該計(jì)數(shù)器對(duì)大的核心由于資源的不可用性而暫停(例如保留站、長(zhǎng)延遲缺失等等)的周期的數(shù)目進(jìn)行計(jì)數(shù);和/或
(6)分支暫停:該計(jì)數(shù)器對(duì)由于分支誤預(yù)測(cè)而丟失的周期的總數(shù)進(jìn)行計(jì)數(shù)。圖5示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算系統(tǒng)500的框圖。計(jì)算系統(tǒng)500可以包括經(jīng)由互連網(wǎng)絡(luò)(或總線)504進(jìn)行通信的一個(gè)或多個(gè)中央處理單元(CPU) 502或處理器。多個(gè)處理器502可以包括通用處理器、網(wǎng)絡(luò)處理器(其處理通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)503傳送的數(shù)據(jù))、或者其他類(lèi)型的處理器(包括精簡(jiǎn)指令集計(jì)算機(jī)(RISC)處理器或復(fù)雜指令集計(jì)算機(jī)(CISC))。此外,多個(gè)處理器502可以具有單或多核心設(shè)計(jì)。具有多核心設(shè)計(jì)的多個(gè)處理器502可以將不同類(lèi)型的處理器核心集成在相同集成電路(IC)管芯上。此外,具有多核心設(shè)計(jì)的多個(gè)處理器502可以被實(shí)施為對(duì)稱(chēng)或非對(duì)稱(chēng)多處理器。在一個(gè)實(shí)施例中,多個(gè)處理器502中的一個(gè)或多個(gè)可以與圖1的多個(gè)處理器102相同或相似。例如,多個(gè)處理器502中的一個(gè)或多個(gè)可以包括參照?qǐng)D1-4討論的多個(gè)核心106。此外,參照?qǐng)D1-4討論的操作可以由系統(tǒng)500的一個(gè)或多個(gè)部件執(zhí)行。芯片組506還可以與互連網(wǎng)絡(luò)504進(jìn)行通信。芯片組506可以包括存儲(chǔ)控制集線器(MCH)508。MCH 508可以包括與存儲(chǔ)器512 (其可以與圖1的存儲(chǔ)器114相同或相似)進(jìn)行通信的存儲(chǔ)控制器510。存儲(chǔ)器512可以存儲(chǔ)數(shù)據(jù),包括可以由CPU 502或者在計(jì)算系統(tǒng)500中包括的任何其他設(shè)備執(zhí)行的指令的序列。在本發(fā)明的一個(gè)實(shí)施例中,存儲(chǔ)器512可以包括一個(gè)或多個(gè)易失性存儲(chǔ)(或存儲(chǔ)器)設(shè)備,例如隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài)RAM(DRAM)、同步DRAM (SDRAM)、靜態(tài)RAM (SRAM)、或其他類(lèi)型的存儲(chǔ)設(shè)備。還可以利用非易失性存儲(chǔ)器,例如硬盤(pán)。附加設(shè)備可以經(jīng)由互連網(wǎng)絡(luò)504進(jìn)行通信,例如多個(gè)CPU和/或多個(gè)系統(tǒng)存儲(chǔ)器。MCH 508還可以包括與顯示設(shè)備516進(jìn)行通信的圖形接口 514。在本發(fā)明的一個(gè)實(shí)施例中,圖形接口 514可以經(jīng)由加速圖形端口(AGP)來(lái)與顯示設(shè)備516進(jìn)行通信。在本發(fā)明的一個(gè)實(shí)施例中,顯示器516 (例如平板顯示器)可以通過(guò)例如信號(hào)轉(zhuǎn)換器來(lái)與圖形接口 514進(jìn)行通信,所述信號(hào)轉(zhuǎn)換器將存儲(chǔ)設(shè)備(例如視頻存儲(chǔ)器或系統(tǒng)存儲(chǔ)器)中存儲(chǔ)的圖像的數(shù)字表示轉(zhuǎn)換成由顯示器516解釋并顯示的顯示信號(hào)。由顯示設(shè)備產(chǎn)生的顯示信號(hào)可以在被顯示器516解釋以及隨后在顯示器516上顯示之前經(jīng)過(guò)各種控制設(shè)備。集線器接口 518可以允許MCH 508和輸入/輸出控制集線器(ICH)520進(jìn)行通信。ICH 520可以提供到與計(jì)算系統(tǒng)500進(jìn)行通信的(一個(gè)或多個(gè))1/0設(shè)備的接口。ICH 520可以通過(guò)外圍橋(或控制器)524 (例如外圍部件互連(PCI)橋、通用串行總線(USB)控制器、或者其他類(lèi)型的外圍橋或控制器)來(lái)與總線522進(jìn)行通信。橋524可以提供CPU 502與外圍設(shè)備之間的數(shù)據(jù)路徑??梢岳闷渌?lèi)型的拓?fù)洹4送?,多個(gè)總線可以與ICH 520進(jìn)行通信,例如通過(guò)多個(gè)橋或控制器。此外,在本發(fā)明的各種實(shí)施例中,與ICH 520進(jìn)行通信的其他外圍設(shè)備可以包括集成驅(qū)動(dòng)電子器件(IDE)或(一個(gè)或多個(gè))小型計(jì)算機(jī)系統(tǒng)接口(SCSI)硬盤(pán)驅(qū)動(dòng)器、(一個(gè)或多個(gè))USB端口、鍵盤(pán)、鼠標(biāo)、(一個(gè)或多個(gè))并行端口、(一個(gè)或多個(gè))串行端口、(一個(gè)或多個(gè))軟盤(pán)驅(qū)動(dòng)器、數(shù)字輸出支持(例如數(shù)字視頻接口(DVI ))、或者其他設(shè)備??偩€522可以與音頻設(shè)備526、一個(gè)或多個(gè)盤(pán)驅(qū)動(dòng)器528、以及網(wǎng)絡(luò)接口設(shè)備530(其與計(jì)算機(jī)網(wǎng)絡(luò)503進(jìn)行通信)進(jìn)行通信。其他設(shè)備可以經(jīng)由總線522進(jìn)行通信。此外,在本發(fā)明的一些實(shí)施例中,各種部件(例如網(wǎng)絡(luò)接口設(shè)備530)可以與MCH 508進(jìn)行通信。另夕卜,可以將處理器502和MCH 508進(jìn)行組合以形成單個(gè)芯片。此外,在本發(fā)明的其他實(shí)施例中可以將圖形加速器516包括在MCH 508內(nèi)。此外,計(jì)算系統(tǒng)500可以包括易失性和/或非易失性存儲(chǔ)器(或存儲(chǔ)裝置)。例如,非易失性存儲(chǔ)器可以包括下列中的一個(gè)或多個(gè):只讀存儲(chǔ)器(ROM)、可編程ROM (PR0M)、可擦除 PROM (EPROM)、電 EPROM (EEPR0M)、盤(pán)驅(qū)動(dòng)器(例如 528)、軟盤(pán)、光盤(pán) ROM (CD-ROM)、數(shù)字通用盤(pán)(DVD)、閃速存儲(chǔ)器、磁光盤(pán)、或者能夠存儲(chǔ)電子數(shù)據(jù)(例如包括指令)的其他類(lèi)型的非易失性機(jī)器可讀介質(zhì)。圖6示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的以點(diǎn)對(duì)點(diǎn)(PtP)配置來(lái)布置的計(jì)算系統(tǒng)600。特別地,圖6示出下述系統(tǒng),即在所述系統(tǒng)中處理器、存儲(chǔ)器和輸入/輸出設(shè)備由多個(gè)點(diǎn)對(duì)點(diǎn)接口互連。參照?qǐng)D1-5討論的操作可以由系統(tǒng)600的一個(gè)或多個(gè)部件執(zhí)行。如圖6中所示,系統(tǒng)600可以包括幾個(gè)處理器,為了清楚,僅示出其中兩個(gè)處理器602和604。處理器602和604中的每一個(gè)可以包括實(shí)現(xiàn)與存儲(chǔ)器610和612的通信的本地存儲(chǔ)控制器集線器(MCH)606和608。存儲(chǔ)器610和/或612可以存儲(chǔ)各種數(shù)據(jù),例如參照?qǐng)D5的存儲(chǔ)器512討論的那些數(shù)據(jù)。在一個(gè)實(shí)施例中,處理器602和604可以是參照?qǐng)D5討論的多個(gè)處理器502之一。處理器602和604可以分別使用PtP接口電路616和618、經(jīng)由點(diǎn)對(duì)點(diǎn)(PtP)接口 614來(lái)交換數(shù)據(jù)。此外,處理器602和604中的每一個(gè)可以使用點(diǎn)對(duì)點(diǎn)接口電路626、628、630和632、經(jīng)由各個(gè)PtP接口 622和624來(lái)與芯片組620交換數(shù)據(jù)。芯片組620還可以例如使用PtP接口電路637、經(jīng)由圖形接口 636來(lái)與圖形電路634交換數(shù)據(jù)??梢栽谔幚砥?02和604內(nèi)提供本發(fā)明的至少一個(gè)實(shí)施例。例如,圖1_5的核心106可以位于處理器602和604內(nèi)。然而,本發(fā)明的其他實(shí)施例可以存在于圖6的系統(tǒng)600內(nèi)的其他電路、邏輯單元或設(shè)備中。此外,本發(fā)明的其他實(shí)施例可以分布在圖6中所示的整個(gè)幾個(gè)電路、邏輯單元或設(shè)備中。芯片組620可以使用PtP接口電路641來(lái)與總線640進(jìn)行通信。總線640可以與一個(gè)或多個(gè)設(shè)備(例如總線橋642和I/O設(shè)備643)進(jìn)行通信。經(jīng)由總線644,總線橋642可以與諸如鍵盤(pán)/鼠標(biāo)645、通信設(shè)備646 (例如調(diào)制解調(diào)器、網(wǎng)絡(luò)接口設(shè)備、或者可以與計(jì)算機(jī)網(wǎng)絡(luò)503進(jìn)行通信的其他通信設(shè)備)、音頻I/O設(shè)備647、和/或數(shù)據(jù)存儲(chǔ)設(shè)備648之類(lèi)的其他設(shè)備進(jìn)行通信。數(shù)據(jù)存儲(chǔ)設(shè)備648可以存儲(chǔ)可以由處理器602和/或604執(zhí)行的代碼649。在本發(fā)明的各種實(shí)施例中,本文討論的操作(例如參照?qǐng)D1-6)可以被實(shí)施為硬件(例如邏輯電路)、軟件、固件、或其組合,其可以作為計(jì)算機(jī)程序產(chǎn)品而被提供,所述計(jì)算機(jī)程序產(chǎn)品例如包括其上存儲(chǔ)有用來(lái)對(duì)計(jì)算機(jī)進(jìn)行編程以執(zhí)行本文討論的進(jìn)程的指令(或軟件過(guò)程)的(例如非瞬時(shí))機(jī)器可讀或計(jì)算機(jī)可讀介質(zhì)。機(jī)器可讀介質(zhì)可以包括存儲(chǔ)設(shè)備,例如參照?qǐng)D1-6討論的那些存儲(chǔ)設(shè)備。另外,這種計(jì)算機(jī)可讀介質(zhì)可以作為計(jì)算機(jī)程序產(chǎn)品而被下載,其中可以經(jīng)由通信鏈路(例如總線、調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)、通過(guò)包含在載波或其他傳播介質(zhì)中的數(shù)據(jù)信號(hào)來(lái)將程序從遠(yuǎn)程計(jì)算機(jī)(例如服務(wù)器)傳送至請(qǐng)求計(jì)算機(jī)(例如客戶(hù)端)。在說(shuō)明書(shū)中對(duì)“一個(gè)實(shí)施例”、“一個(gè)實(shí)施例”或“一些實(shí)施例”的引用意味著:結(jié)合所述(一個(gè)或多個(gè))實(shí)施例描述的特定的特征、結(jié)構(gòu)或特性可以被包括在至少一個(gè)實(shí)施中。說(shuō)明書(shū)中各處出現(xiàn)的短語(yǔ)“在一個(gè)實(shí)施例中”可以都指代或者可以不都指代相同實(shí)施例。此外,在說(shuō)明書(shū)和權(quán)利要求書(shū)中,可以使用術(shù)語(yǔ)“耦合”和“連接”及其派生詞。在本發(fā)明的一些實(shí)施例中,“連接”可以被用來(lái)指示,兩個(gè)或更多個(gè)元件彼此直接物理或電接觸?!榜詈稀笨赡芤馕吨?,兩個(gè)或更多個(gè)元件直接物理或電接觸。然而,“耦合”還可能意味著,兩個(gè)或更多個(gè)元件可以不彼此直接接觸,但是仍然可以彼此協(xié)作或交互。因此,盡管已經(jīng)以特定于結(jié)構(gòu)特征和/或方法動(dòng)作的語(yǔ)言描述了本發(fā)明的實(shí)施例,但是應(yīng)當(dāng)理解,所要求保護(hù)的主題可以不限于所描述的特定特征或動(dòng)作。更確切地說(shuō),特定特征和動(dòng)作被公開(kāi)為實(shí)施所要求保護(hù)的主題的樣本形式。
權(quán)利要求
1.一種處理器,包括: 存儲(chǔ)單元,所述存儲(chǔ)單元存儲(chǔ)對(duì)應(yīng)于所述處理器的多個(gè)處理器核心的性能的信息;以及 邏輯,所述邏輯基于所存儲(chǔ)的信息來(lái)確定所述多個(gè)處理器核心中的第一處理器核心以執(zhí)行應(yīng)用,以及使得在所述第一處理器核心上針對(duì)執(zhí)行而調(diào)度所述應(yīng)用; 其中所述邏輯將數(shù)據(jù)傳送至操作系統(tǒng)以使得在所述第一處理器核心上調(diào)度所述應(yīng)用。
2.根據(jù)權(quán)利要求1所述的處理器,其中,響應(yīng)于對(duì)上下文切換的檢測(cè),所述邏輯將數(shù)據(jù)傳送至所述操作系統(tǒng)以使得在所述第一處理器核心上調(diào)度所述應(yīng)用。
3.根據(jù)權(quán)利要求1所述的處理器,其中,所存儲(chǔ)的對(duì)應(yīng)于所述處理器的所述多個(gè)處理器核心的性能的信息包括執(zhí)行性能數(shù)據(jù)或功率消耗性能數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的處理器,其中,所述邏輯基于所收集的信息來(lái)更新所存儲(chǔ)的信息。
5.根據(jù)權(quán)利要求1所述的處 理器,其中,所述邏輯預(yù)測(cè)所述應(yīng)用在所述多個(gè)處理器核心中的至少一些上的執(zhí)行或功率消耗性能。
6.根據(jù)權(quán)利要求1所述的處理器,其中,所述多個(gè)處理器核心是異構(gòu)的。
7.根據(jù)權(quán)利要求1所述的處理器,其中,所述存儲(chǔ)單元包括:共享存儲(chǔ)器、專(zhuān)用高速緩存、共享高速緩存、或?qū)S么鎯?chǔ)器。
8.根據(jù)權(quán)利要求1所述的處理器,其中,所存儲(chǔ)的信息被存儲(chǔ)在所述應(yīng)用的進(jìn)程控制塊中。
9.根據(jù)權(quán)利要求1所述的處理器,其中,所述存儲(chǔ)單元存儲(chǔ)性能歷史表(PHT)。
10.根據(jù)權(quán)利要求9所述的處理器,其中,所述PHT中的每個(gè)條目至少存儲(chǔ)進(jìn)程標(biāo)識(shí)符以及對(duì)應(yīng)于所述多個(gè)處理器核心的每指令多個(gè)周期。
11.根據(jù)權(quán)利要求1所述的處理器,其中,所述存儲(chǔ)單元存儲(chǔ)一個(gè)或多個(gè)性能計(jì)數(shù)器。
12.根據(jù)權(quán)利要求11所述的處理器,其中,所述一個(gè)或多個(gè)性能計(jì)數(shù)器包括:核心時(shí)鐘周期、引退的指令、2級(jí)高速緩存缺失、調(diào)度器暫停、資源暫停、或分支暫停。
13.—種方法,包括: 存儲(chǔ)對(duì)應(yīng)于處理器的多個(gè)異構(gòu)處理器核心的性能的信息; 基于所存儲(chǔ)的信息來(lái)確定所述多個(gè)處理器核心中的第一處理器核心以執(zhí)行應(yīng)用;以及 響應(yīng)于對(duì)應(yīng)于所述第一處理器核心的數(shù)據(jù)向操作系統(tǒng)的傳輸,在所述第一處理器核心上針對(duì)執(zhí)行而調(diào)度所述應(yīng)用。
14.根據(jù)權(quán)利要求13所述的方法,其中,數(shù)據(jù)的所述傳輸響應(yīng)于對(duì)上下文切換的檢測(cè)。
15.根據(jù)權(quán)利要求13所述的方法,其中,所存儲(chǔ)的對(duì)應(yīng)于所述處理器的所述多個(gè)處理器核心的性能的信息包括執(zhí)行性能數(shù)據(jù)或功率消耗性能數(shù)據(jù)。
16.根據(jù)權(quán)利要求13所述的方法,還包括:基于所收集的信息來(lái)更新所存儲(chǔ)的信息。
17.根據(jù)權(quán)利要求13所述的方法,還包括:預(yù)測(cè)所述應(yīng)用在所述多個(gè)處理器核心中的至少一些上的執(zhí)行或功率消耗性能。
18.根據(jù)權(quán)利要求13所述的方法,其中,存儲(chǔ)所述信息是在所述應(yīng)用的進(jìn)程控制塊中。
19.根據(jù)權(quán)利要求13所述的方法,其中,所存儲(chǔ)的信息被存儲(chǔ)在下述中: 性能歷史表(PHT),其中所述PHT中的每個(gè)條目至少存儲(chǔ)進(jìn)程標(biāo)識(shí)符以及對(duì)應(yīng)于所述多個(gè)處理器核心的每指令多個(gè)周期;或者 一個(gè)或多個(gè)性能計(jì)數(shù)器,其中所述一個(gè)或多個(gè)性能計(jì)數(shù)器包括:核心時(shí)鐘周期、引退的指令、2級(jí)高速緩存缺失、調(diào)度器暫停、資源暫停、或分支暫停。
20.一種計(jì)算系統(tǒng),包括: 處理器,所述處理器包括多個(gè)處理器核心;以及 存儲(chǔ)單元,所述存儲(chǔ)單元存儲(chǔ)對(duì)應(yīng)于所述處理器的所述多個(gè)處理器核心的性能的信息,其中所述多個(gè)處理器核心中的至少一個(gè)包括邏輯,所述邏輯基于所存儲(chǔ)的信息來(lái)確定所述多個(gè)處理器核心中的第一處理器核心以執(zhí)行應(yīng)用,以及使得在所述第一處理器核心上針對(duì)執(zhí)行而調(diào)度所述應(yīng)用,其中響應(yīng)于對(duì)上下文切換的檢測(cè),所述邏輯將數(shù)據(jù)傳送至操作系統(tǒng)以使得在所述第一處理器核心上調(diào)度所述應(yīng)用。
21.根據(jù)權(quán)利要求20所述的系統(tǒng),其中,所存儲(chǔ)的對(duì)應(yīng)于所述處理器的所述多個(gè)處理器核心的性能的信息包括執(zhí)行性能數(shù)據(jù)或功率消耗性能數(shù)據(jù)。
22.根據(jù)權(quán)利要求20所述的系統(tǒng),其中,所述邏輯預(yù)測(cè)所述應(yīng)用在所述多個(gè)處理器核心中的至少一些上的執(zhí)行或功率消 耗性能。
23.根據(jù)權(quán)利要求20所述的系統(tǒng),其中,所述多個(gè)處理器核心是異構(gòu)的。
24.根據(jù)權(quán)利要求20所述的系統(tǒng),其中,所述存儲(chǔ)單元存儲(chǔ)性能歷史表(PHT),其中所述PHT中的每個(gè)條目至少存儲(chǔ)進(jìn)程標(biāo)識(shí)符以及對(duì)應(yīng)于所述多個(gè)處理器核心的每指令多個(gè)周期。
25.根據(jù)權(quán)利要求20所述的系統(tǒng),其中,所述存儲(chǔ)單元存儲(chǔ)一個(gè)或多個(gè)性能計(jì)數(shù)器,其中所述一個(gè)或多個(gè)性能計(jì)數(shù)器包括:核心時(shí)鐘周期、引退的指令、2級(jí)高速緩存缺失、調(diào)度器暫停、資源暫停、或分支暫停。
26.根據(jù)權(quán)利要求20所述的系統(tǒng),還包括與處理器核心耦合的音頻設(shè)備。
27.一種存儲(chǔ)指令的計(jì)算機(jī)可讀介質(zhì),所述指令在被處理器執(zhí)行時(shí)使進(jìn)程執(zhí)行下述操作: 存儲(chǔ)對(duì)應(yīng)于處理器的多個(gè)異構(gòu)處理器核心的性能的信息; 基于所存儲(chǔ)的信息來(lái)確定所述多個(gè)處理器核心中的第一處理器核心以執(zhí)行應(yīng)用;以及 響應(yīng)于對(duì)應(yīng)于所述第一處理器核心的數(shù)據(jù)向操作系統(tǒng)的傳輸,在所述第一處理器核心上針對(duì)執(zhí)行而調(diào)度所述應(yīng)用。
28.根據(jù)權(quán)利要求27所述的計(jì)算機(jī)可讀介質(zhì),其中,所述指令使得所述處理器響應(yīng)于對(duì)上下文切換的檢測(cè)而使得傳輸數(shù)據(jù)。
29.根據(jù)權(quán)利要求27所述的計(jì)算機(jī)可讀介質(zhì),其中,所存儲(chǔ)的對(duì)應(yīng)于所述處理器的所述多個(gè)處理器核心的性能的信息包括執(zhí)行性能數(shù)據(jù)或功率消耗性能數(shù)據(jù)。
30.根據(jù)權(quán)利要求27所述的計(jì)算機(jī)可讀介質(zhì),其中,所述指令使得所述處理器預(yù)測(cè)所述應(yīng)用在所述多個(gè)處理器核心中的至少一些上的執(zhí)行或功率消耗性能。
全文摘要
調(diào)度在異構(gòu)多處理器計(jì)算平臺(tái)中的應(yīng)用的方法和設(shè)備被描述。在一個(gè)實(shí)施例中,將與處理器的多個(gè)處理器核心的性能(例如執(zhí)行性能和/或功率消耗性能)有關(guān)的信息存儲(chǔ)在計(jì)數(shù)器和/或表中(并對(duì)該信息進(jìn)行跟蹤)。處理器中的邏輯基于所存儲(chǔ)的信息來(lái)確定哪個(gè)處理器核心應(yīng)當(dāng)執(zhí)行應(yīng)用。還要求保護(hù)并公開(kāi)了其他實(shí)施例。
文檔編號(hào)G06F15/76GK103119580SQ201180046075
公開(kāi)日2013年5月22日 申請(qǐng)日期2011年9月24日 優(yōu)先權(quán)日2010年9月25日
發(fā)明者R.艾爾, S.斯里尼瓦桑, L.趙, R.G.伊利卡爾 申請(qǐng)人:英特爾公司