Xem mẫu
- NKK-HUT
Kiến trúc máy tính
Chương 4
KIẾN TRÚC TẬP LỆNH
(Instruction Set Architecture)
Nguyễn Kim Khánh
Trường Đại học Bách khoa Hà Nội
IT3030 1
- NKK-HUT
Nội dung học phần
n Chương 1. Giới thiệu chung
n Chương 2. Cơ bản về logic số
n Chương 3. Hệ thống máy tính
n Chương 4. Kiến trúc tập lệnh
n Chương 5. Số học máy tính
n Chương 6. Bộ xử lý
n Chương 7. Bộ nhớ
n Chương 8. Vào-ra
n Chương 9. Kiến trúc máy tính tiên tiến
24 July 2011
n IT3030 2
- NKK-HUT
Nội dung của chương 4
4.1. Giới thiệu chung kiến trúc tập lệnh
4.2. Các kiểu thao tác
4.3. Các phương pháp định địa chỉ
4.4. Kiến trúc tập lệnh MIPS
4.5. Kiến trúc tập lệnh Intel x86
IT3030 3
- NKK-HUT
4.1. Giới thiệu chung về kiến trúc tập lệnh
Mô hình lập
trình của máy
tính
IT3030 4
- NKK-HUT
Tập thanh ghi
n Chức năng và đặc điểm:
n Chứa các thông tin tạm thời phục vụ cho
hoạt động ở thời điểm hiện tại của CPU
n Được coi là mức đầu tiên của hệ thống nhớ
n Số lượng thanh ghi nhiều à tăng hiệu năng
của CPU
n Có hai loại thanh ghi:
n Các thanh ghi lập trình được
n Các thanh ghi không lập trình được
IT3030 5
- NKK-HUT
Phân loại thanh ghi theo chức năng
n Thanh ghi địa chỉ: quản lý địa chỉ của ngăn
nhớ hay cổng vào-ra.
n Thanh ghi dữ liệu: chứa tạm thời các dữ
liệu.
n Thanh ghi đa năng: có thể chứa địa chỉ
hoặc dữ liệu.
n Thanh ghi điều khiển/trạng thái: chứa các
thông tin điều khiển và trạng thái của CPU.
n Thanh ghi lệnh: chứa lệnh đang được thực
hiện.
IT3030 6
- NKK-HUT
Một số thanh ghi điển hình
n Các thanh ghi địa chỉ
n Bộ đếm chương trình PC (Program Counter)
n Con trỏ dữ liệu DP (Data Pointer)
n Con trỏ ngăn xếp SP (Stack Pointer)
n Thanh ghi cơ sở và Thanh ghi chỉ số
(Base Register & Index Register)
n Các thanh ghi dữ liệu
n Thanh ghi trạng thái
IT3030 7
- NKK-HUT
Bộ đếm chương trình PC
n Còn được gọi là con trỏ
lệnh IP (Instruction
Pointer)
n Giữ địa chỉ của lệnh
tiếp theo sẽ được nhận
vào.
n Sau khi một lệnh được
nhận vào, nội dung PC
tự động tăng để trỏ
sang lệnh kế tiếp.
IT3030 8
- NKK-HUT
Thanh ghi con trỏ dữ liệu
n Chứa địa chỉ của
ngăn nhớ dữ liệu mà
CPU muốn truy nhập
n Thường có một số
thanh ghi con trỏ dữ
liệu
IT3030 9
- NKK-HUT
Ngăn xếp (Stack)
n Ngăn xếp là vùng nhớ có cấu trúc LIFO
(Last In - First Out)
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
IT3030 10
- NKK-HUT
Con trỏ ngăn xếp SP (Stack Pointer)
n 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:
n Nội dung của SP giảm
n Thông tin được cất vào ngăn nhớ
được trỏ bởi SP
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
n Nội dung của SP tăng
n Khi ngăn xếp rỗng, SP trỏ vào đáy
IT3030 11
- NKK-HUT
Thanh ghi cơ sở và thanh ghi chỉ số
n Thanh ghi cơ sở: chứa địa
chỉ của ngăn nhớ cơ sở
(địa chỉ cơ sở)
n Thanh ghi chỉ số: chứa độ
lệch địa chỉ giữa ngăn
nhớ mà CPU cần truy
nhập so với ngăn nhớ cơ
sở (chỉ số)
n Địa chỉ của ngăn nhớ cần
truy nhập = địa chỉ cơ sở
+ chỉ số
24 July 2011 IT3030 12
- NKK-HUT
Các thanh ghi dữ liệu
n Chứa các dữ liệu tạm thời hoặc các kết
quả trung gian
n Cần có nhiều thanh ghi dữ liệu
n Các thanh ghi số nguyên: 8, 16, 32, 64
bit
n Các thanh ghi số dấu phẩy động
IT3030 13
- NKK-HUT
Thanh ghi trạng thái (Status Register)
n Còn gọi là thanh ghi cờ (Flag Register)
n Chứa các thông tin trạng thái của CPU
n Các cờ phép toán: báo hiệu trạng thái của
kết quả phép toán
n Các cờ điều khiển: biểu thị trạng thái điều
khiển của CPU
IT3030 14
- NKK-HUT
Ví dụ cờ phép toán
n Cờ Zero (cờ rỗng): được thiết lập lên 1 khi
kết quả của phép toán bằng 0.
n Cờ Sign (cờ dấu): được thiết lập lên 1 khi kết
quả phép toán nhỏ hơn 0
n Cờ Carry (cờ nhớ): được thiết lập lên 1 nếu
phép toán có nhớ ra ngoài bit cao nhất à cờ
báo tràn với số không dấu.
n Cờ Overflow (cờ tràn): được thiết lập lên 1
nếu cộng hai số nguyên cùng dấu mà kết quả
có dấu ngược lại à cờ báo tràn với số có
dấu .
IT3030 15
- NKK-HUT
Ví dụ cờ điều khiển
n Cờ Interrupt (Cờ cho phép ngắt):
n Nếu IF = 1 à CPU ở trạng thái cho phép
ngắt với tín hiệu yêu cầu ngắt từ bên ngoài
gửi tới
n Nếu IF = 0 à CPU ở trạng thái cấm ngắt
với tín hiệu yêu cầu ngắt từ bên ngoài gửi
tới
IT3030 16
- NKK-HUT
Thứ tự lưu trữ các byte trong bộ nhớ chính
n Bộ nhớ chính thường đánh địa chỉ theo
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.
IT3030 17
- NKK-HUT
Ví dụ lưu trữ dữ liệu 32-bit
0001 1010 0010 1011 0011 1100 0100 1101
24 July 2011 IT3030 18
- NKK-HUT
Lưu trữ của các bộ xử lý điển hình
n Intel 80x86 và các Pentium: little-endian
n Motorola 680x0, MIPS, SunSPARC: big-endian
n Power PC, Itanium: bi-endian
24 July 2011 IT3030 19
- NKK-HUT
Giới thiệu chung về 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 là một chuỗi số nhị phân 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ữ
IT3030 20
nguon tai.lieu . vn