cell處理器

cell處理器

Cell處理器是索尼、IBM和東芝研發的處理器,片上集成2.5MB緩存,數據交換速度100GB/s,使用授權於Rambus的XDR和FlexIO技術。

Cell處理器內建2億3千4百萬晶體管,晶元尺寸221平方毫米,採用0.09微米製程。Cell處理器試生產工作從2003開始,Cell處理器首先在動畫和其它圖形工作研發的工作站電腦當中。Cell處理器被運用在索尼的家用遊戲機PS3當中,PS3於2005年5月的E3電玩展上發表。

產品介紹


索尼、IBM和東芝聯合研發Cell處理器已經有數年之久,Cell處理器設計目標是為多媒體應用帶來高性能的優化處理器。
IBM和Cell處理器合作夥伴,為Cell處理器編程,提供開放源代碼的工具。
Cell處理器其它技術參數如下:
頻率最高的Pentium處理器工作頻率是3.8GHz。Cell處理器每秒可以執行2千5百60億次計算,即256Gigaflops。

研製背景


早在2001年,索尼就對外透露將與IBM合作,由IBM來設計PS3遊戲主機的處理器,這枚處理器被命名為“Cell”,也就是中文“細胞”的意思。雙方宣稱,Cell的運算能力將達到史無前例的1TeraFLOPS(Floating Operations per Second),也就是每秒執行萬億次浮點運算,這樣的性能絕對可達到超級計算機的標準。在當時,世界上最快的計算機是NEC的“地球模擬器”,它的運算能力為每秒36萬億浮點運算,換句話說,36部PS3遊戲機的運算力總和就達到同樣的水平。再者,Cell可支持一項特殊的分散式運算技術,多台PS3連接在一起可以分享運算力,由此獲得更高的效能。在當時,這樣的設計理念讓人目瞪口呆,外界的第一反應就是,索尼不過是在吊玩家的胃口,而IBM則是在吹牛。
在這之後,PS3和Cell很快被人淡忘,直到2004年,索尼與IBM再度公布了一些關於PS3和Cell的消息,據稱Cell已經完成設計,處於樣品測試階段,工作頻率達到2GHz,很好地實現了預期設計目標,但這仍只是一條紙面上的簡單報告,雙方都沒有展出任何相關樣品供參考。此時,外界的眼球早已被Intel、AMD之間激烈的競爭吸引,專屬於遊戲機的Cell處理器自然不可能獲得業界的廣泛注意。2005年2月,IBM在“國際固態電路會議(IEEE International Solid-State Circuits Conference,簡稱為ISSCC)”上發表了數篇關於Cell的技術論文,披露Cell處理器的詳細規格參數並展出相關樣品,IBM還宣布 Cell已進入到大規模量產階段,將在未來幾個月內提交給索尼。就這樣,一款媲美超級計算機的革命性微處理器由此到來。在下面的文字中,我們將對Cell 處理器進行深入詳盡的技術分析,倘若讀者有耐心讀完本文,也許會發現今天我們津津樂道的X86處理器在思想上落後了數個時代。
在介紹Cell的邏輯架構之前,我們先來看看Cell的物理規格:Cell集成了2億3400萬個晶體管,它採用IBM的90納米SOI、Low -K工藝製造,核心面積為221平方毫米,晶元規模與Intel的雙核Pentium D相當,兩者的製造成本處於同一條水平線上。在邏輯上,Cell處理器基於一個“Power處理單元(Power Processor Element,下面簡稱為PPE,由PowerPC970簡化而來)”,它可以支持SMT虛擬多線程技術,同步執行兩個不相干的線程。此外,Cell內部還擁有八個基於SIMD的協處理器(Synergistic Processor Element,以下簡稱SPE),可支持多達十條線程的同步運行。另外,Cell還整合了 XDR內存控制器,可配合25.6GBps帶寬的內存系統,而它的前端匯流排也採用96位、6.4GHz頻率的FlexIO并行匯流排(原名稱為“Redwood”,RAMBUS公司所開發),這也是有史以來速度最快的計算機匯流排。所有的這一切都讓人覺得非常不可思議,如果我們將Cell同X86 處理器對比,便會發現二者在設計上沒有半點相似,Cell不同尋常的另類設計也引起外界的普遍疑慮:它的工作頻率能到什麼水平?實際性能又比最新的X86 處理器快多少?Cell能夠達到預期設計目標么?
如果你心裡也有類似疑問,我們的建議是將你之前所了解的X86處理器知識全部清空,然後重新來認識Cell。我們知道,目前X86處理器的頻率最高紀錄是3.8GHz,由Intel波塞冬核心的Pentium 4 E所創下,本來Intel計劃讓它的頻率突破4GHz,但受到高功耗和穩定性方面的困擾,不得不宣告失敗,要更進一步提升頻率也被業界認為難以實現。然而,Cell的工作頻率輕易突破了4GHz,並將達到4.6GHz的新高,這顯然超出X86業界所能理解的範圍。更不合常理的是,X86處理器的高頻率必須以犧牲指令效能為代價,高頻未必就能帶來高效能(Pentium 4系列的高頻低能人所共知),而Cell的實際運算性能竟達256Gigaflops,也就是每秒可執行2560億次浮點運算,IBM最初的設計是將四枚處理器整合一體,這樣就可獲得每秒萬億次浮點運算的超高性能。如果你對此沒有感性的認識,我們不妨舉些例子作為對比:Pentium 4 E 3.8GHz的SIMD效能為15Gigaflops,這也是X86處理器目前能達到的最高水平,但這個性能只有Cell的十七分之一,兩者完全不具可比性,儘管它們的物理參數和製造成本處於同一水平線。IBM十分自豪地將Cell稱為“單晶元超級計算機”,這也很好實現了預期設計目標。
Cell所具有的高效能無疑得益於高度優化的Power架構。Power是IBM為超級計算機所創立的RISC指令系統,而RISC架構具有與生俱來的高效性,處理器結構精簡,技術上明顯優於X86。正因為這一點,幾乎所有的超級計算機系統都隸屬於RISC體系,而我們所津津樂道的X86,實際上僅僅局限在PC環境,只是因為PC與人們工作生活聯繫緊密,故廣為人知(關於RISC與CISC的對比,本刊上期《未來處理器設計思想前瞻》的文章中有非常詳盡的闡述,有興趣的讀者可自行參考,這裡就不再贅述)。不過,RISC架構顯然不是Cell擁有超高性能的唯一原因。如果我們將PowerPC 970處理器(蘋果稱之為“PowerPC G5”)與Cell對比,大家還是可以發現兩者的性能差距極其懸殊:PowerPC 970的晶體管數為5800萬個,4枚PowerPC 970的晶體管數總和與一枚Cell相當,但配備雙PowerPC 970處理器的Xserve G5僅能提供9.0 Gigaflops的運算力,遠無法與Cell相比,儘管它們在設計架構上同屬於Power體系。實際上,Cell的高效能很大程度上來自於其新穎的設計思想:主處理器與協處理器各司其職,內核設計精簡高效以實現高頻運作,而運算單元則採用128位并行結構,大家可以從下面的分析中逐漸了解到這一點。
高度彈性的設計與分散式計算是Cell除高性能之外的兩大亮點。IBM希望Cell可適用於從嵌入式設備到大型計算機等幾乎所有計算設備中,所以將Cell設計為一個通用的處理器平台。根據不同的需求,Cell可以對處理內核的數量進行任意裁減,如針對嵌入式設備的產品只有單個核心,且工作在較低的頻率上以實現較低的能耗;針對便攜電腦和桌面PC的版本,可使用與PS3遊戲機一樣的標準Cell,或者對SPE數量進行適當裁減;如果要用於工作站/伺服器系統,IBM可以將兩枚Cell處理器直接集成在一起以獲得更高的效能;若要用於大型計算機,Cell則可配置成包含四枚獨立處理器的“MCM模塊”,此時它具有每秒萬億次浮點的運算能力,這也是IBM當初承諾的標準。而支持分散式計算技術更具革命意義,Cell擁有一條超高速度的FlexIO晶元連接匯流排,基於Cell的不同計算設備可以藉此聯成一體,實現運算力與內存資源的分享。網路上的設備越多,所擁有的運算力就越強大。此時,Cell處理器就好比是該計算網路上最基本的構成細胞,而這項機能將帶來一場天翻地覆的計算革命。想想看,任何人都可以在家庭中輕而易舉製造出屬於自己的超級計算機,這無疑意味著計算力的真正解放。
支持多操作系統運作是當前X86處理器的熱門技術,其實IBM在幾年之前就將該技術應用於Power架構處理器中,Cell理所當然繼承了這項特性。另外,Cell具備強大的自主糾錯能力—IBM實驗室的科學家們一直致力於研究真正可靠的計算,他們希望計算機能夠具備故障自動恢復功能,實現真正的“永不宕機”運作,而這項成果現在也被用於Cell身上。在運行過程中,Cell可自動檢測所處理的數據是否遭到破壞,如果數據出錯,Cell會藉助某種機制將它自動恢復為正常的狀態,從而避免產生錯誤的結果或令系統停機。在下面的文字中,我們將向大家詳細分析Cell的設計細節以及應用模式,從中你可以對Cell有更深地了解。
前面我們介紹過,Cell處理器包括一個PPE處理單元、八個SPE協處理器、一個XDR內存控制器以及FlexIO介面,而Cell擁有高性能的關鍵便在於PPE與SPE的設計。
PPE/SPE:針對“簡單任務”而設計。PPE處理單元是Cell的控制與運算中樞,它應該是以IBM的Power 4處理器為基礎進行設計的,可支持同步多線程技術。該處理單元內置了32KB一級緩存和512KB二級緩存,其規格與同出一脈的PowerPC 970處理器極其類似。而在Cell中,真正負責浮點運算的應該是八個SPE協處理器。圖5所示是SPE的邏輯結構,SPE由4個負責浮點運算的處理單元、4個負責整數運算的處理單元、128bit×128結構的寄存器和256KB局部緩存構成,它實際上就是一個完整的運算核心。根據IBM所公布的資料,我們獲悉SPE的流水線長度為18級,這一點與X86處理器也非常不同—流水線越長,處理器提升工作頻率就越容易,反之就越困難。20級流水線的 Northwood Pentium 4止步於3.2GHz,31級流水線的Prescott核心也不過到達3.8GHz,而Cell以18級的短流水線卻實現4GHz以上的高頻運作。設計者對此作出詳細的解釋:X86處理器必須完成大而全的運算功能,運算邏輯往往被設計得非常複雜,這也導致其頻率提升非常困難;而Cell在基礎架構上執行簡單化的計算思想,每一個複雜的任務都可以被分解為多個簡單的基礎任務,Cell中的SPE就專門針對這些基礎任務所設計,這樣,它就可以在保持高效的同時擁有簡單得多的邏輯結構,既然邏輯構成簡單,實現高頻率運作就沒有什麼懸念。從這裡也可看出,Cell與X86處理器最大的不同,還是在於它們對計算任務的不同理解。
儘管匯流排寄存器都是128位結構,但SPE內的浮點單元和整數單元其實都只有32位,只是IBM通過4路并行運算來獲得128bit SIMD的效果,從外部看來,SPE便相當於一個可執行128bit指令的處理單元。SPE內的浮點單元和整數單元各自擁有三條128bit寬度的輸入匯流排和一條128bit寬度的輸出匯流排,二者以全雙工模式運作,數據輸入/輸出操作可同步進行。大家應該也發現這是一套不對等的方案,輸入匯流排的帶寬三倍於輸出匯流排,原因在於計算所需的數據總量總是比運算的輸出結果要多得多,匯流排寬度不同在設計上其實非常科學。而藉助這兩條匯流排,SPE協處理器的整數/浮點運算單元再與一組包含128個、寬度為128bit的寄存器陣列聯結在一起,該寄存器陣列又通過一對全雙工運作的、128bit匯流排同本地緩存(Local Store)相連—每個SPE協處理器都擁有256KB本地緩存,8個SPE就一共擁有2MB緩存,再加上PPE處理單元的512KB二級緩存,Cell 處理器總共擁有超過2.5MB容量的緩存單元,對於一款擁有超級計算效能的處理器來說,如此低的指標同樣令人感到詫異。
分析完PPE與SPE協處理器的內部設計,我們再來看看它們是以何種方式組成Cell的。參見前面的圖4,我們可以看到Cell內部有一條 768bit位寬的“EIB單元互聯匯流排環(Element Interconnect BUS Ring,EIB Ring)”,它實際上是一個強大的內部匯流排控制邏輯—Cell內所有的功能單元都通過EIB匯流排環連接在一起,包括PPE、八個SPE、XDR內存控制器以及外部匯流排介面,它們所採用的無一例外都是全雙工的128bit連接匯流排。若Cell工作在4GHz頻率上,Cell內部的各個功能單元便都擁有 4GHz×128bit/Hz×2(全雙工)÷8Byte/bit=128GBps帶寬,這樣的數字顯然是非常可觀的。
我們很容易能根據這些參數計算出Cell擁有的運算效能:每個SPE協處理器擁有4路并行的整數/浮點單元,一個時鐘周期可執行兩個運算周期(類似DDR效果、技術細節未明),每個運算周期又可執行4次32位浮點運算;每個Cell擁有8枚SPE協處理器,它的工作頻率假設在4GHz,此時 Cell所具有的浮點效能就是2×4×8×4GHz=256Gigaflops,這應該很好理解。
與常規的雙核處理器不同的是,Cell內的1個PPE和8個SPE具有相當強的獨立性。其中,PPE處理單元的任務是運行操作系統,這個任務對於一個結構類似 PowerPC 970、頻率高達4GHz且可支持雙線程運作的處理核心來說簡直不費吹灰之力。但除了操作系統外,PPE不管任何的事情,應用程序相關的線程運算完全由 SPE協處理器運行。如圖6所示,我們可以看到多個應用程序的線程會被平均散布到各個SPE中,整套系統負載均衡、設計得非常科學。而這種縱向結構的多核心設計同X86業界鼓吹的雙核處理器截然不同,不論是Pentium D、Yonha還是AMD的雙核心Athlon 64,它們的每個處理內核地位對等、每個核心都可以獨立完成全部運算,所體現的是一種大而全的計算思想。由於晶元設計越來越複雜,它的工作頻率就不得不走了下坡路,Intel當年執著於高頻制勝的策略,結果落後於對手,業界普遍認為追求高頻率的做法沒有前途。而Cell處理器開闢出前所未有的新思路:每個處理內核專註於自己的任務,彼此相互依賴、相互協作,針對任務的簡單化也使得每個內核都可以被設計得精簡高效,工作頻率也輕易達到X86處理器無法企及的高度,最終實現了媲美超級計算機的驚人性能。而在相互協作的同時,Cell內的各個SPE協處理器又保持著高度獨立性,除了完成本機的計算任務外,SPE 還可以接受來自Cell計算網路中其他設備的計算請求,並執行相關的計算任務,所得結果再通過網路傳輸給任務發起者。換句話說,SPE協處理器可以在基於 Cell的計算網路中作平台無關的無縫漫遊,網路上的任務可以被均勻分散到所有的Cell處理器上,並以最佳方式在最短的時間內完成。
在看完上述分析之後,你一定會以為Cell將是一個功耗大戶,在看到詳細資料之前,筆者也是抱這種態度。IBM所公布的資料再度讓人大吃一驚,當工作頻率為4GHz時,每個SPE協處理器的工作電壓高於1.1V,但其功耗僅僅只有4瓦。若頻率降到3GHz,工作電壓只需要0.9V,此時其功耗只有 2瓦。如果將頻率降低到2GHz,每個SPE的功耗僅有區區1瓦。那麼,Cell內所有SPE協處理器的功耗總和最高也不過4瓦×8=32瓦。至於PPE 處理單元的核心部分,功耗水平也會控制在很低的水平,合乎邏輯的估計是Cell運算部分的功耗水平會在40瓦左右,即便加上緩存單元整體功耗也可控制在較好的水平上。回過頭再來看看功耗將高達130瓦、性能不到Cell十分之一的Pentium D,大家會有什麼感受?
考慮到實際應用,Cell的低功耗並不令人吃驚。Cell本來就是為PS3遊戲機所設計,而遊戲機體積狹小,對晶元的功耗指標頗為敏感,指標過高將給散熱帶來難題且會產生較高的噪音,這是玩家們絕對無法承受的。在2006年,IBM將採用更先進的65納米技術來製造Cell,屆時它將具有更加出色的功耗水平,而低功耗也為Cell的廣泛應用奠定了良好的基礎,將它用於嵌入式設備、筆記本電腦、桌面PC還是工作站系統中都沒有任何問題,IBM今後所需要關心的,應該是操作系統和應用軟體方面的資源配合。
*註釋:由於SPE不能脫離PPE作為單獨的物理核心運行,所以嚴格上來講Cell是一個獨特的單核心處理器
CELL處理器終止開發
德國網站Heise Online證實(德語)IBM停止了Cell處理器的未來開發。 Cell處理器一度被認為是一項革命性的產品,但實際應用證明它並不比競爭對手突出。IBM主管Deep Computing的副總裁David Turek證實PowerXCell 8i是最後一款Cell處理器。
當然停止晶元設計並不意味著它的死亡,目前多數的Cell晶元主要由東芝公司生產,使用在索尼公司的PS3主機上。Sun 曾經指出,3.2GHz的Cell處理器還沒有1.4GHz的SUN Niagara處理器快。有評論稱,它並不比GPGPU強大,而靈活性又不如真正的CPU,IBM放棄它並不讓人意外。