基于平臺熱以及功率預算約束,對于給定工作負荷的最佳邏輯處理器計數(shù)和類型選擇的制作方法
【技術領域】
[0001] 本發(fā)明設及處理邏輯、微處理器,W及相關聯(lián)的指令集架構領域,當它們被處理器 或其他處理邏輯執(zhí)行時,執(zhí)行邏輯、數(shù)學,或其他功能操作。
【背景技術】
[0002] 中央處理單元(CPU)設計師試圖通過增大處理器中的核的數(shù)量,提供處理器性能 的一致的改善??s放處理器的性能并改善能量效率的必要性導致異構型處理器架構的發(fā) 展。異構型處理器包括帶有不同的功率和性能特征的核。例如,異構型處理器可W集成大 核和小核的混合,如此,可W潛在地實現(xiàn)兩種類型的核的優(yōu)點。需要高處理強度的應用程序 可W分配給大核,而產生低處理強度的應用程序可W分配給小核,W節(jié)省電能。在移動或其 他功率受約束的平臺上,提高能量效率轉換成延長的電池壽命。
[0003] 常規(guī)異構型處理器中的核通常在其整個執(zhí)行持續(xù)時間內被分配給處理任務。然 而,任務的處理強度可能會在其執(zhí)行過程中變化。在任何給定時間,可W有多個任務同時執(zhí) 行,運些任務可能具有對于處理資源的不同的并且變化的要求。如此,靜態(tài)核分配不能優(yōu)化 處理資源的利用率和能量效率。
[0004] 附圖簡述
[0005] 此處所描述的本發(fā)明的各實施例是作為示例說明的,而不僅限于各個附圖的圖 形。
[0006] 圖1是根據一實施例的具有核選擇模塊的處理器的框圖。
[0007] 圖2是示出了根據一實施例的執(zhí)行核選擇線程的處理器的框圖。
[0008]圖3是示出了根據一個實施例的用于執(zhí)行核選擇線程的時間線的示例的時序圖。
[0009] 圖4是示出了根據一實施例的核選擇所使用的性能計數(shù)器的框圖。
[0010] 圖5示出了根據一實施例的多線程應用程序的執(zhí)行。
[0011] 圖6是示出了根據一實施例的要被執(zhí)行的操作的流程圖。
[0012] 圖7A是根據一實施例和有序和無序流水線的框圖。
[0013] 圖7B是根據一實施例和有序和無序核的框圖。
[0014] 圖8A-B是根據一實施例的比較具體的示例性有序核體系結構的框圖。
[0015] 圖9是根據一個實施例的處理器的框圖。
[0016] 圖10是示出了根據一個實施例的系統(tǒng)的框圖。
[0017] 圖11是根據一個實施例的第二系統(tǒng)的框圖。
[0018] 圖12是根據本發(fā)明的一實施例的第S系統(tǒng)的框圖。
[0019] 圖13是根據一個實施例的片上系統(tǒng)(SoC)的框圖。
[0020] 實施例的描述
[0021] 在下面的描述中,闡述了很多具體細節(jié)。然而,應該理解,本發(fā)明的各實施例可W 在沒有運些具體細節(jié)的情況下實施。在其他情況下,沒有詳細示出已知的電路、結構,W及 技術,W便不至于使對本描述的理解變得模糊。
[0022] 此處所描述的各實施例提供核選擇機制,該機制跟蹤多線程應用程序的執(zhí)行,并 向應用程序暴露最合適的核組。多線程應用程序具有可W在多個核上被并發(fā)地處理的執(zhí)行 的多個上下文(即,軟件線程,也被稱為線程)。運多個線程可W具有在不同的數(shù)據集上應 用的相同指令序列(例如,大矩陣乘法),或可W設及不同的任務在不同的線程中的并發(fā)執(zhí) 行(例如,同時的網頁瀏覽和音樂播放)。當運行多線程應用程序時,核選擇機制選擇處理 器中最適合于線程的并發(fā)執(zhí)行的核的子集。選擇可W考慮平臺熱約束、功率預算和應用程 序可縮放性。在一個實施例中,核選擇機制可W通過用于帶外控制的微控制器,或用于帶內 控制的軟件線程來實現(xiàn)。
[0023] 圖1是根據一實施例的實現(xiàn)核選擇機制的處理器100的框圖。在此實施例中,處 理器100包括具有大核類型的兩個大核120和具有小核類型的四個小核130。應該理解,在 另一個實施例中,處理器100可包括任意數(shù)量的大核120和任意數(shù)量的小核130。在某些實 施例中,處理器可包括兩個W上的不同的核類型。大核120和小核130中的每一個都是包 括用于執(zhí)行指令的電路的物理核。如此,在下面的描述中,大核120和小核130統(tǒng)稱為物理 核 120 和 130。
[0024] 在一個實施例中,大核120和小核130中的每一個都可W支持被超線程W在一個 物理核上運行的一個或多個邏輯核125。超線程允許物理核對單獨的數(shù)據并發(fā)地執(zhí)行多個 指令,其中并發(fā)執(zhí)行由被指定了硬件組件和單獨的地址空間的重復的副本的多個邏輯核支 持。每一邏輯核125在操作系統(tǒng)(0巧看起來好像是不同的處理單元;如此,OS可W調度兩 個進程(即,兩個線程)用于并發(fā)執(zhí)行。大核120比小核130具有更大的處理能力并消耗 更大的功率。由于其較高處理能力和較高功率預算,大核120可W比小核130支持更多邏 輯核125。在圖1的實施例中,每一大核120都支持兩個邏輯核125,每一小核130都支持 一個邏輯核125。在替換實施例中,由物理核120或130支持的邏輯核的數(shù)量可W不同于在 圖1中所示出的。
[0025] 處理器100還在物理核120和130外面包括硬件電路。例如,處理器100可包括 由物理核120和130共享的緩存140 (例如,末級緩存化LC) ),W及諸如集成存儲器控制器 之類的控制單元160,總線/互連控制器等等。應該理解,圖1的處理器100是簡化表示,并 且可W包括額外的硬件電路。
[0026] 在一個實施例中,處理器100禪合到功率控制單元(PCU) 150。PCU150監(jiān)測并管 理處理器110中的電壓、溫度和功率消耗。在一個實施例中,PCU150是與相同管忍上的 處理器110的其他硬件組件集成的硬件或固件單元。PCU150控制邏輯核125W及物理核 120和130的激活(例如,打開)和去激活,諸如關閉核或將核置于節(jié)能狀態(tài)(例如,睡眠狀 態(tài))。
[0027] 在實現(xiàn)帶外控制的實施例中,PCU150包括核選擇模塊152,該模塊152確定用于 執(zhí)行多線程應用程序的邏輯核125的子集。在圖1的實施例中,處理器100支持總共八個邏 輯核125。然而,由于功率和熱約束,并非所有邏輯核125都可W同時活躍;例如,最大只有 四個邏輯核125可W同時活躍。多線程應用程序可WW任何組合(在允許的功率預算內) 在邏輯核125中的任何一個上運行,最大數(shù)量高達四個邏輯核125。核選擇模塊152可W監(jiān) 測應用程序的執(zhí)行,W確定哪些邏輯核125用于執(zhí)行應用程序。核選擇模塊152意識到,并 非所有邏輯核125都相同:由大核120支持的邏輯核具有大核類型,而由小核130支持的邏 輯核具有小核類型。具有大核類型的邏輯核(也被稱為"大邏輯核")比具有小核類型的邏 輯核(也被稱為"小邏輯核")具有更大的處理能力并消耗更大的功率。另外,在相同大核 上并發(fā)地運行的兩個邏輯核可W比在兩個不同的大核上并發(fā)地運行的兩個邏輯核具有較 小的處理能力并消耗較少的能量。
[0028] 圖2是根據另一實施例的實現(xiàn)核選擇機制的處理器200的框圖。處理器200類似 于圖1的處理器100,只是核選擇是由執(zhí)行核選擇線程252的物理核中的一個帶內執(zhí)行的。 核選擇線程252是控制線程,該控制線程可W由邏輯核125中的任何一個在物理核中的任 何一個(即,大核120和小核130中的任何一個)上執(zhí)行。在任何給定時間,只有一個核選 擇線程252由處理器100執(zhí)行。在一個實施例中,執(zhí)行多線程應用程序(或應用程序的一 部分)的邏輯核125(例如,邏輯核LC)還可W執(zhí)行核選擇線程252。如果在應用程序的執(zhí) 行過程中,邏輯核LC被去激活,則核選擇線程252可W被遷移到另一活躍的邏輯核125,W 繼續(xù)核選擇操作。
[0029] 圖3是示出了執(zhí)行多線程應用程序和核選擇線程252的邏輯核LC的時序圖。在 一個實施例中,核選擇線程252每隔N毫秒喚醒W選擇執(zhí)行應用程序的邏輯核的子集。核 選擇線程252可W只運行幾微秒。一旦選擇了邏輯核的子集,邏輯核LC通知PCU150激活 (例如,啟動)那些被選擇的邏輯核一一如果它們還不在活躍狀態(tài)的話。可W由PCU150去 激活(例如,關閉或置于節(jié)能狀態(tài))未被選擇的邏輯核。
[0030] 在一個實施例中,由核選擇機制(即,圖1的核選擇模塊251或圖2的核選擇線程 252)作出的選擇可W基于若干種因素,包括但不限于:由應用程序執(zhí)行的操作的類型,核 的可用性,W及功率預算。例如,如果應用程序具有四個線程并且四個線程正在對不同的組 的數(shù)據執(zhí)行正好相同的操作,那么,可W選擇四個小邏輯核W優(yōu)化每瓦特的處理器性能。在 另一個示例中,四個線程可W最初被分配給四個小邏輯核W根據生產者-消費者模型,執(zhí) 行操作。如果核選擇機制檢測