前段會晤了一個多核CPU的廠家,叫做Tilera,最近勢頭很猛,觸角已經探伸到了應用交付云計算、視頻、網絡流量處理、網絡安全設備、防火墻等各個領域。盡管該公司技術人員一再謙遜地強調該CPU在處理四層以下防火墻業務的時候不一定具備優勢,但是我認為他可能是因為面對著幾個我們公司的相關專業人士感覺有點心虛而已。
以我個人這些年來在CPU體系結構研究方面的積累,我的結論是在如果相同的硬件架構下,各個平臺四層網絡吞吐的性能是相去不會太遠的(當然是基于同檔次的CPU)。舉個最簡單的例子,我們的Cavium在網絡四層吞吐方面表現優異,但這是得益于它的包處理硬件單元的助力。如果我們把它的硬件設計成和X86平臺一樣,所有的網絡接口都通過PCI總線擴展,那瞧著吧,它的四層吞吐能力會和X86平臺一樣的慘不忍睹。
Tilera很有意思的一點是(盡管沒有明說),它下一代CPU的規劃頗有和Cavium較勁的味道。似乎頗憤憤不平讓Cavium占了先機。畢竟先入為主么,起碼在網絡安全這個領域,如果說到嵌入式平臺,首推還是Cavium和RMI(后者還被重創了一把)。Tilera如果想要扳回一城,必須要有超出不止一籌的表現才行。在目前已經量產出貨的Tilera上(Pro系列),似乎表現尚嫌乏力,難以撼動Cavium 5系的蒂固根深。
但是Cavium 6系遲遲沒能出爐讓Tilera嗅到了一絲機會,磨拳擦掌準備在下一代芯片上和Cavium一爭長短。Tilera此時發力可以說進可攻退可守,如果先于Cavium 6系發布,那么它會以全系鋪設、全系超出的表現重挫Cavium 5系(慢,好像Tilera下一代仍舊沒有最低端的產品,anyway,影響不大);如果和Cavium 6系同步發布,最起碼也可以和后者在同一起跑線上打一打拉鋸戰。
后面我從學術角度全面比較一下Cavium下一代產品(OCTEONII)和Tilera下一代產品(GX)的方方面面。
乍一看這個題目比較虛。但其實這是所有IC產業中技術含量最高的一環。為什么Inte CPU的霸主地位無人能夠撼動,就因為它在CPU的工藝水準上遠超儕輩,它也是幾乎唯一個敢于給自己的CPU標稱工藝水平的廠家(多少多少納米)。工藝水平決定了什么:集成度、穩定性、性能、產能、功耗、成本…
每一款IC產品的代系躍遷歸根到底都是工藝水平提高推動的。說到這我插一個故事作為佐證。港灣的老同事都記得,我們在散伙前夕推出了一款拳頭產品,基于BCM1250的高性能MIPS64架構的硬件平臺,名噪一時啊,被《計算機世界報》評為性能最佳獎。可是該款產品穩定性一直很差,即便是廠家的技術支持全程陪護也還是遺留了很多問題。
有一次廠家的人跟我說起硅片加工工藝的時候作了個比喻,就像烤面包似的,兩眼一抹黑就開始烤,烤出爐了再篩選,烤的好的就當800MHz的賣;烤得不好的當400MHz的賣。(我真是想問,那烤出799MHz的咋辦?)這是一個工藝水平跟不上趟的典型案例。
話說回到我們的Cavium和Tilera上來。這兩家的工藝水平我沒有第一手的資料,本來不應該妄加評論??墒莻让嫱ㄟ^一些蛛絲馬跡我能夠做出一些大膽的推斷。首先Cavium的工藝應該是有問題的,理由是:
回過頭來再說說Tilera。我不敢說Tilera的工藝水平有多么高,但感覺上應該是優于Cavium,理由是:
Cavium是標準的mips64核心。Tilera當代是32位mips,下一代是mips64。Tilera的技術人員說得明白:32位的CPU體系結構會給用戶的嵌入式產品代碼移植造成麻煩。呵呵,這個說法值得玩味了,看來Tilera頗有一統江湖的野心,想把64位CPU市場收入囊中啊,這個矛頭指向的明顯不是X86(是誰呢?是誰呢?)。因此,下一代產品純Core性能上兩種CPU應該是無差別。Tilera號稱在指令pipeline上有些文章但是我個人感覺噱頭的成分居多。
再說內部總線架構。Cavium是總線型,而且是比較經典的總線型。指令、數據、IO分開的;Tilera的總線架構叫做iMesh,應該算是一種改良的矩陣式結構。兩種體系結構的優點和缺點一目了然:總線型上掛的組件無視物理位置,只要總線空閑即可以最高效率通信,但是存在沖突的問題;矩陣式結構呢,兩兩組件之間可以同時無沖突通信,但是組件之間有物理距離遠近的差別,也就是說離著遠了就需要有人在中間傳話。
剛才說Tilera的總線有些改良我再多白活兩句。Tilera的內部總線號稱“立體交換式”的矩陣總線(好一個Matrix)。意思并不復雜,兩個含義:
第二回合,我認為平手。
嵌入式CPU么,總得佩些額外的武器在手不然對不起“嵌入”二字。Cavium當代產品在這方面做得相當老到,該有的不該有的反正都有了。Tilera當代產品呢?幾乎是空白,于是它恍然意識到這些東東“可以有”,所以在下一代產品上要痛下苦功嘍!后面我一一細分對比(這可真是力氣活?。?/p>
這個第三回合么,上周我覺得Cavium勝,畢竟人家有內容匹配么,為安全廠商量身定做的。但是這周我改變主意了,第三朵小紅花還是給Tilera。因為我認為內容匹配硬件對我們來說仍舊素浮云一朵。。。。。。
Cavium的當代產品在這個特性上的局限讓我們百般痛苦(準確地說是讓我個人百般痛苦)。國內的網絡安全設備在端口規格上的流行風絕對是病態的,隨隨便便一個設備就要搞十幾二十個接口(您以為是做交換機呢?)。于是口不夠,片子湊。什么交換芯片、FPGA、MAC匯聚,還一家用一個樣。于是我有限的生命就這樣獻給了各種端口擴展方案的評估事業中。
Cavium和Tilera的下一代產品在這方面都有好消息??偟腎O寬度都是40G(又一次較勁吧?);支持萬最大兆口的數量都是4;支持千兆口的數量前者是12后者是32。我一直覺得Cavium在工藝上有問題在這里又一次印證了。一個萬兆口的資源它只能實現4個千兆口;而Tilara能實現8個。但就是這4和8的區別,意味著如果我們用Cavium,就還得外部擴展;而用Tilera,就反而有富裕。當然,不排除將來設備的端口規格水漲船高了。Tilera勝。
Cavium上我就不多介紹了。業務層面的編程環境叫做SE,裸系統。Tilera很特殊,提供的業務編程環境居然在Linux用戶空間!據說還能達到幾乎1:1線性。這真讓我大跌眼鏡。用戶空間編程的最大優點是操作系統可用資源豐富,舉個最簡單的例子,業務處理過程中可以隨時訪問文件系統。這對我們來說意義重大,將來我們的AV模塊很可能是合作開發,如何教會我們的合作伙伴使用SE難度巨大,而且無操作系統編程本身限制多多啊。
對于Tilera的這個用戶空間實現業務編程環境,我沒有見識過,不知道在核多的情況下性能線形比率會不會有雪崩式的衰退。但是我覺得像Cavium和Tilera這種老外的公司,背后都有很強大的操作系統研究的團隊,他們不太能夠容忍在軟件應用方面自己的產品存在太大的死角。所以我首先保留懷疑,再給Tilera頒發一朵小紅花。
結束語。兩種解決方案之間的比對其實還有更多的方方面面的PK。比如硬件成熟度、整機成本、硬件供應商和我們的商業契合度等等。但這都不是我有興趣分析探討的。僅以此文用直白平易的語言向大家展示一下嵌入式多核CPU的世界。