国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

RISC-V 乘法擴展如何為 RV32I 增加高效 32 位乘法運算

發布時間:2022-4-13 11:17    發布者:eechina
關鍵詞: RISC-V , RV32I , 乘法運算
來源:Digi-Key
作者:Bill Giovino

RISC-V 指令集架構 (ISA) 于 2010 年在伯克利問世。雖然 RISC 代表精簡指令集計算機/內核,但制造商在使用 RISC ISA 時,總會忍不住在這里添加一條指令,在那里添加一種新尋址模式,填充操作碼映射表,最后導致架構更像是 CISC(復雜指令集計算機),而不是 RISC。不過,伯克利的 RISC-V 開發人員非常嚴格地要求他們的內核是真正的 RISC。RV32I RISC-V ISA 在最初設計時僅有 47 條基礎指令(這個數字對《星際迷航》的傳統影迷有一種特殊的意義),11 年之后,指令數還是這么多。

之所以保持較少的基礎指令數,其原本的理念是復雜 CISC 指令可以通過一系列的簡單 RISC 指令實現。按照我的經驗,這種做法是否能夠提高代碼效率和精簡代碼,要取決于應用。過去它確實發揮過這樣的作用,以至于 Arm 將很多復雜指令添加到操作碼映射表。

雖然更多指令能夠幫助改進性能,但如果在 32 位內核上運行 32 位指令,然后您希望能夠將一些 32 位指令壓縮為 16 位指令以節省空間,那么情況會變得更加復雜。然而,若要增加 16 位指令,內核的操作碼映射表必須具有更多空間來容納這些壓縮指令,而增加 CISC 指令會減少可用操作碼數量。

在這種情況下,RISC-V 的優勢真正得以發揮。Arm 后來增加了 Thumb2 壓縮指令格式,通過添加單獨的 16 位 ISA,將這些 16 位指令整合到現有的 ISA 中。但是,RISC-V ISA 從一開始設計時就提供了壓縮指令的選項,因而僅有一個 ISA。這樣可以使內核保持簡單高效,也可以簡化半導體設計和測試。

利用乘法指令增強 RISC-V RV32I ISA

制造商可通過添加標準化指令擴展來擴展 47 條指令的 ISA(圖 1)。由于基礎 ISA 沒有乘法或除法指令,因此 M 擴展提供了這種功能。例如,帶有 M 擴展的 RV32I 會被命名為 RV32IM。


圖 1:通過添加標準化指令擴展(用內核名稱后的字母后綴表示),可擴展 47 條指令的 RISC-V 基礎 ISA。(圖片來源:RISC-V.org)

一個帶有 M 擴展的內核示例是 SparkFun Electronics 的 RED-V Thing Plus,它采用開源 150 MHz Freedom E310 (FE310) 32 位 RISC-V 微控制器。該 FE310 內核被命名為 RV32IMAC。請參考圖 1,除了基礎整數計算 (I) 能力之外,它還支持整數乘法 (M)、原子指令 (A) 和壓縮指令 (C)。

SparkFun 的 DEV-15799 RED-V(讀作“紅 5”)是一款 RISC-V 評估板(圖 2),搭載 32 MB 的程序存儲器 QSPI 閃存,帶有 USB-C 連接器,可連接到主機以獲取電源并進行編程和調試。另外還有一個連接器,可用于通過電池供電。


圖 2:SparkFun DEV-15799 評估板用于評估開源 150 MHz FE310 RV32IMAC RISC-V 內核。它通過 USB-C 接口連接到主機。(圖片來源:SparkFun Electronics)

M 擴展增加了有符號和無符號 32/32 除法指令 DIV 和 DIVU,以及有符號和無符號求余指令 REM 和 REMU。它還增加了四條乘法指令:

· MUL 執行 32 x 32 寄存器乘法,將 64 位結果的低 32 位存儲在寄存器中。
· MULH 和 MULHU 分別執行有符號和無符號寄存器乘法,將 64 位結果的高 32 位存儲在寄存器中。
· MULSHU 執行有符號 x 無符號寄存器乘法,將 64 位結果的高 32 位存儲在寄存器中。

因此,對于 32 x 32 = 64 無符號乘法,推薦的代碼序列為:



其中寄存器 rs1 和 rs2 分別是被乘數和乘數,寄存器 rdh 和 rdl 分別是高 32 位和低 32 位結果。

通過將 64 位乘法結果分為兩個 32 位運算,ISA 便不需要添加復雜的 32 x 32 = 64 CISC 指令。這符合使用簡單指令來執行 CISC 運算的 RISC 理念。

基礎 RV32I ISA 中的大多數指令的執行僅需要 1 個指令時鐘周期,但 RED-V FE310 中的這些乘法指令需要 5 個時鐘周期。這樣推算,上面的推薦代碼序列需要 10 個時鐘周期。雖然這在 150 MHz 頻率下是可以接受的,但我見過一些功耗非常低、時鐘速度非常慢的微控制器應用,中斷在這些應用中至關重要,若在 5 MHz 的頻率下執行 10 個時鐘周期的乘法,關鍵中斷是等不起這么長時間的。在此類情況下,我看到一些固件開發人員使用允許中斷的復雜匯編語言子例程來執行乘法。

然而,FE310 內核能夠接受連續指令,并通過宏融合,將這些指令內部融合為一條更快的指令。內核微架構可將兩條指令融合為一條內部指令,這樣其執行就不需要 10 個時鐘周期。RISC-V 微架構自動對一些代碼序列進行融合,例如 indexed loads、load-pair 和 store-pair 指令,從而顯著加快執行速度。更大的好處是,由于 FE310 支持“C”擴展,可以融合兩條兼容的 16 位壓縮指令,因而在代碼和執行速度方面都具備優勢。

Arm 后來才在他們的架構中增加了宏融合,就像壓縮指令那樣,而 RISC-V 從一開始就在設計中提供宏融合。要真正了解代碼壓縮的優勢,以及宏融合發生的時機,最好的方法是使用 SparkFun DEV-15799 等評估板來觀察這些行為。您可在調試器中檢測代碼,了解 FE310 微架構如何提取和執行每條指令。這樣您就能更好地了解匯編語言的行為,幫助您使用支持代碼壓縮和宏融合的 C 編譯器來編寫高效的代碼。

結語

讓人引以為傲是,RISC-V ISA 僅有 47 條基礎指令,是真正的精簡指令集。使用“M”乘法擴展等標準化擴展,可以增加乘法和除法指令,從而增強這種架構。宏融合是 RISC-V 架構固有的功能,可以加快兼容指令的代碼執行速度,例如連續乘法指令,而“C”壓縮擴展則可精簡代碼。相比其他架構,壓縮指令和宏融合都能帶來顯著的性能優勢。
本文地址:http://m.qingdxww.cn/thread-787501-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 女人十八毛片免费特黄 | 色噜噜狠狠狠综合曰曰曰 | 国产91精品黄网在线观看 | 中文字幕日本一区 | 欧美黑人双插 | 欧美日韩一区二区综合 | 成人在线免费视频观看 | 国产香蕉免费精品视频 | 日日摸狠狠的摸夜夜摸 | 午夜探花在线观看 | 日韩久久一区二区三区 | 国产三级自拍视频 | 456亚洲人成影视在线观看 | 亚洲国产综合精品中文第一区 | 亚洲4区| 欧美性一区二区三区 | 好好的日视频www | 亚洲一区二区三区亚瑟 | 国产成人综合91精品 | 日本在线免费 | 欧美交 | 一级毛片在线免费视频 | 免费看片污 | 久久99热这里只有精品 | 亚洲大胆美女人体一二三区 | 国产亚洲福利精品一区二区 | 向日葵.app在线观看 | 亚洲欧美日韩一区高清中文字幕 | 搞黄网站在线观看 | 国产高清区 | 国产麻豆免费观看 | h视频在线观看视频观看 | 国产成人精品一区二区不卡 | 日韩精品麻豆 | 国产人成午夜免费噼啪视频 | 国产91av在线 | 欧美日韩有码 | 99色视频| 亚洲不卡视频在线 | 成人第一页 | 日本成人免费在线 |