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

評(píng)論