亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于符號補(bǔ)償?shù)腞ISC-V處理器乘法器優(yōu)化

        2023-08-03 02:07:50高嘉軒劉鴻瑾張紹林華更新
        計(jì)算機(jī)測量與控制 2023年7期
        關(guān)鍵詞:樹型乘法器功耗

        高嘉軒,劉鴻瑾,施 博,張紹林,華更新

        (1.北京控制工程研究所,北京 100190;2.北京軒宇空間科技有限公司,北京 100080)

        0 引言

        目前嵌入式領(lǐng)域主要應(yīng)用的處理器為ARM架構(gòu)處理器,然而該架構(gòu)經(jīng)過多年的研究與擴(kuò)展,其實(shí)現(xiàn)逐漸變得復(fù)雜。同時,ARM架構(gòu)需要高昂的授權(quán)費(fèi),導(dǎo)致應(yīng)用開發(fā)成本增高,不利于進(jìn)行自主擴(kuò)展開發(fā)。而RISC-V是由加州大學(xué)伯克利分校提出的一個開源指令集架構(gòu),其特點(diǎn)是開源、簡單、可擴(kuò)展等,具有良好的內(nèi)部結(jié)構(gòu)[1]。其高度模塊化的指令集架構(gòu)可應(yīng)用于各種需求的處理器設(shè)計(jì)[2]。出于自主可控的考慮,開源的RISC-V架構(gòu)將成為處理器開發(fā)的新方向。作為一種新興的開源指令集架構(gòu),RISC-V已經(jīng)在學(xué)術(shù)界和工業(yè)界都得到了廣泛的關(guān)注[3]。RISC-V生態(tài)系統(tǒng)的開源社區(qū)為其提供了豐富的對應(yīng)工具鏈與開源軟件,使研究者們能夠在研究中快速利用RISC-V[4]。基于RISC-V官方指令集手冊,已發(fā)布了多款RISC-V處理器[5],比如Rocket Core[6]、SiFive[7]、BOOM Core[8]和LowRISCSoC[5]。

        乘法器是處理器的運(yùn)算核心,其運(yùn)行速度影響了處理器的運(yùn)行速度[9]。許多數(shù)字信號處理和機(jī)器學(xué)習(xí)應(yīng)用需要進(jìn)行大量乘法計(jì)算,其表現(xiàn)在很大程度上受到乘法器性能的限制。以卷積神經(jīng)網(wǎng)絡(luò)為例,超過90%的CNN計(jì)算為乘法累加計(jì)算[10]。因此面對嵌入式領(lǐng)域乘法算力需求較高的應(yīng)用場景,研究開源指令集架構(gòu)的RISC-V乘法器算力與功耗優(yōu)化十分必要。乘法器主要包括三個階段:操作數(shù)相乘產(chǎn)生部分積、部分積累加產(chǎn)生兩個結(jié)果以及兩個結(jié)果相加產(chǎn)生最終結(jié)果。目前整型乘法器的算法設(shè)計(jì)主要有串行累加陣列、Booth編碼和Wallace樹型結(jié)構(gòu)[11]。針對Booth編碼的研究,通過改進(jìn)后的4位編碼加快了對部分積最低位的獲取,但編碼位數(shù)更多,邏輯更為復(fù)雜[12]。而縮減基4-Booth編碼位數(shù),則無法對最低位獲取進(jìn)行優(yōu)化,浪費(fèi)了芯片面積[13]。有研究采用了符號擴(kuò)展,從而減少了資源消耗,但未考慮部分積累加時的壓縮[14]。而針對Wallace樹型結(jié)構(gòu),有研究表明僅由基本壓縮器構(gòu)成 Wallace 樹結(jié)構(gòu),需要經(jīng)過5級壓縮才能將9個部分積壓縮為2個結(jié)果,其運(yùn)算效率十分低下[15]。文獻(xiàn)[16]對Wallace樹型結(jié)構(gòu)進(jìn)行了改進(jìn),縮短了壓縮延時,解決了蜂鳥E203部分積壓縮延時大的問題,但其未考慮有符號部分積擴(kuò)展帶來的損失。對壓縮器的研究主要是對其硬件結(jié)構(gòu)進(jìn)行研究,通過傳輸門結(jié)構(gòu)設(shè)計(jì)基本壓縮器,節(jié)省了壓縮器面積,但不能實(shí)現(xiàn)雙軌輸出[17]。而高階壓縮器可以由多個基本壓縮器串聯(lián)形成,但關(guān)鍵路徑上門數(shù)較多,延時較長影響壓縮器性能[18]。

        為了在不提升處理器功耗的前提下,提高RISC-V乘法器算力,減少進(jìn)位次數(shù),壓縮延時,本文提出了一種基于符號補(bǔ)償、基4-Booth編碼以及Wallace樹型結(jié)構(gòu)的優(yōu)化乘法器。由于基4-Booth編碼的系數(shù)存在負(fù)數(shù),在壓縮時,需要進(jìn)行符號擴(kuò)展補(bǔ)齊,負(fù)數(shù)部分積累加時將產(chǎn)生大量進(jìn)位以及比特翻轉(zhuǎn)。針對該問題,本文提出了基于符號補(bǔ)償?shù)幕?-Booth編碼,有效壓縮了負(fù)數(shù)符號擴(kuò)展時連續(xù)比特1,減少了在加法時造成的進(jìn)位以及比特翻轉(zhuǎn),降低了乘法器功耗。傳統(tǒng)Wallace樹型結(jié)構(gòu)由于硬件壓縮器功能簡單,因此其層次過多,關(guān)鍵路徑過長,結(jié)構(gòu)不對稱。針對該問題,本文提出了交替使用3-2壓縮器與4-2壓縮器的Wallace樹型結(jié)構(gòu)。改進(jìn)后的Wallace樹型結(jié)構(gòu)對稱,有效減少了樹型結(jié)構(gòu)的層次,縮短了關(guān)鍵路徑的長度,壓縮了累加過程的延遲,降低了乘法指令執(zhí)行延遲,提高了處理器乘法算力。同時由于壓縮器階數(shù)不高,因此對電路復(fù)雜度以及延遲未有明顯影響。本文從仿真、綜合以及板級層面對其進(jìn)行了功能性驗(yàn)證以及性能評估,測試結(jié)果表明,與未改進(jìn)的PicoRV32相比,使用改進(jìn)乘法器的PicoRV32在功耗有所降低的情況下,乘法器性能得到了顯著提升。

        1 RISC-V指令集架構(gòu)

        作為一種新興指令集架構(gòu),RISC-V架構(gòu)在設(shè)計(jì)之初總結(jié)了傳統(tǒng)指令集的優(yōu)缺點(diǎn),避免了傳統(tǒng)指令集的不合理設(shè)計(jì)。RISC-V指令編碼簡單,并且為擴(kuò)展指令集預(yù)留出了足夠的編碼空間。RISC-V指令主要分為6個類型[19],包括:R型指令:寄存器-寄存器操作;I型指令:短立即數(shù)和訪存load操作;S型指令:訪存store操作;B型指令:條件跳轉(zhuǎn)操作;U型指令:長立即數(shù)操作;J型指令:無條件跳轉(zhuǎn)操作。各個類型指令結(jié)構(gòu)如圖1所示。

        其中,opcode為操作碼,表示指令操作。funct3和funct7部分作為opcode的附加字段,和opcode共同決定指令的具體操作。rs1和rs2表示兩個源操作數(shù)的寄存器編號,rd表示目的操作數(shù)的寄存器編號。該編碼結(jié)構(gòu)位置固定,便于譯碼模塊對指令進(jìn)行解析。

        RISC-V指令集的整數(shù)乘法指令共有4條,分別為MUL、MULH、MULHSU、MULHU,均為R型指令。指令具體描述及用法如表1所示。

        表1 RISC-V乘法指令表

        其中MUL指令將源操作數(shù)進(jìn)行符號位擴(kuò)展,選取計(jì)算結(jié)果的低32位,MULH指令將源操作數(shù)進(jìn)行符號位擴(kuò)展,選取計(jì)算結(jié)果的高32位,MULHSU指令的源操作數(shù)rs1為有符號數(shù),rs2為無符號數(shù),指令結(jié)果選取計(jì)算結(jié)果的高32位,MULHU指令將源操作數(shù)進(jìn)行零擴(kuò)展,選取計(jì)算結(jié)果的高32位。

        2 基4-Booth編碼

        1951年,A.D Booth 在其論文“A Signed binary multiplication technique”中提出一種快速乘法算法——Booth算法[20],即為了解決有符號乘法運(yùn)算中復(fù)雜的符號修正問題而提出一種乘法算法,將乘數(shù)轉(zhuǎn)變數(shù)據(jù)表示形式,使其數(shù)據(jù)出現(xiàn)盡可能多的0,其編碼原理如式(1)所示。

        y=2n-1(-yn-1+yn-2)+2n-2(-yn-2+yn-3)+

        2(-y1+y0)+(-y0+y-1)

        (1)

        式中,y為乘數(shù),n為乘數(shù)位數(shù),yn-1為y的n-1位。

        從式(1)可以看出,基礎(chǔ)Booth編碼并不能在硬件乘法器電路中起到真正的優(yōu)化作用,實(shí)際部分積個數(shù)并未減少。因此在基2-Booth編碼的基礎(chǔ)上提出了改進(jìn)的Booth編碼,即基4-Booth編碼,進(jìn)一步減少部分積個數(shù),從而達(dá)到減少硬件加法器的目的,其編碼原理如式(2)所示。

        y=2n-2(-2yn-1+yn-2+yn-3)+

        2n-4(-2yn-3+yn-4+yn-5)+

        22(-2y3+y2+y1)+(-2y1+y0+y-1)

        (2)

        式中,y為乘數(shù),n為乘數(shù)位數(shù),yn-1為y的n-1位。

        從式(2)可以看出,多項(xiàng)式的項(xiàng)數(shù)相較于式1減少了一半,因此通過基4-Booth編碼可以有效減少部分積的個數(shù)。

        然而基4-Booth編碼的系數(shù)存在負(fù)數(shù)的情況,以2n-2項(xiàng)系數(shù)為例,當(dāng)yn-2=0,yn-3=0且yn-1=1時,該項(xiàng)系數(shù)為-2,因此需要考慮負(fù)數(shù)部分積對壓縮的影響。由于部分積位數(shù)不同,在壓縮時,需要進(jìn)行符號擴(kuò)展進(jìn)行補(bǔ)齊,當(dāng)部分積為負(fù)數(shù)時,符號位補(bǔ)齊為1,累加時將產(chǎn)生大量進(jìn)位以及比特翻轉(zhuǎn),增加乘法器功耗。

        3 Wallace樹型結(jié)構(gòu)

        基4-Booth編碼優(yōu)化了整型乘法中部分積的數(shù)量,從而減少累加次數(shù)。而為了進(jìn)一步減少累加操作產(chǎn)生的延遲,1964年,C.S.Wallace提出的一種高效快速的加法樹結(jié)構(gòu),被后人稱為Wallace樹[21],其核心思想為將每3個加數(shù)分為一組,壓縮至2個加數(shù),即計(jì)算結(jié)果與進(jìn)位,循環(huán)往復(fù),最終得到累加結(jié)果,其結(jié)構(gòu)如圖2所示。

        圖2 Wallace樹型結(jié)構(gòu)圖

        圖3 RISC-V處理器結(jié)構(gòu)圖

        Wallace樹型結(jié)構(gòu)提高了累加操作的執(zhí)行并發(fā)性,通過樹型結(jié)構(gòu)提高了硬件壓縮器的復(fù)用性,縮短了關(guān)鍵路徑的長度,有效地縮短了累加操作的執(zhí)行時間。

        然而傳統(tǒng)Wallace樹型結(jié)構(gòu)由于硬件壓縮器功能簡單,其層次依舊過多,并且對于32位數(shù)據(jù)計(jì)算,其結(jié)構(gòu)不對稱,增加了電路的復(fù)雜度,消耗了更多布線資源。不規(guī)則的布局布線結(jié)構(gòu),增大了關(guān)鍵路徑的時延。隨著硬件壓縮器的不斷發(fā)展,Wallace樹型結(jié)構(gòu)可通過使用高階壓縮器實(shí)現(xiàn)進(jìn)一步優(yōu)化。而階數(shù)過高的壓縮器,例如7-3壓縮器、6-3壓縮器存在電路設(shè)計(jì)復(fù)雜、硬件占用資源多、功耗高以及面積大等問題,因此面對嵌入式領(lǐng)域?qū)Φ凸牡男枨?,需要在控制乘法器功耗以及面積的情況下,優(yōu)化Wallace樹型結(jié)構(gòu),從而提高乘法器算力。

        4 乘法器優(yōu)化設(shè)計(jì)

        本文設(shè)計(jì)的乘法器用于單發(fā)射順序執(zhí)行五級流水線RISC-V處理器32×32位有符號整數(shù)乘法運(yùn)算,主要模塊包括:通過改進(jìn)的基4-Booth編碼產(chǎn)生部分積,通過改進(jìn)的Wallace樹型結(jié)構(gòu)對部分積進(jìn)行壓縮。RISC-V處理器結(jié)構(gòu)圖以及乘法器的結(jié)構(gòu)圖如圖3所示。

        在處理器五級流水線結(jié)構(gòu)中,乘法器位于執(zhí)行階段,譯碼模塊從指令中解析出被乘數(shù)與乘數(shù),通過改進(jìn)的基4-Booth編碼產(chǎn)生部分積,部分積陣列通過Wallace樹型結(jié)構(gòu)計(jì)算出累加結(jié)果和進(jìn)位兩個數(shù)據(jù),最后通過加法器計(jì)算出最終結(jié)果,通過多選器根據(jù)指令功能選取對應(yīng)的結(jié)果位。

        本文對基4-Booth編碼進(jìn)行改進(jìn),將補(bǔ)碼計(jì)算以及符號位擴(kuò)展與基4-Booth編碼相結(jié)合,減少符號位擴(kuò)展對壓縮效率的影響。對Wallace樹型結(jié)構(gòu)進(jìn)行改進(jìn),加入4-2壓縮器,使改進(jìn)的Wallace樹型結(jié)構(gòu)對稱,減少其層次數(shù)量,縮短關(guān)鍵路徑長度。部分積陣列經(jīng)過改進(jìn)后的Wallace樹型結(jié)構(gòu),產(chǎn)生兩個結(jié)果,通過全加器得到乘法計(jì)算結(jié)果。

        4.1 改進(jìn)的基4-Booth編碼

        基4-Booth編碼減少了部分積的數(shù)量,其中存在負(fù)數(shù)部分積,而當(dāng)部分積為負(fù)數(shù)時,符號位補(bǔ)齊為1,累加時將產(chǎn)生大量進(jìn)位以及比特翻轉(zhuǎn),增加乘法器功耗。針對該符號位問題,有研究提出了一種有效的符號補(bǔ)償方式[22],有效減少了符號位擴(kuò)展以及補(bǔ)碼引起的功率消耗。采用符號位直接擴(kuò)展時,以8位數(shù)據(jù)snXXXXXXX為例,其中sn表示符號位,將其擴(kuò)展為16位數(shù)據(jù),其結(jié)果為sn sn sn sn sn sn sn sn snXXXXXXX。而使用該符號補(bǔ)償方式,可對其進(jìn)行等價邏輯變換,如式(3)所示:

        snsnsnsnsnsnsnsnsnXXXXXXX=

        (3)

        從式(3)可以得出,由于符號位擴(kuò)展部分為連續(xù)相同的數(shù)據(jù),因此根據(jù)二進(jìn)制計(jì)算特點(diǎn),可將符號擴(kuò)展變換為只與符號位及固定值有關(guān)的運(yùn)算,而固定值可提前根據(jù)部分積數(shù)量以及位數(shù)進(jìn)行計(jì)算,其計(jì)算結(jié)果可在部分積累加前通過編碼實(shí)現(xiàn)。因此本文通過將該符號補(bǔ)償方式、補(bǔ)碼計(jì)算與基4-Booth編碼相結(jié)合,形成改進(jìn)后的基4-Booth編碼,擴(kuò)展方式如圖4所示。

        圖4 改進(jìn)符號擴(kuò)展圖

        本文在基4-Booth編碼的基礎(chǔ)上,加入對符號補(bǔ)償以及補(bǔ)碼的編碼,從而將上述符號補(bǔ)償方式與基4-Booth編碼相結(jié)合,減少部分積壓縮的功率消耗。本文采用如表2所示的編碼。

        表2 改進(jìn)的基4-Booth編碼表

        表中y2i+1y2iy2i-1代表乘數(shù)的第2i+1、2i和2i-1位,對于32位處理器,i的范圍為0到16;Coefi代表第i個部分積系數(shù);E代表乘上系數(shù)后的符號位,sn代表被乘數(shù)的符號位;S代表補(bǔ)碼加1操作產(chǎn)生的中間值,本級的中間值拼接至下一級部分積,在壓縮過程中實(shí)現(xiàn)補(bǔ)碼計(jì)算。改進(jìn)的基4-Booth編碼電路圖如圖5所示。

        其中:Y_2i+1、Y_2i和Y_2i-1代表y2i+1y2iy2i-1,即乘數(shù)的第2i+1、2i和2i-1位,sign代表Coefi的符號,coef1代表Coefi[1],coef0代表Coefi[0],E代表被乘數(shù)符號位的系數(shù),S1代表中間值S[1],S0代表中間值S[0]。

        圖5 改進(jìn)基4-Booth編碼電路圖

        從圖5可以看出,改進(jìn)的Booth編碼通過與門、或門、非門以及二選一多選器實(shí)現(xiàn),經(jīng)過4個門的時間延遲即可得出編碼結(jié)果。

        根據(jù)Coefi的編碼結(jié)果,分別對被乘數(shù)進(jìn)行相應(yīng)操作。對于系數(shù)為負(fù)數(shù)的部分積,對被乘數(shù)進(jìn)行按位取反,對于系數(shù)絕對值為2的部分積,對被乘數(shù)進(jìn)行左移1位操作。將乘以系數(shù)的部分積與編碼后的符號位以及中間值進(jìn)行拼接,形成改進(jìn)后的部分積,該部分積陣列輸入Wallace樹型結(jié)構(gòu)進(jìn)行累加計(jì)算。

        采用基于符號補(bǔ)償?shù)幕?-Booth編碼,不需要擴(kuò)展全部符號位,減少了由于擴(kuò)展大量連續(xù)的1,在加法時造成的進(jìn)位以及翻轉(zhuǎn),降低了乘法器功耗。

        4.2 改進(jìn)的Wallace樹型結(jié)構(gòu)

        基礎(chǔ)的Wallace樹型結(jié)構(gòu)采用3-2壓縮器,通過樹型結(jié)構(gòu)有效提高累加操作的并行性,同時從硬件設(shè)計(jì)角度,增加了加法器的復(fù)用性,減少了硬件加法器的數(shù)量。為了更好地配合32位處理器的運(yùn)算需求,在不提高處理器功耗的情況下,盡可能減少Wallace樹型結(jié)構(gòu)的層次,提出了一種交替使用3-2壓縮器與4-2壓縮器的Wallace樹型結(jié)構(gòu),改進(jìn)后的Wallace樹型結(jié)構(gòu)示意圖如圖6所示。

        圖6 改進(jìn)的Wallace樹型結(jié)構(gòu)圖

        由于使用符號補(bǔ)償方式,32位操作數(shù)將產(chǎn)生17個部分積,因此為了使Wallace樹型結(jié)構(gòu)對稱,將32位乘法運(yùn)算經(jīng)過符號擴(kuò)展,產(chǎn)生18個部分積,18個部分積經(jīng)過3-2壓縮器產(chǎn)生12個操作數(shù),再經(jīng)過4-2壓縮器產(chǎn)生6個操作數(shù),6個操作數(shù)經(jīng)過3-2壓縮器產(chǎn)生4個操作數(shù),在經(jīng)過4-2壓縮器產(chǎn)生最終的2個結(jié)果。

        其中3-2壓縮器的邏輯表達(dá)式如式(4)~(5)所示:

        S0=X0⊕X1⊕X2

        (4)

        C1=X0X1+X0X2+X1X2

        (5)

        式中,S0為第0個3-2壓縮器的壓縮結(jié)果,C1為第0個3-2壓縮器的進(jìn)位結(jié)果,X0、X1和X2為3-2壓縮器的3個輸入操作數(shù)。

        其1位電路示意圖如圖7所示。

        圖7 3-2壓縮器1位電路圖

        從圖7可以看出,3-2壓縮器僅使用與門、或門和或非門構(gòu)成,經(jīng)過3個門的時間延遲即可得出結(jié)果。

        4-2壓縮器,又稱5-3計(jì)數(shù)器,包括5個輸入和3個輸出,輸入和輸出分別包括一個進(jìn)位。傳統(tǒng)的4-2壓縮器是由兩個串行連接的3-2壓縮器組成,而改進(jìn)后的4-2壓縮器可以通過異或門和2-1的多選器構(gòu)成,改進(jìn)后的4-2壓縮器的邏輯表達(dá)式如下所示:

        Cout=X0X1+X0X2+X1X2

        Xor=X0⊕X1⊕X2⊕X3

        S0=Xor⊕Cin

        式中,S0為第0個4-2壓縮器的壓縮結(jié)果,C1為第0個4-2壓縮器的進(jìn)位結(jié)果,Cout為同級4-2壓縮器的進(jìn)位結(jié)果,X0、X1、X2和X3為4-2壓縮器的4個輸入操作數(shù)。

        由于Cout的邏輯表達(dá)式與Cin無關(guān),所以4-2壓縮器之間雖有信號連接,但不會形成行波進(jìn)位鏈,4-2壓縮器之間依舊是并行的,其結(jié)構(gòu)示意圖如圖8所示。

        圖8 4-2壓縮器結(jié)構(gòu)圖

        圖9 乘法指令波形圖

        采用3-2壓縮器和4-2壓縮器交替的Wallace樹型結(jié)構(gòu)對稱,減少了布局布線資源,有效減少了樹型結(jié)構(gòu)的層次,縮短了關(guān)鍵路徑的長度,壓縮了累加過程的延遲。同時,使用的3-2壓縮器和4-2壓縮器電路簡單,電路最大延時短,未造成處理器功耗以及面積大幅提高。

        5 實(shí)驗(yàn)結(jié)果與分析

        本文的實(shí)驗(yàn)環(huán)境如表3所示。

        表3 實(shí)驗(yàn)環(huán)境表

        采用Verilog語言對設(shè)計(jì)的32位乘法器進(jìn)行實(shí)現(xiàn),并嵌入到PicoRV32中,通過匯編語言對乘法器進(jìn)行功能仿真,將結(jié)果與Spike仿真結(jié)果進(jìn)行對比驗(yàn)證乘法器功能的正確性。

        圖9為乘法器執(zhí)行乘法指令的仿真波形,其結(jié)果與Spike仿真的結(jié)果一致。

        從圖9可以看出,通過MUL指令計(jì)算32’habcde與32’habcde相乘,其計(jì)算結(jié)果為32’h4caed084,與預(yù)期結(jié)果相符。通過如下所示代碼,對其余指令以及邊界值進(jìn)行驗(yàn)證。

        .global MUL

        MUL:

        li x3, 0x80000000

        li x4, 0x7fffffff

        li x10, 0xabcde

        mul x5, x0, x3

        bne x5, x0, __fail

        mul x5, x0, x0

        bne x5, x0, __fail

        mul x5, x0, x4

        bne x5, x0, __fail

        mul x5, x4, x4

        li x6, 0x1

        bne x5, x6, __fail

        mul x5, x4, x0

        bne x5, x0, __fail

        mul x5, x4, x3

        li x6, 0x80000000

        bne x5, x6, __fail

        mul x5, x4, x10

        li x6, 0xfff54322

        bne x5, x6, __fail

        mul x5, x3, x3

        li x6, 0x0

        bne x5, x6, __fail

        mul x5, x3, x0

        bne x5, x0, __fail

        mul x5, x3, x4

        li x6, 0x80000000

        bne x6, x5, __fail

        mul x5, x3, x10

        li x6, 0x0

        bne x6, x5, __fail

        mul x5, x10, x10

        li x6, 0x4caed084

        bne x6, x5, __fail

        上述代碼對32位操作數(shù)的最大正值0x7fffffff、最小負(fù)值0x80000000、中間值0xabcde以及0進(jìn)行乘法計(jì)算,通過對乘法器計(jì)算結(jié)果的判斷,進(jìn)行程序跳轉(zhuǎn),從而測試指令執(zhí)行結(jié)果是否正確。當(dāng)指令結(jié)果正確,即符合預(yù)期時,程序順序執(zhí)行,仿真成功結(jié)束。當(dāng)指令結(jié)果不正確時,程序跳轉(zhuǎn)至__fail,表示程序執(zhí)行錯誤,仿真錯誤結(jié)束。其余3條乘法指令與MUL指令測試程序相同。如圖10所示,測試結(jié)果為仿真成功結(jié)束,表明指令執(zhí)行結(jié)果正確,即設(shè)計(jì)的乘法器功能正確。

        圖10 乘法指令測試結(jié)果圖

        通過圖9波形圖,本文的乘法器接收到乘法指令,第一個時鐘周期計(jì)算累加結(jié)果以及進(jìn)位,第二個時鐘周期兩者相加得出最終結(jié)果,因此乘法所需時鐘周期為2個時鐘周期。為了更加直觀地體現(xiàn)本文乘法器的性能,將優(yōu)化后的乘法器與PicoRV32乘法器以及文獻(xiàn)[16]進(jìn)行了性能對比,結(jié)果如表4所示。

        表4 乘法器時鐘周期數(shù)對比表

        從表4可以看出,與文獻(xiàn)[16]相比,本文的乘法器執(zhí)行乘法運(yùn)算花費(fèi)的時鐘周期數(shù)相同。而相較于PicoRV32乘法器,本文改進(jìn)后的乘法器大幅減少了乘法計(jì)算所花費(fèi)的時鐘周期數(shù),乘法指令執(zhí)行時間縮短了88.2%,減少了乘法指令的執(zhí)行延遲,提高了處理器的算力。

        本文使用Synopsys公司的Design Compiler軟件,基于smic40nm工藝庫,對乘法器進(jìn)行了綜合,對其面積進(jìn)行了評估,結(jié)果如表5所示。

        表5 乘法器面積對比表

        從表5可以看出,由于擴(kuò)展了基4-Booth編碼以及使用了4-2壓縮器,本文乘法器相較于PicoRV32原乘法器在面積上增加了13.3%。而與文獻(xiàn)[16]乘法器相比,本文乘法器在面積上優(yōu)于文獻(xiàn)[16],減少了10.6%。從表4可以得出,本文乘法器與文獻(xiàn)[16]乘法器執(zhí)行乘法指令時鐘周期數(shù)相同,因此本文設(shè)計(jì)優(yōu)化的乘法器優(yōu)于文獻(xiàn)[16]。

        Dhrystone可對處理器的整型運(yùn)算性能進(jìn)行測量。因此本文通過運(yùn)行測量處理器運(yùn)算能力的基準(zhǔn)程序之一的Dhrystone,在板級對帶有本文乘法器的RISC-V處理器進(jìn)行了進(jìn)一步性能與功耗測試,其性能與PicoRV32對比如表6所示。

        表6 處理器性能對比表

        從表6可以看出,與PicoRV32相比,本文設(shè)計(jì)的乘法器在算力方面提高了71.7%,而處理器算力提高的同時,處理器功耗降低了4.9%。文獻(xiàn)[16]提升了處理器算力,但處理器功耗也有所提高,而本文的乘法器與其相比,算力有所提高,功耗有所降低,提高了處理器的能耗比。

        6 結(jié)束語

        本文通過對RISC-V架構(gòu)中整數(shù)乘法指令的研究以及乘法器的研究,提出了基于符號補(bǔ)償?shù)幕?-Booth編碼以及使用3-2壓縮器和4-2壓縮的改進(jìn)Wallace樹型結(jié)構(gòu),設(shè)計(jì)實(shí)現(xiàn)了改進(jìn)后的RISC-V處理器乘法器。通過RISC-V匯編語言對改進(jìn)后的乘法器進(jìn)行功能仿真,驗(yàn)證了其功能正確性。使用Design Compiler軟件對乘法器面積進(jìn)行了綜合,與處理器原乘法器以及已有工作進(jìn)行了對比分析。通過板級測試,對處理器算力以及功耗進(jìn)行了評估,并與原處理器以及已有工作進(jìn)行了對比分析。結(jié)果表明,本文改進(jìn)的乘法器功能正確,執(zhí)行整型乘法指令所花費(fèi)的時鐘周期為2,相較于PicoRV32乘法器,縮短了88.2%。Dhrystone分?jǐn)?shù)為2.115 728 DMIPS/MHz,功耗為0.035 42 W,相較于未改進(jìn)的PicoRV32,性能提高了71.7%,功耗降低了4.9%,在功耗有少許降低的情況下,大幅提高了處理器性能,提高了處理器計(jì)算速度。與已有研究工作相比,本文改進(jìn)的乘法器在執(zhí)行乘法指令時鐘周期數(shù)相同的情況下,面積與功耗均優(yōu)于已有工作,適用于嵌入式領(lǐng)域?qū)μ幚砥髅娣e、功耗以及算力有較高需求的應(yīng)用場景。本文的乘法器確實(shí)在縮短整型乘法執(zhí)行時間方面有一定效果,但在功耗方面優(yōu)化并不明顯,同時由于增加了符號擴(kuò)展編碼,乘法器面積有所增加,未來的改進(jìn)方向?yàn)椋?/p>

        1)優(yōu)化編碼設(shè)計(jì),盡可能降低編碼邏輯復(fù)雜度;

        2)考慮乘法器的低功耗優(yōu)化。

        猜你喜歡
        樹型乘法器功耗
        勘 誤
        遼寧絲綢(2022年3期)2022-11-24 16:06:07
        一種快速養(yǎng)成的柞樹樹型—壓干樹型
        遼寧絲綢(2022年2期)2022-07-09 03:40:02
        基于FPGA的流水線單精度浮點(diǎn)數(shù)乘法器設(shè)計(jì)*
        揭開GPU功耗的面紗
        個人電腦(2016年12期)2017-02-13 15:24:40
        基于樹型結(jié)構(gòu)的防空力量配屬方案生成模型研究
        數(shù)字電路功耗的分析及優(yōu)化
        電子制作(2016年19期)2016-08-24 07:49:54
        “功耗”說了算 MCU Cortex-M系列占優(yōu)
        電子世界(2015年22期)2015-12-29 02:49:44
        IGBT模型優(yōu)化及其在Buck變換器中的功耗分析
        樹型組織結(jié)構(gòu)圖的算法研究及實(shí)現(xiàn)
        乘法器模塊在FPGA中的實(shí)現(xiàn)
        久久国产自偷自免费一区100| 东北少妇不戴套对白第一次| 欧美一性一乱一交一视频| 国内精品久久久久伊人av| 日本最大色倩网站www| 亚洲产国偷v产偷v自拍色戒| 18禁国产美女白浆在线| 亚洲成人一区二区三区不卡| 欧美丰满熟妇bbbbbb| 无码视频一区二区三区在线观看| av无码电影一区二区三区| 久久久熟女一区二区三区| 扒开腿狂躁女人爽出白浆| 免费大片黄在线观看| 国产精品亚洲专区在线播放| 求网址日韩精品在线你懂的| 少妇人妻综合久久中文字幕| 无码人妻av一区二区三区蜜臀| 中文字幕+乱码+中文字幕无忧| 国产AV秘 无码一区二区三区| 亚洲中文字幕精品久久吃奶| 色噜噜久久综合伊人一本| 日韩中文字幕欧美亚洲第一区| 亚洲AⅤ樱花无码| 中文字幕亚洲一区二区三区| www国产亚洲精品| 国产伦精品一区二区三区免费| 91精品国产免费青青碰在线观看 | 奇米影视久久777中文字幕| 久久久久国产亚洲AV麻豆| 色婷婷久久综合中文久久一本| 亚洲伦理第一页中文字幕| 曰韩无码二三区中文字幕| AV无码一区二区三区国产| 午夜一区二区三区福利视频| 国产三级精品三级| 97色伦图片97综合影院久久 | 精品一区二区三区在线观看| 亚洲中文欧美日韩在线| 中文字幕av素人专区| 奇米影视第四色首页|