Kiến trúc máy tính Chương II: Kiến trúc phn mm b x
Vic truyn tham s t th tc gi đến th tc b gi có th thc hin bng
cách dùng các thanh ghi ca b x lý hoc dùng ngăn xếp. Nếu s tham s cn truyn
ít, ta dùng các thanh ghi.
II.6 - CÁC KIU ĐỊNH V
Kiu định v định nghĩa cách thc thâm nhp các toán hng. Mt vài kiu xác
định cách thâm nhp toán hng b nh, nghĩa là cách tính địa ch ca toán hng, các
kiu khác xác định các toán hng nm trong các thanh ghi.
Chú ý rng, trong các kiu định v, ta cn lưu ý khi chuyn đổi d liu nh phân
gia hai kiu định địa ch liên quan đến ô nh, vì mi ty tính gm bn byte, mi
ô nh cha mt byte. Như vy, mt t máy tính được lưu trong bn ô nh liên tiếp
trong b nh trong, có nhiu cách xác mt t máy tính, trong đó, hai cách tiêu biu
nht là:
Địa ch t là x cho c hai minh ho
Hình II.3: Minh ho hai cách sp xếp địa ch trong b nh
- Định v kiu Big-Endian: byte thp nht được đặt trong ô nhđịa ch cao
nht (IBM, Motorolla, Sun, HP).
- Định v kiu Little-Endian: byte thp nht được đặt trong ô nhđịa ch thp
nht (Intel, DEC)
Kiu định v Ví d v lnh Gii thích
Thanh ghi Add R3, R4 R3 R3 + R4
Tc thì Add R4, #3 R4 R4 + 3
Trc tiếp Add R1, (1001) R1 R1 + M [1001]
Gián tiếp (thanh ghi) ADD R4, (R1) R4 R4 + M [R1]
Gián tiếp (b nh) Add R1, @ (R3) R1 R1 + M[ M [R3]]
Gián tiếp (thanh ghi + Độ di) Add R4, 100(R1) R4 R4 + M[R1 + 100]
Gián tiếp (thanh ghi + thanh ghi) Add R3, (R1 + R2) R3 R3 + M[R1 + R2]
Gián tiếp ( t/g nn + t/g ch s + độ di ) Add R1, 100(R2)[R3] R1R1+M[100+R2+ d * R3]
T tăng Add R1, (R2)+ R1 R1 + M[R2]
R2 R2 +d
T gim Add R1, -(R2) R2 R2 - d
R1 R1 + M[R2]
Bng II.4 : Kiu định v ca mt b x có kiến trúc phn mm kiu thanh
ghi đa dng.
33
Kiến trúc máy tính Chương II: Kiến trúc phn mm b x
R1, R2, R3, R4 : các thanh ghi
R4 R3 + R4 : Cng các thanh ghi R3 và R4 ri để kết qu và R4
M[R1] : R1 cha địa ch b nh mà toán hng được lưu tr
M[1001] : toán hng được lưu tr địa ch 1001
d : s byte s liu cn thâm nhp (d = 4 cho t máy tính, d = 8 cho t đôi máy tính ).
Trong kiu định v thanh ghi, các toán hng đều được cha trong các thanh ghi.
Trong kiu định v tc thì, toán hng được cha trong lnh.
Trong kiu định v trc tiếp, địa ch ca toán hng được cha trong lnh.
Trong kiu định v gián tiếp (thanh ghi), địa ch toán hng được cha trong thanh
ghi.
Trong kiu định v gián tiếp (b nh), thanh ghi R3 cha địa ch ca địa ch ca
toán hng như trong hình II.4
B nh
R3
(R3 ch ti địa ch này) Ô nh này cha
địa ch toán hng
Toán hng
Hình II.4: Minh ho kiu định v gián tiếp (b nh)
II.7 - KIU CA TOÁN HNG VÀ CHIU DÀI CA TOÁN HNG
Kiu ca toán hng thường được đưa vào trong mã tác v ca lnh. Có bn kiu
toán hng được dùng trong các h thng:
- Kiu địa ch.
- Kiu dng s: s nguyên, du chm động,...
- Kiu dng chui ký t: ASCII, EBIDEC,...
- Kiu d liu logic: các bit, c,...
Tuy nhiên mt s ít máy tính dùng các nhãn để xác định kiu toán hng.
Thông thường loi ca toán hng xác định luôn chiu dài ca nó. Toán hng thường
có chiu dài là byte (8 bit), na t máy tính (16 bit), t máy tính (32 bit), t đôi máy tính
(64 bit). Đặc bit, kiến trúc PA ca hãng HP (Hewlet Packard) có kh năng tính toán vi
các s thp phân BCD. Mt vài b x lý có th x lý các chui ký t.
II.8 - TÁC V MÀ LNH THC HIN
Bng II.5 cho các loi tác v mà mt máy tính có th thc hin. Trên tt c máy
tính ta đều thy 3 loi đầu tiên (tính toán s hc và lun lý, di chuyn s liu, chuyn
điu khin). Tu theo kiến trúc ca mi máy tính, người ta có th thy 0 hoc vài loi
tác v trong s 5 tác v còn li (h thng, tính toán vi s có du chm động, tính toán
vi s thp phân, tính toán trên chui ký t).
Loi tác v Thí d
Tính toán s hc và lun lý Phép tính s nguyên và phép tính lun lý: cng,
tr, AND, OR
Di chuyn s liu Np s liu, lưu gi s liu
34
Kiến trúc máy tính Chương II: Kiến trúc phn mm b x
Chuyn điu khin Lnh nhy, lnh vòng lp, gi chương trình con và tr
v, ngt quãng
H thng Gi h điu hành, qun lý b nh o
Tính s có du chm động Các phép tính trên s có du chm động: cng,
nhân
Tính s thp phân Các phép tính trên s thp phân: cng, nhân, đổi t
thp phân sang ký t
Tính toán trên chui ký t Chuyn, so sánh, tìm kiếm chui ký t
Đồ hođa phương tin
Nén và gii nén d liu hình nh đồ ho (3D) và
d liu đa phương tin (hình nh động và âm
thanh)
Bng II.5: Các tác v mà lnh có th thc hin
II.9 - KIN TRÚC RISC ( REDUCED INSTRUCTION SET COMPUTER)
Các kiến trúc vi tp lnh phc tp CISC (Complex Instruction Set Computer)
được nghĩ ra t nhng năm 1960. Vào thi k này, người ta nhn thy các chương
trình dch khó dùng các thanh ghi, rng các vi lnh được thc hin nhanh hơn các lnh
và cn thiết phi làm gim độ dài các chương trình. Các đặc tính ny khiến người ta
ưu tiên chn các kiu ô nh - ô nh và ô nh - thanh ghi, vi nhng lnh phc tp và
dùng nhiu kiu định v. Điu này dn ti vic các lnh có chiu dài thay đổi và như
thế thì dùng b điu khin vi chương trình là hiu qu nht.
Bng II.6 cho các đặc tính ca vài máy CISC tiêu biu. Ta nhn thy c ba máy
đều có đim chung là có nhiu lnh, các lnh có chiu dài thay đổi. Nhiu cách thc
hin lnh và nhiu vi chương trình được dùng.
Tiến b trong lãnh vc mch kết (IC) và k thut dch chương trình làm cho các
nhn định trước đây phi được xem xét li, nht là khi đã có mt kho sát định lượng
v vic dùng tp lnh các máy CISC.
B x IBM 370/168 DEC 11/780 iAPX 432
Năm sn xut 1973 1978 1982
S lnh 208 303 222
B nh vi chương trình 420 KB 480 KB 64 KB
Chiu dài lnh (tính
bng bit)
16 - 48 16 - 456 6 - 321
K thut chế to ECL - MSI TTl - MSI NMOS VLSI
Cách thc hin lnh Thanh ghi- thanh ghi
Thanh ghi - b nh
B nh - b nh
Thanh ghi - thanh ghi
Thanh ghi - b nh
B nh - b nh
Ngăn xếp
B nh- b nh
Dung lượng cache 64 KB 64 KB 0
Bng II.6: Đặc tính ca mt vài máy CISC
Ví d, chương trình dch đã biết s dng các thanh ghi và không có s khác bit
đáng k nào khi s dng ô nh cho các vi chương trình hay ô nh cho các chương
trình. Điu này dn ti vic đưa vào khái nim v mt máy tính vi tp lnh rút gn
RISC vào đầu nhng năm 1980. Các máy RISC da ch yếu trên mt tp lnh cho
phép thc hin k thut ng dn mt cách thích hp nht bng cách thiết kế các lnh
35
Kiến trúc máy tính Chương II: Kiến trúc phn mm b x
có chiu dài c định, có dng đơn gin, d gii mã. Máy RISC dùng kiu thc hin
lnh thanh ghi - thanh ghi. Ch có các lnh ghi hoc đọc ô nh mi cho phép thâm
nhp vào ô nh. Bng II.7 din t ba mu máy RISC đầu tiên: mu máy ca IBM
(IBM 801) ca Berkeley (RISC1 ca Patterson) và ca Stanford (MIPS ca
Hennessy). Ta nhn thy c ba máy đó đều có b điu khin bng mch đin (không
có ô nh vi chương trình), có chiu dài các lnh c định (32 bits), có mt kiu thi
hành lnh (kiu thanh ghi - thanh ghi) và ch có mt s ít lnh.
B x IBM 801 RISC1 MIPS
Năm sn xut 1980 1982 1983
S lnh 120 39 55
Dung lượng b nh
vi chương trình
0 0 0
Độ dài lnh (tính
bng bit)
32 32 32
K thut chế to ECL MSI NMOS VLSI NMOS VLSI
Cách thc hin lnh Thanh ghi-thanh ghi Thanh ghi-thanh ghi Thanh ghi-thanh ghi
Bng II.7 : Đặc tính ca ba mu đầu tiên máy RISC
Tóm li, ta có th định nghĩa mch x lý RISC bi các tính cht sau:
- Có mt s ít lnh (thông thường dưới 100 lnh ).
- Có mt s ít các kiu định v (thông thường hai kiu: định v tc thì và định
v gián tiếp thông qua mt thanh ghi).
- Có mt s ít dng lnh (mt hoc hai)
- Các lnh đều có cùng chiu dài.
- Ch có các lnh ghi hoc đọc ô nh mi thâm nhp vào b nh.
- Dùng b to tín hiu điu khin bng mch đin để tránh chu k gii mã các
vi lnh làm cho thi gian thc hin lnh kéo dài.
- B x lý RISC có nhiu thanh ghi để gim bt vic thâm nhp vào b nh
trong.
Ngoài ra các b x lý RISC đầu tiên thc hin tt c các lnh trong mt chu k
máy.
B x lý RISC có các li đim sau :
- Din tích ca b x lý dùng cho b điu khin gim t 60% (cho các b x
CISC) xung còn 10% (cho các b x lý RISC). Như vy có th tích hp thêm vào bên
trong b x lý các thanh ghi, các cng vào ra và b nh cache .....
- Tc độ tính toán cao nh vào vic gii mã lnh đơn gin, nh có nhiu thanh
ghi (ít thâm nhp b nh), và nh thc hin k thut ng dn liên tc và có hiu qu
(các lnh đều có thi gian thc hin ging nhau và có cùng dng).
- Thi gian cn thiết để thiết kế b điu khin là ít. Điu này góp phn làm
gim chi phí thiết kế.
- B điu khin tr nên đơn gin và gn làm cho ít ri ro mc phi sai sót mà
ta gp thường trong b điu khin.
Trước nhng điu li không chi cãi được, kiến trúc RISC có mt s bt li:
36
Kiến trúc máy tính Chương II: Kiến trúc phn mm b x
¾ Các chương trình dài ra so vi chương trình viết cho b x lý CISC. Điu
này do các nguyên nhân sau :
+ Cm thâm nhp b nh đối vi tt c các lnh ngoi tr các lnh đọc và ghi vào
b nh. Do đó ta buc phi dùng nhiu lnh để làm mt công vic nht định.
+ Cn thiết phi tính các địa ch hiu dng vì không có nhiu cách định v.
+ Tp lnh có ít lnh nên các lnh không có sn phi được thay thế bng mt
chui lnh ca b x lý RISC.
¾ Các chương trình dch gp nhiu khó khăn vì có ít lnh làm cho có ít la
chn để din dch các cu trúc ca chương trình gc. S cng nhc ca k thut ng
dn cũng gây khó khăn.
¾ Có ít lnh tr giúp cho ngôn ng cp cao.
Các b x lý CISC tr giúp mnh hơn các ngôn ng cao cp nh có tp lnh
phc tp. Hãng Honeywell đã chế to mt máy có mt lnh cho mi động t ca ngôn
ng COBOL.
Các tiến b gn đây cho phép xếp đặt trong mt vi mch, mt b x RISC nn
và nhiu toán t chuyên dùng.
Thí d, b x lý 860 ca Intel bao gm mt b x lý RISC, b làm tính vi các
s l và mt b to tín hiu đồ ho.
II.10 - KIU ĐỊNH V TRONG CÁC B X LÝ RISC
Trong b x lý RISC, các lnh s hc và logic ch được thc hin theo kiu
thanh ghi và tc thì, còn nhng lnh đọc và ghi vào b nh là nhng lnh có toán
hng b nh thì được thc hin vi nhng kiu định v khác.
II.10.1 - Kiu định v thanh ghi
Đây là kiu định v thường dùng cho các b x lý RISC, các toán hng ngun
và kết qu đều nm trong thanh ghi mà s th t được nêu ra trong lnh. Hình II.5 cho
vài ví d v kiu thanh ghi và dng các lnh tương ng trong mt vài kiến trúc RISC.
MIPS Op code
6
Ngun 1
5
Ngun 2
5
Đích
5
Dch chuyn
5
Hàm
6
SPARC Op code
2
Đích
5
Op code
6
Ngun 1
5
0
1
Khong trng
khác
8
Ngun 2
5
Power
PC
Op code
6
Đích
5
Ngun 1
5
Ngun 2
5
Op code m rng
10
0
1
ALPHA Op code
6
Ngun 1
5
Ngun 2
5
3
0
1
Op code m
rng
7
Đích
5
Hình II.5 : Dng lnh trong kiu định v thanh ghi - thanh ghi cho vài CPU RISC
II.10.2 - Kiu định v tc thì
Trong kiu này, toán hng là mt s có du, được cha ngay trong lnh. Hình
II.6 cho ta vài ví d v dng lnh kiu tc thì.
37