Bài giảng Kiến trúc máy tính - Chương 5: Kiến trúc tập lệnh - Nguyễn Kim Khánh

NKK-HUST  
Kiến trúc máy tính  
Chương 5  
KIẾN TRÚC TẬP LỆNH  
Nguyễn Kim Khánh  
Trường Đại học Bách khoa Hà Nội  
2017  
Kiến trúc máy tính  
194  
NKK-HUST  
Nội dung học phần  
Chương 1. Giới thiệu chung  
Chương 2. Cơ bản về logic số  
Chương 3. Hệ thống máy tính  
Chương 4. Số học máy tính  
Chương 5. Kiến trúc tập lệnh  
Chương 6. Bộ xử lý  
Chương 7. Bộ nhớ máy tính  
Chương 8. Hệ thống vào-ra  
Chương 9. Các kiến trúc song song  
2017  
Kiến trúc máy tính  
195  
NKK-HUST  
Nội dung của chương 5  
5.1. Giới thiệu chung về kiến trúc tập lệnh  
5.2. Lệnh hợp ngữ và toán hạng  
5.3. Mã máy  
5.4. Cơ bản về lập trình hợp ngữ  
5.5. Các phương pháp định địa chỉ  
5.6. Dịch và chạy chương trình hợp ngữ  
2017  
Kiến trúc máy tính  
196  
NKK-HUST  
5.1. Giới thiệu chung về kiến trúc tập lệnh  
n Kiến trúc tập lệnh (Instruction Set Architecture):  
cách nhìn máy tính bởi người lập trình  
n Vi kiến trúc (Microarchitecture): cách thực hiện  
kiến trúc tập lệnh bằng phần cứng  
n Ngôn ngữ trong máy tính:  
n
Hợp ngữ (assembly language):  
n
n
dạng lệnh có thể đọc được bởi con người  
biểu diễn dạng text  
n
Ngôn ngữ máy (machine language):  
n
n
n
còn gọi là mã máy (machine code)  
dạng lệnh có thể đọc được bởi máy tính  
biểu diễn bằng các bit 0 và 1  
2017  
Kiến trúc máy tính  
197  
NKK-HUST  
Mô hình lập trình của máy tính  
Bộ nhớ chính  
CPU  
lệnh  
lệnh  
lệnh  
PC  
Đơn vị  
lệnh  
điều khiển  
.
.
.
dữ liệu  
dữ liệu  
dữ liệu  
ALU  
dữ liệu  
.
.
.
Tập thanh ghi  
Vào-ra  
.
.
.
2017  
Kiến trúc máy tính  
198  
NKK-HUST  
CPU nhận lệnh từ bộ nhớ  
n Bộ đếm chương trình PC  
(Program Counter) là thanh ghi  
của CPU giữ địa chỉ của lệnh cần  
nhận vào để thực hiện  
lệnh  
lệnh  
lệnh  
n CPU phát địa chỉ từ PC đến bộ  
lệnh được  
nhận vào  
PC  
nhớ, lệnh được nhận vào  
lệnh kế tiếp  
lệnh  
n Sau khi lệnh được nhận vào, nội  
dung PC tự động tăng để trỏ sang  
lệnh kế tiếp  
lệnh  
n PC tăng bao nhiêu?  
n
Tùy thuộc vào độ dài của lệnh vừa  
được nhận  
n
MIPS: lệnh có độ dài 32-bit, PC tăng 4  
2017  
Kiến trúc máy tính  
199  
NKK-HUST  
Giải mã và thực hiện lệnh  
n Bộ xử lý giải mã lệnh đã được nhận và phát các  
tín hiệu điều khiển thực hiện thao tác mà lệnh yêu  
cầu  
n Các kiểu thao tác chính của lệnh:  
n
n
n
Trao đổi dữ liệu giữa CPU và bộ nhớ chính hoặc cổng  
vào-ra  
Thực hiện các phép toán số học hoặc phép toán logic  
với các dữ liệu (được thực hiện bởi ALU)  
Chuyển điều khiển trong chương trình (rẽ nhánh, nhảy)  
2017  
Kiến trúc máy tính  
200  
NKK-HUST  
CPU đọc/ghi dữ liệu bộ nhớ  
n Với các lệnh trao đổi dữ liệu với bộ nhớ,  
CPU cần biết và phát ra địa chỉ của ngăn  
nhớ cần đọc/ghi  
n Địa chỉ đó có thể là:  
n
n
n
Hằng số địa chỉ được cho trực tiếp trong lệnh  
Giá trị địa chỉ nằm trong thanh ghi con trỏ  
Địa chỉ = Địa chỉ cơ sở + giá trị dịch chuyển  
2017  
Kiến trúc máy tính  
201  
NKK-HUST  
Hằng số địa chỉ  
n Trong lệnh cho hằng số  
dữ liệu  
dữ liệu  
địa chỉ cụ thể  
dữ liệu  
n CPU phát giá trị địa chỉ  
này đến bộ nhớ để tìm  
ra ngăn nhớ dữ liệu cần  
đọc/ghi  
Hằng số địa chỉ  
dữ liệu cần đọc/ghi  
dữ liệu  
dữ liệu  
dữ liệu  
dữ liệu  
2017  
Kiến trúc máy tính  
202  
NKK-HUST  
Sử dụng thanh ghi con trỏ  
n Trong lệnh cho biết  
dữ liệu  
dữ liệu  
tên thanh ghi con trỏ  
n Thanh ghi con trỏ  
dữ liệu  
Thanh ghi  
dữ liệu cần đọc/ghi  
dữ liệu  
chứa giá trị địa chỉ  
n CPU phát địa chỉ này  
ra để tìm ra ngăn  
nhớ dữ liệu cần  
đọc/ghi  
dữ liệu  
dữ liệu  
dữ liệu  
2017  
Kiến trúc máy tính  
203  
NKK-HUST  
Sử dụng địa chỉ cơ sở và dịch chuyển  
n Địa chỉ cơ sở (base address):  
địa chỉ của ngăn nhớ cơ sở  
n Giá trị dịch chuyển địa chỉ (offset):  
gia số địa chỉ giữa ngăn nhớ cần  
đọc/ghi so với ngăn nhớ cơ sở  
Địa chỉ cơ sở  
Offset  
Ngăn nhớ cơ sở  
n Địa chỉ của ngăn nhớ cần đọc/ghi  
= (địa chỉ cơ sở) + (offset)  
dữ liệu cần đoc/ghi  
n Có thể sử dụng các thanh ghi để  
quản lý các tham số này  
n Trường hợp riêng:  
n
Địa chỉ cơ sở = 0  
n
Offset = 0  
2017  
Kiến trúc máy tính  
204  
NKK-HUST  
Ngăn xếp (Stack)  
n Ngăn xếp là vùng nhớ dữ liệu có cấu trúc  
LIFO (Last In - First Out vào sau - ra trước)  
n Ngăn xếp thường dùng để phục vụ cho  
chương trình con  
n Đáy ngăn xếp là một ngăn nhớ xác định  
n Đỉnh ngăn xếp là thông tin nằm ở vị trí trên  
cùng trong ngăn xếp  
n Đỉnh ngăn xếp có thể bị thay đổi  
2017  
Kiến trúc máy tính  
205  
NKK-HUST  
Con trỏ ngăn xếp SP (Stack Pointer)  
n SP là thanh ghi chứa địa chỉ của  
ngăn nhớ đỉnh ngăn xếp  
n Khi cất một thông tin vào ngăn  
xếp:  
SP  
đỉnh ngăn xếp  
n
Giảm nội dung của SP  
Thông tin được cất vào ngăn nhớ  
được trỏ bởi SP  
chiều  
địa  
chỉ  
tăng  
dần  
n
n Khi lấy một thông tin ra khỏi  
ngăn xếp:  
n
Thông tin được đọc từ ngăn nhớ  
được trỏ bởi SP  
đáy ngăn xếp  
n
Tăng nội dung của SP  
n Khi ngăn xếp rỗng, SP trỏ vào  
đáy  
2017  
Kiến trúc máy tính  
206  
NKK-HUST  
Thứ tự lưu trữ các byte trong bộ nhớ chính  
n Bộ nhớ chính được đánh địa chỉ cho từng byte  
n Hai cách lưu trữ thông tin nhiều byte:  
n
Đầu nhỏ (Little-endian): Byte có ý nghĩa thấp được  
lưu trữ ở ngăn nhớ có địa chỉ nhỏ, byte có ý nghĩa  
cao được lưu trữ ở ngăn nhớ có địa chỉ lớn.  
n
Đầu to (Big-endian): Byte có ý nghĩa cao được lưu  
trữ ở ngăn nhớ có địa chỉ nhỏ, byte có ý nghĩa thấp  
được lưu trữ ở ngăn nhớ có địa chỉ lớn.  
n Các sản phẩm thực tế:  
n
n
n
Intel x86: little-endian  
Motorola 680x0, SunSPARC: big-endian  
MIPS, IA-64: bi-endian (cả hai kiểu)  
2017  
Kiến trúc máy tính  
207  
NKK-HUST  
Ví dụ lưu trữ dữ liệu 32-bit  
Số  
nhị phân  
0001 1010 0010 1011 0011 1100 0100 1101  
Số Hexa  
1A  
2B  
3C  
4D  
4D  
3C  
2B  
1A  
4000  
1A  
2B  
3C  
4D  
4000  
4001  
4002  
4003  
4001  
4002  
4003  
little-endian  
big-endian  
2017  
Kiến trúc máy tính  
208  
NKK-HUST  
Tập lệnh  
n Mỗi bộ xử lý có một tập lệnh xác định  
n Tập lệnh thường có hàng chục đến hàng trăm  
lệnh  
n Mỗi lệnh máy (mã máy) là một chuỗi các bit (0,1)  
mà bộ xử lý hiểu được để thực hiện một thao  
tác xác định.  
n Các lệnh được mô tả bằng các ký hiệu gợi nhớ  
dạng text, đó chính là các lệnh của hợp ngữ  
(assembly language)  
2017  
Kiến trúc máy tính  
209  
NKK-HUST  
Dạng lệnh hợp ngữ  
n Mã C:  
a = b + c;  
n Ví dụ lệnh hợp ngữ:  
add a, b, c # a = b + c  
trong đó:  
n
add: ký hiệu gợi nhớ chỉ ra thao tác (phép toán)  
cần thực hiện.  
n
Chú ý: mỗi lệnh chỉ thực hiện một thao tác  
n
n
n
b, c: các toán hạng nguồn cho thao tác  
a: toán hạng đích (nơi ghi kết quả)  
phần sau dấu # là lời giải thích (chỉ có tác dụng  
đến hết dòng)  
2017  
Kiến trúc máy tính  
210  
NKK-HUST  
Các thành phần của lệnh máy  
Mã thao tác  
Địa chỉ toán hạng  
n Mã thao tác (operation code hay opcode): mã  
hóa cho thao tác mà bộ xử lý phải thực hiện  
n
n
n
n
Các thao tác chuyển dữ liệu  
Các phép toán số học  
Các phép toán logic  
Các thao tác chuyển điều khiển (rẽ nhánh, nhảy)  
n Địa chỉ toán hạng: chỉ ra nơi chứa các toán  
hạng mà thao tác sẽ tác động  
n
Toán hạng có thể là:  
n
n
n
Hằng số nằm ngay trong lệnh  
Nội dung của thanh ghi  
Nội dung của ngăn nhớ (hoặc cổng vào-ra)  
2017  
Kiến trúc máy tính  
211  
NKK-HUST  
Số lượng địa chỉ toán hạng trong lệnh  
n Ba địa chỉ toán hạng:  
n
add r1, r2, r3 # r1 = r2 + r3  
n
Sử dụng phổ biến trên các kiến trúc hiện nay  
n Hai địa chỉ toán hạng:  
n
add r1, r2 # r1 = r1 + r2  
n
Sử dụng trên Intel x86, Motorola 680x0  
n Một địa chỉ toán hạng:  
n
add r1  
# Acc = Acc + r1  
n
Được sử dụng trên kiến trúc thế hệ trước  
n 0 địa chỉ toán hạng:  
n
Các toán hạng đều được ngầm định ở ngăn xếp  
n
Không thông dụng  
2017  
Kiến trúc máy tính  
212  
NKK-HUST  
Các kiến trúc tập lệnh CISC và RISC  
n CISC: Complex Instruction Set Computer  
n
Máy tính với tập lệnh phức tạp  
n
Các bộ xử lý: Intel x86, Motorola 680x0  
n RISC: Reduced Instruction Set Computer  
n
n
n
n
Máy tính với tập lệnh thu gọn  
SunSPARC, Power PC, MIPS, ARM ...  
RISC đối nghịch với CISC  
Kiến trúc tập lệnh tiên tiến  
2017  
Kiến trúc máy tính  
213  
Tải về để xem bản đầy đủ
pdf 116 trang yennguyen 12/04/2022 5580
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 5: Kiến trúc tập lệnh - Nguyễn Kim Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_5_kien_truc_tap_lenh_ngu.pdf