You are on page 1of 30

Machine Translated by Google

Bài 5

CẤU TRÚC BỘ XỬ LÝ VÀ

THỰC HIỆN CHƯƠNG TRÌNH

nguyễn hồng sơn

1
Machine Translated by Google

HOẠT ĐỘNG CỦA CPU

Các tác vụ của CPU

Tìm nạp hướng dẫn

Diễn giải hướng dẫn

Tìm nạp dữ liệu

Xử lý dữ liệu

Ghi dữ liệu

2
Machine Translated by Google

CPU với Bus hệ thống

3
Machine Translated by Google

Cấu trúc bên trong CPU

4
Machine Translated by Google

đăng ký
CPU cần những vùng nhớ tạm thời để hoạt động, gọi là
các thanh ghi.

Số lượng và chức năng khác nhau tùy theo bộ xử lý


thiết kế.

Một trong những quyết định thiết kế quan trọng

nhất. Mức cao nhất trong phân cấp bộ nhớ.

5
Machine Translated by Google

Đăng ký người dùng có thể nhìn thấy

Thanh ghi user-see là thanh ghi có thể tham chiếu


thông qua ngôn ngữ máy, bao gồm: Mục đích
chung: chứa các toán hạng của lệnh Dữ liệu:
chỉ chứa dữ liệu, không dùng để tính toán các
Địa chỉ.

Địa chỉ: dùng cho các chế độ đánh địa chỉ như
con trỏ đoạn, thanh ghi chỉ mục, con trỏ ngăn xếp
Mã điều kiện: chứa mã điều kiện (còn được gọi là cờ)

6
Machine Translated by Google

Thanh ghi điều khiển & trạng thái

Có một số thanh ghi được sử dụng


để điều khiển hoạt động của

CPU Bộ đếm chương trình

Thanh ghi giải mã lệnh

Thanh ghi địa chỉ bộ nhớ

Thanh ghi bộ nhớ đệm

Tất cả các thiết kế đều có một thanh ghi hoặc tập hợp các

thanh ghi được gọi là PSW (Program Status Word)

7
Machine Translated by Google

PSW
PSW chứa mã điều kiện cùng với các thông tin trạng thái
khác. Các trường hoặc cờ phổ biến bao gồm: Dấu hiệu

Không

Mang

theo

Bằng nhau Tràn

Bật/tắt ngắt Người giám

sát: Chỉ định chế độ là người dùng hoặc người giám sát (kernel)

số 8
Machine Translated by Google

Chế độ giám sát (Chế độ hạt nhân)

Chỉ thị đặc quyền chỉ có thể được thực thi trong chế

độ giám sát viên. Bộ nhớ đặc biệt chỉ có thể được

truy cập trong chế độ giám sát viên Được sử dụng bởi

hệ điều hành Không có sẵn cho các chương trình

người dùng.

9
Machine Translated by Google

Ví dụ về thanh ghi

10
Machine Translated by Google

Tổng quan thực hiện chương trình

Một chương trình được thực thi bao gồm một tập hợp các
lệnh được lưu trữ trong bộ nhớ chính. CPU chịu trách

nhiệm tải và thực hiện từng lệnh được chỉ định trong chương
trình.

Như vậy, quá trình chạy một lệnh bao gồm hai
các
bước: CPU đọc các lệnh từ bộ nhớ
CPU thực hiện các lệnh, có thể bao gồm một số
hoạt động

11
Machine Translated by Google

chu kỳ hướng dẫn

Việc thực hiện chương trình bao gồm việc lặp


lại quá trình tìm nạp lệnh và thực hiện lệnh
chu kỳ lệnh Chu kỳ lệnh: Thời gian cần
thiết để chạy hoàn chỉnh một lệnh. Chu trình
con: Chu trình tìm nạp Chu trình thực thi

12
Machine Translated by Google

Chu kỳ hướng dẫn cơ bản


bắt đầu

Tìm
Chu kỳ tìm nạp
nạp lệnh tiếp theo

thực hiện hướng dẫn thực hiện chu kỳ

Kết thúc

13
Machine Translated by Google

Quá trình thực hiện các lệnh của


một chương trình

Ở đầu mỗi chu kỳ lệnh, bộ xử lý lấy một lệnh từ bộ nhớ

PC (bộ đếm chương trình): giữ địa chỉ của lệnh được
tìm nạp tiếp theo

Theo mặc định, tăng địa chỉ trong PC lên một lần sau
mỗi hướng dẫn tìm nạp

Lệnh được nạp vào IR (thanh ghi lệnh)

14
Machine Translated by Google

Quá trình thực hiện các lệnh của


một chương trình…

Lệnh chứa các bit xác định hành động mà


bộ xử lý là để thực hiện.

Bộ xử lý diễn giải lệnh và thực hiện hành động được


yêu cầu. Nói chung, những hành động này thuộc bốn
loại:
CPU-Bộ nhớ
CPU-I/O Xử lý

dữ liệu Điều
khiển

15
Machine Translated by Google

Quá trình thực hiện các lệnh của


một chương trình…

Việc thực hiện một lệnh có thể liên quan đến sự kết hợp của các
hành động này.

Một chu kỳ thực thi có thể có nhiều tham chiếu bộ nhớ. Một

chu kỳ thực thi có thể có nhiều tham chiếu I/O Một chu kỳ thực

thi có thể có cả I/O và bộ nhớ


người giới thiệu

16
Machine Translated by Google

Các trạng thái của một lệnh

(1)Tính toán địa chỉ lệnh (iac): Xác định địa chỉ của lệnh tiếp theo sẽ được
thực hiện.

(2)Tìm nạp lệnh (nếu): Đọc lệnh từ vị trí bộ nhớ của nó vào
bộ vi xử lý.

(3)Giải mã thao tác lệnh (iod): Phân tích lệnh để xác định loại thao tác sẽ được
thực hiện và (các) toán hạng sẽ được sử dụng. (4)Tính toán địa chỉ toán hạng
(oac): Nếu thao tác liên quan đến tham chiếu đến một toán hạng trong bộ nhớ hoặc
khả dụng qua I/O, thì hãy xác định địa chỉ của toán hạng.

(5)Tìm nạp toán hạng (của): Lấy toán hạng từ bộ nhớ hoặc đọc nó từ I/O.
(6)Thao tác dữ liệu (do): Thực hiện thao tác được chỉ ra trong lệnh.
(7)Operand store (os): Ghi kết quả vào bộ nhớ hoặc ra I/O.

17
Machine Translated by Google

Sơ đồ trạng thái chu trình hướng dẫn

truy cập CPU


2 5 7
MM hoặc I/O

Nhiều Nhiều kết


toán hạng quả

Hoạt động
3 4 6 4
bên trong CPU
1
hướng Vector
dẫn tiếp theo
hoặc chuỗi

18
Machine Translated by Google

Trả về dữ liệu chuỗi hoặc vectơ

Một lệnh có thể chỉ định một toán tử để thực hiện trên
một vectơ (mảng một chiều) hoặc dãy ký tự.
Điều này liên quan đến việc truy xuất hoặc lưu trữ dữ liệu lặp đi lặp lại.

19
Machine Translated by Google

Ví dụ: một cỗ máy giả thuyết


Từ nhớ: kích thước 16 bit
Lệnh: mã lệnh 4 bit và địa chỉ 12 bit (chế độ địa chỉ trực tiếp)
Dữ liệu: 1 bit (dấu) và 15 bit (độ lớn) Thanh ghi: PC (Bộ

đếm chương trình) IR (Thanh ghi lệnh) AC (Bộ tích lũy)

4 trong số 16
opcodes: 0001: Truyền nội dung của vị trí bộ nhớ X
tới AC 0010: Truyền nội dung của AC tới vị trí bộ nhớ
X 0101: Thêm M(X) vào AC; đặt kết quả trong AC.
0110: Nhân M(X) với AC; đặt kết quả trong AC.

20
Machine Translated by Google

Ví dụ 1: lập trình
Cho phép thêm nội dung của từ bộ nhớ tại địa chỉ 940 vào nội dung của
từ bộ nhớ tại địa chỉ 941 và lưu kết quả ở vị trí sau.

Chương trình được lưu tại địa chỉ 0x300

Chương trình
Tìm nạp chứa 0x940 đến AC

Thêm chứa 0x941 vào chứa AC

Chuyển chứa AC sang 0x941

Như vậy, có 3 lệnh với 3 chu kỳ tìm nạp và 3 chu kỳ thực hiện.

21
Machine Translated by Google

Chu kỳ hướng dẫn 1

Thanh ghi bộ nhớ chính


300 1940 300 máy tính
300 1940 300 máy tính

301 5941 AC 301 5941 0003 AC

302 2941 1940 hồng ngoại


302 2941 1940 hồng ngoại

940 940
0003 0003
941 941
0002 0002

Tìm nạp chu kỳ của hướng dẫn 1 Thực hiện chu kỳ lệnh 1
22
Machine Translated by Google

Chu kỳ hướng dẫn 2

300 1940 301 máy tính


300 1940 301 máy tính

301 5941 0003 AC 301 5941 0005 AC

302 2941 5941 hồng ngoại


302 2941 5941 hồng ngoại

940 940 3h + 2h=5h


0003 0003
941 941
0002 0002

Tìm nạp chu kỳ của hướng dẫn 2 Thực hiện chu kỳ lệnh 2
23
Machine Translated by Google

Chu kỳ hướng dẫn 3

300 1940 302 máy tính 300 1940 302 máy tính

301 5941 0005 AC 301 5941 0005 AC

302 2941 2941 hồng ngoại


302 2941 2941 hồng ngoại

940 940
0003 0003
941 941
0002 0005

Tìm nạp chu kỳ của lệnh 3 Thực hiện chu kỳ lệnh 3


24
Machine Translated by Google

ví dụ 2

Hiển thị các chu kỳ lệnh thực hiện phép tính:

(3+2)*5 (5 chứa ở 0x942), lưu kết quả ở 0x942

Các bước......

25
Machine Translated by Google

300 1940 300 máy tính

300 1940 300 máy tính

301 5941 0003 AC

301 5941 AC

302 6942 1940 hồng ngoại

302 6942 1940 hồng ngoại

303 2942
303 2942

940
940
0003
0003 941
941
0002
0002 942
0005
942
0005

26
Machine Translated by Google

300 1940 302 máy tính

300 1940 302 máy tính

301 5941 0019 AC

301 5941 0005 AC

302 6942 6942 hồng ngoại

302 6942 6942 hồng ngoại

303 2942
303 2942
0005h * 0005h=0019h

940
940 0003
0003 941
941
0002
0002 942
0005
942
0005

27
Machine Translated by Google

300 1940 303 máy tính

300 1940 303 máy tính

301 5941 0019 AC

301 5941 0005 AC

302 6942 2942 hồng ngoại

302 6942 2942 hồng ngoại

303 2942
303 2942

940
940 0003
0003 941
941
0002
0002 942
0019
942
0005

28
Machine Translated by Google

bài tập về nhà

1. Viết chương trình tính (2+3)*(3+4) trên máy giả định như ví dụ
2, với số 4 lưu ở 0x942, lưu kết quả ở 0x942 và đưa ra tất cả các
chu kỳ lệnh?
2. Viết chương trình thực hiện phép tính sau trên máy tính IAS (John Von
Neumann) (4+2)*5, lưu kết quả ở 0x202 Hiển thị tất cả các chu trình lệnh

thực hiện phép tính trên?

Với dữ liệu (4,2 và 5) được lưu trữ trong bộ nhớ chính từ vị trí 0x200 và
chương trình được tải vào bộ nhớ chính bắt đầu từ vị trí 0x100.

29
Machine Translated by Google

Kết thúc

30

You might also like