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

1
Chương 12  
Tập lệnh:  
Đặc điểm và chức năng  
2
+
NỘI DUNG  
1. Đặc điểm tập lệnh  
2. Các loại toán hạng  
3. Các loại dữ liệu trong Intel x86 và ARM  
4. Các loại Hành động (operation)  
5. CISC và RISC  
3
+
1. Đặc điểm tập lệnh  
Lệnh máy (machine instructions hay computer instructions): các  
lệnh mà VXL thực hiện, quyết định hành động của VXL  
Tập lệnh (instruction set): tập hợp các lệnh khác nhau mà VXL  
có thể hiểu & thực hiện  
Mỗi bộ xử lý có một tập lệnh xác định  
Tập lệnh thường có hàng chục đến hàng trăm lệnh  
Mỗi lệnh phải có những thông tin cần thiết cho bộ xử lý thực  
hiện hành động  
4
+
Các thành phần của lệnh  
Mã lệnh - (opcode): chỉ ra hành động cần thực hiện. Opcode  
được xác định bởi một mã nhị phân.  
Địa chỉ toán hạng nguồn: 1 hành động có thể liên quan đến  
một hoặc nhiều toán hạng nguồn. Toán hạng nguồn là đầu vào  
của hành động  
Địa chỉ toán hạng đích: 1 hành động có thể tạo ra một kết quả  
đích  
Địa chỉ lệnh tiếp theo: chỉ cho VXL nơi để lấy lệnh tiếp theo sau  
khi hoàn thành lệnh này  
5
Sơ đồ trạng thái chu kỳ lệnh  
6
Toán hạng có thể ở một trong 4 vùng sau:  
Thanh ghi  
Bộ nhớ chính/bộ nhớ ảo  
Một VXL chứa một hoặc nhiều  
phải cung cấp địa chỉ bộ  
nhớ chính hoặc bộ nhớ ảo,  
như với tham chiếu đến  
lệnh tiếp theo  
thanh ghi, các thanh ghi này có thể  
được các lệnh tham chiếu đến.  
Nếu có nhiều thanh ghi, mỗi  
thanh ghi được gán 1 tên hoặc chỉ  
số riêng. Lệnh tham chiếu đến  
thanh ghi nào phải chứa chỉ số của  
thanh ghi đó  
Thiết bị vào/ra (I/O)  
Lệnh phải chỉ ra thiết bị và  
module vào/ra cho hành  
động. Nếu sử dụng I/O ánh  
xạ bộ nhớ thì đó chỉ là 1 địa  
chỉ bộ nhớ chính hoặc bộ  
nhớ ảo khác  
Immediate (tức thời)  
Giá trị của toán hạng đặt trong1  
trường trong lệnh đang thực hiện  
7
+
Biểu diễn lệnh  
Trong máy tính, mỗi lệnh được biểu diễn bằng một chuỗi bit  
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  
Để thuận tiện, sử dụng biểu diễn ký tự gợi nhớ  
VD: ADD, SUB, LOAD  
8
+
Các loại lệnh  
Xử lý dữ liệu  
Lệnh số học cung cấp khả năng tính toán để xử lý dữ liệu số  
Lệnh logic (Boolean) thực hiện trên các bit của một từ dưới dạng bit chứ  
không phải là số, do đó chúng cung cấp khả năng xử lý bất kỳ loại dữ liệu  
nào mà người dùng muốn  
Lưu trữ dữ liệu  
Việc chuyển dữ liệu vào hay ra thanh ghi và/hoặc bộ nhớ  
Di chuyển dữ liệu  
Lệnh vào/ra được sử dụng để truyền chương trình và dữ liệu vào bộ nhớ,  
truyền kết quả tính toán lại cho người dùng  
Điều khiển  
Lệnh kiểm tra: kiểm tra giá trị của dữ liệu hoặc trạng thái của 1 phép toán  
Lệnh rẽ nhánh: rẽ nhánh tới 1 tập lệnh khác dựa vào điều kiện sẵn có  
9
+
Số lượng địa chỉ trong lệnh (a)  
3 địa chỉ  
Toán hạng 1, Toán hạng 2, Kết quả  
c = a + b;  
Từ lệnh phải rất dài để lưu được cả 3 địa chỉ của 3 toán hạng  
Ví dụ: Y = (A – B)/[C + (D * E)]  
T – vị trí tạm thời, lưu trữ kết quả trung gian  
10  
+
Số lượng địa chỉ trong lệnh (b)  
2 địa chỉ  
1 địa chỉ phải nhận 2 vai trò là toán hạng nguồn và kết quả, địa chỉ  
còn lại là của toán hạng nguồn  
a = a + b  
Giảm độ dài lệnh  
Phát sinh thêm công việc: Lưu trữ tạm thời một số kết quả  
11  
+
Số lượng địa chỉ trong lệnh (c)  
1 địa chỉ  
Một toán hạng được chỉ ra trong lệnh  
Một toán hạng là ngầm định thường là 1 thanh ghi (AC - tích luỹ)  
Phổ biến trong các máy tính đời đầu  
12  
+
Số lượng địa chỉ trong lệnh (d)  
0 địa chỉ  
Tất cả địa chỉ toán hạng được ngầm định  
Sử dụng ngăn xếp (stack)  
Stack là các vị trí nhớ LIFO  
Ví dụ:  
push a  
push b  
add  
pop c  
Có nghĩa là: c = a+b  
„Không thông dụng  
13  
+
Sử dụng các địa chỉ lệnh  
(Các câu lệnh không rẽ nhánh)  
14  
+
Số lượng địa chỉ bao nhiêu là đủ?  
Nhiều địa chỉ hơn  
Lệnh phức tạp hơn, dài hơn  
Thực hiện lệnh chậm hơn  
Cần nhiều thanh ghi hơn  
Tham chiếu thanh ghi bên trong nhanh hơn tăng tốc độ xử lý  
Ít lệnh trên 1 chương trình  
Ít địa chỉ hơn  
Lệnh ít phức tạp hơn, ngắn hơn  
Truy xuất/thực thi lệnh nhanh hơn  
Nhiều lệnh trên 1 chương trình chương trình dài, phức tạp hơn  
15  
Các vấn đề thiết kế tập lệnh  
. Danh sách các hành động  
. Bao nhiêu hành động? Hành động nào? Độ phức tạp của hành  
động?  
. Các kiểu dữ liệu  
. Các kiểu dữ liệu mà các hành động tham chiếu đến  
. Định dạng lệnh  
. Độ dài lệnh (bit), số lượng địa chỉ, kích thước các trường, ...  
. Các thanh ghi  
. Số lượng thanh ghi của VXL mà lệnh có thể tham chiếu đến?  
Cách sử dụng thanh ghi?  
. Các phương pháp định địa chỉ  
. Một hoặc nhiều chế độ định địa chỉ của toán hạng  
. RISC hay CISC  
. „ Reduced Instruction Set Computing  
. „Complex Instruction Set Computing  
16  
2. Các loại toán hạng  
17  
+
Số  
Tất cả các ngôn ngữ máy đều có dữ liệu dạng số  
Số được lưu trữ trong máy tính là hữu hạn  
Độ lớn của số biểu diễn được trên máy bị giới hạn  
Độ chính xác bị giới hạn (số dấu chấm động)  
Ba kiểu dữ liệu số thông thường:  
Số nguyên nhị phân hoặc số nhị phân dấu chấm tĩnh  
Số nhị phân dấu chấm động  
Sô thập phân  
Packed decimal  
Mỗi chữ số thập phân được biểu diễn bởi một mã 4 bit, 2 chữ số đươc  
lưu trữ trên một byte  
Để tạo số, các mã 4 bit được nối với nhau, thường là bội của 8 bit  
18  
+
Ký tự  
Một trong những dạng dữ liệu cơ bản là 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  
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 là mã ASCII (American Standard Code for Information  
Interchange)  
Bảng mã EBCDIC (Extended Binary Coded Decimal Interchange  
Code) được sử dụng trong các máy mainframe của IBM  
19  
+
Dữ liệu logic  
Một khối n-bit gồm n phần tử dữ liệu 1 bit, mỗi phần tử có  
giá trị 0 hoặc 1  
Hai ưu điểm của view theo bit:  
Bộ nhớ được sử dụng hiệu quả nhất để lưu trữ một mảng  
các phần tử dữ liệu nhị phân/ Boolean, trong đó mỗi phần tử  
chỉ nhận giá trị 1 (đúng) hoặc 0 (sai)  
Để thao tác trên các bit của một phần dữ liệu  
Nếu phép toán dấu chấm động thực hiện trong phần mềm, trong  
một số phép toán ta cần phải dịch các bit có nghĩa  
Để chuyển đổi từ IRA thành packed decimal, ta cần trích xuất 4  
bit bên phải của mỗi byte  
20  
+
3.1. Các kiểu dữ liệu x86  
Byte 8 bit  
Từ 16 bit  
Double word 32 bit  
Quad word 64 bit  
Double quadword 128 bit  
Định địa chỉ cho từng đơn vị 8 bit  
Các từ không cần phải căn tại địa chỉ chẵn  
Dữ liệu truy cập vào bus 32 bit theo đơn vị double word  
được đọc tại các địa chỉ chia hết cho 4  
Little endian: byte ít quan trọng nhất được lưu giữ ở địa chỉ  
thấp nhất  
Tải về để xem bản đầy đủ
pdf 45 trang yennguyen 134740 Free
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 12: Tập lệnh - Đặc điểm và chức năng - Nguyễn Hằng 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_12_tap_lenh_dac_diem_va.pdf