堆疊式多處理器結(jié)構(gòu)和用于實(shí)現(xiàn)可靠的處理器操作的方法
【專利摘要】本發(fā)明涉及一種堆疊式多處理器結(jié)構(gòu)和用于實(shí)現(xiàn)可靠的處理器操作的方法。一種三維處理器系統(tǒng)包括采用堆疊式配置的第一處理器芯片和第二處理器芯片。第一處理器芯片包括具有第一組狀態(tài)寄存器的第一處理器。第二處理器芯片包括具有與所述第一組狀態(tài)寄存器對應(yīng)的第二組狀態(tài)寄存器的第二處理器。所述第一和第二處理器通過所述第一和第二處理器芯片之間的垂直連接而相連。模式控制電路以多種操作模式之一操作所述處理器系統(tǒng)。在一種操作模式中,所述第一處理器活動而所述第二處理器不活動,所述第一處理器以高于第一處理器的最大安全速度的速度操作,并且所述第一處理器使用所述第二處理器的所述第二組狀態(tài)寄存器來為所述第一處理器的狀態(tài)設(shè)置檢查點(diǎn)。
【專利說明】堆疊式多處理器結(jié)構(gòu)和用于實(shí)現(xiàn)可靠的處理器操作的方法
【技術(shù)領(lǐng)域】
[0001]本領(lǐng)域一般地涉及通過以堆疊式配置連接處理器形成的三維(3-D)多處理器設(shè)備,以及用于控制3-D堆疊式多處理器設(shè)備以便選擇性地以多種操作模式之一操作的方法。
【背景技術(shù)】
[0002]在半導(dǎo)體處理器芯片制造領(lǐng)域中,在處理器技術(shù)的早期階段,許多公司都制造單芯片處理器。在過去十年左右的時間里,隨著摩爾定律繼續(xù)縮小尺寸,許多公司和其它實(shí)體設(shè)計了在單個層上包含多個處理器的處理器芯片。但是,隨著每個芯片的處理器數(shù)量繼續(xù)增加,處理器之間的片上通信成為問題。例如,隨著處理器芯片的2D大小增加以容納更多處理器,處理器之間的水平布線長度增加(在毫米或厘米范圍之內(nèi)),從而導(dǎo)致處理器之間的通信的周期延遲,并且需要沿著處理器之間的通信路徑使用高功率的片上驅(qū)動器。此外,隨著工作頻率增加,有關(guān)處理器之間的通信的周期延遲也增加。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的示例性實(shí)施例一般地包括通過以堆疊式配置連接處理器形成的三維(3-D)處理器設(shè)備,以及用于控制3-D堆疊式多處理器設(shè)備以便選擇性地以多種操作模式之一操作的方法。
[0004]在本發(fā)明的一個不例性實(shí)施例中,一種處理器系統(tǒng)包括第一處理器芯片和第二處理器芯片。所述第一處理器芯片包括具有第一組狀態(tài)寄存器的第一處理器。所述第二處理器芯片包括具有與所述第一組狀態(tài)寄存器對應(yīng)的第二組狀態(tài)寄存器的第二處理器。所述第一和第二處理器芯片以堆疊式配置相連,并且所述第一和第二處理器通過所述第一和第二處理器芯片之間的垂直連接而相連。所述處理器系統(tǒng)還包括模式控制電路以便以多種操作模式之一選擇性地操作所述處理器系統(tǒng),其中在第一操作模式中,所述第一處理器活動而所述第二處理器不活動,并且其中第一處理器以高于所述第一處理器的最大安全速度的速度操作,并且其中所述第一處理器使用所述第二處理器的所述第二組狀態(tài)寄存器,以便為包含在所述第一組狀態(tài)寄存器中的所述第一處理器的狀態(tài)設(shè)置檢查點(diǎn)。
[0005]在本發(fā)明的其它示例性實(shí)施例中,其中在所述第一操作模式中,在所述第一處理器的當(dāng)前操作周期期間,在所述第一處理器的所述第一組狀態(tài)寄存器中維護(hù)并更新所述第一處理器的當(dāng)前狀態(tài),然后在所述第一處理器的所述當(dāng)前操作周期完成時,將所述第一處理器的當(dāng)前狀態(tài)存儲在所述第二處理器的對應(yīng)第二組狀態(tài)寄存器中。當(dāng)在所述第一處理器的所述當(dāng)前操作周期期間發(fā)生執(zhí)行錯誤時,通過將已設(shè)置檢查點(diǎn)的狀態(tài)從所述第二處理器的所述第二組狀態(tài)寄存器復(fù)制到所述第一處理器的所述第一組狀態(tài)寄存器中而回滾所述第一處理器的狀態(tài),其中從復(fù)制到所述第一處理器的所述第一組狀態(tài)寄存器中的所述已設(shè)置檢查點(diǎn)的狀態(tài)開始,恢復(fù)所述當(dāng)前操作周期。當(dāng)恢復(fù)所述當(dāng)前操作周期時,所述第一處理器可以以所述第一處理器的所述最大安全速度操作。通過所述第一和第二處理器芯片之間的所述垂直連接,從所述第二處理器的所述第二組狀態(tài)寄存器訪問所述已設(shè)置檢查點(diǎn)的狀態(tài)。
[0006]在本發(fā)明的另一個示例性實(shí)施例中,提供了一種用于操作計算機(jī)處理器的方法,所述計算機(jī)處理器包括具有第一處理器的第一處理器芯片和具有第二處理器的第二處理器芯片,其中所述第一和第二處理器芯片以堆疊式配置相連,并且所述第一和第二處理器通過所述第一和第二處理器芯片之間的垂直連接而相連。所述方法包括:生成第一控制信號以便以第一操作模式來操作所述計算機(jī)處理器,其中所述第一處理器活動而所述第二處理器不活動,并且其中第一處理器以高于所述第一處理器的最大安全速度的速度操作,并且其中所述第一處理器使用所述第二處理器的所述第二組狀態(tài)寄存器,以便為包含在所述第一組狀態(tài)寄存器中的所述第一處理器的狀態(tài)設(shè)置檢查點(diǎn);以及生成第二控制信號以便以第二操作模式來操作所述計算機(jī)處理器,其中所述第一和第二處理器獨(dú)立地操作。
[0007]從以下將結(jié)合附圖閱讀的對本發(fā)明的示例性實(shí)施例的詳細(xì)描述,本發(fā)明的這些和其它示例性實(shí)施例、特性、目標(biāo)以及優(yōu)點(diǎn)將變得顯而易見。
【專利附圖】
【附圖說明】
[0008]圖1是多處理器芯片的示意透視圖;
[0009]圖2是根據(jù)本發(fā)明的一個示例性實(shí)施例的3-D堆疊式多處理器結(jié)構(gòu)的示意透視圖;
[0010]圖3是芯片封裝結(jié)構(gòu)的示意視圖;
[0011]圖4在概念上示出了根據(jù)本發(fā)明的另一個示例性實(shí)施例的3-D堆疊式多處理器結(jié)構(gòu);
[0012]圖5示意性地示出了根據(jù)本發(fā)明的另一個示例性實(shí)施例的3-D堆疊式多處理器結(jié)構(gòu)的物理實(shí)現(xiàn),其基于圖4中所示的概念實(shí)現(xiàn);
[0013]圖6示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的用于控制3-D堆疊式多處理器結(jié)構(gòu)的多模式操作的方法;
[0014]圖7是可以應(yīng)用本發(fā)明的原理的處理器的示意平面圖;
[0015]圖8是根據(jù)本發(fā)明的一個示例性實(shí)施例的3-D堆疊式多處理器設(shè)備的示意透視圖,其包括具有圖7中所示的相同處理器布局的一對處理器;
[0016]圖9A是根據(jù)本發(fā)明的一個示例性實(shí)施例的3-D堆疊式多處理器設(shè)備的示意透視圖,其包括具有對齊的L2和L3高速緩存的在彼此之上垂直堆疊的第一和第二處理器;
[0017]圖9B是根據(jù)本發(fā)明的一個示例性實(shí)施例的圖9A的3-D堆疊式多處理器設(shè)備的示意透視圖,其具有為了操作而結(jié)合的L3高速緩存作為第一和第二處理器的共享L3高速緩存;
[0018]圖9C是根據(jù)本發(fā)明的一個示例性實(shí)施例的圖9A的3-D堆疊式多處理器設(shè)備的示意透視圖,其具有為了操作而結(jié)合的L3高速緩存以及L2高速緩存作為第一和第二處理器的共享L2高速緩存和共享L3高速緩存;
[0019]圖10是根據(jù)本發(fā)明的另一個示例性實(shí)施例的3-D堆疊式多處理器設(shè)備的示意透視圖;
[0020]圖11示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的圖10中所示的處理器的各種組件之間的通信路徑;
[0021]圖12示意性地示出了平面處理器系統(tǒng)的處理器互連結(jié)構(gòu);
[0022]圖13示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的用于3-D堆疊式多處理器系統(tǒng)的處理器互連結(jié)構(gòu);
[0023]圖14示意性地示出了根據(jù)本發(fā)明的另一個示例性實(shí)施例的用于3-D堆疊式多處理器系統(tǒng)的處理器互連結(jié)構(gòu);
[0024]圖15是根據(jù)本發(fā)明的一個示例性實(shí)施例的3-D堆疊式多處理器系統(tǒng)的示意頂部透視圖其具有基于圖14的處理器互連結(jié)構(gòu)的處理器互連結(jié)構(gòu);
[0025]圖16示意性地示出了根據(jù)本發(fā)明的另一個示例性實(shí)施例的用于3-D堆疊式多處理器系統(tǒng)的處理器互連結(jié)構(gòu);
[0026]圖17A示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的具有相同布局的兩個處理器,其中兩個相同處理器的對應(yīng)區(qū)域被標(biāo)識為快于或慢于其對應(yīng)區(qū)域;
[0027]圖17B示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的3-D堆疊式處理器結(jié)構(gòu),其通過垂直堆疊圖17A中所示的兩個處理器形成,并作為包括每個處理器的最快對應(yīng)區(qū)域的單個處理器而操作;
[0028]圖18示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的用于在3-D堆疊式處理器系統(tǒng)中實(shí)現(xiàn)提前運(yùn)行功能的方法;
[0029]圖19示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的通過垂直堆疊多個處理器形成的3-D堆疊式處理器結(jié)構(gòu),每個處理器具有類似的狀態(tài)寄存器布局,其中多個處理器可以獨(dú)立或以協(xié)作方式操作以便共享其狀態(tài)寄存器;
[0030]圖20示出了圖19的3-D堆疊式處理器結(jié)構(gòu)的多種操作模式;以及
[0031]圖21是示出圖19的3-D堆疊式處理器結(jié)構(gòu)的一種操作模式的流程圖。
【具體實(shí)施方式】
[0032]現(xiàn)在將針對通過以堆疊式配置連接處理器形成的3-D多處理器設(shè)備,以及用于控制3-D堆疊式多處理器設(shè)備以便選擇性地以多種資源聚合和共享模式之一操作的方法,進(jìn)一步詳細(xì)地描述本發(fā)明的示例性實(shí)施例。
[0033]圖1是可以應(yīng)用本發(fā)明的原理的多處理器芯片的示意透視圖。具體地說,圖1示意性地示出了包括半導(dǎo)體管芯(die) 12的多處理器芯片10,半導(dǎo)體管芯12具有在管芯12上形成的多個處理器Cl、C2、…、C49 (總體表示為Cn)。處理器Cn被布置在“平面”系統(tǒng)中,其中在2-D空間中每個處理器Cn具有它自己的專用占用空間??梢允褂盟讲季€和電氣互連(作為芯片10的BEOL (后段制程)結(jié)構(gòu)的一部分形成),在2-D平面中將處理器Cn彼此相連,如本領(lǐng)域的技術(shù)人員很容易理解的那樣。
[0034]在如圖1中所示的平面系統(tǒng)中,隨著處理器數(shù)量增加,處理器之間的通信成為問題。例如,隨著芯片的2D大小增加以容納更多處理器,處理器之間的水平布線長度增加(在毫米或厘米范圍之內(nèi)),從而導(dǎo)致處理器之間的通信路徑中的周期延遲。這種周期延遲需要沿著處理器之間的通信路徑使用高功率的片上驅(qū)動器。此外,隨著工作頻率增加,此周期延遲也增加。
[0035]本發(fā)明的原理利用芯片堆疊技術(shù),以便使用多個處理器芯片層形成3-D堆疊式多處理器結(jié)構(gòu),其中兩個或更多個處理器芯片被集成為具有單芯片“占用空間”的單個堆疊式系統(tǒng)(即,堆疊式處理器芯片看似單個芯片)。術(shù)語“處理器芯片”如在此使用的那樣,指具有一個或多個處理器的任何半導(dǎo)體芯片或管芯。術(shù)語“多處理器芯片”如在此使用的那樣,指具有兩個或更多個處理器的任何半導(dǎo)體芯片或管芯。一般而言,在3-D堆疊式結(jié)構(gòu)中,兩個或更多個芯片層包括使用短垂直互連對齊并互連的處理器,以便一個層中的處理器對齊并垂直連接到另一個層中的對應(yīng)處理器。應(yīng)該理解,當(dāng)不同處理器芯片層上的兩個不同處理器或處理器組件/元件被稱為彼此“對齊”時,術(shù)語“對齊”例如指兩個不同處理器或處理器組件/元件在不同層上彼此至少部分重疊或完全重疊。在這點(diǎn)上,不同處理器芯片層上的兩個處理器或處理器組件/元件可以完全對齊,因?yàn)椋幚砥骰蚪M件在3-D處理器芯片堆疊中的每個平面的相同2D位置中。備選地,處理器或處理器組件/元件可以基本對齊,但在3-D處理器芯片堆疊中的每個平面的2D位置之間具有某些偏移。
[0036]例如,圖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)使用垂直互連對齊并彼此相連。
[0037]使用圖2中所示的示例性結(jié)構(gòu),每個對齊后的處理器堆疊CnA/CnB包括多個垂直連接的處理器,它們通常共享相同的I/o連接。這些I/O連接在內(nèi)部多路復(fù)用,以便在2D空間中的每個處理器位置中,多個垂直堆疊(并相連)的處理器CnA/CnB (對其它堆疊式處理器而言)在邏輯上似乎作為單個處理器操作和運(yùn)行。本發(fā)明的原理可以被擴(kuò)展以包括多個3-D堆疊式處理器芯片(例如圖2中所示),它們共同封裝在封裝襯底上?,F(xiàn)在將參考圖3、4和5進(jìn)一步詳細(xì)地討論這些原理。
`[0038]圖3是可以應(yīng)用本發(fā)明的原理的芯片封裝結(jié)構(gòu)的示意視圖。具體地說,圖3示出了處理器系統(tǒng)30,其包括封裝襯底32以及安裝在封裝襯底32上的多個處理器芯片P1、P2、P3、P4、P5和P6。封裝襯底32包括多個電氣互連和跡線(trace),它們形成在處理器芯片PU P2、P3、P4、P5和P6之間提供多對多連接的電氣布線34。每個處理器芯片P1、P2、P3、P4、P5和P6都相同,并且可以是均具有多個處理器的多處理器芯片。
[0039]圖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包括多個電氣互連和跡線,它們形成在處理器芯片P1A、P2A、P3A、P4A、P5A和P6A之間提供多對多連接的電氣布線34。每個處理器芯片P1A、P2A、P3A、P4A、P5A和P6A都相同,并且可以是均具有多個處理器的多處理器芯片。
[0040]如圖4中進(jìn)一步所示,多個第二層處理器芯片P1B、P2B、P3B、P4B、P5B和P6B使用短垂直連接36垂直布置并安裝在對應(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之間的虛擬多對多布線。這些虛擬導(dǎo)線34a物理上不存在,而是表示第二層處理器芯片P1B、P2B、P3B、P4B、P5B和P6B彼此相連,并且可以使用在封裝襯底32上形成的相同物理布線34通信。
[0041]圖5示意性地示出了根據(jù)本發(fā)明的另一個示例性實(shí)施例的3-D堆疊式多處理器結(jié)構(gòu)50的物理實(shí)現(xiàn),其基于圖4中所示的概念實(shí)現(xiàn)。如圖5中所示,物理上存在于3-D堆疊式多處理器封裝結(jié)構(gòu)50中的僅有布線是在封裝襯底32上形成的布線34,以及在對應(yīng)的處理器芯片堆疊 Ρ1Α/Ρ1Β、Ρ2Α/Ρ2Β、Ρ3Α/Ρ3Β、Ρ4Α/Ρ4Β、Ρ5Α/Ρ5Β 和 Ρ6Α/Ρ6Β 之間形成的短垂直互連36。在圖5的3-D堆疊式多處理器封裝結(jié)構(gòu)50中,給定垂直堆疊Ρ1Α/Ρ1Β、Ρ2Α/Ρ2Β、Ρ3Α/Ρ3Β、Ρ4Α/Ρ4Β、Ρ5Α/Ρ5Β和Ρ6Α/Ρ6Β中的處理器芯片將使用在處理器芯片之間形成的垂直連接36彼此通信(并且這些垂直連接36包括在不同處理器芯片層中的對應(yīng)的對齊處理器之間形成的連接)。
[0042]根據(jù)本發(fā)明的示例性實(shí)施例,可以使用已知的半導(dǎo)體制造技術(shù)結(jié)合兩個處理器芯片,其中兩個相同的處理器芯片可以“面對背”或“面對面”結(jié)合在一起。在“面對背”配置中,將第一處理器芯片的活動表面(面)結(jié)合到第二處理器芯片的不活動表面(背),其中兩個處理器芯片的處理器和其它對應(yīng)元件對齊。使用這種結(jié)構(gòu),垂直布線(例如,過孔)可以在第一處理器芯片的活動表面中形成,并在第一處理器芯片的活動表面上暴露為第一接觸墊陣列,并且垂直布線(例如,硅通孔)可以通過第二處理器芯片的背面形成,并在第二處理器芯片的不活動表面上暴露為第二接觸墊陣列。當(dāng)?shù)谝缓偷诙幚砥餍酒鎸Ρ辰Y(jié)合時,可以將第一和第二接觸墊陣列焊接在一起,從而在對齊后的處理器元件之間形成短垂直連接。為了縮短垂直連接的長度,可以使用已知技術(shù)研磨第二處理器芯片的背面,以使管芯更薄。
[0043]在“面對面”配置中,其中結(jié)合兩個相同的處理器芯片(功能相同,它們作為彼此的鏡像),以便將第一處理器芯片的活動表面(面)結(jié)合到第二處理器芯片的活動表面(面),并且兩個芯片的處理器和其它元件對齊。使用這種結(jié)構(gòu),垂直布線(例如,過孔)可以在第一處理器芯片的活動表面中形成,并在第一處理器芯片的活動表面上暴露為第一接觸墊陣列,并且垂直布線可以在第二處理器芯片的活動表面中形成,并在第二處理器芯片的活動表面上暴露為第二接觸墊陣列。當(dāng)?shù)谝缓偷诙幚砥餍酒鎸γ娼Y(jié)合時,可以將第一和第二接觸墊陣列焊接在一起,從而在對齊后的處理器元件之間形成短垂直連接。
[0044]使用3-D堆疊式處理器系統(tǒng),兩個或更多個處理器(在它們的平面空間中大約(或幾乎)位于一起,但位于不同層上)可以獨(dú)立或協(xié)作地操作,方式為:聚合和/或共享資源以便增強(qiáng)功能并推進(jìn)操作閾值、可靠性和性能,使它們高于在平面系統(tǒng)(其中在2維封裝中,每個芯片具有它自己的空間)中實(shí)際獲得的操作閾值、可靠性和性能。下面將參考圖6~18進(jìn)一步詳細(xì)地討論用于控制3-D堆疊式多處理器以便選擇性地以一種或多種資源聚合和/或共享模式操作的各種方法。一般而言,對于某些應(yīng)用,用于選擇性地控制3-D堆疊式多處理器的示例性方法能夠同時但彼此獨(dú)立地操作一組堆疊式處理器。對于下面討論的其它應(yīng)用,可以使用處理器層之間的短垂直連接作為快速通信路徑,通過跨各種層共享或聚合資源(例如,線程、執(zhí)行單元、高速緩存等),控制兩個或更多個垂直堆疊的處理器以便選擇性地以協(xié)作方式操作,從而提供增強(qiáng)的操作。
[0045]根據(jù)本發(fā)明的示例性實(shí)施例,采用控制方案以控制兩個或更多個垂直堆疊的處理器的多模式操作,以便可以選擇性地控制垂直堆疊中的處理器獨(dú)立或以協(xié)作方式操作。例如,圖6示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的用于控制3-D堆疊式多處理器結(jié)構(gòu)的多模式操作的方法。具體地說,圖6中所示的控制方案60包括多路復(fù)用器61,其選擇性地接收多個配置參數(shù)組62和64以及配置模式控制信號66作為輸入。選擇性地輸出不同的配置參數(shù)組A和B作為給定垂直處理器堆疊的機(jī)器輸入68,其中機(jī)器輸入配置處理器堆疊以便以機(jī)器輸入68指定的多種不同操作模式之一操作。盡管為了易于說明而示出兩組輸入配置參數(shù)A和B,但是可以向多路復(fù)用器61輸入三組或更多組不同配置參數(shù),并且多路復(fù)用器61可以選擇性地輸出這些參數(shù)。應(yīng)該理解,圖6的控制方案是一個處理器堆疊的本地系統(tǒng),并且給定處理器系統(tǒng)中的每個處理器堆疊將具有圖6中所示的對應(yīng)控制電路。
[0046]圖6的控制系統(tǒng)60可以由全局控制系統(tǒng)(例如服務(wù)處理器)控制,該全局控制系統(tǒng)掃描控制信息并將配置控制信號66輸出到處理器系統(tǒng)中的每個多路復(fù)用器61,以便以給定方式配置處理器堆疊??梢允褂么怪倍询B的處理器的內(nèi)部(片上)電路對從每個多路復(fù)用器61輸出到對應(yīng)處理器堆疊的機(jī)器輸入68進(jìn)行進(jìn)一步多路復(fù)用和/或解碼,以便控制各種I/O端口(要被共享或繞過)和其它切換器,可以采用這些切換器在給定處理器堆疊中的不同處理器層之間控制資源的共享和/或聚合。
[0047]在下面討論的本發(fā)明的各種示例性實(shí)施例中,當(dāng)垂直堆疊中的兩個或更多個處理器在空間上重合時,可以以各種方式協(xié)同組合處理器及其組件,以便為處理器元組化系統(tǒng)(processor-tupled system)提供多種新用途,從而提高性能。首先,要指出的是,因?yàn)榇怪碧幚砥鞫询B將兩個或更多個處理器(更多或更少一確切或大約)正好放在彼此之上(作為最初印象),這似乎不切實(shí)際,因?yàn)樗古c任何熱點(diǎn)(往往主要位于處理器中)關(guān)聯(lián)的熱量加倍。在這點(diǎn)上,可以實(shí)施示例性控制方案,以便通過以較低功率級別運(yùn)行堆疊式處理器(例如,通過調(diào)節(jié)工作電壓和/或工作頻率),控制位于一起的處理器堆疊的功率,以便可以管理總功率(例如,總功率密度和/或總功耗)。
[0048]更具體地說,在本發(fā)明的一個示例性實(shí)施例中,可以以多種操作模式之一操作3D堆疊式處理器設(shè)備(通過垂直堆疊并連接多個處理器芯片來制造),以便控制為3D堆疊式處理器設(shè)備供電。例如,在具有第一和第二處理器芯片的3D堆疊式處理器設(shè)備中,可以選擇性地以第一模式操作3D堆疊式處理器設(shè)備,其中第一處理器芯片接通而第二處理器芯片關(guān)閉。在第一模式中,第一處理器芯片的每個處理器接通,并可以以最大頻率和滿功率操作,并且具有封裝結(jié)構(gòu)可以支持的總功率(例如,針對給定封裝結(jié)構(gòu),控制某些熱點(diǎn)中的功率密度,以便封裝中的給定熱點(diǎn)中的熱量不會過多)。
[0049]在另一種操作模式中,可以選擇性地以第二模式操作3D堆疊式處理器設(shè)備,其中第一和第二處理器芯片均接通。在此情況下,兩個處理器芯片可以以最大頻率和功率級別操作,并且具有封裝結(jié)構(gòu)可以支持的總功率(例如,功率密度或功耗)。在另一種情況下,在第二操作模式中,第一和第二處理器芯片的每個處理器的操作功率均低于滿功率,使得3D堆疊式處理器設(shè)備的總功率與僅有第一處理器芯片或第二處理器芯片的每個處理器以滿功率和/或最大頻率工作時的3D堆疊式處理器設(shè)備的總功率基本相同。換言之,為了獲得相同的功耗或功率密度分布(profile),每個處理器芯片層中的處理器可以以較低電源電壓(或較低工作頻率)工作,使得聚合功耗與其中僅有一個處理器芯片層上的處理器活動的第一模式相同或相似。
[0050]根據(jù)本發(fā)明的原理的功率控制方案基于以下實(shí)現(xiàn):提供給處理器的功率可以大百分比(例如,50%)減少,同時只需使處理器的工作頻率減少小得多的量(例如,10%)。功率控制方案可以用于選擇性地控制處理器的電源電壓或者通過調(diào)整工作頻率,其中每一項(xiàng)都用于調(diào)整處理器芯片的整體功耗。因此,在具有多個處理器平面的3-D堆疊式處理器芯片結(jié)構(gòu)中,如果能夠調(diào)節(jié)電源電壓,并且選擇性地使處理器平面的子集斷電,則允許在系統(tǒng)中具有一系列操作模式,包括一種或多種模式,其中多個處理器平面以較低電壓操作,以便保持總功率與在操作一個處理器平面時消耗的總功率基本相同(或者,通過將多個處理器平面作為一個處理器平面操作時,在3-D堆疊式處理器芯片結(jié)構(gòu)中的給定熱點(diǎn)處維持相同的功率密度)。
[0051]在3-D處理器堆疊中,在每種功率控制操作模式中,每組垂直堆疊的處理器使用一組相同的互連信號(封裝中以及封裝外)。在這點(diǎn)上,因?yàn)榇怪倍询B中的每個處理器芯片層共享相同的互連信號,所以即使當(dāng)以較低頻率(在第二模式中)操作處理器芯片時,也只需要更少的通信要求(更少的I/O帶寬)。因此,通過3-D堆疊中的每個層產(chǎn)生的較低帶寬要求(由于用于保持功耗恒定的約束需要較低頻率操作)促進(jìn)本發(fā)明的如下原理:采用用于重用(多路復(fù)用)互連信號的技術(shù)并封裝I/O信號。
[0052]在本發(fā)明的其它示例性實(shí)施例中,在包括兩個或更多個堆疊式處理器芯片層的處理器系統(tǒng)中,其中每個處理器芯片包括一個或多個處理器,其中不同處理器芯片層中的處理器通過不同處理器芯片層之間的垂直連接而相連,模式控制電路(例如上面參考圖6示出和描述的)可以選擇性地配置不同芯片層中的兩個或更多個處理器以便以多種操作模式之一操作。例如,在一種操作模式中,給定堆疊中的一個或多個或全部處理器芯片可以獨(dú)立操作,其中獨(dú)立操作的處理器芯片的層之間的垂直連接可以被用作堆疊中的獨(dú)立操作的處理器芯片之間的通信路徑。
[0053]在另一種操作模式中,可以聚合不同處理器芯片層中的各種組件/資源,以便增強(qiáng)不同處理器芯片層上的一個或多個處理器的微架構(gòu)。如本領(lǐng)域的技術(shù)人員很容易理解的,術(shù)語處理器的“微架構(gòu)”指處理器的物理(硬件)配置。處理器的微架構(gòu)包括諸如高速緩存、總線結(jié)構(gòu)(路徑寬度)之類的組件、布置,以及執(zhí)行單元、指令單元、算術(shù)單元的數(shù)量等。例如,假設(shè)3-D堆疊式處理器芯片設(shè)備包括具有第一處理器的第一處理器芯片和具有第二處理器的第二處理器芯片。在一種操作模式中,其中第一和第二處理器芯片都活動,可以通過聚合來自第一和第二處理器的元件來配置或增強(qiáng)第一處理器芯片的第一處理器的微架構(gòu),并且可以通過聚合來自第一和第二處理器的元件來配置或增強(qiáng)第二處理器芯片的第二處理器的微架構(gòu)。在另一個實(shí)施例中,第一處理器芯片可以活動而第二處理器芯片可以不活動,其中通過使用不活動的第二處理器芯片的第二處理器的一部分,增強(qiáng)活動的第一處理器芯片的第一處理器的微架構(gòu)。增強(qiáng)的元件可以是執(zhí)行單元、寄存器組、高速緩存等的各部分。[0054]在另一種示例性操作模式中,可以在不同處理器芯片層上的不同處理器之間“共享”不同處理器芯片層中的各種組件/資源。例如,如下面解釋的,不同處理器芯片層上的兩個不同處理器可以組合其高速緩存(例如,L1、L2或L3高速緩存),以便創(chuàng)建大小加倍但由兩個處理器主動共享的高速緩存。在這種情況下,聚合后的(組合后的)組件或資源由不同處理器共享。在另一種示例性操作模式中,可以組合給定堆疊中的不同處理器芯片層上的兩個或更多個不同處理器,以便操作單個處理器映像。下面將參考圖7、8、9A、9B、9C、10、
11、12、13、14、15、16、17A、17B、18、19、20和21,進(jìn)一步詳細(xì)地解釋顯示用于聚合和/或共享和/或組合處理器資源的不同操作模式的本發(fā)明的示例性實(shí)施例。
[0055]例如,圖7和8示出了示例性操作模式,其用于選擇性地配置不同處理器芯片層上的不同處理器以便聚合和/或共享不同處理器的執(zhí)行單元的各部分,從而增強(qiáng)一個或多個不同處理器的執(zhí)行能力。圖7是可以應(yīng)用本發(fā)明的原理的處理器70的示意平面圖。圖7示意性地示出了處理器70的微架構(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構(gòu)造例如圖8中所示的3-D堆疊式多處理器結(jié)構(gòu)。
[0056]具體地說,圖8是3-D堆疊式多處理器設(shè)備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。執(zhí)行單元73B包括第一浮點(diǎn)單元75B和第二浮點(diǎn)單元76B (其中第一和第二浮點(diǎn)單元75B和76B相同)以及一組浮點(diǎn)寄存器77B。
[0057]在本發(fā)明的一個示例性實(shí)施例中,第一和第二處理器70A和70B的執(zhí)行單元73A和73B使用短垂直連接彼此對齊并彼此相連。使用此結(jié)構(gòu),執(zhí)行單元可以垂直布線,以便對于圖8中所示的兩個處理器70A和70B,第一處理器70A的執(zhí)行單元73A可以在功能上包括處理器對的執(zhí)行單元73A/73B的元件的一半,并且第二處理器70B的執(zhí)行單元73B可以在功能上包括處理器對的執(zhí)行單元73A/73B的元件的另一半,其中選擇每對一半以便最小化每個執(zhí)行單元的平面區(qū)域。
[0058]執(zhí)行單元的這種3-D聚合優(yōu)于傳統(tǒng)的平面幾何形狀。在傳統(tǒng)的平面系統(tǒng)中,可以連接位于同一平面中的兩個處理器的執(zhí)行單元,以便可以將一個執(zhí)行單元的輸出輸入到第二執(zhí)行單元。但是,兩個處理器的執(zhí)行單元之間的“水平”電氣互連可以相對較長(例如,5毫米-20毫米),使得在處理器之間的信號傳輸中可能存在一個或兩個“死”周期,這將在信號傳輸中導(dǎo)致不需要的延遲。相比之下,在例如圖8中所示的3-D堆疊式處理器上的處理器(processor-on-processor )架構(gòu)中,每個處理器上的執(zhí)行單元的元件的一半有效地聚合成新的執(zhí)行單元,使得每個平面中的執(zhí)行單元實(shí)際上具有更小的區(qū)域。因?yàn)槊總€處理器的相同元件在空間位于一起,所以通過跨3-D層垂直連接執(zhí)行單元元件而獲得兩個處理器的聚合組件的區(qū)域。
[0059]例如,在圖8的示例性實(shí)施例中,假設(shè)每個處理器70A和70B具有兩個相同的浮點(diǎn)單元75A/76A和75B/76B。在第一處理器平面70A中,可以采用1_2個延遲周期將來自第一浮點(diǎn)單兀75A的輸出端的信號傳輸?shù)降诙↑c(diǎn)單兀76A的輸入端,因?yàn)楦↑c(diǎn)單兀75A和76A之間具有水平距離。但是,如果垂直連接兩個平面中的一對位于一起的第一浮點(diǎn)單元75A和75B,并且垂直連接一對位于一起的第二浮點(diǎn)單元76A和76B,則第一處理器70A的執(zhí)行單元73A可以利用該對垂直連接的第一浮點(diǎn)單元75A和75B,并且第二處理器70B的執(zhí)行單元73B可以利用該對垂直連接的第二浮點(diǎn)單元76A和76B,使得每個處理器70A和70B的執(zhí)行單元仍然具有兩個浮點(diǎn)單元。
[0060]處理器元件75A及76A和處理器元件75B及76B之間的垂直連接在處理器功能中提供更短的路徑,并允許使用來自3-D框架中的不同處理器平面的元件構(gòu)造每個處理器70A和70B。這將有效地減小每個處理器的平面幾何形狀并從執(zhí)行流中刪除死周期,因?yàn)閺囊粋€執(zhí)行元件(在一個平面上)的輸出端到另一執(zhí)行元件(在另一個平面上)的輸入端的路徑更快??梢詫⑦@些原理應(yīng)用于執(zhí)行單元的其它對齊組件(例如算術(shù)單元等),以及其它處理器元件(例如L2和L3高速緩存),如下面進(jìn)一步詳細(xì)地解釋的那樣。
[0061]在圖8中所示的本發(fā)明的其它示例性實(shí)施例中,每個處理器70A和70B可以獨(dú)立于彼此使用,其中跨處理器層的處理器單元之間的垂直連接將不會用于聚合或共享資源。例如,在一種操作模式中,兩個處理器70A或70B可以以減少的功率(例如,半功率)運(yùn)行(通常在不相關(guān)程序上),使得總功率與一次僅有一個處理器70A或70B以滿功率操作時的總功率基本相同。在另一種操作模式中,處理器70A或70B中的一個可以關(guān)閉,而另一個例如可以在高速模式(或加速模式)中以兩倍功率操作。
[0062]在本發(fā)明的另一個示例性實(shí)施例中,在增強(qiáng)的“加速”操作模式中,處理器70A或70B中的一個可以被禁用(不活動),而另一個可以在高速模式(或加速模式)中以兩倍功率操作,但其中活動的處理器可以使用不活動的處理器的執(zhí)行單元的某些元件,從而增強(qiáng)其執(zhí)行能力。例如,在圖8的示例性實(shí)施例中,第二處理器70B (主處理器)可以接通并在高速加速模式中以增加的功率運(yùn)行,而第一處理器70A可以關(guān)閉,但其中通過使用第一(不活動)處理器70A的元件,增強(qiáng)第二 (活動)處理器70B的微架構(gòu)。通過具體的實(shí)例,當(dāng)在增強(qiáng)的加速模式中操作時,第二 (活動)處理器70B的執(zhí)行單元73B可以利用第一(不活動)處理器70A的浮點(diǎn)單元75A和76A以及寄存器77A,因此第二處理器70B可以使用四個浮點(diǎn)單元75A、75B、76A、76B以及額外的寄存器77A以增加的速度操作。此增強(qiáng)的架構(gòu)允許第二處理器70B更快且更高效地運(yùn)行更強(qiáng)大的代碼。使用此框架,可以配置模式控制方案以便可以關(guān)閉給定處理器,同時允許通過連接或斷開到不活動的處理器的所需組件的電力線,選擇性地使不活動的處理器的一個或多個組件通電和斷電。
[0063]在本發(fā)明的另一個示例性實(shí)施例中,可以使用垂直連接結(jié)合不同處理器芯片層中的不同高速緩存,以便處理器可以將高速緩存層次結(jié)構(gòu)中的任何特定級別的高速緩存作為單個共享高速緩存來操作。例如,如果兩個堆疊式處理器具有對齊的L2高速緩存和對齊的L3高速緩存,則可以將對齊后的L2高速緩存對作為具有兩倍容量的單個共享L2高速緩存來操作,并且可以將對齊后的L3高速緩存對作為具有兩倍容量的單個共享L3高速緩存來操作?,F(xiàn)在將參考圖9A、9B和9C進(jìn)一步詳細(xì)地解釋這些原理。
[0064]圖9A是3-D堆疊式多處理器設(shè)備90的示意透視圖,其包括第一處理器90A和在第一處理器90A之上垂直堆疊的第二處理器90B。在圖9A的示例性實(shí)施例中,處理器90A和90B的結(jié)構(gòu)相同,并且具有相應(yīng)的處理器核心91A和91B、L2高速緩存92A和92B,以及L3高速緩存93A和93B。如圖9A中所示,L2高速緩存92A和92B對齊并具有相同的占用空間(2D區(qū)域)。此外,L3高速緩存93A和93B對齊并具有相同的占用空間。在這種3-D堆疊式框架中,對齊后的L2高速緩存92A和92B可以垂直相連并作為單個共享L2高速緩存操作。此外,對齊后的L3高速緩存93A和93B可以垂直相連并作為單個共享L3高速緩存操作。
[0065]例如,圖9B是圖9A的3_D堆疊式多處理器設(shè)備90的示意透視圖,其中L3高速緩存93A和93B結(jié)合并可以由處理器90A和90B之一或全部作為共享L3高速緩存93A/B來操作。同樣,圖9C是圖9A的3-D堆疊式多處理器設(shè)備90的示意透視圖,其中L2高速緩存92A和92B也結(jié)合并可以由處理器90A和90B之一或全部作為共享L2高速緩存92A/B來操作。具體地說,在其中處理器90A和90B的L2和L3高速緩存垂直連接在一起的一個示例性實(shí)施例中,可以以兩種備選模式使用L2和L3高速緩存-作為獨(dú)立高速緩存,其中不使用它們之間的跨層連接,或者跨層共享,從而增加層中的所有處理器的高速緩存容量。
[0066]3-D堆疊式高速緩存框架的一個優(yōu)勢在于高速緩存的存儲容量加倍而不增加高速緩存訪問時間。實(shí)際上,對高速緩存的訪問速度通常已知與高速緩存面積的平方根成正比。在圖9B和9C中所示的示例性實(shí)施例中,垂直連接對齊后的L2和L3高速緩存不會增大高速緩存面積,因?yàn)閷?yīng)的L2和L3高速緩存的占用空間在空間重合。在這點(diǎn)上,因?yàn)榻Y(jié)合后的L2高速緩存92A/B的面積和結(jié)合后的L3高速緩存93A/B的面積不會由于垂直連接而增大,所以高速緩存訪問速度保持不變。為了能夠針對運(yùn)行不同程序的處理器90A和90B訪問同一高速緩存地址空間,可以很容易地實(shí)現(xiàn)高速緩存控制方案,以便控制和組織共享的高速緩存目錄并保持各種高速緩存層之間的高速緩存一致性。
[0067]在本發(fā)明的另一個示例性實(shí)施例中,可以構(gòu)造3-D堆疊式處理器設(shè)備以便包括多個處理器,這些處理器可結(jié)合以便增加3-D處理器堆疊中的單個處理器映像假定的線程數(shù)。例如,在包括具有第一處理器的第一處理器芯片和具有第二處理器的第二處理器芯片的3-D堆疊式處理器設(shè)備中,第一和第二處理器芯片都可以活動,其中第一和第二處理器被配置為作為單個處理器操作,并聚合其線程以便增加可由第一和第二處理器使用的線程數(shù)量。這允許有效地提高3-D堆疊中的單個處理器的多線程能力,而無需與必須針對單個處理器本身采用附加線程關(guān)聯(lián)的開銷(線程)。現(xiàn)在將參考圖10和11進(jìn)一步解釋這些原理。
[0068]圖10是3-D堆疊式處理器設(shè)備100的示意透視圖,其包括第一處理器100A和在第一處理器100A之上垂直堆疊的第二處理器100B。在圖10的示例性實(shí)施例中,第一和第二處理器100A和100B是多線程處理器,并且具有相同的處理器和寄存器組。具體地說,第一處理器100A包括四組寄存器101A、102A、103A和104A以實(shí)現(xiàn)四個線程。同樣,第二處理器100B包括四組寄存器101B、102B、103B和104B以實(shí)現(xiàn)四個線程。
[0069]在圖10的示例性實(shí)施例中,通過垂直對齊并連接處理器100A和100B,可以將3_D處理器堆疊聚合為具有相應(yīng)更多線程的單個多線程處理器來操作。例如,在圖10的實(shí)例中,可以共同運(yùn)行兩個處理器100A和100B的四個線程101A、101B、102A、102B、103A、103B、104A和104B,使得3-D處理器堆疊100似乎是運(yùn)行八個線程的單個處理器。獨(dú)立地,對于3-D中的系統(tǒng)級別仲裁,當(dāng)對齊兩個或更多個處理器時,該組處理器將作為單個節(jié)點(diǎn)顯示在系統(tǒng)的仲裁方案中。通過這種方式,當(dāng)在新的堆疊平面中添加額外處理器時,下面討論的仲裁“樹”例如不會增加復(fù)雜性。
[0070]對于傳統(tǒng)的平面系統(tǒng),可以使用數(shù)量增加的獨(dú)立寄存器組制造處理器,以便實(shí)現(xiàn)可以同時操作的更多線程以提高多個程序的處理能力。但是,隨著每個處理器的線程數(shù)量的增加,處理器的平面尺寸增加,從而導(dǎo)致寄存器組和處理器執(zhí)行單元之間的通信周期延遲,以及功率增加。使用例如圖10中所示的3-D堆疊式架構(gòu),可以使用更少的寄存器組簡化處理器,以便支持每個處理器具有更少的線程,同時根據(jù)需要在處理器層之間聚合線程,以便增加給定層可以使用的線程總數(shù)。例如,假設(shè)給定應(yīng)用的大多數(shù)工作負(fù)載使用四個或更少的線程來操作,則圖10中所示的處理器100A和100B可以被優(yōu)化為四線程處理器。如果給定工作負(fù)載需要超過四個的線程(最多8個線程)來執(zhí)行,則3-D處理器堆疊100中的處理器100A和100B可以被組合并作為具有八個線程的單個處理器來操作。
[0071]在圖10的示例性實(shí)施例中,實(shí)現(xiàn)控制方案和通信路徑以便支持跨不同層聚合線程,并且在層之間連接高速緩存并維持高速緩存一致性。設(shè)計這些控制方案和通信路徑,使得當(dāng)不同層中的線程實(shí)際共享它們的地址空間時,每個處理器將看到相同的狀態(tài)。圖11中示意性地示出了這些概念。
[0072]具體地說,圖11示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的圖10中所示的處理器的各種組件之間的通信路徑。如圖11中所示,第一處理器100A包括與第一處理器單元105A關(guān)聯(lián)的多個寄存器組101A、102A、103A和104A (也分別表示為TO、T2、T4和T6)、L2和L3高速緩存110A、指令高速緩存112A以及數(shù)據(jù)高速緩存114A。同樣,第二處理器100B包括與第二處理器單元105B關(guān)聯(lián)的多個寄存器組101B、102B、103B和104B (也分別表示為T1、T3、T5和T7)、L2和L3高速緩存110B、指令高速緩存112B以及數(shù)據(jù)高速緩存114B。
[0073]指令高速緩存112A和112B以及數(shù)據(jù)高速緩存114A和114B接收被存儲在相應(yīng)L2或L3高速緩存IlOA和/或IlOB中的程序指令和數(shù)據(jù)。L2和/或L3高速緩存IlOA和/或IlOB可以被結(jié)合并共享,如上面例如參考圖9C討論的那樣。相應(yīng)處理器105A和105B針對一個或多個線程執(zhí)行被存儲在指令高速緩存112A和112B中的程序指令,并且給定線程的執(zhí)行狀態(tài)被存儲在一個相應(yīng)線程狀態(tài)寄存器!'0、11、了2、了3、了4、了5、了6、了7中。通過執(zhí)行程序指令生成數(shù)據(jù)時,處理器105A將數(shù)據(jù)存儲在其數(shù)據(jù)高速緩存114A中,并且處理器105B將數(shù)據(jù)存儲在其相應(yīng)的數(shù)據(jù)高速緩存114B中。根據(jù)本發(fā)明的原理,利用處理器105A和105B以及數(shù)據(jù)高速緩存114A和114B之間跨層的附加通信路徑116以便促進(jìn)一致存儲??梢砸蕴幚砥魃系奶幚砥?processor-on-processor)的方式實(shí)現(xiàn)該通信路徑116,因?yàn)楫?dāng)對齊處理器時,各端口在空間上位于一起。
[0074]盡管圖10和11的示例性實(shí)施例示出了均具有寄存器組以支持4個操作線程的處理器,但本發(fā)明的原理可以很容易地被擴(kuò)展為每個處理器具有η個線程,其中如果每個處理器是η路多線程,則處理器對可以作為2η路多線程處理器運(yùn)行,如系統(tǒng)的其余部分所看到的那樣。此外,使用此實(shí)施方式,當(dāng)大部分時間運(yùn)行η個線程(其中每個處理器負(fù)擔(dān)的線程并不繁重)時尤其有用,從而允許針對η線程操作優(yōu)化基本處理器,但在需要時具有擴(kuò)展系統(tǒng)以運(yùn)行2η個線程的能力。
[0075]如上所述,當(dāng)在3-D堆疊式配置中對齊兩個或更多個處理器時,處理器將作為單個節(jié)點(diǎn)顯示在系統(tǒng)的仲裁方案中。使用這種框架,可以構(gòu)造仲裁“樹”(或者一般地說,處理器互連結(jié)構(gòu)),使得當(dāng)在新的堆疊平面中添加其它處理器時不會增加復(fù)雜性?,F(xiàn)在將參考圖
12、13、14、15和16,進(jìn)一步詳細(xì)地討論根據(jù)本發(fā)明的原理的示例性處理器互連結(jié)構(gòu)。
[0076]圖12示意性地示出了平面處理器系統(tǒng)的處理器互連方案。具體地說,圖12示出了平面處理器系統(tǒng)120,其包括布置在同一平面上的第一處理器120A和第二處理器120B。第一處理器120A包括多個處理器P1A、P2A、P3A、P4A、P5A、P6A、P7A和P8A (統(tǒng)稱為PnA)以及相應(yīng)的L3高速緩存。第一處理器120A的處理器PnA通過處理器互連結(jié)構(gòu)122A通信。同樣,第二處理器120B包括多個處理器P1B、P2B、P3B、P4B、P5B、P6B、P7B和P8B (統(tǒng)稱為PnB)以及相應(yīng)的L3高速緩存。第二處理器120B的處理器PnB通過處理器互連結(jié)構(gòu)122B通信。在圖12的實(shí)例實(shí)施例中,處理器互連結(jié)構(gòu)122A和122B被示為實(shí)現(xiàn)標(biāo)準(zhǔn)仲裁方案的“樹”結(jié)構(gòu)。
[0077]此外,如圖12中所示,通信總線122A和122B使用總線互連結(jié)構(gòu)124互連。在圖12的平面系統(tǒng)120中,該總線互連結(jié)構(gòu)124在2D平面中相對較長。根據(jù)本發(fā)明的原理,在例如圖13中所示的3-D堆疊式框架中,該處理器互連結(jié)構(gòu)可以更簡化。具體地說,圖13示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的用于3-D堆疊式多處理器系統(tǒng)的處理器互連方案。具體地說,圖13示出了平面處理器系統(tǒng)130,其包括第一處理器130A和在第一處理器130A之上布置的第二處理器130B。第一處理器130A包括多個處理器P1A、P2A、…、P8A (統(tǒng)稱為PnA),它們使用處理器互連結(jié)構(gòu)132A互連并通信。同樣,第二處理器130B包括多個處理器P1B、P2B、…、P8B (統(tǒng)稱為PnB),它們使用處理器互連結(jié)構(gòu)132B互連并通信。處理器互連結(jié)構(gòu)132A和132B被示為實(shí)現(xiàn)標(biāo)準(zhǔn)仲裁方案的“樹”結(jié)構(gòu)。
[0078]如圖13中進(jìn)一步所示,處理器互連結(jié)構(gòu)132A和132B使用連接總線結(jié)構(gòu)134互連。圖13的整體處理器互連方案在概念方面類似于圖12的整體處理器互連方案,只是總線連接結(jié)構(gòu)134 (連接處理器互連結(jié)構(gòu)132A和132B)使用堆疊式處理器芯片130A和130B之間的垂直連接形成。在這點(diǎn)上,垂直連接總線結(jié)構(gòu)134的長度比圖12中所示的平面連接總線結(jié)構(gòu)124短得多。因此,圖13中的整體處理器互連方案實(shí)際上比圖12中所示的整體處理器互連方案更小且更快。
`[0079]圖14示意性地示出了根據(jù)本發(fā)明的另一個示例性實(shí)施例的用于3-D堆疊式多處理器系統(tǒng)的處理器互連方案。圖14示意性地示出了具有處理器互連框架的3-D堆疊式處理器結(jié)構(gòu)140,該處理器互連框架在拓?fù)渖系韧趫D13的3-D堆疊式處理器的處理器互連框架,但更快且在大小方面更簡化。更具體地說,如圖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上的相應(yīng)處理器。圖14的處理器互連方案考慮到第一和第二處理器芯片130A和130B上的處理器彼此對齊,使得第一和第二處理器芯片130A和130B的樹總線結(jié)構(gòu)132A和132B的端點(diǎn)(參見圖13)也對齊。使用此垂直對齊,可以實(shí)現(xiàn)垂直總線連接141、142、143、144、145、146、147和148 (如圖14中所示)以取代單個垂直總線互連134(如圖13中所示)。實(shí)際上,因?yàn)樯咸幚砥餍酒?30B上的總線樹結(jié)構(gòu)132B的每個端點(diǎn)與下處理器芯片130A上的總線樹結(jié)構(gòu)132A的端點(diǎn)對齊,所以可以使用短垂直連接來連接兩個樹結(jié)構(gòu)132A和132B的端點(diǎn),于是,這允許不考慮并且不使用樹結(jié)構(gòu)132A和132B之一?,F(xiàn)在將參考圖15進(jìn)一步討論和例示這些原理。[0080]具體地說,圖15是根據(jù)本發(fā)明的一個示例性實(shí)施例的3-D堆疊式多處理器系統(tǒng)的示意頂部透視圖,其具有基于圖14的處理器互連結(jié)構(gòu)方案的處理器互連結(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)對齊。這允許分別使用較短的垂直過孔連接141、142、143、144、145、146、147和148,在總線樹結(jié)構(gòu)132B的每個端點(diǎn)處將總線樹結(jié)構(gòu)132B連接到處理器對P1A/P1B、P2A/P2B、P3A/P3B、P4A/P4B、P5A/P5B、P6A/P6B、P7A/P7B和P8A/P8B。因?yàn)檫@些垂直過孔互連相對較短,所以每個上/下處理器對可以被視為全局總線132B上的單個垂直下降。再次地,使用垂直過孔141、142、…、148在對齊后的處理器之間提供了較短的通信路徑(與圖13中所示的單個垂直總線連接結(jié)構(gòu)134相比)。
[0081]圖16示意性地示出了根據(jù)本發(fā)明的另一個示例性實(shí)施例的用于3-D堆疊式多處理器系統(tǒng)的處理器互連結(jié)構(gòu)。圖16示意性地示出了 3-D堆疊式處理器結(jié)構(gòu)160,其具有類似于圖14的總線框架,只是在下處理器芯片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。
[0082]在另一種控制方案中,可以結(jié)合短垂直互連141、142、…、148同時使用兩個樹結(jié)構(gòu)162A和132B,以便在任何兩個處理器之間提供兩個獨(dú)立的通信路徑,從而可以實(shí)現(xiàn)通信帶寬增加2倍。實(shí)際上,假設(shè)每個樹結(jié)構(gòu)132B和162A是16字節(jié)總線,這需要16個周期在處理器之間傳送256字節(jié)的信息。在該實(shí)施例中,可以將通信帶寬增加到32字節(jié),方法是在任何兩個處理器之間同時使用兩個獨(dú)立的通信路徑以便同時發(fā)送32字節(jié)(每個路徑16字節(jié)),從而增加通信帶寬以便使用16個周期傳送512字節(jié)的信息。
[0083]在本發(fā)明的另一個示例性實(shí)施例中,可以構(gòu)造3-D堆疊式多處理器設(shè)備以便包括多個處理器,這些處理器可以結(jié)合,并通過選`擇性地組合每個垂直堆疊的處理器的最快組件而被配置為單個超快處理器。借助高級技術(shù),相同處理器之間的設(shè)備性能可以具有相當(dāng)大的變化,其中一個處理器的某些子系統(tǒng)可能快于另一個相同處理器的相同子系統(tǒng),而同時,對于不同子系統(tǒng),此關(guān)系可能相反。實(shí)際上,根據(jù)設(shè)備尺寸和形狀的變化以及摻雜變化等,一組在給定晶片上形成、具有相同布局和宏功能組件的相同處理器可以具有比另一個相同處理器的相同組件更快或更慢的組件。
[0084]在這點(diǎn)上,根據(jù)本發(fā)明的另一個示例性實(shí)施例,當(dāng)不同處理器芯片層上的兩個處理器(第一和第二處理器)具有相同的子系統(tǒng)區(qū)域布局時,在一種操作模式中,第一和第二處理器可以被配置為作為單個處理器操作,方法是組合第一和第二處理器的對應(yīng)子系統(tǒng)區(qū)域的較快區(qū)域并關(guān)閉第一和第二處理器的對應(yīng)子系統(tǒng)區(qū)域的較慢區(qū)域?,F(xiàn)在將參考圖17A和17B進(jìn)一步詳細(xì)地示出和討論這些原理。
[0085]具體地說,圖17A示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的具有相同布局的兩個處理器,其中兩個相同處理器的對應(yīng)區(qū)域被標(biāo)識為快于或慢于其配對的區(qū)域。具體地說,圖17A示出了兩個相同處理器170A和170B,它們具有十一個相同主區(qū)域(宏)R1、R2、R3、R4、R5、R6、R7、R8、R9和Rll。在制造之后,對處理器的這些區(qū)域進(jìn)行速度測試,因?yàn)殡m然處理器相同,但給定處理器的某些區(qū)域?qū)⒖煊?慢于另一個相同處理器的相同區(qū)域。在圖17A的示例性實(shí)施例中,第一處理器170A的區(qū)域Rl、R2、R4、R6、R8、R9和Rll被標(biāo)識為快(標(biāo)記為“F”)于相同處理器170B上的相同區(qū)域。此外,第二處理器170B的區(qū)域R2、R5、R7和RlO被標(biāo)識為快(標(biāo)記為“F”)于相同處理器170A上的相同區(qū)域。
[0086]圖17B是根據(jù)本發(fā)明的一個示例性實(shí)施例的3-D堆疊式多處理器系統(tǒng)170的示意圖,其包括圖17A的處理器170A和170B。具體地說,圖17B示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的3-D堆疊式處理器結(jié)構(gòu),其通過垂直堆疊圖17A中所示的兩個處理器形成,并作為包括每個處理器的最快對應(yīng)區(qū)域的單個處理器來操作。在圖17中,處理器被對齊并垂直連接,以便對應(yīng)的區(qū)域Rl、R2、…、Rll對齊并彼此相連。兩個處理器170A和170B的高速緩存和執(zhí)行資源垂直相連,使得3-D堆疊式處理器系統(tǒng)170可以以多種模式之一操作。[0087]例如,在一種模式中,處理器170A和170B可以作為獨(dú)立處理器操作,其中每個處理器活動并以半功率操作,如上面討論的那樣。在另一個示例性實(shí)施例中,處理器170A或170B之一可以以滿功率或增強(qiáng)的功率(加速模式)操作,而另一個處理器關(guān)閉。在另一個實(shí)施例中,處理器170A和170B可以作為單個處理器操作,該單個處理器包括來自每個處理器的被標(biāo)識為最快版本的區(qū)域的那些區(qū)域,使得產(chǎn)生的處理器可以作為單個超快處理器操作,其速度快于使用僅一個處理器層中的所有組件的速度。例如,在圖17B的示例性實(shí)施例中,3-D堆疊式處理器結(jié)構(gòu)170可以作為單個處理器操作,該單個處理器包括11個區(qū)域,這11個區(qū)域包含第一處理器170A的快區(qū)域Rl、R2、R4、R6、R8、R9和Rll以及第二處理器170B 的快區(qū)域 R2、R5、R7 和 R10。
[0088]在本發(fā)明的另一個示例性實(shí)施例中,3-D堆疊式多處理器設(shè)備可以具有多個結(jié)合的處理器,這些處理器在邏輯上作為單個處理器映像操作,但其中至少一個處理器用于“提前運(yùn)行”功能。具體地說,例如,在具有對齊并彼此垂直相連的第一和第二堆疊式處理器的3-D堆疊式多處理器設(shè)備中,第一處理器可以是負(fù)責(zé)機(jī)器的架構(gòu)狀態(tài)的主處理器,并且輔助處理器可以在主處理器之前運(yùn)行以便預(yù)先解析分支并生成未命中,同時輔助處理器不受架構(gòu)或程序的限制,并且不能更改機(jī)器的架構(gòu)狀態(tài)。
[0089]在該示例性實(shí)施例中,第一和第二處理器的高速緩存和執(zhí)行資源連接在一起,因此它們例如可以以兩種備選模式使用一作為獨(dú)立處理器,其中不使用處理器層之間的連接,或者以協(xié)作方式,其中主處理器執(zhí)行程序而輔助處理器運(yùn)行程序的較簡單版本,以便輔助處理器可以在主處理器之前生成存儲器請求并解析分支,主處理器可以使用其結(jié)果以避免較長延遲的存儲器訪問和分支錯誤預(yù)測等。將參考圖18進(jìn)一步詳細(xì)地描述這種在3-D堆疊式處理器系統(tǒng)中實(shí)現(xiàn)提前運(yùn)行或輔助線程的概念。
[0090]具體地說,圖18示意性地示出了根據(jù)本發(fā)明的一個示例性實(shí)施例的用于在3-D堆疊式處理器系統(tǒng)中實(shí)現(xiàn)提前運(yùn)行功能的方法。具體地說,圖18示出了操作主線程的主處理器針對在主處理器和輔助處理器之間共享的存儲器執(zhí)行的多個操作181和182,以及作為與主處理器協(xié)作的提前運(yùn)行線程操作的輔助處理器執(zhí)行的多個操作184、185、186、187、188和 189。
[0091]具體地說,如圖18中所示,當(dāng)在3-D堆疊式處理器系統(tǒng)中執(zhí)行程序時,主處理器從存儲器183取回指令(181)并執(zhí)行每個程序指令(182)。當(dāng)執(zhí)行指令時,主處理器將從共享存儲器183取回并存儲程序數(shù)據(jù),并且維護(hù)對所有外部實(shí)體可見的機(jī)器狀態(tài)(存儲)。換言之,主處理器正確執(zhí)行程序,因?yàn)橹魈幚砥饕哉_順序執(zhí)行指令操作,并且僅當(dāng)已知狀態(tài)更改正確時,才向系統(tǒng)的其余部分顯示狀態(tài)更改信息。但是,為使程序執(zhí)行更快并具有更高的指令級并行性,輔助處理器作為“提前運(yùn)行處理器”操作,其中輔助處理器不保證正確和合法的操作,并且不向系統(tǒng)的其余部分顯示狀態(tài)更改。相反,它以推測方式盡可能快地運(yùn)行,并且不考慮與程序流無關(guān)的指令。通過以這種方式操作,提前運(yùn)行處理器將在主處理器之前解析許多分支并生成許多必需的高速緩存未命中。這將允許主處理器比正常情況下運(yùn)行更快。
[0092]具體地說,如圖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ù)存儲指令出現(xiàn)時,輔助處理器將確定對于要存儲的數(shù)據(jù)是否存在高速緩存行。如果高速緩存行不存在,則輔助處理器將生成高速緩存未命中并繼續(xù)以便為數(shù)據(jù)存儲分配高速緩存行,并獲得適當(dāng)?shù)臋?quán)限以便將數(shù)據(jù)存儲在新分配的高速緩存行中(即,確保新高速緩存行的狀態(tài)處于“數(shù)據(jù)存儲就緒”狀態(tài))。如果高速緩存行已經(jīng)存在,則輔助處理器將確定高速緩存行是否處于“數(shù)據(jù)存儲就緒”狀態(tài),并且繼續(xù)獲得適當(dāng)?shù)臋?quán)限(如果未獲得)。通過這種方式,當(dāng)主處理器執(zhí)行數(shù)據(jù)存儲指令時,高速緩存行將可用并處于“存儲就緒”狀態(tài),從而避免在執(zhí)行流中出現(xiàn)高速緩存未命中。
[0093]輔助處理器(提前運(yùn)行處理器)通過在主處理器看到意外事件之前解決這些事件,加快主處理器的速度。輔助處理器可以以這種方式操作,因?yàn)樗槐貓?zhí)行每個指令,并且不必正確執(zhí)行程序操作。在3-D堆疊式配置中,因?yàn)橹魈幚砥骱洼o助處理器在空間上重合并通過較短垂直連接相連,所以它們能夠共享和查看執(zhí)行狀態(tài),并且以其他方式比共面(coplanar)配置更容易且可靠地同步,在共面配置中將需要較長導(dǎo)線來交換正確的同步信息。即使在共面處理器之間使用共面布線,共面處理器也可能無法同時查看彼此的狀態(tài)。在3-D堆疊式配置中,可以更容易地通過主處理器和輔助處理器的資源之間的短垂直連接實(shí)現(xiàn)輔助線程和主線程之間的通信和交互,以便共享值和以其他方式同步過程流。
[0094]在本發(fā)明的另一個示例性實(shí)施例中,3-D堆疊式多處理器設(shè)備可以具有多個結(jié)合的處理器,這些處理器在邏輯上作為單個處理器映像操作,但其中它們架構(gòu)存儲的各部分作為專用存儲空間(或臨時空間)操作,3-D堆疊外部的處理器不可訪問該專用存儲空間。換言之,多個處理器可以被結(jié)合成具有專用存儲區(qū)域的單個操作實(shí)體(從外部看,為“處理器”),該專用存儲區(qū)域可以用于臨時空間并組織其它數(shù)據(jù)結(jié)構(gòu),其中專用存儲對系統(tǒng)中的其它操作實(shí)體不可見。當(dāng)一個處理器元組以提前運(yùn)行模式或超加速模式或任何其它分組模式作為單個邏輯處理器運(yùn)行時,該元組的一個或多個高速緩存可以被用作具有專用結(jié)構(gòu)的專用存儲。
[0095]在本發(fā)明的其它示例性實(shí)施例中,如圖19中所示,根據(jù)本發(fā)明的一個示例性實(shí)施例,3-D堆疊式處理器結(jié)構(gòu)可以通過垂直堆疊多個處理器形成,每個處理器具有類似的狀態(tài)寄存器布局,其中多個處理器可以獨(dú)立或以協(xié)作方式操作以便共享其狀態(tài)寄存器。更具體地說,圖19示意性地示出了第一處理器190A和第二處理器190B,它們垂直堆疊以形成3-D堆疊式處理器結(jié)構(gòu)190。在圖19的示例性實(shí)施例中,每個處理器190A和190B具有相同的狀態(tài)寄存器布局(總體通過包含一個或多個矩形的多個組不出)。例如,第一處理器190A和第二處理器190B具有相同的狀態(tài)寄存器組191A和191B,它們分別布置在相應(yīng)處理器的基本相同的2-D區(qū)域中。應(yīng)該理解,對每個處理器190A和190B上的狀態(tài)寄存器組(矩形組)的圖示是任意的,并且只是意味著總體示出包含其狀態(tài)寄存器的處理器。
[0096]在處理器的每個操作周期結(jié)束時,每個處理器190A和190B上的狀態(tài)寄存器組用于存儲相應(yīng)處理器190A和190B的“狀態(tài)”。術(shù)語“狀態(tài)”指完全捕獲在給定處理器上執(zhí)行的程序的執(zhí)行狀態(tài)(執(zhí)行中的程序到目前為止執(zhí)行的操作)所需的信息。“狀態(tài)”包括包含在通用寄存器、控制寄存器、條件碼、地址寄存器,以及保存重要狀態(tài)信息的任何其它寄存器中的信息,如本領(lǐng)域的技術(shù)人員理解的那樣。假設(shè)程序在第一處理器190A上執(zhí)行。在程序執(zhí)行中的某一給定點(diǎn)(在處理器190A的完整操作周期結(jié)束時),可以從第一處理器190A的狀態(tài)寄存器掃描輸出第一處理器190A的“狀態(tài)”并將其存儲在第二處理器190B的對應(yīng)狀態(tài)寄存器中,并且第二處理器190B可以使用被存儲在第二處理器190B的狀態(tài)寄存器中的掃描輸入的狀態(tài)信息,在第一處理器190A上停止執(zhí)行的點(diǎn)處開始執(zhí)行同一程序。在這點(diǎn)上,程序可以從第一處理器190A上的停止點(diǎn)而繼續(xù)在第二處理器190B上運(yùn)行,并且程序?qū)⒉荒鼙鎰e它已被移動到不同處理器。因此,“狀態(tài)”是捕獲所需任何事物(有關(guān)任何周期中的運(yùn)行中的處理器)需要的所有靜態(tài)信息?!盃顟B(tài)”是完全指定所有信息(與在處理器上運(yùn)行的程序相關(guān))的寄存器組。
[0097]一般而言,圖19的3-D堆疊式結(jié)構(gòu)190可以使用上面討論的技術(shù)來制造,其中處理器190A和190B可以堆疊在彼此之上并垂直連接,使得每層處理器190A和190B的狀態(tài)寄存器組(和其它組件)使用短垂直互連“對齊”并互連。如上所述,術(shù)語“對齊”指每層處理器190A和190B的對應(yīng)組件直接布置在彼此之上(在每層垂直3D空間中占用基本相同的2D空間),或者按固定位移均勻交錯,如果處理器190A和190B以某一偏移附接以便產(chǎn)生較低的功率密度,如上面討論的那樣。通過這種方式,通過在狀態(tài)寄存器和其它組件之間實(shí)現(xiàn)適當(dāng)?shù)拇怪边B接,3-D堆疊式處理器190可以以多種模式之一操作。
[0098]圖20是示出圖19的3-D堆疊式處理器結(jié)構(gòu)的多種操作模式的表。例如,如圖20中所示,在一種操作模式(“正?!蹦J?中,第一和第二處理器190A和190B可以作為獨(dú)立處理器操作,其中每個處理器190A和190B均活動(接通)并且操作功率低于滿功率(例如,每個處理器以半功率操作)。在另一種操作模式(“加速”模式)中,一個處理器190A (或190B)以滿功率操作,而另一個處理器關(guān)閉。在“正?!蹦J街?,每個處理器190A和190B可以以其最大功率的一半操作,使得處理器對與以滿速度運(yùn)行(加速模式)的單個處理器具有相同的電源足跡(power footprint)??梢圆捎谩罢!辈僮髂J?,使得相同的電源和冷卻基礎(chǔ)架構(gòu)可以處理兩種情況,即,單個處理器以滿速度運(yùn)行(加速模式),或者處理器對以降低的速度運(yùn)行(正常模式)。
[0099]應(yīng)該理解,術(shù)語“滿速度”或“滿功率”或“最大安全速度”如在此使用的,均指給定處理器針對所有可能情況和輸入正確操作的操作速度。給定處理器的最大安全速度是一種操作特性,其針對給定處理器產(chǎn)品使用各種計算機(jī)模擬、建模和測量事先確定。處理器產(chǎn)品被宣傳為以該速度作為其最大速度,而且它不會比該速度運(yùn)行更快。實(shí)際上,對于給定處理器可以操作的大多數(shù)可能狀態(tài),并且對于大多數(shù)可能程序和輸入,處理器的實(shí)際運(yùn)行可以快于“最大安全速度”。但是,因?yàn)楫?dāng)處理器在超過其已知的“最大安全速度”操作時,狀態(tài)和輸入的某些組合可以導(dǎo)致操作錯誤,所以通常設(shè)置“滿速度”限制,使得在處理器操作的任何操作條件和情況下,不會發(fā)生任何問題。
[0100]在本發(fā)明的另一個示例性實(shí)施例中,如圖20的表中所示,圖19的示例性3-D結(jié)構(gòu)190可以以被稱為“超加速”的模式操作,其中一個處理器(例如,處理器190A)可以以大于滿功率操作(操作速度快于處理器的最大安全速度),而另一個處理器(例如,處理器190B)被停用(關(guān)閉),但其中活動的處理器使用被停用處理器的狀態(tài)寄存器來為活動處理器的狀態(tài)“設(shè)置檢查點(diǎn)”。在該示例性實(shí)施例中,使用堆疊中的另一個不活動的處理器的狀態(tài)寄存器增強(qiáng)堆疊中的活動的處理器的架構(gòu),以使活動的處理器能夠以增強(qiáng)的(超加速)操作速度操作,同時在完成活動的處理器的每個操作周期時,使用不活動的處理器的狀態(tài)寄存器存儲當(dāng)前狀態(tài)信息,以便在活動的處理器以高于被視為“安全”速度的增加操作速度操作期間發(fā)生執(zhí)行錯誤的情況下,為活動的處理器的狀態(tài)“設(shè)置檢查點(diǎn)”。
[0101]圖21是示出根據(jù)本發(fā)明的一個示例性實(shí)施例的以“超加速”模式操作的圖19的3-D堆疊式處理器結(jié)構(gòu)190的一種操作模式的流程圖。首先,可以選擇性地控制圖19的處理器堆疊190以進(jìn)入“超加速”模式,方法是激活主處理器(例如,處理器190A)以便以高于其“最大安全速度”的速度操作,并關(guān)閉輔助處理器(例如,處理器190B),同時允許輔助(不活動)處理器的狀態(tài)寄存器保持活動以供主處理器使用(步驟200)。在執(zhí)行給定程序期間,當(dāng)完成每個操作周期時,主處理器將開始下一操作周期(步驟201)。如果完成當(dāng)前周期(步驟202的肯定結(jié)果),并且在當(dāng)前周期中沒有發(fā)生錯誤(步驟203的否定結(jié)果),則在輔助處理器的狀態(tài)寄存器中為主處理器的當(dāng)前狀態(tài)(當(dāng)完成當(dāng)前周期時)設(shè)置檢查點(diǎn)(存儲)(步驟204),并且將開始下一操作周期(步驟201)。
[0102]如果在當(dāng)前操作周期中發(fā)生某些錯誤(步驟203的肯定結(jié)果),則通過復(fù)制輔助處理器的狀態(tài)寄存器中的已設(shè)置檢查點(diǎn)的狀態(tài)的當(dāng)前內(nèi)容,將主處理器的狀態(tài)回滾一個周期(步驟205)。輔助處理器的狀態(tài)寄存器中的已設(shè)置檢查點(diǎn)的狀態(tài)是在完成主處理器的上一操作周期的時間點(diǎn)存在的主處理器的狀態(tài)寄存器的狀態(tài)。然后主處理器(使用從輔助處理器的狀態(tài)寄存器訪問的已設(shè)置檢查點(diǎn)的狀態(tài))恢復(fù)當(dāng)前操作周期(其中發(fā)生錯誤)(步驟206)。在一個示例性實(shí)施例中,該過程(步驟206)優(yōu)選地使用以其“安全”最大速度運(yùn)行的主處理器執(zhí)行,以便確保這次正確執(zhí)行在較高速度時導(dǎo)致問題的程序操作而沒有錯誤。
[0103]一旦完成當(dāng)前操作周期(以正常安全速度執(zhí)行)(步驟207的肯定結(jié)果),在輔助處理器的狀態(tài)寄存器中為主處理器的當(dāng)前狀態(tài)設(shè)置檢查點(diǎn)(步驟208)。此后,處理器堆疊返回超加速模式,其中主處理器開始以高于其最大安全速度的操作速度操作(步驟200)。在圖21的示例性過程中,因?yàn)獒槍γ總€完整的操作周期為主處理器的狀態(tài)設(shè)置檢查點(diǎn),并且因?yàn)槭褂枚询B幾何形狀,恢復(fù)操作簡單且快速(即,通過使用輔助處理器的狀態(tài)寄存器中的狀態(tài)檢查點(diǎn)的內(nèi)容(經(jīng)由垂直連接訪問)刷新主處理器的狀態(tài)寄存器而恢復(fù)狀態(tài)),所以主處理器可以以高于其最大安全速度的速度運(yùn)行。
[0104]盡管參考附圖在此描述了本發(fā)明的示例性實(shí)施例,但是應(yīng)當(dāng)理解,本發(fā)明并不限于這些精確的實(shí)施例,并且在不偏離所附權(quán)利要求的范圍的情況下,本領(lǐng)域的技術(shù)人員可以對本發(fā)明做出各種其它更改和修改。
【權(quán)利要求】
1.一種處理器系統(tǒng),包括: 第一處理器芯片,其包括第一處理器,所述第一處理器具有第一組狀態(tài)寄存器; 第二處理器芯片,其包括第二處理器,所述第二處理器具有與所述第一組狀態(tài)寄存器對應(yīng)的第二組狀態(tài)寄存器, 其中所述第一和第二處理器芯片以堆疊式配置相連,并且所述第一和第二處理器通過所述第一和第二處理器芯片之間的垂直連接而相連;以及 模式控制電路,其用于以多種操作模式之一選擇性地操作所述處理器系統(tǒng),其中在第一操作模式中,所述第一處理器活動而所述第二處理器不活動,并且其中第一處理器以高于所述第一處理器的最大安全速度的速度操作,并且其中所述第一處理器使用所述第二處理器的所述第二組狀態(tài)寄存器,以便為包含在所述第一組狀態(tài)寄存器中的所述第一處理器的狀態(tài)設(shè)置檢查點(diǎn)。
2.根據(jù)權(quán)利要求1的處理器系統(tǒng),其中所述第一和第二處理器的所述第一和第二組寄存器的布局基本相同。
3.根據(jù)權(quán)利要求1的處理器系統(tǒng),其中在所述第一操作模式中,在所述第一處理器的當(dāng)前操作周期期間,在所述第一處理器的所述第一組狀態(tài)寄存器中維護(hù)并更新所述第一處理器的當(dāng)前狀態(tài),然后在所述第一處理器的所述當(dāng)前操作周期完成時,將所述第一處理器的當(dāng)前狀態(tài)存儲在所述第二處理器的對應(yīng)第二組狀態(tài)寄存器中。
4.根據(jù)權(quán)利要求3的處理器系統(tǒng),其中當(dāng)在所述第一處理器的所述當(dāng)前操作周期期間發(fā)生執(zhí)行錯誤時,通過將已設(shè)置檢查點(diǎn)的狀態(tài)從所述第二處理器的所述第二組狀態(tài)寄存器復(fù)制到所述第一處理器的所述第一組狀態(tài)寄存器中而回滾所述第一處理器的狀態(tài),其中從復(fù)制到所述第一處理器的所述第一組狀態(tài)寄存器中的所述已設(shè)置檢查點(diǎn)的狀態(tài)開始,恢復(fù)所述當(dāng)前操作周期。`
5.根據(jù)權(quán)利要求4的處理器系統(tǒng),其中在所述第一操作模式中,恢復(fù)所述當(dāng)前操作周期,并且所述第一處理器以所述第一處理器的所述最大安全速度操作。
6.根據(jù)權(quán)利要求4的處理器系統(tǒng),其中通過所述第一和第二處理器芯片之間的所述垂直連接,從所述第二處理器的所述第二組狀態(tài)寄存器訪問所述已設(shè)置檢查點(diǎn)的狀態(tài)。
7.根據(jù)權(quán)利要求1的處理器系統(tǒng),其中在第二操作模式中,所述第一處理器芯片活動并且所述第二處理器芯片活動,并且所述第一和第二處理器不共享所述第一和第二組狀態(tài)寄存器。
8.根據(jù)權(quán)利要求7的處理器系統(tǒng),其中在所述第二操作模式中,所述第一處理器和第二處理器的操作功率均低于它們的滿功率,使得所述處理器系統(tǒng)的總功率與所述第一或第二處理器以滿功率操作時的所述處理器系統(tǒng)的總功率基本相同。
9.一種半導(dǎo)體封裝,包括: 封裝襯底;以及 處理器系統(tǒng),其包括安裝在所述封裝襯底上的多個3-D堆疊式處理器芯片,其中每個3-D堆疊式處理器芯片包括: 第一處理器芯片,其包括第一處理器,所述第一處理器具有第一組狀態(tài)寄存器; 第二處理器芯片,其包括第二處理器,所述第二處理器具有與所述第一組狀態(tài)寄存器對應(yīng)的第二組狀態(tài)寄存器,其中所述第一和第二處理器芯片以堆疊式配置相連,并且所述第一和第二處理器通過所述第一和第二處理器芯片之間的垂直連接而相連;以及 模式控制電路,其用于以多種操作模式之一選擇性地操作所述處理器系統(tǒng),其中在第一操作模式中,所述第一處理器芯片活動而所述第二處理器芯片不活動,并且其中第一處理器以高于所述第一處理器的最大安全速度的速度操作,并且其中所述第一處理器使用所述第二處理器的所述第二組狀態(tài)寄存器,以便為包含在所述第一組狀態(tài)寄存器中的所述第一處理器的狀態(tài)設(shè)置檢查點(diǎn)。
10.一種用于操作計算機(jī)處理器的方法,所述計算機(jī)處理器包括具有第一處理器的第一處理器芯片和具有第二處理器的第二處理器芯片,其中所述第一和第二處理器芯片以堆疊式配置相連,并且所述第一和第二處理器通過所述第一和第二處理器芯片之間的垂直連接而相連,所述方法包括: 生成第一控制信號以便以第一操作模式來操作所述計算機(jī)處理器,其中所述第一處理器活動而所述第二處理器不活動,并且其中第一處理器以高于所述第一處理器的最大安全速度的速度操作,并且其中所述第一處理器使用所述第二處理器的所述第二組狀態(tài)寄存器,以便為包含在所述第一組狀態(tài)寄存器中的所述第一處理器的狀態(tài)設(shè)置檢查點(diǎn);以及 生成第二控制信號以便以第二操作模式來操作所述計算機(jī)處理器,其中所述第一和第二處理器獨(dú)立地操作。
11.根據(jù)權(quán)利要求10的方法,其中所述第一和第二處理器的所述第一和第二組寄存器的布局基本相同。
12.根據(jù)權(quán)利要求10的方法,還包括: 在所述第一處理器的當(dāng)前操作周`期期間,在所述第一處理器的所述第一組狀態(tài)寄存器中維護(hù)并更新所述第一處理器的當(dāng)前狀態(tài),以及 在所述第一處理器的所述當(dāng)前操作周期完成時,將所述第一處理器的當(dāng)前狀態(tài)存儲在所述第二處理器的對應(yīng)第二組狀態(tài)寄存器中。
13.根據(jù)權(quán)利要求12的方法,還包括: 當(dāng)在所述第一處理器的所述當(dāng)前操作周期期間發(fā)生執(zhí)行錯誤時,通過將已設(shè)置檢查點(diǎn)的狀態(tài)從所述第二處理器的所述第二組狀態(tài)寄存器復(fù)制到所述第一處理器的所述第一組狀態(tài)寄存器中而回滾所述第一處理器的狀態(tài);以及 從復(fù)制到所述第一處理器的所述第一組狀態(tài)寄存器中的所述已設(shè)置檢查點(diǎn)的狀態(tài)開始,恢復(fù)所述當(dāng)前操作周期。
14.根據(jù)權(quán)利要求13的方法,其中恢復(fù)所述當(dāng)前操作周期,并且所述第一處理器以所述第一處理器的所述最大安全速度操作。
15.根據(jù)權(quán)利要求13的方法,還包括:通過所述第一和第二處理器芯片之間的所述垂直連接,從所述第二處理器的所述第二組狀態(tài)寄存器訪問所述已設(shè)置檢查點(diǎn)的狀態(tài)。
16.根據(jù)權(quán)利要求10的方法,其中在所述第二操作模式中,所述第一處理器活動并且所述第二處理器活動,并且所述第一和第二處理器不共享所述第一和第二組狀態(tài)寄存器。
17.根據(jù)權(quán)利要求16的方法,其中在所述第二操作模式中,所述第一處理器和第二處理器的操作功率均低于它們的滿功率,使得所述處理器系統(tǒng)的總功率與所述第一或第二處理器以滿功率操作時的所述處理器系統(tǒng)的總功率基本相同。
【文檔編號】G06F15/16GK103514139SQ201310261509
【公開日】2014年1月15日 申請日期:2013年6月27日 優(yōu)先權(quán)日:2012年6月28日
【發(fā)明者】A·布于克托蘇諾格盧, P·G·埃瑪, A·M·哈特斯泰因, M·B·希利, K·K·凱拉斯 申請人:國際商業(yè)機(jī)器公司