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

例:RCL AX , CL 指令
設AX=0001H , CL=3 , CF=1
Abus鎖存器輸出數據為操作數本0001H;
Bbus鎖存器輸出的數據為操作數帶CF右移一位為1000H;
在輸出中,CF在輸出結果的最左端為0。
5 驗證及結論
通過(guò)verilog的行為仿真及starsim的時(shí)序仿真顯示,性能完全符合要求。對比INTEL X86指令集中移位類(lèi)指令標準執行周期為4~7個(gè)機器周期,本設計移位類(lèi)指令平均執行時(shí)間為2個(gè)指令周期,因此大大提高了移位類(lèi)指令執行效率。移位寄存器作為CPU中執行單元的專(zhuān)用硬件,其性能的好壞直接影響到CPU處理移位類(lèi)指令的速度和效率。本文采用的矩陣-樹(shù)狀結構移位寄存器,配合指令預處理技術(shù),能有效實(shí)現32位數據的移位操作,并兼容INTEL X86系列的所有移位類(lèi)指令還可作為通用硬件方便地移植到其他指令級別的CPU設計之中。
評論