TRƯỜNG ĐẠI HỌC CÔNG NGHE IT012 – TỔ CHỨC VÀ CẤU TRÚC MÁY TÍNH II CHƯƠNG 9 BỘ XỬ LÝ TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH 1 Nội dung Vi kiến trúc Datapath Câu hỏi và Bài tập 2 IT012[.]
Trang 1IT012 – TỔ CHỨC VÀ CẤU TRÚC MÁY TÍNH II
CHƯƠNG 9
BỘ XỬ LÝ
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
Trang 2Nội dung
1 Vi kiến trúc
2 Datapath
3 Câu hỏi và Bài tập
Kiến trúc
Vi kiến trúc
Luận lý Mạch số
Trang 31 Vi kiến trúc (1/2)
• Kiến trúc Máy tính bao gồm 3 thành
phần chính:
tính có thể làm những việc gì?
Quy định máy tính làm việc như thế nào?
Hiện thực ISA
phần của máy tính phối hợp trong một hệ
thống điện toán như thế nào?
Trang 41 Vi kiến trúc (2/2)
• Về chức năng, Vi kiến trúc là một tổ chức phần cứng dùng để hiện thực tập lệnh của một máy tính.
• Về cấu tạo, Vi kiến trúc được chia thành 2 khối:
Khối đường dữ liệu (datapath): Thực thi lệnh
Lưu trữ: Bộ nhớ lệnh, Bộ nhớ dữ liệu, Tập thanh ghi, …
Truyền/nhận: Các đường tín hiệu dữ liệu, địa chỉ, điều khiển
Xử lý: ALU, Bộ so sánh, Mux, Bộ mở rộng dấu, Bộ dịch, …
Khối điều khiển (control unit): Điều khiển datapath hoạt động
Dựa trên opcode của lệnh và trạng thái của datapath
Trang 52 Datapath (1/9) – Chu kỳ thực thi lệnh
• Datapath dùng để thực thi lệnh! Một lệnh thực thi như thế nào?
Chu kỳ thực thi lệnh!
• Bộ nhớ lệnh
• PC
• Tập thanh ghi
• Bộ nhớ dữ liệu
• Mở rộng dấu
• ALU
• Bộ so sánh
• Tập thanh ghi Nạp lệnh Giải mã Giải mã lệnh Thực thi Truy xuất Bộ nhớ Lưu kết quả
• Bộ nhớ dữ liệu
Trang 62 Datapath (2/9) – Nạp lệnh
• Lệnh cần nạp lưu trong Bộ nhớ lệnh
• Địa chỉ của lệnh cần nạp lưu trong thanh ghi PC
Tăng PC lên 4 để chuẩn bị nạp lệnh tiếp theo -> cần thêm bộ cộng
ADDR DATA_RD
IMEM
+
4
PC
I O
Trang 72 Datapath (3/9) – Giải mã lệnh – Định dạng lệnh
• Dựa vào opcode để xác định định dạng lệnh
rs [25:21]
rt [20:16]
rd [15:11]
shamt [10:6]
funt [5:0]
ADDR DATA_RD
IMEM
opcode [31:26]
ADDR DATA_RD
IMEM
opcode [31:26]
rs [25:21]
rt [20:16]
immediate [15:0]
ADDR DATA_RD
IMEM
opcode [31:26]
address [25:0]
Trang 82 Datapath (4/9) – Giải mã lệnh - Nạp toán hạng
• Dựa vào định dạng lệnh mà nạp toán hạng tương ứng
opcode [31:26]
rs [25:21]
rt [20:16]
rd [15:11]
shamt [10:6]
funt [5:0]
ADDR_RDA
ADDR_RDB DATA_A
REG FILE
ADDR_RDB DATA_B DATA_WR
ADDR_RDA
ADDR_RDB DATA_A
REG FILE
ADDR_WR DATA_B DATA_WR
opcode [31:26]
rs [25:21]
rt [20:16]
[15:11]
immediate
Trang 92 Datapath (5/9) – Nạp toán hạng: beq/bne
ADDR_RDA
ADDR_RDB DATA_A
REG FILE
ADDR_WR DATA_B DATA_WR
opcode [31:26]
rs [25:21]
rt [20:16]
[15:11]
immediate
SignExtend <<2
PC
+
4
I O
Trang 102 Datapath (6/9) – Nạp toán hạng: j
ADDR DATA_RD
IMEM
opcode [31:26]
address [25:0]
PC
+
4
I O
<<2
[31:28]
Trang 112 Datapath (7/9) – Thực thi
• Dựa vào opcode và funt mà quyết định thao tác gì sẽ được thực thi
ADDR_RDA
ADDR_RDB DATA_A
REG FILE
ADDR_RDB DATA_B DATA_WR
ALU
ALUOp
ADDR_RDA
ADDR_RDB DATA_A
REG FILE
ADDR_WR DATA_B DATA_WR
ALU
ALUOp
Trang 122 Datapath (8/9) – Truy xuất bộ nhớ
• Đọc dữ liệu từ bộ nhớ dữ liệu đối với các lệnh nạp
• Ghi dữ liệu tới bộ nhớ dữ liệu đối với các lệnh lưu
ALU
ALUOp
ADDR DATA_RD
DMEM
DATA_WR
ADDR_RDA
ADDR_RDB DATA_A
REG FILE
ADDR_RDB DATA_B DATA_WR
ALU
ALUOp
ADDR DATA_RD
DMEM
DATA_WR
Trang 132 Datapath (9/9) – Lưu kết quả
• Có thể ghi dữ liệu về lại Tập thanh ghi
ADDR_RDA
ADDR_RDB
DATA_A
REG FILE
ADDR_RDB DATA_B
DATA_WR
ALU
ALUOp RegEn
ADDR_RDA
ADDR_RDB DATA_A
REG FILE
ADDR_RDB DATA_B DATA_WR
ALU
ALUOp RegEn
ADDR DATA_RD
DMEM
DATA_WR
Trang 146 Câu hỏi và Bài tập