多管芯處理器的製作方法
2023-05-31 01:00:56
專利名稱:多管芯處理器的製作方法
技術領域:
本發明一般地涉及信息處理系統,更具體地,涉及其邏輯被劃分在多個堆疊管芯(die)中的處理器。
背景技術:
諸如蜂窩電話、筆記本電腦之類的電子設備一般包含許多安裝在印刷電路板(PCB)上的集成電路(IC)封裝件。IC封裝件一般包括襯底或引線框架上的單個IC管芯。管芯和襯底被包封在諸如塑料之類的材料中。被包封的封裝件然後被安裝到諸如PCB之類的其他襯底上。已經應用了各種封裝方法來提高這樣的電子設備的性能。
多晶片模塊(MCM)是一種IC封裝件,它在普通襯底上包含互連的兩個或多個「裸」集成電路管芯或未封裝的集成電路管芯。因為MCM一般以橫向相鄰的方式在單個封裝內安裝有多個獨立IC管芯,所以可以減小使用MCM的電子設備的尺寸。
片上系統(SoC)技術是將一個「系統」(例如蜂窩電話或數位相機)必需的電子電路和元件中的大部分或者全部封裝在單個IC管芯上。例如,用於聲音檢測設備的片上系統可以在單個IC管芯上包括音頻接收器、模數轉換器、微處理器、存儲器和輸入/輸出控制邏輯。
另一類試圖減少IC封裝件的覆蓋區(footprint)和體積的IC封裝件結構被稱為堆疊式晶片規模封裝(堆疊式CSP)。堆疊式CSP實質上是空間效率高的MCM,其中多個管芯被堆疊(以面對背的方向)並被集成到單個封裝件中。堆疊式CSP封裝使得行動電話和其他可攜式設備的製造商通過在單個封裝件內垂直地堆疊不同種類的管芯,例如堆疊快閃記憶體和SRAM(靜態隨機訪問存儲器)管芯,使他們的產品變得更小。通過利用在單個封裝件中垂直安裝了兩個或更多個不同種類IC管芯的堆疊式CSP產品,所生產的無線設備相對於用傳統單管芯封裝件製成的設備,可以具有更低的成本、重量和板空間。
發明內容
根據本發明的一個方面,提供了一種裝置,包括具有第一正面和第一背面的第一管芯,所述第一管芯包括第一邏輯部分;具有第二正面和第二背面的第二管芯,所述第二管芯包括第二邏輯部分;所述第一和第二管芯彼此正面相對地耦合在一起;其中,所述第一邏輯部分和所述第二邏輯部分將協作執行指令。
根據本發明的另一個方面,一種處理器,包括在第一管芯上的第一分區;在第二管芯上的第二分區;和執行邏輯,用於調用所述第一分區和所述第二分區以執行與指令相關聯的執行操作。
根據本發明的另一個方面,提供了一種裝置,包括第一管芯,所述第一管芯包括執行單元和第一陣列片(array fraction);和第二管芯,所述第二管芯包括第二陣列片,所述第二陣列片通過管芯到管芯耦合被耦合到所述第一寄存器文件片,以連同所述第一陣列片一起作為陣列來協作操作。
參考下面的附圖可以理解本發明,在附圖中類似的元素用類似的標號表示。這些附圖不是限制性的,而是被提供來圖示多管芯處理器裝置和系統的經選擇的實施例,其中所述多管芯處理器的處理器邏輯被劃分在多個管芯中。
圖1是呈現公開特徵的多管芯處理器的至少一個實施例的框圖。
圖2是圖示了多管芯處理器的至少一個實施例的進一步細節的框圖。
圖3是圖示了示例性指令執行流水線的至少一個實施例的數據流圖。
圖4是圖示了加載訪問數據通道的數據流圖。
圖5是圖示了調度執行數據通道的數據流圖。
圖6是圖示了在多個管芯的正面上的導電元件的框圖。
圖7是圖示了示例性的標量單管芯處理器的邏輯的示例標量平面布局圖的框圖。
圖8是圖示了圖7中所圖示的邏輯在兩個面對面堆疊管芯之間的劃分和分配的至少一個實施例的框圖。
圖9是多管芯處理器的至少一個實施例的長度縮短的加載訪問數據通道的平面圖。
圖10是多管芯處理器的至少一個實施例的長度縮短的調度執行數據通道的平面圖。
圖11是圖示了根據至少一個實施例的在兩個面對面堆疊管芯之間劃分的處理器邏輯塊之間的鋸齒形數據通道的框圖。
圖12是圖示了在兩個面對面堆疊管芯之間劃分的被拆分陣列的至少一個實施例的框圖。
圖13是在兩個面對面堆疊管芯之間劃分的被拆分執行邏輯的至少一個實施例的框圖。
圖14是在兩個面對面堆疊管芯之間劃分的被拆分調度邏輯的至少一個實施例的框圖。
圖15是在兩個面對面堆疊管芯之間劃分的被拆分浮點執行邏輯的至少一個實施例的框圖。
圖16是在兩個面對面堆疊管芯之間劃分的被拆分地址生成邏輯的至少一個實施例的框圖。
圖17是圖示了包括多管芯處理器的處理系統的至少一個實施例的框圖。
具體實施例方式
這裡描述了多管芯處理器裝置和系統的經選擇的實施例。在下面的描述中,列出了許多具體細節以提供對本發明的更徹底的理解,這些細節例如部件間通信機制、具體流水線階段、被拆分邏輯的重疊配置等。但是,應該理解,沒有這些具體細節,本領域的技術人員也可以實施本發明。另外,沒有詳細示出某些公知的結構、電路等,以避免不必要地模糊本發明。
這裡公開了將一起來實現處理器設備的多個管芯堆疊在單個封裝件中的封裝方法。例如,通過在共同工作以協作執行指令的兩個堆疊管芯之間拆分處理器核心的邏輯,可以實現處理器性能(例如,以每時鐘周期指令數測量)、發熱和功率管理中的高效。
圖1是用於執行一個或多個指令的多管芯處理器核心100的框圖。處理器核心可以是通用或專用微處理器、數位訊號處理器、圖像處理器、通信處理器、網絡處理器或任何其他執行一個或多個指令的處理器。圖1圖示出處理器封裝件100包括第一管芯102和第二管芯104。第一和第二管芯協作工作以執行指令。就是說,管芯102、104都不是完整功能的處理器;處理器的功能被「拆分」在兩個管芯102、104之間。
第一管芯102和第二管芯104中的每個的至少一個實施例具有正面和背面。「正面」是指其上形成有集成電路的管芯面。該正面可以是指擁有活性矽的管芯面。管芯的「背面」是擁有諸如熱沉(heat sink)、C4 I/O突點、襯底等的可以耦合到其他結構的非活性物質(例如矽襯底)的那一面。
從圖1可以看到第一管芯102和第二管芯104的至少一個實施例以面對面方向被耦合到一起。第一管芯102和第二管芯104的正面可以經由導電接口耦合在一起,而並非採用環氧樹脂和其他基於粘附的耦合機制。對於至少一個實施例,第一管芯102正面上的導電元件106被耦合到第二管芯104正面上的導電元件108。例如,相應的導電元件106、108可以是銅過孔,它們可以被接合在一起以建立導電的管芯間接口(見圖2的275)。
簡要參考圖6,進一步圖示了第一管芯602和第二管芯604上的導電元件106和108的放置的選擇範圍。圖6圖示了第一管芯602和第二管芯604的正面。應該注意到,導電元件106、108可以被放置在各自的管芯602、604正面上的任何位置。雖然圖6圖示了覆蓋每個管芯602、604整個正面的多個導電元件106、108,但是本領域的技術人員會認識到,每個管芯602、604的正面區域的任何子集可以包括導電元件106、108。
圖6圖示出每個管芯602、604具有周邊區606和中央區608。第一管芯602的導電元件106可以被放置在管芯中央區608a內和/或沿著管芯周邊區606a放置。類似地,第二管芯604的導電元件108也可以被放置在沿管芯604正面的任何地方,包括管芯604的中央區和/或周邊區。結果,兩個管芯的正面都沒有「排除(keep out)」的區域。相應地,第一和第二管芯602、604可以具有相同的尺寸和形狀。這樣當它們在被堆疊時,可以彼此完全重疊。在其他實施例中,可以使用不同的尺寸和形狀,以及/或者重疊可以是更受限的或是局部的。
圖2是圖示了根據公開的技術製造的多管芯處理器的至少一個實施例200的進一步細節的框圖。第一管芯102的正面包括活性矽層203和一個或多個金屬層214。第二管芯104的正面也包括活性矽層205和一個或多個金屬層216。
圖2還圖示出管芯102、104的每一個的背面分別包括一層非活性體矽220、230。第一管芯102的背面還可以包括一個或多個背面過孔233,用於提供從第一管芯102正面上的活性矽203到金屬輸入/輸出(I/O)焊接突點212的通信通道。過孔233可以由例如銅製成。
I/O突點212提供用於與諸如處理系統接口部分(見圖17的1704)之類的多管芯處理器200的外部結構通信的裝置。接口部分可以被耦合到可能在兩個管芯上都存在的I/O突點212上。或者,I/O突點212可以只存在於兩個管芯中的一個上,例如在圖2所示的第一管芯102上。相應地,接口部分可以只被耦合到多個管芯中的一個上。與I/O突點212相通信的接口部分可以向多管芯處理器200提供與處理系統其他部件通信的機制。例如,接口部分和I/O突點212可以促進處理器200和存儲器系統(見圖17的1750)之間的通信,以處理來自處理器的存儲器訪問請求。
圖2圖示出第二管芯104的非活性矽230背面層可以被耦合到熱沉210。
圖3是圖示了處理器的示例執行流水線300的流程框圖。圖3中圖示的示例性執行流水線300包括下列階段指令指針生成302、指令取304、指令解碼306、寄存器重命名308、調度312、執行313、指令退役(retirement)314。圖3中所圖示的流水線300隻是示例性的;這裡描述的技術可以被用於任何處理器。對於其中處理器利用執行流水線300的實施例,流水線300的階段可以以不同於圖3描述的順序出現,或者可以被拆分為更多的、不同的或其他的階段。
這裡公開的技術可以用於這樣的處理器該處理器的流水線300可以包括與圖3中所圖示的流水線階段不同的或額外的流水線階段。例如,流水線300的另外的實施例可以包括用於循環、擴展、異常檢測等的額外的流水線階段。此外,EPIC(顯式並行指令計算)型處理器可以包括不同的流水線階段,例如字線解碼階段、體系結構重命名階段等,這些流水線階段出現在用於在其指令集中包括可變長度指令的處理器的流水線中。此外,某些處理器也可以不包括用於將指令解碼為微操作的解碼段306。
圖4和圖5圖示出在指令執行期間,可以隨之出現通過流水線300的各種數據通道。這些通道中的某些可以構成性能關鍵的數據環(dataloop)。例如,圖4圖示出在加載指令的執行期間,可以隨之出現在執行流水線階段313期間從加載/存儲執行單元(未示出)到數據高速緩存365的加載訪問數據通道420。這樣的加載訪問數據通道420是性能關鍵的環,因為軟體代碼中固有的數據依存性——某些較晚的指令直到較早的加載指令的數據從存儲器被讀取並對該較晚的指令可用時,才能被執行。
類似地,在處理器的指令執行期間可以發生其他性能關鍵的環。例如,圖5圖示出調度執行數據通道520也可能是性能關鍵的環。同樣,這樣的調度執行數據通道520可能是性能關鍵的環,由於軟體代碼中固有的數據依存性——某些較晚的指令(消費者)直到較早的指令(生產者)已經計算了將由消費者指令使用的寄存器值才能被執行。
例如,諸如圖1和圖2中分別圖示的實施例100、200之類的多管芯處理器可以在多個管芯之間被劃分,使得可以縮短關鍵數據通道。例如,可以通過在面對面的第一和第二管芯之間慎重地劃分和分配處理器邏輯,縮短圖4和圖5中分別圖示的加載訪問通道420和調度執行通道520。
例如,圖7圖示了示例標量處理器布局圖,其中處理器的邏輯被分配給單個管芯700。圖7圖示了在圖4和圖5中分別圖示的數據通道420、520。加載訪問數據通道420在通用寄存器文件702處開始,接著通過執行單元邏輯塊704中的加載/存儲執行單元,接著進入數據高速緩存706以獲取加載數據。穿過執行單元邏輯704到達數據高速緩存706的延時用參考標號732表示。一旦從數據高速緩存706讀取了加載數據,數據就被返回到執行邏輯704的前端。從數據高速緩存706獲取希望的加載數據到執行邏輯704的前端的延時用參考標號730表示。
考慮調度執行數據通道520,圖7圖示了示例標量處理器邏輯700上的這樣的通道520。圖7圖示出該通道520的數據在調度邏輯708處開始,依次通過通用寄存器文件702、執行邏輯704、數據高速緩存706,然後回到調度邏輯708。
圖8圖示了諸如圖7中圖示的示例處理器邏輯之類的處理器邏輯的至少一個實施例,該處理器邏輯被分配在兩個分立的管芯802、804之間。雖然圖8中圖示了具體的邏輯分配,但是應該理解,圖8隻是被用於表現如下的一般目的舉例說明處理器的指令處理邏輯可以在兩個或多個管芯之間被拆分。如圖8中所圖示的在第一和第二管芯802、804間的處理器邏輯的具體分配不應該被看作是限制的。
可以設計至少一種用於在兩個管芯802、804間分配處理器邏輯的分配方案,例如出於改善功率密度的考慮。就是說,處理器經常努力達到一個等於或小於預定閾值的每區域電流值。相對高的功率密度區需要相對大的電流量。通過將高功率密度區的一部分邏輯分配到第一管芯,並將高功率密度區的其餘部分邏輯保持在第二管芯,可以緩解對該區域的實施方式的限制,而產生較低功率密度的設計。這種劃分高功率密度區邏輯以減少其覆蓋區並及降低其功耗的能力只是圖8所圖示的堆疊方法的一個優點。如下文馬上就要解釋的那樣,這樣的方法還可以實現其他優點。
圖8圖示出圖7中所圖示的標量處理器管芯700的指令處理邏輯可以被劃分,使得執行邏輯704被劃分到第一管芯802,而數據高速緩存706被劃分到第二管芯804。執行邏輯704可以被放置在第一管芯802的正面上,數據高速緩存706可以被放置在第二管芯804的正面上。數據高速緩存邏輯706和執行邏輯704可以進一步被劃分,使得當第一管芯802被堆疊在第二管芯804頂部上時,數據高速緩存邏輯706與執行邏輯704重疊。例如,邏輯可以被劃分,使得當兩個管芯802、804被堆疊時,數據高速緩存706的前沿830與執行邏輯704的前沿820重疊。
圖8中還圖示了標量處理器邏輯的進一步劃分。例如,圖7中所圖示的調度邏輯708已經被劃分到兩個邏輯部分708a和708b中,這兩個邏輯部分已經被分配到分立的管芯。另外,圖8圖示出L3高速緩存可以被劃分在兩個管芯中,同樣,存儲器控制器(「mem」)、L2高速緩存、退役邏輯(「ret」)、整數寄存器文件(「ireg」)、浮點寄存器文件(「freg」)、輸入/輸出邏輯(「I/O」)、取邏輯(「取」)、浮點執行邏輯(「fp」)和指令隊列邏輯(「iq」)也可以被劃分。
轉到圖9,在圖8中圖示的多管芯方法下,圖4和圖7中圖示的加載訪問環420的新數據通道420a更短,且更具時間效率。具體地說,圖9圖示了一個實施例的加載訪問數據通道420,其中,處理器的邏輯已經被拆分,使得第二管芯904的數據高速緩存706和第一管芯902上的執行邏輯704重疊,使得數據高速緩存706的前沿830與執行邏輯704的前沿820重疊。(雖然在圖9中沒有示出,但是本領域的技術人員將會認識到,通用寄存器文件702也可以被拆分在兩個管芯902、904間,例如如圖8中所圖示的那樣)圖9圖示出新加載訪問數據通道420a更有效率,在於已經從數據高速緩存707讀出加載數據後,數據不需要為了到達執行邏輯704的前沿820而沿著執行邏輯704的整個長度傳輸。而是,數據可以經由導電的管芯內接口275,被直接傳輸到執行邏輯704的前沿820。以這種方式,數據不需要花時間穿過執行邏輯704,這樣就避免或減少了從數據高速緩存706獲取期望的加載數據到執行邏輯704前沿的延時(見圖7的730)。對於圖7中參考標號732所表示的數據通道部分也可以實現相似的延時降低。
除了上面討論的時間效率外,圖9中圖示的實施例還可以提供有益的熱管理效果。就是說,對至少某些處理器實施例,執行邏輯704中的執行單元代表相對「熱」的邏輯塊。就是說,它們有著大量內部電晶體切換,因此比其他塊產生相對更多的熱量。相反,對至少某些實施例,數據高速緩存706是相對「冷」的邏輯塊,它不產生「熱」塊那麼多的熱量。因此,圖9中圖示的實施例享受了將「熱」塊和「冷」塊堆疊使得它們至少部分重疊的額外好處。這樣的熱/冷堆疊可以使有害熱效應最小化,其中所述有害熱效應可能由在多管芯處理器中堆疊「熱」塊使得它們互相重疊而產生。就是說,冷塊可以被有效地用作熱沉,以消散來自熱塊的熱量。
圖10圖示出將調度邏輯708劃分到兩個部分708a、708b也可以產生圖5和圖7中圖示的調度執行數據通道520的效率,其中這兩個部分708a、708b各自被分配到不同的管芯1002、1004。圖10圖示出新的調度執行數據通道520a也享受了通過管芯內接口275的管芯到管芯通信的效率。管芯內通信的每一個只包括通過管芯到管芯接口275在彼此重疊的邏輯元件708a和708b、704和706之間通信所包括的時間。
圖11圖示了多管芯處理器1100的實施例,該多管芯處理器1100已經被劃分,使得用於執行流水線300(例如,見圖3)的階段302、304、306、308、312、313、314的邏輯部分已經被分配在兩個管芯1102、1104之間。流水線階段的邏輯已經被分配在兩個管芯1102、1104之間,使得流水線的通信信號經由管芯到管芯接口275,沿著第一管芯1102和第二管芯1104之間的鋸齒形通道1106,訪問流水線狀態邏輯的被分配部分。這種類型的分配在某些實施例中可能是有利的,因為沿鋸齒形通道的管芯到管芯通信是更有效率的,在於它們可以減少通道長度,因而提高性能。
另外,圖11圖示出多管芯處理器的至少一個實施例1100可以包括如上所述的I/O突點212和熱沉210。
圖12圖示了多管芯處理器的至少一個實施例,其中標量平面布局圖1200的陣列1208被拆分並分配在兩個管芯1202、1204之間。陣列1208可以是任何陣列,包括通用寄存器文件、高速緩存、浮點寄存器文件或者微代碼ROM(只讀存儲器)。圖12圖示出陣列可以被拆分為第一部分1208a和第二部分1208b,這兩個部分可以分別被分配到不同的管芯1202、1204。當兩個管芯1202、1204被堆疊時,兩個邏輯部分1208a、1208b可以至少部分重疊。以這樣的方式,通過利用管芯到管芯接口(見圖2的275)以幫助重疊部分1208a、1208b之間的通信,可以減少陣列訪問時間,因為陣列的總長度減少了。在某些實施例中這可能是有利的,例如,在陣列是寄存器文件陣列的情況下為了減少寄存器之間的總的最壞情況轉移時間。
當然,應該注意到,兩個部分1208a、1208b可以但非必需彼此完全重疊。例如,為了補償可能與「熱」處理器邏輯塊彼此重疊部分相關聯的潛在熱效應,可以將重疊部分偏移,使得部分1208a、1208b只有一部分彼此重疊。
圖13圖示了多管芯處理器布局圖的至少一個另外的實施例。圖13圖示出標量處理器1300的平面布局圖,包括整數執行單元1306、加載/存儲執行單元1308和浮點執行單元1310。執行單元邏輯塊1306、1308和1310可以被分配在兩個管芯1302和1304的正面之間。圖13圖示出執行單元邏輯塊1306、1308、1310可以被分配,使得整數執行單元1306和加載/存儲執行單元1308被分配到第一管芯1302,而浮點執行單元1310可以被分配到第二管芯1304,從而當第一管芯1302和第二管芯1304被堆疊時,它們至少彼此部分重疊。這種類型的分配在某些實施例中是有利的,至少因為在兩個管芯1302、1304間拆分執行單元1306、1308、1310允許了該執行單元具有多至兩倍的電晶體密度,並因此可以通過縮短通道長度延時來提高性能。
圖14圖示了多管芯處理器布局圖的至少一個另外的實施例。圖14圖示出標量處理器1400的平面布局圖,包括調度邏輯1408。調度邏輯1408可以被劃分為兩個邏輯部分1408a和1408b。例如,調度邏輯1408可以被劃分為算術調度部分1408a和存儲器請求調度部分1408b。兩個邏輯部分1408a和1408b可以被分別劃分在第一管芯1402和第二管芯1404間,使得當第一管芯1402和1404被堆疊時,它們至少彼此部分重疊。這些重疊的部分可以工作以協作完成用於執行指令的調度操作。這種類型的分配在某些實施例中是有利的,至少因為可以增加調度邏輯1408的信號帶寬。因此,通過允許不止一個信號在調度部分1408a、1408b之間同時傳輸,提高了性能。
圖15圖示了多管芯處理器布局圖的至少一個另外的實施例。圖15圖示出標量處理器1500的平面布局圖包括浮點執行邏輯1508。浮點執行邏輯1508可以被劃分為兩個邏輯部分1508a和1508b。例如,邏輯1508可以被劃分為非SIMD(單指令多數據)浮點執行邏輯部分1508a和SIMD浮點執行邏輯部分1508b。兩個邏輯部分1508a和1508b可以被分別劃分在第一管芯1502和第二管芯1504間,使得當第一管芯1502和第二管芯1504被堆疊時,它們至少彼此部分重疊。這種類型的分配在某些實施例中是有利的,至少是由於上述的涉及電晶體密度增加和信號帶寬增加的那些原因。
圖16圖示了多管芯處理器布局圖的至少一個另外的實施例。圖16圖示出標量處理器1600的平面布局圖,包括地址生成1608。地址生成邏輯1608可以被劃分為兩個邏輯部分1608a和1608b。兩個邏輯部分1608a和1608b可以被分別劃分在第一管芯1602和第二管芯1604間,使得當第一管芯1602和第二管芯1604被堆疊時,它們至少彼此部分重疊。同樣,這種類型的分配在某些實施例中是有利的,至少是由於上述的涉及電晶體密度增加和信號帶寬增加的那些原因。
雖然圖8至圖16圖示了多管芯處理器的各種實施例,其中處理器的指令處理邏輯被分配在兩個管芯中,但是提供這些實施例是為了說明的目的,它們不應該被理解為是限制的。例如,圖8至圖16中圖示的任意一個或多個具體劃分和/或分配的實施例可以被單獨實施,或者結合其他這樣的實施例實施。就是說,例如,在單個多管芯處理器中,圖9中所圖示的劃分可以結合圖12、13、14、15和/或圖16中圖示的劃分被實施。
同樣作為示例,雖然所圖示的實施例表示了雙管芯處理器,其中每一個管芯其上設置有處理器的邏輯部分,但是處理器的邏輯也可以被劃分在多個管芯中。例如,面對面的管芯可以重疊,使得第一頂管芯的一部分和第二頂管芯的一部分與第三底管芯重疊。在多管芯上被劃分的邏輯,無論數目多少,都協作工作,以執行一個或多個指令。
就是說,如這裡所公開的那樣,被分配到分別的多個管芯的邏輯部分可以被調用,以執行與指令相關聯的一個或多個執行操作。邏輯部分工作以協作完成執行操作,例如對執行流水線(例如,見圖3中圖示的示例流水線300)所示出的那些操作。這些執行操作可以包括但不限於地址生成、指令指針生成、取指令、將指令解碼為微操作、重命名寄存器以消除某類數據依存性、分派、調度、執行和退役。同樣地,執行操作可以包括響應於指令而執行的子指令級任務。
邏輯部分可以被分配在多個管芯中,使得某些功能被拆分。就是說,地址生成單元邏輯可以被拆分為第一部分和第二部分,第一部分被分配到第一管芯,第二部分被分配到第二管芯。第一和第二邏輯部分可以至少部分重疊,並可以一起動作以協作執行地址生成單元的操作。類似地,調度單元可以被拆分,諸如通用寄存器文件、高速緩存、浮點寄存器文件或微代碼存儲器陣列之類的陣列也同樣可以被拆分。存儲器控制器也可以被拆分,高速緩存、翻譯後援緩衝器(translation lookaside buffer)、解碼邏輯、重命名邏輯、取邏輯、退役邏輯和浮點執行單元邏輯也同樣可以被拆分。
如上所示,邏輯部分也可以被分配,使得不是拆分邏輯塊,而是將用於連續的流水線階段的完整邏輯塊分配在處理器的多個管芯中。這樣的流水線階段邏輯的分配可以產生如圖11所圖示的通過管芯到管芯接口275的鋸齒形通信通道1106。
與執行流水線的執行階段相關聯的執行操作還可以包括由執行單元執行諸如整數或浮點指令代碼之類的算術指令代碼。這裡使用的術語「指令代碼」指的是包括任何可以被諸如浮點執行單元、算術邏輯單元或加載/存儲執行單元之類的執行單元理解和執行的工作單元。指令代碼可以是微操作。
與執行流水線階段相關聯的執行操作還可以包括由執行單元執行諸如存儲器讀或存儲器寫指令代碼之類的存儲器指令代碼。
前面的討論公開了多管芯處理器的經選擇的實施例。諸如這裡所描述的多管芯處理器1702可以被利用在諸如圖17中圖示的處理系統1700之類的處理系統上。例如,系統1700可以被用來執行指令集的一個或多個指令。為了本公開的目的,例如,處理系統包括任何擁有諸如數位訊號處理器(DSP)、微控制器、專用集成電路(ASIC)或微處理器之類的處理器的處理系統,其中這些處理器是如上面討論的實施例中所描述的多管芯處理器。處理系統1700代表基於Itanium和Itanium2微處理器以及Pentium、PentiumPro、PentiumII、PentiumIII、Pentium4微處理器的處理系統,所有這些微處理器可以從Intel公司獲得。也可以使用其他系統(包括擁有其他微處理器的個人計算機(PC)、工程工作站、個人數字助理和其他手持裝置、置頂盒等)。系統1700的至少一個實施例可以執行可從Microsoft公司獲得的WindowsTM作業系統版本,不過也可以使用例如其他作業系統和圖形用戶界面。
處理系統1700包括存儲器系統1705和處理器1702。存儲器系統1705可以存儲用於控制處理器1702操作的指令1740和數據1741。存儲器系統1705是存儲器的一般化表示,可以包括多種形式的存儲器,例如硬碟驅動器、CD-ROM、隨機訪問存儲器(RAM)、動態隨機訪問存儲器(DRAM)、靜態隨機訪問存儲器(SRAM)、快閃記憶體以及相關電路系統。存儲器系統1705可以存儲由數據信號代表的指令1740和/或數據1741,這些指令可以被處理器1702執行。
處理系統1700包括接口部分1704。不同於處理器1702的第一管芯102和第二管芯104之間的管芯到管芯接口275,接口部分1704可以被耦合到管芯102、104中的一個或兩個。接口部分1704會產生處理器1702和系統1700其他部件之間的部件間信號。例如,接口部分1704可以產生處理器1702和存儲器系統1705之間的部件間信號。舉例來說,接口部分1704可以產生處理器1702和存儲器系統1705之間的信號,以執行諸如從存儲器的數據取出讀操作或到存儲器的數據寫之類的存儲器事務。接口部分1704還可以產生處理器1702與諸如RF單元、鍵盤、外部存儲器設備、監視器、滑鼠等的其他系統部件1707之間的信號。
在前面的描述中,公開了多管芯處理器的裝置和系統的各個方面。為了說明的目的,給出了具體的數字、示例、系統和配置,以提供更徹底的理解。但是,對本領域的技術人員而言清楚的是,所描述的裝置和系統可以不用這些具體細節也能被實施。對本領域的技術人員而言清楚的是,可以做出變化和修改,而不脫離在較寬方面下的本發明。雖然已經示出並描述了本發明的具體實施例,但是權利要求在其範圍之內包括了所有這些變化和修改,它們都落在本發明的真正範圍之內。
權利要求
1.一種裝置,包括具有第一正面和第一背面的第一管芯,所述第一管芯包括第一邏輯部分;具有第二正面和第二背面的第二管芯,所述第二管芯包括第二邏輯部分;所述第一和第二管芯彼此正面相對地耦合在一起;其中,所述第一邏輯部分和所述第二邏輯部分將協作執行指令。
2.根據權利要求1所述的裝置,其中所述第一和第二管芯還被耦合使得所述第一邏輯部分和所述第二邏輯部分至少部分地重疊。
3.根據權利要求1所述的裝置,其中協作執行指令還指響應於指令,協作完成子指令級任務。
4.根據權利要求1所述的裝置,還包括在所述第一和第二管芯的相對表面之間的導電的管芯間接口。
5.根據權利要求4所述的裝置,其中所述管芯間接口被設置在所述第一管芯的所述正面的子集與所述第二管芯的所述正面的子集之間。
6.根據權利要求5所述的裝置,其中所述第一管芯的所述正面的所述子集是中央區。
7.根據權利要求5所述的裝置,其中所述第二管芯的所述正面的所述子集是中央區。
8.根據權利要求5所述的裝置,其中所述第一管芯的所述正面的所述子集是周邊區。
9.根據權利要求5所述的裝置,其中所述第二管芯的所述正面的所述子集是周邊區。
10.根據權利要求4所述的裝置,還包括接口部分,所述接口部分可操作地耦合到所述第一邏輯部分和所述第二邏輯部分中的至少一個,以產生處理器與部件之間的部件間信號。
11.根據權利要求10所述的裝置,其中所述接口部分被耦合到所述第一管芯。
12.根據權利要求10所述的裝置,其中所述部件是存儲器系統。
13.根據權利要求1所述的裝置,其中所述第一邏輯部分和所述第二邏輯部分共同形成地址生成邏輯。
14.根據權利要求1所述的裝置,其中所述第一邏輯部分和所述第二邏輯部分共同形成調度邏輯。
15.根據權利要求14所述的裝置,其中所述第一邏輯部分包括算術調度邏輯,並且其中所述第二邏輯部分包括存儲器請求調度邏輯。
16.根據權利要求1所述的裝置,其中所述第一邏輯部分包括陣列的第一部分,並且其中所述第二邏輯部分包括所述陣列的第二部分。
17.根據權利要求16所述的裝置,其中所述陣列是寄存器文件陣列。
18.根據權利要求16所述的裝置,其中所述陣列是微代碼存儲器陣列。
19.根據權利要求1所述的裝置,其中所述第一邏輯部分包括熱邏輯塊,並且所述第二邏輯部分包括冷邏輯塊。
20.根據權利要求19所述的裝置,其中所述第一邏輯部分與所述第二邏輯部分至少部分地重疊。
21.根據權利要求19所述的裝置,其中所述第一邏輯部分還包括執行單元,並且其中所述第二邏輯部分還包括數據高速緩存。
22.根據權利要求1所述的裝置,其中所述第一邏輯部分包括第一執行單元,並且所述第二邏輯部分包括第二執行單元。
23.根據權利要求22所述的裝置,其中所述第一執行單元包括整數執行單元,並且所述第二執行單元包括浮點執行單元。
24.根據權利要求22所述的裝置,其中所述第一執行單元包括浮點執行單元,並且所述第二執行單元包括單指令多數據執行單元。
25.根據權利要求1所述的裝置,其中所述第一邏輯部分被設置在所述第一管芯的所述正面。
26.根據權利要求1所述的裝置,其中所述第二邏輯部分被設置在所述第二管芯的所述正面。
27.根據權利要求1所述的裝置,其中所述第一邏輯部分包括用於執行第一流水線階段以執行所述指令的邏輯;以及所述第二邏輯部分包括用於執行第二流水線階段以執行所述指令的邏輯。
28.根據權利要求27所述的裝置,其中用於額外流水線階段的邏輯塊被設置在所述第一和第二管芯上,使得所述流水線的信號通道沿著所述第一和第二管芯之間的鋸齒形通道。
29.一種處理器,包括在第一管芯上的第一分區;在第二管芯上的第二分區;和執行邏輯,用於調用所述第一分區和所述第二分區以進行與指令相關聯的執行操作。
30.根據權利要求29所述的處理器,其中所述執行操作還包括調度操作。
31.根據權利要求29所述的處理器,其中所述執行操作還包括地址生成操作。
32.根據權利要求29所述的處理器,其中響應於所述指令,所述執行邏輯還將調用在第一管芯上的分區以調用與所述指令相關聯的第二執行操作,並將調用在所述第二管芯上的分區以執行與所述指令相關聯的第三執行操作。
33.根據權利要求32所述的處理器,其中所述第二執行操作還包括與指令流水線的執行階段相關聯的操作。
34.根據權利要求32所述的處理器,其中所述第二執行操作還包括指令指針生成操作。
35.根據權利要求29所述的處理器,其中所述執行操作還包括指令取操作。
36.根據權利要求29所述的處理器,其中所述第二執行操作還包括解碼操作。
37.根據權利要求29所述的處理器,其中所述第二執行操作還包括重命名操作。
38.根據權利要求29所述的處理器,其中所述第二執行操作還包括退役操作。
39.一種裝置,包括第一管芯,包括執行單元;和第一陣列片;和第二管芯,包括第二陣列片,所述第二陣列片通過管芯到管芯耦合被耦合到所述第一寄存器文件片,以連同所述第一陣列片一起作為陣列來協作操作。
40.根據權利要求39所述的裝置,其中所述第一管芯還包括第一調度片;以及所述第二管芯還包括第二調度片,所述第二調度片通過管芯到管芯耦合被耦合到所述第一調度片,以連同所述第一調度片一起作為調度單元來協作操作。
41.根據權利要求39所述的裝置,其中所述第一管芯還包括第一地址生成片;以及所述第二管芯還包括第二地址生成片;其中,所述第一地址生成片被耦合到所述第二地址生成片,以連同所述第二地址生成片一起作為地址生成單元來協作操作。
42.根據權利要求39所述的裝置,其中所述陣列是寄存器文件。
43.根據權利要求39所述的裝置,其中所述陣列是微代碼存儲器陣列。
44.根據權利要求39所述的裝置,其中,一個微處理器包括包括所述第一分區的所述第一管芯,包括所述第二分區的所述第二管芯,以及被設置在所述第一管芯上的接口,其中所述裝置是一個系統,還包括與所述微處理器的所述接口部分耦合的存儲器,所述存儲器用於存儲指令,所述指令當被所述微處理器執行時,引起所述微處理器調用所述第一管芯上的所述第一分區和所述第二管芯上的所述第二分區。
45.根據權利要求38所述的系統,還包括包括射頻單元的額外系統部件。
46.根據權利要求1所述的裝置,其中所述第一邏輯部分包括低功率密度區,並且所述第二邏輯部分包括高功率密度區。
47.根據權利要求46所述的裝置,其中所述第一邏輯部分與所述第二邏輯部分至少部分地重疊。
全文摘要
本發明公開了多管芯處理器裝置和系統。用於執行一個或多個指令的處理器邏輯被分配在兩個或更多個面對面堆疊的管芯中。處理器包括在堆疊管芯之間的導電接口,以幫助管芯到管芯的通信。
文檔編號G06F17/50GK1630080SQ20041009556
公開日2005年6月22日 申請日期2004年11月29日 優先權日2003年12月16日
發明者布賴恩·P·布萊克, 尼古拉斯·G·薩姆拉, M·克萊爾·韋布 申請人:英特爾公司