Tải bản đầy đủ (.pptx) (35 trang)

khái quát về kiến trúc tập lệnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (787.62 KB, 35 trang )

KIẾN TRÚC TẬP LỆNH
“Ngơn ngữ của máy tính”


Kiến trúc tập lệnh
• Tập lệnh là “giao diện” của phần cứng và
phần mềm.

07/20/2012

503013 - Tập lệnh

2


Thiết kế giao diện
• Một giao diện tốt:
– Đáp ứng nhiều hiện thực (có tính đa dụng,
hiệu quả, dễ đưa vào hệ thống mới, …)
– Có thể dùng theo nhiều cách (tính tổng quát)
– Cung cấp cho cấp cao hơn tính tiện dụng.
– Cung cấp cho cấp thấp hơn hiện thực hiệu
quả.

07/20/2012

503013 - Tập lệnh

3



Tập lệnh
• Tập hợp một cách có tổ chức các lệnh của
bộ xử lý.
• Mỗi (dịng) vi xử lý có tập lệnh khác nhau.
– Nhưng ln có chung một số quy tắc.

• Máy tính sơ khai có tập lệnh rất đơn giản.
• Máy tính hiện đại cũng có tập lệnh đơn
giản

07/20/2012

503013 - Tập lệnh

4


Tập lệnh MIPS
• Được sử dụng trong tài liệu này.
• Cơng nghệ MIPS www.mips.com
• Được sử dụng rộng rãi.
– Thiết bị điện tử, mạng, lưu trữ, camera, máy
in, …

• Chuẩn mực của nhiều máy ISA hiện đại.

07/20/2012

503013 - Tập lệnh


5


MIPS ISA
• Nhóm các lệnh:
– Đọc / Ghi.
– Tính tốn.
– Nhảy và rẻ nhánh.
– Dấu chấm động.
– Quản lý bộ nhớ.
– Các lệnh đặc biệt.

07/20/2012

503013 - Tập lệnh

6


MIPS ISA
• 3 mẫu lệnh: đều có độ dài 32 bits.

07/20/2012

503013 - Tập lệnh

7


Quan điểm thiết kế

• Tiêu chuẩn hóa.
– Câu lệnh có cùng kích thước.
– Số format lệnh ít.
– Mã thực thi ln là 6 bit đầu tiên.

• Nhỏ hơn sẽ nhanh hơn!
– Tập lệnh giới hạn.
– Số thanh ghi giới hạn.
– Số mơ hình địa chỉ giới hạn.

• Những trường hợp thường xảy ra?
– Tốn hạng được tính trực tiếp từ tập tin thanh ghi.
– Cho phép tập lệnh chứa toán tử thi hành lập tức.
07/20/2012

503013 - Tập lệnh

8


MIPS ISA
• Tần suất xuất hiện của các nhóm lệnh
MIPS (SPEC 2006).

07/20/2012

503013 - Tập lệnh

9



MIPS: Lệnh số học
• Phát biểu lệnh tốn học:
Add $t0, $s1, $s2
Sub $t0, $s1, $s2

• Mỗi câu lệnh thực hiện 1 phép tính.
• Mỗi câu lệnh có đúng 3 tốn hạng liên
quan (đang lưu trong tập tin thanh ghi).

07/20/2012

503013 - Tập lệnh

10


MIPS: Lệnh số học
• Giả sử b lưu trữ tại $s1, c tại $s2, d tại
$s3 và kết quả tại $s0.
h = (b – c) + d
Sub $t0, $s1, $s2
Add $s0, $t0, $s3

07/20/2012

503013 - Tập lệnh

11



MIPS: Tập tin thanh ghi
• Chứa 32 thanh ghi 32 bits.
– 2 cổng đọc.
– 1 cổng ghi.

• Thanh ghi:
– Nhanh hơn bộ nhớ chính.
– Dễ dàng cho bộ biên dịch sử dụng.
– Có thể lưu các biến số: mã lệnh sẽ tối ưu
hơn, do thanh ghi được đánh địa chỉ ngắn
hơn bộ nhớ chính.
07/20/2012

503013 - Tập lệnh

12


Thanh ghi >< Bộ nhớ
• Các tốn hạng trong câu lệnh số học phải
được lưu tại thanh ghi.
• Trình biên dịch liên kết các biến số với
thanh ghi.
– Nếu chương trình có q nhiều biến số?

07/20/2012

503013 - Tập lệnh


13


MIPS: Truy xuất bộ nhớ
• MIPS có 2 câu lệnh truyền dữ liệu cơ bản.
Lw $t0, 4($s3) // Đọc word từ bộ nhớ.
Sw $t0, 8($s3) //Ghi word xuống bộ nhớ.

• Câu lệnh phải chỉ rõ:
– Địa chỉ bộ nhớ (để đọc lên hay ghi xuống).
– Vị trí tập tin thanh ghi (để chứa dữ liệu).

• Địa chỉ của bộ nhớ = địa chỉ nền trong câu
lệnh + giá trị offset chưa trong thanh ghi thứ
hai.
07/20/2012

503013 - Tập lệnh

14


MIPS: Truy xuất bộ nhớ
• $s3 có gt = 8

• Lw $t0, 4($s3) //tác động gì?
• Sw $t0, 8($s3) // tác động gì?
07/20/2012

503013 - Tập lệnh


15


MIPS: Đọc / Ghi

07/20/2012

503013 - Tập lệnh

16


MIPS: Mảng
• Add $t1, $s3, $s3 // chỉ số I lưu tại $s3
• Add $t1, $t1, $t1 // thanh ghi temp $t1 = 4i.

07/20/2012

503013 - Tập lệnh

17


MIPS: Hằng số
• Hằng số giá trị nhỏ rất thường được sử
dụng.
– A ++;
– A += 5;


• Giải pháp:
– Tạo ra một số “hằng thông dụng” trong bộ
nhớ và đọc chúng.
– Tạo ra các thanh ghi “cứng” mang giá trị 0, 1,
2, 4, ..
07/20/2012

503013 - Tập lệnh

18


MIPS: Tốn hạng hằng
• Câu lệnh số học đã bao gồm hằng số.
– Tốc độ sẽ nhanh hơn, so với phải đọc giá trị
hằng từ bộ nhớ.

• addi $s3, $s3, 4
– $s3 += 4;

07/20/2012

503013 - Tập lệnh

19


MIPS

07/20/2012


503013 - Tập lệnh

20



×