隨著這些年的發(fā)展,RISC-V的受重視程度與與日俱增。這主要因為它是免費的、靈活的,并且速度很快。這使RISC-V成為許多開發(fā)人員的安全便捷選擇。但是您會認為RISC-V是通用RISC處理器還是定制的隨心所欲處理器?
但答案是兩者都是!然而這是一個悖論。
起初,RISC-V是一種溫和的RISC方案,但是隨著其發(fā)展,RISC-V演變成超級處理器!換而言之,它可以像您希望的那樣平淡無奇或令人興奮,這是其他CPU供應商也試圖實現(xiàn)的一種技巧。
可定制的處理器似乎是世界上最愚蠢的想法。
一方面,處理器生態(tài)系統(tǒng)在兼容性方面蓬勃發(fā)展。如果每個CPU都不相同,則不能開發(fā)編譯器、調試器、操作系統(tǒng)、應用程序和中間件,甚至不能生產高效的程序員。沒有兼容性,我們最好通過焊接導線和換掉硬件來創(chuàng)建程序。CPU的指令集——固定的指令集其實就是軟件的組成部分。這種兼容性推動了更多軟件的成長,更多的工具推出和更多CPU銷售的良性循環(huán)。
但從另一個角度看,通用CPU很無聊。負載會隨著時間而變化,并非每個程序員都需要相同的功能集。我們很多人不需要浮點運算。有些需要位操作指令。其他人則需要Linux支持或矢量操作,或者需要進行奇怪的表查找和內插( interpolate )的東西。
古怪(Oddball)的指令可以有很大的不同,它在如何執(zhí)行處理器方面擁有非常大的差異。游戲玩家在爭論一個Intel CPU與另一個AMD處理器的相對優(yōu)點時,這兩者幾乎是相同的芯片,相差僅百分之幾。將如果將其與低端DSP、高端ARM、PowerPC或x86設計的方式進行比較,兩者之間的差異非常明顯。由此可見,架構和指令集確實很重要。
問題是,當您偏離通用路徑時,將失去兼容性,并且失去軟件支持。指令并不能被RISC編譯器忽略,它們只是浪費多余的硬件。只有匯編語言程序員或愿意編寫編譯器內部函數的程序員才能利用這種額外的能力。除非您調整基準,但這又有什么意義?
RISC-V占據中間位置,并定義了所有處理器共享的基本指令集,以及一組可選的附加模塊。您要浮點數嗎?我們已經設計,定義,創(chuàng)建和提供了所有功能。在RISC-V上執(zhí)行FP的每個人都以相同的方式進行操作,因此編譯器編寫者很高興,因為您的代碼或多或少具有可移植性。
除了這些半標準選項之外,您還可以分支并創(chuàng)建自己的完全自定義的指令。畢竟,這是一個開放源CPU規(guī)范,因此沒有人可以阻止您。如果愿意,您甚至可以嘗試將自己的作品賣回社區(qū)。
其實,可定制的指令集在之前已經完成,并且它們大部分都可以工作。例如Synopsys和Cadence的ARC和Tensilica都允許用戶級定制。它們的工作方式是,當用戶為特定的應用程序編寫有用的新指令時,他們確實確實看到了性能的大幅提高或功耗的降低。雖然這并不總是一個簡單的過程,但是它是有效的。但這種選擇帶來的缺點是自定義軟件支持有限,并且與其他任何芯片都不兼容。
當然,后一個特征實際上可能是一個優(yōu)勢。因為也許你希望混淆你的代碼并避免逆向工程。為此你只需在處理器中添加一些奇數指令,然后在整個軟件中自由使用它們即可。自定義指令的功能甚至都無關緊要。關鍵是其他任何人都不知道。
當然,真正的重點是在代碼中找到熱點( hotspots )并創(chuàng)建自定義指令以加速它們。也許您在邁步時做了大量的存儲工作;自定義加載/存儲對可能會有所幫助。重復的比特旋轉(bit twiddling)可能會壓縮(condensed )為一個特殊用途的操作等等。
即使有可能,但刪除指令也沒有什么意義。每個CPU都需要基準指令才能進行操作。當然,您可以通過很少的指令來解決問題,但這主要是出于學術目的。RISC-V和其他設計在過去20年中使用的核心集包括基本加法,減法(有時只是負加法),邏輯運算和條件流控制(conditional flow control.)。所有這些都是有用的,并且在硬件中實現(xiàn)它們都不復雜。這意味著,它們從來都不是性能瓶頸,因此刪除它們并不會帶來任何的提升。
在另一個極端,你有一個像英特爾的瘋狂的、復雜的Ice Lake 微架構,它擁有數以百計的指令,但很少會使用很多的。這種巴洛克式的指令集不僅使芯片變得臃腫。復雜的CPU具有復雜的互連,大型總線和多個時鐘域。這與RISC-V相距甚遠,即使安裝了可選的增強功能也是如此。
MIPS架構允許用戶自定義已有多年,但ARM堅決抵制這種趨勢。其他一些則位于中間,大多數只允許非常有限的調整。從這個意義上講,RISC-V是更為開放的處理器之一。
隨著RISC-V的激增,確定CPU正在執(zhí)行和未執(zhí)行的操作將變得越來越困難。每個人都可以自由定制,并且許多RISC-V設計師已經擁有了這樣的想法。除了核心指令集和一個或兩個流行的擴展之外,我們還將看到庫存CPU和自定義hot rods之間還有很大的差距。
它們在某種程度上都將是RISC-V,但卻大不相同。
責任編輯:tzh
-
處理器
+關注
關注
68文章
19100瀏覽量
228813 -
cpu
+關注
關注
68文章
10804瀏覽量
210826 -
RISC-V
+關注
關注
44文章
2204瀏覽量
45958
發(fā)布評論請先 登錄
相關推薦
評論