新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種高性能32位移位寄存器單元的設(shè)計

一種高性能32位移位寄存器單元的設(shè)計

作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏


4.1 移位寄存器單元總體結(jié)構(gòu)

最終設(shè)計出的移位寄存器單元總體結(jié)構(gòu)如圖7 所示,其中其核心部分的矩陣-樹狀結(jié)構(gòu)的移位寄存器就是使用上一節(jié)所描述的結(jié)構(gòu)。記數(shù)器中的數(shù)據(jù)(sh4~sh0)在移位上一拍由Bbus寫入,并進(jìn)行譯碼,其中低兩位(sh1,sh0)直接送樹狀結(jié)構(gòu)移位部分,高三位(sh4,sh3,sh2)經(jīng)過譯碼產(chǎn)生8位控制信號送入矩陣移位部分。Abus和Bbus輸入鎖存器能鎖存32位數(shù)據(jù)輸入,并根據(jù)不同指令的要求進(jìn)行操作,對指令進(jìn)行預(yù)處理。移位結(jié)果送ALU輸出鎖存器,并對CF寄存器進(jìn)行設(shè)置。

本文引用地址:http://butianyuan.cn/article/201612/324813.htm

4.2 指令的預(yù)處理

由于要對實現(xiàn)帶進(jìn)位CF的移位并在移位操作后對CF進(jìn)行設(shè)置,在一般情況下這需要CPU的控制單元提供多周期指令節(jié)拍來實現(xiàn)。在本設(shè)計中,將 Abus和Bbus輸入鎖存器設(shè)計為能根據(jù)不同的指令實現(xiàn)清0和帶CF左移一位或右移一位的操作,以便為移位做好數(shù)據(jù)上的準(zhǔn)備,使輸入數(shù)據(jù)的0~32位移位能在一個指令周期內(nèi)完成。對不同的指令具體設(shè)置情況如圖8所示。圖中CF表示為進(jìn)位標(biāo)志位;len為操作數(shù)長度(如32位數(shù)據(jù)); n為移位數(shù);DATA表示輸入鎖存輸出的數(shù)據(jù)為操作數(shù)據(jù)本身; 0表示輸入鎖存輸出的數(shù)據(jù)為0;CF:DATA(-1)表示輸入鎖存輸出的數(shù)據(jù)為操作數(shù)帶CF右移一位;DATA(-1):CF表示輸入鎖存輸出的數(shù)據(jù)為操作數(shù)帶CF左移一位;SIGN_EXT表示輸入鎖存輸出的數(shù)據(jù)為操作數(shù)帶符號擴(kuò)展。橫線下為移位前Abus和Bbus鎖存器中數(shù)據(jù)預(yù)處理完后的格式,橫線上方位移位完成后數(shù)據(jù)輸出及進(jìn)位CF所處位置。


例:RCL AX , CL 指令
設(shè)AX=0001H , CL=3 , CF=1
Abus鎖存器輸出數(shù)據(jù)為操作數(shù)本0001H;
Bbus鎖存器輸出的數(shù)據(jù)為操作數(shù)帶CF右移一位為1000H;
在輸出中,CF在輸出結(jié)果的最左端為0。

5 驗證及結(jié)論

通過verilog的行為仿真及starsim的時序仿真顯示,性能完全符合要求。對比INTEL X86指令集中移位類指令標(biāo)準(zhǔn)執(zhí)行周期為4~7個機(jī)器周期,本設(shè)計移位類指令平均執(zhí)行時間為2個指令周期,因此大大提高了移位類指令執(zhí)行效率。移位寄存器作為CPU中執(zhí)行單元的專用硬件,其性能的好壞直接影響到CPU處理移位類指令的速度和效率。本文采用的矩陣-樹狀結(jié)構(gòu)移位寄存器,配合指令預(yù)處理技術(shù),能有效實現(xiàn)32位數(shù)據(jù)的移位操作,并兼容INTEL X86系列的所有移位類指令還可作為通用硬件方便地移植到其他指令級別的CPU設(shè)計之中。

上一頁 1 2 3 下一頁

關(guān)鍵詞: 32位高性能移位寄存

評論


技術(shù)專區(qū)

關(guān)閉