上周,EDN報道了關于MIPS Technologies宣布將放棄繼續(xù)設計MIPS處理器,,轉(zhuǎn)向了RISC-V的消息。詳情《MIPS轉(zhuǎn)投RISC-V陣營,,曾經(jīng)的全球三大芯片架構之一是如何走下神壇的,?》
在MIPS加盟RISC-V陣營后,有人鼓吹龍芯要完,,但事實上,,這完全是不了解龍芯具體情況的臆測。特別是在龍芯開發(fā)自主指令集LoongArch之后,,已經(jīng)在指令集方面走上了獨立自主道路,。鐵流認為,MIPS投RISC-V,,對于龍芯而言,,是新征程的開始。
MIPS投RISC-V對龍芯無影響
在MIPS加盟RISC-V陣營后,,有觀點鼓吹龍芯要完,,但事實上,這完全是不了解龍芯具體情況的臆測,,是拿ARM陣營CPU公司的情況硬生生往龍芯身上套用,。
由于MIPS學院風很重,在技術授權上比較開放,。技術上的開放一方面使MIPS在學院派中頗受青睞,,很多大學至今依然在使用MIPS進行教學,另一方面,,客戶可以自由添加指令集,,而這直接導致MIPS的生態(tài)破碎化。
ARM則在商業(yè)上比較開放,,但在技術上卡的非常嚴格,,在ARM32時代,ARM僅對蘋果,、高通等不超過5家公司授權過ARM32指令集,,而且禁止客戶修改、添加指令,,其他的一律是IP核授權,。誠然,ARM64在授權方面比ARM32開放很多,但價格異常昂貴,,還有很多附加條款,,比如使用范圍局限于服務器CPU,禁止修改添加指令等等,。ARM在技術授權方面比MIPS更加保守,,但恰恰是這種保守的舉措,比如禁止客戶修改,、添加指令等條款使ARM避免了MIPS生態(tài)破碎化的命運,。
目前,市場上絕大多數(shù)ARM芯片都是從ARM購買的公版架構,,高通,、聯(lián)發(fā)科、麒麟,、展銳的手機芯片基本都是IP授權,。以麒麟為例,從最早的K3開始,,到最新的麒麟9000,,在過去十年中,麒麟芯片的CPU核全部從ARM購買,。
由于手機芯片廠商在CPU上高度依賴ARM,,一旦無法買到ARM的最新IP,那就意味著在技術迭代中落后,。以麒麟芯片為例,,當年美國制裁時,BBC就爆料ARM內(nèi)部文件,,稱ARM斷絕了和HW的技術合作,。之后的麒麟990則繼續(xù)使用麒麟980上的A76,而競爭對手的芯片則用上了A77,。最近,,麒麟9000用上了A77,競爭對手已經(jīng)用上了A78,。
相比之下,,龍芯則不存在這方面的問題,由于龍芯的IP從頭開始就是自主研發(fā),,歷經(jīng)二十年先后研發(fā)了GS132,、GS132e、GS232,、GS232e/GS264,、GS464、GS464e、GS464V等數(shù)代CPU核,,以及一些未正式命名的小改版本(3A2000和3A3000雖然都是基于GS464e,但其實是兩個版本,,IPC提升了15%,;3A4000和3A5000在公開資料里都是GS464v,但其實連指令集都不一樣,,完全是兩個版本,,IPC提升在15%以上),基于這些CPU核又研發(fā)了幾十款CPU,。由于龍芯實現(xiàn)了核心IP完全自主設計,,這使龍芯并不依賴MIPS的IP,因此,,MIPS是否繼續(xù)研發(fā)MIPS處理器,,對龍芯毫無影響。相對于眾多ARM陣營手機芯片廠商需要持續(xù)從ARM那里購買IP才能保證技術迭代,,龍芯本來就不需要從MIPS購買IP核,。
龍芯的目標就是完全自主可控
早期,龍芯基于MIPS設計CPU,,之后不斷添加指令,,在十多年里,龍芯基于MIPS進行添加了1000多條指令形成了LoongISA,,龍芯3A4000以前的處理器,,都是基于LoongISA。
不過,,MIPS畢竟是一家美國公司,,即便獲得了MIPS永久授權,一旦發(fā)生緊急情況,,還是存在未知風險,。加上MIPS是第一款商用RISC處理器,由于一直保持向下兼容,,積累了很多歷史包袱,,很多被人詬病的問題由于保持兼容的原因一直未修改。在技術飛速發(fā)展的大背景下,,僅僅基于MIPS進行添加指令已經(jīng)無法滿足龍芯的需求,。在外在風險和內(nèi)在需求的雙重刺激下,龍芯開發(fā)自主指令集LoongArch,。
由于不少人懷疑LoongArch又是龍芯基于MIPS魔改,,鐵流特意向一位中科院計算所研究員求證,獲得的回復是“LoongArch自定義指令集,通過二進制翻譯技術兼容MIPS”,。該研究員是RISC-V的支持者,,為RISC-V在中國的推廣做出了巨大貢獻。有鑒于這位研究員與龍芯沒有任何利益關系,,其表態(tài)可靠性極高,。
至于有網(wǎng)友懷疑LoongArch是龍芯拿出來危機公關的言論,其實只要稍微對龍芯有一點了解就可以粉碎這個謠言,。因為3A5000就是基于LoongArch設計,,且已經(jīng)有樣片,將在2021年投放市場,,從確定新指令集到基于新指令將設計一款CPU,,再到完成流片,需要漫長的周期,,龍芯不可能在幾年前就預測到MIPS將于2021年3月宣布投身RISC-V,。很顯然,LoongArch是龍芯籌謀已久的成果,,絕非某些廠商用來應對危機公關的“按揭開源”產(chǎn)品,。
由于采用了LoongArch,徹底杜絕了MIPS指令集一些飽受詬病的問題,,龍芯自定義指令有一些比MIPS指令更優(yōu)秀,,代碼執(zhí)行效率更高,因而在局部(并非全部都更好)出現(xiàn)了二進制翻譯后,,不僅沒有性能損失,,反而性能比直接用MIPS還要好的情況。為此,,鐵流咨詢了行業(yè)人士,,獲得的回復是“二進制翻譯領域,翻譯后效率超過100%,,這個是有先例的”,。
一位開發(fā)者告知:LoongArch和MIPS沒有關系了,新指令集LoongArch基本和MIPS可以一一對應,,當前l(fā)oongArch已經(jīng)非常成熟了,,經(jīng)過了一年的磨合,基本所有的包都編譯好了,,debian的系統(tǒng)和我們常用的ubuntu系統(tǒng)一樣,,apt-get install安裝就可以了,感覺不到是新的指令集,。
從龍芯最初基于MIPS添加指令,,到發(fā)展出基于MIPS的LoongISA,,再到最新的LoongArch,龍芯的目的是非常明確的,,也是顯而易見的,,那就是盡一切可能掌握主導權,堅定不移走自主之路,。
3A5000是龍芯開啟指令集自主的里程碑
在過去這些年,,無論是Imagination,還是Wave Computing都沒有在MIPS投入多少資源,,都只是在拿MIPS的IP賺錢,盡可能榨取MIPS的剩余價值,,主要精力分別放在各自的主營業(yè)務——GPU和AI芯片上,。直接的結(jié)果就是MIPS的CPU發(fā)展非常慢,如今,,龍芯3A4000的性能已經(jīng)大幅超越了MIPS CPU,,龍芯3A5000則在裸CPU性能上相對于龍芯3A4000進一步提升50%至60%,堪稱當下最好的自主CPU,。
Imagination,、Wave Computing在硬件上是如此,在軟件上亦是如此,。就軟件生態(tài)方面,,由于過去這些年Imagination、Wave Computing的不作為,,其實很多方面已經(jīng)是龍芯挑大梁了,。
在龍芯對很多軟件進行移植優(yōu)化的時候,也不忘同時帶上其他MIPS處理器的支持,,在v8,,OpenJDK等JIT虛擬機中,龍芯都已經(jīng)成為了整個MIPS架構的代碼維護者,。半年前UOS也把Loongson內(nèi)核與x86內(nèi)核,、ARM內(nèi)核并列,其中一項更新是增加了對龍芯3A4000的支持,。
過去,,龍芯在MIPS的軟件生態(tài)方面已經(jīng)獲得了一定的主導地位。龍芯完成了,。NET的移植,,成為了Java運行環(huán)境OpenJDK 13的一大貢獻者,現(xiàn)在維護著上游MIPS架構和龍芯擴展的代碼,。諸多多媒體庫,,例如FFmpeg,libvpx,OpenH264,libyuv等,,都已經(jīng)由龍芯針對自己的MMI以及MIPS的MSA等向量指令進行優(yōu)化并提交給上游。有些庫支持龍芯擴展指令甚至比支持MIPS的擴展指令還早,。Linux內(nèi)核的上游也一樣被龍芯生態(tài)鏈成員維護著,。龍芯在開源軟件方面已經(jīng)獲得了一定的發(fā)言與控制權。
MIPS原本的生態(tài)絕大部分已經(jīng)是歷史,,龍芯如今的軟件生態(tài)主要是來自龍芯自己維護的各種開源項目,,以及國內(nèi)各家軟件開發(fā)商對產(chǎn)品的移植,本質(zhì)上已經(jīng)不能再稱為MIPS軟件生態(tài),,而應當稱為龍芯生態(tài),。事實上,在移植一些軟件的時候,,已經(jīng)要區(qū)分龍芯版本和MIPS版本了,。
LoongArch是龍芯籌劃多年的產(chǎn)品,這一點從LoongArch在3A5000 CPU完成流片后才亮相就可能看出來,。龍芯確立LoongArch之后,,龍芯和MIPS已經(jīng)分道揚鑣,毫無關系了,。對于龍芯而言,,無論MIPS存在與否,都不影響龍芯獨立自主建生態(tài),,龍芯過去是這么做的,,現(xiàn)在依然這么做,未來還是這么做,。
過去幾年中,,龍芯是全球還在發(fā)展MIPS高性能處理器的玩家,在龍芯退出MIPS,,立起LoongArch大旗之后,,龍芯3A4000極有可能被定格為最強MIPS處理器。在失去龍芯這個玩家,,MIPS投奔RISC-V后,,MIPS也將成為歷史。LoongArch是獨立生態(tài)的基本點,,3A5000則是龍芯開啟LoongArch新征程的里程碑,。