有讀者留言希望比較LoongArch和RISC-V,鐵流簡單分析一下。
loongArch是一套全新指令集
在龍芯推出loongArch后,一些人總是把loongArch和MIPS混淆,認(rèn)為龍芯盜版或魔改MIPS,搞了個loongArch。
事實(shí)上,LoongArch 是全新的指令集,有2000多條指令。從2020年二季度開始,龍芯和第三方將LoongArch與國際上主要指令系統(tǒng)有關(guān)資料和幾萬件專利進(jìn)行深入對比分析。工信部下屬單位評估認(rèn)為:LoongArch指令系統(tǒng)手冊在章節(jié)結(jié)構(gòu)、指令說明結(jié)構(gòu)和指令內(nèi)容表達(dá)方面與上述國際上主要指令系統(tǒng)存在明顯區(qū)別。LoongArch基礎(chǔ)架構(gòu)未發(fā)現(xiàn)對上述國際上主要指令系統(tǒng)中國專利的侵權(quán)風(fēng)險。
具體來說,LoongArch摒棄了傳統(tǒng)指令系統(tǒng)中部分不適應(yīng)當(dāng)前軟硬件設(shè)計技術(shù)發(fā)展趨勢的陳舊內(nèi)容,吸納了近年來指令系統(tǒng)設(shè)計領(lǐng)域諸多先進(jìn)的技術(shù)發(fā)展成果。比如重新設(shè)計的指令格式可以包含更多的指令槽,有利于以后的長遠(yuǎn)發(fā)展。MIPS只有3種指令格式,LoongArch重新設(shè)計了指令格式 ,使可用的格式多達(dá)10種 ,其包含3種無立即數(shù)格式和7種有立即數(shù)格式。例如單條指令支持的立即數(shù)從MIPS的最大16位擴(kuò)展到最大24位,分支跳轉(zhuǎn)偏移也從64K擴(kuò)展到1M字節(jié),以及尋址空間從固定分段改變?yōu)閱我黄矫娴?,都有效減少了編譯結(jié)果的目標(biāo)指令條數(shù)和訪存次數(shù),提高了效能。在Coremark的測試中,程序運(yùn)行過程中執(zhí)行的指令總數(shù)LoongArch為MIPS的83%,相當(dāng)于運(yùn)行效率提高了20%。LoongArch指令集計算CRC32的速度則是MIPS的4倍。
事實(shí)上,開發(fā)一套指令集并不難,難得是開發(fā)一套高效率的指令系統(tǒng)并將其實(shí)現(xiàn),也就是基于該指令集開發(fā)CPU,以及基于該指令集開發(fā)一整套軟件生態(tài)。
指令集不是越少越好
最初,CPU的指令系統(tǒng)相對簡單,隨著面對的應(yīng)用越來越復(fù)雜,CPU的指令系統(tǒng)也隨之越來越龐大。半個世紀(jì)前,美國學(xué)術(shù)界提出了一種新的思路,把各種指令功能盡可能的拆解為最小單元,把相同的單元合并為一條指令,所有的復(fù)雜功能都可以使用這些簡單指令組合實(shí)現(xiàn),分解指令執(zhí)行的每一個步驟,盡量使每一條指令都只消耗一個時鐘周期,實(shí)現(xiàn)指令流水線設(shè)計,而這是傳統(tǒng)指令系統(tǒng)所做不到的。
RISC指令集也就應(yīng)運(yùn)而生,斯坦福大學(xué)的幾名老師帶著研究生成立了MIPS項目組,開發(fā)的MIPS CPU所用的晶體管只有CISC處理器的幾分之一,但性能卻更強(qiáng),在1983年的ISSCC大會上大放異彩。隨后,Alpha、Power、PA-RISC、SPARC等諸多RISC指令集百花齊放。Intel雖然堅持CISC指令系統(tǒng),但也引入了RISC的思路,CPU后端使用類RISC流水線的設(shè)計,在CISC指令集解碼的階段轉(zhuǎn)換為RISC類的指令,使自己的CISC處理器在性能上不被RISC處理器超越。
也許是這段歷史太過刻骨銘心,使很多人先天就認(rèn)為指令集越少越好,RISC優(yōu)于CISC,本能認(rèn)為loongArch指令數(shù)達(dá)到2000條,而RISC-V不破白條,因而RISC-V更好。
事實(shí)上,隨著時代發(fā)展,RISC指令集的指令數(shù)量越來越多,同時,CISC也借鑒了RISC的優(yōu)點(diǎn),兩者已經(jīng)殊途同歸了。
RISC-V的思路和半個世紀(jì)前開發(fā)MIPS時的思路是類似的,指令集盡可能精簡,因為指令數(shù)量少,CPU微結(jié)構(gòu)中使用的晶體管就少,設(shè)計難度、研發(fā)成本、生產(chǎn)成本、產(chǎn)品功耗等都可以壓制到極低的水平。
不過,現(xiàn)階段的RISC-V有些過度“精簡”了,只有四十多條基礎(chǔ)指令,加速擴(kuò)展指令,指令數(shù)量依然沒有破百,能夠?qū)崿F(xiàn)的功能相對有限,雖然在嵌入式CPU上,這些指令已經(jīng)足夠,但在桌面和服務(wù)器等高性能領(lǐng)域,這點(diǎn)指令是不夠用的。
因為桌面和服務(wù)器應(yīng)對的場景更加復(fù)雜,就必然需要相應(yīng)的指令去滿足這些應(yīng)用場景,在嵌入式這種用途單一且性能要求一般的場景,幾十條指令夠用,這是RISC-V所擅長的。但在桌面和服務(wù)器上,RISC-V指令集過于精簡反而是其劣勢。
舉例來說,SG2042搭載64核玄鐵C910,主頻2.0GHz,每16核為一個numa節(jié)點(diǎn),共4個內(nèi)存通道。SPEC CPU2006 單核測試,使用社區(qū)版GCC10,int_base測試最好成績?yōu)?.97。使用廠家推薦參數(shù)調(diào)優(yōu),int_base測試得分10.6。作為對比,龍芯3A6000 int_base 43+,差距是非常明顯的。
事實(shí)上,龍芯也有類似RISC-V的指令系統(tǒng),那就是LoongArch精簡版,共有50條指令,基于LoongArch精簡版開發(fā)的CPU已經(jīng)向高校開源用于教育。如果RISC-V要開發(fā)高性能CPU,必然要對指令集進(jìn)行擴(kuò)展,其實(shí),X86、ARM這些成熟指令系統(tǒng)都是上千條指令。
LoongArch精簡版是對LoongArch的剪裁,而RISC-V還需要繼續(xù)添加各種擴(kuò)展指令,才能成為成熟的指令集,目前的RISC-V還不適合用到復(fù)雜多變的桌面和服務(wù)器環(huán)境中。
編輯:黃飛
-
cpu
+關(guān)注
關(guān)注
68文章
10807瀏覽量
210852 -
指令系統(tǒng)
+關(guān)注
關(guān)注
1文章
81瀏覽量
15633 -
RISC
+關(guān)注
關(guān)注
6文章
461瀏覽量
83637 -
指令集
+關(guān)注
關(guān)注
0文章
221瀏覽量
23346 -
RISC-V
+關(guān)注
關(guān)注
44文章
2208瀏覽量
45959
原文標(biāo)題:淺談LoongArch和RISC-V
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論