唐俊龍,湯孟媛,吳圳羲,盧英龍,鄒望輝
(1.長沙理工大學物理與電子科學學院,湖南長沙 410114;2.柔性電子材料基因工程湖南省重點實驗室,湖南 長沙 410114)
乘法器作為處理器的重要組成部分,一般由部分積產生、部分積壓縮和最終結果相加3 部分組成,乘法器的性能制約著處理器算術運算的整體性能[1]?!胺澍BE203”是國內研發團隊開發的面向嵌入式或物聯網領域的低功耗開源RISC-V 處理器,它的乘法器采用基4 Booth 編碼產生部分積,每個周期使用迭代加法器的方法壓縮部分積,經過多個周期的迭代得到最終的乘積。部分積壓縮使用迭代加法器的方法消耗的硬件資源少,但完成一次乘法操作的迭代周期數多,使得乘法器運算速度慢,處理器無法滿足在物聯網應用領域中高速運算的需求[2]。因此,需要設計高速的乘法器來提高低功耗“蜂鳥E203”處理器的運算性能,而高速乘法器設計的關鍵是加快部分積壓縮的速度,目前主要通過優化部分積壓縮中4-2、5-2、6-3和7-3等壓縮器或者設計合適的Wallace 樹壓縮結構達到提升乘法器運算速度的目的,而6-3 與7-3 等高階壓縮器消耗的硬件資源多、功耗高且面積大,在對硬件資源和功耗有要求的嵌入式或物聯網領域中,Wallace 樹壓縮結構通常采用4-2和5-2 壓縮器[3]-7]。為了提高“蜂鳥E203”處理器中乘法器的運算能力,該文提出一種新型的5-2 壓縮器,根據基4 Booth 編碼算法生成部分積的個數將4-2 壓縮器與新型5-2 壓縮器合理排列,組成新型的Wallace 樹壓縮結構代替原乘法器中的加法器。采用Synopsys的Design Compile 工具在SMIC180 nm 工藝下對改進的乘法器綜合,結果表明,乘法器的運算能力得到了顯著提升。
該文主要針對RISC-V 處理器中乘法器部分積壓縮延時高,執行整數乘法指令周期過長的問題,結合RISC-V 架構的整數乘法指令集的特點,對乘法器進行優化設計。
“蜂鳥E203”處理器支持RISC-V 架構的整數乘法指令,共有MUL、MULH、MULHU、MULHSU 4 條乘法指令[8-10],乘法指令分析如表1 所示,其中rd 表示目的寄存器,rs1和rs2 表示源寄存器。4 條乘法指令分別按符號擴展操作和結果高低位選取操作生成相應的控制信號,MULHU 指令乘法的兩個操作數(被乘數和乘數)的符號擴展位都為0;MULHSU 指令被乘數的符號擴展位為被乘數的最高位,乘數的符號擴展位為0,MUL和MULH 指令的兩個操作數的符號擴展位分別為被乘數和乘數的最高位。MUL 指令選取Wallace 樹形結構壓縮結果的低32 位,其余乘法指令選取Wallace 樹形結構壓縮結果的高32 位。控制信號控制部分積產生和部分積壓縮對操作數和部分積的處理,從而完成乘法器的乘法運算。

表1 RISC-V乘法指令分析
“蜂鳥E203”處理器中的乘法器如圖1 所示。該文提出一種改進的乘法器結構如圖2 所示,該乘法器支持32 位有/無符號數的乘法運算,主要包括部分積產生(基4 Booth 編碼)、部分積壓縮(Wallace 樹形結構)和選擇器MUX 3 個部分,部分積壓縮采用新型的Wallace 樹形結構代替圖1 中加法器對部分積進行壓縮,增加選擇器并通過控制信號選取4 種乘法指令需要的Wallace 樹形結構的壓縮結果。圖2 中,譯碼模塊對乘法指令進行譯碼,基4 Booth 編碼接收控制信號對被乘數和乘數進行符號擴展并產生18個規整的部分積,經Wallace 樹形結構壓縮,得到求和Sum與進位Carry兩個部分積,選擇器MUX 通過控制信號選取Carry和Sum兩個部分積的高32 位或低32 位,傳輸到“蜂鳥E203”處理器中的ALU 運算模塊進行運算,得到最終結果。

圖1 “蜂鳥E203”處理器中的乘法器整體框圖

圖2 改進型乘法器整體框圖
圖2 改進型乘法器結構中新型的Wallace 樹形壓縮結構的核心是壓縮器,在乘法器運算中,壓縮器對部分積快速壓縮時產生大量延時,降低處理器的運算性能[11-12]。對壓縮器的優化和對壓縮器的合理排列能有效提高Wallace 樹形壓縮結構的壓縮速度。
2.1.1 傳統5-2壓縮器
圖3 與圖4 分別是5-2 壓縮器的示意圖和傳統5-2 壓縮器的結構圖[13],其中,X1~X5表示部分積輸入,Cin1和Cin2表示上一級部分積壓縮的進位輸入(即低位的進位),Cout1和Cout2表示本級部分積壓縮產生的橫向進位輸出,求和Sum與進位Carry表示部分積壓縮的縱向輸出,圖3 中輸入輸出的關系式如式(1)所示[5],圖4的邏輯表達式如式(2)~(5)所示。


圖3 5-2壓縮器示意圖

圖4 傳統5-2壓縮器結構圖
2.1.2 新型5-2壓縮器
圖4 傳統5-2 壓縮器結構中,橫向輸出Cout2在邏輯上與低位進位Cin1相關,Cout2需等待Cin1的輸入,這種邏輯依附關系會產生額外的延時;縱向輸出Carry由X1和X2異或門開始經過4 級XOR 與1 級MUX 運算產生結果,Sum由X1和X2異或門開始經過5 級異或門XOR 運算產生結果。Sum處于壓縮器最長路徑的末端,以一個XOR 延時為單位,傳統5-2 壓縮器的關鍵路徑延時為5 個XOR 延時,延時較大影響乘法器的性能[13]。該文基于式(1),對式(2)~(5)進行優化,提出一種新型的5-2 壓縮器,邏輯表達式為式(6)~(9),對應的結構如圖5 所示,相比于圖4 傳統5-2 壓縮器結構,橫向輸出Cout2與X1、X2、X4和X5信號有關,而與Cin1無關,沒有額外延時;縱向輸出Sum和Carry的產生路徑上減少了1 級XOR,新型的5-2 壓縮器關鍵路徑延時減少到4 個XOR 延時,有效降低了縱向輸出的延時?;赟IMC 180 nm的工藝庫,通過H-spice 工具,該文對圖5 新型5-2 壓縮器進行電路仿真,溫度為27 ℃,電源電壓為1.8 V,X1~X5、Cin1和Cin2均為200 MHz的脈沖信號,關鍵路徑延時和功耗仿真結果分別為0.12 ns和0.12 mW。


圖5 新型的5-2壓縮器結構
圖2 中,Wallace 樹形結構主要功能是壓縮部分積,由基4 Booth 編碼產生的18 個部分積僅用新型5-2 壓縮器不能將其完全壓縮,而僅用4-2 壓縮器能夠完全壓縮[14-15],但需要4 級4-2 壓縮器,增加了關鍵路徑的延時,且組成的Wallace 樹形結構不對稱,不利于后端版圖的設計。該文對改進型5-2 壓縮器與4-2 壓縮器進行合理排列,提出了一種改進的Wallace 樹形壓縮結構,如圖6 所示,通過1 級5-2 壓縮器和2 級4-2 壓縮器將18 個部分積完全壓縮,該壓縮結構對稱,關鍵路徑延時少。

圖6 新型的Wallace樹形壓縮結構
該文采用Verilog HDL 語言對優化設計的乘法器進行描述,并嵌入到“蜂鳥E203”處理器中,使用Modelsim 工具對MUL、MULH、MULHU和MULHSU[16]4 種乘法指令進行功能仿真,通過與Modelsim 工具自帶乘法符號的運算結果的對比驗證乘法器功能的正確性。圖7 是執行4 種乘法指令的仿真結果和自帶乘法符號運算結果的對比圖,信號result_op1與result_op2 分別為乘法指令執行結果的低32 位和高32 位,信號final_result 是乘法指令的完整運算結果,信號result 是Modelsim 自帶乘法符號的運算結果,將信號final_result和result的數據對比,兩個結果完全一致。因數據量較多,圖7 截選了仿真結果的一部分。

圖7 乘法運算結果對比圖
該設計基于SIMC 180 nm的工藝庫,使用Synopsys公司的Design Compile 工具對改進型乘法器進行綜合,電路面積為0.012 mm2,總單元數目為6 844,延時和周期數與“蜂鳥E203”處理器的原乘法器[17-18]對比如表2。該文設計的乘法器速度性能提升了88.2%,電路最大延時降低了39%。

表2 乘法器性能對比
該文根據RISC-V 指令集中整數乘法指令的特點,優化“蜂鳥E203”處理器中的乘法器,提出了一種新型的5-2 壓縮器,并應用新型的5-2 壓縮器構建了Wallace 樹形結構,設計了改進型乘法器。利用Modelsim 工具驗證了乘法器功能仿真的正確性,并采用SIMC 180 nm 工藝,使用Synopsys 公司的Design Compile 工具對乘法器進行綜合,結果表明,該文設計的乘法器單次乘法指令執行周期數為2,關鍵路徑延時為2.43 ns,相比于“蜂鳥E203”處理器原乘法器在速度上提升了88.2%,電路最大延時降低了39%,大大提高了乘法器的運算速度,適用于嵌入式或物聯網領域中對高速運算有需求的應用。