Bài 5
CẤU TRÚC BỘ XỬ LÝ VÀ THỰC THI CHƯƠNG TRÌNH
Nguyễn Hồng Sơn
Công việc của CPU
(cid:1) CPU phải
(cid:1) Fetch instructions (cid:1) Interpret instructions (cid:1) Fetch data (cid:1) Process data (cid:1) Write data
1
CPU với system bus
Cấu trúc bên trong của CPU
2
Tổ chức các thanh ghi
(cid:1) CPU cần có các vùng nhớ tạm để làm việc,
gọi là các thanh ghi (registers)
(cid:1) Số lượng và chức năng thay đổi tùy vào
thiết kế của bộ xử lý.
(cid:1) Là một trong các quyết định thiết kế quan
trọng.
(cid:1) Mức cao nhất trong phân cấp bộ nhớ.
User-visible register
User-visible register là thanh ghi có thể được tham
chiếu qua ngôn ngữ máy, bao gồm các loại: (cid:1) General Purpose: đa chức năng, chứa operand của
chỉ thị
(cid:1) Data: chỉ chứa data, không được dùng để tính toán
địa chỉ.
(cid:1) Address: dùng cho chế độ địa chỉ như segment
pointer, index register, stack pointer
(cid:1) Condition Codes: chứa các mã điều kiện (còn gọi là
các flag)
3
Control & status register
(cid:1) Có một số thanh ghi được dùng để điều khiển
hoạt động của CPU (cid:1) Program Counter (cid:1) Instruction Decoding Register (cid:1) Memory Address Register (cid:1) Memory Buffer Register
(cid:1) Tất cả các thiết kế đều có một hay tập thanh
ghi gọi là PSW (Program Status Word)
PSW
(cid:1) PSW chứa các mã điều kiện cùng với các thông tin trạng thái khác. Các field hay flag phổ biến gồm: (cid:1) Sign (cid:1) Zero (cid:1) Carry (cid:1) Equal (cid:1) Overflow (cid:1) Interrupt enable/disable (cid:1) Supervisor: chỉ mode là user hay supervisor
4
Supervisor mode
(cid:1) Các chỉ thị đặc quyền chỉ có thể thực thi
trong supervisor mode.
(cid:1) Vùng nhớ đặc biệt chỉ có thể truy xuất trong
supervisor mode
(cid:1) Được dùng bởi hệ điều hành (cid:1) Không khả dụng đối với các chương trình
của user.
Ví dụ tổ chức thanh ghi
5
Tổng Quan Thực thi chương trình
(cid:1) Một chương trình ñược thực thi gồm một
tập chỉ thị được lưu giữ trong bộ nhớ.
(cid:1) CPU coù nhiệm vụ thực thi từng chỉ thị được
chỉ ñịnh trong chương trình
(cid:1) Quùa trình xử lyù chỉ thị gồm coù hai bước:
(cid:1) CPU đñọc chỉ thị từ bộ nhớ (cid:1) CPU thực thi chỉ thị, coù thể gồm một số hoạt
ñộng
Thực thi chương trình …
(cid:1) Chu kỳ chỉ thị (instruction cycle): Quá trình
xử lý cho một chỉ thị.
(cid:1) Chu kỳ lấy chỉ thị (cid:1) Chu kỳ thực thi
6
Chu kỳ chỉ thị cơ bản
Chu kỳ lấy chỉ thị
bắt đầu
Chu kỳ thực thi
lấy chỉ thị kế
thực thi chỉ thị
Treo máy
Chu kỳ lấy chỉ thị và thực thi
(cid:1) Bắt ñầu mỗi chu kỳ chỉ thị, CPU nạp chỉ thị từ bộ
nhớ
(cid:1) PC (program counter): laø thanh ghi hướng dẫn
chọn chỉ thị kế tiếp
(cid:1) Mặc ñịnh sau mỗi lần nạp, PC sẽ tăng một ñơn vị (chỉ tới chỉ thị kế tiếp theo tuần tự trong chương trình)
(cid:1) Chị thị được nạp vaøo thanh ghi IR (instruction
register)
7
Chu kỳ lấy chỉ thị và thực thi…
(cid:1) Chỉ thị tồn tại ở dạng mã nhị phân, chỉ cho CPU
biết noù phải laøm công việc gì.
(cid:1) CPU sẽ phiên dịch (giải mã lệnh) ñể nhận biết
công việc phải laøm.
(cid:1) Caùc công việc thường rơi vaøo một trong bốn
nhoùm: (cid:1) CPU-Memory (cid:1) CPU-I/O (cid:1) Xử lyù data (cid:1) Điều khiển: ví dụ thay ñổi tuần tự
Chu kỳ lấy chỉ thị và thực thi…
(cid:1) Việc thực thi một chỉ thị cụ thể liên quan
đeán nhiều công việc.
(cid:1) Một chu kỳ thực thi coù thể coù nhiều tham
chiếu đến bộ nhớ.
(cid:1) Một chu kỳ thực thi coù thể coù nhiều tham
chiếu đến I/O
(cid:1) Một chu kỳ thực thi coù thể coù nhiều tham
chiếu đến bộ nhớ vaø cả I/O
8
Các trạng thái trong một chu kỳ chỉ thị
(cid:1) (1)Tính toaùn ñịa chỉ của chỉ thị: xaùc ñịnh ñịa chỉ của chỉ thị kế tiếp,
(cid:1) (2)Lấy lệnh (cid:1) (3)Giải mã chỉ thị: phân tích ñể xaùc ñịnh công việc phải laøm vaø toaùn
thường laø cộng một hằng số vaøo ñịa chỉ của chỉ thị trước.
(cid:1) (4)Tính toaùn ñòa chỉ toaùn hạng: nếu công việc cần lấy thông số
hạng ñược duøng.
(cid:1) (5)Lấy toaùn hạng (cid:1) (6)Xử lý trên dữ liệu theo công việc ñược chỉ ñịnh. (cid:1) (7)Lưu toaùn hạng (data)
CPU truy xuất
(data) từ bộ nhớ hay I/O.
MM hay I/O
nhiều toán hạng
nhiều kết quả
Hoạt đñộng
7 2 5
beân trong CPU
chỉ thị kế
Vetor hay string
4 3 6 4 1
9
Các trạng thái…
(cid:1) Trên một số maùy tính, một chỉ thị cuï thể chỉ ñịnh một toaùn tử thực hiện trên một vector (mảng một chiều) hay chuỗi của caùc kyù tự. Điều naøy liên quan ñến lặp ñi lặp lại việc lấy dữ liệu hay lưu trữ dữ liệu.
Ví dụ máy giả thuyết
(cid:1) Từ nhớ 16 bit
(cid:1) Instruction: 4 bit mã vaø 12 bit ñịa chỉ (cid:1) Data: 1 bit dấu vaø 15 bit ñịnh lượng
(cid:1) Gồm coù caùc thanh ghi:
(cid:1) PC (cid:1) IR (cid:1) AC(accumulator): thanh ghi tạm
(cid:1) 4 trong số 16 mã lệnh cuï thể
(cid:1) 0001: nạp nội dung từ bộ nhớ vaøo AC (cid:1) 0010: ghi nội dung AC vaøo bộ nhớ (cid:1) 0101: cộng nội dung từ bộ nhớ với nội dung của AC. (cid:1) 0110: nhân nội dung từ bộ nhớ với nội dung của AC.
10
Ví dụ…
(cid:1) Chỉ thị được cất giữ từ vị trí 0x300 trong bộ nhớ. (cid:1) Trình baøy hoạt ñộng cộng nội dung tại ñịa chỉ 0x940 với
nội dung của 0x941, lưu kết quả tại 0x941.
(cid:1) Chương trình
(cid:1) Nạp nội dung từ 0x940 vaøo AC (cid:1) Cộng nội dung của 0x941 với AC (cid:1) Ghi nội dung của AC vaøo 0x941
(cid:1) Như vậy coù 3 chu kỳ nạp vaø 3 chu kỳ thực thi.
Bộ nhớ
Các thanh ghi
300
300
PC
PC
AC
AC
301
301
300 1940 1940 300
IR
IR
302
302
5941 5941 0003
940
940
1940 2941 2941 1940
941
941
0003 0003
0002 0002
11
300
300
PC
PC
AC
AC
301
301
1940 301 1940 301
IR
IR
302
302
5941 0003 5941 0005
2941 5941 2941 5941
940
940
941
941
3h + 2h=5h 0003 0003
300
300
PC
PC
0002 0002
AC
AC
301
301
1940 302 302 1940
IR
IR
302
302
5941 0005 0005 5941
940
940
2941 2941 2941 2941
941
941
0003 0003
0002 0005
12
Ví dụ 2
(cid:1) Trình bày các chu kỳ thực hiện phép tính
(3+2)*5 (5 tai 942), ghi kết quả tại 0x942
(cid:2) Tất cả sinh viên tự làm bài.
300
PC
300
PC
AC
301
AC
301
IR
302
IR
302
303
303
940
1940 1940 300 300 0003 5941 5941 1940 1940 6942 2942 6942 2942
940
941
941
942
0005
942
0005
0003 0003 0002 0002
13
Bài tập về nhà
(cid:1) Trình baøy tất cả caùc chu kỳ chỉ thị khi tính (2+3)*(3+4)
trên máy giả thuyết, cho 0004 chứa tại 0x942, ghi kết quả tại 0x942.
(cid:1) Vieát tuaàn töï chæ thị thöïc hieän pheùp tính sau trên maùy IAS
(maùy tính Von Neumann)
(4+2)*5, ghi kết quả tại vị trí 202h
Hãy trình baøy taát caû caùc chu kyø chỉ thị khi thöïc hieän pheùp tính trên. Cho mã chöơng trình ñöơïc naïp vaøo boä nhớ baét ñaàu taïi vị trí 100h vaø dữ lieäu ñược caát giữ baét ñaàu töø vị trí 200h.
14

