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