具有共享前端單元的處理核的制作方法
【專利說明】具有共享前端單元的處理核發(fā)明領(lǐng)域
[0001]本發(fā)明的領(lǐng)域一般涉及計算科學(xué),更具體而言,涉及具有共享前端單元的處理核。
[0002]背景
[0003]圖1示出了示例性多核處理器100的架構(gòu)。如在圖1中觀察到的,處理器包括:1)多個處理核101_1到101_N ;2)互連網(wǎng)絡(luò)102 ;3)末級緩存系統(tǒng)103 ;4)存儲器控制器104和I/O中樞105。處理核中的每一個都包含用于執(zhí)行程序代碼指令的一個或多個指令執(zhí)行流水線?;ミB網(wǎng)絡(luò)102可以將核101_1到101_N中的每一個彼此互連并與其他組件103、
104、105互連。末級緩存系統(tǒng)103在指令和/或數(shù)據(jù)被驅(qū)逐到系統(tǒng)存儲器108之前充當(dāng)處理器中的最后一層緩存。
[0004]存儲器控制器104從/向系統(tǒng)存儲器108讀/寫數(shù)據(jù)和指令。I/O中樞105管理處理器和“I/O”設(shè)備(例如,非易失性存儲器設(shè)備和/或網(wǎng)絡(luò)接口)之間的通信。端口 106源于互連網(wǎng)絡(luò)102以鏈接多個處理器,以便可以實現(xiàn)具有N以上的核的系統(tǒng)。圖形處理器107執(zhí)行圖形計算。功率管理電路(未示出)作為整體管理處理器的性能和功率狀態(tài)(“封裝級別”)以及處理器內(nèi)的諸如單個核101_1到101_N、圖形處理器107等等之類的單個單元的性能和功率狀態(tài)的各方面。為了方便起見,在圖1中未描繪其他重要的功能塊(例如,鎖相環(huán)(PLL)電路)。
[0005]圖2示出了圖1的處理核中的一個的示例性實施例200。如在圖2中觀察到的,每一核都包括兩個指令執(zhí)行流水線250,260。每一指令執(zhí)行流水線250,260都包括其自己的相應(yīng)的:i)指令獲取級201 ;ii)數(shù)據(jù)獲取級202 ;iii)指令執(zhí)行級203 ;以及,iv)寫回級204。指令獲取級201從緩存或系統(tǒng)存儲器(如果所希望的指令不在緩存內(nèi))獲取指令序列中的“接下來的”指令。指令通常操作數(shù)數(shù)據(jù)以及要對操作數(shù)數(shù)據(jù)執(zhí)行的操作。數(shù)據(jù)獲取級202從本地操作數(shù)寄存器空間、數(shù)據(jù)緩存或系統(tǒng)存儲器獲取操作數(shù)數(shù)據(jù)。指令執(zhí)行級203包含一組功能單元,其中任何一個都被調(diào)用,以執(zhí)行由任何一個指令對操作數(shù)數(shù)據(jù)調(diào)用的特定操作,操作數(shù)數(shù)據(jù)是由指令所指定的,并由數(shù)據(jù)獲取級202獲取的。寫回級204通常通過將結(jié)果寫入到耦合到相應(yīng)的流水線的本地寄存器空間,來“提交”執(zhí)行的結(jié)果。
[0006]為了避免對較早的“飛行中的”指令沒有任何依賴關(guān)系的指令的不必要的等待時間,許多現(xiàn)代的指令執(zhí)行流水線具有增強(qiáng)的數(shù)據(jù)獲取和寫回級以實行“無序”執(zhí)行。這里,流水線250,260的相應(yīng)的數(shù)據(jù)獲取級202被增強(qiáng),以包括數(shù)據(jù)相依性邏輯205,以識別指令何時沒有對較早的飛行中的指令的依賴關(guān)系,并準(zhǔn)許其在例如其數(shù)據(jù)還沒有被獲取的較早的指令的“前頭”向指令執(zhí)行級203發(fā)出。
[0007]此外,寫回級204還被增強(qiáng)以包括重排序緩沖器206,該重排序緩沖器206將無序執(zhí)行的指令的結(jié)果重排序為其正確的順序,并將它們的引退等待時間到物理寄存器組,直到指令執(zhí)行結(jié)果的正確地排序的連續(xù)序列引退。
[0008]還觀察到增強(qiáng)的指令執(zhí)行流水線在指令獲取級201內(nèi)包括指令推測邏輯207。推測邏輯207猜測指令序列將采取什么條件分支方向或跳轉(zhuǎn),并開始獲取從該方向或跳轉(zhuǎn)流出的指令序列。然后,由執(zhí)行流水線的其余級處理推理性指令。
[0009]附圖
[0010]本發(fā)明是作為示例說明的,而不僅限制于各個附圖的圖形,在附圖中,類似的參考編號表示類似的元件,其中:
[0011]圖1示出了處理器(現(xiàn)有技術(shù));
[0012]圖2示出了指令執(zhí)行流水線(現(xiàn)有技術(shù));
[0013]圖3示出了具有共享前端單元的處理核;
[0014]圖4示出了由圖3的處理核執(zhí)行的方法;
[0015]圖5示出了其相應(yīng)的核具有共享前端單元的處理器;
[0016]圖6示出了由其相應(yīng)的核具有共享前端單元的處理器組成的計算系統(tǒng)。
[0017]詳細(xì)描述
[0018]在半導(dǎo)體芯片上制造的邏輯晶體管的數(shù)量可以被視為半導(dǎo)體芯片的用于處理信息的固定資源。上文參考圖1和2所討論的處理器和處理核架構(gòu)的特征是,強(qiáng)調(diào)縮短由處理器處理的指令的等待時間。換言之,圖1和2的處理器設(shè)計的固定資源,諸如對每一個流水線作出的無序執(zhí)行增強(qiáng),專用于通過帶有最小的等待時間的流水線運行線程。
[0019]然而,邏輯電路專用于當(dāng)前活躍的線程的加速,是以處理器在任何時刻能夠同時處理的線程的總數(shù)為代價來實現(xiàn)的。換言之,如果以不同的方式強(qiáng)調(diào)處理器的邏輯電路單元,則處理器能夠比圖1的處理器(其處理核是根據(jù)2的架構(gòu)設(shè)計的)同時處理更多線程。例如,如果移除無序執(zhí)行增強(qiáng)的邏輯電路資源,則“被騰出的”邏輯電路可以重新用于實例化處理器內(nèi)的更多執(zhí)行單元。利用更多執(zhí)行單元,處理器可以同時執(zhí)行更多指令,并由此的更多線程。
[0020]圖3示出了在多核處理器內(nèi)可以實例化多次(例如,對于每一個處理核,一次)的處理核300的架構(gòu)的實施例。圖3的處理核架構(gòu)被設(shè)計有比典型的標(biāo)準(zhǔn)處理核更多執(zhí)行單元,以便提高處理核的總的吞吐量(即,提高處理核可以同時處理的線程的數(shù)量)。如在圖3中觀察到的,處理核架構(gòu)包括耦合到多個處理單元302_1至302_N的共享前端單元301。在一個實施例中,處理單元302_1到302_N中的每一個都包含能夠支持整個指令集,諸如整個x86指令集或其他通用指令集(與諸如數(shù)字信號處理器(DSP)或加速器的典型的指令集之類的比較有限的特定用途指令集相反)的至少一組功能單元(例如,至少一組功能單元303) ο
[0021]如在圖3中觀察到的,共享前端單元301獲取并接收要由處理核300處理的指令,解碼接收到的指令,并將經(jīng)解碼的指令派遣到它們的合適的處理單元。在一個實施例中,共享前端單元獲取正在由處理核的所有通用處理單元執(zhí)行的所有線程的所有指令。
[0022]將特定線程分配給特定處理單元,并且每一處理單元,如下面更詳細(xì)地描述的,是多線程的(即,可以同時和/或并發(fā)地處理一個以上的線程)。如此,如果每一處理單元都可以同時/并發(fā)地執(zhí)行高達(dá)M個硬件線程,并且有N個處理單元,則處理核可以同時/并發(fā)地執(zhí)行高達(dá)MN個硬件線程。這里,乘積MN可以大于可以在典型的處理核中同時執(zhí)行的硬件線程的典型的數(shù)量(例如,大于當(dāng)前密度中的8或16)。參考共享前端單元301,共享前端單元包含程序控制邏輯電路311,用以標(biāo)識并獲取每一個線程的合適的“接下來的”指令。這里,程序控制邏輯電路311包括每一個線程的指令指針312_1到312_MN,以及指令獲取電路313。注意,圖3指出有麗個指令指針以反映對于麗個不同的硬件線程的支持。對于每一個硬件線程,指令獲取電路313首先針對在線程的指令指針內(nèi)標(biāo)識的指令查看指令緩存314。如果在指令緩存314內(nèi)沒有發(fā)現(xiàn)搜尋的指令,則從程序存儲器315中獲取它。在各實現(xiàn)中,可以以每個硬件線程為基礎(chǔ)存儲指令塊,并從緩存和/或存儲器中獲取它們。
[0023]個體硬件線程可以由指令獲取電路313以時間切片為基礎(chǔ)來服務(wù)(例如,合理的輪詢(round robin)方法)。進(jìn)一步,指令獲取電路313可以被并行化為并行地獲取不同的硬件線程的指令的類似的/相同塊(例如,指令獲取電路的每一并行塊服務(wù)指令指針的不同的子集)。
[0024]然而,由于可能比傳統(tǒng)的處理器較慢地處理單個硬件線程(例如,由于每個線程等待時間縮減電路沒有被實例化以有利于更多處理單元,如上文所描述的),因此,可以設(shè)想,某些實現(xiàn)可能不需要并行指令獲取能力,或至少包括少于N個并行指令獲取通道(例如,N/2并行指令獲取塊)。相應(yīng)地,在這些中的任何一種情況下,前端單元301的某些組件由處理單元302_