談論配置基本處理器或添加自定義擴展以解決片上系統(tǒng) (SoC) 中的硬件-軟件設計權衡并不是什么新鮮事。這一直是 RISC-V 社區(qū)所支持的價值主張的關鍵部分,發(fā)布了許多信息并從中受益,例如“使用恰到好處的 RISC-V 自定義指令加速應用程序的指南”。
在為當今的許多產(chǎn)品設計系統(tǒng)時,功耗、性能和芯片面積限制了許多復雜的人工 (AI) 和機器學習 (ML) SoC 要求。
擴展開源 RISC-V 指令集架構 (ISA) 作為解決這些限制的有效手段經(jīng)常被忽視。最近由半導體行業(yè)設計服務公司 Quantum Leap Solutions 領導的網(wǎng)絡研討會小組試圖幫助解開擴展 RISC-V ISA 以用于 SoC 設計的謎團。這場題為“ RISC-V 靈活性——自定義擴展的力量”的網(wǎng)絡研討會回答了 100 多名與會者的提問。
小組成員試圖深入了解修改后的 ISA 在設計新興應用程序中的作用,以及設計人員如何看待對新型 RISC-V 指令集架構的擴展。
?
Quantum Leap Solutions RISC-V 擴展網(wǎng)絡研討會的小組成員
由 Quantum Leap Solutions 創(chuàng)始人兼總裁 Mike Ingster 主持,小組成員有:
Andes Technology 的 FAE 總監(jiān) John Min
Imperas Software 銷售副總裁 Larry Lapides
Mike Ingster:為什么 RISC-V 比其他 CPU 架構更適合 AI 和 ML 學習應用程序?
John Min:RISC-V 的發(fā)明時間恰逢人工智能成為主流。RISC-V 矢量指令集的設計考慮了 AI 和 VR 類型的應用程序。
Larry Lapides:我要補充一點,在具有多路異構處理器陣列的 AI 應用程序中——我們已經(jīng)看到不止一次實現(xiàn)的架構——設計人員可以在陣列中組合標量和矢量處理器。其次,RISC-V 架構允許設計人員刪除不必要的功能,同時保留向量指令。這提供了更好的價格、性能和面積——PPA。
Ingster:帶有矢量擴展的 RISC-V 內核也可以使用自定義指令進行擴展嗎?
敏:是的。一個示例是具有參考實現(xiàn)的 RISC-V 矢量內核,該參考實現(xiàn)采用客戶擴展來添加額外的緩沖區(qū)。這可以防止向量單元因缺少數(shù)據(jù)而停止。
Lapides: Imperas 和 Andes 有共同的客戶,他們已經(jīng)實施了自定義功能來幫助該領域。
Ingster:在多處理器陣列中,是否所有 CPU 都需要相同的配置?或者他們可以有不同的自定義說明嗎?
Lapides:是的,SoC 設計中的異構處理器很常見。此外,不僅是自定義指令會因處理器而異。每個處理器的基本指令也可以不同。例如,一個處理器可能有向量指令和另一個處理器標量指令。這些可以交錯和組合。
Min:在多路復用陣列中,CPU 和模擬器都可以是異構的,以啟用多核模擬。
Ingster:您在市場上看到服務器級 RISC-V 處理器嗎?
敏:它來了。隨著時間的推移,CPU 設計以不同的方式變得更快。一是提高頻率。另一個是通過擴展 CPU 管道。另一種是通過設計處理器來亂序執(zhí)行指令。并且將擴大執(zhí)行寬度以提供更超標量的組織,或者——今天變得普遍——采用數(shù)千個多核的設計。我們看到這些元素被整合到用于人工智能企業(yè)應用程序的下一代 RISC-V 處理器中只是時間問題。
Lapides:如果我們回顧 RISC-V 的過去歷史,我們會發(fā)現(xiàn)最初有 32 位和 64 位 SoC 的概念驗證,但大約兩年前,我們開始看到專注于安全和物聯(lián)網(wǎng)的 SoC:32 位 SoC與微控制器競爭?,F(xiàn)在我們開始看到第一個應用級處理器。它們不是服務器級的,但我們在 64 位 RISC-V 處理器上看到了初始芯片,運行真正的 RTOS,著眼于高端應用程序。我們開始看到正在構建一些亂序的管道。我預計在未來兩到三年內會出現(xiàn)第一款服務器級 RISC-V 處理器。
Ingster:自定義擴展能否提供設備安全性和生命周期管理?
Min:是的,取決于實施。例如,通過啟用指令擴展來執(zhí)行檢查。程序檢查自定義擴展。如果它不存在,則阻止該軟件執(zhí)行。另一種選擇是實現(xiàn)一個自定義端口到內存。因此,RISC-V CPU 將有一條專用總線連接到內存,而不是使用主總線。
Taek Nam:設計人員可以使用 Tessent 嵌入式分析 IP 在具有自定義擴展的 SoC 中進行安全和生命周期管理。
Ingster:為什么 RISC-V 的自定義指令方法與 ARC 和 Tensilica 等其他方法不同?
Min:CPU 使用自定義擴展來加速特定任務。RISC-V 的不同之處在于它提供了一種正式的機制來將自定義擴展合并到標準中。
Ingster:開發(fā)人員如何與客戶或合作伙伴共享自定義指令?
敏:有三個選項。首先,保持私密。其次,提議在標準中加入RISC-V International。例如,Andes 向 RISC-V International 捐贈了一套 DSP 指令。這些現(xiàn)在是 RISC-V 標準的 P 擴展。第三,如果您與他人共享指令的用法,您將共享內在函數(shù)和頭文件。如果您計劃共享自定義指令的實現(xiàn),您可能需要進行三向 NDA。
Lapides:定制擴展開發(fā)人員可以將模型作為開源或二進制模型、ISS 或指令精確處理器模型傳遞給他們的客戶或合作伙伴,可用于早期的硅前軟件開發(fā)。
Ingster:自定義擴展會導致 RISC-V 社區(qū)內的兼容性問題嗎?
Min:這將取決于自定義指令的使用方式。如果自定義指令是專有的,根據(jù)定義,它不會導致碎片,因為開發(fā)人員是唯一使用它的人。如果自定義指令變得如此成功,它被許多其他人使用,也許是時候將其合并到基本的 RISC-V 集中了。將其公開或保持專有由創(chuàng)建者決定。無論哪種方式,都不會發(fā)生碎片。
Ingster:當前版本的編譯器是否支持矢量處理器?
Min: The RISC-V vector extensions, version 0.8, are stable enough that compilers support them. Both GCC and LLVM support the existing 0.8 version of the spec. Final versions of the compilers will be available when the RISC-V Vector Extension specification has been finalized.
Ingster:? How are custom extensions supported in the software tool chain?
Lapides: Designers add the custom extensions to their RISC-V model, thus providing an instruction set simulator that can be used for software development. On the tool chain side, support for new custom extensions can be added into GCC and LLVM.? Both are open source tool chains and can be modified at the customer’s discretion. Designers can also assemble a macro implementation to support a custom instruction.
Ingster: How is the compiler made aware of a newly created custom instruction?
Lapides: The software team has to implement the instruction in the compiler.
Min: An alternative without the hard work of making the addition, especially if the intent is to keep the instruction proprietary is to treat the custom instruction like a library – for example, DSP libraries. Then when the custom instruction is needed in program execution, call the library with a header file. Thus, for minimal work, the design team achieves much of the gain expected from creating a custom function.
Ingster: What OSs are supported on RISC-V and is there support for Android?
Lapides:我還沒有看到支持 Android,但有一些使用 RISC-V 設計的可穿戴設備。Linux free RTOS,Zephyr RTOS 是主要支持的。還支持其他實時操作系統(tǒng)。RISC-V International 的軟件網(wǎng)頁有完整的列表。
最小值:Android OS 尚未在 RISC-V 處理器上得到驗證。我相信這更像是一個移植練習,而不是它能否運行的問題。RISC-V 內核當前運行 Linux。
Ingster:如何驗證自定義擴展?
Lapides:自定義擴展被添加到設計的 RTL 中,但它們也必須添加到處理器模型中??梢允褂么斯δ茯炞C自定義指令和自定義寄存器。通常,向在指令集模擬器上運行的處理器模型添加擴展允許軟件開發(fā)。
Taek:我們最近有一個客戶在他們的 SoC 中實現(xiàn)了自定義指令。使用我們的嵌入式分析 IP,他們的目標是通過添加自定義擴展來驗證他們的軟件性能改進。這是通過使用跟蹤來跟蹤數(shù)據(jù)和指令執(zhí)行來實現(xiàn)的。這是驗證性能改進的有效方法。
Ingster:添加嵌入式分析 IP 需要多少面積?
Taek:沒有標準答案,但 1% 是嵌入式分析 IP 領域的典型報價。該估計包括分析模型、通信器和連接這些元素的消息結構。因為這些塊有多個選項,所以不同的配置是可能的。評估每個客戶的設計,并配置嵌入式分析 IP 以在他們的設計中實施。以此方式估計總面積。我們確定了一種解決方案,可以最大限度地減少對區(qū)域的影響,從而為給定的設計提供最佳價值。
這些是小組的亮點,其完整版由Quantum Leap Solutions托管。
評論
查看更多