1. 程式人生 > >終於看到中國CPU的希望了

終於看到中國CPU的希望了

就在兩個月前,國內消費電子廠商宣佈,以99美元的價格開始銷售Android 4.0平板電腦Novo7時。聽到這條訊息三星、蘋果、東芝、華碩等平板拿電腦廠商都是倒抽一口涼氣(如果讓他們知道Novo7在國內買更是隻要500塊人民幣時,不知他們會做何感想)——這個價格只有這些國際一線品牌同類產品的1/6。艾諾能夠做到這個價格,要歸功於它是一個徹徹底底的Made in China產品。不僅外殼,電路和螢幕是國產的,就連CPU也脫離了ARM的IP核,用上了國內自主的君正JZ4770。所以即使相比國內其他使用ARM核心的平板產品,由於不用給ARM支付高昂的CPU提成費用,Novo7依然有著100元左右的價格優勢。這種完全Made in China 的產品向世人證明:中國人什麼都能做,而且能做得很好,很便宜。

我也跟風入手了一臺艾諾NOVO7,可以很負責任的說,它讓我看到了國產CPU的曙光——國人的CPU終於從一個嬌生慣養的小娃娃成長成了一個能夠真槍實彈地在市場上打拼的男子漢。

由於設計工具的日漸成熟,現在要設計一款CPU並不是特別複雜。相比之下,編寫編譯器,營造軟硬體整合環境卻是一件非常艱難的事情,而這些東西的價值都體現在CPU的一個在傳統意義上很不起眼的屬性中,那就是指令集。指令集相當於CPU的語言,人們用高階語言編寫出的程式碼必須經過編譯器編譯成對應CPU的語言,才能夠在CPU上執行。設計指令集就像發明一門語言一樣,只要有了完整的詞彙和語法約定,這個過程並不會太複雜,但指令集的推廣就比較難了。軟體公司不會有精力把自己寫的軟體編譯出各個指令集的版本,往往只會挑選幾個大家都比較認可的指令集編譯。目前使用最多的指令集是x86和ARM,前者是大家電腦的CPU所使用的指令集,而後者則是大部分手機CPU所使用的指令集。由於ARM的指令集是RISC結構,其結構相對簡單,容易實現四發射,所以在價效比和性耗比上往往比x86的CISC架構更高,但是由於微軟目前的Windows系統僅對x86指令集編譯,所以CISC類的x86指令集雖然效能低下,但是依然是軟體支援最豐富的指令集。(不過隨著主流的作業系統,包括Windows 8開始支援ARM指令集,x86估計不久後也將推出歷史舞臺)。當然,還有一些比較小眾的,但效能卻十分優秀的指令集,比如MIPS,PowerPC,Sparc等(都是RISC類的,可見CISC被淘汰是遲早的事),其中PowerPC指令集曾經因為蘋果Macintosh作業系統的支援,而風光過一陣子,但隨著後來Macintosh開始使用 x86指令集,PowerPC指令集也逐漸淡出了消費市場。

由此可見,推廣一款指令集是非常艱難的,如果沒有足夠的影響力和強勁的編譯器去說服軟體公司使用自己的指令集,CPU即使製造出來也是廢矽片一塊。北大眾志就是這樣一個教訓,他們從指令集開始就自己操辦,試圖構建一個完全自主的行業環境,但是這種"後期之秀"的CPU如果在價格、功耗或者效能上都沒有明顯的優勢的話,很難說服軟體廠商用自己的指令集去開發相關的產品的。

在這種指令集綁架產業鏈的環境下,很多擁有指令集智慧財產權的公司由於產能跟不上市場需求,而制約了其進一步發展。畢竟全世界只有Intel才擁有若干家先進的晶片生產廠,能夠提供生產出足夠的晶片。為了能和Intel這種All-in-one的公司PK,半導體業界衍生出了Fabless,Chipless等模式。Fab是晶片製造廠得縮寫,Fabless則表示一家公司只設計晶片,但生產外包。著名的nVidia,ST,國內的中星微,Rockchip,全志等都是Fabless的,而x86的老二AMD也在前些年變賣了自己所有的晶片生產廠,從All-in-one模式轉型為Fabless模式(既然有Fabless,就肯定有Fab,這些Fab只負責製造晶片,不負責設計晶片。臺灣有很多這樣的廠)。而所謂Chipless的公司則大多是那些擁有指令集智慧財產權的公司,他們只負責設計晶片的核心部分(稱為IP核,用硬體描述語言描述或用電晶體電路圖描述,用硬體描述語言描述的核心成為軟核,用電晶體電路圖描述的稱謂硬核,軟核比較方便配置,硬核的效能優化比較完善),然後把這部分核心賣給Fabless廠商,Fabless廠商再加上一些外圍電路和外設設計成完整的晶片,送到Fab去生產。不過這種依賴於第三方提供IP核的Fabless廠家雖然開發難度較低,但也在很大程度上受制於Chipless的廠家,因為其產品的主要效能都取決於IP核的優劣,不同公司使用相同IP核的CPU同質化嚴重,而且IP核的授權成本往往還佔到CPU成本的將近一半。目前最流行的IP核當屬ARM系列,此外MIPS,Sparc也有IP核在賣。國內用第三方IP核生產CPU的企業有一大把,比較傑出的應該就是Rockchip,珠海炬力,全志等,但是這種CPU的主要單元依然依賴國外第三方廠商,在技術和市場上都受到上游廠商的限制,不能算嚴格意義上的自主產品。

自己從頭開始寫指令集的道路行不通,直接購買第三方IP核的道路也行不通,所以,不管是龍芯還是君正,他們都選擇了一條曲線救國的道路——只購買指令集授權,而由自己設計晶片。君正購買了MIPS32指令集的使用權,而財大氣粗的龍芯則購買MIPS32和MIPS64指令集的使用權(真不知道為什麼中國人對MIPS這麼厚愛有加,完全無視ARM,PowerPC和Sparc的存在……),也就是說,君正和龍芯在買下MIPS授權後可以開發相容MIPS指令集的CPU產品,這些CPU可以執行為MIPS CPU(包括使用MIPS IP核的CPU)編譯的軟體,但又不用每顆CPU都向MIPS支付授權費用。

事實證明,擁有指令集智慧財產權的公司也非常願意接受這種直接授權指令集的運營方式。雖然這可能會給自己帶來潛在的競爭對手,但是使用自己指令集的產品的增加無疑也會使得該指令集對軟體開發者更加有吸引力。雖然這種買指令集授權的方式比較小眾,但的確不只有中國人在買指令集授權,也不只有MIPS在賣指令集授權。兩年前nVidia就購買了ARM的指令集授權,自己開發高效能的ARM指令集CPU(nVidia稱之為Project Denver)。所以,這種“曲線救國”的切入方式也是一種被普遍採用的,低風險進入CPU市場的方法。君正使用這種方法進入CPU市場即保證了高度的自主權,又降低了市場培育的成本和風險。

但君正的劉強比龍芯的胡偉武要更理解市場。他沒有像龍芯一樣去挖掘PC市場,而是瞄準了手機、平板這樣的嵌入式市場。這無疑是明智的。因為PC市場的軟體很大程度上被微軟的Windows所綁架,只要微軟不支援MIPS,龍芯在PC上就永無翻身之日。而即使微軟看到了CISC處理器的侷限性,開始更換指令集,那它的首選也會是ARM,而不會是MIPS。相比之下,手機和平板領域的作業系統所支援的指令集就要豐富多了。基本上Linux和Android都能夠支援MIPS指令集,所以君正的CPU作為一款MIPS指令集產品,瞄準嵌入式市場無疑在市場上更有出路。另一方面,軟體廠商本身也並不願意被指令集綁架。無論是微軟的CLR還是Google非常喜歡的JAVA和Python,他們都有一個共同的特性,那就是平臺無關。CLR,JAVA和Python編譯出來的程式都不是直接面向CPU的,而是以一種中間語言的形式存在,在執行的時候才會根據執行平臺的不同,現場編譯成目標指令集。這樣一來,這類語言的程式設計師編譯一次程式,就可以在各種指令集的機器上執行。

國產CPU能成功還應該歸功於摩爾定律的失效。如果不是積體電路的微型化受到材料極限的限制,各大積體電路廠商肯定還是會以工藝提升作為主要的競爭武器。這樣的話,工藝落後的中國晶片工業就永無擡頭之日了。所幸,業界的晶片工藝在45nm之後放緩了進步的腳步,這給了中國的晶片企業和各大Fab趕超的機會。現在業界的最先進工藝(32nm)和主流工藝(65nm)已經相距不遠了。

從某種意義上說,方舟雖然失敗了,但是它培養出了君正的核心團隊,並積攢下了大量的技術積澱。君正從方舟中脫離出來後,就失去了國家基金的扶持,但是今天君正XBurst系列處理器的成功也讓我們意識到,中國芯已經不再是一個靠政府採購和國家投資嬌生慣養的小娃娃了,而是一個能夠在市場上用效能、功耗和價格和國際一線廠商PK的,真正意義上的高科技產品了。