CẤU TRÚC MÁY TÍNH
THIẾT KẾ BỘ ALU CHO MIPS
GVHD: TS. TRƯƠNG QUANG VINH
N I DUNGỘ
GIỚI THIỆU VỀ MIPS ALU
HƯỚNG THIẾT KẾ
THỰC HIỆN
I.giới thiệu mips alu
I.Hướng thiết kế :
Thiết kế bộ alu 32 bit đơn giản
Các phép toán thực hiện: ANH, OR,XOR,SLT
Bảng điều khiển ngõ vào ALUcontrol:
ALU CONTROIL LINES FUNCTION
00 ADD
01 XOR
10 SUB
11 SLT
Dựa vào hướng thiết kế ,chia ALU thành các khối chính
sau:
Khối thực hiện : ADD,XOR ,SUB
Khối chọn kênh :MULTIPLEXOR
II:TH C HI NỰ Ệ
1. Kh i th c hi n Add, Sub, Xor:ố ự ệ
1.1 Phân tích:
Kh i này s th c hi n các phép toán ADD, SUB ố ẽ ự ệ
và XOR tín hi u vào 32 bit Bus A và Bus B. Đ ệ ở ể
th c hi n vi c này tr c tiên ta ph i xây d ng ự ệ ệ ướ ả ự
kh i m ch th c hi n các phép toán ADD, SUB và ố ạ ự ệ
XOR tín hi u 1 bit .Sau đó s xây d ng kh i m ch ệ ẽ ự ố ạ
th c hi n ADD, SUB và XOR 32bit d a trênự ệ ự
các kh i m ch ADD , SUB và XOR 1 bit này. ố ạ
S đ kh i c a kh i ADD, SUB và XOR có d ng ơ ồ ố ủ ố ạ
nh sau:ư
ADD,XOR,SUB
BUS A
BUS B
RESULT
carry
overflow
B c ng đ y đ (Full Adder)ộ ộ ầ ủ
ADD
b
a
cAddin
sum
cAddOut
Input Output
a b cAddIn Sum cAddOut
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Rút gọn bằng bảng Karnaugh
Ph ng trì nh tt:ươ
sum= a xor b xor cAddIn
cAddOut = ab + cAddIn(a+b)
Mô Ph ngỏ
1.3.khối thực hiện phép toán xor.
Xét 2 bit vào a và b,khối này sẽ thực hiện phép toán XOR a
và b.Ta chỉ cần dùng lệnh: xor #(50) U1(a_xor_b, a, b);
a b a xor b
0 0 0
0 1 1
1 0 1
1 1 0
Thực hiện phép toán sub
T ng t b c ng ta có b ng giá trươ ự ộ ộ ả ị
Input Output
a b cSubIn Sub cSubOut
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
Sub= a xor b xor cSubIn
cSubOut = nota.b + cSubIn(nota + b
Mô Ph ngỏ
Thiết kế SLT
k t qu b ng 1 n u A < Bế ả ằ ế
A < B A – B < 0
Quan tâm tới bit LSB
LSB b ng bit d u th c s c a k t qu phép tr ằ ấ ự ự ủ ế ả ừ
Xét các cờ
C zero ờ
C negative ờ
C carryout ờ
C overflow: ờ
C zero ờ
Khi k t qu b ng 0 thì c zero đ c set lên 1 ế ả ằ ờ ượ
Dùng l nh nor t t c các bit t 0 đ n 31 c a k t qu đ ệ ấ ả ừ ế ủ ế ả ể
ki m tra c Zero. ể ờ
Cờ negative
Gán c Negative b ng bit th 31 c a k t qu ờ ằ ứ ủ ế ả
Bit th 31 = 1 (k t qu âm): c đ c set ứ ế ả ờ ượ
Bit th 31 = 0 (k t qu d ng): c không đ c ứ ế ả ươ ờ ượ
set
C carryout ờ
Ch xét đ i v i phép c ng tr . ỉ ố ớ ộ ừ
C carry chính là cAddOut ho c cSubOut c a ờ ặ ủ
phép c ng ho c phép tr .ộ ặ ừ
C overflow ờ
Overflow (tràn có dấu –xảy ra khi kết quả phép toán
vượt quá dải giới hạn tính toán).
A, B khác dấu thì không xảy ra Overflow.
Overflow chỉ xảy ra khi cộng 2 số cùng dấu
Multiplexorout
Sử dụng bộ mux 4x32 to 32 được
xây dựng từ 32 bộ mux 4 to 1.
Căn cứ vào 2bit điều khiển của ALUControl.
Multiplexorout
C M N TH Y VÀ CÁC B N ĐÃ Ả Ơ Ầ Ạ
L NG NGHE!Ắ