唐俊龍,湯孟媛,吳圳羲,盧英龍,鄒望輝
(1.長(zhǎng)沙理工大學(xué)物理與電子科學(xué)學(xué)院,湖南長(zhǎng)沙 410114;2.柔性電子材料基因工程湖南省重點(diǎn)實(shí)驗(yàn)室,湖南 長(zhǎng)沙 410114)
乘法器作為處理器的重要組成部分,一般由部分積產(chǎn)生、部分積壓縮和最終結(jié)果相加3 部分組成,乘法器的性能制約著處理器算術(shù)運(yùn)算的整體性能[1]?!胺澍B(niǎo)E203”是國(guó)內(nèi)研發(fā)團(tuán)隊(duì)開(kāi)發(fā)的面向嵌入式或物聯(lián)網(wǎng)領(lǐng)域的低功耗開(kāi)源RISC-V 處理器,它的乘法器采用基4 Booth 編碼產(chǎn)生部分積,每個(gè)周期使用迭代加法器的方法壓縮部分積,經(jīng)過(guò)多個(gè)周期的迭代得到最終的乘積。部分積壓縮使用迭代加法器的方法消耗的硬件資源少,但完成一次乘法操作的迭代周期數(shù)多,使得乘法器運(yùn)算速度慢,處理器無(wú)法滿足在物聯(lián)網(wǎng)應(yīng)用領(lǐng)域中高速運(yùn)算的需求[2]。因此,需要設(shè)計(jì)高速的乘法器來(lái)提高低功耗“蜂鳥(niǎo)E203”處理器的運(yùn)算性能,而高速乘法器設(shè)計(jì)的關(guān)鍵是加快部分積壓縮的速度,目前主要通過(guò)優(yōu)化部分積壓縮中4-2、5-2、6-3和7-3等壓縮器或者設(shè)計(jì)合適的Wallace 樹(shù)壓縮結(jié)構(gòu)達(dá)到提升乘法器運(yùn)算速度的目的,而6-3 與7-3 等高階壓縮器消耗的硬件資源多、功耗高且面積大,在對(duì)硬件資源和功耗有要求的嵌入式或物聯(lián)網(wǎng)領(lǐng)域中,Wallace 樹(shù)壓縮結(jié)構(gòu)通常采用4-2和5-2 壓縮器[3]-7]。為了提高“蜂鳥(niǎo)E203”處理器中乘法器的運(yùn)算能力,該文提出一種新型的5-2 壓縮器,根據(jù)基4 Booth 編碼算法生成部分積的個(gè)數(shù)將4-2 壓縮器與新型5-2 壓縮器合理排列,組成新型的Wallace 樹(shù)壓縮結(jié)構(gòu)代替原乘法器中的加法器。采用Synopsys的Design Compile 工具在SMIC180 nm 工藝下對(duì)改進(jìn)的乘法器綜合,結(jié)果表明,乘法器的運(yùn)算能力得到了顯著提升。
該文主要針對(duì)RISC-V 處理器中乘法器部分積壓縮延時(shí)高,執(zhí)行整數(shù)乘法指令周期過(guò)長(zhǎng)的問(wèn)題,結(jié)合RISC-V 架構(gòu)的整數(shù)乘法指令集的特點(diǎn),對(duì)乘法器進(jìn)行優(yōu)化設(shè)計(jì)。
“蜂鳥(niǎo)E203”處理器支持RISC-V 架構(gòu)的整數(shù)乘法指令,共有MUL、MULH、MULHU、MULHSU 4 條乘法指令[8-10],乘法指令分析如表1 所示,其中rd 表示目的寄存器,rs1和rs2 表示源寄存器。4 條乘法指令分別按符號(hào)擴(kuò)展操作和結(jié)果高低位選取操作生成相應(yīng)的控制信號(hào),MULHU 指令乘法的兩個(gè)操作數(shù)(被乘數(shù)和乘數(shù))的符號(hào)擴(kuò)展位都為0;MULHSU 指令被乘數(shù)的符號(hào)擴(kuò)展位為被乘數(shù)的最高位,乘數(shù)的符號(hào)擴(kuò)展位為0,MUL和MULH 指令的兩個(gè)操作數(shù)的符號(hào)擴(kuò)展位分別為被乘數(shù)和乘數(shù)的最高位。MUL 指令選取Wallace 樹(shù)形結(jié)構(gòu)壓縮結(jié)果的低32 位,其余乘法指令選取Wallace 樹(shù)形結(jié)構(gòu)壓縮結(jié)果的高32 位??刂菩盘?hào)控制部分積產(chǎn)生和部分積壓縮對(duì)操作數(shù)和部分積的處理,從而完成乘法器的乘法運(yùn)算。
表1 RISC-V乘法指令分析
“蜂鳥(niǎo)E203”處理器中的乘法器如圖1 所示。該文提出一種改進(jìn)的乘法器結(jié)構(gòu)如圖2 所示,該乘法器支持32 位有/無(wú)符號(hào)數(shù)的乘法運(yùn)算,主要包括部分積產(chǎn)生(基4 Booth 編碼)、部分積壓縮(Wallace 樹(shù)形結(jié)構(gòu))和選擇器MUX 3 個(gè)部分,部分積壓縮采用新型的Wallace 樹(shù)形結(jié)構(gòu)代替圖1 中加法器對(duì)部分積進(jìn)行壓縮,增加選擇器并通過(guò)控制信號(hào)選取4 種乘法指令需要的Wallace 樹(shù)形結(jié)構(gòu)的壓縮結(jié)果。圖2 中,譯碼模塊對(duì)乘法指令進(jìn)行譯碼,基4 Booth 編碼接收控制信號(hào)對(duì)被乘數(shù)和乘數(shù)進(jìn)行符號(hào)擴(kuò)展并產(chǎn)生18個(gè)規(guī)整的部分積,經(jīng)Wallace 樹(shù)形結(jié)構(gòu)壓縮,得到求和Sum與進(jìn)位Carry兩個(gè)部分積,選擇器MUX 通過(guò)控制信號(hào)選取Carry和Sum兩個(gè)部分積的高32 位或低32 位,傳輸?shù)健胺澍B(niǎo)E203”處理器中的ALU 運(yùn)算模塊進(jìn)行運(yùn)算,得到最終結(jié)果。
圖1 “蜂鳥(niǎo)E203”處理器中的乘法器整體框圖
圖2 改進(jìn)型乘法器整體框圖
圖2 改進(jìn)型乘法器結(jié)構(gòu)中新型的Wallace 樹(shù)形壓縮結(jié)構(gòu)的核心是壓縮器,在乘法器運(yùn)算中,壓縮器對(duì)部分積快速壓縮時(shí)產(chǎn)生大量延時(shí),降低處理器的運(yùn)算性能[11-12]。對(duì)壓縮器的優(yōu)化和對(duì)壓縮器的合理排列能有效提高Wallace 樹(shù)形壓縮結(jié)構(gòu)的壓縮速度。
2.1.1 傳統(tǒng)5-2壓縮器
圖3 與圖4 分別是5-2 壓縮器的示意圖和傳統(tǒng)5-2 壓縮器的結(jié)構(gòu)圖[13],其中,X1~X5表示部分積輸入,Cin1和Cin2表示上一級(jí)部分積壓縮的進(jìn)位輸入(即低位的進(jìn)位),Cout1和Cout2表示本級(jí)部分積壓縮產(chǎn)生的橫向進(jìn)位輸出,求和Sum與進(jìn)位Carry表示部分積壓縮的縱向輸出,圖3 中輸入輸出的關(guān)系式如式(1)所示[5],圖4的邏輯表達(dá)式如式(2)~(5)所示。
圖3 5-2壓縮器示意圖
圖4 傳統(tǒng)5-2壓縮器結(jié)構(gòu)圖
2.1.2 新型5-2壓縮器
圖4 傳統(tǒng)5-2 壓縮器結(jié)構(gòu)中,橫向輸出Cout2在邏輯上與低位進(jìn)位Cin1相關(guān),Cout2需等待Cin1的輸入,這種邏輯依附關(guān)系會(huì)產(chǎn)生額外的延時(shí);縱向輸出Carry由X1和X2異或門(mén)開(kāi)始經(jīng)過(guò)4 級(jí)XOR 與1 級(jí)MUX 運(yùn)算產(chǎn)生結(jié)果,Sum由X1和X2異或門(mén)開(kāi)始經(jīng)過(guò)5 級(jí)異或門(mén)XOR 運(yùn)算產(chǎn)生結(jié)果。Sum處于壓縮器最長(zhǎng)路徑的末端,以一個(gè)XOR 延時(shí)為單位,傳統(tǒng)5-2 壓縮器的關(guān)鍵路徑延時(shí)為5 個(gè)XOR 延時(shí),延時(shí)較大影響乘法器的性能[13]。該文基于式(1),對(duì)式(2)~(5)進(jìn)行優(yōu)化,提出一種新型的5-2 壓縮器,邏輯表達(dá)式為式(6)~(9),對(duì)應(yīng)的結(jié)構(gòu)如圖5 所示,相比于圖4 傳統(tǒng)5-2 壓縮器結(jié)構(gòu),橫向輸出Cout2與X1、X2、X4和X5信號(hào)有關(guān),而與Cin1無(wú)關(guān),沒(méi)有額外延時(shí);縱向輸出Sum和Carry的產(chǎn)生路徑上減少了1 級(jí)XOR,新型的5-2 壓縮器關(guān)鍵路徑延時(shí)減少到4 個(gè)XOR 延時(shí),有效降低了縱向輸出的延時(shí)?;赟IMC 180 nm的工藝庫(kù),通過(guò)H-spice 工具,該文對(duì)圖5 新型5-2 壓縮器進(jìn)行電路仿真,溫度為27 ℃,電源電壓為1.8 V,X1~X5、Cin1和Cin2均為200 MHz的脈沖信號(hào),關(guān)鍵路徑延時(shí)和功耗仿真結(jié)果分別為0.12 ns和0.12 mW。
圖5 新型的5-2壓縮器結(jié)構(gòu)
圖2 中,Wallace 樹(shù)形結(jié)構(gòu)主要功能是壓縮部分積,由基4 Booth 編碼產(chǎn)生的18 個(gè)部分積僅用新型5-2 壓縮器不能將其完全壓縮,而僅用4-2 壓縮器能夠完全壓縮[14-15],但需要4 級(jí)4-2 壓縮器,增加了關(guān)鍵路徑的延時(shí),且組成的Wallace 樹(shù)形結(jié)構(gòu)不對(duì)稱,不利于后端版圖的設(shè)計(jì)。該文對(duì)改進(jìn)型5-2 壓縮器與4-2 壓縮器進(jìn)行合理排列,提出了一種改進(jìn)的Wallace 樹(shù)形壓縮結(jié)構(gòu),如圖6 所示,通過(guò)1 級(jí)5-2 壓縮器和2 級(jí)4-2 壓縮器將18 個(gè)部分積完全壓縮,該壓縮結(jié)構(gòu)對(duì)稱,關(guān)鍵路徑延時(shí)少。
圖6 新型的Wallace樹(shù)形壓縮結(jié)構(gòu)
該文采用Verilog HDL 語(yǔ)言對(duì)優(yōu)化設(shè)計(jì)的乘法器進(jìn)行描述,并嵌入到“蜂鳥(niǎo)E203”處理器中,使用Modelsim 工具對(duì)MUL、MULH、MULHU和MULHSU[16]4 種乘法指令進(jìn)行功能仿真,通過(guò)與Modelsim 工具自帶乘法符號(hào)的運(yùn)算結(jié)果的對(duì)比驗(yàn)證乘法器功能的正確性。圖7 是執(zhí)行4 種乘法指令的仿真結(jié)果和自帶乘法符號(hào)運(yùn)算結(jié)果的對(duì)比圖,信號(hào)result_op1與result_op2 分別為乘法指令執(zhí)行結(jié)果的低32 位和高32 位,信號(hào)final_result 是乘法指令的完整運(yùn)算結(jié)果,信號(hào)result 是Modelsim 自帶乘法符號(hào)的運(yùn)算結(jié)果,將信號(hào)final_result和result的數(shù)據(jù)對(duì)比,兩個(gè)結(jié)果完全一致。因數(shù)據(jù)量較多,圖7 截選了仿真結(jié)果的一部分。
圖7 乘法運(yùn)算結(jié)果對(duì)比圖
該設(shè)計(jì)基于SIMC 180 nm的工藝庫(kù),使用Synopsys公司的Design Compile 工具對(duì)改進(jìn)型乘法器進(jìn)行綜合,電路面積為0.012 mm2,總單元數(shù)目為6 844,延時(shí)和周期數(shù)與“蜂鳥(niǎo)E203”處理器的原乘法器[17-18]對(duì)比如表2。該文設(shè)計(jì)的乘法器速度性能提升了88.2%,電路最大延時(shí)降低了39%。
表2 乘法器性能對(duì)比
該文根據(jù)RISC-V 指令集中整數(shù)乘法指令的特點(diǎn),優(yōu)化“蜂鳥(niǎo)E203”處理器中的乘法器,提出了一種新型的5-2 壓縮器,并應(yīng)用新型的5-2 壓縮器構(gòu)建了Wallace 樹(shù)形結(jié)構(gòu),設(shè)計(jì)了改進(jìn)型乘法器。利用Modelsim 工具驗(yàn)證了乘法器功能仿真的正確性,并采用SIMC 180 nm 工藝,使用Synopsys 公司的Design Compile 工具對(duì)乘法器進(jìn)行綜合,結(jié)果表明,該文設(shè)計(jì)的乘法器單次乘法指令執(zhí)行周期數(shù)為2,關(guān)鍵路徑延時(shí)為2.43 ns,相比于“蜂鳥(niǎo)E203”處理器原乘法器在速度上提升了88.2%,電路最大延時(shí)降低了39%,大大提高了乘法器的運(yùn)算速度,適用于嵌入式或物聯(lián)網(wǎng)領(lǐng)域中對(duì)高速運(yùn)算有需求的應(yīng)用。