Bài giảng Kiến trúc máy tính - Chương 10: Tập lệnh - Đặc điểm và chức năng - Nguyễn Thị Phương

+
úc máy tính  
n Kỹ thuật máy tính và mạng  
Chương 10  
Tập lệnh:  
Đặc điểm chức năng  
+
Chương 10. Tập lệnh  
b. Các kiểu dữ liệu ARM  
a. Truyền dữ liệu  
b. Số học  
a. Thành phần của lệnh máy  
b. Biểu diễn lệnh  
c. Các loại lệnh  
d. Số lượng địa chỉ  
e. Thiết kế tập lệnh  
a. Số  
c. Logic  
d. Chuyển đổi  
e. Vào/ra  
f. Điều khiển hệ thống  
g. Truyền điều khiển  
b. Ký tự  
c. Dữ liệu logic  
a. Các loại hoạt động x86  
b. Các loại hoạt động ARM  
a. Các kiểu dữ liệu x86  
+
10.1 Đặc điểm tập lệnh  
Hoạt động (operation) của VXL được quyết định bởi các lệnh thực  
hiện, đó là các lệnh máy tính (machine instructions hay computer  
instructions)  
VD: Lệnh STORE: lưu trữ dữ liệu vào bộ nhớ  
Tập hợp các lệnh khác nhau mà VXL có thể thực hiện được gọi tập  
lệnh (instruction set) của VXL  
Mỗi lệnh phải những thông tin cần thiết cho bộ xử thực hiện  
hoạt động  
VD: Lệnh STORE ở trên phải đi kèm địa chỉ ngăn nhớ mà dữ liệu được ghi  
vào  
 
Biểu đồ chu kỳ lệnh  
a. Các thành phần của lệnh  
+
Mã lệnh - Operation code (opcode): chỉ ra hoạt động (operation: hoạt động/phép  
toán) được thực hiện thông qua một mã nhị phân được gọi là mã lệnh (opcode)  
Tham chiếu toán hạng nguồn: Mỗi hoạt động có thể tham chiếu đến một hoặc  
nhiều toán hạng để lấy dữ liệu đầu vào cho hoạt động: các toán hạng này được gọi  
toán hạng nguồn  
Tham chiếu toán hạng kết quả (toán hạng đích): Hoạt động có thể đưa ra một kết  
quả  
Tham chiếu lệnh tiếp theo: Một số hoạt động có thể rẽ nhánh đến một câu lệnh ở vị  
trí khác nói cho VXL nơi để lấy lệnh tiếp theo sau khi việc thực thi lệnh hiện tại  
hoàn thành  
VD: lệnh của máy IAS (20b: 8b opcode và 12b địa chỉ toán hạng)  
lệnh (Opcode)  
tả hợp ngữ  
Công việc  
Truyền dữ liệu từ thanh ghi AC vào ngăn  
nhớ có địa chỉ X trong bộ nhớ (M)  
00100001  
STOR M(X)  
Truyền dữ liệu từ AC vào ngăn nhớ có  
địa chỉ 1A0 trong bộ nhớ.  
AC: toán hạng nguồn (ngầm định)  
1A0: toán hạng đích  
VD: 00100001 0001  
1010 0000  
STOR M(1A0)  
Các toán hạng nguồn và kết quả có thể ở một trong bốn vùng  
sau:  
1) Bộ nhớ chính hoặc bộ nhớ ảo  
2) Thanh ghi  
Toán hạng nguồn/kết quả có thể là  
một vị trí bộ nhớ chính hoặc bộ  
nhớ ảo. Trong lệnh phải chứa địa  
chỉ bộ nhớ chính hoặc bộ nhớ ảo  
của toán hạng đó  
Toán hạng nguồn hoặc kết quả có thể là các  
thanh ghi. Một VXL chứa một hoặc nhiều  
thanh ghi, mỗi thanh ghi được gán cho một  
tên hoặc số riêng.  
Một lệnh có thể tham chiếu đến các thanh  
ghi này.  
3) Tức thì  
4) Thiết bị vào/ra (I/O)  
Giá trị của toán hạng có thể được  
Dữ liệu có thể lấy từ (hoặc ghi ra)  
một thiết bị I/O lệnh phải chỉ ra  
địa chỉ thiết bị và module vào/ra  
tương ứng  
đưa trực tiếp vào trong câu lệnh  
+
b. Biểu diễn lệnh  
Trong máy tính, mỗi câu lệnh được biểu diễn bằng một chuỗi  
bit nhị phân  
Câu lệnh được chia ra thành các trường tương ứng với các  
thành phần cấu thành của lệnh  
Ví dụ  
Ví dụ: Tập lệnh IAS  
Trong các tài liệu, để dễ hiểu, lệnh  
thường được biểu diễn dưới dạng  
các ký hiệu thay vì các bit nhị phân.  
Opcode được viết tắt, mô tả hoạt  
động (phép toán).  
ADD  
SUB  
MUL  
DIV  
Cộng  
Trừ  
Nhân  
Chia  
LOAD Tải dữ liệu từ bộ nhớ  
STOR Lưu dữ liệu vào bộ nhớ  
+
Ví dụ:  
NNLT bậc cao được đưa ra để giúp công việc của lập  
trình viên thuận lợi hơn  
Ví dụ câu lệnh: X=X+Y viết bằng NN C++ nếu dịch  
sang tập lệnh IAS sẽ gồm các lệnh như sau  
0010 0000 0001 0000  
0101 0000 0001 0001  
LOAD X  
ADD Y  
Đọc X từ bộ nhớ vào thanh ghi AC  
Đọc Y từ bộ nhớ, cộng Y với AC, kết quả  
ghi vào AC  
1000 0000 0001 0000  
STOR X  
Ghi AC vào X trong bộ nhớ  
Trong đó: X, Y là biến, có địa chỉ BN: X: 0000 0001 0000  
Y: 0000 0001 0001  
+
c. Các loạlệnh: chia thành 4 nhóm  
Xử lý dữ liệu: các lệnh số học và logic  
Các lệnh số học cung cấp khả năng tính toán để xử lý dữ liệu số  
Các lệnh logic (Boolean) hoạt động trên các bit, cung cấp khả năng xử lý bất kỳ loại  
dữ liệu nào. Các lệnh này chủ yếu thực thi với các bit trên thanh ghi  
Lưu trữ dữ liệu  
Các lệnh đọc/ghi dữ liệu từ/vào thanh ghi hoặc bộ nhớ  
Di chuyển dữ liệu:  
Gồm các lệnh vào/ra: được sử dụng để truyền chương trình và dữ liệu vào bộ nhớ và  
các kết quả tính toán được trở lại cho người dùng  
Ví dụ: chương trình user và dữ liệu (lưu trữ ở ổ cứng) được nạp vào RAM  
Điều khiển: gồm các lệnh kiểm tra và rẽ nhánh  
Các lệnh kiểm tra được sử dụng để kiểm tra giá trị của dữ liệu hoặc trạng thái của  
một phép toán  
Các lệnh rẽ nhánh được dùng để rẽ nhánh tập lệnh khác nhau tùy thuộc vào điều  
kiện cụ thể  
+
d. Số lượng các địa chỉ  
Một thuộc tính quan trọng của tập lệnh số lượng địa chỉ  
Tùy thuộc vào các lệnh khác nhau sẽ có số lượng toán hạng  
khác nhau  
Như phần trên đã đề cập, các toán hạng có thể là các vị trí nhớ (trong  
bộ nhớ chính ) hoặc I/O (I/O port), được đặc trưng bởi một địa chỉ  
logic  
Vậy, số lượng địa chỉ tối đa trong một lệnh là bao nhiêu:  
Các lệnh số học và logic: cần tối đa 4 địa chỉ: 2 đ/c toán hạng nguồn,  
1đ/c toán hạng đích, 1 đ/c toán hạng truy xuất câu lệnh tiếp theo.  
Số lượng địa chỉ càng nhiều thì kích thước lệnh càng lớn  
Với hầu hết các hệ VXL, số lượng địa chỉ là 1, 2 hoặc 3. Lệnh tiếp theo  
được ngầm định truy xuất thông qua thanh ghi PC (program counter  
register)  
+
Số lượng các địa chỉ (tiếp)  
Ví dụ các lệnh tính toán biểu thức =()/(+(×)) trong  
3 trường hợp:  
Trường hợp lệnh 3 địa chỉ:  
Kích thước lệnh dài  
Toán hạng 1, toán hạng 2, kết quả  
T: vị trí bộ nhớ tạm thời để lưu trữ kết  
quả  
Trường hợp lệnh 2 địa chỉ:  
Kết quả phép toán được ghi vào một địa  
chỉ  
dụ các lệnh tính toán biểu thức 푌 = (퐴 − 퐵)/(퐶 + 퐷 × 퐸 ) trong 3  
trường hợp  
. Trường hợp lệnh 1 địa chỉ:  
. Một toán hạng ngầm  
định là thanh ghi AC  
. Phổ biến ở các hệ VXL  
đơn giản, đời đầu  
. Trường hợp lệnh 0 địa chỉ:  
. Ngầm định 2 ngăn nhớ ở đỉnh vùng ngăn xếp (stack) của  
BN  
. Số lượng các địa chỉ càng ít thì số lượng các câu lệnh để tính toán  
biểu thức càng nhiều  
+
Bảng 10.1  
Mô tả các lệnh 0, 1, 2, 3 địa chỉ  
+
Số lượng địa chỉ trong mỗi lệnh là một yếu tố cơ bản đối  
với thiết kế VXL.  
Lệnh càng ít địa chỉ kích thước lệnh ngắn hơn VXL  
ít phức tạp hơn chương trình cần nhiều lệnh hơn để  
thực hiện một công việc mất thời gian hơn  
Lệnh một địa chỉ, lập trình viên thường chỉ có sẵn một  
thanh ghi đa năng: thanh ghi AC.  
Với các hệ VXL cho phép lệnh nhiều địa chỉ thường có  
nhiều thanh ghi đa năng. Điều này cho phép một số hoạt  
động được thực hiện chỉ trong các thanh ghi không cần  
truy xuất BNC tốc độ nhanh hơn.  
Hầu hết các hệ VXL hiện đại sử dụng kết hợp các cấu  
trúc lệnh hai và ba địa chỉ.  
e. Thiếkế tập lệnh  
. Tập lệnh định nghĩa các chức năng được thực hiện bởi VXL  
. phương tiện của người lập trình trong việc điều khiển VXL  
. Các vấn đề thiết kế cơ bản:  
o Danh sách các hoạt động: bao nhiêu hoạt động hoạt động  
nào được đưa ra? Độ phức tạp của các hoạt động như thế nào?  
o Các kiểu dữ liệu: các kiểu dữ liệu mà các hoạt động tham chiếu  
đến  
o Cấu trúc lệnh: độ dài lệnh theo bit, số lượng địa chỉ, kích  
thước của các trường khác nhau, v.v ...  
o Các thanh ghi: số lượng các thanh ghi của VXL có thể được  
tham chiếu đến bởi lệnh chức năng của chúng  
o Chế độ địa chỉ: các cách để định ra địa chỉ của toán hạng  
+
Ví dụ  
Viết chương trình tính giá trị biểu thức sau sử dụng các  
tập lệnh 0, 1, 2, 3 địa chỉ cho ở bảng dưới  
푋 = (퐴 + 퐵 × 퐶)/(퐷 − 퐸 × 퐹)  
10.2 Các kiểu toán hạng  
 
+
Dữ liệu kiểu số  
Tất cả các ngôn ngữ máy đều dữ liệu dạng số  
Các số được lưu trữ trong máy tính đều hữu hạn:  
Hữu hạn về độ lớn của các số biểu diễn trên máy  
Hữu hạn về độ chính xác đối với số dấu phẩy động  
Ba kiểu dữ liệu số thông thường trong máy tính:  
1. Số nguyên nhị phân hoặc số nhị phân dấu chấm tĩnh  
2. Số nhị phân dấu chấm động  
3. Số thập phân đóng  
Mỗi chữ số thập phân được biểu diễn bởi một mã 4 bit  
0 = 0000, 1 = 0001,…, 8 = 1000 và 9 = 1001  
Dấu dương (+): 1100, dấu âm (-): 1101  
Chiều dài mã thường là bội của 8b  
+
Dữ liệu kiểu ký tự  
Một trong những dạng dữ liệu cơ bản văn bản (text) hoặc xâu ký tự  
(character strings)  
Dữ liệu văn bản dưới dạng ký tự không thể lưu trữ hoặc truyền qua hệ  
thống xử lý dữ liệu và truyền thông vì các hệ thống này được thiết kế  
cho dữ liệu nhị phân sử dụng bảng mã  
Bảng mã mã hóa ký tự được sử dụng phổ biến nhất là bảng mã IRA  
(International Reference Alphabet)  
Còn được gọi ở Mỹ là bảng mã ASCII (American Standard Code for  
Information Interchange)  
Một bảng mã khác được sử dụng để mã hoá các ký tự bảng mã  
EBCDIC (Extended Binary Coded Decimal Interchange Code) được  
sử dụng trong các máy mainframe của IBM  
Tải về để xem bản đầy đủ
pdf 57 trang yennguyen 12/04/2022 3120
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 10: Tập lệnh - Đặc điểm và chức năng - Nguyễn Thị Phương", để 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_10_tap_lenh_dac_diem_va.pdf