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