片上網(wǎng)格互連的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開關(guān)于計算系統(tǒng),并且特別地(但不排除其他地)關(guān)于多核心處理器互連架構(gòu)。
【背景技術(shù)】
[0002]在最近數(shù)十年,處理器芯片已經(jīng)進(jìn)行了顯著地發(fā)展。多核心芯片的出現(xiàn)已經(jīng)使得并行計算和計算設(shè)備(包括個人計算機和服務(wù)器)內(nèi)的其他功能成為可能。處理器原本被開發(fā)為具有一個核心。每個核心可以是能夠讀取執(zhí)行中的程序指令的獨立的中央處理單元(CPU)。雙核心、四核心以及甚至是八心核處理器已經(jīng)被開發(fā)用于個人計算設(shè)備,而高性能服務(wù)器芯片已經(jīng)被開發(fā)為具有上至十、十二以及更多核心。可以使用導(dǎo)線或其他傳輸介質(zhì)的片上互連將核心以及其他片上組件一起互連。調(diào)整芯片上核心的數(shù)量會挑戰(zhàn)試圖促進(jìn)核心的高速互連的芯片設(shè)計師。已經(jīng)開發(fā)了多種互連架構(gòu),包括環(huán)形總線互連架構(gòu)等。
【附圖說明】
[0003]圖1示出了包括多核心處理器的計算系統(tǒng)的方框圖的實施例。
[0004]圖2示出了使用環(huán)形互連架構(gòu)的第一實施例的多核心芯片的方框圖。
[0005]圖3示出了使用環(huán)形互連架構(gòu)的第二實施例的多核心芯片的方框圖。
[0006]圖4示出了使用環(huán)形網(wǎng)格互連架構(gòu)的示例實施例的多核心芯片的方框圖。
[0007]圖5示出了在示例環(huán)形網(wǎng)格互連架構(gòu)中的第一示例環(huán)形站的方框圖。
[0008]圖6示出了在示例環(huán)形網(wǎng)格互連架構(gòu)中的第二示例環(huán)形站的方框圖。
[0009]圖7示出了連接到示例環(huán)形網(wǎng)格互連的瓦片的方框圖。
[0010]圖8示出了使用環(huán)形網(wǎng)格互連架構(gòu)的示例實施例的多核心芯片的示例平面圖。
[0011]圖9A-9C示出了在示例環(huán)形網(wǎng)格互連上的示例流。
[0012]圖10A-10B示出了流程圖,該流程圖示出了利用示例環(huán)形網(wǎng)格互連而執(zhí)行的示例技術(shù)。
[0013]圖11示出了計算系統(tǒng)的方框圖的另一個實施例。
[0014]不同的附圖中相同的附圖標(biāo)記和標(biāo)識指示相同的元件。
【具體實施方式】
[0015]在以下的【具體實施方式】中,為了提供對本發(fā)明的透徹的理解,闡述了許多的具體細(xì)節(jié),例如,處理器和系統(tǒng)配置的具體類型、具體的硬件結(jié)構(gòu)、具體的架構(gòu)和微架構(gòu)細(xì)節(jié)、具體的寄存器配置、具體的指令類型、具體的系統(tǒng)組件、具體的度量/高度、具體的處理器管線階段和操作等的示例。然而,對本領(lǐng)域技術(shù)人員來說將會顯而易見的是,不需要采用這些具體細(xì)節(jié)來實踐本發(fā)明。在其他實例中,為了避免不必要地使本發(fā)明晦澀難懂,沒有詳細(xì)地描述公知的組件或方法,例如,具體和替代的處理器架構(gòu)、針對所描述的算法的具體的邏輯電路/代碼、具體的固件代碼、具體的互連操作、具體的邏輯配置、具體的制造技術(shù)和材料、具體的編譯器實現(xiàn)、算法的具體代碼表達(dá)、具體的斷電和選通技術(shù)/邏輯、以及計算機系統(tǒng)的其他具體的操作細(xì)節(jié)。
[0016]盡管可以關(guān)于具體集成電路中(例如,在計算平臺或微處理器中)的能量節(jié)約和能量效率來描述以下的實施例,但是其他的實施例適用于其他類型的集成電路和邏輯設(shè)備??梢詫⒃诒疚闹忻枋龅膶嵤├念愃频募夹g(shù)和教導(dǎo)應(yīng)用至其他類型的電路或半導(dǎo)體設(shè)備中,使其也可以受益于更好的能量效率和能量節(jié)約。例如,所公開的實施例不限于臺式計算機系統(tǒng)或Ultrabook?。并且也可以在例如手持設(shè)備、平板計算機、其他薄筆記本計算機、片上系統(tǒng)(S0C)、和嵌入式應(yīng)用中被使用。手持設(shè)備的一些示例包括蜂窩電話、英特網(wǎng)協(xié)議設(shè)備、數(shù)字照相機、個人數(shù)字助理(PDA)、以及手持PC。嵌入式應(yīng)用通常包括微控制器、數(shù)字信號處理器(DSP)、片上系統(tǒng)、網(wǎng)絡(luò)計算機(NetPC)、機頂盒、網(wǎng)絡(luò)集線器、廣域網(wǎng)(WAN)交換機、或可以執(zhí)行下面教導(dǎo)的功能和操作的任何其他系統(tǒng)。此外,本文中所描述的裝置、方法和系統(tǒng)不限于物理計算設(shè)備,而是也可以涉及針對能量節(jié)約和效率的軟件優(yōu)化。在以下的【具體實施方式】中將變得顯而易見的是,在本文中所描述的方法、裝置和系統(tǒng)(無論關(guān)于硬件、固件、軟件、或其組合)對“綠色技術(shù)”未來與性能考慮的平衡來說至關(guān)重要。
[0017]隨著計算系統(tǒng)的發(fā)展,其中的組件變得越來越復(fù)雜。因此,用于在組件間耦合和通信的互連架構(gòu)也在復(fù)雜度方面有所增加以確保帶寬要求滿足最佳組件操作。此外,不同的細(xì)分市場需求互連架構(gòu)的不同方面以適應(yīng)市場需求。例如,服務(wù)器要求更高的性能,而移動生態(tài)系統(tǒng)有時可以犧牲總體性能來追求電能節(jié)約。然而,大部分結(jié)構(gòu)的單一的目的是提供盡可能最高的性能的同時具有最大的電能節(jié)約。在下文中,討論了多個互連,這些互連將潛在地受益于本文中所描述的本發(fā)明的方面。
[0018]參考圖1,描繪了包括多核心處理器的計算系統(tǒng)的方框圖的實施例。處理器100包括任何處理器或處理設(shè)備,例如微處理器、嵌入式處理器、數(shù)字信號處理器(DSP)、網(wǎng)絡(luò)處理器、手持處理器、應(yīng)用處理器、協(xié)處理器、片上系統(tǒng)(S0C)、或用于執(zhí)行代碼的其他設(shè)備。在一個實施例中,處理器100包括至少兩個核心——核心101和102,這兩個核心可以包括非對稱核心或?qū)ΨQ核心(示出的實施例)。然而,處理器100可以包括可以是對稱或非對稱的任何數(shù)量的處理元件。
[0019]在一個實施例中,處理元件是指用于支持軟件線程的硬件或邏輯。硬件處理元件的示例包括:線程單元、線程槽、線程、處理單元、上下文、上下文單元、邏輯處理器、硬件線程、核心、和/或能夠保持例如執(zhí)行狀態(tài)或架構(gòu)狀態(tài)的處理器狀態(tài)的任何其他元件。換句話說,在一個實施例中,處理元件是指能夠獨立關(guān)聯(lián)于代碼(例如,軟件線程、操作系統(tǒng)、應(yīng)用程序、或其他代碼)的任何硬件。物理處理器(或處理器插座)通常是指潛在地包括任何數(shù)量的其他處理元件(例如,核心或硬件線程)的集成電路。
[0020]核心通常是指位于集成電路上的能夠保持獨立的架構(gòu)狀態(tài)的邏輯,其中每個獨立保持的架構(gòu)狀態(tài)與至少一些專用執(zhí)行資源相關(guān)聯(lián)。和核心相反,硬件線程通常是指位于集成電路上的能夠保持獨立的架構(gòu)狀態(tài)的任何邏輯,其中獨立保持的架構(gòu)狀態(tài)共享對執(zhí)行資源的訪問??梢钥闯?,當(dāng)某些資源被共享并且其他的資源專用于架構(gòu)狀態(tài)時,硬件線程和核心的術(shù)語之間的界線會重疊。但通常而言,核心和硬件線程被操作系統(tǒng)視為單獨的邏輯處理器,其中操作系統(tǒng)可以在每個邏輯處理器上單獨地調(diào)度操作。
[0021]如在圖1中所示,物理處理器100包括兩個核心——核心101和102。這里,核心101和102可以被認(rèn)為是對稱核心,S卩,具有相同配置、功能單元和/或邏輯的核心。在又一實施例中,核心101包括亂序處理器核心,而核心102包括順序處理器核心。然而,核心101和102可以從任何類型的核心中單獨地被選出,所述任何類型的核心例如,本機核心、軟件管理的核心、適應(yīng)于執(zhí)行本機指令集架構(gòu)(ISA)的核心、適應(yīng)于執(zhí)行轉(zhuǎn)換的指令集架構(gòu)(ISA)的核心、協(xié)同設(shè)計的核心、或其他已知的核心。在異構(gòu)性核心環(huán)境(即,非對稱核心)中,可以使用一些形式的轉(zhuǎn)換,例如二進(jìn)制轉(zhuǎn)換以在一個核心上或同時在兩個核心上調(diào)度或執(zhí)行代碼。有待進(jìn)一步討論的,在下文中進(jìn)一步詳細(xì)地描述了在核心101中示出的功能單元,同時核心102中的單元在描繪的實施例中以相似的方式運行。
[0022]如圖所繪,核心101包括2個硬件線程101a和101b,其也可以被稱為硬件線程槽101a和101b。因此,在一個實施例中,例如操作系統(tǒng)的軟件實體將處理器100視為四個分立的處理器,即四個邏輯處理器或能夠同時執(zhí)行四個軟件線程的四個處理元件。正如前文提到的,第一線程關(guān)聯(lián)于架構(gòu)狀態(tài)寄存器101a,第二線程關(guān)聯(lián)于架構(gòu)狀態(tài)寄存器101b,第三線程可以關(guān)聯(lián)于架構(gòu)狀態(tài)寄存器102a,并且第四線程可以關(guān)聯(lián)于架構(gòu)狀態(tài)寄存器102b。這里,如上文所述,可以將架構(gòu)狀態(tài)寄存器(101a、101b、102a、和102b)中的每一個稱為處理元件、線程槽、或線程單元。如圖所示,在架構(gòu)狀態(tài)寄存器101b中復(fù)制架構(gòu)狀態(tài)寄存器101a,因此單獨的架構(gòu)狀態(tài)/上下文可以能夠針對邏輯處理器101a和邏輯處理器101b而被存儲。在核心101、102中,其他較小的資源,例如分配器和重命名器方框130、131中的指令指針和重命名邏輯,也可以針對線程101a和101b以及102a和102b而分別進(jìn)行復(fù)制。例如重新排序/退出單元135、136中的重新排序緩沖器、ILTB 120、121、載入/存儲緩沖器,以及隊列的一些資源可以通過劃分而被共享。例如通用內(nèi)部寄存器、頁表基寄存器、低級數(shù)據(jù)高速緩存和數(shù)據(jù)-TLB 150、151、執(zhí)行單元140、141、以及亂序單元的部分其他資源潛在地被完全共早。
[0023]處理器100通常包括可以被完全共享、可以通過劃分進(jìn)行共享、或被處理元件專用/專用于處理元件的其他資源。在圖1中,示出了具有處理器的說明性邏輯單元/資源的純示例性處理器。需注意的是,處理器可以包括或省略這些功能單元中的任何一個,同樣包括任何其他已知而沒有描繪的功能單元、邏輯或固件。如圖所示,核心101包括簡化的、代表性的亂序(000)處理器核心。但是可以在不同的實施例中使用順序處理器。000核心包括用于預(yù)測將被執(zhí)行/采取的分支的分支目標(biāo)緩沖器120,以及用于存儲針對指令的地址轉(zhuǎn)換條目的指令轉(zhuǎn)換緩沖器(1-TLB) 120。
[0024]核心101還包括耦合至提取單元,用于對提取到的元素進(jìn)行解碼的解碼模塊125。在一個實施例中,提取邏輯包括分別關(guān)聯(lián)于線程槽101a、101b的單獨的定序器。通常核心101關(guān)聯(lián)于第一 ISA,其中所述第一 ISA定義/指定可在處理器100上執(zhí)行的指令。通常,作為第一 ISA的部分的機器碼指令包括引用/指定了將被執(zhí)行的指令或操作的指令的一部分(被稱為操作碼)。如由第一 ISA所定義的,解碼邏輯125包括從這些指令的操作碼中識別出這些指令,并且將所解碼的指令在管線中傳遞以進(jìn)行處理的電路。例如,如在下文中更詳細(xì)地討論的,在一個實施例中,解碼器125包括設(shè)計為或適應(yīng)于識別例如事務(wù)指令的具體指令的邏輯。作為由解碼器125所識別的結(jié)果,架構(gòu)或核心101采取具體的、預(yù)先定義的行為來執(zhí)行與合適的指令相關(guān)聯(lián)的任務(wù)。重要的是要注意到,在本文中所描述的任務(wù)、區(qū)塊、操作和方法中的任何一個都可以響應(yīng)于單個或多個指令而執(zhí)行;指令中的一些可以是新的或舊的指令。要注意的是,在一個實施例中,解碼器126識別相同的ISA(或其子集)?;蛘撸诋悩?gòu)核心環(huán)境下,解碼器126識別第二 ISA(第一 ISA的子集或不同的ISA)。
[0025]在一個實施例中,分配器和重命名器方框130包括用于保存例如寄存器文件的資源以存儲指令處理結(jié)果的分配器。然而,線程101a和101b潛在地能夠亂序執(zhí)行,其中分配器和重命名器方框130也保存例如重排序緩沖器的其他資源以追蹤指令結(jié)果。單元130也可以包括用于將程序/指令參考寄存器重命名為處理器100內(nèi)部的其他寄存器的寄存器重命名器。重