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