如今多核已不算是什么新鮮的詞匯,甚至很多人對多核技術感到厭煩——因為已經看得多了。而在各種文獻和媒體中,常常會看到關于多核處理器缺乏相應的軟件的評論與報道,這些評論與報道來自專家、媒體甚至是芯片設計者本身。
多核芯片往往如潮水般來去匆匆,過去人們為多核芯片感到興奮與激動,點燃著瞬間激情,可是又像黑夜中的煙花那樣空留絢麗的色彩后就歸于寂靜。
這次卻不同了,在今年的ISSCC(國際固態電子電路會議)上,Intel展示了80核Tera-Scale研究芯片。留意一下Intel所用的詞匯,“Tera-Scale”的定義可將其從能夠把TRP(TeraFLOPS Research Processor)從其他的雙核、四核等處理器區分開。雖然按照Intel的定義,“Tera-Scale”只是多核處理器的一個系列,但卻是下一代多核架構。Intel指出,“它將帶我們進入TeraFLOP(每秒兆兆級浮點運算)和兆兆位處理能力的全新領域中。”
Intel的戰略:多核原理
長久以來,將理想化的工程與商業戰略分離并且使其獲得成功,是非常困難的。Intel一直致力于在性能開發上做執牛耳者。從用戶的角度上來講,在挑選臺式機和筆記本這樣的產品時,性能是首要考慮的因素。處理器的性能與其內部時鐘頻率息息相關,可是高頻和高功耗產生的漏電,將會導致高溫。Intel將在45nm工藝中采用high-k(高介電率)絕緣體技術。借助于metal gate(金屬柵極技術),Intel希望其能夠全面改善芯片漏電情況若,若漏電降為原先的十分之一,則性能可提高20%。同時,由于45nm的低寄生效應,晶體管開關功耗也會降低百分之三十。為了更好地理解IntelTRP芯片的基本原理,這里對high-k和45nm硅技術結合的效益進行一個估算。粗略算來,我們假設high-k45nm技術使芯片的功率降低到先前半導體工藝的二分之一,在同樣峰值包絡功率下,新的功率存儲使得VDD電壓值高出了大約1.4倍(也就是2的平方根),由于VDD和頻率范圍可被近似為呈線性變化,包括20%金屬柵極晶體管開關效應引起的頻率增長在內,頻率提高1.7倍。在此,我們忽略了頻率限制因素,比如時鐘分布,晶圓內部與晶圓之間的差異等等。high-k絕緣體技術能給單核或多核芯片提供可觀的短期成果。而對于長期投資來說,依據摩爾定律的優勢,Intel已經在多芯體系的道路上領跑了2~3年,在世界上,當頻率,功率和通信等重要角色發生變化,如何為用戶設計一個多核平臺?如果只是一個模擬平臺,那么如何在大負荷工作量中快速地執行程序來獲得結果?Intel沒有選擇的余地,只有為研究人員量身設計芯片。在國際固態電路大會上展示了Intel65nm技術中的8層金屬設計初衷,是用來“證明100W以下的TeraFLOP性能”,盡管這只是其功能之一。
一個芯片,更是一個系統
把單處理器的速率與主體內存匹配起來是一件很難的事情,如果傳統的單核處理器是通過高速緩沖存儲器(cache)來解決CPU和內存之間的速度差異的話,如今的多核處理器由于需要通過核與核之間的合作來實現數據共享,因此復雜性大大增加。和單核處理器相比,多核處理器同樣表現出對于任務程序以及數據局部性的依賴,以及數據可執行代碼的數據共享特性。Intel的架構師們致力于研究用戶芯片的核內存,核間通信以及工作量類型,但是和他們的前人一樣,還是無法確定一個嚴密又明確的工作量。
可以理解,Intel仍然無法為未來的Tera-Scale(兆兆規模)芯片下一個明確的定義,畢竟,目前這只是一個研究型的項目。然而軟件和系統的開發者們卻被鼓勵著繼續完成這個體系。那么Intel團隊在開發的時候,他們對于體系的定義又是什么呢?有一點可以肯定,TRP不會采用80核技術,80是一個不可思議的數字,雖然80核芯片的晶圓尺寸較好地平衡了可用晶圓空間以及能效(<100W@ITF)。
第一個另人感興趣的地方是Intel采用的平鋪式“瓷片”(tile)結構(圖1),小的內核像“瓷片”一樣重復地平鋪開來,每個“瓷片”內都包含自己的處理引擎(Processing Engine,簡稱PE),局部內存和通信路由,如同臺式機和服務器的網絡連接一樣,每個瓷片使用自身的路由成為芯片網狀配置的一部分。
在Intel所選擇的這種結構中,芯片能方便地檢測出內含單元數,不同的“瓷片”數目決定了不同的功能應用和價位。傳輸延時,時鐘分布,功率減少和部分功率管理等只要對一個“瓷片”進行了優化處理,對于整個芯片也將行之有效。此外,大型芯片兩個邊緣上的瓷片之間通過路由網絡進行通信,因此不用擔心由于電磁在硅中的傳播速度限制0.8c(c是光在真空中的傳播速度)從而影響了通信同步。根據Intel表示,渡越時間(the time of flight)(在一個時鐘周期內)不會成為問題所在。因為“瓷片”的路由通信方式能夠很好地得到管理從而具有冗余以及高可靠性。“瓷片”架構的任務一旦完成編譯,將在虛擬處理器上進行執行,把“瓷片”當作內存管理模塊來處理,提高了物理內存資源的系統可用性。因此“瓷片”的高利用率提高了性能,較少的“瓷片”不需要再編譯,多個線程能夠在同一芯片中同時運行。
Intel的這種結構體系,提供了一個研究通用處理器軟件和芯片性能的機會,Intel或許會將研究成果用來連接IA架構和NoC(片上網絡),而這也許就是未來的服務器。
路由和每個“瓷片”結為一體,能夠實現可避免死鎖的雙32位帶寬的邏輯通道以及非阻塞交叉開關(non-blocking crossbar);當時鐘頻率為4GHz時,帶寬可達到80GB/s。然而,在訪問周期內,有效的通道對象用來完成數據傳輸。由于雙通道采取用double pumped(兩倍汞,指時鐘頻率能執行兩次操作,上升沿和下降沿同時傳輸信號)來節省芯片內部空間,但是也帶來了一些新的問題。從表面上看,這種方法帶來了額外的功耗,但當它被切斷時,兩倍泵只會對路由產生局部影響。不過doublepumped的采用會使時鐘負載增加。Intel的分析報告指出,在最壞的狀況下,交叉區域的50%就會用于補償全局時鐘負載和數據通道的RC效應。通道采用16x6位的緩沖隊列管理和基于Intel FLIT(流程控制單元)的32位數據字(參照圖2)。流程控制邏輯依照FLIT的要求來解碼。
軟件和硬件工作可以用Intel的NoC(片上網絡)封裝形式來劃分。它定義了三種可能的32位字——其中包括了路由信息,基本處理單元控制和數據。其中的每一部分開頭都包含6位控制字段。該字段包括兩個通道的流程控制(FC),通道ID(L),FLIT有效位(V)以及位標志,用來指示控制字段位于數據包的頭部還是尾部。鏈表頭明確定義了路由能夠保持10個3位地址指向8個相鄰PE,這里假定為北,東北,東,東南,南,西南,西和西北(N,NE,E,SE,S,SW,W,NW),若添加第二個鏈表地址FLIT,那么任意一個PE就能直接尋址其他10個以上的PE。我們注意到,軟件設計中定義了在不互相沖突的情況下,最優的連接路線和通道,軟件必須能夠利用硬件來支持動態路由和PE通道分配,不同的線程在不同時間能夠同步執行,或者在不同的芯片內能夠照常運行,或者只是在有問題的PE周圍標記,即便是對靜態路由而言,這也是一個艱巨的任務。
6位控制字段包含一類或兩類32位數據:一個32位信息控制字段用于PE定位和32位數據字傳輸。控制字段能夠請求多種行為,比如發送原始PE數據到外部內存,或是將目標PE改變為睡眠狀態或是喚醒。PE通過開關晶體管完成電源切換,由于可在數周期之內完成,因此優于用開關把電源打開和關掉的方法。讓此類電路有4GHz的時鐘頻率著實是一項挑戰。
同步接口與光速

在設計中整合了輪循仲裁,但其中不包含可能增加復雜性的優先處理機制。此部分任務將留給軟件完成,從而確保在對處理器中關鍵數據進行訪問時,只能就近映射。輪循仲裁使用未決的FLIT信息,用于在數據傳輸之前,于源和目的之間建立一個完整的路徑。
同步接口是“瓷片”體系有效利用并得以大規模結合的關鍵技術。考慮到功率、電壓、溫度,大型芯片處理差異以及硅中電磁傳播的極限速度,要想同步時鐘幾乎不可能。假設硅中電磁傳播的速度接近于0.8c(0.8×3×lO2m/s),我們發現lmm的傳播時間是4ps,那么25mm(接近于TRP的21.72mm)用時100ps。4GHz頻率周期是250ps。路由使用固定的頻率,相移容差同步接口通過四層的38位帶寬的FIFO進行同步(如圖3)。
若接口所有的邏輯塊與寄存器塊被相同的頻率同步,而不是被相同的相位同步時,同步接口可以用來補償未知的相位差。由于在可能觸發亞穩態的時間內,目標寄存器正進行邏輯層的轉變,所以均步的同步器(mesochronous synchronizer)可以提供一個避免數據傳輸衰減的解決方案。在亞穩態中,超越時鐘界限的概率大大降低。圖3是一個四路HFO,作為接口的一部分,它被用做亞穩態監測器。原則上講,電路必須要有一個掃描寄存器用來編程延時線以優化性能:一個周期或半周期內的最小延時用來消除亞穩狀態。Intel工程師們采取掃描的方式,亞穩態可通過HFO某位上出現不同數據這一特征來識別。根據這點,固定的始終頻率在理論上僅僅需要一個亞穩態同步,事實上,由于溫度,電壓或不同工作的電效應,需要一個再同步過程。在現有的規范中,還不支持中斷的使用。
在保持亞穩態接口完整時,同比縮放頻率和VDD電壓非常困難,除非大部分的設備規模化。在一個分布式路由體系中,不妨礙周圍處理器通信的接口非常少。設計者把合理的門控時鐘、NMOS休眠晶體管和偏置電路添加在低漏電晶體管中。
起步
TRP芯片用于科研的可行性只是一個開始,許多Intel的工程師以及科研院所希望將該芯片用于軟件工具的研發,而軟件工具正是使多核架構得到利用的最重要的一個方面。
我們要了解它的某些關鍵屬性,因為這反映了設計者的一些思想。PE包含了兩個獨立的九級高速流水線單精度浮點單元,允許在每個周期內接受新數據和指令。在每個周期里,高性能的處理器會從本地32位寄存器中讀出操作數,或從2KB的數據內存中讀取64位數據,在3KB單周期指令內存中有效地執行指令。對于能夠在4GHz或者更高頻率上執行的PE來說,指令和本地數據內存相對來說較小。
Intel對內存和路由的應用能使我們了解到CPU在圖形和A/V域程序中的常規運算。同理,每個“瓷片”將更多地依賴于三維內存。事實上,連接3D內存的路由,較小的本地內存和。瓷片以及為了內存資源各個“瓷片”互聯的可能性,預示著出現一種“瓷片”指向的3D內存結構。它能夠給用戶提供高速的數據訪問,從而與小的本地內存相互匹配。它還能夠與周邊單元共享,實現快速訪問和共享操作數。對最佳應用性能的探究正在孜孜不倦地進行著,Intel展示了面向80核單元的接口,能夠不斷監視各類參數比如,“瓷片”活躍度,性能,還能間接監視功耗。
連接到80核芯片連接板上,控制和監視面板能使開發者自定義頻率和電壓條件值,執行自檢,讀取萬億級FLOPS運行估算值以及PE與路由的可視化監視。
為什么這個芯片工作在100W以下卻仍有萬億級FLOPS的性能呢?我們能夠窺出一些端倪,首先是它本身的并行結構,其次是在同步時鐘至少要5GHz的基礎上,同步接口把全局時鐘分布功率減少了大約2W(整體的2%)~5W;還有對低漏電晶體管,偏置電路,門控時鐘和休眠晶體管的使用;給每個PE分配的小型內存等等。網絡路由的能耗占整個“瓷片”網絡能耗的39%。
Intel80核萬億級處理器不是為了能夠迅速轉化為產品,這只是一個試驗項目。通過TRP項目的啟發,有助于開發圖形加速器或將超級計算機延伸至IA處理器。那么這個研究是否對協處理器接口或是內存映射工程有所幫助?是否揭示了如何互連IA處理器中大規模使用的“瓷片”?一條來自Intel德國研發中心的信息或許能展示Intel在萬億級計算機技術研究上的進展程度。在德國,Intel正在研究一種面向未來的萬億級系統,由高速FPGA環繞的IA處理器構成,它很好地兼顧了實體系統硬件運行和軟件應用,從而獲得可觀的成果。
德國研發的系統(參見圖5)關鍵特性是全程IA-32研發芯片和大量的FPGA,通過程序,設計者新的思想必須要經過軟硬件聯調測試。
研發的目的是給未來的芯片,容錯系統,多媒體擴展和加速,以及計算機安全性擴展定義微體系結構。
對TRP研發的目的不僅僅是證明Intel有開發至少100W的萬億級FLOPS處理器的能力。Intel正在探尋網狀結構,瓷片模式和細晶粒功率管理模式。至少,這些都是為繼續致力于開發高性能高效率處理器積攢寶貴的經驗。
Intel萬億級研究工程的初步報告一定程度上展示了Intel在萬億級結構體系研發上的一些努力。當然,這只是冰山一角。