高動態(tài)范圍軟件-透明異構(gòu)計算元件處理器、方法及系統(tǒng)的制作方法
【專利說明】高動態(tài)范圍軟件-透明異構(gòu)計算元件處理器、方法及系統(tǒng) 【背景技術(shù)】 技術(shù)領(lǐng)域
[0001] 實施例設(shè)及處理器。具體而言,各實施例設(shè)及具有異構(gòu)核或其他計算元件的處理 器。
[000引背景信息
[0003] 異構(gòu)核處理器架構(gòu)可W提供優(yōu)于同構(gòu)核處理器架構(gòu)的優(yōu)點,因為有多于一種的核 類型可用于執(zhí)行計算任務(wù)。不同類型的核一般傾向于在執(zhí)行不同的任務(wù)時比其他的更適 合。例如,在執(zhí)行任務(wù)X時,核類型A可能比核類型B更快,但是,在執(zhí)行任務(wù)Y時,核類型A 可能比核類型B較慢。結(jié)果,具有核類型A和核類型B兩者的處理器在執(zhí)行任務(wù)X和Y的 組合時一般比只有核類型A或核類型B但沒有兩者的處理器更有效率。
[0004] 盡管由異構(gòu)核處理器架構(gòu)提供的潛在優(yōu)點,但是,當前幾乎不存在該樣架構(gòu)的商 業(yè)示例。通常,該樣的架構(gòu)需要軟件(例如,操作系統(tǒng))知道如何將任務(wù)調(diào)度到異構(gòu)核,W 便利用它們的不同的能力。然而,當前,來自諸如Windows液和Linux之類的操作系統(tǒng)的 用于利用異構(gòu)核的不同的能力的支持非常有限,乃至沒有。此外,處理器W及它們的異構(gòu)核 隨著時間而變化,通常修改操作系統(tǒng)W便它們與變化保持一致并能夠利用由核的異構(gòu)性所 提供的優(yōu)點往往是困難且昂貴的。
[0005] 附圖的若干視圖的簡要說明
[0006] 通過參考用來說明本發(fā)明的實施例的W下描述和附圖,可最好地理解本發(fā)明。在 附圖中:
[0007] 圖1是具有異構(gòu)核處理器的實施例和動態(tài)范圍擴展工作負荷遷移邏輯的實施例 的計算系統(tǒng)的框圖。
[000引圖2是具有異構(gòu)計算元件的處理器的實施例和動態(tài)范圍擴展工作負荷遷移邏輯 的實施例的框圖。
[0009] 圖3是動態(tài)范圍擴展工作負荷遷移邏輯的詳細示例實施例的框圖。
[0010] 圖4是判斷是否將工作負荷遷移到較高計算能力和較高功耗計算元件的方法的 詳細示例實施例的流程框圖。
[0011] 圖5A是示出根據(jù)本發(fā)明的各實施例的示例性有序流水線和示例性的寄存器重命 名的無序發(fā)布/執(zhí)行流水線的框圖。
[0012] 圖5B是示出根據(jù)本發(fā)明的各實施例的要包括在處理器中的有序架構(gòu)核的示例性 實施例和示例性的寄存器重命名的無序發(fā)布/執(zhí)行架構(gòu)核的框圖。
[0013] 圖6A是根據(jù)本發(fā)明實施例的單處理器核連同其到管巧上互連網(wǎng)絡(luò)的連接W及其 2級(L2)高速緩存的本地子集的框圖。
[0014] 圖6B是根據(jù)本發(fā)明的各實施例的圖6A中的處理器核的一部分的展開圖。
[0015] 圖7是根據(jù)本發(fā)明的實施例的可具有超過一個的核、可具有集成的存儲器控制 器、并且可具有集成圖形的處理器的框圖。
[0016] 圖8所示為根據(jù)本發(fā)明的一個實施例的系統(tǒng)的框圖。
[0017] 圖9所示為根據(jù)本發(fā)明的實施例的第一更具體示例性系統(tǒng)的框圖。
[0018] 圖10所示為根據(jù)本發(fā)明的一實施例的第二更具體示例性系統(tǒng)的框圖。
[0019] 圖11所示為根據(jù)本發(fā)明的一實施例的SoC的框圖。
[0020] 圖12是根據(jù)本發(fā)明的各實施例的對照使用軟件指令轉(zhuǎn)換器將源指令集中的二進 制指令轉(zhuǎn)換成目標指令集中的二進制指令的框圖。 【具體實施方式】
[0021] 此處公開了可操作W使用異構(gòu)計算元件來實現(xiàn)帶有軟件透明性的高動態(tài)范圍的 異構(gòu)計算元件處理器、方法和系統(tǒng)。在W下描述中,闡述了大量具體細節(jié)(例如,異構(gòu)計算 元件的具體類型和數(shù)量、邏輯實現(xiàn)和微架構(gòu)細節(jié)、邏輯分區(qū)/集成細節(jié)、功率/熱預(yù)算準則、 操作序列,系統(tǒng)組件的類型和相互關(guān)系,等等)。然而應(yīng)理解,本發(fā)明的實施例在沒有該些具 體細節(jié)的情況下也可實踐。在其它實例中,未詳細示出公知的電路、結(jié)構(gòu)W及技術(shù),W免模 糊對本描述的理解。
[0022] 移動、電池供電的和/或小計算設(shè)備一般得益于在功耗和計算能力或性能方面具 有高動態(tài)范圍的能力。該樣的設(shè)備的示例包括,但不僅限于,膝上型計算機、平板電腦、上網(wǎng) 本、智能電話、蜂窩電話、手持式計算設(shè)備、媒體播放器,及其他移動,電池供電的和/或小 計算設(shè)備。該樣的設(shè)備越來越多地被設(shè)計成在不斷降低的功率和熱范圍內(nèi)操作。一方面, 該樣的設(shè)備常常由電池或其他有限的電源供電,該傾向于使節(jié)省電能很重要。其次,該樣的 設(shè)備中有許多常常采用小形狀因子,該傾向于限制電池的大小和/或限制熱范圍。同時,該 樣的設(shè)備越來越多地用于從計算角度來看越來越密集的任務(wù),并期待具有具有更好的性能 (例如,由于更多的多媒體內(nèi)容,更加復(fù)雜的應(yīng)用,等等)。相應(yīng)地,在該樣的設(shè)備中,能夠平 衡功率、熱W及計算性能相關(guān)的目標一般是有益的。
[0023] 此處所公開的具有帶有不同的功耗和計算能力的核或其他計算元件的異構(gòu)計算 元件處理器的各實施例,可W被用來提供在功耗和計算能力或性能方面的高動態(tài)范圍,W 便幫助平衡該些不同的目標。許多移動、電池供電的和/或小計算設(shè)備傾向于被通電,但是 空閑相對長的時間,只在相對短的時間內(nèi)需要用于大量計算和/或高性能。在某些實施例 中,在不需要大量計算時的該樣的長時間段內(nèi)可W使用較低計算能力和較低功耗的計算元 件,W便節(jié)省功率,而在可用的能量和熱范圍內(nèi),在大量計算有益的相對短時間內(nèi)可W使用 較高計算能力且較高功耗的計算元件。
[0024] 圖1是具有異構(gòu)核處理器101的實施例的計算系統(tǒng)100的框圖。在某些實施例 中,異構(gòu)核處理器可W是通用處理器(例如,用于臺式機、膝上型計算機及類似計算機的類 型的)。替換地,處理器可W是專用處理器。合適的專用處理器的示例包括但不限于,網(wǎng)絡(luò) 處理器、通信處理器、加密處理器、圖形處理器、協(xié)處理器、嵌入式處理器、數(shù)字信號處理器 值S巧W及控制器(例如,微控制器),僅列舉數(shù)例。
[0025] 異構(gòu)核處理器具有帶有不同的計算特征并在某些情況下但不是所有情況下帶有 不同的功耗特征的異構(gòu)物理核。具體而言,異構(gòu)物理核包括一組一個或多個較低計算能力 并在某些情況下較低功耗的物理核102,W及一組一個或多個較高計算能力并在某些情況 下較高功耗的物理核103。如此處所使用的,術(shù)語"較低"和"較高"是相對于彼此的相對術(shù) 語,不是絕對術(shù)語。例如,較低功率核比較高功率核等等使用較小功率。在示圖中,不同大 小的物理核用于指定邏輯和/或計算能力的相對量。
[0026] 一般而言,如果一個核具有多個邏輯,那么,其計算能力傾向于較大,但是,其功耗 也傾向于較大。相反,較小的核一般傾向于使用較小的功率,而且傾向于具有較小的計算能 力。如此,較高計算能力且較高功耗的核可W表示"較大的"核,而較低計算能力且較低功 耗的核可W表示"較小的"核。再次,術(shù)語"較大的"和"較小的"此處用作相對的而不是絕 對術(shù)語。然而,不要求較高計算能力的計算元件需要比較低計算能力的計算元件具有更多 邏輯和/或更高功耗。例如,在執(zhí)行某些類型的任務(wù)時效率很高的專用或定制的邏輯能夠 W較高性能執(zhí)行那些任務(wù),而不一定需要具有更多的邏輯和/或較高功耗。例如,被設(shè)計為 針對任務(wù)x(例如,網(wǎng)頁瀏覽、視頻解壓縮等等)有效率的通用核在執(zhí)行任務(wù)X時比另一種 類型的通用核更有效率并且更快??蒞向該樣的較高計算能力計算元件遷移,W便擴展計 算或性能動態(tài)范圍,而不一定導(dǎo)致更大的功耗。在本描述中,常常使用較低計算能力且較低 功耗的計算元件,W及較高計算能力且較高功耗的計算元件。然而,在其他實施例中,較高 計算能力的計算元件可W具有與較低計算能力的計算元件相同或者甚至更低的功耗。
[0027] 再次參考圖1,在所示實施例中,較低計算能力且較低功耗的物理核102的組包括 核LPC。到LPCW,較高計算能力且較高功耗的物理核103的組包括核HPC。到HPCM。數(shù)字N和 M可W是特定實現(xiàn)所需的任何合適的數(shù)字。常常可W有從一個(例如,在媒體播放器或其他 簡單計算設(shè)備)到數(shù)百(例如,在膝上型計算機或其他復(fù)雜的計算設(shè)備中)間的任何數(shù)量 的較低計算能力且較低功耗W及較高計算能力且較高功耗的物理核。
[002引在一個特定示例中,可W有1到30之間的較低計算能力且較低功耗的核,1到30, 1至IJ10,或1到5之間的較高計算能力且較高功耗的核。在某些實施例中,較高計算能力且 較高功耗的核可W比較低計算能力且較低功耗核少,雖然該不是必需的。在示圖中,為簡 明起見,只示出了兩種不同類型的異構(gòu)核,雖然其他實施例可W具有=種或更多種不同類 型的異構(gòu)核(例如,那些所示出的,對于特定任務(wù)定制的計算元件之間的第S大小的核等 等)。
[0029] 異構(gòu)核表示異構(gòu)計算元件或處理元件的一個實施例。在其他實施例中,可W使用 其他類型的異構(gòu)計算元件或處理元件,代替核。異構(gòu)計算元件或處理元件的其他合適的示 例包括,但不僅限于,硬件加速器、固定功能加速器、圖形處理單元、專業(yè)化處理單元、功能 單元、執(zhí)行單元、向量執(zhí)行單元、等等,W及其組合。在本描述中,異構(gòu)核常常作為異構(gòu)計算 元件或處理元件的示例實施例,雖然可W可另選地使用上文所描述的計算元件或處理元件 的任何組合。
[0030] 參考再次圖示,處理器可W向軟件調(diào)度器105呈現(xiàn)或暴露一組一個或多個虛擬核 104。軟件調(diào)度器常??蒞是操作系統(tǒng)的一部分。在某些實施例中,虛擬核可W在軟件調(diào)度 器看起來是同構(gòu)核,而不是異構(gòu)核。在示圖中,該通過暴露的虛擬核全部是相同大小來指 定。向軟件暴露虛擬同構(gòu)核可W有效地對軟件隱瞞物理核的異構(gòu)本質(zhì)。軟件調(diào)度器可W調(diào) 度線程、任務(wù)、軟件進程或其他工作負荷106在暴露的同構(gòu)虛擬核上執(zhí)行(在圖示中由箭頭 所示出的),如它將在真正的同構(gòu)多核處理器或多處理器系統(tǒng)中那樣。有利地,該可W幫助 避免設(shè)計軟件調(diào)度器和/或操作系統(tǒng)W利用由異構(gòu)物理核所提供的好處的必要性。此外, 該還可W幫助避免當處理器物理核或物理核隨著時間而變化時修改軟件調(diào)度器和/或操 作系統(tǒng)的必要性。
[0031] 在某些實施例中,在暴露的軟件可見的虛擬核和較低計算能力且較低功耗的物理 核之間可W有默認一對一映射。在示圖中,該通過連接虛擬核與較低計算能力且較低功耗 的物理核中的相應(yīng)一個的箭頭來示出。例如,VC。被默認映射到LPC。,VCi被默認映射到LPC1, 依次類推??闪磉x地,可W替代地使用虛擬核和較低計算能力且較低功耗的物理核之間的 其他類型的默認映射和/或動態(tài)映射。作為另一個示例,由于功率、存儲器訪問延遲或各種 原因,對應(yīng)關(guān)系可W是動態(tài)的(例如,虛擬核(例如,VC2)可W從一個物理核(例如,LPC2) 重新映射到另一物理核(例如,LPCi)。相應(yīng)地,雖然在所示實施例中,示出了靜態(tài)的一對一 的默認映射,但是,其他實施例可W使用虛擬核和較低計算能力且較低功耗的物理核之間 的靜態(tài)或者動態(tài)的映射,而不一定是一對一的映射。
[0032] 再次參考圖1,處理器包括動態(tài)范圍擴展工作負荷遷移邏輯108的實施例。動態(tài)范 圍擴展工作負荷遷移邏輯可硬件(例如,集成電路、晶體管等等)和/或潛在地與某個 軟件相結(jié)合的處理器的固件(例如,存儲在非易失性存儲器中的微代碼)來實現(xiàn)。動態(tài)范 圍擴展工作負荷遷移邏輯與異構(gòu)物理核禪合,并邏輯地放置在軟件暴露的虛擬核和異構(gòu)物 理核之間。動態(tài)范圍擴展工作負荷遷移邏輯可W可操作,W平衡功耗和性能和/或擴展計 算系統(tǒng)的動態(tài)范圍。
[0033] 較低計算能力且較低功耗的核(例如,較小核)和較高計算能力且較高功耗的核 (例如,較大的核)在功耗和計算能力之間提供折衷。較小核功率效率比較高,但是,具有較 低的計算能力,并提供較低的性能,而較大的核具有比較大的計算能力,并提供更好的性能 (例如,較高的平均指令執(zhí)行速率),但是消耗更大的功率(例如,每個執(zhí)行的指令消耗的平 均功率較高)。通過包括較低和較高計算能力和較高功耗的核(或其他計算元件)兩者,動 態(tài)范圍擴展工作負荷遷移邏輯可W實現(xiàn)功耗和能量效率的好的平衡。
[0034] 在各實施例中,動態(tài)范圍擴展工作負荷遷移邏輯可W可操作,W在較低計算能力 且較低功耗的物理核和較高計算能力且較高功耗的物理核之間遷移、移動或重新映射線 程、任務(wù)、軟件進程、其他工作負荷和/或虛擬核。例如,由軟件調(diào)度器在虛擬核(例如,VCi) 上調(diào)度的線程可W從較低計算能力且較低功耗的物理核(例如,LPCi)移動到較高計算能力 且較高功耗的物理核(例如,HPCi)。例如