《《桶式移位器設計》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《桶式移位器設計》PPT課件.ppt(41頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、桶式移位器設計,,,指令格式,ARM7內部結構,取指:地址/控制總線送出地址/控制信號,讀取指令保存到指令寄存器 譯碼:指令寄存器內容送到譯碼邏輯,從寄存器文件讀取操作數(shù) 執(zhí)行:完成相應操作,結果寫回寄存器文件。,,,,,三級流水線指令執(zhí)行過程,三級流水線指令執(zhí)行過程,,,,,,,,,,,,,,,,,,數(shù)據(jù)處理指令執(zhí)行過程,數(shù)據(jù)存儲指令執(zhí)行過程,轉移指令執(zhí)行過程,數(shù)據(jù)通路,地址端口 寄存器組 乘法器 桶式移位器 ALU 數(shù)據(jù)端口,,,,,,,,,,,,,桶式移位器BS(Barrel Shifter),是高速微處理器中的常用部件 能在單周期內完成多種方式、各種位數(shù)的移位操作。 用于實現(xiàn)移位指令、
2、浮點計算中的小數(shù)點對齊等。,移位操作種類,算術右移:將高位的移空部分補充符號位的值 邏輯右移:要給高位補0 算術左移和邏輯左移:給低位的移空部分補0 循環(huán)右移:將從高位移出的部分補入低位,S,a30,a29,,a1,a0,S,S,a30,,a2,a1,S,a30,a29,,a1,a0,0,S,a30,,a2,a1,,,,a30,a29,a28,,a0,0,S,a30,a29,,a1,a0,,a30,a29,a1,,a0,S,S,a30,a29,,a1,a0,移位操作舉例,1000_1110 算術右移兩位: 1110_0011 邏輯右移兩位: 0010_0011 邏輯左移兩位: 001
3、1_1000 循環(huán)右移兩位: 1010_0011,,左移可以由右移位實現(xiàn),a7,a6,a5,a1,a0,a4,a3,a2,a7,a6,a5,a1,a0,a4,a3,a2,循環(huán)右移兩位,,,,,右移兩位,左移8-2位,左移 i 位等價于右移 32 i 位,,,,,,,BS的實現(xiàn),BS,,,,in31:0,out31:0,b4b3b2b1b0,In31:0:32位輸入 Out31:0:32位輸出 B4:0:移位位數(shù) Sin1, Sin2:移位方式,,,Sin2,Sin1,BS的實現(xiàn)(全譯碼),,,,,,,,,,,,,,,,,,,,,,,b4 b3 b2 b1 b0,in31:0,outi,,,
4、BS的實現(xiàn)(全編碼),,,,,,b4,,b4 =1 移16位 =0 不移位 b3 =1 移 8 位 =0 不移位 b2 =1 移 4 位 =0 不移位 b1 =1 移 2 位 =0 不移位 b0 =1 移 1 位 =0 不移位,,,,,b3,b2,b1,b0,,,,,,,,,BS的實現(xiàn)(部分譯碼),b4 b3 b2 = 000 移 0位 001 移 4位 010 移 8位 011 移12位 100 移16位 101 移20位 110 移24位 111 移28位 b1 b0 = 00 移 0 位 01 移 1 位 10 移
5、 2 位 11 移 3 位,塊移位,移位,b4 b3 b2,b1 b0,,,,,,BS的實現(xiàn)方式,針對BS的控制方式,可以有: 全譯碼方式 全編碼(不譯碼)方式 部分譯碼方式 基于三值邏輯控制的方式,全譯碼方式,對表示移位次數(shù)的二進制位進行完全譯碼,分別給出各種移位的單獨控制線。 對于32位字長來說,移位部分有32根控制線SC31 SC0分別控制移310位時的操作,,5-32譯碼,循環(huán)右移,,循環(huán)右移,,,邏輯右移,,算術右移,,邏輯右移,邏輯左移,,,,,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,S,S,S,S,,,,S,,,,,,,,
6、,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,,輸入邏輯實現(xiàn),BS的in1在右移時應為輸入的數(shù)值,左移時應為“0”。in1在Sin1信號的控制下,選擇ai或邏輯“0”。 in1i = aiSin1 在右移時in2的結果為“0”或符號位,由 控制;左移時為輸入值,由Sin2控制;右移時要填補的值由D0/1端決定,當要補“0”時它固定為“0”,當要補符號位時它接符號位。即: D0/1 = Ssign a31 in2輸
7、入邏輯為:,輸入邏輯實現(xiàn),in1輸入邏輯,Sin1,Sin1 Sin2 sign function 0 0 x x 1 0 0 邏輯右移 1 0 1 算術右移 0 1 x 左移 1 1 x 循環(huán)右移,in2輸入邏輯,8位全譯碼方式BS,,,,,,,,,右移兩位: 010,,,8位全譯碼方式BS,,,,,,,,,左移2位: 010 右移6位110,,RC模型,假定BS中每個傳輸管電阻為R,源、漏電容都是Cd,一位斜傳的導線電容為Cw。 輸出:對8位全譯碼BS來說,傳輸管網(wǎng)絡部分要放電的電容包括8個傳輸管的漏電容,由于其輸出沒有斜傳,
8、故不存在Cw,因此輸出端的總的RC時間延遲是:8RCd。,輸入: 控制輸入:8個傳輸管柵電容及長線電容 數(shù)據(jù)輸入:最壞情況下有8個傳輸管源電容及斜長線電容,特點,全譯碼方式的原理十分簡單,結構化程度也較高 輸入、輸出之間僅通過一級傳輸管相連,因而傳輸管的延遲對BS速度影響不大。 布線數(shù)和管子都比較多,占用的面積也比較大,而且走線較長,從而可能影響整個BS的速度。 32位BS包括: 控制線有35根(包括D0/1),控制線和數(shù)據(jù)線至少占用67條水平布線通道 in1需要632個晶體管,移位處理需3232個晶體管,in2需1432個晶體管,合計1664個晶體管,,部分譯碼方式BS,部分譯碼方式BS介于
9、前兩者之間的一種方案,它將移位分成幾部分,每部分的控制由移位次數(shù)的譯碼值決定 這種方式的in1與in2的邏輯與全譯碼方式的相同,16位部分譯碼方式BS,,,,,,,,,循環(huán)右移5位(0101): 右移4位 + 右移1位,,,右移,左移,,,,,,,,,,32位部分譯碼方式BS設計,module bs_dp(out, Bbus, Sin1, Sin2, Ssign, sb, sbb); input wire 31:0 Bbus; input Sin1, Sin2, Ssign; output wire 31:0 out; input wire 3:0 sb; input wire 7:
10、0 sbb; reg 31:0 shift_right, shift_left; reg sign; integer i; wire 34:0 shiftB; always (Bbus or Sin1 or Sin2 or Ssign) begin sign = Ssign endmodule,assign out = sb0 ? shiftB31:0: 32bz; assign out = sb1 ? shiftB32:1: 32bz; assign out = sb2 ? shiftB33:2: 32bz; assign out = sb3 ? shiftB34:3: 32
11、bz;,32位部分譯碼方式BS的RC模型,R(12Cd+4Cw) + 2R(4Cd) = 20RCd + 4RCw,部分譯碼方式BS的特點,成本: 部分譯碼方式控制線有15根(包括D0/1),控制線和數(shù)據(jù)線至少占用51條水平布線通道 in1需要632個晶體管,第一部分移位需835個晶體管,in2需1432個晶體管,第二部分移位需432個晶體管,合計1068個晶體管 特點: 布線通道和管子數(shù)較少 輸入與輸出之間的傳輸管數(shù)目為兩個,不會對速度產生太大的影響 結構化程度也較高,全編碼方式BS,全編碼方式BS就是不對移位次數(shù)譯碼,而是直接利用移位次數(shù)碼的各位b4、b3、b2、b1和b0分別控制移16位
12、/0位,8位/0位,4位/0位,2位/0位,和1位/0位,空位處理,在循環(huán)過程中處理處理空位問題,全編碼方式BS,全編碼方式BS的原理和設計較復雜,而且延遲時間可能較長 優(yōu)點是基本移位部分需要的晶體管和控制線數(shù)目都較少,適合處理單向移位操作,基于三值邏輯控制方式的BS,每一級操作有三種可能:左移、右移和不移位,通過三值邏輯(-1,1,0)進行實現(xiàn)可能更方便些。 所有32位的移位可以通過這些移位的組合構成 第一級實現(xiàn)1位的左/右移位(或不移位) 第二級實現(xiàn)3位的左/右移位(或不移位) 第三級實現(xiàn)9位的左/右移位(或不移位) 第四級實現(xiàn)18位的左/右移位(或不移位),,基于三值邏輯控制方式的BS,基于三值邏輯控制方式的BS,