《電子技術應用》
您所在的位置:首頁 > 電子元件 > 業(yè)界動態(tài) > RISC-V的自定義CPU悖論

RISC-V的自定義CPU悖論

2020-11-17
來源:半導體行業(yè)觀察
關鍵詞: RISC-V 處理器

  隨著這些年的發(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ā)編譯器、調(diào)試器、操作系統(tǒng)、應用程序和中間件,甚至不能生產(chǎn)高效的程序員。沒有兼容性,我們最好通過焊接導線和換掉硬件來創(chuàng)建程序。CPU的指令集——固定的指令集其實就是軟件的組成部分。這種兼容性推動了更多軟件的成長,更多的工具推出和更多CPU銷售的良性循環(huán)。

  但從另一個角度看,通用CPU很無聊。負載會隨著時間而變化,并非每個程序員都需要相同的功能集。我們很多人不需要浮點運算。有些需要位操作指令。其他人則需要Linux支持或矢量操作,或者需要進行奇怪的表查找和內(nèi)插( interpolate )的東西。

  古怪(Oddball)的指令可以有很大的不同,它在如何執(zhí)行處理器方面擁有非常大的差異。游戲玩家在爭論一個Intel CPU與另一個AMD處理器的相對優(yōu)點時,這兩者幾乎是相同的芯片,相差僅百分之幾。將如果將其與低端DSP、高端ARM、PowerPC或x86設計的方式進行比較,兩者之間的差異非常明顯。由此可見,架構和指令集確實很重要。

  問題是,當您偏離通用路徑時,將失去兼容性,并且失去軟件支持。指令并不能被RISC編譯器忽略,它們只是浪費多余的硬件。只有匯編語言程序員或愿意編寫編譯器內(nèi)部函數(shù)的程序員才能利用這種額外的能力。除非您調(diào)整基準,但這又有什么意義?

  RISC-V占據(jù)中間位置,并定義了所有處理器共享的基本指令集,以及一組可選的附加模塊。您要浮點數(shù)嗎?我們已經(jīng)設計,定義,創(chuàng)建和提供了所有功能。在RISC-V上執(zhí)行FP的每個人都以相同的方式進行操作,因此編譯器編寫者很高興,因為您的代碼或多或少具有可移植性。

  除了這些半標準選項之外,您還可以分支并創(chuàng)建自己的完全自定義的指令。畢竟,這是一個開放源CPU規(guī)范,因此沒有人可以阻止您。如果愿意,您甚至可以嘗試將自己的作品賣回社區(qū)。

  其實,可定制的指令集在之前已經(jīng)完成,并且它們大部分都可以工作。例如Synopsys和Cadence的ARC和Tensilica都允許用戶級定制。它們的工作方式是,當用戶為特定的應用程序編寫有用的新指令時,他們確實確實看到了性能的大幅提高或功耗的降低。雖然這并不總是一個簡單的過程,但是它是有效的。但這種選擇帶來的缺點是自定義軟件支持有限,并且與其他任何芯片都不兼容。

  當然,后一個特征實際上可能是一個優(yōu)勢。因為也許你希望混淆你的代碼并避免逆向工程。為此你只需在處理器中添加一些奇數(shù)指令,然后在整個軟件中自由使用它們即可。自定義指令的功能甚至都無關緊要。關鍵是其他任何人都不知道。

  當然,真正的重點是在代碼中找到熱點( hotspots )并創(chuàng)建自定義指令以加速它們。也許您在邁步時做了大量的存儲工作;自定義加載/存儲對可能會有所幫助。重復的比特旋轉(bit twiddling)可能會壓縮(condensed )為一個特殊用途的操作等等。

  即使有可能,但刪除指令也沒有什么意義。每個CPU都需要基準指令才能進行操作。當然,您可以通過很少的指令來解決問題,但這主要是出于學術目的。RISC-V和其他設計在過去20年中使用的核心集包括基本加法,減法(有時只是負加法),邏輯運算和條件流控制(conditional flow control.)。所有這些都是有用的,并且在硬件中實現(xiàn)它們都不復雜。這意味著,它們從來都不是性能瓶頸,因此刪除它們并不會帶來任何的提升。

  在另一個極端,你有一個像英特爾的瘋狂的、復雜的Ice Lake 微架構,它擁有數(shù)以百計的指令,但很少會使用很多的。這種巴洛克式的指令集不僅使芯片變得臃腫。復雜的CPU具有復雜的互連,大型總線和多個時鐘域。這與RISC-V相距甚遠,即使安裝了可選的增強功能也是如此。

  MIPS架構允許用戶自定義已有多年,但ARM堅決抵制這種趨勢。其他一些則位于中間,大多數(shù)只允許非常有限的調(diào)整。從這個意義上講,RISC-V是更為開放的處理器之一。

  隨著RISC-V的激增,確定CPU正在執(zhí)行和未執(zhí)行的操作將變得越來越困難。每個人都可以自由定制,并且許多RISC-V設計師已經(jīng)擁有了這樣的想法。除了核心指令集和一個或兩個流行的擴展之外,我們還將看到庫存CPU和自定義hot rods之間還有很大的差距。

  它們在某種程度上都將是RISC-V,但卻大不相同。

  


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。