李文韜
(同濟大學 軟件學院,上海 201804)
在近30年的桌面系統體系結構的變遷中,除了CPU以外,桌面系統的其他部件的功能也在不斷增強。1985年的Amiga機器由于結合工作站CPU和視頻游戲處理芯片而在DOS時代實現了GUI多用戶界面。雖然Amiga公司1994年破產,但 Amiga機器也創下了百萬臺的銷量。
縱觀歷史,計算機界似乎總是在不停的重復著從前進到回退再前進的道路。
在處理器體系結構中的上一次回歸是RISC。當VAX開啟了變長指令,多尋址模式等CISC技術之后,處理器設計變得越來越復雜,純粹的 CISC很難設計,也難以實現;這時提倡精簡的RISC替代了VAX處理器體系結構稱主流技術。在1980~1990年代,RISC思想幾乎遍布所有廠商的處理器。即使CISC風格的Intel和AMD處理器也借鑒了RISC的經驗,處理器并不直接執行復雜而功能強大的 x86指令級,而將其轉換為數條簡單的內部微碼,甚至通過解釋執行的方法在一個RISC風格的核心上運行。RISC只針對最常用的簡單指令設計并優化,提供大尺寸的寄存器堆,并使用超標量多發射技術,進一步結合亂序執行以減少處理器中的暫停。
但是,今天的RISC已經背離它的宗旨越來越遠了。為了獲取更高的性能,RISC處理器(包括 CISC on RISC的x86處理器)的發射寬度越來越大,流水線越來越深,分支預測算法層次越來越多,寄存器數目也不斷增加,更值得注意的是指令集不斷被擴展。比較一下 PA-RISC,Alpha21264-EV8,SPARC IV,PowerPC G4,Power4這些最新 RISC的代表和 Pentium III/IV以及 Althron,將可發現RISC處理器并不比CISC簡單多少,而且Intel總能設計出比RISC主頻更高的CISC處理器。
在去除工藝上的差異之后,大部分RISC在Die面積、晶體管數目和最大功耗上都超過了同期的 CISC處理器。RISC處理器的大量硅片面積被不斷增大的 Cache、集成的存儲控制接口所占用,當然這也使得RISC處理器在Spec FP性能上一直領先于x86系列。但是x86處理器在工作頻率上卻遠遠超出了所有的RISC,而一般的常識卻是簡單的RISC更容易實現高主頻。在多發射超標量和存儲接口的上的重點設計制約了RISC處理器的主頻提升。對更高性能的渴望讓RISC變得越來越龐大、復雜,如今新處理器設計獲得的性能回報變得越來越少,而復雜度卻在急速增長。處理器技術又一次接近了發展瓶頸,新的技術回歸過程開始啟動,所不同的是這次回歸的是向量并行技術,而Cell是這一過程的先行者。
當桌面系統的網絡,圖形等部分也已經復雜到用專門的處理器進行處理時。為了降低生產成本,并最大限度利用集成度提高和芯片內部互連的優勢,STI選擇了Cell結構,將多個處理器和存儲,I/O控制邏輯整合到一個Cell芯片中。
2005國際固態電路年會ISSCC上最重要的一件事情莫過于,2月7號STI聯盟第一次公開發布Cell處理器的細節。在ISSCC2005會議上共有5篇論文與Cell處理器相關,涉及Cell處理器的總體結構,流處理單元,電路設計,存儲和I/O。從Cell展現的性能和微體系結構上看,無論最終是否在市場上獲得成功,它都是主流處理器設計的一個巨大飛躍。正如IBM的設計目標“supercomputer on desktop”所闡述的,Cell結合了多核心,多線程,Superscalar,功耗控制,高速存儲接口和I/O等所有處理器和體系結構設計中頂尖的技術,以及IBM最新的90納米銅互連SOI生產工藝[1]。從Cell上可以看到曾經流行的向量處理方法再次回歸,這次向量并行技術給微處理器設計帶來的前所未有的飛躍。
一個單獨的CELL芯片的組成包括[2]:1個POWER處理器單元(PPE);8個協同處理器單元(SPEs);單元相互連接總線(EIB);2個Rambus XDR內存控制器;Rambus Flex IO接口。其中,按分裂不同,可以將SPE分解成SXU、LS、SMF或者SPU、SMF。
在ISSCC2005上公布的第一款Cell性能指標包括:占用圓片Die面積 221mm2;晶體管數目234M;90納米8層銅互連低 K介質 SOI制造工藝,1.3V工作電壓下主頻為4.6GHz,預測功耗在50到80W之間,使用散熱器時的工作溫度為 85攝氏度;外部I/O互連通訊主頻為6.4GHz,I/O與存儲總帶寬超過100GB/s;9個核心同時運行10個線程;內部使用4X128位的環狀總線互連,96Bytes/Cycle;單精度浮點性能超過256GFlops,雙精度浮點超過25GFlops。
由于Intel和AMD推動x86體系結構,不斷推出高性能和大量廉價的處理器x86在每一場對決中均獲勝出。當x86和高速的RISC競爭時,它利用了和RISC相似的技術拉近了速度差距,并使得RISC已經沒有明顯的優勢。三個曾經顯赫的RISC處理器系列(Alpha MIPS PA-RISC)已經成為歷史。即使Intel自己的Itanium也快被Opteron掃出中低端服務器市場。Sun也受到了打擊,已經宣布取消下一代Ultra SPARC產品線,轉向全新的設計(MAJC?)并且開始銷售威脅自己低端產品的Opteron服務器。Power似乎還在掙扎,但這也是因為IBM有足夠的資源支持他,并保持其競爭力,并且在Power面向的高端市場(Apple MAC)上x86還缺乏號召力。
對于Intel和AMD而言,Cell是一個完全不同的競爭者。主頻的差距如此巨大,除了對x86結構大修之外別無他法來趕上性能差距。x86并非沒有任何觸動,但是不論Intel或者AMD都沒有足夠新穎的改變以跟上Cell。有傳聞說Intel現在得到了許多NVidia的專利許可[Intel + NVidia]并考慮在一個芯片上集成一打處理器核心。但是如果 Intel在一個芯片上集成超過2個P4處理器,在成本上將不會有任何優勢。最大的可能就是x86復制Cell的設計,用多個簡單的核心來加速應用并控制成本。
但是與PC處理器競爭并不是簡單的性能問題。PC用了5年時間來趕超Amiga的硬件系統,用了10年時間才用上與之類似的操作系統。相同的例子也發生在Apple的Mac平臺上。性能的優勢并不足以對PC處理器產生威脅,即使及其巨大的性能領先,關鍵的問題在軟件。Cell可以運行多個相同的操作系統,Linux+特殊的翻譯軟件,它可以用難以察覺區別的方式模擬PC,軟件和價格也將不會成為問題。
在PC市場上真正有能力對Cell性能構成威脅的不是通用CPU,而是GPU。但即使面對最先進的GPU,Cell在主頻,性能,和通訊帶寬上仍有巨大優勢,幾乎所有GPU可以加速的應用都適用于Cell,并且Cell更加通用。
服務器市場上兼容性和軟件基礎的因素要少。很多應用是可以向量化。后臺數據庫處理是服務器領域最常見的應用,現在的研究表明這類應用可以通過GPU加速,那么相同的方法也可以在Cell上使用。
然而服務器中有xml這種難以從SPE并行向量結構中獲益的應用。實際上這類應用大多是存儲I/O密集型的,特殊的存儲結構或許可以對提高性能有所幫助。單純的高性能處理器都無法提高這類應用的效率。有很多應用不能從Cell中獲得更高效率,將Sun服務器上的EDA應用移植到Cell上也幾乎不可能,因此Cell在服務器市場上的作為目前看來還只能依靠IBM對自己服務器結構的升級決策。
如果服務器需要的是上佳的分布式處理能力和靈活的擴展性,Cell無疑是最好選擇,但是應用是困擾其在服務器上廣泛應用的最大問題。
Cell的設計風格容易讓人聯想起Cray的超級計算系統。無論是熟悉的向量處理方式還是在設計過程中對性能孜孜不倦的追求。如果純粹計算峰值性能,要進入目前的Top500行列只需要8顆Cell芯片,也就是說如果有能力讓兩個PS3協同工作,任何人都可以進入Top500。560個 Cell芯片就可以獲得第一的排名。
另外的超級計算應用需要大量的內部通訊,因此在 PC集群上運行效果不佳。Top500上沒有將這部分評價單獨出來,但確實有這樣一個利用大機柜系統,曾一度被Cray統治,PC集群尚不得門而入的領域。Cell具有高速的通訊連接,這使得他非常適合于這類領域,雖然大量Cell的協同工作還需進一步的工程工作,但從 Cell的第一份專利開始多Cell多級互連就是最重要的內容之一。Cell不僅僅會取代PC集群,在集群失敗的領域也可一展身手。
在設計Cell這樣的系統時往往有很多折中,幾乎在所有的場合Cell的設計者都沒有選擇折中而是直接選擇了性能,即使這會使得程序員的工作變得復雜。這也讓人聯想到Cray。從60年代到90年代IBM和Cray之間爭相建造最快的計算機。Cray每次都獲得了完美的勝利,他將性能邊界提高到這樣的水平:最后能擊敗Cray設計的只能是下一代Cray設計。IBM制造了靈活的商用機器,Cray選擇更少的靈活性和特性,大部分設計都在追求無止境的速度。現在Cell在延續曾經的對手Cray所選擇的道路,雖然Cell沒有使用砷化鎵工藝,也沒有使用液態氮冷卻系統。
Cell進入高性能嵌入式領域或許只是時間問題,對于更廣闊的其他嵌入式應用而言,功耗是制約Cell使用的最大問題。即將使用的65納米生產工藝可以部分解決這一問題。并且Cell本身包括10個溫度探測器和控制電路,在無需如此巨大的SPE處理能力時可以關閉數個SPE內核以降低功耗。Cell在開始設計時就說明了單個芯片中的SPE數目是可選擇的。有很多公司使用 IBM的硅處理技術,如果有合適的許可證制度Samsung, Chartered,Infineon甚至AMD都會需要并生產 Cell。不同廠商生產的 Cell芯片內部的 SPE數目和性能可能并不相同,但這并不阻礙軟件Cell在分布式計算環境中在不同廠商的Cell芯片上運行。這似乎是一個看似大同的Cell芯片社會。
4.1.1 對并行應用的支持
作為一個側重向量結構設計的芯片,向量并行是最合適的應用??茖W計算,物理和生物模擬這些以往在向量并行超級計算機中廣泛使用的計算模式都可以從 Cell體系結構中受益。而STI聲稱Cell真是一個“桌面超級計算機”的設計方案。對于傳統不可向量化的應用而言,單顆Cell芯片的性能至少和兩個甚至更多PowerPC 970或者P4 3.6G處理器相當。對于可向量化的應用而言唯一潛在的問題就是相對受限的內存容量。Cell芯片本身有很大的尋址能力,但是目前的XDR存儲方案只支持 256MB RAM的直接連接。即使這樣,Cell還是可以通過I/O單元形成Stream Processing來獲得不錯的性能。
現在的 GPU已經在開始處理科學計算中的部分問題了。同時對于通用或者桌面應用領域,GPU也開始逐步分擔CPU的繁重計算任務。這是完全合理的,很早以前NVidia的GPU在流水線數量,深度和功能單元和晶體管數目上已經超過了Intel的x86處理器。計算機中的3D圖形芯片在很多性能上早已超過通用處理器。
Cell的結構和運行方式和GPU很接近,目前GPU在高性能和通用領域的進展幾乎無一例外的都可以完全套用到Cell上,并且Cell具有更好的通用性,更好的移植環境和更高更均衡的性能支持。
而從設計一開始Cell就面向了更加通用的領域,而GPU一直專門正對圖形處理。對于開發者而言改寫那些非3D的應用程序在Cell上要更容易寫。并且Cell有快速的內部總線供主處理核心和向量處理核心通訊使用,這和目前 GPU的使用方式有本質的區別。
4.1.2 對并行應用的支持桌面應用
除了那些目前GPU已經可以加速的桌面應用之外,兼容PowerPC的PPE核心為Cell提供的廣闊的應用前景。桌面應用的一個重要問題就是需要一個合適的操作系統。很難相信Microsoft會樂意為Cell芯片開發一個Windows版本。IBM聲稱在基于Cell的工作站上已經可以同時運行多個操作系統,包括目前流行的 Linux。Linux是一個強壯的操作系統,并且是目前流行的話題,但它尚不足以成為一個消費型的操作系統。另外兩個可能在 Cell上運行的操作系統是OS X和AIX,而Apple的OS X正是一個成熟的消費型操作系統。經過多年的發展OS X已經成為一個易用,界面優化,功能強大的桌面型操作系統,雖然由于Apple不打算向Mac之外的機器提供License和軟件支持,其市場份額一直局限在專用領域。但Cell出現的時機可能為OS X再次進入廣大的桌面市場提供了機會。
4.1.3 對并行應用的支持在分布式計算領域
Cell是一個高性能分布式計算體系結構。它由硬件和軟件Cell構成,軟件Cell包括數據和程序,它們被送往硬件Cell進行計算并返回結果,機間耦合度強,屬于異構性多處理機系統[3]。Cell被設計以適合從 PDA到服務器的全部工作,可以用完全不同的系統構建一個adhoc Cell計算機。一個Cell系統中的單一計算處理單元甚至單獨的一個Cell都是高性能的處理器。Cell在某些指定的應用上能夠接近理論最大性能。預期低廉的價格,極高的性能和廣泛的使用使得Cell使構造分布式計算環境的良好選擇。
4.1.4 CELL在嵌入式領域的應用
STI的另外一個成員Toshiba計劃在自己的HDTV中使用Cell芯片,這為Cell芯片開辟了廣闊的嵌入式應用市場。注意到 IBM一直將Real Time和Security作為Cell的設計目標之一,而這兩點是目前嵌入式市場最迫切的要求。
視頻和音頻是兩個可以不斷吞噬處理能力的領域。GPU已經被廣泛用于加速音頻處理,而Cell比GPU更加通用、性能更高。音頻總是被分成多個通道分別處理之后在混音,許多操作都可以被向量化。未來的 HDTV這樣的嵌入式往往需要一個高性能的處理器加上一個專用的 DSP芯片來完成視頻/音頻解碼、糾錯、信號分離等任務,開發一個專用芯片代價極高并且昂貴。Cell的強大性能意味著無需開發專用芯片,單一Cell芯片就足以完成所有的任務。Cell在高性能嵌入式市場上也有良好的前景。
4.1.5 游戲市場
Cell的第一個商業領域就是游戲市場,SCEI最新的PS3已經在2005年3月進行過內部展示。Sony(SCEI)聲稱其主要的游戲軟件開發商已經獲得了基于Cell的PS3開發系統,包括PS原型,基于Cell的開發工作站和專門針對 Cell優化的開發環境和 OpenGL庫。Cell的設計師緊盯 raw computing power而不是圖形能力(PS3上將使用NVidia的圖形處理芯片),由于到硬件功能被轉移到軟件上使得開者有更多的靈活性?,F在的問題是使用了4個Cell芯片互連結構和NVidia最新圖形芯片的PS3是否能成為第一個實現實時光影跟蹤的游戲終端。
處理器的設計、開發和制造有巨大的成本開銷,市場份額的大小往往是處理器成敗的關鍵因素。
雖然一直被吹噓為PlayStation 3的主要技術,Cell的設計目標顯然要更加宏大。作為巨大的電子制造商,Sony和Toshiba購買各式各樣不同的組件,開發Cell的一個主要目標就是這兩家公司希望在構建自己產品的時候降低開銷。諸如Blu-ray,HDTV和HD Camcorders以及PS3這樣的下一代消費類電子產品需要新的芯片來提供所需的高級計算能力。Cell將應用在全部這些需求中且可能用得更廣,IBM將會用Cell來構建服務器,同時Cell可以銷售給第三方制造商。
對于首先使用Cell的PlayStation,一年內因為PS3而銷售的Cell芯片就有8000萬顆。雖然還不足以超過x86芯片在PC市場上的銷售量,但對于一個處理器而言這已經是一個相當好的起步了。更值得注意的是Toshiba在其HDTV中使用Cell芯片,同時宣布Cell將被STI聯盟之外的公司用于類似的設計。與全球巨大的TV市場相比,PC的銷量就不足為奇了。H.264標準下的HDTV需要極大的處理能力。和傳統的定制芯片比較起來通用處理器要低效很多,雖然專用芯片開發起來相當復雜,昂貴,但是巨大的需求量可以降低價格并且可以使功耗降到最小。然后Cell的加入將使一切改變,一顆通用目的的向量處理器將同時具有充足的處理性能和低廉的價格,開發簡單并且有通用的特征。
IBM已經制造了基于Cell芯片的工作站,并且預期用Cell處理器板構造的超級計算機在一個 Rack上可以達到16Pflops的性能。64個Rack機架就可以達到TFLOPS[4]。雖然目前基于Cell的工作站只被SCEI用于PS3的開發。未來IBM沒有任何理由不用Cell替代 PowerPC和Power處理器來生產他們原本Power構架下的工作站和服務器。
另一個更雄心勃勃的可能市場是PC。雖然STI在Cell設計中并沒有表現出對 PC市場的關注,幾乎每一個關注Cell芯片的人都忍不住預測 Cell對PC市場的沖擊。Linux的出現已經使得Windows不再是PC操作系統和軟件的唯一選擇,并且Linux的跨平臺特性使得應用移植到不同體系結構下相對簡單。Cell能否在給 x86處理器帶來類似的沖擊呢?就性能、功耗和成本而言,x86已經沒有任何優勢。如果Cell能夠獲得價格較低的消費級操作系統支持,用虛擬化或者二進制翻譯技術來面對以往 Wintel聯盟克敵制勝的巨大軟件應用基礎,它將會在PC市場上有所作為。