lOMoARcPSD| 59994889
Bài 04: Cu trúc và hoạt động ca
B x
Phạm Tuấn Sơn
ptson@fit.hcmus.edu.vn
lOMoARcPSD| 59994889
2
lOMoARcPSD| 59994889
3
Th
c thi ch
ươ
ng trình
lOMoARcPSD| 59994889
4
lOMoARcPSD| 59994889
5
L
nh máy
L
nh máy (machine instruction/ instruction/ machine
code) là dãy bit ch
a yêu c
u mà b
x
lý ph
i th
c hi
n
C
u trúc c
a m
t l
nh máy th
ườ
ng g
m:
Mã thao tác (opcode): cho bi
ế
t l
nh th
c hi
n thao tác gì (+. ,
and, or, …)
Các toán h
ng (operand): cho bi
ế
t các
đố
i t
ượ
ng b
tác
độ
ng b
i
thao tác trong mã thao tác (thanh ghi, vùng nh
, h
ng s
, …)
M
i b
x
lý ch
hi
u
đư
c m
t s
l
nh v
i m
t vài c
u
trúc nh
t
đị
nh
lOMoARcPSD| 59994889
6
Th
c thi ch
ươ
ng trình…
…c
th
h
ơ
n
lOMoARcPSD| 59994889
7
Ho
t
độ
ng c
a CPU
X
lý l
nh máy qua 2 b
ướ
c, g
i là chu k
l
nh
(
instruction cycle
)
N
p l
nh (Fetch)
Di chuy
n l
nh t
b
nh
vào thanh ghi
Th
c thi l
nh
Gi
i mã l
nh và th
c hi
n thao tác yêu c
u
lOMoARcPSD| 59994889
8
Quá trình n
p l
nh
Thanh ghi MAR (Memory Address
Register)
L
ư
u
đị
a ch
đư
c g
i ra/ nh
n vào
t
bus
đị
a ch
.
Thanh ghi MBR (Memory Buffer
Register)
L
ư
u giá tr
đư
c g
i ra/ nh
n vào
t
bus d
li
u.
Thanh ghi PC (Program Counter)
L
ư
u
đị
a ch
c
a l
nh s
đư
c n
p.
Thanh ghi IR (Instruction Register)
L
ư
u l
nh s
đư
c x
lý.
B
x
lý di chuy
n l
nh t
vùng
nh
đị
a ch
trong thanh ghi PC
vào thanh ghi IR.
M
c
đị
nh, giá tr
thanh ghi PC
đư
c t
ă
ng 1 l
ượ
ng b
ng chi
u dài
c
a l
nh
đư
c n
p.
MAR
PC
(
)
MBR
Memory
IR
(
MBR
)
PC
(
PC) +
1
lOMoARcPSD| 59994889
9
Quá trình th
c thi l
nh
B
x
lý gi
i mã l
nh trong thanh ghi IR và th
c
hi
n thao tác yêu c
u nh
ư
:
Th
c hi
n các phép tính s
h
c và lu
n lý
Th
c hi
n di chuy
n d
li
u gi
a thanh ghi và b
nh
Th
c hi
n di chuy
n d
li
u gi
a thanh ghi và thi
ế
t b
nh
p xu
t
Th
c hi
n các thao tác
đ
i
u khi
n nh
ư
r
nhánh
lOMoARcPSD| 59994889
10
Ví d
quá trình x
lý l
nh c
a CPU
thao tác
Đị
ch
a
bit
4
12
bit
C
u trúc l
nh
Mã thao tác
0001 =
N
p d
li
u t
đị
a ch
vào thanh ghi AC
0010 =
L
ư
u d
li
u t
thanh ghi AC
vào b
nh
t
i “
đị
a ch
0101 =
C
ng d
n giá tr
t
i “
đị
a ch
vào thanh ghi AC
Các thanh ghi
PC, IR, AC
:
N
p
l
nh
Th
c
thi l
nh
lOMoARcPSD| 59994889
11
Chu k
l
nh t
ng quát
1
. Tính
đị
a ch
c
a l
nh
2
. N
p l
nh
3
. Gi
i mã l
nh
4
. Tính
đị
a ch
c
a toán h
ng
5
. N
p toán h
ng
6
. Th
c thi l
nh
7
. Tính
đị
a ch
c
a
toán h
ng
ch
a k
ế
t qu
8
. Ghi k
ế
t qu
lOMoARcPSD| 59994889
12
Ng
t
Ng
t (Interrupt) là c
ơ
ch
ế
cho phép ng
t quá trình th
c
thi tu
n t
thông th
ườ
ng t
ng l
nh c
a b
x
để
ph
c
v
công vi
c khác nh
ư
nh
p xu
t.
M
t s
lo
i ng
t
Ng
t ch
ươ
ng trình
Debug ch
ươ
ng trình
Tr
ườ
ng h
p tràn s
, chia cho 0,…
Ng
t
đồ
ng h
Đư
c phát sinh b
i b
đị
nh gi
bên trong b
x
Đư
c s
d
ng trong các môi tr
ườ
ng
đ
a nhi
m
Nh
p xu
t
Ví d
:
nh
p ký t
,…
L
i ph
n c
ng
Ví d
:
l
i truy
n d
li
u,..
lOMoARcPSD| 59994889
13
Quá trình ph
c v
ng
t
B
x
lý ki
m tra ng
t m
i khi th
c thi xong 1 l
nh d
a vào tín hi
u ng
t
N
ế
u không có ng
t, n
p l
nh k
ế
ti
ế
p có
đị
a ch
trong PC.
N
ế
u có ng
t:
T
m ng
ng th
c thi ti
ế
p các l
nh c
a ch
ươ
ng trình
đ
ang
đư
c th
c hi
n.
L
ư
u l
i các d
li
u
đ
ang th
c hi
n dang d
c
a ch
ươ
ng trình.
Đặ
t
đị
a ch
b
t
đầ
u th
t
c x
lý ng
t vào thanh ghi PC.
X
lý ng
t
Khôi ph
c các d
li
u
đ
ang th
c hi
n dang d
c
a ch
ươ
ng trình b
ng
t và ti
ế
p
t
c th
c hi
n ch
ươ
ng trình này
lOMoARcPSD| 59994889
14
Tham kh
o
Ch
ươ
ng 12, William Stallings

Preview text:

lOMoAR cPSD| 59994889
Bài 04: Cấu trúc và hoạt động của Bộ xử lý Phạm Tuấn Sơn ptson@fit.hcmus.edu.vn lOMoAR cPSD| 59994889 2 lOMoAR cPSD| 59994889 Thự ươ c thi ch ng trình 3 lOMoAR cPSD| 59994889 4 lOMoAR cPSD| 59994889 Lệ nh máy • ệ
L nh máy (machine instruction/ instruction/ machine code) là dãy bit chứ ầ ộ ử ả ự ệ
a yêu c u mà b x lý ph i th c hi n • ấ ủ ộ ệ ườ ồ
C u trúc c a m t l nh máy th ng g m: – ế ệ ự ệ
Mã thao tác (opcode): cho bi t l nh th c hi n thao tác gì (+. –, and, or, …) – ạ ế đố ượ ị độ ở
Các toán h ng (operand): cho bi t các i t ng b tác ng b i
thao tác trong mã thao tác (thanh ghi, vùng nhớ ằ ố , h ng s , …) • ỗ ộ ử ỉ ể đượ ộ ố ệ ớ ộ ấ M i b x lý ch hi u c m t s l nh v i m t vài c u trúc nhấ đị t nh 5 lOMoAR cPSD| 59994889 Thự ươ c thi ch ng trình… …cụ ể ơ th h n 6 lOMoAR cPSD| 59994889 Hoạ độ ủ t ng c a CPU • ử ệ ướ ọ ỳ ệ X lý l nh máy qua 2 b c, g i là chu k l nh ( instruction cycle ) – ạ ệ N p l nh (Fetch) • ể ệ ừ ộ ớ
Di chuy n l nh t b nh vào thanh ghi – ự ệ Th c thi l nh • ả ệ ự ệ ầ
Gi i mã l nh và th c hi n thao tác yêu c u 7 lOMoAR cPSD| 59994889 Quá trình nạ ệ p l nh 
• Thanh ghi MAR (Memory Address • MAR PC ( ) Register) •  MBR Memory – ư đị ỉ ử ậ
L u a ch đượ c g i ra/ nh n vào từ đị ỉ bus a ch . •  IR ( MBR )
• Thanh ghi MBR (Memory Buffer •  PC ( PC) + 1 Register)
– L ư u giá tr ị đượ c g ử i ra/ nh ậ n vào từ ữ ệ bus d li u.
• Thanh ghi PC (Program Counter)
– L ư u đị a ch ỉ c ủ a l ệ nh s ẽ đượ c n ạ p.
• Thanh ghi IR (Instruction Register)
– L ư u l ệ nh s ẽ đượ c x ử lý. • ộ ử ể ệ ừ
B x lý di chuy n l nh t vùng nhớ đị ỉ có a ch trong thanh ghi PC vào thanh ghi IR. • ặ đị ị M c nh, giá tr thanh ghi PC đượ c tă ượ ằ ề ng 1 l ng b ng chi u dài ủ ệ đượ ạ c a l nh c n p. 8 lOMoAR cPSD| 59994889 Quá trình thự ệ c thi l nh • ộ ử ả ệ ự
B x lý gi i mã l nh trong thanh ghi IR và th c hiệ ầ ư n thao tác yêu c u nh : – ự ệ ố ọ ậ Th
c hi n các phép tính s h c và lu n lý – ự ệ ể ữ ệ ữ ộ ớ Th
c hi n di chuy n d li u gi a thanh ghi và b nh – ự ệ ể ữ ệ ữ ế ị Th
c hi n di chuy n d li u gi a thanh ghi và thi t b nhậ ấ p xu t – ự ệ đ ề ể ư ẽ Th
c hi n các thao tác i u khi n nh r nhánh 9 lOMoAR cPSD| 59994889 Ví dụ ử ệ ủ
quá trình x lý l nh c a CPU Nạ ệ ự ệ p l nh Th c thi l nh Cấ ệ u trúc l nh 4 bit 12 bit Mã Đị ỉ thao tác a ch Các thanh ghi : PC, I R, AC Mã thao tác 0001 = ạ ữ ệ ừ đị ỉ N p d li u t “ a ch ” vào thanh ghi AC 0010 = ư ữ ệ ừ L u d li u t thanh ghi AC vào bộ ớ ạ đị ỉ nh t i “ a ch ” 0101 = ộ ồ ị ạ đị ỉ
C ng d n giá tr t i “ a ch ” vào thanh ghi AC 10 lOMoAR cPSD| 59994889 Chu kỳ ệ ổ l nh t ng quát 1 đị ỉ . Tính a ch củ ệ a l nh 2 ạ ệ . N p l nh 3 ả ệ . Gi i mã l nh 4 đị ỉ . Tính a ch củ ạ a toán h ng 5 ạ ạ . N p toán h ng 6 ự ệ . Th c thi l nh 7 đị ỉ ủ . Tính a ch c a toán hạ ng chứ ế ả a k t qu 8 ế ả . Ghi k t qu 11 lOMoAR cPSD| 59994889 Ngắ t • ắ ơ ế ắ ự
Ng t (Interrupt) là c ch cho phép ng t quá trình th c thi tuầ ự ườ ừ ệ ủ ộ ử để ụ n t thông th ng t ng l nh c a b x lý ph c vụ ệ ư ậ ấ công vi c khác nh nh p xu t. • ộ ố ạ ắ M t s lo i ng t – ắ ươ Ng t ch ng trình • ươ Debug ch ng trình • ườ ợ ố Tr
ng h p tràn s , chia cho 0,… – ắ đồ ồ Ng t ng h • Đượ ở ộ ờ ộ ử
c phát sinh b i b đị nh gi bên trong b x lý • Đượ ử ụ ườ đ ệ c s d ng trong các môi tr ng a nhi m – ậ ấ Nh p xu t • ụ ậ ự Ví d : nh p ký t ,… – ỗ ầ ứ L i ph n c ng • ụ ỗ ề ữ ệ Ví d : l i truy n d li u,.. 12 lOMoAR cPSD| 59994889 Quá trình phụ ụ ắ c v ng t • ộ ử ể ắ ỗ ự ệ ự ệ ắ
B x lý ki m tra ng t m i khi th c thi xong 1 l nh d a vào tín hi u ng t • ế ắ ạ ệ ế ế đị ỉ
N u không có ng t, n p l nh k ti p có a ch trong PC. • ế ắ N u có ng t:
– T ạ m ng ừ ng th ự c thi ti ế p các l ệ nh c ủ a ch ươ ng trình đ ang đượ c th ự c hi ệ n.
– L ư u l ạ i các d ữ li ệ u đ ang th ự c hi ệ n dang d ở c ủ a ch ươ ng trình.
– Đặ t đị a ch ỉ b ắ t đầ u th ủ t ụ c x ử lý ng ắ t vào thanh ghi PC. – ử ắ X lý ng t
– Khôi ph ụ c các d ữ li ệ u đ ang th ự c hi ệ n dang d ở c ủ a ch ươ ng trình b ị ng ắ t và ti ế p
t ụ c th ự c hi ệ n ch ươ ng trình này 13 lOMoAR cPSD| 59994889 Tham khả o • ươ Ch ng 12, William Stallings 14