Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Bài giảng kiến trúc máy tính và hợp ngữ: Kiến trúc bộ lệnh MIPS doc
Nội dung xem thử
Mô tả chi tiết
TH028 – Kiến trúc máy tính và hợp ngữ
Bài 6. Kiến trúc bộ lệnh MIPS
Phạm Tuấn Sơn
2
• Sau bài này, SV có kh
ả n
ăng:
– Có kh
ả n
ăng l
ập trình h
ợp ng
ữ MIPS
– Gi
ải thích quan
điểm thi
ết k
ế
b
ộ lệnh MIPS
– Trình bày các v
ấn đề
c
ần quan tâm khi thi
ết
k
ế
m
ột b
ộ lệnh
– Có kh
ả n
ăng t
ự thi
ết k
ế
m
ột b
ộ lệnh theo m
ột
quan
điểm nào
đ
ó
M
ục tiêu
3
• Kiến trúc bộ lệnh MIPS
• Các vấn đề khi thiết kế bộ lệnh
• Quan điểm thiết kế bộ lệnh MIPS
Nội dung
4
• Công việc cơ bản nhất của CPU là thực thi các lệnh
(instruction).
• Các CPU khác nhau cài đặt các tập lệnh khác nhau. Tập
hợp các lệnh mà một CPU nào đó cài đặt gọi là kiến trúc
bộ lệnh (Instruction Set Architecture – ISA).
– Ví dụ: Intel 80x86 (Pentium 4), IBM/Motorola PowerPC
(Macintosh), MIPS, Intel IA64, ...
• Môn học sẽ sử dụng kiến trúc MIPS để minh họa.
• Tại sao sử dụng MIPS để giảng dạy thay vì Intel 80x86?
Kiến trúc bộ lệnh
5
Lệnh số học trong MIPS
• Cú pháp:
opt opr,opr1,opr2
trong đó:
opt – Tên thao tác (toán tử, tác tử)
opr – Thanh ghi (toán hạng, tác tố đích)
chứa kết quả
opr1 – Thanh ghi (toán hạng nguồn thứ 1)
opr2 – Thanh ghi hoặc hằng số (toán hạng
nguồn thứ 2)
6
Toán hạng thanh ghi
• MIPS hỗ trợ 32 thanh ghi đánh số từ $0 - $31.
Tại sao là 32 ? Để dễ sử dụng, các thanh ghi
còn có thể được truy xuất thông qua tên của nó.
• Mỗi thanh ghi có kích thước 32 bit. Tại sao là 32
?
– Trong MIPS, nhóm 32 bit được gọi là một từ (word)
• Trong đó, 8 thanh ghi thường được sử dụng để
thực hiện các phép tính được đánh số $16 -
$23.
$16 - $23 ~ $s0 - $s7 (saved register)
(tương ứng với biến C)
7
M
ột s
ố đặc
điểm
c
ủa toán h
ạng thanh ghi
•
Đóng vai trò gi
ống nh
ư bi
ến trong các NNLT c
ấp cao (C,
Java). Tuy nhiên, khác v
ới bi
ến ch
ỉ có th
ể gi
ữ giá trị theo
ki
ểu d
ữ li
ệu được khai báo trước khi s
ử
d
ụng, thanh ghi
không có ki
ểu, thao tác trên thanh ghi s
ẽ xác định d
ữ
li
ệu trong thanh ghi s
ẽ được đối x
ử nh
ư th
ế nào.
•
Ưu
điể
m: b
ộ
x
ử lý truy xu
ất thanh ghi nhanh nh
ất (h
ơn 1
t
ỉ lần trong 1 giây) vì thanh ghi là m
ột thành ph
ần ph
ần
c
ứng thường n
ằm chung m
ạch v
ới b
ộ
x
ử lý.
• Khuy
ết
điể
m: do thanh ghi là m
ột thành ph
ần ph
ần c
ứng
nên s
ố lượng c
ố định và h
ạn ch
ế. Do
đó, s
ử
d
ụng ph
ải
khéo léo.
8
Cộng, trừ số nguyên (1/4)
• Lệnh cộng:
add $s0,$s1,$s2 (cộng có dấu trong MIPS)
addu $s0,$s1,$s2 (cộng không dấu trong MIPS)
tương ứng với: a = b + c (trong C)
trong đó các thanh ghi $s0,$s1,$s2 (trong MIPS)
tương ứng với các biến a, b, c (trong C)
• Lệnh trừ:
sub $s3,$s4,$s5 (trừ có dấu trong MIPS)
subu $s3,$s4,$s5 (trừ không dấu trong MIPS)
tương ứng với: d = e - f (trong C)
trong đó các thanh ghi $s3,$s4,$s5 (trong MIPS)
tương ứng với các biến d, e, f (trong C)
9
C
ộng, tr
ừ
s
ố nguyên (2/4)
• L
ưu ý: toán h
ạng trong các l
ệnh trên ph
ải là
thanh ghi
• Trong MIPS, l
ệnh thao tác v
ới s
ố không d
ấu có
ký t
ự cu
ối là “u” – unsigned. Các thao tác khác
là thao tác v
ới s
ố có d
ấu. S
ố nguyên có d
ấu
được bi
ểu di
ễn dưới d
ạng bù 2.
• Làm sao bi
ết được m
ột phép toán (ví d
ụ a =
b+c) là thao tác trên s
ố có d
ấu hay không d
ấu ?
• Có th
ể
s
ử
d
ụng 1 toán h
ạng
đóng 2 vai trò v
ừa
là toán h
ạng ngu
ồn, v
ừa là toán h
ạng
đích
Æ
lệnh ch
ỉ
c
ần 2 toán h
ạng.
Tại sao không
?
10
Cộng, trừ số nguyên (3/4)
• Làm thế nào để thực hiện câu lệnh C sau đây bằng lệnh
máy MIPS?
a = b + c + d - e
• Chia nhỏ thành nhiều lệnh máy
add $s0, $s1, $s2 # a = b + c
add $s0, $s0, $s3 # a = a + d
sub $s0, $s0, $s4 # a = a - e
• Chú ý: một lệnh trong C có thể gồm nhiều lệnh MIPS.
• Tại sao không xây dựng các lệnh MIPS có nhiều toán
hạng nguồn hơn ?
• Ghi chú: ký tự “#” dùng để chú thích trong hợp ngữ cho
MIPS