ĐỒ ÁN CẤU TRÚC MÁY TÍNH LAB 3 A MIPS 32-BIT SINGLE - CYCLE CPU
Trang 1ĐỒ ÁN CẤU TRÚC MÁY TÍNH
LAB 3: A MIPS 32-BIT
SINGLE - CYCLE CPU
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐÀ NẴNG
KHOA ĐIỆN TỬ - VIỄN THÔNG
Nhóm 2
Trang 3I GiỚI THIỆU:
ĐỒ ÁN CẤU TRÚC MÁY TÍNH Nhóm 28
Thiết kế bộ xử lý trung tâm MIPS chu kì đơn 32-bit
thực hiện các lệnh:
ADD, SUB, SLT, JR, LW, SW, BNE, XORI, J
Các cổng logic không có quá 4 ngõ vào, với delay 50ps.
Các khối điều khiển logic có thể dùng cấu trúc lệnh
behavioral.
Trang 5Lệnh loại I:
BNE rs, rt, imm16: if (Reg[rs] != Reg[rt]) PC = PC + 4 +
Sign_ext(Imm16)<<2 else PC = PC + 4
LW rt, imm16(rs): Reg[rt] = Mem[Reg[rs] + Sign_ext(Imm16)]
SW rt, imm16(rs): Mem[Reg[rs] + Sign_ext(Imm16)] = Reg[rt]
XORI rt, rs, imm16: Reg[rt] = Reg[rs] XOR Zero_ext(Imm16)
Các câu lệnh:
ĐỒ ÁN CẤU TRÚC MÁY TÍNH Nhóm 28
Trang 6Lệnh loại Jump:
J target: PC = { PC[31:28], target, 00 }
Các câu lệnh:
ĐỒ ÁN CẤU TRÚC MÁY TÍNH Nhóm 28
Trang 7ĐỒ ÁN CẤU TRÚC MÁY TÍNH
1 Các khối cơ bản:
a Khối tìm và lấy lệnh
+ Bộ nhớ lệnh (Instruction memory)
+ Thanh ghi PC (Program Counter)
II XÂY DƯNG CPU:
Nhóm 28
Trang 9ĐỒ ÁN CẤU TRÚC MÁY TÍNH
ĐỒ ÁN CẤU TRÚC MÁY TÍNH
1 Các khối cơ bản:
b File thanh ghi 32 bit (RegFile)
II XÂY DƯNG CPU:
Nhóm 28
Trang 12ĐỒ ÁN CẤU TRÚC MÁY TÍNH
2 Bổ sung Datapath
Lệnh loại R:
Lấy dữ liệu từ 2 thanh ghi Rs và Rt của RegFile,
Đưa vào khối tính toán ALU
Đưa kết quả tính toán vào thanh ghi Rd của RegFile
Riêng lệnh JR thì chỉ cần lấy dữ liệu từ RegFile để thay đổi
thanh ghi PC
Nhóm 28
Trang 14ĐỒ ÁN CẤU TRÚC MÁY TÍNH
2 Bổ sung Datapath
Lệnh loại I:
Lấy dữ liệu từ thanh ghi Rs của RegFile
Mở rộng dấu cho 16bit immediate
Đưa vào khối tính toán ALU
Kết quả tính toán đưa về thanh ghi Rd của RegFile hoặc
làm địa chỉ truy cập vào bộ nhớ dữ liệu ( lw và sw)
Nhóm 28
Trang 15 Bộ Mux chọn ngõ vào thứ 2 cho bộ ALU
Bộ Mux chọn giá trị ghi về thanh ghi Rt
Bộ dịch trái 2 bit ( phép nhân với 4)
Nhóm 28
Trang 16ĐỒ ÁN CẤU TRÚC MÁY TÍNH
2 Bổ sung Datapath
Nhóm 28
Trang 17ĐỒ ÁN CẤU TRÚC MÁY TÍNH
2 Bổ sung Datapath
Lệnh nhảy:
• Nhảy có điều kiện: BNE
• Nhảy không điều kiện: J, JR
Bổ sung:
Các bộ Mux chọn địa chỉ cho lệnh tiếp theo.
Các bộ cộng
Nhóm 28
Trang 18ĐỒ ÁN CẤU TRÚC MÁY TÍNH
PC = PC + 4
2 Bổ sung Datapath
Nhóm 28
Trang 19ĐỒ ÁN CẤU TRÚC MÁY TÍNH
Lệnh BNE (Brand if not equal)
2 Bổ sung Datapath
Nhóm 28
Trang 20ĐỒ ÁN CẤU TRÚC MÁY TÍNH
Lệnh JUMP
2 Bổ sung Datapath
Nhóm 28
Trang 21ĐỒ ÁN CẤU TRÚC MÁY TÍNH
Lệnh JR
2 Bổ sung Datapath
Nhóm 28
Trang 223 Các khối điều khiển:
a Khối điều khiển trung tâm (ControlUnit):
Tạo ra các tín hiệu điều khiển:
II XÂY DƯNG CPU:
Nhóm 28
Trang 23ĐỒ ÁN CẤU TRÚC MÁY TÍNH
Bảng giải mã khối điều khiển trung tâm:
Nhóm 28
Trang 24ĐỒ ÁN CẤU TRÚC MÁY TÍNH
Bảng giá trị điều khiển của khối ALU Control
ĐỒ ÁN CẤU TRÚC MÁY TÍNH
3 Các khối điều khiển:
b Khối điều khiển ALU (ALU_ControlUnit):
Tạo ra tín hiệu điều khiển bộ tính toán ALU:
II XÂY DƯNG CPU:
Nhóm 28
Trang 25ĐỒ ÁN CẤU TRÚC MÁY TÍNH
ĐỒ ÁN CẤU TRÚC MÁY TÍNH
3 Các khối điều khiển:
c Khối điều khiển lệnh JR (JR_ControlUnit)
- Nếu ALUOp = 10 (R-type) và Function = 001000
=> JRControl = 1
Ngược lại JRControl = 0
d Tín hiệu điều khiển lệnh BNE (Bne_Control)
- Nếu Branch = 1 và ZeroFlag = 0
=> Bne_Control = 1 Ngược lại Bne_Control = 0
II XÂY DƯNG CPU:
Nhóm 28
Trang 26ĐỒ ÁN CẤU TRÚC MÁY TÍNH
Sơ đồ khối tổng quát
II XÂY DƯNG CPU:
Nhóm 28
Trang 27ĐỒ ÁN CẤU TRÚC MÁY TÍNH Nhóm 28
III MÔ PHỎNG
Trang 29TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐÀ NẴNG
KHOA ĐIỆN TỬ - VIỄN THÔNG