用于高速緩存占據(jù)確定和指令調(diào)度的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明大體設(shè)及計算機處理器的領(lǐng)域。更具體地,本發(fā)明設(shè)及用于高速緩存占據(jù) 確定和指令調(diào)度的裝置和方法。
【背景技術(shù)】
[0002] 數(shù)據(jù)高速緩存未命中導致程序代碼的低效執(zhí)行,因為如果執(zhí)行操作所需要的數(shù)據(jù) 沒有存儲在高速緩存中,則必須花費大量時間(例如微處理器周期)來從存儲器檢索數(shù)據(jù)。 對該問題之前的一種解決方案是數(shù)據(jù)預(yù)取,其中提供顯式架構(gòu)支持W預(yù)計將需要的數(shù)據(jù)并 且預(yù)取該數(shù)據(jù)W緩存。另一解決方案是使用高速緩存遺忘和高速緩存意識算法,其確定如 何優(yōu)化存儲器中的數(shù)據(jù)結(jié)構(gòu)的布局,而不使用任何特殊的架構(gòu)支持或交互。
【附圖說明】
[0003] 從結(jié)合W下各圖的W下詳細描述,可W得到對本發(fā)明的更好理解,其中: 圖1A是圖示了根據(jù)本發(fā)明的實施例的示例性有序管線和示例性寄存器重命名、無序發(fā) 布(issue)/執(zhí)行管線二者的框圖; 圖1B是圖示了根據(jù)本發(fā)明的實施例的要包括在處理器中的有序架構(gòu)核的示例性實施 例和示例性寄存器重命名、無序發(fā)布/執(zhí)行架構(gòu)核二者的框圖; 圖2是根據(jù)本發(fā)明的實施例的具有集成存儲器控制器和圖形的多核處理器和單核處理 器的框圖; 圖3圖示了依照本發(fā)明的一個實施例的系統(tǒng)的框圖; 圖4圖示了依照本發(fā)明的實施例的第二系統(tǒng)的框圖; 圖5圖示了依照本發(fā)明的實施例的第Ξ系統(tǒng)的框圖; 圖6圖示了依照本發(fā)明的實施例的片上系統(tǒng)(SoC)的框圖; 圖7圖示了根據(jù)本發(fā)明的實施例的與使用軟件指令轉(zhuǎn)換器來將源指令集中的二進制指 令轉(zhuǎn)換成目標指令集中的二進制指令形成對比的框圖; 圖8圖示了具有用于確定高速緩存占據(jù)的邏輯的架構(gòu)的一個實施例。 圖9圖示了用于確定高速緩存占據(jù)并且基于所述確定執(zhí)行隨后操作的方法的一個實施 例。 圖10圖示了用于確定高速緩存占據(jù)并且基于所述確定執(zhí)行來自工作隊列的工作項目 的方法的一個實施例。
【具體實施方式】
[0004] 在W下描述中,出于解釋的目的,闡述眾多具體細節(jié)W便提供對下文描述的本發(fā) 明的實施例的透徹理解。然而,本領(lǐng)域技術(shù)人員將清楚的是,本發(fā)明的實施例可W在沒有運 些具體細節(jié)中的一些的情況下實踐。在其他實例中,W框圖形式示出公知的結(jié)構(gòu)和設(shè)備W 避免使本發(fā)明的實施例的底層原理模糊。 巧00引示例性處理器架構(gòu)和數(shù)據(jù)類型 圖1A是圖示了根據(jù)本發(fā)明的實施例的示例性有序管線和示例性寄存器重命名、無序發(fā) 布/執(zhí)行管線二者的框圖。圖1B是圖示了根據(jù)本發(fā)明的實施例的要包括在處理器中的有序 架構(gòu)核和示例性寄存器重命名、無序發(fā)布/執(zhí)行架構(gòu)核的示例性實施例二者的框圖。圖1A-1B中的實線框圖示了有序管線和無序管線,而虛線框的可選添加圖示了寄存器重命名、無 序發(fā)布/執(zhí)行管線和核。在給定有序方面是無序方面的子集的情況下,將描述無序方面。
[0006] 在圖1A中,處理器管線100包括獲取級102、長度解碼級104、解碼級106、分配級 108、重命名級110、調(diào)度(還稱為分派或發(fā)布)級112、寄存器讀取/存儲器讀取級114、執(zhí)行級 116、回寫/存儲器寫入級118、異常處置級122和提交級124。
[0007] 圖1B示出了處理器核190,其包括禪合到執(zhí)行引擎單元150的前端單元130,并且運 兩者都禪合到存儲器單元170。核190可W是精簡指令集計算(RISC)核、復(fù)雜指令集計算 (CISC)核、超長指令字(VLIW)核或者混合型或可替換核類型。作為又一選項,核190可W是 專用核,諸如例如網(wǎng)絡(luò)或通信核、壓縮引擎、協(xié)處理器核、通用計算圖形處理單元(GPGPU) 核、圖形核等等。
[0008] 前端單元130包括禪合到指令高速緩存單元134的品牌預(yù)測單元132,指令高速緩 存單元134禪合到指令轉(zhuǎn)換后備緩沖器(TLB)136,指令轉(zhuǎn)換后備緩沖器(TLBH36禪合到指 令獲取單元138,指令獲取單元138禪合到解碼單元140。解碼單元140(或解碼器)可W解碼 指令,并且作為輸出生成一個或多個微操作、微代碼入口點、微指令、其他指令或其他控制 信號,其從原始指令解碼或者W其他方式反映原始代碼或者從原始代碼導出。解碼單元140 可W使用各種不同機制實現(xiàn)。適當機制的示例包括但不限于查找表、硬件實現(xiàn)、可編程邏輯 陣列(PLA)、微代碼只讀存儲器(ROM)等等。在一個實施例中,核190包括微代碼ROM或者存儲 用于某些宏指令的微代碼的其他介質(zhì)(例如在解碼單元140中或者W其他方式在前端單元 130內(nèi))。解碼單元140禪合到執(zhí)行引擎單元150中的重命名/分配器單元152。
[0009] 執(zhí)行引擎單元150包括禪合到引退單元154和一個或多個調(diào)度器單元156的集合的 重命名/分配器單元152。(多個)調(diào)度器單元156表示任何數(shù)目的不同調(diào)度器,包括預(yù)留站、 中央指令窗口等。(多個)調(diào)度器單元156禪合到(多個)物理寄存器文件單元158。(多個)物 理寄存器文件單元158中的每一個表示一個或多個物理寄存器文件,其中的不同物理寄存 器文件存儲一個或多個不同數(shù)據(jù)類型,諸如標量整數(shù)、標量浮點數(shù)、封包整數(shù)、封包浮點數(shù)、 矢量整數(shù)、矢量浮點數(shù)、狀態(tài)(例如,作為要執(zhí)行的下一指令的地址的指令指針)等等。在一 個實施例中,(多個)物理寄存器文件單元158包括矢量寄存器單元、寫入掩碼寄存器單元W 及標量寄存器單元。運些寄存器單元可W提供架構(gòu)矢量寄存器、矢量掩碼寄存器和通用寄 存器。(多個)物理寄存器文件單元158與引退單元154重疊 W說明其中可W實現(xiàn)寄存器重命 名和無序執(zhí)行的各種方式(例如使用(多個)重新排序緩沖器和(多個)引退寄存器文件;使 用(多個)將來文件、(多個)歷史緩沖器和(多個)引退寄存器文件;使用寄存器圖和寄存器 池;等等)。引退單元154和(多個)物理寄存器文件單元158禪合到(多個)執(zhí)行群簇160。(多 個)執(zhí)行群簇160包括一個或多個執(zhí)行單元162的集合和一個或多個存儲器訪問單元164的 集合。執(zhí)行單元162可W在各種類型數(shù)據(jù)(例如標量浮點數(shù)、封包整數(shù)、封包浮點數(shù)、矢量整 數(shù)、矢量浮點數(shù))上執(zhí)行各種操作(例如移位、加法、減除、乘法)。盡管一些實施例可W包括 專用于具體功能或功能集合的數(shù)個執(zhí)行單元,但是其他實施例可W包括僅一個執(zhí)行單元或 者全部執(zhí)行所有功能的多個執(zhí)行單元。(多個)調(diào)度器單元156、(多個)物理寄存器文件單元 158和(多個)執(zhí)行群簇160被示為可能是復(fù)數(shù)個,因為某些實施例創(chuàng)建用于某些類型數(shù)據(jù)/ 操作的分離管線(例如標量整數(shù)管線、標量浮點數(shù)/封包整數(shù)/封包浮點數(shù)/矢量整數(shù)/矢量 浮點數(shù)管線,和/或存儲器訪問管線,每一個具有其自身的調(diào)度器單元、(多個)物理寄存器 文件單元和/或執(zhí)行群簇一一并且在分離存儲器訪問管線的情況下,實現(xiàn)其中僅該管線的 執(zhí)行群簇具有(多個)存儲器訪問單元164的某些實施例)。還應(yīng)當理解到,在使用分離管線 的情況下,運些管線中的一個或多個可W是無序發(fā)布/執(zhí)行并且其余為有序的。
[0010] 存儲器訪問單元164的集合禪合到存儲器單元170,其包括禪合到數(shù)據(jù)高速緩存單 元174的數(shù)據(jù)化B單元172,數(shù)據(jù)高速緩存單元174禪合到2級化2)高速緩存單元176。在一個 示例性實施例中,存儲器訪問單元164可W包括加載單元、存儲地址單元和存儲數(shù)據(jù)單元, 其中每一個禪合到存儲器單元170中的數(shù)據(jù)化B單元172。指令高速緩存單元134還禪合到存 儲器單元170中的2級化2)高速緩存單元176dL2高速緩存單元176禪合到一個或多個其他級 高速緩存并且最終禪合到主存儲器。
[0011] 作為示例,示例性寄存器重命名、無序發(fā)布/執(zhí)行核架構(gòu)可W實現(xiàn)如下管線100:1) 指令獲取138執(zhí)行獲取和長度解碼級102和104;2)解碼單元140執(zhí)行解碼級106;3)重命名/ 分配器單元152執(zhí)行分配級108和重命名級110;4)(多個)調(diào)度器單元156執(zhí)行調(diào)度級112;5) (多個)物理寄存器文件單元158和存儲器單元170執(zhí)行寄存器讀取/存儲器讀取級114;執(zhí)行 群簇160對執(zhí)行級116進行執(zhí)行;6)存儲器單元170和(多個)物理寄存器文件單元158執(zhí)行回 寫/存儲器寫入級118;7)各種單元可W牽設(shè)在接受處置級122中;并且8)引退單元154和(多 個)物理寄存器文件單元158執(zhí)行提交級124。
[0012] 核190可W支持一個或多個指令集,例如x86指令集(具有已經(jīng)添加有較新版本的 一些擴展);Sunnyvale, CA 的MIPS Technologies 的MIPS 指令集;