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

RISC-V 乘法擴(kuò)展如何為 RV32I 增加高效 32 位乘法運(yùn)算

發(fā)布時(shí)間:2022-4-13 11:17    發(fā)布者:eechina
關(guān)鍵詞: RISC-V , RV32I , 乘法運(yùn)算
來(lái)源:Digi-Key
作者:Bill Giovino

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

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

雖然更多指令能夠幫助改進(jìn)性能,但如果在 32 位內(nèi)核上運(yùn)行 32 位指令,然后您希望能夠?qū)⒁恍?32 位指令壓縮為 16 位指令以節(jié)省空間,那么情況會(huì)變得更加復(fù)雜。然而,若要增加 16 位指令,內(nèi)核的操作碼映射表必須具有更多空間來(lái)容納這些壓縮指令,而增加 CISC 指令會(huì)減少可用操作碼數(shù)量。

在這種情況下,RISC-V 的優(yōu)勢(shì)真正得以發(fā)揮。Arm 后來(lái)增加了 Thumb2 壓縮指令格式,通過(guò)添加單獨(dú)的 16 位 ISA,將這些 16 位指令整合到現(xiàn)有的 ISA 中。但是,RISC-V ISA 從一開(kāi)始設(shè)計(jì)時(shí)就提供了壓縮指令的選項(xiàng),因而僅有一個(gè) ISA。這樣可以使內(nèi)核保持簡(jiǎn)單高效,也可以簡(jiǎn)化半導(dǎo)體設(shè)計(jì)和測(cè)試。

利用乘法指令增強(qiáng) RISC-V RV32I ISA

制造商可通過(guò)添加標(biāo)準(zhǔn)化指令擴(kuò)展來(lái)擴(kuò)展 47 條指令的 ISA(圖 1)。由于基礎(chǔ) ISA 沒(méi)有乘法或除法指令,因此 M 擴(kuò)展提供了這種功能。例如,帶有 M 擴(kuò)展的 RV32I 會(huì)被命名為 RV32IM。


圖 1:通過(guò)添加標(biāo)準(zhǔn)化指令擴(kuò)展(用內(nèi)核名稱(chēng)后的字母后綴表示),可擴(kuò)展 47 條指令的 RISC-V 基礎(chǔ) ISA。(圖片來(lái)源:RISC-V.org)

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

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


圖 2:SparkFun DEV-15799 評(píng)估板用于評(píng)估開(kāi)源 150 MHz FE310 RV32IMAC RISC-V 內(nèi)核。它通過(guò) USB-C 接口連接到主機(jī)。(圖片來(lái)源:SparkFun Electronics)

M 擴(kuò)展增加了有符號(hào)和無(wú)符號(hào) 32/32 除法指令 DIV 和 DIVU,以及有符號(hào)和無(wú)符號(hào)求余指令 REM 和 REMU。它還增加了四條乘法指令:

· MUL 執(zhí)行 32 x 32 寄存器乘法,將 64 位結(jié)果的低 32 位存儲(chǔ)在寄存器中。
· MULH 和 MULHU 分別執(zhí)行有符號(hào)和無(wú)符號(hào)寄存器乘法,將 64 位結(jié)果的高 32 位存儲(chǔ)在寄存器中。
· MULSHU 執(zhí)行有符號(hào) x 無(wú)符號(hào)寄存器乘法,將 64 位結(jié)果的高 32 位存儲(chǔ)在寄存器中。

因此,對(duì)于 32 x 32 = 64 無(wú)符號(hào)乘法,推薦的代碼序列為:



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

通過(guò)將 64 位乘法結(jié)果分為兩個(gè) 32 位運(yùn)算,ISA 便不需要添加復(fù)雜的 32 x 32 = 64 CISC 指令。這符合使用簡(jiǎn)單指令來(lái)執(zhí)行 CISC 運(yùn)算的 RISC 理念。

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

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

Arm 后來(lái)才在他們的架構(gòu)中增加了宏融合,就像壓縮指令那樣,而 RISC-V 從一開(kāi)始就在設(shè)計(jì)中提供宏融合。要真正了解代碼壓縮的優(yōu)勢(shì),以及宏融合發(fā)生的時(shí)機(jī),最好的方法是使用 SparkFun DEV-15799 等評(píng)估板來(lái)觀察這些行為。您可在調(diào)試器中檢測(cè)代碼,了解 FE310 微架構(gòu)如何提取和執(zhí)行每條指令。這樣您就能更好地了解匯編語(yǔ)言的行為,幫助您使用支持代碼壓縮和宏融合的 C 編譯器來(lái)編寫(xiě)高效的代碼。

結(jié)語(yǔ)

讓人引以為傲是,RISC-V ISA 僅有 47 條基礎(chǔ)指令,是真正的精簡(jiǎn)指令集。使用“M”乘法擴(kuò)展等標(biāo)準(zhǔn)化擴(kuò)展,可以增加乘法和除法指令,從而增強(qiáng)這種架構(gòu)。宏融合是 RISC-V 架構(gòu)固有的功能,可以加快兼容指令的代碼執(zhí)行速度,例如連續(xù)乘法指令,而“C”壓縮擴(kuò)展則可精簡(jiǎn)代碼。相比其他架構(gòu),壓縮指令和宏融合都能帶來(lái)顯著的性能優(yōu)勢(shì)。
本文地址:http://m.qingdxww.cn/thread-787501-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點(diǎn)宏來(lái)節(jié)省時(shí)間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項(xiàng)目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進(jìn)行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久青草香蕉精品视频在线 | 日韩3区| 精品国产免费人成高清 | 日韩成年人视频 | 五月激激激综合网色播小蛇 | 国产黄色福利 | 日本人的色道www免费一区 | 亚洲aav| 欧美香蕉网 | 久久99久久99精品免费看动漫 | 91国内精品久久久久怡红院 | 欧美第六页| 国产区精品一区二区不卡中文 | 久久美女| 成人精品视频网站 | 国产午夜在线观看 | 日日做日日摸夜夜爽 | 欧美亚洲国产成人高清在线 | 久草国产| h视频国产 | 久久免费高清视频 | 97在线成人免费视频观看 | 99热这里只有精品久久免费 | 黄视频网站免费观看 | 视频黄色免费 | 日本在线视频网 | 成年女美黄网站大全免费播放 | 久久免费小视频 | aa级国产女人毛片水真多 | 免费在线h视频 | www4虎| 亚洲 欧美 日韩在线一区 | 四虎在线永久精品高清 | 中文字幕一区2区 | 久久久青青久久国产精品 | 久久91亚洲精品中文字幕 | 国产网站在线 | 国内外成人免费视频 | 欧美啄木乌成人系列影片 | 亚洲综合色网 | 中文字幕在线播放一区 |