假設(shè)不考慮金錢、時間或商業(yè)限制,并且只有物理學(xué)是唯一的限制,您將如何設(shè)計最終的計算機(jī)處理器?它會大規(guī)模并行,以極高的頻率運行,并使用奇異的光學(xué)或量子互連嗎?它會運行熟悉的軟件,如 x86 或 PowerPC,還是有新的優(yōu)化指令集?它會很大還是很?。克欠裥枰?a href="http://www.wenjunhu.com/v/" target="_blank">智能編譯器或獨特的軟件結(jié)構(gòu)?
多年來,為了讓處理器運行得更快,設(shè)計人員必須做的就是提高時鐘速度。在功耗和相關(guān)的散熱趕上速度增加之前,這一直很好。超越這一點,走得更快意味著除了走得更快之外還要做一些事情。
多核速度更快,但是……
從此開始了多核時代。如果兩個頭比一個好,那么四個肯定是兩倍好。在某種程度上,這個公理是正確的。但是今天的雙核和四核處理器的運行速度并不比上一代快兩到四倍。
這有兩個原因:硬件和軟件。當(dāng)今絕大多數(shù)多核芯片的擴(kuò)展性都不是很好,因此四核并不能真正提供四倍于單核實現(xiàn)的性能。片上總線跟不上,緩存一致性開銷會消耗性能,管道過于頻繁地停止等等。由于各種原因,當(dāng)核心數(shù)量翻倍時,傳統(tǒng)的微處理器架構(gòu)不會接近雙倍的性能。
在軟件方面,許多程序員不習(xí)慣或不熟悉多核編程。當(dāng)所討論的多核芯片包含不同類型的處理器內(nèi)核(通常稱為異構(gòu)架構(gòu))時,尤其如此。對一個處理器進(jìn)行編程已經(jīng)夠難了;使用單獨的工具鏈對四個不同的工具進(jìn)行編程要復(fù)雜得多。
異構(gòu)的,同質(zhì)的,還是只是龐大的?
可以提出一個論點,即不同的計算問題需要不同的資源,因此微處理器應(yīng)該包括一系列不同的處理資源。例如,一些任務(wù)可能需要信號處理能力,另一些可能需要單指令多數(shù)據(jù)矢量處理,而還有一些可能涉及復(fù)雜的決策樹和大量數(shù)據(jù)移動。
一種觀點認(rèn)為,沒有一種處理器架構(gòu)可以有效地處理所有這些不同的任務(wù)。因此,需要不同架構(gòu)的馬賽克。在極端情況下,可以設(shè)想一個處理器由截然不同的計算引擎組成,除了它們共享的包之外沒有任何共同之處。這些處理器實際上是共存的,而不是合作的。
相反的方法是選擇一個指令集并堅持下去。這無疑簡化了編程,但存在部署過于通用的處理器的風(fēng)險,這些處理器沒有針對特定任務(wù)進(jìn)行微調(diào)。另一方面,處理器是可編程的,改變軟件比改變硬件更容易、更便宜。
易于編程也不是一個小問題。延遲通常是由軟件錯誤引起的,而不是硬件問題。更復(fù)雜的是,程序員被多核處理器嚇得要死。讓一個高端處理器可靠地工作已經(jīng)夠難的了。你如何編程和調(diào)試其中的 10 個?使用一個內(nèi)核架構(gòu)進(jìn)行編程、調(diào)試和設(shè)計比處理具有不同指令集、架構(gòu)、總線、工具和調(diào)試方法的不同內(nèi)核的混合體更容易。
對比方法
英特爾和 AMD 已將大部分建議牢記在心,并生產(chǎn)了其傳統(tǒng) x86 架構(gòu)的雙核和四核版本。在某種程度上,這只是將資產(chǎn)從負(fù)債中提取出來。x86 是他們知道如何做的,向后兼容性對他們的市場至關(guān)重要?,F(xiàn)有的 x86 代碼在這些升級后的設(shè)計上運行良好,盡管它很少運行得比以前快得多,也很少使用額外的內(nèi)核。
相比之下,許多 RISC CPU 和網(wǎng)絡(luò)處理器 (NPU) 供應(yīng)商采取了截然不同的方法,將各種不同的處理器內(nèi)核和架構(gòu)混合到各種瑞士軍刀設(shè)計中。例如,IBM 著名的 Cell 處理器(圖 1)有一個通用處理器內(nèi)核和八個專用內(nèi)核,需要不同的工具和編程技術(shù)。幾條寬總線——一些環(huán),一些更傳統(tǒng)的——以各種方式連接核心。Cell 的性能令人印象深刻,但 PlayStation 程序員抱怨 Cell 是一頭難以馴服的野獸,部分原因是管理帶寬、延遲、總線事務(wù)和一致性都是游戲的一部分。
圖 1: IBM 的 Cell Broadband Engine 芯片包括九個處理器,其中一個基于 PowerPC。處理器通過元素互連總線連接,共有 12 個主控器。它被實現(xiàn)為四個反向旋轉(zhuǎn)的單向環(huán)。
將所有正確的硬件資源集中到單個芯片上是一回事。使組合可用是另一回事。具有混合架構(gòu)的大規(guī)模并行芯片結(jié)合了兩全其美:大規(guī)模多核復(fù)雜性與完全不同的工具和架構(gòu)。這就像在您的芯片中舉行聯(lián)合國會議一樣。
嚙合在一起
更好的方法是保留大規(guī)模并行部分,這是高性能的必要條件,但拋棄差異并將許多相同的處理器內(nèi)核連接到二維網(wǎng)格中。從概念上講,它與通過網(wǎng)絡(luò)連接單個計算機(jī)沒有太大區(qū)別,只是在微觀尺度上。
Meshing也有“grok-ability”的一面。程序員不難想到十個、100 或 1000 個相同的處理器內(nèi)核以相同的方式工作并以一種簡單但大部分透明的方式相互通信。1000 個元素中的每一個是否都針對給定的工作進(jìn)行了完美調(diào)整幾乎無關(guān)緊要。重要的是有 1,000 個處理器可以解決一個問題。
這種均勻的布置也有助于可擴(kuò)展性。雖然類似 Cell 的組合非常適合它們的特定任務(wù),但構(gòu)建更大或更小的 Cell 版本需要芯片制造商進(jìn)行大量的重新設(shè)計工作,接收端的程序員甚至需要更多的工作。現(xiàn)有的 Cell 代碼不會神奇地放大或縮小到具有不同資源組合的芯片。它可能根本不會運行。相比之下,在相同處理器的網(wǎng)格中增加 25% 的處理器可增加 25% 的計算能力,而不會破壞現(xiàn)有代碼。
這并不意味著設(shè)計這種類型的芯片是微不足道的。核心之間的帶寬是第一個挑戰(zhàn)。如果核心不能有效地相互通信,那么連接它們就沒有多大意義了。這種方法的一個例子是 Tilera 的 TILE-Gx100 處理器(圖 2),包含 100 個相同的內(nèi)核。在此處理器中,相鄰內(nèi)核之間的帶寬為 1,100 Gbps。每個核心在北/南/東/西方向有四個連接,100 核處理器的總帶寬為 200 TBps。大多數(shù)應(yīng)用程序很難使用其中的一小部分。即使是 Tilera 相對適中的具有 4x4 內(nèi)核陣列的 Gx16 芯片也擁有 20 TBps 的片上帶寬。
圖 2:其中一個 Tilera TILE-Gx 處理器內(nèi)核(其中 n 為 16 到 100)有效地處理內(nèi)核之間的帶寬。每個核心塊都有自己的 64 位處理器、L1 和 L2 緩存,以及與北/南/東/西方向的四個鄰居的網(wǎng)絡(luò)連接。
這種基于圖塊的設(shè)計的另一個挑戰(zhàn)是內(nèi)存延遲。如果內(nèi)存不夠接近或無法訪問,所有這些處理器都可能會停止運行。同樣,Tilera 將其設(shè)備分解為易于復(fù)制的切片,每個切片都有自己的本地 L1 和 L2 緩存。有趣的是,即使內(nèi)存是每個圖塊的本地內(nèi)存,它也可以是更大的共享分布式緩存的一部分,該緩存在所有共享者之間保持一致性。在某些情況下,程序員可能想要定義任意數(shù)量的緩存一致性島,必要時與相鄰的切片合作或忽略。
整個芯片架構(gòu)就像一個計算結(jié)構(gòu)。相同的邏輯塊、內(nèi)存塊和互連塊在行和列中復(fù)制,以制造更大或更小的芯片。就像 FPGA 或分形 Mandelbrot 圖像一樣,平鋪處理器在任何規(guī)模上看起來都是一樣的。大或小,它的編程方式相同??蓴U(kuò)展性平方。
與四核 x86 類似,但與 Cell 或 NVIDIA 芯片不同,TILE-Gx 網(wǎng)狀互連在引擎蓋下透明地工作。Mesh 流量不需要手動調(diào)整,事務(wù)也不需要手動調(diào)整以避免沖突或仲裁。盡管它位于中心,但網(wǎng)格基本上是不可見的,這正是程序員喜歡它的方式。
可擴(kuò)展性最終獲勝
與大多數(shù)生態(tài)系統(tǒng)一樣,許多不同類型的處理器將繼續(xù)存在。有些人會茁壯成長,而另一些人將勉強(qiáng)在某個特定的利基市場謀生。外部力量將淘汰牛群,就像圖形和網(wǎng)絡(luò)處理器一樣,篩選出那些不適合當(dāng)前環(huán)境的人。
在過去的幾十年里,可擴(kuò)展性和可編程性一直是關(guān)鍵。開發(fā)人員需要一種他們可以理解并能持續(xù)使用的芯片。他們想要一個增長路線圖,包括價格/性能規(guī)模的上下。讓它變得非常非??煲矝]有什么壞處。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19388瀏覽量
230588 -
芯片
+關(guān)注
關(guān)注
456文章
51060瀏覽量
425768 -
NVIDIA
+關(guān)注
關(guān)注
14文章
5063瀏覽量
103439
發(fā)布評論請先 登錄
相關(guān)推薦
評論