Ngăn xếp là vùng nhớcó cấu trúc LIFO
(Last In – First Out)
Ngăn xếp thường dùng để phục vụcho
chương trình con
Đáy ngăn xếp là một ngăn nhớxác định
Đỉnh ngăn xếp là thông tin nằm ởvị trí
trên cùng trong ngăn xếp
Đỉnh ngăn xếp có thểbịthay đổ
91 trang |
Chia sẻ: netpro | Lượt xem: 7961 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng kiến trúc máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
khi tổng >2n-1
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.47
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ cộng số nguyên không dấu
57 = 0011 1001
+ 34 = + 0010 0010
91 0101 1011 = 64+16+8+2+1= 91 Æ đúng
209 = 1101 0001
+ 73 = 0100 1001
282 1 0001 1010 = 16 + 8 + 2 = 26 Æ sai
Æ có tràn nhớ ra ngoài (Cout = 1)
Để có kết quả đúng ta thực hiện cộng theo 16-bit:
209 = 0000 0000 1101 0001
+ 73 = + 0000 0000 0100 1001
0000 0001 0001 1010 = 256+16+8+2 = 282
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.48
Chương 3: Biểu diễn dữ liệu và số học máy tính
2. Phép đảo dấu
Ta có:
+ 37 = 0010 0101
bù một = 0101 1010
+ 1
bù hai = 1101 1011 = -37
Lấy bù hai của số âm:
- 37 = 1101 1011
bù một = 0010 0100
+ 1
bù hai = 0010 0101 = +37
Kết luận: Phép đảo dấu trong máy tính thực chất là lấy
bù 2
13
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.49
Chương 3: Biểu diễn dữ liệu và số học máy tính
3. Cộng số nguyên có dấu
Khi cộng 2 số nguyên có dấu n-bit không quan
tâm đến bit Cout và kết quả nhận được là n-bit:
Cộng 2 số khác dấu: kết quả luôn luôn đúng.
Cộng 2 số cùng dấu:
Nếu dấu kết quả cùng dấu với các số hạng thì kết quả
là đúng.
Nếu kết quả có dấu ngược lại, khi đó có tràn xảy ra
(Overflow) và kết quả là sai.
Tràn xảy ra khi tổng nằm ngoài dải biểu diễn
[-(2n-1),+(2n-1-1)]
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.50
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ cộng số nguyên có dấu không tràn
(+70) = 0100 0110
+ (+42) = 0010 1010
+112 0111 0000 = +112
(+97) = 0110 0001
+ (- 52) = 1100 1100
+45 1 0010 1101 = +45
(- 90) = 1010 0110
+ (+36) = 0010 0100
- 54 1100 1010 = -54
(- 74) = 1011 0110
+ (- 30) = 1110 0010
- 104 1 1001 1000 = -104
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.51
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ cộng số nguyên có dấu bị tràn
(+75) = 0100 1011
+ (+82) = 0101 0010
+157 1001 1101
= -128 + 16 + 8 + 4 + 1 = -99 Æ sai
(- 104) = 1001 1000
+ (- 43) = 1101 0101
- 147 1 0110 1101
= 64 + 32 + 8 + 4 + 1 = +109 Æ sai
Cả 2 ví dụ trên đều tràn vì tổng nằm ngoài dải biểu diễn
[-128, +127]
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.52
Chương 3: Biểu diễn dữ liệu và số học máy tính
4. Nguyên tắc thực hiện phép trừ
Phép trừ 2 số nguyên: X – Y = X + (-Y)
Nguyên tắc: Lấy bù hai của Y để được –Y, rồi cộng với X
14
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.53
Chương 3: Biểu diễn dữ liệu và số học máy tính
5. Nhân số nguyên không dấu
Các thanh ghi M,
Q, A: n bit
C: 1 bit
2 thừa số là n-bit
Æ tích là số 2n-bit
được chứa trong
cặp thanh ghi A, Q
Bắt đầu
Dừng
C 0; A 0
M số bị nhân
Q số nhân; BĐ = n
Q0 = 1
C, A A + M
Dịch phải C, A, Q
BĐ BĐ - 1
BĐ = 0
YN
Y
N
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.54
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ 1011 x 1101 (11 x 13 = 143)
n = 4
Số bị nhân
= 1011 Æ M
Số nhân =
1101 Æ Q
C A Q
0 0000 1101 / các giá trị khởi đầu /
1011
0 1011 1101 C, A Å A + M
0 0101 1110 Dịch phải 1 bit n = 3
0 0010 1111 Dịch phải 1 bit n = 2
1011
0 1101 1111 C, A Å A + M
0 0110 1111 Dịch phải 1 bit n = 1
1011
1 0001 1111 C, A Å A + M
0 1000 1111 Dịch phải 1 bit n = 0
+
+
+
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.55
Chương 3: Biểu diễn dữ liệu và số học máy tính
6. Nhân số nguyên có dấu
Phương pháp 1:
1. Chuyển đổi các thừa số thành số dương
2. Nhân 2 số dương như số nguyên không dấu
3. Hiệu chỉnh dấu của kết quả:
Nếu 2 thừa số cùng dấu Æ không cần hiệu chỉnh
Nếu 2 thừa số khác dấu Æ đảo dấu kết quả bằng
cách lấy bù 2.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.56
Chương 3: Biểu diễn dữ liệu và số học máy tính
Nhân số nguyên có dấu (tiếp)
Phương pháp 2:
Sử dụng thuật
toán nhân nhanh
Booth
15
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.57
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ (+7) x (-3) = (-21) theo Booth
n = 4
Số bị nhân =
0111 Æ M
-M = 1001
310 = 0011
-310 = 1101
(Số nhân)ÆQ
A Q Q-1
0000
1001
1001
1100
0111
0011
0001
1001
1010
1101
1110
0 / các giá trị khởi đầu /1101
1101
1110
1110
1111
1111
0111
0 A Å A - M = A + (-M)
1 Dịch phải, giữ dấu A, n = 3
1 A Å A + M
0 Dịch phải, giữ dấu A, n = 2
0 A Å A - M
1 Dịch phải, giữ dấu A, n = 1
1011 1 Dịch phải, giữ dấu A, n = 0
+
+
+
1
Bỏ đi
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.58
Chương 3: Biểu diễn dữ liệu và số học máy tính
7. Chia số nguyên không dấu
Khôi phục A
Thương chứa trong Q,
Phần dư chứa trong A
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.59
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ 7:3 = 2 dư 1
n = 4
Số bị chia =
0111 Æ Q
Số chia = 310
= 0011 Æ M
-M = 1101
A Q
0000
0000
1101
0000
0001
1110
0001
0011
0000
0000
0001
1110 A Å A - M
0001 0010 Khôi phục A, n = 0
/ các giá trị khởi đầu /0111
1110
1110
1100
1100
1000
1001
Dịch trái
A Å A - M = A + (-M)
Khôi phục A, n = 3
Dịch trái
A Å A - M
Khôi phục A, n = 2
Dịch trái
A Å A - M
Q0 Å 1, n = 1
Dịch trái0010
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.60
Chương 3: Biểu diễn dữ liệu và số học máy tính
8. Chia số nguyên có dấu
Sử dụng thuật giải chia số nguyên không dấu
Đổi số bị chia và số chia Æ dương
Chia như số nguyên không dấu Æ thương và
phần dư (đều là số dương)
Hiệu chỉnh dấu:
(+) : (+) Æ không hiệu chỉnh dấu kết quả
(+) : (-) Æ đảo dấu thương
(-) : (+) Æ đảo dấu thương và phần dư
(-) : (-) Æ đảo dấu phần dư
16
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.61
Chương 3: Biểu diễn dữ liệu và số học máy tính
3.5. Số dấu chấm động
1. Nguyên tắc chung
Floating Point Number Æ biểu diễn cho số thực
Tổng quát: một số thực X được biểu diễn theo
kiểu số dấu chấm động như sau:
X = M * RE
M là phần định trị (Mantissa),
R là cơ số (Radix),
E là phần mũ (Exponent).
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.62
Chương 3: Biểu diễn dữ liệu và số học máy tính
2. Chuẩn IEEE754/85
Cơ số R = 2
Các dạng:
Dạng 32-bit
Dạng 44-bit
Dạng 64-bit
Dạng 80-bit
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.63
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các dạng biểu diễn chính
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.64
Chương 3: Biểu diễn dữ liệu và số học máy tính
Dạng 32-bit
S là bit dấu:
S = 0 Æ Số dương
S = 1 Æ Số âm
e (8 bit) là mã excess-127 của phần mũ E:
e = E + 127 Æ E = e – 127
giá trị 127 được gọi là độ lệch (bias)
m (23 bit) là phần lẻ của phần định trị M:
M = 1.m
Công thức xác định giá trị của số thực:
X = (-1)S*1.m*2e-127
17
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.65
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ 1
Xác định giá trị của số thực được biểu diễn
bằng 32-bit như sau:
1100 0001 0101 0110 0000 0000 0000 0000
S = 1 Æ Số âm
e = 1000 00102 = 130 Æ E = 130 – 127 = 3
Vậy:
X = -1.10101100 * 23 = -1101.011 = -13.375
0011 1111 1000 0000 0000 0000 0000 0000 = ?
= +1.0
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.66
Chương 3: Biểu diễn dữ liệu và số học máy tính
Ví dụ 2
Biểu diễn số thực X = 83.75 về dạng số dấu
chấm động IEEE754 32-bit
Giải:
X = 83.7510 = 1010011.112 = 1.01001111 x 26
Ta có:
S = 0 vì đây là số dương
E = e-127=6 Æ e = 127+6=13310 = 1000 01012
Vậy:
X = 0100 0010 1010 0111 1000 0000 0000 0000
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.67
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các quy ước đặc biệt
Các bit của e bằng 0, các bit của m bằng 0, thì X= ± 0
x000 0000 0000 0000 0000 0000 0000 0000 Æ X= ± 0
Các bit của e bằng 1, các bit của m bằng 0, thì X= ± ∞
x111 1111 1000 0000 0000 0000 0000 0000 Æ X= ± ∞
Các bit của e bằng 1, còn m có ít nhất 1 bit bằng 1, thì
nó không biểu diễn cho số nào cả (NaN – not a number)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.68
Chương 3: Biểu diễn dữ liệu và số học máy tính
Dải giá trị biểu diễn
2-127 đến 2+127
10-38 đến 10+38
18
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.69
Chương 3: Biểu diễn dữ liệu và số học máy tính
Dạng 64-bit
S là bit dấu
e (11 bit) là mã excess-1023 của phần mũ E:
Æ E = e – 1023
m (52 bit) là phần lẻ của phần định trị M:
Giá trị của số thực:
X = (-1)S*1.m*2e-1023
Dải giá trị biểu diễn: 10-308 đến 10+308
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.70
Chương 3: Biểu diễn dữ liệu và số học máy tính
Dạng 80-bit
S là bit dấu
e (15 bit) là mã excess-16383 của phần mũ E:
Æ E = e – 16383
m (64 bit) là phần lẻ của phần định trị M:
Giá trị của số thực:
X = (-1)S*1.m*2e-16383
Dải giá trị biểu diễn: 10-4932 đến 10+4932
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.71
Chương 3: Biểu diễn dữ liệu và số học máy tính
3.6. Biểu diễn ký tự
Bộ mã ASCII (American Standard Code for
Information Interchange)
Bộ mã Unicode
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.72
Chương 3: Biểu diễn dữ liệu và số học máy tính
1. Bộ mã ASCII
Do ANSI (American National Standard
Institute) thiết kế
Bộ mã 8 bit Æ có thể mã hóa được 28 =256 ký
tự, có mã từ: 0016 ÷ FF16 , trong đó:
128 ký tự chuẩn, có mã từ 0016 ÷ 7F16
128 ký tự mở rộng, có mã từ 8016 ÷ FF16
19
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.73
Chương 3: Biểu diễn dữ liệu và số học máy tính
ASCII
Character
Code
128 ký tự
chuẩn
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.74
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ký tự chuẩn
26 chữ cái hoa ‘A’ đến ‘Z’ có mã từ 4116 đến 5A16 (65
đến 90)
‘A’ Æ 0100 0001 = 4116
‘B’ Æ 0100 0010 = 4216
...
‘Z’ Æ 0101 1010 = 5A16
26 chữ cái thường ‘a’ đến ‘z’ có mã từ 6116 đến 7A16 (97
đến 122)
‘a’ Æ 0110 0001 = 6116
‘b’ Æ 0110 0010 = 6216
...
‘z’ Æ 0111 1010 = 7A16
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.75
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ký tự chuẩn (tiếp)
10 chữ số thập phân từ 0 đến 9 có mã từ 3016
đến 3916 (48 đến 57)
‘0’ Æ 0011 0000 = 3016
‘1’ Æ 0011 0001 = 3116
‘2’ Æ 0011 0010 = 3216
...
‘9’ Æ 0011 1001 = 3916
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.76
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ký tự chuẩn (tiếp)
Các ký hiệu khác:
Các dấu câu: . , : ; ...
Các dấu phép toán: + - * / % ...
một số ký hiệu thông dụng: &, $, @, #
dấu cách (space)
20
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.77
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các mã điều khiển: có mã 0016 ÷ 1F16 và 7F16
Các mã ký tự điều khiển định dạng (điều khiển màn
hình, máy in …):
BS, HT, LF, VT, FF, CR
Các mã ký tự điều khiển truyền tin:
SOH, STX, ETX, EOT, ENQ, ACK, NAK, SYN, ETB
Các mã ký tự điều khiển phân cách thông tin:
FS, GS, RS, US
Các mã ký tự điều khiển khác:
NUL, BEL, SO, SI, DLE, DC1+DC4, CAN, EM, SUB,
ESC, DEL
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.78
Chương 3: Biểu diễn dữ liệu và số học máy tính
Các ký tự mở rộng: có mã 8016 ÷ FF16
Các ký tự mở rộng được định nghĩa bởi:
nhà chế tạo máy tính
người phát triển phần mềm
Ví dụ:
Bộ mã ký tự mở rộng của IBM Æ IBM-PC.
Bộ mã ký tự mở rộng của Apple Æ Macintosh.
Có thể thay đổi các ký tự mở rộng để mã hóa
cho các ký tự riêng của tiếng Việt, ví dụ như bộ
mã TCVN3.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.79
Chương 3: Biểu diễn dữ liệu và số học máy tính
2. Bộ mã hợp nhất Unicode
Do các hãng máy tính hàng đầu thiết kế
Bộ mã 16-bit
Bộ mã đa ngôn ngữ
Có hỗ trợ các ký tự tiếng Việt
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 3.80
Chương 3: Biểu diễn dữ liệu và số học máy tính
Unicode
Character
Code
256 ký tự
chuẩn
1Chương 4
BỘ XỬ LÝ TRUNG TÂM
(Central Processing Unit - CPU)
Phạm Quang Dũng
Bộ môn Khoa học máy tính - Khoa CNTT
Trường Đại học Nông nghiệp I – Hà Nội
website: www.hau1.edu.vn/it/pqdung
ĐT: (04) 8766318 DĐ: 0988.149.189
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.2
Chương 4: CPU
Nội dung chương 4
4.1. Cấu trúc cơ bản của CPU
4.2. Tập lệnh
4.3. Hoạt động của CPU
4.4. Cấu trúc của các bộ xử lý tiên tiến
4.5. Kiến trúc Intel
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.3
Chương 4: CPU
4.1. Cấu trúc cơ bản của CPU
1. Nhiệm vụ và cấu trúc của CPU
Nhiệm vụ của CPU
¾ Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ
nhớ
¾ Giải mã lệnh (Decode Instruction): Xác định thao
tác mà lệnh yêu cầu
¾ Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ
hoặc các cổng vào-ra
¾ Xử lý dữ liệu (Process Data): thực hiện phép toán số
học hay phép toán logic với các dữ liệu
¾ Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay
cổng vào-ra
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.4
Chương 4: CPU
Sơ đồ cấu trúc cơ bản của CPU
2Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.5
Chương 4: CPU
Các thành phần cơ bản của CPU
Đơn vị điều khiển (Control Unit – CU)
Đơn vị số học và logic (Arithmetic and
Logic Unit - ALU)
Tập thanh ghi (Register File - RF)
Đơn vị nối ghép bus (Bus Interface Unit -
BIU)
Bus bên trong (Internal Bus)
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.6
Chương 4: CPU
2. Đơn vị số học và logic
Chức năng: Thực hiện các phép toán số
học và phép toán logic:
Số học: cộng, trừ, nhân, chia, tăng,
giảm, đảo dấu
Logic: AND, OR, XOR, NOT, phép
dịch bit.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.7
Chương 4: CPU
Mô hình kết nối ALU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.8
Chương 4: CPU
3. Đơn vị điều khiển
Chức năng
Điều khiển nhận lệnh từ bộ nhớ đưa vào
thanh ghi lệnh
Tăng nội dung của PC để trỏ sang lệnh kế
tiếp
Giải mã lệnh đã được nhận để xác định thao
tác mà lệnh yêu cầu
Phát ra các tín hiệu điều khiển thực hiện
lệnh
Nhận các tín hiệu yêu cầu từ bus hệ thống
và đáp ứng với các yêu cầu đó.
3Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.9
Chương 4: CPU
Mô hình kết nối đơn vị điều khiển
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.10
Chương 4: CPU
Các tín hiệu đưa đến đơn vị điều khiển
Clock: tín hiệu nhịp từ mạch tạo dao động
bên ngoài.
Mã lệnh từ thanh ghi lệnh đưa đến để giải
mã.
Các cờ từ thanh ghi cờ cho biết trạng thái
của CPU.
Các tín hiệu yêu cầu từ bus điều khiển
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.11
Chương 4: CPU
Các tín hiệu phát ra từ đơn vị điều khiển
Các tín hiệu điều khiển bên trong CPU:
Điều khiển các thanh ghi
Điều khiển ALU
Các tín hiệu điều khiển bên ngoài CPU:
Điều khiển bộ nhớ
Điều khiển các môđun vào-ra
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.12
Chương 4: CPU
4. Tập thanh ghi
Chức năng và đặc điểm:
Tập hợp các thanh ghi nằm trong CPU
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
Được coi là mức đầu tiên của hệ thống nhớ
Tuỳ thuộc vào bộ xử lý cụ thể
Số lượng thanh ghi nhiều Æ tăng hiệu năng
của CPU
Có hai loại thanh ghi
Các thanh ghi lập trình được
Các thanh ghi không lập trình được
4Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.13
Chương 4: CPU
Phân loại thanh ghi theo chức năng
Thanh ghi địa chỉ: quản lý địa chỉ của ngăn
nhớ hay cổng vào-ra.
Thanh ghi dữ liệu: chứa tạm thời các dữ liệu
Thanh ghi đa năng: có thể chứa địa chỉ hoặc
dữ liệu.
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.
Thanh ghi lệnh: chứa lệnh đang được thực hiện
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.14
Chương 4: CPU
Một số thanh ghi điển hình
Các thanh ghi địa chỉ
Bộ đếm chương trình PC (Program Counter)
Con trỏ dữ liệu DP (Data Pointer)
Con trỏ ngăn xếp SP (Stack Pointer)
Thanh ghi cơ sở và thanh ghi chỉ số
(Base Register & Index Register)
Các thanh ghi dữ liệu
Thanh ghi trạng thái
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.15
Chương 4: CPU
Bộ đếm chương trình PC
Còn được gọi là con trỏ lệnh IP
(Instruction Pointer)
Giữ địa chỉ của lệnh tiếp theo sẽ được
nhận vào.
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.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.16
Chương 4: CPU
Minh họa bộ đếm chương trình
5Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.17
Chương 4: CPU
Thanh ghi con trỏ dữ liệu
Chứa địa chỉ của ngăn nhớ dữ liệu mà
CPU muốn truy nhập
Thường có một số thanh ghi con trỏ dữ
liệu
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.18
Chương 4: CPU
Minh họa thanh ghi con trỏ dữ liệu
DP
Dữ liệu
Dữ liệu cần đọc/ghi
Dữ liệu
Dữ liệu
Dữ liệu
Dữ liệu
Dữ liệu
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.19
Chương 4: CPU
Ngăn xếp (Stack)
Ngăn xếp là vùng nhớ có cấu trúc LIFO
(Last In – First Out)
Ngăn xếp thường dùng để phục vụ cho
chương trình con
Đáy ngăn xếp là một ngăn nhớ xác định
Đỉnh ngăn xếp là thông tin nằm ở vị trí
trên cùng trong ngăn xếp
Đỉnh ngăn xếp có thể bị thay đổi
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.20
Chương 4: CPU
Con trỏ ngăn xếp SP (Stack Pointer)
SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp
Khi cất một thông tin vào ngăn xếp:
Nội dung của SP tự động giảm
Thông tin được cất vào ngăn nhớ được trỏ bởi SP
Khi lấy một thông tin ra khỏi ngăn xếp:
Thông tin được đọc từ ngăn nhớ được trỏ bởi SP
Nội dung của SP tự động tăng
Khi ngăn xếp rỗng, SP trỏ vào đáy
6Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.21
Chương 4: CPU
Minh họa con trỏ ngăn xếp SP
SP Đỉnh Stack
Đáy Stack
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.22
Chương 4: CPU
Thanh ghi cơ sở và thanh ghi chỉ số
Thanh ghi cơ sở: chứa địa chỉ của ngăn
nhớ cơ sở (địa chỉ cơ sở)
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ố)
Địa chỉ của ngăn nhớ cần truy nhập = địa
chỉ cơ sở + chỉ số
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.23
Chương 4: CPU
Minh họa thanh ghi cơ sở và thanh ghi chỉ số
Thanh ghi cơ sở
Thanh ghi chỉ số
Ngăn nhớ cơ sở
Ngăn nhớ cần truy nhập
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.24
Chương 4: CPU
Các thanh ghi dữ liệu
Chứa các dữ liệu tạm thời hoặc các kết
quả trung gian
Cần có nhiều thanh ghi dữ liệu
Các thanh ghi số nguyên: 8, 16, 32, 64
bit
Các thanh ghi số dấu chấm động
7Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.25
Chương 4: CPU
Thanh ghi trạng thái (Status Register)
Còn gọi là thanh ghi cờ (Flag Register)
Chứa các thông tin trạng thái của CPU
Các cờ phép toán: báo hiệu trạng thái của kết quả
phép toán
Các cờ điều khiển: biểu thị trạng thái điều khiển của
CPU
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.26
Chương 4: CPU
Ví dụ cờ phép toá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.
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
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.
Cờ Overflow (cờ tràn): được thiếp 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.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.27
Chương 4: CPU
Ví dụ cờ điều khiển
Cờ Interrupt (Cờ cho phép ngắt)
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ế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
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.28
Chương 4: CPU
4.2. Tập lệnh
1. Giới thiệu chung về 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ữ
8Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.29
Chương 4: CPU
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
Toán hạng đích: dữ liệu ra của thao tác
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.30
Chương 4: CPU
2. Các kiểu thao tác
Chuyển dữ liệu
Xử lý số học với số nguyên
Xử lý logic
Điều khiển vào-ra
Chuyển điều khiển (rẽ nhánh)
Điều khiển hệ thống
Xử lý số dấu chấm động
Xử lý các dữ liệu chuyên dụng
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.31
Chương 4: CPU
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 toán hạng đích
SET Chuyển các bit 1 vào toá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
toán hạng đích
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.32
Chương 4: CPU
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ừ 2 toán hạng để lập cờ
9Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.33
Chương 4: CPU
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 2 toán hạng để lập cờ
SHIFT Dịch trái (phải) toán hạng
ROTATE Quay trái (phải) toán hạng
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.34
Chương 4: CPU
Minh hoạ các lệnh AND, OR, XOR
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ữ nguyên
một số bit còn lại của toá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 toá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.
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.35
Chương 4: CPU
Các lệnh vào ra chuyên dụng
INPUT Copy dữ liệu từ một cổng xác
định đến đích
OUTPUT Copy dữ liệu từ nguồn đến
một cổng xác định
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.36
Chương 4: CPU
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 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 trình 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
10
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.37
Chương 4: CPU
Lệnh rẽ nhánh không điều kiện
Chuyển tới thực hiện lệnh
ở vị trí có địa chỉ XXX:
PC Å XXX
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.38
Chương 4: CPU
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
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.39
Chương 4: CPU
Minh họa lệnh rẽ nhánh có điều khiện
Lệnh
Lệnh kế tiếp
Lệnh rẽ nhánh XXX
Lệnh
Lệnh
Lệnh
Lệnh
...
LệnhXXX
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.40
Chương 4: CPU
Lệnh CALL và RETURN
Lệnh gọi chương trình con: lệnh 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: lệnh 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
11
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.41
Chương 4: CPU
Minh họa lệnh CALL và RETURN
Lệnh
Lệnh kế tiếp
CALL CTcon
Lệnh
RETURN
Lệnh
...
LệnhCTcon
Lệnh đầu tiên của CTcon
...
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.42
Chương 4: CPU
Các lệnh điều khiển hệ thống
NO OPERATION Không thực hiện gì cả
HALT Dừng thực hiện chương trình
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
LOCK Cấm không cho xin chuyển nhượng bus
UNLOCK Cho phép xin chuyển nhượng bus
Phạm Quang Dũng Bài giảng Kiến trúc máy tính 4.43
Chương 4: CPU
3. Các phương pháp định địa chỉ (addressing modes)
Khái niệm về định đị
Các file đính kèm theo tài liệu này:
- Bài giảng kiến truc may tính.pdf