Tải bản đầy đủ (.pdf) (59 trang)

LHB kientrucmaytinh ch3 b2 v5

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 (1.37 MB, 59 trang )

KIẾN TRÚC MÁY TÍNH

1


KIẾN TRÚC MÁY TÍNH
Tài liệu tham khảo

1. David A. Patterson, John L. Hennessy Computer Organization and Design,
Revised 4th edition, 2012.
2. William Stallings, Computer Organization and Architecture, 9th edition, 2013.
3. Nguyễn Kim Khánh, Bài giảng kiến trúc máy tính, Viện Cơng nghệ Thông tin và
Truyền thông, Trường Đại học Bách khoa Hà Nội, Version: CA-2017.
4. Trường Đại học Công nghệ thông tin (UIT), Kiến trúc máy tính, Slide bài giảng
Kiến trúc bộ lệnh, 2017.

2


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ 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 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.
❖ Các lệnh được mô tả bằng các ký hiệu gợi nhớ → chính là các lệnh của hợp
ngữ.

3



Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Các thành phần của lệnh máy:
➢ Mã thao tác (operation code Ỉ opcode): mã hóa cho thao tác mà bộ xử lý
phải thực hiệ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.
✓ Toán hạng nguồn: dữ liệu vào của thao tác.
✓ Tốn hạng đích: dữ liệu ra của thao tác.

Mã thao tác

Địa chỉ các toán hạng

4


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Số lượng địa chỉ toán hạng trong lệnh:
➢ Ba địa chỉ toán hạng:
✓ 2 toán hạng nguồn, 1 toán hạng đích

✓ c=a+b
✓ Từ lệnh dài vì phải mã hố địa chỉ cho cả ba toán hạng.
✓ Được sử dụ.g trên các bộ xử lý tiên tiến

5


Chương 3. Tổ chức bộ xử lý trung tâm

3.2. Tập lệnh
❖ Số lượng địa chỉ toán hạng trong lệnh:
➢ Hai địa chỉ toán hạng:
✓ Một toán hạng vừa là toán hạng nguồn vừa là tốn hạng đích; tốn hạng cịn lại là
toán hạng nguồn.
✓ a = a + b.
✓ Giá trị cũ của 1 tốn hạng nguồn bị mất vì phải chứa kết quả.
✓ Rút gọn độ dài từ lệnh.
✓ Phổ biến.

6


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Số lượng địa chỉ toán hạng trong lệnh:
➢ Một địa chỉ toán hạng:
✓ 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à thanh ghi (thanh chứa – accumulator).
✓ Được sử dụng trên các máy ở các thế hệ trước

7


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Số lượng địa chỉ toán hạng trong lệnh:
➢ 0 địa chỉ toán hạng:
✓ Các toán hạng đều được ngầm định

✓ Sử dụng Stack

✓ Ví dụ:
push a
push b
add

pop c
có nghĩa là : c = a+b

✓ Không thông dụng.

8


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Đánh giá về số lượng địa chỉ toán hạng trong lệnh:
➢ Nhiều địa chỉ toán hạng:
✓ Các lệnh phức tạp hơn.
✓ Cần nhiều thanh ghi.

✓ Chương trình có ít lệnh hơn
✓ Nhận lệnh và thực hiện lệnh chậm hơn

➢ Ít địa chỉ toán hạng:
✓ Các lệnh đơn giản hơn
✓ Cần ít thanh ghi
✓ Chương trình có nhiều lệnh hơn
✓ Nhận lệnh và thực hiện lệnh nhanh hơn


9


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Các lệnh chuyển dữ liệu:
➢ MOVE

Copy dữ liệu từ nguồn đến đích

➢ LOAD

Nạp dữ liệu từ bộ nhớ đến bộ xử lý

➢ STORE

Cất dữ liệu từ bộ xử lý đến bộ nhớ

➢ EXCHANGE Trao đổi nội dung của nguồn và đích
➢ CLEAR

Chuyển các bit 0 vào tốn hạng đích

➢ SET

Chuyển các bit 1 vào tốn hạng đích

➢ PUSH


Cất nội dung toán hạng nguồn vào ngăn xếp

➢ POP

Lấy nội dung đỉnh ngăn xếp đưa đến tốn hạng đích
10


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Các lệnh số học:
➢ ADD

Cộng hai toán hạng

➢ SUBTRACT

Trừ hai toán hạng

➢ MULTIPLY

Nhân hai toán hạng

➢ DIVIDE

Chia hai toán hạng

➢ ABSOLUTE

Lấy trị tuyệt đối toán hạng


➢ NEGATE

Đổi dấu toán hạng (lấy bù 2)

➢ INCREMENT

Tăng toán hạng thêm 1

➢ DECREMENT Giảm toán hạng đi 1
➢ COMPARE

Trừ hai toán hạng để lập cờ
11


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Các lệnh logic:
➢ AND

Thực hiện phép AND hai toán hạng

➢ OR

Thực hiện phép OR hai toán hạng

➢ XOR

Thực hiện phép XOR hai toán hạng


➢ NOT

Đảo bit của toán hạng (lấy bù 1)

➢ TEST

Thực hiện phép AND hai toán hạng để lập cờ

12


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh


Các lệnh logic - Ví dụ minh họa:


Giả sử có hai thanh ghi chứa dữ liệu như sau:
(R1) = 1010 1010
(R2) = 0000 1111

R1  (R1) AND (R2) = 0000 1010



Phép toán AND dùng để xoá một số bit và giữ ngun một số bit cịn lại của tốn hạng.
R1  (R1) OR (R2) = 1010 1111




Phép toán OR dùng để thiết lập một số bit và giữ nguyên một số bit cịn lại của tốn
hạng.
R1  (R1) XOR (R2) = 1010 0101



Phép toán XOR dùng để đảo một số bit và giữ nguyên một số bit còn lại của toán hạng.

13


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Các lệnh logic (tt):
➢ SHIFT

Dịch trái (phải) toán hạng.

➢ ROTATE Quay trái (phải) toán hạng.

14


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Các lệnh logic vào ra chuyên dụng:
➢ INPUT


Copy dữ liệu từ một cổng xác định đưa đến đích.

➢ OUTPUT

Copy dữ liệu từ nguồn đến một cổng xác định.

15


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh


Các lệnh chuyển điều khiển:


JUMP (BRANCH) Lệnh nhảy không điều kiện:








Nạp vào PC một địa chỉ xác định

JUMP CONDITIONAL Lệnh nhảy có điều kiện:



điều kiện đúng → nạp vào PC một địa chỉ xác định



điều kiện sai → không làm gì cả

CALL Lệnh gọi chương trình con:


Cất nội dung của PC (địa chỉ trở về) ra một vị trí xác định (thường ở Stack).



Nạp vào PC địa chỉ của lệnh đầu tiên của chương trinh con.

RETURN Lệnh trở về từ chương trình con:


Khơi phục địa chỉ trở về trả lại cho PC để trở về chương trình chính

16


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Lệnh rẽ nhánh không điều kiện:

17



Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Lệnh rẽ nhánh có điều kiện:
➢ Trong lệnh có kèm theo điều kiện.
➢ Kiểm tra điều kiện trong lệnh:
✓ Nếu điều kiện đúng → chuyển tới thực hiện
lệnh ở vị trí có địa chỉ XXX: PC  XXX
✓ Nếu điều kiện sai → chuyển sang thực hiện
lệnh_kế_tiếp.

➢ Điều kiện thường được kiểm tra thơng
qua các cờ.
➢ Có nhiều lệnh rẽ nhánh có điều kiện.
18


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Lệnh CALL và RETURN
➢ Lệnh gọi chương trình con - CALL:
✓ Cất nội dung PC (chứa địa chỉ của lệnh_kế_tiếp) ra
Stack
✓ Nạp vào PC địa chỉ của lệnh đầu tiên của chương
trình con được gọi → Bộ xử lý được chuyển sang
thực hiện chương trình con tương ứng.

➢ Lệnh trở về từ chương trình con - RETURN:
✓ Lấy địa chỉ của lệnh_kế_tiếp được cất ở Stack nạp
trả lại cho PC → Bộ xử lý được điều khiển quay trở
về thực hiện tiếp lệnh nằm sau lệnh CALL.


19


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Các lệnh điều khiển hệ thống
➢ HALT: Dừng thực hiện chương trinh.
➢ WAIT: Tạm dừng thực hiện chương trình, lặp kiểm tra điều kiện cho đến khi
thoả mãn thì tiếp tục thực hiện.
➢ NO OPERATION: Khơng thực hiện gì cả.
➢ LOCK: Cấm không cho xin chuyển nhượng bus.

➢ UNLOCK: Cho phép xin chuyển nhượng bus.

20


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh
❖ Các kiến trúc tập lệnh CISC và RISC
➢ CISC: Complex Instruction Set Computer.
✓ Máy tính với tập lệnh phức tạp.

✓ Các bộ xử lý: Intel x86, Motorola 680x0

➢ RISC: Reduced Instruction Set Computer.
✓ 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.

21


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh: Kiến trúc MIPS
❖ MIPS: Microprocessor without Interlocked Pipeline Stages.
❖ Được phát triển bởi John Hennessy và các đồng nghiệp ở đại học Stanford
(1984).
❖ Được thương mại hóa bởi MIPS Technologies. Năm 2013 công ty này được
bán cho Imagination Technologies (imgtec.com).
❖ Là kiến trúc RISC điển hình, dễ học, được sử dụng trong nhiều sản phẩm thực
tế.
❖ Các phần tiếp theo trong chương này sẽ nghiên cứu kiến trúc tập lệnh MIPS
32-bit.
22


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh: Kiến trúc MIPS
❖ Tập thanh ghi của MIPS:
➢ MIPS có tập 32 thanh ghi 32-bit
✓ Được sử dụng thường xuyên
✓ Được đánh số từ 0 đến 31 (mã hóa bằng 5-bit)

➢ Cách đặt tên của chương trình dịch Assembler:
✓ Bắt đầu bằng dấu $
✓ $t0, $t1, …, $t9: chứa các giá trị tạm thời


✓ $s0, $s1, …, $s7: chứa các biến

➢ Qui ước gọi dữ liệu trong MIPS:
✓ Dữ liệu 32-bit được gọi là “word”.

✓ Dữ liệu 16-bit được gọi là “halfword”.

23


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh: Kiến trúc MIPS
❖ Tập thanh ghi của MIPS:
Tên
thanh ghi

Số hệu

$zero

0

the constant value
0,

$at

1


$v0-$v1

2-3

Tên thanh
ghi

Số hệu

chứa hằng số = 0

$t8-$t9

24-25

more temporarie,

assembler
temporary,

giá trị tạm thời cho
hợp ngữ

$k0-$k1

26-27

OS temporaries,

procedure return

values,

các giá trị trả về của
thủ tục

$gp

28

global pointer,

con trỏ toàn cục

các tham số vào của
thủ tục
chứa các giá trị tạm
thời

$sp

29

stack pointer,

con trỏ ngăn xếp

$fp

30


frame pointer,

con trỏ khung

$ra

31

procedure return
address,

địa chỉ trở về của thủ
tục

Công dụng

$a0-$a3

4-7

procedure
arguments,

$t0-$t7

8-15

temporaries,

$s0-$s7


16-23

saved variables,

lưu các biến

Công dụng
chứa các giá trị tạm
thời
các giá trị tạm thời của
OS

24


Chương 3. Tổ chức bộ xử lý trung tâm
3.2. Tập lệnh: Kiến trúc MIPS
❖ Toán hạng thanh ghi:

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×