目前中國CPU指令集還處在群雄割據的狀態,印度就已早一步確定了“國家版”,印度將RISC-V確立為國家指令集,并將目標調整為研制6款基于RISC-V指令集的開源處理器核。雖然中國指令集繁多看似百花齊放,但實際上卻存在很多問題,中國統一指令集只能依靠商業力量。
中國國產芯片集齊了SW64、LoongISA/MIPS、X86、Power、ARM,加上之前一些單位的一些產品和學術研究,中國的CPU的指令集還要加上IA-64、Sparc、RISC-V,這對中國CPU的發展非常不利。相比之下,印度確立國家級指令集的做法,更有利于一個國家CPU的長遠發展。
近年來,隨著龍芯、申威自主CPU在性能和應用上不斷取得突破,原本對中國高度技術封鎖的歐美科技公司紛紛到中國尋找代理人,Intel、AMD、IBM、ARM、高通相繼在中國成立合資公司,或尋找技術合作伙伴。這其中就涉及“指令集”,它是存儲在CPU內部,對CPU運算進行指導和優化的硬程序。
與此同時,中國國產芯片集齊了SW64、LoongISA/MIPS、X86、Power、ARM,加上之前一些單位的一些產品和學術研究,中國的CPU的指令集還要加上IA-64、Sparc、RISC-V,這對中國CPU的發展非常不利。相比之下,印度確立國家級指令集的做法,更有利于一個國家CPU的長遠發展。
印度將RISC-V確立為國家指令集
雖然印度在很多方面與中國相距甚遠,在“中國能,我也能”的思維方式下鬧了不少笑話,但印度的一些做法也值得我們學習和借鑒。
在2011年,印度開始實施處理器戰略計劃,在全國范圍資助2-3個研制處理器的項目。印度理工學院馬德拉斯分校(Indian Institute of Technology,Madras)的G. S. Madhusudan與V. Kamakoti教授在該計劃支持下啟動了SHAKTI處理器項目,目標是研制與IBM PowerPC兼容的處理器。為了獲得合法授權,SHAKTI項目組與IBM開展了合作談判,但始終未能達成一致。值得一提的是,在2014年,中國某公司卻獲得了IBM Power8的授權,之后,該公司還鬧出欠薪事件,最后由當地政府做了接盤俠。
在加州大學伯克利分校推出了RISC-V指令集之后,SHAKTI項目組在2013年毅然放棄PowerPC,全面擁抱RISC-V。并將項目目標調整為研制6款基于RISC-V指令集的開源處理器核,涵蓋了32位的單核微控制器、64核64位高性能處理器和安全處理器等多個應用領域。
David Patterson教授帶領研制的五代RISC處理器
這里介紹下RISC-V,RISC-V指令集使用BSD License開源協議,是一個徹底開放的指令集。也就是說,全世界任何公司、大學、研究機構與個人都可以開發兼容RISC-V指令集的處理器,都可以融入到基于RISC-V構建的軟硬件生態系統,而不需要為指令集付一分錢。相比之下,ARM的指令集授權費用則非常昂貴,一些ARM陣營IC設計公司每年就要支付數千萬乃至上億美元的成本。
在調整項目計劃之后,SHAKTI項目又獲得印度政府9000萬美元的經費支持。在2016年,先進計算發展中心獲得印度電子信息技術部4500萬美元的資助,目標研制一款基于RISC-V指令集的2GHz四核處理器。此外,印度政府支持的一款神經形態加速器項目也將RISC-V作為計算主核心。
在過去數年中,印度政府資助的處理器相關項目都開始向RISC-V靠攏,RISC-V成為了印度的事實國家指令集。
中國CPU指令集處于群雄割據狀態
目前,中國CPU發展可以分為兩條路線。
一條是自主路線,以龍芯與申威為代表,申威自定義了SW64指令集,龍芯基于MIPS擴展出來的LoonISA,自主設計CPU的內核,以及內存控制器等IP,并且一直在堅持創建自己的生態系統。
另一條是技術引進路線,購買國外CPU的IP授權,并借助現有的生態系統開拓市場。比如華為和展訊從ARM公司購買IP做集成,依附于AA體系的生態系統;華芯通購買高通的授權開發芯片,依附于AA體系的生態系統;瀾起購買Intel的內核外加一個安全模塊做安全芯片,依附于Wintel體系;宏芯購買了IBM Power8的授權開發CPU,寄希望于IBM主導的Open power.。。。。。
可以說,中國已經集齊了全球大部分有一定影響力或曾經有一定影響力的指令集,像ARM、MIPS、PowerPC、SPARC、RISC-V、X86等指令集都可以在中國找到。因而有網友調侃:如果再將已經消逝的PA-RISC、Alpha、IA-64等指令集找回來,就可以召喚神龍了。
雖然指令集繁多看似百花齊放,但實際上卻存在很多問題。
一是嚴重分散了研發力量,導致編譯、操作系統等基礎軟件開發者與愛好者由于精力有限而無法兼顧所有指令集的優化,延緩自主生態的建設。
二是嚴重影響到計算機專業的本科教學,目前的課程體系并沒有制定相關標準,于是很多學校開設的不同課程會讓學生使用不同的指令集開展實驗,導致學生忙于了解各種指令集匯編語言而疏于了解指令集本身的設計精髓、指令集與處理器/編譯/OS之間的聯系。
事實上,最理想的狀態是國內多家CPU公司以統一指令集設計芯片,大家都圍繞這個指令集建設軟件生態。這樣一來,在硬件上哪家的產品好就用誰的,在軟件上也能眾人拾柴火焰高,加速生態建設。
其實,國家也想統一指令集。在2012年,工信部曾經試圖制定CPU指令集國家標準。然而,更換指令集就意味著過去十多年圍繞該指令集所建設的軟件生態全部歸零,在2012年才力圖統一指令集已然太晚了。像印度那樣,在沒有過去技術積累作為包袱的情況下,才是通過行政力量統一指令集的最佳時機。
中國統一指令集只能依靠商業力量
既然印度可以將RISC-V確立為國家指令集,那么,中國是否可以效法呢?
筆者認為,可行性非常低。主要是因為國內IC設計公司和單位不太可能拋棄現有的技術積累,去更換指令集。
舉例來說,龍芯和申威不可能放棄現有的技術成果,畢竟龍芯和申威已經圍繞SW64和LoongISA初步構筑了一個生態體系。
華為和展訊也不可能拋棄有豐富軟件生態的ARM轉向前景不明的RISC-V。畢竟離開了ARM,華為和展訊不僅要面臨無CPU內核可用的窘境,還要遭遇沒有軟件生態的困局,其手機和芯片產品將成為工業廢品。
另外,國內學術界基于RISC-V開展的前沿研究依然偏少,國內目前幾乎沒有在RISC-V開源社區中的貢獻者,大部分還是以應用RISC-V為主,從而無法在社區與生態發展中擁有足夠的話語權。
標簽化RISC-V團隊與伯克利的Patterson教授和Asanovic教授
第7屆RISC-V研討會的程序委員會名單
因此,效法印度將RISC-V確立為國家指令集的做法并不適合中國。
就目前來說,通過政府行政力量統一CPU指令集的可能性幾乎為零。想要把指令集統一起來,就只能依靠商業力量。類似于美國上世紀90年代X86、Alpha、MIPS、SPARC、Power在幾番大戰之后,由X86一統江山。中國如果要統一CPU指令集,也要經歷這個過程。
ARM最有可能成為中國事實上的國家級指令集
從情感上,我們當然是希望SW64或LoongISA能夠成為中國的國家級指令集。
不過,從實踐上看,ARM成為事實上的中國國家指令集的可能性更高。
首先,ARM在國內的合作伙伴多達上百家,這些企業會為ARM開發大量應用,并在物聯網時代到來之后占據大量市場。
其次,國內部分ARM陣營IC設計公司由非常深厚的政商關系,非常善于宣傳營銷。能將買IP做集成輕易包裝成擁有全部知識產權,進而帶上“自主可控”的標簽。
比如某公司在核高基的支持下,開發了一款宣稱自主可控的32核A57芯片,根據核高基總師魏少軍教授的報告,這款芯片將進入特殊市場。又比如某些公司買ARM的IP為基礎開發了SSD主控芯片,卻宣稱“自主可控”、“安全可靠”并榮獲各種殊榮,而采用龍芯、申威CPU的SSD主控芯片,卻鮮有人知曉。由于ARM由日本控股,主要研發中心在美國,國內一些公司將ARM打扮成“自主可控”的做法無疑是向中國的信息安全體系中埋入特洛伊木馬。
最后,國內真正具備自主開發高性能CPU技術的團隊非常少,而且由于技術具有迭代演進的特點——每一代新內核,相對應前一代內核的代碼替換量最多不會超過20%。而一代內核的研發一般要2-3年。在這種情況下,與其從零開始自主研發,遠不如玩買IP做集成或在ARM原始設計上略做修改+營銷包裝游戲來錢快。
至于高度依賴國外技術,只要足夠多的水軍就能洗白,而且還能包裝成國產驕傲,而代價就是國產處理器繼PC之后,再一次跟在洋人身后吃土,在處理器領域再出現一個聯想。
在自主研發風險大、成本高、周期長,“短、平、快”能夠實現短期獲利的情況下,眾多商業公司都會選擇ARM。像印度選擇的RISC-V,在中國市場上,只會在一些小眾領域有一席之地,比如把RISC-V內核集成在FPGA里。
評論