













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