1
1
Chương 3. Tp Lnh
Phan Trung Kiên
Đại hc Tây Bc
Phan Trung Kiên 2
Chương 3. Kiến Trúc Tp Lnh
Tp thanh ghi
Tp lnh
dnghiên cu
Phan Trung Kiên 3
3.1. Tp thanh ghi
Chc năng và đặc đim:
Cha các thông tin tm thi phc vcho hot động
thi đim hin ti ca CPU
Được coi là mc đầu tiên ca hthng nh
S lượng thanh ghi nhiu Î tăng hiu năng ca
CPU
hai loi thanh ghi:
Các thanh ghi lp trình được
Các thanh ghi không lp trình được
Phan Trung Kiên 4
Phân loi thanh ghi theo chc năng
Thanh ghi địa ch: qun lý địa chca ngăn nh
hay cng vào-ra.
Thanh ghi dliu: cha tm thi các dliu.
Thanh ghi đa năng: có thcha địa chhoc d
liu.
Thanh ghi điu khin/trng thái: cha các thông
tin điu khin và trng thái ca CPU.
Thanh ghi lnh: cha lnh đang được thc hin.
2
Phan Trung Kiên 5
Mt s thanh ghi đin hình
Các thanh ghi địa ch
Các thanh ghi dliu
Thanh ghi trng thái
Phan Trung Kiên 6
Các thanh ghi địa ch:
Chc năng: dùng để qun lý địa chca ngăn nhhay
cng vào – ra
Chương trình đang thc hin phi nm trong bnh
chính và chiếm 3 vùng nhcbn sau:
Vùng nhlnh (Code): cha các lnh ca chương trình.
Vùng dliu (Data): cha dliu ca chương trình. Thc cht
đây là nơi cp phát các ngăn nhcho các biến nh.
Vùng ngăn xếp (Stack): là vùng nh cu trúc LIFO (Last in
first Out) dùng để ct dthông tin và sau đócóthkhôi phc
li. Thường dùng cho vic thc hin các chương trình con.
Phan Trung Kiên 7
B đếm chương trình (Program
Counter – PC):
Còn gi là con trlnh (Instruction Pointer – IP)
thanh ghi cha địa chcu mt lnh tiếp theo
s được nhn vào.
Sau khi mt lnh được nhn vào thì ni dung
ca PC t động tăng để trsang lnh kếtiếp
nm ngay sau lnh va nhn.
Phan Trung Kiên 8
Minh ha b đếm chương trình
3
Phan Trung Kiên 9
Thanh ghi con trdliu (Data
Pointer – DP):
Cha địa chca ngăn nhdliu mà CPU
mun truy nhp.
Thường có mt sthanh ghi con trdliu
Phan Trung Kiên 10
Minh hothanh ghi con trdliu
Phan Trung Kiên 11
Ngăn xếp (Stack)
Ngăn xếp là vùng nh cu trúc LIFO (Last In
- First Out)
Ngăn xếp thường dùng để phc v cho chương
trình con
Đáy ngăn xếp là mt ngăn nhxác định
Đỉnh ngăn xếp là thông tin nm vtrí trên cùng
trong ngăn xếp
Đỉnh ngăn xếp có thb thay đổi
Phan Trung Kiên 12
Thanh ghi con tr ngăn xếp (Stack
Pointer – SP):
Cha địa chca ngăn nh đỉnh ngăn xếp
Khi ct mt thông tin vào ngăn xếp:
Ni dung ca SP t động gim
Thông tin được ct vào ngăn nh được trbi SP
Khi ly mt thông tin ra khi ngăn xếp:
Thông tin được đọc t ngăn nh được trbi SP
Ni dung ca SP t động tăng
Khi ngăn xếp rng, SP trvào đáy
4
Phan Trung Kiên 13
Minh ha con tr ngăn xếp SP
Phan Trung Kiên 14
Thanh ghi cơ s(Base Register) và
thanh ghi chs(Index Register):
Thanh ghi cơ scha địa chca ngăn nh cơ
s
Thanh ghi chs: cha độ lch địa chgia
ngăn nh CPU cn truy nhp so vi ngăn
nh cơ s.
Địa chca ngăn nhcn truy nhp = địa ch cơ
s+ chs
Phan Trung Kiên 15
Minh ha thanh ghi cơ s thanh ghi
chs
Phan Trung Kiên 16
Các thanh ghi dliu:
Chc năng: cha các dliu tm thi hoc các
kết qa trung gian phc vcho vic xlý các d
liu ca CPU.
Các loi thanh ghi dliu:
Các thanh ghi snguyên:8, 16, 32, 64 bit
Các thanh ghi sdu chm động (Có trên các bx
lý có khi FPU – Floadting Point Unit)
5
Phan Trung Kiên 17
Thanh ghi trng thái:
Còn gi là thanh ghi c(Flag Register)
Chc năng: cha các thông tin trng thái ca
CPU.
Các cphép toán: biu thtrng thái ca kết qa
phép toán.
Các c điu khin: biu thtrng thái điu khin ca
CPU.
Phan Trung Kiên 18
Các cphép toán:
CZero (ZF - crng): đựoc thiết lp lên mt kết qu
ca phép toán va thc hin bng 0.
CSign (SF - c đấu): được thiết lp lên mt kết qu
ca phép toán va thc hin nh hơn 0, hay nói cách
khác, cSign nhn giá trbng bit du ca kết qu.
CCarry (CF - cnh): c được thiết lp nếu phép
toán có nhra ngoài bit cao nht cbáo tràn vi s
không du.
COverflow (OF - ctràn): c được thiết lp nếu cng
hai scùng du mà kết qu du ngược li cbáo
tràn vi s du.
Phan Trung Kiên 19
Các c điu khin:
CInterrupt (IF - ccho phép ngt):
Nếu IF = 1 CPU trng thái cho phép ngt vi tín
hiu yêu cu ngt tbên ngoài.
Nếu IF = 0 CPU trng thái cm ngt vi tín hiu
yêu cu ngt tbên ngoài.
Phan Trung Kiên 20
Tp thanh ghi ca mt sbx