談?wù)撆渲没?a target="_blank">處理器或添加自定義擴(kuò)展以解決片上系統(tǒng) (SoC) 中的硬件-軟件設(shè)計(jì)權(quán)衡并不是什么新鮮事。這一直是 RISC-V 社區(qū)所支持的價(jià)值主張的關(guān)鍵部分,發(fā)布了許多信息并從中受益,例如“使用恰到好處的 RISC-V 自定義指令加速應(yīng)用程序的指南”。
在為當(dāng)今的許多產(chǎn)品設(shè)計(jì)系統(tǒng)時(shí),功耗、性能和芯片面積限制了許多復(fù)雜的人工 (AI) 和機(jī)器學(xué)習(xí) (ML) SoC 要求。
擴(kuò)展開源 RISC-V 指令集架構(gòu) (ISA) 作為解決這些限制的有效手段經(jīng)常被忽視。最近由半導(dǎo)體行業(yè)設(shè)計(jì)服務(wù)公司 Quantum Leap Solutions 領(lǐng)導(dǎo)的網(wǎng)絡(luò)研討會(huì)小組試圖幫助解開擴(kuò)展 RISC-V ISA 以用于 SoC 設(shè)計(jì)的謎團(tuán)。這場題為“ RISC-V 靈活性——自定義擴(kuò)展的力量”的網(wǎng)絡(luò)研討會(huì)回答了 100 多名與會(huì)者的提問。
小組成員試圖深入了解修改后的 ISA 在設(shè)計(jì)新興應(yīng)用程序中的作用,以及設(shè)計(jì)人員如何看待對(duì)新型 RISC-V 指令集架構(gòu)的擴(kuò)展。
?
Quantum Leap Solutions RISC-V 擴(kuò)展網(wǎng)絡(luò)研討會(huì)的小組成員
由 Quantum Leap Solutions 創(chuàng)始人兼總裁 Mike Ingster 主持,小組成員有:
Andes Technology 的 FAE 總監(jiān) John Min
Imperas Software 銷售副總裁 Larry Lapides
Mentor 高級(jí)應(yīng)用工程師 Taek Nam
Mike Ingster:為什么 RISC-V 比其他 CPU 架構(gòu)更適合 AI 和 ML 學(xué)習(xí)應(yīng)用程序?
John Min:RISC-V 的發(fā)明時(shí)間恰逢人工智能成為主流。RISC-V 矢量指令集的設(shè)計(jì)考慮了 AI 和 VR 類型的應(yīng)用程序。
Larry Lapides:我要補(bǔ)充一點(diǎn),在具有多路異構(gòu)處理器陣列的 AI 應(yīng)用程序中——我們已經(jīng)看到不止一次實(shí)現(xiàn)的架構(gòu)——設(shè)計(jì)人員可以在陣列中組合標(biāo)量和矢量處理器。其次,RISC-V 架構(gòu)允許設(shè)計(jì)人員刪除不必要的功能,同時(shí)保留向量指令。這提供了更好的價(jià)格、性能和面積——PPA。
Ingster:帶有矢量擴(kuò)展的 RISC-V 內(nèi)核也可以使用自定義指令進(jìn)行擴(kuò)展嗎?
敏:是的。一個(gè)示例是具有參考實(shí)現(xiàn)的 RISC-V 矢量內(nèi)核,該參考實(shí)現(xiàn)采用客戶擴(kuò)展來添加額外的緩沖區(qū)。這可以防止向量單元因缺少數(shù)據(jù)而停止。
Lapides: Imperas 和 Andes 有共同的客戶,他們已經(jīng)實(shí)施了自定義功能來幫助該領(lǐng)域。
Ingster:在多處理器陣列中,是否所有 CPU 都需要相同的配置?或者他們可以有不同的自定義說明嗎?
Lapides:是的,SoC 設(shè)計(jì)中的異構(gòu)處理器很常見。此外,不僅是自定義指令會(huì)因處理器而異。每個(gè)處理器的基本指令也可以不同。例如,一個(gè)處理器可能有向量指令和另一個(gè)處理器標(biāo)量指令。這些可以交錯(cuò)和組合。
Min:在多路復(fù)用陣列中,CPU 和模擬器都可以是異構(gòu)的,以啟用多核模擬。
Ingster:您在市場上看到服務(wù)器級(jí) RISC-V 處理器嗎?
敏:它來了。隨著時(shí)間的推移,CPU 設(shè)計(jì)以不同的方式變得更快。一是提高頻率。另一個(gè)是通過擴(kuò)展 CPU 管道。另一種是通過設(shè)計(jì)處理器來亂序執(zhí)行指令。并且將擴(kuò)大執(zhí)行寬度以提供更超標(biāo)量的組織,或者——今天變得普遍——采用數(shù)千個(gè)多核的設(shè)計(jì)。我們看到這些元素被整合到用于人工智能企業(yè)應(yīng)用程序的下一代 RISC-V 處理器中只是時(shí)間問題。
Lapides:如果我們回顧 RISC-V 的過去歷史,我們會(huì)發(fā)現(xiàn)最初有 32 位和 64 位 SoC 的概念驗(yàn)證,但大約兩年前,我們開始看到專注于安全和物聯(lián)網(wǎng)的 SoC:32 位 SoC與微控制器競爭。現(xiàn)在我們開始看到第一個(gè)應(yīng)用級(jí)處理器。它們不是服務(wù)器級(jí)的,但我們?cè)?64 位 RISC-V 處理器上看到了初始芯片,運(yùn)行真正的 RTOS,著眼于高端應(yīng)用程序。我們開始看到正在構(gòu)建一些亂序的管道。我預(yù)計(jì)在未來兩到三年內(nèi)會(huì)出現(xiàn)第一款服務(wù)器級(jí) RISC-V 處理器。
Ingster:自定義擴(kuò)展能否提供設(shè)備安全性和生命周期管理?
Min:是的,取決于實(shí)施。例如,通過啟用指令擴(kuò)展來執(zhí)行檢查。程序檢查自定義擴(kuò)展。如果它不存在,則阻止該軟件執(zhí)行。另一種選擇是實(shí)現(xiàn)一個(gè)自定義端口到內(nèi)存。因此,RISC-V CPU 將有一條專用總線連接到內(nèi)存,而不是使用主總線。
Taek Nam:設(shè)計(jì)人員可以使用 Tessent 嵌入式分析 IP 在具有自定義擴(kuò)展的 SoC 中進(jìn)行安全和生命周期管理。
Ingster:為什么 RISC-V 的自定義指令方法與 ARC 和 Tensilica 等其他方法不同?
Min:CPU 使用自定義擴(kuò)展來加速特定任務(wù)。RISC-V 的不同之處在于它提供了一種正式的機(jī)制來將自定義擴(kuò)展合并到標(biāo)準(zhǔn)中。
Ingster:開發(fā)人員如何與客戶或合作伙伴共享自定義指令?
敏:有三個(gè)選項(xiàng)。首先,保持私密。其次,提議在標(biāo)準(zhǔn)中加入RISC-V International。例如,Andes 向 RISC-V International 捐贈(zèng)了一套 DSP 指令。這些現(xiàn)在是 RISC-V 標(biāo)準(zhǔn)的 P 擴(kuò)展。第三,如果您與他人共享指令的用法,您將共享內(nèi)在函數(shù)和頭文件。如果您計(jì)劃共享自定義指令的實(shí)現(xiàn),您可能需要進(jìn)行三向 NDA。
Lapides:定制擴(kuò)展開發(fā)人員可以將模型作為開源或二進(jìn)制模型、ISS 或指令精確處理器模型傳遞給他們的客戶或合作伙伴,可用于早期的硅前軟件開發(fā)。
Ingster:自定義擴(kuò)展會(huì)導(dǎo)致 RISC-V 社區(qū)內(nèi)的兼容性問題嗎?
Min:這將取決于自定義指令的使用方式。如果自定義指令是專有的,根據(jù)定義,它不會(huì)導(dǎo)致碎片,因?yàn)殚_發(fā)人員是唯一使用它的人。如果自定義指令變得如此成功,它被許多其他人使用,也許是時(shí)候?qū)⑵浜喜⒌交镜?RISC-V 集中了。將其公開或保持專有由創(chuàng)建者決定。無論哪種方式,都不會(huì)發(fā)生碎片。
Ingster:當(dāng)前版本的編譯器是否支持矢量處理器?
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 設(shè)計(jì)的可穿戴設(shè)備。Linux free RTOS,Zephyr RTOS 是主要支持的。還支持其他實(shí)時(shí)操作系統(tǒng)。RISC-V International 的軟件網(wǎng)頁有完整的列表。
最小值:Android OS 尚未在 RISC-V 處理器上得到驗(yàn)證。我相信這更像是一個(gè)移植練習(xí),而不是它能否運(yùn)行的問題。RISC-V 內(nèi)核當(dāng)前運(yùn)行 Linux。
Ingster:如何驗(yàn)證自定義擴(kuò)展?
Lapides:自定義擴(kuò)展被添加到設(shè)計(jì)的 RTL 中,但它們也必須添加到處理器模型中??梢允褂么斯δ茯?yàn)證自定義指令和自定義寄存器。通常,向在指令集模擬器上運(yùn)行的處理器模型添加擴(kuò)展允許軟件開發(fā)。
Taek:我們最近有一個(gè)客戶在他們的 SoC 中實(shí)現(xiàn)了自定義指令。使用我們的嵌入式分析 IP,他們的目標(biāo)是通過添加自定義擴(kuò)展來驗(yàn)證他們的軟件性能改進(jìn)。這是通過使用跟蹤來跟蹤數(shù)據(jù)和指令執(zhí)行來實(shí)現(xiàn)的。這是驗(yàn)證性能改進(jìn)的有效方法。
Ingster:添加嵌入式分析 IP 需要多少面積?
Taek:沒有標(biāo)準(zhǔn)答案,但 1% 是嵌入式分析 IP 領(lǐng)域的典型報(bào)價(jià)。該估計(jì)包括分析模型、通信器和連接這些元素的消息結(jié)構(gòu)。因?yàn)檫@些塊有多個(gè)選項(xiàng),所以不同的配置是可能的。評(píng)估每個(gè)客戶的設(shè)計(jì),并配置嵌入式分析 IP 以在他們的設(shè)計(jì)中實(shí)施。以此方式估計(jì)總面積。我們確定了一種解決方案,可以最大限度地減少對(duì)區(qū)域的影響,從而為給定的設(shè)計(jì)提供最佳價(jià)值。
這些是小組的亮點(diǎn),其完整版由Quantum Leap Solutions托管。
評(píng)論
查看更多