Kiến trúc máy tính Chương III: T chc b x
So sánh vi kiu x lý tun t thông thường, 5 lnh được thc hin trong 25 chu
k xung nhp, thì x lý lnh theo k thut ng dn thc hin 5 lnh ch trong 9 chu k
xung nhp.
Như vy k thut ng dn làm tăng tc độ thc hin các lnh. Tuy nhiên k thut
ng dn có mt s ràng buc:
- Cn phi có mt mch đin để thi hành mi giai đon ca lnh vì tt c các
giai đon ca lnh được thi hành cùng lúc. Trong mt b x lý không dùng k thut ng
dn, ta có th dùng b làm toán ALU để cp nht thanh ghi PC, cp nht địa ch ca toán
hng b nh, địa ch ô nh mà chương trình cn nhy ti, làm các phép tính trên các toán
hng vì các phép tính này có th xy ra nhiu giai đon khác nhau.
- Phi có nhiu thanh ghi khác nhau dùng cho các tác v đọc và viết. Trên hình
III.4, ti mt chu k xung nhp, ta thy cùng mt lúc có 2 tác v đọc (ID, MEM) và 1 tác
v viết (RS).
- Trong mt máy có k thut ng dn, có khi kết qu ca mt tác v trước đó,
là toán hng ngun ca mt tác v khác. Như vy s có thêm nhng khó khăn mà ta s đề
cp mc ti.
- Cn phi gii mã các lnh mt cách đơn gin để có th gii mã và đọc các
toán hng trong mt chu k duy nht ca xung nhp.
- Cn phi có các b làm tính ALU hu hiu để có th thi hành lnh s hc dài
nht, có s gi, trong mt khong thi gian ít hơn mt chu k ca xung nhp.
- Cn phi có nhiu thanh ghi lnh để lưu gi lnh mà chúng ta phi xem xét
cho mi giai đon thi hành lnh.
- Cui cùng phi có nhiu thanh ghi b đếm chương trình PC để có th tái tc
các lnh trong trường hp có ngt quãng.
III.6. KHÓ KHĂN TRONG K THUT NG DN
Khi thi hành lnh trong mt máy tính dùng k thut ng dn, có nhiu trường
hp làm cho vic thc hin k thut ng dn không thc hin được như là: thiếu các
mch chc năng, mt lnh dùng kết qu ca lnh trước, mt lnh nhy.
Ta có th phân bit 3 loi khó khăn: khó khăn do cu trúc, khó khăn do s liu
khó khăn do điu khin.
a. Khó khăn do cu trúc:
Đây là khó khăn do thiếu b phn chc năng, ví d trong mt máy tính dùng k
thut ng dn phi có nhiu ALU, nhiu PC, nhiu thanh ghi lnh IR ... Các khó khăn này
được gii quyết bng cách thêm các b phn chc năng cn thiết và hu hiu.
b. Khó khăn do s liu:
Ly ví d trường hp các lnh liên tiếp sau:
Lnh 1: ADD R1, R2, R3
Lnh 2: SUB R4, R1, R5
Lnh 3: AND R6, R1, R7
Lnh 4: OR R8, R1, R9
49
Kiến trúc máy tính Chương III: T chc b x
Hình III.5 cho thy R1, kết qu ca lnh 1 ch có th được dùng cho lnh 2 sau
giai đon MEM ca lnh 1, nhưng R1 đưc dùng cho lnh 2 vào giai đon EX ca lnh 1.
Chúng ta cũng thy R1 được dùng cho các lnh 3 và 4.
1- ADD R1, R2, R3 IF ID EX MEM RS
2- SUB R4, R1, R5 IF ID EX MEM RS
3- AND R6, R1, R4 IF ID EX MEM RS
4- OR R8, R1, R9 IF ID EX
M
EM RS
Hình III.5: Chui lnh minh ho khó khăn do s liu.
Để khc phc khó khăn này, mt b phn phn cng được dùng để đưa kết qu
t ngã ra ALU trc tiếp vô mt trong các thanh ghi ngã vào như trong hình III.6.
CÁC THANH GHI
Thanh ghi
đệm cha kết
qu
Đa hp Đa hp
ALU
R4
R1
Hình III.6: ALU vi b phn phn cng đưa kết qu tính toán tr li ngã vào
Khi b phn phn cng nêu trên phát hin có dùng kết qu ca ALU làm toán
hng cho lit kê, nó tác động vào mch đa hp để đưa ngã ra ca ALU vào ngã vào ca
ALU hoc vào ngã vào ca mt đơn v chc năng khác nếu cn.
c. Khó khăn do điu khin:
Các lnh làm thay đổi tính thi hành các lnh mt cách tun t (nghĩa là PC tăng
đều đặn sau mi lnh), gây khó khăn v điu khin. Các lnh này là lnh nhy đến mt
địa ch tuyt đối cha trong mt thanh ghi, hay lnh nhy đến mt địa ch xác định mt
cách tương đối so vi địa ch hin ti ca b đếm chương trình PC. Các lnh nhy trên
th có hoc không điu kin.
Trong trường hp đơn gin nht, tác v nhy không th biết trước giai đon gii
mã (xem hình III.4). Như vy, nếu lnh nhy bt đầu chu k C thì lnh mà chương trình
50
Kiến trúc máy tính Chương III: T chc b x
nhy ti ch được bt đầu chu k C+2. Ngoài ra, phi biết địa ch cn nhy đến mà ta có
cui giai đon gii mã ID. Trong lnh nhy tương đối, ta phi cng độ di cha trong
thanh ghi lnh IR vào thanh ghi PC. Vic tính địa ch này ch được thc hin vào giai
đon ID vi điu kin phi có mt mch công vic riêng bit.
Vy trong trường hp lnh nhy không điu kin, lnh mà chương trình nhy đến bt
đầu thc hin chu k C+2 nếu lnh nhy bt đầu chu k C.
Cho các lnh nhy có điu kin thì phi tính toán điu kin. Thông thường các
kiến trúc RISC đặt kết qu vic so sánh vào trong thanh ghi trng thái, hoc vào trong
thanh ghi tng quát. Trong c 2 trường hp, đọc điu kin tương đương vi đọc thanh
ghi. Đọc thanh ghi có th được thc hin trong phân na chu k cui giai đon ID.
Mt trường hp khó hơn có th xy ra trong nhng lnh nhy có điu kin. Đó là
điu kin được có khi so sánh 2 thanh ghi và ch thc hin lnh nhy khi kết qu so sánh là
đúng. Vic tính toán trên các đại lượng logic không th thc hin được trong phân na chu
k và như thế phi kéo dài thi gian thc hin lnh nhy có điu kin. Ngưi ta thường tránh
các trường hp này để không làm gim mc hu hiu ca máy tính.
Vy trường hp đơn gin, người ta có th được địa ch cn nhy đến và điu kin
nhy cui giai đon ID. Vy có chm đi mt chu k mà người ta có th gii quyết bng
nhiu cách.
Cách th nht là đóng băng k thut ng dn trong mt chu k, nghĩa là ngưng
thi hành lnh th i+1 đang làm nếu lnh thư i là lnh nhy. Ta mt trng mt chu k cho
mi lnh nhy.
Cách th hai là thi hành lnh sau lnh nhy nhưng lưu ý rng hiu qu ca mt
lnh nhy b chm mt mt lnh. Vy lnh theo sau lnh nhy được thc hin trước khi
lnh mà chương trình phi nhy ti được thc hin. Chương trình dch hay người lp
trình có nhim v xen vào mt lnh hu ích sau lnh nhy.
Trong trường hp nhy có điu kin, vic nhy có th được thc hin hay không
thc hin. Lnh hu ích đặt sau lnh nhy không làm sai lch chương trình dù điu kin
nhy đúng hay sai.
B x lý RISC SPARC có nhng lnh nhy vi hu b. Các lnh này cho phép
thi hành lnh sau lnh nhy nếu điu kin nhy đúng và hu b thc hin lnh đó nếu
điu kin nhy sai.
III.7. SIÊU NG DN
Máy tính có k thut siêu ng dn bc n bng cách chia các giai đon ca k
thut ng dn đơn gin, mi giai đon được thc hin trong khon thi gian Tc, thành n
giai đon con thc hin trong khon thi gian Tc/n. Độ hu hiu ca k thut này tương
đương vi vic thi hành n lnh trong mi chu k Tc. Hình III.7 trình bày thí d v siêu
ng dn bc 2, có so sánh vi siêu ng dn đơn gin. Ta thy trong mt chu k Tc, máy
dùng k thut siêu ng dn làm 2 lnh thay vì làm1 lnh trong máy dùng k thut ng
dn bình thường. Trong máy tính siêu ng dn, tc độ thc hin lnh tương đương vi
vic thc hin mt lnh trong khong thi gian Tc/n. Các bt li ca siêu ng dn là thi
gian thc hin mt giai đon con ngn Tc/n và vic trì hoãn trong thi hành lnh nhy ln.
Trong ví d hình III.7, nếu lnh th i là mt lnh nhy tương đối thì lnh này được gii
51
Kiến trúc máy tính Chương III: T chc b x
mã trong giai đon ID, địa ch nhy đến được tính vào giai đon EX, lnh phi đưc nhy
ti là lnh th i+4, vy có trì tr 3 lnh thay vì 1 lnh trong k thut ng dn bình thường.
i IF1 IF2 ID1 ID2 EX1 EX2
MEM1 MEM2 RS1 RS2
i+1
i+2
i+3
i+4
i+5
i IF ID EX MEM RS
i+1 IF ID EX MEM RS
i+2 IF ID EX MEM RS
Hình III.7: Siêu ng dn bc 2 so vi siêu ng dn đơn gin.
Trong khong thi gian Tc, máy có siêu ng dn làm 2 lnh
thay vì 1 lnh như trong máy có k thut ng dn đơn gin.
III.8. SIÊU VÔ HƯỚNG (SUPERSCALAR)
Máy tính siêu vô hướng bc n có th thc hin đồng thi n lnh trong mt chu k
xung nhp Tc. Hình III.8 trình bày mt ví d v s vn hành ca mt máy tính siêu vô
hướng bc 2 so vi mt máy tính dùng k thut ng dn.
i IF ID EX MEM RS
i+1 IF ID EX MEM RS
(a)
i+2 IF ID EX MEM RS
i+3 IF ID EX MEM RS
i IF ID EX MEM RS
(b)
i+1 IF ID EX MEM RS
Hình III.8: Siêu vô hướng (a) so vi k thut ng dn (b).
52
Kiến trúc máy tính Chương III: T chc b x
Trong mt máy tính siêu vô hướng phn cng phi qun lý vic đọc và thi hành
đồng thi nhiu lnh. Vy nó phi có kh năng qun lý các quan h gia s liu vi nhau.
Cũng cn phi chn các lnh có kh năng được thi hành cùng mt lúc. Nhng b x
đầu tiên đưa ra th trường dùng k thut này là các b x lý Intel i860 và IBM RS/6000.
Các b x lý này có kh năng thc hin song song nhiu tác v trên s nguyên và trên s
l.
Năm 1992, người ta thy xut hin các b x lý có nhiu b thc hin tác v độc lp
vi nhau (nhiu ALU, bnh toán s l, np d liu, lưu d liu, nhy), có th thc hin song
song nhiu lnh (lnh tính s nguyên, s l, lnh b nh, lnh nhy...). S lnh có th đưc thi
hành song song càng nhiu thì phn cng thc hin vic này càng phc tp.
III.9. MÁY TÍNH CÓ LNH THT DÀI VLIW (VERY LONG
INSTRUCTION WORD)
Máy tính siêu vô hướng có th thc hin 2 hoc 3 lnh trong mi chu k xung
nhp. Do k thut ng dn đòi hi các lnh phi ph thuc vào nhau nên rt khó thc
hin nhiu lnh trong mt chu k. Như vy, thay vì c thc hin nhiu lnh trong mt
chu k, người ta tìm cách đưa vào nhiu lnh trong mt t lnh dài. Mt lnh VLIW
có th cha hai tác v tính toán s nguyên, hai tác v tính toán s l, hai tác v thâm
nhp b nh và mt lnh nhy. Mt lnh như vy được chia thành nhiu trường, mi
trường có th có t 16 đến 24 bít và chiu dài ca lnh VLIW là t 112 đến 168 bít.
Có nhiu k thut to ra mt lnh VLIW trong đó tt c các trường đều được dùng.
Giá thành và độ phc tp ca mt máy tính có lnh tht dài tăng lên rt nhiu nếu
người ta tăng s trường trong mt lnh VLIW.
III.10. MÁY TÍNH VECTƠ
Mt máy tính vectơ bao gm mt b tính toán vô hướng bình thường dùng k
thut ng dn và mt b làm tính vectơ. B tính toán vô hướng, ging như b x
dùng k thut ng dn, thc hin các phép tính vô hướng, còn b làm tính vectơ thc
hin các phép tính vectơ. Đa s các máy tính vectơ cho phép làm các phép tính trên
vectơ s nguyên, vectơ s l và vectơ s logic (s Boolean).
Có 2 kiu kiến trúc máy tính vectơ: kiu vectơ ô nh - ô nhkiu thanh
ghi vectơ. Trong máy tính loi vectơ b nh - b nh, các phép tính vectơ được thc
hin trong b nh. Kiến trúc kiu thanh ghi vectơ được thc hin trong các siêu máy
tính CRAY - 1, CRAY - 2, X - MP, Y - MP, trong các siêu máy tính ca Nht NEC
SX/2, Fujitsu VP200 và Hitachi S820. Các máy này có mt b nhiu thanh ghi vectơ
và nhng tác v vectơ được thc hin trên các thanh ghi này ngoi tr các tác v np
d liu và lưu d liu. Máy CRAY-2 (1995) có 8 thanh ghi vectơ, mi thanh ghi có
th cha 64 vectơ, mi vectơ có chiu dài 64 bít.
III.11. MÁY TÍNH SONG SONG
Trong các máy tính siêu ng dn, siêu vô hướng, máy tính vectơ, máy tính
VLIW, người ta đã dùng tính thc hin song song các lnh các mc độ khác nhau để
làm tăng hiu qu ca chúng. Gii hn v kh năng tính toán ca loi máy trên cùng
53