本領(lǐng)域一般涉及通過以層疊配置連接處理器而形成的三維(3-D)多處理器器件,以及用于控制3-D層疊多處理器器件以選擇性地在多種操作模式中的一種模式下操作的方法。
背景技術(shù):在半導(dǎo)體處理器芯片制造領(lǐng)域,在處理器技術(shù)的早期很多公司都生產(chǎn)單芯片處理器。在最近十年左右,摩爾定律繼續(xù)縮小尺寸,很多公司和其他實(shí)體已經(jīng)設(shè)計(jì)了在單層上具有多個處理器的處理器芯片。但是,隨著每個芯片上的處理器數(shù)量的持續(xù)增加,處理器之間的片上通信變得有問題。例如,隨著處理器芯片的2D尺寸增加以適應(yīng)更多處理器,處理器之間的水平布線長度增加(在mm或cm范圍中),導(dǎo)致處理器之間通信的周期延遲,并需要沿著處理器之間的通信路徑來使用高功率片上驅(qū)動器。此外,與處理器之間的通信相關(guān)的周期延遲隨著處理器工作頻率的增加而增加
技術(shù)實(shí)現(xiàn)要素:本發(fā)明的示例性實(shí)施例一般包括通過以層疊配置連接處理器而形成的三維(3-D)處理器器件,以及用于控制3-D層疊多處理器器件以選擇性地在多種操作模式中的一種模式下操作的方法。在本發(fā)明的一個示例性實(shí)施例中,一種處理器系統(tǒng)包括包含第一處理器的第一處理器芯片和包含第二處理器的第二處理器芯片。第一和第二處理器芯片以層疊配置連接,其中第一和第二處理器通過第一和第二處理器芯片之間的垂直連接而連接。處理器系統(tǒng)還包括模式控制電路,以選擇性地在多種操作模式中的一種模式下操作處理器系統(tǒng),其中,在第一操作模式下,第一和第二處理器被配置為實(shí)現(xiàn)提前運(yùn)行(run-ahead)功能,其中,第一處理器操作執(zhí)行的主線程且第二處理器操作執(zhí)行的提前運(yùn)行線程。在第一操作模式下,第一處理器保持執(zhí)行程序的體系結(jié)構(gòu)(architected)狀態(tài),其中,第二處理器執(zhí)行相同的程序,但使用投機(jī)狀態(tài)在第一處理器之前投機(jī)地運(yùn)行。通過執(zhí)行能產(chǎn)生高速緩存不命中并解決程序流程問題的程序指令而拋棄與產(chǎn)生可能的高速緩存不命中或解決程序流程無關(guān)的其他程序指令,第二處理器在第一處理器之前投機(jī)地運(yùn)行。第一和第二處理器使用第一和第二處理器芯片之間的垂直連接來互相通信。在本發(fā)明的另一示例性實(shí)施例中,處理器系統(tǒng)包括包含第一處理器的第一處理器芯片以及包含第二處理器的第二處理器芯片。第一和第二處理器芯片以層疊配置連接,其中第一和第二處理器通過第一和第二處理器芯片之間的垂直連接而連接。處理器系統(tǒng)還包括模式控制電路,其選擇性地在多種操作模式中的一種模式下操作處理器系統(tǒng),其中,在第一操作模式下,第一和第二處理器被配置為共享高速緩存存儲器,其中,共享的高速緩存存儲器的一部分被配置為只能被第一和第二處理器存取的私有存儲區(qū)域。共享的高速緩存存儲器的一部分被重新配置為只能被第一和第二處理器存取的私有存儲區(qū)域,以保持對于第一和第二處理器以外的任何實(shí)體來說不可見的狀態(tài)。在一個示例性實(shí)施例中,高速緩存存儲器是通過聚集與第一和第二處理器相關(guān)的兩個對準(zhǔn)的高速緩存而配置的共享的高速緩存。根據(jù)說明性實(shí)施例的下列詳細(xì)描述并結(jié)合附圖,本發(fā)明的這些和其他示例性實(shí)施例、特征、目標(biāo)和優(yōu)勢將變得明顯。附圖說明圖1是多處理器芯片的示意性透視圖。圖2是根據(jù)本發(fā)明的說明性實(shí)施例的3-D層疊多處理器結(jié)構(gòu)的示意性透視圖。圖3是芯片封裝結(jié)構(gòu)的示意圖。圖4概念性地示出了根據(jù)本發(fā)明的另一示例性實(shí)施例的3-D層疊多處理器結(jié)構(gòu)。圖5示意性地示出了根據(jù)本發(fā)明的另一示例性實(shí)施例的基于圖4所示的概念實(shí)現(xiàn)的3-D層疊多處理器結(jié)構(gòu)的物理實(shí)現(xiàn)。圖6示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的用于控制3-D層疊多處理器結(jié)構(gòu)的多模態(tài)操作的方法。圖7是可以應(yīng)用本發(fā)明的原理的處理器的示意性平面圖。圖8是根據(jù)本發(fā)明的示例性實(shí)施例的3-D層疊多處理器器件的示意性透視圖,該器件包括一對處理器,其具有和圖7所示的相同的處理器布局。圖9A是根據(jù)本發(fā)明示例性實(shí)施例的3-D層疊多處理器器件的示意性透視圖,該器件包括互相垂直層疊在彼此頂上的具有對準(zhǔn)的L2和L3高速緩存的第一和第二處理器。圖9B是根據(jù)本發(fā)明的示例性實(shí)施例的圖9A的3-D層疊多處理器器件的示意性透視圖,該器件具有結(jié)合的L3高速緩存,作為第一和第二處理器的共享L3高速緩存來操作。圖9C是根據(jù)本發(fā)明的示例性實(shí)施例的圖9A的3-D層疊多處理器器件的示意性透視圖,該器件具有結(jié)合的L3高速緩存以及L2高速緩存,作為第一和第二處理器的共享L2高速緩存和共享L3高速緩存來操作。圖10是根據(jù)本發(fā)明的又一示例性實(shí)施例的3-D層疊多處理器器件的示意性透視圖。圖11示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的圖10所示的處理器的各個部件之間的通信路徑。圖12示意性地示出了平面處理器系統(tǒng)的處理器互連結(jié)構(gòu)。圖13示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的3-D層疊多處理器系統(tǒng)的處理器互連結(jié)構(gòu)。圖14示意性地示出了根據(jù)本發(fā)明的另一示例性實(shí)施例的3-D層疊多處理器系統(tǒng)的處理器互連結(jié)構(gòu)。圖15是根據(jù)本發(fā)明的示例性實(shí)施例的3-D層疊多處理器系統(tǒng)的示意性頂部透視圖,其具有基于圖14中的處理器互連結(jié)構(gòu)的處理器互連結(jié)構(gòu)。圖16示意性地示出了根據(jù)本發(fā)明的又一示例性實(shí)施例的3-D層疊多處理器系統(tǒng)的處理器互連結(jié)構(gòu)。圖17A示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的具有相同布局的兩個處理器,其中,兩個相同處理器的相應(yīng)區(qū)域被標(biāo)識為比其對手區(qū)域更快或更慢。圖17B示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的3-D層疊處理器結(jié)構(gòu),該結(jié)構(gòu)是通過垂直層疊圖17A中示出的兩個處理器而形成并作為單處理器來操作,該單處理器由每個處理器的相應(yīng)區(qū)域中的最快區(qū)域構(gòu)成。圖18示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的用于實(shí)現(xiàn)3-D層疊處理器系統(tǒng)中的提前運(yùn)行(run-ahead)功能的方法。具體實(shí)施方式現(xiàn)在將針對通過以層疊配置連接處理器而形成的3-D多處理器器件以及用于控制3-D層疊多處理器器件以選擇性地在多種操作模式中的一種模式下操作的方法,來更詳細(xì)地描述本發(fā)明的示例性實(shí)施例。圖1是可以應(yīng)用本發(fā)明的原理的多處理器芯片的示意性透視圖。特別地,圖1示意性地示出了包含半導(dǎo)體管芯12的多處理器芯片10,其具有在管芯12上形成的多個處理器C1、C2、……、C49(一般被表示為Cn)。處理器Cn被布置在“平面”系統(tǒng)中,其中,每個處理器Cn在2-D空間中具有其自己專用的足?。╢ootprint)。如本領(lǐng)域普通技術(shù)人員容易理解的,使用形成為芯片10的BEOL(后段制程)結(jié)構(gòu)的水平布線和電互連,處理器Cn可以在2-D平面中互相連接。在圖1所示的平面系統(tǒng)中,隨著處理器數(shù)量增加,處理器之間的通信變得有問題。例如,芯片的2D尺寸增加以適應(yīng)更多的處理器,處理器之間的水平布線長度增加(mm或cm的范圍中),導(dǎo)致處理器之間的通信路徑的周期延遲。該周期延遲需要沿著處理器之間的通信路徑來使用高功率片上驅(qū)動器。此外,周期延遲還會隨著操作頻率的增加而增加。本發(fā)明的原理利用片上層疊技術(shù)使用多層處理器芯片來形成3-D層疊多處理器結(jié)構(gòu),其中,兩個或更多個處理器芯片被集成到具有單芯片“足印”的單個層疊系統(tǒng)(即,層疊的處理器芯片表現(xiàn)為單個芯片)。這里使用的術(shù)語“處理器芯片”是指具有一個或多個處理器的任意半導(dǎo)體芯片或管芯。這里使用的術(shù)語“多處理器芯片”是指具有兩個或更多個處理器的任意半導(dǎo)體芯片或管芯。通常,在3-D層疊結(jié)構(gòu)中,兩個或更多個芯片層包括對準(zhǔn)并使用短垂直互連來互連的處理器,從而一個層中的處理器與另一層中的相應(yīng)處理器對準(zhǔn)并垂直連接??梢岳斫?,當(dāng)不同處理器芯片層上的兩個不同處理器或處理器部件/元件被稱為互相“對準(zhǔn)”時,術(shù)語“對準(zhǔn)”是指,例如,兩個不同處理器或處理器部件/元件在不同層上至少部分重疊或完全重疊。就此,處理器芯片的不同層上的兩個處理器或處理器的部件/元件可以完全對準(zhǔn),這在于處理器或部件在處理器芯片的3D層疊中的每個平面的相同2D位置。或者,處理器或處理器的部件/元件可以基本上對準(zhǔn),但在處理器芯片的3D層疊中的每個平面的2D位置之間存在某些偏移量。例如,圖2是根據(jù)本發(fā)明的示例性實(shí)施例的3-D層疊多處理器結(jié)構(gòu)的示意性透視圖。特別地,圖2示意性地示出了3-D層疊多處理器芯片20,其包含第一多處理器芯片22A和在第一多處理器芯片22A的頂部上垂直層疊的第二多處理器芯片22B。在圖2的一個示例性實(shí)施例中,多處理器芯片22A和22B基本上相同(部件結(jié)構(gòu)相同,但互連結(jié)構(gòu)可以變化),并被示為具有49個集成的處理器,類似于圖1中示出的多處理器芯片10。特別地,第一多處理器芯片22A包括多個處理器C1A、C2A、……、C49A,且第二多處理器芯片22B包括多個處理器C1B、C2B、……、C49B。第一和第二多處理器芯片22A和22B互相垂直層疊并互相連接,從而成對的處理器C1A/C1B、C2A/C2B、……、C49A/C49B(一般地CnA/CnB)對準(zhǔn)并使用垂直互連來互相連接。使用圖2所示的示例性結(jié)構(gòu),每個對準(zhǔn)的處理器疊層CnA/CnB包括多個垂直連接的處理器,其共享相同的I/O連接。這些I/O連接被內(nèi)部多路復(fù)用,從而在2D空間中的每個處理器位置,多個垂直層疊(和連接)的處理器CnA/CnB(對應(yīng)其他層疊的處理器)邏輯上表現(xiàn)為作為單個處理器來操作和實(shí)現(xiàn)功能。本發(fā)明的原理可被擴(kuò)展為包含在封裝基板上一起封裝的多個3-D層疊處理器芯片(例如如圖2所示)?,F(xiàn)在將參考圖3、4和5來更詳細(xì)地討論這些原理。圖3是可以應(yīng)用本發(fā)明的原理的芯片封裝結(jié)構(gòu)的示意圖。特別地,圖3示出了處理器系統(tǒng)30,其包含封裝基板32和在封裝基板32上安裝的多個處理器芯片P1、P2、P3、P4、P5和P6。封裝基板32包括形成電布線34的多個電互連和跡線(trace),其提供處理器芯片P1、P2、P3、P4、P5和P6之間的全交叉連接。處理器芯片P1、P2、P3、P4、P5和P6中的每個是相同的,且可以是多處理器芯片,每個具有多個處理器。圖4和5示意性地示出了根據(jù)本發(fā)明的另一示例性實(shí)施例的3-D層疊處理器系統(tǒng)。特別地,圖4是示例性3-D層疊多處理器封裝結(jié)構(gòu)40的概念圖。與圖3中示出的封裝結(jié)構(gòu)30類似,圖4中的3-D層疊多處理器封裝結(jié)構(gòu)40包括封裝基板32和在封裝基板32上安裝的多個第一層處理器芯片P1A、P2A、P3A、P4A、P5A和P6A。封裝基板32包括構(gòu)成電氣布線34的多個電氣互連和跡線,其提供了處理器芯片P1A、P2A、P3A、P4A、P5A和P6A之間的全交叉(all-to-all)連接。處理器芯片P1A、P2A、P3A、P4A、P5A和P6A中的每個是相同的,且可以是每個都具有多個處理器的多處理器芯片。還如圖4所示,使用短垂直連接36,多個第二層處理器芯片P1B、P2B、P3B、P4B、P5B和P6B被垂直布置和安裝在相應(yīng)的第一層處理器芯片P1A、P2A、P3A、P4A、P5A和P6A上。第二層處理器芯片P1B、P2B、P3B、P4B、P5B和P6B與相應(yīng)的第一層處理器芯片P1A、P2A、P3A、P4A、P5A和P6A相同,且可以是多處理器芯片,每個具有多個處理器。圖4示出了多條虛線34a,表示第二芯片封裝層中的處理器芯片P1B、P2B、P3B、P4B、P5B和P6B之間的虛擬全交叉布線。這些虛擬布線34a不是物理存在的,而是表示第二層處理器芯片P1B、P2B、P3B、P4B、P5B和P6B互相連接并可以使用在封裝基板32上形成的相同物理布線34來通信。圖5示意性地示出了根據(jù)本發(fā)明的另一示例性實(shí)施例的基于圖4所示的概念實(shí)現(xiàn)的3-D層疊多處理器結(jié)構(gòu)50的物理實(shí)現(xiàn)。如圖5所示,在3-D層疊多處理器封裝結(jié)構(gòu)50中物理存在的僅有布線是在封裝基板32上形成的布線34以及在相應(yīng)的處理器芯片疊層P1A/P1B、P2A/P2B、P3A/P3B、P4A/P4B、P5A/P5B和P6A/P6B之間形成的短垂直互連36。在圖5的3-D層疊多處理器封裝結(jié)構(gòu)50中,給定的垂直疊層P1A/P1B、P2A/P2B、P3A/P3B、P4A/P4B、P5A/P5B和P6A/P6B中的處理器芯片將使用在處理器芯片之間形成的垂直連接36來互相通信(且這些垂直連接36包括在不同處理器芯片層中的相應(yīng)對準(zhǔn)處理器之間形成的連接)。根據(jù)本發(fā)明的示例性實(shí)施例,可以使用已知的半導(dǎo)體制造技術(shù)來結(jié)合兩個處理器芯片,其中,兩個相同的處理器芯片可以“面朝背”或“面對面”地接合在一起。在面朝背的配置中,第一處理器芯片的活動表面(面)與第二處理器芯片的非活動表面(背)連接,其中,兩個處理器芯片的處理器和其他相應(yīng)部件被對準(zhǔn)。使用該結(jié)構(gòu),垂直布線(例如導(dǎo)電過孔)可以被形成在第一處理器芯片的活動表面中,并被暴露作為第一處理器芯片的活動表面上的第一接觸襯墊陣列,且垂直布線(例如硅通孔)可被穿過第二處理器芯片的背側(cè)形成并被暴露作為第二處理器芯片的非活動表面上的第二接觸襯墊陣列。當(dāng)?shù)谝缓偷诙幚砥餍酒娉辰Y(jié)合時,第一和第二接觸襯墊陣列可以被焊接在一起,由此形成對準(zhǔn)的處理器元件之間的短垂直連接。為了縮短垂直連接的長度,可以使用已知的技術(shù)來研磨第二處理器芯片的背側(cè)以使管芯更薄。在“面對面”的配置中,其中,互為鏡像的兩個相同的處理器芯片(功能相同)被接合,從而第一處理器芯片的活動表面(面)接合到第二處理器芯片的活動表面(面),兩個芯片的處理器和其他元件被對準(zhǔn)。使用該結(jié)構(gòu),垂直布線(例如導(dǎo)電過孔)可以被形成在第一處理器芯片的活動表面中,并被暴露作為第一處理器芯片的活動表面上的第一接觸襯墊陣列,且垂直布線可以被形成在第二處理器芯片的活動表面中,并被暴露作為第二處理器芯片的活動表面上的第二接觸襯墊陣列。當(dāng)?shù)谝缓偷诙幚砥餍酒幻鎸γ娼Y(jié)合時,第一和第二接觸襯墊陣列可以被焊接在一起,由此形成對準(zhǔn)的處理器元件之間的短垂直連接使用3-D層疊處理器系統(tǒng),兩個或更多個處理器大致(或真正)位于其平面空間的同一位置處,但位于不同層,且可以通過聚集和/或共享資源來獨(dú)立或協(xié)作地操作,以增加功能并且和每個芯片在2維封裝中都具有各自空間的平面系統(tǒng)中的實(shí)現(xiàn)相比改善了操作閾值、可靠性和性能。下面參考圖6-18來更詳細(xì)地描述用于控制3-D層疊多處理器以在一個或多個處理器資源聚集和/或共享模式下選擇性地操作的方法。通常,用于選擇性地控制3-D層疊多處理器的示例性方法使得一組層疊處理器能同時操作,而對于特定應(yīng)用仍然互相獨(dú)立。對于下面討論的其他應(yīng)用,兩個或更多個垂直層疊的處理器可被控制,使用處理器層之間的短垂直連接作為快速通信路徑,可以通過在各層之間共享或聚集資源(例如線程、執(zhí)行單元、高速緩存等)以協(xié)作的方式來選擇性地操作,以提供增強(qiáng)的操作。根據(jù)本發(fā)明的示例性實(shí)施例,控制方案被用于控制兩個或更多個垂直層疊處理器的多模態(tài)操作,從而垂直疊層中的處理器可被選擇性地控制以獨(dú)立或協(xié)作的方式來操作。例如,圖6示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的用于控制3-D層疊多處理器結(jié)構(gòu)的多模態(tài)操作的方法。特別地,如圖6所示的控制方案包括多路復(fù)用器61,其選擇性地接收多個配置參數(shù)組62和64以及配置模式控制信號66作為輸入。配置參數(shù)的不同組A和B被選擇性地作為機(jī)器輸入68輸出到給定的處理器的垂直疊層,其中,該機(jī)器輸入配置處理器疊層以在機(jī)器輸入68所指定的多種不同操作模式中的一種模式下操作。盡管為了容易說明僅示出了兩組輸入配置參數(shù)A和B,三組或更多個不同組的配置參數(shù)可被輸入并被多路復(fù)用器61選擇性地輸出。應(yīng)該理解,圖6的控制方案對于一個處理器疊層來說是本地的系統(tǒng),且給定處理器系統(tǒng)中的每個處理器疊層將具有如圖6所示的相應(yīng)控制電路。圖6的控制系統(tǒng)可以被全局控制系統(tǒng)例如服務(wù)處理器控制,該全局控制系統(tǒng)掃描控制信息并將配置控制信號66輸出到處理器系統(tǒng)中的每個多路復(fù)用器61,以給定的方式來配置處理器疊層。使用在垂直層疊處理器內(nèi)部(芯片上)的電路來控制各個I/O端口(被共享或旁路),以及可被用于控制給定處理器疊層中的不同處理器層之間的資源共享和/或聚集的其他開關(guān),從每個多路復(fù)用器61輸出到相應(yīng)處理器疊層的機(jī)器輸入68可被進(jìn)一步多路復(fù)用和/或解碼。在如下討論的本發(fā)明的各個示例性實(shí)施例中,當(dāng)垂直疊層疊中的兩個或更多個處理器在空間上重合時,處理器及其部件可以以各種方式被協(xié)同地組合,給予處理器元組(processor-tupled)系統(tǒng)多種新用途來提升性能。開始,需要注意,由于垂直處理器疊層將兩個或更多個處理器(或多或少準(zhǔn)確地或大致)在彼此頂上放置,作為初始印象,這看來不可能,因?yàn)檫@使得與主要傾向于位于處理器中的任意熱點(diǎn)相關(guān)的發(fā)熱加倍。就此,示例性控制裝置可被實(shí)現(xiàn),通過調(diào)節(jié)操作電壓和/或操作頻率以在較低功率級別下運(yùn)行層疊處理器,來控制位于一處的處理器的疊層的功率,例如,從而總功率(例如,總功率密度和/或總功耗)是可管理的。更具體而言,在本發(fā)明的一個示例性實(shí)施例中,可以在多種操作模式中的一種模式下操作通過垂直層疊并連接多個處理器芯片而制造的3D層疊處理器器件,以控制3D層疊處理器器件的功率。例如,在具有第一和第二處理器芯片的3D層疊處理器器件中,3D層疊處理器器件可以選擇性地在第一模式下操作,其中,第一處理器芯片被開啟且第二處理器芯片被關(guān)閉。在第一模式下,第一處理器芯片中的每個處理器被開啟,并可以以最大頻率和滿功率來操作,其總功率可以被封裝結(jié)構(gòu)支持。(例如,特定熱點(diǎn)處的功率密度被控制,從而對于給定的封裝結(jié)構(gòu),封裝中的給定熱點(diǎn)處的熱不會過大)。在另一操作模式下,3D層疊處理器器件可以選擇性地在第二模式下操作,其中,第一和第二處理器芯片兩者都被開啟。在該情形下,兩個處理器芯片都可以以最大頻率和功率級別來操作,其總功率(例如功率密度或功耗)可以被封裝結(jié)構(gòu)支持。在另一情形下,在操作的第二模式下,第一和第二處理器芯片中的每個處理器可低于全功率來操作,從而3D層疊處理器器件的總功率和在僅有第一處理器芯片或第二處理器芯片中的每個處理器以滿功率和/或最大頻率操作時的3D層疊處理器器件的總功率基本相同。換句話說,為了獲得相同的功耗或功率密度分布圖,每個處理器芯片層中的處理器可在較低的電源電壓(或較低的工作頻率)下操作,從而總功耗與其中只有一個處理器芯片層上的處理器是活動的第一模式相同或類似。根據(jù)本發(fā)明的原理的功率控制方案基于下列事實(shí):提供給處理器的功率可被降低相當(dāng)大的百分比(例如50%),而處理器的工作頻率僅需要降低小得多的數(shù)量(例如10%)。功率控制方案可被用于選擇性地控制處理器的電源電壓,或通過調(diào)整操作頻率,其中每個用于調(diào)整處理器芯片的總體功耗。于是,在具有多個平面的處理器的3D層疊處理器芯片結(jié)構(gòu)中,調(diào)節(jié)電源電壓以及選擇性地關(guān)閉處理器平面的子集的能力使得系統(tǒng)中可以存在包括一個或多個模式的操作模式的范圍,其中多個處理器平面以較低的電壓來操作,以將總功率保持為與操作單個處理器平面時所消耗的總功率基本相同(或者通過保持在操作多個處理器平面時在3-D層疊的處理器芯片結(jié)構(gòu)中的給定熱點(diǎn)處的功率密度與操作一個處理器平面時相同)。在3-D處理器疊層中,每組垂直層疊處理器在每種功率控制操作模式下使用在封裝中以及封裝外的相同組的互連信號。就此,由于垂直疊層中的每個處理器芯片層共享相同的互連信號,即使是在處理器芯片以較低的頻率操作時(在第二模式下),所需的通信要求也較少(較少的I/O帶寬)。這樣,由于保持功耗恒定的約束所需的較低頻率操作而在3-D疊層中的每層產(chǎn)生的較低帶寬要求激發(fā)了本發(fā)明的原理,其采用互連信號和封裝I/O信號的重用(多路復(fù)用)技術(shù)。在本發(fā)明的另一示例性實(shí)施例中,在包括兩層或多層層疊處理器芯片的處理器系統(tǒng)中,其中每個處理器芯片包括一個或多個處理器,其中,不同處理器芯片層中的處理器通過不同處理器芯片層之間的垂直連接來連接,模式控制電路(例如如上參考圖6所示和描述)可以選擇性地配置不同芯片層中的兩個或更多個處理器以在多種操作模式中的一種模式下操作。例如,在一個操作模式下,給定層疊中的一個或多個或所有處理器芯片可以獨(dú)立操作,其中,獨(dú)立操作的處理器芯片的層之間的垂直連接可被用作疊層中獨(dú)立操作的處理器芯片之間的通信路徑。在另一操作模式下,不同處理器芯片層中的各部件/資源可被聚集以擴(kuò)大不同處理器芯片層上的一個或多個處理器的微體系結(jié)構(gòu)。如本領(lǐng)域普通技術(shù)人員容易理解,處理器的“微體系結(jié)構(gòu)”是指處理器的物理(硬件)配置。處理器的微體系結(jié)構(gòu)包括部件例如高速緩存、總線結(jié)構(gòu)(路徑寬度)、執(zhí)行單元、指令單元、算術(shù)單元等的布置和數(shù)量。例如,假設(shè)3-D層疊處理器芯片器件包括具有第一處理器的第一處理器芯片以及具有第二處理器的第二處理器芯片。在一種操作模式下,其中第一和第二處理器芯片兩者都是活動的,可以通過聚集來自第一和第二處理器二者的元件來配置或增強(qiáng)第一處理器芯片的第一處理器的微體系結(jié)構(gòu),且可以通過聚集來自第一和第二處理器二者的元件來配置或增強(qiáng)第二處理器芯片的第二處理器的微體系結(jié)構(gòu)。在另一實(shí)施例中,第一處理器芯片可以是活動的而第二處理器芯片可以是不活動的,其中,通過利用不活動的第二處理器芯片的第二處理器的一部分來增強(qiáng)活動的第一處理器芯片的第一處理器的微體系結(jié)構(gòu)。聚集元件可以是執(zhí)行單元、寄存器組、高速緩存等的部分。在另一示例性操作模式下,可以在不同處理器芯片層上的不同處理器之間共享不同處理器芯片層中的各個部件/資源。例如,如下所解釋,不同處理器芯片層上的兩個不同處理器可以組合其高速緩存(例如L1、L2、或L3高速緩存)來創(chuàng)建大小加倍的高速緩存,仍然被兩個處理器活動共享。在該情形下,聚集(組合)的部件或資源被不同處理器共享。在又一示例性操作模式下,給定疊層中的不同處理器芯片層上的兩個或更多個不同的處理器可被組合以操作單個處理器映像。下面將參考圖7、8、9A、9B、9C、10、11、12、13、14、15、16、17A、17B和18來更詳細(xì)地解釋本發(fā)明的示例性實(shí)施例,其示出了用于聚集和/或共享和/或組合處理器資源的不同操作模式。例如,圖7和8示出的示例性操作模式用于選擇性地配置不同處理器芯片層上的不同處理器,以聚集和/或共享不同處理器的執(zhí)行單元的部分來提升一個或多個不同處理器的執(zhí)行能力。圖7是可以應(yīng)用本發(fā)明的原理的處理器70的示意性平面圖。圖7示意性地示出了處理器70的微體系結(jié)構(gòu),其中,處理器70包括各部件例如L3高速緩存71、L2高速緩存72、執(zhí)行單元73和指令單元74。執(zhí)行單元73包括第一浮點(diǎn)單元75和第二浮點(diǎn)單元76(其中,第一和第二浮點(diǎn)單元75和76是相同的)以及一組浮點(diǎn)寄存器77??梢允褂脠D7中的多個處理器70來形成例如如圖8所示的3-D層疊多處理器結(jié)構(gòu)。特別地,圖8是3-D層疊多處理器器件80的示意性透視圖,其包括第一處理器70A和在第一處理器70A的頂部垂直層疊的第二處理器70B。在圖8的示例性實(shí)施例中,處理器70A和70B在結(jié)構(gòu)上相同,并具有如圖7所示的處理器布局。特別地,第一處理器70A包括L3高速緩存71A、L2高速緩存72A、執(zhí)行單元73A以及指令單元74A。執(zhí)行單元73A包括第一浮點(diǎn)單元75A和第二浮點(diǎn)單元76A(其中,第一和第二浮點(diǎn)單元75A和76A是相同的)以及一組浮點(diǎn)寄存器77A。此外,第二存儲器70B包括L3高速緩存71B、L2高速緩存72B、執(zhí)行單元73B和指令單元74B。指令單元73B包括第一浮點(diǎn)單元75B和第二浮點(diǎn)單元76B(其中,第一和第二浮點(diǎn)單元75B和76B是相同的)以及一組浮點(diǎn)寄存器77B。在本發(fā)明的一個示例性實(shí)施例中,第一和第二處理器70A和70B的執(zhí)行單元73A和73B互相對準(zhǔn)并使用短垂直連接來互相連接。使用該結(jié)構(gòu),執(zhí)行單元可以被垂直布線,從而對于圖8中示出的兩個處理器70A和70B,第一處理器70A的執(zhí)行單元73A功能上可以包括處理器對的執(zhí)行單元73A/73B的一半元件,且第二處理器70B的執(zhí)行單元73B功能上可以包括處理器對的執(zhí)行單元73A/73B的另一半元件,其中,每一對的一半元件被選擇,以最小化每個執(zhí)行單元的平面面積。與傳統(tǒng)的平面幾何相比,執(zhí)行單元的該3-D聚集是有利的。在傳統(tǒng)的平面系統(tǒng)中,位于相同平面中的兩個處理器的執(zhí)行單元可以被連接,從而一個執(zhí)行單元的輸出可以是第二執(zhí)行單元的輸入。但是,兩個處理器的執(zhí)行單元之間的“水平”電互連可以相對較長(例如5mm-20mm),從而在處理器之間的信號傳輸中會存在一個或兩個“死”周期,這導(dǎo)致信號傳輸中的不想要的延遲。相反,在例如如圖8所示的3-D層疊處理器上處理器體系結(jié)構(gòu)中,每個處理器上的執(zhí)行單元的一半元件被有效地聚集成新的執(zhí)行單元,從而每個平面中的執(zhí)行單元的面積實(shí)際更小。由于每個處理器的相同元件在空間上位于一處,(可以)通過跨3-D層垂直連接執(zhí)行單元元件來實(shí)現(xiàn)兩個處理器的聚集部件的面積。例如,在圖8的示例性實(shí)施例中,假設(shè)每個處理器70A和70B具有兩個相同的浮點(diǎn)單元75A/76A和75B/76B。在第一處理器平面70A中,由于浮點(diǎn)單元75A和76A之間的水平距離,需要用1-2個周期的延時從第一浮點(diǎn)單元75A的輸出向第二浮點(diǎn)單元76A的輸入發(fā)送信號。但是,如果在兩個平面中位于一處的一對第一浮點(diǎn)單元75A和75B被垂直連接,且位于一處的一對第二浮點(diǎn)單元76A和76B被垂直連接,則第一處理器70A的執(zhí)行單元73A可以利用垂直連接的一對第一浮點(diǎn)單元7A和75B,且第二處理器70B的執(zhí)行單元73B可以利用垂直連接的一對第二浮點(diǎn)單元76A和76B,從而每個處理器70A和70B的執(zhí)行單元仍具有兩個浮點(diǎn)單元。處理器元件75A和76A以及處理器元件75B和76B之間的垂直連接提供了處理器功能的更短路徑,并允許使用來自3-D架構(gòu)中的不同處理器平面的元件來構(gòu)造每個處理器70A和70B。這有效地降低了每個處理器的平面幾何,并從執(zhí)行流程中移除死周期,因?yàn)閺模ㄒ粋€平面上的)一個執(zhí)行元件的輸出到(另一平面上的)執(zhí)行元件的輸入的路徑要快得多。這些原理可被用于執(zhí)行單元的其他對準(zhǔn)的部件例如算術(shù)單元等,以及其他處理器元件例如L2和L3高速緩存,如下將更詳細(xì)地解釋。在圖8所示的本發(fā)明的其他示例性實(shí)施例中,處理器70A和70B中的每個可以互相獨(dú)立地使用,其中,跨越處理器層的處理器單元之間的垂直連接不會被用于聚集或共享資源。例如,在一個操作模式下,處理器70A或70B兩者都可以以降低的功率(例如一半功率)來運(yùn)行(典型地在不相關(guān)的程序上),從而總功率與僅有一個處理器70A或70B以全功率操作時基本相同。在另一操作模式下,例如,處理器70A或70B中的一個可以被關(guān)閉而另一個可以在高速模式(例如加速(turbo)模式)下以雙倍功率來操作。在本發(fā)明的另一示例性實(shí)施例中,在增強(qiáng)的“加速”操作模式下,處理器70A或70B中的一個可以被停用(不活動),且另一個可以在高速模式(或加速模式)下以雙倍功率來操作,但其中,不活動的處理器的執(zhí)行單元中的特定元件可以被活動的處理器使用,由此提升其執(zhí)行能力。例如,在圖8的示例性實(shí)施例中,第二處理器70B(主處理器)可以被開啟并在高速的加速模式下以增加的功率來操作,而處理器70A可以被關(guān)閉,但其中,可以使用第一(不活動的)處理器70A的元件來增大第二(活動的)處理器70B的微體系結(jié)構(gòu)。通過特定的例子,在增強(qiáng)的加速模式下操作時,第一(不活動的)處理器70A的浮點(diǎn)單元75A和76A以及寄存器77A可以被第二(活動的)處理器70B的執(zhí)行單元73B使用,于是第二處理器70B可以使用四個浮點(diǎn)單元75A、75B、76A、76B以及額外的寄存器77A以提升的速度來操作。該增大的結(jié)構(gòu)允許第二處理器70B更快速并更有效地操作代碼。在該架構(gòu)中,模式控制方案可以被配置,從而給定的處理器可以被關(guān)閉,而允許通過耦合或解耦到不活動處理器的所需部件的功率線路來使不活動的處理器的一個或多個部件被選擇性的通電和斷電。在本發(fā)明的另一示例性實(shí)施例中,可以使用垂直連接來結(jié)合不同處理器芯片層中的不同高速緩存,從而處理器可以在高速緩存層級中的任意特定級別下作為單個共享高速緩存來操作高速緩存。例如,如果兩個層疊處理器的其L2高速緩存對準(zhǔn)且其L3高速緩存對準(zhǔn),則對準(zhǔn)的一對L2高速緩存可以作為具有兩倍容量的單個共享L2高速緩存來操作,且對準(zhǔn)的一對L3高速緩存可以作為具有兩倍容量的單個共享L3來操作。現(xiàn)在將參考圖9A、9B和9C來更詳細(xì)地解釋這些原理。圖9A是3-D層疊多處理器器件90的示意性透視圖,該器件具有第一處理器90A以及在第一處理器90A的頂部上垂直層疊的第二處理器90B。在圖9A的示例性實(shí)施例中,處理器90A和90B在結(jié)構(gòu)上相同,并具有各自的處理器核心91A和91B、L2高速緩存92A和92B、以及L3高速緩存93A和93B。如圖9A所示,L2高速緩存92A和92B被對準(zhǔn)并具有相同的足印(2D區(qū)域)。此外,L3高速緩存93A和93B被對準(zhǔn)并具有相同的足印。在該3-D層疊架構(gòu)中,對準(zhǔn)的L2高速緩存92A和92B可以被垂直連接并作為單個共享L2高速緩存來操作。此外,對準(zhǔn)的L3高速緩存93A和93B可以被垂直連接并作為單個共享L3高速緩存來操作。例如,圖9B是圖9A中的3-D層疊多處理器器件90的示意性透視圖,其中,L3高速緩存93A和93B被結(jié)合并可以通過處理器90A和90B中的一個或兩者作為共享L3高速緩存93A/B來操作。類似地,圖9C是圖9A中的3-D層疊多處理器器件90的示意性透視圖,其中L2高速緩存92A和92B也被結(jié)合并可以通過處理器90A和90B中的一個或兩個作為共享L2高速緩存92A/B來操作。特別地,在一個示例性實(shí)施例中,其中處理器90A和90B的L2和L3高速緩存被垂直連接在一起,可以在兩種備選模式下使用L2和L3高速緩存——或者作為獨(dú)立的高速緩存,其中它們之間的跨層連接未被使用,或者在層之間共享,由此提升層中所有處理器的高速緩存容量。3-D層疊高速緩存架構(gòu)的優(yōu)勢在于,高速緩存的存儲容量被加倍,而不用增加高速緩存存取時間。確實(shí),一般已知高速緩存的存取速度與高速緩存面積的平方根成比例。在圖9B和9C中所示的示例性實(shí)施例中,垂直連接對準(zhǔn)的L2和L3高速緩存不會增加高速緩存面積,因?yàn)橄鄳?yīng)的L2和L3高速緩存的足印空間上重合。就此,由于結(jié)合的L2高速緩存92A/B的面積以及結(jié)合的L3高速緩存93A/B的面積不會由于垂直連接而增加,高速緩存的存取速度保持相同。為了使運(yùn)行不同程序的處理器90A和90B能夠存取相同處理器地址空間,高速緩存控制方案可以被容易地實(shí)現(xiàn),以控制并組織共享的高速緩存目錄并維持各高速緩存層之間的高速緩存一致性(cachecoherence)。在本發(fā)明的另一示例性實(shí)施例中,3-D層疊處理器器件可被形成為包含可結(jié)合的多個處理器,以增加處理器的3-D疊層中的單個處理器映像所支持的線程數(shù)量。例如,在3-D層疊處理器器件中,該處理器器件包含具有第一處理器的第一處理器芯片以及具有第二處理器的第二處理器芯片,第一和第二處理器芯片兩者都可以是活動的,其中,第一和第二處理器可被配置為作為單個處理器來操作,并聚集其線程來增加第一和第二處理器可使用的線程的數(shù)量。這允許3-D疊層中的單個處理器的多線程能力被有效提升,而不需要與在單個處理器自身上必須使用額外的線程相關(guān)的開銷(線程)。現(xiàn)在將參考圖10和11來更詳細(xì)地解釋這些原理。圖10是3-D層疊處理器器件100的示意性透視圖,該器件包括第一處理器100A以及在第一處理器100A的頂部上垂直層疊的第二處理器100B。在圖10的示例性實(shí)施例中,第一和第二處理器100A和100B是多線程處理器,并具有相同的處理器和寄存器組。特別地,第一處理器100A包括四組寄存器101A、102A、103A和104A來實(shí)現(xiàn)四個線程。類似地,第二處理器100B包括四組寄存器101B、102B、103B和104B來實(shí)現(xiàn)四個線程。在圖10的示例性實(shí)施例中,通過垂直對準(zhǔn)并連接處理器100A和100B,3-D處理器疊層可以聚集方式作為具有相應(yīng)的更多的線程的單個多線程處理器來操作。例如,在圖10的例子中,兩個處理器100A和100B的四個線程101A、101B、102A、102B、103A、103B、104A或104B可以共同運(yùn)行,從而3-D處理器疊層100表現(xiàn)為運(yùn)行八個線程的單個處理器。獨(dú)立地,對于3-D中的系統(tǒng)級仲裁,當(dāng)兩個或更多個處理器被對準(zhǔn)時,該組處理器將表現(xiàn)為系統(tǒng)的仲裁方案中的單個節(jié)點(diǎn)。這樣,當(dāng)額外的處理器被添加到新的層疊平面時,例如如下討論的仲裁“樹”復(fù)雜度不會增加。對于傳統(tǒng)的平面系統(tǒng),可以用增加數(shù)量的獨(dú)立寄存器組來制造處理器,以實(shí)現(xiàn)可同時操作的更多線程,以增加多個程序的處理能力。但是,隨著每個處理器的線程數(shù)的增加,處理器的平面尺寸增加,導(dǎo)致寄存器組和處理器執(zhí)行單元之間的通信的周期延遲以及增加的功率。使用如圖10所示的3-D層疊體系結(jié)構(gòu),使用更少的寄存器組來支持每個處理器的更少線程,處理器可被簡化,而在需要時聚集處理器層之間的線程,以增加給定層可以使用的線程總數(shù)。假設(shè)給定應(yīng)用程序的大多數(shù)工作量以四個或更少的線程來操作,如圖10所示的處理器100A和100B可以被優(yōu)化為四線程處理器。如果給定的工作量需要多于四個線程(多達(dá)8個線程)而執(zhí)行,則3-D處理器疊層100中的處理器100A和100B可以被組合并作為具有八個線程的單個處理器來操作。在圖10的示例性實(shí)施例中,控制方案和通信路徑被實(shí)現(xiàn),以支持跨不同層的線程聚集,并連接層之間的高速緩存并維持高速緩存一致性。這些控制方案和通信路徑被設(shè)計(jì),以便當(dāng)不同層的線程實(shí)際上共享其地址空間時,每個處理器將看到相同狀態(tài)。在圖11中示意性地示出了這些概念。特別地,圖11示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的圖10所述的處理器的各個部件之間的通信路徑。如圖11所示,第一處理器100A包括多個寄存器組101A、102A、103A和104A(還分別被表示為T0、T2、T4和T6),它們和第一處理器單元105A、L2和L3高速緩存110A、指令高速緩存112A以及數(shù)據(jù)高速緩存114A相關(guān)聯(lián)。類似地,第二處理器100B包括多個寄存器組101B、102B、103B和104B(還分別被表示為T1、T3、T5和T7),它們和第二處理器單元105B、L2和L3高速緩存110B、指令高速緩存112B以及數(shù)據(jù)高速緩存114B相關(guān)聯(lián)。指令高速緩存112A和112B以及數(shù)據(jù)高速緩存114A和114B接收在各L2或L3高速緩存110A和/或110B中存儲的程序指令和數(shù)據(jù)。L2和/或L3高速緩存110A和/或110B可以被結(jié)合和共享,例如如上參考圖9C所討論。在指令高速緩存112A和112B中存儲的程序指令被各個處理器105A和105B以一個或多個線程來執(zhí)行,且給定線程的執(zhí)行狀態(tài)被存儲在線程狀態(tài)寄存器T0、T1、T2、T3、T4、T5、T6、T7中各自的一個。當(dāng)從程序指令的執(zhí)行產(chǎn)生數(shù)據(jù)時,處理器105A在其數(shù)據(jù)高速緩存114A中存儲數(shù)據(jù),且處理器105B在其各自的數(shù)據(jù)高速緩存114B中存儲數(shù)據(jù)。根據(jù)本發(fā)明的原理,跨處理器105A和105B以及數(shù)據(jù)高速緩存114A和114B之間的層的額外通信路徑116可被用于促進(jìn)一致的存儲。該通信路徑116可以以處理器上處理器(processor-on-processor)來實(shí)現(xiàn),因?yàn)楫?dāng)處理器對準(zhǔn)時端口在空間上并置。盡管圖10和11的示例性實(shí)施例示出的處理器每個具有寄存器組來支持4個工作線程,本發(fā)明的原理可被容易地?cái)U(kuò)展為每個處理器具有n個線程,其中,如果每個處理器是n-路多線程的,處理器對可以作為2n-路多線程處理器來操作,如系統(tǒng)的其余部分所看到的。再一次,使用該實(shí)現(xiàn),在大多數(shù)時間操作n個線程時這尤其有用(其中每個處理器的線程不是很繁忙),且由此允許基本處理器針對n-線程操作來優(yōu)化,但在需要時具有擴(kuò)展系統(tǒng)到操作2n個線程的能力。如上所述,當(dāng)兩個或更多個處理器在3-D層疊配置中對準(zhǔn)時,處理器將表現(xiàn)為系統(tǒng)的仲裁方案中的單個節(jié)點(diǎn)。使用該架構(gòu),仲裁“樹”(或更一般地,處理器互連結(jié)構(gòu))可以被構(gòu)造,從而當(dāng)額外的處理器被添加到新的層疊平面時,復(fù)雜度不會增加?,F(xiàn)在將參考圖12、13、14、15和16來更詳細(xì)地討論根據(jù)本發(fā)明的原理的示例性處理器互連結(jié)構(gòu)。圖12示意性地示出了平面處理器系統(tǒng)的處理器互連方案。特別地,圖12示出了平面處理器系統(tǒng)120,其包括布置在相同平面上的第一處理器120A和第二處理器120B。第一處理器120A包括多個處理器P1A、P2A、P3A、P4A、P5A、P6A、P7A和P8A(全體為PnA)以及各個L3高速緩存。第一處理器120A的處理器PnA通過處理器互連結(jié)構(gòu)122A來通信。類似地,第二處理器120B包括多個處理器P1B、P2B、P3B、P4B、P5B、P6B、P7B和P8B(全體為PnB)以及各個L3高速緩存。第二處理器120A的處理器PnB通過處理器互連結(jié)構(gòu)122B來通信。在圖12的示例性實(shí)施例中,處理器互連結(jié)構(gòu)122A和122B被表示為“樹”結(jié)構(gòu),其實(shí)現(xiàn)標(biāo)準(zhǔn)的仲裁方案。此外,如圖12所示,通信總線122A和122B使用總線互連結(jié)構(gòu)124來互連。在圖12的平面系統(tǒng)120中,該總線互連結(jié)構(gòu)124在2D平面中相對較長。根據(jù)本發(fā)明的原理,該處理器互連結(jié)構(gòu)在3-D層疊架構(gòu)中可以更為簡化,如圖13所示。特別地,圖13示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的3-D層疊多處理器系統(tǒng)的處理器互連方案。特別地,圖13示出了平面處理器系統(tǒng)130,其包括第一處理器130A和布置在第一處理器130A的頂部上的第二處理器130B。第一處理器130A包括多個處理器P1A、P2A、……、P8A(全體為PnA),其使用處理器互結(jié)合構(gòu)132A來互連和通信。類似地,第二處理器130B包括多個處理器P1B、P2B、……、P8B(全體為PnB),其使用處理器通信結(jié)構(gòu)132B來互連和通信。處理器互連結(jié)構(gòu)132A和132B被表示為“樹”結(jié)構(gòu),其實(shí)現(xiàn)標(biāo)準(zhǔn)的仲裁方案。還如圖13所示,處理器互連結(jié)構(gòu)132A和132B使用連接總線結(jié)構(gòu)134來互連。圖13的總體處理器互連方案與圖12中的總體處理器互連方案的概念類似,除了總線連接結(jié)構(gòu)134(其連接處理器互連結(jié)構(gòu)132A和132B)是用層疊處理器芯片130A和130B之間的垂直連接而形成。就此,垂直連接總線結(jié)構(gòu)134比圖12所示的平面連接總線結(jié)構(gòu)124的長度要短得多。這樣,圖13中的總體處理器互連方案比圖12中示出的總體處理器互連方案明顯更小和更快。圖14示意性地示出了根據(jù)本發(fā)明的另一示例性實(shí)施例的3-D層疊多處理器系統(tǒng)的處理器互連方案。圖14示意性地示出了3-D層疊處理器結(jié)構(gòu)140,其具有的處理器互連架構(gòu)在拓?fù)浣Y(jié)構(gòu)上與圖13的3-D層疊處理器的處理器互連架構(gòu)相同,但更快且在尺寸方面更為簡化。更具體來說,如圖14所示,使用第二處理器芯片130B上的樹結(jié)構(gòu)132B以及多個垂直總線連接141、142、143、144、145、146、147和148來實(shí)現(xiàn)處理器互連方案,該垂直總線連接從第二處理器芯片130B上的樹總線結(jié)構(gòu)132B的端點(diǎn)延伸到第一處理器芯片130A上的各個處理器。圖14的處理器互連方案考慮了第一和第二處理器芯片130A和130B上的處理器互相對準(zhǔn),從而第一和第二處理器芯片130A和130B(見圖13)上的樹總線結(jié)構(gòu)132A和132B的終端端點(diǎn)也被對準(zhǔn)。使用該垂直對準(zhǔn),垂直總線連接141、142、143、144、145、146、147和148(如圖14所示)可被實(shí)現(xiàn)以代替單個垂直總線互連134(如圖13所示)。確實(shí),由于上處理器芯片130B上的總線樹結(jié)構(gòu)132B的每個終端點(diǎn)與下處理器芯片130A上的總線樹結(jié)構(gòu)132A的終端點(diǎn)對準(zhǔn),可以使用短垂直連接來連接兩個樹結(jié)構(gòu)132A和132B的終端點(diǎn),其然后允許樹結(jié)構(gòu)132A和132B中的一個被忽略且不被使用?,F(xiàn)在將參考圖15來進(jìn)一步討論并說明這些原理。特別地,圖15是根據(jù)本發(fā)明的示例性實(shí)施例的3-D層疊多處理器系統(tǒng)的示意性頂部透視圖,其具有的處理器互連結(jié)構(gòu)基于圖14中的處理器互連結(jié)構(gòu)方案。圖15示出了3-D層疊多處理器系統(tǒng)150,這是圖14所示的概念系統(tǒng)的物理實(shí)現(xiàn),其中,下處理器芯片130A上的處理器PnA和上處理器芯片130B上的處理器PnB與總線樹結(jié)構(gòu)132B的終端點(diǎn)對準(zhǔn)。這允許總線樹結(jié)構(gòu)132B分別使用短垂直導(dǎo)電過孔連接141、142、143、144、145、146、147和148在總線樹結(jié)構(gòu)123B的每個端點(diǎn)終端連接到成對的處理器P1A/P1B、P2A/P2B、P3A/P3B、P4A/P4B、P5A/P5B、P6A/P6B、P7A/P7B和P8A/P8B。由于這些垂直的導(dǎo)電過孔相對較短,每對上/下處理器可以被處理為全局總線132B上的單個垂直下降(drop)。再一次,與圖13所述的單個垂直總線連接結(jié)構(gòu)134相比,垂直過孔141、142、……、148的使用在對準(zhǔn)的處理器之間提供了更短的通信路徑。圖16示意性地示出了根據(jù)本發(fā)明的又一示例性實(shí)施例的3-D層疊多處理器系統(tǒng)的處理器互連結(jié)構(gòu)。圖16示意性地示出了3-D層疊處理器結(jié)構(gòu)160,其具有和圖14類似的總線架構(gòu),除了在下處理器芯片130A上包含并使用額外的樹結(jié)構(gòu)162A。額外的樹結(jié)構(gòu)162A可被用于縮短面內(nèi)處理器之間的通信路徑并增加通信帶寬。特別地,在圖16的示例性實(shí)施例中,樹結(jié)構(gòu)162A可被用于第一處理器芯片130A上的處理器PnA之間的處理器到處理器的通信,而不必使用短垂直總線互連141、142、……、148或上樹結(jié)構(gòu)132B。類似地,樹結(jié)構(gòu)132B可被用于第二處理器芯片130B上的處理器PnB之間的處理器到處理器的通信,而不必使用短垂直總線互連141、142、……、148或下樹結(jié)構(gòu)162A。在另一控制方案中,樹結(jié)構(gòu)162A和132B兩者都可以同時和短垂直互連141、142、……、148結(jié)合來提供任意兩個處理器之間的兩個獨(dú)立通信路徑,從而可以實(shí)現(xiàn)通信帶寬的2x增加。確實(shí),假設(shè)每個樹結(jié)構(gòu)132B和162A是16-字節(jié)總線,其需要16個周期在處理器之間傳送256字節(jié)的信息。在該實(shí)施例中,通過在任意兩個處理器之間同時使用兩個單獨(dú)的通信路徑來同時發(fā)送32字節(jié)(每個路徑16字節(jié)),通信帶寬可被增加到32字節(jié),由此將通信帶寬提高到16個周期的512字節(jié)。在本發(fā)明的另一示例性實(shí)施例中,3-D層疊多處理器器件可被構(gòu)造為包括可結(jié)合且通過組合每個垂直層疊的處理器的最快部件而配置為超快處理器的多個處理器。使用先進(jìn)的技術(shù),在相同的處理器之間可以存在器件性能的明顯變化,其中一個處理器的某些子系統(tǒng)可以比另一相同處理器的相同子系統(tǒng)更快,而同時,對于不同的子系統(tǒng)關(guān)系可能是相反的。確實(shí),基于器件尺寸和形狀的變化以及摻雜的變化等,在給定晶片上形成的具有相同布局和宏功能部件的一組相同的處理器可以具有比另一相同處理器的相同部件更快或更慢的部件。就此,根據(jù)本發(fā)明的另一示例性實(shí)施例,當(dāng)不同處理器芯片層上的兩個處理器(第一和第二處理器)具有相同的子系統(tǒng)區(qū)域布局時,在一種操作模式下,通過組合第一和第二處理器的相應(yīng)子系統(tǒng)區(qū)域中較快的子系統(tǒng)區(qū)域,并通過關(guān)閉第一和第二處理器的相應(yīng)子系統(tǒng)區(qū)域中的較慢子系統(tǒng)區(qū)域,第一和第二處理器可被配置為作為單個處理器來操作。現(xiàn)在將參考圖17A和17B來更詳細(xì)地說明和討論這些原理。特別地,圖17A示意性的示出了根據(jù)本發(fā)明的示例性實(shí)施例的具有相同布局的兩個處理器,其中,兩個相同處理器的相應(yīng)區(qū)域被標(biāo)識為比其對手區(qū)域更快或更慢。特別地,圖17A示出了具有十一個相同主區(qū)域(宏)R1、R2、R3、R4、R5、R6、R7、R8、R9和R11的兩個相同的處理器170A和170。在制造后,對處理器的這些區(qū)域測試速度,因?yàn)楸M管處理器是相同的,給定處理器的某些區(qū)域會比另一相同處理器的相同區(qū)域更快/更慢。在圖17A的示例性實(shí)施例中,第一處理器170A的區(qū)域R1、R2、R4、R6、R8、R9和R11被標(biāo)識為比相同處理器170B的相同區(qū)域更快(標(biāo)記為“F”)。此外,第二處理器170B的區(qū)域R2、R5、R7和R10被標(biāo)識為比相同處理器170A的相同區(qū)域更快(標(biāo)記為“F”)。圖17B是根據(jù)本發(fā)明的示例性實(shí)施例的3-D層疊多處理器系統(tǒng)170的示意圖,該系統(tǒng)包括圖17A中的處理器170A和170B。特別地,圖17B示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的3-D層疊處理器結(jié)構(gòu),該結(jié)構(gòu)是通過垂直層疊圖17A所示的兩個處理器而形成的,并操作為由每個處理器的最快的相應(yīng)區(qū)域構(gòu)成的單個處理器。在圖17中,處理器被對準(zhǔn)且垂直連接,從而相應(yīng)的區(qū)域R1、R2、……、R11被對準(zhǔn)并互相連接。兩個處理器170A和170B的高速緩存和執(zhí)行資源被垂直連接,從而3-D層疊處理器系統(tǒng)170可以在多種模式中的一種模式下操作。例如,在一種模式下,處理器170A和170B可以作為獨(dú)立的處理器來操作,其中,每個處理器是活動的并以一半功率來操作,如上所討論。在另一示例性實(shí)施例中,處理器170A或170B中的一個可以以滿功率或增加的功率(加速模式)來操作,而另一處理器被關(guān)閉。在又一實(shí)施例中,處理器170A和170B可以作為單個處理器來操作,其包括每個處理器中被標(biāo)識為最快版本的區(qū)域的那些區(qū)域,從而產(chǎn)生的處理器可以作為單個超快處理器來操作,其速度比使用來自僅一個處理器層的所有部件要更快。例如,在圖17B的示例性實(shí)施例中,3-D層疊處理器結(jié)構(gòu)170可作為單個處理器來操作,該單個處理器包括第一處理器170A的快區(qū)域R1、R2、R4、R6、R8、R9和R11以及第二處理器170B的快區(qū)域R2、R5、R7和R10構(gòu)成的11個區(qū)域。在本發(fā)明的另一示例性實(shí)施例中,3-D層疊多處理器器件可以具有邏輯上作為單個處理器映像來操作的多個結(jié)合的處理器,但其中,至少一個處理器被用作“提前運(yùn)行(run-ahead)”功能。特別地,通過示例,在具有對準(zhǔn)并互相垂直結(jié)合的第一和第二處理器的3-D層疊多處理器器件中,第一處理器可以是主處理器,負(fù)責(zé)機(jī)器的體系結(jié)構(gòu)狀態(tài),且二級處理器可以在主處理器之前操作,以解決分支或更早產(chǎn)生不命中,而二級處理器不會被體系結(jié)構(gòu)或程序限制且不能夠改變機(jī)器的體系結(jié)構(gòu)狀態(tài)。在本發(fā)明的該示例性實(shí)施例中,第一和第二處理器的高速緩存和執(zhí)行資源被連接在一起,從而它們可以在例如兩種備選模式下被使用,即,或用作其中處理器層之間的連接未被使用的獨(dú)立處理器,或以協(xié)作的方式使用,其中,主處理器執(zhí)行程序且二級處理器操作較簡單版本的程序,從而二級處理器可以在主處理器之前產(chǎn)生存儲器請求并解決分支,除了其他選項(xiàng)之外,其結(jié)果可被主處理器使用以避免長延遲的處理器存取和分支誤預(yù)測。將參考圖18來更詳細(xì)地描述用于實(shí)現(xiàn)3-D層疊處理器系統(tǒng)中的提前運(yùn)行或輔助線程的概念。特別地,圖18示意性地示出了根據(jù)本發(fā)明的示例性實(shí)施例的用于實(shí)現(xiàn)3-D層疊處理器系統(tǒng)中的提前運(yùn)行功能的方法。特別地,圖18示出了由操作主線程的主處理器針對在主和二級處理器之間共享的存儲器執(zhí)行的多個操作181和182,以及與主處理器協(xié)作地操作提前運(yùn)行線程的二級處理器執(zhí)行的多個操作184、185、186、187、188和189。特別地,如圖18所示,在3-D層疊處理器系統(tǒng)中執(zhí)行程序時,主處理器從存儲器183獲取指令181并執(zhí)行每個程序指令182。在執(zhí)行指令時,主處理器將從共享存儲器183獲取并存儲程序數(shù)據(jù),并維護(hù)對于所有外部實(shí)體可見的機(jī)器(存儲)狀態(tài)。換句話說,主處理器正確執(zhí)行程序在于主處理器以正確的順序來執(zhí)行指令操作,并且只有在那些改變已知為正確的時候,才向系統(tǒng)的其余部分顯示狀態(tài)改變信息。但是,為了使程序執(zhí)行更快,使用更高的指令級別并行性,二級處理器作為“提前運(yùn)行”的處理器來操作,其中,二級處理器不會確保正確和合法的操作,且不會向系統(tǒng)的其余部分顯示狀態(tài)改變。相反,它以投機(jī)的方式盡可能快地操作,且不會關(guān)心和程序流程無關(guān)的指令。以這種方式來操作,提前運(yùn)行的處理器將解決很多分支并比主處理器能更早地產(chǎn)生很多必要的高速緩存不命中。這將允許主處理器比一般情況更快地運(yùn)行。特別地,如圖18所示,二級處理器將從共享存儲器183獲取指令184并執(zhí)行特定的指令,例如數(shù)據(jù)獲取指令,且響應(yīng)于該數(shù)據(jù)獲取指令從共享存儲器183獲取數(shù)據(jù)185。二級處理器將執(zhí)行數(shù)據(jù)存儲指令并執(zhí)行存儲器存取操作186來確定必要的數(shù)據(jù)是否被存儲在存儲器183中。二級處理器將執(zhí)行簡單指令187并執(zhí)行分支指令188,并拋棄或忽略與確定高速緩存不命中或解決分支重定向無關(guān)的所有其他獲取的指令189。在步驟186中,當(dāng)二級處理器看到到來的數(shù)據(jù)存儲指令時,二級處理器將確定對于要存儲的數(shù)據(jù)是否存在高速緩存線。如果高速緩存線不存在,二級處理器將產(chǎn)生高速緩存不命中并繼續(xù)以具有為數(shù)據(jù)存儲分配的高速緩存線并獲取合適的許可以在新分配的高速緩存線中存儲數(shù)據(jù)(即,確保新的高速緩存線的狀態(tài)是“數(shù)據(jù)存儲準(zhǔn)備好”狀態(tài))。如果高速緩存線已經(jīng)存在,二級處理器將確定該高速緩存線是否處于“數(shù)據(jù)存儲就緒”狀態(tài),且如果不是則繼續(xù)獲取合適的許可。通過這種方式,當(dāng)主處理器執(zhí)行數(shù)據(jù)存儲指令時,高速緩存線將是可用的并處于“存儲就緒”狀態(tài),由此避免在執(zhí)行流程中的高速緩存不命中。二級處理器(提前運(yùn)行處理器)通過在主處理器看到意外事件之前解決該意外事件來加速主處理器。二級處理器可以以這種方式來操作,因?yàn)樗恍枰獔?zhí)行每個指令,且不需要正確執(zhí)行程序指令。在3-D層疊配置中,由于主和二級處理器是空間重合的且通過短垂直連接來連接,它們可以共享并查看執(zhí)行狀態(tài),且另外比平面配置更容易和更強(qiáng)健地同步,在平面配置中,需要長的布線來交換合適的同步信息。即使在共平面處理器之間使用共平面布線,共平面處理器可能無法同時查看相互的狀態(tài)。在3-D層疊配置中,通過主和二級處理器的資源之間的短垂直連接,輔助線程和主線程之間用以共享值和另外同步處理流程的通信和交互會更容易實(shí)現(xiàn)。在本發(fā)明的另一示例性實(shí)施例中,3-D層疊多處理器器件可以具有可以作為單個處理器映像來操作的多個結(jié)合的處理器,但其中,在其體系結(jié)構(gòu)存儲的一部分作為私有存儲空間(或便箋空間)來操作,該私有空間不能被3-D疊層以外的處理器存取。換句話說,多個處理器可被結(jié)合為具有私有存儲區(qū)域的單個操作實(shí)體(從外部看是“處理器”),該私有存儲區(qū)域可被用于便箋空間或組織其他數(shù)據(jù)結(jié)構(gòu),其中,私有存儲對于系統(tǒng)中的其他操作實(shí)體來說是不可見的。當(dāng)處理器的元組在提前運(yùn)行模式或超快加速(Hyperturbo)模式下作為單個邏輯處理器操作或以任意其他方式元組化時,該元組的一個或多個高速緩存可被用作具有應(yīng)用特定結(jié)構(gòu)的私有存儲。盡管這里參考附圖描述了本方面的示例性實(shí)施例,可以理解本發(fā)明不限于那些精確的實(shí)施例,且本領(lǐng)域技術(shù)人員可以進(jìn)行各種其他改變和調(diào)整,而不偏離所附權(quán)利要求書的范圍。