You are on page 1of 407

Andrew S.

Tanenbaum

Számítógép­
architektúrák
A m ű e re d e ti cím e: S tru c tu re d C o m p u te r O rg an izatio n . F ifth E ditio n .
C opyright © 2006, 1999,1990, 1984, 1976 P carson E d u catio n , Inc. Pearson
P rentice H all, P earson E d u c a tio n , Inc. U p p c r S addie R iver, N J 07458. Tartalom
All rights reserved.

H u n g árián I .anguage E d itio n C opyright © Paiicm K önyvkiadó Kft. 2006

A k ia d á sé rt felel a P an em K önyvkiadó Kft. ügyvezetője, B u d ap est, 2006

E z a könyv az O k tatási M inisztérium tám ogatásával,


a F elsőoktatási Tankönyv- és S zakkönyv-tám ogatási P ályázat
k e retéb en je le n t m eg.

Előszó 13

1. Bevezetés 17
1.1. Strukturált szám ítógép-felépítés 18
1.1.1. N yelvek, szintek és virtuális gép ek 18
1.1.2. K o rszerű tö b b szin tű szám ítógépek 20
1.1.3. A tö b b szin tű szám ítógépek fejlődése 23
1.2. M érföldkövek a szám ítógépek felépítésében 28
1.2.1. N u llad ik generáció: m ech an ik u s szám ológépek (1642-1945) 30
1.2.2. E lső generáció: vákuum csövek (1945-1955) 31
1.2.3. M ásodik generáció: tran ziszto ro k (1955-1965) 34
1.2.4. H arm ad ik generáció: in teg rált á ram k ö rö k (1965-1980) 36
1.2.5. N egyedik generáció: m agas integráJtságú áram k ö rö k (1980-?) 38
1.2.6. Ö tö d ik generáció: lá th a ta tla n szám ítógépek 40
1.3. Szám ítógép-kiállítás 42
1.3.1. T echnológiai és gazdasági m ozgató ru g ó k 42
IS B N -10: 9-635454-57-0
1.3.2. A szám ítógépek term ék sk álája 44
ISBN -13; 978-9-635454-57-0 44
1.3.3. E ld o b h a tó szám ítógépek
1.3.4. M ik ro vezérlők 46
L e k to rá lta és szerk esztette; D r. M áté E ö rs 48
1.3.5. Já té k g é p e k
1.3.6. Szem élyi szám ítógépek 49
F o rd íto tta; B ohus M ihály, A lexin Z o ltá n , G o m b ás É va, Nyúl László, H o rv áth G yula, 1.3.7. K iszolgálók 50
E rdőhelyi Balázs, S ch re ttn e r L ajos, V irágh Já n o s 1.3.8. M u n k aállom ások gyűjtem énye 50
B orítóterv: T ó th A ttila 1.3.9. N agyszám ítógépek 51
T ö rd elte; P ipaszó Bt. 1.4. N éhány szám ítógépesalád 52
1.4.1. A P en tiu m 4 á ttek in tése 52
panem (a)panem .hu 1.4.2. U ltraS P A R C III áttek in tése 57
http://w w w .panem .hu 1.4.3. A 8051 59
1.5. M értékegységek 61
M m den jog fenn tartv a. Je le n könyvet, illetve an n a k részeit tilos rep ro d u k áln i, 1.6. Könyvünk tartalm áról 62
ad atrö g zítő ren d szerb en tá ro ln i, bárm ilyen fo rm áb an vagy eszközzel - 1.7. Feladatok 63
elek tro n ik u s ú to n vagy m ás m ó d o n - közölni a k iadók engedélye nélkül.
6 TARTALOM TARTALOM 7

2. Szám ítógéprendszerek felépítése 66 3.2.3. A ritm etik ai áram k ö rö k 170


2.1. Processzorok 66 3.2.4. Ó rák 175
2.1.1. A C P U felép ítése 67 3.3. M emória 176
2.1.2. U tasítás-v ég reh ajtás 68 3.3.1. T áro ló k 177
2.1.3. R IS C és C ISC 72 3.3.2. F lip-flopok 179
2.1.4. K orszerű szám ító g ep ek terv ezési elvei 74 3.3.3. R egiszterek 181
2.1.5. U tasításszin tű p árh u zam o sság 75 3.3.4. M em ó riaszervezés 183
2.1.6. P rocesszorszintű p árh u zam o sság 80 3.3.5. M em ó rialap k ák 186
2.2. Központi mem ória 83 3.3.6. R A M -ok és R O M -o k 188
2.2.1. B itek 84 3.4. CPU lapkák és sínek 191
2.2.2. M em óriacím ek 84 3.4.1. C P U lapkák 192
2.2.3. B ájtso rren d 86 3.4.2. S zám ítógépes sínek 194
2.2.4. H ibajavító kód o k 88 3.4.3. Sínszélesség 196
2.2.5. G y o rsító tá r 92 3.4.4. Sínek időzítése 198
2.2.6. M em ó riato k o zás és -típusok 95 3.4,5. S ín ü tem ezés 202
2.3. Háttérm cm öria 96 3.4.6. S ínm űveletek 205
2.3.1. M em ó riah ie ra rc h ia 96 3.5. Példák CPU lapkákra 208
2.3.2. M ágneslem ezek 97 3.5.1. P en tiu m 4 208
2.3.3. H ajlékonylem ezek 100 3.5.2. U ltraS P A R C III 214
2.3.4. ID E -lem ezek 101 3.5.3. 8051 219
2.3.5. SC S I-lem ezek 103 3.6. Példák sínekre 221
2.3.6. R A ID 104 3.6.1. IS A sín 222
2.3.7. C D -R O M 108 3.6.2. P C I sín 223
2.3.8. ír h a tó C D -k 112 3.6.3. P C I E xpress 232
2.3.9. Ú jra írh a tó C D -k 114 3.6.4. U niverzális so ro s sín 236
2.3.10. D V D 115 3.7. K apcsolat a perifériákkal, interfészek 240
2.3.11. B lu-R ay 117 3.7.1. A B /K lapkák 240
2.4. B em enet/K im enet 117 3.7.2. C ím d ekódolás 242
2.4.1. Sínek 117 3.8. Ö sszefoglalás 245
2.4.2. T erm inálok 121 3.9. Feladatok 246
2.4.3. E gér 126
2.4.4. N yo m tató k 127 4. A m ikroarchitektúra szintje 251
2.4.5. T elekom m unikációs b e re n d ezések 133 4.1. M ikroarchitektúra-példa 251
2.4.6. D igitális k am e rák 141 4.1.1. A d atú t 252
2.4.7. K arak terk ó d o k 143 4.1.2. M ik ro u tasításo k 258
2.5. Ö sszefoglalás 147 4.1.3. M ikroulasítás-vezérlés: M ic-1 261
2.6. Feladatok 148 4.2. ISA-példa: az IJVM 266
4.2.1. V erm ek 266
3. A digitális logika szintje 152 4.2.2. A z IJV M m em ó riam o d ellje 268
3.1. K ap u k és Boole-algebra 152 4.2.3. A z IJV M u tasításkészlete 270
3.1.1. K apuk 153 4.2.4. Java fo rd ítása IJV M -re 273
3.1.2. B oole-algeb ra 155 4.3. Példa a m egvalósításra 275
3.1.3. A B oole-függvények m egvalósítása 157 4.3.1. M ik ro u tasításo k és jelö lésren d szer 275
3.1.4. Á ram k ö ri ekvivalencia 159 4.3.2. IJV M m egvalósítása M ic-1 felhasználásával 280
3.2. Alapvető digitális loj^ikai áram körök 163 4.4. A m ikroarchitektúra szintjének tervezése 291
3.2.1. In te g rá lt ára m k ö rö k 163 4.4.1. S ebesség vagy ár 291
3.2.2. K om binációs áram k ö rö k 165 4.4.2. A végrehajtási út hosszának csökkentése 294
TARTALOM TARTALOM 9

4.4.3. Terv elő re betöltéssel: a M ic-2 301 5.4.10. A m űveleti kód és a cím zési m ód o rto g o n alitása 388
4.4.4. C sővonalas terv; a M ic-3 303 5.4.11. A P entium 4 cím zési m ódjai 390
4.4.5. H étszakaszú csővezeték; a M ic-4 309 5.4.12. A z U ltraS PA R C III cím zési m ódjai 392
4.5. A teljesítm ény növelése 312 5.4.13. A 8051 cím zési m ódjai 392
4.5.1. G y o rsító tár 313 5.4.14. A cím zési m ó d o k összefoglalása 393
4.5.2. E lágazásjö v en d ö lés 319 5.5. U tasítástípu sok 394
4.5.3. S o rren d tő l e lté rő v ég reh ajtás és reg iszte rátn ev ezés 324 5.5.1. A d atm o zg ato u tasításo k 394
4.5.4. F e ltételeze tt v ég reh ajtás 329 5.5.2. D iadikus m űveletek 395
4.6. Példák a m ikroarchitektúra-szintre 332 5.5.3. M o n adikus m űveletek 396
4.6.1. A P entium 4 C P U m ik ro a rc h ite k tú rája 332 5.5.4. Ö sszehasonlító és feltételes elágazó u tasításo k 398
4.6.2. A z U ltraS P A R C III C u C P U -ján ak m ik ro a rc h itek tú rá ja 338 5.5.5. E ljáráshívó u tasításo k 400
4.6.3. A 8051 C P U m ik ro a rc h ite k tú rá ja 343 5.5.6. Ism étléses vezérlés 400
4.7. A Pentium , az UltraSPARC és a 8051 összehasonlítása 346 5.5.7. B em en et/k im en et 402
4.8. Ö sszefoglalás 347 5.5.8. A P en tium 4 utasításai 405
4.9. Feladatok 348 5.5.9. A z U ltraS P A R C III u tasításai 408
5 .5 .lü . A 8051 utasításai 411
5. Az utasításrendszer-architektúra szintje 352 5.5.11. A z u ta sításren d sz erek összehasonlítása 411
5.1. Az ISA-szint áttekintése 354 5.6. Vezérlési folyamat 414
5.1.1. A z ISA -szint tulajd o n ság ai 354 5.6.1. Szekvenciális vezérlés és elágazás 414
5.1.2. M em ó riam o d ellek 356 5.6.2. E ljáráso k 415
5.1.3. R egiszterek 358 5.6.3. K o ru tin o k (tá rsru tin o k ) 421
5.1.4. U tasításo k 359 5.6.4. C sap d ák 422
5.1.5. A P entium 4 IS A -szintjének á tte k in té se 359 5.6.5. M egszakítások 423
5.1.6. A z U ltraS P A R C III IS A -szintjének á tte k in té se 362 5.7. R észletes példa: H anoi tornyai 427
5.1.7. A 8051 ISA -szintjének á tte k in té se 365 5.7.1. A H a n o i tornyai p ro b lém a m egoldása P en tiu m 4 assem bly nyelven 427
5.2. Adattípusok 368 5.7.2. A H a n o i tornyai p ro b lém a m egoldása U ltraS P A R C III assem blyben 429
5.2.1. N u m erik u s a d a ttíp u so k 368 5.8. Az Intel IA -64 architektúra és az Itanium 2 431
5.2.2. N em n um erik u s ad attíp u so k 369 5.8.1. A P en tiu m 4 pro b lém ái 431
5.2.3. A P entium 4 ad attíp u sai 370 5.8.2. A z IA -6 4 m odell; explicit u tasításszintű párhuzam osság 433
5.2.4. A z U ltraSPA R C III ad attíp u sa i 370 5.8.3. A m em óriahivatkozások csökkentése 433
5.2.5. A 8051 pro cesszo r ad attíp u sai 371 5.8.4. U ta sításü tem ezés 434
5.3. U tasításforniátum ok 371 5.8.5. F elté teles elágazások csökkentése: p réd ik áció 436
5.3.1. U tasításfo rm á k terv ezésén ek k ö v etelm ényei 372 5.8.6. Spekulatív b etö ltés 438
5.3.2. A m űveleti k ó d k iterjesztése 374 5.9. Ö sszefoglalás 439
5.3.3. A P entium 4 u tasítá sfo rm á lu m a i 376 5.10. Feladatok 439
5.3.4. A z U ltraS P A R C III u tasításfo rm átu m ai 378
5.3.5. A 8051 u ta sításfo rm átu m ai 379 6. Az operációs rendszer gép szintje 444
5.4. C ím zési m ódszerek 380 6.1. V irtuális mem ória 445
5.4.1. C ím zési m ó d o k 380 6.1.1. L ap o zás 446
5.4.2. K özvetlen cím zés 380 6.1.2. A lapozás m egvalósítása 448
5.4.3. D irek t cím zés 381 6.1.3. A k érésre lapozás és a m un k ah alm az m odell 452
5.4.4. R egisztercím zés 381 6.1.4. L ap cserclő eljáráso k 453
5.4.5. R eg iszter-in d irek t cím zés 381 6.1.5. L a p m é re t és elap ró zó d ás 455
5.4.6. In dexelt cím zés 382 6.1.6. S zegm entálás 456
5.4.7. B ázis-index cím zési m ód 384 6.1.7. A szegm entálás m egvalósítása 459
5.4.8. V erem cím zés 384 6.1.8. A P en tiu m 4 virtuális m em ó riája 462
5.4.9. C ím zési m ó d o k elágazó u tasítá so k b a n 388 6.1.9. A z U ltraS P A R C III virtuális m em ó riája 466
10 TARTALOM
TARTALO M 11
6.1.10. V irtuális m em ó ria és gy o rsító tár 469
6.2. Virtuális B/K utasítások 469 8.2. T ársprocesszorok 583
470 8.2.1. H áló zati processzorok 584
6.2.1. Fájlok
6.2.2. A virtuális B/K u tasításo k m egvalósítása 472 8.2.2. M éd iapro cesszorok 592
6.2.3. K önyvtárkezelő u tasításo k 475 8.2.3. K rip to pro cesszorok 597
6.3. A párhuzam os feldolgozás virtuális utasításai 476 8.3. Közös m em óriás m ultiprocesszorok 598
6.3.1. P rocesszusok létreh o zása 477 8.3.1. M u ltip rocesszorok és m ultiszám ítógépek 598
6.3.2. V ersenyhelyzetek 478 8.3.2. M em ó riaszem an tik a 606
6.3.3. Processzusok szinkronizációja szem aforokkal 482 8.3.3. U M A sín ren d szerű S M P -architcktúrák 610
6.4. Példák operációs rendszerekre 4,S6 8.3.4. N U M A -m ultiprocesszorok 619
6.4.1. B evezetés 4S6 8.3.5. C O M A -m ultiprocesszorok 628
6.4.2. P éldák virtuális m em ó ria k ezelésére 495 8.4. Ü zenetátadásos m ultiszám ítógépek 629
6.4.3. P éldák virtuális B/K m ű v eletek re 499 8 .4 .1. Ö sszekötő h álózatok 631
6.4.4. P éldák processzusok k ezelésére 510 8.4.2. M P P - e rő sen p árh u zam o s processzor 635
6.5. Ö sszefoglalás 516 8.4.3. K laszterszám ítógépek 644
6.6. Feladatok 517 8.4.4. A m ultiszám ítógépek kom m unikációs szoftvere 650
8.4.5. Ü tem ezés 652
7. Az assem bly nyelv szintje 524 8.4.6. A lkalm azásszintű közös m em ória 654
7.1. Bevezetés az assem bly nyelvbe 525 8.4.7. Teljesítm ény 661
7.1.1. Mi az assem bly nyelv? 525 8.5. Crid szám ítások 667
7.1.2. M iért h aszn áln ak assem bly nyelvet? 526 8.6. Ö sszefoglalás 670
7.1.3. A z assem bly u ta sítá so k alakja 528 8.7. Feladatok 671
7.1.4. P szeu d o u tasításo k 531
7.2. M akrók 534 9. A jánlott olvasm ányok és irodalom jegyzék 674
7.2.1. A m ak ró k definíciója, hívása, kifejtése 534 9.1. Javasolt további olvasm ányok 674
7.2.2. P a ra m é te re s m ak ró k 536 9.1.1. B evezető és általán o s m űvek 674
7.2.3. E lőnyös tu lajd o n ság o k 537 9.1.2. S zám ító g ép ren d szerek felépítése 676
7.2.4. A m ak ró assem b ler m ű k ö d ése 538 9.1.3. D igitális logika szintje 677
7.3. Az assem bler menetei 539 9.1.4. A m ik ro arc h itek tú ra szintje 678
7.3.1. K étm en etes assem b lerek 539 9.1.5 A z u ta sítá sren d sz er-arch itek tú ra szintje 679
7.3.2. E lső m en e t 540 9.1.6. A z o p eráció s ren d sz e r gép szintje 679
7.3.3. M ásodik m e n e t 544 9.1.7. A ssem bly nyelv szintje 680
7.3.4. S zim bólum tábla 545 9.1.8. P á rh u zam o s szám ító g ép -arch itek tú rák 680
7.4. Szerkesztés és betöltés 547 9.1.9. B ináris és leb eg ő p o n to s szám ok 682
7.4.1. A szerkesztő felad atai 548 9.1.10. A ssem bly nyelvű p ro g ram o zás 683
7.4.2. A tárgym odul szerkezete 551 9.2. Bibliográfia 684
7.4.3. H o zzáren d elési id ő és d in am ik u s áthelyezés 552
7.4.4. D inam ikus szerkesztés 555 A) Bináris számok 696
7.5. Ö sszefoglalás 559 A .l. Véges pontosságú szám ok 696
7.6. Feladatok 560 A.2. Szám rendszerek alapszám ai 698
A.3. Konverzió egy ik alapról a m ásik alapra 700
8. Párhuzamos számítógép-architektúra 563 A.4. Negatív bináris szám ok 702
8.1. L apkaszintű párhuzam osság 564 A.5. Bináris aritm etika 705
8.1.1. U tasításszin tű p árh u zam o sság 565 A.6. Feladatok 706
8.1.2. L ap k aszin tű többszálúság 572
8.1.3. E gylapkás m u ltip ro cesszo ro k 578
12 TARTALO M

B) Lebegőpontos számok 708 Előszó


B .l. A lebegőpontos szám ábrázolás elvei 708
B.2. Az IEEE 754-es lebegőpontos szabvány 711
B.3. Feladatok 715

C) Assem bly nyelvű programozás 717


C .l. Áttekintés 718
C. 1.1. A z assem bly nyelv 718
C.1.2. Egy rövid assem bly nyelvű p ro g ram 719
C.2. A 8088-as processzor 720
C.2.1. A processzorciklus 720
C.2.2. A z általán o s reg iszterek 722
C.2.3. M u tató reg iszterek 723
K önyvünk első négy kiadása azt az elvet követte, hogy a szám ítógép egym ásra é p ü ­
C.3. M em ória és cím zés 725
lő szintek h ierarch iájak én t fo g h ató fel, am elyek m indegyikének m egvan a saját, jól
C.3.1. M em óriaszervezés és szegm ensek 725
m e g h a tá ro z o tt felad ata. E z az alapelv m a is ugyanúgy érvényben van, m int az első
C.3.2. C ím zés 726
C.4. A 8088 utasításrendszere k iad ás m e g jelen ések o r volt, e z ért az ö tö d ik k iadás is ezen alapszik. R észletesen is­
730
C.4.1. A d atm ozga tás, -m ásolás és aritm etik a 730 m e rte tjü k a digitális logika, a m ik ro arc h itek tú ra, az u tasításren d sz er-arch itek tú ra,
C.4.2. L ogikai, bit- és lé p te tő m ű v eletek 733 az o p eráció s ren d szer gép és az assem bly nyelv szintjét egyaránt, am in t azt az első
C.4.3. C iklusszervezés és ism étlő d ő string m ű v eletek 734 négy k iad ásban is tettü k .
C.4.4. U g ró és eljárásh ív ó u tasítá so k 735 Jó lle h e t az alap felép ítés ugyanaz, az ö tö d ik kiadás - követve a gyorsan változó
C.4.5. S zubrutin hívások 737 szám ító g ép -ip arág at - szám os v o n atk o zásáb an m egváltozott. N éh o l lényegi, m ás­
C.4.6. R endszerhív áso k és ren d sz erszu b ru tin o k 738 hol csak kisebb a változás. P éldáu l ak tu alizáltu k a szem léltetésre használt g é p e ­
C.4.7. Z á ró m egjegyzések az u tasításre n d sz e rrő l 740 k et, am elyek így eb b en a kiad ásb an az In tel P en tiu m 4, a Sun U ltraS PA R C III és
C.5. Az assem bler 741 az In te l 8051. A P entium 4 a m ai asztali szám ító g ép ek elte rje d t m ikropro cesszora.
C.5.1. B evezetés 741 A z U ltraS P A R C III ugyancsak elte rje d t, am elyet széles k ö rb en h aszn áln ak a kö ze­
C.5.2. A z A C K -alapú assem bler, az as88 742 p es és nagy tö b b p ro cesszo ro s ren d szerek b en .
C.5.3. E lté ré se k m ás 8088-as assem b lerek tő l 746 A 8051 választása azo n b an tö b b e k e t m eg lep h et. E z a tiszteletre m éltó lapka
C.6. A nyomkövető 747 m á r év tizedek ó ta je le n van. A beágyazott re n d szerek rendkívüli fejlődése azo n ­
C.6.1. N yom követő p a ran cso k 749 b a n m eg szerezte szám ára a m éltó helyet. M ivel a rád ió s ó rák tó l kezdve a m ik ro ­
C.7. A lapism eretek 751 hullám ú sütőkig szinte m in d e n t szám ítógépek vezérelnek, a b eágyazott ren d sze­
C.8. Példák 752 rek irán ti érd ek lő d és egyre nő, és a 8051-es lap k át széles k ö rb en használják b e n ­
C.8.1. H elló V ilág p éld a 752 n ü k rendkívül alacsony (filléres) ára, a hozzá m á r létező szoftverek és perifériák
C.8.2. P éld a az általá n o s reg iszte rek re 756 m ennyisége, valam int a p ro g ram o zásáh o z é rtő fejlesztők töm ege m iatt.
C.8.3. A call u tasítás és a m u ta tó reg iszte rek 758
A könyvet az o k tatásb an jeg y zetk én t használó szám os egyetem i o k ta tó ism é­
C.8.4. H ib ak eresé s egy tö m b k iíró p ro g ram b an 760
te lte n k é rte az évek során, hogy assem bly nyelvű p ro g ram o zás is jelen jék m eg
C.8.5. S tring-kezelés és strin g -u tasítások 763
C.8.6. U g ró táb lák b en n e. A z ö tö d ik kiadás e z ért kiegészült ezzel az anyaggal, am ely a C függelék­
766
ben és a könyvhöz ta rto z ó C D -R O M -lem czen találh ató . A választás az Intel 8088
C.8.7. P u ffereit és véletlen fájlelérés 768
C.9. Feladatok nyelvére ese tt, mivel ez a h a tá rta la n u l n ép szerű P en tiu m n ak is az alapkészlete.
771
V á lasz th a tta m volna az U ltraS PA R C vagy a M IPS nyelvét, esetleg egy olyan p ro ­
Angol-m agyar tárgym utató cesszorét, am elyről szinte senki nem h allott, de m int ösztönző eszköz, a 8088 a
773
M agyar-angol tárgym utató jo b b választás, hiszen a legtöbb hallg ató n ak van o tth o n P entium os gépe, am ely k é­
795
p es a 8088-as p ro g ram o k fu tta tá sá ra . M ivel az assem bly k ó dban rendkívül n ehéz a
h ib ak eresés, így a C D -m ellék let a W indow s-, U nix- és L inux-környezet m indegyi­
k éh ez ta rta lm az assem bly fejlesztést segítő eszközöket, p éld áu l egy 8088 assem b-
E LŐ SZÓ
E LŐ SZ Ó 15
14

lert, egy szim uláto rt és egy n yüm követőt. A C D m ellett ugyanezek az eszközök A z A és B függelék nem v álto zo tt a legutóbbi kiadás ó ta, a gépi nyelvű p ro g ­
m eg találh ató k a könyv w ebhelyén is (lásd 15. o.). ram o zást ism ertető C függelék azonban teljesen új. E z a C D -n és a w eboldalon
A z évek so rán a könyv egyre hosszabb lett. A terjed elem növek ed ése e lk e rü l­ ta lá lh a tó eszközök segítségével tö rté n ő assem bly nyelvű p ro g ram o zás részletes
h e tetlen egy folyam atosan fejlő d és alall álló te rü le t ism ertetése során, am elyben ú tm u ta tá sa , A függeléket az am szterdam i V rije E gyetem en dolgozó D r. E vert
n a p o n ta új ism eretek b u k k an n ak fel. E n n ek e re d m é n y ek é p p en , ha ezt a könyvet W attéi írta, aki többéves tap asztalattal rend elk ezik a hallgatók ugyanezen eszkf)-
tanfolyam i seg éd letk én t vagy féléves jeg y ze tk én t kívánják használni, valószínű, zök segítségével zajló tan ításáb an . S zeretn ém ezúton is kifejezni neki a köszönc-
hogy nem leh et vele egyetlen tanfolyam /félév a la tt végezni. Hgy leh etség es m egkö­ tem et,
zelítés szerint legalább az első h áro m fejezet teljes egészében, a negyedik fejezel A gépi nyelvű p ro g ram o zást segítő eszközökön kívül a w eboldalon találh ató
a 4.4. alfejezettel b ezáró lag és az ö tö d ik fejezet szintén teljes eg észéb en kép ezh eti egy - a negyedik fejezettel együtt haszn álh ató - grafikus szim ulátor is, am elyet az
egy tanfolyam vagy félév anyagát. A z esetleg es fe n n m a ra d ó időben, az o k ta tó vá­ O b e rlin F ő isk olán dolgozó R ichard S aller p ro fesszo r készített, s am ely a fejezet­
lasztásától függően, a negyedik fejezet további részével, v alam int a h ato d ik , h e te ­ b en tárgyalt alapelvek m e g értéséb en segíti a hallgatók at. N agyon kösztm öm , hogy
dik és nyolcadik fejezet egyes részeivel foglalkozhatnak. re n d e lk ezésem re b o c sá to tta ezt a szoftvert,
A z alábbiakban fejezetrő l fejezetre felsoroljuk a negyedik k iad ásh o z képest A k ö n j^ b e n találh ató áb rák cs az o k tató k szám ára készített Pow erPoint b e m u ­
tö rté n t változásokat. A z első fejezet to v áb b ra is a sz á m ító g ép -arch itek tú rák tö r­ ta tó k is m eg találh ató k a w eboldalon. A z U R L :
ténelm i á tte k in té sé t tartalm azza, b em u tatv a a jelen leg i h elyzetet, v alam int az
ide vezető út jele n tő s m érföldköveit. E fejezet kiegészült m ég a je len leg létező liftp:ll\\\v\v.prcnhall.rom/taiu’nluutin
szám ítógéptípuso k sp ek tru m á n a k ism ertetésév el és a h áro m fő p éld ap ro cesszo r
(P entium 4, U ltraSPA R C III és 8051) vázlatos bem u tatásáv al, E ze n az old alon k attin tso n a könyv képe alatti „C om panion W ebsite” hivatkozás­
A m ásodik fejezetb en a b em en e ti/k im e n eti (B /K ) eszközök té m a k ö re kiegé­ ra, m ajd a m egjelenő m enüből válassza ki a m egfelelő oldalt.
szült, kiem elve a m o d ern eszközökben használt tech n o ló g iák at, k öztük a digitális Sokan olvasták a k ézirato t vagy ann ak egyes részeit, és hasznos javaslatokkal
k am erák at, valam int a D SL és k ábeles in te rn e te t is, vagy egyéb m ó don seg ítették m u n kám at. K ülönösen N ikitas A lexandridis, S h ek ar
A h arm ad ik fejezetet alap o san átd o lg o ztu k , és a szám ítógépsínckkel. v alam int B o rk ar, H e rb e rt Bős, Seott C an n o n , D oug C a rm ea n , A lán C harlesw orth. Erié
a m odern B /K lapkákkal foglalkozik. Itt a h árom új p éld a p ro ce ssz o rt lapkaszinten C o ta-R o b les, M ichael F e tterm an , Q uinn Jacobson, T hilo K ielm ann. Iffat Kazi,
ism ertetjük. E fejezel kiegészüli a PC I E xpress sín leírásával, am ely v á rh ató a n h a ­ Saul Levy, A h m ed L ouri, A bhijit Pandya, K rist P etersen, M ark Russinovich.
m aro san a PC I sín helyébe fog lépni. R o n ald S c h ro e d e r és Saim U ral segítségét köszönöm .
A negyedik fejezet m indig is n ép szerű volt. hiszen a szám ító g ép tényleges m ű ­ K ö szö n etét m o ndok Jim G o o d m an n ek a kön^'v, különösen a 4. és az 5. fejezet
k ö d ését m u latja be, így nagy része v álto zatlan a negyedik kiadás óta. B ár kiegé­ m eg szü letésében nyújtott segítségéért. A z övé volt az az ö tlet, hogy a Java virtuális
szült új p o n to k k al is, am elyek a Pentium 4, az U ltraS P A R C III és a 8051 m ikroar- g ép et h asználjuk, és ezáltal a könyv sokkal jo b b lett.
ch itek tú ra szintjét ism ertetik. V égül ú jfent köszönöm S uzanne soha el nem fogyó sz e re te té t és türelm et,
A z ötödik, h ato d ik és h eted ik fejezetet - új p é ld á k a t használva - szintén frissí­ am ely m ég 15 könyv m egírása u tán is kitart. B arb ara és M arvin m indig ö rö m et
tettü k , ettől eltekintve azo n b an viszonylag v álto zatlan . A h ato d ik fejezet ugyan a szereznek, es m ost m á r ők is tudják, m iből él egy ()rofesszor. A H o llan d Királyi
W indow s N T helyett a W indow s X P re n d sz e rt használja p éld a k é n t, de a tárg y alás­ M űvészeti és T udom ányos A k ad ém ia (R oyal N e th e rla n d s A cadem y o f Á rts and
nak ezen a szintjén ez alig je le n t ném i változást. Sciences) 2004-ben nekem ad o m ányozta a m ár rég ó ta áh íto tt ak adém iai profesz-
A nyolcadik fejezel ezzel szem ben je le n tő s m é rté k b e n m eg változott, hogy a szori kinevezést, ezzel m egszabadított az ak ad ém ia néhány kevésbé vonzó a sp ek ­
p árh u zam o s feldolgozás m in d en fo rm ájá b an fellelh ető új tev ék en y ség ek et köves­ tu sátó l (m in t például az unalm as, vég nélküli bizottsági ülések), am iért örökké
se. A p árh u zam o s re n d szerek ö t külö n b ö ző osztályát m u tatja be, kezdve a lapkán hálás leszek,
belüli párhuzam o sság g al (u tasításszin tű p árh u zam o sság , lap k án belüli tö b b szálú ­ Aiulrew S. Hmeiibaiiiit
ság és egylapkás m u ltip ro cesszo ro k ), folytatva a társp ro cesszo ro k k al, m egosztott
m em óriájú rendszerek k el és a szám ító g ép k lasztcrek k el (clu ster), m ajd a h á ló za t­
rács- (grid) tech n o ló g ia rövid ism ertetésével zárul. Szám os új p éld a is találh ató
eb b en a fejezetb en , a T riM edia C P U -tó l a ü lu e G e n e /L , R ed S to rm - és G oogle-
klaszterekig.
A kilencedik fejezet hivatkozásai ugyancsak je le n tő se n frissültek. A szám ító ­
g é p -arch itek tú ra d in am ik u san fejlődő te rü let. A je le n kiadás hivatkozásainak
több m int a fele a negyedik kiadás ó ta m eg jelen t íráso k ra m u tat.
1. Bevezetés

A digitális szám ítógép olyan gép, am ely a neki szóló u tasítások alapján az em b erek
szám ára p ro b lém ák at old m eg. A zt az u tasításso ro za to t, am ely leírja, hogyan o ld ­
ju n k m eg egy felad ato t, p ro g ra m n a k nevezzük. M inden egyes szám ítógép e le k tro ­
nikus áram k ö rei egyszerű u tasításo k k o rláto zo tt h alm azát k ép esek felism erni és
kö zvetlenül végrehajtani. V ég reh ajtásu k elő tt p ro g ram ja ik at ezen a halm azon kell
leírni. L eg tö b b u tasításu k ritk án bonyolultabb az alábbiaknál:

A dj össze két szám ot!


E llen ő rizz egy szám ot, vajon nulla-e!
Egy a d a to t m ásolj a szám ítógép m em ó riájáb an egyik helyről a m ásikra!

Egy szám ítógép egyszerű u tasításain ak együttese egy olyan nyelvet alkot, a m e ­
lyen az e m b e r a szám ítógéppel képes kom m unikálni. A z ilyen nyelvet gépi nyelv­
n ek nevezzük. Egy új szám ítógép tervezőinek el kell d ö n ten iü k , hogy m ilyen egy­
szerű u tasítá so k at vegyenek fel ann ak gépi nyelvébe. Á ltaláb an az egyszerű u ta ­
sításokat - a terv ezett felhasználást és teljesítm énykövetelm ényeket figyelem be
véve - a le h e tő legegyszerűbbre választják, ezzel is csökkentve az elek tro n ik a b o ­
n yolultságát és árát. É p p e n a gépi nyelvek ilyen egyszerű volta m iatt az em berek
sz ám ára h aszn álatu k nehézkes és fárasztó.
A z idők folyam án ez a felism erés v ezetett a szám ítógépek absztrakciók so ro ­
z a ta k é n t való stru k tu rálásá ra. Egy absztrakciós szint az a la tta levő absztrakciós
szintre épül. E zzel a kom plexitás kezelh etővé válik, és a szám ítógépek tervezése
szisztem atikus, szervezeti m ód o n tö rté n h e t. E zt a szem léletet nevezzük struktu­
rált szám ítógép-felépítésnek. A következő részben kifejtjük en n ek a fogalom nak
a je le n té sé t, ezt k ö v ető en pedig á ttek in tjü k tö rté n e ti fejlődését, a jelenlegi helyze­
tet, és b e m u ta tu n k n éhány fo n to sab b p éld át is.
18 l.B E V E Z E T E S
1.1. ST RU KT U R Á LT SZ Á M ÍT Ó G É P - F E L É P ÍT É S 19

1.1. Strukturált számítógép-felépítés gépi nyelve az L l, elek tro n ik u s á ram k ö rö k b ő l való m egépítése túl drága, akkor
•is írh a tu n k rá p ro g ram o k at. E zek a pro g ram o k feldolgozhatok LO nyelven írt é r ­
M ár em lítettü k , hogy óriási k ü lönbség van ak özö tt, hogy mi az, am i az em b ernek ,
telm ező k k el vagy fo rdítókkal, am elyek közvetlenül v é g reh ajtath ató k valóságosan
és mi az, am i a szám ító g ép n ek a legm egfelelőbb. A z em b e r az X d olgot akarja, de
létező szám ító gépeken. M ás szóval úgy írh atu n k p ro g ram o k at virtuális gépekre,
a szám ítógép csak az Y d o lg o t tudja. E z bizony p ro b lém a. K önyvünk célja, hogy
m in th a azok valóban léteznének.
elm agyarázza, hogyan o ld h ató fel ez a p ro b lém a.
A zért, hogy a fordítás vagy az értelm ezés a gyakorlatban is alk alm azható le­
gyen, az LO és az L l nyelv nem k ü lö n b ö z h e t,,nag y o n ”. Lz a korlát többnyire azt
jelen ti, hogy b á r az L l jo b b az LO-nál, a legtöbb alkalm azáshoz m ég m essze nem
1.1.1. Nyelvek, szintek és virtuális gépek ideális. Ez talán riasztó a n n ak fényében, hogy az L l-n c k mi is volt az e red eti célja
- m egszabadítani a p ro g ram o zó t attó l a teh ertő l, hogy olyan nyelven fogalm azzon
A p ro b lém a k ét o ldalról is m eg k ö zelíth ető . M in d k e ttő az e m b e r szám ára a gépi
m eg alg o ritm usokat, am ely inkább g ép re, m in t e m b e rre szabott. A helyzet az o n ­
nyelvnél kényelm eseb b en h aszn álh ató új u ta sítá sre n d sz e r terv ezésére épül. Az új
b an n em rem énytelen.
utasítások együttese is egy nyelvet alk o t - nevezzük ezt L l- n e k - , ugyanúgy, ahogy
A nyilvánvaló m egoldás az, hogy képezzünk utasításokból egy újabb halm azt,
a b e é p íte tt u tasításo k nyelvet alk o tn ak - legyen ez utóbbi I.O. A kétféle m eg k ö ze­
am ely az 1,1-hez k ép est m ár inkább em b e rre és kevésbé gépre szabott. Ez a h a r­
lítés ab b an különbözik egym ástól, hogy a szám ítógép hogyan h ajtja végre az L1
m ad ik h alm az is nyelvet alkot, nevezzük L 2-nek (a hozzá ta rto z ó M 2 virtuális
nyelven íro tt p ro g ram o k at, m iközben csak a saját, LO gépi nyelvén írt p ro g ra m o ­
gép p el). L 2-ben úgy írh atu n k p ro g ram o k at, m in th a valóban létezne ez az L2 gépi
kat képes végrehajtani.
nyelvű v irtuális gép. E zek a pro g ram o k L l nyelvre fo rd íth ató k vagy értelm ezh ető k
A z L1 nyelvű p ro g ram v ég reh ajtásán ak egyik m ódja az, hogy elő szö r m inden
egy L l nyelven írt fordítóval, illetve értelm ezővel.
u tasítását h elyettesítjü k az LO nyelv u tasításain ak egy vele ekvivalens sorozatával.
N yelvek egy olyan so ro zatát létrehozva, am elyben m indegyik a m egelőzőnél
A z így nyert pro g ram teljes eg észéb en az LO u tasításaib ó l áll. E k k o r az e red e ti L1
m á r k én y elm esebben h asználható, végül elju th atu n k egy szám unkra m ár m egfele­
nyelvű p ro g ram h elyett a szám ítógép ezt az LO nyelvű p ro g ram o t h ajtja végre. E zt
lőhöz. M indegyik nyelv az őt m egelőzőre épül, e z ért az ilyen m ód szert alkalm azó
a m ódszert fo rd ítá sn a k nevezzük.
szám ító g ép re úgy is tek in th etü n k , m int egym ás feletti rétegek vagy szin tek so ro ­
A m ásik m ódszer szerin t m eg íru n k egy LO nyelvű p ro g ra m o t, am ely az L I nyel­
zatá ra, ahogy az az 1.1. áb rán is láth ató . A legalsó nyelv, illetve szint a legegysze­
vű p ro g ram o k at b em e n ő a d a to k k é n t kezeli, és úgy h ajtja végre azo k at, hogy m in ­
rű b b , míg a legfelső a legkifinom ultabb.
den utasítá.sukat elem zi, és a vele ekvivalens LO nyelvű u ta sítá sso ro z a to t azonnal
végrehajtja. Ez a m ó d szer n em igényli, hogy elő szö r egy új, LO nyelvű p ro g ra m o t
Az Ln nyelvű programoiwt
állítsunk elő. A m ó d szert értelm ezésnek, a v é g reh ajtó p ro g ra m o t ped ig értelm e­ vagy egy alsóbb szinten futó
n. szint
zőnek nevezzük. értelnnező tiajtja végre,
vagy lefordítjul< vaiannely
A fo rd ítás és az érte lm e z é s m ó d szere hasonló. V égül is m in d k e ttő az LI u tasí­
alsóbb szint nyelvére.
tásait az LO utasításaib ó l álló so ro zato k végrehajtásával teljesíti. A különbség csak
az, hogy a fo rd ítás e se té b en elő szö r az egész L I nyelvű p ro g ra m o t átírju k LO nyel­
vűvé, m ajd az I.l p ro g ram tó l m eg szab ad u lu n k , és az LO p ro g ra m o t töltjü k a szá­ 3. szint
Az L2 nyelvű programokat
m ítógép m em óriájáb a, és azt h ajtjuk végre. A v ég reh ajtás so rán az ú jo n n a n elő ál­ vagy az Ml (esetleg az MO)
líto tt LO pro g ram az, am i fut, és am i a szám ító g ép et vezérli. gépen futó értelmező
hajtja végre, vagy lefordítjuk
A z értelm ezés esetéb en LI m inden u tasításán ak elem zését és d ek ó d o lását az u ta ­ az Ll (esetleg az LO) nyelvre.
2. szint
sítás azonnali végrehajtása követi. N em keletkezik lefo rd íto tt program . A szám ító­
gépet az értelm ező vezérli, szám ára az L I nyelvű pro g ram csak adat. M indkét m ó d ­ Az Ll nyelvű programokat
szert - és egyre gyakrabban a k ettő kom binációját is - széles körben alkalm azzák. vagy az MO gépen futó
értelmező hajtja végre,
A helyett, hogy a ford ítás, illetve érte lm e z é s fo g alo m k ö réb en m arad n á n k , egy­ 1. szint vagy lefordítjuk az LO nyelvre.
szerűbb, ha egy h ip o tetik u s, m ásk én t nevezve virtuális g ép et k ép zelü n k m agunk
elé, am elynek gépi nyelve az L L N evezzük ezt a virtu ális g ép e t M l-n e k (az LO-nak
Az LO nyelvű programokat
m egfelelő valódi g ép et pedig MO-nak). Ila az M l g ép et elég olcsón m eg tu d n á n k közvetlenül az elektronikus
építeni, nem len n e szükségünk sem m iféle LO nyelvre, sem LO p ro g ra m o k a t vég­ 0. szint áramkörök hajtják végre.
re h a jtó g épre. P rogram jaink;it egyszerűen L I nyelven írnánk, am ely ek et az M l
szám ítógép közvetlenül v ég reh ajtan a. M ég ha a n n ak a virtuális gép n ek , am elynek
1.1. ábra. Egy többszintű gép
20 1 .B E V E Z E T É S
1.1. ST RU K T U R Á LT SZ Á M ÍT Ó G É P - F E L É P ÍT É S 21

A nyelvek és a virtuális g ép ek k ö zö tt szoros k ap cso lat van. M in d en g ép n ek van


saját gépi nyelve, am ely a gép által v é g re h a jth a tó u tasításo k eg y ü tteséb ő l áll, azaz
egy gép definiál egy nyelvet. H a so n ló a n egy nyelv is definiál egy g ép et, n ev e ze te ­
sen azt a g ép et, am ely k ép es az ezen a nyelven írt b árm ely p ro g ra m v é g re h a jtá ­
sára. T erm észetesen egy nyelv által d efiniált gép elek tro n ik u s ára m k ö rö k b ő l való
közvetlen m eg ép ítése e lk ép e sztő en b onyolult és d rág a is leh et, d e n em elk ép z el­
h etetlen . Egy C, C-l- -I- vagy Jav a gépi nyelvű gép való b an b onyolult, de a m ai te c h ­
nológiák m ellett könnyen m e g é p íth e tő lenne. A lap o s ok a van azo n b an annak,
hogy ilyen g ép ek n e m ép ü ln ek : n e m len n e k ö ltség h aték o n y m ás m ó d szerek k el
összehasonlítva. Ö n m ag áb an az m ég n em elég, hogy v alam it m eg leh e t csinálni:
egy gyakorlatias elg o n d o lásn ak k ö ltség h aték o n y n ak is kell lennie.
Egy n szintű szám ító g ép et n k ü lö n b ö ző v irtuális g é p n ek is tek in th e tü n k , ahol
m indegyikük ren d elk ezik a saját gépi nyelvével. A „szint” és a „virtuális g é p ” ki­
fejezéseket egym ással felcse ré lh e tő fo g alm ak k én t fogjuk h asználni. C sak az LO
nyelven írt p ro g ra m o k a t k é p esek az elek tro n ik u s ára m k ö rö k k ö zvetlenül v ég re­
h ajtan i anélkül, hogy fo rd ítá st vagy értelm ez é st k ellen e k ö zb eik tatn u n k . A z L l,
L2, nyelvű p ro g ram o k at vagy egy alsóbb szinten fu tó értelm ező v el kell vég­
reh a jta tn u n k , vagy le kell fo rd íta n u n k az alsóbb szint nyelvére.
A m ik o r valaki az n. szintű v irtuális g ép re ír p ro g ram o k a t, n em kell tö rő d n ie a
szükséges értelm ező k k el és fo rd ító k k al. A g ép felép ítése b iztosítja, hogy p ro g ­
ram jai valahogyan v ég reh ajth ató k . É rd e k te le n , hogy a p ro g ra m o t egy érte lm ez ő 1.2. ábra. Egy hatszintű számítógép. Az egyes szinteket megvalósító módszert a szint alatt
lép ésen k én t fogja v ég reh ajtan i, az érte lm e z ő t m ag át m eg int egy m ásik értelm ező , jelöltük (zárójelben a megvalósító program nevével)
vagy esetleg m ár az e le k tro n ik a teljesíti a fela d a to t. A z ered m én y m in d k ét esetb en
ugyanaz: a p ro g ram o k v ég reh ajtása m eg tö rtén ik . zisztorok, szerepük szerint digitális eszközöknek tek in th ető k . M inden k ap u n ak
A z n szintű g é p e k et h aszn áló p ro g ram o zó k tö b b sé g én e k esak a legfelső szin­ egy vagy tö b b digitális b e m e n e te van (a ü vagy az 1 é rté k e t re p re z e n tá ló jelek ),
te t kell ism ernie, am i a legalsó szint gépi nyelvéhez a legkevésbé h asonlít. A kik k im e n e tk é n t pedig ezekből egyszerű függvényértékeket szám olnak ki, m int am i­
viszont kíváncsiak, hogy hogyan is m ű k ö d ik v aló jáb an egy szám ítógép, azoknak lyen az A N D (logikai „és”) vagy az O R (logikai „vagy”). Egy k ap u legfeljebb n é ­
m inden szintet ta n u lm án y o zn iu k kell. Ú j szám ító g ép ek vagy új szintek (azaz új h ány tran ziszto rb ó l áll. N éhány k ap u b ó l összeállítható egy 1 b ites m em ória, am ely
virtuális g ép ek ) terv ező in ek a legfelső m ellett tö b b m ás szin tet is ism ern iü k kell. A a 0 vagy az 1 é rté k e t képes tárolni. A z 1 b ites m e m ó riák at 16-os, 32-es vagy 64-es
szintek so ro zatáb ó l felép ü lő g ép ek terv ezésén ek elveiről és m ó d szereirő l, továbbá c so p o rto k b a rendezve k észíth etü n k p éld áu l reg iszterek et. M in d en regiszterben
a szintek részleteirő l szól könyvünk je le n tő s része. m e g h a tá ro z o tt é rté k h a tá rig egy bináris szám ot táro lh a tu n k . K apukból ép íth etjü k
fel m ag át az aritm etik ai egységet is. A k ap u k a t és a digitális logika szintjét a 3. fe ­
je z e tb e n tárgyaljuk részletesen.
1.1.2. Korszerű többszintű számítógépek A követk ező felsőbb szint a m ikroarehitektúra szintje. E zen a szinten találjuk az
(álta láb a n ) 8 -3 2 elem ű, lokális m em ó riak én t használt regiszterk észletet és az ún.
A legtöbb m ai szám ítógép két- vagy többszintű. M ég az 1.2. á b ra szerinti h atszintű aritm etikai-logikai egységet (Arithmetic Logic U nit, ALU), am ely az egyszerű a rit­
gépek is léteznek. A lul a 0. szint a gép valódi h ardvere. E n n ek az áram k ö re i hajtják m etikai m ű v eletek elvégzésére képes. A regiszterek az A L U -hoz kapcsolódnak,
végre az 1. szintű gépi nyelvű p ro g ram o k at. A teljesség k e d v éért m eg kell jegyez­ az a d a to k á ram lásán ak ú tja az adatút. A z a d a tú t a lap felad ata az, hogy kiválasszon
nünk, hogy a m i 0. szintünk a latt is van m ég egy szint. E z az ún. eszközszint az e le k t­ egy vagy k ét regisztert, az A L U -val m űveletet végeztessen el rajtu k (például adja
ronikai tervezés világához tarto zik (és így könyvünk tárg y k ö rén kívül esik), am elyet össze a tarta lm u k a t), az ered m én y t pedig valam elyik reg iszterb en tárolja.
az áb ra nem tartalm az. E zen a szinten találja a tervező az egyes tran ziszto ro k at, Egyes g ép ek en az a d a tú t m ű k ö d ését az ún. m ikroprogram vezérli, m íg m ás g é­
m int a szám ítógép-tervezés legalsó szintű építőköveit. A zzal a k érdéssel, hogy h o ­ p e k e n a vezérlés közvetlenül a h ard v er felad ata. K önyvünk első h áro m k iad ásá­
gyan m ű k ö d n ek a tran ziszto ro k , m á r a szilárdtestfizika te rü le té re v etődünk. b an ezt a szintet „m ik ro p ro g ram szin tn ek ” neveztük azért, m ert ezen a szinten a
A z általu n k vizsgált legalsó, digitális logika szintjén a kapuk a lényeges e le ­ m ú ltb an szinte kivétel nélkül szo ftv erértelm ező t használtak. A z a d a tu ta t m a n a p ­
m ek. B ár a k ap u k olyan an aló g alk atrészek b ő l é p ü ln ek fel, m in t p é ld áu l a tran - ság gyakran (legalább is részb en ) közvetlenül a h ard v er vezérli, e m iatt v á lto z ta t­
tu n k az elnevezésen.
22 1 .B E V E Z E T É S 1,1. ST RU K T U R Á LT S Z Á M ÍT Ó G ÉP - FEL É P ÍT ÉS 23

A zokon a g ép ek en , am elyeken az a d a lú t szoftvervezéricsű, a m ik ro p ro g ram A 4., az assem bly nyelv szintje valójában az alsóbb szintekhez ta rto z ó nyelvek
egy értelm ező p ro g ram , am ely a 2. szintű utabításokat egy en k én t b etö lti, elem zi szim bolikus form ája. E zen a szinten leh et az 1., 2. és 3. szintekre p ro g ram o t írni
és az a d a tu ta t használva végrehajtja. A z A D D u tasítás e se té b e n p éld áu l b etö lti az azok v irtuális gép ein ek saját nyelveinél kényelm esebb nyelven. A z assem bly nyel­
utasítást, m eg keresi és reg iszte rek b e helyezi az o p e ra n d u sa it, az A L U kiszám olja vű p ro g ra m o k a t elő szö r lefordítjuk az 1., 2. vagy 3. szint nyelvére, m ajd értelm ez-
az összeget, végül az e red m én y t a m egfelelő helyre elküldi. H a a g ép en az a d a tú t te tjü k a m eg felelő virtuális vagy valódi géppel. A fo rd ítá st végző p ro g ram o t a s­
h ardv ervezerlésű , a k k o r is h aso n ló k az egyes lépések, csak a k k o r n em tá ro lt p ro g ­ sem blernek nevezzük.
ram vezérli a 2, szintű u tasításo k értelm ezését. A 5. szint nyelveit az alkalm azási fe la d a to k a t m egoldó p ro g ram o zó k n ak te rv e ­
A 2. szintet utasításrendszer-architektúra szintjének (Instruction Set Arehi- zik. A z ilyen nyelveket szokták m agas szintű nyelveknek nevezni, és több száz van
tecture, ISA -szint) nevezzük. M inden szám ító g ép g y ártó v állalat az általa fo rg al­ belőlük. N éh ány az ism erteb b ek közül: C, C-l- -I-, Java, LISP, Prolog. Az ezeken írt
m azott gépek h ez ad egy kézikönyvet „A gépi nyelv re feren c ia kézikönyve”, „A p ro g ram o k a t általáb an a 3. vagy a 4. szint nyelvére fo rd ítják az ún. f(»rdítóprog-
W estern W om bat M o d el lüOX szám ítógép m ű k ö d ésén ek elvei” vagy valam i h a ­ ramok, de e se te n k é n t találk o zu n k értelm ező k k el is. A Jav a-p ro g ram o k at például
sonló cím m el. E zek általáb an az ISA -szintről szólnak, az alacsonyabb szin tek et elő szö r egy ISA -szerű nyelvre. Java b á jtk ó d ra szokták fo rd ítan i, am elyet azután
nem tárgyalják. A gépi u ta sítá sre n d sz e r leírása tu la jd o n k é p p en n em m ás, m int egy é rtelm e z ő hajt végre.
azoknak az u tasítá so k n a k a leírása, am elyeket a m ik ro p ro g ram vagy a h a rd v e r­ N é h a az 5. szint egy speciális alkalm azási te rü le tre , például a szim bolikus m a ­
vég reh ajtó á ra m k ö r értelm ez. 1la a gyártó k étféle ISA -szintű érte lm e z ő t biztosít te m a tik á ra k idolgozott értelm ező . E z a te rü le te n felm erü lő p ro b lém ák m eg o ld á­
ugyanahhoz a szám ító g ép éh ez, két „gépi nyelv” re feren c ia kézikönyvet kell adnia, sához az a d a to k a t és m ű v eletek et olyan fo rm áb an biztosítja, am elyet a te rü leten
egyet-egyet m indeg)'ik értelm ező h ö z. já rta s szak em berek könnyen m eg érten ek .
A következő szint á ltaláb an egy k ev ert szint. A szint nyelvéhez ta rto z ó u ta sítá ­ Ö sszefoglalásként em lék eztetü n k a rra, hogy a szám ító g ép ek et egym ásra ép ü lő
sok többsége az ISA -szinten is m egvan. (Sem m i ak adálya a n n ak , hogy valam ely szintek so ro z a ta k é n t tervezik. M inden szint egy ön álló absztrakciónak felel m eg
szint u tasításai m ás szintek u ta sítá sa i k ö z ö tt is szerep eljen ek .) E z e n felül a szint kü lö n b ö ző elem ek k el és m űveletekkel. A szám ítógépek ilyen terv ezése és ta n u l­
új utasításokkal, e lté rő m em óriaszervezéssel, tö b b p ro g ram egyidejű fu tta tá sá n a k m ányozása során időlegesen e lte k in th e tü n k a lényegtelen részletek tő l, ezzel egy
képességével és eg)’éb tu lajd o n ság o k k al rend elk ezik . A 3. szinten sokkal v álto za­ b onyolult tárgyat k ö nnyeb ben é rth e tő re szűkíthetünk.
to sabbak a konstru k ció k , m in t az 1. vagy a 2. szinten. Egy-egy szint ad attíp u sain ak , m ű v eletein ek és szolgáltatásainak összességét a
A 3. szint új szo lg áltatásait a 2. szinten fu tó é rte lm ez ő b iztosítja, am elyet hagyo­ szint architektúrájának nevezzük. A z arc h ite k tú ra a szint használója által lá th a ­
m ányosan o p eráció s re n d sz e rn e k szo k tu n k nevezni. A 2. szintről ö rö k ö lt 3. szin­ tó tu lajd o n ság o k at foglalja egységbe. A p ro g ram o zó által lá th a tó tulajdonságok,
tű u tasításo k at n em az o p eráció s ren d szer, h a n e m közvetlen ü l a m ik ro p ro g ram m in t p éld áu l, hogy m ennyi a ren d elk ezésre álló m em ó ria, az a rc h itek tú ráh o z ta r­
(vagy a h ard v er) h ajtja végre. M ásk én t fogalm azva, a 3. szintű u tasításo k egy r é ­ to zn ak . A m egvalósítás részletei - p éldául, hogy m ilyen áram k ö ri elem ek valósít­
szét az o perációs ren d szer, m ás részét k ö zvetlenül a m ik ro p ro g ram értelm ezi. E zt já k m eg a m em ó riát - nem része az a rc h itek tú rán ak . A pro g ram o zó által láth ató
értjü k a „k ev ert” szint elnevezés alatt. K önyvünkben ezt a szin tet operációs rend­ szám ítógépes ren d szerelem ek tervezésével a szám ítógép-architektúra foglalko­
szer gép szintjének nevezzük. zik. A hétk()znapi g y akorlatban a szám ító g ép -arch itek tú ra és a szám ítógépek fel­
A 3. és a 4. szint k ö zö tt alap v ető e lté ré s van. A z alsó h áro m szintet nem egysze­ ép ítése lényegében ugyanazt jelen tik .
rű h étközn api p ro g ra m o z ó k n ak találták ki, azok első so rb an a m ag asab b szinteken
szükséges értelm e ző k és fo rd ító k fu tta tá sá ra szolgálnak. E zek e t az értelm ező k et
és fo rd ító k at rendszerprogram ozók írják, akik új v irtuális g ép ek te rv ezésére és 1.1.3. A többszintű számítógépek fejlődése
m egvalósítására szakosodtak. A 4. és az e fölötti szin tek et az alkalm azási fe la d a to ­
kat m egoldó p ro g ra m o z ó k n a k szánták. A hh oz, hogy a többszintű g épekről ném i á ttek in tést nyújtsunk, röviden m egvizsgál­
A 4. szint és a m agasabb szintek m egvalósításának m ó d jáb an is v áltozás van. A ju k tö rté n e ti fejlődésüket, m egm utatjuk, hogy az évek során hogyan n ő tt a szintek
2. és a 3. szin tet m indig értelm ező v el, míg a 4. szin tet és az e fö lö ttiek e t általáb an szám a, és hogyan b ő\ ültek a szintek szolgáltatásai. A szám ítógép valódi gépi nyel­
- de nem m indig - fordítóval valósítják m eg. vén írt p ro g ram o k at (1. szint) a szám ítógép elektronikus áram körei (0. szint) köz­
A z 1., 2. és 3. szint, illetve a 4., 5. és m ag asab b szintek nyelveinek te rm é sz e té b e n v etlenül végre tudják hajtani, értelm ező vagy fo rd ító nem szükséges. E zek az e lek t­
találh atju k a további kü lö n b ség et. A z 1., 2. és 3. szint gépi nyelvei n u m erik u sak , a ro n ik u s áram körök, valam int a m em ória és a b em en eti/k im en eti eszktizök alkotják
rajtu k írt p ro g ram o k hosszú szám so ro zato k , am i kedvező a gépek, de k edvezőtlen a szám ítógép hardverét. A h ard v er kézzelfogható dolgokból áll - integrált áram k ö ­
az em b er szám ára. A 4. szinttől k ezd ő d ő en a nyelvek szavakból és az e m b e r szá­ rök, n y o m tato tt áram köri kártyák, kábelek, áram fo rráso k , m em óriák, nyom tatók
m ára is jelen téssel bíró rövidítésekből állnak. nem pedig absztrakt fogalm akból, algoritm usokból vagy utasításokból.
24 1. B E V E Z E T É S 1.1. ST RU K T U R Á LT S Z Á M ÍT Ó G ÉP - FEL É P ÍT ÉS 25

A szoftver viszont algoritm usokból (részletes elő írás a rra v o n atk o zó a n , hogy Az operációs rendszer feltalálása
hogyan kell valam it v ég reh ajtan i) és azok szám ító g ép es re p rezen táció ib ó l, azaz
program o k b ó l áll. P ro g ram o k at tá ro lh a tu n k m erev- vagy h ajlék o n y lem ezek en , E zek b en a k orai években a legtö bb szám ítógép „aki kapja, m a rja ” elven üzem elt,
C D -R O M -o n vagy m ás a d a th o rd o zó n , de a szoftver lényege a p ro g ra m o t alkotó am i azt je le n te tte , hogy a g é p et a p ro g ram o zó szem élyesen kezelte. M inden gép
u tasításso ro zat, n em pedig a fizikai a d a th o rd o z ó , am elyen tároljuk. m e lle tt elhelyeztek egy időbeosztó lapo t, és a pro g ram o zó , ha p ro g ram já t fu ttatn i
A legelső szám ító g ép ek e se téb e n kristálytiszta volt a h a rd v e r és a szoftver k ö ­ ak arta , lefoglalt egy intervallum ot, m o ndjuk szerda reggel 3-tól 5-ig (szám os p ro g ­
zötti h atár. Idő k ö zb en az o n b an ez egyre inkább e lh o m ály o so d o tt, n e m k ism ér­ ra m o zó sz e re te tt a g é p te re m csend es időszakaiban dolgozni). A m ik o r eljö tt az
ték b en é p p en azért, m e rt a szám ító g ép ek fejlődésével a szintek szap o ro d tak , idő, a p ro g ram o zó - egyik k ezéb en egy lád a 80 oszlopos lyukkártyával (az akkori
eltű n tek , összefo n ó d tak . M a m á r n eh éz is a m e g k ü lö n b ö ztetés (V ahid, 2003). b e m e n e ti ad ath o rd o zó v al), m ásik kezében egy hegyes ceruzával - b e lé p e tt a g é p ­
K önyvünk egy lényeges n éző p o n tja é p p e n az, hogy terem b e. É rk ezését k övetően u d variasan az ajtó felé tessék elte az elő tte o tt d o lgo­
zó p ro g ram o zó t, m ajd átv ette a szám ítógépet.
a hardver és a szoftver logikailag ekvivalens. H a F O R T R A N -p ro g ram o t ak art fu ttatn i, ak k o r a következő lépések m e g té te ­
lére kényszerült:
B árm ely szoftverrel v é g reh ajth a tó m űvelet b e é p íth e tő közvetlen ü l a h ard v erb e
is, de ez csak a zu tá n aján lato s, h a m eg felelő en m eg ism ertü k . K arén P a n e tta L en tz 1. Á tszalad t a p ro g ram k ö n y v tárak at tá ro ló szekrényhez, kivette a F O R T R A N -for-
m ondta: „A h ard v e r m eg k ö v esed ett szoftver.” T erm észetesen fo rd ítv a is igaz: b á r­ d ító felira tú nagy zöld ládát, ta rta lm á t a kártyaolvasóba helyezte, és m egnyom ta
mely h ard v errel v é g re h ajth a tó u tasítás szoftverrel is szim ulálható. A n n a k e ld ö n ­ az in d ítógom bot.
téséb en , hogy m ely függvényeket valósítsuk m eg h a rd v e rb e n és m elyeket szoft­ 2. F O R T R A N -p ro g ram ját a kártyao lvasóba helyezte, és m egnyom ta a folytatás
v erb en , az ár, a sebesség, a m eg b ízh ató ság és a v álto ztatás gyakoriságának szem ­ gom b ot, m ire p ro g ram já t a gép beolvasta.
pontjai k ap n ak szerep et. K evés szigorú szabályt talá lu n k a rra nézve, hogy X m iért 3. A m ik o r a szám ítógép m egállt, m ég egyszer b eo lv astatta a F O R T R A N -p ro g ra-
h ard v erb en és Y m ié rt szoftverben v aló sítan d ó m eg. D ö n té se in k e t a techn o ló g ia m ot. N ém elyik fo rd ító n ak ugyan csak egyszer k ellett végigolvasnia a b e m en e tel,
és a szám ítógépek felh aszn álásán ak fejlődése befolyásolja. tö b b ség ü k n ek azo n b an k étszer vagy többször. M in d en olvasási m e n etb en a vas­
tag k árty a k ö teg et ú jra k e lle tt olvasni.
4. V égül a fo rd ítás a végéhez k ö zeled ett. A vége felé a p ro g ram o zó gyakran id e ­
A m ikroprogram ozás feltalálása g esk ed ett, hiszen h a a fo rd ító p ro g ram h ib á t talált, ki k ellett javítania, és az
egész eljárást m eg k ellett ism ételnie. H a nem volt hiba, a fo rd ító az elkészült
A z 1940-es években az első digitális szám ító g ép ek m ég csak k étszin tű ek voltak: az gépi nyelvű p ro g ra m o t lyukkártyára lyukasztotta.
ISA -szint, am elyen a p ro g ra m o k a t írták, és a digitális logika szintje, am ely e p ro g ­ 5. A p ro g ram o zó ezu tá n a gépi nyelvű p ro g ram o t és az eljáráskönyvtár k ö teg ét a
ra m o k at v ég reh a jto tta . A digitális logika szin tjén ek á ra m k ö re i bony o lu ltak , n e h e ­ kárty ao lv asóba helyezte, és m in d k ettő t beo lv astatta.
zen á tte k in th e tő k és m eg ép íth ető k , valam int m eg b ízh atatlan o k voltak. 6. A p ro g ram vég reh ajtása m egkezdődött. A legtöbb esetb en a pro g ram nem m ű ­
M aurice W ilkes, a U niversity o f C am bridge k u tató ja, 1951-ben azt jav aso l­ k ö d ö tt, m en etk ö zb en valahol v áratlan u l leállt. Á ltaláb an a pro g ram o zó b a b ­
ta, hogy a h ard v er je le n tő s eg yszerűsítésére h áro m szin tű szám ító g ép et terv ezze­ rá lt egy kicsit a v ezérlőpult kapcsolóival és n ézeg ette a jelző lám p ák at. H a sze­
nek (W ilkes, 1951). A g ép n ek b e é p íte tt, m e g v álto z tath a ta tla n érte lm ez ő je lenne ren cséje volt, k italálta mi a baj, kijavította a hibát, visszaszaladt a nagy zöld
(a m ik ro p ro g ram ), am elynek a fe la d a ta az ISA -szintű p ro g ra m o k értelm ezéssel F O R T R A N -fo rd ító t tartalm azó szekrényhez, és kezdte az egészet elölről. H a
tö rté n ő végrehajtása. M ivel így a h ard v ern e k csak az igen szűk u tasításk észletű n em volt szerencséje, k in y o m tatta a m em ó ria ta rta lm á t, és ezt a tnemóriatnáso-
m ik ro p ro g ram o t k ellen e v é g reh ajtan ia a jóval bővebb u tasításk észletű ISA -szintű la to t (core dutnp) hazavitte tanulm ányozni.
pro g ram o k helyett, sokkal kevesebb elek tro n ik u s á ram k ö rre len n e szükség. E z az
egyszerűsítés a vákuum csöves elek tro n ik u s á ra m k ö rö k k o ráb an a csövek szám á­ Kis k ü lönbségekkel évekig ez volt az általán o s eljárás sok szám ítóközpontban.
n ak csö k k en tését, ezzel a m eg b ízh ató ság n övelését (azaz a n ap i ö sszeom lások szá­ A p ro g ra m o zó n ak m eg k ellett tan u ln ia, hogyan m ű ködik a szám ítógép, és m it kell
m án ak csök kenését) ígérte. ten n ie, ha leáll, am i elég gyakran előfordult. A gép gyakran csak v árak o zo tt, am íg
N éhány ilyen h áro m szin tű g ép et m eg is é p íte tte k az 1950-es, és m ég tö b b e t az az e m b e rek a k árty ák at a g ép te re m b e n ide-o d a h o rd o zg atták , vagy azon tö rté k a
1960-as években. 1970-re m á r az volt az u ralk o d ó elv, hogy az ISA -szint é rte lm e ­ fejü k et, m ié rt is nem m űködik a p ro g ram ju k ren d esen .
zése m ik ro p ro g ram m al tö rté n je n , ne p ed ig közvetlen ü l elek tro n ik u s m egvalósí­ 1960 kö rü l a gépkezelő fe lad atán ak autom atizálásával m egkísérelték az elveszte­
tással. M inden akkori kom olyabb szám ítógép így m ű k ö d ö tt. g e te tt idő csökkentését. Az operációs rendszernek nevezett p ro g ra m o t állandóan
a szám ító g épben tárolták. A pro g ram o zó v ezérlőkártyákat csatolt a program jáho z,
1 .B E V E Z E T É S
26 1.1, ST RU K T U R Á LT S Z Á M lT Ó G ÉP - FEL É P ÍT ÉS 27

ezt olvasta be és h a jto tta v égre az o p eráció s ren d szer. A z F M S -nek (F O R T R A N operációs rendszeri m akroutasításoknak vagy felügyelő (supervisor) hívásoknak
M o n ito r System , IB M 709), az egyik első, széles k ö rb en e lte rjed t o p eráció s re n d ­ nevezték. M a rendszerhívás az elfogadott nevük.
szernek szóló egyszerű kártyacsom ag felép ítését m u tatja be az 1.3. ábra. A z o p erációs ren d szerek m ás te k in tetb en is fejlődtek. A korai változato k kár-
ty ak ö teg ek et olvastak, és so rn y o m tató ra nyom tattak. E zek voltak a kötegelt rend­
*JOB, 5494, BARBARA szerek. Á ltaláb an tö b b ó ra telt el a p ro g ram o k lead ása és az ered m én y ek kézhez­
*XEQ
vétele k özött. Ilyen körülm ények k ö zö tt a program fejlesztés nehézk es volt.
^FORTRAN
A z 1960-as évek elején a D a rtm o u th C ollege, az M. I. T és m ás in tézetek k u ta ­
tói olyan o p eráció s ren d sz e re k e t fe jle s/te tte k ki, am elyek b izto síto tták a p ro g ra ­
m o zó n ak (a k á r tö b b n ek is egyidejűleg) a szám ítógéppel való közvetlen kom nnini-
FORTRAN- kációt. A központi szám ítógépet ezeken a ren d szerek en telefonvonalak k ö tö ttek
program össze a távoli term inálokkal. A szám ítógépet a sok felhasználó m egosztva haszn ál­
ta. A hivatalokban, az o tth o n i garázsokban és b árhol, ahol term in ált helyeztek cl,
a p ro g ram o zó k b e g é p elh ették p ro g ram jaik at, és m ajdnem azonnal v isszakaphat­
*DATA tá k a fu tta tá su k eredm ényeit. E zek et a ren d sz e re k e t nevezzük időosztásos rend­
szereknek.
A z o p eráció s ren d szerek b ő l m inket inkább a 3. .szinten m egvalósított, és az ISA-
szintcn nem létező utasításo k és tulajdonságok érd ek eln ek , m int az időosztás k é r­
Adat­
dései. B ár k ülön nem hangsúlyozzuk, legyünk tu d a tá b a n annak, hogy az operációs
kártyák
re n d sz er jóval több, m int az ISA -szinthez h o zzátett tulajd o n ság o k m egvalósítása.

*END A szolgáltatások átterelése a m ikroprogram szintjére

1.3. ábra. Egy egyszerű feladat az FMS operációs rendszeren


A m ik ro p ro g ram o zás széles k ö rű e lterjed ésén ek idejére (1970-re) a tervezők ész­
rev ették , hogy új u tasításo k at a m ik ro p ro g ram bővítésével is létre tu d n ak hozni.
A z o p erációs re n d sz e r beo lv asta a *JO B k árty át, és a ra jta lévő info rm áció t
M ás szóval a „ h a rd v e rt” bővíteni lehet (új gépi utasításo k k al) program ozással. Ez
könyvelési célok ra használta. (A csillagot a vezérlő k árty ák m e g k ü lö n b ö zte té sé ­
a felism erés a gépi u tasításren d sz erek szinte ro b b an ásszerű fejlődéséhez v ezetett.
re használták, így azok nem k ev ered tek össze a p ro g ram - és az ad atk á rty ák k al.)
A tervezők versenyeztek az egyre bővebb és haszn álh ató b b u tasításren d sz erek
K ésőbb beolvasta a ^ F O R T R A N k ártyái, am ely a F O R T R A N -fo rd ító n ak m ág n es­ elő állításáb an. Az utasítások jó része nem volt n élk ü lö zh etetlen abb an az é rte ­
szalagról való b e tö lté sé t e red m én y ezte. A fo rd ító e z u tá n b eo lv asta és lefo rd íto tta
lem ben, hogy a m eglévő utasításokk al is m egvalósíthatók voltak, de sebességben
a F O R I'R A N -p ro g ra m o t. A fo rd ítás b efejeztével a v ezérlés visszakerült az o p e rá ­
többnyire m eg h alad ták a létező utasításo k sorozatával e lé rh e tő sebességet. Sok
ciós rendszerhez, és m e g tö rté n t a * D A IA kártya beolvasása. E z a le fo rd íto tt p ro g ­
g ép en p éld ául létezett az INC (IN C re m e n t) utasítás, am ely eggyel növelt egy szá­
ram v ég reh ajtására u ta síto tt a *DATA kárty át k ö v ető k ártyák ta rta lm á n a k a d a t­
m ot. E zeken a gép ek en m egvolt az általános ADD utasítás is, e z ért ann ak az 1 hoz­
ként való használatával.
záad ására specializált v álto zata nem volt n élk ü lö zh etetlen (ahogy nyilvánvalóan a
B ár az o peráció s ren d sze rt e lső so rb an a gép k ezelő (o p e rá to r) m u n k á já n a k a u ­
720 h o zzáad ására specializált sem ). A z INC azonban m eg m arad t, m ert általáb an
to m atizálására terv ezték (ebből szárm azik a neve is), egyben egy új virtuális gép
kicsit gyorsabb volt, m int az ADD.
fejlesztésének irán y áb a te tt első lép és is volt. A *F O R T R A N k árty át egy virtuális
U gyanebből a m egfontolásból nagyon sok m ás u tasítást is felvettek a m ikro-
„fordítsd le a p ro g ra m o t” u tasításn ak , a *DATA k árty át p edig egy v irtuális „hajtsd
p ro g ram b a. E zek k ö z ö tt gyakran a következők szerepeltek:
végre a p ro g ra m o t” u tasításn ak is tek in th etjü k . E z a csu p án két u tasítá st ta rta lm a ­
zó szint nem te k in th e tő igazán ön álló szintnek, de nyitás volt afelé.
1. egészek szorzásának és osztásának m űveletei;
A következő években az o p eráció s re n d szerek egyre k ifin o m u ltab b ak k á váltak.
2. leb eg ő p o n tos aritm etika;
Új utasítások, szolgáltatások és tu lajd o n ság o k k e rü ltek az ISA -szint fölé, míg vé­
3. eljárást hívó és eljárásból visszatérő utasítások;
gül egy valódi új szint k e zd e tt köi-vonalazódni. A z új szint u tasításain ak egy része
4. ciklusokat gyorsító utasítások;
m egegyezett az ISA -szintű u tasításo k k al, m ások viszont - k ü lö n ö sen a b em e n e ti/
5. k a ra k te rso ro z a to k a t kezelő függvények.
k im eneti utasításo k - ezektől alap jaib an k ü lönböztek. A z új u tasítá so k a t gyakran
28 1 .B E V E Z E T É S 2. M ÉR F Ö L D K Ö V EK A SZ Á M ÍT Ó G É P E K F E L É P ÍT É S É B E N 29

A m int a tervezők észrev ették , hogy milyen egyszerű az új u tasításo k felvétele, lentős régebbi fejlesztést, am iből jo b b an m egism erhetjük, hogy hogyan ju to ttu n k
kezdtek új tu lajd o n ság o k at is b eép íte n i m ik ro p ro g ram jaik b a. N éhány ezek közül: odáig, ahol m ost ta rtu n k . M o n d an u n k sem kell. hogy a fejezet csak a fontosabb
d o lg o k at érinti, és sok m inden m arad em lítés nélkül. Az 1.4. áb ra a fejezetben
1. T ö m b ö k k el való szám ításo k at felgyorsító tu lajd o n ság o k (indexelés, in d irek t tárgyalt m érfö ld k ő n e k te k in th e tő g ép ek et sorolja fel. A szám ítógépek korszakát
cím zés). m eg alap o zó szem élyekről S later könyvében (S later, 1987) k itű n ő kiegészítő tö r­
2. A p ro g ram o k m em ó riáb an való áth ely ezésén ek leh ető ség e fu tás k ö zb en (relo- té n e ti anyagot találunk. U gyanezekről L ouis Fábián B aeh rach csodálatos színes
káció). fényképeivel illusztrált rövid életrajzo k at közöl M organ album a (M organ, 1997).
3. A m egszakítások ren d szere, am elyen keresztü l a szám ító g ép jelzést k a p h a t a
b em en e ti és k im en eti m ű v eletek b efejező d ésérő l. Év Számítógép neve Megépítő Megjegyzés
4. K épesség arra, hogy n éh án y u tasítással felfüggesszük az egyik, és folytassuk a
1834 Analitil<us gép Babbage Az első kísérlet digitális számítógép
m ásik p ro g ram o t (p ro cesszu sátk ap cso lás).
megépítésére.
5. Speciális utasításo k hang-, videó- és m u ltim éd ia-fájlo k feldolgozására. 1936 Z1 Zuse Az első jelfogós számológép.
1943 COLOSSUS Brit kormány Az első elektronikus számítógép.
Szám os egyéb tu lajd o n ság o t és szo lg áltatást é p íte tte k be az évek során, többnyire 1944 Marki Aiken Az első amerikai általános célú számítógép.
bizonyos speciális tevékenységek felgyorsítására. 1946 ENIACI Eckert/Mauchley A mai számítógépek történetének kezdete.
1949 EDSAC Wilkes Az első tárolt programú számítógép.
1951 Whirlwind 1 M. I.T Az első valós idejű számítógép.
A m ikroprogram ozás száműzetése 1952 lAS Neunnann János A legtöbb mai gépnél is ezt a felépítést
alkalmazzák.
A m ik ro p ro g ram o zás aran y k o rá b a n (az 1960-as és 1970-es év ek b en ) a m ik ro p ro g - 1960 PDP-1 DEC Az első miniszámítógép (50 eladott példány).
ram o k „m eg h ízlak ”. A hogy egyre tö b b e t és tö b b e t foglaltak m ag u k b a, úgy le tte k 1961 1401 IBM A rendkívül népszerű vállalati kisgép.
egyre lassabbak és lassabbak. V égül néh án y k u ta tó felism erte, hogy m ik ro p ro g ra ­ 1962 7094 IBM Az 1960-as évek elején a tudományos
m ozás nélkül, csu p án az u tasításk észlet rad ik ális csökkentésével és a m eg m arad ó számítások uralkodó géptípusa.
1963 B5000 Burroughs Az első magas szintű nyelvre tervezett gép.
u tasítások közvetlen v ég reh ajtásáv al (azaz az a d a tú th a rd v e r vezérlésével) a gép ek
1964 360 IBM Az első számítógépcsaládként tervezett
felgyorsíthatók. B izonyos é rte le m b e n a szám ítógép-tervezés egy teljes k ö rt fu to tt
terméksorozat.
be, és visszatért a rra az álla p o tra , am elyen m ég azelő tt volt, hogy W ilkes felfed ez­
1964 6600 CDC Az első tudományos szuperszámítógép.
te a m ikroprogram o zásl.
1965 PDP-8 DEC Az első tömegcikk miniszámítógépekből
A kerék azonb an tovább forog. A Jav a-p ro g ram o k at először általáb an egy köztes (50 000 eladott példány).
nyelvre (Java bájtk ó d ra) fordítják, m ajd a Java b ájtk ó d o t in te rp re te r h ajtja végre. 1970 PDP-11 DEC Az 1970-es éveket uraló miniszámítógép.
A z eddigiekből k itű n h et, hogy a h ard v er és a szoftver kö zö tti h a tá r ö nkényes és 1974 8080 Intel Az első általános célú, egylapkás 8 bites
állan d ó an változó. A m i m a m ég szoftver, h o ln ap ra h a rd v erré válhat, és fordítva. számítógép.
K éplékeny a h a tá r a k ü lö n b ö ző szintek k ö z ö tt is. A p ro g ram o zó szem p o n tjáb ó l 1974 CRAY-1 Cray Az első vektoros szuperszámítógép.
közöm bös, hogy az u tasításo k a t (ta lá n a sebességet kivéve) hogyan v alósítják m eg. 1978 VAX DEC Az első 32 bites szuper-miniszámítógép.
A z ISA -szinten p ro g ram o zó szem ély a szorzó u tasítást úgy h aszn álh atja, m in th a 1981 IBM PC IBM A személyi számítógépek korszakának
hard v eru tasítás len n e, n em kell azzal foglalkoznia, ső t tu d n ia sem kell róla, hogy elindítója.
az tényleg h ard v eru tasítás-e. A m i az egyiknek h ard v er, az a m ásik n ak szoftver. 1981 Osborne-1 Osborne Az első hordozható számítógép.
K ésőbb m ég visszatérünk ezek re a k érd ések re. 1983 Lisa Apple Az első grafikus felhasználói felülettel
rendelkező személyi számítógép.
1985 386 Intel A Pentium vonal első 32 bites előfutára.
1985 MIPS MIPS Az első piacra dobott RISC-munkaállomás.
1987 SPARC Sun Az első SPARC-alapü RISC-munkaállomás.
1.2. Mérföldkövek a számítógépek felépítésében 1990 RS6000 IBM Az első szuperskaláris gép.
1992 Alpha DEC Az első 64 bites személyi számítógép.
A m o d ern szám ító g ép ek fejlődése so rán tö b b száz fajta szám ító g ép et terveztek
1993 Newton Apple Az első kézi számítógép.
és é p íte tte k m eg. T ö b b ség ü k m á r rég feled ésb e m erü lt, n éh ány uk azo n b an je le n ­
tős hatással volt a m ai elg o n d o láso k ra . E b b e n a fejezetb en felvázolunk n éh án y je ­ 1.4. ábra. Mérföldkövek a modern digitális számítógépek fejlődéstörténetéből
30 1. B E V E Z E T E S . M ÉR F Ö L D K Ö V E K A S Z Á M ÍT Ó G É P E K F E L É P ÍT É S É B E N 31

1.2.1. N u lla d ik generáció: mechanikus számológépek (1642-1945) e lő á llíto tt fogak, k erek ek és á tté te k , ezt pedig a X IX . század technológiája nem
tu d ta nyújtani. Elveivel viszont jóval m eg előzte k o rát, hiszen a szám ítógépek m eg
B laise Pascal (1623-1662) fran cia tu d ó s volt az első, aki m ű k ö d ő szám o ló g ép et n a p ja in k b a n is az analitikus g éphez hasonló felépítésűek. N yugodtan k ije le n th e t­
ép ített, és akinek tiszteletére a Pascal pro g ram o zási nyelv a n ev ét k ap ta. A z 1642- jü k , hogy B abbage a m o d ern digitális szám ítógépek (nagy)apja.
bcn é p íte tt géppel az ak k o r alig 19 éves Pascal ap ján a k , a fran cia korm ány a d ó ­ A követk ező jele n tő se b b fejlesztésre az 1930-as évek végén k erü lt sor, am ikor
szedőjének a k a rt segíteni. A teljesen m echanikus, fo g ask erek es sz erk ezetet kézi K o n rad Z u se n ém et m érn ö k h allg ató elek tro m ág n eses jelfogókból é p íte tt egy so­
fo rg ató k arral k ellett m ű k ö d tetn i. ro za t au to m a ta szám ológépet. Á llam i tám o g atást a h áb o rú k ezd etétő l nem k a­
Pascal gépe m ég csak ö sszeadni és kivonni tu d o tt, de alig harm in c évvel később p o tt, m ert a korm ányzati hivatalnokok úgy gon d o lták , a h á b o rú t olyan gyorsan
a nagy n é m e t m atem atik u s, G o ttfric d W ilhelm von L eibniz b á ró (1646-1716) m egnyerik, hogy add ig ra a gép ek el sem k észülhetnek. Z u se nem ism erte B abbage
m eg ép ítette ugyancsak m ech an ik u s, szorozni és osztani is k ép e s gép ét. I.eibniz e red m én y eit, a szövetségesek b erlin i b o m bázásai a latt (1944-ben) gépei is elpusz­
három évszázaddal ezelő tt tu la jd o n k ép p e n a m ai négym űveletes zseb k alk u láto ­ tu ltak , e zért m u n k ája sem m ilyen befolyást nem gyakorolt a későbbi fejlődésre.
roknak m egfelelő g ép et szerk esztett meg. E n n e k ellen ére a te rü le t egyik ú ttö rő je volt.
Sem m i em lítésre m éltó n em tö rté n t 150 évig. E k k o r a U niversity o f C am bridge N em sokkal k ésőbb az E gyesült Á llam okban Jo h n A tan aso ff (low a State
m atem atik ap ro fesszo ra, a seb esség m érő feltaláló ja, C h arles B abbage (1 7 9 2 - C ollege) és G eo rg e Stibbitz (Bell L abs) is szám ológépeket tervezett. A tanasoff
1(S71) m egtervezte és m e g ép íte tte d iffcren ciag ép ét. B abbage ezt a szinten m e c h a ­ g épe k o rá h o z k ép est m e g d ö b b en tő en fejlett volt. B ináris a ritm etik át alkalm azott,
nikus eszközt, m ely Pascal g ép éh ez h aso n ló an csak összeadni és kivonni tu d o tt, m e m ó ria k é n t k o n d e n z á to ro k a t használt, a kisülés m egakadályozására pedig eze­
hajózási navigációhoz h aszn álato s szám táb lák ö sszeállítására szerk esztette. A z k e t p e rio d ik u san frissítette, ezt az eljárást „m em ő riafrissítésn ek ” nevezte. A m ai
egész szerk ezetet egyetlen alg o ritm u sra, a p o lin o m o k ra alk alm azo tt véges d iffe­ d inam ikus m em ó ria- (DRAM , d in a m ik u s véletlen elérésű m em ó ria) lapkák p o n ­
renciák m ó d szerén ek v ég re h ajtására tervezte. A d iffercn ciag ép leg érd ek eseb b tu ­ to san ugyanilyen elven m ű k ödnek. Sajnos a gépe so h a nem lett m űködőképes.
lajdonsága az volt, ahogyan az ered m én y e k e t k iad ta: kim en ő a d a ta it rézb ev o n atú A tan a so ff B abbage-hez ném ileg h aso n ló an lángész volt, aki végül áld o zatu l e sett a
lem ezbe lyukaszto tta acél form anyom óval, elő rev etítv e a későbbi lyukkártyához, k o r nem k ielégítő h ard v ertech n o ló g iáján ak .
C D -R O M -h o z hasonló, egyszer írh a tó ad a th o rd o z ó k világát. Stibbitz szám ológépe egyszerűbb volt A tanasoffénál, de m űködött. 1940-ben nyil­
B ár a d ifferen ciag ép igen jó l m ű k ö d ö tt, B abbage gyorsan rá u n t a csak egyet­ vánosan b e m u tatta a D artm o u th C ollege konferenciáján. A hallgatóság soraiban ült
len algoritm ust fu tta tn i k ép es g épre. Egyre tö b b id ejét tö ltö tte azzal - és család ­ Jo h n M auchley, a U niversity o f Pennsylvania ism eretlen fizikaprofesszora. K ésőbb
ja vagyonát (nem szólva a 17000 fontos k o rm án y tám o g atásró l) k ö ltö tte arra a szám ítástechnika világában M auchley professzor nevét sokan m egtanulták.
hogy az újabb, ún. a n a litik u s gépet m egtervezze és m egépítse. A n alitik u s g ép én ek M iközben Z u se, Stibbitz és A tan aso ff szám ológépeiket tervezték, egy fiatal­
négy egysége volt: a tá ro ló (m em ó ria), a m alo m (szám olóegység), a b em e n e ti rész em b er, H o w ard A ik en re tte n e te s m ennyiségű n u m erik u s szám ítást volt kénytelen
(lyukkártyaolvasó) és a k im en eti rész (lyukkártya és n y o m tato tt p ap ír). A tá ro ló kézzel elvégezni a H arv ard E gyetem en fo ly tato tt P h D -k u tatásai kapcsán. A fo k o ­
1000 d arab , eg yen k én t 50 decim ális jegyű szóból állt, m elyek v álto zó k at és e re d ­ zat m eg szerzését köv ető en A iken szám ára nem volt kétséges, hogy haso n ló szá­
m ényeket ta rtalm a z h attak . A m alom az ö sszeadás, kivonás, szorzás és osztás m ű ­ m ításo k at g éppel kell végeztetni. T anulm ányozta az iro d alm at, rá ta lá lt B abbage
v eletére volt képes, az o p e ra n d u so k a t a táro ló b ó l v ette, az e red m én y t p ed ig a tá ­ m u n k áira, és elh atáro zta, hogy jelfogókból felépíti azt az általán o s célú szám ító ­
rolóba helyezte. A d ifferen ciag ép h cz h aso n ló an ez is teljesen m ech an ik u s volt. g ép et, am elyet fogaskerekekből B abbage nem tu d o tt m egépíteni.
A z analitikus gép nagy előnye az volt, hogy á ltalán o s célú volt. L yukkártyáról 1944-ben a H arv ard E gy etem en elkészült A iken első gépe, a M ark I 72, egyen­
u tasításo k at olvasott és ez ek et h a jto tta végre. Valam ely u tasításo k h a tá s á ra a gép k én t 23 decim ális jegyű szót tarta lm a z o tt, és egy u tasítás végrehajtási ideje 6 m á­
kiolvasott k é t szám ot a táro ló b ó l, hogy to vábbítsa ő k et a m alo m b a, m ajd elvégzett so d p erc volt. A b em en e ti és k im en eti a d a th o rd o z ó lyukszalag volt. A m ik o rra
rajtu k egy m ű v eletet (p éld áu l az ö sszead ást), és az e red m én y t visszaküldte a tá ­ A ik en elkészült a következő, a M ark II géppel, a jelfogós szám ítógépek k o ra le­
rolóba. M ás u tasításo k m egvizsgáltak egy szám ol, és felté te les elág a zást h ajto tta k já rt. B e k ö szö n tö tt az elek tro n ik a korszaka.
végre attó l függően, hogy a szám pozitív vagy negatív volt-e. A b e m e n ő k árty ák ra
m ás-m ás p ro g ra m o t lyukasztva az an alitik u s g ép p el m ás-m ás szám ítást le h e te tt e l­
végeztetni, am ire a d ifferen ciag ép m ég nem volt képes.
1.2.2. Első generáció: vákuumcsövek (1945-1955)
M ivel az analitik u s gép egy egyszerű assem bly nyelven volt p ro g ra m o z h a tó ,
szoftvert k ellett rá írni. A szoftver előállításával B abbage A d a A u g u sta L ovelace-t, A II. v ilág h áb o rú b an m erü lt fel az igény elek tro n ik u s szám ítógépekre. A h áb o rú
L o rd B yron, a h íres b rit k ö ltő leányát b ízta m eg. így le tt A da L ovelace a világ első k o rai szakaszában a n ém et te n g e ra la ttjá ró k nagy pu sztítást végeztek a b rit h a jó ­
program ozója. A z A d a® p ro g ram o zási nyelvet az ő tiszteletére nev ezték cl. kon. A p a ran cso k at a berlini n ém et ad m iralitás rád ió n k eresztül a d ta a te n g e r­
Sok m ai tervező h ö z h aso n ló an sajnos B abbage sem tu d ta h a rd v e ré n e k tö k é le ­ alattjá ró k n a k , am elyeket a b ritek le tu d tak hallgatni és le is hallgattak. A baj az
tes m ű k ö d ő k ép esség ét ellenőrizni. E z erszám ra k e lle ttek a m eg felelő p o ntossággal
32 1 .B E V E Z E T É S 1.2, M ÉR F Ö L D K Ö V E K A S Z Á M ÍT Ó G É P E K F E L É P ÍT É S É B E N 33

volt, hogy az ü ze n ete k e t egy ENIGM A nevű készülékkel k ó d o lták , am elynek e lő ­ zett. am ikor elhagyták a Pennsylvaniai E gyetem et és m eg alap íto tták az E ckert-
fu tá rá t ép p en T h o m as Jefferso n , az a m a tő r felfed ező és az E gyesült Á llam ok volt M auchley C o m p u ter C o rp o ra tio n t P h ilad elp h iáb an (a Szilikon-ví'ilgyct m ég nem
elnöke tervezte. találták ki). C égegyesítések so ro zata u tán ebből a vállalkozásból alakult ki a je le n ­
A b rit titkosszolgálatnak m ég a h á b o rú k ezd eten sikerüli szert ten n ie egy legi Unisys C o rp o ratio n .
E N IG M A gépre, am elyet a lengyel titkosszolgálat lo p o tt el a n ém etek tő l. Egy k ó ­ Egy kis jogi k itérő . E ck ert és M auchley szabadalm i kérvényt n y ú jto ttak be, m i­
dolt ü zen et m egfejtéséhez azonban ren g eteg szám ítást k ellett elvégezni, ráad ásu l az szerin t ők a digitális szám ítógép feltalálói. M ai szem m el nézve, nem volna m eg­
üzen et lehallgatása után rövid időn belül, külö n b en az ered m én y haszo n talan volt. v ete n d ő d o log egy ilyen szabadalom b irto k o sán ak lenni. É vekig tarl() peresk ed és
A z ü zen etek m egfejtésére a b rit korm ány egy szupertitkos lab o ra tó riu m o t állított u tá n a b íróság úgy ítélte, hogy az E ck e rt-M a u c h le y szabadalom érvénytelen, a d i­
fel, ahol m eg ép ítették a C O L O S S U S nevű elek tro n ik u s szám ítógépet. A Jan Turing, gitális szám ítógép felfedezője pedig Jo h n A tanasoff, b á r ő találm ányát soha nem
a neves b rit m atem atik u s is a gép tervezői k ö zö tt volt. 1943-ban a C O L O S S U S m ű ­ szab ad alm aztatta.
ködőképes lett, de mivel a b rit k o rm án y a p ro je k t m ajd m in d en részletét 30 évre M iközben E c k e rt és M auchley az E D V A C -on dolgoztak, az E N IA C p ro jek t
katonai titoknak m in ő sítette, a C O L O S S U S iránya zsákutcává vált. M égis szóltunk egyik résztvevője, a m agyar szárm azású N eu m an n Ján o s a P rin ceto n ’s In stitu te of
róla, hiszen ez volt a világon az első elektronikus, digitális szám ítógép. A d van ced S tudies in tézeth ez csatlakozott, hogy m egépítse saját E D V A C -változa-
A h áb o rú azonfelül, h o ^ ' e lp u sz títo tta Z u se g ép eit és ö sztö n ö zte a C O L O S S U S tát, az lAS gépet. N eu m an n Ján o s éppolyan zseni volt, m int L eo n ard o da Vinci.
m eg ép ítését, az E gyesült Á llam ok szám ítástech n ik áját is befolyásolta. A n e h é z tü ­ Szám os nyelvet beszélt, o tth o n volt a fizikai és a m atem atikai tu d om ányokban, és
zérség szám ára a h ad sereg n ek irán y zék táb lázato k ra volt szüksége. E zek n ek a tá b ­ b árm ik o r tö k életesen fel tu d ta eleveníteni azt, am it eg\'szer hallott, láto tt vagy o l­
láza to k n ak az elő állítására nők százait alkalm azták, akik kézi szám o ló g ép ek en d o l­ vasott. Fejből id ézett szó szerint szövegeket olyan könyvekből, am elyeket évekkel
goztak (a férfiaknál m eg b ízh ató b b n ak ta rto ttá k a n ő k et). A z eljárás nagyon lassű k o ráb b an olvasott. A m ikor a szám ítógépek érd ek eln i kezdték, m ár a világ legki­
volt, és sok hibával já rt. em elk ed ő b b m atem atik u sa volt.
Jo h n M auchlcy, aki ism erte A ta n a so ff és S tibbilz e red m én y eit, tisztáb an volt E lő szö r is az tű n t fel neki, hogy a szám ítógépeknek a nagyszám ú kapcsolóval
azzal, hogy a h ad se re g e t é rd ek lik a m ech an ik u s szám ológépek. M in t m egany- és a káb elek k el tö rté n ő p ro g ram o zása m ennyire lassú, fárad ság o s és rugalm atlan.
nyi szám ítástudó s azó ta is, ö sszeállíto tt egy p ály áz ato t, am elyben egy e le k tro n i­ F elism erte, hogy a p ro g ram digitális fo rm áb an ugyanúgy tá ro lh a tó a szám ítógép
kus szám ítógép m e g ép ítésére k é rt tám o g a tá st a h ad sereg tő l. M iu tán p ály ázatát m em ó riájáb an , m in t az ad ato k . A zt is látta, hogy az a szerencsétlen soros d eci­
1943-ban elfogad ták , M auchley J. P re sp e r E ck ert nevű do k to ran d u száv al együtt m ális aritm etik a, am elyet az E N IA C is használt - m in d en egyes szám jegy rep re-
belefo g o tt az ENIAC (Electronic N um erical Integrátor And Computer) eln ev e­ z e n tá lá sá ra 10 vákuum csövet pazarolva (1 b ekapcsolt, 9 kikapcsolt állap o tb an ) - ,
zésű elek tro n ik u s szám ító g ép m eg ép ítéséb e. Az E N IA C 18 000 vákuum csőből h e ly e tte síth e tő p árh u zam o s bináris aritm etikával, h asonlóan A tan aso ff évekkel
és 1500 jelfogób ó l állt, súlya 30 to n n a , áram fogyasztása p ed ig 140 kilow att volt. k o ráb b i felism eréséhez.
F elép ítését tekin tv e 20, egy en k én t 10 jegyű decim ális szám tá ro lá sá ra alkalm as A z a terv ezet, am elyet először leírt, m a N eu m an n -g ép k én t ism ert. E zt v aló síto t­
regisztere volt. (Egy decim ális regiszter, am ely m e g a d o tt szám ú szám jeggyel fel­ ta m eg az E D SA C , az első tá ro lt p ro g ram ú szám ítógép, és ez m eg m a, több m int
írh ató szám ok tá ro lá sá ra képes, v alójában egy kis m em ória, ak árcsak a gépkocsik fél évszázaddal k ésőb b is m ajdnem m inden digitális szám ítógép alapelve. A terv és
kilom éter-szám láló ja a le fu to tt távolság kijelzésére.) A z E N IA C p ro g ram o zása az lA S gép, am elyet H erm án G o ld stin e-n el együtt é p ített, olyan m é rh etetlen h a ­
6000 többállású kapcsoló beállításával és dug aszo ló aljzato k tö m eg ein ek - á tk ö tő tást gyakorolt, hogy érd e m e s röviden ism ertetn ü n k . B ár ezt a terv ezetet m indig is
káb elek valóságos erd ejév el tö rté n ő - összekötésével tcirtént.
A gép é p íté sé t 1946-ig n em sik erü lt b efejezni, és ad d ig ra az e re d e ti célra való
felhasználása m ár é rte lm é t is v esztette. A h áb o rú b efejező d ö tt, így M auchley és
E c k e rt engedélyt k a p o tt, hogy egy nyári egyetem k e re té b e n ism ertessék m u n k á ­
ju k a t tu d ó s kollégáikkal. E z a nyári iskola je le n te tte a nagy digitális szám ítógépek
m egépítése iránti, ro b b an ásszerű érd e k lő d é s k ezd etét.
A tö rtén elm i n evezetességű nyári egyetem u tá n szám os k u ta tó k ezd ett e le k tro n i­
kus szám ítógép ép ítéséb e. A z E D S A C (1949) volt az első m ű k ö d ő példány, a m e ­
lyet M aurice W ilkes é p íte tt a C am bridge-i E gyetem en. E zt követte tö b b ek közt a
JO H N IA C (R an d C o rp o ra tio n ), az IL L IA C (U niversity of Illinois), a M A N IA C
(L os A iam os L ab o rato ry ) és a W E IZ A C (W eizm ann Institu te, Izrael).
E ck ert és M auchley h a m a ro san egy újabb gép, az EDVAC (E lectronic Discrete Akkumulátor
Variabie Autom atic Computer) ép ítéséb e k e z d e tt bele. A p ro je k t azo n b an elv ér­ 1.5. ábra. Az eredeti Neumann-gép
34 1. B E V E Z E T É S 1.2. M ÉR F Ö L D K Ö V E K A S Z Á M ÍT Ó G É P E K F E L É P ÍT É S É B E N 35

N eu m an n Ján o s nevével fém jelzik, G o ld stin e és m ások is k ö zrem ű k ö d tek . Az a r­ B ár a T X -2 -t sose becsü lték sokra, K e n n eth O lscn, a lab o rató riu m egyik m é r­
c h itek tú ra v ázlatát az 1,5. á b rá n láth atju k . n ö k e a T X -O 'h o z nagyon hasonló, kereskedelm i forgalm azásra szánt gép g y ártá­
A N eu m an n -g é p n ek ö t építő k ö v e volt: a m em ó ria, az aritm etik ai-lo g ik ai egy­ sára 1957-ben m e g a lap íto tta a D igital E q u ip m en t C o rp o ra tio n (D E C ) céget, llz a
ség, a vezérlőegység, v alam in t a b e m e n e ti és k im en eti eszközök. A m em ó ria 4096 P D P -1 nevű gép azonban csak négy év m úlva je le n t meg, a késedelem legfőbb oka
szóból, szavankén t 40 0 vagy 1 é rté k ű b itből állt. M inden szó vagy k ét 20 bites u ta ­ p ed ig az volt, hogy a D E C -ct hivatalosan alap ító b e fek tető k úgy gondolták, hogy a
sítást. vagy egy 40 bites elő jeles szám ot táro lt. Az u ta sítá so k b a n 8 b it az u tasítás szám ító g ép ek re nincs kereslet. V égül is T J. W atson, az IBM k orábbi elnöke egy­
típ u sát k özölte, 12 bit p edig a 4096 m em ó riaszó egyiket az o n o síto tta. A z a ritm e­ szer azt m o n d ta , hogy a szám ítógépek p iaca a világon 4-5 d a ra b ra te h e tő . E zért a
tikai-logikai egység és a vezérlőegység eg yüttesen alk o ttá k a szám ítógép „agyát” . D E C főleg kis áram k ö ri k árty ák at gyártott.
A m o d ern szám ító g ép ek b en ez e k e t egyetlen lap k á ra integrálják, m elyet CPU-nak A végül is 1961-ben elkészült P D P -1 4096 18 bites szót tartalm azott, és m ásodper­
(Central Processing Unit, központi feldolgozó egjség) nevezim k. c enként 200000 utasítást tudott végrehajtani. Ez a teljesítm ény fele volt az IBM 7090-
A z aritm etikai-lo g ik ai egységben volt egy speciális 40 b ites belső regiszter, esének, amely a 709-es tranzisztoros változata, és akkor a világ leggyorsabb szám ító­
az akkumulátor. Egy tipikus u tasítás az a k k u m u láto r tartalm á h o z h o zzáad ta g épének szám ított. A P D P -1 120000 dollárba került, míg a 7090-es több millióba. A
egy m em óriaszó ta rta lm á t, vagy az a k k u m u lá to r ta rta lm á t a m em ó riá b a táro lta. D E C több tucat P D P -l- e t adt>tt el, és ezzel m egszületett a m iniszám ítógép-ipar.
L eb eg ő p o n to s a ritm e tik a nem volt a g ép b en , m e rt N eu m an n úgy g o n d o lta, hogy A z egyik első P D P - l- e t az M. I. T. k ap ta, ahol azonnal felk eltette néhány bim ­
m in d en valam irevaló m ate m a tik u sn a k fejben tu d n ia kell k ö vetni a tizedesvessző bózó fiatal te h etség érd ek lő d ését. A P D P -1 egyik ú jdonsága egy k épern yős m eg­
(valójában a k e tte d e s vessző) helyét. je le n ítő volt, am elyen az 5 1 2 x 5 1 2 felb o n tásb an b árh o v á le h e te tt p o n to t k iraj­
N agyjából ugyanakkor, am ik o r N eu m an n az lA S g ép e t é p íte tte , az M. I. T k u ta ­ zolni. H a m a ro san a h allgatók a P D P - l- r e m ár ű rh áb o rú s já té k o t p rogram oztak,
tói is ép íte tté k a m agukét. M íg az lA S, az E N IA C és a hasonló g épek szavai hosz- m egajándékozva ezzel a világot az első videojátékkal.
szúak voltak, hiszen kom oly n u m erik u s szám o lg atáso k ra szán ták ő k et, addig az A D E C n éh án y évvel később a P D P -l- n é l sokkal olcsóbb (16000 dolláros)
M. I. T gépe, a W hirlw ind 1 16 bites szavakból ép ü lt, és fo ly am atirán y ításra terv ez­ 12 bites P D P -8 -a t kezdte gyártani. A P D P -8 nagy újdonsága az 1.6. á b ra szerin ­
ték. E z a p ro je k t v e z ete tt Jay F o rre ste r felfed ezéséh ez, a m ágnesgyűrűs m e m ó riá ­ ti egyetlen sín („om nibus"). A sín egy többszörös vezeték, am ellyel a szám ítógép
hoz és tu la jd o n k é p p e n az első k eresk ed elm i m in iszám ító g ép m egszületéséhez. k ü lö n b ö ző egységeit kapcsolják össze. E z a m egoldás je len tő sen e lté r az lA S gép
E zen tö rté n é se k k özben az IB M egy kis eég volt, am ely kártyalyukasztók és m e­ m e m ó riacen trik u s felép ítésétő l, és azó ta m ajdnem m in d en kisszám ítógépben ezt
chanikus k árty are n d e z ő g ép ek g y ártására szak o so d o tt. B ár az IB M a d o tt ném i alkalm azzák. A D E C m integy 50000 P D P -8 -a t a d o tt el, és ezzel a m iniszám ító-
pénzügyi tám o g a tást A ik en n ek , nem nagyon tö rő d ö tt a szám ító g ép ek k el egészen g é p -k eresk ed elem b en vezető pozíciót szerzett.
addig, am íg 1953-ban el n em készítette a saját 701-esét - jóval azu tán , hogy E ck ert
és M auchley cége piacvezetővé vált U N IV A C gépével. A 701-esnek 2048 36 bites
szava volt, szavan k én t két u tasítással. E z volt a tud o m án y o s szám ításo k at végző
gép ek so ro zatán a k első tagja, am ely egy év tized en belül az ip a r m eg h a tá ro z ó g é ­
pévé vált. H á ro m évvel később jö tt ki a 704-es, e re d e tile g 4096 szavas m ágnesgyű­
rűs m em óriával, 36 b ites u tasításo k k al és újításkén t leb eg ő p o n to s aritm etikával.
A z IB M utolsó vákuum esöves g ép ét, a 709-est - m ely alap v e tő en egy m egizm osí- 1.6. ábra. /APDP-8 „omnibus"
to tt 704-es - 1958-ban k ezd te gyártani.
M á r em lítettü k , hogy ek ö zb en az IB M válasza a tran ziszto ro k m egjelenésére a
709-es tran ziszto ro s válto zatán ak , a 7090-esnek (később a 7094-esnek) a m egépí
1.2.3. Második generáció: tranzisztorok (1955-1965) tése volt. A 7094-es ciklusidcje 2 m ikroszekundum , 32 536 szavas, szavanként 36
b ites m ágnesgyűrűs m em óriával. A 7090 és a 7094 zárták az E N IA C típusú gépek
A tran zisz to ro k at 1948-ban Jo h n B ard een , W alter B rattain és W illiam Shockley, a so rát, a tu d o m ányos szám ításokra való alkalm azáso k at azonban m ég évekig ezek
Bell L abs m u n k atársa i ta lá ltá k fel, am ié rt 1956-ban eln y erték a fizikai N o bel-díjat. u ra ltá k az 1960-as években.
T íz éven belül a tran zisz to ro k fo rra d a lm a síto ttá k a szám ító g ép ek et, és az 195()-es M iközben az IB M a tudo m án y o s szám ítások te rü le té n elsö p rő e rő re te tt i / e r t
évek végére a vákuum csöves szám ító g ép ek elavultak. A z első tran zisz to ro s szám í­ a 7094-essel, óriási összegeket zsebelt be egy kis üzleti alkalm azásokra való gép.
tó g ép az M. I. T. L incoln L a b o ra tó riu m á b a n é p ü lt m eg, m ely a W hirlw ind I m in tá ­ az 1401-es eladásaib ól. A gép a 7094-esét közelítő sebességgel, de árá n a k tö re d é ­
já ra 16 b ites volt. A T X -0 (T ran sisto red eX p e rim e n ta l c o m p u te r 0) névre hallg ató k é é rt volt k épes m ágnesszalagokat olvasni, írni, lyukkártyát olvasni, lyukasztani és
gépet alapvetően a T X -2 , egy sokkal kü lö n leg eseb b gép tesztelésére szánták. nyom tatni. T udom ányos szám ításokra teljesen alkalm atlan, de üzleti ad ato k tá r o ­
lására kiváló volt.
36 1. B E V E Z E T É S
1.2. M ÉR F Ö L D K Ö V E K A S Z Á M ÍT Ó G É P E K F E L É P ÍT É S É B E N 37
A z 1401-cs szokatlan volt, m ert nem v oltak sem regiszterei, sem rö g zített szó ­
p e k e t é p íth e tte k . E n n e k a g e n e ráció n ak a jeles képviselőiről íru n k eb b en a feje­
hossza. M em ó riája 4000 8 bites bájtból állt, b á r a későbbi m od ellek tá m o g a t­
zetb en .
ták a k ár - az ak k o r m e g h ö k k e n tő n e k szám ító - 16000 b á jto t is. M in d en b ájt egy
1964-re az IB M lett a vezető szám ítógépgyártó, de a k ét nagyon sikeres g é p é ­
6 bites k a rak tert, egy segéd- és egy szavak végét jelző b ite t táro lt. A MOVE u tasí­
vel, a 7094-essel és az 1401-essel k ap cso latb an volt egy kom oly problém a: azok a
tásn ak p éld áu l volt egy fo rrás- és egy célcím o p e ra n d u sa , és a fo rráscím tő l k ez d ő ­
legkisebb m é rté k b e n sem voltak kom patibilisek. A z egyik nagy sebességű n u m e ri­
d ő en m indaddig, am íg a szóvéget je lző b iten l-et nem talált, a b ájto k ta rta lm á t a
kus szám ológép volt p árh u zam o s bináris aritm etikával és 36 bites regiszterekkel,
eélcím től kezd ő d ő helyre m ásolta.
a m ásik cso dálatos b em e n e t/k im e n e t szerv'ező, de soros decim ális aritm etikával
1964-ben egy ap ró új cég, a C o n tro l D a ta C o rp o ra tio n (C D C ) p iacra d o b ta a
és változó hosszúságú m em óriaszavakkal. A vásárló vállalatok tö b b ség én ek m in d ­
h atalm as 7094-esnél és m in d en egyéb a k k o r létező szám ító g ép n él m ajd n em egy
k e ttő b ő l volt, de egyáltalán nem ö rü ltek , hogy két teljesen különálló p rogram ozási
nagyságrenddel gyorsabb g ép ét, a 6600-ast. A n u m erik u s szám ításo k at végzők el­
részleget kell fen n tartan iu k .
ső lá tá sra b eleszerettek , és a C D C elin d u lt a sik er felé. S eb esség én ek titk a és a
A k ét sorozat lecserélésének idején az IB M m erész lépést tett. E gyetlen term ék ­
7094-essel szem beni fölénye a C P U nagyfokú p á rh u zam o s felé p ítésé b en re jlett.
sort v ezetett be, a System /360-at, m elyet integrált áram köri alapokon ten/eztek
Egym ással p árh u zam o s m ű k ö d ésre kép es funkcionális egységei voltak külön-kü-
olyanra, hogy m ind a tudom ányos szám ítások, m ind az üzleti alkalm azások céljai­
lön az összeadásra, a szorzásra, az o sztásra. Kis m unkával egyidejilleg ak ár 10 u ta ­
n ak m egfeleljen. A sok egyéb újdonság m ellett a System/360 sorozat egy családot al­
sítás is v ég reh ajth a tó volt, b á r ahh o z, hogy a leg tö b b et kihozzák belőle, k ö rü lte ­
k o to tt m integy fél tu cat különböző m éretű és teljesítm ényű géppel, am elyek m ind­
k in tő en k ellett pro g ram o zn i.
egyike ugyanazon az assem bly nyelven volt program ozható. Egy vállalat az 1401-
E z m eg nem m in d en , m e rt a H ó fe h érk e és a h ét tö rp e m in tá já ra a 6600-ba több
esét a 360 M odel 30, a 7094-esét pedig a 360 M odel 75 típ u sra cserélhette. A M odel
kisebb segédszám ító g ép et is b e ép íte tte k . E n n ek k ö sz ö n h ető en a C P U m in d en
75 nagyobb és gyorsabb volt (és drágább is), de a sorozat bárm elyikére írt szoftver
idejét a szám ításo k elvégzésére le h e te tt fo rd ítan i, a feladatszervezés, a b e m e n e t/
elvileg bárm elyik m ásikon is fu th ato tt. G yakorlatilag a kis gépre írt szoftver a na-
k im en et k ezelése a kisszám ító g ép ek fe la d a ta lett. M ai szem m el nézve a 6600-as
gyobbakon gond nélkül futott, de egy kisebbre telepítve a program esetleg n em fért
évtizedekkel m eg elő zte a k o rát. A m o d e rn szám ító g ép ek szám os lényeges elem e
el a m em óriában. E n n ek ellenére óriási előrelépés volt a 7094-es és a 1401-es k ö zö t­
közvetlenül visszavezethető a 6600-asra.
ti állapotokhoz képest. A gépcsaládok g ondolata azonnal elterjedt, és néhány éven
S eym our Cray, a 6600-as tei-vezője N eu m a n n h o z h aso n ló , leg en d ás figura. E gész
belül a legtöbb szám ítógépgyártó m ár árban és teljesítm ényben különböző, egyéb­
é letét az egyre gyorsabb és gyorsabb gép ek é p íté sére fo rd íto tta , o lyanokra, a m e ­
kén t azonos gépekből álló soro zatokat kínált. A 360-as család ered eti tagjainak n é ­
lyeket m a szu p erszám ító g ép ek n ek nevezünk, és am ilyen a 6600-as, a 7600-as vagy
hány jellem zőjét m u tatja az 1.7. ábra. K ésőbb újabb m odelleket is bevezettek.
a C ray-1. A z au tó v ásárlásra is feltalált egy m a m á r k özism ert algoritm ust; m enj be
a legközelebbi au tó szalo n b a, m u tass rá az ajtó h o z legközelebbi kocsira, és m o n d d
Tulajdonság Model 30 Model 40 Model 50 Model 65
azt, hogy „ezt veszem m eg ”. Ez az algo ritm u s a le h e tő legkevesebb id ő t fo rd ítja lé­
Relatív teljesítmény 1 3,5 10 21
nyegtelen d o lgok ra (m int p é ld á u l az au tó v ásárlás) azért, hogy a leh e tő legtöbb idő
m arad jo n a fo n to s dolg o k ra (m in t p éld áu l szu p erszám ító g ép ek tervezése). Ciklusidő 1000 625 500 250
(ns, a másodperc milliárdod része)
Sok m ás gép is é p ü lt eb b en az időben, egyikük azo n b an kitilnik egy egészen m ás
Maximális memória (bájt) 65 536 262144 262144 524288
okból, a B u rro u g h s B5000. A FD P-1, a 7094, a 6600 és a h aso n ló gép ek tervezőit
Ciklusonként betöltött bájtok száma 1 2 4 16
le k ö tö tte a h ardv er, és a n n ak olcsóvá (D E C ) vagy gyorssá (IB M és C D C ) tétele. A
szoftver egyáltalán nem v olt lényeges. A B5000 terv ező i m ás ta k tik á t választottak. Adatcsatornák maximális száma 3 3 4 6
K ifejezetten azzal a céllal é p íte tté k g ép ü k et, hogy azt A lgol 60 (a C és Java e lő d ­
1.7. ábra. Az IBM 360-as gyártmánycsalád bevezető modelljei
je ) nyelven lehessen p ro g ram o zn i, és szám os, a fo rd ító fe la d a tá t segítő tu la jd o n sá ­
got ép íte tte k a h ard v erb e. M e g szü lete tt az a felism erés, hogy a szoftver is szám ít.
A 360-as egy m ásik je le n tő s fejlesztése volt a m u ltip ro g ram o zás, am ikor egy­
Sajnos ezt nagyon rövid időn belül el is felejtették .
idejűleg tö b b p ro g ram van a szám ítógép m em ó riájáb an , és m iközben egyik a b e ­
m e n e t/k im en et b efejezésére vár, addig a m ásik szám olhat. így a C P U k ih aszn ált­
sága m eg n ő tt.
1.2.4. Harmadik generáció: integrált áramkörök (1965-1980) U gyancsak a 360-as volt az első gép, am ely m ás g ép ek et tu d o tt em ulálni (szim u­
lálni). A kisebb m o dellek az 1401-est, a nagyobbak a 7094-est tu d ták em ulálni, így
R ó b ert Noyce felfed ezése (1958), a szilikon in teg rált á ra m k ö r leh ető v é te tte ,
a 360-asokra á tté rő vásárlók régi bináris pro g ram ja ik at m in d en v áltoztatás nélkül
hogy egyetlen lap k án tö b b tu c a t tran z isz to rt h elyezzünk el. E n n e k a tech n ik án ak
fu tta th a ttá k . N ém elyik m odell az 1401-esnél annyival gyorsabban fu tta tta az 1401-
k ö szö n h ető en a tra n z isz to ro s elő d ö k n é l kisebb, g yorsabb és o lcsóbb szám ító g é­
es p ro g ram jait, hogy sokan sohasem írták át régi p ro g ram jaik at.
38 1. BE V E Z E T É S 1.2. M ÉR F Ö L D K Ö V EK A SZ Á M ÍT Ó G É P E K F E L É P ÍT É S É B E N 39

A 360-ason kö n ny ű volt az em uláció, mivel a bevezető és sok későbbi m odell is A szem élyi szám ító g ép ek et egészen m ásk én t használták, m int a nagy szám ító ­
m ik ro p ro g ram o z o tt volt. A z IB M -nek m indössze h áro m m ik ro p ro g ra m o t kellett gép ek et. Szövegszerkesztésre, táb lázatk ezelésre és egyéb, kifejezetten interaktív
m egírnia, a 360-as saját, az 1401-es és a 7094-es u tasításren d sz ereire. E z a ru g a l­ alk alm azáso k ra (m int p éld áu l já ték o k ), am elyekkel a nagyszám ítógépek nehezen
m asság volt az egyik fő ok a a n iik ro p ro g ram o zás e lterjed ésén ek . boldo g u ltak .
A 36ü-as kom prom isszum os m eg o ld ást h o z o tt a p árh u z a m o s b ináris, illetve so ­ A z első szem élyi szám ító g ép ek et k észletk én t áru síto tták . A k észlethez egy
ros decim ális aritm etik a d ilem m ájára is: a b ináris a ritm e tik á ra 16, eg yenként 32 n y o m tato tt áram k ö ri kártya, egy zacskónyi lapka - k öztük általáb an az Intel 8080
bites regisztere volt, de m em ó riája az 1401-eséhez h aso n ló an bájtszervezésű m a ­ - , k ábelek , tápegység és esetleg egy 8 inches floppym eghajtó ta rto z o tt. A v ásár­
rad t. E zen felül, az 1401-eshez h aso n ló an , so ro s u tasításo k k al is re n d e lk e z e tt vál­ ló n ak k ellett az alkatrészekből a szám ító g ép et összeszerelnie. Szoftver nem ta r­
tozó hosszúságú a d a to k m e m ó riáb an való m o zg atására. to z o tt a készlethez. A kinek szüksége volt rá, m eg k ellett írn ia a sajátját. K ésőbb
A z (akkori m ércével) óriási, 2-^ (1 6 7 7 7 2 1 6 ) bájto s c ím tarto m án y volt a 360-as G ary K ildall m eg írta a 8080-asokon n épszerűvé vált C P/M o p eráció s rendszert.
m ásik figyelem re m éltó tu lajd o n ság a. A m e m ó ria akkori b ájto n k é n ti néh án y d o l­ Valódi, (h ajlékony)lem ezről fu tta to tt o p eráció s ren d szer volt fájlren d szerrel, a fel­
láros ára m ellett ennyi m em ó ria végtelenül so k n ak tű n t. Sajnos a 360-as so ro zato t használói p a ran cso k at pedig billentyűzetről le h e te tt bevinni a p a ra n c sé rte lm e z ő ­
k övető 37ü-es, 4300-as, 3080-as, m ajd 3090-es so ro zato k m ind u g y an arra az a rc h i­ nek (shell, héj).
te k tú rá ra épültek . A z 1980-as évek k ö zep ére a m cm ó riak o rlá t kom oly p ro b lé m á t A korai szem élyi szám ítógépek m ásika az A pple, később az A pple II volt, m e ­
je le n te tt. A z IB M k énytelen volt a k o m p atib ilitást részben feladni, am ik o r á tté rt a lyet Steve Jobs és Steve W ozniak abb an a nevezetes g arázsban tervezett. A gép
2 ’- bájtos m e m ó ria m é re t 32 bites cím zési ren d sze ré re . rendkívül n épszerű volt az o tth o n i felhasználók és az iskolák k ö réb en egyaránt, és
M ai ésszel azt k é rd e zh e tn é n k , hogy h a a szavak és a reg iszte rek eg y arán t 32 b i­ ezzel az A p p le szinte egyik n apról a m ásikra a piac kom oly résztvevőjévé vált.
tesek voltak, akk o r a cím ek m iért nem . A b b an az id ő b e n azo n b an senki n em tu ­ H osszú m egfontolás u tán - és látva, m it csinál a többi gyártó - végül az IBM , a
d o tt elképzelni egy g ép et 16 m illió bájtnyi m em óriával. O lyan len n e az IB M -et h i­ szám ító g ép ipar akkori nagyhatalm a is úgy d ö n tö tt, hogy beszáll a szem élyiszám í-
b ázta tn i ezen e lő re lá tás h ián y áé rt, m in t egy m ai szem élyi szám ító g ép ek et gyártó tógép-üzletbe. Egy, csak IB M -alkatrészekből összeállított, saját gép tervezése tú l­
céget azért okolni, hogy csak 32 b ites cím ek et használ. N éh án y éven belül a sze­ ságosan sokáig ta rto tt volna, ezért szokatlan d öntés született. Philip E stridge, az
mélyi szám ítógép ek n ek 4 m illiárd b ájtn ál sokkal nagyobb m e m ó riá ra lesz szüksé­ IB M egyik vezetője k ap o tt m egbízást és jelen tő s pénzügyi tám ogatást arra, hogy a
gük, és ek k o r a 32 bites cím ek ú jra elég te le n n e k fognak bizonyulni. cég m in d en be beleavatkozó b ürokráciájától és annak New York állam beli A rm onk
A m iniszám ítógépes világ is nagyot lé p e tt elő re a h arm ad ik g en eráció idejében, székhelyétől távol eső helyre távozzon, és vissza se jöjjön egy m ű ködő szem élyi szá­
am ikor a D E C a P D P -8 u tó d ja k é n t b ev ezette a 16 bites P D P -1 1 so ro zatát. Sok te ­ m ítógép nélkül. E stridge a floridai B oca R ato n b an állította fel m űhelyét, C P U -nak
k in tetb en a P D P -1 1 a 360-as kistestv ére volt - am in t azt a P D P -l- rő l, m in t a 7094- az In tel 8088-ast választotta, és az első IB M Personal C o m p u tert kereskedelm i fo r­
es kistestvéréről is elm o n d h atju k . A 360-as és a P D P -1 1 is szavas regiszterekkel, galom ban k ap h ató alkatrészekből é p íte tte m eg. 1981-ben kezdték m eg a gyártását,
bájtos m em óriával ren d elk ezett, to v áb b á so ro zataik je le n tő s ár/teljesítm én y ská­ és azonnal a tö rtén elem legnagyobb darabszám ban elad o tt szám ítógépévé vált.
lán m ozogtak. A P D P - 1 1 - k ü lö n ö sen az eg y etem ek en - kim agaslóan sikeres volt, A z IB M m ég egy szokatlan lépést te tt. am it azonban később m eg bánt. A helyett,
és hozzásegítette a D E C -et ahhoz, hogy m egőrizze v ezető helyét a m iniszám ító- hogy a g ép terveit - ahogy általáb an szokta - titokban ta rto tta (vagy legalábbis
gép-gyártásban. szab ad alm akkal v éd te) volna, egy m indössze 49 d o llá ré rt k a p h ató könyvben köz­
z é te tte a teljes tervet, b eleértv e az áram k ö ri d iag ram o k at is. A z volt a célja, hogy
m ás cégek szám ára is lehetővé tegye kiegészítő kártyák gyártását az IB M P C -khez,
1.2.5. Negyedik generáció: magas integráltságú áramkörök ezzel is növelve az IB M P C alk alm azh ató ság át és nép szerű ség ét. M ivel azo n b an a
terv ek kö zism ertek, az alk atrészek pedig a k eresk ed elem b en könnyen b e szerezh e­
(1980-?)
tő k voltak, az IB M szeren csétlen ség ére szám os gyártó ún. IB M P C -klónokat k ez­
A z 1980-as évekre a VLSI (Very Large Scale Integration, n agjon m agas fokú in ­ d ett előállítani, többnyire az IB M árainál lényegesen olcsóbban. Ezzel egy teljesen
tegráltság) techn o ló g ia elő szö r tö b b tízezer, m ajd százezer, végül p edig tö b b m illió új ip arág született.
tran ziszto r elhelyezését te tte lehetővé egyetlen lapkán. A fejlődés rövid időn belül M ás v állalatokat, m int p éld áu l a C o m m o d o re, A pple, A m iga és A tari, akik nem
kisebb és gyorsabb szám ítógépek elő állításáh o z v ezetett. A P D P -1 elő tt a vállala­ In tel C P U -val g y árto tták szem élyi szám ítógépeiket, ö ssz e ro p p a n to tta az IBM PC-
to k n ak és az egy etem ek n ek speciális részleg ek re, a szám ítóközpontoki a volt szük­ ip ar súlya. C sak n éhányuk élte túl, egyes szűk piaci szegm ensekben.
ségük ezeknek a nagy és d rág a g ép ek n e k az ü zem e ltetéséh ez. A m iniszám ítógépek A z A p p le M acintosh is tú lélte, b á r csak é p p en hogy. A M acintosh-t 1984-ben
m egjelenésével m ár egy részleg vagy tanszék is m eg v ásáro lh atta a saját szám ítógé­ m u ta ttá k be a balsorsú A pple L isa u tó d a k é n t, am ely az első grafikus felhasználói
p ét. 1980-ra az árak úgy leestek, hogy m á r m agánszem élyek szám ára sem volt e lé r­ felülettel (G raphical User Interface, GUI) ren d elk ező szám ítógép volt. A C}U1 a
h e te tle n a saját szám ítógép. B ek ö szö n tö tt a szem élyi szám ító g ép ek kora. m anap ság oly közkedvelt W indow s-felülethez h aso n líto tt. A Lisa elbu kott, m ert
1. B E V E Z E T É S
40 1.2 . M ÉR F Ö L D K Ö V E K A SZ Á M ÍT Ó G É P E K F E L É P ÍT É S É B E N 41

túl sokba k erü lt, az egy évvel k ésőbb b e v ez e tett olcsóbb M acin to sh azo n b an h a ta l­ ciós g ép ek h ez k ép est h atalm as ugrást je le n te n é n e k . Látva, hogy a ja p á n vállalatok
m as sikert a ra to tt, és sok csodálójából v á lto tt ki tú lá ra d ó érzelm ek et. átveszik a p iacot az ip ar tö b b te rü le té n , a k am e rá k tó l a hangfelvevő és -lejátszó
A szem élyi szám ító gép ek e k o rai p iaca v ez e tett el a h o rd o zh a tó szám ítógépek b e re n d ez é sek en át a televíziókészülékekig, az am erikai és eu ró p ai szám ítógép­
addig e lk ép z elh e tetlen igényéhez is. A b b an az id őben a h o rd o z h a tó szám ító ­ gyártók szinte azonnal kétség b eestek , és k övetelték az állam i tám o g atást. A nagy
g épnek kb. annyi é rtelm e volt, m in t m an ap ság egy h o rd o z h a tó hű tő szek rén y n ek . b eh aran g o z ás ellen ére a ja p á n ö tö d ik generációs p ro jek t lényegében k u d arco t val­
A z első valóban h o rd o z h ató szem élyi szám ítógép, az O sb o rn e-1 , a m aga 11 k ilo ­ lott, és csen dben elhalt. Bizonyos é rtelem b en olyan volt, m int B abbage analitikus
gram m jával inkább volt v onszolható, m int h o rd o z h a tó . E n n e k e llen ére b eb izo ­ gépe: egy látnoki ö tlet, m ely m essze m egelőzte k o rát, am ikor is a m egép ítéséh ez
n yította, hogy leh etség es h o rd o z h a tó szám ító g épet készíteni. A z O sborne-1 csak szükséges tech n o ló g ia m ég nem állt ren d elk ezésre.
m érsékelt k eresk ed elm i sik ert h o zo tt, azo n b a n egy évvel később a C o m p aq kihoz­ M in d en e setre valam i tö rté n t, am it a k ár ö tö d ik g en eráció n ak is nevezhetünk,
ta az első h o rd o z h a tó IB M P C -klónt, és ezzel gyorsan m eg alap o zta v ezető helyét m éghozzá v áratlan m ódon; a szám ítógépek összem entek. A z 1993-ban m egjelent
a h o rd o zh ató gép ek piacán. A p p le N ew ton m eg m u tatta, hogy egy h o rd o zh ató k azettásm ag n ó n ál kisebb szá­
A z első IB M P C az ak k o r m ég igen kicsi M icrosoft C o rp o ra tio n által k észített m ító g ép is é p íth ető . A N ew ton k ézírást használt felhasználói bevitelre, am i ak a­
M S-D O S o p eráció s re n d sz e rre l m ű k ö d ö tt. A hogy az In tel egyre nagyobb te lje sít­ dálynak bizonyult, azo n b an a kateg ó ria későbbi tagjai - m elyeket m a PD A -nak
m ényű C P U -k at g y árto tt, az IB M és a M icrosoft k ifejleszth ette az M S -D O S u tó d ­ (Personal D igital A ssistant, digitális szem élyi asszisztens) nevezünk - jav íto tt
ját, az O S/2-t, am ely az A p p le M acin to sh grafikus felü le téh e z h a so n ló t n y ú jto tt a felhasználói interfésszel ren d elk eztek , és nagyon népszerűvé váltak. S okuk m a
felhasználónak. E k ö zb en a M icrosoft k ifejlesztette a saját, M S -D O S fe le tt futó m a jd n e m olyan szám ítási kapacitással rendelkezik, m int a néhány évvel korábbi
W indow s o p eráció s ren d sz e ré t is, a rra az ese tre, ha az O S/2 n em fu tn a be. R öv id re szem élyi szám ítógépek.
fogva a tö rté n e te t, az O S /2-nek n em volt sikere, az IB M és a M icrosoft nyilváno­ A z o n b an m ég a PD A -k sem szám ítanak igazán forradalm inak. E n n él is fo n to ­
san jól összevesztek, a M icrosoft p edig sik erre vitte a W indow st. A z, ahogy a kis sab b ak a „ lá th a ta tla n ” szám ítógépek, m elyeket különféle készülékekbe, ó rákba,
In tel és a m ég kisebb M icrosoft cégnek sik erü lt az IB M -et, a v ilág tö rtén elem egyik b an k k árty ák b a és szám os egyéb eszközbe ép íten ek be (B echini és társai, 2004).
legnagyobb, leggazdagabb és legbefolyásosabb vállalatát tró n játó l m egfosztani, vi­ E zek a p ro cesszorok alkalm azások széles választékában teszik lehetővé a funkcio­
ta th a ta tla n u l p é ld a é rté k ű , és világszerte üzleti főiskolák tananyaga. n alitás n övelését és az árak csökkentését. V itath ató , hogy ezek a lapkák igazi g e­
A 8088-as sikerére építve az In tel egyre nagyobb és gyorsabb v á lto zato k at é p í­ n erá ció t alk otnak-e (hiszen az 1970-es évek ó ta jelen v annak), viszont fo rrad alm a­
tett. K ülön em lítésre m éltó az 1985-ben fo rg alo m b a k e rü lt 386-os, m ely lényegé­ sítják a tö b b ez e r készülék és eszköz m űködését. M ár m ost is nagy hatással van­
ben az első P en tiu m n ak te k in th e tő . B ár n ap jain k P entium jai sokkal gyorsabbak n ak a világra, és befolyásuk a következő években gyorsan tovább fog növekedni.
a 386-osnál, arc h ite k tú rá já t tek in tv e egy m ai P entium is lényegében csak egy fe l­ E zek a beág yazott szám ítógépek abból a szem pontból különösek, hogy a h ard v ert
piszkált 386-os. és a szoftvert gyakran együtt tervezik (codesign) (H en k el és társai, 2003). E zekre
A z 1980-as évek k ö z ep é re az új fejlesztésű, egyszerűbb (és gyorsabb) ún. R IS C - könyvünkben k ésőbb m ég visszatérünk.
a rc h ite k tú ra k ezd te felváltani a b o n y o lu ltab b (C IS C -) a rc h ite k tú rák a t. A z 1990-es H a az első g en eráció n ak az elektroncsöves g ép ek et (p éld áu l E N IA C ) tekintjük,
években m eg jelen tek a szu p ersk aláris C P U -k. E zek a g ép ek egy id ő b e n tö b b u ta ­ a m áso d ik g en eráció n ak a tran ziszto ro s g ép ek et (például az IB M 7094), a h a rm a ­
sítást kép esek v ég reh ajtan i, gyakran a p ro g ra m b a n szerep lő tő l e lté rő so rre n d b en . dik g en erá ció n ak a korai in teg rált áram k ö rö s g ép ek et (p éld áu l az IB M 360), a n e ­
A C ISC , R IS C és szu p ersk aláris fo g alm ak at a 2. fejezetb en v ezetjü k be, és k ésőbb gyedik g en eráció n ak pedig a szem élyi szám ító g ép ek et (p éld áu l az In tel C P U -k),
részletesen is tárgyaljuk könyvünkben. ak k o r az igazi ö tö d ik gen eráció inkább szem léletm ódváltás, m intsem k o n k rét új
1992-ig a szem élyi szám ító g ép ek 8, 16 vagy 32 b itesek voltak. A k k o r je le n t m eg a rc h ite k tú ra . A jö v ő b en a szám ítógépek m in d e n ü tt és m in d en b e beágyazva, v a­
a D E C a fo rrad alm i 64 b ites A lphával, egy valódi 64 bites R IS C gép p el, m elynek a ló b an lá th a ta tla n o k lesznek. N api életü n k részek én t jelen lesznek ajtónyitáskor,
teljesítm énye m essze m eg h ala d ta az akkori szám ító g ép ek ét. M érsék elt sikere volt, lám pagyújtáskor, készpénzfelvételnél és több ezer egyéb dologban. Ezt a néhai
de csaknem egy évtized m ú ltán a 64 bites gép ek igazán elte rje d te k , töb b n y ire nagy M ark W eiser által kidolgozott m o d ellt hívják m in d e n ü tt jelenlévő sz á m ítá ste c h ­
teljesítm ényű kiszolgálókként (szerv erek k én t). n ik á n a k (W eiser, 2002). E z oly m érték b en fogja m egváltoztatni a világot, m int
egykor az ipari fo rrad alo m . K önyvünkben nem tárgyaljuk tovább a tém át; továb­
bi részletek k el k ap cso latb an lásd a szakirodalm at (L yytinen és Yoo, 2002; S aha cs
1.2.6. Ötödik generáció: láthatatlan számítógépek M u k h erjee, 2003; S akam ura, 2002).

1981-ben a ja p á n ko rm án y b e je le n te tte , hogy 500 m illió d o llárra l tervezi tá m o g a t­


ni a ja p á n v állalato k n ak az ö tö d ik g en eráció s szám ító g ép ek re irányuló fejleszté­
seit, m elyek m esterség es in telligencián a la p u ln á n ak és a „ b u ta ” negyedik g e n e rá ­
42 1. BE V E Z E T É S 1.3. s z á m It ó g é p -k i A l l It A s 43

1.3. S z á m ító g é p -k iá llítá s T erm észetesen M o o re szabálya nem törvény, h an em a szilárdtestfizika és a


g y ártáste ch n ológia e lő re h alad ásán ak m egfigyeléséből szárm azó, és a jövőre néz­
A z előző részben röviden á tte k in te ttü k a szám ító g ép es ren d sz erek tö rté n e té t. ve is érvényesnek te k in te tt fejlődési ten d ep c ia. Egyes ipari m egfigyelők azt v ár­
M tist lássuk a je le n t, és tek in tsü n k a jövőbe. B ár n ap ja in k b an a szem élyi szám ító ­ ják , hogy M oore szabálya m ég legalább egy évtizedig érvényben m arad . E k k o rra
gépek a legism erteb b ek , azé rt m ásféle gépek is létezn ek , am elyekre szintén é rd e ­ a tran z isz to ro k at m á r olyan kevés ato m b ó l építik fel, hogy m eg b ízh atatlan n á vál­
m es egy p illan tást vetn ü n k . nak. M ásrészről azonban elk ép zelh ető , hogy a k v an tu m elek tro n ik a fejlődése ezt
a lap v e tő en m egváltoztatja (O skin és társai, 2002). M ás m egfigyelők szerint az
cn crg iak ib o csátás, az áram szivárgás és egyéb h atáso k m á r ko ráb b an kom oly p ro b ­
1.3.1. Technológiai és gazdasági mozgatórugók lém ák at állítanak elénk (B őse, 2004; Kim és társai, 2003).
A közgazdaság-tudom ány M oore szabályát bűvös k ö rk é n t ism eri. A technológia
A szám ítógépipar olyan iram b an fejlődik, m in t ahogy egyetlen m ás ip arág sem . Fő fejlő d ése (tranzisztorok, lapkák) jo b b és olcsóbb te rm é k e k e t eredm ényez. A z a la­
m ozgatórugója, hogy a g yártók évről évre tö b b és tö b b tra n zisz to rt k ép esek egyet­ csonyabb árak új alkalm azásokhoz v ezetn ek (10 m illió d o lláro s g ép ek re senki sem
len lap k ára elhelyezni. A több tran zisz to r - am elyek tu la jd o n k é p p e n a p ró e le k t­ k észített v id eo játék o k at). A z új alkalm azások új p iaco k at nyitnak, és ezek k iak n á­
ronikus kapcsolók - nagyobb m e m ó riát és h aték o n y ab b p ro cesszort eredm ényez. zására új vállalatok születnek. K ialakul a vállalatok közötti verseny, am ely pedig
G o rd o n M oore, az Intel egyik alap ító ja és koráb b i eln ö k e egyszer azzal viccelő­ m ég jo b b tech n o ló g iák at követel a győzelem é rd ek éb en . E zzel a k ö r bezárul.
d ö tt, hogy ha a re p ü lő g ép -tech n o ló g ia olyan gyorsan fe jlő d ö tt volna, m in t a szám í­ A tech n o lógiai fejlődés m ásik m o to rjá t N áth án első szoftvertörvénye fogal­
tó gép-technológia, egy rep ü lő g ép 500 d o llárb a k erü ln e, 20 p e rc a latt k e rü ln é m eg m azza m eg (m ely N áth án M yhrvoldtól. a M icrosoft egyik volt vezetőjétől ered ).
a F öldet 5 gallon (kb. 18,5 liter) ü zem anyagot fogyasztva, és ak k o ra lenne, m int E szerin t „a szoftver gáz, am ely kitölti a ren d elk ezésére álló te r e t”. A z 1980-as
egy cipősdoboz. évek b en a troff-hoz hasonló p ro gram okkal szerk esztettü n k szövegeket (például
M oore egyik e lő a d á sára készülve v ette észre, hogy a m e m ó ria-áram k ö rö k e se ­ e könyv angol ere d e tijé t is). A tro ff csak néh án y kilobájt m em ó riát foglalt. A mai
téb en h áro m év en te je le n te k m eg új gen eráció k . M inden g en e rá ció m egnégysze­ szö vegszerkesztőknek m eg ab á jto k ra van szükségük. N em kétséges, hogy a jö v ő ­
rezte az előző m em ó ria k a p a citásá t, te h á t az egy lap k án elh ely ezh ető tran zisz to ro k beliek g ig ab ájtokat fognak használni. (A kilo, m ega és giga előtagok ren d re e /r e t,
szám a állandó ü te m b e n nőtt. A zt jó so lta, hogy ez a n ö v ek ed és m ég évtizedekig m illiót és m illiárdot je le n te n e k , de ré szletek ért lásd az 1.5. fejezetet.) A szoftve­
folytatódni fog. E zt a m egligyelést hívjuk M oore-szab ály n ak . M a M o o re szabályát re k b e egyre újabb szolgáltatások ép ü ln ek be (m int ahogy a h ajó testre rak ó d n ak a
inkább úgy fogalm azzák m eg, hogy a tran zisz to ro k szám a 18 h a v o n ta m eg k étsze­ kagylók), és e z ért egyre gyorsabb processzo ro k ra, nagyobb m e m ó riára és B/K k a ­
reződik, azaz a nö v ek ed és m integy évi 60 százalék. A m em ó ria -á ra m k ö rö k m é re ­ p acitásra van igény.
teit és bevezetésü k id ő p o n tjait az 1.8. áb ra m u tatja; láth atju k , hogy M o o re szab á­ M íg a la p k án k é n li tran ziszto ro k szám a év en k én t drasztikusan nőtt, a szám ítás­
lya több m int h áro m évtizede teljesül. tech n ik a m ás ágainak növekedési ü tem e sem m arad t le. A z IB M P C /X T például
1982-ben 10 m egabájtos m erevlem ezzel k erü lt piacra. H úsz évvel később a PC7XT
512M u tó d g ép eib en m egszok ottak voltak a 100 gigabájtos m erevlem ezek. E z a 20 év
1 000000000
a latti négy nagyságrendnyi növekedés évi 58 százalékos kapacitásn ö v ek ed ést je ­
100000000 lent. A m ág neslem ezek fejlő d ésén ek m érése azo n b an en n él kicsit bonyolultabb,
10000000 hiszen a k ap acitáso n kívül fo n to s p a ra m é te re k péld áu l az ad atátv iteli sebesség, a
E 1000000 pozicionálási idő és az ár. M in d azo n által, akárhogy is nézzük, azt látjuk, hogy az
" 100 000
ár/teljesítm ény arány 1982 ó ta évente legalább 50 százalékkal javult. E z a m ág ­
neslem ezek teljesítm én y éb en b ek ö v etk ezett óriási fejlődés és az a tény, hogy a
§ 10000
KI Szilikon-völgyből (Silicon Valley) szállított lem ezm ennyiség érté k b e n m eg h alad ta
^ 1 000
a C P U lap k ák ét, A1 H o a g la n d e t a rra késztette, hogy m egjegyezze, a hely eln ev e­
§ 100 zése téves: Vas-oxid V ölgynek (Iro n O xide Valley) kellene hívni (hiszen ez a m ág­
10 n eslem ezek ad ath o rd o z ó ré teg én ek alapja).
_L _L _L _L Látványos fejlődést m u ta tn a k a telek o m m u n ik áció és a szám ítógép-hálózatok
1965 1970 1975 1980 1985 1990 1995 2000 is. K ét év tizeden belül a 300 bit/s m o d em ek tő l elju to ttu n k az 56 kbit/s analóg m o ­
d em ek ig és a 10‘^ bit/s üvegszáloptikás hálózatokig. A z A tlan ti-ó ceán t átszelő szál­
1.8. ábra. Moore szabálya szerint az egy lapkán elhelyezhető tranzisztorok száma évi o p tik ás TAT-12/13 telefo n k áb el 700 m illió do llárb a kerüU, és egyidejűleg 300000
60 százalékkal nő. Az ábra bitekben adja meg a memóriaméreteket hívást teljesít. H a ezt tíz évre vetítjük, egy 10 perces nem zetközi beszélgetés költ-
1. B E V E Z E T É S 1.3. s z A m It ó g é p -k i á l l í t A s 45
44

sége 1 cen t alatt van. K ísérletek bizonyítják, hogy 100 km feletti távolságok külön rád ió ad ó v ev ő és egy b e é p íte tt 128 bites szám van. H a egy külső a n te n n á ró l im pul­
erő sítő k nélkül á th id a lh ató k 1 0 ''bit/s sebességgel m ű k ö d ő optik ai k o m m u n ik á ­ zust k ap n ak , a bejövő rád ió jel eleg e n d ő e n erg iát szolgáltat ahhoz, hogy a szánnin-
ciós ren d szerek k el. A z in te rn e t m ere d ek felfu tá sá t m ár nem is kell ecseteln ü n k . k at az an te n n á h o z visszasugározzák. B ár ezek a lapkák nagyon kicsik, je le n tő s é ­
gük egyáltalán nem az.
K ezdjük egy h étk ö zn ap i alkalm azással: a v o nalkódok e ltü n te té se az áru cik k ek ­
1.3.2. A számítógépek termékskálája ről. K ísérleteket végeztek, m elyekben az üzletek b en az árucik k ek et (vonalkódok
h ely ett) a g yártó által elhelyezett R F ID lapkákkal látták el. A vásárló kiválasztja a
A Bell L abs k o ráb b i m u n k a tá rsa , R ich ard H am m in g m egfigyelte, hogy egy nagy- te rm é k et, b eteszi a k o saráb a, és egyszerűen kitolja a boltból, elhaladva a p é n z tá r­
ságrendnyi m ennyiségi v áltozás m inőségi v álto zásho z vezet. A nevadai sivatagban p u lt m ellett. A z üzlet k ijáratán ál egy an ten n á v al felszerelt leolvasó kiküld egy je­
1000 k m /ó ra sebességgel száguldó a u tó m inőségileg is lényegesen k ülönbözik a t­ let, am ellyel m in d en egyes te rm é k e t m egkér, hogy azonosítsa m agát, m indezt egy
tól, am elyik az au tó p ály án 100 k m /órával p oroszkál. H a so n ló a n a 100 em eletes rövid, vezeték nélküli kom m unikáción keresztül. A vásárlót szintén azonosítják a
felhőkarcoló sem csak egy m eg n y ú jto tt 10 em e lete s lakóház. A szám ító g ép ek vi­ ban k k árty áján tá ro lt lapkával. A h ó n ap végén az ü zlet tételes szám lát küld az ügy­
lágában ráad ásu l n em is 10-szercs kü lö n b ség ek rő l, h an em a h áro m évtized a latt félnek a havi vásárlásairól. H a a v ásárlónak nincs ér\'ényes R F ID bankkártyája,
m illiószoros n ö v ek ed ésrő l b eszélh etü n k . m egszólal a riasztó. A ren d szer am ellett, hogy kiküszöböli a p én ztá ro so k szüksé­
A M oore-szabály által szo lg áltato tt fejlő d ést tö b b fé le k é p p e n is alk a lm az h at­ gességét és a sorban állást, egyben lopásvédelm i ren d szer is, hiszen a term ék et te l­
juk. E gyrészről válto zatlan áro n é p íth e tü n k egyre nagyobb teljesítm én y ű szám ító ­ jesen h aszo n talan zsebbe vagy tásk áb a rejteni.
gép ek et. M ásrészt p ed ig u gyanazt a g ép et évről évre o lcsóbban á llíth atju k elő. A A re n d szer egyik é rd ek es jellem zője, hogy míg a v o n alkódok csak az egyes te r­
szám ító g ép ip ar m in d k ét m eg k ö zelítést alk alm azta, és így m a szám ító g ep ek széles m ék típ u so k at azonosítják, az egyedi d a ra b o k a t nem , addig ezt az R F ID lapkák a
v álasztékát szolgáltatja. A m ai gép ek egy durva osztályozását ad ja az 1.9. ábra. 128 h ittel m egteszik. K övetkezésképpen, például az üzlet polcán találh ató m in ­
den egyes d oboz aszpirin kü lö n b ö ző R F ID kóddal rendelkezik. E szerint, ha egy
Típus Ár (dollár) Példák felhasználási területekre gyógyszergyártó azu tán fedezi fel, hogy egy k ö teg aszpirinban gyártási hiba tö r­
Eldobható számítógép 0,5 Üdvözlőlapok té n t, m iu tán azt m ár elszállították, figyelm eztetheti az ü zletek et a világ m inden
Mikrovezérlő 5 Órák, autók, eszközök táján , hogy a riasztó jelezzen, h a valaki egy olyan csom agot vásárol, am elynek az
Játékgép 50 Házi videojátékok R F ID szám a az é rin te tt tarto m án y b a esik, m ég ak k o r is, ha a vásárlás egy távoli
Személyi számítógép 500 AsztdII és hordozható számítógép o rszág b an h ónap o k k al később tö rtén ik . A nem a hibás kötegbe eső aszpirin nem
Szerver 5000 Hálózati kiszolgáló fogja a riasztót m egszólaltatni.
Munkaállomás-gyűjtemény (COW) 50000-500000 Tanszéki mini-szuperszámítógép Az aszpirines, kekszes és kutyaeledeles csom agok címkézé.se azonban m ég csak a
Nagyszámítógép 5000000 Banki kötegelt adatfeldolgozás kezdet. M iért állnánk m eg a kutyaeledel cím kézésénél, am ikor a kutyát is m egjelöl­
hetjük? H áziállat-tulajdon osok m á r m ost is arra kérik állatorvosukat, hogy ü ltesse­
1.9. ábra. A számítógépek mai típusválasztéka. Az árak (nagyon durva) becslések n ek be R F ID lap k ák at kedvenceikbe, hogy az alapján m egkereshetők legyenek, ha
elvesznek vagy ellopják őket. A z állattenyésztők szintén m eg akarják jelöltetni álla­
A következő részben rövid en m egvizsgáljuk ezek et a k a teg ó riá k at és tu lajd o n ­ taikat. A nyilvánvaló következő lépés az, hogy az aggódó szülők a gyerm ekorvossal
ságaikat. R F ID lap k ákat ü ltettessen ek be gyerm ekeikbe arra az esetre, ha elvesznének vagy
elrab o ln ák őket. H a m ár itt tartu n k , m iért nem építik be rögtön a kórházban az új­
szülöttekbe, és akkor elk erü lh ető k len n én ek a kórházi kavarodások is. A kornuíny
1.3.3. Eldobható számítógépek és a ren d ő rség m inden bizonnyal szám os jó okot találna arra, hogy folyam atosan
nyom on követhesse az állam polgárokat. M o stan ra v élh ető en sikerült rávilágíta­
A legkisebb szám ítógép eg>'etlen lapka, am ely példáu l k ép esla p ra ragasztva lejátsz- nun k az R F ID lapkák „jelen tő ség ére”, am ire k o rábban utaltunk.
sza a „B oldog szü lin ap o t” vagy egy e h h ez hasonló, fe le d h e tő kis d alocskákat. A A z R F ID lapkák m ásik (kevésbé v itath ató ) alkalm azási te rü le te a járm űvek
tö b b m illió d o llá rb a k e rü lő nagyszám ítógépek m ellett feln ő tt e m b e r szám ára az el­ nyom követése. A m ik o r R F ID lapkákkal e llá to tt vasúti kocsik sora halad cl a le­
d o b h ató szám ítógép úgy hangzik, m in th a valaki eld o b h a tó re p ü lő g ép rő l beszélne. olvasó elő tt, a h ozzácsatolt szám ítógép azonnal látja, m ely vagonok halad tak át.
M in d e n e se tre az e ld o b h ató szám ító g ép ek ta rtó sa n je le n v annak. A te rü le t va­ Ezzel a re n d szerrel könnyű az összes vagon helyzetét követni, am i segítség a szál­
lószínűleg legfon to sab b fejlesztése az RFID (Radio Frequeney ID entification, rá­ lítm ányozóknak, az ügyfeleknek és a v asútnak egyaránt. H asonló összeállítást al­
diófrekvenciás azonosító) lapka. K épesek vagyunk n éh án y c e n té rt olyan 0,5 m m - k alm azh atu n k a k am io n o k ra is. G épkocsik esetén az ö tlet az útdíjak elek tro n ik u s
nél vékonyabb, áram fo rrá s nélküli R F ID la p k ák a t gyártani, am elyekben egy ap ró b e szed ésére használható.
46 1, B E V E Z E T É S 1,3. SZ Á M ÍT Ó G ÉP - K IÁ L Ű T Á S 47

A légiforgalm i csom agkezelő ren d sz e re k n ek és szám os egyéb cso m ag to v áb b ító is kezelik. A m ikrovezérlők szám os különféle eszközben m eg találh ató k , köztük az
ren d szern ek s z in té n haszn o sak le h etn ek az R F ID lapkák. A lon d o n i H ea th ro w aláb biak b an is. M inden k ateg ó riáh o z ad u n k néh án y p éld át is.
re p ü lő té re n tesztelt kísérleti ren d sz e r lehetővé te tte az érk ező u taso k n ak , hogy
m e g s z a b a d u l j a n a k csom agjaik cipclésétől. A szolg áltatást igénybe vevő utaso k 1. H áz tarlá si b eren d ezések (rádiós óra, m osógép, szárítógép, m ikrohullíim ú sütő,
csom agjait R F ID lapkákkal lá ttá k el, m ajd a rep ü lő té re n külö n útv o n alra terelve, riasztó).
egyenesen az u taso k szállo d ájáb a szállították. A z R F ID lap k ák további a lk alm a­ 2. K om m unikációs eszközök (vezeték nélküli telefon, m obiltelefon, fax, szem élyi
zási lehetőségei k ö zö tt találjuk az ö sszeszerelő szalagon a festő állo m ásra érk ező hívó).
gépkocsi színének kiválasztását, az állatok v o n u lásán ak tan u lm án y o zását, vagy 3. S zám ítóg ép-perifériák (n y o m tató , lapolvasó, m odem , C D -R O M -m e g h a jtő ).
azt, am ik o r a ru h á k m eg m o n d ják a villanyvasalőnak, hogy m ilyen h ő m é rsé k le tet 4. S z ó rak o ztató elek tro n ik ai cikkek (videom agnó, D V D -lejátszó, hih b eren d ezés,
alkalm azzon. Egyes la p k ák a t érzék elő k k el is eg y b eép íth etn ek , am ik o r is az a la ­ M P 3-lejátszó, b eltéri vevőegység),
csony h ely érték ű bitek a pillanatnyi h ő m érsé k le tet, nyom ást, p á ra ta rta lm a t vagy 5. K ép p el k apcso lato s b e ren d ezések (tv, digitális k am era, cam coder, tibjektívck,
egyéb környezeti változőt tartalm a z h a tn a k . fénym ásoló),
A fejlett R F ID lapkák állan d ó tárolóval is ren d elk e z h e tn e k . F z a képességük 6. O rvosi b e ren d ezések (rö ntgenkészülék, M R I, szívm onitor, digitális hőm érő).
v ezetett az E u ró p ai K özponti B ank (E u ro p e a n C e n tral B ank) azon dönté.séhez, 7. K atonai fegyverrendszerek (ro botrepülőgép, interkontinentális rakéta, to rpedó).
m iszerint az elkövetkező években R F ID la p k ák a t helyeznek az e u ró b ankjegyek­ 8. V ásárlással k apcsolatos eszközök (üdítő-, kávé-, jegy- és egyéb árusító a u to m a ­
be. A lapkák rögzítenék, hogy m erre fo rd u lta k m eg. E z nem csak az e u ró b a n k ­ ták, A TM , p én ztárg ép ).
jegyek h am isítását te n n é tu la jd o n k ép p e n le h e tetlen n é , h an em az e m b errab láso k 9. Já té k o k (beszélő baba, játék k o n zo l, rád ió v ezérelt a u tó vagy hajó).
váltságdíjai, a rabláso k b ó l szárm azó zsákm ány és a p én zm o sáso n á te se tt p én z is
sokkal k ö nnyebb en nyom on köv eth ető v é, illetve távolról érv én y telen íth ető v é vál­ Egy felső k ategóriás a u tó b an könnyen ta lálh atu n k a k á r 50 m ikrovezérlót is, m e­
na. H a a pén z m á r nem névtelen, az le h e tn e a szokványos re n d ő rség i eljárás a jö ­ lyek olyan részren d szerek et m ű k ö d tetn ek , m int a blokkolásgátló fékrendszer,
vőben, hogy m egvizsgálják, a gy an ú síto tt pénze m e rre já r t az utó b b i időben. K inek üzem anyag-befecskendezés, rádió és a navigációs egység (G F S ), Egy sugárhajtású
lenne szüksége az em b erek b e é p íte tt lap k ák ra, ha a tárcáju k tele lenne ilyenek­ rep ü lő g ép a k ár tö b b m int kétszázat is tartalm azh at. K önnyen elő fo rd u lh at, hogy
kel? H angsúlyozzuk, h a a nyilvánosság tu d o m á sá ra ju t, hogy az R F ID lapkák m ire egy család b an tö b b száz szám ítógép is van anélkül, hogy tu d n á n a k róla. N éhány
képesek, valószínűleg nyilvános viták tárgyát fogja képezni. éven belü l g yakorlatilag m in d en , am i elek tro m o s h áló za tró l vagy ak k u m u láto rró l
Az R F ID lapk ák b a n alk alm azo tt tech n o ló g ia gyorsan fejlődik. A legkisebbek m űködik, m ikrovezérlőket ta rtalm az m ajd. A z év en k én t e la d o tt m ikrovezérlők
passzívak (nincs belső áram fo rrásu k ), és csak a rra k ép esek , hogy a saját egyedi szám a m ellett nagyságrendekkel eltö rp ü ln ek az egyéb típusú szám ítógepek e la d á ­
azon o sító szám u k at elküldjék, ha k érik tőlük. A nagyobbak viszont aktívak, ta rta l­ sai, kivéve az e ld o b h a tó szám ítógépeket.
m azh atn ak egy kis a k k u m u láto rt és egy egyszerű szám ító g ép et, és k ép esek le h e t­ M íg az R F ID lapkák m inim alista ren d szerek , a m ikrovezérlők kicsik ugyan,
nek bizonyos szám ítások elvégzésére is. E bbe a k ate g ó riá b a tarto z n a k a pénzügyi de teljes é rté k ű szám ítógépek. M inden m ikrovezérlőben van egy processzor, m e­
tranzakcióknál h aszn álato s intelligens kártyák. m ó ria és B/K képességek. A B/K képesség gyakran jelen ti a b e ren d ezés nyo m ó ­
A z R F ID lapk ák nem csak aktív vagy passzív m ivoltu k b an k ü lö n b ö zn ek , h an em g om bjainak és kapcsolóinak érzék elését, valam int az eszköz lám páinak, m egjele-
a rád ió frek v en cia-tarto m án y b an is, am elyre reag áln ak . A zok, am elyek alacsony m 'tőjénck, h angjának és m o to rjain ak vezérlését. L eg tö b b esetb en a szoftvert m ár
frekvenciákon m ű k ö d n ek , k o rlá to z o tt ad atseb esség g el ren d elk ezn ek , azo n b an az g y ártásk o r b e é p ítik a lapkába egy csak olvasható m em ó riáb a. A m ikrovezérlőknek
a n te n n á tó l nagy távolságban is é rzék elh ető k . A m agas frekv en ciák o n m ű k ö d ő tí­ k é t nagy cso p o rtja van; általán o s és speciális célú. Az előbbi típusba tarto z ó k kis­
pusok ad atsebesség e nagyobb, a h ató táv o lság u k viszont kisebb, A lapkák egyéb m é re tű , de am úgy közönséges szám ítógépek. A z utóbbi cso p o rtb a tarto zó k m in­
m ódon is elté rn e k és folyam atosan fejlődnek. A z in te rn e te n ren g e teg inform áció dig valam ilyen k o n k rét alkalm azásra, m int p éld áu l a m u ltim éd iára hangolt arch i­
találh ató az R F ID lapkákról; a www.rfid.org jó k iin d u ló p o n t lehet. tek tú ráv al és u tasításren d sz errel ren d elk ezn ek . A m ikrovezérlőknek léteznek 4, (S.
16 és 32 b ites fajtái.
M ég az á ltalán o s célú m ikrovezérlők is tö b b lényeges tek in te tb e n k ülönböznek
1.3.4. Míkrovezérlők a közönséges PC -ktől. E lőször is, re tte n e te se n árér/.ékenyek. A m ik o r egy vállalat
tö b b m illió d a ra b o t vásárol, a választás a k ár a d arab o n k én ti 1 cen t árkülönbségen
A létra'k ö v etk ező fokán a kü lö n féle - nem szám ító g ép k én t fo rg alm a zo tt - eszkö­ is m ú lh at. E zért a m ikrovezérlők gyártói gyakrabban hoznak arc h ite k tú rá ra vo­
zökbe beágyazott szám ító g ép ek állnak. A beágyazott szám ítógépek, m elyeket n é ­ n atk o zó d ö n té se k e t gyártási költségek alapján, m int a több száz d o lláro s lapkák
ha m ikrovezérlőknek neveznek, m agát a b ere n d e z é st és a felhasználói in terfészt esetén . A m ikrovezérlők ára nagyon változatos attó l függően, hogy hány bitesek,
m ek k o ra és m ilyen típusú m em ó riát tartalm azn ak stb. V iszonyításképpen, ha egy
48 1 .B E V E Z E T É S 1.3. SZ Á M ÍT Ó G ÉP- K IÁ LLÍT Á S 49

8 bites m ikrov czérlőt elég nagy té te lb en v ásárolunk, valószínűleg m eg k ap h a tju k nya és (álta láb an ) a m erevlem ez hiánya teszi lehetővé, hogy ezek a gépek a szem é­
ak ár d a rab o n k én t 10 c e n té rt is. Hz az ár teszi lehetővé, hogy szám ító g ép et é p ít­ lyi szám ító g épek nél olcsóbban elő állíth ato k és forgalm azhatók. A m egszorítások
sünk egy 10 dolláro s rádiós ó ráb a. ellen ére m á r játék g ép ek m illióit é rté k esítették .
M ásodsorban, jó i'orm án m in d en m ikrovezérlő valós id őben m űködik. A m ikor A legnagyobb já té k g é p e k e t készítő vállalatok h o rd o zh ató , ak k u m u láto rró l m ű ­
ingert kapnak, azonnali választ v áru n k tőlük. P éldául, am ik o r a felhasználó m eg ­ köd ő já té k g é p e k e t is gyártanak, m elyek elférn ek az e m b er kezében. E zek azonban
nyom egy gom bot, gyakran kigyullad egy lám pa, és ilyenkor a gom b m egnyom ása m ár k özelebb állnak a beágyazott ren d szerek h ez, m elyet k o rábban elem eztünk,
és a lám pa kigyulladása kö zö tt nem leh et késleltetés. A valós idejű m űk ö d és szük­ m in t a szem élyi szám ítógépekhez.
ségessége gyakran hatással van az a rc h ite k tú rá ra is.
H arm ad szo r, a beágyazott re n d szerek n ek gyakran m eg szo rításo k n ak kell m eg ­
felelniük m éret, súly, áram felv étel és egyéb e lek tro m o s és m echanikai k o rlá to k ­ 1.3.6. Személyi számítógépek
kal. A b en n ü k használt m ikrovezérló'ket ezen m egszorítások figyelem bevételével
kell tervezni. E lju to ttu n k a szem élyi szám ítógépekhez - a legtöbb em b ern ek ez ju t eszébe a
„szám ítógép” szó hallatán. A z asztali és a h o rd o zh ató (n otebook, noteszgép) m o ­
d ellekre eg yaránt gondoljunk. T ö b b száz m egabájt m em óriával, 100 gigabájt körüli
1.3.5. Játékgépek

Egy fokkal m agasabban állnak a vid eo játék g cp ek . E zek közönséges szám ítógépek
különleges grafikai és hangképességekkel, m e g h atá ro z o tt szoftverrel és csak m in i­
m ális bővítési lehetőséggel. A sort nyitó kisteljesítm ényű C P U -k k al egyszerű ak ­
ciójátékokat, m in t p éld áu l pingpong, le h e te tt játszan i a tévékészüléken. A z évek
során azonban sokkal erő te lje se b b ren d szerek k é fejlő d tek , m elyek a szem élyi szá­
m ítógép ekkel vetélk ed n ek , sőt n éh án y te k in te tb e n tül is szárnyalják azokat.
A hhoz, hogy lássuk, m iből is tevődik össze egy játék g ép , nézzük h áro m nép szerű
term ek specifikációját. A Sony P la y sta tio n 2-ben egy 295 M H z-es 128 bites saját
fejlesztésű C P U talá lh ató (a neve E m o tio n E ngine), m ely a M IPS IV R IS C C P U
m in tájára épül. A P lay statio n 2 tartalm az tov áb b á 32 M B R A M -ot, egy 160 M H z-
es speciális grafikai ehipet, egy 48 csato rn ás speciális au d io ch ip et és egy D V D -
lejátszót. A M icrosoft X B O X -ban találh ató egy 733 M H z-es Intel P entium III,
64 M B R A M , egy 300 M H z-es speciális grafikai chip, egy 256 csato rn ás speciális
audiochip, egy D V D -lejátszó és egy 8 G B -o s m erevlem ez. A N in te n d o G am eC u b e
m otorja egy 485 M H z-es 32 bites speciális C P U (a neve G ek k o ), m elyet az IBM
Pow erPC R ISC C P U -b ó l fejlesztettek; 24 M B R A M , egy 200 M H z-es speciális
grafikus chip, egy 64 csato rn ás speciális aud io ch ip és egy saját fejlesztésű 1,5 G B -
os optikai lem ez van benne.
B ár ezeknek a g ép ek n ek a teljesítm énye elm a ra d az ugy an ak k o r g y árto tt sze­
mélyi szám ítógép ek étő l, de nem lényegesen, sőt, bizonyos te k in tetb en m ég e lő ­
réb b is já rn a k (p éld áu l a 128 bites C P U a P la y sta tio n 2-ben szélesebb, m int b á r­
m ely PC C P U -ja, jó lleh e t az ó rajelü k sokkal alacsonyabb). A legfőbb e lté ré s a
1. Pentium 4 foglalat 5. lemezinterfész 8. USB 2.0 portok
já ték g ép ek és a PC -k k özött nem is annyira a C P U , m in t inkább az a tény, hogy a
2. 875P segédlapka 6. gigabit ett^ernet 9. hűtésteclinika
já ték g ép ek zárt ren d szerek . A felhasználó nem bővítheti ő k et b ő vítőkártyákkal,
3. rnemórlafoglalatok 7. öt PCI-foglalat 10. BIOS
b ár n éh a azért b izto sítan ak U SB vagy F ireW ire in terfé szek et. Továbbá, és ez ta ­ 4. AGP-csatlakozó
lán a legfontosabb, a já té k g é p e k et k ö rü lte k in tő en egyetlen alkalm azási te rü le tre
optim alizálják, p éld áu l m agas fokon in terak tív 3D játé k o k kim agasló m inőségű 1.10. ábra. A nyomtatott áramköri kártya minden személyi számítógép lelke. Az ábrán
sztereó hanggal. M inden egyéb m ásodlagos kérdés. E zek a h ardver- és szoftver­ az Intel D875PBZ kártya fényképe látható, melyet a szerzőijogok tulajdonosa,
az Intel Corporation (2003) engedélyével tesszük közzé
m egszorítások, az alacsony órajel, a kis m em ória, a nagyfelbontású m o n ito r hiá-
50 1. B E V E Z E T É S 1.3, SZÁ M lT Ó G ÉP- K IÁ LLlT Á S 51

m erevlem ezzel, C D -R O M - és/vagy D V D -m eg h ajtó v al, m o d em m el, h an g k árty á­ háló za t k ö t össze, és am elyek egy speciális szoftvert fu ttatn ak ; e n n ek segítségével
val, hálózati csatolóval, nagyfelbontású m o n ito rral és egyéb p erifériák k al készü l­ a g ép ek együtt do lg o zh atn ak egy k o n k rét, gyakran tudom ányos vagy m érnöki fel­
nek. Jól kidolgozott o p eráció s ren d szerrel, ren g e teg kiegészítési lehetőséggel és bő' a d a t m eg o ld ásán. Á ltaláb an COTS (Com m odity O ff The Shelf, készen k ap h ató
szoftverkínálattal ren d elk ezn ek . E gyesek csak az In tel C P U -s v á lto zato k at hívják term ék ) szám ítógépekről van szó, am elyeket bárki m egvásárolhat egy közönséges
„P C ”-nek (szem élyi szám ítógépnek), m íg a nagy teljesítm ényű R IS C -p ro cesszo rral P C -fo rg alm azótól. A legfőbb kiegészítés a nagy sebességű hálózat, de n é h a az is
(m int péld áu l a Sun U ltraS P A R C ) felszereltek et „m u n k aá llo m áso k n ak ” nevezik. c s a k egy h étk ö zn ap i hálózati kártya. A klaszterek m ére tb e n könnyen skálázhatók,
Elvi eltérés azon b an alig van k özöttük. egy m aroknyi g ép tő l a k ár ezrekig. T öbbnyire a ren d elk ezésre álló pénz szabja m eg
M in d en szem élyi szám ítógép lelke egy n y o m ta to tt ára m k ö ri k ártya, a d o b o ­ a h a tá ro k a t.
za alján. E z több n y ire tarta lm a z za a C P U -t, m em ó riát, kü lö n féle B /K eszk ö zö ­ Egy C O W -t h aszn álh atu n k in te rn e te s w ebszervernek is. A m ik o r a w ebsite m á ­
k et (m int p éld áu l a han g ch ip és esetleg egy m o d em ), in terfé szek et a billentyűzet, so d p e rc e n k é n t k érések ezreire szám íthat, a leggazdaságosabb m egoldás gyakran
egér, lem ezek, h áló za t stb. c satlak o ztatásáh o z, v alam in t n éh án y bővítő' aljzatot. egy tö b b száz vagy a k á r tö b b ezer szerverből álló klaszter. A b eérk ező k érések e l­
Egy ilyen áram k ö ri k árty a k ép e lá th a tó az 1.1 ü. áb rán . o sztásra k e rü ln ek a szerverek kö zö tt, és így tu lajd o n k ép p en p árh u zam o san feld o l­
A h o rd o zh ató szám ító g ép ek (n o teszg ép ek ) g yakorlatilag PC -k, csak kisebb k i­ g ozhatok. Ilyen alkalm azás e setén a C O W -t gyakran nevezik kiszolgáló farm n ak .
szerelésben. U gy an azo k at a h a rd v ere le m e k e t h asználják, csak kisebb m é re tű re
gyártják őket. E s ugyanazok a szoftverek is fu tn a k rajtu k , m in t az asztali PC -ken.
Egy m ásik szorosan k ap cso ló d ó g ép típ u s a P D A (P erso n al D ig ital A ssistant, 1.3.9. Nagyszámítógépek
digitális szem élyi asszisztens). B ár ezek m ég a n o teszg ép ek n él is k isebbek, m in d ­
egyikben van C P U , m em ó ria, billentyűzet, m eg jelen ítő és a szem élyi szám ító g é­ M eg érk eztü n k a nagygépekhez, az 1960-as éveket idéző, te re m m é re tű szám ítógé­
p e k egyéb jellem ző i is, csak kicsiben. M ivel a leg tö b b olvasó valószínűleg o tth o ­ p ekhez. S ok közülük az évtizedekkel k o ráb b i beszerzésű IB M 360-asok közvetlen
n o san m ozog a szem élyi szám ító g ép ek világában, aligha van szükség további b e ­ leszárm azo ttja. N em sokkal gyorsabbak a nagy teljesítm ényű szervereknél, de B /K
vezetőre. átviteli kép ességük nagyobb, és gyakran tö b b ezer gigabájt a d a tk a p acitású h a ta l­
m as m erev lem ezfarm o t kezelnek. B ár rendkívül drágák, a szoftverbe, a d atb a , ügy­
m en e tb e és szem élyzetbe b e fe k te te tt óriási é rté k m egóvása érd e k é b e n gyakran
1.3.7. Kiszolgálók tovább ü ze m e ltetik őket. Sok vállalat úgy gondolja, hogy kifizetődőbb id ő n k én t
k iad n i n éh án y m illió d o llárt egy új g ép re, m in t átg o n d o ln i az összes alkalm azás ki­
A kissé m eg e rő síte tt szem élyi szám ító g ép ek et vagy m u n k aállo m áso k at gyakran al­ sebb g é p e k re való ú jrap ro g ram o zásáv al já ró erőfeszítéseket.
kalm azzák h áló za ti k iszolgálókként (szerv erk én t) m in d helyi h áló za to n (többnyire E z a géposztály v ezetett a h írh e d t 2000. év p ro b lém áh o z, m ely az 1960-as és
egy vállalaton belü l), m in d p ed ig az in te rn e te n . E zek le h etn ek egy- vagy tö b b p ro ­ 1970-es évek C O B O L -p ro g ram o zó in ak m em ó riatak arék o sság i m egfontolásából
cesszorosak, és tö b b gigabájt m em ó ria, tö b b száz gigabájt m erev lem ez és nagy se ­ szü letett, m iszerint az évszám ot csak k ét decim ális szám jegyen tárolják. Soha nem
bességű hálózati k ap cso lat jellem ző rájuk. N ém elyik a k ár k é rések ez re it is k ép es h itté k volna, hogy szoftverük m ég három -négy évtized m úlva is létezn i fog. B ár a
kezelni m áso d p ercen k én t. m eg jö v en d ö lt k atasztró fa - a p ro b lé m a m eg o ld ásáb a fe k te te tt h a talm as m ennyi­
A rc h ite k tú ra te k in te té b e n az egyprocesszoros kiszolgáló n em lényegesen k ü ­ ségű m u n k á n ak k ö szö n h ető en - sosem kö v etk ezett be, szám os cég m egism ételte
lönbözik egy egyprocesszoros szem élyi szám ítógéptől. C sak gyorsabb, tö b b m e ­ a régi h ib át azzal, hogy az évszám hoz ho zzácsap tak m ég k é t szám jegyet. A szerző
m óriával, nagyobb le m ez te rü lettel és valószínűleg gyorsabb h áló zati k ap cso lattal e zen n el ü n n ep ély esen b ejelen ti az em b eri civilizáció végóráját, 9999. d ecem b er
rendelkezik. A kiszolgálók ugy an azt az o p eráció s re n d sz e rt fu ttatják , m in t a sze­ 31-én éjjeli 12 ó rát, am ik o r is a 8000 éves dicső C O B O L -p ro g ram o k egyszerre le­
mélyi szám ítógépek, tö b b n y ire a U N IX vagy a W indow s valam elyik v álto zatát. h elik ki lelkűket.
A zo n felül, hogy a m eg ö rö k ö lt 30 éves szoftvereket fu ttatják , az u tó b b i időben
az in te rn e t új é le te t leh elt a nagygépekbe. Ú j p iaco t ta láltak m in t nagy te ljesítm é­
1.3.8. Munkaállomások gyűjteménye nyű in te rn etszerv erek , p éld áu l nagyszám ú elek tro n ik u s üzleti tran zak ció kezelését
m áso d p e rc e n k én t, kiváltképp olyan ü zletek b en , ahol h atalm as ad atb á ziso k ra van
A m un k aállo m áso k és szem élyi szám ító g ép ek á r/teljesítm én y arán y án ak folya­ szükség. B ár könyvünk k ö zép p o n tjáb an a PC -k, szerverek és m ikrovezérlők áll­
m atos jav u lásán ak k ö szö n h ető , hogy az u tó b b i években a re n d szerterv ező k e zek ­ nak, az 5. fe jezetb en tovább foglalkozunk kicsit a nagyszám ítógépekkel is.
ből nagyszám út összekapcsolva, m unkaállom ások klasztereit (COW, C lusters of A szám ító g ép ek n ek a közelm últig lé tezett m ég a nagygépeknél is erő seb b k a te ­
W orkstations) vagy csak egyszerűen klasztereket h o zn ak létre. E zek közönséges góriája, a szuperszám ítógépek. Jellem zőjük a rendkívül gyors C P U , a sok gigabájt
szem élyi szám ító g ép ek b ő l vagy m u n k aállo m áso k b ó l állnak, am ely ek et gigabites kö zp o n ti m em ó ria, a nagyon gyors lem ezek és h áló za t volt. T öb b n y ire nagy m eny-
1 .B E V E Z E T É S 1.4. N É H Á N Y SZ Á M fT Ó G É P C S A L Á D 53
52

nyiségű tudom án y o s és m érn ö k i szám ításo k ra, k ö ztü k csillag ren d szerek ü tk ö z é sé ­ Tranzisztorok
Lapka Dátum MHz Memória Megjegyzés
nek szim ulációjára, új gyógyszerek szin tetizálására vagy a rep ü lő g ép szárnya körül száma
kialakuló légm ozgás m od ellezésére h aszn álták őket. Az u tóbbi években azo n b an Az első egylapkás
4004 1971/4 0,108 2 300 640 B
a C O W -k ugyanazt a szám ítási k ap acitást sokkal olcsóbban biztosítják, így a valódi mikroprocesszor
szup erszám ítógep ek m ára k ih aló félb en vannak. Az első 8 bites
8008 1972/4 0,108 3 500 16 KB
mikroprocesszor
Az első általános célú
8080 1974/4 2 6000 64 KB
egylapkás CPU
Az első 16 bites egylapkás
1.4. Néhány számítógépcsalád 8086 1978/6 5-10 29000 1 MB
CPU
8088 1979/6 5-8 29000 1 MB Az IBM PC processzora
K önyvünkben h áro m szám ító g ép típ u sra k o n cen trálu n k : a szem élyi szám ító g ép ek ­ 80286 1982/2 8-12 134000 16MB Megjelent a memóriavédelem
re, a szerverekre és a beág y azo tt szám ító g ép ek re. A szem élyi szám ítógépekkel 80386 1985/10 16-33 275 000 4 GB Az első 32 bites CPU
azért foglalkozunk, m e rt m in d en bizonnyal m in d en olvasónk k ap cso latb a k erü lt 80486 1989/4 25-100 1,2 millió 4 GB 8 KB beépített gyorsítótár
m á r eggyel. A szerv erek k el azért, m e rt ezek b iztosítják az in te rn e t összes szolgál­ Két csővezeték, későbbi
Pentium 1993/3 60-233 3,1 millió 4 GB
tatását. V égül, b ár felhasználóik szám ára lá th a ta tla n o k , a beág y azo tt szám ító g é­ modellekben MMX
pek vezérlik au tó in k at, televízióinkat, m ik ro h u llám ú sü tő in k et, m o só g ép ein k et és Kétszintű beépített
Pentium Pro 1995/3 150-200 5,5 millió 4GB
gyakorlatilag m in d en m ás, 50 do llárn ál d rág áb b elek tro m o s b ere n d ez é sü n k e t. gyorsítótár
E b b en a fejezetb en röv id en b e m u ta tju k azt a h á ro m szám ító g ép et — a fenti Pentium Pro MMX
Pentium II 1997/5 233-450 7,5 millió 4 GB
k ateg ó riák b ó l egyet-egyet — , am ely ek et könyvünkben állan d ó p é ld a k é n t fo gunk utasításokkal

használni. E zek a P en tiu m 4, az U ltraS P A R C III és a 8051. Pentium Ili 1999/2 650-1400 9,5 millió 4 GB SSE utasítások 3D grafikához
Hyperthrpading és még több
Pentium 4 2000/11 1300-3800 42 millió 4 GB
SSE utasítás

1.4.1. A Pentium 4 áttekintése 1.11. ábra. Az Intel processzorcsalád. Az órajeleket MHz-ben (megahertz) adtuk meg, ahol
I MHz másodpercenkénti 1millió ciklusnak felel meg
1968-ban R ó b ert N oyce, a szilikon in teg rált á ra m k ö r feltaláló ja, a szabályáról h í­
res G o rd o n M o o re és egy San F ranciscó-i befektető', A rth u r R ock m em ó rialap k ák A z In tel a 8008-asban nem sok esélyt látott, ezért kis teljesítm ényű gyártósort ál­
g yártására m e g a lap íto tta az In tel C o rp o ra tio n t. A z első évben az In tel csak 3000 lított fel. M indenki m eg lep etésére a kereslet h atalm as volt, e z ért nekifogtak egy új,
d o llár é rték b en a d o tt el lap k ák a t, de az üzlet azó ta fellendült. de a 8008-as 16 kilobájtos m em ó riak o rlátját tú llép ő lapka tervezéséhez. (A korlát
A z 1960-as évek végén az e lek tro m ech an ik u s szám o ló g ép ek ak k o rák voltak, a lapka csatlakozópontjainak szám ából ered t.) A z eredm ény az 1974-re elkészült
m int egy m ai lézern y o m tató , a súlyuk p edig a 20 kg-ot is e lé rh e tte . 1969 sz e p te m ­ 8080-as, egy kicsi, általános célú C P U lett. A PD P-8-hoz h asonlóan viharos gyorsa­
b e ré b e n a ja p á n B usicom cég egy 12 speciális lap k á ra szóló m eg ren d eléssel k e ­ sággal h ó d íto tta m eg az ipart, és azonnal tö m eg áru lett a piacon. C sakhogy a D E C
reste m eg az In telt; a lap k á t egy te rv e z e tt e lek tro n ik u s szám o ló g ép b e k ívánták ezres nagyságrendi! eladásaival szem ben az In tel m illiószám a d ta el az új C P U -t.
b eép íten i. Ted Ilo ff, az In te l m érn ö k e k a p ta m eg a fe la d a to t, és m iu tá n átn é z te a 1978-ban jö tt a 8086-os, egy v ad o n atú j egylapkás 16 bites C P U . B ár a 8080-hoz
terveket, felism erte, hogy a fela d a t egy egyetlen la p k á ra in te g rált 4 b ites általán os h aso n ló ra tervezték, nem volt vele teljesen kom patibilis. A 80>S6-ost a vele azonos
célú C PU -val is m eg o ld h ató , am i ráad ásu l egyszerűbb és olcsóbb is. így szü letett felép ítésű 8088-as k ö vette, am ely ugyanazokat a p ro g ram o k at tu d ta fu ttatn i, de
m eg 1970-ben az első, 2300 tra n zisz to ro s egylapkás C P U , a 4004-es (Faggin és tá r­ n em 16 bites, h an em 8 bites sínnel, em iatt lassabb, de olcsóbb volt a 8086-osnál.
sai, 1996). A m ik o r az IB M a 8088-ast v álaszto tta az e re d e ti IB M P C processzo rán ak , ez a
É rd e m e s m egjegyeznünk, hogy sem az In tel, sem a B usicom n em tu d ta , m it is lapk a lett a m é rté k a d ó a szem élyi szám ítógépek ip arában.
alk o to tt. A m ik o r az In tel e lh a tá ro z ta, hogy a 4004-est m ás célo k ra is kip ró b álja, S em a 8088-as, sem a 8086-os nem tu d o tt 1 m eg ab ájtn ál nagyobb m em ó riát
felaján lo tta a B usicom nak, hogy visszavásárolja az új lap k ára v o n atk o zó jo g o k a t m egcím ezni. A z 1980-as évek elejére ez egyre súlyosabb p ro b lém a lett, így az Intel
azért a 60000 d o llá ré rt, am it a B usicom a fejlesz tésért fizetett. Az a já n la tá t az o n ­ megtePv'ezte a 8086-ossal felülről kom patibilis v áltozatot, a 80286-ost. A lapvető
nal elfogadták, az In tel ped ig n e k iláto tt a lap k a 8 bites v álto zatán ak , a 8008-asnak u tasításai a 8088-as, illetve 8086-oséval lényegében m egegyeztek, de a m em ó ria­
a fejlesztéséhez, am it 1972-ben b e is fejezett. A 4004-essel és 8008-assal k ezd ő d ő szervezés m erő b en m ás, és a korábbi lapkákkal való kom patibilitás követelm énye
In tel család az 1.11. á b rá n láth ató . m ia tt elég ügyetlen volt. A 80286-ost az IB M PC/A T-ben és a PS/2-esek középtel-
54 1. BE V E Z E T É S 1.4. N É H Á N Y s z á m í t ó g é p c s a l á d 55

jcsítm ényű v álto zataib an használták. A 808(S-ashoz h aso nló an ez is igen sikeres r - y fg s s K S i
volt, elsősorban azért, m ert a 808(S-as gyorsabb v álto zatán ak ta rlo ttá k .
A következő lépés az 1985-ben b ev ezetett valódi 32 bites, egylapkás C P U , a
80386-os volt. A 80286-oshoz h aso n ló an a 80386-os is a 8080-asig b ezáró lag m in ­
den régebbi válto zattal tö bbé-kevcsbe kom patibilis volt. A felülről kom patib ilitás
m iatt áldás volt azoknak, akik régi szoftvereiket m eg ak a rtá k ta rta n i, ugyanakkor
b ü n tetés az egyszerű, á tlá th a tó és a d ivatjam últ teeh n o ló g ia hibáitól m en tes új a r­
c h itek tú rára vágyók szám ára.
Négy évvel később m egjelent a 80486-os. Ez lényegében a 80386-os gyorsabb
v áltozata volt, lap k áján azonban leb eg ő p o n to s egység és 8 kilobájtnyi gy o rsító tár
is helyet kapott. A gyorsítótár a gyakran használt m em óriaszavak ta rta lm á t a p ro ­
cesszorban, illetve ahhoz közel táro lja, ezzel küszöböli ki a lassabb m em ó riáh o z
fordulást. A több p ro cesszo ro s ren d sze re k n e k a 80486-osba b e e p íte lt tám o g atása
lehetővé tette, hogy a gyártók tö b b C P U -t ta rtalm a z ó közös m em ó riát használó
ren d szerek et építsenek.
E kkorra az Intel is rájött (egy védjegysértési p er elvesztése u tán), hogy szám ok
(m int a 80486) nem védjegyezhetők, ezért a következő generációnak m ár nevet
adott: Pentium (az ötös szám görög nevéből: jt í -v t e ) . A 80486-ossal ellentétben,
am ely meg csak egy belső csővezetékkel rendelkezett, a P entium nak m ár k eltő volt,
és így kétszer gyorsabb is lett (a csővezetékről a 2. fejezetben beszélünk részletesen).
A term elés későbbi folyam án az Intel speciális MMX (M ultiM edia eX teiisioii,
m ultim édiás kiegészítések) u tasítá so k at é p íte tt be. E zek célja a hang- és video-
a d ato k feldolgozásához szükséges szám ítások felgyorsítása volt, am ivel szükségte­ System Interface - Rendszerinterfész Sched - Ütemező
L2 Cache - L2 gyorsítótár FP Exec - Lebegőpontosművelet-végrehajtó
lenné te tté k a különleges m u ltim éd ia-társp ro cesszo ro k alk alm azását.
Decode - Dekódoló Out of Order Control - Sorrendenkívüliség-vezérlő
A kik a m egjelen ő követk ező g en eráció t Scxium (a h ato s .szám latin neve; sex)
Memory Control - Memóriavezérlő Trace Cache - Nyomkövető gyorsítótár
elnevezéssel várták, csalódtak. A P entium név m ár olyan ism ertté vált, hogy a re k ­ L1 Cache-L1 gyorsítótár UCode
lám szakem berek m eg ak a rták ta rta n i, így az új lapka a Pentium P ro nevet kapta. Int Exec - Egészművelet-végrehajtó
B ár neve alig té r cl elő d jétő l, ez a pro cesszo r kom oly szakítás a m ú lttal. N em a
csővezetékek szám át szap o ríto tták , h an em a Pentium Pro belső felép ítését v álto z­ 1.12. ábra. A Pentium 4 lapka. A fényképet a szerzőijog tulajdonosa, az Intel Corporation (2003)
ta ttá k m eg úgy, hogy a k ár öt u tasítás egyidejű v ég re h ajtására is képes volt. engedélyével közöljük
A Pentium Pro másik újdonsága a kétszintű gyorsítótárban rejlett. A procc.s.szor
lapkáján a gyakran használt utasítások és adatok táro lására külön-külön egy-egy 8 ki­ volt a koráb biaknál. A 3 ,0 6 G llz -e s v áltozatban egy érd ek es új tulajdonságot is
lobájt m éretű nagy sebességű m em ória szolgál. A Pentium Pro-csom aghoz - b ár nem b evezettek , a h y p crlh read in g et. Ez a pro g ram o k szám ára lehetővé tette, hogy a
közvetlenül a lapkán - m eg egy 256 kilobájtos 2. szintű gyorsítótár is tartozott. m u n k át két vezérlési szálra bontsák, am elyet a Pentium 4 p árh u zam o san fu tta th a t,
A nagy g yorsító tár elle n é re a P entium Pro nem re n d e lk e z e tt az M M X -utasítás- ezzel felgyorsítva a végrehajtást. (A h y p erth rcad in g rő l a 8. fejezetben részleteseb ­
készlettel (m ert az Intel nem volt képes ilyen n agym éretű m egfelelő teljesítm é­ ben is szólunk m ajd.) K iegészítésként további SSE utasítások k erü ltek a proeesz-
nyű lapkát gyártani). A m ik o r a tech n o ló g ia fcjlődé.se lehetővé te tte az M M X és a szorba, ezzel tovább gyorsítva a hang- és v id eo ad ato k feldolgozását. Az 1.12. áb ­
g yorsítótár egy lap k ára in teg rálását, az új term ék P entium II néven k erü lt fo rg a­ rán láth ató egy Pentium 4 lapka. A valóságban, a m aga 16,0 m m x 13,5 m m -es m é-
lom ba. A következő lépés m ég tö b b m u ltim éd ia-u tasítás, SSE (Stream iiig SIM D rétével nagyon nagy lapkának szám ít.
Extensions) ho zzáad ása volt a tovább jav íto tt 3D grafika é rd e k é b e n (R am an és A fent em lített asztali C P U -k vonala m ellett az Intel ném ely P entium lap k ájá­
társai, 2000). A z új lap k át ugyan P en tiu m II 1-nak hívták, de belül lényegében egy nak különleges piacra szánt speciális változatait is elkészítette. 1998 elején b ein d í­
Pentium II volt. to tta a Celeron term ék v o n alat, a Pentium II alacsonyabb árfekvésű és teljesítm é­
A következő Pentium m ár alap v e tő en m ás belső arc h ite k tú rá ra ép ü lt. A z e se ­ nyű v álto zatát a kisebb PC-k processzoraként. F elépítését tekintve a C elero n azo ­
m ény m eg ü n n ep lések én t az Intel a róm ai szám ozásról á tté rt az a ra b ra , és így nos a Pentium Il-vel, ezért külön nem foglalkozunk vele. U gyancsak nem tárgyal­
Pentium 4-nek k eresztelte. A P entiiun 4, a szokásoknak m eg felelően gyorsabb juk külön a Pentium II egy m ásik változatát, az 1998 jú n iu sáb an b e je le n te tt Xe(»n
56 . BEV EZETÉS
1.4. N É H Á N Y S Z A m IT Ó G É P C SA L Á D 57

p rocesszort sem . E zt a nagy teljesítm ényű szem élyi szám ító g ép ek p ro cesszo rán ak B ár vélhetően a M oore-szabály m ég éi-vényben m arad a következő években, egy
tervezték nagy g y o rsító tárral, gyors sínnel és ja v íto tt m u ltip ro cesszo ro s tám o g a ­ m ásik p ro b lém a kezdi beárnyékolni: a hőkibocsátás. A kisebb tran zisztorok leh e­
tással. A Pentium Ill-b ó l szintén készült X eon-változat. tővé teszik a m agasabb ó rajelek h asználatát, am ihez viszont m agasabb feszültség
200Ü n o v em b eréb en az In tel te h át fo rg alo m b a h o zta a P entium 4-et, am ely b á r szükséges. A felvett energia és a kibocsátott hő a feszültséggel négyzetesen arán y o ­
u gyanazokat a p ro g ram o k a t fu tta tta , m int a P en tiu m III és a X eon, belső felép íté­ sak, te h á t m inél gyorsabban fut egy processzor, annál tö b b hőtől kell m egszabadul­
sében teljesen új volt. ni. 3,6 G H z-en a P entium 4 fogyasztása 115 w att. E szerin t nagyjából annyi hőt te r­
2003-ban az In tel b e m u ta tta a P entium M (m in t m obil) lapkát, m elyet sp eciáli­
m el, m int egy 100 w attos izzó. M ég nagyobb ó rajeln él a helyzet tovább rom lik.
san h o rd o zh ató szám ító g ép ek h ez (n o teszg ép ek ) terv eztek . liz a lapka a C e n trin o 2004 n o v em b eréb en az Intel tö rö lte a 4 G H z-es P entium 4-es vonalat, m ert
arc h itek tú ra része volt, m elynek céljai az alacsonyabb energiafogyasztás, így hosz- p ro b lém ák voltak a hőelvezetéssel. H atalm as v en tiláto ro k seg ítenének, de a zaj,
szabb ak k u m u lá to r-é le tta rta m , kisebb, k önnyebb szám ító g ép ek és az IE E E 802.11 am elyet k eltenek, nem a ra tn a o sztatlan sikert a felhasználók k ö réb en . A nagyszá­
(W í Im) szabványra é p ü lő b e é p íte tt v ezeték nélküli háló zat leh ető ség e. A z Intel m ító g ép ek e setéb en haszn álato s vízhűtés viszont az asztali gép ek e setéb en nem
tervei között szerep el ú jab b lapkák kifejlesztése kü lö n leg es alk alm azások céljai­ jö h e t szóba (no teszg ép ek n él pedig m ég kevésbé). K övetkezésképpen, az ó ra je ­
ra, nn'nt p éld áu l a házi sz ó rak o ztató elek tro n ik ai b ere n d e zé se k és az IE E E 802.16 lek k o ráb b i k ö nyörtelen m en etelése m eg to rp an n i látszik, legalábbis am íg az Intel
(W iM ax) noteszgépek. m érn ö k ei ki nem találják, hogyan szabaduljanak m eg h atékonyan a term elt hőtől.
A z összes In tel-lap k a felülről k om patibilis az elődjével, vissza egészen a 8086- E h ely ett az Intel jö v ő re vonatk o zó tervei szerint két C PU k erü ln e egy lap k ára egy
osig. M ás szóval a P entium 4 a 8086-os p ro g ram jait m in d en m ó d o sítás nélkül képes nagy közös h asználatú gyorsítótárral egyetem ben. A z energiafelvétel és a feszült­
fu ttatn i. Az Intel szám ára m indig is k ö vetelm ény volt ez a k o m p atib ilitás - azért, ség, illetve az órajel közötti kapcsolatból következően két C P U egy lapkán sokkal
hogy felhasználói m eg ő rizh essek a szoftverbe fe k te te tt é rték e ik et. T erm észetesen kevesebb e n erg iát fogyasztana, m int egy C P U , am ely kétszer olyan gyorsan m ű k ö ­
a Pentium 4 háro m nagyság ren d d el ö sszetetteb b , m int a 8086-os volt, te h á t elég dik. E bből következik, hogy a M oore-szabály ad ta leh ető ség ek et a jövőben egyre
sok m in d en t tud, am it a 8086-os nem . A z ap rá n k é n ti bővítg etés e re d m é n y e k é p ­ nagyobb gyo rsítótárakkal, nem pedig m agasabb ó rajelek k el lehet kiaknázni (m ivel
pen m essze nem olyan elegáns a felép ítése, m in th a a P entium 4 tervezői 42 m illió a m em ó ria csak keveset fogyaszt).
tranzisztorból az utasításkészlet ism eretéb en teljesen ú jraterv ezn ék .
É rdekes, hogy b á r M o o re szabályát hosszii ideig a m em ó ria b itjein ek szám á­
ra alkalm azták, az ugyanúgy érvényes a p ro cesszo rlap k ák ra is. H a az 1.11. áb rá n
1.4.2. UltraSPARC III áttekintése
m eg ad o tt tran zisz to rszám o k at logaritm ikus skálán áb rázo lju k a bevezetési id ő ­
p o n to k függvényében, láth a tó , hogy az m egfelel M o o re szabályának. Ez látszik az
A z 1970-es években a U N IX nagyon népszerű volt az egyetem eken, szem élyi szá­
1.13. ábrán.
m ító g ép ek en azonban nem fu to tt, így a U N IX szerelm esei kénytelenek voltak
az olyan (gyakran tú lte rh e lt) időosztásos m inigépeken dolgozni, m int például a
P D P - 1 1 vagy a VAX, 1981-ben A ndy B eehtolsheim , a S tanford E gyetem ném et
hallgatója - m egunva, hogy a szám ító k ö zp o n tb a kell eljárnia, hogy U N IX -o t hasz­
nálhasson - elh atáro zta, hogy kész elem ekből felépít m agának egy saját U N IX -
m unk aállo m ást. A gépet SU N -1 névre keresztelte (S tan fo rd U niversity N etw ork).
B eeh to lsh eim rögtön fe lk eltette V inod K hosla, a 27 éves indiai érd ek lő d ését,
aki ég ett a vágytól, hogy 30 éves k o rára m illiom osként nyugdíjba vonulhassoti.
K hosla m eggyőzte B echtolsheim ct, hogy alapítsanak v állalatot S un-m unkaál-
lom ások é p ítésére és forgalm azására. K hosla felvette Scott M cN ealyt, egy m á­
sik stan fo rd i h allgatót a gyártás irányítására. A szoftver k észítésére Bili Joy-t, a
B erkeley U N IX vezető tervezőjét alkalm azták. Ő k négyen a la p íto tták m eg 1982-
b en a Sun M icrosystem s vállalatot.
A z első term ék , a M o to ro la 68020 C P U -ra é p ü lő S u n -1 , m ajd az ezt követő,
szintén M o to ro la C P U -t h asználó S u n -2 és S u n -3 is azonnal sikeres lett. A g é­
pek teljesítm énye az akkori szem élyi szám ítógép ekéhez képest jóval nagyobb volt
(in n en a „ m u n k aállo m ás” elnevezés), és eleve háló zatb an m űkö d ő k n ek tervez­
A bevezetés éve ték ők et. M in d en S u n -m unkaállom ásban E th e rn e t-csato ló k árty a volt, és 'l'C P/IP-
szoftverrel k ap cso ló d o tt az in tern et elődjéhez, az A R P A N E T hálózathoz.
1.13. ábra. Moore szabálya (Intel-) processzorlapkákra alkalmazva
58 1, BE V E Z E T É S 1.4. N É H Á N Y SZ Á M lT Ó G É P C S A L Á D 59

1987-re a Sun m á r évi félm illiárd d ollár érték b en a d o tt el ren d szerek et, és ekkor A z U ltraSPA R C kom oly alkalm azásokat is m egcélzott, m int például több tucat
elhatározták, hogy saját processzort terveznek a U niversity o f C ah fo rn ia at B erkeley p ro cesszo rt tartalm azó w ebszerverek, ak ár 8 T B [1 TB (terab ájt) = 10'- bájt] fizikai
forradalm ian új m o d elljének (R IS C II) a m intájára. E z a C P U , a SPARC (Scalable m em óriával. K isebb változatai azonban noteszgépekbe is m egfelelők.
Processor ARChitecture, skálázható processzorarchitektúra) lett a S u n -4 m u n k a­ A z U ltraS P A R C I-et az U ltraS P A R C II, az U ltraS PA R C III, m ajd az U ltra ­
állom ás alapja. R övid időn belül m in d en S un-gépbe SPARC C P U került. SPA RC IV követte. E zek a m odellek elsősorban az órajelsebességben té rn ek cl,
Sok m ás vállalattal szem ben a Sun úgy d ö n tö tt, hogy a SPARC p ro cesszo rt nem de m in d en egyes fejlesztésbe néhány új tu lajd o n ság is bek erü lt. K önyvünkben a
m aga fogja előállítan i. E h ely ett tö b b cégnek is á ta d ta a gyártási jo g o k at, és azt re ­ SPA RC a rc h itek tú ra tárgyalása során első so rb an a 64 bites V9 U ltraSPA R C III Cu
m élte, hogy a k ö zö ttü k kialak u ló verseny a teljesítm ény n ö v ek ed éséh ez, és az árak lesz a p éld a. A z U ltraSPA R C IV lényegében egy kétp ro cesszo ro s változat, m ely­
csökkenéséhez vezet m ajd. V alóban, a gyártók szám os, k ü lö n b ö ző te ch n o ló g iára b en k é t U ltraSPA R C III k a p o tt helyet egyetlen C P U lapkán, és osztozik ugyan­
épülő, kü lö n b ö ző ó rajelsebességgel m ű k ö d ő la p k át k ezd te k elő állítan i v áltozatos azon a m em órián. E rrő l később m ég szólunk, am ik o r a m ultiprocesszoros re n d ­
áro n . A M icroSPA RC , a H yperSPA R C , a SuperSPA R C , a T urboSPA RC m ind ezek szerek et tárgyaljuk a 8. fejezetben.
közül való. B ár ap ró dolg o k b an e lté rő p ro cesszo ro k ró l van szó, m indegyik b in á ri­
san kom patibilis és m ó d o sítás n élkül tu d ja u g y an azo k at a felhasználói p ro g ra m o ­
k at fu ttatn i. 1.4.3. A 8051
A Sun a SPA RC -ot m indig is nyílt a rc h ite k tú ra k é n t kezelte, szám os alkatrész- és
rendszerbeszállítóval, és olyan ip art a k art felép íten i, am ely versenyképes leh et az - H arm ad ik példánk nagyban eltér az elsőtől (a P entium 4-től, am elyet a személyi szá­
a kkor m ár In tel-a lap ú p ro cesszo ro k u ra lta - szem élyi szám ítógépek p iacán. A Sun m ítógépekben használnak) és a m ásodiktól (az U ltraSPA R C Ill-tó l, am elyet szerve­
lé treh o zta a SPARC In te rn a tio n a l ip ari k o n zo rcium o t a SPARC arc h ite k tú ra folya­ rekben alkalm aznak). E z a 8051-es, am ely beágyazott rendszerekben használatos. A
m ato s fejlesztésén ek k o o rd in álásá ra, ezzel m egnyerve azon vállalato k bizalm át is, 8051-es tö rté n ete 1976-ban kezdődött, am ikor a 8 bites 8080-as m ár két éve a piacon
akik ugyan érd ek lő d te k a SPARC irán t, de egy versenytárs te rm é k éb e n em ak artak volt. A készülékgyártók elkezdték beépíteni a 8080-ast berendezéseikbe, de hogy egy
pénzt fektetni. E m ia tt m eg kell k ü lö n b ö z te tn ü n k a SPARC a rc h ite k tú rá t - amely teljes ren d szert építhessenek, szükségük volt a 8080-as C P U lapkára, egy vagy több
az u tasításren d sz e r és a p ro g ram o zó által lá th a tó tu lajd o n ság o k specifikációja - és m em órialap kára, valam int egy vagy több B/K lapkára. E nnek a legalább három féle
an n ak tényleges m egvalósításait. K önyvünk m ind k ettő v el foglalkozik, az általán o s lapkának és azok összekapcsolásának költsége szám ottevő volt, és így a szám ítógépek
SPARC arch itek tú ráv al és a S u n -m u n k aállo m áso k b a é p íte tt egyik k o n k ré t SPARC beágyazott rendszerek ben tö rté n ő alkalm azását az alapvetően nagy és drága b e re n ­
lapkával egyaránt; utóbbival a 3. és 4. fejezetb en , a C P U lap k ák tárgyalásánál. dezésekre k orlátozta. Sok gyártó arra kérte az Intelt, hogy a költségek csökkentése é r­
A z első SPA RC 36 M H z-es, valódi 32 bites gép volt. P rocesszora, az lU (Integer d ek éb en az egész szám ítógépet (C PU , m em ória és B/K) integrálja egyetlen lapkára.
Unit) szegényes és egyszerű volt, m indössze h áro m utasítástíp u ssal és 55 u ta sítás­ A z In tel válaszlépésként elk észítette a 8748-as lapkát, a 17 000 tranzisztoros
sal ren d elk ezett. E zt a leb eg ő p o n to s egység 14 utasítással b ő v ítette ki. L áth atju k m ikro v ezérlőt, am ely ta rta lm a z o tt egy 8080-hoz haso n ló processzort, 1 KB csak
az alapvető külö n b ség et az In tel-irán y zattal szem ben, am ely 8 és 16 bites la p k ák ­ olv ash ató m em ó riát a program szám ára, egy 64 bájto s írh ató-olvasható m em ó riát
kal indult (8088, 8086, 80286), és csak azu tá n lett belőle a 32 bites 80386-os lapka. a válto zó k n ak, egy 8 bites időzítőt és 27 B/K v o n alat a kapcsolók, nyom ógom bok
A SPARC fejlődésében csak 1995-ben következett be kom oly szakítás a m últtal, és lám p ák v ezérlésére. A lapka, b ár kezdetleges volt, kereskedelm i sikert hozott,
am ikor is kifejlesztették a SPARC arch itek tú ra 9-cs verzióját, am ely egy valódi 64 b i­ m elynek h a tá sá ra az Intel 1980-ban elő ru k k o lt a 8051-essel. Az új lapkán 60 000
tes architektúra, 64 cím bittel és 64 bites regiszterkészlettel. A z UltraSPARC I volt tra n zisz to r b izto síto tta a sokkal gyorsabb C P U -t, továbbá 4 KB csak olvasható
1995-ben az első Sun-m unkaállom ás, am ely a V9 (V ersion 9) arch ite k tú rá ra ép ü lt m em ó riát, 128 b ájt írh ató -o lv ash ató m em ó riát, 32 B/K vonalat, egy soros p o rto t és
(Trem blay és O ’C o n n o r, 1996). A n n ak ellenére, hogy 64 bites, binárisan k o m p atib i­ k ét 16 bites időzítőt ta rtalm azo tt. E zt h am aro san követték az Intel által M C S-51
lis volt az akkori 32 bites SPARC gépekkel. családnak k eresztelt so ro zat tagjai, m elyeket az 1.14. áb rán m u tatu n k be.
A z U ltraSPA R C új te rü le te k et is m egcélzott. A m íg a ko ráb b i g ép ek et alfan u m e­
rikus ad ato k kezelésére tervezték, szövegszerkesztők és táb lázatk ezelő k fu tta tásá ra Lapka Programmemória Memóriatípus RAM Időzítők Megszakítások
szánták, addig az U ltraS P A R C -ot tervezői k ezd etek tő l fogva k épek, hang, v ideó és 8031 0 KB 128 2 5
általában m ultim éd ia kezelésére szánták. A 64 bites arc h itek tú ra és egyéb ú jd o n sá ­ 8051 4 KB ROM 128 2 5
gok m ellett 23 új u tasítás is m egjelent, tö b b ek k ö zö tt a k ép p o n to k (pixelek) 64 b i­ 8751 8 KB EPROM 128 2 5
tes szavakba tö rté n ő be-, illetve kicsom agolására, kép ek sk álázására és fo rg atásá­ 8032 0 KB 256 3 6
ra, adatblokkok m ozgatására, v alam int videók valós idejű be- és kitö m ö rítésre. Az 8052 8 KB ROM 256 3 6
Intel M M X -utasításaih o z haso n ló an ez az ún. VIS (Visual Instruction Set, vizuális 8752 8 KB EPROM 256 3 6
utasításkészlet) u tasításk észlet biztosítja a gép általán o s m u ltim édia-képességeit.
1.14. ábra. fKz MCS-51család tagjai
60 1. B E V EZ E T É S 1.5. M ÉR T É K E G Y SÉG E K 61

E zen lapkák m indegyike csak olv ash ató m em ó riái használ a p ro g ra m o k szám ára kü lönféle k ö nyvtárakat, h ibakeresőket, szim uláto rokat, tesztelő szoftvereket és sok
cs egy kevés ( r h a l ó - o l v a s h a tó m em ó riát, azaz R A M - o t (Randum A ccess Memory, m ást. Szám os teljes fejlesztőrendszer találh ató a piacon, am elyekkel felgyorsítható
véletlen elérésű m em ória) az a d a to k táro lá sá ra . A 8031-esben és a 8032-esbcn a a beágyazott hardver és szoftver fejlesztése. V égül, nagyszám ú, a 8051-est jól ism e­
p r o g r a m t á r o l ó kívül helyezkedik el, így szükség c se lé n 8 K B -nál tö b b e t is lehet rő p ro g ram o zó és h ard v erm érn ö k között könnyű jól k ép zett m u n k aerő t találni.
használni. A 3. fejezetb en tanu lm án y ozzu k a R O M -o t (Read Only Memory, csak E z a n ép szerű ség ö nm agái élteti. A beágyazott ren d szerek irán t é rd ek lő d ő k u ­
olvasható m em ória) és az E P R O M -o t (E rasable Program m able R O M , törölhető, ta tó k gyakran ép p en elterjed tség e m iatt választják m unkájukhoz, p éld áu l egy új
programozható R O M ). P illanatnyilag elég annyit tu d n u n k , hogy a tényleges te r­ e n e rg ia ta k arék o s tech n o ló g ia tesztelésére (M artin és társai, 2003) vagy hibatűrési
m ékekben használt 8051-es és 8052-es egylapkás m ikrovezérlők. M in d en k ö teg et v izsgálatokra (L im a és társai, 2002) a 8051-est.
a vásárló (például egy b e re n d e z é se k e t gyártó vállalat) igényei szerint, egyedileg A 8051-ről is ren g eteg inform áció találh ató az in tern eten . Jó kiin d u ló p o n t lehet
g yártanak le, és az m á r tarta lm az z a a v ásárló által b izto síto tt p ro g ra m o t is. a w ww.8051.com . E zen kívül m ég n ap jain k b an is je len n ek m eg könyvek a tém áb an
A hhoz, hogy kifejleszthesse a szoftvert, a m eg re n d e lő n ek szüksége van egy fej­ (A yala, 2005; C alcu tt és társai, 2004; M acK enzie és társai, 2005; M azidi és társai,
lesztőrendszerre. Itt je le n te k m eg a 8751-es és a 8752-es. E zek ugyan sokkal d rá ­ 2005).
gábbak, m int a 8051-es é.s a 8052-es, de a v ásárló p ro g ra m o zh a tja ő k e t szoftver­
ellenőrzési céljaira. H a hibát ta láln a k a p ro g ra m k ó d b an , tö rö lh e tik a 8751-es vagy
a 8752-es lap k át u ltraibolya sug árzásn ak kitéve. E zu tán pedig b e é g e th e tik az új
p ro g ram o t. A m ik o r elkészül a szoftver, elju tta tjá k a lapka g yártójához, aki azután 1.5. Mértékegységek
legyártja a speciális k ó d o t tarta lm a z ó 8051-eseket vagy 8052-eseket.
A rch itek tú ra, in terfé sz és p ro g ram o zás te k in te té b e n az M C S -51 család összes A fé lreé rté sek elk erü lése végett érd em es külön m egjegyeznünk, hogy kön>'vünk-
tagja nagyon hasonló. A z egyszerűség k ed v éért tö b b n y ire a 8051-esre h iv atk o ­ b en , m in t a szám ítástechnikában általáb an , m etrik u s egységeket h asználunk a h a ­
zunk, de ahol szükséges, rá m u ta tu n k a tö bbi lapka elté ré se ire. gyom ányos angolszász egységek (a furlon g -sto n e-fo rn ig h t ren d szer) helyett. A z
Egyesek szám ára elég fu rcsán ak tű n h e t, hogy egy tö b b m in t 20 eszten d ő s 8 b i­ alap v e tő m etrik u s elő tag o k at az 1.15. áb rán soroltuk fel. A z elő tag o k at tö bbnyi­
tes lap k át m ég h aszn áln ak , de nagyon kom oly oka van en n ek . É v e n te m integy re k ezd ő b etűjükkel rövidítjük, az egynél nagyobb egységeket pedig nagybetűkkel
8 m illiárd m ik rov ezérlő t a d n ak el, és ez a szám gyorsan növekszik. E zek a szá­ (K B, M B stb.). E gyetlen kivétel (tö rtén e lm i o kokból) a kbps a k ilobit/m ásodperc
m ok nagyságrendekkel nagyobbak, m in t a P en tiu m o k elad ási szám ai. 2001 e lő tt a (kilobit/s) esetéb en . így az 1 M bps kom m unikációs vonal 10* b ite t továbbít m á­
8 bites m ikrovezérlő k elad ása éves szinten e lm a ra d t a 4 bites m ik ro v ezérlő k élő l. so d p erc en k é n t, és a 100 psee (vagy 100 ps) ó ra 10”"' m á so d p ercen k én t ketyeg.
M anapság a 8 bites m ikrovezérlők tú lteszn ek az összes tö bbin együttvéve, és k ö ­ M ivel a milli és a m iero is m betűvel kezdődik, választani kellett. R en d szerin t m
zülük az M C S -5 1 -es a leg n ép szerű b b család. A beágyazott re n d szerek egyre n ö ­ je len ti a m illit és |.i (a görög m ű b etű ) jelöli a m ikrót.
vekvő fontosságát figyelem be véve, m in d en szám ító g ép -a rc h itek tú rá t ta n u lm á ­
nyozó e m b er szám ára e le n g e d h e tetlen , hogy az ezek b en alk alm azo tt lap k ák at, Hatvány Explicit Előtag Hatvány Explicit Előtag
k öztük az egyik leg n ép szerű b b et, a 8051-est m egism erje. 103 0,001 mílll 10' 1000 Kilo
A 8051-es sik erén ek szám os o k a van. E lő szö r is az ára. A m eg re n d e lt m ennyi­ lO'' 0,000001 micro 10‘ 1000000 Mega
ségtől függően m á r d a ra b o n k é n t 10-15 c e n té rt is m eg k ap h a tju k , nagyobb té te lb e n 10^ 0,000000001 nano 10® 1000000000 Giga
pedig ak ár m ég k ev eseb b ért. Ezzel szem ben a 32 bites m ik rovezérlő gyakran 30- 10 0,000000000001 pico 10" 1000000000000 Tera
szor annyiba kerül, a 16 bites pedig á rá t tekintve valahol a k e ttő k ö z ö tt foglal h e ­ 10-'5 0,000000000000001 femto 10" 1000000000000000 Peta
lyet. Egy verseng ő piacon egy 50 d o llár alatti term ék esetén néh án y d o llár le fa ra ­ 10-'* 0,000000000000000001 atto 10'« 1000000000000000000 Exa
gása a gyártási költségekből m e g h atáro zó h atással leh et az á rak ra és az ela d á so k ­ 10-^' 0,000000000000000000001 zepto 10" 1000000000000000000000 Zetta
ra. A 8051-es nagy n ép szerű ség én ek legfőbb oka p o n to sa n az, hogy nagyon olcsó. 10" 0,000000000000000000000001 yocto 10” 1000000000000000 000000000 Yotta
M ásrészt, több m in t féllu ca t v állalat készít 8051-eseket az In tel licencei a la p ­
ján. T erm ékeik széles seb esség tarto m án y t fed n e k le, az e re d e ti 12 M H z-eslől a 1.15. ábra. Az alapvető metrikus előtagok
100 M H z-es változatokig, és szám os e lté rő gyártási és tokozási tech n o ló g iát alk a l­
m aznak. E z a verseny nem csak az á ra k at ta rtja alacsonyan, h a n e m a nagy m eg ­ M egjegyezzük, hogy a m em ória, lem ez, fájl és ad atbázisok m érete esetén a m in ­
ren d elő k is sokkal jo b b a n érzik m agukat, h a n em kell egyetlen b eszállító ra hagyat­ d e n n a p i ipari gyakorlatban az egységek kicsit m ást je len ten ek . Itt a kilo jelen tése
kozniuk. 2 ‘®(1024), n em pedig 10’ (1000), mivel a m em óriák m érete m indig a k e ttő h atv á­
H arm ad so rb an , mivel a 8 0 5 1-es m ár olyan rég ó ta jelen van, hatalm as m ennyisé­ nya. így 1 KB m em ória 1024 bájtból, nem pedig 1000 bájtból áll. H aso n ló an , 1 MB
gű szoftver létezik rá, b eleértv e assem b lerek et, fo rd ító k at C és egyéb nyelvekhez, m em ó ria 2“ (1048576) bájtból, 1 G B m em ó ria 2^' (1 073 741824) bájtból. 1 TB
62 1. B E V E Z E T É S 1.7. FELA D A T O K 63

m em ó ria pedig 2'*" (1 0 4 9 5 1 1 6 2 7 7 7 6 ) bájtb ó l áll. A z 1 kbps k om m unikációs vonal e z é rt egyik szint sem é rth e tő igazán az alsóbb szint - am ely aim ak k ialakítását ösz­
azonban 1000 b ite t továbbít m á so d p e rc e n k é n t és a 10 M bps LAN m áso d p e rc e n ­ tö n ö z te - alapos m eg értése nélkül D idaktikailag is logikusabb az egyszerűbb alsó
k én ti 10000000 b ites sebességgel m űködik, m e rt ezek a sebességek nem a k ettő szintek felől a bonyolultabb m agasabb szintek felé haladni, m int fordítva.
hatványai. S ajnálato s m ó d o n sokan hajlam osak ezt a k ét re n d sz e rt összekeverni, A 3. fejezet a digitális logika szintjéről, a gép valódi hard v erérő l szól. T árgyaljuk
főleg lem ezek m éretén él. A fé lre érté se k elk erü lése vég ett könyvünkben a KB, a k a p u k at és ezekből az áram k ö rö k felép ítésén ek m ódját. A digitális áram k ö rö k
M B, G M és T E jelö lést re n d re a 2'", 2-“, 2-’" és 2 ^ b ájtra, m íg a kbps, M bps, G b p s és elem zésén ek egyik eszközét, a B oole-alg eb rát is m egism erjük. A sínek, különösen
T bps jelö lést re n d re a m áso d p ercen k én ti 1 0 \ 10^ lO*' és I0 ‘- bps-rc használjuk. az elte rjed t PC I sín is a fejezet tárgya. Szám os ipari p éld át m u tatu n k be, többek
k ö zö tt a m ár em lített h áro m állandó p éld án k at.
A 4. fejezet b e m u ta tja a m ik ro arc h itek tű ra szintjét és en n ek vezérlését. A szint
funkcióinak fő fe la d a ta a fö lö tte lévő 2. szint u tasításain ak értelm ezése, ezért erre
1.6. Könyvünk tartalmáról a té m á ra és az ezt illusztráló p é ld á k ra k o n cen trálu n k . A fejezetb en n éhány k o n k ­
ré t g ép m ik ro a rc h ite k tű ra szintjét is m egism erjük.
K önyvünk a tö bb szin tű szám ító g ép ek rő l (a m ai szám ítógépek e lsö p rő tö b b ség é­ A z 5. fejezel a szám ítógépgyártók által a gép nyelveként h ird e te tt ISA -szint is­
rő l) és ezek felép ítésérő l szól. N égy szin tet fo gunk részletesen tárgyalni; a digitális m e rte tő je . Itt ism ertetjü k részletesen p é ld a k é n t használt gépeinket.
logika szintjét, a m ik ro arc h ite k tű ra szintjét, az ISA -szintet és az o p eráció s ren d szer A 6. fejezetb en az o p eráció s re n d szer gép szintjén szokásos u tasításo k at, m e ­
gép szintjét. M indegyiknél e lső so rb an azt vizsgáljuk, hogy m i a szint m eg h atáro zó m óriaszervezést és vezérlési szerk ezetek et ism ertetjük. Az itt használt péld ák
tervezési elve (és m iért p o n t ez), m ilyen u tasítás- és ad attíp u so k h aszn álh ató k , h o ­ a nagyobb Peiilium 4-es kiszolgáló ren d szerek en n ép szerű W indow s X P és az
gyan szerveződik a m em ó ria- és a cím zési ren d szer, v alam in t m i a szint m egvalósí­ U ltraS P A R C lll-o n használt U N IX .
tási m ódszere. A z ez ek et és a h aso n ló k é rd é se k e t tárgyaló tu d o m án y ág at a szám í­ A 7. fejezet az assem bly nyelv szintjéről szól. M agát a nyelvet és az assem bler
tó g ép ek felép ítése vagy a szám ító g ép ek arc h ite k tú rá ja néven ism erjük. m e n e teit is ism erteti. Itt érin tjü k a p ro g ram szerk esztés k érd ésk ö rét is.
E lső so rb an az elveket fogjuk hangsúlyozni, cs kevésbé foglalkozunk a részletek ­ A 8. fejezet n ap jain k egyre fo n to sab b tém ak ö rét, a p árh u zam o s szám ítógépeket
kel és a m atem atik ai h á tté rre l. N éh án y p éld án k e z é rt rendkívül leegyszerűsített, tárgyalja. Egyes p árh u zam o s g ép ekben több C P U van, cs ezek közös m em ó riát
hogy a hangsúly az elveken legyen, ne pedig a részletek en . h asználnak. M ásokban több C P U van, de közös m em ória nélkül. N ém elyek szu­
A könyvünkben b e m u ta to tt elvek gyakorlati alk alm azásán ak leh ető ség é re és p erszám ító g ép ek vagy lap k ára in teg rált ren d szerek , m íg m ások C O W -k (m unka-
tényleges alkalm azására a P en tiu m 4, az U ltraS P A R C III és a 8051 szolgál m ajd állom ás-klaszterek).
állan d ó p éld ak é n t. T ö b b okból v álaszto ttu k p o n t ezek et. E lő szö r is m indegyik A 9. fejezetb en té m ak ö rö k szerint csoportosítva, m egjegyzésekkel ellá to tt a já n ­
széles k ö rb en haszn ált, és az olvasó is valószínűleg h o zzáfér legalább egyikükhöz. lo tt iro d alm at és az irodalm i hivatkozások b e tű re n d e s listáját találjuk. E z a könyv
M ásodszor, a rc h itek tú rá ju k egyedi, így alk alm asak az ö sszeh aso n lításra, és b á to ­ leg fo n to sab b fejezete.
rítják a „milyen allern atív ák v a n n a k ? ” hozzáállást. A csak egy gép p el foglalkozó
könyvek gyakran olyan érzést k e lth e tn e k az olvasóban, hogy „lám , így kell m eg ­
tervezni egy g é p e t”, h o lo tt a terv ező k szám os k o m p ro m isszu m ra és sok k é rd é s­
ben önkényes d ö n té sre k ényszerülnek. A z olvasót a rra b áto rítju k , hogy ezek et és 1.7. Feladatok
m in d en egyéb g é p e t kritik u s szem m el tan u lm án y o zzo n , p ró b álja m eg érten i, m iért
é p p en úgy vannak a dolgok ahogy, és hogyan le h e te tt volna azo k at m ásk én t m eg ­ 1. S aját szavaival m agyarázza m eg a következő fogalm akat.
csinálni, ne pedig csak elfogadja a d o lg o k at o lyanoknak, am ilyenek. a) F o rd ító
M in d járt az elején tisztázn u n k kell, hogy ez a könyv n em a P entium 4, az b) É rte lm ező
U ltraS PA R C III vagy a 8051 p ro g ram o zásáró l szól. E ze k e t a g ép ek et a m egfelelő c) V irtuális gép
helyeken szem léltetési célo k ra használjuk, a teljesség igénye nélkül. M ély reh ató 2. M i a k ülönbség az értelm ezés és a fordítás között?
ism eretek ért az olvasó fo rd u ljo n a gyártók kiadványaihoz. 3. E lk ép zelh ető -e, hogy egy fo rd ító a m ik ro arc h itek tű ra szintjére fo rd ítso n az
A 2. fejezet a szám ítógépek fő ko m p o n en seiv el - pro cesszo r, m em ó ria és b e m e ­ ISA -szint helyett? S oroljon fel érv ek et m ellette és ellene.
n eti/k im en eti egységek - foglalkozik. A re n d sze rek felép ítésérő l ad á ttek in tést, és 4. E l tu d -e képzelni olyan tö bbszintű szám ítógépet, am elyben a digitális logika
bevezetőül szolgál a további fejezetek h ez. szintje és az eszközszintek n em a legalsó szintek? In d o k o lja vélem ényét.
A 3., 4., 5. és a 6. fejezet egy-egy, az 1.2. á b ra szerinti szinttel foglalkozik. 5. L egyen a tö bbszintű g ép ü n k m in d en szintje különböző. M in d en egyes szint
A lulról felfelé h alad u n k , ahogyan hagyom ányosan a szám ító g ép ek et is tervezték. u tasításai legyenek m -szer h atékonyabbak, m int az alsóbb szint u tasításai, azaz
A k. szint terv ezését n ag y m érték b en m eg h atáro zzák a k - 1 . szint tu lajdonságai. egy r szintű u tasítás m d a ra b r - 1 szintű u tasítás m u n k áját végzi. Továbbá té té ­
1. B E V E Z E T É S
64 1.7. FELA D ATO K 65
lezzük fel, hogy n d a ra b r szintű u tasítás szükséges egyetlen r + 1 szintű u tasí­
tás v é g r e h a j t á s á h o z . Fia egy 1. szintű pro g ram futási ideje k nnásodperc, m eny­ 17. V álasszon h áro m szem élyt, akikről úgy gondolja, napjaink szám ító g ép -h ard ­
nyi ideig futna az ezzel ekvivalens pro g ram a 2., 3. és 4. szin ten ? v e ré n e k m eg alk o tásáb an a Icg m eghatározóbbak voltak. írjo n rövid b eszám o ­
lót k ö zrem ű k ö d ésü k rő l, muta.ssa be azt is, hogy m iért ő k et választotta.
6. Az o p eráció s re n d sz e r gép szintjének néhány u tasítása azo n o s az ISA nyelv
utasításaival. E zek et az u tasítá so k at közvetleníjl a m ik ro p ro g ram h ajtja végre, 18. Ism ételje m eg az előző fe la d a to t a szám ítógcp-szt)ftverre vonatkozóan.
és nem az o p eráció s rendszer. A z előző fe la d a tra a d o tt válaszán ak tü k réb en
m it gondol, vajon m iért ez a helyzet?
7. Legyen a gép ü n k n ek az I., 2. és a 3. szintje eg y arán t értelm ező'. M indegyik é r ­
telm ező n ek n u ta sítá sra van szüksége, hogy beolvasson, m egvizsgáljon és vég­
reh ajtso n egy utasítást. Egy 1. szintű u tasítás v ég reh ajtási ideje k nan o szek u n -
dum . M ennyi a 2., 3. és 4. szintű u tasításo k v ég reh ajtási ideje?
8. M ilyen értelem b e n azonos a h ard v er és a szoftver, és milyen é rte le m b e n nem ?
9. B abbage d ifferen ciag ép én ek volt egy rö g zített p ro g ram ja , am elyet nem le h e ­
te tt m ódosítani. Vajon ez lényegében ugyanaz, m int ahogy n em m ó d o síth a tó a
C D -R O M ? Ind o k o lja válaszát.
10. N eu m an n Já n o s elveinek egyik k ö vetkezm énye, hogy a m em ó riá b a n táro lt
pro g ram ugyanúgy m ó d o síth ató , m int az a d ato k . Tud m o n d an i p éld át, am ely­
ben ez a leh ető ség hasznos le h e te ti? ijip p : g o nd o ljo n tö m b ö k ö n elvégzett m ű ­
veletekre.)
11. A 360-as so ro zat 7.‘i-<')s m odellje 5()-szer gyorsabb a 30-as m o dellnél, a ciklus­
ideje m égis csak ö tszö r gyorsabb. H ogyan m agyarázza az e ltérést?
12. A z 1.5 . és az 1.6. á b ra k ét alap v ető a re h ite k tú rá t m u ta t be. R észletezze, hogy
hogyan folyhat a b e m e n e t/k im e n e t ezek en a ren d szerek en . M elyiket ta rtja
jo b b n ak az egész re n d sz e r teljesítm én y ére nézve?
13. Tegyük fel, hogy az E gyesült Á llam o k b an élő 300 m illió e m b e r n a p o n ta telje­
sen elfogyaszt k ét csom ag, R F ID cím kével e llá to tt te rm é k e t. M ennyi R F ID
cím két kell év en te készíteni az igény k ielég ítésére? C ím k én k én t egy penny
költséggel szám olva m ennyi az összes cím ke k ö ltség e? A G D P nagyságát is­
m erve vajon ez a pénzm ennyiség akadáiyozza-c a cím kék h aszn álatát m inden
egyes elad ásra kín ált csom agon?
14. N evezzen m eg h áro m olyan készüléket, am elyek b e é p íte tt C P U -val m ű k ö d ­
h etnek.
15. V alam ikor 0,1 m ikron átm érő jű volt a m ik ro p ro cesszo r egy tran ziszto ra. M oore
szabálya szerin t m ennyi volt az átm érő je egy egy évvel későbbi m od ellb en ?
16. A zt a jogi kérd ést, hogy ki fed ezte fel a szám ító g ép et, 1973 áprilisában d ö n ­
tö tte el E arl L arso n bíró, aki az E N IA C szab ad alm aira szert tevő S perry R an d
C o rp o ratio n b en y ú jto tta szab ad alo m b ito rlási p e rt vizsgálta. Sperry R an d ál­
láspontja szerint m indenki, aki szám ító g ep et é p íte tt, jogdíjjal tarto zik neki, m i­
vel ő volt a kulcsfontosságú szab ad alm ak lulajtlonosa. A z eset 1971 jú n iu sáb an
k erü lt bíróság elé, ah o l tö b b m int 30000 b izonyítékot m u ta tta k be, és a b író sá ­
gi jegyzőkönyv több m int 200 0 0 o ld alas volt. ’lán ulm ányozza az ese te t m ég k ö ­
rü ltek in tő b b e n az in tern e ten e lé rh e tő terjed elm es m ennyiségű in fo rm áció ra
építve, és írjon beszám olót, m elyben az e se te t tech n ik ai szem p o n tb ó l tárgyalja.
Pontosan m it is szab a d a lm a zta to tt E ck ert és M auehley, és m iért ére z te úgy a
bíró, hogy ren d szerü k A ta n a so ff ko ráb b i m u n k áján alap u lt?
2 ,1 . PROCESSZOROK 67

2. Számítógéprendszerek felépítése Központi vezérlőegység (CPU)

B/K eszközök

Központi
memória
Egy digitális szám ító g ép egym ással ö sszekapcsolt p ro cesszo ro k , m em ó riák cs b e ­
m en eti/k im en eti egységek ren d szere. E z a fejezet alap v e tő ism e re te k e t nyújt e
három k o m p o n e n s és kap cso lataik m eg ism eréséh ez, biztosítja a h á tte re t az egyes
szintek részletes tan u lm án y o zásáh o z a követk ező öt fejezetb en . A p rocesszorok, Sín
m em óriák és a b em en e ti/k im e n eti egységek olyan kulcsfogalm ak, am elyek m in ­
d e n szinten m egjelen n ek m ajd, így a szám ító g ép ek felé p ítésé n e k tan u lm án y o zását 2.1. ábra. Egy egyszerű, egy processzorból és két B/K egységből álló számítógép felépítése
ezzel a h áro m m al kezdjük.
sításszám láló” név kissé félrevezető, m e rt sem m it sem szám lálunk m eg vele, e n ­
nek elle n é re az elnevezés általán o san e lterjed t. F ontos m ég az utasításregiszter
(Instruction Register, IR), am ely az é p p en v ég reh ajtás a la tt levő u tasítást ta rta l­
2.1. Processzorok m azza. A legtöbb szám ítógép m ég szám os egyéb regisztert is tartalm az, ezek n é ­
m elyike általános célú, m íg m áso k speciális célúak.
Egy egyszerű sínalapú szám ítógép felép ítése lá th a tó a 2.1. ábrán. A C P U (C e n tra l
P ro cessin g U nit, k özponti feldolgozóegjség) a szám ító g ép „agya” . F elad ata az,
hogy a központi m e m ó riáb a n tá ro lt p ro g ram o k a t vég reh ajtsa úgy, hogy a p ro g ra ­ 2.1.1. A CPU felépítése
m ok utasításait egym ás u tá n beolvassa, é rtelm ezi és vég reh ajtja. A z egyes részegy­
ségeket egy sín (bús) köti össze, am ely cím ek, a d a to k és v ezérlő jelek to v áb b ításá­ Egy tipikus N eu m ann-elvű szám ítógép egy részén ek belső felép ítése a 2.2. áb rán
ra szolgáló p árh u za m o s vezeték k ö teg . A sín leh et a C P U -t tek in tv e külső, am ely lá th a tó részleteseb b en . Ez a rész az űn. adatút (data path), am elynek részei a r e ­
összekapcsolja azt a m em óriával és a B /K egységekkel, illetve le h e t belső, ahogy giszterek (tip ik u san I-tő l 32-ig), az aritm etikai-logikai egység (ALU, Arithm etic
azt h am aro san látn i fogjuk. Logic U nit) és az ezek et összekötő n éhány sín. A regiszterek k ét A L U b em en eti
A C P U több kü lö n álló részegységből áll. A vezérlőegység fe la d ata az u tasításo k reg iszte rb e csatlakoznak, ezek et az áb rán /1-val és 5 -v el jelö ltü k . E zek a regisz­
beolvasása a k özp o n ti m em ó riáb ó l és az u tasításo k típ u sán ak m egállapítása. Az te re k táro ljá k a b em en ti ad ato k a t, am íg az A I.U m ás szám ításokon dolgozik. Az
aritm etikai-logik ai egység a p ro g ram u ta sítá sa in ak vég reh ajtásáh o z szükséges m ű ­ a d a tű t m in d en szám ítógépben nagyon fontos, ezért hosszasan fo g u k tárgyalni a
veletek et végez, m in t p éld áu l az összeadás vagy a logikai ÉS. könyv fejezeteiben.
A C P U egy k ism éretű , gyors m e m ó riá t is tartalm az, am elyben rész e re d m é n y e ­ M aga az A L U a b em en ő ad ato k o n összeadást, kivonást és egyéb egyszerű m ű ­
ket és bizonyos v ezérlő in fo rm áció k at táro l. Ez a m em ó ria tö b b regiszterből áll, v eletek et végez, és az ered m én y t a kim eneti regiszterbe teszi. E n n ek a k im en eti re ­
m indegyiknek m e g h a tá ro z o tt m é re te és funkciója van. L eg tö b b szö r az összes re ­ g iszternek a ta rtalm a visszaírható egy regiszterbe. K ésőbb, ha szükséges, a regiszter
giszter azonos m ére tű . M inden reg iszter k ép es táro ln i egy szám ot, am elynek az ta rta lm a b e írh a tó (azaz e ltáro lh ató ) a m em óriába. N em m in d en szám ítógép terve
érte k e kisebb a reg iszter m é re te által m e g h atá ro zo tt m axim um nál. A reg isz te re ­ ta rtalm azza az A , 5 és a kim eneti regisztert. Az ábrán az összeadást m u ta ttu k be.
ket nagy sebességgel leh et olvasni és írni, mivel a C P U -n b elü l vannak. A legtöbb u tasítás a következő k ét k ateg ó ria egyikébe sorolható: reg iszter-m e­
A legfontosabb regi.szter az u ta s ítá s- vagy p ro g ra m sz á m láló (P ro g ra m C oun- m ó ria vagy regiszter-regiszter. A regiszter-m em ória utasítások segítségével tö lth e ­
ter, PC ), am ely a követk ező v ég re h ajtan d ó u tasítás c ím ét tartalm azza. Az „uta- tü n k át szavakat a m em ó riáb ó l regiszterekbe, ahol a so ro n következő utasítások
p é ld áu l az A L U b e m e n e te k é n t használhatják. (A „szavak” a m em ó ria és a regisz-
68 2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E 2 .1. P R O C E SSZ O R O K 69

2. A z u tasításszám láló b eállítása a következő u tasítás cím ére.


3. A b eolvasott utasítás típ u sán ak m eghatározása.
4. H a az u tasítás m em óriabeli szót használ, a szó helyének m egállapítása.
5. H a szükséges, a szó beolvasása a C P U egy regiszterébe.
6. A z u tasítás végrehajtása.
7. V issza az 1. p o n tra , a következő u tasítás v ég reh ajtásán ak m egkezdése.

A fenti lép ésso ro zato t gyakran nevezik betöltő-dekódoió-végrehajtó ciklusnak, és


k ö zp o n ti sz erep et tö lt be m in d en szám ítógép m ű ködésében.
A k ö zp o n ti egység m ű k ö d ésén ek ilyetén leírása nagyon hasonlít egy m agyarul
írt p ro g ra m ra. A 2.3. á b ra ezt az inform ális p ro g ra m o t m u tatja be egy intcrprct

public eláss Interp {


static int PC; // a PC a következő utasítás címét tartalmazza
static int AC; // az akkumulátor, aritmetikai műveletek elvégzésére
static int instr; // tárolóregiszter az aktuális utasítás tárolására
static Int instr_type; // az utasítás típusa (opcode)
static int datajoc; // az adat címe, vagy -1, ha nincs adat
static intdata; // az aktuális operandust tárolja
static boolean run_bit = true; // e bit kikapcsolásával megállítható a gép

public static void interpret(int memory[ ], int starting_address) [


// Ez az eljárás egy egyszerű, egyetlen memóriaoperandust tartalmazó utasításokkal
// ellátott gép programjait értelmezi, A gépnek van egy AC regisztere (akkumulátora),
//ami aritmetikai műveletekhez használható. Az ADD művelet például egy
// memóriabeli egész számot ad az akkumulátorhoz. Az értelmező addig működik,
// amíg a HALT utasítás hamis értékűre nem állítja a run__bit értékét. A gépen futó
te re k közötti ad atfo rg alo m egységei. Egy szó leh e t egy egész szám . A m e m ó ria fel­ //folyamat állapota a memóriából, az utasításszámlálóból, a run_bit-ből és az
ép íté sé t e fejezetb en később tárgyaljuk.) M ás reg iszter-m em ó ria u tasítá so k segít­ // akkumulátorból áll. A bemenő paraméter a feltöltött memória képe és a kezdőcím.
ségével a reg iszterek ta rta lm á t írh a tju k vissza a m em ó riáb a.
PC = starting_address;
A m ásik c so p o rtb a ta rto z n ak a reg iszte r-reg iszter utasításo k . Egy tipikus regisz­
while (run_bit) {
ter-reg iszter u tasítás vesz két o p e ra n d u st a reg iszterek b ő l, elhelyezi ő k et az A L U
instr = memory[PC]; // instr feltöltése a következő utasítással
b e m en e ti regiszte reib e, az A L U elvégez ra jtu k valam ilyen m ű v eletet - p éld áu l PC = PC-i-1; // utasításszámláló növelése
összeadást vagy logikai É S -t m ajd az ered m én y t táro lja az egyik reg iszterb e. A instr_type = get_instr_type(instr); // utasítás típusának meghatározása
k ét o p e ran d u sn a k az A L U -n tö rté n ő á tfu tta tá sá b ó l és az e red m én y regiszterbe datajo c = find_data(instr, instr_type); // adat megkeresése (-1, ha nincs)
táro lásáb ó l álló fo ly am ato t a d a tú tc ik lu sn a k nevezzük, ez a leg tö b b C P U lelke. if (data_loc >= 0) // ha data_loc = -1, nincs operandus
Je le n tő s m é rté k b e n ez h atá ro z za m eg, hogy a gép m ire képes. M inél gyorsabb az data = memory[data Jo c ]; // adat beolvasása
ad atútciklus, annál g y orsabban dolgozik a gép. execute(instr_type, data); // utasítás végrehajtása
}
1

2 .1 .2 . Utasítás-végrehajtás priváté static int get_instr_type(int addr) { . . . }


priváté static int find__data(int instr, int type) { . . . }
A C P U m in d en u tasítá st ap ró lép ések so ro z atak é n t h ajt végre. E zek a lép ések
priváté static void execute(int type, int data) { . . . }
du rván a következők:
}

1. A soron követk ező u tasítás beolvasása a m em ó riáb ó l az u tasításreg iszterb e. 2.3. ábra. Egy egyszerű számítógép (Javában írt) értelmezője
2. s z A m (t ó g é p r e n d s z e r e k f e l é p í t é s e 2 .1. P R O C E SSZ O R O K 71
70

nevű Java m e tó d u sk é n t (az Interp osztály e ljá rá sa k é n t) m egírva. A z in te rp re tá lt csóbbaknak. A zo n b an a szoftverfejlesztési költségek em elk ed ése és az utasításo k
gép n ek k ét olyan reg iszte re van, am elyek a felhasználói p ro g ram o k szám ára lá t­ k o m p atib ilitása irán ti követelm ények szükségessé te tté k az ö sszetett utasítások
hatók; az utasításszám láló (PC) a követk ező b e tö lté sre v áró u tasítás cím én ek k ö ­ m egvalósítását az olcsó g ép ek en is, ahol az á r fo n to sab b volt a sebességnél.
v etésére, illetve az a k k u m u lá to r (AC) a szám ítások ré sz ered m én y ein ek tá ro lásá ra. A z 1950-es évek végére az IB M (az ak k o r m eg h atáro zó szám ítógépes cég) fel­
E zek en kívül v an n ak belsó' regiszterei az aktuális u tasítás v ég reh ajtás alatti tá ro lá ­ ism erte, hogy egyetlen szám ítógépcsalád kifejlesztése, am elyben a szám ítógépek
sára (instr), az ak tu ális u tasítás típ u sa (instr_type), az u tasítás o p e ra n d u sá n a k cím e m indegyike ugyanazokat az u tasításo k at h ajtja végre, m ind az IB M , m ind v ásár­
(d a ta jo c ) és m ag a az o p e ra n d u s (data) szám ára. F eltételezzü k , hogy az u tasításo k lói szám ára szám os előnnyel jár. A z IB M v ezette be az a rc h ite k tú ra elnevezést az
egyetlen m em ó riacím et tartalm azn ak . A m eg cím zett m e m ó riarek esz tartalm azza ilyen szintű k om patibilitás jellem zésére. A z új szám ítógépcsalád tagjainak ugyan­
az o p eran d u st, p éld áu l az ak k u m u lá to rh o z h o zzáa d an d ó szám ot. az len n e az arch itek tú rája, de kü lö n b ö ző m egvalósításaik len n én ek , am elyek
M aga a tény, hogy leh etség es olyan p ro g ram o t írni, am ely a C P U funk ció it tu d ­ u g y an azo k at a p ro g ra m o k a t tu d n ák fu ttatn i, árb an és sebességben k ü lö n b ö zn é­
ja im itálni, azt bizonyítja, hogy a p ro g ra m o k a t n em szükséges egy áram k ö rö k k el n ek . D e hogyan leh et olyan olcsó szám ító g ép et ép íten i, am ely képes egy nagy te l­
teli dobozzal, vagyis egy „h a rd v e r” C P U -val v ég reh ajtatn i. E h ely ett elég, h a van jesítm én y ű , d rág a gép m in d en ö sszetett u tasítását végreh ajtan i?
egy m ásik olyan p ro g ram u n k , am elyik az u tasítá sait egyen k én t beolvassa, é rte lm e ­ A válasz az in te rp re tá lá sb a n rejlik. E z az először W ilkes javasolta technika le­
zi és végrehajtja. A z olyan p ro g ra m o t (lásd 2.3. á b ra ), am ely beolvassa, értelm ezi hető v é teszi egyszerű, olcsó szám ítógépek tervezését, am elyek azonban k épesek
és v ég rehajtja egy m ásik p ro g ram u ta sítása it értelm ező n ek (in te rp re te r) nevezzük, sokféle u tasítás v ég reh ajtására (W ilkes, 1951). A z ered m én y az IB M System /360
ahogyan azt az 1. fe jezetb en e m lítettü k . a rc h ite k tú ra lett, kom patibilis gép ek árb a n és teljesítm ényben közel k é t nagyság­
A p ro cesszo rá ra m k ö rö k és az é rtelm ező k közötti ek vivalenciának fo n to s k ö v et­ re n d e t felö lelő családja. K özvetlen hard v er- (azaz nem in te rp re tá lt) m egvalósítást
kezm ényei van n ak a szám ító g ép ek felé p íté sé re és a szám ító g ép ren d szerek te rv e ­ csak a leg d rágább m o d ellek b en használtak.
zésére nézve. M iu tán egy új szám ítógép L nyelvét specifikálták, a terv ező k e ld ö n t­ A z in te rp re tá lt u tasításo k k al e llá to tt egyszerű g ép ek n ek egyéb előnye is volt. A
hetik, hogy az L nyelvű p ro g ra m o k v ég re h a jtá sá ra p ro c esszo rá ra m k ö rt é p íten ek , leg fo n to sab b ak ezek közül:
vagy az L nyelvű p ro g ra m o k a t é rte lm e z n i tu d ó é rte lm ez ő t írn ak inkább. H a az
értelm ező m egírása m ellett d ö n te n e k , an n ak fu tta tá sá h o z is kell valam ilyen szá­ 1. H ib ásan im p lem en tált u tasításo k helyszíni jav ításán ak vagy ak ár az a la p h a rd ­
m ítógép. Bizonyos hib rid m eg o ld áso k is e lk ép z elh ető k , részb en h ard v e re s v ég re­ v erb e n e lő fo rd u ló tervezési h ib ák á th id alásán ak lehetőség e.
hajtással, részb en szoftveres értelm ezéssel. 2. L e h e tő sé g új u tasításo k h o zzáad ására m inim ális költséggel, a k ár a szám ítógép
A z értelm ező a célgép u ta sítá sa it kis lé p ések re b o n tja. E n n e k k ö v etk ez téb en az leszállítása u tá n is.
értelm ező t fu tta tó szám ítógép a célgép h a rd v erp ro cesszo rán ál sokkal egyszerűbb 3. S tru k tu rá lt felépítés, am ely lehetővé te tte az ö sszetett u tasításo k h aték o n y fej­
és olcsóbb lehet. E z a m eg ta k a rítás k ü lö n ö sen je len tő s, h a a célg é p n ek nagyszá­ lesztését, tesztelését és d o k u m en tálását.
m ú összetett u tasítása van, az u ta sításo k m eg leh e tő se n kom p lik áltak , sok opcióval
ren d elk ezn ek . A m eg ta k arítá s lén y eg éb en abból e re d , hogy a h a rd v e rt szoftverrel A hogy a szám ítógépek p iaca ro b b an ásszerű n ö v ek ed ésn ek indult az 1970-es évek­
(az értelm ezővel) h elyettesítjük, és a h ard v er m egvalósítása tö b b e kerül, m in t a b en , a szám ítási képességek gyors növeked ésn ek indultak, az olcsó g ép ek iránti
szoftveré. k eresle t az é rtelm ező k et használó szám ító g ép ek terv ezését részesítette előnyben.
A z első szám ító g ép ek n ek kicsi, egyszerű u tasításk észlete volt. A zo n b an az egy­ A h a rd v e r és az értelm ező egy bizonyos u tasításk észleth ez szabása rendkívül k ö lt­
re nagyobb teljesítm én y ű g é p e k é rt fo ly tato tt verseny tö b b ek k ö z ö tt nagyobb te l­ ség h aték o n y processzortervezési m eg o ld ásn ak bizonyult. M ivel az alapul szolgáló
jesítm ényű egyedi u tasításo k h o z v ezetett. M á r nagyon k o rá n felfed ezték , hogy félv ezető -technológia gyorsan fejlődött, az alacsony költségek fo n to sab b n ak b izo ­
összetetteb b u tasításo k alkalm azása esetén a p ro g ram o k v ég reh ajtási ideje sok nyultak a nagyobb teljesítm énnyel szem ben, így az é rtelm ező alap ú arch itek tú rák
e setb en csökken, a n n a k elle n é re , hogy az egyes u tasításo k v ég reh ajtása tö b b időt terv ezése vált m egszokottá. A z 1970-es években terv ezett új szám ítógépek m ajd ­
vehet igénybe. Jó p é ld á k ö ssze te tte b b u ta sítá so k ra a leb eg ő p o n to s u tasításo k vagy n em m indegyike, a m inigépektől a nagyszám ítógépekig, é rtelm ező alap ú volt.
a tö m b elem ek k özvetlen e lé ré sé t leh ető v é tevő gépi u tasításo k . N é h a csak annyit A z 1970-es évek végére az é rtelm ező t használó egyszerű p rocesszorok nagyon
k ellett észrevenni, hogy k ét u tasítás gyakran fo rd u lt elő egym ás u tá n , így egyetlen e lte rje d tté váltak, kivéve a legdrágább, legnagyobb teljesítm ényű m o d e l l e k e t ,
új utasítás elvégezheti m in d k e ttő felad atát. m int a C ray-1 és a C o n tro l D a ta C yber sorozat. A z értelm ező alkalm azása ki­
Az ö sszetetteb b u tasítá so k elő n y ö seb b ek voltak am ia tt is, hogy k ü lö n b ö ző h a rd ­ k ü szö b ö lte az ö sszetett utasításo k h aszn álatáb ó l fak ad ó kö ltség k o rláto k at, így az
verm egoldásokk al n é h a tö b b u ta sítá st átlap o lv a vagy m ás m ó d o n p árh u zam o sítv a a rc h ite k tú rá k elk ezd tek sokkal összetetteb b u tasításo k at felfedezni, k ü lö n ö sen a
le h e te tt végrehajtan i. A d rág a, nagy teljesítm én y ű g ép ek n él e n n e k a kiegészítő felh aszn ált o p e ran d u so k m eg ad ásán ak m ó d ját illetően.
h ard v ern ek a tö b b letk ö ltség e könn y en in d o k o lh ató . így olyan helyzet alak u lt ki, E z a fejlődési irány a D igital E q u ip m e n t C o rp o ra tio n VAX gépével é rte el te tő ­
hogy a drága, nagy teljesítm én y ű g é p e k n e k sokkal tö b b u tasítása lett, m in t az o l­ fokát. E n n e k tö b b száz u tasítása volt, m indegyikben tö b b m in t 200 m ó d o n le h e ­
2, S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E
2.1, P R O C E SSZ O R O K 73
72

te tt m egh atáro zn i az u tasítás által h aszn ált o p e ra n d u st. Sajnos a V A X -architektú- n iszám ító g épben. Ez a m u n k a v ezeteti el egy kísérleti m iniszám ítógépliez, a 801-
ra k ezd etek tő l fogva in te rp re tá lá st té te le z e tt fel, és nem fo rd íto tta k figyelm et egy hez. H a b á r az IB M soha nem d o b ta jiiacra ezt a g ép et, és az ered m én y ek et csak
nagy teljesítm ényű m odell m eg v aló sítható ság ára. E z a b eá llíto ttsá g nagyon sok, évekkel k ésőbb pub lik álták (R ad in , 1982). m égis híre m ent, és m ások is elkezdtek
c s e k é ly jelen tő sé g ű u tasítás b ev éte léh ez v ezetett, am elyeket aztán n eh éz volt kö z­ h aso n ló a rc h itek tú rák k al kísérletezni.
v etlenül végrehajtan i. E z a hiányosság végzetesnek bizonyult a VAX, de végső so­ 1980-ban D ávid P atterso n és C arlo S cquin vezetésével egy csoport a B erkeley-n
ro n a D E C szám ára is (a C o m p aq m eg v ásáro h a a D E C -e t 1998-ban, a H P pedig a olyan V L S I-processzorokat k ezd ett el tervezni, am elyek nem használtak in te rp re ­
C o m p aq o t 2001-ben). tálást (P atterso n , 1985; P atterso n és Séquin, 1982). A koncepciójuk a R ISC nevet
H a b á r az első 8 bites m ik ro p ro cesszo ro k nagyon egyszerű u tasításk észlettel re n ­ k ap ta, és az első C P U lapkát R IS C I-nek, a rövidesen elkészülő m áso d ik at pedig
delkező, nagyon egyszerű gép ek voltak, az 1970-es évek végére m ég a m ik ro p ro ­ R IS C Il-n e k nevezték el. Kicsit később, 1981-ben a San I'ranciscó-i (>böl m ásik
cesszorok is á tté rte k az értelm e z ő a la p ú felép ítésre. E b b e n az időszakban a m ik ro ­ p a rtján , S tan fo rd b an Jo h n H ennessy terv ezett és el is k észített egy ettől kicsit el­
processzor-tervező k elő tt álló egyik legnagyobb kihívás az in teg rált áram k ö rö k k el té rő lap k át, am elyet M lP S -n ek nevezett (H ennessy, 1984). M in d k ettő továbbfej­
e lé rh e tő egyre nagyobb bonyolultság k ihasználása volt. A z crtelm e z ő a la p ű m eg ­ lesztett v álto zata kereskedelm i forgalom ba is került SPARC és M IPS néven.
közelítés legnagyobb előnye az volt, hogy egyszerű pro cesszo rt le h e te tt tervezni, a E zek az új m ikrop ro cesszo ro k alap v e tő en kü lö n b ö ztek a k eresk ed elem b en k a p ­
bonyolultság nagy része az é rte lm e z ő t tá ro ló m e m ó riá ra k o rlá to zó d o tt. Vagyis egy h ató k o rtársaiktól. Mivel nem k ellett visszafelé k om patibilisnek lenniük egyetlen
bonyolult hardver terv ét b onyolult szoftveres tervvé le h e te tt változtatni. létező term ékkel sem , tervezőik úgy v álaszth atták m eg az u tasításkészletet, hogy
A nagy in te rp re tá lt u tasításk észlettel ren d elk ez ő M o to ro la 68000 sikere és a a re n d sz er teljesítm énye m axim ális legyen. M íg a kezdeti hangsúly az egyszerű,
Z ilog Z 8000 (h aso n ló an nagy u tasításk észletű , de in te rp re tá lá s n élküli) k u d a r­ gyorsan v é g reh ajth ató u tasításokon volt, h a m a r felism erték, hogy a teljesítm ény
ca m eg m u tatta az in terp re tá lá s előn y eit egy új m ik ro p ro ce sszo r gyors p iacra d o ­ szem p o n tjáb ól a kulcskérdés az, hogy m ilyen gyorsan leh et az u tasításo k at eg\ m ás
básakor. E z a sik er annál is in k áb b m eglepő, m eri a Z ilog sokkal jo b b an k ezd ett u tá n kiadni (elindítani). A z utasítás id ő tartam án ál tö b b et szám íto tt az, hogy h á ­
(a Z 8000 elődje, a Z 80 sokkal n ép szerű b b volt, m in t a 68000-es elődje, a 6800). nyat le h e te tt elindítani egy m áso d p ere alatt.
T erm észetesen m ás tényezők is fo n to sa k voltak en n él az esetn él, n em u to lsó so r­ A m ik o r először terv eztek ilyen egyszerű p rocesszorokat, m indenki figyelm et
ban a M o to ro la lap k ag \’ártó m últja, illetve az. hogy az Exxon (a Z ilog tu lajd o n o sa) felk eltette, hogy viszonylag m ilyen kevés u tasításu k van, tipikusan 50 körül. Ez
hosszú ideig o lajk iterm elő cég volt, és n em lapkagyártó. a szám sokkal kisebb volt, m int a m egszokott gép ek 200 és 300 közötti utasítása,
A b b an az idő szak b an az a k ö rü lm én y is k edvező volt az é rte lm e ző a la p ú szá­ m in t péld áu l a D E C VAX vagy az IB M -nagygépek esetéb en . T ulajdonképpen a
m ító g ép ek szám ára, hogy léteztek gyors, csak olv ash ató tára k , ún. vezérlőtárak R IS C rövidítés a Reduced Instruction Set Com puter (csökkentett u tasításkész­
(control store) az érte lm e z ő tá ro lá sá ra , legyük fel, hogy a 68000-es egy tipikus in ­ letű szám ítógép) kifejezésből ered , szem ben a C ISC , vagyis C omplex Instruction
te rp re tá lt u tasítá sát az érte lm e ző 10 d arab , eg y en k én t 100 ns (n an o szek u n d u m ) : Set C om puter (összetett utasításkészletű szám ítógép) elnevezéssel, am i egy alig
idejű ún. m ikroutasítás v ég re h a jtá sá ra és 2 d a ra b , eg yenként 500 ns idejű m e m ó ­ , lep lezett u talás a VAX-ra, am ely abb an az időben u ra lta az egyetem i szám ítóköz­
ria-h o zzáférésre b o n to tta le. A teljes vég reh ajtási idő te h á t 2000 ns volt, m indösz- p o n to k a t. M an ap ság m ár csak kevesen tu lajd o n ítan ak nagy je le n tő sé g e t az utasí-
sze 2-szer annyi, m int am it közvetlen végrehajtással el le h e te tt érni. H a a v ezérlő ­ :■tásk észlet m é re té n e k , de az elnevezések m egm aradtak.
tá r nem lé te z e tt volna, a v égrehajtási idő 6000 ns le tt volna. H atszo ro s lassulást H ogy rö v id re fogjuk, egy nagy vallási h á b o rú k e rek ed ett, am elyben a R lS C -hí-
sokkal n ehezebb lenyelni, m in t egy kétszeres lassulást. vők tá m a d tá k a fenn álló ren d szert (VAX, In tel, IB M -nagygépek). A zt állították,
' hogy a szám ítógépek terv ezésén ek legjobb m ódja, ha kevés egyszerű u tasításunk
van, am elyek a 2.2. á b ra ad a tú tjá n a k egyszeri bejárásával v ég reh ajth ató k . E z te h á t
azt jelen ti, hogy vesszük k é t regiszter ta rta lm á t, valahogyan k o m bináljuk ezeket
2.1.3. RISC és CISC
(p éld áu l ö sszeadjuk vagy É S-eljük), végül az ered m én y t elhelyezzük egy regisz­
A z 1970-es évek so rán so k at k ísérleteztek rendkívül kom plex u tasításokkal, am it te rb e n . Úgy érveltek, hogy m ég ha egy C IS C -utasítás hely ettesítéséh ez 4-5 R ISC -
az értelm ező k te tte k lehetővé. A terv ező k m eg p ró b álták bezárn i azt a „szem an ti­ u ta sítá s kell is, és ha a R IS C -u tasításo k 10-szer gyorsabbak (m ivel nem in te rp re ­
kai ré s t”, am ely a szám ítógépek képessegei és a m agas szintű p ro g ram o zási nyel­ táltak ), m ég m indig a R IS C a nyerő. É rd em e s m eg m egjegyezni, hogy ed d ig re a
vek követelm ényei k ö z ö tt h ú zó d o tt. Szinte senki sem g o n d o lt a rra, hogy egysze­ k ö zp o n ti m e m ó ria sebessége csaknem b e é rte a csak olvasható v ezérlő tárak seb es­
rűbb gép ek et tervezzen, é p p e n úgy, ahogy m an ap ság sem végeznek k u ta tá so k at ségét, így az in terp re tálás m iatti relatív időveszteség n ag ym értékben nőtt, ezzel is
arra, hogy egyszerűbb o p eráció s ren d sze re k et, h áló z a to k a t, szövegszerkesztőket erő sen kedvezve a R IS C gépeknek.
stb. terv ezzen ek (talán kár, hogy így van). A zt g o ndolhatnánk, hogy a R IS C technológia, a teljesítm ényben nyújtott előnyét
kihasználva, a R ISC gépek (m int a Sun U ltraSPA R C ) kiszoríthatták volna a C ISC
A z IB M Jo h n C ocke v ezette cso p o rtja m égis e b b en az irányban in d u lt el, és
m eg p ró b álta S eym our C ray n éh án y ö tle té t alkalm azni egy nagy teljesítm ényű m i­ gépeket (m int az Intel Pentium ) a piacról. Sem m i ilyesmi nem történt. Vajon m iért?
74 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2 .1. P R O C E SSZ O R O K 75

M indenekelőtt, itt van a visszafelé kom patibilitás k érd ése, no m eg az a sok m illi­ m ennyi ideig ta rt m ég az utasítások befejezése. (A M IP S a M illions o f In stru ctio n s
árd dollár, am it a cégek az In tel-processzoros gép ek en futó p ro g ra m o k ra költöttek. P er S ccond rövidítése; a M IPS p n K esszo r neve erre u taló szójáték.) E z az elv azt
M ásodszor, m eg lep ő m ódon az Intel képes volt alkalm azni ugyanezeket az ö tle te ­ sugallja, hogy a párhuzam osság fontos szerep et já tsz h a t a teljesítm ény növelésé­
ket m ég egy C lS C -arch itek tű ra esetén is. A 486-ossal kezd ő d ő en az Intel-proecsz- ben, mivel nagyszám ú lassú u tasítás v ég reh ajtását csak akkor tudjuk rövid időn
szorok tartalm azn ak egy R IS C -m agot, am ely a legegyszerűbb (és egyben leggyako­ belül m egk ezdeni, ha tö b b u tasítást tu d u n k egyszerre végrehajtani.
ribb) u tasításo k at egyetlen adatútciklus a latt hajtja végre, míg a kom p lik áltab b u ta ­
sításokat in terp re tá lja a C ISC -elvnek m egfelelően. E n n ek az az ered m ény e, hogy a
gyakori utasításo k gyorsak, míg a kevésbe gyakoriak lassiik. B ár ez a hibrid m egkö­ Az utasítások könnyen dekódolhatók legyenek
zelítés nem olyan gyors, m int egy tiszta R IS C -processzor, m égis versenyképes te l­
jesítm ényre képes, és lehetővé teszi a régi p ro g ram o k m ódosítás nélküli fu ttatását. A z u tasításo k indítási ü tem én ek egyik felső korlátja a dek ó d o lásáh o z szükséges
idő, am ely során m eg állap ításra kerül, hogy az u tasításo k n ak m ilyen erő fo rrá so k ­
ra van szükségük. M in d en jól jö h e t, am i segít eb b en a folyam atban. P éldául az, ha
2.1.4. Korszerű számítógépek tervezési elvei az u tasításo k szabályosak, egyform a hosszúak és kevés m ezőből állnak. M inél ke­
vesebb u tasításfo rm átu m van, annál jobb.
M ost, hogy m á r tö b b m int húsz év eltelt az első R IS C g épek m eg jelen ése óta, b i­
zonyos tervezési elvek alkalm azása, figyelem be véve a m ai h ard v ertcch n o ló g ia le-
hett>ségeit, a szám ító g ép ek terv ezésén ek elfo g ad o tt m ódszerévé vált. H a alapvető Csak a betöltő és tároló utasítások hivatkozzanak a m em óriára
változás állna be a h a rd v ertech n o ló g iáb an (p éld áu l egy új gyártási eljárás a m e m ó ­
riák ciklusidejét a C P U ciklusidejénel lO-szer kisebbé te n n é ), teljesen új helyzet A z u tasítá so k részek re b o n tásán ak legegyszerűbb m ódja, h a m egköveteljük, hogy
állna elő. E z é rt aztán a g ép e k terv ező in ek egyik szem ü k et m indig az olyan te c h n o ­ az u tasításo k o p eran d u sai regiszterek legyenek, és az ered m én y ek is reg iszte rek ­
lógiai v áltozások o n kell ta rta n iu k , am elyek befo ly áso lh atják a k o m p o n en sek k ö ­ b e kerü ljen ek.
zötti egyensúlyt. A z o p e ran d u so k m ozgatása a regiszterek és a m em ó ria között kükín u ta s ítá ­
E lm ondhatjuk, hogy létezik a tervezési elveknek egy gyújtem énye, am elyeket sokkal tö rté n h e t. M ivel a m em ó riam ű v eletek sok időt v eh etn e k igénybe, ráadásul
időnként R ISC te n e z é s i elveknek hívnak, és am elyeket m a m inden általános célú a k ésleltetés hossza előre nem ism ert, ezeket legjobb m ás u tasításo k k al átfedve
processzor tervezője igyekszik legjobb képességei szerint követni. Egyéb külső köve­ v ég reh ajtan i, am ennyiben sem m i m ást nem tesznek, csak a d a to k a t m tizgatnak a
telm ények, m int amilyen egy k orábbi architektúrával való visszafelé kom patibilitás, reg iszterek és a m em ó ria között. Ez a m egfigyelés azt jelen ti, hogy csak a LOAD és
idc5ről időre kom prom isszum okat igényelhetnek, de ezeket a tervezési elveket a leg­ STORE u tasításo k n ak szabad a m em ó riára hivatkozni. M inden m ás u tasítás csak
több tervező igyekszik b etartan i. A következólcben a legfont(«abbakat tárgyaljuk. reg isz te re k e t használhat.

M inden utasítást közvetlenül a hardver hajtson végre Sok regiszter kell

A z összes gyakori u ta sítá st a h a rd v e r hajtja végre, ezek n em b o n th a tó k fel in te rp ­ M ivel a m em ó riam ű v eletck lassúak, sok regiszterre (legalább 32-re) van szükség,
re tá lt m ik ro u tasításo k ra. A z in terp re tá ció s szint kiküszöbölésével a legtöbb u ta sí­ hogy egy b eolvasott szó m indaddig reg iszterb en m arad h asso n , am íg szükség van
tás gyors lesz. A C IS C -u tasításk észletű szám ító g ép ek az ö ssz e te tte b b u tasításo k at rá. N em kívánatos, és el kell kerüln i, am ennyire csak lehet, hogy kifogyjunk a re ­
részekre b o n th atjá k , és m ik ro u tasításo k so ro z a ta k é n t h a jth a tjá k végre. Ez a tö b b ­ g iszterekből, és csak azért kelljen a m em ó riáb a m en ten i az ad ato k a t, hogy később
letm u n k a lassítja a g ép et, de ritk á n e lő fo rd u ló u tasításo k e seté n elfo g ad h ató . visszaolvassuk. E nnek legjobb m ódja, h a elég reg iszterü n k van.

M axim alizálni kell az utasítások kiadásának ütem ét 2.1.5. Utasításszintü párhuzamosság

A m ai szám ítógép ek sok trü k k ö t alk alm azn ak teljesítm én y ü k növ elésére, ezek kö­ A szám ító g ép-tervezők állan d ó an igyekeznek javítani gépeik teljesítm ényét.
zül a legfontosabb, hogy m eg p ró b álják egy m áso d p erc alatt a le h e tő legtöbb u ta ­ E n n e k egyik m ódja a lapkák gyorsítása az órajel frek venciájának növelésével, de a
sítás v ég reh ajtását elkezdeni. V égül is, ha m á so d p e rc e n k é n t el tu d u n k ind ítan i nyers e rő alkalm azásáb an rejlő lehető ségek az a d o tt tö rtén elm i p illan atb an m in­
500 m illió u tasítást, van egy 500 M lP S -es p ro cesszorun k , függetlenül attó l, hogy dig k o rlá to z o ttak . E m ia tt a legtöbb tervező a p árh u zam o sság (tö b b dolgot végez­
76 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2 .1. P R O C E SSZ O R O K 77

ni egyszerre) k iak n ázásáb an lát leh ető ség et a d o tt ó rajel-frekvencia m ellett a még A 2.4. (a) ábra egy öt egységből, m ás néven fázisból álló csővezetéket szem léltet.
nagyobb teljesítm én y e lérésére. A z első fázis beolvassa az utasítást a m em óriából, és elhelyezi egy pufferbcn, amíg
A párhu zam o sság k é tfélek ép p en leh et jelen ; u tasításszin tű p árh u zam o sság vagy szükség nem lesz rá. A m ásodik fázis dekódolja az utasítást, m eghatározza a típusát
processzorszintű p árh u zam o sság to rm ájáb an . Az elő b b ib en , az egyes u ta sítá so k ­ és a szükséges o p eran d u so k at. A harm adik fázis m egkeresi és beolvassa az opcran-
ban rejlő párhuzam o sság o t használjuk ki, hogy tö b b u ta sítá st tu d ju n k m á so d p e r­ d u so k at ak ár regiszterből, ak ár a m em óriából. A negyedik fázis hajtja végre valójá­
cen k én t kiadni. A m ásik e setb en több p ro cesszo r dolgozik egyszerre ugyanazon a b an az utasítást, ez tipikusan azt jelen ti, hogy az o p eran d u so k at átviszi a 2.2, ábra
felad ato n . M in d k ét m egközelítésnek m egvannak a m aga előnyei. E b b en az alfe- a d atú tján . V égül az ö tö d ik fázis visszaírja az ered m én y t a m egfelelő rcgiszlerbe.
jeze tb en az utasításszin tű p árh u zam o sság o t tek in tjü k át, a k ö v etk ező b en p edig a A 2.4. (b) áb rán láth atju k a e.sővezeték m ű k ö d ését az idő függvényében. A z e l­
proccsszorszintű p árh u zam o sság o t. ső órajel a la tt az SÍ fázis az első u tasításo n dolgozik, beolvassa a m em óriából. A
m áso d ik órajel alatt az S2 fázis d ek ó d o lja az első utasítást, ez idő a latt az SÍ fázis
m ár a m ásodik utasítást olvassa be. A harm ad ik órajel a latt az 53 fázis előkészíti
Csővezeték az első u tasítás o p e ran d u sait, az S2 fázis d ekódolja a m ásodik utasítást, míg az SÍ
fázis beolvas.sa a harm ad ik utasítást. A negyedik órajel alatt az S4 fázis v ég reh ajt­
Évek óta ism ert, hogy az utasítások végrehajtásának egyik legszűkebb k eresztm et­ ja az első utasítást. S3 előkészíti a m ásodik utasítás o p e ran d u sait. S2 dekódolja a
szete az utasítások kiolvasása a m em óriából. E pro b lém a enyhítésére m ár az olyan h arm ad ik utasítást, SÍ pedig beolvassa a negyedik utasítást. V égül az ö tödik órajel
régi szám ítógépek is, m int az IBM Stretch (1959) képesek voltak előre beolvasni a la tt S5 visszaírja az első utasítás ered m én y ét, míg a többi fázis a soron következő
utasításokat, hogy azok rendelkezésre álljanak, am ikor szükség van rájuk. E zeket az u tasításo k k al van elfoglalva.
utasításokat egy előolvasás! puffer (prefctch buffer) elnevezésű regiszterkészletben A k övetkező h aso n lat m ég világosabbá teszi a csővezeték elvet. K épzeljünk
tárolták. Ilyen m ódon a soron következő utasítást általáb an az előolvasási pufferbűi el egy édességgyárat, ahol a to rtá k gyártása és csom agolása szét van választva.
leh etett venni ahelyett, hogy egy m em óriaolvasás befejeződésére kellett volna várni. Tegyük fel, hogy a csom agoiórészlegben van egy hosszú csővezeték, am ely m ellett
1lényegében az előolvasás az u tasítás v é g reh ajtását k ét részre osztja: beolvasás öt m u n k ás (feldolgozóegység) sorakozik fel. 10 m áso d p ercen k én t (ó rajel) az első
és tu lajd o n k ép p e n i végreh ajtás. A csővezeték ezt a stra té g iá t viszi st)kkal tovább. m u n k ás egy üres d obozt tesz a szalagra. A d oboz a m ásodik m unkáshoz kerül, aki
A z utasítás vég reh ajtását k e ttő h ely ett tö b b részre osztja (gyakran egy tu c a tra vagy belete.sz egy to rtát. K icsit később a d oboz a h arm ad ik m unkáshoz érkezik, aki le­
m eg tö b b re), m in d en részt külön h ard v erelem kezel, am elyek m ind egyszerre m ű ­ zárja és leragasztja. A negyedik egy cím két ragaszt rá, ezu tá n az ö tö d ik m unkás le­
ködh etn ek . veszi a d o b o zt a szalagról és egy nagy k o n té n e rb e teszi, am elyet később m ajd egy
á ru h á z b a szállítanak. A lap jáb an vcve ugyanígy m űködik a szám ítógépes csőveze­
Sí S2 53 54 55 té k is: m in d en u tasítás (to rta ) több feldolgozási lépésen m egy keresztül, m ielőtt
elkészülve előb u k k an a túlsó végén.
V isszatérve a 2.4. áb ra csővezetékéhez, tegyük fel. hogy e n n ek a g épnek az ó ra ­
je le 2 ns. ü k k o r egy utasítás 10 ns a latt ju t át az öl fázison. 10 ns utasításokkal első
rán é z ésre úgy tű n h e t, hogy a gép 100 M IPS sebességre képes, igazából azonban
(a) annál sokkal gyorsabb. M inden órajel (2 ns) alatt befejeződik egy utasítás, ezért a
valódi sebesség 500 M IP S , nem 100 M IPS.
Sí: m a000000 A csővezeték lehetővé teszi, hogy kom prom isszum ot kössünk késleltetés (m eny­
S2: □m000000 nyi ideig tart egy utasítás vég reh ajtása) és áteresztőképesség (h ány M IPS a p r o ­

S3: mm00000 cesszor .sebessége) kö zö tt. H a az órajel 7' n anoszekundum , és a csővezeték n fázi­
sú, a k ésleltetés n T n an o szek u n d u m , mivel m inden utasítás n állap o to n halad k e ­
54: m00000 resztül és m indegyikben T ideig tartózkodik.
S5:
00000 Mivel m inden órajelben egy utasítás befejeződik, és mivel 107T az órajelek szá­
m a m ásodpercenként. így a m ásodpercenként végrehajtott utasítások szám a is 10' 7'.
2 3 4 5 6 7 8 9
Például, ha 7' = 2 ns, m ásodpercenként 500 millió utasítás hajtódik végre. 1la az u ta ­
Idő--- >-
sítások szám át M lPS-ben szeretnénk m egkapni, a végrehajtási sebességet el kell osz­
(b)
tan u n k 1 millióval, ezt kapjuk (1077)/( 10'’) = 1000/7'M IPS. E lm életileg m érhetnénk
2.4. ábra. (a) Ötfázisú csővezeték, (b) A fázisok állapota az idő függvényében. Az ábrán kilenc a végrehajtási sebességet BIPS-ben (Billión Instruction Per Sectind, milliárd utasítás
órajekiklus látható m ásodpercenként) M IPS helyett, de mivel senki sem tesz így, mi sem fogunk.
78 2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E
2,1. P R O C E SSZ O R O K 79

Szuperskaláris architektúrák de ek k o r m á r túl sok h a rd v erelem et kell m egduplázni. E h ely ett a nagy teljesítm é­
nyű p ro cesszo ro k b an m ás m egoldást alkalm aznak. A z a la p ö tle t az, hogy csak egy
H a egy csővezeték jó , k e ttő biztos m ég jo b b . Egy két csővezetékes C P U -tcrv lá th a ­ cső v ezeték et használnak, de több funkcionális egységgel, ahogyan ez a 2.6. ábrán
tó a 2.4. á b ra alap ján készített 2.5. áb rán . Itt az eg yetlen u tasítá st előolvascí egység láth ató . P éldául a P entium 4 az áb rá n láth ató h o z hasonló felépítésű. A 4. fe je z e t­
k ét u tasítást olvas be egyszerre, m ajd e z ek et az egyik, illetve a m ásik cső vezetékre ben m ajd részleteseb b en is tárgyaljuk. A szuperskaláris architektúra kifejezés e n ­
teszi. A cső v ezeték ek n ek saját A L U -ju k van, így p á rh u zam o san tu d n a k m űködni, n e k az e lre n d ezésn ek a jelö lésére 1987-ben szü letett (A gerw ala é sC o c k e , 1987), a
feltéve, hogy a k ét u tasítás nem h asználja ugyanazt az e rő fo rrá st (p éld áu l regisz­ gyökerei azo n b an 30 évvel k o ráb b ra a C D C 6600-as szám ítógépig nyúlnak vissza.
tert), és egyik sem használja fel a m ásik ered m én y ét. U gyanúgy, m in t egyetlen cső­ A 6600-as 100 ns-ként olvasott be egy utasítást és a d ta tovább a 10 funkcionális
vezeték esetén , a felté te lek b e ta rtá s á t vagy a fo rd ító p ro g ram n a k kell g aran táln ia egység valam elyikének p árh u zam o s végrehajtásra, m ialatt a C P U újabb utasítás
(vagyis a h ard v e r n em ellen ő riz és hibás e red m én y ek et ad, ha az u tasításo k nem b eo lv asásáb a kezdett.
kom patibilisek), vagy a k o n flik tu so k at egy k iegészítő h a rd v e rn e k kell a v ég reh aj­ A „szu p ersk aláris” definíciója az évek során fejlődött. M a az olyan p rocesszo­
tás so rán felism ernie és kiküszöbölnie. ro k je llem zésére használják, am elyek több - gyakran négy vagy hat - utasítás vég­
H a b á r az egyszeres cs kétszeres cső v ezeték ek et fő k én t a R IS C g ép ek b en hasz­ re h a jtá sá t kezdik el egyetlen órajel alatt. T erm észetesen egy szuperskaláris C P U -
nálják (a 386-osban és elő d eib en ilyen n em volt), a 486-ostól k ez d ő d ő e n az Intel nak töb b funkcionális egységének kell lennie, am elyek kezelik m in d ezek et az u ta ­
elk ez d ett cső vezeték ek et alkalm azni a p ro cesszo raib an . A 486-osban egy csőve­ sításokat. M ivel a szuperskaláris p rocesszoroknak általáb an egy csővezetéke van,
zeték van, a P en tiu m b an k ét 5 fázisú, nagyjából a 2.5. áb rá n ak m egfelelően, h a ­ e z é rt felép ítésü k h aso n lít a 2.6. áb rán lá th a tó m odellhez.
b ár a m ásodik és h arm ad ik fázis (decode-1 és dcco d e-2 ) közö tti m un k am eg o sztás E zt a definíciót használva a C D C 6600 technikailag nem volt szuperskaláris, m i­
egy kicsit m ás, m int a mi p éld án k b an . A fő csővezeték az u pipeline tetszőleges vel egy órajel alatt csak egy utasítás v ég reh ajtását k ezdte m eg. A zonban a h atás lé­
P en tiu m -u tasítást végre tu d h ajtan i. A m ásodik csővezeték a v pipeline csak egy­ nyegében ugyanez volt: az u tasításo k m egkezdését sokkal nagyobb ü tem b en vég­
szerű egész m ű v eletek et tu d elvégezni (és m ég egy igen egyszerű leb eg ő p o n to s zik, m in t am ilyen ü tem b en azokat végre lehet h ajtani. N agyon kicsi a különbség
m űveletet, p éld áu l FXCH). k ét C P U között, h a az egyik 100 ns ó ra jelen k én t ad ki egy u tasítást a funkcionális
egységek egy cso p o rtja szám ára, a m ásik pedig 400 ns ó ra je le n k é n t négy utasítási
Sí S2 S3 S4 S5 ad ki u g y an en nek a csoportnak. M in d k ét esetb en az az alap ö tlet, hogy az u ta s ítá ­
sok k iad ásán ak sebessége nagyobb, m int a végrehajtás sebessége, így a terh elés
m egoszlik a funkcionális egysegek között.

54

2.5. ábra. Kettős csővezeték közös utasítás-beolvasó egységgel

B onyolult szabályok h atá ro zz á k m eg, hogy k ét u tasítás k o m patibilis-e, vagyis


v ég reh ajth ató -e p árh u zam o san . H a a két u tasítás nem elég egyszerű vagy in k o m ­
patibilis, csak az egyik k erü l v é g reh ajtásra (a fő csővezetéken). A m ásik u tasítá s­
hoz egy ú jab b at olvas be a pro cesszo r, m ajd a folyam at folytatódik. A z u tasításo k
m indig az e red eti so rren d b e n h a jtó d n a k végre. K om patibilis u ta sítá sp á ro k a t k é p ­
ző speciális P en tiu m -fo rd ító p ro g ram o k gyorsabb p ro g ra m o k a t tu d n ak elő állíta ­
ni, m int a régeb b i fo rd ító p ro g ram o k . M érések azt m u tatták , hogy egy P entium a
hozzá optim alizált, egész aritm e tik á t használó k(')dot é p p e n k étszer olyan gyorsan
tu d ta fu ttatn i, m in t egy ugyanolyan ó rajelű 486-os (P o u n tain , 1993). E z a gyorsu­
lás teljes egészéb en a m ásodik csőv ezeték n ek tu la jd o n íth a tó .
A csővezetékek szám án ak négyre em elése m ég elk é p z elh e tő (a szám ítógépes
szakem berek a n ép ra jz k u ta tó k k a l e llen tétb e n n em hisznek a h árm as szám ban), 2.6. ábra. Szuperskaláris processzor 5 funkcionális egységgel
80 2. S Z Á M fT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E 2.1. P R O C E S S Z O R O K 81

A sziiperskaláris p ro cesszo r elvében im plicit m ó d o n b e n n e van az a feltételezés, riájából vette (am it egy inieializálási fázisban tö ltö ttek fel). Ez a kialakítás, nyilván­
hogy az S3 fázis lényegesen gyorsabban tud ja előkészíteni az u tasításo k at, m int valóan nag\'on elté r a szokásos Von N eum ann géptől, és id ő n k én t S IM ü (Single
ahogy az S4 fázis k ép es azokat végrehajtani. H a az S3 fázis 10 ns-ként p ro d u k ál Instruction-stream M ultiple D ala stream) processzorként hivatkoznak rá. Mivel a
egy utasítást, és az összes funkcionális egység végezni tu d 10 ns alatt, m indig csak valódi költségek a tervezett négyszeresére rúgtak, csak egyetlen negyedet ép ítettek
legfeljebb egy fog dolgozni, így az egésznek nincs sem m i haszna. V alójában a n e ­ m eg, de ez is elérte az 50 m egaflop (m illión floating-point o p eratio n s p er seeond,
gyedik fázis funkcionális egységeinek tö b b ség e egy ó rajeln él jóval tö b b id ő t igényel millió leb eg őpontos utasítás m áso d p ercen k én t) sebességet. A zt m ondják, hogy ha
felad ata elvégzéséhez - a m em ó riáh o z fo rd u ló k vagy a leb eg ő p o n to s m ű v eletek et az egész g ép et m eg ép ítették volna, és az valóban elérte volna a kitűzött 1 gigaflop
végzők biztosan. A hogy az á b rá n is láth ató , leh e t több A L U is az S4 fázisban. sebességet, egym aga m egdu plázta volna a világ akkori szám ítási kapacitását.

Vezérlőegység
2.1.6. Processzorszíntü párhuzamosság
Teríti az utasításokat
y
A z egyre gyorsabb szám ító g ép ek iránti igény k ielég íth ete tle n n e k tűnik. A csilla­
gászok szim ulálni ak arják a N agy B um m első e z re d m á so d p e rc é b e n tö rté n te k e t,
B B B B B B B B
a közgazdászok m odellezni ak arják a világpiacot, a tin éd zserek pedig virtu ális b a ­ B B B B B B B B
rátaikkal 3 dim enziós in terak tív m u ltim éd iás já té k o k a t ak a rn a k já tsz an i az in te r­
n eten . H ab ár a p ro cesszo ro k egyre gyorsabbak lesznek, előbb vagy u tó b b a fény­
B B B B B B B B
sebesség végességéből ad ó d ó k o rlá to k b a fognak ütközni, ugyanis ez valószínűleg B B B B B B B B ' 8 X 8-as processzor/memória rács
20 em /ns fog m arad n i a ré zd ró tb a n és a fénykábelben fü ggetlenül attó l, hogy az Processzor B B B B B B B
Intel m érnökei m ilyen okosak. A gyorsabb lap k ák tö b b h ő t is term eln ek , am in ek
az elvezetése szintén p ro b lém ás. B B B B B B B
Memória
A z utasításszin tű p árh u zam o sság segít egy kicsit, de a csővezeték és a szu p e r­ ^ B B B B B B B B
skaláris m űködési m ó d ritk án növeli a sebességet 5 -1 0 -szeresn el jo b b a n . H a 50-
szercs, 100-szoros vagy ennél is nagyobb gyorsulást szeretn én k , en n e k egyedüli
B B B B B B^ B B
m ódja, hogy több C P U -t ta rta lm az ó szám ító g ép et tervezünk; a k ö v etk ező k b en azt 2.7. ábra. Egy ILLIAC IV típusú tömbszámítógép
fogjuk áttek in ten i, hogyan lehel ilyeneket ép íten i.
A vektorprocesszor a p ro g ram o zó szem szögéből nagyon haso n lít a tö m b p ro ­
cesszorra. A h h o z h aso n ló an nagyon h atékonyan tu d egy u tasításso ro za to t v ég re­
Töm bszám ítógépek h ajtan i a d a te lem p áro k o n . A tö m b p ro cesszo rtó l elté rő e n azonban, m inden ösz-
szeadás eg yetlen csővezeték elven m ű k ö d ő összeadóegységben zajlik. A Seym our
Sok fizikai és m érnöki p ro b lé m a töm bökkel vagy m ás nagyon szabályos szerk ezetű C ray által a la p íto tt C ray R esearch cég napjainkig .sok v ck to rp ro cesszo rt gyártott,
objek tu m o k k al fo g alm azh ató m eg. G y ak ran ugyanazokat a m ű v eletek et kell egy­ kezdve az 1974-ben m egjelen t C ray-1 szám ítógéppel és folytatva a jelenlegi m o­
szerre elvégezni k ü lö n b ö ző a d ath a lm azo k o n . A fe lad ato k n ak a szabályossága és dellekkel (a C ray R esearch m a az SG I része).
a szerkezete külö n ö sen m egfelelővé teszi ezek et p á rh u zam o s feldolgozásra. K ét A töm b- és a v ek to rp ro cesszo ro k is ad attö m b ö k k cl dolgoznak. M in d k ettő olyan
olyan m ódszer van, am elyeket nag y m éretű tu d o m án y o s p ro b lé m á k gyors m eg o l­ egyedi u ta sításo k at hajt végre, m int am ilyen például két v ek to r elem ein ek pá-
d ására használnak. H a b á r ez a két sém a m eg lep ő en hasonló, érd e k e s m ó d o n az ro n k é n ti összeadása. D e m íg a tö m b p ro cesszo ro k ezt ügy végzik, hogy a v ek to r
egyiket az egyprocesszoros re n d sz er k iterjesztésén ek, míg a m ásikat p árh u zam o s elem szám ával m egegyező szám ú összeadóegységet tartalm azn ak , a vektorproccsz-
szám ítógépnek tekintik. szo ro k vektorregisztereket használnak. Egy v ek to rreg iszter tö b b hagyom ányos
Egy töm bprocesszor nagyszám ú egyform a processzorból áll, ezek ugyanazt a m ű ­ reg iszte rb ő l áll, ezek et a b e tö ltő utasítás egym ás u tán , so ro san tö lti fel a m em ó ri­
v eletso ro zato t végzik el k ü lönböző ad ath a lm azo k o n . A világ első tö m b p ro cesszo ra ából. E zu tá n a vekto rö sszead ó u tasítás v ég rehajtja két ilyen v ek to r elem ein ek pá-
a U niversity o f Illinois 2.7. áb rán láth a tó IL L IA C IV szám ítógépe volt (B ouknight ro n k é n ti ö sszead ását úgy, hogy egy csővezetékes összeadóba irányítja a p á ro k a t a
és társai, 1972). A z ere d e ti terv szerint egy 4 negyedből álló g ép et é p íte tte k vol­ k ét vek to rregiszterből. A v ek torösszeadás ered m én y e egy újabb vektor, am elyet
na, m inden negyedben egy 8 x 8-as négyzethálóban p ro cesszo r/m em ó ria párokkal. egy v ek to rreg iszterb e leh et táro ln i, vagy közvetlenül fel lehet ha.sználni egy újabb
N egyedenként egy vezérlőegység ad ta ki az utasításo k at, m elyeket a hozzá tarto zó vek to rm ű v elet o p e ran d u sak én t.
processzorok szinkronizálva h a jto ttak végre, az a d a to k a t m indegyik a saját m em ó-
82 2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E 2,2. k ö z p o n ti m e m ó ria 83

T ö m b p ro cesszo ro k at je le n leg n em gyártanak, azo n b an az ö tle t egyáltalán nem A m u ltip ro cesszo ro k n ak a többi p árh u zam o s szám ítógéppel szem ben megvan
h alt m eg. A z M M X és az SSE u tasításo k , am elyek a P entium 4 u tasításk észletéb en az az előnyük, hogy a közös m em ó ria pro gram ozási m o d elljét könnyű h aszn ál­
találh ató k , ezt a v ég reh ajtási m o d ellt használják a m ultim éd ia-szo ftv er felgyorsítá­ ni. K épzeljünk el péld áu l egy p ro g ram o t, am ely valam ilyen szövet m ikroszkópos
sára. E b b e n a te k in te tb e n az IL L IA C IV a P entium 4 egyik elő d jén e k tek in th ető . fé n y k é p é n rákos sejtek et keres. A digitalizált fén y k ép et a közös m em ó riáb an tá ­
rolva m in d en pro cesszo r a fénykép egy szám ára kijelölt te rü le té t fésülheti át.
ivíivel m in d en pro cesszo r e lérh eti az egész m em ó riát, nem okoz p ro b lém át, ha va­
Multiprocesszorok lam elyik se jtet vizsgálva - am ely a kijelölt rég ió b an kezdődik, de azután a kijelölt
h a tá rt á tlép i, át kell m en n i az egyik szom szédos terü letre.
Egy tö m b p ro cesszo r feldolgozóegységei n em fü g g etlen ek egym ástól, m e rt m in d ­
egyiküket egy közös vezérlőegység felügyeli. A z első olyan p árh u za m o s re n d ­
szerünk, am elyben tö b b teljes C P U van, a m u ltip ro c e ssz o r, egy olyan ren d szer, Multiszám ítógépek
am elyben közös m e m ó riát használó egynél tö b b C P U ta lá lh a tó , h aso n ló an ahhoz,
m in t am ikor egy szo b áb an tö b b e m b e r használ egy közös táb lát. M ivel m indegyik H a b á r kevés ( < 256) processzorból álló m ultip ro cesszo ro k aránylag könnyen é p ít­
C P U írliatja és olvashatja a m e m ó ria b árm ely részét, együtt kell m ű k ö d n iü k (szo ft­ h ető k , n agyokat m eg lep ő en n eh éz ko n stru áln i. A neh ézség et az összes processzor
v eresen), hogy ne legyenek egym ás ú tjáb an . A m ik o r két vagy tö b b C P U re n d e lk e ­ és a m em ó ria összekötése jelen ti. E zeknek a neh ézség ek n ek az elk erü lésére sok
zik azzal a képességgel, hogy szorosan eg y ü ttm ű k ö d jen ek , m in t ahogyan a m u lti­ tervező felhagyott a közös m em ória, alkalm azásával, és sok összekapcsolt szám ító­
p rocesszorok e se té b e n , ak k o r azo k at szorosan k a p cso ltak n ak nevezik. gépből álló ren d sz e re k e t ép íten ek , am elyeknek csak saját m em ó riáju k van, közös
T öbb im plem en táció s sém a leh etség es. A legegyszerűbb, ha eg yetlen sín van, m em ó riáju k nincs. E zek et a re n d szerek et nevezik m ultiszám ítógépeknek. A m ul­
am elyhez csatlak o ztatju k a m e m ó riá t és az összes p ro cesszo rt. Egy ilyen sínalapú tiszám ító g ép ek C P U -it id ő n k é n t lazán kapcsoltaknak nevezik, m egkülönböztetve
re n d szert m u tat a 2.8. (a) ábra. Sok cég gyárt ilyen re n d szerek et. őket a m u ltiprocesszorokban ta lá lh a tó szorosan kapcsolt C PU -któl.
A m u ltiszám ítógép pro cesszo rai ü zen etek küldésével kom m u n ik áln ak egym ás­
Helyi memóriák sal, am i olyasm i, m in t az e-m ail, csak sokkal gyorsabb. N agy ren d szerek b en nem
célszerű m in d en szám ító g ép et m in d en m ásikkal összekötni, e z ért 2 és 3 dim enziós
rácsot, fá k a t és gyűrűket használnak. E n n e k k ö v etk eztéb en egy gép valam elyik
m ásikhoz k ü ld ö tt ü ze n e te in e k gyakran egy vagy több közbenső g ép en vagy cso m ó ­
p o n to n kell áth alad n iu k ahhoz, hogy a kiindulási helyükről e lé ije n e k a céljukhoz.
M in d azo n által n éhány m ikroszekundum os nagyságrendű üzen etk ü ld ési idők n a ­
gyobb n eh ézség nélkül elérh ető k . K özel 10000 p ro cesszo rt ta rtalm azó m u ltiszá­
m ító g ép ek et is é p íte tte k m á r és v ettek használatba.
M ivel a m u ltip ro cesszo ro k at könnyebb p rogram ozni, d e m ultiszám ítógépeket
könnyebb ép íteni, sok k u ta tó foglalkozik azzal, hogy hib rid ren d szerek b en a k e ttő
Sin Sín előnyös tu lajd o n ság ait ötvözze. E zek a g é p ek a közös m em ó ria ilM zióját pró b álják
(a) (b) k elten i anélkül, hogy p é n zt kellene kiadni a tényleges m egépítésükre. A 8. fejezet­
ben részletesen foglalkozunk a m ultiprocesszorokkal és a m ultiszám ítógépekkcl.
2.8. ábra. (a) Egysínes multiprocesszor, (b) Multiprocesszor lokális memóriákkal

N em kell nagy k é p z e lő e rő a n n a k b elá tá sá ra , hogy h a sok gyors p ro cesszo r p ró ­


bálja állan d ó an elérn i a m e m ó riá t a közös sínen keresztül, az k onfliktusokhoz 2.2. Központi memória
vezet. A m u ltip ro cesszo ro k tervezői sokfele m ó d o n p ró b á ltá k m eg csö k k en ten i
a versenyhelyzeteket, és ezáltal növelni a teljesítm ényt. A 2.8. (b ) áb rá n lá th a ­ A m em ória a szám ítógépnek az a része, ahol a p ro g ram o k at és az a d a to k a t tá ro l­
tó m egoldás m in d en p ro cesszo rn ak biztosít v a lam ek k o ra saját lokális m em ó riát, juk . Sok in fo rm atikus (k ü lö n ö sen a b ritek ) a m em ória helyett szívesebben hasz­
am elyet a tö b b ie k n em é rh e tn e k el. E z a m em ó ria felh asz n álh ató a p ro g ram k ó d és n álja a tár (store) vagy tároló (storage) m egnevezést, b á r ez u tóbbi egyre inkább
az olyan a d a to k szám ára, am elyeket n em kell m egosztani a tö bbi pro cesszo rral. A a diszk egységet jelen ti. M em ó ria nélkül, a h o n n a n a p rocesszorok az a d a to k a t ki
lokális m em ó ria e lérése n em a közös sínen tö rté n ik , így a n n ak fo rg alm át je le n tő ­ tu d ják olvasni, és ahova be tu d ják írni, nem léte z h e tn e tá ro lt p ro g ram ú digitális
sen csökkenti. M ás m eg o ld áso k is elk ép z e lh ető k (p éld áu l g y o rsító tár h aszn álata). szám ítógép.
84 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.2. K Ö Z PO N T I m e m ó r i a 85

2.2.1. Bitek Cím Cím 1 rekesz Cím

A m em ó ria alapegysége a b in áris szám jegy, a bit. Egy bit egy 0-t vagy egy 1-est ta r ­ 0
o[
talm azh at. E z a le h e tő legegyszerűbb egység. (Egy olyan eszköz, am ely csak n u l­
lák at tu d n a tároln i, aligha k é p e z h etn é a m e m ó ria alap ját; legalább két é rté k kell.) iC 1[
A z em b erek gyakran m o n d ják , hogy a szám ító g ép ek azért h aszn áln ak b ináris 2[ 2[
aritm etik át, m e rt az „h a té k o n y ”. E z en azt é rtik (ritk án tu d a to sa n ), hogy digitális 3[ 3[
inform áció valam ilyen folytonos fizikai m ennyiség, m in t p éld á u l feszültség vagy
4[ 4[ 4[
áram erő sség kü lö n b ö ző é rté k e in e k szétválasztásával tá ro lh a tó . M inél tö b b é rté ­
ket kell m eg k ü lö n b ö ztetn i, annál n eh e ze b b a szom szédos é rté k e k e t szétválasztani, 5[ 5[ 5C
és an n ál kevésbé m eg b ízh ató a m em ó ria. A b ináris szám ren d szer csak k ét é rté k 6[ n 6[
6 bit
m eg k ü lö n b ö ztetését igényli. E m ia tt ez a digitális info rm áció leg m eg b ízh ató b b k ó ­ (c)
7[ 7T
dolási form ája. A k e tte s szám ren d szert n em ism erő olvasóink figyelm ébe aján lju k
az A ) függeléket. u 12 bit

N ém ely szám ító g ép et, m in t p é ld áu l az IB M -nagygépeket, úgy reklám ozzák, (b)


hogy a bináris a ritm e tik a m ellett decim álist (tízes szám ren d szerb elit) is tu d n ak .
ICL
E zt a trü k k ö t úgy csinálják, hogy egy decim ális szám jegyet 4 b ite n tá ro ln a k az ún.
BCD (Binary Coded D ecim ai, binárisan kódolt decim ális) kódolással. A négy bit llC
8 bit
16 k o m binációt ad, a szám jegyekhez 0-tól 9-ig elég 10 k om bináció, a m ara d é k 6 k i­
h asználatlan. A láb b lá th a tó az 1944 d ecim álisán, m ajd 16 b ite n b in árisan kódolva: (a)

decimális: 0001 1001 01000100 bináris; 0000011110011000 2.9. ábra. Egy 96 bites memória háromféle szervezési módja

D ecim ális fo rm á tu m b a n (B C D ) 16 b ite n 0-tól 9999-ig tu d ju k táro ln i a szám okat, A k ettes szám rendszert (ak ár nyolcas vagy tizen h ato s szám rendszerbeli jelö lés­
ez összesen csak 10 000 k om bináció, m íg egy tiszta 16 bites b in áris szám 65536 sel) használó szám ítógépek a m em óriacím eket bináris szám okkal fejezik ki. H a egy
k ülö n b ö ző k o m b in áció t tá ro lh a t. E m ia tt m o n d ják azt az e m b erek , hogy a b ináris cím m bites, a m egcím ezhető rekeszek szám a 2"‘. P éldául a 2.9. (a) áb ra egy rek eszé­
h atékonyabb. re hivatkozó cím nek legalább 4 bitesnek kell lennie, hogy a 0 és 11 közötti szám okat
K épzeljük el azo n b an , hogy egy nagyon o kos fiatal ele k tro n ik a i m é rn ö k felfe­ elő tu d ja állítani. E leg en d ő azonban 3 bit a 2.9. (b) és (c) ábrához. A cím bitjeinek
d ezne egy olyan eszközt, am ely nagyon m eg b ízh ató an tu d n á közvetlen ü l tá ro ln i a szám a h atáro zza m eg a m em ória közvetlenül m egcím ezhető rekeszeinek szám át; ez
decim ális szám jegyeket 0-tól 9-ig azáltal, hogy a 0-tól 10 voltig te rje d ő tarto m á n y t függeden attól, hogy a rekeszek hány bitesek. Egy 2'^ d arab 8 bites rekeszből és egy
tíz in terv allu m ra o sztan á. N égy ilyen eszköz 10 000 k o m b in áció t ad n a. B ináris szá­ 2'^ d a ra b 64 bites rekeszből álló m em ória egyaránt 12 cím bitet igényel.
m ok tá ro lá sá ra is le h e tn e e z e k e t h asználni úgy, hogy csak 0-t és 1-est h aszn áln án k ,
de ek k o r négy pozíción csak 16 k o m b in áció t táro lh a tn á n k . Ilyen eszközökkel a d e ­ Számítógép Bit/rekesz
cim ális re n d szer nyilván h aték o n y a b b lenne. Burrouqhs B1700 1
IBM PC 8
DEC PDP-8 12
2.2.2. Memóriacímek IBM 1130 16
DECPDP-15 18
A m em ó riák rek eszek b ő l (cellákból) állnak, am elyek m indegyike valam ilyen in ­ XDS 940 24
Electroloqica X8 27
fo rm áció t tá ro lh at. M in d en rek eszh ez hozzá van ren d elv e egy szám , a rek esz cím e,
XDS Siqma 9 32
a p ro g ram o k ezzel h iv atk o zn ak rájuk. H a egy m em ó riá b a n n rek esz van, a cím ek
Honeywell 6180 36
0-tól n - 1-ig terje d n e k . A m e m ó riáb an m in d en rek eszb en ugyanannyi b it van. H a DCD 3600 48
egy rekesz k bites, a 2* k ü lö n b ö ző b itk o m b in áció b árm ely ik ét tá ro lh a tja . A 2.9. á b ­ CCD Cyber 60
ra egy 96 bites m em ó ria h á ro m leh etség es b eo sztását m u tatja. Figyeljük m eg, hogy
(definíció szerint) a szom szédos rek eszek cím ei eggyel k ü lö n b ö zn ek egym ástól. 2.10. ábra. Bitek száma rekeszenként néhány számitógép-történetiieg érdekes,
kereskedelmi forgalomba került gépben
86 2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E 2.2, KÖ Z PO N T I M E M Ó R IA 87

N éh án y k eresk ed elm i fo rg alo m b a k e rü lt g ép rek eszh o sszát tartalm azza a e n d ián sém a szerin t az 110 bitek a 3. (vagy 7., vagy 11. stb.) b ájtb an vannak, m íg a
2.10. ábra. kis en d ián sém a szerin t a 0. (vagy 4., vagy 8. stb.) b ájtban. A szám ot ta rtalm azó szó
A rekesz jelen tő sé g e , hogy ez a legkisebb cím ezh ető egység. A z utóbbi években cím e m in d k ét esetb en 0.
m ajdnem m in d en szám ítógépgyártó szabványosította a 8 b ites rekeszt, am elyet bájt­ H a a szám ítógépek csak egész szám okat tá ro ln án ak , nem len n e sem m i p ro b lé ­
nak nevezünk. B ájtokból é p ü ln ek fel a szavak. Egy 32 b it szóhosszúságú szám ító ­ m a. D e sok alkalm azás szám ok, k arak terlán co k és egyéb a d attíp u so k keverékével
gép szavai 4 bájto sak , míg egy 64 bit szó h o ss/ű ság ú é 8 bájtosak. A szó je len tő ség e dolgozik. Tekintsük p éld áu l a következő egyszerű szem élyi a d a to k a t táro ló stru k ­
abban áll, hogy a legtöbb u tasítás teljes szavakkal dolgozik, p éld áu l összead két tú rá t, am ely egy k arak terlán cb ó l (alk alm azo tt neve) és k ét egész szám ból (életkor,
szót. Vagyis egy 32 bites g é p n ek 32 bites regiszterei v an n ak , hogy 32 bites szava­ osztálykód) áll. A k ara k te rlá n c egy vagy tö b b 0 b ájttal ki van egészítve, hogy egész
kat dolgozhasson fel, míg egy 64 b ites gép n ek 64 bites regiszterei van n ak , és olyan szám ú szót foglaljon el. A nagy en d ián re p rezen táció a 2.12. (a) áb rán lá th ató , a
utasításai, am elyek 64 bites szavakat m ozg atn ak , a d n ak össze, v o n n ak ki és egyéb kis e n d iá n re p rezen táció p ed ig a 2.12. (b) áb rán , m in d k ettő Jim Sm ith, 21 éves
m ód o n m anipuláln ak . 260-as osztályon (1 x 256 -I- 4 = 260) dolgozó alk alm azo tt adataival.

Nagy endiánról
2.2.3. Bájtsorrend kis endiánra való Átvitel
Nagy endián Kis endián átvitel után és csere

Egy szó bájtjai so rszám o zh ató k b alró l jo b b ra vagy jo b b ró l balra. E lső rán é z ésre ez 0 J 1 M M 1 J 0 M 1 J J 1 M 0
lén yegtelennek tű n h e t, de rövidesen látni fogjuk, hogy e n n e k fo n to s k ö v etk ezm é­ 4 S M 1 T I 1 M s 4 I 1 M s s M 1 T 4
nyei vannak. A 2.11. (a) á b ra egy olyan 32 bites szám ítógép m em ó riájá n a k rész­
8 H 0 0 0 0 0 0 H 8 0 0 0 H H 0 0 0 8
letét m u tatja, am elynek bájtjai b alró l jo b b ra v an n ak szám ozva, ilyenek p é ld á u l a
SPARC vagy az IB M -nagygépek. A 2.11. (b) á b ra egy 32 bites, jo b b ró l b a lra szá­ 12 0 0 0 21 0 0 0 21 12 21 0 0 0 0 0 0 21 12

m ozást használó g ép m egfelelő részét ábrázolja, ilyenek az Intel-p ro cesszo ro k . 16 0 0 1 4 0 0 1 4 16 4 1 0 0 0 0 1 4 16


A z első ren d szer neve nagy endián (big endian), m e rt a szám ozás a legnagyobb
(a) (b) (0 (d)
hely érték ű b ájtn á l k ezdődik, ezzel e lle n té tb en a 2.11. (b) áb rán lá th a tó neve kis
endián (little endian). A z angol elnevezések Jo n a th a n Sw ifttől szárm azn ak , aki 2.12. ábra. (a) Személyi adatstruktúra nagy endián gépben, (b) Ugyanaz kis endián gépben.
(hüliver utazásai cím ű m ű v éb en kigúnyolta azo k at a p o litik u so k at, akik h á b o rú t (c) Nagy endián gépről kis endián gépre történt átvitel eredménye.
szítottak, m ert n em tu d la k m egegyezni, hogy a to jást a v astagabbik vagy a keske- (d) Előző átvitel a bájtsorrend megfordításával
nyebbik felén kell-e feltörni. A sz á m ító g ép -arch itek tú rák k al k ap cso latb an a kife­
jezé st C o h en (1981) h aszn álta elő szö r egy élvezetes cikkében. M in d k é t rep rezen táció teljesen jó, és ö n m ag áb an konzisztens. A p ro b lé m á k ak ­
k o r k ezd ő d n ek, am ik o r az egyik gép a d a to k a t a k ar küldeni a m ásiknak hálózaton
Cím Nagy endián Kis endián Cím k eresztül. Tegyük fel, hogy a nagy en d ián elküldi a stru k tú rá t b á jto n k é n t a kis en-
0 0 1 2 3 3 2 1 0 0
d ián n ak , a 0. b ájtn ál kezdi és a 19. b ájtn ál fejezi be. (O p tim ista m ó d o n fe ltételez­
zük, hogy a b ájto k o n belül a bitek so rren d je nem fordul m eg, enélkül is van elég
4 4 5 6 7 7 6 5 4 4
b aju n k .) Tehát a nagy e n d ián 0. bájtja a kis en d ián 0. b ájtjáb a kerül, m ajd így to ­
8 8 9 10 11 11 10 9 8 8 v ább a 2.12. (c) áb rá n lá th a tó m ódon.
12 12 13
A m ik o r a kis e n d iá n m eg p ró b álja kinyom tatni a nevet, ak k o r m ég m inden re n d ­
14 15 15 14 13 12 12
b en van, de az éle tk o r 21 x 2^'' lesz és az osztály szám a is h aso n ló k ép p en eltorzul.
Bájt Bájt E z a helyzet azért áll elő, m ert az átvitel során a szöveg bájtjai helyesen, szavan­
32 bites szó - 32 bites szó - k én t fo rd íto tt so rren d b e kerü ltek , de így az egész szám ok bájtjai is fordítva v an ­
nak , am i viszont m á r baj.
(a) (b)
K ézenfekvő m egoldás lehet, hogy átvitel u tá n egy p ro g ram m al visszafordítsuk a
2.11. ábra. (a) Nagy endián memória, (b) Kis endián memória s o rre n d e t m inden szóban. H a ezt m egtesszük, a 2.12. (d) áb rán lá th a tó helyzetbe
k erü lü n k , am ikor a k ét egész szám stim m el, de a név „M IJT IM S ” lesz, ráad ásu l a
F ontos m e g érte n i azt, hogy m ind a nagy e n d ián , m in d a kis en d iá n ren d szerb en „ H ” valahol a sem m i k ö zepén lóg. A k ara k te rlá n c azért kavarodik össze, m ert a
egy 32 bites szám , péld áu l a 6, ugyanúgy a 3 legkisebb h ely érték ű b ite n elhelye­ g ép először a 0. b ájto t (egy szóköz) olvassa, m ajd az I . b á jto t (M ) és így tovább.
zett 110 bitkom binációval van rep rezen tálv a, a tö bbi 29 bit p ed ig m ind 0. A nagy
2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E
88 2.2. K Ö Z PO N T I M E M Ó R IA 89

N incs egyszerű m egoldás. Egy lehetséges, de nem h até k o n y ú t leh et az, ha m in­
meg, hogy a kódszóban páros (vagy p áratlan ) szám ú 1-es legyen. E nnek a kódolás­
den ad atelem elé egy m ező t helyezünk, am ely m egm ondja, hogy m ilyen típusú
nak a H am m ing-távolsága 2, m ert m inden egyszeres bithiba hibás paritású kódszót
ad at követi (k arak terlán c, egész szám stb.), és az m ilyen hosszú. E n n ek segítsé­
állít elő. M ás szóval, két bithiba kell ahhoz, hogy egy érvényes kódszóból egy másik
gével a vevőnek csak a szükséges ko n v erzió k at kell elvégeznie. B árhogy is legyen,
érvényes kódszóhoz jussunk. Ezt egyetlen bithiba feli.sm erésére lehet használni. H a
annyi látszik, hogy a b á jtso rren d egyértelm ű rö g zítésén ek hiánya nagy k e lle m et­
hibás p aritású szó kerül kiolvasásra a m em óriából, h ib aü zen etet kapunk. A prog­
lenségeket okoz k ü lö n b ö ző gép ek közö tti ad atá tv itel során.
ram nem tu d tovább folytatódni, de legalább nem keletkeznek hibás eredm ények.
E gyszerű hibajavító k ó d o lásra p é ld a k é n t tek in tsü k azt a kódolást, ahol csak a
k övetkező négy kódszó érvényes:
2.2.4. Hibajavító kódok
0000000000,0000011111, n n 100000 és n n i i i m
Az elek tro m o s h áló za tb an k eletk ező áram lö k ések és egyéb o k o k m iatt a szám ító ­
gepek m em ó riái n é h a h ibáznak. A z ilyen hibák ellen védekezésül bizonyos m e­
E n n ek a kó d olásnak a H am m ing-távolsága 5, am i azt jelen ti, hogy ki tud ja v íta ­
m óriák hibafelism erő vagy h ibajavító k ó d o t alkalm aznak. E zek h aszn álata esetén
ni d u p la bithibákat. H a a 0000000111 kódszó érkezik, a vevő tudja, hogy az e re ­
m in den m em óriab eli szót kiegészítenek speciális b itekkel. Egy szó kiolvasása u tán
d eti csak a 0000011111 le h e te tt (ha nem volt 2 b ithibánál több). H a azonban a
a kiegészítő b itek et ellenőrzik, hogy lássák, tö rté n t-e hiba.
0000000000 kódszó 3 b ith ib a m iatt lett 0000000111, ez a hiba m ár nem javítható.
A hhoz, hogy m eg értsü k , hogyan k ezelh ető k a hibák, elő szö r azt kell m eg n éz­
K épzeljük el. hogy m ad atb it és r ellen ő rző bit felhasználásával olyan kódolási
nünk közelebbről, hogy v aló jáb an mi is a hiba. Tegyük fel, hogy egy m em ó riab eli
a k aru n k tervezni, am ely m in d en egyszeres h ib át ki tud javítani. A 2" érvényes m e ­
szó in adatbitből áll, e h h e z ad u n k m ég r red u n d á n s, m ás néven e llen ő rző b itet. A
m óriaszó bárm elyikének van n érvénytelen kódszó szom szédja tőle 1 H am m ing-
teljes hossz legyen n (vagyis n = m + r). Egy n bites, m a d a tb ite t és r ellen ő rz ő b i­
távolságra. E zek et úgy k ap h atju k m eg, hogy egyenként invertáljuk a hozzá tarn>zó
te t tartalm azó egységet gyakran n bites kódszónak neveznek.
n b ites kódszó m in d en egyes bitjét. így m ind a 2"' érvényes m em óriaszóhoz tartc'z-
H a ad o tt két kódszó, m o n d ju k 10001001 és 10110001, m eg állap íth atju k , hogy
nia kell k ü lö n b ö z ő n -f- 1 b itm in tán ak (a helyes kódszó és n d a ra b hibás). A z összes
hány bitpozíción té rn e k el. .leien e setb en 3 bit különbözik. A z e lté rő bitpozíciók
b itm in ta szám a 2", e z é rt {n -I- 1)2"' á 2". Felhasználva, h o gy/; = m + r, azt kapjuk,
szám ának m egállap ításáh o z egy egyszerű logikai K IZ Á R Ó -V A G Y m ű v eletet kell
hogy (m r 1) < 2". A z m ad o tt, e zért a k a p o tt ered m én y m egad egy alsó h a tá rt
végezni a két kódszón, m ajd m egszám olni az ere d m én y b en az 1-es b itek et. A z e lté ­
az egyszeres hiba jav ításáh o z szükséges ellen ő rző bitek szám ára. A 2.13. áb rán lát­
rő bitpozíeiók szám át a k ét k ódszó H am niing-távol.ságának nevezzük (H am m ing,
ható , hogy k ü lö n b ö ző m em óriaszó-hosszúság esetén hány ellen ő rző bit kell.
1950). E n n ek az a jelen tő ség e, hogy ha két kódszó távolsága cl, cl d a ra b egyszeres
b ith ib án ak kell e lő fo rd u ln ia ahhoz, hogy az egyik kódszó a m ásikba alakulhasson.
Szó Ellenőrző Teljes Hozzáadott bitek
P éldául az 11110001 és a 00110000 H am m ing-távolsága 3, m ert 3 egyszeres b ith i­
hossza bitek hossz százaléka
ba szükséges ahh o z, hogy az egyik a m ásikba alakulhasson.
8 4 12 50
m bites m em óriaszavak ese té n m ind a 2"' b itm in ta elő fo rd u lh a t, de a red u n d á n s
16 5 21 31
bitek kiszám ításán ak szabálya m iatt a 2" kódszó közül csak 2'" érvényes. H a egy
32 6 38 19
m em óriaolvasás érv'énytelen kódszót ad, a szám ítógép azo n n al tu d ja, hogy m e m ó ­
64 7 71 n
riahiba lépett fel. A z elle n ő rz ő b ite k et kiszám ító alg o ritm u s ism ereté b e n m eg h a­
128 8 136 6
tá ro z h a tó az összes érvényes kódszó listája, m ajd eb b e n a listában m eg leh e t ke­
256 9 265 4
resni azt a k ét kódszót, am elyek H am m ing-távolsága m inim ális. E z az é rté k lesz az
512 10 522 2
összes kód H am m ing-távolsága.
Egy kódolás h ib afelism erő és hibajavító képessége H am m in g -táv o lság átó l függ.
2.13. ábra. Egyetlen bithibátJavítani képes kódoláshoz szükséges ellenőrző bitek száma
cl egyszeres b ith ib a felism eréséh ez d -I- 1 távolságú k ó d o lás kell, m e rt eb b en az
e setb en d egyszeres b ith ib a sem m ifelek cp p en nem a la k íth a t át egy érvényes k ó d ­
E z az elm életi alsó k o rlát e lé rh e tő egy R ich ard H am m in g által m e g a l k o t o t t
szót egy m ásik érvényes kódszóvá. H a so n ló k ép p en , d egyszeres bith ib a jav ítá sá ­
m ó d szerrel (H am m ing, 1950). M ielőtt a H am m ing-algoritm usba belefognánk,
hoz 2il + 1 távolságú k ó d o lás kell, m ert így az érvényes kódszavak olyan távol v an ­
nézzünk m eg egy egyszerű rajzot, am ely világosan m u tatja egy 4 bites szavakra
nak egym ástól, hogy m ég d egyszeres bith ib a e setén is az e red e ti kódszó m inden
te rv e ze tt hibajavító k ódolás alap ö tletét. A 2.14. (a) áb ra V enn-diagram ján három
m ás kódszónál közeleb b van, így eg y értelm ű en m eg h atá ro z h a tó .
k ö r látszik. A , B és C, am elyek h ét részre osztják a síkot. P éld ak én t kódoljuk az
Egyszerű péld ak é n t a hibafelism erő kódolásra tekintsük azt a kódolási, am ikor az
1100 négybites m em óriaszót ■ á zA B ,A B C ,A C és B C régiókkal, rég ió n k én t 1 bittel
adatb itek h ez egyetlen paritásbitet adunk hozzá. A p aritásb it é rték é t úgy választjuk
(szótári ren d ezésb en ). Ez a kódolás láth ató a 2.14. (a) ábrán.
90 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2 .2 , K Ö Z PO N T I M EM Ó R IA 91

E zután a 2.14. (b ) á b rá n lá th a tó m ó d o n m in d h á ro m ü res rég ió h o z egy p aritás- Á lta lán o san a b. b ite t azok a b^, b^ ,..., b. p aritásb itek ellenőrzik, am elyekre
bilcl re n d elü n k úgy, hogy p á ro s p a ritá st kapju n k . D efiníció szerin t m in d h áro m ^ + b^ + ... + b = h. P éld áu l az 5. b ite t az 1. és a 4. bit ellenőrzi, m ert 1 -h 4 = 5.
k ö rb en a b itek összegének p á ro sn a k kell lennie. Pa, A k ö rb en a 0, 0, 1,1 b itek v an ­ A 6. b ite t a 2. és a 4. bit ellenőrzi, m e rt 2 -I- 4 = 6 és így tovább.
nak, az összegük 2, am i páros. A 5 k ö rb e n az 1, 1, 0, 0 b ite k van n ak, ism ét páro s A 2.15. á b ra a 16 bites 1111000010101110 m em óriaszóhoz ta rto z ó H am m ing-
összeget adva. V égül a C k ö rb en ugyanez a helyzet. E b b e n a p é ld áb a n é p p e n m in ­ k ó d k iszám ítását m u tatja. A z ered m én y a 21 bites 001011100000101101110 k ó d ­
den k ö rb en ugyanazok a bitek szerep eln ek , de m ás p éld ák b a n a 0 és 4 összeg e lő ­ szó. A hibajavítás m ű k ö d ésén ek b e m u tatásáh o z nézzük m eg, hogy mi tö r té ­
fo rd ulhat. Az áb ra egy 4 ad atb itb ő l és 3 p aritásb itb ő l álló k ó d szó n ak felel meg. nik, ha péld ául egy áram lökés k ö vetkeztében az 5. bit átfo rd u l. A z új kódszó
001001100000101101110 lesz 001011100000101101110 helyett. A z ö t p aritásb itet
ellenőrizve a következő ered m én y re ju tu n k :

1. p a ritá sb it hibás (1., 3., 5., 7., 9., 11., 13., 15., 17., 19., 21. bitek között
ö t 1-es van)
2. p a ritásb it helyes (2., 3., 6., 7., 10., 11., 14., 15., 18., 19. b ite k k ö zö tt
hat 1-es van)
4. p aritásb it hibás (4., 5., 6., 7., 12., 13., 14., 15., 20., 21. b itek között
öt 1-es van)
(a) 8. p a ritásb it helyes (8., 9., 10., 11., 12., 13., 14., 15. b itek k ö z ö tt két 1-es van)
16. p a ritá sb it helyes (16., 17., 18., 19., 20., 21. bitek k ö zö tt négy 1-es van)
2.14. ábra. {a) Az 1100 kódolása, (b) Páros paritásbitek hozzáadása, (c) l-liba az AC-ben
A z 1., 3., 5., 7., 9., 11., 13., 15., 17., 19. és 21. bitek között p áro s szám ú l-esn ek
M ost tegyük fel, hogy a z /I C rég ió b an ta lá lh ató bit elrom lik, 0-ról 1-re változik, kell lennie, mivel p áro s p a ritá st használunk. A hibás b itnek azok k ö zö tt kell lennie,
ahogy a 2.14. (c) áb rán láth ató . A szám ítógép észleli, hogy az A és a C k ö rö k n ek am elyeket az 1. p aritásb it ellenőriz, vagyis az 1., 3., 5., 7., 9., 11.. 13., 15., 17., 19.
rossz (p á ra tla n ) a p aritása . C sak egyfélek ép p en le h et 1 bit javításával h ely reállíta­ vagy 21. valam elyike hibás. A 4. p aritásb it is hibás, am i azt jelen ti, hogy a 4., 5., 6.,
ni a ren d et, a z ^ lC régió b itjé t kell visszaállítani 0-ra, m eg szü n tetv e ezzel a hibát. 7., 12., 13., 14., 15., 20. vagy 21. bitek egyike hibás. A hibás bitn ek m indkét listában
Ilyen m ód o n a szám ítógép au to m a tik u san k ijavíthatja az egyszeres b ith ib ák at. b e n n e kell lennie, vagyis az 5., 7., 13., 15. vagy 21. bit a bűnös. D e a 2. p aritásb it h e ­
M ost nézzük a tetszőleges hosszúságú m em ó riaszav ak h ibajavító k ó d o lására lyes, ez kizárja a 7. és a 15. b itet. H aso n ló an a 8. p aritásb it helyessége kizárja a 13.
h aszn álh ató H am m in g -alg o ritm u st. A k ó d o lás so rán r re d u n d á n s b itet a d u n k egy b itet. V égül, a 16. p aritásb it is helyes, ez kizárja a 21. bitet. Az egyetlen m eg m arad t
m bites szóhoz, így a kódszó teljes hossza n = m + r bit lesz. A b itek et nem 0-val, b it az 5., e n n ek kell hibásnak lennie. M ivel 1 érté k ű n e k olvastuk, ezért a helyes é r­
h an em 1-gyel k e zd ő d ő e n sorszám ozzuk, a legnagyobb h ely érték ű az 1-es so rszá­ ték én e k 0-nak kell lennie. Ezzel a m ódszerrel a hibákat ki leh et javítani.
m ú lesz. M inden olyan b it p aritásb it lesz, am elynek sorszám a 2 hatványa, a többi
pedig ad atb it. P éldául egy 16 b ites kódszó h o z 5 p a ritá sb ite t adunk. A z 1., 2., 4., 1n 1000010101110 memóriaszó
8. és 16. pozíción v an n ak a p aritásb itek , a tö bbi pedig m ind ad atb it. A m e m ó ria ­
^ 0 _ L 0 j _ j _ _ L 0 _ o_ ^ _ o_ _ o_ j _ _ o_ _ l | T] _ o_ j _ j l _ i_
szó összesen 21 b ites (16 ad at, 5 p aritás). E b b en a p é ld á b a n p á ro s p aritá st fo gunk
1 2 3 4 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21
használni (h aszn á lh a tn á n k p á ra tla n t is).
M inden paritá sb it m eg h a táro z o tt b itp o zíeió k at ellenőriz; a p aritásb it é rté k é t
úgy állítjuk be, hogy az ellen ő rz ö tt pozíciókon lévő 1-esek szám a p áro s legyen. A z
egyes paritásb itek által elle n ő rz ö tt b itpozíciók a következők: Paritásbitek'

I . bit; 1., 3., 5., 7., 9., 11., 13., 15., 17., 19., 21. 2.15. ábra. 76 bites 1111000010101110 memóriaszó Hamming-kódjának kiszámítása
2. bit: 2., 3., 6., 7., 10., 11., 14., 15., 18., 19. 5 ellenőrző bit hozzáadásával
4. bit: 4., 5., 6., 7., 12., 13., 14., 15., 20., 21.
8. hit: 8., 9., 10., 11., 12., 13., 14., 15. A hibás bit m egtalálásán ak egyszerű m ódja, hogy először kiszám ítjuk az ösz-
16. bit: 16., 17., 18., 19., 20., 21. szes p a ritásb itet. H a m indegyik helyes, nem volt hiba (vagy 1-nél tö b b hiba fordult
elő). E zu tán összeadjuk a hibás p aritásb itek sorszám át, az 1. paritásb it eseten 1-et,
92 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.2 . K Ö Z PO N T I M EM Ó R IA 93

a 2. p aritásb it e se ten 2-t, a 4. p aritásb it e se te n a 4-et és így tovább. Az ered m én y ü l g j'o rsító lá r (cache, a francia cac/ier szóból szárm azik, jelentése: elrejteni). A követ­
lo p o tt összeg a hibás bit pozícit'ija. P éld áu l, ha a p a ritásb it 1 és 4 hibás, de a p a ri­ k ezőkben a gyorsítótárak m ű k ö d ését és használatát tárgyaljuk. R észletesebben a 4.
tásbit 2, 8, 16 helyes, az 5. (1 + 4) b it fo rd u lt át. fejezetb en foglalkozunk m ajd velük.
A g y o rsítótár a lap ö tlete egyszerű: a leggyakrabban has/.nált m em oriaszavakat
a g y o rsító tárb an tartju k . A m ik o r a processzornak szüksége van egy szóra, először
b ele n é z a gy orsítótárba. H a a szó nincs b en n e, csak ak k o r fordul a központi m e ­
2.2.5. Gyorsítótár
m ó riáh o z. H a a szavak je le n tő s része a gyorsító tárb an van, az átlagos elérési idő
A szám ítógépek tö rté n e te so rán a processzorok m indig gyorsabbak v oltak a m e­ n a g y m érték b en csökken.
m óriáknál. A m em óriákkal eg\óitt a processzorok is m indig gyorsabbak lettek, ig y a A siker te h á t azon m úlik, hogy a k e resett szavak m ek k o ra h ányada van a gyor­
különbség m indig fen n m arad t. V alójában azt a lehetó'séget, hogy egyre tö b b á ra m ­ sító tárb an . Évek ó ta ism ert, hogy a p ro g ram o k nem teljesen véletlen szerű en k eze­
k ö rt zsúfoljanak rá egy lap k ára a C P U -terv ezó k a rra használták, hogy csővezeté­ lik a m em ó riát. H a egy a d o tt hivatkozás az A m em óriacím re tö rtén ik , a következő
keket és szuperskaláris fu nkciókat v alósítsanak m eg, am ellyel m eggyorsíthatják a m em ó riah ivatkozás valahol A egy tágab}5 k ö rn y ezetéb en lesz. E rre egy egyszerű
processzorok m ű k ö d ését. A m em ó riák tervezői ezzel e llen tétb en az új te c h n o ló ­ p é ld a m ag a a pro g ram . A v ezérlésálad ó u tasításo k és az eljáráshívások kivételé­
giákat nem a sebesség, h an em a kap acitás növelésére haszn álták fel, így a helyzet vel az u tasítá so k egym ás u tá n i cím ekről k erü ln ek beolvasásra. E zen tú lm e n ő e n a
idővel egyre rosszabb lett. A g y akorlatban ez azt jelen ti, hogy m iu tán a processzor p ro g ram o k futási id ejü k nagy részét ciklusokban töltik, am ik o r is ugyanazt a n é ­
kér egy szót a m em ó riáb ó l, a k ért szót m ég jó n éh án y C P U -ciklus a latt nem kapja hán y u tasítá st hajtják végre ú jra és újra. Egy m átrix o k at kezelő pro g ram is valószí­
meg. M inél lassabb a m em ória, annál tö b b ciklust kell várnia a processzornak. nű leg sokszor hivatkozik a m átrixra, m ielő tt valam i m ás tevékenységbe fogna.
A hogy arra k o ráb b an rá m u ta ttu n k , k ét m egoldás k ép z e lh e tő el. A legegysze­ A z a m egfigyelés, hogy egy rövid id ő intervallum ban a m em óriah ivatkozások a
rű b b m ódszer, hogy k iadjuk a m em óriaolvasási p aran c so t, am ik o r az jelen tk ezik teljes m em ó rián ak csak egy kis részét érintik, a lokalitási elv. E z az alap ja a gyor­
a végrehajtás során , m ajd folytatjuk a v ég reh ajtást, és csak a k k o r v árak o zta tju k a sító táras ren d szerek n ek , ahol nagy v o n alak b an az tö rtén ik , hogy h a egy m e m ó ria ­
pro cesszort, ha egy gépi u tasítás használni p ró b á ln á a m em ó ria szót, m ielő tt az szóra hivatkozik a p ro g ram , a szó és m ég n éh án y szom szédja a nagy lassú tárból
m egérkezne. M inél lassabb a m em ó ria, ez an n ál g y ak rab b an elő fo rd u lh a t, és a n ­ b eo lv asásra kerül a gyo rsító tárb a, így ha legközelebb használják, m ár gyorsan e l­
nál nagyobb az időveszteség is, am ik o r elő fo rd u l. P éld áu l, ha a m em ó riak esés 10 érh e tő . A C P U , a g y o rsító tár és a központi m em ó ria egy szokványos e lren d ezését
ciklus, nagyon valószínű, hogy a követk ező 10 u tasítás valam elyike használni a k a r­ a 2.16. á b rá n láthatjuk. H a a C P U rövid időn belül egy szóra /c-szor hivatkozik, e b ­
ja a k é rt szót. ből 1-szer kell a lassú m em ó riáh o z fordulni, k - 1-szer pedig a gyorshoz. M inél n a­
A m ásik m egoldás a szám ítógépek v árak o zásán ak m eg elő zésére, hogy a fo r­ gyobb a k , an n ál jo b b a teljesítm ény.
dító p ro g ram o k tó l m egköveteljük, hogy olyan k ó d o t állítsanak elő, am elyekben
a p ro g ram nem használ fel egy m em ó ria szót, m ielő tt az m eg érk ezn e. A baj az,
hogy ezt sokkal egyszerűbb m o n d an i, m int m egvalósítani. G yak ran egy LOAD u tán
sem m i m ást nem leh et ten n i, m in t várni, így a fo rd ító p ro g ra m k én y telen NOP (no
o p e ra tio n , nincs m űvelet) u tasításo k at elhelyezni a k ó d b an , am elyek n em csinál­
n ak sem m it, csak a helyet foglalják, és az id ő t fecsérlik. V alójában ez a m egoldás
szoftveres v árako zás a h ard v eres várak o zás helyett, de a teljesítm én y csökkenése
ugyanakkora.
T ulajdonképpen a p ro b lé m a n em technológiai, han em gazdaságossági. A m é r­
nök ö k tudják, hogy kell olyan gyors m em ó riát ép íten i, m in t a C P U , de eh h ez a 2.16. ábra. A gyorsítótár logikailag a CPU és a központi memória között helyezkedik el. Fizikailag
C P U lap k ára kellen e ten n i (m e rt a sínen k eresztül nagyon lassú elju tn i a m e m ó ­ számos olyan lehetséges hely van, ahová elhelyezhető.
riához). N agy m e m ó ria elhelyezése a C PU lap k án m egnöveli a lapka m é re té t,
em iatt m ég d rág áb b len n e, de m ég h a az á r nem is szám ítan a, egy C P U lap k a m é ­ N éh án y p a ra m é te r bevezetésével form álisan is elvégezhetjük a szám ítást, je lö l­
re tén ek m ég ak k o r is len n én e k gyakorlati korlátai. így aztán k ét d o log közül vá­ jü k c-vel a g y orsítótár elérési idejét, m -m el a k özponti m em ó ria elérési id ejét és h-
laszthatunk: kicsi gyors m em ó ria vagy nagy lassú m em ó ria. Nagy, gyors és olcsó val a találati arányt, am i azt m u tatja, hogy az összes hivatkozás m ek k o ra hányadát
m cm iiriát szeretn én k . le h e te tt a gyorsító tárból kielégíteni. A z előző b ekezdés p éld ájáb an h = ( k - \)/k.
É rdekes m ódo n van n ak olyan m t)dszcrck, am elyek a kicsi gyors és nagy lassú B izonyos szerzők a hibaarányt is definiálni szokták, e n n ek érté k e 1 - h .
m em ó ria kom binálásával egyszerre nyújtják m érsék elt áro n a gyors m em ó ria se­ Ezekkel a definíciókkal kiszám íthatjuk az átlagos elérési időt a következőképpen:
bességét (m egközelítőleg) és a lassú m em ó ria m ére tét. A kis, gyors m em ó ria neve
94 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2 .2 . K Ö Z PO N T I M E M Ó R IA 95

átlagos elérési idő = c + { I - h ) m V égül, az ö tö d ik szem pont a gyo rsító tárak szám a. N em ritk a m anapság, hogy
van egy elsődleges gyo rsító tár a pro cesszo rlap k án , egy m ásodlagos a lapkán kívül,
Hah 1, m inden hivatkozás kiszolgálható a gyorsító tárb ó l, az elérési idő pedig de a pro cesszorral egy tokban, végül egy h arm ad ik m ég m esszebb.
közelíti c-t. M ásrészt, ha h 0, m inden e setb en m em ó riam ű v elctct kell végezni,
az elérési idő pedig közelíti c + 777-et, m e rt elő szö r c időegység a la tt ellenőrizni
kell a g y o rsító tárat (sik ertelen ü l), m ajd m időegység kell a m em ó riam ű v elet elvé­ 2.2.6. Memóriatokozás és -típusok
gezéséhez. B izonyos re n d szerek b en a m em ó ria m ű v e le tet el leh et kezdeni a gyor­
sító tárb an való kereséssel p árh u za m o san , így h a nincs ta lála t a g y o rsító tárb an , a A félv ezető -m em óriák első napjaitól kezdve az 1990-es évek elejéig a m em ó riát
m em óriaciklus m ár e lk ez d ő d ö tt. E n n é l a stra té g iá n ál azo n b an szükség v an arra, külön á ram k ö ri lap kákon g yártották, ad ták el és szerelték be. A lapkák sűrűsége
hogy g y o rsító tár-találat e se té n a m em ó riát m u n k a közben m egszakíthassuk, am i a 1 kbitrő l 1 m eg ab itre vagy e fölé em elk ed ett, de m inden lapka k ü lön egység volt.
m egvalósítást b o n y o lu ltab b á teszi. A z első P C -kben gyakran voltak fe n n ta rto tt 3ljzatok, am elyekbe kiegészítő m em ó ­
A lokaiitási elvtől v ezéreltetv e a k özponti m em ó ria és a g y o rsító tár k ö tö tt m é re ­ ria lap k á k a t le h e te tt b eten n i, ha a v ásárlónak szüksége volt rá.
tű b lo k k o k ra van osztva. A m ik o r a g y o rsító táro n belüli b lo kkokról esik szó, a k k o r Jelen leg gyakran m ás elren d ezést használnak. T ö b b . tipikusan 8 vagy 16 lapkát
ezek et általáb an g y o rsító so rn ak (cache line) nevezik. H a egy k e re se tt szó nincs a egy kicsi n y o m tato tt áram k ö ri lap k ára rögzítenek, és egységként árusítják. E z az
g yorsítótárban, egy egész so rt b e tö lte n e k a k ö zp o n ti m em ó riáb ó l a gy o rsító tárb a, egység a SIM M (Single Inline M emory M odulé, egy érintkezősoros m em óriam o­
nem csak a szükséges szót. P éld áu l 64 bájto s so rm é rc tte l, a 260-as m em ó riacím re dul) vagy DIM M (Dual Inline M emory M odulé, két érintkezósoros m em óriam o­
tö rté n ő hivatkozás b eh ú zza a 256. b ájttó l a 319. bájtig te rje d ő so rt egy gy o rsító so r­ dul), a ttó l függően, hogy a lap k án a k csak az egyik vagy m indkét o ld alán vannak-e
ba. Egy kis szerencsével a gyorsítósor tö bbi b ájtja közül is szükség lesz n éh án y ra érin tk ező i. A SIM M m o d u lo k n ak 72 érin tk ező je van, és 32 b itet tu d n ak to v áb b íta­
h am arosan. Ez a m ó d szer h aték o n y a b b , m int egyesével olvasni a szavakat, m e rt ni egy ó rajelciklus alatt. A D IM M m odu lo k n ak m ind a két old alo n 84 érintkezője
egyszerre k szót olvasni h aték o n y a b b , m in t egy-egy szót olvasni fe-szor. E zenkívül van, összesen 168, és 64 b itet tu d n ak továbbítani egyetlen órajclciklus alatt. Egy
a több szóból álló so ro k azt is jelen tik , hogy kevesebb van belőlük, ez p edig k ev e­ SIM M lá th a tó a 2.17. ábrán.
sebb tö b b letm u n k á t je le n t.
A nagy teljesítm ényű p ro cesszo ro k e se té b en a gy o rsító tárak tervezése egyre
fo n to sab b felad at. A z egyik szem p o n t a g y o rsító tár m é re te. M inél nagyobb, annál
32 MB-os
jo b b an m űködik, de egyben d rág áb b is. M ásik szem p o n t a gy o rsító so r m ére te . Egy
-memórialapka
16 K B -os gyorsító tár fe lo szth a tó 1024 d a ra b 16 bájto s so rra, 2048 d a ra b 8 bájtos
sorra, és m ég m ás ko m b in áció k is elk ép z elh ető k . A h arm ad ik szem p o n t a gyor­ _.
sító tár felépítése, vagyis az, hogy m ilyen m ó d o n ta rtja nyilván a g y o rsító tár, hogy 1111Ilin 1Ili! Ilii Ilii Ilii Ilii Ilin f * — Csatlakozó
mely m em óriaszav ak van n ak b en n e. A g y o rsító tárak at a 4. fejezetb en tárgyaljuk
részletesen. 2.17. ábra. Egy 256 MB-os SIMM (Single Inline Memory Modulé). A két felső lapka vezérli a SIMM
A negyedik tervezési szem p o n t az, hogy az u tasításo k a t és az a d a to k a t k ö ­ működését
zös vagy külön tá rb a n tartju k . A z egyesített gyorsítótár (az u tasításo k és a d a to k
ugyanazt a g y o rsító tárat h asználják) egyszerűbb szerk ezetű , és a u to m atik u san Egy tip ik u s SIM M vagy D IM M állh at nyolc, egyenként 256 m egabites (32 M B )
egyensúlyban ta rtja az u tasításo k és az ad a to k m o zg atását. M in d azo n által m ára lapkából. A teljes m odul m érete 256 M B. Sok szám ítógépbe négy m o d u lt lehet
az osztott gyorsítótár felé tö rté n t elm ozdulás, am ik o r is az u tasításo k és az a d a ­ b eten n i, így ez összesen 1 G B , ha 256 M B -os m o d u lo k at h asználunk, és több, ha
tok külön g y o rsító tárb an v annak. E z u tó b b it Harvard-architektúrának is nevezik, nagyobbak a m odulok.
ugyanis gyökerei egészen lío w a rd A iken M ark III gépéig n y úlnak vissza, am ely­ A fizikailag kisebb D IM M -ek et S O -D IM M -ek n ek (Sm all O utline D IM M ) n e ­
n ek külön m em ó riája volt az u tasításo k és az a d a to k szám ára. A csővezetékes vezik, és a n o teszg ép ek b en használják. A SIM M és D IM M m o d u lo k n ak lehet
központi egységek e lte rjed t h aszn álata készteti e rre a terv ező k et. A z u tasítást p aritásb ite s hibajavító kódja, m ivel azonban az átlagos h ib aarán y nagyon kicsi, 1
elő re beolvasó egységnek ug y an ak k o r kell h ozzáférn ie az u tasításo k h o z, m in t az hib a m in d en 10 évben, e z ért a legtöbb m ezei szám ító g ép b en a hibafelism erést és
op eran d u sb eo lv asó egységnek az a d ato k h o z . A szétválasztott g y o rsító tár lehetővé -javítást el szokták hagyni.
teszi a p árh u zam o s m ű k ö d ést, az egy esített g y o rsító tár nem . E zenkívül, m ivel az
utasításo k at általáb a n n em m ó d o sítják v ég reh ajtás közben, az u tasításo k at táro ló
gyorsítótár ta rta lm á t so h a n em kell visszaírni a m em ó riáb a.
96 2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E 2.3. H Á T T ÉR M EM Ó R IA 97

2.3. Háttérmemória A k ö zp o n ti m em ória e lérése tipikusan néh án y tíz n an o szek u n d u m o t vesz igénybe.
E zen a p o n to n nagy rés van, a m ágneslem ez elérési ideje legalább 10 ms, a szalag
N em szám ít m ekk o ra a központi m em ória, m indig túl kicsi. Az em b erek mindig és az op tik ai lem ez elérési ideje pedig m áso d p ercek b en m érh ető , ha az a d a th o r­
több ad ato t akarn ak tárolni, m int am ennyi b elefér, elsősorban azért, m ert ahogy a d ozót elő kell venni és be kell tenni a m eghajtóba.
technológia fejlődik, az em b erek m indjárt olyan dolgokat ak arn ak tárolni, am i k o ­ M ásodszor, a tárolási k ap acitás lefelé haladva növekszik. A C P U regiszterei k ö ­
rábban csak a tudom ányos-fantasztikus m űvekben volt lehetséges. Például, mivel rü lbelül 128 b ájt tá ro lá sá ra jók, a g y o rsító tár n éh án y m egabájtos, a központi m e­
az Egyesült Á llam ok költségvetési irányelvei szerint a korm ányzati szerveknek saját m ó ria n éh án yszor tíz m egabájttól n éhányszor ezer m egabájtig, a m ágneslcinczek
bevétellel kell rendelkezniük, elképzelhető, hogy a K ongresszusi K önyvtár úgy dönt, ped ig n é h á n y gigabájttól n éh ányszor tíz gigabájtig terjed n ek . A szalagok és az o p ­
digitalizálja teljes anyagát, és fogyasztási cikként árulni kezdi („A z em beriség összes tikai lem ezek jelen leg cserélhetők, ezért k ap acitásu k n ak csak a tu lajd o n o s k ölt­
tudása csak 99,95 d o llár!”). A durva becsléssel 50 m illió könyv, m indegyikben 1 M B ségvetése szab h a tá rt. '
szöveg és 1 M B tö m ö ríte tt képi anyag, tárolásához 10''* bájt, vagyis 100 tera b á jt kell. H arm ad szo r, az 1 d o llá ré rt m egvásárolható bitek szám a a h ierarch iáb an lefelé
A z összes eddig készített mozifilm táro lása is ebben a tarto m án y b an van. Ennyi in­ növekszik. Jó lle h e t az aktuális árak gyorsan változnak, a központi m em ó riát d o l­
form áció nem fér a központi m em óriába, legalábbis m ég néh án y évtizedig nem . lár/m eg ab ájtban, a m ágneslem ezt p enny/m egabájtban, a m ágnesszalagot pedig
dollár/g ig ab ájtban m érik.
A reg iszterek et, a g y o rsító tárat és a központi m em ó riát m ár m egism ertük. A
2.3.1. Memóriahierarchía k övetk ező fejezetek b en a m ágneslem ezekkel, azután az optikai lem ezekkel ism er­
k ed ü n k . N em foglalkozunk a szalagokkal, m ert a biztonsági m en tésen kívül ritkán
N agy m ennyiségű a d a t tá ro lá sá ra hagyom ányosan m e m ó ria h ie ra rc h ia szolgál, h asználják, és am úgy sincs róluk túl sok m ondanivaló.
ahogyan ez a 2.18. á b rá n láth a tó . L egfelül a C P U teljes sebességével e lé rh e tő
regiszterek h ely ez k ed n ek el. A követk ező szinten a g y o rsító tár van, ez jelen leg
32 KB és n éh án y m eg ab á jt közö tti nagyságrendű. A k ö zp o n ti m em ó ria a k ö v etk e­ 2.3.2. Mágneslemezek
ző, 16 M B kezdő m é re ttő l n éh án y tíz gigabájtig te rje d a legjobb g ép ek b en . E zu tán
a m ágneslem ezek, a h u zam o s tá ro lá s jelen leg i „igáslovai” jö n n ek , végül ped ig a Egy m ág n eslem ez (egység) egy vagy tö b b m ág n esezh ető b ev o n attal e llá to tt alu ­
m ágnesszalag és az o p tik ai lem ez, az archiválás eszközei. m ín ium k o ro ngból áll. E red etileg a ko ro n g o k átm érő je m integy 50 cm volt, de
A hogy lefelé h a la d u n k a h ierarch ia szintjein, h á ro m kulcsfontosságú p a ra m é te r m an ap ság m ár csak 3 és 12 cm k özöttiek, a noteszgépekhez h asználatos lem ezek
érté k e növekszik. E lő szö r is az elérési idő. A C P U -reg iszterek n éh án y nanosze- á tm érő je p edig m ár 3 cm a latt van, és egyre kisebb lesz. Egy indukciós tek ercset
k u ndum a latt elé rh ető k . A g y o rsító tár n éh án y szo r la.ssabb a C P U -reg iszterek n él. ta rta lm a zó fej lebeg a lem ez felszíne fe lett egy vékony légpárnán (kivéve a h ajlé­
k o nylem ezeknél, ahol a fej h o zzáér a felülethez). H a pozitív vagy negatív áram
folyik az indukciós tek ercsb en , a fej alatt a lem ez m agnetizálódik, és az áram p o ­
laritá sá tó l függően a m ágneses részecskék b alra vagy jo b b ra állnak be. A m ik o r a
fej egy m ág n esezett te rü le t felett h alad át, akkor pozitív vagy negatív áram indu-

Szpktorrés

szélessége
1-2 mikron

2.19. ábra. Egy sáv részlete. Két szektor látható a képen


98 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.3. H Á T T ÉR M EM Ó R IA 99

kálódik b en n e, így a k o rá b b a n tá ro lt b ite k e t vissza le h e t olvasni. A hogy a k o ro n g


forog a fej alatt, b itso ro za to k at le h e t felírn i és k ésőbb visszaolvasni. A lem ez egy
sávjának felép ítését a 2.19. á b ra m u tatja.
E gy teljes kö rü lfo rd u lás a latt felírt b itso ro zat a sáv. M in d en sáv rö g zített m é re ­
tű, tipikusan 512 a d a tb á jto t ta rta lm az ó szektorokra van osztva, m elyeket egy fejléc
előz m eg, lehető v é téve a fej szin k ro n izálását írás és olvasás elő tt. A z a d a to k u tá n
hibajavító kód (E C C , E rro r-C o rre c tin g C o d e) találh ató , ez vagy a H am m in g -k ó d ,
vagy egyre gyakrabban a tö b b szö rö s h ib á k at is jav ítan i k ép es R eed-Solom on-kód.
A z egym ást követő szek to ro k k ö z ö tt keskeny szektorrés van. E gyes gyártók a le­
m ezek fo rm ázatlan k ap acitását ad ják m eg (m in th a a sávok csak a d a to k a t ta rta l­
m azn án ak ), de b ecsü leteseb b m érő szám a fo rm á zo tt kap acitás, am ely nem szá­
m ítja ad a tn a k a fejléceket, az E C C -k et és a szek to rrések et. A fo rm á zo tt k ap acitás
általáb an 15 százalékkal kisebb, m in t a fo rm ázatlan .
M inden lem ezn ek v an n ak m o z g a th ató k arjai, m elyek a forg ásten g ely tő l su g ár­
irányban ki-be tu d n a k m ozogni. M in d en su g árirány ú pozíción egy-egy sáv írh a tó 2.20. ábra. Lemezegység négy koronggal
fel. A sávok te h á t forg ásten g ely k ö z é p p o n tú k o n cen trik u s k örök. A sáv szélessége
attó l függ, hogy m ilyen széles a fej, illetve hogy m ilyen p o n to sa n leh e t su g árirán y ­ vök k ö zö tti) keresési idők 5 és 10 m s k ö zö tt vannak, m íg egym ás m elletti sávok
b a n pozícionálni. A jelen leg i tech n o ló g ia m ellett a lem ezek c e n tim é te re n k é n t ese tén ez az idő m ár 1 m s alatti. A fej kívánt sugárirányú pozícióba való beállása
5 0 0 0 -1 0 0 0 0 sávot tarta lm az n a k , ez 1-2 m ik ro n szélességű sávoknak felel m eg után van egy kis szünet, az ún. forgási késleltetés, am íg a k e re se tt szek to r a fej alá
(1 m ikron = 1/1000 m m ). M eg kell jegyeznünk, hogy egy sáv n em egy fizikailag lé­ fo rdul. A legtöbb lem ez 5400, 7200 vagy 10800 fo rd u la to t tesz m eg p ercen k én t,
te z ő b a rázd a a lem ezen, h a n em csak egy m á g n esezett gyűrű, am elyet kis m ágnese- ezé rt az átlag os k ésleltetés (egy félfo rd u lat ideje) 3 és 6 ms kö zö tt van. A z a d a tá t­
zetlen hézagok v álasztan ak el a k ü lső és belső szom szédos sávoktól. viteli id ő a k e rü leti b itsű rű ség tő l és a fo rd u latszám tó l függ. A tipikus 20 és 40 M B /
A b itek lineáris sű rű ség e egy sáv k e rü le te m e n té n k ü lö n b ö zik a su gárirányú sű ­ s a d atá tv iteli sebesség m ellett egy 512 bájto s szek to r 13 és 26 |is közötti időt igé­
rűségtől. E zt nagyrészt a felü let tisztasága és a levegő m inősége h a tá ro z z a m eg. A nyel. E b b ő l következik, hogy a keresési idő és a forgási késleltetés teszi ki az a d a t­
m ai lem ezek 50 000 bit/cm és 100 000 bit/cm közö tti k erü leti sű rű ség et érn e k el. átviteli id ő nagy részéi. A lem ezen szétszórt, v életlen szerű en kiválasztott szek to ­
Tehát egy b it k ö rü lb elü l 50-szer nagyobb sug árirán y b an , m int a k e rü le t m e n té n . ro k a t olvasni nyilvánvalóan nem h aték o n y adatfeldolgozási m ódszer.
A m ég nagyobb írássű rű ség é rd e k é b e n a gyártók olyan e ljáráso k at fejlesz ten ek É rd e m e s m egjegyezni, hogy a fejléceket, az E C C -ket, a szektorok közötti ré se ­
ki, am elyeknél a b itek e t n em a diszk k e rü le té n hosszirányban, h a n em függőlege­ k et, a keresési id ő t és a forgási k ésleltetést figyelem be véve nagy különbség m u ­
sen a vas-oxid b elseje felé rögzítik. E zt m erőleges rögzítésnek nevezik, és h a m a ro ­ tatk o zik a m eghajtó m axim ális adatátv iteli képessége és a folyam atos adatátviteli
san p iacra is kerül. k épessége között. A m axim ális adatátviteli sebesség az a sebesség, am elyet az első
A felü let tisztasága és a levegő m inősége é rd e k é b e n a leg tö b b lem ezt gyárilag ad atb it beolvasását követően m érh etü n k . A szám ítógépnek kép esn ek kell lennie
lég m en tesen lezárják, hogy p o r ne k erü lh essen bele. A z ilyen lem ezek et w inches­ az ezzel a sebességgel beérk ező ad ato k fogadására. A m eghajtó azonban ezt az ira ­
te rn e k hívják. A z első ilyen (az IB M által g y árto tt) lem ezegységekben 30 M B le­ m o t csak egy szektornyi ideig képes tartan i. B izonyos (például m ultim édia-) alk al­
zárt, fix tárolóhely és 30 M B c se ré lh ető táro ló h ely volt. F elte h ető le g ezek a 30-30- m azások szám ára a m áso d p ercek en k eresztü l folyam atosan ta rth a tó átlagos sebes­
as lem ezek az am erik ai vadnyugat 30-30-as W in ch ester p u sk á ira e m lék e zte tté k az ség a fontos, ehhez figyelem be kell venni a keresési időt és a forgási k ésleltetést is.
em b erek et, és a „w in ch ester” név m eg rag ad t. Egy kis g o nd o lk o d ás u tán , a k ö r k e rü le té t m egadó, a középiskolából jól ism ert
A legtöbb lem ezegység a 2.20. á b rá n lá th a tó m ód o n tö b b , egym ás fele tt elh ely e­ c = 2nr k é p let alkalm azásával rájö h etü n k , hogy a külső sávok hosszabbak, m int a
zett k orong ból áll. M in d en felü leth ez tarto zik egy fej és egy m o zg ató k ar. A k aro k b elsők. M ivel a lem ezek a fejek pozíciójától függetlenül állan d ó szögsebességgel
rögzítve van n ak egym áshoz, így a fejek m indig u g y an arra a su g árirán y ú pozíció ra fo ro g n ak , ez p ro b lé m á t vet fel. R égebbi m eg h ajtó k b an az e lé rh e tő legnagyobb
állnak be. Egy a d o tt su gárirányú p ozícióhoz ta rto z ó sávok összességét cilinder­ b itsű rű ség e t a legbelső sávon h asználták, m ajd egyre csö k k en tették a sávokon ki­
n ek nevezzük. A jelen leg i PC diszk ek b en 6 -1 2 k o ro n g ta lá lh a tó egym ás felett, am i felé haladva. H a egy lem ezen p éld áu l 18 szektor volt sávonként, m indegyik 20 fo k ­
12-24 rögzítésre h a sz n á lh a tó fe lü lete t jelen t. nyi ívet foglalt cl, függetlenül attól, hogy m elyik cilinderen volt.
A lem ezegység teljesítm én y e sok tén y ező tő l függ. Egy szek to r b eolvasásához M an ap ság m ás stratég iát alkalm aznak. A cilindereket (tipikusan 10 és 30 közötti)
vagy k iírásához elő szö r a fejet a m eg felelő su gárirányú p ozícióba kell állítani. E zt z ó n ák b a osztják, és a külső zónákban több szektort tesznek egy sávba. E z bonyolítja
a m ű v eletet keresésnek (seek) hívják. A z átlagos (v életlen szerű en kiválasztott sá-
100 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e
2.3. H A T T ÉR M EM Ó R IA 101

Á lta lán o s jellem zőik ugyanazok, m in t az előző k b en leírt lem ezeké, de m íg a


m erev lem ezek n él a fejek a lem ezek felszíne felett egy vékony, gyorsan áram ló le­
v eg ő réteg en lebegnek , a hajlékonylem ezek esetén a fejek ho zzáérn ek a lem ezhez.
E n n e k k ö v etk eztéb en m ind az ad ath o rd o zó , m ind a fejek arán ylag h am ar e lk o p ­
nak. H ogy a k o p ást és az ebből e re d ő bosszúságot elkerülhessük, a szem élyi szá­
m ítóg ép ek visszahúzzák a fejek et és leállítják a forgást, am ikor a m eghajtó épp en
n em olvas vagy ír. E m iatt a soron következő olvasás vagy írás p aran cs k iad ásak o r
k örü lb elü l fél m áso d p ercre van szüksége a m o to rn ak a m egfelelő sebesség e lé ré ­
séhez. A floppydiszkeket m integy 20 évig használták, de a m o d ern szám ítógépek
m á r n élk ü lü k k erü ln ek forgalom ba.

2.3.4. lOE-lemezek

A m ai szem élyi szám ítógépekben használt lem ezek az IBM P C X T lO M B -o s


S eagate lem ezébő l fejlődtek ki, am elyhez egy bővítőkártyán talá lh a tó X cbec v e­
zérlő ta rto z o tt. A S eagate lem ezegységben 4 fej, 306 cilinder és sávonként 17 szek­
tor volt. A v ezérlő k é t m eg h ajtó kezelésére volt képes. A z op eráció s ren d szer a le­
m ezre íráshoz, és a lem ezről olvasáshoz a p a ra m é te re k e t C P U -reg iszterek b e tö l­
2.21. ábra. Egy lemezegység öt zónával. Minden zónában sok sáv található
tötte, m ajd m eghívta a P C b e é p íte tt, csak olvasható m em ó riájáb an táro lt B lO S-t
(B asic Input O utput System ). A B IO S a d ta ki azokat a gépi u tasításo k at, am elyek
az inform áció követését, de növeli a kapacitást, és ez a legfontosabb. M inden szek­
fe ltö ltö tté k a lem ezvezérlő regisztereit és elin d íto tták az ad atátv itelt.
to r m érete egyform a. Egy ö t zónával ren d elk ező diszk áb rája láth a tó a 2.21. ábrán.
A tech n o ló g ia gyorsan fejlő d ö tt a külön kártyán elh ely ezett vezérlőtől a m eg ­
M in d en lem ezhez tarto z ik egy lem ezvezérlő, egy lapka, am ely vezérli a m eg ­
h ajtó b a in te g rált vezérlőig, ezek közül az elsők az IDE- (Integrated Drive Electro­
h ajtó t. Egyes v ezérlő k b en egy teljes C P U van. A vezérlő felad atai közé tarto zik a
nics, beépített eszközelektronika) m eg h ajtó k voltak az 1980-as évek k ö zepén. A
szoftverből érk ező p aran cso k fogadása, m in t a READ, WRITE és FORMÁT (az összes
B lO S -hívási k onvenciókat a visszafelé k om patibilitás érd e k é b e n n em v álto ztatták
fejléc felírása), a k a r m ozgatása, hibák felism erése és javítása, v alam int a 8 bites
m eg. E z e k szerin t a szektorok cím zése a fej, a cilinder és a szek to r so rszám ának
m em ó riab ájto k oda- és v isszaalakítása bitek soro zatáv á. Egyes v ezérlők m ég tö b b
m egadásával tö rté n t, a fejek és a cilinderek szám ozása 0-val k ezd ő d ö tt, a szek­
szek to rra k iterjed ő p u ffereléssel is foglalkoznak, a b eo lv aso tt sz ek to ro k at gyorsí­
to ro k é 1-gyel. U tó b b i választás valószínűleg az e red eti B lO S -p ro g ram o zó h ib á­
tó tá rb a helyezik a jö v ő b en i haszn álat gyorsítása é rd e k é b e n , és áthelyezik a fizikai­
ja , aki a rem ek m ű v ét 8088 assem blyben írta. 4 bit ju t a fejre, 6 bit a szek to rra és
lag hibás szek to ro k at. E z u tó b b ira a k k o r van szükség, am ik o r valam elyik sz e k to r­
10 b it a cilin derre, te h á t m axim álisan 16 fej, 63 szek to r és 1024 cilind er lehet, ez
b an egy hibás (véglegesen m ág n esezett) hely keletkezik. H a a vezérlő felfed ez egy
1032192 sz e k to r összesen. így a m axim ális diszkkapacitás 504 M B, ez valószínű­
ilyen hibás helyet, kiváltja egy olyan ta rta lé k szek to rral, am elyet k ifejezetten e rre
leg v ég telen ü l nagynak tű n t a n n a k idején, de sem m i esetre sem tű n ik an n ak n a p ­
a célra ta rta n a k fen n m in d en cilin d eren vagy zón áb an .
jain k b an . (P an aszk o d n a m a valaki azért, m e rt egy új gép n em tu d 1 te ra b á jtn á l n a ­
gyobb m eg h ajtó k at kezelni?)
N em sok idő telt el, és 504 M B -n él ugyan kisebb lem ezegységek kezd tek m eg ­
2.3.3. Hajlékonylemezek jelen n i, de rossz felosztással (p éld áu l 4 fej, 32 szektor, 2000 cilinder). A z o p e rá c i­
ós re n d sz er nem tu d ta kezelni ezek et a rég ó ta m egkövesedett B lO S-hívásokkal.
A személyi szám ítógépek m egjelenésével szükséggé vált valam ilyen m ódszer kidol­
E n n e k k ö v etk ez téb en a lem ezvezérlők elk ezd tek hazudni, úgy te tte k m in th a az é r­
gozása a program o k terjesztésére. A m egoldást a floppy vagy hajlékonylemez adta,
ték e k a B lO S -h a tá ro k k ö zö tt lettek volna, de ténylegesen á tsz ám íto tták a látszóla­
egy kism éretű, cserélhető ad ath o rd ozó , am elyet azért hívnak íg)', m ert a legelsőket
gos é rté k e k e t a valós é rték ek re. E z a m ódszer m ű k ö d ö tt, csupán akkor voltak zű ­
m ég fizikailag m eg leh etett hajlítani. A hajlékonylem ezt tu lajd o n k ép p en az IB M ta ­
rök, h a az o p eráció s ren d sz e r a keresési idők m inim alizálása é rd ek éb en gondosan
lálta fel, és arra használták, hogy a nagygépek k arb an tartásáh o z szükséges inform á­
ügyelt az a d a to k elhelyezésére.
ciót tárolják a kiszolgáló szem élyzet szám ára, de a szem élyi szám ítógépek gyártói h a ­
V égül az ID E -m eg h ajtó k at felváltották az EIDE- (Extended ID E , kiterjesztett
m ar átvették m int az elad ásra szánt p ro gram ok terjesztésének kényelm es eszközéi.
IDE) m eg h ajtók, am elyek tám o g atn ak egy m ásik cím zési m ó d o t is; ez az LBA
102 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e
2 .3 .H A T T ÉR M E M Ö R IA 103

(Logical Block A ddressing, logikai blokk cím zés), am ely a sz e k to ro k at egysze­


2.3.5. SCSI-lemezek
rű e n 0-tól a m axim ális 2^“ - 1-ig szám ozza. E z a m ó d m egkívánja, hogy a vezérlő
az L B A -cím eket fej, szek to r és cilin d er so rszám o k k á k o n v ertálja, de így k ép es az A z SC S I-lem czek nem kü lö n b ö zn ek az ID E -lem ezek tő l ab b an a tek in tetb en ,
504 M B -os h a tá r fölé k erülni. Sajnos, egyúttal egy újabb szűk k eresztm etszetet hogy ezek is cilin d erek re, sávokra és szek to ro k ra v an n ak osztva, de m ás az in te r­
h o zo tt létre, a 2^** x 2“' b á jto t (128 G B ). A szabványokról d ö n tő bizo ttság o k n ak , fészűk, és sokkal nagyobb az adatátviteli sebességük. A z SCSI tö rté n e te H ow ard
m int a p o litikuso k n ak is, szokása a p ro b lé m ák to v áb b g ö rg etése, hogy a követk ező S hugart, a hajlékonylem ez feltaláló ján ak nevéhez kapcsolódik, akinek a cége
bizo ttság n ak kelljen m eg o ld an ia őket. b ev e z e tte a SASI- (S hugart A ssociates System In terface) lem ezek et 1979-ben.
A z E ID E -m e g h a jtó k és -vezérlők m ás előnyökkel is re n d elk eztek . P éld áu l az E zt kisebb m ó dosítások és sok vita u tá n az A N SI 1986-ban szabványosította, és
E ID E -v ezérlő k n e k k ét csato rn áju k le h e te tt, m indegyik egy elsődleges és egy m á ­ nevét SCSI-re (Sm all Com puter System Interface, kis szám ítógéprendszerek
sodlagos diszkegyscggel. E z az e lren d ezés legfeljebb 4 m e g h a jtó t te tt leh ető v é ve­ interfésze) m ó d o síto tta. (A SCSI kiejtése „szkazi”.) A zó ta az egyre gyorsabb
zérlőegységenként. T á m o g atta a C D -R O M - és a D V D -m e g h a jtó k a t is, az átviteli v á lto zato k at az alábbi neveken szabványosították: Fást SCSI (10 M H z), U ltra
sebességük pedig 4 M B /s-ről 16,67 M B /s-re n ő tt. SCSI (20 M H z), U ltra 2 SCSI (40 M H z), U ltra3 SCSI (80 M H z), és U ltra4 SCSI
A hogyan a m ágn eslem ez-tech n o ló gia folyam atosan javult, az E ID E -szab v án y is (160 M H z). M indegyikből van széles (16 bites) válto zat is. A fo n to sab b k o m b in á­
folytatta a fejlődést, de valam ilyen okból kifolyólag az E ID E u tó d ja az ATA-3 (AT c ió k at a 2.22. áb ra m u ta tja be.
Attachment, AT kiegészítő) lett, az elnevezés az IB M PC/AT-re u tal (az AT je le n té ­
se A dvanced Technology, fejlett technológia, am i a 8 M H z-es 16 bites C P U -t je le n ­
Név Adatbitek Sín MHz MB/s
te tte ). A szabvány követk ező v álto zatáb an , az A T A P l-4-ben (ATA Packet Interface,
SCSl-1 8 5 5
ATA-csomaginterfész) a sebességet 33 M B /s-re növelték. A z A T A P I-5 esetéb en
Fást SCSI 8 10 10
pedig 66 M B /s-re.
Wíde Fást SCSI 16 10 20
E rre az időre a 128 G B -o s h a tá r, am elyet a 28 bites L B A -cím ek alk alm azása je ­
Ultra SCSI 8 20 20
len tett, elk ez d ett egyre fen y eg ető b b a lak o t ölten i, így az A T A P I-6 m eg v álto ztatta
Wlde Ultra SCSI 16 20 40
az L B A -cím ek m é re té t 48 b itre. A z űj szabvány a k k o r k erü l m ajd bajba, ha a disz­
Ultra2SCSl 8 40 40
kek m é re te eléri a 2'*“ x 2*' b á jto t (128 PB ). H a m in d en évben 50% -kal n ő a k a p a ­
Wide Ültra2 SCSI 16 40 80
citás, a 48 bites h a tá r k ita rt 2035-ig. H a kíváncsi arra, hogyan o ld o ttá k m eg ezt a
Ultra3 SCSI 8 80 80
p ro b lém át, lapozza fel könyvünk 11. k iad ását. L e m erem fogadni, hogy fel fogják
Wide Ültra3 SCSI 16 80 160
em elni az L B A m é re té t 64 b itre. Az A T A P I-6 szabvány ugyancsak m eg em elte az
Ultra4 SCSI 8 160 160
átviteli sebesség et 100 M B /s-ra, és egyúttal első ízben fo g lalk o zo tt a diszkek z ajá­
WideUltra4 SCSI 16 160 320
nak csökkentésével.
A z A T A P I-7 szabvány rad ik álisan szakít a m últtal. A h ely ett, hogy a lem ezvezér­ 2.22. ábra. Néhány lehetséges SCSI-paraméter
lő csatlak ozóján ak a m é re té t n ö v eln ék m eg (az átviteli sebesség n övelése é rd e k é ­
ben ), ez a szabvány soros ATA átviteli m ó d o t használ a rra , hogy egyszerre 1 b ite t A S C S I-lem ezek a nagyobb ad atátv iteli sebességük m ia tt a Sun, HP, SG I és
továbbítson egy 7 érin tk ező s csatlak o zó n k eresztü l k e z d etb en 150 M B /s sebesség­ m ás cégek legtöbb U N IX -m u n k aállo m ásán ak szabványfelszereléséhez tarto zn ak .
gel, am i v árh ató a n 1,5 B G /s fölé em elk ed ik . A jelenleg i 80 vezetékes szalagkábel H a so n ló a n az alapfelszereléshez ta rto z n a k a M aeintosh-gépekben, és gyakoriak
lecserélése egy n é h án y m illim éter vastag k e re k kábellel, jav ítja m ajd a lég áram lást az igényesebb Intel P C -kben, külö n ö sen a hálózati szerverekben.
a szám ítógépházb an . Továbbá, a soros ATA 0,5 V feszültséget használ (ö sszeh a­ A SC SI tö b b egy m erevlem cz-interfésznél. E z egy sín, am elyre egy SC SI-vezér-
sonlítva az A T A P I-6 m e g h ajtó in ak 5 V-os jeleivel), am ely csö k k en ti az e n e rg ia ­ lő és legfeljebb h é t eszköz csatlak o ztath ató . E zek k ö zö tt leh et egy vagy több SCSI-
fogyasztást. V alószínűleg n éh án y éven belül m in d en szám ító g ép soros ATA-t fog m erevlem ez, C D -R O M , C D -író , szkenner, szalagegység és m ás S C S I-periféria.
használni. A diszkek által elfogyasztott en erg ia egyre fo n to sab b p ro b lém a, m ind a M in d en S C SI-cgységnek van egy 0 és 7 (széles SC SI e setén 15) közötti egyértelm ű
legjobb m inőségű g ép ek b en , ahol az ad atfeld o lg o zó k ö zp o n to k b an óriási diszk far­ azono sító ja. M inden egységnek két csatlakozója van; egy b em en e ti és egy k im e­
m ok vannak, m ind p ed ig az olcsó g ép ek n él, ahol a n o te sz g ép e k te le p e in e k e n e r­ neti. A z egyik egység k im en etét kábelek kötik össze a k övetkező b em enetével so r­
giája k o rláto zo tt. ban , m int egy olcsó karácsonyfaégő-füzérnél. A sorban utolsó eszközt le kell zárni,
nehogy a SCSI sín végéről in d u ló visszaverődések zavart o kozzanak az a d a tfo rg a ­
lom ban. T ipikus e setb en a vezérlő egy bővítőkártyán van, am ely az eszközsor első
elem e, h a b á r ezt az e lren d ezést nem követeli m eg szigorúan a szabvány.
104 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.3. H Á T T ÉR M EM Ó R IA 105

A leggyakoribb 8 b ites S C SI-kábel 50 eres, ebből 25 fö ld p o ten ciálo n van, ezek M ás szóval, a R A ID -n ek az o perációs re n d szer felé úgy kell viselkednie, m int
m indegyikéhez páro sítv a van egy a tö bbi 25 érből, így le h et elérn i a nagy seb essé­ egy S L E D -n ek , am elynek azo n b an nagyobb a teljesítm énye és a m egbízhatósága.
gű ad atá tv itelh ez n é lk ü lö zh e te tle n z a jtű rő k ép esség et. A 25 érb ő l 8 ad a t, 1 p aritás M ivel a S C S I-lem ezeknek jó a teljesítm énye, alacsony az á ra és egyetlen vezérlő
és 9 vczérlővonal, a tö bbi p ed ig táp feszü ltség vagy jövőbeli fejlesztések re fe n n ­ a k á r 7 (széles SC SI esetén 15) m eg h ajtó t is képes kezelni, elég term észetes, hogy
ta rto tt. A 16 b ites (és 32 b ites) egységekhez szükség van egy m áso d ik k áb e lre is. a legtöbb R A ID egy R A ID SC Sl-vezérlőbol és sok SC S I-lem ezből áll, am i az o p e ­
A k áb elek hosszúsága tö b b m é te r is leh et, így külső m eg h ajtó k , szk en n erek stb. is rációs ren d szer felé egyetlen nagy lem eznek látszik. Ezzel a m ódszerrel a R A ID
csatlak o ztath ató k . hasz n á la tá h o z sem m ilyen szoftverváltoztatás nem szükséges, és ez bizony fontos
A SC S I-vezérlők és -p erifériák kezd em én y ező és fo g ad ó ü zem m ó d b an m ű k ö d ­ é rték esítési szem pont sok re n d szerad m in isztráto r szám ára.
h etn ek . Á ltaláb a n a k ezd em én y ező k én t m ű k ö d ő vezérlő ad ja ki a p aran c so k a t a A zo n túl, hogy a R A ID szoftverszem pontból egyetlen lem eznek látszik, az a d a ­
fo g ad ó k én t viselkedő lem ezegységeknek és egyéb p e rifériák n ak . E zek a p a ra n ­ to k szét v an n ak osztva a m eg h ajtó k között, lehetővé téve a p árh u zam o s m űk ödést.
csok legfeljebb 16 b á jto t tartalm a z ó blokkok, am elyek m eg m o n d ják a fo g a d ó k ­ P atte rso n ék en n ek tö b b lehetséges m ó d ját is definiálták, ezek m a a R A ID 0-tól
nak, hogy m it kell ten n iü k . A p aran cso k és a válaszok fáziso n k én t k övetik egy­ R A ID 5-ig te rje d ő szintek. E zek en túl van m ég jó n éhány kisebb szint is, am elyet
m ást, különféle v ezérlő jelek et h aszn áln ak a fázisok kialak ításáh o z és ah h o z, hogy nem tárgyalunk. A „szint” elnevezés sem igazán jogos, m ert valójában nincs h ie ­
a sín h aszn álatát szabályozzák, h a tö b b eszköz is egyszerre p ró b ál hozzáférni. Ez rarch ia, csupán h at kü lö n b ö ző szervezési m ód.
az ü tem ezés fontos, m e rt a SC SI-szabvány m egen g ed i, hogy az összes eszköz egy­ A R A ID -0 a 2.23. (a) áb rán láth ató . E n n él a R A ID által szim ulált virtuális lem ez
szerre m űködjön , így nagyban n ö v elh ető a h aték o n y ság tö b b fo ly am ato t fu tta tó k d a ra b szek torból álló csíkokra van felosztva, a 0-tól a A: - 1-ig te rje d ő szektorok a
k ö rn y ezetb en (m in t p é ld áu l a U N IX vagy W indow s N T ). A z ID E - és E ID E -v ezér- 0. c so p o rth o z tarto zn ak , A^-tól a 2 k - 1-ig a 1. csop o rth o z és így tovább, k = 1 e se ­
lők e setéb en egyszerre csak egy eszköz le h e t aktív. tén m in d en csík egyetlen szektorból áll, k = 2 esetén k ét szektorból stb. A R A lD -0
az egym ás u tá n következő csíkokat k ö rb en forgó m ódszerrel írja fel a lem ezekre,
ahogy azt a 2.23. (a) áb rá n láth atju k 4 R A ID -m eg h ajtó esetén . E zt a fajta a d a te l­
2.3.6. RAID osztást csíkozásnak (striping) hívják. Például, h a a p ro g ram egy olyan ad atb lo k k o t
ak ar beolvasni, am elyik cso p o rth atá ro n kezdődik, és négycsoportnyi helyet foglal
A z elm últ évtizedben a C P U -k teljesítm én y e exp o n en ciálisan n ö v ek ed ett, m ás­ el, a R A ID -v ezérlő az olvasási p aran cso t felb o n tja négy különálló p aran csra az
fél év en k én t nagyjából m eg k étszerező d ö tt. N em így a lem ezek teljesítm énye. egyes diszkek szám ára, és p árh u zam o san m ű k ö d teti a m eg h ajtó k at. E zen a m ód o n
A z 1970-es években a m in iszám ító g ép ek lem ezein ek átlagos keresési ideje 50 és p á rh u zam o s B /K m ű v eletek et leh et végezni a pro g ram tu d ta nélkül.
100 m s közé esett. Jelen leg a k eresési idő 10 ms. A leg töb b ip arág b an (p éld áu l a A R A ID -0 nag y m éretű blokkokkal m ű ködik a legjobban, m inél nagyobbak, a n ­
g épkocsigyártásban vagy a re p ü lő g é p ip a rb a n ) k ét év tized a la tt 5-10-szeres teljesít­ nál jo b b . H a egy k érés nagyobb, m int a lem ezek szám a szorozva a csík m éretével,
m énynövekedés je le n tő s ered m én y volna, de a szám ító g ép ip arb an ez szégyen. A egy m eg h ajtó több k érést is fog kapni, am ik o r az elsőt b efejezte, kezdi a m áso ­
C P U és a lem ezek teljesítm én y e közö tti h ézag te h á t sokkal nagyobb lett. dikat. A v ezérlő fe lad ata a k érések feld arab o lása, a m egfelelő részk érések e lju t­
A hogy láttu k , a C P U teljesítm én y én ek n ö v elésére a p árh u zam o sság o t egyre ta tá sa a m eg felelő lem ezekhez a m egfelelő so rren d b en , végül a részeredm ények
jo b b an kihasználják. T ö b b e k b e n felv ető d ö tt m á r az évek so rán , hogy a p á rh u ­ helyes ö sszeállítása a m em ó riáb an . A teljesítm ény kiváló, a m egvalósítás pedig
zam os B /K szintén jó ö tle t le h e tn e . 1988-as cikkükben, P atterso n és társai h at m ag átó l érte tő d ik .
olyan lem ez-összekapcsolási m ó d o t javasoltak, am elyek vagy a teljesítm ény, vagy A R A ID -0 olyan o p eráció s ren d szerek k el teljesít a leggyengébben, am elyeknek
a m egbízhatóság, vagy m in d k e ttő n ö v elésére h aszn álh ató k (P a tte rso n és társai, az a szokása, hogy sz e k to ro n k én t kezelik az ad ato k a t. A z ered m én y ek helyesek
1988). E zek et az ö tle te k e t h a m a ro sa n ipari k ö rü lm én y ek k ö zö tt is alk alm az­ lesznek, de nincs p árhuzam osság, és így nincs teljesítm énynövekedés sem . M ásik
ták, és ez elvezetett egy új típ u sú B /K eszköz m eg szü letéséh ez, am elynek a neve: h átrán y , hogy a m egbízhatóság m ég rosszabb is lehet, m int S L E D esetén . H a
RAID. P atterso n é k R A ID -d efin íció ja ered e tileg olcsó lem ezek redundáns töm b­ egy R A ID négy lem ezből áll, és egy m eg h ajtó átlagosan 20 000 ó rá n k é n t hibáso-
je (Redundant Array o f Inexpensive D isks) volt, de az ip a r az I-t In d e p e n d e n tre dik m eg, kb. 5000 ó rá n k é n t egy m eghibásodik a négyből, és az összes a d a t elvész.
(független) v álto zta tta m eg az Inexpensive-ről (ta lán azért, hogy d rág a lem ezek et E g y etlen S L E D 20 000 órás átlagos m eghibásodási idővel négyszer m egbízhatóbb
is használhassan ak ?). M ivel egy negatív sz erep lő re is szükség volt (m in t a R IS C és len n e. M ivel nincs igazi red u n d an cia, ez nem is igazi R A ID .
C ISC esetéb en , P a tterso n szerin t), a rosszfiú neve SLED (Single Large Expensive A 2.23. (b ) áb rán lá th a tó a következő lehetőség, a R A ID -1 , am ely m á r igazi
D isk, egyetlen nagy, drága lem ez) lett. R A ID . M in d en lem ezt m egdupláz, te h á t négy elsődleges és négy ta rta lé k lem ez
A R A ID alapötlete az, hogy a számítógép (tipikusan egy nagy szerver) m el­ van. írá s e se té n m in d en csoport k étszer kerül kiírásra. O lvasás esetén a k e ttő k ö ­
lé telep ítü n k egy dobozt tele lemezegységekkel, a lemezvezérlőt kicseréljük egy zül bárm elyik m áso lat haszn álh ató , így a te rh e lé s tö b b m eg h ajtó ra oszlik el. Tehát
RAID -vezérlőre, átmásoljuk az adatokat a R A ID -re , aztán folytatjuk a munkát. az írás nem haték o n y ab b , m in t egyetlen m eg h ajtó esetén , de az olvasás kétszer
106 2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E
2.3. H Á T T ÉR M EM Ó R IA 107

olyan gyors lehet. A m eg h ib áso d áso k elleni v édelem kiváló: ha egy m eg h ajtó e l­
(a) RAID-0
rom lik, a p á ijá t haszn álják hely ette. A helyreállítás m indössze abból áll, hogy b e ­
r j::
á llítan ak egy új m eg h ajtó t, és rám áso lják az é p e n m a ra d t diszk tarta lm á t.
0. csík 1. csík 2. csík 3. csík
E lté rő e n a 0-s és az 1-es szintektől, am elyek sz ek to rcso p o rto k k al d olgoznak, a — —> V. __
R A ID -2 szóalapú, esetleg b á jta la p ú is lehet. K épzeljük el, hogy a virtuális lem ez 4. csík 5.csík 6. csík 7. csík
m inden b á jtjá t k ét 4 b ites részre vágunk, m ajd H am m in g -k ó d o lással olyan 7 bites 8. csík 9. csík 10. csík 11. csík
szavakat képezün k , am elyekben az 1., a 2. és a 4. b itek p aritásb itek . E zen túl k é p ­ '-- — -y

zeljük m ég el, hogy a 2.23. (c) á b ra h é t m eg h ajtó ján ak karjai sugár irányban és
(b) RAID-1
forgási pozíció te k in te té b e n szinkronizálva vannak. E k k o r leh etség es a H am m ing- ^ ---- > ^ - — —
kódolással elő állíto tt 7 b ites szót a h é t m eg h a jtó ra úgy felírni, hogy m indegyikre
0. csík l.csík 2, csík 3. csík 0. csík 1. csík 2. csík 3. csík
1 b it kerüljön. ^ __^ ■
— __' — __- _'
A T h inking M ach in es C M -2 szám ító g ép ezt a sém át h aszn álta, egy 32 bites 4. csík 5. csík 6. csík 7. csík 4. csík 5. csík 6. csík 'T c s íiT
_
ad atszó h o z 6 p a ritá sb ite t adva 38 bites H am m in g -kó dszó jö tt létre, e h h e z m ég 8. csík 9. csík 10. csík 11. csík 8. csík 9. csík 10. csík 11. csík
^ _^
egy kiegészítő p a ritá sb ite t ad tak , és m in d ezt 39 m eg h ajtó n tá ro ltá k b ite n k é n t. Az
ad atátv iteli sebesség rendkívüli volt, m e rt egy szektornyi idő a la tt 32 szektornyi (c) RAID-2
a d a to t le h e te tt felírni. Egy m eg h ajtó elvesztése n em o k o z o tt g o n d o t, m e rt az 1 b it C 1 ^ —> ^ ^ .—
elvesztését je le n te tte m in d en egyes 39 bites szóból, am it a H am m in g -k ó d d al m e ­ l.bít 2. bit 3. bit 4. bit 5. bit 6, bit 7. bit
n e t közb en le h e te tt kezelni. —
H átrán y a e n n ek a sém ának, hogy az összes m eg h ajtó fo rg ásán ak szin k ro n b an _^ -- __
^
kell lennie, és csak elég sok m eg h ajtó h aszn álata e setén van é rtelm e (m ég 32 ad at-
és 6 p aritásm eg h ajtó e setén is a tö b b letrá fo rd ítá s 19%). A v ezérlő n ek is sok a d o l­
------ ^ ____
ga, m ert m inden bitm ozgatási idő a la tt egy H am m in g -k ó d o t is ki kell szám ítania. (d) RAID-3
A R A ID -3 a R A ID -2 egy egyszerűsített v álto zata, am ely et a 2.23. (d ) á b ra il­
lusztrál. Itt m in d en ad atszó h o z egyetlen p a ritá sb it van ren d elv e, am elyet egy k ü ­ 1. bit 2. bit 3. bit 4. bit Paritás
*■
— — -- ^ — ^ — —■
lön p aritásm eg h a jtó n táro lu n k . M in t a R A ID -2 e se té b e n is, a m eg h ajtó k at szink­
ronizálni kell, m e rt az adatszav ak szét v an n ak terítv e tö b b m eg h ajtó ra.
E lső rán ézésre úgy tű n h e t, hogy eg yetlen p a ritásb it csak h ib afelism erésre jó , h i­ ^__ ^ ^ ^ 'v_
bajavításra nem . V éle tle n ü l felm e rü lő hib ák e se té n ez igaz is, csakhogy egy m eg ­
h ajtó m eghibáso d ása e se té n ez egy teljes 1 bites hibajavítást tesz leh ető v é, hiszen (e) RAID-4
p o n to san tudjuk, m elyik diszk ro m lo tt el, ism erjük a hibás b it p ozícióját, te h á t 1 f— — ^
íC ^
b ith ib á t m indig ki tu d u n k javítani. H a valam elyik m eg h ajtó m eghibásodik, a v e­ 0. csík l.csík 2. csík 3. csík PO-3 P = Paritás
zérlő úgy tesz, m in th a a hibás diszkről é rk ező m in d en b it 0 len n e. H a egy szóban 4. csík 5. csík 6. csík 7. csík P4-7
p aritásh ib a van, a rossz m eg h ajtó ró l szárm azó b itn ek 1-esn ek k e lle tt v olna lennie, -— _^ — —^
és e n n ek m egfelelő en ja v ításra kerül. Jó lle h e t m ind a R A lD -2 , m ind a R A ID -3 8. csík 9. csík 10. csík n.csík P8-11
'".i_ _^ — __^ — _^
nagyon m agas a d atátv iteli seb esség et nyújt, a m á so d p e rc e n k é n t feld o lg o zh ató
B /K k érések szám a n em nagyobb, m in t eg yetlen m eg h ajtó esetén . (f) RAID-5
-N,
A R A ID -4 és R A ID -5 m eg in t csak csíkozással dolgozik, n em p aritá sb ite k k e l el­
lá to tt egyedi szavakkal, e zé rt ezek n em igénylik a m eg h ajtó k szinkronizálását. A 0. csík l.csík 2. csík 3. csík PO-3
— __' ■— —^ '— —'
R A ID -4 [lásd 2.23. (e) ábra] h aso n lít a R A ID -0 -ra, azo n b an a csíkonkénti p a ritá st 4. csík 5. csík 6, csík P4-7 7. csík
felírja egy k ü lön m eg h ajtó ra. P éld áu l, h a egy cso p o rt k b ájtb ó l áll, az ö sszetarto zó •Sw. ^
8. csík 9. csík P8-11 10. csík n.csík
csíkokat K IZ Á R Ó VAGY m ű v elettel összekapcsolva egy k b ájto s paritáscsík jö n __ __ __^ __
létre. H a egy m eg h ajtó tönkrem egy, az elv esztett b á jto k a t visszakaphatjuk a p a ri­ 12. csík Pl 2-15 13. csík 14. csík 15. csík
-- —>
tásm eg h ajtó segítségével. P16-19 16. csík 17, csík 18. csík 19. csík
E z a m egoldás v éd e lm e t nyújt egy m eg h ajtó elvesztése ellen, de n em h atékony, — — __
h a gyakran kell kis m ennyiségű a d a to t ú jraírn u n k . H a egyetlen szek to r változik
2.23. ábra. RAlD-szintek 0-tól 5-ig. A tartalék és paritásmeghajtók szürke tónusúak
108 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.3. H Á T T ÉR M EM Ó R IA 109

m eg, m in d en m eg h ajtó ró l kell olvasni a p aritá sb it kiszám ításáhciz, am it e z u tá n fel V isszajátszáskor egy kis en erg iájú lézerd ió d a 0,78 m ikron hullám hosszúságú
kell írni a p aritá sm e g h a jtó ra . A ltern atív m eg o ld ásk én t be le h e t olvasni a régi fel­ infravörös fénnyel világítja m eg az ü reg ek et és a szinteket, ahogy elh alad n ak a la t­
használói a d a to t és a régi p aritást, m ajd az lij p a ritá st ezekből kiszám ítani. M ég ta. A lézer a p o lik arb o n át oldalon van, e z ért az üregek a lézer felé kid u d o ro d n ak
ezzel az optim alizálással is egyetlen kicsi v álto ztatás két olvasást és k ét írást igé­ az am úgy sim a felületből. M ivel az ü reg ek m agassága negyede a lézerfény h u llám ­
nyel, így ez a m egoldás nyilvánvalóan rossz. hosszának, az ü reg ek rő l visszaverődő fény fél hullám hossznyi fáziseltolódásban
A p a ritásm eg h a jtó ra n e h e ze d ő nagy te rh e lé s m ia tt az v álh at a szűk k e re sz tm e t­ van a k ö rn y ező te rü le trő l visszaverődő fényhez képest. E n n e k eredm énye, hogy a
szetté. E zt a szűk k e resztm e tsze te t a R A ID -5 azzal szü n teti m eg, hogy a p a ritá s­ k ét rész in terfe ren ciája gyengíti egym ást, e m ia tt a lejátszó fényérzékelőjébe keve­
b itek et egyenletesen , k ö rb ejáráso s m ó d szerrel szétosztja a m eg h ajtó k kö zö tt, a h o ­ sebb fény ju t annál, m int am ik o r a fény a szintről verődik vissza. így különbözteti
gyan az a 2.23. (f) áb rán láth ató . H a egy m eg h ajtó tönkrem egy, an n ak ta rta lm át m eg a lejátszó az ü reg et a szinttől. Jó lle h e t az tű n ik a legegyszerűbbnek, hogy ü re ­
ugyanúgy lehet rek o n stru áln i, m int R A ID -4 esetén. get h aszn áljunk a 0, szin tet az 1 tárolásához, ennél azonban m egbízhatóbb, ha az
üreg/szint vagy a szint/üreg á tm e n e te t használjuk az 1-hez, az átm e n e t hiányát p e ­
dig a 0-hoz, ezért ez u tó b b i m ódszert alkalm azzák.
2.3.7. CD-ROM A z ü reg ek és a szintek egyetlen folytonos spirálban kerü ln ek felírásra, am ely a
lyuk k ö zelé b en kezd ő d ik és a lem ez széle felé ta r tó 35 mm széles sávot foglal el. A
A z o p tik ai lem ezek et e re d e tile g telev ízió ad áso k rö g zítésé re fejlesz tették ki, de spirál 22 188 fo rd u la to t tesz m eg a k ö zép p o n t körül (kb, 600-at m illim éteren k én t).
szám itógépes a d a th o rd o z ó k é n t sokkal esztétik u sab b an h aszn álható k . N agy k a p a ­ H a letek e rn é n k , 5,6 km hosszú lenne. A spirál a 2,24. áb rán látható.
citásuk és alacsony á ru k m ia tt széles k ö rb en h asználják szoftverek, könyvek, m o ­
zifilm ek és m in d en féle a d a t te rjesz tésére, valam in t m ág n eslem ezek tartalm á n a k Spirális barázda
biztonsági m en tésére.
A z első generáció s optik ai lem ezek et a h o llan d elek tro n ik ai cég, a P hilips fej­
lesztette ki m ozifilm ek táro lásá ra. Á tm érő jü k 30 cm volt, és L aserV isio n név alatt
k e rü ltek piacra, de Ja p á n kivételével nem volt nagy sikerük.
1980-ban a P hilips és a Sony m eg terv ezte a C D -t (C o m p act D isk, k o m p a k t­
lem ez), am ely gyorsan felv álto tta a 33V, p e rc e n k é n ti fo rd u latszám m al lejátszott
bakelit h anglem ezek et. A C D p o n to s tech n ik ai részleteit egy hivatalos n e m z e t­
közi szabványban (IS 10149) r<)gzítették, am elynek e lte rje d t elnevezése Red Book
(V'örös K önyv), b o rító já n a k színe u tán . (A nem zetk ö zi szabványokat a N em zetközi
Szabványügyi H ivatal ad ja ki, am ely a n em zeti szabványügyi hivatalok, m in t p é l­
dául az A N SI, A m e ric an N atio n al S ta n d a rd In stitu te vagy a D IN nem zetközi
m egfelelője. M in d en szabványnak van egy IS szám a.) A C D -lem ez- és a m eg h a jtó ­ 2 KB-os felhasználói
specifikáció nem zetk ö zi szabványként való p u b lik álásán ak a célja, hogy ezáltal a adatblokk
z en ek iad ó k és az ele k tro n ik a i b e re n d e z ések e t gyártó cégek együtt tu d jan ak m ű ­
ködni. M inden C D 120 m m átm é rő jű és 1,2 mm vastag, k ö zep én egy 15 m m -es
lyukkai. A z au d io -C D volt az első sik eres töm eggyártású digitális ad ath o rd o zó . 2.24. ábra. Adattárolás a kompaktlemezen vagy CD-ROM-on
É le tta rta m u k a t legalább 100 évre becsülik. K érjük az olvasót, 2080-ban nézzen
u tán a, m ilyen állap o tb a n vannak az első példányok. A z en e eg yenletes lejátszásához szükséges, hogy az üregek és a szintek állandó
Egy C D ügy készül, hogy nagy en erg iájú infravörös léze rrel 0,8 m ik ro n á tm é rő ­ sebességgel m ozogjanak. E m ia tt a C D forgási sebességét fokozatosan csö k k en te­
jű lyukakat ég etn e k egy b ev o n attal e llá to tt, üveg m esterlem ezb e. E rrő l a lem ez­ ni kell, ahogy az olvasófej a belső terü le te k rő l kifelé tart. A belső részen 530 R P M
ről negatív ö n tő fo rm a készül, am elyen k iugrások v annak az e re d e ti lyukak helyén. (R o ta tio n P er M inute, p ercen k én ti fordulatszám ) szükséges a kívánt 120 cm /s o l­
A z ö n tő fo rm áb a o lvadt p o lik a rb o n á t g y an tát telítenek, így egy olyan C D -t k ap n ak , vasási sebességhez; a külső részen 200 R P M -re kell lassítani, hogy a fejnél ugyan­
am elyen a lyukak m in táz a ta azonos a m esterlem ezév el. E z u tá n egy nagyon vékony azt a k e rü le ti sebességet kapjuk. Egy állandó k erü leti sebességgel m ű k ö d ő m eg­
fényvisszaverő alu m ín iu m réteg , m ajd egy lakk v é d ő réte g és egy cím ke kerü l a le ­ h ajtó nagyban különbözik egy m ág neslem ez-m eghajtótól, am ely a fej pozíciójától
niezre. A p o lik a rb o n á t réte g b e n elhely ezk ed ő m ély ed ések et ü reg n ek (pit), az ü re ­ fü g g etlen ü l állan d ó szögsebességgel forog. E zenkívül az 530 R P M nagyon m essze
gek k özötti érin te tle n te rü le te k e t pedig szintnek (land) hívják. van a 3600-7200 R PM -től, am ivel a legtöbb m ágneslem ez forog.
110 2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E 2.3. H Á T T ÉR M EM Ó R IA 111

1 9 8 4 - b e n a Philips és a Sony felism erte, hogy leh etség es szám ítógépes a d a to ­ A Yellow B ook két m ó d o t definiál. A z 1-es m ó d a 2.25. á b ra szerinti e lre n d e ­
k a t is táro ln i a C D -n , így aztá n k iad ták a Yellow Bookot (Sárga Könyv), am ely a zést h asználja 16 liájtos bevezetővel, 2048 ad a tb á jtta l és 288 b ájt hibajavító kóddal
m ai C D -R O M (Compact D isk - Read Only M emory) p o n to s szabványát írja le. (cro ss-in terleaved R eed -S o lo m o n -k ó d ). A 2-es m ód az a d a t és az E C C m ezőket
A z a k k o r m ár je le n tő s au d io C D -p iaco t m eglovagolva, a C D -R O M -o k n a k az au- egyetlen 2336 bájlos ad atm ező b e foglalja azoknak az alkalm azáso k n ak a kedvé­
dio-C D -kkel m egegyező m é retű n ek kellett lenniük, m ech a n ik u san és optikailag ért, am elyek nem igénylik a hibajavítást (vagy nem tu d n ak időt fordítani rá), m int
kom patibiliseknek egym ással, és ugyanazokkal a p o lik a rb o n á t fröccsö n tő g é p e k ­ p éld áu l audio- és videoalkalm azások. Figyeljük m eg, hogy a kiváló m egbízhatóság
kel le h etett gyártani ők et. E n n e k a d ö n té sn e k a k övetkezm énye, hogy lassú, v ál­ elérése é rd e k é b e n három k ü lönböző hibajavító sém át alkalm aznak: egyet szim bó­
to z ta th a tó sebességű m o to ro k ra volt szükség, de egyúttal egy C D -R O M előállítási lu m o k ra, egyet k eretek re és egyet a C D -R O M -szek to ro k ra. E gyszeres b ith ib ák at
költsége nagyobb széria e seté n jóval 1 d o llár a latt lehet. a legalsó szinten, rövid szakaszra k iterjed ő többszörös hibákat a k eretek szintjén,
A Yellow B ook a szám ító g ép es a d ato k táro lási fo rm á tu m á t d efiniálta. A re n d ­ míg m in d en m ás h ib át a szek to ro k szintjén jav ítan ak ki. E n n ek a m egbízhatóság­
szer hibajavító k ép esség ét is növelték, am i e le n g e d h ete tle n is volt, m e rt a z e n e ­ nak az az ára, hogy 98 d a ra b 588 bites k e re t (7203 bájt) kell 2048 b ájt tárolásához,
kedvelőknek ugyan nem fáj egy-két bit elvesztése itt vagy o tt, a szám ító g ép-fel­ am i csak 28 százalékos kihaszn áltság o t jelen t.
használók viszont nagyon nyűgösek tu d n a k lenni m iatta. A C D -R O M a la p fo rm á ­ A z egyszeres sebességű C D -R O M -m eg h ajtó k 75 szektor/s sebességgel m ű k ö d ­
tu m a szerint m in d en b á jto t egy 14 bites szim bólum táro l. A hogy fen teb b láttu k , nek, ez 15360(1 bájt/s ad atátv iteli sebességet je le n t 1-es m ó d b an , 175200 bájt/s
14 bit eleg e n d ő ahhoz, hogy egy 8 b ites b á jto t H am m ing-kódolással kódoljunk, sebesség et 2-es m ódban. A kétszeres sebességű m eghajtók k étszer ilyen gyorsak,
m ég m arad is 2 bit. Ililajd o n k ép p en egy en n él m ég erő seb b kódolási ren d sze rt és így tovább a legnagyobb sebességűekig. Egy szokványos au d io -C D 74 p e rc ­
használnak. O lvasáskor a 14 b it 8 b itre tö rté n ő lek épezése h ard v eres ú to n tö r té ­ nyi zen e tá ro lá sá ra alkalm as, ha ezt ad a to k tá ro lá sá ra használjuk 1-es m ódban,
nik egy b e é p íte tt konverziós táb la segítségével. 6819 8 4 0 0 0 bájto s k ap acitást jelen t. E zt általáb an 650 M B -nak írják, m ert 1 M B
A k övetkező szinten 42 egym ás u tán követk ező szim bólum k ép ez egy 588 bites az 2^“ b ájt (1 048576 bájt), nem 1000000 bájt.
k eretet. M inden k e re t 192 a d a tb ite t tarta lm a z (24 b ájt). A m ara d ék 396 bit h ib a ­ M ég egy 32-szeres C D -R O M -m eg h ajtó (4 9 1 5 2 0 0 bájt/s) sem versenyezhet egy
jav ításra és vezérlő inform ációk tá ro lá sá ra szolgál. E ddig ez a sém a ugyanaz az au- gyors SC SI-2 m ágneslem ez-m eghajtó 10 M B/s sebességével, h ab ár sok C D -R O M -
d io -C D -k és a C D -R O M -o k esetén. m eg h ajtó a S C S l-esatolót használja (ID E C D -R O M -m eg h ajtó k is léteznek). H a
A Yellow B ook eh h ez azt ad ja m ég hozzá, hogy 98 k e re te t egy C D -R O M -szek - m ég hozzávesszük, hogy a keresési idő gyakran tö b b száz m illiszekundum . világos­
to rb a csoportosít, ahogyan ez a 2.25. á b rán láth ató . M in d en C D -R O M -szek to r egy sá kell válnia, hogy a C D -R O M -m eg h ajtó k nagy kapacitásuk ellen ére egyáltalán
16 b ájto s bevezetővel indul, en n ek első 12 b ájtja (hexadecim ális) OOP’F F F F F F F F F nin csen ek a m ág neslem ez-m egh ajtókkal egy k ateg ó riáb an .
FFFFFFFFFFO O , a lejátszó ebből ism eri fel a szekto r elejét. A k övetkező 3 b ájt a 1986-ban a Philips újra h a lla to tt m agáról a Green B ookkal (Zöld Könyv), am ely
szektor szám át tarta lm a z z a - e rre azé rt van szükség, m ert az egyetlen hosszú sp i­ a grafikus anyagok tá ro lá sá t h a tá ro z ta m eg, v alam int lehetővé te tte egy szek to ro n
rálra felírt a d a to k e se té n a k eresés sokkal n eh ezeb b , m in t a k o n cen trik u s sávok­ b elü l audio-, videó- és egyéb ad a to k egyidejű elhelyezését, am i a m ultim édiás
kal ren d elk ező m ágn eslem ezn él. K eresésk o r a m eg h ajtó szoftvere m eg h atáro zza, C D -R O M -o k h o z e le n g e d h etetlen tulajdonság.
hogy a célterü let nagyjából hol helyezkedik el, odaviszi a fejet, m ajd elkezd k u ta t­ A C D -R O M -tö rté n e t u to lsó d arab ja a fájlrendszer. A hhoz, hogy k ü lö n b ö ­
ni egy b evezető u tán . A bev ezető u to lsó b ájtja a m ód. ző szám ító g ép ek b en lehessen használni a C D -R O M -o k at, m eg kellett egyezni a
C D -R O M -fájlren d szer fo rm átu m áb an . A z egyezség m egszületése érd e k é b e n szá­
14 bites m os szám ító gépgyártó cég képviselője találk o zo tt a K alifornia és N evada h a tárán
szimbólumok lévő H ig h S ierra hegységben, a T ahoe-tónál, és jav aslato t te tte k egy fájlre n d szer­
re, am ely et H igh Sierrának n ev eztek el. E z később nem zetközi szabvánnyá fejlő­
42 szimbólum alkot 1 keretet 588 bites keretek, d ö tt (IS 9660). H áro m szintje van. A z 1-es szint m axim um 8 k a rak teres fájlneve­
mindegyik
□ □ □ □ □ □ □ [III □ □ □ □ □ □ □ □ 24 adatbájtot k et használ, ezt követheti egy kiterjesztés legfeljebb 3 k a ra k te re n (ez az M S-D O S
tartalmaz fájlnévkonvenció). A fájlnevek csak nagybetűket, aláhúzás je le k e t és szám jegye­
Fejléc 98 keret alkot 1 szektort k et ta rta lm a zh atn ak . A z alkön^’N'tárak legfeljebb 8 m élységig leh etn ek egym ásba
1-es módú ágyazva, és az alkönyvtárneveknek nem leh et kiterjesztése. A z 1-es szint m egkö­
Adatok ECC szektor
veteli, hogy m in d en állom ány folytonos legyen, de ez nem is p ro b lém a egy csak
(2352 bájt)
16 bájt 2048 bájt 288 bájt egyszer írh a tó a d a th o rd o z ó esetén . B árm ely IS 9660 szerinti 1-es szintű C D -R O M
o lv ash ató M S -D O S -, A pple- és U N IX -gépen, vagy am i azt illeti, szinte bárm elyik
2.25. ábra. kz adatok logikai elhelyezkedése egy CD-ROM-on g ép en . A C D -R O M ok kiadói ezt nagy előnynek tekintik.
112 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.3. H A T T ÉR M EM O R IA 113

A z IS 9660 2-cs s/in t m egenged legfeljebb 32 k a ra k te r hosszúságú fájlneveket, a Egyetlen újfajta C D sem állhatna a világ elé em elt fővel egy színes könyv n él­
3-as szint pedig nem folytonos állom ányokat. A R oek R idge k iterjesztések [furesa kül, a C D -R -nek az Orange Book (N arancssárga Könyv) ju to tt, am elyet 1989-
m ódon a F ém es Nyergek (B lazing S addles) cím ű M el B rooks-film ben szerep lő vá­ ben ad tak ki. E bben a d o k um entum ban van a C D -R , valam int egy új form átum , a
rosról k a p ta a nevet] m eg en g ed n ek nagyon hosszú fájlneveket (a U N I X szám ára), C D -R O M X A definíciója; ez utóbbi az ad ato k inkrem entális felírását teszi leh ető ­
U ID -k e t, G lD -k e t és szim bolikus linkeket, de az 1-es szint követelm ényeit nem vé, néhány szektort m a, néhányat holnap, néhányat a jövő héten. A z egyszerre felírt
teljesítő C r^-R O M -o k nem olv ash ató k m inden szám ítógépen. egym ás után következő szektorokat CD-ROM sávnak (CD-ROM track) nevezzük.
A C D -R egyik legelső felhasználása a K o d ak P h o to C D volt. E nnél a vásárló b e ­
hoz egy tek ercs film et és a P h o to C D -jé t az üzletbe, ahol az új fényképeit a régiek
2.3,8. írható CD-k m ellé felírják. A negatívok digitalizálásával k a p o tt új so ro zato t egy új C D -R O M -
sáv k én t h o zzák létre a P h o to C D -n , Az in k rem en tális írásra a z ért van szükség,
K ezdetben a m este r C D -R O M (vagy ép p en ség g el au d io -C D ) clk cszítcséh ez szük­ m e rt az ü res C D -R -lem czek túl drágák ahhoz, hogy m inden tekercs film hez e l­
séges beren d ezés rendkívül d rág a volt. De ahogy az a sz á m ító g ép ip arb an m egszo­ h aszn áljan ak egyet.
k ott, sem m i sem m a rad sokáig d rága. A z 1990-es évek k ö z e p é re a C D -lejátszó k -
nál nem nagyobb C l^ -író k a legtöbb szám ító g ép b o ltb an k a p h ató k voltak. Ezek Nyomtatott címke
az eszközök m ég m indig k ü lö n b ö ztek a m ág n eslem ezek tő l, m ert ha egyszer m eg ­
írták, a C D -R O M -o k a t nem le h e te tt törölni. E n n e k elle n é re h a m a r felh aszn álták
Védő lakkréteg íráskor
ő k et nagy m ágneslem ezek biztonsági m áso lataih o z, ezenkívül egyének és kisebb
Visszaverő aranyréteg a lézer által
cégek elk észíth ettek saját, kis so ro zatú C D -R O M -jaik at vagy egy m esterlem ezt a Festékréteg létrehozott
nagy szériát előállító keresk ed elm i C D -so k szo ro sító ü zem ek szám ára. E zek n ek a 1,2 mm sötét pont
a festékben
m eg h ajtó k n ak C D -R (C D -R ecordable, írh a tó CD) volt a nevük.
Fizikailag az írh ató C D -k h ez ugyanolyan üres 120 m m -es p o lik arb o n át lem eze­ Polikarbonát alap
ket használnak, am elyek h aso n lítan ak a C D -R O M -o k ra , kivéve, hogy egy 0,6 um
Mozgás
szélességű b arázd a van rajtu k az író lézernyaláb irányítására. A b a rá z d á n ak van iránya
egy 0.03 ^m -cs szinusz hullám ú k itérése p o n to san 22,05 k H z frekvenciával, am i
folyam atos visszacsatolást biztosít, így a forgási sebesség p o n to san elle n ő riz h e ­
tő, és szükség esetén k o rrig álh a tó . A C D -R -ek úgy n ézn ek ki, m int a szokványos Fotódetektor -Prizma
C D -R O M -o k , csak annyi a különbség, hogy a felső o ld alu k aranyszínű, nem ezüst.
A z aranyszín azé rt van, m e rt valódi aran y at h aszn áln ak visszaverő réteg n ek a lu ­
Infravörös
m ínium helyett. A z ezüstös C D -k k el ellen té tb e n , am elyekben valódi b em ély e­
d ések vannak, a C D -R -ek e se téb e n az ü reg ek és szintek k ü lö n b ö ző visszaverő
u lézerdióda

k épességét utáno zn i kell valahogy. Ezt úgy érik el, hogy egy fe sté k ré te g e t helyez­ 2.26. ábra. Egy CD R keresztmetszete a lézerrel (nem méretarányos). A CD-ROM-oknak hasonló
n ek el a p o lik arb o n át és a visszaverő aran y rc te g közé, ahogy az a 2.26. áb rán lá t­ a szerkezete, kivéve, hogy hiányzik a festékréteg, és üreges alumíniumréteg van
h ató, K étféle festék használatos: eianin, am ely zöld, és ftalocianin, am ely sárgás a fényvisszaverő réteg helyett
narancsszínű. A kém ik u so k vég nélkül tu d n a k v itatkozni azon, hogy melyik jobb.
E zek a festékek h asonlók a fo tó zásb an használtakhoz, am i m egm agyarázza, hogy A z in k rem en tális írás azonban új p ro b lém át is felvet. A z O ran g e B ook e lő tt m in­
m iért a K odak és a Fuji a legnagyobb C D -R -gyártó. N éh a alum ínium visszaverő d en C D -R O M -n a k egyetlen tartalom jegyzéke (VI’OC, Volume Table o f C ontents)
réteg helyettesíti az aranyat. volt, az elején. Ez a m ódszer nem felel m eg in k rem en tális (többsávos) írás esetén.
K ezdeti állapo táb an a festék réteg átlátszó, a lézerfényt átengedi, és visszaverődik A z O ra n g e B ook azt a m egoldást adta, hogy m inden sávhoz külön tartalom jegyzé­
az aranybevonatról. A z íráshoz a C D -R -lézert nagy en erg iára (8-16 m W ) kapcsolják. k et ren d elt. A tartalom jegyzékben szereplő fájlok k ö zö tt szerep elh etn ek az előző
A m ikor a sugár egy festékfoltot talál el, az felm elegszik, és egy kém iai kötés felbom ­ sáv fájljai is. M iu tán egy új C D -R k erü l a m eghajtóba, az o p eráció s ren d szer az
lik. A m olekuláris szerkezet m egváltozása scHét foltot hoz létre. V isszaolvasáskor összes C D -R -sávot végignézi, hogy a legutoljára felírt tartalo m jeg y zék et m eg ta­
(0,5 m W ) a fényérzékelő egység különbséget tu d tenni a lézerrel elronesolt festék lálja, am i egyúttal a lem ez aktuális á lla p o tá t is m egadja. H a a korábbi sávok fájl­
sötét foltjai és az épen hagyott átlátszó terü letek között. A színkülönbségeket úgy ja i közül n em m indegyiket adjuk hozzá a következő sáv tartalom jegyzékéhez, a
kezelik, m intha üregek és szintek közötti különbségek lennének, m ég ak k o r is, ha fájltö rlés illúzióját k elthetjük. T ö b b sáv összefogható egy szekcióba (session ), így
közönséges C D -R O M -o lv asó n vagy egy audio-C D -lejátszón olvassák le. többszekciós (m iiltisession) C D -R O M -o k a t kapunk. A hagyom ányos audio-C D -
114 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.3. H Á T T ÉR M EM Ó R IA 115

lejátszók nem kép esek kezelni a tö b b sz e k d ó s C D -R O M -o k á t, m ert feltételezik, A C D -R W a z ért nem szo ríto tta ki a C D -R -t teljesen, m ert az üres C D -RW -
hogy eg yetlen tartalo m jeg y zék van a lem ez elején. lem ezek d rágábbak, m int az üres C D -R -lem ezek. E zenkívül az olyan alkalm azási
M inden sávot egj'etlen folytonos m űvelettel, m egszakítás nélkül kell felírni. te rü le te k e n , m in t a m erevlem ezek biztonsági m en tese, nagy előny, hogy az egy­
K övetkezésképp en az a d ato k fo rrásáu l szolgáló m ág n eslem ezn ek elég gyorsnak szer felírt C D -R -lem ezt nem le h e t véletlenül törölni.
kell lennie, hogy a felíra n d ó bájto k id ő b en ren d elk ezésre álljanak. H a a felíran d ó
fájlok a lem ezen szerteszét v annak, a keresési idő tú l hosszúra nyúlhat, és a C D -R
puffere kiürülhet; ez okozza a re tte g e tt p u fferk iü rü lést. A p u ffer k iü rü lésén e k 2.3.10. DVD
eredm énye egy szépen fénylő (h a b ár egy kicsit d rág a) sö ralátét, avagy egy 120 m m -
es arany- vagy ezüstszínű frizbi. A C D -R -szoftverek általáb an felajánlják azt a le­ A z alap C D /C D -R O M fo rm átu m m ár 1980 ó ta létezik. A zó ta a technológia sokat
hetőséget, hogy a felíra n d ó fájlo k at egyetlen folytonos 650 M B m é re tű C D -R O M - fejlődött, e zért m ár nagyobb kapacitású optikai lem ezek készíthetők gazdaságosan,
fájlba gyűjtsük össze, de ez ren d sze rin t m egkétszerezi a felírási időt, 650 M B sza­ és nagy is a k ereslet irántuk. H ollyw ood rendkívül szeretn é az analóg videoszalago­
bad diszkhelyet igényel, és m ég m indig n em segít az olyan m erev lem ezek esetén , kat lecserélni digitális lem ezekre, m ert a lem ezeknek jo b b a m inősége, olcsóbb őket
am elyek pánikba esnek, és újrak alib rálják m agukat, ha nagyon felm elegednek. előállítani, tovább tartan ak , kevesebb helyet foglalnak a videoüzletekben, és nem
A C D -R leh ető v é teszi, hogy egyes szem élyek vagy cégek k ö n n y en lem áso lja­ kell ők et visszatekercselni. A szórak o ztató elek tro n ik ai cégek egy új, elsöprő sike­
nak C D -R O M -o k a t (vagy a u d io -C D -k c t), re n d sz erin t m egsértve ezzel a k iad ó k rű term ék e t keresnek, sok szám ítógépes cég pedig m ultim édia-tulajdonságokkal
szerzői jogait. Sok olyan m ó d sz e rt fejlesztettek ki, am ely m eg n eh ezíti az ilyen k a ­ akarja szoftvereit ellátni.
lózkodást, valam int azt, hogy a C D -R O M -o t a k iad ó én kívül m ás szoftverrel is A tech n o ló g ia és a h áro m h ih e te tle n ü l gazdag és h atalm as ip arág b an m u ta t­
el lehessen olvasni. E gyik m ó d szer az, hogy a C D -R O M -o n ta lá lh a tó összes fájl kozó k eresle t kom bin ációja v e z e te tt a DVT)-hez, am ely ered etileg a D igital Videó
hosszát tö b b gig ab ájto sra állítják be, m egakadályozva ezzel, hogy a szok-ványos Disk, m a h iv atalosan a D igital Versatile D isk (Sokoldalú D igitális Lemez) rövidí­
m áso ló p ro g ram o k k al a fájlo k at m erev lem ezre m ásolják. A z igazi hosszak a k i­ tése. A D V D alapfelép ítése ugyanaz, m int a C D -é, egy 120 m m -es, ö n tő fo rm áb a n
ad ó szoftverében v an n ak eltáro lv a vagy a C D -R O M -o n elrejtve (esetle g titk o sít­ k észített p o lik a rb o n á t lem ez, am ely ü reg ek et és szinteket tartalm az; ezek et egy lé­
va) olyan helyre, ahol n em szám ítan ak rá. Egy m ásik m ó d szer szán d ék o san hibás z erd ió d a világítja m eg, és egy fo tó d e te k to r olvassa le a jelek et. A m ib en más:
E C C -k et használ bizonyos k iválasztott szek to ro k b an , a rra szám ítva, hogy a C D -t
m ásoló p ro g ram „kijavítja” e z ek et a h ib ák at. A z alkalm azói p ro g ra m aztá n m eg ­ 1. kisebb ü re g ek (0,4 m ikron a C D 0,8 m ikronos m éretével szem ben);
vizsgálja az E C C -k et a kiv álaszto tt szek to ro k b an , és n em h ajla n d ó m ű k ö d n i, h a 2. szo ro sab b spirál (a sávok k ö zö tt 0,74 m ikron a rés, a C D -n él 1,6 m ikron);
helyesek. A sávok k ö zö tti n em szabványos m é re tű h ézag o k h aszn álata, és m ás fizi­ 3. vörös léze r (0,65 m ikron, míg a C D -n él 0,78 m ikron).
kai „ h ib a” is a leh ető ség ek közé tartozik.
E ze k a jav ításo k együtt h étszeresre, 4,7 G B -ra n ö v elték a kapacitást. Egy 1 x D V D -
m e g h ajtó n ak 1,4 M B/s az adatá tv iteli sebessége (szem ben a C D 150 KB/s sebes­
2.3.9. Újraírható CD-k ségével). S ajnos a bev ásárló k ö zp o n to k b an is haszn ált vörös lézerre tö rté n t váltás
azt is je le n ti, hogy a D V D -m eg h ajtó k n ak egy m ásodik lézerre vagy k ö rm ö n fo n t
H a b á r az e m b ere k m ás, csak írh a tó ad a th o rd o z ó k h o z is h o zzászo k h attak - m in t átala k ító o p tik á ra lesz szükségük ahhoz, hogy a C D -k e t és C D -R O M -o k a t olvasni
p éld áu l a p a p ír vagy a fén y k ép ezésh ez h aszn ált film igény van ú jraírh a tó tu d ják . L e h e t, hogy nem m indegyik fogja e zek et tartalm azn i, és hogy a C D -R - és a
C D -R O M -ra. Egy ren d e lk ez é sre álló tech n o ló g ia m a a CD-RW (CD-ReW ritable), C D -R W -lem ezeket nem leh et m ajd D V D -m eg h ajtó b an olvasni.
am ely C D -R m é re tű lem e z e k e t használ. U tó b b itó l e lté rő e n a z o n b an az a d a ttá ­ E lég-e a 4,7 G B ? Elég lehet. M P E G -2 (IS 13346-os szabvány) tö m ö rítést alkal­
roló ré te g cianin és ftalo cian in festék h ely ett ezüst, indium , an tim o n és tellú r egy m azva egy 4,7 G B -os D V D -lem ez 133 percnyi teljes képernyős, folyam atos videofil­
ö tv ö zetét tartalm azza. E n n e k az ö tv ö zetn ek k é t stabil álla p o ta van: kristályos és m é t kép es táro ln i nagy (720 x 480) felbontással, ezen kívül 8 nyelven szin k ro n h an ­
am orf, külö n b ö ző fényvisszaverő tulajdo n ság o k k al. got és további 32 nyelven feliratokat. A H ollyw ood által valaha is készített film ek 92
A C D -R W -m eg h ajtó k h á ro m e lté rő en erg iájú lézert alk alm azn ak . A leg m ag a­ százaléka 133 percnél rövidebb. E n n ek ellenére bizonyos alkalm azások, m int p él­
sabb e n erg ián az ö tv ö zet m egolvad, és a nagy visszaverő k ép esség ű kristályos ál­ dáu l játé k o k vagy enciklopédiák tö b b e t is igényelhetnek, és H ollyw ood is ak arh at
lapotból a kis visszaverő k ép esség ű a m o rf álla p o tb a kerül, ezzel egy ü re g e t re p re ­ hosszabb film et tenni egy lem ezre, ezért aztán négy fo rm átu m o t definiáltak:
zentálva. K özepes en erg ián az ötv ö zet m egolvad, és visszatér term é sz e te s k ristá ­
lyos állap o táb a, ezzel újból szin tállap o tb a kerül. Kis en erg ián az anyag á llap o tá t 1. E gyoldalas, egyrétegű (4,7 G B );
leh et érzék eln i (olvasáshoz), de n em tö rté n ik átalak u lás. 2. E gyoldalas, k étré te g ű (8,5 G B );
116 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.4 . b em en et/kim en et 117

3. K étoldalas, egyrétegű (9,4 G B); Egy m ásik dolog, am ire a szám ító g ép ip ar valószínűleg nem is gondolt volna, az
4. K étoldalas, k é tré te g ű (17 G B). a szán d ék o s in k om patib ilitás az E gyesült Á llam okba, E u ró p á b a és végül a többi
k o n tin e n sre szánt lem ezek szabványai között. E zt H ollyw ood követelte, m ert az
M iért van ennyi fo rm á tu m ? Egy szóban összefoglalva; p o litika. A P hilips és a Sony új film eket elő szö r m indig az E gyesült Á llam o k b an m u tatják be, és csak azután
egyoldalas, k étré te g ű lem ezt a k a rt a nagy kap acitású verzióhoz, m íg a Toshiba és k e rü ln e k E u ró p á b a , hogy az E gyesült Á llam o k b an a videofilm -változatot kiadják.
a T im e W arner kéto ld alas, egyrétegűt. A P hilips és a Sony n em h itte, hogy az e m ­ A zt sz e re tté k volna elérni, hogy az e u ró p ai videofilm üzletek ne vásárolhassák m eg
b e re k szeretik, ha m eg kell fo rd ítan iu k a lem ezt, a T im e W arner n em h itte, hogy a film eket az E gyesült Á llam okból idő elő tt, m e rt így csö k k en n én ek az új film ek
m eg leh et oldani k ét ré te g felvitelét egy old alra. A kom p ro m isszu m o s m egoldás m o zibevételei. H a H ollyw ood irán y ítan á a szám ító g ép ip art, 3,5 inches hajlékony­
az lett, hogy m inden k o m b in áció t b ev ettek , és a p iacra bízták a n n a k e ld ö n tését, lem ezt h asz n áln án ak az E gyesült Á llam okban és 9 cm -est E u ró p á b a n .
m elyik az életkép es.
A k étréteg es tech n o ló g ia úgy m űködik, hogy legalul egy visszaverő ré te g e t h e ­
lyeznek el, fö lö tte pedig egy részb en visszaverő réte g e t. A ttól függően, hogy a lé­ 2.3.11. Blu-Ray
zert hova fókuszálják, az egyik vagy a m ásik réteg rő l v erő d ik vissza. A z alsó réte g
egy kicsit nagyobb ü re g e k e t és szin tek et igényel a b iztonságos visszaolvasáshoz, A szám ító g ép ip arb an sem m i sem állandó, így van ez te rm ész etesen az a d a ttáro lás
ezért a k ap acitása egy kicsit kisebb, m in t a felső rétege. A k éto ld alas lem ezek et tech n o ló g iájában is. A D V D -t épphogy csak b evezették, am ik o r m eg jelen t követ­
úgy készítik, hogy k ét 0,6 m m vastagságú egyoldalas lem ezt h á tta l egym ásnak ösz- kező v ersen y társa, hogy elavulttá tegye. A D V D u tó d ja az ún. B lu-R ay; így neve­
szeragasztanak. A zért, hogy m in d en verzió egyform a vastagságú legyen, az egyol­ zik, m ivel kék léze rt használ a D V D -b en használt piro s helyett. A kék fénynek
dalas lem ezek et egy 0,6 m m vastagságú ü res a la p ra ragasztják (ta lán a jö v ő b en 133 röv id eb b a h ullám hossza, m int a pirosnak, e z ért p o n to sab b an fókuszálható, és így
p erc reklám lesz rajta, rem élve, hogy az e m b e rek olyan kíváncsiak lesznek, hogy kisebb m ély edéseket tesz lehetővé. A z egyoldalas B lu-R ay-lem ez 25 G B , a k é to l­
m egfordítják). A k éto ld alas, k é tré te g ű lem ez szerk ezete a 2.27. áb rá n láth a tó . dalas 50 G B a d a to t tárol. A z átviteli sebesség 4,5 M B/s, am i jó egy o ptikai lem ez­
egység szám ára, de m ég m indig je le n té k te le n , ha egy m ágneslem ezegységgel h a ­
1. pollkarbonátala
talap Részben so n lítju k össze (vö. az A TA PI-6 100 M B/s-os, a W ide U ltra4 SCSI 320 M B/s-os se­
0,6 mm-es j " T j “T J “T _ r L n _ n _ n _ r LTLrLTL _ n _ n _ r L r T _ visszaverő bességével). A rra szám ítanak, hogy a B lu-R ay végül le fogja v áltani a C D -R O M -o t
egyoldalas ■réteg
és a D V D -t, de ez néh án y évet biztosan igénybe fog venni.
lemez Alumínium
j— Lí X I----- L _ r-T J - -Lf— u - L n r . visszaverő
réteg
Ragasztóréteg
Alumínium
visszaverő
0,6 mm-es réteg 2.4. Bemenet/Kimenet
egyoldalas ^Részben
lemez T _ j-n ji_ n _ j-T j-T _ n _ n j-i_ r-L u u -L n j- visszaverő
2, polikarbonát alap réteg A hogy a fejezet elején em lítettü k , egy szám ítógépes ren d szern ek h áro m fő k o m ­
p o n e n se van; a C P U , a m em ó riák (központi és a h á tté r) és a B/K (B em eneti/
2.27. ábra. Kétoldalas, kétrétegű DVD-lemez Kim eneti) b eren d ezések (m ás néven p erifériák ), m int p éld áu l a nyom tatók,
szk en n erek és a m odem ek. E d d ig a C P U és a m em ó ria volt te ríté k e n , m ost itt az
A D V D -t egy tíz tag b ó l álló kon zo rciu m alk o tta m eg, m indegyik sz ó ra k o zta tó ­ ideje, hogy a B /K b ere n d e z é se k e t vizsgáljuk m eg, valam int azt, hogy hogyan k a p ­
elek tro n ik ai cikkeket gyártó cég, k ö zü lü k h é t ja p án . S zorosan eg y ü ttm ű k ö d tek a cso ló d n ak a ren d szer többi részéhez.
hollyw oodi stúd ió k k al (m elyek közül n éh án y szintén a k o n zo rciu m b an szerep lő
ja p á n elek tro n ik ai cég ek b irto k á b a n van). A szám ítógépes és telek o m m u n ik áció s
ip arág ak képviselőit n em hívták m eg a p ik n ik re, a jelen lév ő k p ed ig a m ozifilm ek 2.4.1. Sínek
kölcsönzésére és a te rm é k b e m u ta tó k ra fe k te tté k a hangsúlyt. P éld áu l b e é p íte tt
funkció a durva je le n e te k valós idejű átlé p é sé re (így a szülők egy fe ln ő tte k n e k Fizikailag a szem élyi szám ítógépek és a m un k aállo m áso k szerkezete hasonló a
szánt film et kisgyerekek szám ára is lev etíth ető v é te h e tn e k ), h a tcsato rn á s hang, 2.28. á b rá n láth ató h o z. A szokásos felép ítés egy fém doboz, az alján egy nagy,
valam int a P an-and-S ean tám o g atás. E z u tó b b i segítségével a D V D -lejátszó d i­ n y o m tato tt áram k ö ri lap, am elyet a la p la p n a k nevezünk. A z alaplap tartalm azza a
nam ikusan eld ö n th e ti, hogy a m ozifilm ek bal és jo b b széléből m ennyit vágjon le C P U lapkát, néhány csatlakozót, ahova D IM M m o d u lo k at lehet b eten n i, és m ég
(m ivel azok szélesség/m agasság arán y a 3;2) a kép ern y ő n való m eg jelen ítésh ez m in d en féle kiegészítő lapkát. H osszában ta lá lh a tó rám aratv a egy sín (PCI sín)
(am elynél ez az arán y 4:3). és csatlakozók, am elyekbe a B/K kártyák élcsatlakozóit d u g h ató k be. A régebbi
118 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.4. b e m e n e t /k i m e n e t 119

SCSI-vezérlö, egységről, a vezérlő n ek ad ki p aran cso t, am ely keresési és egyéb paran cso k at ad
a lem ezegységnek. A m ik o r a m egfelelő sáv és szek to r m egvan, ak k o r a m eghajtó
Hangkártya -
az a d a to k a t b itso ro zatk én t elkezdi továbbítani a v ezérlő felé. A vezérlő feladata,
Modem ^ n d n hogy a b itso ro z a to t nagyobb egységekké állítsa össze, és am int összeálltak, beírja
a m em ó riáb a. Egy egység tipik usan egy vagy több szóból áll. A C P U k ö zrem ű k ö ­
dése n élkül a m em ó riát olvasó vagy o d a író v ezérlő ún. közvetlen m em óriaelérést
(D irect M emorj’ A ccess, DMA) hajt végre; ez D M A rövidítésként jo b b a n ism ert.
A z ad atá tv itel befejező d ése u tá n a vezérlő egy m egszakítást vált ki, ezzel kénysze­
ríti a C P U -t, hogy az é p p e n fu tó p ro g ra m o t azo n n al felfüggessze, és egy speciális
Számítógépház
eljárást, a megszakításkezelöt végrehajtsa, am ely a h ib aellen ő rzést és egyéb sp e­
Élcsatlakozó
ciális te e n d ő k e t elvégezve értesíti az o p eráció s ren d szert, hogy a B /K m űvelet b e ­
2.28. ábra. Személyi számítógép fizikai felépítése fejező d ö tt. A m egszakításkezelő befejeződése u tá n a C P U folytatja a m egszakítás
b e k ö v etk e zések o r felfüggesztett pro g ram fu ttatását.
P C -kben van egy m áso d ik sín is (ISA sín) a hagyom ányos B/K kárty ák szám ára, de A sínt n em csak a B /K v ezérlők használják, a C P U is azon keresztül éri el az
az ú jab b ak ezt m á r nélkülözik, cs h a m a ro san el is fog tűnni. u tasítá so k a t és az ad ato k a t. Vajon mi tö rtén ik akkor, ha a C P U és egy B /K vezér­
Egy eg>’szerű, olcsóbb szem élyi szám ítógép logikai felépítése lá th a tó a 2.29. á b ­ lő egyszerre akarja használni a sínt? E kkor egy sínütem ező lapka d önti el, hogy
rán. E b b en van egy sín, am ely a C P U -t, a m e m ó riát és a B /K eszközöket kap cso l­ ki lesz az első. Á ltaláb an a B/K eszk()zök k ap n ak elsőbbséget, m e rt a lem ezeket
ja össze; a legtöbb ren d szerb en k e ttő vagy tö b b sín van. M inden B/K eszköz k ét és egyéb m ozgó alk atrészek et nem leh et m egállítani, és v árak o ztatás e setén a d a t­
részből áll: az eg}ik rész tartalm azza az elek tro n ik a nagy részét; ez a vezérlő vagy vesztés lép n e fel. A m ikor nincs v égrehajtás alatt álló B/K m űvelet, a C P U kap h atja
kontroller, a m ásik p ed ig az eszköz m aga, m in t p éld áu l egy lem ezegység. A vezér­ m eg m ag án ak az összes sínciklust a m em ó ria elérésére. A m ik o r azonban egy B/K
lő általáb an egy k ártyán van, am ely be van dugva valam elyik szabad csatlakozóba, eszköz is m űködik, az eszköz kérni fogja, és m eg is kapja a sínhasználat jogát, ha
kivéve a nem opcionális vezérlőket (m int p éld áu l a b illentyűzet), am elyeket n é h a szüksége van rá. E z a jelenség a cikluslopás, és lelassítja a szám ítógép m űködését.
az alap lap o n helyeznek el. B ár a m o n ito r n em tarto zik az opcionális eszközök k ö ­ A fen ti m egoldás rem ekül működcHt az első szem élyi szám ítógépekben, m ert
zé, a videovezérlő gyakran m égis külö n k ártyán van, hogy a felhasználók szabadon m in d en k o m ponens nagyjából egyensűlyban volt. A hogy azonban a C PU -k, m em ó ­
választhassanak a külö n b ö ző kártyák közül, legyen-e b e n n e grafikus g>'orsító, vagy riák és B/K eszközök gyorsabbak lettek, p ro b lém a adódott: a sín nem bírta a te rh e ­
sem , Icgyen-e töb b m em ó ria stb. A vezérlő a v ezérelt eszközhöz egy kábellel csatla­ lést. Egy z árt ren dszerben, m int például egy m érnöki m unkaállom áson, m egoldás
kozik, am elyet a szám ító g ép h áz h áto ld alán elhelyezett csatlak o zó b a kell bedugni, le h ete tt egy új, gyorsabb sín tervezése a következő m odell szám ára. M ivel senki sem
A vezérlő n ek az a fe la d a ta , hogy a h ozzá ta rto z ó eszközt vezérelje, és a sínhez vitt át a régi m odellből B./K eszközöket az újba, ez a m egközelítés m egfelelő volt.
való h o zzáférését kezelje. H a p éld áu l egy p ro g ra m a d a to k a t a k a r olvasni a lem ez­ A zonban a P C -k világában az em b e re k gyakran úgy jav ítják fel a gép eik et, hogy
kö zb en sz e retn ék a régi n y o m tató ju k at, sz k en n erü k et és m o d em jü k et m egtartani.
Monitor
K özben egy h atalm as ipari ágazat is feln ő tt, am ely óriási m ennyiségű B /K egysé­
get állít e lő az IB M PC sínhez, és e n n ek az ág azatn ak nagyon kis é rd ek e fűződik
ahhoz, hogy eddigi b e fek tetéseit kidobja, és m in d en t elölről kezdjen. A z IB M a
saját k á rá n ta n u lta m eg ezt, am ikor az IB M PC u tó d ját, a PS/2 so ro zato t k ih o z­
ta. A PS /2-ben új, gyorsabb sín volt, de a legtöbb PC -gyártó tov áb b ra is a régi PC
sínt használta, am elyet m a ISA (Industry Standard Architecture, ipari szabvá­
nyos felépítés) sínnek hívnak. A legtöbb lem ezegységet és B /K egységet gyártó
cég is fo ly tatta az ISA -vezérlők gyártását, így az IB M abb an az érd ek es helyzet­
ben ta lá lta m agát, hogy ő az egyetlen, nem I B M -kom patibilis PC -gyártó. V égül
is rák én y szerült, hogy visszatérjen az ISA sínhez. M ellesleg m egjegyezzük, hogy a
gépi szintek tárgyalása so rán az ISA az u tasítá sre n d sz e r-a rc h ite k tú ra (In stru ctio n
S et A rc h ite ctu re), míg a sínek esetén az ipari szabványos felép ítés/arch itek tú ra
(Industr}' S tan d ard A rch itectu re) rövidítése.
Sín
M in d ezek ellen ére - h a b á r a piaci é rd e k a/, volt, hogy sem m i se változzon - a
2.29. ábra. Egy egyszerű személyi számítógép logílcaí felépítése régi sín tényleg nagyon lassú volt, e z ért valam it ten n i kellett. Ez a helyzet o d a ve­
120 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.4. B E M EN ET /K IM EN ET 121

zete tt, hogy tö b b cég dlyan g ép e k e t terv ezett, am elyek tö b b sínt h asználtak. E zek 2.4.2. Terminálok
egyike a régi ISA vagy a vele visszafelé ko m p atib ilis u tó d ja, az EISA (Extended
ISA, bővített szabványos ipari felépítés) sín volt. M a a leg n ép szerű b b közülük a A szám ító g ép es term in álo k k ét részből állnak: egy billentyűzetből és egy m o n i­
PCI (Peripheral Com ponent Interconnect, periferiális kom ponensek összekap­ torból. A nagyszám ítógépes világban ez a k ét rész gyakran egy b eép ített, és so ­
csolása) sín. E zt az Intel terv ezte, de úgy d ö n tö tt, hogy a szab ad alm ak at m indenki ros vonalo n vagy a telefo n h áló zato n keresztül van a központi gép h ez kapcsolva.
szám ára elérhető v é te s/i, hogy b áto rítsa felh aszn álásu k at az egész ip arág b an (b e ­ L égitársaságok helyfoglalási ren d szereib en , b ankokban és egyéb nagyszám ítógé­
leértve a verseny társak at is). pes ág azato k b an ezeket m ég m a is széles k ö rb en használják. A szem élyi szám ító ­
A P C I sín sokféle ko n fig u ráció b an h aszn álh ató , a 2.30. áb rá n egy tipikus k o n ­ gép ek világában a billentyűzet és a m o n ito r független eszközök. A két részhez al­
figurációt m u tatu n k be. Itt a C P U egy k ü lö n e rre a célra fe n n ta rto tt, nagy se b es­ k alm azo tt tech n o ló g ia m in d k ét esetb en ugyanaz.
ségű vonalon keresztü l k o m m u n ik ál a m em óriavezérlővel. A vezérlő közvetlen
összek ö ttetésb en van a m em óriával és a P C I sínnel, így a C P U és a m e m ó ria k ö ­
zö tti forgalom nem h alad át a P C I sínen. A nagy ad atá tv iteli sebességű p erifé riá k Billentyű zet
azonban, m in t p éld áu l S C SI-lem ezegységek közv etlen ü l k ap c so ló d h atn ak a PC I
sínhez. E z e n kívül a PCI sín tarta lm a z egy h id at az IS A sínhez, így az ISA -vczérlők A b illen ty ű zeteknek szám os fajtája létezik. A z e re d e ti IBM PC b illentyűzetének
és a hozzájuk tarto z ó eszközök is to v áb b h aszn álh a tó k - b á r ahogyan k o ráb b an m in d en billentyűje a latt egy olyan kapcsoló volt, am ely jól é rzék elh ető vissza­
em lítettü k , az ISA sín m eg szű n ő b en van. Egy ilyen g ép á ltaláb an 3-4 üres P C I- csatolást és k attan ó h an g o t is ad o tt, ha eléggé lenyom ták. M anapság az olcsóbb
csatlakozót és egy-két IS A -esatlakozót is tartalm az, hogy a felh aszn áló k a régi (á l­ b illen ty ű zetek egyszerűen csak m echanikus k o n tak tu st hoznak létre leütéskor.
ta lá b a n lassú eszközökhöz ta rto z ó ) ISA B /K k á rty á k at is és az új (általáb an gyors A jo b b ak b a n rugalm as anyag (egyfajta gum i) van a billentyűk és az alattu k levő
eszközökhöz tarto zó ) P C I-k árty ák at is h asználhassák. n y o m ta to tt áram k ö ri lap között. M in d en billentyű a latt egy rugalm as kiem elkedés
találh ató , am ely b eh o rp ad , ha elég erősen nyom juk. A kiem elkedés alján lévő ve­
Memóriasín zető anyag zárja az áram k ö rt. N ém elyik billentyűzet billentyűi alatt kis m ágnesek
találh ató k , ezek leü tésk o r egy kis tekercsben elm ozdulnak: az így indukált áram o t
d etek táln i lehel. Sok m ás, m echanikus és elek tro m ág n eses m ód szer is használatos.
A szem élyi szám ítógépeken egy billentyű le ü tések o r m egszakítás generálódik,
és a billentyűzct-m egszakításkezciő (egy p rogram , am ely az o p eráció s ren d szer
része) elindul. A m egszakításkezelő kiolvassa a billentyűzet v ezérlő regisztereiből
a le ü tö tt billentyű k ó d ját (1-től 102-ig). A m ik o r egy billentyűt felengedünk, egy
m ásodik m egszakítás keletkezik. így ha a felhasználó lenyom ja a S h i f t billentyűt,
aztán leüti és felengedi az M billentyűt, végül felengedi a SíuiT -et, ak k o r az o p e ­
rációs re n d szer láth atja, hogy a felhasználó egy nagy M b etű t ak ar, és nem pedig
egy kis m -et. A több billentyű leütéséből álló, a S h i f t , C t r l és A l t billentyűket is
ta rta lm az ó so ro zato k kezelése teljesen szoftveres ú ton tö rté n ik (beleértve a rossz
hírű C t r l - A i í -D ll so ro zato t is, am ely az IB M P C -kom patibiiis gépek ú jra in d ítá ­
sához használatos).

Katódsugárcsöves m onitorok
2.30. ábra. Egy tipikus modem PC egy PCI és egy ISA sínnel. A modem és a hangkártya
ISA-eszköz: a SCSI-vezérlő PCI-eszköz A m o n ito r egy k ató d su g árcsö v et (C ath o d e Ray Tűbe, CRT) és a hozzá ta r to ­
zó en e rg ia e llátó b e ren d ezések et tartalm azó doboz. A katódsu g árcső b en van egy
M an ap ság sokfajta B/K eszköz van fo rg alo m b a n . A z ism erteb b ek közül n é h á ­ olyan ágyú, am ely e le k tro n su g a rat tu d lőni a cső elülső részéhez közel elhelyez­
nyat a következő k b en tárgyalunk. k ed ő foszforeszkáló ernyőre, ahogy az a 2.31. (a) áb rán láth ató . (A színes m o n i­
to ro k b a n h árom elektron ágyú van, egy-egy a vörös, a zöld és a kék színekhez.) A
vízszintes átfu tás a latt a sugár körülbelül 50 |^s a la tt keresztben á tfu t a képernyőn,
és egy m ajd nem vízszintes vonalat rajzol ki az ernyőre. E zu tán a vízszintes vissza-
122 2, s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2,4. B E M EN ET /K IM EN ET 123

futás következik, am ely so rán a sugár visszatér az ernyő bal szélére, hogy egy üjabb folyadékkristályos kijelző) technológia. N agyon ö sszetett, sok válto zata létezik, és
pásztázási kezdhessen. A z ilyen eszközöket, am elyek a k é p e k e t so ro n k én t állítják gyorsan változik, ezért a leírás is szükségszerűen rövid és nagym érték b en leegy­
össze, raszteres eszközöknek nevezzük. szerű síte tt lesz.
A folyadékkristályok nyúlós, ragadós szerves m olekulák, am elyek úgy folynak,
Vízszintes átfutás m in t a folyadékok, de térb eli szerk ezetü k is van, m int a kristályoknak. Egy osztrák
Rács b o tan ik u s (R h ein itzer) fed ezte fel 1888-ban, és először az 1960-as években hasz­
Képernyő n á ltá k fel k ijelzőkhöz (p éld áu l szám ológépekben, ó rák b an ). H a az összes m o le­
Elektronágyú
kula azo n o s irányban helyezkedik el, a kristály o ptikai tulajdonsága a beeső fény
Pont
képernyőn
irán y átó l és p o larizáltság átó l függ. E lek tro m o s m ező felhasználásával a m o lek u ­
lák elren d e z ő d ése, így az optikai tu lajd o n ság a m eg v álto ztath ató . K o n k rétan , h a a
fo lyadékkristályra fényt b ocsátunk, a k ilépő fény intenzitása elek tro m o san szab á­
Vákuum
lyozható. E zt a tu lajd o n ság o t kihasználva lapos m eg jelen ítő k et készíthetünk.
Függőleges Egy L C D k épernyő két párh u zam o s üveglem ezből áll, m elyek közötti zárt té r ­
eltérítő
lemez b en folyadékkristály van. Á tlátszó ele k tró d á k a t erő síten ek m indkét lem ezhez. A
Függőleges visszafutás Vízszintes visszafutás
hátsó lem ez m ögül érk ező fény (ak ár term észetes, ak ár m esterséges) világítja m eg
(a) (b) a k ép ern y ő t h átu lró l. A lem ezekhez e rő síte tt elek tró d ák k al hoznak létre e le k tro ­
m os te re t a folyadékkristályban. A kép ern y ő k ü lönböző te rü le te i különböző fe ­
2.31. ábra. (a) Katódsugárcső keresztmetszete, (b) Az elektronsugár útja szültséget k apnak, így je le n íth e tő m eg a kívánt kép. A kép ern y ő elejéhez és h á tu l­
jáh o z P o laroid szűrők vannak ragasztva, m ert az alkalm azott technológia m egkí­
A vízszintes á tfu tá s úgy jö n létre, hogy lin eárisan növekvő feszü ltség et k ap cso l­ v ánja a p o larizált fény h aszn álatát. A z általános felépítés a 2.32. (a) áb rán láth ató .
n ak az elektronág y ú bal és jo b b o ld alán elh ely ezk ed ő vízszintes e lté rítő lem e z e k ­ Jó lle h e t sokféle L C D kijelzőt használnak, m ost egy k o n k ré t fa jtát fogunk tá r­
re. A függőleges m ozgás egy sokkal lassabban lin eárisan növekvő feszültség h a tá ­ gyalni, az ún. TN ('I\\isted N em atic, elforgatott molekulájú) kijelzőt. E b b en a
sára következik be, am elyet az ágyú a la tt és fele tt elh ely ezett e lté rítő lem ezek re
kapcsolnak. M in d en so r végén a vízszintes, és valahol 400 és 1000 k ö zö tti átfu tás Folyadékkristály
u tán a függőleges e lté rítő lem ezek en a feszültségeket h irtelen felcserélik, ezzel a Hátsó üveglemez
su g arat visszairányítják az ernyő bal felső sark áb a. A teljes k é p ern y ő t általá b a n
Hátsó Első üveglemez
m á so d p ercen k én t 30 -6 0 -szo r újrarajzolják. A sugár m ozgását a 2.31. (b) á b rá n elektróda
k ö v ethetjük nyom on. H a b á r a C RT m ű k ö d ését úgy írtu k le, hogy a sugár e lté rí­ Első elektróda
Hátsó
tésére elek tro m o s te re k e t használ, főleg a nagyobb teljesítm én y ű m o d ellek b en az P o la r o id . Első Polaroid
e lek tro m o s helyett m ágneses te re t alkalm aznak.
A zért, hogy k é p p o n to k a t lehessen m eg jelen íten i a k ép ern y ő n , a CRT-ben egy
rács helyezkedik el. H a pozitív feszültséget k ap cso ln ak a rácsra, az e lek tro n o k
felgyorsulnak, és az ern y ő b e csapódva rövid felvillanást okoznak. H a negatív fe ­
szültséget kapcsolunk a rácsra, az ele k tro n o k v isszap attan n ak , ezé rt nem tu d n a k
k eresztü lh alad n i a rácson, és a k ép ern y ő nem fog világítani. így m eg felelő feszü lt­
séget kapcsolva a rácsra e lérh e tő , hogy a m egfelelő b itm in tá za t je le n jen m eg a Fény­
forrás
képernyőn. Ezzel a m ó d szerrel egy b in áris e lek tro m o s jel világos és sö tét p o n to k ­
ból álló k ép p é alak íth ató .

Lapos m egjelenítők Noteszgép


(b)
(a)
A katódsugárcsö v ek túlságosan terje d elm e se k és n eh ezek ah h o z, hogy n o teszg é­
p ek h ez lehessen ő k e t h asználni, ezért az ilyen k ép ern y ő k szám ára m ás te c h n o ló ­ 2.32. ábra. fa) Egy LCD képernyő felépítése, (b) A hátsó és az első lemezek barázdái merőlegesek
giai m eg o ld áso k ra van szükség. A le g elterje d te b b az LCD (Líquid Crystal Display, egymásra
. s z á m ít ó g é p r e n d s z e r e k f e l é p ít é s e
2.4. b e m e n e t / k i m e n e t 125
124

kijelző fajtában a h átsó lem ez a p ró vízszintes b a rá z d á k at, az elü lső lem ez p e ­ V id eó RAM-ok
dig ap ró függőleges b a rá z d á k a t tartalm az, ahogyan az a 2.32. (b) á b rá n láth ató .
E lek tro m o s m ező hián y áb an az L C D m o lekulái leginkább a b aráz d ák irányában M ind a katódsugárcsöves, m ind a vékonyhlm -tranzisztoros k ép ern y ő k m á so d p e r­
h elyezkednek cl. M ivel az elülső és a h átsó b a rá z d á k 90 fokos szöget z á rn ak be c en k é n t 6 0 -100 alkalom m al frissítik a k ép ern y ő jü k et egy speciális m em óriából,
egym ással, a m o lek u lák e lre n d e ző d é se (és e z é rt a kristály szerk ezete is) csav aro ­ am ely et v id eo m em ó rián ak neveznek, és am ely a k ép ernyővezérlő kártyán ta lá lh a ­
dik a két lem ez között. tó. E z a m em ó ria egy vagy több, a k ép ern y ő t re p re z e n tá ló b itté rk é p e t tartalm az.
A k épernyő h átu lján egy vízszintes p o la ro id van, am ely csak vízszintesen p o la ri­ E gy olyan k ép ern y ő esetéb en , am elyen 160 0 x 1200 képelem , ún. pixel ta lá lh a ­
zált fényt eng ed át. A k ép ern y ő első felü letén pedig egy függőleges p o laro id van, tó, a v id eo m em ó ria 1600 x 1200 é rté k e t fog tartalm azn i, m in d en pixelhez egyet.
am ely csak függőlegesen p o larizált fényt en g ed át. H a nem volna folyadék a le m e ­ V alójában ta rta lm a z h a t több ilyen b itté rk é p e t is, am i lehetővé teszi, hogy gyorsan
zek között, a hátu l b e lé p ő vízszintesen p o larizált fényt az első p o la ro id b lokkolná, á t leh essen kapcsolni egyik k ép rő l egy m ásikra.
és a k épernyő teljesen sö tét lenne. A le g m o d ern eb b kép ern y ő k e setén m in d en pixelt egy 3 bájto s R G B é rté k re p ­
A z L C D m o lek u láin ak csavart kristály szerk ezete azo n b an á th a la d á sk o r elfo r­ rezen tál, am ely a pixel piros, zöld és kék szín k o m p o n cn sén ek intenzitása. A fizika
gatja a fényt, és úgy v álto ztatja m eg, hogy függőlegesen p o larizáltán jö n ki. így az­ törvényeiből tudjuk, hogy m in d en szín elő állíth ató a piros, zöld és kék színű fény
tán elek tro m o s m ező h iányában a k ép ern y ő eg y enletesen m egvilágított. A le m e ­ lineáris szuperpozíciójával.
zek kiválasztott részeire feszültséget kapcsolva, a csavart szerk ezet m e g sz ü n te th e ­ E gy v id eo m em ó rián ak , am ely 1600 x 1200 3 bájto s pixelt tartalm az, m ajdnem
tő, elzárva ezzel a fény útját. 5.5 M B m é re tű n e k kell lennie a kép táro lásá h o z, és tekintélyes m ennyiségű C P U -
K étféle m ódszert alk alm azn ak a feszültség b eállítására. Egy (olcsó) passzív időt igényel bárm ilyen m űvelet, am elyet vele végzünk. E zért néh án y szám ítógép­
m átrixm egjelenítőnél m in d k ét e le k tró d a p árh u z a m o s v ezeté k e k et tartalm az. Egy b en k o m p ro m isszum ot k ö tn ek , és egy 8 bites szám ot használnak a kívánt szín ki­
640 X 480-as k ép ern y ő b en péld áu l a h átsó e le k tró d a 640 függőleges, az első e le k t­ választásához. E zt a szám ot indexként használják egy h ard v ertáb lázath o z, am elyet
ró d a pedig 480 vízszintes v ezeték et tarta lm a zh a t. A z egyik függőleges v ezeték re színpalettának neveznek, és 256 elem et tartalm azh at, m inden egyes elem egy-egy
feszültséget kapcsolva, m ajd im pulzust bocsátva egy vízszintesre, egy kiválasztott 24 b ites R G B érték . E zt az elgondolást indexelt színelőállításnak nevezik, a vi-
pixelpozíció rövid id ő re e lsö té títh e tő . A z im p u lzu st ism ételve a követk ező pixe­ deo m em ó ria-ig én y t k éth arm ad áv al csökkenti, azonban egyszerre csak 256 k ü lö n ­
lekre, egy sö tét vonal rajz o lh a tó a C R T an aló g iájára. Á ltalá b a n az egész k é p e r­ bö ző színt e n g ed m eg a k épernyőn. M ivel általáb an a k ép ern y ő m in d en ablaka
nyőt kirajzolják m á so d p e rc e n k é n t 60-szor, így a szem folytonos k é p et érzékel, saját leképezéssel rendelkezik, de csak egy h ard v e rp a le tta van, am ikor tö b b ablak
m egint csak ugyanúgy, m in t a C R T esetén . van a k ép ern yőn, gyakran csak az aktív ablak színei je le n n e k m eg helyesen.
A m ásik széles k ö rb e n e lte rje d t m ó d szer az aktív m átrixm egjelenítő. E z d rá ­ A grafikus v ideom cgjelenítők nagy sávszélességet igényelnek. Egy teljes k é p ­
gább, de jo b b k é p e t ad. A két m erő leg es v ezeték h áló h ely ett az egyik e le k tró d á ­ ernyős valódi színeket alkalm azó m ultim éd iak ép egy 1600 x 1200-as k é p e r­
b an egy a p ró kapcsolóelem van m in d en pixelnél. E zek et ki-be kapcsolgatva te t­ nyőn 5,5 M B ad at m áso lását je le n ti a v id eo m em ó riáb a m in d en egyes fázishoz.
szőleges feszültség m in ta h o zh ató létre a k ép ern y ő n , így tetsző leg es k é p et leh e t Egy fo ly am atosan m ozgó videóhoz, am elyhez legalább 25 fázís/s szükséges, ez
kirajzolni. A k ap cso ló elem ek et vékonyfilm -tranzisztoroknak, azo k at a lapos m eg ­ 137.5 M B /s adatátviteli sebességet je le n t. Ez a terh elés jóval nagyobb annál, m int
je le n ítő k e t pedig, am elyek ilyeneket h aszn áln ak TFT m egjelenítőknek nevezik. A am it az (E )IS A sín, és annál is több, m int am it az e red eti P C I sín kezelni tud
legtöbb h o rd o zh ató n o teszg ép és az asztali szám ító g ép ek lapos m egjelenítői m a ­ (127,2 M B /s). T erm észetesen a kisebb kép ek kisebb sávszélességet igényelnek, de
napság T F T tech no ló g iát használnak. a sávszélesség így is fo n to s szem pont.
E d d ig azzal foglalkoztunk, hogy hogyan m űk öd ik egy m o n o k ró m m egjelenítő. A z In tel, hogy nagyobb sávszélességet biztosítson a C P U -tól a videó R A M fe ­
A színes m egjelen ítő k k el k ap cso latb an e leg e n d ő annyit m o n d an u n k , hogy az ál­ lé, a P en tiu m Il-tő l kezdve, egy új sínt v ezetett be a videó R A M -hoz, az A G P
talános elvek ezek n él is ugyanazok, de a részletek sokkal b o n y o lu ltab b ak . O p tik ai (A ccelerated G raphics P o rt) sínt, am ely 32 bit a d a to t tu d to v áb b ítan i 66 M H z se­
szű rő k et h asználn ak a rra , hogy a fe h é r fényt m inden pixelnél vörös, zöld és kék bességgel, így 252 M B /s ad atátv iteli sebességet nyújt. A további verziók 2-, 4-, sőt
k o m p o n en sek re b o n tsák , így e z ek et egym ástól fü g g etlen ü l je le n íth etik meg. 8-szoros sebessége eleg en d ő sávszélességet biztosít a nagy in terak tiv itású grafiká­
M inden szín felé p íth e tő e h áro m alapszín lineáris szuperpozíciójával. hoz anélkül, hogy tú lte rh e ln é a fő P C I sínt.
126 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.4. B E M EN ET /K IM EN ET 127

2.4.3. Egér (p o te n c io m é ter) vezérelnek. A z ellenállás változását m érve m egállapítható, hogy


az egyes k e rek ek m ennyit m o zd u ltak el, vagyis az egér m ek k o ra u ta t te tt m eg az
E gyre löbben haszn álják olyanok is a szám ító g épek et, akik kevés ism e re tte l re n ­ egyes irányokban. A z elm últ években a fenti m egoldást egy olyan v álto tta fel, ahol
delkeznek a m ű k ö d ésü k rő l. A z E N IA C gép k o ráb an a szám ító g ép ek et m ég az é p í­ a k ét k erék helyett egy kiálló golyót használnak; ez a 2.33. áb rá n látható.
tői p ro g ram o zták , az 1950-es években p ed ig csak m agasan k é p z e tt szak em b erek A z eg erek m ásik fajtája az optikai. E n n e k nincs se kereke, se golyója, ehelyett egy
h asználták őket. M a sok olyan e m b e r is használ szám ító g ép et, ak in ek csak az a LED (L ight E m ittin g D iode, fénykibocsátó dióda) és egy fén y d etek to r van az aljá­
fontos, hogy m u n k áját el tu d ja végezni, és n em tud (esetle g n em is a k ar tu d n i) so ­ b an . A z optikai eg eret egy speciális, sűrű négyzetrácsos m in tázatú m űanyag lapon
kat arról, hogy a szám ító g ép ek hogyan m ű k ö d n e k vagy hogyan p ro g ram o zh ato k . használják. A hogy az egér m ozog a rács felett, a fén y d etek to r érzékeli, h a vonal fe ­
A régi időkben a leg tö b b szám ító g ép n ek p aran csso ro s interfésze volt, ahová a lett halad el, m ert a L E D -ből szárm azó visszavert fény intenzitása m egváltozik. Az
felhasználók p aran cso k at g ép eltek be. M ivel a n em szám ító g ép es szak em b erek eg érb en lévő elek tro n ik a szám olja az cg>’es irányokban átlép ett vonalak szám át.
gyakran b arátsá g ta la n n a k vagy egyenesen ellen ség esn ek találják a p aran csso ro s A h arm ad ik fajta az o p to m eeh an ik u s egér. A z újabb m echanikus eg érh ez h a ­
in terfészek et, sok szám ítógépes cég - p é ld á u l a M acin to sh és a W indow s - rám u - so n ló an egy golyó k ét, egym áshoz k é p e st 90 fokban elhelyezett tengelyt fo rg at. A
tatással és k attin tg atással m ű k ö d ő in terfé szek et fejlesztett ki. E zek h aszn álatáh o z tengelyek résekkel e llá to tt tárcsák h o z rö g zítettek , a rések en a fény át tu d haladni.
azonban a rra van szükség, hogy k ép esek legyünk a képernyő' egyes p o n tja ira r á ­ A hogy az eg ér m ozog, a tengelyek forognak, és a rések en keresztül egy L E D -ből
m u tatn i, am inek a leggyakoribb eszköze az egér. fényim pulzusok ju tn a k el a hozzá ta rto z ó fén y d etek to rb a. A fényim pulzusok szá­
A z egér egy kis m űanyag doboz, am ely a billentyűzet m ellett helyezkedik el az m a arán y o s a m e g te tt úttal.
asztalon. H a m ozgatjuk, a kép ern y ő n láth a tó kis je l szintén elm ozdul, ezáltal a fel­ Jó lle h e t az eg e re k e t so k félek ép p en be leh et állítani, a leggyakoribb az, hogy az
használók rá m u ta th a tn a k a kép ern y ő n lévő o bjektum okra. A z egér tetején egy, k e t­ e g ér egy 3 bájtból álló ü z e n e te t küld a szám ítógépnek, ha m egtesz egy bizonyos
tő vagy h árom gom b van, ezekkel leh et a m en ü k b ő l választani. Sok vita folyt m ár a r­ m inim ális távolságot (p éld áu l 0,01 in ch et), am elyet n éh a m ickey-nek neveznek. Á l­
ról, hogy hány gom bja legyen az egérnek. A legegyszerűbb felhasználóknak az egy ta lá b a n ezek a k a ra k te re k egy soros v onalon érk ezn ek b iten k én t. A z első b ájt egy
gom b a legjobb (n eh éz rosszat m egnyom ni, ha csak egy van), a kifinom ultabbak sze­ előjeles egész szám , am ely m egadja, hogy az eg ér m ennyit m ozdult x irányban az
retik a több gom bban rejló' leh ető ség ek et, am ivel é rd ek es dolgok m űvelhetők. u to lsó tized m áso d p ercb en . A m ásodik b ájt ugyanezt az info rm áció t ad ja m eg az y
E ddig három féle eg eret gyártottak: m echanikus, optik ai és o p to m eeh an ik u s irányban. A h arm ad ik bájt az egér gom bjainak aktuális á lla p o tá t adja m eg. N éha
egeret. A z elsőnek k ét g um ikerék áll ki az aljából, egym ásra m erő leg es tengellyel. k é t b á jto t használnak m in d k ét k o o rd in á ta esetéb en .
H a ezt az eg eret hosszirányban m ozgatjuk, csak az egyik k erék m ozog. H a k ereszt­ A szám ító g ép b en egy alacsony szintű szoftver fogadja a b eérk ező je le k e t, és
irányban, ak k o r pedig csak a m ásik. A k e re k e k egy-egy v álto z ta th a tó ellenállást az eg ér által k ü ld ö tt relatív m o zg ásadatokból előállítja az abszolút pozíciót. E zt
k ö v ető en az eg ér elhely ezk ed ésén ek m egfelelően egy nyilat je le n ít m eg a k é p e r­
Egérrel vezérelt mutató nyőn. H a a nyíl a m egfelelő o b jek tu m ra m u tat, a felhasználó k a ttin t egyet az egyik
g om bbal, e z u tá n a szám ítógép a nyíl elhelyezkedéséből m eg tu d ja állapítani, hogy
m elyik o b jek tu m le tt kiválasztva.

2.4.4. Nyomtatók

E gy elkészült vagy a világhálóról le tö ltö tt d o k u m e n tu m o t a felhasználók gyak­


ra n ki a k a rn a k nyom tatni, így m in d en szám ítógéphez c satlak o ztath ató nyom tató.
E b b e n az a lfejezetb en n éh án y gyakori m o n o k ró m (vagyis fe k ete-feh ér) és színes
n y o m tató t tárgyalunk.

M onokróm nyom tatók

A legolcsóbb a m átrix n y o m tató , am elyben egy 7 -2 4 elek tro m ág n esesen aktivizál­


h a tó tű t ta rtalm azó nyom tatófej halad el m inden n y o m tatan d ó sorban. A z egy­
2.33. ábra. Menüelemek kiválasztása egérrel szerű b b fa jták b an 7 tű van, és p éld áu l so ro n k én t 80 k a ra k te rt tu d 5 x 7-es pont-
128 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.4. b e m e n e t /k i m e n e t 129

m átrixokból előállítani. V alójában m in d en k in y o m tato tt so r 7 vízszintes sorból áll, A h ő v ezérlésű n y o m tató k at általáb an festékbuborékos nyom tatónak (bubble-
m indegyikben 5 x 80 = 400 p o n ttal. A p o n to k a t ki leh et ny o m tatn i, vagy sem , a t­ jet) nevezik. E zek b en egy kis ellenállás van m in d en fúvókában. A m ik o r az e lle n ­
tól függően, hogy egy a d o tt helyen m ilyen k a ra k te rre van szükség. A 2.34. (a) áb ra állásra feszültséget kapcsolnak, nagyon gyorsan felhevül, és a vele érin tk ező fes­
egy 5 X 7-es m átrixba n y o m ta to tt „ A ” b e tű t m u ta t be. té k e t azonnal felm elegíti egészen a fo rrásp o n tig , a festék elp áro lo g és egy gázb u ­
A nyom tatási m inőség k é tfé le k é p p e n jav íth ató : tö b b tű h aszn álatáv al vagy egy­ b o ré k o t képez. A g ázb u b o rék térfo g ata nagyobb, m int a tin táé, am elyből létrejö tt,
m ást á tfed ő k ö rö k alkalm azásával. A 2.34. (b) áb rán lá th a tó „A ” b e tű t 24 á tfe ­ így nyom ás keletkezik a fúvókában. A tin ta csak egyetlen helyre m ehet: a fúvókán
dő k ö rt p ro d u k á ló tűvel leh et előállítan i. Egy so ro n á lta lá b a n töb b szö r is végig k eresztü l a p ap írra. A fúvókát ezu tá n lehűtik, és a k eletk ező vákuum egy újabb
kell m enni, hogy az á tfe d ő k ö rö k lé trejö h essen ek , így a jo b b m inőség együtt já r tin ta c se p p e t szív be a tin tap atro n b ó l. A n y o m tató sebességét az h atáro zza m eg,
a nyom tatási sebesség csökkenésével. A legtöbb m átrix n y o m tató tö b b féle ü zem ­ hogy a fű té s/h ű tés ciklus m ilyen gyorsan ism ételh ető . M in d en csepp azonos m é re ­
m ó d b an is tud m ű k ö d n i, ezáltal választási leh ető ség e t nyújt a nyo m tatási m inőség tű, és álta láb an kisebb, m int am ilyet a p iezo e lek tro m o s n y o m tató k előállítanak.
és a sebesség között. A tin tasu g aras n y om tatók felb o n tása tipikusan legalább 1200 dpi (dots p e r
A m átrixnyom tató k olcsók (főleg a kellék eik et tek in tv e) és nagyon m egbízhatók, inch), a legjobbaké eléri a 4800 dpi-t. O lcsók, csendesek és jó m inőséget állítanak
h ab ár lassúak, hangosak és gyengék a grafikus képességeik. A m ai re n d szerek b en elő, de egyúttal lassúak is, és d rág a tin ta p a tro n o k a t használnak. A m ik o r a legjobb
h áro m fő felhasználási te rü le tü k van. E lő szö r is, n ép sz erű e k a nagy ( > 3 0 cm ) e lő ­ tin tasu g a ra s nyom tatóval egy nagy felbon tású fényképet speciális b ev o n atú fo tó ­
re n y o m tato tt form anyom tatványokhoz. M ásodszor, jó k a kis p a p írd a ra b o k ra való p a p írra n y o m tatn ak , az ered m én y n em k ü lö n b ö z te th e tő m eg a hagyom ányos fény­
nyom tatáshoz, p éld áu l p én ztá rb lo k k o k h o z, A TM p é n zk ia d ó a u to m a tá k és h ite l­ k ép tő l m ég 20 X 25 cm -es m é re t e setéb en sem .
kártya-tranzakció k szelvényeihez vagy re p ü lő té ri beszállókártyákhoz. H arm ad szo r, A zó ta, hogy Jo h a n n e s G u te n b e rg a X V században feltalálta a könyvnyom tatást,
többpéldányos lep o relló k ra való n y o m tatásh o z ez a legolcsóbb technológia. ta lá n a lézernyom tató m egjelenése volt a n y om tatás egyik legizgalm asabb e sem é­
nye. E z az eszköz olyan tu lajd o n ság o k at egyesít m agában, m in t a kiváló m inőségű
o kép, nagy rugalm asság, sebesség és elfo g ad h ató költség. A lézern y o m tató k m a jd ­
o o n em u gyanazt a tech n o ló g iát használják, m in t a fénym ásolók. V alójában sok cég

o o gyárt olyan eszközöket, am elyek kom binálni tu d ják a m ásolást és a nyom tatást
(n é h a m ég a faxkezelést is).
o o A lézern y om tató m űködési elve a 2.35. áb rán látható. A nyo m tató szíve egy fény­
érzék en y anyaggal bevont forgó precíziós h en g er (ném ely igényesebb rendszerben
ooooo szalag). Egy-egy lap nyom tatása elő tt körülbelül 1000 voltra feltöltik. E zt követőn
o o egy lézer fénye pásztázza végig a h en g ert hosszában, h aso n ló an a katódsugárcsöves

o o Forgó

(a)
Lézer
D - O
I
nyolcszögletű
nyolcs; tükör

1 Tisztított és elektromosan feltöltött henger


2.34. ábra. (a) Az „A" betű 5 x 7-es mátrixon, (b) Az „A" betű 24 átfedő tűvel nyomtatva

O lcsó o tth o n i n y o m tatásh o z a tintasugaras nyom tató az egyik legkedveltebb.


A m ozgath ató, tin ta p a tro n t ta rta lm a zó n y om tatófej vízszintesen végighalad a p a ­
pír elő tt, m ialatt tin tá t p e rm e te z ap ró fúvókáiból. A tin tacsep p ecsk ék té rfo g a ta
kö rü lb elü l 1 pik o liter, am i azt jelen ti, hogy 100 m illió k én y elm esen b e le fér egy
cseppnyi vízbe.
A tin tasu g aras n y o m tató k k é t v álto z a tb a n k ap h a tó k ; p iezo e lek tro m o s (az
E p so n használja) és a h ő v ezérlésű (a C an o n , a H P és a L ex m ark h asználja). A p ie ­
zo elek tro m o s tin tasu g aras n y o m tató k b an egy speciális kristály van a tin ta p a tro n
m ellett. A m ik o r feszü ltség et k ap cso ln ak a k ristályra, en y h én d efo rm áló d ik , és egy
tin ta c se p p e t présel ki a fúvókán. M in él nagyobb a feszültség, an n ál nagyobb a fes-
tékcsepp, így egy szoftver szabályozhatja a csepp m é re té t. 2.35. ábra. A lézernyomtató működése
130 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.4. b e m e n e t /k i m e n e t 131

pásztázáshoz, csak itt elek tro m o s feszültség helyett egy nyolcszögletű tü k ö rre l irá­ o szth ató 37-tel m arad ék nélkül). H a egy O-s zónába eső szürkeségi értékkel találk o ­
nyítják a fényt a h en g erre. A fényt m odukílják, hogy világos és sö té t p o n to k a t k a p ­ zunk, az an n ak m egfelelő halftone cella a p apíron üresen m arad [lásd 2.36. (a) áb ­
janak. A zok a p o n to k , ahol fény éri a h en g ert, elveszítik elek tro m o s tö ltésüket. ra]. A z 1-es zónába eső pixelek helyére 1 fekete pixel kerül. A 2-es zónába eső é rté ­
M iután egy p o n to k b ó l álló so r elkészüh, a h en g er a fok egy tö rtrészév el e lfo r­ kek 2 fek ete pixelként je len n ek m eg [lásd 2.36. (b) ábra]. A többi zóna érték ek h ez
dul, és elk ez d ő d h e t a k ö v etk ező so r előállítása. K ésőbb az első sor eléri a to n er- a 2.36. (c )-(f) ábrák tartoznak. T erm észetesen egy 600 dpi-s fénykép halftone vál­
(festék-) k azettát, am ely elek tro sz ta tik u sá n érzék en y fek ete p o rt ta rtalm az. A p o r to zatán ak tényleges felbontása 100 cella/inch, am it halftone képernyő-frekvenciá­
ho zzátap ad a m ég fe ltö ltö tt p o n to k h o z, így láth ató v á válik a sor. Tovább fo rdulva n ak neveznek és a hagyom ány szerinti m értékegysége az Ipi (lines p e r inch).
a bevont h e n g er h o zzányom ódik a p ap írh o z, átad v a a p ap írn a k a festék et. A p a ­
p ír ezu tá n felm eleg ített g ö rgők k ö zö tt h alad el, ezáltal a festék véglegesen h o zzá­
tap ad a papírho z, kialakul a kép. K ésőbb, a to v áb b fo rd u ló h e n g errő l eltávolítják Színes nyom tatók
a töltési és letörlik a m a ra d é k p o rt, ezzel a h e n g er készen áll arra, hogy újra fe l­
töltsek a következő laphoz. S zíneket k étfélek ép p en állíth atu n k elő: színösszeadással és színkivonással. A szín­
M o n d an u n k sem kell, hogy ez az egész folyam at a fizikai, kém iai, m echanikai összeadással készült képek, m int például a C R T m o n ito ro k o n láthatók, a három
és optikai tervezés külö n ö sen bonyolult együttese. E n n ek ellen ére teljesen össze­ additív alapszín, a vörös, a zöld és a kék lineáris szuperpozíciójával állíth ató k elő.
állított nyom tatóm űvek k ap h ató k több k eresk ed ő n él is. A léze rnyom tató-gyártók A színkivonással készült képek, m int például a színes fényképek és a n épszerű k é­
ezekhez az alapegységekhez saját elek tro n ik áju k at és szoftverüket adják, így állítva pes fo lyóiratok képei, bizonyos hullám hosszúságú fényt elnyelnek, míg m ásokat
elő a kész nyom tatókat. A z elek tro n ik a egy gyors C P U -ból és n éhány m egabájt m e­ visszavernek. E zek a három szubtraktív alapszín, a cián (a vöröst teljesen elnyeli),
m óriából áll, am elyben e lfér egy kin y o m tatan d ó lap b itté rk é p e és szám os b etű k ész­ a sárga (a z ö ld et teljesen elnyeli) és a bíborvörös (a k ék et teljesen elnyeli) lineáris
let, ezek ném elyike b e é p ített, m ások letö lth ető k . A legtöbb elfogad lapleíró p a ra n ­ szuperpozíciójával állnak elő. E lm életileg m inden szín elő állíth ató a cián, a sárga
csokat is (nem csak a k özponti C P U által elk észített b ittérk é p e t). E zek a p aran cso k és a b íb orvörös tin ta keverésével. G yakorlatilag n ehéz olyan teljesen tiszta tin ták at
olyan nyelvekhez tarto zn ak , m int a H P P C L -je vagy' az A d o b e P ostScriptje. k észíteni, am elyek az összes fényt elnyelik, és a keverék fek etén ek látszik. E m iatt
A 600 dpi vagy annál nagyobb felb o n tású léze rn y o m tató k elfo g a d h a tó fe k e te -fe­ m ajd n em m indegyik színes nyom tatási ren d szer négy tin tá t használ: ciánt,* sá r­
h é r fény k ép ek et k ép esek n yom tatni, de a tech n o ló g ia trü k k ö seb b , m int ahogy azt gát, bíboi-vöröset és feketét. E zek et a ren d szerek et C M Y K -nyom tatóknak (C yan,
elsőre g o n dolnán k . T ekintsünk egy 600 dpi felbontással szk en n elt fényképet, a m e ­ M ag en ta, Yellow, blacK ) nevezzük. A m o n ito ro k ezzel szem ben az additív alapszí­
lyet egy 600 dpi-s n y o m tató n szeretn én k kinyom tatni. A szk en n elt k ép 600 x 600 n ek e t és az R G B - (R ed, G reen , B luc) ren d szert használják a színek előállítására.
pixelt tartalm az in chen k é n t, m indegyikhez egy szürke árn y alat é rté k van rendelve A zo k n ak a színeknek az összességét, am elyeket egy m o n ito r vagy nyo m tató k é ­
0-tól (feh ér) 255-ig (fek ete). A n y o m tató szintén tu d 600 dpi felbontással ny o m ­ pes előállítani, g am u tn ak nevezzük. E gyetlen eszköz g am u tja sem azonos a világ
tatni, de m in d en pixel vagy fe k e te lesz, vagy fehér. S zü rk ét nem leh et nyom tatni. valóságos színeivel, mivel legjobb esetb en is csak 256-féle intenzitással jelen n ek
A szokásos m egoldás a szürkeárnyalatos k épek n y o m tatására az ún. halftoning - m eg az alapszínek, am i 16 777 216 k ü lönböző színt ad. A technológia tö k é le tle n sé ­
a kereskedelem b en k a p h ató poszterek n él is ezt alkalm azzák. A k ép et h alftone cel­ gei ezt tovább csökkentik, és a m a ra d é k sem m indig egyenletesen oszlik el a szín­
lák ra bontják, egy cella jellem ző en 6 x 6 pixel. M inden cella 0 és 36 közötti fekete skálán. E zeken túl a színek érzék elése nem csak a fény fizikai jellem zőin, hanem
pi.xelt tartalm azh at. A szem ünk a több fekete pixelt tartalm azó cellát síitétebbnek so k b an azon is m úlik, hogy a csapok és a pálcikák hogyan helyezkednek cl az e m ­
látja, m int a kevesebbet tartalm azó t. A 0 és 255 közötti szürkeségi é rté k e k et 37 zó­ beri retin án .
náb a sorolják. A 0-tól 6-ig terjed ő érték ek van n ak a 0-s zó n áb an, 7-től 13-ig az 1-es A fen tiek k ö v etk ezm ényeképpen egy k épernyőn m egfelelőnek látszó színes k é­
zó n áb an és így tovább (a 36-os zóna egy kicsit kisebb, m int a többi, m ert a 256 nem p e t ugyanúgy kinyom tatni közel sem triviális dolog. T ö b b ek k ö zö tt az alábbi p ro b ­
lém ákkal kell szem benézni:

1. A színes m o n ito ro k kib o csáto tt fényt használnak; a színes nyom tatók visszavert
fényt.
2. A CKI'-k szín en k én t 256-féle in ten zitásra k épesek; a színes n y o m tató k n ak half-
ton in g tech n ik át kell alkalm azniuk.
(a (b) (0 íd) (e) (f) 3. A m o n ito ro k n ak sö tét a h á tte re ; a p ap ír világos h á tte re t ad.
4. A z R G B és a C M Y K gam u to k különbözők.
2.36. ábra. Szürkeségi árnyalatokhoz tartozó halftone pontok, (a) 0-6. (b) 14-20. (c) 28-34.
(d) 56-62. (e) 105-111. (f) 161-167
132 2, s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.4. b e m e n e t / k i m e n e t 133

A valóságossal (vagy é p p e n a m o n ito rra l) m egegyező színes k ép e k elő állításáh o z m azó n y om lalófej felett h a lad n a k el a h o rdozóanyagban tá ro lt C M Y K festékek.
m egfelelő eszközbeállításra, kifinom ult szoftverre és nagy felhasználói ta p a sz ta ­ A festék ek azonnal elp áro lo g n ak , és a közelben lévő speciális p ap írra kerülnek.
latra van szükség. M in d en fű tő elem 256 külö n b ö ző h ő m é rsé k le te t tu d p rodukálni. M inél m agasabb
Színes nyom tatásh o z ö tféle tech n o ló g iát alk alm azn ak a m in d en n ap o s h aszn á­ a h ő m érsék le t, annál több festék kerül a p ap írra, és annál élén k e b b lesz a szín. A
latban; ezek m indegyike a C M Y K -rendszeren alapul. A z egyszerűbbek a színes tö bbi színes nyom tatóval elle n té tb e n közel folytonos sz ín átm en etek et leh et e lé r­
tin tasu g aras nyom tató k, m elyek ugyanúgy m ű k ö d n ek , m int a m o n o k ró m tin ta ­ ni, így a h alftoning tech n ik ára niiies szükség. Kis fényképek készítésére használt
sugaras nyom tató k , de egy h ely ett négy p a tro n n a l (cián, sárga, b íb o r és fek ete). n y o m tató k gyakran ezen az elven m ű k ö d n ek , és nagyon valósághű k ép ek et tu d n ak
M érsék elt áro n (a n y o m tató k olcsók, de a tin ta p a tro n o k n em ) jó e red m én y ek et p ro d u k áln i speciális (és d rág a) p apírra.
ad n ak színes grafikák, és m eg úgy-ahogy m eg felelő t fén y k ép ek szám ára.
A legjobb ered m én y ek e lérése é rd e k é b e n speciális tin tá t és p a p írt kell h asz­
nálni. K étféle tin ta van. A festékalapú tinták folyékony h o rd o zó an y ag b an o ld o tt 2.4.5. Telekommunikációs berendezések
színes festékek. É lén k színeket a d n ak , és könnyen folynak. Fő h átrán y u k , hogy
ultraibolya fénynek, p é ld áu l n a p sü tésn e k kitéve fakulnak. A pigm entalapú tin ­ A legtöbb szám ítógép n ap jain k b an szám ító g ép -h áló zatb a van bekapcsolva, leg­
ták szilárd pig m cn trészecsk ék et ta rtalm a z n a k folyékony h o rd o zó an y ag b an , am ely tö b b szö r az in tern etb e. E kapcsolat bizto sításáh o z speciális eszközökre van szük­
elp áro lo g a p ap írró l, hátrahagyva a p ig m en tek et. N em fakulnak, de nem is olyan ség. E b b en a fejezetben azt nézzük m eg, hogyan m ű k ö d n ek ezek az eszközök.
élénk a színük, m in t a festék alap ú tin ták n ak , ezenkívül a p ig m en tek szeretik e ltö ­
m íteni a fúvókákat, am elyek e m ia tt re n d sze re se n tisztításra szorulnak. F ényképek
nyom tatásáh o z b ev o n ato s vagy fényes p a p írra van szükség, am ely ek et speciálisan M odem ek
a rra terveztek, hogy a tin ta esep p e k et egyben tartsá k , és ne hagyják szétterü ln i.
A tin tasu g aras n y o m tató k n ál egy fokkal jo b b ak a szilárd tintás nyomtatók. A szám ító g épek haszn álatán ak növekedésével gyakran válik szükségessé, hogy egy
E zekbe négy speciális, szilárd tin tatö m b ö t kell elhelyezni, am ely ek et aztán fe l­ szám ító g ép egy m ásikkal kom m unikáljon. P éld áu l sokan o tth o n i szám ítógépüket
olvasztanak, és tartály o k b an táro ln ak . E zek n él a n y o m tató k n ál bekapcsolás után a rra is h asználják, hogy' m unkahelyi gépükkel, egy internetszolgáltatóval vagy egy
n é h a 10 p e rc e t is várni kell, am íg a tin ta tö m b ö k felolvadnak. A fo rró tin tá t a p a ­ in te rn e te s banki ren d szerrel kom m unikáljanak. Sok esetb en a telefonvonalak te ­
p írra szórják, ahol m egszilárdul, és két h en g er k ö zö tt átvezetve véglegesen a p a ­ szik leh ető v é e kapcso lato k fizikai m egvalósítását.
p íro n m arad . Egy sim a telefonvonal azo n b an n em alkalm as a szám ítógép je le in e k to v áb b í­
A színes nyom tató k h arm ad ik fajtája a színes léze rn y o m tató . M o n o k ró m testv é­ tá sá ra , mivel utó b b iak általáb an a 0-kat 0 volttal, az 1-eseket 3-5,5 volt közötti
ré h ez h aso n ló an m űködik, kivéve, hogy a négj' színnek m eg felelő k é p e k e t egyen­ feszültséggel rep rezen tálják , ahogy az a 2.37. (a) áb rán láth ató . A kétszintű jelek
kén t viszik fel a h en g e rre , és m indegyiknél külön to n e rb ő l színezik m eg a p ap írt. je le n tő s to rzu lást szenvednek a hangátvitelre terv ezett vonalon, ezzel átviteli h ib á­
Mivel a teljes b itté rk é p á lta lá b an e lő re elkészül, egy 1200 x 1200 dpi felb o n tású kat ered m én y ezn ek . Egy 1000 és 2000 H z közötti, vivőhullám nak n evezett tiszta
kép, am ely 80 négyzetinehet foglal cl a p a p íro n , 115 m illió pixelből áll. P ixelenként szinuszos h ullám azonban aránylag kis torzulással átvihető, így a legtöbb te le k o m ­
4 b ittel szám olva, a n y o m tató n a k 55 M B m e m ó riá ra van szüksége csak a b itté rk ép m u n ik áció s re n d szer ezt használja fel a m űködéséhez.
táro lásá ra, nem szám ítva a b első p ro cesszo ro k , b e tű k é sz lete k és egyebek m e m ó ­ M ivel a szinusz jel hullám zása tö k életesen kiszám ítható, egy tiszta szinusz jel
riaszükségletét. E zek a követelm ények d rág áv á teszik a színes léze rn y o m tató k at, n em h o rd o z sem m ilyen inform ációt. A z am plitúdó, a frekvencia vagy a fázis vál­
de a n yom tatás gyors, a m inőség nagyon jó , és a k ép e k időtállók. to ztatásáv al azo n b an átvihetjük 1-esek és 0-k so ro zatát (lásd 2.37. ábra). E zt a fo ­
A negyedik fajta színes n y o m tató a viasznyom tató. Egy széles, négyszínű viaszt lyam ato t m odulációnak nevezik. A z am plitúdóm oduláció [lásd 2.37. (b) ábra] két
ta rtalm azó szalag ta lálh a tó b e n n e, am ely la p m é re tű szeg m en sek re oszto tt. T ö b b feszültségszintet használ, egyiket a 0-khoz, a m ásik at az J-esekhez. H a egy nagyon
ez e r fű tő elem olvasztja meg a viaszt, ahogy a p a p ír mozog a la tta . A viasz a CM Y K- kis sebességű digitális ad atátv itelb e b eleh allg atn án k , halk h angol h allanánk 0 e se ­
ren d szert használva p ix elen k én t h o zzá ta p a d a p ap írh o z. A v iasznyom tatók voltak tén , h a n g o sat 1 esetén.
a leg elterjed teb b színes n y om tatóeszközök, de ezek et egyre inkább olyan n y o m ta­ A frekvenciam oduláció [lásd 2.37. (c) ábra] esetén a feszültségszint állandó, de
tók váltják fel, am elyeknek olcsóbbak a kellékeik. a vivőhullám frekvenciája e lté rő 1-esek és 0-k esetén . H a beleh allg atu n k egy frek ­
A színes nyo m tató k ö tö d ik fajtája a festékszublim ációs nyomtató. H a b á r freu d i v en cia m o d u lált digitális ad atátv itelb e, k ü lönböző m agasságú h an g o t hallunk a 0-k
felhangjai vannak, a szublim áció a n n a k a fo ly am atn ak a tu d o m án y o s neve, am ik o r és az 1-ek e setéb en . A frek v enciam odulációt gyakran frekvenciaeltolásos kódo­
egy szilárd h alm azállap o tú anyag gázzá változik anélkül, hogy k eresztü lm en n e a lásnak (frequency shift keying) is nevezik.
folyékony h alm azállap o to n . A szárazjég (fagyott szén-dioxid) egy jól ism ert szub­ A z egyszerű fázism odulációnál [lásd 2.37. (d) ábra] az am p litú d ó és a frekven­
lim áló anyag. A festékszublim ációs n y o m tató b an egy tö b b ez e r fű tő e le m e t ta rta l­ cia n e m változik, de a vivőhullám fázisa 180 fokkal eltolódik m inden 0-1 vagy
134 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.4. B E M EN ET /K IM EN ET 135

Idő h a tá ro z ta a k a ra k te r elejét, m á r csak az ó ra je le t kell figyelnie, hogy m ikor vegyen


1 m in tát a következő bitek m eg h atáro zásáh o z. A m ai m o d em ek 28 800 b it/m áso d ­
V2
p erc és 57 6 0 0 b it/m áso d p erc sebességgel m ű k ö d n ek , általáb an ennél jóval,alacso­
(a) a. VI J ____ L nyabb b a u d é rték ek m ellett. T ö b b m ód szer kom binációját használják a rra, hogy
'3! Nagy Kis tö b b b ite t k ü ld h essen ek jelv áltáso n k én t, m o d u lálják az am p litú d ó t, a frekvenciát
amplitúdó amplitúdó
és a fázist is. M ajd nem m indegyik full-duplex, am i azt jelen ti, hogy egyszerre tu d ­
n a k m in d k é t irányban kom m unikálni (különböző frekvenciát használva). H alf-
(b)
-ir
I I
Nagy
1 frekvencia
Alacsony
frekvencia
duplex a neve az olyan m o d em n ek vagy átviteli vonalnak, am ely egyszerre csak
egy irán y b an tu d a d a to k a t átvinni (h aso n ló an egy egyvágányú vasúthoz, am elyen
I I
I I
észak felé és dél fele is m e h etn ek a vonatok, de nem egyszerre). A csak egy irány­
b an m ű k ö d ő vonalak neve szimplex.
(C)

D igitális előfizetői vonalak

(d)
/KYvH^ÍVtVXÁlvA A m ik o r a te lefo n ip ar végre e lé rte az 56 K bps sebességet, a jól végzett m u n k a elis­
m erése k é p p en m egv ereg ette saját vállát. E k ö zb en a k ábeltévé-társaságok m ár
10 M bps sebességet elé rő v o n alat k ín áltak m eg o szto tt kábel felhasználásával, a
Fázisváltozás m ű h o ld társaság o k pedig 50 M bps feletti szolgáltatást tervezgettek. A hogy az in­
te rn et-h o z z á férés b izto sítása üzleti tevékenységük egyre fo n to sab b részévé vált, a
2.37. ábra. AOl 00101 WQOIOO bináris szám bitenkénti átvitele telefonvonalon, (a) Kétszintű jel. telefontársaságok rájö ttek , hogy a betárcsázásn ál v ersenyképesebb szolgáltatásra
(b) Amplitúdómoduláció, (c) Frekvenciamoduláció, (dj Fázismoduláció van szükségük. V álaszk ép p en új digitális in tern etszo lg áltatást k ezd te k nyújtani.
A zo k at a szolgáltatásokat, am elyek a n o rm ál telefonvonalnál nagyobb sávszéles­
1-0 váltásnál. K ifinom ultabb fázism odulációs re n d sz e re k b e n m in d en o sz th a ta tla n séget b izto sítanak, id ő n k én t szélessávűnak nevezik, b á r ez a m eg h atáro zás inkább
időintervallum kezdetén a vivőhullám fázisa h irte le n elto ló d ik 45, 135, 225 vagy piaci, m in t speciális technikai fogalom .
315 fokkal, ezzel az ún. dibit fáziskódolással 2 b ite t leh e t in te rv allu m o n k én t á t­ K ezd e tb e n több egym ást á tfed ő aján lat je le n t m eg, am elyek az xDSL (D igital
vinni. Például a 45 fokos fáziseltolás 00-t je le n th e t, a 135 fokos eltolás 01-et és így S ub scrib er L ine, digitális előfizetői vonal) általán o s term in o ló g ia alá tarto zn ak (az
tovább. M ás, intervallum onként 3 vagy tö b b b ite t k ódolni k é p es m ó d szerek is lé ­ X helyén k ü lö n b ö ző b e tű k állnak), A továb b iak b an ism ertetjü k , hogy valószínűleg
teznek. A z időintervallum ok szám a (vagyis a leh etség es jelv áltáso k szám a m áso d ­ mivé válik m ajd ezek közül a legnépszerűbb, az A DSL (A sym m etric D SL, asz im ­
p erc e n k é n t) a baud. In tervallum onként 2 vagy tö b b bit átvitele ese tén a m á so d ­ m etrikus digitális előfizetői vonal). M ivel az A D S L jelen leg is fejlődik, e z ért a
p ercen k én t átvitt bitek szám a nagyobb, m in t a jelv áltáso k szám a. N agyon so k an szabvány n em m inden elem e van teljesen a helyen, az aláb b iak b an is m e rte te tt n é ­
összekeverik ezt a két fogalmat. hány részlet idővel m egváltozhat, az alapelképzelés azo n b an érvényes m arad . Az
H a az átviendő adatok 8 bites k a ra k te re k b ő l állnak, előnyös len n e egy olyan A D S L -rő l b ővebben lásd (S um m ers, 1999; V etter és társai, 2000).
m ódszer, amellyel 8 bitet egyszerre tu d n á n k átvinni - vagyis 8 p á rh u zam o s veze­ A m o d e m ek lassúságának az az oka, hogy a telefo n t az em beri h an g to v áb b í­
ték. M ivel a telefonvonal csak egy c sato rn á t szolgáltat, e z é rt a b itek et sorosan, tá sá ra találták ki, és a teljes re n d sz e rt erre a fe la d a tra optim alizálták. A z a d a tto ­
egym ás u tán kell elküldeni (vagy p á ro n k én t, ha dibit k ó d o lá st h aszn álu n k ). Az v ábbítás m indig is m ostohagyerm ek volt. A z előfizetőktől a telefo n társaság köz­
az eszköz, am elyik kétszintű jelek fo rm ájá b an , b ite n k é n t k a ra k te re k e t fogad el a p o n tjá b a fu tó vezeték et, am elyet lokális huroknak (local loop) neveznek, tra d icio ­
szám ítógéptől, és a biteket egyesével vagy kettesév el am p litú dó -, frekvencia- vagy n álisan egy 3000 H z-cs szűrővel korláto zzák a telefo n társaság n ál. E z az a szűrő,
fázism odulációt használva továbbítja; a m o d em . A k a ra k te re k e le jén e k és v égének am ely b e h a tá ro lja az ad atto v áb b ítás sebességét. Szűrő nélkül a lokális h u ro k n ak a
jelzésére m inden 8 bites k a ra k te rt re n d szerin t m egelőz egy startb it és k övet egy g y ak o rlatb an e lé rh e tő sávszélessége függ a v ezetek hosszától, de általáb an néhány
stopbit, am i összesen 10 bitet jelen t. k ilo m é te r távolságon elérh eti az 1,1 M H z-et.
A k ü ldő m odem az egy k arak terh ez ta rto z ó b itek e t egyenlő id ő k ö zö n k én t küldi A z A D S L -k ín álat legelterjedtebb m egközelítését a 2.38. áb ra m u tatja be.
cl. P éldául a 9600 baucl azt jelen ti, hogy 104 m illiom od m á so d p erce n k én t tö rté n ik L ényegében, azt teszik, hogy eltávolítják a szűrőt, és az elé rh e tő 1,1 M H z sp ek tru ­
egy jelváltás. A fogadó oldalon egy m ásik m o d em konv ertálja a m o d u lált je le t b i­ m o t 256 független, egyenként 4312,5 H z szélességű csato rn ára osztják fel. A 0-s csa­
náris szám m á. Mivel a bitek szabályos id ő k ö zö n k én t érk ezn ek , h a a fo g ad ó m eg- to rn á t az egyszerű régi telefonszolgáltatás (Piain Old Telephone Servicve, POTS)
136 2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E 2.4. B E M EN ET /K IM EN ET 137

céljaira használják. A z 1-5. csato rn át nem használják, azért hogy m egelőzzék a te­
lefonhang és az ad atjelek interferenciáját. A fen n m arad ó 250 esatoriiáhúl egyet a
felm enő, egyet a lejövő adatfolyam vezcrlcscre használnak, A többi c sa tta n a pedig
a felhasználók a d a ta it továbbítja. A z A D S L olyan, m in th a 250 m o d em ü n k lenne. ■ I

I Kódoló/
dekódoló
X ^ iC o d e c )

Szét­ Telefon­
választó vezeték

Hang Felmenő Lejövő adatfolyam DSLAM

2.38. ábra. Az ADSL működése

Elvileg m inden fe n n m a ra d ó csato rn a egy-egy full-duplex adatfolyam m egvaló­ V


Internetszolqáltatóhoz
sítására alkalm as, de a felh arm ó n ik u so k , az áth allás és m ás effek tu so k a g yakorla­ Telefontársaság végpontja Az előfizető lielyiségei
ti ren d sz e re k e t jóval az elm életi k o rlát a la tt tartják . A szo lg áltató h a táro zza m eg,
hogy a hány csato rn á t le h e t feltö ltésre és hán y at letö ltésre h asználni. A z 50-50% is 2.39. ábra. Egy tipikus ADSL-berendezés konfigurációja
m egvalósítható len n e a felm e n ő és a lejövő csa to rn á k szám ára, de a legtöbb szol­
g áltató a sávszélesség 80-90% -át a letö ltésre allokálja, hiszen a legtöbb felhasz­ ló z a to t h o zn ak létre, am ely csak a szám ítógépből és az A D S L -m o d em b ő l áll. (A z
náló inkább letölt a d a to k a t, m in t fel. [im iatt k e rü lt az „ A ” b e tű az A D S L rövidí­ E th e rn c t-h á ló z a t egy n ép szerű és olcsó lokális hálózati szabvány.) N é h a U SB p o r­
tésbe. Egy gyakori m egosztás: 32 csato rn a a feltöltésre, és az összes többi p ed ig a to t h aszn áln ak E th e rn e t-h á ló z a t helyett. A jö v ő b en belső A D S L -m o d em k árty ák
letöltésre. is lesznek, e h h e z k étség sem férh et.
A z egyes csato rn ák o n állan d ó an figyelik a vonalm in ő ség et, és h a szükséges, A vezeték m ásik végén, a telefo n társaság végpontján egy m egfelelő szétvá-
m egváltoztatják az ad atseb esség et, így a k ü lö n b ö ző c sato rn á k o n k ü lö n b ö ző leh el lasztót kell felszerelni. A jel h ang részét itt is ki kell szűrni, és a n orm ál telefo n ­
az átviteli sebesség. A z a d a to k a t a v alóságban az am p litú d ó - és fázism odiiláció k ö zp o n tb a küldeni. A 26 k H z feletti je le k e t egy újfajta készülékbe, a DSLAM -ba
k om binációjával továbbítják, így elé rh etik a 15 b itet b a u d o n k é n t. M o n d ju k , 224 (D igital Subscriber Line A ccess Multiplexer, digitális előfizetői vonal hozzáféré­
lejövő csato rn án ál és 15 b it/b au d n ál, 4000 b a u d e seté n a lejövő teljes sávszélesség si m ultiplexer) irányítják, am i ugyanolyan digitális jelfeldolgozó egység, m int az
13,44 M bps. A g y ak o rlatb an a jel-zaj viszony sosem elég jó ah h o z, hogy ezt a se­ A D S L -m o d em . A m in t a digitális jelek b ő l a b itso ro zato k at elő állíto tták , csom ago­
bességet el lehessen érn i, de 4 -8 M bps e lé rh e tő , jó m inőségű hu rk o k k al és rövid k at alak ítan ak ki belőlük, és az in tern etszo lg áltató h o z küldik tovább.
veze tékszakaszokka].
Egy tipikus A D S L -e lre n d e ze s lá th a tó a 2.39. áb rán . A diag ram azt m u tatja
be, hogy a felhasználó vagy a te lefo n társaság szerelő jén ek egy hálózati interfészt Kábeles internet
(NetWork Interface Device, N ID) kell felszerelnie az előfizető telep h ely én . E z a
kis m űanyag d ob o z jelö li a telefo n tá rsa sá g b irto k á n a k a végét és az elő fizető b ir­ Sok k áb eltév é-társaság kínál m anapság in tern et-h o zzáférést káb elein keresztül.
to k á n a k a k ezd etet. A h áló za ti interfé szh ez közel (vagy n é h a azzal egy k észü lék ­ M ivel ez a techológia je len tő sen különbözik az A D S L -tő l, érd e m e s röviden fog­
ben ) találh ató a szétválasztó (splitter); ez egy an aló g szűrő, am ely leválasztja az lalkozni vele. A k áb elszolgáltatók m inden városban fő telephellyel rendelkeznek,
a d a th á ló zatró l a 0-4Ü00 H z-es sávot a P O T S szám ára. A P O T S jele t egy m eglévő valam int ren g eteg , elektronikával zsúfolt dobozzal szerte a m űködési terü letü k ö n ,
telefo n ra vagy telefaxra, az ad atjelek et p ed ig egy A D S L -m o d e m re irányítják. Az am ely ek et fejállom ásoknak (headend) neveznek. A fejállom ások nagy sávszéles­
A D S L -m o d em tu la jd o n k é p p e n egy digitális jelfeld o lg o zó eszköz, am ely úgy van ségű káb elekkel vagy üvegkábelekkel k apcsolódnak a fő telephelyhez.
összekapcsolva, m in th a 250 m o d em m ű k ö d n e p árh u za m o sa n k ü lö n b ö ző frekv en ­ M inden fejállom ásról egy vagy több kábel indul el, o tth o n o k és irodák százain
ciákon. M ivel a legtöbb A D S L -m o d e m külső, ezért a szám ító g ép ek et nagy seb e s­ h alad keresztül. M inden előfizető eh h ez a k ábelhez csatlakozik, ahol az átlépi az
séggel kell hozzákapcsolni. Á ltaláb an ezt úgy old ják m eg, hogy egy E th e rn e t-h á - előfizető telep h ely én ek h a tá rá t, így felhasználók százai oszto zn ak egy a fejállo­
lózati kártyát teszn ek a szám ítógépbe, és egy két állom ásból álló, nagyon kis há- m ásh o z vezető kábelen. R en d szerin t a kábelek sávszélessége 750 M H z körül van.
138 2, s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.4, b e m e n e t /k i m e n e t 139

E z a ren d szer teljesen különbözik az A D S L -tő i, mivel o tt m in d en elő fizető n ek Vegyük észre, hogy a televíziójelek m ind lejövő jelek, e z ért leh ető ség van arra,
saját vezetéke van a telefo n társaság h o z. B ár a gy ak o rlatb an egy saját 1,1 M H z hogy a felm en ő sáv erő sítő i csak az 5 -4 2 M H z tarto m án y b an m ű ködjenek, a lejö­
sávszélességű c sa to rn a nem nagyon k ülönbözik a fejállo m ásh o z v ezető kábel vő sáv erő sítő i pedig csak az 54 M H z-ncI m agasabb frekvenciákon, ahogyan ez az
200 M H z-es részén ek 400 felh aszn áló szám ára tö rté n ő felosztásától, akik n ek a á b rán is látszik. A felm en ő és a lejövő adatfolyam sávszélességében aszim m etria
fele n em használja a re n d sz e rt az a d o tt p illan atb an . Ez azo n b an azt jelen ti, hogy van, mivel a TV-sáv fe lett nagyobb frek v en ciatarto m án y áll ren d elk ezésre, m int
hajnali 4 ó rak o r jo b b a kiszolgálás, m int d élu tá n 4-kor, míg az A D S L egész nap alatta. M ásfelől viszont a forgalom nagyobb része valószínűleg letöltés, e /c r t a
állandó. A zok, akik o p tim ális k ábeles in te rn e tsz o lg á lta tásra vágynak, m eg g o n d o l­ k áb eltársaság o k nem v ették zokon ezt a körülm ényt. A hogyan ko ráb b an láttuk, a
hatják, hogy gazdag vagy szegény k ö rn y ék re k ö ltö zzen ek (elő b b ib en a h ázak távol telefo n tá rsa ság o k is aszim m etrikus D S L -szo lg áltatást kínálnak, pedig enn ek iga­
vannak egym ástól, így kevés e lő li/e tő ju t egy k áb elre, u tó b b ib an p ed ig senki sem zán nincs technikai indoka.
en g ed h eti m eg m ag án ak az in tern et-elő fizetést). A z in tern e t-h o zzáférésh ez egy k áb elm o d em re van szükség, am elyben két in te r­
M ivel a kábel egy m e g o szto tt kom m unikációs lehető ség , fo n to s k érd és an n ak fész van, egyik a szám ítógéphez, a m ásik a k áb eltévé-hálózathoz. A szám ítógép
m eghatározása, hogy ki m ikor és m elyik frekvencián a d h at. H ogy ezt jo b b an m eg ­ és a k áb elm odem közötti interfész kézenfekvő. Ez általáb an egy E th ern e t-k árty a.
értsük, vizsgáljuk m eg röviden, hogyan m ű k ö d ik a kábeltévé. A k áb eltév é -c sa to r­ m int az A D L S -nél. A jö v ő b en lehetséges, hogy az egész m odem a szám ítógépbe
nák É szak-A m crik áb an re n d esen az 5 4 -5 5 0 M H z ta rto m án y t foglalják el (kivéve d u g o tt k ism éretű kártya lesz, éppúgy, m int a V9.x belső m odem eknél.
az FM rád ió 88-108 M H z k özötti sávját). E zek a c sato rn á k 6 M H z szélességűek, A m ásik oldal m á r bonyolultabb. A kábelszabvány nagyobb része rádi(íclckt-
ebben m á r az elválasztó sávok is b en n e v annak, am elyek a csato rn ák k ö zö tti át- ronikával foglalkozik, am i jóval tú lm u ta t e könyv k eretein . A z egyetlen em lítésre
szivárgást h iv ato ttak m egakadályozni. E u ró p á b a n a sáv alsó h a tá ra 65 M H z, a csa­ m éltó részlet, hogy a k áb elm o d em ek ugyanúgy, m int az A D S L -m o d em ek állan ­
to rn á k szélessége p ed ig 6 -8 M H z a PÁL és a S E C A M re n d sz er nagyobb fe lb o n tá ­ d ó an be v a n n ak kapcsolva. A k k o r veszik fel a k ap csolatot, am ik o r bekapcsolják,
sa m iatt, egyébként a esato rn ak io sztás hasonló. és fo ly am ato san k ap csolatban m arad n ak , am íg ki nem kapcsolják, mivel a k áb el­
A m ik o r a kábeles in te rn e te t b ev ezették , a társasá g o k n a k k ét p ro b lé m á t k ellett társaság o k n em a kap cso lat fen n állásán ak ideje alapján szám ítják a díjat.
m egoldaniuk: H ogy jo b b a n m eg értsü k a m ű k ö d ésü k et, nézzük m eg mi tö rtén ik , am ik o r a k á­
b e lm o d e m e t csatlak o ztatju k és bekapcsoljuk. A m odem végigellenőrzi a lejövő
1. H ogyan bővítsék a ren d sz erü k et az in te rn etszo lg áltatással úgy, hogy a tév é m ű ­ csa to rn ák a t, és olyan speciális csom agokat keres, am elyeket a fejállom ás p e rio d i­
so ro k v ételét ez ne befolyásolja. kusan küld, és a re n d sz e rp a ra m é te re k e t tartalm azzák az újo n n an bekap cso ló d ó
2. H ogyan valósítsan ak m eg k étirányú forg alm at, am ik o r az erő sítő k alap v ető en m o d em ek szám ára. A m int a m odem m eg találta ezt a csom agot, jelzi a je le n lé té t
egyirányúak, az egyik felm en ő csato rn án . A fejállom ás azzal válaszol, hogy kijelöli a m odem fel­
m e n ő és lejövő csato rn áit. E z a kijelölés később m egváltozhat, h a a fejállom ás a
A kiválasztott m egoldás a következő. A m o d e rn k áb elek jóval 550 M H z fe le tt is te rh e lé s kiegyenlítése m iatt szükségesnek ítéli.
m ű ködnek, gyakran 750 M H z-ig vagy m ég tovább. A feltö ltésre szolgáló (a fel­ E zu tán a m odem m eghatározza a fejállom ástól m ért távolságát egy speciális cso­
használótól a fejállom ás felé a d a to k a t to v áb b ító ) csato rn ák az 5 -4 2 M H z sávban m ag küldésével, úgy, hogy lem éri, m ennyi ideig ta rt a válasz m egérkezése. Ezt a
van n ak (E u ró p á b a n kicsit m agasabb frek \'en cián ), a le tö ltésre szolgáló c sa to rn ák folyam atot tá v o lság b eh atáro lásn ak (ranging) hívják. A m odem szám ára fontos,
(a fejállom ástól a felh aszn áló h o z) fo rg alm a a frek v en ciatarto m án y felső részére hogy tu d ja a távolságát, hogy ehhez tudja igazítani a felm enő csatornák m ű k ö d te té ­
esik, ahogyan az a 2.40. á b rán látszik. sét, és az id őzítését helyesen állítsa be. A z adatforgalm at rövid idejű szeletekre, ún.
m in islo to k ra osztják. M inden felfelé halad ó csom agnak egy vagy tö b b m inislotba
5 42 54
kell beleférn ie. A fejállom ás ad je le t egy újabb m inislot-periódusra, azonban a
o/ 108 550 750 MHz startpisztolyt nem egyszerre hallja m eg m inden m o d em a kábel m en tén m ért te rje ­
dési idő m iatt, A m o d em ek - ha tudják, milyen m essze van n ak a fejállom ástól - ki
TV FM TV Lejövő adatfolyam tu d ják szám ítani, hogy valójában m ennyi ideje indult el az előző m inislot-periódus.
A niinislot hossza a háló zattó l függ. A hasznos m éret jellem ző en 8 bájt.
A z inieializálási fázisban a fejállom ás m in d en egyes m o d em szám ára biztosít
egy m inislotot, am ellyel felm en ő sávszélességet k é rh etn ek . A szabály az, hogy
Lejövő adatfolyam frel<venciál<
tö b b m o d em et is re n d e lh e tn e k ugyanahhoz a m inislothoz, am i versenyhelyzetet
te rem t. A m ikor a szám ítógép csom agot szeretn e küldeni, a csom agot elküldi a m o­
dem h ez, am ely m egkéri a szükséges szám ú m inislotot a továbbításához. H a a k é­
2.40. ábra. Egy tipikus kábeltévés Internetszolgáltatás frekvendakiosztási diagramja rést a fejállom ás elfogadta, nyugtázást küld a lejövő csato rn án , és m egadja, hogy
140 . s z á m ít ó g é p r e n d s z e r e k f e l é p ít é s e 2.4. B E M EN ET /K IM EN ET 141

mely m in islotokat foglalta le a m o d em szám ára. A zu tán a m odem elküldi a cso­ A z inicializálási folyam at egyik része a titkosítási kulcsok beállítása. E lső p illan­
m agot, kezdve az első lefoglalt m inislottal. További cso m ag o k at a fejlécben lévő tásra ké[)telenségnek tűnik, hogy két fél, a fejállom ás és a m odem , m egállapodnak
m ező használatával leh et kérni. egy titkos kulcsban fényes nappal, ezer e m b er szem e láttára. K iderült azonban,
H a azonban versenyhelyzet van a m inislotok k érésén él, a nyugtázás e lm arad , hogy nem , de az alk alm azo tt tech n ik a - a D iffie-H ellm an-algt)ritm us - ism e rte té ­
ezért a m odem vár egy ideig, m ajd ú jra próbálkozik. M in d en egyes, ism ételten b e ­ se kívül esik e könyv k eretein . [A technika ism ertetését lásd (K aufm an és társai,
következő hibánál a v éled e n várak o zás id ejét d uplázzák, hogy ha nagy a forgalom , 2002).] '
szétterítsék a terh elést. V égül, a m o d em n ek be kell jelen tk ezn ie, és m eg kell adnia saját egyedi azonosí­
A lejövő csato rn ák at a felm enő csato rn ák tó l elté rő e n irányítják. A z első dolog, tó já t a titk o s csato rn án . E k k o r az inicializálás véget ér. A felhasználó b ejelen tk ez­
hogy csak egy küldő van (a fejállom ás), így nincs versenyhelyzet, és nincs szükség h et az ISP-hcz, és elk ezd h et dolgozni.
m inislotokra, am i tu lajd o n k ép p en statisztikai alapú időosztásos m ultiplexelés. A Sokkal tö b b e t is el leh etn e m ég m ondani a k áb elm o d em ek rő l. N éhány fontos
másik, hogy a lejövő ad atforgalom általáb an sokkal nagyobb, m int felm enő, így szakirodalom : (A dam s és D ulchinos, 2001; D onaldson és Jones, 2001; D utta-R oy,
rögzített, 204 bájt m éretű csom agokat használnak. E n n e k egy része egy R e e d - 2001). '
Solom on-féle hibajavító kód, és m ás járu lék o s dolgok, így a felhasználó szám ára 184
bájt hasznos adatm ennyiség m arad. E zek et a szám okat a M P E G -2 szabványú digi-
tálistelevízió-szabvánnyal való k om patibilitás m iatt választották, így a tévé és a le­ 2.4.6. Digitális kamerák
jövő csatornák form átum a azonos. A logikai kapcsolatokat a 2,41. áb ra m u tatja be.
V isszatérve a m o d em inicializáláshoz, am in t a m o d em b e h a tá ro lta a távolságát, A szám ító g épek egyre népszerűbb alkalm azási te rü le te a digitális fényképezés,
m eg k ap ta a felm en ő és lejövő c sato rn áit, v alam in t a m inislotkiosztását, elk ez d h eti am ely a digitális k am erák at a szám ítógép-perifériák egyik fajtájává te tte . N ézzük
a csom agok küldését. E zek a csom agok a fejállo m ásh o z fu tn ak be, am ely to v áb ­ m eg röviden, hogyan m űködik. M inden k am erán ak van egy lencséje, am ely a tá r­
bítja egy d edikált c sa to rn á n a k áb eltársaság fő telep h ely ére, m ajd az in te rn e tsz o l­ gyakról a k a m era h áto ld alán egy k ép et hoz létre. A hagyom ányos fényképezőgé­
g áltató h o z (am ely leh et m aga a k áb eltársaság is). A z iiite rn e tszu lg á lta tó (In te rn e t p ek b en a h áto ld alo n egy film halad, am elyen re jte tt kép alakul ki, ha fény éri. A
Service Provider, IS P ) felé m en ő első csom ag a h áló za ticím -k crés (tech n ik ailag re jte tt kép lá th ató v á te h e tő bizonyos vegyszerek alkalm azásával a film előhívóban.
egy IP szám ), am elyet d in am ik u san o sztan ak ki. L e szo k ták k érd ezn i, és m eg k ü l­
dik a napi p ontos id ő t is.
A következő lépés a biztonsághoz k ötődik. M ivel a kábel o szto tt k o m m u n ik á ­ / R G Egy pixel négy
ciós lehetőség, b árki b ajb a k e rü lh e t azáltal, hogy valaki m ás elolvassa a ra jta k e ­ t G B CCD cellából áH:
1 R G
resztü lh a lad ó forgalm at. A n n ak m egak ad ály o zására, hogy m in d en k i a szom széd­ ■egy pirosból, egy kékből
\ e és két zöldből
ja i u tá n szim atoljon (k é p le te se n szólva), a forgalom m in d k ét irányban titk o síto tt.

Koaxiális kábel Lejövő, vetélkedés nélküli csatorna


27 Mbps, QAM-64 moduláció, 184 bájt adat

CPU
í/r'7^
Modem

RAM

Csomag Felmenő vetélkedéses csatorna


Flash
9 Mbps, QPSK, 8 bájtos minislotok memória

2.41. ábra. /\ felmenő és a lejövő csatornák tipikus részletei Észak-Amerikában. A QAM-64


(Quadrature Amplitude Modulation, kvadratúra amplitúdómoduládó) 6 bit/Hz-et
enged meg, de magasabb frekvenciákon is működik. A QPSK (Quadrature Phase
Digitális kamera
Shift Keying, kvadratúra fáziseltolásos kódolás) alacsony frekvenciákon működik, és
csak 2 bit/Hz-et enged meg 2.42. ábra. A digitális kamera
142 2, S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E 2.4. B E M EN ET /K IM EN ET 143

A digitális k am era ugyanígy m ű k ö d ik attó l eltekintve, hogy a film et egy té g la ­ gas frekvenciájú k o m p o n en sek et elhagynak. A tran szfo rm áció eredm énye, hogy a
lap alakú CCD (Charge Coupled Device, töltéscsatolt eszköz) m átrix ra cscreltek , k ép tá ro lá sa kevesebb b ite t igényel, azo n b an finom részletek elvesznek.
am ely fényérzékeny. (B izonyos k am erák C M O S -t használnak, de mi m ost az e l­ A m ik o r az összes k am erán belüli feldolgozás b efejező d ö tt, a k é p et egy tá ro ló ­
te rjed teb b C C D -k re k o n cen trálu n k .) eszközre írják, am ely lehet egy flash m em ó ria vagy kicsi kivehető m ágneslem ez­
A m ikor a C C D -t fény éri, elek tro m o san feltöltődik. M inél erő seb b a fény, annál egység; ez u tó b b it mikromeghajtónak nevezik. A z utófeldolgozás és a felírás k é­
több tö ltést kap. A töltés nagysága analóg-digitális átalakítóval 0 és 255 közö tti (o l­ p e n k é n t n é h án y m áso d p ercet v e h et igénybe.
csó fényképezőgépeknél) vagy 0 és 4095 közötti (a digitális tükörreflexes fén y k ép e­ A m ik o r a felhasználó hazaérkezik, a fény k ép ező g ép et csatlak o ztath atja egy
zőgépeknél) egész szám ként olvasható le. A z alap elren d ezés a 2.42. áb rá n láth ató . szám ítógéphez, általáb an p éld áu l U SB vagy F ireW ire kábellel. A k ép ek ezu tán á t­
M inden egyes C C D egyetlen é rté k e t szolgáltat, fü g g etlen ü l a fény színétől, m áso lh ató k a fényképezőgépről a szám ítógép m ág neslem ezére. Speciális szoftver­
am ely érte. Színes k é p ek készítéséh ez a C C D -k e t négyesével cso p o rto sítják . A rel, m int p é ld áu l az A dobe P h o to sh o p , a felhasználó vághatja a k ép ek et, b eállít­
C C D te te jé re egy B ay er-szűrőt tesznek, am ely m in d en cso p o rtb ó l csak a piros h atja a fényerősséget, a k o n traszto t, a színegyensúlyt, élesítheti, elhom ályosíthatja
fényi engedi át az egyik C C D -h e z a négyből, a k é k e t egy m ásikhoz, a zö ld et p edig vagy e ltáv o líth atja a kép ek egy részletét, és szám os szűrőt alkalm azhat. A m ikor a
a m eg m arad t kettő h ö z. K ét zö ld et a z ért használnak, m e rt sokkal kényelm esebb felhasználó elég e d ett az ered m én n y el, a k ép fájlo k at színes n y om tatón k in y o m tat­
négy C C D -vel re p re ze n tá ln i egy pixelt, m in t h áro m m al, to v áb b á a szem é rz é k e ­ hatja, elk ü ld h eti in tern eten egy fotókidolgozással foglalkozó céghez vagy fe lírh a t­
nyebb a zöld színre, m in t a p iro sra és a k ék re. A m ik o r egy fényképezőgépgyár azt ja C D -R O M -ra vagy D V D -re m egőrzés vagy későbbi n yom tatás céljából.
állítja, hogy m o n d ju k 6 m illió pixeles a fényképezőgép, a k k o r n em m o n d igazat. A A szám ítási kapacitás, R A M , m ág n eslem ez-terü let és a szoftver m ennyisége egy
k a m era valóban 6 m illió C C D -t tartalm az, am i azo n b an négyesével csak 1,5 m il­ digitális tük örreflexes fényképezőgépben m eg d ö b b en tő . A szám ítógépnek n em ­
lió pixelt je le n t. A k é p e t 2828 x 2121 pixel m é re tű m átrix k én t (az olcsó fén y k ép e­ csak el kell végeznie az összes fen teb b leírt tevékenységet, h an em kom m u n ik ál­
zőg épeknél) vagy 3000 x 2000 pixel m é re tű m átrix k én t (a digitális tükörreflexes nia kell a len csébe é p íte tt C PU -val, a vakuba é p íte tt C PU -val, frissítenie kell az
fén yk épezőgépek n él) le h et kiolvasni úgy, hogy a tö b b letp ix elek et a k a m e rá b a n lé ­ L C D m eg jelenítőn a k ép et, kezelnie kell az összes nyom ógom bot, forgatógom bot,
vő szoftver interp o láció v al állítja elő. fényt, k ijelzőt és egyéb k ety erék et a k am erán valós időben. Ez egy különösen e rő ­
A m ikor a kiold ó g o m b o t a k a m e rá n m egnyom juk, a k a m e rá b a n fu tó szoftver teljes b eág y azott rendszer, gyakran egy n éhány évvel korábbi asztali szám ítógép
három dolgot tesz: beállítja a fókuszt, m eg állap ítja az expozíciós időt, és beállítja v ersen y társa is lehet.
a fehéregyensúlyt. A z a u to m a tik u s fókuszálás a kép nagy frekvenciájú összetevőit
(finom részleteit) analizálja, és addig m ozgatja a lencsét, am íg a leginkább részle t­
gazdag k é p et adja. A z expozíciós id ő m eg h a táro z ása a C C D -k re e ső fény e rő ssé ­ 2.4.7. Karakterkódok
gén ek m egm érésével kezdődik, ezt követi a lencsenyílás és az expozíciós idő b e ­
állítása úgy, hogy a fén y erő a C C D érzék en y ség én ek k ö z ép ta rto m á n y á b a essen. M in d en szám ítógép használ valam ilyen karak terk észletet. E z legalább (az angol) 26
A fehéregyensúly b eállítása a b eeső fény sp e k tru m á n a k m érésével tö rtén ik , hogy nagybetűt, 26 kisbetűt, 0-tól 9-ig a szám jegyeket és egy sor speciális szim bólum ot,
később a szükséges szín k o rrek ció t el lehessen végezni. m int például szóközt, p o n to t, m ínuszjelet, vesszőt és kocsi vissza je le t tartalm azza.
E zu tán a k é p e t a gép a C C D -k rő l leolvassa, és a fén y k ép ező g ép belső R A M -já- A hhoz, hogy a szám ítógép ben táro ln i tu d ju k ezek et a k ara k te re k e t, m in d ­
ban pixelm átrixként táro lja. A fo tó rip o rte re k által h aszn ált legjobb m inőségű digi­ egyikhez hozzá kell ren d eln i egy szám ot: p éld áu l a = 1, b - 2 ,..., z = 26, -I- = 27,
tális tükörreflexes fényképezőgépek nyolc nagy felb o n tású k é p e t tu d n a k készíteni - = 28. A k a ra k te re k szám ok ra tö rté n ő lek ép e zését karakterkódnak nevezzük.
5 m áso d p erc alatt, és körü lb elü l 1 G B m e m ó riá ra van szükségük, hogy a k é p ek e t A lap v ető fontosságú, hogy az egym ással ko m m u n ik áló szám ítógépek ugyanazt a
feldolgozás elő tt ideiglenesen, illetve azu tá n hosszabb id ő re táro lják . A z olcsó k a ­ k ó d o t h asználják, különben n em é rtik m eg egym ást. E z é rt szabványokat dolgoz­
m erák kevesebb, de é p p en elég R A M -ot tartalm azn ak . tak ki. A z aláb b iak b an m egvizsgáljuk a k é t legfontosabbat.
A z exponálás után i fázisban a k a m e ra szoftvere alkalm azza a fehéregyensúly
színkorrekciós b eállításo k at, hogy k o m p en zálja a tárgyról jövő p iro sas vagy kékes
fényt (például árnyékban levő szem ély/tárgy vagy v ak u h aszn álat e setén ). E zu tán ASCII
egy zajcsökkentő alg o ritm u st fu ttat, m ajd egy m ásikat, am ely a h ib ás C C D -k h a tá ­
sát kom penzálja. E zt követőn m egkísérli a k é p e t élesíteni az élek m egkeresésével Széles k ö rb en e lte rje d t kó d az ASCII (American Standard Code fór Information
és k ö rü lö ttü k a fényerőváltozás növelésével (h a ez a funkció nincs letiltva). Interchange, az inform ációcsere amerikai szabványos kódrendszere). M inden
V égül, a k é p e t tö m ö ríten i is leh et, hogy a szükséges tárh e ly e t csö k k en ten i le­ A S C II k a ra k te r 7 bites, vagyis összesen 128 k a ra k te r lehet. A 2.43. áb ra ta rtalm az­
hessen. E lterjed t fo rm á tu m a JPEG (Joint Photographic Experts Group), am ely­ za az A S C II k ó dot. A 0 és I F (hexadecim ális) közötti k ó d o k v ezérlő k arak terek ,
ben kétdim enziós té rb eli F o u rier-tran szfo rm áció t alkalm aznak, és bizonyos m a ­ am elyek n em n y om tathatók.
144 2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E 2,4. B E M EN ET /K IM EN ET 145

Sok A S C II v e z é rlő k arak tert e re d e tile g a d a tá tv itelre szántak. P éld áu l egy ü z e ­


Hexa- Hexa- Hexa- Hexa- Hexa- Hexa-
n et állh at egy S O H (S ta rt o f H e a d e r, fejléc k e z d e te) k a rak terb ő l, fejlécből, az ü ze ­ Karak­ Karak­ Karak­ Karak­ Karak­ Karak­
dec. dec. dec. dec. dec. dec.
ter ter ter ter ter ter,
n e t szövegéből, egy E T X (E n d o f Text, szöveg vége) k ara k te rb ő l, végül egy H O T kód kód kód kód kód kód
(E n d o f Transm ission, átvitel vége) k ara k te rb ő l. A g y ak o rlatb an azo n b an a te le ­ 20 (Szóköz) 30 0 40 @ 50 P 60 70 P
fonvonalakon és h á ló za to k o n k eresztü l k ü ld ö tt ü z e n e te k e t egészen m áshogy állít­ 21 ! 31 1 41 A 51 Q 61 a 71 q
já k össze, így az A SC II v e z é rlő k arak te re k e t m á r n em nagyon használják. 22 " 32 2 42 8 52 R 62 b 72 r
23 # 33 3 43 C 53 S 63 c 73 s
Hexadecimális
Név Jelentés
24 $ 34 4 44 D 54 T 64 d 74 t
kód 25 % 35 5 45 E 55 U 65 e 75 u
0 NUL Null 26 & 36 6 46 F 56 V 66 f 76 V
SOH Start Of Heading (Fejléc kezdete) 27 ' 37 7 47 G 57 w 67 77 w
g
2 STX Start OfText (Szöveg kezdete) 28 ( 38 8 48 H 58 X 68 h 78 X
3 ETX End OfText (Szöveg vége) 29 ) 39 9 49 1 59 Y 69 I 79 y
4 EOT End Of Transmission (Átvitel vége) 2A * 3A : 4A J 5A z 6A 7A
j z
5 ENQ Enquiry (Tudakozódás) 2B + 3B ; 4B K 5B [ 6B k 7B {
6 ACK ACKnowIedgement (Nyugta) 2C , 3C < 4C L 5C \ 6C 1 7C 1
BEL Bell (Csengő) 2D - 3D = 4D M SD 1 6D m 7D }
8 BS BackSpace (Törlés) 2E . 3E > 4E N 5E * 6E n 7E ~
9 HT Horizontal Tab (Vízszintes tabulátor) 2F / 3F 7 4F 0 5F _ 6F 0 7F DEL
LF Line Feed (Soremelés)
B VT Vertical Tab (Függőleges tabulátor) 2.43. ábra. Az ASCII karakterkészlet (folytatás)
C FF Form Feed (Lapdobás)
D CR Carriage Return (Kocsi vissza) A z A S C II n y o m tath ató k ara k te re k egyértelm űek. S zerepelnek közö ttü k az a n ­
E SO Shift Out (Váltókikapcsolás) gol n agybetűk, kisbetűk, szám jegyek, írásjelek és néh án y m atem atik ai szim bólum .
F Shift In (Váltóbekapcsolás)
10 DLE Data Link Escape (Vezérlőkarakter)
11 DC1 Device Control 1 (Eszközvezérlő 1) UNICOD E
12 DC2 Device Control 2 (Eszközvezérlő 2)
13 DC3 Device Control 3 (Eszközvezérlő 3) A szám ító g ép ip ar nagyrészt az E gyesült Á llam okban fejlő d ö tt ki, am i az A S C II
14 DC4 Device Control 4 (Eszközvezérlő 4) k a ra k terk é sz leth ez v ezetett. A z A S C II kiváló az angol nyelvterületen, d e kevésbé
15 NAK Negative ACKnowIedgement (Negatív nyugta) jó m ás nyelvekhez. A fran ciáh o z ék ezetek kellen ek (például systéme); a n é m e t­
16 SYN SYNchronous idie (Szinkronjel) hez d iak ritik us jelek - m ellékjel, hangsúly, ék ezet - kellen ek (például fü r) és így
17 ETB End of Transmission Block (Átviteli blokk vége) tovább. N ém elyik e u ró p a i nyelvben v an n ak olyan b etű k , am elyek hiányoznak az
18 CAN CANcel (Visszavonás) A S C II-ből, m int p éld áu l a n é m e t B és a d á n 0. N éhány nyelvnek teljesen e ltérő
19 EM End of Médium (Adathordozó vége) áb écéje van (például az orosz, az arab ), bizonyos nyelveknek pedig nincs is á b é ­
1A SUB SUBstitute (Helyettesítés) céjük (p é ld á u l a kínai). A hogy a szám ítógépek elte rje d te k a világon, és a szoftver­
1B ESC ESCape (Vezérlőkód) fejlesztők olyan helyeken is el a k a rtá k adni az áru ju k at, ahol a legtöbb felhasználó
IC FS File Separator (Fájlelválasztó) n em b esz é lte az angolt, m ás k a ra k terk észletre volt szükség.
ID GS Group Separator (Csoportelválasztó) A z A S C II kibővítésére te tt első pró b álk o zás az IS 646 volt, am ikor is újabb 128
1E RS Record Separator (Rekordelválasztó) k a ra k te rt a d tak az A S C II-hez, ez a 8 bites Latin-1 kó d volt. A z új k arak terek tö b b ­
1F US Unit Separator (Egységelválasztó) nyire ék ezetek k el és diakritikus jelekkel e llá to tt latin b e tű k voltak. A következő
p ró b álk o zás az IS 8859 volt, am ely b ev ezette a kódlap fogalm át, am i egy 256 k a ­
2.43. ábra. A z ASCII karakterkészlet
ra k te rb ő l álló készlet egy bizonyos nyelv vagy nyelvcsoport szám ára. A z IS 8859-1
a L atin-1. A z IS 8859-2 kezeli a latin alap ú szláv nyelveket (például a cseh, a le n ­
gyel) és a m agyart. A z IS 8859-3 tartalm azza a tö rö k , m áltai, eszperantó, galíciai
146 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e
2.5. ö s s z e f o g l a l á s 147

és m ás nyelvekhez szükséges k a ra k te re k e t. A kódlap o s m egközelítés p ro b lém ája, tin áb écé so rren d b en van, a H an ideogram ok nincsenek ábécé szerint rendezve.
hogy a p ro g ram o k n a k szám o n kell ta rta n iu k , m elyik k ó d lap az aktív, n em le h et E n n e k k övetkezm énye, hogy egy angol p ro g ram áb écéren d b e állíth atja a „ cat” és
k everni a kü lö n b ö ző k ó d lap h o z ta rto z ó k a ra k te re k e t, további p ro b lém a , hogy a ja ­ „d o g ” szavakat az első b etű jü k U N IC O D E -já n a k összehasonlításával. Egy ja p án
p án, valam int a kínai nyelvet teljesen kihagyták. p ro g ra m n a k külső tá b lázato k at kell használnia a n n ak e ld ö n tésére, hogy k ét szim ­
Egy szám ítógép es cégekből álló cso p o rt e lh a tá ro z ta , hogy m eg o ld ja a p ro b lé ­ b ó lu m közül m elyik van előbb az ábécében.
m át, és é le tre hív egy k o n zo rciu m o t egy új ren d szer, a U N IC O D E lé treh o z ásá ra és E gy m ásik p ro b lém a, hogy folyam atosan új szavak jö n n e k létre. Ö tven évvel
nem zetközi szabvánnyá n y ilvánítására (IS 10646). A U N IC O D E -o t m á r tá m o g a t­ e z e lő tt senki sem h aszn álta az ap p let, k ib ertér, gigabájt, lézer, m odem , sm iley és
ja n éhány program o zási nyelv (p éld áu l Jav a), néh án y o p eráció s re n d sz e r (p éld áu l v id e o k a z etta szavakat. A z angolban az új szavak nem igényelnek új kódpozíció­
W indow s X P ) és sok alkalm azás is. V alószínűleg egyre jo b b a n elfo g ad o ttá válik, k at. A ja p á n b a n igen. A z új tech n ik ai szavak m e lle tt igény van legalább 20000 új
ahogy a szám ító g ép ip ar globalizálódik. (fő k én t kín ai) szem ély- és helységnév felvételére. A vakok szerint a R raillc-írás-
A U N IC O D E a la p ö tle te az, hogy m in d en k a rak terh e z és szim bólum hoz egy je le k e t is fel kellene venni, v alam in t különféle é rd e k cso p o rto k is igényt ta rta n a k
állandó, 16 bites é rté k e t kell ren d eln i, am it kódpozíciónak neveznek. N in csen ek a szerin tü k jo g o san nekik já ró kódpozíciókra. A U N IC O D E konzorcium m eg tár­
sokbájtos k a ra k te re k és speciális vezérlő k ó d o k . M egkönnyíti a p ro g ram o k írását, gyalja, és d ö n t az összes új javaslatról.
hogy m in d en szim bólum 16 bites. A U N IC O D E ugyanazt a kódpozíciót használja olyan k a rak terek re, am elyek a
16 bites szim bólum okkal a U N IC O D E 65 536 kódpozícióval ren d elk ezik . M ivel ja p á n b a n és a k ínaiban m ajd n em egyform án n ézn ek ki, de m ást je le n te n e k , vagy
a világ nyelvei együ ttesen k ö rü lb elü l 200 000 szim bólum ot h aszn áln ak , a k ó d p o ­ kicsit k ü lö n b ö ző k ép p e n írják a k ét nyelvben (m in th a az angol szövegszerkesztők
zíciók é rték es kincsek, am ely ek et nagy k ö rü ltek in téssel kell kiosztani. K ö rü lb elü l a „b lu e” h ely ett m indig „blew ”-t jav asolnának, m ivel ugyanúgy kell ő k et kiejteni).
a kódpozíciók fele m á r ki van osztva, és a U N IC O D E k o n zo rciu m fo ly am ato san N ém elyek ezt úgy tekintik, m in t az é rték es kódpozíciókkal való tak arék o sk o d ást;
tekinti át a m a ra d é k felo sztá sára v o n atk o zó jav aslato k at. A U N IC O D E e lfo g ad á­ m áso k szerin t ez az angolszász kulturális im perializm us újabb m egnyilvánulása
sának felgyorsítására tö rek ed v e a k o n zo rciu m a L atin-1 k ó d o k a t bölcsen a 0-tól (van m ég valaki, aki azt gondolja, hogy 16 b ites k ara k te rk ó d o k kiosztása nem p o ­
255-ig te rje d ő k ó d p o zíció k ra helyezte, ezáltal az A S C II és a U N IC O D E közö tti litikai k érd é s?). M ég tovább ro n tja a helyzetet, hogy a teljes ja p á n szó tárb an (a
konverzió könny en elvégezhető. A k ó d p o zíció k clv eszteg etésén ek m eg ak ad ály o ­ n ev ek et n em szám ítva) 50 000 kanji írásjel van, így a H a n ideo g ram o k h o z re n d e l­
zása érd e k é b e n m in d e n d iak ritik u s szim b ó lu m n ak saját kódp o zíció ja van. A szo ft­ kezésre álló 20 992 kódpozíció m ellett k ényelm etlen d ö n té se k e t kell hozni. N em
v er felad ata, hogy k o m b in álja a d iak ritik u s szim b ó lu m o t a szom szédos k a ra k te r­ m in d en ja p á n gondolja úgy, hogy egy szám ítógép es cégekből álló konzorcium
rel, hogy egy ú jab b a t állítson elő. (m ég ha van k ö ztü k néh án y ja p á n is) az ideális fórum ezeknek a d ö n tések n ek a
A kódpozíciók 16-osával b lo k k o k ra v a n n ak osztva. M in d en je le n tő se b b á b é ­ m eg h o zatalára.
cé n éh án y egym ás u tá n i z ó n á t foglal el. N éh án y p éld a (és a lefoglalt k ó dpozíciók
szám a): latin (336), g ö rö g (144), cirill (256), ö rm én y (96), h é b e r (112), devanagari
(128), gurm ukhi (128), oriya (128), telu g u (128) és k a n n a d a (128). Figyeljük m eg,
hogy m indegyik nyelvhez tö b b kód p o zíció t ren d e lte k , m int ahány b etű je van. E z
2.5. Összefoglalás
részben a z ért van, m e rt sok nyelvben egy b e tű n e k tö b b fo rm á ja is van. P éld áu l
az an go lban m in d e n b e tű n e k k ét fo rm ája van - k isb etű és N A G Y B E T Ű . N ém ely A szám ító g épes ren d szerek h áro m féle típusú alk o tó elem b ő l állnak; processzorok,
nyelvben h á ro m vagy tö b b fo rm a is van, esetleg attó l függően, hogy a b e tű a szó m em ó riák és B /K eszközök. A processzor felad ata, hogy az u tasításo k at a m em ó ­
elején, közb en vagy a végén van-e.
riáb ó l eg y en k én t beolvassa, d ek ó d o lja és végrehajtsa. A b etö ltő-dekódoló-végre-
A z ábécéken kívül k ó dpozíciókat re n d e lte k a diakritikus jelek h ez (112), írásjelek­
h a jtó ciklus m indig le írh ató egy algoritm ussal, és v alójában ezt n éh a egy alacso­
hez (112), alsó és felső indexekhez (48), p én zn em ek jeleihez (48), m atem atik ai szim ­
n yabb szin ten fu tó értelm ező pro g ram végzi. A sebesség növelése é rd ek éb en m a
bólum okhoz (256), geom etriai form ákhoz (96) és egyéb érdek es jelek h ez (192).
sok szám ítógép egy vagy tö b b cső vezetéket tartalm az, vagy szuperskaláris felép íté­
E zek u tá n k ö v etk ezn ek a kínai, ja p á n és k o reai nyelvhez szükséges szim bólu­ sű, am elyben több, p árh u zam o san m ű ködő funkcionális egységet találunk.
m ok. E lőször 1024 fo n etik u s szim bólum (p éld áu l a k a ta k a n a és a b o p o m o fo ), E gyre g yakoribbak a tö b b processzort ta rtalm azó ren d szerek . A párhuzam os
m ajd a kínaiban és a ja p á n b a n h aszn ált egy esített H a n id eo g ram o k (20992), végül
szám ító g ép ek k ö zö tt találju k a tö m b p ro cesszo ro k at, am elyekben ugyanazt a m ű­
a k o reai H angul szó tag o k (11156).
v eletet le h e t elvégezni egyszerre több ad ath a lm azo n , a m u ltip ro cesszo ro k at, a m e ­
A felhasználó k k ita lá lh a tn a k speciális k a ra k te re k e t, és saját céljaik ra h asz n ál­
lyekben tö b b C P U egy közös m em ó rián osztozik, és a m ultiszám ítógépeket, am e­
h a tn a k 6400 kódpozíciót.
lyek ü zen etk ü ld éssel kom m unikáló, külön m em óriával ren d elk ező szám ítógépek.
B ár a U N IC O D E a nem zetk ö zi h a szn álattal k ap cso lato s sok p ro b lé m á t m eg ­ A m em ó riák at k ét cso p o rtb a soroljuk: k özponti m em ó ria és h á ttérn iem ó ria. A
old, nem vállalkozik a világ összes p ro b lé m á já n ak m eg o ld ására. P éld áu l, m íg a la ­
k ö zp o n ti m em ó ria táro lja a v ég reh ajtás alatt álló p ro g ram o t. E lérési ideje rövid
148 2. s z á m í t ó g é p r e n d s z e r e k f e l é p í t é s e 2.6. FELA D A T O K 149

- legfeljebb néhányszor tíz n an o szek u n d u m fü ggetlenül az elérn i kívánt cím től. nem m ásolták. A 2.1.6. rész m elyik p árh u zam o s p rocesszorokból álló ren d sze­
A g y orsítótárak m ég tovább c sö k k en th etik az elérési időt. B izonyos m em ó riák a ré re e m lék eztet legjobban a fenti m ódszer?
m egbízhatóság növelése é rd e k é b e n hibajavító kódolással m ű k ö d n ek . 7. A könyvben tárgyalt ötszintű m e m ó riah ierarch iáb an lefelé haladva az elérési
Ezzel e llen tétb en a h á tté rm e m ó riá k elérési ideje sokkal hosszabb (ezred m á- idő növekszik. A djon m eg alap o zo tt becslést az optikai lem ez és a regiszterek
sodperc, esetleg m ég tö b b ), am i függ az olvasni vagy írni kívánt a d a t helyétől. A e lérési id ején ek arányára. F eltételezh etjü k , hogy a lem ez a m eg h ajtó b an van.
szalagok, m ágneslem ezek és optik ai lem ezek a leggyakoribb h átlérm e m ó riá k . A 8. A szociológusok egy k érdőívben feltett tipikus k érd ésre, m int például „H isz-e
m ág neslem ezekn ek sok fajtája van, péld áu l a hajlékonylem ez, a W in ch ester, ID E - ön a fo g tü n d é rb e n ? ” h áro m lehetséges választ k ap h atn ak : igen, nem vagy nem
lem ez, S C S l-lem ez és a R A ID . O p tik ai lem ez a C D -R O M , a C D -R és a D V D . tu d o m . E zt figyelem be véve, a S zociom ágneses Szám ítógépgyár elh atáro zta,
A B/K egységek a rra szolgálnak, hogy a szám ító g ép b ő l a d a to k a t vigyenek ki, hogy szám ítógepet ép ít kérdőívek feldolgozására. E n n ek a szám ítógépnek
illetve a szám ító g ép b e a d a to k a t vigyenek be. A pro cesszo rh o z és a m em ó riáh o z h á ro m á llap o tú m em óriája van - azaz m inden egyes bájt (trá jt? ) 8 trite t ta rta l­
egy vagy több sín segítségével k apcsolódnak. P éld a k é n t e m lítettü k a term in ált, az m az, m in d en egyes trit egy 0, 1 vagy 2 é rté k e t tárol. H ány tritre van szükség
eg eret, a n y o m tató t és a m o d em et. A legtöbb B /K eszköz az A S C II k a ra k terk ó d o t egy 6 b ites szám rep rezen tálásáh o z. A djon m ég egy k ép letet, am ely m egadja
használja, h a b á r a U N IC O D E elfo g ad o ttság a a szám ító g ép ip ar globalizálódásával egy n b ites szám áb rázo lásáh o z szükséges trite k szám át.
egyre gyorsabban növekszik. 9. Szám ítsa ki az em b eri szem adatátviteli k ap acitását a következő inform ációk
segítségével. A látó m ező k örülbelül 10'’ elem ből (pixelből) áll. M inden pixel
re d u k á lh a tó a három alapszín szuperpozíciójára, m in d h áro m 64 k ü lönböző in­
te n z itá sé rté k e t v eh et fel. A feldolgozáshoz 100 m sec áll ren d elk ezésre.
2.6. Feladatok 10. Szám ítsa ki az em beri fül ad atátv iteli k ap acitását a következő inform ációkból.
A z em b eri hallás 22 k H z frekvenciáig terjed. A hhoz, hogy egy 22 kH z-es h an g ­
1. Tekintsük egy olyan gép m ű k ö d ését, am elynek az a d a tú tja a 2.2. á b rá n láth ató . jelb ő l m in d en inform ációt kinyerjünk, a hangból m in tát kell v ennünk a h a tá r­
Tegyük fel, hogy az A L U b em en e ti reg iszterek feltö ltésc 5 ns-o t vesz igénybe, frekvencia kétszeresével, 44 kH z-cel. Egy 16 b ites in ten zitásérték valószínűleg
az A L U 10 ns a la tt végzi el a fe la d atá t, az e red m én y ek reg iszte rek b e tö lté s é ­ elég a leg több h allh ató info rm áció kinyerésére (azaz a fül nem tud 65 535-nél
hez pedig további 5 ns kell. M ennyi a m axim ális M IP S érté k , am it ez a gép cső ­ tö b b in ten zitásszin tet m eg k ü lö n b ö ztetn i).
vezeték nélkül el tu d érn i? 11. M inden élőlény gen etik ai inform ációja D N S -m olekulákban táro ló d ik . Egy
2. Mi a célja a 2.1.2. alfejezet felso ro lásáb an a 2. lép ésn ek ? M i tö rté n n e , ha ezt a D N S -m o lekula a négy alap n u k leo tid {A, C, G és T) lineáris soro zata. A z e m ­
lépést kihagynánk? beri g én állom ány m egközelítőleg 3 x lO** n u k leotidból áll, k ö rülbelül 30000
3. A z 1. szám ító g ép en m in d en u tasítás v ég reh ajtása 10 ns ideig ta rt. A 2. szám í­ gén fo rm ájáb an . M ennyi inform áció van (b itek b en m érve) a teljes g én állo ­
tó g ép en 5 ns-ig. Á llíth atju k -e teljes bizonyossággal, hogy a 2. szám ítógép gyor­ m án y b an ? M ek k o ra egy átlagos gén m axim ális in form ációkapacitása (b itek ­
sabb? F ejtse ki b ővebben. ben m érv e)?
4. Tegyük fel, hogy Ö n te rv ezett egy beágyazott ren d sz e rb e n h asz n á lh a tó egyet­ 12. Egy bizonyos szám ítógépbe 268435456 bájtnyi m em ória teh ető . M iért választ
len lapkából álló szám ító g ép et. A z összes m e m ó ria a p ro cesszo rral együtt a egy gyártó ilyen furcsa szám ot egy olyan könnyen m egjegyezhető helyett, m int
lapkán van, ugyanolyan sebességgel m ű k ö d ik , és az a d a to k elé ré se k o r nincs péld áu l a 250000000?
k ésleltetés. V izsgálja m eg eg y en k én t a 2.1.4. rész tervezési elveit, és d ö n tse cl, 13. Tervezzen egy páros p aritáso s H am m in g -k ó d o t a 0-tól 9-ig te rje d ő szám je­
hogy m ég m indig olyan fo n to sak -e (feltételezv e, hogy a nagy teljesítm ény to ­ gyekhez.
vábbra is kívánatos). 14. Tervezzen a 0 , ..., 9 szám jegyekhez olyan kódolási, am elynek 2 a H am m ing-tá-
5. Egy bizonyos szám ítás e rő se n szekvenciális - vagyis m in d en lép és függ az e lő ­ volsága.
zőtől. Egy tö m b p ro cesszo r vagy egy cső v ezeték et használó p ro cesszo r lenne 15. Egy H am m in g -k ó d o lásb an bizonyos b itek „feleslegesek” abb an az é rte le m ­
m egfelelőbb e h h e z a szám ításh o z? M agyarázza el. ben, hogy ellen ő rzésre használjuk ő k et, és nem in fo rm áció táro lásra. M ennyi
6. A z újo n n an feltalált könyvnyom tatással versenyre kelve, egy k ö zép k o ri k o ­ a felesleges b itek százalékos arán y a azoknál az ü zen etek n él, am elyek teljes
lo sto rb an elh atá ro ztá k , hogy kézzel írt p a p írk ö tésű könyvek tö m eg g y ártásáb a hossza (a d a t -I- ellen ő rző bitek szám a) 2" - 1? Szám ítsa ki a kifejezés é rté k é t 3
fognak úgy, hogy nagyon sok írn o k o t összegyűjtenek egy h ata lm a s terem b e. A és 10 közé e ső /; érték ek re.
fő írn o k h ang o san felolvassa a m áso lan d ó könyv első szavát, am elyet az összes 16. A 2.19. áb rá n láth ató m ág neslem eznek sávonként 1024 szek to ra van, és
írnok leír. E zu tán a fő írn o k felolvassa a m ásodik szót, am elyet az összes írnok 7200 R P M a forgási sebessége. M ennyi a lem ez folyam atosan fe n n ta rth a tó
leír. E zt ism étlik addig, am íg az egész könyvet h an g o san fel n em olvasták, és le ad atá tv iteli sebessége egy sávon belül?
150 2. S Z Á M ÍT Ó G É P R E N D S Z E R E K F E L É P ÍT É S E 2.6. FELA D ATO K 151

17. Egy szám ító g ép n ek 5 ns ciklusidejű sínje van, e n n e k so rá n egy 32 bites szót ron. A n y o m tató to n e rk a z e ttá ja 25 x 8 x 2 cm m éretű . H ány lapot lehet k i­
tud a m em ó riá b a b eírn i vagy o n n an kiolvasni. A szám ító g ép b en van egy nyo m tatn i a to n erk azettáv al?
U ltra4 -S C S I-lem ez, am ely használja a sínt, és 160 M B/s az ad atá tv iteli seb e s­ 29. H a egy p á ra tla n p aritáso s A S C II szöveget egy 56 000 bps sebességű m o d em ­
sége. A C P U n orm ál k ö rü lm én y ek k ö zö tt 10 ns-o n k én t beolvas és v égrehajt mel aszinkron m ó d o n 5600 k arak ter/s sebességgel elküldünk, a v ett bitek hány
egy 32 bites u tasítást. M ennyire lassítja le a lem ez a C P U -t? százaléka a tu lajd o n k ép p en i ad at (a tö ltelék b itek k el szem ben)?
18. Tegyük fel, hogy egy o p eráció s re n d szer lem ezkezelő részét Ö n készíti. 30. A H i-F i M o d em G yár elk észített egy új frekvenciam odulációs m o d em et,
L ogikailag a lem ezt blo k k o k so ro z a ta k é n t rep re z e n tálja, a legbelső blokk a 0-s, am ely 2 helyett 64 frekvenciát használ. M in d en m áso d p erc n egyenlő hosszú­
a többi egyesével növekvő so rszám o k at kap a legkülsőig. A fájlok lé tre h o z á sá ­ ságú in terv allu m ra van osztva, ezek m indegyike a 64 lehetséges h ang egyikét
hoz üres szek to ro k at kell lefoglalni. E zt m eg leh et ten n i kívülről b efelé vagy tartalm azza. Szinkron átviteli m ó d b an hány bitet tud ez a m odem elküldeni
belülről kifelé. L ényeges-e, hogy m elyik m ó d szert választja? Ind o k o lja m eg a m á so d p ercen k én t?
választ. 31. Egy in te rn etfelh aszn áló elő fizetett egy 2 M bps sebességű A D S L -szolgáltatás-
19. M ennyi ideig ta rt egy olyan lem ezt végigolvasni, am elynek 10000 cilindere, ci­ ra. A szom szédja kábeles in te rn e tre fizetett elő, am elynek az o szto tt sávszéles­
lin d eren k én t 4 sávja és sáv o n k én t 2048 szek to ra van? E lő szö r a 0. sáv összes sége 12 M H z. A z alkalm azott m odulációs sém a a Q A M -64. Tegyük fel, h o gy/;
szek to rát kell leolvasni a 0.-től k ezd ő d ő en , aztán az L sáv összes sz ek to rát a 0.- h áz van a k ábelre kötve, és m indegyikben van egy-egy szám ítógép. Egy a d o tt
tól k ezd ő d ő e n és így tovább. A k ö rü lfo rd u lási idő 10 ms, egy szom szédos cilin­ id ő p o n tb an ezeknek a s z á m ító g é p e k n e k /ré s z e online. M ilyen feltételek e se ­
d er m egkeresése 1 ms, a legrosszabb e setb en egy cilin d er m eg k eresése 20 ms. tén kap jo b b szolgáltatást a kábeles in te rn e t előfizetője az A D S L -előfizetővel
Egy cilinder sávjai k ö zö tti váltás időveszteség nélkül m egvalósítható. szem ben?
20. A 3-as szintű R A ID k ép es javítani az egyetlen b ite t é rin tő b ith ib á k a t egy p a ri­ 32. Egy digitális k am era felb o n tása 3000 x 2000 pixel, 3 bájt/pixeles R G B színek­
tásm eg h ajtó segítségével. M i az é rte lm e a 2-es szintű R A ID -n c k ? V égül is, az kel. A k a m era gyártója 5x tö m ö rítéssel szeretn é a flash m em ó riáb a írni a k é ­
is csak egyetlen b itre k iterje d ő h ib ák at tu d javítani, de e h h e z tö b b m eg h ajtó t p e t 2 m áso d p ercen belül. M ilyen ad atátv iteli sebesség szükséges eh h ez?
használ. 33. Egy kiváló m inőségű digitális k am erán ak 16 m illió pixeles érzék elő je van,
21. M ennyi egy 2-es m ó d ú C D -R O M p o n to s k ap acitása (b ájto k b an ), h a a szoká­ m indegyik pixel 3 bájtos. H ány k ép et tud táro ln i egy 1 G B -o s flash m e m ó ria ­
sos 80 percnyi a d at van ra jta ? M ek k o ra a felh aszn áló szám ára e lé rh e tő k ap aci­ kártya, ha a tö m ö rítési tén y ező 5x? Tegyük fel, hogy 1 G B 2™ bájt.
tás az 1-es m ó d b an ? 34. B ecsülje m eg, hogy a szóközöket is beleértv e egy tipikus szám ítástudom ányi
22. Egy C D -R felírásához a lé zern ek nagy sebességgel kell ki-be kapcsolnia. H a tém ájú könyv hány k a ra k te rt tartalm az. H ány b itre van szükség ahhoz, hogy
lOx sebességgel 1-es m ó d b a n dolgozik, m ennyi az im pulzusok hossza nanosze- a könyvet paritással együtt A S C II k ó d b an táro lju k ? H ány C D -R O M -ra van
k u n d u m b an ? szükség ahhoz, hogy egy 10000 k ö tetes szám ítástudom ányi könyvtárat tá ro l­
23. Je le n tő s arányú tö m ö ríté sre van szükség ahhoz, hogy egy egyoldalas, eg y réte­ ju n k ? H ány kétoldalas, k é tré te g ű D V D -re van szükség ugyanehhez?
gű D V D -re ráfé rje n 133 percnyi videofilm . Szám ítsa ki a szükséges tö m ö rítési 35. írjo n egy liam m ing(ascii, encoded) eljárást, am ely az ascii alsó h ét bitjét egy 11
arányt. T ételezze fel, hogy 3,5 G B áll a videofilm ren d elk e z é sére, a k é p fe lb o n ­ bites, kódszóvá alakítja, és az encoded változóba tárolja.
tás 720 X 480 pixel 24 b ite s színekkel, és 30 k é p e t v e títü n k m áso d p ercen k én t. 36. írjo n egy dislance(code, n , k ) függvényt, am ely az n d arab k bites k arak terb ő l
24. A B lu-R ay 4,5 M B/s sebességgel m űk ö d ik és a k apacitása 25 G B . M ennyi id e ­ álló code tö m b ö t dolgozza fel, és e red m én y k én t a k a ra k terh alm az távolságát
ig ta rt elolvasni egy teljes lem ezt? adja vissza.
25. Egy C P U és a hozzá ta rto z ó m em ó ria k ö zö tti átviteli sebesség n ag y ság ren d ek ­
kel nagyobb, m in t a m ech an ik u s B /K átviteli sebesség. M iért ro n tja ez a k i­
egyensúlyozatlanság a h aték o n y ság o t? H ogyan e n y h íth ető a p ro b lém a?
26. Egy gyártó rek lám jáb an azt állítja, hogy színes b itté rk é p e s term in álja 2-'* k ü ­
lönböző színt tu d m eg jelen íten i. A b e re n d e z ésb e n az o n b an m in d en pixelhez
csak 1 b ájt tarto zik . H ogy leh etség es ez?
27. Egy bittérk ép cs term inál felbontása 1600 x 1200. A képernyő m áso d p ercen k én t
75-ször rajzolódik újra. M ilyen hosszú az egyetlen pixelhez tarto zó im pulzus?
28. Egy bizonyos b etű k é sz le tte l egy m o n o k ró m lé ze rn y o m tató egy lap ra 50 sort,
so ro n k é n t 80 k a ra k te rt tu d nyom tatni. Egy átlagos k a ra k te r egy 2 x 2 m m m é ­
re tű négyzetet foglal el, am elynek k ö rü lb elü l 25 % -át a to n e rb ő l szárm azó fes­
ték fedi. A fe n n m a ra d ó rész fe h é re n m arad . A festé k réte g v astagsága 25 m ik­
3.1. K A P U K ÉS BO O LE- A LG EBR A 153

3.1.1. Kapuk
3. A digitális logiica szintje
A digitális ára m k ö r egy olyan áram k ö r, am elyben csak k ét logikai érté k van jelen.
T ipik u san a 0 és 1 volt (V ) közötti jel re p re z e n tá l egy é rté k e t (p éld áu l a bináris
ü-t), és a 2 és 5 volt közötti egy m ásik é rté k e t (p éld áu l a bináris 1-et). E zen a két
in terv allu m o n kívüli feszültségértékek nem m eg en g ed ettek . A pici elek tro m o s
eszközök, am elyeket k ap u k n a k (gates) hívunk, k é té rté k ű je le k k ü lönböző függvé­
nyeit tu d ják kiszám ítani. E zek a k ap u k alkotják azt a hardverbázist, am elyből m in­
d en digitális szám ítógép felépül.
A k ap u k belső m ű k ö d ésén ek részletezése tú lm u ta t e n n ek a könyvnek a te rje ­
d elm én, az eszközszinthez (device level) tartozik, am ely a mi nullás (0.) szintünk
a la tt van. M indezek ellen ére elkalandozunk, hogy egy rövid á tte k in té st adjunk e r­
ről a n em nagyon bonyolult alap m ű k ö d ésrő l. M in d en m o d ern digitális logika vé­
A z 1.2. áb rán láth a tó h ierarch ia alján találjuk a digitális logika szintjét: a szám ító ­ gül is azon a tényen alapul, hogy egy tran zisz to r úgy tud m űködni, m in t egy nagyon
gép ek igazi h ard v eré t. E b b e n a fejezetb en a digitális logikát tö b b szem p o n t szerint gyors b in áris (k étállap o tú ) kapcsoló. A 3.1. (a) áb rán b em u tatu n k egy bipoláris
fogjuk vizsgálni. E z egy alap o zó blokk a m ag asab b szintek tanulm ányozásához, tra n zisz to rt (a kör), am ely be van ágyazva egy egyszerű áram k ö rb e. A tran zisz to r­
am elyeket a későbbi fejezetek b en fogunk tárgyalni. A té m a a szám ítástu d o m án y n ak h áro m kayjcsolata van a külvilággal: a kollektor, a bázis és az emitter. A m ikor
és a villam osm érn ö k i m u n k a h a tá rá n van, de mivel az anyag ö n m ag áb an is é rth e ­ a b e m en ő feszültség, bizonyos érté k a la tt van, a tran ziszto r zá rt állap o tb an van,
tő, k ö vetéséhez n em szükséges elő ze tes h ard v er vagy m érn ö k i tap asztalat. és úgy viselkedik, m int egy végtelen ellenállás. E z azt okozza, hogy az á ram k ö r
A z alapelem ek , am elyekből m in d en digitális szám ítógép felépül, m eg lep ő en o u tp u tja. közel van a érték éh ez, am i egy külsőleg vezérelt feszültség, tip ik u ­
egyszerűek. V izsgálatainkat azzal kezdjük, hogy b em u tatju k e z ek e t az a la p e le m e ­ san -f-5 volt az ilyen típusú tranzisztornál. A m ik o r 1/_ m eghaladja a kritikus é rté ­
ket, to vábbá egy speciális k é té rté k ű a lg e b rá t (B o o le-alg eb rát) is, am ely et az a la p ­ ket, a tran zisz to r kinyit, és úgy viselkedik, m in t egy vezeték, és ez azt eredm ényezi,
elem ek elem zésére h asználunk. E z u tá n m egvizsgálunk n é h án y a lap v e tő á ra m k ö rt hogy a Fy-t lehúzza a földhöz (lecsökkenti a m eg állapodás szerinti 0 voltra).
(kap u), m elyek egyszerű kom binációjával további á ra m k ö rö k e t tu d u n k felépíteni; N agyon fo n to s dolog m egjegyezni, hogy am ikor a alacsony, ak k o r a m a­
olyan ára m k ö rö k e t is, am elyekkel aritm etik ai m ű v eletek et h a jth a tu n k végre. A gas, és fordítva. E z az á ram k ö r így egy fordító (in v erte r), am ely a logikai 0-t logi­
következő fejezet arró l szól, hogy m ilyen m ó d o n k o m b in álh atju k a k a p u k a t in fo r­ kai 1-gyé k o nvertálja, és a logikai 1-et pedig logikai 0-vá. A z ellenállás (a cikcak-
m ációtárolás céljából, azaz hogyan é p ü l fel a m em ó ria. E z t k ö v ető en a központi
egységek té m á já t tárgyaljuk, és főleg azt elem ezzük, hogy hogyan k ap cso ló d n ak +Vcc
össze az egylapkás k ö zp o n ti egységek a m em óriával és a p erifériális eszközökkel.
A fejezet végén szám os p é ld á t m u ta tu n k be az ip ari alkalm azásokból. +Vcc
+Vc

3.1. Kapukés Boole-algebra


D igitális ára m k ö rö k e t k é szíth etü n k n éh án y nagyon egyszerű elem külö n b ö ző
kom binálásával. A k ö v etk ező részek b en e zek et az ala p e le m e k e t írjuk le, és m eg ­
m utatjuk, hogyan k o m b in álh ato k , valam in t b ev ezetü n k egy h aték o n y m atem atik ai
technikát, am elyet viselk ed ésü k elem zésére használunk.

(a) (b)

3.1. ábra. (a) Tranzisztoros fordító [inverter, nem, (n ő t) k.apu], (b) nem-és (n an d ) l<apu.
(c) NtM-VAGY (nOR) l<apU
154 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.1. K A P U K É S B O G LE- A LG E BR A 155

kos vonal jelzi) a zért szükséges, hogy b e h a tá ro lja az á ram m ennyiségét, am elyet a A 3.2. áb rán szerep lő öt k ap u ad ja a digitális logika szintjének alapvető é p ítő ­
tranzisztor levezet, hogy ne égjen ki. Ar. egyik á llap o tb ó l a m ásik á llap o tb a szüksé­ elem eit. A z eddigi tárgyalásból világos, hogy a n u m - é s és a n e m - v a ü y kapuk két
ges kapcsolási idő tipikusan n éh án y n an o szek u n d u m . tran z isz to rt igényelnek, míg az És és a v a g y k apuk egyenként hárm at. E zen okból
A 3.1, (b) áb rán k é t tran zisz to r van egym ás u tán so rb a kötve. H a és is m a ­ sok szám ítógép inkább a n e m - é s és n e m - v a g y k ap u k ra alapozódik, és nem a jo b b an
gas, m in d k ét tran zisz to r vezetni fog, és alacsony lesz. H a valam elyik b e m e n e t ism ert És és v a g y k apukra. (A gyakorlatban m inden kapu m egvalósítható k ü lön­
alacsony, a m egfelelő tran zisz to r zárva lesz, a k im en et ped ig m agas. M ás szavak­ b ö ző m ó d o n , de a n e m - é s és a n e m - v a g y k apuk egyszerűbbek, m int az És és \ a g y
kal; a akkor és csak a k k o r lesz alacsony, ha m ind a F ,, m ind a m agas. kap u k .) M ellékesen é rd em es m egjegyeznünk, hogy a k apuknak több m int két be-
A 3.1. (c) áb ra k ét tranzisztor párhuzam os kapcsolását tartalm azza a soros helyett. m e n e te is lehet. Például a n e m - é s k ap u n ak tet.szőlegesen sok b em en e te lehet, de a
E bben a felépítésben, ha valam elyik b em en e t m agas, akkor a m egfelelő tranzisztor gyako rlatb an nyolcnál tö b b nem használatos.
vezet, és a k im en etet földeli. H a a k ét b em en et alacsony, a k im en et m agas m arad. B ár an n ak a részletei, hogy hogyan építik m eg a k apukat, az eszközszinthez
Ez a három ára m k ö r vagy azo n o s m egfelelőik (ekvivalenseik) alkotják a h áro m tarto zik , m egem lítünk két fő gyártási technológiai családot, am elyekre a leggyak­
legegyszerűbb kap u t. N evük ren d re ; n i;m ( n ő t ) , n e m - é s ( \ a n d ) és n i í m - v a g y ( n o r ) rab b an hivatkoznak. A két fő technológia a bipoláris és a M O S (M etál Oxide
kapu. A NUM k a p u k a t gyakran hívjuk invertereknek (fordítók); a két m eg n ev e­ Sem iconductor) fém -oxid félvezetős. A bip o láris tech n o ló g ia fő típusa a TTL
zést felcserélh ető m ó d o n fogjuk használni. H a bevezetjük azt a konvenciót, hogy (Tk-ansistor-Transistor Logic) tranzisztor-tranzisztor logika, am ely évek ó ta az
a „m agas” a logikai 1, és az „alacsony” (fö ld ) a logikai 0, a k im en et é rté k é t egyik fő hordozója, „m unkalova” a digitális elek tro n ik án ak , és az ECL (Emitter-
a b em en e ti érté k e k egy függvényeként fejezh etjü k ki. A h áro m k ap u leírásáh o z Coupled Logic) em itter csatolású logika, am elyet akkor használnak, ha nagyon
használt szim bó lu m o k at a 3.2. (a )-(c ) áb rák m u ta tjá k az egyes ára m k ö rö k m ű ­ nagy sebességű m űveletek v ég reh ajtására van szükség. A M O S -technológiát m a­
ködésével együtt. E zeken az á b rá k o n /I és fí a b e m e n e t, X a kim en et. M in d en sor napság széles körb en használják szám ítógépes áram k ö rö k b en .
m eg h atáro zza a k im e n e te t a b e m e n e te k egy-egy kom b in áció jára. A M O S -kapuk lassabbak, m int a T T L és az E C L , de kevesebb á ra m o t igényel­
nek, és kevesebb helyet foglalnak cl, és ezért sokkal nagyobb szám ú elem ra k ­
NEM (NŐT) NEM-ÉS (NAND) NEM-VAGY (NOR) ÉS (AND) VAGY (OR) h ató szorosan egym ás m ellé. A M O S -nak nagyon sok v áltozata van, beleértve a
A A P M O S -t, az N M O S -t és a C M O S-t. B ár a M O S -tran ziszto ro k at a bipoláris tra n ­
zisztoroktól e lté rő m ód o n készítik, az elek tro n ik ai kapcsolási képességük azo ­
> -
nos. A legt()bb m o d ern kö zp o n ti egység és m em ória C M O S -technológiát használ,
am ely -1-3,3 volt feszültséget igényel. Ez az összes, am it el szerettü n k volna m o n ­
A X A B X A B X A B X A B X dani az eszközszintről. (További tanulm ányozásht)z lásd 9. fejezet; A jánlott olvas­
0 1 0 0 1 0 0 1 0 0 0 0 0 0 m ányok és irodalom jegyzék.)
1 0 0 1 1 0 1 0 0 1 0 0 1 1
1 0 1 1 0 0 1 0 0 1 0 1
1 1 0 1 1 0 1 1 1 1 1 1 3.1.2. Boole-algebra
(a) (b) (c ) (d ) (e)
A k ap u k k o m binációjából felép íth ető áram k ö rö k leírásához egy új típusú algeb­
3.2. ábra. Az öt alapkapu szimbóluma és működése ra szükséges, am elynek változói és függvényei csak a 0 és 1 é rté k e t vehetik fel.
Egy ilyen alg eb rát Boole-algebrának hívnak, felfedezőjéről, G eo rg e B oole ( 1S15-
H a a 3.1. (b) áb ra kim en ő je lé t bevezetjük egy invertáló áram k ö rb e, egy m á­ 1864) angol m atem atik u sró l elnevezve. P o n to sab b an szólva a B oole-algebra egy
sik áram k ö rt kapunk, am ely p o n to san az ellenkezője a n i ; m - é s kap u n ak - azaz egy specifikus típ u sára, a kapcsolóalgebrára (switching algebra) fogunk hivatkozni,
olyan áram k ö r, am elynek a k im en ete ak k o r és csak a k k o r 1, h a m in d k ét b em en e - de a B o o le-algebra kifejezés olyan széles körben h asználatos kapcsolóalgebra je ­
te 1. Egy ilyen ára m k ö rt És ( a n d ) k ap u n ak hívunk, szim bólum át és m ű k ö d ését a lentéssel, hogy e b b en n em teszü n k különbséget.
3.2. (d) áb rán ad ju k m eg. H aso n ló an , ha a n i . m - v a g y k a p u t összekötjük egy inver- C sakúgy, m int a „hagyom ányos” alg eb ráb an (azaz a középiskolai alg ebrában)
terrel, egy olyan á ra m k ö rt k apunk, ahol a k im en et ak k o r 1, h a legalább az egyik b e ­ függvényeket értelm ezü n k . A Boole-függi'ények/u’k egy vagy tö b b b em en e ti válto­
m en et 1, és 0, ha m in d k ét b e m e n e t 0. E n n ek az áram k ö rn ek , am elyet v a g y ( o r ) k a ­ zója van, és egy ered m én y t szolgáltat, am ely csak e változók é rté k é tő l függ. Egy
p u n ak hívunk, a szim bólum a és m űködése a 3.2. (e) áb rán találh ató . A kis köröket, egyszerű /fü g g v é n y t, úgy d efiniálhatunk, hogy m egm ondjuk; / (A ) \ , h a A 0 és f
am elyeket a szim bólum ok részek én t h asználunk az in v erter jelö lésé re a n í m - é s és a ( A) 0, h i\A 1. Ez a függvény a 3.2. (a) áb ra n e:m függvénye.
NEM-VAOY kapuknál, inverziós göm böknek (inversion bubbles) nevezzük. G yakran M ivel az n változós B oole-függvény változóinak csak 2" lehetséges kom bináció­
használjuk ezeket m ás kö rn y ezetb en is, egy ellen k ező jére v álto tt jel jelö lésére. ja van, a függvényt teljesen leírhatjuk egy 2” sorral ren d elk ező táb lázattal, ahol
156 3. A D IG IT Á LIS LO G IK A S Z IN T JE 3.1. K A P U K ÉS BO O LE- A LG EBR A 157

egy-egy sor m eg m o n d ja a b em e n e ti é rté k e k a d o tt k o m binációja m ellett a függ­ A hh oz, hogy m egértsük, h o n n an e red a m ásik jelölés, vegyük észre, -hogy b á r­
vény é rték ét. E zt a tá b lá z a to t i g a z s á g t á b l á z a t n a k ( t r u t h t a b l e ) nevezzük. A 3.2. m ely B oole-kifcjezes m eg h atáro zh ató , h a m egm ondjuk, hogy a b e m e n ő változók
áb ra m inden tá b lá z a ta igazságtáblázat. H a m egegyezünk ab b an , hogy egy igazság­ m ely k o m binációi a d n ak 1-es k im en eti é rték et. A 3.3. (a) á b ra függvénye a v álto ­
táb lázat so rait m indig n u m erik u s (2-es alap ú ) sz á m so rren d b en ad ju k m eg, azaz a zók négy b e m en e ti k o m binációjára ad M -re 1 érté k e t. M egállapodás szerint egy
két változónál a so rren d 00, 01, 10 és 11, a k k o r a függvényt teljesen leírh atju k egy b em e n e ti változó fölé felülvonást helyezünk, ha jelezn i akarjuk, hogy az érték e in ­
2" bit hosszú bin áris szám m al, am ely et az igazságtáblázat ered m én y o szlo p át füg­ v ertált. A felülvonás hiánya azt jelen ti, hogy nem invertált. Im plicit jelölésű szo r­
gőlegesen olvasva k ap u n k m eg. Ez a n e m - é s - u c I 1110, a N E M -V A G Y -n ál 1000, az És- zást vagy egy p o n to t használunk a B oole ÉS (A N D , logikai szorzás) ^s -f-t a Boole
nél 0001 és a VAOV-nál 0111. N yilvánvaló, hogy két v álto zó n ak csak 16 B oole-függ- VAGY (O R , logikai összeadás) függvény jelö lésére. így p éld áu l a z /l S C azt jelenti,
vénye létezik, am elyek m eg feleln ek a 16 leh etség es 4 b it hosszúságú ered m é n y ­ hogy en n ek az é rté k e csak akkor 1, h a ^ = 1, B = 0 és C = 1. U gyanígy/!/? -i- B C
sorozatoknak. E zzel e lle n té tb e n a hagyom ányos alg eb ra v égtelen sok kétváltozós csak a k k o r 1, h a (/í = 1 és ö - 0) vagy {B - 1 é ^ C = 0)^ A 3.3. (a) áb rán ak négy
függvényt tartalm az, ezek egyike sem írh a tó le az összes b e m e n e th e z ta rto z ó igaz­ so ra ered m én y ez 1-es b ite t a k im en eten : A B C , A B C , A B C és A B C . A z M függvény
ságtáblázattal, m e rt m indegyik v álto zó n ak v égtelen sok leh etség es é rté k e van. igaz (azaz 1 érté k ű ), ha a négy e se t valam elyike igaz; így felírhatjuk, hogy
A 3.3. (a) áb ra m u tatja egy három változós Boole-függvény igazságtáblázatát:
M C). Ez a függvény a többségi logikai függvény, azaz 0-val egyenlő, ha M = ABC + ABC + ABC + ABC
a b em en e tek többsége 0, és 1, ha a b em en e tek többsége 1. B ár tetszőleges B oole-
függvényt m eg ad h a tu n k az igazságtáblázatával, a változók szám án ak n ö v ek ed ésé­ am i az igazságtáblázat egy tö m ö r form ája. A z n változós függvényt úgy tudjuk le­
vel ez a jelölés egyre k én yelm etlenebb. E hely ett gyakran m ás jelö lést alkalm aznak. írni, m in t legfeljebb 2" d a ra b n változós (logikai) szorzat (logikai) összegét. A hogy
rövidesen látn i fogjuk ez a form ula külö n ö sen a z ért fontos, m ert közvetlenül m eg­
A B C A B C m u tatja, hogy való síth ató m eg a függvény szabványos k ap u k használatával.
F ontos, hogy ne felejtsük cl a k ülönbséget az ab sztrak t B oole-függvény és az
e lek tro n ik u s á ra m k ö rre l tö rté n ő m egvalósítása között. A B oole-függvény v álto ­
zókból, m in t/l, B és C, és B o o le-m űveletekből áll, m in t És, v a g y és n e m . A B oole-
függvényeket igazságtáblázattal vagy olyan B oole-kifejezésekkel írh atju k le, m int
p éld áu l

F = ABC + ABC

E gy B oole-függvényt m eg v alósíthatunk elek tro n ik u s áram kcirrel (gyakran k ü lön­


b ö ző m ó d o k o n is), h a a b em e n ő és k im en ő v áltozókat elek tro m o s jelekkel re p ­
rezen tálju k , a m ű v eletek et pedig kapukkal, m int az És, v a g y és n e m . Á ltaláb an az
É S, VAGY és N E M jelö lések et használjuk, am ikor a B o o le -o p eráto ro k ra, és az És,
v a g y és NEM jelö lések et, h a a k ap u k ra gondolunk, de ez gyakran elég bizonytalan.

A -M
B c M
0 0 0 0
0 0 1 0 3.1.3. A Boole-függvények megvalósítása
0 1 0 0
0 1 1 1
A hogy az előbb em lítettü k , a B oole-függvény szorzatok legfeljebb 2" tagú ösz-
1 0 0
szegével tö rté n ő leírása közvetlenül elvezet egy leh etség es m egvalósításhoz. A
0
1
3.3. á b rá t használva p éld ak é n t, láth atju k , hogyan h a jth a tó végre a m egvalósítás. A
0 1 1
3.3. (b) áb rán az A , B é s C b e m e n e te k e t a bal .szélen, a kim eneti függvényt, M -et, a
1 1 0 1
jo b b szélen áb rázoltuk. M ivel szükségünk van a b e m en e ti változók invertált é rté ­
1 1 1 1
k ére (k o m p lem en sére), a b e m e n e te k elágaztatásával, az 1-gycl, 2-vel és 3-m al je l­
(a) ze tt in v erteren áteresztv e előállítjuk ezeket. A n n ak é rd ek éb en , hogy n e legyen z a ­
varos az áb ra, b erajzo ltu n k h a t függőleges vonalat, am elyből h áro m össze van k ö t­
3.3. ábra. (a) A háromváltozós többségi függvény igazságtáblázata, (bj Áramkör (a) ve a b em e n e ti változókkal, a m ásik h áro m ezek kom plem enseivel. E zek a vonalak
megvalósítására
158 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.1. K A P U K É S B O O LE- A LG E BR A 159

szolgáltatják a b cm e n c te k e t a k ap u k szám ára. P éldául az 5, 6, 7 k ap u k m indegyike 4. K apcsoljuk össze az t s k ap u k at a m egfelelő b em en etek k el.
használja/4-t b em e n e tk én t. Egy tényleges á ra m k ö rb e n ezek a k ap u k valószínűleg 5. A z összes És kapu k im en etét tápláljuk be egy v a g y kapuba.
közvetlenül hozzá vannak k ö tv e /1 -h o z anélkül, hogy közbülső „függőleges” veze­
ték et használnának. B ár m eg m u tattu k , hogyan leh et bárm ilyen B oole-függvényt m egvalósítani n i.m ,
A z áram k ö r négy És k a p u t tartalm az, az M függvény m in d en tag jáh o z egyet (az ÉS és VAGY k apukkal, gyakran kényelm esebb az á ram k ö rö k et csak egyfajta k a p u ­
igazságtáblázat m inden olyan so ráh o z, ahol 1-es b it van az e red m én y o szlo p b an ). val m egvalósítani. S zerencsére egyszerű m ódja van annak, hogy az előző alg o rit­
M inden i' s kapu kiszáinolja az igazságtáblázatnak egy so rát, ahogy jeleztü k . V égül m us által lé tre h o z o tt á ram k ö rt átalak ítsu k tisztán n h m - é s vagy tisztán n l m - v a g y
a szorzatok ered m én y ei V A O V -O lá s ra kerülnek, és ez ad ja a végeredm ényt. form ájúvá. A h h o z hogy m egtegyünk egy ilyen átalak ítást, csak a rra van szükség,
A 3.3. (b) áb rán lá th a tó ára m k ö r egy olyan m eg állap o d ást használ, am elyre hogy a N EM , És és v a g y k ap u t egyetlen k ap u típ u s felhasználásával valósítsuk meg.
többször szükségünk lesz az egész könyvben; am ik o r k é t vonal m etszi egym ást, A 3.4. áb ra felső sora m u tatja, hogyan v alósíthatjuk m eg m in d h áro m k ap u t csak
nincs kapcsolat k özöttük, hacsak egy nagy p o n t n em jelzi ezt a keresztező d ésb en . N EM -ÉS kapukkal; az alsó sor m u tatja, hogyan teh etjü k m eg csak n e m - v a g y kapukat
P éldául a 3-as kap u k im en ete k eresztezi m ind a h a t függőleges v o n alat, de csak a használva. (E z így egyszerű, de m ás m ód is lehetséges.)
C -hoz csatlakozik. L együnk óvatosak, m ert .sok szerző m ás jelö lést használ. A B oole-függvények m egvalósításának egyik m ódja, ha csak n e m - é s vagy csak
A 3.3. áb rán m e g a d o tt p é ld áb ó l világosnak kell lennie, hogy m ik én t v aló síth ató n e m - v a g y k a p u t a k aru n k használni, hogy először a fenti m egvalósítási lépéseket
m eg áram k ö rrel bárm ilyen Boole-függvény; végezzük el n e m , é s és v a g y kapukkal. E zu tán cseréljük ki a többszörös b e m e n e t­
tel ren d e lk e ző k a p u k at k é t b e m e n e tű kapukból álló ekvivalens áram körökkel.
1. írjuk fel a függvény ig azságtáblázatát. P éldául; .4 + B + C + D-{ kiszám íthatjuk, m int {A + B ) + {C + D ) úgy, hogy h á ­
2. B iztosítsunk n e m k a p u k a t m in d en b e m e n e t k o m p lem e n sén e k elő állításához. ro m d a ra b k c tb e m e n e te s v a g y k ap u t használunk. V égül a n e m , é s és v a g y k ap u k at
3. R ajzoljunk És k a p u t m in d en sorhoz, am elynek az e re d m én y o szlo p áb an 1 van. k icseréljük a 3.4. á b ra áram köreivel.
B ár ez az eljárás n em vezet optim ális á ram k ö rh ö z abb an az értelem b en , hogy
m inim ális szám ú k a p u t használjon, de az k im u tath ató , hogy ez a m egoldás m in­
dig m egvaló sítható. A n e m - é s és a n e m - v a g y k ap u k ró l azt m ondjuk, hogy teljesek
(com plete), m e rt bárm ely Boole-függvény kiszám ítható ezek b árm elyikének kizáró­
lagos felhasználásával. M ás k ap u n ak nincs m eg ez a tulajdonsága, am i m iatt gyak­
ra n előnyben részesítik ezek et az áram k ö ri blokkok tervezésénél.

(a)
3.1.4. Áramköri ekvivalencia

A h áló zatterv ező k gyakran p ró b álják csök k en ten i term ék eik b en a k ap u k szám át,
A---------- hogy csö k k en tsék az alk atrészek árát, a n y o m tato tt áram k ö ri lap nagyságát, az
B- áram fogyasztást és így tovább. A z ára m k ö r b onyolultságának csökkentéséhez, a
terv ező k n ek találni kell egy olyan áram k ö rt, am ely ugyanazt a függvényt szám olja
C D ^ ki, m int az e re d e ti, de kevesebb k ap u b ó l áll (vagy egyszerűbb k apukból, például
k é tb e m e n e te s k apukból a négy b em en etesek h elyett). A z ekvivalens áram k ö rö k
k ere sé séb e n a B oole-alg eb ra nagyon é rték es eszköz.
A B oole-algebra felhasználására p éldaként tekintsük a 3.5. (a) áb rán b em u tato tt
AB A- A B + A C áram k ö rt és igazságtáblázatot. B ár m ég nem tárgyaltuk, de a hagyom ányos
algebra nagyon sok szabályát m egtartja a B oole-algebra is. Speciálisan, az A B -l- A C
a disztribúciós szabály használatával f e lír h a tó /í( ő + C) alakban is. A 3.5. (b) ábra
m u tatja az A {B 4- C ) áram k ö rét és igazságtáblázatát. M ivel két függvény akkor és
(b) csak ak k o r ekvivalens, ha az összes lehetséges b em en etre a két függvény ugyanazt a
(0
k im en etet adja; nagyon egyszerűen ellenőrizhetjük a 3.5. á b ra igazságtáblázataiból,
3.4. ábra. (a) nem, (b) es, (c) vagy kapuk csak nem-és vagy csak nem-vagy kapukkal történő hog y / í (5 -I- C) ekvivalens / i f i -I- A C -vc\. A z ekvivalencia ellen ére világosan látható,
megvalósítása hogy a 3.5. (b) áram k ö r jobb, m int a 3.5. (a), m ert kevesebb k ap u t tartalm az.
3,1. K A P U K ÉS BO O LE- A LG EBR A 161
160 3. A DIG ITÁ LIS LO G IK A SZ IN T JE

AB A +B A +B AB

>
A(B + C) > = r> - >
(a) (b)

AB A +B A +B AB
AB AC AB + AC B B +C A(B + C)

> >
(0 (d )

3.7. ábra. Néhány kapu alternatív jelölése: (a) nem-és. (bj nem-vagy. (ej és. (dj vagy

tásával. A D e M organ-szabály, az abszorpciós szabály és a disztribúciós szabály


ÉS fo rm ája kivételével az ered m én y ek m eg leh ető sen in tu itívek. A ^D e M or^an-
szahályt k iterjeszth etjü k több m int k ét v álto zó ra is, p éld áu l A B C - A + B + C.
A D e M organ-szabály egy altern atív jelölést sugall. A 3.7. (a) áb ra az É S alakot
m u tatja, a n eg áció t inverziós göm b jelöli m ind a b e m en e ten , m ind a k im en eten . így
egy VAGY k ap u invertált b em e n e tte l ekvivalens egy n e m - é s kapuval. A 3.7. (b) á b rá ­
(a) (b)
ból, a D e M organ-szabály duál form ájából világos, hogy egy n e m - v a g y k ap u m eg­
3.5. ábra. Két ekvivalens függvény. (a)A B + AC. (b)A(B + C) rajzo lh ató egy invertált b em en e tek k el ren d elk ező És kapuval. A D e M organ-sza-
bály m in d k ét fo rm áján ak negálásával ju tu n k el a 3.7. (c) és (d) ábrához, am elyek
Á ltaláb an az áram k ö rte rv e ző k B oole-függvénnyel k ezd en ek , és aztán alk alm az­ az És és VAGY kapuk ekvivalens re p rezen táció it m u tatják . A nalóg szim bólum ok lé­
zák a B oole-alg eb ra szabályait, és p ró b á ln a k egyszerűbb, de ekvivalens függvényt tezn e k a D e M organ-szabály többváltozós fo rm áira (például e g y /; b e m e n e tte l re n ­
találni. A végleges fo rm áb ó l a zu tá n lé treh o zzák az áram k ö rt. d elk ező N EM -ÉS k apuból egy a; invertált b em e n e tte l ren d elk ező v a g y kapu lesz).
A hhoz, hogy ezt a m eg k ö ze lítést használjuk, szükségünk van a B o o le-alg eb ra A 3.7. á b ra azonosságait és a haso n ló több b e m e n e tű k ap u k a t használva köny-
néhány azonosság ára. A 3.6. á b ra m u ta tja a leg fo n to sab b a k at. É rd e k e s m egje- nyű átala k ítan i egy igazságtáblázat összeg-szorzat áb rázo lását tisztán n e m - é s vagy
^ e z n i , hogy m in d en szabálynak k ét fo rm á ja van, am elyek egym ásnak d u áljai. A z tisztán NEM-VAGY form ájúvá. P éld a k é n t tekintsük a 3.8. (a) á b ra K IZ Á R Ó -V A G Y
É S és VAGY, valam in t a 0 és az 1 egyidejű cseréjével bárm elyik fo rm a elő állíth a tó (E X C L U S IV E O R , X O R ) függvényét. A szabvány szorzat-összeg á ram k ö rt a
a duálisából. A z összes szabály könn y en b izo n y íth ató ig azság táb lázatu k m egalko- 3.8. (b) á b ra m u tatja. A zért, hogy n e m - é s form ájúvá konvertáljuk, a vonalakat,
am elyek az És k ap u k k im e n e té t kötik össze a v a g y k ap u k bem en etév el, ú jra kell
Név ÉS forma OR forma rajzolni k ét inverziós göm bbel, ahogy a 3.8. (c) á b ra m utatja. V égül a 3.7. (a) áb ­
Identitásszabály 1A = A 0 +A = A rá t használva elju tu n k a 3.8. (d) ábrához. A z /í és fi v á lto z ó k a t^ és fi-ből n e m - é s
Nullszabály 0A = 0 1 +A= 1 és NEM -VAGY kapukkal úgy g en erálh atju k , hogy a b e m e n e te k e t összekötjük.
idempotens szabály AA = A A +A = A M egjegyezzük, hogy az inverziós göm bök o d a m o zd íth ató k a v onalak m en tén ,
Inverz szabály AA = 0 A + Á= 1 ahova ak arju k, p éld áu l a 3.8. (d) áb ra b e m en e ti k ap u in ak k im en eteirő l elm o zd ít­
Kommutatív szabály AB = BA A+B=B+A h atju k a k im en eti k ap u b em en etelh ez.
Asszociatív szabály (AB)C = A(BC) (A + B) + C = A + (B + C)
V ég ezetü l az áram k ö ri ekvivalenciával k ap cso latb an egy m eglepő ered m én y t
Disztribúciós szabály A + BC = (A + B)(A + C) A(B + C) = AB + AC
fo g u n k b em u tatn i, m ely szerin t azonos fizikai kapukkal kü lö n b ö ző függvényt tu ­
Abszorpciós szabály A(A + B) = A A +AB = A d u n k kiszám olni, attó l függően, hogy m ilyen konvenciót használunk. A 3.9. (a)
De Morqan-szabály ÁB = Á + B A+B=AB
áb rá n b e m u tatju k egy bizonyos F k ap u k im e n e té t k ü lönböző b e m en e ti k o m b in á­
ciókkal. M ind a b e m e n e te l, m ind a k im e n e te t feszültségben (volt) adjuk m eg. H a
3.6. ábra. A Boole-algebra néhány azonossága azt a konven ciót használjuk, hogy a 0 volt logikai 0-nak és a 3,3 volt vagy az 5 volt
3. A DIG ITÁ LIS LO G IK A SZ IN T JE 3.2, ALAPVETŐ DIGITÁLIS LOGIKAI ÁRAMKÖRÖK 163
162

3.2. A la p v e tő d ig itá lis lo g ik a i ára m k ö rö k


A B XOR

0 0 0 A z előző szakaszokban m eg m u tattu k , hogyan valósítjuk m eg az igazságtáblázato­


kat és m ás egyszerű á ram k ö rö k et egyedi k ap u k használatával. M o stan áb an a gya­
0 1 1
k o rla tb a n kevés ára m k ö rt alak ítan ak ki kapu alapon, b á r valam ikor ez volt az ál­
1 0 1 talános, N ap jain k b an a szokásos építő b lo k k o k a m odulok, am elyek szám os kaput
1 1 0 tartalm a zn a k . A következő szakaszokban m egvizsgáljuk e zek et az ép ítő b lo k k o k at
kö zeleb b rő l, m egnézzük, hogyan használják őket, és hogyan szerkeszthetők m eg
(a) (b) egyedi kapukból.

3.2.1. Integrált áramkörök


>1 > n A k a p u k a t nem egyedileg gyártják és árulják, h an em egységekben, ún. integrált
áram körökben, am elyeket IC -knek (Integrated C ircuits) vagy lapkáknak (chips)
hívnak. Egy IC k örülb elül egy 5 x 5 m m -es négyzetes szilícium darab, am elyen n é ­
hány k a p u t helyeznek el. A kis IC -ket szokásosan egy derékszögű m űanyag vagy
k erám iala p o n (to k b an ) helyezik el, am ely 5 -1 5 m m széles és 2 0 -5 0 m m hosszú. A
hosszú élek m en tén 5 m m hosszú lábaknak k ét p árh u zam o s sora van, am ely b e ­
(C) (d) h ely ez h ető egy foglalatba, vagy n y o m tato tt áram k ö ri tá b lára fo rraszth ató . M inden
láb egy-egy k ap u n ak a b e m e n e te vagy k im en ete, vagy áram , vagy pedig föld b e m e ­
3.8. ábra. (a) KizÁRó-may (x o r) függvény igazságtáblázata, (b)-(d) Három áramkör ezen függvény n et. A kívül kétsoros lábazást és a belső in teg rált áram k ö rt együtt D IP -n ek (Dual
kiszámítására Inlinc Packages, kétlábsoros tokozás) nevezik, de m indenki lap k án ak (chipnek)
hívja, elkenve a kü lö n b ség et a szilícium darab és a tokozása között. A legtöbb is­
a logikai 1-nek felel m eg, ezt pozitív lo g ik án ak hívjuk, és a 3.9. (b) áb rán lá th a tó m e rt to k o zásn ak 14,16, 18, 20, 22, 24, 28, 4 0 ,6 4 vagy 68 lába van. A nagy lapkánál
igazságtáblázatüt, az L-S függv'ényt k apjuk. H a azo n b an a negatív logikát alk a l­ g yakran h aszn álato s a négyzetes tokozás, ahol vagy m ind a négy oldalon, vagy p e ­
m azzuk, ahol a 0 volt a logikai 1 és a 3,3 volt vagy az 5 volt a logikai 0, a 3.9. (c) dig az alsó részen találh ató k lábak.
ábra igazságtáblát, a VAGY függvényt kapjuk. A la p k á k a t (nem p o n to s) osztályokba so ro lh atju k a k apuk szám a alapján. E z az
így kritikus az a konvenció, am elyet a feszültségek logikai é rté k e k re tö rté n ő le­ osztályozás nyilvánvalóan eléggé durva, de gyakran hasznos,
k ép ezésére használunk. H a n em m o n d u n k m ást, ettő l kezdve pozitív logikát fo ­
gunk használni, így az 1-es logikai é rté k fogalm a, az igaz és a m agas szinonim ák; SSI (Sm all Scalc In te g ra te d - kis in teg ráltság ú ) áram kör; 1-10 kapu;
ugyanig}' szinonim a a logikai 0, a ham is és az alacsony. M SI (M éd iu m Scale In teg rated - közepes integráltságú) áram kör: 10-100 kapu;
LSI (L arg e Scale In te g ra te d - nagy integráltságú) áram kör; 100-100 000 kapu;
V LSI (Very L arge Scale In te g rated - nagyon nagy in tegráltságú) áram kör:
A B F A B F A B F
> 1 0 0 0 0 0 kapu.
0" 0'' QV 0 0 0 1 1 1

0^ 5^ 0^ 0 1 0 1 0 1 E zek az osztályok külö n b ö ző tulajdonságokkal ren d elk ezn ek , és különbi)ző m ó­


don haszn álhatók.
s'' 0'' O'' 1 0 0 0 1 1
Egy SSI lapka tipikusan 2 -6 független k ap u t tartalm az, am elyeket külön-kükin
s'' S'' 5^ 1 1 1 0 0 0 h aszn álh atu n k az előző fejezetek b en m eg h atáro zo tt m ódon. A 3.10. á b ra egy k ö ­
zönséges SSI lapka vázlatos rajzát m u tatja be, am ely négy n i . m - i 's k ap u t tartalm az.
(a) (b) (c)
M inden k ap u n ak két b e m e n e te és egy kim en ete van, ez a négy kapuhoz összesen
3.9. ábra. (a) Az eszköz elektromos jellemzői, (b) Pozitív logika, (c) Negatív logika 12 lábat igényel. R áad ásu l a lap k án ak m ég szüksége van á ram ra feszültség) és
fö ld re (G N D ). am elyeken m ind a négy kapu osztozik. Á ltaláb an a tokozás ta rta l­
m az egy bevágást az 1-es láb közelében, hogy jelezze a lapka orien táció ját. Hogy
164 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.2. A L A P V E T Ő DIG ITÁ LIS LO G IKA I Á R A M K Ö R Ö K 165

Vcc 3.2.2. Kombinációs áramkörök

A digitális logika nagyon sok alkalm azása m egkívánja, hogy egy ára m k ö r töb b szö ­
rös b e m e n e tte l és többszörös k im en ettel ren d elk ezzen , és a k im en eteit h atározzák
m eg a p illanatnyi b em en etel. A z ilyen á ram k ö rt kom binációs á ra m k ö rn e k (com -
b in a tio n a l d r c u it) hívjuk. N em m in d en á ram k ö rn ek van m eg ez a tulajdonsága.
Például, m e m ó riaelem ek et ta rtalm azó ára m k ö r tu d olyan k im en etek et g e n e rá l­
ni, am elyek függnek a tá ro lt é rték ek tő l és term ész etesen a b em e n ő változóktól is.
Egy á ram k ö r, am ely olyan igazságtáblát valósít m eg, m int például a 3.3. (a) áb ra
táb lája, a k om binációs ára m k ö r tipikus példája. E b b en a szakaszban m egvizsgá­
lunk n éh án y gyakran használt kom binációs áram k ö rt.

M ultiplexerek

A digitális logika szintjén a m u ltip lex er olyan áram k ö r, am ely 2" a d a tb e m e n e tte l,
1 a d a tk im e n e tte l és n v ezérlő b em en ettel rendelkezik, m ely u tó b b iak egy ad atb e -
3.10. ábra. SSI lapka négy kapuval m e n e te t v álasztan ak ki. A kiválasztott a d a tb e m e n e tre azt m ondjuk, hogy a kim e-

e lkerüljük a zavart az áram k ö ri d iag ram o k o n , az á ra m o t, a fö ld et és a n em hasz­


n ált k a p u k at szokás szerin t n em jelöljük.
H aso n ló lap k ák m ár d a ra b o n k é n t n éh án y c e n té rt m eg k ap h ato k . M inden SSl >
lapka egy „m arék n y i” k a p u t és kb. 20 láb at tartalm az. A 70-es években a szám ító ­ D,
g ép ek et nagyszám ú ilyen lap k áb ó l é p íte tté k fel, m an ap ság egy teljes C P U és egy >
je len tő s m é re tű (gyorsító) m e m ó ria egy la p k áb a van „ b e m a ra tv a” .
C éljainkhoz fö lteh etjü k , hogy m in d en k ap u ideális ab b an az é rte le m b e n , hogy
a k im en et azonn al előáll, am in t a b e m e n e te t alk alm aztu k . A valóságban a lap k ák ­
>
nak véges k ap u k é slelteté sü k (gate delay) van, am ely tarta lm a z za m ind a jel te rje ­
d ését a lap k án k eresztül, m ind a kapcsolási időt. A tipikus k éslelteté s 1 és 10 ns
k ö zö tt van. D4-
A jelenlegi tech n ik ai színvonal azt b iztosítja, hogy hozzáv ető leg esen 10 m il­
lió tran zisz to rt helyezzenek el egy lap k án . M ivel m indegyik á ra m k ö r felé p íth e tő
>
Ds-
N E M -É s k apukbó l, azt g o n d o lh atju k , hogy egy gyártó olyan álta lá n o s lap k át tud
készíteni, am ely 5 m illió n e m - h s k ap u b ó l áll. S ajn álato s, hogy egy ilyen lapk áh o z >
15 000 002 láb ra lenne szükség. Szabványos, 0,1 inch-es lábtávolsággal ez a lapka Ds-
18 km -nél is hosszabb len n e, am i h átrán y o s a p iacon. V ilágos, hogy a technológiai >
fejlődés k ih asználásán ak egyetlen m ódja, hogy nagy k ap u /láb arányú á ra m k ö rö k et D7-
tervezünk. A következő szakaszokban olyan egyszerű M SI ára m k ö rö k e t vizsgá­
lunk m eg, am elyek sok k ap u t tartalm azn ak , hasznos fu n k ció k at b izto sítan ak , és
>
csak k o rláto zo tt szám ú k ülső kapcso lattal (lábbal) ren d elk ezn ek .
AÁ A
A B C

3.11. ábra. Nyolcbemenetes multiplexer áramkör


166 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3 .2 . A L A P V E T Ő D IG IT Á LIS LO G IK A I Á R A M K Ö R Ö K 167

n etrc irányított vagy „ k a p u z o lt” (g atcd ). A 3.11. áb ra egy nyülcbcm enctcfi m u lti­ helyeztünk el az egyetlen kim en etre. A p árhuzam os-soros konverzió tipikus fel­
p lexer vázlatos áb rájá t tartalm azza. A h áro m vezérlővonal 'd z A ,B cs C egy 3 bites használása tö rtén ik a klaviatúrában, ahol m indegyik billentyű leütése im plicit m ó­
szám ot kódol, am ely m eg h atáro zza, hogy a nyolc b e m e n ő vonal közül m elyiket d o n 7 vagy 8 b ites szám ot je le n t, és ezt sorosan kell átküldeni egy telefonvonalon.
kap uzzuk a v a g y k a p u ra és e n n e k m egfelelően a k im en etre. B árm ilyen é rté k van A m u ltip lexer fo rd íto ttja a d em u ltip lex er, am ely egy egyedi b e m en ő je le t irányít
a vezériővonalakon, h é t És k ap u n ak m indig 0 lesz a k im en eté; a nyolcadik kap u é a 2" k im e n e t valam elyikére az n vezérlővonal érték étő l függően. H a a vezérlővo­
pedig a kiválasztott b em en eti vonal érté k é tő l függően vagy 0, vagy 1 lesz. A vezcr- nalak b in áris érté k e k, a A:-adik k im en et a kiválasztott kim enet.
lő b em en etek m eg felelő kom binációjával bárm elyik i-s k ap u kiválasztható. A m u l­
tiplexer á ra m k ö r a 3 .1 1. á b rán láth a tó . H a az á ram - és a fö ld lá b a k at is hozzávesz-
szük, egy 14 lábas to k b an h elyezhető el. D ekódolok
M ultiplexert használva m egvalósíthatjuk a 3.3. (a) á b ra többségi függvényét,
ahogyan ezt a 3.12. (b) á b ra m u tatja. A z A , B é s C m indegyik k o m b in áció jára egy M ásodik p é ld a k é n t n ézzünk m eg m o st egy olyan á ram k ö rt, am ely n bites szám ot
a d atb e m e n e t választódik ki. M indegyik b e m e n e t hozzá van kötve vagy a használ b e m e n e tk é n t, és p o n to san egyet kiválaszt a 2" k im enet közül (1-re állítja).
(logikai 1), vagy a földhöz (logikai 0). A b e m e n e te k huzalozási alg o ritm u sa n a ­ A z ilyen á ra m k ö rt dekódolónak nevezzük, ezt m u tatja n = 3-ra a 3.13. ábra.
gyon egyszerű; a D b e m e n e t é rté k e m egegyezik az igazságtábla í-ik so rá n ak é r ­ A hhoz, hogy m egnézzük, hogy a dek ó d o ló hol leh et hasznos, k épzeljünk el egy
tékével. A 3.3. (a) á b ra 0., I., 2. és 4. so ra egyenlő O-val, így a m eg felelő b e m e n e ­ m em ó riát, am ely nyolc lapkából (lapka-0, lapka-1, ..., lapka-7) áll, m elyek m in d ­
tek földeltek, m íg a m ara d é k so ro k 1-gyel egyenlők, így e zek et a logikai 1-re kell egyike 1 M B -ot tartalm az. A lapka-O-nak a cím tarto m án y a 0-tól 1 M B -ig, a lapka-
kötni. E zen a m ó d o n bárm elyik h áro m v álto zó s igazságtábla im p le m en tá lh a tó a 1-nek 1 M B -tól 2 M B -ig és így tovább. A m ikor egy cím et a k aru n k a m em ó riáb an
3.12. (a) áb rán áb rázo lt lapkával. használni, a felső 3 b itet használjuk arra, hogy kiválasszuk a nyolc lapka egyikét.
A 3.13. á b ra á ra m k ö ré t követve ez a 3 b it a h á ro m b e m en e t, >1, j5 cs C. A bem e-
Vcc n etek tő l függően ..., D ,-ből p o n to san egy k im en et egyenlő 1-gyel; az összes

Do----- Do

D ,----- D,

D j----- D2
Ü3----- Db
>
Ü4------^ D4
D s ------ Ds > —
De----- De
D 7 ------ D7

A B C A B C >
(a) (b)

3.12. ábra. (a) MSI-'multiplexer. (b) Ugyanaz a multiplexer úgy huzalozva, hogy többségi >
függvényt számoljon
> - r

M ár b em u tattu k , hogyan h aszn álh atu n k egy m u ltip lex er lap k át arra, hogy n é­
>
hány b em en e tb ő l kiválasszunk egyet, és hogyan kell m egvalósítani egy igazságtáb­
7
lát. Egy m ásik alkalm azás: p árh u zam o sb ó l so ro sb a tö rté n ő á ta lak ító k é n t való hasz­
nálat. A 8 bites a d a to t elhelyezzük a b em en eti v o nalakon, cs ezu tá n a vezérlővo­
> -D

nalakkal sorban lép eg e tü n k 000-tól 11 1-ig (b in árisan ), ezzel a 8 b ite t egym ás u tán 3 .1 3 . ábra. 3-ról 8-ra dekódoló áramkör
168 3. A d i g i t á l i s l o g i k a SZ IN T JE 3.2. ALAPVETŐ DIGITÁLIS LOGIKAI ÁRAMKÖRÖK 169

többi ü. M indegyik k im en et a nyolc m em ó rialap k a v alam elyikének a h aszn álatát Program ozható logikai töm bök
engedélyezi. M ivel csak egy k im e n e t van 1-re állítva, így egyetlen lapka h aszn ála­
ta engedélyezett. K o ráb b an láttuk, hogy tetszőleges függvények (igazságtáblázatok) m egszerkcszt-
A 3.13. áb rán lévő á ra m k ö r m ű k ö d ése nagyon egyszerű. M in d en és k ap u n ak h e tő k azáltal, hogy És kapukkal logikai szo rzato k at szám olunk ki, és azu tán a szo r­
hárorn b e m e n e te van, am elyek közül az ejső; v a g y /l, v a g y ^ , a m ásodik: vagy B , zato k a t vAGY-oljuk. Egy nagyon általán o s lapka, a p ro g ram o zh ató logikai töm b
vagy B , a h arm a d ik pedig: vagy C, vagy C, K ü ]önböző_bem cnetkom binációkkal vagy PLA (P ro g ra m m a b le Logic A rray) szolgál a logikai szorzat-összeg k ép zésére,
m indegyik kapu kiválasztható: az A , B , C -tal, a az A , B, C-vel és így tovább. a 3.15. á b ra egy egyszerű p éld át m u la t be. E n n ek a lap k án ak 12 változó szám ára
van b em e n e ti vonala. M indegyik b e m e n e tn e k a k om plem ense a lapkán belül k é p ­

Összehasonlítok

Egy m ásik hasznos á ram k ö r az ö sszeh aso n lító (c o m p a ra to r), am ely két b em en e ti
szót hasonlít össze. A 3.14. á b rá n áb rázo lt egyszerű összehasonh'tó k ét b e m e n e t­
tel d o lg o z ik ,^ és ő , m indegyikük 4 bit hosszúságú, és 1-et a d ered m én y ü l, ha a
b e m e n e te k azono sak , és 0-t, h a k ülönbözők. A z á ra m k ö r a kizáró -vagy (exclusi-
VE OR, xor ) k ap u n alapul, am ely 0-t ad, ha a b e m e n e te k egyenlők és 1-et, ha nem
egyenlők. H a a k ét b e m en e ti szó egyenlő, a k k o r m ind a négy ki/,áró -vauy k ap u 0-t
kell adjon a k im en etén . E zt a négy je le t VAGY m ű v elettel össze tu d ju k k ap cso l­
ni; ha az ered m én y 0, a b em en e ti szavak azonosak, külö n b en nem . P éld án k b an
NEM-VAGY k ap u t h aszn áltu n k az u tolsó á ram k ö ri szakaszban a z é rt, hogy a teszt je ­
lentése fo rd íto tt legyen: 1 je le n tse az egyenlőt, 0 p ed ig a n em egyenlőt.

4. ábra. Egyszerű 4 bites összehasonlító 3.15. ábra. 12 bemenetű, 6 kimenetű programozható logikai tömb. A kis négyzetek
a biztosítékokat jelzik, amelyek kiégetésével meghatározható a végrehajtandó
funkció. Az olvadó biztosítékokat két mátrixban helyezik el: a felső az és kapuk,
az alsó pedig a vagy kapuk számára szolgál
170 3. A D IG IT Á LIS LO G IK A SZ IN T JE
3.2. A L A P V E T Ő D IG IT Á LIS LO G IKA I Á R A M K Ö R Ö K 171
ződik, így végül 24 b e m e n e ti je le t k apunk. A z á ram k ö r szíve egy 50 És k ap u b ó l á l­
Léptető
ló töm b, ezek m in degyikének a b e m e n e te a 24 b e m e n ő jel bárm ely ik részh alm aza
lehet. Egy 24 x 50 bites m átrix h a táro zza m eg, hogy m elyik b e m e n ő jel m elyik És
A z első a ritm etik ai M SI á ram k ö rü n k 8 b e m en e ttel, 8 k im en ettel ren d elk ező lé p ­
k ap u ra kapcsolódik. E zt a m átrix o t a felh aszn áló állítja be. A z 50 És k a p u m in d en
te tő (sh ifter) (lásd 3.16. á b ra). A nyolc b em e n ő b ite t a ..., D^-es vonal jelzi. A
b em en e ti vonala egy olvadó b izto síték o t tartalm az. A m ik o r a gyárból elküldik a
k im en etek , am elyek p o n to san a b em e n ő je le k 1 bittel való elto lását jelen tik , az S^^,
PL A -t, m ind az 1200 olvadó b izto síték sérte tle n . A m átrix p ro g ra m o z ása so rán a
v o n alakon é rh e tő k el. A C vezérlővonal érték e m eg h atáro zza a lép tetés irá­
felhasználó nagy áram m al a lap k áb a n k iégeti a kiválasztott bizto síték o k at.
nyát; 0 e se té n b alra, 1 e setén jo b b ra.
A z ára m k ö r k im en eti része h a t v a g y k ap u b ó l áll, m indegyik 50 b e m e n ő jellel
N ézzük, hogyan m ű ködik az áram k ö r, figyeljük m eg, hogy a szélsők kivételé­
ren delkezik, am elyek m egegyeznek az És k ap u k 50 kim en etév el. Itt szintén egy
vel az összes b ith ez És k a p u p á ro k kapcsolódnak. A m ik o r C = 1, m in d en k ap u p ár
felhasználó által m e g h a tá ro z o tt (50 x 6-os) m átrix m o n d ja m eg, hogy ténylegesen
jo b b oldali tagja tu d ja a m egfelelő b em e n ő b ite t a k im en etre küldeni. M ivel a jo b b
m elyik kap cso lat létezzen. A lap k án a k 12 b e m e n ő lába, 6 k im en ő lába, táp fesz ü lt­
old ali És k ap u k im en ete össze van kötve a tő le jo b b ra eső v a g y k ap u bem en etév el,
ség és föld kap cso lata van, ez összesen 20 láb.
jo b b ra lé p te té s h ajtó d ik végre. A m ik o r C = 0, az És k a p u p á r bal oldali tagja to ­
A P L A h aszn á la tá ra p é ld a k é n t tek in tsü k m eg a 3.3. (b) á b rá t újra. H áro m b e ­
v ább ítja a jelet, és b alra lé p tetés tö rtén ik .
m en etb ő l, négy ÉS kapu b ó l, egy v a g y k ap u b ó l és h á ro m in v erterb ő l áll. A m eg ­
felelő belső k ap cso lato k k al a P L A ki tu d ja szám olni ugyan ezt a függvényt úgy,
hogy a 12 b e m e n ő jelb ő l h á rm a t haszn álu n k , az 50 És k ^ u b ó l n ^ e t , a 6 v a g y Do Dl D7
k ap u b ó l pedig egyet. (A négy És k ap u n ak so rre n d b e n a.zA B C -\.,A B C -\.,A B C -X és
A B C -i kell kiszám olnia; a v a g y k ap u e n n e k a négy szo rzatk ifejezésn ek az é rté k é t
használja b em e n ő je lk é n t.) V alójában egyetlen P L A b e p ro g ra m o z h a tó úgy, hogy
szim ultán m ó d o n összesen négy h aso n ló bony o lu ltság ú függvényt é rték e lje n ki.
E zek re az egyszerű függvényekre a b e m e n ő v áltozók szám a a k o rlá to z ó tényező; a
b o nyolultabb e se te k b en m ag u k az És vagy v a g y k a p u k je le n th e tn e k k o rláto t.
B ár a m ező -p ro g ram o zású (íield -p ro g ram m ab le) PLA -t, am elyet az elő b b m u ­
ta ttu n k be, m ég h asználják, de nagyon sok alkalm azásnál a felh aszn áló által m eg ­
h a tá ro z o tt (cu sto m -m ad e) P L A -k a h aszn álato sab b ak . E zek nagy részét a fel­
használó tervezi m eg, és a gyártó legyártja a felh aszn áló specifikációja alapján. A z
ilyen P L A -k olcsóbbak, m in t a m ező -p ro g ram o zású ak .
M ost összehaso n lítju k a h á ro m k ü lö n b ö ző m ó d o t, am elyet a 3.3. (a) á b rá n lévő
igazságtáblázat m eg v aló sítására tárgyaltunk. H a S S I-k o m p o n en sek et haszn álu n k ,
négy lap k ára van szükségünk. A ltern a tív a k é n t tu d ju k h ely ettesíten i egy M SI-m ul-
tiplexer lapkával, ahogy ezt a 3.12. (b) á b ra m u tatja. V égül tu d u n k használni egy
3.16. ábra. 1 bittel balra/jobbra léptető
negyed P L A lapkát. A P L A nyilvánvalóan h aték o n y a b b , m in t az elő ző k ét m ó d ­
szer, ha sok függvény szükséges. A z egyszerű á ra m k ö rö k m eg v aló sítására az olcsó
SSI és M S I lapkák le h e tn e k előnyösek.
Összeadok

M ajd n em e lk ép z elh etetlen egy olyan szám ítógép, am ely nem tud egész szám okat
3.2.3. Aritmetikai áramkörök ö sszeadni. K ö v etkezésképpen nagyon lényeges része m in d en C P U -n ak (központi
egységnek) egy összeadást v ég reh ajtó áram k ö r. A z 1 bites egészek ö sszeadásának
Itt az ideje, hogy az elő b b vizsgált általán o s célú M S I-áram k ö rö k tő l, elm o zd u lju n k
ig azság táb lázatát láth atju k a 3.17. (a) ábrán. K ét k im en et van feltüntetve; a z ^ és
az M SI kom bináció s á ra m k ö rö k felé, am elyek az aritm e tik a i m ű v ele te k et végzik.
B b e m e n ő je le k összege, v alam in t az átvitel (carry) a következő (b alra lévő) p o zí­
Egy 8 bites egyszerű lép tető v el kezdünk, aztán m eg m u tatju k , hogy leh e t ö sszead ó t
cióba. A z összeget és az átvitelt kiszám ító á ram k ö r a 3.17. (b) áb rán láth ató . E z az
szerkeszteni, és végül m egvizsgáljuk az aritm etik ai-lo g ik ai egységet, am ely k ö z­
egyszerű á ra m k ö r széles k ö rb en fél összeadóként (h a lf adder) ism ert.
p o n ti sz e rep et játszik m in d en szám ító g ép b en .
B ár egy fél összeadó m egfelelő k é t tö b b -b ites b em e n ő szó alsó bitjeinek össze­
a d ására, de nem jó l m ű ködik a szavak k özépső bitpozícióin, m e rt nem kezeli a
jo b b ró l é rk e ző átvitelt. H ely ette a 3.18. áb rán áb rázo lt teljes összeadó (full adder)
172 3, A d i g i t á l i s l o g i k a SZINTJE
3.2. A L A P V E T Ő D IG IT Á LIS LO G IK A I Á R A M K Ö R Ö K 173

KIZARÓ-VAGY kapu bal oldali szom szédnál 3.7.Á tvitel be ághoz kötjük. A jo b b szélső bitnél í\z Á tvitel he
b itet 0-nak vesszük. A z ilyen típ u sú összeadót átvitelt tovább terjesztő összeadó-
Összeg Átvitel
n ak (ripple carrj adder) nevezzük. M ivel a legrosszabb esetb en , ha 1-et hozzá­
ad u n k az 111...111 b ináris szám hoz, az összeadás m indaddig nem lesz kész, míg
az átvitel nem halad végig az egész b itso ro n a bal .szélső bittől a jo b b szélső bitig.
I.étezn ek olyan összeadok, am elyeknek nines m eg ez a k ésleltetése, em iatt gyor­
sabbak, és e zek et általáb an előnyben részesítik.
A z ilyen gyors összeadó szem léltetéséh ez b ontsunk két részre egy 32 bites ösz-
szeadót: egy 16 bites alsó és 16 bites felső részre. A m ikor az ö.sszcadás elkezdődik,
a felső ö sszeadó m ég nem tud dolgozni, m ert nem tudja, hogy mi le.sz az Á tvitel be
a felső 16 b it összeadása után.
Tekintsük a következő m ódosítást. A helyett hogy a felső rész összeadásához
egyetlen ö sszeadót ép íten én k , k ét p árh u zam o san m ű ködő összeadót ép ítü n k , m eg­
3.17. ábra. főj I bites összeadás igazságtáblája, (b) Fél összeadó áramkör duplázzu k a felső rész hard v erét. így az á ram k ö r m ost három 16 bites összeadóból
áll: az alsó részből és az UO, U1 két felső részből, ezek p árh u zam o san m űködnek.
szükséges. A z á ra m k ö r áb rájáb ó l világosan látszik, hogy egy teljes összead ó k ét fél Á tvitel be é rté k e k é n t 0-t tö ltü n k t/ö -b a és 1-et U l-h c. M ost m ind a k e ttő t cl tudjuk
összeadóból épü l fel. A z Összeg k im en ő vonal l , h a a z A , B és Á tvitel he bem en e- ind ítan i u gyanakkor, am ikor az alsó fél is indult, de csak az egyik végeredm énye
teken p á ra tla n az 1-esek szám a. A z Á tvitel ki a k k o r 1, h a é s ő is 1 (a v a g y kapu lesz helyes. A m ik o r a 16 bites összeadás m ár m eg tö rtén t, ism ert az Á tvitel be a fel­
bal b e m e n e te ), vagy p o n to san az egyikük 1-es, és az Á tvitel be szintén 1. A k ét fél ső fél szám ára, akkor a m egfelelő felső felet ki tudjuk választani. Ez a trükk felé­
összeadó együtt szám olja ki az összeg- és az átv iteib itek et. re re d u k á lja az összeadási időt. A z ilyen összeadót átvitelkiválasztó összeadónak
A hhoz, hogy m on d ju k k ét J6 bites szó ö sszead ásáh o z összeadó! ép ítsü n k , 16- (carry select adder) nevezzük. E zt a trü k k ö t ism ételh etjü k úgy, hogy m indegyik 16
szor m eg kell ism ételn ü n k a 3.18. (b ) áb rá n lá th a tó ára m k ö rt. Aa, Á tvitel k i b ite t a bites ö.sszeadót 8 bites összeadók duplikálásával építjük fel és így tovább.

Átvitel be
Aritm etikai-logikai egységek
Átvitel Átvitel
A B összeg
be ki Összeg A legtöbb szám ítógép egyetlen á ram k ö rt tartalm az az hs, v a g y v ég reh ajtására és
0 0 0 0 0 két gépi szó összeadására. Ez az á ram k ö r tipikusan n bites szavakra készül, és n
azonos ára m k ö rt tartalm az az egyes bit pozíciókra. A 3.19. áb ra egy ilyen á ra m ­
0 0 1 1 0
k ö rt m u ta t be, am elyet aritm etikai-logikai egységnek (Arithmetic Logic Unit)
0 1 0 1 0 vagy A LU -nak nevezünk. Ez az á ram k ö r négy funkció bárm elyikét végre tu d ja h aj­
tan i - n ev ezetesen, attól függően, hogy a funkciót kiválasztó F^^és b e m en ő v o n a­
0 1 1 0 1
lak b ináris é rté k e 00, 01, lO vagy 11. A négy fu n k c ió :/í É s B , A v a g y B, B é s A + fí.
1 0 0 1 0 M egjegyezzük, hogy/1 + B egy aritm etikai összeadást, és nem B oole É S-t jelen t.
1 0 1 0 1
A 3.19. á b ra bal alsó sark áb an egy 2 bites d ek ó d o ló van, hogy a négy m űvelet
szám ára létreh o zza az f,, és F, v ezérlőjeleken alapuló engedélyező jelek et. F„és í \
1 1 0 0 1 é rté k é tő l függően a négy engedélyező vonal közül p o n to san egy kerül kiválasztás­
1 1 1 1 1
Y ra. E z a vonalkiválasztás teszi lehetővé, hogy a kiválasztott funkció eredm ény e á t­
h alad jo n az utolsó VAGY k ap u n a k im enetre.
A bal felső saro k b an az a logika szerepel, am ely végrehajtja az A A N D /Í,
Átvitel ki
A O R B é s B m űv eletek et, de ezek közül legfeljebb egy ered m én y e h alad h a t át az
u to lsó VAGY k apun, attó l függően, hogy a dekódolóból kijövő engedélyező vonalak
(a) (b) m elyiket engedélyezik. Mivel a d ck ó d o ló n ak p o n to san egy kim en eté lesz 1, ezért a
VAGY k ap u b e m e n e té t k épező négy És kapuból csak egy fog m űködni, a m ásik h á ­
3.18. ábra. (a) A teljes összeadó igazságtáblázata, (b) Teljes összeadó áramkör rom És kapu k im en ete 0 lesz, függetlenül attól, hogy mi /I és S érték e.
174 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.2. A L A P V E T Ő D IG IT Á LIS LO G IK A I Á R A M K Ö R Ö K 175

Logikai egység* Átvitel be

Átvitel Átvitel
be ki

3.20. ábra. Nyolc 1bites ALU-szelet összekapcsolása 8 bites ALU-vá. Az engedélyező és invertáló
jeleket az egyszerűség kedvéért nem ábrázoljuk

A L U -t m u ta t be, am ely 8 d arab L bites A L U -szeletből épül fel. A z IN C b em en e t


csak az összeadásnál ju t szerephez. IN C jel h a tá sá ra 1-gyel növekszik az e re d ­
m ény, és így ki tudjuk s z á m o ln i^ -t- 1-et és A + B + 1-et.

3.2.4. Órák

Sok digitális á ram k ö rb en az esem ények, tö rté n é sé n e k so rren d je nagyon kritikus.


N é h a egy esem énynek m eg kell előznie egy m ásikat, n éh a k ét esem énynek kell egy
időben tö rté n n ie. A n n a k é rd ek éb en , hogy a tervezők el tudják érni a kívánt időzí­
tések et, nagyon sok digitális á ram k ö r ó rá t használ a szinkronizáeió biztosítására.
A z óra (ciock) ebb en az é rtelem b en egy áram k ö r, am ely p o n to san m eg h atáro zo tt
szélességű pulzusok so ro zatát bocsátja ki, és nagyon precízen m e g h atáro zo tt a két
egym ás u tán i pulzus közötti időintervallum is. A két egym ást követő pulzus élei
k ö zö tti id ő in terv allu m o t az óra ciklusidejének (clock cycle time) nevezzük. A p ul­
zus frekvenciája általáb an 1 és 500 M H z k ö zö tt van, e n n ek m egfelelően az ó iajel
1000 ns-tól 2 ns-ig te rjed h et. A nagy p o n to sság eléré sé h e z az ó ra frekvenciáját ál­
3.19. ábra. 1bites ALU taláb an egy kristályoszcillátor vezérli.
Egy szám ítógépben tö b b esem ény tö rté n h e t egyetlen ó rajel alatt. H a ezeknek
A zonkívül, hogy A - t és B- t logikai vagy a ritm etik ai m ű v eletek b e n ie n e te k én t az esem én y eknek egy speciális so rre n d b e n kell bekövetkezniük, az ó rajelet al-
használhatjuk, az isjc h e tsé g e s, hogy bárm ely ik et 0-ba k ényszcrítsük az E N A vagy ciklusokra kell o sztanunk. Egy finom abb felbontás általán o s m egoldása, hogy az
E N B negálásával. A beállítása is leh etség es IN VA segítségével. A 4. fejezetb en alap ó raje le t m egcsapoljuk, és b eszú ru n k egy ism ert k ésleltetésű áram k ö rt, így egy
látni fogjuk INVA, E N A és E N B h aszn álatát. N o rm ális feltéte le k m ellett E N A és m ásodlagos ó rajelet készítünk, am ely fáziseltolással k eletkezik az elsődlegesből,
E N B is 1, hogy engedélyezze a b e m e n e tek e t, IN V A pedig 0. E b b en az e setb en A ahogy a 3.21. (a) á b ra is m u tatja. A 3.21. (b) áb rá n lévő időzítési diagram négy
és B m ódosítás nélkül k erül az A L U -b a. időzítési re fe re n c iá t biztosít a diszkrét esem ények szám ára;
A 3.19. áb ra a jo b b alsó saro k b an tarta lm a z za a teljes összeadót, am ely A és
B összegét szám olja ki, b eleé rtv e az átvitel k ezelését is, a valóságban tö b b ilyen 1. Cl felfu tó éle;
ára m k ö r van összekötve, hogy teljes szóhosszúságú m ű v eletek et leh essen végre­ 2. Cl lefu tó éle;
hajtani. A 3.19. áb rán láth a tó h o z h aso n ló áram k ö rö k ténylegesen létezn ek , és 3. C2 felfu tó éle;
bitszelet (bit slices) néven ism ertek. E zek lehetővé teszik, hogy a szám ító g ép -ter­ 4. C2 le fu tó éle.
vezők bárm ilyen kívánt bitszélességű A L U -t ép ítsen ek . A 3.20. á b ra egy 8 bites
K ü lönböző esem én y ek n ek a k ü lönböző élekhez való hozzárendelésével tu lajd o n ­
k ép p en elérjü k a kívánt so rren d et. I la tö b b m int négy időzítési referen cia szüksé-
* Az ábrán a + jel a (VAGY) logikai összeadást jelenti. (A lektor)
176 3. A DIG ITÁ LIS LO G IK A SZ IN T JE 3.3. M E M Ó R IA 177

3.3.1. Tárolók

A z 1 b ites m em ória készítéséhez szükségünk van olyan á ram k ö rre, am elyik vala-
hogj'an „visszaem lékszik” az előző b e m en e ti érte k e k re . A 3.22. (a) áb rán b e m u ­
ta to tt m ó d o n k észíth etü n k ilyen á ram k ö rt k ét n h m - v a g y kapuból. H aso n ló á ra m ­
k ö rö k e t é p íth e tü n k n e m - é s kapukból. A to vábbiakban nem fogjuk ez u tó b b iak at
em leg etn i, m ert koncepcionálisan azonosak a n i ; m - v a g y verziókkal.

_m _rrL_m A B NOR

mI I
I I
m_Lm_
II
II
I I I
I I I
0

0
0

1
1

0
n _ n__LTL 1 0 0

1 1 0
(c)

3.21. ábra. (a) Óra. (b) Időzítési diagram, (c) Aszimmetrikus óra generálása
(c)
ges egy a d o tt időzítési ciklusban, ai<kor tö b b külö n b ö ző k ésleltctésű m ásodlagos
vonalat kell csatlak o ztatn u n k az elsődlegeshez. 3.22. ábra. (a) n e m -v a g y tároló 0-s dllapotban. (b) n e m -v a c y tároló 1-es állapotban.
N éhány á ra m k ö rb en az időzítési in ter.'allu m az érd ek e se b b a d iszkrét id ő p il­ (c) NEM-VAGYigazságtáblázata
lan ato k n ál. P éld áu l, n éh án y esem ény ak k o r tö rté n h e t m eg, am ik o r a C l időzítő
m agas, nem p o n to san a felfu tó élnél. Egy m ásik esem ény csak ak k o r tö rté n h e t A 3.22. (a) áb ra á ra m k ö ré t S R -tárolónak (Set R eset latch ) hívjuk. K ét b em ene-
m eg, am ik o r C2 m agas. H a tö b b m int k ét in terv allu m szükséges, a k k o r tö b b ó ra ­ te van; S (se t) a ta ro ló b eállítására, R (reset) pedig a tö rlé sé re szolgál. K ét k im e­
je le t kell biztosítani, vagy a két órajel m agas álla p o tá n ak részlegesen át kell lapol- n e te van: a Q é s Q , am elyek egym ás fo rd íto ttjai, A kom binációs áram k ö rö k k el el­
nia egym ást. A z utóbbi ese tb e n négy k ü lö n b ö ző in terv allu m o t k ü lö n b ö zte th e tü n k le n té tb e n a tá ro ló k im en etei nem csupán az aktuális b e m en e tek tő l függnek.
m eg: C l És C2, C l És C2, C l És C2 és C l És C2. Lássuk, hogyan is tö rtén ik m indez. T ételezzük fel, hog)' m ind az S, m ind a z R Q
M ellesleg az órák szim m etrikusak, a m agas állap o tb an eltö ltö tt idő m egegye­ az idő nagy részében. A z érvelés k ed v éért tegyük fel a továbbiakban, hogy Q = 0.
zik az alacsony á llap o tb an e ltö ltö tt idővel, ahogy azt a 3.21. (b) áb ra m u tatja. M ivel Q vissza van vezetve a felső n e m - v a g y k ap u b a, an n ak m in d k ét b e m e n e te 0,
A szim m etrikus pulzuslánc létreh o zásáh o z az a la p ó rá t egy k ésleltető áram k ö rrel így a k im en et; (7 = 1. A z 1 é rté k vissza van vezetve az alsó k ap u b a, am elynek a b e ­
leh et eltolni, és ES-elni az e red e ti jellel, ahogy a 3.21. (c) á b rán lá th a tó a C sorban. m e n e tel 1 és 0, ebből ö = 0 következik. E z a 3.22. (a) áb rán lá th a tó állap o t te h á t
álland ó , stabil.
M ost k ép zeljük el, hogy Q nem 0, hajiem 1 , és S m ég m indig 0. A felső k a p u ­
n ak a k é t b e m e n e te 0 és 1, a k im en ete Q = 0, am it visszavezetünk az alsó kapuba.
3.3. Memória E zt az állap o to t a 3.22. (b) áb ra m utatja, ez szintén stabil. A z az állapot, am elynél
m in d k ét k im en et egyenlő 0-val, nem stabil, m e rt ak k o r m in d k ét kapu m in d k ét b e ­
M inden szám ítógép lényeges elem e a m em ó ria. Ism eretein k szerin t m em ó ria n é l­ m e n e te 0, e z ért m in d k ét k ap u k im en ete 1-re változik. H aso n ló an leh etetlen , hogy
kül m ár nincs szám ítógép. A m em ó riát h asználjuk m ind a v ég re h ajtan d ó u ta s ítá ­ m in d k ét k im en et 1 legyen, m ert 0 és 1 b e m e n e te k h a tá sá ra a k im enet 0-ra válto ­
sok, m ind az ad ato k táro lá sá ra . A k övetkező szakaszokban m egvizsgáljuk a m e ­ zik. M eg állap ításu n k egyszerű: a z R = S = 0 esetb en a tá ro ló n a k két stabil állap o ­
m ória alap elem eit a k ap u szin ttő l kezdve, hogy lássuk, hogyan m ű k ö d n ek és h o ­ ta van, am elyeket mi 0-snak és 1-esnek nevezünk (2-tól függően.
gyan k o m b in álh ató k össze n a g y m éretű m em ó riák kialakításához. M ost vizsgáljuk m eg a b e m e n e te k h a tá sá t a tá ro ló állap o tára. Tegyük fel, hogy
5 = 1, és ö = ()• A b e m e n e te k a felső kapunál így 1 és 0, és a Q- l k im en etet 0-ba
állítja. E z a változás az alsó kapu m in d k ét b e m e n e té n 0-t, és a k im en eten 1-et
ered m én y ez. T ehát 5 beállításával (azaz 1-et ad u n k neki é rték ü l) a tá ro ló állap o tát
178 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.3. M E M Ó R IA 179

átkapcsolja a 0-s állap o tb ó l az 1-es á llap o tb a. A z /? b e m e n e t 1-re való b eállítá sá­ Időzített D-tárolók
n ak nincs hatása, am ik o r a táro ló a 0-s álla p o tb an van, m ert az alsó n e m - v a c ;y kapu
k im en ete 0 a 10-s és az 11-es b e m e n c te k re . J ó m ó d szer az SR táro ló S = R = l által okozott b izo n ytalanságának feloldására,
H aso n ló m eggondolással könnyű látn i, hogy S 1-re állításán ak nincs h a tá ­ hogy e n n e k az elő fo rd u lá sát m egakadályozzuk. A 3.24. á b ra egy egyetlen D b e ­
sa, am ik o r az álla p o t (2 = 1- de b eállítása a tá ro ló t ö = 0 á lla p o tb a viszi. m e n e tte l ren d elk ező tá ro ló á ra m k ö rt m u tat. M ivel az alsó És kapu b em en e te m in ­
Ö sszefoglaláskép p en , am ik o r S 1-re van állítva, a k k o r a tá ro ló a Q = l állap o tb a dig k o m p lem ense a felső k ap u b e m e n e té n e k , a k é t 1-es b em en e t p ro b lém ája nem
k erül függetlenül attó l, hogy milyen á llap o tb an volt előzőleg. H a so n ló an , h a az fo rdul elő. A m ik o r £> = 1 és az órajel 1, a tá ro ló a g = 1 állap o tb a kerül. A m ikor
R- t állítjuk 1-re, ak k o r a tá ro ló Q = 0-ba kerül. A z á ra m k ö r „em lékszik” , hogy S Ö = 0 és az órajel 1, a 0 = 0 állap o tb a kerül. M ás szavakkal, am ik o r az órajel 1, a
vag y /? jelet k a p o tt u to ljára. E zt a tu lajd o n ság át felhasználva tu d u n k szám ító g ép ­ D pillanatnyi érté k e m in tán ak tek in th e tő , és ezt táro lju k a táro ló b an . E zt az á ra m ­
m em ó riák at építen i. k ö rt időzített D -tá ro ló n a k (clocked D latch) hívjuk, am ely egy igazi 1 bites m em ó ­
ria, A tá ro lt érté k Q -ban m indig e lérh ető . A D aktuális érté k é n e k a m em ó riáb a
tö ltéséh e z egy pozitív pulzust kell adni az ó rajelb em en etre.
Id őzített SR-tároló

G yakran fontos, hogy a táro ló állap o tv álto zásai csak bizonyos m e g h a táro z o tt p il­
lan atb an tö rtén je n e k . E cél e lé résé h ez kicsit m ó d o sítju k az á ram k ö rt, ahogy a
3.23. áb rán láth ató , így m eg k ap ju k az időzített SR-tárolót (clocked SR latch).

E z az á ra m k ö r 11 tran zisz to rt igényel. K icsit m esterk é lt (de kevésbé nyilvánva­


ló) áram k ö rö k h a t tran zisz to rral is tu d n ak táro ln i 1 b itet. A gyakorlatban á lta lá ­
b an az ilyen ára m k ö rö k e t használják.
3.23. ábra. Időzített SR-tároló

E z az á ra m k ö r egy további b e m e n e tte l ren d elk ezik , az órajellel, am ely alap h ely ­
3.3.2. Flíp-flopok
zetb en 0. A 0-s ó rajel h a tásá ra az És k ap u k im e n ete 0, függetlenül S -től és /?-től,
te h á t a táro ló nem v álto ztatja m eg az á llap o tát. A m ik o r az órajel ] , az És k ap u k Sok á ra m k ö rn él szükséges leh et, hogy egy m eg h a tá ro z o tt id ő p o n tb an vegyen m in ­
hatása m egszűnik, és a tá ro ló érzék en y lesz 5 -re és R -rs. A nevével ellen tétb en , tá t bizonyos vo n alo n levő érték rő l, és táro lja azt az érté k e t. E z t a v álto zato t flip-
az ó rajelet nem szükséges órával vezérelni. A z érvényes (enable) és kapuzójel fiopnak (flip-flop, billenőkor) nevezzük. F lip-flop e seten az ó rajel 1-es állásánál
(stro b e) kifejezések széles k ö rb en haszn áltak , am i azt jelen ti, hogy ha az ó rab e- n em fo rd u l elő állapotváltozás, h an em csak akkor, am ikor az órajel átm egy 0-ból
m e n e te n a jel 1, az á ra m k ö r érzék en y az 5 és /? állap o to k ra. 1-be (felfu tó él) vagy 1-ből a 0-ba (lefu tó él). így az órajel hossza nem lényeges, ha
E ddig g o n d o sa n a szőnyeg alá se p e rtü k azt a p ro b lé m á t, hogy m i tö rté n ik , a m i­ elé g gyors az á tm en et.
k o r m ind az S, m ind az R 1. J ó o k u n k volt rá: az á ra m k ö r k im e n ete d ete rm in á - A nyom aték kedvéért m egism ételjük a flip-flop és a tároló közti különbségei.
la tla n n á válik, h a végül m ind az R , m ind az 5 0-ba m egy át. 5 = /? = 1 b e m en e t A flip-flop élvezérelt (edge triggered), míg a tároló szintvezérelt (level trlggered).
h a tá sá ra az egyetlen stabil állap o t a Ö = <2 = 0, de am in t m in d két b e m e n e ti jel 0 Legyünk óvatosak, m ert az irodalom ban ezeket a definíciókat gyakran zavarosan
lesz, a tá ro ló átu g rik a k ét stabil álla p o t közül az egyikbe. H a valam elyik b e m e n e t használják. Sok szerző „flip-flop”-ot használ, am ikor táro ló ra hivatkozik, és fordítva.
h am arab b é r 0-ba, m in t a m ásik, a lassabb nyer, m e rt a lassabb b e m e n e t m eg 1, és A flip-flop tervezésének kü lö n b ö ző m egközelítései vannak. P éldául, ha valam i­
az e n n e k m egfelelő álla p o t áll be. H a m in d k é t b e m e n e t egyszerre té r vissza 0-ba lyen m ó d o n létreh o zu n k egy nagyon rövid im pulzust az órajel felm en ő élénél, a k ­
(am i nagyon való szín ű tlen ), a tá ro ló v é letlen szerű en valam elyik stabil állap o táb a k o r ezt az im pulzust b etáp lálh atju k egy D -táro ló b a. E z egy ténylegesen alk alm a­
ugrik. z o tt m egoldás, a 3.25. (a) áb rán egy ilyen á ram k ö rt láth atu n k .
180 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.3. M E M Ó R IA 181

1
bÉS(

(a)

A flip-fiopok és a táro ló k szabványos jelö léseit a 3.27. á b ra m utatja. A 3.27. (a)


áb rá n egy táro ló jelö lése lá th ató , am ely akkor tölti be D állap o tát, am ikor a C K
Idő ó rajel 1, e lle n tétb en a 3.27. (b) ábrával, ahol a tá ro ló ó rajele alap e setb en 1, de D
álla p o tá n ak b etö ltéséh ez 0-ra vált egy rövid időre. A 3.27. (c) és (d) áb rák flip-
(b) fiopok és n em táro ló k , am elyeket egy nyíl jellel je lö lü n k az ó ra b em e n c te n . A
3.27. (c) áb rán a beírás az órajel fölfutó (0-ból 1-be m en ő ) élénél, am íg a 3.27. (d)
3.25. ábra. (a) Pulzusgenerátor, (b) Az áramkör négy pontjának idődiagramja áb rá n a lefu tó (1-ből 0-1^ m en ő ) élénél tö rtén ik . Sok, de nem m indegyik tá ro ló ­
nak és flip-flopnak van Q k im en ete, és n éh ánynak k ét további b e m e n e te van, a
E lső p illan atb an úgy tű n h et, hogy az És k ap u k im e n ete m indig 0, mivel bárm ely Beállító (Set) vag>' Előre beállító (Prését) (a Q = 1 álla p o to t állítja b e ) és a Törlő
jeln ek 0 az És k ap cso lata a saját ellen tettjév el. de a helyzet en n él kicsit bo n y o lu l­ (Reseí vagy Clear) ( a Q - 0 álla p o to t állítja be).
tabb. A z in v ertern ek van egy pici, d e n em n u lla k ésleltetési ideje, és ez a k éslelte­
tés az, am ely az á ra m k ö rt m eg d o lg o ztatja. Tegyük fel, hogy négy p o n to n m érjü k a
feszültséget, legyen ez a, h, c é s d . A b e m e n ő jel, am it az a -n m érü n k , egy hosszú D Q D Q D Q D Q
ó rajelim pulzus, am in t azt a 3.25. (b) á b ra m u ta tja az alsó so rb an . A b jel fö lö tte
van. M egjegyezzük, hogy ez a je l in vertált, és egy kicsit k ésle lte te tt, a k ésleltetés ti­
CK —C CK >CK >CK
pik u san n éh án y ns attó l függően, hogy milyen típ u sú in v e rtc rt használunk.
A c jel szintén késleltetve van, de csak a jel terjed ési idejével (ez a fény terjed ési
sebessége). H a a fizikai távolság az a és c k ö zö tt péld áu l 20 m ikron, a k ésleltetési (a) (b) (c) (d)
idő 0,0001 ns, am i elh ag y h ató az in v erteren való áth a la d á s k ésle lte tésé h ez képest,
így m in d en szánd ék és ccl te k in te té b e n a c-nél levő jel ugyanolyan jó , m in t az a- 3.27. ábra. D-tárolók és-flip-fiopok
nál levő e re d e tije i.
A m ik o r az És k ap u b a n a í> és c b e m e n e te k e t egybe És-eljük, az e re d m é n y egy
rövid im pulzuslökés, am in t azt a 3.25. (b) á b ra m u tatja, ahol az im p u lzu sn ak a 3.3.3. Regiszterek
szélessége A, am i m egegyezik az in v e rte r k ap u késleltetésével, tip ik u san 5 ns vagy
kisebb. A z És k ap u k im e n ete é p p e n ilyen im pulzus, a k ap u k ésleltetésév el e lto l­ A flip-flopok különböző konfigurációkban állnak ren d elk ezésre. Egy egyszerű la p ­
va, ahogy a 3.25. (b) á b ra te te jé n láth ató . E z az elto lási id ő p o n to sa n azt jelen ti, ka k ét független D -flip-fiopot tartalm az, a Törlő (C L R ) és az Előre beállító (P R )
hogy a D -tá ro ló az órajel felem elk ed ő éle u tá n egy fix késleltetéssel k ésőbb a k ti­ jelek k el, ilyet m u ta t be a 3.28. (a ) áb ra is. B ár egybe van tokozva egy 14 lábú la p ­
válódik, de ez nincs h atással a pulzus szélességére. Egy 50 ns-os ciklusidővel re n ­ k ában, a két flip-flop nincs kapcsolatban egym ással. E ttő l teljesen kü lö n b ö ző el­
d elkező m em ó riáb an egy 5 ns széles m in tav ételező im pulzus ele g e n d ő en rövid le ­ re n d e zé s lá th a tó a 3.28. (b) áb rán , egy nyolcas flip-flop. E b b en nyolc D -flip-flop
h et. E b b en az ese tb e n egy teljes á ra m k ö r olyan leh et, m in t a 3.26. áb rá n láth ató . van (e zé rt h asználjuk a nyolcas kifejezést), ahol nem csak a ö és az Törlő vonal h i­
É rd em e s m egjegyeznünk, hogy ez a flip-flop terv szép, m e rt könnyű m eg érten i, de ányzik, h an em az ó rajelek is csoportosítva vannak, és a 11-es láb adja az ó rajelet.
a gyakorlatban gyakran sokkal b o n y o lu ltab b flip-fiopok h aszn álato sak . M aguk a flip-flopok m egegyeznek a 3.27. (d) áb rán b e m u ta to tt típussal, de a flip-
182 3. A DIG ITÁ LIS LO G IK A SZ IN T JE 3.3, M E M Ó R IA 183

k érd és, hogy a 11-es láb m iért van invertálva a b em en e ti oldalon, és azu tá n újból
in vertálva m in d en CK jelnél. Ez azért van, m e rt a b em en e ti jeln ek esetleg nincs
elég áram a, hogy vezérelje m ind a nyolc flip-flopot; a b e m en e ti invertert valójában
e rő sítő k é n t használjuk.
N o h a a 3.28. (b) áb rán áb rázo lt ó ra és tö rlő v o n alak cso p o rto sításán a k egyik oka
az, hogy csö k k en tsék a lábak szám át, ebb en a konfigurációban a lapka m ásképp is
felh aszn álh ató, nem csak m int nyolc független flip-flop. E gyszerű 8 bites reg iszter­
n ek is h aszn álh ató . További lehetőség; k é t ilyen lap k át p árh u zam o san használva ki
tu d u n k a lak ítan i egy 16 bites reg isztert az 1-es és a 11-es lábak összekötésével. A
reg iszte rek rő l és h aszn álatu k ró l a 4. fejezetb en b ő v eb b en lesz szó.

3.3.4. Memóriaszervezés

B ár m ost m ár elé rtü n k a 3.24. áb rán b e m u ta to tt egyszerű 1 bites m em ó riátó l a


3.28. (b) á b rá n áb rázo lt 8 bites m em óriáig, a nagyobb m em ó riák ép ítéséh ez m ás­
fajta szervezés szükséges; olyan, am elyben egyedi szavakat tu d u n k m egcím ezni.
GND
Széles k ö rb en h asználatos m em ó riaszervezést láth atu n k a 3.29. áb rán , am ely telje­
síti ezt az elvárást. E z a p éld a négy 3 b ites szóból álló m em ó riát m u ta t be. M inden
(a)
m űvelet teljes 3 bites szavakat olvas vagy ír. A m íg a m em ó ria 12 bitnyi k ap acitása
Vcc alig több, m int a nyolcas flip-flopé, de kevesebb láb at kíván, és am i a legfontosabb:
20 19 18 17 16 15 14 13 12 ez a tervezés könnyen k iterjeszth ető nagy m em ó riák ra.
a A 3.29. áb rán lá th a tó m em ó ria első rá n ézésre k o m p lik áltn ak tűnik, de v alójá­
x l : b an nagyon egyszerű a szabályos stru k tú rá ja m iatt. Nyolc b em e n ő és h áro m ki­
m e n ő v o n ala van. A h áro m ad at; Ij és a k ét a cím : A^ és A^; és a h áro m a
J U Q D Q D
v ezérlő b em en et: c s (C hip S elect) a lapka kiválasztásához, r d (R ead ) az olvasás és
r-q>CK
CLR
“ö —
r4> CK
CLR
rC|>CK
CLR
-C|>CK
CLR Y írás m eg k ü lö n b ö ztetésére és o e (O u tp u t E n a b le ) a k im en et engedélyezésére. A
h áro m ad a tk im en et: O , és O ,. Elvileg ezt a m em ó riát egy 14 lábas tokozásba
el le h e t helyezni, b eleértv e a táp feszü ltség et és a földet, szem ben a 20 lábas oktá-
lis flip-floppal.
A m em ó rialap k a kiválasztásához a külső logikának be kell állítani cs-t m agasra
CLR CLR CLR CLR
•CK >CK '-CÍ>CK ^C K (logikai 1), és olvasás esetén R o - t is m agasra, írás e setén pedig alacsonyra (logikai
0). A k ét cím vonalat be kell állítani ann ak jelzésére, hogy a négy 3 bites szó közül
Q D Q D Q D
m elyiket sz e retn én k írni vagy olvasni. O lvasáskor az a d a tb e m e n e ti von alak at nem
Q használjuk, a kim en ő vonalak o n viszont m egjelenik a kiválasztott szó. írásn ál az
a d a tb e m e n e ti v o n alak o n lévő b itek b e tö ltő d n e k a kiválasztott m em óriaszóba, a
10 kim en ő a d a tv o n a lak at nem használjuk.
M ost nézzük m eg részletesen 3.29. áb rát, hogy lássuk a m ű k ö d ését. A négy szót
GND
kiválasztó És kapu (a bem eneteivel együtt) a m em ó ria bal o ldalán egy d ek ó d o ló t
(b)
alkot. A b e m en e ti in v erterek úgy v annak elhelyezve, hogy m in d en kapu k ü lö n b ö ­
3.28. ábra. (a) Duális D-fJip-flop. (b) Nyolcas fJIp-flop ző cím ese té n ad ki engedélyező (m ag as) jelet. M inden kapu egy szókiválasztó vo­
n ala t vezérel, fentről lefelé haladva a 0., 1., 2. és 3.-at. A m ik o r a lapka írásra van
flopok (C K -nál lévő) inverziós gö m b jeit h a tá sta la n ítja a .11-es láb in v ertere, így választva, a cs • RÖ-vel jelö lt függőleges vonal lesz m agas, ezzel engedélyezi a négy
a flip-flopok a felfu tó élnél táro ln ak . A nyolc tö rlő jele t szintén c so p o rto síto tták , író k ap u valam elyikét, attól függően, hogy m elyik szókiválasztó vonal a m agas. A z
így am ik o r az 1-es láb 0-ba megy, az összes flip-flop 0 álla p o tb a kerül. F elm erü l a író k ap u k im en ete a kiválasztott szóhoz ta rto z ó összes c k jelet m eghajtja, hogy be-
184 3. A d i g i t á l i s l o g i k a S Z IN T JE 3.3. M EM Ó R IA 185

Adat be A z olvasás h asonló az íráshoz. A cím d ek ó d o lása p o n to san ugyanúgy tö rtén ik ,


m int az írásnál. C sak m ost a cs ■r d vonal alacsony, így az összes író kapu Ictiltó-
dik, és egyetlenegy flip-flop sem m ódosul. E helyett a m egcím zett szókiválaszló vo­
nal érvényesíti azokat az í:s k ap u k at, am elyek a kiválasztott szó Q bitjeivel vannak
összekötve. így a kiválasztott szó küldi az a d a ta it az á b ra alján elhelyezett ncgybe-
m e n e tű v a g y k ap u k ra, míg a m ásik h áro m szó 0-t küld. K övetkezésképpen a v a g y
k ap u k k im en eteln ek érték ei azonosak a kiválasztott szóban tá ro lt érték ek k el. A
h áro m ki n em v álasztott szó nem játszik szerep et a k im enetben.
L áth atju k , hogy a terv ü n k ö n a b e m en e ti és a kim eneti adatvonalak különbözők,
ezzel e lle n té tb en a valódi m em ó riák n ál azonosak. H a közös be- és kim enő v o n a­
lak e se té n ö sszek ö tn én k a v a g y k ap u k at a kim eneti vonalakkal, akkor a lapka írás
idején is m eg p ró b áln a a d a to t küldeni, azaz m indegyik vonalra egy m eg h atáro zo tt
é rté k e t ten n i, és ez összeütközésbe k erü ln e a b e m en e ti adato k k al. E zért kívána­
tos, hogy olyan m egoldást alkalm azzunk, am ely olvasás esetén összeköti a v a c íy
k a p u k a t a k im en eti vonalakkal, de írás esetén teljesen leválasztja. E h h ez szüksé­
g ün k van egy elek tro n ik u s kapcsolóra, am ely egy kap cso lato t néhány ns a latt fel
tu d ép íten i és m eg tu d szakítani.
S zeren csére van ilyen kapcsoló. A 3.30. (a) áb rán egy ilyen kapcsoló, a nem in-
vertáló puffer (noninverting buffer) jelét láthatjuk. Egy a d a tb e m e n e te , egy ad at-
k im en ete és egy v ezérlő b em en ete van. A m ik o r a v ezérlő b em en et m agas, a p u ffer
üg>' viselkedik, m int egy huzal (össze van kötve), ahogy ezt a 3.30. (b) á b ra m u ta t­
ja. A m ik o r a vezérlő b em en et alacsony, a p u ffer úgy viselkedik, m int egy m egszakí­
to tt á ra m k ö r (lásd 3.30. (c) áb ra). E z olyan, m in th a valaki egy drótvágóval levágta
volna az a d a tk im e n e te k e t az á ra m k ö r többi részéről. A zo n b an , ellen tétb en a drót-
vágós m ó d szerrel, a kapcsolat n éhány ns u tán vissza tud állni a vezérlőjel újbóli
m ag asra állításával.
A 3.30. (d) á b ra az invertáló puffért (inverting buffer) m u tatja, am ely úgy vi­
selkedik, m int egy norm ális inverter, ha a vezérlőjel m agas, és am ik o r a vezérlőjel
alacsony, lekapcsolja a k im e n e te t az áram k ö rrő l. A pufferek m in d k ét típusa há-
roniállapotú eszköz (tri-state devices), m ert 0-t, 1-et vagy sem m it (nyitott á ra m ­
k ö r) tu d n a k kibocsátani. A p u fferek erősítik is a jelek et, így nagyon sok b e m e n e te l
2
tu d n a k egyszerre m eghajtani. E bből a célból n éh a m ég ak k o r is használjuk ezeket
az áram k ö rb en , ha a kapcsolási tulajd o n ság u k nem szükséges.

Adat Adat
be ki

3.29. ábra. 4 x 3-as memória logikai diagramja. Minden sor a négy 3 bites szó egyikét
tartalmazza. Az olvasás és írás műveletek mindig a teljes szót olvassák vagy írják Vezérlés
(a) (b) (c) (d )
töltse a b e m en e ti a d a to k a t (a d a t b e) a szóhoz ta rto z ó flip-flopokba. Az írás csak
ak k o r tö rtén ik m eg, h a a cs m agas és az k d alacsony, és csak az A„ és A |-gycl kivá­ 3.30. ábra. (a) Nem invertáló puffer (b) Működése magas értékű vezérlőbemenet esetén, (c)
lasztott szóba tö rté n ik írás; az összes többi szó v álto zatlan u l m arad . Működése alacsony értékű vezérlőbemenet esetén, (d) Invertáló puffer
186 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.3. M EM Ó R IA 187

V isszatérve a m e m ó ria-áram k ö rh ö z, világos a h áro m nem in vertáló p u ffer sze­ B árm ely a d o tt m éretű m em ó rialap k a különböző m ódon szervezhető. A 3.31. áb ­
re p e a k im eneti vonalak o n . A m ik o r cs, r d c s o e m ind m agas, a k im en e te t en g e­ ra két lehetséges szervezését m u tatja egy régebbi 4 M bit-es lapkának: 512 K x 8-as
délyező vonal is m agas, ek k o r engedélyezve van n ak a p u fferek (v ezetn ek ), és el­ és 4096 K X 1-cs szervezését. (M ellékesen m egjegyezzük, a m em órialapkák nagy­
helyezik a szót a kim en eti vonalak o n . A m ik o r cs, r d vagy o e valam elyike alacsony, ságát általáb an inkább b itek b en jelzik, m int bájtokban, így mi is követjük ezt a ko n ­
az ad atk im en etek lek ap cso ló d n ak az á ra m k ö r tö b b i részéről. v enciót.) A 3.31. (a) áb rán 19 cím vonal szükséges a 2'" bájt bárm elyikének megcím-
zcséhez, és nyolc adatvonal szükséges, hogy olvassa vagy írja a kiválasztott bájtot.
A re n d k ed v éért itt egy m egjegyzést teszünk a term inológiához. Bizonyos láb a­
3.3.5. Memóríalapkák k on a m agas feszültség, m ásoknál az alacsony feszültség okoz akciót. A zért, hogy
elk erü ljü k a zavart, köv etk ezetesen azt fogjuk m ondani, hogy egy jel beállított (as-
A z a szép a 3.29. áb rán b e m u ta to tt m em ó riáb an , hogy k ö n n y en k iterjeszth ető n a ­ serted); ah elyett, hogy m agas vagy alacsony, és ez azt jelen ti, hogy úgy van b e á llít­
gyobb m éretek re . A hogy rajzoltuk, a m em ó ria 4 x 3-as, azaz négy szóban egyen­ va, hogy valam ilyen akciót váltson ki. Így bizonyos lábakra a beállítás azt jelen ti,
ként 3 bit van. A hh o z, hogy k iterjesszük 4 x 8-ra, csak az szükséges, hogy h o zzá­ hogy m agasra, m íg m ásoknál azt jelen ti, hogy a lábak alacsonyra vannak állítva.
adjunk öt o szlo p o t négy-négy flip-tloppal, ö t b em e n e ti és ö t k im eneti vonalat. A z alacsony jellel b e állíto tt láb ak a t a jel nevének felülvonásával jelezzük. így a cs
A hhoz, hogy 4 x 3-ról 8 x 3-ra terjesszük ki, m ég további négy sort ad u n k hozzá nevű jel ak k or van beállítva, ha m agas, a cs pedig akkor, ha alacsony. A b eállíto tt
h áro m -h áro m flip-flt)ppal és egy/ljC Ím vonalat. A z ilyen típusú stru k tú rá n ál, a m a­ jel e lle n tettje a negált jel. H a sem m i különös nem tö rtén ik , a lábak negáltak.
xim ális h atékony ság érd e k é b e n a m em ó riáb an lévő szavak szám án ak k e ttő h atv á ­ M ost térjü n k vissza a 3.31. áb rán lévő lapkákhoz. Mivel a szám ítógép általában
nyának kell lennie, de a szavakban lévő bitek szám a b árm ennyi lehet. több m em ó rialapkával rend elkezik, kell egy jel, am ely kiválasztja az aktuálisan
M ivel az in teg rált ára m k ö rö k tech n o ló g iája nagyon alkalm as a rra , hogy olyan szükséges lapkát, ez fog m űködni, az összes többi pedig nem . A « (C hip Select)
lap k ák a t állítson elő, am elyek b első stru k tú rá ja egy ism étlő d ő k étd im en zió s m in ­ jel szolgál e rre a célra. E zt kell beállítani a lapka érvényesítéséhez. Valahogy m eg
ta, a m em ó rialap k ák en n ek ideális alkalm azásai. A hogy a tech n o ló g ia fejlődik, az kell k ü lö n b ö ztetn ü n k az írást az olvasástól. E rre szolgál a we (W rite E n ab le) jel.
egy lapkába elhely ezett bitek szám a növekszik, ez tip ik u san egy k e tte s szorzót je ­ V égül az ()í; (O u tp u t E n ab le) jellel a kim eneti je le k e t vezéreljük. A m ik o r nincs
len t m inden 18 h ó n a p b a n (M o o re tö rvénye). A nagyobb lapkák n em m indig k o m ­ beállítva, a lapka k im en ete le van kapcsolva az áram k ö rrő l.
patibilisek a kisebbekkel, a külö n b ö ző k eresk ed elm i tu lajd o n ság o k a k ap acitás, a A 3.31. (b) áb rá n különböző cím zési sém ákat használunk. B elül ez a lapka egy
sebesség, a teljesítm ény, az á r cs a k apcsolódási felü letek te k in te té b e n . Á ltaláb an 2048 X 2048-as 1 bites cellákból álló m átrix, am ely összesen 4 M bit. A lapkán b e ­
az aktuálisan k a p h a tó legnagyobb lap k ák a t felárral árusítják, és így d rág áb b ak egy lüli cím zéshez először egy so rt jelö lü n k ki a 11 cím lábon a b ite k beállításával.
b itre v onatkozóa n , m in t a régebbi kisebbek. E z u tá n a íía s (R ow A ddress S trobe, sorcím ) k apuzójelet állítjuk be. E zt követi
az oszlop cím ének b eállítása a cím lábakon, végül a ca s (C olum n A ddress S trobe,
AO • AO ---
■ oszlopcím ) kapuzójel beállítása következik. A lapka egy a d atb it befogadásával
A1 ■ A1 ---- ^
A2 ■ A2 vagy kiadásával válaszol.
A3 ■ AB __ ^ H ata lm as m em ó rialap k ák at gyakran n x «-es m átrixként ép íten ek föl, am elyek
A4 ■ DO A4 ---
A5 ■ Dl A5 ■ cím zése sor és oszlop m egadásával tö rtén ik . Ez a szervezés lecsökkenti a szük­
A6 • A6 —
• ^
A7 • 512Kx8-as D2 A7 ■ 4096 Kx 1-es séges lábak szám át, de egyben a lapka cím zését lassabbá teszi; két cím zési ciklus
A8 ■ memória­ D3 A8 memória­ szükséges, egy a sor és egy az oszlop cím zéséhez. Hogy az ilyen tervezésnél vala­
A9 • lapka A9 lapka
A10 • D4 A10 ■
m en n y it visszanyerjünk az elvesztett sebességből, néhány m em ó rialap k án ál a so r­
A tl ■ (4 Mbit) D5 (4 Mbit) cím zést az oszlopcím ek egy so ro zata követheti, hogy egy a d o tt so rb an lévő egym ás
A12---
A13 D6 u tá n i b ite k e t gyorsabban érh essü k el.
A14 D7 RAS ■ É vekkel ezelő tt a legnagyobb m em ó rialap k ák at gyakran a 3.31. (b) áb ráh o z
A15
A16 h a so n ló a n szervezték. A hogy a m em óriaszavak 8 b itről 32 vagy m ég tö b b bitesre
— -
A17--- ► n ő tte k , az 1 bit széles lapkák kezdtek kényelm etlenné válni. 32 lapka szükséges
A18

TXT
cs WE OE
f
CS
t
WE
t
OE
ahhoz, hogy egy 32 bites szavakból álló m em ó riát ép ítsü n k 4096 K x 1 lapkákból.
E n n e k a 32 lap kának a teljes k ap acitása 16 MB, ha pedig 512 K x 8 lapkából csak
négyet kell p árh u zam o san használnunk, ez 2 M B -os m em ó riát jelen t. A nn ak é r­
(a) (b) d e k éb en , hogy e lk e rü lh e tő legyen 32 lapka haszn álata a m em óriához, a legtöbb
lap k ag y á rtó nak jelen leg m ár saját 1, 4, 8 és 16 bit szélességű m em órialapka-csa-
3.31. ábra. 4 Mbit-es rnemórialapka két lehetséges szervezése
ládja van. T erm észetesen a 64 bites szavaknál a helyzet m ég rosszabb.
188 3. A D IG IT Á LIS LO G IK A SZ IN T JE
3.3. M E M Ó R IA 189

to z a ta van a R A M -oknak, a statikus és a dinam ikus. A sta tik u s RAM -ok (SRAM)
belső áram k ö rei hasonló felép ítésű ek , m int a mi alap D -flip-flopunk. E zek n ek a
m e m ó riák n ak az a tu lajdonsága, hogy ta rta lm u k addig m arad m eg, am íg a m em ó ­
ria áram ellá tása biztosított; m áso d p ercek re, p ercek re, ó rák ra, sőt n ap o k ra. A sta ­
tikus R A M -ok nagyon gyorsak. A tipikus elérési idő néh án y ns. E m ia tt a statikus
R A M -o k nagyon n ép szerű k m ásodik szintű g y o rsító tárak (m em ó riák ) ép ítésére.
A d in a m ik u s RAM -ok (DRAM ) az előzőkkel ellen tétb en , n em flip-flopot hasz­
n áln ak . E h ely ett a dinam ikus R A M a cellák egy töm bje, m indegyik cella egy tr a n ­
ziszto rt és egy pici k o n d e n z á to rt tartalm az. A k o n d e n z á to r fe ltö ltö tt vagy kisült,
a n n a k m eg felelően, hogy 0-t vagy 1-et tárol. M ivel az elek tro m o s töltés hajlam os
a szivárgásra, a dinam ikus R A M -ban m in d en b ite t frissíte n i kell (refresh ; reload)
n é h án y e z re d m áso d p ercen k én t, hogy az a d a t ne „szivárogjon e l”. M ivel külső lo­
g ik án ak kell vigyáznia a frissítésre, a dinam ikus R A M -ok ö sszetetteb b k apcsoló­
d ást kívánnak, m int a statik usak, b á r nagyon sok alkalm azásnál ezt a h átrán y t el­
lensúlyozza a nagyobb táro ló k ap acitásu k .
M ivel a d inam ikus R A M -okhoz csak egy tran zisz to r és egy k o n d e n z á to r kell b i­
CS WE OE CS WE OE te n k é n t (szem ben a h a t tran ziszto rral, am elyek a legjobb statikus R A M -hoz b ite n ­
(a) (b) k én t szükségesek), a dinam ikus R A M -oknak nagyon nagy le h e t a sűrűsége (sok
bit van la p k án k én t). E m ia tt a fő m em ó riák m ajdnem m indig dinam ikus R A M -ok-
3.32. ábra. 5 12 Mbit-es memórialapka két lehetséges szervezése
ból ép ü ln e k föl. A zo n b an e n n ek a n a ^ k ap acitásn ak m egvan az ára; a dinam ikus
R A M -ok lassabbak (n éh án y tíz ns). így a statikus I ^ M g y orsítótárak és a d in a ­
A 3.32. áb rán k ét p é ld á t m u ta tu n k m o d e rn 512 M bit-es lap k ák ra. E zek en a la p ­
m ikus R A M fő m em ó riák k om binációja m eg p ró b álja kom binálni m indegyikük jó
kákon négy, eg yen k én t 128 M bit-cs m em ó riam o d u l találh ató , e h h e z két m o d u lk i­
tu lajd o n ság ait.
választó vonal szükséges. A 3.32. (a) áb rán szerep lő terv egy 32 M x 16-os szerve­
A d inam ikus R A M lap k ák n ak szám os típ u sa van. A legöregebb típus, am elyet
zésű, 13 vezeték a jelh ez, 10 vonal a jelh ez és 2 vonal a m odulkiválasztás­
m ég h aszn álnak az F P M (F ást Page M ode, g jo rs lapkezelésű) D R A M . B elseje egy
hoz. E z a 25 jel lehetővé teszi 2-' belső 16 bites cella m egcím zését. Ezzel szem ben
bitm átrix, és úgy dolgozik, hogy a h ard v erb en m egjelenik egy sorcím , a következő
a 3.32. (b) á b ra 128 M x 4-es tervezésű, 13 vezeték a jelh ez, 12 vezeték a cÁs
lép ésb en pedig az oszlopcím , ahogy azt a 3.31. áb rán ál a r a s és jelek k el k a p ­
jelh ez és 2 v ezeték a m o dulkiválasztáshoz. E b b en az e setb en a 27 jel tu d ja a 2” d a ­
cso latb an leírtuk. K ülön je l szólítja fel a m em ó riát, am ik o r dolgoznia kell, így a
rab belső 4 bites cella bárm ely ik ét kiválasztani. M érnöki .szem pontok h atáro zzák
m em ó ria a fő ren d sz e ró rá tó l e lté rő szinkronizációval m űködik.
m eg azt a d ö n tést, hogy hány so ra és hány oszlopa legyen a lapkának. A m átrixnak
A z F P M D R A M -o t azo n b an fokozatosan lecserélik az E D O (E xtended D ata
nem szükséges n égyzetesnek lennie.
O u tp u t, k ite rje sz te tt ad a tk im e n e tű ) D R A M -m al, am ely m egengedi egy m ásodik
E zek a péld ák két e lté rő és egym ástól független m em ó riala p k a tervezési elvet
m em ó riah iv atkozás m egkezdését, m ielő tt az előző b efejező d ö tt volna. E n n ek az
m u tatn ak be. A z első a kim en eti szélesség (b itek b en ); 1 ,4 ,8 ,1 6 vagy hány b ite t to ­
egyszerű szállítószalagelvnek az alkalm azása az egyedi m em ó riah aszn álato t nem
vábbít egyszerre a lapka. A m ásodik, hogy az összes cím bit m eg jelenik-e egyszerre
teszi gyorsabbá, de javítja a m em ó ria sávszélességét azzal, hogy több szót ad m á ­
a lábakon, vagy a so ro k és oszlopok egym ás u tá n je le n n e k m eg, am in t a 3.32. á b rá ­
so d p ercen k én t.
kon láttuk. A terv ező k n ek m in d k ét k é rd ésre válaszolniuk kell, m ég m ielő tt m eg ­
A z F P M és E D O típ u so k elfo g ad h ató an jól m ű ködnek, h a a m em ó rialap k a
kezdik a lapka tervezését.
ciklusideje 12 nsec vagy en n él alacsonyabb. A m ik o r a p rocesszorok olyan gyor­
sak, hogy gyorsabb m em ó ria is szükséges, F P M -et és E D O -t lecserélik SD RA M -ra
(S y n eh ro n o us D RA M ), am ely a statikus és a dinam ikus R A M -ok keveréke, és a fő
3.3.6. RAM -okés ROM-ok re n d sz e ró ra vezérli. A z SD R A M nagy előnye az, hogy az ó ra kiküszöböli azokat
a v ezérlő jelek et, am elyek m eg m o n d ják a m em ó rialap k án ak , hogy m ikor válaszol­
Az eddig m egism ert m em ó riák m indegyikét le h e te tt írni és olvasni. A z ilyen m e ­
jo n . E h ely e tt a C P U m eg m ondja a m em ó rián ak , hogy hány ciklusban kell m ű k ö d ­
m ó riák at R A M -nak (R an d o m Access M em ory, véletlen elé ré sű m em ó ria) hívjuk,
nie, azu tán elindítja. M inden egym ást követő ciklusra a m em ó ria 4, 8 vagy 16 b itet
am ely rossz elnevezés, m e rt a m e m ó rialap k ák m indegyike v é letlen szerű en é rh e tő
b ocsát ki attó l függően, hogy hány kim eneti vonala van. A v e z é r l ő j e l e k elhagyása
cl, de ez a fogalom m á r nagyon m egszokott, n eh é z m eg szabad u ln u n k tőle. K ét vál­
növeli az ad atá tv iteli sebességet a C P U és a m em ó ria között.
190 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.4. C P U L A PK Á K ÉS SÍN EK 191

A z SD R A M következő jav ítása a DDR (Double Data Rate) SD R A M . A z ilyen zönséges E P R O M -o k é n a k , és csak fele olyan gyorsak. Az E E P R O M -o k nem tu d ­
típusú m em óriával a m em ó rialap k a a d a to t bocsát ki m ind az órajel felfu tó élénél, já k felvenni a versenyt a D R A M -okkal vagy az SD R A M -okkal, m ert tízszer las­
m ind a lefutó elénél, m egduplázv'a az ad atseb esség et. így egy 8 bit széles D D R sabbak, százszor kisebb a kap acitásu k és jóval drág áb b ak . E zek et csak azokban a
lapka 200 M H z-es k ö rn y ezetb en m áso d p erce n k é n t 200 m illiószor k ét alkalom m al hely zetek b en alkalm azzák, am ikor a „nem fe le jtő ” képességük a fő szem pont.
8 bites a d a to t b o csát ki (egy rövid in terv allu m b an , te rm é sz e te se n ), teljesítve az e l­ A legújabb E E P R O M -típ u s a flash mem ória (flash memory). E llen tétb en
m életi 3,2 G bps-o s cso p o rto s (b u rst) átviteli sebességet. az E P R O M -m al, am ely ultraviola fénnyel való m egvilágítással tö rö lh ető , és az
E E P R O M -m al, am ely pedig b á jto n k én t, a flash m em ó ria blokkonként! törlést
és ú jraírá st tesz lehetővé. A kárcsak az E E P R O M , a flash m em ó ria is tö rö lh e tő
Nem felejtő m em órialapkák anélkül, hogy az áram k ö rb ő l elm ozdítanánk. K ü lönböző gyártók ap ró ny o m ta­
to tt ára m k ö ri kártyát készítenek tö b b tíz M b-os flash m em óriával, ezek digitális
A R A M nem az egyetlen fajtája a m em ó rialap k ák n ak . Sok alkalm azásnál - p é l­ k a m e rá k b a n k é p ek tá ro lá sá ra „film ként” haszn álh ató k , továbbá sok m ás célra is.
d áu l a játék o k n ál, b e ren d ezések n él, au tó k n á l - a p ro g ram és az a d a to k egy részé­ V alam ikor m ajd flash m em ó riák at h aszn álh atu n k a diszkek helyett, am i óriási e lő ­
nek m eg kell m arad n ia, m ég a k k o r is, ha az á ra m o t kikapcsoljuk. H aso n ló an az relé p és len n e az 50 ns-os elérési idejük m iatt. A legnehezebb m érnöki p ro b lém a
egyszer te le p íte tt alkalm azásokhoz, ahol sem a p ro g ram , sem az ad a t so h a nem je len le g az, hogy 100 000 tö rlés u tán elhaszn áló d n ak , am íg a diszkek évekig m ű ­
fog változni. E zek a kívánalm ak v ezettek a ROM (Read-Only M em ories, csak o l­ k ö d h e tn e k , függetlenül attól, hogy m ilyen gyakran írjuk újra. A k ü lönböző m em ó ­
vasható mem ória) kifejlesztéséhez, am ely nem v álto z ta th a tó m eg, nem tö rö lh e tő riák ró l a 3.33. á b ra ad összegzést.
sem belsőleg, sem m ás m ó d o n . A R O M -b a n tá ro lt a d a to k b e tö lté se a gyártás so ­
rán tö rtén ik , lényegében egy fényérzékeny anyag m aszkon át tö rté n ő m egvilágí­ Bájt­
Típus Kategória Törlés Felejtés Tipikus használat
tásával kezdődik, a m aszk tarta lm a z z a a kívánt b itm in tá t, azu tá n a m egvilágított változtatás
(vagy n em m egvilágított) felü let k im a ra tása következik. C sak egyetlen m ó d o n le­ SRAM Olvasás/Írás Elektromos Igen Igen 2-es szintű gyorsítótár
h e t m egváltoztatni a R O M -b a n tá ro lt p ro g ra m o t, m égpedig úgy, hogy a teljes lap ­ DRAM Olvasás/írás Elektromos Igen Igen Fő memória (régi)
k át kicseréljük. SDRAM Olvasás/Írás Elektromos Igen Igen Fő memória (új)
A R O M -o k jóval olcsóbbak, m it a R A M -ok; h a nagy m ennyiségben ren d eljü k , ROM Csak olvasás Nem lehetséges Nem Nem Nagy berendezések
arányosan csökken a m aszk k észítésé n ek költsége. M ásrészt n em rugalm as, m ert PROM Csak olvasás Nem lehetséges Nem Nem Apró berendezések
nem leh et gyártás u tá n m ó d o sítan i, a m e g ren d elés és a R O M -o k m eg érk ezése EPROM Főleg olvasás UV-fény Nem Nem Prototípusok
kö zö tti fordulási idő h e te k e t v eh et igénybe. H ogy m egkönnyítsék a cégek az új EEPROM Főleg olvasás Elektromos Igen Nem Prototípusok
R O M -alap ú p ro d u k tu m o k elő állítását, k ifejlesztették a PRO M -ot (Program m able Filmként digitális
Flash Olvasás/Írás Elektromos Nem Nem
R O M ), a p ro g ra m o zh a tó R O M -o t. A P R O M h aso n lít a R O M -h o z, de (egyszer) kamerához
m ező -p ro g ram o zh ató , és így m eg ta k a ríth a tó a fo rd u lási idő. Sok P R O M egy ap ró
biztosítékokból álló tö m b ö t ta rtalm az. A speciális olvadó b izto síték o t úgy égetjük 3.33. ábra. A különböző típusú memóriák összehasonlítása
ki, hogy a m egfelelő so ro k at és o szlo p o k at kiválasztjuk, és ezu tá n nagy feszü ltsé­
g et kapcsolunk a lapka m egfelelő lábára.
A következő fejlesztés e b b en az irányban az EPROM (E rasable PROM , töröl­
hető PRO M ), am ely nem csak m ező -p ro g ram o zh ató , h an em m e z ő -tö rö lh ető is. 3.4. CPU lapkák és sínek
A zzal, hogy az E P R O M -o t kvarcüveg ab lak o n át erő s ultrav io la fénnyel 15 percig
m egvilágítjuk, az összes b ite t 1-re állítjuk. H a sok v álto ztatás szükséges a tervezési A z SSl, M SI és m em ó rialap k ák ró l szerzett inform ációval felfegyverkezve, m ost
ciklus alatt, az E P R O M -o k jóval gazdaságosabbak, m in t a P R O M -o k , m e rt e lő b ­ m á r m e g k ez d h etjü k ö sszerakni az egyes részeket, hogy egy k o m p lett ren d szert
biek újra felhaszn álh ató k . A z E P R O M -o k á ltaláb an ugyanazt a szervezést ta rta l­ k ap ju n k . E b b en az alfejezetb en először a központi egység (C P U ) néhány á lta lá ­
m azzák, m int a statik u s R A M -ok. A 4 M bites 27C040 E P R O M p éld áu l ugyanazt a nos sajáto sság át n ézzük m eg a digitális logika szintje felől, b eleértv e a lábkiosztást
szervezést használja, m in t a 3.32. (a) áb rá n b e m u ta to tt tipikus statik u s R A M . (pinout) is (hogy m ilyen je le k v annak a külö n b ö ző lábakon). A k özponti egységek
A z E P R O M -o k n á l m ég jo b b a k az E E P R O M -o k , am elyek im pulzusokkal tö rö l- nagyon szorosan ö sszefonódnak az általu k h aszn ált sínek tervezésével, e z ért egy
h e tő k ahelyett, hogy egy speciális k a m ráb a n ultrav io la fénnyel világ ítan án k m eg b ev ezető is talá lh a tó a sínek tervezéséhez. A következő szakaszokban részletes
őket. R áad ásu l az E E P R O M a helyén p ro g ra m o z h ató ú jra, m íg az E P R O M -o t p é ld á t ad u n k a C P U -k ra, sínjeikre és ö sszekapcsolódásukra is.
eh h ez be kell te n n i egy speciális E P R O M -p ro g ra m o z ó b ere n d e z ésb e . A n e g a tí­
vum , hogy a legnagyobb E E P R O M -o k k ap aciása tip iku san csak 1/64 része a k ö ­
192 3. A d i g i t á l i s l o g i k a SZ IN T JE 3.4. CPU l a pk á k ÉS SiNEK 193

3.4.1. CPU lap kák Címzés Sínütemezés/kiosztás

M inden m o d ern C P U eg yetlen lap k án helyezkedik el. A k ap cso latu k a ren d szer
Segédprocesszor
többi részével jól definiált. M in d en egyes C P U lap k án ak van lábkészlete, ezen k e ­
resztül tartja a k a p c so lato t a külvilággal. N éhány láb k im en eti je le k e t k ap a C P U - Állapot
tól; m ások je le k e t fo g ad n ak a külvilágból; n éh án y m in d k e ttő re képes. A z összes
láb fu n kciójának m eg értésév el m e g tan u lh atju k , hogyan k apcsolódik a C P U a m e ­
Megszakítások Vegyes
m óriához, a b em en e ti/k im en eti (B /K , in p u t/o u tp u t, I/O ) b eren d e z é se k h e z a digi­
tális logika szintjén.
A C P U lapka láb ait h á ro m c so p o rtra o szthatjuk: cím , a d a t és vezérlés. E zek a Földelés
^ <I> +5v szimbóluma
lábak p árh u zam o s h u zalo k o n k eresztü l k ap cso latb an v an n ak a m e m ó ria és a B/K Órajel ^ i
lapkák haso n ló lábaival, e z ek et a p árh u z am o s h u zalo k a t sín n ek hívjuk. Egy u ta ­ nluma
szimbóluma I
5 volt feszültség
sítás b e tö ltéséh e z a C P U elő szö r b eállítja az u tasítás m em ó riacím ét a cím lábain.
E z u tá n b eállít egy vagy tö b b vezériő v o n alat, inform álva a m em ó riát, hogy olvasni 3.34. ábta. Általános CPU logikai lábkiosztása. A nyilak jelzik a bemeneti és a kimenetijeleket.
szeretn e (p éld áu l) egy szót. A m e m ó ria a k é rt szó n ak a C P U a d a tlá b a ira helyezé­ A rövid átlós vonalak jelzik a többszörös lábak használatát, egy-egy konkrét CPU-nál
sével válaszol, és b eállít egy je le t, am ely azt m o n d ja, hogy ez m e g tö rté n t. A m ik o r egy szám jelzi a többszörözés számát
a C P U látja ezt a je le t, elfogadja a szót és v ég reh ajtja az utasítást.
Egy u tasításn ak szüksége leh et adatszavak olvasására és írására, e b b en az e se t­ A to v áb b iak ban rövid en ezek et a k a teg ó riák at tárgyaljuk. K ésőbb, am ikor p é ld a ­
ben a teljes folyam at m in d en további szó e seté b e n m egism étlődik. A z olvasás és k én t m egnézzük a P entium 4, U ltraSP A R C III és 8051 lapkákat, további részle­
írás m ű k ö d ésén ek részleteit k ésőbb nézzük m eg. Jelen leg egyet kell m eg érten ü n k ; tekkel is szolgálunk. Egy általán o s C P U lapka a 3.34. áb rán láth ató jelcso p o rto k at
a C P U a m em óriáv al és a B/K b eren d e z ések k e l úgy ta rtja a k ap cso lato t, hogy je le ­ használja.
k et küld és fogad a lábain. M ásféle k ap cso lat n em lehetséges. A sínvezérlő lábak fő k én t a C P U -ból a sínre tö rté n ő k im en etk én t szolgálnak
K ét lényeges p a ra m é te r h a táro z z a m eg a C P U teljesítm én y ét: az egyik a cím ­ (ezek egyben b e m e n e te k a m em ó ria- és a B /K lap k ák szám ára), m egm ondják,
lábak, a m ásik az a d atláb a k szám a. Egy lap k a m cím lábbal 2"' m em ó riah ely et tu d hogy a C P U olvasni vagy írni akar, vagy valam i m ást a k ar tenni. E zek et a lábakat
m egcím ezni, m szokásos é rté k e 16, 20, 32 és 64. H a so n ló a n egy lap k a n ad atláb b al a C P U a re n d szer többi részén ek vezérlésére használja, és m egm ondja, hogy m it
n b ites szavakat tu d írni és olvasni egyetlen m űvelet so rán . A z általán o s é rté k e k itt szeretn e tenni.
8, 16, 32, 36 és 64. Egy 8 ad atláb b al ren d e lk e z ő C P U négy m ű v elettel olvas 32 b i­ A m egszakítási lábak a B /K b eren d ezések rő l a C P U -b a ta rtó b em en e tek . A leg­
tes szavakat, m íg a 32 a d atláb b al re n d e lk e z ő u gyanezt a fe la d a to t egy m űvelettel tö b b ren d sz e rb e n a C P U m eg m ondja egy B /K b ere n d e z é sn e k (eszköznek), hogyan
végzi el, e z ért a 32 ad atláb a s lapka sokkal gyorsabb, de te rm ész e tese n d rág áb b is. k ezdje el a m ű v eletet, és azu tán m ag ára hagyja, hogy valam i hasznosat csináljon
A cím - és a d a tlá b a k o n kívül m in d en C P U -n ak van n éh án y v ezérlő láb a is. A v e ­ a zalatt, am íg a lassú B /K eszköz elvégzi felad atát. A m ik o r a B /K eszköz b efejez­
zérlő láb ak szabályozzák a folyam atot, a C P U -b ó l és a C P U -b a m ozgó ad a to k id ő ­ te, a B /K v ezérlőlapka e lábak egyikén je le t küld, hogy m egszakítsa a C P U -t, és az
zítését, és további, vegyes funkcióik is v annak. M in d en C P U -n a k v a n n ak lábai az kiszolgálja a B/K b eren d ezést, p éld áu l ellenőrizze, hogy volt-e B /K hiba. N éhány
áram ellátásra (á lta láb a n -1-3,3 vagy 5 volt), a fö ld elésre és az ó raje lre (p o n to san C P U -n a k k im en eti lába is van; ezen nyugtázza a m egszakító jelet.
m e g h atáro zo tt frekvenciájú négyszögjel), de a tö bbi láb lap k áró l la p k á ra erő sen A sín ü tem ezésláb ak a sínen a forgalom irányításához szükségesek: m eg ak a d á­
változik. M in d em ellett, a v e z érlő láb ak at d u rv án a követk ező főbb k ateg ó riák b a lyozzák, hogy k é t b eren d ezés egyszerre használja a sínt. A sínütem ezés te k in te té ­
csoportosíthatjuk: b e n a C P U egy b ere n d e z é sn e k szám ít a sínen, és akárcsak a többi b eren d ezésn ek ,
k é rn ie kell a sín h aszn álatát.
1. Sínvezérlés; N éh án y C P U lap k át úgy terv eztek m eg, hogy eg y ü ttm űködjön a segédprocesz-
2. Megszakítások; szorral (co p rocessor), például a lebegőpontos, grafikus vagy m ás lapkával. A C PU
3. Sínütemezés/kiosztás; és a seg éd p rocesszor k ö zö tti kom m unikáció b izto sítására speciális lábak szolgál­
4. Segédprocesszor jelei; n ak, am elyek küldik és fogadják a kü lö n b ö ző k érések et.
5. Á llapot; E ze k en kívül n éhány C P U -n ak m ás célú lábai is vannak. E zek ném elyike az
6. Vegyes. á llap o tra v o natkozó info rm áció t szolgáltat vagy fogad, m íg m ások a szám ítógép
alap h ely zetb e állításánál h asználatosak, és m egint m ások biztosítják a k o m p a t i b i ­
litást a k o ráb bi B /K lapkákkal.
194 3. A d i g i t á l i s l o g i k a SZ IN T JE 3.4. C P U L A PK Á K ÉS SfN EK 195

3.4.2. Számítógépes sínek tó k által k észített áram k ö ri lapok m eg fognak egyezni m éretb en , és olyan csatla­
kozásokkal fognak rendelkezn i, am elyek m ech an ik u san jól illeszkednek az alaplap
A sín (bús) k ü lö n b ö ző eszközök k ö zö tti közös e lek tro n ik u s pálya. A sín ek et fu n k ­ csad ak o zásaihoz, v alam int a feszültség, időzítés stb. tek in te té b e n is m egfelelnek.
cióik szerint osztályozhatjuk. H asz n á lh a tju k ő k e t a C P U -n belül, hogy a d a to k a t Szám os sínt széles k ö rb en h aszn áln ak a szám ítástechnika világában. N éhány
vigyünk be az A L U -b a vagy o n n a n ki, illetve a C P U -n kívül, hogy összekössük a m a is h aszn álatos és tö rté n e tile g is érd ek es p é ld a az ism erteb b ek közül: O m nibus
C P U -t a m em óriáv al vagy a B /K b e ren d ezések k el. A sínek m in d en egyes típ u sá ­ (P D P -8 ), U n ib u s (P D P -1 1 ), M ultibus (8086), V M E sín (fizikai lab o rató riu m i b e ­
nak sajátos követelm ényei és tu lajd o n ság ai v annak. E b b en és a k ö v etk ező szak a­ re n d ezések ), IB M P C sín (P C /X T ), ISA sín (PC /A T ), E IS A sín (80386), M icro ­
szokban azo k ra a sín ek re k o n ce n trálu n k , am elyek a C P U -t a m em ó riáv al és a B/K Channel (PS/2), N ubus (M acin to sh ), PC I sín (sok P C ), SC SI (sok P C és m u n k aál­
b eren d ezések k el k ö tik össze. A k ö v etk ező alfejezetb en a C P U -n belüli sín ek et lom ás), U niversal Serial B ús (m o d e rn PC -k) és F ireW ire (szó ra k o z ta tó e le k tro n i­
vizsgáljuk m eg k ö zelebbről. ka). V alószínűleg jo b b lenne a világ, ha egy kivételével h irtelen m in d en sín eltű n n e
A korai szem élyi szám ító g ép ek n ek eg yetlen külső sínje vagy rendszersínje (sys- a föld színéről (ren d b en , m a ra d h a t k e ttő ). Sajnos a szabványosítás ezen a te rü le ­
tem bús) volt. E z a sín 5 0 -100 p árh u z a m o s rézv ezeték b ő l állt, am elyet b e é p íte tte k te n elég valószínűtlen, m e rt m á r túl so k at fe k te tte k be ezekbe a nem kom patibilis
az alap lap b a (m o th e rb o a rd ), szabályos távolságokban csatlak o zó k at h elyeztek el, ren d szerek b e.
hogy m em ó riát és B /K k árty ák at leh essen csatlak o ztatn i. A m o d ern szem élyi szá­ T é rjü n k át a sínek m ű k ö d ésén ek a tanulm ányozására. N éh án y sínhez csatlak o ­
m ító g ép ek b en általáb an egy speciális célú sín áll ren d elk ez é sre a C P U és a m e m ó ­ zó b e re n d ez és aktív, és átvitelt tud kezdem ényezni, m íg m ások passzívak és k é ­
ria között, és (leg aláb b ) egy m ásik sín a B /K b e re n d e zé se k szám ára. A 3.35. á b rán ré se k re várnak. A z aktívakat m estereknek (m asters) hívjuk, a passzívakat pedig
egy m inim ális ren d sz e r lá th a tó egy m em ó ria- és egy B /K sínnel. szolgáknak (slaves). A m ik o r a C P U a Icm czvezerlőtől egy blokk olvasását vagy
írásá t k éri, a C P U m e ste rk é n t viselkedik, a lem ezvezérlő p ed ig szolga. K ésőbb
CPU lapka azo n b an a lem ezvezérlő m esterk é n t is viselkedhet, am ik o r a m em ó rián ak ad ki
p aran cso t, hogy fogadja el azt a szót, am elyet a lem ezm eghajtóból olvasott. A
Sínek
3.36. á b ra n éh án y tipikus m e ste r és szolga ko m b in áció t m u ta t be. A m em ó ria so­
Regiszterek
h asem le h et m ester.
r
--- j K
-------------- V.......... y Mester Szolga Példa
CPU Memória Utasítások és adatok betöltése.
CPU B/K eszközök Adatátvitel kezdeményezése.
ALU CPU Segéd processzor CPU felkínálja az utasítást a segédprocesszornak.
B/K Memória DMA (Direct Memory Access, direkt memóriaelérés).
Segédprocesszor CPU A segédprocesszor átveszi az operandusokat a CPU-tól.
Lapkán belüli sín

3.36. ábra. Példák a sínmesterekre és -szolgákra


3.35. ábra. Számítógépes rendszer több sínnel
A szám ító gép b eren d ezései által k ib o csáto tt b in áris jelek, gyakran nem elég
A z iro d alo m b a n a sín ek et gyak ran vastag nyíllal áb rázolják, am in t az áb rán is erő sek , hogy eleg e n d ő ára m o t ad jan a k a sínnek, főleg akkor, ha a sín m eg leh e­
látszik. A vastag nyíl és a sim a v onal k ö zö tti külö n b ség (az utó b b i egy kisebb átlós tő sen hosszú, és sok b e re n d ezés van rajta. E z é rt a legtöbb sín m ester egy sínve­
vonallal á th ú z o tt és egy b itszám is van ra jta ) kényes dolog. A m ik o r az összes bit zérlőnek (bús driver) n ev ezett lapkával kapcsolódik a sínhez, m ely lényegében
azonos típusú, m o n d ju k , m ind cím - vagy m ind ad atb it, a k k o r általá b a n ez a rövid egy digitális erősítő. H aso n ló an , a legtöbb szolga egy sínvevövel (bús receiver)
átlós vonalas jelö lés haszn álato s. A m ik o r cím -, a d at- és vezérlési v o n alak van n ak kap cso ló d ik a sínhez. A zok a b eren d ezések , am elyek m esterk é n t és szolgaként is
együtt, a vastag vonal a szokásos. m ű k ö d h e tn e k egy k o m b in ált lap k át használnak, a sínadóvevőt (bús transceiver).
Míg a lapka b elsejéb en a C P U -terv ező k szab ad o n h a szn álh atn ak bárm ilyen E zek a sínhez kapcsolódó (bús in terface) lap k ák nagyon gyakran h á r o m á l l a p o t ú
sínt, addig a külső sínek m ű k ö d ésére v o natk o zó a n p o n to sa n m eg h a tá ro z o tt szab á­ (tri-state ) eszközök, hogy lek ap cso ló d h assan ak a sínről, am ik o r nem szükséges a
lyokra van szükség, ezzel leh ető v é téve, hogy h arm a d ik fél te rv ezte k á rty á k a t is a k apcso lat, m ásk o r pedig nyílt gyűjtők (open collector), am elyek n ém ik ép p e ltérő
ren d szerh ez lehessen csatlak o ztatn i, és e szabályokat a csatlak o ztatn i kívánt összes m ó d o n k ap cso ló d n ak a sínhez, de ugyanezt a h a tá st érik el. A m ik o r k ét vagy több
b eren d ezésn ek b e kell ta rta n ia . E ze k e t a szabályokat hívjuk sínprotokollnak (bús b e re n d e z é s egy ilyen nyílt gyűjtő vonalon egyidejűleg b eállít egy jelet, az összes jel
protocol). Szükség van m echanikai és elek tro n ik u s e lő íráso k ra is, így a más gyár- VAGY k ap cso lata szolgáltatja az ered m én y t. E zt az e lren d ezést gyakran huzalo-
196 3, A d i g i t á l i s l o g i k a SZ IN T JE 3.4. C P U L A P K A K É S S IN E K 197

z o tt VAGY-nak (w ired-O R ) hívják. A legtöbb sínen n éh án y vonal h áro m á lla p o tú , a A cím 20 bitje
többi pedig, am elyek h u zalo z o tt VAGY tu lajd o n ság o t igényel, nyílt gyűjtő.
A C P U -h o z h aso n ló an , egy sínnek is v an n ak cím -, a d a t- és vezérlővonalai.
A zo n b an nem szükségképpen egy-egy érte lm ű a m eg feleltetés a C P U lábai és a
sín jelei kö zö tt. P éld áu l n éh án y C P U h áro m láb o n kódolja, hogy a m em ó riáb ó l o l­ Vezérlés
vas, a m em ó riáb a ír, B/K-ról olvas, B/K-ra ír vagy m ást csinál. Egy tipikus sínnek A cím 4 bitje
van egy von ala a m em ó riáb ó l olvasásra, egy m ásik a m em ó riá b a írásra, egy h a rm a ­
dik a B/K-ról olvasásra, egy negyedik a B/K-ra írásra és így tovább. Egy d ek ó d o ló
lap k ára van szükség a C P U és az ilyen típ u sú sín közé, hogy m eg feleltesse a k ét Vezérlés
A cím 8 bitje
oldalt, azaz, hogy a 3 bites k ó d o lt je le l k ü lö n b ö ző je lek re válassza szét, am elyek a
sín v onalait vezérlik. í>
A sín tervezése és m ű k ö d ése m e g leh ető sen bony o lu lt tém a, e z é rt több, k izá­
rólag e té m án ak szen telt könj'v je le n t m eg (A n d erso n és társai, 2004; Solari és Vezérlés
W illse, 2004). A sín te rv ezésén ek alap v e tő kérd ései: a sín szélessége, időzítése és (0
ü tem ezése, valam in t a sínm űveletek. E te rü le te k m indegyike lényeges hatással
van a sebességre és a sávszélességre. M ost vizsgáljuk m eg e z ek et egy en k én t a k ö ­ 3.37. ábra. A címsín szélességének növekedése az idők folyamán
vetkező négy szakaszban.
N em csak a cím vezetékek szám a h ajlam os idővel a n ö vekedésre, ugyanez tö rté ­
nik az a d atv e zeték ek szám ával is, b ár ez u tó b b in ak valam ennyire m ás az oka. K ét
3.4.3. Sínszélesség m ó d o n tu d ju k egy sín sávszélességét m egnövelni: vagy csök k en ten i kell a sínciklus
id ejét (tö b b adatátvitel/s), vagy növelni kell a szélességet (tö b b b ite t kell átvinni
A sín szélessége az egyik legnyilvánvalóbb tervezési p a ra m é te r. M inél tö b b cím ve­ egyszerre). U gyan egy sínt fel is le h e t gyorsítani, de ez nehéz, mivel az egyes veze­
zeték e van egy sínnek, an n ál nagyobb m em ó riá t tu d a k ö zp o n ti egység kö zv ed en ü l té k e k e n a je le k kissé e lté rő sebességgel h alad n a k - ez a p ro b lém a sín aszím m etria-
m egcím ezni. H a egy sín n ek n cím vezetéke van, ak k o r azt a C P U 2" k ü lö n b ö ző m e ­ k é n t (bús skew) ism ert. M inél gyorsabb egy sín, annál nagyobb az aszim m etria.
m óriarekesz m eg cím zésére tu d ja használni. N agy m em ó ria h a szn álatáh o z a sínek A m ásik p ro b lém a a felgyorsítással, hogy a felgyorsított sín visszafelé m ár nem
sok cím vezetéket igényelnek. E z elég eg yszerűen hangzik. lesz ko m patibilis. A z alacsonyabb sebességű sínhez terv ezett régi kárty ák n em fog­
A szélesebb sín ek tö b b v ez eté k e t igényelnek, m in t a keskenyek. E zenkívül tö b b n a k m ű k ö d n i az újjal. A régi kártyák alk alm atlan n á nyilvánításának n em fognak
fizikai helyet is foglalnak (p éld á u l az a lap lap o n ), v alam in t nagyobb csatlak o zó k ­ ö rü ln i sem a régi kártyák tulajd o n o sai, sem előállítói. E z é rt a teljesítm ény n ö v elé­
ra van szükségük. M ind ezek a tényezők egyre k ö h ség eseb b é teszik a síneket. sén ek az a szokásos m ódja, hogy az ad a tb ite k szám át növelik a 3.37. áb rá n b em u ­
Szem m el lá th a tó a n összefüggés van a m axim ális re n d sz erm em ó ria és a ren d szer ta to tth o z h aso n ló an . A zo n b an , ahogyan az v árható, ez a fokozatos növekedés nem
költsége között. Egy 64 cím vezetékes sínnel és 2-’^ b ájt m em óriával ren d e lk e ­ vezet végül egy tiszta koncepcióhoz. A z IB M PC és u tó d ai p éld áu l 8 bites a d a tsín ­
ző ren d szer tö b b e fog k erü ln i, m in t az, am elyiknek csak 32 cím vezetéke van és ről 16 b itesre, m ajd 32 b itesre fejlő d tek lényegében válto zatlan sín m ellett.
ugyanakkora, 2^^ b ájt m em ó riája. A k ésőbbi bővítés leh ető ség e sincs ingyen. A tervezők, hogy m egkerüljék a túl széles sínek p ro b lém áját, id ő n k é n t a m ul­
finnek a felism erésnek a következm énye, hogy sok rendszertervező hajlam os a rö ­ tiplexeit sín t (m ultiplexed bús) részesítik előnyben. E b b e n a k o n stru k ció b an , a h e ­
vidlátásra, am inek később szerencsétlen következm ényei lehetnek. A z ered eti IB M lyett hogy k ü lö n cím - és k ü lön ad atv ezeték ek len n én ek , m ondjuk, 32 v ezeték van
PC’ egy 8088 típusú C P U -t tartalm azo tt és egy 20 bites cím sínt, am int az a 3.37. (a) a cím ek nek és a d a to k n a k együtt. A sín m ű k ö d ésén ek k ezd etén a v ezeték ek et a
ábrán látható. E z a 20 bit 1 M B m em ória m egcím zését tette lehetővé a PC szám ára. cím zéshez használják, a k ésőbbiekben p ed ig ad atto v áb b ításra. M em ó riáb a írás
A m ikor a követk ező C P U lap k a (a 80286) m eg jelen t, az In tel elh a tá ro z ta , hogy e se té n ez p é ld á u l azt jelen ti, hogy a cím vezetékeket kell először b eállítan i, és a cí­
m egnöveli a cím tarto m án y t 16 M B -ra, így négy ú jab b cím v ezeték et k ellett h o zzá­ m e t a m em ó riáh o z ju tta tn i, m ielő tt az ad ato k a sínre k e rü lh etn én ek . K ülön veze­
adni (anélkül, hogy az e re d e ti 20 v eze ték e t b á n to ttá k volna, hogy a k o m p atib ilitást té k e k ese tén a cím et és az a d a to t egyszerre leh etn e felten n i a sínre. A vezeték ek
m egtarthassák), ez láth a tó a 3.37. (b) áb rán . A z új cím vezetékek m ia tt azo n b an m ultiplexelése csökkenti a sín szélességét (cs a költség ek et), ugyanakkor lassabb
több vezérlőjelre is szükség volt. A m ik o r a 80386 m egjelent, további 8 cím v ezeték ­ re n d sz e rt ered m én y ez. A sín terv ező k n ek g o n d o san m érleg eln iü k kell m in d ezek et
kel bővítették, tö b b új vezérlő v ezeték k el együtt, am in t az a 3.37. (c) á b rá n láth ató . a leh ető ség ek et, am ikor kiválasztják a m egfelelőt.
A z eredm ényül k a p o tt kialak ítás (az E IS A sín) sokkal re n d e z e tle n e b b , m in th a a
s í n n e k m á r k ezd etb en 32 cím vezetéke lett volna.
198 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.4. C P U l a p k á k ÉS SiN EK 199

3.4.4. Sínek időzítése

A sínek két diszjunkt k a te g ó riá b a cso p o rto síth ató k , az id ő zítésüktől függően. A
szin k ro n sín n ek (sy n ch ro n o u s b ú s) van egy v ezeték e, am elyre egy kristályoszcil­
láto r van kapcsolva. E zen a v ezeték en egy általá b a n 5 és 100 M H z közé eső frek ­
venciájú négyszög hullám o k b ó l álló jel halad. M in d en síntevékenység ezek n ek a
négyszög h u llám o k n ak , a sín cik lu so k n ak (b ú s cycles) az egész szám ú tö b b sz ö rö ­
séig ta rt. A m ásikfajta sínnek, az a szin k ro n sín n ek (a sy n ch ro n o u s bús) nincs ilyen
fő ó rajel-g en eráto ra . A sínciklusok hossza igény szerint b á rm e k k o ra leh et, és nem
kell, hogy m inden eszk ö zp ár k ö zö tt azo n o sak legyenek. A z aláb b iak b an m egvizs­
gáljuk m in d k ét típ u sú sínt.

Szinkron sín

A szinkron sín m ű k ö d ését vizsgáljuk m eg egy p éld án , nézzük a 3.38. (a ) á b ra id ő ­


zítését. E b b e n a p éld áb a n 100 M H z-es ó ra je le t haszn álu n k , am i 10 ns-os sínciklust
je le n t. E z ugyan kissé lassú n ak tű n ik a C P U 3 G H z-es vagy m ég an n ál is nagyobb
sebességéhez, valójában kevés en n él lényegesen gyorsabb P C sín létezik. P éld áu l a
nép szerű PC I sín á ltaláb a n 33 vagy 66 M H z-en dolgozik. A jelen leg i sínek lassúsá­
gának okait m á r fe n teb b ism ertettü k : tech n ik ai tervezési p ro b lé m á k , m in t p éld áu l
(a)
az aszim m etria és a visszafelé k o m p atib ilitás k érd ése.
P éld án k b an feltesszük továbbá, hogy a m em ó riáb ó l tö rté n ő olvasás 15 ns időt
igényel, attó l szám ítva, hogy a cím a sínen van és stabil. A m in t azt h a m aro san lá t­
Mérték­
hatjuk, ezekkel a p a ra m é te re k k e l egy szó beolvasása h áro m ó raje le t igényel. Az Jelölés Paraméter Minimum Maximum
egység
első ciklus a felfu tó élénél kezd ő d ik el és a h arm a d ik a felfu tó élén él é r vé­
Cím megérkezése a sínre 4 ns
get, ahogy ez a 3.38. á b rán láth a tó . Figyeljük m eg, hogy egyetlen felfu tó vagy le ­
fu tó él sincs függőlegesen rajzolva, m ivel sem m ilyen elek tro m o s jel nem tu d ja a A cím a sínen van MREQ jel előtt T^j^-lel 2 ns
nagyságát 0 s idő a latt m eg változtatni. E b b e n a p é ld á b a n feltesszük, hogy 1 ns MREQ megjelenése O lefutó éle után T,-ben 3 ns
szükséges egy jel szám ára, hogy m egváltozzon. A z órajel, a cím , az adat, az mreq , RD megjelenése <l) lefutó éle utáni,-ben 3 ns
az RD és a waít jele k u g yanabban az id ő sk áláb an v an n ak ábrázolva.
Tps Az adat megjelenése <
1>lefutó éle előtt 2 ns
A T | k ez d e té t az órajel felfu tó éle definiálja. A Tj p erió d u s k ö zb en a C P U fel­
teszi a kívánt m em ő riaszó cím ét a cím vezetékekre. A cím nem egyetlen jel, m int ”^MH MREQ megszűnése <I>lefutó éle utánT^-ban 3 ns
m ondjuk az órajel; ezért nem tu d ju k egyetlen vonallal ábrázolni, h a n e m csak k e t­ RD megszűnése (I) lefutó éle után I,-bán 3 ns
tővel, am elyek ak k o r k eresztező d n ek , h a a cím m egváltozik. Továbbá, az árn y ék o ­
Az adatok tartási ideje az RD jel negációja után 0 ns
lás a k eresztezés e lő tt azt jelen ti, hogy az árn y ék o lt é rté k n em fo n to s. U gyanezt az
árnyékolási konvenciót használva láth atju k , hogy az a d atv e zeték ek ta rta lm a sem
(b)
lényeges, csak am ik o r m á r jól b e n n vagyunk a T ,-b an.
A m ik o r a cím vezetékek m ár a b b a n az á lla p o tb a n vannak, hogy é p p en felveszik 3.38. ábra. (a) Az olvasás időzítése egy szinkron sínen, (b) Néhány kritikus időtartam
az új érté k ü k e t, az mreq és az rd je le k e t b eállítják. A z elő b b i azt jelzi, hogy a m e ­ specifikációja
m ó ria (nem ped ig egy B /K eszköz) e lérése van fo ly am atb an , az u tó b b i jel olva­
sásnál alacsony, írás e setén n eg ált (m agas). M ivel a m em ó ria szám ára 15 ns szük­ (w ait sta te s) szúr be (további sínciklusokat), am íg a m em ó ria be nem fejezi a fel
séges, m iu tán a cím stabil (valahol az első ciklus b e lsejéb en ), e zé rt nem tu d ja a d a tá t, és nem negálja a w j t jelet. A p éld án k b a n 1 várak o zó állap o t k erü lt be (a
alatt szolgáltatni a kívánt ad a to t. H ogy közölje a C PU -val, hogy ne várjon az a d a t­ T j), mivel a m em ó ria túl lassú. A T , k ezd etek o r, am ik o r m ár biztos, hogy ebben a
ra, a m em ória je le t k üld a wait v ezeték en k ezd etek o r. E z várakozó állapotokat ciklusban m eglesz az ad at, a m em ó ria negálja a jelet.
200 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.4. C P U l a p k á k ÉS SÍN EK 201

A T első feléb en a m em ó ria felteszi az a d a to k a t az ad atv e z e té k e k re. A T , le ­ m eg felelője, hogy egy p ro g ram o zó m egválaszthatja, hogy a szabad m ágneslem ez
futó élén e k h a tá sá ra a C P U leolvassa az ad atv o n a la k a t, és feljegyzi az é rté k e t egy blo k k o k at egy b itté rk é p b e n 0-kkal vagy 1-ckkcl ábrázolja. A felülvonással jelölt
belső regiszterben . M iu tán a C P U b eolvasta a z a d a to t, n egálja az m r t o és r d je ­ v ezérlő jelek (például m r e q ) aktív állap o ta a logikai alacsony szint.
leket. H a szükséges, az ó rajel k ö vetkező felfu tó élén él újab b m em óriaciklus k ez­
dő d h et. E z a tevékenység ism é tlő d h et vég nélkül.
A 3.3S. (b) időzítési specifikáció az időzítési d iag ram o n lá th a tó nyolc jelö lés je ­ Az aszinkron sín
len tését m agyarázza. A p éld áu l az az id ő intervallum , am ely a T, felfu tó éle és
a cím vezetékek beállása k ö zö tt telik el. A specifikáció szerin t £ 4 ns. E z azt je ­ B ár a szinkron sínekkel diszkrét időintervallum aik m iatt egyszerűbben dolgoz­
lenti, hogy a C P U -g y ártó cég g aran tálja, hogy bárm ely olvasási ciklusban a C P U h atu n k , m égis van néh án y p ro b lém áju k . P éldául m in d en a sínciklus tö b b szö rö sé­
kiírja a beolvasni kívánt m em ó ria cím ét 4 ns-on belül a felfu tó élén e k k ö z ép ­ vel m ű k ö d ik . H a m o n d ju k a C P U végre tu d n a h ajtan i egy átvitelt 3,1 órajelciklus
p o n tjátó l szám ítva. a latt, azt m eg kell nyújtani 4,0 ciklusra, m ert a tö rt ciklusok n em m eg en g ed ettek .
A z időzítési specifikációk azt is m egkövetelik, hogy az a d a t h o z z áférh e tő legyen A m i m ég rosszabb, ha kiválasztották a sín frekvenciáját, m ajd elkészítették
az ad atsín en legalább (2 ns) idővel T , lefu tó éle elő tt, hogy elég id ő m ara d jo n a m em ó ria- és a B /K k árty ák at, m á r n eh éz a jö v ő b en bek ö v etk ező technológiai
a stabilizálódásra, m ielő tt a C P U leolvassa. és fe lté te le k k o m b in áció já­ v áltozások előnyeit kihasználni. Tegyük fel, hogy néh án y é w e l azután, hogy a
ból adódik, hogy a legrosszabb e se tb e n a m e m ó riá n a k csu p án 2 5 - 4 - 2 = 19 ns 3.38. á b rá n lá th a tó ren d szer elkészült, új m em ó rialap k ák je le n n e k m eg, 8 ns el­
idő áll a ren d elk ez é sé re az ad a t szo lg áltatására attó l szám ítva, hogy a cím m eg je­ érési idővel 15 ns helyett. E z m eg szab ad íth atn a a várakozási állap o to k tó l, ami
lenik a vezeték ek en . Egy 15 ns-os m em ó ria m eg a legrosszabb e setb en is m indig m eg g y o rsíthatná a gépet. A zu tán m o ndjuk 4 ns-os m em ó riák je le n n é n e k m eg. Ez
tu d válaszolni a T j p erió d u s alatt, mivel 15 ns eleg en d ő . Egy 20 ns-os m e m ó rián ak a zo n b an m á r nem hozna további nyereséget a teljesítm ényben, m e rt a m e m ó riá ­
m ár ép p en nem eleg en d ő ez az idő, és egy m ásodik v árak o zó á lla p o to t is b e kell ból olvasás m inim ális ideje eb b en a terv b en 2 órajelciklus.
szúrnia, és csak a a la tt tu d válaszolni. K issé m ásk ép p en m egfogalm azva ugyanezt, ha egy sínen az eszközök egy h e ­
A z időzítési specifikáció g a ra n tá lja továbbá, liogy a cím 2 ns-m al a z e lő tt felkerül te ro g é n halm aza találh ató , egyesek gyorsak, m íg m ások lassúk. A gyors eszközök
a sínre, m ielő tt az m r l o je le t b eállítan ák . Ez az idő fo n to s leh et, ha m r e q vezérli nem tu d ják hasznosítani a képességeiket, mivel a sín sebességét a leglassabbhoz
a m em ó rialap k a kiválasztó je lé t ( i ^ ) , mivel bizonyos m em ó riák elv árn ak egy b i­ kell igazítani.
zonyos cím beállási időt a lap k a kiválasztása elő tt. N yilvánvalóan, egy re n d s z e rte r­ A h e te ro g én technológiával készült eszközöket kezelni tudjuk, h a á tté rü n k az
vezőnek n em szabad olyan m em ó ria la p k á t választani, am elynek 3 ns cím b eállási aszinkron sínre, am elyben nincs órajel, ahogyan az a 3.39. áb rán láth ató . A helyett,
időre van szüksége. hogy m in d en t az ó rajelh ez k ö tn én k , a k ö v etk ező k ép p en já ru n k el; m iu tán a sín­
A és v o n atk o zó fe lté tele k azt jelen tik , hogy az m r e q és az r d jelek m e ster b e á llíto tta a cím et, az m r i ; q , az r d je le k e t és m in d en m ást, am ire m ég szük­
m indegyike beáll 3 ns-on belül T j lefu tó élétől szám ítva. A legrosszabb e se tb e n a ség van, b eállít egy speciális v ezérlőjelet, am elyet m s y n (M aster S Y N chronization)
m em ó rialap k án a k csak 10-1- 1 0 - 3 - 2 = 15 ns ideje m a ra d az m r e o és az r d b e á l­
lítása u tán , hogy az a d a to t a sínre tegye. E z egy további m egszorítás azon kívül (és
független attó l), hogy 15 ns szükséges azu tán , hogy a cím stabil.
és azt m o n d ja m eg, hogy m ennyi időre v an szükség ah h o z, hogy m r e q
CÍM "
X A kiolvasandó memóriarekesz címe

MREQ
és RD n eg áltra v álto zzan ak azu tán , hogy az a d a to k a t b eolvasták. V égül,
m ondja m eg, hogy a m e m ó riá n a k m ennyi ideig kell m ég ta rta n ia az a d a to k a t a
azt
\
sínen azu tán , hogy az r d je le t n eg álták . A m i a p é ld a k é n t te k in te tt C P U -t illeti, RD
a m em ória eltáv o líth atja az a d a to k a t a sínről, am int az ^ je le t neg álták ; n éh án y
k on k rét C P U ese té n az a d a to k a t en n él egy kissé tovább kell stabilan tartan i.
\
MSYN
S zeretn én k felhívni a figyelm et a rra , hogy a 3.38. á b ra n ag y m érték b en leegysze­
rű sített v álto zata a valódi időzítési feltételek n ek . A valóságban m in d en ese tb e n
sokkal tö b b kritik u s id ő ta rta m o t a d n a k m eg. M ind azo n által jól é rz é k e lte ti a szink-
ADAT Adat
ri’n sín m ű k ö d ését. 3C
U tolsó m egjegyzésünk, hogy a vezérlő jelek aktív álla p o ta leh e t alacsony vagy SSYN
m agas. A sín terv ező jére v an bízva, h o ^ m eg h atáro zza, m elyik a kényelm esebb,
de a választás alap v e tő en tetszőleges. Ú gy te k in th e tő ez, m int a n n a k a h a rd v e r­
3.39. ábra. Aszinkron sín működése
202 3. A d i g i t á l i s l o g i k a S Z ÍN IJ E
3.4. C P U L A PK A K ÉS SiN EK 203

m esterszin k ro n izáció n ak nevezünk. A m in t a szolga ezt m eglátja, elvégzi a m u n k át, m ező m ech anizm us láth ató a 3.40. (a) ábrán. E zen a rajzon egyetlen sínütem ező
am ilyen gyorsan csak tud ja. A m ik o r elkészült, b eállítja az s s y n (Slave S Y N chroni- d ö n ti el, ki következik. Sok C P U -b a be van építve a sínütem ező, de id ő n k én t egy
zatio n ) szolgaszinkronizáció je le t. A m in t a m e ster észleli hogy b e á llíto ttá k az s s y n külö n lap k ára van eh h ez szükség. A sín egyetlen huzalozott-V A G Y k érés v ezeté­
jelet, m egtudja, hogy a ren d elk e z ésé re állnak az a d ato k , e z é rt táro lja azokat, m ajd ket tartalm az, am elyen egyszerre tö b b eszköz is a d h a t jelet. A sín ü tem ező szám á­
negálja a cím vezeték ck et, az m r e q , az r d és a m s y n jelekk el együtt. A m in t a szolga ra nincs sem m ilyen m ód a rra, hogy m egtudja hány eszköz kéri a sínt. A z egyetlen
észleli MSYN negálását, m eg tu d ja, hogy a ciklus véget ért, e z é rt ő is neg álja az S y n dolog, am it m eg tu d külö n b ö ztetn i, hogy van-e kérés, vagy nincs.
jelet, ezzel visszaérk eztü n k a kiindulási állap o th o z, am ik o r m in d en jel negált, és A m ik o r a sín ü tem ező egy sínkérést észlel, b eállítja a használati engedély je ­
az eszközök várak o zn ak a követk ező sín m esterre . let a sín h aszn álato t engedélyező vonalon. Ez a vezeték sorban végigfut az összes
Az aszinkron sínek időzítési d iag ram ján (d e gyakran a szin k ro n sín ek én is) nyi­ B /K eszközön, m int egy olcsó k arácsonyfaégő-füzéren. A m ik o r a sín ütem ezőhöz
lakat használnak , hogy az elő id éző e sem én y ek et és a h a tásaik a t jelöljék, m in t a h o ­ fizikailag legközelebbi eszköz m eglátja az engedélyezést, ellenőrzi, hogy ad o tt-e
gyan a 3.39. áb rá n is tettü k . A z m s y n jel h a tá s á ra m eg jelen n ek az a d a tb ite k a sí­ ki k érést. H a igen, átveszi a sín irányítását, és nem továbbítja az engedélyt. H a
nen, v alam int a szolga b eállítja az s s y n jelet. A z s s y n jel a cím vezetékek, m r e q , r d , n em ad o tt ki kérést, továbbítja az engedélyt a sorban következő eszköznek, am ely
és M STO jelek n eg álá sát ered m én y ezi. V égül az m s y n jel neg álása az s s w n eg álá sát ugyanígy viselkedik, és így tovább, am íg valam elyik eszköz n em fogadja az en g e ­
okozza, am ellyel végződik a beolvasás és a ren d sze r visszatér e re d e ti állap o táb a. délyt, és át nem veszi a sín m ester szerep ét. E zt a m ó d szert lá n co lásn ak (daisy
Az ilyen m ó d o n egym áshoz k ap cso ló d ó je le k h alm azát hívják teljes kézfogás­ ch ain in g ) nevezik. M egvan az a tulajdonsága, hogy lényegileg m in d en eszközhöz
nak (full h a n d sh a k e ). A lényeg négy esem én y t tak ar: p rio ritá st ren d el, am i attó l függ, hogy m ilyen közel van az eszköz a sín ü tem ező ­
höz. A legközelebbi eszköz nyer.
1. MSYN beállítása. A zért, hogy el lehessen kerülni az ütem ezőtől m ért távolságon alapuló im plicit
2. SSYN beállítása válaszul beállítására. p rio ritáso k at, sok sínnek tö b b prioritási szintje van. M inden szintnek van vezetéke a
3. MSYN negálása válaszul s s y n beállítására.
sínhasználat k érésére és sínhasználat engedélyezésére. A 3.40. (b) áb rán láth ató n ak
4. s s y n negálása válaszul m s y n n eg álására.
k ét szintje van, 1 és 2 (az igazi síneknek gyakran 4, 8 vagy 16 szintje van). M inden
eszköz valam elyik szinthez csatlakozik úgy, hogy' a leginkább időkritikus eszközök
V ilágosnak kell lennie m in d en k i szám ára, hogy a teljes kézfogás független az
időzítéstől. M in d en esem én y t egy m egelőző esem én y vált ki, n em egy ú jab b órajel.
Sínhasználat kérése
H a egy a d o tt m ester-szo lg a p á r lassú, az sem m ilyen befolyással sem b ír a k ö v e tk e ­
ző m ester-szolga p á rra , am ely sokkal gyorsabb lehet.
R em éljük, világos, hogy m ilyen előnyei v an n ak az aszin k ro n sínnek, azo n b an
tény, hogy a legtö b b sín szinkron. E n n e k az az o k a, hogy egy szinkron ren d sze rt
könnyebb m egépíteni. A C P U csak beállítja a szükséges je le k e t és a m em ó ria csak Az engedélyező jel ^
lehet, hogy továbbterjed
válaszol. N incs visszacsatolás (kiváltó esem ény és h atás), de ha a k o m p o n e n sek e t
a B/K eszközök láncán,
m egfelelően v álo g atták össze, m in d en m ű k ö d n i fog kézfogás nélkül is. A szinkron lehet, hogy nem B/K eszközök
sín technológiájáb a sok b e fe k te té s is tö rté n t.
(a)
1. színtű sínhasználat kérése

3.4.5. Sínütemezés

E ddig h allgatólag o san feltételeztü k , hogy egyetlen sín m este r van, m ég p ed ig a


C P U . A valóságban, a B /K lap k ák n ak is sín m esterek k é kell válniuk, hogy olvas­
hassák vagy írhassák a m e m ó riát, és hogy m eg szak ításo k at k érh essen ek . A ko p ro -
cesszoroknak (tá rs p ro cesszo ro k n ak ) is szükségük leh e t rá, hogy sín m esterek k é
váljanak. F elm erül a követk ező k érd és; „M i tö rté n n e , h a k é t vagy tö b b eszköz egy­
szerre szeretn e sín m ester le n n i? ” A z a válasz, hogy sín ü tem ező (b ú s a rb itra tio ii) (b)
m echanizm usra van szükség, hogy elk erü lh essü k a káoszt. 3.40. ábra. (a) Centralizált egyszintű sinütemeza láncolt engedélyezéssel,
Az ü tem ező (kiosztási) m ech an izm u s leh et cen tra liz ált vagy d ecen tralizált. (b) Ugyanaz a sínütemező két prioritási szinttel
E lőször tek in tsü k át a cen tra liz ált m echanizm ust. Egy k ü lö n leg esen egyszerű üte-
204 3. A d i g i t á l i s l o g i k a SZ IN T JE 3.4. C P U L A PK Á K ÉS SÍN EK 205

a nagyobb p rioritású h o z kapcsolódnak. A 3.40. (b) áb rán az 1, 2 és 4 eszközök az Sínhasználat


1 prioritási szinthez, míg a 3 és 5 eszközök a 2 prio ritási szinthez kapcsolódnak.
H a több p rio ritási szinten is érk ezik kérés, az ü te m e z ő a sín h aszn álat e n g e d é ­
lyét csak a legnagyobb p rio ritá sú n a k fogja m eg ad n i. A z azon o s p rio ritású eszk ö ­
zök k ö zö tt pedig a láncolás m űködik. A 3.40. (b) á b rá n konfliktus e se té n a 2 esz­
köz m egelőzi a 4 eszközt, am ely viszont m egelőzi a 3 eszközt. A z 5 eszköz p rio ritá ­
sa a legkisebb, mivel a legkisebb p rio ritá sú lán c legvégén találh ató .
M ellékesen m egjegyezzük, hogy technikailag n em szükséges a 2 p rioritási szint­
hez tarto zó engedélyező v ezeték et végigvezetni az 1 és 2 eszközökön, mivel ezek
nem tu d n ak ilyen kérést küldeni. A zo n b an a m egvalósítás szem pontjából kényel­ 3.41. ábra. Decentralizált sínütemezés
m esebb átvezetni az összes engedélyező v ezeték et az összes eszközön, m int speciális
huzalozást tervezni, am ely attól függ, hogy m elyik eszköznek milyen prio ritása van. A m ik o r egyetlen eszköz sem kéri a sínt, a b e állíto tt (m agas) ütem ezési jel végig­
Bizonyos sín ü tem ező k n ek van egy h a rm a d ik v ezeték e is, am ely et a k k o r állít b e h alad a láncon m in d en eszközön keresztül. A hhoz, hogy a sínt lefoglalja egy esz­
egy eszköz, ha fo g ad ta az en gedélyt, és átv ette a sín irányítását. A m in t ezt a nyug­ köz, elő szö r m egnézi, hogy a sín szabad-e, azaz a k a p o tt ü tem ező jel, az i n m agas-e
tázó v ezeték et b eállíto tták , a k érés és en g edélyezés v ezeté k e k et m á r leh et n eg á l­ (b e van-e állítva). H a az i n negált, az eszköz nem leh et sínm ester, és ezért negálja
ni. E n n ek követk ez téb en to vábbi eszközök k é rh etik a sínt, m ia la tt az első eszköz az O U T je let. A zo n b an h a az i n be van állítva, az eszköz negálja az o u t k im enetet;
m ég használja. M ire az ak tu ális ad atá tv itel b efejeződik, a k ö v etk ező sín m ester am i azt ered m ényezi, hogy az u tá n a következő szom szédja n egált in b e m e n e te t lát,
m á r ki van választva. A z o n n al el is k e z d h e t dolgozni, am in t a nyugtázó v e z eté ­ és n egálja az o u t k im en etét. U g y an ezért az u tá n a következő összes eszköz negált
k e t n egálták, ezzel k e z d ő d h e t a k ö v etk ező sín ü tem ezési fo rd u ló . E z az elren d ezés IN b e m e n e te t lát, és negálja az o u t kim enetét. A m ik o r azután leülepszik a por,

egy újabb v ezeté k e t igényel, és tö b b logikát is kell b e é p íte n i az egyes eszközökbe, egyetlen eszköz lesz, am elynél az i n m agas és az o u t negált. E z az eszköz lesz a sín­
azo n b an a sínciklusok jo b b k ih aszn álását eredm ényezi. m ester, aki b eállítja a f o g l a l t és az o u t jelek et, m ajd elkezdi az ad atátv itelét.
A zokban a ren d sz e re k b e n , ahol a m em ó ria a ren d szersín en találh ató , a C P U - N ém i g o n dolkodás u tán kiderül, hogy az a balról legelső eszköz, am ely kéri a sínt,
n ak szinte m in d en ó rajelcik lu sb an versen y ezn ie kell a sín en lévő összes B /K esz­ m egkapja. E zért ez a sém a hasonló az ered eti láncoláshoz, de itt nincs ütem ező,
közzel. A z egyik m eg o ld ás az, hogy a C P U a legkisebb p rio ritá st kap ja, te h á t csak ezért ez olcsóbb, gyorsabb, és nem kell szám olni az ütem ező m eghibásodásával.
akkor k a p ja m eg a sínt, h a senki m ás n em k éri. A z elv az, hogy a C P U m indig tu d
várni, viszont egy B /K eszköznek gyakran gyorsan m eg kell k a p n ia a sínt, egyéb­
k é n t elveszíti a bejövő a d a to k a t. A nagy sebességgel forgó m ág n eslem ezek nem 3.4.6. Sínműveletek
tu d n a k várakozni. A leg tö b b m o d e rn szá m ító g ép ren d szerb en ezt a p ro b lé m á t úgy
k erülik el, hogy a m e m ó riá t egy B /K eszközöktől e lk ü lö n ített sínre helyezik, így E d d ig közönséges sínciklusokkal foglalkoztunk, am elyekben egy m ester (á lta lá ­
n em kell versenyezniük a sín tu lajd o n lásáért. b an a C P U ) a d a to k a t olvas be a szolgától (tipikusan a m em ó riáb ó l), vagy a d ato k a t
A d ecen tralizált sín ü tem ezés szin tén m eg v aló síth ató . P éld áu l, egy szám ító g ép ­ ír ki szám ára. V alójában többféle m ás sínciklus is létezik. M ost ezek közül veszünk
n ek 16 prioritással ren d e lk e z ő v ezeték e le h e t a sín h aszn ála t k é ré sé re . A m ik o r szem ügyre néhányat.
egy eszköz szeretn é a sín t h asználni, b eállítja a v eze té k é t a h a szn álat k érésére. R e n d sze rin t egyszerre egy szó kerül továbbításra. A zonban, ha gyorsítótárat
M in d en eszköz az összes ilyen v eze té k e t figyeli, így m in d en sínciklus végén, m in ­ használnak, egyszerre egy egész gyorsítósor (16 egym ást követő 32 bites szó) átvi­
den eszköz tudja, hogy ő volt-e a legnagyobb p rio ritá sú k é rő eszköz, és hogy m eg ­ te lé re van szükség. A blokkátvitel gyakran haték o n y ab b lehet, m int egyes szavak
k apja-e az engedélyt a sín h aszn ála tra a k ö v etk ez ő ciklusban. Ö sszehasonlítva a átvitele. A m ik o r egy blokkátvitel m egkezdődik, a sín m ester m egadja a szolgának
centralizált ü tem ezéssel, ez az ü tem ezési m ó d szer tö b b sín v ezeték et igényel, vi­ az átvinni kívánt szavak szám át, p éld áu l úgy, hogy a szavak szám át felírja az a d a t­
szont m eg ta k a ríth a tó az ü te m e z ő v á rh a tó k öltsége. E zenkívül az eszközök szám a vez e ték ek re a Tj p erió d u s alatt. E zu tán ahelyett, hogy a szolga egyetlen szót a d ­
nem leh et tö bb a h asználati k érés v ezeték ek szám ánál. na vissza, a to v áb b iak b an m in d en egyes ó rajelp erió d u sb an vissza fog adni egy-egy
Egy m ásikfajta d e cen tralizált sín ü tem ezés lá th a tó a 3.41. áb rán , am ely m in d ­ szót, am íg csak a szám láló ki n em m erül. A 3.42. á b ra a 3.38. (a) á b ra egy m ó d o sí­
össze h áro m v ezeték et használ, fü ggetlenül attó l, hogy hány eszköz van. A z első tá sá t m u tatja, ebb en egy új vezérlőjel, a blTíck beállítása jelzi, hogy blokkátvitelre
huzalozott-V A G Y vonal a sín h aszn ála t k é ré sé re szolgál. A m áso d ik v o n alat fog - van szükség. A b e m u ta to tt p é ld áb a n egy négy szóból álló blokk beolvasása tö r té ­
LALT-nak ( busy ) nevezzük, é s az ak tu ális m e ste r állítja b e. A h a rm a d ik vonal szol­ nik, am ely a k o ráb b i 12 helyett csak 6 órajelciklust igényel.
gál m ag ára az ütem ezésre. E z végig van láncolva az összes eszközön. A lánc feje M ásfajta sínciklusok is vannak. Például, egy többprocesszo ros r e n d s z e r b e n ,
m indig be van állítva úgy, hogy a tápegység az ó ra v e z e ték é re van kötve. am elyben k ét vagy több C P U kapcsolódik r á ugy an arra a sínre, gyakran s z ü k s é g e s
206 3. A d i g i t á l i s l o g i k a s z i n t j e 3.4 C P U L A PK Á K ÉS SÍN EK 207

• INT ■ IRO---
-INTA- ■IR1 ---
Billentyűzet
RD IR2 —
8259A
■IR3 — ■
CPU Megszakítás­
M vezérlő ■IR4 —
CS ■IR5--- I Mágneslemezegység
•IR6--
-D0-D7 -
IR7--- Nyomtató
■3T

+5 V

3.43. ábra. A 8259A megszakításvezérlő használata

M axim um nyolc B /K vezérlőlapka kapcso lh ató közvetlenül a 8259A nyolc i r a


m eg szak ításkérés (In te rru p t R eq u est) b em en e tére. A m ik o r valam elyik eszköz
egy m egszakítást szeretn e kérni, egy je le t küld saját n<x v o nalára. A m ikor a 8259A
egy vagy tö b b b e m e n e té re jel érkezik, akkor a 8259A beállítja az im , m egszakítás
(IN 'Ié rru p t) k im en etét, am ely közvetlenül vezérli a C P U m egszakítás kivezetését.
H a a C P U képes fogadni a m egszakítást, im pulzust küld vissza a 8259A szám ára
an n ak biztosítása, hogy egyszerre csak egy C P U haszn álh asso n valam ilyen kritikus az INTA m eg szakításkérés fogadása (IN T erru p t A cknow ledge) v ezetéken. E zen a
a d a ts tru k tú rá t a m em ó riáb ó l. E rre a célra egy tipikus m egoldás, h a van a m em ó ­ p o n to n a 8259A felteszi az ad a tsín re a b em en e t sorszám át, hogy m egm ondja, m e ­
riáb an egy olyan változó, am ely 0, ha egyik C P U sem h asználja az a d a tstru k tú rá t, lyik b e m e n e te v álto tta ki a m egszakítást. E z a m űvelet egy speciális sínciklust igé­
és 1, ha h aszn álatb a n van. H a egy C P U sz eretn e h o zzáférni az a d a ts tru k tú rá h o z, nyel. A C P U -h ard v er ezu tán ezt a szám ot indexként használva egy p o in te r tá b lá ­
ki kell olvasnia a v áltozót, és ha az é rté k e 0, be kell állítania 1-re. Baj a k k o r tö r té ­ zatból, am elyet m egszakításvektor tá b lá n a k (interrupt vectors) neveznek, a m eg ­
nik, ha egy szeren csétlen véletlen k ö v etk eztéb en két C P U is kiolvassa a válto zó t a d o tt indexű e lem et kiválasztja, ez lesz ann ak az eljárásn ak a kezdőcím e, am elyet
két egym ást követő sínciklusban. H a m ind a k e ttő azt látja, hogy a kontro llv álto zó fu tta tn i kell a m egszakítás kiszolgálásához.
érték e 0, ak k o r m indegyik á tállítja 1-re, és azt g ondolja, hogy ő az egyetlen C P U , A 8259A lap k án a k van néhány belső regisztere, am elyet a C P U tud olvasni
am ely használja. Egy ilyen esem én y so ro zat káoszhoz vezet. és írni n orm ál sínciklusok felhasználásával, v alam int i<n olvasás (R e a D ), w r írás
E zt m eg előzen d ő , a tö b b p ro cesszo ro s ren d sz e re k b e n gyakran van egy olvasás- (W R ite ), lapkakiválasztás (C hip S elect) és ao kivezetései. A m ik o r a szoftver k e ­
m ódosítás-visszaírás sínm űvelet, am ely bárm elyik C P U -n ak lehetővé teszi, hogy zelte a m egszakítást és készen áll a k övetkező fogadására, egy speciális é rté k e t ír a
beolvasson egy szót, m egvizsgálja, és visszaírja a m e m ó riá b a anélkül, hogy közben 8259A egyik regiszterébe, am ely negálja az i n t k im en etet, hacsak nincs m ásik vá­
elen g ed n é a sínt. E z a fajta sínm űvelet kizárja, hogy a C P U egy v ersen y társa hasz­ rak o zó m egszakítás. E zek b e a regiszterekbe leh et írni ak k o r is, h a a 8259A üzem ­
nálni tu d ja a sínt, és így befolyásolja az első C P U m ű k ö d ését. m ódjai közül szeretn én k kiválasztani valam elyiket, le a k aru n k tiltani egyes m eg ­
A sínciklusok egy m ásik fo n to s típusa a m egszakítások k ezelésére szolgál. szak ításo k at vagy engedélyezni szeretn én k m ás funkciókat.
A m ikor a C P U u tasít egy B/K eszközt, hogy tegyen m eg valam it, általá b a n m eg ­ H a tö b b m int nyolc B/K eszköz van jelen , a 8259A -kat sorba leh et kapcsolni.
szakítást vár visszajelzésként, am ik o r a fela d at elkészült. A m egszakításkérés je l­ Szélsőséges esetb en m ind a nyolc in p u t lába nyolc további 8259A k im en etére van
zéséhez szükség van a sínre. kapcsolva, ez lehetővé teszi legfeljebb 64 B /K eszköz összekapcsolását egy k étálla­
Mivel több eszköz k é rh e t m egszakítást egyszerre, h aso n ló ü tem ezési p ro b lém ák p o tú m eg szakításhálózatban. A 8259A -nak van néhány kivezetése, am elyek a sor-
m erü ln ek fel itt is, m in t a közönséges sínciklusoknál. A szokásos m egoldás, hogy b ak ap cso lást kezelik, ezek et m ost m ellőztük az egyszerűség kedvéért.
a / egyes eszközökhöz p rio ritá so k a t ren d elü n k , egy k ö zp o n ti ü tem ező h a sz n á la tá ­ B ár ezzel m ég egyáltalán nem m eríte ttü k ki a síntervezés tém áját, a fenti ism e­
val pedig a leginkább id őkritikus eszközöknek m agas p rio ritást adunk. Szabványos re te k eleg en d ő h á tte re t adnak, hogy m egértsük a sínek m ű k ö d ésén ek lényegét,
m egszakításvezérlő lap k ák v an n ak m ár, és ezek et széles k ö rb en haszn álják is. A z azt, hogy m ik én t m ű k ö d n ek együtt a központi egységek és a sínek. M ost haladjunk
IBM PC és m in d en k övetője a 3.43. áb rán lá th a tó Intel 8259A la p k át használja. az általán o stól a speciális felé, és vizsgáljunk m eg n éh án y valódi k özponti egységei
és a hozzájuk kapcsolód ó síneket.
208 3. A d i g i t á l i s l o g i k a SZ IN T JE 3.5. P É L D Á K C P U l a p k á k r a 209

zikai C P U -t tartalm azn a. A m ik ro a rc h ite k tú rá t a 4. fejezetben fogjuk m egvizsgál­


3.5. Példák CPU lapkákra ni. M in t ahogyan az elődei, a P entium 4 is v é g reh ajth at több u tasítást egyszerre,
E b b en a fejezetb en a P en tiu m 4, az U ltraS P A R C III és a 8051 C P U la p k ák a t vizs­ e z é rt szu p erskaláris szám ítógép.
gáljuk m eg bizonyos részletességgel, h ard v erszin ten . Bizonyos Pentium 4 m o d ellek kétszintű, m áso k h áro m szin tű gy o rsító tárral re n ­
delkeznek. M inden m o dellben van egy 8 KB m é re tű lap k ára integrált S R A M el­
sőszintű (L I) gyorsítótár. A P entium Ill-m a l e lle n tétb en , am elyben az L1 gyorsí­
3.5.1. Pentium 4 tó tá r csak nyers b ájto k at tartalm az, a Pentium 4 továbblép. A m ik o r gépi u ta sítá ­
sok at tölt be a m em ó riáb ó l, azok m ik ro u tasításo k ra kon v ertáló d n ak , hogy v ég re­
A P entium 4 az e re d e ti IB M P C -ben h aszn ált 8088 C P U k özvetlen leszárm a­ h ajth a tó k leh essen ek a P entium 4 R ISC -m agjával. A P entium 4 L1 gyorsítótára
zottja. A z első P en tiu m 4 -et 2000 n o v em b eréb en m u ta ttá k be, m int egy 42 m illió a k á r 12 000 d ek ó d o lt m ik ro u tasítást is képes táro ln i, így nem szükséges azokat is­
tran zisz to rt ta rtalm a z ó C P U -t, am ely 1,5 G H z frekvencián m ű k ö d ö tt és a v e z e té ­ m é te lte n d ekódolni. A m ásodik szintű g yorsítótár legfeljebb 256 KB m é re tű lehet
keinek szélessége 0,18 /^m (m ik ro n ). A v ezeték ek szélessége m u tatja, hogy a tra n ­ a régebbi, és 1 M B lehet az újabb m odellek esetéb en . S em m it sem d ekódol, nyers
zisztorok k ö zö tt m ilyen szelesek a v ezeték ek (és m ag u k n ak , a tra n zisz to ro k n ak a b ájto k at tá ro l a m em ó riáb ó l az L2 gyo rsító tárb an . U tasításo k és ad ato k k everékét
m érete is ek k o ra). M inél kesk en y eb b ek a vezeték ek , annál tö b b tran zisz to r fér a tarta lm az h a tja. A P entium 4 E x trém é E d itio n tartalm az m ég egy 2 M B m é re tű
lapkára. M o o re törvénye alap v e tő en arró l szól, hogy a m é rn ö k ö k k ép esek folya­ h arm ad ik szintű g y o rsító tárat a hatékonyság további növelésére.
m ato san csökken ten i a vezeték szélességet. A kisebb szélesség nagyobb ó ra je l­ M ivel m inden Pentium 4 lap k án a k legalább k é t g yorsítótár szintje van, egy
frekvenciát is m egenged. Ö sszeh aso n lításu l az em b eri haj átm é rő je 20 és 100 m ik ­ m u ltiprocesszoros ren d szern él p ro b lém a m erül fel, ha az egyik pro cesszo r m ó d o ­
ro n k ö zö tt van, a szőke haj fin o m ab b szálú, m in t a fekete. sít egy m em ó riaszó t a g yorsítótárában. H a a m ásik C P U m egpróbálja ezt a szót
A következő h áro m év folyam án az Intel nagy g y ak o rlatra te tt szert a gyártási beolvasni a m em óriából, egy m ár érvén y telen é rté k e t fog kapni, mivel a m ó d o sí­
folyam atban, és to v áb b fejlesztette az á ram k ö rt, am elynek m á r 55 m illió tran zisz­ to tt g y o rsító tár szavak nem író d tak vissza azonnal a m em ó riáb a. Hogy a m em ória
to ra volt, 3,2 G H z frekvencián m ű k ö d ö tt, a v ezeték szélessége p ed ig 0,09 m ikron konzisztens á llap o tát fen n tartsák , a m ultiprocesszoros ren d szer m indegyik C PU -
volt. B ár a P entiu m 4 nagyon m essze esik a 29 000 tran zisz to ro s 8088-tól, m égis ja olyan m em óriaszavak cím e u tá n szim ato l a sínen, am elyek a gy o rsító táráb an
teljesen kom patibilis vele, és m ó d o sítás nélkül tu d fu tta tn i 8088-as b ináris p ro g ra ­ v annak. H a m eglát egy ilyen hivatkozást, közbelép, és a g yorsítótárából m egadja a
m okat (a többi k ö zb eeső p ro cesszo rró l nem is beszélve). k é rt a d a to t, m ielő tt m ég a m em ó rián ak erre esélye lenne. A szim atolást a 8. feje­
S zoftverszem pontból a P en tiu m 4 egy tisztán 32 bites gép. U gyanolyan felhasz­ z e tb e n fogjuk tanulm ányozni.
nálói szintű ISA -szolgáltatásokkal, m int a 80386, 80486, P entium , P entium II, K ét elsődleges külső sínt h asználnak a Pentium 4 ren d szerek b en , m in d k ettő
Pentium P ro és a P en tiu m III k özponti egységek, ugyanazokat a reg iszte rek et ta r­ szinkron. A m em ó riasín t a fő (S )D R A M , a P C I sínt p ed ig a B/K eszközök e lé ré sé ­
talm azza, ugyanazokat a gépi u tasításo k at h ajtja végre, ezenkívül tartalm azza a te l­ re h asználják. Id ő n k é n t egy hagyom ányos (legacy b ú s), k orábbi fajta sín is kap cso ­
jes lE liE 754 lebegőpontos aritm etik ai szabvány lap k ára integrált m egvalósítását. lódik a P C I sínhez, am i m egengedi a régi fajta p erifériák h o z tö rté n ő csatlakozást.
H ard v erszem p o n tb ó l azo n b an a P en tiu m 4 egy részb en 64 bites szám ítógép,
mivel 64 bites egysegekben tu d ja az a d a to k a t m o zgatni a m em ó riáb a, illetve a
m em óriából. B ár a p ro g ram o zó nem figyelheti m eg közvetlenül ezek et a 64 bites
átviteleket, m égis gyorsabbá teszi a szám ító g ép et, m in th a az egy tisztán 32 bites _
szám ítógép lenne. ::::::
B elsőleg, a m ik ro a rc h ite k tú ra szintjén, a P en tiu m 4 azo n b an alap v e tő en k ü ­ ::::::
•••••• ::::::
lönbözik m in d en elő d jétő l. K özvetlen elődei - a P en tiu m II, a P en tiu m P ro és a ••••••
::::::
P entium III - m ind ugyanazt a belső m ik ro a rc h ite k tú rá t (P 6) használták, am ely •••••• ::::::
••••••
••••••
csak sebességben és n é h án y ap ró dolo g b an té rt el. Ezzel szem ben a P en tiu m 4 új ••••••
m ik ro arc h itek tú rá t használ, am elynek a neve N etB u rst, és am ely je le n tő se n e lté r a ____
P6-tól. C sővezetéke tö b b á llap o ttal ren d elk ezik , k ét A L U (A ritm e tik ai és L ogikai ••••••••••••••••••••••••••
••••••••••••••••••••••••••
Egység) talá lh a tó b e n n e (m indegyik a C P U ó rajel-frek v en ciáján ak k étszeresével
m űködik, így egy ciklus a latt k é t m ű v eletet végezhet), to v áb b á tám o g atja a h iper- •••••••••••••••••••••••••
szálak h aszn álatát. Ez u tó b b i tu lajd o n ság két reg iszterk észletet és bizonyos m ás
belső erő fo rrá so k a t biztosít, am elyek lehetővé teszik, hogy a P en tiu m 4 nagyon 3.44. ábra. A Pentium 4 fizikai lábkiosztása
gyorsan átváltso n egyik p ro g ra m ró l egy m ásikra, m in th a csak a szám ítógép két fi­
210 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.5. p é l d á k C P U l a p k á k r a 211

Van egy lényeges külö n b ség a P en tiu m 4 és az elő d ei között: a tokozása. M in d en


m o d ern lapka p ro b lé m ája a felvett en erg ia és a fejlesz tett hő. A P en tiu m 4 a fre k ­
venciától függően 63 W és 82 W k ö zö tti teljesítm én y t használ. K ö v etk ezésk ép p en
az In tel foly am ato san k eresi azo k at a m ó d sze re k et, am elyekkel kezelni tu d ja a
C P U által fejlesztett hőt. A P en tiu m 4 egy 35 m m old alú , négyzet alak ú to k b an k e ­
rül forgalom ba. A to k 478 láb at ta rtalm a z alul, am elyből 85 az e n erg iaellátást biz­
tosítja, 180-at ped ig fö ld eltek a nagyfrekvenciás zaj m érséklése érd e k é b e n . A lá ­
b a k at 26 X 26-os n ég yzetrácsban ren d e z té k el, a k ö zép ső 14 x 14 láb hiányzik. K ét
láb az egyik saro k b an szintén hiányzik; ezzel m eg elő zh ető , hogy a lap k át h ely tele­
nül dugják b e a fo g lalatáb a. A fizikai lábkiosztás a 3.44. áb rá n láth ató .
A lap k ára egy ta rtó k e re te t szereltek a h ű tő b o rd a szám ára, am ely elvezeti a hőt,
és egy v e n tiláto rt a h ű té sre . H ogy k é p e t k ap ju n k arról, hogy m i is a p ro b lém a,
k apcsoljunk be egy 60 W -os izzólám pát, és tegyük a k e zü n k et közel hozzá (d e ne
é rin tsü k m eg). E k k o ra m ennyiségű h ő t kell fo ly am ato san szétsugározni (disszipál-
ni). K ö v etkezésk ép p en , h a egy P en tiu m 4 m egéri, hogy m á r m in t C P U n em hasz­
n o síth ató , m ég m indig jól b e v álh a t k em pingfőzőnek.
A fizika törvényei szerin t, am i sok h ő t sugároz szét, an n a k sok e n erg iá t kell fel­
vennie. Egy h o rd o z h a tó szám ító g ép b en , b e h a tá ro lt en erg iam en n y iség et tá ro ló ak­
k u m u láto ro k k al, a nagy en erg iafelh aszn álás n em kívánatos, mivel gyorsan k im e rí­
ti az ak k u m u láto ro k a t. E n n e k a k é rd ésn ek a m e g o ld ására az In te l k ifejlesztett egy
m ódszert, am ellyel a C P U alvás m ó d b a k ap cso lh ató , am ik o r nincs v ég reh a jta n d ó
utasítás, vagy m ély alvás m ó d b a, am ik o r ez valószínűleg h osszabb ideig így m arad .
Ö t állap o ta van a teljesen aktívtól a m ély alvásig. A k ö zb en ső állap o to k b a n b izo ­
nyos fu nkcionalitáso k (m in t p éld áu l a g y o rsító tár-szim ato lás és a m egszakítások
kiszolgálása) en g ed ély ezettek , a tö b b i azo n b an tilto tt. M ély alvásban a g y o rsító tá­
rak és a reg iszterek ta rta lm a m egőrződik, viszont az ó ra és m ás belső eszközök le­
állnak. M ély alvás e seté n a feléb resztésh ez külső ára m k ö ri jel szükséges. A z nem f e s z ü lts é g
ism eretes, hogy egy P en tiu m 4 tu d -e álm odni, am ik o r m ély alvás állap o tb a n van.
3.45. ábra. A Pentium 4 logikai lábl<io5ztása. A tisztán nagybetűs elnevezésel< az intet hivatalos
elnevezései, a kis- és nagybetűket is tartalmazó nevek az ezekhez kapcsolódó jelek,
A Pentium 4 logikai lábkiosztása illetve elnevezések

A P entium 4 478 érin tk ező jéb ő l 198 jel, 85 táp feszü ltség (n éh án y k ü lö n b ö ző fe ­ elnevezést használnak. A m int az ábrából látszik, a legtöbb P entium 4 jel alacsony
szültségre), 180 földelés és 15 ta rta lé k k ivezetés a jövőbeli fejlesztések céljaira. feszültség értéke az aktív.
N éhány logikai jel k é t vagy tö b b érin tk ez ő t is lefoglal (m in t p é ld á u l a k é rt m e ­ V izsgáljuk m eg a jelek et, kezdve a sín jeleivel. A je le k első cso p o rtja a sínhasználat
m óriacím ), így végül csak 56 k ü lö n b ö ző je l van. B izonyos m érté k ig eg y szerűsített jo g á n ak m egszerzésére (azaz sín ü tem ezésre) szolgál. A b r i # a n orm ál sínkérés jel.
lábkiosztás lá th a tó a 3.45. áb rán . A z á b ra bal oldalán lá th a tó a m em ó riasín jelek A B P R I # leh etővé teszi, hogy egy eszköz m agas prio ritású igényt tám asszon, am ely
ö t legfontosabb cso p o rtja; a jo b b old alo n p ed ig k ü lö n b ö ző egyéb jelek . A csupa m egelőzi a n orm ál kérések et, l o c k # beállításával egy C P U több ciklusra lefoglal­
nagybetűvel írt n evek az ak tu ális Intel-elnevezések. A kis- és nagybetűvel írt nevek h atja a sínt, és m ás eszköz addig nem k ap h atja m eg, am íg nem negálja L 0 C K # - 0 t .
pedig gyűjtőnevek, tö b b egym ással k ap cso latb an álló jel szám ára. A m in t a C P U vagy egy m ásik sín m ester m egszerezte a sín h aszn álat jogát, egy
A z Intel olyan elnevezéskonvenciót alkalm az, am elyet fo n to s m eg érten ü n k . ú jab b sínk érést to v áb b íth at a következő je lc so p o rt segítségével. A cím ek 36 b ite­
M ivel m anapság m in d en lap k át szám ítógéppel terveznek, e m iatt szükséges, hogy sek, de az alsó 3 b itn ek m indig 0-nak kell lennie, e z é rt ezekhez n em ta rto z n a k ki­
m inden jel elnevezése egy A S C II szöveggel re p re z e n tá lh a tó legyen. A n n ak jelzésé­ vezetések, te h á t A # 33 érin tk ező t jelen t. M inden ad atátv itel 8 bájto s és 8 b ájt h a ­
re, hogy egy je le t alacsony szintre kell beállítani, felülvonást h asználni m eg le h e tő ­ tá rra igazított (nyolccal o szth ató cím en kezdődik). 36 cím bit segítségével 2 ’'’ m e­
sen nehéz, ehely ett az In tel egy # szim bólum ot tesz a név u tán . bpri helyett bpri# m ó riab á jt cím ezh ető m eg, am i 64 G B.
212 3. A d i g i t á l i s l o g i k a SZ IN T JE 3.5. P ÉL D Á K C P U l a p k á k r a 213

A m ik o r a cím kikerül a sínre, az a d s # jel beáll, ez tu d a tja a céleszközzel (p é l­ ges, hogy a m em óriából a lehetséges legnagyobb teljesítm ényt hozzuk ki. E z é rt a
dául a m em óriáv al), hogy a cím érvényes. A sínciklus típ u sa (p éld áu l egy szó olva­ P en tiu m 4 m em óriasínje n ag y m érték b en csövezetékszerű, olyannyira hogy egy­
sása vagy egy blokk írása) a r e q # v o n alak o n to vábbítódik. A két p aritásjel védi az szerre nyolc síntranzakció is folyhat. A csővezeték k o n cepcióját m ár m egism ertük
A # és a R E O # jelek et. a 2. fe jezetb en a cső v ezeték -arch itek tú rájú C P U -kal kapcsolatban, azo n b an a m e­
A z ö t h ib av o n alat haszn álják a le b eg ő p o n to s, a belső, az eszk ö zellen ő rző (h a rd ­ m ó riak ezelés is k ialak íth ató cső v ezeték -arch itek tú rájú ra.
ver-) és m ás hibák jelzésére. A hhoz, hogy a P entium 4 m em ó riak ezelése is cső v ezeték -arch itek tú rájú leh es­
A válaszcsoport olyan je le k e t tartalm az, am elyekkel egy szolga vissza tu d jelezn i sen, a m em ó riaigényeknek, az ún. tranzakcióknak (transactions) h a t á lla p o tá t kü ­
a m estern ek . A z r s # a stá tu sk ó d o t tartalm azza. A t r d y # jelzi, ha a szolga (cél­ lö n b öztetik meg:
eszköz) készen ál! ad a to k fo g ad ására a m estertő l. E zek h ez a jele k h e z is tarto zik
paritás-ellen ő rzés. 1. sín ü tem ezési fázis;
A z utolsó sín jelcso p o rt az ak tu ális ad atátv itel m eg v aló sítására szolgál. D # - n 2. kérési fázis;
egyszerre 8 bájtos a d a t to v áb b ítása lehetséges. A m ik o r a sínen van n ak , a d r d y # 3. hibajelzési fázis;
jel beállítása jelzi az a d a to k je le n lé té t. A d b s y # jel jelzi, hogy a sín foglalt. P aritást 4. szim atolási fázis;
h asználnak az ad a to k e llen ő rzésére is. A to vábbi ad atá tv ite li je lek az é rté k e k tá r o ­ 5. válaszfázis;
lásával és m ás haso n ló dolg o k k al foglalkoznak. 6. adatfázis.
A R E S E T # jel a C P U ala p á llap o tb a hely ezésére szolgál k atasztro fális esem ény
b ek övetkezéseko r, vagy ha a felh aszn áló m egnyom ja a re se t g o m b o t a PC elején. N incs m indegyikre szükség m in d en egyes tranzakcióhoz. A sínütem ezési fázis
A P entium 4 k o n fig u rálh ató úgy, hogy a m eg szak ításo k at ugyanúgy használja, m eg h atáro zza, hogy a p o tenciális sín m esterek közül ki fog következni. A kérési
m int a 8088 (a visszafele k o m p atib ilitás érd e k é b e n ), vagy h a szn álh at egy új m eg ­ fázisban leh et a cím et a sínre feltenni, és kérni az ad ato t. A hibajelzési fázis le h e ­
szak ításren d szert is, am ely egy APIC (Advanced Program m able Interrupt Cont- tővé teszi, hogy' egy sínszolga jelezze, ha p a ritásh ib át talált a cím ben, vagy valam i
roller, fejlett program ozható m egszakításvezérlő) eszközre épül. m ás baj volt. A szim atolási fázisban az egyik C P U figyelheti a tö b b it; e rre csak
A P entium 4 tö b b k ü lö n b ö ző tápfeszü ltség rő l is tu d m ű k ö d n i, de tu d n ia kell,
hogy m elyikről. A z e n erg iaellátás-jelek et au to m a tik u s tápfeszültség-választásra Sínciklus
- hogy tu d assák a C PU -val, hogy a táp feszü ltség stabil - és m ás táp ellátással k a p ­
'1 '2 '3 '4 T7 T, Tn T
csolatos d o lg o k ra h asználják. A k ü lö n b ö ző a lv ásállap o to k at is itt kezelik, mivel az ----►

alvás fő k én t en erg iatak arék o sság i okokból valósul m eg.


A bonyolult e n e rg ia m e n e d zsm en t ellen é re a P en tiu m 4 nagyon felfo rró so d h at.
T j 1 'T .
A h ő m en ed z sm e n tc so p o rt foglalkozik a h ő m érsé k le t szabályozásával, és le h e tő ­
Tranz­
vé teszi, hogy a C P U jelezze k ö rn y ezetén ek , h a fen n áll a tú lm cleg ed és veszélye. akciók
A kivezetések egyikét a C P U állítja be. ha a b első h ő m érsék le t eléri a 130 °C-ot 1 (K é ré s) { H iba) ( Sztm.) (válasz) { A dat)
(266 °F). H a a C P U v alah a is eléri ezt a h ő m é rsé k le tet, ta lán arró l álm odik, hogy
visszavonul, és kem p in g fő ző lesz. 2 { Kérés) { H iba) { Szim.) (válasz) (
A z ó rajelcso p o rtn a k a ren d szersín frek v en ciáján ak m eg h atáro zásáv al kell fo g ­
lalkoznia. A diagnosztikai cso p o rt a re n d sz er te sztelésére és nyo m k ö v etésre szol­ 3 ( Kérés) ( Hiba ) ( S z i m ) (
gáló je le k e t tartalm az, am elyek m egfelelnek az IE E E 1149.1 JT A G tesztszabvány­
4 ( Kérés) { H ib a ) {
nak. A z inicializálási c so p o rt a re n d sz e r b etö ltésév el (indításával) foglalkozik.
V égül, az egyéb cso p o rt jele k kusza összevisszasága - ta rta lm az p éld áu l olyan 5 {( KKérés)
é ré ^ ^
{ H ib a ){S z ím ,){ Válasz ){A d a t)
jelet, am ely a C P U -fo g lalat fog laltság át jelzi, egy m ásik a 8088 em ulációval k ap ­
csolatos, továbbá riiindenféle m ás célra szolgáló jelek et. 6 {K é ré s )
< Hiba ) {válasz)

7 ^Válasz) ^ A d á ^

A Pentium 4 m em óriasín csővezeték-architektúrája I


Szim. = Szimatolás
A m o d ern C P U -k, m int p éld áu l egy P en tiu m 4, sokkal gyorsabbak, m int a m o ­
d e rn D R A M m em óriák. H ogy a C P U ne szenvedjen álla n d ó ad ath ián y b an , lénye­ 3.46. ábra. k kérések áthaladása Pentium 4 memóriasín csővezetékén
214 3. A D IG IT Á LIS LO G IK A SZ IN T JE
3.5. P ÉL D Á K C P U l a p k á k r a 215

tö b b p ro cesszo ro s ren d sz e re k b e n van szükség. A válaszfázisban a sín m este r m eg ­ b ináris p ro g ram o k at v álto ztatás nélkül tu d fu tta tn i, mivel a SPARC V 9-architek-
tu d h atja, hogy m eg fogja-e k ap n i a kívánt ad a to k a t. V égül, az ad atfázisb an m eg ­ tú ra visszafelé kom patibilis a SPARC V 8 arch itek tú ráv al. A z egyetlen, am iben az
U ltraSPA R C III e lté r a SPA RC V 9 a rch itek tú rátó l, az az új V IS 2.0 utasításkész-
érk ezn ek a C P U által k é rt ad ato k .
A P entium 4 cső v ezeték -arch itek tú rájú m em ó riasín jén ek az a titka, hogy m in ­ Ict, am elyet 3D grafikus alkalm azásokhoz, valós idejű M P E G -d ek ó d o lásra, a d a t­
den fázis k ü lönb ö ző sínvezérlő je le k e t használ, azaz m in d en egyes fázis teljesen tö m ö ríté sre, jelfeldolgozásra. Jav a-p ro g ram o k fu tta tá sá ra és h áló zatk ezelésre fej­
leszte tte k ki.
független a többitől. A szükséges jele k 6 c so p o rtja lá th a tó a 3.45. á b ra bal o ld a ­
lán. Például, egy C P U m eg p ró b á lh atja m egszerezni a m em ó riasín -m esteri jo g o t B ár az U ltraS PA R C I ll- a t m u n k aállo m áso k b an is használják, valójában arra
a sínütem ezési je lek h asználatával. A m in t a h aszn álat jo g á t m eg k ap ta, e z ek et a terv ezték , hogy a Sun fő üzletág áb an , a nagy o szto tt m em ó riát használó, tö b b p ro ­
sínvezérló je le k e t elengedi, és a kérési fázishoz ta rto z ó je lek c so p o rtját kezdi el cesszoros sz e n 'e re k b e n alkalm azzák, am elyeket az in te rn e te n és vállalati in tran e-
használni. E zala tt a m ásik C P U vagy valam elyik B /K eszköz b e le p h e t a sín ü te m e ­ tek b en használnak. E n n ek m egfelelően, a tö b b p ro cesszo ro s re n d szerek h ez szük­
zési fázisba és így tovább. A 3.46. á b ra azt m u tatja, hogy hogyan leh e t folyam atban séges „rag asztó” legnagyobb része m e g találh ató m in d en U ltraSPA R C III lapka
több tranzakció egyszerre. belsejéb en , am ely m egkönnyíti nagyszám ú C P U összekapcsolását egym ással.
A 3.46. áb rán a sín ü tem ezési fázis n em lá th a tó , m e rt e rre n em m in d en e setb en A z első U ltraSPA R C Ill-a t 2000-ben b o csáto tták ki, 600 M H z-en m ű k ö d ö tt, és
van szükség. P éld áu l, ha az ak tu ális sín m ester (gyakran a C P U ) egy m ásik tra n z ­ 0,18 m ikro n szélességű alum ínium vezetékeket használt. A lapka 29 m illió tra n ­
akciót szeretn e elindítani, nincs szüksége arra, hogy ism ét elkérje a sínt. C sak a k ­ zisztort tartalm az. M ivel a Sun túl kicsi ahhoz, hogy a legkorszerűbb lap k ák at e lő ­
k o r kell kérnie, ha k özben a sín m esteri jo g á tk e rü lt egy m ásik k érő eszközhöz. A z állító ü zem e t létesítsen, inkább a lapka tervezésére és a szoftverre k o n centrál, a
1-es és 2-es tran zak ció nyilvánvaló: ö t fázis ö t sínciklusban. A 3-as tran zak ció egy C P U lap k ák előállítására pedig külső lapkagyártókkal köt szerződést. A z U ltra ­
hosszabb ad atfázist használ, p éld áu l m ert az egy blokkátvitel, vagy m e rt a m eg ­ SPARC 111 esetéb en a lap k ák a t a Texas In stru m e n t állította elő. 2001-ben a T I
cím zett m em ória egy v árak o zó á lla p o to t ik ta to tt be. E n n e k k ö v etk ez téb en a 4-es (Texas In stru m en t), m iután technológiai fejle.sztéseket h a jto tt végre, m egkezdte a
tranzakció nem k ezd h eti el az a d atfázisát ak k o r, am ik o r szeretn é. A zt tap asztalja, 900 M H z-es 0,15 m ikronos rézvezetékes lapkák készítését az alum ínium vezetékes
hogy a D B S Y # jel folyam atosan be van állítva, e z ért a rra vár, hogy a jel szintje az e l­ helyett. 2002-ben a vezetékszélesség 0,13 m ik ro n ra csökkent, az órajel-frekvencia
lenkezőjére változzon. A z 5-ös tran zak ció b an azt látjuk, hogy a válaszfázis is tö b b p edig 1,2 G H z-re em elk ed ett. E zek n ek a lapkáknak a teljesítm énye m ár 50 W, így
síncikluson k eresztü l ta rth a t, am i k éslelteti a 6-os tran zak ció t. V égül a 7-es tra n z ­ ugyanolyan hőelvezetési p ro b lém ák tám ad tak , m int a a P entium 4 esetéb en .
akcióban azt láth atju k , hogy h a egy b u b o rék k erü l a csővezetékbe, az o tt is m arad , N agyon n ehéz összehasonlítani egy C ISC (m int am ilyen a P entium 4) és egy
m ég akkor is, ha kö zb en folyam atosan in d u ln ak új tranzak ció k . A nap i g y ak o rlat­ R IS C lap k át (m int am ilyen az U ltraSPA R C III) kizárólag az órajel-frekvencia alap ­
ban azo n b an valószínűtlen, hogy a C P U m in d en ó raje lb e n egy új tran zak ció t k ísé­ ján . P éldául, az U ltraSPA R C III órajelciklusonként folyam atosan 4 utasítást tud el­
rel m eg indítani, e z é rt a b u b o ré k o k nem ta rta n a k olyan sokáig. végezni, am ely m ajdnem akko ra végrehajtási sebességet jelent, m intha egy egyuta-
sításos gép 4,8 G H z-en m űködne. A z U ltraSPA R C -nak h at belső csővezetéke van,
két 14 állap o tú csővezeték az egész szám okon végzett m űveletekhez, k ettő a lebe­
g ő pontos m űvelethez, egy a b etöltés/tárolás m űveletekhez és egy az elágazások vég­
3.5.2. UltraSPARC III
rehajtásáh o z. U gyancsak m ás-m ás m egközelítést alkalm az a gyorsítótárakkal, a szé-
Mivel ez a m áso d ik p é ld á n a k v álaszto tt C P U lapkánk, m ost a Sun U ltraS P A R C
áram k ö rcsalád o t fogjuk m egvizsgálni. A z U ltraS P A R C család a S un 64 bites
SPARC C P U so ro zata. E zek a C P U -k teljesen m eg feleln ek a SPA RC V ersion
9 arch itek tú rán a k , am elyet a 64 bites k ö zp o n ti egységek szám ára fejlesztettek
ki. S u n -m unkaállo m áso kb an és -szerv erek b en h asználják, de m ás alk alm azá­
saik is ism ertek. E z a család ta rtalm azza az U ltraS P A R C I, U ltraS P A R C II és az
U ltraS PA R C III k ö zp o n ti egységeket, am elyek arch ite k tu rálisan nagyon h aso n lí­
ta n a k egym áshoz, és elsődlegesen a kibocsátási időben, az ó rajel-frek v cn ciáb an
és n éhány új u tasításb an k ü lö n b ö zn ek egym ástól, am elyet m in d en ú jab b m o d ell­
be b e é p ítettek . A k o rrek tség érd e k é b e n az aláb b iak b an az U ltraS P A R C lll-m a l
foglalkozunk, de a legtöbb arch itek tu rális (azaz gyártási tech n o ló g iátó l független)
m egállapításunk fennáll a tö b b i U ltraS P A R C -ra is.
A z U ltraS PA R C III egy hagyom ányos R IS C gép, am ely b in árisan teljesen k o m ­
patibilis a 32 bites SPARC V ersion 8 (V 8) arch itek tú ráv al. 32 bites SPARC V8 3.47. ábra. Az UltraSPARC III központi egység áramkör
216 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.5. P ÉL D A K C P U LA PK Á K R A 217

lesebb sínekkel és m ás tényezőkkel kapcsolatban, am elyek javítják a teljesítm ényt.


A P entium 4-nek is m egvan a m aga erőssége. A lényeg, hogy két nagyon különböző
lapkának pusztán az órajel-frekvenciája alapján tö rtén ő összehasonlítása nag>'on
keveset árui el egy bizonyos felad at elvégzése során m u tato tt teljesítm ényükről.
A z U ltraSPA R C III egy 1368 lábú L G A (L an d G rid A rray) to k b an kerül fo r­
galom ba, am int az a 3.47. áb rán látható. A tok alján, négyzetes elrendezésben
37 X 37 = 1369 kivezetést tartalm az, a bal alsó kivezetés hiányzik. A foglalat p o n to ­
san illik a lapkához, ez m eggátolja, hogy a lapkát helytelenül dugják be a foglalatba.
A z U ltraSPA R C Ill-n a k k ét belső elsődleges ( L l ) g y o rsító tára van: 32 KB az
u tasításo k n ak és 64 KB az a d ato k n a k . U gyancsak van egy-egy 2 K B -os előolvasási
és írási gyorsítótára, am elyekkel összegyűjti a 2. szintű g y o rsító tárb a tö rté n ő írá ­
sokat, így azo k at nagy ad a g o k b an v égezheti el, am i növeli a sávszélességet. M int
a P entium 4, ez is használ a lap k án kívüli 2. szintű (L 2) g y o rsító tárat, viszont a
Pentium 4-től elté rő e n az U ltraS P A R C Ill-n a k nincs a to k b a é p íte tt 2. szintű gyor­
sítótára. A gyorsító tár-v ezérlő és a gy o rsító tárb lo k k o k cím zéséhez szükséges logi­
ka a lapkán m eg találh ató , de az SR A M m e m ó ria m ár nem . E h ely ett, a re n d szer
tervezői ha 2. szintű g y o rsító tárat sz eretn én ek , szab ad o n v á laszth atn ak bárm ilyen
keresk ed elm i fo rg alo m b an lévő g y o rsító tárlap k a közül.
A z a dö n tés, hogy a 2. szintű g y o rsító tá ra t a P en tiu m 4-gyel integ rálják , illetve,
hogy az U ltraSPA R C III e seté b e n attó l kü lö n ítsék el, részb en tech n o ló g iai o k o k ra,
részb en az Intel és a Sun e lté rő üzleti filozófiájára v e z e th e tő vissza. Technológiai
szem pontból egy külső g y o rsító tár nagyobb és ru g alm asab b (az U ltraS P A R C III 3.48. ábra. k z UltraSPARC III rendszer magjának fontosabb jellemzői
2. szintű gyorsító tárai 1 M B -tó l 8 M B -ig te rje d h e tn e k ; míg a P en tiu m 4 g yorsító­
tá ra in a k m érete rögzített: 512 K B ). M ásfelől viszont leh et, hogy lassabb, mivel (U ltra P o rt A rchitecture). Az U PA m egvalósítható úgy is, m int sín, hálózati csom ó­
nagyobb távolságra van a C P U -tó l. T ö b b k iv ezetett v ezérlőjel is kell a külső gyor­ p o n t (switch) vagy a k ettő kom binációja. A különböző m unkaállom ások és szerverek
sító tár eléréséhez. Jele n esetb en , az U ltraS P A R C III és az L2 g y o rsító tár k ö z ö t­ különböző U PA -m egvalósításokat alkalm aznak. A z UPA különböző m egvalósításai
ti k apcsolat 256 b it széles, am i b iztosítja, hogy egy 32 b ájto s gyo rsító so rt egyetlen nem befolyásolják a központi egységet, mivel az UPA interfész precízen definiált, és
órajelciklus alatt lehessen átvinni. ez az az interfész, am elyet a központi egységnek tám ogatnia kell (és tám ogat is).
Ü zleti szem po n tb ó l nézve az In tel félvezetőgyártó, így kép es arra, hogy saját A 3.48. ábrán egy U ltraS P A R C III ren d szer m agja láth ató , tartalm azza a C PU
2. szintű g y o rsító tárlap k ák at tervezzen, gyártson és azo k at egy nagy teljesítm é­ lapk át, az U PA interfészt és a 2. szintű g y o rsító tárat (két közönséges S R A M -ot).
nyű saját interfészen k eresztü l ö sszekapcsolja a k özponti egységgel. A Sun e l­ A z á b ra egy UDB II la p k á t (U ltraS P A R C D ata B uffer II) is tartalm az; e n n ek fel­
len b en szám ítóg ép ek et, és n em lap k ák at gyárt. U gyan n éh án y lap k áját (m in t az a d a tá t a k ésőbbiekben ism ertetjük. A m ik o r a C P U -n ak egy m em ó riaszó ra van
U ltraS P A R C -ok) m aga tervezi, de az elkészítéssel m ás félv ezető g y ártó k at bíz szüksége, azt először az egyik (belső) 1. szintű g y o rsító táráb an keresi. H a o tt van a
m eg. A Sun, am ik o r csak m eg teh eti, előnyben részesíti a k eresk ed elm i fo rg alo m ­ szó, foly tatja a fu tta tá st teljes sebességgel. H a nincs a szó az 1. szintű g y o rsító tár­
ban m ár k ap h a tó lap k ák h a szn álatát, am elyek a piaci v ersenyben m á r kellően b an , a 2. szintűvel próbálkozik.
kifinom ultak. A 2. szintű g y o rsító tárak b an h aszn álato s S R A M -ok szám os la p k a ­ A g y o rsító tárakról m ajd a 4. fejezetb en szólunk részletesen, néh án y g o n d o la­
gyártótól b eszerezh etők , így a S u n n ak n em volt k ü lö n ö seb b en szüksége arra, hogy to t azo n b an hasznos itt is elő reb o csátan i. A teljes fő m em ó ria 64 bájtos gyorsító­
saját lap k át tervezzen. E z a d ö n tés azt je le n ti, hogy a 2. szin tű g y o rsító tár fü g g et­ tá rso ro k ra (b lo k k o k ra) van felosztva. A 256 leggyakrabban használt utasítás- és
lenné vált a központi egységtől. a d a tso r az 1. szintű gyorsító tárb an van. A gyakran használt gyorsítósorok közül
Az U ltraS P A R C III 43 b it széles cím sínt használ, am ellyel legfeljebb 8 'I'B m e ­ azok, am elyek nem férnek m ár be az 1. szintű g yorsítótárba, a 2. szintű gyorsító­
m óriát tud m egcím ezni. Az a d atsín 128 bit széles, egyszerre 16 b ájt á tv itelét teszi tá rb a k erü ln ek . E z a gyorsítótár m ár véletlen szerű en , vegyesen tartalm az utasftás-
lehetővé a C P U és a m e m ó ria kö zö tt. A sín sebessége 150 M H z, így 2,4 G B /s sáv­ és ad a tso ro k at. E zek tá ro ló d n ak az ábrán a 2. szintű gyorsítótár (ad ato k ) feliratú
szélesség é rh e tő el, am i sokkal gyorsabb, m in t az 528 M B/s sebességű PC I sín. tég lalap b an . A ren d szer nyilvántartja, hogy mely gyorsítósorok van n ak a 2. szintű
A nnak érdekéb en , hogy az U ltraSPA R C C P U -k (esetleg több) és a m em óriák g y o rsító tárb an. E zt az inform ációt a 2. szintű g yorsítótár (bejegyzések) felirattal
(esetleg több) kom m unikálni tu d jan ak egymással, a Sun kifejlesztette az UPA-t jelö lt S R A M -ban tárolják.
3.5. p é l d á k C P U l a p k á k r a 219
218 3. A d i g i t á l i s l o g i k a SZ IN T JE

A m ikor egy gyorsítósor n em ta lá lh ató az 1. szintű g y o rsítótárban, a C P U a sor 3.5.3.8051


azonosítóját (bejegyzéseim ) elküldi a 2. szintű g y orsítótárba. A válasz (bejegyzés­
ad at) m egadja a C P U szám ára, hogy a k e re se tt so r b e n t van-e a 2. szintű gyorsító­ M ind a P en tium 4, m ind az U ltraS P A R C III k özponti egység olyan nagy teljesít­
tárb an , és ha igen, m ilyen állap o tb an (érvényes/érvénytelen). H a a gyorsítósor o tt m ényű k ö zp onti egysegek képviselői, am elyeket k ü lönlegesen gyors szem élyi szá­
van, a C P U elkéri, és m eg is kapja. A z ad atátv itel szélessége 16 bájt, így négy ó ra jel­ m ító g ép ek b e vagy szerverekbe terveztek. Sok em b er, am ik o r szám ítógépre go n ­
ciklus szükséges a teljes 64 bájtos gyorsítósor átv itelére az első szintű gyorsítótárba. dol, ilyenfajta re n d szert képzel el. D e létezik a szám ítógépeknek egy egészen m ás
H a a k e re se tt so r a m áso d ik szintű g y o rsító tárb an sincs, a fő m em ó riáb ó l kell világa, am ely ráad ásu l m ég jóval nagyobb is: a beágyazott ren d szerek világa. Az
behozni az UPA in terfészen keresztü l. A z U ltraS PA R C II I U PA-t egy k ö zp o n ti ve­ aláb b iak b an ezt a világot fogjuk röviden áttek in ten i.
zérlő segítségével v aló síto tták m eg. A C P U -b ó l m in d en cím és cím vezérlő jel (h a V alószínűleg csak kis túlzás, h a azt állítjuk, hogy m in d en olyan elek tro n ik u s k é­
több C P U is van, ak k o r m indegyiké) o d a fu t be. A C P U a m em ó riasín m egszer­ szülék szám ítógépet tartalm az, am ely 100 d ollárnál tö b b e kerül. T erm észetesen a
zéséhez először a sín ü tem ezési je lek segítségével engedélyt kér, hogy ő leh essen a televíziókat, m o b iltelefo n o k at, elek tro n ik u s m en ed z serk alk u láto ro k at, m ik ro h u l­
következő sínm ester. A m in t az en g ed ély t m eg k ap ta, a C P U felteszi a k é rt cím et a lám ú sü tő k et, v id eo k am erák at, video m ag n ó k at, lézern y o m tató k at, riasztó k észü lé­
m em ó riasín re (ad atcím ), m egadja a k érés típ u sát, végül b eállítja az ad atcím érv é­ kek et, nagy o thalló-készülékeket, elek tro n ik u s já té k o k a t és m ás eszközöket, a m e ­
nyes jelet. (E zek a jele k k étirán y úak , mivel az U ltraS P A R C III tö b b p ro cesszo ro s lyek túl so k an v annak ahhoz, hogy fel lehessen sorolni, n ap jain k b an m ind szám ító ­
ren d szerb en m ás k ö zp o n ti egységeknek szükségük leh e t a távoli g y o rsító tárak e l­ gép vezérli. A z ezek b en a k észülékekben levő szám ító g ép ek et - sokkal inkább az
éré sé re is, hogy az összes g y o rsító tár ta rta lm á t m in d e n k o r konzisztens állap o tb an alacsony á r é rd ek éb en , m intsem a nagy teljesítm ény alapján - optim alizálják, am i
tarth assák .) A cím és a sínciklus típ u sa k ét órajel a la tt íródik ki a cím v ezeték ek re m ásfajta k o m p rom isszum okhoz vezet, m int az olyan nagy teljesítm ényű központi
oly m ód o n , hogy az első ciklusban a sorcím , a m áso dik b an p ed ig az oszlopcím író ­ egységek esetéb en , am elyeket eddig tanulm ányoztunk.
dik ki, am int az a 3.31. áb rá n láth ató . A m in t azt az 1. fejezetb en e m lítettü k a 8051 valószínűleg a legnépszerűbb, szé­
A m íg az ered m én y re vár, a C P U fo ly tath atja a m u n k át esetleg valam i m ással. les k ö rb en h asznált m ikrovezérlő, am i leginkább nagyon alacsony á rán ak k öszön­
P éldául egy gépi u tasítás elő re b e tö lté se k o r fellép ő gy o rsító tárh iány nem g á to l­ hető . R ö v id esen m eglátjuk, hogy egy egyszerű lapkáról van szó, am ely egyszerűen
ja m eg m ás, m ár b e tö ltö tt gépi u tasításo k v ég reh ajtását, am elyek m indegyike h i­ a lk alm azh ató és olcsó. V izsgáljuk m eg m ost a 8051 lapkát, am elynek a fizikai láb ­
vatk o zh at olyan a d a tra , am ely nincs b e n t egyik g y o rsító tárb an sem . Ily m ó d o n az kiosztása a 3.49. áb rán látható .
UPA-val egyszerre tö b b tran zak ció is folyhat. A z U PA k é t független tran zak c ió fo ­ A h o g y an az áb rán is láth ató , a 8051 általáb an egy 40 lábú sta n d a rd to k b an k e ­
lyam ot tud kezelni (n ev ezetesen o lvasásokat és íráso k at), m indegyikben tö b b m eg ­ rül fo rg alo m ba (b ár speciális alkalm azásokhoz m ás tokozás is rend elk ezésre áll).
k ezd ett tranzakcióval. A közp o n ti vezérlő felad ata, hogy n yilvántartsa m in d ezt, és 16 cím vezetéke van, te h á t legfeljebb 64 KB m em ó riát tud m egcím ezni. A z adatsín
hogy az aktuális m em ó riaig én y ek et a leg h aték o n yab b so rre n d b e n kielégítse. 8 b it széles, ezért a C P U és a m em ó ria k ö zö tti ad atátv itel 1 b á jto n k é n t tö rté n ik
A m ikor végül m egérkezik az ad at a m em óriából, 8 bájtnyi érk ezh et egyszerre egy
16 bites hibajavító kóddal együtt, a nagyobb m egbízhatóság érd ek éb en . Egy tra n z­ Pl.O 1— 1 40 _J vcc
P l.l C 2 39 □ PO.O / ADÓ
akció k érh et egy egész gyorsítósort, egy 8 bájtos szót, vagy ak ár kevesebb bájtot. P 1.2 C 3 38 □ P 0.1 / A D l
M inden bejövő ad at az U D B -b e kerül, am ely pufferezi azokat. A z U D B re n d e l­ P 1.3 c 4 37 Z1 P 0.2 / A D 2
tetése, hogy m ég inkább leválassza a központi egységet a m em ó riaren d szerrő l, így P l .4 c 5 36 □ P 0.3 / A D 3
P 1.5 c 6 35 □ P 0.4 / A D 4
azok aszinkron m ó d o n tu d n ak m űködni. P éldául, ha a C P U egy szót vagy egy gyor­ P l .6 c 7 34 □ P 0.5 / A D 5
sítósort szeretne kiírni a m em ó riáb a, a k k o r ahelyett, hogy várna az UPA elérésére, P l .7 c 8 33 □ P 0.6 / A D 6
RST c 9 32 □ P 0.7 / A D 7
azonnal beírhatja az ad a to k a t az U D B -b e, és az U D B -re hagyja, hogy azokat k é­ RXD / P 3.0 1= 10 31 Z2 E A / V P P
sőbb a m em óriáb a ju ttassa. A z U D B generálja és ellenőrzi a hibajavító k ó d o k at is. T X D / P 3.1 c 11 30 □ A LE
C sak m egjegyzésképpen, az U ltraS P A R C Ill-n a k a fen ti leírása, ugyanúgy, m int INTŐ / P 3.2 c 12 29 □ PbbN
IN T I / P 3.3 1= 13 28 Z 1 P 2.7 / A 15
az e lő tte ta lá lh a tó P en tiu m 4 b e m u ta tá sa , n ag y m érték b en leegyszerűsített, de a TO / P 3.4 c 14 27 □ P 2.6 / A 14
m űkö d ésü k lényegét b e m u ta tta . T I / P 3.5 d 15 26 ZJ P 2.5 / A 13
W R / P 3.6 c 16 25 Z I P 2.4 / A 12
R D / P 3.7 ez 17 24 Z2 P 2.3 / A l l
XTAL 2 c : 18 23 Z ] P 2.2 / A lO
XTA Ll IZ 19 22 Z1 P 2.1 /A9
V SS r 20 21 Z1 P 2.0 /A8

3.49. ábra .A 8051 fizikai lá b k io s ztá s a


220 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.6. PÉL D A K s í n e k r e 221

(ezzel szem ben a P entium 4-nel 8, az U ltraS P A R C 111-nál pedig 16 b ájto n k én t). cím érvényes. A külső m em ó riák tipikusan a rra használják fel ezt a jelet, hogy e k ­
K ülönböző v ezcrlő b em en etei v an n ak , am elyeket k éső b b ism ertetü n k . A legna­ k o r táro lják a cím vezctékek állap o tát, mivel azo k at nem sokkal ezu tá n elengedi a
gyobb különbség a P entium 4-gyel és az U ltraS P A R C Ill-m al szem ben, am elyek C P U , hogy a k övetkezőkben az a d a to k átv itelére lehessen használni.
igazi C P U -k, a 32 B/K vonal, am elyet 4 db 8 b ites cso p o rtb a ren d eztek . M indegyik A i ^ N és az i-:a jelek ugyancsak a külső m em óriával kapcsolatosak. A p s i;n
B /K vonal h o z z á k ö th e tő egy n yom ógom bhoz, kapcsolóhoz, L H D -hez (Light (P ro g ram S torc E n ab le) jel beállításával a 8051 jelzi, hogy a p ro g ram o t táro ló m e ­
E m ittin g D iode, fénykibocsátó/világító d ió d a ) vagy a külvilág m ás eszközéhez, m óriáb ó l kíván olvasni. Á ltaláb an ezt a m em ó ria ö n je ié v e l kapcsolják össze, a h o ­
am ellyel b e m e n e te t bizto sítu n k a 8051-nek vagy a 8051 k im e n e tét v ez eth etjü k el. gyan az a 3,29. áb rán látható.
Egy rádiós ó ra e sete n m in d en ny o m ó g o m b o t és kap cso ló t k ü lö n b ö ző B/K vo nal­ ÉÁ (E x tern al A ccess) vagy állan d ó an m agas, vagy állan d ó an alacsony szintre
hoz k ö th etü n k , m íg m ás B/K vonalakkal a m eg jelen ítő t v ezérelh etjü k . így a rádiós van kötve, így m indig ugyanaz az érték e. H a állan d ó an m agas érte k e van, a belső
ó ra legtöbb funkcióját, ha nem m in d et, a szoftverrel v ezérelh etjü k , kiküszöbölve 4 K B -os (8052 esetén 8 K B -os) m em ó riát használja az ebbe a tarti)m ányába eső
ezzel a diszkrét logika d rág a áram k ö reit. cím ek e setén és a külső m em ó riát 4 K B (8052-nél 8 K B ) feletti cím ek esetén . H a
A 8051 logikai lábkiosztása a 3.50. áb rán láth ató . A 8051 egy 4 K B -os belső álla n d ó an alacsony szintre van kötve, a külső m em ó riát használja m inden cím ese­
R O M -m al kerül forgalom ba (a 8052-esnel ez 8 K B). H a ez nem lenne eleg e n d ő tén , és így a lap k án lévő m em ó riát lényegében m ellőzi. 8031 és 8032 e setéb en az
az a d o tt alkalm azáshoz, legfeljebb 64 KB külső m e m ó ria c satlak o z ta th ató a 8051- EA je le t alacsony szintre kell kötni, m ivel nincs R O M a lapkán.
hez egy sínen keresztü l. A 3.50. áb ra bal o ld alán az első h é t jel a külső m em ó riá ­ A k ét időzítő ára m k ö r b e m e n e t lehetővé teszi, hogy a C P U külső időzítő á ra m ­
hoz tö rté n ő k apcso ló d ást vezérli, h a van ilyen. A z első jel az A, 16 cím vezetékei k ö rö k tő l k apjon jelek et. A m egszakításvonalak k ét külső eszköz szám ára biztosít­
tartalm az a külső m e m ó riá b an lévő b eo lv asan d ó vagy k iíran d ó bájt m egcím zésére. já k a m eg szakításkéres lehetőségét. A t x d (tra n sm itte d d ata, to v áb b íto tt a d a t) és
A nyolc D vezeték a d a tá tv ite lre szolgál. Az alacsony h ely crték ű nyolc cím vezeték az RXD (received d ata, érk e z e tt a d a t) v ezetékek egy term in állal vagy egy m o d em ­
ugyanezekre az ad a tv e z e té k e k re van m ultiplexelve, hogy csö k k en tsék a k ivezeté­ m el soros B/K m ű veleteket tesznek lehetővé. V égül r s t teszi lehetővé, hogy a fel­
sek szám át. Hgy sín tran za k ció e setén ezek en a láb ak o n jelen ik m eg a cím az első használó vagy egy külső eszköz alap állap o tb a állítsa (reset) a 8051-et. E zt a jelet
órajelciklusban, és ezek továbbítják az a d a to k a t az ezt k ö v ető ciklusokban. ak k o r állítják be, am ik o r valam i elrom lik, és a ren d szert újra kell indítani.
E ddig a 8051 hasonlít a legtöbb 8 bites C P U -hoz azt kivéve, hogy soros B/K vona­
lai vannak. A m i m egkülönbözteti a 8051-et az a 32 B/K vonal, am elyet 4 különálló
p o rtb a szerveztek; ez láth ató a 3.50. áb ra jobb oldalán. M indegyik vonal kétirányú,
és p ro g ram segítségével írh ató vagy olvasható. E z az elsődleges m ódja annak, ah o ­
gyan a 8051 kapcsolatot tart a külvilággal, és am i annyira értékessé teszi: egyetlen
lapka, am ely m inden szükségest tartalm az, C P U -t, m em ó riát és B/K lehetőségeket.

3.6. Példák sínekre


A sín ek azok a ragasztók, am elyek ö sszetartják a szám ító g ép ren d szerek et. E bben
a fejezetb en néhány n épszerű sínt vizsgálunk m eg közelebbről: az ISA sínt, a
PCI sínt és az univerzális soros sínt. Az ISA sín az e red eti IBM PC sínjének egy
kism értékűi bővítése. A visszafelé való k o m p atib ilitás m iatt m in d en In tcl-alap ú
P C -b en volt ilyen sín az u tó b b i néh án y évvel b ezárólag, am ikor is az In tel és a
M icrosoft m egegyezett arról, hogy kiveszik. A zo n b an ezek a gép ek változatlanul
ren d e lk e z n e k egy m ásodik, gyorsabb sínnel is: a PC I sínnel. A P C I sín szélesebb,
m int az ISA sín, és m agasabb órajel-frekvencián m űködik. E n n ek következtében
3.50. ábra. A 8051 logikai lábkiosztása tö b b a d a to t képes továbbítani m áso d p ercen k én t, m int az ISA sín. A z univerzális
so ro s sín (U S B ) növekvő nepszerű ség ű B/K sín az olyan alacsony sebességű p e ri­
K ülső m em ória h aszn álatán ál a 8051 az r d vagy a w r beállításával jelzi, hogy o l­ fériák szám ára, m int az eg erek vagy a billentyűzet. Az U SB m ásodik verziója még
vassa vagy írja a m em ó riát. Az A L E (A d d ress L atch E n a b le ) je le t ak k o r h aszn ál­ nagyobb sebességgel m űködik. A következő részekben ezek et a síneket egyenként
ja, ha van külső m em ó ria. A C P U állítja be ezt a jele t, hogy je le /z e , a sínen lévő m egvizsgáljuk, hogy lássuk, hogyan m űködnek.
222 3. A DIG ITÁ LIS LO G IK A SZ IN T JE 3.6. P É L D A K s í n e k r e 223

3.6.1. ISA sín ki a kárty a alján, am ely szom szédos a fő csatlakozóval, továbbá úgy alakítják ki az
A l ára m k ö reit, hogy m ind a k étfajta kártyával m ű k ö d h essen ek . E zt az általános
A z IB M PC sín de facto szabvány volt a 8088 alapú re n d szerek b en , mivel m ajd ­ elk ép zelést m u tatja be a 3.51. ábra.
nem m in den P C -h aso n m ás szállító ezt m áso lta le, hogy lehetővé tegye a sok lé­ A m ásodik csatlak o zó n ak a PC/A T sínen 36 vezetéke van. E zek közül 31 a több
tező, harm ad ik féltől szárm azó B/K kárty a felh aszn álását a szám ító g ép ek b en . A cím - és a ad atv ezeték , a több m egszakításkérés, a tö b b D M A csato rn a, valam int a
sínnek 62 jelv ezeték e volt, b eleé rtv e 20 m em óriacím és 8 ad atv e z e té k e t, valam int táp feszü ltség és a föld m iatt volt szükséges. A m arad ék öt vezeték a 8 és a 16 bites
egy-egy v ezeték et a m em ó riáb ó l olvasás, m em ó riá b a írás, B /K olvasás, B/K írás átvitel k ü lö n bözőségét kezeli.
b eállításán ak céljaira. U gyancsak voltak je le k m eg szak ításk érésre, m eg szak ításen ­ A m ik o r az IB M a PC és a PC /A T u tó d jak én t kihozta a PS/2 so ro zato t, úgy
gedélyezésre, D M A h aszn álatára. Tehát egy nagyon egyszerű sín volt. d ö n tö tt, hogy itt az ideje ú jrakezdeni. A d ö n tést részben technikai m eggondo­
Fizikailag a sín a P C alap la p jára volt m aratva, m integy fél tu cat, egym ástól 2 cm lások in d o k olták (a PC sín a k k o rra m á r tényleg elavult), de k étség telen ü l az az
távolságban lévő csatlakozóval, ahová bőv ítő k árty ák at le h e te tt bedugni. M indegyik e lh a táro z á s is k ö zrejátszott, hogy akadályt g ö rd ítsen ek a P C -h aso n m áso k at e lő ­
k ártyának volt egy füle, am ely a csatlak o zó b a illett. A fü lö n 31 aran y o zo tt v ez e ték ­ állító v állalatok elé, am elyek ez időre m ár átv ettek a piac kényelm etlenül nagy
sáv volt m indkét oldalon, am ely az e lek tro n ik u s csatlakozást b iztosította. részét. így a k özepes és a nagy teljesítm ényű PS/2 g é p ek et olyan sínnel látták el,
A m ik o r az IB M m eg je len tette a 80286 alap ú PC/AT-t, kom oly pro b lém áv al kel­ a M icro ch an ncllel, am ely teljesen új volt, szabadalm akkal volt körülbástyázva és
lett szem benéznie. H a teljesen elölről k ezd té k volna, és egy v ad o n atú j 16 b ites sínt ügyvédek h a d a tám o g atta.
terveznek, sok vásárló této v ázo tt volna, hogy m egvegye-e, mivel a h arm ad ik féltől A szem élyi szám ítógépek ip arán ak fen n m arad ó része úgy válaszolt erre a fej­
szárm azó PC bővítő k árty ák egyike sem m ű k ö d ö tt volna az új szám ító g ép b en . D e lem ényre, hogy saját szabványt fogadott el, az ISA (Industríal Standard Architec-
ha ragaszkodnak a P C sínhez, a 20 cím- és 8 ad atv e zeték h ez, a k k o r n em le h e te tt ture, ipari szabvány architektúra) sínt, am ely alapvetően egy 8,33 M H z frekvenci­
volna kihasználni a 80286-osnak azt a k ép esség ét, hogy m eg tu d cím ezni 16 M B án m ű k ö d ő PC/A T sín volt. E n n ek a m egközelítésnek az volt az előnye, hogy m eg­
m em ó riát, és 16 b ites szavakat tu d továbbítani. ta rto tta a k o m patibilitást a létező szám ítógépekkel és kártyákkal. Ezenkívül az új
V égül a PC sín kibővítését v álaszto tták . A PC b ő v ítő k árty ák n ak 62 érin tk ező s szabvány olyan sínen alapult, am elynek a felhasználását az IB M nagyvonalúan sok
élcsatlakozója van, ez azo n b a n n em fu t végig a kárty a teljes h osszában. A PC/A T v állalat szám ára engedélyezte, hogy ezzel az e red eti PC szám ára a le h e tő legtöbb
esetéb en alk alm azo tt m egoldás az volt, hogy egy m áso dik élcsatlakozót alak ítan ak h arm ad ik féltől szárm azó bővítőkártya előállítását biztosítsa - ez azóta is kísérti az
IB M -et, és végül ez v ezette ki a PC -üzletből is. N éhány évvel ezelőttig a legtöbb
PC sín In tcl-a lap ú P C -ben m eg találh ató volt ez a sín, b á r egy vagy tö b b m ás sínnel együtt.
Alaplap csatlakozók Bővítő­
K ésőbb az ISA sín t 32 b itesre b ő v ítették ki, és n éh án y új szolgáltatással is kiegé­
Érintkező kártya
szítetté k (p éldául többprocesszoros arc h ite k tú ra tám o g atása). E zt az új sínt EISA
Lapkák (Extended ISA, bővített ISA) sínnek nevezték.

3.6.2. PCI sín

A z e re d e ti IB M PC -n a legtöbb alkalm azói p ro g ram m ég szöveges kép ern y ő t


haszn ált. A W indow s bevezetésével fo kozatosan haszn álatb a k e rü ltek a grafikus
felhasználói felületek. Egyik ilyen alkalm azás sem je le n te tt nagy m e g erő ltetést az
ISA sín szám ára. A zo n b an , ahogy az idő telt, egyre több p ro g ram kezdte in ten zí­
ven h asználni, k ü lö n ö sen a m ultim édiás játék o k , a szám ítógépek k ép ern y ő jét te l­
jes k é p ern y ő t igénylő grafika, m ozgókép m egjelenítésére. A helyzet ezzel gyöke­
re se n m egváltozott.
V égezzük el a következő egyszerű szám ítást. V együnk egy 1024 x 768-as k é p ­
ernyőt, am elyet valódi színekkel (3 b ájt/k ép p o n t) szeretn én k használni m ozgó
k é p e k m eg jelenítésére. E gyetlen kép ern y ő 2,25 M B a d a to t tartalm az. A folyam a­
tos m ozgáshoz 30 kép szükséges m áso d p ercen k én t; ez 67,5 M B/s sebességnek fe ­
Új csatlakozó PC/AT számára Élcsatlakozó
lel m eg. V alójában a helyzet m ég rosszabb: a kép m eg jelenítéséhez az a d ato k n a k
3.51. ábra. A PC/AT sin két komponense, az eredeti PC és az új rész a m ág n eslem ezről, a C D -R O M -ró l vagy a D V D -rő l a ren d szersín en keresztül el
224 3. A d i g i t á l i s l o g i k a SZ IN T JE 3,6, P É L D Á K SÍN E K R E 225

kell ju tn iu k a m em ó riáb a. M ajd a m eg jelen ítésh ez az a d ato k n a k ism ét át kell h a ­ PCI sínnel. M ég a Sun U ltraSPA R C k ö zponti egységnek is van P C I sínt használó
ladniuk a ren d szersín en a grafikus kártyához. E m iatt 2 x 67,5 M B/s, azaz 135 M B/ vei /ló ja , az U ltraSPA R C Ilii. A P C I sínnel k ap csolatban - a legapróbb részletekig
s sínsávszélesség szükséges csu p án a v ideó szám ára, n em szám ítva azt a sávszéles­ - lásd (S hanley és A n d e rse n , 1999; Solari és W illse, 2004).
séget, am elyre a k ö zp o n ti egységnek és m ás eszk ö zö k n ek van szükségük. A z e re d e ti PC I sín 32 b ite t tu d o tt átvinni egy ciklus a latt 33 M H z sebességgel
A z ISA sín legfeljebb 8,33 M H z sebességgel m ű k ö d h et, és egy ciklusban 2 b á j­ (30 ns ciklusidővel), a teljes sávszélesség 133 M B/s volt. 1993-ban b evezettek a
to t képes átvinni; ezzel a m axim ális sávszélesség 16,7 M B/s. Az CISA sín 4 b ájto t PCI 2.0-t, m ajd 1995-ben a P C I 2 .1-t. A PC I 2.2 m ár a h o rd o zh ató szem élyi szá­
tu d átvinni egy ciklusban, így 33,3 M B /s sávszélességet tu d elérn i. Nyilvánvaló, m ító g ép ek szám ára is nyújtott szolgáltatásokat (leginkább a telep ek energiájával
hogy b árm elyiket is nézzük, egyik sincs m ég a k ö zelé b en sem an n a k a sebesség­ való ta k a rék o sk o d ásh o z). Az lijabb PC I sín m ár 66 M H z frekvencián m űködik, és
nek, am ire a teljes k é p ern y ő m é re tű v id eó n ak szüksége van. 64 bites átv itelt is képes kezelni, így teljes sávszélessége 528 MB/s. E zzel a k ap aci­
A z Intel látva, hogy ez h am a ro san bekövetkezik, 1990-ben új sínt terv ezett, tással m á r m egvalósítható a teljes képernyős, folyam atos m ozgókép (feltéve, hogy
am elynek a sávszélessége m ég az E IS A sínénél is nagyobb volt. A z üj sínt P C I (Pe- a m ágn eslem ez és a ren d szer többi része alkalm as a fe lad atra). M in d en esetre nem
rip h e ra l C o m p o n en t In tc rc o n n e c t h ú s) sín n ek nev ezték el. Az Intel, hogy hasz­ a PC I sín lesz a szűk k eresztm etszet.
n á la tu k a t elősegítse, sz ab ad a lm a z tatta a PC I sínt, m ajd az összes szab ad alm at B ár az 528 M B/s m eg leh ető sen gyorsnak hangzik, m égis van két problém a.
m indenki szám ára m eg n y ito tta, így bárm elyik gyár k észíth et P C I sínt h aszn áló p e ­ E lő szö r is nem elég jó egy m em óriasín szám ára. M ásodszor pedig nem k o m p a ti­
rifériák at anélkül, hogy a szab ad alo m h a sz n á latá ért jo g d íjat kellen e fizetnie. A z bilis a régi ISA bővítőkártyákkal. A z In tel azon a m egoldáson g o n d o lk o d o tt, hogy
In tel lé tre h o z o tt egy ipari k o n zo rciu m o t is - a P C I iránt különösen érdeklődő szak­ olyan szám ítógépeket kellen e tervezni, am elyeknek h áro m vagy tö b b sínje van,
em berek csoportját (P C I Special In te re st G ro u p ) - , am ely a PC I sín jö v ő jét eg y en ­ am in t az a 3.52. áb rán láth ató . E zen a d iagram on azt látjuk, hogy a központi egy­
geti. M in d ezek n ek k ö sz ö n h ető en a P C I sín k ü lönösen n ép szerű lett. A P en tiu m tó l ség a m em óriával egy speciális m em ó riasín en k eresztü l k o m m u n ik álh at, és egy
kezdve gyakorlatilag m in d en In tel-a lap ú szám ítógép és sok m ás gép is ren d elk ezik ISA sín k ap cso ló d h at a PC I sínre. E z az elren d ezés kielégít m inden elvárást, és e n ­
nek k ö v etk eztéb en széles körb en haszn álták az 1990-es években.
Gyorsítótársín Lokális sín Memóriasín A két kulcselem eb b en az a rc h ite k tú rá b a n a k ét csatoló lapka, m ás néven híd
(am ely et az In tel gyárt - ebből fakad az érd ek lő d ése az egész p ro jek t iránt). A PCI
csatoló á ra m k ö r a kö zp o n ti egységet, a m em ó riát és a P C I sínt köti össze. A z ISA
PCI- Fő
csatoló memória csatoló lapka pedig a PC I sínt köti össze az ISA sínnel, v alam int egy vagy k é t ID E
m ágneslem ezegységgel. M ajdnem m in d en P entium 4 re n d szer rendelkezik egy
vagy tö b b szabad P C I-csatlakozóval am elyek lehetővé teszik újabb nagy sebességű
PCI sín
p e rifériák csatlak o ztatását, továbbá egy vagy több ISA -csatlakozóval, am elyen k e­
H
resztül kis sebességű p erifériák csatlak o ztath ató k .
A 3.52. áb rán lá th a tó arch itek tú ra nagy előnye, hogy a központi egységnek a
\ z Íz Íz Íz m em ó ria felé - egy saját m em óriasín alkalm azásának k ö szö n h ető en - k ü lö n leg e­
Grafikus sen nagy sávszélessége van, A P C I sín nagy sávszélességet biztosít az olyan gyors
SCSI USB ISA- IDE kártya Szabad p erifé riá k szám ára, m int a SC SI-diszkek vagy a grafikus kártyák stb., és a régi
csatoló diszk PCI-
í
Mo­
bővítőhely ISA k árty ák is haszn álh ató k . A z U SB -vel jelö lt téglalap az univerzális soros sínt
(U n iversal S erial Bús) jelen ti, am elyről később esik szó ugyanebben a fejezetben.
nitor
Egér Bille n ­ M ilyen szép is len n e, ha csak egyetlen fajta PC I kártya létezne! Sajnos, nem ez
tyűzet ISA sín a helyzet. T ö b b féle változat is létezik táp feszültségben, sínszélességben és frek ­
nnn v enciában. A régebbi szám ítógépek gyakran 5 V tápfeszültséget használtak, az
TTinj ú jab b ak egyre inkább csak 3,3 V feszültséget. A PC I sín m in d k ettő t tám ogatja.
Íz A csatlak o zók azonosak, kivéve azt a két kis m űanyag lapocskát, am ely m eggá­
Hang­ Nyom­ Szabad tolja, hogy egy 5 V-os PCI kárty át bedu g jan ak egy 3,3 V-os sínbe, vagy fordítva.
Modem
kártya tató ISA-bővítőhely S zeren csére, olyan univerzális kártyák is léteznek, am elyek m indkét feszültséggel
m ű k ö d h e tn e k , és b c d u g h ató k bárm elyik csatlakozóba. A tápfeszültségben k ü lö n ­
3.52. ábra. Egy korai Pentium rendszer architektúrája. A vastagabb sínek nagyobb böző v álto zato k o n kívül a kártyák leh etn ek 32 vagy 64 bitesek. A 32 bites kárty ák ­
sávszélességgel rendelkeznek, mint a vékonyabbak, az ábra azonban az arányokat n ak 120 k ivezetése van, a 64 bites k ártyáknak is m egvan ugyanez a 120 kivezet ésc
nem tükrözi és m ég 64, h asonlóan ahhoz, ahogyan az IBM PC sínt k ibővítették 16 bitesre (lásd
226 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.6. P É L D Á K S ÍN EK RE 227

B első felépítését tekintve a csatoló lapka két részre osztható; a m em óriacsatolóra


M onitor
és a B/K csatolóra. A m em óriacsatoló a C P U -t kapcsolja a m em óriához és a grafi­
kus kártyához. A B/K csatoló az A TA Pl-vezérlőt, a PCI sínt és (esetleg) egyéb gyors
B/K eszközt kapcsol össze egym ással közvetlenül. A m em óriacsatoló és a B/K csato­
Grafikus ló áram k ö r nagyon nagy sebességű belső összeköttetéssel kapcsolódik egym áshoz.
kártya
A PCI sín egy szinkron sín, m int m inden PC sín, egészen az e re d e ti IB M PC-ig
, A GP sín
v isszam enően. A PC I sínen m in d en tranzakció egy m ester, am elyet hivatalosan
Lokális sín M em óriasín kezdeményezőnek (inítiator) neveznek, valam int egy szolga, hivatalosan céleszköz
(target), között tö rtén ik . A kivezetések szám ának alacsonyan ta rtá sa é rd ek éb en , a
Pentium 4
CPU Csatoló Fő P C I sínen a cím- és ad atv e zeték ek m ultiplexeitek. így egy PC I kártyán elég m in d ­
1. szintű gyorsítótár - 1X1 lapka m em ória össze 64 é rin tk ező a cím - és az ad atjelek szám ára, a n n ak ellen ére, hogy a kártya 64
2. szintű gyorsítótár -
b ites cím ek et és 64 bites a d a to k a t is m egenged.
A m u ltiplexeit cím- és ad atkivezetések a k ö v etkezőképpen m űködnek. Egy ol­
n vasási m űvelet során, az első sínciklusban a m ester kiírja a cím et a sínre, a m ásodik
TJ ciklusban p edig eltávolítja, a sín iránya m egfordul, így a szolga használni tudja. A
h arm ad ik ciklusban a szolga felteszi a sínre a kívánt ad ato t. Egy írási m űvelet során
Íz Í z
ATAPI- a sín irán y án ak nem kell m egfordulnia, m e rt a m ester teszi ki a cím et és az ad ato t
SCSI U SB 2 vezérlő
Szabad is a sínre. M indazonáltal a legrövidebb tranzakció így is 3 ciklus. H a a szolga nem
PCI-bövítöhely tu d h áro m cikluson belül válaszolni, várakozó állap o to k at ik ta th a t be. Tetszőleges
I m é re tű blok km űveletek is m eg en g ed ettek , m int ahogyan egyéb sínciklusok is.
a M ág nesle­ DVD-
Billen­
Egér m ezegység m eghajtó
tyűzet

A PCI ü te m e z é s
3.53. ábra. Egy modern Pentium 4 rendszer sín struktúrája
A h h o z, hogy egy eszköz használhassa a P C I sínt, le kell foglalnia. A PC I sín c e n t­
3.51. áb ra). A 64 bite.s k árty ák at fogadni képes re n d sz e rb e b eh ely e zh ető k a 32 b i­ ralizált sín ü tem ező t (kiosztót) használ, am in t az a 3.54. áb rán láth ató . A legtöbb
tes kártyák is, e n n ek a fo rd íto ttja azo n b an m ár n em igaz. V égül, a P C I sín ek m ű ­ m egvalósításban a sín ü tem ező t b eép ítik a csatoló á ram k ö rö k egyikébe. M inden
k ö d h etn ek 33 M H z vagy 66 M H z frekvencián. V álasztan i a k e ttő kö zö tt úgy lehet, P C I eszköztől k ét szál vezet a központi ü tem ező b e. A z egyik a r e q # , am ely a sín
hogy egy kivezetést a táp feszü ltség re vagy a fö ld re k ö tn ek . A csatlakozók m in d k ét h aszn álati jo g án ak k érésére szolgál. A m ásik v ezeték a g n t # , am ely a használati
sebesség eseté b e n azonosak. jo g eln y erését jelzi.
A z 1990-es évek végére m ajd n em m indenki e g y e té rte tt azzal, hogy az ISA sín A sín m egszerzéséhez a P C I eszköz (b eleértv e a C P U -t is) beállítja a r f q # je ­
h alo tt, ezért az új terv ek m á r n em is tarta lm a z tá k . E k k o rra azo n b an m eg n ő tt a m o ­ let, és addig várakozik, am íg n em látja, hogy a o n t # je le t b eá llíto tta az ütem ező.
n ito ro k felb ontók ép esség e (n éh án y e setb en e lérte az 1600 x 1200-as felb o n tást) és A m ik o r ez bekövetkezik, a következő órajelciklusban ez az eszköz h aszn álh atja a
a teljes képernyő s folyam atos videó iránti igény, k ü lö n ö sen a m agas szintű in te r­
aktív játé k p ro g ra m o k esetéb en , így az Intel egy m ásik sínt is h o zzáad o tt, am ely a
grafikus kárty át vezérli. E n n e k a sín n ek a neve A G P (A ccelerated G rap h ics P ort)
sín. A kezdeti verzió, az A G P 1.0 264 M B /s sávszélességű volt, am it Ix (egyszeres)
sebességnek definiáltak. B ár lassabb volt, m int a P C I sín, a grafikus kártya v ezérlé­
sére szánták. É vek m ú ltán új verziók je le n te k m eg, és az A G P 3.0-val m á r 2,1 G B/s
sebességet (8x) é rte k el. Egy m o d e rn P entium 4 ren d sze rt m u ta t be a 3.53. ábra.
A tervezés szem p o n tjáb ó l a csatoló lapka m ost k ö zp o n ti sz ere p e t tö lt be. A
ren d szer ö t fó alk o tó ré sz é t kapcsolja össze: a C P U -t, a m em ó riát, a grafikus k á r­
tyát, az A lA P I-v e z é rló t és a P C I sínt. E gyes v á lto z a to k b a n m ég a háló zati k árty át
és m ás nagy sebességű eszk ö zö k et is tám o g at. A kisebb sebességű eszk ö zö k et a
PC I sínhez csatlak o ztatják .
3.54. ábra. A PCI sín centralizált sínütemezőt használ
228 3. A d i g i t á l i s l o g i k a SZ IN T JE 3 .6 . P ÉL D Á K s ín e k r e 229

PC I sínt. A z ü tem ez ő által h aszn ált algoritm us nincs definiálva a P C I specifikáci­ Vezeték­
ójában. A k ö rk ö rö s ü tem ezés, a p rio ritá sv e z ére lt ü tem ezés és m ás m eg o ld áso k is Jel Mester Szolga Megnevezés
szám
m ind m eg en g e d ettek . N yilvánvaló, hogy egy jó ü te m e ző n e k igazságosnek kell le n ­ CLK 1 Órajel (33 vagy 66 MHz).
nie, és nem en g e d h e ti m eg, hogy valam elyik eszköz a v égtelenségig várakozzon. AD 32 X X Multiplexeit cím és adatvezetékek.
A sín h aszn ála tá n ak en g edélyezése egy tra n z a k c ió ra érvényes, azo n b an a tra n z ­ PÁR 1 X Cím-, illetve adatparitás bit.
akció hossza elm életileg nincs korlátozva. H a az eszköz sz e re tn e egy m ásodik C/BE 4 X Sín parancs/engedélyezett bájtok bittérképe.
tran zak ció t is, és sem elyik m ás eszköz sem k éri a sínt, a k k o r ism ét k ö v etk ezh et, FRAME# 1 X Jelzi, hogy AD és C/BE érvényes.
b ár gyakran egy ü re s ciklust kell a tran zak ció k közé iktatn i. A zo n b an speciális fel­ Olvasásnál: a mesterfogadja az adatokat; írásnál: adat
IRDY# 1 X
té te le k m ellett, ha nincs verseny a sín m egszerzéséért, egy eszköz szorosan egym ás kész.
u tán következő tran za k c ió k at is v é g reh a jth a t anélkül, hogy ü res ciklust ik ta tn a a IDSEL 1 X A konfigurációs terület választása a memória helyett.
tran zak ció k közé. H a a sín m ester egy nagyon hosszú ad atátv itelb e k ez d ett, és kö z­ DEVSEL# 1 X A szolga felismerte saját címét, és várja az utasításokat.
b en egy m ásik eszköz k éri a sínt, az ü te m e ző n eg á lh a tja a o n t # vonalat. Az a k tu ­ TRDY# 1 X Olvasásnál: adat kész; írásnál: a szolga várja az adatokat.
ális sín m estern ek figyelnie kell a g n t # v o n alat, és am in t észleli a n eg álást, fel kell STOP# 1 X A szolga a tranzakció azonnali leállítását kéri.
szab ad ítan ia a sínt a k ö v etk ez ő ciklusban. E z a m ó d szer nagyon hosszú átv itelek et PERR# 1 A fogadó által észlelt adat paritása hibás.
is m egen ged (am elyek h aték o n y ak ), am ik o r csak egyetlen sín m esterjelö lt van, de SERR# 1 A cím paritása hibás vagy rendszerhiba.
gyorsan kiszolgálja a tö bbi versenyző eszközt is. REQ# 1 Sínütemezés: sín lefoglalásának kérése.
GNT# 1 Sínütemezés: lefoglalás engedélyezése.
RST# 1 A rendszer és minden eszköz alapállapotba helyezése.
A PCI sín je le i
(a)

A P C I sín szám os k ö telező je le t alkalm az, ezek a 3.55. (a) á b rá n lá th a tó k , v ala­ Vezeték­
Jel Mester Szolga Megnevezés
m int sok nem k ö telező t, ezek ped ig a 3.55. (b ) áb rán . A 120 vagy a 184 é rin tk e ­ szám
zőből fe n n m a ra d ó k iv eze tések et tápfeszültség, föld és e h h e z k ap cso ló d ó egyéb REQ64# 1 X 64 bites tranzakció kérése.
olyan funkciók céljaira h asználják, am ely ek et itt n em részletezü n k . A M ester (k ez­ ACK64# 1 X 64 bites tranzakció engedélyezése.
dem ényező) és a Szolga (cél eszköz) oszlopok azt m u tatják , hogy m elyikük állít­ AD 32 X További 32 bit cím vagy adat.
ja be a je le t n o rm ál tran zak ció esetén . H a a jel egy h arm a d ik eszköztől szárm azik PAR64 1 X Az extra 32 bit cím, illetve adat paritása.
(például a c l k ) , m in d k é t oszlop ü re se n m arad . C/BE# 4 X A további 4 bájt bittérképe.
N ézzük m ost m eg az egyes P C I jele k e t részletesen. A k ö telező 32 bites jelekkel LOCK# 1 X A sín lefoglalása több egymás utáni tranzakcióhoz.
kezdünk, m ajd az opcionális 64 bitesekkel folytatjuk. A c l k jel időzíti a sínt. A leg­ Találat egy másik processzor gyorsítótárában
SBO# 1
több m ás jel szinkronban van vele. E llen tétb en az ISA sínnel a PCI sín tranzakciók (multiprocesszor számára).
a CLK jel lefutó élére kezdődnek, am i valahol a ciklus k ö zep én van, és n em az elején. SDONE# 1 Kész a szimatolás (multiprocesszor számára).
32 bites tran zak ció k b an a 32 b ites a d jel a cím vagy az a d a t to v á b b ítá sá ra szol­ INTx 4 Megszakításkérés.
gál. Á ltaláb an , az első sínciklusban a cím k erü l fel a sínre, a h arm ad ik ciklusban JTAG 5 Az IEEE 1149.1 JTAG teszt jelei.
p edig az ad at. A p á r jel a d p aritásb itje. A c / b e # je le t k ét k ü lö n b ö ző dolo g ra hasz­ M66EN 1 A tápfeszültségre vagy a földre kötve (66 vagy 33 MHz).
nálják. A z első ciklusban a sín p a ra n c so t tartalm a zz a (1 szó olvasása, b lokk olva­
(b)
sása stb.). A m áso d ik ciklusban egy b itté rk é p e t, am ely azt m u ta tja m eg, hogy a 32
b ites szó m ely bájtjai érvényesek. A c / b e # jel felh aszn álásáv al tetsző leg esen 1, 2, 3 3.55. ábra. (a) Kötelező PCI sín jelek (b) Opcionális PCI sín jelek
b á jto t vagy a k ár egy egész 32 b ites szót tu d u n k olvasni vagy írni.
A F R A M E # je le t a sín m ester állítja be, am ik o r m egkezdi a tran zak ció t. A zt k ö z­ beállításáv al). E z a konfigurációs te rü le t az a d o tt eszköz tu lajd o n ság ait ta rta lm a z ­
li a szolgával, hogy a sín p a ra n cs és a cím m á r érvényes. O lvasáskor az i r d y # je le t za. N ém ely o p eráció s ren d szer „csatlakoztasd és m ű k ö d ik ” (Plug-and-Play) szol­
a FRAME# jellel egyszerre állítja be. E z azt m o n d ja m eg, hogy a sín m ester kész a g áltatása ezt a konfigurációs te rü le te t használja an n ak m eg h atáro zására, hogy m i­
bejövő a d a to k fo g ad ására. írá s e se té n az i r d y # jel k éső b b állító d ik be, am ik o r az lyen eszközök v an n ak a sínen.
a d a t m ár a sínen van. M ost elé rk eztü n k azokhoz a jelek h ez, am elyeket a szolga állít be. E zek közül az
A z iD SEL jel azzal kapcso lato s, hogy m in d en PCI eszköz egy 256 b ájto s konfigu­ első a d e v s e l # , am ely azt jelen ti, hogy a szolga felism erte saját cím ét az a d veze­
rációs te rü le tte l ren d elk ezik , am ely et m ás eszközök tu d n a k olvasni (az i d s e l jel té k e k e n , és felkészült a rra, hogy v égrehajtson egy tranzakciót. H a a d e v s e l # jelet
230 3. A d i g i t á l i s l o g i k a SZ IN T JE
3.6. P ÉL D Á K SÍN E K R E 231

egy bizonyos idő elteltév el sem állítják be, a m e ste r nem vár tovább, és azt fe lté te ­ Sínciklus
lezi, hogy a m egszólított eszköz nincs je le n vagy e lro m lo tt.
A m ásodik jel, am elyet a szolga ad, a t r d y # ; ez olvasáskor azt jelzi, hogy az
a d ato k a t m ár a z a d v ezeték ek re te tte , írásk o r pedig, hogy készen áll az a d ato k fo ­
gadására.
A következő h áro m jel a hibajelzéssel k apcsolatos. A z első ezek közül a s t o p # ,
am ellyel a szolga jelzi, hogy valam i végzetes d o log tö rté n t, és m eg ak arja szak íta­
ni az aktuális tran zak ció t. A k ö v etk ező a p e r r # , am ely a rra szolgál, hogy p a ritá s­
h ib át jelezzen az előző ciklusban to v áb b íto tt a d atta l k ap cso latb an . O lvasásnál a
m ester állítja be, írásnál p edig a szolga. A fo g ad ó eszközön m úlik a szükséges lé­
p ések v égrehajtása. V égül, az s l - r r # je l cím- vagy re n d sz e rh ib á t jelez.
A R E O # és a G N T # jelek az ü tem ezésb en vesznek részt. E zek et n em az a k tu á ­
lis sín m ester adja ki, h an em egy olyan eszköz, am ely sín m ester sz e re tn e lenni. A z
u tolsó kötelező jel az r s t # , am ely a re n d sze rt a la p á llap o tb a állítja; ez a k k o r állí­
tódik be, ha a felh aszn áló m egnyom ja a R E S E T n y om ógom bot, vagy valam ilyen
ren dszereszköz végzetes hib át észlelt. E n n e k a je ln e k a h a tá sá ra m in d en eszköz
a la p á llap o tb a kerül, és a szám ítógép lijraindul.
M ost elérk eztü n k az o p cionális jelek h ez, am elyek legtöbbje a 32 b itrő l 64 b it­
re tö rté n ő kibővítéssel k apcsolatos. A r e q 64 # jellel k é rh e t a sín m e ster 64 bites
tranzakció e lin d ításá ra engedélyt, az a c k 64 # jellel ped ig a szolga jelezh eti, hogy
64 bites tran zak ció k at fogad. A z a d , p a r 64 és a c / b e # je le k csak a m eg felelő 32 b i­
tes jelek kiterjesztései.
A k övetkező h á ro m jel nem a 32 b itrő l 64 b itre tcirténő bővítéssel, h an em a
töb b p ro cesszo ro s ren d szerek k el kapcso lato s, olyasvalam ivel, am it a P C I k á rty ák ­
nak nem lenne szükséges tám o g atn iu k . A l o c k jellel fo g lalh ató le a sín töb b , egy­
m ást következő tran zak ció szám ára. A m ásik két jel a sínszim atolással k ap cso la­ 3.56. ábra. Példák 32 bites PCI sin tranzakciókra. Az első három órajeldkiusban olvasás zajlik,
egy ciklus kimarad, majd a következő három ciklusban írás történik
tos, a gyo rsító tárak k o h e re n c iá já t biztosítja.
A z iNix jelek m egszakítás k é ré sé re szolgálnak. Egy PC I k árty a m axim um négy
különálló logikai eszközt ta rta lm a z h a t, és m indegyiknek leh et saját m egszakítást A T , p erió d u s a latt a m ester elengedi a cím sínt, ezzel lehetővé teszi, hogy a sín
k é rő vonala. A j t a g je le k az IE E E 1149.1 JT A G tesztelési eljárás szám ára v annak irányt váUson, és a szolga átvehesse a vezérlést a l \ p erió d u sb an . A m ester b eállít­
fen n tartv a. V égül az m 6 6 e n jel vagy a logikai m agas, vagy az alacsony szintre van ja a c / b e # b itek et is, am ellyel jelzi, hogy m ely b ájto k at akarja engedélyezni (azaz
kötve; ezzel az órajel-frek v en ciát állítják be. E z a re n d sz e r m ű k ö d ése kö zb en nem beolvasni) a m egcím zett szóból.
változhat m eg. A T j p erió d u sb an a szolga b eállítja a d e v s e l # je le t, így a m ester tudja, hogy
m eg k ap ta a cím et, és válaszolni fog. Felteszi a k ért a d a to t az a d vonalakra, m ajd
b eállítja a t r d y # jelet, am ely tu d atja a m esterrel, hogy a készen van. H a a szol­
PCI síntranzakciók ga nem lenne k ép es ilyen gyorsan válaszolni, akkor is b eállítan á a d e v s e l # jelet,
am ellyel jelzi a je le n lé té t, de a t r d y # je le t neg áln á m indaddig, am íg nem tudja
A P C I sín igazán egyszerű (ahogyan a sínek á ltaláb an ). Hogy jo b b an elk é p z e lh es­ sziilgáltatni az ad ato t. Ez az eljárás egy vagy több várakozó állap o t b eik tatását
sük, tek in tsü k a 3.56. áb rán lá th a tó időzítési d iag ram o t. E zen egy olvasási tra n z ­ ered m én y ezn é.
akciót láth atu n k , am elyet egy ü res ciklus, m ajd p ed ig egy írási tran zak ció követ E b b en a p éld áb a n (és gyakran a valóságban is) a k övetkező ciklus üres. A
ugyanazzal a sínm esterre l. ciklustól kezdve ugyanezt a m estert látjuk, am int egy írás tran zak ció t k ezd em é­
A Tj ciklusban az órajel lefu tó élénél a m e ste r felteszi a m em ó riacím et az a d nyez. A cím és a sín p aran cs beállításával kezdi, m int általáb an , csak m ost a m á ­
vonalakra és a sín p aran cso t a c / b e # vonalakra. E zu tá n b eállítja a f r a m e # je le t, sodik ciklusban a m e ste r állítja be az ad ato t. M ivel ugyanaz az eszköz vezérli az
hogy elindítsa a tranzakciót. a d v o n alak at, nincs szükség irányváltoztatási ciklusra. A ciklusban a m em ória
fogadja az ad ato t.
232 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.6. P É L D A K SÍN EK RE 233

3.6.3. PCI Express


B ár a PC I sín m eg felelő en m ű k ö d ik a legtöbb nap i alkalm azásban, a nagyobb B/K
sávszélesség irán ti igény b elesze m e telt az egykor szép, tiszta b első P C -arch itek -
tú ráb a. A 3.53. áb ráb ó l világosan látszik, hogy m á r n em a P C I sín az a közp o n ti
elem , am ely a PC részeit összekapcsolja. A csato ló lapka v ette á t ezt a szerepet.
A p ro b lém a lényege, hogy egyre nagyobb szám ú B/K eszköz van, am ely túl gyors
a PC I sínhez. A sín órajel-frek v en ciáján ak m egbütykölése nem jó m egoldás, m i­
vel ak k o r m egjelen n ek a sín aszim m etria p ro b lém ái, az áth allás a vezeték ek k ö zö tt
és a kapacitásh atáso k , és csak m ég rosszabb lesz a helyzet. M inden olyan esetb en ,
am ik o r egy B/K eszköz túl gyors k ezd lenni a P C I sínhez (m in t p éld áu l a grafikus
kártyák, b e é p íte tt m ágneslem ezegységek, h álózati k árty ák stb.), az In tel egy újabb
speciális p o rto t a d a csato ló lap k áh o z, leh ető v é téve, hogy ez az eszköz kik erü lje a
PCI sínt. N yilvánvaló azo n b an , hogy ez n em egy hosszú táv ra szóló m egoldás.
A másik p ro b lém a a P C I sínnel az, hogy a b ő v ítő k árty ák m é re te elég nagy.
N em fé m e k be egy h o rd o z h a tó asztali szám ító g ép b e (la p to p b a ) vagy egy ten y ér
szám ítógépbe (p alm to p b a), a gyártó k p ed ig m ég kisebb eszközöket sz ere tn én e k
előállítani. E zenkívül, n éh án y gyártó ú jra szeretn e stru k tu rá ln i a PC -t; a C P U -t és
a m em ó riát egy lezá rt d o b o zb a te n n ék , a m ágncslem ezegységet p ed ig a m o n ito r
belsejébe. PC I kártyákkal ez leh e te tle n .
T ö b b m egoldást is b e je le n te tte k m ár, a legvalószínűbb n y ertes azo n b an (nem 3.57. ábra. Egy tipikus PCI Express rendszer vázlata
kis részben azért, m e rt az In tel áll m ö g ö tte ) a PCI E xpress. N em sok köze van a
PCI sínhez, valójában egyáltalán n em is sín, de a piaci szak em b erek n em sz e re t­ nagy sebességű át\'itel során. Ez az a rc h itek tú ra a jelen leg it egy sokkal egysége­
n ék a jól ism ert P C I nevet elveszíteni. M ár egy ideje k a p h a tó k olyan PC -k, a m e ­ sebb m odellel váltaná fel, am elyben m inden eszközt azonos m ód o n kezelnek.
lyek ilyet tartalm azn ak . M ost n ézzü k m eg, hogyan m űködik. A P C I E xpress a régi P C I sín arch itck tű rátő l három fontos dologban tér el. K ettőt
m á r láttunk: a k ö zp o n to síto tt kapcsoló a több leágazású sín helyett, valam int a kes­
keny közvetlen soros kapcsolat a széles, párhuzam os sín helyett. A harm adik ennél
A PCI Express architektúra kifinom ultabb. A PC I sín m ögött rejlő elképzelés az, hogy a sínm ester p arancsot ad
a szolgának, h a egy szót vagy egy ad atblokkot be ak ar olvasni. A P C I E xpress m o­
A PCI Express m eg o ld ás lényege, hogy szabaduljunk m eg a p árh u z a m o s síntől, dellje ezzel szem ben az, hogy egyik eszköz egy adatcsom agot küld a m ásik eszköz­
ann ak sok sín m esterétő l és szolgájától, és té rjü n k át jól m eg terv ezett, nagy se ­ nek. A csom agfogalom , am ely egy fejlécből és a hasznos adatból áll, a hálózatok
bességű közvetlen soros k ap cso lato k ra. E z a m eg o ld ás gy ö k eresen szakít az ISA / világából szárm azik. A fejléc vezérlési inform ációt tartalm az, így nincs szükség arra
E IS A /P C I síntradícióval. Sok ö tle te t a lokális h áló z a to k világából, k ü lö n ö sen a a sok vezérlőjelre, m int a P C I sínnél. A hasznos a d a t tartalm azza az átvinni kívánt
kapcsolt E th e rn e t-h á ló z a to k tó l k ö lcsönöztek. A z ala p ö tle t a következő; a P C leg- a d ato t. V alójában egy P C a P C I Express-szel egy kicsi csom agkapcsolt hálózat.
belül C P U , m em ó ria- és B/K v ezérlő lap k ák b ó l áll, am ely ek et össze kell kapcsolni. E h á ro m fő te rü le te n szakítottak a m últtal, ezeken kívül azonban vannak m ég
A PCI E xpress egy általán o s célú kap cso ló t biztosít a lap k ák ö sszek ö téséh ez soros kisebb k ü lö n bségek is. A negyedik különbség az, hogy hibajelző k ó d o t használnak
kapcsolat segítségével. E g \’ tipikus ilyen k onfigurációt m u ta t be a 3.57. ábra. a csom agoknál, am ellyel a PC I sínnél nagyobb fokú m eg bízhatóságot biztosítanak.
A hogyan az a 3.57. á b rán is látszik a C P U , a m em ó ria és a g y o rsító tár hag>'omá- A z ö tö d ik , hogy a k apcsolat egy lapka és a soros kapcsoló k ö zö tt hosszabb lehet,
nyos m ód o n kapcsolódik a csatoló lapkához. A m i új az a kapcsoló, am ely a csa­ e lé rh e ti az 50 cm -t; ez m egengedi a ren d szer átterv ezését. A hato d ik , hogy a re n d ­
toló lapkához kapcsolódik (esetleg leh et m agának a csatoló la p k án a k a része is). szer b ő v íth ető , mivel egy eszköz leh et a k ár egy m ásik soros kapcsoló is, am ellyel
M indegyik B/K la p k án a k saját egyedi ö sszek ö ttetése van a kapcsolóhoz. M indegyik kapcsolók fa stru k tú rá já t h ozhatják létre. A h eted ik különbség, hogy az eszközök
kapcsolat k ét egyirányú csato rn áb ó l álló pár; az egyik csato rn a a kapcsolóhoz, a m eleg en c satlak o ztath ató k , azaz c sa tlak o ztath ató k és eltáv o líth ató k a re n d sz e r­
m ásik pedig a k apcsolótól szállít a d ato k at. M indegyik csato rn a k ét v ezeték et je ­ ből, m ia latt az tovább m űködik. V égül, a soros csatlakozók sokkal kisebbek, mi nt
lent, egyik a jel, a m ásik a föld szám ára, am ely így nagy zajtű réssel ren d elk ezik a a régi P C I-csatlakozók , így az eszk()zök és a szám ítógépek sokkal kisebbek leh et­
n ek. M in d e n t egybevéve, m indez je le n tő s eltávolodást je le n t a P C I síntől.
234 3. A DIG ITÁ LIS LO G IK A SZ IN T JE 3.6. P É L D Á K SÍN E K R E 235

A PCI Express protokollrendszer 10 b ite t h asználnak egyetlen hasznos b ájt k ó d o lására egy 10 bites szim bólum ­
b an. A z 1024 lehetséges U) bites érték b ő l kiválasztották azokat a m eg en g ed h ető
M aradva a csom agkapcsolt háló zati m o d elln él, a PCM E xpress réteg es kapcsolati szim bólum okat, am elyek eleg e n d ő jelváltást ta rta lm a z ta k ahhoz, hogy b ith a tá rra
p ro to k o llren d sze rrc l rend elk ezik . A p ro to k o ll a két fél közö tti p árb e sz é d e t irányí­ szinkronizálják a k ü ld ő t és a fogadót fő ó ra je l-g e n e rá to r nélkül is. A 8b/10b k ó ­
tó szabályok egy halm aza. A p ro to k o llre n d sze r p ro to k o llo k h ierarch iája, am ely­ dolás k ö v etkezm ényeként a k apcsolat teljes 2,5 G bps k apacitása csupán 2 G bps
ben az egyes p ro b lém ák k al külön réteg ek b en foglalkoznak. P éld án ak vegyünk egy hasznos (n e ttó ) ad atm ennyiség átv itelére elegendő.
üzleti levelet. V annak m eg állap o d áso k a levél fejré sz én ek ta rta lm á ró l és elh ely ez­ A m íg a fizikai ré te g a bitek átvitelével foglalkozik, addig a kapcsolati réteg a
kedéséről, a cím zett a d ata iró l, a d átu m ró l, az üdvözlésről, a levél szövegéről, az csom agok átvitelével. Fogja a tranzakciós rétegtől k a p o tt fejlécet és hasznos a d a ­
aláírásról és így tovább. V ehetjük úgy, hogy ez a levél egy pro to k o ll. V annak to v áb ­ to t, egy so rszám ot és egy C R C -nek (Cyciic Redundancy Check, ciklikus redun­
bi m eg állapodáso k a b o ríté k ró l, p éld áu l a m é re té rő l, hogy hová k erü l a felad ó cí­ danciakód) nevezett hibajelző k ó d o t ad hozzá. A C R C egy bizonyos algoritm us­
m e, és mi a form ája, hová k erü l a cím zett és m ilyen fo rm áb an , hová k erü l a bélyeg nak a fejlécre és a hasznos a d a to k ra tö rté n ő futtatásával szám íth ató ki. A m ik o r a
és így tovább. E z a két réte g és a hozzájuk ta rto z ó k é t p ro to k o ll független. Például csom ag m egérkezik, a fogadó is elvégzi ugyanezt a szám ítást a fejlécre és a hasz­
teljesen ú jrafo rm á z h a tju k a levelet, de ugyanazt a b o ríté k o t használjuk, vagy fo r­ nos a d a to k ra , és ö sszehasonlítja az ered m én y t a csom aghoz csatolt CRC -vel. H a
dítva. A réteg es p ro to k o llo k a h atékony, m o d u láris tervezést szolgálják, és évtize­ m egegyeznek, egy rövid nyugtázó csom agot küld vissza, ezzel jelzi a csom ag h ib á t­
dek ó ta széles k ö rb en elte rje d te k a h álózati szoftverek világában. A m i újdonság, lan m eg érk ezését. H a a k ét ered m én y nem egyezik, a fogadó kéri a csom ag újra-
hogy m ost a sín h ard v erb e is b e é p íté sre kerü ltek . k ü ld ését. E zen a m ód o n az ad atin teg ritás je len tő sen javult a PC I sínhez képest,
A P C I E xpress p ro to k o llre n d sze r a 3.58. (a) á b rá n láth ató . am ely n em b izto síto tt leh ető ség et a sínen á tk ü ld ö tt a d a to k ellen ő rzésére és újra-
kü ld ésére.
A n n ak elk erü lésére, hogy egy gyors küldő eszköz olyan m ennyiségű csom aggal
Szoftverréteg
árasszo n el egy lassú fogadó eszközt, am elyet az nem tud kezelni, egy folyam at­
Tranzakciós réteg Fejléc Hasznosadat vezérlő m echanizm ust használnak. A m echanizm us lényege, hogy a fogadó eszköz
elküld a k ü ldőnek egy bizonyos k red it (hitel) érté k e t, a b eérk ező csom agok tá ro ­
Kapcsolati réteg Seq# Fejléc Hasznos adat CRC
lására ren d e lk ezésre álló p u ffer m é re té t. A m ik o r a k red it elfogy, a k ü ld ő n ek be
Fizikai réteg Keret Seq # Fejléc Hasznos adat CRC Keret kell fejeznie a küldést, am íg új k re d ite t nem kap. E z t a sém át e lterjed ten h aszn ál­
já k m in d en féle h áló zatb an , hogy m egakadályozzák a küldő és a fogadó e lté rő se­
(a) (b) b ességéből e re d ő adatvesztést.
A tranzakciós réteg kezeli a síntevékenységeket. Egy szó olvasása a m e m ó riá ­
3.58. ábra. (a) A PCI Express protokollrendszer. (b) A csomagok formátuma ból k ét tra n z ak ció t kíván: az egyiket a C P U vagy egy D M A csato rn a k ezd em én y e­
zi, és k é r bizonyos a d ato k a t, a m ásikat az a d a to k a t szolgáltató célcszköz. A zonban
V izsgáljuk m eg az egyes ré te g e k e t alulról felfelé. A legalsó ré te g a fizikai ré­ a tranzak ció s ré te g több annál, m int egyszerű olvasások és írások kezelése. A k a p ­
teg. A zzal foglalkozik, hogy b ite k e t továbbít a k üld ő tő l a fo g ad ó n ak egy közvetlen csolati ré teg által b izto síto tt nyers csom agküldést további szolgáltatásokkal eg é­
kapcso lato n keresztül. M in d en egyes kapcsolat egy vagy több szim plex (azaz egy­ szíti ki. E lőször is, m inden egyes sávot feloszthat nyolc virtuális áramkörre, a m e ­
irányú) c sato rn a p árb ó l áll. A legegyszerűbb e setb en egy p á r van, egy-egy c sa to r­ lyek m indegyike külö n b ö ző jellegű fo rg alm at bonyolít le. A tranzakciós réteg m eg
n a m in d k ét irányban, de 2, 4, 8, 16 vagy 32 p á r is m eg en g ed ett. Egy-egy c sa to rn á t tu d ja cím kézni a csom agokat, aszerint, hogy a nyolc forgalm i osztály m elyikéhez
sávnak neveznek. A sávok szám án ak m in d k ét irányban azo n o sn ak kell lennie. A z ta rto z n ak , a cím kében leh e tn e k olyan attrib ú tu m o k , m int a m agas p rio ritás, ala­
első g enerációs te rm é k e k n e k bárm ely irányban leg aláb b 2,5 G b p s (gigabit/s) se­ csony p rio ritás, szim atolás tiltása, soron kívüli kézb esíth ető ség és m ég sok egyéb.
bességet kell b izto sítan iu k , de azt rem élik, hogy a sebesség h a m a ro sa n m in d k ét A k ap cso ló lap k a h aszn álh atja ezek et a cím kéket, am ik o r arról dönt, m elyik lesz a
irányban eléri a 10 G bps-t. legközelebb to v áb b ítan d ó csom ag.
Az ISA /ELSA/PCI sínekkel e lle n té tb e n a P C I E x p ressn ek nincs fő ó rajel-g e­ M in d en tranzakció az alábbi négy cím tartom ány egyikét használja:
n erá to ra . A z eszközök azonnal elk ez d h e tn e k adni, am in t van elk ü ld en i való a d a ­
tuk. E z a szabadság gyorsabbá teszi a ren d sz ert, de egyúttal p ro b lé m á h o z is vezet. 1. M em ó ria te rü le t (közönséges olvasások és írások esetén );
Tegyük fel, hogy az 1-es bit H-3 V-tal kód o ló d ik , a 0-s b it p ed ig 0 V-tal. I la az első 2. B/K te rü le t (a c satlak o ztato tt eszközök reg iszterein ek m egcím zésekor);
n éh án y b ájt m ind 0 bitek b ő l áll, h o n n a n tu d ja a fogadó, hogy a d ato k érk ezn ek . 3. K onfigurációs te rü le t (a ren d szer kezdeti b eállításak o r stb.);
E lvégre egy 0 bit so ro zat p o n to sa n úgy n éz ki, m in t egy m eg szak ad t k apcsolat. E zt 4. Ü z e n e tte rü le t (jelzések küld ések o r, m egszakítások esetén stb.).
a p ro b lém át az úgynevezett 8b/10b kódolással o ld o ttá k m eg. A m eg o ld ás az, hogy
236 3. A DIG ITÁ LIS LO G IK A SZ IN T JE
3.6. P é l d á k SÍN EK RE 237

A m em ória- és a B/K te rü le t h aso n ló a je len leg i re n d sz e re k b e n lévőkhöz. A k o n ­ ugyan kiküszöhölik a v ezeték áth id aláso k k al való vesződést, azonban tov áb b ra is
figurációs te rü le t olyan szolgáltatások m eg v aló sítására szolgál, m int a plug-and- a felh aszn áló n ak kell felnyitnia a szám ítógépet, és b ete n n ie a kártyát, valam int a
play („csatlak o ztasd -és-m ű k ö d ik ”). A z ü z e n e tte rü le t a re n g e te g létc/.ő h a rd v e r­ síncsatlakozások szám a is k o rláto zo tt.
vezérlőjel szerep ét veszi át. Valami ilyesm ire szükség van, mivel a PC I sín v ezérlő ­ 1993-ban hét vállalat - a C om paq, D E C , IB M , Intel, M icrosoft, N E C és a N o r­
jelei közül egy sincs m eg a PCI E xpressnél. th e rn Telecom - képviselői összeültek, hogy m egvitassák a p ro b lém át, és a szá­
A PC I E xpress rend.szer a szo ftv erréteg en keresztü l csatlakozik az o p e rá ­ m ító g ép ek és az alacsony sebességű p e rifériák ö sszekapcsolásának jobb m ódját
ciós rendszerhez. K épes a PC I sín e m u lálására, így a létező o p eráció s ren d sze­ dolgozzák ki. A zó ta m á r cégek százai csatlakoztak hozzájuk. A z eredm ényül k a ­
rek v álto ztatás nélkül tu d n a k m ű k ö d n i a P C I E x p ress re n d sze rt alkalm azva. p o tt szabványt, az USB-t (U niversal S erial B ús, u n iv erzális so ro s sín) hivatalosan
T erm észetesen ez a m ó d szer n em hasznosítja a P C I E xpress m in d en ere jé t, azo n ­ 1998-ban je le n te tté k be, és m ár széles k ö rb e n alkalm azzák szem élyi szám ítógé­
b an a visszafelé k o m p atib ilitás szükséges rossz, am it n em h ag y h atu n k figyelm en p ek b en . További in fo rm áció ért lásd (A n d erso n , 1997 ; Tan, 1997 ).
kívül, am íg az o p eráció s ren d sz erek e t n em m ó d o sítják úgy, hogy teljesen h aszn á­ N éh án y cél azok közül, am elyeket az U S B -t e red etileg kidolgozó és a m u n k át
latb a vegyék a P C I E xpresst. A ta p a sz ta lato k szerin t ez e lta rth a t egy darabig. elin d ító cégek fogalm aztak meg;
A z in fo rm áció áram lást a 3.58. (b) á b ra m u tatja. A m ik o r a szo ftv erréteg p a ra n ­
csot kap, azt továb b ad ja a tran zak ció s réteg n ek , am ely átala k ítja a p a ra n c so t fejléc 1 .A felh aszn áló k n ak ne kelljen m inikapcsolókat (sw itch), v ezeték átk ö tések et
és hasznos a d a t a lak ú ra. Ezt a k ét rész azu tá n a k ap cso lati réte g h e z k erü l, am ely (ju m p er) b eállítan iu k sem a b ővítőkártyák on, sem a készülékeken.
egy sorszám ot kapcsol a csom ag elejéh ez, és hibajelző k ó d o t a végéhez. A z így 2. A felh aszn áló k n ak ne kelljen felnyitniuk a szám ítógép h á /á t, hogy egy új p e rifé ­
b ő v ített csom ag k erü l azu tán a fizikai réteg h ez, am ely k e re tte l zárja le a csom ag riá t csatlakoztathassanak.
m in d k ét végét, hogy egy fizikai cso m ag o t h ozzon létre, am elyet aztán ténylegesen 3. E g y etlen fajta kábel legyen, am ely az összes készülék szám ára alkalm as.
elküld. 4. A p erifériák az elek tro m o s e n erg iát is ezen a káb elen keresztül kapják.
É vtizedek ó ta nagy sikerrel haszn álják a h áló za to k világában azt az elképzelést, 5. E gyetlen szám ítógéphez legalább 127 eszközt lehessen csatlakoztatni.
hogy m in d en ré te g a p ro to k o ll ré teg e ib en egyre m ély eb b re h alad v a további k ieg é­ 6. A re n d szer ki tudjon szolgálni valós idejű p erifériák at is (például hang, telefon).
szítő inform áció t ad az ad ato k h o z. A h áló za to k és a P C I E xpress k ö zö tt az a nagy 7. A k észü lék ek et úgy is lehessen telep íten i, hogy a szám ítógép közben m űködik.
különbség, hogy a h áló za to k e se té b en a k ü lö n b ö ző ré te g e k b e n lévő kód m ajd n em 8. Ne kelljen ú jrain d ítan i a szám ítógépet a készülék csatlak o ztatása után.
m indig szoftver, am ely az o p eráció s re n d sz er része. A P C I E xpressnél ez m ind az 9. A z új sín és a rajta lévő eszközök előállítási költsége ne legyen m agas.
eszközben lévő h ard v er része.
A P C I E xpress bonyolult dolog. További in fo rm ác ió ért lásd (M ayhew és Krish- A z U SB -szabvány kielégíti m in d ezek et az elvárásokat. O lyan alacsony sebes­
n an, 2003; Solari és C o n g d o n , 2005). ségű eszközök szám ára tervezték, m in t a billentyűzet, az egerek, álló k ép k am era,
fén y k ép szk enner, digitális telefon stb. A z U SB 1.0-ás v erziójának sávszélessége
m integy 1,5 MB/s, am ely eleg e n d ő a billentyűzet és az egerek szám ára, az 1.1-cs
verzió p edig 12 M B/s sebességgel m űködik, am ely eleg en d ő a nyom tatók, digitális
3.6.4. Univerzátis soros sín
fén y k ép ező gépek és sok m ás eszköz szám ára. E zek et a viszonylag alacsony h a tá r­
A P C I sín és a PC I E xpress kiválóan alk alm azh ató nagy sebességű p erifériá k szá­ é rté k e k e t a k()ltségek alacsony szinten ta rtá sa m iatt választották.
m ító g ép h ez kapcsolásához, azo n b an tú lság o san d rág ák az alacsony sebességű p e ­ Egy U S B -ren d szer egy kö zp o n ti csom ópontból (root h u b ) áll, am ely a re n d sz e r­
rifériák, p éld áu l az e g é r vagy a b illen ty ű zet szám ára. T ö rté n e lm ile g m in d en szab­ sínre csatlakozik (lásd 3.52. áb ra). E z a csom ó p o n t tö b b csatlakozót tartalm az a
ványos B /K eszköz egyedi m ó d o n k a p c so ló d o tt a szám ító g ép h ez, am elyben az új külső B/K eszközök vagy újabb csom ó p o n to k szám ára, am elyek további csatlak o ­
eszközök szám ára volt néh án y szabad ISA- vagy P C I-csatlak o zó . Ez a m egoldás zási leh ető ség ek et b izto síth atn ak , így az U S B -ren d szer topológiája egy olyan fa,
m ár a k ezd etek tő l p ro b lém ás volt. am elynek a gyökere a szám ítógép b elsejében lévő központi csom ópont. A k á b e ­
^ Például, az új p erifé riá k gyakran saját ISA vagy P C I kártyával k ap h ató k . lek végén k ét k ü lönböző csatlakozó van, egyik csak a B/K eszközbe, a m ásik csak
Á ltaláb an a felhasználó felelős a k árty án lévő kap cso ló k és v e zetek áth id aláso k az elo sztó b a d u g h ató be, ezzel m eg gátolható, hogy véletlenül két csom ó p o n t két
(ju m p er) helyes k o n fig u rálásáért, v alam in t azért, hogy e b eállításo k ne k erü ljen ek csatlak o zó ja legyen összekötve a kábellel.
k onfliktusba m ás kártyákkal. A zu tán a felh aszn áló n ak fel kell nyitnia a szám ító ­ A kábel négy v ezetékszálat tartalm az: k e ttő t az ad ato k , egyet a tápfeszültség
gép házát, go n d o san behelyezni az új kárty át, visszazárni a h ázat, m ajd ú jrain d í­ ( + 5 V ) és egyel a föld szám ára. A jelto v áb b ító ren d szer a O-kat feszültségátm e­
tan i a szám ítógép et. Sok e m b e r szám ára ez az eljárás n eh ézk es, és h ib ale h e tő sé ­ n e tk é n t, az 1-eket pedig a feszü ltség átm en et h iányaként továbbítja, így egy hosszú
g ek et rejt m agáb an . R áad ásu l az ISA- és P C I-csatlak o z áso k szám a m eg leh ető sen 0so ro zat szabályos im pulzusfolyam ot generál.
k o rlá to z o tt (általá b a n k ettő vagy h á ro m ). A „csatlak o ztasd és m íík ö d ik ” kártyák
238 3. A d i g i t á l i s l o g i k a SZ IN T JE 3,6. P É L D Á K SÍN EK RE 239

Egy új es/k ö z c sa tla k o zta tá sa k o r a k özponti c so m ó p o n t érzékeli az esem ényt, A 3.59. áb rán a 0. és 2. k ere tb e n nincs felad at, ezért az egyetlen, am ire szükség
és m egszakítást kezdem ényez. E zu tán az o p eráció s re n d sz e r lekérdezi, milyen van egy s o f (S tart of I'ram e) csom ag elküldése. Ezt a csom agot a központi cso m ó ­
eszközről van szó, valam int hogy m ek k o ra U S B -sávszélességre van szüksége. H a p o n t m inden esetb en m inden eszköz szám ára továbbítja. A z 1-es k eret egy lek ér­
az o p erációs ren d sz e r úgy d ö n t, hogy van eleg en d ő sávszélesség az eszköz szá­ dezés, p éldául kérés egy szkennerhez, hogy küldje el egy kép szkennelése során
m ára, akkor az eszköznek cím et, egyedi azo n o sító szám ot (1 -1 2 7 ) ad, m ajd ezt a k a p o tt b itso ro zato t. A 3-as k eret ad ato k küldése valam ilyen eszköz, m ondjuk, egy
cím et és m ás p a ra m é te re k e t tö lt a B/K eszközben lévő konfigurációs reg iszte rek ­ n y o m tató szám ára.
be. Ilyen m ódon az új eszközök m e n et közben c sa tla k o z ta th ató k a szám ítógéphez A z U SB négyféle k e re te t k ü lö n b ö ztet meg: vezérlési, izoszinkron, töm eges adat
anélkül, hogy a felh aszn áló n ak b á rm it is k onfigurálnia k ellene, vagy új ISA vagy és m egszakítási k e re te k e t. A vezérlési k e re t a / eszközök ko n fig u rálására szolgál,
PC I k árty ák at kellen e a szám ítógépbe helyeznie. A m ég ko n fig u rálatlan eszköz cí­ p aran c so k k ü ld ésére vagy az eszközök á llap o tán ak lek érd ezésére. A z izoszinkron
m e k ezd etb en 0. te h á t m egcím ezhető. A k áb elezés m egkönnyítése é rd e k é b e n sok k e re te k e t a valós idejű eszközök használják, p éld áu l a m ikrofonok, hangszórók és
U SB -eszköz b e é p íte tt cso m ó p o n to t tartalm az, am elybe további U S B -eszközök telefo n o k , am elyeknek p o n to san m eg h atáro zo tt id ő n k én t feltétlen ü l a d ato k a t kell
dughatok. P éldául egy U S B -m o n ito r re n d elk ez h et k ét csatlakozóval a bal, illetve k ü ld en iü k vagy fogadniuk, b ár a jelek n ek jól k iszám ítható k ésleltetése van. H iba
a jo b b oldali hangszóró szám ára. e se té n az a d a to k a t nem kell m egism ételni. A töm eges a d a t k eretek nagy töm egű
L ogikailag az U S B -re n d sze r úgy te k in th e tő , m int b itcsato rn ák halm aza a köz­ a d a t átv itelére szolgálnak a szám ítógéptől az eszközhöz, például a n y o m tató k ­
po n ti csom óponttó l az eszközökig. M in d en eszköz legfeljebb 16 alcsa to rn á ra oszt­ hoz, vagy fordítva, de valós idejű tov áb b ításra nincs szükség. V égül, a m egszakí­
hatja fel a csato rn á já t a k ü lö n b ö ző jellegű a d a to k szám ára (p éld áu l hang, videó). tási k e re te k re azért van szükség, m ert az U SB nem tám o g atja a m egszakításokat.
M inden egyes csato rn á n vagy alcsato riián az a d a to k a k ö zp o n ti c so m ó p o n tb ó l az P éld á u l ahelyett, hogy a billentyűzet m inden billentyű lenyom ásakor m egszakítást
eszköz felé vagy fo rd íto tt irányban áram o ln ak . K ét B /K eszköz k ö zö tt nincs a d a t­ o kozna, az o p erációs ren d szer le tu d ja kérdezni 50 m s-ként, és össze tu d ja gyűjte­
forgalom . ni a b illentyűlenyom ásokat.
P on tosan 1,00 ± 0,05 m s-k én t a k ö zp o n ti cso m ó p o n t egy új ü zenetváltási k e re ­ E gy k e ret egy vagy több csom agot tartalm az, valószínűleg m indkét irányúból
te t (fram e) küld szét, am elynek segítségével m in d en B/K eszközt szinkronizál. Egy n éhán y at. N égy külö n b ö ző csom ag van: to k én , ad at, kézfogás és speciális. A to k én
üzenetváltási k e re t m indig egy b itc sa to rn áh o z kapcsolódik, és csom agokból áll, csom agok a központi cso m ó p o n t felől érk ezn ek az eszközökhöz, és a felad atu k a
am elyekből az elsőt m in d en e setb en a k ö zp o n ti cso m ó p o n t küldi az eszköznek. A re n d sz e r irányítása. A 3.59. áb rán lá th a tó s o f , in és o u t ilyen tokén csom agok. A
k ere tb e n levő tö b b i csom ag iránya leh et ugyanilyen vagy az eszköztől a k özponti k e re t k ezd ete csom ag ( s o f ) az első m inden keretb en ; ez jelzi a k e re t k ezd etét. H a
cso m ó p o n t felé h alad ó . Egy négy k e re tb ő l álló so ro zat lá th a tó a 3.59. áb rán . nincs te e n d ő , a so r lehet az egyetlen csom ag a k eretb en . A z i n to k én csom ag egy
lek érd ezés, az eszköztől kér bizonyos ad ato k a t. Az i n csom agban lévő m ezők azo ­
Idő (ms) nosítják a b italcsato rn át, így az eszköz tu d ja, m ilyen a d a to k a t kell visszaküldenie
(h a tö b b adatfolyam a is van). A z o u t to k én csom ag azt jelzi, hogy u tá n a ad ato k
2 követk ezn ek az eszköz szám ára. A negyedik to k én csom agtípus a s e t u p (nem sze­
(üres) rep el az áb rán ), és az eszközök konfigurálására használják.
0. keret 1. keret keret 3. keret A to k én csom agon kívül m ég h áro m fajta csom ag van. E zek a l^a t a (legfeljebb
í 64 b ájt ad a t k üldésére haszn álh ató tetszőleges irányban), a kézfogás és a sp eciá­
:\
/ ' Csomagok \ / ' Csomagok \
/ lis csom ag. A d a t a csom ag fo rm átu m a szintén a 3.59. áb rá n láth ató . Egy 8 bites
,'a központi vezérlőtől'. / ,'a központi vezérlötölN
/
\ / szinkronizáciős m ezőből, egy 8 bites csom agtípusból ( p i d ) és a hasznos adatból,
SOF SOF IN DATA ACK SOF SOF OUT DATA ACK v alam in t egy 16 bites CRC (Cyciic Redundaiicy Check, ciklikus redundanciakódI
kódból áll, a hibás átvitel d e tek tálására. H á ro m fajta kézfogás csom ag van: az a < k
N
/ ''s '' Az eszköztől \ (ack n o w led gem ent, a m egelőző ad atcsom ag re n d b en m eg érk ezett), a n a k ( a / á t­
vitel so rán C R C hiba je le n tk e z e tt) és a s t a i t . (kérem várjon - m ost épp en el \ a ­
Adatcsomag
az eszköztől
SYN PID PAYLOAD CRC SYN PID PAYLOAD CRC gyok foglalva).
M ost vessünk ism ét egy p illan tást a 3.59. ábrái a. M inden 1,00 m iiiiszekundum ­
PAYLOAD = Hasznos adat
ban egy k e re te t kell k ü ldenie a központi cso m ó p o n tn ak m eg ak k o r is, ha nincs
sem m ilyen teen d ő . A 0. és 2. k eretek csak egy s o f csom agot tartalm azn ak , am el)
3.59. ábra. Az USB központi csomópontja minden 1,00 miiiiszekundumban új üzenetváltási jelzi, hogy nincs teen d ő . A z I. k e re t egy lekérdezés, am ely te h á t egy sor-fal és egy
keretet küld i N - n e l kezdődik, am elyeket a szám ítógép küld az eszközhöz, ezt követi egy d a i a
csom ag az eszköztől a szám ítógépnek. Az a c k csom ag jelzi az eszköznek, hogy a
240 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.7. K A PC SO LA T A P ER IF ÉR IÁ K K A L , IN T ER FÉS Z E K 241

csom ag ren d b en m eg érk ezett a szám ítógéphez. H iba e setén a szám ító g ép egy n a k a d a to k a t tu d fogadni egy term in álró l. Egy U A R T k ü lönböző sebességeket e n ­
csom agot külden e vissza az eszközhöz, ilyenkor a tö m eg es ad a tk ü ld ésh ez ta r to ­ ged m eg 50 bps-től 19200 bps-ig; k ü lö nböző k arakterszélességekkel tu d dolgozni
zó csom agot újraküldi az eszköz (d e izoszinkron k e re t e setén n em ). A 3-as k e ret 5 -8 bit közö tt; egy, m ásfél és k é t stop bittel; páros, p á ra tla n vagy kikapcsolt p a ­
ugyanolyan szerk ezetű , m int az 1-es, kivéve, hogy m o st az a d ato k ellen k ező irány­ ritást tu d figyelni, m in d ezt p ro g ram által vezérelt m ód o n . A z USART (Universal
ban, a szám ítógép tő l az eszköz felé áram lan ak . Synchronous A synchronous R eceiver/li'ansniitter, univerzális szinkron, aszink­
M iután az U SB -szabványt 1998-ban v ég leg esítették , az U SB terv ező in ek to v áb ­ ron adó/vevő) lapkák egyrészt k ü lönböző p ro to k o llo k szerinti szinkron átvitelt
bi felad atu k m á r nem volt, így az U SB egy új, nagy sebességű, U SB 2.0-nak n ev e­ tu d n a k kezelni, m ásrészt az U A R T lapkák m inden funkcióját m eg tu d ják valósíta­
zett verzióján kezd tek el dolgozni. A szabvány haso n lít a régebbi 1.1-es verzióhoz, ni. M ivel az U A R T lap k ák at a 2. fejezetb en m á r m egism ertük, m ost a párhuzam os
és visszafelé kom patibilis is vele, azo n b an egy új h a rm ad ik sebességet (480 M bps) in terfé sz lap kát, a B /K lapkák egyik képviselőjét tanulm ányozzuk.
vezet be a két m eglévő m ellé. V annak m ég további kisebb kü lö n b ség ek is, m int
például az interfész a k özponti c so m ó p o n t és a vezérlő kö zö tt. A z U SB 1.1-ben
kétféle interfész volt. A z elsőt, az U H C I-t (U niversal H ő st C o n tro lle r In te rfac e ), PIO (Parallel Input/Output) lapkák
az Intel tervezte és a te rh e k zö m ét a szoftverkészítőkre (értsd: M icrosoft) h á ríto t­
ta. A m ásikat, az O H C I-t (O p en H ő st C o n tro lle r In te rfa c e ) a M icrosoft tervezte, E gy tipikus PIO (Parallel Input/Output, párhuzam os B/KJ lapka az Intel 8255A
és a te rh e k zöm ét a h ard v erfejlesztő k re (értsd: az Intel) h á ríto tta . A z U SB 2.0-nál típusú, am ely a 3.60. áb rá n láth ató . E lap k án ak 24 B/K v o n ala van, am ellyel b á r­
m egegyeztek egyetlen új in terfé szb en , am elynek a neve E H C I (E n h a n c e d H őst m ilyen TTL kom patibilis eszközhöz tu d kapcsolódni, p éld áu l billentyűzethez,
C o n tro lle r In terface). kapcsolókhoz, fényforrásokhoz vagy n y o m tatókhoz. D ió h éjb an , a központi egy­
M ost, hogy az U SB 480 M bps sebességgel m űködik, nyilvánvalóan v ersen y társa ségben fu tó p ro g ram 0-t vagy 1-et tu d írni tetszőleges v o n alára, vagy be tu d ja ol­
az IH E E 1394 szabványú sínnek, am elyet k ö zism erten F ireW irc -n ek n eveznek, és vasni bárm ely vonal állap o tát; ez nagyfokú rugalm asságot biztosít. Egy kis C P U -
am i 400 M bps sebességgel m űködik. B ár m ajd n em m in d en új P en tiu m ren d sze r az alapú re n d sz e r P lO -v al gyakran képes h ely ettesíten i egy teljes n y o m tato tt á ra m ­
U SB 2.0-val k ap h ató , m égsem valószínű, hogy az IE E E 1394 eltű n ik , m e rt a szó­ k öri lap o t tele SSI és M SI lapkákkal, külö n ö sen b eágyazott ren d szerek b en .
rak o ztató elek tro n ik a i ip a r tám o g atja. A kézi k a m erák at. D V D -lejátszó k at és m ás
hasonló eszközök et a b e lá th a tó jö v ő b en ezu tá n is ellátják m ajd L394-cs in te rfé sz ­
szel, mivel az eszközök gyártói n em ak arják vállalni egy olyan szabványra tö rté n ő Port A
á tté ré s költségeit, am ely alig valam ivel jo b b , m in t am ijü k jelen leg van. A vásárlók
szintén nem szere tn ek á tté rn i m ásik szabványra.
Port B

Port C
3.7. Kapcsolat a perifériákkal, interfészek D0-D7 -

Egy tipikus kis vagy közep es sz ám ító g ép ren d szer C P U lap k á(k )b ó l, m e m ó ria la p ­ 3.60. ábra. k 8255A PIO lapka
kákból és n éhány B/K v ezérlőből áll, am it m ind egy sín k ö t össze. A m em ó riák at, a
k özponti egységeket és a sín ek et m á r m eg ism ertü k bizonyos részletességgel. Itt az B ár a k ö zp o n ti egység szám os m ó don tu d ja konfigurálni a 8255A lapkát a rajta
ideje, hogy m egvizsgáljuk a k irak ó s já té k u to lsó d a ra b já t, a B /K lap k ák at. A szám í­ lévő á llap o treg iszter feltöltésével, a következőkben n éh án y egyszerűbb m űködési
tógép ezeken a lap k ák o n keresztü l ta rt k ap cso lato t a külvilággal. m ó d ra fo g u nk szorítkozni. A legegyszerűbb m ó d ja a 8255A h aszn álatán ak , hogy
h á ro m teljesen független 8bites p o rtra osztjuk, A -ra, B -re és C -re. M indegyik p o rt
egy 8b ites táro ló re g iszterrel van kap cso latb an . A hhoz, hogy a p o rt kim enő v o n a­
3.7.1. A B/K lapkák lait b eállíth assuk, a kö zp o n ti egység b e írja a m egfelelő 8b ites szám ot a m egfelelő
reg iszterb e, a 8 b ites szám m egjelenik a k im en ő vonalakon, és o tt m eg is m arad
Szám os B/K lapka k ap h ató , és á llan d ó an egyre ú jab b ak a t h o zn ak forgalom ba. egészen a regiszter újraírásáig. A m ik o r a p o rto t b e m e n e tk é n t használjuk, ak k o r a
A leggyakoribbak az UART, az U SA R X a k ép ern y ő m eg h ajtó, a diszkvezérlő és a k ö zp o n ti egység csupán a m egfelelő tá ro ló t olvassa ki.
PIO lapkák. A z UART (U n iv ersal A sy nchronous R eceiver/T ransm itter, u n iv erz á­ M ás m ű k ödési m ódjai kézfogást biztosítanak a külső eszközökkel. Például, ha
lis a szin k ro n adó/vevő) egy olyan lapka, am ely egy b á jto t tu d olvasni az a d a tsín ­ olyan eszköz szám ára küld a d ato k a t, am ely azo k at nem m indig tu d ja fogadni, a
ről, és azt b ite n k é n t to v áb b ítja egy so ro s vonalon egy term in ál fele, illetve soros 8255A m egjeleníti az a d a to k a t az egyik p o rt k im en etén , m ajd im pulzusra vár az
242 3. A d i g i t á l i s l o g i k a SZ IN T JE 3.7. K A P C SO L A T A PER IFÉR IÁ K K A L , IN T ER F ÉS Z E K 243

eszköztől, am ely így je lez vissza, hogy fo g ad ta az a d a to t és szeretn e m ég to v áb b ia­ hová helyezzük el a h áro m eszközt. A z egyik lehetséges m egoldás a 3.61. áb rán
kat. A 8255A -ba be van építve az a logikai áram k ö r, am ely ah h o z szükséges, hogy láth ató . A z E P R O M a 0-tól 2 K B-ig te rje d ő c ím íerü lctet foglalja el, a R A M a
ilyen im pulzusok at táro ln i tu d jo n , és azo k at a k ö zp o n ti egység szám ára h o z z á fé r­ 32 K B -tól 34 K B-ig te rje d ő te rü le te t, a P IO p ed ig a m em ó ria legfelső 4 b ájtját
h ető v é is tu d ja ten n i. 65 532-től 65 535-ig. A p ro g ram o zó szem pontjából nincs különbség, hogy m ely
A S255A fu nkcionális diag ram jáb ó l láth ató , hogy a h áro m p o rth o z kap csoló d ó m em ó riacím ek et használjuk, a csatlak o zó felü letre azonban m ár hatással van. H a
24 érin tk ező n kívül van m ég további 8kivezetés, am elyek k ö zvetlenül az ad a tsín re a P IO m egcím zésére a m ásik m ó d szert v álaszto ttu k volna, a külön B/K c ím terü le­
csatlakoznak, v alam in t egy lapkaválaszló, egy írás, egy olvasás, k ét cím és egy a la p ­ te t, a k k o r az nem igényelt volna cím tarto m án y t a m em ó riáb an (viszont négy cím et
állap o t kivezetése is. A k é t cím vezetékkel le h et kiválasztani a négy b első reg iszter igényelne a B /K cím tartom ányból).
közül az egyiket, az A , B, C p o rto k n a k és az állap o tre g isz te rn e k m egfelelőt. A z A 3.61. áb rán láth ató cím kiosztás m ellett az E P R O M -o t kell kiválasztanunk m in­
u tóbbi bitjei h atáro z z á k m eg, hogy m ely p o rto k a t h asználjuk b e m e n e tk é n t, illetve d en olyan m em óriacím esetén , am ik o r a 16 bites m em ó riacím 0000 Oxxx xxxx xxxx
k im en etk én t, és m ég további funk ció k at. Á ltalá b a n a k é t cím vezeték a cím sín k ét (b in árisan ) form ájú. M ás szóval m inden olyan cím , am elynek m ind az 5 felső bitje
legalsó vezeték éh ez van kapcsolva. 0, a m e m ó ria alsó 2 KB te rü le té re , te h á t az E P R O M te rü le té re esik. A z E P R O M
lap k a kiválasztó v ezeték ét egy 5 bites összehasonlító ára m k ö r k im en etére kell k ö t­
ni, az egyik b e m e n e té t pedig a 00000-ra.
3.7.2. Címdekódolás U gyanennek az eredm énynek az elérésére egy jo b b m egoldás, h a egy 5 b em en e­
tű OR k ap u t használunk, am elynek az öt b em en e tét az A l l , ..., A15 cím vezetékekre
E ddig m egleh ető sen hom ályos ism eretein k voltak arról, hogyan állítódik b e a lap ­ kapcsoljuk. A kkor és csak akkor lesz a kim enet 0, ha m ind az öt b em en et 0, ezzel be­
kakiválasztás (chip select) a tárgyalt m em ó ria és a B/K lap k ák esetéb en . Itt az ideje, állítja a cs jelet (a beállítását az alacsony feszültségszint jelzi). Sajnos, a szabványos
hogy részletesebben is megvizsgáljuk, hogyan is tö rté n ik ez. Tekintsünk egy egyszerű S S I-áram körök között nincs egyetlen ö tb em en etű or kapu sem . A legközelebbi, am i
16 bites szám ítógépet, am ely egy k ö zp o n ti egységből, a p ro g ram szám ára egy 2 K B- szám ításba jö h et, egy nyolcbem enetű nor kapu. H áro m b e m en e tét a földre kötve, a
os E P R O M -b ó l, az a d ato k szám ára egy 2 K B -os R A M -ból és egy P IO lapkából áll. k im en etét pedig invertálva m egkaphatjuk a helyes jelet, ezt m u tatja be a 3.62. (a) áb ­
E z a kis ren d szer leh e t p éldául egy olcsó já té k vagy egy háztartási gép ag>'ának a ra. A z S S I-áram körök olyan olcsók, hogy - bizonyos kivételes esetektől eltekintve
p ro to típ u sa. Sorozatgyártásnál az E P R O M -o t helyettesíth eti m ajd egy R O M . - az sem szám ít, h a egyet kevésbé hatékonyan használnak fel. M egegyezés szerint az
A P IO lapka k iválasztása a k ö v etk ező k ét m ó d szer valam elyikével tö rté n h e t: áram köri diagram okon n em tü n tetjü k fel a nem használt áram köri kivezetéseket.
vagy m in t valódi B/K eszköz, vagy m in t a m em ó ria egy te rü lete . H a valódi B/K U g j'an ezt az elvet h aszn álh atju k a R A M esetéb en is. A zo n b an a R A M -nak a
eszközként szere tn én k h asználni, egy k ü lö n sínvezetékre van szükség, am ellyel je ­ 1000 Oxxx xxxx xxxx alakú b in áris cím ekre kell válaszolnia, ezért egy további in-
lezni tudjuk, hogy egy B /K eszközt sz e re tn é n k használni, n em p ed ig a m em ó riát. v e rte rre is szükség van, ahogy az az áb rán lá th ató . A P IO cím dekódolás kissé
H a a m ásik m ó d szert használjuk, a m e m ó riá ra lek ép ezett B/K (m em o ry -m ap p ed bony o lu ltab b, mivel a P lO -t akkor kell választani, h a a cím 1111 1111 1111 JIxx
I/O ) e setet, a m e m ó ria 4 b ájtjá t ki kell jelö ln ü n k , h á rm a t a h áro m p o rt és egyet a alakú. Egy lehetséges áram k ö ri m egoldás lá th ató az áb rán , am ely csak a k k o r ál­
vezérlő reg iszter szám ára. A hely kiválasztása m ajd n em tetszőleges. Mi m o st a m e ­ lítja be a cs jelet, am ikor a m egfelelő cím m egjelenik a cím sínen. K ét nyolcbem e­
m ó riára lek ép e ze tt B /K e se té t fogjuk v álasztani, m e rt segítségével b e m u ta th a tó a n e tű NEM-És k a p u t használ, am elyek egy or k ap u b e m e n e té h e z v an n ak kapcsolva.
B/K interfész k ialak ításán ak n éh án y érd e k e s k érd ése. A hh o z, hogy a 3.62. (a) áb rá n láth ató cím dekódoló logikai á ra m k ö rt SSI lap k ák ­
A z E P R O M 2 K B c ím terü le te t igényel, a R A M szin tén 2 K B -t, a P IO ped ig 4 ból kialakíthassuk, m indössze 6 lap k ára van szükségünk, 4 nyolcbem enetű nem-és
bájto t. M ivel p éld á n k b a n a teljes cím tarto m án y 64 KB, e z é rt ki kell választan u n k , lap k ára , egy vagy k a p u ra és egy olyan lap k ára, am elyben h áro m in v erter van.
H a a zo n b an a szám ítógép valójában csak a k ö zp o n ti egységből, két m e m ó ria ­
EPROM a 0 címnél RAM a 8000H címnél PIO az FFFCH címnél lap k áb ó l és a P lO -b ó l áll, a cím dekódolás fe la d a ta egy trükkel nagym érték b en
eg yszerűsíthető. A trü k k azon alapul, hogy csak és kizárólag az E P R O M cím einek
e se téb e n teljesül az, hogy a legfelső cím vezeték, az a 15 0. E z é rt a cs lábat egysze­
rű e n ö sszek ö th etjü k az A lS-tel, am in t az a 3.62. (b) áb rán látható.
E z en a p o n to n a R A M helyéül v álaszto tt 8000H cím m á r kevésbé tű n ik te t­
szőlegesnek. A R A M kiválasztása tö rté n h e t csupán az alapján, hogy csak az
lOxx xxxx xxxx xxxx alakú érvényes cím ek leh etn ek a R A M -ban, e z é rt 2 bites d e ­
0 4K 8K 12K 16K 20K 24K 28K 32K 36K 40K 44K 48K 52K 56K 60K 64K k ó d o lás elegend ő. H aso n ló an , m inden cím , am ely 11-gyel kezdődik, a P IO cím e
lesz. A z egész d ek ó d o ló logikai á ra m k ö r m ost csak k ét k é tb e m e n e tű n e m - é s k a­
3.61. ábra. kz EPROM, a RAM és a PIO elhelyezkedése a 64 KB címtartományban p u b ó l és egy inverterből áll. M ivel az in v erter k ialak íth ató egy n e m - é s kapuból, a
244 3. A D IG IT Á LIS LO G IK A SZ IN T JE
3.8. ö s s z e f o g l a l á s 245

v asu n k a 0001 000000000000, 0001 100000000000 vagy a 0010000000000000


cím ekről, ugyanazt az ered m én y t kapjuk. V alójában m in d en olyan cím esetén ,
am ely a cím tarto m án y alsó felére m u tat, az E P R O M lesz kiválasztva. M ivel az
E P R O M és R A M cím ein kívül m ás cím ek et n em fogunk használni, ez n em káros,
h a azo n b an egy olyan szám ítógépet tervezünk, am elyet bővíteni szere tn é n k a jö ­
v ő b en (ez egy já té k e se té n n em nagyon valószínű), a részleges cím d ek ó d o lást el
kell k erü ln i, m ert túlságosan nagy c ím te rü le te t köt le.
A m ásik lehetséges m egoldás a cím dekódolásra, ha olyan dekódoló áram k ö rt hasz­
nálunk, m in t am i a 3.13. ábrán látható. A három b em en ő lábát a felső három cím ve­
zeték re kötve, nyolc kim enetet k apunk aszerint, hogy a cím az első 8KB, a m ásodik
8K B stb. te rü letre esik. Egy olyan szám ítógép szám ára, am ely 8db 8KB R A M -ot
használ, egy ilyen dekódoló lapka a teljes cím dekódolást megvalósítja. Egy olyan szá­
m ítógép szám ára, am elyben 8db 2 KB m em ória van, egyetlen ilyen d ek ó d er szintén
elegendő, feltéve hogy a lapkák m ind a m em óriatartom ány különböző 8KB m éretű
cím terü letén vannak. (E m lékezzünk vissza arra a korábbi m egjegyzésünkre, hogy a
m em ó riák és a B/K lapkák elhelyezkedése a cím tartom ányban lényeges.)

3.8. Összefoglalás
(a)

A számítógépek integrált áramköri lapkákból épülnek fel, amelyek kicsiny kap­


csolóelemeket, úgynevezett kapukat tartalmaznak. A leggyakoribb kapuk az es,
Címsín VAGY, NEM-És, NEM-vAGY és NEM. A megfelelő kapuk közvetlen kombinálásával egy­
szerű áramkörök építhetők.
B o n y o lu ltabb á ra m k ö rö k a m ultiplexerek, d em u ltiplexerek, kódolók, dekó-
Ai 5 dolók, shift reg iszterek és az aritm etikai-logikai egységek (A L U ). Tetszőleges
B oole-függvény m egvalósítható p ro g ram o zh ató logikai m átrixszal (P L A ). H a sok
B oole-függvenyre van szükség, a P L A -áram k ö rö k felhasználása m ég kifizetődőbb.
A B o o le -a ritm etik a törvényszerűségeinek segítségével tran szfo rm álh atju k á ra m ­
k ö re in k e t egyik fo rm áró l a m ásikra. E zen a m ó d o n sok esetb en gazdaságosabb
ára m k ö rö k e t k ap h atu n k .
A szám ító g épes aritm etik a eszközei az ö sszeadó áram k ö rö k . Egy 1 bites teljes
ö sszeadó k ialak íth ató k ét félösszeadó áram k ö rb ő l. Egy tö b b bites összeadó fel­
ép íth e tő 1 b ites teljes összeadókból úgy, hogy m indegyik összeadó átvitelkim enete
ho zzákap cso lódik a tő le b alra álló szom szédja átv itelb em en etéh ez.
A (statik u s) m em ó riák fő építő elem ei a táro ló k és a b illen ő k ö rö k (flip-flopok).
(b) M indegyikük egyetlen b itin fo rm áció t tu d tárolni. K o m b in álh ató k egyrészt lin e­
árisan , így 8 bites táro ló k at, illetve flip-flopokat k ap h atu n k , m ásrészt logaritm i-
3.62. ábra. (a) Teljes dmdekódolás. (b) Részleges dmdekódolás kusan, így p ed ig teljes, szószervezésű m em ó riák at k ap h atu n k . Sokféle m em ó riát
ism erünk: R A M , R O M , P R O M , E P R O M , E E P R O M és a flash m em ória. A sta­
k é t b em e n ő láb án a k összekötésével, egy egyszerű 4 nem -és k a p u t ta rta lm a z ó lap k a tikus R A M -o k at nem kell frissíteni; ta rta lm u k a t m egőrzik egészen addig, am íg
bőven elegendő. táp feszü ltség a latt vannak. A dinam ikus R A M -okat azo n b an állan d ó an frissíteni
A 3.62. (b) áb rá n m eg v aló síto tt cím d ek ó d o lást részleges cím d ek ó d o lásn ak n e ­ kell, hogy k o m p en záln i tu d ju k a lap k án találh ató kis k o n d en záto ro k b ó l a töltés el­
vezzük, mivel n em a teljes c ím et h asználja. M egvan az a tu lajd o n ság a, hogy h a ol- szivárgását.
246 3. A D IG IT Á LIS LO G IK A SZ IN T JE 3.9. FELA D ATO K 247

A szám ítógépek a lk o tó e le m e it sínek kötik össze. Egy tipikus C P U sok kiv ezeté­ 7. M ost kösse jól fel a n ad rág ját. Egy h árom váitozós m u ltiplexer lapka (lásd
se, de azért nem m indegyik, vezérel közvetlenül egy sínvezetcket. A sín vezetékei 3.12. á b ra) kép es egy tetszőleges négyváltozós B oolc-függvenyt kiszám ítani,
felo szth ató k cím -, ad at- és vezérlő v o n alak ra. A szinkron sín ek et egy fó ó rajel-g e­ írja le hogyan, v alam int p é ld ak é n t rajzolja le a n n ak a függvénynek a logikai
n e rá to r időzíti. A z aszinkron sínek teljes kézfogást használnak, hogy szinkronizál­ d iagram ját, am ely 0, ha az igazságtábla so ráb an lévő é rte k angol szám névvel
já k a szolgát a m esterh e z. m egnevezve páros szám ú b etű b ő l áll, és 1, ha p áratlan b ó l (pl. 0000 = zero =
A P entium 4 a m o d ern k ö zp o n ti egységekre p éld a. A z ilyet h aszn áló m o d ern négy b e tű [páros] ^ 0; 0111 = seven = ö t b e tű [p árad an ] ^ 1; 1101 = thir-
ren d szerek n ek egy m em ó riasín je, egy P C I sínje, egy ISA sínje és egy U SB sínje te c n = nyolc b e tű [páros] ^ 0). Tipp: h a a negyedik b em en ő változót D -n ek
van. A PC I sín 64 h itet tu d átvinni 66M I íz frekvenciával, am ely e leg e n d ő en gyors nevezzük, a nyolc in p u t vonalat hozzák ap cso lh atju k D e setén a esetén D a
szinte m inden p erifé ria szám ára, azo n b an n em elég gyors a m e m ó ria szám ára. f()ld lábhoz.
K apcsolók, fényforrások, n y o m tató k és sokféle m ás B/K eszköz k ap cso lh ató ösz- 8. R ajzolja le egy 2 bites k ó d o ló ára m k ö r logikai diagram ját, am elynek négy b e ­
sze a szám ítógépekkel olyan p árh u z a m o s B/K lap k ák segítségével, m in t am ilyen a m e n ő vonala van, am elyből p o n to san egy m agas bárm ely id ő p illan atb an , és
8255A. E zek a lap k ák k o n fig u rálh a tó k úgy, hogy vagy a B /K cím terü let, vagy a m e ­ k é t k im en ő vezetéke, am elynek a 2bites bináris é rté k e m egm ondja, melyik b e ­
m ó ria cím tarto m án y részei legyenek, a szü k ség letek n ek m egfelelően. C ím zésük m e n ő vonal a m agas.
pedig leh et teljesen vagy részlegesen d ek ó d o lt, az alkalm azástól függően. 9. R ajzolja le egy 2 bites d em u ltip lex er logikai diagram ját, azt az áram k ö rt,
am elynek egyetlen in p u t vonala a négy k im en ő vonal egyikére irányítható a
k é t v ez érlő b em en et állap o tátó l függően.
10. R ajzolja ú jra a 3.15. áb rán szereplő P L A (P ro g ram m ab le L ogic A rray, p ro g ­
3.9. Feladatok ra m o z h a tó logikai tö m b ) áram k ö rt elég részletesen ahhoz, hog)' b em u ta th a ssa
hogy a 3.3. áb rán szerep lő többségi függvény hogyan való síth ató m eg a fel­
1. Egy m atem atik u s b e h a jto tt egyszer egy au tó s é tte re m b e , és ezt m ondta: használásával. K ülönösen ügyeljen a rra, hogy a m egvalósított áram k ö ri k a p ­
„K érek egy h a m b u rg ert vagy egy h o t d o g o t és sült k ru m p lit.” Sajnos, a szakács cso lato k at b em u tassa m indkét m átrix esetében.
m eg b u k o tt a h a to d ik osztályban, és nem tu d ta (vagy n em tö rő d ö tt azzal), hogy 11. M it valósít m eg az áb rán lá th ató ára m k ö r?
vajon az és p reced en c iá ja nagyobb-e, m int a vagy-é. E d d ig m eg volt győződve
arról, hogy egyik in te rp re tá c ió ugyanolyan jó , m in t a m ásik. A k ö v etk ez ő e se­
tek közül m elyek a helyes in terp re tá ció i a re n d elé sn e k ? (A z angol v a ^ je le n ­ > -i
tése kizáró-m gy.)
a) C sak egy h am b u rg er.
> > -
b) C sak egy h o t dog.
c) C sak sült krum pli.
d) Egy h ot dog és sült krum pli.
e) Egy h a m b u rg e r és sült krum pli.
f) Egy h am b u rg er és egy h o t dog.
g) M ind a három . 12. Egy közönséges M SI lapka négybites összeadó. N égy ilyen lapkát összek ap ­
h) Egyik sem - a m ate m a tik u s éh e sen té rt h aza, ha m á r ilyen nagyokos volt. csolva egy 16 bites összeadót k ap h atu n k . Ö n szerin t hány kivezetésének kell
2. Egy m isszionárius eltév ed D él-K alifo rn iáb an , és m egáll egy útelág azásn ál. lennie egy 4 bites összeadó lap k án ak ? M iért?
Tudja, hogy k ét m o to ro s b a n d a u ralja a te rü le te t; az egyik m indig m eg m o n d ja 13. Egy n b ites ö sszeadó m e g a lk o th ató n d a ra b teljes ö sszead ó sorba k ap cso lásá­
az igazat, a m ásik pedig m indig hazudik. Tudni szeretn é, hogy m elyik ú t vezet val úgy, hogy az i. helyen a C b e m e n ő átvitel a z i - 1. hely kim en ő átvitele. A
D isneylandbe. M ilyen k é rd é st tegyen fel? 0. szin ten a C„ b em en ő átvitel érté k e 0. H a m in d en helynek T ns kell az e re d ­
3. Igazságtáblázat segítségével bizonyítsa be, hogy A" = { X És >0 v a g y ( X ás n e m Y). m ény és az átvitel kiszám ításához, az /. szint átvitele nem érvényes iT ns-ig az
4. Négy egyváltozós B oole-függvény létezik és 16 kétváltozós. H án y h áro m v álto - ö sszeadás k ezd etétő l szám ítva. Nagy n-rc az átvitel végigvezetése az n. szintig
zós Boole-függvény létezik? H án y n változós létezik? elfo g ad h atatlan u l nagy lehet. Tervezzen olyan összeadót, am ely gyorsabban
5. M utassa be, hogyan leh e t egy És függvényt m egvalósítani k ét n e m - é s kapuval. m űködik. Tipp: m inden C k ifejezh ető az o p cran d u sain ak , j és B ^ b itjei­
6. A iiárom változós m u ltip lex er lapka lelhasználásával (lásd 3.12. á b ra) készítsen vel, v alam int a C , átvitellel. E n n e k a reláció n ak a felhasználásával kifejezhe­
egy függvényt, am elynek a k im e n ete az in p u t p a ritá sa , azaz a k im en et ak k o r és tő a C a 0, ..., / - 1 szintek inp u tjain ak függvényeként, azaz m inden átvitelbit
csak ak k o r 1, ha p áro s szám ú in p u t 1. egyszerre g en erálh ató .
3.9. FELA D A T O K 249
248 3. A D IG IT Á LIS LO G IK A SZ IN T JE

14. H a a 3.19. áb rá n lá th a tó m in d en k a p u n a k 1 ns k é sleltetése van, és m in d en m ás 26. A 3.38. (b) áb ra szerint T^^^ legalább 3 ns. El tud n a-e képzelni olyan lapkát,
k ésleltetés figyelm en kívül hagyható, mi az a leg k o ráb b i id ő p o n t, am ik o r a d i­ am elynél ez az érte k negatív? E b b en az esetben, egy központi egység b eállíth at­
ag ram alap ján m ű k ö d ő ára m k ö r Ö sszeg k im e n e te biztosan érvényes lesz? ja-e az MREM jelet azelőtt, hogy a cím stabil lenne? M iért igen, vagy m iért nem ?
15. A 3.20. ábrán lá th a tó aritm etik ai-lo g ik ai egység k ép es 8 b ites 2-es k om ple- 27. Tegyük fel, hogy a 3.42. á b ra szerinti blokkátvitcl a 3.38. áb rán lá th a tó sínen
m ensű összead ásra. Vajon k ép es-e 2-es k o m p lem en sű kivonásra is? H a igen, tö rtén ik . M ennyivel nagyobb sávszélesség é rh e tő el blokkátvitellel az egyedi
m agyarázza el, hogyan. H a nem , módosít.sa úgy, hogy k ép es legyen a kivonás átv itelh ez képest hosszú blokkok esetén ? M ost tegyük fel, hogy az adatsín 32
elvégzésére is. b it széles 8b it helyett. V álaszoljon ism ét a kérd ésre.
16. Egy 16 bites A L U 16 db 1 bites A L U -ból épül fel, am elyek m indegyike 10 ns 28. Jelö lje a cím vezetékek átviteli id ejét a 3.39. ábrán T^^ és T^,, az m rIT o jel átvi­
a latt végez el egy összeadást. H a ezenkívül m ég 1 ns k ésleltetési idővel is kell teli id ejét és 'SY itw ább. írja le az összes, az átviteli időkre vo ­
szám olnunk, am íg egyik A L U -tó l a m ásikig te rje d a jel, m ennyi id ő b e telik, n a tk o zó egyenlőtlenséget, am ely teljes kézfogás e setén áll fenn.
am íg a 16 bites e red m én y a k im e n e te n m egjelenik? 29. A legtöbb 32 bites sín m egenged 16 bites olvasást és írást is. Van-e bizony­
17. S ok ese tb e n hasznos, h a egy 8b ites aritm etik ai-lo g ik ai egység, m in t am ilyen a talan ság a cím vezetékek értelm ezéséb en , hogy hová kell az ad a to k a t írni?
3.20. áb rán láth a tó , k ép e s a -1 é rté k elő állítására a k im e n e tén . A d jo n m eg két M agyarázza m eg.
k ü lö n b ö ző m ó d o t is, ahogyan ez m e g te h e tő . M indegyik m eg o ld ás e setén adja 30. Sok k ö zp o n ti egységnek speciális sínciklusa van a m egszakításkcrések vissza­
m eg a 6vezérlőjel é rté k é t is. igazolására. M iért?
18. M i a nyugalm i állap o ta az S és R b e m e n e te k n e k egy SR tá ro ló á ra m k ö r e se té ­ 31. Egy 64 b ites szám ítógép 200 M H z sínfrekvenciáva! 4 órajelciklus alatt olvas be
ben, am ely két nem-es k ap u b ó l ép ü l fel? egy 64 bites szót a m em óriából. A sín m ek k o ra sávszélességét ha.sználja legfel­
19. A 3.26. áb rán lá th a tó á ra m k ö r egy flip-fiop, am elyet az ó rajel felfu tó éle vezé­ je b b a k ö zp o n ti egység?
rel. M ódosítsa úgy az á ram k ö rt, hogy az ó rajel lefu tó éle vezérelje. 32. Egy 32 b ites k ö zp o n ti egység az A 2-A 31 cínivezetékekkel m egköveteli, hogy
20. A 3.29. áb rán lá th a tó 4 x 3 bites m em ó ria 22 é s k a p u t és 3 v a g y k a p u t hasz­ a m em ó riah iv atk o záso k sz ó h atárra legyenek igazítva. A zaz a m em óriaszavak
nál. H a az á ra m k ö rt k ib ő v íten én k 256 x 8-asra, hány k a p u ra len n e szükségünk cím e csak 4-gyel o szth ató , a félszavak cím e pedig csak p á ro s szám lehet. A
ezekből? bájto k le h etn ek bárm ilyen cím en. H ány külö n féle m eg en g e d ett kom binációja
21. H ogy ki tu d ja fizetni az új P C -jének tö rlesztő részleteit, ko n zu ltáció ra k érték van a m e m ó riaelérések n ek , és hány lábra van szükség, hogy ezek et az esetek et
fel egy m ost induló SSI lapkakészítő ü zem ben. Egyik m eg ren d elő je egy olyan m eg k ü lö n b ö zteth essü k ? A djon két választ és egy-egy p é ld á t m indegyikre.
lapka kibocsátásán gojidolkodik, am ely 4 db D flip-flopot tarta lm az n a, m in d ­ 33. M iért leh e te tle n egy P en tiu m 4 szám ára, hogy egy 32 b ites PC I sínen dolgoz­
egyiknek len n e Q és Q k im en ete a poten ciálisan fo n to s vevő kívánságára. A zon anélkül, hogy elveszítené fu nkcionalitásának egy részét? A 64 bites a d a t­
tervajánlat k ö zö sítette a négy ó rajelet, szintén kívánságra. N incs viszont sem ál­ sínnel ren d elk ező szám ítógépek m égiscsak tu d n ak 32 bites. 16 bites, sőt m ég 8
lapotbeállítás, sem törlés. A z Ö n fe lad ata a terv szakm ai b írálata, kiérték elése. bites átv itelt is.
22. A hogyan egyre tö b b és tö b b m e m ó riá t p ré se ln e k rá egyetlen lap k ára, úgy n ö ­ 34. Tegyük fel, hogy egy k özponti egység l . szintű gyo rsító tára 1 ns, 2. szintű gyor­
vekszik a cím zéshez szükséges k o n ta k tu so k szám a. G y ak ran k én y elm etlen , ha sító tá ra 2 ns elérési idővel rendelkezik. A fő m em ó ria elérési ideje 10 ns. H a
túl sok cím kivezetés van egy lap k án . Találjon ki egy m ó d szert arra, hogy 2" m e ­ az összes hivatkozás 20% -a az első szintű gyorsító tárb an találh ató , 60% -a a 2.
m ó ria szót 7i-nél kev eseb b cím vezetékkel cím ezhessünk m eg. szintű gyorsítótárban, m ek k o ra a/, átlagos elérési idő?
23. Egy szám ítógép 32 bites a d atsín n el ren d elk ezik és 1 M x 1 d in am ik u s RA M - 35. V alószínű-e, hogy egy SO.'il alapú beágyazott ren d szerb en legyen egy 82."i5A
m e m ó rialap k á k a t használ. M ek k o ra az a legkisebb m em ó ria (b ájto k b a n ), P IO la p k a ?
am elyet ez a szám ítógép ta rta lm a z h a t? 36. Szám ítsa ki a szükséges sávszélességet a sínen, hc^gy egy V G A (640 x 480), 24
24. T ekintsük a 3.38. áb ra időzítési d iag ram ját. Tegyük fel, hogy lelassítjuk az ó ra ­ bites színű (True co lo r) m ozifájlt m egjelenítsünk 30 kép/s sebességgel. Tegyük
jelet, és egy ó rajel p e rió d u sid eje 20 ns lesz az áb rá n láth ató lO ns helyett, de fel, hogy az ad a to k k étszer m en n ek át a sínen, egyszer a C D -R O M felől a m e ­
a többi időzítési feltétel v álto zatlan m arad t. M ennyi ideje len n e legrosszabb m ó riáb a. m ajd a m em óriából a k épernyőt m eghajtó kártyához.
e setb en a m em ó rián a k a rra , hogy a k ért a d a to k a t a sínen m egjelen ítse a T , p e ­ 37. M it g ondol, a P entium 4 m elyik k im en ete vezérli a PC I sín f r a m e # vonalát?
rió d u sb an , m iu tán az mreo b eállt (ü-ra)? 38. A 3.56. áb rán lá th a tó jelek közül, m elyek nem feltétlenül szükségesek ahhoz,
25. T ovábbra is a 3.38. á b rá ra hivatkozunk, tegyük fel, hogy az ó rajel 100 M H z hogy a sínprotokoll m űködjön?
m arad t, de T^g m eg n ö v e k e d e tt 4 ns-ra. H a szn álh ató k -e to v áb b ra is a 10 ns-os 39. Egy P C I E xpress ren d szern ek 5 M bps sebességű vonalai vannak (teljes sáv­
m em ó rialap k á k ? szélesség). H ány vezeték re lenne szükség m indegyik irányban a nyolcsztuos
scbe.sségű m űködéshez? Mi a teljes kapacitás az egyes irányokban? Mi a nettó
sávszélesség az egyes irányokban?
250 3. A D IG IT Á LIS LO G IK A SZ IN T JE

40. Egy szám ítógép olyan gépi utasításo k k al rend elk ezik , am elyek m indegyike két 4. A mikroarchitektúra szintje
órajelciklust igényel, egyet az u tasítás, egyet p ed ig az a d a t b e tö lté sé re . M inden
órajel 10ns, és így m inden u tasítás 20ns (a belső v égrehajtási idő elh an y ag o l­
h ató ). A szám ító g ép n ek van egy m ág n eslem eze, am elyen sáv o n k én t 2048 db
512 bájto s szek to r van. A diszk forgási ideje 5 ms. A n o rm ál sebesség hány szá­
z alé k ára esik vissza a szám ítógép sebessége D M A -átvitel alatt, ha m in d en 32
b ites D M A -átvitel 1 órajelcik lu st igényel?
41. A m axim ális h aszn o s a d a tm c re t egy izoszinkron ad atc so m ag b an az U SB sínen
1023 bájt. Tegyük fel. hogy egy eszköz csak egy ad atc so m ag o t tu d k ü ldeni egy
k eretb en , mi a m axim ális sávszélessége egy izoszinkron eszköznek?
42. M i lenne a h atása a n n ak , h a egy h arm ad ik b em e n e ti von alat kacso ln án k a
3.62. (b) áb rán lá th a tó ára m k ö rb e n a P I()-t kiválasztó n e m - é s kapuhoz, és ezt
a v ezeték et az a 13-hoz k ap cso ln án k ?
A digitális logika szintje feletti szint a m ik ro arc h itek tú ra szintje. F elad ata a fe le t­
43. írjo n egy p ro g ra m o t, am ely szim ulálni tu d ja egy m x /j-es k ét b e m e n e tű n e m - é s
te lévő ISA -szint (u ta sításre n d szer-arch itek tú ra szintje) m egvalósítása, ahogy ezt
kapukb ól álló m átrix viselkedését. A z á ram k ö r, am ely egyetlen lap k án foglal
az 1.2. áb rán b e m u tattu k . A m ikro arc h itek tú ra-szin tjén ek tervezése függ az ISA-
h e ly e t,; b e m e n ő és k k im en ő vonallal ren d elk ezik . / és k, illetve m és n fo r­
szint m egvalósításától, valam int a szám ítógép ár- és teljesítm ény-célkitűzéseitől.
dítási p a ra m é te re k legyenek. A p ro g ram azzal k ezd ő d jö n , hogy beolvas egy
Sok m o d ern ISA, kiváltképpen, ha R IS C -elgon doláson alapuló, rendelkezik olyan
„huzalozási listá t”. M inden v ezeték b e m e n e te k e t és k im e n c tc k et köt össze.
egyszerű utasításokkal, am elyek általáb an egyetlen ciklusidő alatt v égrehajthatók.
B em en etk én t a j b e m e n ő vonal valam elyike vagy valam elyik n e m - é s k ap u ki­
Ö ssz e tette b b ISA-k, m int a P en tiu m 4, egyetlenegy utasítás v égrehajtásához több
m en ete fo rd u lh at elő. K im e n etk én t pedig a k k im en ő v onal valam elyike vagy
ciklust ig ényelhetnek. Egy utasítás vég reh ajtása igényelheti az o p eran d u so k helyé­
valam elyik n e m - í s k ap u b e m e n e te fo rd u lh at elő. A n em h aszn ált b e m e n ő vo­
n e k m e g h atáro zását a m em ó riáb an , azok kiolvasását és az ered m én y visszatárolá-
nalak jelszintje I. M iu tán a p ro g ram beolvasta a huzalozási listát, nyom tassa
sát a m em ó riáb a. A z egyetlen u tasításo n belüli m űveletek sorba állítása gyakran
ki a A: kim en ő vonal á lla p o tát az összes k ü lö n b ö ző Ti b e m e n e t esetén . A k a p u ­
vezet a vezérlés m ásfajta m egközelítéséhez, m int az az egyszerű ISA -kban van.
m átrix lapkák at, m int ez is, e lte rje d te n haszn álják arra, hogy a m eg ren d elő k
igénye szerinti ára m k ö rö k e t egy lap k án m egvalósítsák, mivel a n m n k a nagyob­
bik része (k ap u m átrix k ialak ítása a lap k án ) független m ag átó l az áram k ö rtő l.
E gyedül a huzalozás változik á ra m k ö rrő l áram k ö rre .
4.1. M ík ro a rch íte k tú ra -p é ld a
44. írjo n p ro g ram o t, am ely beolvas k ét B oole-kifejezést, és m egvizsgálja, hogy
ugyanazt a függvényt valósítják-e m eg. A b e m e n ő nyelv b etű k b ő l, azaz B oole-
A z lenne ideális, ha úgy v e z e th e tn é n k be ezt a tém át, hogy elm agyarázzuk a mik-
változókból, az is , v a g y , n e m logikai m űv eletek b ő l és záró jelek b ő l álljon.
ro a rc h ite k tú ra-terv ezés általános alapelveit. Sajnos, azo n b an nincsenek ilyen
M inden kifejezésnek el kell férn ie egyetlen so rb an . A p ro g ra m n a k ki kell szá­
alapelvek, m inden eset speciális. E z é rt részletes p éld ák a t fogunk helyette tárgyal­
m ítan ia a k ét kifejezés igazságtáblázatát, és össze kell h a so n lítan ia a k ettő t.
ni. IS A -p cld ánknak a Java V irtual M achine (Java virtuális gép) egy részhalm azát
45. írjo n egy p ro g ra m o t, am ely n éh án y B o o le-kifejezést olvas be, m ajd k iszám ít­
választo ttu k , ahogy azt az 1. fejezetben m egígértük. Ez a részhalm az csak e g cs/
ja azokat a 24 x 50-es vagy 50 x 6-os m átrixokat, am elyek szükségesek ahhoz,
u tasításo k a t tartalm az, így eln ev eztü k IJV M -nek.
hogy a 3.15. á b rán lá th a tó P L A á ram k ö rre l m egvalósíthassuk azokat. A b e m e ­
A z a tervünk, hogy leírjuk a m ik ro a rc h ite k tű rá t a legm agasabb szinten, m elyen
nő nyelv ugyanaz legyen, m int am it az előző, 44. p ro b lé m a m eg o ld ásán ál hasz­
az IJV M -et m eg fogjuk valósítani. A z IJV M -n ck van n éh án y bonyolult utasítása.
nált. A m átrix o k at nyom tassa ki.
Sok h aso n ló arc h ite k tú ra gyakran a n iik ro p ro g ram o zás eszköztárával kerül im ple­
m en tálásra, ahogy azt az 1. fejezetb en láttuk. B ár az IJV M kicsi, m égis jó k iin d u ­
lási p o n t az utasításo k vezérlésének és sorba állításának leírására.
M ik ro a rc h itek tú rán k tartalm azn i fog egy m ik ro p ro g ram o t (R O M -b an ), m ely­
n ek fe la d a ta az IJV M -u tasításo k b etö ltése, d ek ó d o lása és végrehajtása. N em
tu d ju k h asználni a Sun JV M -in te rp re te rt a m ik ro p ro g ram h o z, m ert egy olyan kis
m ik ro p ro g ram ra van szükségünk, am ely haték o n y an vezérli az egyes k a p u k a t az
ak tu ális h ard v erb en . E zzel e lle n tétb en a Sun JV M -in te rp re te r C -ben készült a
252 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.1. M IK R O A R C H IT EK T Ú R A -PÉLD A 253

h o rd o zh ató ság é rd e k é b en , és nem képes vezérelni a h ard v e rt azon a részletezett-


ségi szinten, am ire szükségünk van. M ivel az általu n k h aszn ált aktuális h a rd v er
elm életileg csak a 3. fejezetb en leírt alap e lem ek b ő l áll, a fejezet teljes m eg értése
u tán az olvasónak k é p esn ek kellene len n ie arra, hogy elm en jen , és egy nagy sza­
tyor tran zisz to rt véve felép ítse a JV M gép egy részét. A zo k n ak a hallg ató k n ak ,
akik sikeresen teljesítik ezt a fela d ato t, extra k re d itp o n t já r (és pszichiátriai k i­
vizsgálás).
M egfelelő' m odell a n iik ro arc h itek tú ra-ter\'e zés szám ára, ha a ter\'ezcsrc m int
program ozási p ro b lé m á ra gondolunk, ah o l az ISA-szint m inden egyes u tasítása
egy függvény, m elyet a fő p ro g ram hív m eg. E b b en a m o d ellb en a fő p ro g ram egy
egyszerű végtelen ciklus, am ely m eg h atáro zza a m eg h ív an d ó függvényt, m eghívja
azt, és kezdi újra az egészet, nagyon h aso n ló an , m in t a 2.3. áb rán .
A m ikro p ro g ram v áltozók egy halm azával ren delk ezik , am it a szám ítógép á lla ­
p o tán ak nevezünk, és ezt m inden függvény el tu d ja érni. M in d en függvény m eg ­
változtatja legalább az állap o to t alk o tó válto zó k egy részét. P éld áu l az u ta sítá s­
szám láló (P C ) az állap o t része. Ez m u ta tja azt a m em ó riah ely et, am ely ta rta lm a z ­
za a következő v é g reh ajtan d ó függvényt (vagyis IS A -utasítást). M in d en u tasítás
v égrehajtása a latt a P C e lő reh alad , hogy a k övetkező v ég re h a jta n d ó u tasításra
m utasson.
A z IJV M u tasításai rövidek és velősek. M in d en u tasítás tarta lm a z n éh án y - á lta ­
lában egy vagy két - m ezőt, és m indegyiknek van valam i speciális szerep e. M inden
u tasítás első m ezője a művkód (a m űveleti kód rö v id ítése), am elyik azo n o sítja az
u tasítást, és m eg m o n d ja, hogy ez A D D vagy B R A N C H , vagy valam i m ás. Sok u ta sí­
tásn ak van egy további m ezője is, am ely az o p e ra n d u st h a táro z z a m eg. A z olyan
u tasításo k n ak p éld áu l, m elyek lokális v álto zó t h aszn áln ak , szükségük van egy m e ­
zőre, am elyik m eg m o n d ja, hogy m elyik válto zó t használják.
A v ég reh ajtásn ak ez a betölt-végrehajt c ik lu sk én t is n ev ezett m odellje hasznos
az elm élet szem p o n tjáb ó l, és alapja leh et olyan ISA-k m egvalósításának is, m in t az
IJV M , m elynek bon y o lu lt u tasításai v annak. A z aláb b iak b an le fogjuk írni, hogy ez
hogyan m űködik, hogy néz ki a m ik ro arc h itek tű ra, ezt m ik én t vezérlik a m ik ro u ta-
sítások, am elyek m indegyike az a d a tu ta t vezérli egy cikluson belül. A m ik ro u tasí-
tások listája egy ü ttesen m ik ro p ro g ra m o t alkot, am elyet részletesen b e m u ta tu n k
és m egtárgyalunk.

4.1.1. Adatút

A z adatút a C P U -n ak az a része, am elyik tarta lm az z a az A L U -t b em en e teiv el és 4 .1 . á b r a . A z e b b e n a fe je z e tb e n h a s z n á lt m ik ro a r c h ite k tú r a -p é ld a a d a tú tja

kim eneteivel együtt. M ik ro a re h ite k tű rá n k a d a tú tja a 4.1. á b rán lá th ató . M iközben


gondosan o p tim izáltu k az IJV M -p ro g ram o k in te rp re tá lásáh o z , m eg leh ető sen h a ­ val m egegyező é rté k e t tartalm azn ak . A legtöbb regiszter ta rta lm á t a B sínre lehet
sonlóvá vált a legtöbb gép b en h aszn álato s ad atű th o z . Sok 32 bites reg isztert ta r ­ irányítani. A z A L U k im en ete a lé p tető b e vezet, ezután a C sínre kerül, m elynek
talm az, m elyekhez szim bolikus n ev ek et ren d e lü n k , o ly an o k at m in t PC , SP és MDR . é rté k e egy id ő b en egy vagy több regiszterbe írh ató . E gyelőre nincs A sín, később
B ár a nevek ném elyike ism erős, fo n to s m e g érte n ü n k , hogy ezek a reg iszte rek csak m ajd hozzávesszük.
a m ik ro arc h itek tű ra szintjén é rh e tő k el (a m ik ro p ro g ram által). A zért k ap ták e ze­ A z A L U m egegyezik a 3.19. és 3.20. áb rán b em u ta to tta l. Tevékenységét h at
ket a neveket, m ert gyakran az ISA -szintű a rc h ite k tú ra ugyanilyen nevű változójá- v ezérlővonal h atáro zza m eg. A 4.1. áb rá n a rövid vízszintes vonal „ 6” cím kéje az
254 4. A M IK R O A R C H IT E K T Ü R A SZ IN T JE 4 .1 .M IK R O A R C H IT EK T Ú R A - P ÉLD A 255

A L U hat vezérlő v o n alára utal. K özülük F^, cs F, h a táro z z a m eg az A L U -m űvcIe- A fenti függvényeken kívül két m ásik vezérlővonal h aszn álh ató egym ástól füg­
tet, ENA és ENB egyedileg engedélyezi a b e m e n e te k e t, INVA invertálja a bal oldali g etlenü l az A L U k im en etén ek irányítására. A z SLL8 (Shift L eft Logical, lép tetés
b e m cn c tet, és INC a legalacsonyabb h ely érték ű biten az „átvitel b e " b em en e t. INC b a lra logikailag) a ta rta lm a t 1 b ájttal b alra lépteti, feltöltve nullával a legalacso­
b eállítása gyakorlatilag 1-et ho zzáad az ered m én y h ez. A zo n b an az A L U -t vezérlő nyabb lielyertékű 8 hitet. S R A l (Shift R ight A rithm etic, aritm etikai lép tetés jo b b ­
jelek nem m ind a 64 k o m b in áció ja tesz valam i hasznosat. ra) a ta rta lm a t 1 bittel jo b b ra lépteti, v áltozatlanul hagyva a legm agasabb hclyer-
A 4.2. áb rán b e m u ta tu n k n éh án y at az é rd e k e se b b kom binációkból. A z IJV M - ték ű bitet.
hez nem szükséges ezen tevékenységek m indegyike, de a teljes JV M -h ez sok k ö ­ H angsúlyozzuk, hogy lehetséges olvasni és írni ugyanazt a reg isztert egy ciklu­
zülük igen hasznos leh et. Sok e setb en többféle leh ető ség ü n k is van, hogy ugyanazt son belül. P éldául m eg en g e d ett, hogy az SP-t kitegyük a B sínre, tiltsuk az A I.U
az ered m én y t elérjük. E b b en a táb lá z a tb a n a + aritm e tik a i összead ásjelet, a - a rit­ bal oldali b e m e n e té t, engedélyezzük az INC jelet, és táro lju k az ered m én y t SP-be,
m etikai kivonásjelet jelöl, vagyis p éld áu l -A iiz A k ettes k o m p lem en sét jelen ti. így m egnövelve SP é rté k é t 1-gyel (lásd 4.2. á b ra 8. sor). H ogy m ik én t olvasható és
írh a tó egy regiszter ugyanabban a ciklusban anélkül, hogy szem ét keletk ezn e? A
EN B IN V A IN C Tevékenység
m ag y arázat az, hogy az olvasás és az írás valójában egy cikluson belül különböző
FO FI ENA
id ő p illa n a tb a n h ajtó d ik végre. A m ik o r kiválasztódik, hogy m elyik regiszter legyen
az A L U jo b b oldali b e m en e te, ak k o r en n ek az érté k e a ciklus elején a B sínre k e ­
rül, és fo ly am atosan o tt is m arad csaknem a teljes ciklus alatt. A z A L U ek k o r el­
végzi a m u n káját, az ered m én y t a lép tető n keresztül a C sínre küldi. A ciklus vege
felé, am ik o r az A L U és a lé p te tő kim en etérő l tudjuk, hogy stabil, az órajel kiváltja
A +B
a C sín ta rta lm á n a k tá ro lá sá t egy vagy tö b b regiszterbe. A z egyik ilyen regiszter
A + B+ 1
le h e t az, am elyik b e m e n e tk é n t szolgált a B sín szám ára. A z a d a tú t p o n to s id ő zíté­
A+1
se leh ető v é teszi u g y anan nak a reg isztern ek egy cikluson belüli olvasását és írását,
B +1
ahogy alább részletezzük.
B~A
1
Az adatút időzítése
AANDB
AORB A z esem én y ek id ő zítését a 4.3. á b ra m u tatja. Itt egy rövid im pulzus képződik m in­
0 d en óraciklus k ezd etek o r. E z szárm azh at a fő ó rátó l, m in t az a 3.2L (c) áb rán lá t­
h ató . A z im pulzus lefu tó élén b eálln ak azok a bitek, am elyek az összes k ap u t irá­
-1 nyítani fogják. E z egy m e g h atáro zo tt és ism ert Aw idő a latt bekövetkezik. E zután
kiválasztódik az a regiszter, am elyre a B sínnek szüksége van, és a B sínre kap cso ­
4.2. ábra. Az ALU jeleinek hasznos kombinációi és az elvégzett tevékenység lódik. At idő telik el, am íg az é rté k stabil lesz. E k k o r az A L U és a lé p te tő elkezdi
v é g reh ajtan i a m űveletet az érvényes ad ato n . Egy m ásik Ay m úlva az A L U és a
A 4.1. áb ra A L U -já n a k két a d a tb e m e n e tre van szüksége: a b al o ld alira (A ) cs a lé p te tő kim enetei stabilak lesznek. Egy további Az u tá n az ered m én y ek tovább­
jo b b o ld alira (B ). A bal oldali b e m e n e t a H (H o ld in g ) ta rtó reg iszterh ez kap cso ­ te rje d n e k a C sín m en tén a regiszterek h ez, a h o n n an b e tö ltő d h e tn e k a k ö v etk e­
lódik. A jo b b oldali b e m e n e t p ed ig a B sínhez, am elyik k ép e s b e tö lte n i a szürke ző im pulzus felfu tó élénél. A b e tö ltésn ek élv ez éreltn ek és gyorsnak kell lennie,
nyilak által m e g m u ta to tt kilenc fo rrás bárm elyikét. Egy alte rn a tív terv k ét teljes vagyis m ég a k k o r is, h a valam elyik in p u t regiszter m egváltozik, a következm ények
sínnel a kom prom isszu m ok egy m ásik h alm azával ren d elk ezik , ezt e b b en a feje­ nem lesznek é rzék elh ető k a C sínen a reg iszterek b e tö ltése u tá n m ég egy jó ideig.
zetb en később tárgyaljuk. U gyancsak az im pulzus felfu tó élén él a regiszter és a B sín k ap cso lata m egszakad,
A H úgy tö lth e tő fel, hogy választu n k egy olyan A L U -tevékenységet, am elyik a felkészülve a k övetkező ciklusra. A z áb rán em lített MPC, MIR és a m em ó ria szere­
jobb oldali b e m e n e te t (a B sínről) csu p án áten g e d i az A L U k im e n e tére . A z egyik p ére rövidesen visszatérünk.
ilyen tevékenység az A L U b e m e n e te lt összeadja, csak n eg ált ENA-val, am i a bal o l­ F o n to s, hogy tisztában legyünk azzal, hogy b ár n incsenek táro ló elem ek az adat-
dali b e m e n e te t nullává teszi. N u llát adva a B sín érték é h e z , é p p e n a B sín é rté k é t ú tb a n , van rajta egy m e g h a tá ro z o tt terjed ési idő. A B sínen lévő érté k változása
kapjuk. E zt az ere d m é n y t a z u tá n m ó d o sítás n élkül küld jü k tovább a lé p te tő n , és (m in d en egyes lépés m eg h a tá ro z o tt k ésleltetése k ö v etk eztéb en ) n em e red m én y e­
H-ban tároljuk. zi a C sín v áltozását, am íg egy m eg h a tá ro z o tt idő cl nem telik. T ehát m ég ak k o r is,
ha egy táro lás m eg fogja v álto ztatn i az egyik b em en e ti regiszter érté k é t, a korábbi
256 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE
4.1. M IK R O A R C H IT EK T Ú R A -PÉLD A 257

A regiszterek gyorsan am ely indítja az adatútciklusát, valam int az órajel felfutó éle, am ely feltölti a re ­
A léptető betöltődnek az órajel
felfutó élére a C sínről g isztereket a C sínről. A többi részciklus h a tá ra it értelem szerű en h atáro zzák m eg
Az első kimenete
stabil és a memóriából a b e é p íte tt á ram k ö rö k b en rejlő terjed ési idők. A terv ezőm érnökök felelőssége a n ­
ciklus
itt kez­ nak biztosítása, hogy a Aw + Aí + Ay + Az idő eléggé az órajel felfutó éle előtt te l­
dődik A 2. óraciklus jé k le ahhoz, hogy a regiszterek b etöltése idejében m egtörténjék.

Itt az új MPC-t használjuk


a következő mikroutasítás
MIR-be töltésére
A memóriaművelet

G é p ü n k n e k két kü lö n b ö ző m ódja van, hogy a m em óriával kom m unikáljon; egy


32 bites, szócím zésű m e m ó ria p o rt és egy 8bites, bájtcím zésű m e m ó riap o rt. A 32
AzMPC
Beállnak bites p o rto t k é t regiszter vezérli, a MAR (M em oiy Address Register, m em óriacím -
Itt használható
az adat- fel regiszter) és az MDR (M emory Data Register, m em óriaadat-regiszter), ahogy ez a
utat 4.1. á b rá n láth ató . A 8bites p o rto t egy regiszter, a PC vezérli, am ely egy b á jto t o l­
vezérlő
jelek vas be az MBR alsó 8bitjébe. E z a p o rt csak a d a to t tu d olvasni a m em óriából; nem
AH és Továbbítás kép es abba a d a to t írni.
a B sín a léptetőből E ze k et a reg iszte rek et (és a 4.1. áb ra többi reg iszte rét is) egy vagy k ét vezérlőjel
vezérlése a regiszterekhez
irányítja. A regiszter alatti nyitott nyíl azt a vezérlőjelet jelzi, am elyik engedi a r e ­
g iszterek k im e n e té t a B sínre. M ivel a MAR nem kapcsolódik a B sínre, nincs en g e ­
4.3. ábra. Egy adatútciklus időzítési diagramja délyező je le sem . A H-nak sincs egyikből sem , m ert m indig engedélyezett, hiszen
ez az A L U egyetlen lehetséges bal oldali b em en e te.
é rté k biztonságo san elju t az A L U -b a, jóval előbb, sem hogy az új (m o st hely telen ) A reg iszter alatti, tö m ö r fek ete nyíl azt a vezérlő jelet jelzi, am elyik írja (vagyis
érté k rák erü lv e a B sínre(vagy H-ra), e lé rh e tn é az A L U -t. b e tö lti) a regiszte rt a C sínről. M ivel az MBR nem tö lth e tő a C sínről, e z ért nincs
A z ilyen tervezési m u n k a m eg követeli a szigorú időzítést, egy hosszú ó raciklust, író jele se (b á r van k ét m ásik engedélyező jele, am it alább részletezünk). Egy m c-
az A L U -n keresztü li m inim ális te rje d é si id ő ism e re té t, és a C sínről a reg iszterb e m óriaolvasás vagy -írás kezdem ényezéséhez a m egfelelő m em ó riareg iszterek et
tö rté n ő gyors b e tö lté st. A zo n b an go n d o s m érn ö k i m u n k áv al az a d a tú t úgy m eg ­ fel kell tö lten i, m ajd egy olvasó- vagy írójelet kell kibocsátani a m em ó ria felé (ez
terv ezh ető , hogy m indig helyesen m ű k ö d jö n . A tényleges g épek így m ű k ö d n ek . u tó b b it n em m u tatja a 4.1. ábra).
K issé külö n b ö ző m ó d ja az a d atú tcik lu s v izsgálatának, h a úgy tek in tjü k , hogy A MAR K Ó cím eket ta rtalm az úgy, hogy a 0, 1 ,2 stb. é rté k e k egym ást k övető sza­
m agátó l é rte tő d ő részciklusokra d arab o ló d ik . A z 1. részciklus k ez d e té t az órajel
v ak ra h ivatkoznak, a PC tó ;íc ím e k e t ta rtalm az úgy, hogy a 0, 1 ,2 stb. érté k e k egy­
lefu tó éle vezérli. A z aláb b iak b an a részciklusok a latti tev ék e n y ség ek et m u ta tju k m ást k ö vető b á jto k ra hivatkoznak. T ehát 2-t téve a PC-be, és elindítva egy olvasást
be a részciklus hosszával (z áró jelb en ) együtt. a m em ó riáb ól, kiolvassa a m em ó ria 2. bájtját, és az MBR alsó 8b itjére teszi. 2-t téve
a MAR-ba, és elindítva egy olvasást, kiolvassa a m em ó ria 8-11. b ájtjait (vagyis a 2.
1. A v ezérlőjelek b eálln ak (Aw). szót), és az MDR-be teszi.
2. A reg iszterek a B sínre tö ltő d n e k (Ax). E z a m ű k ödésbeli különbség szükséges, m ert a MAR-t és a PC-t a m em ó ria két
3. A z A L U és a lé p te tő m ű k ö d ik (Ay). kü lö n b ö ző részére való hivatkozásra fogjuk használni. A m eg k ü lö n b ö ztetés szük­
4. A z ered m én y ek a C sín m e n tén visszak erü ln ek a reg iszte rek h ez (Az). ségessége k ésőbb világosabbá válik. Pillanatnyilag elég annyi, hogy a MAR/MDR
p á rt az ISA -szintű adatszavak olvasására és írására használjuk, a PC/MBR p á rt p e ­
A következő óraciklus felfu tó élén é l az e red m én y ek e ltá ro ló d n a k a reg iszterek b e. dig a bájtfolyam ból álló v ég reh ajth ató ISA -szintű p ro g ram olvasására. M inden
A zt m ondjuk, hogy a legjobb m egközelítés az, hogy a részciklusok értelemszerűek. m ás regiszter, am ely cím et tartalm az, szócím eket használ, m int a MAR.
E zen azt értjük, hogy nincs óra- vagy egyéb m e g h a táro z o tt jel, am elyik m egm ondja A valódi fizikai m egvalósításban csak egy tényleges m em ó ria van, az pedig b á jt­
az A L U -nak, hogy m ikor m űködjön, vagy m eg m o nd ja az ered m én y ek n ek , hogy lép ­ szervezésű. A MAR szavakban szám lálhat (a J V M definíciója m iatt erre van szük­
je n e k a C sínre. A valóságban az A L U és a lé p tető m indvégig m űködik. A zo n b an ség), m iközben a fizikai m em ó ria b á jto k ra van osztva. Ez egy egyszerű kis trükkel
a b em en e teik szem etek az órajel lefu tó éle u tán Avw -t- Ax ideig. H aso n ló an a k i­ k ezelh ető . A m ikor a MAR a cím sínre kerül, a 32 bitje n em képződik le a 32 cím ­
m en eteik szem etek, am íg el n em telik az órajel lefu tó éle u tá n Aw -I- Aí -t- Ay idő. v o n alra közvetlenül 0 - 3 1-ig, han em a MAR 0. bitje a cím sín 2. vonalához kötődik,
A z egyedüli m e g h atá ro z o tt jelek , am elyek az a d a tu ta t vezérlik, az órajel lefu tó éle, a MAR 1. bitje a cím sín 3. v o nalához k ötődik és így tovább. A MAR legfelső 2 bitjét
258 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.1, M IK R O A R C H IT EK T Ú R A -PÉLD A 259

A 32 bites M A R (szavakban szám lál) 2 jel (nem láth ató ) m u tatja a m em óriaolv asást/írást MAR/MDR-n keresztül.
1 jel (nem láth ató ) m u tatja a m em ó ria b e tö lté st PC/MBR-n keresztül.

E n n e k a 29 v ezérlőjelnek az érték e h atáro zza m eg az a d a tú t egy ciklusának m űve­


leteit. A ciklus a reg iszterek érté k é n e k B sínre m ásolásából, a jelek n ek az A L U -n
és a lé p te tő n keresztüli továbbításából, az ered m én y C sínre viteléből, és végül a /
e re d m én y n ek a m egfelelő regiszterbe vagy reg iszterek b e írásából áll. E zek után.
h a a m em óriaolvasás jel be van állítva, a niem ó riam ű v elet az adatútciklus végén
A 32 bites címsín (bájtokban számlál) k ezdődik, m iu tán a regiszterek (esetleg a MAR vagy PC) feltö ltő d tek . A m e m ó ria a ­
d at a következő ciklus legvégén áll ren d elk ezésre az MBR vagy MDR-ben, és csak az
4.4. ábra. A MAR bitjeinek leképezése a dmsínre ezt kö vető ciklusban h aszn álh ató fel.* M ás szavakkal, a k. ciklus végén k ezd em é­
n y ezett bárm elyik p o rtra vonatk o zó m enióriaolvasás úgy szolgáltatja az ad ato t,
eldobjuk, mivel ezek csak a 2’- feletti cím ek h ez szükségesek, am elyek n em m e g e n ­ hogy az n em h aszn álh ató a/c -t- 1. ciklusban, csak a k + 2. ciklusban, vagy később.
g e d e tte k 4 G B -os gép ü n k ö n . H a ezt a lek ép e zést használjuk, am ik o r a MAR 1, a k ­ E zt a látszólag term ész etellen es viselkedést a 4.3. á b ra m agyarázza. A m em ó ri­
kor a sínre k erü lő cím 4; am ik o r a MAR 2, a k k o r a sínre k e rü lő cím 8és így tovább. át v e z é rlő je le k nem g e n eráló d n ak az 1. óraciklusban addig, csak k ö z \e tle n ü l az­
Ezt a trü k k ö t a 4.4. á b ra m utatja. u tán , hogy a MAR és PC fe ltö ltő d ö tt az ó ra felfutó élére az 1. óraciklus vége felé.
M int fen teb b em lítettü k , a m em ó riáb ó l a 8bites m e m ó ria p o rto n keresztüli olva­ F eltételezzü k, hogy a m em ória egy cikluson belül kiteszi a m em ó riasín re az e re d ­
sás az MBR-be tö rtén ik , egy 8bites regiszterbe. A z MBR két m ód közül az egyikkel m ényt, vagyis az MBR és/vagy MDR b e tö lth e tő az ó ra k övetkező felfutó élére, h a ­
kapu zh ató (vagyis m áso lh ató ) a B sínre: előjel nélkül vagy előjelesen. A m ikor e lő ­ so n ló an m ás regiszterekhez.
jel nélküli érté k re van szükségünk, a k k o r a B sínre k erü lő 32 bites szó tarta lm a z­ M ás szóval, b etö ltjü k a MAR-t az ad atú tcik lu s végén, és röviddel ezu tán indítjuk
za az MBR é rté k é t az alsó 8b iten és n u llák at a m agasabb 24 biten. A z előjel nélküli a m em ó riát. K ö v etkezésképpen, valóban nem várhatjuk, hogy az olvasási m űvelet
érték ek a táblázato k indexelésénél h asználatosak, vagy am ikor egy 16 bites egészet ered m én y e a következő ciklus elején az MDR-ben legyen, k ülönösen, ha az ó ra ­
kell összerakni az u tasításfolyam ban lévő 2egym ást k övető (előjel nélküli) bájtból. im pulzus szélessége rövid. N incs eleg e n d ő idő, ha a m em ória egy óraciklust igé­
A m ásik leh ető sé g a 8b ites MBR 32 bites szóvá k o n v ertálására, hogy az MBR-t nyel. L en n ie kell egy ad atú tcik lu sn ak a m em óriaolvasás k ezd ete és az ered m én y
egy -1 2 8 és -1-127 közö tti előjeles é rté k n e k tek in tjü k , és egy olyan 32 b ites szót h o ­ felh aszn álása között, lérm észetesen m ás m űvelet is v ég reh ajth ató ez a latt a ciklus
zunk létre, am elynek ugyanez az é rték e . Ez a konv erzió az MBR elő jelb itjén ek (bal alatt, de olyan nem , am elyik ezt a m em ó riaszó t igényli.
szélső bit) a B sín felső 24 b itjére tö rté n ő m ásolásával v a ló síth ató m eg; a folyam ai A z a feltevés, hogy a m em ó riam ű v elet egy ciklust igényel, ekvivalens azzal, hogy
elő jel-k iterjeszté sk c n t ism ert. A m ik o r ezt a leh e tő sé g e t választjuk, ak k o r a felső feltesszük, hogy az 1. szintű g yorsítótár találati arán y a 100%. E z a feltevés sose
24 bit vagy m ind 0, vagy m ind 1, attó l függően, hogy a 8bites MBR bal szélső bitje igaz, de a változó hosszúságú m em óriaciklus-idők bevezetésével kialakuló k o m p ­
0vagy 1. lexitás több, m int am ivel itt foglalkozni szeretn én k .
A zt, hogy vajon a 8 bites MBR előjel nélküli vagy előjeles szám k én t k erü ljö n a A z MBR és MDR m ás regiszterek h ez hasonlóan az ó ra em elk ed ő élére töltődik
B sínre, az h atáro z za m eg, hogy a k é t vezérlőjel (a 4.1. áb rán az MBR alatti n yitott fel, e zért o lvashatók abb an a ciklusban, am elyben az új m em óriaolvasás m eg ­
nyilak) közül m elyik van beállítva. M in d k ét leh ető ség re szükség van, e z é rt van két tö rtén ik . M indaddig a régi érték ek k el té rn ek vissza, am íg az olvasás nem írja
nyíl. A zt a leh ető ség et, hogy a 8b ites MBR 32 bites fo rrásk é n t v iselk ed h et a B sín felül. N incs itt ellen tm o n d ás; am íg az új é rté k e k be nem tö ltő d n e k az MBR-be és
szám ára, a 4.1. á b rá n a szag g ato tt vonalú d oboz jelzi az MBR bal o ldalán. MDR-be az ó ra em elk ed ő élénél, addig az előző é rté k o tt talá lh a tó és h aszn álh a­
tó. M egjegyezzük, hogy lehetséges szorosan egym ás u tán olvasásokat v égrehajtani
két egym ást követő ciklusban, mivel egy olvasás csak egy ciklusig tart. A kétfajta
4.1.2. Mikroutasítások m em ó riao lv asás azonos időben is m űk ö d h et. D e ha m egpróbáljuk p árh u zam o san
olvasni és írni ugyanazt a b ájto t, definiálatlan ered m én y t kapunk.
A 4.1. á b ra a d atű tjá n a k vezérléséhez 29 jelre van szükség. E/.ek ö t m ű k ö d ési cs (í - M íg k ívánatos leh et, hogy a C sínen lévő ered m én y t egynél több regiszterbe ír­
p o rtb a o szthatók , ahogy alább leírjuk. ju k , ad d ig sose kívánunk egyszerre egynél több regisztert a B sínre engedni. (N é ­
hány igazi m egvalósítás valóban fizikai kárt szenved, h a ez bekövetkezik.) Az
9 jel vezérli az a d a tírá st a C sínről a regiszterekbe. ára m k ö rö k egy kis fejlesztésével re d u k álh atju k azon bitek szám át, m elyek kivá-
9 jel vezérli a reg iszterek en g ed ély ezését a B sínre az A L U b e m e n e te szám ára.
8jel vezérli az A L U és a lé p te tő tevékenységeit. * Ez csak az adatúton történő felhasználásra vonatkozik. (A lektor)
260 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.1. M IK R O A R C H IT EK T Ú R A -PÉLD A 261

Bitek 9 4.1.3. Mikroutasítás-vezérlés: Mic-1


0 F H
E d d ig leírtuk, hogy hogyan tö rté n ik az a d a tú t vezérlése, de m ég nem foglalkoztunk
B
NEXT_ADDRESS azzal, hogyan dől el, hogy a vezérlőjelek közül m elyeket kell engedélyezni egy-egy
sín
cikluson belül. E z t a sorba állító h atáro zza m eg, am ely egy egyszerű ISA -utasítás
v ég reh ajtásához szükséges m űveletek so ro zatán való végiglépegetésért felelős.
Addr JAM ALU Mem B A so rb a állító n ak m in d en ciklusban k étféle info rm áció t kell előállítania:

B sínre küldhető
1. A ren d sz e rb en lévő összes vezérlőjel é rték ét.
regiszterek
0 = MDR 5 = LV 2. A követk ező v ég reh ajtan d ó m ik ro u tasítás cím ét.
1=PC 6 = CPP
2 = MBR 7=T0S
A 4.6. á b ra a p éld ag ép ü n k , m elyet M ic -l- n e k nevezünk el, k o m p lett m ikroar-
3 = MBRU 8 = 0PC
4 = SP 9-15 nincs c h ite k tú rá já n a k részletes blokkdiagram ja. K ezd etb en tiszteletet parancsokénak
tű n h e t, de m egéri g o ndosan tanulm ányozni. H a valaki m eg érti az összes d o b o zt és
4.5. ábra. A M ic~l mikroutasítás formátuma v o n alat ezen az áb rán , jó ú to n halad , hogy m eg értse a m ik ro arc h itek tü ra-szin tet.
A b lo k k d iag ram n ak k é t része van: bal old alo n az a d a tű t, am elyet m á r részletesen
lasztják a lehetség es fo rrá so k közül, hogy m elyiket vezessük a B sínre. C sak kilenc tárg y altu n k , a jo b b oldalon pedig a vezérlőrész, am elyet a k ö vetkezőkben fogunk
lehetséges reg iszte r van, am it a B sín re v e z e th e tü n k (az MBR előjeles és előjel n é l­ m egvizsgálni.
küli v álto zatát külön szám oljuk). E n n e k k ö v etk ez téb en a B sín v ezérlését 4 biten A legnagyobb és a legfontosabb elem a gép v ezérlő részéb en egy m em ó ria, m e ­
k ó d o lh atju k , és egy d e k ó d e rt h asz n á lh a tu n k a 16 vezérlőjel e lő állítására, m elyből lyet vezérlőtám ak nevezünk. K ényelm es úgy tek in ten i rá, m int egy k o m p lett mik-
7-re nincs szükségünk. A k eresk ed elm i terv ezésb en a te rv ező m érn ö k ö k ellen áll­ ro p ro g ra m o t ta rtalm azó m em ó riára, b á r n é h a logikai k ap u k h alm azak én t v aló ­
h a ta tla n kényszert é re zn én ek , hogy valam elyik reg iszte rt felszabadítsák, így 3 bit sítják m eg. Á ltaláb an v e z érlő tárk én t hivatkozunk rá, hogy össze ne tévesszük a
elég lenne a felad a t v ég reh ajtásáh o z. E g yetem i o k ta tó k é n t v állalh ató az egy b it el- fő m em ó riáv al, m ely u tó b b it az MBR-en és MDR-en k eresztül érü n k el. M ű k ö d ését
p a zarlásán ak óriási luxusa a világosabb és egyszerűbb terv ezés érd e k é b e n . tek in tv e azo nban a v e z érlő tár egy m em ó ria, am ely IS A -utasítások h elyett egysze­
O tt ta rtu n k , hogy az a d a tu ta t 9 - t - 4 - t - 8 - t - 2 - t - l = 24 jellel, azaz 24 b itte l v e ­ rű e n m ik ro n tasításo k at foglal m agában. P éld ag ép ü n k n é l 512 szót tartalm az, m in­
zérelh etjü k . A zo n b an ez a 24 b it csak egy ciklusra vezérli az a d a tu ta t. A vezérlés d en szó egy 36 b ites m ik ro u tasításb ó l áll, olyanból, m elyet a 4.5. áb rán m u tattu n k
m ásodik része arra való, hogy m eg h atáro zza, m it szán d ék o zu n k ten n i a k övetkező be. V alójában nem m in d en szó szükséges, de - hogy röviden m agyarázhassunk -
ciklusban. H ogy ezt is bev o n ju k a v ezérlő terv ezéséb e, m e g alk o tu n k egy fo rm á tu ­ 512 k ü lö n b ö ző szó szám ára van szükségünk cím ekre.
m ot a v ég reh ajta n d ó m ű v eletek le írására, használni fogjuk a 24 v ezérlő b itet, v ala­ Egy fontos vonatkozásban a v ezérlőtár eléggé különbözik a főm em őriától: a fő ­
m int további k ét m ezőt: a NEXT_ADDRESS és a JAM m ezőt. M in d k é t m ező ta rta lm á t m em ó riáb an lévő utasítások végrehajtása m indig cím sorrendben tö rtén ik (kivéve
röviden vázoljuk. A 4.5. á b ra egy leh etség es fo rm á tu m o t m u ta t, m elyet h a t cso ­ az elágazásokat), a m ikroutasításoké pedig nem . A z utasításszám láló növelésének
p o rtra o szto ttu n k , és a k övetkező 36 je le t tartalm azza: m egvalósítása azt a tényt fejezi ki, hogy az aktuális utasítás u tán végrehajtott u tasí­
tás alap értelm ezésben az lesz, am elyik az aktuális u tasítást a m em óriában követi. A
Addr - A lehetség es k ö vetkező m ik ro u tasítás cím ét tartalm azza. m ik ro p ro g ram oknak rugalm asabbaknak kell lenniük, vagyis általában nem re n d el­
JAM - M eg h atáro zza, hogy a k ö v etk ező m ik ro u tasítás hogyan választódik ki. keznek ezzel a tulajdonsággal, m ert a m ikroutasítások sorozatánál rövidségre tö re k ­
ALU - A z A L U és a lé p te tő tevékenységei. szünk. E llenkezőleg, m inden m ikroutasítás világosan előírja, melyik fogja követni.
C - K iválasztja, hogy m elyik reg iszte rb e írjunk a C sínről. M ivel a v ezérlő tár m ű k ö d ését tekintve (csak olvasható) m em ória, szüksége van
Mem - M em óriatev ék en y ség ek . saját m em ó riacím -reg iszterre és saját m em ó riaad at-reg iszterre. N incs szükség o l­
B - K iválasztja a B sín fo rrását: kódolva van, ahogy b e m u ta ttu k . vasó- és író jelekre, m ert folyam atosan olvassuk. A v e zérlő tár m em óriacím -regisz-
te ré t M P C -n ek (M icroProgram Counter, m ikroutasítás-szám láló) fogjuk nevez­
A cso p o rto k so rren d je elvben tetszőleges, b á r v aló jáb an nagyon g o n d o san válasz­ ni. E z a név ironikus, mivel a b e n n e lévő helyek h a tá ro z o tta n n em re n d ezettek , így
to ttu k m eg, hogy m in im alizáljuk a vo n alak k eresztezéseit a 4.6. áb rán . A v o n a l­ a szám lálás elve nem h aszn álh ató (de kik vagyunk m i, hogy vitatkozzunk a hagyo­
k eresztező d ések a sem atik u s áb rá n , am ilyen a 4.6. á b ra is, gyakran m egfelelnek m án n y al?). A m e m ó riaad at-reg isztert M IR -n ek (M icrolnstruction Register, mik-
a h u zalk eresztező d é se k n e k az áram k ö ri lap k án , am elyek h ib á t o k o zn ak a k é td i­ routasítás-regiszter) nevezzük. S zerepe az, hogy tartalm azza az érvényes m ikro-
m enziós terv ezések b en , és am ely ek et a le h e tő legjobban m inim alizálnak. u tasítást, m elynek bitjei m eg hajtják az a d a tu ta t m ű k ö d te tő vezérlőjeleket.
262 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.1. M IK R O A R C H IT EK T Ú R A -PÉLD A 263

Memóriavezérlő jelek (rd, wr, fetch) egyedit. A sta n d a rd á ra m k ö r h aszn álata egyszerűbb, és nem valószínű hibák te ­
lep ítése. S aját tervezésnél kisebb la p k a te rü le te t használunk, de a tervezés tovább
ta rt, és el is ro n th atju k .
A 4.6. áb ra m ű k ö d ése a következő. M inden óraeiklus k ezd etén (az ó ra lefutó
éle a 4.3. á b rán ) a MIR feltöltődik az MPC által m u ta to tt vezérlő tárb eli szóval. A
MIR feltöltési id ejét az áb rá n Aw jelöli. H a valaki részciklusokban gondolkodik, a
MIR az első részciklus alatt feltöltődik.
M ihelyt a m ik ro u tasítás bek erü l a MIR-be, külö n b ö ző jelek fu tn ak az a d atú ti a.
Egy reg iszter kikerül a B sínre, az A L U m egtudja, m elyik a v ég reh ajtan d ó m űve­
let, és sok tevékenység zajlik arrafelé. Ez a m ásodik részciklus. A z ó ra k ezd etétő l
Aw -I- At idő után az A L U b e m en e tel stabilak lesznek.
Egy m ásik A j-nal később m in d en m egállapodik, és az A L U . N, Z és a lé p te tő ki­
m e n e te stabil lesz. A z N és Z érték ek e k k o r eltá ro ló d n a k k ét 1 bites flip-flopban.
E zek a b itek az ó ra em elk ed ő é lére táro ló d n ak , közel az ad atű tcik lu s végéhez, h a ­
so n ló an az összes regiszterhez, m elyek a C sínről és a m em ó riáb ó l tö ltő d n ek fel.
A z A L U k im en ete nem táro ló d ik , h an em azonnal a lé p tető b e töltődik. A z A L U
és a lé p te tő tevékenysége a 3. részciklusra esik.
Egy to vábbi Az idő u tán , a lé p te tő kim enete a C sínen keresztül eléri a reg iszte­
rek e t. E k k o r, a ciklus vége közelében (a 4.3. áb rán az órajel felfutó é lére) a regisz­
te re k feltö lth ető k . A 4. részciklus a regiszterek és az N és Z flip-flopok betö ltéséb ő l
áll. E z egy kicsivel az ó ra em elk ed ő éle u tán befejeződik, am ik o r m inden e re d ­
m ény el van m á r m entve, és az előző m em óriam űvelet eredm ényei ren d elk ezésre
állnak, és az MPC is fel van töltve. Ez a folyam at folytatódik tovább, am íg valaki
m eg n em unja, és ki nem kapcsolja a gépet.
P á rh u z a m o san az a d a tú t m eghajtásával a m ik ro p ro g rain n ak m eg kell h a tá ro z ­
nia, hogy m elyik lesz a következő v ég reh ajtan d ó m ik ro u tasítás, hiszen n em abban
a so rre n d b e n futnak, ahogy a v e z é rlő tárb an előfordulnak. A következő m ik ro u ta ­
sítás cím én ek kiszám ítása azután kezdődik, hogy a MIR feltö ltő d ik és stabilizáló­
dik. E lő szö r a 9 bites NEXT_ADDRESS m ező az MPC-be m ásolódik. M ialatt a m áso ­
lás lezajlik, a JAM m ező vizsgálat alá kerül. H a az érték e ()()(), nincs sem m i teen d ő ;
a NEXT_ADDRESS m ásolása u tán az MPC a következő m ik ro u tasításra m utat.
H a JAM egy vagy tö b b bitje 1, több tevékenység szükséges. H a a JAMN be van
4.6. ábra. A mikroarchitektúra-példánk, a M ic-1 teljes blokkdiagramja állítva, az 1 bites N flip-flop O R k ap cso lattal kerül az MPC legm agasabb bitjére.
H aso n ló a n , h a a JAMZ b e van állítva, az 1 bites Z flip-flop kerül O R k apcsolattal
A 4.6. ábrán a MIR reg iszter ugyanazt a h at cso p o rto t tartalm azza, m in t a 4.5. á b ­ od a. H a m in d k ettő be van állítva, m in d k ettő O R kap cso lattal kerül ugyanoda. Az
rán. A z Addr és J (JA M ) cso p o rto k vezérlik a k övetkező m ik ro u tasítás kiválasztását; N és Z flip-flop a z ért szükséges, m ert az órajel em elk ed ő éle u tán (m ialatt az óra
ezt röviden tárgyalni fogjuk. A z ALU cso p o rt azt a 8b itet tartalm azza, am elyek ki­ m agas) a B sín nincs m ár tovább vezérelve, így az A L U k im en etelrő l a to v áb b iak ­
választják az A L U tevékenységét, és irányítják a lép tető t. A C b ite k b e tö lte tik az ban m á r nem tételezh etjü k fel, hogy helyesek. E lm entve az A L U állapotjelzőit N-
egyes regiszterek b e az A L U k im e n e té t a C sínről. Az M b ite k vezérlik a m em ó ria ­ be és Z-be, a helyes é rté k e k e t elérh ető v é és tartó ssá tesszük az MPC kiszám ításá­
m űveleteket. hoz, n em érd ek es, hogy mi tö rté n ik az A L U környékén.
V égül az utolsó 4 b it irányítja a d e k ó d e rt, am elyik m eg h atáro zza, mi k erü ljö n a A 4.6. áb rán ezt a szám ítást végző logikát „m agas b it”-nek jelöljük. E z a k ö v et­
B sínre. H bben az esetb en a sta n d a rd 4-ről 16-ra d e k ó d o ló t választjuk, a n n a k elle­ kező logikai függvényt valósítja meg:
n ére, hogy csak kilenc leh ető ség re van szükségünk. Egy fin o m ab b an h an g o lt te r­
vezésnél 4-ről 9-re d e k ó d o ló t h asználnánk. A kom p ro m isszum az, hogy stan d a rd F = (JAMZ AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8]
á ra m k ö rt használu n k az á ra m k ö rö k köny \'táráb ó l ah ely ett, hogy terv ezn én k egy
264 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.1. M IK R O A R C H IT EK T Ú R A -PÉLD A 265

M egjegyezzük, hogy m in d en ese tb e n az MPC csak a követk ező k é t leh etség es é rté k a követk ező m ik ro u tasítás szám ára m inden lehetséges m űveleti kód esetén . E z a
egyikét veheti fel: m ó d szer jó l h aszn álh ató az ép p en b e tö ltö tt m űveleti k ódtól függő tevékenységre
való gyors és közvetlen ugrásra.
1. A NEXT_ADDRESS értéke; A gép id ő zítésén ek m eg értése kritikus a k övetkezőkben, ezért talán nem h a ­
2. A NEXT_ADDRESS érték e , és a legm agasabb h ely érték ű biten O R 1 m űvelet. szo n talan ú jra elism ételni, és ezt a részciklusok term in o ló g iájáb an fogjuk m eg ten ­
ni. H iszen azt könnyű elképzelni, b ár a valódi ó raesem én y ek csak a lefu tó él, am i a
N incs m ás lehető ség . H a a NEXT_ADDRESS legm agasabb bitje m á r 1, a JAMN vagy ciklust indítja, és a felfutó él, am elyik b etö lti a reg iszte rek et és az N és Z flip-flopot.
JAMZ h aszn álata érte lm e tle n . T ekintsük m ég egyszer a 4.3. áb rát.
M egjegyezzük, hogy am ik o r a JAM b ite k m indegyike nulla, a követk ező vég­ A z 1. részciklus alatt, m elyet az ó ra lefutó éle in d íto tt, a MIR feltö ltő d ik az MPC-
re h a jta n d ó m ik ro u tasítás cím e egyszerűen a NEXT_ADDRESS m ező b en lévő 9 b i­ b en je len leg lévő cím ről. A 2. részciklus alatt a jelek szétte rje d n e k MIR-ből, és a B
tes szám . A m ik o r JAMN vagy JAMZ valam elyike 1, k é t leh etség es követk ező cím sín feltö ltő d ik a kiválasztott regiszterből. A 3. részciklus a latt az A L U és a lé p te ­
van: NEXT_ADDRESS vagy NEXT.ADDRESS O R 0x100 (feltéve, hogy NEXT_ADDRESS tő m űködik, és stabil ered m én y t állít elő. A 4. részciklus a latt a C sín, a m e m ó ria ­
s OxFF, m ert k ü lö n b en a k ét le h ető ség egybeesik). (M egjegyezzük, hogy Ox jelöli, sínek és az A L U é rté k e i stabillá válnak. A z ó ra em elk ed ő élére a reg iszterek a C
hogy a m ö g ö tte k ö vetkező szám tize n h a to s szám ren d szerb en é rte n d ő .) A 4.7. á b ­ sínről fe ltö ltő d n ek , az N és Z flip-flopok b etö ltő d n ek , és az MBR és MDR m egkapják
rán ezt m u tatju k be. A 0x75 helyen lévő m ik ro u tasításb an NEXT_ADDRESS = 0x92, az előző ad atú tcik lu s végén in d íto tt m em ó riam ű v eletb ő l (ha volt ilyen) szárm azó
és a JAMZ érté k e 1. T ehát a k ö v etk ező m ik ro u tasítás cím e az előző A L U -m ű v elet- e re d m én y ü k et. A m in t az MBR elé rh e tő , az MPC b e tö ltő d ik a k övetkező m ik ro u tasí­
nél tá ro lt Z b ittő l függ. H a a Z bit 0, a követk ező m ik ro u tasítás a 0x92-ről jö n . H a tás elő k észítéséhez. így az MPC m egkapja é rté k é t valam ikor an n ak az in terv allu m ­
a Z bit 1, a k övetk ező m ik ro u tasítás a 0 x l9 2 -rő l érkezik. n a k a k ö zep én, am ik o r az ó ra m agas, de m á r az u tán , hogy MBR/MDR készen van.*
A harm ad ik b it a JAM m ezőben a JMPC. H a be van állítva, az MBR 8bitje biten- E z vagy szintvezérelt leh et (nem élvezérelt), vagy az élvezérelt egy m e g h atáro zo tt
kénti O R kapcso latb a k erül az aktuális m ik ro u tasítás NEXT_ADDRESS m ezőjének késleltetéssel az ó ra felfu tó éle u tán . Egy a lényeg, az MPC addig nem tö ltő d ik be,
legalsó 8bitjével. A z ered m én y az MPC-be kerül. A 4.6. áb rán a 0-val jelö lt doboz am íg azok a reg iszterek készen nincsenek, am elyektől függ (MBR, N és Z). A hogy
végez O R m űveletet az MBR és NEXT_ADDRESS k özött, ha a JMPC 1, de csupán á t­ az ó ra jel lefut, az MPC m egcím ezheti a v ezérlő tárat, és egy új ciklus kezd ő d h et.
ereszti NEXT_ADDRESS-t az MPC-hez, ha a JMPC 0. A m ik o r a JMPC 1, a NEXT_ADDRESS M egjegyezzük, hogy m indegyik ciklus ö n m ag áb an zárt. E z m eg h atáro zza, hogy
alsó 8bitje általáb an nulla. A m agas hely érték ű b it leh e t 0 vagy 1, vagyis a JMPC ál­ m i m en jen a B sínre, m it csináljon az A L U és a lép tető , hova táro ljo n ki a C sínről,
tal használt NEXT_ADDRESS érték e általáb an 0x000 vagy 0x100. A zt, hogy m iért hasz­ és végül, mi legyen a következő MPC érték.
nálu n k n éh a OxOOO-t, m ásk o r pedig OxlOO-t, később fogjuk tárgyalni. É rd e m e s egy u to lsó m egjegyzést ten n i a 4.6. ábrával kapcsolatban. Ú gy te k in ­
te ttü k az MPC-t, m in t egy valódi regisztert, am elynek 9 bit a táro ló k ap acitása,
Cím Addr JAM Adatútvezérlő bitek és ak k o r tö ltő d ik be, am ik o r az órajel m agas. A valóságban nincs szükség arra,
JAMZ bit hogy itt legyen regiszter. M in d en b e m e n e te közvetlenül rá k ö th e tő a v ezérlő tárra.
0x75 0x92 001
beállítva E leg en d ő , h a az ó ra lefutó élénél m eg jelen n ek a jelek a v ezérlő tárb an , am ik o r a
MIR é rté k e t kap. N em szükséges, hogy azo k at ténylegesen kitároljuk az MPC-be.
E z é rt az MPC virtuális regiszterként jól m egvalósítható, am i csak gyűjtőhelye a je ­
0x92 leknek; in k ább h aso n lít egy elek to n ik u s p a n e ld a ra b ra , m int egy igazi regiszterre.
Z-töl függően
E gyszerűsödik az időzítés, ha az MPC-t virtuális reg iszte rk én t készítjük el; m ost az
. ezek egyike
• fogja 0x75-öt esem én y ek csak az ó ra lefu tó vagy felfu tó élén él tö rté n n e k , és sehol m áshol. D e
követni h a v alak in ek könnyebb ügy gondolni az MPC-re, m int igazi regiszterre, az is elfo ­
0x192 g a d h a tó n éző p o n t.

4.7. ábra. Egy mikroutasításnak két lehetséges követője van, ha JA M Z értéke 1

A záltal, hogy O R m ű v eletet végzünk az MBR és NEXT_ADDRESS k ö zö tt, és az


ered m én y t az MPC-be táro lju k , leh ető v é válik a 'tö b b u tas elágazás (u g rás) h a té ­
kony m egvalósítása. Vegyük észre, hogy a 256 cím bárm ely ik e elő írh a tó , és k izáró ­ * Tehát a következőként végrehajtandó mikroutasítás címének kiszámításához felhasznál­
lag az MBR-ben lévő b itek h a tá ro z zá k m eg. Egy jellem ző h asz n ála tb a n az MBR egy ható az előző mikroutasításban kiadott fetch eredménye, de az adatúton még az MBR régi
m űveleti k ó d o t tartalm az, így a JMPC h aszn á lata eg y értelm ű választást ered m én y ez értéke érhető el. (A lektor)
266 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.2. ISA -PÉLD A : A Z IJV M 267

M ost vegyük fo n to ló ra, mi tö rtén ik , h a ^ m eghív egy m ásik ő eljárást. Hol lesz
4.2. ISA-példa: az IJVM
táro lv a B négy lokális változója (b l, b2, b3. b 4 ) l V álasz: a v erem ben, ?lzA változói
F olytassuk a p é ld á n k a t a gép IS A -szintjének bevezetésével, am elyet a 4.6. áb ra fö lö tt, ahogy az a 4.8. (b) áb rán láth ató . Vegyük észre, hogy az eljáráshívás LV-t B
m ik ro arc h itek tú rá já n fu tó m ik id p ro g ram m al fogunk é rtelm ezn i (IJV M ). K énye­ lokális v álto zóira á llíto tta be, A változói helyett. B lokális változóira úgy hivatkoz­
lem ből n éh a az u ta sítá sre n d sz e r-a rc h ite k tú ra szintjére úgy hivatkozunk, m in t m ak- h atu n k , hogy m egadjuk LV-től való távolságukat. H aso n ló an , ha B m eghívja C-t,
ro a rc h ite k tú rá ra , hogy m eg k ü lö n b ö ztessü k a m ik ro a rc h ite k tú rá tó l. M ie lő tt leír­ LV-t és SP-t ism ét beállítjuk úgy, hogy C k ét lokális válto zó ján ak helyet foglaljon,
ju k az IJV M -et, teszü n k m égis egy kis k ité rő t, hogy m egindokoljuk. m in t az a 4.8. (c) áb rán láth ató .
A m ik o r C visszatér, B válik ism ét aktívvá, és a verem visszaáll a 4.8. (b) áb ra
szerin t úgy, hogy LV m ost ism ét B lokális változóira m u tat. H aso n ló k ép p en , ha B
4.2.1. Vermek visszatér, visszatérünk a 4.8. (a) áb rán láth ató helyzethez. M inden körülm ények
k ö zö tt LV az é p p en aktív eljárás v erem szerk ezetcn ek alap jára m u tat, SP pedig a
Ú gy tűnik, m ind en p ro g ram o zási nyelv tám o g atja az eljá rá so k a t (m etó d u so k a t), v erem szerk ezet te tejére.
am elyeknek lokális változóik v annak. E zek a v áltozók e lé rh e tő k az e ljárás b else ­ M ost tegyük fel, hogy A m eghívja D -t, am elynek ö t lokális változója van. A
jéből, de m egszűnik az e lérh ető ség ü k , am ik o r az eljárás visszatért. így felm erü l a 4.8. (d ) áb rán lévő helyzet áll elő, am elyben D lokális változói azt a m e m ó ria te ­
kérdés: „H ol kell ta rta n i e zek et a v álto zó k at a m e m ó riá b a n ? ” rü le te t h asználják, am elyet előzőleg B változói, valam int C v áltozóinak egy része
A z a legegyszerűbb m egoldás nem m űk ö d ik , hogy m in d en v álto zó n ak ad u n k használt. E zzel a m em óriaszervczéssel csak az épp en aktív eljárásoknak van fog­
egy abszolút m em ó riacím et. A p ro b lém a az, hogy az eljárás saját m ag át is hív­ lalva m em ória. H a egy eljárás visszatér, a lokális változói által használt m em ória
hatja. E zek et a rekurzív e ljáráso k at az 5. fejezetb en fogjuk tanulm ányozni. felszabadul.
P illanatnyilag elég annyit m o n d an u n k , hogy ha az e ljárás k étszer aktív (m eg h í­ A v e rm ek n ek van m ás felhasználása is, azon kívül, hogy a lokális változókat tá ­
v o tt), leh etetlen a változóit abszolút m em ó riah ely ek en táro ln i, m ert a m áso d ik h í­ rolják. H aszn álh ató k arra is, hogy táro lják az o p era n d u so k a t egy aritm etik ai kife­
vás összeütközésbe k erü l az elsővel. jezés kiszám olása alatt. H a erre használjuk, a verm et o p eran d u sv erem n ek nevez­
E h ely ett egy m ásik stra tég iát alkalm azunk. Egy v erem n ek hív o tt m e m ó ria te rü ­ zük. Tegyük fel p éldáu l, hogy fi m eghívása e lő tt/1 -n a k el kell végeznie a következő
le te t ta rtu n k fen n a változóknak, de e zen belül az egyedi változók n em k ap n ak a b ­ szám olást:
szolút cím et. E h ely e tt egy reg isztert á llítu n k be, m o n d ju k az LV-t, hogy m u tasso n a
lokális változók k iin d u ló p o n tjára az ak tu ális eljárás szám ára. A 4.8. (a) á b rán egy al = a2 + a3
A eljárást hívtunk m eg. am elynek lokális változói a l, a2 és a3, így m em ó riát fog­
lalunk a lokális változói szám ára az LV által m u ta to tt m em ó riah ely tő l kezdve. Egy A z összeg elkészítésének egyik m ódja, hogy az a2 -t betesszü k a v erem be, ahogy az
m ásik regiszter, SP, az^4 eljárás lokális változói közül a legm agasabb szóra m u tat. a 4.9. (a) á b rán láth ató . Itt az SP m eg n ő tt az egy szóban lévő bájto k szám ával, azaz
H a LV lüO, és a szavak 4 bájto sak , SP 108 lesz. V álto z ó k ra úgy h ivatkozunk, hogy 4-gyel, és az első eltá ro lt o p e ra n d u s m ost az SP állal m u ta to tt cím en van. E zután
m egadjuk az e lto lá sá t (táv o lság át) LV-től. A z LV és SP k ö zö tti a d a ts tru k tú rá t (b e le ­ ű,í-at tesszük a verem be, am in t azt a 4.9. (b) áb ra m utatja. M ellesleg m egjegyez­
értve m in d k ét m u ta to tt szót), az A lo k ális változó m ezőjének nevezzük. zük, hogy m in d en pro g ram részt HELVETICA-val szedünk, m int fent. U gyanezt a b e tű ­
típ u st fogjuk használni assem bly nyelvű m űveleti k ó d o k ra és gépi regiszterekre,
SP^ azo n b an futószövegekben a p ro g ram v álto zó k at és eljáráso k at dőlt betűvel adjuk
LV-.- SP^ d5 meg. A külön bség az, hogy a változókat és eljárásneveket a felhasználó választja, a
SP^ b4 b4 d4 m űveleti k ó d o k és regiszternevek viszont b eép ítettek .
b3 bS d3
b2 b2 d2
LV-.- bl b1 LV-.- d1 SP-.- y/z /a s'/ ///.
S P -^ a3 108 83 83 a3 SP ^ V///.a2V//A SP-<-
a2 104 32 82 a2 83 a3 a3 SP-.- a3
LV-^ al 100 al al al a2 a2 a2 a2
LV' al LV ► al LV-h- al LV-.- a2 + a3
(a) (b) (c) (d)
(a) (b) (c) (d)
4.8. ábra. /i verem használata lokális változók tárolására, (a) Miközben A aktív, (b) Miután A
meghívta B-t. (c) Miután fi meghívta C-f. (d) Miután CésB visszatért, és A meghívta D t 4.9. ábra. Operandusverem használata aritmetíkai számítás elvégzéséhez
268 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.2. IS A - P É L D A :A Z IJV M 269

M ost m ár elvég ezh ető a foly am atb an levő szám olás egy u tasítás v ég reh a jtá sá ­ SP
3. (aktuális)
val, am ely a verem ből kivesz k ét szót, ö sszeadja ő k e t és az ered m é n y t visszateszi operandus­
a v erem be, m int az a 4.9. (c) á b rán láth a tó . V égül a legfelső szót k ivehetjük a ve­ verem
rem ből, és visszatáro lh atju k az u l lokális változóba, ahogy azl a 4.9. (d ) áb rán á b ­
rázoljuk. 3. (aktuális)
A lokális változó m ező je és az o p era n d u sv e re m összevegyíthetők. P éld áu l, a m i­ lokális
k o r egy olyan kifejezést szám olunk, m int + f(x ), a kifejezés egy része (például változók
mezője
bent leh et az o p era n d u sv e re m b en , am ik o r az /fü g g v é n y t m eghívjuk. A függ­
■LV
vény ered m én y e b e n t m ara d a v erem b en , . f e l e t t , így a követk ező u tasítás azokat 2. lokális
összeadhatja. változók
E m lítésre érd em es, hogy m íg m in d en gép használ v erm et a lokális válto zó k tá ­ mezője
rolására, nem m indegyik használ eh h ez h aso n ló o p e ra n d u sv e rm e t az aritm etik a Konstans
m űködéséhez. T ény, hogy a legtöbb n em használ, de a JV M és IJV M így dolgozik, mező 1. lokális
e zért m u tattu k be itt a v erem m ű v eletek ct. R észleteseb b en m ajd az 5. fejezetb en változók
mezője
foglalkozunk velük.
- CPP

4.2.2. Az IJVM memóríamodellje 4.10. ábra. Az IJVM-memória különböző részei

M ost m ár készek vagyunk az IJV M a rc h ite k tú rá já n a k m eg ism erésére. A lap v ető e n k ö zvetlenül a lokális változók m ezője fö lö tt van lefoglalva, ahogy azt a 4.10. áb ­
olyan m em óriáb ó l áll, am ely k ét m ó d o n láth ató : egy 4 294 967 296 b ájto s (4 G B ) ra m u tatja. M egvalósításunkban g o n d o lh atu n k úgy az o p eran d u sv erem re, hogy
vagy egy ] 073 741 824 szavas töm b, ahol m in d en szó 4 bájtb ó l áll. E lle n té tb e n a az a lokális változók m ező jén ek a része. M in d en esetre van egy SP im plicit re ­
legtöbb ISA-val, a Jav a virtuális gép nem hoz létre az ISA -szinten k ö zvetlenül lát­ giszter, am ely tartalm azza a verem legfelső s/.avának cím ét. Vegyük észre, hogy
h ató abszolút m em ó riacím ek et, de van szám os im plicit (közvetlenül n em lá th a tó ) az CPP-vel és LV-vel e lle n tétb en , ez a m u ta tó változik a m etó d u s v ég reh ajtása so­
cím , am ely egy m u ta tó alap jáu l szolgál. A z IJV M -u tasításo k csak e m u tató k tó l rán, am ik o r o p e ra n d u so k a t teszünk a verem be, vagy veszünk ki o nnan.
való indexeléssel é rh e tik el a m em ó riát. M indig a k ö v etk ez ő m e m ó ria te rü le te k 4. M etódus m ező. V égül, a m e m ó rián ak van egy olyan része, am ely a p ro g ram o t
vannak definiálva: tartalm azza, „szöveg” te rü le tk é n t hivatkozunk rá U N IX processzusban. Van
egy im plicit regiszter, am ely tartalm azza an n ak az u tasításn ak a cím ét, am elyet
1. K onstans m ező (k o n stan so k tá rte rü le te ). E rre a te rü le tre IJV M -p ro g ram nem k ö v etk ező k én t be kell tölteni. E z a m u ta tó az utasításszám láló vagy PC. A m e ­
írh at, k onstanso k b ó l, stringekből és olyan m u ta tó k b ó l áll, am elyek a m em ó ria m ó ria m ás te rü le te itő l e lté rő e n a m etó d u s m ezőt b á jttö m b k én t kezeljük.
m ás, hivatk o zh ató te rü le te ire m u ta tn a k . E z a k k o r tö ltő d ik be, am ik o r a p ro g ­
ram a m em ó riá b a kerül, és azu tá n m á r nem változik. A CPP im plicit reg iszte r a E gy m egjegyzést kell te n n ü n k a m u tató k ra v onatkozóan. A CPP, LV és SP re ­
kon stan s m ező első szavának cím ét tartalm azza. g iszterek szavakra és n em bájtokra v o natkozó m u tató k , szavakban kell m egadni
2. L okális változók mezője. Egy m e tó d u s m in d en h ívásakor egy te rü le t foglalódik az elto lást. A z IJV M -b en a k o n stan s m ezőben, a lokális változók m ezőjében és a
le, hogy a hívás ideje a la tt a válto zó k itt táro ló d jan ak . E zt a lo k ális válto zó k me- v e rem b en levő elem re tö rté n ő m in den hivatkozás szóra vonatkozik, és m in d en el­
zcyének nevezzük. E n n e k a te rü le tn e k az elején v a n n ak a p a ra m é te re k (a rg u ­ tolás, am elyet e m ezők indexelésére használunk, szóeltolás. P éldául LV, LV -I- 1 és
m en tu m o k n ak is hívjuk), am elyekkel a m etó d u st m eghívtuk. A lokális változók LV -t- 2 a lokális változók m ezőjének első három szavára hivatkozik, ezzel e lle n té t­
m ezője nem foglalja m ag áb an az o p e ra n d u sv e rm e t, am ely teljesen különálló. ben LV, LV -I- 4 és LV -t- 8 egym ástól 4 szó (16 bájt) távolságra lévő szavakra.
M in d am ellett, haték o n y ság i m egfo n to lásb ó l, m egvalósításunk azt választja, Ezzel szem ben a PC egy b ájt cím ét tartalm azza, és a PC-hez való hozzáadás vagy
hogy az o p e ra n d u sv e rm e t közvetlenül a lokális változók m ezője fö lö tt valósítja kivonás a cím et bájto k szám ával fogja m egváltoztatni, és nem szavak szám ával. A
m eg. Van egy közvetlen regiszter, am ely tartalm azza a lokális válto zó k m ező jé­ PC cím zése különbözik a többitől, és ez a tény szem b etű n ő a speciális m em ó ria­
ben az első hely cím ét. E zt a reg iszte rt LV-nek fogjuk nevezni. A m etó d u s hívá­ p o rto n , am ely a PC-ről gondoskeidik a M ie -l-n é l. E m lékezzünk, heigy az csak I
sak o r á ta d o tt p a ra m é te re k a lokális v áltozók m ező jén ek elején v a n n ak tárolva. b ájt széles. A PC növelése eggyel és egy olvasás kezdem ényezése a következő húji
3. Operandusverem . A v erem m ező g a ra n tá lta n n em h a lad m eg egy bizonyos m é­ b e tö lté sé t eredm ényezi. A z SP növelése eggyel és egy olvasás kezdem ényezése a
re te t, am it a Ja v a-fo rd ító p ro g ram elő re kiszám ol. A z o p e ra n d u sv e re m helye k övetk ező szó b e tö lté sé t eredm ényezi.
270 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4 .2 . IS A - P É L D A :A Z IJV M 271

4.2.3. Az IJVM utasításkészlete N éh án y u tasításn ak tö b b fo rm ája van, m egengedve egy rövidebb fo rm át is az ál­
talán o san h asznált v álto zatra. A z IJV M -be két, JV M -b en használt m eehanizm ust
A z IJV M u tasításk észicte a 4.11. á b rán láth ató . M inden u tasítás egy m űveleti k ó d ­ is b e é p íte ttü n k , hogy ezt teljesítsük. Egyik esetb en átugorjuk a rövid fo rm át az ál­
ból és néha egy o p cran d u sb ó l áll, am ely péld áu l eltolás vagy k o n stan s lehet. A z e l­ talán o sab b k edvéért. A m ásik esetb en m egm utatjuk, hogyan h a s/n á lh a tő a WIDE
ső oszlop az utasítás hexadecim ális kódját, a m ásodik az assem bly nyelvi alakját, a prefix u tasítás a kcjvetkező u tasítás m ódosítására.
h arm ad ik pedig a h a tá sá n ak rövid leírását adja meg. V égül, van egy utasítás (INVOKEVIRTUAL) egy m ásik m etó d u s m eghívására, és
egy m ásik u tasítás (IRETURN) arra, hogy kilépjünk a m etódusból, és visszaadjuk a
Hex Mnem onic Jelentés v ezérlést a n n ak a m etódusnak, am elyik ezt hívta. A m echanizm us összetettsége
0x10 BIPUSH byte Beteszi a bájtot a verembe. m ia tt kicsit egyszerűsítjük a definíciót, lehetővé téve egy lényeggel tö rő d ő m e ­
0x59 DUP A verem legfelső szavát lemásolja, és beteszi a verembe. chanizm us létreh o zását hívás és visszatérés alkalm azására. A Javához képest az
OxA7 GOTO offset Feltétel nélküli elágazás. a m egszorítás, hogy egy m etó d u sn ak csak saját o b jek tu m o n belüli m etó d u st e n ­
0x60 lADD Kivesz a veremből két szót; az összegüket beteszi. g ed ü n k m eghívni. Ez a k o rláto zás egyszerűen tö n k retesz i az o b je k tu m o rie n tá lt­
0x7E lAND Kivesz a veremből két szót; a logikai AND eredményét beteszi. ságot, de lehetővé teszi szám unkra, hogy egy sokkal egyszerűbb m echanizm ust
0x99 IFEQ offset Kivesz a veremből egy szót; és elágazik, ha az nulla. m u tassu n k be, elkerülve azt a követelm ényt, hogy a m etó d u st d inam ikusan h e ­
0x9B IFLToffsef Kivesz a veremből egy szót; és elágazik, ha az kisebb, mint nulla. lyezzük el. (H a nem já rta s az o b jek tu m o rien tált p ro g ram o zásb an , nyugodtan fi­
0x9F IF_ICMPEQ offset Kivesz a veremből két szót; és elágazik, ha azok egyenlők. gyelm en kívül hagyhatja ezt a m egjegyzést. M indössze annyit te ttü n k , hogy a Javát
0x84 UNC varnum const Egy konstanst ad egy lokális változóhoz. v isszab u títo ttu k nem o b jek tu m o rien tált nyelvvé, olyanná, m int a C vagy a Pascal.)
0x15 ILOAD varnum Beteszi a lokális változót a verembe. M in d en szám ítógépen, a JV M -et kivéve, a m eghívott eljárás cím ét közvetlenül a
0xB6 INVOKEVIRTUAL disp Meghív egy metódust. CALL u tasítás határo zza m eg. így m egközelítésünk valójában a norm ális eset, nem
0x80 lOR Kivesz a veremből két szót; a logikai OR eredményét beteszi. kivétel.
OxAC IRETURN Visszatér a metódusból egész értékkel. Egy m etó d u s m eghívásának a m echanizm usa a következő. A hívó először b e ­
0x36 ISTORE varnum Kivesz egy szót a veremből és eltárolja a lokális változóba. tesz a v erem be egy hivatkozást (m u ta tó t), am i a m eghívott o b jek tu m ra utal. (E z a
0x64 ISUB Kivesz a veremből két szót; a különbségüket beteszi. hivatkozás az IJV M -nél nem szükséges, mivel m ásik objek tu m nem a d h a tó meg,
0x13 LDC \N index A konstans mezőről egy konstanst betesz a verembe. de m eghagyjuk, hogy konzisztensek m arad ju n k a JV M -m el.) A 4.12. (a) áb rán ezt
0x00 NOP Nem csinál semmit. a hivatkozást OBJREF m utatja. E zu tán a hívó beteszi a m etó d u s p a ra m é te re it a ve­
0x57 POP A verem legfelső szavát eldobja. rem b e, eb b en a p éld áb a n ez 1. param éter, 2. parartwtcr és 3. param éter. V égül vég­
0x5F SWAP A verem két felső szavát megcseréli. re h a jtó d ik az INVOKEVIRTUAL utasítás.
0xC4 WIDE Prefix utasítás; a következő utasításnak 16 bites indexe van. A z INVOKEVIRTUAL utasítás m agában foglal egy eltolást, am ely a k onstans m e ­
zőn azt a helyet jelöli, am ely tartalm azza a m etó d u s m ező n belül a hívott m etó d u s
4.11. ábra. IJVM utasításkészlete. A byte, const és varnum operandusok 1bájtosak. kezdőcím ét. A m etó d u s kódja az ezen m u tató v al jelö lt helyen van, de a m etó d u s
A disp, index és offset operandusok 2 bájtosak m ező első 4 b ájtja speciális a d a to k a t tartalm az. A z első k ét b ájto t m int egy 16 bites
eg észet te k in tjük, am ely a m etó d u s p a ra m é te re in e k a szám át jelöli (m aguk a p a ra ­
U tasításo k g o n d o sk o d n ak arró l, hogy k ü lö n b öző fo rráso k b ó l egy szó b e k e rü l­ m é te re k m ár a verem ben v annak). E b b ő l a szem pontból OBJREF-ct is p a ra m é te r­
jö n a verem be. Ilyen fo rrás a k o n stan s m ező (LD C_W ), a lokális válto zó k m ezője nek tekintjük: ez a 0. p a ra m é te r. E z a 16 bites egész, az SP értékével együtt szolgál­
(ILOAD) és m aga az u tasítás (BIPUSH ). Egy változó is kiveh ető a verem b ő l, és tá ro l­ tatja az OBJREF helyét. M egjegyezzük, hogy LV az OBJREF-re m u tat, nem az első va­
h a tó a lokális változók m ező jéb e (ISTORE). K ét aritm etik ai m űvelet (lADD és ISUB), lódi p a ra m é te rre . A z, hogy hova m utasson LV, n ém ik ép p önkényesen választható.
valam int két logikai (B o o lean ) m űvelet (lAND és lOR) van, am elyek a v erem két A m etó d u s m ező m ásodik 2 b ájtját úgy értelm ezzük, m in t egy m ásik 16 bites
felső szavát használják o p e ra n d u sk é n t. M ind az aritm etik ai, m ind a logikai m ű v e­ egészet, am ely a m eghívott m etó d u s szám ára a lokális változók m ezőjének a m é ­
letekben két szót veszünk ki a v erem ből, és az e red m én y t visszatesszük a v e re m ­ re té t jelzi. E z azért szükséges, m ert lij verem létesül a m etó d u s szám ára, am ely
be. N égy elágazási u tasítás áll ren d elk ezésre, egy feltétel nélküli (GOTO) és h áro m közvetlenül a lokális változók m ezője fö lö tt kezdődik. V égül a m etó d u s m ező ö tö ­
feltételes (IFEQ, IFLT és IF_ICMPEQ). M in d en elágazási u tasítás az u tasításb an a m ű ­ dik b ájtja tartalm azza az első v ég reh ajtan d ó m űveleti kódot.
veleti k ó d o t k övetó (16 bites, előjeles) elto lás m é rték év el m ó d o sítja a PC é rté k é t. A z INVOKEVIRTUAL-nál bekövetkező tevékenységsorozatot az alábbiakban ism er­
E z az eltolás hozzáad ó d ik a m űveleti kód cím éhez. V annak m ég IJV M -u tasításo k tetjü k , és a 4.12. áb rán ábrázoljuk. A k ét előjel nélküli bájt, am ely a m űveleti kó ­
a verem két felső ele m é n e k m eg cserélésére (SW AP), a felső elem m eg k ettő zésére d o t követi, egy a k onstans m ezőn haszn álan d ó index k észítésére szolgál (az első a
(D U P) és eltáv o lítására (PO P). m ag asab b h elyérték ű bájt). A z u tasítás kiszám ítja az új lokális változók m ezőjének
272 4. A M IK R O A R C H IT E K T Ú R A S Z IN T JE 4.2. ISA -PÉLD A ; A Z IJV M 273

A verem az A verem
INVOKEVIRTUAL után az IRETURN előtt
Hívó LV-Je SP Visszatérési érték SP
Hívó PC-je Előző LV
A hívott Előző PC
A verem az lokális A hívott
INVOKEVIRTUAL előtt változói lokális
3. paraméter SP A verem alapja 3. paraméter változói
Betett az INVOKEVIRTUAL A verem alapja
2. paraméter 2. paraméter 3. paraméter
para­ után az IRETURN előtt
1. paraméter 1■paraméter 2. paraméter A verem
méterek
OBJREF ■Kapcsoló mutató LV 1. paraméter az IRETURN után
1
Előző LV Előző LV -Kapcsoló mutató — LV________ 1 __________ Visszatérési érték SP
Előző PC Előző PC Előző LV Előző LV
r*- Előző PC Előző PC
A hívó A hívó
Hívott
lokális lokális A hívó A hívó
lokális Hívott
változói A verem alapja változói lokális lokális
változói lokális
2. paraméter az INVOKEVIRTUAL 2. paraméter változói változói A verem alapja változói
előtt 1. paraméter az IRETURN után
1. paraméter 2. paraméter 2. paraméter
-Kapcsoló mutató LV -Kapcsoló mutató 1. paraméter 1 1. paraméter
Kapcsoló mutató ____________________ t _____________________
Kapcsoló mutató LV
(a) (b)
(a) (b)
4.12. ábra. (a) A verem az INVOKEVIRTUAL végrehajtása előtt, (b) A végrehajtása után
4.13. ábra. (a) A verem az IRETURN végrehajtása előtt, (b) A végrehajtása után
kezdőcím ét úgy, hogy a p a ra m é te re k szám át kivonja a v ere m m u ta tó b ó l, és LV-t
úgy állítja be, hogy OBJREF-re m u tasso n . E k k o r OBJREF-et felülírva, eltá ro lja an n ak te lévő szót azért hozzuk vissza, hogy visszaállítsuk PC és LV régi érté k é t. A vissza­
a helynek cím ét, ahová a régi PC-t táro lju k . E zt a cím et úgy szám ítjuk ki, hogy h o z­ térési érté k , am ely a b efejező d ő m etó d u s v erm én ek te te jé n helyezkedik el, bem á-
záad ju k a lokális változók m ező jén ek m é re té t (p a ra m é te re k + lokális változók) solódik o d a, ahol ered etileg OBJREF volt tárolva, és az SP visszaállítódik úgy, hogy
az LV-ben tá ro lt cím hez. K özvetlenül a régi PC-t tá ro ló cím felett ta lá lh a tó az a e rre a helyre m utasson. A vezérlés így visszatér közvetlenül az INVOKEVIRTUAL u ta ­
cím , ahová a régi LV-t tároljuk. K özvetlenül e cím fe le tt van az ú jo n n an m eghívott sítást k ö v ető utasításra.
m etó d u s szám ára a v erem k ezd ete. SP-t úgy állítjuk be, hogy a régi LV-re m utasson, M in d ed d ig m ég n em volt g ép ü n k n ek b em en e t/k im en et utasítása. N em is áll
azaz arra cím re, am ely rö g tö n a v erem első ü res helye a la tt van. E m lék ezzü n k a r­ szán d ék u k b an m egadni ilyet. E gyáltalán nincs rá szüksége, akárcsak a Jav a v irtu á ­
ra, hogy SP m indig a v erem legfelső szavára m u tat. H a a v erem üres, a v erem alja lis g ép n ek , a hivatalos JV M -specifikációk m ég csak nem is em lítik a B/K-t. A z elv
alatti legelső helyre m u tat, mivel verm ein k a m ag asab b cím ek felé em elk ed n ek . az, hogy egy olyan gép, am elynek nincs se b e m en e te, se k im en ete, az „b izto n sá­
Á b ráin k o n a v erm ek m indig a lap te te jé n lévő m ag asab b cím ek felé n ö vekednek. gos.” (Speciális B /K m etó d u so k m eghívásával tu d u n k olvasni és írni JV M -b en .)
A z utolsó m űvelet, am ely az INVOKEVIRTUAL v é g reh ajtásáh o z szükséges az, hogy
a PC-t úgy állítsa be, hogy a m e tó d u s k ó d jáb an az ö tö d ik b á jtra m utasson.
A z IRETURN utasítás „ m eg fo rd ítja” az INVOKEVIRTUAL u tasítás m ű v eleteit, ahogy 4.2.4. Java fordítása IJVM-re
az a 4.13. áb rán láth ató . F elszab ad ítja a v isszatérő m e tó d u s által h aszn ált te rü le ­
tet. V isszaállítja a v erm et is a k o ráb b i á llap o táb a, kivéve, hogy ( 1) a (m o st felü lírt) M ost nézzük m eg, hogy viszonyul egym áshoz a Java és az IJV M . A 4.14. (a) ábrán
OBJREF szót és m in d en p a ra m é te rt eltávolít a v erem b ő l, és (2) a v isszatérő é rté k e t egy egyszerű Jav a-k ó d részletet látunk. H a b etáp lálju k egy Jav a-fo rd ító b a, a fo rd í­
a verem te te jé re teszi, ah o l k o rá b b a n OBJREF volt. A régi állap o t visszaállításához tó valószínűleg a 4.14. (b) áb rá n lá th a tó H V M assem bly nyelvű p ro g ra m o t készíti
az IRETURN-nek k é p e sn e k kell lenni a PC és LV m u ta tó k a t a régi é rté k ü k re visszaál­ el. A z assem bly nyelvű p ro g ram bal o ld alán lévő sorszám ok 1-től 15-ig nem részei
lítani. E zt úgy h ajtja végre, hogy ho zzáfér a kap csoló m u ta tó h o z (ez az a szó, a h o ­ a fo rd ító k im en etén ek . U gyancsak nem részei a m egjegyzések (m elyek //-rel kez­
va az aktuális LV m u ta t). N e felejtsük el, hogy ide, ahol ere d e tile g OBJREF volt, az d ő d n ek ). A z ért v an n ak o tt, hogy segítsen ek m egm agyarázni az áb rát. A Jav a as­
INVOKEVIRTUAL u tasítás e ltá ro lta a régi PC-t ta rtalm a z ó cím et. E zt a szót és a fe le t­ sem b ler ezu tán az assem bly nyelvű p ro g ra m o t lefordítja bináris p ro g ram m á, am e-
274 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE
4.3. P É L D A A m e g v a l ó s í t á s r a 275

lyet a 4.14. (c) áb rá n lá th a tu n k . (V alójában a Jav a-fo rd ító saját asseniblyt csinál, és a v erem b en , és ez a j k összeget tartalm azza. H a a felső szót kivesszük a v erem ­
közvetlenül készíti el a b in áris p ro g ra m o t.) E n n é l a p é ld án á l feltételezzü k , hogy i ből, és e ltáro lju k t-be, akkor a verem üres lesz, ahogy az 4 felett látszik.
az ' ) a 2. és k a 3. lokális változó. A z 5. u tasítás (ILOAD) indítja az If u tasítást azzal, hogy beteszi i-X a v erem b e (5-
b en ). E z u tá n jön a 3 kon stan s ( 6-ban). A z összehasonlítás u tán a verem ism ét üres
ILOADJ //1= j + k 0x15 0x02
I =j + k; (7). A 8-as u tasítás indítja a Jav a-p ro g ram rész else ágát. A z else rész a 12-es u ta s í­
if(i = 3) 2 ILOAD k 0x15 0x03
tásig folytatódik, o tt átu g rik a then rész felett, és az L 2 cím kénél folytatódik.
k = 0; 3 lADD 0x60
else 4 ISTORE i 0x36 0x01
5 ILOAD i //if(i== 3) 0x15 0x01
6 BIPUSH3 0x10 0x03
7 IFJC M PEQ Ll 0x9f 0x00 OxOd 4.3. Példa a megvalósításra
8 ILOADJ 0x15 0x02
9 BIPUSH 1 0x10 0x01 M in d a m ik ro arc h itek tú rát, m ind a m a k ro a rc h ite k tú rá t p o n to san és részletesen
10 ISUB 0x64 m e g h atáro ztu k , a m eg m arad ó tém a a m egvalósítás. M ás szóval, m ilyen az a p ro g ­
11 ISTORE j 0x36 0x02 ram , am ely a m ik ro arc h itek tú rán fut, és értelm ezi a m a k ro a rc h ite k tú rá t, és h o ­
12 GOTO L2 0xa7 0x00 0x07 gyan m ű k ö d ik? M ielő tt válaszo lh atn án k ezek re a k érd ések re, go n d o san át kell te ­
13 Ll: BIPUSH 0 //k = 0 0x10 0x00
k in te n ü n k azt a jelö lésren d szert, am it a m egvalósítás leírásá ra használni fogunk.
14 ISTORE k 0x36 0x03
15 L2;
(a) (b) (c)
4.3.1. Mikroutasítások és jelölésrendszer
4.14. ábra. (a) Egy Java-programrészlet, (b) A megfelelő Java assembly nyelvű program. E lvben le írh atn án k a v e z é rlő tá ra t bin árisan , 36 bites szavakkal. D e, m int a hagyo­
(c) Az IJVM-program hexadecimális formában
m ányos p ro gram ozási nyelvekben, itt is nagy h aszn a van egy je lö lésren d szer b e ­
v ezetésén ek , am elyik közvetíti a té m a lényegét, am ivel foglalkoznunk kell, és e l­
A le fo rd íto tt k ód m ag á é rt beszél. E lő sz ö r j- i és k -t b etesszü k a v erem b e, össze­ fed jü k a m ellő zh ető részletek et, vagy au to m atik u san jo b b a n kezelhetjük. F ontos,
adjuk azokat, és az ere d m é n y t í-be táro lju k . E z u tá n /-t és a 3 k o n sta n st tesszük a hogy m eg értsü k , a v álaszto tt nyelvet a rra terveztük, hogy leírja a fogalm akat, és
verem be, és összehasonlítjuk. H a egyenlők, elág azást h a jtu n k v égre L 7 -h ez, ahol n e m a rra , hogy m egkönnyítse a h aték o n y tervezést. H a az u tó b b i lenne a célunk,
k -t 0-ra állítjuk. H a n em egyenlők, az ö sszeh aso n lítás h am is e re d m é n y t ad, és az m ásm ilyen jelö lést használnánk, hogy végsőkig fokozzuk a tervezők által igénybe
IF_ICMPEQ-t k övető u ta sítá st h ajtju k végre. H a ez kész, elág a zu n k L 2-höz, ahol a v e h e tő hajlékonyságot. Egy szem pont, a cím ek kiválasztása. M ivel a m em ó ria nem
then és else rész egyesül. logikailag re n d e z e tt, e z ért nincs term ész etes m ód o n m egvalósítandó „következő
A 4.14. (b) áb rá n lévő n V M -p ro g ra m o p era n d u sv e rm e a 4.15. á b rá n láth a tó . u ta sítá s”, ahogy m i m űveletek egy so ro z a tá t m eg h atáro zzu k . E n n ek a vezérlés­
M ielő tt a kó d v é g reh ajtását m eg k ezd en én k , a v erem ü res, am it a 0 feletti vízszin­ szervezésnek a nagyobb e reje a tervezők (vagy az assem bler) azon képességéből
tes vonal jelöl. A z első ILOAD u tá n j van a v erem b en , am it az 1 feletti b e k e re te z e tt j ad ó d ik , hogy h aték o n y an v álaszthatják ki a cím eket. E n n e k m egfelelően egy egy­
jelö l (ez azt jelen ti, hogy az 1. u tasítás v é g reh ajtása m e g tö rté n t). A m áso dik ILOAD szerű szim bolikus nyelv bevezetésével kezdünk, am ely teljesen leír m in d en egyes
u tá n k ét szó van a v erem b en , ahogy 2 fe le tt lá th a tó . A z lADD u tá n csak egy szó van m ű v eletet anélkül, hogy teljesen elm agyaráznánk, hogy az összes cím et hogyan le ­
h e t m eg h atáro zn i.
A je lö lé sü n k egyetlen so rb an p o n to san m eg h atáro z m in d en olyan tevékenysé­
k 3 get, am i egy egyszerű ó raciklusban tö rtén ik . Elvileg h a sz n álh atn án k m agas szintű
1 J 1 j 1 j +k 1 r .i.1 1
1 2 3 4 5 6
nyelvet a m ű veletek leírására, de a ciklusról ciklusra tö rté n ő vezérlés nagyon fo n ­
tos, m e rt leh ető ség et te re m t arra, hogy végreh ajtsu n k ö sszetett m ű v eletek et egy­
idejűleg, és szükséges, hogy k ép esek legyünk elem ezni m in d en egyes ciklust, hogy
m eg értsü k és ellenő rizzük a m ű v eletek et. H a egy gyors, h aték o n y m egvalósítás a
cél (am en n y iben m ás dolgok egyenrangúak, a gyors és h aték o n y m indig jo b b , m int
j E O
8 10 11 12 3 14 15 a lassú és ered m én y telen ), m in d en ciklus szám ít. Egy valódi m egvalósításban sok
finom trü k k rejtve m arad a p ro g ram b an , hom ályos so rre n d e k e t vagy m ű v eletek et
4.15. á b ra.l/e em a 4.14. (b) ábra egyes utasításai után használ, hogy m eg tak arítso n egyetlen ciklust. N agy győzelem egy ciklus m egta-
276 4. A M IK R O A R C H IT E K T Ú R A S Z IN T JE 4.3. P É L D A A M EG V A LÓ SÍT Á SR A 277

k arítása : egy négyciklusos u tasítás, am ely 2 ciklussal c sö k k en th ető , k étsz e r olyan lyike, m indegyik az A L U k im en etén ek lehetséges célja a C sínen. E z a fo rm a m eg­
gyorsan fut. É s ez a gyorsítás m indig érvényesül, am ik o r az u ta sítá st végrehajtjuk. tévesztő, m e rt sok látszólag értelm es u tasítás illegális. Például:
Egy lehetséges m egközelítés, hogy m in d en egyes ó racik lu sb a n egyszerűen felso ­
roljuk azo k at a je le k e t, am ely ek et aktivizálni kell. Tegyük fel, hogy egy ciklus a la tt MDR = SP-i-MDR
szeretn én k növelni az SP é rté k é t. K ezd em ényezni a k a ru n k egy olvasásm űveletet
is, és azt akarjuk, hogy a követk ező u tasítás az legyen, am elyik a v e z érlő tá r 122-es teljesen elfo g ad h ató n ak látszik, de nincs m ó d arra, hogy egy ciklus a latt v ég re­
helyén találh ató . írh a tju k , hogy: h ajtsu k a 4.6. áb ra a d atú tján . E z a m egszorítás azért van, m e rt egy összeadás (m ás,
m in t az 1-gyel való növelés vagy csökkentés!) egyik o p e ra n d u sá n a k H-nak kell le n ­
ReadRegister = SP, ALU = INC, WSP, Read, NEXT_ADDRESS = 122 nie. H aso n ló an ,

ahol WSP azt jelen ti, hogy „írjunk az SP reg isz te rb e .” E z a jelö lés teljes, de n eh éz H = H-MDR
m eg érten i. H ely e tte vegyíteni fogjuk a m ű v eletek et te rm é sz ete sen és ö sztö n ö sen ,
hogy m egragadju k az ö sszh atását an n ak , am i tö rtén ik : h asznos le h e tn e, de szintén le h etetlen , m e rt a k ivonandó (a kivont érté k ) egyetlen
leh etség es fo rrása a H regiszter. A z assem b ler képes visszautasítani azokat az u ta ­
SP = SP + 1;rd sításo k at, am elyek érvényesnek látszanak, d e valójában illegálisak.
K iterjesztjük a jelö lésren d szert úgy, hogy m egen g ed jü n k többszörös érté k a d á st
N evezzük a m agas szintű M ikro assem bly nyelvünket „MAL”-nak (fran ciáu l „ b e ­ tö b b egyenlőségjel használatával. P éldául, 1-et ad ju n k SP-hez, és táro lju k vissza
te g ,” am ivé válsz, h a túl sok k ó d o t kell ezen írn o d ). A MAL úgy van kialakítva, hogy SP-be, és táro lju k MDR-be is. E z t a k övetkező m ó d o n írh atju k fel:
tü krözze a m ik ro a rc h ite k tú ra jelleg zetesség eit. M in d en egyes ciklus a la tt b á rm e ­
lyik regiszter írh a tó , de jellem ző en csak egy. C sak egy reg iszte r k e rü lh e t az A L U SP = MDR = SP+1
B o ldalára. A z A o ld alo n a választék -1-1, 0, -1 és a H reg iszter. így h aszn álh atu n k
egy egyszerű é rté k a d ó u tasítást, m in t a Jav áb an , hogy jelezzü k a v é g re h ajtan d ó A n n a k jelzésére, hogy 4 bájto s ad atszavakat olvas és ír a m em ória, csak egy rd-t
m űveletet. P éldáu l, átm áso ln i v alam it SP-ből MDR-be, m o n d h atju k , hogy: és wr-t fo gunk kiten n i a m ik ro u tasításb an . Egy b ájt b e tö lté sé t az 1 bájto s p o rto n
k eresztü l a fetch jelzi. É rté k a d á so k és m em ó riam ű v eletek ugyanazon cikluson b e ­
MDR = SP lül elő fo rd u lh a tn ak . E z t azzal jelezzük, hogy ugyanabba a so rb a írjuk azokat.
A zűrzavar elk erü lése é rd ek éb en em lékezzünk a rra a tén yre, hogy a M ic-1 k é t­
H ogy jelezzük az A L U tevékenységeinek h a szn álatát, ne csak a B sín á tk ü ld é ­ fé le k é p p e n é rh eti el a m em ó riát. 4 bájto s adatszavak olvasására és írására a MAR/
sét, írh atju k p éld áu l, hogy: MDR-t h asználjuk, és a m ik ro u tasításb an rd-vel, illetve wr-rel jelöljük. A z u tasítás­
folyam ból egybájtos m űveleti kódok olvasására a PC/MBR-t használjuk, és a m ik ro ­
MDR = H + SP u tasítá sb a n fetch-csel jelöljük. A m em ó riam ű v eletek m in d k ét fajtája egyidejűleg
fo ly am atb an lehet.
am elyik h ozzáad ja a H reg iszter ta rta lm á t SP-hez, és beírja az ere d m é n y t az MDR- A z o n b an ugyanaz a reg iszter nem fo g ad h at é rté k e t a m em ó riáb ó l és az ad atú t-
be. A -t- m űvelet k o m m u tatív (am i azt je le n ti, hogy az o p e ran d u so k so rren d je nem ról u g yanabban a ciklusban. T ekintsük a következő kódot:
szám ít), te h á t a fen ti u ta sítá st írh atju k a k ö v etk ez ő k ép p is:
MAR = SP; rd
MDR = SP + H MDR = H

és ugyanazt a 36 b ites m ik ro u ta sítá st hozza létre, a n n a k ellen ére, hogy szigorúan A z első m ik ro u tasítás h a tása az, hogy á ta d egy é rté k e t a m em óriából az MDR-be
m eg m o n d tu k , hogy H-nak b al o ldali A L U o p e ra n d u sn a k kell lennie. a m ásodik m ik ro u tasítás végén. A zo n b an a m ásodik m ik ro u tasítás ugyanakkor
Ü gyelnünk kell arra, hogy csak m eg e n g e d e tt m ű v ele te k et h asználjunk. A leg ­ szintén b ete sz egy é rté k e t az MDR-be. E z a két érté k a d á s összeütközésben van, és
fo n to sab b m e g en g e d e tt m ű v eletek et a 4.16. á b ra m u ta tja , ah o l SOURCE leh et az nincs m egengedve, m ert az ered m én y e definiálatlan.
MDR, PC, MBR, MBRU, SP, LV, CPP, T05 vagy OPC bárm elyik e (MBRU az MBR előjel N e felejtsük el, hogy m in d en egyes m ik ro u tasításn ak fé lre é rth e te tle n ü l s z o lg á l­
nélküli v álto zatá t je len ti). E z en reg iszte rek m indegyike az A L U fo rrása le h e t a B ta tn ia kell a következő v ég reh ajtan d ó m ik ro u tasítás cím ét. A zo n b an r e n d s z e r e s e n
sínen. H aso n ló an a DEST le h e t a MAR, MDR, PC, SP, LV, CPP,TOS, OPC vagy H b á rm e ­ elő fo rd u l, hogy egy m ik ro u tasításra csak egyetlen m ásik m ik ro u tasítás utal, neve­
zete sen az, am elyik a közvetlenül felette lévő sorban van. H ogy m e g k ö n n y í t s ü k a
278 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.3. P É L D A A m e g v a l ó s í t á s r a 279

DEST = H függnek. N é h a szükséges m egvizsgálni egy regisztert, hogy lássuk p éldául, hogy
DEST = SOURCE nulla-e. A z egyik m ódja az leh et ennek, hogy átfu tta tju k az A L U -n és visszatárol­
DEST = H ju k saját m agára. A zt írni, hogy:
DEST = SOURCE
DEST=H + SOURCE TOS=TOS
DEST = H + S0URCE+1
DEST=H + 1 fu rcsán ak tű n h e t, b á r m egcsinálja a fe la d a to t (beállítja a Z flip-flopot TOS alapján).
DEST = SOURCE+ 1 A zo n b an , hogy a m ik ro p ro g ram o k at b arátság o sab b kinézetűvé tegyük, k iterjeszt­
DEST = SOURCE-H jü k a MAL-t, hozzáveszünk k ét új k ép zeletb eli regisztert, N-t és Z-t, m elyeknek é r­
DEST = S0URCE-1 té k e t ad h a tu n k . Például:
DEST = -H
Z=TOS
DEST=H ANDSOURCE
DEST^HORSOURCE
átk ü ldi TOS-t az A L U -n, és b eállítja a Z (és N) flip-flopokat, de n em táro l egyik
DEST = 0
reg iszterb e se. Z vagy N célként való h aszn álata valójában azt jelen ti, hogy m eg ­
m o n d ja a m ik ro assem b lern ek , hogy a 4.5. á b ra C m ező jén ek összes b itjét állítsa be
DEST = -1
0-ra. A z a d a tú t vég reh ajt egy közönséges ciklust m in d en szabályos m ű v eletet m eg ­
4.16. ábra. f\z összes megengedett művelet. A fenti utasítások bármelyike kiterjeszthető engedve, de egyik reg iszterb e se ír. M egjegyezzük, hogy nem szám ít, hogy a cél N
„ « 8" hozzáadásával, hogy az eredményt 1bájttal balra léptessük. Például gyakori
vagy Z; a m ik ro assem b ler által elő állíto tt m ik ro u tasítás ugyanaz. A p ro g ram o zó ­
művelet H = MBR « 8
k at, akik szándékosan „ro sszat” választanak, kényszeríteni kellene, hogy b ü n te té ­
sül 4,77 M hz-es e re d e ti IB M PC -n dolgozzanak egy hétig.
m ik ro p ro g ram o zó m u n k áját, a m ik ro assem b ler m in d en m ik ro u tasításh o z te rm é ­ A szintaxis, am elyik m eg m o n d ja a m ik ro assem b lern ek , hogy állítsa be a JAMZ
szetszerűleg m eg h a tá ro z egy cím et (n em felté tle n ü l a so ro n k ö v etk ező t a v ezérlő ­ bitet:
tá rb a n ), és kitölti a NEXT_ADDRESS m ezőt, vagyis azok a m ik ro u tasításo k , am elye­
k et egym ásra következő so ro k b a írtu n k , egym ást k ö v ető en lesznek végrehajtva. if (Z) goto L1; else goto L2
A zo n b an n é h a a m ik ro p ro g ram o zó elágazni a k a r fe lté tle n ü l vagy fe lté tele s m ó ­
don. A feltétlen elágazás jelö lé se könnyű: M ivel a h a rd v er m egköveteli, hogy ez a k é t cím azonos legyen az alsó nyolc b itjé ­
ben , a m ik ro assem b ler felad ata, hogy kiosszon nekik ilyen cím eket. M ásrészről,
goto label mivel L 2 b á rh o l leh et a v ezérlő tár alsó 256 szavában, a m ik ro assem b lern ek nagy
szabadsága van a m egfelelő p á r m egtalálására.
és bárm ely m ik ro u tasítás ta rta lm a z h a tja , am elyik h a tá ro z o tta n m egnevezi a köve­ T erm észetesen, ez a k ét u tasítás ö sszekapcsolódhat, például:
tő jét. P éldául, a legtöbb m ik ro u tasítás-so ro zat visszatéréssel végződik a főciklus
első u tasítására, így m in d en ilyen so ro zatb an jellem ző en az u to lsó u tasítás ez: Z = TOS; if (Z) goto L1; else goto L2

goto Mai ni E n n e k az u tasításn ak a h a tása az, hogy a M A L előállít egy olyan m ikroutasítást,
am elyben a TOS á tfu t az A L U -n (de nem táro ló d ik sehova), így az érté k e beállítja
M egjegyezzük, hogy egy goto-t ta rta lm az ó m ik ro u tasítás a la tt az a d a tú t a k ö zö n ­ a Z b itet. Kicsivel azután, hogy Z fe ltö ltő d ö tt az A L U feltételb itjéb ő l, egy O R m ű ­
séges m űveletek szám ára egészen végig e lé rh ető . V égül is m in d en egyes m ik ro ­ velettel b ek erü l az MPC legm agasabb b itjére, hogy kialakítsa azt a cím et, ah o n n an
utasítás tartalm a z egy NEXT_ADDRESS m ezőt. M indössze an n y it csinál a goto, hogy a k ö vetkező m ik ro u tasítás b etö ltő d ik , am i vagy L 2 vagy L 1 (m elynek p o n to san
utasítja a m ikroassem b lert, hogy tegyen egy m e g h a tá ro z o tt é rté k e t a követk ező 256-tal kell nagyobbn ak lennie, m int L 2 ). A z MPC stabil lesz, és kész arra, hogy a
sorban lévő m ik ro u tasítás cím e helyett. E lvben m in d en so rn ak k ellen e len n ie egy k övetk ező m ik ro u tasítás b etö lté sé h e z használjuk.
goto u tasításán ak , csu p án a m ik ro p ro g ram o zó k k én y elm ét szolgálja, hogy am ikor V égül szükségünk van jelö lésre a JMPC bit h asználatához. A z egyetlen, am it
a célcím a következő sor, a k k o r ez elhagyható. h asználni fogunk:
F eltételes elágazások szám ára egy m ásik je lö lésre van szükségünk. N e felejtsük
el, hogy a JAMN és JAMZ az N és Z b itek e t használja, m elyek az A L U k im e n e té tő l goto (MBR OR value)
280 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE
4.3. P É L D A A m e g v a l ó s í t á s r a 281

E z a szintaxis azt m o n d ja a m ik ro assem b lern ek , hogy a NEXT_ADDRESS szám ára sait, je len e setb en IJV M -u tasításo k at. A főciklus a Main!-gyei cím kézett sorban
használja a valiie-t, és állítsa be a JMPC b ite t úgy, hogy az MBR O R m ű v elettel k e ­ k ezdődik. M indig úgy indul, hogy a PC egy m űveleti k ó d o t tartalm azó m e m ó ria ­
rüljön MPC-be, NEXT_ADRESS-szel együtt. H a a value 0, am i a gyakori, e leg e n d ő é p ­ hely cím ét tartalm azza, továbbá ez a m űveleti kó d m á r be van töltve az MBR-be.
p en csak annyit írni, hogy: M egjegyezzük, hogy ebbe b e le é rtjü k azt is, hogy go n d o sk o d n u n k kell arról, hogy
am ik o r visszakerülünk erre a helyre, a PC úgy legyen frissítve, hogy a következő
goto (MBR) é rte lm e z e n d ő m űveleti k ó d ra m utasson, és m aga a m űveleti k ód m ár be legyen
töltve az MBR-be.
M egjegyezzük, hogy csak az MBR alsó 8b itjé t vezetjük az MPC-be (lásd 4.6. áb ra), E z a k ezd ő u tasításso ro za t m in den utasítás elején v ég rehajtódik, vagyis nagyon
így az előjel-kiterjesztés tém ája (vagyis az MBR vagy M BRU) itt n em m erü l fel. A zt is fo n to s, hogy a leh ető legrövidebb legyen. A M ic-1 h ard v erén ek és szoftverének
m egjegyezzük, hogy csak az az MBR é rté k h aszn álh ató , am i az aktuális ciklus végén nagyon go n d os tervezése által sikerült a főciklust egyetlen m ik ro u tasításra csök­
e lérh ető . Egy eb b en a m ik ro u ta sítá sb a n k e z d ő d ö tt b e tö lté s túl későn tö rté n ik a h ­ k en ten i. A m in t elindul a főciklus, m in d en alkalom m al vég reh ajtó d ik ez a m ik ro ­
hoz, hogy a követk ező m ik ro u tasítás v álasztására hatással legyen. u tasítás, a v ég reh ajtan d ó H V M m űveleti k ód m ár MBR-ben van. A m ik ro u tasítás
elágazik az IJV M -u tasítást értelm ező m ikrokódhoz, és kezdem ényezi a m űveleti
k ó d o t k ö v ető b ájt b e tö lté sé t is, am elyik vagy egy o p eran d u sb ájt, vagy a következő
m űveleti kód lehet.
4.3.2. IJVM megvalósítása Mic-1 felhasználásával
M ost fe ltárh atju k a valódi o k át annak, hogy m in d en m ik ro u tasítás h a tá ro z o t­
V égre elértü n k ah h o z a ponthoz, am ikor m inden d arab o t összeilleszthetünk. A ta n m egnevezi a követőjét ahelyett, hogy a v ezérlő tárb an egym ást követő u ta sítá ­
4.17. áb ra egy m ikroprogram , am elyik M ic -l-e n fut, és IJV M -et értelm ezi. E z egy sok h a jtó d n á n a k végre. M inden m űveleti kóddal m egegyező v ezérlő tárcím et fenn
m eglepően rövid p ro g ram - csak 112 m ikroutasítás. M inden m ik routasításhoz h á ­ kell ta rta n i a m egfelelő u tasításértelm ező első szava szám ára. így a 4.11. ábrából
rom oszlop van m egadva: a szim bolikus név, a hozzá tarto zó m ikrokód és a m eg­ látju k , hogy az a kód, am elyik a POP-ot értelm ezi 0x57-nél kezdődik, és az a kód,
jegyzés. M egjegyezzük, hogy az egym ást követő m ikro u tasításo k nem feltétlenül am elyik a DUP-ot értelm ezi 0x59-nél kezdődik. (A z, hogy hogyan tu d ja a M A L a
egym ást követő cím eken helyezkednek el a vezérlő tárb an , ahogy e rre m á r utaltunk. POP-ot 0x57-re ten n i, egyike a világegyetem rejtélyeinek - felteh ető leg létezik v a­
M o stan ra a 4.1. á b ra legtöbb reg isztere szám ára a nevek kiválasztása nyilván­ lah o l egy leírás, am ely elm eséli.)
valóvá vált: CPP, LV és SP a rra szolgálnak, hogy m u ta tó k a t tarta lm a z n a k re n d re a Sajnos, a POP é rtelm ezéséh ez h áro m m ik ro u tasítás szükséges, így ha egym ást
kon stan s m ezőre, lokális v álto zó k ra és a v erem te te jé re , m íg a PC az u ta sítá sfo ­ k ö v ető szavakban helyeznénk el, összeütközésbe kerü ln e a DUP kezdetével. Mivel
lyam kö v etk ező k én t b e tö lte n d ő b á jtjá n a k cím ét tartalm azza. A z MBR egy 1 bájtos így az összes m űveleti k ó dhoz ta rto z ó vezérlőtárcím ténylegesen foglalt, m inden
regiszter, am elyik az utasításfolyam b ájtjait egym ást k ö v ető en tartalm azza, a h o ­ egyes so ro zatb an az elsőn kívüli m ik ro u tasításo k n ak a foglalt cím ek közötti lyu­
gyan azok a m em ó riáb ó l jö n n e k és érte lm e z ésre k erü ln ek . A TOS és az OPC k ü lö n ­ k ak b a kell k erülniük. E z é rt a sok id e-o d a ugrálás, így ha külön m ikroelágazások-
leges regiszterek. H a sz n á la tu k a t az aláb b iak b an írjuk le. kal (olyan m ikroutasítás, am elyik elágazik) kellene néh án y lyukról újabb lyukra
B izonyos id ő n k én t e re g iszterek m indegyike g a ra n tá lta n egy bizonyos é rté k et u g rani, az nagyon p azarló lenne.
tartalm az, de ideiglenes re g iszte rk én t h aszn álh ató k , h a szükséges. M in d en egyes A h h o z, hogy lássuk, az értelm ező hogyan dolgozik, tegyük fel például, hogy az
utasítás elején és végén TOS tarta lm a z za a n n a k a m em ó riah ely n ek az é rté k é t, MBR a 0x60 é rté k e t tartalm azza, vagyis az lADD m űveleti k ó d ját (lásd 4.11. ábra).
m elyre az SP m u tat, vagyis a v erem legfelső szavát. E z az é rté k felesleges, mivel A z egy m ik ro u tasításo s főciklusban h áro m dolgot h ajtu n k végre:
m indig kiolvasható a m em ó riáb ó l, de reg iszterb en tartv a gyakran m em ó ria h iv at­
k ozást ta k a rítu n k m eg. N éh án y olyan u tasítás szám ára, am ely a TOS-t k a rb a n ta rt­ 1. N öveljük a PC-t, ezzel elérjük, hogy a m űveleti k ó d o t követő első bájt cím ét ta r ­
ja, ez többlet m em ó ria m ű v ele te t je le n t. Ilyen p éld á u l a POP u tasítás, am elyik el­ talm azza.
d o b ja a legfelső szót, és e n n e k k ö v etk ez téb en be kell tö lten ie az új v erem te te jén 2. K ezd em ényezzük a következő b ájt b e tö lté sé t MBR-be. E z a b ájt m indig szüksé­
lévő szót a m em ó riáb ó l a TOS-ba. ges elő b b vagy u tób b, vagy m int egy o p e ran d u s a m ostani IJV M -u tasítás szám á­
A z OPC regiszte r ideiglenes (azaz firkáló) regiszter. N incs elő re m e g h a tá ro z o tt ra, vagy m int a következő m űveleti k ód (m int az lADD m űvelet esetéb en , am ely­
használata. H aszn álju k p éld áu l a n n a k a cím nek a tá ro lá sá ra , ah o l az elág azó u ta ­ n ek nincs o p eran d u sb ájtja).
sítás m űveleti kódja van, m iközben a PC-t m egnöveljük, hogy a p a ra m é te re k e t el­ 3. V é g re h a jtu n k egy tö bbirányú elágazást arra a cím re, am elyet a Malnl k ezd e­
érjük. H asználjuk ideiglenes reg iszte rk én t is az O V M feltéte le s elágazás u ta s ítá ­ té n az MBR tartalm az. E z a cím m egegyezik a jelen leg végrehajtás alatt lévő
sainál. m űv eleti kó d n u m erik u s értekével. E zt m ég egy előző m ik ro u tasítás te tte ide.
M int m inden érte lm e ző n e k , a 4.17. á b ra m ik ro p ro g ra m ján a k is van egy főcik­ G o n d o san figyeljük m eg, hogy az az érték , am i ebb en a m ik ro u tasításb an kerül
lusa, am elyik b etö lti, d ek ó d o lja és v ég reh ajtja az é rte lm e z e n d ő p ro g ra m u ta s ítá ­ b e tö lté sre , nem játszik sem m ilyen szerep et ebben a többirányú elágazásban.
282 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE
4.3. P É L D A A m e g v a l ó s í t á s r a 283

A következő b ájt b e tö lté se itt m á r e lk ez d ő d ö tt, így a h a rm a d ik m ik ro u tasítás kez­ M űveletek Megjegyzések
Címke
d e té re ren d elk ezé sre fog állni. A k k o r vagy szükség lesz rá, vagy nem , de végül is Mami PC = PC+ l;fetch :goto (MBR) MBR-ben a müveieti kód; veszi a következő bájtot, elágazás.

szükség lesz rá, vagyis a b e tö lté s m o stan i e lin d ítása sem m i e se tre sem tu d bajt nopi goto Mainl Semmit sem csinál.

iaddl MAR = SP = S P - 1 ;rd Beolvassa a verem teteje aiatti szót.


okozni.
iadd2 H=TOS H = verem teteje
H a az MBR-ben lévő b á jt tö rté n e te se n csupa 0, ez a NOP m űveleti kódja, a k ö v et­
iadd3 MDR = TOS = MDR + H; wr; goto Main 1 Összeadja a két felső szót; beírja a verem tetejére.
kező m ik ro u tasítás a nopl-gyel cím k ézett 0. helyről b e tö ltö tt lesz. M ivel az u tasítás isubl MAR = SP = 5 P-1 ;rd Beolvassa a verem teteje alatti szót.

nem csinál sem m it, ez egyszerűen egy visszaugrás a főciklus elejére, ahol a so ro zat Isub2 H=TOS H = verem teteje

ism étlődik, de m á r az MBR-be b e tö ltö tt új m űveleti k óddal. isub3 MDR = TOS = MDR - H; wr; goto Maim Végrehajtja a kivonást; beírja a verem tetejére.

iandl MAR = SP = S P - l; r d Beolvassa a verem teteje alatti szót.


Ism ét hangsúlyozzuk, hogy a m ik ro u tasításo k a 4.17. á b rá b a n n em e b b en a so r­
iand2 H=TOS H = verem teteje
re n d b e n vannak a m e m ó riáb an , és hogy a Mainl n em a v e z é rlő tá r 0. cím én van iand3 MDR = TOS = MDR AND H; wr; goto Mainl Végrehajtja AND-et; beírja a verem új tetejére.
(m ert n o p l-n ek kell a 0. cím en len n ie). A m ik ro assem b ler felad ata, hogy m in d en iorl MAR = SP = S P - l; r d Beolvassa a verem teteje alatti szót.

m ik ro u tasítást v alahova eltegyen, és rövid so ro zato k k á k apcsolja össze a NEXT_ ior2 H = TOS H = verem teteje

ior3 MDR =TOS = MDR GR H; wr; goto M ainl Végrehajtja OR-t; beírja a verem új tetejére.
ADDRESS m ezőt használva. M in d en so ro zat azon a cím en k ezdődik, am elyik m eg ­
dupl MAR = SP = S P + I Növeli SP-t és MAR-ba másolja.
egyezik az érte lm e z e n d ő IJV M m űveleti k ó d n u m erik u s érték év el (p éld áu l a POP
dup2 MDR = TOS; wr; goto Mainl Beírja az új verem szót.
a 0x57-en kezdőd ik ), de a so ro zat m a ra d é k része a v e zé rlő tá rb a n b á rh o l leh et, és popl MAR = SP = S P ~ l; r d Beolvassa a verem teteje alatti szót.

nem szükségszerűen egym ást k ö v ető cím eken. pop2 Várja, hogy az új TOS bekerüljön a memóriából.

M ost tek in tsü k az IJV M lADD u ta sítá sát. A főciklus az laddl -gyei cím k ézett mik- pop3 TOS = MDR; goto Mainl Az új szót a TOS-ba másolja.

swapl MAR = S P - l; r d Legyen MAR = SP - 1; beolvassa a verem 2. szavát.


ro u ta sítá sra ágazik el. E z az u tasítás in d ítja az lADD e se té n vég zen d ő m u nk ál:
swap2 MAR = SP Legyen MAR a verem teteje.

swapB H = M DR;wr TOS-t H-ba menti; a 2, szót a verem tetejére írja.


1. A TOS m á r ren d e lk e zé sre áll, de a v erem te te je a latti szót m ég be kell tö lte n i a swap4 MDR = TOS A régi TOS-t MDR-be másolja.

m em óriából. swapS MAR = S P - l ; w r Legyen MAR SP -1; 2. szóként a verembe írja.

swap6 TOS = H; goto M ainl Frissíti a TOS-t.


2. A TOS-t hozzá kell ad n i a m em ó riáb ó l b e tö ltö tt, a v erem te te je alatti szóhoz.
bipushi SP = MAR = SP+ 1 MBR = az a bájt, amit a verembe kell tenni
3. A z ered m én y t, am ely et a v erem b e fogunk ten n i, vissza kell tá ro ln i a m e m ó riá ­
bipush2 PC = PC + l;fetch Novell PC-t, betölti a következő műveleti kódot.
ba, és egyben táro ln i kell a TOS reg iszte rb e is. bipush3 MDR = TOS = MBR; wr; goto Mainl A bájt előjel kiterjesztése, és betesszük a verembe.

iloadl H = LV MBR tartalmazza az indexet; LV-t H-ba másoljuk.

A hhoz, hogy a m em ó riáb ó l b etö ltsü k az o p e ran d u st, szükséges, hogy a v e re m ­ iload2 MAR = MBRU + H;rd MAR = a betöltendő lokális változó címe

iloadS MAR = SP = SP + 1 SP a verem új tetejére mutat; az írás előkészítése.


m u ta tó é rté k é t csökkentsük, és b eírju k a MAR-ba. M egjegyezzük, hogy alk alm asin t
Hoad4 PC = PC+ l;felch ;w r PC növelése; következő műveleti kód betöltése; verem tetejének íiása.
ez a cím ugyanaz, m int am it a követk ező írásn ál használni fogunk. Továbbá, m i­ iIoadS TOS = MDR; goto Mainl Frissíti a TOS-t,
vel ez a hely a verem új te te je lesz, az SP-nek is ezt az é rté k e t kell ad n u n k . E n n e k istorel H = LV MBR tartalmazza az indexet; LV-t H-ba másoljuk.

követk eztéb en egyetlenegy m űvelet m eg tu d ja h a tá ro z n i az SP és MAR új é rté k é t, istore2 MAR = MBRU + H MAR = a tárolandó lokális változó címe

istore3 MDR = TOS;wr TOS másolása MDR-be; szó írása.


csökkenti az SP-t, és b eírja m in d k ét regiszterbe.
istore4 SP = MAR = S P - l; r d Beolvassa a verem teteje alatti szót.
E zek a dolgok b e fejező d n ek az első ciklusban, iaddl-ben, és az olvasásm űvelet PC = PC + l;fetch Növeli PC-t, betölti a következő műveleti kódot.
istoreS
elkezdődik. Ezenkívül az MPC é rté k e t k ap az iaddi NEXT^ADDRESS m ezőjéből, ez istoreö TOS = MDR; goto Mainl Frissíti a TOS-t.

az iadd 2 cím e, bárhol is legyen az. E zu tán az iadd 2 kiolvasódik a v ezérlő tárb ó l. A PC = PC + l;fetch; Betölti az operandusbájtöt vagy a müveieti kódot,
widel
goto (MBR OR 0x100) többirányú elágazás a magas bit beállításával.
m ásodik ciklusban, am íg várjuk, hogy az o p e ra n d u s beo lv asó d jo n a m em ó riáb ó l,
w id e jlo a d l P C - P C + l;fetch MBR tartalmazza az 1, indexbájtot; a 2. betöltése.
átm áso lju k a verem legfelső szavát a TOS-ból a H-ba, ahol m ajd ren d elk e z é sre áll H = az első mdexbájt 8 bittel balra léptetve
wide_iload2 H =M BR U «8
az összeadás szám ára, am ik o r az olvasás befejeződik. wide_iload3 H = M BR U O R H H = a lokális változó 16 bites indexe

A harm ad ik ciklus (iadd3) elején az MDR tarta lm a z z a a m em ó riáb ó l b e tö ltö tt wíde íload4 MAR = IV + H; rd; goto iioad3 MAR = a betöltendő lokális változó címe

PC = P C + l;fe tch MBR tartalmazza az 1. indexbájtot; a 2. betöltése.


összeadandót. E b b en a ciklusban ez a H tarta lm á h o z h o zzáad ó d ik , és az ered m én y wide_istorel

wide_istore2 H = MBRU « 8 H = az elsó index bájt 8 bittel balra léptetve


visszatárolödik az MDR-be és egyben a TOS-ba is. Egy írásm ű v elet szintén elk ezd ő ­
wide_istore3 H = M BR U O R H H = a lokális változó 16 bites indexe
dik, am ely visszatárolja az új v erem te te je szót a m em ó riáb a. E b b en a ciklusban wide_istore4 MAR = IV + H; goto istore3 MAR - a betöltendő lokális változó címe
a goto h a tása az, hogy Mainl cím ét az MPC-be teszi, ezzel visszajuttat b e n n ü n k e t a idc_wl PC = PC + l;fetch MBR tartalmazza az 1. indexbájtot; a 2. betöltése.

következő utasítás v é g reh ajtásán ak k e z d ő p o n tjára. idc_w2 H =M BRU «8 H = 1. indexbájt« 8

H a a soron követk ező IJV M m űveleti kód, am it m o st az MBR tartalm az, 0x64
(ISUB), akkor szinte p o n to sa n ugyanez az esem én y so r tö rté n ik m eg ism ét. Mainl
4.17. ábra. A M ic-1 mikroprogramja
284 4. A M IK R O A R C H IT E K T Ú R A S Z IN T JE 4 .3 . P É L D A A m e g v a l ó s í t á s r a 285

Címke M űveletek Megjegyzések Címke M űveletek Megjegyzések

idc_w3 H-M BRU O RH H = 16 bites index a konstans mezőre invokevirtual22 LV = TOS LV mutasson a lol<ális mező l<eretre.

idc_w4 MAR = H + CPP;rd;gotoiload3 MAR = a konstans címe a mezőn invokevirtual23 TOS = MDR; goto Mainl TOS = a hivó LV-je

lincl H = LV MBR tartalmazza az indexet: LV-t H-ba másoljuk. ireturnl MAR = SP - L V ;rd SP, MAR visszaállítása a l^apcsoló mutató olvasásához.

Iinc2 MAR = MBRU + H;rd LV + index másolása MAR ba: változó olvasása. ireturn2 Várakozás olvasásra.

iinc3 PC = P C + 1; fetch Konstans betöltése. ireturn3 L V ^ M A R ^ M D R ; rd LV legyen a kapcsoló mutató; kivesszük a régi PC-t.

iinc4 H = MDR Változó másolása H-ba, ireturn4 MAR - LV + 1 MAR beállítása a régi LV olvasására.

Iinc5 PC = P C +1: fetch Következő műveleti kód betöltése. ireturnS PC -M D R ; rd; fetch PC helyreállítása; új műveleti kód beolvasása.

iinc6 MDR = MBR + H; m: goto Mainl Összeg MDR-be tárolása: változó frissítése. ireturnó MAR = SP MAR beállítása TOS írására.

gotol 0PC = PC-1 A műveleti kód címének tárolása. ireturn? LV -M D R LV helyreállítása,

goto2 PC = P C +1; fetch MBR = az eltolás 1. bájtja: a második betöltése ireturnS MDR = TOS; wr; goto Mainl Visszatérési érték eltárolása a verem eredeti tetején.

goto3 H =M B R « 8 Léptetés és az előjeles első bájt H-ba tárolása.

goto4 H ^M BRU O RH H = 16 bites elágazáseltolás 4.17 . ábra. A M ic-1mikroprogramja (folytatás)


gotoS PC = OPC + H; fetch; goto M ainl Az eltolás hozzáadása OPC-hez.
Ifltl MAR = 5P = SP - l;rd Beolvassa a verem teteje alatti szót..

iflt2 O PC -T O S TOS-t ideiglenesen OPC-be menti.


v ég reh ajtása u tán a vezérlés áthelyeződik a 0x64-nél (isu b l) lévő m ikroutasítás-
iflt3 TOS = MDR A verem új tetejét TOS-ba teszi. hoz. E z t a m ik ro u tasítást követi az isub2 és isubS, és azu tán ism ét a Mainl. A z
iflt4 N = OPC; if(N) gotoT; else goto F Elágazás N bit szerint. egyetlen különbség a m ostani és az előző so ro zat között, hogy az isub3-ban H ta r­
ifeql MAR = SP = S P - l; r d Beolvassa a verem teteje alatti szót.
talm a kivonódik az MDR-ből, és nem hozzáadódik.
ifeq2 OPC = TOS TOS-t ideiglenesen OPC-be menti.
A z lAND értelm ezése m ajd n em azonos az lADD-dal és ISUB-bal, kivéve, hogy a
ifeq3 TOS = MDR A verem új tetejét TOS-ba teszi.
ifeq4 Z = OPC: if (Z) goto T; else goto F Elágazás Z bit szennt. v erem te te jé n lévő k é t szón b iten k én ti A N D m űv eletet végzünk ahelyett, hogy
ifjc m p eq l MAR = SP = S P - l; r d Beolvassa a verem teteje alatti szót. ö sszead n án k vagy kivonnánk. Teljesen haso n ló tö rté n ik az lOR-nál.
if_icmpeq2 MAR = SP = SP - 1 Beállítja MAR-t a verem új tetejének olvasásához. H a az IJV M m űveleti kód DUP, POP vagy SWAP, a v erm et m ódosítani kell. A
if_icmpeq3 H = MDR; rd A verem második szavának másolása H-ba.
DUP m űv elet egyszerűen m áso lato t készít a verem te te jé n lévő szóról. M ivel e n ­
ifjcm peq 4 OPC = TOS TOS-t ideiglenesen OPC-be menti.
iLicm peqS TOS - MDR A verem új tetejét TOS-ba teszi.
n ek a szó n ak az érté k e m á r a TOS-ba táro lv a lett, a m űvelet egyszerűen növeli az
if_icmpeq6__________ Z = OPC - H; if (Z) goto T; else goto F Ha a felső 2 szó egyenlő,T-re megy, különben F-re. SP-t, hogy egy új helyre m utasso n , és táro lja a TOS-t erre a helyre. A POP m űvelet
T OPC = P C -1 ;g otogoto2 Ugyanaz, mint gotol; szükséges a célcimhez. m ajd n em ilyen egyszerű, csak csökkenti az SP-t, hogy eldo b h assa a verem te te jé n
F PC = PC+1 Átugorja az első eltolásbájtot.
lévő szót. V iszont a n n ak é rd ek éb en , hogy k a rb a n ta rtsu k a legfelső szót a TOS-ban,
F2 PC = PC + 1; fetch; goto Mainl PC most a kővetkező műveleti kódra mutat.
invokevirtuall PC = P C + 1; fetch
szükséges, hogy beolvassuk az új legfelső szót a m em ó riáb ó l és b eírju k a TOS-ba.
MBR = indexbájt 1; PC növelése; 2. bájt betöltése.
invokevirtual2 H =M BRU «8 Az első bájt léptetése és H-ba tárolása. V égül a SWAP u tasításcserét bonyolít le k ét m em ó riah ely érték ein : a verem tetején
invokevirtual3 H -M BRU O RH H = a metódus mutató eltolása CPP-től lévő k ét szón. E z valam ivel könnyebb azáltal, hogy a TOS m á r tartalm azza a két é r ­
invokevirtual4 M A R - C P P + H;rd A metódus mutatójának kinyerése a konstans mezöböl.
té k közül az egyiket, így ezt nem kell beolvasni a m em óriából. E z t az u tasítást egy
mvokevirtualS 0PC = PC + 1 Visszatérési PC tárolása OPC-be ideiglenesen.
kicsivel k éső bb fogjuk részleteseb b en tárgyalni.
invokevirtualó PC = MDR; fetch PC az új metódusra mutat; paraméterszám betöltése.
mvokevirtual? PC = P C +1; fetch A paraméterszám 2. bájtjának betöltése. A BIPUSH u tasítás egy kicsivel b onyolultabb, m ert a m űveleti k ó d o t egy bájt k ö ­
invokevirtualS H -M BRU «8 Az első bájt léptetése, és H-ba tárolása. veti, ahogy az a 4.18. áb rán látszik. A b á jto t előjeles egészként értelm ezzük. E zt a
invokevirtual9 H-M BRU O RH H = a paraméterek száma b ájto t, am elyiket m á r b e tö ltö ttü n k az MBR-be a M ain l -ben, 32 bitessé kell ten n ü n k
InvokevirtuallO PC = P C + 1; fetch A lokálisok száma első bájtjának betöltése.
elő jel-k iterjesztéssel, és a verem te te jé re kell ten n ü n k . E n n e k k ö v etk eztéb en a so­
invokevirtuall 1 TO S-SP-H TOS = OBJREF cím e-1
invokpvirtuall2 TOS = M A R - T O S +1 TOS - OBJREF címe (új LV)
ro z atn ak ki kell terjesz ten ie az MBR-ben lévő b á jto t 32 bitessé, és be kell m áso l­
invokevirtuall 3 PC = P C + 1; fetch A lokálisok száma második bájtjának betöltése. nia az MDR-be. V égül az SP-t m egnöveljük és bem ásoljuk MAR-ba, lehetővé téve az
invokevirtuall4 H=M BRU «8 Az első bájt léptetése, és H-ba tárolása. o p e ra n d u s k iírását a verem tete jé re . K özben az o p e ra n d u st a TOS-ba is be kell m á ­
invokevirtuall 5 H-M BRU O RH H = lokálisok száma
solni. Vegyük észre, hogy a PC-t növelni kell m ielő tt visszatérünk a főpro g ram b a,
invokevirtuall6 MDR = SP + H + l;w r OBJREF felülírása a kapcsoló mutatóval.
invokevirtuall?
hogy a következő m űveleti kó d ren d elk ezésre álljon M ain l -ben.
MAR = S P - M D R ; Legyen SP, MAR az a hely, ahol a régi PC-t tartjuk.
invokevirtuallS MDR - OPC; wr A régi PC tárolása a lokális változók felett.
invokevirtuall9 M A R-SP-SP + 1 SP arra a helyre mutat, ahol az LV-t tartjuk. BIPUSH
invokevirtual20 MDR - LV, wr BYTE
A légi LV tárolása az eltárolt PC felett. (0x10)
invokevirtual21 PC = P C +1; fetch Az új metódus első műveleti kódjának betöltése.

4.18. ábra. A BIPUSH utasítás alakja


4.17. ábra. A M ic - 7 mikroprogramja (folytatás)
286 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.3. P É L D A A m e g v a l ó s í t á s r a 287

K övetkezőnek tek in tsü k az ILOAD utasítást. A z iLOAD-nak is van egy m űveleti M ind az ILOAD, m ind az ISTORE k o rláto zo ttak abban, hogy a lokális változókból
k ó dot követő bájtja, m in t az a 4.19. (a) áb rán láth a tó , de ez a b ájt egy (előjel n é l­ csak az első 256-ot tu d ják elérni. M íg a legtöbb pro g ram szám ára elegendő lehet
küli) index a Idkális változók m ezőjén an n ak a szónak az azo n o sításáh o z, am elyi­ ez, de term é sz etesen ele n g e d h e te d e n , hogy el tu d ju n k érn i egy változót, bárhol
k et a v erem be kell ten n i. M ivel ez csak egy bájt, csak 2** = 256 szót tu d u n k m eg ­ is legyen a lokális változó m ezőn. Hogy ezt elérjük, az IJV M ugyanazt a m ech a­
k ülö n b ö ztetn i, n ev ezetesen az első 256 szót a lokális v álto zó k m ezőjén. A z ILOAD n izm ust alkalm azza, m int a JV M : egy speciális m űveleti k ó d o t, a WIDE-ot, am it az
m űvelet m egkövetel egy olvasást (hogy m eg k ap ju k a szót) és egy írást (hogy a ILOAD vagy ISTORE m űveleti kód követ. A WIDE k ód prefix b á jtk é n t vagy prefixum ­
verem te te jé re tegyük). A n n ak é rd e k éb e n , hogy m eg h atáro zzu k az olvasáshoz a k én t ism ert. A z ILOAD és az ISTORE definíciója azzal m ódosul, am ik o r ez a so ro zat
cím et, az MBR-ben lévő elto lást hozzá kell ad n i az LV tarta lm á h o z . M ivel m ind az e lő fo rd u l, hogy 16 b ites index követi a m űveleti k ó d o t 8 bites index helyett, ahogy
MBR, m ind az LV csak a B sínen keresztü l é rh e tő el, elő szö r az LV-t m ásoljuk H-ba a 4.19. (b ) áb rán láth ató .
(iioadl-ben), azu tá n az MBR-t adjuk hozzá. A z összeadás ere d m é n y ét a MAR-ba m á ­ A WIDE-ot a szokásos m ó don d ekódoljuk, ez a w ldel-hez való elágazáshoz vezet,
soljuk, és egy olvasást k ezd em én y ezü n k (iload2-ben). am i a WIDE m űveleti k ó d o t kezeli. B ár a kiszélesített m űveleti kó d m ár az MBR-ben
e lé rh e tő , widel b etö lti a m űveleti kód u tán i első b ájto t, m ert a m ik ro p ro g ram lo­
ILOAD WIDE ILOAD INDEX INDEX gikája m indig elvárja, hogy ez o tt legyen. E zu tán egy m ásodik többirányú elágazás
INDEX
(0x15) (OxC4 (0x15) BYTEl BYTE 2 tö rté n ik wide2-ben, ez alkalom m al a WIDE-ot követő b ájto t használva k iindulás­
(a) (b) nak. D e mivel a WIDE ILOAD m ás m ik ro k ó d o t igényel, m int az ILOAD, és a WIDE IS­
TORE m ást, m int az ISTORE stb., a m ásodik többirán)TÍ elágazás nem h asználhatja
4.19. ábra. (a) Az ILOAD az 1bájtos indexszel, (b) WIDE ILOAD 2 bájtos indexszel ugy an azt a m űveleti k ó d o t, m int célcím et, ahogy azt a Mainl teszi.

A z MBR indexk én t való h aszn á la ta alig külö n b ö zik attó l, am it a BIPUSH-nál lá t­ Cím Vezérlőtár
tunk, o tt előjel-k iterjesztést alk alm aztu n k . Egy index e se té b en az e lto lás m indig 0x1 FF
pozitív, így a bájt elto lást előjel n élküli eg észk én t kell értelm ezn ü n k , n em úgy,
A mikroutasítások
m in t BIPUSH-nál, ah o l 8 b ites elő jeles eg észk én t volt értelm ezv e. A z MBR illesztése végrehajtási sorrendje
a B sínre k ö rü lte k in tő e n van m egtervezve, hogy m in d k ét m ű v e lete t leh ető v é te ­
gye. A BIPUSH e se té b e n (elő jeles 8 b ites egész) a m egfelelő m űv elet az elő je l-k ite r­ WIDE
jesztés, vagyis az 1 b ájto s MBR bal szélső b itjét m ásoljuk a B sín felső 24 b itjére. A z ILOAD ILOAD
ILOAD e setéb en (előjel nélk ü li 8 b ite s egész) a m eg felelő m ű v elet a n ullával való 0x115 widejloadl 3
kitöltés. Itt a B sín felső 24 b itjé t egyszerűen k ip ó to lju k nullával. A két m ű v eletet
e lté rő vezérlőjelek k ü lö n b ö z tetik m eg, am elyek m u tatják , hogy m elyik m ű v eletet
kell v ég reh ajtan i (lásd 4.6. áb ra). A m ik ro k ó d b an ezt az MBR jelzi (elő jel-k iterjesz­ 0x100 M a in l

te tt, m int a bipush3-ban) vagy a MBRU (előjel nélküli, m in t iload2-ben).


M íg várjuk, hogy a m e m ó ria az o p e ra n d u st szolgáltassa (iload3-ban), az SP-t n ö ­
veljük, hogy tartalm a zz a azt az é rté k e t, ahova az e re d m é n y t táro lju k , a v erem új widel
0xC4
te tejét. E zt az é rté k e t a MAR-ba is átm áso lju k , hogy előkészítsük az o p e ra n d u s k i­
írását a v erem te te jé re . A PC-t ism ét növelni kell, hogy a k övetkező m ű v eleti k ó d o t
b etö ltsü k (iload4-ben). V égül MDR-t TOS-ba m ásoljuk, hogy tü k rö zzü k a v erem új iloadl
0x15
te te jé t (iload5-ben).
A z ISTORE az ILOAD fo rd íto tt m ű v elete, vagyis egy szót kiveszünk a v erem te te jé ­
ről, és táro lju k a rra a helyre, am it az LV és az u ta sítá sb a n lévő index összege m eg ­ 0x00
h atáro z. U gyanazt a fo rm á t h asználjuk, m in t ILOAD-nál, ahogy a 4.19. (a ) áb rán
látszik, kivéve, hogy a m űveleti k ó d 0x15 helyett 0x36. E z a m űvelet n ém ik ép p k ü ­ 4.20. ábra. kezdeti mikrou fásítás sorozat ILOAD és WIDE ILOAD számára. A címek példák
lönbözik attól, am it v árn án k , m e rt a v erem legfelső szava m á r ism ert (TOS-ban),
te h á t azonnal táro lh atju k . A zo n b an az új v erem -te te je szót be kell tö lten i. így egy E h ely e tt a widel OxlOO-zal és a m űveleti k ó d d al végzett O R m űvelet e re d m é ­
olvasás és egy írás szükséges, de ezek tetsző leg es so rren d b e n v é g re h a jth ató k (ak á r nyét teszi MPC-be. E re d m é n y k én t a WIDE ILOAD értelm ezése 0 x ll5 -ö n kezdődik
p árh u zam o san , ha ez lehetséges). (0x15 h ely ett), a WIDE ISTORE értelm ezése a 0xl36-ön kezdődik (0x36 hely ett) és
így tovább. Ilyen m ó d o n m inden WIDE m űveleti k ód a v ezérlő tárb an egy 256 (vagy­
288 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE
4.3. P É L D A A M EG V A LÓ SÍT Á SR A 289

is 0x100) szóval m ag asab b cím en k ezdődik, m in t a neki m eg felelő közönséges m ű ­ ki, hogy az (előjeles) 16 bites eltolást hozzáadjuk az elágazó u tasítás cím éhez. A z
veleti kód. A z ILOAD és a WIDE ILOAD u tasításo k h o z ta rto z ó m ik ro u tasításo k kezd ő okoz b o n y o d am at, hogy az eltolás a PC azon é rté k é re vonatkozik, am i az utasítás
so ro zata a 4.20. á b rá n láth ató . d e k ó d o lásán ak k ezd etén volt, és nem arra az é rté k re , am i a 2 elto lás bájt b etö ltése
V égre elju tu n k o d a, hogy a WIDE ILOAD (0x115) m egvalósuljon. A közönséges u tá n k ialakult.
ILOAD-tól a kód csak annyiban k ülönbözik, hogy az ind ex et k ét in dexbájt össze- H ogy ezt a részletet világosabbá tegyük, a 4.22. (a) ábrán b em u tatju k a helyzetet
fűzésével kell elkészíteni, egyetlenegy b á jt egyszerű k iterjesztése helyett. A z ösz- a Maim indulásakor. A m űveleti kód m ár az MBR-ben van, de a PC m ég nincs m eg­
szefűzést és az a z u tá n i ö sszead ást lép é se n k é n t kell elvégezni, először az INDEX növelve. A 4.22. (b) áb rán látjuk a helyzetet a gotol indulásakor. M o stan ra a PC m ár
BYTE 1-t 8 b ittel b alra lép tetv e b etesszü k a H-ba. M ivel az index előjel nélküli növelve van, de az első eltolásbájt m ég nem tö ltő d ö tt be MBR-be. Egy m ikroutasítás-
egész, ezért az MBRU haszn álatáv al az MBR nulla k iterjesztésű lesz. M ost az index sal k ésőbb [4.22. (c) ábra] a m űveleti k ódra m u tató régi PC m ár OPC-be került. E z az
m ásodik b ájtját h o zzáad ju k (az összeadás m űv elet m egegyezik az O R m űvelettel, érté k azért szükséges, m ert az IJV M eltolása a GOTO utasításra vonatkozik és nem a
mivel H alacsonyabb b ájtja m ost nulla, ez b iztosítja, hogy n em lesz átvitel a b ájto k PC m ostani érték ére. V alójában ez az oka, hogy az OPC regiszterre szükségünk van.
k ö zö tt), és az e re d m é n y t m egint H-ba táro lju k . In n e n kezdve a m űvelet p o n to san
úgy h a jth a tó végre, m in th a közönséges ILOAD len n e. A z ILOAD végső u ta sítá sa in a k
(iload3 - iioads) m áso lása h ely ett egyszerűen a wide_iload4-ből iload3-ba ágazunk. n +3
M egjegyezzük azo n b an , hogy a PC-t k étszer kell növelni az u tasítás v ég reh ajtása
n +2 OFFSET BYTE 2 OFFSET BYTE 2 OFFSET BYTE 2 OFFSET BYTE 2 OFFSET BYTE 2
alatt, hogy végül a k ö v etk ez ő m űveleti k ó d ra m u tasso n . A z ILOAD m űvelet egyszer
m egnöveli; a WIDE_ILOAD so ro zat szintén m egnöveli egyszer. n +1 OFFSET BYTE 1 OFFSET BYTE 1 OFFSET BYTE 1 OFFSET BYTE 1 OFFSET BYTE 1
H aso n ló helyzet fo rd u l elő a WIDE_ISTORE-nál: az első négy m ik ro u tasítás v ég re­ n GOTO (0xA7) GOTO (OxA7) GOTO (0xA7) GOTO (0xA7) GOTO (OxA7)
h ajtása u tán (wide_lstorel - wide_lstore4), a so ro zat ugyanaz, m in t ISTORE so ro zata
az első két u tasítás u tá n , te h á t a wlde_istore4-ből istore3-ba ágazunk. ígiszterek
K övetkező p é ld án a k tek in tsü k az LDC_W u tasítást. E z a m űveleti kód két d o ­
' PC n n +1 n+1 n +2 n +2
logban különbözik az ILOAD-tól. A z első, hogy 16 bites előjel n élküli elto lá sa van
(m int az ILOAD b ő v íte tt v álto zatán ak ). M ásodszor, a CPP-t indexeljük az LV helyett, OPC n n n
mivel az a felad ata , hogy a k o n stan s m ező rő l olvasson, és n em a lokális változó
i MBR 0xA7 OxA7 OFFSET BYTE 1 OFFSET BYTE 1 OFFSET BYTE 2
m ezőről. (V alójában van egy rövid alak ja az LDC_W-nek (LDC), de m i ezt n em v e t­
tü k be az IJV M -b e, m ivel a hosszú fo rm a m ag áb a n foglalja a rövid fo rm a összes ; H OFFSET 1 « 8
lehetséges v álto zatát, csak 3 b á jto t igényel 2 h elyett.)
A z UNC u tasítás az egyetlen IJV M -u tasítás az ISTORE-on kívül, am elyik m ó d o sí­ (a) (b) (0 (d) (e)
tan i tu d egy lokális v áltozót. E z k é to p e ra n d u sú m űv elet, m indegyik 1 b ájt hosszú­
ságú, m int ahogy a 4.21. á b rán láth ató . 4.22. ábra. A helyzet különböző mikroutasítások indulásakor, (a) M ainl. (b) gotol. (ej goto2.
(d) gotoS. (e) goto4

INC
INDEX CONST A goto2 m ik ro u tasítás elkezdi az eltolás m ásodik b ájtján ak b etö ltését, és a
(0x84)
4.22. (d) áb ráh o z ju tu n k gotoB in dulásakor. A z első eltolás b ájto t b a lra lép tetjü k 8
4.21. ábra. kz UNC utasításnak két különböző operandusmezője van b itte l és b em áso lju k H-ba, és elérk ezü n k goto4-hez és a 4.22. (e) ábrához. M ost a
b a lra lé p te te tt első elto lás b ájt a H-ban van, a m ásodik eltolás b ájt az MBR-ben, az
A z UNC utasítás az INDEX-et a rra használja, hogy m eg h a tá ro z z a az elto lást a lo k á­ alap p ed ig az OPC-ben. E lkészítjük a 16 b ites eltolást a H-ban, m ajd hozzáadjuk ezt
lis változó m ező k ezd etétő l. B eolvassa a válto zó t, m egnöveli CONST-tal, egy olyan az alaphoz, m egkapjuk az új cím et, am it a PC-be teszünk goto5-nél. Ó vatosan m eg­
érték k el, am it az u tasítás tartalm az, és v isszatárolja ugyanoda. M egjegyezzük, jegyezzük, hogy az MBR h elyett az MBRU-t használjuk goto4-ben, m e rt nem akarjuk
hogy ez az u tasítás negatív m ennyiséggel is növ elh et, vagyis a CONST egy 8 bites ! a m áso d ik b ájt előjel-kiterjesztését. A 16 bites elto lást valójában úgy k észítettü k
előjeles konstans, a -1 2 8 , -1-127 tarto m án y b an . A teljes JV M ta rta lm a z z a az UNC • el, hogy a k é t felet O R m ű velettel összekapcsoltuk. V égül be kell tö lten i a k ö v et­
b ő v ített v álto zatát, ahol m in d en o p e ra n d u s 2 b ájt hosszú. I k ező m űveleti k ó d o t m ielőtt visszaugrunk M ainl-re, m ert ez az u tasítás a rra szá-
M ost e lé rk eztü n k az IJV M első elág azó u tasításáh o z: a GOTO-hoz. E n n e k az \ m it, hogy a következő MBR-ben van. goto5-ben u g o rh atu n k Mainl -hez, m ert az MPC
u tasításn ak egyetlen tevékenysége, hogy m eg v áltoztatja a PC é rté k é t, hogy a k ö ­ új é rté k é n e k kiszám ításához id ejéb en m egérkezik (a ciklus vége felé) a következő
vetkező v ég reh ajta n d ó IJV M -u tasítás azon a cím en legyen, m elyet úgy szám olunk IJV M -u tasítás kódja.
290 4. A M IK R O A R C H IT E K T Ü R A SZ IN T JE 4,4. A M IK R O A R C H IT E K T Ü R A S Z IN T JÉ N E K T E R V E Z É S E 291

A goto IJV M -u tasításb an h asznált elto láso k előjeles 16 bites érték e k , m inim um részb en leírtuk. A z INVOKEVIRTUAL egy 23 m ik ro u tasításb ó l álló sorozat, és a m eg­
-3 2 7 6 S és m axim um + 3 2 7 6 7 . E z azt jele n ti, hogy olyan elágazások nem le h e tsé ­ v aló síto tt IJV M -u tasításo k közül a legösszetettebb. M ű k ö d ését a 4.12. áb rán b e ­
gesek, m elyek olyan cím kékhez vezetn ek , m elyek ennél nagyobb távolságra v an ­ m u ta ttu k . A z u tasítás arra használja a 16 bites elto lását, hogy m eg h atáro zza a
nak. E z a tulajdo n ság te k in th e tő a k ár h ib án ak , a k á r sajátosságnak az IJV M -b en m eghívandó m etó d u s cím ét. A mi m egvalósításunkban az eltolás egyszerűen egy
(és a JV M -b en is). A h ib atá b o r azt m o n d an á, hogy a JV M -n ek n em k ellett volna elto lás a k o n stan s m ezőn. E z a k onstans m ezőn lévő hely a m eghívandó m e tó d u s­
korláto zn i ezt a p ro g ram o zó i stílust. A sajáto sság táb o r azt m o n d an á , hogy sok ra m u tat. N e felejtsük el azo n b an , hogy m in d en m etó d u s első 4 bájtja nem u ta sí­
p ro g ram o zó m u n k ája gyökeresen javulna, ha n em len n e lidércnyom ásuk a fo rd í­ tás, h an em két 16 bites szám . A z első a p aram éterszav ak szám át adja (beleértve
tó p ro g ram re tte g e tt ü zen etétő l: OBJREF-et, lásd 4.12. áb ra). A m ásodik a lokális változó m ező m é re te t adja szavak­
ban . E zek a szám ok a 8bites p o rto n k eresztül tö ltő d n ek be, és ugyanúgy állítjuk
A program túl nagy és veszélyes. Át kell írnia. A fordításból semmi se lesz. össze k ét 16 b ites eltolássá, m in th a az u tasítás részei lettek volna.
A g ép előző állap o tán ak \isszaállításáh o z szükséges kapcsoló inform ációt - a
Sajnos (n ézetü n k szerin t), ez az ü z e n e t a k k o r fo rd u l elő, am ik o r a then vagy else ág régi lokális változó m ező kezdőcím e és a régi PC - közvetlenül az ú jo n n an lé tre h o ­
32 K B -nál nagyobb, jelleg zetesen legalább 50 oldal Javában. zo tt lokális változó m ező felett, és az új verem a latt táro lju k el. V égül a k ö v etk e­
M ost tekintsü k az ÍJV M három fe lté te le s elá g a z ó utasítását: IFLT-t, IFEQ-t és ző u tasítás m űveleti kódját b etö ltjü k , és a PC-t m egnöveljük, m ielőtt visszatérünk
IF_ICMPEQ-t. A z e ls ő k e ttő kiveszi a verem tete jé n lév ő szót, é s elágazik, ha a szó M ainl-hez, hogy elkezdjük a következő utasítást.
kisebb, m int nulla, illetve e g y en lő nullával. A z IFJCMPEQ kiveszi a verem tetején A z IRETURN egy egyszerű utasítás, am ely nem ta rtalm az o p eran d u so k at.
lévő két szót, és akkor é s csak akkor ágazik el, ha e gyen lők . M in dh árom e se tb en E gyszerűen azt a cím et használja, hogy a kapcsoló inform ációhoz hozzájusson,
szü k séges az új v e re m -tete je szó b eo lv a sá sa é s TOS-ba tárolása. am elyik a lokális változó m ező első szavában van letárolva. E k k o r visszaállítja SP,
A v e zé rlé s h a so n ló a három utasítás szám ára: e lő szö r az op eran d u s vagy o p e- LV és PC elő ző érté k é t, és átm ásolja a visszatérési é rté k e t az aktuális verem te te jé ­
randusük a regiszterek b e kerülnek, azután az új verem -teteje szó beolvasásra k e ­ ről az e re d eti verem te te jé re , ahogy a 4.13. áb rán m u tattu k .
rül TOS-ba, végül a vizsgálat és az elágazás m egtörtén ik , lek in tsü k elő szö r az IFLT-t.
A vizsgálan d ó szó m ár TOS-ban van, de m ivel IFLT kidob egy szót a verem b ől, az
új verem tetejét b e kell olvasni é s tárolni TOS-ba. E z az olvasás ifltl-nél k ezdődik .
iflt2-nél a vizsgálan d ó szó t OPC-be m entjük á tm en etileg , így az új érték rövid esen 4.4. A míkroarchítektúra szintjének tervezése
TOS-ba le h e tő anélkü l, hogy a m ost érv én y eset e lv e sz ten én k . A z iflt3-nál az új v e ­
rem -teteje szó MDR-ben ren d elk ezésre áll, kim ásoljuk TOS-ba. V égül, iflt4-ben a M int m ajd n em m in d en m ás a szám ítástudom ányban, a m ik ro arc h itek tú ra-szin t
vizsgálan d ó, m ost OPC-ben lév ő szót átfuttatjuk az A L U -n anélkü l, hogy tá ro l­ terv ezése is tele van kom pro m isszum okkal. A szám ítógépeknek szám os kívánatos
nánk, d e az N bit tárolód ik . E z a mikrouta.sítás elágazást is tartalm az T-t választva, jellem ző tu lajdonsága van, beleértv e a sebességet, ára t, m egbízhatóságot, könnyű
ha az N bit igaz, k ü lö n b en F-t. h aszn álato t, en erg iaszü k ség letet és a fizikai m é re te t. A zo n b an kom prom isszum
H a T-t v álaszto tta, a m űvelet h átralev ő része a lap v e tő en ugyanaz, m in t a GOTO vezet a leg fo n to sab b választáshoz, am elyet a C P U -terv ező n ek m eg kell tennie: se­
u tasítás k ezd etén é l, és a so ro z a to t egyszerűen a GOTO so ro zatb an folytatjuk goto2- besség vagy ár. E b b en a fejezetb en részletesen m egvizsgáljuk ezt a tém át, m eg n éz­
nél. A m ennyiben F-t, egy rövid so ro zat (F és F2) szükséges, hogy az u tasítás m a ra ­ zük, hogy mi mi ellen van, hogyan é rh e tő el a m agas teljesítm ény, és e n n ek m i az
dék részét (az elto lást) átlépjük, azu tá n v isszatérünk Main!-re. hogy folytassuk a á ra a h ard v erb en és a bonyolultságban.
következő utasítással.
A z ifeq2-n é s ifeq3-n lévő k ód ugyanazt a logikát k öveti, csak a Z bitet h aszn ál­
juk az N bit h elyett. M in d k ét e se tb en a M A E a ssem b lerén m úlik, hogy felism erje,
4.4.1. Sebesség vagy ár
hogy a T é s F cím ek sp eciálisak , és hogy biztosítsa, hogy a cím ek olyan helyre k erü l­
je n e k a vezérlőtárb an , hogy csak a bal sz é lső b itb en k ü lön b özn ek . B ár a gyorsabb tech n o ló g ia ered m én y ezte a legnagyobb gyorsulást bíirm ely idő­
A z 1F_ICMPEQ logikája nagyjából m eg eg y ezik IFEQ-éval, kivéve, hogy itt a m á so ­ szakban, ez tú lm u ta t ezen írás h a tá rá n . A szervezésnek k ö szö n h ető sebességnöve­
dik o p eran d u st is be kell olvasni. A m ásod ik o p eran d u st H-ba tároljuk if_icmpeq3- lés, b á r kevésbé látványos, m int am i a gyorsabb áram k ö rö k n ek köszönhető, enn ek
m al, ahol az új v e re m -tete je szó b eo lv a sá sa k ezd őd ik . Ism ét OPC-be m entjük az e llen ére hatásos. A sebesség sokfélek ép p en m é rh ető , de m egadva egy áram köri
aktuális v erem -teteje s /ö t , é s az újat tesszü k TOS-ba. V é g ü l a vizsgálat if_icmpeq6- tech n o ló g iát és egy ISA-t, h áro m alap v ető m egközelítése van a végrehajtási sebes­
nál h a so n ló ifeq4-hez. ség növelésének:
M ost tekintsü k az INVOKEVIRTUAL és IRETURN m egvalósítását, azon u tasításo k ét,
m elyek m etó d u s hívásra és m etó d u sb ó l v isszatérésre .szolgálnak, ahogy a 4.2.3.
292 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.4. A M IK R O A R C H IT E K T Ú R A S Z IN T JÉ N E K T ER V E Z É S E 293

1. C sö k k en ten i egy u tasítás v ég reh ajtásáh o z szükséges ó racik lu so k szám át. lapk a sokkal drágább, m int a kisebb, egyszerűbb. E gyedi ko m p o n en sek - példáu l
2. L eeg y szerű síten i a fe lé p ítést, így az óraciklus rövid eb b leh et. tran zisz to ro k , k apuk vagy funkcionális egysegek - m egszám olhatok, de gyakran a
3. Á tlap o ln i az u tasításo k v ég reh ajtását. darab szám n em olyan fontos, m int az integrált á ram k ö rö n igényelt te rü le t m érete.
M inél nagyobb a funkció által igényelt terü let, annál nagyobb a lapka. É s a lap ­
A z első k e ttő nyilvánvaló, de a tervezési leh ető ség ek m eg lep ő en változatosak, ka gyártási k öltségei gyorsabban n ő n ek , m int a terü lete. E z é rt a tervezők gyakran
am i d rám aian befo ly áso lh atja a k á r az óracik lu so k szám át, a k á r az óracik lu st vagy „hasznos te rü le t”-ben - az ára m k ö r által igényelt terü le tb e n - beszélnek a k ö ltsé­
- leggyakrabban - m in d k ettő t. E b b en a részb en p é ld á t ad u n k arra, hogy egy m ű ­ gekről (felté telezh ető en p iko-acre-ben m érik).*
velet k ó dolása és d ek ó d o lása hogyan b efo ly áso lh atja az óraciklust. A z egyik leg alap o sab b an tan u lm án y o zo tt á ram k ö r a tö rté n e le m b e n a bináris
Egy u tasításh alm az v é g reh ajtásáh o z szükséges ó racik lu so k szám át úgy hívják, ö sszeadó. Tervek ezrei születtek, és a leggyorsabbak sokkalta gyorsabbak, m int a
hogy úth o ssz. N é h a az ú thossz speciális h a rd v e r h o zzáadásával rö v id íth ető . P é l­ leglassabbak. É s sokkal b o n y olultabbak is. A rendszerterv ező k n ek el kell d ö n te n i­
dául, h a a PC-t ellátju k egy növelővel (lényegileg egy összeadóval, am elynek az ük, vajon a nagyobb sebesség m egéri-e a hasznos te rü le te t.
egyik k o m p o n en se m indig 1), ak k o r n em kell a to v áb b iak b an h asználni az A L U -t A z összeadók nem az egyedüli olyan kom ponensek, am elyeknek sok altern atív á­
a PC n ö velésére, és ezzel ciklusokat küsz()bölünk ki. A m eg fizetett á r a tö b b h a rd ­ ja van. M ajdnem m inden részegység gyorsabb vagy lassabb fu tásra tervezhető, k ü ­
ver. A zo n b an ez a képesség n em segít annyit, m in t ta lán elv árh ató . A legtöbb u ta ­ lönböző költségekkel. A tervezők szám ára az a kihívás, hogy m egállapítsák azokat
sításnál az elhagyható PC-t növelő ciklusok egyben azok a ciklusok, ahol egy olva­ a részegységeket, am ellyel a sebesség em elésével a ren d szer a legtöbbet javul. Elég
sásm űvelet is v ég reh ajtó d ik , és a követk ező u tasítás sem m ik ép p se h a jth a tó végre érd ek es, hogy sok egyedi alkatrész kicserélhető egy gyorsabbra úgy, hogy ez csak kis
előbb, m e rt az a m em ó riáb ó l érk ező a d a ttó l függ. vagy sem m ilyen hatással sincs a sebességre. A következő fejezetben néhány terv ezé­
A z u tasításo k h o z szükséges ciklusok szám án ak csö k k en tése a b e tö ltő u ta s ítá ­ si k érd ést vizsgálunk m ajd m eg, a hozzá kapcsolódó kom prom isszum okkal együtt.
sok e setén tö b b e t kíván, m in t egy további á ra m k ö rt, am elyik a PC-t növeli. A n n a k A z ó ra m axim ális sebességének m eg h atáro zásáb an az egyik kulcstényező a n ­
érd e k é b e n , hogy az u tasításb e tö lté st je le n tő s m é rté k b e n gyorsítsuk, a h a rm ad ik n ak a m u n k án ak a m ennyisége, am elyet el kell végezni egy óraciklus alatt. N yil­
m ód szert - az utasításo k v é g reh ajtásán ak átlap o lá sá t - kell haszn áln u n k . A z a leg­ vánvaló, hogy m inél több az elvégzendő m unka, an n ál hosszabb az óraciklus.
h atékonyabb, ha elválasztjuk az u tasítás b etö lté sé h e z haszn ált á ra m k ö rö k e t - a 8 T erm észetesen ez nem ilyen egyszerű, m ert a h ard v er elég jó abban, hogy p á rh u ­
bites m em ó ria p o rto t és az MBR és PC reg isz te re k e t - hogy az egység függetlenül zam o san végezzen dolgokat, így valójában az egyetlen óraciklus alatt egymás után
m ű k ödjön a fő a d a tú t elem eitő l. így a k ö v etk ező m űveleti k ó d o t vagy o p e ra n d u st v ég re h ajtan d ó m űveletek so ro zata h atáro zza m eg, hogy m ilyen hosszúnak kell
a m aga m ó d ján tö lth e ti be, a C P U tö bbi részéh ez k ép est a k ár aszin k ro n m ó d o n len n ie egy ó raciklusnak.
elő re b etöltve egy vagy tö b b u tasítást. A befolyásolható dolgok egyike a v égrehajtandó dekódolás m ennyisége. E levenít­
Sok u tasítás v ég reh ajtásán ak egyik leginkább időigényes szakasza egy 2 bájto s sük fel, például, am it a 4.6. áb rán láttunk, hogy kilenc regiszter bárm elyike b e tö lt­
eltolás b e tö h é se , m eg felelő k iterjesztése és összegyűjtése a H reg iszterb e, hogy egy h ető A L U -ba a B sínről, m égis csak 4 bitet igényeltünk a m ikroutasításban annak
összeadásra előkészítsük, p éld a e rre egy ugrás PC ± n b ájtra. Az a leh etség es m eg ­ m eghatározására, hogy melyik regiszter van kiválasztva. Sajnos, ezek a m eg tak arítá­
oldás, hogy a m e m ó ria p o rto t 16 b itesre kiszélesítjük, nagyon b o n y o lu lttá teszi a sok sokba kerülnek. A dekódoló áram k ö r késleltetése növeli a kritikus utat. E z azt
m űveletet, m ert a m em ó ria v aló jáb an 32 b it széles. A szükséges 16 b it átn y ú lh at jelenti, hogy akárm elyik regiszter kap is engedélyt arra, hogy az ad ata it a B sínre te ­
szó h atáro n , és egyetlenegy 32 bites olvasás n em feltétlen ü l fogja b e tö lte n i m in d ­ gye, ezt az utasítást kicsit később fogja m egkapni, és kicsit később fogja az adatait
két szükséges b ájto t. a B sínre tenni. E z a hatás tovább terjed, az A L U a b em en e telt kicsit később k ap ­
A z u tasításo k v é g reh ajtásán ak átlap o lása m essze a leg érd ek eseb b , és a leg­ ja m eg, az eredm ényt pedig csak kicsit később állítja elő. V égül, a C sínen elérh ető
kedvezőbb alk alm at kínálja a sebesség d rám ai n ö v elésére. A z u tasításb etö ltés ered m én y t egy kicsit később írja a regiszterekbe. Mivel ez a késedelem gyakran az a
és végrehajtás egyszerű átla p o lása m eg lep ő en h atékony. K ifinom ultabb m ó d sze­ tényező, am i m eghatározza, hogy az óraciklusnak milyen hosszúnak kell lennie, ez
rek azonban sokkal tovább m en n ek , tö b b u tasítás átlap o láso s vég reh ajtásáh o z. azt jelen th eti, hogy az óra nem tud elég gyorsan futni, és így az egész szám ítógépnek
V alóban ez az ö tle t a m o d e rn szám ító g ép -terv ezés k ö zp o n ti k érd ése. A z a láb b iak ­ kicsit lassabban kell m űködnie. E z kom prom isszum a sebesség és az ár között. A ve­
ban az átlapoláso s u tasítás-v ég reh ajtás a lap v e tő m ó d szerei közül fo gunk n éh án y at z érlő tár szavanként 5 bittel való csökkentéséért az óra lassulásával fizetünk. A terv e­
tárgyalni, és m eg in d o k o lu n k n éh án y kifin o m u ltab b at. z ő m érn ö k ök nek a tervezési célokat figyelem be kell venniük, am ikor eldöntik, hogy
A sebesség a k ép egyik fele: a m ásik fele az ár. A z á r szin ten so k félek ép p en mi a helyes választás. Egy nagy teljesítm ényű gép m egvalósításhoz a dek ó d er hasz­
m é rh ető , de az á r p o n to s definíciója p ro b lem atik u s. Egy m érték eg y ség egyszerűen nálata valószínűleg nem jó ötlet, egy alacsony költségű gépnél azonban jó lehet.
a k o m p o n en sek árá n a k összege. E z k ü lö n ö sen igaz volt ak k o r, am ik o r a procesz-
szorok diszkrét elem ekből voltak felépítve, m elyeket m egv ásáro ltak és ö sszerak ­
tak. M a az egész p ro cesszo r egyetlenegy lap k án van, de a nagyobb, ö ssz ete tte b b 1 acre = 0,58 hektár. (A ford.)
294 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE
4.4. A M IK R O A R C H IT E K T Ú R A S Z IN T JÉ N E K T E R V E Z É S E 295

A 4.24. áb rán a so ro zato t h áro m u tasításra csö k k en tettü k azáltal, hogy kihasz­
4.4.2. A végrehajtási út hosszának csökkentése
n áltu k azt az öiacik lu st, am ik o r az A L U -t nem használjuk, a pop 2-t, hogy ak ­
A M ic -l-e t úgy tervezUik, hogy k ö zep esen egyszerű és k ö zep esen gyors legyen, k o r hajtsu k végre a Mainl főciklus egy részét, hogy m eg tak arítsu n k egy ciklust.
b á r k étségtelenü l h atalm as feszültség van a két célkitűzés k özött. R öviden, az egy­ M in d e n k é p p en vegyük észre, hogy ezen u tasításso ro za t vége közvetlenül ágazik el
szerű gép ek nem gyorsak, és a g>'ors gépek n em egyszerűek. A Mic-1 C P U is m i­ a k övetkező u tasításra jellem ző kódhoz, így összesen csak h áro m ciklus szükséges.
nim ális m ennyiségű h ard v ert használ: 10 regisztert, a 3.19. á b rán lá th a tó egyszerű Ez a kis trü k k egy ciklussal csökkenti a következő m ik ro u tasítás végrehajtási ide­
A L U -t 32-szer ism ételve, egy lé p te tő t, egy d e k ó d e rt, egy v e z é rlő tára t és itt-o tt n é ­ jét, így p éld á u l, a következő lADD négy ciklusról h á ro m ra csökken. E z így egyen­
hány összekötő elem et. A z egész re n d sz er kevesebb m in t 5000 tran zisz to rb ó l fe l­ é rté k ű azzal, hogy ingyen növeljük a sebességet 250 M H z-ről (4 ns-os m ikrontasí-
ép íth e tő , hozzáadva bárm ilyen v e z é rlő tá ra t (R O M ) és fő m e m ó riá t (R A M ). táso k ) 333 M H z-re (3 ns-os m ik ro u tasításo k ).
M iután láttu k , az IJV M hogyan v aló síth ató m eg egyszerűen m ik ro k ó d b an egy
kevés h ard v errel, ideje m egvizsgálnunk m ás, gyorsabb m egvaló sításo k at is. A k ö ­ Címke Műveletek Megjegyzések
v etkezőkben olyan m ó d szerek et vizsgálunk, m elyek csö k k en tik az ISA -utasítá- popl MAR = SP = SP- 1;rd Beolvassa a verem teteje alatti szót.
Mainl.pop PC = PC + 1;fetch MBR-ben a műveleti kód; betölti a következő bájtot.
so nkénti m ik ro u tasításo k szám át (vagyis csö k k en tik a vég reh ajtási ú t hosszát).
pop3 TOS = MDR; goto (MBR) Az új szó bemásolásaTOS-ba; elágazás a művkód szerint.
E zu tán egyéb m eg k ö ze lítések et is fo n to ló ra veszünk.

4.24. ábra. Javított mikroprogramrészlet a POP végrehajtására

Az értelmező ciklus és a m ikrokód összefüzése


A POP u tasítás különösen jól illeszkedik ehhez a bánásm ódhoz, m ert van egy
A M ic-l-n él a fó'cikius egy m ik ro u tasításb ó l áll, am it m in d en IJV M -u tasítás k ez­ m ed d ő ciklusa a közepén, am ely nem használja az A L U -t. A főciklus azonban
d e tén végre kell h ajtan i. N éhány e se tb e n leh ető ség van a rra , hogy ez á tfed ésb en használja az A L U -t. így, hogy csökkenteni tudjuk eggyel az utasítás hosszát egy
legyen az előző utasítással. V alójában ez m ár részlegesen teljesült. Vegyük észre, utasításo n belül, szükséges, hogy találjunk egy ciklust az utasításban, ahol az A L U
hogy am ikor a Maim v ég reh ajtó d ik , az é rte lm e z e n d ő m űveleti k ó d m á r MBR-ben nincs h aszn álatban. Ilyen m ed d ő ciklusok nem sokszor, de előfordulnak, így m egéri
van. A m űveleti k ó d azért van o tt, m e rt vagy m á r az előző főciklus b e tö ltö tte (ha hozzáfűzni a Mainl-t m indegyik m ikroutasítás sorozat végéhez. E z m indössze egy
az előző u tasításn ak nem volt o p e ra n d u sa ), vagy az előző u tasítás v ég reh ajtása kis vezérlő tárba kerül. így m egvan az első m ódszerünk az úthossz csökkentésére:
a la tt tö ltő d ö tt be.
A z u tasításk ezd et á tfed é sén e k ez az elve to vábbvihető, és v alójában a főcik­ F űzd az értelm ező ciklust m indegeik m ikro kó d sorozat végéhez.
lus bizonyos esetek b en teljesen e ltü n te th e tő . E z a k ö v etk ező k ép p en tö rté n h e t.
T ekintsünk m in d en olyan m ik ro u tasítás-so ro zato t, am elyik a M alnl-hez való e lá g a ­
zással fejeződik be. M in d en ilyen helyen a főciklus m ik ro u tasítás a so ro zat végé­ Egy háromsínes architektúra
hez fűzh ető (a k övetkező so ro zat k ezd ete h ely ett), egy tö b b irán y ú elágazást m á­
solva m ost sok helyre (de m indig a célp o n to k ugyanazon b eállításával). B izonyos Mi egyebet te h e tü n k a végrehajtási út hosszának csö k k en téséért? Egy m ásik egy­
esetek b en a Main! m ik ro u tasítás h o zzáfű zh ető az előző m ik ro u tasításo k h o z, mivel szerű javítás, hogy két teljes b e m en ő sínt biztosítunk az A L U -hoz, egy A sínt és
az utasításo k nem m indig van n ak teljesen kihasználva. egy B sínt, összesen h áro m sínünk lesz. M inden (vagy legalább tö b b ) regiszternek
A 4.23. ábrán egy dinam ikus utasításso ro zato t m u tatu n k be a POP utasításhoz. A el kellen e érn ie m indkét b em e n ő sínt. H a van két b e m e n ő sínünk, an n ak az az elő-
főciklus m in den utasítás előtt és u tán szerepel, az áb rán csak a POP utasítás után i e lő ­
fordulást m utatju k be. Vegyük észre, hogy ennek az utasításnak a végrehajtása négy Címke Műveletek Megjegyzések
őraciklust igényel: h árm at a POP-ra jellem ző m ikroutasítások, és egyet a főciklus. iioadi H = LV MBR tartalmazza az indexet; LV-t H-ba másoljuk,
iload2 MAR = MBRU + H;rd MAR = a betöltendő lokális változó címe
iload3 MAR = SP = SP + 1 SP a verem új tetejére mutat; az írás előkészítése.
Címke Műveletek Megjegyzések iload4 PC - PC + 1; fetch; wr PC növelése; következő műveleti kód betöltése; verem
popl MAR = SP = SP- 1;rd Beolvassa a verem teteje alatti szót. tetejének írása.
pop2 Várja, hogy az új TOS bekerüljön a memóriából. iload5 TOS = MDR; goto Mainl Frissíti TOS-t.
pop3 TOS = MDR;goto Mainl Az új szótlOS-ba másolja. Mainl PC = PC + 1; fetch; MBR-ben a műveleti kód; veszi a következő bájtot, elágazás.
Mainl PC = PC + 1; fetcii; goto (MBR) MBR-ben a műveleti kód; veszi a következő bájtot; goto (MBR)
elágazás.

4.23. ábra. Eredeti mikroprogramrészlet a PO P végrehajtására 4.25. ábra. Mic-1 l<ód ILOAD végrehajtására
4.4. A M IK R O A R C H IT E K T Ú R A S Z IN T JÉ N E K T E R V E Z É S E 297
296 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE

A n n ak é rd ek éb en , hogy a főciklust átlapoljuk, szükséges, hogy az A L U -t fel­


nye, hogy akko r b árm ely reg iszte rt bárm ely m ásik reg iszte rrel egy cikluson belül
szabadítsuk a fenti felad ato k ném elyikétől. E z m eg teh ető egy m ásodik A L U b e ­
összeadhatunk. H ogy lássuk en n ek a tu lajd o n ság n ak az é rté k é t, tek in tsü k az ILO-
vezetésével, b á r sok tevékenységhez nem szükséges egy teljes A L U . Vegyük észre,
AD m egvalósítását M ic -l-e n , m elyet ism ét m eg m u ta tu n k a 4.25. áb rán .
hogy n éh án y esetb en az A L U -t egyszerűen egy ú tn ak használjuk, hogy egy é rté k e t
Látjuk, hogy iioad l-b en LV-t átm ásoljuk H-ba. A z e g y etlen ok, hogy H-ba m á so l­
átm áso lju n k az egyik regiszterből a m ásikba. E zek a ciklusok talán k iküszöbölhe­
juk, hogy így h o zzá a d h atju k MBRU-hoz iload2-ben. A mi e re d e ti k é tsín e s te rv ü n k ­
tők további a d a tu ta k bevezetésével, am elyek nem m en n ek k eresztül az A L U -n.
ben nincs m ód két tetsző leg es reg iszter ö sszead ására, így a k e ttő közül az egyiket
N ém i haszo n szárm azhat p éld áu l abból, hogy csinálunk egy u ta t a TOS-ból az MDR-
először H-ba kell m ásolni. A z lij h áro m sín es terv ü n k b en m e g ta k a ríth a tu n k egy
be, vagy az MDR-ből a TOS-ba, hiszen a v erem legfelső szavát gyakran m ásoljuk c
ciklust, ahogy a 4.26. á b ra m u tatja. H o zzáv ettü k az é rte lm ez ő ciklust (főciklust) az
k é t reg iszter között.
ILOAD-hoz, de ezzel n em is növeltük, n em is csö k k en tettü k a vég reh ajtási ú t hosz-
A M ic -l-b e n sok b etö ltés elválasztható az A L U -tól egy független egység m eg ­
szát. A z újabb sín m égis h at ciklusról ö tre csökkenti az ILOAD teljes v ég reh ajtási
alkotásával, am ely b etö lti és feldolgozza az u tasításo k at. E z az egység, am it IFU -
idejét. M ost m egvan a m ásodik m ó d szerü n k az úthossz csö k k en tésére:
n ak (In stru c tio n Fetch U n it, u ta s ítá sb e tö ltő egység) nevezünk, kép es függetlenül
növelni PC-t, és b etö lten i a b á jto k at a bájtfolyam ból, m ég m ielő tt szükség lenne
Télj át a kétsínes tervről a három sínes teivre.
rájuk. E z az egység csak egy növelőt igényel, egy áram k ö rt, am i sokkal egyszerűbb,
m in t egy teljes összeadó. T ovábbgondolva, az IF U ö sszerak h at 8és 16 bites o p e ­
Címke Műveletek Megjegyzések
ra n d u so k a t is, így azok készen állnak azonnali h aszn álatra, valahányszor szüksé­
iloadl MAR = MBRU + LV;rd MAR = a betöltendő lokális változó címe
ges. L eg aláb b k ét m ód van, ahogy ez vég reh ajth ató :
iload2 MAR = 5P = 5P + 1 5P a verem új tetejére mutat; az írás előkészítése.
iload3 PC = PC+1;fetch;wr PC növelése; következő műveleti kód betöltése; verem
tetejének írása. 1. A z IF U ténylegesen é rtelm ezh et m in d en egyes m űveleti kódot: m e g h a tá ro z h a t­
iload4 TOS = MDR Frissíti TOS-t. ja, hogy hány további m ezőt kell b etö lten i, és ö sszerak h atja azo k at egy regisz­
iIoadS PC=PC + 1;fetch;goto(MBR) MBR-ben a műveleti kód; veszi a következő bájtot, te rb e , hogy készen álljanak, am ikor a fő végrehajtási egység használni akarja.
elágazás.
2. A z IF U k ih aszn álh atja az u tasításo k folyam term ész etét, és m indig elérhetővé
te h e ti a következő 8és 16 bites részt, a k ár szükség van rá, a k ár nincs. A fő vég­
4.26. ábra. Háromsínes kód ILOAD végrehajtására
re h ajtási egység b árm ik o r k é rh e ti ezeket, h a szüksége van rá.

MBR2
Egy utasításbetöltő egység

M in d k ét m ód szert m eg éri használni, de hogy d rám ai jav u lást é rjü n k el, szü k sé­
günk van valam i sokkal m ély reh ató b b ra. L ép jü n k vissza, és vizsgáljuk m eg m in d en
utasítás közös részét: az u tasítás m ező in ek b e tö lté sé t és d ek ó d o lását. Vegyük ész­
Léptetö regiszter
re, hogy a következő m ű v eletek m in d en u tasításb an szerep elh etn ek :
Memória felől ^ 1 ...... I I
1. A PC-t átküldjü k az A L U -n és növeljük.
2. A PC-t felhasználjuk az u tasításfolyam követk ező b ájtjá n a k b etö lté sé re .
3. A z o p era n d u so k a t kiolvassuk a m em óriából. ^— IMAR Ili r -------i-------- r MBR1
L____ I-------- L.
4. A z o p e ra n d u so k a t a m em ó riáb a írjuk. '-y-'
+1 k= l
5. A z A L U elvégez egy m ű v eletet, és az e red m én y t visszatároljuk.
Legalacsonyabb 2 bit
-•-- C sín -- B sín
H a egy u tasításn ak további m ezői v an n ak (o p e ra n d u so k szám ára), m in d en m e­
zőt be kell tö lten i, egyszerre csak egy b ájto t, és össze kell rak n i, m ielő tt felh aszn ál­ PC •■k
nánk. Egy m ező b e tö lté se és összerakása b á jto n k é n t legalább egy ciklusra leköti
M A , ' ■1

az A L U -t, hogy m egnövelje a PC-t, és a z u tá n ism ét egyre, hogy összerakja a k e le t­


kező indexet vagy elto lást. Az A L U -t szinte m in d en ciklusban sokféle m űv eletre írja a PC-t
használjuk az u tasításb etö ltéssel és az u tasításo n belüli m ezők összerakásával k ap ­
4.27. ábra. Egy betöltő egység M ic-1-hez
csolatban, az utasítás „való d i” m u n k áján felül.
4.4. A M IK R O A R C H IT E K T Ú R A S Z IN T JÉ N E K T E R V E Z É S E 299
298 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE

A m ásodik terv csíráit a 4.27. áb rán m u ta tju k be. A z egyetlen 8 bites MBR h e ­ Szó betöltve
lyett m ost 2 MBR-ünk van: egy 8bites MBRi és egy 16 bites M B R 2 . A z IF U figyeli a fő
végrehajtási egység által felh aszn ált b ájto t vagy b ájto k at. É ppúgy e lérh ető v é teszi
a következő b ájto t az M B R I -ben, m int a M ic-1, az egyetlen e ltérés, hogy ö n m ű k ö ­
d ő en érzékeli, am ik or az MBRi-t kiolvassák, ek k o r elő re b eh o zza a k övetkező b áj­
tot, és közvetlenül b e tö lti az MBRI-be. M int a M ic -I-b e n , k ét k apcsolódási le h e tő ­
sége van a B sínhez: az MBRI és MBRIU. A k orábbi 32 b ites előjel k iterjesztésű , az
utóbbi nulla kiterjesztésű.
H aso n ló k ép p en , az MBR2 m ű k ö d ését tekintve ugyanazt nyújtja, de a k ö v etk e­
ző két b ájtot tartalm azza. E n n ek is két kapcsolódási leh ető ség e van a B sínhez:
az MBR2 a 32 b ites elő jel-k itcrjesztésű , és az MBR2U a nulla k iterjesztésű é rte k ki­
bocsátásához.
Átmenetek
A z IP’U végzi a bájtfolyam b etö ltését. E zt azzal éri cl, hogy a hagyom ányos 4 M B R I : A k k o r fo rd u l elő, a m ik o r az M B R I -t k io lva ssu k
bájtos m en ió ria p o rto t használva elő re b e tö lt teljes 4 b ájto s szavakat, és az egym ást M B R 2 : A k k o r fo rd u l elő, a m ik o r az M BR2-t kio lvassu k
követő b ájto k at egy lé p te tő reg iszterb e tölti, am i egyesével vagy kettesével szol­ Szó b e tö ltv e : A k k o r fo rd u l elő, a m ik o r e g y m e m ó ria s z ó t o lv a s u n k és 4 b á jto t a lé p te tő
re g isz terb e tes z ü n k
gáltatja azokat a b etö lté s so rren d jéb en . A lé p te tő reg iszte rn ek az a szerepe, hogy
fe n n ta rt egy bájt so rt a m em ó riáb ó l, és to vábbítja az MBRI-be és az MBR2-be.
4.28. ábra. Egy véges állapotú gép az IFU megvalósításához
M inden id ő pillan atb an az MBRI a lé p te tő reg iszter b á jtjá t ta rtalm a z za és az
MBR2 a 2 legkorábbi b á jto t (a legkorábbi bájt b alra van), hogy egy 16 bites egészet
alakítson ki [lásd 4.19. (b) ábra]. Az MBR2-ben lévő két b ájt leh et, hogy külö n b ö ző A hh o z, hogy helyesen dolgozzunk, az IF U -n ak le kell blokkolnia, am ik o r arra
m enióriaszavakb ó l alakul ki, m e rt az IJV lM -utasítások a m em ó riáb an nincsenek kérik, hogy legyen m eg valam it, am it nem lúd, például szolgáltassa az MBR2 é rté ­
sz ó h atárra igazítva. két, am ik o r csak 1 bájt van a lé p te tő reg iszterb en , és a m em ó ria m ég el van foglal­
V alahányszor kiolvasás tö rté n ik az MBRI-bői, a lé p te tő reg iszter jo b b ra lép ­ va egy új szó betöltésével. E zenkívül egyszerre csak egy dolgot tud csinálni, így a
te t egy b ájto t. A m ik o r pedig az MBR2-ből, a k k o r jo b b ra lé p te t 2 b ájto t. E z u tá n az b e é rk ez ő esem én y ek et sorba kell állítania. V égül, valahányszor a PC m egváltozik,
MBRI és MBR2 ú jratö ltő d ik a legkorábbi b ájtból, illetve a 2 legkorábbi b ájtból. H a IF U -t frissíteni kell. Ilyen részletek IF U -t m ég b o nyolultabbá teszik, m int b e m u ­
m ost eleg e n d ő hely m arad a lé p te tő reg iszterb en egy m ásik teljes szó szám ára, az ta ttu k . M égis, sok h ardvereszközt F S M -ként készítünk el.
IF U beolvasó m cm ó riacik lu st kezdem ényez. F eltételezzü k , hogy am ik o r b á rm e ­ A z IF U -n ak saját m em óriacím -regisztere van, az IMAR, m elyet a m em ó ria cím ­
lyik MBR regiszter kiolvasása m eg tö rtén ik , a követk ező ciklus k ez d eté re újból föl­ zésére h asználunk, am ik o r egy új szót be kell tölteni. E n n ek a regiszternek saját
töltődik, így egym ást k övető ciklusokban kiolvasható. növelője van, így a fő A L U -ra nincsen szükség, am ikor a következő szó eléréséh ez
A z IMJ tervét egy FSiVI-ről (Finite State M achine, véges állapotú gép) m in táz­ növeljük IMAR-t. A z IF U -n a k úgy kell folyam atosan figyelnie a C sínt, hogy vala­
hatjuk m eg, ahogy azt a 4.28. á b ra m u tatja. M inden F S M -nek k ét része van: az hányszor a PC feltöltődik, az új PC é rté k e t az IMAR-ba is be kell m ásolni. Mivel a
állapotok, am it a k ö rö k jelezn ek , és az átm enetek, am it az egyik állap o tb ó l a m á ­ PC-ben lévő új é rté k lehet, hogy nincsen szó h atáro n , az IF U -n ak be kell tölteni a
sikba m enő élek m u tatn ak . M inden álla p o t egy olyan leh etség es hely zetet ábrázol, szükséges szót, és hozzá kell igazítania a lép tető regisztert en n ek m egfelelően.
am iben az FSM lehet. E n n ek a bizonyos F S M -nek h é t á llap o ta van, am elyik m eg­ IF U használata esetén a fő végrehajtási egység csak akkor ír a PC-be, am ikor
felel a 4.27. áb rán lévő lé p te tő reg iszte r h ét á llap o tán ak . A h é t állap o t an n ak felel m eg kell változtatni az utasításfolyam soros jellegét, te h á t ír egy sikeres elágazó
m eg, hogy a lé p te tő reg iszte rb en je len leg hány bájt van, a szélső é rté k e k e t is b e le ­ u tasításn ál, az INVOKEVIRTUAL-nál és az IRETURN-nél.
értve, ez egy 0és 6kö zö tti szám . Mivel a m ik ro p ro g ram m ár nem közvetlenül növeli a PC-t a m űveleti k ó dok b e ­
M inden él egy lehetséges esem ényt ábrázol. Itt h áro m különböző esem ény k ö ­ tö ltésén él, az IF U -n ak kell a PC-t k arb a n ta rta n ia . E zt azzal éri el, hogy érzékeli,
vetkezhet be. A z első esem ény az, am ik o r egy b ájto t olvasunk MBRI-ből. E z az ese­ am ik o r az utasitásfolyam ból egy vagy k ét bájt felhasználásra kerül, vagyis am ikor
m ény m űködésbe hozza a lé p tető regisztert, és egy bájt kilép a jobb oldali végén, az MBRi-t vagy az MBR2-t (vagy az előjel nélküli verziókat) kiolvassák. A PC-hez
e kkor az állap o to t eggyel csökkentve. A m ásodik e.semény az, am ikor két b ájtot o l­ kapcsolódik egy önálló növelő, am elyik attól függően képes 1vagy 2b ájttal növel­
vasunk az MBR2-ből, ez az á llap o to t kettővel csökkenti. M in d k ét á tm e n e t kiváltja az ni, hogy hány b ájto t haszn áltu n k fel. így a PC m indig a m ég fel nem használt első
az MBRI és az MBR2 ú jratö ltését. A m ik o r az I'SM a 0., 1. vagy 2. á llap o tb a kerül, a k ­ bájt cím ét tartalm azza. M inden egyes u tasítás k ezd etén az MBR tartalm azza az e h ­
k or egy új szót b e tö ltő m em óriaciklus kezdődik (feltéve, hogy a m em ó ria m ár nincs hez az utasításhoz ta rto z ó m űveleti kó d cím ét.
elfoglalva egy szó beolvasásával). A szó m egérkezése 4-gyel növeli az állapotot.
300 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.4. A M IK R O A R C H IT E K T Ú R A S Z IN T JÉ N E K T E R V E Z É S E 301

M egjegyezzük, hogy kél független növelő van, és különböző tevékenységeket v é­


geznek. A PC bájtokban szám lál, és 1-gyel vagy 2-vel növclődik, az IMAR pedig sza­
vakban, és csak 1-gyel növclődik (4 új bájthoz). A MAR-hoz h asonlóan, az IMAR is
rézsútosan k erül a cím sínre, azaz az IMAR 0. bitje a 2. cím vonalhoz kapcsolódik és
így tovább, v égrehajtva egy m agától é rte tő d ő átalak ítást szócím ekről bájtcím ekre.
M int n e m so k ára részletesen látni fogjuk, nagy nyereség, hogy a főciklusban nem
kell a PC-t növelni, m ert azokban a m ik ro u tasításo k b an , m elyek a PC-t növelik,
gyakran sem m i egyéb nem tö rté n ik a PC növelésén kívül. H a ez a m ik ro u tasítás ki­
hagyható, c sö k k en th ető a végrehajtási út. Itt a kom prom isszum , hogy több h ard \ er
kell a gyorsabb géphez. Tehát a harm adik m ódszerünk az úthossz csökkentésére:

Egy erre specializált m űködési egységgel töltsd he az utasításokat a m em óriából

4.4.3. Terv előre betöltéssel: a l\1ic-2

A z IF U nagyon lecso k k en th eti az átlagos u tasítás úthosszát. E lőször is, teljesen el­
távolítja a főciklust, mivel m in d en egyes utasítás vége egyszerűen közvetlenül ág a­
zik cl a k övetkező utasításra. M ásodszor, elkerüli, hogy az A L U -t a PC növelésére
kössük le. H arm ad szo r, csökkenti az úthosszt valahányszor egy 16 bites indexet
vagy elto lást szám ítunk ki, m ert összerakja a 16 bites érté k e t, és ezt, m int 32 bites
é rté k e t, közvetlenül szolgáltatja az A L U -nak, elkerülve, hogy a H-ban kelljen ösz-
szerakni. A 4.29. áb ra a M ie-2 -t, a M ic -l-n e k a 4.2‘). áb rán lá to tt IFU -val kibőví­
te tt v álto za tát m u tatja. A kibővített gép m ikrokódja a 4.30. áb rán láth ató .
M ic -2 m ű k ö d ésén ek szem léltetéshez vizsgáljuk m eg az lADD utasítást. Ez b e ­
tölti a v e rem b en lévő m ásodik szót. és elvégzi az összeadást, m int előbb, csak m ost
nem kell a Main 1-re ugrania, m iu tán elkészült, hogy a PC-t növelje és elirányítsa
a követk ező m ikroutasításhoz. A m ik o r az IF U észleli, hogy az iadd3-ban hivat­
ko zunk az MBRI-re, a belső lé p te tő regisztere m in d en t jo b b ra tol, és ú jratö lti az
MBRI-t és az MBR2-t. V ég reh ajt egy á tm e n e te t is a jelenlegi állapotából az eggyel
alacsonyabba. H a az új állap o t 2, az IF U elkezd betíilteni egy szót a m em óriából.
M in d ez h ard v erb en tö rtén ik . A m ik ro p ro g ram n ak sem m it se kell ten n ie. E zért
c sö k k en th e tő az lADD négy m ik ro u tasításró l h áro m ra.
A M ic-2 néhány u tasítást jo b b an felgyorsít, m int m ásokat. Az LDC_W k i­
lenc m ik ro u tasításró l csupán h á ro m ra változik, h arm adolva a végrehajtási időt.
M ásrészről, a SWAP csak nyolcról h at m ik ro u tasításra változik. Á tlagos teljesít­
m énynél v alójában a gyakoribb u tasításo k n ál k ap o tt nyereség szám ít. E zek közé
ta rto z ik az ILOAD (6volt, m ost 3), az lADD (4 volt, m ost 3) és az IF_ICMPEQ (sikeres
esetb en 13 volt, m ost 10; sik ertelen e setb en 10 volt, m ost 8). A hhoz, hogy m eg­
m érjü k a gyorsítást, választanunk és fu tta tn u n k kellene egy tesztágyat, de világos,
hogy itt nagy a nyereség.
302 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.4. A M IK R O A R C H IT E K T Ú R A S Z IN T JÉ N E K T E R V E Z É S E 303

Címke M űveletek M egjegyzések Címke M űveletek M egjegyzések


nopl goto (MBRl Elágazás a tcöveti<ezó utasításhoz. iflt3 TOS = MDR A verem új tetejétTOS-ba teszi.
laddl MAR = SP = S P - l: r d Beolvassa a verem teteje alatti szót. iflt4 N = O P C ;if(N )g o to T e is e g o to F Elágazás N bit szerint.
iadd2 H=TOS H = verem teteje Ifeql MAR = SP = SP - l;rd Beolvassa a verem teteje alatti szót.
MDR=TOS = MDR + H;wr: Ífeq2 OPC = TOS TOS-t ideiglenesen OPC-be menti.
iadd3 Összeadja a feisó l<ét szót; beirja a verem új tetejére.
goto (M BRl) ifeqS TOS = MDR A verem új tetejétTOS-ba teszi.
isubl MAR = SP = S P - l; r d Beolvassa a verem teteje alatti szót. ifeq4 Z = OPC; if (Z) g o to T else goto F Elágazás Z bit szerint.
isub2 H = TOS H = verem teteje ifjc m p e q l MAR = SP = S P - l; r d Beolvassa a verem teteje alatti szót.
MDR = TOS = M D R -H ;w r; if_icmpeq2 MAR = SP = SP - 1 Beállítja MAR-t a verem új tetejének olvasásához.
isub3 Kivonja TOS-t a betöltött TOS-1 -bői.
goto (M BRl) A verem második szavának másolása H-ba.
ifjcm peq3 H = MDR;rd
iandl MAR = SP = S P - l; r d Beolvassa a verem teteje alatti szót. OPC = TOS TOS-t ideiglenesen OPC-be menti.
ifjcm peq4
iand2 H=TOS H = verem teteje TOS = MDR A verem új tetejétTOS-ba teszi.
ifJcm p eq S
MDR=TOS = M D RAN D H ;w r; Ha a felső 2 szó egyenlő,T-re, kúlönben F-re.
iand3 TOS AND betöltött TOS-1. ifjcm peq ő Z = H - OPC; if (Z) goto T else goto F
goto (M BRl)
T H = PC- l;g otogoto2 Ugyanaz, mint gotol.
ion MAR = SP = S P - l; r d Beolvassa a verem teteje alatti szót.
F H = MBR2 Beolvassa MBR2-t, és eldobja.
ior2 H=TOS H = verem teteje
F2 goto (M BRl)
MDR = TOS = M DROR H:wr;
ior3 TOS OR betöltött TOS-1 Invokevirtuail MAR = CPP-i-MBR2U;rd A metódus mutatójának címét MAR-ba teszi.
goto (M BRl)
lnvokevirtuai2 OPC = PC Menti a visszatérő cimet OPC-be.
dupl MAR = SP = SP + 1 Növeli SP-t és MAR-ba másolja.
InvokevirtuaiS PC = MDR PC mutasson a metódus kódjának első bájtjára.
dup2 MDR = TOS; wr; goto (M BRl) Beírja az új verem szót.
lnvokevlrtual4 Várnia kell, hogy IFU frissüljön
popl MAR = SP = S P - l; r d Beolvassa a verem teteje alatti szót.
InvokevirtuaiS T0S = SP-M BR2 U TOS = O B JR E F c im e - l
pop2 Olvasásra var.
lnvokevlrtual6 TOS = MAR = H= T O S-H TOS = O BJREFcim e
pop3 TOS = MDR; goto (M BRl) Az új szót aTOS-ba másolja.
Invokevirtuai? MDR = SP + M BR 2 U - H ;w r Felülírja OBJREF-t a kapcsoló mutatóval.
swapl MAR = S P - l: r d Legyen MAR SP-1; beolvassa a verem 2. szavát.
InvokevirtuaiS MAR = SP = MDR Legyen SP, MAR az a hely ahol a régi PC-t tartjuk.
swap2 MAR = SP Előkészíti írásra az új 2. szól.
invokevirtual9 MDR = OPC;wr Előkészíti a régi PC mentését.
swap3 H = M DR:wr Az új TOS-t elmenti; a 2. szót a verembe írja.
invokevirtuailO MAR = SP = S P -H A növelt SP oda mutat, ahol a régi LV-t tartjuk.
swap4 MDR = TOS A régi TOS-t MDR-be másolja.
invokevirtuaill MDR = LV;wr A régi LV tárolása.
swapS MAR = S P - l; w r A régi TOS-t a verem 2. tielyére írja.
invokevirtuail 2 LV =TOS; LV mutasson a nulladik paraméterre.
swap6 TOS = H; goto (M BRl) Frissíti TOS-t.
Invokevirtuail 3 TOS = MDR; goto (M BRl) TOS = a hívó LV-je
bipushl SP = MAR = SP + 1 Beállítja MAR-t a verem új tetejénel< írására.
Ireturnl MAR = SP = LV;rd SP, MAR visszaállítása a kapcsoló mutató olvasásához.
bjpush2 MDR = TOS = M BR l:w r; goto (M BRl) Frissíti a vermetTOS-ban és a memóriában.
ireturn2 Várakozás a kapcsoló mutatóra.
iloadl MAR = LV + M B R l U;rd MAR legyen LV -i-index; operandus beolvasása.
ireturn3 LV = MAR = MDR;rd LV, MAR legyen a kapcsoló mutató; a régi PC olvasása.
iload2 MAR = SP = SP + 1 SP növelése; MAR legyen az új SP.
ireturn4 MAR = LV-H MAR mutasson a régi LV re.
iIoadS TOS = MDR:wr; goto (M BRl) Frissíti a vermetTOS-ban és a memóriában.
ireturnS PC = MDR;rd PC helyreállítása; régi LV olvasása.
istorel MAR = LV + MBR1U MAR legyen LV + index.
ireturnó MAR = SP A verem új tetejere írás előkészítése.
istore2 M DR=TO S;w r TOS másolása; szó írása.
Ireturn? LV = MDR LV helyreállítása.
ístoreS MAR = SP = S P - l; r d SP csökkentése; az új TOS beolvasása.
ireturnS MDR = TOS;wr; goto (M BRl) Visszatérési érték tárolása a verem eredeti tetején.
istore4 Olvasásra vár.
istoreS TOS = MDR; goto (M BRl) Frissíti TOS-t.
4.30. ábra. A Mic-2 mikroprogramja (folytatás)
widel goto (M BRl OR 0x100) A következő cim: múvkód OR 0x100,
wide iloadl MAR = LV + MBR2U;rd: goto iload2 Azonos iloadl-gyei, de 2 bájtos indexet iiasznái
w id ejsto rel MAR = LV + MBR2U: goto istore2 Azonos istorel-gyel, de 2 bájtos indexet használ.
Id e w l MAR = CPP + MBR2U: rd; goto iload2 Olyan, mint wide3_iioadl, de CPP-t indexeli.
4.4.4. Csővonalas terv: a Mic-3
iincl MAR = LV + M BRlU ;rd MAR legyen LV + index az olvasáshoz.
iinc2 H = MBR1 H legyen a konstans.
iincS MDR = MDR + H; wr; goto (M BRl) Növeli a konstanssal és frissíti.
V ilágos, hogy a M ic-2 a M ic-1 továbbfejlesztése. G yorsabb, és kevesebb v ezérlő ­
gotol H = PC-1 PC-t H-ba másolja. tá ra t használ, b ár az IF U költsége v itath atatlan u l nagyobb, m int am it a kisebb vc-
goto2 PC = H + MBR2 Eltolást hozzáadja és frissíti PC-t. z é rlő tárra l nyerünk. Tehát je len ték en y m é rték b en gyorsabb g ép et k ap tu n k valam i­
goto3 Várnia keli, hogy IFU frissüljön. vel m ag asab b áro n . N ézzük m eg, vajon teh etjü k -e m ég gyorsabbá.
goto4 goto (M BRl) Elágazás az új utasításra.
ifltl
M i len n e, ha m eg p ró b áln án k csökkenteni a ciklusidőt? A ciklusidőt jelen tő s
MAR = SP = S P - l; r d Beolvassa a verem teteje alatti szót.
iflt2 OPC=TOS TOS-t ideiglenesen OPC-be menti.
m é rté k b e n a lap k atech n o ló g ia h atáro zza nicg. M inél kisebbek a tranzisztorok, és
m inél kisebb a k ö zö ttü k levő fizikai távolság, annál gyorsabban tud az ó ra futni.
Egy a d o tt tech n o ló g ia esetén egy teljes ad atú tm ű v elet vég reh ajtásáh o z szükséges
4.30. ábra. A M ic -2 mikroprogramja
304 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.4. A M IK R O A R C H IT E K T Ú R A S Z IN T JÉ N E K T E R V E Z É S E 305

rekbe. A z IF U kivételével nem sok p árh u zam o sság jelen ik m eg. A párhu zam o sság
alk alm azása kom oly lehetőség.
M in t elő b b em lítettü k , az óraciklust b e h a tá ro lja az az idő, am i a jel to v a te rje d é ­
séhez szükséges az ad a tú to n . A 4.3. á b ra a külö n b ö ző k o m p o n en sek m iatt fellépő
k éslelteté sek lán co latát m u ta tja be az ad atú tcik lu s alatt. H á ro m fő részből áll az
ad atű tcik lu s ideje;

1. A k iválasztott reg iszterek A és B sínekre v ezetéséh ez szükséges idő.


2. A z A L U és a lé p te tő regiszter m u n k ájáh o z szükséges idő.
3. A z ered m én y ek reg iszterek h ez v ezetéséh ez és táro lásá h o z szükséges idő.

A 4.31. á b rán egy új, az IF U -t is tartalm azó h árom sínes a rch itek tú rát m u tatu n k
be, h áro m további tárolóval (regiszterrel), m elyeket egy-egy sín kö zep ére illesz­
tünk. A tá ro ló k a t m inden egyes ciklusban írjuk. V ég eredm ényben a regiszterek
szétválasztják az a d a tu ta t különböző részekre, am elyek m ost egym ástól függetlenül
m ű k ö d h etn ek . E rre M ic-3 -k én t vagy csővonalas m o d ellk én t fogunk hivatkozni.
H ogyan se g íth etn ek ezek az új regiszterek? M ost h áro m óraciklus kell az a d a tú t
h aszn álatáh o z: egy az A és B táro ló k b etö ltéséh ez, egy az A L U és lé p te tő m ű k ö d é ­
séhez és a C táro ló feltö ltéséh ez, és egy a C tá ro ló visszatöltéséhez a regiszterekbe.
Ő rü lte k vagyunk? (Tipp: n em .) A tá ro ló k b eillesztésének értelm e kétszeres;

1. G y o rsíth atjuk az ó rát, m e rt a m axim ális k ésleltetés m ost rövidebb.


2. M in d en ciklus a latt az a d a tú t m in d en részét használhatjuk.

A z a d a tú t h áro m részre osztásával a m axim ális k ésleltetés csökken an n ak e re d ­


m én y ek é p p en , hogy az órafrek v en cia növ ek ed h et. Tegyük fel, hogy az a d a tú t h á ­
ro m részre osztásával m indegyik k örülbelül h a rm a d olyan hosszú, m int az ered eti,
így az ó ra sebességét m egháro m szo ro zh atju k . (E z nem teljesen valószerű, m ert
k é t m ásik reg iszte rt is hozzá kell venni az a d atú th o z, de első k özelítésnek m ű k ö d ­
ni fog.)
M ivel feltételeztü k , hogy m in d en m em óriaolvasás és -írás k ielég íth ető az 1.
szintű g y o rsítótárból, és ez a g yorsítótár ugyanabból az anyagból készül, m int a re-
’giszterek, to v áb b ra is azt tételezzü k fel, hogy egy m em ó riam ű v elet egy ciklust vesz
igénybe. E zt a gyakorlatban, sajnos, lehet, hogy nem olyan könnyű elérni.
A m áso d ik szem pont tö b b et foglalkozik az á tm e n ő teljesítm énnyel, m int egy
egyedi u tasítás sebességével. A M ic-2 -b en m in d en óraciklus első és h arm ad ik r é ­
szében, az A L U ü resen jár. A zzal, hogy az a d a tu ta t három részre o sztottuk, k é ­
p esek vagyunk az A L U -t m in d en ciklusban használni, h áro m szo r annyi m u n k át
4.31. ábra. A háromsínes adatút, amelyet a Mic-3 használ kihozva a gépből.
M ost nézzük, hogy a M ic-3 a d a tú tja hogyan dolgozik. M ielő tt hozzákezdünk,
idő állan d ó (legalábbis a mi szem szögünkből). M in d a m e lle tt van n ém i szab ad sá­ egy je lö lésre van szükségünk a táro ló k k al kapcsolatban. N yilvánvaló, hogy a tá r o ­
gunk, és n em so k á ra ezt a legteljeseb b m é rté k b e n ki is fogjuk használni. ló k at A, B és C b etű k k el jelöljük, és úgy b án u n k velük, m int a regiszterekkel, nem
M ásik választásunk az, hogy tö b b p árh u zam o sság o t viszünk a gépbe. Je le n p illa­ feledkezve m eg az a d a tú t m egszorításairól. A 4.32. ábrán láth ató p éld a a SWAP
n a tb a n a M ic-2 erő sen szekvenciális. A re g iszte rek et a sín ek re teszi, vár az A L U - u tasítást m egvalósító k ó d so ro zato t m u tatja M ie-2-re.
ra és a lé p te tő re , hogy feldolgozza, azu tá n visszaírja az ere d m é n y e k e t a reg iszte­
306 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.4. A M IK R O A R C H IT E K T Ú R A S Z IN T JÉ N E K T E R V E Z É S E 307

ségét. Ez a növekedés abból a tényből fakad, hogy m inden óraciklusban kiadhatunk


Címke Műveletek Megjegyzések
egy új niikroulasítást, és a M ic-3-nak három szor annyi óraciklusa van m ásodpercen­
sw apl M AR = S P - 1 ;rd L e g y e n M A R SP-1; b e o lva ssa a v e re m 2, szavát.
sw a p 2 M A R = SP Előkészíti írásra az új 2. szót.
ként, m int am ennyi a M ic-2-iiek. Valójában egy csővezetékes C P U -t építettünk.
sw a p 3 H = M D R ;w r Az új TOS-t e lm e n ti; a 2. szót a v e r e m b e írja. Sajnos, nehézségbe ü tk ö ztü n k a 3. ciklusban. S zeretn én k elkezdeni a m u n k át a
sw ap4 M DR=T05 A régi TOS-t M D R -b e m ásolja. swap3-mal, de az első elvégzendő dolog az MDR á tfu tta tá sa az A L U -n, az MDR p e ­
sw apS M AR = S P - l; w r A régi T05-t a v e re m 2. h e ly é re írja.
dig n em tö ltődik fel a m em óriából az 5. ciklus kezdetéig. A zt a helyzetet, ahol egy
sw a p 6 T O S = H ;g o t o (M B R 1 ) Frissíti TOS-t.
m ik ro lép és nem tud indulni, m ert egy ered m én y re vár, am it egy előző m ikrolépcs
4.32. ábra. A SW AP M ic-2 kódja m ég nem h o zo tt létre, valódi fü g g ő ség n ek vagy RAW fü g g ő ség n ek nevezzük. A
függőségekre gyakran a k ad ály o k k én t hivatkozunk. RAW a R ead A fte r W rite (írás
M ost valósítsuk m eg ezt a so ro za to t a M ic-3-on is. N e felejtsü k el, hogy az a d a t­ után olvasás) rövidítése, és azt jelzi, hogy egy m ikrolép és olyan é rté k e t a k ar o l­
á t m ost h áro m ciklust igényel m űk ö d éséh ez: egyet az A és B b etö lté sé h ez , egyet a vasni egy regiszterből, am it m ég nem írtu n k bele. Itt csak egyetlen ésszerű dolgot
m űvelet elvégzéséhez cs a C feltö ltéséh ez, és egyet az ered m én y a reg iszterek b e
írására. M inden egyes ilyen d a ra b o t m iki-olépésn ek hívunk.
IFU
h Reg
[ÍfÍj |=^ Reg [ÍfÜ]=? Reg
[ Í f Ü }=5
Reg
A 4.33. áb ra a SWAP m eg\'alósítását m u tatja M ic-3-ra. Az 1. ciklusban, a sw apl-
nél azzal kezdünk, hogy átmásciljuk az SP-t a B-be. N em érd ek es, hogy mi kerül az
1r I 1 A 11 B 1 I I I Á 1B r . A im
A-ba, m ert ahhoz, hogy a B-ből kivonjunk 1-t, az ENA negálva van (lásd 4.2. ábra).
A z egyszerűség kedvéért, nem fogunk olyan é rté k a d á so k a t m u tatn i, am elyeket nem \ alu/ \ alu/ %
használunk. A 2. ciklusban végrehajtjuk a kivonást. A 3. ciklusban az ered m én y t a I Lé^tő I I L^etö I I Léptető*!

MAR-ba tároljuk, és az olvasásm űvelet m egkezdődik a 3. ciklus végén (a MAR-ba v a­


ló táro lás u tán ). M ivel a m em óriaolvasás egy ciklust igényel, ezért ez m ost nem lesz
IFU ~
kész csak a 4. ciklus végén, e rre utalunk, am ik o r egy MDR-be tö rté n ő é rté k a d á st Reg Reg
m u tatu n k a 4. ciklusban. A z MDR-ből az é rté k n em o lvasható ki az 5. ciklus előtt. 1
I n 11
'
u I

Sw apl Swap2 Swap3 Sw ap4 Sw apS Sw ap6 yALU


MAR = SP -1 ; H =M DR; MAR = SP -1 ; TOS = H; I Léptető I I Léptető]
cy M A R = SP M D R = TOS
rd wr wr g o to (M B R I)
1 B = SP
2 n
C = B-1 B = SP IFU [ÍFU|=:: IFU
Reg Reg Reg 3
3 M A R = C; rd C = B
/
4 M D R = M em M AR = C a
5 B = MDR 3 ^
,ALU,
6 C=B B= TO S
Léptető I Léptető I I Léptető I
7 H = C; w r C =B B = SP
8 M em = M DR MDR = C C = B- 1 B = H
9 M A R = C; w r C = B
IFU
Reg
10 M em = M DR TOS = C
11 g o to (M B R 1 )

4.33. ábra. A SW AP megvalósítása a Mic-3-on


I L éiy 6 I

M ost térjü n k vissza a 2. ciklusra. A swap 2-t m ost m egkezdhetjük m ikrolépésekre


4. ciklus
darabolni, és cl is indíthatjuk azokat. A 2. ciklusban átm ásolhatjuk az SP-t a B-be, az­
után átfu ttath atju k az A L U -n a 3. ciklusban, és végül tároljuk a MAR-ba a 4. ciklus­ Idő
ban. E ddig rendb en van. É rth e tő , h a tovább - m inden ciklusban egy új m ikroutasí-
tást indítva - dolgozunk ezzel a sebességgel, ak k o r m eghárom szorozzuk a gép sebes- 4.34. ábra. Egy csővezeték m unkájának grafikus illusztrációja
308 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE
4.4. A M IK R O A R C H IT E K T Ú R A S Z IN T JÉ N E K T E R V E Z É S E 309

teh e tü n k , k ésleltetjü k a swap3 in d u lását, am íg az 5. ciklusban az MDR felh aszn ál­ százait igényelheti, m inden egyes ciklusban elkészül egy au tó . A gyár képes p e r­
ható v á válik. E la k a d á s n a k nevezzük azt, am ik o r m egállunk, hogy egy szükséges c e n k é n t egy a u tó t gyártani függetlenül attó l, hogy egy a u tó összeszerelése tén y le­
é rté k e t m egvárjunk. E zek u tá n fo ly tath atju k a m ik ro u tasításo k in d ítását m in ­ gesen m ennyi időt vesz igénybe. E z a csővezeték ereje, és a C P U -k b an ugyanolyan
den ciklusban, hiszen tö b b függőség nincs, b á r a swap6 csak é p p en hogy teljesíti
jól alkalm azzák, m int az autógyárakban.
ezt, m ert olvassa a H-t az azt k ö vető ciklusban, hogy a swap3-ban b eleírtu n k . 1la a
swap5 p ró b á lta volna olvasni a H-t, egy ciklusra elak a d t volna.
H a b á r a M ic-3 p ro g ra m tö b b ciklust igényel, m in t a M ic-2 , m égis gyorsabban
fut. H a a M ic-3 ciklusidő AT ns, ak k o r a M ic-3 1 lAT ns-o t igényel a SWAP v ég re ­
4.4.5. Hétszakaszú csővezeték: a M ic-4
hajtásához. E llen b en M ic -2 6 ciklust igényel, m elyek m indegyike 3AT, összesen
A zt a tényt, hogy m in d en egyes m ik ro u tasítás kiválasztja a k ö vetőjét, m ár elm a­
18AT. A csővezeték g yorsabbá teszi a g ép et, m ég a k k o r is, h a egyszer le k ellett áll­
gyaráztuk. A legtöbbjük é p p en a követk ező t választja ki a folyam atban lévő so ro ­
ni, hogy elkerüljün k egy függőséget.
zatb a n , de az utolsó, m int am ilyen a swap 6, általáb an egy tö b b u tas elágazást csinál,
A csővezeték kulcsm ódszer m in d en k o rszerű C P U -ban, így nagyon fontos, hogy
am i eldugítja a csővezetéket, m e rt u tá n a le h etetlen folytatni az elő re b etö ltést. A
jól m egértsük. A 4.34. áb rán a 4.31. áb ra a d a tü tjá t látjuk szem léletesen ábrázolva,
k é rd és kezelésének jo b b m ó d szerére van szükségünk.
m int egy csővezetéket. Az első oszlop azt fejezi ki, hogy mi tö rtén ik az 1. ciklus alatt,
A követk ező (és egyben u tolsó) m ik ro a rc h ite k tú rá n k a M ic-4. F ő alk o tó elem eit
a m ásodik oszlop a 2. ciklust m u tatja és így tovább (feltételezve, hogy nincs elak a­
a 4.35. áb rá n m u tatju k be, tekintélyes m ennyiségű részletet azo n b an az érth e tő sé g
dás). A z árnyékolt te rü let az 1. utasítás 1. ciklusában azt jelzi, hogy az IF U el van
k ed v éért elrejtettü n k . M ic-3 -h o z h asonlóan, van egy IF U , am elyik elő re b etö lt
foglalva az 1. utasítás betöltésével. Egy órajellel később, a 2. ciklus alatt az 1. u tasí­
szavakat a m em ó riáb ó l, és kezeli a k ü lönböző MBR-eket.
tás által igényelt regiszterek az A és B táro ló k b a tö ltő d n ek , és eközben, az IF U a 2.
utasítás betöltésével foglalkozik, ezt jelzi a két árnyékolt téglalap a 2. ciklusban.
Final
A 3. ciklus alatt az 1. u tasítás az A L U -t és a lé p te tő t h asználja, hogy elvégezze IJV M Míkroművkód
Goto
saját m ű v eletét, az A és B tá ro ló a 2. u tasítás szám ára tö ltő d ik fel, és a 3. u tasítás hossz RO M index

b etö ltő d ik . V égül, a 4. ciklus a la tt négy u tasítás dolgozik egy időben. A z 1. u tasítás
Memória
© Sorba állító egység

Mikroművelet ROM
ered m én y ei táro ló d n ak , az A L U elvégzi a m u n k át a 2. u tasítás szám ára, az A és B
tá ro ló feltö ltő d ik a 3. u tasítás szám ára, és a 4. u tasítás b etö ltő d ik .
felöl
utasítás- 1
\ lADD
IS U B
betöltő .........1
H a az 5. és a következő ciklusokat m eg m u tattu k volna, a sém a ugyanaz lenne, ILOAD
egység
m int a 4. ciklusban: az a d a tú t m ind a négy része egym ástól függetlenül dolgozna. IFLT
Dekódoló egység
E z a terv egy 4 szakaszos csővezetéket m u tat, m elynek szakaszai: utasításb etö ltés, Z Z A függő
o p eran d u selérés, A L U -m ű v eletek és regiszterekbe írás. E z hasonló a 2.4. (a) ábra
A mikro-
műveletek
csővezetékéhez, attó l eltekintve, hogy nincs d ek ó d o ló szakasz. Egy fo n to s részletet sora
itt kiem elünk; b ár egy egyedülálló u tasítás négy óraciklust igényel a végrehajtáshoz, A memória
m inden egyes óraciklusban egy új u tasítás kezdődik, egy régi p edig befejeződik. felé/felöl V 4 szakaszt ___________ =
TFányitia fÁ L U I
—^ ^
WHR1
A 4.34. áb rát úgy is n ézh etjü k , hogy m in d en egyes u ta sítá st vízszintesen végig­
©
k övetünk az egész o ldalon keresztül. A z 1. u tasításn ál az 1. ciklusban az IF U d o l­
gozik rajta. A 2. ciklusban a reg iszte reit az A és B sín ek re tesszük. A 3. ciklusban
© Regiszterek 5 szakaszt
irányítja ^LU | C ^ | m |a | B K - MIR2

az A L U és a lé p tető dolgozik neki. V égül, a 4. ciklusban az e red m én y eit v isszatá­


Lnyíti^a^"* [ A ^ I M | A | B ] ^ - MIR3
roljuk a regiszterek b e. Egy dolg o t jegyezzünk meg: négy h a rd v erszelet é rh e tő el,
és m in d en egyes ciklus a la tt egy a d o tt u tasítás csak az egyiküket h asználja, szab a­ '-»t _____ ______
M IR4
d o n hagyva a többi szele te t m ás u tasításo k szám ára.
H asznos analóg ia csővezetékes terv'ünkhöz egy gépkocsi-összeszerelő gyár sze­
relőszalagja. E m odell lényegének m eg rag ad ásáh o z k ép zeljü k el, hogy m inden
p ercb en m eg ü tn ek egy nagy gongot, és e k k o r m in d en a u tó egy hellyel tovább m o ­
zog a szalagon. M inden egyes helyen a m u n k áso k elvégeznek n éh án y m ű v eletet az
e lő ttü k álló au tó n , p éld áu l h o zzáad ják a k o rm án y k e re k e t vagy beszerelik a fé k e­
ket. M inden egyes g o n g ü tésre (1 ciklus) egy új a u tó t helyeznek a szerelőszalag e le ­
jé re , a végén pedig egy kész a u tó g ördül le. így, b á r egy a u tó elkészítése ciklusok
4.35. ábra. A M ic-4 fő alkotóelemei
310 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.4. A M IK R O A R C H IT E K T Ú R A S Z IN T JÉ N E K T E R V E Z É S E 311

A z IF U a bejövő bájtfo ly am o t egy új alk atrész, a dekódoló egység szám ára a d a ­ Négy kü lön MIR-t v ezetü n k b e, hogy telje ssé tegyük ezt a m unkát (lásd 4.35. áb­
golja. E n n ek az egységnek van egy belső R O M -ja, am it az IJV M m űveleti k ó d já­ ra). M in d en eg y es óraciklus k e z d e tek o r (a 4.3. ábrán a \ w id ő ) a MIR3 átm ásolód ik
val indexelünk. M in d en egyes bejegyzés (so r) k ét részből áll: e n n e k az IJV M -u ta- MIR4-be, MIR2 MIR3-ba, MIR1 MIR2-be, és a MIR1 egy friss m ik ro m ű v elettel töltő d ik
sításnak a hossza és egy index egy m ásik R O M -b a , a m ik ro m ű v eletek R O M -jáb a. fe l a m ik rom ű veletek soráb ól. E zu tán m in d en eg y es MIR kiadja a saját v e z é r lő je ­
A z IJV M -u tasítás hossza azé rt kell, hogy a d ek ó d o ló egység felism erje a bejövő leit, de e ze k közül csak n éhán yat haszn álu nk . A MIRI-ből az A é s B m e ző k et arra
b ájtfolyam ban az u tasításo k a t, így m indig tud ja, m elyek a m űveleti kód b ájtjai és használjuk, h ogy kiválasszuk azokat a reg iszterek et, am elyek et az A és B tá r o ló k ­
m elyek az o p eran d u so k . H a egy u tasítás hossza é p p e n 1 b ájt (p éld áu l POP), a d e ­ h o z v ezetü n k , d e az ALU m e ző t a MIRI -ben n em használjuk, é s nin cs sem m i m ásh oz
k ód o ló egység tud ja, hogy a követk ező b ájt egy m űveleti kód. H a azo n b an a je le n ­ h ozzák ap csolva az adatútban.
legi u tasítás hossza 2 bájt, a d e k ó d o ló egység tu d n i fogja, hogy a követk ező bájt Egy óraciklussal k ésőb b ez a m ik rom ű velet átm egy a MIR2-be, és azok a regisz­
egy o p eran d u s, m elyet k ö zvetlenül egy m ásik m űveleti k ód követ. A m ik o r a WIDE terek, m ely ek et kiválasztott, m ost b izto n sá g o sa n az A é s B tárolók ban vannak;
elő tag feltűnik, a követk ező b á jto t egy speciális széles m űv eleti k ó d ra alak ítja át, várva a kalan dok e ljö v e telé t. A z ALU m ező jé t m o st arra használjuk, hogy az A L U -t
p éld áu l W IDE+ ILOAD átalak u l W IDEJLOAD-dá. vezéreljü k . A k ö v e tk e z ő cik lu sb an a C m e z ő fogja az ere d m é n y e k regiszterek b e
A d e k ó d o ló egység elküldi a m ik ro m ű v eletek R O M -jáh o z a saját táb lá za táb a n írását v e zé re ln i. A zu tá n átm egy a MIR4-be, é s e lin d ít egy m e m ó r ia m ű v e le tet, ha
talált indexet a k ö vetkező rész, a sorba állító egység szám ára. E z az egység ném i szü k séges, felh aszn álva a m ost b e tö ltö tt a MAR-t (é s íráshoz az MDR-t).
logikát és két belső tá b lá z a to t tartalm az, egyet R O M -b a n és egyet R A M -ban. A A M ic-4 utolsó szem pontja m ég ném i m egbeszélést igényel: ezek a m ikroelága-
R O M azt a m ik ro p ro g ra m o t tartalm azza, ahol m in d en IJV M -u ta sítá sn ak néh án y zások. N éh ány U V M -utasítás, m int az IFLT, m egkívánja, hogy a feltételes elágazás,
egym ást k övető m ik ro m ű v eletn ek n ev ezett bejegyzése van. A b ejegyzéseknek so r­ m o n d ju k , az N biten alapuljon. A m ik o r egy m ikroelágazás sikeres (m eg tö rtén ik ),
re n d b e n kell elhelyezkedniük, így olyan trü k k nincs m egengedve, m in t a M ic-2- a csővezeték n em fo ly tató d h at. H ogy ezt kezelni tudjuk, hozzávettük a Goto b itet
ben wide_iload2 ug rása iload2-re. M in d en egyes IJV M -so ro z a to t p o n to sa n és teljes a m ik ro m ű v elethez. A m ik o r a sorba állító egység a m ikrom űveletek átm ásolása
terjed elm éb en el kell helyezni, bizonyos so ro z ato k a t tö b b szö r is. kö zb en talál egy olyan m ik ro m ű v eletet, am elynek ez a bitje be van állítva, ráéb red ,
A m ikrom űveletek h aso n líta n ak a 4.5. á b ra m ik ro u tasításaih o z, a NEXT_ADDRESS hogy n eh ézség ek következnek, és elhalasztja a nyugtázás elk ü ld ését a dek ó d o ló
és JAM m ezők azo n b an hiányoznak, és egy új k ó d o ló m ező szükséges az A sín b e ­ egységnek. E re d m é n y k én t a gép elak ad ezen a p o n to n , am íg a m ikroelágazás m eg
m en et előírásáho z. K ét új b it is kell; a Final és a Goto. A Final b it be van állítva m in ­ n em oldódik.
den egyes U V M -m ik ro m ű v elet so ro z atá n a k u to lsó m ik ro m ű v eletén él, hogy je le z ­ E lk ép zelh ető , hogy az elágazáson túli IJV M -u tasításo k ném elyike m á r be van
ze a so ro zat végét. A Goto b it a fe lté te les m ik ro clág azáso k m eg jelö lésére szolgál. táp lálv a a d ek ó d o ló egységbe (de a sorba állító egységbe nem ), mivel nem k ü ld ö tt
E zek n ek a közönséges m ik ro m ű v elettő l k ü lö n b ö ző fo rm á ja van, am ely ta rta lm a z ­ vissza nyugtázó (vagyis folytasd) jelet, am ik a r m eg talált egy Goto bittel b eállíto tt
za a JAM b itek et és a m ik ro m ű v elet R O M -já b a m u ta tó indexet. A zo k at a m ikro- m ik ro m ű v eletet. Speciális h ard v er és m űködés szükségesek, hogy az összevissza­
u tasításo k at, am elyek előzőleg v alam it csináltak az a d a tű tta l, és v é g reh ajto tta k ságot tisztázzák, és visszatáncoljanak, de ezek m ár tú lm u ta tn a k e n n ek a könyvnek
egy feltételes m ik ro elág azást is (p éld áu l iflt4), m ost k ét m ik ro m ű v eletre kell szét­ a té m ak ö rén . A m ik o r E d sg er D ijkstra m eg írta híres levelét „G O T O S tatem en t
d arab o ln u n k . C o n sid ered H a rm fu l” [A G O T O u tasítást k áro sn ak tartju k . (D ijkstra, 1968a)],
A so rb a állító egység a k ö v etk ez ő k ép p en m űködik. Á tvesz egy ind ex et a m ik ro ­ sejtelm e sem volt arról, m ilyen igaza volt.
m űvelet R O M -h o z a d ek ó d o ló egységtől. E z alap ján kik eresi a m ik ro m ű v eletet, és H osszú u ta t já rtu n k be a M ic-1 óta. A M ic-1 nagyon egyszerű h ard v er, szinte
bem ásolja egy belső sorba. M ajd a k ö v etk ező m ik ro m ű v eletet is b em áso lja a so r­ teljes szoftvervezérléssel. A M ic-4 egy erő sen cső v ezetékezett terv h é t szakasszal,
ba, és e zu tá n a k ö v etk ez ő t is. E zt addig folytatja, am íg talál egy olyat, ah o l a Final és sokkal b o n y olultabb h ard v errel. A csővezetéket vázlatosan a 4.36. áb rán m u ta t­
bit 1. E zt is átm áso lja, és m egáll. H a n em talált olyan m ik ro m ű v eletet, am elyben a ju k be, a b ek arik ázo tt szám ok a 4.35. á b ra alk o tó elem eire hivatkoznak. A M ic-4
Goto bit 1, és m a ra d t m ég ele g e n d ő hely a so rb an , a so rb a állító egység egy nyug­ ö n m ű k ö d ő e n elő re b e tö lt egy bájtfolyam ot a m em óriából, d ekódolja IJV M -u ta-
tázó je le t küld vissza a d e k ó d o ló egységnek. M iu tán a d ek ó d o ló egység fo g ad ta a sításokká, egy R O M -o t használva átalak ítja m ik ro m ű v eletek sorozatává, és sorba
nyugtázást, a követk ező U V M -u tasítás ind ex ét elküldi a so rb a állító egységnek.
Ilyen m ód o n a m em ó riá b a n lévő IJV M -u ta sítá so k so ro za ta alap v e tő en átalak u l
m ikrom űveletek so ro z a tá ra egy sorban. E zek a m ik ro m ű v eletek táp lálják a MIR-
© ©
eket, am elyek je le k e t k ü ld en ek az a d a tú t v ezérléséhez. D e van itt egy m ásik té ­
nyező is, am it figyelem be kell venn ü n k : a m ező k az egyes m ik ro m ű v eletb en nem
ugyanabban az id ő b en h atn ak . A z A és B m ezők az első, az ALU m ező a m ásodik,
a C m ező pedig a h a rm ad ik ciklus a latt vezérel, és valam ennyi m em ó riam ű v elet a
negyedik ciklusban k erül sorra. 4.36. ábra. A M ic-4 csővezeték
312 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.5. A T E U E S fT M É N Y N Ö V EL É SE 313

állítja felhasználásra, ahogy kell. A csővezeték első h áro m szakasza az a d a tú t ó rá ­ útja, h a m in d en t elölről kezdenek. Ilyen áttö ré s volt az 1980-as években a R ISC -
jához k ö th ető , de nincs m indig elvégzendő m unka. P éld áu l, az IF U bizto san nem fo rrad alo m ; egy m ásik pedig m ost van a levegőben. E n n ek egy p éld áját (az Intel
képes m inden óraciklusnál egy új IJV M m űveleti k ó d o t táp láln i a d e k ó d o ló egy­ IA -6 4 -e t) az 5. fejezetb en nézzük meg.
ségbe, m ert az IJV M -u tasításo k n éh án y ciklust igényelnek a v ég reh ajtásh o z, a sor A szakasz h átralév ő részéb en a C P U teljesítm ényének jav ítására négy k ü lö n ­
pedig gyorsan túlcsordulna. böző m ó d szert fogunk m egvizsgálni. H áro m jól bevált m egvalósításjavítással kez­
M inden egyes óracik lu sb an a MIR-ck elő re lépnek, és a sor alján lévő m ikrom ű- dünk, és azu tán á tté rü n k egy olyanra, am ely kis a rc h itek tú ratám o g atást is igényel,
velet b em ásolód ik a MIRI-be, hogy elkezdje a vég reh ajtást. A négy MIR-ből jövő hogy jo b b an dolgozzon. E zek a m ó d szerek a gyorsítótár, az elágazásjövendölés, a
vezérlőjelek ekk o r k iterjed n ek az a d a tú t felé, tevékenységek b e k ö v etk e zését e re d ­ so rren d tő l e lté rő végrehajtás regíszterátnevezéssel és a feltételezett végrehajtás.
m ényezve. A z egyes MIR-ek az a d a tú t k ü lö n b ö ző részeit vezérlik, és e n n ek m egfe­
lelően k ü lönböző m ik ro lép ések et.
E bben a terv b en egy m élyen cső v ezeték ezett C P U -n k van, am ely leh ető v é te ­ 4.5.1. Gyorsítótár
szi, hogy az egyes lépések nagyon rövidek legyenek, és ennélfogva az ó ra fre k v e n ­
cia m agas legyen. Szám os C P U alap v e tő en ilyen m ó d o n van tervezve, k ü lö n ö ­ A tö rté n e le m folyam án a szám ítógép-tervezés egyik legnagyobb kihívása egy olyan
sen azok, m elyeknek egy rég eb b i (C IS C ) u tasításh alm azt kell m egvalósítaniuk. m em ó riaren d szerrő l gondoskodni, am ely azzal a sebességgel képes szolgáltatni az
P éldául, a P entiu m 4 m egvalósítása elviekben bizonyos szem p o n tb ó l h aso n ló a o p e ra n d u so k a t a processzornak, ahogy az fel tu d ja azo k at dolgozni. Az utóbbi
M ic-4-hez, ahogy azt k ésőbb látn i fogjuk eb b en a fejezetb en . id ő k b en a p rocesszor nagyarányú sebességnövekedését nem követte a m em ória
m egfelelő sebességnövekedése. A z utóbbi évtizedek a latt a C P U -h o z viszonyítva
a m em ó riák lassabbá váltak. M ivel az elsődlegesV iernóriának óriási a jelentősége,
ez a helyzet nagyban k o rláto zta a nagy teljesítm ényű ren d szerek kifejlesztését, és
4.5. A teljesítmény növelése a rra ö sztö n ö zte a k u tatást, hogy a m em ó ria sebességének p ro b lém ája felé fo rd u l­
jon , m ely sebesség sokkal alacsonyabb, m int a C P U -é, a k é t sebesség aránya pedig
M inden szám ítógépgyártó azt szeretn e, hogy ren d szerei a leh ető leggyorsabban fus­ m in d en évben egyre rosszabbá válik.
sanak. E b b en a szakaszban m egvizsgálunk szám os fejlett tech n ik át, am elyet azért A m o d ern p rocesszorok nyom asztó követelést tám asztan ak a m e m ó riaren d ­
k u tatn ak , hogy növeljék a re n d szer (első so rb an a C P U és a m em ó ria) teljesítm é­ szerekkel szem ben m ind várakozásban (egy o p e ra n d u s szolgáltatásának késése),
nyét. A szám ítógépipar rendkívül versenyképes term ész e té n e k k ö szö n h ető en m eg­ m ind sávszélességben (időegység alatt szo lg áltato tt adatm ennyiség) kifejezve.
lepően rövid a lem arad ás a szám ítógépek gyorsítási leh ető ség eit feltáró új k utatási Sajnos, a m em ó riaren d szer e két szem pontja h ad iláb o n áll egym ással. Sok sávszé­
elképzelések és azok term ék ek b en való m eg testesülése k özött. K ö vetkezésképpen, lességet növelő m ód szer csak a várakozás növelésének rovására m űködik. P éldául
a legtöbb itt tárgyalt elv m á r létező term é k e k széles választék áb an használatos. a M ie-3 -b an használt csővezetékes m ódszert t()bbszörös, átlap o lt m em ó ria k é ré ­
A m egtárgyalan d ó elm életek du rv án k ét fo g alo m k ö rb e esnek: a m egvalósítás sek h aték o n y kezelésére alkalm azhatjuk egy m cm ó riaren d szern él. Sajnos, m int a
javítása és az arc h ite k tú ra tö k életesítése. A m egvalósítás jav ítása m ó d szer arra, M ic-3 -n ál, ez nagyobb várakozást ered m én y ez az egyedi m em ó riam űveleteknél.
hogy új C P U -t vagy m e m ó riát ép ítsü n k a re n d szer fu tá sá n a k gyorsítására az a r­ A hogy a p ro cesszor órasebessége nagyobbá válik, egyre n eh ezeb b olyan m em ó ria­
ch itek tú ra m egv álto ztatása nélkül. E z azt is jelen ti, hogy a régi p ro g ram o k futnak ren d szerrő l gondoskodni, am ely alkalm as egy vagy két óraciklus alatt szolgáltatni
m ajd az új gépen , am i az egyik fő é rték esítési szem p o n t. A m egvalósítás jav ítá sá ­ az o p e ra n d u so k at.
nak egyik m ódja gyorsabb ó ra h aszn álata, de n em ez az egyetlen m ód. A z elé rt A z egyik m ó d e n n ek a p ro b lém án ak a legyőzésére a g yorsítótár alkalm azása.
teljesítm ény a 80386-tól a 80486-on a P en tiu m o n és a P entium Pro-n k eresztü l a M int azt a 2.2.5. részben láttuk, a g yorsítótár a legutóbbi időben használt m em ó ­
P entium 4-ig a jo b b m egvalósításnak k ö szö n h ető , mivel az a rc h ite k tú ra alap v e­ riaszavakat tartalm azza egy kis, gyors m em ó riáb an , felgyorsítva azok elérését. H a
tő en ugyanaz m a ra d t m indegyiknél. a szükséges m em óriaszavak elég nagy százaléka van a gyo rsító tárb an , a tényleges
B izonyosfajta javulás e lé rh e tő csupán az a rc h ite k tú ra m eg változtatásával. N éh a m em ó riav árakozás óriási m érték b en csökkenhet.
ezek a változások bővítések, m in t péld áu l új u tasításo k vagy reg iszterek h o zzá­ A z egyik leghatékonyabb m ódszer, m ind a sávszélesség, m ind a várakozás javí­
ad ása úgy, hogy a régi p ro g ra m o k to v áb b ra is fussanak az új m o d ellek en . E bben tá sá ra a tö b bszörös gyo rsító tárak alkalm azása. A z alapm ódszer, am i nagyon h a ­
az e setb en a csúcsteljesítm ényt úgy é rh e tjü k el, hogy m eg v álto ztatju k a szoftvert, ték o n y an m űködik, az, hogy különálló g y o rsító tárak at vezetü n k be az utasítások
vagy legalábbis ú jrafo rd ítju k egy olyan fo rd ító p ro g ram m al, am ely kih aszn álja az és az a d a to k szám ára. T ö b b előny szárm azik abból, ha az utasítások és az ad ato k
új tu lajdonságok előnyeit. szám ára kü lönálló g y orsítótár van, am it gyakran szétv álaszto tt g y o rsító tá rn a k n e ­
M indazonáltal, valam ik o r az elm últ év tized ek b en a tervezők rájö ttek , hogy a ré ­ veznek. E lő ször is. a m em ó riam ű v elctek függetlenül in d u lh atn ak m inden egyes
gi a rc h itek tú rák b a n rejlő összes leh ető ség et kiak n ázták m ár, és a fejlődés egyetlen gy o rsító tárb an, ténylegesen m egkettőzve a m em ó riaren d szer sávszelesscget. Ez
314 4. A M IK R O A R C H IT E K T Ü R A SZ IN T JE 4.5. A T E L JE S ÍT M É N Y N Ö V EL É SE 315

az oka annak, hogy van é rtelm e két külön m e m ó ria p o rlró l g o n d osk o d n i, m int azt c serélő algo ritm us kihasználja az időbeli lokalitást, am ikor azo k at a b eíráso k at
a M ie -l-n é l tettü k : m in d en p o rtn ak m egvan a saját g y o rsító tára. M egjegyezzük, do b ja el, am elyeket m o stan áb an nem használtak.
hogy m inden egyes g y o rsító tárn ak független hozzáférése van a fő m em ó riáh o z. M inden g yorsítótár a következő m odellt hasznalja. A fő m em ó ria fel van o szt­
M a m ár sok m e m ó ria re n d sze r b o n y o lu ltab b en n él, és egy további, 2. színtű va r()gzített m é re tű b lokkokra, am iket g y o rsítósoroknak nevezünk. Egy gyorsító­
gyorsítótárnak n ev ezett g y o rsító tár leh e t az utasítás- és a d atg y o rsító tár és a fő ­ so r jellem ző en 4 -6 4 egym ást követő bájtból áll. A sorok 0-val kezdve m eg vannak
m em ó ria között. V alójában a g y o rsító tárn ak h áro m vagy több szintje is lehetséges, szám ozva, így 32 b ájto s so rm érettel a 0. sor a 0-31. bájt, az I. sor a 32-63. bájt és
ahogy egyre kifin o m u ltab b m em ó ria re n d sz ere k re van igény. A 4.37. áb rán látu n k így tovább. B árm elyik p illan atb an néhány sor a g yorsítótárban van. A m ikor m e ­
egy rendszert, h áro m szin tű g y o rsítótárral. M aga a C P U lapka tarta lm a z egy kis m óriah iv atk ozás tö rtén ik , a gyorsítótár vezérlő á ram k ö re m egvizsgálja, hogy a
-je lle m z ő e n 16-64 K B -os - utasítás- és egy a d atg y o rsíló tárat. A zu tán o tt van a 2. h iv atk o zo tt szó ép p en a g y o rsító tárb an van-e. H a igen. ak k o r az o tt lévő é rté k e t
szintű gyorsítótár, am elyik nincs ra jta a C P U lapkán, de b en n e le h et a C P U to k ­ leh e t használni, és ezzel m eg tak arítu n k egy u tat a főm em óriához. H a nincs o tt a
ban, közel a C P U lapkához, és azzal egy nagy sebességű útvonal köti össze. Lz a szó, ak k o r valam elyik sorbejegyzést kitesszük a gyorsítótárból, és helyette betíMt-
gyorsítótár általáb an egyesített; a d a to k és u tasításo k k ev erék ét tartalm azza. Az jü k a szükséges sort a memcSriából vagy a m a g s a b b szintű gyorsítótárból. E n n ek a
L2 gyorsítótár jellem ző m é rete 512 KB és 1 M B k ö zö lt van. A h arm ad ik szintű terv n ek tö b b v álto zata is létezik, de m indegyikben az az ö tlet, hogy a legsűrűbben
g yorsítótár a p ro cesszo rk árty án van, és n éh án y m eg ab ájt S R A M -o t tartalm az, ami haszn ált sorokból annyit tartsu n k a g yorsítótárban, am ennyit csak lehet, és ezáltal
sokkal gyorsabb a D R A M -m em ó rián ál. A g y o rsító tárak á ltaláb an egyre bővülők, m axim alizáljuk a gyorsítótárból k ielég ített m em óriahivatkozások szám át.
az 1. szintű g yorsító tár teljes ta rta lm a b e n n e van a 2. szintű g y o rsító tárb an , és a 2.
szintű gyorsítótár teljes ta rta lm a b e n n e van a 3. szintű g)'orsítótárban.
DIrekt leképezésű gyorsítótárak

A legegyszerűbb g y o rsító tár a direkt leképezésű gyorsítótár. A 4.38. (a) ábrán az


CPU lapka egyszintű d irek t leképezésű g y o rsító tárra láth atu n k p éldát. Itt a g yorsítótárnak
Egyesített
L2 Egyesített 2048 bejegyzése van. A g y o rsító tárb an m in d en egyes bejegyzés (sor) p o n to san egy
gyorsítótár L3
rm ILI-Dl gyorsítótár Fömemória
Valid
(DRAM) Címek, melyek ezt a bejegyzést használják
♦ Be­ Tag Data
jegyzés
Billentyűzet- Grafikus Lemez­ 2047 65504-65535, 131040-131071, ...
vezérlő vezérlő vezérlő

Szétválasztott L1 utasítás- és adatgyorsítótár Kártyaszintű gyorsítótár (SRAIVl)


96-127, 65632-65663,131168-131199
64-95,65600-65631, 131136-131167, ..
4.3 7. ábra. Egy rendszer háromszintű gyorsítótárral
32-63, 65568-65599,131104-131135,..

A gyorsítótárak céljuk e lé résé b en kétféle cím lokalitástól függnek. A térbeli lo-


(a)
kalitás az a m egfigyelés, hogy a közeli jö v ő b en valószínűleg el kell érn i azokat a
m em óriahelyeket, am elyek cím e szám szerűen közel van n em rég ib en e lé rt m e m ó ­
riahely cím éhez. A g y o rsító tárak azzal h asználják ki ezt a tu lajd o n ság o t, hogy a
Bitek 16 11 3 2
k é n n é l tö b b a d a to t ho zn ak be, a b b an a rem én y b en , hogy a követk ező k érések n ek
eléb e m eh etn ek . A z időbeli lokalitás azt jelen ti, hogy a n em rég ib en e lé rt m e m ó ­ TAG LINE WORD BYTE
riahelyeket ism ét cl kell érni. E z e lő fo rd u lh a t példáu l a v erem te te jé h e z közeli
m em óriahelyekk el, vagy egy ciklus b elsejéb en lévő utasításo k k al. A z időbeli loka- (b)
litást a g y o rsító tár terv ezésén él e lső so rb an a n n ak e ld ö n té sé n é l leh e t kihasználni,
hogy gyorsítótárh ián y e se té n m it d o b ju n k el egy g yorsítótárból. Sok g yorsítótár- 4.38. ábra. (a) Egy direkt leképezésül gyorsítótár, (b) Egy 32 bites virtuális d m
316 4. A M IK R O A R C H IT E K T Ú R A S Z IN T JE 4.5. A T E U E S f T M É N Y N Ö V EL É SE 317

gyiirsílósorl tarl;ilm ;i/h al a főm cm óriából. 32 bájtos g y o rsíró so rm éretlcl (m int e b ­ E z a leképezési sém a az egym ás u tán következő m em ó riaso ro k at egym ás u tán
ben a p éld áb a n ) a g y o rsító tár (i4 K B -ot tarta lm az h at. M inden gyorsító tár-b ejeg y ­ k ö v etk ező gyorsítótár-bejegy'zcsckre teszi. V alójában ebb en a gyt)rsítótárban leg­
zés iiároni részből áll: feljebb 64 KB egym ás m ellett lévő a d a to t táro lh atu n k . V iszont kél olyan sor,
am elynek a eím e p o n to san 64 K B -tal (65 536 b ájttal) vagy e n n ek bárm ely egész
1. A Valid hit jel/i, hogy van-e ebben a bejegyzésben érvényes adat, vagy nincs. szám ú többszörösével különbözik, nem lehet egyszerre a gyorsító tárb an (mivel
A m ikor a rendszer elindul (bootol), m inden bejegyzést érvénytelennek jelöl meg. ugyanaz a LINE é rték ü k ). H a egy program p éld áu l az .Y helyen lévő a d a to t hasz­
2. A Tag m ező egy 16 bites egyedi é rték b ő l áll, am ely azt a m em ó riaso rt azonosítja, nálja, és u tá n a olyan utasítást hajt végre, am elynek az X + 65 536 helyen (vagy
ah o n n an az ad at szárm azik. ugyanezen a soron belül b árh o l m ásu tt) lévő ad a tra van szüksége, a m ásodik u ta ­
3. A Data m ező a m em ó riáb an lévő ad at m áso latát tartalm azza. Uz a m ező egy sítás ki fogja kényszeríteni, hogy a g yorsítótár bejegyzé.se ú jratö ltő d jö n , felülírva
32 bájtos gyorsítósort tartalm az. azt, am i o tt volt. H a ez elég gyakran m eg tö rtén ik , az gyenge viselkedést e re d m é ­
nyezhet. V alójában a g y o rsító tár legrosszabb esetb en ta n ú síto tt viselkedése rosz-
Egy d irck t lek ép ezésű g y o rsító tárb an egy a d o tt m em ó riaszó p o n to san egy h e ­ szabb, m in th a egyáltalán nem lenne gyorsítótár, mivel m inden m em óriam űv elet
lyen lehet tárolva. H a a d o tt egy m em ó riacím . azt p o n to sa n egy helyen keressük egyetlen szó helyett egy egész gyorsítósor beolvasását vonja m aga után.
a gyorsítótárban. 1la nincs o tt, a k k o r nincs a g y o rsító tárb an . A g y o rsító tárb an az A d irek t leképezésű gyorsítótárak a gyorsítótárak legelterjedtebb fajtái, és m eg­
a d ato k táro lásá h o z és k inyeréséhez négy alk o tó e lem re tagoljuk a cím et, ahogyan lehetősen hatékonyan is m űködnek, mivel az olyan összeütközések, am it fentebb le­
az a 4.38. (b) áb rán látható: írtunk, csak nagyt)n ritkán vagy egyáltalán nem fordulnak elő. Például, egy nagyon
okos ford ító program szám ításba veheti a gyorsítótár-ütközéseket, am ikt)r az utasítá­
1. A TAG (cím ke) m ező a g y o rsító tárb an tá ro lt Tag b itek m egfelelője. sokat és ad ato k at elhelyezi a m em óriában. M egjegyezzük, hogy a m ost leírt ütközés
2. A LINE m ező jc l/i, hogy m elyik gyorsítótár-bejegyzés tartalm azza a m egfelelő nem fordul elő olyan rendszerben, ahol külön van választ\'a az utasítás- és az adat-
a d ato k a t, ha azok a g y o rsító tárb an vannak. ^ o r s ító tá r , mivel az ütköző kéréseket különböző gyorsítótárak fogják kiszolgálni,
3. A WORD m ező num dja m eg, hogy egy so ro n belül m elyik szóra tö rté n ik h iv atk o ­ így láthatjuk a szétválaszti)tt gyorsítótár mást)dik előnyét az egyesítettel szem ben;
zás. nagyobb rugalm asság az egym ásnak ellentm ondó m em óriasém ák kezelésében.
4. A BYTE m ezőt á ltaláb an nem h asználjuk, de ha csak egyetlen b á jtra érkezik k é­
rés, ez m ondja m eg. hogy a szón belül m elyik b ájtra van szükség, ligy olyan
gyorsítótárnál, am elyik csak 32 bites szavakat szolgáltat, ez a m ező m indig 0. Halmazkezelésü (csoportasszociatív) gyorsítótárak

A m ikor a C PU elő állít egy m em ó riacím et, a h a rd v e r kiveszi a cím ből a 11 LINE M int fen teb b em lítettü k , a m em ó riáb an sok k ü lönböző st)r versenyez ugyanazért a
b itet, és indexelésre használja a g y o rsító tárb an , hogy m eg találja a 2048 bejegyzés gyorsítótár-bejegyzésért. H a egy p ro g ram a 4.38. (a) áb ra g y o rsító tárát alk alm az­
egyikét. H a az a bejegyzés érvényes, a m em óriacím TAG m ezője és a g y o rsító tár b e ­ va erő sen h asználja a 0 és 65 536 cím eken levő szavakat, állan d ó összeütközésbe
jegyzésének Tag m ezője összeh aso n lításra kerül. H a m egegyeznek, a k k o r a gyor­ kerü l am iatt, hogy valószínűleg m inden hivatkozás kilöki a m ásikat a g y o rsító tár­
sítótár-bejegyzés tartalm azza a k e re se tt szót, ezt az e se te t g y o rsító tá r-ta lá la tn a k ból. E n n ek a p ro b lém án ak az a m egoldása, hogy két vagy több so rt is m eg en g e­
nevezzük. Egy talá la tn á l a k iolvasandó szót a gyorsító tárb ó l v eh etjü k ki, nem kell d ü n k m in d en gyorsítótár-bejegyzésen. A z olyan g yorsítótárat, am elynek m inden
a m em ó riáh o z fordulni. C sak az é p p e n szükséges szót vesszük ki a g y o rsító tár-b e­ egyes cím hez n lehetséges bejegyzése (bejegyzéshalm aza) van, n utas halm azkeze­
jegyzéséből. A bejegyzés többi részét nem használjuk. H a a g y o rsító tár bejegyzése lésű (vagy csoportasszociatív) g y o rsító tárn ak nevezzük. Egy 4 utas halm azkezelé­
érvénytelen, vagy a cím kék nem egyeznek m eg, ak k o r a k e re se tt bejegyzés nincs sű g y o rsító tárat m u tat be a 4.39. ábra.
a g yorsítótárban, ezt az e se tet g v o rsító tá rh ián y n ak nevezzük. E b b en az esetb en a Egy halm azkezelésü g yorsítótár term ész etesen bonyolultabb, m int egy direkt
32 bájtos gyorsítósor b etö ltő d ik a m em ó riáb ó l, és táro ló d ik a gyorsító tár-b ejeg y ­ lek ép ezésű , mivel a hivatkozott m em óriacím ből csak a bejegyzéshalm az cím e szá­
zésen, átírva azt, am i o tt volt. T erm észetesen, ha a k o ráb b i gyorsítótár-bejegyzés a m íth a tó ki, és a gyorsítótár-bejegyzések n elem ű h alm azát kell ellenőrizni, hogy
betö ltés ó ta m ódosult, az átírás elő tt vissza kell írni a fő m em ó riáb a. o tt van-e a szükséges sor. E n n ek ellen ére a gyakorlat azt m u tatja, hogy a 2 és 4
A d ö n tés bonyolultsága e llen ére a szükséges szó elérése figyelem re m éltó an utas g y o rsítótárak elég jól m ű k ödnek ahhoz, hogy é rd em es legyen ezt a b o n yolul­
gyors lehet. A m in t a cím ism ert, a szó p o n to s helye is ism ert, /ta benne van a f^or- tab b áram k ö ri sém át elkészíteni.
sítótárban. Ez azt jelen ti, hogy leh ető ség van a szó kiolvasására a g y orsítótárból és A halm azkezelésü g y o rsító tár használata a tervezőt m eg ajándékozza egy vá­
to v áb b ítására a processzorhoz, am ik o r a cím kék (tag) ö sszehasonlításával eldől, lasztási lehetőséggel. A m ikor egy új bejegyzést hozunk be a gyorsítótárba, a b en t
hogy ez a m egfelelő szó. így a p ro cesszo r azzal egy időben, vagy a k ár m ég előbb lévő té te le k közül m elyiket kell eldobni? A z t)ptim ális dö n tés, term észetesen , egy
m egkap egy szót a g y o rsítótárból, m ielő tt m eg tu d n á, hogy az a kívánt szó. kis jö v ő b e lá tást igényel, de legtöbbször elég jó algoritm us az LRU (L east Recently
318 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.5. A T E U E S lT M É N Y N Ö V EL É SE 319

Valid Valid Valid Valid és szükség van a m em ó ria á llap o tán ak helyreállítására. Sajnos, ez általáb an n a ­
gyobb írásfo rgalm at követel a m em ó riáb a, így sok kifinom ult m egvalósítás hajlik
I Tag Data | Tag Data | Tag Data | Tag Data
a m ásik m egoldás alkalm azására, am elyet késleltetett írásnak vagy visszaírásnak
2047
neveznek.
A z írásokhoz kapcso ló d ó an m ég egy p ro b lém át kell felvetni: M i a helyzet, ha
olyan helyre tö rté n ik írás, am ely ép p en nincs benn a gy o rsító tárb an ? Be kell hozni
az a d a to t a gyorsítótárba, vagy csak ki kell írni a m em ó riáb a? Ism ét nincs olyan vá­
lasz, am i m indig helyes. A legtöbb, k é slelteteti m em ó riáb a írást alkalm azó k o n st­
rukció hajlik arra, hogy behozza az a d a to t a g y o rsító tárb a íráshiány esetén is. E zt a
m ó d szert írásallokálásnak nevezzük. M ásrészt a legtöbb írá sáte resztő kivitelezés
íráshoz n em tö lt bejegyzést a gyo rsító tárb a, m ert ez az egyébként egyszerű kivite­
lezést b o n y o lu lttá ten n é. A z írásallokálás csak ak k o r előnyös, ha ism ételt írások
tö rté n n e k egy gyorsítósor ugyanazon vagy kü lö n b ö ző szavaira.
A Bejegyzés B Bejegyzés C Bejegyzés D Bejegyzés A g y o rsító tár teljesítm énye m eg h atáro zó a re n d szer teljesítm énye szem p o n t­
jáb ó l, m e rt a C P U és a m em ó ria sebessége k ö zö tt nagyon nagy a különbség.
4.39. ábra. Egy 4 utas halmazkezelésű gyorsítótár K ö v etk ezésk éppen, az egyre jo b b gyorsítótárazási stratég iák fejlesztése m ég m in ­
dig divatos tém a; lásd (A lam eld een és W ood, 2004; H u h és társai, 2004; M in és
Used, legrégebben használt). E z az alg o ritm u s re n d e z e tt listát készít m in d en be- társai, 2004; N esbit és Sm ith, 2004; Suh és társai, 2004).
jegyzcshahnazhoz. V alahányszor a h alm azb an lévő so ro k bárm elyikéhez h o zzá­
nyúlunk, frissíti a listát, m egjelölve ezt a bejegyzést, m int leg u to ljára h aszn áltat.
H a elérkezik az idő, hogy egy bejegyzést kicseréljünk, a lista végén lévő - azaz a 4.5.2. Elágazásjövendölés
legrégebben használt - lesz az. am it eldobunk.
Szélsőséges esetb en 2048 u tas gyo rsító m em ó ria is lehetséges, am ely egyetlen A m o d e rn szám ítógépek m agas szinten eső vezetékezettek. A 4.35. á b ra csővezeté­
h alm azban 2048 bejegyzést ta rtalm az. E k k o r m in d en m e m ó riacím et egyetlen h a l­ k é n ek h ét szakasza van; a csúcsteljesítm ényű szám ítógépeknek n é h a 10vagy m eg
m azba kép ezü n k le, így a k eresés m egköveteli a cím ö sszeh aso n lításá t a g y orsító­ tö b b szakaszú csővezetéke van. A csővezetékek lineáris kóddal dolgoznak legjob­
tárb an lévő m ind a 2048 cím kével. M egjegyezzük, hogy a h alm azk ezelésű gyorsí­ ban , így a b e tö ltő egység é p p en egym ás u tá n i szavakat olvashat a m em óriából, és
tó tá r eseten m ind en egyes bejegyzésnek ren d e lk e zn ie kell egy cím ke-összehason- k ü ld h et a d ek ó d o ló egységhez, m á r m ielő tt szükség lenne rá.
lító logikával. Mivel a LINE m ező m ost 0 hosszúságú, a TAG m ező a teljes cím , e lte ­ Ezzel a csodálatos m odellel az egyetlen kis p ro b lém a az, hogy a legkevésbé sem
kintve a WORD cs a BYTE m ezőktől. Továbbá, h a egy gy o rsító so rt kicserélünk, m ind valószerű. A p ro g ram o k nem lineáris k ó dsorozatok. Teli v an n ak elágazó u ta s ítá ­
a 2048 bejegyzés leh etség es jelö lt a c serére. A 2048 bejegyzés re n d e z e tt listáján ak sokkal. T ekintsük a 4.40. (a) á b ra egyszerű u tasításait. Egy i v áltozót összehasonlí­
k a rb a n ta rtá sa jó sok könyvelési m u n k á t k övetel, hogy az í,R U -c se ré k e t m eg tu d ­ tu n k 0-val (talán a leg általán o sab b vizsgálat a g yakorlatban). A z ered m én y tő l füg­
ju k valósítani. (N e felejtsük el, hogy a listát m in d en m em ó riam ű v eletn él frissíteni gően egy m ásik k változó a k ét lehetséges é rté k egyikét kapja.
kell, nem csak akk o r, ha nincs ta lá lat.) M eglepő, hogy a legtöbb e setb en a sok u tas
h alm azkezelésű g y o rsító tárak n em jav íta n a k a teljesítm én y en sokkal tö b b et, m in t if(i==0) CMP i,0 ; összehasonlítja i-t 0-val
a kevés utasok, és néh án y e setb en m ég ro sszab b is a teljesítm ényük. E z é rt a négy­ k= 1; BNE Else ; elágazik Else-hez, ha nem egyenlő
utas feletti halm azkezelés viszonylag szokatlan. else Then; MOV k,l ; k-ba 1-et tesz
k = 2; BR Next ; feltétel nélküli elágazás Next-hez
A z írások különleges p ro b lé m á t v etn ek fel a g y o rsító tárral kapcso latb an .
Else: MOV k,2 : k-ba 2-t tesz
A m ik o r egy prc)eesszor egy szót ír, és a szó a g y o rsító tárb an van, nyilvánvalóan Next:
vagy frissíteni kell a szót a g y o rsító tárb an , vagy el kell dob n i a bejegyzést. Szinte (a) (b)
m inden ko n stru k ció frissíti a g y o rsító tárat. D e mi a helyzet a fő m e m ó riá b a n lévő
m áso lat frissítésével? E zt a m ű v eletet k éső b b re h alaszth atju k , am ik o r a bejegyzést 4.40. ábra. (a) Egy programrészlet, (b) Fordítása egy általános assembly nyelvre
ki kell cserélni. E z n e h é z d ö n tés, és eg yetlen választás sem eg y értelm ű en k ed v e­
zőbb. A bejegyzés azonnali frissítését a fő m em ó riáb an írásáteresztésnek n evez­ E n n e k egy lehetséges assem bly nyelvű fo rd ítását a 4.40. (b) á b ra m utatja. A z as­
zük. E zt a m egközelítést á ltaláb an egyszerűbb m egvalósítani, és m eg b ízh ató b b is, sem bly nyelvet k ésőbb m ég tárgyaljuk, m ost a részletek nem fontosak, de a géptől
mivel a m em ó ria m indig n ap rak ész - hasznos p éld áu l o lyankor, h a h ib a fo rd u l elő. és a fo rd ító p ro g ram tó l függően a köd többé-kevésbé haso n ló leh et a 4.40. (b) áb-
320 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4,5. A T E L JE S ÍT M É N Y N Ö V EL É SE 321

rán lévőhöz. A z első u tasítás í-t összeh aso n lítja 0-val. A m áso d ik elágazik az Else általáb an beválik az a feltevés, hogy végre kell h ajtani egy visszafelé elágazást a
cím kéhez (az else rész k e z d etéh ez), ha i nem 0. A h arm ad ik u tasítás /:-nak 1 é r­ ciklus elejére.
ték et ad. A negyedik u tasítás a k övetkező u tasítás kód jáh o z ágazik el. A fo rd ító ­ A m áso d ik rész rázósabb. N éhány elő re irányuló elágazás ak k o r fordul elő, am i­
p ro g ram az elérh e tő sé g k ed v é ért egy N ext cím két hely ezett itt el, így ez olyan hely, kor h ib á t észlel a p ro g ram (például egy fájlt nem tu d u n k m egnyitni). A hibák rit­
ahova leh et elágazni. A z ö tö d ik u tasítás a 2 é rté k e t adja /;-nak. kák, így a legtöbb velük összefüggő elágazást nem hajtjuk végre. T erm észetesen
Figyeljük m eg, hogy itt ö t u tasításb ó l k e ttő elágazó. Továbbá egyikük, a BNE fel­ s o k olyan elő re irányuló elágazás van, am i nem kapcsolódik hibakezeléshez, így a

tételes elágazás (olyan elágazás, am i a k k o r és csak a k k o r tö rté n ik m eg, am ik o r egy siker arán y a közel sem olyan jó , m int a visszafelé elágazásnál. B ár nem fan taszti­
feltétel teljesül, eb b en az esetb en , ha az elő ző CMP-ben a k ét o p e ra n d u s n em egye­ kus, de ez a szabály legalább jo b b a sem m inél.
zik m eg). A leghosszabb lineáris k ó d so ro z a t itt k ét u tasítás. E n n e k k ö v etk eztéb en H a egy elágazást p o n to san m egjósoltunk, nincs sem m i különös tennivaló. A
nagyon n eh éz u tasítá so k a t nagy szám ban b e tö lte n i a csővezeték táp lálására. vég reh ajtás ép p en a célcím nél folytatódik. N ehézségbe akkor ü tközünk, am ikor
E lső p illan tásra úgy tű n h e t, hogy nincs p ro b lé m a a feltétel nélküli elág azáso k ­ rosszul jó so ltu n k m eg egy elágazást. N em n ehéz kigondolni, hogy hova kell m enni,
kal, m int am ilyen a 4.40. (b) á b ra BR Next u tasítása. M in d en e se tre afelől nincs k é t­ és n em n e h éz o d am en n i sem . A z a nehéz, hogy visszacsináljuk azokat az u tasításo ­
ség, hogy hova kell m enni. M iért ne tu d n á folytatni a b e tö ltő egység az u tasításo k kat, am ely eket m ár v ég reh ajto ttu n k , és nem k ellett volna.
olvasását a cclcím ről (arró l a helyről, ahová az elágazás tö rté n n i fog)? E h h ez k ét m ó d o n foghatunk. A z első, hogy m egengedjük egy m egjövendölt fel­
A nehézség a csővezeték jelleg éb ő l adódik. P éld áu l a 4.35. áb rá n látjuk, hogy az téte le s elágazás u tán b etö ltö tt utasításo k v ég reh ajtását, egészen addig, am íg nem
utasítás d ek ó d o lás a m ásodik szakaszban tö rtén ik . így a b e tö ltő egységnek el kell p ró b á ljá k m egváltoztatni a gép á llap o tát (például egy regiszterbe táro lással). A
d ö n ten ie, hogy h o n n an töltse be a követk ező t, m ég m ie lő tt tu d n á , m ilyen u ta sí­ reg iszte r felülírása helyett a szám íto tt é rté k e t betesszük egy (re jte tt) firkáló re ­
tást k a p o tt utoljára. C sak egy ciklussal k ésőbb tu d h a tja m eg, hogy p o n t egy fe lté ­ g iszterbe, és csak ak kor m ásoljuk a valódi regiszterbe, am ikor m á r tudjuk, hogy
tel nélküli elágazási u tasítást k ap o tt, és ak k o rra m á r e lk ez d te a fe lté te l nélküli e l­ a jö v en d ö lésü n k helyes volt. A m ásodik m ódszer, hogy feljegyezzük (például egy
ágazást követő u tasítást b etö lten i. E n n e k k ö v etk ez téb en a cső v ezeték et alkalm azó re jte tt firkáló regiszterbe) m in d en olyan regiszter érté k é t, am ely esetleg m ajd fe ­
gép ek (m int az U ltraS P A R C III) tek in tély es részén ek m egvan az a tulajd o n ság a, lülíródik, így a gép visszaforgatható a tévesen m egjósolt elágazáskori állapotába.
hogy egy feltétel nélküli elágazást kö vető u tasítás v ég reh ajtó d ik , an n a k ellen ére, M in d a k é t m egoldás bonyolult, és ipari erősségű könyvelést követel, hogy helye­
hogy logikusan n em kellene. Az elágazás m ö g ö tti helyet elto lási ré sn e k nevezzük. sen végezzük el. É s h a egy m ásodik feltételes elágazást találu n k , m ielőtt kiderül,
A P entium 4 [és a 4.40. (b) áb rá n h aszn ált gép] nem ren d elk ezik ezzel a tu la jd o n ­ hogy az elsőt helyesen jó so ltu k -e m eg, a dolgok valóban összekeveredhetnek.
sággal, de a p ro b lé m a m eg k erü lésén ek b első ö sszetettség e gyakran óriási. Egy o p ­
tim alizáló fo rd ító p ro g ra m m eg p ró b ál valam ilyen hasznos u tasítá st találni, am it az
eltolás résb e te h e t, de gyakran nincs sem m i felh aszn álh ató , így k én y telen egy NOP Dinam ikus elágazásjövendölés
utasítást o d aten n i. E zzel a p ro g ram helyességét m egőrizzük, de h o sszab b á és las-
sabbá tesszük. V ilágos, hogy nagyszám ú p o n to s jö v en d ö lés lehetővé teszi a C P U -n ak , hogy te l­
B osszantók a feltétel nélküli elágazások, de a feltételes elágazások m ég rosz- jes sebességgel haladjon. E n n e k követk eztéb en szám os jelenlegi k u tatás az e l­
szabbak. N em csak eltolási rése k e t ho zn ak létre, h an e m a b e tö ltő egység m ég azt ágazást jö v en d ö lő algoritm usok jav ítását célozza (C h en és társai, 2003; Falcon és
sem tu d ja, hogy h o n n a n olvasson, am íg a feltéte le s elágazás sokkal m élyebbre társai, 2004; Jim enez, 2003; Parikh és társai, 2004). A z egyik m egközelítés, hogy a
nem kerül a csővezetékbe. A k o rai csővezetékes g ép ek csaknem b ed u g u ltak , am íg C P U egy elő zm énytáblát ta rt fen n (egy különleges h ard v erb en ), am elyben feljegy­
nem d erü lt ki, hogy lesz elágazás, vagy sem . H á ro m vagy négy ciklusra bedu g u ln i zi az elő fo rd u ló feltételes elágazásokat, így k ik eresh ető k , ha ism ét előfordulnak.
m in d en feltételes elágazásnál, k ülö n ö sen , ha az u tasításo k 20% -a felté te les elág a­ E n n e k a m ó d szern ek a legegyszerűbb v álto zata láth ató a 4.41. (a) ábrán. Itt az
zás, a teljesítm ény rom lásával bosszulja m eg m agát. elő zm én y táb la m inden feltételes elágazásra ta rtalm az egy bejegyzést. A bejegyzés
K övetk ezésk ép p en a legtöbb gép, am ik o r talál egy fe lté tele s elágazást, m eg jö ­ tartalm a zz a az elágazó utasítás cím ét egy bittel együtt, am ely m egm ondja, hogy
vendöli, hogy végre kell h ajtan i, vagy nem . K ellem es len n e, ha b ed u g h a tn á n k egy m e g tö rté n t-e az elágazás, am ik o r legutoljára v ég reh ajto ttu k . E zt a ren d szert hasz­
kristálygöm böt egy szabad P C I-csatlak o zó b a, hogy segítsen a jö v en d ö lésb en , de nálva a jö v endölés egyszerűen az, hogy az elágazás ugyanazt az u ta t fogja követni,
m indeddig ez a m egközelítés nem h o z o tt ered m én y t. m in t legutóbb. H a a jö v en d ö lés rossz, a bit m egváltozik az előzm énytáblában.
Egy ilyen p erifé ria h ián y áb an k ü lönféle m ó d szerek et g o n d o ltak ki a jö v e n d ö ­ Szám os m ódszer van az előzm énytábla szervezésére. V alójában ezek p o n to ­
lésre. Egy nagyon egyszerű jö v en d ö lés a következő; tételezzü k fel, hogy m in d en san ugyanazok a m ódszerek, m int am iket a gyorsítótár szervezésénél használunk.
visszafelé tö rté n ő felté tele s elág azást végre fogunk h ajtan i, és az összes elő re irá- Tekintsünk egy g ép et 32 bites utasításokkal, am elyek szó h atáro n kezdődnek, vagyis
nyuJót nem . A z első rész m e lle tt szól az az érv, hogy a visszafelé elágazások gyak­ m inden m em óriacím alsó k ét bitje 00. Egy direkt leképezésű, 2" bejegyzést ta rta l­
ran egy ciklus végén hely ezk ed n ek el. A legtöbb ciklust tö b b szö r hajtju k végre, így m azó előzm énytábla esetén egy elágazó utasítás alsó n -t- 2 bitjét kivehetjük, és 2
322 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.5. A T E U E S lT M É N Y N Ö V EL É SE 323

Elágazás Jö v e n d ö lő Elágazás
Nincs elágazás Elágazás
Valid van/nincs Valid Valid bitek
Elágazási Elágazási |
Be­ Be- Be­
cím cím kéje | Célcím
cím cím kéje
jegy­ jegy-r je g y ­
z é s e it ----------------u zés; zés;:

0 0

(a) (b) (c)

Nincs elágazás
4.41. ábra. (a) Egy 1 bites elágazás előzménytáblája, (b) Egy 2 bites elágazás
előzménytáblája, (c) Egy leképezés az elágazó utasítás címe és a célom között
4.42. ábra. Egy 2 bites véges állapotú gép elágazásjövendölésre
b ittel jo b b ra lép teth etjü k . A z « bites szám ot in dexként h aszn álh atju k az előzm ény­
táblához, ahol ellen ő rzést végzünk an n a k m eg állap ítására, hogy az o tt tá ro lt cím rossz, átm egy ül állap o tb a, de legközelebb ugyanúgy „nincs elág azás”-t jövendöl.
m egegyezik-e az elágazás cím ével. A k árcsak a gyorsító tárn ál, nincs szükség az alsó C sak h a ez a jö v en d ö lés is rossz, ak k o r fog átm en n i 11 állapotba, és folyam atosan
n + 2 bit táro lásá ra, így m ellő zh ető k (azaz csak a felső cím b itek et - a cím két - tá ­ elágazást jövendölni. G yakorlatilag az állap o t bal szélső bitje a jövendölés, a jobb
roljuk). H a talála t van, a jö v en d ö lő b ite t h asználjuk az elágazás jó slására. H a rossz szélső bit p ed ig az, hogy mi tö rté n t az elágazásban legutóbb. M íg ez az elgondolás
eím ke van ott, vagy a bejegyzés é r\'é n \te le n . hiány lép fel éppúg)', m int a gyorsító­ csak 2 b itet igényel az előzm énytáblából, olyan kivitelezés is lehetséges, am elyik 4
tárnál. E b b en az e setb en az előre/visszafelé elágazási szabályt alkalm azhatjuk. vagy 8b ittel követi nyom on az esem ényeket.
H a az elágazás clőzm énytábla, m ondjuk, 4096 bejegyzést tartalm az, a 0, 16384, Ez nem az első FSM -ünk, A 4.28. áb ra szintén FSM volt. V alójában m inden
32768, ... cím eken lévő elág azáso k ö sszeü tk ö zésb e k erü ln ek , h aso n ló an a gyorsí­ m ik ro p ro g ram u n k F S M -nek tek in th ető , mivel m inden sor a gép egy m e g h a tá ro ­
tó tá r ugyanilyen p ro b lém ájáh o z. U gyanaz a m eg o ld ás is lehetséges: egy k étu tas, z o tt á llap o tát képviseli, jól m e g h atáro zo tt átm en etek k el m ás állap o to k egy véges
egy négyutas vagy egy n u tas asszociatív bejegyzés. U gyanúgy, m int a g y o rsító tár­ halm azáb a. A z F S M -eket igen széles k ö rb en alkalm azzák a h ard v erterv ezés m in ­
nál, a h a tá re se t egyetlen n u tas asszociatív bejegyzés, am ely m egköveteli a k ik ere­ den te rü le té n .
sés teljes asszociativitását. M in d ed d ig feltételeztü k , hogy m in d en feltételes elágazás célp o n tja ism ert, je l­
H a elég nagy a tá b la m ére t, és e leg e n d ő az asszociativitás, ez az e lren d ezés a leg­ lem ző en vagy egy h a tá ro z o tt cím , ahova el kell ágazni (az utasítás tartalm azza a
tö b b esetb en jól m űködik. V iszont egy p ro b lé m a ren d sze re se n elő fo rd u l. A m ik o r cím et), vagy m int egy relatív eltolás a jelenlegi u tasításh o z k ép est (például egy e lő ­
a ciklus végül kilép, a végén az elágazást tévesen jö v en d ö li, és am i m ég rosszabb, a jeles szám , am it az u tasításszám lálóhoz kell h o zzáadni). G yakran jogos ez a fel­
rossz jö v en d ö lés m eg v álto ztatja az elő zm én y táb lát, „nincs elág a zás”-nak állítja be tételezés, de néhány feltételes elágazó u tasítás a célcím et reg iszterek en végzett
a k övetkező jö v en d ö lést. A m ik o r legközelebb a ciklusba lép ü n k , az első ism étlés aritm etik ai m űveletekkel szám olja ki, és úgy ugrik el. M ég ha a 4.42. áb rán lévő
végén az elágazást rosszul fogja m egjövendölni. H a a ciklus egy külső ciklus b else­ F S M p o n to san m eg is jöv en d ö li az elágazást, az olyan jöven d ö lésn ek nincs haszna,
jé b e n van, vagy egy gyakran m eghívott eljárásb an , ez a hib a gyakran e lő fo rd u lh a t. am elynél a célcím ism eretlen. E helyzet kezelésének egyik m ódszere, hogy az előz­
H ogy kiküszöböljük ezt a téves jö v en d ö lést, a táb lázat bejegyzésének a d h a tu n k m én y táb láb an táro lju k azt a tényleges cím et, ahova legutóbb elágaztunk, ahogy az
egy m ásodik leh ető ség et. E zzel a m ó d szerrel a jö v en d ö lés csak kél egym ás utáni a 4.41. (c) áb rán láth ató . Ily m ód o n , h a a tábla azt m ondja, hogy legutóbb az 516-
helytelen jö vend ö lés u tán változik m eg. E z a m egközelítés két jö v e n d ö lő bit m eg ­ os cím en lévő elágazás a 4000-es cím re u g rott, akkor a m unk ahipotézis, ha a jö ­
létét követeli m eg az elő zm én y táb láb an , egyet arra, hogy az elágazás „ fe lte h e tő ­ ven d ö lés m ost „van elágazás”, ism ét 4000-re tö rté n ő elágazás lesz.
leg” m it fog tenn i, és egyet a rra , hogy m it te tt legutóbb, ahogy azt a 4.41. (b) áb ra A z elágazásjíjvcndölés egy m ásik m egközelítése, hogy azt figyeljük, hogy az
m utatja. u tolsó k feltételes elágazást végre k ellett-e hajtani, függetlenül attó l, hogy melyik
Kicsit m ás szem szögből nézve ezt az alg o ritm u st, te k in th e tjü k úgy, m int egy vé­ u tasítás volt az. E zt a k bites szám ot, am elyet az elág azási elő/iiiények blokkos re ­
ges állap o tú gép et négy á llap o ttal, ahogy azt a 4.42. áb rá n is láth atju k . Egy so ro ­ g iszteréb en táro lu n k , összehasonlítju k p árh u zam o san az előzm énytábla m inden
zat egym ás után k övetkező sikeres „nincs elág a zás” jö v en d ö lés után FSM 00 álla­ bejegyzésének k bites kulcsával, és találat esetén az o tt talált jö v en d ö lést h asznál­
p o tb an lesz, és legközelebb „nincs e lág a zás”-t fog jö v en d ö ln i. H a ez a jö v en d ö lés ju k . N ém ik ép p m eglepő, hogy ez a m ód szer egészen jól m űködik.
324 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4 .5. A T E L JE S ÍT M É N Y N Ö V E L É S E 325

Statikus elágazásjövendölés e red m én y ez optim ális teljesítm ényt. H a egy u tasításn ak olyan é rté k re van szük­
sége, am it az eló'ző u tasítás szám ít ki, a m ásodik nem tu d ja elkezdeni a v ég re­
M in d en eddig tárgyalt elágazásjövendölési m ódszer d inam ikus, azaz futási időben h ajtást, am íg az első elő nem állítja a szükséges érté k e t. E b b en az esetb en (RA W
jövendöl, m iközben a p ro g ram fut. A lk alm azk o d ik a p ro g ram érvényes viselk ed é­ függőség) a m ásodik u tasításn ak várnia kell. A függőségnek m ás fajtái is léteznek,
séhez, am i jó dolog. A rossz o ld ala az, hogy speciális és drága h ard v ert igényel, és ahogy m ajd később látjuk.
jó k o ra lapkabonyolultságot. E n n e k a p ro b lém án ak a m eg k erü lésére, és jo b b teljesítm ény elérésére, néhány
M ás u ta t k ö v eth etü n k , h a a fo rd ító p ro g ra m segít b e n n ü n k e t. H a a fo rd ító p ro g ­ C P U m egengedi, hogy a függő u tasításo k at átugorjuk, és rá té rjü n k a későbbi u ta ­
ram egy ilyen utasítást lát: sításo k ra, am elyek nem függők. Szükségtelen m o n d an i, hogy az alk alm azo tt belső
u tasítást ü te m ező alg o ritm u sn ak ugyanazt az ered m én y t kell szolgáltatnia, m intha
fór (i = 0; i < 1000000; i++) {...} a p ro g ra m o t a leírt so rre n d b e n h a jto ttu k volna végre. A k ö vetkezőkben egy rész­
letes p éld án fogjuk m eg m u tatn i, hogyan m űködik az utasításo k so rren d jén ek á t­
nagyon jól tudja, hogy a ciklus végén lévő elágazást szinte állan d ó an végre kell ren d ezése.
h ajtani. B árcsak lenne a rra m ód, hogy ezt m eg m o n d ju k a h ard v ern ek , sót: e rő fe ­ A p ro b lé m a term é sz e té n e k szem léltetésére egy olyan géppel kezdünk, am ely
szítést m eg tak arítan án k . m indig a p ro g ram so rre n d jé b e n osztja ki az u tasításo k at, és m egköveteli, hogy a
B ár ez arch ite k tu rá lis változás (és nem csak egy kivitelezési k érd és), néhány v ég reh ajtás is a pro g ram so rre n d jé b e n fejeződjön be. A z u tóbbi k érd és je le n tő s é ­
gép, m int p éld áu l az U ltraS P A R C III, a szokásoson felül (am elyek a visszafelé ge k ésőbb fog világossá válni.
k o m patibilitásho z szükségesek) ren d elk ezik egy m ásodik feltételes elágazóutasí- P éld ag é p ü n k n e k van nyolc, a pro g ram o zó szám ára lá th a tó regisztere, RO-tól R7-
tás-halm azzal (jö v en d ö lő elágazó u tasításo k ). A z új u tasításo k ta rta lm a zn a k egy ig. M in d en aritm etik ai utasítás h áro m regisztert használ; k e ttő t az o p eran d u so k és
jö v en d ö lő b itet, am elyben a fo rd ító p ro g ram jelezh eti, úgy gondolja, az elágazást egyet az e re d m én y szám ára, ugyanúgy, m int a M ic-4-nél. F eltételezzük, hogy ha
végre kell hajtani (vagy sem ). Egy ilyen eseten , a b e tö ltő egység p o n to sa n azt te ­ egy u ta sítá st az n. ciklusban d ek ó d o lu n k , a végrehajtás az « -I- 1. ciklusban k ezd ő ­
szi, am it az utasítás m o n d . E zenkívül n em szükséges é rték e s helyet p azaro ln i az dik. Egy egyszerű u tasításn ál, m int am ilyen az összeadás vagy a kivonás, a c élre­
elágazás eló /m é n y tá b lá b a n ezek re az u tasításo k ra, így csö k k en n ek az összeülkö- g iszterbe tö rté n ő visszaírás az /i -(- 2. ciklus végére m eg tö rtén ik . Ö sszetette b b u ta ­
zések a táblában. sításnál, m int am ilyen a szorzás, a visszaírás az « + 3 . ciklus végére tö rté n ik meg.
V égül az utolsó elág azásjö v en d ö lő m ó d szerü n k a m egfigyelésen (profiling) a la ­ A h h o z, hogy v alószerűbbé tegyük a p éld át, a d e k ó d o ló egységnek m egengedjük,
pul (F ish er és F re u d en b e rg e r, 1992). E z szintén statik u s m ó d szer, de nem a fo rd í­ hogy ó rac ik lu so n k én t legfeljebb két u tasítást kiosszon. A k eresk ed elem b en lévő
tó p ro g ram felad ata, hogy m eg p ró b álja kitalálni, m elyik elágazást h ajtju k végre, és szu p ersk aláris C P U -k gyakran négy vagy a k ár h at u tasítást is ki tu d n ak osztani
m elyiket nem . A p ro g ram v aló jáb an fut (álta lá b a n egy szim u láto ro n ), és az e lá g a ­ ó racik lu so n k én t,
zás viselkedését figyeljük meg. E zt az info rm áció t b etáp lálju k a fo rd ító p ro g ra m b a, A p éld a v égrehajtási so rren d je a 4.43. áb rán láth ató . Itt az első oszlop a ciklus
am i azu tán jö v en d ö lő elágazó u tasítá so k a t használ, hogy a h ard v e rn e k m eg m o n d ­ so rszám át, a m ásodik pedig az u tasítás sorszám át ad ja m eg. A h arm ad ik oszlop
ja, m it csináljon. fe ltü n te ti a d ek ó d o lt u tasítást. A negyedik m on d ja m eg, m elyik u tasítást oszto ttu k
ki (ó racik lu so n k én t legfeljebb k e ttő t). A z ö tö d ik pedig azt adja m eg, hogy m ost
m elyik u tasítás készült el. N e felejtsük cl, eb b en a p éld áb a n m ind a so rren d szerin ­
4.5.3. Sorrendtől eltérő végrehajtás és regíszterátnevezés ti k iosztást, m ind a so rre n d szerinti b efejezést m egköveteltük, így a -t- 1. utasítás
n em o szth a tó ki, am íg a k. u tasítást nem o szto ttu k ki, és a A: -I- 1. u tasítást nem fe ­
A legtöbb m o d e rn C P U m in d csővezetékes, m ind szu p ersk aláris, ahogy az a je zh e tjü k be (ez a célregiszterbe való visszaírás elvégzését je len ti), míg a k . utasí­
2.6. áb rán láth ató . Ez á ltaláb an azt je le n ti, hogy van egy b e tö ltő egység, am elyik tás n em készül el. A többi 16 oszlopot az alábbiakban tárgyaljuk.
kiveszi a m em óriáb ó l az u tasításszav ak at, m ielő tt m ég szükség lenn e rájuk, hogy Egy u tasítás d ek ó d o lása u tán a d ek ó d o ló egységnek el kell d ö n ten ie, hogy az
tápláljon egy d e k ó d o ló egységet. A d e k ó d o ló egység kiosztja a d e k ó d o lt u tasítá ­ u tasítást ki tudja-e azonnal osztani, vagy sem . E h h ez a d ö n tésh ez a dek ó d o ló egy­
sokat a m egfelelő m ű ködési egységnek v ég reh ajtásra. N éhány esetb en a kiosztás ségnek ism ernie kel! az összes regiszter állapotát. H a például a jelen u tasításn ak
elő tt az egyedi u tasítá so k a t m ik ro u ta sítá so k ra d a ra b o lh atja, attó l függően, hogy a egy olyan reg iszterre van szüksége, am elynek az érté k e m ég nincs kiszám olva,
m űködési egységek m it k ép esek elvégezni. n em tu d ja kiosztani, és várak o zn ia kell.
V ilágos, hogy a szám ító g ép -terv ezés ak k o r a legegyszerűbb, ha m in d en u tasítást A re g iszte rh aszn álato t egy eredm ényjelzőnek n ev ezett eszközzel fogjuk nyom on
abb an a so rren d b en h a jtu n k végre, ahogyan b e tö ltö ttü k (pillanatnyilag té te le z ­ követni, am i először a C D C 6600-asban je le n t m eg. A z eredm én yjelzőnek m in ­
zük fel, hogy az elágazásjö v en d ö lő algo ritm u s so ha n em a d rossz tip p e t). M égis, den egyes regiszterhez van egy kis szám lálója, am i m egm ondja, hogy a regisztert
a so rren d szerinti vég reh ajtás, az u tasításo k k özötti függőség m iatt, n em m intlig hányszor használjuk fo rrásk én t az ép p en v égrehajtás a la tt álló utasításoknál. H a,
326 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.5. A T E U E S f T M É N Y N Ö V EL É SE 327

Olvasott regiszterek írt regiszterek M ivel a p éld án k olyan szup ersk aláris gép , am ely két utasítást tud k iosztan i c ik ­
Cik Dekódolt Ind Bef lu son k én t, egy m ásod ik utasítás is (12) k io sztó d ik az 1. ciklus alatt. E z RO-t R2-höz
1 R3 = R0xR1 adja, az ered m én yt R4-be tárolja. A h h o z , hogy lássuk, h ogy ez az utasítás k io szth a ­
R4=R0 + R2 tó -e , a k ö v e tk e z ő szabályokat alkalm azzuk:
R5 = RO + RÍ
R6 = Rí + R4 1. H a bárm elyik o p eran d u st írjuk, n em osztjuk ki (RA W fü g g ő ség ).
2. H a az e red m én y reg isztert olvassuk, n em osztjuk ki (W A R függőség).
3. H a az e red m én y reg isztert írjuk, nem osztjuk ki (W AW függőség).

M á r láttu k a R AW függőséget, am i ak k o r fo rd u l elő, am ikor egy u tasításn ak olyan


ered m én y t kellene h asználnia fo rrásk én t, am it az előző utasítás m ég nem állított
R7 = RÍ X R2
elő. A k ét m ásik függőség kevésbé súlyos. A lap v ető en forrás-összeütközések. A
RÍ = RO - R2
WAR függőségben (W rite A fte r R ead; olvasás u tá n írás) egy utasítás m egpróbál fe ­
lülírni egy regisztert, am elynek olvasását az előző utasítás lehet, hogy m ég nem fe ­
je z te be. A WAW függőség (W rite A fte r W rite; írás u tán írás) hasonló. E zek gyak­
R3 = R3 X RÍ ra n elk e rü lh ető k , h a a m ásodik u tasítás az ered m én y ét valahova m áshová teszi
(esetleg ideiglenesen). H a a fenti h áro m függőség egyike sem áll fenn, és a szüksé­
ges m ű k ö d ési egység elé rh e tő , az u tasítás kiosztható. E b b en az esetb en 12 használ
egy reg iszte rt (RO), am elyet egy b efejezetlen u tasítás olvas, de ez az átfed és m eg ­
Rí =R4+R4 e n g ed e tt, így I2-t kiosztjuk. H aso n ló an , I3-t is kiosztjuk a 2. ciklus alatt.
M o st elérk eztü n k I4-h ez, am elyn ek haszn áln ia kell R4-el. A 3. sorban látjuk,
hogy R4-et, sajn os, é p p e n írjuk. RAW fü g g ő ség ü n k van, így a d e k ó d o ló eg y ség v á ­
rakozik, am íg R4 e lé r h e tő n em lesz. A m íg várakozik, abbahagyja az u tasítások k i­
s z e d é sé t a b e tö ltő egységb ől. A m ik o r a b e tö ltő egység b e lső p u ffere m egtelik , ab ­
bahagyja az e lő r e b e tö ltést.
E m lítésre érdem es, hogy a program soron következő utasításának, I5-nek nincs
sem m ilyen összeütközése egyetlen befejezetlen utasítással sem . D ekódolhattuk és ki­
4.43. ábra. Egy szuperskaláris CPU működése sorrend szerinti kiosztással és sorrend szerinti o szth attu k volna, ha nem követelnénk m eg az utasítások sorrend szerinti kiosztását.
befejezéssel M ost n ézzü k m eg, m i történ ik a 3. ciklus alatt. M ivel 12 ö ssze a d á s (k ét cik lu s),
a 3. ciklus v ég ér e b efejező d ik . Sajnos, n em tudjuk b efejezn i (e z z e l felszab adítani
m ondjuk, m axim um 15 u tasítást le h e t egyszerre vég reh ajtan i, a k k o r m egteszi egy R4-et 14 szám ára). H o g y m iért nem ? A zért, m ert m o st a sorren d szerinti b e fe je z ést
5 bites szám láló (elvileg m in d en u tasítás m in d k ét o p e ra n d u sa leh et ugyanaz a re ­ is m eg k ö v eteltü k . D e hát m ilyen baj szárm azhat abból, hogy m o st v ég ezzü k el a
giszter). H a kiosztunk egy u tasítást, m eg n ö v elő d n ek az o p e ra n d u s reg iszte rein ek tárolást R4-be, é s m egjelöljü k m int e lé rh ető t?
eredm ényjelző bejegyzései. H a egy u tasítás elkészült, a bejegyzések csökkennek. A válasz szövevényes, de fontos. Tegyük fel, hogy az u tasításo k so rren d tő l e lté ­
A z ered m én y jelző n ek a célk én t h aszn ált reg iszterek szám ára is van egy szám lá­ rő e n b efejező d h etn ek . A kkor, ha egy m egszakítás következik be, nagyon n ehéz
lója. M ivel egy id ő b en csak egy írás m eg en g e d e tt, ezek a szám lálók 1 bit szélesek lesz a gép á llap o tát eltáro ln i, hogy később visszaállítható legyen. K ülönösen azt le­
leh etn ek . A 4.43. á b ra jo b b oldali 16 oszlopa az e red m én y jelző t m u tatja. h e te tle n m eg m ondani, hogy a gép egy bizonyos cím ig v ég reh ajto tt-e m inden u tasí­
A 4.43. áb ra első so ra I l - e t (1. u tasítást) m u tatja, am elyik m egszorozza RO-t R1- tást, és a m ö g ö tte lévők közül egyet sem . E zt p o n to s m eg szak ításn ak nevezzük, és
gyel, és az ered m én y t R3-ba teszi. M ivel ezek közül a reg iszterek közül m ég egyik ez a C P U k ívánatos tu lajd o n ság a (M oudgill és Vassiliadis, 1996). Egy so rren d tő l
sincs haszn álatb an , az u tasítás kioszth ató . A z ered m én y jelző t frissíteni kell, hogy e ltérő b efejezés a m egszakítást p o n ta tla n n á ten n é, e z ért követelik m eg egyes g é­
tükrözze, RO-at és R l-et olvassuk, és R3-at írjuk. E gyetlen so ro n k övetkező u tasítás p ek a so rre n d szerinti utasításbefejezést.
sem írh at ezek egyikébe sem , vagy n em olvashatja R3-at addig, am íg II el n em k é ­ V isszatérve péld án k h o z, a 4. ciklus végén m ind a h áro m b efejezetlen u tasítás e l­
szült. M ivel ez az u tasítás egy szorzás, a 4. ciklus végére fejeződik be. M in d en egyes készül, így az 5. ciklusban 14 végre kiosztásra k e rü lh et az ú jo n n an d ek ó d o lt I5-tel
sorban az o tt láth a tó ered m én y jelző é rté k e k azt az állap o to t tükrözik, am ely az a b ­ együtt. V alahányszor egy u tasítás befejeződik, a d ek ó d o ló egységnek ellenőriznie
ban a sorban lévő u tasítás kiosztása u tá n keletkezik. A z ü res bejegyzések nullák. kell, hogy van-e leállított utasítás, am ely m ost kiosztható.
328 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.5. A T E U E S f T M É N Y N Ö V EL É SE 329

A 6. ciklusban 16 elak a d , m ível írn ia k ellen e Rí-be, de Rí foglalt. V égül a 9. cik­ terjesz te n ü n k , hogy m egakadályozzuk m in d en olyan u tasítás kiosztását, am elynek
lusban indul el. A nyolc u tasításb ó l álló teljes so ro zat befejezéséig 18 ciklus telik el o p e ra n d u sa ü tem ezés szerin t egy olyan utasítással táro ló d ik , am i a sorban elő tte
a sok függőség m iatt, m ég ak k o r is, ha a h a rd v er k ép es m in d en ciklusban két u ta sí­ van, de átu g ro ttu k .
tást kiosztani. Vegyük észre azo n b an , hogy végigolvasva a 4.43. á b ra In d oszlopát, M ost té rjü n k vissza a 4.43. áb ra 16,17 és 18 u tasítására. Itt látjuk, hogy 16 kiszá­
m in d en az utasításo k so rren d jé b e n o sztó d ik ki. H a so n ló an , a fie /o s z lo p m u tatja, m ol egy é rté k e t Rí-be, am it 17 használ. A zo n b an azt is látjuk, hogy az é rté k e t soha
hogy a befejezés is so rre n d szerin t tö rté n t. tö b b é n em h asználjuk, m ivel 18 felülírja Rl-et. N incs valós ok arra, hogy R i-et 16
M ost tek in tsü n k egy alte rn a tív elgondolást: a so rre n d tő l e lté rő vég reh ajtást. e re d m én y é n ek tá ro lá sá ra fen n tartsu k . R áad ásu l Rí bo rzasztó rossz választás á t­
E b b en az elgon d o lásb an az u ta sítá so k at so rre n d tő l e lté rő e n leh e t k iosztani, és m e n e ti regiszternek, b á r teljességgel elfo g ad h ató egy fo rd ító p ro g ram vagy p ro g ra ­
ugyanígy so rren d tő l e lté rő e n leh e t b efejezni. U gyanaz a nyolc u tasításb ó l álló so ­ m ozó szám ára, aki az u tasítás átlap o lás nélküli, so rren d szerinti végrehajtás elvét
ro zat lá th a tó a 4.44. áb rá n , csak m o st so rre n d tő l e lté rő kiosztás és so rre n d tő l e lté ­ használja.
rő befejezés is m e g en g e d ett. A 4.44. á b rán egy új m ó d szert v ezetünk be e n n ek a p ro b lém án ak a m egoldásá­
A z első külön b ség a 3. ciklusban van. B ár 14 e lak a d t, d e k ó d o lh atju k és k i­ ra: a regiszterátnevezést. A z e lő relátó d e k ó d o ló egység Rí haszn álatát I 6-ban (3.
o szth atju k I5-öt, mivel ez n em ellen k ezik egyik függőben lévő u tasítással sem. ciklus) és I7-ben (4. ciklus) egy titkos reg iszterre. S í-re váltja, am i n em láth ató a
M in d am ellett, egy u tasítás á tu g rása új p ro b lé m á t okoz. Tegyük fel, hogy 15 hasz­ p ro g ram o zó szám ára. M ost I 6-ot kio szth atju k I5-tel p árh u zam o san . A m odern
n ált egy olyan o p e ra n d u st, am ely et az á tu g ro tt u tasítás, 14 szám ol ki. A jelenlegi C P U -k gyakran titkos reg iszterek tu catjait használják regiszterátnevezéssel. E z a
eredm ényjelzővel ezt n em v e n n én k észre. K ö v etk ezésk ép p en ki kell b ő v íten ü n k m ó d szer gyakran kiküszöböli a W A R és WAW függőségeket.
az eredm ényjelző t, hogy nyom on kövesse azo k at a tá ro lá so k a t, am ely eket az á t­ I 8-nál ism ét reg iszterátn ev ezést használunk. E zú ttal Ri-et S2-nek nevezzük át,
u g ro tt u tasításo k végeznek. Egy m ásodik, re g isz te re n k é n t 1 bites b itté rk é p h o zzá­ így az ö sszeadás elk ezd ő d h et, m ielő tt Rí szab ad d á válna, a 6. ciklus végére. H a ki­
adásával nyom on k ö v eth etjü k az e la k a d t u tasítá so k által v é g reh a jto tt tá ro láso k at. d erü l, hogy az ered m én y n ek ek k o r valóban Rí-ben kell lennie, akkor ta rta lm a m ég
(E zek a szám lálók n in csen ek az á b rá n .) A z u tasításk io sztás szabályát m o st ki kell m indig id ejében visszam ásolható ide. M ég jobb, h a m in d en olyan későbbi utasítás,
am elynek Rí-re szüksége van, a fo rrását abb an az átn ev e zett regiszterben találja
Olvasott regiszterek írt regiszterek m eg, ahova ténylegesen tárolva van (S2). M in d k ét esetb en ezzel a m ó d szerrel az
Cik # Dekódolt Ind Bef 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 18 u tasítás előbb elin d u lh at, m in t eddig.
1 1 R3 = ROX Rí 1 1 1 1 Sok valódi gépnél az átnevezés m élyen be van ágyazva a reg iszterek szervezésé­
2 R4=R0 + R2 2 2 1 1 1 1 n ek re n d sz e réb e. Sok titkos regiszter van, és egy táb lázat, am ely leképezi a p ro g ­
2 3 R5 = RO+ Rí 3 3 2 1 1 1 1 ra m o zó szám ára lá th a tó reg iszte rek et a titkos reg iszterek re. M o ndjuk az RO-ként
4 R6 = R1 +R4 - 3 2 1 1 1 1 haszn ált valódi regiszter helyét úgy állap ítju k m eg, hogy m egnézzük en n ek a le­
3 5 R7 = R1 xR2 5 3 3 2 1 1 1 1 kép ezési tá b lázatn ak a 0. bejegyzését. így nincs valódi RO regiszter, csak az RO név
6 Sí =R 0-R2 6 4 3 3 1 1 1 1
és a titkos reg iszterek egyike közötti kapcsolat. E z a kapcsolat gyakran változik a
2 3 3 2 1 1 1
v ég reh ajtás során, hogy elk erü ljü k a függőségeket.
4 4 3 4 2 1 1 1 1 1
4 1 1 A 4.44. á b rán a negyedik oszlopot tanulm ányozva vegyük észre, hogy az u ta sítá ­
7 R3 = R3xS1 - 3 2 1 1 1
8 S2 = R4 + R4 8 3 4 2 3 1 1 1 1 so k at n em so rre n d szerint o szto ttu k ki. U gyancsak nem so rre n d szerint fejeződtek
1 2 3 2 3 1 1 1 be. E b b ő l a p éldából egyszerű a következtetés: so rren d tő l e lté rő v ég reh ajtást és
3 1 2 2 3 1 1 re g iszte rátn ev ezést használva kép esek voltunk a szám ítások sebességét a k étsze­
5 6 2 1 3 1 1 1 resére em elni.
6 7 2 1 1 3 1 1 1 1
4 1 1 1 2 1 1 1
5 1 2 1 1
8 1 1 4.5.4. Feltételezett végrehajtás
7 1 1
A z előző részben b ev ezettü k az u ta sításátren d ezés elvét a teljesítm ény jav ításá­
8 1 1
nak é rd e k éb en . B ár kifejezetten nem em lítettü k , a k ö zép p o n tb a n az egyetlenegy
9 7
alap b lo k k o n belüli u ta sításátren d ezés volt. Ideje ezt a k érd ést közelebbről m eg ­
vizsgálni.
4.44. ábra. Egy szuperskaláris CPU működése sorrendtől eltérő kiosztással és sorrendtől eltérő A szám ító gépes p ro g ram o k alap b lok k ok ra b o n th a tó k szét, ahol m inden a la p ­
befejezéssel
blokk lineáris k ó d so ro zatb ó l áll, a te te jé n egy belépési p o n tta l, az alján pedig egy
330 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.5. A T E L JE S ÍT M É N Y N Ö V E L É S E 331

kilépéssel. Egy alap b lo k k nem ta rta lm az egyetlen vezérlési szerk ez e te t sem (p él­ resztü l tö rté n ő átren d ezése m eg haladja a h ard v er képességeit, így egyértelm űen a
dául if vagy while u tasítá so k a t), e z é rt gépi nyelvre fo rd ítása sem m ilyen elágazást fo rd ító p ro g ra m n ak kell az u tasítást m ozgatnia.
nem tartalm az. Az alap b lo k k o k vezérlési utasításo k k al v an n ak összekötve. A fe lté te le zett végrehajtás néhány érd ek es p ro b lé m á t vet fel. E lőször is, alapve­
Egy program eb b en a fo rm áb an irán y íto tt g ráfk én t áb rázo lh ató , am in t azt a tő, hogy egyik feltételezett v ég reh ajtásn ak sem leh eln ek visszavonhatatlan e re d ­
4.45. áb rán látjuk. Itt a p á ro s és p á ra tla n egész szám ok k ö b én ek összegét szám o l­ m ényei, hiszen később k id erü lh et, hogy azokat nem k ellett volna végrehajtani. A
juk egy bizonyos határig , és evensutn-ban. illetve oddsum -hm gyűjtjük. Az egyes 4.45. áb rán nagyon jó, hogy b etö ltjü k evensum -o\ és od d su m -o i, és az is nagyon
alapblokkokon beiül az előző fejezet á tre n d e z ő m ó d szere nagyszerűen m űködik. jó , hogy elvégezzük az összeadást, am int k elérh ető v é válik (ép p en az if utasítás
A gond az, hogy a legtöbb alap b lo k k rövid, és nincs b en n ü k e leg e n d ő p á rh u ­ elő tt), de az ered m én y ek et nem jó táro ln i a m em ó riáb a. B onyolultabb k ó d so ro za­
zam osság, hogy azo k at h aték o n y a n kihasználhassuk. Tehát a k övetkező lép és az, to k n ál gyakori m ódszer a feltételezett végrehajtás során használt összes célregisz­
hogy m egengedjük, hogy az á tre n d ez é s az a lap b lo k k o k h a tá ra in átnyúljon, m eg­ te r átn ev ezése, m egelőzve ezzel, hogy a fe lté te le z e tt végrehajtás felülírja a regisz­
kísérelve ezzel az összes kiosztási hely fe ltö ltését. A legnagyobb nyereségek ak ­ te re k e t, m ielő tt m ég kiderülne, hogy egyáltalán szükség van-e rá. E záltal csak a
kor következnek be, ha egy fe lte h ető en lassú m űv elet a gráflian felfelé m o zd u l­ firkáló reg iszterek m ódosulnak, így nincs p ro b lém a, ha a k ó d ra végső soron nincs
hat, hogy k o ráb b an elinduljon. Ez leh et LOAD utasítás, leb eg ő p o n to s m űbelet vagy szükség. H a a k ódra szükség van, a firkáló reg iszterek et átm ásoljuk a valódi cél­
ak ár egy hosszú függőségi lánc k ezd ete. A kód egy elágazás fölötti e lő rem o zd ítá- reg iszterek b e. Bárki el tu d ja képzelni, hogy eredm ényjelzővel m indezek nyom on
sát em elésnek nevezzük. követése nem egyszerű, de ha van eleg e n d ő h ardver, m eg le h e t csinálni.
K épzeljük el, hogy a 4.45. áb rán m in d en változót reg iszterek b en ta rtu n k , kivéve M in d a m e llett további p ro b lém a is felm erül a fe lté te le z e tt v égrehajtásnál, am it
evensum -t és o d d su m -i (reg iszterek h iányában). A k k o r é rte lm e len n e ezek LOAD nem o ld h a tó m eg regiszterátnevezéssel. Mi tö rtén ik , ha a fe lté te le z e tte n v ég re­
u tasításait a ciklus e lejére vinni, k kiszám ítása elé. H a elég k o rán elin d ítju k , ak k o r h a jto tt u tasítás kivételes esem ényt (exception) okoz? F ájdalm as, b á r nem végzetes
az é rték ek elérh e tő k lesznek, am ik o r szükség lesz rájuk. T erm észetesen m in d en p éld a egy olyan LOAD utasítás, am elyik gyorsítótárhiányt okoz egy nagy gyorsító-
egyes iterációnál közülük csak az egyik szükséges, így a m ásik LOAD felesleges, de so rm é re tte l (m ondjuk , 256 b á jttal) ren d elk ező gépen, és a m em ória sokkal las­
ha a gyorsítótár és a m em ó ria csővezetékes, és van e lé rh e tő kiosztási hely, a k k o r sabb, m int a C P U és a gyorsítótár. H a egy LOAD, am i valóban szükséges, h irte ­
m ég m eg érh eti ezt elvégezni. Egy kód v ég reh ajtását, m ielő tt m ég tu d n á n k , hogy len, tö b b ciklusra m egállítja a gépet, am íg a gyorsítósor b etö ltő d ik , nos, ilyen az
egyáltalán szükség lesz-e rá, feltételezett v é g re h ajtásn a k nevezzük, E m ó d szer al­ élet, a szóra szükség van. V iszont egy olyan szó b etö ltése végett m egállítani a gé­
kalm azásához tám o g atás kell a fo rd ító p ro g ra m tó l, és a h ard v ertő l is ném i archi- p et, am elyről kiderül, hogy nincs is rá szükség, nem kívánatos ered m én y re vezet.
tek tu rális bővítés. N orm ális e se tb e n az u tasításo k n ak az alap b lo k k h a tá ro k o n ke- E zek b ő l az „o ptim alizálás”-okból túl sok a C P U -t lassabbá teh eti, m in th a egyál­
talán n em lennének. (H a a gép n ek virtuális m em ó riája van, am iről a 6. fejezetb en
evensum = 0; e jtün k m ajd szót, akkor egy fe ltételezett LOAD laphiányt is okozhat, am i a szüksé­
ges lap b e h o zására egy lem ezm ű v eletet követel meg. A ham is laphiány szörnyű
oddsum = 0; hatással van a hatékonyságra, e z ért fontos, hogy elkerüljük.)
i = 0; Szám os m o d ern gép n ek van egy különleges SPECULATIVE-LOAD utasítása, am ely
m egp ró b álja a szót a g y orsítótárból b etö lten i, de ha nincs ott, akkor feladja. H a az
while (i < limit) {
é rté k o tt van, am ik o r tényleg szükség van rá, ak k o r használható, de ha nincs o tt, és
k = i X i X i; szükség len n e rá, a h ard v ern ek később kell b etö lten ie. H a az é rté k re tö rté n e te se n
nincs szükség, a g y orsítótárhiányért nem kell b ü n te té st fizetni.
if(((i/2)x2)==i)
Sokkal rosszabb helyzet m u ta th a tó be a következő utasítással;
evensum = evensum + k;
if (x > 0) z = y/x;
else

oddsum = oddsum + k; ah o l X, y és z leb eg ő p o n to s változók. Tegyük fel, hogy az összes változót elő re b e ­
i = i+ 1; tö ltö ttü k reg iszterekbe, és hogy a (lassú) leb eg ő p o n to s osztást átem eltü k az if
vizsgálaton. Sajnos x é p p en 0, és az ebből következő nullával való osztás csap d á­
} ja befejezi a p ro g ram o t. A csapda ered m én y e az, hogy a feltételes v égrehajtás egy
(a)
helyes p ro g ram m eg h ib áso d ását okozta. M ég rosszabb, h a a p ro g ram o zó világos
k ó d o t te tt be, hogy elkerülje ezt a helyzetet, és az valahogyan m égis m eg tö rtén t.
4.45. ábra. (a) Egy programrészlet, (b) A megfelelő alapblokk gráf Ez a helyzet valószínűleg nem tesz boldoggá egyetlen p ro g ram o zó t sem.
332 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE
4.6. P É L D Á K A M IK R O A R C H IT EK T Ú R A -SZ IN T R E 333

A z egyik lehetség es m egoldás, hogy legyen speciális v álto zatu k azo k n ak az u ta ­ ső g en eráció s P entium 4-ben 256 KB volt, a m ásodikban 512 KB, a harm adikban
sításoknak, am elyek kivételes esem én y t o k o zh atn a k . Vegyünk hozzá m in d en r e ­ p ed ig 1 MB, A z L2 g yorsítótár 8 utas halm azkczelésű gyorsítótár, m ely 128 báj-
giszterhez egy b itet, n e v ezetesen a mérgezésbitet. H a egy felté te le z e tt u tasítás to s g y o rsítósoron alapszik. H a egy k e re se tt bejegyzés nem talá lh a tó m eg az L2
hibás, ak ko r ahelyett, hogy csap d á t o k o zn a, állítsa be az e re d m én y reg iszter m é r­ g y o rsító tárb an , k é t 64 bájto s átvitelt kezdem ényez a főm em óriából, hogy betö ltse
g ezésbitjét. H a azt a reg iszte rt k ésőbb egy re n d e s u tasítás érin ti, a csap d a létrejö n a szükséges blokkokat. A z L2 g yorsítótár egy visszaíró szervezésű gyorsítótár. Ez
(ahogy kell). M in d azo n által, h a az ere d m é n y t so h a n em használjuk, a m érg ezés­ azt jelen ti, hogy so r m ó d o su lásak o r az új tartalo m nem kerül vissza a m em óriába,
b ite t végül töröljü k , és n em tö rté n ik baj. am íg a so r a m em ó riáb a nem töltődik.
A g y o rsító tárhoz kapcsolódik egy elő re b e tö ltő egység (n em szerepel az áb rán ),
am ely m eg p ró b álja elő re b e tö lte n i az a d a to k a t a főm em ó riáb ó l az L2 gyorsító­
tá rb a , m ég m ielő tt a rra szükség lenne. A z L2 gyorsítótárból az a d a to k nagy seb es­
4.6. Példák a míkroarchitektúra-színtre séggel á ra m o lh a tn a k m ás gyorsítótárakba. Egy új L2 g yorsítótár b etö ltése m inden
m ásodik óraciklusban k ezd ő d h et, így például 3 G H z-es órajel m ellett, elm életileg
E b b en a részben rövid p é ld á k a t m u ta tu n k be h áro m csú csp ro cesszo ría, m eg m u ­ az L2 g y o rsítótár a k ár 1,5 m illiárd 64 bájtos b lo k k o t is szo lg áltath at m áso d p e rc e n ­
tatva, hogy e p ro cesszo ro k hogyan alk alm azzák a je le n fe jezetb en tárgyalt elveket. k én t a többi g y orsítótárnak, am i 96 G B /s sávszélességet jelen t.
E zek szükségszerűen rö v id ek lesznek, m ivel a valódi g ép ek ro p p a n t bonyolultak, A m e m ó ria-alren d szer a latt a 4.46. áb rá n a b e m en e ti rész találh ató , am elyik b e ­
k ap u k m illióit tartalm azzák . P éld áin k ugyanazok, m in t eddig: a P en tiu m 4, az tö lti az u tasításo k at az L2 gyorsítótárból, és d ek ó d o lja a p ro g ram n ak m egfelelő
U ltraS P A R C III és a 8051. so rren d b en . M in d en P en tiu m 4 IS A -utasítást lebont R IS C -szcrű m ikrom űvele-
tek so ro z a tára. A z egyszerűbb u tasításo k h o z a betöltó'/dekó doló egység h a tá ro z ­

4.6.1. A Pentium 4 CPU mikroarchítektúrája z a Memóriasínhez

K ívülről a P entium 4 hagyom ányos C ISC gép n ek tűnik, nagy és n eh ezen kezelh ető Memória-alrendszer Végrehajtó egység
u tasításrendszerrel, am ely tám o g atja a 8 ,1 6 és 32 bites egész m űveleteket, valam int
a 32 és 64 bites leb eg ő p o n to s m ű v eletek et is. C supán 8 lá th a tó regisztere van, és Rendszerinterfész t szintű adat
nincs két olyan, am ely teljesen m egegyezne. A z utasításo k hossza 1 és 17 b ájt kö zö tt gyorsítótár
változik. R öviden, olyan örö k ö lt arch itek tú ra, am i látszólag m in d en t rosszul csinál.
B elülről azon b an a P en tiu m 4 egy m o d e rn , egyszerű, m élyen cső v ezeték ezett 2. szintű gyorsítótár
R IS C -m ag o t tarta lm a z , m ely k ü lö n leg esen gyors ó rafrek v en cián fut, és ez valószí­ (utasítás és adat) Egész és lebegőpontos
nűleg a következő években tovább n ö v elh ető . E g észen b ám u lato s, hogy az Intel
végrehajtó egység
m érnökei kép esek vo ltak egy régi a rc h ite k tú rá ra k o rszerű p ro c esszo rt építeni.
E b b e n a részben a P en tiu m 4 m ik ro a rc h ite k tú rá já n a k m ű k ö d é sé t vizsgáljuk m eg.

A NetBurst mikroarchitektúra áttekintése


Betöltő/ Nyomkövető Befejező
Ütemezőit
deltódoló gyorsítótár egység
A P en tiu m 4 m ik ro arc h íte k tú rá ja , m elyet N etBurst m ik ro a rc h ite k tú rá n a k n evez­ egység
nek, teljesen elszakad a P en tiu m P ro, P en tiu m II és P en tiu m Ill-n á l h aszn ált k o ­
UROM
rábbi P 6m ik ro arc h itek tú rá tó l, és alap ját képezi an n ak , am ire az In tel a követk ező
néh án y évben ép íte n i fog. A P en tiu m 4 m ik ro a rc h ite k tú rá já n ak vázlatos á tte k in té ­
Elágazásjövendölő
se a 4.46. áb rán ta lálh a tó . A d iag ram tö b b é-k ev ésb é m egfelel az 1.12. áb rán ak . egység______
A P en tiu m 4 négy fő részből áll: a m em ó ria-alre n d sz er, a b e m e n e ti rész, a so r­
re n d e n kívüliséget v ezérlő és a v ég reh a jtó egység. V izsgáljuk m eg e z e k e t egyen­ Bemeneti rész Sorrenden kívüliség vezérlő
ként, az áb rán a bal felsővel kezdve, az ó ra m u ta tó járásáv al e lle n té te se n haladva.
A m em ó ria-alren d sz e r tartalm azza az eg y esített L2 (2. szintű) g y o rsító tárat és
a külső R A M -nak a m em ó riasín en való eléré sé h e z szükséges logikát. A z L2 az el- 4.46. ábra. A Pentium 4 blokkdiagramja
334 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.6. P É L D Á K A M IK R O A R C H IT EK T Ú R A -SZ IN T R E 335

za m eg mely m ik ro m ű v cletek szükségesek. A bo n y o lu ltab b ak n ál a m ikroniűve- sítja a logikát, hogy keresse ki a m ik ro m ű v eletek et a m ikrokód R O M -ból. Ilyen
let so ro zato t a m ik ro -R O M -b ó l (^ R O M ) keresi ki. A k á r így, a k á r úgy, m inden m ó d o n a m ikrom űveletck úgy kerülnek a so rren d en kívüliséget vezérlő logikához,
P entium 4 ISA -utasítás m ik ro m ű v elelck so ro zatáv á k o n v ertálód ik a lapka R ISC - hogy vagy m ár a d ek ó d o lt IS A -utasítások kerü ln ek felh aszn álásra a nyom köve­
m agja szám ára. Ezzel a m echanizm ussal h id alták át az ősi C IS C -u tasításh alm az és tő g y o rsítótárból, vagy pedig m enet közben k erü ln ek ki a m ikrokód R O M -ból az
a m o d ern R IS C -a d a tú t közö tti szakadékot, olyan bonyolult ISA -utasítások, m int például a string m ozgatás.
A d ek ó d o lt m ik ro m ű v eletck b ek erü ln ek a nyom követő g y o rsító tá rb a , am ely az H a a d ek ó d o ló egység feltételes elágazáshoz ér, kikeresi a jöv en d ö lt cím et az Ll
1. szintű utasítás-g y o rsító tár. A záltal, hogy a d e k ó d o lt m ik ro m ű v eletek et gyorsító- B TIÍ-ből (B ran ch T arget ButTcr, elágazási célpuffer) és a jö v en d ö lt cím től fo ly tat­
tárazza, és nem a feldolgozatlan u tasításo k at, egy nyom követő gyorsító tárb eli u ta ­ ja a d ek ód o lást. A z L l BTB táro lja az utolsó 4K elágazást. H a az elágazó utasítás
sítás v ég reh ajtásak o r nines szükség m ásodszori d ek ó d o lásra. E z a m egközelítés az nem szerepel a táblázatban, statikus jö v en d ö lést használ. Egy visszafelé tö rté n ő
egyik kulcsfontosságú különbség a N etB u rst m ik ro a rc h ite k tú ra és a P 6 k özött (az elágazásról feltételezi, hogy egy ciklusnak a része és, az ugrást végre is kell haj-
utóbbi csak a Pentium 4 u ta sításo k at tá ro lta az I. szintű u tasítás-g y o rsító tárb an ).
Az elágazásjövendölésre is itt kerül sor.
A z utasításo k a nyom követő gyorsító tárb ó l a p ro g ram által e lő írt so rren d b en
kerü ln ek az ü tem ező b e, de o n n a n nem felté tle n ü l a p ro g ram szerinti so rren d b en
kerü ln ek tovább. H a egy nem v ég reh a jth a tó m ik ro m ű v elet következik, az ü te m e ­
ző tárolja, de folytatja az utasításfolyam feldolgozását, és a rák ö v etk ező u tasítások
közül is kioszt olyanokat, m elyek m indegyikének erő fo rrásai (reg iszterek , m ű k ö ­
dési egységek stb.) elé rh e tő k . A reg iszterátn ev ezés is itt tö rtén ik , hogy késedelem
nélkül továbbeng ed jü k a W A R és WAW függőséggel ren d elk ező u tasításo k at.
H a b á r az u tasításo k at so rre n d e n kívül is ki leh et osztani, a P entium 4 areh itek -
tű rán ak p o n to s m egszakításokra v o n atk o zó követelm énye azt jelen ti, hogy az ISA-
utasításo k n ak so rre n d b en kell befejező d n i (azaz e lérh ető v é ten n i az ered m é n y ü ­
ket). Ezt a felad a to t a befejező egység kezeli.
A z áb ra jo b b felső n eg y ed éb en talá lh a tó k a v ég reh ajtó egységek, am elyek az
egész, a lebegő ponto s, és a speciális m ű v eletek et hajtják végre. T ö b b v ég reh ajtó
egység is létezik, és ezek p árh u zam o san futn ak . A d a ta ik a t a reg iszte rek b ő l és az
L1 ad at gyorsítótárb ó l kapják.

A NetBurst csővezeték

A 4.47. ábra egy részleteseb b v álto zata a N etB u rst m ik ro a rc h itek tú rá n ak , b e m u ­


tatva a csővezetéket. Felül van a b e m en e ti rész, am inek az a felad ata, hogy b e tö lt­
se az u tasításo k at a m em ó riáb ó l, és előkészítse a v égrehajtást. A b e m en e ti rész az
új Pentium 4 u tasításo k at az L2 gyorsító tárb ó l kapja, egyszerre 64 bitet. E zeket
dek ód olja m ikro m ű v eletek re és tárolja a nyom követő g y o rsító tárb an , m ely 12K
m ikrom űveletet tartalm az. Ilyen m é re tű nyom követő g y o rsító tár teljesítm énye
összehasonlítható egy 8 -1 6 KB m éretű hagyom ányos L1 g y o rsítótárral. A nyom ­
követő g yo rsítótár h at m ik ro m ű v eletet cso p o rto sít m in d en nyom követő sorba. A
nyom követő sor m ikrom űveletei so rre n d b e n k erü ln ek v ég reh ajtásra, a n n ak elle­
nére, hogy olyan Pentium 4 IS A -utasításokból szárm aznak, m elyek tö b b ez e r bájt
távolságra lehetn ek . H osszabb m ik ro m ű v elet-so ro zath o z tö b b nyom követő sort is
össze lehet kapcsolni.
H a egy r’entiu m ISA -utasítás több m int négy m ik ro m ű v eletet igényel, nem de-
kódolódik a nyom követő g y orsítótárba. E hely ett egy jelzés k erü l oda, mely u ta ­ 4.47. ábra. A Pentium 4 adatútjának leegyszerűsített ábrája
4.6. P É L D Á K A M IK R O A R C H IT EK T Ú R A -SZ IN TR E 337
336 4, A M IK R O A R C H IT E K T Ú R A SZ IN T JE

tani. A z ilyen statik u s elágazásjövendölés p o n to sság a rendkívül m agas. A z elő re h ajta n i m in d en óraciklusban. T ehát a lebegő p o n to s m ű v eletek en felül legjobb
irányuló elágazást úgy kezeli, m in th a egy if u tasítás része len n e, és felételezi, hogy e setb en h at, egész típusú m ik ro m ű v eletet leh et kiosztani ó raciklusonként.
nem kell végrehajtan i. A z ilyen statikus elágazásjövendölés p o n to sság a sokkal ala ­ A két, egész aritm etik ájű A L U nem teljesen egyezik m eg. A z A L U 1 képes
csonyabb, m int a visszafelé tö rté n ő elágazásé. A nyom követő B TB -t arra h aszn ál­ az összes aritm etik ai és logikai m űvelet, v alam int az elágazás v ég reh ajtására. A z
ja, hogy m egjósolja, hova u g ran ak az elág azó m ikrom űveletek, A L U 2 csak az összeadó, kivonó, lé p te tő és fo rg ató u ta sítá so k a t k é p es v ég reh ajta­
A csővezeték m ásodik részét, a so rre n d e n kívüliséget v ezérlő logikát a ny o m k ö ­ ni. H a so n ló a n a k é t leb eg ő p o n to s egység sem egyezik m eg. A z első a m ozgató és
v ető g yorsítótár táp lálja, és 12K m ik ro m ű v eletet tartalm az. A hogy a m ik ro m ű v e­ az S S E -m ű v eleteket tu d ja végrehajtani. A m ásodik a leb eg ő p o n to s aritm etik át, az
letek a b e m en e ti részből érk ezn ek , cik lu so n k én t h áro m , a lefoglaló/átnevező egy­ M M X - u tasításo k at és az S S E -u tasításo k at h ajtja végre.
ség egy 128 bejegyzést ta rta lm a zó táb láb a veszi fel ő k et, am it R O B -nak (ReOrder A z A L U -t és a leb eg ő p o n to s egységet k ét, 128 elem ű regisztergyűjtő szolgálja
Buffer, átrendező puffer) hívnak. E z a bejegyzés követi nyom on a m ik ro m ű v elet ki: egy az egész, egy pedig a leb eg ő p o n to s egységet. E zek szolgáltatják a v ég re­
állap o tát, am íg be n em fejeződik. E zu tán a lefoglaló/átnevező egység m egvizs­ h a jta n d ó u tasításo k o p eran d u sait, és rak táro zzák az ered m én y ek et. A reg iszter­
gálja, hogy a m ik ro m ű v elet által igényelt e rő fo rrá so k ren d elk e zé sre állnak-e. H a átnevezés k ö vetk eztéb en nyolc tartalm azza az ISA -szinten is lá th a tó reg iszterek et
igen, a m ikrom ű v elet b ek e rü l az egyik vég reh ajtási sorba. H a a m ik ro m ű v eletet (E A X , E B X , E C X , E D X stb.), de hogy m elyik az a nyolc, am elyikben az „igazi”
nem leh et végreh ajtan i, a kk o r felfüggeszti, de a rák ö v etk ező m ik ro m ű v eletek fel­ é rté k van, az id ő b en változik, ahogyan a futás közben m ódosul a leképezés.
dolgozása folytatódik, am i a m ik ro m ű v eletek so rre n d e n kívüli v ég reh ajtásáh o z A z L1 ad atg y o rsító tár része a nagy sebességű (2x) áram k ö rn ek . E z 8K B -os
vezet. E zt a stratég iát úgy terv ezték m eg, hogy foglalja le a m ű ködési egységeket, gy orsítótár, am ely egész és leb eg ő p o n to s szám okat, valam int m ás típusú a d ato k a t
am ennyire csak leh etség es. A k á r 126 u ta sítá s is leh et egyszerre feldolgozás alatt, táro l. A n yom követő gy o rsító tárral e llen tétb en ez egyáltalán nincs dekódolva. A
m elyek közül 48 végezhet m em ó riáb ó l b etö ltést, és 24 végezhet m em ó riá b a írást. m em ó riab eli bájto k p o n to s m áso latát tartalm azza. A z L1 ad atg y o rsító tár 4 utas
N éh a egy m ik ro m ű v elet elak ad , m ert olyan reg iszte rb e kell írnia, am elyet egy halm azk ezelésű gyorsítótár, 64 bájtos gyorsítósorral. írá sá te re sz tő gyorsítótár,
korábbi m ik ro m ű v elet olvas vagy ír. E zek e t a k o n fliktusokat, ahogyan azt m á r k o ­ am i azt je le n ti, hogy egy gyorsítósor m ó d o sításak o r a so rt azonnal visszam ásolja
ráb b an láttuk, re n d re W A R és WAW függőségeknek nevezik. Egy m ikro m ű v elet az L2 g y o rsítótárba. A g y o rsító tár egy olvasó és egy író m ű v eletet képes kezelni
célreg iszterét átn ev ezh etjü k , hogy az e re d m én y é t a 120firkáló reg iszte r valam elyi­ egy ó racik lu s alatt. H a a k e re se tt szó nem ta lá lh a tó m eg az L1 gyo rsító tárb an , k é ­
kébe írja a terv ezett, ám m ég m indig foglalt eélrcg iszter helyett. E záltal lehetővé rést küld az L2 g yorsítótárnak, am ely vagy azonnal válaszol, vagy előbb b etö lti a
válik, hogy azonn al ü tem ezh essü k a m ik ro m ű v elet v ég reh ajtását. H a n incsen el­ gyo rsító so rt a m em ó riáb ó l, és csak azután. E gyszerre legfeljebb négy k érés leh et
é rh e tő firkáló regiszter, vagy a m ik ro m ű v elet R AW függőséggel ren d elk ezik (am it fo ly am atb an az L1 g y orsítótárból az L2 gyorsítótárba.
soha n em leh et kiküszöbölni), a lefoglaló feljegyzi a p ro b lé m a te rm é sz e tét a R O B M ivel a m ik ro m ű v eletek so rren d en kívül is v ég reh ajth ató k , n em m eg en g e d ett
bejegyzésben. H a később az összes szükséges e rő fo rrá s ren d e lk e z ésre áll, a m ik ro ­ az L1 g y o rsítótárba tö rté n ő táro lás, am íg a tá ro ló u tasítást m egelőző összes u ta sí­
m űvelet átk erü l az egyik v égrehajtási sorba. tá s be n e m fejeződött. A befejező egység felad ata, hogy az utasításo k so rren d b en
A lefoglaló/átn ev ező egység a k ét v árakozási so r valam elyikébe teszi á t a m ikro- fejező d jen ek be, és hogy helyüket nyilvántartsa. M egszakítás esetén a m ég b e fe ­
m űveleteket, am ik o r k észen állnak a v ég reh ajtásra. A m ásik o ld alo n négy ütem ező je ze tle n u ta sításo k at elveti, ezáltal a P entium 4 m egőrzi azt a tu lajd o n ság át, hogy
találh ató , am elyek kiveszik a m ik o rm ű v eletek et. M inden ü tem ező e rő fo rrá so k a t m eg szak ításkor egy bizonyos p o n tta l b ezáró lag m in d en u tasítás lezárult, és hogy
ü tem ez az alábbiak szerint: e zen tú l sem elyik u tasításn ak sincsen hatása.
H a egy tá ro ló u tasítás b efejező d ö tt, de m ég folyam atban v an n ak az azt m eg­
1. ütem ező: A L U 1-et és a leb eg ő p o n to s m ozg ató egységet. előző u tasítások, az L1 g y o rsító tárat nem leh et m ódosítani, így az ered m én y ek a
2. ütem ező: A L U 2-t és a leb eg ő p o n to s v ég reh ajtó egységet. fo ly am atb an lévő tá ro láso k pu fferéb e (p en d in g -sto re b u ffer) kerü ln ek . E n n e k a
3. ütem ező: b e tö ltő u tasításo k at. p u ffe rn e k 24 bejegyzése van, am i m egfelel a 24 táro ló m űveletnek, am i egyszerre
4. ütem ező; tá ro ló u tasításo k at. v ég reh ajtás a latt lehet. H a egy későbbi b etö ltés tá ro lt a d a to t p ró b ál olvasni, azt az
u tasítás m ég ak k o r is m eg k ap h a tja a folyam atban lévő táro láso k p ufferéből, h a az
Mivel az ütem ező k és az A L U -k a névleges ó rafrek v en cia k étszeresén fu tn ak , az L1 g y o rsító tárb an m ég n em é rh e tő el. E zt a folyam atot tárolás utáni betöltésnek
első k ét ü tem ező ó ra cik lu so n k é n t két m ik ro m ű v eletet tu d elk ü ld en i. K ét, d u p la nevezzük.
sebességű, egész aritm etik ájű A L U -val egy 3 G H z-es P en tiu m 4 12 m illiárd egész M o sta n ra világosnak kell lennie, hogy a P entium 4-nek nagyon ö sszetett mik-
m űveletre képes m áso d p e rc e n k én t. Ez a nagyon nagy sebesség az oka, hogy a ro a re h ite k tú rá ja van, ahol a tervezést az v ezérelte, hogy a régi P entium -utasítás-
so rren d en kívüliség vezérlője nagy neh ézség ek b e ütközik, hogy m u n k á t találjon h alm az v é g reh ajth ató legyen egy m o d ern , erő sen cső v ezetékezett R IS C -m agon is.
az A L U -k szám ára. A b e tö ltő és tá ro ló u tasításo k k özösen h aszn áln ak egy d u p la E zt a célt úgy valósítja m eg, hogy feld arab o lja a P en tiu m -u tasításo k at raikrom űve-
frekvenciás v ég reh ajtó egységet, am ely egy-egy b e tö lté st és tá ro lá st k ép es v ég re­ letek re , am elyeket g y o rsító tárb an tárol, m ajd hárm asával á tad ja a csővezetéknek.
338 4. A M IK R O A R C H IT E K T Ú R A S Z IN T JE 4.6. P ÉL D Á K A M IK R O A R C H IT EK T Ú R A -SZ IN TR E 339

ahol a v ég rehajtás olyan A L U -k o n tö rté n ik , am elyek optim ális k ö rü lm én y ek k ö ­ A 4.48. á b ra bal felső részében találh ató a 32 K B -os 4 utas halm azkczelésű
z ö tt a k ár hat m ikroniú'vcictrc is k ép esek ciklűsonkcnt. A m ik ro m ű v cietck v ég re­ u tasítás-g y o rsítótár, m ely 32 bájtos gyorsítósort használ. Mivel a legtöbb U ltra-
hajtása so rre n d tő l e lté rő m ó d o n tö rtén ik , de a b efejezés és az ered m én y táro lá sa S PA R C -utasítás 4 bájtos, így körülbelül 8K u tasításn ak van itt hely, am i valam ivel
az L1 és L2 gy o rsító tárak b an m ár so rre n d b e n zajlik. A N etB u rst a rch ite k tú rá ró l kisebb, m int a N etB u rst nyom követő gyorsítótára.
további in form ác ió k at lásd (H in to n és társai, 2004). A z u ta sítá sk io sz tó egység négy u tasítást is elő tud készíteni óraciklusonként.
H a gy o rsító tárhiány lép fel az Ll gyorsító tárb an , kevesebb u tasítást fog kiosztani.
H a egy feltételes elágazó u tasításb a ütközik, u tá n a n é z a 16K bejegyzést ta rta lm a ­
4.6.2. Az UltraSPARC III Cu CPU-jának mikroarchitektúrája zó u g h itá b lá b a n , hogy az a következő u tasítást jövendöli, vagy a célcím en szerep ­
lőt. E zen felül, az utasítás-g y o rsító tárb an lévő szavakhoz kapcsolt extrabit is segíti
A z U ltraS P A R C -sorozat a SPARC a rc h ite k tú ra 9. v á lto zatán ak Sun m egvalósítá­ az elágazásjövendölést. A z elő k észített u tasításo k átk erü ln ek egy 16 elem ű utasí-
sa. A felhasználó vagy a p ro g ram o zó szem szögéből (azaz ISA -szintcn) a k ü lö n ­ tásp u fferb e, am ely kisim ítja az u tasítások csővezetékekbe áram lását.
böző m odellek eléggé haso n ló k , főleg teljesítm én y b en és á rb a n külö n b ö zn ek . A A z u tasítá sp u ffe r k im en ete b ek erü l az egész, a leb eg ő p o n to s és a b e tö ltő /táro ló
m ik ro a rc h ite k tú ra szintjén azo n b an je le n tő se k a k ü lönbségek. E b b e n a fejezetb en egységekbe, am int az a 4.48. áb rán látszik. A z egész aritm ctik ájú v égrehajtó egy­
az U ltraS PA R C III C u p ro cesszo rt fogjuk b e m u ta tn i. A m egnevezésben lévő Cu, ség ta rtalm a z két A L U -t és egy rövid csővezetéket is az elágazó utasításo khoz. Az
a lapka vezetékein él h aszn ált rézre utal, e llen tétb e n az alu m ínium vezetékezéssel, ISA -regiszterek és néhány firkáló regiszter is itt található.
am it elő d jén él haszn áltak . A rézn ek kisebb az ellen állása, m in t az alu m ín iu m n ak ,
am i vékonyabb v eze té k ek e t és gyorsabb m ű k ö d ést tesz lehetővé.
A z U ltraSP A R C 111 C u egy teljesen 64 b ites gép, 64 b ites reg iszterek k el és 64
bites ad a tú tta l, b á r a 8. v álto zatú (vagyis 32 b ites) SPA R C -okkal való visszafelé
k om patibilitás m ia tt 32 b ites o p e ra n d u so k a t is tud kezelni, és v alóban v álto ztatás
nélkül fu tta t 32 bites SPA RC -szoftvert. B ár a belső a rc h ite k tú ra 64 bites, a m e m ó ­
riasín 128 b it széles, a P en tiu m 4-hez h aso n ló an , am elynek 32 bites a rc h ite k tú rá ja
és 64 bites m em ó riasín je van, de m in d k ét e se tb e n a sín egy g en erációval későbbi,
m int m aga a C P U .
A Pentium 4-gyel e lle n té tb e n az U ltraS P A R C egy valódi R IS C -arch itek tú ra,
am i azt jelen ti, hogy nincs szüksége a rra a bony o lu lt m ech a n izm u sra, am i a v ég re­
hajtásh o z átalak ítja a régi C IS C -u tasításo k at m ik ro m ű v eletek re. A gépi u tasításo k
m aguk a m ikrom ű v eletek . A z o n b an az u tó b b i években grafikai és m u ltim éd ia -u ta ­
sításokkal eg észítették ki a pro cesszo rt, m elyek v é g reh ajtása speciális h a rd v e rb e ­
ren d e z é se k e t igényel.

Az UltraSPARC III Cu mikroarchitektúrájának áttekintése

A z U ltraS P A R C III C u b lo k k d iag ram ja a 4.48. áb rá n láth a tó . E gészében v é ­


ve, sokkal egyszerűbb, m in t a P en tiu m 4 N e tB u rst m ik ro a rc h ite k tú rá ja , m e rt az 4.48. ábra. kz UltraSparc III Cu blokkdiagramja
U ltraS P A R C -nak egyszerűbb IS A -arch itek tú rát kell m egvalósítania. M in d e m ellett
néh án y lényeges k o m p o n en s h aso n lít a P en tiu m 4-nél haszn áltak h o z. E ze k et a h a ­ A leb eg ő p o n to s egység 32 reg isztert és h árom külön A L U -t tartalm az re n d re az
sonlóság ok at töb b n y ire a techn o ló g ia, illetve a gazdaságosság v ezérelte. P éld áu l, összeadás/kivonás, a szorzás és az osztás szám ára. A grafikai utasításo k is itt k e­
am ikor ezek et a la p k ák a t tervezték, ésszerű n ek szám íto tt a 8 -1 6 KB m é re tű L1 rü lnek v ég rehajtásra.
adatg y o rsító tár, e z ért lettek ek k o rák . H a valam ik o r a jö v ő b en techn o ló g iai és g az­ A b e tö ltő /tá ro ló egység kezeli a k ü lönböző b e tö ltő és tá ro ló u tasításokat.
dasági szem pon tb ó l egy 64 M B -os L1 g y o rsító tár szám ít m ajd ésszerű n ek , a k k o r A d a tú tta l rend elk ezik három k ü lönböző g yorsítótárhoz is. A z a d a tg y o rsító tá r egy
m in d en C P U -b an az lesz. E zzel e lle n té tb e n a külön b ség ek töb b n y ire a régi C ISC - hagyom ányos 64 K B -os 4 u tas h alm azkezelésű L l ad atg y o rsító tár, m ely 32 bájtos
u tasításh alm az és a m o d ern R IS C -m ag kö zö tti k ü lö n b ség ek áth id alásáb ó l, illetve g yo rsító so rt használ. A 2 K B -os eló're betö ltő g y o rsító tá r a z ért van jelen , m ert az
en n ek hiányából ad ó d n ak . U ltraS P A R C ISA tartalm az elő re b e tö ltő u tasításo k at, m elyek lehetővé teszik a
340 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.6. P ÉL D Á K A M IK R O A R C H IT EK T Ú R A -SZ IN TR E 341

fo rd ító szám ára, hogy ad atszav ak at tö ltsen ek be, m ielő tt m eg szükség lenne rá ­
juk. H a a fo rd ító úgy g ondolja, szüksége leh et egy bizonyos szóra, elő re b e tö ltő
u tasítást a d h at ki, am in ek ered m é n y e k é p p e n a m eg cím zett gyorsítósor idő elő tt
bekerül az elő re b e tö ltő gy o rsító tárb a, felgyorsítva ezzel a szó elérését, am ik o r
n éhány u tasítás m úlva szükség lesz rá. B izonyos kö rü lm én y ek k ö zö tt h ard v eres
elő re b etö ltés is tö rtén ik , hogy fokozódjon az olyan ö rö k ö lt p ro g ram o k teljesít­
m énye, am elyek nem végeznek elő re b etö ltést. A tárolási gyorsítótár egy kism é­
retű (2 KB) gyorsítótár, m elyet a rra haszn álu n k , hogy összekapcsoljuk az e re d m é ­
nyek írását, és jo b b a n k ihasználjuk az L2 g y o rsító tárb a m e n ő 256 bit széles sínt.
Egyedüli felad ata a teljesítm én y növelése.
A lapka tartalm az m em ó riav ezérlő logikát is. E z a logika h áro m részre oszlik:
a ren d szerin terfeszre, az L2 gy o rsító tár-v ezérlő re és a m em ó riav ezérlő re. A rend-
szerin terfész 128 bit széles sínen keresztül k apcsolódik a m em ó riáh o z. A külvilág­
hoz érk ező összes kérés, az L2 g y o rsító tárat kivéve, ezen a felü leten halad k eresz­
tül. A 43 bites fizikai m em ó riacím m el elm é letb en a fő m em ó ria egészen 8T B -ig
te rjed h et, de az a n y o m ta to tt áram k ö r, am ire a p ro cesszo rt szerelték , 16 G B -ra
korlátozza a m em ó riát. A z interfészt úgy tervezték, hogy tö b b U ltraS P A R C -ot is
lehessen u gyanahhoz a m em ó riáh o z kapcsolni, hogy ezek m ultiprocesszort alk o s­
sanak. A m ultipro cesszoro k at a 8. fe jezetb en tárgyaljuk.
A z L2 gyorsító tár-v ezérlő tartja a k ap cso lato t az eg yesített L2 g y o rsító tárral,
m ely a C P U lapkáján kívül helyezkedik cl. A záltal, hogy az L2 g y o rsító tár kívül
van, 1, 4 és 8M B is leh et a m ére te . A g yorsítósor m é rete függ a g y o rsító tár m é re ­
tétő l, am i az 1 M B -os g y o rsító tárra v o n atk o zó 64 b ájttó l a 8M B -o s g y o rsító tárra
v onatkozó 512 bájtig te rje d h e t. Ö sszehasonlításul, a P en tiu m 4 L2 g y o rsító tára a
lapkán találh ató , viszont helyhiány m iatt 1 M B -ra ko rláto zó d ik . K ét e lle n té tes n é ­
zet; az U ltraS P A R C jóval m ag asab b találati arán y t é rh e t el az L2 g y o rsító tárb an ,
m int a P entium 4 (m e rt nagyobb leh et a m é re te ), viszont az L2 g y o rsító tár h o zzá­
férése lassabb (m ert nincs ra jta a lapkán).
A m em óriavezérlő képezi le a 64 bites virtuális cím ek et 43 bites fizikai cím ek ­
re. A z U ltraSP A R C tám o g atja a virtuális m e m ó riá t (lásd 6. fejezet), ahol a lapok
m érete 8KB, 64 KB, 512 KB vagy 4 M B lehet. A lek ép ezés g y orsítására speciális
táb lázato k , ún. TLB-k (Translation Lookaside Buffer, lapkezelő segédpuffer) áll­
nak ren d elk ezésre, hogy össze lehessen hasonlítani az é p p e n hiv atk o zo tt virtuális
cím et a n em rég ib en hiv atk o zo ttak k al. H á ro m ilyen táb lázat áll ren d elk ezésre az
adato k h o z, hogy k ényelm esen lehessen kezelni a külö n b ö ző la p m é re te k e t, és k e t­
tő az u tasításo k leképezéséhez.

4.49. ábra. Az UltraSPARC III Cu egyszerűsített ábrája


Az U ltraSPA RC Ili Cu csővezetéke
ez az a cím , am elyik az aktuális utasítást követi. A zo n b an ez az egym ást követő
A z U ltraS P A R C III C u -n ak tizennégy szakaszos csővezetéke van, m ely egyszerű­ so rren d szám os okból m egszakadhat, p éld áu l, ha egy korábbi utasítás egy e lá g a ­
sített fo rm áb an a 4.49. á b rá n találh ató . A 14 szakaszt - az á b ra bal oldalán láth a tó zás, am iről azt jöven d ö ltü k , hogy végre kell h ajtani, vagy egy csapda, vagy egy ki­
-A , D b etűk k el eln ev ezték el. Viz.sgáljuk m eg röviden az egyes szakaszokat. szolgálandó m egszakítás. M ivel az clágazásjövendölés egy ciklus alatt nem h a jt­
A z A (A ddress g en e ra tio n , cím g en eráló ) szakasz van a csővezeték elején. A zért h ató végre, a feltételes elágazást követő u tasítást m indig végrehajtja, függetlenül
van itt, hogy a követk ező n ek b e tö lte n d ő u tasítás cím ét m eg h atáro zza. N o rm álisan a ttó l, hogy lesz-e elágazás.
342 4, A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4,6. P É L D Á K A M IK R O A R C H IT EK T Ú R A -SZ IN T R E 343

A P (P relim in ary fetch , elő ze tes b e tö ltő ) szakasz, az A szakasz által szo lg álta­ A C (C ache, gyorsítótár) szakaszban zárul le az L1 g y o rsító tár elérése. A zok az
to tt cím ről kezd el b e tö lte n i c ik lu so n k én t legfeljebb négy u tasítási az L1 I-gyorsí- u tasításo k , am elyek a m em ó riáb ó l olvasnak (azaz a b e tö ltő u tasítások), itt szolgál­
tó tárb ó l. Itt u tá n a n é z az u g ró táb lá b an is, h á th a az egyikük feltételes elágazás, és tatjá k az eredm ényüket.
h a igen, ak k o r el kcll-e ágazni. A z F (F etch , b e tö ltő ) szakasz b efejezi az u tasításo k A z M (M iss, hiány) szakasz kezdi m eg azoknak az ad a to k n a k a m egkeresését,
b e tö lté sé t az I-gyorsítótárból. am elyekre szükség van, de n in csen ek az L1 g yorsítótárban. E zu tán az L2 gyorsító­
A B (B ran ch targ et, elágazási cél) szakasz d ek ó d o lja az im én t b e tö ltö tt u ta s ítá ­ tá rb a n prób álkozik, és h a itt sincs, kibocsát egy m em óriahivatkozást, m ely szám os
sokat. H a bárm elyik közü lü k olyan elágazás, m elyet a jö v en d ö lés szerin t végre kell ciklust igényel. A zok a bájto k , negyedszavak vagy félszavak is itt k erü ln ek feld o l­
h ajtan i, ak k o r az inform áció eb b en a szakaszban re n d e lk e z ésre áll, és vissza is k e ­ g ozásra, m elyek m eg találh ató k az L1 g yorsítótárban, de igazítást és elő jel-k iter­
rül a z ^ szakaszhoz, így vezérelve a további u tasításo k b e tö lté sé t. je sz tést kell ra jtu k végezni. A z elő re b e tö ltő gyOTSítótárból kiszolgálható leb eg ő ­
A z 1 (In stru ctio n g ro u p fo rm atio n , u tasításcso p o rto sító ) szakasz c so p o rto k b a p o n to s b e tö ltések is itt kapják m eg ered m én y ü k et. A z elő re b e tö ltő gyo rsító tár
sorolja a bejövő u ta sításo k a t attó l függően, hogy a követk ező h a t m ű ködési egység bony o lult időzítési p ro b lém ák m iatt n em h aszn álato s egész típusú adatokhoz.
közül m elyiket használják: A W (W rite, író) szakaszban a speciális egység ered m én y ei b e k erü ln ek a m unka
regisztergyűjtőbe.
1. E gész A L U 1. P a .X (e X ten d ed , k iterjesztett) szakaszban fejeződik be a legtöbb lebegőpontos
2. E gész A L U 2. és grafikai utasítás. A z ered m én y ek a k övetkező utasításo k szám ára a táro lás u tán i
3. L ebegőpontos/g rafik u s A L U 1. b etö ltési technikával é rh e tő k el, am íg az u tasításo k form álisan is le nem záró d n ak
4. L ebegőpontos/g rafik u s A L U 2. a D szakaszban.
5. E lágazási csővezeték (nem szerep el az áb rán ). A T (Trap, csapda) szakasz észleli az egész és leb eg ő p o n to s csapdákat. E z a sza­
6. B etö ltő , táro ló és speciális m ű veletek. kasz felelős azért, hogy a csap d ák és m egszakítások p o n to san tö rtén jen ek . M ás
szavakkal, csapda vagy m egszakítás u tá n a gép elm e n te tt állap o ta olyan legyen,
A k ét egész aritm etik ájü A L U n em teljesen egyform a, a k ét le b eg ő p o n to s A L U hogy m in d en utasítás a csap d a vagy a m egszakítás elő tt teljesen b efejező d ö tt, és az
pedig je le n tő se n különbözik. M in d k ét e setb en külön b ö zik az u tasításh alm az, am it u tá n a jöv ő k közül egy sem k ezd ő d ö tt el.
az A L U -k végre tu d n a k h ajtan i. A z I szakasz az u ta sítá so k a t aszerin t ren d ezi, hogy A D szakasz véglegesíti az egész és leb eg ő p o n to s reg iszte rek et a m egfelelő ar-
m elyik egységre van szükségük. c h itek tu rális regisztergyűjtőkben. C sap d a vagy m egszakítás e setén ezek az é rté ­
A J (In stru ctio n stage grouping, u tasításk io sztó ) kiveszi az u tasítá so k a t az u ta ­ kek, v alam in t a nem a m u n k a reg iszterek b en lévők lesznek láth ató k . A regiszterek
sítássorból, és előkészíti a v ég reh ajtó egységek szám ára. A k á r négy u ta sítá st is tu d táro lása az arch itek tu rális gyűjtőben m egegyezik a P en tiu m n ál haszn ált b e fe je ­
to vábbítani az R szakaszba ciklusonként. A z u tasításo k kiválasztása függ az e lé r­ zéssel. E zen felül a D szakaszban b efejező d ő tá ro ló u tasításo k a tárolási gyorsító­
h e tő m űködési egységektől. P éld áu l, k ét egész u tasítást, egy leb eg ő p o n to s u tasí­ tá rb a írják az ered m én y ü k et, és nem az L1 ad atg y o rsító tárb a. V égül a g yorsítótár
tást és egy b e tö ltő vagy tá ro ló u ta sítá st ki leh et osztani egyszerre, de h á ro m egész so rai visszakerülnek az L2 gyorsítótárba, elkerülve az L1 g y o rsító tárat (L l-b e n ez
u tasítás nem b o csá th a tó ki egy ciklusban. a gy orsítósor érv én y telen n é válik). E z a kezelés azt célozza, hogy könnyebb legyen
A z R szakasz k ikeresi az egész u tasításo k h o z szükséges re g iszte rek et és to v áb ­ U ltraS P A R C m u ltip ro cesszo ro k at építeni.
b ítja a leb eg ő p o n to s reg iszter k é ré se k e t a le b eg ő p o n to s regisztergyűjtőnek. A füg­ A z U ltraS P A R C III fenti leírása m essze nem teljes, de elfo g ad h ató k ép et ad a r­
gőségi ellen ő rzések is itt tö rté n n e k . H a egy szükséges reg iszter n em áll re n d e lk e ­ ról, hogyan m űködik, és m iben té r el a P entium 4 m ik ro arc h itek tú rátó l.
zésre, m ert m ég egy k o ráb b i u tasítás használja, úgy, hogy az ü tk ö z ést ered m é n y ez ­
ne, az az utasítás, am elyiknek szüksége van a regiszte rre, m egakad, és a m ö g ö tte
levőket is m egállítja. A P en tiu m 4-gyel e lle n té tb en az U ltraS P A R C 111 C u soha 4.6.3. A 8051 CPU mikroarchítektúrája
nem oszt ki so rre n d tő l e lté rő e n u tasításo k at.
Az E (E xecution, v égrehajtó) szakasz az, ahol az egész utasítások ténylegesen U to lsó p é ld á n k a m ik ro a rc h ite k tú rá ra a 8051-es, am ely a 4.50. áb rá n láth ató . E z
végre is hajtódnak. A legtöbb aritm etikai, logikai, és lép tető u tasítás az egész a rit­ jóval egyszerűbb a P entium nál és az U ltraS PA R C -nál. A z egyszerűség oka, hogy
m etikájü A L U -t használja, és egy ciklus alatt be is fejeződik. M in d en u tasítás b efe­ a lap k a nagyon kicsi (60 000tran ziszto r), és m ég a csővezetékek elterjed ése előtt
jeztével azonnal frissül a regisztergyűjtő. N éhány bonyolultabb egész aritm etikájü terv ezték . Továbbá az, hogy az elsődleges tervezési szem p o n t az volt, hogy a lapka
u tasítás a speciális egységbe kerül. A b etö ltő és táro ló utasítások ebben a szakaszban olcsó legyen, és nem az, hogy gyors. A z olcsóság és egyszerűség egym ás jó b arátai,
kezdődnek, de nem itt fejeződnek be. A feltételes elágazó u tasítások feldolgozása m íg az olcsóság és gyorsaság nem azok.
az E szakaszban kezdődik, és irányuk (elágazás/nem elágazás) is itt dől el. H ibás jö ­ A 8 0 5 1 -e s lelk e a fősín . S zám os regiszter k a p cso ló d ik h ozzá, m elyek tö b b sé g ét a
vendölés esetén, jelet küld az^l szakasznak, és érvényteleníti a csővezetéket. program ok k é p e se k írni é s olvasni. A z ACC regiszter az a k k u m u lá to r (A C C um ula-
344 4. A M IK R O A R C H IT E K T Ü R A SZ IN T JE 4.6. P É L D Á K A M IK R O A R C H IT EK T Ú R A -SZ IN TR E 345

Fősín A 8051-es külön m em óriával ren d elk ezik az ad ato k és a kód szám ára. Az adat
R A M 128 (8t)51) vagy 256 bájtos (8052), így a 8bites RAM ADDR regiszter eleg e n ­
d ő en széles a cím zésre. A R A M cím zéséhez a kívánt bájt cím ét a RAM ADDR re-
gi.szterbe kell tenni, és elin d ítan i a m em ó riam iivelctet. A k ó d m em ó ria 64 KB le­
h e t (h a lap k án kívüli m em ó riát használunk), így a cím zéséhez használt ROM ADDR
16 b it széles. U gyanúgy a ROM ADDR regiszter a p ro g ram k ó d o t címzi a R O M -b an .
A DPTR (Douhle PoinTeR, dupla szélességű m utató) 16 bites regiszter a 16 bi­
tes cím ek kezelésére és összeállítására. A PC regiszter a 16 bites utasításszam láló,
am i a következőnek b e tö lten d ő és végreh ajtan d ó utasítás cím ét tartalm azza. A PC
BUFFER NÖVELŐ regiszter egy speciális hardver, am ely p szeudoregiszterként m űködik. 1la
'V
belem ásolják a PC-t, m ajd kiolvassák, az érték au to m atik u san növekszik. Sem a PC.
PC növelő sem a PC NÖVELŐ nem é rh e tő el a fősínről. V égül, a PUFFER egy újabb 16 bites regisz­
ter. M indegyik 16 bites regiszter tu lajd o n k ép p en két 8bites regi.szterből áll, m elye­
PC < í= C > k e t függetlenül is lehet kezelni, de a h atásuk 16 bites regiszterként érvényesül.
A 8051 rendelkezik m ég a lapkán elhelyezett három 16 bites időzítővel, m elyek
DPTR
n élk ü lö z h e tetlen ek valós idejű alkalm azások esetén . Van m ég négy 8bites B/K
p o rtja , m elyek lehetővé teszik a 8051 szám ára, hogy ak ár 32 külső gom bot, lám ­
pát, é rzék elő t, in d ító k art stb. vezérelhessen. É p p e n az időzítők és a B/K p o rto k te ­
Időzítő 0
szik lehetővé, hogy a 8051 kiegészítő lapkák nélkül is h aszn álh ató legyen beágya­
z o tt alk alm azások eseten.
Időzítő 1
A 8051 szinkronproccsszor. m elynek legtöbb u tasítása egy őraciklust igényel,
V- :í> Időzítő 2 b á r ném elyik tö b b et. M inden óraciklust fel leh et osztani hat részre, m elyeket á l­
lapotoknak nevezünk. Az első állap o tb an b etö ltő d ik a következő utasítás a R O M ­
ból, rák erü l a fősínre és az IR regiszterbe. A m ásodik állap o tb an dekó d o ló d ik az
Portó u tasítás, és növekszik a PC. A h arm ad ik állap o tb an az o p e ran d u so k előkészítése
VT
tö rtén ik . A negyedik állap o tb an az egyik o p eran d u s rák erü l a fősínre, általában
Porti azért, hogy TMPl-en keresztül az A L U felhasználhassa. A z ACC regisztert is ebb en
az állap o tb a n lehet átm ásolni TMP2-be, így az A L U m ind a két b em en e te készen
::{> Port 2 áll. A z ö tö d ik állap o tb an az A L U v ég reh ajtja a m űveletet. V égül a h ato d ik álla­
p o tb a n az A L U kim en ete visszakerül a fősínen k eresztü l a ren d eltetési helyére.
=C> Port 3 E k ö zb en a ROM ADDR regiszter előkészül a következő u tasítás b etö ltésére.
B ár további részletekbe is leh etn e boc.sátkozni a 8051-e,ssel kapcsolatban, a fen­
4.50. ábra. A 8051 mikroarchitektúrája ti leírás és a 4.50. á b ra rávilágítanak az a lap ö tletre. A 8051 egyetlen fősínnel re n ­
delkezik (a lapka terü le té n e k csökkentése m iatt), reg iszterein ek halm aza h e te ro ­
tor), a fő aritm etik ai regiszter, m elyben a legtöbb szám ítás e red m én y e keletkezik. gén, v alam in t három időzítő és négy p o rt kapcsolódik a fősínre, tov áb b á van m eg
A legtöbb aritm etik ai u tasítás ezt használja. A B szorzás és osztás esetén k ap sze­ n éh án y extra regisztere a lokális sínen. M inden ad atú tcik lu sb an k ét o p e ran d u s fut
rep et, valam int ideiglenes ered m én y e k tá ro lá sá ra is h aszn álh ató . A z SP reg iszter a keresztü l az A L U -n, és az ered m én y visszakerül egy regiszterbe, ahogy az a k o r­
v erem m u tató , és m in t a legtöbb g ép b en a v erem te te jé re m u tat. Az IR reg iszter az szerű b b szám ítógépeken is történik.
utasításregiszter. A z é p p e n v ég reh ajtás a latt álló u tasítást tartalm azza.
A TMP1 és TMP2 reg iszte rek az A L U táro ló i. Egy A L U -m ű v elet v ég reh ajtásak o r
az o p e ran d u so k elő szö r ezek b e a táro ló k b a k erü ln ek , az A L U csak e z u tá n kezd
m űködni. Az A L U k im en ete bárm elyik írh ató reg iszterb e b ek e rü lh e t a fősínen k e ­
resztül. A PSW (Program Status Word, prograinállapotszó) -regiszterbe k erü ln ek
a feltételk ó d o k , m elyek jelzik, ha az ered m én y nulla, negatív stb.
346 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4,8. Ö S S Z E F O G L A L Á S 347

A P en tiu m 4-gyel és az U ltraSPA R C Ill-m a l szem ben a 8051 igazán egyszerű


4.7. A Pentium, az UltraSPARC és a 8051 gép. In k áb b R IS C , m int C IS C típusú, hiszen legtöbb u tasítása egyszerű és szét­
összehasonlítása b o n tás nélk ül v ég reh ajth ató egy óraciklusban. N incs csővezetéke és gyorsítótára,
van viszont so rren d szerinti kiosztása, so rre n d szerinti vég reh ajtása és so rren d
A h á ro m p éld án k nagyon külö n b ö ző , de m égis van b en n ü k ném i közös. A szerinti b efejezése. E gyszerűségében főleg a M ic-l-g y el rokon.
Pentium 4-nek van egy régi C IS C -u tasításh alm aza, am elyet az In tel m érn ö k ei
legszívesebben b ed o b n á n a k a San Franciscó-i ö bölbe, h a ezzel n em szeg n ék m eg
K alifornia vízszennyezési törvényeit. A z U ltraS P A R C III tiszta R IS C -elképzelés,
szegényes és egyszerű u tasításh alm azzal. A 8051 egyszerű 8b ites p rocesszo r a b e ­ 4.8. Összefoglalás
ágyazott alkalm azáso k szám ára. M égis m indegyik lelke a reg iszterk észlet, és az
egy vagy több A L U , am ely elvégzi az egyszerű aritm etik ai és logikai m ű v eletek et M in d en szám ítógép lelke az ad atű t. T artalm az néh án y regisztert, egy, két vagy h á ­
a regisztereken. ro m sínt, és egy vagy tö b b m űködési egységet, m int az A L U -k és a lép tető k . A fő
E zen nyilvánvaló külső k ü lö n b ség ek elle n é re a P en tiu m 4-nek és az U ltra ­ v é g reh ajtó ciklus tartalm azza néh án y o p e ra n d u s b etö ltését a regiszterekből, és
SPARC Ill-n a k nagyon h aso n ló k a v ég reh a jtó egységei. M in d k ét v ég reh ajtó egy­ azok e lk ü ld ését v ég reh ajtásra a síneken keresztül az A L U -h o z és m ás m űködési
ség olyan m ik ro m ű v eletek et fogad el, am elyek egy m űv eleti k ó d o t, k ét fo rrá sre ­ egységekhez. A zu tán az ered m én y ek et visszatároljuk a regiszterekbe.
gisztert és egy célreg isztert tartalm azn ak . M in d k e ttő végre tu d h a jta n i egy m ikro- A z a d a tu ta t egy so rb a állító v ezérelheti, am elyik m ik ro u tasításo k at tö lt be egy
m ű v eletet egy ciklus alatt. M in d k e ttő n e k nagy tu d ású csővezetékei, elág azásjö ­ v ezérlő tárb ó l. M inden m ik ro u tasítás olyan b itek et tartalm az, am elyek egy ciklu­
vendölése, valam int o szto tt I- és D -g y o rsító tá ra van. son k eresztü l vezérlik az a d a tu ta t. E zek a b itek írják elő, hogy m ely o p eran d u so -
E z a belső haso n ló ság n em v életlen , és n em a Szilikon-völgy m é rn ö k e in ek vég­ k at kell kiválasztani, m elyik m űveletet kell végrehajtani, és m it kell tenni az e re d ­
telen m u n k aszere te tén e k k ö szö n h ető . M in t azt a M ic-3 és M i c ^ p éld á k b a n lá t­ m ényekkel. R áad ásu l m in d en m ik ro u tasítás előírja a követőjét, jellem ző en úgy,
tuk, könnyű és te rm é sz e te s olyan csővezetékes a d a tu ta t ép íten i, am elyik vesz k ét hogy explicit m ód o n tartalm azza an n ak cím ét. N éhány m ik ro u tasítás m ódosítja
fo rrásreg isztert, á tfu tta tja az A L U -n , és az e red m én y t egy reg iszterb e táro lja. A ezt a cím et O R m űvelettel, felhasználás elő tt b itek et téve a cím hez.
4.34. á b ra grafikusan m u ta tja ezt a csővezetéket. A jelen leg i techno ló g iáv al ez a A z IJV M gép egy verem gép, 1 bájto s m űveleti kódokkal, am elyek beteszik a
leghatékonyabb kivitelezés. szavakat a verem be, kiveszik a szavakat a verem ből, és kom binálják (például ösz-
A fő különbség a P en tiu m 4 és az U ltraS P A R C III k ö zö tt az, ahogy ISA -utasí- szeadják) a szavakat a v erem ben. Egy m ik ro p ro g ram o zo tt m egvalósítást ad tu n k
tásaikat a v ég reh ajtó egységhez ju tta tjá k . A P entium 4-nek szét kell b o n ta n ia a m eg a M ic-1 m icro arch itek tú rán . U ta sításb etö ltő hozzáadásával, am ely elő re b e ­
C IS C -utasításait, hogy - a v é g reh ajtó egység elv árásain ak m eg felelő en - h á ro m ­ tölti a b ájto k at az utasításfolyam ból, sok utasításszám lálóra való hivatkozást m eg­
regiszteres fo rm átu m ú v á alak ítsa ők et. E zt m u ta tja a 4.47. á b ra - nagy u tasításo k szü n te th e tü n k , és a gép nagym érték b en felgyorsul.
szétszedése csinos, fo rm ás m ik ro m ű v eletek re. A z U ltraS P A R C Ill-n a k n em kell A m ik ro arc h itek tú ra-szin t terv ezésére sok m ód szer létezik. Sok a kom prom isz-
sem m it ten n ie, m ert e re d e ti u tasításai m á r csinos, fo rm ás m ik ro m ű v eletek . E zért szum , ide tarto zik a k étsín es vagy h árom sínes tervezés, k ó d o lt vagy d ek ó d o lt m ik­
van az, hogy a legtöbb új ISA R IS C típ u sú - így kön n y eb b a m eg feleltetés az ISA- ro u tasítás m ezők, elő re b etö ltés m egléte vagy hiánya, kevés- vagy sokszakaszos
u tasításh alm az és a belső v ég reh ajtó m o to r között. csőv ezeték ek és m ég sok m ás. A M ic-1 egyszerű, szoftvervezérelt gép, egym ást
T anulságos, ha végső terv ezésü n k et, a M i c ^ - e t összehasonlítjuk ezzel a k ét va­ kö v ető végrehajtással, p árh u zam o sság nélkül. Ezzel e llen tétb en a M ic-4 m agas
lóságos példával. A M ic ^ - h e z leginkább a P en tiu m 4 h asonlít. M in d k e ttő n e k az szinten p á rh u zam o s m ik ro arc h itek tú ra, hétszakaszos csővezetékkel.
a felad ata, hogy egy n em R IS C IS A -u tasításh alm azt értelm ezzen . E zt m in d k ettő A teljesítm ényt sokféle m ó don növelhetjük. A g y orsítótár a legfontosabb. A di-
úgy csinálja, hogy az IS A -u tasításo k at egy m űveleti k óddal szétb o n tja m ikrom ű v e­ re k t lek ép e zésű g y orsítótár és a halm azkezelésű g yorsítótár általán o san h aszn ála­
letek re, k él fo rrásreg iszterrel és egy célreg iszterrel. M in d k ét esetb en a m ik ro m ű ­ to sa k a m em őriahivatkozások felgyorsítására. M ind a statikus, m ind a dinam ikus
v eletek et lerak ju k egy sorba, későbbi v ég reh ajtásra. A M i c ^ elg o n d o lás szigorú elágazásjövendölés fontos, ugyanúgy, m int a so rren d tő l e lté rő végrehajtás és a fel­
so rren d szerinti k iosztást, so rren d szerin ti v ég reh ajtást és so rre n d szerin ti b e fe je ­ té te le z e tt végrehajtás.
zést követel, m íg a P entium 4-nek so rren d szerinti kiosztás, so rre n d tő l e lté rő vég­ H á ro m p éld ag ép ü n k , a P entium 4, az U ltraSP A R C III és a 8051, rendelkezik
reh ajtás és so rren d szerin ti b efejezés a vezérelve. olyan m ik ro arch itek tú ráv al, am ely nem láth ató ISA assem bly p rogram ozók szá­
A M ic-4 és az U ltraS P A R C III v alójában eg y általán nem h a so n líth ató k össze, m ára. A P entium 4 ö sszetett m ódszerrel k onvertálja az IS A -utasításokat m ikro-
m ert az U ltraSP A R C Ill-n a k R IS C -u tasításai v an n ak (vagyis h áro m reg iszteres m ű v eletek k é, hogy a g y orsítótáron keresztül betáp lálja a szuperskaláris R ISC -
m ikrom űveletek), m in t a saját IS A -utasításhalm aza. E z e k et nem kell szétb o ntan i. m agba, ahol so rren d en kívüli végrehajtással, regisztcrátnevezéssel, és a könyvben
V é g reh ajth ató k úgy, ahogy v annak, m indegyik egyetlen ad atútciklussal. szerep lő szám os egyéb trü k k el kinyerje a h ardverből a sebesség utolsó c s e p p je it.
348 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE 4.9. FELA D AT O K 349

A z U ltraS PA R C III C u m élyen cső v ezeték ezett, de ezen felül viszonylag egyszerű, V álaszát n an o szek u n d u m b an ad ja m eg.
so rren d szerinti a kiosztás, so rre n d szerin ti a v ég reh ajtás és so rre n d szerinti a b e ­ 10. U gyanaz a kérdés, m int előbb, csak m ost 2,5 G H z-es M ic-2-re. E rre a szám í­
fejezés. A 8051 nagyon egyszerű, egyetlen sínjéhez m aroknyi reg iszte r és egy A L U tá sra alapozva, m ennyi ideig ta rta n a egy olyan pro g ram fu tása M ic-2-n, am e­
kapcsolódik. lyik M ic -l-e n 100 szekunduni?
11. írju n k m ik ro k ó d o t M ic-1 szám ára, am elyik a JV M P O P T W O u tasítását valósít­
ja m eg. E z az u tasítás két szót kivesz a verem tetejérő l.
12. A teljes JV M gépen vannak speciális 1 bájto s m űveleti kódok a 0 -3 helyek ve­
4.9. Feladatok rem b e tö ltésére, az általános ILOAD utasítás h aszn álata helyett. H ogyan kell
IJV M -e t m ó dosítani, hogy ezek n ek az u tasításo k n ak legjobban ha.sznát ve­
1. A 4.6. áb rán a B sín reg isztere egy 4 bites m ező b e n van kódolva, de a C sín b it­ gye?
té rk é p k é n t van feltü n tetv e. M iért? 13. A z ISHR utasítás (egész szám aritm etik ai jo b b ra lép tetése) létezik a JV M -
2. A 4.6. áb rán van egy „M agas b it”-nek cím k ézett doboz. A d ju n k m eg rá egy bcn , de nincs az IJV M -ben. A verem két felső é rté k e t használja, a két é rték et
áram k ö ri rajzot. egyetlen érték k el, az ered m én n y el helyettesíti. A verem tetejétő l a m ásodik
3. A m ik o r a JMPC m ező egy m ik ro u tasításb an en g ed ély ezett, az MBR-en és a szó a lé p te te n d ő o p eran d u s. A ta rta lm á t előjelesen jo b b ra lép tetjü k egy 0 és
NEXT_ADDRESS-en O R m ű v eletet végzünk, hogy kialakítsuk a követk ező mik- 31 k ö zö tti érték k el, attó l függően, hogy m ennyi az érté k e a verem legfelső sza­
rou tasítás cím ét. L e h e tn e k -e olyan k örülm ények, ah o l é rtelm e van annak, va 5 legkisebb h ely érték ű b itjén ek (a legfelső szó többi 27 b itjét m ellőzzük).
hogy NEXT_ADDRESS = 0x1 FF. és h asználjuk JMPC-t? A z e lő jelb itet jo b b ra annyi biten keresztül ism ételjük, am ennyi a lép tetések
4. Tegyük fel, hogy a 4.14. (a) ábrán lév ő p éld áb an a szám a. A z ISHR m űveleti kódja 122 (0x7A).
k = 5; a) Mi az az aritm etik ai m űvelet, am elyik ekvivalens a 2-vel való jo b b ra lé p te ­
utasítás kerü l az if u tasítás u tán . M i lesz az új assem bly k ó d ? Tegyük fel, hogy a téssel?
fo rd ító p ro g ra m o p tim alizáló fo rd ító p ro g ram . b) Terjesszük ki úgy a m ikrtikódot, hogy ezt az u tasítást az IJV M részén ek te ­
5. A djunk m eg k ét különbciző IJ V M -fo rd ítást a követk ező Jav a-u tasításra: kinthessük.
i = k + n + 5; 14. A z I5HL u tasítás (egész szám b alra lé p tetése) létezik a JV M -b en , de nincs az
6. A djuk m eg azt a Jav a-u tasítást, am elyik a követk ező IJV M -k ó d o t h ozza létre: IJV M -b en. A v erem két felső é rté k é t használja, a kél é rté k e t egyetlen é rté k ­
ILOADj kel, az ered m én n y el helyettesíti. A verem tetejétő l a m ásodik szó a lép te te n d ő
ILOAD n o p era n d u s. A ta rta lm á t előjelesen b a lra lép tetjü k egy 0 és 31 közötti értékkel,
ISUB attó l függően, hogy m ennyi az érté k e a verem legfelső szava 5 legkisebb hely­
BIPUSH 7 é rté k ű b itjén ek (a legfelső szó többi 27 bitjét m ellőzzük). Jo b b ró l annyi nulla
ISUB b it lép be, am ennyi a lé p tetések szám a. A z ISHL m űveleti kódja 120 (0x78).
DUP a) M i az az aritm etik ai m űvelet, am elyik ekvivalens a 2-vel való b a lra lé p te té s­
lADD sel?
ISTORE i b) Terjesszük ki úgy a m ik ro k ó d o t, hogy ezt az utasítást az IJV M részén ek te ­
7. A szövegben em lítettü k , hogy az kinthessük.
if (Z) goto Ll; else goto L2 15. A JV M IN VOK EVIRTUAL u tasításn ak tu d n ia kell, hogy hány p a ra m é te re van.
u tasítás bin árisra fo rd ításán ál L 2 -n ek a v ezérlő tár alsó 256 szavában kell le n ­ M iért?
nie. Ugyanígy nem lenne lehetséges, hogy L l legyen, m ondjuk, 0x40-től és L 2 16. V alósítsuk m eg a JV M D L O A D u tasítását M ic-2 szám ára. E n n e k van egy 1 b á j­
0xl4 0 -tő l? M agyarázza m eg válaszát. tos indexe, ezen a helyen lévő lokális v áltozót a v erem be teszi. E zu tán a követ­
8. Az M ic -l-r e készült m ikroprogram b an, az if_icmpeq3-ban az MDR-t b e m á so l­ k ező cím en lévő szót is beteszi a verem be.
juk a H-ba, é s n éh án y sorral k ésőb b kivonjuk a TOS-ból, hogy ellen ő rizzü k az 17. R ajzoljunk egy véges állap o tú g ép et a tenisz p o n to zására. A tenisz szabályai a
e g y en lő ség e t. Itt b iztosan job b egy utasítás: következők. A nyeréshez legalább négy p o n t szükséges, és legalább k ét p o n ttal
if_ cm peg3 Z = M D R -T O S;rd tö b b kell, m int az ellenfelünknek. K ezdjünk egy (0, 0) állap o ttal, am i azt m u ­
M iért nem így a d tu k m eg? tatja, hogy m ég senkinek sincs p o n tja. E zu tán adjunk hozzá egy (1, 0) állap o ­
9. M ennyi ideig ta rt egy 2,5 G H z-es M ic -l-n e k a követk ező Jav a-u tasítást v ég re­ to t, am elyik azt jelen ti, hogyy4 p o n to t k ap o tt. C ím kézzük m eg a (0, 0)-ból (1,
hajtani: 0)-b a m u ta tó élety l-v al. M ost ad ju n k hozzá egy (0, 1) állap o to t, am elyik azt
i = j + k; jelen ti, hogy B p o n to t k ap o tt, és cím kézzük m eg a (0, 0)-ból induló élt 5-vel.
4.9. FELA D AT O K 351
350 4. A M IK R O A R C H IT E K T Ú R A SZ IN T JE

28. Tegyük fel, hogy egy szám ítógép legfeljebb 20 u tasítást tölt b e előre. A zonban
Folytassuk az állap o to k és az élek h o zzáad ását, am íg m in d en leh etség es álla­
ezek közül átlagosan négy feltételes elágazás, m elyeket 90% -os valószínűséggel
p o to t hozzávettünk.
jó so lu n k m eg. M i a valószínűsége annak, hogy az elő re b etö ltés jó ú ton jár?
18 . V izsgáljuk m eg újból az előző p ro b lém át. Van olyan állap o t, am it elhag y h a­
29. Tegyük fel, hogy a 4.43. áb rán lévő szám ítógép terv ét úgy v álto ztatju k m eg,
tu n k anélkül, hogy bárm elyik já té k ered m én y e m egváltozna? H a van, m elyek
hogy 8 h elyett 16 regisztere legyen. A k k o r I6-ot úgy v álto ztatju k m eg, hogy
ekvivalensek?
haszn álja R8-at célként. M i tö rté n ik a 6. ciklustól k ezd ő d ő ciklusokban?
19. R ajzoljunk egy véges állap o tú g é p e t elágazásjövendölésre, am elyik m eg b ízh a­
3 0 . Á lta lá b a n a függőségek b ajt o k o zn ak a csővezetékes C P U -kban. Van valam i
tóbb, m int a 4.42. áb ra. C sak h á ro m egym ás u tán k ö v etk ező téves jö v en d ö lés
o ptim alizálás, am it v ég reh ajth atu n k a W AW függőségekkel kapcsolatban, és
u tá n kellene m eg v álto ztatn i a jöven d ö lést.
am i v aló ban ja v íth at a bajo k o n ? M i ez?
20. A 4.27. áb ra lép te tő regisztere m axim um 6 b ájt kapacitású. E l tudjuk készíteni az
3 1 . írju k ú jra a M ic-1 értelm ező t, de az LV m ost m utasson az első lokális v álto zó ­
IF U olcsóbb v áltozatát 5 bájtos lép te tő regiszterrel? M i a helyzet a 4 bájtossal?
ra, az ö sszekötő m u ta tó helyett.
2 1. M egvizsgálva az olcsóbb IF U -k a t az előző k é rd ésb en , m ost nézzük m eg a k ö lt­
3 2 . írju n k szim u láto rt egy egyutas d irek t leképezésű gyorsítótárra. A szim ulátor
ségesebbeket. L e h e t-e valam ik o r is olyan szem p o n t, hogy m o n d ju k 12-nél n a ­
p a ra m é te re legyen a bejegyzések szám a és a sor m é rete. K ísérletezzünk vele,
gyobb lé p te tő re g iszte rü n k legyen? M iért, vagy m ié rt n em ?
és írjuk le a tap asztalatain k at.
22. A M ic-2 szám ára készült m ik ro p ro g ram b an ifjcm peqó k ód T-re megy, am ikor
Z 1. A zonban , a T-nél lévő kód azo n o s a g o to l-n él lévővel. L e h etsé g es v olna a
g o to l-re közvetlenül m en n i? E zzel gyorsabbá te n n é n k a g ép et?
23. A M ic ^ - b e n a d e k ó d o ló egység az IJV M m űveleti k ó d o t leképezi egy
R O M indexre, a h o l a nek i m eg felelő m ik ro m ű v eletek el v a n n ak tárolva.
E gyszerűbbnek tű n ik , h a elhagynánk a d e k ó d o ló szakaszt, és az IJV M m űve­
leti k ó d o t kö zvetlenül k ü ld e n é n k a so rb a állítóhoz. A z IJV M m űveleti k ó d o t
indexként h aszn álh atju k a R O M -b a, ugyanúgy, ahogy a M ic-1 dolgozik. M iért
rossz ez az elképzelés?
24. Egy szám ító g ép n ek van egy k étszin tű gy o rsító tára. Tegyük fel, hogy a m em ó ­
riahivatkozások 8 0 % -át az első szintű g y o rsító tárb an találjuk, 15% -át a m á so ­
d ik szinten, és 5% hiányzik. A z e lérési id ő k re n d re 5 ns, 15 ns és 60 ns, ah o l a
2 szintű g y o rsító tár és a m em ó ria szám ára ab b a n a p illa n a tb a n k ezd jü k az id ő t
szám olni, am ik o r k id erü l, hogy szükségesek (p éld áu l egy 2 szintű g y o rsító tá­
re lé ré s addig n em kezd ő d ik el, am íg nincs 1 szintű gyorsító tárh ián y ). M i az á t­
lagos elérési idő?
25. A 4.5.L fejezet vég én azt m o n d tu k , hogy az írásallo k álás csak a k k o r nyerő, h a
fe lte h e tő e n tö b b szö rö s írás van u g y an ab b a a gyorsítósorba. M i a h elyzet olyan
írás esetén , am it tö b b szö rö s olvasás követ? E z n em já r n a u g y an ak k o ra n y e re ­
séggel?
26. E n n e k a könyvnek az első terv e z e té b e n a 4.39. á b ra egy h á ro m u ta s asszociatív
g y o rsító tárat m u ta to tt be négyutas helyett. A z egyik b íráló d ü h k itö ré st k ap o tt,
azt bizonygatva, hogy a h allg ató k at ez b o rz a sz tó an összezavarja, m ivel a h á ­
ro m n em k e ttő h atványa, a szám ító g ép ek p edig m in d en t b in árisa n végeznek.
M ivel az ügyfélnek m indig igaza van, az á b rá t m eg v álto ztattu k négyutas asszo­
ciatív gy o rsító tárra . Igaza volt a b íráló n ak ? F ejtse ki a válaszát.
27. Egy ötszakaszos csővezetékkel ren d elk ező szám ítógép úgy foglalkozik a felté­
teles elágazásokkal, hogy egy találat u tán leállítja a következő h áro m ciklust.
M ennyire lassítja a leállítás a végrehajtást, ha az összes u tasítás 20% -a feltételes
utasítás? T ekintsünk el m in d en m ás leállásforrástól a feltételes elágazáson kívül.
5. A Z U T A SfT A SR EN D SZ ER -A R C H ITEK TÚ R A SZ IN T JE 353

kapcsolati szintet definiálja. E z az a nyelv, am elyet m indkettőnek érten ie kell. A fo r­


5. Az utasításrendszer­ dító p ro g ram ok, az ISA-szint és a hardver közötti kapcsolatot m utatja az 5.1. ábra.
Elvileg, am ik o r egy új szám ító g ép et terveznek, a terv ező k n ek ki kell k érniük
architektúra szintje m ind a fo rd ító p ro g ram -k észítő k , m ind a h ard v erm érn ö k ö k vélem ényét, hogy kü-
lö n -külön m ilyen ISA -szintű tu lajd o n ság o k at ta rta n a k kívánatosnak. H a a fo rd ító ­
p ro g ram -k észítők olyan kívánsággal állnak elő, am elyet a h a rd v erm érn ö k ö k nem
tu d n a k á rh a ték o n y an teljesíteni, ak k o r azt nem lehet bevenni a tervbe (például
szám lázó u tasítás). H aso n ló an , ha a hard v eresek valam i rem ek új ö tlettel állnak
e lő (p éld áu l olyan m em óriával, am ely a prím szám cím ű szavak eléréséb en szu p er­
gyors), de a szoftveresek n em tu d ják kitalálni, hogyan leh et olyan k ó d o t készíteni,
am ely ezt kihasználja, az ö tle t m ár a tervezőasztalon m eghal. A z ISA sok k o n zu l­
táció és szim uláció u tán alakul ki és kerü l m egvalósításra, m iu tán teljesen o p tim a ­
lizálták a m egcélzott program ozási nyelvekre.
E b b en a fejezetb en az u ta s ítá sre n d sz er-a rc h itek tú ra (IS A ) szintjét tárgyaljuk rész­ Ez az elm élet. D e lássuk a kím életlen valóságot. V alahányszor egy új szám ítógép
letesen. Ez a szint a m ik ro arc h ite k tú ra szintje és az o p eráció s ren d sze r gépi szintje születik, az első kérdés, am elyet m in d en p o tenciális vásárló feltesz; „K om patibilis
között helyezkedik el, ahogy azt a 1.2. áb ra m u tatja. T ö rté n e tile g ez a szint fejlő­ lesz az elő d jév el?” A m ásodik kérdés: ..K épes fu ttatn i a régi o p erációs re n d sz e re ­
d ö tt ki elsőként, m in d en m ás szin tet m egelőzően. V alójában e re d etile g ez volt az m e t? ” A harm adik; „M ódosítás nélkül tu d ja fu tta tn i valam ennyi régi alkalm azá­
egyetlen szint. N em m eglepő, hogy n apjainkig ezt tek in tik a szám ító g ép ek „arch i­ so m a t? ” A terv ező k n ek sok m agy arázatra kell felkészülniük, ha csak egy k érd ésre
te k tú rá já n a k ” vagy n é h a (h ely telen ü l) „assem bly n yelvnek”. is „ n e m ” a válasz. A vásárlók ritkán h ajlan d ó k kidobni összes régi szoftverüket, és
A z ISA -szintnek k ülönleges jelen tő ség e van, am i fo n to ssá teszi a re n d sz e rte rv e ­ teljesen elölről kezdeni m in d en t.
zők szám ára: ez a szint az ö sszekötő kapocs a szoftver és a h a rd v e r kö zö tt. B ár lé ­ E z a felfogás nagy nyom ást gyakorol a tervezőkre, hogy az ISA -szint ne v áltoz­
tezh e tn e olyan h ard v er, am ely közvetlenül kép es v ég reh ajtan i C, C + + , Java vagy zo n a m od ellek között, vagy legalább visszafelé kom patibilis legyen. E zen azt é rt­
m ás m agas szintű nyelven írt p ro g ram o t, de ez n em len n e igazán jó ö tlet. Elveszne jü k , hogy az új gép m ódosítás nélkül képes v ég reh ajtan i m in d en régi p ro g ram o t.
az a hatékonysági előny, am i a fo rdításból ered , szem ben az értelm ezéses v ég reh aj­ A z azo n b an teljesen elfo g ad h ató , hogy az új gép új utasításokkal rend elk ezzen , és
tással. Továbbá, gyakorlati m egfontolásból m inden szám ító g ép n ek kép esn ek kell olyan új tu lajdonságo kkal, am elyet csak új szoftverrel leh et kihasználni. A z 5.1.
lennie nem csak egy, h an em tö b b külö n b ö ző nyelven írt pro g ram v ég re h a jtá sá ra is. á b ra kifejezéseivel azt m o n d h atju k , hogy m indaddig, am íg a tervezők biztosít­
A rendszertervezők alapvetően úgy gondolkodnak, hogy a k ü lönböző m agas szin­ ják a visszafelé k o m patibilitást, elég szabadon azt teszn ek a h ard v errel, am it csak
tű nyelven írt pro g ram o k at először le kell fordítani egy közös közbülső - ISA -szintű ak arn ak . N em kell tö rő d n iü k a h ard v errel (ak ár nem is kell ism erniük). Szabadon
- form ára, m ajd olyan h ard v ert kell építeni, am ely az ISA -szintű p ro g ram o k at köz­ á tté rh e tn e k m ik ro p o g ram o zo tt m egoldásról közvetlen v ég reh ajtásra, csővezeték­
vetlenül végre tud ja hajtani. A z ISA-szint a fo rd ító p ro g ram o k és a h ard v er közötti m ó d szert vagy szuperskaláris leh ető ség et v ezeth etn ek be, b árm i m ást, feltéve,
hogy fe n n ta rtjá k a visszafelé k o m p atib ilitást a korábbi ISA -szinttel. A cél az, hogy
b iztosítsák a regi p ro g ram o k fu tta th a tó sá g á t az új gépen. A kihívás ezu tá n az,
hogy jo b b g ép et ép ítsen ek , kielégítve a visszafele k om patibilitás követelm ényét.
A fe n tie k nem je le n tik azt, hogy az ISA -tervezés nem szám ít. A jó ISA jelen tő s
előnnyel ren d elk ezik a silánnyal szem ben, külö n ö sen a nyers szám ítási teljesít­
m én y /ár arány tek in te té b e n . A z egyébként azonos tervezésű, de k ü lönböző ISA
a k ár 25% teljesítm énynövekedést is ered m én y ezh et. Piaci nyom ás m iatt n eh ezen
le h e t (b á r nem le h e te tle n ) kidobni a régi ISA -t és újat bevezetni. E n n e k e lle n é ­
re, időről id őre új általán o s célú ISA keletkezik, és ez speciális piaci igények (p é l­
dául beág y azott ren d szerek , m u ltim édia-processzorok) e se té n gyakran előfordul.
K ö v etk ezésképpen, az ISA -ter\'ezés m eg értése fontos dolog.
M itől jó egy ISA ? K ét alap v ető tényezőn m úlik. E lőször is a jó ISA olyan u ta sí­
tá sre n d sz e rt definiál, am ely h atékonyan m egvalósítható m ai és jövőbeli te c h n o ló ­
giákkal, am i több gen eráció n átívelő árh aték o n y tervezést eredm ényez. G yenge
5.1. ábra. Az ISA-szint a fordítóprogramok és a hardver között van terv ezést n eh éz m egvalósítani, tö b b áram k ö ri elem kell a p ro cesszo r m egvalósí­
354 5. A Z U T A SfT A SR EN D SZ ER -A R C H ITEK TÚ R A SZ IN T JE 5.1. A Z ISA-SZINT Á TT EK IN T ÉSE 355

tásához, és tö b b m e m ó riá ra van szükség a fu ttatásh o z. L assab b an is fu th at, m ert hogy leh ető v é tegye a kü lö n b ö ző m egvalósítók szám ára, hogy olyan g ép ek et é p ít­
nem ism eri a m űveleteií átlap o lását, sokkal b o n y o lu ltab b terv ezést ig ényelhet azo ­ senek, am elyek ugyanazt a szoftvert fu tta tjá k ugyanolyan ered m én y t produkálva.
nos teljesítm ény elérése. Az a tervezés, am ely egy bizonyos tech n o ló g ia sajáto ssá­ A SPARC e setéb en az elv az, hogy leh ető v é tegyék kü lö n b ö ző p rocesszorgyár­
gaira épül, szalm aláng lehet, egy g en erá c ió h aték o n y m egvalósítására jó csupán, tók szám ára, hogy olyan SPA RC p ro cesszo ro k at gyártsanak, am elyek fu n k cio n á­
és felü lm ú lh ató e lő re lá tó b b ISA-val. lisan ekvivalensek, csak teljesítm ényben és árb an különbözők. Ez az elv akkor k i­
M ásodszor, a jó ISA világos célt biztosít a lefo rd íto tt kód tek in tetéb en . A szabá­ v itelezh ető , ha a gyártók tudják, m it kell csinálnia a SPARC processzornak (ISA-
lyosság és a választások teljessége fontos jellem zők, m elyek nem m inden ISA tulaj­ szinten). E z é rt a definiáló d o k u m en tu m m eg m ondja, hogy m i a raem ó riam o d ell.
donságai. E zek a tulajdonságok a ford ító p ro g ram o k szám ára p ro b lém ák okozói le­ m ilyen reg iszterek vannak, m it csinálnak az u tasításo k és így tovább, de nem b e ­
hetnek, ha k orláto zo tt lehetőségek közül kell a legjobbat kiválasztani, különösen, ha szél arró l, hogy m ilyen a m ik ro a rc h ite k tű ra szintje.
látszólag nyilvánvaló lehető ség ek et m egtilt az ISA. R öviden, mivel az ISA a kapocs A z ilyen definiáló d o k u m en tu m ta rtalm az norm atív fejezetek et, am elyek köve­
a h ardver és a szoftver között, boldoggá kell ten n ie a hardvertervezó'ket (könnyű h a ­ telm én y ek et állítanak fel, v alam int inform atív fejezetek et, am elyek az olvasót h i­
tékonyan m egvalósítani) és a szoftverkészítőket (könnyen készíthető jó kód) is. v a to tta k segíteni, de n em része a form ális definíciónak. A no rm atív fejezetekben
á lla n d ó an olyan kifejezéseket találu n k , m in t kell, n em lehet, illetve lehetőleg, a m e ­
lyek az a rc h ite k tú rá ra v o natkozó követelm ényt, tiltást, illetve jav aslato t fejeznek
ki. P éld a a k övetkező m o n d at, am ely azt fejezi ki, hogy h a a p ro g ram olyan k ó d o t
5.1. Az ISA-színt áttekintése h a jta n a végre, am ely nincs definiálva, ak k o r az csap d át ered m én y ezzen ahelyett,
hogy figyelm en kívül hagyná a C PU ;
K ezdjük az ISA -szint tan u lm án y o zását azzal a k érd éssel, hogy m i is az ISA. Ez
egyszerű k é rd ésn e k tű n h e t, azo n b an tö b b n eh ézség et ta rto g a t, m in t első re g o n ­ Fenntartott m űveleti kó d végrehajtása csapdát eredményezzen.
dolnánk. A k övetk ező szakaszban felv etü n k néhány tényezőt. A ztán a m em ória-
m odellt, a reg iszte rek et és az u tasítá so k a t tanulm ányozzuk. H a altern a tív m egoldásként nyitva hagyná az e setet, ak k o r az alábbi m o n d at k e­
rü ln e a d o k u m en tu m b a:

5.1.1. Az ISA-szint tulajdonságai Fenntartott m űveleti kó d hatása a m egvalósítástól függ.

A lap v ető e n az ISA -szint azt jelen ti, am i a gépi szintű p ro g ram o zó szám ára látszik E z azt je len ti, hogy a fo rd ító p ro g ram készítője n em fe ltételezh et sem m ilyen e re d ­
a gépből. M ivel (é p elm éjű ) e m b e r n em so k at p ro g ram o z m á r gépi szinten, m o n d ­ m ényt, de m eg ad ja a leh ető ség et, hogy kü lö n b ö ző gyártók k ü lö n b ö ző k ép p e n való­
ju k azt, hogy am i a fo rd ító p ro g ra m o k k im en ete (eltek in tv e az o p e rá c ió sre n d sz e r­ sítsák m eg az utasítást. A legtöbb architektúraspecifikációt ellátn ak olyan te sz t­
hívásoktól és a szim bolikus assem blytől). ISA -szintű k ó d k észítése céljából a fo r­ k észlettel, am ely ellenőrzi, hogy az a d o tt m egvalósítás valóban teljesíti-e a specifi­
d ító p ro g ram író ján ak ism ernie kell a m em ó riam o d ellt, hogy m ilyen reg iszte rek káció k ö vetelm ényeit.
vannak , m ilyen a d a to k a t és u tasítá so k a t h aszn álh at és így tovább. M in d ezen in fo r­ V ilágos, hogy a V9 SPA RC m ié rt ren d elk ezik az ISA -szintet dcliniáló d o k u m e n ­
m ációk összessége alk o tja az ISA -szintet. tu m m al: m e rt m inden V9 SPA RC processzor ugyanazt a szoftvert fogja fu ttatn i.
E definíció szerin t m in d en olyan k érd és, am ely a rra v onatkozik, hogy a mik- A P en tiu m 4 ISA -szintjének nem létezik definiáló d o k u m en tu m a, m ert az Intel
ro a rc h ite k tú ra m ik ro p ro g ram o zo tt-e , csővezetékes-e, szu p ersk aláris-e stb., nem n em ak arja, hogy m ás gyártók is k ép esek legyenek P entium 4 processzort gy árta­
része az ISA -szintnek, m ert a fo rd ító p ro g ra m készítője szám ára nem láth ató . ni. T u lajd o n keppen az Intel bírósághoz fo rd u lt, hogy m egakadályozza, hogy m ás
Tekintsünk p éld áu l egy szup ersk aláris tervezésű a rc h ite k tú rát, am ely k ép es v ég re­ gyártók k ió n t állítsanak elő, b ár a p e rt elvesztette.
hajtani két egym ás u tán i u tasítást egyetlen ciklusban, ha az egyik egész, a m ásik A z ISA -szint m ásik fo n to s tulajdonsága, hogy a legtöbb gép legalább k é t m ó d ­
p edig leb eg ő p o n to s utasítás. így ha a fo rd ító váltakozva adja a kétféle utasítást, ban m ű k ö d h et. A k ernelm ód az o perációs ren d szer fu tta tá sá ra szánt m ód, am ikor
hatékonyabb k ó d o t készít, m int ha n em ezt ten n é. Tehát a szu p ersk aláris v ég re­ is m in d en utasítás v ég reh ajth ató . A felh aszn áló i m ód a felhasználói p ro g ram o k
hajtás részletei lá th a tó k az ISA -szinten, így a szintek elválasztása nem is olyan egy­ fu tta tá sá t célozza, és nem teszi lehetővé bizonyos érzékeny u tasításo k v ég re h a jtá ­
szerű, m in t elsőre látszik. sát (m in t am elyek közvetlenül m an ip u lálják a g y orsítótárat). E bben a fejezetb en
N éh án y arc h ite k tú ra ISA -szintjét form ális d o k u m e n tu m definiálja, am elyet első so rb an a felhasználói m ó d u tasításait és tu lajdonságait vizsgáljuk.
gyakran ipari ko n zo rciu m o k készítenek. M ások esetén ilyen d o k u m en tu m nem
létezik. P éld áu l a V 9 SPARC" (SPA RC 9 verzió) ren d elk ezik hivatalos d o k u m e n tá ­
cióval (W eaver és G e rm o n d , 1994). A z ilyen definiáló d o k u m e n tu m n a k az a célja.
356 5. A Z u t a s It A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e
5.1. A Z ISA-SZINT Á TT EKIN T ÉSE 357

5.1.2. Memóríamodellek ö rö m m el m eg szab ad u ln án ak ettő l, és egyszerűen m egkövetelnék m in d en p ro g ­


ram tó l, hogy csak szó h atárú m em ó riah iv atk o zást végezzen. A z a gond, hogy vala­
M in d en szám ítógép m em ó riája cellák ra van osztva, és a cellák cím ei összefüggő
hányszor a m érn ö k ö k azt m ondják, hogy „Ki tö rő d ik azzal, ha ósdi 8088 p ro g ram
ta rto m án y t k épezn ek . A leggyakoribb cellam é re t n a p jain k b an 8 bit, de ré g e b ­
h elytelen m em óriahivatko zást végez?”, a m ark etin g es szak em b erek szűkszavú vá­
b en alkalm aztak 1-60 b it c e llam ére te t is (lásd 2.10. áb ra). Egy 8 b ites cella neve
lasza: „A v á sárló in k .”
bájt. A 8 bites c e lla m é re t ok a az, hogy egy A S C II k a ra k te r 7 bit, így a p a ritá sb it­
A legtöbb gép egyetlen lineáris cím tarto m án y t alkalm az, am ely 0-tól valam iféle
tel együtt é p p en b e lefé r egy b ájtb a. H a az U N IC O D E k ó d o lás á ltalán o ssá válik
m axim um ig (gyakran 2^^ vagy 2'’'* b ájt) terjed. A zo n b an néhány gép külön c ím ta r­
a jö vőben, ak k o r a szám ító g ép ek 16 b ites cellát alk alm azh atn ak . V égül is 2'* m ég
tom ánnyal rend elk ezik az ad ato k , és külön az u tasításo k szám ára. így a 8-as cím ­
szebb szám , m int a 2 \ mivel 4 k e ttő h atványa, a 3 p ed ig n em .
ről tö rté n ő u tasítás kiolvasása m ás cím tarto m án y ra vonatkozik, m int a 8-as cím ről
A b á jto k általá b an 4 b ájto s (32 b it) vagy 8 b ájto s (64 b it) c so p o rto k b a, szavakba
tö rté n ő a d a t kiolvasása. E z a sém a bonyolultabb, m int am ikor csak egyetlen cím ­
ren d e z e tte k , leh ető v é téve, hogy az u tasításo k teljes szavakon vég ezzen ek m ű v ele­
tarto m án y van, azo n b an k ét előnye is van. E lőször, lehetséges 2^^ m é re tű pro g ram
tek et. Sok arc h ite k tú ra m egköveteli, hogy a szavak te rm é sz e te s h a tá ro k h o z legye­
és 2^^ m é re tű a d a t csak 32 bites cím zést használva. M ásodszor, mivel m in d en írás
n ek igazítva, p éld áu l hogy a 4 b ájto s szavak cím e 0, 4, 8 stb. legyen. H aso n ló a n a
a u to m a tik u san az ad atc ím tarto m án y ra vonatkozik, n em leh et a p ro g ra m o t ily m ó ­
8 bájto s szavak cím e 0, 8, 16 stb. legyen, te h á t n em le h e t p é ld á u l 4 vagy 6. A 8 b á j­
d o n felülírni, am i egy program ozási h ib afo rrás kiküszöbölését jelenti.
tos szavak igazítását m u ta tja az 5.2. ábra.
M egjegyzendő, hogy a külön utasítás- és k ü lön ad atc ím tarto m án y nem eg y en ér­
té k ű az 1. szintű gyorsítótárral. A z előbbi esetb en a cím tarto m án y duplázódik, és
Cím Cím
m in d en olvasás m ást eredm ényez, attó l függően, hogy u tasításró l vagy a d a tró l van
8 Bájt 8 Bájt
szó. G y o rsító tár e setén csak egy cím tarto m án y van, am ely a n n ak csupán k ü lö n b ö ­
24 24 ző részeit tartalm azza.
16 19 i 18 I 17 i 16 16 M ég egy asp ek tu sa van az ISA -szintű m em ó riam o d elln ek - ez a m em ó ria-sze­
15 1 14 13 i 12 11 i 10 i 9 I 8 15 i 14 1 13 ! 12 m an tik a. Tfermészetes elvárás, hogy egy LOAD u tasítás, am elyet ugyanazon cím re
0 v o n atk o zó STORE u tasítás u tá n h a jtu n k végre, az é p p en eltá ro lt a d a to t e re d m é ­
8 bájtos szó Nem igazított 8 bájtos
nyezze. A zo n b an , m in t azt a 4. fejezetb en láttuk, a m ik ro u tasításo k so rren d je á t­
a 8 határra igazítva szó a 12. címtől re n d e z ő d h e t. T ehát valós a veszély, hogy a m em ó ria n em az elvárt m ó d o n viselke­
(a) (b) dik. A p ro b lém a m ég rosszabbá v álhat m u ltip ro cesszo r esetén , am ik o r a k ü lö n ­
b ö ző C P U -k (esetleg á tre n d e z e tt) olvasási so ro zato t b o csátan ak ki o szto tt m em ó ­
riá ra v o n atk ozóan.
5.2. ábra. ő bájtos szó kis endián memóriában, (a) Igazított, (b) Nem igazított. Néhány gép
A terv ező k a p ro b lém a külö n b ö ző m egoldásai közül választhatnak. A z egyik
megköveteli, hogy a szavak igazítottak legyenek
szélsőséges m egoldás, h a m in d en m em ó riah iv atk o zást so rb a ren d ezn ek , így m in d ­
egyik elő b b befejeződik, m int egy m ásik elkezdődne. E z a stratég ia sérti a h a té ­
A z igazítást gyakran a z é rt követelik m eg, m e rt a m e m ó ria így h aték o n y a b b a n
konyságot, de a legegyszerűbb m em ó riaszem an tik át adja (az u tasításo k szigorúan
m ű k ö d h et. A P en tiu m 4 p éld áu l, am ely 8 b á jto t olvas ki a m em ó riáb ó l, 36 bites
a p ro g ra m b a n m eg ad o tt so rre n d b e n h a jtó d n a k végre).
fizikai cím et használ, de csak 33 b ites cím e van, ahogy az a 3.44. áb rá n láth ató .
A m ásik szélsőséges m egoldás eseté b e n sem m i garan cia nincs á ltalán o san biz­
T ehát a P en tiu m 4 n em is tu d n a n em ig azíto tt m em ó riah iv atk o zást végezni, mivel
tosítva. A m em ó riah iv atk o záso k so rre n d jé n e k k ik én y szerítésére SYNC u tasítást
a cím alsó 3 bitjét n em le h e t ténylegesen m eg ad n i. E zek é rté k e m indig 0, így m in ­
kell a p ro g ra m n a k v ég reh ajtan ia, am ely blokkolja m in d en m em ó riam ű v elet ki­
d en h iv atk o zo tt cím 8 tö b b szö rö se le h e t csak.
b o c sá tá sá t m indaddig, am íg az összes eddig k ia d o tt m em ó riam ű v elet be nem
A z igazítás kényszere azo n b an n éh a p ro b lé m á k a t okoz. A P entium 4 eseté n az
feje z ő d ö tt. E z a m egoldás n ag y m érték b en k o rláto zza a fo rd ító p ro g ram -író k at,
IS A -program ok b árm ely cím en k ezd ő d ő szóra hivatk o zh atn ak , am i a 8088-ra ve­
m e rt rész leteib en kell ism ern iü k a m ik o a rc h ite k tú ra m ű k ö d ését, azo n b an a leg­
ze th e tő vissza, am elynek adatsín je 1 bájto s volt (és így n em volt 8 bájtos igazítási
nagyobb szabadságot ad ja a h a rd v e r terv ező in ek a m em ó ria m ű k ö d ésén ek o p ti­
kényszer). H a a P en tiu m 4 a 7. cím ről olvas egy 4 bájto s szót, ak k o r a h ard v ern ek
m alizálására.
először egy m em óriahivatkozással be kell olvasnia a 0 -7 . cím ű b ájto k at, m ajd egy
K özbülső m egoldás is leh et a m em ó riam o d ellre, am ik o r a h a rd v e r a u to m a ti­
m ásik hivatkozással a 8-15. cím űeket. E zu tá n a C P U kiveszi a beolv aso tt 16 bájtból
k u san blok ko l bizonyos m em ó riah iv atk o záso k at (tö b b ek k ö zö tt a R AW és W A R
a kívánt 4 b ájto t, és beilleszti a m egfelelő so rren d b e, hogy 4 bájto s szót kapjon.
fü ggőséget ta rtalm azó k at), de n em m in d et. U gyan a m ik ro ach itek tú ra ezen fu r­
A tetszőleges cím ről v aló olv ash ató ság k ö vetelm énye extra á ram k ö rt igényel a
csaság ain ak ISA -szintű következm ényei b o sszantók (legalábbis a fo rd ító p ro g ra m ­
pro cesszorban, te h á t a p ro cesszo r nagyobb és d rág áb b lesz. A te rv ező m érn ö k ö k
k észítő k és assem bly p ro g ram o zó k szám ára), m égis leginkább ez a tren d . E n n e k
358 5. A Z U T A SfT A SR EN D SZ ER -A R C H ITEK TÚ R A SZ IN T JE 5.1. A Z ISA-SZINT Á TT EKIN T ÉSE 359

az o k a az olyan m eg v aló sításo k b an rejlik, m int a m ik ro u ta sítá so k so rre n d jé n e k tér. E z a regiszter jó néhány olyan kiegészítő bitet tartalm az, am elyet a C P U használ.
felcserélése, cső v ezeték alkalm azása, tö b b szin tű g y o rsító tár stb. E b b e n a fe je z et­ A legfontosabb bitek a feltételkódok. E zeket a biteket m inden A LU -ciklus beállítja,
b en k ésőbb tö b b ilyen term é sz e te lle n es h a tá st fo gunk látni. és az aktuális utasítás eredm ényétől függenek. A tipikus feltételkódok az alábbiak:

N - beállítva, ha az ered m én y N egatív volt


5.1.3. Regiszterek Z - beállítva, ha az ered m én y Z éru s volt
V - b eállítva, h a az ered m én y tú lcso rd u lást (oV erfiow ) ok o zo tt
M in d en szám ítógép ren d elk ezik ISA -szinten lá th a tó reg iszterek k el. E zek célja a C- beállítva, h a az ered m én y a bal szélső b it átvitelét okozta (C arry)
p ro g ram v ég reh a jtá sá n a k v ezérlése, k ö zbülső e red m én y tá ro lá sa és m ég egyebek. A - beállítva, ha átvitel tö rté n t a 3. b itrő l (A uxiliary carry)
Á ltaláb an azok a reg iszterek , am elyek a m ik ro a rc h ite k tú ra szintjén lá th a tó k , m int P- beállítva, ha az ered m én y p aritása p á ro s (Parity)
a TOS és a MAR a 4.1. áb rán , n em lá th a tó k ISA -szinten. A zo n b a n n éhány, m in t p é l­
dául az u tasításszám láló vagy a v erem m u ta tó , m in d k é t szin ten lá th a tó . M ásrészt, A fe lté telk ó d o k azért fontosak, m ert az összehasonlító és elágazó u tasításo k eze­
m in d en ISA -szinten lá th a tó reg iszter lá th a tó a m ik ro a rc h ite k tú ra szintjén is, h i­ k e t h aszn álják (p éld áu l fe ltételes u g ró utasítás). P éld áu l a CMP u tasítás tipikusan
szen ezen a szinten van m egvalósítva. kivonást végez k ét o p e ra n d u s kö zö tt, m ajd b eállítja a felté te lk ó d o t a különbség
A z IS A -regiszterek du rv án k ét k a teg ó riá b a so ro lh ató k : speciális célú és á lta lá ­ alap ján . H a az o p e ran d u so k egyenlők, ak k o r a k ülönbség 0, és a PSW Z b itjét b e á l­
nos célú regiszterek . A speciális célú reg iszte rek közé ta rto z n a k az u tasításszám ­ lítja. A z ezt követő BEQ (B ran ch E q u al/elág azás egyenlő e setén ) utasítás a Z b itet
láló, a v erem m u ta tó és a speciális funkciójú reg iszterek . E zzel e lle n té tb e n az ál­ ellenőrzi, és ugrás következik, ha beállítva találja.
talán o s célú reg iszterek a zért van n ak , hogy fo n to s lokális v álto zó k at és időleges A PSW nem csak a fe lté te lk ó d o k a t tartalm azza, de a tényleges ta rta lo m gépről
e red m én y ek et táro ljan ak . E zek fő célja az, hogy a gyakran h aszn ált a d a to k gyors g ép re eltérő . T ipikus egyéb m ezők közé ta rto zik a kern el/felh aszn áló i m ó d je lz é ­
e lé ré sé t b iztosítsák (kiküszöbölve a m em ó riah iv atk o zást). A R IS C gépek, a gyors se, a nyo m k ö vető bit, C P U p rio ritási szint, m egszakítást engedélyező állapotjelző.
C P U és a (viszonylag) lassú m em ó ria m iatt általá b a n 32 á ltalán o s célú reg iszte rrel A PSW gyakran o lvasható felhasználói m ó d b an is, de néh án y b it csak k e rn e lm ó d ­
ren d elk ezn ek , és az a ten d e n c ia az új p ro cesszo ro k terv ezésén él, hogy m ég en n é l b an m ó d o síth a tó (tö b b ek k ö z ö tt a kernel/felhasználói m ó d bitje).
is tö b b regiszter legyen.
N éh án y gép e se té n az á ltalán o s célú reg iszte rek teljesen szim m etrik u sak és fel-
cscrclhetők. H a a re g iszte rek ekvivalensek, a fo rd ító p ro g ra m a k á r az Rí, a k á r az
5.1.4. Utasítások
R25 reg iszte rt v álaszth atja k ö zbülső e re d m é n y tá ro lá sá ra . A reg iszte r választása
n em szám ít. A z ISA -szint legfontosabb tu lajd o n ság a a gépi utasításkészlet. E z h atáro zza m eg,
A zo n b an m ás g ép ek eseté n néh án y általán o s célú reg iszter m égis kicsit speciális. hogy a g ép m it csinálhat. M indig van LOAD és STORE u tasítás (egy vagy több fo rm á­
P élda erre a P en tiu m 4, ah o l az EDX n evű regiszter, am ely általán o s célra is h aszn ál­ b a n ) az ad a to k n a k a m em ó ria és a reg iszterek k özötti m ozg atására, cs van MOVE
h ató , de szorzás e setén a szorzat felét, osztás esetén az o sztan d ó felét tartalm azza. u tasítás az a d ato k reg iszterek kö zö tti m ásolására. M indig v an n ak aritm etik ai u ta ­
M ég h a az általán o s célú reg iszterek teljesen felcse ré lh e tő k is, az o p eráció s sítások, csakúgy m int logikai utasításo k , ad ato k összeh aso n lítására és elágazásra
ren d szerek és fo rd ító p ro g ra m o k rö g zített konvenció szerin t haszn álják ezeket. szolgáló u tasítások. M ár lá ttu n k n éhány IS A -utasítást (lásd 4. I I . áb ra), és eb b en a
P éld áu l a d o tt re g iszterek m indig a h ívott eljárás p a ra m é te re it táro lják . így ha a fe jezetb en m ég tö b b e t fogunk tanulm ányozni.
fo rd ító az Rl reg iszte rb en táro l lokális válto zó t, m ajd hív egy olyan könyvtári eljá­
rást, am ely azt feltételezi, hogy az Rí szabad, a k k o r az eljáráshívás u tá n az Rí sze­
m e te t tartalm az h at. H a van ren d sz e rsz in ten elfo g a d o tt re g iszte rh aszn álati k o n ­
5.1.5. A Pentium 4 ISA-szintjének áttekintése
venció, akkor azt m in d a fo rd ító p ro g ra m o k n a k , m ind az assem bly p ro g ra m o zó k ­
n ak célszerű b eta rta n iu k . E b b en a fejezetb en h áro m nagyon kü lö n b ö ző u ta sítá sre n d sz e r-a rc h ite k tú rá t vizs­
ISA -szinten a felhasználói p ro g ra m o k által lá th ató reg iszte rek m ellett m indig gálunk, ezek: In tel IA -3 2 , am elyet a P entium 4 processzor, a SPARC V9, am elyet
van szép szám ban olyan speciális célú regiszter, am ely csak k e rn e lm ó d b a n hasz­ az U ltraS P A R C pro cesszo r valósít m eg, és a 8051 processzor. N em az a szán d é­
n álh ató . E zek a reg iszterek v ezérlik a k ü lö n b ö ző g y o rsító tárak at, m em ó riát, B /K kunk, hogy ezek k im erítő leírásá t adjuk, h an em az, hogy b em u tassu k az u ta sítá s­
eszközöket és a gép m ás h a rd v ertu lajd o n ság ait. E zek et csak az o p eráció s re n d sz er re n d s z e r-a rc h itek tú ra fo n to s aspektusait, és hogy ezek m ilyen m é rté k b e n k ü lö n ­
használja, így a fo rd ító p ro g ra m o k n a k és felh aszn áló k n ak n em kell tu d n iu k róluk. bö zn ek egym ástól. K ezdjük a P entium 4-gyel.
Van egy vezérlőregiszter, am ely a kernel/felhasználói m ód keveréke, ez a jelzők re­ A P entium 4 processzor több generáción keresztül fejlődött ki. Szárm azása vissza­
gisztere (flags register) vagy PSW (Program Status Word, programállapotszó) regisz- vezeth ető az egyik legelsőként ép ített m ikroprocesszorra, m int azt az 1. fejezetben
360 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.1. A Z ISA-SZINT Á TT EKIN T ÉSE 361

m ár m egism ertük. A z alapvető ISA teljesen tám ogatja a 8086 és a 8088 processzo­ BIts -----------------16------------------Hh->-------8 ------- I-H.-------8 ------- >-
rokra írt prog ram o k v égrehajtását (am elyek ISA-szintje azonos volt), sőt m ég a 70-es
évek népszerű 8 bites processzorénak, a 8080-nak a m aradványai is m egtalálhatók. EAX
A 8080 tervezését viszont kom patibilitási kényszer m iatt nagym értékben befolyásol­ ^ BH bT— EBX
ta a korábbi 8008-es, am elynek az alapja a 4004-es volt, az a 4 bites processzor, am e ­
CH CL ‘ ECX
lyet m ég akkoriban használtak, am ikor dinoszauruszok n ép esítették be a Földet.
S zoftverszem pontból a 8086 és a 8088 16 bites gép ek vo ltak (b á r a 8088-nak PH '^1^ DL ‘ EDX
8 b ites ad atsínje volt). E zek le szárm azo ttja a 80286, am ely szintén 16 bites gép.
N agy előnye a nagyobb m e m ó ria-cím tarto m án y volt, b á r kevés p ro g ra m h aszn álta
ESI
ki, mivel a m em ó ria 16 384 d a ra b 64 KB m é re tű szegm ensből állt, a leh etség es 2 ’"
m é re tű lineáris m em ó ria helyett. EDI
A 80386 volt az In te l család első 32 b ites pro cesszo ra. A z összes további le­
EBP
szárm azo tt (80486, P en tiu m , P en tiu m Pro, P en tiu m II, P en tiu m III, P en tiu m 4,
C elero n , X eon, P en tiu m M , C e n trin o stb.) a rc h ite k tú rá ja a lap v e tő en m eg egyezett ESP
a 80386-os, úgynevezett IA -32 arch itek tú ráv al. E n n e k tan u lm án y o zására k o n c e n t­
rálu n k a következő k b en . A z a rc h ite k tú ra szem p o n tjáb ó l az egyetlen nagyobb vál­
CS
to zást a P en tiu m későbbi verzió ib an b ev e ze te tt M M X , SSE és SSE2 u tasítá so k je ­
le n te tté k a 80386-hoz képest. SS
A Pentium 4-n ek h áro m m ű k ö d ési m ó d ja van, k e ttő b e n ezek közül a gép úgy DS
viselkedik, m in th a 8088-as lenne. Valós m ó d b an m in d en olyan tu lajd o n ság ki van
kapcsolva, am elyet a 8088 u tá n v eze tte k be, a gép úgy m űködik, m in t egy egyszerű ES
8088-as. H a a p ro g ra m valam i szabály talan t csinál, a gép egyszerűen összeom lik. FS
E m b eri h a so n lattal ez annyit tesz, m in th a az e m b e rt visszam inősítenék csim p án z­
GS
zá (az agy nagy része eltű n ik , nincs beszéd, jó rész t b a n á n t eszik stb.).
Egy lépés elő re a virtuális 8086 mód, am ely leh ető v é teszi régi 8088-as p ro g ra ­
m o k n ak v éd ett m ó d o n tö rté n ő fu tta tá sá t. E b b e n a m ó d b a n valódi o p eráció s re n d ­ ElP
szer v ezérlete a la tt m ű k ö d ik a teljes gép. A 8088-as p ro g ra m fu tta tá sa úgy tö r té ­
nik, hogy az o p eráció s re n d sz e r speciális izolált k ö rn y ezetet ép ít fel, am ely úgy vi­
selkedik, m int a 8088-as, és eb b e n fu tta tja a p ro g ra m o t. A lényeges kivétel, hogy a EFLAGS
p ro g ram összeom lásak o r érte síti az o p eráció s re n d sz ert ah ely ett, hogy a gép m aga
összeom lana. A m ik o r a W indow s-felhasználó M S -D O S a b lak o t nyit, ak k o r az a b ­ 5.3. ábra. A Pentium 4 fő regiszterei
b an in d íto tt p ro g ra m virtuális 8086 m ó d b an fut, m egvédve m ag át a W indow st az
M S -D O S p ro g ram re n d e lle n e s viselkedésétől. re n d sz e r foglalja el. A cím tarto m án y b an m in d en b ájtn ak saját cím e van, a szavak
V égül a h arm a d ik m ó d a védett mód, am elyben a P en tiu m 4 valódi P en tiu m 4- 32 bitesek . A szavak tá ro lása kis e n d ián k ó d b an tö rté n ik (a szó legalacsonyabb
k én t viselkedik, és n em úgy, m in t egy e rő sen k ite rje szte tt 8088. N égy privilegizált h ely érték ű b ájtján ak legkisebb a cím e).
szint van, am ely ek et a PSW b itjei v ezéreln ek . A 0-s szint m ás g ép ek k e rn e lm ó d já ­ A P en tiu m 4 reg isztereit az 5.3. á b ra m u tatja. A z első négy, az EAX, az EBX, az ECX
n a k felel m eg, am ik o r is a gép k o rláto zás n élküli e lérése b izto síto tt. E zt a szintet és az EDX többé-kevésbé általános célú regiszter, b á r m indegyiknek van sajáto ssá­
használja az o p eráció s ren d szer. A 3-as szint a felhasználói p ro g ram o k é. E k k o r b i­ ga. A z EAX a fő aritm etik ai regiszter, az EBX jól h aszn álh ató m u ta tó (m em óriacím )
zonyos kritikus u tasítá so k és reg iszte rek elérése b lokkolt, hogy m egvédje a g é p e t a tá ro lá sá ra , az ECX-nek pedig a ciklusszervezésben van szerepe. A z EDX a szorzás és
h u n cu t prog ram o zó k tó l. A z 1-es és 2-es szin tet ritk án használják. o sztás u tasításo k n ál kell, am ikor is az EAX-szel együtt tartalm azzák a 64 bites szo r­
A P entium 4 h ata lm a s cím tarto m án n y al ren d elk ezik , a m e m ó ria 16384 d a ra b z ato t, illetve o sztan d ó t. A felsorolt regiszterek m indegyikének első 16 bitje egy
szegm ensre van osztva, a cím ek m indegyikben 0-tól 1-ig te rje d n e k . A leg­ 16 bites, első 8 bitje pedig egy 8 b ites regisztert alkot. E zek lehetővé teszik m űve­
tö b b o p eráció s re n d sz er (b eleértv e a U N IX -o t és m in d en W indow s-változatot) letek egyszerű elvégzését 8 és 16 bites ad ato k o n . A 8088 és 80286 csak 8, illetve
azonban csak egy szegm enst tám o g at, így a legtöbb felhasználói p ro g ra m csak egy 16 bites reg isztert ta rtalm azo tt. A 32 b ites reg iszte rek et a 80386-tal v ezették be, E
nagyságú lin eáris c ím tarto m án y t lát, am elynek egy részét m aga az op eráció s betű v el jelölve őket, am i E x ten d ed -et jelen t.
362 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5,1. A Z ISA-SZINT Á TT EKIN T ÉSE 363

A k ö v e tk e z ő h árom szintén v alam elyest általán os célú regiszter, d e több k ü ­ Regiszter Alternatív név Funkció
lö n leg e sség g e l. A z ESi-t és EDI-t m em óriáb a m u la tó m u tatók tárolására szánták, RO GO Hardveres 0-t tartalmaz, minden tárolás eredménytelen.
k ü lö n ö se n a hardveres karakterlánc m ű v e lete k e se té r e , am ikor is az ESI a forrás R1-R7 G1-G7 Globális változók
karakterláncra, az EDI p e d ig a c é l karakterláncra m utat. A z EBP is m u tatóregiszter, R8-R13 00-05 A hivott eljárás paraméterei
tipikusan az aktu ális v erem k eret cím é t tartalm azza, m int az IJV M e s e té n az LV re­ R14 SP Veremmutató
giszter. H a egy regiszter (m in t az EBP) a lok ális v e rem k eret cím é t tartalm azza, ak­ R15 07 Ideiglenes regiszter
kor azt m ondjuk, hogy keretm utató. V é g ü l az ESP a verem m u tató. R16-R23 L0-L7 Az aktuális eljárás lokális változói
A reg iszterek követk ező c so p o rtja CS-től GS-ig bizonyos é rte le m b e n e le k tro n i­ R24-R29 10-15 A bejövő paraméterek
kus őskövülctek, am elyek abból az időből m a ra d ta k fenn, am ik o r a 8088 e se tén a R30 FP Az aktuális veremkeret-mutató
2^" m éretű m em ó ria 16 b ites cím zéssel tö rté n ő e lé résé re használták. E lég m eg je­ R31 17 Az aktuális eljárás visszatérési címe
gyezni, hogy a P en tiu m 4-nél ezek b izto san elhag y h ató k , ha a gép egyetlen 32 b i­
tes lineáris cím tarto m án y t használ. A k övetkező az ElP, am ely az u tasításszám láló 5.4. ábra. A z UltraSPARC III általános regiszterei
(E x ten d ed Instru ctio n P o in ter, k ite rje szte tt u ta sítá sm u ta tó ). V égül az EFLAGS re ­
giszter láth ató , am ely a PSW. te re k jelei: RO,..., R31, b ár bizonyos körny ezetb en m ás elnevezések is előfordulnak.
A z a ltern atív nevek és funkciók az 5.4. áb rán láthatók.
M in d en á ltalán o s regiszter 64 bites. A z azonosan 0 ta rta lm ú RO kivételével a r e ­
5.1.6. Az UltraSPARC III ISA-szIntjének áttekintése g isztere k et sokféle író és olvasó utasítással leh et átírn i, illetve kiolvasni. Az 5.4.
á b rá n lá th a tó reg iszterh aszn álat részben konvención alapszik, részben azon, a h o ­
A SPARC a rc h ite k tiírá t elő szö r a S un M icrosystcm v ezette be 1987-ben. E z volt gyan a h a rd v er kezeli őket. Á ltaláb an nem bölcs dolog eltérn i a konvencióktól,
az egyik első k e resk ed elm i fo rg alo m b a k e rü lt R IS C cím k ét viselő arc h ite k tú ra . kivéve, ha valaki fek ete öves SPA RC -guru, és k étség et k izáró an tudja, hogy m it
N agyrészt a B erkeley-ben az 1980-as évek b en fo ly ta to tt k u ta tá so k ered m é n y e ire csinál. A fo rd ító p ro g ram és a p ro g ram o zó felelőssége, hogy a reg iszterek et m egfe­
é p ü lt (P atterso n , 1985; P atterso n és S équin, 1982). E re d e tile g a SPA RC 32 bites lelő en használja. P éld áu l b etö lth e tü n k általán o s reg iszterek b e leb eg ő p o n to s szá­
a rc h ite k tú ra volt, de az U ltraS P A R C III m á r 64 bites, am i a 9-es v erzió ra ép ü l, és m o k at, m ajd egészként ö sszead h atju k őket, az ered m én y é rtelm etlen tlolog lesz,
ezt fogjuk b e m u ta tn i eb b en a fejezetb en . A könyv tö b b i részével összh an g b an k í­ d e a C P U szívélyesen elvégzi nekünk.
v ánunk lenni, e z é rt az U ltraS P A R C Ill-r a h ivatkozunk eb b e n a fejezetb en , de az A globális változók olyan konstansok, változók és m u tató k , am elyeket m inden
ISA -szintet tekintve v alam ennyi U ltraS P A R C azonos. e ljárás használ, b á r szükség esetén e lm e n th e tő k és v isszatölthetők eljárásba való
A z U ltraSPA R C III m e m ó riaszerk ezete tiszta és világos: a cím ezh ető m em ó ria b e lép é sk o r, illetve kilépéskor. A z Ix és Ox reg iszterek et p a ra m é te re k áta d á sá ra
2^^ b ájt m é re tű lineáris töm b. S zeren csétlen m ó d o n ez olyan nagy m ére t (1 8 4 4 6 7 h asználják, hogy elk erü ljék a m em óriahivatkozást. A későb b iek b en elm agyaráz­
44073 709.551 616 b ájt), hogy jelen leg nincs olyan gép, am ely m egvalósítaná. A je ­ zuk, hogyan m ű ködik ez.
lenlegi m egvalósítások k o rláto zzák a cím tarto m án y t (2'’'* b ájt az U ltraS P A R C III H á ro m d ed ik ált regisztert speciális célra használnak. A z FP és SP regiszterek az
esetén ), de ez növekedni fog a jövőbeli m o d ellek n él. A z a la p é rte lm e z e tt b á jtso r­ a k tu ális k e re t h a tá ra it tartalm azzák. A z FP regiszter az aktuális k e re t kezdőcím ét
re n d a nagy en d ián , de kis e n d iá n so rre n d is b e á llíth ató a PSW m eg felelő bitjével. tartalm azza, és a lokális változók cím zésére szolgál, é p p en úgy, m int azt a 4.10. á b ­
F ontos, hogy az ISA m agasabb k o rlá to t ta rtalm az, m in t am ire a m egv aló sítás­ rá n b e m u ta ttu k az LV regiszter e setéb en . A z SP az aktuális verem te te jé re m utat, és
nál szükség van, m e rt a jövőbeli m egvalósítások bizo n y ára nagyobb m e m ó riá t igé­ a v erem b e, illetve verem ből m űveletek h a tá sá ra változik. Ezzel ellen tétb en , az FP
n yelnek m ajd. A z egyik legkom olyabb p ro b lém a, am ely a sik eres arch ite k tú rá k k a l csak eljárásh íváskor és visszatéréskor változik. A h arm ad ik speciális célra használt
elő fo rd u lh a t, az a cím ezh ető m em ó ria nagysága. Egy n a p o n u n o k á in k azt fogják reg iszte r az R31, am ely az aktuális eljárás visszatérési cím ét tartalm azza.
k érdezni, hogyan le h e te tt v alam it is csinálni azokkal a szám ító g ép ek k el, am elyek­ A z U ltraS PA R C III ténylegesen 32-nél tö b b általán o s reg isztert tartalm az, de
n ek csak 32 bites cím e és legfeljebb 4 G B m em ó riája volt, am ik o r egy átlagos já ­ csak 32 látszik a p ro g ram o zó szám ára egy a d o tt p illan atb an . E zt a tulajdonságot
ték p ro g ram elin d ítása 8 G B m em ó riát kíván. regiszterablaknak nevezik, és az eljárások h aték o n y m egvalósítását célozza. E zt
A SPARC ISA világos, b á r a reg iszterek szervezése kissé bonyolult, hogy az e l­ illusztrálja az 5.5. ábra. A z a lap ö tlet a verem szim ulálása, de reg iszterek h aszn ála­
járásh ív áso k at h a ték o n y a b b á tegyék. A tap a sz tala t szerin t a reg iszte rek szervezé­ tával. Vagyis ténylegesen több regiszter van, ahogy ugyancsak több k e re t van a ve­
se tö b b p ro b lém á t je le n t, m int g o n d o lták , de a visszafelé k o m p atib ilitás kényszere rem b en . M in d en k o r p o n to san 32 általán o s regiszter használható. A CWP (C u rre n t
m iatt nem leh et m egváltoztatni. W indow P o inter, aktuális ab lak m u tató ) regiszter m u tatja, hogy ak tuálisan mely
A z U ltraSPA R C III reg iszte rek k ét cso p o rtjá t tartalm azza: 32 d arab 64 bites á l­ reg iszte rek használhatók.
talán o s célú regiszter és 32 d a ra b leb eg ő p o n to s regiszter. A z általán o s célú regisz-
364 5. A Z U T A SfT Á SR EN D SZ ER -A R C H ITEK TÚ R A SZ IN T JE 5.1. A Z ISA-SZINT Á TT EKIN T ÉSE 365

Az eljáráshívás utasítás elrejti a régi regiszterkészletet, és egy újat nyit úgy, hogy Úgy fogyhat ki a regiszterkészlet. E k k o r a régi, b e te lt k észletet ki kell írni a m e m ó ­
csökkenti a CWP értékét. A zonban néhány régi regiszter az új készletben is b enne riáb a, ezzel felszabadítva újabb h aszn álatra. H aso n ló an , ha sok eljárásból követ­
lesz, hogy hatékonyabbá tegyük az eljáráshívások m egvalósítását. E z a technika úgy kezik be visszatérés, a m em ó riáb a k im e n te tt reg iszterk észletet be kell olvasni. E z
m űködik, hogy néhány regiszter m ás nevet kap, eljáráshívás u tán a régi R8-R15 kim e­ az egész tú l bonyolult és tö b b g o n d o t okoz, m in t am ennyi a haszna. Ez a tech n ik a
neti regiszterek továbbra is láth atók lesznek, de m ost ezek az R24-R31 b em en e ti re ­ csak ak k o r segít, ha az eljáráshívások nem túl m élyen egym ásba ágyazottak.
giszterek. A nyolc globális regiszter sohasem változik, ezek m indig ugyanazt jelentik. U h raS P A R C III 32 leb eg ő p o n to s regiszterrel is rendelkezik, am elyek m indegyi­
A m em óriával e lle n tétb en , am ely m ajd n em v égtelen (legalábbis am ed d ig a v e ­ k e vagy 32 b ites (egyszeres p o n to sság ú ), vagy 64 bites (d u p la po n to sság ú ) szám ot
rem növekszik), ahogy az eljáráshívások egyre m ély eb b en egym ásba ágyazódnak. ta rta lm a zh a t. L eh etsé g es k ét reg iszterb en tá ro ln i egy 128 bites (négyszeres p o n ­
to sság ú ) szám ot is.
A z U ltraS P A R C arc h ite k tú rá ja betöltő/tároló (load/store) architektúra. E z azt
jele n ti, hogy csak a reg iszterek és a m em ó ria közötti ad atá tv itelt m egvalósító b e ­
tö ltő (LOAD) és tá ro ló (STORE) u tasításo k hivatkoznak közvetlenül a m em ó riára.
A z összes tö bbi u tasítás o p e ra n d u sa m indig valam elyik reg iszterb en (nem a m e ­
m ó riá b an ) vagy az u tasításb an van, és az ered m én y is m indig regiszterbe kerül
(n e m a m em ó riáb a).

5.1.7. A 8051 ISA-szintjének áttekintése

H a rm a d ik p éld án k a 8051-es processzor. A P entium 4 (am elyet első so rb an asztali


g ép ek b en és kiszolgálókban alkalm aznak) és az U ltraSPA R C III (am elyet első so r­
b an nagyobb kiszolgáló konfigurációkban, külö n ö sen többprocesszoros re n d sze­
re k b e n alk alm aznak) p ro cesszorokkal e llen tétb en a 8051-et beágyazott re n d sze­
re k b e n használják. P éld áu l közlekedési lám ák és id ő zített ó rá k e setéb en az eszkö­
zök v ezérlésére, v alam int nyom ógom bok, lám pák és egyéb felhasználói fe lü letele­
m ek kezelésére. T ö rté n e te egyszerű és egyenes vonalú. A z In tel azonnal sikert ért
el, am ik o r 1974-ben kijött az egy lap ra szerelt 8080-as C PU -val. A legkülönbözőbb
készü lék ek gyártói é p íte tté k be ezt a processzort term ék eik b e. M ajd k é rté k az
In telt, hogy ép ítsen olyan egy lap ra szerelt processzort, am ely nem csak a C P U -t,
h a n e m a m e m ó riát és az B /K eszközvezérlőt is tartalm azza. A z In tel válaszolt, és
m eg alk o tta a 8048-ast, am elyből h a m aro san m eg szü letett a 8051-es. É ltes k o ra el­
len é re (vagy é p p e n ezért) m ég m a is széles k ö rb e n h asználatos, m ert nagyon olcsó,
am i igen fo n to s a b e é p íte tt ren d szerek n él. E b b en a fejezetb en rövid technikai is­
m e rte té st a d u n k a 8051-esről, v alam int fivéreiről és nővéreiről.
A 8051-es egyetlen m ó d b an m űködik, és nincs védelm i hard v ere, mivel so h a­
sem fu tta t egyszerre több, kü lö n b ö ző felhasználói p ro g ram o t. M em óriam odellje
nagyon egyszerű. K ülön 64 K B -os cím tarto m án y ú p ro g ram - és 64 KB c ím ta rto ­
m ányú a d a tm em ó riája van. K ü lönválasztották a p ro g ram - és az ad atm em ó riát,
hogy az elő b b it R O M , az u tó b b it pedig R A M valósíthassa m eg.
A m em ó rián ak sokféle m egvalósítása lehetséges. A legegyszerűbb esetb en 4 KB
R O M van a p ro g ram , és 128 b ájt R A M az a d a t szám ára. A R O M és a R A M a la p ­
k ára in teg rált. K isebb alkalm azások e setén ennyi m em ó ria eleg en d ő , és hatalm as
nyereség, hogy egy lapkán van a C P U -val. A 8052-esnek k étszer ennyi m em ó riája
van, 8 KB R O M és 256 b ájt R A M a lapkán. E m o d ellek h aszn álatak o r a p ro g ra ­
5.5. ábra. íKz UltraSPARC III regiszterablak technikája m o t gyárilag b eég etik a R O M -b a, am it aztán a felhasználó nem változtat.
366 5. A Z U T A SfT Á SR EN D SZ ER -A R C H ITEK TÚ R A SZ IN T JE 5.1. A Z ISA-SZINT Á TT EKIN T ÉSE 367

A m ásik véglet az olyan 8051-es, am elynek 64 KB külső R O M vagy H F R O M náh o z tarto z ó szám láló fu th a t egyszerre, és ezek m indegyike m egszakítást vált ki,
p ro g ram m em ó riája, és 64 KB külső R A M a d a tm em ó riá ja van. A z is lehetséges, ha le te lt az ideje. Az E S bit engedi vagy tiltja a soros vonali m egszakítást. A további
hogy egyetlen 64 KB külső R A M ta rtalm azza a p ro g ra m o t is és az a d a to t is. két bit a külső eszközök m egszakítását engedi vagy tiltja, H a engedi, akkor a 8051
A 8051-es tám o g at olyan közbülső m odellt is, am ikor az alsó 4 KB p ro g ra m m e ­ k ét lábához k ö tö tt külső eszköz m egszakítást g en erálh at. H a tilto tt, akkor az esz­
m ória és 128 bájt ad atm e m ó ria a lapkán belül van, a m ara d ék m em ó ria p edig külső. köz n em o k o zh at m egszakítást.
Bizonyos lábaira ad o tt feszültség h atáro zza m eg, hogy m elyik m odell érvényesül. A z IP reg iszter határo zza m eg a m egszakítások p rio ritási szintjét. K ét szint van,
A 8051-es reg iszterk ezelése szokatlan. A legtöbb 8051-es p ro g ra m úgy készül, alacsony és m agas. H a alacsony p rio ritási szintű m egszakítás kiszolgálása közben
hogy nyolc d a ra b 8 bites reg isztert használ. E z a te rm é sz e te s h aszn á lata a C P U - m agas p rio ritású keletkezik, ak k o r az alacsony feldolgozása felfüggeszthető, de
nak, m ert a legtöbb u tasítás egy 3 b ites m ezőn h atáro z z a m eg a h aszn ált regisztert. ford ítv a nem . H a a bit 1, ak k o r a hozzá ta rto z ó m egszakítás p rio ritási szintje m a ­
A reg iszterekre RO,..., R7 nevekkel hivatkozunk. M in d a m e lle tt négy reg iszterk ész­ gas, egy éb k ént alacsony.
lete van, de egyszerre csak az egyik h aszn álh ató . A PSW 2 b ites m ezője m o n d ja A T C O N regiszter vezérli a 0. és az 1. időzítőt, ezek a fő időzítők. A z 0 1 és OO b ite­
m eg, é p p en m elyik k észlet az aktuális. A tö b b reg iszte rk észlet célja az, hogy le h e ­ k et h ard v er állítja be, ha a hozzá ta rto z ó időzítő tú lc so rd u l. A z R í és RO bitek a fu­
tővé tegye a nagyon gyors m eg szakításfeldolgozást. H a m egszakítás keletkezik, a tásvezérlő bitek, am elyek lehetővé teszik, hogy a pro g ram szoftveresen ki- vagy b e ­
feldolgozó p ro g ram n ak n em kell e lm e n te n ie az összes reg iszte rt, h an em csak á t­ kacsolja az időzítőt. A többi bit a két időzítő él- vagy szintvezérlésével kapcsolatos.
vált egy m ásik k észletre. A 8051-esnek ez a tu lajd o n ság a leh ető v é teszi, hogy m á ­ A z utolsó regiszter, a TMOD az időzítők ü zem m ó d ját h atáro zza m eg (8, 13 vagy
so d p ercen k én t nagyon nagy szám ú m egszakítást tu d jo n feldolgozni, am i nagyon 16 bites), hogy valódi időzítő avagy szám láló, továbbá a fokozatot, hogy mely
fontos tulajdonság a m in d en olyan p ro cesszo rn ak , am elyet beág y azo tt valós idejű h ard v e rje lek v ezérelh etik az időzítőt. A z áb rán nem lá th a tó további regiszterek az
ren d szerb en a k a rn a k használni. áram ellátással, és a soros p o rt vezérlésével kapcsolatosak.
Egy m ásik sajátossága a 8051 reg iszterein ek , hogy a m e m ó riá b an vannak. A m e ­
m ó ria 0. b ájtja a 0. reg iszterk észlet RO regisztere. H a egy u tasítás m eg v álto ztatja 4095
az RO regiszter ta rta m á t, m ajd k éső b b egy u tasítás a 0. b á jto t olvassa, a k k o r o tt a
m egváltozott RO é rté k é t találja. H aso n ló a n az 1. b ájt az Rí reg iszte r és így tovább.
A 8. b ájttó l a 15. bájtig v an n ak az 1. rcg iszterk észlet reg iszterei, és így tovább 31-
ig, am ely a 3. készlet R7 regisztere. A z e lren d ezés az 5.6. (a) á b rá n láth a tó .
K özvetlenül a négy regiszterkészlet (regiszterbank) fele tt a 32. m em óriacím től
Program-
a 47-ig terjed ő 16 b ájt a bit-cím ezh ető m em óriam ező. A b itek cím zése 0-tól 127-ig memória
terjed. A 8051-esnek utasításai v an n ak a beállítás, törlés, ÉS, VAGY és tesztelés el­
végzésére az utasításb an m eg ad o tt cím en, a 0-tól 127-ig te rje d ő b itcím tarto m á n y ­
ban. E zek te h á t a 32 és 47 k özötti m em ó riacellák o n o p eráln ak . A z ilyen u tasítások
hasznosak, m ert beágyazott processzorok gyakran alk alm azn ak b itváltozót k ap ­ r' í 4-
csolók, lám pák és m ás B /K eszközök állap o tán ak lek érd ezésére vagy beállítására. r c A RS 0 P PSW
A speciális m em ó ria m ező lehetővé teszi bitváltozók k ezelését anélkül, hogy a te l­ 0
jes b ájto t be kellene olvasni, m ajd léptetni, és kim aszkolni a n em kívánt biteket.
EA ES El XI EO xo lE
Egy ilyen kicsi processzor esetén ez rendkívül hasznos a logikai változók kezelésére. 127
A 8051 a négy á ltalán o s reg iszterk észleten kívül ta rta lm a z n éh án y speciális cé­
ES El XI EO xo IP
lú regisztert is, am elyek közül a leg fo n to sab b a k at az 5.6. (b) á b ra szem lélteti. ' 'í Munkaterület
i ] i l*
A PSW-ben b alró l jo b b ra h aladva van az átvitelbit, k iegészítő átv itelbit, a használt
regiszterkészletre u ta ló bitek, a tú lcso rd u lásb it és a p aritásb it. A h asznált rcgisz- 01 RÍ OO RO El TI EO TO TCON
terk cszletre u taló b ite k kivételével m in d en b ite t az aritm e tik ai u tasításo k á llítan ak Bit-cimezhető memória
32
be. A z áb rán lá th a tó k eresztv o n alk ázo tt m ezők n em definiáltak. í E 1 1 1 ^ regiszterkésztet i z Z Z Z Z 1. id ő z ítő 0, id ő z ítő TMOD
A z lE regiszter a m egszakítások egyedi és kollektív en g ed ély ezését és tiltását k e ­ 0
zeli. H a az EA bit 0, ak k o r m in d en m egszakítás tilto tt. E zen b it tö rlése leh ető v é te ­ 8 bit 8 bit
szi m inden további m egszakítás tiltását egyetlen utasítással. A z EA b it 1-re állítása (a) (b)
engedélyez m ind en olyan m egszakítást, am elynek egyedi bitje 1. A z E2, El és EO b i­
tek engedélyezik vagy tiltják a h á ro m időzítő csato rn á t. L egfeljebb h áro m c sa to r­ 5.6 . ábra. (a) A 805 7memória szervezése, (b) A 8051 fő regiszterei
368 5. A Z u t a s í t A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e
5.2. A D A T T fP U SO K 369

A z összes edd ig e m líte tt speciális reg iszte r és m ég néhány, m in t az a k k u m u lá ­


a csavarhúzók szám a egy vaskereskedésben), tárgyak azonosítására (például b an k ­
to r, a B/K p o rto k , m ind a 128-255 m e m ó riata rto m á n y b a n v annak. E z ek ugyanúgy
szám laszám ) és m ég sok m inden m ásra alkalm azhatók. A m odern szám ítógépek az
cím ezhetők, m in t bárm ely m em ó riacella, ahogy az R0-R7 re g iszterek is. P éld áu l az
egész szám okat bináris k ettes kom plem ens kódban ábrázolják, habár korábban más
ak k u m u láto r, am ely szerep el szinte m in d en aritm etik ai u tasításb an , a 240-es cí­
ren d szerek et is alkalm aztak. A bináris szám okat az A ) függelékben tárgyaljuk.
m en találh ató . A 8052 esetén , am ely valódi m e m ó riát ta rta lm a z a 128-255 ta r to ­
V annak olyan szám ítógépek, am elyek m ind az előjel nélküli, m ind az előjeles
m ányban, a speciális reg iszterek átlap o lják a m e m ó ria te re t. D ire k t cím zés ese tén
egész szám okat tám ogatják. A z előjel nélküli egészek ese té b e n nincs előjelbit,
a 8052-es a speciális re g iszte rek et cím zi, m íg in d ire k t hiv atk o zásk o r (reg iszterb en
m in d en b it szám jegyet tartalm az, így egy 32 bites szó é rté k e 0 és 2^- - 1 kö zö tti le­
lévő m u tató v al) a R A M -ot. h e t (b eleértv e a h a tá ro k a t is). E llen b en , a 32 bites k ettes k o m plem ens kó d b an a
legnagyobb szám 2’' - 1 lehet, de kép es negatív szám okat is kezelni.
O lyan szám ok áb rázo lására, am elyek n em fejezh ető k ki egészként, m int például
a 3,5, leb eg ő p o n to s szám ábrázolást alkalm aznak. E zek et a B) függelékben tá r­
5.2. Adattípusok gyaljuk. A le b eg ő p o n to s szám ok le h etn ek 32, 64 vagy n é h a 128 bitesek. A legtöbb
szám ítógép rend elk ezik leb eg ő p o n to s aritm etik ai utasításokkal. Sok gép külön-
A szám ítógépnek a d a to k kellenek. V alójában sok szám ító g épes re n d sz e r n em tesz
k ü lö n re g isz te rek et alkalm az az egész és a leb eg ő p o n to s o p e ra n d u so k táro lásá ra.
m ást, m int pénzügyi, keresk ed elm i, tud o m án y o s, m érn ö k i vagy egyéb a d a to k a t
N éh án y p rogram ozási nyelv, k ü lö n ö sk ép p en a C O B O L , decim ális ad attíp u st
dolgoz fel. A z a d a to k a t a szám ító g ép en belül speciális fo rm á b a n kell ábrázolni. is m eg en g ed . A zok a gépek, am elyek C O B O L -b a rá to k a k a rn ak lenni, gyakran
A z ISA -szint a d attíp u so k széles választék át nyújtja erre. E z ek e t az a d a ttíp u so k a t h a rd v e rtá m o g atást b izto sítan ak e rre , tipikusan 4 biten ábrázolva egy decim ális
vizsgáljuk a továbbiakban. szám jegyet, aztán egy b ájtb a p a k o ln ak k ét ilyen jegyet (b in árisan k ó dolt decim ális
A kulcskérdés, hogy vajon a h a rd v e r m ely k o n k ré t a d a ttíp u so k a t tám o g atja. A fo rm a). A zo n b an az aritm etik a nem m űködik helyesen a p ak o lt decim ális szám o­
hard v ertám o g atás azt jelen ti, hogy v a n n ak u tasításo k , am elyek m eg a d o tt a d a t­
k on, e z é rt decim ális aritm etik ai korrekciós u tasításo k kellenek. E zek az u ta s ítá ­
fo rm átu m o t feltételezn ek , a p ro g ram o zó n em v álaszth at m ás ad a tá b rázo lást.
sok felism erik a 3. b itrő l tö rté n ő átvitelt. E z az oka annak, hogy a 3. bitről tö rté n ő
Például, a könyvelők elő sz erete tte l teszik a negatív szám ok esetén a - je le t a szám
átvitel felism erésére k ü lön feltételb it van a PSW-ben. M ellékesen, a h írh e d t Y2K
u tán , n em pedig elé, m in t a szám ítógépes em b erek . K épzeljük el, hogy egy köny­
(2000. év) p ro b lé m á t nagyrészt C O B O L -p ro g ram o zó k okozták, m ondván, elég és
velőcég szám ító k ö zp o n tján ak v ezető je elin tézte, hogy a g ép en m in d en szám ot úgy
olcsóbb a d átu m u to lsó k é t jegyét táro ln i, n em kell 16 bit. N ém i optim alizálás.
ábrázolnak, hogy az előjelbit az u to lsó bit, és n em az első, m in t szokásosan. E z k é t­
ségtelenül nagy ben y o m ást te n n e a fő n ö k re, mivel m in d en szoftver k o rre k tü l d o l­
gozna. A h ard v er m e g a d o tt fo rm á tu m b an feltételezi az egész szám ok áb rázo lását,
és n em m űködik helyesen, ha bárm ilyen m ás fo rm á b a n ábrázo lju k a szám okat.
5.2.2. Nem numerikus adattípusok
Tekintsünk egy m ásik könyvelőcéget, am elyik é p p e n m ost k a p ta a m egbízást,
A m íg a k o rai szám ítógépek zöm e é le té t szám olással tö ltö tte , a m o d ern g ép ek et
hogy ellenőrizze a szövetségi költségvetést (hogy az U S A korm án y a m ennyivel tar-
gyakran n em n u m erik u s alk alm azáso k ra használják, m in t az elek tro n ik u s levele­
(ozik egy polgárn ak ). A 32 bites a ritm etik a n em len n e elég, m ert olyan szám okkal
zés, szörfözés a világhálón, digitális fényképezés, m ultim édia-készítés és lejátszás.
kell dolgozni, am elyek nagyobbak, m in t 2’^ (kb. 4 m illiárd). A z egyik m egoldás le ­
A z ilyen alk alm azások m ás ad a ttíp u so k a t igényelnek, am it gyakran az ISA-szin-
h etn e, hogy k ét 32 bites egész szám ot használjunk m in d en szám áb rázo lására, azaz tű u tasításo k is tám o g atn ak . A k a ra k te re k külö n ö sen fontosak, b á r n em m inden
szám onként 64 bitet. H a a gép n em tám o g atja az ilyen dupla pontosságú szám okat, szám ító g ép biztosít e rre h ard v ertám o g atást. A leggyakoribb k ara k te rk ó d o k az
a kkor m inden aritm e tik át szoftverrel kell m egvalósítani, de ek k o r a k ét 32 bites A S C II és a U N IC O D E . A z előbbi 7 bites, az utóbbi 16 bites áb rázo lást alkalm az.
szám sorrendje tetszőleges lehet, hiszen a h ard v er ezzel nem törődik. E z olyan a d a t­
M in d k e ttő t a 2. fejezetb en tárgyaltuk.
típ u sra példa, am elynek nincs h ard v ertám o g atása, és így n em is igényel m eg ad o tt N em szok atlan, hogy az ISA -szint ren d elk ezik olyan speciális utasításokkal,
h ardverábrázolást. A következő részben olyan ad attíp u so k a t tanulm ányozunk, am elyek k a ra k terlán co k o n o p eráln ak . A k a rak terlán co k n é h a speciális k a ra k te r­
am elyeknek van h ard v ertám o g atása, ezért speciális ábrázolási fo rm át igényelnek. rel végződnek. A ltern atív m eg o ld ásk én t a lánc hosszát is táro lh atju k , hogy tudjuk,
h o l a vége. A z u tasításo k m ásolást, k eresést, szerkesztést és m ég n éhány m ás fu n k ­
ciót v aló sítanak m eg k arak terlán co k o n .
5.2.1. Numerikus adattípusok A logikai (B oolean-) é rté k e k különösen fontosak. K ét kü lö n b ö ző logikai érték
van; az igaz és a ham is. E lm életileg egyetlen bit elég le n n e logikai é rté k tá ro lá sá ­
A z adattípusok két k ategóriába sorolhatók: num erikus és n em num erikus a d attíp u ­
ra, 0 a ham is és 1 az igaz szám ára (vagy fordítva). A gyakorlatban azo n b an egy b áj­
sok. A z egész szám ok k itü n tetettek a num erikus ad attípusok között. M éretü k sokféle to t vagy egy szót alkalm aznak, m ert az egyedi bitek n em cím ezhetők, így n eh éz az
lehet, tipikusan 8 ,1 6 ,3 2 és 64 bit. A z egész szám ok tárgyak m egszám lálására (például
e lérésü k . Szokásos, hogy a 0 a ham is, és m in d en m ás az igaz é rté k e l ábrázolja.
370 5. A Z U T A SlT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.3, U T A SÍT A SF O R M Á T U M O K 371

Van olyan helyzet, am ik o r norm ális, hogy egy b ite n áb rázo lju n k egy logikai é r­ Típus 1 Bit Sb it 16 bit 32 bit 64 bit 128 bit
ték et, n evezetesen , am ik o r logikai é rté k e k teljes tö m b jé t kell táro ln i, így 32 bit
Bit
32 logikai é rté k e t ta rta lm az h at. A z ilyen a d a ttíp u st b itté rk é p n e k nevezzük, és Előjeles egész X X X X
tö b b helyzetben is elő fo rd u l. P éld áu l, egy b itté rk é p tá ro lh a tja a m ág n eslem ez sza­
Előjel nélküli egész X X X X
b ad blokkjait. H a a lem ez n blo k k b ó l áll, ak k o r a té rk é p n b ite t tartalm az. Binárisan kódolt decimális
U to lsó a d a ttíp u su n k a m u ta tó , am ely egyszerűen egy m em ó riacím et je le n t. M u ­ Lebegőpontos X X X
tató k k al m á r tö b b szö r találk o ztu n k . A M ic-x gép e se té n az SP, PC, LV és a CPP m ind
p éld ák m u tató k ra . M u ta tó h o z a d o tt távolságra lévő változó elérése, m in t ahogyan 5.8. ábra. Az UltraSPARC Ili numerikus adattípusai. A támogatott típusokat x jelöli
az ILOAD u tasítás dolgozik, m in d en g ép e n nagyon gyakori.

5.2.5. A 8051 processzor adattípusai


5.2.3. A Pentium 4 adattípusai
A 8051-es p rocesszor nagyon k o rlá to z o tt szám ú ad attíp u ssal rendelkezik. Egy ki­
A P entium 4 tám o g a tja az előjeles 2-es k o m p lem en s egész, az előjel nélk ü li egész, v ételtő l eltekintve m in d en regiszter 8 bites, így az egész szám ok is 8 bitesek. A k a­
a b in árisan k ó d o lt decim ális egész és az IE E E 754 szabványnak m egfelelő leb eg ő ­ ra k te re k is 8 b ite n táro ló d n ak . L ényegében az egyetlen ad attíp u s, am elyet tén y le­
p o n to s szám okat, am in t az 5.7. áb ra m u ta tja . A 8/16 b ites e re d e té b ő l k ö v etk ező en gesen tám o g at a h ard v er, az a 8 bites bájt. E z lá th a tó az 5.9. ábrán.
kezelni tu d ja az ilyen m é re tű egészek et, szám os aritm etik ai, logikai és ö sszeh aso n ­
lító u tasítást kínálva. A z o p e ra n d u so k a t n em kell igazítani a m em ó riáb a n , b á r h a ­ Típus 1 Bit 8 bit 16 bit 32 bit 64 bit 128 bit
tékonysági oko k m iatt célszerű 4-gyel o szth ató cím en táro ln i az a d ato k a t. Bit X

Előjeles egész X

Típus 1 Bit 8 bit 16 bit 32 bit 64 bit 128 bit Előjel nélküli egész
Bit Binárisan kódolt decimális
Előjeles egész X X X
Lebegőpontos
Előjel nélküli egész X X X

Binárisan kódolt decimális X 5.9. ábra. A 8051 numerikus adattípusai. A támogatott típusokat x jelöli.
Lebegőpontos X X

A 8051 egy m ásik olyan ad attíp u ssal is rendelkezik, am ely h ard v ertám o g atást
5.7. ábra. A Pentium 4 numerikus adattípusai. A támogatott típusokat x jelöli élvez, ez a bit. A 32. cím től k ezd ő d ő 16 bájto s m em ó riab lo k k bit-cím ezh ető m e ­
m ó ria. M in d en b it egyedileg cím ezh ető 0-tól 127-ig te rje d ő eU olással. A 0. b it a
A Pentium 4 jó a 8 bites A S C II k a ra k te re k m an ip u lálása te ré n is: v a n n ak sp eciá­ jo b b szélső b it a 32. b ájtb an , az 1. bit a k övetkező és így tovább. L étezik egyedi b i­
lis utasításo k k ara k te rlá n c o k m áso lására és keresésére. E zek az u tasításo k hasz­ te k re v o n atk o zó u tasítás olyan m űv eletek elvégzésére, m int a beállítás, törlés, ÉS,
n álh ató k m ind ism ert hosszú, m in d végjellel m eg ad o tt k a rak terlán co k ra. E ze k et az VAGY, k o m p lem en ter, m ásolás és tesztelés. B eágyazott ren d szerek b en egyedi
u tasításo k at gyakran használják a k a rak te rlá n c o t feldolgozó könyvtári eljárások. b ite k e t h aszn áln ak kapcsolók, lám pák és haso n ló k állap o tain ak táro lásá ra, ezért
ezek k özvetlen m anipulálási leh ető ség e nagyon hasznos.

5.2.4. Az UltraSPARC Ili adattípusai

A z U ltraSPA R C III ad atfo rm á tu m o k széles skáláját nyújtja, m in t azt az 5.8. á b rán is 5.3. Utasításformátumok
láthatjuk. C sak az egészek e setén leh et 8, 16, 32 és 64 bites o p eran d u s, m ind elő je­
les, m ind előjel nélküli változatban. A z előjeles egészeket 2-es ko m p lem en s k ó dban M in d e n u tasítás ta rtalm az egy m űveleti k ó d o t és általáb an valam ilyen kiegészítő
ábrázolja. A lebegőpontos o p e ran d u so k le h etn ek 32, 64 és 128 bitesek, és kielégítik info rm áció t, m int hogy hol van n ak az o p eran d u so k , és az ered m én y hova kerül.
az IE E E 754 szabványt (a 32 és 64 b itesek). B inárisan k ódolt decim ális ábrázolást A zt az általán o s m ódszert, am ely m eg h atáro zza az o p e ra n d u so k helyét (te h á t a cí­
nem tám ogat. M in d en o p eran d u sn ak a m em ó riáb an igazítüttnak kell lennie. m ü k e t), cím zésnek nevezzük, és ezt tanulm ányozzuk a továbbiakban.
A z U ltraSPA R C III erő sen reg iszte ro rie n tált gép, m ajd n em m in d en u tasítás A z 5.10. á b ra szám os 2. szintű u tasításfo rm át m u tat. A z u tasítás m indig ta rta l­
64 bites regiszterre vonatkozik. A k a ra k te rlán c a d attíp u st n em tám o g atja speciális m az m űveleti k ó dot, am ely m egm ondja, hogy m it csinál az utasítás. E zenkívül ta r­
utasítással. talm a z h a tja 0, 1, 2 vagy 3 o p e ra n d u s cím ét.
372 5. A Z u t a s í t á s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e
5.3. U T A SIT A SF O R M A T U M O K 373

MŰVELETI KÓD MŰVELETI KÓD CÍM jelsebesség, (2) tip ik u s R A M -elérési idő 20 év m úlva. G o n d o san őrizze m eg, 20 év
elteltével b o n tsa fel, és olvassa el, m it je lz e tt előre.
(a) (b)
T erm észetesen m ég az e lő relátó tervezők sem m ind k épesek a jó választásra. D e
m ég h a k ép e sek is len n én ek , m eg kell birk ó zn iu k a rövid távú kihívásokkal is. H a
MŰVELETI KÓD 1.CÍM 2. CÍM MŰVELETI KÓD 1.CÍM 2. CÍM 3. CÍM az elegáns a rc h ite k tú ra csak egy kicsit is d rágább, m int a k ellem etlen vetélytársa-
ké, a cég n em lesz képes elég sokáig életb en m arad n i, hogy é lv e zz e az elegáns IS A
(0 (d) előnyeit.
H a m in d en azonos, a rövid utasítás jo b b , m int a hosszú. A z a pro g ram , am ely n
5.10. ábra. Négy gyakori utasítás forma: (a) 0 dmes utasítás, (b) Egydmes utasítás.
szám ú 16 b ites u tasítást tartalm az, csak feleak k o ra m em ó riát igényel, m int a m e ­
(c) Kétdmes utasítás, (d) Háromdmes utasítás
lyik n d a ra b 32 bites u tasításo k b ó l áll. A z állan d ó an csökkenő m e m ó riaárak m el­
le tt ez a tén y ező lehet, hogy kevésbé fo n to s a jövőben; így lenne, ha a szoftver nem
V annak gépek, am elyeknél m in d en u tasítás azo n o s hosszúságú, m áso k e setén
terp e sz k e d n e szét m ég gyorsabban, m in t ahogy a m em ó ria ára esik.
több, külö n b ö ző hosszúságú u tasítás leh et. A z u ta sítá so k hossza le h e t a szóhosz-
T ovábbá, az u tasítás hosszán ak m inim alizálása n eh ézzé te h e ti a d ek ó d o lást és
szal azonos, rö vid eb b vagy hosszabb is. H a m in d en u tasítás azon o s hosszúságú, a k ­
az átlap o lási. T ehát az u tasítás m é re té n e k m inim alizálásával tö b b idő kell a d e k ó ­
k o r könnyebb a d ek ó d o lás, de p aza rló a táro lás, m e rt a közös hossz m egegyezik a
d o lásra és a v ég rehajtásra.
leghosszabb hosszával. A z 5.11. á b ra n éh án y leh etség es összefüggést m u ta t a szó­
E gy m ásik szem p o n t - az u tasításhossz m inim alizálása m ellett - m á r m ost fo n ­
hossz és az u tasításh o ssz kö zö tt.
tos, és a jö v ő b en egyre fo n to sab b lesz a gyorsabb p ro cesszo ro k esetén , nevezetesen
a m e m ó ria sávszélessége (a m em ó ria által szo lg áltato tt bitek szám a/m ásodpcrc).
1 szó 1 szó 1 szó

Utasítás Utasítás Utasítás Utasítás nincs arán y b an a m em ó riák sávszélességének növekedésével. A p rocesszorok fel­
Utasítás Utasítás Utasítás Utasítás Utas. Utas. d olg o zó k ép esség én ek egyik súlyosbodó általán o s k o rlátja, hogy a m em ó ria nem
Utasítás Utasítás Utasítás tu d ja olyan ü te m b e n szolgáltatni az a d a to k a t és az u tasításo k at, am ilyen m é rté k ­
Utasítás
Utasítás Utasítás Utasítás b e n a p ro cesszo r képes feldolgozni. M in d en m em ó ria sávszélességét az alkalm a-

(a) (b) (c)


k ere sz tm etsz et n em csak a m em ó riára, h a n e m a g y o rsító tárak ra is vonatkozik.
H a az u tasítás-g y o rsító tár sávszélessége t bps, az átlagos u tasításhossz pedig
5.11. ábra. Lehetséges szóhossz és utasításhossz
r bit, ak k o r a g y o rsító tár legfeljebb tjr u tasítást k ép es szolgáltatni m áso d p e rc e n ­
k é n t. M egjegyzendő, hogy e z felső korlátja annak, am ilyen m é rték b en a processzor
k ép es az u ta sításo k at végrehajtani. B ár folynak olyan k u tatási kísérletek, am elyek
5.3.1. Utasításformák tervezésének követelményei ezen látszólag le k ü zd h e tetlen k o rlát leküzdését célozzák. V alóban, az u ta sítá s­
hossz k o rlá to zza a végrehajtási sebességet (azaz a processzor sebességét). M ivel a
A m ik o r egy szám ító g ép et terv ező csap at u ta sítá sfo rm á t választ, szám os té n y e­
m o d e rn p ro cesszo ro k egy órajel a latt tö b b u tasítást is k ép esek végrehajtani, ezért
zőt kell figyelem be v ennie. A d ö n té s b o n y o lu ltság át n em szabad lebecsülni. A z új
szükséges, hogy k ép esek legyenek egy ó rajel a la tt tö b b u tasítást beolvasni. A z u ta ­
g ép terv ezésén ek k o ra i fázisáb an kell d ö n ten i az u tasításfo rm áró l. H a a szám ító ­
sítás-g y o rsítótárnak ez a tulajdonsága fo n to s tervezési k ritériu m m á vált.
gép k eresk ed elm ileg sikeres, az u ta sításren d sz e r a k á r 20 évig is éle tb e n m a ra d h a t.
A m ásik tervezési kritériu m , hogy elég hely legyen az összes m egkívánt utasí­
N agy jelen tő ség e van a n n ak a k ép esség n ek , hogy új u ta sítá st leh essen b ev ezetn i és
tás szám ára. A z u tasításo k szám a n em leh et több, m int 2", h a az u tasításo k hossza
kihasználni az új leh ető ség ek et, de csak akkor, ha az a rc h ite k tú ra eléggé sikeres
n bit. E gy szerűen nincs elég hely a m űveleti k ó d szám ára, hogy m eg k ü lö n b ö ztes­
ahhoz, hogy hosszabb id ő re é le tb e n m arad jo n .
sünk tö b b u tasítást. A tö rté n e le m időről időre bebizonyítja, hogy eleg en d ő helyet
E gy a d o tt arc h ite k tú ra h aték o n y ság a n ag y m érték b en függ a szám ító g ép m eg ­
kell hagyni a jövőbeli u tasításo k b ev ezetésére.
v alósítására haszn ált tech n o ló g iátó l. H osszú id ő elteltév el ez a tech n o ló g ia h a ­
A h a rm a d ik tervezési szem pont a cím rész bitjeinek szám át érinti. T ekintsük egy
talm as változáson m egy k eresztü l, így n éh án y ISA -választásról k id erü l, hogy sze­
olyan gép tervezését, am ely 8 bites k arak terek k el dolgozik, és 2’^ szám ú k a ra k te rt
ren csétlen volt. P éld áu l, h a a m e m ó ria elérése gyors, ak k o r a v erem elvű tervezés
a k a r táro ln i a m em ó riájáb an . A tervezők választh atják cím zési egységként a 8, 16,
(m int a JV M ) szerencsés, de h a lassú, ak k o r a reg iszterelv ű m eg o ld ás a jó (m int
24, 32 stb. b itet, de m ás leh ető ség is kínálkozik.
az U ltraS P A R C III). A z az olvasó, aki úgy g ondolja, hogy ez a v álasztás könnyű,
K épzeljük e l, hogy a tervezőcsapat k ét részre oszlik, az egyik a 8 bites e g y sé g re
javaslom , írja fel egy p a p írla p ra a k ö v etk ező k elő rejelzését: (1) tip ik u s C P U ó ra ­
szavaz, a m ásik pedig a 32 bites szavakra m int m em óriaegységre. A z első c sa p a t
374 5. A Z u t a s It A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5.3. U T A SlT Á SF O R M Á T U M O K 375

2^^ szám ú cgybájtos m em ó riát kínál a 0, 1, 2, 3 , 4 2 9 4 9 6 7 2 9 5 cím ckkci. A m ásik A m űveleti kód k iterjesztésén ek elvét világosan láth atju k a következő példából.
csap at 2 ’" m éretű m em ó riát kínál, ah o l a szavak cím ei 0, 1,2, 3 , 1 0 7 3 7 4 1 8 2 3 . T ekintsünk egy olyan gépet, am elynek u tasításai 16 bitesek, a cím rész pedig 4 b i­
A z első csapat k im u tatja, hogy k é t k a ra k te r összeh aso n lítása a szószervezésű tes, am int az 5.12. áb ra m u tatja. E z a helyzet elfo g ad h ató n ak tűnik, ha a gép n ek
gép esetén úgy o ld h a tó m eg, hogy a p ro g ra m n a k nem csak a k a ra k te re k e t ta rta l­
m azó szavakat kell beolvasnia, h an em m ég a szavakból is ki kell vennie a k a ra k te ­ 16 bit
re k et, hogy össze tu d ja ő k et h a so n lítan i. E z ex tra u ta sítá st igényel és helypazarló.
4 bites — -(0000) xxxx yyyy zzzz 15 3 címes
E llen b en a bájto s szervezés esetén m in d en k a ra k te r külö n cím ezh ető , am i köny- műveleti 0001 xxxx yyyy zzzz
0010 xxxx yyyy zzzz utasítás
nyűvé teszi az összehasonlítást. kód
A 32 bites szavakat tám o g ató csap at p ed ig azzal érv elh et, hogy esetü k b e n csak
2’" cím van, így 30 b ites cím elég az u tasításo k b an , m íg a 8 b itesek e se téb e n 32 bit 1100 xxxx yyyy zzzz
kell ugyanakkora m em ó ria m egcím zésére. R ö v id ebb cím rövidebb u tasítást e re d ­ 1101 xxxx yyyy zzzz
1110 xxxx yyyy zzzz
m ényez, am i nem csak h ely tak arék o sab b , de gyorsabban ki leh et olvasni. A lte rn a ­
tívaként m e g ta rth a tó a 32 b ites cím , de ek k o r a m áso d ik csap at 16 G B m em ó riát
tu d cím ezni, az első csap at m eg csak 4 G B -o t. 8 bites — -din 0000) yyyy zzzz 14 2 címes
műveleti 1111 0001 yyyy zzzz
E z a p é ld a d e m o n strálta, hogy a íin o m ab b m em ó ria fe lb o n tá s á ra a hosszabb 1111 0010 yyyy zzzz utasítás
kód
cím és hosszabb utasítás. A m cm ó ria fe lb o n tás szélsőséges m egoldása, ha m inden
bit külön cím ezh ető (ilyen volt a B u rro u g h s B I7 00 gép). A m ásik véglet, ha a m e ­
1111 1011 yyyy zzzz
m ó ria n ag ym éretű szavakból áll (ilyen volt a C D C C yber 60 bites szavával). m i noo yyyy zzzz
A m o d ern szám ító g ép ek k o m p ro m isszu m ra ju tn a k , bizonyos é rte lem b e n m in d ­ 1111 1101 yyyy zzzz
két végletből a rosszat m eg tartv a. M in d en b it szükséges az egyedi b ájto k cím zése
m iatt, de m inden m em ó riam ű v elet 1, 2, 3, n é h a 4 b ájto s szavakat olvas egyszerre. 12 bites - -0111 1110 0000) zzzz 31 1 címes
Egy m em ó riab ájt kiolvasása az U ltraS P A R C 111 e se té n p éld áu l m inim um 16 b á j­ műveleti iin m o 0001 7777
utasítás
kód
to t érin t, de valószínűleg egy teljes 64 b ájto s gyorsítósort.

1111 1110 1110 zzzz


5.3.2. A műveleti kód kiterjesztése 1111 1110 1111 zzzz
1111 im 0000 zzzz
mi mi 0001 zzzz
A z előző szakaszban m eg m u tattu k , hogy a rövid cím zés és a finom m em ó ria fe lb o n ­
tás milyen ellen té tb e n áll. E b b e n a szakaszban a m űveleti kód és a cím rész k o m p ­
rom isszum át vizsgáljuk. T ekintsünk egy (n + k ) bites u tasításk észletet, ahol k bit a
m űveleti kód és n bit a cím rész. E z 2*- külö n b ö ző u tasítást és 2" m em ó riacím et tesz
1111 1111 1101 zzzz
lehetővé. Egy válto zat leh etn e -dzn + k b it felo sztására, ha A: - 1 bites m űveleti k ó ­ m i m i m o zzzz
d ot és 7/ -I- 1 bit cím részt választanánk. E k k o r feleannyi u tasításu n k lenne, de k é t­
szer ak k o ra m em ó riá t tu d n á n k cím ezni, vagy azonos nagyságú m em ó ria, de k é t­ 16 bites---- 1>-(1111 1111 1111 0000) 16 0 címes
szer ak k o ra felb o n tás leh etn e. A í: -I- 1 bites m űveleti kód és « - 1 bites cím több műveleti 1111 1111 1111 0001
mi mi im 0010 utasítás
utasítást, de kisebb vagy durvább felb o n tású m em ó riát ered m én y ezn e. Igen b o n y o ­ kód
lult kiegyensúlyozás lehetséges a m űveleti kod és a cím rész bitjeinek szám a között.
A z a sém a, am elyet a tov áb b iak b an tárgyalunk, az ún. m űveletikód-kiterjesztés. 1111 1111 1111 1101
1111 1111 1111 1110
nn 1111 n ii nn
15 14 13 12 n 10 9 8 7 6 5 4 3 2 0
15 12 11 8 7 4 3 0
Bitsorszámok

Műveleti kód l.cím 2. cím 3. cím


5.13. ábra. Műveleti kód kiterjesztése: 15 3 címes, 14 2 címes, 31 1címes ésl 6 0 címes műveleti
5.12. ábra. Utasítás 4 bites műveleti kóddal és 4 bites címekkel kód. Azxxxx, yyyy és zzzz mezők 4 bites címeket tartalmaznak
376 5, A Z U T A SfT A SR EN D SZ ER -A R C H ITEK TÚ R A SZ IN T JE 5.3. UTASfTASFORMÁTUMOK 377

16 regisztere van (te h á t 4 b ittel leh et a reg iszte rek et cím ezni), és m in d en a ritm e ­ Bájtok 0-5 1-2 0-1 0-1 0-4 0-4
tikai m űveletet regiszterek k el leh e t végezni. A z egyik tervezési elg o n d o lás szerint 1 PREFIX 1 MŰV. KÓD 1 MÓD 1 SIB ELTOLÁS 1 KÖZVETLEN |
4 bites lenne a m űveleti kód, így 16 d a ra b 3 cím es u tasítá su n k lenne.
A zonban, ha a terv ező k n ek olyan u tasítá sre n d sz e r kell, ahol 15 három cím es,
14 kétcím es, 31 egycím es és 16 0 cím es u tasítás van, a k k o r 0-tól 14-ig k ó d o lh a tn ák
Bitek 6 1 1 Bitek 2 3 3
a h árom cím es u tasításo k at, de a 15. m űveleti k ó d o t m ásk én t é rte lm e z h e tn é k (lásd
5.13. ábra). r UTASÍTÁS 1 1SKÁLA 1 INDEX | BÁZIS 1
A 15. m űveleti k ó d o t úgy kell értelm ezn i, hogy a tényleges m űveleti k ó d o t a
8-15. bitek tartalm azzák , n em p ed ig a 12-15. bitek. A 0 -3 . és 4 -7 . b itek k é t cím et
t
Melyik operandus a forrás?
alkotnak, m in t egyébként is. A 14 d a ra b kétcím es u tasítás m indegyikében a b al o l­ Bájt/szó
dali 4 bit értek e 1111, és a 8-11. b ite k e n re n d re a 0000-tól 1101-ig te rje d ő szám ok
Bitek 2 3 3
vannak. A zok az u tasításo k , am elyekben a bal szélső 4 b ite n 1111, és a 8-1 1 . b ite ­
ken 1110 vagy 1111 van, speciálisan k ezelen d ő k . E ze k e t úgy kell értelm ezn i, hogy 1 MÓD 1 REG 1 R/M 1
a tényleges m űveleti k ó d o t a 4-15. bitek tartalm azzák . E z azt ered m én y ezi, hogy
további 32 m űveleti k ó d u n k lesz, ezek lesznek az egycím es utasításo k . M ivel csak 5.14. ábra. A Pentium 4 utasításformátumai
31 d arab egycím es u tasítás kell, így az 1111 1111 1111 m űveleti k ó d o t úgy é rte l­
m ezzük, hogy a tényleges m űveleti k ó d a 0-15. b iten van, és nincs cím rész. ta tn i. Á ltalá n o san érvényes, hogy h a egy k é to p e ra n d u sú u tasítás egyik o p e ra n d u sa
A hogy h alad tu n k elő re az e ljárásb an , egyre hosszabb m űveleti k ó d o t k ap tu n k : a m e m ó riáb an van, ak k o r a m ásik nem leh et a m em ó riáb an (csak regiszterben).
a három cím csek hossza 4 bit, a kétcím esek é 8 bit, az egycím eseké 12 bit, a 0 cím e- T ehát léte z n ek utasítások, am elyek regiszter-regiszter, regiszter-m em ória, m em ó ­
seké pedig 16 bit lett. ria-reg iszter o p eran d u so k o n dolgoznak, de nincs olyan utasítás, am elynek m in d ­
A m űveleti kód k iterjesztésén ek ö tle te m eg m u ta tta a k o m p ro m isszu m o t a m ű ­ k é t o p e ra n d u sa a m em ó riáb an lenne.
veleti kó d és az egyéb in fo rm áció k szám ára lefoglalt m ezők m é re te k ö zö tt. A gya­ A k o rai In tel-architektúrákban m in d en utasítás m űveleti kódja 1 bájtos volt, b ár
k o rlatb an a m űveleti k ó d k iterjesztése n em olyan világos és szabályos, m in t azt a utasításo k m ódosítására intenzíven használták az úgynevezett prelix b ájt m ódszert.
p éld án k b a n láth a ttu k . V alójában a változó hosszúságú m űveleti k ó d k étfé le m ó ­ E z azt jelenti, hogy van egy extra bájt az utasítás elején, am i m ódosítja a jelentését. A
d on is k ih asználh ató . E lőször, az u tasítá so k hosszát a zo n o sra le h e t v enni, fe lté ­ prefix bájtra példa a WIDE utasítás az IJV M eseten. Szerencsétlen m ódon a fejlődés
telezve, hogy a k evesebb b ite t igénylő m űveleti k ó d o k e se té n a fe n n m a ra d ó bitek során egyszer csak az Intel kifogyott a m űveleti kódokból, és bevezette a OxFF k ite r­
m ás inform ációt tarta lm az n ak . M ásodszor, az átlagos u tasításh o sszt m in im alizál­ je sz tő kódot fescape code), hogy lehetővé tegyen egy m ásodik m űveletikód-bájtot.
ni leh et úgy, hogy a gyakran h asznált k ó d o k hossza rövidebb, a ritk án h aszn áltak é A P en tiu m 4 egyedi bitjei nem sok inform ációt adn ak m agáról az utasításról. Az
p edig hosszabb lesz. egyetlen szerkezet a m űveleti kód m ezőjében bizonyos u tasításoknál, hogy a szél­
A változó hosszú m űveleti kód ö tle té t szélsőségesen kihasználva elérh e tjü k , ső bit jelzi, hogy bájt vagy szó az o p eran d u s, egy m ásik bit pedig azt, hogy a m em ó ­
hogy az átlagos u tasításh o ssz m inim ális legyen azáltal, hogy m in d en u ta sítá st a riáb a vagy reg iszterb e kerül a m űvelet eredm énye. Tehát a m űveleti k ó dot teljesen
legkevesebb szükséges b iten k ó d o lu n k . S zeren csétlen m ó d o n ez azt e red m é n y e z­ d ek ó d o ln i kell an n ak m egh atáro zásáh o z, hogy m ilyen osztályba tarto zik a v ég re­
né, hogy az u tasításo k a t n em leh e tn e m ég b á jth a tá rra sem igazítani. B ár volt olyan h a jta n d ó u tasítás, vagy hogy m ek k o ra a hossza. E z m egnehezíti a nagy h aték o n y ­
ISA (például az Intel 432), am ely ilyen volt, az igazítás annyira fo n to s az u ta s ítá ­ ságú m egvalósítást, mivel m ég ahh o z is intenzív d ek ó d o lást kell végrehajtani, hogy
sok gyors d ek ó d o lása m iatt, hogy a fen ti o p tim alizálás m ajd n em biztosan g az d a­ m e g h atáro zzák a következő utasítás cím ét.
ságtalan. A zo n b an gyakran haszn álják ezt a m ó d szert bájtszinten. S ok m e m ó riára hivatkozó u tasításb an a m űveleti k ó d b á jto t a következő b ájt
ad ja m eg ténylegesen az u tasítást. E z a 8 bit egy 2 bites MÓD és k ét 3 bites REG és
R/M m ező k re oszlik. N éh a az első 3 bit a m űveleti k ó dhoz tartozik, így összesen
5.3.3. A Pentium 4 utasításformátumai 11 b ites a kód. A zonban a 2 bites m ód m ező csak négyféle o p eranduseím zési m ó ­
do t h a tá ro z h a t m eg, és az egyik o p e ra n d u sn a k reg isztern ek kell lennie. L ogikusan
A P entium 4 u tasításfo rm átu m ai nagyon b on y o lu ltak és szabálytalanok, h atféle az EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP regiszterek m indegyike m eg ad h a tó lenne,
változó hosszúságú m ezővel, am elyek közül öt opcionális. A z álta lá n o s sém át az de a m ó d szer m iatt néhány kom bináció tiltott, és speciális esetek re használják.
5.14. á b ra m utatja. E z a helyzet a zért alak u lt ki, m e rt az a rc h ite k tú ra több g e n e ­ N éh án y m ód további b ájto k at igényel, ezek az SIB (Scale, Index, B ase - sk ála, in ­
ráció n keresztül fejlődött, és a k orai fázisban nem é p p e n jó d ö n té se k e t hoztak. dex, b ázis). Ez a sém a nem ideális, de k o m prom isszum ot k épez a visszafelé k om ­
Továbbá, a visszafelé k o m p atib ilitás kényszere m iatt k ésőbb nem le h e te tt változ- patib ilitás k ényszere és az új leh ető ség ek b ev ezethetősége között.
378 5, A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.3. U T A SÍT Á SF O R M Á T U M O K 379

M indezekhez vegyük m ég hozzá, hogy n éh án y u tasítás 1, 2 vagy 4 további b á jto t sik egy -4 0 9 6 és -1-4095 közötti konstans. A 13. bit a k ét fo rm a közül választ (a jobb
tarta lm a z m em o riacím (elto lás) m e g ad á sára, és további 1, 2 vagy 4 b á jto t a k o n s­ szélső b it a 0.). M in d k ét esetb en regiszter a cél. 64 utasítás k ódolásához elegendő
tan s szám ára. hely van az l a form ában; ezek pillanatnyilag későbbi felhasználásra foglaltak.
32 b ites u tasítás esetén nem leh et 32 bites k o n stan st m egadni az u tasításb an . A
SETHI u tasítás 22 b itet ad m eg, a m ara d é k 10 b itet m ásik utasítás adja m eg. E z az

5.3.4. Az UltraSPARC III utasításformátumai egyetlen u tasítás, am elynek ez a form ája.


A n em jö v en d ö lő ugró u tasításo k 3-as form ájúak, ahol a FELT m ező m ondja
Az U ltraSPA R C III ISA m inden u tasítása p o n to san 32 bit és szó h atárra igazított. m eg, hogy m elyik fe ltételt kell ellenőrizni. A z A bit h iv ato tt m egakadályozni a kés­
A z utasítások általáb an egyszerűek, és csak egy akciót h atáro z n ak meg. A tipikus leltetési rés lé tre jö tté t bizonyos feltételek esetén . A jö v en d ö lő u grások form ája
aritm etikai utasítás k ét regisztert specifikál a b e m e n ő o p eran d u so k és egyet az ugyanilyen, kivéve a 19 b ites eltolást, am elyet m á r em lítettü n k .
eredm ény szám ára. Van olyan változat, am ikor az egyik regiszter helyett egy 13 bites A z utolsó form a a CALL utasításé, am ely eljáráshívást végez. E z az utasítás speciá­
előjeles konstanst leh et m egadni. A LOAD u tasítás összeadja k ét regiszter (vagy egy lis, m ert ez az egyetlen, am elyben 30 bit kell a cím m egadására. E rre az ISA -ban csak
regiszter és egy 13 bites konstans) ta rtalm át, így képezve a b etö lte n d ő cella cím ét. 2 bites a m űveleti kód. A célcím a m eg ad o tt cím négyszerese, ami azt eredm ényezi,
A z ered eti SPARC nagyon k o rláto zo tt utasításfo rm ák at tartalm azo tt, m in t azt hogy az a d o tt utasítás helyétől (közelítőleg) ± 2 ^ ‘ bájt tartom ányt leh et címezni.
az 5.15. ábra m utatja. K ésőbb új form ák k eletkeztek. E könyv írásán ak idején 31 a
szám uk, és ez növekszik. (M ikor áll elő vajon egy eég, hogy a világ legösszetettebb
R ISC gépét reklám ozza?) A legtöbb új változat úgy k eletk ezett, hogy bizonyos m e ­ 5.3.5. A 8051 utasításformátumai
zőkből néhány b ite t elhagytak. P éldául az ere d e ti elágazó u tasítás a 3. fo rm át hasz­
n álta 22 bites eltolással. A m ik o r a jö v en d ö lő elágazást b evezették, a 22 bitből 3-at A 8051-es p ro cesszo rn ak h a tféle egyszerű u tasításfo rm ája van, am elyek az 5.16.
levágtak, egyet a jöv en d ö lésre haszn áltak (lesz/nem lesz elágazás), k e ttő t p edig a áb rá n láth ató k . A z u tasításo k hossza 1, 2 vagy 3 bájt. A z első fo rm a csak egyetlen
feltételkód m egad ására alkalm aztak. így m a ra d t 19 bit az eltolásra. Egy m ásik p él­ m űv eleti k ó d o t tartalm az. P éldául az a k k u m u láto r ta rta lm á t növelő utasítás hasz­
da erre a sok adattíp u s-k o n v ertáló u tasítás (például egészből lebeg ő p o n to sb a). Sok nálja ezt a fo rm átu m o t.
ezek közül az Ib form ájú variánsa: az IMMEDIATE m ezőt felb o n to tták egy 5 bites rész­ A 2. fo rm átu m hossza szintén egy bájt, am ely 5 bites m űveleti k ó d o t és 3 bites
re (a forrásregiszter specifikálására) és egy 8 bites részre (további m űveleti k ó d o k ­ reg iszte reim et tartalm az. Ilyen fo rm átu m ú sok utasítás, am ely az a k k u m u láto r és
ra). A z utasításo k többsége azo n b an továbbra is az áb rán láth a tó form ájú m arad t.
M inden utasítás első k ét bitje segít m eg h atáro zn i az u tasítás fo rm ájá t, és m eg ­ Formátum
adja a h ardvernek , hol találja a m űveleti kód m a ra d é k részét, h a van egyáltalán. A z
la fo rm ában regiszter m ind a k ét forrás; az Ib -b en az egyik fo rrásreg iszter, a m á ­
Művkód

mátum 2 5 6 5 1 8 5
la CÉL MŰV. KÓD SRC1 0 FP-M.K, SRC2 3 regiszter 2 Művkód Reg
Ib CÉL MŰV. KÓD SRCl 1 KÖZVETLEN KONSTANS Közvetlen

2 5 3 22 3 Művkód Operandus
2 CÉL M.K. KÖZVETLEN KONSTANS SETHI

2 1 4 3 22 4 Művkód 11 bites cím


A FELT M.K. PC-RELATfV ELTOLÁS UGRÁS

2 30 Művkód 16 bites cím


PC-RELATÍV ELTOLÁS HiVÁS

M.K. = MŰV. KÓD = Műveleti kód FELT = Feltétel Művkód Operandus! Operandus2

5.15. ábra. kz eredeti SPARC utasításformátumai


5.16. ábra. A 8051 utasitásformátumai
380 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5 .4 .C fM Z ÉSI M Ó D S Z E R E K 381

egy reg iszter ta rta lm á n végez valam ilyen m ű v ele te t (p éld áu l reg iszte r és a k k u m u ­ 5.4.3. DIrekt címzés
láto r ta rta lm á n a k ö sszeadása, a d atm o zg atás reg iszte r és a k k u m u lá to r k ö zö tt).
A 3. fo rm átu m n ak egy 1 bájtos o p eran d u sa van. A z o p e ra n d u s leh et közvetlen A m em ó riab eli o p e ran d u s m eg ad ása egyszerűen teljes cím én ek m egadásával
konstans, például am it ak k u m u láto rb a tölt, leh et eltolás, péld áu l az ugrás távolsága, m eg te h e tő . E zt a m ó d o t d ire k t cím zésnek nevezzük. M int a közvetlen cím zés, a
vagy leh et bitsorszám , péld áu l az n. b ite t beállító, tö rlő vagy ellen ő rző utasításban. d ire k t cím zés h aszn álata is k o rláto zo tt; az utasítás m in d en v ég reh ajtása ugyanazt
A 4. és 5. fo rm átu m u g ró és szu b ru tin h ív ó u tasításo k form ája. A l l bites v á lto ­ a m e m ó ria m ező t érinti. T ehát am íg az é rté k változhat, a hely nem , vagyis a d irek t
zat akkor haszn álh ató , h a nincs külső m em ó ria, te h á t m in d en p ro g ram cím 4096 cím zés csak olyan globális változók elé ré sé re haszn álh ató , am elyek cím e fo rd ítás­
alatti (8051) vagy 8192 a latti (8052). 8 K B -nál nagyobb k ülső m em ó ria e se té n a k o r ism ert. A zo n b an sok p ro g ram használ globális v áltozókat, így ez a m ódszer
16 bites fo rm a szükséges. széles k ö rb e n használatos. A n n a k részletezése a késő b b iek b en következik, hogy a
A 6. fo rm átu m ú u tasítá so k n ak k ét 8 b ites o p e ra n d u sa van. S okféle u tasítás ilyen gép h o n n a n tudja, hogy m ely cím ek közvetlenek és m elyek direk tek .
fo rm átu m ú , péld áu l egy 8 b ites k özvetlen o p e ra n d u sn a k a lap k á n lévő m e m ó ria ­
cellába töltése.
5.4.4. Regisztercímzés

A regisztercím zés alapvető en azonos a d irek t cím zéssel, azzal a különbséggel,


5.4. Címzési módszerek hogy m em ó riacím helyett reg iszte rt h a táro z m eg. M ivel a reg iszterek (a gyors el­
érés és a rövid cím m iatt) nagyon fontosak, a legtöbb szám ító g ép en ez a cím zési
A legtöbb u tasítá sn a k van o p eran d u sa , e z é rt kell valam ilyen m ó d szer az o p e ra n ­ m ó d a leggyakoribb. Sok fo rd ító p ro g ram alap o san m egnézi, hogy m ely változókat
dus h elyének m eg ad á sára. E zt nevezzük cím zésnek, és ezt fogjuk a k ö vetkezőkben h aszn álják a leg tö b b et (például ciklusváltozók), és ezek et regiszterekbe tölti.
vizsgálni. E z a cím zési m ó d egyszerűen reg iszte rm ó d k én t ism ert. A tö ltő /táro ló a rch itek tú ­
rák, m in t az U ltraS PA R C III, m ajd n em kizárólag ezt a cím zési m ó d o t alkalm azzák.
C sak az olyan utasításo k té rn e k el ettől, am elyek m em óriából regiszterbe (LOAD),
5.4.1. Címzési módok illetve regiszterből m em ó riáb a tö lten ek (STORE). D e m ég ezeknél az utasításoknál
is az egyik o p eran d u s regiszter, ah o n n an , illetve ahova az o p e ran d u s töltődik.
E d d ig nem sok figyelm et szen teltü n k a n n ak , hogy a cím rcsz b itjeit hogyan é rte l­
m ezik az o p e ra n d u so k cím én ek m eg h atáro zásáh o z. Itt az idő, hogy rá té rjü n k e n ­
n ek a té m á n a k tan u lm án y o zására, am elyet cím zési m ó d n ak nevezünk. 5.4.5. Regíszter-indirekt címzés

E b b e n a cím zési m ó d b an is a m em óriából olvassuk a specifikált o p eran d u st, vagy


5.4.2. Közvetlen címzés o d a írjuk, m int a d irek t cím zés esetén, de nem közvetlenül a cím e van adva az u ta ­
sításban. H elyette a cím et egy regiszter tartalm azza. H a egy cím et ilyen m ódon
A z o p e ra n d u s specifikációjának a legegyszerűbb m ó d ja, h a az o p e ra n d u st közvet­ a d u n k m eg, m u ta tó n a k hívjuk. A regiszter-indirekt cím zés nagy előnye, hogy úgy
lenül az u tasításb an ad ju k m eg, n em p ed ig a cím ét vagy m ás in fo rm áció t, am ely hivatkozik a m em ó riára, hogy an n ak cím ét nem kell az u tasításb an tárolni. Továbbá,
leírja, hogy az o p e ra n d u s hol találh ató . A z ilyen o p e ra n d u st közvetlen operandus­ az u tasítás különböző v égrehajtása m ás-m ás m em óriam ezőre hivatkozhat.
nak nevezzük, m ert a u to m a tik u sa n b e tö ltő d ik az utasítással, te h á t azo n n al h o zzá­ A n n a k b e m u ta tá sá ra , hogy m iért előnyös ez, tek in tsü k azt a ciklust, am ely 1024
fé rh e tő felhaszn álásra. A z 5.17. áb rá n egy leh etség es k özvetlen u tasítás láth ató , elem ű egydim enziós tö m b elem ein m egy végig, hogy kiszám ítsa összegüket az Rí
am ely az Rí regiszterb e a 4 k o n stan st tölti.
A közvetlen cím zésnek az a lényege, hogy n em kíván k ü lö n m em ó riah iv atk o zást MOV R1,#0 ;gyűjtsük az eredményt Rí -ben, kezdetben ez 0
az o p e ra n d u s kiolvasására. A h átrán y a, hogy ily m ó d o n csak k o n stan st le h e t m eg ­ MOV R2,#A ;R2 = azAtöm bcím e
adni. Továbbá, az é rté k e k szám a k o rlá to z o tt a m ező m éretév el. M égis sok arch i­ MOV R3,#A+4096 ;R3 = az A tömb utolsó eleme utáni cím
te k tú ra használja ezt a tech n ik á t kis egész konstan so k k al. LOOP: ADD R1,(R2) ;regiszter-indirekt címzés az operandus elérésére
ADD R2,#4 ;növeijük R2 tartalmát 4-gyel
CMP R2,R3 ;végeztünk?
MOV Rí
BLT LOOP ;ha R2 < R3, akkor nem végeztünk, folytassuk tovább

5.17. ábra. Utasítás a 4 közvetlen konstansnak az Rí regiszterbe töltésére 5.18. ábra. Általános assembly program tömb elemeinek összegzésére
382 5. A Z U T A SfT A SR EN D SZ ER -A R C H ITEK TÚ R A SZ IN T JE 5.4. c í m z é s i m ó d s z e r e k 383

regiszterben. A cikluson kívül valam ely regiszter, m o n d ju k R2 vegye fel a töm b e l­ giszterhez képest címzik. A zt a cím zési m ódot, am ikor a hivatkozott m em ória cím et
ső elem én ek cím ét, egy m ásik, m o n d ju k R3 ped ig a tö m b u to lsó elem e u tá n i cím et. egy regiszter értéke és egy konstans határozza m eg, indexelt cím zésnek nevezzük.
H a az elem ek 4 b ájto s egész szám ok, és az első elem c ím e z i, ak k o r az R3 ta rta l­ IJV M e setén a lokális változók elérése egy regiszterben ta lá lh a tó m em ó riáb a
m án ak + 4096-nak kell lennie. E szám ítás tipikus assem bly k ó d ját lá th a tju k az m u ta tó m u ta tó (LV) és egy kicsi eltolási é rté k m egadásával tö rtén ik , m int az a 4.18.
5.18. áb rán , kétcím es gép e setére. á b rá n lá th a tó . A zo n b an m ásk ép p en is haszn álh ató , leh et a m u ta tó az u tasításban
E b b e n a kis p ro g ra m b a n tö b b cím zési m ó d o t is h aszn áltu n k . A z első h á ro m u ta ­ és az elto lási é rté k a regiszterben. T ekintsük a következő számítá.st an n ak b e m u ­
sítás reg iszte rm ó d o t alk alm az az első (cél) o p e ra n d u sra , és k özvetlen cím zést a ta tá sá ra , hogy ez hogyan is m űködik. A d o tt az^ l és B , egyenkén t 1024 elem et ta r­
m ásodik o p e ra n d u sra (a # je l k o n sta n st jelö l). A m áso d ik u tasítás az^l tö m b cím ét talm azó töm b. Ki ak arju k szám ítani, hogy van-e legalább egy olyan fi pár, hogy
teszi az R2 regiszterb e, és n em az A ta rta lm á t. H aso n ló a n , a h arm ad ik u tasítás a egyikük sem 0. E h h ez kiszám ítjuk slzA^ A N D fi logikai szo rzatokat, m ajd k ép ez­
töm b u tán i első cím et teszi az R3-ba. zük ezek O R m ű v elettel v ett összegét. A z egyik leh ető ség az lenne, hogy az egyik
É rd em e s m egjegyezni, hogy a ciklusm ag u tasításai n em tarta lm a z n a k m e m ó ­ reg iszterb e ra k n á n k a z ^ l, egy m ásikba a fi tö m b cím ét, és ciklusban együtt m e n ­
riacím et. A negyedik u tasításb an reg iszteres és re g iszter-in d irek t cím zést h asz­ n é n k végig a k ét töm b elem ein, m in t ahogy azt egy tö m b ese té re az 5.18. áb rán lá t­
nálunk. A z ö tö d ik u tasítás reg iszteres és k özvetlen cím zésű, a h ato d ik ped ig k é t­ tuk. E z b izto san já rh a tó út, de jo b b a t is tu d u n k ; ezt szem lélteti az 5.19. ábra.
szeresen regiszteres. A BLT u tasítás leh et, hogy m e m ó riacím et tartalm az, de való ­
színűbb, hogy az u g rás h elyéhez relatív an speciíikálja, m e rt 8 bites eltolással m eg ­ MOV R1,#0 .gyűjtsük az OR eredményt Rí-ben, kezdetben 0
ad h a tó távolságra ug rik a BLT helyétől. A m em ó riah iv atk o záso k at elkerülve rövid MOV R2,#0 ;R2 = az A[i] AND B[i] szorzat indexe
és gyors ciklust k észítettü n k . M ellék ese n , ez a p ro g ram valódi P en tiu m 4 p ro g ram , MOV R3,#4096 ;az első túl nagy Index
LOOP: MOV R4,A(R2) ;R4 = A[l]
eltekintve attól, hogy a reg iszte re k e t és az u tasítá so k at a k önnyebb o lv ash ató ­
AND R4,B(R2) ;R4 = A[i] ANDB[il
ság k ed v éért átn ev eztü k , m e rt a P en tiu m 4 assem bly nyelve b izarr, a gép k o ráb b i
OR R1,R4 ;Rl-be a logikai szorzatok OR összege
8088-as életéb ő l m a ra d t ránk.
ADD R2,#4 ;l = I + 4 (a lépésköz egy szó = 4 bájt)
C sak elm életileg érd ek es, hogy ezt a szám ítást reg iszter-in d irek t cím zés n élkül CMP R2,R3 .-végeztünk?
is elvégezhetjük. A ciklus ta rta lm a z h a tn á y l-n a k R l-hez való h o zzáad ását: BLT LOOP ;ha R2 < R3, folytassuk

ADD R1,A 5.19. ábra. Általános assembly program 1024 elemű tömbök AND S logikai szorzatának,
majd ezek OR összegének kiszámítására
A ztán m in d en ism étlésb en az u ta sítá st m ag át n ö v eln én k 4-gyel, és ezzel a k ö v et­
kezőt kapnánk; A p ro g ram m ű k ö d ése nyilvánvaló. N égy reg isztert használunk;

ADD Rl,A+4 1. R í: a szo rzatok O R összegét tartalm azza.


2. R2: az i index, am ely a tö m b ö k elem ein való végighaladáshoz kell.
É s így tovább, am íg végig n em értü n k . 3. R3: a 4096 k onstans, am ely a legkisebb nem érvényes index.
A z olyan p ro g ram o t, m in t ez is, am ely saját m ag át m ó d o sítja, önm ódosító 4. R4: seg éd regiszter, am ely a logikai szorzatok k iszám ításához kell.
programnak nevezzük. A z ö tle t n em m ástól, m in t N e u m a n n Ján o stó l e re d , és
nagyon is é rte lm e volt a k o rai g ép ek en , ah o l n em volt reg iszte r-in d irek t cím zés. A reg iszte rek inicializálása u tá n lép ü n k be a h at u tasítást tartalm azó ciklusm agba.
N ap jain k b an az ö n m ó d o sító p ro g ra m re tte n e te s stílu sn ak tek in th e tő , és nagyon A L O O P cím kéjű u tasítás b etö lti azA [i] é rté k é t az R4 regiszterbe. A fo rrás cím zé­
n eh éz m eg érten i a m ű k ö d ését. M egjegyzendő, hogy az ilyen p ro g ra m o t n em le­ se itt indexelt. A z R2 reg iszter és a z A cím én ek (konstans, közvetlen o p e ra n d u s) az
h e t m egosztani tö b b p ro cesszo r kö zö tt. Továbbá n em m ű k ö d ik h elyesen 1. szintű összege ad ja a cím et. A k é t é rté k összege adja a m em ó ria cím ét, de n em táro ló d ik
g y o rsító tárral ren d e lk e z ő g ép ek en , ha az 1 gyo rsító tárb ó l n em tö rté n ik visszaírás a felh aszn áló által lá th a tó egyetlen regiszterben sem . A
(m ert a tervezők fe lté te lez té k , hogy senki n em ír ö n m ó d o sító p ro g ram o t).
MOV R4,A(R2)

5.4.6. Indexelt címzés jelö lés azt je len ti, hogy a cél cím zése reg iszterm ó d ú az R4-gyel, a fo rrás pedig in­
dexelt m ó d ú az A eltolással és R2 regiszterrel. H a m o n d ju k az A érték e 124 300,
G yakran jól kihasználható, ha ism erjük egy m em ória cím ét egy regiszter tartalm áh o z ak k o r az u tasítás az 5.20. áb rá n lá th a tó fo rm ájú lehet.
képest. L áttu n k m á r e rre p éld át az IJV M esetén, ahol a lokális változókat az LV re-
384 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5 .4 ,C fM Z ÉSI M Ó D S Z E R E K 385

MOV R4 R2 124300 F o rd íto tt le n g y e l je lö lé s

5.20. ábra. A MOV R4,A(R2) u ta s ítá s e g y ik le h e tsé g e s rep re ze n tá c ió ja A m atem atik áb an régi hagyom ány, hogy a m űvelet jelét az operan d u so k közé ír­
ják, m intjc -I- y, nem pedig utánuk, m intjc}' -H. H a a m ű v e le tije i az o p erandusok
A ciklusm ag első v ég reh ajtásak o r R2 é rté k e 0 (m e rt így inicializáltuk), te h á t a között van, infix jelölésről beszélünk. H a a m űveleti jel az o p eran d u so k u tán áll,
m em óriacím a zA ^ cím e lesz, am ely 124300. Ez a szó tö ltő d ik be R4-be, a ciklusm ag akkor postíix vagy fordított lengyel jelölés az elnevezés, a lengyel logikatudós J.
következő v ég reh a jtá sa k o r az A ^ az 124304 cím ről és így tovább. Lukasiewicz (1958) után, aki kim u tatta enn ek a jelölésm ódnak a jó tulajdonságait.
M int ahogy ko ráb b an ígértük, itt az u tasításb an van az eltolási érték : a m em ó ­ A fo rd íto tt lengyel jelö lésn ek szám os előnye van az infix jelöléssel szem ben
riáb a m u tató cím, és a reg iszterb en egy kis egész szám van, am elyet lép ésen k én t a lgebrai k ifejezések esetén . E lő szö r is, m inden form ula k ifejezhető zárójel n él­
növelünk. E z a form a term é sz ete sen m egkívánja, hogy az u tasításb an az eltolási kül. M ásodszor, kényelm esen k ié rték elh ető k a fo rm u lák szám ítógéppel, verem
é rté k e t tartalm azó m ező elég nagy legyen, hogy a m em ó riacín i b eleférjen . E z a használatával. H arm ad szo r, az infix o p e rá to ro k ra elsőbbségi szabály vonatkozik,
m ódszer nem olyan hatékony, m in t a m ásik, m égis gyakran ez a legjobb m egoldás. am ely tetsző leges és nem kívánatos. P éldául, tudjuk, hogy a z a x h + c je len tése
(a X b) + c és n em a x {b + c), mivel a szorzás nagyobb p rio ritású , m int az össze­
adás. Vajon nagyobb p rio ritásü -e a b a lra léptetés, m int a logikai AND? Ki tudja.
5.4.7. Bázís-índex címzési mód A fo rd íto tt lengyel jelö lés kiküszöböli ezt a kellem etlenséget.
S zám os algoritm us ism ert infix form ulák fo rd íto tt lengyel jelö lésre k o n v ertálá­
N éhány gép rend elk ezik olyan cím zési m ó d d al, am ely úgy h atá ro z z a m eg a h iv at­ sára. A z itt k övetkező algoritm us E. W. D ijk stra ö tle té n alapszik. Tegyük fel, hogy
k o zo tt m em ó ria cím ét, hogy összead ja k ét reg iszter ta rta lm á t, és (esetleg ) eh h ez a fo rm u la a k övetkező je le k e t tartalm azh atja; változók, diadikus (k éto p e ra n d u sú )
hozzáad egy eltolási é rté k e t. N éh a ezt a m ó d o t bázis-index cím zésnek nevezik. m ű veletek: + - * / , továb bá a bal és jo b b zárójelek. A fo rm u la végeinek jelzésére
Az egyik regiszte r a bázis, a m ásik az index. Ez a m ó d h asznos lenne esetü n k b en . a fo rm u la elé és u tá n a J_ je le t tesszük.
A cikluson kívül az R5-be te n n é n k ^ cím ét, az R6-ba p ed ig B cím ét. E k k o r a LOOP-
nál lévő és az azt k övető u ta sítá st a k ö v etk ez ő re cserélh etn én k .

LOOP: MOV R4,(R2+R5)


ADD R4,(R2+R6) \ N e w York

váltó

H a lenne olyan cím zési m ód, am ely k é t reg iszter ö sszegéhez k ép est elto lás nélküli
in d irek t hivatkozást való sítan a m eg, az ideális lenne. Vagy m ég az is seg íten e, ha 8
bites eltolást leh etn e m egadni, m ert ak k o r 0-t a d h a tn á n k meg. H a azo n b an az e l­
tolás m indig 32 bites, ak k o r nem n yerünk sem m it. A gy ak o rlatb an azok a gépek,
am elyek alkalm azzák ezt a m ó d o t, általáb an 8 és 16 b ites elto lást is b iztosítanak.

5.4.8. Veremcímzés

M ár k o ráb b an m egjegyeztük, m ennyire kívánatos, hogy a gépi u tasítás annyira rö ­



vid legyen, am en n y ire csak leh et. A végsőkig red u k álv a a cím hosszát, e lju tu n k a
0 cím es utasításh o z. M in t m á r lá ttu k a 4. fejezetb en , 0 cím es u tasítás leh etség es a 5.21. ábra. Minden vasúti kocsi a fordított lengyeljelölésre konvertálandó infix formula
v erem m el kap cso latb an , p éld áu l ilyen az lADD. E b b en a szakaszban alap o sab b an egyjelét tartalmazza
m egvizsgáljuk a verem cím zést.
A z 5.21. áb ra olyan vasúti pályát m u tat, am ely N ew Y orkból K aliforniába vezet,
k ö zép en Texas felé elágazá,ssal. A fo rm u la m inden je lé t egy kocsi reprezentálja.
A v o n at nyugat felé (b alra) halad. A m ik o r egy kocsi a v áltóhoz érkezik, m eg kell
állnia elő tte , hogy m egkérdezze, közvetlenül m enjen-e K aliforniába, vagy Texas
fele k erü ljö n. A zok a kocsik, am elyek változót tartalm azn ak , m indig közvedenül
386 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.4. C ÍM Z É SI M Ó D S Z E R E K 387

K alifornia felé m en n ek , so h asem Texas felé. A z összes tö bbi k ocsinak m eg kell A válto zó k so rren d je az infix és a prefix jelö lésb en m egegyezik. A m űveleti jelek
néznie, hogy mi a Tfexas felé m en ő szerelvény u to lsó kocsija, m ielő tt a válton á t­ so rre n d je azo nban nem m indig azonos. A fo rd íto tt lengyel jelö lésb en a m űveleti
haladna. jele k olyan so rre n d b e n szerep eln ek , am ilyen so rren d b en azok v ég reh ajtó d n ak a
A z 5.22. áb ra táb lázata m u tatja, hogy m i a teen d ő , an n ak függvényében, hogy m i­ kifejezés k iérték elések o r. A z 5.23. á b ra n éh án y p éld át m u ta t infix és a neki m eg ­
lyen kocsi áll a váltónál, és mi az utolsó kocsija a Texas felé m en ő szerelvénynek. A z felelő fo rd íto tt lengyel jelö lésre.
első 1 jel m indig Tfexas felé megy. A táb lázatb an a szám ok jelen tése a következő:

1. A váltó elő tt álló kocsi Texas felé m enjen. Fordított lengyel jelölésű form ulák kiértékelése
2. A Texas felé irán y íto tt szerelvény u to lsó kocsija jö jjö n vissza, és K alifo rn ia irá ­
nyába m enjen. A fo rd íto tt lengyel jelö lés ideális fo rm u lák szám ítógépes k ié rték elésére verem
3. A váltó e lő tt álló és a Texas felé irán y íto tt szerelvény u to lsó kocsija tű n jö n el h asználatával. A form ula n jelből áll, m indegyik vagy o p eran d u s, vagy m űveleti jel.
(tö rlő d jö n ). A fo rd íto tt lengyel jelö lésű fo rm u lán a k v erem m el való kiérték elése egyszerű algo­
4. Stop. A K alifo rn iá b a irá n y íto tt szerelvény a fo rd íto tt lengyel jelö lést re p re z e n ­ ritm us. O lvassuk a fo rm u lát b alró l jo b b ra. H a o p e ran d u sh o z érü n k , rakjuk a ve­
tálja. rem b e. H a az aktuális je l m ű v e le tije i, hajtsu k végre a m egfelelő m űveletet.
5. Stop. H ibás az e re d e ti fo rm u la, n em szabályos a zárójelezés. A z 5.24. á b ra a

A váltó előtt álló kocsi (8H-2x5)/(1 -H3X2-4)


1 + - (
1 1 1 fo rm u la k ié rté k e lé sé t m u ta tja U V M -b en . A z e n n ek m egfelelő fo rd íto tt lengyel je ­
-L 4 1 1 5
'o í=
! lölés a következő:
c o + 2 2 2 1 1 1 2
01
E
lo j ö - 2 2 2 1 1 1 2 825X+1 ! X + 4 -/
^ ?
ifi ^ X 2 2 2 2 2 1 2
■0) Lépés A maradék formula Utasítás Verem
2 2 2 2 2 1 2
< a 1 825X-I-1 3 2x-^4 -/ BIPU5H8 8
5 1 1 1 1 1 3 2 25X-I-1 32X-I-4-/ BIPUSH 2 8,2
3 Sx-l-l 32X-I-4-/ BIPUSH5 8, 2,5
5.22. ábra. Döntési táblázat a fordított lengyeljelölésre konvertáló algoritmushoz
4 x+ 132x+ 4-/ IMUL 8,10
5 -H 1 3 2 x + 4 - / lADD 18
M inden lépés u tá n lijra össze kell h aso n lítan i a váltó e lő tt álló kocsit és a Texas
6 1 3 2 x -h 4 - / BIPUSH 1 18,1
felé irányított szerelvény uto lsó kocsiját. A váltó e lő tt álló kocsi leh e t ugyanaz, m int
az előző ö sszehasonlításban, vagy leh e t az u tá n a következő. A z eljárás a 4. lépéssel 7 32X-I-4-/ BIPUSH 3 18,1,3

ér véget. Vegyük észre, hogy a Texas felé v ezető pálya a verem , a Texas felé irányí­ 8 2 x -h 4 -/ BIPUSH 2 18,1,3,2
tás a verem be m űv elet (p u sh ), a Texas felé irán y íto tt szerelvény u tolsó kocsijának 9 x + 4 -/ IMUL 18,1,6
K alifornia felé irányítása (vagy e ltü n te té se ) pedig a v erem ből m űvelet (pop). 10 -1-4-/ lADD 18,7
11 4-/ BIPUSH 4 18, 7,4
Infix Fordított lengyel jelölés 12 -/ ISUB 18,3
A +BxC ABCx + 13 / IDIV 6
A x B-h C ABxC-i-
AxB-i-C xD AB X CD X 4 - 5.24. ábra. Fordított lengyeljelölésű formula kiértékelése veremmel
(A B) / (C - D) AB-^CD-/
A x B/C ABxC / A z áb rá n b e v ezettü k az IMUL és IDIV u tasításo k at, am elyek a szorzás, illetve az osz­

((A + B) X C -(- D)/(E -(-F 4 - G) AB-i-CxD-^EF-t-G-i-/ tás m ű v ele tét végzik. A verem te te jé n lévő o p e ran d u s a jobb, nem pedig a bal o p e ­
ran d u s. E z fo n to s az osztás (és kivonás) esetén , mivel az o p e ra n d u so k so rren d je
5.23. ábra. Néhány példa infix és a neki megfelelő fordított lengyel jelölésű formulára lényeges (n em úgy, m int az összeadásnál és a szorzásnál). M ás szóval, az IDIV uta-
5.4. c í m z é s i m ó d s z e r e k 389
388 5. A Z u t a s í t á s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e

sítást k ö rü ltek in tő e n definiáltuk, elő szö r az o sz tan d ő t kell a v erem b e ten n i, m ajd regiszter, h an em egy 13 bites közvetlen adat, A LOAD és STORE utasítások is hasz­
az osztót, és ezu tá n kell elvégezni a m ű v eletet, hogy helyes ered m én y t kapjunk. n á lh a tn á k ezt a form át, hogy indexm ódban hivatkozzanak a m em ó riára.
Vegyük észre, hogy m ilyen egyszerű k ó d o t gen eráln i az IJV M -re fo rd íto tt lengyel K ellen e n éhány speciális utasítás, például feltételes elágazások, de ezek b eil­
jelölésből: csak olvassuk b alról jo b b ra a fo rm u lát, és je le n k é n t ad ju n k ki egy u ta ­ leszth ető k len n én e k a 3. form ába. P éldául egy-egy m űveleti kód kellene m in d en
sítást. H a a jel k o n stan s vagy v áltozó, a k k o r olyan u ta sítá st kell k iadni, am ely azt (fe lté teles) elágazás, eljáráshívás stb. szám ára, 24 bites helyet hagyva a PC relatív
a verem b e teszi. H a a jel m űveleti jel, ak k o r a m ű v ele te t m egvalósító u ta sítá st kell eltolási é rték n ek . F eltéve, hogy az eltolási é rté k szóban é rte n d ő , így az átfo g h ató
kiadni. ta rto m á n y ± 3 2 M B lenne. U gyancsak kellene ilyen 3. fo rm átu m ú LOAD és STORE
u tasítás is. E z n em lenne teljesen általán o s (például csak RO-ba leh etn e b etö lten i,
vagy RO-ból le h e tn e táro ln i), de csak ritk án használnák.
5.4.9. Címzési módok elágazó utasításokban
Bits 8 1 5 5 5 8
E d d ig olyan u tasítá so k at vizsgáltunk, am elyek ad ato k o n végeznek m ű v eletek et. Az 1 MÚVKÓD 0 c Cl FORRÁS1 FORRÁS2
elágazó (és eljáráshívó) u tasításo k szintén igényelnek olyan cím zési m ó d o t, am ely-
lyel m eg lehet adni az ugrási hely cím ét. A z eddig tan u lm án y o zo tt cím zési m ódok
2 MŰVKÓD 1 CÉL fo r r As i ELTOLÁS
nagyrészt elágazó u tasításo k ra is alk alm azhatók. A d irekt cím zés biztosan le h etsé ­
ges, am ikor a célcím et teljes eg észében közvetlenül az u tasításb an adjuk meg.
A zo n b an m ás cím zési m ó d o k is é rtelm esek . A reg iszte r-in d irek t cím zés le h e tő ­
3 MŰVKÓD ELTOLÁS
vé teszi, hogy a célcím et elő re kiszám ítsuk, reg iszterb en táro lju k , és így végezzük
az ugrást. E z a m ó d nyújtja a legnagyobb h ajlékonyságot, m e rt a célcím et futási
id ő b en szám íthatju k ki. E z p ersze a legjobb m ó d ja an n ak is, hogy olyan h ib á t k ö ­ 5.25. ábra. Egy egyszerű háromcímes gép utasításformáinak tervezete
vessünk el, am elyet m ajd n em le h e te tle n k id eríten i.
További leh ető ség az indexelt cím zés, am ik o r a célcím egy reg iszte rh ez k ép est T ekintsük m ost egy kétcím es gép terv ezését, am elynek m in d k ét o p e ra n d u sa m e ­
a d o tt eltolási értek . E n n e k ugyanazok a tu lajd o n ság ai, m int a reg iszte r-in d irek t m ó riaszó le h etn e. E z t m u tatja az 5.26. ábra. E z a gép k ép es összeadni regisztert
cím zésnek. és m em ó riaszó t, m em ó riaszó t és regisztert, reg iszte rt és regisztert, illetve m em ó ­
A PC-relatív cím zés a m ásik leh ető ség . E b b e n a m ó d b an az elto lási é rté k (elő je­ riaszó t és m em óriaszót. Jelen leg a m em ó riaelérés viszonylag költséges, így ez a
les egész) h ozzáad ó d ik az u tasításszám láló érté k éh ez , így képezve az u grási cím et. terv n em tú l n épszerű. A zo n b an , ha a jövőbeli tech n o ló g iai fejlődés olcsóvá teszi
V alójában ez egyszerűen indexelt cím zés, ahol a PC a regiszter. a g y o rsító tár és a m em ó ria elérését, ak k o r különösen egyszerű és haték o n y fo rd í­
tást tesz m ajd lehetővé. A P D P -1 1 és VAX gépek, am elyek k ét évtizeden k eresz­
tül u ra ltá k a m iniszám ítógépek világát, hasonló felép ítésű ek voltak.
M o st is 8 bit van a m űveleti kód szám ára, de m ost 12-12 biten leh et m egadni a
5.4.10. A műveleti kód és a címzési mód ortogonalitása
fo rrá s és a cél cím ét. M in d en o p e ra n d u s szám ára 3 bit m o n d ja m eg a m ódot, 5 bit
S zoftverszem pontból az u tasítá so k és a cím zési m ó d o k szabályos szerk ezete le n ­ a reg iszte rt és 4 bit az eltolást. A 3 m ó d b ittel m e g k ü lö n b ö zteth etn én k a közvetlen,
n e kívánatos a legkevesebb u tasítás fo rm átu m m al. Ilyen szerk ezet könnyűvé te n n é direkt, regiszter-, reg iszter-in d irek t, index- és verem cím zési m ó d o k at, továbbá
a fo rd ító p ro g ram o k szám ára, hogy jó k ó d o t g en eráljan ak . M in d en m űveleti kód m a ra d n a m ég k é t leh ető ség később b ev ezeten d ő m ód szám ára. E z világos és sza­
m eg en g ed n e m in d en értelm e s cím zési m ó d o t. Továbbá, m in d en reg iszte r e lé rh e tő bályos terv ezet, am ely hajlékony, és könnyű rá fo rd ítan i, k ülönösen, ha az utasí­
le h e tn e m inden reg iszte rm ó d b an [b eleértve a k e re tm u ta tó t (FP), a v e re m m u ta tó t tásszám láló, a v erem m u tató és a lokális változók regisztere m ind általán o s regisz­
(SP) és az u tasításszám láló t (PC )]. te r, am elyek egyform án elérh ető k .
E gy három cím es gép világos te rv ezésére m u ta t p é ld á t az 5.25. á b ra 32 bites u ta ­
sításokkal. A leh etség es m űveleti k ó d o k szám a 256. A z 1. fo rm á tu m b an m in d en Bitek 8 3 5 4 3 5 4
utasítás egy cél- és k ét fo rrásreg isztert tartalm az. M in d en aritm etik ai-lo g ik ai u ta ­ MŰVKÓD MÓD REG ELTOLÁS MÓD REG ELTOLÁS
sítás ilyen fo rm átu m ú . 1 ” I
1 Feltételes 32 bites direl<t cím vagy eltolás 1
A fel nem haszn ált 8 bites m ező az u tasítás végén további u tasításm eg k ü lö n b ö z­ 1
1 Feltételes 32 bites direkt cím vagy eltolás
te té st tesz lehetővé. P éld áu l, egyetlen m űveleti kód le h e tn e m in d en leb eg ő p o n to s
u tasításra, és ez a m ező je le z h e tn é a k ü lö n b ség eket. H a a 23. b it 1-es, ak k o r ez azt
je le n te n é , hogy a 2. u ta sításfo rm a érvényes, azaz a m áso d ik o p e ra n d u s m o st n em 5.26. ábra. Egy egyszerű kétcímes gép utasítás formáinak tervezete
390 5. A Z u t a s í t á s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5.4. C ÍM Z É SI M Ó D S Z E R E K 391

A z egyetlen p ro b lém a, hogy a d irek t cím zéshez tö b b bit kell. A P D P -1 1 és a MÓD


VAX azt a m ego ld ást v álaszto tta, hogy további szót illesztett az u tasításh o z m in ­ R/M 00 01 10 11
den közvetlenül cím zett o p e ra n d u s szám ára. Szintén m eg te h e tn é n k , hogy v alam e­ 000 M[EAX] M[EAX -(-0FFSET8] M [EA X-1-OFFSET32] EAX vagyAL
lyik indexm ód esetén 32 bites elto lást alkalm azzunk. így a legrosszabb esetb en ,
001 M[ECX] M[ECX 0FFSET8] M[ECX -(-OFFSET32] ECX vagy CL
p éld áu l m em ó ria-m em ó ria ö sszead ásán ál (A D D ), ha m in d k ét o p e ra n d u s kö z­
010 M[EDX] M[EDX 0FFSET8] M [ED X-(-OFFSET32] EDX vagy DL
vetlenül cím zett, az u tasítás 96 bit hosszú len n e, am i h áro m sínciklust igényelne.
011 M[EBX] M [EBX -(-0FFSET8] M[EBX-H OFFSET32] EBX vagy BL
M ásrészt a legtöbb R lS C -terv leg aláb b 96 b ite t igényel két m em ó riaszó ö sszead á­
100 SIB SIB0FFSET8-cal SIBOFFSET32-vel ESP vagy AH
sára és legalább négy sínciklust.
Sok altern atív m egoldása leh e t az 5.26. á b rá n b e m u ta to ttn a k . T ervezetünk sze­ 101 Direkt M[EBP-H 0FFSET8] M [E B P-(-OFFSET32] EBP vagy CH
rin t az 110 M[ESI] M [ESU 0 FFSET 8 j M [ESI-(-OFFSET32] ESI vagy DH
m M[EDI] M[EDI-(-0FFSET8] M [ED I-(-OFFSET32] EDI vagy BH
i= j;
5.27. ábra. A Pentium 4 32 bites címzési módjai. M[x] azx című memóriaszó
utasítás vég reh ajtása egyetlen 32 bites utasítással m eg o ld h ató , feltéve, hogy i és j
m indegyike az első 16 lokális változó k ö zö tt van. M ásrészt, m in d en olyan változó, N éh án y m ó d b an egy további bájt, az úgynevezett SIB (Scale, Index, B ase) k ö ­
am ely nincs az első 16 lokális változó k özött, 32 bites eltolási é rté k e t követel. Egy veti a MODE b á jto t (lásd 5.14. ábra). H a a SIB b ájt m eg van adva, akkor az o p e ­
m ásik m egoldás leh etn e egy további u tasítá sfo rm a egyetlen 8 b ites eltolással a két ra n d u s cím ét a k ö v etkezőképpen kell kiszám ítani; szorozni kell az indexregisztert
4 b ites helyett, plusz egy szabály, am ely szerin t a fo rrás és a cél közül csak az egyik 1-gyel, 2-vel, 4-gyel vagy 8-cal (a SCALE-től függően), ezt hozzá kell adni a bázis­
h aszn álh atn á ezt a m ód o t. A lehetó'ségek n em k o rlá to z o ttak , és a g ép terv ező k n ek reg iszterh ez, és MOD-tól függően eh h ez kell ad n i a 8 vagy 32 bites eltolási érték et.
sok tényezőt kell figyelniük ah h o z, hogy jó ered m én y h ez ju ssan ak . M ajd n em m in d en reg iszter haszn álh ató bázis- és indexregiszterként.
A SIB m ó d tö m b elem ek cím zése e setén hasznos. P éld ak én t tekintsük a k ö v et­
kező Jav a-u tasítást:
5.4.11. A Pentium 4 címzési módjai
fór (i = 0; i < n ;!-(-(-) a[i] = 0;
A P entium 4 cím zési m ó d jai nagyon szabálytalanok, és attól is függnek, hogy 16
vagy 32 bites az u tasítás. A to v áb b iak b an e ltek in tü n k a 16 b ites m ó d tó l, a 32 bites ahol az a tö m b az aktuális eljárásra lokális, és 4 bájto s egészeket tartalm az. T ip ik u ­
is eléggé rossz. A tá m o g a to tt m ódok: közvetlen, d irek t, regiszter-, regiszter-indi- san az EBP h aszn álato s a lokális változókat ta rtalm azó v erem k eret kezdőcím ének
rekt, indexelt cím zés és m ég egy speciális m ód tö m b e lc m e k cím zésére. A z a gond, m eg ad ására; ezt m u tatja az 5.28. ábra. A fo rd ító i é rté k é t az EAX regiszterben ta r t­
hogy nem m inden m ód a lk alm azh ató m in d en u tasításb an , és n em m in d en regisz­ hatja. A zfl[/] elérése végett a SIB m ó d o t használhatja, ahol az o p e ran d u s 4 x EAX,
te r h aszn álh ató m in d en m ó d b an . E z nagyon m eg n eh e zíti a fo rd ító p ro g ram -k észí­ EBP és 8 összege. így egyetlen utasítás elvégezné a m unkát.
tő k dolgát, és gyenge k ó d o t eredm ényez.
A z 5.14. ábrán a MODE bájt vezérli a cím zési m ódot. A z egyik o p e ra n d u st a MÓD
és az R/M m ezők h atáro zzák m eg. A m ásik o p e ra n d u s m indig regiszter, hogy melyik,
azt a REG m ező tartalm azza. A z 5.27. á b ra felsorolja azt a 32 k om binációt, am elyet ■E B P
a 2 bites MÓD és 3 bites R/M m ező szolgáltat. P éldául, ha m in d k ét m ező 0, a k k o r az
Egyéb /az EAX regiszterben
o p eran d u st a m em ó riáb ó l olvassa, am elynek cím e az EAX reg iszterb en van. lokális
A 01 és 10 oszlo p o k tarta lm a zz á k azo k at a m ó d o k at, am ely ek b en 8, illetve változók
SIB módú hivatkozások
32 bites eltolást leh et m eg ad n i a (gépi) u tasítás végén. I l a 8 b ite st v álasztunk, a k ­ Verem­ a 10] • E B P -1-8 M[4 * EAX 4-EBP 4-8]
k o r a h o zzáadás e lő tt elő jelesen kiterjeszti 32 b itesre. P éldául az ADD u tasítás az keret
R/M = 011, MÓD = 01 é s '6 elto lás eseté n kiszám ítja az EBX és 6 összegét, és az így a ll] — EBP-I-12

k a p o tt cím ről veszi az egyik o p e ra n d u st. A z EBX n em m ódosul. a [2] - E B P -1-16


A MÓD = 11 o szlopnál k ét reg iszter közül választh atu n k . Szavas u tasításo k az
első változatot, a b ájto s u tasításo k p ed ig a m ásodik v álto za to t használják. M egjegy­
zendő, hogy a táb lá z at nem teljesen szabályos. P éldául nem le h e t az EBP in d irek t
és az ESP relatív cím zés.
5.28. ábra. A z a[i] tömbelem elérése
392 5. A Z u t a s It A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5.4. c í m z é s i m ó d s z e r e k 393

M egéri ez a m ó d a fá rad ság o t? N eh éz válaszolni a k é rd é sre . K étség telen , hogy sítja, az UMP, am ely 16 bites eltolási é rté k e t tartalm az, így lehetővé tesz bárm ely
h a jó i használják, ak k o r ezzel a m ó d d a l tö b b ciklus m e g ta k aríth a tó . H a szn á la tán a k m em ó riacím re ugrást, és az LCALL, am ely szintén 16 bites eltolást tartalm az, így
gyakorisága függ a fo rd ító p ro g ra m tó l és az alkalm azástól. A z a gond, hogy e n n e k bárm ely m em ó riacím en lévő eljárást tu d hívni.
a m ó d n ak a m egvalósítása a lap k a egy részét elviszi, am ely et m ásra is le h e tn e A külső a d a tm e m ó ria elérése m ás m ód szerrel tö rtén ik . A 8051 ren d elk ezik egy
használni, h a nincs ez az utasítás. P éld áu l az 1. szintű g y o rsító tár nagyobb leh etn e 16 b ites m u ta tó regiszterrel, ez a DPTR, am ely 16 bites m em ó riacím et tartalm azh at.
vagy a lap k a m é re te kisebb, am i nagyobb ó rajelseb esség et en g ed n e. E z t a p ro g ra m o k b etö lth etik , aztán a b e tö ltö tt é rté k in d irek t cím zésre h aszn álh a­
E zek azok a kom p ro m isszu m o k , am elyekkel a terv ező k á llan d ó an szem besül tó, így e lé rh e tő a teljes 64 K B -os tarto m án y t.
nek. Á ltaláb an intenzív te sztelést v ég ezn ek m ielő tt szilikonba ö n te n é k a terv et
A zo n b an nagyon jó l m e g alap o zo tt elképzeléssel kell ren d e lk ez n i a szim ulációhoz
figyelem be véve a v á rh a tó terh e lést. A 8088 tervezői b izto san n em te szteltek web 5.4.14. A címzési módok összefoglalása
böngészővel. M in d azo n által, n em sok szám ítógép e lő d jé t h aszn álták w ebböngé
szésre, így a 20 évvel ezelő tti d ö n té se k teljesen h am isak le h e tn e k a m ai alkalm a Jó n éh án y cím zési m ó d o t tan u lm án y o ztu n k eddig. A P entium 4, az U ltraSPA R C III
zások szem pontjáb ó l. A zo n b an a visszafelé k o m p atib ilitás kényszere m ia tt n eh éz és a 8051 által h aszn áltak at az 5.29. áb rán lá th a tó táb lázatb an foglaltuk össze. M int
k idobni azt, am i egyszer m á r b ek erü lt. m á r k o ráb b an m egjegyeztük, nem m in d en m ód h aszn álh ató m in d en utasításban.

Címzési mód Pentium 4 UltraSPARC III 8051


5.4.12. Az UltraSPARC III címzési' módjai Akkumulátor X

Közvetlen X X X

A z U ltraS PA R C IS A m in d en u ta sítá sa k özvetlen vagy reg isztercím zést használ, k i­ Direkt X X

véve azokat, am elyek m e m ó riá ra h ivatkoznak. R eg iszterm ó d b an 5 b ite n van adva Regiszter X X X

a regiszter. A közvetlen m ó d b an 13 b ites (elő jeles) a d a t le h e t a konstans. N incs Regiszter-indirekt X X X

m ás m ó d ú aritm etik ai, logikai vagy h aso n ló utasítás. Index X X

H áro m féle u tasítás hivatkozik m e m ó riára; a b e tö ltő (LOAD), a tá ro ló (STORE) Bázis-index X

és egy m ultiprocesszo r-szin k ro n izálö u tasítás. A LOAD és STORE u tasításo k k étféle Verem
m ó d b an d o lgozh atn ak . A z egyik m ó d b an k ét reg iszte r ta rta lm á n a k összege ad ja a
cím et. A m ásik a hagyom ányos indexelés 13 b ites eltolási é rték k el. 5.29. ábra. A címzési módok összehasonlítása

A gy ak o rlatb an h aték o n y a rc h itek tú ráh o z n em kell sokféle cím zési m ód. M ivel
5.4.13. A 8051 címzési módjai az ISA -szinten írt k ód nagy részét fo rd ító p ro g ram o k g en erálják (a 8051 esetleg ki­
v étel), e z é rt a legfo n to sab b szem pont az arc h ite k tú ra cím zési m ódjánál, hogy k e ­
A 8051 cím zési m ó d ja nagyon szabályos. Ö t alap v ető cím zési m ó d ja van. A legegy­ vés és világos legyen a választás, könnyen k iszám ítható költséggel (a végrehajtási
szerűbb az im plicit m ó d , am ely az a k k u m u lá to rt használja. Sok u tasítás végez m ű ­ id ő t és a kód m é re té t tekintve). E z általáb an azt jelen ti, hogy a szám ítógép szélső­
v eletet egy o p e ra n d u s és az a k k u m u lá to r ta rta lm á n , ilyen az ö sszeadás, kivonás, séges pozíciót válasszon: vagy m in d en t, vagy csak egy választást nyújtson. M in d en
E S, VAGY. A z ak k u m u lá to rt h aszn áló u tasításo k b an n in cs speciális bit, am ely azt közbülső e setb en a fo rd ító p ro g ram választásra kényszerül, esetleg kellő ism eret
jelezn é, hogy az a k k u m u lá to rt kell h asználni. E z t a m ű v eleti k ó d m ag áb a foglalja. hiányában.
A m ásik a regiszterm ód, am ikor az egyik o p e ran d u s regiszter. R egiszter lehet T ehát a legtisztább arc h ite k tú rá b a n általáb an nagyon kevés cím zési m ó d van,
a k ár forrás, ak ár cél. A h arm ad ik m ó d a d irek t cím zés, am ikor az o p e ran d u s a m e­ am elyek h aszn álata szigorúan k o rláto zo tt. A g y akorlatban a közvetlen, direkt, r e ­
m óriában van, am elynek cím e az utasítás része. A negyedik m ód a regiszter-indirekt giszter- és indexelt m ód eleg en d ő a legtöbb alkalm azáshoz. H aso n ló an , m in d en
cím zés, am ikor az o p eran d u s cím e regiszterben van. M ivel m in d en n o rm ál regisz­ reg iszte r h aszn álata m e g en g e d ett (b eleértv e a lokális változók k e re té n e k m u ta ­
te r 8 bites, e z ért az o p eran d u sn ak a m em ó ria alsó 256 cím én kell lennie. A z ö tödik tó ját, a v e re m m u ta tó t és az utasításszám láló t) m in d en esetb en , am ikor regiszter
m ód a közvetlen m ód, am ik o r az o p e ran d u s m agában az u tasításb an van m egadva. szóba k e rü lh et. B onyolultabb cím zési m ó d o k csö k k en th etik az u tasításo k szám át,
A 8051 speciális cím zési m ó d o t ta rta lm a z n éh án y olyan u tasításb an , am ely m e ­ d e e n n e k az az ára, hogy olyan u tasításso ro za t alakul ki, am ely n eh ezen p árh u za-
m ó ria e lé ré st végez. E m lé k ez tetü n k , hogy a 8051-nek le h e t 64 K B külső p ro g ram - m o síth ató m ás utasítássorozatok kal.
és 64 KB külső a d a tm e m ó riá ja is. E z é rt szükség van valam ilyen cím zési m ó d ra, E zzel b efejeztü k a k ü lönböző m űveleti kód o k és cím zések közötti lehetséges
am ely lehetővé teszi e z e k e lérését. A külső m em ó ria e lé ré sé t k é t u tasítás bizto- k o m p ro m isszum ok tanulm ányozását. Egy új szám ítógép m eg ítélésénél érd em es
394 5, A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.5, U T A SfT A ST ÍPU SO K 395

m egvizsgálni nem csak az u tasítá sk ész le te t és a cím zési m ó d o k at, h an em azt is, A z ad atm o zg ató u tasításo k n ak valahogy m eg kell m ondani, hogy m ekkora m eny-
hogy mi az oka az a d o tt választásnak, és mi lett volna a következm énye egy ettő l nyiségű a d a to t m ozgassanak. B izonyos g épeken létezik olyan utasítás, am ely képes
e lté rő választásnak. változó m ennyiség átvitelére 1 b ájttól ak ár a teljes m em óriáig. A rögzített szóm é­
re tű g ép ek en az egy utasításban átvihető m ennyiség általában p o n to san egy szó.
E n n él nagyobb vagy kisebb m ennyiség átvitelét szoftver segítségével kell m egoldani
lé p tetések és összevonások alkalm azásával. N éhány ISA lehetővé teszi egy szónál
5.5. Utasítástípusok kisebb (általáb an bájt-többszörös) és a szó tö b bszörösének az átvitelét is. T öbb szó
m ásolása trükkös, különösen, h a a szavak szám a nagy, m e rt hosszú ideig tarth at,
A z ISA -szintű u ta sításo k a t m egközelítőleg fél tu cat c so p o rtb a leh e t o sztani, a m e ­ és esetleg k özben fel kell függeszteni a m űveletet. N éhány változó szóhosszúságú
lyek eléggé hasonlók, akárm ilyen g ép et is tek in tü n k , m ég a k k o r is, ha a gép ek gép n ek van olyan m ásoló utasítása, ahol csak a forrás és a cél cím ét kell m egadni, a
részleteib en nagyon eltérő k . A zo n b an m in d en g é p n ek v an néh án y szo k atlan u ta ­ hosszt nem . E k k o r a m ásolás a fo rrásad atb an találh ató adatvége jelig történik.
sítása, am elyeket vagy kom patib ilitási kényszer m iatt, vagy a zért v ezettek be, m ert
a tervezőknek valam i zseniális ö tle tü k volt, vagy m e rt k o rm ányzati hivatal fizetett
é rte a gyártónak. A to v áb b iak b an a teljesség igénye n élkül röv id en átte k in tjü k az 5.5.2. Diadikus műveletek
általános k ateg ó riák at.
A k é to p e ra n d u sú , egyetlen ered m én y t szolgáltató m ű v eletek et nevezzük diadikus
m ű v eletek n ek. M in d en ISA ren d elk ezik egész szám okon v ég ezhető összeadás és
5.5.1. Adatmozgató utasítások kivonás m ű v elettel. A szorzás és az osztás szintén m ajdnem általán o s az egész szá­
m o k k ö réb en . B izonyára nem szükséges m agyarázni, hogy a szám ítógépek m iért
A d at m ásolása egyik helyről a m ásik ra a legalap v ető b b az összes m űvelet k özött. re n d e lk e z n ek aritm etik ai utasításokkal.
M ásoláson azt értjü k , hogy lé tre h o zu n k egy új o b jek tu m o t, am elynek a b itk ép e A d iad ik u s m űv eletek m ásik cso p o rtjáb a tarto zn ak a logikai utasítások. H a b á r
azonos az eredetiv el. A „m o zg a tás” szót itt n em a k ö zn ap i é rte le m b e n használjuk. 16 kétváltozós logikai m űvelet van, nagyon kevés vagy talán egyetlen gép sem ta r ­
A m ik o r azt m on d ju k , hogy a szek rén y t a szoba m ásik sa rk á b a m o zg attu k , az nem talm azza m ind a 16 m űveletet. S zokásos az AND, OR és NŐT*, n é h a a XOR kizáró
azt jelen ti, hogy a szekrény o tt m a ra d t az e re d e ti helyén, és az új helyen k e le tk e ­ vagy, a NOR, valam int a NAND is m eg találh ató .
zik a szekrénynek egy azo n o s m áso lata. H a azt m o n d ju k , hogy a 2000 m em ó riacím A z AND m űvelet egyik fo n to s alkalm azása b itek kivágása szavakból. T ekintsünk
ta rta lm á t egy reg iszte rb e m ozgatjuk, ak k o r ezen m indig azt értjü k , hogy az e re ­ p é ld áu l egy 32 bites szóval ren d elk ező gépet, ahol négy 8 bites k a ra k te rt táro ln ak
detivel azonos m áso lat k eletk ezik a reg iszterb en , és a 2000 m em ó riacím ta rta lm a egy szóban. Tegyük fel, hogy a m ásodik k a ra k te rt n y o m tatásk o r el kell külö n íten i a
változatlan m arad . A z ad atm o z g ató u tasítá so k a t szeren cséseb b len n e ad atm áso ló tö b b itő l. T ehát olyan szót kell létreh o zn i, am elyben az utolsó 8 b ite n van a kívánt
u tasításo k n ak hívni, de az „ a d a tm o zg a tó ” kifejezés m á r ré g ó ta e lterjed t. k a ra k te r, a többi 24 b itn ek m eg 0-nak kell lennie (jobbra ig a zíto tt).
A n n ak , hogy a d a to t egyik helyről a m ásik ra kell m ásolni, k ét in d o k a van. Az K a ra k te r kivágása úgy tö rtén ik , hogy a k a ra k te rt ta rtalm azó szónak és egy ko n s­
egyik alapvető: é rté k a d á s a válto zó n ak . A z tan sn ak , a m aszk n ak az AND m űvelettel v ett ered m én y ét képezzük. A m űvelet
ered m é n y ek én t az összes nem kívánt bit érté k e 0 lesz, kim aszkolódik, m int azt az
A= B aláb b i p é ld á n láthatjuk.

é rté k a d á s m egvalósítása az, hogy az B m em ó riacím rő l az A m em ó riacím re m áso- 10110111 10111100 11011011 10001011 A
lódik az o ttan i érté k , m e rt a p ro g ram o zó ezt k érte. A m ásik in d o k a m áso lásra az, 00000000 11111111 00000000 00000000 B (m aszk)
hogy az ad at h aték o n y elé ré sé t és felh aszn álását biztosítsuk. M int m á r láttu k , sok 00000000 10111100 00000000 00000000 A A N D B
u tasítás csak reg iszte rb en k ép es elérn i az a d ato k a t. M ivel az a d a to k n a k fo rrá su k
szerint két lehetség es helye van: a m e m ó ria vagy a regiszter, és a cél is vagy a m e ­ E z u tá n 16 b ittel jo b b ra léptetve m egkapjuk a kívánt szót, am ely m ost m ár a jobb
m ória, vagy a regiszter, e zért négy esete leh et a m ásolásnak. N éh án y g é p n ek négy szélén tarta lm azza a kívánt k arak tert.
k ü lön u tasítása van a négy esetre . M ások m in d a négy e se tre ugyanazt az u tasítást A z OR m űvelet egyik fo n to s felhasználása az, am ikor b itek et é p ítü n k be egy szó­
nyújtják. M ég m ások a LOAD u tasítást a d ják a m em ó riáb ó l reg iszterb e, a STORE ba, te h á t a kivágás ellen tettje. V álto ztassu k m eg egy 32 bites szó utolsó 8 bitjét
u tasítást a regiszterb ő l m em ó riáb a, a MOVE u ta sítá st p ed ig a reg iszte rb ő l regisz­
te rb e tö rté n ő átv itelre, és nincs a m em ó riáb ó l m e m ó riá b a k ö zvetlenül m o zgató * A m egvalósított logikai m űveletek között csaknem m indig szerepel a NŐT m űvelet, ezért
utasítás. szerepel a felsorolásban. A NŐT m űvelet m onadikus. (A lektor)
396 5. A Z u t a s It A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5.5. U T A SÍT A ST IPU SO K 397

a d o tt b ájtra, de a szó tö bbi bitje ne változzon. E lő szö r m aszkoljuk ki a nem kívá­ 11111111 11111111 11111111 llllO O O O A
n ato s b itek et, m ajd OR m űv elettel vegyük be a b e é p íte n d ő bájto t. 00111111 11111111 11111111 11111100 A előjel nélküli jo b b ra lép tetése 2 hittel
11111111 11111111 11111111 11111100 A előjeles jo b b ra lép tetése 2 bittel
10110111 10111100 11011011 10001011 A
11111111 11111111 11111111 OOOOÜOOOB (m aszk) A lé p te té s m űvelet fo n to s alkalm azása a 2 hatvánnyal való szorzás m egvalósítá­
10110111 i o n 1100 1101101100000000a a n d b sa. H a egy pozitív egész szám ot k bittel b a lra lép tetü n k , ak k o r az ered m én y az e re ­
onoooooo 00000000 OOOOOOOO OIOIOI11 c deti szám 2*-val való szorzásának felel m eg, kivéve, h a túlcsordul. H a egy pozitív
10110111 1011110011011011 01010111 ( A A N D B ) O R C egész szám o t k b ittel jo b b ra lép tetü n k , ak k o r a k a p o tt szám az e red eti szám 2'^-val
való o sztásán ak az ered m én y e lesz.
A z AND m űvelet az 1-esek e ltü n te té sé t végzi, m e rt az e re d m é n y ak k o r és csak A lé p te té se k felh aszn álh ató k bizonyos aritm etik ai m ű v eletek felgyorsítására.
a k k o r 1-es, ha m in d k ét o p e ra n d u s m egfelelő bitje 1-es. A z OR m űvelet 1-es b itet T ekintsük p é ld áu l a 18 x /j kifejezés kiszám ítását. M ivel 18 x n = 16 x « + 2 x /i,
é p ít be, m ert az e re d m é n y ak k o r és csak a k k o r 1-es, ha legalább az egyik o p e ra n ­ így a 16 X « k iszám ítható /:-nek 4 bittel való b alra léptetésével, 2 x « pedig 1 bittel
dus 1-es. A XOR kizáró vagy m űvelet szim m etrikus, azaz az ered m én y a k k o r és való b alra léptetéssel. A k ét kifejezés összege 18 x «. T ehát a szorzást egy m ásolás­
csak akkor 1-es, h a p o n to sa n az egyik o p e ra n d u s 1-es. E z a szim m etria sokszor sal, k é t lép te téssel és egy összeadással o ld o ttu k m eg, am i gyakran gyorsabb, m int
hasznos, p éld áu l v életlen szám ok g en erálásak o r. a szorzás. T erm észetesen a fo rd ító p ro g ram csak akkor tu d ja alkalm azni ezt a trü k ­
A legtöbb szám ító g ép n ek v an n ak lebeg ő p o n to s utasításai, nagyjából olyanok, k öt, h a az egyik o p e ra n d u s konstans.
m int az egész szám ok aritm etik áján ak utasításai. A legtöbb gép legalább kétféle N egatív szám ok - a k ár előjeles - lép tetése azo n b an egészen m ás ered m én y t ad.
hosszúságú lebegőpontos szám okat tám o g at, a rövidebbet a gyorsaság, a hosszab- T ekintsük p é ld áu l a -1 szám 1-es ko m p lem en s ábrázo lását. B alra léptetve 1 bittel
bat pedig a nagyobb ponto sság érd ek éb en . Sokféle leb eg ő p o n tos szám ábrázolási az ered m én y - 3 lesz. M ég egyszer b a lra léptetve 1 bittel -7 - e t eredm ényez:
form a létezik, de m anapság az IE E E 754 szabvány az egyetlen széles k ö rb en elfo­
gadott. A lebegő p o n to s szám okat és az IE E E 754 szabványt a B) függelék tárgyalja. 11111111 11111111 11111111 1 1 1 1 1 1 1 0 - 1 1 -esk o m p lem en se
11111111 11111111 11111111 1 1 1 1 1 1 0 0 -1 b alra léptetve 1 b ittel = -3
11111111 11111111 11111111 1 1 1 1 1 0 0 0 - 1 b a lra léptetve 2 b ittel = -7
5.5.3. Monadikus műveletek
1-es k o m p lem en sb en a d o tt negatív szám b a lra lé p tetése 1 b ittel nem 2-vel való
A m o nad ik u s m ű v eletn ek egy o p e ra n d u sa van, és egy ered m én y t ad. M ivel eggyel szo rzást valósít m eg. A jo b b ra lé p te té s sem szim ulálja helyesen az osztást.
kevesebb cím et kell m eg ad n i a m o n ad ik u s u ta sításo k b an a d iad ik u so k h o z kép est, T ekintsük a -1 szám 2-es ko m p lem en s áb rázolását. H a 6 bittel előjeles jo b b ra
e z ért ezek az u tasításo k általá b a n rövidebbek, b á r n é h a m ás egyéb in fo rm ác ió t is lé p te té st végzünk, az ered m én y -1 lesz, am i nem helyes, m ert -1 /6 4 egész része 0.
m eg kell adni.
Szó vagy bájt lép teté se , illetve fo rg atá sa sokszor h aszn o s m ű velet, és gyakran l l l l l l l l 11111111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 2-cs kom plem ense
több k ü lönböző v álto zatu k is van. A lé p te tő m űv elet h a tá s á ra m in d en b it azonos 11111111 l l l l l l l l l l l l l l l l 1 1 1 1 1 1 1 1 -1 jo b b ra léptetve 6 bittel = - l
m é rté k b e n b alra vagy jo b b ra lép tető d ik , a szélén kilép ő b itek elvesznek. F o rg atás
e setén a kilépő b itek a m ásik old alo n b e jö n n ek . A k ét m űv elet k ö zö tti k ü lö n b sé­ Á lta lá b an a jo b b ra lé p te té s h ib át eredm ényez, m ert lefelé k erek ít (a m ég n eg atí­
g et illusztrálja az aláb b i példa. vabb szám ok felé), am i hibás a negatív egészek aritm etik ájáb an . A b alra lép tetés
azo n b an helyesen adja a 2-vel való szorzást.
OOOOOOOO OOOOOOOO OOOOOOOO 01110011 A A fo rg atás m űveletek h asznosan alk alm azh ató k b itso ro zato k szóba való be- és
OOOOOOOO OOOOOOOO OOOOOOOO 00011100 A 2 b ittel jo b b ra lép tetv e k ip ak o lásak or. H a egy szó m in d en b itjét ellenőrizni kell, ak k o r egyesével balra
11000000 OOOOOOOO OOOOOOOO 00011100 A 2 b ittel jo b b ra forgatva forg atv a m in d en bit egyszer az előjelbit helyére kerül, am ik o r is tesztelh ető , és vé­
gül visszakapjuk az e re d e ti szót. A fo rg atás m űveletek tisztábbak, m int a lé p te té ­
M ind a balra és jo b b ra lép tetés, m ind a fo rg atás hasznos m ű velet. Egy « b ites szót sek, m e rt nem ered m én y ezn ek inform ációvesztést: m in d en forg atásh o z van olyan
k b ittel balra forgatva vagy n - k b ittel jo b b ra forgatva az ered m én y m egegyezik. m ásik forg atás, am ely helyreállítja az ered eti o p eran d u st.
A jo b b ra lé p te té st gyakran elojel-kiegcszíto (rö v id en előjeles) m ó d o n is végzik. B izonyos diadikus m űveletek olyan gyakran fo rd u ln ak elő egy a d o tt o p eran -
E k k o r a bal oldalo n az e re d e ti e lő jelb it jö n be az ü re s helyekre. T ö b b e k k ö zö tt ez dusszal, hogy az ISA külön m onad ik u s u tasítást vezet be ezek szám ára a gyorsabb
azt jelen ti, hogy negatív szám m indig negatív m arad . A k étféle lé p te té st illu sztrál­ v ég reh ajtás céljából. S zám ítások inicializálásakor rendkívül gyakori, hogy egy re ­
ja az alábbi példa. giszterb e vagy m em ó riaszó b a 0-t kell tölteni. E z term ész etesen az általános m oz­
398 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.5. U T A SÍT A ST ÍPU SO K 399

gató utasítás speciális esete. H aték o n y ság m ia tt gyakran b evezetik a CLR utasítást, sze a túlcsordulással. A z átviteli bit tesztelése szükséges p éld áu l a nagyobb p o n ­
am ely törli (0-ra állítja) egy cím tarta lm á t. tosságú aritm etik a m egvalósításához (te h á t am ikor k ét vagy tö b b szó ábrázol egy
Egy szóhoz 1 h o zzáad ása szintén gyakori szám láláskor. Az ADD u tasítás m ona- egész szám ot).
dikus m egfelelője az INC utasítás, am ely 1-et ad az o p e ra n d u sh o z. A NEG (negáció) A 0 tesztelése ism étlések m egvalósításánál és sok m ás esetb en is fontos. H a
u tasítás szintén jó péld a. X n egálása a 0 - A' kiszám ítását jelen ti, am i d iad ik u s ki­ m in d en feltételes elágazó utasítás csak egy b itet vizsgálhatna, akkor ann ak tesz­
vonás lenne, de szin tén gyakori, e z é rt külö n m o n ad ik u s u tasítá st alkalm aznak, ez telését, hogy egy szó O-e, esak úgy leh etn e elvégezni, hogy a szó m inden bitjét kü ­
a NEG. Fontos m egjegyezni, hogy a NEG u tasítás külö n b ö zik a logikai NŐT u ta sítá s­ lön teszteln én k , hogy egyik sem l-es. E n n ek elkerülése é rd ek éb en sok gép ta rta l­
tól. A NEG m űvelet a szám a d d itív in v erzét ad ja (azt a szám ot, am elyet az e re d e ti­ m az olyan feltételes elágazó u tasítást, am ely egy szót tesztel és elágazik, ha az 0.
hez hozzáadva 0-t k ap u n k ). A NŐT m űvelet ped ig a szó m in d en b itjé t ellen k e z ő jé ­ T erm észetesen ez a m egoldás csak áth á rítja a m u n k át a m ik ro arc h itek tú rára. A
re változtatja. A két m űvelet nagyon hasonló, sőt az olyan g ép ek en , am elyek l-es g y ak o rlatb an a h ard v er általáb an tartalm az egy olyan regisztert, am elynek m inden
k o m p lem en st használnak, az e red m én y m egegyezik. (A 2-es k o m p lem en s a ritm e ­ bitjét GR k ap cso latb a állítja (összvagyolja), és így jelzi egyetlen b ittel, hogy valam e­
tik áb an a NEG m ű v eletet úgy végzik, hogy elő szö r m in d e n b ite t negáln ak , m ajd lyik b it 1-es-e. A 4.1. á b ra Z bitje n o rm álisan úgy szám ítódn a, hogy az A L U m in­
1-et h ozzáadnak .) den k im en eti bitjét összevagyolnánk, és aztán invertálnánk.
A diadikus és m on ad ik u s u tasításo k at gyakran együtt csoportosítják a haszn ála­ R en d ezések n él nagyon fo n to s k ét szó vagy k a ra k te r összehasonlítása abból a
tuk szerint, és nem az o p eran d u su k szám a szerint. Az aritm etikai utasításo k cso­ célból, hogy m egtudjuk, egyenlők-e, és ha nem , m elyik a kisebb. E n n ek m egva­
p o rtja tartalm azza a ncgációt is. Egy m ásik csoportba sorolják a logikai utasításokat, lósításához három eím kell: k e ttő az a d a to k ra és egy az ugrási cím m egadására.
id etartoznak a lép tetések és forgatások, m ert ezek et gyakran együtt használják. A zoknál a g épeknél, am elyeknek van három eím es utasítása, n em je le n t gon d o t a
m egoldás, de am elyeknek nincs, m ás m ó d o n kell eljárni.
Á lta lá n o san úgy oldják m eg a p ro b lém át, hogy külön tesztelő utasítás van, ez tá ­
ro lja a teszt ered m én y ét, am elyet aztá n a feltételes elágazó utasítás lekérdezhet.
5.5.4. Összehasonlító és feltételes elágazó utasítások
M in d a P entium 4, m ind az U ltraSPA R C Ili alkalm azza ezt a m ódszert.
M ajdnem m in d en p ro g ram h asználja azt a leh ető ség et, hogy a d ato k o n ö sszeh a­ K ét szám ö sszehasonlítása ta rtalm az néhány különlegességet. Az ö sszehasonlí­
sonlítást végezzen, és az e red m én y függvényében az u tasítá so k v ég reh ajtásán ak tás n em an nyira egyszerű, m in t p éld áu l a kivonás. H a egy nagyon nagy egész szá­
st)rrcndjét m egváltoztassa. E gyszerű p éld a e rre a v5: függvény é rté k é n e k kiszám í­ m o t h aso n lítu n k egy nagyon nagy negatív szám hoz, a k k o r a kivonás túlcsordulást
tása. H d x negatív, az eljárás h ib a ü z e n e te t küld, eg y éb k én t kiszám ítja a n égyzet­ e re d m én y ezn e, m e rt a m ű v elet ered m én y e n em re p re z e n tá lh a tó . M indazonáltal,
gyököt. A z sqrt függvénynek először teszteln ie kell x-et, és elágazni attó l függően, az ö sszeh aso nlítás u tasításn ak m eg kell ad n ia az összehasonlítás helyes e re d m é ­
h og y x negatív-e. nyét, tú lcso rdulás nem keletkezhet.
A z elágazás m egvalósításának általán o s m ó d szere az, hogy feltételes elágazó A szám ok összehasonlításával k apcsolatos m ásik különlegesség, hogy a szám
u tasítást v ezetnek be, am ely m eg ad o tt feltétel teljesü lését ellenőrzi, és ha a fe lté ­ vajon elő jelesn ek vagy előjel n élkülinek tek in tő d jék . P éldául a h áro m b ites é g é s/
tel teljesül, akkor elágazás (u g rás) következik egy m e g a d o tt m em ó riacím re. N éha szám ok k é tfélek ép p en is re n d e z h e tő k e n n ek m egfelelően:
az utasítás egy bitje jelzi, hogy a feltétel teljesülése avagy n em teljesü lésc e setén
tö rté n jé k elágazás. G y ak ran az elágazás célcím e n em abszolút, h an em az aktuális E lőjel nélküli E lőjeles
u tasítás helyéhez relatív. 000 100 (legkisebb)
A leggyakrabban a gép egy bizonyos b itjén ek 0 vagy n em 0 é rté k e je le n ti a fel­ 001 101
tételt. I la egy u tasítás azt írja elő, hogy teszteljü k egy szám elő jelb itjét és ugorjunk 010 110
a c í m k e cím re, ha a bit l-e s, ak k o r a C ÍM K E eím ű u tasítás h ajtó d ik végre, ha a 011 111
szám negatív, és a felté te les elágazást k övető u tasítás, h a a szám 0 vagy pozitív. 100 000
Sok gép fe lté te le k e t k ó d o ló b ite k e t tartalm az, ezek a b itek m e g a d o tt fe lté te le ­ 101 001
ket azonosítanak . P éld áu l, leh e t tú lcso rd u lásb it, am elyet m in d en aritm etik ai u ta ­ 110 010
sítás 1-re állít be, ha a k eletk ezett e red m én y n em helyes. E zt a b ite t tesztelve m eg ­ 111 011 (legnagyobb)
tud h atju k , hogy az előző aritm etik ai m űvelet so rán tú lcso rd u lás k e letk ezett-e, és
ha igen, ak k o r hib ak ezelő eljá rá sra u g o rh atu n k . A bal oldali oszlop a pozitív eg észeket tartalm azza ü-tól 7-ig. A jo b b oldali pedig a
H aso n ló an , sok gép ta rta lm a z átviteli felté te lb ite t, am elyet ak k o r á llítan ak be, 2-es k o m p lem ens k ó d o k at -4 -tő l -i-3-ig. A válasz arra a k érd ésre, hogy „a 011 na-
ha a m űvelet során átvitel k e le tk e ze tt a bal szélső b itrő l, p é ld áu l k ét negatív szám gyobb-c, m int 100” , attól függ, hogy a szám o k at előjelesnek vagy előjel n é l k ü li n e k
ö.sszeadásakor. Á tvitel a bal szélső bitről eléggé norm ális, és n em tév eszten d ő ösz- tek in tjü k . A legtöbb ISA m in d k ét típ u st tudja kezelni.
400 5, A Z u t a s í t A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5.5. UT A SI t A S T IP U S O K 401

5.5.5. Eljáráshívó utasítások ér, és a ciklusm agot követő u tasításra kerül a vezérlés. E zt az ism étlést végfeltc-
teles ism étlésnek nevezzük, és az 5.30. (a) áb rán szem léltetjük C nyelven. (A zért
U tasításo k olyan so ro z a tá t nevezzük eljárásn ak , am ely m e g h a tá ro z o tt fe lad a to t nem a Jav a nyelvet választottuk, m ert ann ak nincs goto utasítása.)
old meg, és a p ro g ram k ü lö n b ö ző helyeiről aktiv izálh ató (h ív h ató ). A s z u b r u t i n
elnevezés is haszn álato s, k ü lö n ö sen , h a assem bly nyelvről van szó. A Jav a nyelv­ i = 1;
L1: if (i > n) goto L2
b en a m e t ó d u s elnevezést használják. H a az eljárás elvégezte m u n k áját, vissza kell
L1: első utasítás első utasítás
térn ie a hívását k ö vető u tasításra. E z é rt a visszatérési cím et valahogy á t kell adni
az eljárásnak, vagy v alahol táro ln i kell, hogy e lő tu d ja venni, am ik o r eljö n a visz-
szatérés ideje.
A vis,szatérési cím et elh ely ezh etjü k m em ó riáb an , reg iszte rb en vagy v erem b en . utolsó utasítás utolsó utasítás
A legrosszabb m egoldás, ha rö g zített m em ó riah ely re rakjuk. U gyanis, ha a hívott i = i+ 1; i = i + 1;
eljárás egy m ásikat hív, az előző visszatérési cím elveszik. íf (i < n) goto Ll; goto Ll;
N ém ileg jav íto tt m egoldás az, am ik o r a visszatérési cím et a hívó u tasítás a h í­ L2:
v o tt eljárás első szavába tölti. Ilyenkor az e ljárás első v é g re h ajtan d ó u ta sítása az (a) (b)
ezt követő szó. E k k o r az eljárás az első szót használva in d irek t u grással vissza tu d
térn i, vagy d irek t m ó d o n , ha a h a rd v er az első szóba az u g ró u tasítás m ű v eleti k ó d ­ 5.30. ábra. (a) Végfeltételes ismétlés, (b) Kezdőfeltételes ismétlés
já t is beteszi. így az eljárás m ásik eljárást is hívhat, mivel m in d en eljárásb an van
hely a visszatérési cím szám ára. E z a sém a is m egbukik, h a az eljárás ö n m ag át hív­ A v ég feltételes ism étlés jellem zője, hogy a ciklusm agot legalább egyszer m indig
ja, mivel az első visszatérési cím et felü lírja a m ásodikkal. A zt a k ép esség et, am ikor v ég reh ajtja, akkor is, ha n érté k e negatív vagy 0. P éld ak én t tek in tsü k azt a p ro g ra ­
egy eljárás ö n m a g á t h ívhatja, r e k u r z i ó n a k nevezzük. A rek u rzió rendkívül fo n to s m ot, am ely egy vállalat dolgozóinak a d a ta it kezeli. A p ro g ram egy bizonyos helyén
m ind elm életileg, m in d a gyakorló p ro g ram o zó k szám ára. A „kicsit ja v íto tt” sém a beolvassa egy a d o tt dolgozó adatait. B eolvassa a dolgozó gyerekeinek n szám át, és
a kkor is m egbukik, ha a z ^ eljárás hívja a B eljárást, az p ed ig a C eljárást, am ely v ég reh ajt egy ism étlést «-szer, gyerm ek en k én t egyszer beolvasva a gyerm ek nevét,
aztán ism ét hívja az A eljárást (in d irek t vagy m a rg aréta lá n e rek u rzió ). születési d á tu m á t és n e m é t azzal a céllal, hogy a gyerm ek szü letésn ap jára a já n d é ­
N agyobb javítást é rü n k el, ha a visszatérési cím et reg iszterb en tároljuk, és a hívott k o t k ü ld jö n a vállalat. H a a dolgozónak nincs gyereke, az n é rté k e 0, de a ciklus
eljárás felelősségére bízzuk, hogy azt biztonságos helyen tárolja. H a az eljárás r e ­ ek k o r is v ég reh ajtó d ik egyszer, és aján d é k o t küld, hibásan.
kurzív, akkor m in d en hívott példánynak m ás helyre kell tennie a visszatérési cím et. A z 5.30. (b) áb rán lá th a tó p ro g ram helyesen m űkö dik ak k o r is, ha az n érték e
A visszatérési cím kezelésére a legjobb m egoldás, ha v erem b e tesszük. A m ik o r kisebb vagy egyenlő 0. Vegyük észre, hogy a tesztelés k ülön bözik a k ét esetb en , te ­
az eljárás befejezte m u n k áját, kiveszi a v erem b ő l a visszatérési cím et, és b e tö lti az h á t h a az IS A egyetlen u tasítása végzi m ind a növelést, m ind a tesztet, akkor a te r­
utasításszám láló b a. H a ez az eljáráshívási sém a alk alm azh ató , nincs gon d a re k u r­ v ezők választásra kényszerülnek.
zív eljárásokkal, a v isszatérési cím a u to m a tik u sa n elm en tő d ik , m egakadályozva az V izsgáljuk azt a k ó d o t, am ely az alábbi u tasítás fo rd ításak én t keletk ezh et.
előző visszatérési cím elvesztését. A 4.12. áb rá n lá ttu k az IJV M visszatérési cím
tárolási technikáját. fór (I = 0; i < n; i++) { utasítások}

H a a fo rd ító n a k nincs sem m i inform ációja az n é rté k é rő l, akkor az 5.30. (b) m ó d ­


5.5.6. Ismétléses vezérlés szert kell v álasztania, hogy helyesen kezelje az n < 0 esetet. A zonban, ha k o ráb ­
bi érté k a d á s m iatt tudja, hogy n > 0, akkor a jo b b 5.30. (a) k ó d o t g en erálh atja.
G yakran előford u l, hogy u tasítá so k egy so ro z a tá t a d o tt szám szor m eg kell ism étel­ A F O R T R A N szabvány k o ráb b an m eg követelte, hogy a ciklusm ag legalább egy­
ni, ezért néhány gép e rre k ü lö n u ta sítá st biztosít. M in d en ilyen sém a tarta lm a z egy szer v ég reh ajtó d ik azért, hogy m indig az 5.30. (a) h aték o n y ab b k ó d o t g en e rá lh a s­
szám lálót, am elynek ta rta lm á t a ciklusm ag m in d en egyes lefu tása k o r egy k o n stan s sa a fo rd ító . E zt a hiányosságot 1977-ben kijavították, am ik o rra m ár a F O R T R A N
é rték k el növelik vagy csökkentik. A szám láló é rté k é t tesztelik is a ciklusm ag m in ­ közösség is rájö tt, hogy nem szerencsés az a furcsa szem antika, am ely id ő n k én t
d en egyes lefutásak o r. H a a m e g a d o tt feltétel teljesül, az ism étlés véget ér. helytelen ered m én y t ad, m ég h a így ciklusonként egy elágazó u tasítást m eg is lehet
A z egyik m ód szer szerin t a szám lálót a ciklusm agon kívül inicializálják, és az o n ­ tak a ríta n i. A C és a Java m indig helyesen m űködik.
nal elkezdődik a ciklusm ag v ég reh ajtása. A ciklusm ag u to lsó u tasítása aktualizálja
(növeli vagy csök k en ti) a szám láló é rté k é t, és h a a befejezési feltétel n em teljesül,
a k k o r ugrás következik a ciklusm ag első u tasítására. E gyéb k én t az ism étlés véget
402 5. A Z u t a s It A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5,5. U T A SlT Á ST iP U SO K 403

5.5.7. Bemenet/kimenet beolvassa a k a ra k te rt a b illentyűzetpufferből. A beolvasás h a tá s á ra az állap o trc-


giszter „ K a ra k te r e lé rh e tő ” (vagyis 7.) bitje 0-ra állítódik.
N incs m ás olyan u tasításcso p o rt, am ely g é p e n k é n t an n y ira k ü lö n b ö zn e, m in t a B/ A k im en et h asonlóan m űködik. E gy k a ra k te rn e k a k ép ern y ő re írása végett a
K utasítások. A m ai szem élyi szám ító g ép ek h áro m k ü lö n b ö ző sém át h asználnak. szoftver elő ször kiolvassa a k ép ern y ő állap o t regiszterét, hogy m egtudja, a „K ész
E zek a következők. a követk ező k a ra k te r fo g a d á sá ra ” bit 1-es-e. H a nem , ak k o r ciklusban ism étli ezt
m indad d ig , am íg 1-es n em lesz. E z jelzi, hogy az eszköz k észen áll k a ra k te r foga­
1. P rogram ozott B/K tev ék en y várakozással. d ására. A szoftver azo n n al kiírja a k a ra k te rt a k ép ern y ő p u ffer regiszterébe, ahogy
2. M eg s/ak ításv e zé relt B/K. a term in ál kész, és 0-ra állítja az állap o treg iszter kész bitjét. H a a k a ra k te r m egje­
3. D M A B/K. len ítése m e g tö rté n t, a v ezérlő újból 1-re állítja a kész bitet.
Tekintsük az 5.32. áb rá n lá th a tó Jav a-p ro g ram o t, am ely a p ro g ram o zo tt B/K-rc
A továb b iak b an eg y en k én t vizsgáljuk ezek et. péld a. A z eljárásn ak k ét b e m en ő p a ra m é te re van: az első a k iíran d ó k a ra k te re k e t
A legegyszerűbb B/K m ó d szer a programozott B/K, am ely et általán o san hasz­ ta rta lm a z ó tim b , a m áso d ik p ed ig a k a ra k te re k szám a, legfeljebb 1 KB. A z eljárás
n áln ak egyszerű m ik ro p ocesszo ro k b an , p éld áu l b eág y azo tt ren d sze rek b e n , ahol tö rzse egy ciklus, am ely egyenként kiírja a k a ra k terek et. M in d en egyes k a ra k te rre
gyorsan kell válaszolni a külső v á lto záso k ra (valós idejű ren d sze re k ). A C P U -n ak elő szö r a C P U m indaddig várakozik, am íg az eszköz kész á llap o tb a n em kerül, az­
általáb an egyetlen b e m e n e ti és egyetlen k im en eti u tasítá sa van. M indegyik u ta sí­ tá n kiírja a k a ra k te rt. A z in és o u t eljáráso k tipikusan assem bly eljáráso k lehetnek.
tás egy B/K eszközt választ ki. E gyetlen k a ra k te r k erül átv itelre a p ro cesszo r rögzí­ A z in eljárás az eszközállapot reg iszterét olvassa, z z o ut eljárás első p a ra m é te re az
te tt reg isztere és a k iválasztott B/K eszköz k özött. A p ro cesszo rn ak végre kell h aj­ eszk ö zp u ffer regisztere, a m ásodik pedig a k iíran d ó k a rak ter. A 128-cal való osz­
tan ia egy u tasításso rt m in d en egyes b eo lv asan d ó és k iíran d ó k a ra k terre . tás (7 b ittel jo b b ra lé p te té s) célja, hogy eldobja az alsó 7 b itet, ezzel a 0. pozícióra
Tekintsük a következő egyszerű p éld á t e rre a m ó d szerre, am ik o r egy term inál állítja a READY b itet.
négy 1 bájtos reg iszterrel rendelkezik, am in t azt az 5.31. á b ra m u tatja. K ét regisz­
te r használatos a b e m e n e t (állap o t és a d a t) cs ugyancsak k e ttő a k im e n e t (állap o t publIc statlc void output_buffer{int buf[ ], int count) {
és a d a t) szám ára. M indegyik reg isztern ek saját cím e van. A m em ó riáb a lek ép e zett
B/K esetén m ind a négy regiszter a m em ó ria cím tarto m án y áb an van, és közönséges //Adatblokk kiírása az eszközre
Int status, í, ready;
utasítások kal olvashatók és írh ató k . K ü lö n b en speciális B /K utasításo k , m ondjuk,
IN és OUT, vannak olvasásukra és írásu k ra. M in d k ét esetb en az ad at- és állap o tin fo r­
fór {i = 0; i< count; i-i-i-) {
m ációnak a C P U és a reg iszterek közö tti átvitele valósítja m eg a B /K m űveletet.
d o{
status = in{display_status_reg); // az állapot lekérdezése
-A karakter elérhető ' Kész a következő karakter fogadására ready = (status » 7 ) & 0x01; //a kész bit elkülönítése
Billentyűzetállapot Képernyöállapot }while {ready 1= 1);
out(display_buffer_reg, buf[i]);
}
Megszakítás engedélyezett Megszakítás engedélyezett }

Billentyűzetpuffer Képernyőpuffer 5.32. ábra. Pétda programozott B/K-re

Fogadott karakter Megjelenítendő karakter


A p ro g ram o zo tt B/K elsődleges h átrán y a, hogy a C P U azzal van elfoglalva,
hogy egy ciklusban a rra várjon, m ik o r válik az eszköz átviteli á llap o tra késszé. E zt
5.31. ábra. Egyszerű terminál eszközregiszterei tevékeny várakozásnak nevezzük. H a a C P U -n ak nincs m ás dolga (például egy
m osó g ép b en ), ak k o r a tevékeny várakozás m ódszere elfo g ad h ató (h a b á r m ég az
A b illentyűzetállap o t-reg iszter 2 h aszn ált és 6 nem h aszn ált b ite t tartalm az. A egyszerű v ezérlők nek is gyakran tö b b esem ényt kell p árh u zam o san figyelniük).
bal szélső (7.) b ite t a h ard v er m indig 1-esre állítja, ha k a ra k te r érkezik. H a a szoft­ A zo n b an , ha m ás dolgot is kell végeznie, például m ásik p ro g ra m o t fu ttatn i, akkor
ver előzőleg a 6. b ite t 1-re állíto tta, a k k o r m egszakítás g en eráló d ik , egyébként a tevékeny várakozás m ó d szere p azarló, és m ás B/K m ó d szert kell keresni.
nem . (A m egszak ításo k at h a m aro sa n tan u lm án y o zzu k .) P ro g ra m o z o tt B/K eseten Ú gy szab a d u lh atu n k m eg a tevékeny várakozástól, hogy a C P U -t m egkérjük,
a C P U n o rm álisan v é g te le n íte tt ciklusban ism ételten olvassa a b illen ty ű zetállap o t indítsa el a B/K eszközt, és az eszközm egszakítással jelezzen, ha elvégezte az átvi­
reg iszterét a rra várva, hogy a 7. b it 1-es legyen. A m ik o r ez bekövetkezik, a szoftver telt. A z 5.31. á b rá ra tekintve láth atju k , m it kell ten n i. B eállítjuk az eszköz á lla p o t­
5.5. U T A SIT A ST IPU SO K 405
404 5, A Z u t a s í t A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e

reg iszte rén ek a „M egszakítás en g e d é ly e z e tt” b itjé t 1-re, ezzel a szoftver m egszakí- A negyedik regiszter az átvitel irán y át tartalm azza, te h á t hogy olvasást vagy írást
tási je le t igényel a h ard v ertő l a B /K b efejező d ések o r. E b b e n a fe jezetb en később, kívánunk.
a vezérlési folyam ato k k al foglalkozó részb en részletesen tan u lm án y o zzu k a m eg ­ A m em ó ria 100-as cím éről 32 bájto s blokk kiírása a te rm in á lra (legyen ez a
szakításokat. 4. eszköz) a k ö v etk ező k ép p en zajlik. A C P U először a 32-es, 100-as és 4-es szám o­
É rd e m e s m egjegyezni, hogy sok szám ító g ép e se tén a m egszakítási je le t úgy g e ­ k a t írja a D M A első h á ro m reg iszteréb e, az írás k ó d ját (m o n d ju k 1) pedig a n e ­
n e r á l j á k , hogy veszik a „M egszakítás e n g ed é ly e ze tt” és a „ K a ra k te r e lé rh e tő ” b i­ gyedik reg iszterbe, am in t az az 5.33. áb rá n lá th ató . E zu tán az inicializálás u tán a
te k logikai A N D szo rzatát. H a a szoftver elő b b állítja be a m egszakítás en g ed ély e­ D M A -vezérlő k érést küld a sínnek a 100-as m em ó riacím kiolvasására, ugyanúgy,
zését (m ielő tt a B /K elk ez d ő d n e), ak k o r azo n n al je len tk e zik a m egszakítás, mivel m in t am ik o r a C P U a k ar a m em ó riáb ó l olvasni. M iu tán m e g k ap ta az igényelt b áj­
a „K a ra k te r e lé rh e tő ” b it 1-es lesz. T ehát elő b b el kell in d ítan i az eszközt, és u tá ­ to t, a D M A -vezérlő B /K k érést k ezd em ényez a 4. eszköz felé a b ájt k iírása végett.
n a azo n n al engedélyezni a m egszakítást. A z á llap o treg iszterb e írva a k észen lét bit M iu tán m in dkét m űvelet sikeresen b efejező d ö tt, a D M A -vezérlő növeli 1-gyel a
n em m ódosul, m e rt csak olvasható. m em ó riacím et és csökkenti 1-gyel a szám láló érté k é t. H a a szám láló új érté k e m ég
H a b á r a m egszak ításv ezérelt B /K h ata lm a s lépés elő re a p ro g ram o z o tt B/K-hez m indig nagyobb, m int 0, ak k o r a m em ó riáb ó l a következő b ájto t olvassa és írja ki.
k ép est, távol áll a tö k éle te stő l. A z a gon d , hogy m in d en egyes átv ien d ő k a ra k te r A m ik o r a szám láló érté k e 0-vá válik, a D M A -vezérlő leállítja az átvitelt, és m eg­
m egszakítást igényel, és a m egszakítás feld o lg o zása költséges. Kell valam ilyen szakítást kezdem ényez a C P U felé. D M A -val a C P U -n ak csak n éh án y regisztert
m ódszer, am ely m egszabadít a m egszakítások több ség étő l. kell inicializálnia. E zu tán felszabadul m ás m u n k ára m indaddig, am íg a teljes átvi­
A m egoldást a p ro g ram o z o tt B /K -hez való v isszatérés jele n ti, de rá kell v enni te l b efejező d ik, és ak k o r m egszakítást k ap a D M A -tól. N éh án y D M A két, h áro m
valaki m ást, hogy ő végezze el a m u n k át. (S ok p ro b lém a m eg o ld ása azon alapszik, vagy a k ár tö b b regiszterkészlettel ren d elk ezik , így p árh u zam o san tö b b átvitelt is
hogy m ás végzi el a m u n k át.) A z 5.33. á b ra m u ta tja a m egoldás e lren d ezését. Itt k ép es v ezérelni.
egy új lap k át a d tu n k a ren d szerh ez, a DMA- (D irect M em ory Access, direkt me­ B ár a D M A m egszabadítja a C P U -t a B /K m u n k a d a n d árjátó l, a C PU nem te l­
m óriaelérés) vezérlő t, am ely k ö zvetlenül elé ri a sínt. jesen szabad. H a a D M A nagy sebességű eszközt, p éld áu l m ágneslem ezt vezérel,
a k k o r sok sínciklusra van szüksége m ind a m em ória, m in d az eszköz elérése é rd e ­
k éb en . E ciklusok a latt a C P U v árak o zásra kényszerül (a D M A m agasabb p rio ­
Terminál
ritással igényel sínciklust, m e rt a B /K eszközök gyakran n em to lerálják a k éslel­
te té st). A m ik o r a D M A sínciklust vesz el a C P U -tó l, azt cikluslopásnak hívjuk.
M in d azo n által az a nyereség, am ely abból szárm azik, hogy n em kell b á jto n k é n t
m egszakítást kezelni, felülm úlja a cikluslopás o k o zta veszteséget.

Számláló Cím 5.5.8. A Pentium 4 utasításai


C PU \ \ DMA
E b b e n és a következő k é t szakaszban a h áro m p é ld a k é n t használt gép, a P en tiu m 4,
az U ltraS P A R C III és a 8051 u tasításren d sz erét tek in tjü k át. M indegyiknek van
egy alap k észlete, am elyet a fo rd ító p ro g ram o k n o rm álisan g en eráln ak , és eze n fe ­
lül olyan u tasítások, am elyeket ritk án használnak, vagy csak az o p eráció s ren d szer
h asználja. V izsgálatainkban az általán o s u tasításo k ra k o n cen trálu n k . K ezdjük a
P en tiu m 4-gyel.
A P en tiu m 4 u tasításren d sz ere 32 bites u tasításo k és a k o ráb b i 8088-as életéből
szárm azó u tasításo k keveréke. A z 5.34. áb rán a fo rd ító k és a p ro g ram o zó k által
m an ap ság gyakran használt egész u tasításo k n ak egy v álo g atását adjuk. E z a lista
5.33. ábra. DMA-vezérlőt tartalmazó rendszer távolról sem teljes, n em ta rtalm az sem leb egőpontos, sem vezérlő u tasításo k at, sőt
n éh án y egzotikus egész u tasítást sem (m int a táb lázatb an k eresés A L -b en ad o tt
A D M A lap k a leg aláb b négy olyan reg iszte rt ta rta lm az , am elyek a C P U -n fu ­ b ájt a lap ján ). M in d azo n által érzék elteti, hogy m it csinál a P en tiu m 4.
tó szoftverrel b e tö lth e tő k . A z első azt a k ezd ő m em ó riacím et tartalm azza, a m e ­ Sok P en tiu m 4 u tasításn ak egy vagy k é t o p e ra n d u sa van, ez leh et m em ó ria vagy
lyiket írni vagy olvasni kell. A m áso d ik az átv ien d ő b á jto k szám át tartalm azza. A regiszter. P éld áu l a k é t o p e ran d u so s ADD utasítás, am ely a fo rrá st h ozzáadja a ccl-
h arm ad ik az átvitelre kiválasztott eszköz so rszám át vagy a B /K cím et tartalm azza. o p e ra n d u sh o z, vagy az INC utasítás, am ely az o p e ra n d u st növeli eggyel (1 hozzá-
5.5. U T A S(T A ST (P U S0 K 407
406 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE

adásával). N éh án y u tasítá sn a k tö b b h aso n ló v arián sa van. P éld áu l a lé p te tő u ta ­ Mozgató utasítások Vezérlésátadó utasítások
sításo k n ak van b alra és jo b b ra lé p te tő v álto zata, sőt, m indegyiknek van előjeles MOV DST SRC SRC megy DST-be JM PADDR Ugrás az ADDR címre
PUSHSRC SRC a verembe Jxx ADDR Feltételes ugrás EFLAGS alapján
és előjel nélküli v álto z a ta is. A leg tö b b u tasításn ak k ü lö n b ö ző k ó d o lása leh et, az
POP DST Veremből kivesz DST-be GALL ADDR A2 ADDR című eljárás hívása
o p e ra n d u s term é sz e té tő l függően.
XCHG DS1.DS2 DSl és DS2 tartalmát kicseréli RÉT Visszatérés eljárásból
A z 5.34. áb rá n az SRC m ező in fo rm áció fo rrás, am ely n em változik. E zzel e lle n ­
LEA DST SRC SRC effektív címe DST-be IRET Visszatérés megszakításból
b en a DST m ező c é lo p e ran d u s, am elyet az u tasítás m ódosít. L étezik szabály arra, CMOVcc DST SRC Feltételes mozgatás LOOPxx Ismétlés, amíg a feltétel teljesül
hogy m it leh et, és m it n em leh et csinálni a fo rrással, illetve a célo p e ran d u ssal, INT ADDR Szoftvermegszakítás kezdeményezése
am ely h ek tik u san v áltozik u tasításró l u tasításra, de ezt mi m o st n em részletez­ Aritmetikai utasítások INTŐ Megszakítás túlcsordulás esetén
zük. Sok u tasításn a k h á ro m v álto zata van, 8, 16 és 32 b ites o p eran d u ssal. E zek et ADD DST SRC DST+ SRC

külö n b ö ző m űveleti k ó d o k és/vagy egy b it k ü lö n b ö ztetik m eg az u tasításb an . Az SUB DST SRC DST- SRC Karakterlánc utasítások

5.34. áb ra a 32 bites u ta sításo k ra helyezi a hangsúlyt. MÚL SRC EAX * SRC (előjel nélküli) LODS Karakterlánc betöltése
IMULSRC EAX * SRC (előjeles) STOS Karakterlánc tárolása
K ényelm i okból az u ta sítá so k a t c so p o rto k b a so roltuk. A z első cso p o rt az a d a t­
DIV SRC (EDX:EAX)/SRC (előjel nélküli) MOVS Karakterlánc mozgatása
m ozgató u tasításo k a t tartalm azza, am elyek a reg iszte rek , m e m ó ria és v erem k ö ­
IDIVSRC (EDX:EAX)/SRC (előjeles) CMPS Két karakterlánc összehasonlítása
zö tt m ozgatják az a d a to k a t. A m áso d ik az előjel n élküli és elő jeles aritm etik ai u ta ­
ADC DST SRC DST+ SRC + átvitelbit SCAS Keresés karakterláncban
sítások csoportja. Szorzás és osztás e seté n a 64 b ites szo rzato t, illetve az o sztan d ó t
SBB DST SRC DST-SRC-átvitelbit
az EAX (alsó rész) és EDX (felső rész) re g isz te rp á r tartalm azza. INC DST DST+ 1 Feltételkódok
A h arm ad ik cso p o rt a bin árisan k ó d o lt decim ális (B C D ) aritm etik a, ahol m in d en DEC DST DST-1 STC Átvitel beállítása EFLAGS-ben
bájt k ét négybites fa la tra (nibbie) van osztva. M in d en falat egy decim ális szám je­ NEG DST 0-DST CLC Atvitelbit nullázása EFLAGS-ben
gyet tartalm az (0 -9 ). A z 1010-1111 bitk o m b in áció k n em haszn álato sak . Tehát egy CMC Atvitelbit komplementálása EFLAGS-ben

16 bites egész 0-tól 9999-ig te rje d ő szám okat tarta lm a z h a t. B ár ez a m ó d szer tá ro ­ Binárisan kódolt decimális utasítások STD Irány beállítása EFLAGS-ben

lási szem pontból nem hatékony, de szü k ség telen n é teszi a decim álisról b in árisra DAA Decimális igazítás összeadás után CLD Irány nullázása EFLAGS-ben
DAS Decimális igazítás kivonás után STI Megszakításbit beállítása EFLAGS-ben
való és a visszakódolást. A z eb b e a c so p o rtb a ta rto z ó u tasításo k B C D szám okon
AAA ASCII igazítás összeadás után CLI Megszakításbit nullázása EFLAGS-ben
végeznek m űveleteket. E z ek e t intenzíven h asználják a C O B O L -p ro g ram o k .
AAS ASCII igazítás kivonás után PUSHFD EFLAGS verembe töltése
A logikai és lé p te tő /fo rg a tó u ta sítá so k egy szó vagy b á jt b itjeit m an ip u lálják a
AAM ASCII igazítás szorzás után POPFD Kiolvasás veremből az EFLAGS regiszterbe
legkülönbözőbb m ó d o n . T ö b b k o m b in áció ju k létezik. AAD ASCII igazítás osztás előtt LAHF EFLAGS regiszter AH-ba töltése
A k ö v e tk e z ő k ét csop ort te sz te lé sse l, ö sszeh a so n lítá ssa l é s elágazással fo g la lk o ­ SAHF AH regiszter EFLAGS-be töltése
zik. A te sz te lé s é s ö ssze h a so n lítá s e red m én y e az EFLAGS regiszter b itjeib en tá ro ló ­ Logikai utasítások
dik. A Jxx je lz é sű utasítások fe lté te le s e lágazást v alósítan ak m e g az e lő z ő ö ssz e h a ­ AND DST SRC DST logikai és SRC Egyéb utasítások
son lítás (teh á t az EFLAGS bitjei) alapján. GR DST SRC DST logikai vagy SRC SWAP DST DST kis/nagy endián váltása

A P entium 4 tö b b u tasítást tartalm az, am elyek k a ra k te rlá n c o k o n végeznek XOR DST SRC DST kizáró vagy SRC CWQ EAX kiterjesztése (EDX:EAX)-re
NŐT DST DST 1-es komplemense CWDE 16 bites AX kiterjesztése EAX-re
m ű veletet; ilyenek a b etö ltés, a táro lás, a m ásolás és a k eresés. E zek n ek az u ta ­
ENTER SIZE, LV SIZE méretű veremkeret létesítése
sításoknak leh et ún. prefix b ájtja, a REP, am ely az u tasítás ism étlését e re d m é n y e ­
Léptető/forgató utasítások LEAVE ENTER létesítette veremkeret torlése
zi m eg ad o tt feltétel teljesüléséig, p é ld áu l az ECX m in d en v é g reh ajtásk o r csökken
SAUSAR DST # DST balra/jobbra léptetése # bittel NOP Üres utasítás
1-gyel m indaddig, am íg 0 n em lesz. Ezzel a m ó d szerrel a k á rm e k k o ra ad atb lo k k DST logikai balra/jobbra léptetése HLT Megállás (Halt)
SHUSHR DST #
átm o zg ath ató , ö sszeh aso n líth ató és így tovább. A k ö v etk ez ő c so p o rt a fe lté te lk ó ­ # bittel IN AL, PORT Bájtbevitel PORT ról AL be
do k kezelésével foglalkozik. ROL/ROR DST # DST balra/jobbra forgatása # bittel
OUT PORT AL Bájtkivitel AL-ből PORT-ra
A z utolsó cso p o rt olyan u tasításo k összevisszasága, m elyek m áshova n e m fé rte k DST és átvitel balra/jobbra forgatása
RCL7RCR DST # WAIT Várakozás megszakításra
# bittel
be. Id e ta rto z ik a konverzió, v e rem k eret-k ezelés, C P U -leállítás és B/K.
cc feltétel
A P entium 4 szám os prefix le h e tő sé g e t tartalm az, egyet (REP) ezek közül m ár Teszt(elő) és összehasonlító utasítások SRC = forrás # = léptetés/forgatás száma
em lítettü n k . M in d en prefix egy speciális bájt, am ely a legtöbb u tasítás elő tt sze­ DST = cél LV = # lokális változók száma
TSTSRC1,SRC2 Logikai és, feltételbit beállítása
re p e lh e t, h aso n ló an , m in t az IJV M e seté n a WIDE. A REP prefix h a tá sa az, hogy Feltételbit beállítása SRC1-SRC2
CMPSRC1.SRC2
alapján
az u tasítás m in d ad d ig ism étlődik, am íg az ECX reg iszte r ta rta lm a 0-vá nem válik.
A REPZ és a REPNZ addig ism étli az u tasítást, am íg a fe lté te lk ó d Z bitje 1-es, illetve
0. A LOCK lefoglalja a sín t az u tasítás teljes v égrehajtásáig, am i leh ető v é teszi m u l­ 5.34. ábra. Válogatás a Pentium 4 egész számokra értelmezett utasításkészletéből
tiprocesszor e setén a szinkronizálást. Van olyan prefix, am ely az u tasítást 16 vagy
408 5. A Z u t a s í t A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e
5.5. U T A SÍT A ST IPU SO K 409

32 bites m ó d b a kényszeríti, am i nem csak azt jelen ti, hogy m eg h atáro zza az ope- Betöltő utasítások
ran d u s hosszát, h an em a cím zési m ó d o t is teljesen átdefiniálja. V égül, a P en tiu m 4 LDSB ADDR, DST Előjeles bájt (8 bit) betöltése ANDR1,S2, DST Logikai AND
bonyolult szegm entálási sém ával ren d elk ezik , van kód, ad a t, v erem és ex tra szeg­ LDUB ADDR, DST Előjel nélküli bájt (8 bit) betöltése ANDCC " Logikai AND cc beállításával
m ens, am ely a 8088 a rc h ite k tú rá tó l szárm azik. Prefix m egadásával leh e t elérn i, LDSH ADDR, DST Előjeles félsző (15 bit) betöltése ANDN " Logikai NAND
hogy az utasítás egy m e g h a tá ro z o tt szegm enst h asználjon, de ezzel n em fog lalk o ­ LDUH ADDR, DST Előjel nélküli félszó (16 bit) betöltése ANDNCC" Logikai NAND cc beállításával
zunk (szerencsére). LDSW ADDR, DST Előjeles szó (32 bit) betöltése ORR1.S2, DST Logikai OR
LDUWADDR, DST Előjel nélküli szó (32 bit) betöltése ORCC " Logikai OR cc beállításával
LDX ADDR, DST Duplasző (64 bit) betöltése ORN " Logikai NCR
ORNCC" Logikai NOR cc beállításával
5.5.9. Az UltraSPARC III utasításai Tároló utasítások X0RR1,S2, DST Logikai XOR
STB SRC, ADDR Bájt (8 bit) tárolása XORCC " Logikai XOR cc beállításával
A z U ltraS P A R C III valam ennyi olyan felh aszn áló m ódú egész a ritm etik ai u ta s ítá ­ STH SRC, ADDR Félsző (16 bit) tárolása XNOR " Logikai kizáró NOR
sát tartalm azza az 5..'í5. áb ra, am ely et fo rd ító p ro g ra m g e n e rá lh a t. A leb eg ő p o n to s STW SRC, ADDR Szó (32 bit) tárolása XNORCC" Logikai kizárő NOR cc beállításával
u tasításo k hiányoznak, csakúgy, m in t a vezérlő (p éld áu l gyo rsító tár-k ezelő , ren d - STX SRC, ADDR Duplaszó (64 bit) tárolása

szer-ú jrain d ító ) és a nem a felhasználói c ím tarto m án n y al k ap cso lato s u tasításo k , Vezérlő utasítások
Aritmetikai utasítások Bl^ccADDR Elágazás jövendöléssel
az elavult utasításo k . A k észlet m eg lep ő en kicsi, az U ltraS P A R C III v aló b an re d u ­
ADDR1,S2,DST Összeadás BPr SRC, ADDR Elágazás regisztertartalom alapján
kált u tasításren d sz e rű gép. ADDCC " Összeadás és cc beállítása GALL ADDR Eljáráshívás
A LOAD és STORE u tasításo k je le n té se nyilvánvaló, 1, 2, 4 és 8 b ájto s v álto zatu k ADDC " Összeadás átvitellel RETURN ADDR Visszatérés eljárásbői
létezik. H a 64 bitnél kisebb m é re tű a b e tö lte n d ő , ak k o r vagy előjelesen , vagy e lő ­ ADDCCC " Összeadás átvitellel és cc beállítása JM PLA D R DST Ugrás és kapcsolás
jel nélkül (0-val) kiegészítődik 64 bitre. M in d k ét v álto z atra van utasítás. SUBR1,S2, DST Kivonás SAVÉ RÍ, S2, DST A regiszterablak tárolása
A következő cso p o rt az aritm etik ai u ta sítá so k a t tartalm azza. A n ev ü k b en CC SUBCC " Kivonás és cc beállítása RESTORE " A regiszterablak visszaállítása
k a ra k te re k e t ta rta lm az ó u tasításo k b eállítják az N Z V C feltéte lk ó d bitjeit, a tö b b i SUBC " Kivonás átvitellel TccCQTRAP# Feltételes csapda
azo n b an nem . C ISC g ép e k en a legtöbb u tasítás b eállítja a fe lté te lk ó d o t, a R IS C SUBCCC" Kivonás átvitellel és cc beállítása
PREFETCH FCN Előre betöltés memóriából
MULXR1,S2, DST Szorzás
g ép ek en azonban ez nem kívánatos, m e rt k o rlá to z n á a l'ord ító p ro g ram ab b eli sza­ LDSTUB ADDR, R Atomi betöltés/tárolás
SDIVXR1,S2, DST Előjeles osztás MEMBAR MASK
bad ság át, hogy u tasítá so k at lép jen á t ü re s id ő szelet k itöltése érd e k é b e n . H a az Memóriasorompó
UDIVXR1,S2, DST Előjel nélküli osztás
e re d e ti utasítási so rre n d A ... B ... C, és A b eállítja a felté telk ó d o t, v alam in t B tesz­
TADCC RÍ, S2, DST Címkézett összeadás Egyéb utasítások
teli, akko r a fo rd ító nem illesztheti be a C -t A és B közé, ha C is b eállítja a fe lté ­
SETHI CON, DST A 10-3 T bitek beállítása
telk ó d o t. É p p en e z ért sok u tasításn ak k ét v álto zata van. A fo rd ító á ltaláb an azo ­ Léptető/forgató utasítások MOVcc cc, S2, DST Feltételes mozgatás
k at használja, am elyek nem állítják a felté te lk ó d o t, kivéve, ha a rra k ésőbb szükség SLLR1,S2, DST Logikai léptetés balra (32 bites) Mozgatás regisztertartalom
M 0VrRl,S2,DST
van. Van szorzás, előjel nélküli és előjeles osztás m űvelet. Kiterjesztett logikai léptetés balra alapján
SLLXR1,S2, DST
(64 bites) NOP Üres utasítás
A cím kézett aritm e tik a speciális ö n azo n o sító 30 bites sz ám fo rm átu m o t jelen t.
SRLR1,S2, DST Logikai léptetés jobbra (32 bites) P0PCS1,DST Populácíőszámlálő
E z olyan nyelvek e se tén h aszn álh ató , m in t a S m alltalk vagy a P rolog, ahol a v álto ­
Kiterjesztett logikai léptetés jobbra RDCCRV, DST A feltételregiszter olvasása
SRLXR1,SZ, DST
zók típ u sa fo rd ítá sk o r n em ad o tt, illetve fu tási id ő b en v álto zh at. A z ilyen szám ok (64 bites)
WRCCRR1,S2,V A feltételregiszter Írása
esetén a fo rd ító ADD u tasítá st g en e rá lh a t, és a gép fu tásk o r d ö n th e ti el, hogy egész SRAR1,S2, DST
Aritmetikai léptetés jobbra (32
bites) RDPCV, DST Az utasításszámlálő olvasása
vagy leb eg ő p o n to s összeadás m ű v eletet kell végeznie.
Kiterjesztett aritmetikai léptetés
A lé p te tő csop o rt egy b a lra és k ét jo b b ra lé p te tő u tasítási tartalm az, m indegyik­ SRAXR1,S2, DST
jobbra (64 bites)
n ek van 32 és 64 bites válto zata. SLL e se tén a teljes 64 bit részt vesz a lé p te té sb en ,
m ert ez m ég kom patibilis a k o ráb b i szoftverrel. A lé p te té se k nagyrészt b itm a n ip u ­ SRC = forrásregiszter TRAP# = csapdaszám CC = feltételkód-beállítás
lációra h asználato sak . A legtöbb C ISC g é p n ek re n g e teg lé p te tő és fo rg ató u ta s ítá ­ D5T = célregiszter FCN s=fuggvénykód R = célregiszter
R^= forrásregiszter MASK = műveleti típus CC = feltétel
sa van, többségük teljesen h aszo n talan . H ián y u k kevés fo rd ító p ro g ram -k é szítő n e k S2 = forrás: regiszter vagy közvetlen CON - konstans r = LZ, LEZ,Z, NZ, 6Z, GÉZ
okoz álm atlan éjszakái. ADDR = memóriacím V = regiszterjelölö

A logikai u tasításo k cso p o rtja h aso n ló az aritm etik aih o z. Van AND, OR, XOR,
ANDN, ORN és XNORN utasítás. Az u tó b b i h áro m é rté k e m eg k érd ő jelezh ető , b ár 5.35. ábra. A z UltraSPARC III alapvető egész utasításai
eg)’etlen ciklus a la tt v ég reh ajth a tó k , és lényegében nem k ívánnak plusz h ard v ert,
ezért k észültek el. Id ő n k é n t m ég a R IS C -terv ező k sem tu d n a k ellenállni a k ísé r­
tésnek.
410 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.5. U T A SÍT Á ST lPU SO K 411

A következő cso p o rt tarta lm a z z a a v ezérlcsá ta d ó u tasításo k at. A BPcc u ta s ítá ­ 5.5.10. A 8051 utasításai
sok olyan cso p o rtjá t re p re z e n tá lja , am elyek k ü lö n b ö ző feltéte le k alap ján tö rté n ő
ugrást végeznek, és az u tasításb an jelzik, hogy a fo rd ító szerin t lé trejö n -e az ugrás, A 8051-esn ek egyszerű u ta sításren d sz ere van, am elynek első része az 5.37. ábrán
vagy sem . A BPr reg iszte rt tesztel, és a feltétel te ljesü lések o r ugrik. láth a tó . M in d en sor tartalm azza a m űveleti k ó d jelét, az u tasítás tö m ö r leírását és
E ljáráshívások ra két m ó d szer létezik. A CALL u tasítás az 5.15. á b rá n lá th a tó a fo rrás- vagy a célo p e ran d u s szám ára alk alm azh ató cím zési m ódot, attó l függően,
4. form át alkalm azza 30 bites P C -relatív eltolási érték k el. E z az é rté k eleg e n d ő hogy SR C avagy D S T szerepel a m űveletben. A fo rrá so p e ra n d u s jele SRC, a cél-
2 G B távolság áth id alá sá ra m in d k ét irányban. A CALL utasítás az Rí5 regiszterbe o p e ra n d u sé pedig DST. A hogy v árh ató , sokféle MOV utasítás létezik az ACC (a k ­
rakja a visszatérési cím et, ebből a regiszterből a hívás u tán R31 lesz. k u m u lá to r) és regiszter vagy m em ó ria közötti ad atm o zg atásra. V annak verem be
A z eljáráshívás m ásik m ó d ját az la vagy Ib fo rm ájú JMPL u tasítás szolgáltatja, tö ltő és verem ből kivevő u tasítások. A verem m indig a 256 cím feletti m em ó riáb an
am ely lehetővé teszi, hogy a visszatérési cím et bárm ely ik reg iszte rb en elhelyezzük. van. A verem teteje d ed ik ált regiszter által m u ta to tt cím en van. A verem m indig
E z a form a hasznos, ha a célcím et fu tás k ö zb en szám ítjuk ki. a külső m em ó riáb an van, m ert a 8051-esnek csak 128, a 8052-esnek pedig csak
A SAVÉ és a RESTORE a reg iszte rab lak o n és a v e re m m u ta tó n m anipulál. M in d k e ttő 256 b ájt belső m em ó riája van, ezért a cím zés a 16 bites DPTR regiszteren keresztül
csap d át eredm én y ez, ha a k övetkező (m eg elő ző ) ab lak n em é rh e tő el. tö rtén ik . A z ad atm o zg ató utasításo k c so p o rtját n éhány olyan seg édutasítás teszi
A z u tasításo k utolsó cso p o rtja se g éd u tasításo k at tartalm az. A SETHI u tasításra teljessé, am elyek regiszterek részeinek felcserélését végzik.
azért van szükség, m ert csak így tu d u n k 32 bites közvetlen a d a to t reg iszterb e tö l­ A 8051-es egyszerű aritm etik ai u tasításo k at tartalm az összeadás, kivonás, szor­
teni. E zt úgy teh etjü k , hogy a SETHI utasítással a 10-31. b ite t állítjuk be, a m a ra d é ­ zás és osztás elvégzésére. A z utóbbi u tasításo k b an a regiszter rögzített. N övelés és
kot pedig a következő u ta sítá sb an ad ju k m eg közvetlen o p e ra n d u sk é n t. csö k k en tés szintén lehetséges, és gyakran h asználatos is. L ogikai és lép tető u ta sí­
A p opulációszám láló u tasítás rejtély. E z az u tasítás m eg szám lálja az egy szóban táso k szintén vannak.
találh ató 1-es b itek et. A z a szóbeszéd járja , hogy nagyon jó ro b b an táso k szim ulá­ A 8 0 5 1-es további utasításait az 5.38. áb rán láthatjuk. Itt v an n ak a biten k én ti
lására, és a Los A lam o s N atio n al L a b o ra to ry (egy nagy felh aszn áló ) is jo b b a n sze­ utasításo k , p éldáu l a
re ti azo kat a szám ító g ép ek et, am elyeknek van ilyen u tasításuk.
Szám os olyan szokásos C IS C -utasítás, am ely hiányzik a felsorolásból, köny- SETB 43
nyen szim uhilható vagy GO regiszterrel, vagy k o n stan s o p eran d u ssa l ( I b fo rm a).
E zek közül m u tat n é h á n y a t az 5.36. áb ra. E z e k e t tartalm azza az U ltraS P A R C III u tasítás, am ely 1-re állítja a 43. b itet, de nem v álto ztatja a b ájt többi bitjét. Ezt kö ­
assem bly, és a fo rd ító k gyakran alkalm azzák. K özülük sok kihasználja, hogy a GO v ető en látju k a v ezérlésátad ó u tasításo k at, tö b b ek k ö zö tt az ugró és szu b ru tin h í­
hard v eres 0, cs a GO-ba tö ltés h atástalan . vő, valam in t k ét feltételes ugró utasítást, am elyek a fo rrást h asonlítják valam ihez,
m ajd a D JN Z ciklusszervező utasítás látható.
Utasítás Megvalósítás
MOVSRCDST GR SRC, GO, DST
CMPSRC1,SRC2 SUBCCSRC2,SRC1,G0 5.5.11. Az utasításrendszerek összehasonlítása
TST SRC ORCC SRC, GO, GO
NŐT DST XNOR DST GO, GO A h áro m p é ld án a k te k in te tt u tasításren d sz er nagyon különböző. A Pentium 4 egy
NEG DST SUB DST GO, DST hagyom ányos kétcím es, 32 bites C IS C gép hosszú e lő tö rté n e tte l, különleges és
INC DST ADD 1, DST, DST (1 közvetlen operandus) szabálytalan cím zési ren d szerrel, valam int sok m em ó riára hivatkozó utasítással.
DEC DST SUB 1, DST, DST (1 közvetlen operandus) A z U ltraS P A R C III egy m o d ern , három cím es, 64 bites R IS C , tö ltő /táro ló arch i­
CLR DST OR GO, GO, DST te k tú ra kevés cím zési m óddal, k o m p ak t és h aték o n y u tasításkészlettel. A 8 0 5 1 a r­
NOP SETHI 0, GO c h ite k tú ra egy kicsi beágyazott processzor, am elyet úgy terveztek, hogy egyetlen
RÉT JIVIPL %I7+8,%G0 lap k án m eg v alósítható legyen.
M indegyik g épnek m egvan a m aga célja. A P en tiu m 4 h áro m tervezési elven
5.36. ábra. Néhány szimulált UltraSPARC III utasítás alapszik:

1. V isszafelé kom patibilitás.


2. V isszafelé kom patibilitás.
3. V isszafelé kom patibilitás.
412 5. A Z u t a s í t A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e
5.5. U T A SÍT A ST ÍPU SO K 413

utasítás Leírás ACC Reg Dir c Bit


utasítás Leírás ACC Reg Dir i®R # c Bit
MOV 5RC m egy ACC-be X X X X
CLR Bit nullázása X X
MOV SRC regiszterbe töltése X X X
SETB Bit 1-esre állítása X X
M OV SRC m em óriába töltése X X X X X
CPL Bit kom plem entálása X X
M OV SRC indirekt töltése RAM-ba X X X
ANL SRC A N D átvitelbit X
MOV 16 bites konstans DPTR-be töltése
A NL SRC kom plem ense A N D átvitelbit X
M OVC Kód m eg y DPTR eltolással ACC-be
ORL SRC OR átvitelbit X
M O VC Kód m eg y PC eltolással ACC-be
ORL SRC kom plem ense O R átvitelbit X
M O VX Külső RAM bájt töltése ACC-be X
MOV SRC m eg y az átvitelbitbe X
M O VX Külső RAM bájt töltése ACC@DPTR-be
MOV Atvitelbit m eg y SRC-be X
M OVX ACC-ből bájt külső RAM-ba töltése X
JV Relatív ugrás, ha átvitelbit=1
M OVX ACC@DPTR-ből bájt külső RAM-ba töltése
JN C Relatív ugrás, ha átvitelbit=0
PU SH SRC bájt vere m b e töltése X
JB Relatív ugrás, ha az a d o tt bit 1-es X
POP Bájt kivétele verem bó l DST-be X
JN B Relatív ugrás, ha az a d o tt bit 0 X
XCH ACC és DST felcserélése X X
JB C R, ugrás, ha az adott bit l-es és az átvitel 0 X
XCHD ACC és DST alsó szám jegyének felcserélése X
ACALL Szubrutinhívás (11 bites cím)
SW A P DST fél bájtjainak felcserélése X
LCALL Szubrutinhívás (16 bites cím)
A DD SRC+ACC=>ACC X X X X
RÉT Visszatérés szubrutinból
ADDC SRC+ACC+átvitelbit =>ACC X X X X
RÉTI Visszatérés megszakításból
SU B B ACC-SRC-átvitelbit=>ACC X X X X
S JM P Rövid relatív ugrás (8 bites cím )
INC DST növelése X X X X
A JM P Abszolút ugrás (11 bites cím )
DEC DST csökkentése X X X X
UM P Abszolút ugrás (16 bites cím )
INC DPTR növelése
JM P Indirekt ugrás DPR-i-ACC relatív
MÚL Szorzás
JZ Ugrás, ha ACC=0
DIV Osztás
JN Z Ugrás, ha ACC nem 0
DA DST decim ális igazítása X
C JN E Ugrás, ha SRC és ACC nem egyenlő X X
A NL SRC A ND ACC=>ACC X X X X
GNE Ugrás, ha SRC *■ közvetlen operandus X X
ANL ACC A N D DST=>DST X
D JN Z DST csökkentése; ugrás, ha DST *■ 0
ANL Közvetlen operandus AN D DST=>DST X
NOP Üres utasítás
ORL S R C O R ACC=>ACC X X X X
ORL O S T O R ACC=>DST X 5.38. ábra. A 8051 utasításkészlete, 2. rész
ORL Közvetlen o perandus O R DST=>DST X
XRL SRC XOR ACC=>ACC X X X X M ai tu d á su n k alap ján senki n em terv ezn e ilyen szabálytalan gépet, ilyen kevés és
X RL D S T X O RA C C = > D ST X k ü lö n b ö ző regiszterrel. E z m egnehezíti a fo rd ító p ro g ram készítését. A regiszterek
XRL Közvetlen o perandus XOR DST=>DST X hiánya a rra k ényszeríti a fo rd ító p ro g ram o k at, hogy a v álto zó k at ki-be pakolják a
CLR DST nullázása X m em ó riáb a, am i költséges üzlet, m eg akkor is, ha két- vagy h áro m szin tű gyorsító­
C PL DST kom plem entálása X
tá r van. J ó ajánlólevél az In tel tervezői szám ára, hogy a P entium 4 az ISA -korlá-
RL DST balra forgatása X
to k elle n ére, ilyen gyors. D e láttu k a 4. fejezetben, hogy a m egvalósítás rendkívül
RLC D ST balra forgatása átvitelbiten keresztül X
bonyolult.
RR DST jobbra forgatása X
A z U ltraS P A R C III m o d e rn ISA -tcrvezést rep rezen tál. Teljesen 64 bites arch i­
RRC DST jo bbra forgatása átvitelbiten keresztül X
te k tú ra (128 b ites sínnel). Sok regisztere van. utasításai a h áro m reg iszteres m űve­
lete k e t hangsúlyozzák, plusz v annak a LOAD és STORE u tasítások. M in d en u tasítása
5.37. ábra./1805/ utasításkészlete, /, rész
azonos hosszúságú, b ár az u tasításfo rm átu m o k at nem sik erü lt kézben tartan i. D e
m ég így is kézenfekvő és h aték ony m egvalósításhoz vezet. M inden m o d ern te rv e ­
zés p é ld á n a k tek in th eti, de kevesebb utasításform átum m al.
414 5. A Z u t a s í t á s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5.6. v e z é r l é s i f o l y a m a t 415

A 8051-es egyszerű és eléggé szabályos u tasítá sre n d sz erre l rend elk ezik , viszony­
lag kevés utasítással és kevés cím zési m ó d d al. K itü n te te ti jelen tőség ű tu la jd o n sá ­
ga. hogy négy regiszterkészlete van a gyors m egszakításí'eldolgozásra. valam int a
regiszterek m em ó riab cli elh elyezkedése és elérése, és a m eg lep ő en h aték o n y b it­
m an ip u láló utasításo k . F ő célja, hogy nagyon kevés tran zisz to rral m egvaló síth ató
legyen, így sok felvihető egy klisére, és ez alacsony C P U -á ra t ered m én y ez.

5.6. Vezérlési fo ly a m a t

A vezérlési folyam ai azt a so rre n d et jelen ti, am elyben az utasítások v égrehajtódnak


dinam ikusan, teh át a p rogram végrehajtása során. Á ltalában elágazás és eljáráshívás
hiányában az egym ás után végreh ajto tt utasítások egym ás utáni m em óriahelyekről
töltő d n ek be. Eljáráshívás hatására a végrehajtási so rren d m egváltozik, az éppen (a) (b)
végrehajtás alatt lévő eljárás felfüggesztődik, és a hívott eljárás végrehajtása elkez­
dődik. A korutin o k (társru tin o k ) hasonlók az eljárásokhoz, ezek is hasonlóan térítik 5.39. ábra. Az utasitásszámláló értéke az Idő függvényében (simított), (a) Elágazás nélkül.
el a végrehajtási so rren d et. A k o rutinok hasznosak a párh u zam o s folyam atok szim u­ (b) Elágazással
lálásánál. A csapdák és a m egszakítások speciális feltételek b ekövetkezésekor térítik
el a végrehajtási so rren d et. M indezeket a tém ák at tárgyaljuk ebben az alfejezetben. fo rd ítják , am elyek sok ugrást tartalm azn ak , hiszen az if, while és m ás m agas szintű
v ezérlési szerk ezetek m egvalósítása ezen a szinten ugrásokkal történik.

5.6.1. Szekvenciális vezérlés és elágazás


5.6.2. Eljárások
A legtö bb u tasítás nem v álto ztatja a vég reh ajtási so rre n d e t. M iu tán egy u ta sí­
tás v ég reh ajtó d o tt, a m em ó riá b a n ő t k ö v ető u tasítás olvasódik és h ajtó d ik vég­ A p ro g ra m o k stu k tu rálásán ak legfontosabb tech n ik áját az eljárások adják.
re. M in d en utasítás u tán az iilasításszám láló é rté k e m egnövelődik a v é g re h a jto tt B izonyos szem pontból az eljáráshívás ugyanúgy eltéríti a végrehajtási so rren d et,
utasítás hosszával. Az utasításszám láló érté k e az idő függvényében hozzávetőleg m int az ugrás, csak am ikor befejezte fe la d a tá t az eljárás, a vezérlés visszatér a hí­
lineárisan növekszik, az átlagos utasításh o ssz/átlag o s utasítás-v ég reh ajtási idő vást k ö v ető utasításra.
m értékével. M ásk é p p en kifejezve, az a dinam ikus so rre n d , ahogy a p ro cesszo r M ás szem pontból azo n b an az eljárás törzse úgy tek in th e tő , m int egy m ag a­
ténylegesen vég reh ajtja az u tasításo k at, m egegyezik az u tasításo k p ro g ram b eli so r­ sabb szintű u tasítás definíciója. E bből a szem p o n tb ó l az eljáráshívás egy egysze­
rendjével; ezt m u tatja az 5.39. (a) áb ra. H a a p ro g ram ta rta lm a z elágazást, akkor rű u ta sítá sn ak tek in th e tő , m ég akkor is, ha az eljárás m eg leh ető sen bonyolult.
ez az egyszerű k ap cso lat az u tasításo k m em ó riab eli so rren d je és a v ég reh ajtásu k E ljárásh ív ást ta rtalm azó p ro g ram m eg értéséh ez csak azt kell tudni, hogy m it csi­
so rren d je k ö zö tt nem áll fenn. H a van elágazás, a k k o r az ulasításszám lálő é rté k e nál, azt n em , hogy az eljárás hogy’an dolgozik.
nem lineáris függvénye tö b b é az időnek, am in t azt az 5.y>. (b) áb rá n látjuk. V ég ­ K ü lö n ö sen érd ek es az eljárások egyik speciális fajtája, a rek u rzív e ljá rá s, am ely
ered m én y b en n eh ézzé válik az u tasításo k so rre n d jén e k vizualizálása a p ro g ra m ­ ö n m ag át hívja vagy közvetlenül, vagy m ás eljárásokon keresztül. A rekurzív eljárá­
lista alapján. sok tan u lm án yozása b etek in tést nyújt az eljáráshívások m egvalósításába és a lo k á­
H a a pro g ram o z ó k szám ára n e h ézség et okoz nyom on követni, hogy a pro cesszo r lis v áltozók m ibenlétébe. A továbbiakban a rekurzív eljárásra m u tatu n k egy példát.
m ilyen so rren d b e n fogja v ég reh ajtan i az u tasításo k at, a k k o r könnyen h ib á z h a t­ A H a n o i tornyai egy ősi problém a, am ely egyszerűen m eg o ld h ató rekurzív e l­
nak. E z az észrev étel v eze tett D ljk stra (1968a) „G O T O S tate m en ts C o n sid ered járással. H an o i egyik k o lo sto ráb an van három aranypálca. A z egyikre 64 darab,
H a rm fu l” (A G O T O u tasítás á rtalm as) cím ű ellen tm o n d áso s leveléhez, am ely­ k ö zep én Ivoikas koncen trik u s aran y k o ro n g o t fűztek. M inden korong kicsit kisebb
ben a goto u tasítás m ellőzését javasolta. E z a levél v á lto tta ki a stru k tu rá lt p ro g ra ­ átm é rő jű , m int az a la tta lévő. A m ásodik és h arm ad ik pálcán k ezd etb en nincs
m ozás fo rra d a lm á n a k m egszü letését, am ely a goto kik ü szö b ö lésére jo b b a n stru k ­ sem m i. A szerzetesek szorgalm asan dolgoznak azon, hogy m inden k o ro n g o t a
tu rá lt vezérlési szerk ez e te k e t javasol, p éld áu l a while ciklusokat. T erm észetesen az h arm a d ik p á lc á ra m ozgassanak úgy, hogy közb en egyszer sem rak h atn ak nagyobb
ilyen p ro g ram o k a t is 2. szintű (u ta sítá sre n d sz e r-a rc h ite k tú ra szintű) p ro g ra m o k ra k o ro n g o t n álán á l kisebbre. A zt m ondják, ha befejezik, eljön a világvége. H a vala-
416 5. A Z U T A SlT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.6. V E Z É R L É S I FO LYA M A T 417

1. pálca 2. pálca 3. pálca

/ / Kezdeti állapot <

5.40. ábra. A Hanoi tornyai probléma l<ezdeti állása 5 koronggal

ki kézzelfogható gyakorlati ta p a sz ta la to k a t a k a r szerezni, m eg teh eti m in d ezt k e ­


vesebb m űanyag koronggal is, de a világvége effek tu s b ek ö v etk e zéséh ez 64 d a ra b
aranykorong kell. A z 5.40. á b ra 5 k o ro n g ra m u ta tja be a kezd eti állást.
n k o ro n g n ak az 1. p álcá ró l a 3. p á lc á ra való m o zg atásán ak m egoldása:
1 korong
E lőször m ozgassuk át a felső n - l k o ro n g o t a 2. p álcá ra, m ajd rak ju k á t az 1. p á l­ átmozgatása
cán m arad t egyetlen k o ro n g o t a 3. p álcára, aztán a 2. p álcá ró l m ozgassuk ál az o tt az 1. pálcáról
lévő « - 1 ko ro n g o t a 3. p álcára (lásd 5.41, ábra). a 3. pálcára
A p ro b lém a m eg o ld ására olyan eljárás kell, am ely n k o ro n g o t átm o zg at az i.
p álcáról a j. pálcára. H a ezt az eljárást m eghívjuk a

towers(n, i,j)

utasítással, az a m egoldást írja ki. A z eljárás elő szö r ellenőrzi az « = 1 feltétel Végül 2 korong
teljesülését. H a teljesül, a k k o r a m eg o ld ás triviális, át kell rak n i a k o ro n g o t az i. átmozgatása
p álcáró l a j. pálcára. H a n D 1, ak k o r a m egoldás h áro m lépésből áll, m in t m ár a 2. pálcáról
a 3. pálcára
em lítettü k , m indegyik egy rekurzív eljáráshívás. A teljes m eg o ld ás az 5.42. áb rán
láth ató . A

towers{3,1,3)

hívás, am ely az 5.41. áb rá n láth a tó p ro b lé m a m eg o ld ását adja, h áro m további h í­


vást generál:
5.41. ábra. A Hanoi tornyai probléma lépései 3 korongra
towers{2,1,2)
towersd, 1, 3) R ekurzív eljárások m egvalósításához verem kell, ahol az eljárás p a ra m é te re it és
towers{2, 2, 3)
lokális v áltozóit táro lju k m in d en egyes hívás esetén , m int azt az IJV M e setén lá t­
tuk. M in d en egyes eljáráshíváskor a hívott eljárás szám ára új v erem k eret létesül a
A z első és a harm ad ik további h áro m hívást ered m én y ez, összesen te h á t h ét hívás v erem te tejé n . A p éld án k b a n a verem felfelé növekszik, alacsonyabb cím től m ag a­
lesz. sabb felé, m int az H V M -ben.
418 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.6. V E Z É R L É S I FOLYAM AT 419

public void towers(int n, int I, int j) { A z elsó, am it a hívott eljárásn ak te n n ie kell, az FP é rté k é n e k elm en tése (így az
Int k; visszat()ltheta lesz k ilépéskor), aztán az SP-t F P -be kell m ásolnia, és esetleg növel­
nie kell egy szó m éretével, attól függően, hogy az FP hova m utasson. P éld án k b an
if{n== 1) az FP a régi F P -re m u tat, d e I J V M esetén a k ap cso ló m u tató ra. K ülönböző gépek
System.out.println(''Korong mozgatása" + i + "-ről" +j "-re");
kissé k ü lö n b ö ző m ó don kezelik a v e re m k c rc tc t, az FP-t n éh a a k eret aljára, n é ­
else {
ha a tete jé re , m áskor p ed ig valahova középre teszik, m in t az 5.43. ábrán. E bből a
k = 6 - i- j;
szem pontból m egéri összehasonlítani az 5.43. és a 4.12. áb rát, am elyek a kap cso ­
towers(n - 1, i, k);
towers{1, i, j);
ló k é t k ü lö n b ö ző kezelését m u tatják . D e m ás m ó dszerek is lehetségesek. M inden
towers(n - 1, k, j); esetb en a lényeg an n ak a biztosítása, hogy az eljárás visszatérését és a v erem hivas
) elő tti á lla p o tá n a k h elyreállítását m eg tu d ju k oldani.
} E ljá rá sp ro ló g u sn a k nevezzük azt a tevékenységet, am ely a régi v erem k eret-
m u ta tó e lm en tését, az új v ere m k e re t-m u ta tó m egadását és a v erem m u tató n ak a
5.42. ábra. Eljárás a Hanoi tornyai probléma megoldására lokális v áltozók befogadása m iatti növelését tartalm azza. A z eljárásból való visz-
sz atérésk o r a verm et ki kell tak arítan i, ezt nevezzük eljárásep iló g u sn ak . M inden
A v e rem m u ta tó m ellett, am ely m indig a v erem te te jé re m u tat, gyakran kényel­ szám ító g ép egyik legfontosabb jellem zője, hogy a pro ló g u st és az epilógust m ilyen
m es, ha van egy v e re m k eret-m u ta tó n k is, az FP. am ely a k e re te n belül fix helyre röviden és gyorsan tu d ja elvégezni. H a ez hosszú és lassú, akkor az eljáráshívások
m u tat. E z a hely le h e t a k ap cso ló m u ta tó ( ü B J R t F ) , m int az IJV M -b en , vagy a k öltségesek. A zok a pro g ram o zó k , akik szám ára fo n to s a hatékonyság, kerüljek
nulladik lokális változó. A z 5.43. áb ra egy 32 bites szavas gép ese té re m u ta tja a ve­ a sok rövid eljárást, helyette inkább hosszú, m onolitikus p ro g ram o t írjanak. A
rem k e re te t. A z első íowers hívás a v erem b e rak ja az n, i és j p a ra m é te re k e t, m ajd P en tiu m 4 ENTER és LEAVE u tasításait azért tervezték, hogy a prológus, illetve ep iló ­
CALL u tasítást h ajt v égre, am ely a v erem b e teszi a visszatérési cím et az 1012 cím ­ gus nagy részét h aték o n y an elvégezzék. T erm észetesen, ezek a verem kezelés egy
re. A hívott eljárásb a való b e lé p é sk o r a hívott e ltáro lja a régi FP é rté k é t (1000) a bizonyos m ó d szerére épülnek, így ha a fo rd ító p ro g ram m ás m ód szert alkalm az,
verem be az 1016 cím re, aztán növeli a v e re m m u tató t, ezzel h elyet foglal a lokális a k k o r n em h asználhatók.
változók szám ára. Egy 32 bites lokális változó (k) e se té n az SP érté k e 4-gyci nó, és T é rjü n k vissza a H a n o i tornyai pro b lém áh o z. M inden egyes eljáráshívás új ve­
1020 lesz. Az 5.43. (a) á b ra m u ta tja ezt a helyzetet. re m k e re te t ad hozzá a v erem hez, és m inden visszatérés eltávolít egyet. A nnak il­
lu sztrálására, hogy a verem használatával hogyan valósítjuk m eg a rekurzív e ljá rá ­
Cím sokat, kövessük nyom on a towers(3,1,3) eljáráshívást.
SP k SP - k 1068 A z 5.43. (a) á b ra azt az álla p o to t m u tatja, am ely közvetlenül a hívás (és a p ro ló ­
FP - ► Régi FP = 1040 FP ► Régi FP = 1040 1064 gus) u tán keletkezik. A z eljárás először ellenőrzi, hogy teljesül-e a z n = \ feltétel,
Visszatérési cím Visszatérési cím 1060 és mivel azt találja, hogy n = 3, így v ég rehajtja a
j=3 j =2 1056
FP
i=l i=1 1052
SP towers(2,1,2)
n=1 n=1 1048
SP k k=3 ► k k=3 1044

FP ► RégiFP = 1016 Régi FP= 1016 Régi FP = 1016 Régi FP = 1016 1040 eljáráshívást. E n n e k befejezése u tá n i v e rem állap o to t m u ta tja az 5.43. (b) ábra.
Visszatérési cím Visszatérési cím Visszatérési cím Visszatérési cím 1036 A z e ljárás tö rzsén ek v ég reh ajtása elölről kezdődik (a hívott eljárás m indig a leg­
1= 2 1= 2 j =2 j =2 1032 elején k ezdődik). E k k o r sem teljesül az n = 1 feltétel, így ism ét kiszám ítja k é rté ­
1= 1 i=1 i=l 1= 1 1028 k é t és a
n =2 n =2 n=2 n=2 1024
k k=2 k=2 k=2 k=2 1020
towers(1,1,3)
Régi FP = 1000 Régi FP = 1000 Régi FP = 1000 Régi FP= 1000 Régi FP = 1000 1016
Visszatérési cím Visszatérési dm Visszatérési cím Visszatérési cím Visszatérési cím 1012
i =3 J- 3 j =3 j=3 Í =3 1008 hívást h ajtja végre. A verem ekkori állap o tát m u tatja az 5.43. (c) ábra, és az u ta sí­
i =l i= 1 i=l 1004 tásszám láló az eljárástörzs elejére m utat. E kkor az n = 1 feltétel teljesül, így kiír
n =3 n =3 n =3 n =3 n =3 1000 egy sort. E zu tán az eljárás visszatér, az aktuális v erem k eret tö rlő d ik a v e r e m b ő l .
(a) (b) (0 (d) (e)
* A z eljárásh ív ás b efe je z é sé b e azt is b e le é rtjü k , hogy a h ív o tt e ljá rá s v é g re h a jto tta a p ro ló ­
5.43. ábra. A verem állapotai az 5.42. ábra programjának végrehajtása során gust. (A kktar)
420 5. A Z u t a s í t á s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5.6. V E Z É R L É S I FO LYA M A T 421

az FP és SP felveszi az é rté k é t; ez t m u ta tja az 5.43. (d) áb ra. E z u tá n foly tató d ik a 5.6.3. Korutinok (társrutinok)
visszatérési cím en a vég reh ajtás, am i a
A szokásos végrehajtási so ro zato t tekintve világos a különbség a hívó és a hívott
towers(1,1,2) e ljárás k ö zö tt. Tekintsük az A eljárást, am ely hívja a B eljárást az 5.44. áb rán m u ­
ta to tt m ó d o n .
v ég reh ajtását jelen ti. E z egy ú jab b v e re m k e re te t ad a v erem h ez, az á lla p o to t az A B eljárás szám ol egy ideig, aztán visszatér az A eljáráshoz. E lső rán ézésre
5.43. (e) áb rán látjuk. Egy ú jab b so r író d ik ki, aztán a v isszatérésk o r a v e re m k e ­ úgy tű n h e t, hogy a helyzet szim m etrikus, hisz sem az A , sem a B nem fő p ro g ­
re t tö rlő d ik a verem b ő l. A v ég reh ajtás e n n e k m eg felelő en fo ly tató d ik m indaddig, ram , m in d k e ttő eljárás (az A eljárást a fő p ro g ram h ívhatta, de ez nem lényeges).
am íg az e re d e ti eljáráshívás v é g reh ajtása be n e m fejeződik, és az 5.43. (a) á b rán Továbbá, elő ször a vezérlés a z ^ - t ó l áta d ó d ik a fí-h ez - ez a hívás, m ajd a fi-től
lá th a tó v e re m k e re t n em tö rlő d ik a verem b ő l. A rek u rzió m ű k ö d é sé n e k jo b b m eg ­ vissza az ^ - h o z - ez a visszatérés.
értése végett javasoljuk, hogy p a p íro n ceruzával szim ulálja a A z aszim m etria abból adódik, hogy am ik o r a vezérlés ^ - t ó l B -hez kerül, akkor
a v ég reh ajtás B eljárástö rzsén ek elején kezdődik, am ik o r pedig a visszatér fi-től
towers{3,1,3)

(a) (b)
eljáráshívás teljes v ég reh ajtását.

(a) (b)
Hívó eljárás Hívott eljárás

5.45. ábra. Korutin visszatérésekor a végrehajtás ott folytatódik, ahol előzőleg a vezérlés
5.44. ábra. A hívott eljárás végrehajtása m indig az első utasításával kezdődik elhagyta, nem az elején
5.6. V E Z É R L É S I FO LYA M A T 423
422 5. A Z u t a s It A s r e n d s z e r -a r c h i t e k t u r a s z i n t j e

A csap d a alap v ető jellem zője, hogy a pro g ram m aga okoz valam ilyen kivételes
A -h o z, akkor a vég reh ajtás n e m A tö rzsén ek elején fo lytatódik, h an em a hívást k ö ­
h elyzetet, am elyet a h ard v er vagy a m ik ro p ro g ram fedez fel. A túlcsordulás k e ­
vető utasítással.
zelésén ek a ltern atív m ódja, am ikor a túlcsordulás egy 1 bites regisztert állít 1-re.
H a A később ism ét hívja a 5 -t, a k k o r a v ég reh ajtás ism ét B elején kezdődik,
A p rog ram o zó n ak , ha kezelni akarja a túlcsordulást, m inden aritm etikai utasítás
nem pedig a koráb b i visszatérést k övető helyen. H a A futása közben tö b b szö r is
u tán le kell k érdeznie ezt a bitet. E z azonban lassú és tárp azarló m egoldás. A csap­
hívja B -t, m in d en egyes hívás h a tá sá ra B v ég reh ajtása m indig az elején kezdődik, da időt és m em ó riát ta k a rít m eg a program vezéreit m egoldáshoz képest.
az A v ég reh ajtása azo n b an sohasem kezdődik az elejéről.
A csap d a m egvaló sítható a m ikro p ro g ram (h ard v er) által végzett tényleges el­
liz a különbség tü k rö ző d ik ab b an a m ó d szerb en , ahogy a v ezérlés átad ó d ik
lenőrzéssel. H a a csapda b ek ö v etk e zett, ak k o r a csap dakezelő rutin cím e tö ltő d ik
A és B között. H a ^ hívja B -t, a k k o r eljáráshívó u ta sítást h a jt végre, am ely a vissza­
az utasításszám lálóba. A m i csap d a egy a d o tt szinten, az pro g ram v ezéreit lehet
térési cím et (te h á t a hívás helyét k övető u tasítás c ím ét) eltá ro lja alkalm as helyen,
alacsonyabb szinten. H a m ik ro p ro g ram m al végeztetjük az ellenőrzést, a program
p éldául a verem te te jé n . E zu tán a hívott eljárás cím ét tölti az utasításszám láló b a,
által végzett teszth ez k ép est m ég m indig időt ta k a rítu n k m eg, m ert könnyen á tla ­
így kezdem ényezi a hívást. A m ik o r B visszatér, n em eljáráshívó u ta sítást hajt vég­
p o lh a tó m ás tevékenységgel. M em ó riát is m eg tak arítu n k , m ert csak egy helyen, a
re, hanem visszatérőt, am ely egyszerűen kiveszi a v erem b ő l a cím et, és azt az u ta ­ m ik ro p ro g ram fő ciklusában kell elhelyezni.
sításszám lálóba tölti. N éh án y kivételes helyzet, am ely csapdával lekezelhető: leb eg ő p o n to s tú lcso r­
N éh a hasznos, h a k ét e ljá rá s ,/! és B egym ást eljá rá sk é n t hívja oly m ó d o n , m int dulás, le b eg ő p o n to s alulcsordulás, egész túlcsordulás, védelem m egsértése, defini-
azt az 5.45. áb ra m u tatja. H a B v isszater/4 -h o z, a k k o r a v ég reh ajtás a /i-t hívó u ta ­ álatlan m űveleti kód, v erem túlcsordulás, nem létező B-'K eszköz indítása, szóolva­
sítás u tán folytatódik, m in t fen t láth ató . H a a vezérlés v4-tól fi-h ez kerül, ak k o r sási kísérlet p á ra tla n m em óriacím ről, O-val való osztási kísérlet.
a végrehajtás (kivéve az első a lk alm at) a legutolsó fi-ből való visszatérést köve­
tő, vagyis az u to lsó /1 -t hívó u tasítással folytatódik. A z olyan k ét eljárást, am elyek
ilyen m ódon m ű k ö d n ek , korutinnak (társrutin) nevezzük.
5.6.5. Megszakítások
K o ru tin o k at álta lá b an p á rh u z am o s feldolgozás szim u lálására h aszn áln ak olyan
g épeken, am elyekben csak egy C P U van. M indegyik k o ru tin p sz eu d o p árh u zam o - A m egszakítás olyan elté ríté se a vezérlési folyam atnak, am elyet nem a program
san fu t a m ásikkal, m in th a saját p ro ccsszo ra len n e. E z a p ro g ram o zási stílus ineg- okoz, h an em valam i m ás, általáb an B/K. P éldául, a p ro g ram u tasíth atja a lem ez­
könnyíti bizonyos alk alm azáso k m egvalósítását, to v áb b á h aszn o s olyan szoftver
egységet, hogy kezdje az ad atá tv itelt, és a n n ak b e fejeztek o r m egszakítást küldjön.
tesztelésénél, am elyet k ésőbb tö b b p ro cesszo ro s g ép en fu tta tn a k . U gyanúgy, m int a csapda, a m egszakítás b ek ö v etk e ztek o r is m egáll a pro g ram vég­
Sem a hagyom ányos eljáráshívó CALL, sem a v isszatérő RETURN nem alk alm azh a­
re h a jtása , és a vezérlés a m egszakításkezelőre adódik, am ely elvégzi a kívánt tev é­
tó k orutinoknál. M ivel az u grás helyének cím e a v erem b ő l jö n , m in t a visszatérés kenységet. H a ez b efejező d ö tt, a m egszakításkezelő visszaadja a vezérlést a m eg­
esetén, de a k o ru tin m aga is eltáro lja a cím et a későbbi visszatérés végett. Jó lenne, szak íto tt p ro gram nak. A m egszakított processzusnak p o n to san azt az állap o tát
ha lenne olyan utasítás, am ely kicserélné az utasításszám láló és a v erem tete jé n lé­ kell helyreállítani, m int am i akkor volt, am ikor a m egszakítás tö rtén t.
vő cím et. R észletesen , ez az u tasítás először kivenné a régi visszatérési cím et a ve­ Az alap v ető különbség a csapdák és a m egszakítások k ö zö tt a következő: a
rem ből egy regiszterbe, aztán b e te n n é az utasításszám láló t a verem b e, és végül az csapdák a p ro g ram m al szin k ro n b an vannak, a m egszakítások pedig aszinkronban.
előbbi regiszter ta rta lm á t az u tasításszám láló b a m ásolná. M ivel m indig egy szót k i­ H a egy p ro g ram o t m illiószor m egism étlünk ugyanazzal a b e m en e ttel, a csapda
v enne, egyet m eg b e lete n n e a verem b e, így a v e re m m u tató n em változna. N em igen m indig p o n to san ugyanott keletkezik, de a m egszakítás nem , függhet például a t­
van azonban ilyen utasítás, töb b n y ire több utasítással kell m egvalósítani. tól, hogy a gépkezelő m ik o r nyom ja le a re tu rn gom bot. A csapdák re p ro d u k á lh a ­
tó ság án ak az az oka, hogy közvetlenül a p ro g ram okozza, m íg a m egszakításokat
nem , azo k at csak k ö zv etetten okozza a program .
5.6.4. Csapdák M egszakítások tényleges m ű k ö d ésén ek b e m u ta tá s á ra tek in tsü n k egy általános
p éld át: hogyan végzi a szám ítógép egy k a ra k te rso r kiírását term in álra. A re n d ­
A csapda olyan au to m atik u san hívott eljárás, am elyet valam ely, a pro g ram által e lő ­ szerszoftver először összegyűjti a k iíra ta n d ó k a ra k te re k e t egy pufferben, beállítja,
idézett fontos, de ritkán előforduló feltétel vált ki. Jó p éld a e rre a túlcsordulás. Sok hogy egy p tr globális változó m utasson a p u ffer elejére, egy m ásik coiuit globális
szám ítógépen, ha az aritm etikai m űvelet ered m én y e olyan nagy lenne, hogy nem le­ válto zó b a p edig a k iíran d ó k a rak terek szám át írja. E zu tán lekérdezi, hogy a te r­
het a gép en ábrázolni, ak k o r csap d a keletkezik, ami azt jelen ti, hogy a vezérlés egy m inál készen áll-e a kiírás fo g ad ására, ha igen, ak k o r elindítja a B/K m űveletet az
m eg h atáro zo tt m em ó riacím re adódik, nem folytatódik n orm álisan. A zt az eljárást, első k a ra k te r kiíratásával (lásd 5.31. áb ra). M iután a C P U e lin d íto tta a B/K m űve­
am elyre ilyenkor a vezérlés adódik, csapdakezelőnek hívják, am ely valam ilyen m eg­ letet, felszabadul m ás p ro g ram fu ttatására.
felelő tevékenységet végez, például h ib aü ze n etet ír ki. H a az aritm etikai m űvelet
eredm énye az ábrázolási tarto m án y b an m arad, a k k o r n em keletkezik csapda.
424 5, A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.6. V E Z É R L É S I FO LYAM A T 425

B izonyos idő m úlva a k a ra k te r a term in á l k ép ern y ő jére íródik. Itt k ezd ő d ik a á tlátszó n ak nevezzük. A z átlátszóság m iatt sokkal egyszerűbb m eg érten i a m eg ­
m egszakítás. L eeg y szerű sített fo rm áb an a követk ező lép ések h a jtó d n a k végre. szakításokat.
H a a szám ítógépnek csak egy B /K eszköze van, ak k o r a m egszakítás m indig az
H ard vertevékeny ség elő b b leírt m ó d o n m űködik, és tö b b e t n em is tu d u n k ró la m ondani. Egy nagy szá­
1, A z eszközvezérlő b eállít egy m egszakítási v o n ala t a ren d sze rsín en a m egszakí- m ító g é p n e k azo n b an so k B /K eszköze leh et, am elyek egyidejűleg m ű k ö d h etn ek ,
tási so ro zat e lin d ítására. g yakran k ü lö n b ö ző felhasználók szám ára. N em n u lla a valószínűsége annak, hogy
2 . A m in t a C PU a m egszakítás k ezelésére k é p es álla p o tb a kerül, azo n n al b e á llít­ am íg egy m egszakítás feldolgozása folyik, aközben egy m ásik B /K eszköz akar
ja a m egszak ítást nyugtázó je le t a ren d szersín en . m egszakítást kérni.
3. A m in t az eszkózvezérlő észleli, hogy a m egszakítási k é re lm é t n yugtázta a K ét m egoldási m ó d is kínálkozik. A z első szerint m in d en m egszakítási rutin,
C P U , saját azo n o sítá sá ra egy kis egész szám ot k üld az ad atv o n a lo n . E z t a szá­ m ég m ielő tt b árm i m ást ten n e, le h e te tle n n é tesz további m egszakításokat. E z a
m o t m egszakítási vektornak nevezik. m ó d szer egyszerűvé tesz m in d en t, m e rt a m egszakításokat szigorúan szekven­
A C P U kiolvassa a sínről m egszakítási v ek to rt, és időlegesen elm enti. ciálisán dolgozzuk fel. D e ez p ro b lé m á t o k o zh at azoknál az eszközöknél, a m e ­
A C P U b erak ja a v erem b e az utasításszám láló t és a PSW-t. lyek n em to lerálják a k ésleltetést. P éldául egy 9600 bps kom m unikációs vonalról
E z u tá n a C P U b eállítja az új u tasításszám láló é rté k é t a rra a m em ó riacím re, 1042 yLis-onként érk ezn ek a k a rak terek , a k á r kész az eszköz, a k á r nem . H a az elsőt
am elyet a m egszakítási v e k to r m eg h atáro z. E zt úgy kap ja, hogy a m egszakí­ m ég n em dolgozta fel és közb en a m ásodik m egérkezik, az elveszhet.
tási v e k to rt egy tá b lá za t in d ex én e k tek in ti. H a p éld á u l az utasításszám láló 4 H a egy szám ítógépnek időkritikus B/K eszköze van, akkor jo b b m egközelítés az,
bájtos, és a m egszakítási v e k to r n, ak k o r a cím An lesz. A z új utasításszám láló h a m in d en eszközhöz elsőbbségi é rté k e t ren d elü n k . H aso n ló an , a C P U -n ak is lehet
a n n ak a m egszakításkezelő ru tin n a k a kezdőcím e lesz, am ely a m egszakítást elsőbbségi érték e, am elyet a PSW-ben tárol. H a egy n elsőbbségi szám ú eszköz okoz
k é rő eszközt szolgálja ki. G y ak ran b etö lti vagy m ó d o sítja PSW-t (p éld áu l azért, m egszakítást, ak k o r a m egszakításkezelő ru tin is n elsőbbségi érté k szerint fut.
hogy újabb m egszakítás b e k ö v etk ezését m egakadályozza). M ind ad d ig, am íg egy n elsőbbségi é rté k ű m egszakításkezelő ru tin fut, m in d en
e n n él kisebb elsőbbségi é rté k ű m egszakítást letilt, am íg a C P U vissza nem té r a
Szoftvertevékenység felh aszn áló i p ro g ram fu tta tá sá h o z (0 elsőbbségi érték ). M ásrészről, m agasabb el­
7. A m egszakításkezelő ru tin első dolga, hogy elm entse a regisztereket, hogy k é ­ sőbbségű eszköz m egszakítási k érelm e k ésleltetés nélkül en g ed ély ezett lesz.
sőbb vissza tu d ja tölteni. A m en tés tö rté n h e t a verem b e vagy ren d szerterü letre. H a a m egszakítási ru tin o k m aguk is m egszakíthatók, a k k o r az ad m in iszt­
8. A z azonos típ u sú eszközök m egszakítási v e k to ra á lta lá b a n azonos, így a szer­ ráció m eg b ízhatóvá té te le érd e k é b e n a legjobb m ódszer, h a a m egszakításo-
viz ru tin nem tu d ja, m elyik term in á l o k o zta a m egszakítást. A term in á l szám át
eszközregiszterből olvassa ki. Lemezegység 4-es elsőbbségű
9. A m egszakítással k ap cso lato s m in d en egyéb in fo rm áció t, m in t p éld á u l az álla­ megszakítási kérelme függőben marad

p o tk ó d o t m ost m á r be leh et olvasni.


RS232 ISR befejeződik,
10. H a B /K hiba keletkezik, itt le h e t lekezelni. lemezmegszakítás keletkezik
11. A p r t és coun t globális válto zó k é rté k é t ak tualizálja. A z elő b b it növeli, hogy a RS232 megszakítás
k övetkező b á jtra m u tasso n , az u tó b b it csökkenti eggyel, m e rt eggyel kevesebb 5-ös elsőbbséggel Lemez ISR befejeződik
átv ien d ő b ájt m arad t. H a a c o u n t nagyobb, m in t 0, ak k o r m ég van átv ien d ő k a ­
Nyomtatómegszakítás Nyomtató ISR befejeződik
ra k te r. Á tm áso lja az ak tu ális k a ra k te rt a k im en eti pu fferb e. 2-es elsőbbséggel
12. H a m egkövetelt, a k k o r speciális k ó d o t k üld ki, hogy közölje az eszközzel vagy
a m egszakításvezérlővel, hogy a m egszakítás feldolgozását elvégezte.
13. V isszatölti az e lm e n te tt reg iszterek et. 10 15 20 25 35 40
14. V ég reh ajtja a RETURN FROM INTERRUPT (VISSZATÉRÉS MEGSZAKÍTÁSBÓL) u tasítást,
Idő
am ellyel a C P U visszakerül ab b a az álla p o tá b a , am elyben a m egszakítás b e k ö ­ FelhasználóiiNyom-1 RS232 Lemez íNyom-i Felhiasználói
vetkezése elő tt volt. A gép o tt folytatja m u n k áját, ah o l ab bahagyta. program 1 tató 1 ISR ISR I tató I program
1 ISR 1 1 ISR 1
I I II---- ,l_
-------------- -------- 1'
A m egszakításokkal k ap cso lato s kulcsfogalom az átlátszóság. A m ik o r m eg ­ iFelh.l Felíi. Felli. iFelli.l Verem
Nyomtató Nyomtató
szakítás következik be, bizonyos m ű v eletek v ég reh ajtó d n ak , bizonyos kód v ég re ­
hajtódik, de am ik o r e n n e k vége, a szám ítógép u g y an ab b a az álla p o tb a k erü l, m int
am elyben a m egszakítás e lő tt volt. A z ilyen m ó d o n m ű k ö d ő m egszakítási ru tin t 5.46. ábra. Példa többszörös megszakításra
426 5. A Z u t a s í t á s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5.7. r é s z l e t e s PÉLD A : H A N O I TO RNYA I 427

kát átlátszóvá tesszük. L ássunk egy egyszerű p é ld á t tö b b szö rö s m egszakításra. 5.7. Részletes példa: Hanoi tornyai
S zám ítógépünkn ek h áro m B/K eszköze van, egy ny o m tató , egy m ágn eslem ez­
egység és egy R S232 soros vonal, re n d re 2, 4 és 5 elsőbbségi érték k el. K ezd etb en M iu tán tan u lm án y o ztu k h áro m gép u ta sításren d sz er-arch itek tú ráját, összerakva
(j = 0) egy felhasználói p ro g ram fut, am ik o r h irte le n a í = 10 id ő b en n y o m tató ­ a részletek et, vizsgáljunk m eg részleteseb b en m in d h áro m gép e setéb en egy p é l­
m egszakítás keletkezik. A n y o m tató m egszak ításk ezelő ru tin já n a k (In te rru p t S er­ d a p ro g ram o t. A p é ld án k a H an o i tornyai p ro b lém a. A z 5.42. áb rán a p ro b lém a
vice R o u tin e, IS R ) fu tása elkezdődik, am in t az 5.44. áb rá n láth ató . Jav a-m eg o ld ását adtuk. A következő szakaszban assem bly szintű m egoldásokat
A / = 15 időben az R S232 vonal figyelm et kíván, és m eg szak ítást g en erál. M ivel fo gunk adni.
az R S232 elsőbbsége (5) nagyobb, m in t a n y o m tató é (2), a m egszakítás b ek ö v e t­ A zo n b an egy kicsit csalunk. N em a Java-verziót fogjuk á tfo rd ítan i P entium 4- és
kezik. A gép álla p o ta (m ost a n y o m tató m egszak ításk ezelő ru tin ja fu t) verem b e U ltraS P A R C Ill-v erzió k ra, h an em a C -verziót, hogy elkerüljük a Java B/K p ro b ­
kerül, és az R S232 m egszakításkezelő ru tin ja elindul. lém áit. A z egyetlen különbség, hogy a J a v a println u tasítása helyett a m egfelelő C-
Kis idővel később, a í = 20 id ő b en egy lem ezm ű v elet b efe jez ő d ö tt és szolgál­ u ta sítá st használjuk, am ely
tatást igényel. A zo n b an a lem ez elsőbbsége (4) alacsonyabb, m in t az é p p en futóé
(5), így a C P U -h ard v er n em nyugtázza a k érelm et, az fü ggőben m arad . A t = 25 p rin tf(„K o ro n g m o z g a t á s a % d -rő l % d-re\n", i, j);

időben az RS232 ru tin b efejeződik, visszatér abba az állap o tb a, am elyben az


RS232 m egszakításán ak b ek ö v etk ezése e lő tt volt, n e v ezetesen a n y o m tató ru tin ­ C éljain k at tekintve a / 7/7'n í/k iíra tá si fo rm átu m a lényegtelen (tu lajd o n k ép p en a k a­
já n a k 2-es elsőbbségű fu tta tásá b a . A m in t a C P U a 2-es elsőbbségű álla p o tb a vált, ra k te rlán c íródik ki, ahol a % d azt jelen ti, hogy a szám okat decim ális form ában
m ég m ielő tt egyetlen u tasítás v ég reh a jtó d n a, a lem ez 4-es elsőbbségű m eg szak ítá­ kell kiírni).
sát elfogadja, és a lem ezkezelő ru tin elindul. A m ik o r ez befejező d ik , a ny o m tató A z é rt vesszük a C -változatot, m ert a P entium 4 és U ltraSP A R C III esetén nincs
ru tin folytatódik. V égül, a í = 40 id ő b en m in d en m eg szak ításk ezelő ru tin b e fe je ­ m eg a Java B /K könyvtár, m íg a C igen. A különbség m inim ális, csak a nyom tató
ződik, és a felhasználói p ro g ram o tt folytatódik, ahol ab b a m a ra d t. u tasítás különbözik.
A 8088 ó ta az In tel C P U -n a k k é t m egszakítási szintje (elsőbbségi é rté k e ) van:
m aszkolható és n em m aszk o lh ató . A n em m aszk o lh ató m egszakítások általáb an
csak a k atasztrófak ö zeli á lla p o to k ra h aszn álato sak , m in t a m em ó riap aritás-h ib a. 5.7.1. A Hanoi tornyai probléma megoldása
M in d en B /K eszköz m aszk o lh ató szin ten dolgozik.
Pentium 4 assembly nyelven
A m ik o r egy B /K eszköz m eg szak ítást kér, a C P U a m egszakítás v ek to rt egy 256
elem ű táb lázat index én ek tekin ti, ahol a m egszakításkezelő ru tin cím e van. A tá b ­ A z 5.47. á b ra a H anoi tornyai p ro b lém a C m eg o ld ásán ak egyik lehetséges á t­
lázat elem ei 8 bájto s szegm ensleírók, és a táb láz a t b á rh o l le h e t a m em ó riáb an , a n ­ fo rd ítá sá t tartalm azza P entium 4 assem bly nyelvre. A p ro g ram nagy része elég­
n ak kezdőcím ét egy globális reg iszte r tartalm azza. gé nyilvánvaló. A z EBP regisztert használjuk v e rem k eret-m u tató n ak . Az első két
E gyetlen h aszn álh ató m egszakítási szint e se té n sincs leh ető ség arra, hogy egy szó a kapcsoló, így az első aktuális p a ra m é te r, az n (vagy N , mivel a M A SM kis-
m agasabb elsőbbségű eszköz m egszakítsa egy közep es elsőbbségű m eg szak ításk e­ n agybetű érzék etlen ) helye EBP -t- 8 , ezt követi / é s ; az EBP -I- 1 2 és EBP -I- 1 6 helyen.
zelő ru tin ját, és m egvédje attó l, hogy egy alacsonyabb elsőbbségű ugyanazt tegye A k lokális változó helye EBP - 4.
vele. A p ro b lém a m eg o ld ása érd e k é b e n az In tel-p ro cesszo ro k külső m eg szak ítás­ A z eljárás azzal kezdődik, hogy új v ere m k e re te t létesít a verem tetején . E zt úgy
v ezérlőt használn ak (p éld áu l 8259A ). A m ik o r az első m egszakítás m egjelenik, csinálja, hogy ESP-t az EBP k e re tm u ta tó b a m ásolja. A ztán /j-et hasonlítja 1-hez, el­
m o n d ju k n elsőbbségű, a C P U m egszakítódik. H a k éső b b egy m ag asab b első b b ­ ugrik az else ágra, ha n > 1. A then ág h áro m é rté k e t rak a verem be: a fo rm átu m
ségű m egszakítás keletkezik, a m egszakításvezérlő m áso d szo r is m egszakít. H a a k a ra k te rlá n c cím ét, i-t é s ;-t, m ajd m eghívja a nyo m tató eljárást.
m ásodik m egszakítás alacsonyabb elsőbbségű, ak k o r fü ggőben m a ra d m indaddig, A z ak tu ális p a ra m é te re k e t fo rd íto tt so rre n d b e n rakja a v erem be, m ert a C -eljá-
am íg az előző be n em fejeződik. A hh o z, hogy ez a sém a m ű k ö d jö n , a m egszakí­ ráso k hívási konvenciója ezt így kívánja. E z é rt kell a fo rm átu m k arak terlán c cím ét
tásvezérlőnek tu d n ia kell, hogy m ik o r fejező d ik be egy m egszak ításk ezelő futása. a v erem te te jé re tenni. M ivel a p rin tf-n ek változó szám ú p a ra m é te re i lehetnek, így
E z é rt a C P U -n ak p a ra n cso t kell k ü ld en ie, am ik o r az ak tu ális m egszakítás teljesen az egyenes so rre n d e setén nem tu d n á, hogy m ilyen m élyen van a v erem b en a fo r­
feldolgozódott. m átu m k arak terlán c.
A call u tasítás u tá n hozzáad 12-t az ESP-hez, hogy kivegye a p a ra m é te re k e t a ve­
rem b ő l. T erm észetesen ténylegesen nem tö rö l, de az ESP m ódosításával hozzáfér-
h ete tle n e k k é válnak a verem m űv eletek szám ára.
A z else ág az L1 cím kénél kezdődik, és világos, hogy m it csinál. E lőször kiszá­
m ítja a 6 - / é rté k e t és ^-b an tárolja. M indegy, hogy m i az / é s ; érték e, a harm a-
428 5. A Z U T A SlTÁ SR EN D SZ ER- A RC H ITEK TÚ RA SZ IN T JE

5.7. RÉSZLET ES PÉLDA: HANOI TORNYAI 429


.586 Pentium-kódra fordítás (nem 8088-ra)
.MODEL FLAT
dik pálca sorszám a mindig 6 - i A zért tároljuic ezt a k iüicális váltDzóban, hogy
PUBLIC _towers exportáljuk towers-t
importáljuk printf-et
ne kelljen még egyszer kiszámítani.
EXTERN _printf: NEAR
.CODE A ztán az eljárás önm agát hívja három szor, m indig különböző param éterekkel.
_towers; PUSH EBP EBP mentése (ez a keretmutató) A hívások után a verem kiürítődik. Ez m inden.
MOV EBP, ESP új keretmutató beállítása ESP felett A rekurzív eljárások elsőre zavarosnak tűnhetnek, de ezen a szinten tekintve
SUB ESR4 helyfoglalás a k lokális változónak őket eléggé világos képet kapunk. Ami a lényeg, a param éterek et a verem be kell
CMP [EBP-i-8], 1 ha (n == 1) rakni, és az eljárás meghívja önm agát.
JNE L1 ugrás ha n 1
MOV EAX, [EBP-H6] printfC',..", 1, j)
PUSH EAX azi,j paraméterekés a formátum
MOV EAX, [EBP-l-12] karakterlánc a verembe kerül 5.7.2. A Hanoi tornyai probléma megoldása
PUSH EAX fordított sorrendben, a C konvenció miatt UltraSPARC III assemblyben
PUSH OFFSET FLAT:format; OFFSET FLAT a formát karakterlánc címe
CALL _printf printf hívása Próbáljuk meg m ég egyszer, most az U ltraSPARC Ill-m al. A program listáját az
ADD ESP, 12 a paraméterek eltávolítása a veremből
5.48. ábra tartalm azza. Mivel az U ltraSPARC III kódja különösen olvashatatlan,
JMP Doné végeztünk
m ég az assembly is, sőt m ég sok gyakorlat u tán is, ezért vettük a bátorságot, és az
L1; MOV EAX, 6 k = 6 - i- j
SUB EAX, [EBP-i-12] EAX = 6 - 1 elején definiáltunk néhány szim bólum ot, hogy világosabb legyen. Ezért a prog­
SUB EAX, [EBP-i-15] EAX = 6 - l- j ram ot assembly fordítás előtt a cpp C-clőfeldolgozóval át kell alakítani. K isbetűs
MOV [EBP-4], EAX k^EA X írásm ódot használtunk, m ert az U ltraSPARC ezt m egkívánja (arra az esetre, ha az
PUSH EAX towersín - 1, i, k) hívás kezdete olvasó be akarja gépelni a program ot, és futtatni akarja).
MOV EAX, [EBP-l-12] EAX = i A lgoritm ikusán az U ltraSPA RC-változat azonos a P entium 4-változattal. M ind­
PUSH EAX í-t a verembe
k ettő n tesztelésével kezdődik, és elágazik, ha /; > 1. Az U ltraSPARC-változat bo­
MOV EAX, [EBP+8] EAX= n
DEC EAX EAX=n-1 nyolultsága az ISA néhány tulajdonságából ered.
PUSH EAX n -1 megy a verembe K ezdésként az UltraSPARC III program a form átum karakterlánc cím ét át kell
CALL _towers towers(n- 1, i, k) hívás adja a p rin tf rutinnak, de nem tudja a kim enő p aram éter cím ét regiszterben m eg­
ADD ESP, 12 a paraméterek eltávolítása a veremből adni, m ert nem lehet 32 bites konstanst egyetlen utasítással betölteni. E hhez két
MOV EAX, [EBP+16] towers(1, i, j) hívás kezdete utasítás kell, a SETHI és az OR.
PUSH EAX j-t a verembe
A másik megjegyzendő, hogy nem kell a verm et aktualizálni a hívás után, m ert a
MOV EAX, [EBP-H2] EAX = I
RE5TORE utasítás m ódosítja az ablakrcgisztert az eljárás végén. Az a képesség, hogy
PUSH EAX i-t a verembe
PUSH 1 1-et a verembe a kim enő p aram étert regiszterbe lehet tenni, és így nem kell a m em óriához fordul­
CALL tow/ers towersd, i, j) hívás ni, nagy nyereség, ha a hívási lánc nem túl mély, de általában az egész regiszterab­
ADD ESP, 12 a paraméterek eltávolítása a veremből lak m echanizm us valószínűleg nem éri meg a bonyolultságot.
MOV EAX, [EBP+16] towers(n - 1, k, j) hívás kezdete Vegyük észre a b D oné ugrás után álló NOP utasítást. Ez eltolás résben van. Ez
PUSH EAX j-t a verembe az utasítás annak ellenére végrehajtódik, hogy ugró utasítás előzi meg. Az a gond,
MOV EAX, [EBP-4] EAX = k
hogy az UltraSPARC III olyan hosszú csővezetékkel rendelkezik, hogy mire a
PUSH EAX k-t a verembe
MOV EAX, [EBP-l-8] EAX = n hardver észreveszi, hogy ugrással van dolga, a következő utasítás m ár gyakorlati­
DEC EAX EAX = n - 1 lag befejeződött. Ü dvözöljük a R ISC -program ozás csodálatos világában!
PUSH EAX n - 1 megy a verembe Ez a furcsa tulajdonság az eljáráshívásokra is érvényes. Figyeljük meg a towcrs
CALL _tow/ers towers(n- 1,k,j) hívás első hívását az else ágban, n - I-et PcircimO-ba és /-t Param 1-be teszi, de előbb elvég­
ADD ESP, 12 a paraméterek eltávolítása a veremből zi a towcrs eljárás hívását, még m ielőtt az utolsó p aram étert átadná. A Pentium 4-
Doné: MOV ESP, EBP a lokális terület felszabadítása
nél először átadjuk a p aram étereket, és utána jön a hívás. Itt először átadunk né­
POP EBP Régi EBP visszaállítása
hány p aram étert, aztán elvégezzük a hívást, és u tán a átadjuk az utolsó param étert.
RÉT 0 visszatérés a hívó eljárásba
•DATA Ism ét ugyanaz a jelenség, am ire a hardver észreveszi, hogy C A L L utasítással van
formát DB "Korong mozgatása %d-röl % d re\n"; formátum karakterlánc dolga, a hívást követő utasítás m ár olyan mélyen benne van a csőben, hogy végre
END kell hajtania. A kkor m iért nem adjuk át az utolsó param étert az eltolásrésben? H;i
a hívott eljárás első utasításának kell, még akkor is rendelkezésére fog állni.
5.47. ábra. A Hanoi tornyai megoldása Pentium 4 assemblyben
430 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.8. A Z IN T EL IA-64 A RC H IT EK T Ú R A É S A Z ITA N IU M : 431

#define N %iO /* N a 0. bemenő paraméter V V égül, láth atju k , hogy a D one cím kénél ta lá lh a tó RÉT utasításn ak is van elto lás­
#define I % il /* I azi . bemenő paraméter V rése. E zt a RESTORE használja, am ely növeli CWP-t, hogy visszaállítsa az ahlakre-
#define J %i2 /* J a 2. bemenő paraméter V gisztert a hívó kívánta állapotba.
#define K %I0 /* K a 0. lokális változó *!
#define ParamO%oO r ParamO a 0. kimenő paraméter V
#define P a ra m l% o l /* Param 1 az 1. kimenő paraméter V
#define Param2 %o2 /* Param2 a 2. kimenő paraméter V
/* a cpp C által használt megjegyzéskonvenció V
5.8. Az Intel IA-64 architektúra és az Itanium 2
#define Scratch %I1
.proc 04
A z In tel gyorsan ab b a az állap o tb a kerül, hogy kifacsart m inden csep p et az IA -3 2
.global towers
a rc h itek tú rá b ó l és a P entium 4 processzorból. A z új m o dellek m ég k ih aszn álh at­
towers; savé %sp, -112, %sp já k a gyártási technológia fejlődését, am i kisebb tran zisz to ro k at (kö v etk ezésk ép ­
cmp N, 1 .'ha (n == 1) p en nagyobb órajelsebességet) je le n t. A zo n b an egyre n eh ezeb b lesz új trü k k ö k et
bne else I ha (n != 1), ugrás az else ágra találni a m egvalósítás gyorsabbá té telére, mivel az a korlátozás, am elyet az IA -3 2
ISA je le n t, idővel egyre nagyobbnak látszik.
sethi %hi(format), ParamO I p r in tf C ,i,j) A valódi m egoldást az IA -3 2 -n ek m int a fejlesztés fő v onalának a feladása és
or ParamO, %lo(format), ParamO ! ParamO = a formátum karlánc címe egy teljesen új ISA bevezetése je le n th e ti. Ez az, am ire az Intel valójában törekszik.
mov I, Paraml I Paraml = i
V alójában két új vonal terveivel rendelkezik. A z E M T -6 4 a P entium 4 szélesebb
call printf ! printf hívása j beállítása előtt
v álto zata, 64 bites regiszterekkel és 64 bites m em ória-cím tarto m án n y al. Hz a p ro ­
move J, Param2 I eltolásrés a hívás után
cesszor m eg oldja a cím tarto m án y p ro b lém áját, de m eg m arad a P entium 4 m eg ­
b done I végeztünk
nop I eltolásrés kitöltése valósítási bonyolultsága.
A m ásik új a rc h itek tú ra, am elyet az Intel és a H ew lett Packard közösen fejlesz­
else: mov 6, K ! k = 6 - i - j számítás kezdete te tt az IA -64. E z elejétő l a végéig teljesen 64 bites a rc h itek tú ra, és n em egy létező
sub K,J,K !k = 6 - j 32 bites gép ttw ábbfejlesztése. Továbbá, ez az arc h ite k tú ra több te k in tetb en is r a ­
sub K, l,K lk = 6 - i - j dikális eltáv olodás a P entium 4-től. A z elsődlegesen m egcélzott piac a nagy te lje ­
sítm ényű kiszolgálók piaca, de végül elérh eti az asztali g ép ek et is. M in d en esetre
add N,-1, Scratch 1towers(n - 1, i, k) hívás kezdete az a rc h ite k tú ra olyan rad ik álisan különbözik az eddig tan u ltak tó l, hogy m ár ezért
mov Scratch, ParamO ! Scratch = n - 1 is m egéri, hogy m egvizsgáljuk. A z lA -6 4 arc h ite k tú ra első im p lem entációja az
mov 1, Paraml 1paraméteri = i
Ita n iu m sortizat. A fejezet h átralév ő részéb en az IA -6 4 arc h ite k tú rá t és m egvaló­
call towers ! towers hívása par.2 (k) beállítása előtt
sítását, az Itan iu m 2 C P U -t tanulm ányozzuk.
mov K, Param2 I eltolásrés a hívás után

mov 1, ParamO 1towers(l, i, j) hívás kezdete


mov 1, Paraml 1paraméteri = i 5.8.1. A Pentium 4 problémái
call towers ! towers hívása par.2 (j) beállítása előtt
mov J, Param2 ! paraméter2 = j M ielő tt b e lem en n én k IA -6 4 és az Itan iu m 2 részleteibe, hasznos leh et á tte k in te ­
ni, hogy mi is a gond a P en tiu m 4-gyel, hogy lássuk, m ilyen p ro b lém ák at kívánt az
mov Scratch, ParamO 1towers(n - 1, k, j) hívás kezdete In tel m ego ldani az új arch itek tú ráv al. A fő ok, am i az IA -3 2 b ajait okozza az ősi
mov K, Paraml 1paraméteri = k ISA az összes rossz tulajdonságával a m ai technológiában. A z IA -3 2 C IS C ISA,
call towers ! towers hívása par.2 (j) beállítása előtt változó u tasításhosszal, szám talan form ával, am elyet nehéz gyorsan dekódolni. A
mov J, Param2 ! paraméter2 = j
jelenlegi technológiák a R IS C ISA-val m ű k ö d n ek legjobban, am elyekben egy u ta ­
sításhossz és rö g zített m űveleti kódhossz van, azaz könnyű dekódolni. Az IA -3 2
done: rét ! visszatérés
u ta sítá sa it szét leh et tö rd eln i R IS C -szerű m ik ro u tasításo k k á futási időben, de ez
restore ! eltolásrés
h ard v ert (la p k a te rü le te t) és időt igényel, továbbá b o n y o lu lttá teszi a tervezést. Ez
formát: .asciz "Korong mozgatása %d-ről %d-re\n" az első csapás.
A z IA -3 2 kétcím es, m c m ó riao rien tált ISA. A legtöbb utasítás hivatkozik a m e­
5.48. ábra. A Hanoi tornyai probléma m egoldása UltraSPARC III assemblyben m ó riára , és a legtöbb p ro g ram o zó és fo rd ító p ro g ram nem foglalkozik a m e m ó ria ­
432 5. A Z U T A SlT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.8. A Z IN T EL IA-64 A RC H IT EK T Ú R A ÉS A Z ITA N IU M ; 433

hivatkozásokkal. A mai tech n o ló g ia előnyben részesíti a tö ltő /tá ro ló a rc h ite k tú rá ­ 5.8.2. Az IA-64 modell: explicit utasításszintű párhuzamosság
kat, am elyek csak az o p eran d u so k b e tö ltése/k iírása v ég ett hivatkoznak a m em ó ­
riára, egyébként h áro m reg iszteres u tasításo k k al szám olnak. É s mivel a C P U ó ra ­ A 2 IA -6 4 alap ö tlete, hogy futási idő helyett a fordítási időre koncen trálju n k . A
jelsebessége nagyobb m érté k b en nóvekszik, m int a m em ó riák é, idővel a p ro b lé m a P en tiu m 4 esetén a C P U végrehajtás során átren d ezi az utasításo k so rren d jét,
egyre súlyosabb lesz. Ez a m ásodik csapás. átnevez reg iszte rek et, funkcionális egysegeket ütem ez, és szám os m ás dolgot is
A z IA -3 2 -n ck kicsi és szabálytalan reg iszterk észlete van. Az hagyján, hogy ez csinál an n ak é rd ek éb en , hogy biztosítsa a h ard v ererő fo rráso k elfoglaltságát. A z
m egköti a fo rd ító p ro g ra m o k kezét, de a kevés á ltalán o s reg iszter (négy vagy hat, IA -6 4 e seté n a fo rd ító p ro g ram elő re elvégzi m indezt, és olyan p ro g ram o t e re d ­
attól függően, hogy az ESI-t és EDI-t hova soro lju k ) m iatt a ré szered m én y ek et a m e­ m ényez, am ely fu tta th a tó , nem a h ard v ern ek kell zsonglőrködnie a vég rehatás
m ó riáb an kell táro ln i, am i fölösleges m em ó riah iv atk o záso k at gen erál a k k o r is, során. P éldául ah ely ett, hogy azt m o n d an án k a fo rd ító n ak , hogy a gép n ek 8 r e ­
am ik o r erre logikusan nincs szükség. E z a h arm a d ik csapás. A z IA -3 2 kiütve. gisztere van, h o lo tt ténylegesen 128, és futási időben derítse ki a hardver, hogyan
L ássuk a m ásodik m e n e tet. A kisszám ú reg iszter sok függőséget okoz, k ü lö n ö ­ leh et a függőségeket elkerülni, az IA -6 4 m odellben m egm ondjuk a ford ító n ak ,
sen W A R függőségeket, m ert az ere d m én y t táro ln i kell, de nincs elég regiszter. A hogy tény leg esen hány regisztere van a gépnek, te h á t olyan p ro g ra m o t tu d g e n e ­
regiszterek h iány án a k leküzdése belső átn ev e zésre kényszerít - a legrosszabb, ami rálni, am elynek nem kell regiszterkonfliktussal foglalkoznia. H aso n ló an , ebb en a
létezh et titk o s reg iszterek k é az átre n d e z ő p u fferen belül. A gyakori gyorsító- m o d ellb en a fo rd ító p ro g ram nyilvántartja, hogy m ely funkcionális egységek fog­
tárhiány-blokkolás elk erü lésére az u tasítá so k a t so rre n d e n kívül kell v ég re h a jta ­ laltak, és így nem bocsát ki olyan u tasítást, am ely foglalt egységet igényelne. A zt a
ni. A zonban az IA -3 2 szem an tik a p o n to s m eg szak ításo k at specifikál, e z ért a so r­ m od ellt, am ely láth ató v á teszi a h ard v er párhuzam osítás! leh ető ség ét, E P IC -nek
ren d en kívüli utasításo k so rre n d jé t helyre kell állítani. M in d ez nagyon bonyolult (E xplicitly P arallel In s tru c tio n C o m p u tin g ) nevezzük. B izonyos értelem b en az
h ard v ert igényel. N egyedik csapás. E P IC a R IS C u tó d ján ak tek in th ető .
A hhoz, hogy m in d ezt gyorsan cl lehessen végezni, hosszú cső v ezeték re van A z IA -6 4 -n ek szám os olyan tu lajd o n ság a van, am ely a h atékonyságo t n öve­
szükség. M ásrészt a hosszú cső azt ered m én y ezi, hogy az u tasításo k n ak b efejezé­ li. E zek közé tarto zik a m em óriahivatkozások csökkentése, u tasításütem ezés,
sük e lő tt tö b b ciklussal elő b b be kell lép n iü k a csőbe. K ö v etk ezésk ép p en nagyon feltételes elágazások csökkentése és előrejelzés. E zek et a tu lajd o n ság o k at és az
p o n to s elágazási jö v en d ö lés kell ah h o z, hogy a m eg felelő u tasítás kerü ljö n a cső­ Itan iu m 2-beli m egvalósításait fogjuk vizsgálni.
be. A jövendölési tév ed és a cső k iü ríté sét kényszeríti ki, ez nagy költség, m eg cse­
kély tévedési arán y is je le n tő s h aték o n y ság csö k k en ést ok o zh at. Ö tö d ik csapás.
H ogy enyhítsék a jöv en d ö lési tév ed és o k o zta p ro b lé m át, a pro cesszo rn ak sp e­ 5.8.3. A memóriahívatkozások csökkentése
kulatív végrehajtást kell végeznie m in d en felm erü lő problém ával, k ü lö n ö sen ha a
téves úto n való m em ó riah iv atk o záso k csap d át okoznak. H ato d ik csapás. A z Itan iu m 2 m em óriam odellje egyszerű. A m em ó ria m axim álisan 2'*^ m é re tű li­
N em kívánjuk tovább folytatni a m érk ő zést, de világos, hogy itt valóban p ro b ­ n eá ris tarto m ány. A z u tasításo k 1, 2, 4, 8, 16 vagy 10 b ájt m é re tű m ezők elérését
lém a van. É s m ég m eg sem e m líte ttü k azt a tén y t, hogy a 32 bites cím zés m iatt az teszik lehetővé, ahol az utolsó a 80 bites IE E E 754 szabvány szerinti leb egőpontos
egyes p ro g ram o k a 4 G B m em ó riá b a v an n ak korlátozva, am i egyre növekvő p ro b ­ szám ok k ezelésére szolgál. A m em ó riam ezü k n ek nem kell a term észetes h a tá rra
lém ája a nagy szervereknek. ig azíto ttn ak lenniük, de enn ek hiánya a h atékonyságot csökkenti. A m em ória le­
Sum m a sum m aru m , az IA -3 2 esete h a so n líth a tó a K o p ern ik u sz elő tti égi m e ­ h e t kis e n d ián vagy nagy en d ián , am it az o p eráció s ren d szer állal b e tö lth e tő re ­
chanika állap o táh o z. A csillagászatot u ra ló akkori e lm élet szerint a F öld m o zd u ­ g iszter egy bitje h a tá ro z m eg.
latlanul áll a világűrben, és a bolygók k örpályán k erin g en ek k ö rü lö tte. A zo n b an az A m em ó riaelérés hatalm as útszííkületet k épez a m o d ern szám ítógépeknél, m ert
egyre p o n to sab b m egfigyelések a m od elltő l való egyre tö b b elté ré s m eg állap ítását a C P U sokkal gyorsabb, m int a m em ória. A m em ó riahivatkozások gyorsításának
ered m én y ezték , am i végül o d a v ezetett, hogy a körpály ák h o z újab b k örpályákat egyik m ó dja a nagy 1. szintű, lap k ára integrált gyorsítótár, és a m ég nagyobb, lap ­
v ettek, am íg az egész m odell a belső bonyolu ltság átó l össze nem om lo tt. kához közeli 2. szintű gyorsítótár. M inden m o d ern tervezés tartalm azza ezt a két
A z Intel ugyanezzel a gond d al küzd. A P en tiu m 4 tran zisz to ra in a k nagy hán y a­ elem et, A g yorsítótár haszn álatát túl lehet lépni, m ás m ódszer is van a m em ó ria­
da arra szolgál, hogy szétb o n tsa a C IS C -u tasításo k at, k id erítse, hogy m it leh et p ár- h iv atk o záso k gyorsítására, és az IA -6 4 használ is néhányat,
huzam osítani, végzi a konfliktusok feloldását, jö v en d ö lése k et tesz, kijavítja a téves A legjobb m ódja a m em óriahivatkozások felgyorsításának, ha elkerüljük. Az
jö v en d ö lések et, és m ás könj'velést végez, és kevés m a ra d arra, hogy azt csinálja, Itan iu m 2 által m egvalósított IA -6 4 m o dellben 128 általán o s célú 64 bites re ­
am it a felhasználó k ért tőle. A z In tel szám ára k ím életlen a v égkövetkeztetés: k u ­ giszter van. A z első 32 statikus, a m arad ék 96 p ed ig regiszterverm et alkot, n a ­
kába az egésszel (lA -3 2 ), és k ezdjük az egészet elö lrő l tiszta lappal (lA -6 4 ). A z gyon h aso n lóan az U ltraSPA R C III reg iszterab lak technikájához. A zo n b an az
E M T-64 ad ném i leh ető ség et, de v alójában csak elfedi a bonyolultságot. U ltraS P A R C Ill-tó l elté rő e n a pro g ram által láth ató reg iszterek szám a változhat.
434 5. A Z u t a s i t A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5.8. A Z IN T EL lA -64 A RC H IT EK T Ú R A É S A Z ITA N IU M : 435

64 egybites so ro zata. B izonyos h atá ro k o n belül az egy c so p o rtb a ta rto z ó utasításo k konflik­
predikátum­ tu sm en tesek , nem igényelnek több funkcionális egységet, m int am ennyi a gép n ek
regiszter van, nem ta rta lm a z n a k R AW és WAW függőségeket, és csak k o rlá to z o tt szám ú
128 általános 128 lebegő­ 128 alkalmazási W A R függőség lehet. A z a látszat, hogy az egym ást követő cso p o rto k utasításait
regiszter pontos regiszter regiszter szigorúan szekvenciálisán kell végrehajtani, a következő cso p o rt v ég reh ajtása csak
ak k o r in d u lh at el, ha a m egelőző teljesen b efejező d ö tt. A C P U azonban azonnal
elk ez d h eti a következő cso p o rt v ég reh ajtását, am int azt b iztonságosnak érzi.
96 verem­ 8 elágazási E n n ek a szabálynak a következm énye, hogy a C PU az egy cso p o rtb a tarto zó u ta ­
regiszter regiszter sításo k at tetszés szerinti so rren d b en ü tem ezheti, nem kell tarta n ia a konfliktusok­
tól. H a egy u tasításcso p o rt m egsérti ezt a követelm ényt, akkor definiálatlan lesz a
h atása. A fo rd ító p ro g ram felad ata, hogy olyan u tasításso ro zato t generáljon a fo r­
32 statikus I rásp ro g ram b ól, am ely teljesíti a követelm ényeket. G yors fordításkor, a program
regiszter | fejlesztése során, a fo rd ító p ro g ram m inden u tasítást külön cso p o rtb a rak h at, ez
egyszerű, de nem eredm ényez haték o n y p ro g ram o t. A m ikor eljön az ideje a végső
5.49. ábra. Az Itanium 2 regiszterei term ék előállításának, ak k o r a fo rd ító p ro g ram sok időt tö lth e t az optim alizálással.
Az u tasításo k 128 b ites kötegekbe v annak csoportosítva, ezt m u tatja az 5.50. á b ­
eljáráso n k én t k ü lö n b ö ző leh et. T ehát m in d en e ljárás eléri a 32 statik u s reg iszte rt ra felső része. M inden köteg h áro m 41 bites u tasítást és egy 5 bites sablont ta rta l­
és m eg néhány (változó szám ú) d in am ik u san lefoglalt reg isztert. m az. A z u tasításcso p o rto k n ak n em kell teljes kötegekből állniuk; egy cso p o rt k ez­
E ljárás hívásakor a regiszterverem m u tató ja növelődik, te h á t a bem en cli p a ra m é ­ d ő d h et és végződhet k ö teg b elsejéb en is.
terek láth ató k lesznek regiszterekben, de lokális változók szám ára nem foglalódik re ­
giszter. A z eljárás m aga d ö nti el, hogy hány regiszterre van szüksége, és en n ek m eg­ Bitek 41 41 41 5
felelően növeli a regiszterverem m u tató ját, hogy lefoglalja a regisztereket. E zeket a
Utasítás 2 Utasítás 1 Utasítás 0
regisztereket nem kell elm en ten i belépéskor vagy visszaállítani befejezéskor, de ha
az eljárás m ódosítani ak aija a statikus regisztereket, akkor azokat m en ten ie kell és
vissza kell állítania. A z eljárások igényeihez igazított, változó szám ú regiszlerek hasz­ yy Sablon
n álatának az az előnye, hogy nem pazaroljuk a kevés regisztert, és az eljáráshívások
m élyebbre ju th atn a k a n é lk ü l hogy a regisztereket m em óriába kellene kirakni.
A z Itan iu m 2-nek 128 db IE E E 745 fo rm átu m ú le b eg ő p o n to s reg iszte re is van. 7 7 7 6"-
E zek n em regiszte rv erem m ó d o n m iíködnek. A reg iszterek nagy szám a lehetővé
MŰV. TÍPUS REGISZTER 3 REGISZTER 2 REGISZTER 1
teszi, hogy leb eg ő p o n to s szám ítások so rán a része re d m é n y e k e t is reg iszte rb en tá ­
roljuk, ezzel elk e rü lh ető , hogy a része re d m é n y e k e t m em ó riá b a n kelljen tárolni.
Van továbbá 64 egybites p re d ik átu m re g isz te re , nyolc elágazási reg isztere és ' MŰVELETOSZTÁLY PREDIKÁTUMREGISZTER'

128 speciális célú alkalm azási regisztere, ezek a k ü lö n b ö ző célo k ra h aszn álh ató k ,
p éld áu l az o p eráció s ren d sze r és az alkalm azási p ro g ram k ö zö tti p a ra m é te rá t­ 5.50. ábra. Az IA-64 köteg három utasítást tartalmaz
adásra. A z Itan iu m 2 reg iszte rein ek á tte k in té se az 5.49. áb rá n láth ató .
T ö b b m in t 100 u tasításfo rm a létezik. T ip ikusnak tek in th e tő az A l.U utasítás,
am it az 5.50. á b ra alsó része m u tat. Ilyen az ADD, am ely k ét reg iszter tartalm án ak
5.8.4. Utasításütemezés összegét képezi egy h arm ad ik regiszterben. A z első m ező a m űveletosztály, am ely
többnyire az u tasítás osztályát h atáro zza m eg, m ost például fixpontos A L U m ű ­
A P entium 4 egyik fő p ro b lém ája, hogy bon y o lu lt az u ta sítá so k a t úgy ü te m e z ­ velet. A m ásodik m ező, a m űvelettípus, az alkalm azan d ó u tasítást ad ja m eg m int
ni a külö n b ö ző fu nkcionális egységek k ö zö tt, hogy e lk erü ljü k a függőségeket. p éld áu l ADD vagy SUB. E zt követi a h áro m regiszterm ező. V égül a p re d ik á tu m re ­
K ülönlegesen ö ssz e te tt m ech an izm u so k k ellen ek ahlioz, hogy futási időben tu d ­ g iszter áll, am elyet a következő szakaszban ism ertetünk.
ju k kezelni a fellép ő igényeket, és ezek m egvalósítása a lap k a nagy részét elfog­ A k ö teg sablonja elsősorban azt m on d ja m eg, hogy m elyik funkcionális egységet
lalja. A z IA -6 4 és az Ita n iu m 2 azzal kerüli el e z ek et a p ro b lém ák at, hogy a fo r­ igényli, és az u tasításcso p o rt h a tá rá t, ha kell. A fő funkcionális egységek: fixpontos
d ító p ro g ra m ra bízza a m eg o ld ást. A z alap ö tlet, hogy a p ro g ram u tasításcso p o rto k A L U , fixpontos nem A L U utasítás, m em óriam űvelet, leb eg ő p o n to s m űvelet, el-
436 5. A Z u t a s It A s r e n d s z e r -a r c h i t e k t ú r a s z i n t j e 5.8. A Z IN T EL IA -64 A RC H IT EK T Ú R A ÉS A Z IT A N IU M : 437

ágazás és egyéb. T erm észetesen 6 funkcionális egység és 3 u tasítás e seté n 216 k o m ­ lam ely reg iszter nem 0, m o n d ju k a CMOVN u tasítás. K épzeljünk el egy if u tasítást,
b ináció lehetséges, plusz m ásik 216 a 0. u tasítás u tá n i u ta sításc so p o rt m a rk e r u tán , am ely tö b b é rte k a d ó u tasítást ta rtalm az a then ágban és ugyancsak több érté k a d ó
további 216 az 1. u tasítás u tán i u ta sítá scso p o rt-m a rk e r u tá n , és m ég m ásik 216 a 2. u ta sítá st az else ágban is. A z egész ö sszetett u tasítás á ta la k íth a tó olyan kóddá,
u tasítás u tán i u ta sítá sc so p o rt-m ark e r u tán . A sablon szám ára azo n b an csak 5 bit am ely b eállít egy reg isztert 0-ra, h a a feltétel nem teljesül, egy m ásikat pedig 1-re,
van, így erő sen k o rlá to z o tt a m e g e n g e d e tt ko m b in ációk szám a. M ásrészről, h áro m h a a feltétel teljesül. A reg iszterek beállítása u tán a then ág u tasításait CMOVN u ta ­
leb eg ő p o n to s u tasítás egy k ö teg b en n em leh et, m ég a k k o r sem , h a valahogy m eg sítások, az else ág u tasításait p ed ig CMOVZ u tasításo k so ro zatáv á alakíthatjuk.
tu d n á n k adni, m e rt h á ro m leb eg ő p o n to s u ta sítá st n em v ég ezh et p árh u za m o sa n a M indezeket az utasításokat, a regiszterek beállítását, a CMOVN és CMOVZ utasítá­
C P U . A zok a m e g e n g e d e tt ko m b in áció k , am elyek ténylegesen alk alm azh ató k . sokat egyetlen feltételes elágazást nem tartalm azó blokkba foglalhatjuk. Sőt, az u ta ­
sítások so rrendje m ég át is alak íth ató akár a fo rd ító által (beleértve azt is, hogy az é r­
ték ad ó utasítást a tesztelő elé teszi), ak ár futási időben. A z egyetlen, am it biztosítani
5.8.5. Feltételes elágazások csökkentése: prédikáció kell, hogy a feltételt akkor m ár ism erni kell, am ikor az utasítás (közel a cső végéhez)
a tényleges v égrehajtásba kezd. E rre m u tat egy egyszerű p éld át az 5.52. ábra.
A z IA -6 4 m ásik fo n to s jellem zője az a m ódszer, am ellyel a feltételes elágazásokat
kezeli. H a m ód lenne arra, hogy a legtöbbjüktől m egszabaduljunk, a C P U sok­ if(Rl ==0){ CMPR1,0 CMOVZ R2,R3,R1
kal egyszerűbb és gyorsabb len n e. E lső rá n ézésre leh e te tle n m egszabadulni tőlük, R2 = R3; BN ELl CMOVZ R4,R5,R1
R4 = R5; MOV R2,R3 CMOVN R6,R7,R1
m ert a p ro g ram o k tele v an n ak if u tasításokkal. A zo n b an , az IA -6 4 olyan tech n ik át
1else { MOV R4,R5 CMOVN R8,R9,R1
használ, az ún. p réd ik áció t, am ely használatával n agym értékben csö k k en th ető a
R6 = R7; BR L2
szám uk (A ugust és társai, 1998; H w u, 1998). M o st röviden ism ertetjü k a m ódszert.
R8 = R9; Ll: MOV R6,R7
A jelenlegi szám ító g ép ek m in d en u tasítá sa feltétel n élküli ab b an az é rte le m ­ MOV R8,R9
}
ben, hogy am ik o r a C P U eléri, ak k o r feltétel nélkül vég reh ajtja. N incs helye b e l­ L2:
ső k érd ésn ek : „Tenni vagy n e m te n n i? ” E zzel e lle n té tb e n a p red ik áció s a rc h ite k ­ (a) (b) (c)
tú rák b an az u tasítá so k fe lté te lt ta rtalm a z n a k (p re d ik á tu m ), am ely m egm ondja,
hogy végre kell-e h ajta n i az u tasítást, vagy sem . E z a p arad ig m a, am ely elm o zd u ­ 5.52. ábra. (a) if utasítás, (b) Általános assembly kód az (a) esetre, (c) Feltételes végrehajtás
lást je le n t a feltétel nélküli u tasításo k tó l a p red ik áció s u ta sításo k felé, lehetővé
teszi, hogy (sok) fe lté te le s elágazástól m egszab ad u lju n k . A h e ly e tt hogy k ét, fe lté ­ H a b á r csak nagyon egyszerű p é ld á t m u ta ttu n k a feltételes u tasításra (valójában a
tel nélküli u tasítá sso ro z a t k ö z ö tt k ellen e v álasztani, valam ennyi u ta sítást egyetlen P en d u m 4-ből véve), az IA -6 4 m inden u tasítása p red ik átu m o s. E z azt jelen ti, hogy
p red ik áció s u tasítá sso ro z a tb a fésü ln ek össze, k ü lö n b ö ző p re d ik á tu m o t alk alm az­ m in d en u tasítás v ég reh ajtása feltételessé teh ető . A z extra 6 bites m ező az u tasítás­
va k ü lö n b ö ző u tasításo k b an . ban a 64 d a ra b 1 bites p red ik átu m reg iszterb ő l egy elő re kiválasztottra hivatkozik,
A prédikáció m ű k ö d ésén ek b em u tatását kezdjük egy egyszerű példával, am elyet így az if u ta sítást olyan k ó d d á fordítják, am ely egy p red ik átu m reg isztert 1-re állít,
az 5.51. áb ra m utat. E z a feltételes v ég reh ajtás (feltételes utasítás), a p rédikáció elő d ­ h a a feltétel teljesül, és 0-ra, ha nem teljesül. E gyidejűleg és au to m atik u san b e á l­
je. A z 5.51. (a) ábra az if u tasítást m utatja, a (b) áb rán p edig e n n ek h áro m utasítássá lítja egy m ásik p red ik átu m reg iszter ta rta lm á t a feltétel inverze szerint. P rédikációt
való lefordítása látható: összehasonlítás, feltételes elágazás és m ozgató utasítás. h asználva az if u tasítás then ága és else ága egy-egy gépi u tasításso ro za tb a foglaló-
A z 5.51. (c) á b rá n m e g szab ad u ltu n k a feltételes elágazástól, bevezetve egy új dik, az előző a p red ik átu m o t, az u tóbbi pedig ann ak inverzét alkalm azza.
u tasítást, a feltéte le s m ozgatást. E z m egvizsgálja az Rl reg iszte r ta rta lm á t, ha 0, A z 5.53. á b ra m u ta tja a feltételes elágazás k ik üszöbölésének az a la p ö tle té t p ré ­
a k k o r R3-at átm áso lja R2-be, ha n em 0, ak k o r n e m tesz sem m it. dikáció alkalm azásával. A CMPEQ u tasítás összehasonlít k é t reg isztert, és b e á llít­
H a egyszer van olyan u tasításu n k , am ely a d a to t m áso], h a egy m eg h a tá ro z o tt ja a P4 p re d ik átu m reg iszter é rté k é t 1-re, ha egyenlők, és 0-ra, ha nem egyenlők.
regiszter 0, akko r csak egy lép é sre van az az u tasítás, am ely a k k o r m ásol, ha va- B eállítja a reg iszter p á rjá t is, m ondjuk, a P5 regisztert a feltétel inverzére. E zu tán
a then ág és az else ág következik egym ás u tán , m indegyik feltételes valam elyik re ­
if(R l ==0) CMPR1,0 CMOVZ R2,R3,R1
g iszterre (csúcsos záró jelek k ö zö tt van n ak m egadva). Itt tetszőleges kód m eg ad ­
R2 = R3; BN ELl h a tó , feltéve, hogy m in d en u tasítás m egfelelően van prédikálva.
MOV R2,R3 A z IA -6 4 ezt az elvet a végsőkig viszi azáltal, hogy m in d en összehasonlító u tasí­
Ll; tás b e á llíth a t p red ik átu m reg isztert, és m in d en m ás u tasítás leh et p red ik áció s vala­
(a) (b) (c) m ely p re d ik átu m reg iszterre hivatkozva. A pred ik áció s u tasításo k sorban b e k e rü l­
h e tn e k a v égrehajtási csőbe, nincs elakadás, nincs p ro b lém a. E z az, am iért nagyon
5.51. ábra. (a) if utasítás, (b) Általános assembly kód az (a) esetre, (c) Feltételes utasítás h asznos a prédikáció.
5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE
5.9. Ö S S Z E F O G L A L Á S 439
438

if(R1 == R2) CMP R1.R2 CMPEQ R1,R2,P4 5.9. Összefoglalás


R3 = R4 + R5; B N ELl <P4>ADD R3,R4,R5
else MOV R3,R4 <P5>SUB R6,R4,R5 A z u ta sítá sren d sz er-arch itek tú ra szintje az, am elyet a legtöbb e m b e r a „gépi nyelv”
R6= R4-R5 ADD R3,R5 szintjének tekint. E zen a szinten a szám ítógépnek néhány tíz m egabájtnyi bájt vagy
BR L2 szószervezésű m em ó riája van, és vannak utasításai, például a MOVE, ADD és BEQ.
Ll; MOV R6,R4 A legtöbb m o d ern szám ítógép m em ó riája bájto k so ro z a ta k é n t van szen/ez-
SUB R6,R5 ve, 4-8 b ájto s szavakba csoportosítva. Á ltaláb an 8 -3 2 regiszterük van, m indegyik
L2; m é rete egy szó. N éhány gépen (például P entium 4) a m em ó riáb an lévő szavak­
(a) (b) (0
ra hivatkozások nem k o rláto zó d n ak sz ó h atárra, m íg m ás gépeknél igen (például
5.53. ábra. (a) if utasítás, (b) Általános assembly kód az (a) esetre, (c) Predikádós végrehajtás U ltraS P A R C III).
A z u tasításo k n ak általáb an egy, k e ttő vagy h áro m o p era n d u su k van, am elyek
AiZ IA -Ő 4 e se tén a p réd ik áció v alójában úgy m űködik, hogy m in d en u tasítás cím zése leh e t közvetlen, d irek t, regiszteres, indexelt vagy m ás m ódú. N éhány gép
ténylegesen végreh ajtó d ik . A v égrehajtási cső legvége felé, am ik o r ak tu álissá válik sok és b onyolult cím zési m ó d o t tartalm az. Á ltaláb an létezik u tasításad ato k m oz­
az utasítás b efejezése, elvégződik a teszt, hogy a p re d ik átu m igaz-e. H a igaz, ak k o r g atá sá ra, m o n ad ik u s és diadikus m ű v eletek re, b eleértv e az aritm etikai-logikai
az u tasítás n o rm álisan fejeződik be, az ered m én y b ek erü l a célregiszterbe. H a a m ű v eletek et, van elágazás, eljáráshívás, ism étlés és n éh a B/K utasítás. A tipikus
p red ik átu m ham is, ak k o r nincs visszaírás, az u tasítá sn a k nincs h atása. A p ré d ik á ­ u ta sítás egy szót b etö lt a m em óriából egy regiszterbe (vagy fordítva), összeadás,
ciót részletesen tan u lm án y o zza D u lo n g könyve (D u lo n g , 1998). kivonás, szorzás vagy osztás m ű v eletet végez k ét reg iszter vagy egy regiszter és egy
m em ó riaszó tartalm án , vagy összehasonlítja azokat. N em szokatlan, ha a szám ító ­
g ép 200-nál is több utasítást tartalm az. C IS C g ép ek n ek gyakran m ég ennél is l<)bb
u tasítása van.
5.8.6. Spekulatív betöltés
A vezérlési folyam atot a 2. szinten olyan vezérlési alap m ű v eletek valósítják
A z IA -6 4 egy m ásik tu lajd o n ság a, am ely felgyorsítja a vég reh ajtást, a spekulatív m eg, m int a feltételes elágazás, eljáráshívás, korutinhívás, csapda és m egszakítás.
b etö ltés. H a egy LOAD u tasítás spekulatív, és sik ertelen a v ég reh ajtása, ak k o r a h e ­ A z elágazás azt jelen ti, hogy egy u tasításso ro za t véget ér, és egy m ásik u tasításso ­
lyett hogy m egszak ítást o k o zn a, beállít egy, a reg iszterh ez ta rto z ó b itet, jelezve, ro z a t v ég reh ajtása elkezdődik. A z eljárás egy absztrakciós m echanizm ust jelen t,
hogy an n ak ta rta lm a érvénytelen. E z az o k a a m érg ezésb it b ev ezetésén ek , am elyet am ely lehetővé teszi, hogy a pro g ram egyik részletét elkülönítsük, m int olyan egy­
a 4. fejezetb en tárgyaltunk. H a k éső b b a m érg e z e tt reg iszte rt ak arju k használni, séget, am ely et a p ro g ram tö b b helyéről leh et hívni. A koi ulin lehetővé teszi két
ak k o r a m egszakítás b ekövetkezik, egyébként nem lesz m egszakítás. v ezérlési szál szim ultán m ű k ö d ését. A csapdák arra használatosak, hogy kivételes
A spekulatív b etö lté sn e k az a n o rm ális haszn álata, hogy a fo rd ító e lő ré b b hozza e sem én y ek et kezeljenek, m int p éld áu l az aritm etik ai túlcsordulás. A m eg szak ítá­
a LOAD u tasításo k a t, m int ahogy azo k ra szükség len n e. M ivel előbb elk ezd ő d n ek , sok biztosítják, hogy a R/K a fő szám ítással p árh u zam o san m enjen, azonnal je le z ­
azelő tt be is fejező d h etn ek , ahogy az ered m én y re szükség len n e. A h o l a fo rd ító a ve a C P U -n a k a B /K m űvelet b efejeződését.
b etö ltés ered m én y é t használni szeretn é, kiad egy CHECK u tasítást. H a az é rté k a re ­ A H an o i tornyai p ro b lém a egy é rd ek es kis p ro b lém a, elegáns rekurzív m eg o l­
giszterben van, a k k o r ü res u tasítá sk é n t m űködik, és a v ég reh ajtás azo n n al folyta­ dással, am elyet részletesen vizsgáltunk.
tódik. H a az érté k nincs o tt, a k k o r a felfü g g esztett m egszakítás bekövetkezik. V égül az IA -6 4 a rc h ite k tú ra az E P IC m odellt alkalm azza szám ításo k ra azzal a
Ö sszefoglalva, az lA -6 4 a rc h ite k tú rá t m egvalósító g ép gyorsaságát tö b b té n y e ­ céllal, hogy kihasználja a p ro g ram o k p árh u zam o síth ató ság át. P rédikációt és sp e­
ző eredm ényezi. A lap v ető en egy m o d e rn végrehajtási cső, tö ltő /tá ro ló a rc h ite k tú ­ kulatív b e tö lté st is alkalm az a sebesség növelésére. M in d en t egybevetve, az IA -6 4
ra és h árom cím es R IS C -m o to r. E zen felü l az IA -6 4 m odell az explicit p á rh u z a m o ­ je le n tő s fejlődést re p rezen tál a P entium 4-hez k épest, b ár a hangsúlyt a fo rd ító á l­
sításra is, am ely m egköveteli a fo rd ító tó l, hogy k id erítse, m ely u tasításo k v ég ezh e­ tal v égzendő p árh u zam o sításra helyezi.
tők p árh u zam o sa n konfliktus n élkül, és ezek et egy k ö teg b e cso p o rto sítsa. E záltal
a C P U vakon ü tem e z h e ti az egy k ö teg b en lévő u tasítá so k at, n em kell hosszasan
gondolkodnia. Továbbá a p réd ik áció lehetővé teszi, hogy az if u ta sítás m in d k ét
ág ában lévő u tasítá so k a t egyetlen so ro z a ttá olvasszuk, kiküszöbölve a feltételes 5.10. Feladatok
elágazást. V égül a spekulatív b e tö ltés leh ető v é teszi, hogy o p e ra n d u so k a t elő re
b etöltsünk, nem szenvedve b ü n te té st, ha később kiderü l, hogy nincs rá szükség. 1. Egy kis end ián gép en egy szó ta rta lm a a 3 n um erikus értek. E zt a szót bájtról
A z Itan iu m 2-ről és arch ite k tú rá já ró l b ő v eb b en lásd (M eN airy és Solts, 2003; b ájtra á tm áso ltu k egy nagy en d ián gépre, te h á t a 0. b á jto t a 0. b ájtb a és így to ­
Rusu és társai 2004). vább. Mi a n u m erik u s érté k e az a d o tt szónak a nagy en d ián gépen?
440 5. A Z U T A SÍT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.10. FELA D ATO K 441

2. A Pentium 4 u tasításo k hossza le h e t a k ár p áro s, a k á r p á ra tla n szám . A z U ltra ­ feltételezve, am ely 4 t ö b b s z ö r ö s e , m i n i m á l i s a n hány b i t kell az
U ta s ítá s h o s s z t
SPARC III m in d en u tasítása szó egész szám ú tö b b szö rö se, te h á t hossza p áro s eg y es g é p e k e s e té nA" k i s z á m í t á s á h o z ?
szám . M o ndjo n egy érv et a m ellett, hogy a P en tiu m 4 sém ája előnyös. 8. A d jo n olyan cím zési m ó d szert, am ely lehetővé teszi, hogy 64 d arab tetszőleges
3. Tervezzen olyan m űveleti kód k iterjesztést, am ely 36 bites u tasításh o ssz esetén cím , nem feltétlen ü l összefüggő tarto m án y b an , m eg ad h a tó legyen 6 bittel!
lehetővé teszi a követk ező u tasításo k k ó dolását: 9. M o n d jo n az ö n m ó d o sító kód ellen egy olyan érvet, am elyet a könyvben nem
7 db utasítás k ét 15 bites cím m el és egy 3 bites regiszterszám m al em lítettü n k .
500 db utasítás egy 15 bites cím m el és egy 3 bites regiszterszám m al 10. K onvertálja át fo rd íto tt lengyel jelö lésre az alábbi infix form ulákat:
40 db utasítás cím és reg iszte r nélkül a)A-^B-^C-HD-E
4 . Tegyük fel, hogy sz ám ító g ép ü n k n ek 16 b ites utasításai van n ak 6 bites cím rész- b H A - B) X ( C D ) - t - E
szel. A z u tasításo k egy része kétcím es, a tö b b i egycím es. H a n db k ctcím es u ta ­ c) (A X B) (C X D ) E
sítás van, m ennyi az egycím esek m axim ális szám a? d) (A - B) X (((C - D X E )/F )/G ) x H
5. Van olyan m ű v elctik ó d -k iterjesztés, am ely leh ető v é teszi az alábbi u tasításo k 11. A z alábbi, fo rd íto tt lengyel jelö lésb en a d o tt fo rm u lap á ro k közül m elyek ekvi­
k ó d o lását 12 b iten ? A regisztereim 3 bites. v alen sek m atem atik ai é rtelem b en ?
4 db u tasítás 3 regiszterrel a ) A B - t - C - l - é s A B C - l - -t-
255 u tasítás egy regiszterrel b)A B -C -ésA B C --
16 u tasítás reg iszte r nélkül c) A B X C-K és A B C -t-x
6. A d o tta k az alábbi m c m ó ria ta rta lm a k és egy egycím es, a k k u m u lá to ro s gép. 12. K o n v ertálja infix fo rm ára az alábbi fo rd íto tt lengyel jelö lésű form ulákat:
M ilyen é rté k e k e t tö lte n e k a felso ro lt u tasításo k az ak k u m u lá to rb a ? a)AB-C-l-Dx
20. szó érték e: 40 b) A B /C D/-h
30. szó érték e: 50 c)ABCDE-^xx/
40. szó érték e: 60 d) A B C D E X F/-h G - H /x -h
50. szó érték e: 70 13. A djon h árom olyan fo rm u lát fo rd íto tt lengyel jelölésben, am elyet zárójelek
a ) LOAD IMMEDIATE 20 nélkül nem lehet infix fo rm ára konvertálni.
b) LOAD DIRECT 20 14. K onvertálja az alábbi infix logikai fo rm u lák a t fo rd íto tt lengyel jelölésre:
C) LOAD IN DIRECT 20 a) (A A N D B) O R C
d ) LOAD IMMEDIATE 30 b) (A O R B) A N D (A O R C )
e ) LOAD DIRECT 30 c) (A A N D B) O R (C A N D D )
f) LOADINDIRECT30 15. K o n v ertálja az alábbi fo rm u lát fo rd íto tt lengyel jelö lésre, és adja m eg a fo rm u ­
7. H aso n lítsa össze a 0, 1, 2, 3 cím es g ép e k e t azáltal, hogy p ro g ra m o t ír m in d ­ lát k ié rté k elő IJV M -kódot:
egyik g ép re az alábbi kifejezés k ié rték elésére; ( 5 x 2 -h 7 ) - ( 4 / 2 1)
X = (A B X C )/(D - E X F ) 16. A z alábbi assem bly nyelvű P entium 4 utasítás regisztert toll a m em óriából:
A k övetkező u tasításo k h aszn á lh a tó k az egyes gépek en : MOV REG, ADDR
0 cím es 1 cím es 2 cím es 3 cím es U gyanez az utasítás U ltraSPA R C Ill-b a n :
PUSHM LOADM MOV(X = Y ) MOV(X = Y) LOAD ADDR, REG
POP M STORE M ADD (X X -I- Y ) ADD (X = Y -I- Z ) M iért különbözik a k é t u tasításb an az o p eran d u so k so rren d je?
ADD ADD M SUB (X = X - Y ) SUB (X = Y - Z ) 17. H án y regisztere van a n n ak a gépnek, am elynek u tasításfo rm áit az 5.25. áb ra
SUB SUBM MUL(X = X x Y) MUL ( X = Y x Z) tartalm azza?
MÜL MÚL M DIV ( X = X / Y ) DIV (X = Y /Z ) 18. A z 5.25. ábrán a 23. bit szolgál az 1, és 2. u tasításfo rm a m egk ü lö n b ö ztetésére.
DIV DIVM N incs bit a 3. fo rm a m eg k ü lö n b ö ztetésére. H o n n an tudja a hardver, hogy a
M 16 bites cím , X , Y, Z vagy 16 bites cím vagy 4 bites regisztereim leh et. A 0 3. fo rm át kell használnia?
cím es gép v erem m el dolgozik, az 1 cím es a k k u m u lá to rt használ, a m ásik két !9 . A p ro g ram o zásb an gyakori, hogy a p ro g ram n ak m eg kell h atáro zn ia, hogy
g épnek 16 db reg isztere van, és m in d en m em ó ria- és reg iszte rk o m b in áció al­ a d o tt A' változó a z ^ - fi intervallum hoz k ép est hol helyezkedik el. H a lenne
k alm azh ató a cím zésben. A SUB X,Y u tasítás Y-t v o n ja ki A^-ből, a SUB X,Y,Z Z -t háro m cím es utasítás a z ^ , B é sX o p e ra n d u so k k a l, a k k o r hány feltételb itet k el­
vonja ki Y-ból, és az ered m én y A"-be kerül. 8 b ites m űveleti k ó d o t és olyan lene e n n ek az u tasításn ak b eállítan ia?
442 5. A Z U T A SlT Á SR EN D SZ ER - A R C H IT EK T Ú R A SZ IN T JE 5.10. FELA D A T O K 443

20. A Pentium 4-nek van olyan feltétclk ó d ja, am elyet a k k o r állít be, ha a 3. bitről 31. A k ö n w b e n a ciklusszervező u tasítást a fór ciklusokra vettük. Tcr\'ezzen olyan
van átvitel. M ire jó ez? u tasítást, am ely a legtöbb while (k ezd ő feltételes) ism étlés m eg\'alósítására
21. A z U ltraS P A R C Ill-n e k nincs olyan u tasítása, am ely 32 bites k o n stan st tö lte n e kedvező.
regiszterbe. H ely ette a SETHI és ADD u tasításo k h aszn álato sak . L étezik egynél 32. Tegyük fel, hogy a szerzetesek H an o ib an 1 p ere alatt tu d n ak egy k o ro n g o t á t­
tö b b m ódszer 32 b ites k o n stan s b e tö lté sé re ? In d o k o lja válaszát. rak n i (n em kell sietniük, m e rt az ő végzettségükkel n eh ezen találn ak m unkát
22. A b a rá tja azzal a b riliáns ö tle tte l állít be önhöz, hogy fe lta lálta a m űveleti kód H a n o ib an ). M ennyi ideig ta rt nekik a teljes 64 korongos p ro b lém a m egoldása?
nélküli utasítást. O rvoshoz k ü ld en é, vagy elh in n é neki? Fejezze ki az ered m én y t években.
23. A 8051-nek nincs 8 b itn él hosszabb eltolási érték e. A zt jele n ti ez, hogy n em le­ 33. A B /K eszközök m iért küldik ki a sínre a m egszakítási v ek to rt? L ehetséges
h e t 255-nél nagyobb m em ó riac ím ct elé rn i? H a m égis, hogyan? lenn e a m em ó riáb an táb lázatb an tárolni?
24. Az alábbi form ájú tesztek nagyon gyakoriak a p ro g ram o zásb an ; 34. A szám ítógép D M A -t használ m ágneslem ez olvasására. A lem ezegység 64
if {k == 0)... sz ek to rt tartalm az sávonként, a szek to r 512 bájtos. A lem ez forgási sebessége
if (a > b ) ... 16 ms. A sín 16 bit szeles, átviteli sebessége pedig 500 ns. A z átlagos C P U -u ta-
i f ( k <5 ) ... sítás k é t sínciklust igényel. M ennyire lassítja le a D M A a C P U -t?
Tervezzen olyan u tasítást, am ely h aték o n y a n m egvalósítja ezek et a tesztek et. 35. M iért ren d eln ek a m egszakításkezelő ru tin o k h o z elsőbbségi é rték et, am ikor a
M ilyen m ező k sze rep eln ek az u tasításáb an ? k ö zö n ség es eljáráso k h o z m eg nem ?
25. A z 1001 0101 1100 0011 16 b ites b in áris szám ra m u tassa m eg az alábbi m űve­ 36. A z IA -6 4 arc h ite k tú ra szokatlanul sok (128) regisztert tartalm az. Ö sszefüggés­
letek hatását: b en van ez a prédikációval? H a igen, hogyan? H a nem , mi az o k a a sok regisz­
a) jo b b ra lé p te té s 4 b ittel, 0 k itöltéssel tern ek ?
b) el(5jeles jo b b ra lé p te té s 4 b ittel 37. A könyvben a spekulatív LOAD u tasítást vizsgáltuk. A zonban nem em lítettü n k
c) b alra lép tetés 4 b ittel spek u latív STORE utasítást. M iért nem ? E zek alapjában véve h asonlók leh etn ek
d) b alra forgatás 4 b itte l a LOAD-dal, avagy m ás oka van annak, hogy nem em lítettü k ?
e) jo b b ra forg atás 4 bittel 38. H a k ét lokális szám ító g ép -h áló zato t kell összekötni, egy szám ítógépet, az ún,
26. H ogyan tu d n a nullázni egy m em ó riaszó t olyan gép en , am elynek nincs CLR u ta ­ h id a t (b ridge) illesztik a két hálózat közé. B árm elyik h áló za tb an kibocsátott
sítása? csom ag m egszakítást ered m én y ez a híd gépen, hogy a gép d ö n tsö n a továbbí­
27. S zám ítsa ki az (A A N D B ) O R C logikai kifejezés é rté k é t, ha tásró l. Tegyük fel, hogy 250 .us-ig (m ikro m áso d p ercig ) ta rt egy csom ag esetén a
A = 1101 0000 1010 0011 m egszakítás kezelése, és a csom ag m egvizsgálása, de a továbbítást D M A h a rd ­
B - I l i i 1111 0000 1111 v er végzi, m egszabadítva a C P U -t ettő l. H a m inden csom ag 1 KB m éretű , mi a
C = 0000 0000 0010 0000 m axim ális adatátviteli sebesség a h álózatok közciti, am elyet a híd m ég kezelni
28. A djon olyan m ó d szert, am ellyel az A és B v áltozók ta rta lm á t m egcseréli úgy, tu d adatvesztés nélkül?
hogy nem használ h arm a d ik válto zó t vagy regisztert. Tipp: gon d o ljo n az XOR 39. A z 5.43. áb rán a k e re tm u ta tó a nulladik lokális változóra m u tat. M ilyen infor­
kizáró vagy m ű veletre. m áció ra van szükség az eljárásból való visszatérés m egvalósításához?
29. Tegyük fel, hogy szám ító g ép ü n k ö n van olyan utasítás, am ely regiszterből szá­ 40. írjo n olyan assem bly nyelvű ru tin t, am ely előjeles bináris szám ot A SC II k ó d ú ­
m ot tölt regiszterb e, b alra lé p te t cs összead, és ezt a h áro m u tasítást kevesebb vá k onvertál.
idő alatt h ajtja végre, m int a szorzást. M ilyen fe lté tele k m ellett hasznos ilyen 41. írjo n olyan assem bly nyelvű ru tin t, am ely infix fo rm u lát fo rd íto tt lengyel je lö ­
m ó d o n szám olni a „k o n stan s x v álto z ó ” é rté k é t? lésre konvertál.
30. A k ü lönböző g é p ek n ek e lté rő az u tasítássű rű ség e (azo n b ájto k szám a, am ely 42. A H an o i tornyai nem az egyetlen kedvenc p éld a rekurzív eljárásra. Egy m á ­
a d o tt szám ítás elvégzéséhez szükséges). A z alábbi h á ro m Java nyelvű k ó d rész­ sik n ép szerű felad at az n \, ahol 0! = 1 és /;! = n{n - 1)!. írjo n rekurzív eljárási
letet fo rd ítsa le P en tiu m 4, U ltraS P A R C III és IJV M assem blyre. Szám ítsa ki, k edvenc assem bly nyelvében n\ é rté k é n e k kiszám ítására.
hány bájt kell az egyes nyelvek e setéb en . Tegyük fel, hogy i és j lokális változó 43. H a nincs m eggyőződve arról, hogy a rek u rzió n élk ü lö zh etetlen , p ró b álja m eg
a m em ó riáb an , de egy éb k én t optim ális feltételek k el szám olhat. m eg o ld ani a H anoi tornyai p ro b lé m á t rek u rzió nélkül, nem használva verm et
a) i = 3; a rek u rzió szim ulálására. Vigyázat, valószínű, hogy nem találja m eg a m egol­
b)i =j; dást ezen az úton.
c)
6.1. V IR T U Á LIS M EM Ó R IA 445

). Az operációs rendszer gép szintje 3. szint

2. szint

1. szint

6.1. ábra. Az operációs rendszer gép szintjének elhelyezkedése

A h a rm ad ik tém a a p árh u zam o s feldolgozás: tö b b processzus v égrehajtása, k o m ­


m un ik áció ja és szinkronizációja.
K önyvünk arró l szól, hogy a m o d e rn szám ító g ép ek egym ásra ép ü lő szintek so ro ­
A processzus (process) fontos fogalom , ezért a fejezet további részében részlete­
z a ta k é n t fo gható k fel, s m in d en szint további k önnyítést nyújt az a la tta lévőkhöz
sebben is tárgyaljuk. E gyelőre egy processzus úgy fogható fel, m int egy fu tó program
képest. M ár lá ttu k a digitális logikai, a m ik ro a rc h ite k tú ra és az u ta sítá sre n d sz e r­
és en n e k összes állapotinform ációja (m em ória, regiszterek, utasításszám láló, B/K
arc h ite k tú ra szintjét. Itt az ideje, hogy egy szinttel feljebb, az o p eráció s re n d szer
, állapot stb.). A z alapelvek általános vizsgálata u tán azt m u tatju k m eg, hogyan alkal­
b iro d alm áb a lépjünk.
m azh a tó k két p éld ak én t választott gépünk operációs rendszerére, a P entium 4-re
A z operációs rendszer (operating system ) a p ro g ram o zó szem p o n tjáb ó l olyan
(W indows X P ) és az U ltraSPA R C Ill-r a (U N IX ). M ivel a 8051-est rendszerint b e­
p ro g ram , am ely az ISA -szint fö lö tt és a la tt szám os új u ta sítá st és le h e tő sé g et kínál.
ágyazott ren dszerek ben használják, nincs is teljes operációs rendszere.
A z o p eráció s re n d sz e rt á lta lá b an szoftveres ú to n v alósítják m eg, de a m ik roprog-
ram o k éh o z h aso n ló h a rd v eres realizáció n ak sincs elm életi akadálya. A z általa
m egvalósított szin tet röviden O SM (O perating System M achine Level, operációs
rendszer gép szintje) név en fogjuk em leg etn i. E zt m u ta tja a 6.1. ábra.
B ár m ind az ISA , m ind az O S M ab sztrak t szintek ab b a n az é rte le m b e n , hogy
6.1. Virtuális memória
nem igazi h ard v eres szintek, van egy lényeges k ü lö n b ség k ö zö ttü k . A z O SM -szin-
A z első szám ítógépek id ejéb en a m em ó ria kicsi és d rág a volt. A z IB M 650, am ely
tű u tasításo k az alkalm azói p ro g ram o zó k re n d e lk e z ésé re álló teljes u tasításk ész­
ak k o rib a n (az 1950-es évek végén) a legjobb tudom ányos szám ítógép volt, csak
le te t jelentik. T artalm azzák m ajd n em az összes ISA -szintű u ta sítá st, v alam in t az
o p eráció s re n d sze r által h o z z á ad o tt új u tasításo k at. E ze k e t az új u ta sítá so k a t rend­ 2000 szavas m em ó riát tarta lm a z o tt. A z első A L G O L fo rd ító p ro g ram o k egyikét
olyan g ép re k észítették , am elynek csak 1024 szóból álló m em ó riája volt. Egy k o ­
szerhívásoknak (system calls) szokás nevezni. T én y leg esen m in d en rendszerhívás
az op eráció s re n d sz er valam ely elő re defin iált szo lg áltatását hívja m eg. T ipikus rai id ő o sztásos re n d sz e r egészen jól fu to tt azon a P D P -1 g épen, am ely az o p e rá ­
rendszerhívás p é ld á u l az a d a to k olvasása fájlból. A ren d szerh ív áso k n ev ét kisbetűs ciós re n d sz er és a felhasználói p ro g ram o k szám ára együttesen csu p án 4096 18 bi­
Helvetica b etű típ u ssa l fogjuk írni. tes szóból álló m em óriával ren d elk ezett. A p ro g ram o zó k ak k o rib an ren g eteg időt
A z O SM szint m indig in te rp re tá lt. H a egy felhasználói p ro g ra m O S M u tasítást tö ltö tte k el p ro g ram jaik „b ep réselésév el” a csöppnyi m em ó riáb a. G yakran csupán
(például fájlból tö rté n ő a d atb e o lv asást) végez, az o p eráció s re n d sze r ezt az u ta sí­ a z é rt k elle tt lassúbb alg o ritm u so k at használni, m e rt a jo b b algoritm usok túl n a ­
gyok v o h ak ; p ro g ram jaik n em fé rte k el a gép m em ó riájáb an .
tást lép ésen k én t h ajtja végre, ugyanúgy, m in t ahogy egy ADD u tasítás is a m ikro-
p ro g ram lép ésen k én ti v ég reh a jtá sá t jelen ti. A m ik o r azo n b a n ISA -szintű u tasítást A p ro b lé m a hagyom ányos m egoldása m ásodlagos m em ória, p éld áu l lem ez
h a jt végre a p ro g ram , ezt az o p eráció s re n d sze r k ö zrem ű k ö d ése n élkül, k ö zv etle­ ig énybevétele volt. A p ro g ram o zó olyan átfedéseknek (overlays) n ev ezett kisebb
részek re o szto tta fel p ro g ram ját, am elyek külö n -k ü lö n m á r e lfértek a m e m ó riá ­
nül az a la tta lévő m ik ro a rc h ite k tú ra szintje végzi el.
ban. A p ro g ram fu tásak o r először az első rész tö ltő d ö tt be és fu to tt egy darabig.
K önyvünk csak igen rövid b e te k in té st tu d n yújtani az o p eráció s re n d sz e re k té ­
A m ik o r b efejezte m ű k ö d ését, beo lv asta és e lin d íto tta a következő részt és így to ­
m ájába, e z ért figyelm ünket h á ro m fo n to s te rü le tre összpontosítjuk. A z első a s o k
vább. A p ro g ram o zó n ak k ellett gondo sk o d n i a p ro g ram átfed ések re d a r a b o l á ­
o p eráció s re n d sz e r által n y ú jto tt v irtuális m em ó ria tech n ik a, am ellyel úgy tűnik,
sáról, az egyes részek elhelyezéséről a m ásodlagos m em ó riáb an , a m em ó ria és a
m in th a a g épben a valóságosnál nagyobb m e m ó ria len n e. A m áso d ik az előző
lem ez közti m ozgatásukról, és általáb an az átfed éses ren d sz e r kezeléséről. A gép
fejezetb en vizsgált B /K u tasítá so k n á l m ag asab b szintű fogalom , a fájlszintű B/K.
e h h e z sem m i segítséget n em adott.
446 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.1. V IR T U Á LIS M E M Ó R IA 447

E z a m egoldás sok éven át általá n o sa n e lte rjed t volt, b á r az átfe d é se k k e z e lé ­ Címtartomány


se igen sok m unkával já rt. Egy m an ch e steri angol k u ta tó c so p o rt 1961-ben olyan
Cím 4^
m ód szert javasolt az átfe d ése k a u to m a tik u s k ezelésére, m elynél a p ro g ra m o z ó ­
n ak nem is kell tu d n ia az egész re n d szerrő l (F o th erin g h am , 1961). E z a m ódszer,
am ely m a virtu ális m em ória (virtu a l memory) néven ism ert, azzal a nyilvánvaló 4 KB fizikai
előnnyel já rt, hogy m eg szab ad íto tta a p ro g ra m o z ó t egy halo m u n alm as ad m in iszt­ 8191 memória
rációtól. E lőször az 1960-as évek b en alkalm azták tö b b g é p en , főleg a szám ító g é­ 4096 4095
p es re n d szerek terv ezését célzó k u tatási p ro jek tek k el k a p cso latb an . A z 1970-es 0
évek elejére a virtuális m em ó ria m á r a legtöbb g ép en e lé rh e tő volt. M a m á r a csu­
p á n egyetlen lapkából álló g é p ek n ek (így a P en tiu m 4-nek és az U ltraS P A R C III- 6.2. ábra. A 4096 és 8191 közti virtuális dmel<hez aOé s 4095 l<özti memóriacímel<et
nak) is fejlett virtu álism em ó ria-k ezelő ren d sze re van. E z e k e t e feje z etb e n k éső b b hozzárendelő leképezés
fogjuk vizsgálni.
m ó riacím re való h ivatkozás” vagy hasonló d urva h ib aü ze n et u tá n b efejező d n e a
p ro g ram v égreh ajtása. V irtuális m em óriával ren d elk ező g ép en a következő lé p é ­
6.1.1. Lapozás sek h a jtó d n á n a k végre:

A m an ch esteri cso p o rt által k ifejlesztett új ö tle t a cím tarto m á n y és a m e m ó ria ­ 1. A m e m ó ria ta rta lm á n a k lem ezre m entése.
rekeszek fo g alm án ak szétválasztása volt. P éld a k én t vegyünk egy a k k o rib an tip i­ 2. A 8192 és 12287 közti szavak m eg k eresése a lem ezen.
k usnak szám ító g ép et, m elynek, m o n d ju k , 4096 szavas m em ó riája, u ta sítása ib a n 3. A 8192 és 12287 közti szavak b e tö lté se a m em ó riáb a.
p edig 16 bites cím része volt. A g ép en fu tó p ro g ram o k 65 536 szót tu d ta k m eg cí­ 4. A m em ó ria té rk é p m egváltoztatása; a 8192 és a 12287 közti cím ek leképezése
m ezni, m ivel 65 536 (2 “’) 16 b ites cím létezik, am elyek m indegyike a m e m ó ria k ü ­ a 0 és 4095 közti m em ó riarek eszek re.
lönböző szavainak felel m eg. Figyeljük m eg, hogy a m eg cím ezh ető szavak szám a a 5. A v ég reh ajtás folytatása - m in th a mi sem tö rté n t volna.
cím ben lévő b itek szám ától függ, és sem m i köze a ténylegesen ren d elk e z é sü n k re
álló szavak szám ához. E n n e k a g é p n ek a cím tartom ánya (address space) te h á t a A z á tfe d ése k au to m atik u s k ezelésén ek ezt a tech n ik áját lapozásnak (paging),
0, 1, 2, ..., 65 535 szám okból áll, mivel ez a leh etség es cím ek halm aza. A g é p n ek a lem ezrő l b eolvasott p ro g ram részek et p ed ig lapoknak (pages) nevezzük.
persze könnyen le h e t en n é l a 65 535-nél kevesebb szóból álló m em ó riája. A c ím tarto m án y h o z ta rto z ó cím eknek a valódi m em ó riacím ek re való lek ép e zé­
A virtuális m em ó ria felfed ezése e lő tt m eg k e lle tt vo ln a k ü lö n b ö zte tn i a 4096 sét k ifin o m u ltab b an is kezelhetjük. A n yom aték k ed v éért azo k at a cím eket, a m e ­
alatti és az ennél nagyobb cím eket. B ár ritk án fe jte tté k ki ilyen részletességgel, ezt lyekre a p ro g ram hivatkozhat, virtu ális cím tartom ánynak (virtu a l address space),
a k ét részt a hasznos, illetve a h a szo n talan c ím tarto m án y n ak te k in te tté k (a 4096 m íg a tényleges, „ b e d ró to z o tt” (fizikai) m em ó riacím ek et fizikai cím tartom ánynak
fölötti cím ek azért voltak h aszo n talan o k , m e rt n em ta rto z o tt h o zzáju k v alódi m e ­ (physical address space) fogjuk nevezni. A m em óriatérkép (m em ory m ap) vagy
m ória). A zért nem k ü lö n b ö z tették m eg a cím tarto m án y t és a m em ó riacím ek et, lap tábla (page m ap) az egyes virtuális cím ek n ek m egfelelő fizikai cím eket h a tá ­
m ert a h ard v er egy-egy é rte lm ű m e g feleltetést h o z o tt létre k ö zö ttü k . rozza m eg. F eltesszük, hogy a lem ezen van elég hely a teljes virtuális c ím ta rto ­
A cím tarto m án y és a m em ó riacím ek elk ü lö n ítésén ek elve a következő. B árm ely m ány (vagy legalábbis a h aszn álatb an lévő része) szám ára.
id ő p illan atb an kö zvetlenül 4096 szó é rh e tő el a m em ó riáb ó l, de ezek n em fe lté t­ A p ro g ra m o k úgy írh ató k m eg, m in th a a teljes virtuális cím tarto m án y szám á­
lenül a 0 és 4095 közti m em ó riacím ek n ek feleln ek m eg. „M eg m o n d ju k ” a gépnek, ra e leg e n d ő m em ó ria len n e a gépben, m ég h a a valóságban nem is ez a helyzet. A
hogy m o stan tó l kezdve p éld áu l a 4096 cím re való hivatkozás e se té n a m em ó ria 0 p ro g ra m b e tö lth e t tetszőleges virtuális cím ről, írh a t oda, a vég reh ajtás elág azh at a
cím ű szavát kell használni. H a a 4097 cím re hivatkozunk, ez je le n tse az 1 m em ó ria ­ v irtuális c ím tarto m án y tetszőleges helyén ta lá lh a tó u tasításra, te k in te t nélkül arra,
cím et, a 8191 a m em ó ria 4095 cím én találh a tó szót stb. M ás szóval a 6.2. á b rá n lá t­ hogy nincs is elég fizikai m em ó ria. V alójában a p ro g ram o zó n ak n em is kell tu d n ia
h a tó leképezést definiáljuk a cím tarto m án y b ó l a valódi m em ó riacím ek halm azára. a virtuális m em ó ria létezéséről. E gyszerűen úgy látja, m in th a a g ép b en ren g eteg
H a a cím tarto m án y t a tényleges m em ó ria re k e sz ek re az á b rá n m eg a d o tt sém a m e m ó ria len ne.
szerint képezzük le, azt m o n d h atju k , hogy egy 4 K B -os, virtu ális m em ó ria nélküli Igen fo n to s e n n ek szem beállítása a később ism erteten d ő szegm entálással, ahol
gép e setén fix lek ép e zésü n k van a 0 és 4095 közti cím ek, v alam in t a m e m ó ria 4096 a p ro g ram o zó n ak te k in te tte l kell lennie a szegm ensek létezésére. M ég egyszer
szava kö zö tt. E zek u tá n fe lte h e tjü k azt az é rd ek es k érd ést, hogy mi tö rté n ik akkor, hangsúlyozzuk: a lapozás azt az illúziót nyújtja a p ro g ram o zó n ak , m in th a a vir­
h a a p ro g ram v ég reh ajtása so rán 8192 és 12287 közti cím ek re ágazik el. V irtuális tuális cím tarto m án n y al m egegyező m é re tű nagy, folytonos, lineáris m em ória len ­
m em ó ria nélküli g é p en ez futási h ib á t o kozna, m elynek h a tá s á ra „N em lé te z ő m e- ne. A való ságban a ren d elk ezésre álló fizikai m em ó ria leh et nagyobb is, kisebb is
448 6. A Z O P E R Á C IÓ S R EN D SZ ER G É P SZ IN T JE 6.1. V IR T U Á LIS M EM Ó R IA 449

a virtuális cím tarto m án y n ál. A p ro g ram o k n em tu d ják érzékelni, hogy lapozással Lap Virtuális címek
szim ulált nagy m em óriával d olgoznak (kivéve, ha id ő m érő tesztek et fu ttatn ak ).
V alahányszor hivatkozunk egy cím re, úgy tűnik, m in th a az a d a to t vagy az u tasítást - "
tartalm azó valódi szavakkal dolgoznánk. A lapozási m ech an izm u st transzparens­ 15 61440-65535
nek hívjuk, hiszen a p ro g ram o zó úgy írh at k ó d o t, m in th a n em is létezn e a lapozás.
14 57344-61439
V égül is egyáltalán n em ú jd o n ság az az ö tle t, hogy a p ro g ra m o z ó anélk ü l hasz­
nálhasson valam ely n em létező sajátosságot, hogy tö rő d n ie k ellen e a m űködési 13 53248 - 57343
m ódjával. Az ISA -szintű u tasításk észlet gyakran ta rta lm a z MÚL u tasítást, h o lott 12 49152-53247
csak az a la tta lévő m ik ro a rc h itek tú rá b an van szorzóegység. A m ik ro k ó d szintje
11 45056-49151
teszi lehetővé azt az illúziót, hogy a gép tu d szorozni. A z o p e ráció s re n d sz er által
10 40960 - 45055
szo lg áltato tt virtuális g ép h a so n ló an tu d olyan illúziót nyújtani, hogy m in d en v ir­ A fizikai memória
tuális cím m ö g ö tt valódi m e m ó ria van, m ég ha n em is ez az igazság. C sak az o p e ­ 9 36864 - 40959 alsó 32 KB-os része
Lap­
rációs re n d szere k író in ak (és az e z ek e t tan u lm án y o zó h a llg ató k n ak ) kell tu d n ia, 8 32768-36863 keret Fizikai címek
hogyan ta rth a tó fö n t ez az illúzió. 7 28672 - 32767 7 28672 - 32767
6 24576-28671 6 24576 - 28671

6.1.2. A lapozás megvalósítása 5 20480 - 24575 5 20480 - 24575


4 16384-20479 4 16384-20479
A virtuális m em ó ria egyik alap k ö v e telm én y e az egész p ro g ra m és az összes ad a t
3■ 12288-16383 3 12288-16383
tá ro lá sá ra szolgáló lem ezegység. E gyszerűbb úgy elk ép zeln i, hogy a p ro g ram le­
2 8192-12287 2 8192- 12287
m ezen lévő v álto zata az e re d e ti, és a m em ó riá b a id ő k ö z ö n k é n t b e tö ltö tt d arab jai
a m ásolatok, m in t fordítva. T erm észetesen fo n to s az e re d e ti frissítése; ha v álto zo tt 1 4096- 8191 1 4096- 8191
a m em ó riáb an lévő m áso lat, e n n e k tü k rö ző d n ie kell az e re d e ti p éld án y o n is. 0 0- 4095 0 0- 4095
A virtuális cím tarto m án y t azo n o s m é re tű la p o k ra szokás felosztani. A m a szo­
kásos la p m é re te k 512 és 64 K B b á jt közé esn ek , b á r alk alm a n k é n t h aszn áln ak
(a) (b)
a k á r 4 M B -os la p o k a t is. A la p m é re t m indig 2 valam ely hatványa. A fizikai cím ­
ta rto m án y t h aso n ló an osztják fel. A d a ra b o k m é re te a la p m é re tte l m egegyező, így
m indegyikük p o n to sa n egy lap tá ro lá sá ra alkalm as. E z e k et a m e m ó ria d a ra b o k at, 6.3. ábra. {a) fK virtuális címtartomány első 64 KB-os része, melyet 16 darab 4 KB méretű lapra
m elyekbe lap o k a t tö ltü n k b e, lapkereteknek (page fram es) fogjuk nevezni. A 6.2. osztottunk fel. (b) A 32 KB-os fizikai memória nyolc darab szintén 4 KB-os lapkerettel
áb rán a m em ó ria csak egy la p k e re te t ta rta lm a z o tt. A g y ak o rlatb an m egvalósított
ren d szerek b en á lta lá b a n tö b b e z e r la p k e re t van. V izsgáljuk m eg, hogyan k é p e z h e tő le valam ely 32 b ites virtuális cím a fizikai
A 6.3. (a) ábra a virtuális cím tartom ány első 64 K B-os részének egyik lehetséges m em ó ria egy cím ére. E lvégre a m em ó ria csak ilyen cím ekkel tu d dolgozni, te h á t
felosztását m utatja 4 K B-os lapokra. (M egjegyezzük, hogy 64 KB, illetve 4 KB cím ről ezt kell valahogy m egadnunk. M inden virtuális m em óriával ellá to tt szám ítógép
beszéltünk. Egy cím m indig egy cella címe, és a cella leh et bájt, de ugyanígy lehet szó ta rta lm az a virtuálisról fizikai cím re való leképezést m egvalósító eszközt. E n n e k
is olyan gépeken, ahol az egymás után i szavak egym ásra következő cím en találhatók.) neve M M U (M em ory M anagem ent U nit, m em óriakezelő egység). E lhelyezkedhet
A 6.3. áb rán láth ató virtuális m em óriát annyi elem ű laptáblával lehetne m egvalósí­ m ag án a C P U lap k án vagy k ü lön lapkán, m ely u tóbbi szorosan együttm űködik a
tani, ahány lapból a virtuális cím tartom ány áll. A z egyszerűség kedvéért csak az első C P U -val. A z általu n k p é ld a k é n t felh o zo tt M M U a 32 bites virtuális cím eket 15 b i­
16 elem et tü n tettü k fel. H a a p rogram a virtuális cím tartom ány első 64 K B-os részébe tes fizikai cím ekre képezi le; eh h ez 32 bites b e m en e ti és 15 bites k im eneti regisz­
eső szóra próbál hivatkozni, hogy o n n an utasításokat vagy ad ato k at töltsön be, illetve te rre van szüksége.
írjon vissza, először egy 0 és 65 532 közé eső virtuális cím et kell generálnia. E közben A z M M U m ű k ö d ésén ek m eg értéséh ez tek in tsü k a 6.4. áb rá n lá th a tó p éldát.
alkalm azhat indexelést, indirekt cím zést és m inden m ás szokásos m ódszert. A m e g k a p o tt 32 bites virtuális cím et az M M U 20 bites virtuálislap-szám ra és a
A 6.3. (b) áb rá n 8 d a ra b 4 ICB m é re tű la p k e re te t ta rta lm a z ó fizikai m em ó riát lá ­ lap o n belüli 12 b ites elto lásra (offset) b o n tja fel (a 20 bit a 4 K B -os lap m éretb ő l
tu n k . A 32 K B -os m e m ó riak o rlá t szárm azh at abból, hogy (1) nincs is tö b b a g ép ­ ad ó d ik ). A v irtuálislap-szám ot indexként használva keresi ki a laptáblából a m eg ­
b en (egy m ik ro sü tő b e vagy m o só g ép b e b e é p íte tt p ro c e ssz o rn ak talán elég is eny- felelő bejegyzést. A 6.4. áb rán a virtuálislap-szám 3, így a lap táb la 3. elem ét veszi.
nyi); vagy (2) a tö b b i m em ó ria m ás p ro g ram o k n a k van kiosztva.
450 6. A Z O P E R Á C IÓ S R EN D S Z E R G É P SZ IN T JE 6.1. V IR T U Á LIS M E M Ó R IA 451

15. bit Memóriacím Laptábla


Virtuális Kimeneti Virtuális Lap­
1 1
lap regiszter keret
lap

15 0 0

14 1
^ \
13 0 0

12 0 0

11 1 5 N
10 0 0

9 0 0
Lap­
8 1 Fizikai memória keret
3 S
7 0 0

6 1 7 _

5 1 6 -

4 0 0

3 1 2 _

2 0 0
1 1 0 _

0 1 1 _

1 = Bent van a fizikai memóriában


0 = Nincs bent a fizikai memóriában

6.5. ábra. Az első 16 virtuális lap egy lehetséges leképezése a 8 lapkeretből álló memóriára

-20 bites virtuálislap-szám - 12 bites eltolás - szükség 3 b itre, m ert a fizikai m em ó ria a p éld án k b a n 8 lap k cretb ő l áll. M int az
áb ráb ó l is láth ató , ezzel p árh u zam o san a virtuális cím alsó 12 bitje (a lapon belüli
32 bites virtuális cím elto lás) átm áso ló d ik a k im en eti regiszter alsó 12 b itjére. E zt a 15 bites cím et küldi
tovább a g y o rsító tárh o z vagy a m em óriához.
6.4. ábra. A tényleges memóriadm meghatározása a virtuális cím alapján A 6.5. á b ra a virtuális lap o k fizikai lap k eretek re való egyik lehetséges leképezését
m u tatja. A 0. virtuális lap az 1. lap k eretb en van. A z 1. virtuális lap a 0. lap k eretb en
E lő szö r azt vizsgálja m eg az M M U , hogy a h iv atk o zo tt lap nincs-e je len le g a találh ató . A 2. virtuális lap nincs a m em óriában. A 3. virtuális lap a 2. lap k eretb en
m em ó riáb an . E lvégre a 2^° v irtuális lap és a m indössze nyolc la p k e re t m iatt n em van. A 4. virtuális lap nincs a m em óriában. A z 5. virtuális lap a 6. lap k eretb en ta ­
leh et az összes lap egyszerre a m em ó riáb an . A z M M U a lap tábla-bejegyzésben lálh ató stb.
talá lh a tó jelenlét/h ián y bit (present/absent bit) segítségével végzi az ellenőrzést.
P éld án k b an a bit é rték e 1. vagyis a lap m ost is a m em ó riá b a n van.
A következő lép ésb en a k iválasztott bejegyzésben szerep lő la p k e re té rté k e t
(esetü n k b en 6-ot) átm áso lja a 15 bites k im en eti reg iszte r felső 3 bitjére. A z ért van
452 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.1. V IR T U Á LIS M E M Ó R IA 453

6.1.3. A kérésre lapozás és a munkahalmaz modell 6.1.4. Lapcserélő eljárások


A z előző fejteg etések so rán fe lte ttü k , hogy a h iv atk o zo tt virtuális lap a m e m ó riá ­ Id eális e setb en a p ro g ram által gyakran és aktívan használt lapok halm aza, a m u n ­
b an van. E z a feltevés azo n b an n em m indig teljesül, m e rt a m e m ó riá b a n nincs elég k ah alm az, a m em ó riáb an ta rth a tó lenne, s ezzel csö k k en th etn cn k a laphiányok
hely az összes virtuális lap szám ára. A z olyan hivatkozás, am ely n em a m e m ó riá ­ szám át. Á m a pro g ram o zó k csak ritk án tu d ják , hogy m ely lapok ta rto z n a k a m u n ­
b an lévő lapon talá lh a tó cím re v o natkozik, laphiányt (page fault) okoz. L ap h ián y kah alm azh o z, ezt az o p eráció s re n d sz e rn e k kell (d in am ik u san ) felfedeznie. H a a
fe llép tek o r az op erác ió s ren d sze rn e k be kell olvasnia lem ezrő l a k é rt lap o t, be kell p ro g ra m olyan la p ra hivatkozik, am ely nincs a m em ó riáb an , a szükséges lap o t be
írn ia új fizikai helyét a lap tá b láb a , és m eg kell ism ételn ie a h ib át o kozó utasítást. kell tö lte n i lem ezről. L egtöbbször azo n b an először „helyet kell csinálni”, bizonyos
V irtuális m em ó riáv al re n d e lk e z ő g é p en a k k o r is e lin d íth atu n k egy p ro g ram o t, lap o k a t vissza kell írni a lem ezre. S zükségünk van te h á t az eltáv o lítan d ó lapokat
h a egyetlen része sincs a m em ó riáb an . C su p án úgy kell b eállítan i a lap táb lát, hogy m eg a d ó alg o ritm usra.
jelezze, a p ro g ram h o z ta rto z ó lap o k közül egyik sincs a m em ó riáb an , m in d a m á ­ V alószínűleg nem túl jó ö tle t az eltáv o lítan d ó lap v életlen szerű kiválasztása. H a
sodlagos tá ro ló n helyezkedik el. A m ik o r a C P U m eg p ró b álja az első u tasítá st b e ­ a laph ián y t o kozó u tasítást tartalm azó la p ra esne a választás, a következő u tasí­
tö lten i, rö g tö n laphiány lép fel, m elynek h a tá sá ra az első u ta sítást ta rta lm az ó lap tás b e tö lté sé n e k m egkísérlése azonnal újabb laphiányt ered m én y ezn e. A legtöbb
b e tö ltő d ik a m em ó riáb a, és ez az info rm áció b ek erü l a lap táb láb a. E z u tá n elk ez­ o p e rác ió s re n d szer m eg p ró b álja m egjósolni, hogy m elyek a m em ó riáb an lé \ő
d ő d h e t az első u tasítás v égrehajtása. „leg h a sz o n talan ab b ” lap o k abban az értelem b en , hogy eltávolításuk a leh ető leg­
H a az első utasítás 2 cím et ta rta lm a z , s ezek a m ár b e tö ltö ttő l k ü lö n b ö ző k ét kisebb m é rték b en zavarná a fu tó p ro g ram o t. E n n e k egyik m ódja az lehet, hogy
további lapon ta lá lh a tó k , k ét ú jab b laph ián y lép fel, és k é t további lap tö ltő d ik be m in d en la p ra m egjósolja a v á rh a tó legközelebbi hivatkozás id ő p o n tját, s azt a la­
m ielő tt az utasítás v é g re h ajtó d h a tn a . A k ö v etk ező u tasítás további lap h ián y o k at p o t táv o lítja el, am elynél ez a legtávolabbi jövőbeli id ő p o n t. M ás szóval ahelyett,
o k o zh at stb. hogy egy n e m so k ára szükséges la p o t m e n te n é n k ki, p ró b álju n k olyat választani,
A virtuális m em ó ria h a sz n ála tá n ak ezt a m ó d sz erét kérésre lapozásnak (de- am ely m ég sokáig n em kell.
mand paging) nevezzük, a jó l ism ert g y erek etetési alg o ritm u s an aló g iájára, m ely­ A z egyik n ép szerű algoritm us a legrég eb b en n em használt lapot veszi, mivel
nél h a sír a baba, m eg etetjü k - szem b en a precíz n a p ire n d szerin ti etetésse l. A k é ­ nagy a valószínűsége, hogy ez nincs b e n n e a m u n k ah alm azb an . A m ódszer neve
ré sre lapozásnál a lap o k n em e lő ze tesen , h a n e m csak a k k o r tö ltő d n e k be a m e m ó ­ LRU (L east Recently Used, legrégebben használt) algoritm us. Á ltaláb an jól hasz­
riáb a, ha ténylegesen kérik. n á lh a tó , b á r v an n ak olyan p atologikus esetek , m int az alább ism erteten d ő példa,
C sak a p ro g ra m e lin d u lásak o r lényeges, hogy a k é résre lap o zást használjuk-e. am ik o r csúnyán k u d arco t vall.
H a m ár fu to tt valam eddig, a szükséges lap o k á lta lá b an b e n t lesznek a m e m ó riá ­ K ép zeljü k el azt a p ro g ram o t, am ely egy 9 lap o n elhelyezkedő hosszú ciklust
ban. H a a gép en id ő o sztást haszn álu n k , és a p rocesszusok k ö rü lb elü l 100 m sec fu ­ h ajt végre olyan g épen, am elynek m em ó riájáb an csak 8 lap szám ára van hely. A
tás u tá n cserélő d n ek , ak k o r m in d en p ro g ram re n g eteg szer lesz elindítva a fu tása 6.6. (a) á b ra a m em ó ria helyzetét m u tatja, m iu tán a p ro g ram fu tása a 7. laphoz
során. M ivel m inden p ro g ra m h o z egyedi m e m ó ria té rk é p tarto zik , s p ro g ram v ál­ ért. V égül olyan u tasításh o z érü n k , am ely a 8. lap ró l p ró b ál u tasítást b etö lten i. Ez
tásk o r ez is változik, időosztásos re n d sze re k b e n k ritik u ssá v álh at a helyzet. lap h iány t eredm ényez. E l kell d ö n ten i, hogy m elyik lap o t távolítsuk el. A z L R U
A z altern atív m eg k ö zelítés azon a m egfigyelésen alapul, hogy a leg tö b b p ro g ­
ram n em egyen letesen hivatkozik a c ím tarto m án y ára, h a n e m n é h án y lap körül
7. virtuális lap 7. virtuális lap 7. virtuális lap
„sű rű sö d n ek össze” a hivatkozások. E z t a fo g alm at lokalitás elvnek (locality prin-
6. virtuális lap 6. virtuális lap 6. virtuális lap
ciple) nevezzük E gy m em ó riahiv atk o zás u ta sítást tö lth e t be, a d a to k a t olvashat
vagy tá ro lh a t. B árm ely t id ő p illa n a tb a n te k in th e tjü k a leg u tó b b i k m em ó riah iv a t­ 5. virtuális lap 5. virtuális lap 5. virtuális lap
k ozásban szerep lő lap o k h alm azát. D e n n in g (1968) nyo m án ezt m unkahalm az 4. virtuális lap 4. virtuális lap 4. virtuális lap
(working set) név en fogjuk em legetni. 3, virtuális lap 3. virtuális lap 3. virtuális lap
M ivel a m u n k ah alm az id ő b en lassan változik, a legutóbbi m eg állításk o ri h alm az
2. virtuális lap 2. virtuális lap 2. virtuális lap
alap ján elfo g ad h ató becslés a d h a tó a rra , hogy a p ro g ra m újab b in d ításak o r m ely
1. virtuális lap 1. virtuális lap 0. virtuális lap
lap o k ra lesz szükség. E zek a lap o k m á r a p ro g ram in d ítása e lő tt b e tö lth e tő k (fel­
téve, hogy b e férn ek a m em ó riáb a). 0. virtuális lap 8. virtuális lap 8. virtuális lap

(a) (b) (c)

6 .6. ábra. A z LRU algoritmus csődje


454 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.1. V IR T U Á LIS M EM Ó R IA 455

algo ritm us a 0. virtuális lap o t választja, mivel ezt h aszn áltu k legrég eb b en . A 0. v ir­ 6.1.5. Lapméret és elaprózódás
tuális lap elm o zd ítása és a 8. virtuális lap b etö lté se u tá n a 6.6. (b) áb rá n lá th a tó
helyzet alakul ki. H a v életlen ü l úgy adódik, hogy a felhasználó p ro g ram ja és ad ata i valahány lapon
A 8. virtuális lap o n talá lh a tó u tasítá so k v ég reh ajtása u tá n a p ro g ram visszatér p o n to san elférnek, a m em ó riáb a való betcSltésükkor nem pocsékolunk el helyet.
a ciklus elejére, a 0. virtuális lap ra. E z a lépés ú jab b lap h ián y t okoz. A z elő b b ki­ A z ellen k ező ese tb e n az u to lsó lap o n valam ennyi hely k ih asználatlanul m arad.
ra k o tt 0. virtuális lap o t vissza kell h ozni a m em ó riáb a. A z L R U alg o ritm u s ezelő tt H a egy 4096 bájtos la p m é re tű gép en p éld áu l a p ro g ram és az ad ato k összesen
az 1. lap o t írja ki a lem ezre, s így a 6.6. (c) á b rá n lá th a tó helyzet áll elő. A p ro g ram 26 000 b á jto t igényelnek, ak k o r m egtelik az első 6 lap (6 x 4096 = 24 576 b ájt), és
kis ideig m eg a 0. lap o n folytatódik. A zu tán az 1. lap ró l p ró b ál u ta sítá st b etö lten i, az uto lsó la p ra m arad m ég 26 000 - 24 576 = 1424 bájt. M ivel lap o n k én t 4096 bájt
am iből laphiáiiy lesz. V issza kell h ozni az 1. lap o t, és k ikerü l a 2. szám ára van hely, elp o csék o ltu n k 2672 b ájto t. A hányszor csak b etö ltjü k a h etedik
U gye az m á r nyilvánvaló, hogy az L R U alg o ritm u s m in d en alk alo m m al a leg ­ la p o t a m em ó riáb a, ezek a b ájto k teljesen haszo n talan u l foglalnak le helyet. A z
rosszabb leh ető ség et választja? (H aso n ló k ö rü lm én y ek k ö z ö tt m ás alg o ritm u so k is e lv eszteg etett bájtokkal k apcsolatos fenti p ro b lé m á ra belső elaprózódás (inter­
h ib ázh a tn ak .) }Ia azonban a ren d e lk e z é sre álló m em ó ria m é re te nagyobb a m u n ­ n á l fragm entation) néven fogunk hivatkozni (a k ih aszn álatlan hely valam elyik lap
k ah alm azénál, az L R U v á rh a tó a n m inim alizálni fogja a laphiányok szám át. b elsejéb en találh ató ).
A m ásik lapcserélő alg o ritm u s a FIFO (First-In First-O ut, először be, először A la p m é re te t n b á jto sra választva a belső elap ró zó d ás m iatt a p ro g ram utolsó
ki). A F IF O m ód szer a leg rég eb b en b e tö ltö tt la p o t távolítja el, fü g g etlen ü l attól, lap ján elveszített hely átlag o san n/2 b ájt lesz, am i azt sugallja, hogy kiesi lap m éret
hogy m ik o r hivatk o ztak rá u to ljára. M in d en lap k e reth ez egy szám láló tarto zik , h aszn álatáv al m in im alizálható a veszteség. A kis la p m é re t azonban ren g eteg la­
m elyet k ezd etb e n ü-ra állítunk. A z é p p e n a m e m ó riá b an ta rtó z k o d ó lap o k h o z p o t és nagy la p táb lát eredm ényez. H a a la p tá b lá t h ard v eres ú to n valósítjuk m eg, a
ta rto z ó szám lálók é rté k é t m in d en laph ián y u tá n eggyel növeljük, az ú jo n n a n b e ­ n ag y m éretű lap táb la tá ro lásá h o z tö b b reg iszter kell, ez növeli a gép árát. Továbbá
tö ltö tt lap ét pedig 0-val inicializáljuk. H a lap o t kell eltáv o lítan i, azt választjuk, m in d en p ro g ram e lin d ításak o r vagy m eg állításak o r tö b b id ő re lesz szükség ezen
am elynek szám lálója a legnagyobb é rté k e n áll. M ivel e n n e k a szám lálója a leg n a ­ re g iszterek b e tö ltéséh ez és elm en téséh ez.
gyobb, ez a lap „élte tú l” a leg tö b b laphiányt. E z azt jelen ti, hogy k o rá b b a n lett be- R á a d á su l kis lap m éretn él a lem ez sávszélességének k ihasználtsága sem m eg ­
töit\'e a m em ó riá b a n lévő összes többi lapnál, és így (rem élh e tő leg ) kom oly esélye felelő, M ivel a tényleges átvitel k ezd ete elő tt körülbelü l 10 m s-ot kell várakozni a
van annak, hogy n em is lesz rá szükség a to vábbiakban. k eresési és a forgási késleltetés m iatt, a nagyobb m ennyiségű átvitel h atékonyabb
H a a m u n k ah alm az nagyobb a ren d e lk e z é sü n k re álló la p k e re te k szám ánál, a k isebbnél. 10 M B/s átviteli sebesség e setén 1 KB h elyett 8 K B átm áso lása csak
a laphiányok gyakoriak lesznek, s eg yetlen alg o ritm u s sem a d h a t jó ered m én y t, 0,7 m s-m al igényel tö b b időt.
h acsak nincsen jó steh etség g el m egáldva. A zt a jelen sé g e t, am ik o r egy p ro g ram A kis lap o k n ak viszont m egvan az az előnye, hogy a virtuális cím tarto m án y e l­
gyakran, szinte fo ly am ato san la p h ián y o k at g en erál, vergődésnek (thrashing) n e ­ k ü lö n ü lt helyein elhelyezkedő sok kis lapból álló m u n k ah alm az esetén kisebb a
vezzük. Talán fölösleges m eg em líten ü n k , hogy n em k ív án ato s jelen ség rő l van szó. v erg ő d és esélye. P éld ak én t te k in tsü n k egy 10 000 x 10 0 0 0 -e s ^ m átrixot, m elynek
A z olyan pro g ram o k k al nin csen sok gon d , am elyek nagy v irtuális cím tarto m án y t A [ \,\ ] ,A [ 2 ,\ ] ,A [ 3 ,\] stb. elem eit egym ás u tán i 8 bájtos szavakban tároljuk. E z az
h asználnak, d e m u n k ah alm azu k kicsi, id ő b en lassan v áltozó, és m indig e lfé r a re n ­ oszlopfolytonos táro lás azt jelen ti, hogy az első s o r / l [ l , l ] , ^ [ l , 2 ] , / l [ l , 3 ] stb. e le ­
delkezésre álló m em ó riáb an . E z a m egállap ítás m ég a k k o r is igaz, ha a p ro g ram m ei egym ástól 80 000 b ájt távolságra hely ezkednek el. H a egy p ro g ram sokat szá­
fu tása során több százszor annyi virtuális m em ó riaszó t használ fel, m in t a gép m e ­ m o ln a a sor összes elem ével, 10 000 olyan régióval dolgozna, m elyek m indegyikét
m ó riájáb an levő szavak szám a. 79 992 b ájt választja el a rákövetkezőtől, 8 KB la p m éretn él a felhasznált lap o k n ak
H a egy eltávo lítan d ó lap o n nem m ó d o síto ttu n k sem m it a beolvasás ó ta (am i összesen 80 M B táro ló h ely kellene.
nagyon valószínű, h a n em a d a to k a t, h an e m p ro g ra m k ó d o t tarta lm a z), szü k ségte­ 1 KB la p m é re tte l csak 10 M B R A M -ra le n n e szükség. H a a ren d elk ezésre álló
len visszaírni a lem ezre, hiszen o tt m á r létezik egy p o n to s m áso lata. H a a b eo lv a­ m e m ó ria 32 M B, a k k o r 8 KB lap m é re tte l v ergődne a p ro g ram , 1 K B -tal azonban
sás ó ta m ó d osíto ttu k , a lem ezen lévő p éldány m á r n em p o n to s, ezért ki kell írni a n em . M in d e n t figyelem be véve, a fejlődés irányát a nagyobb la p m é re te k h aszn á­
m ostanit. lata jellem zi.
A m ennyiben m eg tu djuk m o n d an i valahogyan, hogy a beolvasás ó ta a lap v á lto ­
zatlan m arad t (tiszta, clean) vagy p ed ig írtu n k rá (szennyezett, dirty), e lk e rü lh ető
a tiszta lap o k újraírása. Ezzel sok id ő t sp ó ro lu n k m eg. Sok g épen az M M U -b an
m in d en lap h o z tarto z ik egy bit, am elyet b e tö lté sk o r 0 -ra állít, és a h a rd v e r vagy
a m ik ro p ro g ram 1-re m ódosít, ha a lap szen n y ezetté válik (rá írtu n k valam it). Az
o p eráció s ren d sze r e n n ek a b itn ek a vizsgálatával el tu d ja d ö n te n i, hogy a lap tisz­
ta vagy szennyezett, te h á t vissza kell-c m ásolni a lem ezre lapcsere esetén .
456 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.1. V IR T U Á LIS M E M Ó R IA 457

6.1.6. Szegmentálás V alójában olyan m ód szerre len n e szükség, am ely m en tesíti a p ro g ram o zó t az
összeh ú zó d ó és kinyúló táblák k ezelésének kényszerétől, m int ahogy a virtuális
A z eddig vizsgált v irtuális m em ó ria lineáris (egydim enziós) volt; a cím ek 0-tól m e m ó ria m eg szü n tette a p ro g ram átfed ések re osztásán ak a gondját.
kezdve valam ely m axim ális cím ig sorjáztak. Sok e se tb e n előnyösebb, ha egyetlen A z egyik nyilvánvaló m egoldás sok teljesen független cím tartom ány, ún. szeg­
virtuális cím tarto m án y h ely ett k e ttő vagy tö b b k ü lö n c ím tarto m án y u n k van. A fo r­ m ensek (segm ents) bevezetése. M in d en szegm ens 0-tól valam ely m axim ális é rté ­
d ító p ro g ram o k n a k p éld áu l a fo rd ítás so rán fe lé p íte tt szám os tá b lá z atu k lehet: kig te rje d ő cím ek lineáris sorozata. Az egyes szegm ensek hossza ü-tól a m eg en g e­
d e tt m axim um ig b á rm ek k o ra lehet. A külö n b ö ző szegm ensek hossza e lté rő lehet,
1. A változók nev ét és a ttrib ú tu m a it ta rta lm az ó szim bólum tábla. re n d sz e rin t ez is a helyzet. A szegm ensek hossza m ég v álto zh at is a végrehajtás s o
2. A listázáshoz m eg ő rz ö tt fo rrásk ó d . rán . P éld áu l valahányszor a v erem b e b e teszü n k valam it, a verem szegm ens m érete
3. Az összes felh aszn ált egész és leb eg ő p o n to s k o n sta n st ta rta lm a z ó tábla. n ő h e t, h a p edig kiveszünk belőle, csökkenhet.
4. A p ro g ram szin tak tik u s elem zé se k o r lé tre h o z o tt elem zési fa. M ivel m in d en szegm ens külön cím tarto m án y t alkot, a kü lö n b ö ző szegm ensek
5. A fo rd ító p ro g ra m o n belüli eljárásh ív áso k h o z ta rto z ó verem . egym ástól függetlenül n ő h e tn e k vagy zsu g o ro d h atn ak . A m ik o r az egyik szegm ens­
b e n elh ely ezkedő v erem n ek a n ö v ekedéshez nagyobb cím tarto m án y ra van szüksé­
A z első négy táb la m é re te fo ly am ato san n ő a fo rd ítás e lő reh alad táv al. A z u tolsóé ge, n y u g o d tan m eg k ap h atja, m ert sem m i m ás nincs a cím tarto m án y áb an , am ivel
elő re nem láth ató m ó d o n n ő és csökken m e n et k özben. E gydim enziós m e m ó riá ­ ö sszeü tk ö zésbe k erü lh etn e. A szegm ensek term ész etesen b etelh etn ek , de á ltalá­
b an az ö t táb la szám ára a 6.7. á b rán lá th a tó m ó d o n fo g laln án k le folytonos szele­ b an olyan nagyok szoktak lenni, hogy ez csak ritk án fo rd u lh at elő. Ilyen szegm en­
te k e t a virtuális cím tarto m án y b ó l. tált vagy k étd im enziós m em ó ria e setén a p ro g ram o k k ét részből álló cím m el adják
m eg a tényleges cím et. A z első rész a szegm ens szám a, a m ásodik a szegm ensen
Virtuális címtartomány belüli cím . A 6.8. á b ra a k o rá b b a n e m lített fo rd ító p ro g ram táb láin ak szegm entált
Szabad | m e m ó riáb a való elhelyezését illusztrálja.
A hívási veremnek
H angsúlyozzuk, hogy a szegm ens olyan logikai egység, am ely a p ro g ram o zó szá­
lefoglalt címtartomány
Jelenleg használt A hívási verem m á ra is láth ató , s am elyet ő is egyetlen logikai egységként kezel. A szegm ens ta r ­
ta lm az h a t eljárást, tö m b ö t, v erm et vagy skaláris változókból álló gyűjtem ényt, de
re n d sz e rin t nincs b en n e kü lö n b ö ző típusokból álló keverék.
Elemzési fa

20K
Konstans tábla |

Szimbólum­
tábla
Hívási
-Elemzési verem
6.7. ábra. k z egydimenziós címtartományban a növekvő tábiáii egymásba üticözhetnek Konstans fa
tábla
V izsgáljuk m eg, m i tö rté n ik , h a egy p ro g ra m k iv ételesen sok v álto zó t ta rtalm az. 1. 2. 3. 4.
A szim bólum táb la szám ára lefoglalt m em ó riarész a k k o r is b e telh et, h a a többi szegmens szegmens szegmens szegmens
tá b láb an m ég ren g e te g hely van. A fo rd ító p ro g ra m eg yszerűen kiírh atja, hogy a
túl sok változó m ia tt n em tu d ja folytatni m u n k áját, de ez n em tű n ik tú l sp o rtszerű 6.8. ábra. Szegmentált memóriában minden tábla a többiektől függetlenül nőhet vagy
m egoldásnak, hiszen a többi tá b lá b a n m ég m a ra d t k ih aszn álatlan hely. zsugorodhat
A m ásik leh ető sé g az len n e, hogy a fo rd ító p ro g ra m R o b in H o o d m ó d jára csö k ­
k e n te n é a sok ü res hellyel re n d e lk e z ő táb lák m é re té t, s a szab ad te rü le te t a hely­ A változó m é re tű a d a ts tru k tú rá k egyszerűbb kezelése m ellett a szegm entált
szűkében lévőknek a d n á át. E z az á tre n d e z és kiv itelezh ető , de ak árcsak az á tfe ­ m em ó riá n a k m ás előnyei is vannak. H a az egyes eljáráso k 0 kezdőcím től m ás-m ás
d ések kezelésén ek m egszervezése, legalábbis k ellem etlen , a legrosszabb e setb en szeg m en sek ben h elyezkednek el, a k ü lö n le fo rd íto tt eljáráso k összeszerkesztése
p edig jó sok fárad ság o s, n em k ifizetődő m u n k á t je len t. is sokkal könnyebb. A p ro g ra m o t alk o tó eljáráso k fo rd ítása és összeszerkesztése
458 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P S Z IN T JE 6.1. V IR T U Á LIS M EM Ó R IA 459

Után az n. szegm ensben lévő eljárás hívása a 0. szó (a belépési p o n t) m egcím zése hány olyan b ittel, am elyek a m eg en g e d ett h o zzáférést h atáro zn ák m eg, en n ek k i­
az (n. 0) kétrészes cím m el történik. h aszn álásáh oz a p ro g ram o zó n ak nyilván kellene ta rta n ia , hogy cím tartom ányán
H a az n. szegm ensben ta lá lh a tó eljárást a k ésőb b iek b en m ódo sítju k és ú jra fo r­ belül hová esnek a lap h atáro k . A z ö tle t szépséghibája az, hogy a lapozást p o n to ­
dítjuk, egyetlen m ásikon sem kell v álto z ta tn u n k , mivel a kezd ő cím ek nem v áltoz­ san az e ffajta ad m inisztráció s felad ato k k iküszöbölésére ta lá ltá k ki. A s/c g m e n tá lt
tak (m ég ak ko r sem , h a az új v álto zat hosszabb a réginél). E gydim enziós m e m ó ­ m em ó ria h asználóinak úgy tűnik, hogy az összes szegm ens állan d ó an a m em ó riá­
riáb a .szorosan egym ás u tán helyeznék el ezek et az eljáráso k at, hogy ne m arad jo n ban van, teh át ezek m egcím ezhetők anélkül, hogy á tfed ések k én t való ad m in isztrá­
ki köztük cím tartom ány. K ö v etk ezésk ép p en valam elyik eljárás m é re té n e k m eg ­ ciójukkal kellene foglalkozni.
v álto ztatása befo ly áso lh atja m ás, hozzá nem k ap cso ló d ó eljáráso k k ezd ő cím ét is.
E m ia tt viszont m ó d o sítan i kell m in d en olyan eljárást, am ely az á th e ly e ze tte k e t
hívja, hogy ezekbe is b ek erü ljö n az új kezdőcím . M in d ez elég drága m u latság leh et 6.1.7. A szegmentálás megvalósítása
tö bb száz eljárásból álló p ro g ra m o k esetén .
A különböző p ro g ram o k közti kód- és ad atm eg o sztást is elősegíti a szeg m en ­ A szeg m en tálás k étféle m ó d o n v aló síth ató m eg: cseréléssel (sw apping) vagy lap o ­
tálás. H a a gép en tö b b p ro g ram fu t p á rh u z a m o san (a k á r valódi, a k á r szim ulált zással. A z első m ó d szern él m in d en id ő p illan atb an szegm ensek bizonyos halm aza
párh u zam o s feldolgozással), és ezek m ind h aszn áln ak bizonyos közös kön>'vtári van a m em ó riáb an . H a olyan szegm ensre tö rtén ik hivatkozás, am ely p illanatnyi­
eljáráso k at, a m e m ó ria p o csék o lása len n e, h a m indegyik p ro g ram saját m áso lato t lag nincs b en t, ak k o r az b etöltődik. H a nincs elég hely szám ára, elő szö r egy vagy
kap n a belőlük. M in d en e ljárást külö n szegm ensbe helyezve könn y en m e g o sz th a t­ tö b b szegm ensl lem ezre kell írni (kivéve, h a ezekből m á r van a lem ezen tiszta p él­
ju k őket, s így nem kell belő lü k egynél tö b b fizikai m á so la to t a m em ó riáb an ta r ta ­ dány; e k k o r a m em ó riáb an ta lálh ató m ásolat eld o b h ató ). A szegm ensek cserélése
ni. Ezzel m em ó riá t sp ó ro lu n k meg. bizonyos é rtelem b en hasonló a k érésre lapozáshoz: a szegm ensek szükség szerint
Mivel m in d en szegm ens a p ro g ram o zó által is lá th ató logikai egységet képez m o zog nak a lem ez és a m em ó ria között. A szegm entálás m egvalósítása azonban
(am i leh et eljárás, tö m b vagy v erem ), a szegm ensek véd elm e e lté rő leh et. A z el­ lényegesen elté r a lapozásétól: míg a lap m éret rögzített, a szegm ensek m érete vál­
járásszegm ensek le h e tn e k csak v ég reh ajth ató k , m egtiltva ezzel olvasásu k at vagy tozó. A 6.10. (a) á b ra p é ld a k é n t k ezd etb en h at szegm enst ta rtalm azó m em ó riát
felülírásukat. A le b eg ő p o n to s tö m b ö k e t specifikálhatjuk írh a tó n a k és o lv ash ató ­ m u tat. N ézzük m eg, mi tö rtén ik , ha eltávolítjuk az 1. szegm enst, s helyére a nála
nak, de nem v ég reh ajth ató n ak . így észrev eh ető , ha a p ro g ram v ég reh a jtá sa ráju k kisebb 7. szegm enst hozzuk be. A 6.10. (b) áb rán lá th a tó m em óriakonfigurációt
p ró b áln a futni. A z efféle v édelem gyakran seg íth eti a p ro g ram o zási h ib ák m eg ­
találását.
Próbáljuk m eg átgon d o ln i, hogy m iért van é rtelm e a v éd ele m n ek a szeg m en tált 4. szegmens 4. szegmens
m em ó riáb an és m iért nincsen az egydim enziós (lin eáris) lap o zo tt m em ó riáb an . (7K) (7K) 5. szegmens 5. szegmens
(4K) (4K)
S zegm entált m e m ó ria ese tén a felh aszn áló tu d ja, hogy mi van az egyes szeg m en ­
sekben. N orm ális esete k b e n p é ld áu l nem volna u g yanabban a szegm ensben egy
eljárás is m eg egy v erem is, h an em csak vagy az egyik, vagy a m ásik. M ivel m inden 3. szegmens 3. szegmens 3. szegmens
(8K) (8K) (8K) 5. szegmens
szegm ens csak egyetlen típ u sú o b je k tu m o t tartalm az, a v édelm e e n n ek m egfelelő 6. szegmens (4K)
(4K)
lehet. A lapozást és a szeg m en tálást a 6.9. áb rá n haso n lítju k össze.
6. szegmens
A lapok ta rta lm a bizonyos é rte le m b e n v életlen szerű . A p ro g ram o zó m ég a la­ 2. szegmens 2. szegmens 2. szegmens 2. szegmens (4K)
pozás tényét sem veszi észre. B ár ki le h e tn e egészíten i a la p táb la bejegyzéseit né- (5K) (5K) (5K) (5K)
2. szegmens
(5K)
Szempontok Lapozás Szegmentálás 1. szegmens
Tudnia kell-e róla a programozónak? Nem Igen (8K) 7. szegmens 7. szegmens 7. szegmens 7, szegmens
Hány lineáris címtartomány létezik? 1 Sok (5K) (5K) (5K) (5K)
Meghaladhatja-e a virtuális címtartomány 0. szegmens 0. szegmens
Igen Igen 0. szegmens 0. szegmens 0. szegmens
nagysága a fizikai memória méretét? (4K) (4K) (4K) (4K) (4K)
Könnyen kezelhetők-e a változó méretű táblák? Nem Igen
Nagy memória Több címtartomány (a) (b) (0 (d) (e)
Milyen céllal dolgozták ki ezt a technikát?
szimulálására biztosítására
6.10. ábra. (a)-(d) A külső elaprózódás kialakulása, (e) Az elaprózódás megszüntetése
6.9. ábra. A lapozás és a szegmentálás összehasonlítása összepréseléssel
460 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE
6.1. v i r t u á l i s M E M Ó R IA 461

kapjuk. A 7. és a 2. szegm ens k ö zö tt k ih aszn álatlan te rü let, „lyuk” van. E zu tán a m ás után i lyukak egy nagy lyukká olvaszthatok össze. H a a 6.10. (d) á b ráró l az 5.
6.10. (e) á b ra szerin t a 4. szegnienst az 5.-kel, m ajd a 6.10. (d ) áb rá n lá th a tó m ó­ szegm enst íáv o lítan án k el, a két környező lyuk és a szegm ens által használt 4 KB
d on a 3. szegm enst a 6. szegm enssel h elyettesítjük. M iu tán egy ideig fut a re n d ­ egyetlen 11 KB m é re tű lyukká olvadna össze.
szer, a m em ó ria szeg m en sek et és „ly u k ak at” ta rta lm a z ó részek re o szth ató . A je ­ A szakasz elején azt állíto ttu k , hogy a szegm entálás k étfélek ép p en , cseréléssel
lenség neve k ü lső e lap ró zó d ás (ex tern al fra g m e n ta tio n ), mivel az clp o csék o lt hely vagy lapozással való síth ató m eg. A z eddigi fejteg etések során a cserélésre össz­
a szegm enseken kívül, a k öztük lévő lyukakban van. A külső e lap ró zó d ást néha p o n to síto ttu n k . E n n él a sém ánál teljes szegm ensek ingáznak igény szerin t a lem ez
lyukacsosodás (ch eck erb o ard in g ) néven is em legetik. és a m e m ó ria között. A szegm entálás m ásik m egvalósításánál a szegm enseket fix
N ézzük m eg, mi tö rté n n e , ha a m e m ó rián ak a 6.10, (d ) áb rán lá th a tó e la p ró z ó ­ m é re tű lap o k ra osztjuk, és ezeket lapozzuk a k érések szerint. L ehetséges, hogy va­
dása u tán a pro g ram a 3. szegm ensre hivatkozna. A lyukakban levő hely összesen lam elyik szegm ens lapjainak egy része a m em ó riáb an , a többi m eg a lem ezen van,
10 KB, am i bőven elég len n e a 3. szegm ensnek, d e mivel ez a hely kicsiny, h a szo n ­ h a ezt a m egoldást választjuk. A lap o zá sk o r m in d en szegm enshez külön laptábla
talan d a rab o k ra van szétszabdalva, a 3. szegm ens egyszerűen nem tö lth e tő be. kell. M ivel m in d en szegm ens csu p án egy lineáris cím tartom ány, az összes eddig
E lő szö r el kell távolítani valam elyik szegm enst a m em ó riáb ó l. m eg ism ert lapozási tech n ik a alk alm azh ató a szegm ensekre. A z egyetlen új sajá­
A külső elap ró z ó d á s elk e rü lé sé n ek egyik leh etség es m ó d szere a következő. tosság az, hogy m in d en szegm ens saját la p táb lát kap.
V alahányszor lyuk keletkezik, a lyuk m ö g ö tti szeg m ensek et toljuk el a 0 m e m ó ­ A z e re d e tileg az M . I. T , a B ell L abs és a G e n eral E lectric együttm űködésével
riacím felé úgy, hogy ezt a lyukat m egszüntessük. E k k o r p ersze a m e m ó ria végén lé tre h o z o tt korai o p eráció s ren d szer, a MULTICS (M ULtiplexed Information
k eletkezik egy nagyobb lyuk. E setleg v á rh a tu n k is addig, m íg a külső e lap ró zó d ás and Coniputing Service), is lapozással kom b in ált szegm entálást használt (C o rb ató
kom olyabb szin tet nem é r el (p éld áu l a teljes m e m ó ria a d o tt százaléka fölé n em és Vyssolsky; 1965; O rganick, 1972). A M U L T IC S cím ei k ét részből álltak, a szeg­
kerül a lyukak összege), és csak e k k o r kezd jü k el a m em ó ria „ ö sszep réselését”. m ensszám ból és a szegm ensen belüli cím ből. M in d en processzushoz ta rto z o tt
E n n e k az összep résclcsn ek az a célja, hogy a sok kis h a szo n talan lyukat egy olyan egy leíró szegm ens, am ely m in d en szegm enshez ta rta lm a z o tt egy leírót. A m ikor
nagy lyukba gyűjtsük össze, am elyben m á r elh ely ezh ető egy vagy töb b szegm ens. a h a rd v e r egy virtuális cím et k ap o tt, a 6.11. áb rán láth ató m ó don a szegm ensszá­
A z ö sszepréselés nyilvánvaló h átrán y a, hogy v é g reh ajtásáh o z bizonyos időre van m o t a leíró szegm ens indexezésére használva k e reste m eg b en n e a m egcím zendő
szükség. E z é rt a m in d en új lyuk k eletk ezése u tá n i összepréselés re n d sze rin t túl szegm ens leíróját. E z a leíró a szegm ens lap táb lájára m u ta to tt, am i lehetővé -tet­
sok időt igényelne. te a szegm ensek szokásos m ódon tö rté n ő lapozását. A ren d szer teljesítm ényét
H a a m em ó ria összep réseléséh ez szükséges idő elfo g a d h a ta tla n u l nagy, ak k o r 16 rekeszcs, h ard v errel m egvalósított asszociatív mem ória jav íto tta, am elyben a
olyan algoritm usra van szükség, am ely el tu d ja d ö n te n i, hogy az a d o tt szegm enst leg u tó b b használt szegm ens/lap kom bin áció k at tá ro lták , így ezek et gyorsan visz-
m elyik lyukba helyezzük el. A lyukakkal való g azd álk o d ásh o z az összes lyuk cím ét
és m é re té t ta rta lm a z ó listára van szükségünk.
Egy n ép szerű algo ritm u s, a legjobb illesztés (best fit), azt a legkisebb lyukat vá­
lasztja, am elybe m eg b elefér a k é rt szegm ens. E m ö g ö tt az az ö tle t áll, hogy a lyu­
kak és a szegm ensek ö sszep áro sításán ál leh ető leg n e „tö rjü n k le ” d a ra b o k a t olyan
nagy lyukakból, am ely ek et fel le h e tn e használni a k ésőbbi nagy szegm ensekhez.
A m ásik kedv elt eljárás, az első illesztés (first fit), k örb em eg y a listán, és azt az
első lyukat választja, am ely elég nagy a szegm ens tá ro lá sá ra . E hhez nyilvánvalóan
kevesebb idő kell, m int az egész lista átn é z é sé h e z a legjobb illesztés m eg k eresésé­
nél. M eglepő, hogy az általán o s haték o n y ság szem p o n tjáb ó l is jo b b az első illesz­
tés algoritm usa a legjobb illesztésnél. A z u tó b b i h ajlam os arra, hogy re n g ete g ki­
csiny, teljesen h aszo n talan lyukat h ozzon létre (K n u th , 1997).
M indkét algoritm usnál csökken a Ijoikak átlagos nagy'sága. V alahányszor egy szeg­
m enst n ála nagyobb lyukba tö ltü n k be (m ajdnem m indig ez tö rtén ik , ritk a a pon to s
egyezés), a lyuk k ét részre bom lik. A z egyiket a szegm ens foglalja el, a m ásikból lesz
az új lyuk, am ely m indig kisebb a réginél. H a nincs a fen tiek et ellensúlyozó olyan fo­
lyam at, amely a kis lyukakból újra nagyokat hoz létre, végül m ind a legjobb illesztés,
2 részes MULTICS-cím
m ind az első illeszkedés apró, haszo n talan lyukakkal tö lti m eg a m em óriát.
Ilyen kom pen záció s eljárás le h e t a következő: am ik o r olyan szegm enst táv o ­
lítunk el a m em ó riáb ó l, am elynek m in d k ét közvetlen szom szédja lyuk, az egy­ 6.11. ábra. A kétrészes MULTICS-cím átalakítása memóriacímmé
462 6. A Z O P E R Á C IÓ S R EN D SZ ER G É P SZ IN T JE 6.1. V IR T U Á LIS M E M Ó R IA 463

sza le h e te tt keresni. B ár a M U L T IC S m ár rég a m ú lté, de a szellem e tovább él. Relatív


32 bit
A 386-os ó ta az összes In tel-p ro cesszo r v irtuális m e m ó riak ezelését lényegében cím
ró la m intázták. BASE 0-15 LIMIT 0-15 0
BASE 24-31 G D 0 LIMIT 16-19 P DPL TYPE BASE 16-23

6.1.8. A Pentium 4 virtuális memóriája L Szegmens típusa, védelme


0: LIMIT értéke bájtokban
1: LIMIT értéke lapokban — Védelmi szint (0-3)
A P entium 4-nek olyan kifinom ult v irtu álism em ó ria-ren d szere van, am ely egy­
a rá n t tám o g atja a k é résre lapozást, a tiszta szeg m en tálást és a lapozással k o m ­ 0:16 bites szegmens 0: A szegmens nincs a memóriában
1: 32 bites szegmens 1: A szegmens a memóriában van
b in ált szegm entálást. A P en tiu m 4 virtuális m e m ó riá já n a k leg fo n to sab b része
k é t tábla, az LDT (Local D escriptor Table, lokális leírótábla) és a G D I (G lobal
D escriptor Table, globális leírótábla). M in d en p ro g ram n a k saját LD T-je van, de a 6.13. ábra. A Pentium 4 !<ódszegmensének leírója (az adatszegmenseké ettől kicsit eltérő)
gép en fu tó összes p ro g ram eg yetlen m eg o szto tt G D T -t használ. M íg a G D T re n d ­
szer szegm ensek et ír le, id eértv e m ag át az o p eráció s re n d sze rt is, addig az L D T a ső M M U -reg iszterek b en tá ro lt cím e, am ivel közvetlenül a leíró ra m u ta tó p o in te rt
p ro g ra m ra nézve lokális szeg m en sek et ad m eg (kód, ad a t, v erem stb.). k ap u n k . H a a szelek to r p éld áu l a G D T táb la 9. bejegyzésére hivatkozik, ak k o r az
A P entium 4-en fu tó p ro g ram egy szegm ens elérésé h e z elő szö r a szegm ensre a G D T + 72. cím en találh ató .
vonatk o zó szelek to rt tölti be valam elyik szeg m en sreg iszteréb e az 5. fe jezetb en le ­ K övessük végig a (szelektor, eltolás) p á r fizikai cím m é alak ításán ak lépéseit.
írt m ód o n . A vég reh ajtás so rán C S -ben van a kódszegm ens szelek to ra, D S -b en az M ihelyt m eg tu d ja a h ardver, hogy m elyik szegm ensregisztert kell használni, belső
ad atszegm ensé stb. M in d en sze le k to r 16 b ites (lásd 6.12. áb ra). re g iszte reib en rö g tö n m egtalálja a szelek to rh o z ta rto z ó teljes leírót. H a n em lé te ­
ző szegm ensről van szó (a szelek to r 0), vagy a szegm ens pillanatnyilag nincs a m e ­
Bitek 13 1 2 m ó riá b an (P érté k e 0), csap d a keletkezik. A z első esetb en program ozási hiba van,
INDEX a m áso d ik at az o p eráció s ren d szern ek kell kezelnie.
E z u tá n azt vizsgálja, hogy az eltolás (offset) a szegm ens h a tá ra in belül van-e;
0 = GDT h a nem , ez ism ét csap d át okoz. L ogikailag 32 bit kellene a szegm ens m é re té n e k
Védelmi szint (0-3)
1 =LDT m eg ad á sáh o z, de a leíró b an e rre a célra csak 20 b it van, e z ért m ás eljárást hasz­
n áltak . H a a leíró G bitje 0, ak k o r a LIMIT m ező a szegm ens p o n to s m é re té t adja
6.12. ábra. A Pentium 4 szelektora m eg (legfeljebb 1 M B ). H a ez a b it 1, a k k o r a LIMIT m ező b ájto k h elyett lapokban
ta rta lm az z a a m é re te t. A P entium 4 la p m é re te m indig legalább 4 KB, így a 20 bit
A szelektor egyik bitje azt m o n d ja m eg, hogy a szegm ens lokális vagy globális egészen 2^^ m é re tű szegm ensekig elegendő.
(te h á t hogy az L D T -ben vagy a G D T -b en ta lá lh a tó m eg). T izen h áro m további bit H a szegm ens a m em ó riáb an van, és az eltolás is a m eg en g e d ett h a tá ro k közé
ad ja m eg az L D T-n vagy G D T -n belü li bejegyzés so rszám át, ezek a táb lák te h á t esik, ak k o r a P en tiu m 4 a leíró 32 bites BASE m ezőjét az eltoláshoz hozzáadva a
legfeljebb 8 K (2'^) bejegyzést tá ro lh atn ak . A v éd e le m re v o n atk o zó to vábbi 2 b ite t 6.14. áb rán lá th a tó lineáris cím et (linear address) alakítja ki. A BASE m ező a le-
később ism ertetjük.
A 0. leíró érvén y telen , h aszn á lata csap d át (tra p ) okoz. S zeg m en sreg iszterb e tö l­
tése nem okoz p ro b lém á t; ezzel jelez h etjü k , hogy a reg iszte r p illanatnyilag n em
haszn álh ató . H a m égis h ivatkozunk rá, csap d át okoz.
A m ik o r a szele k to r b e tö ltő d ik valam elyik szegm ensregiszterbe, az LD T-ből
vagy a G D T -ből a m egfelelő leíró is b ek erü l az M M U belső reg isztereib e, hogy
gyorsabban el leh essen érn i. M int a 6.13. áb rán láth a tó , a 8 bájto s leíró ta rta lm a z ­
za a szegm ens báziscím ét (base a d d ress), m é re té t és egyéb info rm áció k at.
A szelek to r fo rm á tu m á t ügyesen v álaszto tták , hogy könnyű legyen a leíró t m eg ­
találni. E lő szö r a szelek to r 2. bitje alap ján vesszük az L D T vagy a G D T táb lát.
E z u tá n a szelek to r az M M U egyik m u n k areg isz teréb e m ásolódik át, és a 3 leg­
alacsonyabb h ely érték ű bitje tö rlő d ik , am i g yakorlatilag a 13 b ites szelektorszám
nyolccal való szo rzását jelen ti. V égül h o zzáad ó d ik az L D T vagy a G D T tá b la bel- 6.14. ábra. (szelektor, eltolás) pár lineáris címm é alakítása
464 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.1. v i r t u á l i s M E M Ó R IA 465

író b an szétszórt h á ro m részből áll, hogy kom patibilis m ara d jo n a 80286-tal, ahol h a rd v e r (elérési, szennyezettségi, védelm i stb. b itek ). M in d en lap táb la 1024 b e ­
a BASE m ező csak 24 b ites volt. A B A S E m ező teszi leh ető v é, hogy a szegm ens a jegyzést tartalm az, am elyek 4 K B -os lajiokra m u tatn ak , így egy laptábla 4 M B m e ­
32 bites lineáris c ím tarto m án y tetszőleges cím én k ezd ő d h essen . m ó riá t tu d kezelni. A 4 M B -n ál rövidcbb szegm ensek lapkönyvtárában csak egy
H a a lapozás tilto tt (egy globális v ezérlő reg iszter egy bitjével), ak k o r a lineáris bejegyzés lesz, am ely a szegm ens egyetlen lap tá b lá já ra m utat. E m ia tt a rövid szeg­
cím et fizikai cím k én t értelm ezi, és rö g tö n továb bítja a m em ó ria felé írásh o z vagy m en sek tö b b letk ö ltség e csak 2 lap, szem ben az egyszintű lap táb la esetén szüksé­
olvasáshoz. így lapozás nélküli tiszta szegm entálással állu n k szem ben, a szeg m en ­ ges ezernyi lappal.
sek báziscím e leíró ju k b an találh ató . A szegm ensek á tfe d h etik egym ást, e n n ek v a ­ A z ism ételt m em óriahivatkozások g yorsítására a P en tiu m 4 M M U egysége sp e ­
lószínűleg csupán az a m ag y arázata, hogy a diszjunktság ellen ő rzése túl b onyolult ciális h a rd v errel tám o g atja a legutóbb használt DIR-PAGE kom binációk gyors visz-
len n e és sokáig ta rta n a . sz a k ercsését és a m egfelelő la p k e re t fizikai cím ére való leképezést. C sak ak k o r
H a viszont en g ed ély ezett a lapozás, a k k o r a lineáris cím et virtuális cím k én t é r­ h ajtó d n a k végre a 6.15. áb rá n lá th a tó lépések, h a a k eresett k o m binációt m o sta n á ­
telm ezi, és lap táb lák h asználatával képezi le a fizikai cím re, ahog}' azt a k orábbi ban m ég n em használtuk.
p éld ák b an láttuk. A z egyetlen bonyodalom , hogy a 32 bites virtuális cím ek és a K icsit u tán ag o n d o lv a gyorsan rá jö h etü n k , hogy lapozás h aszn álatak o r nincs é r ­
4 K B -os lap m ére t m iatt egy szegm ens egym illió lap o t is tarta lm a z h a t, így kétszin tű telm e a leíró k BASE m ező jét nu llátó l külö n b ö ző érté k re állítani. A BASE érté k h a ­
leképezést használunk, hogy csö k k en tsü k a kis szegm ensek la p táb láján ak m éretét. tása csu p án annyi, hogy a lap táb la k ezd ete helyett egy kis eltolással, a táb la k ö ze­
M in d en fu tó p ro g ra m h o z tarto zik egy la p k ö n y v tá r (page d irecto ry ), am ely 1024 p é b ő l v ett bejegyzéssel dolgozunk. A BASE m ező h a szn álatán ak valódi o k a a tisz­
d a ra b 32 bites bejegyzést tartalm az, e rre a lapkön^'vtárra egy globális reg iszte r ta (n e m lap ozásos) szegm entálás tám o g atása a régi 80286-tal való kom patibilitás
m u tat. A könyvtár m in d en bejegyzése szintén 1024 d a ra b 32 b ites bejegyzést ta r ­ m iatt, mivel az nem ism erte a lapozást.
talm azó lap táb lák ra m u tat. A lap táb lák bejegyzései la p k e re te k re m u tatn a k . E zt a É rd e m e s m egem líteni, hogy k ö nnyen k ielég íth ető az olyan p ro g ram o k igénye
sém át láth atju k a 6.15. áb rán . is, am elyek n em használnak szegm entálást, h an em m egelégszenek egyetlen lap o k ­
A 6.15. (a) áb rá n lá th a tó cím h á ro m m ező re van osztva; DIR, PAGE és OFF. E lő ­ ra o szto tt 32 b ites cím tartom ánnyal. M in d en szegm ensregiszterbe ugyanazt a sze­
ször a DIR m ezőt h aszn álju k fel a la p tá b la cím én ek k ik e resé sé re a lapkönyvtárból. le k to rt kell b e tö lten i, s e n n ek leíró jáb an a BASE é rté k é t 0-ra, a LIMIT-et m axim álisra
E z u tá n a PAGE m ező érté k e alap ján keressük ki a la p tá b láb ó l a la p k e re t fizikai .cí­ kell beállítani. A z eltolás m aga lesz a lineáris cím, egyetlen cím tartom ánnyal - ez
m ét. V égül az OFF (a lap o n belüli e lto lás) m ező é rté k é t a la p k e ret cím éhez h o zzá­ lényegében a hagyom ányos lap o zásn ak felel m eg.
adva m egkapjuk a m eg cím ezett b á jt vagy szó fizikai cím ét. E zzel b efejeztü k a P en tiu m 4 virtuális m em ó riáján ak tárgyalását. É rd em e s n é ­
A lap táb la bejegyzései 32 bitesek, eb b ő l 20 b it tarta lm a zz a a la p k e re t szám át. h ány szót ejten i védelm i ren d szerérő l, hiszen ez a té m a szorosan kajicsolódik a
A fe n n m a ra d ó részt az o p eráció s re n d sz er szám ára h asznos é rté k e k k e l tö lti fel a v irtuális m em ó riáh o z. A P en tiu m 4 négy védelm i szin tet tám o g at, a 0. a leg erő ­
sebb, a 3. a leggyengébb. E zek et a szinteket m u ta tja a 6.16. ábra. A p ro g ram futá-
Lineáris cím
Bitek 10 10 12

DIR PAGE OFF

(a)

Lapkönyvtár Laptábla Lapkeret

- - ^

t
t
DIR
1
PAGE
-A kiválasztott szó

1 OFF
1 +
y (b)
y
6.15. ábra. Lineáris d m leképezése fizil(ai címre 6.16. ábra. A Pentium 4 védelmi rendszere
466 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.1. V IR T U Á LIS M EM Ó R IA 467

sának m inden p illa n a tá b a n a d o tt szin ten van, ezt a PSW (Program Status Word, 44 b it é rh e tő el, em iatt a p ro g ram o k nem le h etn ek 1,8 x 10'^ bájtnál hosszabbak.
program állapotszó) nevű reg iszter 2 bites m ezője tartalm azza. A re n d szer összes A m eg en g e d ett virtuális m em ó ria k é t d arab , egyenként 2''^ bájt hosszúságú zó n ára
szegm enséhez is hozzá van ren d elv e egy szintszám . van felosztva. A z egyik a virtuális cím tarto m án y legalján, a m ásik a legtetején h e­
A m íg a p ro g ra m csak a saját szintjén lévő szeg m en seket h asználja, m in d en si­ lyezkedik el. A k öztük lévő résbe eső virtuális cím ek nem érh e tő k el, h asználatu k
m án megy. M eg en g e d e tt a m ag asab b szin tek en ta lá lh a tó ad a to k h o z való h o zzá­ lap h ib át okoz.
férés. A z alacsonyabb szin tek en ta lá lh a tó a d a to k elé ré se illegális, az ilyen k ísér­ A z U ltraS P A R C Ill-b a m axim um 2'” bájt fizikai m em ó ria ép íth e tő be, am i nagy­
letek csap d át okoznak. M ás szin tek en (a k á r alacso n y ab b ak o n , a k á r m ag asab b a­ já b ó l 2200 G B -n ak felel m eg. E z elég is a legtöbb h étk ö zn a p i alkalm azáshoz.
k o n ) levő eljáráso k hívása m eg en g e d e tt, de csak alap o san e lle n ő rz ö tt m ó d o n . Egy A négy tá m o g a to tt lap m éret: 8 KB, 64 KB, 512 KB és 4 M B. A négyféle la p m é re t­
szintközi hívásnál a CALL u tasításn ak a cím h ely ett szele k to rt kell tartalm azn ia. Ez h e z ta rto z ó lek ép e zések et m u tatja a 6.17. ábra.
a szelek to r egy híváskapu (call gate) nevű leíró t jelö l ki, am ely a h ívandó eljárás A rendkívül nagy virtuális cím tarto m án y m iatt a P en tiu m 4-hez haso n ló direkt
cím et ad ja m eg. E m ia tt csak a h ivatalos b elép ési p o n to k h aszn álh ató k ; n em le h et la p tá b la n em volna praktikus. A z U ltraSPA R C M M U -ja ehelyett egészen m ás
egy m ásik szinten lévő tetszőleges kódszegm ens k ö zep éb e ugrani. m eg k ö ze lítést használ. T artalm az egy T LB (TVanslation Lookaside Buffer, la p ­
A 6.16. áb ra e n n e k a m ech an izm u sn ak egyik jav aso lt felh aszn álását m u tatja. kezelő segédpuffer) nevű h a rd v ertáb lát a virtuális lapok fizikai lap k erctek re való
A 0. szinten az o p e ráció s re n d sz e r m agja (k ern e l) találh ató . Ez kezeli a B/K-t, a le k ép ezésére. A 8 K B -os la p m é re t e setén 2’', vagyis tö b b m int 2 m illiárd virtuális
m em ó riát és m ás k ritik u s d olgokat. A z 1. szinten van a rendszerhívás-kezelő. A la p u n k leh et. M indegyik nyilván n em k ép ezh ető le.
felhasználói p ro g ra m o k ren dszerh ív áso k v é g reh ajtása céljából m eg h ív h atn ak it­ A T L B e h ely e tt csak a legutóbb használt virtuális lapok sorszám át tárolja.
ten i eljáráso k at, de az eljáráso k n ak csak egy m e g h a tá ro z o tt és v é d e tt részh alm a­ A kód- és az ad a tla p o k a t k ü lön kezeli, m indkét k ateg ó riáb ó l a legutóbbi 64 la p ­
za h asználható. A 2. szint könyvtári e ljáráso k at tartalm az, m ely ek et esetleg több szám o t őrzi m eg. M in d en T L B -bejegyzés egy virtuális lapsorszám ból és a neki
p ro g ram m egosztva használ. A felhasználói p ro g ra m o k csak hívhatják, de nem m eg felelő fizikai la p k eret sorszám ából áll. A m ik o r az M M U egy proeesszusszá-
m ó d o síth atják e zek et az eljáráso k at. V égül a felhasználói p ro g ra m o k a legkisebb m o t vagy m ásképp környezetet (context), és egy ebbe a k örnyezetbe tarto zó v irtu ­
véd ettség ű 3. szinten fu tn ak . A P en tiu m 4 m e m ó riak ezeléséh ez h aso n ló an ez a vé­ ális cím ct kap, speciális áram k ö rö k segítségével ö sszehasonlítja az a d o tt k ö rn ye­
delm i ren d szer is nagyon haso n lít a M U L T IC S -nál alkalm azo ttra. z eth e z ta rto z ó összes T L B -bejeg)zéssel. H a valahol egyezést talál, a m egfelelő
A csapdák és a m egszakítások a hívásk ap uk h o z h aso n ló m ech anizm u so k at
használnak. A b szo lú t cím ek helyett ezek is le író k ra hivatkoznak, és ezek a leíró k TLB (MMU hardver) TSB (MMU + szoftver)
m u ta tn a k a v ég reh a jtan d ó eljáráso k ra. A 6.13. á b rá n lá th a tó TYPE m ezővel k ü lö n ­
b ö z te th e tő k m eg a kód- és ad atszeg m en sek , v alam in t a kü lö n féle kapuk. Környezet Környezet
Virtuális- Jelzők
Virtuális Jelzők lap­
lap Fizikai címke Fizikai
6.1.9. Az UltraSPARC III virtuális memóriája Érvényes lapkeret Érvényes lapkeret Fordítótábla
(Operációs rendszer)
' 1 ' 1 1
A z U ltraSPA R C III 64 bites virtuális cím eken alap u ló lapszervezésű virtuális m e ­ 11 =3
m ó riát tám o g ató 64 bites gép. Tervezési és k öltség szem p o n to k m iatt azonban
a p ro g ram o k n em h a szn álh atják a teljes 64 bites v irtuális cím tarto m án y t. C sak
(a)

A formátumot
Bitek 51 13 48 16 45 IQ 42 22
teljes egészében
8 KB-os 64 KB-os 512 KB-os 4 MB-os az operációs
rtuális
vlrtuálislap- Eltolás virtuálislap­ Eltolás virtuálislap­ Eltolás virtuálislap­ Eltolás A 0. bejegyzésen osztozik rendszer
cím
szám szám szám szám az összes 0...0000 végződő határozza meg
sorszámú virtuális lap Az 1. bejegyzésen osztozik

I I az összes 0...0001 -re végződő


sorszámú virtuális lap
Fizikai 8 KB-os 64 KB-os 512 KB-os 4 MB-os (b)
Eltolás Eltolás Eltolás Eltolás
cím lapkeret lapkerel lapkeret lapkeret
Bitek 28 13 25 16 22 19 19 22
(c)

ábra. A virtuális címek fizikai címekre való leképezése az UltraSPARC-on 6.18. ábra. A z UltraSPARC virtuális címek fordítására használt adatstruktúrái, (a) TLB. (b) TSB.
(c) Fordítótábla
468 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.2. V IR T U Á LIS B/K U T ASÍTÁ SO K 469

T L B -bejegyzésb en szerep lő lap k e re tso rsz á m o t a virtuális cím ben szerep lő elto lá s­ E ze n k ü lö nbségek fő o k a abb an rejlik, hogy a P en tiu m 4 csupán 32 bites szeg­
sal (offset) összekom binálva k épezi a 41 b ites fizikai cím et és n éh án y egyéb je lz ő ­ m en se k e t használ, az ilyen kicsi szegm ensek (m elyeknek csak 1 m illió lapja van)
b ite t (v édelem stb.). A T L B -t m u ta tja be a 6.18. (a) ábra. hagyom ányos lap táb lák k al kezelhetők. E lm életileg a P en tiu m 4-nek is gondjai
H a nem talál egyezést, TLB-hiány (TLB m iss) keletkezik, am elyet csapdáz az len n én ek , h a egy p ro g ram szegm ensek ezreit használná, de mivel sem a W indow s,
o perációs rendszer. A hiány kezelése az o p eráció s re n d sz e re n m úlik. Figyeljük sem a U N IX n em tám o g atja p ro cesszu so n k én t egynél több szegm ens h asználatát,
m eg, hogy a T L B -h ián y teljesen m ás, m in t a laphiány. T L B -h ián y m ég ak k o r is e lő ­ ez a p ro b lé m a n em jö h e t elő. E zzel szem ben az U hraS P A R C III igazi 64 bites gép,
fo rd u lh at, h a a hiv atk o zo tt lap a m e m ó riáb an van. A k é rt virtuális la p ra v o natkozó a k á r 2 m illiárd lap is lehetséges, te h á t a hagyom ányos lap táb lák n em alkalm az­
új T L B -bejegyzés b eírá sak o r az o p eráció s ren d szer elm életileg b árhogyan e ljá rh a t­ h atók . A jö v ő b en m in d en g ép n ek 64 bites virtuális cím tarto m án y a lesz, e z ért az
na. A h ard v er azo n b an n ém i segítséget is felajánl e n n e k a kritikus tevékenységnek U ltraS P A R C -nál alk alm azo tth o z hasonló sém ák válnak irányadóvá.
m inél gyorsabb elvégzéséhez - m á r ha a szoftver h a jlan d ó vele együttm űködni.
E lső so rb an azt várjuk el, hogy az o p eráció s re n d sz e r készítsen a gyakran hasz­
n ált T L B -bejegy zések rő l egy szoftveres g y o rsító tárat a TSB (llranslation Storage 6.1.10. Virtuális memória és gyorsítótár
Buffer) nevű táb lázatb an . E z a táb lá za t úgy é p ü l fel, m in t egy d ire k t leképezésű
gyorsítótár. A 16 bájtos T S B -bejegyzések egy-egy virtuális la p ra hivatk o zn ak és A (k é ré sre lapozásos) virtuális m em ó ria és a g y o rsító tár első p illan tásra elég tá ­
n éhány egyéb jelz ő b it m e lle tt ta rta lm a z n a k egy érvényességi b ite t, a k ö rn y ezetet, voli fo g alm aknak tű n n ek , h o lo tt k o ncepcionálisan igenis hasonlók. V irtuális m e ­
a virtuális cím et és a fizikai la p k e re t sorszám át. H a a g y o rsító tárb a m o n d ju k 8192 m ó ria h a sz n álatak o r az egész p ro g ra m o t lem ezen tartju k , és fix m é re tű lap o k ra
bejegyzés fér el, az összes olyan v irtuális lap, am ely cím én ek legalacsonyabb h e ­ d arab o lju k fel. A lap o k n ak csak egy részhalm aza van a m em ó riáb an . H a a p ro g ­
lyi é rté k ű 13 bitje OOÜOOOOOOOOOO, a TSB 0. h ely ére pályázik. A 0000000000001-re ra m töb b n y ire a m em ó riáb an ta lá lh a tó lap o k at használja, kevés laphiány lesz, és a
végződő cím ű virtuális lap o k ugyanígy a T SB 1. h ely éé rt versen y ezn ek a 6.18. (b) p ro g ra m gyorsan fut. G y o rsító tár esetén az egész p ro g ra m o t a m em ó riáb an ta r t­
áb rá n lá th a tó m ó d o n . A T SB m é re té t a szoftver h a tá ro zz a m eg; az M M U -val való ju k , és fix m é re tű g y o rsító tárb lo k k o k ra osztjuk. H a a p ro g ram többnyire a gyor­
k om m unikációja olyan speciális re g iszte rek en k eresztü l zajlik, am ely ek h ez csak az sító tá rb a n ta lá lh a tó b lo k k o k at használja, kevés gyorsítótárhiány (cache m iss) lép
o p eráció s re n d sz e r fé rh e t hozzá. fel, e z é rt a p ro g ram fu tása gyors lesz. Fogalm ilag k ét h aso n ló jelen ség rő l van szó,
T L B -hiány e seté n az o p eráció s re n d sz e r m egvizsgálja, hogy a m eg felelő T S B - am elyek a h ierarch ia kü lö n b ö ző szintjein h atnak.
bejegyzés a szükséges la p o t tartalm azza-e. A z M M U k ellem es szo lg áltatása a b e ­ T erm észetesen v an n ak elté ré se k is a virtuális m em ó ria és a g yorsítótár között.
jegyzés cím én ek au to m atik u s kiszám ítása és az o p eráció s re n d sz e r által e lé rh e tő E gyrészt a g yorsító tárh ián y o k at a h ardver, m íg a laph ián y o k at az o p eráció s re n d ­
belső M M U reg iszte rb e helyezése. T S B -ta lála t e se té n valam elyik T L B -bejegyzés szer kezeli. T ovábbá a g y o rsító tár blokkjainak tipikus m é re te jóval kisebb, m in t a
törlődik, és helyére b em áso ló d ik a k é rt T SB -bejegyzés. A k itö rle n d ő T L B -b ejeg y ­ la p m é re t (64 bájt, illetve 8 KB). E zenkívül a virtuális lapok és a lap k eretek közötti
zés kiválasztását a h a rd v e r 1 bites L R U alg o ritm u sa tám o g atja. lek ép e zés is m ás: a lap táb lák at a virtuális cím ek legnagyobb h ely érték ű bitjei sze­
H a a T S B -keresés sik ertelen volt, a virtuális lap cím e nincs a „g y o rsító tárb an ”, az rin t szervezik, a g y o rsító tárak m eg a m em ó riacím ek legkisebb helyértékei szerint
o perációs ren d sz e r egy m ásik tá b lá z a tb an keresi a lap ra v o n atko zó inform ációt. A indexeznek. M in d azo n által fontos, hogy m egértsük, ezek csak im plem entációs el­
végső m egoldásk én t használt tá b la neve fordítótábla (transiation table). Mivel e h ­ térése k , az a lap ö tlet nagyon hasonló.
hez m ár sem m ilyen h ard v eres segítség sincs, a tá b la fo rm átu m á t az o p eráció s re n d ­
szer szabadon d ö n th e ti el. V álaszth at p é ld áu l tö rd elése s kódolást: a v irtu álislap ­
szám ot valam ely p prím m el elosztva a m a ra d é k o t h asználja egy olyan p o in te rtá b la
indexezésére, am elynek elem ei az a z o n o sp -h e z ta rto z ó virtuálislap-szám okból álló 6.2. Virtuális B/K utasítások
listákra m u tatn ak . Figyeljük m eg, hogy ezek a bejegyzések n em m aguk a lapok, h a ­
nem a T S B -nek m egfelelő elem ek. A fo rd ító tá b lá b a n v égzett k eresés ered m é n y e ­ A z ISA -szintű utasításk észlet teljesen m ás, m int a m ik ro a rc h ite k tú ra utasításai.
k én t elk ép z elh ető az is, hogy a m em ó riáb an találju k a k érd éses lap o t, e k k o r frissí­ A k ét szinten egészen m ás u tasításo k h a jth a tó k végre, az u tasításo k fo rm átu m a is
ten i kell a szoftveres g y o rsító tár T S B -bejegyzését. H a az d erü l ki, hogy a lap nincs e ltérő . In k áb b csak v életlen n ek te k in th e tő a k é t szint n éhány m egegyező u ta sítá ­
a m em ó riáb an , a laphiány e setén szokásos tevékenységek k e zd ő d n ek el. sán ak létezése.
É rdekes összehasonlítani a Pentium 4 és az U ltraSPA R C III lapozási sém áját. A E zzel szem ben az O SM -szint u tasításk észlete tartalm azza a legtöbb ISA -uta-
Pentium 4 tám ogatja a tiszta szegm entálást, a tiszta lapozást és a lapozott szegm ense­ sítást, csak kisszám ú, ám de fo n to s új u tasítást vezet be, és egy p á r p o t e n c i á l i s a n
ket. A z U ltraSPA R C Ill-o n csak lapozás van. A P entium 4 is használ hardver segítsé­ veszélyeset hagy el. A bevitel/kivitel az egyik olyan terü let, ahol a k ét szint lénye­
gét a laptábla bejárásához, T L B -hiány esetén ú jra kell tölten i T L B -t. A z U ltraSPA RC gesen elté r. A külö nbség oka egyszerű: az a felhasználó, aki valódi ISA -szintű u ta ­
T L B -hiány előfordulásakor csupán átadja a vezérlést az operációs rendszernek. sításo k at tu d n a v ég reh ajtan i, a ren d sz e rb e n b árh o l tá ro lt bizalm as a d a to k a t el tu d ­
470 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P S Z IN T JE 6.2. V IR T U Á LIS B/K UTA SÍTÁ SO K 471

n á olvasni, írni tu d n a m áso k term in áljára, s á ltaláb an sok k e llem etlen ség et tu d n a A read hívás a k é rt a d a to k a t a p u fferb e helyezi. Á ltaláb an a ténylegesen b eolvasott
okozni m agának , mivel v eszélyeztetné az egész re n d sz e r bizto n ság át. Továbbá b á jto k szám át ad ja vissza, am ely leh et kevesebb is a k érésb en szereplő é rték n él
nincs olyan norm ális, ép elm éjű p ro g ram o zó , aki m aga k ívánná az ISA -szintű B/K (1000 b á jt hosszúságú fájlból nem leh et 2000 b ájto t olvasni). M in d en m egnyitott
m ű v eletek et kezelni, hiszen az rendkívül fárasztó és bon y o lu lt len n e. B e k ellene fájlhoz tarto zik egy p o in te r, am ely a fájl legközelebb kiolvasható b á jtjá ra m utat.
állítani a h ardvereszk ö zö k h ö z ta rto z ó reg iszte rek m eg felelő b itjeit és m ezőit, m eg ­ É rté k e a read v ég reh ajtása u tá n a beo lv aso tt b ájto k szám ának m egfelelően v álto ­
várni a m űv eletek b efejező d ését, m ajd ellen ő rizn i, hogy m i is tö rté n t valójában. zik, így az egym ás u tán i read hívások egym ás u tán i a d atb lo k k o k at olvasnak a fájl­
A z u tó b b ira v o n atk o zó p é ld a k é n t a m erev lem ezek h ez ta rto z ó eszközregiszterek ból. E z t a p o in te rt legtö b b szö r tetszőleges a d o tt é rté k re be leh et állítani, vagyis a
sok m ás m ellett tip ik u san a követk ező h ib ák at é rzék elő b ite k e t tartalm azzák : p ro g ram o k v életlen szerű en is e lé rh etik a fájl bárm ely részét. A z olvasás b e fejezé­
se u tá n a p ro g ram lezá rh atja a fájlt, ezzel tu d atv a az op eráció s ren d szerrel, hogy a
1. A vezérlő h ibásan p o zício n álta az olvasófejet. to v áb b iak b an m á r nem fogja használni, te h á t a re n d szer tá b lázataib an felszab ad ít­
2. P u fferk én t nem létező m em ó riát a d tu n k m eg. h a tó a fájlról szóló inform ációk tá ro lá sá ra lefoglalt hely.
3. A lem ez B /K az előző m űvelet befejezése e lő tt k e z d ő d ö tt el. A nagygépes o p eráció s re n d szerek n ek m ár b o n y olultabb elképzelése van a fáj­
4. O lvasásidőzítési hiba. lokról. Itt a fájl jól definiált stru k tú ráv al ren d elk ező logikai rekordok (logical re-
5. N em létező lem ezt cím eztü n k m eg. cords) so ro zata. Ilyen logikai re k o rd le h e t p éld áu l az az ö telem ű ad a tstru k tú ra ,
6. N em létező cilin d ert cím eztü n k m eg. am ely k é t k arak terso ro zatb ó l (N év, T ém av ezető ), k é t egészből (In tézet, S zoba­
7. N em létező sze k to rt cím eztü n k m eg. szám ), v alam int egy logikai é rték b ő l (N ő/F érfi) áll. B izonyos o p erációs ren d szerek
8. O lvasáskor elle n ő rz ő összeg h ib a lé p e tt fel. m e g k ü lö n b ö ztetik a csupa azonos szerk ezetű re k o rd b ó l álló fájlokat azoktól, a m e ­
9. A z írás u tá n i ellen őrzés h ib át jelzett. lyek k ü lö n b ö ző re k o rd típ u so k k ev erék ét tartalm azzák.
A legegyszerűbb virtuális b e m en e ti u tasítás a m eg ad o tt fájl következő rek o rd ját
A fen ti hibák v alam elyikének e lő fo rd u lá sa az eszközregiszter m eg felelő b itjét olvassa be és helyezi el a m em ó ria m eg h a tá ro z o tt helyére. E z t m u ta tja a 6.19. áb ­
állítja be. K evés olyan felh aszn áló van, aki ez ek n ek a h ib ák n ak és m ég egy csom ó ra. A m űv elet v ég reh ajtásáh o z a virtuális u tasításn ak m eg kell m on d an i, hogy m e ­
egyéb állap o tin fo rm áció n ak a kezelésével ó h a jta n a bajlódni. lyik fájlból olvasson, és a b eo lv aso tt re k o rd o t hová tegye a m em ó riáb an . G yakran
a rra is leh ető ség van, hogy a fájlban elfoglalt helye vagy kulcsa alap ján adjuk m eg
az o lvasandó re k o rd o t.
6.2.1. Fájlok
Logikai
A virtuális B /K m eg szerv ezésén ek egyik m ó d ja a fájl (file) nevű ab sztrak ció hasz­ rekord Egy logikai
n álata. L egegyszerűbb fo rm á já b an egy B /K eszközre írt b á jtso ro z a to t je le n t. H a sorszáma rekord
lem ezh ez h aso n ló táro ló esz k ö zrő l van szó, a fájl k éső b b vissza is o lvasható, m ás A következő A következő
esetek b en , p éld áu l egy n y o m tató n ál ez te rm é sz e te se n n em leh etség es. A lem e­ , beolvasandó , beolvasandó
zen sok fájl leh et, ezek m indegyike valam ely m e g h a tá ro z o tt fajtájú a d a to t tárol, logikai rekord logikai rekord

p éld áu l k é p et, szám o ló táb lát vagy egy könyv valam elyik fe je z eté n e k szövegét. 19 20
K ülönböző fájlok hossza és egyéb tu lajd o n ság ai e lté rő k leh etn ek . A z ab sztrak t
fájlfogalom teszi leh ető v é a virtuális B /K egyszerű m egszervezését.
Központi Központi
M int k o rá b b a n leírtu k , az o p eráció s re n d sz e r szem p o n tjáb ó l a fájl á lta lá b an memória
memória
csak egy b ájtso ro zat. További stru k tú rá ja a felhasználói p ro g ra m o k tó l függ. A B/K
a fájlok m egnyitását, olvasását, írásá t és le z á rá sá t végző ren d szerh ív áso k k al tö r té ­ A 18. logikai A 19. logikai Puffer
Puffer
rekord rekord
nik. A fájlokat olvasás e lő tt m eg kell nyitni. A fájl m eg n y itásán ak fo ly am ata teszi
lehetővé, hogy az o p eráció s re n d sz e r m eg k eresse a fájlt a lem ezen , és a m e m ó riá ­
b a tö ltse az eléré séh e z szükséges inform ációt.
M egnyitás u tá n m á r olv ash ató k a fájlok. A read ren d szerhív ásh o z m inim álisan a
következő p a ra m é te re k szükségesek: (a) (b)

1. A n n a k jelzése, hogy m elyik m eg n y ito tt fájlból a k a ru n k olvasni. 6.19. ábra. Logikai rekordokból álló fájl olvasása, (a) A 19. rekord beolvasása előtt,
2. A beo lv aso tt a d a to k tá ro lá sá ra szolgáló m e m ó ria p u ffe rre m u ta tó p o in te r. (b) A 19. rekord beolvasása után
3. A z olvasandó b ájto k szám a.
472 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.2. v i r t u á l i s B/K UTA SÍTÁ SO K 473

A legegyszerűbb v irtuális k im en eti u tasítás egy re k o rd o t ír ki a m em ó riáb ó l fájl­ le a fájlnak, a kívánt bájt vagy re k o rd hely zetén ek kiszám ításához eleg en d ő a fájl
ba. A z egym ás u tán i szekvenciális write u ta sításo k a fájlban egym ás u tá n so rak o zó k e zd e tén e k pozícióját ism ernie.
logikai re k o rd o k a t ered m én y ezn ek . H a n em so rb an foglalt le helyet, tetszőleges bájt vagy logikai re k o rd pozíció­
já t n em le h et p u sztán a fájl kezdőpozíciója alap ján m eg h atáro zn i. E h h ez egy fájl­
indexnek (file index) n ev ezett tá b lá z a tra van szükség, am ely a helyfoglalási egy­
6.2.2. A virtuális B/K utasítások megvalósítása ség ek et és tényleges lem ezcím eiket tartalm azza. A fájlindex leh et lem ezblokkok
cím eiből álló lista (a U N IX ezt használja) vagy logikai re k o rd o k listája Icmczcí-
A virtuális B /K u tasításo k im p lem en táció ján ak m eg é rtéséh e z elő szó r a fájlok fel­ m ük k el és a hozzá ta rto z ó eltolással. N é h a m in d en logikai re k o rd n ak külön kul­
ép íté sé t és tá ro lá sá t kell m egvizsgálnunk. M in d en fájlren d szern él a la p k é rd é s a csa (key) van, így sorszám a helyett kulcsával is h iv atk o zh atn ak rá a p rogram ok.
helyfoglalás m egoldása. A helyfoglalás alapegysége le h e t a lem ez egy szek to ra, de E b b e n az e setb en az u tóbbi m ó d szert kell alkalm aznunk: a bejegyzésben nem csak
sokszor inkább egym ás u tá n i szek to ro k b ó l álló b lo k k o k at vesznek. a re k o rd lem ezen elfoglalt helye, h an em a kulcsa is szerepel. A nagygépeken ez a
A fájlren d szer m eg v aló sításán ak m ásik alap v e tő sajátossága, hogy a fájlok egy­ szervezési m ód általános.
m ás u tán i helyfoglalási egységekben táro ló d n ak -e . A 6.20. á b rá n olyan egyszerű A fájl helyfoglalási egységeit úgy is m eg k eresh etjü k , hogy a fájlt láncolt lista­
lem ezegységet látu n k, am elynek egyetlen felü lete 5 sávban ta lá lh a tó 12-12 szek­ k é n t ép ítjü k fel. M in d en helyfoglalási egység tartalm azza a rák ö v etk ező cím ét. A
to rt tartalm az. A 6.20. (a) á b ra helyfoglalási sém áján ál az alapegység a szektor, és sém a h aték o n y m egvalósításának egyik lehetséges útja: az összes követő cím ből
a fájl egym ást k ö v ető sz ek to ro k b an táro ló d ik . C D -R O M -o k e seté b e n általán o s álló tá b lá t m indig a m em ó riáb an tartju k . 64 KB helyfoglalási egységet ta rta lm a ­
ez a m egoldás. A 6.20. (b) áb ra olyan sém át m u ta t, ah o l az alapegység szin tén a zó lem ez esetén p éld áu l az o p eráció s ren d sz e r olyan 64 K B elem ű tá b lá t ta rta n a a
szektor, de egy-egy fájln ak n em felté tle n ü l egym ás u tá n i szek to ro k a t foglalunk le. m e m ó riáb an , ahol m in d en elem a rák ö v etk ező indexét tartalm azn á. H a m o ndjuk
L em ezek en általá b a n ez a sém a használatos. a 4., 52. és 19. helyfoglalási egységekben helyezkedne el a fájl, ak k o r a táb la 4. e le ­
m e 52, az 52. elem e 19 és a 19. elem e valam ely speciális é rté k (például 0 vagy -1 )
11. szektor 0. szektor 11. szektor 0. szektor len n e a fájl végének jelzésére. A z M S -D O S, a W indow s 95 és a W indow s 98 fájl­
ren d sz erei így m ű ködnek. E zt a fájlren d szert a W indow s X P is tám ogatja, de van
a U N IX -h o z h aso n ló an m ű k ö d ő saját fájlren d szere is.
Id áig p á rh u zam o san vizsgáltuk az egym ás u tá n lefoglalt egységekből álló fájlo­
k at a n em egym ás u tán i egységekben táro ltak k al, de m ég nem m o n d tu k m eg, m i­
é rt haszn álják m in d k ét fajtáju k at. A z első típus előnye, hogy könnyebb a blokkok
adm inisztrációja, viszont h a a m axim ális fájlm éret elő re nem ism ert, csak ritkán
alk alm azh ató . H a a fájl a j. szek to ro n kezd ő d ik és az ezu tá n i szektorokon te r­
jesz k e d h e t, b eleü tk ö zh et a k. szek to ro n k ezd ő d ő m ásik fájlba, s így m ár nem m a ­
ra d helye a további növekedéshez. A m en n y ib en nem egym ást követő szektorokat
fog lalu n k le, ez a helyzet nem okoz g o n d o t, hiszen az első fájl további blokkjait
a lem ezen b árh o l elhelyezhetjük. H a a lem ezen sok növekvő m é re tű fájl van, és
A lemez
egyikük végső nagysága sem ism ert előzetesen, ak k o r szinte le h etetlen soros hely­
A lemez
forgásiránya forgásiránya foglalással táro ln i őket. A m eglévő fájlok átm o zg atása n é h a m eg oldható, de igen
(a) (b) költséges.
H a viszont elő re tudjuk a fájlm éretek m axim um át, m int p éld áu l C D írásakor,
6.20. ábra. Lemezes helyfoglalási stratégiák, (a) Egymást követő szektorokban elhelyezkedő fájl. a felíró p ro g ram a fájlm érettel m egegyező hosszúságú szek to rso ro zato t tud lefog­
(b) Nem egymás utáni szektorokban található fájl lalni. H a te h á t 1200, 700, 2000 és 900 szektoros fájlokat a k aru n k a C D -re írni, ak ­
k o r (a tartalo m jeg y zék et m ellőzve) egyszerűen a 0., 1200., 1900. és a 3900. szek to ­
A z operációs re n d sz e r egészen m ásk én t tek in ti a fájlokat, m in t a felhasználói ro n k ezd h eti ezeket. A k ezd ő szek to r ism eretéb en bárm elyik fájl bárm elyik részét
program ozó . A p ro g ram o zó szem p o n tjáb ó l a fájl b ájto k vagy logikai re k o rd o k lin eá­ könnyű m egtalálni.
ris sorozata. A z op eráció s re n d sz e r lem ezen elhelyezkedő helyfoglalási egységek A z o p eráció s ren d szer csak úgy tu d helyet lefoglalni az új fájlok részére, ha nyo­
ren d ezett, b á r n em feltétlen ü l egym ást k övető kollekciójának tek in t m in d en fájlt. m o n követi, hogy m elyek a szabad blokkok, és m elyeket haszn ált m ár fel fájlok tá ­
H a az o p eráció s ren d sze rtő l egy fájl n. b ájtjá t vagy re k o rd já t k érjü k , valam ilyen ro lására. A C D -R O M e setén csupán egyetlenegyszer, elő ze tesen kell elvégeznie
m ó d o n m eg kell talá ln ia a lem ezen. A m en n y ib en egym ás u tá n i szek to ro k a t foglalt e z ek et a kalkulációkat. N em így a lem ezes egységeknél, ahol fájlok keletkeznek
474 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.2. V IR T U Á LIS B/K UTA SÍTÁ SO K 475

Sáv Szektor A lyukban talál­ ne lépje tú l a 64 K B -os h a tá rt. A W indow s 95 első kiad ása ugyanezzel a p ro b lé ­
ható szektorok Szektor
m ával k ü szk ödött, csak a következő k iadástól alkalm aztak 32 bites szám okat. A
száma Sáv 0 1 2 3 4 5 6 7 8 9 10 11
W indow s 98 m in d k ét m é re te t tám o g atta.
0
A kisebb helyfoglalási egységek h aszn álatát in d o k o lh atn á az a tény, hogy kevés
1
2 fájl tö lt ki p o n to san valahány egységet. E z é rt m ajd n em m in d en fájlnál helyet ve­
3 szítünk az u tolsó egységben. H a a fájlm éret sokkal nagyobb a helyfoglalási egység
4
m é re tén é l, átlagosan fél egységnyi helyet p o csékolunk el. M inél nagyobb az egy­
(b) ségek m é re te , annál tö b b az elték o zo lt hely. Egy 2 G B -os M S-D O S vagy W indow s
95 R el. 1 p artíció n p éld áu l a helyfoglalási egység 32 K B volt, te h á t egy 100 k a ra k ­
te re s fájllal 32 668 b ájt le m e z te rü le te t ték o zo ltu n k el. A h aték o n y táro lás kis egy­
ség ek et kíván. M in d en t összevetve m anap ság a h aték o n y átvitel a d ö n tő tényező,
(a) e m ia tt egyre nagyobb b lo k k m éretek használatosak.

6.21. ábra. A szabad szektorok nyilvántartásának két módszere, (a) Szabad listával.
(b) Bittérképpel
6.2.3. Könyvtárkezelő utasítások
és szűnnek m eg állan d ó an . A z egyik az összes lyukat ta rta lm a z ó lista h aszn álata. A régi szép időkben az e m b erek pro g ram ja ik at és a d a ta ik a t dolgozószobájuk
A lyuk (hole) itt tetsző leg es szám ú fo ly to n o san elh ely ezk ed ő szab ad helyfoglalási szekrényfiókjaiban lyukkártyán őrizték. A hogy szap o ro d tak az a d ato k és n ő ttek
egységet jelen t. A listát szabad listá n a k (free list) szokás nevezni. A 6.20. (b) á b ra a p ro g ram o k , egyre k ellem etlen eb b é vált ez a m egoldás. V égül m eg szü letett az
lem ezéhez ta rto z ó szabad listát tü n te ti fel a 6.21. (a) ábra. ö tle t, hogy az iratszekrények h elyett az a d ato k és a p ro g ram o k alternatív tá ro ló ­
A m ásik m ó dszern él helyfoglalási egységenként 1 b ite t ta rta lm a zó b itté rk é p p e l eszk ö zek én t használjuk a szám ítógép m ásodlagos m em ó riáját (például a lem ez­
dolgozunk a 6.21. (b) á b ra szerint. A 0 b it a szabad, az 1 p ed ig a m á r felh aszn ált egységet). A szám ítógép szem pontjából m eg k ü lö n b ö ztetü n k on-line (em b eri b e ­
helyfoglalási egységeket jelöli. avatkozás n élkül közvetlenül e lé rh e tő ) és ofF-line (csak em b eri közrem űködéssel
A z első m ego ld ás előnye, hogy könnyű vele a d o tt hosszúságú lyukat találni. h o z z á fé rh ető ) inform ációt. A z u tó b b ira p éld a leh et a m egfelelő C D -R O M b e h e ­
H átrán y a, hogy a lista változó m é re tű . lyezése az olvasóba.
A lista h osszán ak fájlok m egszűnésével és újak létreh o zásáv al k ap cso lato s in ­ A z o n -lin e inform ációt fájlokban tároljuk, a p ro g ram o k a k o ráb b an vizsgált B/K
g adozása n em kív án ato s jelenség. A b itté rk é p előnye az állan d ó m é re t, to v áb b á utasításo k k al fé rh e tn e k hozzájuk. D e további u tasításo k ra is szükség van az on-li-
az, hogy valam elyik helyfoglalási egység á lla p o tán a k szab ad ró l fo g laltra állítása n e info rm áció nyilvántartásához, m egfelelő egységekbe ren d ezéséh ez és az ille­
egyetlen bit m eg v álto ztatását jele n ti. A d o tt m é re tű b lo k k o t találn i azo n b an m ár té k telen h aszn álattó l való m egvédéséhez.
sokkal nehezeb b . M in d k ét m ó d szer m egkívánja a helyfoglalási lista vagy a b itté r­ A z o p eráció s ren d szerek az on-line fájlokat általáb an könyvtárakba (directo-
k ép frissítését, h a a fájl szám ára ú jab b egységeket fog lalu n k le vagy felszab ad ítu n k ries) cso p o rtosítják. A 6.22. á b ra egy könyvtárszervezési p é ld á t m u tat. A z o p e ­
valam ennyit. rációs re n d szerek m inim álisan a következő funkciókat ellátó rendszerhívásokat
M ielő tt b efejezn én k a fájlre n d szer m egvalósításának tárgyalását, érd e m e s n é ­ tartalm azzák:
hány szót szólni a helyfoglalási egység m é re té n e k választásáról. Itt tö b b tényező is
kulcsszerepet játszik. E lő szö r is a lem ezh o zzáférések id ejét d ö n tő e n a keresési és a 1. F ájl lé tre h o zása és könyvtárba helyezése.
forgási késleltetés szabja m eg. H a m á r 10 m s-ot v á rtu n k egy helyfoglalási egységre, 2. F ájl tö rlése könyvtárból.
sokkal jo b b nagyjából 1 m s a la tt 8 K B -o t beolvasni, m in t 0,125 m s a latt 1 K B -ot, 3. F ájl átnevezése.
hiszen a 8 K B nyolc 1 K B -os egységben tö rté n ő beolvasása nyolcszori k ere sé st igé­ 4. A fájl védelm i á llap o tán ak m egváltoztatása.
nyel. A z átvitel haték o n y ság a te h á t a nagy helyfoglalási egységek m ellett szól.
A nagyobb egységeket tá m o g a tja az is, hogy kis egységeket választva sok lesz K ü lö n b ö ző védelm i sém ák használatosak. A z egyik leh ető ség az lehet, hogy
belőlük. A sok egység p ed ig a m em ó riá b a n tá ro la n d ó nagy fájlindexet vagy lán ­ m in d en fájlhoz egy titkos jelszót re n d e l a tu lajd o n o sa. H a egy p ro g ram m eg p ró ­
colt listás tá b lá t jele n t. A z M S -D O S -n ak a z é rt k e lle tt tö b b szektornyi helyfoglalási bál a fájlhoz hozzáférni, m eg kell ad n ia a jelszót, s e n n ek helyességét ellenőrzi az
egységekkel dolgozni, m e rt a lem ezcím ek et 16 b ite s szám o k k én t táro lta . A m ik o r o p eráció s ren d szer a hozzáférés engedélyezése elő tt. A m ásik védelm i m ódszernél
a lem ezek m é re te m eg h a lad ta a 6 4 ICB szek to rt, ez ek et csak nagyobb helyfoglalási m in d en fájl tu lajd o n o sa explicit m ód o n felsorolja egy listában, hogy m ely felhasz­
egységek használatáv al le h e te tt m egcím ezni, hogy a helyfoglalási egységek szám a n áló k p ro g ram jai érh e tik el a fájlt.
476 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P S Z IN T JE 6.3. A P Á R H U Z A M O S F E L D O L G O Z Á S V IR T U Á LIS UTASÍTÁSAI 477

tö b b C P U -t ta rta lm a z ó gépek építése. H a a gép lüOO d arab 1 ns-os C P U -t ta rta l­


0. fájl Fájlnév: Rubber-ducky
m az, szám ítási teljesítm énye m egegyezik az 1 C P U -s 0,001 ns ciklusidejűével, de
Hossz: 1840 az elő b b it valószínűleg sokkal könnyebb és olcsóbb m egépíteni.
Típus: Anatiadae dataram A több C PU -s g ép ek en az együttm ű k ö d ő processzusok m indegyikéhez saját
3. fájl Létrehozás dátuma: 1066. március 16. C P U -t ren d elh etü n k , ezzel biztosítva egyidejű v ég reh ajtásu k at. H a csak egy p ro ­
cesszo ru n k van, a p árh u zam o s feldolgozást úgy szim ulálhatjuk, hogy a p ro cesszo r­
4. fájl Utolsó hozzáférés: 1492. szeptember 1.
ral felváltva fu tta tju k egy-egy kis ideig a processzusokat. M ás szóval a processzor
5. fájl Utolsó módosítás: 1776. július 4. m eg o szth ató tö b b processzus között.
6. fájl Összes hozzáférés: 144
7. fájl 0. blokk 4. sáv 6. szektor A 3. processzus a CPU-ra vár

8. fájl 1. blokk 19. sáv 9. szektor 3. processzus


3. processzus
9, fájl 2. blokk 11.sáv 2. szektor
10. fájl 3. blokk 2. processzus
77. sáv 0. szektor
2. processzus
I I i I I . I I
I I I I I I I I
6.22. ábra. Felhasználói könyvtár és tipikus könyvtári bejegyzés tartalma 1. processzus
J 1. processzus
M inden m o d e rn o p eráció s re n d sz er m egengedi tö b b felhasználói könyvtár
használatát. A tipikus m eg o ld ás az, hogy m in d en k önyvtár m aga is fájl, s m int Az 1. processzus fut
ilyen, b e so ro lh a tó egy m ásik könyvtárba. E zzel k ön y v tárfák at k ap u n k . A tö b b p ro ­
Idő Idő
je k te n dolgozó p ro g ra m o z ó k szám ára k ü lö n ö sen h asznos ez a leh ető ség . A z azo ­
nos p ro jek tek h ez k ap cso ló d ó fájlo k at cgy-egy könyv tárb a gyűjthetik össze. M íg az (a) (b)
a d o tt p ro jek ten d olgoznak, n em zavarják ő k et o d a n em ta rto z ó fájlok. A k ö nyvtá­
rak a rra is kényelm es eszközt nyújtanak, hogy fájlo k at osszunk m eg a c so p o rtu n k ­ 6.23. ábra. (a) Több CPU-s valódi párhuzam os feldolgozás, (b) Szimulált párhuzamos
hoz tartozókkal. feldolgozás az egyetlen CPU három processzus közti megosztásával

A 6.23. á b ra a tö b b p ro cesszo rral végzett valódi p á rh u zam o s feldolgozás cs az


egy fizikai p ro cesszo rral szim ulált párhuzam osság közti k ü lönbséget m u tatja. M ég
6.3. A párhuzamos feldolgozás virtuális utasításai a szim ulált p árh u zam o s feldolgozás esetén is célszerű úgy felfogni, m in th a m inden
p ro cesszu sn ak saját d ed ik ált virtuális p rocesszora lenne. így a szim ulált esetb en is
Bizonyos szám ításo k at egy processzus h ely ett k é t vagy tö b b p árh u za m o sa n (p é l­ u gyanazokkal a kom m unikációs pro b lém ák k al kell szem b en ézn ü n k , m int am elyek
dául különböző p ro cesszo ro k o n ) futó, eg y ü ttm ű k ö d ő p ro cesszu sk én t leh e t leg ­ a valódi p árh u zam o s feldolgozásnál előfordulnak.
kényelm esebben p ro g ram o zn i. M ásk o r m eg a teljes v ég reh ajtásh o z szükséges idő
csö kk entése m ia tt d arab o lju k fel a fe la d a to t p á rh u z a m o sa n v ég re h a jth a tó részek ­
re. Processzusok p árh u z a m o s v é g reh ajtásáh o z bizonyos v irtuális u ta sítá so k ra van 6.3.1. Processzusok létrehozása
szükség. E zek rő l lesz sző a k ö v etk ező szakaszokban.
A p árh u zam o s feldolgozás irán ti jelen leg i é rd e k lő d é st a fizika törvényei is m o ti­ A v é g reh a jtan d ó p ro g ram o k m indig valam ely processzus részek én t futnak. E z a
válják. A z E in stein -féle speciális relativ itáselm élet szerin t e lek tro m o s je le k e t nem p ro cesszu s az összes tö b b ih ez h asonlóan, állapotával és azzal a cím tartom ánnyal
leh et a fénysebességnél gyorsabban továb b ítan i, am i v ák u u m b an közel 1 láb/ns se­ je lle m e z h e tő , m elyen keresztül a pro g ram és ad ata i elérh ető k . A z állap o t m in im á­
bességet jelen t, ré z d ró tb a n vagy optik ai szálban en n él kicsit k evesebbet. Ez a k o r­ lisan az utasításszám lálót, a p ro g ram állap o tszó t, a v e re m m u ta tó t és az általános
lát a szám ítógépek felép ítésére v o n atk o zó fo n to s k ö v etk ez m én y ek et eredm ényez. reg isz te re k e t tartalm azza.
1 la péld áu l a C P U a tőle 1 láb távolságra lévő m em ó riátó l k é r a d a to k a t, legalább A legtöbb m o d ern o p eráció s ren d szer m egengedi processzusok dinam ikus lé t­
1 ns-ig tart, míg a k é ré s m eg érk ezik a m em ó riáh o z, s legalább m ég egy nsec telik re h o zá sá t és befejezését. Ú j processzust létreh o zó ren d szerh ív ásra van szükség
el a válasz m egérkezéséig. A n an o sze k u n d u m n á l kisebb válaszidejű szám ítógépek ah h o z, hogy ezt a sajátosságot teljesen ki tu d ju k használni a p á r h u ^ m o s feldolgo­
te h á t csak nagyon kicsik leh etn ek . A szám ító g ép ek gy o rsításán ak m ásik m ó d ja a zás eléré sé re. A rendszerhívás vagy csak egyszerű m á so la to t készít a hívóról, vagy
478 6. A Z O P E R Á C IÓ S R EN D S Z E R G É P SZ IN T JE 6.3. A p á r h u z a m o s F E L D O L G O Z Á S V IR T U Á LIS UTASÍTÁSAI 479

esetleg azt is m egengedi, hogy a hívó h atá ro zz a m eg az új processzus k ezdeti álla­ közelebb k ivehető szám ra m u tat. H a in = out, a p u ffer üres, ez lá th a tó a 6.24. (a)
p o tá t, beleértv e a fu tta ta n d ó p ro g ra m o t, an n ak a d a ta it és kezdőcím ét. , áb rán . M iu tán a te rm elő n éh án y új p rím e t g en erált, a 6.24. (b) á b rá n a k m egfele­
N éh a a létreh o zó „szülő” processzus részb en vagy teljesen ellen ő rzése a latt lő helyzet áll elő. A 6.24. (c) áb rán azt látjuk, hogy a fogyasztó az előbbi szám ok
tartja a lé tre h o z o tt „gyerek” p rocesszust. E zt a célt szolgálják azok a virtuális u ta ­ közül n é h á n y at m á r k in y o m tato tt. A 6.24. (d )-(f) áb rák a processzusok további
sítások, m elyekkel a szülő a gyerek p rocesszusok m eg állítását, ú jrain d ításá t, m eg ­ tev ék en y ségének h a tá sá t m u tatják . A p u ffer teteje logikailag az aljánál fo ly tató ­
vizsgálását és befejezését é rh e ti el. M ásk o r m eg a szülőnek sokkal kevesebb b efo ­ dik, vagyis körkörös. H a egy h irtelen b eérk ező nagy adag input m iatt a p u ffer „ á t­
lyása van a gyerek processzusokra: ha lé tre jö tt az új processzus, a szülő m á r n em fo rd u l”, és in csak egy szóval van out m ö g ö tt (p éld áu l in = 52, o u t = 53), a puffer
tu d ja erőszakkal m egállítani, ú jrain d ítan i, m egvizsgálni vagy befejezni. A k é t p ro ­ (m ajd n em ) b etelt. A z u to lsó szót nem használjuk, hiszen egyébként nem tu d n án k
cesszus egym ástól fü g g etlen ü l fu t tovább. eld ö n te n i, hogy az in = o u t eset ü res vagy teli p u ffért jelen t.
A 6.25. áb rán a term elő-fogyasztó p ro b lém a Java nyelvű egyszerű m egvalósítása
láth ató . A m egoldás h áro m osztályt használ: m ,p ro d u cer és consum er. A z m (m ain)
6.3.2. Versenyhelyzetek osztály tartalm azza a kon stan so k definícióját, az in és az o u t m u tató k at és a 100
p rím tá ro lá sá ra alkalm as puffért, m elyet buffer[Q]-i6\ buffer[99y\g indexezünk.
A p árh u zam o sa n fu tó p rocesszusok fe la d a taik at sokszor csak úgy k ép e sek m eg ­ A p ro g ram Jav a sz á la k a t (threads) használ a p árh u zam o s processzusok szim u­
oldani, h a k om m u n ik áln ak és m ű k ö d é sü k e t szinkronizálják. E b b e n a szakaszban lálására. A m egoldásban egy producer és egy consum er osztály szerepel, ezekből
processzusok szinkro n izáció ját vizsgáljuk, az ezzel k ap cso lato s b o n y o d alm ak at h o zu n k lé tre egy p , illetve egy c nevű példányt. M in d k ét osztályt a Tliread nevű
egy p é ld a k apcsán részletezzük. A követk ező szakasz ism erteti a p ro b lém á k egyik alaposztályból szárm aztatjuk, am ely tartalm azza a n in m etó d u st. A m n m etó d u s
lehetséges m ego ld ását. ta rta lm az z a a szálak kódját. H a m eghívjuk a Thread osztályból szárm aztato tt vala­
Tekintsünk k é t független processzust, m elyek a m em ó riáb a n ta lá lh a tó közös m elyik o b jek tu m start eljárását, új szál indul el.
p u ffer segítségével ko m m u n ik áln ak . A z egyszerűség k e d v éért az 1. p ro cesszu st ter­ A szálak a processzusokhoz h aso n lítan ak , azzal a kivétellel, hogy az ugyanazon
m előnek (producer), a 2. p ro cesszu st p ed ig fogyasztónak (consum er) fogjuk n e ­ Jav a-p ro g ram h o z ta rto z ó összes szál ugyanabban a cím tarto m án y b an fut. E z a
vezni. A te rm elő p rím szám o k at k eres, és egyesével a p u ffe rb e helyezi. A fogyasztó tu lajd o n ság kényelm essé teszi a m eg o szto tt p u fferek alkalm azását. H a a gépben
szintén egyesével kiveszi és k in y o m tatja a p u ffe rb e n ta lá lh a tó szám okat. k e ttő vagy tö b b C P U van, az ü tem ező m in d en szálat m ásik C P U -n fu tta th a t, am i
A k ét processzus p árh u z a m o sa n , de e lté rő sebességgel fut. H a a te rm e lő é szre ­ v alódi p árh u zam o sság o t tesz lehetővé. H a csak egy C P U van, a szálak ezen idő­
veszi, hogy a p u ffe r b etelt, „elalszik”, vagyis a fogyasztótól érk e ző jelzésig (signal) o sztással h a jtó d n ak végre. B ár a Java csak a p árh u zam o s szálakat, és nem az iga­
felfüggeszti m ű k ö d ését. M iu tá n kivett egy p rím e t a p u fferb ő l, a fogyasztó jelzést zi p árh u z am o s p rocesszusokat tám o g atja, a to vábbiakban is term elő és fogyasztó
küld a te rm e lő n e k - feléb reszti hogy ú jrain d ítsa. H aso n ló a helyzet, h a a fo ­ p ro cesszu so król beszélünk, mivel valójában ezek é rd ek eln ek b en n ü n k et.
gyasztó veszi észre, hogy k iü rü h a p uffer; ő is elalszik. A te rm e lő az ü re s p u fferb e A next segédfüggvény az in és az o ut egyszerű növelését segíti. így nem kell
b e te tt első szám u tá n éb reszti fel az alvó fogyasztót. m in d en alkalom m al azt vizsgálni, hogy „átfo rd u lt-e ” m á r valam elyik érték e. H a a
A p é ld áb a n k ö rk ö rö s p u ffé rt h aszn álu n k a pro cesszu so k közti ko m m u n ik áció ra. n ext-n ek á ta d o tt p a ra m é te r 98, vagy an n ál kisebb, a k övetkező n ála nagyobb eg é­
A z in és az o u t m u ta tó k a t a követk ező m ó d o n használjuk: in a k ö v etk ező szabad szet ad ja vissza. A m ik o r a p a ra m é te r 99, a p u ffer végéhez értü n k , e z ért a függvény
szóra (ide teszi be a te rm e lő a k ö v etk ező p rím e t), o u t m eg a fogyasztó által leg­ 0-t ad vissza.
S zükségünk van valam ire, am ivel m in d k ét p rocesszus „ e la lta th a tó ”, h a nem
tu d ja folytatni a m ű k ö d ését. A Jav a tervezői is g o n d o ltak e rre , m á r a nyelv legelső
v erzió ja ta rta lm a z ta a Thread oí,zik\y suspend (felfüggeszt, m egállít) és resum e (fel­
é b reszt) m e tó d u sait. E zek et haszn áltu k a 6.25. ábrán.
M o st é rü n k a te rm e lő és a fogyasztó kódjához. E lő szö r a P l utasítással új p rím et
g en e rá l a term elő. Figyeljük m eg az m .M A X _ P R IM E kon stan s h aszn álatát. A z m .
prefix jelzi, hogy az m osztályban definiált M A X _ P R lM E -ró \ van szó. U g y a n e z é r t
kell h aszn áln u n k m -et az in, az out, a buffer és a next m e lle tt is.
A P2 u tasításb an a te rm e lő az nézi m eg, hogy in az o u t m ö g ö tt van-e. H a igen
(p éld áu l in = 62 és o ut = 63), a k k o r a p u ffer m eg telt, e z é rt P2-ben a suspend-et
hívja és elalszik. H a van m ég hely a p u fferb en , a k k o r új p rím e t rak bele (P3), és
m egnöveli in é rté k é t (P4). H a in új érté k e cggycl nagyobb out-ná\ (például in = 17
6.24. ábra. Körkörös puffer használata és o u t = 16), ak k o r az ink rem en tálás e lő tt in és o u t érté k e azonos volt. E bből arra
480 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.3. A P Á R H U Z A M O S F E L D O L G O Z Á S V IR T U Á LIS UTASÍTÁSAI 481

public eláss m { k ö v etk ez tet, hogy a p u ffe r ü res volt, s e m ia tt a fogyasztó m ég m ost is alszik. E z é rt
final public static Int BUF_SIZE = 100; // a buffer 0-tól 99-lg változik a resurne hívásával felébreszti (P5). V égül elkezdi keresni a következő p rím et.
final public static long MAX_PRIME = 1GOGOGGOGGOGOGOL; // itt álljunk meg A fogyasztó p ro g ram ja haso n ló felépítésű. E lőször azt teszteli, hogy üres-e a
public static int in = 0, out = 0; // adatpointerek
p u ffer (C l) . H a igen, a fogyasztónak sem m i dolga, e z ért nyugovóra tér. H a a p u f­
public static long buffer [ ] = new long[BUF_SIZE]; // a prímeket itt tároljuk
fe r n em ü res, kiveszi a következő k iíran d ó p rím et (C 2) és m egnöveli o u l-o t (C3).
public static producer p; // a termelő neve
public static consumerc; // a fogyasztó neve
H a a C 4-hez érve o n t k é t pozícióval elő b b re m u tat, m in t in, ak k o r a növelés e lő tt
p o n to sa n egy hellyel já r t elő tte. M ivel az in = out - l érté k a „teli p u ffe r” fe lté te l­
public static void main(String args[ ]) { // a main osztály n ek felel m eg, a te rm e lő bizonyára alszik,* te h á t a fogyasztó felébreszti a resurne
p = new produceri ); // a termelő létrehozása hívással. B efejezésül a C5 u tasítás kiírja a szám ot, s ezzel újra kezdő dik a ciklus.
c = new consumerí); // a fogyasztó létrehozása Sajnos ez a ko n stru k ció egy végzetes h ib át tartalm az, m elyet a 6.26. á b ra tá r fel.
p.startí ); // a termelő elindítása N e feledjük, hogy a k ét processzus aszinkron m ód o n , különböző, sőt esetleg id ő ­
c.start(); // a fogyasztó elindítása b e n változó sebességgel fut. T ekintsük azt a 6.26. (a) esetet, am ik o r a pufferb en
} m á r csak egy szám m a ra d t a 21. helyen, in = 22 és o u t = 21. A te rm elő a P l u ta sí­
// Ez a segédfüggvény cirkulárisán növeli meg in és out értékét tással újab b p rím e t keres, a fogyasztó a 20. helyen talált szám kiírásával van elfog­
public static int next(int k) {if (k < BUF_SIZE - 1) return(k+1);else return (0);}
lalva (C 5). M iu tán b efejezte a kiírást, a fogyasztó végrehajtja a C l tesztet, C2-vel
}
kiveszi a p u fferb ó l az utolsó szám ot, m ajd m egnöveli out-ot. E b b en a p illan atb an
eláss producer extendsThread {
m ind in, m in d out érté k e 22. A fogyasztó kiírja a szám ot, e zu tá n C l-g y ei előveszi
// a termelő osztály
public void run(){ // a termelő kódja in -t és o u t-o t a m em óriából, hogy összehasonlítsa ő k et [lásd 6.26. (b) ábra].
long prime = 2; // segédváltozó U g y an eb b en a p illan atb an , am ik o r a fogyasztó m á r elő v ette a k ét érté k e t, de
m ég n em h a so n líto tta össze őket, a te rm elő m egtalálja a következő prím et. P3-nál
while (prime < m.MAX_PRIME) { b eteszi a p u fferb e, P4-nél m egnöveli in-l. M ost in = 23 és o ut = 22. A P5-nél a
prime= next_prlme(prime); // Pl utasítás p ro g ram észreveszi, hogy in = next(out). M ás szóval in eggyel nagyobb out-néA,
if (m.next(m.in) == m.out) suspendO; // P2 utasítás am i azt jelzi, hogy m ost 1 elem van a p u fferb en . E bből (helytelenül) a rra követ-
m.buffer[m.ín] = prime; // P3 utasítás
m.in = m.next(m.in); // P4 utasítás
A termelő P5-nél
if (m.next(m.out) == m.in) m.c.resume(); // P5 utasítás A termelő Pl-et, A termelő Pl-et, ébresztő jelzést küld
} a fogyasztó C5-öt a fogyasztó Cl-et a C5-öt végrehajtó
hajtja végre hajtja végre fogyasztónak

priváté long next_prime(long prime){...} // a következő prímet kiszámító


// függvény

eláss consumer extendsThread { // a fogyasztó osztály


public void run() { // a fogyasztó kódja
long emirp = 2; // segédváltozó

while (emirp < m.MAX_PRIME) {


if (m.in == m.out) suspend(); I I Cl utasítás
emirp = m.buffer(m.out]; // C2 utasítás
m.out == m.next(m.out); // C3 utasítás
(a) (b) (0
if (m.out == m.next(m.next(m.in))) m.p.resume(); // C4 utasítás
System.out.println(emirp); //C5 utasítás
} 6.26. ábra. /Atermelő és a fogyasztó hibás kommunikációs mechanizmusa

}
6.25. ábra. Párhuzamos feldolgozás végzetes versenyhelyzettel Esetleg dolgozhat Pl-en. (A lektor)
482 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.3. A P Á R H U Z A M O S F E L D O L G O Z Á S V IR T U Á LIS UTASÍTÁSAI 483

k ezte t a term elő , hogy a fogyasztó b izto san alszik, e z é rt a 6.26. (c)-n ek m eg fele­ H a pozitív érték ű szem aforon hajtju k végre a down m űveletet, a szem afor érték e
lően éb resztő jelzést k üld neki (m eghívja a resum e e ljárást). T erm észetesen a fo ­ 1-gyel csökken, és a hívó processzus tovább fut. A ü é rté k ű szem aforon nem h a jth a ­
gyasztó m ég m indig é b re n van, te h á t elvész az é b resztő jelzés. A te rm e lő n ek ilát a tó végre a down, a hívó processzus várakozik („elalszik”), és alva is m arad , míg egy
következő p rím k eresésén ek . m ásik processzus up hívást nem hajt végre ugyanazon a szem aforon. A z alvó p ro ­
K özben a fogyasztó is tovább dolgozik. M á r e lő v ette in-i és o u t-o t a m e m ó riá ­ cesszusokat általában egy sorba rendezzük, hogy nyom on követhetők legyenek.
ból, m ielő tt a te rm e lő az u to lsó szám ot a p u fferb e h elyezte volna. M ivel m in d k e t­ Az up u tasítás azt ellenőrzi, hogy a szem afo r 0-e. H a igen, és egy m ásik alvó p ro ­
tő érté k e 22, elalszik. A m ik o r a te rm e lő m eg h a táro z z a a követk ező p rím e t (P l), cesszus tarto zik hozzá, a k k o r a szem afor 1-gyel nő. A z alvó processzus ezu tá n be
látja, hogy b e te h e ti a p u fferb e (P 2), beteszi a p u ffe rb e (P3), ellen ő rzi a k ét m u ­ tu d ja fejezni a down m ű v eletet, am ely m eg ak aszto tta, ú jra 0-ra tu d ja állítani a sze­
ta tó t (P4), és úgy találja, hogy in = 24 és o u t = 22. E b b ő l a rra k ö v etk ez tet, hogy m a fo rt és m in d k ét processzus fu tása fo ly tató d h at. A nem nulla szem aforon v ég re­
a p u fferb en k ét szám van (am i igaz is), és a fogyasztó nem alszik (ez viszont nem h a jto tt up u tasítás egyszerűen 1-gyel növeli é rték ét. A szem afor lényegében olyan
igaz). A te rm elő foly tatja a ciklust, végül a p u ffe r m egtelik, e k k o r ő is elalszik. szám láló, am ely a későbbi felhasználásig táro lja az é b resztő jelzések et, hogy ne
M ivel m in d k ét processzus alvó á lla p o tb a k erü lt, a to v áb b iak b an így is m arad n ak . v esszenek el. A szem afor u tasításo k fo n to s tulajdonsága, hogy ha egy processzus
A g o n d o t az o k o zta, hogy a te rm e lő é p p e n a k ét id ő p o n t k ö z ö tt (am ik o r a fo ­ valam elyik szem afo ro n u tasítás v ég reh ajtását kezdem ényezte, ak k o r azt a szem a­
gyasztó b e tö ltö tte in -t és out-o t, illetve am ik o r e la lu d t) v e tte észre, hogy in = o u t fo rt egyetlen m ásik processzus sem é rh e ti el m indaddig, m íg az első processzus
+ 1, e z ért g o n d o lta azt, hogy a fogyasztó alszik (am i m ég n em volt igaz), és k ü l­ vagy b e n em fejezte a m ű v eletet, vagy alvó állap o tb a n em k erü lt, mivel 0 állásnál
d ö tt el egy olyan é b re sz tő jelzést, am ely elveszett, hiszen a fogyasztó m ég éb ren p ró b á lt down m ű v eletet végrehajtani. A 6.27. á b ra az up és a down rendszerhívások
volt. E z a p ro b lém a versenyhelyzet (race condition) néven ism ert, hiszen az alg o ­ lényeges tu lajd o n ság ait összegzi.
ritm u s sikeressége azon m úlik, hogy o u t m egnövelése u tá n ki nyeri az in és o u t é r­
té k é n e k te s zteléséé rt vívott „v ersenyt” . Utasítás Szemafor = 0 Szemafor > 0
A versenyhelyzetekkel k ap cso lato s p ro b lé m ák jó l ism ertek . E zek való b an any- Up Szemafor = Szemafor + 1; Szemafor = Szemafor + 1
nyira súlyosak, hogy n éh án y évvel a Jav a k ib o csátása u tá n a Sun m eg v álto ztatta a ha egy másik processzus várakozott a szemafornál
a down művelet befejezésére, most befejezheti a
Thread osztályt, n em tá m o g a to ttn a k m inősítve a suspend és a resum e hívását, m i­
down-t és futhat tovább
vel igen gyakran v ersen y h ely zetek et ered m én y eztek . H ely e ttü k a nyelv sajáto ssá­
Down A processzus várakozik, míg egy másik processzus Szemafor = Szemafor - 1
gaitól függő m eg o ld ást aján lo ttak , de m ivel m i az o p eráció s re n d sz e re k e t vizsgál­ up-ot nem hajt végre
juk, ezért inkább egy olyan m ásik m eg o ld ással foglalkozunk, am elyet sok o p e rá ­
ciós ren d szer tám o g at, b eleé rtv e a U N IX -o t és a W indow s X P-t is. 6.27. ábra. A szemafor műveletek hatása

M in t k o rá b b an em lítettü k , a Jav a nyelvi sajátosságokon alap u ló m egoldást kí­


6.3.3. Processzusok színkronízácíója szemaforokkal nál a v ersenyhelyzetek kezelésére, m i viszont az o p eráció s re n d szerek et vizsgál­
ju k . E z é rt m eg kell o ld an u n k a szem aforok kezelését Jav áb an , b ár sem a nyelv,
A versenyhelyzet legalább k ét m ó d o n o ld h a tó fel. A z egyiknél m in d en p ro cesszu s­ sem sta n d a rd osztályai nem ta rtalm azn ak ilyesm it. F eltesszük, hogy m egírtunk
hoz h o zzáren d elü n k egy „éb resztésre v árak o zó álla p o tb ite t”. H a egy m ég fu tó p ro ­ k ét natív eljárást {up és d ow n), m elyek az up és a down ren d szerh ív áso k at hajtják
cesszus kap éb resz tő jelzést, beállítju k ezt a b itet. A m en n y ib en a processzus úgy al­ végre. Ja v a-p ro g ram jain k b an a szem aforok haszn álatát ezen eljárások közönséges
szik el, hogy ez a b it be van állítva, ak k o r rö g tö n ú jra is indul, a v árak o zó bit p edig egész p a ra m é te re k k e l való hívásával pro g ram o zh atju k .
törlődik. E z a bit m egőrzi a fölösleges éb resztő jelzést a jövőbeli felhasználáshoz. A 6.28. á b ra m u tatja a versenyhelyzet kiküszöbölését szem aforok használatával.
Igaz, hogy k ét processzus ese tén ezzel a m ó d szerrel m eg k e rü lh e tő a verseny­ A z m osztályhoz k ét szem afort ad tu n k . A z available nevű k ezd ő érték e 100 (a puf-
helyzet, de az általán o s ese tb e n , n k o m m u n ik áló p ro cesszu snál m á r n em alk al­ fe rm é re t), a.filled-é pedig 0. A te rm elő és a fogyasztó a v ég reh ajtást a k o ráb b iak ­
m azható, m e rt e k k o r n é h a m á r a k á r n - l éb re sz tő jelzést is m eg k ellen e őrizni. hoz h aso n ló an kezdi el a 6.28. áb rán láth ató P l, illetve a C l utasítással. A fille d -c n
M eg teh etjü k , hogy m in d en p ro cesszu sb an n - 1 b ite t ta rtu n k fe n n e rre a célra, de v é g reh a jto tt dow n hívás azonnal m egállítja a fogyasztót. A z első prím m egtalálása
ez elég ügyetlen m egoldás. u tá n a te rm e lő az available p a ra m é te rre l hívja down-X, am i available-t 99-re állítja.
P árh u zam o s pro cesszu so k szin k ro n izá lására D ijk stra (1968b) a já n lo tt egy ál­ P 5-nél u p -o t hívja a fiiled p a ra m é te rre l, am itől érté k e 1-re változik. Ezzel fel­
talán o sab b m ódszert. A m em ó riá b an v alahol szem afornak (sem aphore) n ev ezett szab ad ítja a fogyasztót, aki be tu d ja fejezni a fé lb em arad t dow n hívást. M ost filled
nem negatív, egész é rté k ű v álto zó k at táro lu n k . A z o p eráció s re n d sz er k é t re n d ­ é rté k e 0, és fut m indkét processzus.
szerhívása, az up és a down kezeli a szem afo ro k at. A z up 1-gyel növeli, a down V izsgáljuk m eg újra a versenyhelyzetet. L egyen valam ely id ő p o n tb an in = 22,
1-gyel csökkenti a szem afo r é rték é t. o u t = 21, a term elő h ajtsa végre P l- e t, a fogyasztó C 5-öt. A fogyasztó az utasítás
484 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.3. A P Á R H U Z A M O S F E L D O L G O Z Á S V IR T U Á LIS UTASÍTÁSAI 485

befejeződése u tá n C l-g y el fo lytatja, ahol do w n -i hívja a filled arg u m en tu m m al. public eláss m {
A szem afor érté k e a hívás e lő tt 1, u tá n a 0. E z u tá n kiveszi az u to lsó szám ot a puf- final public static int BUF_SIZE = 100; // a buffer 0-tól 99-ig változik
final public static long MAX_PRIME = 10OOOOOOOOOOL //itt álljunk meg
ferből, és 100-ra növeli available-t. M ég m ie lő tt do w n -t hívná a fogyasztó, a te rm e ­
public static int in = 0, out = 0; // adatpointerek
lő m egtalálja a k ö v etk ező p rím e t, és gyors eg y m ásu tán b an v ég reh ajtja P2, P3 és
public static long buffer[ ] = new long[BUF_SIZE]: //a prímeket itt tároljuk
P4 u tasításo k at. public static producer p; // a termelő neve
E b b e n a p illan a tb a n filled 0. A te rm e lő é p p en növelné, a fogyasztó m eg é p p en public static consumer c; // a fogyasztó neve
a dow n-t hívná. H a elő szö r a fogyasztó u ta sítása h a jtó d ik végre, a k k o r leáll, m íg a public static int filled = 0, available = 100; // szemaforok
te rm e lő az iip hívással ú jra el n em engedi. H a viszont a te rm e lő hívása jö n először,
a k k o r 1-re állítja a szem afo rt, s így a fogyasztónak n em is kell várak o zn ia. Egyik public static void main(String args[ ]) { //a main osztály
p = new produceri); // a termelő létrehozása
e setb en sem veszett el ébresztés! jelzés. A szem afo ro k bevezetésével p o n to sa n ez
c = new consumerO; // a fogyasztó létrehozása
volt a fő célunk.
p.start(); // a termelő elindítása
A szem afor m ű v eletek lényeges tu lajd o n ság a oszthatatlanságuk. M iu tán egy c.start(); // a fogyasztó elindítása
m űvelet v ég reh a jtá sa m e g k ez d ő d ö tt, a szem afo rt eg yetlen m ásik p ro cesszu s sem }
használhatja, am íg az első processzus vagy be n e m fejezte a m ű v eletet, vagy el // Ez a segédfüggvény cirkulárisán növeli meg in és out értékét
n em aludt. A szem afo ro k alkalm azásával é b re sz tő jel n em v eszh et el. Ezzel szem ­ public static int next(int k) {if (k < BUF_SIZE - 1) return(k+1); else return(O);}
b en a 6.25. á b ra if u ta sítása n e m o sz th a ta tla n . A fe lté tel k ié rték e lé se és a kiválasz­ }
to tt u tasítás v ég reh ajtása k ö z ö tt egy m ásik processzus k ü ld h e t é b re sz tő jelzést.
eláss producer extendsThread { // a termelő osztály
V alójában az up és a dow n e ljáráso k által v é g reh a jto tt up és down ren d sz e rh ív á­
natíve void up(int s); native void down(int s); // a szemaforok metódusai
sok o sz th a ta tla n n á nyilvánításával m eg is sz ü n te ttü k a pro cesszu so k szinkronizáci- public void ru n (){ // a termő kódja
ós p ro b lém áit. A h h o z, hogy ezek a m ű v eletek tényleg o sz th a ta tla n o k legyenek, az long prímé = 2; // segédváltozó
o p eráció s ren d sz e rn e k m eg kell tiltan ia, hogy k ét vagy tö b b processzus egyszerre
használja ugyanazt a szem afort. M inim álisan azt kell g aran táln ia , hogy egy up vagy while {prime < m.MAX_PRIME) {
down rendszerhív ás k iad ása u tá n sem m ilyen felhasználói k ó d n e fu th asso n , míg prime = next_prime(prime); // Pl utasítás
a hívás be n em fejező d ö tt. E gy p ro cesszo ro s re n d sz erek e n a sz em afo ro k at n é h a down(m.avaílable); // P2 utasítás
m.buffer[m.in] = prime; // P3 utasítás
a szem afo r m ű v eletek a latti m eg szak ításo k letiltásával valósítják m eg. T ö b b p ro ­
m.in = m.next(m.ín); // P4 utasítás
cesszoros re n d szerek e n ez a trü k k n e m m űködik. up{m.filled); // P5 utasítás
Tetszőleges szám ú p ro cesszu sra alk alm azh ató a szem afo ro k o n alap u ló szinkro- }
nizációs tech nika. A down ren d szerh ív ás v é g re h ajtásá ra ugy an an n ál a szem afornál
több processzus is v árak o zh at. H a egy m ásik p ro cesszu s végre up hívást h ajt végre
ezzel a szem aforral, az egyik v árak o zó processzus b e fe je z h e ti a down hívást, és to ­ priváté long next_prime(long prime){...} // a következő prímet kiszámító
vább fu th at. A szem afo r é rté k e 0 m ara d , a tö b b i p ro cesszu s tovább várakozik. } // függvény

P ró b álju k egy analógiával m egvilágítani a szem afo ro k jelleg zetesség eit. K ép ­


eláss consumer extendsThread { // a fogyasztó osztály
zeljük el, hogy egy k irán d u láso n a 20 részt vevő rö p la b d a c sap a tta l 10 pályán 10 native void up(int s); native void down{int s); // a szemaforok metódusai
m érk ő zést (p rocesszu st) szervezünk. A la b d á k a t egy nagy k o sárb an ta rtju k (ez a public void ru n (){ // a fogyasztó kódja
szem afor). Sajnos összesen csak 7 la b d án k van. B árm ely id ő p illa n a tb a n 0 és 7 k ö z­ long emirp = 2; // segédváltozó
ti szám ú lab d a ta lá lh a tó a k o sárb an (a szem afo r é rté k e 0 és 7 k ö zö tti szám ). A z
up-nak az felel m eg, hogy b ete sz ü n k egy lab d á t a k o sárb a, hiszen ez növeli a sze­ while (emirp < m.MAX_PRIME) {
m afo r é rté k é t. L a b d a kivétele a kosárb ó l egy down v ég re h a jtá sá t je le n ti, mivel ez down(m.filled); //Cl utasítás
emirp = m.buffer[m.out]; // C2 utasítás
csökkenti az érté k e t.
m.out = m.next(m.out); // C3 utasítás
A piknik k ezd e té n m in d en p ályáról egy já té k o st a k o sárh o z k ü ld e n ek lab d áé rt. up(m.available); // C4 utasítás
K özülük h é tn e k sikerül la b d á t szerezni (befejezn i a down m ű v eletet), h á rm an v á ­ System.out.println(emirp); // C5 utasítás
rak o zn i kényszerü ln ek (vagyis n em tu d ják b efejezn i a down-t). A z ő m eccseik á t­ }
m en etileg elhalasztó d n ak . E lő b b -u tó b b a tö bbi m érk ő zés közül b efejező d ik v ala­
melyik, ek k o r visszatesznek egy la b d á t a k o sárb a (up m űvelet). A h á ro m várak o zó }
já té k o s közül az egyik la b d á h o z ju t (befejezi a down-t), s egy m érk ő zés folytatód- 6.28. ábra. Szemaforokkal irányított párhuzam os feldolgozás
486 6. A Z o p e r á c i ó s r e n d s z e r G É P SZ IN T JE
6.4. P ÉL D A K o p e r á c i ó s R EN D SZ ER EK R E 487

hat. A m ásik k e ttő re m ajd csak a k k o r k e rü lh e t sor, h a további k ét la b d á t h oznak való portolás,* m ajd a lap o zo tt virtuális m em ó ria bevezetése, a fájlnevek hosszá­
vissza a kosárba. A m ik o r m ég k ét la b d át v isszaju ttatn ak , az u to lsó k ét m érkőzés n ak 14-ről 255 k a ra k te rre növelése és a T C P /IP hálózati protokoll b e ép ítése volt,
is elindulhat. m elyet m a m ár az egész in te rn e t használ (nem kis részben azért, m ert b en n e volt
a B erkeley U N IX -b an ).
A m íg B erkeley-ben ezeken a v álto ztatáso k o n dolgoztak, az A T& T m aga is to ­
vább fe jlesz tette a U N IX -o t. E n n e k ered m én y e lett 1982-ben a System III, azután
6.4. P é ld ák o p e ráció s rendszerekre 1984-ben a System V A z 1980-as évek végére széleskörűen elte rje d t k é t in k o m p a­
tibilis U N IX -változat: a B erkeley U N IX és a System V E m ellett az is m egosztotta
E b b en a részben tovább vizsgáljuk a p é ld a k é n t haszn ált ren d sz e re k e t, a P entium a U N IX -világot, hogy nem léteztek szabványos bináris fo rm átu m o k , am i aláásta
4-et és az U ltraS P A R C Ill-a t. M in d k ét p ro cesszo rn ál m eg n ézü n k egy-egy o p e rá ­ a U N IX üzleti sikerét. A szoftvergyártók n em tu d ta k olyan U N IX -program cso-
ciós ren d szert. A P entium 4-nél ez a W indow s X P lesz (a to v áb b iak b an rövi­ m ag o k at készíteni, am elyek m inden U N IX -re n d szeren fu to tta k volna, holott az
d e n X P -ként em leg etjü k ), az U ltraS P A R C Ill-o n a U N IX -o t használjuk. M ivel M S -D O S -nál ez m á r ru tin szerű en m ű k ö d ö tt. H osszas civődások u tá n az IHHE
a U N IX egyszerűbb és sok te k in te tb e n eleg án sab b is, ezzel kezdjük. E g y éb k én t Szabványügyi B izottsága kidolgozta a PO SIX (1‘ortable O perating Systein-IX)
a U N IX -o t terv ezték és v a ló síto tták m eg előbb, és nagy h atással volt az X P-re. szabványt, am ely az IE E E szabvány sorszám a alapján P 1003-ként is ism eretes.
E m ia tt is célszerűbb az e m líte tt so rre n d , m in t a fo rd íto ttja. K ésőbb n em zetközi (IS O ) szabvánnyá vált.
A P O S IX szabvány sok részből áll, m elyek a U N IX kü lö n b ö ző részeit ölelik fel.
A z első rész, P1003.1, a ren d szerh ív áso k at definiálja. A m ásodik, P1003.2 az a la p ­
6.4.1. Bevezetés v ető seg é d p ro g ram o k at írja le stb. A P1003.1 szabvány m integy 60 olyan re n d sz e r­
hívást definiál, am elyet m inden, a szabványnak m egfelelő o p eráció s ren d sz e r tá ­
E b b en a szakaszban röviden ism ertetjü k a k é t o p e rá c ió s re n d sze rt, a U N IX -o t és m o g atn i köteles. E zek a fájlokat író és olvasó, az új p rocesszusokat létreh o zó stb.
az XP-t. F igy elm ü n k et a tö rté n e ti v o n atk o zá so k ra, a ren d sz erek felé p ítésé re és a alap v e tő rendszerhívások. M a m á r csaknem m in d en U N IX -re n d szer tám o g atja a
rendszerh ív áso k ra összpontosítjuk. P l 003.1 ren dszerhívásokat. D e sok U N IX -re n d szerb en van n ak további kiegészítő
hívások is, k ü lö n ö sen a System V -ben és/vagy a B erkeley U N IX -b an definiáltak.
E zek tip ik u san m ég vagy 200-zal bővítik a rendszerhívások halm azát.
UNIX A könyv szerzője 1987-ben k ö zzétette a M IN IX -n ek n evezett kis U N IX -válto-
zat fo rrá sk ó d ját egyetem i h aszn álatra (T anenbaum , 1987). H elsinkiben az egye­
A U N IX -o t az 1970-es évek elején a Bell L ab s-b cn fejlesz tették ki. A z első v álto ­ te m e n M IN lX -e t tan u ló , és azt o tth o n i P C -jén fu tta tó d iákok eg>ike volt Linus
z ato t K en T h o m p so n írta m eg assem bly nyelven egy P D P -7 m in ig ép re. E zt n e m ­ Torvalds. A M IN IX alapos m egism erése u tá n Torvalds úgy d ö n tö tt, hogy ír egy
so k ára k övette a P D P -1 1 -re készült válto zat, am ely m á r a D e n n is R itch ie által ki­ saját M IN IX -k ló n t, m elyet L inuxnak nevez el. E z egészen n épszerűvé vált. A
talált és m egvalósított, C -n ek h ívott új nyelven készült el. H a tá rk ő volt R itch ie és M IN IX és a L inux összeillenek, és ráju k is igaz m ajd n em m in d en , am it eb b en a fe ­
kollégája, T h o m p so n 1974-es U N IX -rő l szóló cikke (R itch ie és T h o m p so n , 1974). je z e tb e n a U N IX -ró l elm o n d u n k . B ár m in d ezek a U N IX -változatok belülről e rő ­
A b e n n e ism e rte te tt e re d m é n y e ik é rt k éső b b m eg k a p tá k az A C M tekintélyes sen k ü lönbözők, a fejezet nagy részéb en a rend szerh ív áso k n ak m egfelelő felületet
Turing d íját (R itch ie, 1984 és T h o m p so n , 1984). A cikk m eg jelen ése sok egy ete­ (in terfészt) vizsgáljuk, am ely m indegyikben m eg találh ató .
m et arra ösztö n zö tt, hogy U N IX -m áso la to k a t k érjen a B ell L abs-tól. M ivel a Bell A z U ltraSP A R C III Solarisnak nevezett o p eráció s ren d szere a System V-on
Labs anya vállalata, az AT&T, ab b an az id ő b en a m o n o p ó liu m ellen es törvények alapul. T ám o g atja a B erkeley U N IX sok ren d szerh ív ását is.
h atálya a latt állt, s e m ia tt n em fo g lalk o zh ato tt szám ító g ép es üzlettel, nem elle n ez ­ A S olaris ren d szerh ív ásain ak funkció szerinti vázlatos osztályozása a 6.29. áb ­
te, hogy szerény ö sszeg ek ért U N IX -licen cek et k ap jan ak az egyetem ek. rán láth a tó . A fájl- és a könyvtárkezelő rend szerh ív áso k alk o tják a legnagyobb és
A tö rté n e lm e t fo rm áló nagy v éle tle n e k egyike, hogy ak k o rib an a P D P - 1 1 volt a legfo n to sabb k ateg ó riát. T ö b b ség ü k et a P1003.1 szabvány definiálja. A többiek
az egyetem ek in fo rm atik ai részleg ein ek legked v elteb b szám ítógépe, s ráad á su l a viszonylag nagy hán y ad a a System V-ből szárm azik.
vele szállított o p e ráció s re n d sz e re k e t m in d a hallg ató k , m in d az o k ta tó k szörnyen A h áló zatk ezelés az a terü let, am elyet a System V h ely ett inkább a B erkeley
po cséknak ta rto ttá k . A U N IX gyorsan b en y o m u lt eb b e az ű rb e , n em u to lsó so rb an U N IX k e re té b e n fejlesztettek ki. Itt v ezették be a socket (kb. foglalat, csatlako-
azért, m e rt teljes fo rrásk ó d d al ad ták . így aztá n álla n d ó an le h e te tt bütykölgetni.
A k o rán U N IX -o t szerző eg y etem ek egyike v olt a U n iversity o f C alifo rn ia
(B erkeley). M ivel ren d elk ez é sü k re állt a teljes fo rrásk ó d , B erk eley -b en lényeges * portolás: egy program nak az adott típusú gépen futtath ató változatának létrehozása
m ó d o sításo k at h a jto tta k végre a re n d szeren . A z első v álto ztatás a VAX m inigépre (A lektor)
488 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.4. P ÉL D Á K O P E R Á C IÓ S R E N D SZ ER EK R E 489

Kategória Néhány példa szítést tesz lehetővé. A stream használatával a felhasználói processzus és a h a rd ­
Fájlkezelés FájImegnyitás, -olvasás, -írás, -zárás és -zárolás vereszköz k ö zö tt olyan kétirányú kap cso lat h o zh ató létre, am ely m e n tén egy vagy
Könyvtárkezelés Könyvtárak létrehozása és törlése, fájlok naozgatása tö b b m odul illeszthető be. A felhasználó processzusa a d a to k a t helyez el a stream -
Processzuskezelés Processzusindítás, -leállítás, -nyomkövetés, szignálküldés be, am ely ek et azu tá n az egyes m o d u lo k tran szfo rm áin ak és feldolgoznak, míg
Memóriakezelés A memória megosztása a processzusok között, lapok védelme csak el n em érik a h ard v ert. A bejövő a d a to k a fo rd íto tt feldolgozáson esnek át.
ParaméterlekérdezésZ-beállítás Felhasználó-, csoport- és processzusazonosító-lekérdezés; A z eszközkezelők fe le tt a fájlren d szer helyezkedik el. E z a fájlnevekkel, a könyv­
prioritásbeállítás_____________________________________ tárak k al, a lem ezblokkok foglalásával, védelem m el és m ég sok m ással foglalkozik.
Dátum- és időkezelés Fájl elérési idejének beállítása, intervallumos időzítők használata, A fájlren d szer része a blokkgyorsító (block cache), am ely a lem ezről legutóbb b e­
időzített végrehajtás_______________________________________ olv aso tt b lo k k o k at tárolja, h á th a a közeljövőben ú jra szükség lesz rájuk. A z évek
Hálózatkezelés Kapcsolat létrehozása/elfogadása, üzenetküldésZ-fogadás so rán v álto zatos fájlre n d szerek et használtak, p éld áu l a B erkeley U N IX Fást File
Egyebek Könyvelés (accounting), lemezkvóta-kezelés, rendszer-újraindítás System (F F S ) nevíí re n d sz e ré t (M cK usick és társai, 1984) és különféle naplózó
fájlre n d sz e rek et (R osenblum és O u ste rh o u t, 1991; S eltzer és társai, 1993).
6.29. ábra. A UNIX-rendszerhívások vázlatos osztályozása A U N IX -re n d szer k ö vetkező alk o tó része a processzu so k at kezelő alrendszer.
Sok egyéb funkciója m ellett kezeli az IP C -t (Inter P rocess C om m unication, pro­
zási p o n t) fogalm át, am ely a h álózati k apcsolat v ég p o n tját jelen ti. M odelljéül a cesszusok közti kom m unikáció). A z IP C teszi lehetővé a processzusok közti k o m ­
négylyukú fali te lefo n csatlak o zó szolgált. A U N IX -p ro c esszu so k so ck etek et h o z­ m u n ik áció t és szinkronizációt, s ezzel a versenyhelyzetek elk erü lését. Sokféle m e ­
h a tn a k létre, k ap cso ló d h a tn a k socketekhez vagy távoli g ép en lévő so ck ettel is c h an iz m u st h aszn álh atu n k . A processzu so k at kezelő kód végzi a p rio ritáso k o n
k ap cso lato t te re m th e tn e k . E zen a kapcsolaton át k étirán y ú a d a tc se ré t h a jth a tn a k alap u ló p ro cesszu sü tem ezést is. A z (aszinkron) szoftverm egszakításoknak m eg fe­
végre, általáb an a T C P /IP p ro to k o llt felhasználva. M ivel ez a h áló za ti tech n o ló g ia lelő jelzések (signals) kezelése szintén itt tö rtén ik . V égül a m em ó ria h aszn álatát is
stabil, k iérlelt és a U N IX év tizedek ó ta tartalm azza, az in te rn e t szerv erein ek je ­ in n en irányítja a rendszer. A legtöbb U N IX -re n d szer tám o g atja a k érésre lap o zo tt
len tő s része U N IX -o t fu ttat. v irtuális m em ó riát, esetleg m ég az olyan extra sajáto sság o k at is, m int a több p ro ­
N eh éz részleteseb b en b eszéln i az operációs re n d sz e r szerk ezetérő l, hiszen sok cesszus által m egosztva h aszn álh ató közös cím tartom ány-régiók.
U N IX -im p lem e n tá c ió létezik, és valam ilyen érte le m b e n m indegyikük e lté r az ösz- A U N IX születése ó ta m eg p ró b ált kis ren d szer m arad n i, ezzel is tám o g atv a a
szes többitől. A 6.30. á b ra azo n b an legtöbbjükre alk alm azh ató . L egalul az eszköz­ m eg b ízh ató ság o t és a h atékonyságot. A U N IX első válto zatai 80 A S C II k a ra k te r­
kezelők réteg e talá lh a tó , am ely a csupasz h ard v e rt rejti el a fá jlre n d szer elől. E re ­ ből álló 24 vagy 25 so rt m eg jelen ítő term in á lo k a t használtak. A felhasználói felü ­
d etileg m in d en eszközkezelőt az összes többitől fü g g etlen egységként írtak m eg. lete t biztosító, felhasználói szinten fu tó p ro g ram , a parancsértelm ező (shell) p a ­
E z az elren d ezés sok fölösleges erőfeszítést kívánt, hiszen so k u k n ak kell foglal­ ran csso ro s elérést te tt lehetővé. M ivel a shell nem ta rto z o tt a kern elh ez, könnyű
kozni a vezérlési fo lyam attal, hibakezeléssel, p rio ritáso k k al, az a d a to k és a vezér­ volt ú jab b sh ellek et adni a U N IX -hoz. Idővel egyre tö b b és egyre o kosabb shell
lőjelek elkülönítésével stb. E z a megfigyelés in d íto tta D en n is R itc h ie -e t a stream s p ro g ra m o t k észítettek.
(folyamok) nevű k e re tre n d sz e r kidolgozására, am ely m o d u láris eszközkezelő-ké- K ésőbb, am ikor m eg jelen tek a grafikus term in álo k , az M. I. T.-n egy X Window
System nevű ablakozó re n d sz e rt fejlesz tettek ki a U N IX -hoz. M ég k ésőbb az X
W indow System te te jé re egy M otif nevű k o m p lett GUI (G raphical U ser Interface,
grafikus felhasználói felület) k erü lt. A kis k e rn e lt kívánó U N IX -filozófiával össz­
Shell Felhasználói program Felhasználói
mód h a n g b an az X W indow System és a M o tif k ó d ján ak d ö n tő h ányada felhasználói
szinten, a k ern elen kívül fut.
Rendszerhívás-interfész
Fájlrendszer Processzuskezelés
Kernel- W in d ow s X P
Blokkgyorsító IPC Ütemezés ^ mód

Szignálok Memóriakezelés M ik o r 1981-ben m eg jelen t az e re d e ti IB M PC , az M S -D O S 1.0-nak n evezett


Eszközkezelők
16 bites, valós m ó d ú , egyfelhasználós, p aran csso ro s o p eráció s rend szerrel szállí­
to tták . A z o p eráció s re n d szer 8 K B m em ó riarezid en s kódból állt. K ét évvel k é­
Hardver
sőbb m eg jelen t a 24 K B -os, lényegesen nagyobb tu d ású M S -D O S 2.0. E z m ár ta r­
ta lm a zo tt egy p ara n c sé rte lm e z ő t (shellt), am ely szám os a U N IX -tól kölcsönzött
6.30. ábra.yA tipikus UNIX-rendszer felépítése sajáto sság o t m u ta to tt. A m ik o r 1984-ben az IB M k ia d ta a 286-ra ép ü lő PC/AT-t,
490 6. A Z o p e r á c i ó s r e n d s z e r G É P SZ IN T JE 6.4. P É L D A K o p e r á c i ó s R EN D SZ ER EK R E 491

eb b en m á r a 36 K B -os M S -D O S 3.0 volt. A z évek so rán az M S -D O S ú jab b sajá­ m in d m egegyeznek. A z X P m aga a registrynek n ev ezett belső ad a tstru k tú rá b a n
to sság o k ra te tt szert, de m ég m indig p aran csso ro s re n d sz er volt. tá ro lt speciális változó é rték éb ő l tudja, hogy m elyik verziót kell fu ttatn ia. A licenc
A z A pple M acin to sh sik erén felb u zd u lv a a M icrosoft e ld ö n tö tte , hogy az tiltja e n n e k m egváltoztatását, hogy a felhasználók n e tu d ják az (olcsó) klien st a
M S -D O S -t grafikus felhasználói fe lü lettel látja el, m elyet W indow snak fog hívni. (sokkal d rág áb b ) szerver vagy e n terp rise v álto zattá konvertálni. A továbbiakban
A W indow s első h á ro m v álto zata, a W indow s 3.x so ro zat m ég n em volt igazi o p e ­ n em teszü n k kü lö n b ség et a fö n t em líte tt verziók között.
rációs rendszer, csak grafikus felhasználói felü let az M S -D O S fölötti; az u tó b b i A z M S -D O S és az előző W indow s-változatok m ind egyfelhasználós re n d sze­
irán y íto tta a gép et. A p ro g ra m o k közös c ím tarto m án y b an fu to ttak , és bárm ely i­ rek voltak. A z X P ezzel szem ben tám o g atja a m u ltip ro g ram o zást, te h á t egyszerre
k ü k b en elő fo rd u ló hib a té rd re k én y szerítette az egész ren d szert. tö b b felh asználó is d olgo zhat ugyanazon a gépen. Egy hálózati szerveren például
A W indow s 95 1995-ös k iad ása m ég m indig n em je le n te tte az M S -D O S -tól való a h áló za tró l b e je len tk ezett tö b b felhasználó is leh et egyszerre, s m indegyikük h o z­
m egszabadulást, csak egy új 7.0 verziót. A W indow s 95 és az M S -D O S 7.0 együt­ z á fé rh e t saját fájljaihoz.
tesen m ár ta rta lm a z ta egy teljes o p eráció s ren d sze r legtöbb funkcióját, a virtuális Az X P valódi 32 b ites m u ltip ro g ram o záso s o p eráció s rendszer. T öbb felhasz­
m em ó riát, a processzusok k ezelését és a m u ltip ro g ram o zást. A W indow s 95 az o n ­ n álói p rocesszust tám o g at. E zek m indegyike 32 bites k érésre lap o zo tt virtuális
b an nem volt teljesen 32 bites p ro g ram . A 32 bites m e lle tt sok régi 16 bites k ó d ­ m e m ó riá b an fut. A re n d szer m aga is teljes egészében 32 bites kódból áll.
részletet is tarta lm a z o tt, és m ég m indig az M S -D O S fájlre n d sz erét haszn álta, a n ­ A W indow s 95-höz k ép est az N T egyik rendkívüli újítása a m oduláris felépítés
n ak m ajdnem m in d en korlátjával. A fájlre n d szerrel k ap cso lato s lényeges változás volt. K ern elm ó d b an futó, viszonylag kis kern elb ő l, és felhasználói m ó d b an fu tó
csupán az M S -D O S -b an m eg e n g e d e tt 8 -I- 3-as n evek h ely ett a hosszú fájlnevek szám os szerver processzusból állt. A felhasználói processzusok a kliens-szerver
bevezetése és 65 536-nál tö b b lem ezblokk k ezelésén ek k ép esség e volt. m o d ell szerint k ap cso ló d tak a szerver processzusokhoz; a kliens elküldte kívánsá­
M ég a W indow s 98 1998-as k iad ásáb an is o tt volt a 16 b ites k ó d o t fu tta tó (m ost g á t a szerverhez, a szerver elvégezte a m u n k át, és az ered m én y t egy m ásodik ü ze­
7.1 -es verziónak n ev ezett) M S -D O S . B ár kicsit tö b b fun k ció k e rü lt á t az M S -D O S - n e tb e n visszaküldte a kliensnek. E z a m o d u láris felép ítés m eg k ö n n y ítette a re n d ­
ból a W indow sos részbe, és a nagyobb lem ezek kezelésére alkalm as elren d ezés szer p o rto lá sá t az In tel vonal m ellett m ás g ép ek re (D E C A lp h a, IB M Pow erPC ,
vált szabványossá, a m élyebb ré sz le te k e t tekintve a W indow s 98 n em sokban k ü ­ S G I M IP S ). H atékonysági m egfontolások m iatt azonban az N T 4.0-val kezd ő d ő en
lö n b ö zö tt a W indow s 95-től. A legnagyobb elté ré s a felhasználói felü letb en volt, a re n d sz e r nagy része visszakerült a k ernelbe.
am ely szorosabban in te g rálta a m u n k aasztalt, az in te rn e te t és a tv-t. P o n to san ez M ég sok időt e ltö lth e tn é n k az X P belső felép ítésén ek és rendszerhívásainak
az integráció k e lte tte fel az am erik ai Igazságügyi M in isztériu m figyelm ét, s em ia tt vizsgálatával. M ivel első so rb an a különféle o perációs ren d szerek által m egvaló­
p e re lte b e a M icro so fto t illegális m o n o p ó liu m k ié p íté sé n e k vádjával. A W indow s síto tt v irtuális g ép ek (vagyis a rendszerhívások) é rd ek eln ek b en n ü n k et, röviden
98-at a rövid életű W indow s M illen iu m E d itio n (W indow s M E ) k ö v ette, am ely egy összefoglaljuk a re n d szer felép ítését, s azu tán rá té rü n k a rendszerhívások inter-
n ém ileg följavított W indow s 98 volt. fészére.
A z előző fejlesztésekkel p á rh u z a m o san a M icro so ft egy teljesen új 32 bites o p e ­ A z X P felép ítését a 6.31. á b ra m u tatja. R éteg ek b e re n d e z e tt szám os m odult
rációs ren d szer elk észítéséb e k ezd ett. A z új re n d sz e r neve W indows New Techno­ láth atu n k , együttes m űkö d ésü k valósítja m eg az o perációs ren d szer funkcióit.
logy vagy röviden W indows NT volt. K ezd etb en az összes In te l-a la p ú PC -s o p e rá ­ M in d en m o d u ln ak saját felad ata, és a többi m odul felé jól definiált interfésze van.
ciós ren d szer hely ett ezt a ján lo tták , de n em volt tú l nagy sikere. E z u tán inkább a M ajd n em m in d en m o d u lt C -ben írtak, b á r a grafikus eszközök interfészének egy
felső piaci szegm ensek rése it célo z ták m eg, ahová sik erü lt b enyom ulniuk. Az NT része C-l- -I-, a legalsó réteg ek bizonyos darabjai pedig assem bly nyelven készültek.
m ásodik v álto zatát W indow s 2000-nek nev ezték el. E z eléggé e lte rjed t m ég az asz­ L egalul a vékony hardverabsztrakciós réteg (hardware abstraction layer) ta lá l­
tali szám ítógépek p iacán is. A W indow s 2000 u tá n az X P k ö v etk ez ett, de ek k o r h a tó . F e la d ata olyan ab sztrak t h ardvereszközök definiálása az o p erációs ren d szer
csak viszonylag je le n té k te le n v á lto ztatáso k voltak. A z X P lényegében egy kicsit tö b b i része szám ára, am elyek m á r m e n tesek az igazi h ard v erre jellem ző egyéni
följavított W indow s 2000. sajáto sság o k tól és csúf részletek tő l. A m od ellezett eszközök k ö zö tt elő fo rd u ln ak
A z X P-t k ét v álto zatb an , szerv erk én t és m u n k aállo m ásk én t árulják. A k ét v álto ­ lap k án kívüli gyorsítótárak, időzítők, B /K sínek, m egszakítás- és D M A -vezérlők.
z at ugyanabból a fo rrásk ó d b ó l szárm azik és m ajd n em teljesen azonos. A szerver­ M ivel e z ek et az op eráció s ren d szer többi része csak „idealizált fo rm á b a n ” látja,
v álto zato t lokális h áló z a to k fájl- és n y o m tató szerv ereit fu tta tó g ép ek b e szánják. k ö n n y eb b az X P-t m ás h a rd v erp latfo rm o k ra átvinni, hiszen a legtöbb szükséges
R észleteseb b en k id o lg o zo tt ren d szerad m in isztráció s leh ető ség ei vannak, m int m ó d o sítás egy helyre koncen tráló d ik .
az egyetlen felhaszn áló t kiszolgáló asztali g é p k é n t m ű k ö d ő kliens v áltozatnak. A A h ard v erab sztrak ció s ré te g fö lö tt a kernelt és az eszközkezelőket tartalm azó
szervernek létezik nagy h á ló z a to k at kiszolgáló (E n te rp rise ) verziója is. A k ü lö n ­ ré te g következik. A k ern el és az összes eszközkezelő szükség esetén közvetlenül is
b öző v álto zato k a t e lté rő e n hangolják, v á rh a tó k ö rn y ezetü k n ek m egfelelően o p ti­ ho z zá fé rh e t a hard v erh ez, mivel h ardverfüggő k ó d o t tartalm azn ak .
m alizálják. E zek tő l az a p ró e lté ré se k tő l eltek in tv e az összes v álto zat lényegében A k ern el az elem i k e rn e lo b jek tu m o k at tám o g atja (m egszakítás, csapda, kivétel­
azonos. V alójában m ég a k ü lö n b ö ző v álto zato k v é g re h ajth a tó fájljai is m ajd n em kezelés, p ro cesszusok ü tem ezése és szinkronizációja, tö b b processzor szinkronizá-
492 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.4. P É L D Á K O P E R Á C IÓ S R E N D SZ ER EK R E 493

zi. F elh aszn álja a fájlre n d szer szolgáltatásait, az viszont az eszközm eghajtókra és
Wln32 program az o b jek tu m k ezelő szo lg áltatásaira tám aszkodik.
A fájlgyorsító-kezelő (file cache m anager) a fájlok blokkjainak kezelésével
I foglalkozik, és a n n ak eldöntésével, hogy m elyik b lo k k o k at ta rtsa a m em óriában
Win32 alrendszer
a jövőbeli felhasználás végett, tov áb b á a virtu álism em ó ria-k ezelő t segíti. A m e ­
I ...... m ó riá ra lek é p e z e tt fájlok kezelésével is foglalkozik. A z X P k onfig urálható több
Rendszerinterfész fá jlre n d szerrel is, ilyenkor m in d en fájlren d szert a fájlgyorsító-kezelő felügyel.
A m ik o r egy b lo k k ra van szükség, a gyorsítókezelőtől kell kérni. H a a blokk nincs
a m e m ó riájáb an , a m egfelelő fájlren d szertő l kéri el. M ivel a fájlok processzusok
Rendszerszolgáltatások
c ím tarto m án y áb a is lek ép ezh ető k , a szükséges konzisztencia biztosítása m iatt a
Procesz- gy o rsítő k ezelőnek együtt kell m ű k ö d n ie a m em óriakezelővel.
Fájl­ Virtuális Win32
B/K szusok Biztonság A virtuálism em ória-kezelő (virtual memory m anager) valósítja m eg az X P k é­
gyorsító memória és szálak
és ré sre lapozásos v irtu álism em ó ria-arch itek tú ráját. Elvégzi a virtuális lapok fizikai
Fájlrend­ la p k e re te k re való leképezését. É rvényesíti azo k at a védelm i szabályokat, m elyek
Objektumkezeiő
szerek GDI
(speciális h elyzetektől eltekintve) m in d en processzus szám ára csak a saját cím tar­
Eszközkezelők Kernel to m án y áh o z ta rto z ó lap o k elé ré sé t engedélyezik. K ezeli a virtuális m em óriához
Hardverabsztrakciós réteg k ap cso ló d ó bizonyos ren d szerh ív áso k at is.
A processzus- és szálkezelő (process and thread m anager) a processzusokat és
Hardver
a szálak at felügyeli, id eértv e lé treh o zásu k at és m eg szü n tetésü k et. E zen belül in­
k áb b a k ezelésü k re szolgáló m echanizm usokkal, és nem a h aszn álatu k ra v o n atk o ­
6.31. ábra. ^ Windows XP felépítése zó elvekkel foglalkozik.
A z X P biztonságiutalás-kezelője (security reference manager) érvényesíti az
ciója, időkezelés). A ré te g célja az o p e rá ció s ren d sze r m a ra d é k á n a k teljes h a rd ­ X P ré szletesen k id olgozott biztonsági m echanizm usát, am ely m egfelel az U SA
v erfüggetlenségét biztosítani, s ezzel könn y en h o rd o z h a tó v á (p o rto lh a tó v á ) ten n i. V éd elm i M in isztériu m án ak az ún. O ran g e B ookban a C2 szintre k iró tt fe lté te ­
A k ern el állan d ó a n a m e m ó riáb a n ta lá lh a tó . N em fü g g eszth ető fel (p ree m p tib le), leinek. A z O ran g e B oo k b an le fe k te te tt szám os szabályt kell teljesíteniük a neki
b á r n é h a át tu d ja ad n i a v ezérlést a B /K m eg szak ításo k kiszolgálásához. m eg felelő ren d szerek n ek . E zek a szabályok a b ejelen tk ezésk o ri m egfelelő azo n o ­
A z eszközm eghajtók (device driver) egy vagy tö b b B /K eszközt irán y íth atn ak , sítástól kezdve a h ozzáférés ellen ő rzésén át a virtuális lapok újrafelhasználás elő tt
b á r végezh etn ek n em eszközspecifikus tev ék en y ség ek et is (ad atfo ly am kódolása, 0-val való feltö ltéséig terjed n ek .
k ern elo b jek tu m o k e lé rh e tő sé g é n e k b izto sítása). M ivel a felh aszn áló k is te le p ít­ A grafikus eszköz interfész (graphics device interface, GDI) végzi a nyom tatók
h e tn e k (in stallálh atn ak ) új eszközk ezelő k et, m ó d ju k b an áll a k ern e l m egváltoz­ és a m o n ito r szám ára a k ép ek kezelését. O lyan rendszerhívásokat biztosít, m e ­
ta tá sa és a re n d sz e r tö n k re té te le . A z eszk ö zm eg h ajtó k at e m iatt nagyon gon d o san lyekkel a felhasználói p ro g ram o k eszközfüggetlen m ó d o n írh atn ak a képernyőre
kell m egírni. vagy a n y o m tató ra. T artalm azza az ablakkezelőt és a hardvereszköz-kezelőket is.
A k ern el és az eszk ö zm eg h ajtó k fö lö tt van az o p erác ió s re n d sz e r végrehajtónak A z X P elő tti N T 4.0 v álto zatb an felhasználói szinten fu to tt, de olyan kiábrándító
(executive) n ev ezett felső része. A v é g reh ajtó arch ite k tú ra fü g g e tle n és viszonylag teljesítm én n yel, hogy a sebesség m egnövelése é rd ek éb en a M icrosoft b e é p íte tte a
csekély erőfeszítéssel h o rd o zh a tó új g ép ek re. H á ro m réteg b ő l áll. k e rn elb e. A W in32 m odul kezeli a rendszerhívások nagy részét is. E red etileg ez is
A legalsó ré te g a fájlre n d sze re k et és az o b jek tu m k ezelő t tartalm azza. A fájl­ felhasználói m ó d b an fu to tt, de hatékonysági okokból á tte tté k a kernelbe.
rendszerek (flle system s) a fájlok és k ö n y v tárak h a szn á la tát tám o g atják . A z A v ég reh ajtó fe lett a rendszerszolgáltatások (system services) nevű vékony ré ­
objektum kezeiő (object m anager) a k ern el által ism ert o b jek tu m o k a t kezeli. te g helyezkedik el. A z a felad ata, hogy m egfelelő in terfé szt biztosítson a végrehaj­
Id e ta rto z n a k a processzusok, a szálak (th re a d s) - vagyis a közös cím tarto m án y ú tó n ak . A valódi X P -rendszerhívásokat fogadja, és a v ég reh ajtó m ás részeit hívja
könnyűsúlyú pro cesszu so k a fájlok, a k önyvtárak, a szem aforok, a B /K eszk ö ­ ezek v ég reh ajtatásáh o z.
zök, az időzítők és m ég sok m ás. A z o b jek tu m k ezelő egy n é v te re t is kezel, m ely­ A k e rn e le n kívül v annak a felhasználói p ro g ram o k és a környezeti alrendszer
b en a lé tre h o z o tt új o b jek tu m o k h ely ez h ető k el, hogy k ésőbb hivatkozni lehessen (environm ental subsystem ). E z a rra való, hogy a felh asználói program ok le h e tő ­
rájuk. leg n e h ajtsan ak végre közvetlen ren d szerh ív áso k at (b ár technikailag m eg teh e­
A m in t a 6.31. á b rá n lá th a tó , a k ö v etk ező szint h a t fő részből áll. A B/K kezelő tik). A kö rn yezeti alren d szer eh ely e tt a felhasználói p ro g ram o k b an használható
(I/O manager) az á ltalán o s B /K szo lg áltatáso k at és a B /K eszközök kezelését vég- függvényhiváshalm azt biztosít a felhasználói p ro g ram o k szám ára. E red etileg há-
494 6. A Z o p e r á c i ó s r e n d s z e r G É P SZ IN T JE 6.4, P É L D A K o p e r á c i ó s R EN D SZ ER EK R E 495

ro m környezeti alre n d sz er létezett: a W in32 (az NT-, W indow s 2000, XP-, sőt m ég cesszusok o b jektum aihoz. M in d en o b jek tu m h o z ta rto z h a t egy biztonságleíró (se-
a W indow s 95/98 p ro g ra m o k n a k ), a P O S IX (a p o rto lt U N IX -p ro g ram o k n a k ) és curity deseriptor), am ely részletesen m egm ondja, hogy az a d o tt o b jek tu m o n ki és
az O S/2 (a p o rto lt OS/2 p ro g ra m o k n a k ). E zek közül csak a W in32 tá m o g a to tt. m ilyen típ u sú m ű v eletek et végezhet.
L étezik azonban egy új Services fó r U N IX m odul, am ely szerény U N IX -tám o g a- Szokás az X P-t n éh a o b jek tu m o rien táltn ak nevezni, mivel a k ern elobjektum ok
tást biztosít. elérése és m ódosítása csak m etó d u saik (a kezelőiken v ég reh ajto tt A PI-függvény-
A W indow s-alkalm azások a W in32 függvényeket h asználják, és a W in32 a lre n d ­ hívások) segítségével tö rtén h et. M ásrészt viszont hiányzik az ob jek tu m o rien tált
szerrel kom m u n ik áln ak a ren d szerh ív áso k vég reh ajtásáh o z. A W in32 alrendszer re n d szerek sok alapvető tulajdonsága, például az öröklődés vagy a polim orfizm us.
(Win32 subsystem ) a W in32 függvényhívásokat (lásd aláb b ) fogadja, és a rend- A W in32 A P I - kevés kivétellel - e lé rh e tő volt a W indow s 95/98-on (továbbá a
szerinterfész (system interface) könyvtári m o d u lt (valójában egy D L L fájlt, lásd fogyasztói e lek tro n ik u s eszközök o p eráció s re n d sz e re k é n t haszn ált W indow s C E-
7. fejezet) használja a szükséges valódi X P -rendszerhívások v ég reh ajtásáh o z. n). A W indow s 95/98 p éld áu l nem ta rta lm a z o tt biztonsági alren d szert, e z ért a biz­
M iután röviden á tte k in te ttü k az X P felép ítését, té rjü n k át fő té m á n k ra , az ál­ tonsággal k apcsolatos A P I-hívások a W indow s 95/98-on csupán egy visszatérési
tala n y ú jto tt szolg áltatáso k ra. E z az in terfé sz ad ja a p ro g ram o zó szám ára a re n d ­ h ib a k ő d o t p ro d u k áltak . Továbbá az X P fájlren d szere a U nicode k a rak terk észletet
szerhez való elsődleges kap cso ló d ási leh ető ség et. A M icro so ft sajn álato s m ó d o n h asználja, am ely szintén n em állt ren d elk ezésre a W indow s 95/98-ban. Bizonyos
soha nem pu b lik álta az X P -ren d szerh ív áso k teljes listáját, és k ia d á so n k é n t v álto z­ A PI-függvényhívásokat m ásk én t kell p a ra m éterezn i. A z X P-n p éld áu l a grafikus
ta t is rajtuk. Ilyen k ö rü lm én y ek k ö z ö tt közvetlen re n d szerh ív áso k at v ég reh ajtó függvényekben használt k épernyő k o o rd in á tá k 32 b ites szám ok; a W indow s 95/98
p ro g ram o k írása szinte leh etetlen . csak ezek alsó 16 b itjét haszn álta (a W indow s 3.1-gyel való visszafelé k o m p atib i­
E h ely ett a M icro so ft b ev ezette és k ö zzéte tte a W in32 API (Application Prog- litás m iatt). A W in32 A P I tö b b o p eráció s re n d szeren való elérh ető ség e m egköny-
ram m ing Interface, felhasználói programozói interfész) nevű hívások halm azát. nyíti a p ro g ram o k átvitelét, de m ég világosabban m u tatja, hogy ez a felület le van
E zek olyan könyvtári eljárások, am elyek vagy ren d szerh ív áso k at vesznek igénybe, választva a valódi rendszerhívásokról.
vagy - bizonyos e sete k b e n - m ag áb an a felhasználói m ó d b a n fu tó könyvtári eljá­
rásban végzik el fela d a tu k a t, vagy a W in32 a lren d szerb en . A stab ilitást e lő seg íten ­
d ő a W in32 A PI-h ív áso k n em v álto zn ak k iad áso n k én t. D e léte zn e k X P A P I-re n d - 6.4.2. Példák virtuális memória kezelésére
szerhívások is, ezek viszont m ó d o su lh atn ak az X P k ü lö n b ö ző k iad ásaib an . B ár a
W in32 hívások n em m ind X P -rendszerhívások is egyben, jo b b , h a a tov áb b iakb an E b b e n a szakaszban a U N IX és az X P virtuális m em ó riáját egyaránt vizsgáljuk. A
inkább ezek re k o n cen trálu n k , mivel a W in32 A P I-h ív áso k jól d o k u m e n tá lta k és p ro g ram o zó szem pontjából többnyire h aso n ló an viselkednek.
kevésbé változnak, m in t a v alódi X P-rendszerhívások. M ik o r a W indow st 64 bites
gép ek re vitték át, a M icrosoft m eg v álto ztatta a W in32 elnevezést, hogy m in d a 32,
m ind a 64 bites v álto z ato t lefedje, de a m i céljainkhoz eleg en d ő , h a a 32 bites v er­ A UN IX virtuális memóriája
ziót tekintjük.
A W in32 A P I filozófiája teljesen e lté r a U N IX -tó l. A z u tó b b ib a n az összes A U N IX m em óriam odellje egyszerű. M inden processzusnak három szegm ense
rendszerhívás publikus, és olyan m inim ális in terfé szt alkot, am elyből bárm elyik van: a kód-, az adat- és a verem szegm ens (6.32. ábra). H a a gépen csak egyetlen
hívást kihagyva csö k k en ne az o p eráció s ren d sze r fu n k cio n alitása. A W in32 filo­ lineáris cím tartom ány van, a k ó d o t általáb an a m em ória aljához közel helyezik el,
zófia: legyen az in terfé sz részletes, m in d e n re k iterjed ő , sokszor ugyanazt a dolgot ezt az a d a to k követik. A verm et a m em ó ria tetején helyezik el. A kód m érete állan-
h á ro m vagy négy m ó d o n is el leh essen érni. Legyen sok olyan függvény, am elyet
nem rendszerhívással kellen e m egvalósítani (és n em is azzal valósul m eg), p éld áu l Cím
a teljes fájlokat m ásoló A PI-hívás. OxFFFFFFFF Verem
Sok W in32 A P I-hívás valam ilyen k e rn e lo b je k tu m o t hoz létre: fájlt, p rocesszust,
szálakat, csövet stb. A k e rn e lo b je k tu m o k a t létre h o z ó m in d en hívás ered m é n y k é n t
egy kezelőt (handle) ad vissza a hívónak. A to v áb b iak b an ez a k ezelő h aszn álh a­
tó az o b jek tu m o k o n v ég zett m űveleteknél. A kezelők az általu k h iv atk o zo tt o b ­
je k tu m o t létreh o z ó p ro cesszu sra nézve specifikusak. K özvetlenül nem a d h a tó k át Adatok
és nem h aszn álh ató k m ás p ro cesszu so k b an (m in t ahogy a U N IX -fá jlleíró k at sem
Kód
leh et m ásik p rocesszu sn ak átad n i, és ab b an felh aszn áln i). B izonyos körülm ények
kö zö tt azonban a k ezelő k rő l m áso lato k k észíth etők , ezek v éd e tt m ó d o n á ta d h a tó k
további processzu so k n ak , e llen ő rzö tt h o zzáférést m egengedve szám u k ra m ás p ro ­ 6.32. ábra. UNIX-processzus címtartománya
6.4. p é l d á k o p e r á c i ó s R EN D SZ ER EK R E 497
496 6. A Z o p e r á c i ó s r e n d s z e r g é p s z i n t j e

dó, az ad até cs a verem é viszont egym ással ellen tétes irányban növekedhet. E zt a gál, a felső 2 G B a k ern el m em ó riájáh o z való (k o rláto z o tt) hozzáférést tesz le h e ­
m odellt, m elyet a Solaris is használ, szinte m in d en gépen könnyű m egvalósítani. tővé, de a W indow s S erver v álto zataib an 3 G B -o t k ap h atn a k a felhasználók és
Továbbá, ha a gép tám o g atja a lapozást, az egész c ím tarto m án y lap o z h a tó a n é l­ 1 G B -o t a k ernel. A virtuális cím tarto m án y k érésre lapozott, a lap m éret rö g zített
kül, hogy a felhasználói p ro g ram o k észrevennck. C sak azt érzékelik, hogy a g ép ­ (a P en tiu m 4-cn 4 K B -os).
ben lévő fizikai m e m ó riá n á l nagyobb m é re tű p ro g ra m o k is fu tta th a tó k . A zok a M in d en virtuális lap n ak 3 állap o ta lehet: szabad, foglalt vagy egyeztetett. A sza­
U N IX -ren d szerek , am elyek nem h aszn áln ak lapozást, általá b a n teljes p ro cesszu ­ bad lap (free page) pillanatnyilag nincs haszn álatb an , a rá való hivatkozás lap h i­
so k at cserélnek a m em ó ria és a lem ez kö zö tt. így k ép esek tetsző leg esen sok p ro ­ b át okoz. A processzus elin d u lásak o r m in d en hozzá ta rto z ó lap szabad, míg csak
cesszust időosztással fu ttatn i. a p ro g ram és a kiinduló a d a to k le nincsen ek képezve a virtuális cím tartom ányba.
A B erkeley U N lX -ra v o n atk o zó a n a fö n tiek (k éré sre lap o z o tt v irtuális m em ó ­ M ihelyst k ó d ot vagy a d a to k a t k é p eztü n k le egy lapra, a lap o t egyeztetettnek (com-
ria) lényegében m in d e n t leírnak. A System V (és a S olaris) azo n b an olyan további m itted) nevezzük. A z eg y eztetett lap o k ra való hivatkozások a virtuális m em ó riát
leh ető ség ek et is kínál, m elyekkel a felh aszn áló k kifin o m u ltab b v irtu álism em ó ria­ k ezelő h ard v er segítségével k ép ező d n ek le, és ak k o r sikeresek, ha az illető lap a
kezelést való síth atn ak m eg. A leg fo n to sab b , hogy a p ro cesszu so k fájlo k at (részben m em ó riá b an van. A z ellenkező esetb en laphiány keletkezik, az o p erációs ren d szer
vagy egészben) le k é p e z h etn e k v irtuális cím tarto m án y u k egy részére. H a p éld áu l m egkeresi cs betölti a lem ezről a k é rt lapot. A virtuális lap leh et foglalt (reserved)
egy 12 KB m é re tű fájlt a 144 K v irtuális cím től k e zd ő d ő en k ép ezü n k le, a k k o r a is, am i azt jelen ti, hogy sem m i sem k é p e zh ető le rá, am eddig a foglaltságot explicit
144 KB cím ről b eo lv aso tt szó a fájl első szavát adja. így a fájl B/K ren d szerh ív áso k m ó d o n m eg nem szüntetjük. A szabad, foglalt és eg y eztetett attrib ú tu m o k m ellett
n élkül végezhető cl. A fájlok m é re te nagyobb is le h e t a virtuális cím tarto m án y n ál, a lap o k n ak m ás tu lajdonságai is vannak, p éld áu l írh ató , olvasható vagy v ég reh ajt­
ezen segít az a lehetőség, hogy a teljes fájl helyett an n a k egy d ara b ja is le k é p e z h e­ h ató . A m em ó ria alsó és felső 64 K B -os része m indig szabad. Ezzel segítik a m u ta ­
tő. A leképezés v ég reh ajtása úgy tö rté n ik , hogy először m egnyitjuk a fájlt. E k k o r tó h ib ák fe ld erítését (a nem inicializált m u ta tó k érték e sokszor 0 v a g y -1 ).
e g y fd fájlleírót (filc d csc rip to r) k ap u n k vissza, am ely a le k ép e z en d ő fájlt azo n o sít­ M in d en e g y eztetett lap n ak egy „árn y ék lap ” felel m eg a lem ezen. Itt tároljuk, ha
ja. E zu tán a processzus v ég reh ajtja a é p p e n nincs a m em ó riáb an . A szabad és a foglalt lapo k n ak nincs ilyen árn y ék lap ­
ja, ezért a rájuk való hivatkozás lap h ib át okoz fa ren d szer nem tud m it b etölteni
paddr = mmap(virtuaLaddress, length, protection, flags, fd, file_offset) a lem ezről). A lem ezen találh ató árn y ék lap o k egy vagy több lapozófájlba vannak
összegyűjtve. Az o perációs re n d szer ta rtja szám on, hogy m elyik virtuális lap m e­
hívást, am ely a fájlból a file_offset-tő\ k ez d ő d ő en length b á jto t k ép ez le a v irtu á ­ lyik lapozófájl m elyik részére van leképezve. A (csak v ég reh ajth ató ) p ro g ram szö ­
lis cím tarto m án y Virtual_address kezd ő cím étő l kezdve. A lte rn a tív m eg o ld ásk én t a veg árn y ék lapjait a v ég reh ajth ató bináris fájl tartalm azza. A z a d a to k a t tartalm azó
flags p a ra m é te r beállításával a ren d sz ertő l k é rh e tjü k a virtuális cím m eg h a tá ro z á ­ lap o k h o z speciális lapozófájlokat használ.
sát, e n n ek é rté k é t a paddr-ban k ap ju k m eg. A protection p a ra m é te r az olvasás, az Az X P a System V -hoz h aso n ló an m egengedi fájlok közvetlen lek ép ezését a vir­
írás és a v ég reh ajtás en g ed ély ezésén ek bárm ely k o m b in áció ját tarta lm az h a tja . A tu ális cím tarto m án y rég ió ira (vagyis egym ás u tán i lap o k so ro zatára). M iután egy
leképezés k ésőb b m eg szü n teth ető az unmap rendszerhívással. fájlt lek é p e z tü n k a cím tarto m án y b a, közönséges m em óriahivatkozások kal írh a t­
T öbb processzus egy id ő b en is lek ép e zh eti u gyanazt a fájlt. A m eg o sztásra két ju k vagy olvashatjuk.
lehetőségünk van. A z elsőnél m in d en lap közös, te h á t h a az egyik processzus ír A m em ó riáb a lek é p e z e tt fájlok m egvalósítása ugyanolyan, m int a többi egyez­
valam it, azt az összes tö b b i is látja. E z a p rocesszusok közti nagy sávszélességű te te tt lapé, csak az árn y ék lap o k - a lapozófájlok helyett - leh etn ek m agukban az
k om m u n ik áció t tesz lehetővé. A m ásik m ó d szer csak addig osztja m eg a lapokat, e re d e ti fájlokban. Ez azt ered m én y ezh eti, hogy a m em ó riáb an lévő verzió e lté rh e t
m íg egyik processzus sem m ó d o sít rajtu k . M ihelyt azo n b an írni p ró b ál bárm elyik a lem ezen találh ató tó l (például, ha n em rég írtu n k a virtuális cím tartom ányba).
processzus valam elyik lap ra, lap h ián y lép fel, és az o p eráció s re n d sze r egy privát A lek ép e zés m eg szü n tetések o r vagy explicit „flush” m űvelet h atá sá ra azonban fris-
m áso lato t készít az illető p ro cesszu sn ak a m ó d o sítan d ó lapról. Ez a copy on write sítődik a lem ezen ta lá lh a tó változat.
(íráskori m ásolás) néven ism ert sém a a k k o r használatos, h a m indegyik procesz- A z X P szán dékosan m egengedi, hogy egyszerre k e ttő vagy több processzus k é ­
szusban azt az illúziói p ró b á lju k kelteni, hogy' egyedül ő k ép ezte le az a d o tt fájlt. pezze le c ím tarto m án y áb a ugyanazt a fájlt, esetleg k ü lönböző virtuális cím ekre is.
Ilyenkor a m em ó ria szavainak írása és olvasása nagy sávszélességű k o m m u n ik á­
ciót tesz lehetővé az egyes processzusok között, mivel nincsen szükség m ásolásra.
A W indows XP virtuális memóriája A z egyes pro cesszusok hozzáférési jogosultságai elté rő k leh etn ek . M ivel a m em ó ­
riá b a k é p e z ett fájlt használó m in d en processzus ugyanazokon a lapokon osztozik,
A z X P -ben m in d en felhasználói p ro cesszu sn ak saját virtuális c ím tarto m án y a van. az egyikük által v é g reh ajto tt v á lto ztatáso k at a tö b b iek azonnal látják, m ég ha a le­
A virtuális cím ek 32 bitesek, e z é rt m in d en processzus 4 G B m é re tű c ím tarto m án y t m ezen ta lálh ató változat frissítése nem is tö rté n t m eg.
használhat. A z alsó 2 G B a processzus k ó d ján ak és ad a ta in a k elh ely ezésére szol­
498 6, A Z O P E R Á C IÓ S R EN D SZ ER G É P SZ IN T JE 6.4. P ÉL D A K O P E R Á C IÓ S R EN D SZ ER EK R E 499

API-függvény Jelentése 6.4.3. Példák virtuális B/K műveletekre


VirtualAlloc Régió lefoglalása vagy egyeztetése
VlrtualFree Régió felszabadítása vagy egyeztetés megszüntetése M in d en o p erációs ren d szer lényegét a felhasználói pro g ram o k n ak nyújtott szolgál­
Virtual Protect Régió olvasási/írási/végrehajtási védelmének megváltoztatása ta tá so k jelentik. E zek leginkább a fájlok írásához és olvasásához hasonló B/K szol­
VirtualQuery Régió státusának lekérdezése g áltatáso k . M ind a U N IX , m ind az X P B /K szolgáltatások széles választékát kínál­
VirtualLock Régió memóriarezidenssé tétele (kilapozás megtiltása) ja a felhasználói pro g ram o k n ak . A legtöbb U N IX -rendszerhíváshoz találh ató vele
VirtualUnlock Régió szokásos lapozhatóságának beállítása ekvivalens X P -rendszerhívás. A fo rd íto ttja m ár n em igaz: az X P-nek sokkal több
CreateFileMapping Fájlleképezés-objektum létrehozása opcionális névadással ren d szerh ív ása van, ezek lényegesen bonyolultabbak, m int U N IX -os m egfelelőik.
MapViewOfFile Fájl (egy részének) leképezése a címtartományba
UnmapVIewOfFIle Leképezett fájl eltávolítása a címtartományból
OpenFileMapping Korábban létrehozott fájlleképezés-objektum megnyitása Virtuális B /K a U N IX -b a n

6.33. ábra. .4 Windows XP legfontosabb virtuális memóriát kezelő API-függvényei A U N IX -re n d szer n épszerűsége nagyrészt egyszerűségére v ezethető vissza, am i
viszont fá jlre n d szerén ek felépítéséből adódik. A közönséges fájlok 8 bites bájto k
A W in32 A P I szám os olyan függvényt tartalm az, m elyek a p ro cesszu so k szám á­ lin eáris so ro zatából állnak, m elyek a 0. b ájttal k ezd ő d n ek és legfeljebb 2 ’’ - 1 b á jt­
ra közvetlen m em ó riak ezelést teszn ek lehetővé. A leg fo n to sab b ilyen függvények tal fo ly tató d nak. A z o p eráció s ren d szer m aga nem ír elő sem m ilyen re k o rd stru k ­
a 6.33. áb rán láth ató k . M indegyikük a virtuális c ím tér egy vagy tö b b lapjából álló tú rá t a fájlokra, b á r az A S C II szövegfájlokat sok felhasználói program so rem elés­
folytonos m em óriarég ió k k al dolgozik. sel lezárt sorok so ro zatán ak tekinti.
A z első négy A P I-függvény je le n té se m ag átó l é rte tő d ő . A követk ező k é t függ­ M in d en m egnyitott fájlhoz tarto zik egy m u tató , am ely a fájl következőként o l­
vénnyel egy p rocesszu s néh án y la p o t a m em ó riá h o z „ d ró to z h a t”, hogy azok soha v asan d ó vagy íran d ó b ájtjá ra m u tat. A read és a write rendszerhívás az adatok olva­
ne lap o zódjanak ki, illetve m eg szü n te th e ti ezt a tu lajd o n ság o t. P éld áu l valós ide- sását, illetve írását a m u ta tó által je lz e tt fájlpozíciónál kezdi. A m űvelet befejezése
jii p ro g ram n ak le h e t e rre szüksége. C sak a re n d s ze rad m in isz tráto r által fu tta to tt u tá n m in d k ettő az átvitt b ájto k szám ának m egfelelő m ennyiséggel állítja előbbre a
prog ram o k rö g z íth etn ek le lap o k a t a m em ó riáb an . A z o p eráció s re n d sz er által m u ta tó t. D e leh ető ség ü n k van fájlok véletlen e lérésére is, ha a fájlm u tató t közvet­
em elt k o rlát m ég az ilyen p ro cesszu so k tú lz o tt m o h ó ság án ak is g á ta t vet. B ár a len ü l állítjuk be a m egfelelő érték re.
6.33. áb rán n em tü n te ttü k föl, az X P -nek van n ak olyan A P I-függvényei is, m elyek­ A közönséges fájlokon túl a U N IX tám o g atja a B /K eszközök elérésére szolgáló
kel egy processzus h o z zá fé rh e t egy m ásik processzus virtuális m e m ó riá já h o z (p é l­ speciális fájlokat is. A tipikus m egoldás, hogy m in den B /K eszközhöz tartozik egy
dául, am elyikhez kezelővel ren d elk ezik ), és ezáltal vezérelh eti. vagy tö b b speciális fájl. A speciális fájlokon v ég reh ajto tt olvasási és írási m űvele­
A z u to lsó négy A P I-függvény a m e m ó riá b a le k é p e z e tt fájlok kezelésére szolgál. tek k el tu d n a k a p ro g ram o k az a d o tt B /K eszközről olvasni vagy ráírni. így kezelik
A leképezéshez elő szö r a CreateFileMapping hívásával egy „fájllek ép ezés-o b jek tu - a lem ezek et, n y o m tató k at, te rm in álo k at és m ég sok m ás eszközt.
m o t” kell létreh o zn i. A függvényhívás visszaadja az o b jek tu m k ezelő jét és (o p cio ­ A fájlre n d szerrel kapcsolatos legfontosabb U N IX -rendszerhívásokat a 6.34.
nálisan ) n evet is ad n ek i a fájlre n d szerb en , hogy m ás processzus is használhassa. áb rá n so ro ltu k fel. A creat hívás {e nélkül!) új fájl létreh o zására használható.
A következő k ét függvény fájlt k é p e z le, illetve le k ép ezést szü n tet m eg. A z u to lsó ­
val egy processzus egy m ásik processzus által m á r lek é p e z e tt fájl le k ép e zését tu d ­ Rendszerhívás Jelentése
ja m egvalósítani. Ezzel k é t vagy tö b b processzus m eg o szth atja c ím tarto m án y án ak Fájl létrehozása, mode adja meg a védelmi módot
creat(name, mode)
régióit.
unlink(name) Fájl törlése (feltéve, hogy csak 1 rá vonatkozó kötés volt)
E zek az alapv ető A P I-függvények, ráju k épül a m e m ó riak ezelő re n d sz er to ­
open(name, mode) Fájl létrehozása vagy megnyitása, és fájlleíró visszaadása
vábbi része. V annak p éld áu l olyan A P I-függvények is, am elyek egy vagy tö b b h a ­
close(fd) Fájl lezárása
lom ba (h eap ) a d a ts tru k tú rá k a t h o zn ak lé tre vagy szü n tetn e k m eg. A h alm o k at read(fd, buffer, count) count bájt beolvasása a bufferbe
dinam ikusan lé tre h o z o tt és felsz a b a d íto tt a d a ts tru k tú rá k tá ro lá sá ra használják.
Viírite(fd, buffer, count) count bájt kiírása a bufferból
A h alm okban n em végeznek szem étgyűjtést, te h á t a felhaszn áló i szoftver fe la d a ­
lseek(fd, offset, w) A fájlmutató beállítása offset és w alapján
ta a tö b b é m ár n em h aszn ált m em ó riab lo k k o k felszab ad ítása (szem étgyűjtésen a stat(name, buffer) A fájlra vonatkozó információk lekérdezése
tö b b é m ár n em h aszn ált a d a ts tru k tú rá k n a k az o p eráció s re n d szer általi a u to m a ­ chmod(name. mode) A fájl védelmi módjának megváltoztatása
tikus eltávolítását é rtjü k ). A z X P -ben a h alm ok kezelése h aso n lít a U N IX -re n d -
fcntl(fd, cmd,..,) Különböző műveletek (például zárolás) végzése a fájlon
szcrekből ism erős m alloc függvény m ű k ö d éséh ez; kivéve azt az eltérést, hogy tö b b
egym ástól függetlenül kezelt h alo m is létezh et. 6.34. ábra.yA fájlrendszerre vonatkozó legfontosabb UNIX-rendszerhivások
500 6. A Z O P E R Á C IÓ S R EN D SZ ER G É P SZ IN T JE 6.4. P é l d á k o p e r á c i ó s r e n d s z e r e k r e 501

Szigorúan véve m á r n em is len n e rá szükség, mivel az open is létre tu d hozni új fáj­ az o u tp u t fájlba helyezi. A ciklus addig folytatódik, am íg az input fájl végére nem
lokat. A z unlínk hívás tö rli a fájlt, feltéve, hogy csak egy k ö n y v tárb an fo rd u lt elő. é rü n k , am ikor is a ciklust befejezzük, és m in d k ét fájlt lezárjuk.
A z open-nel m eglévő fájlo k at n y ith atu n k m eg (vagy ú jak a t h o z h a tu n k létre). A U N IX fájlleírói kicsi (általáb an 20 alatti) egész szám ok. A 0. 1 és 2 speciális
A mode opció a m egnyitás m ó d ját h a tá ro z z a m eg (olvasásra, írásra stb.). A hívás fájlleíró k re n d re a szabványos bem eneti csatornának (standard input), a szabvá­
egy kis egész szám ot, ún. fájlle író t (file d e sc rip to r) ad vissza. A későbbi hívások
ezzel azo n o síth a tjá k a fájlt. A m ik o r m á r nincs szükségünk a fájlra, a ciose hívásával Gyökérkönyvtár
szabadítjuk fel a fájlleírót.
A read és a write végzi a fájlokon a tényleges B/K-t. M in d k ettő h ö z m eg kell adni
a h aszn álan d ó fájlra v o n atk o zó fájlleíró t, a ki- vagy b em e n ő a d a to k a t tartalm azó
p u ffért és az átv ien d ő b ájto k szám át. A z lseek-et a v életlen fájlelérésh ez szükséges
fájlm u tató p o zicio n álására használjuk.
A stat a fájlra v o n atk o zó in fo rm ác ió t ad vissza: m é re té t, utolsó e lé ré sén e k id ő ­
p o n tját, tu lajd o n o sá t és m ég sok m ást. A chmod a fájlvédelem m ó d ját válto ztatja,
péld áu l a tu lajd o n o sátó l k ü lö n b ö ző felh aszn áló k n ak m egtiltva vagy m egengedve
a fájl olvasását. V égül az fenti kü lö n féle m ű v eletek et h ajt v égre a fájlon, péld áu l a
záro lást vagy a n n a k felo ld ását.
A 6.35. á b ra a leg fo n to sab b fájl B /K hívások m ű k ö d é sé t illusztrálja. E z csak m i­
nim ális kód, nem tarta lm a z za a szükséges h ib a e lle n ő rz é se k e t sem. A ciklus k e z d e ­
te elő tt a pro g ram m egnyitja a létező datci nevű fájlt és lé treh o zza a n e w /n e v ű új
fájlt. A hívások az infd, illetve az o u lfd nevű fá jlleíró k at ad ják vissza. A k ét hívás
m ásodik p a ra m é te re a véd elm i b ite k e t ad ja m eg, m elyek szerin t a fájlo k at olvasni,
illetve írni akarju k . M in d k ét hívás fájlleíró t ad vissza. H a sik ertelen az open vagy a
creat, negatív fájlleíró t k ap u n k , am i a hívás sik erte le n ség é t m u tatja.

// Fájlleírók megnyitása
infd = open("data", 0);
outfd = creatC'newf" ProtectionBits) ;

// Másolási ciklus
do {
count = read(infd, buffer, bytes);
if (count > 0) write(outfd, buffer, count);
} while (count > 0);

// A fájlok lezárása
close(infd);
close(outfd);

6.35. ábra. Fájlok másolása UNIX-rendszerhívásokkal. A programrészlet C nyelvű, mivel a Java


elrejti az alacsony szintű rendszerhívásokat, mi meg éppen azokat akarjuk megmutatni

A read hívásnak h á ro m p a ra m é te re van: a fájlleíró, a p u ffe r és a b ájto k szám a.


A hívás a k ívánt szám ú b á jto t p ró b á lja beolvasni a m e g ad o tt fájlból. A ténylegesen
beo lv aso tt b ájto k szám át a co u n t v álto zó b an ad ja vissza. H a a fájl túl rövid volt,
c o w it érté k e leh e t bytes-x\éi\ kisebb is. A write hívás az ú jo n n a n b eolv aso tt b ájto k a t
6.36. ábra. Egy tipikus UNIX-könyvtárrendszer része
502 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P S Z IN T JE 6.4. P ÉL D Á K O P E R Á C IÓ S R E N D SZ ER EK R E 503

nyos kim eneti csatornának (standard output) és a szabványos hibacsatornának v etk ező h áro m hívás könyvtári bejegyzések olvasására szolgál. A z első m egnyitja
(standard error) feleln ek m eg. N o rm ális e se te k b e n ezek a b illen ty ű zetet, a k é p e r­ a k ö nyvtárat, a m ásodik bejegyzéseket olvas belőle, a h arm ad ik pedig bezárja.
nyőt és ú jfen t a k ép e rn y ő t jele n tik , de a felh aszn áló fájlokba is átirán y íth atja. Sok A chdir a m u nk ak ö n y v tárat v álto ztatja m eg.
U N IX -p ro g ram b e m e n e té t a sta n d a rd b e m e n e trő l olvassa, a feld o lg o zo tt k im en e ­ A link új könyvtári bejegyzést készít, am ely egy létező fájlra m u tat. A lusrljiinl
te t p ed ig a sta n d a rd k im en e tre írja ki. A z ilyen p ro g ra m o k a t gyakran szűrőknek jo tto bejegyzés k é szü lh etett volna p éld áu l a
(filters) nevezik.
Iink(7usr/ast/bin/game3", 7usr/jim/jotto")
A fájlren d szerh ez szorosan k apcsolódik a k ö n y v tárren d szer. M in d en felh asz­
n áló n ak leh et tö b b könyvtára, ezek ta rta lm a z h a tn a k további fájlo k at és alkönyv­
tá rak at. A U N IX -re n d sz e re k e t általáb an a 6.36. á b rá n lá th a tó m ó d o n egy gyökér­ hívással, vagy egy relatív ú tv o n aln ev ek et tartalm azó ekvivalens hívással attól füg­
könyvtár (root directory) nevű fő k ö n y v tárral és a b en n e elh elyezk ed ő k övetkező gően, hogy é p p en m i volt a hívást v ég reh ajtó p ro g ram m unkakönyvtára. A z unlink
alkönyvtárakkal konfigurálják: biti (a gyakran v é g re h ajto tt p ro g ra m o k n ak ), dev (a k itö rö l egy könyvtári bejegyzést. H a a fájlra csak egy k ö tés hivatkozott, m aga a
speciális B /K eszközfájloknak), lib (a k ö n y v tárak n ak ) és usr (a felh aszn áló i könyv­ fájl is törlő d ik. H a k e ttő vagy tö b b hivatkozása volt, akkor m eg m arad . N em szá­
tá rak n ak ). A z áb rá n az usr könyvtár k ét alk ö n y v tárát ta rta lm a z a st és jim szám ára. m ít, hogy az eltáv o líto tt k ö tés az e re d e ti vagy későbbi m ásolat. H a egyszer lé tre ­
A z ast k ö nyvtárb an k ét fájl, data és fo o .c, to v áb b á a négy já té k o t ta rta lm a z ó bin h o zu n k egy k ö tést, az ered etiv el egyenjogú, tőle m eg k ü lö n b ö zteth etetlen példányt
alkönyvtár találh ató . k ap u n k . A z
A fájlok m eg n e v e zh e te k a g y ö kérkönyvtártól hozzájuk v ezető útvonalnév­
unlink(7usr/ast/bin/game3")
vel (path). A z űtv o n aln év a g yökértől a fájlig v e zető ü t m e n té n ta lá lh a tó összes
könyvtár listájából áll, m elyben a k ö n y v tárak at p e rv o n alak (/) v álasztják el. A gyö­
kérn él k ezd ő d ő ú tv o n alak neve abszolút útvonalnév (absolute path). A g a m é i fájl hívás u tá n a gam e3 csak a lusrljim ljotto útvonalnévvel é rh e tő el. A link és az un­
abszolút útvonaln ev e p é ld áu l lusriastibinigam el. link eb b e n az érte le m b e n a rra is felh aszn álh ató , hogy fájlokat „m ozgassunk” egyik
M inden fu tó p ro g ra m h o z m in d en id ő p illa n a tb a n egy m e g h a tá ro z o tt m unka­ könyvtárból a m ásikba.
könyvtár (working directory) tarto zik . A z ú tv o n aln ev ek le h e tn e k a m u n kakönyv­ M in d en fájlhoz (és könyvtárhoz, hiszen ezek is fájlok) tarto zik egy bittérk ép ,
tá rra nézve relatívak, ek k o r az abszo lú t ú tv o n aln ev ek tő l való m eg k ü lö n b ö ztetés am ely azt m o n d ja m eg, hogy ki fé rh e t hozzá fájlhoz. A jogosultságok h á ro m RW X
végett n em a / jellel kezd jü k ő k et. A z ilyen ú tv o n aln ev ek et relatív útvonalnevek­ m ező b e n állnak, az első a tu lajd o n o s olvasási (R ead ), írási (W rite) és végrehajtási
nek (relative path) hívjuk. H a a m u n k ak ö n y v tár lusriast, a kk o r gam eS a bitilgameS (e X ec u te ) jo gait szabályozza, a m áso d ik a tulajdonossal azonos cso p o rtb a tarto zó
útvonalnévvel é rh e tő el. A link rendszerhívással a felh aszn áló k m ás fájlo k ra m u ­ tö b b i felh asználóét, a h arm ad ik pedig m in d en k i m ásét. Az R W X R-X - X m ezők
ta tó kötéseket (link) h o z h atn a k létre . Az előző p é ld á n á l m arad v a a lusriastibinl te h á t azt jelen tik , hogy a tu lajd o n o s írhatja, olvashatja és végre is h a jth a tja a fájlt
gam eS és a lusrljim ljotto útvonalnévvel u gyanazt a fájlt érjü k el. T ilosak a könyv­ (am i ezek szerin t nyilván v é g reh ajth ató p rogram , k ü lö n b en nem lenne beállítva
tá ra k ra v o n atk o zó k ö tések , nehogy ciklusokat k ap ju n k a k ö n y v tárren d szerb en . az X jog ), m íg a vele azonos cso p o rtb an lévők csak olvashatják vagy v é g re h a jth a t­
A create és a töb b i ren d szerh ív ás a rg u m e n tu m a k é n t abszo lú t vagy relatív ú tv o n a l­ ják , az ideg en ek pedig csupán v ég reh ajth atják . Ilyen b eállításo k m ellett idegenek
nevek szerep elh etn ek . is h a szn álh atják a p ro g ram o t, de ellopni (lem ásolni) nem tudják, mivel nincsen rá
A U N IX legfo n to sab b k ö n yvtárkezelő re n d szerh ív ásait a 6.37. á b rá n lá th a t­ olvasási joguk. A felhasználók cso p o rto k b a so ro lását a rendszeradm inisztrátor
juk. A mkdir új k ö n y v tárat hoz létre , az rmdir létező (ü res) k ö n y v tárat tö rö l. A kö- (superuser) végzi. A re n d s z erad m in isztráto r á th ág h a tja ezeket a védelm i m ec h a ­
nizm usokat, m in d en fájlt olvashat, írh at vagy végrehajthat.
V izsgáljuk m eg röviden a fájlok és a könyvtárak m egvalósítását U N IX -ban. A
Rendszerhívás Jelentése
té m a részleteseb b tárgyalását tartalm azza (V ahalia, 1996). M inden fájlhoz (és
mkdir(name, mode) Új könyvtár létrehozása
könyvtárhoz, mivel a könyvtár is fájl), tarto zik egy i-csom ópontnak (i-node) neve­
rmdir(name, mode) Üres könyvtár törlése
zett, 64 b ájto s inform ációs blokk. A z i-csom ópont m eg m ondja a fájl tu lajd o n o sát,
opendir(name) Könyvtár megnyitása olvasásra
a jogosu ltságait, hogy hol találh ató k a h ozzá ta rto z ó a d a to k stb. A z egyes lem e­
readdir(dirpointer) Könyvtár következő bejegyzésének olvasása
zek en talá lh a tó fájlok i-csom ópontjai sorszám uk szerint rendezve a lem ez elején
closedir(dirpointer) Könyvtár bezárása
találh ató k , vagy - cilin d ercso p o rto k ra o szto tt (p artic io n ált) lem ezek esetén - az
chdir(name) A munkakönyvtár name-re változtatása
egyes cilin d ercso p o rto k elején. T ehát a d o tt sorszám ú i-cso m ó p o n to l a U N IX -
Iink(name1, name2) A nameUre mutató name2 könyvtári bejegyzés létrehozása
re n d sz er könnyen m eg tud találn i lem ezeim ének kiszám ításával.
unlink(name) name eltávolítása könyvtárából
A könyvtári bejegyzések k ét részből állnak, egy fájlnévből cs egy i - c s o m ó p o n t
6.37. ábra. A legfontosabb könyvtárkezelő UNIX-rendszerhívások
szám ából. A m ik o r a pro g ram az
6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.4. P ÉL D Á K O P E R Á C IÓ S R EN D SZ ER EK R E 505
504

open("foo.c", 0) és h á ro m szo ro san indirekt cím et felhasználva legfeljebb 16 843 018 blokk cím ez­
h e tő m eg, am iből a fájlok m axim ális m éretére a 17 247 250 432 bájtos elm életi fel­
hívást hajtja végre, a re n d sz e r a m u n k ak ö n y v tárb an m egkeresi a „fo o .c” fájlnevei, ső k o rlát adódik. M ivel a fájlm utatók csak 32 bitesek lehetnek, a gyakorlati felső
hogy m eg h atáro zza a hozzá ta rto z ó i-cso m ó p o n t so rszám át. H a m eg találta, be k o rlát v alójában 4 294 967 295 bájt. A szabad lem ezblokkokat láncolt listára fűzi
tu d ja olvasni az i-eso m ó p o n to t, am ely m in d en t elm o n d a fájlról. a ren d szer. H a új b lokkra van szükség, a soron következőt veszi le. E m iatt a fájlok
H osszabb elérési ü tv o n aln ev et m eg ad v a az előző lép ések ism étlő d n ek n é h á n y ­ blokkjai véletlenszerűen szóródnak szét a lem ezen.
szor, m íg a teljes ú tv o n aln ev et végig n em nézi a ren d szer. A lusriastidata-hoz ta r ­ A lem ez B/K hatékonyságának fokozására a fájl i-esom ópontja a m egnyitás után
tozó i-csom ópont sorszám m eg k eresése p éld áu l úgy zajlik, hogy elő szö r a gy ö k ér­ b em áso lö d ik a m em ó riáb an tá ro lt táblázatba, és a gyorsabb elérhetőség m iatt olt
könyvtárban k eres a re n d sz e r egy usr bejegyzést. M iu tán m eg ta lá lta az iisr i-cso- is m arad , am íg a fájl m eg van nyitva. E m ellett a ren d szer a m em óriában tárolja a
m ó p o n tját, tu d ja olvasni a fájlt (a U N lX -b a n a könyvtár is fájl). E b b e n a fájlban m o sta n á b a n hivatkozott lem ezblokkok gyűjtem ényét is. Mivel a legtöbb fájlt szek­
ast bejegyzést keres, vagyis a lusrlast fájlhoz ta rto z ó i-cso m ó p o n t so rszám át h a tá ­ venciálisán olvassuk, gyakran előfordul, hogy a fájlra való hivatkozás ugyanazt a
rozza m eg. A lusrlast elolvasásával a re n d sz e r m eg tu d ja találn i a data bejegyzést, lem ez b lo k k o t kéri, m int az előző. E zt az effektust felerősítendő, a rendszer előre
ezzel p ed ig a lusriastidata i-cso m ó p o n t so rszám át. H a a d o tt a fájl i-csom ópontjá- m eg p ró b álja beolvasni a következő blokkot, m eg m ielőtt hivatkoznánk rá, ezzel is
n ak sorszám a, az i-csom ópontból m in d e n t m e g tu d h a t az a d o tt fájlról. gyorsítva a feldolgozást. M indez az optim alizáció a felhasználók elől rejtve zajlik.
A z i-csom ópontok e lren d ezése, ta rta lm a és fo rm á tu m a ren d sz e rrő l ren d sz e rre H a a felhasználó read hívást ad ki, a program várakozik, míg a kért ad ato k a t meg
változik (különö sen , ha h áló zato s ren d sz e rrő l van szó), de az alábbi bejegyzések n em k ap ja a pufferben.
általáb an m indig m eg ta lá lh a tó k az i-cso m ó p o n to k b an : Ezzel a háttér-inform ációval fölfegyverkezve m ost m ár m egnézhetjük, hogyan is
zajlik a fájl B/K. A z open h a tására a ren d szer a m egadott útvonalnév m enti könyv­
1. A fájl típusa, a 9 RW X jo g osultsági bit és n éh án y m ás bit. tá ra k b a n keres. H a a keresés sikeres volt, az i-csom ópontot belső táblázatában h e ­
2. A fájlra hivatkozó k ö tések szám a (vagyis a rá v o n atk o zó könyvtári bejegyzések lyezi el. A read és a write hívások e setén a rendszernek az aktuális fájlpozídóból ki
szám a). kell szám ítania a blokkszám ot. A z első 10 blokk cím e m indig a m em óriában van
3. A tu lajd o n o s szem élye, (az i-cso m ó p o n tb an ), a m agasabb sorszám ú blokkok elérése elősz(ir egy vagy több
4. A tu lajd o n o s csoportja. in d irek t blokk beolvasását igényli. A z lseek csak a fájlm utató aktuális érték ét vál­
5. A fájl b ájto k b an m ért hossza. to zta tja anélkül, hogy bárm ilyen tényleges B/K-t végezne.
6. 13 lem ezeim . M ost m á r könnyű a link-et és az unlink-et is m egérteni. A link első arg u m en ­
7. A fájl utolsó o lvasásának ideje. tu m a alap ján m egkeresi a m egfelelő i-csom ópont sorszám ot. A zután a m ásodik
8. A fájl utolsó írásán ak ideje. arg u m en tu m szám ára új könyvtári bejegyzést készít, am elyben az első fájl i-cso-
9. A z i-csom ópo n t u to lsó m ó d o sításán ak ideje. m ó p o n tjá n ak szám át helyezi el. V égül eggyel m egnöveli az i-csom ópontban a
hivatkozások szám át. A z unlink eltávolítja a könyvtári bejegyzést és csökkenti az
A fájl típusánál m eg k ü lö n b ö z tetü n k közönséges fájlokat, k ö n y v tárak at és k é t sp e­ i-cso m ó p on tban tá ro lt hivatkozási szám ot. H a ez a szám 0, a fájlt is kitörli, annak
ciális fájltípust, m elyek a b lo k k stru k tú rájú , illetve a stru k tu rá la tla n B/K eszközök­ m in d en blokkja visszakerül a szabad listára.
n ek feleln ek m eg. A k ö té se k szám át és a tu lajd o n o s a zo n o sításá t m á r tárgyaltuk.
A fájl hossza 32 bites egész, a fájl legnagyobb sorszám ú, m ár é rték k el re n d e lk e ­
ző b ájtját adja m eg. M e g en g e d ett dolog egy új fájl létreh o zása, az lseek-kel az Virtuális B/K a W indows XP-n
1000000-ra pozicionálása, és o d a 1 b ájt b eírása. E zzel 1000001 bájt hosszúságú
fájlt k apunk. A fájl összes „hiányzó” b á jtján ak n em kell tá rte rü le te t lefoglalni. Az X P tö b b fájlrendszert is tám ogat, közülük a legfontosabb az NTFS (NT Filc
A z első tíz lem ezeim a d a tb lo k k o k ra m u tat. 1024 b ájto s b lo k k m c re t e se té n leg­ System) és a FAT (Filc Allocation Table) fájlrendszer. A z első új, speciálisan az
feljebb 10 240 b ájt m é re tű fájlok k e zelh ető k ilyen m ó d o n . A 11. cím egy indirekt NT-re k ifejlesztett fájlrendszer, a m ásodik a régi M S-D O S fájlrendszer (csupán
b lokknak nevezett, 256 lem ezeim et tartalm azó b lo k k ra m u tat. Ezzel a 10 240 -I- hosszabb fájlnevekkel kiegészített form ában), am elyet a W indows 95/98-on is
256 X 1024 = 272 384 m é re t alatti fájlo k at tu d ju k kezelni. A m ég nagyobb fáj­ haszn áltak . M ivel a FAT fájlrendszer alapjaiban idejétm últ, az N TFS-t fogjuk ta ­
lokhoz felhasználh atju k a 12. cím et, am ely 256 in d ire k t blo k k cím ét tarta lm a zó nulm ányozni a továbbiakban.
b lo k k ra m u tat. E zzel m á r 272 384 -I- 256 x 256 x 1024 = 67 381 248 bájto s fájlo k ­ A z N T FS-fájlnevck hosszúsága legfeljebb 255 k arak ter lehet. A fájlnevek
kal is elboldogulunk. H a ez a kétszeresen indirekt blokkokat h aszn áló sém a sem U n ico d e kód olásúak, ez lehetővé teszi, hogy a nem latin áb écét használó o r s z á g o k
elegendő, a 13. cím olyan liárom szorosaii indirekt b lo k k ra m u tat, am ely 256 k é t­ (p éld áu l Jap án . India vagy Izrael) felhasználói is anyanyelvükön adják meg a fájl­
szeresen indirekt blo k k cím ét ad ja m eg. A z összes d irck t, egyszeresen, k étszeresen neveket. (V alójában az X P belül m in d en ü tt U nicode-ot használ. A W indows 2000-
506 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.4. P ÉL D A K o p e r á c i ó s R E N D SZ ER EK R E 507

rel kezd ő d ő verziókból egyetlen b in áris v álto zat készül, am ely m égis h a sz n á lh a ­ 6. A z archiválásra, tö m ö rítésre stb. v o natkozó jelzők.
tó m in d en országban, és m indig a helyi nyelvet használja, m ivel az összes m en ü t, 7. A n n a k a fájlnak kezelője, am elynek a ttrib ú tu m a it „kló n o zn i” akarju k a m ostani
h ib aü ze n etet stb. országfüggő konfigurációs fájlokban táro lják .) A z N T F S tá m o ­ fájl lé treh o zásak o r.
g atja a kis- és a n ag y b etű k m eg k ü lö n b ö zte té sé t (te h á t fo o és F O O m ást je len t).
Sajnos a W in32 A P I a fájlnevek e se té b e n n em teljesen , k önyvtárnevek e setén m eg A 6.38. áb rán lá th a tó következő h at A PI-függvény eléggé hasonlít a m egfelelő
egyáltalán n em tá m o g a tja a m eg k ü lö n b ö ztetést. E z é rt a W in32-t h aszn áló p ro g ra ­ U N IX -re n d szerh ív áso k ra. A z utolsó kettővel fájlok régiói záro lh ato k , illetve sza­
m ok esetén elveszítjük ezt az előnyt. b a d íth a to k fel. E zekkel való síth ató m eg a processzusok g a ra n tá lt kölcsönös kizá­
A U N IX -h o z h aso n ló an a fájl b ájto k so ro zata, b á r a m axim ális hossz 2*’'* - 1 is ráso n alap u ló hozzáférése.
lehet. L étezn ek fájlm u tató k is, m in t a U N IX -b an , de n em 32, h a n e m 64 bitesek, A z A PI-függvények segítségével a 6.35. áb rán láth ató U N IX -v álto zattal a n a ­
hogy a m axim ális m é re tű fájlo k at is k ezelni tu d ják . A fájl- és a k ö nyvtárkezelő lóg fájlm ásoló eljárás írh ató . E zt m u ta tja a 6.39. á b ra (a h ib aellen ő rzések et m ost
W in32 A PI-függvényhívások nagyjából h aso n lítan ak a U N IX -o s m egfelelőikre, is elhagytuk). Ú gy p ró b á ltu k m egtervezni, hogy a 6.35. áb rán láth ató szerk ezetet
de legtöbbjüknek tö b b p a ra m é te re van, és m ás b iztonsági m o d ellen alap u ln ak . u tán o zz a. A g y akorlatban nincs szükség ilyen p ro g ram ra, hiszen létezik a CopyFile
A fájl m egnyitása (fájl)k ezelő t a d vissza, ezt haszn álju k a fájlból való olvasásra A P I-függvény (am i könyvtári függvényként az itten i p ro g ram h o z hasonló d o lgo­
vagy írásra. A U N IX -tó l e lté rő e n a k ezelők n em kis egész szám ok, és általáb an k at h a jt végre).
nincsen elő re definiált, a 0, 1 és 2-höz k ap cso ló d ó sta n d a rd b e m e n e t, k im e n e t és A z X P a U N IX -h o z haso n ló hierarchikus felépítésű fájlren d szert tám ogat.
hiba. E zek et n ek ü n k kell b eállítan i (kivéve a k o n zo lm ó d o t, am elyben m ár elő re A k o m p o n e n sek közti elválasztójel azo n b an nem a /, h an em a \ (egy M S-D O S
m egnyitva ren d e lk e z é sü n k re állnak). A W in32 A P I leg fo n to sab b fájlkezelő függ­ ő skövület). L étezik a m unkak ö n y v tár fogalm a, az elérési ú tvonalnevek leh etn ek
vényeit a 6.38. áb rá n so ro ltu k fel. a b szo lú tak vagy relatívak. L ényeges e lté ré s azonban, hogy a U N IX m egengedi a
k ü lö n b ö ző lem ezek en és gép ek en talá lh a tó fájlren d szerek felcsato lását egyetlen
API-függvény UNIX Jelentése k ö nyvtárfába, és ezzel elrejti a lem ez szerk ezetét az összes p ro g ram elől. A z N T
CreateFile open Fájl létrehozása vagy létező fájl megnyitása, kezelőt ad vissza 4.0-nak nincs m eg ez a tulajdonsága, e z ért az abszolút elérési útvonalneveknek a
DeleteFile unlink Létező fájl törlése logikai lem ezegység b etűjelével kell kezdődni, péld áu l így: C:\windows\system\foo.
CIoseHandle ciose Fájl lezárása dll. A W indow s 2000 verziótól kezdve h aszn álh ató a fájlren d szerek U N IX -stílusú
ReadFile read Adatok olvasása fájlból felcsato lása is.
WrIteFile Write Adatok írása fájlba A 6.40. á b rán ism ét a legközelebbi U N IX -m egfelelőjükkel együtt so roltuk fel a
SetFilePointer lseek A fájlmutató beállítása leg fo n to sab b könyvtárkezelő A P I-függvényeket. A függvények rem élh ető leg m a ­
GetFIleAttributes stat A fájl tulajdonságainak lekérdezése guktól é rte tő d ő k .
LockFlle fenti A fájl bizonyos részeinek zárolása a kölcsönös kizárás biztosításához
UnlockFile fenti A fájl korábban zárolt régiójának felszabadítása // Fájlok megnyitása olvasásra és írásra
inhandle = CreateFlleC'data", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
6.38. ábra. A Win32 API fájl B/K-hoz kapcsolódó legfontosabb függvényei. A második oszlop outhandle = CreateFile("newf", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
a hozzájuk leginkább hasonló UNIX-rendszerhfvást tartalmazza FILE_ATTRIBUTE_NORMAL, NULL);

// A fájl másolása
V izsgáljuk m eg röviden az egyes hívásokat. A CreateFile új fájl létre h o z ására
do {
h asználható, kezelő t ad vissza. E zt az A P I-függvényt alkalm azzuk létező fájlok s = ReadFilednhandle, buffer, BUF.SIZE, &count, NULL);
m egn yitására is, m ivel nincs open A PI-függvény. A z X P A P I-függvényhívások p a ­ if (s >0 8í& count > 0) WriteFlle(outhandle, buffer, count, &count, NULL);
ra m é te re it a z ért n em so ro ltu k fel, m e rt túl sok van belőlük. P éldául a CreateFile a } while (s > 0 && count > 0);
következő h é t p a ra m é te rre l hívandó:
//A fájlok lezárása
1. A lé treh o zan d ó vagy m eg n y itan d ó fájl n ev ére h ivatkozó m u tató . CloseHandle(inhandle);
2. Jelzők (fiags), m elyek azt m u tatják , hogy a fájl olvasható, írh a tó vagy m indkettő. CloseHandle(outhandle);
3. Jelzők, m elyek azt m u tatják , hogy a fájl m eg n y ith ató -e egyszerre tö b b procesz-
szus által. 6.39. ábra. /A Windows XP API-függvényeivel megírt fájlmásoló programrészlet. A C nyelvet
4. A b izto n ság leíró ra hivatkozó m u tató . használtuk, mivel a Java elrejti az alacsony szintű rendszerhívásokat, mi meg éppen
5. Jelzők, m elyek azt m u tatják , hogy mi a te e n d ő , h a a fájl létezik /n em létezik. azokat akarjuk megmutatni
6.4, P ÉL D Á K O P E R Á C IÓ S R E N D S Z E R E K R E 509
508 6. A Z o p e r á c i ó s r e n d s z e r G É P SZ IN T JE

A k ö tet legfontosabb ad a tstru k tú rá ja a m esterfájltáb la (M F T ) (M a ste r File


API-fügqvény UNIX Jelentése
Table, M F T ), am ely a k ö tet m inden fájljáról és könyvtáráról tartalm az egy bejegy­
CreatePirectory mkdlr Új könyvtár létrehozása
zést. E zek a U N IX i-csom ópontjaival analó g szerep et játszan ak . A z MI T m aga is
RemoveDirectory rmdlr Üres könyvtár törlése
fájl, s m int ilyen, a k ö teten belül b árhol elhelyezhető. Ezzel m eg szab ad u lh atu n k
FindFirstFile opendir Inicializálás könyvtárelemek olvasásának megkezdéséhez
az olyan U N IX -ra jellem ző p ro b lém ák tó l, m int az i-cso m ó p o n to k táb láján ak kö ­
FIndNextFile readdir A következő könyvtári bejegyzés olvasása
zep é n k e le tk ező lem ezhibák.
MoveFile Fájl mozgatása egyik könyvtárból a másikba
A z M F T a 6.41. áb rán láth ató . A k ö te trő l szóló in fo rm áció k at ta rtalm azó fej­
SetCurrentDirectory chdir A munkakönyvtár megváltoztatása
léccel kezdődik; a gyökérkönyvtár(ra m u ta tó p o in te r), a b o o t fájl, a hibás b lo k k o ­
6.40. ábra. /Alegfontosabb könyvtárkezelő Win32 API-függvények. A második oszlopban k a t ta rta lm a z ó fájl, a szabad lista adm inisztrációja stb. E zu tán a fájlonkénti. illet­
a hozzájuk legközelebb álló UNIX-rendszerhivás áll (ha van ilyen) ve k ö n y v táran k én ti bejegyzések következnek. M é re tü k 1 KB (ha a klaszterm éret
n em nagyobb vagy egyenlő, m int 2 KB). A bejegyzés tartalm azza a fájlra, illetve a
A z X P-nek a legtöbb U N IX -n ál lényegesen b o n y o lu ltab b biztonsági m ec h a ­ k ö n y v tárra vonatkozó összes m e ta a d a to t (adm inisztratív inform ációt). T öbb fo r­
nizm usa van. B ár tö b b száz, a biztonsággal k ap cso lato s A P I-függvény létezik, az m á tu m is m eg en g e d ett, egyikük a 6.4L áb rán látható.
alapclvek m e g é rth e tő k a k övetkező rövid leírásból. A m ik o r a felhasználó b e je ­
lentkezik, kezdeti p ro cesszu sa az o p eráció s re n d szertő l egy hozzáférést vezérlő
jelet (access tokén) kap. A vezérlő jel tartalm azza a felhasználó S ID -jét (Security
Standard MS-DOS Biztonsági
ID, biztonsági azonosító), ez írja le, hogy melyik b iztonsági cso p o rto k n a k tagja, információ Fájlnév fájlnév információ Adatok
esetleges speciális p rivilégium ait és m ég sok m ást. A ho zzáférést vezérlő jel célja
az összes biztonsági inform áció egyetlen, könnyen m eg ta lálh ató helyen való k o n ­
cen trálása. A processzus által lé tre h o z o tt összes további processzus u gyanezt a v e ­
zérlő jelet örökli. Egy fájlra vonatkozó MFT-bejegyzés
A z o b jek tu m o k létre h o z á sá n á l m eg a d h a tó p a ra m é te re k egyike a biztonságleíró
MFT-
(security deseriptor). A leíró ACL (Access Control List, elérést vezérlő lista) n e ­
fejléc
vű bejegyzések listájából áll. M in d en bejegyzés az o b je k tu m o n v ég ezh ető bizonyos
m űveletek h alm azát tiltja vagy engedélyezi egyes cso p o rto k vagy S ID -ek szám ára.
P éldául egy fájlnak leh e t olyan bizto n ság leíró ja, am ely szerin t E lin o r egyáltalán MFT tábla
nem férh et hozzá a fájlhoz, K en o lvashatja, L inda olvashatja és írh atja, az X Y Z
6.41. ábra. A Windows XP MFT táblája
csoport összes tag ja pedig olvashatja, de m ást nem te h e t vele.
A m ikor egy processzus az o bjektum m eg n y itásak o r k a p o tt k ezelő segítségé­
vel valam ilyen m ű v eletet p ró b ál v ég reh ajtan i az o b jek tu m o n , a bizto n ság k ezelő A stan d a rd inform áció m ezőben a posix által m egkövetelt id ő ad ato k , a kem ény
m egkapja a processzus ho zzáférést vezérlő je lét, és so rb an végigm egy az A C L lis­ k ö té se k (h a rd links) szám a, a csak-olvasható és az archív bitek stb. állnak. Ez fix
ta elem ein. M ihelyst olyan bejegyzést talál, am ely egyezik a hívó SID -jével, vagy hosszúságú, és m indig van. A fájlnév változó hosszúságú, m axim um 255 U nicode
a hívó valam elyik csoportjával, az e b b e n talált h o zzáférések leszn ek m e g h a tá ro ­ k a ra k te rb ő l állhat. A fájloknak lehet M S-D O S neve is, hogy a régi 16 bites p ro g ra ­
zók. E zért szokás a h o z z áférések et tiltó b ejegyzéseket az eng ed ély ező bejegyzések m o k is el tu d ják érni. E z a név a jól ism ert 8-1-3 szabály szerint k ép ezh ető . í í a az
elő tt elhelyezni a listában. így az a felh aszn áló , ak in ek k ifejezetten m eg tilto ttu k igazi fájlnév szintén eleg et tesz e n n ek a m egszorításnak, n em h asználnak m áso d ­
a hozzáférést, a h átsó ajtó n sem „ o so n h at b e ”, m eg a k k o r sem , h a olyan c so p o rt lagos M S -D O S fájlnevet.
tagja, am elynek en g ed ély ezett a hozzáférés. A b izto n ság leíró az o b jek tu m h o z való E z u tá n a biztonsági inform áció következik. A z N T 4.0-ig te rje d ő verziókban itt
h o zzáférések ellen ő rzéséh ez h aszn álh ató in fo rm ác ió t is tartalm az. m ag a a b iztonságleíró állt. A W indow s 2000-től k ezd ő d ő en az összes biztonsági in­
V izsgáljuk m eg röviden, hogyan v aló síto tták m eg a k ö n y v tárak at és fájlo k at az fo rm áció t egyetlen fájlban gyűjtötték össze, a biztonsági m ező egyszerűen e n n ek a
X P-ben. M in d en lem ezt önálló, statik u s k ö te te k re (volum e) o szto ttak fel. E zek a fájlnak a m egfelelő részére m u ta tó p o in ter. Kis fájlok esetén a fájlhoz tarto zó a d a ­
U N IX -p artíció k m egfelelői. M in d en k ö te tb e n v an n ak b itté rk ép e k , fájlok, könyv­ to k m aguk is az M FT -bejegyzésben találh ató k . A z ö tle t neve közvetlen fájl (iniine-
tá ra k és a b en n e foglalt inform áció k ezeléséh ez szükséges egyéb a d a tstru k tú rá k . diate file): lásd (M u llen d er és T anenbaum , 1984). Valamivel nagyobb fájloknál az
A k ö te t klaszterek (clusters) lineáris so ro zatáb ó l áll. A klaszterek m é re te a k ö tet a d a tm e z ő b e n m ár az ad a to k a t tartalm azó k laszterek re m u ta tó p o in terek állnak
nagyságától függően rö g zített 512 b ájt és 64 KB kö zö tti érték . A k ö te t k ezd etétő l (vagy m ég inkább a fájl hossza és egyetlen klasztersorszám , am ely az a d ato k a t ta r­
szám ított, 64 biten áb ráz o lt elto lás segítségével leh e t a k laszterek re hivatkozni. talm azó összefüggő k laszterso ro zat k ez d e té t adja m eg, s tetszőleges m e n n y is é g ű
510 6. A Z O P E R Á C IÓ S R EN D S Z E R G É P SZ IN T JE 6.4. PÉL D Á K O P E R Á C IÓ S R E N D S Z E R E K R E 511

a d a to t táro ló fájlokra alk alm azh ató ). H a egyetlen M FT -bejegyzésben nem tá ro l­ Az eredeti processzus
h ató a / összes m egkívánt inl'orm áció, egy vagy tö b h követk ező bejegyzés láncolt
listaként hozzákapcsolható.
A m axim ális fájlm é re t 2“ bájt. P ró b álju k m eg elképzelni, m ek k o ra is leh et egy -A gyerekei
ilyen hosszúságú fájl. H a a fájl ta rta lm á t b in árisan leírn án k , és m in d en 0 vagy
1 jegy 1 mm helyet foglalna el, a k k o r ez a 2'’“* m m -es lista 15 fényév hosszúságú
lenne, jóval tovább nyúlna, m in t a n ap re n d sz e r, e lérn e az A lfa C en tau riig , m eg -Az unokái
vissza.
A z N T FS fájlre n d szern ek m ég sok m ás érd e k e s tu lajd o n ság a van, p éld áu l a d a t­
tö m ö rítés, h ibajavítás atom i tran zak ció k felhasználásával. További in fo rm ác ió k at 6.42. ábra. UNIXprocesszusfa
tartalm az (R ussovich és S oloinon, 2005).
A U N IX -processzusok a csőnek (pipe) nevezett stru k tú ra segítségével kom m uni­
k álhatnak egymással. A cső egyfajta puffer, am elybe az egyik processzus „adatfolya­
6.4.4. Példák processzusok kezelésére m o t” ír be, a m ásik processzus m eg kiveszi ezeket az adatokat. A csőből m indig csak
a b eírásnak m egfelelő sorrendben vehetünk ki bájtokat. V életlen elérés nem leh et­
M ind a U N IX , m in d az X P m egengedi, hogy egy fe la d a to t (p szeu d o )p árh u zam o - séges. A csövek nem őrzik m eg az üzenetek határait, így ha az egyik processzus négy
san futó, egym ással k o m m u n ik áló pro cesszu so k ra b o n tsu n k fel a k o rá b b a n tá r ­ 128 bájtos írást hajt végre, a m ásik m eg 512 b ájtot olvas, az olvasó processzus egy­
gyalt term elő-fogyasztó p é ld áh o z h aso n ló stílusban. E b b en a szakaszban azt vizs­ szerre kiveszi az összes adatot, és sem m i sem jelzi, hogy ezeket több m űvelet írta be.
gáljuk, hogy a k ét re n d sz e r hogyan kezeli a pro cesszu so k at. M in d k e ttő tám o g atja A System V és a Solaris az üzenetsorok (m essage queues) révén m ásfajta k o m ­
az egyes processzusokon belü l a szálakkal m eg v aló síto tt p árh u zam o sság o t is, ezzel m u n ik áció t is m egenged. A processzusok új ü ze n e tso rt h o zh atn ak létre, vagy
szintén foglalkozunk m ajd. m eg n y ith atn ak m eglévőt msgget használatával. A d o tt ü zen etso rb a a p ro cesszu ­
sok msgsnd hívásával ü z e n e te k e t k ü ld h etn ek , és msgrecv-tel ü ze n e te t k érh etn ek .
A z így elk ü ld ö tt ü zen e te k több szem pontból is elté rn e k a csövekbe b e tö ltő itek tő l.
A UNIX processzuskezelése E lő szö r is, m íg a cső csak egy bájtfolyam , itt m eg m arad n ak az ü z e n e te k e t elválasz­
tó h atá ro k . M ásodszor, az ü z e n etek n ek p rio ritása van, így a sürgősek a kevésbé
A U N lX -processzu s a fork ren d szerh ív ás vég reh ajtásáv al b á rm ik o r lé tre h o z h a t egy fo n to sa k elé u g o rh atn ak . H arm ad szo r, az ü zen etek n ek típ u sa van, és szükség e se­
olyan alprocesszust, am ely saját m aga p o n to s m áso lata. A z e re d e ti processzus n e ­ té n msgrecv-ben elő írh a tu n k egy bizonyos típust.
ve szülő (parent), az újé gyerek (child). K özvetlenül a fork v ég reh ajtása u tá n a k ét Ú jab b ko m m unikációs m echanizm ust je le n t k ét vagy tö b b processzus c ím ta rto ­
processzus ugyanolyan, m ég ugyanazokat a közös fájlleíró k at is használja. E zu tán m ányából bizonyos régió m eg o szto tt haszn álata. A U N IX ezt a m egosztott m em ó ­
m indegyik elindul a saját ú tján , a m ásiktól fü ggetlenül azt tesz, am it kíván. riát úgy kezeli, hogy ugy'anazokat a lap o k at az összes processzus virtuális c ím ta r­
A gyerek processzus sokszor zsong lő rk ö d ik m ég egy kicsit a fájlleírókkal, m ajd to m án y áb a leképezi. E m ia tt a többi processzus azonnal észreveszi, ha valam elyik
exec rendszerhív ást h ajt végre. H a tá sá ra az exec hívás p a ra m é te ré ü l m eg ad o tt processzus ír a m eg o szto tt régióba. Ezzel a m echanizm ussal igen nagy sávszéles­
v ég reh ajth ató fájl ta rta lm á n a k m egfelelő p ro g ram - és ad atszeg m en ssel hclyette- ségű ko m m unikációs ú tv o n alat k apunk. A m eg o szto tt m em óriával kapcsolatos
sítődik az e re d e ti p ro g ra m - és ad atszeg m en s. A m ik o r p é ld áu l a felh aszn áló a zx yz ren d szerh ív ások neve ilyesm i lehet: shmat, shmop stb.
p aran cso t gépeli be a term in á lo n , a p a ra n c sé rtelm e z ő (sh ell) fork hívással létreh o z A System V és a Solaris m ásik jellegzetessége a szem afo ro k haszn álata. E zek
egy gyerek processzust, am ely exec-et h ajt végre a zx y z p ro g ra m fu tta tá sá h o z . lényegében a term elő-fogyasztó példából m egism ert m ó don m űködnek.
A két processzus p árh u za m o sa n fut (ak ár volt exec, a k ár n em ), hacsak a szü­ A z összes U N IX -re n d szer képes egyetlen processzuson belül tö b b vezérlési
lő nem d ö n t úgy, hogy m egvárja a gyerek processzus b e fejező d ését, és fu tását szál k ezelésére. E zek a vezérlési szálak, vagy csak röviden szálak (threads) olyan
csak azután folytatja. H a v árakozni ak ar, ak k o r wait vagy waitpid hívást h a jt végre, könnyűsúlyú pro cesszu so k ra h aso n lítan ak , m elyeknek közös a cím tarto m án y a és
am ely m egállítja, m íg a gyerek be n em fejeződik az exit végrehajtásával. E zu tán a m in d en , am i ahh o z kapcsolódik: fájlleírók, környezeti változók, külső időzítők.
szülő fu t tovább. D e m in d en szálnak saját utasításszám lálója, regiszterei és verm e van. H a egy szál
A processzusok tetsző leg es szám ú fork-ot h a jth a tn a k végre, így „p ro cesszu sfák ” b lo k k o ló d ik (vagyis átm en etileg várakozni kényszerül, am íg a B /K befejeződik,
jö n n ek létre. A 6.42. á b rán péld áu l a z ^ processzus két fork-ot h a jto tt végre, ezzel vagy valam ely egyéb esem ény bekövetkezik), az ugyanabban a processzusban lévő
két gyereket, B - t és C-t h o zo tt létre. E zu tán B is k étszer hívta a fork-ot, C m eg egy­ tö b b i szál m ég futhat. H a egy processzuson belül két szál fut, és az egyik te rm e ­
szer, s kialakult a végső, h a t processzusból álló fa. lőként, a m ásik pedig fogyasztóként m űködik, hasonló, de nem p o n to san ugyan­
512 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.4. P É L D Á K O P E R Á C IÓ S R EN D SZ ER EK R E 513

olyan helyzet áll elő, m in th a két egyszálas p ro cesszu su n k len n e, m elyek m egosztva A szálak a m utex nevű zárolás segítségével szin k ro n izálh atják futásukat. A mu-
használják a p u ffért tartalm azó m em ó riareg ió t. A k ülönbségek o n n an ered n ek , tex tipikus felad ata valam ely erő fo rrás, például két szál által közösen használt puf-
hogy az u tóbbi e setb en m in d en p ro cesszu sn ak saját fájlleírói stb. v annak, míg az fe r v éd elm e. E lvárjuk, hogy a szálak az e rő fo rrásh o z való ft>rdulás elő tt zárolják,
elsőnél m indezek közösek. K o ráb b i term elő -fo g y asztó p éld án k kap csán m ár ta ­ m u n k áju k b efejezése u tá n m eg szabadítsák fel a m utexet. Ezzel biztosítjuk, lu)gy
lálkoztunk a Java-szálak h asználatával. A Ja v a -fu tta tó re n d sz e r sokszor egy-egy egyszerre csak egy szál érh esse el a m eg o szto tt erő fo rrást. E lk erü lh ető a verseny­
o p eráció sren d szer-szin tű szálat használ saját szálai m egvalósításához, de nem kell helyzet, ha m inden szál tiszteletb en ta rtja ezt a p ro to k o llt. A m utexek olyanok,
fö ltétlen ü l így dolgoznia. m in t a b in áris (0 vagy 1 é rté k e t felvevő) szem aforok. A „m utex” név o n n a n szár­
A szálak h aszn o sság ára v o n atk o zó p é ld a k é n t tek in tsü n k egy W orld W ide Web m azik, hogy valam ely e rő fo rrásh o z kölcsönös kizáráson („m utual exclusion") a la­
szervert. A z ilyen szei-verek a m em ó riáb an ta lálh a tó gyorsítóban h elyezhetik el a p u ló ho zzáférést b iztosítunk segítségükkel.
gyakran használt w eb o ld ala k at. H a a k érés a gyorsítóban lévő o ld alra tö rté n t, a k ­ M utexek a p th re ad _ m u te x_ init és a p th r e a d _ m u te x _ d e s tr o y hívásokkal hozhatók lét­
k o r azonnal visszak ü ld h ető a w eboldal. E g yébként lem ezről kell b etö lte n i. Sajnos re, illetve szü n teth ető k m eg. A m utex két lehetséges állapota: zárolt (locketl) és
sokat kell várni a lem ezre (kb. 20 m s a tipikus), e z a la tt a processzus b lokkolódik, szabad (unlocked). H a egy szál szabad m utexet p róbál m eg zárolni a p th re a d _ lo c k
nem tud újabb k é ré se k e t kiszolgálni, m ég o ly an o k at sem , am elyek a gyorsítóban hívással, beállítódik a zárolás, és tovább fut a hívó szál. A m ennyiben zárolt m utexre
találh ató lap o k ra von atk o zn ak . v o n atk o zo tt a hívás, a hívó szál blokkolódik. A zárolást k érő szál m u nkájának befe­
A m egoldás a töb b szálú szer\'erprocesszus, m elynek szálai m in d a közös gyorsí­ jezése u tán elvárjuk, hogy a m utexet szabadítsa fel a p th re a d _ m u te x _ u n lo c k hívással.
tó t használják. A m ik o r valam elyik szál b lokkolódik, a tö b b iek m ég tu d ják fogadni A m u tex ek et rövid távú zárolásra, p éld áu l egy m eg o szlo tt változó védelm ére
az új k érések et. Szálak nélkül csak tö b b szerverprocesszussal tu d n á n k kikerü ln i a szánták. N em valók hosszú távú szinkronizációra, m ondjuk egy szalagegység fel­
blokkolódást, de ek k o r valószínűleg tö b b péld án y k ellen e a gyorsítóból is, amivel szab ad u lásán ak v ezérlésére. Ilyen célo k ra a feltételváltozók (condition variables)
é rték es m em ó riá t p o csék o ln án k el. A szálakra v o n atk o zó U N IX -szabvány neve alkalm asak. L é tre h o zásu k és m eg szü n tetésü k a pthread_cond_inlt, illetve a pthread_
pthreads, és szabvány (P1003.1C ) d efiniálta. E z a szálak szin k ro n izá lására és k e ­ cond_destroy hívásokkal v ég ezh ető el.
zelé sére v o natko zó hívásokat ta rtalm az. A szabvány n em definiálja, hogy a szálak A feltételváltozó h aszn álatak o r egy szál várakozik, egy m ásik m eg a változóra
kezelése a k ern e l felad ata, vagy' ped ig teljesen felhasználói m ó d b an m egvalósítva v o n atk o zó jelzések et küld. P éldául, h a az egyik szál észreveszi, hogy a szalagegy­
fussanak. A leggyakrabban használt szálhívásokat a 6.43. áb rán so ro ltu k fel. ség, am ely et használni szeretne, é p p en foglalt, akkor p th r e a d _ c o n d _ w a it hívást hajt
v égre azzal a feltételes változóval, am elyet m in d en szál egyezm ényesen a szalag­
Szálhívás Jelentése egységhez re n d e lt. A m ikor a szalagegységet h asználó szál m u n k áját b efejezte (le­
pthreadcreate Új szál létrehozása a hívó címtartományában het, hogy csak ó rák m úlva), a p th r e a d _ c o n d _ s ig n a l segítségével engedélyezi a v álto ­
pthread_exit A hívó szál befejezése zó ra v árak o zó szálak közül p o n to san egynek a folytatást. H a nem volt várakozó
pthreadjoin Várakozás szál befejeződésére szál, a jelzés elvész. A feltételv álto zó k m ásk ép p en szám olnak, m int a szem aforok.
pthread mutexjnit Új mutex létrehozása S zálakra, m utexekre és feltételv álto zó k ra m ég néhány további m űv eletet is d e f i ­
pthread_mutex_destroy Mutex megszüntetése niáltak.
pthread_mutex_lock Mutex zárolása
pthread_mutex_unlock Mutex felszabadítása
Pthread_cond_lnit Feltételváltozó létrehozása A W indows XP processzuskezelése
pthread_cond_destroy Feltételváltozó megszüntetése
pthread_cond_walt Feltételváltozóra várakozás
A z X P tö b b processzust tám o g at, ezek k o m m u n ik álh atn ak és szinkronizálhatják
pthread_cond_signal A feltételváltozóra várakozó egyik szál elindítása fu tásu k at. M inden processzus ta rtalm az legalább egy szálat, am elyben viszont leg­
a láb b egy fonál (flber) van. A processzusok, a szálak és a fo n alak együttesen n a ­
6.43. ábra. A legfontosabb p o s i x szólhívások gyon általán o s eszközkészletet nyújtanak a p árh u zam o sság k ezelésére ak á r egy-,
a k ár tö b b p ro cesszo ro s ren d szerek en . Új processzusokat a C r e a te P r o c e s s A P I-hívás-
V izsgáljuk m ost m eg röviden a 6.43. áb rá n lá th a tó szálhívásukat. A z első hívás, sal h o zu n k létre. E n n ek a függvénynek 1 0 p a ra m é te re , ezen belül m indegyiknek
egy új szálat hoz létre . A sikeres befejezés u tán a hívó c ím ta rto ­
p th r e a d _ c r e a te , szám os opciója van. Ez a k o n stru k ció nyilvánvalóan sokkal bonyolultabb, m int a
m ányában eggyel t ö b b szál fut, m in t a n n ak elő tte . A szálak m u n k áju k elvégzése U N IX -sém a, ahol a fork-nak nincs is p a ra m é te re , sót az exec-nek is csupán 3 van:
u tán a p th r e a d _ e x it hívásával fejezh etik be m ű k ö d ésü k et. M ásik szál b efejezésére a v é g reh a jta n d ó fájl nev ére m u ta tó p o in ter, az (elem zett) p aran csso r p a ra m é te ­
a p t h r e a d j o i n hívásával v ára k o z h a t egy szál. H a az illető szál m ár b efeje ző d ö tt, a re in e k tö m b je és a környezeti változók töm bje. A C re a te P r o c e s s 1 0 p a ra m é te ré n e k
p t h r e a d j o i n is azonnal visszatér. E gyéb k én t b lokkolja a hívó szálat. rövid ism ertetése:
514 6. A Z o p e r á c i ó s r e n d s z e r G É P SZ IN T JE 6.4, P É L D Á K O P E R Á C IÓ S R EN D SZ ER EK R E 515

1. A v ég reh ajtan d ó fájl nevére m u ta tó p o in ter. A processzusok sokféle m ó don kom m u n ik álh atn ak : csövekkel, n evesített csö­
2. A z e red eti (n em e lem zett) p aran csso r. vekkel, levélszekrényekkel, soeketekkel, távoli eljáráshívásokkal és m egosztott
3. A processzus b izto n ság leíró jára m u ta tó p o in te r. fájlokkal. A csöveknek k ét m ódja lehet, b ájt vagy ü zen et (ezt létreh o zásu k k o r kell
4. A kezdeti szál b izto n ság leíró jára m u ta tó p o in te r. eld ö n te n i). A b ájt m ó d ú csövek ugyanúgy m ű k ö d n ek , m int a U N IX -b an . A z ü ze­
5. Jelzőbit. am ely azt m o n d ja m eg, hogy az új processzus ö rö k li-e létre h o z ó já n a k n e tm ó d ú csövek lényegében hasonlók, de m egőrzik az ü zen etek h a tá ra it, te h á t a
kezelőit. négyszer b e írt 128 b ájt négy 128 bájtos ü ze n e tk é n t olvasható, és nem olvasható
6. K ülönféle jelzők, p éld áu l a h ib am ó d , p rio ritás, nyom követés, konzolok. egyetlen 512 bájto s ü z en etk én t, m int a b ájt m ó d ú csöveknél. L étezn ek nevesített
7. A környezeti v álto zó k ra m u ta tó p o in ter. csövek is, ugyanúgy k ét m ódjuk lehet, m in t a közönséges csöveknek, A nevesített
8. A z új processzus m u n k ak ö n y v tárán ak n ev ére m u ta tó p o in ter. csövek h á ló zato n k eresztül is használhatók, a k özönségesek nem .
9. A kép ern y ő n m eg jelen ő kiindulási ab lak o t leíró s tru k tú rá ra m u ta tó p o in ter. A m a ilslo t (levélbedobó nyílás) olyan X P-sajátosság, am ely hiányzik a U N IX -
10. A hívónak 18 é rté k e t visszaadó s tru k tú rá ra m u ta tó p o in ter. ból. B izonyos szem p o n tb ó l h asonlít a csövekhez, de nem m in d en b en . E lőször is ez
egyirányú, míg a cső kétirányú. H áló zato n át is h aszn álh ató , de az üzenet eljutása
A z X P nem követel m eg sem m iféle szülő-gyerek vagy egyéb h iera rc h iá t. M in d en n em g a ra n tá lt. V égül a k ü ld ő processzus „ ü z e n etszó rást” is végezhet segítségével;
processzus születésén él fogva egyenlő. M ivel azo n b an a létre h o z ó p rocesszusnak n em egy, h an em sok fog ad ó h o z elju ttatv a ugyanazt a küldem ényt.
visszaad ott 18 p a ra m é te r egyike az új processzus kezelője (ez az új processzus fö ­ A so ck etek a csövekhez h aso n lítan ak azzal az eltéréssel, hogy ren d szerin t k ü ­
lötti szám ottevő ellen ő rzést tesz leh ető v é), m égis van egy im plicit h iera rc h ia a n ­ lö n b ö ző g ép ek en fu tó p rocesszusokat k ap csolnak össze. D e haszn álh ató k ugyan­
n ak m egfelelően, hogy ki kit v ezérelh et. B ár ezek a kezelők közvetlenül n em a d ­ azon a g ép en fu tó processzusok ö sszekapcsolására is. Á ltaláb an kevés előnnyel já r
h ató k át m ás pro cesszu so k n ak , a p rocesszusok k é szíth e tn e k m ás p rocesszusok a g ép en belüli k o m m unikációban a socketek csővel vagy elnevezett csővel tö rté n ő
szám ára m egfelelő kezelő k et, és e ze k et aztán tovább is a d h atják . A z im plicit p ro ­ összekapcsolása.
cesszushierarchia te h á t n em m indig m a ra d m eg tartó sa n . A távoli eljáráshívások arra ad n ak m ódo t, hogy az A processzus a B processzus­
K ezd etb en m in d en X P -processzus egyetlen szállal születik, de k éső b b újabb sal a n n ak cím tartom ányában v é g re h a jth a s so n ^ helyett egy eljárást, és a futás e re d ­
szálakat is létreh t)zh at. A szálak létre h o z á sa egyszerűbb a p ro cesszu so k én ál. A m én y ét visszajuttassa ^ - n a k . K ülönböző m egszorítások léteznek a p a ra m é te re k re
CreateThread függvénynek 10 h ely ett csak 6 p a ra m é te re van: a bizto n ság leíró , a ve­ vo natkozóan. Például é rtelm etlen dolog m u ta tó t átad n i egy m ásik jirocesszusnak.
rem m é re te , a kezdőcím , egy felh aszn áló által definiált p a ra m é te r, a szál k ezd eti V égül a p rocesszusok úgy is h aszn álh atn ak m eg o szto tt m em ó riát, hogy egy id ő ­
állap o ta (futáskész vagy b lo k k o lt) és a szál azonosítója. A k ern el végzi a szálak lé t­ ben ugyanazt a fájlt kép ezik le m em óriájukba. A z egyik processzus által v ég reh aj­
reh o zását, te h á t nyilvánvalóan tu d létezésü k rő l (vagyis n em teljesen felhasználói to tt m in d en írás m egjelenik az összes többi cím tarto m án y áb an . Ezzel a m echaniz­
m ó d b an v alósíto tták m eg, m in t m ás ren d sz erek b en ). m ussal könn yen m egvalósítható a term elő-fogyasztó p éld áb a n használt puffer.
A k ern el ü tem ező je nem csak a legközelebb fu tta ta n d ó p rocesszust, han em U gyanúgy, ahogy szám os processzusok közti kom m unikációs eszközt kínál az
ezen belül a fu tta ta n d ó szálat is kijelöli. Vagyis a k ern el m indig tudja, m ely szá­ XP, sokféle szinkronizációs m echanizm ust is felajánl. Id e ta rto z n a k a szem aforok,
lak fu th a tn a k és m elyek b lokkoltak. M ivel a szálak is k e rn elo b jek tu m o k , azo k n ak a m utexek, a kritikus régiók és az esem ények. E zek m ind szálakon és nem proeesz-
is van b iztonság leíró ju k és k ezelőjük. Egy processzus v e z érelh eti m ás procesz- szusokon h atn ak , te h á t am ik o r egy szál blokkolódik a szem aforon, a processzus
szusok szálait is, ugyanis ezek a k ezelők m ás p ro cesszu so k n ak to v áb b ad h a tó k . tö b b i szálát (h a vannak ilyenek) m indez nem érinti, nyugodtan fu th atn ak tovább.
N yom követőkben (d eb u g g er) jó l k ih aszn álh ató ez a tulajdonság. S zem afo rt a CreateSennaphore A P Í-függvénnyel h o zh atu n k létre, am ellyel iniciali­
A z X P-szálak használata viszonylag költséges, mivel a szálak közti átkapcsoláshoz zálhatjuk, és a m axim ális é rték ét is m egad h atju k . A szem aforok kcrn elo b jek tu -
a kernelbe való belépés, m ajd később az o n n an való kilépés szükséges. A nagyon m ok, te h á t van biztonságleírójuk és kezelőjük. A szem afor kezelőjéről m ásolat k é­
könnyűsúlyú pszeudopárhuzam ossághoz az X P fo n alak at (fibers) biztosít. E zek a szíth ető a DuplicateHandle hívással. EZnnek ered m én y ét m ás processzusoknak á ta d ­
szálakhoz hasonlítanak, de ütem ezésü k et felhasználói m ó d b an végzi az ő k et lé tre ­ va, tö b b processzus is h ozzáigazíthatja fu tását ugyanahhoz a szem aforhoz. L étezik
hozó processzus (vagy an n ak fu tta tó ren d szere). U gyanúgy, m int ahogy a processzu­ az up és a down hívás, b á r az elég furcsa ReleaseSemaphore (up) és WaitForSingleObject
sok többszálúak lehetnek, egy szál is tarta lm az h at több fonalat. E ltérés o tt van, hogy (down) n ev ekre hallgatnak, A WaitForSingleObject hívásakor id ő k o rlát (tim eo u t) is
ha egy fonál logikailag blokkolódik, a k k o r a blokkolt fonalak so ráb a teszi be m agát, m eg ad h a tó , hogy a hívó szál végül fölszabaduljon akkor is, ha a szem afor érték e
és az őt tartalm azó szálon belüli környezetből választ m ásik fu tó fonalat. A kernel 0 m a rad (b á r az időzítések h aszn álata újra versenyhelyzetekhez vezethet).
nem veszi észre ezt az átm en etet, m ert a szál tovább fut, b ár lehet, hog}' először az A m u tex ek szintén szinkronizációra szolgáló k ern elo b jek tu m o k , de annyival
egyik fonalat fu ttatta, m ost m eg eg)' m ásikat. A kernel csak a processzusokat és a egyszerűbbek, hogy nincsen szám lálójuk. L ényegében záro lást végeznek a z á ro ­
szálakat kezeli, a fo n alak at nem . A fo n alak hasznosak le h etn ek p éldául, h a olyan lásra (WaitForSingleObject) és a felszabadításra (ReleaseMutex) v onatk o zó két A P l-
p ro g ram o k at akaru n k X P-re átvinni, am elyek saját szálaikat k ezelték eredetileg. függvény segítségével. A szem aforok kezelőihez h aso n ló an a m utexek kezelői is
6. A Z o p e r á c i ó s r e n d s z e r G É P S Z IN T JE 6.6. FELA D A T O K 517
516

d u p lik álh ato k és p ro cesszu so k kö zö tt á ta d h a tó k , így k ü lö n b ö ző p rocesszusok szá­ ség, hogy m egtaláljuk a fájlhoz ta rto z ó összes blokkot. A szabad lem ezterü let lis­
lai is elé rh e tik ugyanazt a m utexet. ták vagy b ittérk ép ek segítségével ta rth a tó szám on.
A h arm ad ik szinkronizációs m echanizm us a k ritik u s szak aszo k o n (critical sec- A p á rh u zam o s feldolgozást gyakran egyetlen C P U -n idöosztással több
tions) alapul, m elyek h aso n líta n ak a m utexekhez, de a lé tre h o z ó szál c ím ta rto m á ­ C P U -t szim ulálva valósítják m eg. A processzusok közti ellenőrizetlen kölcsön­
nyára nézve lokálisak. M ivel a kritik u s szakaszok n em k ern e lo b je k tu m o k , nincsen h atá so k versenyhelyzetekhez v ezeth etn ek . E n n ek a p ro b lé m á n a k a m eg o ld ására
sem biztonságleírójuk, sem k ezelőjük és nem a d h ató k át m ás processzusoknak. szinkronizációs prim itíveket v ezettek be, közülük a legegyszerűbbek a szem aforok.
A zárolás és a felszab ad ítás az EnterCríticalSection, illetve a LeaveCriticalSection hívá­ A term elő -fo gyasztó p ro b lém ák szem aforok használatával egyszerűen és e leg á n ­
sokkal végezhető. M ivel ezek a függvények teljesen felh aszn áló i m ó d b a n h a jtó d ­ san m e g o ld h atók.
n ak végre, sokkal gyorsabbak a m utexeknél. A bony o lult o p eráció s re n d szerek k é t p éld ája a U N IX és az X E M in d k ettő tá ­
A z utolsó szikronizációs m ech an izm u s esem ényeknek (events) n ev ezett o b jek ­ m og atja a lapozást és a m em ó riáb a lek ép e zett fájlokat. Szintén m indegyikükben
tu m o k at használ. A szálak a WaitForSingleObject hívásával v á rh a tn a k egy esem ény h a szn álh ató k b ájtso ro zato k b ó l álló fájlokból felépülő h ierarch ik u s fájlrendszerek.
bek ö v etk ezésére. F ö lsz ab a d íth a tó egyetlen esem én y re v áró szál a SetEvent függ­ V égül m in d k ettő b en v an n ak processzusok és szálak, valam int a szinkronizálásuk­
vénnyel vagy az összes, a m eg a d o tt esem én y re v áró szál a PulseEvent-tel. A z e sem é ­ h o z szükséges eszközök.
nyek sokfélék leh e tn e k és sok o pciójuk is lehet.
A z esem ények, a m utex ek és a szem afo ro k a n ev esített csövekhez h aso n ló an
m ind névvel láth a tó k el és a fájlren d szerb en tá ro lh a tó k . K ét vagy tö b b processzus
úgy is szinkronizálh ató , hogy u gyanazt az esem ény t, m u tex et vagy szem afo rt n yit­ 6.6. Feladatok
ják m eg, és n em egyetlen o b jek tu m m áso latain ak kezelő it ad ju k át tö b b procesz-
szusnak, b á r az u tó b b i m egközelítés is já rh a tó . 1. M ié rt csak részb en értelm ezi az o p eráció s ren d sz e r a 3. szintű u tasításo k at,
h o lo tt a m ik ro p ro g ram az összes ISA -szintű u tasítást értelm ezi?
2. Tegyük fel, hogy a szám ítógép 32 bites, b á jto n k é n t cím ezhető, 4 K B -os la p m é ­
re tű virtuális m em ó riát használ. H ány lapból áll a virtuális cím tartom ány?
6.5. Összefoglalás 3. Szükségszerű, hogy a lapok m é re te 2 hatványa legyen? E lm életileg m egva­
ló síth ató lenne m o n d ju k a 4000 bájto s la p m é re t is? H a igen, m ennyire lenne
A z o p eráció s re n d sz er felfo g h ató az ISA -szinten hiányzó bizonyos arch itek tu rális p rak tik u s?
sajátosságok értelm e z ő je k é n t. E zek közül leg fo n to sab b a virtu ális m em ó ria, a v ir­ 4. L egyen a virtuális m em ó ria la p m érete 1024 szó, álljon 8 virtuális lapból, a fizi­
tuális B /K u tasításo k és a p árh u z am o s p ro g ram o zási leh ető ség ek . kai m em ória pedig tartalm azzo n 4 lap k eretet. A lap táb la a következő;
A virtuális m em ó ria olyan a rch itek tu rális sajátosság, am elynek célja, hogy a
p ro g ram o k a gép b en lévő m em ó rián ál nagyobb cím ta rto m á n y t h aszn álh assan ak , Virtuális lap Lapkeret
vagy hogy konzisztens és ru g alm as m ech a n izm u st bizto sítso n a m e m ó ria v é d e lm é­ 0 3
re és m egosztására. M eg v aló síth ató tiszta lapozással, tiszta szegm entálással vagy 1 1
a k e ttő kom binálásával. A tiszta lapozás esetén a cím ta rto m á n y t azo n o s m é re ­ 2 Nincs a memóriában
tű lap o k ra osztjuk fel. E zek közül n ém ely ek et lek ép e zü n k a fizikai la p k e re tek re . 3 Nincs a memóriában
M ások nincsenek leképezve. A le k é p e z e tt la p ra v o n atk o zó hivatkozást az M M U 4 2
fo rd ítja le a helyes fizikai cím re. A le nem k é p e z e tt la p ra való h ivatkozás lap h ib át 5 Nincs a memóriában
okoz. A P entium 4-ben és az U ltraS P A R C líl-b a n lévő M M U tá m o g a tja a virtuális 6 0
m em ó riát és a lapozást. 7 Nincs a memóriában
A legfontosab b B /K absztrakció ezen a szinten a fájl fogalm a. A fájl b ájto k vagy
logikai rek o rd o k so ro zatáb ó l áll, m elyek anélk ü l írh ató k és o lvashatók, hogy is­ a) S o ro ljuk fel az összes laphiányt okozó virtuális cím et.
m e rn én k a lem ezes, a szalagos és m ás B/K egysegek m ű k ö d ését. A fájlok e lé r­ b) M ilyen fizikai cím ek felelnek m eg a 0, 3728, 1023, 1Ü24, 1025, 78Ü0 és
h e tő k sorosan és v é letlen szerű en a re k o rd szám o k vagy kulcsok használatával. A cím eknek?
k önyvtárak a fájlok c so p o rto sítá sára h aszn álh ató k . A fájlok tá ro lh a tó k a lem ezek 5. Egy szám ítógép 16 lapos virtuális m em ó riái és csupán 4 la p k e re te t tartalm az.
egym ás u tán i szek to rain vagy szétszó rtan . Az u tó b b i e setb en , m elyet általán o san K ezd etb en a m em ó ria üres. A p ro g ram a következő so rren d b en hivatkozik a
alkalm azn ak a m erev lem ezes egységeken, m eg felelő a d a ts tru k tú rá k ra van szük­ virtuális lapokra:
0, 7, 2, 7, 5, 8, 9, 2, 4.
518 6. A Z O P E R Á C IÓ S R E N D S Z E R G É P SZ IN T JE 6.6, FELA D ATO K 519

a) A z L R U e seté n m elyik h ivatkozás okoz laphiányt? Elérés módja Szegm ens Lap Lapon belüli eltolás
b) A F IF O alk alm azásak o r m ik o r lép fel laphiány? 1. adat betöltése 0 1 1
6. A 6.1.4. alfejezetb en a F IF O lap cserélő stra tég iát m egvalósító a lg o ritm u st is­ 2. adat betöltése 1 1 10
m erte ttü n k . Tervezzünk en n él h a ték o n y a b b at. Tipp: az é p p e n b e tö ltö tt oldal 3. adat betöltése 3 3 2047
szám lálóját k ü lön is frissíth etjü k anélkül, hogy a tö b b ié t v álto ztatn án k . 4. adattárolása 0 1 4
7. A szövegben tárgyalt lapozásos ren d sz e re k n él a lap k ez elő az IS A -szinthez ta r­ 5. adat tárolása 3 1 2
to zott, e z ért egyetlen O S M -szintű p ro g ra m c ím tarto m án y áb an sem volt b e n ­ 6. adat tárolása 3 0 14
ne. A valóságban a lap k ezelő szin tén elfoglal n éh án y lap o t, és bizonyos k ö ­ 7. programelágazás Ide 1 3 100
rülm ények k ö z ö tt (p éld áu l a F IF O lap k ezelési elvnél) m ag a is k ik e rü lh e t a 8. adat betöltése 0 2 50
m em óriából. M i tö rté n n e , ha o ly an k o r k ö v etk ezn e be laphiány, am ik o r a lap- 9. adat betöltése 2 0 5
hiánykezelő nincs a m em ó riáb a n ? H ogyan k e z elh ető ez az eset? 10. programelágazás ide 3 0 60
8. N incsenek m in d en szám ító g ép h ard v eré b e n olyan bitek , am elyek a u to m a ti­
kusan b eállító d n ak , ha íru n k a lap o k ra. Á m b á r célszerű nyilván tartan i, hogy 10. N ém ely szám ítógép felhasználói szinten is m egengedi a d irek t B /K m űvele­
m ely lapok m ó d o su ltak , hogy ne kelljen a legrosszabb e se te t feltételezn ü n k , tek e t. P éld áu l a p ro g ram közvetlenül a lem ezről k ezd h et a d a to k a t á ttö lte n i a
vagyis m in d en la p o t v isszam ásolnunk a diszkre. H ogyan ta rtja nyilván az o p e ­ felh aszn áló p ro cesszusában talá lh a tó pu fferb e. ü k o z h a t-e ez bárm ilyen p ro b ­
rációs ren d sz e r a tiszta és a szen n y ezett lap o k at, ha azt tétele zz ü k fel, hogy lém át, h a a virtuális m em ó ria m egvalósításánál tö m ö ríté st alkalm azunk?
m in d en laphoz olyan h ard v erb itek ta rto z n ak , am elyekkel k ü lö n en g ed ély ezh e­ 11. A fájlok m em ó riáb a való lek ép e zését m egen g ed ő o p eráció s ren d szerek m in ­
tő az olvasás, az írás és a vég reh ajtás? dig m egkövetelik, hogy a fájl k ép e la p h a tá ro n kezdődjön. 4 KB m é re tű lapok
9. Tegyük fel, hogy lap o z o tt szegm ensekkel m ű k ö d ő szeg m en tált m em ó riá n k e se té n p éld áu l a fájl le k ép e zh ető a 4096 cím től k ezd ő d ő en , de 5000-től kezdve
van. A virtuális cím ek 2 bites szegm ensszám ból, 2 b ites lapszám ból és a lapon n em . M iért?
belüli eltolásból (o ffsetb ő l) állnak. A 32 K B m em ó riá t 2 K B -os la p o k ra osz­ 12. A m ik o r a P entium 4-en szegm ensregisztert tö ltü n k be, a m egfelelő leíró is b e ­
to ttu k . A szegm ensek csak olvashatók, o lv ash ató k /v ég reh ajth ató k , olvash ató k / tö ltő d ik a szegm ensregiszter lá th a ta tla n részébe. M it gondol, m iért v álaszto t­
írh ató k vagy o lv a sh ató k /írh ató k /v ég reh ajth ató k leh e tn e k . A lap tá b lá k és a jo ­ tá k az In tel tervezői ezt a m egoldást?
gosultságok legyenek a következők: 13. A P en tium 4-en fu tó p ro g ram a 10. lokális szegm ensen belüli 8000 elto lásra
(o ffsetre) hivatkozik. A szegm enshez ta rto z ó L D T BASE m ezőjében 10000 áll.
0. szegmens 1. szegmens 2. szegmens 3. szegmens A lapkönyvtár m elyik bejegyzését használja a P entium 4? M ennyi a lapszám ?
Olvasható/ M ennyi az eltolás?
Csak olvasható Olvasható/végrehajtható írható/végre­ Olvasható/Írható 14. V izsgáljunk m eg n éh án y olyan algoritm ust, am ely szegm ensek eltávolítására
hajtható alkalm as nem lap o zo tt szeg m en tált m em ó ria esetén.
Virtuális Virtuális Virtuális 15. H asonlítsa össze a külső és a belső elaprózódást. H ogyan csökkenthető hatásuk?
Lapkeret Lapkeret Lapkeret
oldal oldal oldal
16. A sz u p e rm ark etek is ren d szeresen szem besülnek a virtuális m em ó riát hasz­
0 9 0 A lemezen 0 14
A laptábla n áló re n d szerek lap k ezeléséh ez haso n ló pro b lém ák k al. A polcaik ö sszterü lete
1 3 1 0 1 1
nincs a me­ állandó, ezen kell egyre tö b b te rm é k e t elhelyezniük. H a fo n to s új term ék , p é l­
2 A lemezen 2 15 2 6
móriában d áu l egy 100% -os h atékonyságú k u tyaeledel, jelen ik m eg, valam elyik régebbi
3 12 3 8 3 A lemezen
te rm é k eltávolításával kell helyet szorítani neki. A z L R U és a F IF O a k ét k é­
zenfekvő helyettesítési algoritm us. M elyiket részesíten é előnyben?
Soroljuk fel, hogy a k ö v etk ező v irtu álism em ó ria-h o zzáférések m ilyen fizikai 17. A gyorsítótárazás é s a lap ozás b izo n y o s é rte le m b e n nagyon h a so n ló . M in dk ét
cím ekre v o natk ozn ak . H a h o zzáférési h ib a lép fel, ad ju k m eg a típ u sá t is. e se tb e n k ét m em óriaszin t van (a z e lső n é l a gyorsítótár é s a fő m em ó ria , az
utób binál p ed ig a fő m em ó r ia é s a lem e z). A fe je z etb en kis é s nagy (le m e z ) la­
p ok at tá m o g a tó érv ek et egyaránt m egvizsgáltun k. A g yorsítósorok k al k a p cso ­
latban is é rv én y esek e z e k az érvelések ?
18. M iért k öveteli m eg sok o p eráció s rendszer, hogy olvasás e lő tt az open re n d ­
szerhívással explicit m ó d o n m egnyissuk a fájlokat?
520 6. A Z O P E R Á C IÓ S R EN D SZ ER G É P SZ IN T JE
6.6, FELA D A T O K 521

19. H aso n lítsu k össze a szabad helyek n y ilv án tartásán ak két m ó d sze ré t (a b itté r­ végez ugyanazon a szem aforon. K ét b lokkolt processzus m ellett v ég reh ajto tt
k ép et és a lyuklistát) egy olyan diszk esetéb en , am elynek 800 cilindere van, up u tá n a kisebb sorszám ú indul újra, vagyis előnyben részesítjük P l- e t P2-vel
m indegyiken 5 sávval s ezek en egy en k én t 32 szek to rral. H án y lyuk k eletk ezése és P3-m al szem ben stb. K ezd etb en a szem afo r érté k e 1, és fut m in d h áro m p ro ­
u tá n len n e a lista nagyobb a b itté rk é p n é l? F eltételezzü k , hogy a helyfoglalás cesszus.
egysége a szektor, a lyukak cím ét p ed ig 32 b ites fo rm áb an tároljuk. t = 100-nál P l down-t h ajt végre
20. A diszkkezelés h aték o n y ság án ak elő zetes becsléséhez célszerű a helyfoglalást t = 200-nál P l down-t hajt végre
m odellezni. T ekintsük a diszket olyan > > 1 szám ú szektorból álló lineáris t = 300-nál P2 up-ot h ajt végre
cím tartom ány n ak , am elyben a d atb lo k k o k so ra u tá n egy lyuk, m ajd m egint va­ t = 400-nál P3 down-t h ajt végre
lahány ad atblo k k , újra egy lyuk stb. ism étló'dik. H a a k ísérleti m éré se k szerin t t = 500-nál P l down-t h ajt végre
az ad atb lo k k o k a t tartalm azó részek és a lyukak hossza ugyanazt a valószíntasé- t = 600-nál P2 up-ot h ajt végre
gi eloszlást követi; az / szek to ro s hosszúság valószínűsége 2~'. M e k k o ra a lyu­ t = 700-nál P2 down-t h ajt végre
k ak szám ának v árh a tó é rté k e ? t = 800-nál P l up-ot h ajt végre
21. Egy bizonyos szám ító g ép en a p ro g ram o k tetszés szerin ti szám ú, m é re té t fu tás t = 900-nál P l up-ot h ajt végre
közben d inam ik u san v á lto z tató fájlt h o z h a tn a k létre . A fájlok végső m ére té rő l 26. A rep ü lési helyfoglalási ren d szerek n él biztosítani kell, hogy am íg az egyik p ro ­
sem kell előze tesen tájék o ztatn i az o p eráció s ren d sz e rt. T á ro lh a tó k -e egym ás cesszus egy fájlon dolgozik, m ásik processzus ne h asználhassa ugyanezt a fájlt.
u tán i szek to ro k b an a fájlok? In d o k o lja válaszát. M ásk ü lö nben e lő fo rd u lh a tn a, hogy két k ü lönböző jegyiroda két processzusa
22. A különböző fájlren d szerek tan u lm án y o zása azt m u ta tta , hogy a fájlok tö b b véletlen ü l egyszerre ad n á el valam elyik já ra t utolsó jegyét. Javasoljon olyan
m in t fele néh án y KB-os, vagy m ég kisebb, sőt a fájlok elsö p rő többsége kisebb szem afo ro k at h asználó szinkronizációs m ódszert, am ely biztosítja, hogy b á r­
nagyjából 8 K B -nál. M ásrészt viszont általáb an az összes fájl m é ret szerint leg­ m ely fájlt egyszerre csak egy processzus érhessen el (feltesszük, hogy a p ro ­
nagyobb 10% -a foglalja el az összes felh aszn ált le m e z te rü let nagyjából 90% -át. cesszusok b e ta rtjá k a m eg ad o tt szabályokat).
E zekből az ad ato k b ó l m ilyen k ö v e tk ez tetést v o n h a tu n k le a lem ez blokkok 27. K özös m em ó riát használó, tö b b C P U -t ta rtalm azó g épeken a ren d sz e rm é rn ö ­
m é re té re v on atk o zó an ? kök gyakran segítik a Tesztelés és Z á ro lá s (Test a n d Set Lock) utasítás beve­
23. Tekintsük a szem afo ro k o p eráció s re n d sze re k b e n tö rté n ő m egvalósításának zetésével a szem afo ro k m egvalósítását. TSL X az X m em ó riarek eszt teszteli. H a
következő leh ető ség ét. V alahányszor up vagy down m űv elet v ég reh ajtásáh o z X ta rta lm a 0, ak k o r egyetlen, o sz th atatlan m em óriaciklus során 1-re állítódik
kezd a C P U egy szem afo ro n (a m e m ó riáb an tá ro lt egész szám on), e lő tte a p rio ­ be, és a pro g ram átu g o rja az u tá n a következő u tasítást. H a X nem 0, TSL üres
ritási vág}' m aszkolási bitek b eállításával letiltja a m eg szakításokat. A zu tán b e ­ u ta sításk én t viselkedik. TSL-t felhasználva m eg írh ató k a következő tu la jd o n ­
tölti a szem afort, m ódosítja, m ajd v ég reh ajtja a m eg felelő p ro g ram clág azást. ságokkal b író lock és unlock eljárások. A lock{x) azt ellenőrzi, hogy x zárolva
M űködik-e ez a m ódszer, ha van-e. H a nem , zá ro lja x -e t, és visszaadja a vezérlést. A m ennyiben x m á r záro l­
a) egyetlen C P U van, am ely 100 m s-os id ő k ö zö n k é n t kapcsol át a p ro cesszu ­ va van, a k k o r addig várakozik, m íg x fel n em szabadul, akkor zárolja és vissza­
sok között; ad ja a vezérlést, unlock hívása a m eglévő záro lást szabadítja fel. H a használat
b) 2 C P U van, s ezek m egosztva h asználják a szem afo rt tartalm azó m em ó riát? e lő tt m in d en processzus záro lja a szem afo r tábláját, ak k o r egyszerre csak egy
24. A B om babiztos O p eráció s R e n d sz e re k e t G y ártó C ég ügyfeleitől p an aszo k é r ­ processzus b ab rá lh a tja a v áltozókat és a p o in te re k e t, te h á t m eg elő zh ető a v er­
keztek a szem afo r m ű v eletek et is végző legújabb term é k ü k k e l k ap cso latb an . senyhelyzetek kialakulása. írja m eg assem bly nyelven a lock és az unlock eljá­
A zt nehezm én y ezték , hogy szerin tü k „erk ö lcstelen d o lo g ” a p rocesszusok ráso k at (összeg^Ujtve az ehhez szükséges feltételek et).
blokkolása, vagy ahogy ők m o n d ták , „m u n k a kö zb en i e la lta tá sa ”. M ivel a cég 28. S orolja fel a 65 szó hosszúságú k ö rk ö rö s p u fferre k a p o tt in és out é rté k e k e t a
fő célkitűzése a felhasználók igényeinek m a ra d é k ta la n k ielégítése, az up és a követk ező m űveletek v ég reh ajtása u tán (m in d k ét m u ta tó 0-ról indul):
down m ellett h arm a d ik k én t jav aso lta a peek nevű kiegészítő m űv elet b e v ez e té­ a) 22 szót beteszü n k
sét. A peek egyszerűen csak m egvizsgálja a szem afo rt, anélk ü l hogy v á lto z ta t­ b) 9 szót kiveszünk
n a rajta, vagy b lo k k o ln á a processzust. így a b lo k k o lást e rk ö lcstcIcn n ek ítélő c) 40 szót beteszü n k
pro g ram o k a down m űvelet e lő tt m egvizsgálhatják a szem afo rt, hogy b izto n sá­ d) 17 szót kiveszünk
gos-e az o p erá ció végrehajtása. M ű k ö d n e -e ez az elkép zelés, ha h á ro m vagy e) 12 szót beteszü n k
több processzus használja a szem afo rt? É s két processzus esetén ? f) 45 szót kiveszünk
25. K észítsen olyan táb lázato t, am ely az idő függvényében (0-tól 1000 m s-ig) m u ­ g) 8 szót beteszü n k
tatja, hogy az alábbi P l, P2 és P3 p ro cesszu so k közül é p p e n m elyik fut, és m e ­ h) 11 szót kiveszünk
lyik van blokk o lt állap o tban . M in d h áro m processzus up és down m ű v eletek et
522 6, A Z O P E R Á C IÓ S R EN D SZ ER G É P SZ IN T JE 6.6. FELA D ATO K 523

29. Tegyük fel, hogy olyan U N IX -ver/.iónk van, am ely 2 K B -os diszk b lo k k o k at szám olást, ezzel növelve a „sebezhetőségi a b la k o t”. M ennyi szám olást kell b e ­
használ, és az (egyszeres, k é tszeres vagy h á ro m szo ro s) in d ire k t blo k k o k b an ik ta tn u n k ahhoz, hogy m ondjuk, legalább ó rá n k é n t egyszer lefagyjon?
512 diszk cím et táro l. M i len n e a m axim ális fájlm érct? F eltesszük, hogy a fájl­ 37. írjo n olyan U N IX - vagy X P -program ot, am elynek b e m e n ő p a ra m é te re egy
m u tató k 64 bitesek. könyvtárnév. A p ro g ram fe lad ata a könyvtárban ta lá lh a tó fájlok listázása.
30. Tegyük fel, hogy az unlink(„/usr/ast/bin/games3") U N lX -ren d sz e rh ív á sl a 6.36. áb ­ S o ro n k én t egy fájl nevét és m é re té t írja ki. A fájlneveket a könyvtárban való
rán ak m egfelelő k ö rn y ezetb en h a jto ttu k végre. R é szletesen írja le, hogy m i­ elő fo rd u lásu k so rren d jéb en írassa ki. A könyvtár fel n em használt helyeit (ki­
lyen változások m e n te k végre a k ö n y v tárren d szerb en . h aszn álatlan ta rta lm ú ) sorokkal jelezze.
31. K épzelje el, hogy a U N IX -re n d szcrt kevés m em ó riáv al ren d e lk e z ő m ik ro szá­
m ítógépen k elle tt m egvalósítania. H osszú ideig ta rtó erő lk ö d és u tá n sem sik e­
rült m ég cipő k an állal sem begyöm öszölni a ren d sz e rt a m em ó riáb a. E z é rt úgy
d ö n tö tt, hog)' a siker é rd e k é b e n feláldoz egy v é letlen szerű en kiválasztott re n d ­
szerhívást. A pipe le tt az áld o zat, am ely a p rocesszusok közti b ájtso ro z a to k to ­
v áb bításához szükséges csöveket hozza létre. M e g o ld h a tó -e ek k o r is a B /K á t­
irányítása? M i lesz a cső v ezetékekkel?
32. A z E gyenlő Jo g o k a t a F á jlleíró k n ak B izottság tü n te té s t szervez a U N lX -re n d -
szer ellen, mivel az fá jlleíró k én t m indig a legkisebb, é p p e n n em h aszn ált szá­
m ot ad ja vissza. K ö v etk ezésk ép p en a nagyobb fájllcíró k at alig-alig használják.
Tervük szerin t a legkisebb, é p p e n n em h aszn ált szám h ely ett inkább a p ro g ram
által m ég nem h aszn ált legkisebb szám ot k ellen e választani. A zt állítják, hogy
ez a válto zat kön n y en m egvaló síth ató , nincs hatással a m eglévő p ro g ra m o k ra,
és m éltányosabb is. Mi errő l a v élem énye?
33. K észíthető-e az XP-n olyan ho zzáférést vezérlő lista, hogy eg>' bizonyos fájlhoz
R o b e rta egyáltalán ne férh essen hozzá, u g y an ek k o r b árk i m ás teljes h o zzáfé­
rést k ap jo n ? M it gondol, hogyan v aló síth a tó ez m eg?
34. A djon m eg k é t m ó d szert a term elő -fo g y asztó p ro b lé m a m eg o szto tt p u ffe re k ­
kel és szem afo ro k k al való p ro g ra m o zá sá ra X P-n. G o n d o lja át a m eg o szto tt
p u fferek m egvalósítását m in d k é t e setb en .
35. A lapkezelő alg o ritm u so k at á ltaláb an szim ulációval tesztelik. E b b e n a gy ak o r­
latb an az a felad ata, hogy készítse el egy olyan g ép szim u láto rát, am ely 64 d a ­
rab 1 KB m é re tű lapból álló virtuális m e m ó riá t kezel. A szim u láto r egyetlen
64 elem ű táb lá z atb a n ta rtsa nyilván a lap o k n a k m eg felelő fizikai la p k e re te k et.
A szim u láto rn ak a d ecim álisán m e g a d o tt v irtuális c ím ek et egy fájlból so ro n ­
k én t kell beolvasnia. H a a m egfelelő lap a m em ó riá b a n van, csak egy ta lá la to t
kell feljeg^'eznie. H a nem ez a helyzet, ak k o r m eg kell hívnia a lap h ely ettesítő
eljárást, am ely kiválasztja az eltáv o lítan d ó lap o t (vagyis a felü líran d ó tá b la ­
elem et), és egy laph ián y t kell regisztrálnia. T ényleges lap csere n em tö rtén ik .
G e n eráljo n egy véletlen szám o k at ta rtalm a z ó fájlt, és tesztelje m ind az L R U ,
m ind a F IF O haték o n y ság át. E zu tán g en e rá ljo n a lokalitás szim ulálására
olyan fájlt, am elyben a cím ek x százaléka négy b ájttal nagyobb a m egelőzőnél.
F u ttasso n tesztek et x- k ü lö n b ö ző é rté k e ire , és összesítse az ered m én y ek et.
36. A 6.25. áb rán lá th a tó p ro g ra m v égzetes versen y h ely zetet tartalm az, mivel a
k ét szál a közös v álto zó k at szabályozatlanul éri el, an élk ü l hogy sz em afo ro k at
vagy m ás kölcsönös k izárási te c h n ik á t h aszn áln án ak . F u ttassu k le a p ro g ra ­
m ot, és nézzük m eg, m ennyi idő m úlva fagy le. H a nem tu d ju k lefagyasztani,
m ódosítsuk úgy, hogy az m .in és az m .o u t b eállítása közé ik tassu n k be valam i
7.1. B E V E Z E T É S A Z A S S E M B L Y N Y ELV BE 525

lens p ro g ram g en erálására, b ár néh a a fo rrásp ro g ram o t a könnyebb é rte lm e z h e tő ­


^ Az assembly nyelv szintje ség m ia tt egy közbülső fo rm á ra alakítják ál (például Java-bájtkód).
A tárgyprogram végrehajtásakor csak három szint érdekes, a m ikroarchitektúra
szintje, az ISA-szint és az operációs rendszer gép szintje. Vagyis fu ttatásk o r a szám í­
tógép m em óriájában három pro g ram van, a felhasználó tárgypi ogram ja, az o p eráci­
ós rendszer és a m ikroprogram (ha egyáltalán van). N yom a sincs az eredeti fo rrás­
program nak. Ebből adódik, hogy a végrehajtáskor jelen tk ező szintszám ok k ü lön­
b ö zh etn ek a fordítást m egelőző szintszám októl. M eg kell jegyeznünk, hogy a szintek
definiálásánál mi a program ozók által használatos utasításokat és nyelvi szerkezete­
k et alkalm azzuk (nem pedig im plem entációs technikát), míg m ás szerzők a végre­
hajtási idejű értelm ező és a fordító szintjeit hangsúlyozottabban m egkülönböztetik.

A leg m o d ern eb b szám ító g ép ek en m eglevő h áro m k ü lö n b ö ző szin tet a 4., 5. és


6. fejezetb en tárgyaltuk. E z a fejezet egy olyan további szinttel foglalkozik, am ely 7.1. Bevezetés az assembly nyelvbe
lényegében m ind en k o rszerű szám ító g ép n él m eg találh ató , ez az assem bly nyelv
szintje. A z assem bly nyelv szintje egy lényeges d o lo g b an e lté r a m ik ro a rc h ite k tú ra , A fo rd ító k at durván két csoportba osztják aszerint, hogy milyen a kapcsolat a fo r­
az ISA- és az o p eráció s re n d sz e r gép szintjétől - m egvalósítása ugyanis értelm ezés rásnyelv és a célnyelv között. H a a forrásnyelv lényegében szim bolikus form ája a n u ­
helyett inkább fo rd ítással tö rtén ik . m erikus gépi nyelvnek, akkor a fo rd ító t a.ssem blem ek hívják, a forrásnyelvet pedig
A z olyan p ro g ra m o k a t, am elyek egy a d o tt nyelven írt alkalm azói p ro g ra m o t assem bly nyelvnek. A bban az esetben, am ikor a forrásnyelv a Javához vagy a C -hez
egy m ásik nyelvre a lak ítan ak át, fo rd ító k n a k nevezzük. A zt a nyelvet, am elyben az hasonló m agas szintű nyelv, és a célnyelv vagy num erikus gépi nyelv, vagy egy ilyen­
e re d e ti pro g ram íródik, fo rrásn y elv n ek hívják, célnyelvnek p ed ig azt, am elyre az nek a szim bolikus form ája, akkor a tran szfo rm áto rt fo rd ító p ro g ram n ak nevezik.
átalak ítás tö rtén ik . A forrásnyelv és a célnyelv is egy-egy szintet definiálnak. H a a
processzor képes forrásnyelvű p ro g ra m v ég reh a jtá sá ra , ak k o r szükségtelen a fo r­
rásnyelvű pro g ram célnyelvre való átalak ítása. 7.1.1. Mi az assembly nyelv?
A k k o r van szükség fo rd ításra, h a a p ro cesszo r (vagy a h ard v er, vagy az é rte l­
m ező) értelm ezn i tu d ja a célnyelvet, de a forrásnyelvet nem . H elyes fo rd ítá s e se ­ Egy egyszerű assem bly nyelv olyan nyelv, am elyben m indegyik u tasításn ak egyet­
ten az á ta lak íto tt p ro g ram fu tá sá n a k e red m én y e ugyanaz, m in th a a fo rrásn y el­ len gépi u tasítás felel m eg. M ás szavakkal, a gépi u tasításo k és az assem bly p ro g ­
vi p ro g ram o t közvetlenül értelm ezn i tu d ó p ro cesszo r végezte volna a fu ttatást. ram utasításai között egy-egy értelm ű m eg feleltetés van. H a az assem bly program
K ö v etkezésképp en lé tre h o z h a tó olyan szint, am elyen írt p ro g ra m o k a t a procesz- m ind en so ra p o n to san egy u tasításból áll, és m in d en gépi szó p o n to san egy gépi
szorok szám ára nem kell először egy célszin tre átalak íta n i, hogy aztán az e re d m é ­ u tasítá st táro l, ak k o r egy n soros assem bly p ro g ra m n a k egy n szavas gépi kódú
nyül k a p o tt célszintű p ro g ra m o t m ár v égre tu d ják hajtani. p ro g ra m felel meg.
Fontos látni a fo rd ítás és az é rte lm e z é s közö tti k ü lö n b ség et. F o rd ítá s esetén M ivel assem blyben p rogram ozni sokkal könnyebb, ezért a gép i kódú (h ex ad e­
az e re d e ti forrásnyelvű p ro g ram v ég reh ajtása n em k ö zvetlen. E lő szö r az e re d e ­ cim ális) nyelv helyett inkább az assem bly nyelvet használják. Ó riási a különbség,
ti pro g ram m al ekvivalens tá r g jp ro g r a m r a vagy v é g re h a jth a tó b in á ris p ro g ra m ra hogy szim bolikus nevek és cím ek haszn álh ató k , vagy csak bináris vagy oktális a la ­
való átalak ítás tö rtén ik , és e n n ek a fo ly am atn ak csak a teljes b efejezése u tán kerül kú nevek és cím ek. A legtöbb em b er képes m egjegyezni, hogy az ADD, SUB, MÚL,
so r a tárgyprogram v ég reh ajtására. T ehát a fo rd ítá sn a k az alábbi k é t e lk ü lö n ü lő illetve a DIV az összeadás, a kivonás, a szorzás, illetve az osztás rövidítése, de nem
lépése van; tu d ja m egjegyezni az ezek n ek m egfelelő, a gép által használt nu m erik u s é rté k e ­
ket. A z assem bly nyelven p ro g ram o zó k n ak csak a szim bolikus neveket kell tu d ­
1. Egy célnyelvű ekvivalens p ro g ram előállítása. niuk, mivel gépi k ó d d á alak ításu k at az assem bler átvállalja.
2. A z ú jk én t g e n e rá lt p ro g ram v ég reh ajtása. H asonlók m o n d h ató k el a cím zéssel kapcsolatban is. A z assem bly program ozo
szim bolikus neveket a d h at a m em óriahelyeknek, am elyeket az assem bler m egfele­
E zek a lépések p árh u z a m o san n em fo rd u ln a k elő. A m ásodik lépés addig nem lő num erikus értékké alakít át. A gépi kódban program ozónak m indig a cím ek n u ­
k ezd ő d h et, am íg az első be n em fejező d ö tt. A z értelm e z ő n él csak egyetlen lépés m erikus értékével kell dolgoznia. E zért aztán m anapság senki sem program oz gépi
van: az e re d e ti fo rrá sp ro g ra m v ég reh ajtása. E lő ze tese n nincs szükség egy ekviva- kódban, jó lleh et évtizedekkel korábban, m ielőtt az assem bler m egjelent, ezt tettek.
526 7. A Z A S S E M B L Y N YELV SZ IN T JE 7.1. B E V E Z E T É S A Z A S S E M B L Y N Y ELV BE 527

A z assem bly nyelveknek a m agas szintű nyelvektől e lté rő m ás tu lajd o n ság a is ram o zó i időegységre van szükségük. A z így elkészült p ro g ram ró l felteh ető , hogy a
van azonkívül, hogy az assem bly u tasításo k eg y értelm ű en lek é p e z h e tő k gépi k ó ­ tesztágyban a futási ideje kb. 33 m áso d p erc, mivel egy okos assem bly p ro g ram o zó
dú utasításokba. A z assem bly p ro g ram o zó a célgép m in d en szerk ezeti elem éh ez egy okos fo rd ító p ro g ra m o t 3-szorosan felü lm ú lh at (jóllehet ezek az arányok m á ­
és u tasításáh o z h o zzáférh et. A m agas szintű nyelven p ro g ram o zó ezt n em te h e ­ sok is le h etn ek ). A 7.1. á b ra ezt a helyzetet m u tatja be.
ti m eg. Például, ha a célgép ren d elk ezik egy tú lcso rd u lásb ittel, a k k o r ez egy as­ A fentebbi észrevétel szerint a k ó d n ak egy parányi része felelős a végrehajtási
sem bly p ro g ram m a l ellen ő rizh ető , m íg egy Jav a-p ro g ram ilyen vizsgálatra kö z­ idő túlnyom ó részéért, am i leh ető ség et ad egy további m egközelítésre. Legyen a
vetlenül kép telen . A z assem bly p ro g ram m a l a célgép u ta sításk észletén ek bárm ely p ro g ram először m agas szintű nyelven írva. E zu tán egy m éréssorozat végezhető,
u tasítása v ég reh ajth a tó , míg a m agas szintű nyelven írt p ro g ra m ra ez nem igaz. am elyből m e g h atáro zh ató , hogy a program m ely részei dolgoznak a futási idő leg­
R öviden: bárm i, am i gépi k ó d b an m eg te h e tő , az assem bly nyelvben is, de sok re ­ nagyobb részében. A z egyes eljárásokban e ltö ltö tt idő m érésére rendszerint a szá­
giszter és m ás haso n ló szerk ezet a m agas szintű nyelven p ro g ram o zó szám ára nem m ító g ép ren d szeró ráját használják, nyilvántartva, hogy az egyes ciklusok hányszor
hozzáférh ető . V annak olyan nyelvek, ilyen a C p ro g ram o zási nyelv, am elyek ö tv ö ­ h a jtó d ta k végre, és ehhez hasonló m ás jellem zőket. P éld ak én t tegyük fel, hogy a
zik a két cso p o rt tu lajd o n ság ait, vagyis m agas szintű nyelvi szintaxisuk van, u gyan­ teljes p ro g ram 10% -a dolgozik a végrehajtási idő 90% -ában. E z azt jelenti, hogy
ak k o r egy assem bly nyelvű gép szám os hozzáférési lehetőségével is b írnak. egy 100 m ásodperces felad at 90 m áso d p ercet tölt ebb en a kritikus 10% -ban és 10
M ég egy utolsó eltérés, am elyre érd em es rávilágítani, hogy az assem bly p ro g ra ­ m á so d p ercet a pro g ram fen n m arad ó 90% -ban, M ost en n ek a 10%-nyi kritikus rész­
m ok a szám ítógép ek n ek csak bizonyos család jáb an fu tta th a tó k , m íg egy m agas szin­ nek a hatékonysága je len tő sen m egnövelhető assem bly k ódba való átírással. E zt a
tű nyelven írt p ro g ram poten ciálisan sok g épen h aszn álh ató . Sok alkalm azás esetén folyam atot a pro g ram h an g o lásán ak nevezik, am it a 7.1. áb ra szem léltet. A kritikus
nagy a gyakorlati jelen tő ség e a szoftver szám ítógépek közötti m o zg ath ató ság án ak . eljáráso k ú jraírásáh o z további 5 p rogram ozói időegységre van szükség, de ezt kö ­
v ető en az eljárások végrehajtási ideje 90 m ásodpercről 30 m ásodpercre csökken.

7.1.2. Miért használnak assembly nyelvet? A program elkészítése A program végrehajtási


programozói időegységben ideje másodpercben
A z assem bly nyelven való p ro g ram o zás n eh ézk es. N em könnyű hib a nélkül d o l­ Assembly nyelv 50 33
gozni vele. Továbbá egy p ro g ram m eg írása assem bly nyelven sokkal időigényesebb Magas szintű nyelv 10 100
Kevert megközelítés hangolás nélkül
tevékenység, m in t u g y an an n ak a p ro g ra m n a k valam ely m agas szintű nyelven tö r­
Kritikus rész 10% 1 90
té n ő m egírása. Sokkal h o sszad alm a sab b a h ib a m e n te sítés és a k arb a n ta rtá s. Egyéb rész 90% 9 10
Ilyen k örülm én y ek k ö z ö tt m ié rt p ro g ra m o zn a b árk i assem bly nyelven? K ét oka Összesen 10 100
is van ennek; a h aték o n y ság és a gép e lérh ető ség e. E lő szö r, egy g y ak o rlo tt as­ Kevert megközelítés hangolással
sem bly p ro g ram o zó gyakran sokkal kisebb és gyorsabb p ro g ram k ó d o t k észíthet, Kritikus rész 10% 6 30
Egyéb rész 90% 9 10
m in t a m agas szintű nyelven p ro g ram o zó . E b b e a k a teg ó riá b a tarto z ik sok b eág y a­
Összesen 15 40
z o tt alkalm azás, m in t egy in telligens plasztik k árty a k ódja, az eszközm eghajtók, a
B lO S -eljárások. 7.1. ábra. Az assembly és a magas szintű programozási riyeiven vaió programozás összehasonií-
M ásodszor, bizonyos eljáráso k a h a rd v e r teljes e lé ré sé t igénylik, am i re n d sze ­ tása hangolás nélkül és hangolással
rin t a m agas szintű nyelveken leh e tetlen . P éld áu l ebbe a cso p o rtb a ta rto z n a k az
o p eráció s ren d sz e r alacsony szintű m egszakításai és csapd ak ezelései, sok valós Tanulságos a m agas szintű/assem bly nyelv k ev ert m egközelítést összehasonlítani
idejű beágyazott ren d sze rn é l az eszközvezérlők. a tisztán assem bly nyelvű v álto zattal (lásd 7.1. ábra). A z u tó b b i kb. 20% -kal gyor­
A z assem bly nyelven való p ro g ram o zás első o k a (a m agas haték o n y ság ) á lta lá ­ sabb (33 m áso d p erc a 40 m ásodperccel szem ben), de tö b b m in t 3-szor olyan d rá ­
b an az egyik leg fo n to sab b szem p o n t, így kö zeleb b rő l is m egnézzük ezt. A legtöbb ga (50 p ro g ram o zó i időegység a 15-tel szem ben). A zo n b an a kevert m egközelítés
p ro g ra m ra igaz, hogy a v égrehajtási idő egy nagy sz á zalék áért a teljes k ó d n a k csu­ előnye igazából az eddig je lzettn él nagyobb, mivel egy m agas szintű nyelven m eg ­
p á n egy kis része felelős. R en d sz e rin t a p ro g ram 1 % -ára esik a vég reh ajtási idő írt h ib á tla n eljárás assem bly k ó d b a á tírá sa sokkal könnyebb feladat, m int ugyanezt
50% -a, és a p ro g ram 10% -a felelős a v ég reh ajtási idő 90 % -áért. az assem bly kód ú eljárást a sem m iből m egírni. M ás szavakkal, a kritikus eljárások
Tegyük fel, hogy egy p ro g ra m m agas szintű nyelven való m eg írásá h o z 10 p ro g ­ ú jra írá sá ra fo rd íta n d ó 5 p ro g ram o zó i időegység túlságosan óvatos becslés. H a az
ram ozói időegység kell, és az így elkészült p ro g ram vég reh ajtási ideje egy tipikus ú jrak ó d o lás valójában csak 1 p ro g ram o zó i időegységig ta rt, akkor a költség aránya
tesztágyban 100 m áso d p erc. (A tesztág y egy olyan tesztelő p ro g ram , am ellyel szá­ a k ev ert m egközelítés és a tiszta assem bly nyelvű m egközelítés között a 4 :1 arán y ­
m ítógépeket, fo rd ító p ro g ra m o k at h aso n lítan a k össze.) M ivel az assem bly p ro g ra ­ nál is jo b b a kevert m egközelítés javára.
m ozók term elék en y ség e alacsonyabb, e z é rt a teljes p ro g ram m eg írásá h o z 50 p ro g ­
528 7. A Z A S S E M B L Y NYELV SZ IN T JE 7.1. B E V E Z E T É S A Z A S S E M B L Y N Y ELV BE 529

A m agas szintű nyelven p ro g ram o zó k a b itek m o zg atásáb a n em m élyednek el, Címke Műveleti kód Opera ndusok Megjegyzés
mivel csak n é h a ad ó d ik szám u k ra olyan helyzet, am elyben a h aték o n y ság o t je le n ­ FORMULA: MOV EAX,I ; regiszter EAX = 1
tő sen javítani tu d n ák . A z assem bly p ro g ra m o z ó k n á l é p p e n ellen k ező a helyzet, ADD EAXJ ; regiszter EAX = 1+J
MOV N,EAX N = l+J
mivel ők ren d sze rin t az u tasításo k k al m an ip u láln ak , hogy ezáltal esetleg néh án y
ciklust m egtak arítsan ak . 1 DW 3 ; lefoglal 4 bájtot, beállítja 3-ra
M in d en t egybevetve m ég legalább négy olyan ok em líth ető , am ely in d o k o lttá J DW 4 ; lefoglal 4 bájtot, beállítja 4-re
teszi az assem bly nyelv tan u lm án y o zását. E lőször, mivel egy n ag y m éretű p ro jek t N DW 0 ; lefoglal 4 bájtot, beállítja 0-ra
sikere vagy sikertelen ség e fü g g h et attó l, hogy a kritik u s eljáráso k haték o n y ság á­ (a)
ban 2-szeres vagy 3-szoros jav u lást é rü n k el, ezért fo n to s, hogy am ik o r v alóban Címke Műveleti kód Operandusok Megjegyzés
szükséges, kép esek legyünk jó assem bly k ó d írására. FORMULA MOVE.L 1, DO ; regiszter DO = 1
M ásodszor, a szűkös m e m ó riak ap acitás m ia tt n é h a az assem bly kód az egyetlen ADD.L J, DO ; regiszter DO = 1+ J
lehetőség. A z intelligens plasztik k árty ák re n d elk ez n ek egy C P U -val, de ritk án van MOVE.L DO,N N = l+ J
n éhány m egabájto s m em ó riáju k , és m ég ritk á b b a n tarta lm a z n a k m erev lem ezt is a
1 DC.L 3 ; lefoglal 4 bájtot, beállítja 3-ra
lapozáshoz. E zen k o rlá to z o tt e rő fo rrá so k m ellett kell bonyolult, titk o sítással k a p ­
J DC.L 4 ; lefoglal 4 bájtot, beállítja 4-re
csolatos szám ításo k at végezniük. A z alk alm azáso k b a b e é p íte tt p ro cesszo ro k gyak­ N DCl 0 ; lefoglal 4 bájtot, beállítja 0-ra
ran a költségek m iatt csak m inim ális m em ó riáv al ren d elk ezn ek . A m e n ed z se rk a l­ (b)
k u láto ro k n ak és m ás v ezeték n élküli tápfeszü ltség g el m ű k ö d ő elek tro n ik u s b e ­
ren d ezések n ek általá b a n kicsi a m em ó riáju k a tápfeszültséggel való tak arék o sság Címke Műveleti kód Operandusok Megjegyzés

m iatt, így aztán kicsi és h aték o n y k ó d ra van itt is szükség. FORMULA: SETHI %HI(I),%R1 ! RÍ = 1címének magasabb helyi értékű bitjei
LD [%R1+%L0(I)],%R1 !R1 =1
H arm ad szo r, egy fo rd ító p ro g ra m n ak vagy egy assem b ler szám ára é rte lm e z h e tő
SETHI %HI(J),%R2 ! R2 =J címének magasabb helyi értékű bitjei
k im e n e te t kell elő állítan ia, vagy saját m ag án a k kell az assem bly eljá rá so k a t v ég re­ LD [%R2+%LO(J)],%R2 !R2 =J
h ajtan ia. É p p ezé rt a fo rd ító p ro g ra m o k m ű k ö d ésén ek m eg é rtésé h e z lényeges az NOP I várakozik a memóriából érkező J-re
assem bly nyelv m eg értése. V égül is, v alak in ek a fo rd ító p ro g ra m o t (az assem blyét ADD %R1,%R2,%R2 1R2 = Rí -1-R2
is) m eg kell írnia. SETHI %HI(N),%R1 I Rí = N címének magasabb helyi értékű bitjei
ST %R2,[%R1+%L0(N)]
N egyedszer, az assem bly nyelv vizsgálata so rán fe ltá ru lh a t e lő ttü n k a valós szá­
m ítógép. A szám ító g ép -a rc h itek tú rá t tan u ló k szám ára a g ép arch ite k tu rális szint­ 1: .WORD 3 I lefoglal 4 bájtot, beállítja 3-ra
jé n e k m egism erésére az egyetlen m ó d az, hogy bizonyos assem bly k ó d ú p ro g ra ­ J: .WORD 4 I lefoglal 4 bájtot, beállítja 4-re
m o k at írnak. N: .WORDO I lefoglal 4 bájtot, beállítja 0-ra
(0
7.2. ábra. N = l + Jkiszámítása, (a) Pentium 4. (b) Motorola 680x0. (c) SPARC
7.1.3. Az assembly utasítások alakja
a SPARC k o ráb b i (32 b ites) válto zataira. A z eg yöntetűség m iatt a m űveleti kó ­
B ár az assem bly u tasítás szerk ezete a m egfelelő gépi k ó d ú u tasítás szerk eze­ d o k n ál és a reg iszterek nevénél nagy b etű k et haszn álu n k m in d e n ü tt (ez P entium 4
té t tükrözi, m égis az e lté rő szám ító g ép ek és szintek assem bly nyelve lényegében ko nvenció), a n n ak ellen ére, hogy a Sun assem bler k isb etű t vár.
egym áshoz hasonlók, és így az assem bly nyelvek vizsgálata egységesen tö rté n h e t. A z assem bly u tasításo k négy részből tev ő d n ek össze: egy cím kem ezőből, egy
A 7.2. á b ra a Pen tiu m 4, a M o to ro la 680 x 0 és az (U itra)S P A R C eseté b e n külön- m űveleti kód m ezőből (o p co d e), egy o p e ran d u s m ezőből és egy m egjegyzés m ező ­
külön m u ta tja a z N = 1 + J é rté k a d á st v é g reh ajtó m eg felelő assem bly p ro g ra m ré ­ ből. A m em ő riacím ek n ek a d o tt szim bolikus nevek a cím kék, am elyekre az elágaz­
szeket. M indegyiknél az ü re s so r feletti u tasításo k végzik a szám olást. A z ü re s sor ta tá si v é g re h ajth ató u tasításo k b an van szükség. U gyanitt je le n n e k m eg az a d a tn e ­
alatti utasításo k az assem b lert utasítják, hogy foglaljon m em ó riah ely et az I , J és N vek, am elyek lehetővé teszn ek szim bolikus hivatkozást tá ro lt a d ato k ra. C ím kézett
változóknak, vagyis ezek n em gépi kód ú u tasításo k szim bolikus re p re z en tá n sai. u ta sítá sb an a cím ke (szokásosan) az első oszlopban helyezkedik el.
A z In tel család b an tö b b e lté rő szintaxisú assem b ler van. E b b en a fe jezetb en A 7.2. á b ra h á ro m részén ek m indegyikében négy cím ke van: F O R M U L A , /, / és
a M icrosoft M A SM assem bly nyelvét h asználjuk a p éld ák b a n . B ár vizsgálataink N . Vegyük észre, hogy a SPA RC assem blynél a cím kéket k e ttő sp o n t követi, m íg a
k ö zép p o n tjáb an a P en tiu m 4 áll, a ráv o n atk o zó m eg állap ításo k érvényesek a M o to ro la e seté b e n ilyen nincs. A z Intel az u tasításcím kéknél m egköveteli a k e ttő s­
386-osra, a 486-osra, a P en tiu m ra és a P en tiu m P ro ra is. A SPA RC -kal k ap cso la­ p o n to t, de az ad atcím k ék u tán nem . E zek az e ltérések a lényeget n em érintik. Az
tos péld ák n ál a Sun assem b lert használjuk. Itt is m indegyik m eg állap ítás érvényes assem b lerek terv ező in ek ízlése gyakran m eg leh ető sen eltérő . A z alapul szolgáló
530 7. A Z A S S E M B L Y N YELV SZ IN T JE
7.1. B E V E Z E T É S A Z A S S E M B L Y N Y ELV BE 531

arch ite k tú rá b a n sem m i sem in d o k o lja jo b b a n az egyik vagy a m ásik választást. A A P en tiu m család, a 680x0-as és a SPA RC m indegyike m egengedi a bájt-, illetve
k e ttő sp o n to s jelö lés előnye, hogy ilyenkor egy so rb an ö n álló a n is m eg jelen h et egy a szóhosszúságú és a hosszú o p e ran d u so k h aszn álatát. H o n n a n tu d ja az assem b ­
cím ke, a következő so r első oszlo p áb an , p ed ig a m űveleti kód. A fo rd ító p ro g ra ­ ler, hogy m elyik hosszat használja? A z assem b ler tervezői ism ét e ltérő m eg o ld á­
m ok szám ára ez a m eg o ld ás n é h a kényelm es. A k e ttő sp o n to s jelö lés n élkül nincs so k at v álasztottak. A P en tiu m 4-nél a k ü lönböző hosszúságú reg iszterek neve k ü ­
m ód a cím ke és a m űveleti kód m eg k ü lö n b ö ztetésére, h a ö n m ag u k b an v an n ak egy lönböző, így az EAX 32 bites, az AX 16 bites, az AL és AH 8 bites a d a to k m ozg atására
sorban. Ilyen fé lre érth e tő ség n em fo rd u l e lő a k e ttő sp o n t alkalm azása esetén . szolgál. N em így te tte k a M o to ro la tervezői, akik inkább a . L , . W, .B u tótagokkal
N éhány assem blynek m egvan az a n e m é p p e n szerencsés tu lajd o n ság a, hogy a eg ész íte tté k ki a n ev ek et a hosszú, a szó- és a b á jtm é re tn e k m egfelelően, ahelyett
cím kék hossza h at vagy nyolc k a ra k te rre k o rlá to z o tt. E zzel szem ben a leg tö b b m a­ hogy a DO stb. n evekben je lezték volna ezt. A SPARC kü lö n b ö ző m űveleti kó d o k at
gas szintű nyelv tetszőleges hosszúságú n ev ek et engedélyez. A hosszú, jó l m egvá­ használ az e lté rő hosszokhoz (például LDSB, LDSH vagy LDSW jelzi a bájtnyi, félsza­
laszto tt nevek a p ro g ra m o k a t sokkal o lv ash ató b b á, é rth e tő b b é teszik. vas, illetve szavas b e tö lté s t egy 64 bites regiszterbe). M in d h áro m m egoldás in d o ­
M in d en szám ítógép ren d elk ezik n é h á n y reg iszte rrel, de ezek nevei nagyban e l­ k olt, de ez ism ét a nyelv terv ezésén ek önkényes v o ltára m u ta t rá.
té rh e tn e k egym ástól. A P en tiu m 4 re g iszterein ek nevei EAX, EBX, ECX és így tovább. A h áro m assem bler ab b an is eltér, ahogy helyet foglalnak az ad ato k n ak . A z
A M o to ro la regiszterei tö b b e k k ö zö tt a DO, D l, D2 n ev ek et k ap ták . A SPA RC -re- In tel assem bly nyelv tervezői a DW-t (D efine W ord) v álasztották, b á r később m in t­
gisztereknek tö b b nevük is van. Itt a %R1 és %R2 n ev ek et használjuk. egy a lte rn a tív ak én t hozzáv ették a .WORD jelö lést. A M o to ro láso k n ak a DC (D efine
A m űveleti kód m ező a m űv eleti k ó d szim bolikus rö v id ítését tarta lm az z a - ha C o n sta n t) tetszett. A SPARC em b erei k ezd ettő l fogva a .WORD jelö lést részesítet­
az u tasítás egy gépi k ó d ú u tasítás m egfelelője - vagy egy assem b lern ek szóló p a ­ ték előnyben. A z e lté rő választások ism ét önkényesek.
rancsot. Egy alkalm as névválasztás csu p án ízlés k érd ése, és az assem bly nyelv te r ­ E gy assem bly u tasítás o p e ra n d u s m ezője a rra szolgál, hogy m eg h atáro zza a
v ezőinek ízlése g yakran e lté r egym ástól. cím ek és reg iszterek o p era n d u so k k é n t való h aszn álatát a gépi u tasításb an . Egy
A z In tel assem b ler tervezői úgy d ö n tö tte k , hogy a MOV k ó d o t haszn álják m ind egész ö sszeadó u tasítás o p e ra n d u s m ezője m egm ondja, hogy m it m ihez kell hoz­
a reg isztern ek m em ó riáb ó l tö rté n ő é rté k a d á sá ra , m ind egy reg iszte r ta rta lm á n a k záadni. E gy elágazó u tasításb an m egadja, hogy hova kell ugrani. A z o p eran d u so k
a m em ó riáb a való táro lására. A M o to ro la assem b ler terv ező i m in d k é t m ű v eletre le h e tn e k reg iszterek, k o nstansok, m em ó riah ely ek és így tovább.
a MOVE k ó d o t v álaszto tták . A SPARC assem b ler terv ező i az elő b b i m ű v eleth ez az A m egjegyzés m ező helyet biztosít a p ro g ram o zó k n ak , hogy hasznos m agya­
LD, m íg az utó b b in ál az ST m ellett d ö n tö tte k . T erm észetesen e z ek n ek a v álasztá­ rá z a to k a t illesszenek b e a p ro g ra m m ű k ö d ésérő l m ás p ro g ram o zó k segítésére,
soknak sem m i közük a gépi arch itek tú rá h o z . akik k éső b b használják vagy m ó dosítják a p ro g ra m o t (vagy a p ro g ram készítője sa­
Ezzel ellen tétb e n , a SPA RC a rch ite k tú rá já n a k tu lajd o n ság áb ó l következik, já t m ag a szám ára, am i hasznos leh et, h a p éld áu l egy év m úlva m ódosítani akarja a
hogy a m em ó ria elérésé h ez k é t gépi k ó d ú p aran c sra van szükség, ebből az első a p ro g ra m o t). Egy d o k u m en táció nélküli assem bly p ro g ram nagyon n eh ezen é rth e ­
SETHI, mivel 32 b ites (SPA RC 8. verzió) vagy 44 b ites (SPA RC 9. verzió) v irtuális cí­ tő a p ro g ram o zó k szám ára, gyakran m ég a készítő szám ára is. A m egjegyzés m ező
m ek et használ, míg az u tasításo k legfeljebb 22 b ites k özvetlen a d a to t tá ro lh a tn a k kizáró lag az érth e tő sé g e t segíti, nincs sem m i h a tá sa az assem bly eljáráso k ra vagy
csak. így m indig k ét u ta sítá sra van szükség a v irtuális cím ek kezeléséhez. az e lő á llíto tt kódra.

SETHI %HI(I),%R1

7.1.4. Pszeudoutasítások
u tasítás az (64 b ites) Rí reg iszte r felső 32 b itjé t és alsó 10 b itjét n u llára állítja, ez­
u tán az I 32 bites cím én ek felső 22 b itjét az Rí 10-től 31-ig te rje d ő b itpozícióiba Egy assem bly p ro g ram a v ég reh ajtan d ó gépi u tasításo k o n kívül ta rtalm azh at az
teszi el. A követk ező u ta sítás a assem b lern ek szóló p a ra n c so k a t is, péld áu l k é rh e t m em ó riafo g lalást vagy a listán
egy lap d o b ást. A z assem b lern ek szóló u tasításo k at pszeudoutasításoknak vagy n é ­
LD[%R1+%L0(I)],%R1 ha assem bler direktíváknak nevezzük. M ár lá ttu n k egy tipikus p szeu d o u tasítást a
7.2. áb rán , a DW-t. A 7.3. á b ra is tarta lm a z néh án y p szeu d o u tasítást. E zek az Intel
I teljes cím ének m eg állap ításáh o z Rí -t összead ja I cím én ek alsó 10 bitjével, kiveszi család n ak készült M icrosoft M A SM assem bleréből valók.
az itt ta lá lh a tó szót a m em ó riáb ó l, és e ltá ro lja R í -ben. Egy u ta sításo k k ö zö tti szép ­ A SEGMENT p szeu d o u tasítás egy új szegm ens k ez d e té t jelzi, az ENDS pedig egy
ségversenyben 1-10-ig te rje d ő p o n to zási skála e setén ezek az u tasításo k k ö rü lb e ­ ilyennek a végét. M eg en g ed ett, hogy elkezdjünk egy szövegszegm enst kódolni,
lül a -2 0 -a t é rn é k el, de h át a SPARC assem bly nyelv te rv e ző in ek fő szem p o n tja m ajd in d íth a tu n k egy adatszegm enst, u tá n a visszatérh etü n k a szövegszegm enshez
nem a szépség volt. A z elsődleges cél a gyors u ta sításv ég reh ajtás volt, és ezt a fel­ és így tovább.
a d a to t nagyon jó l teljesíti. A z ALIGN - re n d szerin t a d a t elhely ezésekor - olyan cím et kényszerít ki a követ­
kező so rnak , am ely arg u m en tu m án ak többszöröse. Például, ha az aktuális szeg-
532 7. A Z A S S E M B L Y N Y ELV S Z IN T JE 7.1. B E V E Z E T É S A Z A S S E M B L Y N Y ELV BE 533

Pszeudoutasítás Hatás____________________________ __________________________ helyet foglal 3 b ájtnak, és ezeknek re n d re a 11, 23, illetve a 49 k ez d ő é rté k e t adja.
SEGMENT Egy új szegmenst kezd (szöveg, adat stb.) bizonyos attribútumokkal E zen kívül definiálja a T A B L E szim bólum ot, és é rté k é t b eállítja a 11-et ta rta lm a ­
ENDS Az aktuális szegmens bezárása zó b ájt cím ére.
ALIGN A következő utasítás vagy adat igazítása A PROC és ENDP p szeu d o u tasításo k egy assem bly eljárás k ezd etét és végét defi­
EQU Üj szimbólum definiálása egy adott kifejezéssel niálják. A z assem bly eljáráso k ugyanolyan szerep et tö lte n e k be, m int m ás p ro g ra ­
DB Egy vagy több bájt lefoglalása (inicializálva) m ozási nyelveknél az eljárások. H aso n ló an , a MACRO és ENDM egy m akródcfiníció
DD Egy vagy több 16 bites fél szó számára helyfoglalás (inicializálva) h a tá sk ö ré t jelöli ki. A m akrókkal ebben a fejezetb en késó'bb m ég foglalkozunk.
DW Egy vagy több 32 bites szó számára helyfoglalás (inicializálva) A követk ező két p szeu d o u tasítás, a PUBLIC és az EXTERN a szim bólum ok lá th a tó ­
DQ Egy vagy több 64 bites dupla szó számára helyfoglalás (inicializálva) ság át szabályozzák. R en d szerin t p ro g ram jain k tö b b fájlból állnak. G yakran e lő fo r­
PROC Egy eljárás kezdete dul, hogy az egyik fájlban levő eljárás m ás fájlban levő eljárást szeretne hívni, vagy
ENDP Egy eljárás vége m ás fájlb an levő a d a tra lenne szüksége. A z ilyen hivatkozás m egoldására PUBLIC-
MACRO Egy makródefiníció kezdete k én t kell definiálni azt a szim bólum ot, am elyet elérh ető v é ak aru n k ten n i m ás fáj­
ENDM Egy makródefiníció vége lok szám ára. H aso n ló an , ha m eg akarju k előzni az assem b ler d efiniálatlan szim bó­
PUBLIC Szimbólumok láthatóvá tétele más modulok számára lu m ra v o n atkozó h ib aü ze n eteii, ak k o r a szim bólum ot EXTERN-né kell nyilvánílani,
EXTERN Más modulban definiált szimbólum felhasználása am ely az assem b lern ek jelzi, hogy a szim bólum egy m ásik fájlban kerül definiálás­
INCLUDE Más fájl beillesztése ra. A zo k n ak a szim bólum oknak a h atásk ö re, am elyek nem e k ét pszeu d o u tasítás
IF Egy adott kifejezés teljesülése esetén fordítandó rész kezdete valam elyikével definiáltak, csak az a d o tt fájlra te rjed ki. E z az alap é rtelm ezés azt
ELSE Az IF feltétel nem teljesülése esetén fordítandó rész kezdete je le n ti, hogy p éld áu l a F O O szim bólum több fájlban is h aszn álh ató anélkül, hogy
ENDIF A feltételesen fordítandó rész vége hib a lép n e fel, m ert m indegyik definíció lokális a saját fájljára nézve.
COMMENT Egy új megjegyzés kezdő karakterének definiálása A z INCLUDE p szeu d o u tasítás az assem blert egy m ásik fájl elérésére utasítja, a m e ­
PAGE Listázásban lapdobás kikényszerítése lyet teljesen bem ásol az aktuális helyre. A z ilyen beágyazott fájlok gyakran ta rta l­
END Az assembly program vége m azn ak tö b b fájlban h asználatos definíciókat, m ak ró k at és m ás szim bólum okat.
T ö b b assem bler, b eleé rtv e a M A SM -ot is, tám o g atja a feltételes végrehajtást.
7.3. ábra. Pentium 4 assembler (MASM) néhány pszeudoutasitása P éld á u l a k övetkező utasításso ro zat helyet foglal egy 32 bites szónak és cím ét
W S lZ E -n a k nevezi el.
m en s m ár ta rtalm az 61 bájtnyi a d a to t, ak k o r az ALIGN 4 u tá n a k ö v etk ező e lé rh e tő
cím a 64. WORDSIZE EQU 16
A z EQU-val egy k ifejezésnek a d h a tu n k szim bolikus nev et. P éld á u l a IF WORDSIZE GT 16
WSIZE: DW 32
BASE EQU 1000 ELSE
WSIZE: DW 16
ENDIF
p szeu d o u tasítás u tá n a BASE szim b ó lu m o t h aszn álh atju k m in d e n h o l a p ro g ra ­
m u nkban az 1000 helyett. A z EQU u tá n i kifejezés tö b b d efiniált szim b ó lu m o t is ta r ­ A W S IZ E szó k ezd ő érték e 32 vagy 16 a W O R D S IZ E k o n stan s érték étő l függően,
talm azhat, aritm etik ai vagy m ás m űveleti jelek k el összekapcsolva, m in t p é ld áu l az am ely e se tü n k b en 16. E zen k o nstrukció segítségével írh a tó olyan program , am ely
alábbi kifejezésben: 16 b ites g ép ek en (m int a 8088) vagy 32 bites gép ek en (m int a P entium 4) is lefor­
d íth ató . A gépfüggő részek IF ... ENDIF szerkezetbe való beágyazással, m ajd egyet­
LIMIT EQU 4 * B A SE+ 2000 len, a W O R D SIZ E -ra vonatk o zó definíció m egváltoztatásával a program a u to m a ­
tik u san le fo rd íth ató akárm ilyen gépre. E zt a m egközelítést választva egy fo rrás­
A legtöbb assem b lern él, id eé rtv e a M A S M -ot is, egy szim bólum nak m á r d efin iált­ p ro g ram h asználhatóvá te h e tő k ü lönböző célgépek szám ára, am i m egkönnyíti a
n ak kell lennie, m ie lő tt egy kifejezés felh aszn áln á; lásd az előzőket. szoftver fejlesztését és k arb a n ta rtá sá t. Sok ese tb e n a gépfüggő definíciókat, m int
A következő négy p szeu d o u tasítás, a DB, DD, DW és a DQ re n d re 1, 2, 4, illetve a W O R D S IZ E definiálása, egyetlen fájlba gyűjtik, ezek külö n b ö ző v á l t o z a t a i t az­
8 bájtnyi helyet foglalnak le egy vagy tö b b változó szám ára. P éld áu l a tá n a k ü lö n b ö ző g ép ek h ez rendelik. A m egfelelő definíciós fájl b e s z e r k e s z t c s é v e l
a p ro g ra m könnyen le fo rd íth a tó a különböző gépekre.
TABLE DB 11,23,49
534 7. A Z A S S E M B L Y N Y ELV S Z IN T JE 7.2. M A K R Ó K 535

A COMMENT p szeu d o u ta sítá s leh ető v é teszi a felh aszn álón ak , h ogy a m egjegyzés 1. A m ak ró fej, am ely m egadja a m ak ró nevét.
határait a p o n to sv e ssz ő h ely ett m ás szim bólum m al je le z z e . A PAGE-dzsel az a s­ 2. A m ak ró tö rzs, am ely a k ó d o t tartalm azza.
sem b lertő l kért listázást vezérelh etjü k . V égü l az END a program v é g ét jelö li. 3. A m a k ró végét jelző p szeu d o u tasítás (p éld áu l ENDM).
A M A S M -ban v an n ak m ég m ás p szeu d o u tasításo k is. M ás P entium 4 assem b­
lerek m ás pszeu d o u tasítás-g y ű jtem én n y el ren d elk ezn ek , nem csak az arch ite k tiira A m ik o r az assem b ler e lér egy m akródefiníciót, azt elm enti egy m akródefiníciós
elté rő volta m iatt, h a n e m az assem b ler k észítőjének ízlése m ia tt is. tá b lá b a a k ésőbbi h asználat szám ára. E ttő l a p o n ttó l kezdve valahányszor a m akró
neve m egjelenik (SW A P a 7.4. áb rán lá th a tó p é ld áb a n ), az assem bler m indannyi­
szor a m ak ró tö rzzsel helyettesíti. M ak ró liív ásk én t ism eretes a m ak ró n év m űveleti
k ó d k én t tö rté n ő alkalm azása, és m a k ró k ife jtésn ek nevezik a m akrótörzzsel való
7.2. Makrók h ely ettesítés folyam atát.

A z assem bly nyelven p ro g ram o zó k gyakran u ta sításso ro za to k töb b szö ri ism étlésé­ MOV EAX,P SWAP MACRO
re kényszerülnek egy p ro g ra m o n belül. A legnyilvánvalóbb m eg o ld ása e n n ek , ha MOV EBX,Q MOV EAX,P
egyszerűen b em áso lju k a m egfelelő u tasításo k at m in d en olyan helyre, ahol szük­ MOV Q,EAX MOV EBX,Q
MOV REBX MOV OEAX
séges. H a az u tasítá sso ro z a tu n k hosszú vagy sokszor kell alkalm azni, a k k o r fára sz ­
MOV REBX
tóvá válik az ism ételt beírás. MOV EAX,P ENDM
Egy altern atív m egközelítése en n ek a p ro b lém án ak az, hogy az u ta sítá sso ro z a t­ MOV EBX,0
ból eljárást készítünk, és az eljárást o tt hívjuk m eg, ahol szükségünk van rá. E n n e k MOV 0,EAX SWAP
a stratég ián ak az a h átrán y a, hogy m indig kell egy hívó és egy visszatérő utasítás, MOV REBX
SWAP
am ik o r az eljárást végre ak arju k hajtani. H a az u ta sításso ro za t rövid, p é ld á u l k ét
utasításból áll, viszont sokszor alkalm azzuk, ak k o r az eljárásh ív áso k tö b b le tk ö lt­ (a) (b)
sége je len tő sen lelassíth atja a p ro g ram o t. A m ak ró k egyszerű és h até k o n y m eg o l­
d ást je le n te n e k olyan e setek b en , am ik o r ugyanazokat vagy közel u g y an azo k at az 7.4. ábra. Assembly kód a P és a Q változók értékeinek kétszeri felcserélésére,
u tasításo k at ism ételten ak arju k alkalm azni. (a) Makró nélkül, (b) Makróval

A m ak ró k ifejtés n em a pro g ram v ég reh ajtása alatt, h an em a fo rd ítás so rán m egy


7.2.1. A makrók definíciója, hívása, kifejtése végbe. E z lényeges szem pont. M ind a 7.4. (a), m ind a 7.4. (b) p o n to sa n ugyanazt
a gépi k ó d o t eredm ényezi. C su p án a gépi k ó d o t vizsgálva le h etetlen m egm ondani,
A m akró definíció m ód arra, hogy egy kó d részletn ek nevet adjunk. M iu tán a m a k ­ hogy a p ro g ram írásak o r h aszn áltu n k m ak ró k at vagy sem . E n n e k az az oka, hogy
ró definiálása m e g tö rté n t, a p ro g ram o zó a p ro g ram részlet h ely ett a m ak ró nevét az összes m akrókifejtés u tá n az assem bler eld o b ja a m akródefiníciókat. A kész
írhatja. A m ak ró v aló jáb an egy kó d részlet rö v idítések én t fo g h ató fel. A 7.4. (a) p ro g ra m b a n ezeknek sem m i nyom a nem m arad.
á b ra egy Pentium 4-re írt assem bly nyelvű p ro g ra m o t m u ta t, am ely k ét változó, a A m ak ró h ív áso k at és az eljáráshívásokat n em szabad összetéveszteni. A z a la p ­
p és q ta rta lm á t k étsz e r felcseréli. E zek az u tasításo k m ak ró b a n is defin iálh ató k , v ető k ü lö n b ség közö ttü k , hogy a m akróhívás egy assem b lern ek szóló parancs,
m int ahogy a 7.4. (b) áb ra m u tatja. A m ak ró definíciója u tá n m in d en SW A P e lő ­ am ellyel a m ak ró n év n ek a m ak ró tö rzzsel való h ely ettesítését kérjük. A z eljárásh í­
fo rd u lása a követk ező négy sorral helyettesítődik: vás egy gépi utasítás, am ely b eép ü l a tárg y k ó d b a és később v ég rehajtódik, am ikor
is az eljárás m eghívásra kerül. A 7.5. áb ra a m akró h ív áso k at és az eljáráshívásokat
MOV EAX,P hasonlítja össze.
MOV EBX,Q
L én y eg éb en az assem bly pro g ram fo rd ítását legjobb egy k é tm e n e te s folyam at­
MOV Q,EAX
nak tek in ten i. A z első m e n etb en m in d en m akródefiníció tá ro lá sra kerül, a m a k ró ­
MOV REBX
hívások p ed ig kifejtésre kerü ln ek . A m ásodik m en e tb e n a k a p o tt kód feldolgozása
A p ro g ram o zó a SW A P m a k ró t a fen teb b i négy utasítás rö v id ítések én t definiálta. úgy tö rté n ik , m in th a ez lett volna az e re d e ti p rogram . így nézve a folyam atot, e lő ­
B ár a kü lö n b ö ző assem b lerek kissé elté rő en jelölik a m ak ró d efin íció k at, a z o n ­ ször a fo rrásk ó d ú p ro g ram kerül beolvasásra, m ajd e n n ek egy olyan pro g ram m á
ban m in d en m akró d efin íció ugyanazon alapvető részekből ép ü l fel, ezek a k ö v et­ való á talak ítása tö rtén ik , am elyben az összes m akróhívás helyettesítve van a m eg­
kezők: felelő m ak ró tö rzzsel és a m akródefiníciók ezt követően tö rlő d n ek . A z így előálló
assem bly p ro g ram b an m ár nincsenek m akrók, és az assem bler fel tu d ja dolgozni.
536 7. A Z A S S E M B L Y N YELV S Z IN T JE 7.2. M A K R Ó K 537

Szem pontok M akróhívás Eljáráshívás A 7.6. (b) á b ra k c tp a ra m c te re s m a k ró t használva m u ta tja a 7.6. (a) részben levő
Mikor történik a hívás? Aforditás közben A program végrehajtása p ro g ram á tírt válto zatát. A P I óííP2 szim bólum ok a form ális p a ra m é te re k . A m ak ­
közben ró k ifejtésk o r a m ak ró tö rz sb en m in d en P l elő fo rd u lás az első aktuális p a ra m é te r­
A törzs minden híváskor bemásolódik Igen N em rel hely ettesítődik. H aso n ló an , m inden P2 elő fo rd u lás a m ásodik aktuális p a ra m é ­
a tárgyprogramba? _______________ te rre l h elyettesítődik.
A hívó utasítás elhelyezésre kerül a Nem Igen
tárgyprogramban és később hajtódik végre? CHANGE P, Q
Szükséges visszatérő utasítás a hívás Nem Igen
befejezése után?
m ak róh ív ásb an a f az első, a g a m ásodik aktuális p a ra m é te r. így a 7.6. áb ra p ro g ­
A törzsnek hány másolata Jelenik meg IVlakróhívásonként egy
a tárgyprogramban?
ram jaib ó l g en erált fu tta th a tó p ro g ram o k azonosak. A p ro g ram o k utasításai és az
o p e ra n d u sa i teljesen m egegyeznek.
7.5. ábra. A makróhívások és az eljáráshívások összehasonlítása

Jusson eszünkbe, hogy egy p ro g ram v aló jáb an b etű k b ő l, szám jegyekből, szó k ö ­ 7.2.3. Előnyös tulajdonságok
zökből, írásjelekből és a „kocsi vissza” (új so rra v áltás) k a ra k te re k b ő l felép ü lő k a ­
rak terlán c. A m ak ró k ifejtés egy k a ra k te rlá n c bizonyos részlán cain ak m ás k a ra k ­ A leg tö b b m ak ró assem b ler seregnyi előnyös tulajdonsággal könnyíti m eg az as­
terlánccal való hely ettesítése. A m ak ró k h a sz n á lata egy olyan k arak terlán c-m an i- sem bly nyelven pro g ram o zó k helyzetét. E b b e n a fejezetb en szem ügyre vesszük a
pulációs technik a, am ely n em tö rő d ik a k a ra k te rlá n c jelen tésév el. M A S M n éh án y ilyen jellegíí sajátosságát. M in d en m akrózást tám o g ató assem b ler­
nél m egjelenik a cím ke tóbbszöröződési problém a. Tegyük fel, hogy egy m akróban
van egy felté teles v ezérlésátad ó u tasítás és egy cím ke, am elyre az ugrás történik.
7.2.2. Paraméteres makrók H a a p ro g ra m b an e rre a m ak ró ra k ét vagy több hívás is van, akkor a m ak ró tö rz s­
ben levő cím ke többszöröződik, am i ford ítási h ib át okoz. A p ro b lém a egyik m egol­
A z előzőkben le írt m ak ró zási leh ető ség olyan p ro g ra m o k rö v id ítésére h a sz n á lh a ­ dási m ódja, h a a p ro g ram o zó m in d en m akróhívást k ü lönböző cím kével, m int a k tu ­
tó, am elyben az ism ételten e lő fo rd u ló u ta sítá sso ro z a t p o n to sa n ugyanaz. G yak ran ális p a ra m é te rre l ad ki. Egy m ásik m egoldás (am elyet a M A S M is alkalm az), hogy
egy p ro g ram tö b b olyan u ta sítá sso ro z a to t ta rta lm az , am elyek nem p o n to sa n azo ­ lokális cím ke definiálását engedi m eg, és így a m ak ró m inden egyes k ifejtésekor az
nosak, csak m ajd n em . Ilyen lá th a tó a 7.6. (a) áb rán . E n n é l a p é ld án á l az első so ro ­ assem b ler au to m atik u san k ü lönböző cím eket g enerál. V annak olyan assem blerek,
zat a Pa felcseréli a Q -val, a m ásodik so ro zat az R -t cseréli fel az 5'-sel. am elyeknél az a szabály, hogy a n u m erik u s cím kék au to m atik u san lokálisak.
A leg tö b b assem bler, így a M A SM is m egengedi a m akródefiniálást a m akrókon
MOV EAX,P CHANGE MACRO Pl, P2 belül. E z a sajátosság a feltételes assem bly utasítással kom binálva nagyon hasznos
MOV EBX,Q MOV EAX,P1
ko n stru k ció . G yakori, hogy u gyanannak a m ak ró n ak a definiálása van az IF utasí­
MOV Q,EAX MOV EBX,P2
MOV P,EBX MOV P2,EAX tás m in d k ét ágában, ezt szem lélteti a következő példa:
M0VP1,EBX
MOV EAX,R ENDM Ml MACRO
MOV EBX,S IF W0RDSIZEGT16
MOV S,EAX CHANGE P, 0 M2 MACRO
MOV R,EBX
CHANGE R, S ENDM
(a) (b)
ELSE
M2 MACRO
7.6. ábra. Két közel azonos utasítássorozat, (a) Makró nélkül, (b) Makróval
ENDM
A m ak ró assem b le rek kezelni tu d ják a közel azo n o s u ta sítá sso ro z a to k a t tigy, ENDIF
hogy form ális param éterek alk alm azását e n g ed ik a m ak ró d efiníció k b an és ak­ ENDM
tuális param étereket a m ak róhívásokban. M a k ró k ifejtésk o r a m ak ró tö rz sb en le ­
vő összes form ális p a ra m é te r a m eg felelő ak tu ális p a ra m é te rre l helyettesítődik.
A z aktuális p a ra m é te re k e t a m ak ró h ív ás o p e ra n d u s m ező jéb en kell elhelyezni.
538 7. A Z A S S E M B L Y N YELV SZ IN T JE 7.3. A Z A S S E M B L E R M EN ET EI 539

M in d k ét esetb en az M 2 m ak ró d efin iálására k erü l sor, de a m ak ró d efin íció attól


függ, hogy a p ro g ram o t 16 hites vagy 32 b ites szám ító g ép en h ajtju k végre. H a az
7.3. Az assembler menetei
M l m a k ró ra nincs hívás, a k k o r az M 2 m ak ró d efiníció teljesen elm arad . A követk ező fejezetek b en az assem bler m ű k ö d ését írjuk le röviden. B ár k ü lö n b ö ­
U to lsó k én t em lítjük, hogy a m ak ró k h ív h atn ak m ás m ak ró k a t, b e leértv e ö n ­ ző assem bly nyelvvel ren d elk ezn ek a szám ítógépek, m égis az assem b ler m en etei
m ag u k at is. H a egy m ak ró rekurzív, vagyis ö n m ag át hívja, ak k o r kell lennie olyan az e lté rő g ép ek en hasonlók, és így ezek együttesen vizsgálhatók.
p a ra m é te ré n e k , am elynek az é rté k e változik m in d en m ak ró k ifejtésk o r, és h a a p a ­
ra m é te r egy bizonyos é rté k e t elér, a k k o r a rek u rzió b efejeződik. M ásk ü lö n b en az
assem bler végtelen ciklusba k erü lh et. H a ez bekövetkezik, ak k o r a felhasználói 7.3.1. Kétmenetes assemblerek
beavatkozással kell az assem b lert m egállítani.
M ivel az assem bly nyelvű p ro g ram o k egysoros utasításo k b ó l állnak, ezért te rm é ­
szetesn ek tű n ik az elgondolás, hogy az assem bler, m iu tán egy u tasítást beolvasott,
7.2.4. A makróassembler működése azt gépi nyelvre fordítsa, és a g en erált k ó d o t egy fájlba helyezze el, míg a m egfe­
lelő listarészeket, ha v annak ilyenek, egy m ásik fájlba. E zt a fo lyam atot aztán a d ­
Egy m akrózási leh ető ség e t b iztosító assem b lern ek a k ö v etk ező k é t fe la d a to t is el dig ism ételn é, am íg a teljes pro g ram fo rd ítása elkészül. Sajnos, ez a stratég ia nem
kell látnia: a m ak ró d efin íció k tá ro lá sá t és a m akró h ív áso k k ifejtését. E ze k n e k a h aszn álható .
funkcióknak a vizsgálatára té rü n k m ost rá. Tekintsünk ugyanis egy olyan helyzetet, am ikor az első u tasítás egy ugrás az
A z assem blern ek kezelni kell egy olyan táb lá z a to t, am ely az összes m ak ró n ev et L -re . E k k o r az assem bler ezt az u tasítást addig n em tu d ja lefo rd ítan i, am íg az L
tartalm azza, és m indegyik névvel együtt egy m u ta tó t a tá ro lt m ak ró d efin íció ra, u tasítás cím ét nem ism eri. E lő fo rd u lh at, hogy az L utasítás a p ro g ram végéhez van
hogy visszakereshesse, am ik o r szükséges. V annak assem b lerek , am elyek a m a k ­ közel, és az assem bler k é p telen m eg h atáro zn i a cím et anélkül, hogy m ajdnem a
ró n ev ek et egy k ü lö n táb lá z a tb a n táro lják , és v an n ak olyanok, am elyek egy közös teljes p ro g ra m o t előzőleg végigolvasná. E zt a helyzetet előre hivatkozási problé­
tá b lá z a to t kezeln ek az összes m űveleti k ó d szám ára, am elybe a gépi u tasításo k , a m á n a k nevezzük, mivel egy szim bólum , esetü n k b en ez az L , azt m egelőzően kerül
p szeu d o u tasításo k és a m ak ró n ev ek is b e le tarto z n a k . alk alm azásra, m ielő tt definiálva lenne, vagyis egy olyan szim bólum ra tö rté n ik h i­
A m ik o r az assem b ler egy m ak ró d efin íció h o z ér, ak k o r a tá b láz a tb a felveszi a vatkozás, am elynek a definíciója később tö rté n ik m eg.
m ak ró nevét, a form ális p a ra m é te re k szám át és egy m u ta tó t, am ely egy m ásik tá b ­ A z elő re hivatkozási p ro b lém a két m ód o n kezelhető. A z első m egközelítés sze­
lázatra - a m akródefiníciós táb lá z a tra - fog m u tatn i, ahova a m a k ró tö rz se t táro ln i rin t az assem bler a fo rrásp ro g ram o t k étszer olvassa. A fo rrásp ro g ram olvasási fo­
fogja. E k k o r a form ális p a ra m é te re k a lap ján készül egy lista is, am elyre a definíció lyam atát m enetnek hívjuk; azokat a fo rd ító k at, am elyek a bem en e ti p ro g ram o t k é t­
feldolgozásakor van szükség. E z u tá n a m a k ró tö rz se t olvassa, és a m akródefiníciós szer olvassák, kétm enetes fordítóknak nevezzük. A k étm en etes fo rd ító az első m e­
táb lázatb an tárolja. A m a k ró tö rz sb e n e lő fo rd u ló fo rm ális p a ra m é te re k e t sp eciá­ n e tb e n a szim bólum ok definícióit, beleértve a cím keszim bólum okat is, összegyűjti
lis szim bólum m al jelöli m eg. E zt lá th a tju k a C H A N G E m ak ród efin íció alábbi tá ­ és egy tá b lázatb an tárolja. A m ásodik m en et k ezd etek o r m ár m inden szim bólum
ro lt fo rm ájáb an , ahol a p ontosvessző a „kocsi visszát” jelöli, és az et (& ) k a ra k te r é rté k e ism ert, így előre hivatkozási p ro b lém a n em fo rd u lh at elő, és az assem bler
a form ális p a ra m é te re k e t jelzi: m indegyik u tasítást képes olvasni, fordítani és tárolni. A nnak ellenére, hogy ez a
m egközelítés egy extra olvasási m e n e te t igényel, az alap g o n d o lat egyszerű.
MOVEAX, &P1; MOV EBX, &P2; M 0V&P2,EAX; MOV&P1,EBX; A m áso d ik m eg közelítés az assem bly p ro g ra m o t csak egyszer olvassa, egy köz­
b ülső fo rm á b a transzform álja, és ezt a fo rm át a m em ó ria egy tá b lázatáb a helyezi.
A m akródefiníciós táb láz a t a m a k ró tö rz se t egyszerű k a ra k te rlá n c k é n t tárolja. M ajd egy m ásodik m e n e t következik, de ez nem a fo rrásk ó d o n , han em a tá b láza­
A z assem bler az első m e n e tb e n a m űveleti k ó d o k at figyeli és a m ak ró k at kifej­ to n dolgozik. H a eleg e n d ő m em ó ria áll ren d elk ezésre (vagy virtuális m em ória),
ti. A ta lá lt m akródefiníciók m indegyikét tá ro lja a táb láz a tb a n . M ak ró h ív ásk o r az a k k o r ezzel a m egközelítéssel B/K id ő m eg tak arítás é rh e tő el. L istázási igény ese­
assem bler ideiglen esen abbahagyja a beviteli eszközről az in p u t olvasását, és e h e ­ té n a teljes fo rrásk ó d ú u tasítást a m egjegyzéssel együtt táro ln i kell. H a nincs igény
lyett a tá ro lt m ak ró tö rz set kezdi olvasni. A m a k ró tö rz sb ő l a fo rm ális p a ra m é te re ­ listázásra, a k k o r a közbülső fo rm a egy leegyszerűsített vázzá red u k álh ató .
k et elhagyja és helyükbe a hívásban szerep lő ak tu ális p a ra m é te re k e t hely ettesíti M in d k ét m ó dszernél az első m en et fe la d a ta az összes m akródefiníció tárolása,
be. A z assem bler a form ális p a ra m é te re k e t az azo k at je lző & k a rak terb ő l k ö n n y e­ és a m ak ró h ívások kifejtése elérésü k p illan atáb an . így a szim bólum ok definiálása
d én felism eri. és a m akró k ifejtések általáb an keveredve jele n tk e z n e k az első m en etb en .
540 7. A Z A S S E M B L Y N YELV SZ IN T JE 7.3. A Z A S S E M B L E R M EN ET EI 541

7.3.2. Első menet Szim bólum Érték Egyéb információk


MARIA 100
A z első m en et fő fe la d a ta az ún. szim b ó lu m táb la felép ítése, am i ta rtalm a z za m in ­ ROBERTA 111
d en szim bólum é rté k é t. A z alábbihoz h aso n ló p szeu d o u ta sítá s segítségével érték ü l MARILYN 125
a d h a tu n k egy szim bolikus n évnek a k á r egy cím két, a k á r egy é rté k e t (k o n stan s): STEPHANY 129

BUFSIZE EQU 8192 7.8. ábra. A 7.7. ábrában látható program szimbólumtáblája

A m ik o r az u tasítás cím k em ező jéb en levő szim bólum nak k o n stan st a d u n k é rté ­ A m űveleti kód táb lája az assem bly nyelv m in d en szim bolikus m űveleti kódja
kül, a k k o r az assem b lern ek tu d n ia kell, hogy a p ro g ram v é g re h ajtásak o r m i lesz (m n em o n ic) szám ára legalább egy bejegyzést nyit. A 7.9. áb rán lá th ató a m űvelc-
az u tasítás cím e. U tasítás-helyszám lálóként (ILC, Instruction Location Counter) tik ó d -tá b la egy részlete. E zek m indegyike ta rtalm az egy-egy m ező t a szim bolikus
ism ert változót kezel az assem b ler a fo rd ítá s alatt, am elyben n yom on követi a n ­ kód, a két o p eran d u s, a m űveleti kód nu m erik u s érték e, az utasítás hossza és egy
nak az u tasításn a k a fu tta tá sk o ri cím ét, am elyet é p p e n fo rd ít. A z első m e n e t k ez­ típ u sszám szám ára, m ely u tó b b i cso p o rtb a sorolja a m űveleti k ó d o k at aszerint,
d e te k o r e n n ek a v álto zó n ak az érté k e 0 -ra van beálh'tva, és m in d en egyes u tasítás hogy hány d a ra b van és m ilyen az o p eran d u su k .
feldolgozásakor az u tasítás hosszával növekszik az é rté k e , ez lá th a tó a 7.7. áb rán .
E z egy Pentium 4-es p éld a. N em fo gunk SPARC- (vagy M o to ro la -) p é ld á k a t a d ­ Műveleti Első M ásodik Műveleti kód Az utasítás Az utasítás
ni, mivel nincs lényeges különbség az assem bly nyelvek k ö zö tt, és így egy p é ld a is kód operandus operandus hexadecimálisan hossza típusa
elegendő. A zon kívül a SPARC lenne az igazi esélyes a legkevésbé olv ash ató as­ AAA - - 37 1 6
sem bly nyelvek világversenyén. ADD EAX Immed32 05 5 4
ADD reg reg 01 2 19
Címke Műveleti kód Operandusok M egjegyzés Hossz ILC AND EAX immed32 25 5 4
MARIA: MOV EAX,I EAX = I 5 100 AND reg reg 21 2 19
MOV EBXJ EBX = J 6 105
ROBERTA: MOV ECX,K ECX = K 6 111 7.9. ábra. Egy rövid kivonat a Pentium 4 assembler műveleti kód táblájából
IMUL EAX,EAX EAX = 1* 1 2 117
IMUL EBX,EBX EBX = J * J 3 119
IMUL ECX,ECX ECX = K*K 3 122 P é ld a k é n t nézzük az ADD utasítást. H a egy ADD u tasításb an az első o p e ran d u s
MARILYN: ADD EAX.EBX EAX = i* l + J * J 2 125 az EAX, és a m ásodik o p e ra n d u s egy 32 b ites közvetlen k o n stan s (immed32), akkor
ADD EAX,ECX EAX = r i + J * J + K*K 2 127 a m űveleti k ó d 0x05, és az u tasítás hossza 5 bájt. (8 vagy 16 b ites k onstans e se ­
STEPHANY: JMP DONÉ Ugrása DONÉ címkére 5 129 té n m ás a m űveleti kód, de ezt n em m u tatju k .) H a az ADD u tasításb an két regisz­
7.7. ábra. A z utasítás-helyszámláló (ILC) jelzi az utasítások memóriába töltési címeit. te rt h aszn álu n k o p e ra n d u sk é n t, ak k o r az u tasítás 2 b ájt hosszúságú, és a m űveleti
Ebben a példában a MARIA-t megelőző utasítások 100 bájtot foglalnak le k ó d ja 0x01. A 19-es u tasítástíp u s ta rto zik az összes olyan m űveleti k ó d -o p eran d u s
k o m b in áció hoz, am elyek a k ét reg iszte ro p eran d u sú ADD u tasításnál alkalm azott
A legtöbb assem b ler első m e n e te leg aláb b h áro m tá b láz a to t használ: a szim bó­ szabályt követik, és a feldolgozásuk ugyanúgy tö rtén ik . A z u tasítástíp u s lényegé­
lum táblát, a p szeu d o u tasításo k tá b lá z a tá t és a m űveleti k ó d o k táb láját. H a szük­ b en azt m o n d ja m eg, hogy a fo rd ítás so rán m elyik eljárást kell m eghívni egy a d o tt
séges, akkor m ég egy k o n stan s tá b lá z a to t is. M int ahogy a 7.8. á b ra is m u tatja, a típusú, tetszőleges u tasítás feldolgozásához.
szim bólum tábláb an m in d en szim bólum hoz egy bejegyzés tarto zik . S zim bólum okat B izonyos assem b lerek m egengedik a p ro g ram o zó k n ak , hogy közvetlen cím zést
vagy úgy definiálunk, hogy cím k ek én t haszn áljuk , vagy k ö zvetlenül definiáljuk h aszn áljan ak az u tasításo k b an , an n ak ellen ére, hogy a célnyelvben m egfelelő u ta ­
(például az EQU p szeu d o u tasítássa l). A szim b ó lu m táb la m indegyik bejegyzése ta r­ sítás nincs. A z ilyen „pszeu d o k ö zv etlen ” u tasításo k kezelése a követk ező k ép p en
talm azza m agát a szim bólum ot (vagy egy m u ta tó t rá), a n u m erik u s é rté k ét, és m ás tö rtén ik . A z assem b ler a közvetlen o p e ran d u s szám ára a p ro g ram végén m em ó ­
egyéb inform áció k at. E z az egyéb in fo rm ác ió a k ö v etk ező lehet: riah ely et foglal, és egy erre hivatkozó u tasítást generál. P éldául az IB M 3090 nagy­
g é p n ek n in csenek közvetlen u tasításai. A zo n b an a p ro g ram o zó írh atja a 14-es re ­
1. A szim bólum hoz ta rto z ó ad a tm e z ő hossza. giszter egyszavas 5 k onstanssal való feltö ltéséh ez a következőt:
2. A z áthelyezési (re lo c atio n ) bitek. (Jelzik, hogy h a a p ro g ram m ás cím re tö ltő d ik
be, m int am it az assem b ler feltételez, ak k o r a szim bólum é rté k e változik-e?) L 14,=F'5'
3. Vajon a szim bólum k ülső eljárásból elé rh e tő -e , vagy nem ?
542 7, A Z A S S E M B L Y N Y ELV S Z IN T JE 7.3. A Z A S S E M B L E R M EN ET EI 543

E zzel a p rogram o zó m egspórol egy p szeu d o u tasítást, am ely egy szót lefoglalna az E lérve az END pszeu d o u tasítást, az első m en et befejeződik. H a szükséges, akkor
5 érték n ek , és ad n a e n n ek egy cím két, am elyet aztá n az L u tasításb an használna a szim b ó lu m tábiát és a literáltáb lát rendezi. A re n d e z e tt táb lázatb an elő fo rd u ló
fel. A zokat a ko n stan so k at, am elyeknek az assem b ler au to m a tik u sa n m e m ó ria h e ­ ism étlőd ő b ejegyzéseket pedig kitörli.
lyet foglal, litc rá lo k n a k nevezik. A zon túl, hogy így a p ro g ra m o zó n a k keveseb b et
kell írnia, a literálo k alkalm azásával a p ro g ra m o lv ash ató b b á válik, m e rt a fo rrá s­ public static void pass_one() {
kódban a k o nstan s érté k e láth ató . A z assem b ler első m en e té n e k kell a p ro g ra m ­ // Egy egyszerű assembler első menetének vázlata.
boolean more_input = true; // jelző az első menet megállítására
b an elő fo rd u ló összes literálb ó l egy tá b lá za to t készíteni. A z álta lu n k p é ld a k é n t
String line, symbol, literal, opcode; // egy utasítás mezői
v ett m in d h áro m szám ítógép ren d elk ezik k özvetlen u tasításo k k al, így ezek n él lite ­
int location_counter, length, value, type; // egyéb változók
rál nem jelen ik m eg. M an ap ság a közvetlen u tasításo k teljesen m egszokottak, de final int END_STATEMENT = -2; //jelzi a bemenő adatok végét
k o ráb b an ezek et n em haszn álták . V alószínilleg, a literálo k e lte rje d t alkalm azása
ösztönözte a szám ító g ép terv ező it arra, hogy k özvetlen u tasítá so k a t v alósítsanak location_counter = 0; // az első utasítás fordítása 0 címnél
m eg. L iterálo k alk alm azása e se té n a fo rd ítás a latt egy literáltáb lázat is felépül initialize_tables(); // a kezdeti beállításokat csinálja
úgy, hogy valahányszor a fo rd ító egy literálh o z ér, felveszi a táb lázatb a. A z első
m en et u tán a tá b lá za tb a n e lő fo rd u ló tö b b sz ö rö z ő d ése k et m egszüntetik. while (more_input) { // a more_input értékét END állítja hamisra
line = read_nextline( ); // vesz egy bemeneti adatsort
A 7.10. áb ra egy assem b ler első m e n e té n e k a lap v e tő fe la d a ta it ta rta lm a z ó e l­
length = 0; // az utasítás hossza kezdetben 0
já rá st m utat. F igyelem re m é ltó eb b en a p ro g ram o zási stílus. A z eljáráso k neveit type = 0; // az utasítás típusa kezdetben 0
úgy választo ttu k m eg, hogy azok egyben jelzik az e ljárás fe la d a tá t. A legfo n to sab b
azo n b an az, hogy az első m e n e t egy olyan v ázát tarta lm a z z a az áb ra, am ely jó k iin ­ if (line_is_not_comment(line)) {
dulási p o n tk é n t szolgálhat. E lég rövid, hogy é rth e tő legyen, és m egvilágítsa a k ö ­ Symbol = check_for_symbol(line); // a sorban van címke?
vetkező lépest, nev ezetesen a b e n n e elő fo rd u ló eljáráso k elkészítését. if (symbol != null) //ha igen, bejegyzi a szimbólumot és az értéket
enter_new_symbol(symbol, location_counter);
A z eljárások k ö zö tt lesznek viszonylag rövidek, ilyen a c h e c k j o r jy m b o l, am ely
literal = check_for_literal(line); // tartalmaz a sor literált?
csupán a szim bólum k a ra k te rlá n c á t adja vissza, ha a szim bólum létezik, és 0-t ad
if (literal != null) // ha igen, akkor bejegyzi a táblázatba
vissza egyébként. M ás eljáráso k , m in t a get_length_of-typel és a get_length_of_ enter_nex_literal(llteral);
type2, hosszabbak leh e tn ek , és m ás eljá rá so k a t is hív h atn ak . Á lta láb a n a típ u so k // Most a műveleti kód típusát határozza meg. -1 az érvénytelen műveleti kódot jelzi,
szám a term ész ete se n n em k ettő , h a n e m attó l függ, hogy a fo rd íta n d ó nyelvben opcode = extract_opcode(line); // kikeresi a műveleti kód mnemonic-ot
hányféle típusú u ta sítás van. type = search_opcode_table(opcode); // az utasítás formája, pl. OP REGI, REG2
A p ro g ram o k ilyen stru k tu ráltság a a pro g ram o zó i m u n k a k ö nnyítésén túl m ás if (type < 0) // ha nem műveleti kód, akkor pszeudoutasítás?
type = search_pseudo_table(opcode);
előnyökkel is jár. A b b a n az esetb en , ha az assem blert egy cso p o rt készíti el, a k k o r
switch(type) { // meghatározza az utasítás hosszát
a különféle eljáráso k at a p ro g ram o zó k egym ás k ö zö tt szétoszthatják. A read_next_
case 1: length = getJength_of_type1 (line); break;
line eljárással a bejövő ad a tso r lényegtelen részei elrejth e tő k . H a ezek v áltoznának, case 2: length = getJength_of_type2(line); break;
például az operációs re n d szer v áltozása m iatt, a k k o r is csak egy seg éd eljárást b e fo ­ // további esetek
lyásolna, és nem ten n é szükségessé m agának a pass-one eljárásn ak a m ó d o sítását. }
A z első m en et a p ro g ra m o t olvassa, és so ro n k én t elem zi, m egkeresi a m űveleti }
k ó d o t (például ADD), m eg h a tá ro z za a típ u sá t (a lap v ető en az o p e ra n d u so k fa jtá ­
write_temp_file(type, opcode, length, line); // hasznos a második menet számára
ja alap ján ), és kiszám ítja az u tasítás hosszát. E z ek re az in fo rm ác ió k ra a m ásodik
location_counter = location_counter + length; // frissíti a loc_ctr változót
m en e tn e k is szüksége lesz, így egy leh etség es m eg o ld ás ezek k özvetlen k itáro lása,
if (type == END_STATEMENT) { //vége van a bemeneti adatoknak?
hogy ezáltal e lk e rü lh e tő legyen, hogy a k övetkező alk alo m m al egy vázszerk ezet­ more_input = false; // ha igen, akkor járulékos feladatokat hajt végre
ből kelljen a so rt elem ezni. A zo n b an a b e m e n e ti fájl ú jra írá sa m egnöveli a B/K rewlnd_temp_for_pass_two(); //többek között a temp állomány visszatekerése
tevékenységet. A C P U és a lem ez viszonylagos gyorsaságától, a fá jlre n d szer h a ­ sort_literaLtable(); //a literál tábla rendezése
tékonyságától és m ás egyéb tén y ező k tő l függ, hogy m i a jo b b , több B/K-t végez­ remove_redundant_literals(); // a többszörös előfordulás megszüntetése
ni, hogy ne kelljen elem ezni, vagy kevesebb B/K-t v ég reh ajtan i, am i viszont több }
elem zést von m aga u tán . E b b e n a p é ld áb a n egy ideiglenes fájlba helyezzük el a tí­
pust, a m űveleti k ó d o t, az u tasítá s hosszát és az ak tu ális b e m e n e ti sort. E zt olvassa }
m ajd a m ásodik m e n e t az e re d e ti b e m e n e ti fájl helyett. 7.10. ábra. Egy egyszerű assembler első menete
544 7, A Z A S S E M B L Y NYELV SZ IN T JE
7,3, A Z A S S E M B L E R M EN ET EI 545

7.3.3. Második menet sektől. A k ó d g en erálást az e v a ljy p e l, e v a lj y p e l (és így tovább) eljáráso k végzik.
E zek m indegyike valam ely m in tán ak m egfelelő e setet kezel, p éld áu l k ét regiszter-
A m ásodik m en e t fela d a ta a tárg y p ro g ram előállítása, és esetleg a ford ítási (a s­ o p cra n d u ssal ren d elk ező m űveleti kód esetét. A z u tasításh o z g e n erált b in áris k ó ­
sem bly) lista kiny o m tatása. E zen tú lm e n ő e n a m ásodik m e n e tn e k egyéb in fo rm á­ d o l a code v áltozóban adja vissza. E z aztán kiírásra kerül. Nagy valószínűséggel a
ciót is ki kell ad n ia, am elyre a szerk esztő n ek lesz szüksége, am ik o r fu tta th a tó fájlt wrítc o u tp u t csak összegyűjti egy p u fferb en a bináris k ó dot, és a lem ezre nagyobb
szerkeszt a kü lö n b ö ző id ő b en fo rd íto tt eljárásokból. A 7 .f i . áb ra a m ásodik m e­ egységekben írja ki, hogy ezzel csökkentse a lem ezes m űveletek szám át.
n et egy v ázlatát tartalm azza. Az e re d e ti fo rrásk ó d ú utasítás, és a b előle g e n erált (hexadecim ális) kód ezu tán
A m ásodik m e n e t tö bbé-kevésbé az első m e n e th e z haso n ló an m űködik: ez is k in y o m tath ató , vagy egy pufferb e h elyezhető későbbi nyom tatás céljából. A z uta-
egyesével olvassa, és egyesével dolgozza fel a so ro k at. M ivel m indegyik u tasítás a sítás-helyszám láló (IL C ) m ódosítása u tán k ezd ő d h et a következő utasítás feld o l­
típ u sára, a m űveleti k ó d ra és a h o sszra v o n atk o zó inform ációval k ezdődik (az id e­ gozása.
iglenes fájlban), így e z ek et beo lv ash atja, és ezzel m eg m en ek ü l bizonyos elcm zé- E d d ig feltettü k , hogy a fo rrásk ó d ú p ro g ram b an nincs hiba. A zo n b an aki valaha
is írt valam ilyen nyelven p ro g ram o t, az tudja, hogy m ennyi a realitása enn ek a fel­
public static void pass_two() {
tevésnek. A gyakori hibák közül n éh án y at az alábbiakban felsorolunk:
// Egy egyszerű assembler második menetének vázlata
boolean m orejnput = true; //jelző, ami a második menetet megállítja
String line, opcode; // egy utasítás mezői 1. Egy m ég n em definiált szim bólum alkalm azása.
int location counter, length, type; //egyéb változók 2. Egy szim bólum tö b b szö rö sen definiált.
final int END_STATEMENT = -2; // jelzi a bemenő adatok végét 3. A m űveleti kód m ezőben levő név nem m eg en g e d ett m űveleti kód.
finalint MAX_C0DE = 16; // az utasításonkénti kód maximális bájtszáma 4. A m űveleti kód m ellett kevés o p eran d u s van m egadva,
byte code[] = new byte[MAX_CODE]; // utasításonként a generált kódot tárolja 5. A m űveleti kód m ellett túl sok o p e ra n d u s van m egadva.
6. Egy oktális szám ban a 8-as vagy a 9-es szám jegy előfordul.
location^counter = 0; // az első utasítás fordítása a 0 címnél
7. Jo g ta la n reg iszterh aszn álat (például ugrás egy reg iszterre).
v\/hile (morejnput) { // a m orejnput értékét END állítja hamisra 8. H iányzik az END utasítás.
type = read_type(); // veszi a következő sor típus mezőjét
opcode = read_opcode( ); // veszi a következő sor műveleti kód mezőjét A p ro g ra m o zó k a legváltozatosabb és v áratlan ab b hibák elkövetésére k é p e ­
length = read_length( ); // veszi a következő sor hosszmezöjét sek. G y ak ran gépelési hiba okozza a d efiniálatlan szim bólum hiba előfordulásál.
line = read_line(); // veszi a bemenet aktuális sorát Ilyenkor egy okos assem bler m egpróbálja kitalálni, hogy m elyik definiált szim bó­
lum haso n lít leginkább a d cfiniálatlanhoz, és ezt használja helyette. A legtöbb h i­
if (type != 0) { // a megjegyzés sor 0 típusú
ba k o rrig álá sáb an azonban az assem b ler nem túl sokat teh et. Egy é rte lm e z h e te t­
switch(type) { // a kimeneti kód generálása
case 1: evaLtypel (opcode, length, line, code); break; len u tasítás esetén az assem b ler nem te h e t m ást, m inlhogy kiír egy h ib aü ze n etet,
case 2; eval_type2(opcode, length, line, code); break; és m eg p ró b álja folytatni a fordítást.
//további esetek itt
}
} 7.3.4. Szimbólumtábla
write_output(code); // kiírja a bináris kódot
A z assem b ler az első m en e tb e n a szim bólum okkal és érték ü k k el k apcsolatos in­
write_listing(code, line); // listába helyez egy sort
location_counter = location_counter + length; // frissíti a loc_ctr változót fo rm áció k at összegyűjti, és a m ásodik m en et szám ára a szim bólum táblában tá ro l­
if (type == END_STATEMENT) { // elfogytak a bemeneti adatok? ja. A szim b ó lum tábla felép ítésére többféle m ód szer ism eretes. E zek közül az a lá b ­
more_input = false; // ha igen, akkor járulékos feladatokat hajt végre b iak b an n éh án y at röviden ism ertetü n k . M indegyik m ó d szer az asszociatív m em ó­
finish_up(); // hibát ellenőriz és befejeződik ria m ű k ö d ését p ró b álja u tán o zn i, am ely lényegében p á ro k (szim bólum és érték )
} h alm azáb ó l áll. A z asszociatív m em ória a szim bólum ism eretéb en m eg m o n d ja a
k ap cso ló d ó é rték et.
E n n ek legegyszerűbb m egoldása, am ikor a szim bólu m táb lap áro k b ó l álló töm b
a d a tstru k tú ra , a p á ro k első k o m ponense a szim bólum (vagy egy m u ta tó rá), a m á­
7.11. ábra. Egy egyszerű assembler m ásodik menete sodik k o m p o n en se pedig az é rte k (vagy egy m u ta tó rá). Egy szim bólum k e re sé se ­
7. A Z A S S E M B L Y NYELV SZ IN T JE 7,4. S Z E R K E S Z T É S ÉS BETÖ LTÉS 547
546

kor a szim bólum táb la ru tin ja a táb lá z a tb a n csak lin eárisan tu d ja a szim bólum ot van alkalm azva, legfeljebb log^ n lépésre van szükség. N yilvánvaló, hogy ez a m ód­
keresni. E z a m ó d szer k ö n n y en p ro g ram o zh ató , de lassú, mivel átlag b an cgy-egy szer a lineáris keresésnél sokkal gyorsabb, de egy re n d e z e tt táb lázat kell hozzá.
szim bólum kikereséséh ez a táb lá z a t felét át kell vizsgálni. A z asszociatív m em ó ria szim ulálásának egy teljesen m ás m ódja tördelő kódo­
A m ásik m ódszern él a szim bólum tábla a szim bólum ok szerin t re n d e z e tt és a lási m ó d szerk én t, h ash -elésk én t vagy h a s ítá s k é n t ism ert. E h h ez tördelőfüggvény
szim bólum k eresé sé t bináris kereső algoritm ussal végzi. E z az alg o ritm u s a szim ­ kell, am ely a szim bólum okat leképezi a 0-tól k - 1-ig te rje d ő egész szám ok h a l­
bó lu m o t a táb lá z at k özép ső elem ével h asonlítja. H a a szim bólum lexikografiku- m azába. A z a függvény m egfelelő leh et tördelőfüggvénynek, am ely a szim bólum ­
san kisebb a közép ső elem b en tá ro lt szim bólum nál, ak k o r a táb lá z at első felében b an elő fo rd u ló k a ra k te re k A S C II kódját összeszorozza, figyelm en kívül hagyja
kell szerepelnie. H a a k e re se tt szim bólum a k ö zép ső elem b elin él nagyobb, a k k o r az esetleg es túlcsordulást, m ajd képezi a k szerinti m o d u lo érté k é t, vagy elosztja
ped ig a táb lázat m áso d ik feléb en kell elő fo rd u ln ia. V égül, ha a k ö zép ső elem beli egy prím szám m al. V alójában m ajd n em m in d en függvény alkalm as, am ely az inpul
szim bólum m egegyezik a k e re se tte l, a k k o r a k eresés b efejeződik. tö rd e lé si é rte k e it egyenletesen osztja szét. A szim bólum ok 0-tól / t - 1-ig te rje d ő
A bban az esetb en , am ik o r a k ö zép ső elem n em a k e re se tt szim bólum ot ta rta l­ egész szám okkal sorszám o zo tt k d arab résből álló táb lázatb a kerülnek. A z összes i
m azza, akkor is legalább az kiderül, hogy a táb lázat m elyik feléb en kell tovább ke­ tö rd elési é rté k ű szim bólum a táb lázat i-edik sorszám ú réséből induló listába tá ro ­
resnünk. A bináris k eresést m ost a táb lázatn ak a m egfelelő feléb en kell folytatni, és lódik. n d a ra b szim bólum m al és k d a ra b réssel ren d elk ező tő rd e lő tá b lá z a t esetén
ekkor vagy m egtaláljuk a szim bólum ot, vagy a további k eresést m ár csak a táblázat a listák átlagos hossza n/k. H a k é rté k é t /;-hez közelinek választjuk, akkor átlagban
m egfelelő negyedére kell folytatni. E zt a k eresést egy n elem ű táb lázatb an rekurzí- a szim bólum ok egy lépésben m eg találh ató k . A k változtatásával a táb lázat m érete
csö k k en th ető , am iért a keresés lassulásával kell fizetni. A tö rd e lő kódolási m ó d ­
Andy 14025 0 szert a 7.12. áb ra m utatja.
Anton 31253 4
Cathy 55254 5
Dick 54185 0
Erik 47357 6
Frances
Frank
56445
14332
3
3
7.4. Szerkesztés és betöltés
Gerrit 32334 4
Hans 44546 4 A leg tö b b p ro g ram egynél tö b b fájlból (m o d u lb ó l) áll. A fo rd ító p ro g ram o k és az
Henri 75544 2
assem b lerek általáb an egyszerre egy m o d u lt fordítanak, és az ered m én y t lem ezen
Jan 17097 5
Jaco 64533 6 táro lják . A p ro g ram fu tta tá sá t m eg előzően az összes le fo rd íto tt m odult m eg kell
Maarten 23267 0 keresn i, és m egfelelően össze kell szerkeszteni. A m ennyiben n em áll re n d elk ezés­
Reind 63453
Roel 76764 7
re v irtuális m em ória, ak k o r az összeszerkesztett p ro g ram o t be kell tölteni közvet­
W ille m 34544 6 lenül a m em óriába. A z ezeket a felad ato k at ellátó p ro g ram o k kü lö n b ö ző neveken
W ie b r e n 34344 ism ertek , például hívják ezek et szerkesztőnek, szerkesztő-betöltőnek és szerkesz­
(a) tő-editornak is. Egy fo rrásp ro g ram teljes fo rd ítása k ét lép ésb en végezhető el, ez
Tördelő­ lá th a tó a 7.13. ábrán.
tábla Láncolt tábla
Andy 14025 23267 Dick 54185
1. A fo rrá sk ó d ú eljárások fordítása.
Reind 63453 —H Wiebren | 34344 | |
2. A tárg y k ó dú m o d u lo k összeszerkesztése.
Henri 75544

Frances 56445 -H Frank | 14332 | |


A z első lépest a fo rd ító p ro g ram vagy az assem bler végzi, m íg a m ásodik lépést a
Hans 44546 Gerrit | 32334 | — Ant on | 31253
szerk esztő p ro g ram h ajtja végre.
Jan 17097 Cathy 65254
A fo rrá sk ó d ú m odul tárgykódú m o d u llá való átalak ítása egy szintváltással való­
Jaco 64533 Willem 34544 H Erik 47357
sul m eg, mivel a fo rrásk ó d ú nyelv és a célnyclv e lté rő u tasításo k at és jelö lések et
R o el 76764 alkalm az. Ezzel szem ben a szerkesztés folyam atát nem kíséri szintváltás, mivel a
(b) szerkesztő b em en eti és k im en eti program jai ugyanazon virtuális gép program jai.
A szerk esztő fe lad ata a külön-külön lefo rd íto tt eljárások összegyűjtése és ezek
7.12. ábra. Tördelő kódolás, (a) Szimbólumok, értékek és a szimbólumok tördelési értékei, ún. végrehajtható bináris programmá való összeszerkesztése. A z M S-DO S-nál, a
(b) 8 réses tőrdelőtáblázat a szimbólumok és értékek láncolt listáival W indow s 95/98-nál és az NT-nél a tárgym odulok kiterjesztése .obj\ a v é g r e h a j t h a t ó
548 7. A Z A S S E M B L Y N YELV SZ IN T JE 7.4. S Z E R K E S Z T É S ÉS BETÖ LTÉS 549

bináris p ro g ram o k kiterjesztése .exe. A U N IX -n ál a tárg y m o d u lo k k iterjesztése .o, A tá rq ym o d u l B tárgym odul


a fu tta th a tó bináris p ro g ra m o k n a k p ed ig nincs kiterjesztésük. 400 600

N em véletlen, hogy a ford ító p ro g ram o k és az assem blerek a fo rráskódú m o d u lo ­


k at egym ástól függetlenül fordítják le. H a ugyanis a fordító p ro g ram vagy az assem b­ 300 C A LLB 500 C A L LC
ler tigy m űködne, hogy beolvasná a forráskódú m odulok sorozatát, és közvetlenül el­
készítené a végreh ajth ató gépi kódú p ro g ram o t, akkor egyetlen eljárás egyetlen u ta ­ 200 M O VEPTO X 400
sításának m egváltozása esetén az összes fo rrásk ó d ú m odult újra kellene fordítani.
A 7.13. á b ra által sze m lé lte te tt független tárgym odul te ch n ik a alk alm azásak o r 300
100 M O VEQ TO X
csak a m egváltozo tt m o d u lt kell ú jra fo rd íta n i, a v álto zatlan o k at n em , de szükség
van az összes tárgym odul ism ételt szerk esztésére. R e n d sz e rin t a szerkesztés folya­ BRANCH TO 200
200
m ata sokkal gyorsabb, m in t a fo rd ításé, így egy p ro g ram fejlesz tések o r je le n tő s idő
ta k a ríth a tó m eg a fo rd ítás és szerkesztés k é tlép éses m ódszerével. E z a tu lajd o n ság
C tárgymodul 100
rendkívül fontos olyan p ro g ram o k n ál, am elyek m o d u lok százaiból vagy esetleg ez­
500
reiből állnak.
BRANCH TO 300

400 CALLD
D tárgym odul
300
300

200 MOVERTOX 200 M O VESTO X

100
100

BRANCH TO 200 BRANCH TO 200

7 .1 4 . á b r a . M in d e g y ik m o d u l saját, 0 -v a l k e z d ő d ő c ím ta r to m á n n y a l r e n d e lk e zik
7 .1 3 . á b r a . F ü g g e tle n ü l le fo r d íto tt e ljá rá so k b ó l e g y v é g r e h a jth a tó b ináris k ó d ú p ro g ra m
g e n e r á lá s a s z e r k e s z tő a lk a lm a z á s á v a l ra m o k gyakran 0-nál nagyobb cím en kezd ő d n ek . Á b rán k o n a p ro g ram a 100-as
cím nél kezdődik.
B ár a v ég reh ajtan d ó b in áris p ro g ram a 7.15. (a) áb rán lá th a tó m ó d o n b e van
7.4.1. A szerkesztő feladatai töltve a m e m ó riáb a, a p ro g ra m m égsem fu tta th a tó . N ézzük, m i tö rté n n e , h a a
v ég reh ajtás a z ^ m odul elején levő utasítással k ezdődne. A p ro g ram n em a MOVE
A z assem bly folyam at első m e n e te in d ítá sa k o r az u tasítás-helyszám láló érté k e u tasításra u g ran a, pedig azt kellene ten n ie, mivel ez az u tasítás m ost a 300-as cím ­
0. E n n e k felel m eg az a feltételezés, hogy v é g reh ajtásk o r a tárgym odul b etö ltési nél van. V alójában, ugyanebből az okból az összes m em ó riah iv atk o zást tartalm azó
(virtuális) cím e 0. A 7.14. á b rá n egy á ltalán o s g ép négy tárg y m o d u lját láth atju k . u ta sítá s hibás. N yilvánvaló, hogy valam it ten n i kell.
E b b e n a p é ld áb a n m indegyik m o d u l egy, a m o d u lb an levő MOVE u tasításra való E z a p ro b lém a, am ely áthelyezési p ro b lém ak én t ism ert, azért jelentkezik, m ert a
BRANCH utasítással kezdődik. 7.14. á b rán a tárgym odulok saját cím térb en vannak. A P entium 4-hez hasonló szeg­
A p ro g ram fu tta tá sá h o z a szerk esztő a tá rg y m o d u lo k at b eh o zza a m em ó riáb a, m enscím zésű g épeken elm életileg m indegyik tárgym odul saját cím zést alkalm azhat
hogy k ialakítson egy v é g re h a jth a tó b in áris p ro g ram o t, ezt m u ta tja a 7.15. (a) áb ­ a szegm ensében. A P entium 4-nél csak az O S/2 operációs ren d szer tám ogatja ezt a
ra. A szerkesztő a v é g re h ajtan d ó b in áris p ro g ra m v irtuális cím ein ek p o n to s é r ­ koncepciót. A z összes W indow s-verzió és a U N IX csak egyetlen lineáris c ím tarto ­
ték ét m eg h atáro zza, figyelem be véve a tárg y m o d u lo k b e tö lté si cím eit. H a kevés m ányt tám o g at, így az összes tárgym odult e rre az egyetlen helyre kell összefésülni.
a (virtuális) m em ó riah ely a p ro g ram szám ára, a k k o r egy lem ezes fájlt használ. A 7.15. (a) áb rán az eljáráshívás u tasításo k sem fognak m űködni. A 400-as cím ­
R en d szerin t a 0. cím től kezdve a m em ó ria egy kis része a m egszakításvektorok nél a p ro g ram o zó a B tárgym odult a k a rta hívni, azonban mivel m indegyik eljárás
szám ára, az o p eráció s re n d sze rrel való k o m m u n ik áció ra, k ezd eti érték k el n em fo rd ítá sa külön tö rté n t, így az assem bler nem tu d h atja, hogy a CALL B u tasításba
ren d elk ező m u ta tó k rö g zítésére és m ás egyéb c élo k ra van fen n tartv a, így a prog- m ilyen cím et írjon be. A B tárgym odul cím e a szerkesztésig nem ism ert. E z a p rob-
550 7. A Z A S S E M B L Y N Y ELV SZ IN T JE 7.4. S Z E R K E S Z T É S É S BETÖ LTÉS 551

1900
A Icm a k ü lső h iv atk o zási p ro b lé m a k é n t ism ert. M in d k ét p ro b lé m á t egyszerűen m eg
1900
tu d ja old an i a szerkesztő.
M O VESTO X 1800 M O VESTO X A szerk esztő a tárgym odulok saját cím tereit egyetlen lineáris cím zéssé fésüli
1800
. Dtárgy- D tárgy­ össze az alábbi lépésekben:
f modul modul

1700 1700
1. K észít egy tá b lá z a to t az összes tárgym odulról és azok hosszáról.
2. E z t a tá b lá t alapul véve, m indegyik tárgym odulhoz egy k ezdőcím et rendel.
1600 BRANCHT0 200 1600 BRA N C H T0 1 80 0
3. M eg k eresi az összes m e m ó riá ra hivatkozó u tasítást, és m indegyikhez hozzáad
egy áthely ezési k o n sta n st, am ely a m odul kezdőcím ével egyenlő.
1500 1500 4. M eg k eresi az összes m ás m o d u lra hivatkozó u tasítást, és a m egfelelő eljárások
C A LLD CALL 1600
cím ét b e írja ezekbe.

1400 1400

C tárgy­ V Ctárgy-
A 7.15. á b ra m odu ljaihoz ta rto z ó első lép ésb en készülő tárg y m o d u ltáb la a k ö ­
modul í modul v etk e z ő k é p p en néz ki:
1300 M O VERTO X 1300 M O VERTO X

Modul Hossz Kezdőcím


1200 1200 A 400 100
B 600 500
C 500 1100
BR A N C H T0 200 BRA N C H T0 1 30 0 J D
1100 1100 300 1600
\

E b b e n szerepel m indegyik m odul neve, hossza és kezdőcím e. A 7.15. (b) á b ra azt


1000 1000 CALL1100
C A LLC
m u tatja, hogy a 7.15. (a) á b ra cím ei a szerkesztés előbb felsorolt lépései u tá n h o ­
gyan alakulnak.
900 900

800 M OVEQ TO X 800 M O VEQ TO X 7.4.2. A tárgymodul szerkezete

700 700 E gy tárg y m odul gyakran h a t részből ép ü l fel, ezt m u ta tja a 7.16. ábra. A z első rész
ta rtalm a z za a m odul nevét, a szerkesztő szám ára szükséges bizonyos in fo rm áció ­
kat, m in t a m odul k ülönféle d arab jain ak a hosszát és n é h a a létreh o zás d átu m át.
600 600
A tárg y m odul m ásodik része a m o d u lb an definiált azon szim bólum ok listája az
BR A N C H T0 300 / BRANCH TO 800 érté k ü k k e l együtt, am elyekre m ás m o d u lo k h ivatkozhatnak. P éldául, ha a m o d u l­
500 A 500
b a n van egy nagyhiba nevű eljárás, a k k o r a belépési p o n to k tá b lázata a „nagyhiba”
k a ra k te rlá n c o t a hozzá ta rto z ó eljárás cím ével együtt tartalm azza. A z assem bly
C A LLB CALL500
400 400 p ro g ra m o z ó fe lad ata jelezni, hogy m ely szim bólum okat akarja belépési p o n tk é n t
d ek laráln i; ezt a 7.3. áb rá n szerep lő PUBLIC-hoz haso n ló p szeudoutasítással a d h a t­
V Atárgy- V Atárgy-
300 M O VEPTO X ' modul 300 M O VEPTO X ' modul
ja m eg.
A tárgym odul h arm ad ik része olyan szim bólum ok listájából áll, am elyek a m o ­
d u lb an h aszn álh ató k , de a definíciójuk m ás m o d u lo k b an vannak. A szim bólu­
200 200
m ok itt azon gépi utasításo k listájával együtt szerepeln ek, am elyek használják.
BR A N C H T0 200 BRANCH TO 300 A szerk esztő n ek e rre az u tó b b i listára azért van szüksége, hogy be tu d ja írni a
100 100
k ülső szim b ólum okat használó u tasításo k b a a helyes cím eket. E gy eljárás hívhat
olyan tő le fü ggetlenül fo rd íto tt eljáráso k at, am elyeket külső n évként definiált. Az
assem bly p ro g ram o zó n ak jelezn i kell, hogy m it szeretn e k ü lső szim bólum ként
7.15. ábra. (a) A 7.14. ábra tárgymoduljainak elhelyezése utáni, de az áthelyezést és szerkesztést h asználni; ezt a 7.3. áb rá b a n lá th a tó EXTERN vagy eh h ez haso n ló pszeudoutasítás-
megelőző képe. (b) Ugyanazon tárgymodulok szerkesztés és áthelyezés utáni képe
552 7. A Z A S S E M B L Y N Y ELV SZ IN T JE 7,4. S Z E R K E S Z T É S ÉS BETÖ LTÉS 553

h ezen b izto sítható, hogy u g y an arra a helyre tö rté n je n a p ro g ram visszatöltése


Modul vége
m in d en alkalom m al.
Áthelyezési A 7.17. áb rá n láth ató , hogy m i tö rtén ik , h a a 7.15. (b) áb rán szereplő m ár lefo r­
kö n yvtár d íto tt és ö sszeszerkesztett p ro g ra m o t a 400-as cím re tölti a 100-as cím helyett, a h o ­
vá ered e tileg a szerkesztő helyezte. A z összes m em óriacím zés hibás lesz, és m ár
az áthelyezési inform áció sincs m eg. M ég h a az áthelyezési inform ációk elé rh e tő k
Gépi utasítások is len n én ek , ak k o r is az összes cím ism ételt áthelyezési költsége, am it a pro g ram
és konstansok m in d en egyes m em ó riáb a tö ltések o r el kellene végezni, nagyon nagy lenne.
A m á r ö sszeszerkesztett és áth ely ezett p ro g ram o k m o zg atásán ak p ro b lém ája
abból adódik, hogy e k k o r a szim bolikus nevek m á r abszolút fizikai cím ekkel v an ­
Külső hivatkozási tábla n ak helyettesítve. P ro g ram írásk o r szim bolikus n eveket haszn álu n k m em óriacím ek
Belépési pontok táblázata helyett, p é ld áu l BR L. A zt az id ő p o n to t, am ik o r az L -h ez az aktuális m em óriacím
h o zzáren d elő d ik , h o zzáren d elési id ő n ek nevezzük. L egalább hatféle h o z z á re n d e ­
Azonosítók
lési idő létezik:

7.16. ábra. Egy fordító által készített tárgymodul belső felépítése 1. A p ro g ra m írásakor.
2. A p ro g ra m fo rd ításak o r.
sál te h e ti m eg. N éh án y szám ító g ép n él egyetlen tá b lá z a tb a n szere p e ln e k a b elép ési 3. A p ro g ra m szerkesztésekor, de a b etö ltés előtt.
p o n to k és a külső hivatkozások. 4. A p ro g ra m b etö ltések o r.
A tárgym odul negyedik részéb en van a le fo rd íto tt kód és a k o n stan so k . A tárgy­ 5. A cím zésnél használt bázisregiszter b eállításakor.
m odul részei közül ez az egyetlen, am ely v ég re h a jtá sk o r a m e m ó riá b a tö ltő d ik . 6. A cím et ta rta lm a z ó u tasítás végrehajtásakor.
A többi öt részt a szerk esztő p ro g ram h aszn álja a m u n k ája elvégzéséhez, azo n b an
a fu tta tá s k ezd ete e lő tt eld o b ja ezek et. H a egy m em ó riacím et ta rtalm azó u tasítás m ozgatása a h o zzáren d elés u tán tö r­
A tárgym odul ö tödik része az áthelyezési könyvtár. M int ahogy a 7.15. á b rán is tén ik , a k k o r érvénytelen, hibás lesz (feltéve, hogy a h ivatkozott objek tu m is e l­
látható, vannak m em ó riacím ek et tartalm azó u tasítások, am elyekben e zek et a cím e­ m o zd u l). H a a fo rd ító k im e n e tk é n t v ég reh ajth ató bináris k ó d o t g enerál, akkor
k et egy áthelyezési konstanssal m eg kell növelni. M ivel a szerk esztő n ek nincs m ódja fo rd ítási id ő b en k erü l so r a h o zzáren d elések re, és a p ro g ra m o t a fo rd ító által
arra, hogy a negyedik részben levő ad atszavakat m egvizsgálja abból a szem pontból, m e g h a tá ro z o tt cím en kell fu ttatn i. A z előző részben tárgyalt szerkesztéses m ó d ­
hogy gépi utasítás vagy konstans, ezért az áthelyezést igénylő cím ekről ez a táblázat szernél az abszolút cím ek szim bolikus nevekhez való h o zzáren d elése a szerkesztés
tartalm az inform ációt. A z inform áció tá ro ló d h a t egy b ittáb lázatb an , áthely ezen d ő a la tt tö rté n ik , így a p ro g ram szerkesztés u tán i m ozgatása h ib át okoz, ezt szem lél­
cím enként egy bittel vagy az áth ely ezen d ő cím ek egy közvetlen listájában. teti a 7.17. ábra.
A h ato d ik rész a m o d u l vége jelzés, ta rta lm a z h a tja a h ib aellen ő rz ő összeget, K ét k é rd és jelen tk ezik ezzel k ap csolatban. A z első, hogy a szim bolikus nev ek ­
am i segít a m odul o lvasásakor fellép ő esetleg es h ib ák észleléséb en , és a v ég re h aj­ hez m ik o r tö rté n ik a virtuális cím ek ho zzáren d elése. A m ásodik, hogy a virtuális
tás kezdőcím ét. cím ek h ez m ik o r tö rté n ik az abszolút cím ek ho zzáren d elése. A teljes h o z z á re n d e ­
A legtöbb szerk esztő k ét m e n e tb e n dolgozik. A szerk esztő az első m e n e tb e n lés csak m in d k ét m űvelet v ég reh ajtása u tá n valósul m eg. A virtuális cím ek hozzá­
beolvassa az összes tárg y m o d u lt, és felép íti a m o d u lo k n ev ét és hosszát ta rta lm a ­ re n d e lé se ak k o r tö rtén ik , am ik o r a szerkesztő a tárgym odulok egym ástól függet­
zó táb lázato t, tov áb b á egy globális szim b ó lu m táb lát az összes b e lép é si p o n tb ó l és len cím zéseit egyetlen lineáris cím zéssé alakítja át. A z áthelyezés és szerkesztés
külső hivatkozásból. A m áso d ik m e n e tb e n olvassa a tá rg y m o d u lo k at, elvégzi az á t­ során tö rté n ik a szim bolikus nevek speciális virtuális cím ekhez ren d elése. Ez a
helyezéseket, és ek k o r szerkeszti össze ő k e t egy m odullá. megfigyelés attó l függetlenül igaz, hogy van-e virtuális m em ória, vagy nincs.
Egy p illa n a tra tegyük fel, hogy a 7.15. (b) áb rán a cím terü let lapozott. Világos,
hogy az A , B , C és D szim bólum oknak m egfelelő virtuális cím ek m ár definiáltak,
7.4.3. Hozzárendelési idő és dinamikus áthelyezés a z o n b an a fizikai m em óriacím ek a lap táb la akkori ta rta lm á tó l függnek, am ikor hi­
v atk o zu n k rájuk. Egy v é g re h ajth ató b in áris p ro g ram valójában a szim bolikus n e ­
Egy m ultip ro g ram o záso s re n d sz er egy p ro g ra m o t b e tö lth e t a m em ó riáb a, egy rö ­ vek v irtuális nevek hez kötése.
vid ideig ta rtó fu tta tá s u tá n lem ezre tá ro lh a tja , hogy aztá n o n n a n ism ét a m e m ó ­ A z olyan m echanizm usokban, am elyeknél a virtuális cím ek fizikai m em ó riací­
riáb a tö lth esse további fu ttatásh o z. Sok p ro g ra m b ó l álló nagy re n d sz e re k n é l n e ­ m ek h ez k ö tése könnyen v álto ztath ató , a p ro g ram o k m o zg ath ató k a m em ó riáb an
554 7. A Z A S S E M B L Y N YELV SZ IN T JE 7,4. S Z E R K E S Z T É S ÉS BETÖ LTÉS 555

2200
Egy m ásik m ódszer futás idejű áthelyezési regisztert használ. A C D C 6600-nál
és e n n e k későbbi verzióinál van ilyen regiszter. A z ilyen áthelyezési tech n ik át al­
MOVESTOX
2100
D tárgy­ k alm azó g é p ek en a reg iszter m indig az aktuális p ro g ram kezd ő m em ó riacím ére
modul m u tat. A m em ó riáb a tö ltés e lő tt az összes m em ó riacím h ez az áthelyezési regiszter
2000
h o zzáad ó d ik h ard v eres ú to n . A teljes áthelyezési folyam at lá th a ta tla n a felhasz­
náló i p ro g ra m o k szám ára. M ég tu d n i sem kell a létezéséről. A p ro g ram elm o zd u ­
1900 BRANCHTO 1800
lásak o r az o p eráció s re n d szer az áthelyezési reg isztert m egfelelően m ódosítja. Ez
1800
a m ó d szer a lapozási tech n ik án ál kevésbé általános, m ivel a teljes p ro g ram o t egy
CALL1600
egységként m ozgatja (kivéve, h a van k ü lön kód - és adatáthelyezési regiszter, m int
1700 p éld áu l az In tel 8088-nál, m ert e k k o r k ét egységként m ozgatja).
C tárgy­ A h arm a d ik m ód szer olyan g ép ek en lehetséges, am elyek az utasításszám lálótól
modul
1600 MOVERTOX függő m em ó riacím zésre k ép esek hivatkozni. Sok P C relatív elágazó u tasítás van,
ezek segítenek. V alahányszor a m em ó riáb an egy p ro g ram elm ozdul, csak az u ta ­
1500 sításszám lálóját kell frissíteni. H elyfüggetlennek nevezik azo k at a p ro g ram o k at,
am ely ek n ek m in d en m e m ó riára hivatkozása vagy relatív az u tasításszám lálóhoz
1400 BRANCHTO 1300
viszonyítva vagy abszolú t (p éld áu l a B /K eszköz abszolút cím en lévő regiszterei
e se té b e n ). A helyfüggetlen kód ú eljáráso k a virtuális cím tarto m án y o n belül b á r­
1300 CALL1100 hová elm o zd u lh atn ak anélkül, hogy áthelyezési tevékenységet igényelnének.
1200

B tárgy­
1100 MOVEQTOX modul
7.4.4. Dinamikus szerkesztés

1000 A 7.4.1. részb en tárgyalt szerkesztési stratég ián ak az a tulajdonsága, hogy m ég a


p ro g ra m fu tta tá sá t m eg elő ző en a p ro g ram h o z hozzászerkeszti az összes olyan el­
900 já rá st, am elyet esetleg hív a pro g ram . Egy virtuális m em ó riájú szám ítógép azáltal,
BRANCHTO 800
hogy fu tta tá s e lő tt m in d en szerkesztést elvégez, nem használja ki a virtuális m e­
800
m ó riáb ó l a d ó d ó leh ető ség ek et. Sok p ro g ram n ak van n ak olyan eljárásai, am elye­
k e t csak v áratlan körü lm én y ek e se té n hív. P éld áu l a fo rd ító p ro g ram o k n ál a ritk án
700 CALL 500
h aszn ált u tasításo k fo rd ítását végző eljárások, vagy az elvétve je le n tk e z ő h ibahely­
A tárgy­ z e te k e t kezelő eljáráso k ilyenek.
600 MOVEPTOX modul
A k ü lö n le fo rd íto tt eljáráso k szerkesztésének rug alm asab b m ó d ja az, am elynél
500 az egyes eljá ráso k at az első hívásukkor szerkesztik be. E z a folyam at dinam ikus
szerkesztésként ism ert. A M U L T IC S alk alm azta első k én t ezt a m ódszert, am elyet
400 BRANCHTO300
bizonyos é rte le m b e n m ég m a sem m ú ltak felül. A k övetkezőkben több re n d sz e r­
nél m egnézzük a dinam ikus szerkesztést.

A M ULTICS dinam ikus szerkesztése

7.17. ábra. A7.15. (b) ábrán szereplő összeszerkesztett program 300 címmel feljebb mozgatva. A M U L T IC S dinam ikus szerkesztése m in d en p ro g ram h o z egy ún. csatoló szeg-
Sok utasítás most hibás memóriadmre hivatkozik m enst társít, am elyben a hívható eljárások m indegyikének van egy inform ációs
blokkja. A z inform ációs blokk elején egy szó van fe n n tartv a az eljárás virtuális cí­
a virtuális cím ek h o zzáren d elése u tá n is. E gy ilyen m ó d sz e r a lapozási technika. m e szám ára, ezt az eljárás neve követi, am ely k ara k te rlá n c k é n t táro lt.
Egy p ro g ram m em ó riáb an való elm o zd u lása e se té n csak a la p tá b lá já t kell m ó d o sí­ D in am ik u s szerkesztéskor a forrásnyelvű eljáráshívás olyan u tasításo k k á fo rd í­
tani, nem m agát a p ro g ram o t. tódik, am elyek in d irek t m ó d o n cím zik a m egfelelő csatoló blokk első szavát; ezt
556 7. A Z A S S E M B L Y N Y ELV SZ IN T JE 7.4. S Z E R K E S Z T É S ÉS BETÖ LTÉS 557

A szerkesztő ekkor kiveszi az érvénytelen cím et követő szóban levő karakterláncot,


és egy ilyen nevű lefordított eljárást keres a feliiasználó könyvtárában. A z eljáráshoz
ezu tán egy virtuális cím rendelődik, ez rendszerint a saját szegm enséhez tartozik, és
ez a virtuális cím került a csatoló szegm ensben az érvénytelen cím helyére, am int az
a 7.18. (b) á b rán is látható. E zt követően a szerkesztési hibát okozó utasítást ism é­
telten elvégzi, vagyis a program a m egszakítást m egelőző helyzettől folytatódik.
E rre az eljárásra vonatk o zó összes újabb hivatkozás nem okoz m ajd szerkesz­
tési hib át, mivel az in d irek t cím et ta rtalm azó szó m ost m ár egy érvényes virtuális
cím et tartalm az. K övetkezésképpen, a dinam ikus szerkesztő csak az eljárás első
m eg h ív ásak or aktivizálódik, u tá n a m á r nem .

A W in d o w s d in a m ik u s s z e r k e s z té s e

A W indow s o p erációs ren d szer m indegyik verziója, beleértv e az X P-t is, lám ogat-
ja a dinam ikus szerkesztést, és erő sen tám aszkodik rá. A dinam ikus szerkesztéshez
egy speciális fájlform átum ot használ, am elyet DLL-nek (üynam ic Link Library,
dinam ikus szerkesztő könyvtár) hívnak. A D L L -ek tartaim azh aln ak eljárásokat,
a d ato k a t vagy m in d k ettő t. R en d szerin t a rra használják, hogy leh ető ség et biztosít­
san ak két vagy több folyam at szám ára a könyvtár eljárásainak és ad ata in ak m eg­
o szto tt alk alm azására. Sok D L L -n ek .dll a kiterjesztése, de m ás kiterjesztések is
e lő fo rd u ln a k, ilyen a .dr^' (m eghajtó könyvtáraknál) és a .fon (font könyvtáraknál).
Egy D L L leggyakrabban olyan eljárások gyűjtem ényéből álló könyvtár, am elyet
a m em ó riá b a töltve több folyam at egy időben e lérh et. A 7.19. ábrán két program
osztozik egy D L L fájlon, am ely a z ^ , B , C és D eljárásokból áll. A z 1-es program

1-es felhasználói 2-es felhasználói


folyamat folyamat

DLL

Fejrész

B
7.18. ábra. Dinamikus szerkesztés, (a) EARTH hívása előtt, (b) EARTH hivása
és szerkesztése után
C

m u talja a 7.18. (a) áb ra. A fü rd ító p ro g ra m eb b e a szó b a vagy egy érv én y telen cí­ D
m et ír vagy egy m egszakítást g en eráló speciális b itfo rm át.
Egy m ásik szegm ens eljárásán ak hívásakor az e k k o r érvénytelen szóra te tt cím ­
zési kísérlet közvetve egy m egszakítást okoz a dinam ikus szerkesztő szám ára. 7.19. ábra. Két folyamat által használt DLL fájl
7. A Z A S S E M B L Y N YELV SZ IN T JE 7,5, Ö S S Z E F O G L A L Á S 559
558

az A eljárást, a 2-es p ro g ram a C eljárást használja, de h aszn álh atják ugyanazt az közvetlen (explicit) hívással hozza létre a k ö tését a D L L -h ez, m ajd ezt követően
eljárást is. további hívások ú tján ju t hozzá a szükséges eljáráso k cím éhez. A m int ezek et m eg ­
D L L fájlt a szerk esztő hoz lé tre az in p u t fájlok egy gyűjtem ényéből. V alójában találta, hívhatja az eljáráso k at. A m ik o r m in d en n el végez, ak k o r a D L L -rő l való le­
egy D L L fájl kialak ítása nagyban h aso n lít egy v ég re h a jth a tó b in áris p ro g ram k i­ v álasztásh o z m ég egy utolsó hívást csinál. A m ik o r egy D L L -rő l az utolsó folyam at
alakításához, kivéve, hogy egy speciális jel segítségével a szerkesztővel közölni is leválik, ak k o r a D L L kikerül a m em óriából.
kell, hogy abból D L L -t csináljon. A D L L -e k szokásosan olyan eljárásk ö n y v tárak F o n to s látni, hogy egy D L L -b eli eljárásn ak nincs sem m i ö nállósága (e lle n té t­
gyűjtem ényeiből k észülnek, am elyekre nagy valószínűséggel tö b b fo ly am atn ak is b e n egy szállal vagy foly am attal). A hívó száljában fut, és a hívó v erm ét használja
szüksége lesz. A W indow s-interfészeljárások ren d szerh ívó könyvtára és a nagy a lokális változói szám ára. L eh e tn e k folyam atspecifikus statikus adatai (például
grafikus könyvtárak gyakran D L L -e k b en való su ln ak m eg. A D L L -e k alk alm azá­ m eg o szto tt ad ato k ), d e m áskülönben ugyanolyan, m int egy statik u san kapcsolt el­
sával m em ó ria és lem e z te rü le t sp ó ro lh a tó m eg. H a m in d en p ro g ram h o z az általa járá s. A z egyetlen lényeges különbség az eléréséh ez szükséges h o zzárendelés ki­
használt könyvtárat statik u san k ö tn ék , ak k o r egy gyakran alk alm azo tt k önyvtár­ a lak ításáb an van.
nak a fu tta th a tó b in áris kó d ja a lem ezen és a m e m ó riáb a n sokszor elő fo rd u ln a ,
am i helypazarlás. A D L L -c k alkalm azásával a lem ezen és a m em ó riá b a n csak egy­
szer fordul elő m in d en kcinyvtár. A UN IX dinam ikus szerkesztése
A hellyel való takarék o sk od áso n túl, ez a m ódszer m egkönnyíti a könyvtári eljárá­
sok frissítését, m ég az ezeket használó pro g ram o k lefordítását és szerkesztését köve­ A UNIX m ó d szere hasonló a W indow s D L L -es koncepciójához. A z általa használt
tően is. A D L L -e k et használó kereskedelm i szoftvercsom agoknál, am elyekhez a vá­ speciális fájlt m egosztott könyvtárnak hívják. Egy m egosztott köny\'tár - a D L L
sárlók ritkán kap n ak forráskódot, a szoft\'erterjesztők a k ö n p tá ra k b a n észlelt hibák fájlhoz h aso nlóan - egy archivált fájl, am ely m egosztott eljáráso k at vagy a d a tm o ­
javítását könnyen m egoldhatják úgy, hogy új D L L fájlokat ju tta tn a k el in tern eten d u lo k a t tartalm az, am elyek futási id ő b en v annak je le n a m em ó riáb an és a folya­
keresztül a felhasználókhoz, így a főprogram bináris kódja n em igényel változtatást. m ato k szám ára egyidejűleg elérh ető k . A sta n d a rd C könyvtár és a legtöbb hálózati
A fő különbség egy D L L és egy fu tta th a tó fájl kö zö tt, hogy egy D L L nem képes kód m e g o szto tt könyvtárakban van.
ö n m ag át fu tta tn i (m ivel nincs fő p ro g ram ja). E n n e k is van egy fejrésze különféle A UNIX csak az im plicit szerkesztést tám o g atja, e z ért egy m egosztott könyvtár
inform ációkkal. Tövábbá a D L L -n ek , m in t ö n álló egységnek, v an n ak saját e ljá rá ­ k ét részből áll: egy gazdakönyvtárból, am ely a v é g reh ajth ató fájlhoz statikusan
sai, am elyek n em k ap cso ló d n ak a k önyvtár eljárásaih o z. P éld áu l az egyik eljárása van szerkesztve, és egy célkönyvtárból, am elynek hívása fu tta tá sk o r tö rtén ik . B ár
a u to m atik u san m eghívódik egy új fo ly am atn ak a D L L -h e z k ö té se k o r, és egy m á ­ a részletek b en eltér, de a koncepciója lényegében ugyanaz, m int a D L L fájloké.
sik eljárása pedig ak k o r, am ik o r egy folyam at a D L L -rő l leválasztódik. E zek az el­
já rá so k k ép esek a m em ó riát lefoglalni és felszab ad ítan i, illetve m ás e rő fo rrá so k a t
kezelni, am elyek et a D L L igényel.
K ét m ó don k ö th e tő egy p ro g ra m egy D L L -h ez. A z im plicit szerkesztésnek h í­ 7.5. Összefoglalás
vott m ódszernél a felhasználói p ro g ram az im port könyvtárnak n ev ezett speciális
fájlhoz statik u san van kapcsolva, am it egy se g éd p ro g ram valósít m eg a D L L -b ő i B ár a leg tö b b p ro g ra m o t m agas szintű nyelven lehet, illetve kell írni, m égis vannak
nyert bizonyos info rm áció k alapján. A felhasználói p ro g ram az im p o rt könyvtá­ olyan helyzetek, am ik o r az assem bly nyelvre van szükség, legalábbis részben. Ilyen
ron keresztül éri el a D L L -t. Eg>' felhasználói p ro g ram több im p o rt könyvtárhoz is p ro g ra m o k ra van igény a h o rd o zh ató , szegényes erő fo rrással ren d elk ező szám í­
k ö th ető . A m ikor egy im plicit (k ö zv etett) szerkesztést alkalm azó p ro g ram fu tta tá s­ tó g ép ek e se tén , m int például az intelligens kártyák, az alk alm azásokba b e é p íte tt
k or a m em ó riáb a tö ltő d ik , a W indow s m egnézi, m ilyen D L L -e k e t használ a p ro g ­ p ro cesszo ro k vagy a vezeték nélküli, digitális h o rd o zh ató segédeszközök. Egy as­
ram és a m em ó riá b a n ezek közül m elyek van n ak m ár b en t. A hiányzó D L L -e k et sem bly nyelvű program egy bizonyos gépi kódú p ro g ram szim bolikus form ája. Ezt
azonnal b etölti a m em ó riá b a (n em szükséges a teljes egységeket, mivel lapozási a gép nyelvére egy p ro g ram fo rd ítja le, am elyet assem b lern ek hívnak.
tech n ik át használ). B izonyos m ó d o sításo k ra k erül so r e z u tá n az im p o rt könyvtár A zo k n ál az alkalm azásoknál, am elyeknek sikere d ö n tő e n a végrehajtás gyor­
ad atszerk ezetéb e n , hogy a h ívott eljáráso k e lé rh ető k legyenek, ezek n ém ileg a n a ­ saságától függ, jo b b m egközelítést je le n t a teljes pro g ram assem bly nyelven való
lóg m ó d o n tö rté n n e k a 7.18. á b rá n lá to ttak h o z. M ost m á r a felhasználói p ro g ram m egírásánál, ha először a teljes p ro g ra m o t egy m agas szintű nyelven m egírják, u tá ­
készen áll a fu tta tásra, és úgy hívhat D L L -b eli e ljáráso k at, m in th a azok statik u san na m érik, hogy m ely részek használják el a legtöbb futási időt és végül csak ezeket
len n én e k hozzákötve. az erő sen h asznált részek et írják újra assem bly nyelven. A gyakorlatban a kód kis
A z im plicit szerkesztés altern atív ája az explicit szerkesztés. E n n él a m ó d szer­ része felelős ren d szerin t a végrehajtási idő nagy h ányadáért.
nél nincs szükség im p o rt kön y v tárak ra, és a D L L -e k e t sem kell a felhasználói Sok assem b ler tám o g atja a m ak ró tech n ik át, am i leh ető ség et ad a p ro g ram o zó k ­
p ro g ram m al együtt betíMteni. A felhasználói p ro g ram e h ely e tt futási id ő b en egy nak, hogy a gyakran használt k ó d so ro zato k n ak n eveket adjanak, és a k ésőbbiek­
560 7. A Z A S S E M B L Y N Y ELV S Z IN T JE 7.6. FELA D A T O K 561

ben ezekkel hivatkozhassanak rájuk. Á ltaláb an ezek a m ak ró k a szokásos m ó d o n 5. A D irtch eap Softw are C om pany egy assem bler elkészítését tervezi egy olyan
p a ra m étcrezh ető k . A m ak ró k m egvalósítása a k a ra k te rlá n c o t szav an k én t feld o l­ szám ítógéphez, am elyen a szavak 48 bitesek. A költségek csökkentése m iatt
gozó algoritm ussal tö rtén ik . dr. Scrooge p ro jek tv ezető azt a d ö n té st hozta, hogy a szim bólum ok hosszát
A legtöbb assem bler k ét m en etb en fordít. A z első m en et a cím kékből, literálok- úgy k o rlátozzák, hogy m indegyik szim bólum tá ro lh a tó legyen egyetlen szóban.
ból és a közvetlenül d ek larált azonosítókból felépít egy szim bólum táblát. A szim bó­ Scrooge közölte, hogy a szim bólum ok csak b etű k b ő l állhatnak, kivéve a Q -t,
lum ok táro lh ató k ren d ezetlen ü l, és ek k o r lineárisan k eresh ető k , vagy ren d ez e tte n , am elyet tilos használni (hogy a vásárlóknak d em o n strálja a hatékonyságra va­
és ek k o r a k eresésre bináris keresési algoritm us használható, vagy tö rd elő táb láb an . ló tö rek v ésü k et). Mi leh et egy szim bólum m axim ális hossza? írja le a kódolási
H a a szim bólum okat az első m en e tn e k n em kell törölni, akkor ren d szerin t a tö rd e ­ sém áját.
lőtábla alkalm azása ad ja a legjobb m ódszert. A m ásodik m e n et g en erálja a kódot. 6. Mi a különbség az utasítás és a p szeu d o u tasítás között?
B izonyos p szeud o u tasításo k at az első m e n e t hajt végre, m íg m áso k at a m ásodik. 7. Mi a különbség az utasítás-helyszám láló és az utasításszám láló között, ha egy­
A függetlenül fo rd íto tt p ro g ra m o k a t a fu tta tá sh o z egyetlen v é g re h ajth a tó b in á ­ általán van különbség? E lvégre m in d k e ttő a p ro g ram b an a következő u tasítás
ris p ro g ram m á kell szerkeszteni. E zt a fe la d a to t látja el a szerkesztő. E lsődleges helyét tárolja.
feladatai az áthelyezés és a nevek h o zzáren d elése. A d in am ik u s szerk esztésn él az 8. A dja m eg a szim bólum táblát, m iu tán a következő Pentium 4-es u tasításo k at
eljáráso k a hívásukig n em szerk esztő d n ek be. A W indow s D L L fájljai és a U N IX m á r e lé rte . A z első utasítás kezdőcím e 1000.
m egosztott kön>'\'tárai d in am ik u san szerk esztő d n ek .
EVEREST: POP BX (1 bájt)
K2: PUSHBP (1 bájt)
WHITNEY; MOV BP,SP (2 bájt)
MCKINLEY: PUSH X (3 bájt)
7.6. Feladatok FUJI; PUSHSl (1 bájt)
KIBO: SUB 51,300 (3 bájt)

1. Egy ad o tt pro g ram b an a kód 2% -a h asználja a végrehajtási idő 50% -át. H a so n ­ 9. T udna olyan k ö rülm ényt em líteni, am elyben egy assem bly nyelv m egengedi,
lítsa össze az alábbi h árom stratég iát a program ozási és végrehajtási idő szerint. hogy egy cím ke ugyanaz leg>en, m int egy m űveleti kód (p éld áu l a A /O K cím ke­
Tegyük fel, hogy C -ben a p ro g ram írásh o z 100 p ro g ram o zó i időegység kell, míg k én t)? Fejtse ki az álláspontját.
az assem bly kód m egírása en nél 10-szer lassabb, de négyszer gyorsabban fut. 10. S orolja fel a B erkeley listaelem m egtalálásához szükséges lépéseket, ha az
a) C -ben készül az egész program . alábbi listában a bináris k eresést alkalm azza: A nn, A rb o r, Berkeley, C am b ­
b) A ssem bly nyelven készül az egész pro g ram . ridge, E u g en e, M adison, N ew H aven, Palo A Ito, P asadena, S an ta C ruz, Stony
c) E lőször m in d en C -ben, u tá n a a 2% -nyi k ritikus részt ú jraírják assem bly B rook, W estw ood és Yellow Springs. P áros elem szám ú lista középső e le m e ­
nyelven. kén t az elem szám felénél eggyel nagyobb indexű elem et vegye.
2. A k étm en ete s assem b lerre érvényes m eg fo n to láso k a fo rd ító p ro g ra m o k ra is I L L eh e t-e b in árisan keresni egy prím szám m éretű táb láb an ?
igazak? 12. Szám ítsa ki a következő szim bólum ok tö rd elési k ó d ját úgy, hogy a b e tű k e t
a) T ételezze fel, hogy a fo rd ító p ro g ram o k tárg y m o d u lo k at állítan ak elő, nem (A = I, B = 2 és így tovább) összeadja, és en n ek az összegnek veszi a tö rd elő -
pedig assem bly kódot. táb láz a t m é re te szerinti m o d u ló ját. A tö rd e lő tá b lá n a k legyen 0-tól 18-ig so r­
b) T ételezze fel, hogy a fo rd ító p ro g ra m o k szim bolikus assem bly nyelvet á llíta­ szám ozva 19 rése. A szim bólum ok a következők:
nak elő. els, jan , jelle, m aaike
3. Az Intel C P U legtöbb assem b lerén él az első o p e ra n d u s egy célcím , a m ásodik A szim bólum ok tö rd elési kódjai egyediek? H a nem . akkor hogyan leh etn e az
o p eran d u s egy forráscím . M ilyen p ro b lé m á k a t kellen e m egoldani, ha m ás m ó ­ ü tk ö zések et kezelni?
d on dolgoznán ak ? 13. A tö rd e lő tá b la m ódszer alap ján az azonos tördelési é rté k ű dolgok együttesen
4. L ehet-e az alábbi p ro g ram o t két m en e tb e n fo rdítani? A z EQU olyan p szeudouta- egy láncolt listába kerülnek. Egy altern atív m ó d szern él csak egyetlen egyszerű
sítás, am ely a cím két egyenlővé teszi az o p eran d u s m ezőben levő kifejezéssel. n réses táb la kell, am elyben m indegyik rés csak egyetlen kulcs és érté k e (vagy
P EQU Q egy a rra m u ta tó m u ta tó ) szám ára biztosít helyet. H a a tördelőfüggvény olyan
Q EQU R
é rté k e t g enerál, am ely m á r foglalt, ak k o r veszi a m ásodik tördelőfüggvényt, és
R EQU S
S EQU 4 ism ét p róbálkozik az elhelyezéssel. H a a/, elhelyezés ism ét nem sikerül, akkor
veszi a k övetkező tördelőfüggvényt és így tovább, egészen addig, míg üres h e­
lyet nem talál. H a a m eg teh rések hán y ad a R, akkor átlagosan hány p ró b á lk o ­
zásra van szükség egy új szim bólum elhelyezéséhez?
562 7. A Z A S S E M B L Y N Y ELV S Z IN T JE

14. A hogy a tech n o ló g ia fejlődik, talán leh etség es lesz egy n a p o n , hogy egy á ra m ­
köri lap k án tö b b ez e r azo n o s C P U hely ezk ed jen el, m indegyik n é h án y szavas
8. Párhuzamos számítógép­
lokális m em óriával. H a m indegyik C P U o lvashat és írh a t h áro m m eg o szto tt
regisztert, ak k o r hogyan le h et egy asszociatív m e m ó riá t m egvalósítani?
architektúra
15. A P entium 4 szeg m en tált felép ítésű , tö b b füg g etlen szegm enssel. Egy ilyen
g ép assem blere esetleg re n d elk e z ik a SEG N p szeu d o u tasítássa l, am ely közli
az assem blerrel, hogy a k ö v etk ező k ó d o t vagy a d a to t az N szegm ensbe tegye.
E n n e k a sém án ak len n e b árm i h a tá sa az u tasítás-h ely szám láló ra?
16. G y ak ran a p ro g ram o k tö b b D L L -h e z is k ap cso ló d n ak . Egy olyan m ó d szer
n em len n e-e h aték o n y a b b , am elynél az összes eljárás eg y etlen nagy D L L -b en
len n e elhelyezve, és eh h e z le h e tn e k ap cso ló d n i?
17. L e leh et-e k ép ezn i egy D L L -t k é t k ü lö n b ö ző v irtuális cím tarto m á n y b a ta rto z ó
virtuális cím re? H a igen, ak k o r m ilyen p ro b lé m á k je le n tk e z h e tn e k ? M e g o ld h a ­
tó k ? H a nem , a k k o r m it le h e t ten n i, hogy ne fo rd u lja n a k elő? B ár a szám ítógépek egyre gyorsabbak lesznek, a velük szem ben tám aszto tt elv árá­
18. A (statikus) szerkesztés egy m ó d szere az alábbi. A k ö nyvtárvizsgálatot m eg ­ sok legalább olyan gyorsan n ő n ek . A csillagászok a világegyetem fejlődését sz e re t­
előzően a szerk esztő elkészíti a szükséges eljáráso k listáját, am ely az össze­ n ék szim ulálni az ő sro b b an ástó l az id ő k végezetéig. A gyógyszerkutatók nagyon
szerk eszten d ő m o d u lo k b an az EXTERN u tasítással definiált n evekből áll. E z u tá n szeretn ék , h a bizonyos beteg ség ek h ez a szám ítógépeiken tu d n á n a k gyógyszereket
a szerkesztő lin eárisan vizsgálja a k ö n y v tárat, és kivesz m in d e n olyan eljárást, tervezni, m intsem hogy p atk án y o k tö m eg ét kelljen feláldozni ebből a célból. A re ­
am ely a névlistáb an elő fo rd u l. M ű k ö d ik ez a m ó d szer? H a n em , m ié rt nem , és p ü lő g ép e k tervezői ü zem an y ag -tak arék o sab b term ék ek k el tu d n á n a k előrukkolni,
hogyan leh etn e orvosolni? h a a szám ító g ép ek m in d e n t elvégeznének helyettük, és n em kellene szélcsatorna
19. M akróhívás aktuális p a ra m é te re k é n t h aszn álh ató -e egy reg iszte r? É s egy vizsgálatokhoz a p ro to típ u so k a t m egépíteniük. R öviden szólva, ak árm ek k o ra is a
k o n stan s? M iért igen, vagy m ié rt n em ? re n d elk ez é sre álló szám ítási kapacitás, főleg a k u tató k , a m érn ö k ö k és az ipari fel­
20. A fe la d a ta é p p e n egy m ak ró a ssem b le r m egvalósítása. A fő n ö k e esztétik ai h aszn áló k k ö zö tt sokan vannak , akiknek sohasem elég.
o kokból úgy d ö n t, hogy a m ak ró d efin íció k n ak n em szükséges m eg elő zn iü k a B ár a g ép ek órajel-frekvenciája folyam atosan nő, az áram k ö rö k sebességét
hívásaikat. M ilyen h atással van ez a d ö n tés a m egvalósításra? a z o n b an n em leh et a végtelenségig növelni. A legnagyobb teljesítm ényű szám ító ­
21. G ondo lk o zzo n el azon, hogy m ilyen m ó d o n k e rü lh e t egy m a k ró a sse m b le r vég­ g ép ek terv ezői szám ára a fénysebesség m á r m o st is nagy p ro b lém a, és nincs túl sok
te le n ciklusba. rem én y a rra , hogy az ele k tro n o k és a fo to n o k gyorsabb m ozgásra b írh ató k . A h ő ­
22. Egy szerkesztő 5 m o d u lt olvas, am ely ek n ek hossza eg y en k én t 200, 800, 600, elvezetési m eg o ld áso k a szu p erszám ító g ép ek et a leg m o d ern eb b légkondicionáló
500 és 700 szó. H a eb b e n a so rre n d b e n tö rté n ik a b e tö lté s, a k k o r m ik lesznek b eren d e z é se k k é is teszik egyben. V égül, m ivel a tran ziszto ro k m é re te fo ly am ato ­
az áthelyezési k o n stan so k ? san csökken, e lé rh e tn e k egy olyan kicsi m é re te t, am ikor m ár olyan kevés atom ból
23. írjo n egy k ét ru tin b ó l álló szim b ó lu m táb la p ro g ram cso m ag o t. A z enter(symbol, állnak, hogy a kvan tu m m ech an ik ai h atáso k (p éld áu l a H eisen b erg -féle b izonyta­
value) ru tin egy új szim bólum ot vegyen fel a táb láb a, a lookup(sym bol, value) lansági elv) v álh atn ak problém ává.
rutin egy szim bólum ot k eressen m eg a táb láb an . H aszn áljo n tö rd e lő tá b lá t. É p p e n e m eg o ld ásra váró egyre nagyobb és nagyobb p ro b lém ák m iatt fo rd u ln ak
24. írjo n egy egyszerű assem b lert a 4. fe jezetb en szerep lő M ic-1 szám ító g ép re. a szám ító g ép-tervezők a p árh u zam o s szám ító g ép ek felé. M íg egyáltalán n em biz­
A gépi u tasításo k kezelésén túl, tegye leh ető v é fo rd ítási id ő b en k o n stan so k tos, hogy m e g é p íth e tő egyetlen C PU -val és 0,001 ns ciklusidővel ren d elk ező szá­
szim bólum hoz re n d e lé sé t és gépi szóba való elh elyezésüket. m ító g ép , an nál elk ép z elh ető b b egy olyan, am iben 1000 d a ra b C P U van egyenként
25. A z előző p ro b lé m á t oldja m eg úgy, hogy az a ssem b lert egy egyszerű m ak ró zási 1 ns ciklusidővel. N o h a az u tó b b ib an a C P U -k lassabbak, m int az előzőben, m égis
lehetőséggel bővítse. a teljes szám ítási teljesítm ényük elm életileg azonos. E z ad a la p o t a rem ényre.
P árh u zam osítás különböző szinteken v ezethető be. A legalsó szinten a C PU -n
belül csővezeték vagy szuperskaláris arch itek tú ra és több funkcionális egység alkal­
m azható. E lk ép zelh ető az is, hogy nagyon hosszú utasításszavakat használunk im pli­
cit párhuzam ossággal kiegészítve. A C P U -t felvértezhetjük speciális funkciókkal a n ­
n ak érd ek éb en , hogy több végrehajtási szálat tudjon kezelni egyszerre. V égül, több
C P U -t is elh elyezhetünk egy lapkán. E zen m ódszerek együttes alkalm azásával a
tisztán szekvenciális tervezésű gép ek teljesítm ényének talán 10-szerese is elérhető.
564 8, P Á R H U Z A M O S SZÁ M fT Ó G ÉP-A R C H IT EK T Ú R A 8.1, L A P K A S Z IN T Ű P Á R H U Z A M O S S Á G 565

A k övetkező szin ten kiegészítő C P U -k illeszth ető k a re n d szerb e, növelve a szá­ Saját
m ítási kapacitást. A z ilyen C P U -k általá b a n speciális fe la d a to t lá tn a k el, m in t p é l­ memória Számítógép
dául hálózati csom agfeidolgozást, m u ltim édia-feld olg o zást vagy titkosítási fu n k ­
ciókat. Speciális alk alm azáso k e se té n e zek további 5-10-szeres gyorsulást e re d m é ­ Társprocesszor
nyezhetnek. Szál
A h h o z azonban , hogy a teljesítm én y 100, 1000 vagy 1 0 0 0 0 0 0 -szo ro sára nőjön,
sok C P U -t kell felhasználni, és e z e k e t alkalm assá kell te n n i a h a ték o n y eg y ü ttm ű ­
k ödésre. E z az ö tle t vezet a nagy m u ltip ro cesszo ro s g ép ek h ez és a m u ltiszám ító ­
gépek h ez (k laszte r szám ító g ép ek ). M o n d a n u n k sem kell, hogy tö b b ez e r procesz-
szor összekapcsolása egy re n d szerb e m aga is felvet p ro b lé m ák a t, am ely ek et m eg
kell oldani. CPU
V égül, m a m á r leh etség es, hogy teljes szerv ezetek et kö ssü n k össze az in te rn e t
fő CPU
segítségével, am elyek így nagyon lazán k ap cso ló d ó szám ítási h á ló z a to k a t a lk o t­
nak. E zek a re n d sz e re k m ég csak m o st k ezd en ek feltű n n i, de é rd e k es leh ető ség e t
re jte n e k m agu k b an a jö v ő re nézve. Szorosan kapcsolt Lazán kapcsolt
H a k ét C P U vagy feldolgozó elem közel v an egym áshoz, nagy átvivő kép esség ű
és kis k ésleltetésű k ap cso lat van k ö zö ttü k , és ugyanazon a fe la d ato n dolgoznak, (a) (b) (c) (d ) (e)
ak k o r szorosan kapcsoltnak nevezzük. E zzel e lle n té tb e n , ha távol v a n n ak egym ás­
tól, kis áte re sz tő képességű és nagy k ésle lte té sű k a p c so la tu k van, és szám ítási fe l­ 8.1. ábra. (aj Lapkaszintű párhuzamosság, (b) Társprocesszor, (c) Multiprocesszor
ad a ta ik n a k kevés k ö zü k van egym áshoz, a k k o r lazán kapcsoltnak nevezzük. (d) Multiszámítógép, (e) Grid
E b b e n a fejez e tb en a p á rh u zam o sság k ü lö n b ö ző fajtáih o z ta rto z ó tervezési
alapelveket fogjuk m egvizsgálni és tan u lm án y o zzu k a leg k ü lö n féléb b p éld ák at.
A legszorosabban k ap cso lt ren d sz e re k k el kezdjük, azokkal, am elyek lap k aszin tű 8.1.1. Utasításszíntű párhuzamosság
p árh u zam o sság o t alkalm aznak, és fo k o za to sa n h a la d u n k egyre lazáb b an k apcsolt
re n d sz e re k felé, hogy aztá n a grid re n d sz erek rő l e jte tt n éh án y szóval fejezzük be. A legalsó szinten egy p árh u zam o sítási lehetőség, hogy ó racik lu so n k é n t tö b b u ta ­
E z a sp ek tru m nagyjából a 8.1. áb rá n láth a tó . sítást k ezd ü n k el végrehajtani. A z ilyen C P U -k n ak k é t válto zata létezik: szu p er­
A p árh u zam o sság k érd ése a sp e k tru m egyik v égétől a m ásikig a k u ta tá so k k ö ­ skaláris p ro cesszo ro k és V L IW processzorok. M in d k e ttő t é rin te ttü k k o ráb b an a
zé p p o n tjáb an van. E n n e k m eg felelő en e b b en a fe jezetb en sok hivatkozást ad u n k könyvben, de hasznos lehet, h a röviden újra á tte k in tjü k ezeket.
m eg, főleg a tém áró l szóló friss cikkekre. A b ev ezető b b jelleg ű h ivatkozások a K o rá b b a n láttu n k m á r szuperskaláris p ro cesszo ro k at (lásd 2.5. áb ra). A leggya­
9.1.8-as alfejezetb en találh ató k . ko rib b kon figurációban a csővezeték egy bizonyos p o n tjá n egy utasítás készen áll a
v ég reh ajtásra. A szuperskaláris C P U -k k é p esek több u tasítást kiadni a végrehajtó
egységeknek m in d en óraciklusban. Egy a d o tt helyzetben k iad o tt u tasításo k szá­
m a függ a p rocesszor felép ítésétő l és a k o n k ré t k ö rülm ényektől is. A h ard v er a k i­
8.1. Lapkaszíntű párhuzamosság a d o tt u tasításo k m axim ális szám át h atáro zza m eg, ez álta lá b a n k e ttő és h a t között
van. E lő fo rd u lh a t azonban, hogy egy u ta sítá sn a k olyan funkcionális egységre van
Egy lapka áteresz tő k é p e ssé g é t p é ld áu l úgy nö v elh etjü k , hogy egyszerre tö b b d o l­ szüksége, am ely é p p en n em áll ren d elk ezésre, vagy olyan a d a tra , am ely m ég nincs
got v ég eztetü n k el vele. E b b e n a fe jezetb en a n n a k já ru n k u tá n a, hogy m ik én t le­ kiszám ítva. E zek b en az esetek b en az u tasítás vég reh ajtása n em kezdődik el.
h e t növelni a seb esség et lap k aszin tű p árh u zam o sság alkalm azásával, tö b b ek k ö ­ A m ásik fajta utasításszintű párhuzam osságot a VLIW (Very Long Instruction
zö tt utasításszin tű p árh u zam o sság g al, tö b b szálű v ég reh ajtással, illetve tö b b C P U Word, nagyon hosszú utasításszavú) processzorokban találjuk. E red eti form ájuk­
egy lap k ára helyezésével. E z e k a m ó d szerek eg észen kü lö n b ö ző k , de m indegyik­ ban a V L IW gépek valóban hosszú szavakat használtak, ezek m indegyike több funk­
nek van előnye. M in d en e se tb e n az a la p ö tle t az, hogy tö b b tev ék en y ség et végez­ cionális egységet igénybe vevő u tasításokat tartalm azott. Tekintsük például a 8.2. (a)
zü n k egyszerre. á b rán láth ató csővezetéket, ahol a gépnek 5 funkcionális egysége van, k ét egész, egy
lebegőpontos, egy b etö ltő és egy táro ló utasítást tu d elvégezni egyszerre. E n n ek a
gép n ek egy V L IW u tasítása ö t m űveleti k ó dot és öt o p eran d u sp árt tartalm az, egy
m űveleti k ó d ot és egy o p eran d u sp árt funkcionális egységenként. M űveleti kódon-
566 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8,1. L A P K A S Z IN T Ű P Á R H U Z A M O S S Á G 567

É rd e m e s röviden m egjegyeznünk, hogy az u tasításszin tű p árh u zam o sság nem


az alacsony szintű p árh u zam o sság egyetlen form ája. E gy m ásik a m em ó riaszin ­
tű p árh u zam o sság , am ik o r több m em ó riam ű v elet áll v ég reh ajtás a latt egyszerre
(C h o u és társai, 2004).

A TriMedia VLIW CPU


(a)

A z 5. fejezetb en szerep elt egy V L IW C P U , az Itanium -2. V izsgáljunk m eg m ost


egy attó l teljesen e lté rő V L IW processzort. E z a Tk-iMedia, am elyet a P hilips te r­
vezett, ugyanaz a hollan d elek tro n ik ai cég, am elynek nevéhez a zenei C D és a
C D -R O M feltalálása is fűződik. A T riM edia arra a célra készült, hogy beágyazott
p ro cesszo rk én t használják olyan alkalm azásokban, am elyekben intenzíven hasz­
n á ln a k grafikát, h an g o t és m ozgóképet. Ilyenek találh ató k a C D -, D V D - és M P3-
lejátszókban, C D - és D V D -író k b an , in terak tív tv-készülékekben, digitális fény­
k ép ező g ép ek b en , k am k o rd e re k b e n és egyéb eszközökben. E zek et a felhasználási
te rü le te k e t tekintve nem m eglepő, hogy felép ítését tekintve lényegesen m ás, m int
az Itan iu m -2 , am ely egy nagy teljesítm ényű szerverekbe szánt általán o s célú C P U .
A TriM edia egy igazi V L IW processzor, m in d en u tasítása nem kevesebb, m int öt
m űveletet tartalm azh at. Teljesen optim ális feltételek esetén , m in d en óraciklusban
egy u tasítás végrehajtása elkezdődik, vagyis m ind az öt m űvelete kiadásra kerül. A z
ó ra frekvenciája 266 M H z vagy 300 M H z, de az effektív sebessége ennél ak ár ötször
nagyobb lehet, mivel ciklusonként ö t m űveletet képes kiadni. A következőkben a
Y
Köteg T riM edia TM 3260 verziót tárgyaljuk, m ás verziók ettő l kism érték b en eltérnek.
A 8.3. á b rá n egy tipikus u tasítás láth ató . A skála 8, 16, és 32 b ites egész m ű v ele­
8.2. ábra. (a) Egy CPU csővezeték, (b) Egy VLIW utasítássorozat (c) Egy utasítássorozat tek tő l kezdve, IE E E 754 szabvány szerinti leb eg ő p o n to s m ű v eletek en át p á rh u z a ­
kötegjelzésekkel m os m u ltim éd ia-u tasításo k ig terjed . A z ó racik lu so n k én ti öt m űveletn ek és a p á r ­
h u zam o s m u ltim éd ia-m ű v eletek n ek k ö szö n h ető en a T riM edia elég gyors ahhoz,
ként 6 bitet, regiszter o p eran d u so n k é n t 5 bitet, valam int m em ó riahivatkozásonként hogy k am k o rd erb ő l érk ező teljes m é re tű teljes sebességű digitális videót szoftve­
32 bitet feltételezve egy utasítás 134 bit hosszú leh et ~ ez tényleg elég hosszú. re se n dekó d oljon.
E z a felép ítés azo n b a n tú l m e rev n ek bizonyult, m e rt n em m in d en u ta sítás tu d ­
ta kihasználni az összes funkcionális egységet, ez p ed ig sok h elykitöltő NO-OP (no 1. szelet 2. szelet 3. szelet 4. szelet művelet az 5, szeletben
o p e ra tio n ) b eillesztését te tte szükségessé, ahogy a 8.2. (b ) á b rá n is láth a tö . E m iatt
a m o d ern V L IW g ép ek k ép esek arra, hogy egym ás u tá n követk ező u tasításo k at
\ \ \ \
Összeadás Léptetés Multimédia Betöltés Tárolás
ö sszetarto zó k ö te g k é n t je lö lje n e k m eg, p é ld áu l egy „kö teg v é g e ” b ittel, ahogy a
8.2. (c) áb rán láth a tó . A p ro cesszo r aztá n b eo lv ash atja az egész k ö teg et, és egy­
szerre in d íth atja az u tasítá so k a t. A ko m p atib ilis u tasítá so k k ö teg eln ek e lő k észíté­ Utasítás
se a fo rd ító p ro g ra m felad ata.
A z egyszerre v é g reh a jth a tó u tasításo k m e g h atá ro z ásán a k fe la d a tá t a V L IW 8.3. ábra. Egy tipikus Tri!\/\edia-utasítás, öt lehetséges műveletet bemutatva
m ó d szer tu la jd o n k é p p en végrehajtási idő helyett fo rd ítási id ő re tolja el. E z nem
csak a h ard v ert teszi egyszerűbbé és gyorsabbá, de m ivel egy o p tim alizáló fo rd ító ­ A T riM edia m em ó riája bájtszervezésű, a B/K reg iszterek a m em ó ria c ím ta rto ­
p ro g ram szükség e se tén a k ár nagyon hosszú ideig is fu th a t, jo b b c so p o rto k alak ít­ m án y áb a v an n ak ágyazva. A (16 bites) félszavak és a (32 bites) egész szavak csak
h a tó k ki ezzel a m ó d szerrel, m in t am ik et a h a rd v e r v ég reh ajtási id ő b en össze tu d ­ a n ek ik m eg felelő cím ekre igazítva h ely ezk ed h etn ek el. Egy az o p eráció s ren d szer
n a állítani. T erm észetesen a C P U a rc h ite k tú ra ilyen rad ik ális m eg v álto ztatása n e ­ által b e á llíth a tó P SW b itn ek m egfelelően kis en d ián és nagy endián m ó d b an is
h ezen lesz keresztü lv ih ető , ahogy azt az Ita n iu m té rh ó d ítá sá n a k lassúsága is jelzi. m ű k ö d h et. E z a bit csak a m em ó riáb ó l b e tö ltő és az o d a tá ro ló m ű v eletek re van
568 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ü R A 8,1, L A P K A S Z IN T Ű P Á R H U Z A M O S S Á G 569

hatással. A C P U ta rta lm a z egy szétv álaszto tt nyolcutas h alm azk czclésű g yorsító­ v eletek. P éldául leb eg ő p o n to s összehasonlító m űvelet csak a h arm ad ik szeletben
tá ra t, 64 bájtos so rm é re tte l m ind az u tasításo k , m ind az a d a to k szám ára. A z u ta sí­ fo rd u lh a t elő.
táso k gyorsítótára 64 KB, az a d a to k é 16 KB. A k o n stan s egység a közvetlen cím zésű m ű v eletek h ez használatos, m in t am ilyen
128 általán o s célú 32 b ites reg isztere van. A z RO reg iszter ta rta lm a m indig 0, az u tasítás részek én t tá ro lt szám b etö ltése egy regiszterbe. A z egész A L U össze­
az R1 regiszter ta rta lm a m indig 1. B árm elyik m eg v álto ztatására irányuló kísérlet a d ást, kivonást, a szokásos B oole-féle m ű v eletek et és becsom agoló/kicsom agoló
C P U szívroham ot okoz. A fe n n m a ra d ó 126 reg iszter teljesen egyen ran g ú és b á r­ m ű v ele tek e t végez. A lé p te tő egység a m eg ad o tt szám ú bittel való lé p te té st végez
m ilyen célra felh aszn álh ató . Van m ég négy speciális célú 32 bites regiszter. E zek a valam ely regiszteren.
program szám láló (u tasításszám láló ), p ro g ram állap o tszó , v alam in t két m egszakí­ A b e tö ltő /táro ló egység m em óriaszavakat olvas regiszterbe és ír vissza o n n an . A
tásokkal k apcsolato s regiszter. V égül, egy 64 b ites reg iszte r szám lálja az u to lsó in ­ T riM edia lényegében egy kibővített R IS C C P U , így a norm ál m űveletek reg iszte­
dítás ó ta eltelt óracik lu so k at. 300 M H z-es frekvencia e setén közel 2000 évig tart, re k e n h ajtó d n ak végre, a m em ó ria kezelését a b e tö ltő /tá ro ló egység végzi. A z á t­
m íg a szám láló k ö rb eér. vitt a d a to k 8 ,1 6 vagy 32 b itesek leh etn ek . A z aritm etik ai és logikai m űveletek nem
A T riM edia T M 3260-nak 11 funkcionális egysége van az aritm etik ai, logikai és érik el a m em óriát.
vezérlési m űveletek elvégzésére (van egy a g y o rsító tár k ezeléséh ez is, ezt nem fog­ A szorzó egység (egész/F P szorzó) végzi m ind az egész, m ind a lebegőpontos
ju k tárgyalni); ezek a 8.4. á b rá n láth ató k . A z első k ét oszlop az egység n ev ét és rö ­ szorzást. A következő három egység kezeli so rre n d b e n a leb eg ő p o n to s összeadást/
vid leírásá t tartalm azza. A h arm ad ik oszlop ad ja m eg, hogy hány h ard v erp éld án y kivonást, összehasonlítást, gyökvonást és osztást.
van belőle. A negyedik oszlop a k ésle lte té st tartalm azza, vagyis azt, hogy hány ó ra ­ A v ezé rlé sátad áso k at az elágazó egység kezeli. M inden ugrás u tán van egy 3 cik­
ciklust igényel, am íg elvégzi a fe la d a tá t. E b b e n az összefüggésben é rd em es m eg je­ lust igénylő fix hosszúságú késleltetési rés, így az ugrás u tán i 3 u tasítás (legfeljebb
gyezni, hogy a le b eg ő p o n to s gyökvonást és osztást végző egység kivételével m in d ­ 15 m ű v elet) m indig v ég reh ajtásra kerül m ég feltétel nélküli ugrás esetén is.
egyik csővezetékes. A táb lá za tb a n m eg a d o tt k ésle lte té s azt ad ja m eg, hogy hány V égül elé rk eztü n k a k ét m ultim édia-egységhez, am elyek a speciális m u ltim é­
ciklusra van szükség a m ű v elet ere d m én y é n ek m eg h atáro zásáh o z, de m in d e n cik ­ d ia-m ű v eletek et végzik. A funkcionális egységek n evében a D S P a D igital Signal
lusban ki leh et ad n i v ég re h ajtásra egy új m ű v eletet. így p éld áu l h á ro m egym ás P ro ccsso r (digitális jelfeldolgozó) kezd ő b etű ib ő l áll össze, am elyet ezek az egy­
u tá n következő u tasítás m indegyike ta rta lm a z h a t k é t b e tö ltő m ű v eletet, am i h at ségek felváltani h ivatottak. A következőkben röviden leírjuk a m u ltim éd ia-m ű ­
egyidejű, a végreh ajtás k ü lö n b ö ző fázisában lévő b e tö lté s t eredm ényez. v eletek et. E zek egyik k iem elen d ő tulajdonsága, hogy telített módú aritm etikát
V égül az u to lsó ö t oszlopból k iolvasható, hogy az u tasításszó m ely pozícióján h aszn áln ak , e lle n tétb en az egész m ű v eletek k ettes ko m p lem en s aritm etikájával.
(m elyik u tasításszeletb en ) állh a tn ak az a d o tt funkcionális egységet h aszn áló m ű- A m ik o r egy m űv elet túlcsordulás m iatt az ábrázolási tarto m án y o n kívüli szám ot
e red m én y ezn e, akkor ahelyett, hogy kivételt g e n eráln a vagy valam ilyen „szem e­
Késlel­ t e t” hagyna a regiszterben, a legközelebbi érvényes szám ot adja. P éldául 8 bites
Egység Leírás Db 1 2 3 4 5
tetés előjel n élküli szám ok esetén 130 -I- 130 ered m én y e 255.
Konstans Közvetlen műveletek 5 1 X X X X X M ivel n em m in d en m űvelet sz erep elh et m in d en u tasításszeletb en , gyakran e lő ­
Egész ALU 32 bites aritmetika, Boole-műveletek 5 1 X X X X X fo rd u l, hogy egy u tasítás a lehetséges ö tn él kevesebb m ű v eletet tartalm az. A m ikor
Léptető Léptetés egy vagy több bittel 2 1 X X X X X egy szelet k ih aszn álatlan , ak k o r a veszendőbe m en ő hely m inim alizálása é rd e k é ­
Betöltő/tároló Memóriaműveletek 2 3 X X b en tö m ö rítés tö rtén ik . A kihasznált szeletek b en lévő m űv eletek 26, 34 vagy 42
32 bites egész és lebegőpontos b ite t fo g laln ak el. A m űv eletek szám ától függően a T riM edia-utasítások hossza
Egész/FP szorzó 2 3 X X
szorzások - egy fix tö b b le te t is beleszám ítva - 2 és 28 b ájt k ö zö tt lehet.
FP ALU Lebegőpontos aritmetika 2 3 X X A T riM edia nem ellenőrzi futás közben, hogy az utasításban lévő m űveletek kom ­
FP összehasonlító Lebegőpontos összehasonlitás 1 1 X patibilisek-e. A kkor is végrehajtja, ha nem azok, és hibás eredm ényt ad. Az ellen ő r­
FP gyökvonó/osztó Lebegőpontos gyökvonás és osztás 1 17 X zések et szándékosan hagyták ki idő- és tranzisztortakarékossági okokból. A Pentium
Elágazó Vezérlésátadás 3 3 X X X ellenőrzi, hogy a szuperskaláris utasítások kom patibilisek-e, de en n ek hatalm as a
2 X 16 bites, 4 X 8 bites multimédia­ költsége összetettségben, időben és tranzisztorban. A T riM edia ezeket a költsége­
DSP ALU 2 3 X X X
aritmetika k et m eg tak arítja azáltal, hogy az ü tem ezést áthárítja a fordítóprogram ra, am elynek
2x16 bites, 4 x8 bites multimédia­ annyi ideje van a m űveleteket optim álisan utasításszavakba rendezni, am ennyit csak
DSP MÚL 2 3 X X
szorzások
akar. M ásrészről viszont, ha egy m űveletnek egy ép p en foglalt funkcionális egységre
8.4. ábra. A TM3260 funkcionális egységei, ezei< darabszáma, i<ésleltetése, valamint az általuk lenne szüksége, akkor az utasítás várakozni fog az egység szabaddá válásáig.
használható utasításszeletek U gyanúgy, m int az Itanium -2, a T riM edia is p red ik átu m o s m ű v eletek et alk al­
m az. (K ét a p ró kivételtől eltekintve) m in d en m űvelet m egnevez egy regisztert.
570 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8.1. L A P K A S Z IN T Ű P Á R H U Z A M O S S Á G 571

am elyet ellenőrizni kell a m űv elet v ég reh ajtása elő tt. H a a reg iszte r legkisebb b ői áll. A m ik o r egy kép feldolgozásra (például tö m ö ríté sre ) k erül, ak k o r leg tö b b ­
hely érték ű bitje be van állítva, a k k o r a m űv elet v é g reh ajtásra k erü l, k ü lö n b en ki­ ször h á ro m ko m p o n en ssel rep rezen tálják , vagy színenként (R G B kódolásnál),
m arad . A z utasítás m in d en m ű v elete (legfeljebb ö t) egym ástól függetlenül p redi- vagy valam ilyen logikailag ekvivalens fo rm áb an (Y U V kódolás, később szó lesz
k átu m o zh atő . P red ik á tu m o s m ű v eletre p é ld a az ró la eb b e n a fejezetb en ). B árhogy is tö rtén ik , ren g eteg szám ítást kell végezni 8 b i­
tes előjel n élküli szám okat ta rtalm azó m átrixokon.
IF R2 lADD R4, R5 -> R8 A T riM edia sok olyan m ű v eletet tartalm az, am elyeket speciálisan 8 bites e lő ­
jel nélküli szám o k at ta rtalm azó m átrixok h aték o n y feldolgozására terveztek. Egy
am ely e lle n ő r zi az R2 regisztert, m ajd, ha a legk iseb b h elyérték ű bit 1, akkor ö s s z e ­ egyszerű p é ld a k é n t a 8.6. (a) áb rán tek in tsü k a (nagy en d ián ) m em ó riáb an tá ro lt
adja R4 é s R5 tartalm át, é s az ered m én yt R8-ban tárolja. E gy m ű v e let fe lté te l n é lk ü ­ 8 b ites é rté k e k egy tö m b jén ek bal felső sarkát. A saro k b an lévő 4 x 4-es blokk
livé te h e tő azáltal, hogy pred ik átu m regiszterk én t Rí-re hivatkozik (a m ely n ek tar­ 16 d arab 8 bites é rté k e t tartalm az, eze k e t^ l-tó l F -ig b etű k k el jelö ltü k m eg. Tegyük
talm a m in d ig 1). RO (é rté k e m in d ig 0) üres m ű v eletté tesz m in d en t. fel p éld áu l, hogy a k é p e t tran szp o n áln i kell, hogy a 8.6. (b) áb rán lá th a tó e lre n d e ­
A T riM edia m u ltim éd ia-m ű v e letek a 8.5. á b rán lá th a tó 15 cso p o rtb a so ro lh a­ zést kapjuk. H ogyan tu d ju k ezt a fe la d a to t m egoldani?
tók. Sok m űvelet ta rta lm a z vágást, am i azt jelen ti, hogy fo g ad egy o p e ra n d u st
és egy tarto m án y t, m ajd a tarto m á n y b a k ényszeríti az o p e ra n d u st azáltal, hogy a / 32 bites regiszter
m eg en g e d ett legkisebb vagy legnagyobb é rték k el hely ettesíti. V ág ást le h e t végez­
ni 8, 16, vagy 32 b ites o p e ra n d u so k o n . P éld á u l h a a 0 -255 tarto m án n y a l vágást A B C D A E 1 M R2 A B C D R2 A E 1 M
végzünk 40-en és 340-en, a k k o r az e red m én y 40 és 255 lesz. E F G H B F J N R3 E F G H R3 B F J N
1 J K L C G K 0
R4 1 J K L R4 C G K 0
Csoport Leírás M N 0 P D H L P
Vágás 4 bájtos vagy 2 félszavas vágás R5 M N 0 P R5 D H L P
D5P abszolút érték Előjeles érték abszolút értéke, vágás (a) (b) (0 (d)
DSP összeadás Előjeles összeadás, vágás
DSP kivonás Előjeles kivonás, vágás
8.6. ábra. (a) 8 bites értéi<ei< egy mátrixa, (b) A transzpor^ált mátrix, (c) Az eredeti mátrix négy
DSP szorzás Előjeles szorzás, vágás
regiszterbe töltve, (d) A transzponált mátrix a négy regiszterben
Min, max Négy bájtpár minimuma vagy maximuma
Összehasonlítás Két regiszter bájtonként! összehasonlítása
Léptetés 16 bites operanduspárok léptetése A tran sz p o n álás v ég reh ajtásán ak egyik m ódja, ha 12 olyan m ű v eletet h aszn á­
Szorzatok összege 8 vagy 16 bites szorzatok előjeles összege
lunk, ahol m indegyik egy b á jto t tölt egym ástól k ü lönböző regiszterekbe, m ajd
Összefésülés, csomagolás, csere Bájtok és félszavak kezelése
12 m ásik m ű veletet, am elyek a b ájto k at a m em ó ria m egfelelő helyére teszik.
Bájtnégyes átlagok Előjel nélküli bájtnégyes átlaga
(Figyeljük m eg, hogy a diagonális m en tén elhelyezkedő négy bájt nem m ozdul.)
Bájtátlagok 4 előjel nélküli bájt átlaga
E zzel a m egközelítéssel az a p ro b lém a, hogy 24 (hosszú és lassú) m em ó riam ű v e­
Bájtszorzás Előjel nélküli 8 bites szorzás
le te t igényel.
Mozgásbecslés
A 8.6. (c) áb rán szem léltetett altern atív m egközelítés lehet, hogy kiin d u lás­
8 bites előjeles különbségek abszolút értékének összege
Egyéb k én t négy m űvelettel egy-egy szót tö ltü n k az R2-től R5-ig te rje d ő négy regiszterbe.
Egyéb aritmetikai műveletek
E z u tán a négy ered m én y szót m eg k ap h a tju k m aszkoló és lép tető m űveletekkel,
8.5. ábra. A TriMedia speciális utasltásainal< nagyobb csoportjai ahogy a 8.6. (d) áb rán láth ató . V égül ezek et a szavakat visszaírjuk a m em óriába.
H a b á r ez a m ód szer a szükséges m em ó riam ű v eletek et 24-ről 8-ra csö k k en tette, a
A vágás cso p o rt vágási m ű v eletek et végez. A 8.5. áb ra követk ező négy c so p o rt­ m aszkolás és lé p tetés költséges, m ert az egyes b á jto k a t elég sok m űvelettel lehet
ja a m eg ad o tt m ű v e lete k e t végzi kü lö n féle m é re tű o p e ra n d u so k o n , az ered m én y t csak kinyerni, és a helyükre illeszteni.
egy bizonyos tarto m á n y ra vágja. A m in, m ax c so p o rt m egvizsgál k é t reg iszte rt, és A T riM edia az előző k e ttő n é l is jo b b m egoldást tesz lehetővé. K ezd etb en b etö lti
m in d en b á jtra m egkeresi a legkisebb, illetve a legnagyobb é rté k e t. H a so n ló an , az a négy szót négy regiszterbe. Az ered m én y kiszám ításához azonban m aszkolás és
ö sszehasonlítás cso p o rt k ét reg isztert 4 b á jtp á rn a k értelm ezv e m in d e n p á rt össze­ lé p te té s h elyett speciális m ű v eletek et használ a b ájto k kinyerésére és b eillesztésé­
hasonlít. re. M in d ezek m iatt összesen 8 m em óriahivatkozás és 8 speciális m u ltim éd ia-m ű ­
A m u ltim éd ia-m ű v e letek et ritk án kell 32 bites eg észek en elvégezni, m e rt a leg ­ velettel elv égezhető a tran szp o n álás. A p ro g ram k ó d egy olyan utasítással k e zd ő ­
több kép a vörös, zöld és kék színösszetevűknek m eg felelő 8 bites R G B érték ek - dik, am elyik a 4. és az 5. szeletéb en az R2 és R3 reg isztert b e tö ltő m ű v eletek et tar-
572 8, P Á R H U Z A M O S SZÁ M fT Ó G ÉP-A R C H IT EK T Ú R A 8.1. L A P K A S Z IN T Ű P Á R H U Z A M O S S Á G 573

talm az. L,zt követi egy h asonló az R4 és R5 b e tö lté sé re . Ez a két u tasítás az 1., 2. és A finom szem csézettségű többszálúság úgy fedi el az elak ad áso k at, hogy a szála­
3. szeletet m ás cclia felh aszn álh atja. A szavak b etö lté se u tá n a nyolc m u ltim éd ia­ k at k ö rb en egym ás u tán fu ttatja, m inden ciklusban m ásik szál u tasítását veszi elő,
m űvelet elhelyezh ető két u tasításb an , m ajd a 4 tá ro lás lijabb k e ttő b e n . M in d en t ahogy az a 8.7. (c) áb rán láth ató . A z A 1 által kezdem én y ezett m em óriam íívclct
összevetve csak h at u tasítá sra van szükség, és a 30 szeletből 14 m ás m űveletek b efejező d ik m ire a negyedik ciklushoz érünk, teh át az A 2 utasítás m ég ak k o r is
szám ára felhaszn álh ató . E z lényegében azt jelen ti, hogy a fela d a t nagyjából 3 u ta ­ v é g re h a jth a tó , ha szüksége van a z ^ 7 ered m én y ére. E bben az esetb en a m axim ális
sításnak m egfelelő p ro g ram k ó d d al m eg o ld h ató . A többi m u ltim éd ia-m ű v eletek elak a d ás k ét ciklushossznyi, e z ért h áro m szállal az elak a d t m űvelet m indig id ejé­
h aso n ló an hatékonyak. A z erős m ű v eletek n ek és az ö tszeletes u tasításo k n a k k ö ­ b en b efejeződik. H a egy m e m ó riára várakozás négy ciklust venne igénybe, akkor a
szö n h ető en a T riM edia rendkívül h aték o n y a n oldja m eg a m u ltim éd ia-alk alm azá­ folyam atos m ű k ö d ésh ez öt szálra len n e szükség és így tovább.
sokban felm erülő szám ítási fe lad ato k at. M ivel a szálaknak sem m i kc)zük nincs egym áshoz, m indegyiknek saját regisz­
terk észlet kell. A m ik o r egy utasítás k iadásra kerül, a reg iszterk észletét azonosí­
tó m u ta tó t is m ellékelni kell, hogy a h ard v er tu d ja m elyik reg iszterkészlethez kell
8.1.2. Lapkaszíntű többszálúság nyúlnia, ha valam elyik regiszterre hivatkozna. E zért az egyszerre fu tta th a tó szálak
m axim ális szám a a terv ezésk o r eldől.
M inden m odern csővezetékes C P U -ra jellem ző p ro b lém a, hogy am ik o r olyan m e- N em csak a m em ó riam ű v eletek m iatt vannak elakadások. N éh a egy utasításnak
m óriacím rc tö rté n ik hivatkozás, am elyik sem az első, sem a m ásodik szintű gyorsí­ szüksége van egy korábbi utasítás ered m én y ére, am ely m ég nem áll rendelkezésre.
tó tárb an nincs b en n e, a k k o r sok id ő telik el a k é rt szó (és a hozzá ta rto z ó g y orsító­ N é h a egy u tasítás azért nem k ezd ő d h et el, m ert olyan feltételes elágazást követ,
sor) b etö ltő d éséig , így a csővezeték elakad. E n n ek a h elyzetnek egyik leh etség es am elynek a k im en etele m eg kétséges. Á ltalánosságban, ha egy csővezetéknek k fá ­
kezelési m ódja az űn. lapkaszintű többszálúság, am ely a C P U szám ára lehetővé zisa van, de van legalább k d arab , k ö rb en egym ás u tán fu tta th a tó szál, ak k o r sosem
teszi, hogy az elak a d áso k at m eg p ró b álja elfedni tö b b vég reh ajtási szál egyidejű lesz a csőv ezetékben szálanként egynél több utasítás, te h á t konfliktus sem lép h et
kezelésével. R öviden arró l van szó, hogy ha egy szál b lokkolódik, ak k o r a C P U a fel. E b b e n a helyzetben a C PU m egakad ás nélkül, teljes sebességgel m űködhet.
h ard v er teljesen kih aszn áltság a é rd e k é b e n m ég m indig fu tta th a t egy m ásikat. T erm észetesen n em biztos, hogy m indig rend elk ezésre áll annyi szál, ahány fázi­
Jó lleh et az alap ö tle t m eg leh ető sen egyszerű, tö b b v álto zata is létezik, am elyeket sa van a csővezetéknek. E zért a tervezők egy része egy m ásik, durva szeniesézett-
m ost m egvizsgálunk. A z első m egközelítés neve finom szem csézettségű többszálú­ ségű többszálúságként ism ert és a 8.7. (e) áb rán b e m u ta to tt m egkíízciítést része­
ság, am elyet a 8.7. á b rán sz em léltetü n k egy olyan C P U -ra, am ely cik lu so n k én t egy sít előnyben. Itt az A szál elindul, és m indaddig fut, am íg el nem akad, ezzel elve­
u tasítást képes kiadni. A 8.7. (a )-(c ) á b rák o n az A , B és C szálak at lá th a tju k 12 g é­ szítve egy ciklust. E n n é l a p o n tn ál váltás tö rtén ik , és B1 k erü l végrehajtásra. Mivel
pi ciklus idejére. A z első ciklus a la tt a z ^ l szál a z / l / u tasítást h ajtja végre. E z egy B első u tasítása elak ad , újabb szálváltás tö rtén ik és C l h ajtódik végre a hatodik
ciklus a latt be is fejeződik, e zért a m áso d ik ciklusban az ^ 2 kezdődik. Sajnos ez ciklusban. M ivel u tasítás elak a d ásak o r egy ciklust elveszítünk, m egvan ann ak a
az utasítás nem találja az a d a tá t az elsőszintű gyo rsító tárb an , e z é rt k ét ciklus ve­ leh ető ség e, hogy a durva szem csézettségű többszálúság kevésbé hatékony legyen,
szendőbe megy, am íg az igényelt szó m eg érk ezik a m ásodik szintű gyorsítótárból. m int a finom szem csézettségű többszálúság, de m egvan az a nagy előnye is, hogy
A szál az ö tö d ik ciklusban folytatódik. A z áb rán láth ató , hogy h aso n ló k é p p e n a B jóval kevesebb szál kell a C P U kihasználásához. A durva szem csézettségű tö b b ­
és C szál is m eg ak ad id ő n k én t. E b b e n a m o d ellb en egy m eg ak ad t u tasítás u tá n k ö ­ szá lú sá g jo b b olyan helyzetekben, am ikor nincs eleg en d ő fu tta th a tó szál.
vetkezők nem a d h a tó k ki. T erm észetesen ö sszetetteb b m egoldásokkal n é h a m égis H a b á r a durva szem csézettségű többszálúságot ügy írtuk le, m int am elyik csak
k iad h ató k új utasításo k , de ezt a leh e tő sé g et m ost figyelm en kívül hagyjuk. elak a d ás e setén vált a szálak között, ez nem az egyetlen lehetőség. Egy m ásik
m ó d szer, hogy azonnal váltunk olyan utasításo k esetén , am elyek elak a d ást id éz­
(a) Ál A2 A3 A4 A5 A6 A7 A8 (d) A1 B1 C l A2 B2 C2 Á3 83 C3 A4 84 C4
h e tn e k elő, m in t p éld áu l a beti)ltés, a táro lás vagy az elágazás, m ég m ielőtt k id e­
rü ln e, hogy v alóban elak a d ást idéznének-e elő. E z u tóbbi m ód szer korábbi (az
(b) B1 B2 B3 84 B5 B6 B7 B8
u tasítás d ek ó d o lása u tá n i) váltásokat tesz lehetővé, és elk erü lh eti a kihasználatlan
ciklusokat. T u lajdonképpen azt m ondja, hogy „fusson addig a szál, am íg tudjuk,
(c) Cl C2 C3 C4 C5 C6 C7 C8 (e) A1 A2 B1 Cl C2 C3 C4 A3 A4 A5
hogy n em lesz p ro b lém a, egyébként váltsunk, biztos, am i b iztos.” U tóbbi m ódosí­
tással a d u rv a szem csézettségű többszálúság h asonlóbbá válik a gyakoribb váltá­
óraciklus Óraciklus
sokkal o p e rá ló finom szem csézettségűhöz.
F ü g g etlen ü l attól, hogy milyen töbtjszálúságot alkalm azunk, valam ilyen m ódon
8.7. ábra. (aj-(c) Három szál. Az üres négyzetek azt Jelzik, hogy a szál a memóriára várva nyilván kell ta rta n u n k , hogy m elyik utasítás m elyik szálhoz tartozik. Finom szem ­
megakadt, (d) Finom szemcsézettségű többszálúság, (e) Durva szemcsézettségű csézettség e setén az egyetlen kom oly lehetőség az, hogy egy szálazonosítót re n d e ­
többszálúság lünk m in d en utasításhoz, m ert így a csővezetéken való áth alad ása közben m indig
574 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8.1. L A P K A S Z IN T Ű P Á R H U Z A M O S S Á G 575

egyértelm ű, hogy m elyik szálhoz tarto zik . D u rv a szem csézettség eseté n van egy te egy m ásik szál soron következő u tasítását. E zen az á b rá n feltételezzük, hogy a
m ásik lehetőség is: szálváltáskor elő szö r hagyjuk k iürülni a csővezetéket, és csak B szál B 8 u tán m egakad a l l . ciklusban, e z ért a 12-ben C 7 indul.
e zu tá n kezdjük el az új szálat. Ilyen m ó d o n a csőv ezeték b en m indig csak egy szál A többszálúságról további inform áció találh ató k a (D e a n , 2004; K alla és társai,
van és egyértelm ű, hogy melyik. T erm észetesen szálváltáskor csak a k k o r van é rte l­ 2004; K apil és társai, 2004). A többszálúság és a spekulatív v ég reh ajtás együttes al­
m e hagyni, hogy a cső v ezeték kiürü ljö n , h a a szálváltások csak a csővezeték k iürü- k alm azásáró l olv ash atu n k (S ohi és R o th , 2001).
lési idejénél jóval nagyobb id ő k ö zín ik én t k ö v etk ezn ek be.
E d d ig feltételeztü k , hogy a C P U c ik lu so n k én t csak egy u ta sítá st tu d kiadni
K o ráb b an azo n b an láttu k , hogy a m o d ern C P U -k tö b b u ta sítást is k ép esek kiadni. A Pentium 4 többszálúsága (hyp erthreading)
A 8.8. áb rán feltételezzü k , hogy a C P U két u tasítást tu d kiad n i ó racik lu so n k é n t,
de fen n tartju k , hogy ha egy u tasítás m eg ak ad , ak k o r tov áb b iak nem in d u lh atn ak . M iu tán a tö bbszálúságot elm életb en á tte k in te ttü k , n ézzünk m ost egy k o n k rét p é l­
A 8.8. (a) áb rán azt látjuk, hogy hogyan m ű k ö d ik a finom szem csézettségű tö b b ­ dát, a P en tiu m 4 C P U -t. A P entium 4 gyártása m ár m egkezdődött, am ikor az Intel
szálúság olyan szuperskaláris C P U e setén , am ely két u tasítást in d íth at egyszerre. terv ező m érn ö k ei leh ető ség ek et k erestek a sebesség növelésére úgy, hogy a p ro g ­
A z A szál első k ét u tasítása az első ciklusban k iad h ató , de a fí szál a követk ező cik­ ram o zó i in terfészt é rin tetlen ü l lehessen hagyni, hiszen an n ak m egváltoztatását
lusban azonnal akadályba ütközik, ezé rt csak egy u tasítás in d u lh at, és így tovább. úgysem le h e te tt volna elfo g ad tatn i. Ö t leh ető ség elég gyorsan ad ó d o tt:

A1 B1 Cl A3 B2 C3 A5 B3 C5 A6 B5 C7 A1 81 C l C3 A3 A5 B2 C5 A6 AB B3 B5 1. A z ó rajel frek venciájának növelése;


A2 C2 A4 C4 B4 C6 A7 B6 C8 A2 C2 C4 A4 C6 A7 B4 86
2. K ét C P U elhelyezése egy lapkán;
3. F unkcionális egységek hozzáadása;
Óraciklus Óraciklus
4. A csővezeték h osszának növelése;
(a) (b)
5. T ö b b szálú ság h asználata.
A1 B1 C2 C4 A4 B2 C6 A7 B3 B5 B7 C7
A teljesítm ény növelésének nyilvánvaló m ódja a frekvencia növelése anélkül, hogy
A2 C l C3 A3 A5 C5 A6 A8 84 B6 B8 C8
b árm i m ásh o z hozzányúlnánk. E z aránylag egyszerű és könnyű, így m in den új lap ­
Óraciklus ka á lta lá b an egy kicsit gyorsabb, m int az elődje. Sajnos azo n b an a nagyobb ó ra ­
(c) je ln e k k é t kom oly h átrán y a is van, ezek pedig korlátozzák a gyorsulás m érték ét.
E gyrészt a gyorsabb ó ra több e n erg iát használ, am i elég nagy p ro b lém a a h o rd o z ­
8.8. ábra. Többszálúság egyszerre két utan'túst indítani képes szuperskaláris CPU esetén, (a) h a tó szám ító g ép ek és m ás, ak k u m u láto rró l m ű k ö d ő eszközök szám ára. M ásrészt
Finom szemcsézettségű többszálúság, (b) Durva szemcsézettségű többszálúság, (c) a nagyobb energ iafelv étel m iatt a lapka jo b b an m elegszik, és tö b b h ő t kell elve­
Egyidejű többszálúság zetni.
K ét C P U elhelyezése egy lap k án aránylag könnyű, de ez közel k étszer akkora
A 8.8. (b) áb rán azt látjuk, hogy a d u r\'a szem csézettségű töb b szálú ság hogyan la p k a te rü le te t kíván, ha m in d k ettő n ek saját gyorsítótára van. E k k o r pedig felé­
m ű ködik olyan C P U esetén , am ely k ét u ta sítást in d íth at egyszerre, de m ost egy re csökken az egy szilikonostyából elő állíth ató lapkák szám a, vagyis lényegében
olyan statikus ütem ezővel, am ely n em en g ed ü res ciklust ela k a d t u tasítás u tán . m eg d u p lázó dik az egy egységre v e títe tt előállítási ár. H a a k ét C P U -n ak az e re ­
A lap v ető e n az tö rtén ik , hogy a szálak egym ás u tá n fu tn ak , a C P U az aktív szál k ét detivel m egegyező m é re tű gyo rsító tára van, ak k o r a lapka m é re te nem d u p lá z ó ­
u tasításál indítja m in d en ciklusban addig, am íg valam elyik el nem akad. E k k o r a dik, de az egy C P U -ra ju tó g y o rsító tárm éret felére csökken a teljesítm ény rovásá­
következő ciklus elején átvált a követk ező szálra. ra. R áad ásu l, m íg a nagy teljesítm ényű szerverek teljesen ki tu d n a k használni kél
S zuperskaláris C P U -k e se tén a töb b szálú ság k ezelésére van egy h a rm a d ik le­ k o m p lett C P U -t, az asztali szám ító g ép ek alkalm azásai közül n em m indegyikben
h ető ség is, am elyet egyidejű tö b b szá lú sá g n a k n evezünk, és a 8.8. (c) á b rá n szem ­ van annyi p árhuzam osság, am i k é t teljes C P U -t igényelne.
léltetü n k . E z a m egközelítés a d urva szem csézettség fin o m ításán ak te k in th ető , További funkcionális egységek hozzáadása is elég könnyű, de fo n to s az egyen­
am ennyiben egy szál addig in d íth at cik lu so n k én t k é t u ta sítást, am íg e rre képes, súly. N em sok haszna van 10 A L U -nak, ha nem tu d ju k kihasználni, m ert nem va­
de ha m egakad, a k k o r a C P U teljes kihaszn áltság a é rd e k é b e n azonnal a k ö v etk e­ gyunk k ép esek elég gyorsan u tasításo k at ju tta tn i a csővezetékbe.
ző szál utasításai következnek. A z egyidejű többszálúság a fu nkcionális egységek S zintén növeli a teljesítm ényt egy hosszabb csővezeték, am elyben m inden fázis
teljes kihasználása szem p o n tjáb ó l is előnyös. H a egy u ta sítá s a z é rt n em in d íth ató , a rá eső kevesebb m u n k át rövidebb idő a latt tu d ja elvégezni. F elerő sö d n ek azo n ­
m ert a szükséges funkcionális egység é p p e n foglalt, a k k o r választh atju k helyet- b an a negatív h atáso k is hibás elágazásjövendölés, gyorsítótárhiány, m e g s z a k í t á s
és m in d en olyan egyéb esem ény követk eztéb en , am elyek m egzavarják a csőveze-
576 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8.1. L A P K A S Z IN T Ü P Á R H U Z A M O S S Á G 577

ték no rm ális m ű k ö d ését. R áad ásu l a hosszabb csővezeték teljes kih aszn álásáh o z siknak p ed ig szüksége len n e rá, de nem en g ed jü k hozzáférni. T ehát olyan e rő fo r­
növelni kell az órajel frek v en ciáját is, ez ped ig nagyobb en erg iafelv ételt és ezzel ráso k a t h agyunk k ih asználatlanul, am elyeket hasznosítani le h e te tt volna.
együtt nagyobb h ő te rm e lé st jele n t. A felosztás e lle n té te a teljes erőforrás-m egosztás. A m ik o r ezt használjuk, ak ­
V égül, be leh e t v ezetni a többszálúságot. E lőnye, hogy egy m ásodik szál ki­ k o r a szálak az igénylés so rre n d jé b e n h o zzá ju th a tn a k bárm elyik szám ukra szüksé­
h aszn álh atja a h ard v e rt olyankor, am ik o r az eg yébként p a rlag o n h ev ern e. N ém i ges e rő fo rrásh o z. K épzeljünk el azo n b an egy főleg összeadásokból és kivonások­
k ísérletezés után világossá vált, hogy a la p k a te rü le t 5 százalékos növelése fejé ­ b ól álló gyors szálat, és egy főleg szorzásokból és osztásokból álló lassú szálat. H a
ben a többszálúság sok alkalm azásnál 25 százalékos teljesítm én yn öv ek ed ést e re d ­ az u ta sításo k beolvasása a m em ó riáb ó l gyorsabb, m in t a szorzások és osztások el­
m ényezett, így ezt a m eg o ld ást választo tták . A z In tel első tö bbszálú C P U -ja a végzése, ak k o r a lassú szál beolvasott, de m ég végre nem h a jto tt u tasításai a v á ra ­
X eo n volt 2002-ben, de aztán a töb b szálú ság o t a 3,06 G H z-es v álto zattó l kezdve a kozási so rb an rek ed n ek , m e rt nem k e rü lh e tn e k be a csővezetékbe. V égül a v ára­
P entium 4-nél is b ev ezették . A töb b szálú ság P en tiu m 4 -ben m egvalósított fo rm á ­ kozási so r b etelik ezekkel az utasításokkal, és hely h iányában leállásra kényszerül
já ra az In tel a hyperthreading elnevezést v ezette be. a gyors szál. Teljes erő fo rrás-m eg o sztásn ál nem fo rd u lh at elő, hogy egy erő fo rrás
A z a la p ö tle t az, hogy k ét szál (vagy folyam at, a C P U n em tu d ja m eg k ü lö n ­ k ih aszn álatlan m a ra d m íg egy szálnak szüksége len n e rá. V iszont felm erül egy új
bö ztetn i ezek et) egyszerre fut. A z o p eráció s re n d sz e r felé egy h y p erth re a d in g p ro b lém a, n ev ezetesen az, hogy az egyik szál annyi erő fo rrá st harácsol össze, hogy
P en tiu m 4 k ét olyan C P U -n a k látszik, am elyek közös g y o rsító tárat és m em ó riát a m ásik at lelassítja, vagy teljesen m eg is akadályozza a futásban.
használnak. Az o p eráció s re n d sz e r a szálak at egym ástól függ etlen ü l ütem ezi. H a Egy k ö zb en ső sém a a küszöbölt erőforrás-m egosztás, am elynél egy szál d in a ­
k ét alkalm azás fut egyszerre, a k k o r az o p eráció s re n d sz er e zek et egyszerre fu tta t­ m ikusan szerezh et m eg e rő fo rrá so k a t (nincsenek elő re felosztva), de csak egy
hatja. Például, ha egy levélkezelő h á tté rfo ly a m at é p p en levelet k üld vagy fogad, bizonyos h atárig . A tö b b péld án y b an létező erő fo rrá so k e setéb en ez a m ódszer
am íg a felhasználó valam ilyen p ro g ra m o t használ, a k k o r ezek p á rh u z a m o sa n fu t­ anélk ü l biztosít rugalm asságot, hogy fen n álln a an n ak a veszélye, hogy valam elyik
h atn ak , m in th a k ét C P U len n e a g épben. szál n em ju t erő fo rrásh o z. H a péld áu l az u tasításo k várakozási so ráb an egyik szál
A tö b b szálú ra te rv ez e tt felhasználói p ro g ra m o k is h aszn á lh a tjá k m in d k é t v irtu ­ sem szerezh et m eg tö b b e t a helyek Yx-énél, ak k o r m indegy m it csinál a lassú szál,
ális C P U -t. P éld áu l a vid eo szerk esztő p ro g ram o k n a k ren d sz erin t van olyan fu n k ­ a gyors fu tása nem állh at le.
ciója, am ellyel a felh aszn áló m eg ad h a t bizonyos sziírőket, m elyeket aztá n a p ro g ­ A P en tiu m 4 h y p erth read in g kü lö n b ö ző e rő fo rráso k esetén külö n b ö ző stra ­
ram egy ta rto m án y m in d en k é p é re alkalm az. A szűrők m ó d o síth a tjá k a fén y erő t, tég iák at alk alm az a fen t vázolt p ro b lém ák elkerülése é rd ek éb en . M eg k ettő zték
a k o n traszto t, a sz ín telítettség et, vagy a k ép k o ck ák m ás tu lajd o n ság ait. A pro g ram azo k at az e rő fo rráso k at, am elyeket a szálak állan d ó an használnak, m int p éld áu l
m eg teh eti, hogy az egyik C P U -t a p áro s, a m ásik at a p á ra tla n sorszám ú k ép k o c­ a p ro g ram szám láló t, a regiszter h o zzáren d elési tá b lázato t és a m egszakításvezér­
kák h o z ren d eli, a k e ttő p ed ig egym ástól teljesen függ etlen ü l m ű k ö d h et. lőt. E z a k e ttő zés csupán a la p k a te rü le t 5 százalékos növekedésével já rt, am i nem
M ivel a k ét szál osztozik az összes h ard v er e rő fo rrá so n , a m ego sztásh o z szükség nagy á r a tö bbszálúságért. Teljes m egosztással din am ik u san osztják ki azokat az
van valam ilyen stratég iára. A h y p erth re a d in g k ap csán az In tel négy h aszn álh ató e rő fo rrá so k a t, am elyek olyan nagy m ennyiségben állnak rend elk ezésre, hogy re á ­
erő fo rrás-m eg o sztási stra té g iá t definiált: e rő fo rrá s több szö rö zés, erő fo rrás-felo sz­ lisan egyik szál sem szerezh eti m eg az összesei (például ilyenek a gyorsítósorok).
tás, küszöbölt m egosztás és teljes m egosztás. M ost e zek et tek in tjü k át egyenként. M ásrészről a csővezeték m ű k ö d ését v ezérlő m inden e rő fo rrás (m int például a cső­
A zzal kezdjük, hogy n éh án y e rő fo rrá s é p p e n a töb b szálú ság m iatt létezik több v ezeték h ez ta rto z ó különféle várakozási sorok) fele-fele arán y b an m eg o szto ttak a
p éldányban. P éld áu l egy m áso d ik p ro g ram szám láló t (u tasításszám láló t) is be kell k ét szál kö zött. A Pentium 4-ben használt N e tb u rst arc h ite k tú ra fő csővezetékét
építen i, hiszen a k é t szálnak k ü lö n v ég re h a jta n d ó u ta sítá sso ro z a ta van. E z e n tú l­
m e n ő e n az arch ite k tu rá lis reg iszte re k e t {E A X , E B X stb.) a fizikai reg iszte rek h ez
re n d e lő m eg feleltetési tá b lá z a to t is m eg kell k ettőzn i, ahogy a m egszakításvezélőt
is, hiszen a k é t szál egym ástól fü g g etlen ü l m eg szak íth ató .
A köv etk ező m ó d szer az erőforrás-felosztás, am i azt jele n ti, hogy a h a rd v e re rő ­
fo rráso k m eg v álto z ta th a tatlan u l fel v an n ak osztva a szálak kö zö tt. P éld áu l, h a két
csővezetékfázis k ö z ö tt a C P U -n ak van egy v árakozási sora, a k k o r a re n d elk ezésre
álló helyek egyik fele kizáró lag o san az egyik, a m ásik fele k izáró lag o san a m ásik
szálhoz ren d e lh e tő . A felosztást egyszerű m egvalósítani, n em já r tö b b le tte rh e lé s­ Nyom- Beolvasási Lefoglaló/ Mikro- Ütemezó Regiszterek Végre- Adat- Regiszter- Befejezés­
sel, és a taszkok sem k e rü ln ek egym ás ú tjáb a. H a m in d en e rő fo rrá st felosztunk, követő gyorsító- átnevező utasítás-sor hajtás gyorsítótár iras sor
gyorsító- tár
ak k o r tu la jd o n k é p p e n k é t CPU-nic lesz. H átrá n y leh et, hogy bizonyos helyzetben tár

az egyik szál nem haszn álja ki teljesen a re n d e lk e zé sé re álló erő fo rrá so k a t, a m á­


8.9. ébxa.A szálak közötti erőforrás-megosztás a Pentium 4 NetBurst mikroarchitektúrában
578 8, P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A 8.1. L A P K A S Z IN T Ű P Á R H U Z A M O S S Á G 579

a 8.9. áb rán m u tatju k be, a fe h é r és szürke színezés jelzi, hogy az e rő fo rrá so k m i­ am i m agában rejti a kétszeres végrehajtási sebesség lehetőségét. A 8.10. (b) áb rán
k é n t van n ak felosztva a k ét szál k özött. láth a tó a m ásik m egoldás, am ely k ét m agot tartalm az k ét teljes C PU -val. A m ag egy
A z áb rá n láth atju k , hogy a várak o zási so ro k m ind fele-fele a rán y b an fel v an n ak nagy áram k ö r, m int am ilyen egy C P U , egy B /K vezérlő vagy egy gyorsítótár, a m e ­
osztva a szálak k özött, itt egyik sem tu d elvenni a m ásik elől. A reg iszte r lefog­ lyet külön m od u lk én t el leh et helyezni a lapkán, általában m ás m agok m ellé.
laló és átnevező szintén felo szto tt. A z ü tem ező d in am ik u san m eg o szto tt, de egy A z első e lren d ezés lehetővé teszi, hogy olyan erő fo rráso k , m int például a fu n k ­
k ü szö b érték k el e lejé t veszik an n ak , hogy az egyik szál m in d en helyet kitöltsön. cionális egységek, a C P U -k k ö zö tt m eg o szto ttak legyenek, így az egyik C P U hasz­
A csővezeték fe n n m a ra d ó fázisai teljesen m eg o szto ttak . n á lh a tja azo k at az erő fo rrá so k a t, am elyekre a m ásiknak nincs szüksége. M ásrész­
D e nem m inden szép és jó a többszálúságban, van rossz oldala is. M íg a felosztás rő l ez a m eg k özelítés szükségessé teszi a lapka ú jraterv ezését, és a m ó d szer nem is
egyszerű, addig bárm ely e rő fo rrás dinam ikus m egosztása (különösen, ha k o rláto z­ igazán m ű k ö d ő k ép es k e ttő n é l több C PU -val. E zzel e llen tétb en két vagy tö b b m ag
ni akarjuk, hogy egy szál m ennyit foglalhat le), a felhasználás nyilvántartása m iatt elhelyezése egy lap k án viszonylag könnyű.
futásidejű adm inisztrációval jár. E h h e z hozzájön m ég az is, hogy olyan helyzetek A fejezet egy későbbi részében tárgyaljuk m ajd a m ultiprocesszorokat. Jóllehet
is előfordulhatnak , am ikor többszálúság nélkül egyes p ro g ram o k jo b b a n futnak. az a rész jo b b á ra egyetlen C P U -t tartalm azó lapkákból összeállított m ultiprocesszo­
Például, képzeljünk el k ét olyan szálat, am elyeknek a gyorsítótár y4-ére szükségük ro k ra kon centrál, m égis nagy része érvényes a több C P U -t tartalm azó lapkákra is.
van a m egfelelő m űködéshez. K ülön fu ttatv a ő k et m in d k ettő ren d b e n halad, és csak
ritkán kényszerülnek költséges m em ó riam ű v eletre gyorsítótár hiány m iatt. E gyütt Csővezeték CPU
futtatva ő k et m in d k ettő sokszor kényszerül a gyorsítótár helyett a m em ó riáh o z fo r­
dulni, és az összesített ered m én y sokkal rosszabb lesz, m int többszálúság nélkül.
A P en tiu m 4 tö b b szálú ság áró l to vábbi in fo rm áció ta lá lh a tó (G e rb e r és B instock,
2004; K oufaty és M arr, 2003; Tuck és Tullsen, 2003).

8.1.3. Egylapkás multíprocesszorok

Jó lleh et a többszálú ság m érsék elt tö b b letk ö ltség m e lle tt je le n tő s teljesítm én y n ö ­ (a)
vek ed ést biztosít, v a n n ak olyan alkalm azások, am ely ek n ek sokkal nagyobb n ö v e­
ked és kell, m int am it a töb b szálú ság b izto sítan i kép es. A nagyobb teljesítm én y ­ 8.10. ábra. Egylapkás multiprocesszorok, (a) Két csővezetékes lapka, (b) Kétmagos lapka
nö vekedés e léré sé h e z m u ltip ro cesszo ro s lap k ák a t terv ezn ek . E zek a k e ttő vagy
tö b b C P U -t ta rta lm az ó lap k ák é rd e k lő d é sre ta rth a tn a k szám ot p é ld áu l a nagy
teljesítm ényű szerv erek vagy a szó rak o z tató ele k tro n ik a i cikkek piacán. R öviden Heterogén m ultiprocesszorok egy lapkán
k itérü n k m ost ezekre.
E gy teljesen m ás, egylapkás m u ltip ro cesszo ro k at igénylő alkalm azási te rü le t az
olyan b eág y azott ren d szerek é, am elyeket főleg az audiovizuális elek tro n ik ai cik­
Hom ogén m ultiprocesszorok e gy lapkán k ek b en , p éld áu l tv-készülékekben, D V D -lejátszó k b an , k am k o rd erek b en , já té k g é ­
p ek b en , m o b iltelefo n o k b an és haso n ló term é k e k b e n használnak. E rendszerekkel
A V L S I tech n o ló g ia fejlődésével m a m á r leh etség es egy lap k án k e ttő vagy tö b b szem ben m agasak a teljesítm énybeli elvárások, és szűk specifikációs k o rláto k k ö ­
nagy teljesítm ényű C P U -t elhelyezni. M ivel ezek a C P U -k m indig o szto zn ak az z ö tt kell m ű ködniük. H a b á r ezek az eszközök külsőre nem h aso n lítan ak egym ás­
első és m ásodik szintű g y o rsító táro n és a k ö zp o n ti m em ó rián , ezé rt m u ltiprocesz- ra, v aló jáb an egyre több k özülük n em m ás, m int kisebb fajta szám ítógép egy vagy
szornak n ev ezh etjü k ezek et a 2. fejezetb en tárg y altak alap ján . T ipikus alkalm azási tö b b C P U -val, m em óriával, B /K vezérlővel és néh án y speciális B /K eszközzel. Egy
te rü le tü k a sok g ép b ő l álló nagy w ebszerver együttesek. H a k é t C P U -t úgy p a k o ­ m o b iltelefo n p éld áu l nem m ás, m int egy ap ró PC , b e n n e C P U , m em ória, kicsiny­
lu n k be egy dobo zb a, hogy nem csak a m em ó rián , h an em a lem ezek en és a h álózati ke b illentyűzet, m ikrofon, hangszóró és v ezeték nélküli hálózati csatlakozó.
csatlakozókon is oszto zn ak , ak k o r gyakran a szerver teljesítm énye m eg k étszerez­ Vagy tek in tsü n k p é ld a k é n t egy h o rd o z h a tó D V D -lejátszót. A b en n e lévő szám í­
h e tő anélkül, hogy a költség ek m eg d u p lá zó d n á n a k (m ert h iáb a kell k étsze r annyit tó g ép n e k az alábbi fe la d a to k a t kell elvégeznie;
kiadni C P U -ra, ez az összköltségnek csak tö red é k e ).
A kisebb, egylapkás m ultiprocesszorok esetén kétféle felépítéssel találkozunk 1. Egy olcsó, kis m egbízhatóságú fejm ozgató szervom echanika vezérlése;
leginkább. A z egyik a 8,10. (a) áb rán láth ató , valójában egy lapka k ét csővezetékkel. 2. A n aló g je lek digitálissá átalakítása;
580 8. P Á R H U Z A M O S S Z A m ITÓ G ÉP-A R C H IT EKT Ú R A 8.1, l a p k a s z i n t O p á r h u z a m o s s á g 581

3. H ibajavítás; (a lé tre h o z ó M otion P ic tu re E x p ert G ro u p k ezd ő b etű ib ő l) sém a szerint tö rtén ik .


4. D ek ó d o lás cs szerzői jo g o k kezelése; E z abból áll, hogy m in d en k ép k o ck át pixelekből álló b lo k k o k ra osztunk, és a b lo k ­
5. M P E G -2 videó kib o n tása; k o k m indegyikén egy ö sszetett tran szfo rm áció t végzünk el. Egy k ép kocka állhat
6. T ö m ö ríte tt h an g k ibontása; teljes egészében tran szfo rm áit blokkokból, de m eg ad h a tó az is, hogy egy bizonyos
7. K im en et k ó d o lása N TSC , PÁL és S E C A M ren d sz erű tévékészülékekhez. blok k m egegyezik az előző k épkocka egy blokkjával, esetleg az e re d e ti helyétől
valam ilyen Ay) vek to rral el van tolva, és n éhány pixel m egváltozott benne.
E zek et a fe la d a to k a t szigorú k ö v etelm én y ek n ek m egfelelve kell m egoldani: valós E ze k a szám ítások szoftveresen nagyon lassúk, de leh et jó gyors M P E G -2 h a rd ­
időben, m egfelelő m inőségben, m eg szab ott en erg iafelh asználással és hőlead ással, v erd ek ó d o ló egységet építeni. H aso n ló k ép p en , a h an g d ek ó d o lása és az egyesített
m in d em ellett k o rlá to z o tt m é re tte l, síillyal és árb an . k é p -h a n g jel a világ valam elyik tv-szabványa szerinti ú jrak ó d o lása hard v eresen
A D V D -lem ezek egy hosszú spirál m e n té n tartalm azzák az a d ato k a t, ahogy a gy orsabban elvégezhető. E zek a m egfigyelések h a m a r elv ezettek az audiovizuális
2.24. áb rán láth a tó (o tt C D -re). A z olvasófejnek p o n to sa n kell k övetnie a sp irált a alkalm azáso khoz terv ezett többm agos, h etero g én m ultiprocesszoros lapkákhoz.
lem ez forgása közben. A z á ra t azzal ta rtjá k alacsonyan, hogy viszonylag egyszerű M ivel azo n b an a vezérlőprocesszor egy általán o s célú, p ro g ram o zh ató C P U , ezért
m ech an ik át használnak, de a fejet szoftveres ú to n állandó ellen ő rzés a latt tartják. a m u ltip ro cesszo r-lap k a m ás, haso n ló alkalm azási te rü le te k e n is felhasználható,
A fejből analóg jel érkezik, am elyet további feldolgozás elő tt digitálisra kell alak íta­ p é ld á u l D V D -felvevőkben.
ni. D igitalizálás u tá n alapos hibajavításra van szükség, m e rt a D V D -k a p réseléses A fejlett m ob iltelefo n o k is olyan eszközök, am elyekbe h etero g én m ultiprocesz-
előállítás m iatt sok hib át tartalm azn ak , am elyeket szoftverrel kell kijavítani. A kép szor kell. A jelenlegi típ u so k b an van fényképezőgép, film felvevő, játék o k , w eb b ö n ­
az M P E G -2 szabvány szerint tö m ö ríte tt, e zért bonyolult (F o u rier-tran szfo rm áció - gésző, e-m ail olvasó és digitális m űholdvevő rádió. E zek et a funkciókat vagy m o ­
hoz hasonló) átalak ítást igényel a kibontáshoz. A h an g egy pszichoakusztikus m o ­ biltelefo n - (C D M A v ag y G S M ) technológiát, vagy vezeték nélküli in tern et- (IE E E
dell alkalm azásával k erül tö m ö rítésre, am i szintén ö sszetett szám ításokat igényel 802.11, m ás néven W iFi) tech n o ló g iát felhasználva építik be; lehet, hogy a jövő
a kibontáshoz. V égül, a k é p e t és a h an g o t olyan fo rm á tu m ra kell alakítani, amely készülékei m in d ezek et együtt fogják tartalm azn i. A hogy az eszközök egyre tö b b és
lehetővé teszi, hogy N TSC , PÁL vagy S E C A M tévékészüléken m eg jelen íth ető le ­ tö b b fu n k ciót látn ak el, és az ó rák G P S -alap ú térk ép ek k é, a szem üvegek rádióvá
gyen, attó l függően, hogy a D V D -lejátszó t a világ m ely ország áb an használják. N em válnak, a h etero g én m ultip ro cesszo ro k irán ti igény egyre növekedni fog.
m eglepő, hogy m in d ezt a sok valós idejű feldolgozást igénylő m u n k át n em leh et e l­ H a m a ro sa n a lap k ák 500 m illió tran zisz to rt fognak tartalm azn i. A z ilyen lapk ák
végezni olcsó, általán o s célú C P U -n fu tó p ro g ram m al. Szükség van egy h etero g én , tú l nagyok ahhoz, hogy k ap u n k é n t és v e z eték en k én t tervezzük m eg őket. E h h ez
többm agos m ultip ro cesszo rra, m elyben m in d en m ag egy m eg h a tá ro z o tt speciális ak k o ra em b eri erőfeszítés kellen e, hogy elavulnának, m ire elkészülnének. Az
felad ato t lát el. A 8.1L áb rán p éld a k é n t egy D V D -lejátszó látható. egyetlen leh etséges ú t a m agok h aszn álata (ezek lényegében könyvtárak, a p ro g ­
A 8.1L áb rán a m ag o k m ind k ü lö n b ö ző fe la d ato k a t lá tn a k el, m indegyiket g o n ­ ram k ö n y v tárak m in tájára); a m agok elég nagy részelem ek, am elyeket csak egym ás
d o san a rra tervezték , hogy a le h e tő legolcsóbb legyen, és e m ellett rendkívül h a té ­ m ellé kell helyezni, és m egfelelően össze kell k ö tn i a lapkán. A terv ező k n ek csak
konyan oldja m eg a rá b íz o tt felad ato t. P éld áu l a D V D -k é p tö m ö ríté se az M P E G -2 azt kell eld ö n ten iü k , hogy m elyik C P U m ag o t használják v ezérlőprocesszornak,
és m elyik speciális célú p ro cesszo rt tegyék m ellé segítségül. M inél tö b b v ezérlő ­
NTSC/PA17SECAM funkciót lát el a vezérlőprocesszor szoftvere, an n ál lassabb lesz a ren d szer, de
összetett egyben an n ál kisebb (és olcsóbb) a lapka. A speciális célú kép- és hangfeldolgozó
Audio- videokódoló
p ro cesszo ro k elfoglalnak valam ennyi te rü le te t a lapkán, am i növeli a költségeket,
de nagyobb teljesítm ényt biztosít alacsonyabb órajel m ellett, am i viszont kisebb
fogyasztást és kisebb h ő term elést jelen t. így a lap k aterv ező k n ek egyre inkább ez e ­
k en a m ag asabb szinteken kell k o m p ro m isszu m o k at k ö tn iü k ahelyett, hogy azzal
fo glalkoznának, hogy az egyes tran zisz to ro k hova k erüljenek.
A z audiovizuális alkalm azások nagyon ad a to rie n tá lta k . Ó riási m ennyiségű a d a ­
to t kell rövid idő a latt feldolgozni, e z ért tipikusan a la p k a te rü le t 50-70 százaléka
valam ilyen fo rm áb an m em ó ria szám ára van fen n tartv a, és ez az arány növekvőben
van. Sok itt a tervezési p ro b lém a. H ány gyorsítótárszint legyen? A g yorsítótár(ak)
kö zö sek vagy o sz to ttak legyenek? M ek k o rák legyenek a gyorsítótárak? M ilyen
gyorsak legyenek? L egyen-e a kö zp o n ti m em óriából valam ennyi a lap k án ? SR A M
8.11. ábra. Egy egyszerű DVD-lejátszó logikai felépítése. A heterogén multiprocesszor vagy D R A M legyen? A z ezek re a k é rd ések re a d o tt válaszok nagyban befolyásol­
a különböző funkciókat külön magokkal oldja meg já k a lap k a teljesítm ényét, energiafogyasztását és h ő lead ását.
582 8. P Á R H U Z A M O S SZ Á M fT Ó G ÉP-A R C H IT EK T Ú R A 8.2. T Á R SP R O C E SSZ O R O K 583

A p ro cesszo ro k és a m em ó riák m ellett je le n tő s következm énnyel já rn a k a k o m ­ terv ezték , hogy könnyű legyen h ozzákapcsolni legfeljebb n éhány száz k ap u fel­
m unikációs alren d szer terv ezése so rán h o z o tt d ö n tések is ~ hogyan fo g n ak a m a ­ h asználásával 8, 16, és 32 bites p erifériák at. E z is szinkron sín, legnagyobb á te re sz ­
gok kom m unikáln i egym ással? Kis re n d sze re k b e n egy sín elég, de n ag yobbakban tő k ép esség e 300 M bps. A k ét sínt egy híd köti össze, ahh o z h aso n ló an , ahogy a
ez h a m a r szűk k eresz tm etsz etté válik. A p ro b lé m a gyakran m eg o ld h ató tö b b sín­ P C I és az ISA sín ek et h id ak k ö tö tté k össze a P C -kben, m ég m ielő tt n éh án y éve az
nel, vagy egy m ag o k at összek ö tő gyűríável. A z u tó b b i esetb en a sínkiosztást egy kis IS A sín teljesen kiszorult volna.
adatcsom ag, az úgynevezett tokén k ö rb eu taz tatá sá v a l oldják m eg. A sín h aszn ála­ A h arm a d ik az eszközregisztersín, egy nagyon lassú, aszinkron, k ap c so la to rie n ­
tá h o z a m agnak elő szö r m eg kell szereznie a tó k én t. M iu tá n végzett, to v áb b ad ja a tá lt sín, am elynek segítségével a p rocesszorok h o zzáférh etn ek bárm ely p eriféria
tó k én t, am ely így fo ly tath atja k ö rú tját. E z e k e t a szabályokat követve k iküszöböl­ eszkö zreg iszteréhez, és így v ezérelh etik azokat. R itk a, egyszerre néh án y bájto s
h e tő k az ütközések. a d a tá tv ite le k re szánták.
L ap k án belüli ö sszek ö tteté sre p éld a a 8.12. áb rá n b e m u ta to tt IB M CoreConneet. A lap k ák h o z h aszn álh ató szabványos sín, interfész és k e re tre n d sz e r kidolgozá­
E z egy olyan arch ite k tú ra , am ely egylapkás h e te ro g é n m u ltip ro cesszo ro k m ag jai­ sától az IB M azt rem éli, hogy a P C I-ren d szer m in iatű r v álto zatát h o zh atja létre,
n ak összek ö tésére szolgál, k ü lö n ö sen k o m p le tt egylapkás re n d sz e re k h e z alk al­ m elyben sok gyártó készít eg y ü ttm ű k ö d ésre kép es p ro cesszo ro k at és vezérlőket.
m azható. B izonyos é rtele m b e n a C o re C o n n e e t ugyanaz az egylapkás m u ltip ro ­ K ülönbség azonban, hogy a P C I-eszközöket a gyártók m aguk állítják elő és adják
cesszoroknak, m in t a P C I sín a P e n tiu m n ak — kötőan y ag , am ely ö sszetartja a el a k e resk ed ő k n ek , illetve a felhasználóknak. A C o reC o n n eet e setén a tervezők
részeket. A P C I sínnel e llen té tb e n azon b an a C o re C o n n e e t te rv ezések o r n em k el­ m egtervezik a m agokat, de nem gyártják azokat. E h ely ett a h aszn álati jo g o t adják
lett visszafelé k o m p atib ilisn ek m ara d n i rég eb b i eszközökkel vagy p ro to k o llo k k al, el a szó rak o z tató elek tro n ik ai és m ás vállalatoknak, akik aztán m egtervezik a saját
illetve nem k o rláto z tá k a fejlesztést olyan m egszorítások, m in t az alap lap i sínek h e te ro g é n m ultiprocesszoros lap k áik at a saját és a licencelt m agok felh aszn álásá­
esetén , ahol p éld áu l k ö tö tt, hogy egy csatlak o zó n ak hány é rin tk ező je kell legyen. val. M ivel az ilyen nagy és ö sszetett lap k ák gyártása h atalm as b e fe k te té st igényel,
a leg tö b b e setb en a szó rak o ztató elek tro n ik ai cég csak a terv ek et készíti el, m ajd
egy félv ezető ket elő állító alvállalkozóval legyártatja azokat. Szám os C P U (A R M ,
M IP S , P ow erP C stb.) m ag é rh e tő el, ezen kívül M P E G d ek ó d erek é, digitális je l­
feldo lg o zó k é és a szabványos B /K vezérlőké is.
A z IB M C o reC o n n eet n em az egyetlen n ép szerű lapkasín a piacon. A z AMBA
(Advanced M icrocontroller Bús Architecture, fejlett m ikrokontroller sínarchitek­
túra) is széles k ö rb en használt (Flynn, 1977). M ás, valam ennyivel kevésbé n ép sze­
rű lap k asín ek a VCI (Virtual Com ponent Interconnect, virtuális kom ponens ösz-
szeköttetés) és az OCP-IP (Open Core Protocol-International Partnership, nyílt
m agprotokoll nem zetközi társaság), am elyek szintén versenyben v an n ak a piaci
ré sz e se d é sé rt (K ogel és M eyr, 2004; O u a d ja o u t és H o u zer, 2004). A lap k asín ek
csak a k ezd et, v an n ak akik a k ár teljes h á ló za to k at terveznek a lap k ák ra (B enini és
D e M icheli, 2002).
M ivel hőelvezetési p ro b lém ák m iatt a lapkagyártók egyre nagyobb n eh ézség ek ­
8.12. ábra. Példa az IBM CoreConneet architektúrára b e ü tk ö z n ek az órajel frekvenciájának növelése te ré n , ezért az egylapkás m u lti­
p ro cesszo ro k te rü le te nagyon népszerű. További inform áció ta lá lh a tó (C lassen,
A C o reC o n n eet h áro m sínből áll. A processzorsín egy nagy sebességű, szinkron, 2003; Jerray s és Wolf, 2005; K u m er és társai, 2004; L avagno, 2002; L ines, 2004;
csővezetékes sín 32, 64 vagy 128 ad atv e zeték k el, és 66,133 vagy 183 M H z-es ó ra je l­ R avikum ar, 2004).
lel. A legnagyobb áteresztő k ép esség e így 23,4 G b ps (a P C I síné 4,2 G bps). A cső­
vezetékes felépítés lehetővé teszi, hogy a m ag o k egy fo ly am atb an lévő átvitel ideje
alatt k érjen ek h ozzáférést a sínhez, vagy hogy a P C I sínhez h a so n ló an k ü lö n b ö ző
m agok különböző v o n alak a t egyszerre használjanak. A pro cesszo rsín rövid b lo k ­ 8.2. Társprocesszorok
kok átvitelére van optim alizálva. G yors m ag o k összekapcsolására szánták, ilyenek
a C PU -k, M P E G -2 d ek ó d erek , nagy sebességű h áló za to k és h aso n ló rendszerek. M iu tán m egvizsgáltuk a lapkaszin tű p árh u zam o sság n éhány fajtáját, lép jü n k m ost
A processzorsín szétterítése az egész lap k án c sö k k en ten é a teljesítm én y ét, ezért egy szinttel feljebb, és vizsgáljuk m eg, hogyan nö v elh ető egy szám ítógép sebes­
van egy m ásodik sín a lassú B/K eszközöknek, ilyenek p éld áu l az UART-ok, idó'- sége azáltal, hogy egy m ásodik, speciális célú p ro cesszo rt is teszü n k bele. Ilyen
zítók, U S B -vezérlő k , soros B/K eszközök stb. E zt a perifériális sínt azzal a céllal társprocesszor sokféle van, kicsitől a nagyig. A z IB M 360 nagygépekben és ezek
584 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A 8,2. T Á R SP R O C E SSZ O R O K 585

Összes leszárm azo ttjáb an a b em eneti,'kim eneti m ű v eletek et független B /K c sa to r­ A lkalm azásszo lg áltató te rü le te
nák végzik. H aso n ló k ép p en , a C D C 6600-nak 10 független p ro ecsszo ra van a B/K
m űveletek elvégzésére. A grafika és a leb eg ő p o n lo s a ritm e tik a k ét olyan te rü let
m ég, ahol eddig alk alm aztak tá rsp ro cesszo ro k at. M ég egy D M A la p k át is tá rs­
processzornak te k in th etü n k . N éh a a C P U adja át a v é g re h a jta n d ó u tasítá st vagy
u tasításo k at a társp ro cesszo rn ak , m ás ese te k b en a társp ro c esszo r fü g g etlen eb b és
többé-kevésbe ö n álló an dolgozik.
Fizikailag a tá rsp ro cesszo ro k leh e tn e k külön szekrényben (a 360-as B /K csa­
to rn ái), leh etn ek külön k árty án (h áló zati p ro cesszo ro k ), vagy elfo g lalh atják a fő ­
p ro cesszo r lap káján ak egy részét (le b eg ő p o n to s társp ro cesszo r). M in d en esetb en
arról leh et felism erni, hogy van egy m ásik pro cesszo r, a fő processzor, am elyet se ­
gítenek. M ost m egvizsgálunk h á ro m olyan te rü le te t, ah o l lehetséges a sebesség
növelése: hálózati feldolgozás, m u ltim éd ia és titkosítás. ' Felhasználó számítógépe .
Üvegszálas kapcsolat'

8.13. ábra. A felhasználók kapcsolódása a szerverekhez az interneten


8.2.1. Hálózati processzorok
az útvonalválasztó m em ó riájáb an , és csak akkor továbbítják a következőhöz, ha az
M a a legtöbb szám ító g ép csatlak o ztatv a van valam ilyen h áló za th o z vagy az in te r­ e h h ez szükséges kom m unikációs vonal ren d elk ezésre áll. E n n e k a m ódszernek a
n ethez. A hálózati h a rd v e r te ré n b ek ö v etk e z e tt technológiai h alad á s e re d m é n y e ­ neve tárold-és-továbbítsd csom agkapcsolás.
k én t a háló zato k m a olyan gyorsak, hogy a bejövő és a k im en ő a d a to k a t egyre n e ­ Jó lle h e t sokan úgy tek in te n e k az in te rn e tre , m in th a egy W AN lenne, tech n ik ai­
h ezebbé váll szoftverrel feldolgozni. E n n e k k ö v etk eztéb en speciális h áló zati p ro ­ lag azo n b an sok W A N összekapcsolva. A mi szem p o n tu n k b ó l azonban ez a m eg­
cesszorokat fejlesz tettek ki az ad atfo rg alo m k ezelésére, és sok nagy teljesítm ényű k ü lö n b ö z tetés n em fontos. A 8.13. á b ra egy o tth o n i felhasználó szem pontjából
szám ítógépben van is ilyen processzor. E b b e n az alfejezetb en elő szö r átte k in tjü k a m u ta tja az in te rn e t szerk ezetét. A felhasználó szám ítcígépe ren d szerin t egy web-
h áló zato k m ű köd ését, m ajd rá té rü n k a h áló za ti p ro cesszo ro k ra. szerv erh ez k apcsolódik telefo n v o n alo n keresztül, 56 kbps sebességű betárcsázós
m o d em m el vagy a 2. fejezetb en tárgyalt A D S L -lel. (E lk ép z elh ető m ég kábeltévés
kapcsolat is, ez ese tb e n a 8.13. áb ra bal oldala egy kicsit m ásk ép p en néz ki, to ­
Bevezetés a hálózatok m űködésébe vábbá a k áb eltév é-társaság az ISP). A felhasználó gépe az elküldeni kívánt a d a ­
to k a t cso m agokra b o n tja és elküldi az internetszolgáltató (ISI^ Internet Service
A szám ítógép-háló zato k k ét típ u sb a so ro lh ató k : helyi hálózat (LAN, Local Area Provider) gépére. A z in tern etszo lg áltató az a cég. am ely in tern et-h o zzáférést
NetWork), am ely egy é p ü lete n vagy ép ü leteg y ü ttesen belül k ö t össze szám ító g é­ nyújt az ügyfelei részére. A szolgáltatónak nagy sebességű (ren d szerin t üvegszá­
p ek et, és a nagy területű hálózat (WAN, W ide Area Network), am ely földrajzilag las) k ap cso lata van az in te rn e t részét k ép ező egyik terü leti- vagy gerinchálózattal.
nagy te rü le te n elhely ezk ed ő szám ító g ép ek et kapcsol össze. A leg n ép szerű b b LAN A felh aszn áló ad ata i az útvonalválasztók k ö zö tt h aladva ju tn a k el az in te rn e te n
az ún. Ethernet. A z e re d e ti E th e rn e t egy vastag kábel volt, am elybe a szám ító ­ k eresztü l a w ebszerverhez.
gépekből jövő v ezeték et egy eu fem isztik u san vám pírcsatlakozónak n ev ezett esz­ A legtöbb w ebszolgáltatást nyújtó cégnek van egy speciális szám ítógépe, am elyet
közzel csatlak o ztatták . A m ai E th e rn e tb e n a szám ítógepek egy k ö zp o n ti ú tv o n al­ tű zfaln ak neveznek, ez szűri a bejövő forgalm at és eltávolítja a n em kívánt csom a­
k apcsolóhoz van n ak kötve, am in t az a 8.13. á b ra jo b b o ld ali részén is láth ató . A z gokat (p éld ául a b etö rn i szándékozó szám ítógépes kalózoktól érk ezőket). A tűzfal
e re d e ti E th e rn e t 3 M bps sebességgel csoszogott, de az első k eresk ed elm i verzió a helyi h áló zathoz csatlakozik, ren d szerin t egy E thernet-sw itch-hez (kapcsolóhoz),
sebessége m ár 10 M bps volt. E zt végül lev álto tta a gyors E th e rn e t 100 M bps, m ajd am ely a kívánt szerverhez továbbítja az ad ato k a t. Tfermészetesen a valóság sokkal
ezt a gigabit E th e rn e t 1 G b p s sebességgel. M á r e lé rh e tő a 10 g igabites E th e rn e t, b o nyolultabb ennél, de a 8.13. á b ra nagy vonalakban helyes k ép et m utat.
és elő k észü letb en van a 40 gigabites is. A h álózati szoftver protokollokból áll, ezek m indegyike fo rm átu m o k és szabá­
A W AN háló za to k felép ítése e ttő l eltérő . E zek speciális útvonalválasztó szám í­ lyok halm aza, am elyek m eghatáro zzák az a d a to k jelen tését, és szabályozzák az
tó gépekből állnak, am ely ek et hagyom ányos vezetek vagy o p tikai szál köt össze, ad atc serét. P éldául, am ikor a felhasználó egy w cboldalt ak ar lehívni egy szerverről,
ahogy a 8.13. áb ra k ö zép ső részén láth ató . Az ad ato k tip ik u san 64 és 1500 bájt akkor a felhasználó böngészője egy G E T P A G E kérést tartalm azó csom agot küld
közötti m éretű csom agokban u tazn a k a kiindulási p o n ttó l egy vagy tö b b ú tv o n al­ H T T P (H yperText T ran sfer P rotocol) fo rm átu m b an a szervernek, am ely tudja, h o ­
választón keresztü l a célállom ásig. M in d en lép ésb en a csom agot elő szö r e ltáro lják gyan kell feldolgozni az ilyen kérések et. Sok protokoll van h aszn álatban, és sokszor
8.2. T Á R SP R O C E SSZ O R O K 587
586 8. P Á R H U Z A M O S SZÁ M fT Ó G ÉP-A R C H IT EK T Ú R A

Bevezetés a hálózati processzorok m űködésébe


kom binálva is használják ezeket. A legtöbb helyzetben a p ro to k o llo k at réteg ek b e
szervezik, a felsőbb réteg ek az alacsonyabban fekvők felé továbbítják a csom ago­
S o k fajta eszköz van a háló zato k h o z csatlakoztatva. A felhasználók szem élyi (asz­
kat feldolgozásra, és végül a legalsó szinten lévő végzi el a tényleges ad atá tv itelt. A
tali cs h o rd o z h a tó ) szám ítógépei term ész etesen , de egyre inkább j á t é k g é p e k ,
fogadó oldalon a csom agok fo rd íto tt so rre n d b e n h alad n a k a felsőbb réteg ek felé.
P D A -k (ten y érszám ító g ép ek ) és m ob iltelefo n o k is. A cégek PC-i és szerverei a
M ivel a hálózati p ro cesszo ro k fog lalk o zásu k at tekin tv e p ro to k o ll feldolgozók,
h áló za t végpontjai, de szám talan olyan eszköz is van, am elyek közvetítő szere­
ezért el kell m o n d an u n k n éh án y d olgot a p ro to k o llo k ró l, m ielőtl m ag u k ra a h á ­
p e t já tsza n ak a h áló zato k b an , ezek közé ta rto z n a k az útvonalválasztók, swilch-
lózati p ro cesszo ro k ra so r k e rü lh e tn e . T é rjü n k vissza egy p illa n a tra a G E T P A G E
ek, tűzfalak, hely ettesítő kiszolgálók és terheléselosztók. É rd ek es m ódon ezek a
kérésre. H ogyan k erül ez a w eb szerv erh ez? A z tö rtén ik , hogy a b ö n g észő először
k ö zvetítő re n d szerek v annak a legnagyobb igénybevételnek kitéve, m e rt ezeknek
kap cso lato t te re m t a w cbszerverrel a TCP ÍTVansmission Control Protocol) se­
kell m á so d p ercen k én t a legtöbb csom agot m egm ozgatniuk. A szerverek szintén le
gítségével. A z ezt a p ro to k o llt m egvalósító szoftver ellenőrzi, hogy az összes cso ­
v an n ak terh elve, de a felhasználók gépei nincsenek.
m ag hibátlanul és a m eg felelő so rre n d b e n m eg érk ezett-e. H a egy csom ag elvész, a
A h áló z a ttó l és m agától a csom agtól függően, egy bejövő csom ag sokféle fel­
T C P szoftver gon d oskodik ró la, hogy annyiszor el legyen küldve újra és tájra, am íg
d olgozást igényelhet, m ielő tt továbbítják a kim en ő vonalon, vagy átad ják a fel­
re n d b e n m eg nem érkezik. A gy ak o rlatb an az tö rté n ik , hogy a w ebböngésző a
h aszn áló i p ro g ram n ak . A feldolgozás lehet a csom ag további sorsán ak eld ö n tése,
G E T P A G E ü ze n e te t a H T T P szabályoknak m egfelelő fo rm átu m b a n a T C P szoft­
feld ara b o lása vagy összeállítása d arabjaiból, a szolgáltatás m inőségének kezelése
vernek átadja, hogy az a fe lép íte tt k a p c so la to t használva továbbítsa. A T C P szoft­
(főleg hang és m ozgókép esetén ), biztonsági k érd ések kezelése (például titkosítás
ver az ü zen et elé egy fejlécet tesz, am elyben so ro zatszám és egyéb inform áció van.
vagy titk o síto tt ü zen et visszaállítása), tö m ö rítés/k ib o n tás stb.
E zt a fejlécet te rm é sz ete sen TCP fejlécnek nevezik.
A lokális háló zato k sebessége kezdi m egközelíteni a 40 gigabit/sec sebességet,
E zu tán a T C P szoftver fogja a T C P fejlécet és az ü z e n e te t (am ely a G E T P A G E
I KB m é re tű csom agokkal szám olva egy h áló za tb a k apcsok szám ítógépnek m á ­
kérést tartalm azza), ezt á tad ja egy m ásik szo ftv erk o m p o n en sn ek , am ely az inter-
so d p e rc e n k én t közel 5 m illió csom agot kell feldolgoznia. H a 64 bájtos csom ago­
netprotokollt (IP) valósítja m eg. E z egy IP-fejlécet illeszt az ad a to k elé, am ely
k at té te lez ü n k fel. akkor a m á so d p ercen k én t feldolgozandó csom agok szám a k ö ­
tartalm azza a kiindulási cím et (m elyik g épről jö n a csom ag), a célállom ás cím ét
zel 80 m illió. Az előbb em lített feldolgozási m ű v eletek et 12-200 ns alatt szoftver­
(m elyik gép n ek szánjuk a csom agot), hány ú tvonalválasztón h a la d h a t m ég át m eg ­
rel n em le h et elvégezni (ráad ásu l a csom agot m en th e te tle n ü l le kell m ásolni tcibb
sem m isítés e lő tt (ez m egakadályozza, hogy az elveszett csom agok ö rö k k é k erin g ­
p éld án y b a n a feldolgozás alatt). A h ard v eres segítség elen g ed h etetlen .
je n e k a h áló za tb an ), egy elle n ő rz ő összeget (átviteli és m em ó ria h ib ák fe ld e ríté sé ­
A gyors csom agfeldolgozás egyik hardveres m eg o ld ása egy ASIC (Application-
re), valam int egyéb m ező k et.
Specific Integrated Circuit, alkalm azáshoz kifejlesztett egyedi integrált áram ­
E zt követően az így k ia la k íto tt csom ag (am ely m ost m á r az IP-fejlécet, a TCP-
kör). Egy ilyen á ra m k ö r olyan, m int egy b e d ró to z o tt p ro g ram , am ely a m eg terv e­
fejlécet és a G E T P A G E k éré st tartalm azza) átk erü l az ad atk ap cso lati réteg h ez,
z e tt feldolgozási funkciókat hajtja végre. Sok m ai útvonalválasztó használ A SIC-
ahol egy ad atk ap cso lati fejléc k erül elé a tényleges a d atá tv itel elő tt. A z a d a tk a p ­
ot, ezekkel azonban tö b b p ro b lém a is van. E lőször is hosszú ideig ta rt m egtervezni
csolati réteg egy CRC (Cyclic Redundancy Code, Ciklikus redundanciakód) n e ­
cs legyártani. R u g alm atlan o k is, h a egy új funkcióra van szükség, ak k o r új lapkát
vű ellen ő rző összeget is elhelyez a végén, hogy az átviteli h ib ák a t fel lehessen is­
kell tervezni és gyártani. Továbbá a hibak eresés igazi rém álom , hiszen a javítás
m erni. Úgy tiin h et, hogy felesleges az ad a tk a p c so lati ré teg b e n és az IP -réteg b en is
egyetlen m ódja, hogy m egterveznek, legyártanak, leszállítanak és b eszereln ek egy
ellen ő rző összegeket elhelyezni, de ez növeli a m eg b ízh ató ság o t. A CRC m in d en
új lapk át. D rág ák is, hacsak nem g y árth ató k elég nagy m ennyiségben ahhoz, hogy
átvitelnél ellen ő rzésre kerül, a fejléccel együtt leválasztják, m ajd tijrag en erálják
a költség ek m eg térüljenek.
olyan fo rm átu m b a n , am ely m egfelel a k im en ő k ap cso latn ak . A 8.14. á b ra azt m u ­
Egy m ásik m egoldás az FPGA (Field Program m able Gate Array, helyszínen
tatja, hogy a csom ag m ik én t néz ki az E th e rn e te n ; telefo n v o n alo n hasonló, csak
program ozható kapumátrix) alkalm azása. E z olyan logikai k ap u k at tartalm az,
az E th ern e t-fejlé c helyett „telefo n v o n al-fejlcc” van az elején. A fejlécek kezelése
am ely ek et a helyszínen leh et tetszőleges m ódon összekötni, és ezáltal a kívánt
fo n to s terü let, ez a háló zati p ro cesszo ro k egyik funkciója. M o n d a n u n k sem kell,
á ra m k ö rt létreh o zn i. E zek az A S IC -oknál sokkal róvidebb idő a latt k erü ln ek piac­
hogy a szám ító g ép -h áló zato k m íík ö d ésén ek té m a k ö ré t csak felszínesen é rin te t­
ra, és hely b en m ó d o síth ató k úgy, hogy kiem elik a rendszerből, és egy speciális új­
tük. A lapos tárgy alása ta lá lh a tó (T anenbaum , 2003).
ra p ro g ra m o zó eszközbe helyezik. M ásrészről viszont eléggé bonyolultak, lassúk
és d rágák, am i n éhány speciális alkalm azási terü lettő l eltekintve nem teszi őket
Ethernet- IP- TCP- C vonzóvá.
fejléc fejléc fejléc Hasznos adat R
C V égül a hálózati pro cesszo ro k h o z érk eztü n k , ezek olyan p ro g ram o zh ató eszkö­
zök, am elyek k ép esek a bejövő és kim enő csom agokat valós időben kezelni, vagyis
olyan gyorsan, ahogy az a d ato k a vezeték b en halad n ak . A leggyakoribb m egoldás
8.14. ábra. Egy csom ag formátuma az Etherneten
8.2. T Á R SP R O C E SSZ O R O K 589
588 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A

A P F E -k et k étfélek ép p en leh et optim alizálni. A legegyszerűbb felép ítés az, ha


az, hogy a hálózati p ro cesszo r lap k áját egy kiegészítő k ártyán helyezik el m em ó ria
m in d en P P E egyform a. A m ik o r csom ag érkezik a hálózati processzorhoz (a k á r
éf, egyéb szükséges logikai á ram k ö r társaság áb an . A z alap lap egy vagy tö b b h á ló ­
b ejövő valam elyik vonalon, a k á r kim enő a sínről), azt az egyik szabad P P E -hez
zati csatlakozását a háló zati pro cesszo rh o z irányítják. A b e é rk e z e tt és feld o lg o zo tt
irányítják feldolgozásra. H a nincs szabad P P E , akkor a csom ag a kártya S D R A M -
csom agokat vagy to vábbküldi egy m ásik háló zati vonalo n (péld áu l útv onalválasztó
jáb a n tá ro lt várakozási so rb a kerül, am íg egy P P E fel n em szabadul. H a ezt a m ó d ­
esetén ), vagy a ren d szersín re (p éld áu l P C I sín) to vábbítja, ha végfelhasználói esz­
szert alkalm azzák, ak k o r a P P E -k k ö zö tt a 8.15. áb rá n lá th ató vízszintes kap cso la­
közről van szó, m in t am ilyen egy felh aszn áló PC -je is. Egy tip ik u s h áló zati procesz-
to k nem léteznek, m ert a P P E -k n ek nem kell k o m m unikálniuk egym ással.
szor lapka és kárty a lá th a tó a 8.15. áb rán .
A m ásik P P E -elrcn d ezés a csővezeték. E b b en az esetb en m indegyik P P E egy
SR A M és SD R A M is ta lá lh a tó a kártyán, ezek et tipikusan m ás-m ás célra hasz­
feldolgozási lép ést hajt végre, m ajd az eredm ényül k a p o tt csom ag m u tató ját á t­
nálják. A z SR A M gyorsabb, de d rág áb b az S D R A M -nál. így csak kevés van beló'le.
adja a csőv ezetékben rákövetkező P P E -nek. Ily m ó d o n a P P E -csővezeték a 2. fe ­
A z SR A M az útv o nalválasztáshoz szükséges tá b lá z a to k a t és m ás k u lcsfo n to ssá­
je z e tb e n tan u lm án y o zo tt C P U -cső v ezeték ek h ez h asonlóan viselkedik. M indkét
gú ad ato k a t, m íg az S D R A M a feldolgozás a latt álló cso m ag o k at táro lja. A záltal,
elren d e z é sb en a P P E -k teljesen p ro g ram o zh ató k .
hogy az SR A M és S D R A M a háló zati lap k án kívül helyezkedik el, a kártya te r­
F ejletteb b ren d szerek b en a P P E -k többszálúságot is használnak, vagyis több re ­
vezői eld ö n th etik , hogy m elyikből m ennyit h asználnak. így az egyetlen hálózati
giszterk észletük van, am elyek közül egy m ásik h ard v er regiszter jelöli ki az ép p en
von alat kezelő kis teljesítm ényű k árty ák b a (p éld áu l egy P C -hez vagy szerverhez)
h aszn ált aktív készletet. E z a felép ítés leh ető ség et ad arra, hogy több pro g ram fus­
kevesebb m em ó riát leh e t ten n i, m íg egy kom olyabb ú tv onalválasztó nagy te lje sít­
m ényű kártyájába jóval tö b b et. son egyszerre, m ert p ro g ram (vagyis szál) váltáshoz csak az aktív regiszterkészle­
te t k ijelölő regisztert kell átállítani. A m ik o r egy P P E m egakad, m ert például a d a ­
to t kell olvasnia az S D R A M -ból (am i sok óracikhist igényel), ak k o r leggyakrab­
b an azo n n al váltani tu d m ásik szálra. Ily m ó d o n egy P P E a k k o r is közel m axim ális
k ihasználtsággal ü zem elh et, ha egyébként gyakran kellen e az S D R A M elérése
vagy m ás lassú külső m űvelet végreh ajtása m iatt várakoznia.
A P P E -k m ellett m in d en hálózati processzor tarta lm a z egy vezérlőprocesszort,
am ely re n d szerin t egy n o rm ál általán o s célú R IS C C P U , a csom agkezeléssel szo­
rosan össze n em függő felad ato k elvégzésére, m int például az útvonalválasztó
táb lá za to k frissítése. E n n e k a p ro g ram ja és adatai a lapka m em ó riájáb an v an ­
nak. E zen kívül sok háló zati processzor lapkán van n ak m ég speciális processzorok
m intaillesztés vagy m ás kritikus m űvelet elvégzésére. E zek a p rocesszorok való­
já b a n kis A S IC -ok, am elyek nagyon jó k egyetlen egyszerű m űvelet elvégzésében,
p éld áu l az ú tvonalválasztó táb láb ó l egy cím m eg találására. A hálózati processzor
k o m p o n en sei a lap k án elhelyezett egy vagy több párh u zam o s sínen keresztül k o m ­
m u n ik á ln a k egym ással, ezek sebessége tö b b gigabit/m ásodperc.

8.15. ábra. Egy tipikus hálózati processzor és kártya Csom agfeldolgozás

Egy csom ag m eg érk ezések o r attó l függetlenül keresztülm egy néhány feldolgozási
A hálózati processzo ro k lapkáit a rra o p tim alizálják, hogy nagyszám ú bejövő és
fázison, hogy a h áló zati pro cesszo r csővezetékes felép ítésű -e, vagy sem . N éhány
kim enő csom agot gyorsan fel tu d jan ak dolgozni. E z h álózati v o n alan k én t és m á­
háló zati p ro cesszo r a m u n k át bejövő csom agokon végzett feldolgozásra (ak ár egy
sodpercen k én t tö b b m illió csom agot jele n t, és egy útvonalv álasztó n ak kön n y en le­
h áló za ti vonalról jö n , a k ár a ren d szersín rő l), illetve kim enő csom agokon végzett
het féltucat kiszolgálandó vonala. Ilyen feldolgozási sebesség csak úgy é rh e tő el,
feldolgozásra osztja. H a ilyen m ódon teszünk m eg k ü lö n b ö ztetést, akkor m inden
ha a hálózati pro cesszo ro k belül a leh ető legnagyobb m é rté k b e n p árh u zam o san
csom ag elő ször b em en ő feldolgozáson, m ajd kim enő feldolgozáson m egy k eresz­
m űködnek. És valóban, m in d en háló zati p rocesszort tö b b EPE alkot. E n n e k a rövi­
tül. A k étfajta feldolgozás k ö zö tt nem éles a h atár, m ert bizonyos m ű v e l e t e k e t
dítésnek az ere d e te nem teljesen tisztázo tt, leh e t protokoll-Zprogramozott/csomag-
b árm elyiknél el lehet végezni (p éld áu l ad atforgalm i statisztikák szám ítása).
feldolgozó egység (Protocol/Program m ed/Packet Processing Engine). M indegyik
A lább felállítjuk a kü lö n b ö ző lépések egy lehetséges so rren d jét, de j e g y e z z ü k
egy (esetleg m ó d o síto tt) R IS C -m ag és egy k ism éretű belső m em ó ria a p ro g ram és
m eg, hogy nem m inden csom agnál szükséges elvégezni az összes m űveletet, és s o k
a változók tárolására.
m ás so rre n d is elk ép z elh ető lenne.
590 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8.2. T Á R SP R O C E SSZ O R O K 591

1. E llenőrző összeg vizsgálata. H a a bejövő csom ag az E th e rn e trő l érkezik, a k k o r csom ag m ielő tt m egsem m isítésre kerülne. E zt a m ezőt m in d en elküldés elő tt
a C R C -je újra kiszám ításra kerül, hogy össze leh essen h aso n lítan i a csom agban csö k k en ten i kell, am it a hálózati processzor el tu d végezni.
lévővel. H a a k e ttő egyezik, a k k o r n em tö rté n t átviteli hiba. H a az E th e rn e t 10. V árakozási sor kezelése. A bejövő és kim en ő csom agokat várakozási sorba
C R C helyes vagy hiányzik, a k k o r az IP ellen ő rző összeg k erü l kiszám ításra és kell helyezni, am íg ráju k n em kerül a sor. A m ultim édia-alkalm azásoknak
ellenőrzésre, hogy b izto sak leh essü n k ab b an , hogy az IP-csom ag n em sérült szükségük leh et a csom agok k ö zö tt egy bizonyos egyenletes időközre a változó
m eg a küldő m em ó riáján ak hibás bitje m iatt, m iu tán az az IP elle n ő rző össze­ k ésle lte tés oko zta hibák (jitter) m egelőzésére. Egy tűzfal vagy útvonalválasztó
get kiszám íto tta. H a m in d en ellen ő rző összeg helyes, ak k o r a csom ag további a b ejövő csom ag okat bizonyos szabályok szerin t széto szth atja a kim enő v o n a­
feldolgozása fo ly tató d h at, k ü lö n b en egyszerűen m egsem m isítésre kerül. lak közö tt. M in d ezek et a fe la d a to k a t elvégezheti egy hálózati processzor.
2. M ező kinyerése. A m eg felelő fejléc elem zése, és a k ívánt m ező k érté k é n e k 11. E llenőrző összeg generálása. A kim en ő csom agokat tö bbnyire el kell látni el­
kiolvasása tö rté n ik itt. Egy E th e rn e t-k a p cso ló csak az E th e rn e t-fe jlé c e t vizs­ len ő rző összeggel. A z IP ellen ő rző összeget elő állíth atja a hálózati processzor,
gálja, m íg egy IP -útvonalválasztó csak az IP-fejlécet. A kívánt m ező k érté k e i de az E th e rn e t C R C -t általáb an h ard v er szám ítja ki.
reg iszterek b en (p árh u zam o s P P E -felép ítés) vagy S R A M -b an (csővezetékes 12. E lszám olási inform áció gyűjtése. B izonyos esetek b en szükség van a csom ag­
felép ítés) táro ló d n ak . forg alo m ad ata in ak gyűjtésére, külö n ö sen , am ikor egy hálózat üzleti alap o n
3. C som agosztályozás. A csom agok egy so r p ro g ra m o z h ató szabálynak m eg fele­ továbbít csom agokat m ás háló zato k n ak . A hálózati processzor elvégezheti az
lően osztályozásra k erü ln ek . A legegyszerűbb osztályozás, am ik o r a d a tc so m a ­ ad atgyűjtést.
gokat és vezérlő cso m ag o k at k ü lö n b ö z te tü n k m eg, de re n d sz e rin t en n él sokkal 13. Statisztikák készítése. V égül, sok szervezet szeret statisztik ák at készíteni az
finom abb a felosztás. ad atfo rg alo m ró l, a hálózati processzor m egfelelő hely az a d a to k összegyűjté­
4. Ú tválasztás. A legtöbb h áló zati p ro cesszo r fel van készítve arra, hogy a m ezei sére.
adatcsom agok at gyorsan lekezelje, m íg az összes tö b b it ezek tő l e lté rő e n gyak­
ra n a vezérlőp ro cesszo r veszi k ezelésbe. El kell d ö n ten i, m i legyen a csom ag­
gal ilyen szem pontból. A teljesítmény növelése
5. C élhálózat m egállapítása. A z IP-csom agok ta rtalm a z zá k a célállom ás 32 bites
cím ét. N em leh e t (és n em is len n e célszerű ) egy 2^^ szám ú bejegyzést ta rta lm a ­ A teljesítm ény a legfontosabb a háló zati p rocesszorok szám ára. M it leh et ten n i
zó tá b lázato t h asználni az IP -csom agok c élá llo m ásán ak m eg állap ítására, e zért e n n e k növelése érd e k é b e n ? D e m ielő tt növeljük, definiálnunk kell, hogy mi is az.
az IP cím bal oldali része a h áló zat szám a, a m a ra d é k része p ed ig egy g é p e t h a ­ Egy m é rté k a m á so d p ercen k én t to v áb b íto tt csom agok szám a. Egy m ásik a m áso d ­
tá ro z m eg a h áló z a to n belül. A h áló za t szám a a k á rm e k k o ra hosszúságú leh et, p e rc e n k é n t to v áb b íto tt b ájto k szám a. E zek különböznek, és egy k ism éretű csom a­
e z é rt a célállom ás m eg h a táro z ása n em triviális felad a t, és m ég az is bonyolítja, go khoz m eg felelő sém a n em biztos, hogy ugyanolyan jól m űködik n agym éretűre
hogy több leh ető ség is a d ó d h a t, de ezek közül a leghosszabb szám ít. G y ak ran is. P éld á u l kis csom agok esetén so k at segíthet, ha gyorsítjuk a célállom ások cím ei­
e rre a célra A S IC -o t h asználnak. n ek e lő k eresését, de nagy csom agok esetén nem biztos.
6. Útvonal m egállapítása. H a a célállo m ás h áló za ta m á r ism ert, ak k o r a hozzá A teljesítm ény növelésének legegyszerűbb m ódja a hálózati processzor ó ra je ­
ta rto z ó kim en ő vonal egy S R A M -ban ta lá lh a tó tá b lázatb ó l kiolvasható. E b b en lén ek növelése. T erm észetesen a teljesítm ény n em nő lineárisan az órajellel, m ert
a lépésben is h a szn álh ató speciális A SIC . a m em ó ria ciklusideje és m ég egyéb tényezők is befolyásolják. A nagyobb órajel
7. Feldarabolás és összerakás. A ren d szerh ív áso k szám án ak csö k ken tése végett m ég tö b b elvezeten d ő h ő t is jelen t.
a p ro g ram o k e lő sz erete tte l a d n ak át egyszerre nagy m ennyiségű a d a to t a T C P S okszor célravezetőbb, h a tö b b P P E -t és p árh u zam o sság o t alkalm azunk, főleg
réteg n ek , de a TCP, az IP és az E th e rn e t-p ro to k o ll csak egy m eg a d o tt m ax im á­ egy olyan elren d ezésb en , ahol a P P E -k m ű k ö d n ek p árh u zam o san . Egy hosszabb
lis m é re tű csom agot tu d kezelni. A k o rlá to k m iatt e lk ép z elh ető , hogy a k ü ld é s­ csővezeték is segíthet, de csak akkor, ha egy csom ag feldolgozása kisebb részekre
re váró a d ato k a t, illetve cso m ag o k at a k ü ldő old alo n fel kell d arab o ln i, m ajd a b o n th a tó .
d ara b o k a t a fo g ad ó o ld alo n összerakni. E zek et a fe la d a to k a t is el tu d ja végez­ Egy m ásik m ó d szer a speciális p rocesszorok vagy A S IC -ok beép ítése az olyan
ni a hálózati processzor. ism étlő d ő és időigényes fela d a to k elvégzésére, am elyeket h ard v errel gyorsabban
8. Feldolgozás. N éh a nagy szám ítási igényű m ű v eletek et kell elvégezni, p éld áu l el le h e t végezni, m int szoftverrel. Sok egyéb m ellett k eresések táb lázato k b an , el­
tö m ö rítés/k ib o n tás vagy titkosítás/visszafejtés. E z e k et a fe la d a to k a t is el tud ja len ő rző összegek képzése és titkosítási algoritm usok leh etn ek a jelö ltek között.
végezni a háló zati processzor. T ö b b belső sín b eép ítése, illetve a m eglévők szélesítése is segíthet a sebesség
9. Fejléckezelés. A lk alm an k én t a csom agokhoz fejlécek et kell előállítan i, o n ­ növelésben, hiszen a csom agok gyorsabban m ozognak a ren d szerb en . V égül te l­
n an el kell távolítani vagy valam elyik m ező jü k et m ó d o sítan i kell. P éld áu l az jesítm én y n ö velésnek szám ít az is, ha az S D R A M -o t lecseréljük S R A M -ra, de te r­
IP-fejlécben van egy m ező, am ely m egadja, hogy hány lép ést te h e t m ég m eg a m észetesen e n n ek is á ra van.
592 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A 8.2. t á r s p r o c e s s z o r o k 593

T erm észetesen sokkal tö b b e t le h e tn e elm o n d an i a h álózati p ro cesszo ro k ró l; b ő ­ ség én ek növelése „d e in te rla c e ”-eléssel, k ép ek fény erejének, k o n trasztján ak és szí­
vebben lásd (C o m er, 2005; C row ley és társai, 2002; L ekkas, 2003; P ap aefstath io u n e in e k javítása, k é p m é re t m ódosítása, k ü lönböző v id eo fo rm átu m o k közötti k o n ­
és társai, 2004). verzió és a zajcsökkentés. R en d szerin t a C P U veszi át a m u n k át, m ajd a legtöbb
ré sz fe lad a to t kiosztja a lap k án talá lh a tó k ü lönböző speciális m agoknak,
A k im en ettel kapcsolatos funkciók m agukba foglalják a belső ad atszerk ezetek
8.2.2. Médíaprocesszorok átk ó d o lá sát a k im en eti eszközöknek m egfelelő fo rm átu m ra, több a d a tfo rrás (vi­
deó, hang, kép, 2D grafika) összefésülését és a k im eneti eszközök vezérlését. M int
A társprocesszoro k alk alm azásának m ásodik te rü le te a nagy felb o n tású fényképek, ahogy a b e m e n e t e setéb en is, a kim enő a d a to k k erü lh e tn e k a P C I sínre, E th e rn e tre
hang és m ozgókép kezelése. A hagyom ányos C P U -k n em külö n ö seb b en jó k ezek ­ vagy egy k itü n te te tt kim en ő vonalra (például h an g szó ró ra vagy erősítőbe).
ben a feladatokb an , m ert az ilyen alkalm azások nagy m ennyiségű ad atá n a k feld o l­ A 8.16. á b rán a N ex p eria P N X 1500 lapka b lokkdiagram ja láth ató . M ás verziók
gozása nagyon nagy m űveletigényű. E m ia tt néhány m ai és a legtöbb jövőbeni P C fel e ttő l kis m é rté k b e n eltérn ek , így az egységesség kedvéért a fejezet h átralév ő ré ­
lesz szerelve m éd ia-társp ro cesszo rral, am elynek á ta d h a tja a m u n k a jele n tő s részét. szében a „N ex p eria” ezt a P N X 1500 im p lem en táció t fogja jelen ten i. E n n e k négy
nagyobb része van: vezérlő, b em en e t, feldolgozó és k im enet. A C P U a 8.1.1 alfeje-
z etb e n tárgyalt 32 bites T riM edia V L IW processzor 300 M H z-es változata. E n n ek
A Nexperia médiaprocesszor p ro g ra m ja (am it általáb an C -ben vagy C-l- -l--ban írn ak ) h atáro zza m eg a N experia
m ű k ö d ését.
E zt az egyre növekvő jelen tő sé g ű te rü le te t egy p é ld á n k eresztü l fogjuk ta n u lm á ­ A N ex p eria a lapkán n em ta rtalm az m em ó riát, kivéve a T riM edia C P U -b an lé ­
nyozni: a Philips N ex p eria lap k acsalád lesz vizsgálódásunk tárgya, am elynek ta g ­ vő k é t g y o rsítótárat. E h ely ett van külső m em ó riain terfésze, am elynek segítségével
ja i többféle órajel-frekvenciával is re n d e lk e z ésre állnak. A Nexperia egy k o m p ­ 8 -2 5 6 M B közötti D D R S D R A M -o t é rh e t el. E z a m ennyiség bőven eleg en d ő ti­
lett egylapkás h e te ro g é n m u ltip ro cesszo r a 8.11. á b ra szerinti é rte le m b en . T ö b b
m agot tartalm az, b e leé rtv e egy T riM edia V L IW C P U -t is v ezérlő n ek , de sok m ás Vezérlö
m agot is kép, hang, videó és h áló za ti feldolgozás céljára. H a sz n á lh a tó ö n álló a n fő _Bemenet
p ro cesszo rk én t C D -, D V D -, M P 3-lejátszó b an vagy -felvevőben, tv-készülékben
vagy vevőegységben, fén y k ép ező g ép b en , v id eo k am eráb a n stb. H a sz n á lh a tó ezen
kívül társp ro cesszo rk én t P C -b en k ép ek vagy audiovizuális a d a to k feldolgozására. SDRAM-hoz
M in d k ét konfigurációban a saját kis, valós idejű o p eráció s ren d sz e ré t fu tta tja .
A N ex p erián ak h á ro m funkciója van: bejövő a d a tá ra m begyűjtése és táro lá sa PCI sínhez 8 hang-
■csatorna
belső ad atszerk ezetek b en , az a d a tsz e rk ez e tek feldolgozása és végül az a d a to k ki­
Ethernet felé
ad ása a különféle k im en eti eszk ö zö k n ek m eg felelő fo rm á tu m b a n . P éld áu l, a m i­
k o r egy P C -t D V D -lejá tszó n a k haszn álu n k , ak k o r a N ex p eria p ro g ra m o z h a tó 27 MHz
kristály
úgy, hogy a D V D -lem ezrő l a titk o síto tt, tö m ö ríte tt v id e o -a d a tá ra m o t olvassa be,
ezu tán d ek ó d o lja és b o n tsa ki, m ajd a m e g jelen ítő a b lak n ak m eg felelő m ére tb e n
adja tovább. M in d ez folyhat a h á tté rb e n , a szám ító g ép fő p ro cessz o rá n a k n em kell
Feldolgozó _ , K im e n et
részt vennie b en n e m iu tán a D V D -lejátszó p ro g ra m o t le tö ltö tte a N experiába.
M in d en bejövő a d a t elő szö r feld o lg o zásra a m e m ó riá b an táro ló d ik ; nincs köz­
v etlen kapcsolat a b e m en ti és a k im en eti eszközök kö zö tt. A d a to k begyűjtése k ü ­
lönböző fo rráso k b ó l is tö rté n h e t, tö b b féle v id eo fo rm á tu m (M P E G -1 , M P E G -2 és
M P E G -4 ) és h an g fo rm átu m (tö b b ek közt A A C , D olby és M P3) m indegyikéből a
m egfelelő ad atsz erk e z etb e k o n v ertál táro lás és feldolgozás céljából. A bejövő a d a ­ ^ 8 hang-
“^csatorna
tok jö h e tn e k a P C I sínről, E th e rn e trő l vagy k itü n te te tt in p u tcsato rn á k ró l (p éld áu l
JTAG ^
közvetlenül a lap k áh o z c sa tla k o z ta to tt m ik ro fo n b ó l vagy sztereó ren d szerb ő l). A
N experia lap k án a k 456 lába van, ezek k ö zö tt van n ak olyanok, am elyek kö zv etle­
nül bejövő vagy k im en ő a d a tá ra m o k szám ára állnak ren d elk ezésre.
A z adatfeldo lg o zást a T riM edia C P U szoftvere irányítja, am ely bárm ily en szük­
séges pro g ram leh et. A tipikus fe la d a to k közé ta rto zik a m o zg ó k ép so ro zato k éle s­ 8.16. ábra. A Nexperia heterogén multiprocesszor-lapkája
594 8. P Á R H U Z A M O S SZ Á M fT Ó G ÉP-A R C H IT EK T Ú R A 8.2. t á r s p r o c e s s z o r o k 595

pikus m ultim édia-alk alm azáso k h o z. A 200 M H z-es órajellel a m em ó ria a d a tá tv i­ dem u ltip lex álásra azért van szükség, m ert ugyanazokat a kivezetéseket használják
teli képessége 1,6 G B /sec. általán o s és v id eo b em en et céljára is.
Egy teljes PC I in terfész is helyet k a p o tt a lap k án 8, 16 és 32 bites átvitellel A h an g b e m e n eti m ag képes begyűjteni legfeljebb 8 sztereó h an g csato rn án é r­
33 M H z-en. H a fő C P U -k é n t h asználják egy szó rak o zta tó e lek tro n ik a i eszközben kező z e n é t vagy beszédet, és egészen 96 kH z-ig 8, 16 vagy 32 bites pontossággal
(például D V D -lejátszó b an ), ak k o r a P C I in terfész sín k io sztó k én t is ü zem e lh et. Ez az S D R A M -b an eltárolni. Tud tö m ö ríte tt fo rm átu m o k at visszafejteni, csato rn ák at
az interfész péld áu l egy D V D -m eg h ajtó v al való k a p c so la tta rtá sra is haszn álh ató . keverni, a m intavétel sű rű ség ét m egváltoztatni, szűrőket alkalm azni, és m indezt
K özvetlen E th e rn c t-k a p c so la to t biztosít egy e rre a célra elh ely ezett m ag, am ely m e n e t k özben, m ielő tt a h a n g ad ato k at eltáro ln á. A z SP digitális bem en eti m ag
képes 10 és 100 M bps seb esség re is. E b b ő l k ö v etk ező en egy N ex p eria-alap ú kam - olyan digitális h an g jelek et fogad, am elyek m egfelelnek a Sony-Philips digitális
k o rd e r képes digitális vid eó t szo lg áltatn i E th e rn e te n k eresztü l egy távoli adatgytíj- hangszabványának (lE C 1937). így a digitális hanganyagok a m inőség rom lása
tő vagy m eg jelen ítő eszköznek. nélkül á tv ih ető k egyik eszközről a m ásikra.
A k övetkező m ag kezeli a ren d sz e rin d ítá st, az ú jra in d ítá st, az ó rá k a t és m ég A hang-, videó- és m ás a d a to k a beolvasás u tán feldolgozást igényelnek, ezt
n éh án y ap ró b b m ű ködési jellem ző t. H a a N ex p eria egy bizonyos k iv ezetésére jel tárgyalja a k övetkező rész. A kölcsönzött vagy m egvásárolt D V D -film ck kódolva
érkezik, ak k o r elk ezd ő d ik az ú jrain d ítás. E zt a m ag o t a rra is be le h e t p ro g ra m o z ­ v an n ak a m ásolást m egakadályozandó. A D V D -d ek ó d o ló eltávolítja a kódolást,
ni, hogy h a a C P U nem küld neki je le t szabályos id ő k ö zö n k én t, a k k o r feltételezi, így h o zz á ju th atu n k az e red eti film hez M P E G -2 fo rm átu m b an töm ckítve. A d e ­
hogy a ren d szer lefagyott, és m agától kezdem ényezi az ú jrain d ítást. Ö n álló an m ű ­ k ó d o lás egy m em ó riáb ó l m em ó riáb a tö rté n ő m ásolási m űvelet, a b em en e t jö n az
k ö d ő b eren d ezések b e n az ú jrain d ítás flash m em ó riáb ó l tö rté n h e t. egyik p u fferből, a k im en et megy egy m ásikba.
A m ag o t egy 27 M H z-es kristályoszcillátor h ajtja, ez a frek v en cia belül 64-gyel A ho ssz-dekódoló m ég tovább megy, és eltávolítja az M P E G -2 (vagy M P E G -
szorzódik, így áll elő a lap k án m in d en h o l h aszn ált 1,728 G H z-es jel. A z e n e rg ia­ 1) által a lk alm azo tt változó hosszúságú k ó d o lást az é rin te tt részekről, ezzel előáll
g azdálkodás kezelése is itt tö rtén ik . A la p e se tb e n a C P U teljes sebességgel, a többi egy részb en tö m ö ríte tt a d a tso ro zat a tényleges M P E G feldolgozáshoz, am elyet
k o m p o n en s pedig fe la d a tá n ak ellátásáh o z szükséges sebességgel üzem el. A C P U m ár a T riM edia végez szoftverrel. E n n e k a felosztásnak az az oka, hogy a válto ­
azonban en erg ia m eg tak a rítá s céljából le tu d ja lassítani az ó rát. A lvó üzem m ód is zó hosszúságú dekódolás (H uffm ann- és fu tóhossz-dekódolás) nem használja ki
van, am ikor a legtöbb funkció lekapcsolódik, ha nincs sem m i tennivaló. Ez a h o r­ haték o n y an a T riM edia képességeit, ezért jo b b n ak ítélték h ard v errel m egoldani
d o zh ató eszközök a k k u m u láto rá t h iv ato tt kím élni. néh án y nég y zetm illim éter szilikont felhasználva e rre a célra. E zek a m em óriából
E n n e k az egységnek része m ég 16 „szem afo r”, am elyek tö b b eszköz közötti m em ó riá b a dolgozó m űveletek egy egyszerű p ix eltérk ép et hozn ak létre.
szinkronizáció m eg v aló sítására h aszn álh ató k . A m ik o r egy m ag n em n u lla é rté k e t E gy p ix eltérk ép h áro m általán o s fo rm átu m bárm elyikében leh et, ezek m in d ­
ír egy é p p en nulla é rté k e t ta rtalm a z ó szem afo rb a, ak k o r az írás sikeres lesz; k ü ­ egyikének további három vagy négy alfaja van a külö n b ö ző m é re te k és p a ra m é ­
lö n b en sik ertelen , és a k o ráb b i é rté k v álto zatlan m arad . N u lla b eírá sa m indig sike­ te re k szerint. A z első fo rm átu m az indexelt színelőállítás, am elynél m in d en é rté k
res. M ivel egyszerre csak egyetlen m ag fé rh e t hozzá a ren d szersín h ez, ezért ezek a egy CLUT (Color Look Up TabJe, színkereső tábla) index. A tá b lázat m in d en b e ­
m űveletek atom iak, így alap ját k ép ez h etik a kölcsönös k izárás m egvalósításának. jegyzése egy 24 bites színértékből és egy 8 bites áttetszőség! csatorna m aszkból
H a egy m ag m eg a k a r szerezni egy e rő fo rrá st, ak k o r n e m n u lla é rte k e t p ró b ál ír­ áll, u tó b b it ak kor használják, am ik o r tö b b ré te g k erü l egym ásra. A m ásodik fo r­
ni egy m e g h atáro z o tt szem aforba. H a a b eírá s sikeres, a k k o r o n n an tó l kezdve k i­ m átu m az R G B , így m ű k ö d n ek a szám ító g ép -m o n ito ro k is, m in d en pixelt szétvá­
zárólagos hozzáférési jo g a van az e rő fo rrá sh o z egészen addig, am íg le nem m ond lasztva a vörös, zöld és kék k o m p o n en sek re. A h arm ad ik fo rm átu m az YUV, a m e ­
róla úgy, hogy nullát ír a szem afo rb a. H a egy írás sik ertelen , a k k o r a m agnak re n d ­ lyet a televíziózásban haszn ált jelek k ó d o lására k ifejlesztettek ki. A vörös, zöld és
szeres id ő k ö zö n k én t újra p ró b álk o zn ia kell, am íg sikeres n em lesz. E m ia tt te rm é ­ k ék k o m p o n en sek k ü lö n-külön k ó d o lása helyett a k am eráb an egy olyan tran sz­
szetesen ezek nem a 6. fejezet érte lm é b e n v ett klasszikus szem aforok. fo rm áció t h ajtan ak végre, am ely egy fényerősség- és k ét színcsatornát hoz létre.
M ost nézzük a b em e n e ti részt. A v id e o b e m e n e ti m ag 10 bit széles d ig itá­ E zzel a m egoldással a színnél nagyobb sávszélesség re n d e lh e tő a fényerősséghez,
lis v id e o -a d a tá ra m o t kap, sim ító algoritm ussal áta la k ítja 8 b itesre, m ajd a külső ez viszont nagyobb zajtű rő k ép esség et je le n t ad atá tv itel során. A z Y U V form átum
D R A M -b an eltáro lja. A leg tö b b e se tb e n a digitális b e m e n e t egy külső an aló g -d i­ jó választás olyan alkalm azás esetén , am ely televíziós je le k e t fogad és állít elő. A
gitális átalak ító k im en etérő l érkezik, am ely p edig an aló g tv-jelet kap h ag y o m á­ tá ro lh a tó fo rm átu m o k szám ának k o rláto zása lehetővé teszi, hogy m inden m ag be
nyos a n te n n á ró l vagy kábelről. tu d ja olvasni bárm elyik m ásik k im en etét.
A z általán o s b em en e ti m ag kép es 100 M H z-en stru k tu rá la tla n 32 b ites a d a ­ A video sk álázó egy skálázást felad atlistát fogad és m axim álisan 120 m illió pixel/
to t gyűjteni tetsző leg es b e m e n e trő l és az S D R A M -b an eltáro ln i. U gyanezt olyan sec sebességgel végrehajtja. E zek a felad ato k az aláb b iak at tartalm azh atják :
stru k tu rálatlan ad ato k k a l is m eg tu d ja ten n i, am elyben a re k o rd o k jelek k el szét
v an n ak választva. A kél digitális v id e o b e m e n e t e lő tt elh ely ezett ú tv onalválasztó 1. D ein terlacing;
d em ultiplexálást végez, illetve egyúttal k ép es n ém i v id eo á ta lak ítá st is elvégezni. A 2. V ízszintes és függőleges skálázás;
596 8. P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ú R A
8.2. t á r s p r o c e s s z o r o k 597

3. L ineáris és n em lin eáris o ld alarány-konverzió;


M ivel nem je le n t plusz költséget, a legtöbb N experia alapú ren d szer m inden
4. K ü lönböző p ix elfo rm átu m o k közö tti konverzió;
bizonnyal au to m atik u san kezelni fogja m ind a h áro m tv-szabványt, így a világ
5. F ényerősség h isztogram adatgyűjtés;
b árm ely p o n tján e lad h a tó k lesznek. H aso n ló k ép p en , a HDTV (H igh D efinition
6. V illogáscsökkentés.
TeleVision, nagy felb o n tású televízió) hozzáadása a készlethez csak egy olyan kis
szoftver hozzáadásából áll, am ely a fo rm átu m és a m em ó riáb an lévő ad a tsz e rk e ­
A televízió-adások váltottsoros jelek b ő l állnak, am i azt jelen ti, hogy m in d en 525
zetek közö tti konverziót végzi.
(PÁL és S E C A M e setén 625) letap o g atási sorból álló kép k o ck a e setén elő szö r a
A z á ltalán o s k im eneti m ag csak b itek et m ozgat, 8, 16 vagy 32 b itet cikluson­
p á ro s sorok, m ajd a p á ra tla n so ro k k e rü ln e k to v áb b ításra. A d ein tc rla cin g so r­
k én t 100 M H z frekvencián, ez 3,2 G bps m axim ális sávszélességet jelen t. H a egy
duplázó tech n ik a egy jo b b m inőségű progresszív pásztázást ered m én y ez, ilyenkor
N ex p eria lapka általán o s k im e n té t összekötjük egy m ásik N experia lapka á lta lá ­
m in d en sor a m aga helyén k erül to v áb b ításra, és a v álto ttso ro sh o z kép est k étszer
nos b e m en e tév el, a k k o r a fájlok m ozgatása a gigabit E th e rn e t sebességét (1 G bps)
ak k o ra frekvenciával frissül (29,97 fps N T S C -nél, 25 fps PA L -nál és S E C A M -n ál).
m eg h alad ó ü tem b en végezhető. E z az interfész lehetővé teszi a C P U szám ára azt
A vízszintes és függőleges skálázással a k é p e k m é re té t leh et növelni vagy c sö k k en ­
is, hogy szoftverrel bárm ilyen típ usú k im e n e te t előállítson.
teni, esetleg egy rész kivágása u tán . A szabványos televíziókép szélesség én ek és
A k im en eti útvonalválasztó m ultiplexálja a k é t kim en ő fo rrást, és ném i fu n k cio ­
m agasságának arán y a 4:3, de a széles k ép ern y ő s tév én él az ará n y 16:9, am i jo b b a n
n alitást is ad hozzá, ideértve a m axim um 1280 x 768 pixel felb o n tású folyadékkris­
illik a 35 m illim étere s m ozifilm ek 3:2 arán y áh o z. A skálázó k o n v ertáln i tu d a k ü ­
tályos kijelzők frissítését 60 H z-en, vagy v áltottsoros, illetve progresszív tév ék é­
lönböző oldalarán y o k kö zö tt lineáris vagy n em lin eáris algoritm ussal. Szintén tu d
szülékek frissítését is. A m ultiplexálásra azért van szükség, m ert a kom pozit videó
ko n v ertáln i az indexelt, az R G B és az Y U V fo rm á tu m o k k ö zö tt, valam int képes
és az álta lán o s k im en etek ugyanazokon a kivezetéseken osztoznak.
hisztogram ot készíteni a fcnyesség érték b ő l, am i hasznos a k im e n et m in ő ség én ek
A han g k im en eti m ag elő tu d állítani a k ár 8 sztereó csato rn át 32 bites p ontosság­
javítása szem pon tjáb ó l. V égül v an n ak bizonyos tran szfo rm áció k , am elyek a k ép ­
gal és a k á r 96 kH z-es m intavételi sebességgel. G yakran ez a k im en et egy külső d i­
villogást csökkentik.
gitális-analóg átalak ító t hajt m eg. Az SP digitális k im en et a Sony-Philips digitális
A grafikus m o to r k étd im en zió s k ép elő á llítást végez az o b jek tu m leíráso k a la p ­
hangszabványának m egfelelő eszközök SP digitális b em en e téh ez csatlakoztatható.
ján. Ki tu d tö lten i zárt alak z ato k at, és bitblt m ű v eletek et is elvégez, am i lényegé­
A z u to lsó m ag az általán o s célú B/K kezelő. T izen h at kivezetés áll re n d e lk e ­
ben azt jelen ti, hogy k ét pixel tég lala p o t ö sszekom binál logikai É S, VAGY, k izáró
zésre bárm ilyen szükséges célra. N yom ógom bokhoz, kapcsolókhoz, L E D -ek h ez
VAGY vagy m ás B oolean-függvény segítségével.
csatla k o z tath ató k , és így ezek szoftverből érzék elh ető k , illetve vezérelh ető k . M ég
N incs hangfeldolgozást végző m ag. A m i a beolvasás u tá n m ég h á trav an , azt a
k ö zep es sebességű (20 M bps) szoftvervezérelt hálózati p ro to k o llo k h o z is h aszn ál­
TriM edia C P U végzi el szoftverrel. A h an g an nyira kevés a d a to t igényel, hogy a
h atók . K ü lö nböző időzítők, szám lálók és esem énykezelők is v an n ak m ég itt.
szoftveres feldolgozás n em je le n t p ro b lém át. Sok alk alm azás egyáltalán nem is
M in d e n t egybevetve a N experia az audiovizuális alkalm azások szám ára h a ta l­
igényel hangfeldo lg o zást, esetleg csak fo rm átu m k o n v erzió t.
m as szám ítási kapacitással rendelkezik, és a hálózati pro cesszo ro k h o z h aso n ló an
A diagnosztikai m ag segíti a terv ez ő k e t és a p ro g ra m o z ó k a t a h ard v er- és a
leh ető vé teszi, hogy tekintélyes m ennyiségű m un k átó l szabaduljon m eg a C PU .
szoftverhibák feld eríté sé b e n . In te rfészt b iztosít az IE E E 1149.1 szám ú, m ás n é ­
A szám ítási k apacitás m ég nagyobb, m int elsőre tű n h e t, m e rt a m agok egym ással
ven JTAG (Joint Test Action Group) szabványnak m eg felelő m ű szerek és eszk ö ­
és a C P U -val is p árh u zam o san m ű k ö d h etn ek . É s talán m eglepő, de nagy tételb en
zök szám ára.
20 d o llár a latti áron k ap h ató . M o stan ra a társp ro cesszo ro k hasznosságának, k ü ­
A k im en eti rész a feld o lg o zo tt a d a to k a t a m em ó riáb ó l a k im en e tre küldi. A
lö n ö sen a h etero g én m ultiprocesszoros lapk ák o n alapulók hasznosságának egyre
kom p o zit videó m ag vesz n éh án y pixeleket re p re z e n tá ló a d a tsze rk e ze te t, bizonyos
nyilvánvalóbbá kellene válnia. Egy hasonló, de a m u ltim éd ia helyett a telefó n ia fe ­
m ó d o n norm alizálja, m ajd m eg h a tá ro z o tt m ó d o n keveri, m ielő tt az ered m é n y a
lé o rie n tá lt lapka leírása találh ató (N ickolls és társai, 2003).
k im en etre kerül. A z indexelt fo rm á tu m ú a d a to k alap ján m en e t közben m eg álla­
pítja a k o n k ré t pixeleket, valam in t a nem kom patibilis fo rm átu m o k at m egfelelően
konvertálja. E z a m ag k o n traszto t, fényességet és szín k o rrek ció t is tu d állítani, ha
szükséges. K épes m ég a ch ro m a keying effek tu sra, am ik o r egy teljesen kék h á t­ 8.2.3. Kriptoprocesszorok
té r elő tt álló színészi k ü lö n választan ak a h á tté rtő l, és vizuálisan egy m ásik fo r­
A biztonság, első so rb an a hálózati biztonság a h arm ad ik terü let, ahol a tá rsp ro ­
rásból szárm azó h á tté r elé helyeznek. H a so n ló m ó d o n , rö g z íte tt vagy valam ilyen
c esszo ro k n ép szerű ek . A m ik o r egy kliens és egy szerver k ö zö tt kapcsolat jö n létre,
irányba h alad ó h á tté r e lő tt m ozgó fig u rák at ta rta lm az ó rajzfilm ek is elő állíth ato k .
először sok esetb en h itelesíten iü k kell egym ást. E zu tán egy biztonságos, titk o síto tt
T erm észetesen a v ég ered m én y t a kívánt videó- vagy televíziós szabvány szerinti
k ap cso latot kell felépíteni k e tte jü k kö zö tt, hogy az egym ásnak k ü ld ö tt a d ato k biz­
fo rm átu m b a kon v ertálja (p éld áu l N T SC , FAL vagy S E C A M ), b e leértv e a vízszin­
to n ság b an legyenek ak k o r is, ha a kom m u n ik áció t lehallgatják.
tes és függőleges szin k ro n jelek et is.
598 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A 8.3. K ö z ö s M E M Ó R IÁ S M U L T IP R O C ES SZ O R O K 599

A biztonsággal az a p ro b lém a, hogy titk o sítást kell h asználni, am i viszont n a ­ szót, eh h ez csak egy STORE vagy LOAD u tasítást kell v égrehajtania. Sem m i m ás nem
gyon szám ításigényes. A titk o sításn ak k ét fajtája van, a szim m etrikus liulcsú titko­ kell, a h a rd v er elvégzi a többit. K ét folyam at úgy k o m m u n ik álh at egym ással, hogy
sítás és a nyilvános kulcsú titkosítás. A z első azon alapszik, hogy a b itek e t nagyon egyikük a d a to k a t ír a m em ó riáb a, a m ásik pedig kiolvassa o nnan.
alap o san összekeverik, nagyjából olyan, m in th a az ü z e n e te t a turm ixgép e le k tro ­ A m u ltip ro cesszo ro k n ép szerű ség én ek oka az, hogy k ét (vagy tö b b ) folyam at
nikus m egfelelőjéb e d o b n án k . A z u tó b b i nagy (p éld áu l 1024 bites) szám ok szorzá­ egyszerűen a m em ó riáb a való írás és olvasás ú tján k o m m u n ik álh at egym ással. E zt
sán és hatványozásán alapszik, és rendkívül időigényes. a m o d ellt a p ro g ram o zó k könnyen m egértik, és a p ro b lém ák széles k ö réb en al­
A datátviteli vagy tá ro lási célból tö rté n ő titk o sításh o z a szükséges szám ításo k el­ k alm azható . Tekintsük p éld áu l azt a p ro g ram o t, am ely m egvizsgál egy b ittérk ép es
végzésére k ülö n b ö ző cégek g y árto ttak k rip to g ráfiai tá rsp ro cesszo ro k at, n é h a P C I- k ép et, és kilistázza a ra jta talá lh a tó o b jek tu m o k at. A k é p et a m em ó riáb a töltjük,
kárty ák fo rm ájáb an . E z e k n e k a társp ro c e ssz o ro k n a k speciális h a rd v e re van, hogy ahogy a 8.17. (b) áb rá n láth ató . M ind a 16 processzo ro n egy-egy folyam at fut, ezek
a szükséges titkosítási m ű v e letek e t a hagyom ányos C P U -k n ál sokkal S o rs a b b a n m indegyike m egvizsgál a 16 k ép részletb ő l egyet. M in d em ellett a p rocesszorok el­
tu d ják elvégezni. Sajnos e tá rsp ro cesszo ro k m ű k ö d ésé n e k tárg y alásáh o z először é rh e tik a teljes k ép et, am ire szükség is van, hiszen egy o b jek tu m tö b b kép részletb e
m agáról a kriptog ráfiáró l k ellen e hosszasan é rtek ezn ü n k , ez ped ig m eg h alad ja e n ­ is beleló g h at. H a valam elyik folyam at azt veszi észre, hogy egyik o b jek tu m a átlóg
nek a könyvnek a k e re teit. A k rip to g ráfiai társp ro cesszo ro k ró l bővebb info rm áció a szom szédos részbe, ak k o r egyszerűen követi azt, szavakat olvasva a m ásik k é p ­
ta lá lh a tó (D an esh b eh és H asan , 2004; L u tz és H asa n , 2004). részletből is. E b b e n a p é ld áb a n lesznek olyan objek tu m o k , am elyeket tö b b folya­
m at is felfedez, ezért a végén valam ilyen egyeztetésre van szükség, hogy tén y leg e­
sen hány ház, fa és re p ü lő g ép van a képen.

8.3. Közös memóriás multiprocesszorok


CPU
L áttu k , hogy a p árh u zam o sság a lap k á k o n is m egvaló síth ató , illetve társprocesz-
szor hozzáadásáv al ö n álló ren d sz e re k b e n is m eg jelen h et. A k ö v etkező szint az,
hogy tö b b k o m p le tt C P U -t egy re n d sz e rb e összeép ítü n k . A z ilyen tö b b C P U -
val ren d elk ező ren d sz e re k le h e tn e k m u ltip ro cesszo ro k vagy m u ltiszám ítógépek.
M iu tán m egvizsgáltuk, hogy ezek a k ifejezések tu la jd o n k é p p en m it is je le n te n e k ,
először a m u ltip ro cesszo ro k at, m ajd a m u ltiszám ító g ép e k et tanulm ányozzuk.

8.3.1. Multíprocesszorokés multiszámítógépek


(a) (b)
B árm ely p árh u zam o s szám ító g é p re n d sze rb e n a fela d a t k ü lö n b ö ző részein d o lg o ­
zó C P U -k n ak ko m m u n ik áln iu k kell ah h o z, hogy in fo rm ác ió t ad h assan ak á t egy­ 8.17. ábra. {a) Egy multiprocesszor, amelyben 16 CPU osztozik a közös memóriár).
m ásnak. H ogy ez p o n to sa n m ilyen m ó d o n tö rté n je n , arró l kom oly viták folynak az (b) Egy 16 részre osztott kép, mindegyiket külön CPU vizsgálja
arch itek tiirák k al foglalkozók k ö réb en . K ét k ü lö n b ö ző m eg k ö ze lítést jav aso ltak és
v aló síto ttak m eg, a m u ltip ro cesszo rt és a m u ltiszám ító g ép e t. A k e ttő k ö zö tti a la p ­ M ivel a m u ltip ro cesszo rb an m in d en processzor ugyanazt a m e m ó ria ta rta lm a t
vető külö n b ség az, hogy v an -e közös m em ó ria, vagy nincs. E z a k ü lö n b ség k ih a t látja, e z é rt o p eráció s ren d szerb ő l is csak egy p éld án y van. K ö v etk ezésk ép p en csak
ezeknek a gép ek n ek a terv ezésére, m eg valósítására, p ro g ram o zására, v alam in t a egyetlen la p táb lázat és egyetlen foly am attáb lázat van. A m ik o r egy folyam at blok-
m é re tü k re és az á ru k ra is. k olódik, a C P U -ja elm en ti az á llap o tát az o p eráció s re n d szer táb lázataib a, m ajd
u g y an o tt k e res egy m ásik fu tta th a tó folyam atot. A m ultip ro cesszo rt ez az egy-
példányos o p eráció s re n d szer k ü lö n b ö zteti m eg a m u ltiszám ítógéptől, am elyben
M ultiprocesszorok m in d en szám ítógépnek saját p éldánya van az o p eráció s ren d szerb ő l.
M in t m in d en szám ítógépnek, egy m ultip ro cesszo rn ak is kellen ek B /K egységek,
A m ultiprocesszor olyan szám ítógép, am elyben az összes C P U egy közös m e m ó ­ m int p éld áu l lem ezek, hálózati csatolók és m ás b eren d ezések . N ém elyik m u ltip ro ­
rián osztozik (lásd 8.17. áb ra). A m u ltip ro cesszo ro n egyszerre fu tó folyam atok cesszoros ren d szerb en csak néh án y C P U fé r hozzá a B/K egységekhez, és így ezek ­
m indegyike egy közös logikai cím ta rto m á n y t lát, am ely a közös fizikai m e m ó riá ra n ek speciális B/K funkciójuk van. M ás ren d szerek b en m in d en C P U egyform án
van leképezve. B árm elyik folyam at írh at vagy olvashat egy tetsző leg es m em o ria- h o zzáfér m in d en B/K eszközhöz. H a m in d en C P U egyform án hozzáfér m inden
600 8. P Á R H U Z A M O S SZÁ M fT Ó G ÉP-A R C H IT EK T Ú R A
8.3. K ö z ö s m e m ó r iá s M ULTI PROCESSZOROK 601

m em ó riam o d u lh o z, m in d en B/K eszközhöz, és az o p eráció s ren d sze r eg y en ran g ú ­ sa ro k b an ) a 8.17. (b) áb rán észreveszi, hogy az általa vizsgált tárgy belóg az 1-es
n a k tek in ti ő k et, ak k o r a re n d sz e rt S M P -n ek (Sym metric M ultiprocesszor, szim ­ C P U -h o z re n d e lt te rü le tre , ak k o r folytathatja a m em ó ria olvasását, hogy a re p ü lő ­
m etrikus m ultiprocesszor) nevezik. gép faro k ré széh ez hozzáférjen. M ásrészről, ha a 8.18. (b) áb rán a 0-s C P U ju t h a ­
sonló felism erésre, ak k o r ez nem tu d az 1-es C P U m em ó riájáb ó l olvasni. Valami
egészen m ást kell ten n ie, hogy a szükséges a d a to k h o z hozzájusson.
M ultiszám ítógépek A z a d o tt esetb en először (valahogyan) ki kell d eríten i, hogy m elyik C P U b ir­
to k o lja a szükséges a d a to t, és küldeni kell neki egy ü zen etet, am elyben kérn i kell
A m ásik lehetséges párh u zam o s a rc h itek tú ráb an m in d en egyes C P U -n ak saját m e ­ az a d a to k m áso latát. Á ltaláb an a folyam at ezt követő en blokkolódik (azaz v á ra ­
m óriája van, am elyet csak saját m aga é rh e t el, a többi C P U nem . A z ilyen arch ite k ­ kozik) a válasz m egérkezéséig. A m ik o r az ü ze n e t m egérkezik az 1-es C P U -hoz,
tú rá t m ultiszám ítógépnek vagy n é h a osztott memóriájú rendszernek nevezik és a akk or azt szoftverrel fel kell dolgozni, m ajd a k é rt a d a to k a t elküldeni. A m ikor a
8.18. (a) áb rán látható. A m u ltiprocesszorok és a m ultiszám ítógépek kö zö tt az a fő válasz m eg érkezik a 0-s C P U -hoz, ak k o r a szoftver blokkoltsága m egszűnik, és to ­
különbség, hogy a m ultiszám ítógép m in d en C P U -ján ak saját lokális m em ó riája van, vább fo ly tath atja a m ű k ö d ését.
am elyet LOAD és STORE utasításokkal elé rh et, de am elyet m ás C P U -k nem é rh e tn e k M u ltiszám ító g ép ek b en a folyam atok közötti kom m u n ik áció b an gyakran olyan
el LOAD és STORE u tasításokkal. Tfehát míg a m u ltiprocesszoros ren d szerb en egy fi­ szoftver prim itíveket használnak, m int a send és a récéivé. E záltal az itt alkalm azott
zikai cím terület van, és ezen osztozik az összes C P U , addig a m ultiszám ítógépes szoftver m ás és b onyolultabb szerkezetű, m int a m ultiprocesszoros re n d sz e re k ­
rendszereknél m inden egyes C P U -hoz külö n fizikai cím tarto m án y van rendelve. nél. E z azt is jelen ti, hogy a m u ltiszám ítógépeknél nagy p ro b lém a a feldolgozandó
Mivel a C P U -k egy m u ltiszám ító g ép es re n d sz e rb e n n em tu d n a k egym ással a ad a to k helyes szétosztása, és azok optim ális elhelyezése. E n n ek kisebb je le n tő s é ­
közös m em ó rián k eresztü l érin tk ezn i, e z é rt m ás leh e tő sé g et k elle tt kidolgozni a ge van a m u ltiprocesszoros ren d szerek n él, mivel o tt az elhelyezés nem befolyásol­
kom m unikáció ju k ra. A folyam atok ü z e n e te k e t k ü ld h e tn e k és fo g a d h a tn a k az ösz- ja a helyes m ű k ö d ést vagy a p ro g ram o zh ató ság o t, b á r a teljesítm ényt befolyásol­
szekö tő h áló za to n k eresztü l. P éld ák a m u ltiszám ító g ép e s ren d sze rek re az IB M - hatja. R ö v id en, a m ultiprocesszoros ren d szerek en sokkal egyszerűbb a p ro g ra m o ­
B lu eG en e/L -, a R ed S torm - és a G oog le-k laszter. zás, m in t a m ultiszám ítógépes ren d szerek en .
A m u ltiszám ító g ép ek n él a k ö zö sen h asz n á lh a tó h ard v eres m e m ó ria h ián y án ak Ilyen k ö rülm ények k ö zö tt m iért é p íten ek m égis m u ltiszám ítógépeket, am ikor a
fo n to s következm énye van a szoftver sze rk ezetére nézve. M u ltiszám ító g ép en n em m u ltiprocesszoros re n d szerek en könnyebb pro g ram o zn i? A válasz egyszerű: egy
leh et egyetlen v irtuális c ím tarto m án y t létreh o zn i, am ely et m in d en processzus nagy m u ltiszám ító g ép et sokkal könnyebb és olcsóbb m eg ép íten i, m int egy ugyan­
egyszerűen LOAD és STORE utasítással e lé rh e tn e . P éldáu l, h a a 0-s C P U (bal felső annyi C P U -val ren d elk ező m ultiprocesszoros rendszert. Igen nagy kihívás olyan
m e m ó riá t m egvalósítani, am elyet néh án y száz C P U közösen használ, míg egy
10000 vagy ennél tö b b C P U -s m ultiszám ítógép m egépítése könnyen m eg o ld h ató
M M M M Saját memória felad at. A fejezet későbbi részéb en tan ulm ányozunk egy olyan m ultiszám ítógépet,
am ely 50000-nél is tö b b C P U -t tartalm az.
P P P P CPU P CPU így m ost egy dilem m a elő tt állunk: m ultiprocesszoros re n d szerek et n eh éz é p í­
I I J ten i, d e k önnyű p rogram ozni, míg m ultiszám ítőgépeket könnyű építeni, de n ehéz
M - P - - P - - p -
p ro g ram o zn i. E z a m egfigyelés ahh o z v ezetett, hogy nagy erőfeszítéssel olyan k e ­
M - P - Kommunikációs - P - M - p - Kommunikációs
v ert re n d sz e re k e t p ró b á lta k építeni, m elyek viszonylag könnyen m eg ép íth ető k , és
hálózat hálózat viszonylag könnyen p ro g ram o zh ato k . A m u n k a so rán rá jö tte k arra, hogy a közös
M - P - üzenetküldésre - P - M - p - üzenetküldésre m em ó ria m egvalósítása tö b b félek ép p en tö rté n h e t, persze ezek m indegyikének
,r van előnye és h átrán y a is. V alójában a p árh u zam o s arch itek tú ráv al kapcsolatos
M - P - P M — p —
r k u ta tá so k n ap jain k b an azt célozzák, hogy a m ultiprocesszoros és a m u ltiszám í­
P P P P p p p p tó g ép es szem léletet közelítsék egym áshoz, létrehozva egy köztes, kevert form át,
am ely ötvözi m in d k ét alap típ u s előnyeit. A célkitűzés az, hogy olyan re n d szerfel­
M M M M é p ítés valósuljon m eg, am ely skálázható, azaz a C P U -k hozzáadásával a teljesít­
m ény a m egfelelő arán y b an növekedjen.
(a) (b) A hibrid ren d szerek é p ítésén ek egyik m egközelítése azon a tényen alapszik,
hogy a m o d ern szám ítógépes ren d szerek nem m onolitikusak, han em réteg ek b ő l
8.18. ábra. (a) Egy multiszámítógép 16CPU-val, mindegyiknek saját memóriája van. állnak - könyvünk é p p e n ezt tárgyalja. E z m egnyitja a le h ető ség et arra, hogy a k ö ­
(b) A 8.17. ábra bittérképe a 16 mem ória között szétosztva zös m em ó riát több réteg valam elyikében m egvalósíthassuk, ahogyan a 8.19. áb rán
602 8, P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ü R A
8.3. K Ö Z Ö S M E M Ó R IÁ S M U L T IP R O C ES SZ O R O K 603

láth ató . A 8.19. (a) á b rán egy h ard v eres közös m em ó ria m egvalósítása láth ató ; ra vo natkozik, ak k o r az o p erációs ren d szer aktivizálódik. A z o p erációs ren d szer
ez egy igazi m ultip ro cesszo ro s ren d szer. E b b e n a fe lép ítésb en egyetlen o p eráció s m eg k eresi a lapot, m egkéri az azt pillanatnyilag b irto k ló C P U -t, hogy válassza le
ren d szer van egyetlen táb lázath alm azzal, k ö z ö ttü k a m em ó riafo g laltság i táblával. a la p o t a virtuális m em ó riájáró l és küldje el az összekötő hálózaton. M egérkezés
A m ik o r egy folyam atn ak m e m ó riára van szüksége, szól az o p eráció s ren d szern ek , u tá n a C P U a lap o t m agához kapcsolja, és a laphiányt kiváltó utasítást újraindítja.
am ely a foglaltsági táb la alap ján k e re s egy szabad m em ó ria la p o t, m ajd ezt a lap o t V alójában annyi tö rtén ik , hogy az o p erációs ren d szer a lapozási hiányt távoli m e ­
ho zzáren d eli a hívó c ím terü letéh ez. A m i az o p eráció s re n d sz e rt illeti, egyetlen m ó riáb ó l elégíti ki, nem pedig lem ezről. A felhasználó szám ára a gép úgy néz ki,
m em ó riája van, és szoftverrel folyam atosan nyom on követi, hogy e n n ek m elyik m in th a közös m em ó riája lenne. A D SM vizsgálatára k ésőbb visszatérünk.
lapját melyik folyam at b irto k o lja. T ö b b féle m ó d van a h ard v eres közös m em ó ria A h arm ad ik lehetőség a közös m em ória felhasználói szintű (esetleg nyelvfüggő)
m egvalósítására, ahogy k ésőbb látni fogjuk. m egvalósítása. E b b en a m egközelítésben a program ozási nyelv bizonyos közös m e ­
A m ásodik m egközelítés m u ltiszám ító g ép h ard v ert alkalm az, és ólyan o p eráció s m óriás ab sztrakciókat kínál fel, m elyet aztán a fo rd ító és a fu tta tó ren d szer valósít
ren d szerrel rend elk ezik , am elyik szim ulálja a közös m e m ó riát úgy, hogy egy la p o ­ m eg. P éld áu l a L inda m odell a közös adategységtér (ad atm ező k et tartalm azó re ­
z o tt közös virtuális c ím tarto m án y t kezel. E n n é l a m egkö zelítésn él, am ely et DSM - k o rd o k ) absztrakcióján alapszik. B árm ely gépen futó folyam at b e k é rh e t adategysé­
n ek (D istributed Shared Memory, (el)osztott közös m em ória) (Li és H u d ak , g ek et a közös adategységtérből, vagy írh at oda adategységeket. M ivel a közös a d a t­
1989) neveznek, m indegyik lap a 8.18. (a) á b ra m e m ó riáin ak valam elyikén van. egységtér elérésén ek irányítása szoftveres (a L inda fu tta tó rendszere végzi), sem ­
M inden egyes g é p n ek saját virtuális m em ó riá ja és saját lap tá b lája van. A m ik o r egy m ilyen speciális hardver- vagy o p eráció sren d szer-tám o g atás nem szükséges hozzá.
C P U egy olyan LOAD vagy STORE u ta sítá st h ajt végre, am ely egy m ásik C P U lapjá- A közös m em ó ria nyelvfüggő fu tta tó ren d szer általi m egvalósításának egy m á ­
sik p éld ája a közös ad ato b je k tu m o k a t használó O rca m odell. A z O rcáb an a folya­
m a to k re k o rd o k helyett általános o b jek tu m o k at o sztan ak m eg egym ással, és ezek
l.gép 2. gép l.gép 2. gép l.gép 2. gép
m e tó d u sa it is fu ttath atják . H a egy m etó d u s m egváltoztatja egy objektum belső
á lla p o tá t, ak k o r a fu tta tó ren d szer felad ata, hogy az összes g épen az objektum
összes m á so latát egyidejűleg frissítse. M ivel az o b jek tu m o k kizárólag szoftveres
Alkalmazás Alkalmazás Alkalmazás Alkalmazás Alkalmazás Alkalmazás
absztrakciók, e z ért m egvalósításukat a fu tta tó ren d szer végzi a h ard v er és az o p e ­
rációs re n d szer tám o g atása nélkül. K ésőbb foglalkozunk m ég a L inda- és az O rc a ­
re n d sz e rre l ebb en a fejezetben.

Nyelvi Nyelvi Nyelvi Nyelvi Nyelvi Nyelvi


futtató futtató futtató futtató futtató futtató
rendszer rendszer rendszer rendszer rendszer rendszer Párhuzamos szám ítógépek osztályozása

T é rjü n k m o st vissza a fejezet fő tém ájáh o z, a p árh u zam o s szám ítógépek a rch itek ­
tú rájáh o z. A z évek során szám os k ü lönböző p árh u zam o s szám ítógépet terv eztek
Operációs Operációs Operációs Operációs Operációs Operációs és ép íte tte k , így term ész etes igényként m erül fel, hogy valam ik ép p en ren d szerb e
rendszer rendszer rendszer rendszer rendszer rendszer
so ro lju k őket. Sok k u ta tó p ró b álk o zo tt m ár ezzel a felad attal, m eg leh ető sen v e­
gyes ered m én n y el (Flynn, 1972; T releaven, 1985). Sajnos a p árh u zam o s szám ító ­
g ép ek C aro lu s L innaeusa* m ég nem b u k k an t fel. A z egyetlen gyakran használt
sém a a F lynn-féle ren d szer, és b ár ez a legjobb, m égis csak nagyon kezdetleges
Hardver Hardver Hardver Hardver Hardver Hardver m eg k ö zelítést ad. A 8.20. áb rán ez láth ató .
F lynn osztályozása k ét fo g alo m ra épül, ezek az u tasításáram és az ad atá ram . Az
u ta sítá sá ra m a p ro g ram szám láló n ak (u tasításszám láló n ak ) felel m eg. Egy ti d arab
C P U -val ren d elk ező ren d szern ek n d arab program szám lálója, és így n d arab u ta ­
sításáram a van.
Közös memória Közös memória Közös memória

(a) (b) (0
* ( 1 7 0 7 - 1 7 7 8 ) s v é d b io ló g u s , a k i k ita lá lta a z t a m a is h a s z n á la to s r e n d s z e r t, m e ly a z á lla to ­
k a t é s n ö v é n y e k e t tö r z s e k b e , o s z tá ly o k b a , r e n d e k b e , n e m z e ts é g e k b e é s f a jo k b a s o ro lja .
8.19. ábra. A közös memória megvalósításainak különböző szintjei, (a) Hardverszint,
(b) Operációs rendszerszintje, (c) Nyelvi futtató rendszerszintje
604 8, P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ú R A
8.3. K Ö Z Ö S M E M Ó R IÁ S M U L T IP R O C ES SZ O R O K 605

A M IS D g ép ek k ateg ó riája bizonyos te k in te tb e n furcsa, m inthogy erre az a je l­


Utasításáram Adatáram Elnevezés Példák
lem ző, hogy tö b b utasítás dolgozik ugyanazon ad atrészen . N em teljesen világos,
1 SISD Klasszikus Neumann-féle gép
hogy egyáltalán létezik-e ilyen gép, b ár egyesek a csővezetékes g ép ek et M IS D gé­
Többszörös SIMD Vektor szuperszámítógép, tömbprocesszor
p e k n e k tekintik.
Többszörös MISD Létezése vitatható
V égül az utolsó cso p o rt a M IM D gép ek csoportja. A M IM D több független
Többszörös Többszörös MIMD Multiprocesszor, multiszámítógép
C P U egysége, ezek a C P U -k egy nagy ren d szer részeik én t m ű ködnek. A legtöbb
8.20. ábra. Párhuzamos számítógépek Flynn-féle osztályozása p árh u z a m o s szám ítógép ebbe a k a te g ó riáb a tartozik. M ind a m ultiprocesszorok,
m ind a m u ltiszám ító g ép ek M IM D gépek.
Egy a d atá ram egy o p e ran d u sh alm azb ó l áll. A m á r k o rá b b an lá to tt h ő m é rsé k ­ F lynn ren d szerezése itt m egáll, de m i k iterjesztettü k azt a 8.21. áb rán láth ató
let-kiszám ítási p é ld áb a n tö b b a d a tá ra m is van, m in d en é rz ék elő h ö z egy. m ó d o n . A S IM D cso p o rto t k é t részcso p o rtra osztottuk. A z egyik részcso p o rtb a a
A z utasítás- és a d a tá ra m o k bizonyos m érték ig fü g g etlen ek egym ástól, e zért n u m erik u s szuperszám ítógépek és m ás olyan gép ek tarto zn ak , m elyek vektorokkal
ahogyan a 8.20. áb rán lá th a tó , négy k o m b in áció létezik. A SISD a klasszikus, szek­ do lg o zn ak úgy, hogy azonos m ű v eletet v égeznek m in d en v ek to relem en . A m áso ­
venciális N eu m an n -féle szám ítógép. Egy u ta sítá sá ra m a és egy a d a tá ra m a van, dik részcso p o rtb a olyan p árh u zam o s jellegű gép ek tarto zn ak , m in t az IL L IA C IV
egyszerre egy m ű v ele te t végez el. A S IM D g ép ek egyetlen vezérlőegységgel re n ­ am elyben egy fő vezérlőegység adja ki az u tasításo k at tö b b független A L U -nak.
delkeznek, am ely egyszerre egy u ta sítá st ad ki, de tö b b A L U -ju k van, am elyek a A m i ren d szerü n k b en a M IM D k é t részre van osztva, ezek a m ultip ro cesszo ro k
k ia d o tt u tasítást tö b b ad ath a lm a zo n p á rh u z a m o sa n végzik el. A z IL L IA C IV (lásd (közös m em ó riájú gépek) és a m u ltiszám ító g ép ek (ü z e n etátad áso s gépek). H áro m
2.7. á b ra) a S IM D g é p ek m in tap éld án y a. E gyre ritk á b b a k a S IM D nagygépek, de m u ltip ro cesszo r típus van aszerint, hogy a közös m em ó riát hogyan valósítják meg:
a hagyom ányos szám ító g ép ek n ek n é h a v an n ak S IM D -u ta sítá sa ik audiovizuális UMA (Uniform Memory A ccess, egységes m em óriaelérés), NUM A (NonUniform
anyagok feldolgozására. A P en tiu m SSE u tasítá so k S IM D -k . M in d azo n által van Memory Access, nem egységes m em óriaelérés) és COMA (Cache Only Memory
egy új terü let, ahol a S IM D -te rü le t ö tle te i fontosak: a stream - (a d a tá ra m -) p ro ­ Access, gyorsítótáras m em óriaelérés). E n n e k a cso p o rtb o n tásn ak az az oka, hogy
cesszorok. E zek e t a g ép e k e t m u ltim éd ia-an y ag o k lejátszására tervezik, és m ég a nagy m u ltip ro cesszo ro k b an a m em ó ria re n d szerin t tö b b m o d u lra osztott. Az
fo n to s szerephez ju th a tn a k a jö v ő b en (K apasi és társai, 2003). U M A tu lajd onsága, hogy m indegyik C P U m indegyik m e m ó riam o d u lt azonos idő
a la tt éri el. M ás szóval, m in d en m em ó riaszó t azonos gyorsasággal tu d olvasni, füg­
g etlen ü l attó l, hogy m elyik m o d u lb an van. H a e n n e k a m egvalósítása technikailag
leh e te tle n , a k k o r a leggyorsabb hivatkozásokat annyira lelassítják, hogy azonosak
legyenek a leglassabbakkal, és így a p ro g ram o zó k nem érzék eln ek k ö zö ttü k sem ­
mi k ü lö n b séget. E zt je le n ti itt az „egységes” jelző. E z az egységesség k iszám íth ató ­
vá teszi a fo lyam atokat, am i fo n to s tényező a h atékony kó d írásánál.
SISD SIMD MISD MIMD E zzel szem ben a N U M A típusú m u ltip ro cesszo ro k n em ren d elk ezn ek ezzel
a tulajd o n sággal. R en d szerin t m indegyik C P U -h o z közel van egy-egy m e m ó ria ­
/ \
(Neumann 7
János) m odul, így e n n ek elérése sokkal gyorsabb, m in t a távoli m oduloké. E m iatt a h a ­
Vektor­ Tömb- Multi­ tékonyság szem p o n tjáb ó l lényeges, hogy a kó d és az a d a t hol helyezkedik el. A
processzor processzor processzorok C O M A g ép ek sem egységesek, de m ásk ép p en . A k ésőbbiekben részletesen tá r­
gyalunk m in d en típ u st és azok alcso p o rtjait is.
A M IM D gép ek m ásik fő cso p o rtja a m ultiszám ítógépek csoportja, am elyek a
m u ltip ro cesszorokkal e llen tétb en n em ren d elk ezn ek arch itek tu rális szinten első d ­
leges közös m em óriával. M ás szóval, egy m u ltiszám ítógép egyik C P U -ján m ű k ö ­
d ő o p eráció s ren d szer nem é rh e ti el egy m ásik C P U m em ó riáját egy LOAD u ta sí­
tás végrehajtásával. E l kell k ü ldenie egy ü zen etet, és m eg kell várn ia a választ. A
m u ltip ro cesszo ro k at é p p en az k ü lö n b ö zteti m eg a m u ltiszám ítógépektől, hogy az
o p e ráció s ren d szerü k képes egy egyszerű LOAD u tasítás végrehajtásával beolvasni
Közös memória
egy tetszőleges szót. M int k o ráb b an m ár m egjegyeztük, jó lle h e t egy m u ltiszám ító ­
Üzenetküldés
g ép en a felh asználói p ro g ram o k k ép esek le h e tn e k LOAD és STORE utasításo k alkal­
8.21. ábra. A párhuzam os számítógépek osztályozása m azásával távoli m em ó ria elérésére, de ez csak látszólagos tulajdonságuk, am elyet
az o p eráció s ren d szer tám o g at, nem pedig a hardver. E z a különbség ugyan nem
606 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A
8.3. K Ö Z Ö S M E M Ó R IÁ S M U L T IP R O C ES SZ O R O K 607

tű n ik nagynak, de nagyon lényeges. M ivel a m u ltiszám ító g ép e k n ek nincs kö zv et­ Szigorú konzisztencia
len hozzáférésü k a távoli m em ó riák h o z, e z é rt ez ek et n é h a NORM A (NO Remote
Memory Access, távoli m em ória elérése nélküli) g ép e k n e k hívják. A szigorú konzisztencia a legegyszerűbb m odell. Ez a m odell tetszőleges x hely
A m u ltiszám ító g ep ek durván k ét cso p o rtb a so ro lh ató k . A z első cso p o rt ta rta l­ o lvasása e setén , m indig a leg u to lsó k én t x-be írt é rté k e t adja vissza. A p ro g ra m o ­
m azza az M P P -ket (M assively Parallel P rocessors, erősen párhuzam os processzo­ zók szeretik ezt a m odellt, de e n n e k m egvalósítása szinte le h etetlen m ásként, m int
rok), az igen d rág a szu p erszám ító g ép ek et, am elyekben a nagyszám ú C P U k ö z ö t­ egyetlen olyan m odullal, am ely egyszerűen érkezési so rren d b en szolgálja ki a k é ­
ti szoros k apcso lato t a gyártó által k ifejlesztett nagy sebességű ö sszek ö tő háló zat rése k e t, b árm iféle g yorsítótárazás vagy ad attö b b szö rö zés nélkül. M ivel ez a m eg­
biztosítja. A k eresk ed elm i fo rg alo m b a n k a p h a tó IBM SP/3 egy jó l ism ert péld a. v alósítás olyan m em ó riát eredm ényez, am ely egy h atalm as ú tszű k ü leth ez hasonló,
A m ásik csopo rt tartalm azza a szokásos PC -kből vagy m unkaállo m áso k b ó l álló, e z é rt sajnos ez a m odell n em leh et kom oly jelölt.
esetleg egy közös szekrényben elhelyezett és a k e resk ed elem b en ' k a p h ató össze-
kötési technológ iát alkalm azó h áló za to k at. E lm életileg a k ét cso p o rt k ö zö tt nincs
nagy különbség, de a sokm illió d o llárb a k erü lő szu p erszám ító g ép ek et m ás fela d a ­ Soros konzisztencia
to k ra használják, m in t a felhasználó által az M PP-k á rá n a k tö red é k é b ő l összeállí­
to tt P C -hálózato k at. E zek n ek a házilag g y árto tt g ép ek n ek tö b b k ü lö n b ö ző nevük A soros konzisztencia m odell (L am p o rt, 1979) m ár egy fokkal jobb. A z alap g o n ­
van, ilyen a NOW (Network of W orkstations, m unkaállom ások hálózata) és a COW d o lata, hogy ha tö b b olvasási és írási k érés érkezik, ak k o r a h ard v er (n em d eterm i-
(Cluster of W orkstations, m unkaállom ások klasztere), vagy n é h a csak klaszter. n isztikusan) választ egy so rre n d e t, de m in d en C P U ugyanazt a so rre n d e t látja.
L ássuk egy p éld án keresztül, hogy m it je le n t ez. Tegyük fel, hogy az 1-es C P U a
100-as é rté k e t írja a z x szóba, 1 ns m úlva a 2-es C P U a 200-as é rté k e t írja a z x szó­
8.3.2. Memóriaszemantíka ba. M o st tegyük fel, hogy a m ásodik írás kiadása u tán (de leh et, hogy m ég a telje­
sítése e lő tt) 1 ns-m al k é t m ásik C P U , a 3-as és a 4-es a z x szót k étszer gyorsan egy­
B ár az összes m u ltip ro cesszo r egyetlen közös c ím tarto m án y t tá r a C P U -k elé, m ás u tá n olvassa, ahogy a 8.22. (a) áb rán lá th ató . A 8.22. (b ) -(d ) áb rák o n a h at
gyakran sok m em ó riam o d u l van jelen , am elyek m indegyike a fizikai m e m ó ria b i­ esem ény (k ét írás és négy olvasás) h á ro m lehetséges so rren d je láth ató . A 8.22. (b)
zonyos részét tartalm azza. A C P U -k és a m em ó riák gyakran bony o lu lt összek ö tő szerin t a 3-as C P U (200, 200)-at kap, és a 4-es C P U is (200, 200). A 8.22. (c) sze­
h áló zattal van n ak összekapcsolva, m in t ahogy a 8.1.2 részb en ezt m á r láttu k . T ö b b rin t a 3-as C P U (100, 200)-at, a 4-es p ed ig (200, 200)-at kap. A 8.20. (d)-ben (100,
processzor k ísére lh e t m eg egy id ő b en kiolvasni egy szót a m em ó riáb ó l, m íg m ás 100)-at és ( 2 0 0 ,100)-at kapnak. E zek m ind b ek ö v etk ezh etn ek , m in t ahogy m ás le­
p rocesszorok m eg p ró b á lh atják írni u gyanazt a szót, ső t a k é relm ek m eg elő zh etik h ető ség e k is vannak, am elyeket az á b ra n em m u tat.
egym ást m e n e t k özben, és a b eérk ezési so rre n d e lté rh e t a k éré se k k iad ásán ak so r­ Sem m ilyen körülm ények között n em fo rd u lh at elő azonban - és ez a soros k o n ­
ren d jétő l. R á ad á su l a m e m ó ria bizonyos b lo k k jain ak tö b b szö rö s je le n lé te (p é ld á ­ zisztencia lényege - , hogy a 3-as C P U (100, 200)-at olvasson ki, m íg a 4-es C P U
ul g y o rsító tárak b an ) könnyen káo szh o z v ezeth et, h acsak n e m lé p te tn e k érvénybe (2 0 0 ,100)-at olvas. E n n e k előfordulása azt jelen ten é, hogy a 3-as C P U szerint a 100
szigorú ren d szab ály o k at ezek e lk erü lésére. E b b e n a részb en m egnézzük, hogy m it
je le n t valójában a közös m e m ó ria és a m e m ó riá k hogyan tu d n a k e n n ek a fe la d a t­
CPU
n ak m egfelelni. W100 WlOO W200
A z egyik értelm ezése szerin t a m e m ó riaszem an tik a egy szerző d és a szoftver és W200 R3 = 100 R4 = 200
a fizikai m em ó ria k ö z ö tt (A dve és H ill, 1990). H a a szoftver elfogadja, hogy b izo ­
R3 = 200 W200 W100
nyos szabályokat b e ta rt, a k k o r a m em ó ria vállalja, hogy á ta d bizonyos e re d m é ­
nyeket. M ost azt kell m egnézni, hogy m ik ezek a szabályok. A z ilyen szabályokat R3 = 200 R4 = 200 R3 = 100

konzisztenciam odelleknek hívják, am elyekből sok félét jav aso ltak és v aló síto ttak R4 = 200 R3 = 200 R4= 100
m ár meg.
R4 = 200 R4 = 200 R3 = 100
A következő p é ld a m egvilágítja a p ro b lém á t. Tegyük fel, hogy a 0-s C P U 1-et ír
egy bizonyos m em ó riaszó b a, m ajd egy kicsivel k éső b b az 1-es C P U 2-est ír ugya­
n ab b a a szóba. M ost a 2-es C P U olvassa a szót, és 1-et k ap ered m én y ü l. Vajon a
tu lajd o n o sn ak ek k o r a szám ító g ép ét m eg k ellen e ja v íttatn i egy szervizben? E z a t­ (a) (b) (0 (d)
tól függ, hogy a m em ó ria m it vállalt fel (m i áll a szerző d ésb en ).
8.22. ábra. (a) Egy közös memóriaszót két CPU ír és két CPU olvas. (bh(d) Három lehetséges mód
a két írás és négy olvasás időbeli összefésülődésére
608 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8.3. K ö z ö s M E M Ó R IÁ S M U L T IP R O C ES SZ O R O K 609

írása az 1-es C P U által b efejező d ö tt, m ielő tt a 2-es C P U b e írta volna a 200-at. Ez Gyenge konzisztencia
ren d b en is van. D e ez azt is je le n te n é a 4-es C P U szerint, hogy a 200 b eírása a 2-es
C P U által befejező d ö tt, m ielő tt a 100-at b eírta volna az 1-es C P U . M agában ez az A következő m odell a gyenge konzisztencia, ez m ég azt sem garantálja, hogy egyet­
eredm ény is lehetséges. A p ro b lém a o tt van, hogy a soros konziszteneia garantálja, len C P U -b ó l kezdem ényezett írások so rren d b en legyenek láth ató k (D ubois és tá r­
hogy van egy m inden C P U szám ára láth ató globális so rren d je a b eírásoknak. H a a sai, 1986). Egy gyenge konzisztenciájú m em ó riáb an az egyik C P U az 1A-t az 1B előtt
3-as C P U a 100 b eírásá t látja elsőnek, ak k o r a 4-es C P U -n ak ugyanezt kell látnia. láthatja, míg egy m ásik C P U az lA-t az 1B u tán láthatja. A zo n b an hogy a káoszba
A n n a k ellen ére, hogy a soros konzisztencia nem olyan m erev en szabályozott, egy kis re n d e t vigyünk, a gyenge konzisztens m em óriák szinkronizációs változókkal
m int a szigorú konzisztencia, m égis nagyon h aszn álh ató m odell. E z gyakorlatilag vagy egy szinkronizációs m űvelettel rendelkeznek. E gy szinkronizáció vég reh ajtása­
azt m ondja, hogy am ik o r egym ás m e lle tt sok esem ény tö rtén ik , a k k o r egyetlen k o r m in d en függőben levő írás befejeződik, és újak nem kezd ő d n ek el addig, am íg
elő fo rd u lási so rre n d jü k van, am elyet valószínűleg az időzítés és a v életlen alakít az összes k orábbi kész nincs, és m aga a szinkronizáció is m egtörténik. V alójában
ki, de az összes p ro cesszo r ugyanazt a so rre n d e t érzékeli. B ár ez a k ijelen tés te r­ egy szinkronizáció „kitisztítja a csővezetéket”, és a m em ó riát függőben levő m űve­
m észetesn ek tűnik, a to v áb b iak b an olyan k o n ziszten ciam o d ellek rő l lesz szó, m e ­ letek nélküli stabil állap o tb a hozza. A szinkronizációs m űveletek ö nm agukban so­
lyek m ég ennyit sem g aran táln ak . rosan konzisztensek, azaz am ikor több C P U kezdem ényez ilyet, akkor egy bizonyos
so rre n d kiválasztásra kerül, és az összes C P U ugyanazt a so rren d et látja.
A gyenge konzisztenciában a (soros konzisztenciájú) szinkronizációk az id ő t jól
Processzorkonzisztencia m e g h a tá ro z o tt időszakokra tagolják; ezt illusztrálja a 8.23. ábra. Sem m ilyen so r­
re n d n em g a ra n tá lt az 1A és 1B között, és a külö n b ö ző C P U -k a k é t írást m ás-m ás
A processzorkonzisztencia (G o o d m a n , 1989) egy gyengébb k o n zisztenciam odell, so rre n d b e n láth atják , vagyis az egyik C P U először látja az lA-t és u tá n a az IB-t,
de könny ebb m egvalósítani nagy m u ltip ro cesszo ro k o n . K ét tu lajd o n ság a van: m íg egy m ásik C P U először az 1 B-t és u tá n a az 1A-t. E z a szituáció m eg en g ed ett.
A zo n b an , m in d en C P U az iB-t csak az IC e lő tt láth atja, m e rt az első szinkronizáci­
1. B árm elyik C P U írásai az összes tö b b i C P U szám ára a kiad ás so rre n d jé b e n lá t­ ós m ű v elet kikényszeríti az 1A, 1B és 2A íráso k befejezését, m ielő tt m eg en g ed n é az
hatók. IC, 2B, 3A vagy 3B elkezdését. Ily m ó d o n a szinkronizációs m űveletek alk alm azá­
2. M indegyik m em ó riaszó ra teljesül, hogy a b e íráso k a t m in d en p ro cesszo r ugyan­ sával a szoftver az esem ények bizonyos so rre n d jé t kikényszerítheti, b á r e n n ek van
abb an a so rre n d b e n érzékeli. valam ennyi költsége, m e rt a m em ó ria-cspvezeték k iü rítéséh ez idő kell.

M in d k ét tu lajdon ság fontos. A z első szerint, h a az 1-es C P U íráso k a t k e zd e m é ­ írás


nyez az 1A, 1B és IC érték ek k e l eb b en a so rre n d b en valam elyik m em ó riarek eszb e,
ak k o r az összes tö bbi p ro cesszo r u gyanezt a s o rre n d e t látja. M ás szóval, ha egy / / \
CPU A 1A 1B K ID TE F
m ásik pro cesszor gyors eg y m ásu tán b an tö b b szö r olvas u g yanabból a rekeszből,
ak k o r az 1A, 1B és IC é rté k e k e t k ap ja ilyen so rren d b e n , és nem láth a tja az 1B u tán CPU B 2A 28 2C 2D
az lA-t és így tovább. A m áso d ik tu lajd o n ság ra a z é rt van szükség, hogy m in d en
m em ó riaszó n ak legyen egy h a tá ro z o tt é rté k e , m iu tán tö b b C P U írja azt. Vagyis CPUC 3A 38 3C
egyet kell é rte n iü k a b b an , hogy ki volt az utolsó.
M ég ezekkel az előírásokkal is nagy szabadsága van a tervezőnek. N ézzük meg,
hogy mi történik, ha a 2-es C P U kiadja a 2A, 2B és 2C írásokat párh u zam o san az 1-es
Szinl<ronizációs pont
C PU h árom írásával. A m em ó riát folyam atosan olvasó m ás C P U -k egy-egy ad atsort
észlelnek, m int például 1A, 1B, 2A, 2B, IC, 2C, vagy 2A, 1A, 2B, 2C, 1B, IC vagy valami Idö-
m ást. A processzorkonzisztencia nem garantálja, hogy mindegyik C PU ugyanazt a
so rren d et látja (nem úgy, m int a soros konzisztencia, am ely biztosítja ezt). Ily m ódon 8.23. ábra. Gyengén konzisztens memóriánál az idő szekvenciális szakaszokra tagolása
teljesen elfogadható az, hogy néhány C P U a fent em lített első so rren d et látja, néhány szinkronizációs műveletekkel
a m ásodikat, és m egint m ások ezektől eltérőt. A m it ez a m odell g aran tál az az, hogy
egyetlen C P U sem láth at olyan so rren d et, am elyben az 1B az 1A elé kerül stb. Az
egyes C PU -k által kezdem ényezett írások sorrendje m indenhol ugyanannak látszik.
É rd em e s m egjegyezni, hogy bizonyos szerzők m áshogy értelm ezik a p ro cesszo r­
konzisztenciát, és n em k ö vetelik m eg a m ásodik feltételt.
610 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A 8.3. K ö z ö s M E M Ó R IÁ S M U L T IP R O C ES SZ O R O K 611

E le n g e d é s i k o n ziszten cia

A gyenge konziszten cia azzal a pro b lém áv al küzd, hogy n em elég h atékony, m ert
az összes függőben levő m em ó riam ű v eletet be kell fejezni, és az ü jak at az ép p en
m ű k ödők b efejeztéig k ésleltetn i kell. A z elengedési konzisztencia ezt a p ro b lé ­
m át igyekszik elk erü ln i úgy, hogy a k ritik u s szekciókhoz h aso n ló m o d ellt alkalm az
((jh a ra c h o rlo o és társai, 1990). E m o d ell mögcUti elg o n d o lás az, hogy am ik o r egy
folyam at elhagy egy kritikus szekciót, ak k o r nem szükséges az összes írás b e fe je zé ­
sének azonnali kikényszerítése. A zt kell csak biztosítani, hogy az összes írás befe-
je /n d jö n m ielőtt b árm ely folyam at u gyanebbe a kritikus szekcióba b elép n e. 8.24. ábra. Három sinalapú multiprocesszor, (a) Gyorsítótár nélkül, (bj Gyorsítótárral.
H bben a m o d ellb en a gyenge konziszten cia szinkronizáciös m űvelete k e tté van (c) Gyorsítótárral és saját memóriákkal
bontva. Egy m eg o szto tt változó o lvasásának vagy írásán ak m eg k ezd ése e lő tt a
C P U -n ak (vagyis a szo ftv erén ek ) elő szö r egy a c q u ir e m ű v eletet kell v ég reh ajtan i a m á r elv iselh etetlen. A re n d sz e rt teljesen korlátozza a sín sávszélessége, és a leg­
szinkronizáciös v áltozón, hogy k izárólagos h o zzáférése legyen a m eg o szto tt a d a ­ tö b b C P U az idő legnagyobb részéb en áll.
tokhoz. E zt követő en a C P U tetszése szerin t olv ash atja és írh a tja azt. M ik o r e lk é­ E n n e k a p ro b lé m á n a k a m eg o ld ásak én t m indegyik C P U -h o z egy gyo rsító tárat
szült, a C P U vég reh ajt egy re le a s e m ű v e le te t a szinkronizáciös v áltozón, hogy je le z ­ kapcsolnak, ahogy a 8.24. (b) á b ra m u tatja. L e h e t a g yorsítótár a C P U lapka b e l­
ze, készen van. A re le a s e nem kényszeríti ki a függőben levő írások befejezését, de sejében, vagy a C P U lapka m ellett, vagy az alap lap o n , vagy ezek közül tö b b helyen
ő m aga nem fejező d ik be addig, am íg az összes k o ráb b an k ezd em én y ezett írás be is. M ivel sok olvasás a helyi gyorsítótárbó l kielégíthető, ezért a sín forgalm a je le n ­
nem fejeződik. R áad ásu l új m e m ó riam ű v eletek azonnal in d u lh atn ak . tősen lecsökken, és így a ren d szer tö b b C P U tá m o g atására képes. A gyorsítótár
A következő a c q u ir e k iad ásak o r egy ellen ő rzés h a jtó d ik végre, am ely m egnézi, so k at je le n t ebb en a helyzetben.
hogy az összes ko ráb b i r e le a s e b efejező d ö tt-e. H a nem , ak k o r az a c q u ir e e zek m in d ­ A 8.24. (c) áb rán egy m ásik m egoldási leh ető ség m odellje látható, ebb en a
egyikének befejeztéig (és így az összes írás elvégzéséig, mivel ezek m egelőzik a re- C P U -k n em csak egy-egy gyorsítótárral, h an em külön saját m em óriával is re n d e l­
le d s e - e k b efejeztél) felfü g g esztett h elyzetbe kerül. Ily m ó d o n , h a a k övetkező a c ­ keznek, am elyeket külön erre a célra szolgáló sínen k e re s /lü l érn ek el. A hhoz,
q u ire m egfelelő késéssel követi a legutolsó r e le a s e - t, ak k o r indulása elő tt n em kell hogy egy ilyen konfiguráció o ptim álisan ki legyen használva, a fo rd ító p ro g ram n ak
várakoznia, és késlek ed és n élkül b e lé p h e t a kritik u s szekcióba. H a azo n b an egy re ­ m in d en p ro g ram k ó d o t, k ara k te rlá n c o t, k o n stan st és m ás, csak olvasható ad ato t,
le a s e - t követően túl h am a r fordul elő. a k k o r az a c q u ir e - n e k (és az összes ő t követő v erm et és lokális változót a C P U saját m em ó riájáb a kell elhelyeznie. így m ár csak
u tasításn ak ) várak o zn ia k e l l , am íg m in d en függőben levő r e le a s e be n em fejeződik, az írh a tó m eg o szto tt változók k erü ln ek a közös m em óriába. A legtöbb esetb en
biztosítva ezzel a kritikus szekciő összes válto zó ján ak frissítését. Ez a m odell v a ­ ezzel a go n d os elhelyezéssel nagyban lecsökken a sín forgalm a, azonban ilyenkor
lam ivel bonyolultabb, m int a gyenge konzisztencia, azo n b an nagy előnye, hogy a szükség van a fo rd ító aktív eg yüttm űködésére.
konzisztencia fen n ta rtá sa é rd e k éb e n n em olyan gyakori az u tasításo k késleltetése.
A m em őriakon ziszten cia n em lezá rt k é rd ésk ö r, a k u ta tó k m ég m indig jav aso l­
nak újabb m o d ellek et; lásd (C ain és L ipasti, 2004; H a m m o n d és társai, 2004). Szim atoló gyorsítótár

M íg a fenti, teljesítm énnyel kapcsolatos érvek term ész etesen igazak, közben egy
8.3.3. UMA sínrendszerű SMP-archítektúrák alap v e tő p ro b lém a fe lett átsiklottunk. T ételezzü k f e l hogy a m em ória sorosan
konzisztens. Mi tö rtén ik , am ikor az 1-es C P U a gy o rsító táráb an tárol egy sort,
A legegyszerűbb m u ltip ro cesszo ro k egyetlen sín t használnak, ahogy a 8.24. (a) m ajd ugyanebből a sorból a 2-es C P U egy szót p ró b ál olvasni? Speciális szabá­
áb rán láth ató . K ét vagy több C P U és egy vagy tö b b m em ó riam o d u l nnndegyike lyok hián y áb an u tóbbi is elhelyezhet egy m áso lato t a saját gyorsítótárában. Elvileg
u gyanazt a sínt h asználja a k o m m u n ik áció ra. M ik o r egy C P U ki ak ar olvasni egy ug y an an n ak a so rn ak k ét k ü lönböző gyorsító tárb an való m egjelenése elfogadható.
m em ó riaszó t, ak k o r elő szö r ellenőrzi, hogy a sín szabad-e. H a a sín szabad, ak k o r M ost tegyük fel, hogy az 1-es C P U m ódosítja a sort, és közvetlenül ezt követően a
a C P U a sző cím ét kiteszi a sínre, és b eállít néh án y v ezérlő jelet, m ajd addig vár, 2-es C P U a saját g y orsítótárából u gyanannak a so rn ak a m áso latát olvassa. E k k o r
am íg a m em ó ria a sínre rakja a k é rt szót. egy elavult adatot kap, am i sérti a szoftver és a m em ória közötti m egállapodást. A
H a a sín foglalt, am ik o r a C P U írni vagy olvasni ak arja a m em ó riát, a k k o r a sín 2-es C P U -n futó pro g ram n em fog örülni.
szab ad d á válásáig v árak o zn ia kell. Itt van a p ro b lém a ezzel a m odellel. K ét vagy E z a p ro b lém a az iro d alo m b an gyorsítótár-koherenciaként vagy gyorsítótár­
h áro m C P U eseté n a sín ért való v ersengés m ég k ezelh ető , de 32 vagy 64 C PU -val konzisztenciaként ism ert, és rendkívül súlyos. M egoldása nélkül nem h a szn álh at­
612 8. P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ú R A
8.3. Közös MEMÓRIÁS MULTIPROCESSZOROK 613

n án k gyo rsító tárak at, am i azt je le n te n é , hogy a sín ren d szerű m u ltip ro cesszo ro k A z írás érd ek eseb b . A m ik o r az 1-es C P U egy írást h ajt végre, ak k o r az 1-es
k é t vagy h áro m C P U -s re n d sz e re k re k o rláto z ó d n án a k . A sín ren d szerek fo n to s­ g y o rsító tár a sínen írási k érést g en erál, m ind hiány, m ind ta lá la t esetéb en . M inden
sága k ö v etk eztéb en az évek so rán sokféle m eg o ld ással p ró b álk o ztak ; lásd p éldául írásk o r a 2-es g yorsítótár ellenőrzi, hogy az íran d ó szó n ála van-e. H a nincs, akkor
(G o o d m an , 1983; P ap am a ro s és P atel, 1984). B ár ezek a g y orsítótár-algoritm usok, az ő szem p o n tjából ez egy távoli kcres/rráshiány, és n em csinál sem m it. (E gy fo n ­
am elyeket gyorsítótár-koherencia protokolloknak hívnak, részleteik b en eltérn ek tos részlet m egvilágításához m egjegyezzük, hogy a 8.25. áb rán szereplő távoli hi­
egym ástól, azon b an m indegyikük m eggátolja, hogy u g y an an n ak a so rn ak eltérd ány azt jelen ti, hogy a szó nincs a szim atoló gyorsító tárb an ; teljesen m indegy, hogy
v álto zatai legyenek k é t vagy tö b b gyo rsító tárb an . az ak ció t in d ító gyorsító tárb an b en n e van-e, vagy nincs. így egyetlen k érés leh et
A z összes m eg o ld ásb an sp eciálisan te rv ez e tt g y o rsító tár-v ezérlő van, ennek helyben k ie lég íth ető találat, és a szim atoló szám ára hiány, vagy fordítva.)
m e g en g e d ett a sínen való hallgatódzás, felügyeli az összes C P U -b ó l és g yorsító­ M ost té te lezzü k fel, hogy az 1-es g yorsítótár egy olyan szót ír, am ely a 2-es gyor­
tá rb ó l jövő kérést, és bizonyos esete k b e n akcióba lép. E z e k et az eszk ö zö k et hívják sító tá rb a n van (távoli k érés/írástalálat). H a a 2-es g yorsítótár n em te n n e sem m it,
szim atoló gyorsítótáraknak, m ivel a sínt „szim atolják”. A gy o rsító tárak , a C P U -k a k k o r egy elavult a d a to t tá ro ln a a to v ábbiakban, e z ért m egjelöh a m ó d o síto tt szót
és a m em ó ria m ű k ö d é sé t m eg h a tá ro z ó szabályok, am elyek m egakadályozzák, ta rta lm az ó bejegyzést m int érvénytelent. V alójában eltávolítja a gyorsítótárból az
hogy tö b b g y o rsító tárb an az a d a to k k ü lö n b ö ző v álto zatai fo rd u lh a ssa n a k elő, érv én y telen sort. M ivel m indegyik g yorsítótár m in d en sín k érést kiszim atol, így va­
együ ttesen alk o tják a g y o rsító tá r-k o h e re n c ia p ro to k o llt. A g y o rsító tárak n ál az á t­ lahányszor egy szó írása tö rtén ik , ez előidézi az akciót indító gyorsító tárb an és a
vitel és a táro lás egységét gyorsítósom ak hívják, és álta láb an 32 vagy 64 bájtos. m e m ó riá b a n az a d a t frissítését, és az összes többi g y orsítótárból az a d a t eltáv o lítá­
A legegyszerűbb g y o rsító tá r-k o h e ren c ia p ro to k o ll az írásáteresztő. E z a leg­ sát. Ilyen m ó d o n m eg le h e t előzni az inkonzisztens v álto zato k m egjelenését.
jo b b a n a 8.25. á b rá n felso ro lt k ü lö n b ö ző négy eset áttek in té sé v e l é rth e tő meg. T erm észetesen a 2-es g yorsítótár C P U -ja ugyanezt a szót olvashatja a k ár a k ö ­
A m ik o r egy C P U olyan szót p ró b á l olvasni, am ely nincs a g y o rsító táráb an (o l­ v etk ező ciklusban. E z esetb en a 2-es g yorsítótár a szót a m em ó riáb ó l fogja olvasni,
vasáshiány), ak k o r a g y o rsító tár v ezérlő je b etö lti a k ívánt szót ta rta lm az ó so rt a am ely frissített. E k k o r az 1-es gyorsítótár, a 2-es g y o rsító tár és a m em ó ria az ad at
gyorsítótárába. A so r a m em ó riáb ó l k e rü l kiolvasásra, am ely e p ro to k o ll szerint azo n o s m ásolataival ren d elk ezn ek . H a m ost az egyik C P U vég reh ajt egy írást, ak ­
m indig érvényes a d a to t táro l. A z ezt k ö v ető olvasások (o lv asástalálat) m á r a gyor­ k o r a m ásik nak a gyo rsítótárából ez az a d a t törlődik, és a m em ó ria frissítődik.
sító tárb ó l kielégíth ető k . E n n e k a p ro to k o lln ak többféle v álto zata lehetséges. P éld áu l egy írás ta lá la tk o r
Egy íráshiány je le n tk e z é se k o r a m ó d o síto tt szó a m e m ó riá b a íródik. A szót ta r­ a szim atoló g y o rsító tár általáb an érvényteleníti az írt szót ta rtalm azó bejegyzését.
talm azó sor n em tö ltő d ik be a g y o rsító tárb a. Egy írá stalá la tk o r a g y o rsító tár frissí­ Egy m ásik leh ető ség az, hogy elfogadja az új érté k e t, és frissíti m agát, ahelyett
tésre k erül, és a m e m ó riá b a n a szó is átíró d ik . E n n e k a p ro to k o lln a k az a lényege, hogy érv én y telen íten e. L ényegében a g y o rsító tár frissítése ugyanaz, m in th a az é r ­
hogy a szóra v o n atk o zó m in d e n írási m űvelet a m e m ó riá b a n is á tírá sra k erü l, és v én y telenítést egy m em ó riáb ó l való olvasás követné. A g y o rsító tár-p ro to k o llo k
így a m em ó ria m indig frissített ad ato k k a l rendelkezik. m indegyike vagy frissítő stratégiát, vagy érvénytelenítő stratégiát alkalm az. E zek
N ézzük m eg ú jra e z e k e t az akciókat, de m o st a szim atoló szem szögéből, am it a a p ro to k o llo k m ásk én t m ű k ö d n ek e lté rő terh elések n él. A frissítési ü zen etek a d a ­
8.25. á b ra jo b b oldali oszlo p a ta rtalm az. A z akció t v é g reh ajtó g y o rsító tár legyen to k a t is tarta lm azn ak , e z ért nagyobbak az érvénytelenítéseknél, de a későbbi gyor­
az 1-es, a szim atoló g y o rsító tár p ed ig a 2-es. A m ik o r az 1-es C P U -n ál olvasáshiány sító tárh ián y o k is m eg elő zh ető k velük.
lép fel, ak k o r egy sín k érést g en erál, am ivel a m em ó riáb ó l a so r b e h o z á sát kéri. A Egy m ásik változat szerint a szim atoló g yorsítótár betöU ése írás hiány e lő fo r­
2-es g yorsítótár látja ezt, de n em tesz sem m it. A m ik o r az 1-es g y o rsító tárn ál olva­ d u lásk o r tö rtén ik . E z a b e tö ltés az algoritm us helyességét n em befolyásolja, csak
sástalálat van, ak k o r az olvasás helyben k ielég íth ető , és nincs szükség sín k érésre, a teljesítm ényt. A k érd és a következő: „M i a valószínűsége an n ak , hogy az ép p en
így a 2-es g yorsító tár n e m szerez tu d o m á st az 1-es g y o rsító tár sikeres olvasásairól. írt szó egy rövid időn belül ism ét írva lesz?” H a e n n ek a valószínűsége nagy, akkor
é rd e m e s a g y o rsító tárat írási hiánykor feltö lten i, am it íráskori feltöités (írásal­
lokáció) m ódszereként ism ernek. D e h a a valószínűség kicsi, ak k o r nem é rd em es
Esemény Helyi kérés Távoli kérés
frissíteni írási hiánykor. H a a szó olvasására rövid id ő n belül sor k erül, ak k o r az
O lva sásh ián y B eh o zza a m e m ó riá b ó l az ad a to t.
olvasási h iány elő fo rd u lá sak o r m in d en k ép p en b e tö ltő d ik a gyorsítótárba; vagyis
O lva sásta lá lat Helyi gy o rsító tá rb a n lev ő a d a to t haszn álja.
kicsi a nyeresége az íráshiány során való b etö ltésn ek .
Iráshiány Frissíti a m em ó riá b a n az ad a to t.
M in t sok egyszerű m egoldás, ez sem kielégítő. U gyanis m in d en m em ó riáb a
É rvén ytelen íti a g y o rsító tá r­
(rástalálat Frissíti a gyo rsító tá ra t és a m em óriát. írás a sín en keresztül m egy végbe, így jele n tő se b b szám ú C P U esetén a sín szűk
b e je g y z é s t.
k eresztm e tszetté válik. A sín forgalm ának k e re te k közt ta rtá sá ra m ás gyorsító­
8.25. ábra. Az írásáteresztő gyorsítótár-koherencia protokoll. Az üres helyek aztjelentik, tá r p ro to k o llo k at g o n d o ltak ki. E zek közös tulajdonsága, hogy n em m in d en írás
hogy nincs tevékenység m egy át egyből a m em ó riáb a. E h ely ett am ik o r egy g yorsítótár so r m ódosul, akkor
a g y o rsító tár egy b it beállításával jelzi, hogy a sor frissített a gyo rsító tárb an , de a
614 8. P Á R H U Z A M O S SZ A M IT Ó G ÉP - A R C H IT EK T Ü R A 8.3. K ö z ö s M E M Ó R IÁ S M U L T IP R O C E S S Z O R Ö K 615

m em ó riáb an nem . V alam ikor m ajd az ilyen m egjelölt so rt vissza kell írni a m em ó ­
riába, de lehet, hogy csak tö b b írási m ű v elet v ég re h a jtá sá t k ö vető en . A z ilyen típ u ­ 1-es CPU olvassa
(a) az A blokkot
sú p ro to k o llo k at k ésleltetett írású protokolloknak hívják.

Gyorsítótár Sín
A M ESI gyorsítótár-koherencia protokoll

Egy n ép szerű k é sle lte te tt írású g y o rsító tár-k o h eren cia p ro to k o ll a M E S I, a nevét
az általa használt négy állap o t (M , E , S és I) k ezd ő b e tű i utáiT k a p ta (P ap am arco s 2-es CPU olvassa
(b) az A blokkot
és P atel, 1984). A lap jáu l a k o ráb b i egyszer író protokoll (G o o d m a n , 1983) szol­
gált. A P entium 4 és sok m ás C P U is h asználja a M E S I p ro to k o llt a sín v izsgálatá­
ra. M in d en gyorsítótár-bejegyzés a k ö v etk ező négy álla p o t valam elyikében van:
Sin

1. É rvénytelen (Invalid) - A gyorsítótár-bejeg^'zés nem tartalm az érvényes adatot.


2. M egosztott (S h ared ) - T ö b b g yorsítótár tarta lm a zh a tja a sort, a m em ó ria frissít­
CPU 1 CPU 2 CPU 3
ve van. 2-es CPU írja
(c) az A blokkot
3. K izárólagos (Exclusivc) - M ás gyorsítótár n em tartalm azza a sort, a m em ó ria
frissítve van.
4. M ó d o síto tt (M odified) - A bejegyzés érvényes; a m em ó ria nincs frissítve; m áso ­ [Megosztott

lato k nincsenek. Sín

A C P U in d u lá sa k o r a g y o rsító tár összes b ejegyzésének álla p o ta érv én y telen re


állítódik. A m em ó ria első o lv asásak o r a h iv atk o zo tt so r a m em ó riáb ó l kiolvasódik, 3-as CPU olvassa
(d )
és a C P U g y o rsító táráb a k erü l E (kizárólagos) állapotjelzéssel, mivel a bejegyzés­ az A blokkot
nek csak egy m áso lata van a g y o rsító tárb an , ezt illusztrálja a 8.26. (a) áb ra, m ik o r
az 1-es C P U olvassa az A sort. A k ö v etk ez ő olvasásoknál a C P U a g y o rsító tárrá-
nak a bejegyzését veszi, és n em haszn álja a sínt. Egy m ásik C P U szintén b e h o z h a t­ Sín
ja ugyanazt a sort, és a g y o rsító táráb a helyezheti, de a sín vizsgálatából az e re d e ti
(1-es C P U ) táro ló látja, hogy m á r n em egyedüli tá ro ló , és a sínen k eresztü l b e je ­
lenti, hogy szinten ren d elk ezik egy m áso lattal. E k k o r m in d k ét bejegyzett m ásolat 2-es CPU írja
(e) az A blokkot
álla p o ta S (m eg o szto tt) lesz, ezt m u ta tja a 8.26. (b) áb ra. Vagyis az S állap o t azt
jelen ti, hogy a so rt egy vagy tö b b g y o rsító tár is tá ro lja olvasáshoz, és a m em ó ria
aktualizálva van. Egy C P U olyan so rra v o n atk o zó k ö v etk ező olvasásai, am elyek
a g y o rsító táráb an S állap o ttal v an n ak bejegyezve, n em h aszn álják a sínt, és n em Sín
idéznek elő állapo tv álto zást.
G o n d o lju k át, mi tö rtén ik , am ik o r a 2-es C P U egy S állap o ttal jelz e tt gyorsító­
so rt ír. E k k o r kitesz egy é rv én y telen ítő jelzést a sínre, hogy tu d assa a tö b b i C P U - 1-es CPU írja
val, hogy do b ják ki saját p éld án y u k a t. A g y o rsító tárb an levő m áso lat e k k o r M-re (f) az A blokkot
(m ó d o síto tt) változik, ahogy ezt a 8.26. (c) á b ra m u tatja. A so r nem író d ik ki a m e­
m óriába. É rd em e s m egjegyezni, hogy sem m i kü lö n ö s n em tö rtén ik , ha az íro tt so r
állap o ta E volt, e k k o r ugyanis nincs szükség é rv én y telen ítő jelzés k iad ására, mivel Sín
ism ert, hogy nincs tö b b p éld án y a a sorn ak .
A következőben, nézzük m eg, m i tö rtén ik , m ikor a 3-as C P U olvassa a sort. A 8.26. ábra. A MESI gyorsítótár-koherencia protokoll
2-es C P U , am elyik m ost a so rt b irto k o lja, tudja, hogy a m em ó riá b a n levő péld án y
nem érvényes, e z ért kitesz egy je lzést a sínre, így tu d a tja a 3-as C PU -val, hogy vár-
616 8. P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ú R A 8.3. K ö z ö s M E M Ó R IÁ S M U L T IP R O C ES SZ O R O K 617

jó n , am íg a m em ó riáb a a so rt visszaírja. A m ik o r ez készen van, a 3-as C P U vesz csoló, ezt a 8.27. áb ra illusztrálja. A telefo n k ö zp o n to k évtizedek ó ta használnak
egy m áso lato t, és m in d k ét g y o rsító tárb an a so r m eg o szto tt jelzést kap, am in t a cro ssb ar k ap csolót bejövó és kim en ő v onalak cso p o rtjain ak tetszőleges m ód o n
8.26. (d) áb rán láth ató . E z u tán a 2-es C P U ism ét írja a sort, am i érvén y telen íti a való ö sszekapcsolására.
3-as C P U gy o rsító táráb an levő péld án y t, ahogy ezt a 8.26. (e) áb ra m u tatja. A vízszintes (bejövő) és a függőleges (kim en ő ) vonalak m etszéspontjai a talál­
V égül az 1-es C P U ír egy szót a sorba. A 2-es C P U látja ezt, e z é rt kiad egy je l­ kozópontok. A találk o zó p o n t egy kis kapcsoló, am ely leh et elek tro m o san nyitott
zést a sínen, hogy tu d assa az 1-es C P U -val, hogy várjo n , am íg a so rt visszaírja a vagy zárt, attó l függően, hogy a vízszintes és a függőleges v o n alak at össze sz e re t­
m em ó riáb a. M ikor ez készen van, a saját p é ld án y át é rv én y telen k én t jelö li m eg, n én k -e kapcsolni, vagy nem . A 8.27. (a) áb rán egyszerre h áro m zárt találk o zó ­
mivel tu d ja, hogy egy m ásik C P U a n n a k m ó d o sítá sá ra készül. E z egy olyan hely­ p o n t láth a tó , ez egyszerre a (001, 000), (101, 101) és az (110, 010) p á ro k közötti
zet, am elyben egy C P U egy g y o rsító tárb an n em tá ro lt so rt ír. A z írásallo k áló m ó d ­ (C P U , m em ó ria) kap cso lato t engedélyezi. Sok m ás k o m bináció lehetséges még.
szer esetén a sor b etö ltő d ik a g y o rsító tárb a, és az á llap o ta M lesz, am in t a 8.26. (f) V alójában a kom binációk szám a annyi, ahán y kü lö n b ö ző m ódon egy sakktáblán
áb ra m utatja. H a n em alk alm azzuk az írásallo k áló m ó d szert, ak k o r az írás a m e ­ nyolc b ásty át biztonságosan el leh et helyezni.
m ó riáb a tö rtén ik , és a so r egyik g y o rsító tárb an sem lesz tárolva. A cro ssb ar kapcsoló egyik legkellem esebb tulajdonsága, hogy nem blokkoló há­
lózat, am i azt jelen ti, hogy nincs olyan C P U , am elytől bizonyos találk o zó p o n to k
és v o n alak foglaltsága m ia tt egy neki szükséges ö sszek ö ttetés valaha is m eg lenne
Crossbar (keresztrudas) kapcsolót alkalm azó UMA-m ultiprocesszorok tag ad v a (feltéve, hogy m aga a m em ó riam o d u l elé rh e tő ). R áad ásu l előzetes te rv e ­
zésre sincs szükség. M ég ha h é t tetszőleges ö sszek ö ttetés m á r fel is van építve, ak ­
A z összes lehetség es optim alizációval eg y ü tt is az egyszeri! sín ren d sz e r alk alm azá­ k o r is m indig összekapcsolható a m a ra d é k C P U és a m ara d é k m em ória. K ésőbb
sa az U M A -m ultip ro cesszo ro k m é re té t k ö rü lb e lü l 16 vagy 32 C P U -ra korláto zza. látn i fo g u n k olyan összekötő sém ákat, am elyek n em ren d elk ezn ek ezzel a tu la j­
A továb b lép ésh ez m ásfajta ö sszek ö tő h á ló z a tra van szükség, n d a ra b C P U -t és k donsággal.
darab m em ó riát ö sszekötő legegyszerűbb á ra m k ö r a crossbar (keresztrudas) kap­ A crossbar kapcsoló egyik legrosszabb tulajdonsága, hogy a találkozópontok szá­
m a n^. K özépes m éretű rendszernél m ég alkalm azható a crossbar kapcsoló. A fejezet
Memóriák későbbi részében b em u tatásra kerül egy ilyen rendszer, a Sun F ire E25K. 1000 C P U
Találkozóponti és 1000 m em óriam odu lhoz azonban m ár egymillió találkozópont kell, egy ilyen nagy
kapcsoló crossbar kapcsoló nem valósítható m eg. Valami egészen m ásra van szükség.
nyitott állásban

Többszintű kapcsolóhálózatot használó UMA-m ultiprocesszorok

A z a „valam i egészen m ás” a lap u lh at azon a szerény 2 x 2-es kapcsolón, am ely a


8.28. (a) áb rá n láth ató . E n n e k a kapcso ló n ak k é t b e m e n e te és k é t k im en ete van.
B árm elyik b e m e n e ti vonalon érkező ü ze n e t rák ap cso lh ató bárm elyik k im en eti
Találkozóponti
kapcsoló vonalra. Jelenlegi céljainkhoz illeszkedve az ü zen etek legfeljebb négy részre ta ­
zárt állásban g oló d n ak , m ik én t a 8.28. (b) á b ra m u tatja. A m o d u l m ező azonosít egy m e m ó ria ­
m o d u lt. A cím m egadja a m o d u lo n belüli cím et. A m űveleti kó d egy m űvelet lehet,
READ vagy WRITE. V égül az opcionális érték o p e ra n d u st a d h a t m eg, am ely p éld áu l a
WRITE m ű v eletn él az íran d ó 32 bites szó lehet. A kapcsoló a m o d u l m ező vizsgálata
alap ján d ö n ti el, hogy az ü z e n e te t az X vagy az y k im en eti von alra küldje.

V
Zárt találkozó­ A— X
Nyitott találkozó­ Modul Cím Műv. kód É rték J
ponti kapcsoló B— Y
ponti kapcsoló

(a)
(a) (b)
8.27. ábra. (a) Egy 8 x 8-as crossbar kapcsoló hálózat, (b) Nyitott találkozópont,
(c) Zárt találkozópont 8.28. ábra. (a) Egy 2 x 2-es kapcsoló, (b) Egy üzenet szerkezete
618 8, P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8.3. K ö z ö s MEM ÓRIÁS MULTIPROCESSZÖRÖK 619

3 állomás n e t egym ás u tán az alsó, alsó és felső k im en eti vonalakon h alad át, ez az útvonal
CPU-k Memóriák b-ye\ je lz ett. A m eg érk ezésk o r a m odulé m ező ta rta lm a az igénybe vett u tat re p ­
rezen tálja, é rté k e 001. M ivel az eddigi k é t k érés nem használ azonos kapcsolókat,
ö ssz e k ö tteté sek et vagy m em ó riam o d u lo k at, e z ért p árh u zam o san h alad h a tn ak .
M ost gondoljuk végig, mi történik, ha ugyanekkor a 000-s C PU el akarja érni a
000-s m em ó riam odult. E n n ek a kérése a 001-es C P U kérésével a 3A kapcsolónál ü t­
közik. A z egyiknek közülük várnia kell. A crossbar kapcsolóval ellen tétb en az ó m e­
ga háló zat egy blokkoló hálózat. N em m inden kérés halm az tud a hálózaton p á rh u ­
zam osan haladni. A z ütközések a vezetékek vagy a kapcsolók használatánál je le n t­
kezhetnek, valam int a m em óriához érkező és a m em óriából induló válaszok között.
Nyilvánvaló igényként jelen ik m eg m em ó riah iv atk o záso k egyenletes széto sztá­
sa a m o d u lo k között. A z egyik szokásos m ód szer az alacsony h elyértékű b itek et
haszn álja m o dulszám ként. P éld a k é n t vegyünk egy olyan bájtcím zésű szám ítógé­
p et, am ely főleg 32 bites szavakat kezel. A 2 legalacsonyabb h elyértékű bit á lta ­
lában 00, de a következő 3 bit egyenletes eloszlású. M o d u lszám k én t alkalm azva
8.29. ábra. Egy ómega kapcsoló hálózat ezt a 3 b ite t, az egym ás u tá n i cím ű szavak egym ás u tán i m o d u lo k b a kerülnek. Az
olyan m e m ó riaren d szert, am elyben az egym ás u tán levő szavak külö n b ö ző m o d u ­
A 2 X 2-es kapcsolók sokféleképpen ren d ezh ető k , és így lehető ség et ad n ak n a ­ lo k b an v an n ak, tagoltnak szokták hívni. A tag o lt m em ó riák m axim ális p á rh u z a ­
gyobb, többszintű kapcsoló hálózatok kiépítésére. A z egyik lehetséges m odell az m osítást ered m én y ezh etn ek , m e rt a legtöbb m em óriahivatkozás egym ást követő
egyszerű és takarék o s ómega hálózat, ez láth ató a 8.29. ábrán. Itt nyolc C P U és 8 m e­ cím ek re v onatkozik. O lyan kapcsoló h á ló za to t is leh et tervezni, am ely n em b lo k ­
m ória összekapcsolása 12 kapcsolóval m egoldható. E zt általánosítva azt m o n d h at­ kol, és m indegyik C P U -b ó l m indegyik m em ó riam o d u lh o z tö b b u ta t is felkínál,
juk, hogy n d arab C P U és n d arab m em ó ria összekapcsolása log^n fázison keresztül hogy e záltal jo b b a n szétterítse a forgalm at.
történik, fázisonként «/2 kapcsolóval, így a teljes kapcsolószám {n/2)\og^n, am i sok­
kal jobb, m int a crossbar kapcsoló kapcsolószám a, k ülönösen nagy n értékeknél.
A z óm ega hálózat m in táját gyakran tökéletes keverésnek hívják, mivel a jelek k e ­ 8.3.4. NUMA-multíprocesszorok
veredése m inden fázisban egy olyan k ártyacsom agra hasonlít, am elyet m egfeleznek,
m ajd egyenletesen összefésülnek. H ogy lássuk, hogyan m ű k ö d ik az óm ega hálózat, M o sta n ra világossá k ellett válnia, hogy az egyetlen sínnel ren d elk ező U M A -m ulti-
tegyük fel, hogy a 011-es C P U egy szót ak ar olvasni az 110-s m em ó riam o d u lb ó l. A p ro cesszo ro k általáb an n éhány tu cat C P U -ra k o rláto zó d n ak , a crossbar kapcsolós
C P U az 1D kapcsolóhoz egy READ ü z e n e te t küld, a m o d u l m ező b en az 110 értékkel. vagy kap cso ló háló zato s m u ltiprocesszorokhoz pedig sok (és d rág a) h ard v er kell,
A kapcsoló útvonalválasztáshoz kiveszi az 110 legelső b itjét (bal szélső). 0 esetén a és m ég így sem sokkal nagyobbak. V alam iből engedni kell ahhoz, hogy 100-nál
felső k im en eti vonalra, 1 e se té n az alsó k im en eti v o n alra irányít. P éld án k b an ez a tö b b C P U -val ren d elk ező ren d szer alakuljon ki. R en d szerin t abból engedünk,
bit 1, ezért az üzen et ú tvonala az alsó kim en eti vonalon keresztü l a 2D-be vezet. hogy m in d en m em ó riam o d u ln ak u gyanakkora az elérési ideje. E z az engedm ény
A m ásodik fázis m in d en kapcsolója, beleértve a 2D-t is, az útvonalválasztáshoz a v ez e tett a NUMA- (N onUniform Memory Access, nem egységes m em óriaelérésű)
m ásodik bitet használja. E z ism ét 1, így az ü zen et az alsó k im en eten áthaladva a 3D m u h ip ro cesszo ro k h o z. A z u n o k atestv ér U M A -hoz h aso n ló an ez is egy közös cím ­
felé megy. Itt a harm ad ik b itet vizsgálja a kapcsoló, am ely m ost 0. K övetkezésképpen ta rto m á n y t kínál fel a C P U -k szám ára, de az U M A -gépektől e lté rő m ód o n a helyi
az ü zen et a felső k im en eten megy ki, és az 110-s m em ó riáh o z érkezik úgy, ahogy m e m ó riam o d u lo k at gyorsabban érik el, m int a távolikat. így m in d en U M A -prog-
terveztük. E n n ek az ü zen etn ek az ú tvonala a 8.29. áb rán az a betűvel jelzett. ram v álto z tatás nélkül fu t a N U M A -gépeken, de a teljesítm ényük rosszabb lesz,
A hogy az ü ze n e t m ozog a k apcsoló h á ló za tb an , a m o d u lszám b al végén a bitek m in t egy azonos ciklusidejű U M A -gépen.
egym ás u tá n feleslegessé válnak. így ezek a b itek felh asz n álh ató k a k apcsolóba A N U M A -g ép ek n ek h áro m olyan sajátosságuk van, am elyek együttesen m eg­
bejövő v o nalak szám án ak bejegyzésére, ezáltal a válasz visszaútja készen áll. A z a- k ü lö n b ö ztetik ő k et a többi m ultiprocesszortól:
val je lz e tt ú tn ál a bejövő v o n alak egym ás u tá n a 0 (felső b e m e n e t 1D-hez), az 1 (a l­
só b e m e n e t 2D-hez) és az 1 (alsó b e m e n e t 3D-hcz). A válasz a visszaúthoz a 011-et 1. Van egy közös cím tartom ány, am ely az összes C P U -ból láth ató .
használja, csak m o st jo b b ró l b a lra olvasva. 2. T ávoli m em ó ria e lérését a LO AD és a STORE u tasításo k k al végzi.
Tegyük fel, hogy u g yanebben az id ő b en a 001-es C P U egy szót a k ar a 001-es m e ­ 3. A távoli m em ó ria elérése lassúbb, m int a helyi m em óriáé.
m ó riam o d u lb a írni. E z a folyam at az előzővel an aló g m ó d o n m egy végbe, az ü z e ­
620 8. PÁRHUZAMOS SZA m ITÓGÉP-ARCHITEKTÚRA 8,3. Közös MEMÓRIÁS MULTIPROCESSZOROK 621

A m ik o r a távoli m em ó ria elérése nem re jte tt (m ert nincs gy o rsító tár), a k k o r lap elh elyezésre kerül a m em ó riáb an , akkor A T időre tiltják a m ozgathatóságát.
N C -N U M A -ról b eszélünk. CC-N U M A a neve a ren d sze rn e k , ha v an n ak b e n n e k o ­ Sokféle algoritm ussal p ró b álk o ztak m ár, de azt a k ö v etk eztetést leh et levonni,
h eren s gyo rsító tárak (legalábbis a h ard v e re se k így hívják). A szoftveresek gyakran hogy nincs m in d en k ö rülm ények k ö zö tt legjobban teljesítő algoritm us (L aR ow e
hardver D S M -nek nevezik, m ert alap v e tő en ugyanaz, m in t a szoftverfelosztású és Ellis, 1991).
közös m em ória, csak kis la p m é re tet alk alm azó h a rd v errel van m egvalósítva.
A z első N C -N U M A -gépek egyike (jó lleh et m ég az elnevezés sem lé te z e tt) a
C arnegie-M cH on Cm* volt, am elynek egyszeriísített v ázát a 8.30. á b ra m u tatja Gyorsítótár-koherens N UM A-m ultiprocesszorok
(Sw an és társai, 1977). L S I-11 C P U -k b ó l áll, am elyek m indegyike lokális sínen
m egcím zett m em óriával is rend elk ezik . (A z L S I-1 1 az 1970-cS évek n ép szerű mi- A 8.30. áb rá n lá th a tó a rc h itek tú ráh o z hasonló m ultip ro cesszo ro k nem sk álázh a­
niszám ító g ép en ek a D E C P D P -1 1 -n e k az egylapkás v álto zata volt.) E zenkívül az to k jól, m ert nem ren d elk ezn ek gyo rsító tárral. A teljesítm ényt nagyban csökkenti
L S I-11 ren d sz e re k e t egy ren d szersín k ap cso lta össze. A m ik o r egy m e m ó riak érés az, hogy távoli m em ó riát kell elérni valahányszor egy nem lokális m em óriaszóra
é rk e z e tt a (speciálisan m ó d o síto tt) M M U -h o z, ak k o r az m egvizsgálta, hogy a k ért tö rté n ik hivatkozás. P ersze a g yorsítótárazás alkalm azása viszont a gyorsítótárak
szó a helyi m em ó riáb an van-e. H a igen, ak k o r a lokális sínen k éré st k ü ld ö tt a szó k o h e re n c iá ján ak fe n n ta rtá sá t igényli. E n n e k egyik lehetséges m egoldási m ódja,
kiolvasására. H a n em , ak k o r k éré st a re n d sz e rsín e n to v á b b íto tta ah h o z a re n d ­ h a a ren d szersín fo rg alm át figyeljük. T echnikailag ezt nem n eh éz m egvalósítani,
szerhez, am elyiknél a szó volt, és a k érést k é p es volt teljesíteni. T erm észetesen ez de egy bizonyos processzorszám on felül m ár nem h asználható. V alóban nagy m ul­
u tóbbi sokkal hosszabb id ő t v e tt igénybe, m in t az előbbi. Egy p ro g ra m gon d nélkül tip ro cesszo rok ép ítése alap v ető en m ás m egközelítést tesz szükségessé.
fu th a to tt távoli m em ó riáb ó l, de a v ég reh ajtása 10-szer tovább ta rto tt, m in t ugyan­ Jelen leg a nagy CC-N U M A - (C ache C o h e re n t NUMA, g y o rsító tár-k o h e ren s
a n n ak a p ro g ram n a k a fu ttatá sa a helyi m em ó riáb ó l. NUM A) m u ltiprocesszorok legnépszerűbb m egközelítése a k a ta ló g u sa la p ú m u l­
tip ro cesszo r. E n n él az ö tle t az, hogy egy ad atb ázisb an ta rtjá k nyilván m indegyik
CPU Memória CPU Memória CPU Memória CPU Memória g yorsítósor helyét és állap o tát. Egy gyorsítósorra tö rté n ő hivatkozáskor a / a d a t­
bázisból lek é rd e z h e tő a sor helye, és az, hogy frissített vagy elavult a d a to t tárol-e.
M ivel az ad atb ázist m in d en m em ó riára hivatkozó u tasításn ak le kell kérdeznie,
e z é rt ezt egy kivételesen gyors, speciális célú h ard v erb en kell táro ln i, am ely egy
sín eik lu sid ejének tö re d é k e a la tt képes válaszolni.
H ogy jo b b an m egértsük a katalógusalapú m ultiprocesszor alap g o n d o latát, te ­
k intsük azt az egyszerű (képzeletbeli) rendszert, am elyben 256 csom ópont van, és
Rendszersín m indegyik csom ópont egy C P U -ból és az ehhez lokális sínnel kapcsolt 16 M B -os
R A M -ból áll. A teljes m em ó ria 2^^ bájt, am ely 2-'’ d arab 64 bájtos gyorsítósorra van
8.30. ábra. Kétszintű sínrendszerrel rendelkező NUMA-gép. A Cm* volt az első ilyen felépítésű felosztva. A csom ópo ntokhoz a m em ória hozzárendelése statikusan tö rtén ik , a 0.
multiprocesszor c so m ó p o n th oz a 0 -1 6 M B tartom ány, az 1. csom ópontho z a 16-32 M B tartom ány
tarto zik , és így tovább. A csom ó p o n to k a 8.31. (a) áb rán láth ató összekötő h áló za t­
A m em óriak o h eren cia egy N C -N U M A -gépen g aran tált, mivel nem alkalm az tal k apcsolódnak egym áshoz. A z összekötő háló zat lehet rács, hiperkocka vagy m ás
gyorsítótárat. M inden m em óriaszó p o n to san egy helyen létezik, így nincs az a ve­ egyéb topológia. A cso m ó p o n to k tárolják azokat a katalógusbejegyzéseket is, a m e ­
szély, hogy egy m ásolatban elavult ad a t van: ugyanis nincsenek m ásolatok. Term észe­ lyek a 2-“*bájtnyi lokális m em ó riát alkotó 2"* d arab 64 bájtos gyorsítósorhoz ta rto z ­
tesen itt nagyon fontos, hogy m elyik lap m elyik m em ó riáb an van, m ert a rossz e lh e­ nak. E gyelőre tegyük fel, hogy egy sor legfeljebb egy gyorsítótárban jelen h et meg.
lyezés nagy teljesítm énycsökkenéssel jár. K övetkezésképpen, az N C -N U M A -gépek A h h o z, hogy lássuk a k atalógus m ű k ö d ését, kövessünk nyom on egy LOAD u ta ­
bonyolult lapm ozgató szoftvert használnak, hogy javítsák a teljesítm ényt. sítást, am ely a 20. C P U -ból indul, és egy gyorsítósorra hivatkozik. A z u tasítást a
Á ltaláb an van egy lapfelügyelőnek n ev ezett d ém o n folyam at, am ely n éh án y k iad ó C P U először a saját M M U -ján ak ad ja át, am ely előállítja a fizikai cím et,
m á so d p ercen k én t fut. F e la d ata egyrészt m egvizsgálni a lap h aszn álati statisztik át, legyen ez m o n d ju k a 0x24000108 fizikai cím. A z M M U ezt a cím et h árom részre
m ásrészt e n n ek ism eretéb en m egkísérli a la p o k a t úgy m ozgatni, hogy ezáltal a te l­ b o n tja fel, m int ahogy a 8.31. (b) á b ra m u tatja. D ecim álisán a h áro m ré s z je le n té ­
jesítm én y javuljon. H a egy lap rossz helyen van, ak k o r a lapfelügyelő m eg szü n teti se: 36. c so m ó pont, 4. sor, eltolási é rté k 8. A z M M U látja, hogy a hivatkozás a 36.
a lap lek ép ezését, és íg>’ a k övetkező e rre való hivatkozás laphiányt eredm ényez. A c so m ó p o n tra és nem a 20.-ra vonatkozik, így küld egy k érő ü zen etet az összekötő
hiány m eg jelen ések o r a lap elhelyezéséről leh ető leg olyan d ö n tés születik, hogy a h áló za to n keresztül a so rt b irto k ló 36. csom óponthoz, m egkérdezve azt, hogy va­
k o ráb b itó l e lté rő m em ó riam o d u lb a k erü ljö n . H ogy a túl gyakori oda-vissza m o z­ jo n a 4-es so r tárolva van-e g yorsítótárban, és h a igen, a k k o r hol.
g atást elkerüljék , re n d sz e rin t azt a szabályt alkalm azzák, hogy v alahányszor egy
622 8, PÁRHUZAMOS SZÁMlTÓGÉP-ARCHITEKTÚRA 8.3. K ö z ö s MEM ÓRIÁS MULTIPROCESSZOROK 623

0. cs o m ó p o n t 1. c s o m ó p o n t 255. cs o m ó p o n t ese tén is az adm inisztráció csak 4 százalék lenne. 128 bájtos gyorsítósorok alkal­
m azásán ál viszont 1 százalék alá m enne le.
C P U M e m ó ria C P U M e m ó ria C P U M e m ó ria
E n n e k a szerk ezetn ek egyik nyilvánvaló k o rlátja, hogy egy sor táro lásá t csak
egyetlen c so m ó p o n tn ál engedi meg. 1la m eg en g ed ett a sorok tö b b csom ópontnál
való táro lása , ak k o r kell valam ilyen m ódszer ezek m indegyikének m egtalálására,
hogy p é ld áu l egy írásk o r a m áso lato k at érvényteleníteni vagy frissíteni lehessen.
T ö b b m egoldás is van, am ely m egengedi a tö b b cso m ó p o n tn ál való táro lást egy
időben.
Egyik leh etőség, hogy a katalógus m indegyik bejegyzéséhez tarto zzo n k d arab
m ező, a tö bbi m áso lato t tá ro ló cso m ó p o n t szám ára, így téve lehetővé, hogy m in d ­
(a) egyik so r (legfeljebb) k c so m ó p o n tb an tá ro lh a tó legyen. M ásik lehetőség, ha az
egyszerű terv ü n k b en a cso m ó p o n tszám o k at egy cso m ó p o n to n k én t 1 b itet ta rta l­
2'8-1 m azó b itté rk é p p e l helyettesítjük. Ez a változat a m áso lato k szám át ugyan nem
Bitek 8 18
ko rláto zza, de lényegesen m egnöveli az adm inisztráció helyigényét. E szerint egy
C som ó­ Eltolási
Blo kk k ataló g u s m indegyik 64 bájtos (512 bites) gyorsítósorhoz 256 bites bejegyzést ta r­
pont érté k
talm azn a, am i az adm inisztráció tö b b letk ö ltség ét több m int 5 0 % -ra növelné. A
(b) h arm a d ik lehetőség, hogy m indegyik katalógusbejegyzésben egy nyolcbites m ezőt
táro lu n k , am elyet csak a gyorsítósor m ásolatai láncolt listáján ak fejeként h aszná­
82
lunk. E z a stratég ia m indegyik cso m ó p o n tn ál ex tra táro ló alkalm azását igényli a
m u tató k lán colt listája szám ára, és egy sor összes m áso latán ak elérése a láncolt lis­
tán való m ozgással já r együtt. M indegyik leh ető ség n ek van előnye és hátránya, és
(0 m in d h á rm a t alkalm azzák valós rend szerek b en .
A k ataló g usos m ód szer egy m ásik, fejletteb b m odellje nyom on követi, hogy a
8.31. ábra. (a) Egy 256 csomóponttal rendelkező katalógusalapú multiprocesszor. gyorsítósor tiszta (a m em ó riáb an táro lt m áso lat frissített) vagy piszkos (a m em ó ­
(b) Egy 32 bites memóriacím mezőkre osztva, (c) A 36. csomópont katalógusa riá b a n tá ro lt m áso lat elavult). H a olvasási k érés érkezik egy tiszta gyorsítósorra,
a k k o r azt a cso m ó p o n t ki tu d ja elégíteni a m em óriájából anélkül, hogy a kérést
A m ikor a kérés a 36. c so m ó p o n th oz m eg érkezik az összekötő h áló zato n k eresz­ egy g y o rsító tárh o z kellene továbbítania. A zo n b an h a piszkos gyorsítősorra érkezik
tül, akkor ezt a hard verk ataló g u sh o z irányítják. M inden gyorsítósorhoz tarto zik a olvasási kérés, azt továbbítani kell ahhoz a csom óponthoz, am elyiknél a sor van.
h ard v er 2"* bejegyzésű táb láz a tá b an egy bejegyzés. E zek közül kiem eli a 4. sorhoz m ert csak n ála van érvényes m ásolat. H a csak egy gyorsítótár-m ásolat engedélye­
tarto zó t. A 8.31. (c) áb rá n láthatjuk, hogy a kérd éses sor m ég nincs tárolva, így a zett, m int a 8.31. áb rán ál, akkor nincs sem m i előnye a tisztasági állap o t nyilvántar­
h ard v er kiveszi a 4. so rt a lokális R A M -ból, elküldi a 20. cso m ó p o nth o z, és a k a ta ló ­ tásán ak , mivel m in d en új kérés együtt já r a m ásolat érv én y telen ítését kérő üzenet
gusa 4. bejcgyzeschen megjegyzi, hogy a so r a 20. cso m ó p o n tn ál van tárolva. kiküldésével.
M ost nézzünk egy m ásik k érést, am ely a 36. cso m ó p o n t 2. so rá ra v onatkozik. A T erm észetesen a gyorsítósorok aktuális vagy elavult v o ltán ak nyilvántartása m a­
8.31. (c) ábrából láth atju k , hogy ez a so r a 82. c so m ó p o n tn ál van tárolva. E k k o r a ga u tán vonja, hogy egy gyorsítcísor m ó d o su lásak o r a b irto k ló cso m ó p o n to t tá jé ­
h ard v er a 2. katalogusbejegyzést m ódosítja, jelezve, hogy a sor m o st m á r a 20. cso ­ k o ztatn i kell, m ég ak k o r is, ha csak egy gyorsítósor-m ásolat létezik. H a több m áso ­
m óp o n tn ál van tárolva és ezu tá n a 82. c so m ó p o n th o z azt az ü z e n e te t küldi, hogy lat van, ak k o r azok egyikének m ódosítása m egköveteli a többi érv énytelenítését,
adja át a kert sort a 20. c so m ó p o n tn ak és érv én y telen ítse a g y o rsító tárát. Vegyük e z é rt szükség van bizonyos szabályok (p ro to k o ll) b e ta rtá s á ra a versenyhelyzetek
észre, hogy a színialak m ö g ö tt m ég az ún. „közös m em ó riájú m u ltip ro cesszo r” is e lk erü lésére. Például egy m eg o szto tt gyorsítósor m ódosításához a m ódosítás
nagyszám ú ü zen e tá ta d á st végez. e/őtt k izárólagos hozzáférést kellene kérni. Egy ilyen k érés lehetővé ten n é a tö b ­
R övid k itérő k é n t nézzük m eg, m ek k o ra m em ó riát foglalnak le a k atalógusok. bi m áso lat é rv én y telen ítését m ég az engedély m egadása elő tt. A C C -N U M A -gc-
M inden csom ópo n tn ál van egy 16 M B -os R A M és en n ek nyom on k ö v etéséh ez 2^'^ pekkel k ap csolatos további teljesítm ényoptim alizációs k érd ések tárgyalását lásd
d arab 9 bites bejegyzés, így a k atalógus adm inisztráció kb. 9 x bitje jelen tk ezik (S ten stro m és társai, 1997).
tö b b letk én t a 16 M B -hoz, ez kb. 1.76 százalék, am i á ltaláb an elfo g ad h ató (b á r e h ­
hez nagy sebességű m em ó ria kell, am i em eli az á rá t). M eg 32 bájtos gyorsítósorok
624 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8.3. K Ö Z Ö S M E M Ó R IÁ S M U L T IP R O C ES SZ O R O K 625

A Sun Fire E25K NUMA-m ultiprocesszor p ro g ram o zó k csak a nullákkal és egyesekkel tö rő d n ek , a m érn ö k ö k n ek arra is kell
g o n dolniuk, hogy a vásárló hogyan fogja a te rm é k e t bevinni az ajtón, és hogyan
M ost nézzünk egy p é ld á t közös m em ó riás N U M A -p ro ce sszo rra, és ta n u lm án y o z­ helyezi el az épü letb en .
zuk a Sun M icrosystem s Sun F ire családját. Jó lle h e t ez a család sok m o dellből Éill, A központi kapcsolóegység 3 d a ra b 18 x 18-as crossbar kapcsolóból áll, ezek se­
mi az E 25K -ra k o n cen trálu n k , am ely 72 d a ra b U ltraS P A R C IV C P U lap k át ta r­ gítségével k apcso lh ató össze egym ással a 18 kártyakészlet. Egy crossbar kapcsoló
talm az. Egy U ltraS P A R C IV tu lajd o n k ép p e n k ét U ltraS P A R C III C u processzor, a cím vonalakhoz van rendelve, egy m ásik a válaszokhoz, míg a harm ad ik az a d a t­
am elyek osztoznak a g y o rsító táro n és a m em ó rián . A z E 15K v alójában ugyanez a átvitelhez. A 18 bővítőkártya m ellett a k ö zp o n ti kapcsolóegységben van m ég egy
rendszer, csak ab b an egyprocesszoros C P U lap k ák v an n ak a d u p lap ro eesszo ro sak re n d szerv ezérlő kártyakészlet is. E b b en egyetlen C P U van, de hozzá van kapcsol­
helyett. K isebb tagjai is van n ak a család n ak , de a mi n éz ő p o n tu n k b ó l az a fontos, va a C D -R O M , a m ágnesszalagegység, a soros vonalak és m ás olyan p erifériák is,
hogy a legtöbb p ro cesszo rt ta rta lm a z ó hogyan m űködik. am elyek a re n d szer indításához, k a rb a n ta rtá sá h o z és v ezérléséhez szükségesek.
A z E 25K ren d sze r a k á r 18 kárty ak észletb ő l is állh at, egy kárty ak észlet egy A m u ltip ro ccsszo ro k szíve a m em ó ria-alren d szer. H ogyan kapcsoljuk össze a
C P U -m em ó riak árty át, egy 4 P C I bővítohelyes B /K k árty át és egy bő v ítő k árty át 144 C P U -t az o szto tt m em óriával? A legnyilvánvalóbbak - egy nagy közös szim a­
tartalm az. U tóbb i kapcsolja össze a C P U -m e m ó ria k árty á t a B /K kártyával, illet­ to ló sín vagy egy 144 x 72-es crossbar kapcsoló - nem m ilk ö d n ck elég jól. A z első
ve m in d k e ttő t a k ö zp o n ti kapcsolóegységgel, am ely b efo g ad ja a kárty ák at, és a azért, m e rt a sín szűk k eresztm etszet lesz, a m ásodik azért, m ert a kapcsolót n a ­
kapcsolási logikát is tartalm azza. M in d en C P U -m e m ó ria k árty a 4 d a ra b C P U la p ­ gyon n eh éz és drága m egépíteni. így az E 25K és a hozzá hasonló m iiltiprocesszo-
k á t és 4 d a ra b 8 G B -o s R A M m em óriam oduU tartalm az. Tehát az E 25K m in d en ro k k é n y telen ek jóval bony o lu ltab b m em ó ria-alren d szert használni.
C P U -m em ó riak árty áján 8 d a ra b C P U és 32 G B R A M van (az E 13K kártyáin 4 A k árty ak észletck szintjén szim atoló logika van beépítve, ezért m inden lokális
d arab C P U és 32 G B R A M ). A teljes E 25K így 144 d a ra b C P U -t, 576 G B R A M - C P U összeh aso n líth atja a kárty ak észletrő l jö v ő m e m ó riak érések et a saját gyorsí­
o t és 72 d arab P C l-b ő v ítő h ely et tartalm az, ahogy a 8.32. á b rán láth a tó . É rd e k e s tó tá rá b a n lévő blokkokkal. A m ik o r egy C P U -n ak egy m em ó riaszó ra van szüksé­
m ód o n a 18-as szám ot csom agolási m e g fo n to láso k m iatt választo tták : a 18 kártya- ge, a k k o r a virtuális cím et először fizikai cím m é konvertálja, és ellenőrzi a saját
készletes ren d szer volt a legnagyobb, am i m ég egy d a ra b b a n kifért az ajtó n . M íg a g y o rsító tárát. (A fizikai cím ek 43 bitesek, de a csom agolási k o rláto k m iatt a m e­
m ória m axim álisan 576 G B leh et csak). H a a szükséges gyorsítósor a saját gyor­
Rendszervezérlö
sító tá ráb a n van, akkor a szót m egkapja. K ülönben a szim atoló logika ellenőrzi,
kártyakészlet hogy a kívánt szó egy m áso lata m eg találh ató -e valahol m áshol a kártyakészletcn.
H a igen, ak k o r a kártyakészlet a k érést kielégíti. H a nem , akkor a kérés to v á b b ju t
9 CPU memória­
kártya-készlet a 18 X 18-as cím crossbar kapcsolón keresztül az alább leírt m ódon. A szim atoló
logika egy e llen ő rzést tu d végezni ciklusonként. A ren d szeró ra 150 M H z-en jár,
te h á t 150 m illió ellen ő rzés is elvégezhető m á so d p ercen k én t m inden kártyakészle­
ten , am i 2,7 m illiárd ellen ő rzés m áso d p ercen k én t ren d szerszin ten .
H a b á r a szim atoló logika elvileg egy sín, ahogy a 8.32. áb ra is m utatja, fizikailag
ez egy olyan eszközfa, am elyen a p aran cso k le és fel tov áb b ító d n ak a szintek k ö ­
zött. H a egy C P U - vagy PC I-eszköz cím et g en erál, akkor az közvetlen kapcsolaton
keresztü l a 8.33. áb rán is lá th a tó cím ism étlők egyikéhez kerül. A k é t cím ism étlő
a b ő v ítő k ártyán találkozik, am ely a cím ek et visszaküldi a fa alsóbb szintjein e lh e ­
lyezkedő eszközökhöz találat-ellen ő rzésre. A zért használják ezt a felépítést, hogy
ne legyen szükség olyan sínre, am ely h á ro m kártyával van k apcsolatban.
A z ad atátv itel négyszintű kapcsoló h áló zato n keresztül valósul m eg, ahogy a
8.33. á b rá n is láth ató . E zt a m egoldást a nagy teljesítm ény m iatt választották. A
0. szinten C P U -m em ó riap áro k v annak összekötve egy kis crossbar kapcsolóval,
am elynek az 1. szinttel is van kapcsolata. A kétszer két C P U -m em ó riap ár egy m á ­
9 B/K
sik cro ssb ar kapcsolóval van összekötve az 1. szinten. E zek a cro ssb ar kapcsolók
kártya
szokásos A SIC -ok. M indegyiknél az összes b e m e n e t ren d elk ezésre áll m ind a so­
ro k n ál, m ind az oszlopoknál, h a b á r n em m in d en kom bináció van kihasználva (és
' PCI-bövítöhely
nem is m in d n ek lenne értelm e). A kártyákon m inden kapcsoló logika 3 x 3-as
8.32. ábra. A Sun Microsystems E25Kmultiprocesszora c ro ssb ar kapcsolókkal van m egoldva.
626 8. P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ú R A
8.3. K Ö Z Ö S M E M Ó R IÁ S M U L T IP R O C ES SZ O R O K 627

M inden kárty ak észlet h áro m kárty áb ó l áll: egy C P U -m em ó riak árty a, egy B/K 1. K izárólagos hozzáférés (írásra).
kártya és a k e ttő t összek ö tő bővítőkártya. A 2. szintű ö sszek ö ttetés is egy 3 x 3-as 2. M eg o szto tt hozzáférés (olvasásra).
crossbar kapcsoló (a bővítő k árty án ), am ely k ap cso lato t te re m t a m em ó ria és a B/ 3. É rv én y telen (például üres).
K k ap u k k ö zö tt (am elyek m indig m em ó riáb a ágyazottak az összes U ltraSPA R C -
on). A kártyakészletró'l jövő és az o d a irán\oiló a d atfo rg alo m a 2. szintű crossbar A m ik o r valam elyik C P U egy m em óriaszót a k ar írni vagy olvasni, akkor először
kapcsolón halad k eresztül, a k ár m em ó riát, ak ár B 'K k a p u t érin t. V égül a távoli a saját g y o rsító tárát ellenőrzi. H a o tt nem találja a k e re se tt szót, akkor a fizikai
kártyák felé m en ő és az o n n an é rk ező ad ato k a 18 x 18-as crossbar k apcsolót hasz­ cím re először egy helyi k érést bocsát ki, am ely csak a saját kártyakészletére ju t el.
nálják a 3. szinten. A z átvitel 32 b ájt széles, te h á t a leggyakrabban e lő fo rd u ló 64 H a a k árty akészlct valam elyik gy o rsító táráb an m egvan a k e re se tt sor, akkor a szi­
b ájto s adategység átvitele k ét óracik lu st igényel. m ato ló logika észreveszi az egyezést, és kiszolgálja a kérést. H a a sor kizárólagos
h o zzáférési m ó d b an van, ak k o r átk erü l a kérő h ö z, az e red eti pedig érvénytelen ál­
la p o tb a kerül. H a m eg o szto tt m ó d b an van, ak k o r a g yorsítótár nem reagál, m ert
ilyenkor a g azdakártyához kell fordulni.
H a a szim atoló logika n em találja a gyorsítósort, vagy m egtalálja, de m egosztott,
a k k o r a k ö zp onti kapcsoló egységen keresztül m egkérdezi a gazdakártyát, hogy hol
van a blokk. M inden blokk állap o ta fel van jegyezve a blokk B C C bitjeiben, ezért
a g azd ak ártya azonnal m eg tu d ja állapítani az állap o to t. A blokk ak ár m eg o szto tt
egy vagy több távoli kártyával, ak ár nem , a gazdakártya m em óriája friss, és a kérés
a zonnal k ielég íth ető a gazdakártya m em óriájából. E b b en az esetb en a m ásolat az
ad atátv iteli crossbar kapcsolón át k ét óraciklus a latt a k é rő C P U -h o z kerül.
H a a k érés olvasásra v o n atkozott, akkor új bejegyzés kerül a gazdakártya k a ta ló ­
gusába, am ely jelzi, hogy új tag k erü lt a gyorsitósort m egosztva használók közé, és
a tran zak ció lezárásra kerül. H a azonban a k érés írásra vo n atk o zo tt, akkor érvény­
telen ítő ü zen etet kell küldeni az összes olyan kártyának, am elynek van m ásolata
(h a v an n ak ilyenek). Ily m ódon az írást k é rő kártyához kerül az egyetlen m ásolat.
M ost tek intsük azt az esetet, am ikor a k ért blokk egy távoli kártyán kizárólagos
m ó d b an van. A gazdakártya a kérés m egérkezése u tán a katalógus alapján m egálla­
pítja a távoli kártya helyét, és a kérővel közli, hogy hol találh ató a gyorsítósor. A k é ­
rő m ost m á r a m egfelelő kártyához küldheti a kérést. A m ikor a kérés m egérkezik,
akkor a távoli kártya visszaküldi a sort. H a olvasási kérés volt, akkor a sor m egosz­
to tt állap o tb a kerül, és a gazdakártya is kap egy m ásolatot. H a írási kérés volt, akkor
8.33. ábra. A Sun Fire E25K négyszintű kapcsoló hálózatot használ. A szaggatott vonalak a távoli kártya érvényteleníti a saját példányát, így a k érő n ek lesz csak m ásolata.
a cimutaknak felelnek meg, a folytonos vonalak pedig az adatutaknak
M ivel m inden kártyán 2^’’ d a ra b m em ó riab lo k k van, m indet nyom on követni a
legrosszabb e setb en csak egy 2^'^ bejegyzést ta rtalm azó katalógussal lehetne. Mivel
M iután á tte k in te ttü k a kom p o n en sek elhelyezkedését, ford ítsu k figyelm ünket egy (asszociatív keresést m egvalósító) k ataló g u s en n él sokkal kisebb, e lő fo rd u l­
a közös m em ória m űködésére. A legalsó szinten az 576 G B m em ó ria 2^’ d a ra b 64 h at, hogy hely hiányában nem leh et felvenni egy bejegyzést. E b b en az esetb en a
bájtos b lokkra van osztva. E zek a blokkok a m em ó riaren d szer o szth atatlan é p ítő ­ gazd ak árty a egy m ind a 17 többi k árty án ak e lk ü ld ö tt kéréssel tu d ja csak m egálla­
kövei. M inden blokknak van egy gazdakártyája, ahol elhelyezkedik, am ikor nincs p ítan i a blokk helyet. A válaszokat kezelő crossbar kapcsoló szerepe a k ataló g u s­
m ásu tt használatban. A legtöbb blokk az idő nagy részében a gazdakártyáján van. k o h eren cia- és frissítésprotokollban, hogy a k érő h ö z irányítja a visszaáram ló a d a ­
A m ikor azonban egy C P U -n ak a saját kártyájáról vagy a 17 m ásik kártya egyikéről tok at. A p ro to k o llfo rg alm at két (cím és válasz) sín k ö zö tt m egosztva, az a d a to k a t
szüksége van egy m em óriablokkra, a k k o r először k é r egy m áso lato t a g y o rsító tárá­ p ed ig az ad atsín en továbbítva a ren d szer áteresztő k ép esség e növekszik.
ba, m ajd ezt a m áso lato t használja. H a b á r az E 25K m inden C P U lapkája két C P U -t A Sun F ire E25K a te rh e lé st több kártya eszközei k ö zö tt szétosztva nagyon nagy
tartalm az, ezek osztoznak a g y orsítótáron és így a b en n ü k tá ro lt blokkokon is. teljesítm én y re képes. A k o rá b a n em líte tt 2,7 m illiárd m áso d p ercen k én ti szim ato ­
M inden C P U lap k án m in d en m em ó riab lo k k és gyorsítósor h áro m állap o t egyi­ láson túl a központi kapcsolóegység a k ár kilenc egyidejű átvitelt képes lebonyolí­
kében lehet:
tani, kilenc ad ó és kilenc fogadó kártya között. M ivel az ad ato k crossbar k apcsoló­
ja 32 b ájt szeles, m in d en óraciklusban 288 b ájt h a lad h a t keresztül a központi k a p ­
628 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A
8.4. Ü ZEN ET Á T A D Á SO S M U L T IS Z Á M ÍT Ö G É P E K 629

csolóegységen. 150 M H z-es ó raje le n ez azt je le n ti, hogy az ö sszesített legnagyobb gyorsítósorból épül fel. R áad ásu l, m ég ha tu d n á is, hogy a so r nincs a fő m em ó riá­
sávszélesség 40 G B /m áso d p erc, h a m in d en ad ath o z zá fé ré s távoli. H a a szoftver ban , to v áb b ra is o tt a kérd és, hogy hol van? N em lehet egyszerűen m egkérdezni a
el tu d ja helyezni a la p o k at úgy, hogy a legtöbb h o zzáférés lokális legyen, ak k o r a tu lajd o n o sg ép et, m ivel olyan nincs.
re n d szer sávszélessége 40 G B /m áso d p ercn él je le n tő sen nagyobb lehet. Van n éh án y jav aslat az elhelyezési p ro b lé m á ra m egoldására. Új h ard v ert lehet
A Sun F ire-rő l to vábbi tech n ik ai jelleg ű in fo rm ác ió k at lásd (C h arlesw o rth , alkalm azni a fő m em ó riáb an lévő gyorsítósorok azonosító cím kéinek tárolásához.
2002 ; 2001 ). A z M M U -n a k e k k o r leh ető ség e lenne az igényelt sor cím kéjét összehasonlítani a
m em ó riab eli összes gyorsítósor cím kéjével, hogy kiem elhesse a m egfelelőt. E hhez
a m eg o ld ásh oz több h ard v erre van szükség.
Egy ném ileg m ás m egoldás leképezi a teljes lap o k at, de nem követeli m eg, hogy
8.3.5. COMA-multiprocesszorok
az összes g y orsítósor je le n legyen. E n n é l a m egoldásnál a h ard v ern ek egy lapon-
A N U M A - és a C C -N U M A -g ép ek h átrán y a, hogy a távoli m em ó ria e lérése sokkal k é n ti b itté rk é p re van szüksége, ebb en g y o rsító so ro n k én t egy bit jelzi, hogy a sor
lassabb, m int a helyi m em ó riáé. A C C -N U M A ezt a teljesítm én y b eli k ü lö n b ség et je le n van, vagy hiányzik. E b b en az egyszerű C O M A -ként ism ert arch itek tú ráb an ,
a gyorsítótárazással bizonyos m érték ig elrejti. A zo n b an , h a az igényelt távoli a d a ­ h a egy g yorsítósor jelen van, ak k o r a saját lapján a m egfelelő pozícióban kell len­
tok m ennyisége n agyban m eg h alad ja a g y o rsító tár k a p acitását, a k k o r a g y orsító­ nie, de ha nincs jelen , ak k o r bárm ilyen alk alm azására vonatk o zó kísérlet m egsza­
tárh ián y állandósul, és ez a teljesítm én y ro v ására megy. k ítást idéz elő, hogy lehetővé tegye a szoftvernek m egkeresni, és behozni a sort.
így az a helyzet, hogy az U M A -g ép ek teljesítm énye kiváló, de a m ére tü k k o rlá­ E z elvezet b e n n ü n k e t a való b an távoli sorok m eg találásán ak a k érdéséhez. Az
to zo tt és m egleh ető sen drágák. A z N C -N U M A -gépek valam ivel nagyobb m é retű re egyik m eg o ld ás szerin t m indegyik laphoz h o zzáren d eln ek egy tu lajdonosgépet
skálázhatók, de m egkövetelik a lap o k kézi vagy félig au to m atik u s elhelyezését, gyak­ aszerin t, hogy h ol van a katalógusbejegyzése, de az a d a tn a k n em kell o tt lennie.
ran kétes eredm énnyel. A z a problém a, hogy n eh éz m egjósolni, hogy melyik lapra E zt k ö v ető en a tu lajd o n o sg ép h ez k ü ld h e tő egy ü zen et, hogy legalább keresse meg
hol lesz szükség, de ezt leszám ítva is sok esetb en a lapok m é re te tú l nagy a m ozga­ a gyorsítósort. Egy m ásik m ód szer a m em ó riát fa stru k tú rá b a szervezni, és felfelé
táshoz. A Sun F ire E25K -hoz hasonló C C -N U M A -gépek teljesítm énye visszaesik, k eresn i, a so r m egtalálásáig.
h a sok C P U -nak van szüksége nagy m ennyiségű távoli ad a tra . M indezek alap ján azt A listáb an a m ásodik p ro b lé m á t úgy kell m egoldani, hogy a legutolsó m ásolat
m ondhatjuk, hogy ezek n ek az a rch itek tú rák n ak kom oly k o rlátai vannak. n em k e rü lh e t tö rlésre. M int a C C -N U M A -gépeknél is, egy gyorsítósor egyszerre
A m ultip ro cesszo ro k egy m ásik típ u sa m eg p ró b álja e z e k e t a p ro b lé m á k a t k ik e­ tö b b cso m ó p o n tn ál is m eg jelen h et. M ikor gyorsítótárhiány lép fel, ak k o r egy sort
rü ln i azáltal, hogy m indegyik C P U fő m e m ó riá já t úgy h asználja, m in t egy gyorsí­ b e kell hozni, am i re n d szerin t azt jelen ti, hogy egy m ásik sort el kell dobni. Mi tö r­
tó tá ra t. E b b e n a COM A (Cache Only M emory A ccess, gyorsítótáras m em óriael­ tén ik , h a az é p p e n kiválasztott sor a legutolsó m ásolat? E b b en az esetb en ezt nem
érés) elnevezésű a rc h ite k tú rá b a n a lap o k h o z nincs rö g z íte tt tu lajd o n o s gép, m in t szabad eldobni.
a N U M A és a C C -N U M A esetéb en . V alójában a lap o k egyáltalán n em já tsz an a k A z egyik m egoldás visszam egy a k atalógushoz, és azt vizsgálva m egnézi, van-e
je le n tő s szerepet. tö b b m áso lat. H a igen, ak k o r a sor biztonsággal eld o b h ató . E gyébként m áshova
H ely ette a fizikai c ím tarto m án y v an gy o rsító so ro k b a szétosztva, am elyek az igé­ kell elm ozgatni. Egy m ásik m egoldásnál m indegyik gyorsítósornak egy m áso latát
nyek szerint v án d o ro ln a k a re n d szerb en . A b lo k k o k n ak sincs tu lajd o n o sg ép ü k . fő m á so la tk én t cím kéznek m eg, és ezt sosem dobják el. E k k o r n em kell a k ataló ­
N éhány h arm ad ik világhoz ta rto z ó ország n o m ád jaih o z h aso n ló an , az o tth o n o tt g ust lek érd ezni. M in d e n t egybevetve, a C O M A jo b b teljesítm énnyel kecsegtet,
van, ahol é p p en vagy. Vonzásmemóriának nevezik az olyan m e m ó riá t, am ely é p ­ m in t a C C -N U M A , de kevés C O M A -g ép et é p íte tte k eddig, így nincs m ég eleg en ­
p en a szükséges so ro k a t tá ro lja el (vonzza m agához). A fő R A M -o t ó riási g yorsító­ d ő ta p a sz ta la t ezekkel k ap csolatban. A z eddig m eg ép ü lt k ét C O M A -gép a K SR -1
tá rk é n t használva, a találati arán y nagyban m egnő, e n n é l fogva a teljesítm én y is. (B u rk h a rd t és társai, 1992) és a D a ta D iffusion M achine (H ag ersten és társai,
Sajnos, m in t általáb an , ez sem olyan dolog, m in t egy ingyen vacsora. A C O M A - 1992). Egy ezeknél újabb gép az SD A A R C (E sch m an n és társai, 2002).
ren d szern ek k ét új p ro b lém áv al kell szem benézni:

1. H ogyan találju k m eg a gyorsító so ro k at?


2. M i tö rtén ik , ha a m em ó riá b ó l egy olyan so rt tö rlü n k , am i az u tolsó m áso lat? 8.4. Ü ze n e tá ta d á so s m u ltísz á m ító g é p e k

A z első p ro b lém a azzal függ össze, hogy m iu tán az M M U áta la k ít egy v irtuális cí­ M ik én t a 8.21. áb rán m á r láttuk, a M IM D p árh u zam o s p ro cesszo ro k n ak k ét típ u ­
m et fizikai cím m é, és a so r nincs az igazi h a rd v erg y o rsító tárb an , a k k o r n em köny- sa van, a m u ltip ro cesszo ro k és a m ultiszám ítógépek. E d d ig a m ultiprocesszorokat
nyű m eg m o n d an i, hogy egyáltalán b e n t van-e a fő m em ó riá b an . A lapozásos h a rd ­ vizsgáltuk m eg. L áttu k , hogy az o p eráció s ren d szer szám ára a m ultiprocesszorok
ver itt n em segít, m ivel m indegyik lap sok egyedi, egym ástól fü g g etlen ü l v án d o rló olyan közös m em óriával ren d elk ezn ek , am ely a szokványos LOAD és STORE utasí-
630 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A 8.4. Ü Z EN ET Á TA D Á SO S M U L T IS Z Á M ÍT Ó G É P E K 631

tásokkal é rh e tő el. A zt is láttu k , hogy a közös m e m ó ria tö b b fé lek é p p en m egvaló­ v alam int egy kom m unikációs processzort tartalm az. A kom m unikációs procesz-
sítható, b eleértv e a sínek szim atolása, c ro ssb ar kapcsoló, tö b b szin tű k apcsoló h á ­ szo ro k at egy nagy sebességű összekötő hálózat kapcsolja össze, ilyenekkel a 8.4.1.
ló zato k és a kü lö n b ö ző k ataló g u salap ú re n d sz erek alkalm azását. A k árh o g y an is részb en foglalkozunk. Sokféle to pológiát, kapcsolási sém át és útvonalválasztó al­
tö rtén ik , egy m u ltip ro cesszo rra írt p ro g ra m anélkül é rh e ti el a m em ó ria bárm elyik g o ritm u st alkalm aznak. M in d en m ultiszám ítógép közös jellem zője, hogy m ikor
rekeszét, hogy tu d o m á sa len n e a b első to p o ló g iáró l vagy a m egvalósítási sém áról. egy alkalm azói p ro g ram a send prim itívet h ajtja végre, akkor a kom m unikációs
A m ultip ro cesszo ro k at ez az illúziókeltés teszi vonzóvá szám u n k ra és ked v eltté a p ro cesszo r értesü l errő l, és ez m ozgatja át a célgéphez a felhasználó ad atb lo k k ját
pro g ram o zó k k ö réb en . (esetle g azu tán , hogy k ért és k a p o tt e rre engedélyt). Egy általános m u ltiszám ító ­
M ásrészt, a m u ltip ro cesszo ro k n ak is van n ak olyan h átrán y o s tulajdonságaik, g ép e t m u ta t a 8.34. ábra.
am elyek m iatt a m u ltiszám ító g ép ek is fo n to s sz e rep e t tö lte n e k be: M in d en ek elő tt
a m u ltiprocesszo ro k nagy m é re tű re n em skálázhatók. L áttu k , hogy a S u n n ak m i­
lyen h atalm as m ennyiségű h ard v ert k ellett alkalm azn ia ah h o z, hogy 72 C P U -sra 8.4.1. Összekötő hálózatok
skálázza az E 25K re n d szert. E zzel szem ben az aláb b iak b an vizsgálat alá k e rü ­
lő m ultiszám ítóg ép 63 536 C P U -t tartalm az. É vek fo g n ak m ég eltelni, am íg egy A 8.34. áb rán láttu k , hogy a m u ltiszám ító g ép ek et összekötő háló zato k fogják egy­
ugyanekkora keresk ed elm i célú m u ltip ro cesszo rt é p ít valaki, ad d ig ra viszont a ségbe. Itt az idő, hogy szem ügyre vegyük az összekötő háló zato k at. E lég érdekes,
m illióprocesszoros m u ltiszám ító g ép ek m ár h aszn álatb an lesznek. hogy a m u ltip ro cesszo ro k és a m ultiszám ítógépek m eg lep ő en h asonlók ebből a
R áad ásu l a m u ltip ro cesszo ro k n ál a m e m ó riá é rt folyó versengés h átrán y o san szem p o n tb ó l, am inek az az oka, hogy gyakran a m u ltip ro cesszo ro k n ak több m e ­
befolyásolhatja a teljesítm ényt. H a 100 C P U álla n d ó an ugyanazon v áltozókat m ó riam o d u lju k van, és ezek n ek egym ással és a C P U -kkal is k ap csolatban kell
ak arja olvasni vagy írni, ak k o r a k ü lö n b ö ző m e m ó riák é rt, sín e k é rt és k ata ló g u so ­ lenniük. így aztán az itt te tt m egállapí.tások gyakran m in d k etfajta ren d szerre é r­
k é rt folyó versengés óriási teljesítm én y ro m lást eredm ényez. vényesek.
E zek és m ás tén y ező k k ö v etk ez m én y ek én t nagy az érd ek lő d és olyan p á rh u z a ­ A m u ltip rocesszorok és a m ultiszám ítógépek összekötő hálózatai alapvetően
m os szám ítógép ek é p ítése és h asz n á la ta irán t, am elyekben m indegyik C P U -n ak azé rt h aso n lítan ak egym ásra, m ert m in d k étfajta ren d szer a legalsó szinten ü ze n e t­
saját m em óriája van, és m ás C P U -k ezt a m em ó riát k ö zvetlenül nem érik el. Ezek kü ld ést alkalm az. M eg egy egyetlen C P U -t tartalm azó ren d szerb en is, ha a C PU ír­
a m ultiszám ítóg ép ek . A m ultiszám ító g ép C P U -in ak p ro g ram jai a send és a récéivé ni vagy olvasni ak ar a m em óriából, ak k o r a C P U a sín bizonyos vonalain közli a k é­
prim itív ek et használva explicit ü z e n etk ü ld éssel é rin tk ez n ek egym ással, m e rt egy­ rést, m ajd vár a válaszra. E z a tevékenység alapjában véve olyan, m int egy ü ze n e t­
m ás m em ó riáját a LOAD és a STORE u tasításo k k al n em tu d já k elérni. E z a k ü lö n b ­ küldés: a kezdem ényező küld egy kérési, m ajd vár a válaszra. Nagy m ultiprocesszo­
ség a p rog ram ozási m o d ellt teljesen m egváltoztatja. ros ren d szerek b en a C P U -k és a távoli m em óriák kö zö tti kom m unikáció m ajdnem
Egy m u ltiszám ító g ép b e n m indegyik c so m ó p o n t egy, esetleg n éh án y C P U -t, m indig abból áll, hogy a C P U küld egy csom agnak nevezett ü zen etet a m em ó riá­
bizonyos m ennyiségű R A M -ot (am it felteh ető leg csak a c so m ó p o n th o z ta rto z ó hoz, e b b en kéri az ad ato k a t, a m em ória pedig egy válaszcsom agot küld vissza.
C P U -k használn ak m egosztva), egy lem ezegységet és/vagy m ás B/K eszközöket,

Csomópont Topológia
Meinória
/
Egy ö sszek ö tő háló zatb an a kapcsolók és a k apcsolatok e lren d ezettség ét a to p o ló ­
giával írják le, p éld áu l, leh et ez egy gyűrű vagy egy rács. A topológiai felépítések
g ráfokkal m odellezh ető k , am elyekben az élek a kap cso lato k n ak , a cso m ó p o n to k
p ed ig a kap csolóknak felelnek m eg, ahogyan a 8.35. áb rán látható. Egy összekötő
h áló za t (vagy gráf) m in d en egyes cso m ó p o n tja bizonyos szám ú k apcsolattal re n ­
delkezik. A m atem atik u so k egy cso m ó p o n t kapcsolatainak szám át a csom ópont
Kommunikációs
processzor fokszámának nevezik; a m érn ö k ö k ezt terhelhetőségi szám nak hívják. Á ltaláb an
m inél nagyobb a terh elh ető ség i szám , an n ál tö b b útvonalválasztás lehetséges, és
annál nagyobb a h ib atű rés, vagyis az az adottság, hogy a hálózat tovább tudjon
Nagy teljesítményű összekötő hálózat
m ű k ö d n i egy hibás kapcsolat e se té n is úgy, hogy m ás ú tvonalak lépnek a kieső h e ­
lyébe. H a m inden csom óponthoz/c él csatlakozik, és jó k az összek ö ttetések , akkor
m eg le h et a h áló za to t úgy tervezni, hogy m ég k - 1 hibás kapcsolat esetén is össze­
8.34. ábra. Egy általános multiszámítógép felépítése függő m aradjon.
632 8. PÁRHUZAMOS SZÁMlTÓGÉP-ARCHITEKTÚRA 8,4, ü z e n e tA ta d á s o s m u ltisz A m Itó g é p e k 633

Egy összekötő h áló za t (vagy a gráf) egy m ásik jellem ző tu lajd o n ság a az á tm é ­ lül. M inél kisebb az átm érő , annál jo b b a teljesítm ény a legrosszabb esetb en is.
rő. H a két csom ó p o n t közötti távolságot azon élek szám ával m érjük, am elyeken A eso m ó p o n to k közötti átlagos távolság szinten fonlos m ennyiség, m ert kifejezi
keresztül kell h alad n i, hogy egyikből a m ásikat elérjü k , a k k o r egy g rá f á tm érő je a egy csom ag átlagos haladási idejét.
kél legtávolabbi cso m ó p o n t k ö zö tti távolság. Egy összek ö tő h áló za t á tm érő je ki­ Egy összekötő h áló za tn ak van m ég egy további fontos tulajdonsága, az áte re sz ­
fejezi a legrosszabb áth ala d á si időt, mivel a C P U -b ó l C P U -b a vagy C P U -b ó l m e­ tők ép esség , am ely a m áso d p ercen k én t m o zg ath ató a d ato k m ennyisége. E z a tu ­
m óriáh o z k ü ld ö tt csom agok az élek e n bizonyos véges id ő a la tt h a lad n a k keresz- lajdonság a háló zat k ettévágott sávszélességével fejezh ető ki. E zt a m ennyiséget
a k ö v etk ez ő k ép p en h atáro zzák m eg: először a h áló za to t kép zeletb en két (a cso­
m ó p o n to k szám a szerint) egyenlő részre b o n tják fel úgy, hogy a gráfból éleket
hagynak el. E zu tán kiszám ítják az eltáv o líto tt élek teljes sávszélességét. M ivel egy
h áló za t k é t egyenlő részre b o n tása sokfélek ép p en tö rté n h e t, e z ért az ezekhez ta r­
to zó teljes sávszélességek is különbözők lehetnek. Egy összekötő hálózat k e tté ­
v ág o tt sávszélessége ezen szám ok m inim um a. E z a szám a z ért kifejező, m eri ha
p é ld áu l a k e ttév ág o tt sávszélesség 800 bit/s, akkor ha a két fél k ö zö tt élénk a ko m ­
m unikáció, a legrosszabb esetb en sem rosszabb az áteresztő k ép esség 800 bit/s-nál.
(a) (b) Sok terv ező úgy véli, hogy egy összekötő h áló za t legfontosabb jellem zője a k e tté ­
v ág o tt sávszélesség. Sok összekötő h áló za t m egtervezésénél a fő szem pont, hogy a
k ettév ág o tt sávszélesség m axim ális legyen.
A z összek ötő h áló zato k je llem ezh ető k m ég a dim enziószám ukkal. A mi célja­
inkra a d im enzió a fo rrásb ó l a célba való eljutási leh ető ség ek szám a. H a nincs vá­
lasztási leh ető ség (azaz csak egyetlen lit van az egyes fo rráso k b ó l a célokhoz), ak ­
k or a h áló za t dim enziója nulla. H a van választási leh ető ség p éld áu l ak özött, hogy
k eletre vagy nyugatra megy, akkor a h áló za t egydim enziós. H a van k é t tengely,
vagyis ha egy csom ag k elet és nyugat közül is választhat, vagy észak és dél közül is,
ak k o r a h áló za t kétdim enziós, és így tovább.
A 8.35. á b ra n éh án y to pológia sém át m u tat. C sak a kapcso lato k (vonalak) és a
kapcsolók (p o n to k ) vannak feltü n tetv e. A m em óriák és a C P U -k (nem láth ató k )
általáb an interfésszel illeszkednek a kapcsolókhoz. A 8.35. (a) áb rán egy n u llad i­
m enziós csillag elren d ezés láth ató , ahol a C P U -k és a m em ó riák a külső csom ó­
p o n to k h o z k ö th ető k , van b en n e egy kö zp o n ti csom ópont, am elynek a fe lad ata a
kapcsolások lebonyolítása. E z egy egyszerű topológia, de nagy ren d szerek cselén
a k()zponti k apcsoló valószínűleg szűk k eresztm etszetn ek bizonyulna. A h ib atű rés
szem p o n tjából p ed ig ez egy szegényes terv, m ivel a k özponti kapcsoló kiesése ese­
(e) (f)
tén az egész ren d szer m ű k ö d ésk ép telen n é válik.
A 8.35. (b) áb rán egy m ásik elren d ezés lá th ató , am ely a sp ek tru m m ásik végéből
való, ez a teljes összekötésű topológia. Itt m inden csom óp ont m inden m ás cso m ó ­
p o n tta l közvetlen kap cso latb an van. E n n él m axim ális a k ettév ág o tt sávszélesség,
m inim ális az átm érő , és k iem elk ed ő en nagy a h ib atű rés (bárm ely h at kapcsolat ki­
e sh et, m égis ö sszek ö ttetésb en m arad a ren d szer). Sajnos a szükséges kapcsolatok
szám a k c so m ó p o n t esetén k{k - l)/2 , am i k növelésével k ezelh etetlen n é válik.
A 8.35. (c) áb rá n a fa to p o ló g ia láth ató . E n n ek az a hátránya, hogy a kettévágoii
sávszélessége m egegyezik a k apcsolatok áteresztőképességével. M ivel a fa gyeiké­
(g) (h )
re kö zeléb en az ad atfo rg alo m általáb an nagy, ezért a fa felső néhány c s o m ó p o n i j a
8 .3 5 . ábra. Topológiák. A telt pontok a kapcsolókatjelzik. A CPU-k és a memóriák nincsenek szűk k ere sz tm etszetű n ek bizonyulhat. E n n ek a p ro b lém án ak az egyik m egoldása
feltüntetve, (aj Csillag, (b) Teljes összekötés, (c) Fa. (d) Gyűrű, (e) Rács. a k e tté v á g o tt sávszélesség növelése úgy, hogy a fen teb b levő kapcsolódásokat n a ­
(f) Kettős tórusz. (g) Kocka, (h) 4D-s hiperkocka gyobb sávszélességgel valósítják m eg. P éldául a legalsó szint kapcsolatai lehetné-
634 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8.4. Ü ZEN ET Á T A D Á SO S M U L T IS Z Á M ÍT Ó G É P E K 635

nek b kapacitású ak , a követk ező szintnél 2b k ap acitású ak , a felső szintnél pedig 8.4.2. MPP - erősen párhuzamos processzor
4b k apacitásúak. A z ilyen to p o ló g iá t kövér fán ak nevezik, és a keresk ed elm i fo r­
galm azású m ulliszám ító g ép e k n él alkalm azták, ilyen p éld á u l (a m a m á r elavult) A z első k a te g ó ria az M PP (M assively Parallel Processor, erősen párhuzam os pro­
T hinking M ach in es’ C M -5 . cesszor), ezek h atalm as, tö b b m illió dolláros szuperszám ítógép ek. T udom ányos
A 8.35. (d) áb rá n lá th a tó gyűrű az álta lu n k b e v e z e tett definíció szerin t egydi­ k u tatá so k n ál, tervezésnél és az ip arb an használják nagyon erőforrás-igényes szá­
m enziós topológia, m ivel m in d en elk ü ld ö tt csom ag k é t leh ető ség közül v álaszthat, m ításo k h o z vagy m áso d p ercen k én ti nagyon sok tranzakció kezeléséhez, illetve
vagy jo b b ra megy, vagy balra. A 8.35. (e) á b rá n levő rács vagy háló sok k e resk e ­ a d a tb a n k o k h o z (óriási ad atb áziso k tá ro lá sá ra és kezelésére). K ezdetben az MPP-
delm i ren d szern él alk alm azo tt k étd im en zió s szerkezet. N agyon szabályos, könnyű k e t első so rb an tudo m án y o s szu p erszám ító g ép ek k én t használták, de m ára ezek
nagy m ére tű re növelni, és az átm é rő je a cso m ó p o n to k szám án ak négyzetgyökével legtöbbje m á r k ereskedelm i k ö rnyezetben m űködik. Bizonyos é rtelem b en ezek
növekszik. A 8.35. (f) á b rá n a rács egy m ó d o síto tt v álto zata, a kettős tórusz lá th a ­ a g ép ek az 1960-as évek h atalm as nagygépeinek az u tó d ai (azo n b an ez a kapcso­
tó, am ely egy rács, de e n n e k a vég p o n tjai k ö zö tt kapcsolat van. N em csak a h ib a­ lat olyan gyenge, m in th a egy p aleo n to ló g u s azt állítaná, hogy egy v erébsereg a
tű rése nagyobb a rácsénál, h a n e m az átm é rő je is kisebb, m ert az átellen es cso m ó ­ T yrannosaurus R ex leszárm azottja). A z M PP-k nagyrészt felváltották a SIM D g é­
p o n to k közötti kom m u n ik áció m indössze k ét k ap cso lato n k eresztü l v ég b em eh et. p ek et, a v ek to ro s szu p erszám ító g ép ek et és a tö m b p ro cesszo ro k at a digitális tá p ­
Egy m ásik n ép szerű to p o ló g ia a h áro m d im en zió s tórusz. E z egy h á ro m d im e n ­ lálék lán c csúcsán.
ziós A.) p o n to k a t tartalm a z ó rácson alapszik, ahol m in d en k o o rd in á ta egész E zek n e k a gép ek n ek a legtöbbje pro cesszo rk én t szabványos C P U -k at hasz­
szám , a sarkok k o o rd in átái (1, 1, 1) és { L m ,n ) . M in d en csúcsnak h at szom széd­ nál. N ép szerű az Intel Pentium , a Sun U ltraSPA R C , az IB M Pow erPC . Az M PP-k
ja van. m inden tengely m e n té n k ettő . A kocka lapjain lévő csúcsoknak kap cso lata m e g k ü lö n b ö ztető jegye a nagy teljesítm ényű összekötő hálózat, am elyen k eresz­
van az átellen es lap csúcsaival, h aso n ló an a k étd im en zió s tóruszhoz. tül az ü z e n e te k e t rövid késleltetési idővel és nagy sávszélességgel tu d ják m ozgat­
A 8.35. (g) áb rán a kocka, egy szabályos h áro m d im en zió s to p o ló g ia láth ató . Itt ni. M in d k é t tu lajd o n ság fontos, m ert az ü zen etek túlnyom ó többsége kism éretű
egy 2 X 2 X 2-cs kocka szerep el, de általá n o s esetb en a kocka m é re te k x k x k . A (jóval 256 b á jt alatti), de a teljes forgalom d ö n tő részét a n agym éretű (8 K B -nál
8.35. (h) áb ra egy négydim enziós k o ck át szem léltet,* am i k é t h áro m d im en zió s nagyobb) ü zen etek adják. A z M PP-k ren d elk ezn ek széles k ö rű saját szoftverrel és
kockából, azok m egfelelő cso m ó p o n tjain ak összekötésével alak u lt ki. K észíth ető eljárásk ö n y v tárakkal is.
ö tdim enziós kocka a 8.35. (h) áb rá b an szerep lő stru k tú ra két péld án y áb ó l a m eg ­ A z M PP-k egy m ásik jellegzetessége a hatalm as B/K kapacitás. A z M PP-ket igény­
felelő cso m ó p o n to k összekötésével, és így egy négy kockából álló blokk alakul ki. lő m é re tű p roblém ák m egoldása során m indig hatalm as m ennyiségű ad ato t kell fel­
A lk alm azh ató ez az eljárás a h atd im en zió s eseth ez, ahol m á r két négy kockából dolgozni, gyakran terab ájt nagyságrendben. E zeket az ad ato k a t muszáj több lem ez
álló b lo k k o t kell venni, és ezek m eg felelő c so m ó p o n tjait kell ö sszekötni és így to ­ közt szétosztani, és a gépben való m ozgatásukat nagy sebességgel kell végezni.
vább. A z így elő állíth a tó n dim enziós k o ck át h ip e rk o ck á n a k hívják. E zt a to p o ló ­ V égül m ég M PP-sajátosság az is, hogy nagy figyelm et fo rd ítan a k a hibatűrésre.
giát sok párh u zam o s szám ító g ép használja, mivel ennek az á tm é rő je lin eárisan nő T ö b b ezer C P U -nál h e te n te néhány m eghibásodás elk erü lh etetlen ü l bekövetkezik.
a dim enziójával. M ás szóval az á tm é rő a cso m ó p o n to k szám án ak 2-es alap ú lo g a­ E lfo g ad h a tatlan , hogy egy 18 órás futás kárba vesszen egyetlen C P U m eghibásodá­
ritm usa, így péld áu l egy 10 dim enziós h ip erk o ck án ak 1024 cso m ó p o n tja van, de sa m iatt, különösen, ha m inden h étre v árh ató egy ilyen m eghibásodás. É p p en ezért
az átm érő je csak 10, am i kiváló a k ésleltetési id ő t tekintve. M egjegyezzük, hogy a nagy M PP-k m indig rendelkeznek olyan speciális rendszerfigyelő hardverrel és
ha az 1024 csom ó p o n t 32 x 32-es rácsb a van ren d ezv e, a k k o r e n n e k átm érő je 62, szoftverrel, am ellyel észlelik a hibákat, és zö k k en ő m en tesen kijavítják azokat.
am i hatszor rosszabb a h ip erk o ck áén ál. A kisebb á tm é rő n e k az az ára, hogy a cso ­ M ost az lenne a term észetes, ha rá té rn é n k az M P P -felépítés általános elveinek
m ó p o n to k fokszám a és ezzel együtt a k ap cso lato k szám a (és a költség) sokkal n a ­ tan u lm án y o zására, de a helyzet az, hogy nem sok alapelv van. K özelebbről vizs­
gyobb a h iperkock án ál. E n n e k elle n é re a nagy teljesítm én y ű ren d sze rek h e z gyak­ gálva egy M P P többé-kevésbé szabványos feldolgozóelem ekből áll, am elyek v ala­
ran választják a liiperkocka topológiát. m ilyen, az á ltalu n k m á r tan u lm án y o zo ttak h o z hasonló nagy sebességű h álózattal
N agyon sok fajta m u ltiszám ító g ép van, ezé rt n eh éz eg y értelm ű en c so p o rto sí­ v an n ak összekötve. E z é rt inkább m ost k ét k o n k rét M P P -példát nézünk meg; ezek
tani őket. M in d e n e se tre k é t á ltalán o s „stílus” látszik k ibontakozni: az M P P és a a B lu e G e n e /L és a R ed Storm .
klaszter. A következőkben e zek et fogjuk tanulm ányozni.

BlueGene

E rő sen p árh u zam o s p ro cesszo rra első p é ld ak é n t m egvizsgáljuk az IBM B lueG ene
ren d sze ré t. A z IB M 1999-ben in d íto tta ezt a p ro jek tet, am elynek az volt a célja,
A dim enzió nem a hagyományos geom etriai dim enziót jelenti. (A lektor) hogy kifejlesszenek egy erő sen párh u zam o s szuperszám ító g ép ei, am elyet töb-
636 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A 8.4, Ü ZEN ET Á T A D Á SO S M U L T IS Z Á M ÍT Ó G É P E K 637

bek k özött az clcttu d o n u n iy o k szám ításigényes fela d a tain ak m eg o ld ására ak a rtak lapka 2003 jú n iu sáb an készült el. A B lu eG en e/L -ren d szer első negyede 16384 fel-
felhasználni. A biológusok m eg van n ak győződve arró l, hogy a feliérjck h á ro m ­ dolgozóegyseggel 2004 n o v em b erére m á r m ű k ö d ö tt, és 71 teraflo p /m áso d p erces
d im enziós szerkezete m eg h atáro zza a funkciójukat, m égis egyetlen kis feh érje sebességével a f^öld leggyorsabb szu p erszám ítógépének cím ét is elnyerte. C sekély
három dim enzió s szerk ezetén ek a fizika törvényei alap ján tö rté n ő m eg h atáro zása 0,4 m eg aw atto t fogyasztott, így k ateg ó riájáb an a fogyasztási hatékonyság győztese
az akkori szuperszám ító g ep ek en éveket vett igénybe. A z e m b e re k b e n tö b b m int is lett 177,5 m egaflop/w att-tal. A teljes, 65536 feldolgozócgységet tartalm azó re n d ­
félm illió fehérje találh ató , ném elyik rendkívül nagy, és ezek hibás térb eli e lre n ­ szer m a ra d ék részének ü zem beállítását 2005 nyarára ütem ezték.
deződése te h e tő felelőssé bizonyos b eteg ség ek ért (p éld áu l a cisztás fibrózisért). A B lu e G cn e/L -ren d szer szíve a 8.36. áb rán szem léltetett egyedi feldolgozóegy­
Világos, hogy az összes em b eri feh érje sz erk ezetén ek m e g h atáro zásáh o z a világ ség lapkája, am ely k ét 700 M H z-es P ow erP C 440 m agból áll. A Pow erPC 440 egy
szám ítási kapac itá sá t sok nagyságrenddel m eg kellen e növelni, és a fe h érjék té r­ csővezetékes, 2 u tasítást egyszerre kiadni képes szu p ersk alár processzor, am ely
beli elren d ező d é sé n e k m o dellezése csak egy a B lu eG en e-n ek szánt fe lad ato k k ö ­ nagyon közkedvelt beágyazott ren d szerek b en . M in d en m agban van k ét d arab , egy­
zül. U gyanilyen ö sszetettség ű kihívások van n ak m ég a m o lek u láris d inam ika, az szerre 2 u tasítást kiadni k ép es leb eg ő p o n to s egység, te h á t együtt összesen 4 le b e ­
ég h ajlatm odellezés és a csillagászat te rü le té n , de m ég a pénzügyi m o d ellezés is g ő p o n to s u tasítás k iad ására kép esek ó rajelen k én t. A leb eg ő p o n to s egységeket ki­
nagyságrendi nö v ek ed ést igényel a szuperszám ító g ép ek tő l. eg észítették néh án y olyan S IM D -jellegű utasítással, am elyek hasznosak bizonyos
Az IB M -nél úgy é rezték , hogy van m egfelelő k ereslet az erő s szu p erszám ító g é­ v ek to ro k o n végzett tudo m án y o s szám ításoknál. N o h a a lapka nem é p p en lom ha,
p ek re, és 100 m illió d o llárt fek tettek be a B lu eG en e terv ezéséb e és m eg ép ítéséb e. azért ö n m ag ában n em is a legerősebb m ultiproeesszor.
2001 novem beréb en az Egyesült Á llam o k E nergiaügyi M in isztériu m a által mii- A lapkán találh ató k ét C P U -m ag szerkezetileg teljesen megegyezik, de a p ro g ra­
k ö d te te tt L iverm ore N atio n al L ab o ra to ry b etársu lt, és egyben első vásárló ja is lett m ozás során különböző szerepet szántak nekik. Egyikük szám ításokat végez, míg a
a B lu eG en e család első példán y án ak , a B lueG ene/L -nek. m ásik a 65536 feldolgozóegység közötti kom m unikáció kezeléséért felelős. A lap ­
A B lueG ene p ro jek t célja n em csak a világon leggyorsabb M P P elkészítése volt, kán h áro m szinten helyeztek el gyorsítótárat. A z első szinten egy osztott L1 gy'orsító-
hanem azt is el ak arták érni, hogy a leghatékonyabb legyen teraflo p /d o llár, teraflo p / tá r van, 32 KB áll ren delkezésre az utasítások, és ugyanennyi az ad ato k szám ára. A
w att és teraflo p /m ' szem pontból. E m iatt az IB M elv etette a ko ráb b i M PP-filozófi- két C P U L1 gyorsítótára között nincs koherencia, m ert a szabványos Pow erPC 440
át. m iszerint a p é n zért k ap h ató legdrágább alk atrészek et kell használni. E helyett m agok ezt nem tám ogatják, és eldöntötték, hogy m ódosítás nélküli m agokat hasz­
azt a d öntést hozták, hogy a la p k o m p o n en sk én t egy egyedi, k o m p lett részren d szert n álnak. A m ásodik szinten egy egységes 2 K B -os gyorsítótár van. Az L2 gyorsító­
m agában foglaló m érsék elt sebességű és fogyasztású la p k át gyártanak, am elyekből tá ra k valójában nem is azok, han em előolvaső pufferek. Ezek figyelik egym ást és
aztán sokat zsúfolnak össze kis helyre és egy nagyon nagy g é p e t é p íten ek . A z első konzisztensek. A harm adik szinten egységes, konzisztens 4 MB m éretű m egosztott
gyorsítótár van, am ely ellátja m in d k ét L2 gyorsítótárat. 11 óraciklust igényel egy
Észak Felfelé olyan m em óriahivatkozás, am ely nem talál az L1 gyorsítótárban, de az L 2-ben igen.
Számítást L1 gyorsító- 28 ciklusba kerül, ha L2-ben nincs, de L3-ban van találat. V égül, ha az L3-ban nincs
végző CPU táraí<, -Egyedi lapka ^Kapcsolat
'a3D az ad at, és az S D R A M -hoz kell fordulni, az körülbelül 75 ciklust igényel.
Lebegő­
tóruszhoz A z L2 g y o rsító tárak h o z egy kis SR A M van kapcsolva. A J'PA G -kivezetésekhez
pontos
egység _
\ kapcsolódik, és a ren d szerin d ításb an , nyom követésben, a gazdagéppel való k o m ­
FPU 1 m u n ik áció b an van szerep e, ezen kívül a ren d szerv erm et táro lja, valam int szem a­

FPU
PowerPC 440
mag
0
L2 gyor­
sítótár 1 for, so ro m p ó és m ás szinkronizációs m űveletek m egvalósítására használják.
A követk ező szinten IB M által te rv ezett k árty át találu n k , am ely a 8.36. ábrán
4MB-0S

J
Szimatolás T L3 gyor­ lá th a tó lap k ák közül k e ttő t fogad be 1 G B m em ó ria társaság áb an . A kárty a jö v ő ­
sítótár beli v álto zatai a k ár 4 G B -o t is ta rtalm azh atn ak . A lapka és a kártya a 8.37. (a ) -(b )
FPU 1 áb rán láth atók.
PowerPC 440 L2 gyor­ •Kártyán
mag sítótár lévő A k árty ák at alap lap o k ra helyezik, a la p lap o n k én t 16 kártyával összesen 32 lapka
FPU D DDR (és így 32 szám ításo k at végző C P U ) van. M ivel m inden kártya I G B S D R A M -ot
SDRAM-
hoz ta rtalm az, az alap lap o n 16 G B van összesen. Az alap lap a 8.37. (c) áb rán látható.
A k övetkező szinten 16-16 ilyen alap lap o t találu n k egy szekrény alsó és felső ré ­
K o m m unikáció s C P U szében is, ezzel rendkívül sű rű n 1024 C P U kerül egy 60 x 90 cm -es térrészb e. A
y
k ét 16-os cso p o rto t egy olyan kapcsoló választja el egym ástól, am elyik le tu d ja vá­
Dél Ethernet Lefelé
lasztani az egyik cso p o rto t a ren d szerrő l k a rb a n ta rtá s céljára, m iközben bekapcsol
8.36. ábra. A BlueGene/L egyedi processzorlapkája egy ta rta lé k cso p o rto t. A szekrény a 8.37. (d) áb rán láth ató .
638 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT EK T Ú R A
8.4. U ZEN ET A T A D Á SO S M U L T IS Z Á M ÍT Ó G É P E K 639

tó ru sz t alk alm aztak. E m ia tt m inden C P U -n ak h at csatlakozója van, k e ttő a logika­


ilag a la tta és fe lette lévő C P U -k felé, k e ttő észak ra és délre, illetve k e ttő k e letre és
512MB n yugatra, ahogy a 3.36. áb rá n is látható. Fizikailag az 1024 elem et tartalm azó szek­
rén y ek m indegyike egy 8 x 8 x l6-os tórusz. Szom szédos szekrények 8 x 8 x 32-es
5S . Sq p^ 13
l
tó ru sz t alk o tnak. U gyanabban a sorban lévő négy p ár szekrény egy 8 x 32 x 32-es
tó ru sz t alkot. V égül a 8 sor együtt alakítja ki a 64 x 32 x 32-es tóruszt.
M in d en ö sszek ö ttetés p o n t-p o n t kapcsolat, és 1,4 G bps sebességgel üzem el.
M ivel m in d a 65536 elem n ek 3 ö sszek ö ttetése van „nagyobb” sorszám ú elem ek
felé (m in d en d im enzióban egy), e z ért a ren d szer összesített sávszélessége 275 te-
rab it/m áso d p ere. E n n ek a könyvnek az in fo rm ác ió tartalm a körülbelül 300 m illió
bit, b e leértv e a PostScript fo rm átu m ú illusztrációkat is, így a B lueG ene, L ebből a
könyvből 900000 p éld án y t tu d n a m egm ozgatni m áso d p ercen k én t. H ogy hova és
kinek, a n n ak eld ö n té sé t a kedves olvasóra bízzuk.
Lapka: Kártya: Alaplap: Szekrény; Rendszer: A h áro m d im en zió s tóru szb an a kom m unikáció egy ún. v irtu a l cu t th ro u g h ú t­
2 lapka, 16 kártya, 32 alaplap, 64 szekrény, vonalválasztási m ódszerrel tö rtén ik . E z valam elyest haso n lít a táro ld és továbbítsd
1 GB 32 lapka, 512 kártya, 2048 alaplap, csom agkapcsolás elvére, kivéve hogy továbbítás elő tt nem tárolják az egész cso­
16 GB 1024 lapka, 32 768 kártya,
m ag o t. A m in t egy bájt m eg érk czetl a cso m ó p o n tb a, azonnal to v áb b íth ató a k ö v et­
512GB 65 536 lapka,
32 TB k ezőhöz, m ég m ielő tt az egész csom ag m eg érk ezett volna. D inam ikus (adaptív)
és d eterm in isztik u s (statik u s) útvonalválasztás is elkép zelh ető . Egy kevés speciális
(a) (b) (c) (d ) (e) célú h ard v er valósítja m eg a lapkán.
A z ad atk o m m u n ik áció ra használt fő 3D tó ru sz m ellett négy m ásik k o m m u n i­
8.37. ábra. A BlueGene/L (a) lapkája, (b) kártyája, (c) alaplapja, (dj szekrénye, (e) rendszere kációs h áló za t is van. A m ásodik egy fa alakú kom binációs hálózat. A B lu eG en e/
L -h e z h aso n ló e rő sen p árh u zam o s ren d szerek b en sok olyan m ű v eletet kell végez­
V égül a 64 k ab in etb ő l álló teljes re n d sz e r a 8.37. (e) á b rá n láth a tó , 65536 szá­ ni, am elyben az összes feldolgozóegységnek részt kell vennie. Például képzeljük
m ítást végző C P U -t és 65536 ko m m u n ik áció s C P U -t tartalm az. 131072 d arab , két el, hogy 65 536 szám közül kell kiválasztanunk a legkisebbet. K ezdetben m inden
egész u ta sítá st kiad n i k ép e s C P U -val és 262144 d a ra b , k é t u tasítá st k iadni k ép es elem egy szám ot táro l, és am ik o r k etten elküldik az é rté k e ik e t egy m agasabb szin­
leb eg ő p o n to s C P U -val e n n e k a ren d sz ern e k elvileg a k á r 786432 u tasítást is tu d n ia tű elem n ek , ak k o r az kiválasztja a kisebbiket, és azt továbbítja a felsőbb szintek fe­
k ellene kiadni ó rajelen k én t. A z egyik egész C P U fe la d a ta azo n b an a leb e g ő p o n ­ lé. Ilyen m ó d o n sokkal kevesebb ü zen et érkezik a gyökérelem hez, m in th a m ind a
tos C P U ellátása, ezzel az u tasításo k k iad ásán ak ü te m e ó ra je le n k é n t 655360-ra 65536 elem közvetlenül o d a kü ld te volna az ü zen etét.
csökken, am i 4,6 x lO*"* u tasítás/m á so d p e rc e t je le n t, ezzel ez a gép m essze a v alaha A h arm ad ik h áló za t globális so ro m p ó k h o z és m egszakításokhoz tartozik.
é p íte tt legnagyobb szám ító g ép ren d szer. N ém elyik algoritm us m e n e te k e t h ajt végre, és m inden elem n ek m eg kell várnia,
A ren d szer egy m ultiszám ító g ép a b b an az é rte lem b e n , hogy egyetlen C P U sem hogy az összes többi is befejezze a m e n etet, m ielőtt a követk ező t elk ezd h etn é. A
fér hozzá közvetlenül m ás m em ó riáh o z, csak a saját kárty áján lévő 512 M B -hoz. so ro m p ó h áló za t lehetővé teszi a p ro g ram n ak , hogy definiálja a m en etek et, és m ó ­
N incs k ét olyan C P U , am elyek közösen h aszn áln án ak m em ó riát. R á a d á su l lapo- d o t ad arra, hogy a m e n etek végén a szám ítást végző C P U -k at felfüggessze, am íg
zásos m em ó riak ezelés sincs, m e rt n in csen ek eh h ez szükséges lokális lem ezegysé­ m indegyik el nem é ri a m e n e t végét, és ak k o r az összeset továbbengedi. A m egsza­
gek. E h ely ett a ren d sze rb e n van U)24 B /K cso m ó p o n t, ezek h ez v a n n ak csatlak o z­ kításo k is ezt a h áló zato t használják.
tatva a lem ezegységek és egyéb perifériák . A negyedik és az ö tö d ik h áló za t gigabit E th e rn e te t használ. A z egyik a B/K cso­
M in d en t egybevetve, jó lle h e t a ren d szer rendkívül nagy, egyúttal egészen egy­ m ó p o n to k a t köti össze a fájlszerverekkel (ezek nem a B lu eG en e/L részei), illetve
szerű is, kevés új tech n o ló g ia van b en n e, kivéve a nagy sűrűségi] csom agolást. N em az in te rn e tte l. A m ásik a ren d szerh ib ák k ereséséb en ju t szerephez.
v életlenül d ö n tö tte k az egyszerűség m ellett, hiszen az egyik nagy cél az volt, hogy A szám ításokat végző és a kom m unikációs elem ek is egy erre a célra t e r v e z e t t ,
nagy m egbízhatóságú és hosszú ren d elk ezésre állási idejű legyen. K övetk ezésk ép ­ k ism éretű , kis erőforrás-igényű o p eráció sren d szer-m ag o t fu tta tn a k , am ely egyet­
p en nagyon k ö rü lte k in tő e n tervezték m eg a táp ellátást, a h ű tő v en tilláto ro k at és ve­ len felh aszn álót és egyetlen folyam atot tám ogat. E n n ek a folyam atnak k ét szála
zeték elést azzal a céllal, hogy a m eghib áso d áso k k özötti átlagos idő 10 nap legyen. van, egy-egy a cso m ó p o n t m in d k ét C P U -jára. A nagy teljesítm ény és a nagy m eg ­
A z összes lapk a cisszekapcsolásához egy sk álázh ató , nagy teljesítm én y ű k o m m u ­ b ízh ató ság érd e k é b e n a la k íto tták ki ezt az eg y s/erű szerkezetet.
nikációs topológ ia és tech n o ló g ia szükséges. A tervezők egy 64 x 32 x 32 m é re tű
640 8. P Á R H U Z A M O S SZ A M ÍT Ó G É P A R C H IT EK T Ú R A 8.4. ü z e n e t At a d A s o s m u l t i s z A m í t ó g é p e k 641

A m egbízhatóság további növelése é rd ek éb en az alkalm azások m eghívhatnak m em ó riá ja van. A hogy azo n b an a m em ó ria egyre olcsóbb lesz, ezt biztosan növel­
egy könyvtári eljárást, amellyel e llen ő rző p o n to t h o zh atn a k létre. A m in t az összes ni fogják a jövőben. A z O p te ro n o k a t k étm ag o sak ra is le leh et cserélni, ezáltal a
úton lévő üzenet átju to tt a h álózaton, egy globális e llen ő rző p o n to t leh et létrehozni, nyers szám ítási k ap acitás m eg k étszereződne.
így rendszerh iba esetén a m unka az ellen ő rző p o n ttó l fo lytatható, és n em kell elölről M in d en O p te ro n n a k egy saját S e a s ta r nevű hálózati p ro cesszo ra van; ezeket
kezdeni. A B/K cso m ó p o n to k o n hagyom ányos Linux o perációs ren d szer fut, és egy­ az IB M gyártja. A S eastar kritikus kom p o n en s, m ert szinte a teljes p rocesszorok
szerre több folyam at is aktív lehet. A B lu eG en e/L -rő l további inform áció találh ató k ö zö tti ad atfo rg alo m a S eastar h áló zato n halad keresztül. A ren d szer pillan ato k
(A diga és társai, 2002; A lm asi és társai, 2003a; 2003b; B lum rich és társai, 2005). a la tt te lítő d n e ad ato k k al, ha ezek n ek az egyedi lapkákból k ialak íto tt h áló zatn ak
n em len n e elég nagy a sebessége.
Jó lle h e t O p te ro n k a p h a tó a b o lto k b an is, a R ed S to rm h o z egyedi foglalattal k é­
Red Storm szültek. M in d en R e d S torm alap lap o n négy O p tero n , 2-4 G B R A M , 4 S eastar, egy
R A S (R eliability, A vailability, Service) processzor és egy 100 M bps E th ern e t-lap -
M ásodik M P P -p éld án k a S andia N atio n al L ab o ra to ry R ed S to rm nevű gépe lesz ka van, ahogy az a 8.38. áb rán is láth ató .
(T h o r’s H a m m e r néven is em leg etik ). A S an d iát a L o c k h e e d M artin ü zem elteti, A z a lap lap o k at nyolcasával helyezik k ártyadobozokba. M inden szekrényben
titkos és kevésbé titk o s m u n k á k a t is végeznek az E gyesült Á llam o k E nergiaügyi h á ro m d o b o z van összesen 96 O p te ro n n a l, és szükségképpen helyet k ap n ak a tá p ­
M inisztérium a szám ára. A titk o s m u n k á k egy része n u k leáris fegyverek te rv ezésé­ egységek és v en tilláto ro k is. A teljes ren d sz e r 108 d a ra b szám ításo k at végző p ro ­
vel és szim ulációjával k apcsolatos, am i ren d k ív ü l szám ításigényes. A S an d ia m á r cesszo ro k at ta rtalm azó szekrényből áll, összesen 10368 O p te ro n 10 T B SD R A M -
ré g ó ta tevékenykedik ezen a te rü le te n , és sok fejlett szu p erszám ító g ép ü k volt az m al. M in d en C P U csak a saját SD R A M -jához fé r hozzá, nincs közös m em ória. A
évek során. É vtizedekig a v ek to ro s szu p erszám ító g ép ek et rész e síte tté k előnyben, re n d sz e r elm életi szám ítási k ap acitása 41 teraflo p /m áso d p erc.
de végül technoló g iai és gazdasági okokból az M PP-k előnybe k erü ltek . 2002-re A z O p te ro n C P U -k kö zö tti ö sszek ö ttetést az egyedi tervezésű S eastar ú tv o ­
az akkor A S C I R ed n e k n ev ezett M P P egy kicsit k e zd e tt csikorogni. H a b á r 9460 nalválasztók biztosítják, C P U -n k én t egy. Egy 27 x 16 x 24-es 3D tórusz m inden
processzora, 1,2 T B R A M -ja és 12,5 T B lem e z te rü le te volt, alig 3 teraflo p /m áso d - cso m ó p o n tjáb an el van helyezve egy S eastar. M indegyiknek 7 d a ra b kétirányú,
p e rc e t tu d o tt. E z é rt 2002 nyarán a S andia m eg b ízására a szu p erszám ító g ép ek k é ­ 24 G b p s sebességű csatlakozója van, ezek északra, k e letre, délre, nyugatra, fel-
szítésében nagy m ú lttal ren d e lk e ző C ray R esearch k a p o tt m egbízást az A S C I R ed
u tó d ján ak m egép ítésére.
A z u tó d 2004 au g u sztu sáb an készült el; figyelem re m éltó a n rövid id ő a la tt te r­
veztek m eg és k észíte tte k el egy ilyen nagy gép et. A gyors terv ezést és m eg ép ítést
az te tte lehetővé, hogy a R ed S to rm egy egyedi ú tvonalválasztó lap k a kivételével
csupa k ereskedelm i fo rg alo m b a n k a p h a tó alk atrészek b ő l áll.
A R ed S torm szám ára az A M D O p te ro n p ro cesszo rt v álaszto tták ki. A z O p te-
ro n n ak sok olyan jellem ző je van, am i m ia tt a leg alk alm asab b e rre a célra. E lő szö r
is h áro m m űködési ü zem m ó d ja van. Legacy ü zem m ó d b an szabványos, m ódosítás
nélküli P entium b in áris p ro g ra m o k a t fu tta t. C om patib ility ü z e m m ó d b an az o p e ­
rációs re n d szer 64 bites m ó d b an fut, és 2“ bájtnyi m e m ó riá t tu d m egcím ezni, de
az alkalm azói p ro g ram o k 32 b ites m ó d b an fu tn ak . V égül 64 bites ü zem m ó d b an
az egész gép 64 bites, és m in d en p ro g ra m h a szn álh atja a teljes 64 b ites c ím ta rto ­
m ányt. 64 bites ü zem m ó d b an leh e t k everni a p ro g ram o k at; 32 b itesek és 64 b ite ­
sek is fu th a tn a k egyszerre, m egkönnyítve az á tté ré st.
A z O p te ro n m ásodik fo n to s jellem ző je, hogy terv ezésén él nagyon figyeltek a
m em ória-sávszélesség p ro b lém á jára. A z elm últ évek b en a C P U -k egyre gyorsab­
b ak lettek, de a m em ó riák n em ta rto tta k lép ést velük, e m ia tt nagy á ra t kell fizetni,
h a a m ásodik szintű g y o rsító tárb an sincs a k e re se tt ad a t. A z A M D a m em ó riav e­
zérlő t az O p te ro n b a in teg rálta, így az a ren d szersín sebessége h ely ett a procesz-
szorsín sebességével m ű k ö d h et, ez p ed ig m egnöveli a teljesítm ényt. A vezérlő
nyolc d arab 4 G B -o s D IM M kezelésére képes, összesen te h á t egy O p te ro n n a k
32 G B m em ó riája leh et. A R ed S to rm re n d sz erb e n az O p te ro n o k n a k csak 2 -4 G B 8.38. ábra. A Red Storm komponenseinek elhelyezése
642 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8.4. Ü Z EN ET Á T A D Á SO S M U L T IS Z Á M ÍT Ó G É P E K 643

felé, lefelé és az O p te ro n h o z vezetnek. K ét szom szédos h á ló p o n t k ö zö tti átviteli ko n egyszerűsített Linux fut. A z A S C I R ed rő l sok m inden ren d elk ezésre áll a R ed
idő 2 /U.S. A teljes h áló zat egyik végéből a m ásik b a csak 5 fis. E gy m ásik 100 M bps S to rm h o z, C P U allo k áto ro k , ütem ező k , M P I könyvtárak, m a tem atik ai könyvtá­
E th e rn e t-h á ló z a to t szervizelésre és k a rb a n ta rtá sra h asználnak. ra k és az alkalm azói p rogram ok.
A z előbb em líte tt 108 szekrény m ellett van 16 d arab , B /K és szervizprocesszo­ Egy ilyen nagy ren d szerb en a nagy m egbízhatóság alapvető. M inden alap lap o n
ro k at ta rtalm azó szekrény is. M in d en ilyen szekrényben 32 O p te ro n találh ató . van egy RAS pro cesszo r k a rb a n ta rtá si célokból, illetve m ás speciális h a rd v e r­
E n n ek az 512 C P U -n ak fele B /K célo k ra h aszn álato s, m ásik fele p ed ig szervizpro­ m e g o ld áso k at is alkalm aztak. A cél 50 ó ra M T B F (M ean T im e B etw een Failures,
cesszor. A fe n n m a ra d ó helyet R A ID 3 és R A ID 5 szervezésű lem ezegységek fog­ m eg h ib áso d ások k ö zö tt eltelt átlagos idő) volt. A z A SC I R ed h ard v erén ek 900
lalják cl, m indegyik e se té b e n egy p a ritá s lem ezegységgel, és egy ü zem k ö zb en cse­ órás M T B F é rté k é t k ellem etlen ü l le ro n to ttá k az o p eráció s ren d szer 40 ó rá n k é n t
ré lh e tő tartalék k al. A teljes lem ezk ap acitás 240 TB. A ta rth a tó lem ezsávszélesség b ek ö v etk ező leállásai. A z új h ard v er sokkal m egb ízh ató b b ugyan, m int a régi, a
50 G B /m ásodperc. gyenge p o n t azonban a szoftver m arad t.
A ren d szer titk o s és n em titk o s részre oszto tt, a részegységeket m ech an ik u s A R ed S to rm ró l további inform áció ta lá lh a tó (B rightw ell és társai, 2005).
kapcsolókkal leh e t összekapcsolni vagy szétválasztani. 2688 d a ra b szám ítást végző
C P U m indig a titk o s részb en van, m ásik ugyanilyen 2688 pedig m indig a n em titkos
részben. A m ara d é k 4992 C P U -t bárm elyik részh ez hozzá leh et kapcsolni, ahogy a A BlueGene/L és a RedStorm összehasonlítása
8.39. áb rán láth ató . A 2688 titkos O p te ro n n a k 4 G B R A M -ja van, a tö b b in ek m ind
2 G B -ja. A B/K és szervizprocesszorok fel v a n n ak osztva a k ét rész között. A R ed S to rm és a B lu eG en e/L bizonyos szem pontokból hasonló, m ás szem p o n ­
to k b ó l p ed ig eléggé külön b ö zn ek , de m in d e n e se tre érd ek es egym ás m ellé ten n i


e
/
B/K és szervizegység



5^
X
D□□D□□D
Kapcsoló

□DDDDDDDDDDDD
□□□□□□□ X □□□□□□□□□□□□□ X □□
□□
Számítást végző
egység



\□ □ □ □55
□□□□ X




n éh án y k u lcsfontosságú p a ra m é te rt (lásd 8.40. ábra).
M in d k ét g ép nagyjából u gyanabban az időszakban é p ü lt m eg, te h á t k ü lö n b sé­
geik n em technológiai e re d e tű e k , h an em tervezőik h o zzáállásában, illetve bizo­
nyos m érték ig az elő állító cégek, az IB M és a C ray közötti különbségben k e re s e n ­
dők. A B lu e G e n e /L -t a k ezd etek tő l fogva keresk ed elm i céllal tervezték, az IB M
□ □ X n □□n □□n X □□□□□□□□nnoDD X □□ □ □□□□ X □ □
□ □ X □□□□□□□ X □□□□□□□□□□□□□ X □□ □ □□□□ X □ □ so k at sz eretn e eladni belőle b io technológiai, gyógyszeripari és m ás cégeknek.
^ ^ y J ^ J ^^
Y 'Y Y
Elem BlueGene/L Red Storm
28 titkos 52 átkapcsolíiató 28 nem titkos
120TB-OS szekrény szekrény szekrény 120TB-OS CPU 32 bites PowerPC 64 bites Opteron
tároló (2688 Opteron) (4992 Opteron) (2688 Opteron) tároló Órajel 700 MHz 2GHz
Kiszámítást végző CPU-k száma 65536 10368
CPU-k száma alaplaponként 32 4
8.39. ábra. Red Storm rendszer felülnézeti képe
CPU-k száma szekrényenként 1024 96
Számítást végző szekrények száma 64 108
M in d en t egy új, 2000 m --es é p ü letb en helyeztek el. A z é p ü le te t és a k ö rn y ezetet
Teraflop/másodperc 71 41
úgy tervezték, hogy a re n d sz ert szükség esetén 30 000 C P U -ra leh essen b ővíteni a
Memória CPU-nként 512MB 2-4 GB
jövőben. A szám ítást végző p ro cesszo ro k at ta rta lm a z ó részren d sz e r 1,6 m egaw att
Teljes memória 32 TB 10TB
e n erg iát fogyaszt; a lem ezegységek m ég egy m eg aw atto t. V entillátorokkal és lég­
Útvonalválasztó PowerPC Seastar
k o n dicionálókkal együtt 3,5 m egaw att a teljes en ergiaszükséglet.
Útvonalválasztók száma 65536 10368
A h ard v er és a szoftver 90 m illió d o llárb a k erü lt. A z é p ü le t és a h ű té s to v áb ­
Hálózati topológia 3D tórusz 64 X 32 X 32 3D tórusz 27 X 16 X 24
bi 9 m illió d ollárb a, te h á t a teljes összeg valam ivel 100 m illió d o llár a latt m ara d t,
Egyéb hálózatok Gigabit Ethernet Fást Ethernet
h a b á r e n n ek egy része egyszeri m érn ö k i m u n k ára m e n t el. H a sz eretn e valaki
Particionálható Nem Igen
egy p o n to sa n ugyanilyet, ak k o r úgy 60 m illió d o llárt k ellen e rászánnia. A C ray
Számítások operációs rendszere Egyedi Egyedi
R esearch en n ek kisebb verzióit ko rm án y zati és piaci v ásárló k n ak sz eretn é é rté k e ­
B/K operációs rendszere Linux Linux
síteni X 3T név alatt.
Gyártó IBM Cray Research
A szám ításokat végző c so m ó p o n to k b an egy ca ta m o u n t nevű könnyű súlyú o p e ­
Drága? Igen Igen
rációsrendszer-m ag fut. A B /K és a szervizcso m ó p o n to k b an sim a m ezei L inux fut
egy kis M P I-tám o g atással (az M P I-ró l k ésőbb m ég szó lesz). A RAS p ro c e ssz o ro ­ 8.40. ábra. A BlueGene/L és a Red Storm összehasonlítása
644 8. P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ú R A 8.4. Ü Z EN ET Á T A D Á SO S M U L T IS Z Á M lT Ó G É P E K 645

A R ed S torm a Sandiával k ö tö tt speciális ‘.zerződés k e re té b e n készült, h a b á r a S okfajta C O W létezik, azonban két csoport m egh atáro zó : a k ö z p o n to síto tt és
C ray is szeretn e kereskedni kisebb verzióival. a széttagolt. Egy k ö z p o n to síto tt C O W m u n k aállo m áso k n ak vagy F C -knek egy
A z IBM elképzelése egyértelm ű: m eglévő m agokból h ozzunk létre egy egyedi olyan c so p o rtja, am elyet egyetlen helyiségben szerelnek össze. N é h a a szokásosnál
lapkát, am ely nagy m ennyiségben olcsón elő állíth ató , ü zem eltessü k alacsony se­ sokkal sű rű b b en helyezik el ezeket, hogy a fizikai m éret és a káb elek hossza csiik-
bességen, és kapcsoljunk össze nagyon so k at egy k ö zep es sebességű k o m m u n ik á­ k en jen . Á lta láb an a gép ek h om ogének, a h áló za ti k árty án és esetleg a lem ezeken
ciós hálózattal. A Sandia elképzelése ugyanilyen egy értelm ű , de m ás: vegyünk egy kívül nincs m ás p erifériájuk. G o rd o n B ell, a P D P - J 1 és a VAX tervezője ezeket
b o ltb an k ap h ató erős 64 bites C P U -t, tervezzünk hozzá egy nagyon gyors ú tv o n al­ a g é p ek et fej nélk ü li m u n k a á llo m á so k n a k nevezte (m ivel a g ép ek n ek nincs gaz­
választó lapkát, és adjunk hozzá jó sok m em ó riát, így a B lu eG e n e /L -én é l sokkal d áju k ). M eg teh etn én k , hogy fej nélküli te h e n e k n e k (C'OW, te h é n ) hívnánk ezeket,
erősebb építő ele m et kapunk, keveseb b re van szükség, és a kom m u n ik áció gyor­ de félő, hogy egy ilyen elnevezés túl sok szent te h e n e t sérten e, ezért inkább ta r­
sabb közöttük. tó zk o d u n k tőle.
E zek n ek a d ö n tések n ek következm ényei lettek a cso m ag o lásra nézve. A z IB M A széttag o lt k laszterek olyan m u nkaállom ásokból vagy P C -kből állnak, am elyek
egyedi lapkát ép íte tt processzorral és útvonalválasztóval, így nagyobb sű rű ség et egy ép ü le t vagy egy egész intézm ény te rü le té n találh ató k . E zek legtöbbje n a p o n ta
ért el: 1024 C PU /szekrény. A Sandia készen k a p h a tó C P U -k a t h aszn ált fel 2 -4 G B tö b b ó rá n k eresztül té tle n , első so rb an éjszakánk ént. G yakran egy L A N -ban van­
R A M -m al társítva, így csak 96 C P U -t tu d o tt elhelyezni egy szekrényben. A z e re d ­ nak összekapcsolva. Jellem ző, hogy a gép ek h etero g én ek , és a p erifériák teljes so­
m ény az, hogy a R ed S torm tö b b helyet foglal, és tö b b e t fogyaszt, m in t a B lue- rával ren d elk ezn ek , b á r egy 1024 eg érrel ren d elk ező C O W nem sokkal jo b b , m int
G ene/L . egy e g é r nélküli COW. A legfontosabb, hogy a gépek legtöbbjének van gazdája,
A nem zeti lab o rató riu m o k szám ító k ö zp o n tjain ak egzotikus v ilágában a végső ak iket érzelm i szálak fűznek a gépükhöz, és rossz néven veszik, ha azokon m in­
cél a teljesítm ény. E b b en a v o n atk o zásb an a B lu e G e n e /L a győztes, 71 T F /m áso d - d en féle csillagászok az ő sro b b an ást szim ulálják. A té tle n m un k aállo m áso k fel­
perc a 41 rF /m áso d p erccel szem ben, de a R ed S to rm o t b ő v íth e tő re terv ezték , te ­ használásával olyan C O W alak íth ató csak ki, am elyben lehetőség van a felad ato k
h át m eg 10 368 O p te ro n bev etése á rán (p éld áu l k étm ag o s lap k á k ra való á tá llá s­ elv á n d o ro lta tására, am ikor a tu lajd o n o sa visszaköveteli a gép ét. A felad at v á n d o ­
sal) a S andia valószínűleg fel tu d ja to rn ászn i m ag át 82 T F /m á so d p e rc re. A z IBM ro lta tá s leh etséges, de a szo ftvert tovább bonyolítja.
válasza az órajel kis m egnövelése leh et (700 M H z n em nagyon feszegeti n ap jain k A k laszterek gyakran kicsik, tu catnyitól esetleg 500 PC -ig te rje d a m éretü k .
technológiai k orlátait). R öviden, az M P P szu p erszám ító g ép ek n em é rte k m ég fizi­ N agyon nagyokat is leh et azo n b an ép íten i bolti PC -kből. A G oogle m eg is tette;
kai korlátúik közelébe, és a k övetkező években egyre n ö v ek ed n i fognak. nézzük m eg, hogyan.

8.4.3. Klaszterszámítógépek Google

A m ultiszám ítógépek m ásik fajtája a k laszte rszám ító g ép (A n d e rso n és társai, A G o o g le egy n ép szerű in fo rm áció k ereső re n d szer az in te rn e te n . N épszerűségét
1995; M artin és társai, 1997). R en d szerin t n éh án y száz vagy ez e r szem élyi szám í­ részben eg y szerűségének és rövid válaszidejének k öszönheti, de szerkezete é p ­
tógépből (P C ) vagy m u nkaállom ásból áll, am elyek a k e resk e d e lem b e n e lé rh e tő penséggel n em egyszerű. A G oogle n éző p o n tjáb ó l a p ro b lém a az, hogy keresni,
hálózati kártyákkal csatlakoznak egym áshoz. E gy M P P és egy C O W (C lu ste r o f indexelni és táro ln i kell az egész W orld W ide W ebet (tö b b m int 8 m illiárd lap és
W orkstations, m unkaállom ások k lasztere) k ö zö tti k ü lö n b ség h aso n ló egy nagy­ 1 m illiárd kép), á t kell fésülni az egészet fél m áso d p erc alatt, és kezelni kell a vi­
szám ítógép és egy szem élyi szám ítógép közö tti különbséghez. M in d k e ttő n e k van lág m in d en tájáró l m á so d p ercen k én t é rk ező több ezer k érést a n a p 24 ó rájában.
C PU -ja, RA M m em óriája, lem ezeik, op eráció s ren d sz e rü k és így tovább. A nagy­ R áad á su l soha nem állh at le, m ég földrengés, áram szü n et, vonalszakadás, h a rd ­
szám ítóg épben m in d en sokkal gyorsabb (kivéve ta lán az o p eráció s ren d sze rt). ver- vagy szoftverhiba m iatt sem . É s term ész etesen m indezt olyan olcsón kell el­
M égis m inőségileg m ások, és m ásk ép p en kell használni és ü zem eltetn i. U gyanez a é rn ie, am en n yire csak lehetséges. Egy G oogle-klón m eg ép ítése h a tá ro z o tta n nem
k ülönbözőség m egvan az M PP-k cs a C O W -k között. az a felad at, am it a könyvekben ad n ak az olvasóknak.
A kulcselem , am ely az M PP-ket egyedivé te tte , a nagy sebességű összekötő h áló ­ H ogy csinálja a G oo g le? K ezdetnek p éld áu l so k ad atk ö z p o n to t ü zem e ltet a vi­
zat volt, azonban m a m ár a k eresk ed elem b en is k ap h ató k nagy sebességű összekötő lág k ü lö n b ö ző po n tjain . E z nem csak azért jó , m e rt ha fö ld ren g és e setén az egyik
hálózatok, em iatt a különbség egyre csökken. M in d en t egybevetve a klaszterek való­ m egsem m isül, ak k o r van m ásolat, h an em azért is, m ert am ik o r a www.google.com
színűleg egyre szűkebb terü letre fogják visszaszorítani az M PP-ket, ahogy a PC -k a kell valakinek, akkor az illetőt IP cím e alapján a legközelebbi a d atk ö z p o n th o z irá­
nagyszám ítógépeket különleges ritkaságokká tették . M PP-ket főleg nagy költségve­ nyítják. A böngésző aztán azzal kom m unikál.
tésű szuperszám ítógépek között találunk, ahol a csúcstcljcsítm ény a legfontosabb. M in d en a d a tk ö z p o n tn ak legalább egy O C -48-as (2,488 G bps) üvegszálas k a p ­
H a az á rat m eg kell kérdeznünk, akkor n em en g ed h etjü k m eg m agunknak. cso lata van az in te rn e tte l, ezen fog ad ja a k érések et, és küldi a válaszokat.
646 8. P Á R H U Z A M O S SZÁ M fT Ó G ÉP-A R C H IT EK T Ú R A 8.4, ü z e n e t á t a d A s o s m u l t i s z á m It ó g é p e k 647

M indegyiknek van m ég egy O C -12-es (622 M bps) m ásodlagos k a p cso lata is egy k ö v etk ező legnagyobb ran g szám ú d o k u m en tu m azo n o sító t, és így tovább. A hogy
m ásik szolgáltatón k eresztü l a rra az ese tre, h a az elsődlegessel valam i tö rtén n e. a w eb növekszik, a szeletek et fel leh et b o n tan i, az első k szó k erü ln e az első sze­
S zü n etm en tes ára m fo rrá so k és v észtartalék n ak d ízelm o to ro s g e n e rá to ro k van n ak leth alm azb a, a m ásodik k szó a m ásodik szelethalm azba és így tovább, hogy m ég
m in d en a d a tk ö z p o n tb a n , hogy ára m szü n e t e setén is fo ly tató d h asso n a m ű so r. Egy tö b b p árh u zam o sság leh essen a k eresésekben.
nagyobb term ész eti k atasz tró fa e se té n a teljesítm én y csökken ugyan, de a G oogle A z in dexszerverek egy d o k u m en tu m azo n o sító halm azt adn ak vissza (ő), a m e ­
m ű k ö d ő k ép es m arad . lyeket aztán a kérés B o o lean -m ű v eletein ek m egfelelően kom b in áln ak össze.
H ogy jo b b an m eg érth essü k , m ié rt v á laszto tta a G oogle é p p e n azt az a rc h ite k tú ­ P éld áu l, ha a -l-digital -l-capybara -l-dance volt a k e re se n d ő kifejezés, ak k o r a
rát, am it választo tt, h asznos á tte k in te n ü n k egy k érés feld o lg o zásán ak m e n e té t o n ­ követk ező lép ésb en csak azo k a d o k u m en tu m azo n o sító k vesznek részt, am elyek
n a n kezdve, hogy b eé rk ez ik egy ad atk ö z p o n tb a . A z ad a tk ö z p o n tb a való b eérk e zé s m in d a h á ro m h alm azb an b en n e voltak. A következő lép ésb en (7) beleolvasnak a
u tán (lásd 1. lépés a 8.41. á b rá n ) a terh e lé se lo sztó a k ezelő k (2) egyikéhez irán y ít­ d o k u m e n tu m o k b a, hogy a cím , U R L és a k e re se n d ő kifejezést ta rtalm azó szöveg­
ja a kérést, illetve egyidejűleg a h ely esírá s-ellen ő rző h ö z (3) és a rek lám sz erv erh ez kö rn y ezet ren d elk ezésre álljon. A d o k u m en tu m szerv erek a w eb tö b b péld án y át is
(4) is. E z u tá n a k ereső szav ak at p á rh u z a m o san m eg k eresi az in d ex szerv erek en (5). táro lják m in d en a d atk ö z p o n tb an , ez jelen leg tö b b száz terab ájtn y i adat. A d o k u ­
E zek a szerverek a w eb en ta lá lh a tó m in d en szóhoz ta rta lm a z n a k egy bejegyzést. m e n tu m o k szintén szeletek re van n ak osztva, hogy a p árh u zam o s k eresés le h e tő sé ­
M in d en bejegyzés m ö g ö tt ran g szám szerinti so rre n d b e n listára van fűzve az összes gét m eg terem tsék . Jó lle h e t egy k érés feldolgozása során nem kell az egész w ebet
olyan d o k u m en tu m (w eboldal, P D F fájl, P ow erP oint p re z e n tá c ió stb.), am elyben végignézni (m ég csak a tö b b tíz te ra b á jto t sem az indexszervereken), d e k é ré se n ­
a szó m eg találh ató . A ran g szám o t egy bony o lu lt (és titk o s) k é p le tte l szám ítják ki, k én t 100 M B feldolgozása teljesen szokványos.
de az egy lap ra hivatkozó oldalak szám a és ezek ran g szám a nagy sze rep e t játszik. A m ik o r az ered m én y ek a kezelőhöz visszaérkeztek, a lap o k at rangszám szerint
A teljesítm ény növelése é rd e k é b e n az in d ex ek p á rh u z a m o sa n k e re sh e tő szele­ sorb a ren d ezik. H a elírást leh et gyanítani (9), akkor beilleszten ek egy figyelm ez­
te k re van n ak osztva. E lvileg az 1. rész az index m in d en szavát tartalm azza, m in d ­ teté st, m ajd elhelyeznek m ég egy-két h ird e té st (10). A G oogle azzal k eres pénzt,
egyik u tá n az n legnagyobb rangszám ú olyan d o k u m e n tu m azonosítójával, am ely hogy m eg h a tá ro z o tt keresési kifejezéseket (például „ h o te l” vagy „cam co rd er”)
tartalm azza a szót. A 2. szelet is tartalm azza az összes szót, és m indegyikhez az n e la d az az irá n t é rd ek lő d ő h ird ető k n ek , m ajd ezek h ird e té se it m egjeleníti. V égül
az ere d m é n y e k e t H T M L (H yperT ext M ark u p L an g u ag e) fo rm á tu m ra hozzák, és
w eb lap k én t a felhasználóhoz küldik.
E zzel a h á tté rre l m ost m egvizsgálhatjuk a G o o g le-arch itek tú rát. A legtöbb cég,
a m ik o r azzal a szem besül, hogy egy h a talm as ad atb áziso n m eg b ízh ató an kell egy­
ségnyi idő a la tt ren g eteg tran zak ció t végrehajtani, akkor általáb án m egveszi a
legnagyobb, leggyorsabb és legm egbízhatóbb b eren d ezést, am it csak be leh et sze­
rezni. A G oogle ép p en az ellen k ező jét te tte . O lcsó, k özepes teljesítm ényű P C -ket
vett. N agyon sokat. E zekből aztá n m e g é p íte tté k a világ legnagyobb k észen k a p h a ­
tó a lk atrészek b ő l álló k laszterét. E d ö n tés m ö g ö tt egy egyszerű alapelv húzódik
m eg: optim alizáljuk az ár/teljesítm ény arányt.
A d ö n té s m ögötti logika gazdasági jellegű: a PC -k nagyon olcsók. A nagy te lje ­
sítm ényű szerverek n em azok, a nagy m u ltip ro cesszo ro k pedig m ég kevésbé. így
míg az erő s szerverek teljesítm énye ugyan k étszer vagy h áro m szo r nagyobb, m int
a közepes asztali PC -ké, de közb en 5-10-szer tö b b e kerü ln ek , am i nem kö ltség ­
h atékony.
T erm észetesen az olcsó PC -k gyakrabban hib áso d n ak m eg, m int a m inőségi
szerverek, de az u tó b b iak is m eg h ib áso d n ak n éh a, ezért a G oogle-szoftvert m in ­
d e n k é p p e n fel kell készíteni a hardve hib ák ra, akárm ilyen b ere n d e z é se k e t is hasz­
n áln án a k . H a a h ib a tű rő szoftver m ár elkészült, akkor n em igazán szám ít, hogy a
h ib aarán y év en k én t 0,5% vagy 2% , m in d en k ép p en kezelni kell. A G oogle ta p asz­
ta la ta szerin t a PC -k 2% -a hibásodik m eg m in d en évben. A hibák több m int a fe ­
le hib ás lem ezegységek m iatt következik be, ezu tá n a tápegységek és a R A M -ok
k övetk ezn ek . B ejára tó d ás u tán a processzo ro k m á r sohasem hib áso d n ak meg.
8.41. ábra. Egy Google-kérés feldolgozása V alójában a lefagyások leggyakoribb fo rrása egyáltalán nem a h ardv er, h an em a
648 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ü R A
8.4. ü z e n e t At a d á s o s m u l t i s z á m It ó g é p e k 649

szoftver. A lefagyásra a d o tt leggyakoribb reak ció az ú jratö ltés, am i gyakran m eg höz el van vezetve. A bejövő op tik ai szálak speciális b em en e ti k árty ák at h aszn ál­
is oldja a p ro b lé m á t (ez az e lek tro n ik u s m egfelelője a n n ak , am ik o r az orvos azt nak, n em a 128 E th e rn e t-k a p u egyikéhez csatlakoznak. M in d en ta rtó k e re tb ő l 4
m ondja: „Vegyen be k ét aszp irin t és fek ü d jö n le!”). E th e rn e t-c satlak o zó jö n ki, k e ttő a bal oldali sw itch-hez, k e ttő pedig a jo b b oldali
Egy tipikus m o d ern G oogle P C -ben egy 2 M H z-es P en tiu m , 512 M B R A M és sw itch-hez. E b b en a konfigurációban a ren d szer bárm elyik sw itch m eghibásodását
k ö rülbelül 80 G B -o s lem ezegység van, ez nagyjából olyan gép, am it a nagym am ák ki tu d ja heverni. M ivel m in d en ta rtó k e re tn e k négy csatlakozása van a sw itch-ek
vesznek m agukn ak em ailezéshez. A z egyedüli speciális téte l egy E th e rn e t-la p k a . felé (k e ttő az elülső 40 P C -től, k e ttő pedig a h átsó k tó l), ezért négy csatlakozóhiba,
N em é p p e n a leg m o d ern eb b , d e nagyon olcsó. A P C -k szabványos (kb. 5 cm ) m a ­ illetve k ét csatlakozóhiba és egy sw itch-hiba kell ahhoz, hogy egy ta rtó k e re t lesza­
gasságú h ázb an v annak, negyvenesével egym ásra p akolva 19 inch-es ta rtó k e re ­ k ad jo n a hálózatról. K ét 128 k apus sw itch-csel, és ta rtó k e re te n k é n t négy csatlak o ­
tek b en , k ét oszlopban egym ás m ö g ö tt, te h á t összesen 80 P C van egy ta rtó k e re t­ zóval m axim álisan 64 ta rtó k e re te t leh et kiszolgálni. T artó k e reten k én t 80 PC-vel
ben. A 80 P C össze v an kötve kapcsolt E th e rn e tte l, m aga a switch is a ta rtó k e r e t­ szám olva 5120 PC fé r el egy ad atk ö z p o n tb an . T erm észetesen egy ta rtó k e re tb e n
ben van. A z a d a tk ö z p o n t egyes ta rtó k e re te i szintén össze v an n a k kötve kapcsolt nem kell p o n to san 80 P C -n ek lennie, és a sw itch-eknek is leh et több vagy keve­
E th e rn e tte l, sőt, k ö z p o n to n k é n t k ét ta rta lé k switch is van, hogy a sw itch-m eghibá- sebb k ap u ju k; ezek csak tipikus é rték ek egy G o ogle-klaszterben.
sodások is tú lélh e tő k legyenek. A z en erg iasű rű ség is kulcsfontosságú. Egy tipikus P C nagyjából 120 w atto t fo ­
E gy tipikus G o o g le-ad a tk ö z p o n t elre n d ez é se lá th a tó a 8.42. áb rán . A b e jö ­ gyaszt, ez körülb elül 10 kW ta rtó k e re te n k é n t. Egy ta rtó k e re tn e k nagyjából 3 m-
vő nagy sávszélességű O C -48-as o p tik ai kábel h ozzá van kötve a k ét 128 k ap u s hely kell, hogy a k a rb a n ta rtó szem élyzet P C -t tu d jo n cserélni, illetve hogy a lég­
E thernet-sw itch-h ez. H aso n ló a n a ta rta lé k O C -12-es o p tik ai kábel is m in d k ettő - k o n d icio n álás h atáso s legyen. E zekkel a p ara m é te re k k e l az energ iasű rű ség re
3000 watt/m ^ feletti é rté k jö n ki. A legtöbb a d a tk ö z p o n to t 600-1200 w att/m ’-rc
OC-l 2 üvegszál OC-48 üvegszál
tervezik, így speciális intézk ed ések re van szükség a hűtéshez.
A G o o g le h áro m alap v ető dolgot ta n u lt m eg a kom oly w ebszerverek ü z e m e lte ­
i tése során, e zek et n em á rt m egism ételni:

1. A lk a tré szek m eg fognak hibásodni, e z ért erre fel kell készülni.


128 kapus Gigabit
2. M in d e n t m eg kell többszörözni az átb o csátó k ép esség és a ren d elk ezésre állás
128 kapus Gigabit
Ethernet-sviíitch Ethernet-switch érd e k é b en .
3. O p tim alizálju k az ár/teljesítm ény arányt.

Két gigabit
A z első p o n t azt m ondja, hogy a h ib a tű rő szoftverre van szükség. M ég a legjobb
Ethernet- b e re n d e zé se k esetén is, h a nagyon sok van belőlük, lesz olyan, am elyik m eg h ib á­
kapcsolat sodik, és a szoftvernek ezt kezelnie kell. A k á r egy hiba van h e te n te , ak ár k ettő , e k ­
k o ra re n d sz erb en a szoftvernek kezelnie kell a hibákat.
A m ásodik p o n t a rra hívja fel a figyelm et, hogy a h ard v ern ek és a szoftvernek
g -IU C=3C3
□ a -80 PC-s is tö b b szö rö sen re d u n d án sn ak kell lennie. H a ez teljesül, akkor nem csak a h ib a­

: ; • tartókeret tű ré s lesz nagyobb, de az átb o csátó k ép esség is nő. A G oogle eseté b e n a PC -k, a
1__II__1

/ \ / \ / \ / \/ \ / \/ \
lem ezegységek, a v ezeték ek és a sw itch-ek m ind többszörözve vannak, lö v á b b á az
/ \
\
indexek és a d o k u m en tu m o k szeletek re van n ak osztva, a szeletek pedig m inden
c=3a N
caca a d a tk ö z p o n tb a n többszörözve vannak, sőt m ég az ad a tk ö z p o n to k is tö b b szö rö z­
ve vannak.
• • •
A h a rm a d ik p o n t az első k e ttő következm énye. H a a ren d szer h ib a tű rő re van
• • • • •
A
• •
w

w w 9 • • tervezve, a k k o r hiba len n e d rág a eszközöket, p éld áu l R A ID -szervezésű SCSI le­
• • • • •
m ezegységet venni. E zek is m eg fognak hibásodni, így rossz ö tle t tízszer annyit

/ / \ / \ / \ / \/ \
' '
k ö lten i csak azért, hogy fele annyi hiba fo rd u ljo n elő. Sokkal jo b b tízszer annyi
h a rd v e rt v enni, és kezelni a h ibákat, am ik o r fellépnek. H a m ás előnye nincs is,
a c 3


C=IC=I !c “r
!
C =H = S S
tö b b h a rd v e rrel a teljesítm ény nagyobb lesz, am ik o r m in d en re n d b e n m űködik.
A G o o g le-ről további info rm ációk találh ató k (B arosso és társai, 2003; G h em aw at
8.42. ábra. Egy tipikus Google-i<laszter és társai, 2003).
650 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A
8.4. Ü ZEN ET Á T A D Á SO S M U L T IS Z Á M ÍT Ó G É P E K 651

8.4.4. A multiszámítógépek kommunikációs szoftvere m ik o r h aszn álh atja ú jra a p u ffért. A z egyik lehetőség, hogy bizonyos id ő k ö zö n ­
k é n t m eg k érdezi a ren d szert. A m ásik lehetőség, hogy egy m egszakítást kap, am i­
Egy m u ltiszám ító g ép p ro g ram o zásáh o z speciális szoftverre, re n d sz e rin t e ljá rá s­ k o r a p u ffe r elé rh e tő . E zek egyike sem teszi egyszerűbbé a szoftvert.
k önyvtárakra van szükség a belső folyam atok közö tti kom m u n ik áció és a szink- A követk ező részben egy n épszerű, sok m ultiszám ítógépen alk alm azo tt ü z e n e t­
ronizáció k ezelésére. E b b en a részb en röviden e z ek et a szo ftv erek et tárgyaljuk. átad á si re n d szert vizsgálunk m eg röviden, az M P I-t.
T öb b ség éb en ugyanaz a szoftvercsom ag az M P P -ken és a k laszterek en is fut, így az
alkalm azások a p la tfo rm o k k ö z ö tt k ö n n y en m o zg ath ató k .
A z ü z en etátad á so s re n d sz e re k b e n k é t vagy tö b b folyam at egym ástól fü g g etle­ M PI - Üzenetátadás interfész
nül fut. Például, az egyik folyam at olyan a d a to k a t állíth at elő, am elyet egy vagy
tö b b m ásik folyam at b em e n e ti a d a tk é n t használ fel. Sem m i g aran cia nincs arra, H osszú évekig a m u ltiszám ítógépek legnép szerűbb kom m unikációs csom agja a
hogy am ik o r a küld ő m á r elkészült egy ad attal, a k k o r a fo g ad ó (k ) k észen áll(n ak )
PVM (Parallel Virtual M achine, virtuális párhuzam os szám ítógép) volt (G cist és
a n n ak a fo gadására, mivel m indegyik a saját p ro g ra m já t fu ttatja. társai, 1994; S u n d erram , 1990). A z u tóbbi években azo n b an egyre inkább felváltja
A legtöbb ü z e n etá ta d áso s re n d sz e r k ét prim itívvel (ren d sz erin t könyvtári hívá­
az M PI (M essage-P assing Interface, üzenetátadás interfész). A z M Pl a PV M -ncl
sok) rendelkezik, ezek a send és a récéivé, de ezek n ek szám os k ü lö n b ö ző m egvaló­
g azd ag ab b és sokkal ö sszetetteb b , sokkal több könyvtári függvénnyel, opciókkal cs
sítása létezik. A h áro m fő válto zat a következő:
hív áso n k én ti p a ra m é te re k k e l rendelkezik. A m anap ság M P I -l- n e k hívott e re d e ­
ti M P I-v álto zato t fejlesztették tovább 1997-ben, am inek ered m én y ét M P l-2 -n e k
1. Szinkron ü zen etátad ás. n ev ezték el. A k övetkezőben vázlatosan b em u tatju k az M P I - l- e t (am iben m inden
2. P u ffereit ü zen etá tad á s.
alap v e tő b e n n e van), m ajd röviden m egnézzük, hogy m ennyiben több az M P I-2 .
3. N em blokkoló ü z e n e táta d á s.
A z M P I-l-re v o n atk o zó további info rm áció t lásd (G ro p p és társai, 1994; S nir és
társai, 1996).
A szinkron üzenetátadásnál, h a a k ü ld ő v ég reh ajt egy send u tasítást, és a fo g a­
A z M P I-1 a P V M -m el e llen tétb en nem foglalkozik a folyam atok lé tre h o z á sá ­
d ó ad d ig ra m ég n em h a jto tt végre egy récéivé u ta sítást, ak k or a k ü ld ő blokkoló-
val és kezelésével. A felhasználó dolga, hogy helyi ren dszerhívások segítségével a
dik (felfüggesztődik), am íg a fogadó egy récéivé u tasításh o z ér, m ajd m eg tö rté n ik
fo ly am ato k at létrehozza. L é tre jö ttü k u tán statikus, k ésőbb n em változó folyam at­
az ü z e n etátad ás. A m ik o r a k ü ld ő a hívást kö v ető en visszakapja a v ezérlést, biztos
cso p o rto k b a szerveződnek. A z M P I ezekkel a csop o rto k k al dolgozik.
leh et b en n e, hogy az ü ze n et elk ü ld ésre k erült, és a fo g ad ó h o z h ib átlan u l m eg ­ A z M P I négy m e g h atáro zó jellegű fo g alo m ra épül: k o m m u n ik áto ro k , ü zen etek
é rk ezett. E z a m ó d szer a legegyszerűbb, és n em igényel sem m iféle pu fferezést.
ad a ttíp u sa i, kom m unikációs m űv eletek és virtuális topológiák. Egy kom m uniká­
K om oly h átrán y a viszont, hogy a k ü ld ő m in d ad d ig blok k o lt hely zetb en van, am íg
tor egy fo ly am atcsoportból és egy k ontextusból áll. A k o ntextus valam inek az azo ­
a fogadó m egkap ja és nyugtázza az ü zen etet.
n o sításá ra szolgáló cím ke, p éld áu l ilyen leh et egy v égrehajtási fázis. A z ü ze n e tk ü l­
A puffereit üzenetátadásnál, ha egy ü zen et elküldése azt m eg elő ző en tö rté n ik ,
désn él és -fogadásnál a k ontextus alkalm azásával érik el, hogy az össze nem ta r to ­
hogy a fogadó k észen állna, az ü z e n e t v alahol táro ló d ik , p éld áu l egy p o sta lá d á ­
zó ü z e n e te k ne zavarják egym ást.
ban, am íg a fogad ó ki n em veszi o n n an . így a p u ffereit ü z e n e táta d á sn á l a k ü ld ő a
A z ü ze n etek típusoltak, sok tá m o g a to tt ad attíp u s van, b eleértv e a k arak terek et,
send végreh ajtása u tá n fo ly tath atja m ű k ö d ését, m ég a k k o r is, ha a fo g ad ó valam i
a rövid, n o rm ál és hosszú egészeket, a szim pla és d u p la p ontosságú leb eg ő p o n to s
m ással van elfoglalva. M ivel az ü z e n e t ténylegesen elk ü ld ésre kerül, e z é rt a k ü l­
szám o k at és így tovább. E zekből szárm aztatva m ás típusok is létreh o zh ató k .
dő n ek leh ető ség e van arra, hogy az ü z e n e tp u ffert azo n n al ú jra felhasználja. E z a
A z M P I a kom m unikációs m űveletek széles k ö ré t tám ogatja. A legalapvetőbb
m egvalósítás a k ü ld ő v árakozási id ejét csökkenti. T ulajd o n k ép p en am in t a re n d ­
m űv elet az ü zen etk ü ld és, ez a követk ező k ép p en tö rté n h e t:
szer elküldi az ü ze n ete t, a k ü ld ő fo ly tath atja a m ű k ö d ését. A zo n b an m o st a k ü ld ő
nem leh et biztos a b b an , hogy az ü z e n e t hibátlan u l m eg érk ezett. M ég ha a k o m m u ­ MPLSend(puffer, darab, adattípus, címzett, címke, kommunikátor)
nikáció m egbízh ató is, elő fo rd u lh a t, hogy a fogadó összeom lik, m ie lő tt m egkapja
az ü zen etet.
E z a hívás elküldi a p u fferb ő l a m eg a d o tt d arab szám ú és a d attíp u sú elem et a cím ­
A nem blokkoló üzenetküldésnél a k ü ldő a hívás u tán azonnal fo ly tath atja m ű ­
zetth ez. A cím ke m ező szerin t m egcím kézi az ü z en etet, így a fo g ad ó n ak le h e tő ­
k ö d ését. A könyvtári eljárás csak annyit tesz, hogy az o p eráció s re n d sz e rt m egkéri,
sége v an arra, hogy csak bizonyos cím kéjű ü zen e te k e t fogadjon. A z utolsó m ező
hogy am ik o r ideje van, csinálja m eg a hívást. E n n ek k ö v etk ez téb en a k ü ld ő alig
azt ad ja m eg, hogy a cím zett m elyik fo ly am atcso p o rtb an van (a cím zett m ező ta r­
blokkolódik. E n n e k a m ó d szern ek az a h átrán y a, hogy am ik o r a k ü ld ő fo lytatja a
ta lm a egy index, am ely a fo ly am atcso p o rth o z ta rto z ó listában a folyam atot jelöli).
m ű k ö d ését a send u tá n , lehetséges, hogy az ü zen e tp u ffe r m ég n em h aszn álható ,
Ü z e n e t fo g ad ásáh o z a m egfelelő hívás a következő:
m e rt az ü zen et m ég nincs elküldve. V alahogyan m eg kell tu d n ia a k ü ld ő n ek , hogy
8.4. Ü ZEN ET A T A D A SO S M ULTI SZ Á M ÍT Ó G É P E K 653
652 8. P Á R H U Z A M O S SZ A M IT Ó G ÉP - A R C H IT E K T Ü R A

k ö v ető en szigorú első k én t be, elsőként ki so rren d b en futnak, ahogyan a 8.43. (a)
MPI_Recv(&puffer, darab, adattípus, forrás, címke, kommunikátor, &állapot)
áb rá n láth ató . E b b en a m o d ellb en egy p ro g ram elindulása u tán az ü tem ező m eg­
vizsgálja, hogy van-e eleg e n d ő szám ú C P U a b e m en e ti sorban levő következő fel­
E z azt jelen ti, hogy a fo g ad ó a forrás m ező b en szerep lő folyam attól a m eg ad o tt
a d a t elin d ításához. H a igen, elindul a fe lad at cs így tovább. K ülönben a ren d szer
ad attíp u sú elem ekből álló, m eg ad o tt cím kéjű ü z e n e tre vár.
addig vár, am íg a m egfelelő szám ú C P U elérh ető v é válik. M ellékesen szólva, bár
A z M PI négy alap v e tő k o m m unikációs m ó d o t tám o g at. A z 1-es m ód a szinkron,
a 8.43. á b ra azt sugallja, hogy a klaszterben nyolc C P U van, de ez leh et 128 C PU
am elynél a küldő n em in d íth a tja a k üldést, am íg a fo g ad ó egy M PLRecv hívást vég­
is, am elyek kiosztása 16-os egységekben (nyolc C P U alkot egy c so p o rto t) tö rtén ik ,
re nem hajt. A 2-es m ód a p u ffereit, am elynél nincs ez a k orlátozás. A 3-as m ód
de m ás felosztás is lehetséges.
a szabványos, ez függ a m egvalósítástól, és leh e t a k á r szinkron, a k á r p u ffereit. A
4-es m ód a készenléti, am elynél a k ü ld ő tu d ja, hogy a fo g ad ó m á r várja az ü z e n e ­
CPU-csoport CPU-csoport CPU-csoport
te t (m int a szink ro n n ál), d e nem végez sem m ilyen ellen ő rzést. E zen prim itívek
m indegyikének van blok k o ló és nem blo k k o ló v álto zata, vagyis ez összesen nyolc
prim itívet eredm ényez. A fo g ad ásn ak csak k ét v álto zata van: b lokkoló és nem
blokkoló.
A z M PI tám o g atja a kollektív kom m u n ik áció t, b eleé rtv e az ü zen etszórást,
a széttagoló/gyűjtő, a teljes cserélő, a felh alm o zó és a so ro m p ó m ód szerek et.
M inden kollektív ko m m u n ik áció s fo rm án ál egy cso p o rt összes fo ly am atán ak m eg
kell hívnia a m eg felelő függvényt, m égpedig kom p atib ilis a rg u m en tu m o k k al. H a
nem így tö rtén ik , hib a lép fel. A kollektív kom m u n ik áció gyakori fo rm ája a fa ­
stru k tú rá b a re n d e z e tt fo ly am ato k n ál fo rd u l elő, am ik o r az é rté k e k a levelektől a
gyökér felé haladva a d ó d n a k át úgy, hogy m in d en lépésnél bizonyos feldolgozáson
m en n ek át, példáu l ö sszead ás vagy m axim um képzése.
A z M P I-ben a negyedik alapfogalom a v irtu á lis topológia, am elyben a folyam a­
tok egy fába, gyűrűbe, rácsba, tó ru szb a vagy m ás to p o ló g iáb a szerv ező d h etn ek . A z
ilyen elren d ezések m ó d o t ad n a k arra, hogy elnevezzünk ko m m u n ik áció s ú tv o n a­ (a) (b) (0
lakat, és ez m egkönnyíti a kom m u n ik áció t.
A z M P I-2 bővítései a d in am ik u s folyam atok, a távoli m em ó ria e lérése, a n em
8.43. ábra. Klaszterütemező. (a) Elsőként be, elsőként ki (FIFO) sorrend, (b) Sor eleji blokkolás
blokkoló kollektív kom m u n ik áció , a sk álázh ató B/K tá m o g atás, a valós idejű fel­
nélkül, (c) Lefedő ütemezés. A sötétebb tónusú területek a tétlen CPU-katjelölik
dolgozás és sok egyéb újdonság, am elyek m eg h alad ják e n n e k a könyvnek a k e re ­
teit. T udom ányos k ö rö k b en az M P I és a P V M p árto ló i kö zö tt éveken k eresztü l
csata dúlt. A P V M szószólói azt m o n d ták , hogy a P V M -et k önnyebb m eg tan u ln i Egy jo b b ü tem ező algoritm us elkerüli a sor eleji blokkolást, átu g o rja azokat a
p ro g ram o k at, am elyek az a d o tt p illan atb an nem elégíthetők ki, és az első k ielégít­
és egyszerűbb használni. A z M PI p á rto ló i azzal érveltek, hogy az M P I tö b b e t tud,
és hogy az M P I szabványosító te stü le tte l és h ivatalos d o k u m en táció v al ren d e lk e ző h e tő t választja. A m ik o r egy p ro g ram befejeződik, a m eg m arad t prog ram o k sorát
m indig első k én t be, első k én t ki so rre n d b e n vizsgálja. E z az algoritm us a p éld án k ra
szabvány. A PV M -oldal ezzel eg y e té rte tt, de azt m o n d tá k , hogy a szabványosítási
b ü ro k rácia hiánya n em felté tle n ü l hátrán y . M iu tán m indez lezajlo tt, úgy tűnik, az a 8.43. (b) á b rán láth ató ered m én y t adja.
M P I k erü lt ki győztesen. Egy m ég az eddigieknél is kifinom ultabb ü tem ező algoritm us m egköveteli m in­
d e n je le n tk e z ő p ro g ram tó l, hogy adja m eg az alakját, azaz határo zza m eg a szám á­
ra szükséges C F U -k szám át, és hogy m ennyi ideig igényli ezeket. E zen in fo rm á­
ciók ism e re téb en a m u n k aü tem ező m eg p ró b álja lefedni a C P U -id ő téglalapot. A
8.4.5. Ütemezés
lefed éses ü tem ezés külö n ö sen ak k o r hatékony, am ikor nap p al küldik el a p ro g ra ­
m o k at éjszakai fu ttatásra, ilyenkor a m u n k aü tem ező n ek m inden inform áció előre
A z M P I-p ro g ram o zó k k ö n n y ed en lé tre h o z h atn a k olyan p ro g ram o k at, am elyeknek
ren d elk ez é sére áll a p ro g ram o k ró l, és így azokat optim ális so rren d b en tu d ja fu t­
sok C P U -ra van szükségük, és hosszú ideig futn ak . A m ik o r tö b b felhasználó egy­
m ástól függetlenül k ü lö n b ö ző hosszúságú id ő re k é r C P U -k at, ak k o r a k laszterben tatn i, ahogy a 8.43. (c) áb rán látható.
egy m u n k aü tem e z ő re van szükség, am ely m eg h atáro zza, hogy m ik o r m i fusson.
A legegyszerűbb m od ellb en a m u n k a ü te m e z ő m egköveteli, hogy m indegyik
p ro g ram tudassa vele a szám ára szükséges p ro cesszo ro k szám át. A p ro g ram o k ezt
654 8. P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ú R A i.4. Ü ZEN ET Á T A D Á SO S M U L T IS Z Á M lT Ó G É P E K 655

8.4.6. Alkalmazásszintű közös memória 16 lapból álló, globálisan megosztott virtuális memória

Példáinkból kiderü lt, hogy a m u ltiszám ító g ép ek nagyobb m é re tű re skálázhatók,


m int a m ultiprocesszo ro k . Ez a tény v ezete tt az M P I-h o z h aso n ló ü zen etk ü ld é-
ses ren d szerek kifejlesztéséhez. Sok p ro g ra m o z ó n em kedveli ezt a m od ellt, és azt
szeretn é, h a legalább a közös m em ó ria illúziója m eg len n e, m ég h a ténylegesen
nem is létezik. E n n e k m egvalósítása a k ét m egközelítés ideális kom b in áció ja le n ­
ne: olcsó h ard v er (legalábbis feld olgozóegységenként) és egyszerű p ro g ra m o z h a ­
tóság. E z a p árh u z a m o s szám ítások te rü le té n e k fó' célja.
Sok k u tató a rra a k ö v etk eztetésre ju to tt, hogy h a a közös m e m ó ria a rch itek tu -
rális szinten tö rté n ő m egvalósítása n em is sk álázh ató jó l, m ás m ó d szerek k el talán
el leh et érni ugyanazt a célt. A 8.19. áb rá n láth atju k , hogy v a n n ak m ás szintek is,
am elyeknél a közös m em ó ria b ev ezeth ető . A k ö v etk ez ő k b en m eg n éz ü n k néh án y
m ódszert, am elyek segítségével a m u ltiszám ító g ép ek p ro g ram o zási m o d elljébe a
közös m em ó ria b e v e z eth e tő anélkül, hogy h ard v erszin ten je le n lenne.
3 6

10 8 14
O sztott közös m em ória
0-s CPU 1-es CPU 2-es CPU
A z alkalm azás szintű közös m e m ó riaren d sz e r m eg v aló sításán ak egyik le h e tő sé ­
ge a m em ó rialap o k o n alap u ló ren d szer, am elyet D SM -nek (D istributed Shared
Hálózat
Memory, osztott közös m em ória) n ev eztek el. A z a la p ö tle t egyszerű: egy m u ltiszá­ (b)
m ítógép C P U -in ak egy h alm aza osztozik egy közös, lapokból álló virtuális c ím te­
rü leten . A legegyszerűbb v álto zatb an m indegyik lap p o n to sa n egy C P U R A M -já-
ban találh ató m eg. A 8.44. (a) á b rán egy 16 lapból álló közös virtuális cím te rü let n
láth ató négy C P U k ö z ö tt széttagolva.
10 10 12 14
H a a C P U a saját R A M -jáb an levő la p ra hivatkozik, ak k o r az olvasás vagy írás
késedelem nélkül m eg tö rtén ik . H a azo n b an a C P U egy távoli m e m ó riá b a n levő 0-s CPU 1-es CPU 2-es CPU
lap ra hivatkozik, ak k o r laphiány lép fel. A hiányzó lap lem ezről tö rté n ő b etö lté se
helyett a fu tó re n d sz e r vagy az o p eráció s re n d sz e r egy ü z e n e te t küld a la p o t b ir­
Hálózat
tokló csom ópontn ak , hogy szab ad ítsa fel és küldje el. M iu tán a lap m egérkezik, a (c)
C P U R A M -jába kerül, és a hiányt kiváltó u tasítás v ég reh ajtása újrain d u l, é p p e n
úgy, m int egy közönséges laphiánynál. A 8.44. (b) á b ra azt a hely zetet m u tatja, 8.44. ábra. Egy multiszámítógép négy csomópontja között szétosztott 16 lapból álló virtuális
am ely azt követően áll elő, hogy a 0-s C P U 10-es lap ra tö rté n ő hivatkozása hiányt címtartomány (a) Kiindulási helyzet, (b) Miután a 0-s CPU a 10-es lapra hivatkozott,
okozott, és ezért az 1-es C P U -tó l a 0-s C P U -h o z k erül a k é rt lap. (c) Miután az 1-es CPU a 10-es lapra hivatkozott, feltételezve, hogy a lap csak
A z alap ö tlet e lső k én t az IV Y -b an (Li és H u d ak , 1986; 1989) valósult m eg. E z olvasható
teljesen m egosztott, so ro san konzisztens m em ó riát b izto síto tt egy m u ltiszám ító g é­
pen. M in d am ellett a teljesítm ény fokozása é rd e k é b e n szám os o p tim alizálásra van m át pedig ugyanennek a lap n ak az aljára ír folyam atosan. M ivel a lapnak csak egy
lehetőség. A z első ilyen o p tim alizáció az IV Y -ban, hogy a csak o lv ash ató k én t m eg ­ m áso lata létezik, ezért a lap n ak állan d ó an oda-vissza kell p atto g n ia. E z a helyzet
jelö lt lapok egyszerre tö b b cso m ó p o n tn ál is jelen legyenek. így am ik o r laphiány téves m egosztásként ism ert.
lép fel, ak k o r a hiányt okozó g ép h ez a lap egy m áso lata k erü l elküldésre, az ere d eti A téves m egosztás elh á rítá sá ra szám os m ód szer alk alm azh ató . A T readm arks
lap a helyén m arad , mivel ilyenkor nincs konfliktusveszély. A 8.44. (c) á b rán lá th a ­ ren d sze rn é l például a soros konzisztenciájú m em ó riáró l lem o n d an ak az ele n g e d é ­
tó az a helyzet, am ikor k ét C P U osztozik egy csak o lvasható lap o n (10-es lap). si k o n zisztencia k ed v éért (A m za, 1996). Itt egyszerre több cso m ó p o n tn ál is jelen
A teljesítm ény gyakran m ég ezzel az optim alizációval együtt sem kielégítő, k ü ­ leh et egy p o tenciálisan írh ató lap, de a folyam atoknak írás e lő tt jelezn iü k kell a
lönösen m ikor egy folyam at egy lap te te jé re , egy m ásik C P U -n fu tó m ásik folya- sz á n d ék u k at egy acquire kérő m űvelet fo rm ájáb an . E k k o r a leg u to ljára írt m ásolat
656 8. P Á R H U Z A M O S SZ A M ÍT Ó G ÉP - A R C H IT EK T Ú R A 8.4. ü z e n e t á t a d A s o s m u l t i s z á m It ó g é p e k 657

kivételével az összes többi m áso lat crvén y telen ítő d ik . Új m áso lat m in d ad d ig nem értv e a k a ra k te rlá n c o k a t is) és stru k tú rák (kivéve az adategységet). P éld ak én t h á ­
készül, am íg egy m egfelelő release m űvelet végre nem h ajtódik, ek k o r a lap újra ro m adategység lá th a tó a 8.45. ábrán.
m eg o szto ttá válhat. A z adateg ységeken négy m űvelet végezhető. A z egyik m űvelet az out, am ely b e ­
A T readm arksb an van egy m ásik optim alizáció is, am ely k e z d etb en m in d en ír­ tesz egy adategységet az adategységtérbe. P éldául
h ató lapot csak o lv ash ató ra állít be. A lap ra tö rté n ő első írásk o r védelm i hiba lép
fel, és a ren d szer elkészíti a lap egy ik ern ek nev ezett m áso latát. E k k o r a lap álla­ outC'abc", 2, 5);
p o ta o lvasható-írh ató , és az egym ást k ö v ető írások teljes sebességgel h a jtó d h a tn a k
végre. H a később egy távoli laphiány fo rd u l elő, és a lap o t o d a kell szállítani, a k ­ az („ a b c ”, 2 ,5 ) adategységet a té rb e teszi. A z out m ezői általáb an kon stan so k , vál­
kor az aktuális lap és az ik er szavanként összeh ason lításra kerül. C sak a m eg v álto ­ to zó k vagy kifejezések, m in t a következő péld áb an ;
zo tt szavak k erü ln ek elk ü ld ésre, hogy ezáltal az ü ze n e t m é re te csökkenjen.
L aphiány esetén a hiányzó lap o t m eg kell k eresni. T ö b b m egoldás is lehetséges, out("matrix-l", i,j, 3.14);
beleértve a N U M A és a C O M A g ép e k e n alk alm azo ttak at, m in t p é ld áu l a (tu la j­
d o n o s szerinti) k atalógusok. V alójában a D S M -nél h aszn ált m eg o ld áso k közül sok b eteszi a térb e a négy m ezőből álló adategységet, am elyben a m ásodik és a h a rm a ­
alk alm azh ató a N U M A és a C O M A e se té b e n is, mivel a D S M valójában a N U M A dik m ező é rté k é t az i és j változók aktuális érték e határo zza m eg.
vagy C O M A szoftveres m egvalósítása, ah o l m indegyik lap g y o rsító so rk én t van k e ­ A z ad ateg ységek az in prim itívvel k eresh ető k ki az ad ategységtcrből. N év vagy
zelve. cím h elyett itt ta rtalo m m al tö rté n ik a hivatkozás. A z in m ezői kifejezések vagy fo r­
A D S M jelenleg is a k u tatás elő te ré b e n van. A következő ren d szerek igen é rd e k e ­ m ális p a ra m é te re k leh etn ek . N ézzük p é ld a k é n t a következőt;
sek: C A S H M E R E (K ontothanassis és társai, 1997), C R L (Johnson és társai, 1995),
Shasta (Scales és társai, 1996) és a T readm arks (A m za, 1996; Lu és társai, 1997). inC'abc", 2, ? i);

E z a m űvelet kikeres az ad ategységtérből egy olyan adategységet, am elynek első


Linda m ezője az „ ab c” k arak terlán c, a m ásodik m ező a 2 egész szám , a h arm ad ik m ező
ped ig tetsző leges egész szám (feltéve, hogy az i egész típusú). H a talál ilyet, a k ­
A z IV Y -hoz és a Iread m ark s-h o z h aso n ló lapozási tech n ik ájú D S M -ren d szerek k o r ezt az adategységet a térb ő l eltávolítja, és az i változó felveszi a h arm ad ik m e ­
az M M U -h ard v e rt használják, hogy p ro g ram m eg szak ítással a hiányzó lap o k e lé r­ ző é rté k ét. A z illesztés és az eltávolítás atom i tevékenység, ezért ha két folyam at
hetővé váljanak. B ár segítséget je le n t, ha teljes lapok h ely ett csu p án az e lté ré se k e t p á rh u z a m o san ugyanazt az in m ű v eletet hajtja végre, ak k o r a k e ttő közül csak az
küldjük át, de a helyzet v alójában az, hogy a lap o k a m egosztás egy e rő lte te tt fo r­ egyiknek sikerül ezt m eg ten n i, kivéve, am ikor k e ttő vagy tö b b illeszkedő adateg y ­
m áját jelen tik , e z é rt e n n e k a p ro b lé m án a k m ás m egközelítései is vannak. ség is van. A z adateg y ség tér ugyanannak az adategységnek tö b b p éld án y át is ta r­
A L ind a p éld áu l úgy közelíti m eg c / t a k érd ést, hogy a k ü lö n b ö ző g ép ek en futó talm azh atja.
folyam atok szám ára egy erő sen stru k tu rá lt, m eg o szto tt közös m e m ó riá t biztosít. A z in m űveletnél használt illesztő algoritm us nagyon egyszerű. A z in prim itív
(C a rrie ro és G e le rn te r, 1986; 1989). E n n ek a m em ó rián a k az e lé résé h e z kisszám ú m in tá n a k nevezett m ezői k erü ln ek összehasonlításra az ad ateg y scg tér m inden
prim itív m ű veletet használ, am elyekkel egy létező nyelv is b ő v íth ető , m int p éldául egyes adateg ységének m egfelelő m ezőjével. Illeszkedés akkor fordul elő, ha a k ö ­
a C és a F o rtran , így p á rh u zam o s nyelvek jö n n e k létre, e se tü k b e n a C -L inda és a v etk ező h á ro m feltétel m indegyike teljesül;
F ortran-L inda.
A L inda m ögötti egységesítő elv az ab sztrak t a d ate g y ség tér, am ely a teljes re n d ­ 1. A m in ta és az adategység m ezőinek a szám a m egegyezik.
szer szám ára globális, és az összes foly am ata képes elérn i. E z az a d ateg y ség tér egy 2. A m eg felelő m ezők típ u sa azonos.
globális közös m em ó riáh o z hasonló, ráad ásu l egy bizonyos b e é p íte tt stru k tú ráv al 3. A m in ta m indegyik k o n stan sa vagy változója illeszkedik az adategységben lévő,
rendelkezik. A z ad ateg y ség tér olyan a d a te g jsé g ek b ő l áll, am elyek m indegyike egy neki m egfelelő m ezőre.
vagy tö b b m ezőt ta rtalm az. A C -L in d áb an van n ak egész, hosszú egész, le b eg ő p o n ­
tos szám típusú m ezők, de le h e t a m ezők típ u sa összetett, p éld áu l tö m b ö k (bele- A form ális p a ra m é te re k , am elyeket egy k érdőjel és az azt követő változónév vagy
típ u s jelez, n em vesznek részt az illesztésben (kivéve a típ u sellen ő rzést), de sikeres
("abc", 2, 5)
illeszkedés esetén a változók é rté k e t kapnak.
("matrix-1", 1,6,3,14)
("family" "is sister" Carolyn, Elinor) H a nincs illeszkedő adategység, ak k o r a hívó folyam at felfüggesztődik, am íg
egy m ásik folyam at a szükséges adategységet el nem helyezi, ebb en a p illanatban
8.45. ábra. H árom Linda adategység a hívó au to m atik u san feléled és m egkapja az új adategységet. M ivel a folyam a-
658 8. P Á R H U Z A M O S S Z A m ITÓ G ÉP-A R C H IT EKT Ú R A 8.4. Ü ZEN ET Á T A D Á SO S M U L T IS Z A M ÍT Ó G É P E K 659

tok felfüggesztése és feléled ése au to m a tik u sa n tö rtén ik , ezért ha egy folyam at egy o bjektum vagy egy A da-csom ag. B első a d a ts tru k tú rá k a t és a felhasználó által írt
adategységet készül küldeni, egy m ásik folyam at p ed ig e n n e k a fo g ad ására készül, eljárá so k a t z ár egységbe, az u tó b b it m ű v eleteknek hívják. A z o b jek tu m o k passzí­
ak k o r lényegtelen, hogy m elyik m űv elet előzi m eg a m ásikat. vak abban az é rtelem b en , hogy nincs olyan száljuk, am elynek ü zen e te k küldhetők.
A z out és az in m ű v eletek en túl a L inda h arm a d ik prim itívje a read, am ely az in E h ely ett a folyam atok egy objek tu m belső a d a ta it az o b jek tu m h o z ta rto z ó e ljá rá ­
prim itívtől csak annyiban té r el, hogy az ad ateg y ség térb ő l n em távolítja el az a d a t­ sok m eghívásával érh e tik el.
egységet. Egy m ásik prim itív az eval, am elynek p a ra m é te re i p árh u z a m o sa n é rté k e ­ M indegyik O rca-eljárás egy (őr, u tasításb lo k k ) p áro k b ó l álló lista. A z ő r egy
lődnek ki, és az ered m én y ül k a p o tt adategység az ad ateg y ség térb e k erül elh ely e­ m ellék h atás nélküli logikai kifejezés, az üres ő rn ek az igaz logikai é rté k felel m eg.
zésre. E n n e k alkalm azásával tetszőleges k iszám ítások v ég ezh ető k el, A L in d áb an Egy m űv elet hívásakor az összes ő r valam ilyen nem m eg h a tá ro z o tt so rren d b en ki­
en n ek segítségével leh e t p árh u z am o s fo ly am ato k at létreh o zn i. érték elő d ik . H a m indegyik é rté k e ham is, a hívó eljárásn ak addig kell várnia, am íg
A L in d áb an gyakori p ro g ram o zási p arad ig m a a többszörözött m unkás modell. valam elyik igaz é rté k e t n em vesz fel. A m ik o r egy ő r érté k e igaz lesz, az azt követő
E z a m odell az elvégzendő m u nkákkal te le tö m ö tt feladatzsák ö tle tén alapszik. A u tasításb lo k k v ég rehajtódik. A 8.46. áb ra egy k étm ű v elctes {push és p o p ) verem -
fő folyam at egy ciklus végrehajtásával k ezdődik, am ely tartalm a zz a az: (stack) o b je k tu m o t m u ta t be.

out("feladat_zsák", munka); Object implementation stack;


top:integer; # a verem tárolója
utasítást. E záltal m in d en iteráció b an egy ú jab b m u n k aleírás k erü l b e az ad ate g y ­ stack: array [integer 0..N-1] of integer;
ségtérbe. M indegyik m u n k ás azzal kezdi, hogy k é r egy m u n k ale írá st ta rtalm a z ó
operation push(ltem: Integer); # a művelet nem ad vissza semmit
adategységet az alábbi utasítással:
begin
guard top < N - 1 do
in("feladat_zsák", ?munka); stack[top] := item; # beletesz egy elemet a verembe
top := top + 1; # növeli a veremmutatót
am elyet aztá n elvégez. M ik o r elkészült, k é r egy m ásikat. V ég re h a jtá s a la tt is e lh e ­ od;
end;
lyezhető új m u n k a a felad atzsák b a. E zzel az egyszerű m ó d szerrel csekély tö b b le t­
ráfo rd ítás árán a m u n k a d in am ik u san o szth a tó ki a m u n k áso k k ö zö tt, és az összes operation pop(): integer; # a művelet egy egészet ad vissza
m unkás állan d ó an foglalkoztatva van. begin
M ultiszám ítóg ép es ren d sze re k re a L inda tö b b féle m egvalósítása létezik. M in d e­ guard top > 0 do # üres verem esetén felfüggesztődik
gyikükben az a kulcskérdés, hogyan osszák szét az ad ateg y ség ek et a gép ek kö zö tt, top := top - 1: # csökkenti a veremmutatót
return stack[top]; # visszaadja a verem tetején levő elemet
és am ikor szükséges, hogyan találják m eg azokat. T ö b b lehető ség is van, p éld áu l
od;
az üzen etszó rás és a k ataló g u so k haszn álata. A tö b b szö rö ző d és szintén fo n to s k é r­ end;
dés. E zek rő l a k érd é se k rő l lásd (B jo rn so n , 1993).
begin
top :=0; # kezdeti beállítás
end;
Orca
8.46. ábra. Egyszerűsített Orca-veremobjektum belső adatokkal és két művelettel
A m u ltiszám ító g ép e k en az alkalm azásszintű közös m e m ó ria valam elyest m ás
m egközelítése adategységek h ely ett teljes o b je k tu m o k a t használ a m egosztás egy­ A stack o b jektum definiálása u tá n d efiniálhatók ilyen típusú változók, m int p é l­
ségeként. A z o b jek tu m o k belső (re jte tt) állap o ttal, és ezek en az állap o to k o n m ű ­ dául:
köd ő eljárásokkal ren d elk ezn ek . A záltal, hogy a p ro g ra m o zó n a k nincs leh ető ség e
az állap o t közvetlen e lé ré sé re , szám os leh ető ség nyílik m eg a fizikailag közös m e ­ s, t: stack;
m ó ria nélküli gépek közötti ad atm eg o sztásra.
Egy ilyen, a m u ltiszám ító g ép es ren d sz e re k en a közös m em ó ria illúzióját k eltő am i k ét stack o b jek tu m o t hoz létre, m indegyikben a top változó é rté k é t ü-ra állítva.
o b jek tu m alap ú ren d sz e r az O rca (B al, 1991; B al és társai, 1992; Bal és T anenbaum , Egy k egész típ u sú változó az alábbi utasítással te h e tő bele az s verem be:
1988). A z O rca egy hagyom ányos p ro g ram o zási nyelv (a M o d u la 2-n alapszik), két
új lehetőséggel kibővítve: az o b jek tu m o k k al és új folyam atok létre h o z ásán a k k é ­ s$push(k);
pességével. Egy O rca-o b jek tu m olyan jelleg ű ab sztrak t ad attíp u s, m in t egy Java-
660 8, P Á R H U Z A M O S S Z Á M lT Ó G É P A R C H lT EK T Ú R A 8.4. O Z EN ET Á TA D Á SO S M U L T IS Z A m IT Ó G ÉPEK 661

A p o p m űveletb en van ő r (g u ard ), így h a egy hívó ü res verem b ő l a k a r é rte k e t Globe
kiolvasni, ak k o r egész ad d ig felfüggesztődik, m íg egy m ásik folyam at valam it a ve­
rem b e nem tesz. A leg tö b b D SM -, L inda- és O rc a-ren d szer helyi ren d sz e re k e n fut, am ely vagy
A z O rcáb an egy felh aszn áló által m e g h a tá ro z o tt p ro cesszo ro n új folyam atok in­ egyetlen ép ü leten belül van, vagy egy szűkebb te rü le te n helyezkedik el. A zo n b an
d íth ató k a fork utasítással. A z új folyam at a fork u tasításb an m eg n ev ezett eljárást leh etség es az egész világra k iterjed ő alkalm azás szintű közös m em ó riát használó
fu ttatja. A z új fo ly am atn ak á ta d h a tó k p a ra m é te re k , b ele é rtv e az o b jek tu m o k at is. m u ltiszám ítógép m eg ép ítése is. A G lo b e-ren d szerb en egy objek tu m több folya­
E n n e k révén az o b jek tu m o k m eg o szto ttá te h e tő k a g ép ek kö zö tt. P éld áu l a k ö v et­ m at cím te rü letén is elh ely ezk ed h et ugyanabban az időben, a k ár kü lö n b ö ző fö ld ­
kező u tasítás az 1-es gép tő l az /z-es gépig m indegyiken egy új fo ly am ato t ho z létre, részek en (K erm arrec és társai, 1998; Van S teen és társai, 1999). Egy m egoszlott
ezek m indegyike a fo o b a r p ro g ram o t fu ttatja. o b jek tu m a d a ta it a felhasználói folyam atok a n n ak eljárásain keresztül é rh e tik el,
am elyek im plem en táció ja a k ü lönböző o b jek tu m o k n ál m ás-m ás lehet. P éldául
fór i in 1 .. n do fork foobar(s) on i od; az egyik leh ető ség az, hogy egy d inam ikusan használt a d a tn a k csak egyetlen p é l­
dánya van (ez egy jó m egoldás az olyan ad atn á l, am elyet az egyedüli tu lajdonos
Mivel ez az n d a ra b új folyam at (és a szülő) p árh u z a m o san fut, m indeg) ik úgy te ­ m ódo sít gyakran). Egy m ásik lehetőség, hogy az o b jektum m indegyik példányába
h e t b e és v e h et ki e le m e k e t a közös s v erem b ő l, m in th a egy közös m em ó riá jú m u l­ b ek e rü l az ad at, és a p éld án y o k frissítése egy m egb ízh ató ü zen etszó ró p ro to k o llal
tiprocesszoron fu tn án ak . A fu tta tó re n d sz e r fe la d a ta a v aló jáb an n em léte z ő k ö ­ tö rtén ik .
zös m em ó ria illúziójának fe n n tartá sa . A G lo b e céljaiban nagyon becsvágyó, m ert az a fő törek vése, hogy skálázható le­
A z oszto tt o b jek tu m o k m űveletei ato m iak , és so ro san konzisztensek. A re n d ­ gyen a k ár m illiárdnyi felhasználó és ennél egy nagyságrenddel tö b b (potenciálisan
szer g aran tálja, hogy h a tö b b folyam at csak n em p á rh u z am o sa n ugy an azo n a m eg ­ h o rd o z h a tó ) objek tu m szám ára. A z o b jek tu m o k helyének m eghatározása, k ezelé­
oszto tt o b jek tu m o n végez m ű v eletet, a k k o r u gyanazt a re n d sz e r által v álaszto tt se és a skálázás d ö n tő fontosságú. A G lo b e eh h ez egy általános k e re tre n d sz e rt al­
so rre n d e t látja m indegyik folyam at. kalm az, am elyben m inden egyes objek tu m tö b b ek k ö zö tt m egadja a saját többszö-
A z O rca az a d a to k m eg o sztását és a szin k ro n izáció t a lapozásos D S M -től e lté rő rözési stratég iáját, biztonsági stratég iáját és így tovább. E zzel elk erü lh ető k azok a
m ó d o n egyesíti. A p á rh u z a m o s p ro g ra m o k b a n k é tfé le szin k ro n izáció ra van szük­ p ro b lém ák , am elyek m ás ren d szerek b en a k ényszerűen egységes kezelésből a d ó d ­
ség. A z egyik a kölcsönös kizárás, am ely m egakadályozza, hogy k é t folyam at egy­ nak, m iközben a közös m em ó ria révén m egőrzi a prog ram o zás egyszerűségét.
szerre kritikus szakaszban lévő k ó d o t fu ttasso n . A z O rc áb a n m eg o szto tt o b je k tu ­ További nagy te rü le tű oszto tt re n d szerek a G lóbus (F o ster és K esselm an, 1998a;
m on végzett m in d en m ű v elet v alójában egy k ritik u s szakasznak felel m eg, m e rt a F o ster és K esselm an, 1998b) és a L égion (G rim shaw és W ulf, 1996; G rim shaw és
ren d szer biztosítja, hogy a végső ered m én y ugyanaz legyen, m in th a az összes k riti­ W ulf, 1997), de ezek a G lo b e-b al e lle n té tb e n nem nyújtják a közös m em ó ria illú­
kus ta rto m án y egyesével (azaz szekvenciálisán) len n e fu ttatv a. E b b e n az é rte le m ­ zióját.
ben egy O rca-o b jek tu m a m o n ito r (H o a re , 1975) egy o szto tt form ája.
A szinkronizáció m ásik fajtája a fe ltéte le s szinkronizáció. am elyben egy folya­
m at bizonyos fe ltéte le k te ljesü lésére v árak o zv a b lo k kolódik. Az O rc á b a n a fe lté ­ 8.4.7. Teljesítmény
teles szinkronizációt az ő rö k végzik. A 8.46. á b ráb a n levő p é ld án á l egy ü res ve­
rem ből olvasni a k a ró folyam at felfüggesztődik, am íg a v erem üres. A p árh u z am o s szám ítógépek ép ítésén él a fő szem pont, hogy egy egyprocesszoros
A z O rca fu tta tó ren d szere kezeli az o b jek tu m o k tö b b szö rö ző d ését, v á n d o ro l­ gépn él gyorsabb g ép et állítsanak elő. H a az ered m én y nem felel m eg e n n ek az
tatását, a konzisztenciát és a m űvelethívásokat. M indegyik o b jek tu m k é t állap o t egyszerű célkitűzésnek, ak k o r érté k te le n az egész. Továbbá a célkitűzést költség­
egyikében lehet: egyedüli vagy tö b b szö rö zö tt. Egy egyedüli állap o tú ob jek tu m csak h até k o n y m ó d o n kell elérni. V alószínűleg n em nagyon leh et eladni egy olyan g é­
egyetlen gép en létezik, e z é rt m in d en rá v o n atk o zó k érés ide kell, hogy érkezzen. pet, am elyik egy egyprocesszorosnál k étszer gyorsabb, de an n ál 50-szer drágább.
Egy tö b b szö rö zö tt o b jek tu m az összes olyan g ép en jelen van, am elynek folyam ata E b b e n a részben a p árh u zam o s szám ító g ép -arch itek tú rák néhány teljesítm énnyel
használja azt, ezáltal az olvasás m űvelet könnyebbé válik (m ivel helyileg v é g re h a jt­ k ap cso lato s k érd ését tanulm ányozzuk.
h ató ), de a frissítés sokkal költségesebb. T ö b b szö rö zö tt o b jek tu m o n v ég reh ajtan d ó
m ódosító m űveletn ek elő szö r egy so rszám o t kell k ap n ia egy ezek kiosztásával fog­
lalkozó központi folyam attól. E zu tán az o b je k tu m o t táro ló összes géphez egy ü ze­ H ardverm értékek
net kerül elküldésre, am ely a m űvelet v ég reh ajtását kéri. M ivel az összes ilyen fris­
sítés sorszám m al ren delk ezik , e z ért a m űveletek v égrehajtási so rre n d jé t az összes H a rd v e rsz e m p o n tb ó l nézve teljesítm ény m é rté k k é n t a C P U -k sebessége, a FVK
gép en ezek a sorszám ok h a táro zzák m eg, így biztosítva a so ro s konzisztenciát. egységek sebessége, v alam int az összekötő h áló za t teljesítm énye érd ek el b e n n ü n ­
ket. A C P U -k és a B/K egységek sebessége itt is ugyanannyi, m int az egyprocesz-
662 8, P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ú R A 8.4. Ű Z EN ET Á T A D Á SO S M U L T IS Z A M ÍT Ó G É P E K 663

szoros esetb en , e z é rt a p árh u z a m o s ren d szerek n él az összekapcsolás p a ra m é te re i 1 M B/s, ak k or nem sokat segít, ha a h áló za t kettév ág o tt sávszélessége 100 GB/s.
kulcsfontosságúak. A k ét jellem ző p a ra m é ter: a k ésleltetési idő és a sávszélesség; A z eg}'es C P U -k kibocsátotta ad ato k m ennyisége korlátozza a konim unikációt.
ezeket m ost közeleb b rő l is m egvizsgáljuk. G yak o rlatilag az elvi sávszélességhez közeli é rté k elérése nagyon n eh éz feladat.
A m e n e tté rti k ésleltetés egy C P U eseté b e n az az id ő ta rta m , am ely egy csom ag A k ap a citás csö k k en ését okozó tö b b letm u n k án ak sok fo rrása van. Például, m indig
elküldése és a válasz m eg érk ezése k ö z ö tt eltelik. H a a csom agot a m em ó riá n a k m eg jelen n ek a csom agokkal k apcsolatos teen d ő k ; összeállítás, a fejlécek k ialakí­
küldi, ak k o r a k ésleltetési idő egy szó vagy blokk kiolvasásához, illetve b eírá sáh o z tása és ú tn ak indítása. 1Ü24 d a ra b 4 b ájto s csom ag elküldésével sohasem é rh e tő
szükséges idővel azonos. H a egy m ásik C P U -n a k küldi a csom agot, a k k o r a k éslel­ el az egy d a ra b 4096 bájto s csom agküldési sávszélesség. Sajnos az alacsony kés­
tetési idő a processzo ro k ko m m u n ik áció s ideje az a d o tt in é re tű csom ag esetéb en . leltetési id ő e léréséh ez a kisebb csom agok alkalm azása célszerűbb, mivel a nagy­
Á ltaláb an a m inim ális csom agokhoz - g yakran egyetlen szó vagy egy kis g yorsító­ m é re tű csom agok hosszabb ideig foglalják a kap cso lato k at és a sw itch-eket. így
so r - ta rto z ó k ésleltetési idő az érd ek es. az alacsony átlagos késleltetési idő elérése és a m agas sávszélesség kihasználása
A késleltetési idő tö b b tényezőből áll össze, és e zek e lté rő k a vonalkapcsolásos, egym ással ellen tétes törekvések. N éhány alkalm azás szám ára az egyik sokkal fo n ­
a tá ro ld és továbbítsd csom agkapcsolásos, a v irtuális vágásos és a féreglyuk m ó d ­ tosabb, míg m ás alkalm azások ese té b e n a m ásik. É rd e m e s m egjegyezni azonban,
szert alkalm azó h áló za to k n ál. A vo n alk ap cso lásn ál a k ésleltetési idő a k ap cso lat hogy nagyobb sávszélesség m indig e lé rh e tő (tö b b vagy szélesebb vezeték b e h e ­
felép ítésére és az átv itelre fo rd íto tt idők összege. Egy k ap cso lat felép ítésé h ez egy lyezésével), de alacsony késleltetési idő nem . E zért általáb an az a kedvezőbb szá­
pró b acso m ag o t kell kiküldeni, am elynek a fe la d a ta az e rő fo rráso k lefoglalása, ezt m u n k ra, ha a k ésleltetési időt a leh ető legkisebbre csökkentjük, a sávszélességgel
követően jö n a visszaigazolás. M iu tán ez m eg tö rté n t, az a d atc so m ag o t kell össze­ rá é rü n k azu tán foglalkozni.
rakni. M ikor ez kész, a b ite k teljes sebességgel á ra m o lh a tn a k , így ha 7 a k apcsolat
felép ítéséh ez szükséges idő, p b itből áll a csom ag, és a sávszélesség b bit/s, a k k o r
az egyirányú k ésleltetési idő T + p lb . H a teljes duplex ö sszekötés van, a k k o r a vá­ Szoftverm értékek
laszhoz nem kell a k ap cso lato t ism ét felép íten i, így a m inim ális késleltetési id ő egy
p b ites csom ag k ik ü ld éséh ez é s p bites visszaigazoláshoz T -l- 2plb. A késleltetési időhöz és a sávszélességhez haso n ló h a rd v erm crték ek azt m u ta t­
A tá ro ld és to vábbítsd cso m agkapcsolásnál nincs szükség a rra, hogy e lő z e te ­ já k m eg, hogy a h ard v er m ire kcpes. A felh aszn áló n ak azonban m ás szem pontjai
sen pró b acso m ag o t küld jü n k a célállom áshoz, viszont a csom ag ö sszerak ásáh o z is leh etn ek . A zt ak arja tudni, hogy a pro g ram jai m ennyivel lesznek gyorsabbak
bizonyos előkészítési idő kell, ezt jelö lje T . E k k o r ahhoz, hogy a csom ag az első egy p árh u z a m o s szám ítógépen az egyprocesszoros g ép h ez képest. Szám ukra a
sw itch-ig eljusson, T -l- p lb idő kell. M o n d ju k a sw itch-ben időt kell a cso m ag ­ legfo n to sab b m u ta tó a gyorsulás, am ely azt fejezi ki, hogy hányszor gyorsabb egy
nak várakozni, és ez a k ésleltetés ism étlő dik m in d en ezt k ö v ető sw itch-nél. A 7 , p ro g ra m egy n p rocesszoros ren d szeren , m int egy egyprocesszoroson. Szokásos
késleltetési idő a feldolgozási időből és abból a sorbaállási időből tevődik össze, d iag ram m al m egadni e zek et az ered m én y ek et, ahogy az a 8.47. áb rán is látható.
am elyet a kim eneti kapu szab ad d á válásáig eltelik, n switch e se té b e n az egyirányú Itt k ü lö n b ö ző p árh u zam o s p ro g ram o k at látu n k egy 64 d arab P entium Pro C P U -t
teljes k ésleltetési idő T 4- /i (plb -l- T J -F p lb, ahol az u to lsó tag az az idő, am ely a ta rta lm az ó p árh u zam o s szám ítógépen fu ttatva. M indegyik g örbe egy p ro g ram k
csom agnak az uto lsó sw itch-ből a c ím zettn ek való á ta d á sáh o z kell. d arab C P U m elletti gyorsulási é rté k é t m u ta tja k függvényében. A p o n to z o tt vonal
A virtuális vágásos fo rg alo m irán y ításo k n ál és a féreglyuk m ó d szern él az egyirá­ a tö k é le te s gyorsulást m u tatja, vagyis azt, hogy h a tetszőleges k é rté k re teljesül,
nyú késleltetési idők a legjobb e se tb e n a T + p lb id ő h ö z közeliek, ugyanis ezeknél hogy k d b C P U A:-szoros gyorsulást eredm ényez. K evés p ro g ram n ál é rh e tő el ez
nincs szükség se egy p ró b acso m ag k ik ü ld ésére a k ap cso lat kiép ítéséh ez, se pedig az optim ális gyorsulás, de n éhány azért m egközelíti. A z N -test p ro b lém a p á rh u z a ­
táro lási időt n em ig ényelnek a sw itch-eknél. A lap v ető e n csak a csom agok össze­ m os fu tta tá sa rendkívül jó ered m én y t m u tat, az A w ari (egy afrikai táb lajáték ) e se ­
állítása és a b itek k im en e tre helyezése igényel időt. V alójában m ég a te rjed ési se­ té n elfo g ad h ató az eredm ény, míg egy nag y m éretű m átrix inv ertálásak o r sohasem
besség végességéből ad ó d ó k ésést is figyelem be kellen e venni, de ez ren d sz erin t éri el az ötszörös gyorsítást, ak árh án y C P U áll is ren d elk ezésre. A p ro g ram o k és
elh an y ag o lh ató an kicsi. az e re d m én y ek vizsgálatáról lásd (B al és társai, 1998).
A m ásik h ard v e rm érte k a sávszélesség. Sok p árh u z a m o san fu tó p ro g ram , k ü ­ A z optim ális gyorsulás azért valósítható m eg nagyon n eh ezen , m ert m ajdnem
lönösen a term ész ettu d o m á n y te rü le té n , nagy m ennyiségű ad at m ozgatásával jár, m in d en p ro g ram n ak van n ak szekvenciális részei, p éld áu l a kezdeti érték ad áso k ,
ezért a teljesítm ény szem p o n tjáb ó l fontos jellem ző, hogy a ren d szer m á so d p e rc en ­ ad atb e o lv asások vagy az ered m én y ek összegyűjtése. Itt a több C P U nem jelen t
k én t hány bájt m o zg atására képes. T ö b b féle sávszélességm érték létezik. E zek k ö ­ segítséget. T ételezzü k fel, hogy egy pro g ram egy egyprocesszoros gépen T ideig
zül egyet, a k ettév ág o tt sávszélességet m ár láttu n k . Egy m ásik az ö sszesített sávszé­ fut, és je l ö lj e /a z t a hányadot, am elyben szekvenciális k ó dot hajt végre, míg a tö b ­
lesség, am ely egyszerűen az összes k ap cso lat k ap acitásán ak az összege. E z a szám bi (1 - f ) részben p árh u zam o síth ató k ó d o t, m int ahogy a 8.48. (a) áb ra m u tatja.
az egyszerre ú to n lévő bitek szám ának m axim um át jelen ti. S zintén fo n to s m é rték H a ez az u tó bbi p ro g ram rész n C P U -s gép en futna, akkor en n ek a résznek a fu tá ­
a C P U -k átlagos k im en eti sávszélessége. H a m indegyik C P U kim eneti k ap acitása si ideje (1 - / ) T-ről (1 - f ) TIn-re csö k k en h etn e a legjobb esetb en . így a szckvcn-
664 8. P Á R H U Z A M O S SZ A M ÍT Ó G ÉP - A R C H IT E K T Ú R A 8.4. ü z e n e t At a d A s o s m u l t i s z a m (t ó g é p e k 665

ciális és a p árh u z am o s részek teljes futási i d e j é r e / T + (1 - / ) 7/« a d ó d n a. A gyor­ N aktív CPU


sítás m érté k é t az e re d e ti p ro g ram T vég reh ajtási id ején ek és az új futási id ő n ek a
hányadosa adja;

»-T
Nem párhu­
Gyorsulás = zamosítható Párhuza-
szekvenciális mositható 1 aktív
rész rész CPU
A z y = ü esetb en lin eáris gyorsulást kap u n k , d e h a / > 0, a k k o r van szekvenciális
rész, és optim ális gyorsulás n em lehetséges. E z az e re d m é n y A m dahI törvén y ek én t
1 -f 1 f
1 1-f
ism ert. f T
N em csak az A m d ah l-tö rv én y az oka, hogy szinte le h e te tle n az o ptim ális gyor­ (1 -f)T/n — -
sulás elérése. S zerep et játszik eb b en a k om m unikációs k ésleltetési idő, a k o m m u ­ (b)
nikáció véges sávszélessége és az alg o ritm u so k haték o n y ság a. M ég ha 1000 C P U
is állna ren d elk e zé sü n k re , a k k o r sem le h e t m in d en p ro g ra m o t úgy m egírni, hogy 8.48. ábra. (a) A programnak van szekvenciális és párhuzamosítható része is (b) Annak hatása,
ilyen sok C P U -t haszn áljo n , és az elin d ításu k is je le n tő s tö b b letk ö ltség g el jár. ha a program egy részét párhuzamosan futtatjuk
Továbbá, gyakran a legjobb alg o ritm u s n em p á rh u za m o síth a tó jól, így egy kevésbé
jó algoritm ust kell a p á rh u zam o s e se tb e n használni. M in d ezek elle n ére sok p ro g ­
ram esetéb en kívánatos az «-szeres gyorsulás m ég úgy is, h a eh h ez 2n C P U kell. N agy teljesítm ény elérése
V égülis a C P U -k n em d rág ák , és sok cég elb oldogul 100% -riál jóval kisebb h a té ­
konysággal m ás te rü le te k e n is. A teljesítm énynö velés legnyilvánvalóbb m ódja a C P U -k szám ának növelése a
re n d szerb en . A zo n b an e n n e k a bó'vítésnek oly m ódon kell m egvalósulnia, hogy
közb en sehol ne keletkezzen szűk keresztm etszet. S k álázh a tó n ak nevezik az olyan
re n d sze re k et, m elyekben a C PU -k szám ának növelésével arányosan növekszik a
gép szám ítási teljesítm énye is.
A sk álázhatóság n éhány következm ényének vizsgálatához tekintsünk egy sín­
nel ö sszek ö tött 4 C P U -s ren d szert; ez lá th ató a 8.49. (a) ábrán. M ost képzeljük
el, hogy ezt a ren d szert 16 C P U -sra skálázzuk 12 C P U hozzávételével, am int ezt
a 8.49. (b) á b ra m u tatja. H a a sín sávszélessége h M B/s, a k k o r a C P U -k szám ának
négyszerezésével a C P U -k én t elérhető' sávszélesség fe/4 M B /s-ról í>/16M B /s-ra
csökken. Vagyis az ilyen ren d szerek nem skálázhatók.
M ost egy rácsalapú ren d szerrel tegyük ugyanezt; a 8.49. (c) és 8.49. (d) ábrán
ez láth ató . E nnél a to p o ló g ián ál a C P U -kkal való bővítés a k apcsolatok szám ának

CPU

I
í TTT
tSín
íííM í
mm o-

□ --------ü
□— n —

[>

g-
n — -n

ú — P— P

ú — -ü
A CPU-k száma
(a) (b) (C) (d)
8.47. ábra. A valódi programoknál elérhető gyorsulások a pontozott vonallaljelölt optimális
értékek alatt maradnak 8.49. ábra. (a) Egy 4 CPU-s rendszersínnel, (b) Egy 16 CPU-s rendszersínnel, (c) Egy 4 CPU-s rács
topológiájú rendszer, (d) Egy 16 CPU-s rács topológiájú rendszer
666 8. P Á R H U Z A M O S SZ Á M ÍT Ó G ÉP - A R C H IT E K T Ú R A
8.5. G R ID SZ Á M ÍT Á SO K 667

növekedésével já r együtt, és így a re n d sz e r sk álázása n em csökkenti a C P U -n k én -


is. A m ik o r egy gyorsítótár nem csak a k é rt szót, h an em a szót tartalm azó egész sort
ti összesített sávszélességet, m int ahogy ez a sín ren d szern él tö rté n t. P éld á n k b an a
b etö lti, ak k or a rra szám ít, hogy a szom szédos szavakra h a m aro san szükség lesz.
k ap csolatok C P U -n k én ti szám a a 4 C P U -s rácsh o z ta rto z ó 1-ről a 16 C P U -s rács­
A z előolvasást leh et közvetlenül is vezérelni. M ikor a fo rd ító észleli, hogy bi­
hoz tarto zó (16 C P U és 24 kap cso lat) 1,5-re nő, vagyis a C P U -k k al való bővítés ja ­
zonyos a d a to k ra szükség lesz, elhelyezhet egy közvetlen b e tö ltő p aran cso t az u ta ­
vítja a C P U -n k én ti összesített sávszélességet.
sításso ro zatb an úgy, hogy a szükséges id ő b en az a d ato k m ár elérh ető k legyenek.
T erm észetesen a sávszélesség n em az egyedüli szem p o n t. S ín ren d szern él a
E n n e k a stratég ián ak az a feltétele, hogy a fo rd ító n ak teljes k ö rű inform ációja
C P U -k hozzáadása n em növeli az összek ö tő h áló za t á tm é rő jé t vagy fo rg alo m m en ­
legyen a h a rd v errő l, az időzítésekről, v alam int vezérelni tu d ja az ad ato k elhelye­
tes időszakban a k ésleltetési időt, m íg a rács to p o ló g ián ál ezek nö v ek ed n ek . Egy
zését. A z ilyen fo rd ító által k ezd em én y ezett LOAD u tasításo k akkor dolgoznak a
II X 77-es rács átm érő je 2 ( n - 1), így a legrosszabb (és az átlag ) esetb en a k ésle lte ­
leg h aték o n y abban, ha b iztosan tudják, hogy az a d a tra szükség lesz. N agyon k ö lt­
tési idő közelítőleg a C P U -k szám ának négyzetgyökével arán y o san nő. 400 C P U -
séges egy olyan LOAD m iatti laphiány, am elyet egy rosszul jö v en d ö lt ugrás m iatt
nál az á tm é rő 38, azo n b an 1600 C P U -n ál ez a szám 78, vagyis a C P U -k szám án ak
kezd em én y eztünk.
négyszereződése közel d u p lájá ra növeli az á tm é rő t, és ezzel együtt az átlag o s k és­
A h arm ad ik késleltetési időt elrejtő tech n ik a a többszálú végrehajtás, ahogy azt
leltetési időt is.
m ár k o rá b b an láttuk. H a a folyam atok k ö zö tt elég gyors a váltás, péld ául azáltal,
Id eális esetb en egy sk álázh ató re n d szern él ú jab b C P U -k h o zzáad ása m ellett
hogy m indegyiknek ad u n k saját m em ó rialek ép ező t és h ard v erreg iszterek et, akkor
sem szab ad n a m egváltozni se a C P U -n k é n ti átlagos sávszélességnek, se p edig a
ab b an az esetb en , am ik o r az egyik folyam at távoli a d a t érk ezésére várva blokkoló-
kon stan s é rték ű átlagos k ésleltetési időnek. A g y ak o rlatb an a C P U -n k é n ti m eg fe­
dik, a h ard v er gyorsan átk ap cso lh at egy fu tta th a tó ra . K ivételes esetb en az is e lő ­
lelő sávszélesség e lé rh e tő , de az összes gyakorlati p éld a azt m u ta tja , hogy a k éslel­
fo rd u lh a t, hogy a C P U vég reh ajt az első szálon egy utasítást, m ajd egy m ásik szá­
tetési idő a m é re tte l együtt nő. A logaritm ik u s n ö v ek ed és nagyjából a legjobb, am i
lon egyet és így tovább. Ilyen m ó d o n a C P U folyam atos te rh elése bizto síth ató m ég
ezzel k ap cso latb an e lé rh e tő , m in t a h ip erk o ck án ál.
az egyes szálak hosszú m em ó riak ésleltetései esetén is.
A ren d szerek skálázásából szárm azó késleltetési idő n ö v ek ed és azé rt p ro b lém a,
A negyedik k ésleltetési időt elrejtő tech n ik a a nem blokkoló írás. A lap esetb en
m ert gyakran a finom és k ö zep es szcm csézettségű alk alm azáso k h aték o n y ság át
egy STORE u tasítás v ég reh ajtásak o r a C P U addig vár a folytatással, am íg a STORE
drasztik u san lero n tja. A m ik o r egy p ro g ram n a k olyan a d a tra van szüksége, am ely
b e nem fejeződik. N em b lokkoló írás e setén a m em ó riam ű v eletek a latt a program
nincs a lokális m em ó riáb an , a k k o r ezek e lérése gyakran tek in tély es id ő t igényel,
fo ly ta tó d h a t tovább. A LOAD u tasítás kiadása utáni folytatás n ehezebb, de soron
és ahogy láttu k , nagyobb ren d sze re k n é l hosszabb késleltetéssel já r együtt. E z a
kívüli v ég reh ajtással m ég ez is lehetséges.
pro b lém a ugyanúgy jelen tk ez ik a m u ltip ro cesszo ro k n ál, m in t a m u ltiszám ító g é­
pekn él, mivel m in d k e ttő n é l a fizikai m e m ó ria m indig egym ástól távol eső m o d u ­
lokra osztott.
E zekből a m egfigyelésekből kiindulva a re n d szerterv ező k k ü lö n b ö ző m ó d sze­
rek alkalm azásával nagy g o n d o t fo rd íta n a k arra, hogy a k ésleltetési id ő csö k k en ­
8.5. Gríd számítások
jen vagy rejtve m arad jo n . M ost ezek re a m ó d sz e re k re té rü n k rá. A z első k ésle lte ­
N ap jain k b a n tud om ányos, m érnöki, környezetvédelm i és m ás te rü le te k e n olyan
tési időt elre jtő te c h n ik a az a d a t tö b b szö rö zés. H a egy ad a tb lo k k m á so la ta it tö b b
kihívásokkal nézü n k szem be, am elyek közül sok nagyléptékű és in terdiszcipliná­
helyen is őrizzük, a k k o r e z ek en a hely ek en az a d a te lé ré s felgyorsul. Egy ilyen
ris. M eg o ld ásukhoz sok, gyakran k ü lönböző országbeli szervezet szak értelm ére,
többszörözési tech n ik a a g y o rsító tár alkalm azása, am elynél az a d atb ó l a „ re n d e s”
g y ak o rlo ttságára, tu d á sá ra , szoftverére és a d a ta ira van szükség. N éhány példa:
helye m ellett egy vagy tö b b m á so la to t is tá ro ln a k a felhasználási helyekhez közel.
M ás m ód szert kell alkalm azni egyen ran g ú tö b b szö rö s m áso lato k fen n ta rtá sá h o z -
1. M arsi k ü ld etésen dolgozó tudósok.
ekko r a m áso lato k státu sza m egegyezik - , m in t am ik o r aszim m etrik u s elsődleges/
2. Ö ssze te tt te rm é k e t (p éld áu l g átat vagy re p ü lő g ép et) ép ítő konzorcium .
m ásodlagos viszonyt h aszn áln ak a gyo rsító tárazásn ál. A m ik o r valam ilyen fo rm á ­
3. T erm észeti k atasztró fa u tán a segélyezést összehangoló nem zetközi segélyszer­
ban tö b b m ásolat is létezik, a k k o r a leg fo n to sab b k érd ések , hogy az a d atb lo k k o k at
vezet.
m ikor, ki és hol helyezi el. A válaszok k ite rjed n e k a h a rd v e r által igény szerin t vég­
re h a jto tt dinam ikus helyfoglalástól a fo rd ítási direk tív ák k al vezérelt b e tö ltési id e­
E zek ném elyike hosszú távú együttm űködés, m ások rövidebbek, de közös b e n ­
jű helyfoglalásáig. M in d en e se tb e n lényeges k érd é s a konziszten cia fen n ta rtása .
nük, hogy a k ü lönböző erő fo rráso k k al és eljárásokkal ren d elk ező s z e r v e z e t e k n e k
A m ásodik k ésleltetési id ő t e lre jtő te ch n ik a az előolvasás. H a egy a d a te le m et
együtt kell m ű k ö d n iü k egy közös cél e lérése érd ek éb en .
azt m eg elő ző en b e tö ltü n k , hogy szükség len n e rá, a k k o r a b e tö ltő folyam at egy­
A legutóbbi időkig az e rő fo rráso k és a d ato k m egosztása nagyon nehezen volt
b eesh et a norm ál vég reh ajtással, és így m ik o r az ad a te le m re szükség lesz, ak k o r
m eg o ld h a tó kü lö n b ö ző szám ítógépekkel, o p eráció s ren d szerrel, adatbázisokkal
rend elk ezésre fog állni. A z előolvasás le h e t au to m a tik u s és p ro g ram által v ezérelt
és p ro to k o llo k k al ren d elk ező szervezetek között. A z intézm ények kö zö tti szoros
668 8. P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ú R A
8.5. G R ID s z á m í t á s o k 669

együttm űködés irán ti egyre növekvő igény azo n b an o d a v ezetett, hogy kifejlesz­ lyi k ezelő folyam ata, am ely szabályozott hozzáférést biztosít a távoli felhasználók
te tté k azokat a re n d sz e re k e t és tech n o ló g iák at, am elyekkel nagy távolságban lévő szám ára. E z a réteg egységes és biztonságos felü letet nyújt a m agasabb szintek fe ­
szám ító g ép ek et össze leh e t kapcsolni a g rid n e k n ev ezett egységbe. B izonyos é rte ­ lé az e rő fo rráso k jellem ző in ek és á llap o tán ak lek érd ezéséh ez, illetve az e rő fo rrá ­
lem ben a grid a k övetkező lépés a 8.1. áb ra tengelyén. Ú gy te k in th e tü n k rá, m int sok nyom on k övetéséh ez és h asználatához.
egy nagyon nagy, nem zetk ö zi, lazán kapcsolt h e te ro g é n k laszterre. A követk ező a kollektív szolgáltató réteg, am ely erő fo rrá sc so p o rto k a t kezel.
A grid célja, hogy m eg terem tse a tech n o ló g iai a lap jait an n ak , hogy egy közös Egy funkciója az erő fo rrás-felfed ezés, am elynek segítségével a felhasználó szabad
cél érd e k é b e n dolgozó szervezetek cso p o rtjai virtuális szervezetet alk o th assan ak . szám ítási k ap acitást, le m e zterü letet vagy m e g h atáro zo tt a d a to k a t k eresh et meg.
E n n ek a virtuális szerv ezetn ek ru g alm asn a k kell len n ie, a ta g o k n ak együtt kell E z a ré te g k atalógusok vagy m ás ad atbázisok alap ján ad ja m eg a kívánt in fo rm á­
tu d n iu k dolgozni a c é lterü le te k e n , de u g y an ak k o r az általu k szükségesnek ta rto tt ciókat. E gyfajta b ró k erszo lg áltatást is nyújthat, am elynek so rán a szo lg áltatáso ­
m érték ig m eg kell tu d n iu k ta rta n i az ellen ő rzést saját e rő fo rrá sa ik felett. E z é rt a k at nyújtók és az azo k at igénybe vevők egym áshoz ren d elése m eg tö rtén ik , közben
g riddel foglalkozó k u ta tó k szo lg áltatáso k at, eszközöket és p ro to k o llo k at fejlesz te­ az esetleg a szükségesnél kisebb m ennyiségben ren d elk ezésre álló e rő fo rráso k at
n ek ki, hogy a virtuális szerv ezetek m ű k ö d é sé t leh ető v é tegyék. a v ersen g ő felhasználók között fel kell osztani. A kollektív szolgáltatások rétege
A g rid je lle m z ő e n so k o ld a lü , egyen ran g ú felek részvételével. Ö sszeh aso n líth atju k felelős m ég az ad ato k tö b b szö rö zéséért, új e rő fo rráso k és felhasználók b e lé p te té ­
az ism ert szám ító g ép es ren d szerek k el. A kliens-szerver m o d ellb en egy tran zak ció sé é rt a gridbe, az elszám olási inform ációkért, illetve a hozzáférést biztosító jogok
két fél, a kliens és a szerver kö zö tt zajlik. A szerver valam ilyen szolg áltatást n>TÍjt, ad atb ázisain ak kezeléséért.
a kliens pedig valam ilyen szolg áltatást a k ar igénybe venni. Egy tipikus k lien s-szer­ M ég egg)'el feljebb az alkalm azási réteg helyezkedik el, ahol a felhasználói al­
ver p é ld a a w eb, ahol a felh aszn áló k w eb szerv erek h ez fo rd u ln a k in fo rm ác ió ért. A k alm azáso k találh ató k . A z alsóbb ré teg ek re tám aszkodva jo g o k at szereznek az
grid különbözik azoktól az alk alm azáso k tó l is, am elyek két szem ély k ö zö tt tesz­ e rő fo rrá so k h o z való h o zzáféréshez, felhasználási k é rések et nyújtanak be, nyom on
n ek lehetővé fájlcserét. M ivel a grid m ás, új p ro to k o llo k ra és te ch n o ló g iák ra van k övetik a k érések teljesítésén ek alakulását, kezelik a h ib ák at és közlik az e re d m é ­
szükség. n yek et a felhasználóval.
A g rid b en sokféle e rő fo rrá sh o z kell ho zzáférést biztosítani. M in d en e rő fo rrá s­ A bizto n ság kulcsfontosságú a grid sikere szem pontjából. A z erő fo rrá s-tu la jd o ­
hoz ta rto zik egy jól m e g h a táro z o tt re n d sz e r és szervezet; ez az e rő fo rrá s tu la jd o ­ n o sok szinte m indig szoros felügyelet a latt ak arják tu d n i az erő fo rrásaik at, és m eg
nosa. A tu lajd o n o s d ö n ti el, hogy az erő fo rrásb ó l m ennyit, k inek és m ik o r bocsát a k a rják h a táro zn i, hogy ki m ennyit és m ik o r k ap belőlük. M egfelelő biztonság
ren d elk ezésére. Bizonyos é rte le m b e n a grid tu la jd o n k e p p e n az erő fo rráso k h o z n élkül eg yetlen szervezet sem ad n á az erő fo rrá sa it a gridhez. M ásfelől, ha a fel­
való hozzáférés és azok kezelése. h aszn áló n ak azo n o sító ra és jelszó ra lenne szüksége m in d en olyan szám ítógépen,
A grid egyik leh etség es m odellje a 8.50. áb rá n láth ató . A grid szerkezet legalul am elyhez hozzá a k ar férni, a k k o r a grid h aszn álata elv iselh etetlen ü l körülm ényes
azo k at a k o m p o n e n se k e t foglalja m agában, am elyekből a grid felépül. T artalm azza len n e. K ö v etk ezésk ép p en a grid h ez egy olyan biztonsági m odellt kell kidolgozni,
a C P U -k at, lem ezegységeket, h áló z a to k a t és érzé k elő k e t a h ard v ero ld alo n , v a la­ am ely figyelem be veszi a fenti szem pontokat.
m int a p ro g ram o k a t és az a d a to k a t a szoftveroldalon. E zek azok az erő fo rráso k , A b iztonsági m odell alap tu lajd o n ság a az egyszeri feliratkozás. A grid h aszn á­
am elyeket a grid szabályozott fo rm áb an elérh ető v é tesz. la tán a k első lépése azonosítás u tán egy jogosítvány m egszerzése, am ely egy digi­
Egy szinttel feljebb az erőforrásréteg találh ató , am ely az egyes k o n k ré t e rő fo r­ tálisan aláírt d o k u m e n tu m arró l, hogy kinek a n evében tö rté n ik a m unkavégzés.
ráso k kezelését végzi. Sok e se tb e n a g rid b en h a szn álh ató e rő fo rrá sn a k van egy he- A jogosítvány to v áb b ad h a tó , így am ik o r egy szám ítási felad at részekre bom lik, a
le szárm azo tt folyam atok is azo n o síth ató k lesznek. H a a jogosítványt egy távoli g é­
Szint Funkció p e n a k a rn a k használni, a k k o r azt le kell k épezni a helyi biztonsági m ech an izm u ­
Alkalmazások, amelyek a kezelt erőforrásokat sokra. A U N IX -g ép ek en p éld áu l a felhasználóknak 16 bites azonosítójuk van, de
Alkalmazási réteg
a szabályozott módon megosztják m ás ren d sz e rek m ás m ó d szerek et használnak. V égül, a g rid b en szükség van olyan
Kollektív szolgáltató Erőforráscsoportok felfedezése, figyelése,
m ech a n izm u sokra, am elyek segítségével a hozzáférési jo g o k m eg ad h ató k , k a rb a n ­
réteg vezérlése; brókerszolgáltatás ta rth a to k és m ó d o síth ató k .
A k ü lö n b ö ző szervezetek és gépek közötti eg y üttm űködés eléréséh ez szab­
Szabályozott és biztonságos hozzáférés v ányokra van szükség, m ind a szolgáltatások, m ind az elé ré sü k e t lehetővé tevő
Erőforrás réteg
konkrét erőforrásokhoz
p ro to k o llo k szintjén. A griddel foglalkozó közösség által lé tre h o z o tt szervezet, a
Fizikai erőforrások: számítógépek, tárolók, G lobal G rid Fórum kezeli a szabványosítási folyam atot. E lk észítettek egy OGSA
Szerkezeti réteg
hálózatok, érzékelők, programok és adatok (Open Grid Services Architecture, nyílt grid szolgáltatások architektúrája) n e ­
vű k e re tre n d sz e rt, hogy a különböző, fejlesztés a latt álló szabványokat összefogja.
8.50. ábra. A grid szintjei
A h o l csak lehetséges, a javasolt szabványok felhasználják a m á r létező szabvá­
670 8. P Á R H U Z A M O S SZ Á M lT Ó G ÉP - A R C H IT EK T Ú R A 8.7. FELA D ATO K 671

nyokat, péld áu l a W S D L -t (W eb Services D efinitio n L an g u ag e) az O G SA -szol- szórók közös (szim atoló) sínen vagy cro ssb ar sw itch-en, esetleg többszintű switch-
g áltatáso k leírására. A szabványosítás a la tt álló szo lg áltatáso k a k ö v etk ező nyolc h áló za lo n k eresztül k o m m unikálnak. K özös tu lajdonságuk, hogy m inden m em ó ­
általán o s kateg ó riá b a esnek, de egyértelm ű, hogy ezek k éső b b m ég lijabbakkal riacellát egységesen ugyanannyi idő a latt é rh e tn e k el. E zzel szem ben a N U M A -
bővülnek. m u ltip rocesszorok ugyan szintén egy közös c ím te rü le te t b izto sítan ak a folyam atok
szám ára, de itt a távoli hozzáférések je le n tő se n több id ő t igényelnek, m int a h e ­
1. Infrastrukturális szolgáltatások (erő fo rráso k közötti kom m unikációt tesz lyiek. V égül m ég egy variáció a C O M A -m ultiprocesszorok, am elyekben a gyorsí­
lehetővé). tó so ro k igény szerint m ozognak a gépben, és az előzőkkel e llen tétb en nincs tén y ­
2. E rőforrás-kezelő szolgáltatások (erő fo rráso k lefoglalása és felhasználása). leges tu lajd o nosuk, azaz egy olyan hely, ahová tarto zn án ak .
3. A datszolgáltatáso k (a d a to k m ozgatása és többszörözése a felhasználás helyén). A m u ltiszám ítógépek olyan ren d szerek , am elyekben a C P U -k nem osztoznak
4. K o ntextusszolgáltatások (igényelt e rő fo rrá so k és haszn álati jog o k leírása). a m em ó rián . M indegyiknek külön m em óriája van, egym ással ü zen etk ü ld és segít­
5. Inform ációs szolgáltatások (inform áció az erő fo rráso k ren d elk ezésre állásáról). ségével ko m m unikálnak. A z M PP-k egyedi kom m unikációs h áló za ttal ren d elk ező
6. Ö nkezelő szolgáltatások (m eg ad o tt m inőségű szolgáltatás tám o g atása). nagy m ultiszám ítógépek, m in t p éld áu l az IB M által g y árto tt B lueG ene/L . A klasz-
7. B iztonsági szolgáltatások (biztonsági előírások b e tartatá sa ). te re k k e resk ed elm i fo rg alo m b an k a p h a tó elem ekből fe lé p íte tt egyszerűbb re n d ­
8. V égrehajtás-kezelési szolgáltatások (m unkavégzés kezelése). szerek; ilyen ad ja a G oogle h á tte ré t is.
A m u ltiszám ító g ép ek et gyakran ü z e n etk ü ld ést h asználó szoftvercsom agokkal
Sokkal tö b b e t le h e tn e m ég m o n d an i a gridről, de hely h ián y áb an n em fo ly tat­ e gyütt h asználják; ilyen p éld áu l az M P I. Egy altern atív leh ető ség az alkalm azás­
h atju k ezt a tém át. További inform áció talá lh a tó (B erm an és társai, 2003; F o ster és szintű közös m em ória, m int am ilyen egy lapozásos D S M -ren d szer, a L in d a-ad at-
K esselm an, 2003; F o ster és társai, 2002). egységtér, az O rca- vagy G lo b e-o b jek tu m o k . A D S M lapszinten szim ulálja a közös
m e m ó riá t, e m ia tt h asonlít a N U M A -ren d szerh ez, de a távoli elérések n él sokkal
n agyobbak a késések.
V égül a legfelső szinten a leglazábban kapcsolt a grid. E zek olyan rendszerek,
8.6. Összefoglalás am ely ek b en egész szervezetek v an n ak összekapcsolva az in te rn e te n keresztül,
hogy szám ítási k ap acitásu k at, a d a ta ik a t és m ás e rő fo rrásaik at m egosszák.
A szám ító g ép ek seb esség ét az órajel-frek v en cia em elésével - hőelv ezetési és
egyéb p ro b lém ák m ia tt - egyre n eh ez e b b növelni. E h ely e tt a terv ező k a p á rh u z a ­
m ossággal p ró b á ln a k gyorsulást elérn i. A p árh u zam o sság tö b b k ü lö n b ö ző szinten
is b ev ezeth ető , a legalsó szintek szorosan k apcsolt feldolgozó elem eitő l kezdve a 8.7. Feladatok
legfelső szinteken lazán kap cso lt elem ekig.
L egalul a lapk aszin tű p árh u zam o sság azt jele n ti, hogy egy lap k án b elü l tö rté n ­ 1. A P en tiu m u tasítása a k ár 17 bájt hosszúságú is lehet. V L IW C P U -e a P en ­
nek egyszerre az esem ények. E n n e k egyik fo rm ája az u tasításszin tű p á rh u z a m o s­ tiu m ?
ság, am ik o r egy u tasítás vagy u tasításo k so ro zata tö b b funkcionális egységet k i­ 2. M it k ap u n k eredm ényül, ha a 96, -9 , 300 és 256 é rté k e k re vágást végzünk a
használva egym ással p á rh u z a m o san v é g re h ajth a tó m ű v ele te k et k ezdem ényez. A 0 -2 5 5 vágási tarto m án y b an ?
lapkaszintű p árh u zam o sság m ásik fo rm á ja a többszálúság, ain ik o r a p ro cesszo r 3. M eg en g ed ettek -e a k övetk ező T riM edia u tasításo k ? H a nem , m iért nem ?
tö b b szál k ö zö tt váltogatva h ajt végre u tasításo k a t, ezáltal egy v irtuális m u ltip ro ­ a) E gész összeadás, egész kivonás, b etö ltés, leb eg ő p o n to s összeadás, közvet­
cesszort hozva létre. A lap k aszin tű p á rh u zam o sság h a rm a d ik fo rm ája az egylap- len b e tö ltés
kás m ultiprocesszo r, am elyben k e ttő vagy több, egyszerre m ű k ö d n i k ép es m agot b ) E gész kivonás, egész szorzás, közvetlen b etö ltés, lép tetés, lép tetés
helyeznek el a lapkán. c) K özvetlen b etö ltés, leb eg ő p o n to s összeadás, leb eg ő p o n to s szorzás, elág a­
Egy szinttel feljebb a k o p ro cesszo ro k at találjuk; ezek tip ik u san k ü lö n k árty án zás, k özvetlen b etö ltés
helyezkednek el, és a re n d sz e r feldolgozási seb esség ét speciális fu n k ció k at ellátva 4 . A 8.7. ( d ) -(e ) á b ra 12 cikluson keresztül m u ta tja az u tasításo k at. M in d k ettő re
növelhetik, m int p é ld á u l a háló zati p ro to k o llo k vagy a m u ltim éd ia te rü le té n . A ki­ h a táro z z u k m eg, mi tö rté n ik a következő 3 ciklusban.
egészítő processzo ro k speciális fe la d a to k a t vállalnak á t a fő p ro cesszo rtó l, am ely 5. E gy bizonyos C P U -n ál összesen k ciklust igényel egy olyan utasítás, am elyik az
az így felszabadu lt id ő b en m ással foglalkozhat. a d a to t az első szintű gyorsító tárb an nem , de a m ásodik szintűben m egtalálja.
A k övetkező szin ten a közös m em ó riás m u ltip ro cesszo ro k at találjuk. E zek a H a finom szem csézettségű többszálúságot alk alm azunk az első szintű gyorsító­
ren d szerek k e ttő vagy tö b b teljes é rté k ű C P U -t ta rtalm a z n a k , am elyek közösen tá r h iányainak az elfed ésére, ak k o r hány szál egyidejű fu tta tá sá ra van szükség
h asználnak egy m in d an n y iu k szám ára e lé rh e tő m em ó riát. A z U M A -m u ltip ro cesz- az ü re s ciklusok kiküszöbölésére?
672 8. p á r h u z a m o s s z á m í t ó g é p -a r c h i t e k t ú r a 8.7. FELA D A T O K 673

6. Egy reggelen egy n ié h k ap tárb a n a m élikirálynő összehívja a d o lg o zó k at és azt ben (az IB M R P 3 és a B EN B utterfly ezt a m ó d o síto tt to p o ló g iát használja).
az utasítást adja, hogy az aznapi fe la d a t k ö rö m v irág n e k tár gyűjtése lesz. A d o l­ M i az új topológia h átrán y a az ere d e tih e z képest?
gozók ezután m in d en irányba sz étrep ü ln ek kö rö m v irág o t k eresni. E z S IM D - 19. Egy bizonyos N U M A -m u ltip ro cesszo rb an a lokális m em óriahivatkozások idő­
vagy M lM D -re n d sz e r? igénye 20 ns, a távoli hivatkozásoké pedig 120 ns. Egy pro g ram v égrehajtása
7. A m em ória k o n zisztencia m o d ellek tárgyalása so rán azt m o n d tu k , hogy a kon- a latt összesen m em ó riah iv atk o zást végez, am elyek 1% -a vonatkozik a P lap­
zisztenciam odell egyfajta szerződés a szoftver és a m em ó ria kö zö tt. M iért van ra. E z a lap először távoli, és C ns-ig ta rt helyi m áso lato t készíteni róla. M ilyen
szükség ilyen szerz(5désre? kö rü lm én y ek k ö zö tt é rd em es m áso lato t készíteni róla, ha m ás processzor nem
8. T ekintsünk egy m eg o szto tt sínt használó m ultip ro cesszo rt. M i tö rté n ik , ha két h asználja sokat?
processzor p o n to san u g yanabban a p illan atb an p ró b ál m eg ho zzáférn i a g lo b á­ 20. T ekintsünk egy, a 8.31. áb rán lá th a tó h o z hasonló C C -N U M A -m ultiprocesz-
lis m em óriáh o z? szort, ez ese tb e n 512 feldolgozóegységgel és m indegyikben 8 M B m em óriával.
9. Tegyük fel. hogy technikai okok m ia tt egy szim atoló g y o rsító tár csak a cím vo­ H a a gyorsítósorok 64 b ájtosak, százalékosan m ennyivel nagyobb k atalógusra
n alak a t tu d ja figyelni, az adatví>nalakat nem . B efolyásolná-e ez a v áltozás az van szükség? A feldolgozóegységek szám ának növelése hogyan befolyásolja a
írásáte resztő p ro to k o ll m ű k ö d ését? k ataló g us m ére té t? K isebb lesz, ugyanakkora vagy nagyobb?
10. Egy g yorsítótár nélküli, sínalapú m u ltip ro cesszo ro s re n d szer egyszerű m o d ell­ 21. S zám ítsuk ki a 8.35. áb rá n lá th a tó topológiák m indegyikének átm érő jét.
je k é n t tegyük fel, hogy m in d en négy u tasításból egy fordul a m em ó riáh o z, és 22. A 8.35. áb rá n lá th a tó topológiák m indegyikére h atáro zzu k m eg a hib atű rés
hogy egy m em ó riah iv atk o zás lefoglalja a sínt az egész u tasítás id ő ta rtam ára. m é rték é t. A h ib atű rés az a legnagyobb szám , ahány é le t tö rö lh etü n k anélkül,
H a a sín foglalt, a további k é ré se k et k iad ó C P U -k egy F IF O v árak o zó so rb a hogy a h áló za t k ét diszjunkt részre esne.
kerülnek. M ennyivel lesz gyorsabb egy 64 C P U -s ren d szer, m in t egy 1 C P U -s? 23. Tekintsük a 8.35. (f) á b ra k ettő s tó ru sz topológiáját, de k x . k m éretb en . Mi a
11. A M E SI gyorsítótár-koherencia p rotokollnak négy állapota van. M ás késleltetett h áló za t á tm érő je? Tipp: vizsgáljuk p áro s és p á ra tla n /c-ra külön.
írású gyorsítótár-koherencia protokolloknak csak h árom állapota van. A négy 24. T ekintsünk egy h áló za to t 8 x 8 x 8 fo rm átu m ú kocka topológiával. M inden
M E SI-állapot közül m elyiket lehetne feláldozni, és m i lenne a d öntések követ­ kap cso lat teljes duplex, 1 G B /s sávszélességgel. M ek k o ra a h áló za t k ettévágott
kezm énye? H a csak három állap o to t választhatnánk, melyek lennének azok? sávszélessége?
12. V an-e olyan helyzet a M E S I g y o rsító tár-k o h e ren cia p ro to k o lln ál, am ik o r egy 25. A m dahI törvénye szerint a p árh u zam o s szám ítógéppel e lé rh e tő seb esség n ö ­
so r b en n e van a g y o rsító tárb an , de m égis sín tran za k ció t igényel? H a igen, mi v ek ed és k o rláto zo tt. H atáro zzu k m eg / függvényében a legnagyobb e lé rh e tő
az a helyzet? seb esség növekedést, ahogy a C P U -k szám a v égtelenhez közelít. M ik a k ö v et­
13. Tegyük fel, hogy n C P U van egy közös sínen. Legyen p a n n a k a valószínűsége, kezm ényei e n n e k a h a tá ré rté k n e k a z / = 0,1 érté k re ?
hogy bárm elyik C P U használni ak arja a sínt egy a d o tt ciklusban. M i a valószí­ 26. A 8.49. áb ra b e m u tatja, hogy a sín nem sk álázható, a rács viszont igen. Tegyük
nűsége, hogy: fel, hogy m in d en sín, illetve kap cso lat sávszélessége b, és szám ítsuk ki a C P U -
a) A sín tétle n (0 kérés). n k é n ti átlagos sávszélességet m ind a négy ese tre . E zu tán bővítsük a re n d sz e rt
b) P ontosan egy k érés érkezik. 64 C P U -ra, és végezzük el újra a szám ítást. Mi a h a tá ré rté k , ha a C P U -k szám a
c) Egynél tö b b k érés érkezik. v ég telen h ez közelít?
14. H ány cro ssb ar k apcsoló van egy te lje se n k ié p íte tt Sun F ire E 2 5 K g ép b en ? 27. A könyvben a send h áro m féle variációját tárgyaltuk: szinkron, blokkoló és
15. Teg)'ük fel, hogy az óm eg a h áló za t 2A és 3B kapcso ló ja közö tti v ezeték elsza­ nem b lo k koló. A djunk egy negyedik m ódszert, am ely a blokkoló send-hez h a ­
kad. Kik k ö zö tt szakad m eg a kap cso lat? sonlít, de kissé e lté rő tulajdonságai vannak. H atá ro z z u k m eg az új m ódszer a
16. Világos, hogy a fo rró p o n to k (sű rű n h iv atk o zo tt m em ó riarek eszek ) súlyos b lo k k o ló send-hez képesti előnyeit és h átrányait.
p ro b lém át je le n te n e k a tö b b szin tű k apcsoló h á ló za to k szám ára. U gyanez-e a 28. T ekintsünk egy E th e rn e th e z hasonló ü zen etszó ráso s h áló za ttal ren d elk ező
helyzet a sínalap ú re n d szerek n él? m u ltiszám ítógépet. M iért lényeges az olvasó és az írási m űveletek szám ának
17. Egy óm ega kapcsoló h áló zat 4096 d ara b , 60 ns eiklusidejű R IS C C P U -t k a p ­ arán y a? (A z olvasó m űveletek nem válto ztatják m eg a belső állap o to t táro ló
csol 4096 d a ra b v égtelenül gyors m em ó riam o d u lh o z. A kap cso ló elem ek m in d ­ v álto zó k at, az írási m űv eletek azonban igen.)
egyikének 5 ns a k ésleltetése. H án y k ésleltető ütem kell egy LOAD u tasításh o z?
18. T ekintsünk egy g ép et, am ely a 8.29. áb rá n lá th a tó ó m eg a kap cso ló h áló za to t
használja. T ételezzü k fel, hogy az i. p ro cesszo r p ro g ram ja és v e re m tá ra az i.
m em ó riam o d u lb an van elhelyezve. Tegyünk jav asla to t a to p o ló g ia olyan kis­
m é rték ű m ó d o sítására, am ely nagy k ü lö n b ség et ered m én y ez a teljesítm én y ­
9.1.1. B E V E Z E T Ő ÉS Á LTA LÁ N O S M Ű V E K 675

9. Ajánlott olvasmányok H a m a c h e r és társai: C om puter Organization. 5. kiadás


H agyom ányos tankönyv a szám ítógépek, azon belül a kö zp o n ti egység, m em ória,

és irodalomjegyzék B/K, aritm etik ai egységek és p erifériák felép ítésérő l. F ő p éld ái a 68 000-es és a
Pow erPC .

H e a th : E m h ed d ed System s Design.
N ap jain k b a n gyakorlatilag m in d en 50 dollárnál drágább elektrom os b erendezésben
talá lh a tó egy szám ítógép. E zek a beágyazott ren d szerek képezik e könyv tárgyát. A
b eágyazott rendszerek, m em ó riák és perifériák alapjaitól indulva ju t el az in terfé­
szek, valós idejű operációs rendszerek, szoftver és h ibakeresés tém akörökig.

H e n n e ssy -P atterso n : C om puter A rch it ecture: A Q uantitative A pproach. 3. kiadás


E z a vaskos egyetem i tankönyv m ély rem en ő részletekig vizsgálja a processzor
A z előző nyolc fe jezetb en nagyon sok té m á t ré sz le tez tü n k k ü lö n b ö ző m élységben. és m em ó riá ján ak tervezési elveit. A hangsúlyt a nagy teljesítm ényre, kiváltképp
E z a fejezet a rra szolgál, hogy segítse azo k a t az olvasóinkat, ak ik sze retn é k elm é ­ a p á rh u zam o sság és a csővezetékek kiaknázásával tö rté n ő elé ré sé re fekteti. H a
lyíteni a szám ító g ép -a rc h ite k tú rák b a n eddig m eg szerzett tu d á su k a t. A 9.1. alfe- m in d e n t tu d n i szeretn e a nagy teljesítm ényű C P U -k tervezéséről, ebb en a könyv­
je z e t az a ján lo tt iro d a lm a k at sorolja fel a könyv fejezeteih ez igazodó c so p o rto sí­ b en keresse.
tásban. A 9.2. alfejezet a könyvünkben h iv atk o zo tt összes könyv és cikk jegyzékét
ta rtalm azza szerző k szerin ti áb éc é re n d b e n . N u ll-L o b u r: The Essentials o f C om puter Organization an d Architecture.
Egy ú jab b tankönyv a szám ító g ép -arch itek tú rák ró l, am ely könyvünk szám os té ­
m a k ö ré t tárgyalja, de kevésbé részletesen.

9.1. Javasolt további olvasmányok P a tte rso n -H en n essy : C om puter Organization an d Design. 3. kiadás
E z a kiadás m ár nincs 1000 oldalas, m int a 2. kiadás, m e rt a szöveg nagy része á t­
k e rü lt a C D -R O M -m ellék letre. A könyvben m e g ta rto tt részek lefedik a szám ító­
9.1.1. Bevezető és általános művek g é p -a rc h ite k tú ra szám os asp ek tu sát, b eleé rtv e az aritm etik ai egységet, teljesít­
m ényt, a d a tu ta t, cső vezetékeket, m em ó riát, p e rifériák at és klaszterek et. B ár a
B orkar: G etting Gigascale Chips. P en tiu m 4 is tö b b hely ü tt elő fo rd u l, az elveket fő k én t a M IPS p rocesszoron k e ­
M o o re szabálya v á rh a tó a n m ég legalább egy évtizedig érvényben m arad , és akár resztü l m agyarázzák. A H en n essy terv ezte M IPS processzor volt az első k e re sk e ­
a m illiárd tran ziszto ro s lap k ák is m e g jelen h etn ek . E zek a lap k ák eg y arán t je le n te ­ delm i R IS C gép.
nek kihívásokat és leh ető sé g e k e t is. E b b e n a közlem én y b en az In tel egyik vezető
k u ta tó ja tárgyalja egyebek k ö z ö tt az olyan jövőbeli kihívásokat, m in t a h ő e n e rg ia ­ Price: A H istory o f Calculating M achines.
elvezetés, v alam in t az egyre kisebb és sű rű b b e n elh ely ezett, e n n e k m egfelelően B ár a m o d e rn szám ítógépek k o ra a X IX . században B abbage-dzsel k ezd ő d ö tt, az
nagyobb ellenállású és k ap acitású v ez e té k ek p ro b lém ája. Ú gy véli, hogy a fejlődés e m b e re k a civilizáció h ajn ala ó ta szám olnak. E z a gazdagon illusztrált írás nyo­
n em csak egyszerűen a m ag asab b órajelse b esség b en , h an e m a több szálú ság b an , a m on k öveti a szám olás, a m atem atik a, a n a p tá ra k és a szám ítás fejlő d ését Kr. e.
tö b b p ro cesszo ro s la p k ák b an és jo b b m em ő riaszerv ezésb en rejlik. 3000-től a X X . század kezdetéig.

Colwell: The Pentium Chronicles. S later: Portraits in Silicon.


R ó b e rt Colw ell v ezette a P en tiu m p ro ce ssz o r tervezői c sap atát. E b b en a könyv­ M ié rt n em a d ta be D en n is R itchie a P h D -d isszertáció ját a H a rv a rd ra ? M iért lett
ben a lapka m ö g ö tt m egbúvó e m b e re k rő l, szenvedélyekről és p olitikai m eg fo n ­ Steve Jo b s v eg etárián u s? A válaszokat eb b en a lebilincselően érd ek es könyvben
to láso k ró l ír. találjuk, am ely 34 em b e r rövid é letrajzát tartalm azza, azokét, akik a szám ítógép­
ip a rt fo rm álták , C harles B abbage-től D o n ald K nuth-ig.
676 9, A JÁ N L O T T O L V A SM Á N Y O K ÉS IR O D A L O M JE G Y Z É K 9.1,1. B E V E Z E T Ő ÉS ÁLTA LÁ N O S M Ű V E K 677

Stallings: C om puter Organization a n d Architecture. 6. kiadás


Á ltalán o s leírás a sz á m ító g ép -arch itek tú rák ró l. K önyvünk n é h án y té m á já t a Stal- Scheiblc: A Survey o f Storage Opíions.
lings-könyvben is m egtaláljuk. A m en ió ria tech n o ló g ia újabb összefoglalása, am ely csak a jelenlegi helyzetre k o n ­
c en trál. T árg yalásra k erü ln ek a R A M külö n b ö ző fajtái, a Hash m em ória, m ág n es­
W ilkes: C om puters Then a n d Now. szalag, m erevlem ez, hajlékony lem ez, C D és D V D .
M aurice W ilkes-nek, az ú ttö rő szám ító g ép -terv ező n ek , v alam in t a m ik ro p ro g -
ram ozás feltaláló ján ak szem élyes tö rté n e te a szám ító g ép ek rő l 1946-tól 1968-ig. S ta n -S k a d ro n : Power-Aware C omputing.
E lm eséli a kezd eti h arco k at, am i az ű rk a d é to k (space cad ets) - akik az a u to m a ­ A szám ítógépek kezdenek (szó szerint) túl nagy teljesítm ényűvé válni. T úl sok e n e r­
tikus prog ram o zás hívei voltak (elő -F O R T R A N fo rd ító k ) v alam in t a hag y o m á­ giát fogyasztanak, am i - egyre m obilabb világunkban - egyre kom olyabb p roblém át
nyos g o n dolkod ású k - akik jo b b an sz e re tte k nyolcas szám ren d szerb en p ro g ra ­ je le n t. E z a cikk a vendégszerkesztők bevezetője az IE E E C o m p u ter M agaziné­
m ozni - k ö zö tt dúlt. nak a szám ítástechnika energetikai p roblém áiról szóló különkiadásához.

Triebel: The 80386, 80486, a n d Pentium Processor


9.1.2. Számítógéprendszerek felépítése Kissé n eh éz ezt a könyvet besorolni, m e rt h ard v errel, szoftverrel és interfészekkel
is foglalkozik. M ivel a szerző az Intel m u n k atársa , hívjuk inkább hardverkönyv­
B u ch an an -W ilso n : A d va n c e d PC Architecture. nek. M in d en t elm o n d a processzorokról, m em ó riák ró l, B/K eszközökről, és a
Kissé ren d ezetle n ü l ugyan, de a kön>-v a PC alk atrészein ek széles so rát b em u tatja, 80x86 pro cesszorok illesztéseiről, valam int azok assem bly nyelvű p ro g ram o zásá­
egyebek m ellett a p ro cesszo ro k at, sín ek et (P C I, SCSI és U SB ) és p o rto k a t (játék, ról. M indössze 915 oldalon tartalm azza m in d azt, am it M essm er kön^TC, mivel az
p árh u zam o s és soros). o ld alak nagyobbak.

Ng: A d va n ces in D isk Technology: Performance Issues.


E gyesek m á r legalább 20 éve jö v en d ö lik a m ág n eslem ezek k o rá n ak végét, de a /o k 9.1.3. Digitális logika szintje
m ég m indig velünk van n ak . E cikk szerin t a m ág n eslem ez-tech n o ló g ia olyan ro h a ­
m osan fejlődik, hogy valószínűleg m ég évekig fogjuk használni ő ket. Floyd; Digital Fundam entals. 8. kiadás
A hardv erb eállítottságú olvasóknak, akik tö b b et szeretn én ek tudni a digitális logika
M essm er: The Indispensable P C Hardware B ook. 4. kiadás szintjéről, ez a hatalm as, bőségesen illusztrált négyszínű könj'v valódi gyöngyszem.
E z a könyv a m aga 1296 oldalával (am ely 37 fejezetre és 7 függelékre oszlik) lehet, A fejezetek sok egyéb m ellett lefedik a kom binációs logikát, p ro g ram o zh ató logiká­
hogy n élk ü lö zh e tetlen , de az is leh et, hogy nem ; egy biztos: vastag. C sak n em m in ­ jú eszközöket, flip-flopokat, lép tető regisztereket, m em ó riák at, interfészeket.
d en m eg találh ató b e n n e k im e rítő részletességgel, am it tu d n i kell a 80x86-os p ro ­
cesszorokról, m em ó riák ró l, sínekről, seg éd lap k ák ró l és p erifériák ró l. H a olvasta M a n o -K im e : Logic an d C om puter Design F undam entals. 3. kiadás
és m eg em észtette N o rto n és C ioodm an könyvét (lásd aláb b ), és a tech n ik ai részle­ B á r ez a könyv nem olyan elegáns kivitelű, m int a Floyd-könyv, a digitális logika
tek eggyel m agasab b szintjére sz eretn e eljutni, a k k o r itt kell kezdenie. szintjéhez szintén jó inform ációforrás. L efedi a kom binációs és szekvenciális á ra m ­
k ö rö k e t, reg isztereket, m em ó riák at, a k ö zp o n ti egység és B/K tervezését.
N o rto n G o o d m an : Inside the PC. 8. kiadás
A legtöbb P C h ard v e rrő l írt könyv v illam o sm érn ö k ö k szám ára készült, így a szo ft­ m áj.h ew -K rish n an : P C I Express and A d va n ced Switching.
v eres b eállíto ttsá g ú ak n a k m eg leh ető sen n e h éz olvasm ány. E z a könj'v azonban A PC I E xpress v árh ató an a közeljövőben felváltja a P C I síneket. E z a tanulm ány
m ás. S zakszerűen, de e n n e k e lle n é re k ö z é rth e tő m ó d o n m agyarázza el a P C h a rd ­ b e m u ta tja a P C I E xpress réteg eit, folyam atvezérlését, a virtuális csato rn ák at, k a p ­
ver m ű k ö d ését. T ém ái k ö z ö tt m eg talá lh a tó a k ö zp o n ti egység, m em ó ria, sínek, csolást és útvonalválasztást.
diszkek, m egjelen ítő k , B /K eszközök, m obil PC -k, szám ító g ép -h áló zat és m ég sok
m ás. R itk a és nagyon é rté k es könyv. M azid i-M azid i: The 80x86 IB M P C an d C om patible Computers. 4. kiadás
M in d azo k szám ára, akik szeretn ék m eg érten i a P C -kben ta lá lh a tó összes lapkát,
R obinson: Toward the A g e o f Sm arter Storage. ez a könyv teljes fejezetek et szán a legfontosabb lapkáknak, és h asonlóan bőséges
A táro ló k nagyon so k at fejlő d tek a m ágnesgyűrűs m em ó riák és a lyukkártyák kora in fo rm áció t tartalm az az IB M P C -h ard v errő l és az assem bly nyelvű p ro g ram o zás­
óta. Ez a rövid írás áttek in ti a táro lá stec h n ik a m últját, je le n é t és a jövőbeli irány­ ról is.
zatokat.
678 9. A JÁ N L O T T O L V A SM Á N Y O K ÉS IR O D A L O M JE G Y Z É K 9.1.1. B E V E Z E T Ő ÉS Á LTA LÁ N O S M Ű V E K 679

R oth: Fundamentcils o f Logic Design. 9.1.5 Az utasításrendszer-archítektúra szintje


A digitális Jogikai tervezés alap jairó l o h ’ash a tu n k eb b en a la iik ö n w b e n a B oole-
alg eb rátó l a k ap u k o n , szám lálókon, ö.sszeadókon, flip-flopokon át egyéb k o m b i­ A n to n ak o s: The Pentium Microprocessor.
nációs cs szekvenciális áram körökig. E n n ek a kön>'vnek az első kilenc fejezete azzal foglalkozik, hogy hogyan kell a
P en tiu m o t assem bly nyelven program ozni. A z utolsó k e ttő a P en tiu m -h ard v ert
m u ta tja be. Szám os k ó d részletet tartalm az, valam int foglalkozik a B lO S -szal is.
9.1.4. A míkroarchitektúra szintje
A yala: The 8051 M ierocontrolkr. 3. kiadás
B u rg e r-G o o d m a n ; Billion-Transistor Architectures: Tlicrc a n d B a ck Again. A 8051-es p ro g ram o zása iránt é rd ek lő d ő k szám ára ez a könyv értelm es k iin d u ló ­
Tegyük fel, hogy 1997-ben valaki a d o tt v o ln a n ek ü n k egy m illiárd tran zisz to rt, és p o n t.
azt m o n d ta volna: Tervezz egy lapkát! M ilyen m ik ro a rc liitek tú rá t terv eztü n k vol­
n a? 1997 sz ep lcm b e réb e n h é t kom oly a rc h ite k tú ra k u ta ló , ak ik n ek fe ltették ezt a B ry a n t-O ’H allaron: C om puter Systems: A P rogram m er’s Perspective.
k érd ést, közölte n é z e té t az IE E E C o m p u te r M agaziné oldalain . H é t évvel később A könyv kissé szervezetlen ugyan, de az ISA -szint nagy te rü le té t fedi le. b eleértv e
ö sszeh aso n líto tták jó sla ta ik a t az ak tu ális állap o ttal. az a ritm etik át, a különféle u tasításo k at, a vezérlési szerk ezetek et és a p ro g ra m o p ­
tim alizálás tém ak ö rét.
H andy: The Cache Memory’ B ook. 2. kiadás
A gyorsítótár terv ezése ö n m ag á b a n olyan fontos, hogy teljes könyveket szen teln ek Paul; S P A R C Architecture, A ssem bly Language, Programming, and C.
neki. E z a könyv tárgyalja a logikai és fizikai g y o rsító tárak , a w rite-th ro u g h (írását- C so d ák c so d ájára itt egy könyv az assem bly nyelvű prog ram o zásró l, am ely nem az
eresztés) és w rite-back (k é sle lte te tt írás, visszaírás) vezérelvek, a közös és oszto tt In tel 80x86 so ro zatró l szól. E helyett a SPARC és p ro g ram o zása a tém a.
g yo rsító tárak ö sszeh aso n lításá t, v alam in t a szoftver k é rd éseit is. K ülön fejezet szól
a m u ltiprocesszo ro k g y o rsító tárain ak összefüggéséről is. W eav e r-G erm o n d : The S P A R C Architecture M anual.
A szám ító g ép ip ar nem zetkcizivé válásával egyre fo n to sab b ak a szabványok, te h á t
Johnson: Super.scalar M icroprocessor Design. nagyon lényeges, hogy m egism erk ed jü n k velük. E z a SPARC 9-es verziójának d e ­
A zoknak az olvasóknak, akik a szu p ersk aláris C P U terv e z é sé n e k részletei irán t finícióját tartalm azza, és nagyon jó k é p e t ad arró l, hogyan is néz ki egy szabvány,
érd ek lő d n ek , jó kiindulási alap ez a könyv. T artalm azza az u tasításo k b e tö lté sé t és to v áb b á a 64 bites SPA RC-ok m ű k ö d ését is nagyon jó l m utatja.
d ek ó d o lását, a so rre n d e n kívüli v ég reh ajtást, a reg iszte rátn ev ezést, állom ások le­
foglalását, elágazások e lő rejelzését és m ég sok egyéb tech n ik át.
9.1.6. Az operációs rendszer gép szintje
S hriv er-S m ith: The A n a to m y o fa H igh-Perfotm ance Microprocessor.
N agyon jó választás egy m o d ern p ro cesszo rt a m ík ro a rc h ite k tú ra szintjén ta n u l­ H a rt: W in32 System Programming.
m ányozni vágyók szám ára. R észletesen vizsgálja az A M D K6 lapkát, egy Pentium A W indow sról szóló sok m ás könyvvel e llen tétb en ez a m ű nem ragad le a grafikus
kiónt, kiem elve a csővezetékek h aszn álatát, az u tasítás ü te m ez é st és a teljesítm ény felhasználói interfésznél, sőt nem is foglalkozik vele. K ö zép p o n tb an a W indow s
optim alizálást. felk ín álta rendszerhívások állnak, valam int h aszn álatu k m ódja a fájlelérésben,
m em ó riak ezelésb en , processzusok kezelésében, processzusok közti k o m m u n ik á­
Sim a: Superscahír h istm ctio n Issue. ció b an , fo n a lak készítésében, B/K-ben és egyéb tém ák b an .
A m o d e rn kö zp o n ti egységben egyre fo n to sab b k é rd é sk ö rt je le n te n e k a szu p e r­
skaláris utasításk io sztáso k . K önyvünkben is é rin te ttü n k n é h án y ilyen kérd ést, Ja co b -M u d g e : Virtual M em oiy: Issues o f Im plem entation.
m in t p éld áu l az átn ev ezést és a spek u latív v ég reh ajtást. E b b en a cikkben ez e k e t és H a egy jó és m o d ern bevezetésre van szüksége a virtuális m em óriák világába, a k ­
m ég szám os m ás k é rd é st is vizsgálnak. k o r itt k eresse. E lm agyarázza a kü lö n b ö ző lap tá b lá k a t és T L B -stru k tú rá k a t, ezen
tú lm en ő e n a M IPS, a P ow erP C és a P entium p ro cesszo ro k o n k eresztül illusztrálja
W ilson: Challenges a n d Trends in Processor Design. is az ö tletek et.
A processzorterv ezés v alóban kihall? S em m iképpen. H a t m e n ő C P U -te r\e z ő , a
Sun, Cyrix, M o to ro la, M ips, In tel és a D igital m u n k a tá rsa i elm o n d ják, hogyan k ép ­ M cKusick és társai: The Design and Im plem entation o fth e 4.4 B SD Opcrating System.
zelik a C P U -fejlő d cs irányvonalát a követk ező években. É lm ény lesz ezt 2008-ban A U N IX -ró l szóló könyvek többségétől elté rő e n , a könyv a négy szerzőnek egy
olvasni (de m ost is érd em es). U S E N IX -k o n feren cián készült fotójával kezdődik, h á rm a n közülük írták a 4.4-es
680 9. a j á n l o t t o l v a s m á n y o k é s i r o d a l o m j e g y z é k 9.1.1. B E V E Z E T Ő ÉS Á LTA LÁ N O S M Ű V E K 681

B SD nagy részét, így kiválóan alk alm asak arra, hogy an n ak belső m ű k ö d é sé t el­ C om er: N etw ork System s Design.
m agyarázzák. E z a könyv lefedi a ren d szerh ív áso k at, fo ly am ato k at, B /K m ű v ele te ­ A könyv első része a hagyom ányos hálózati csom agfeldolgozásról szól, a m ásodik
ket, és tartalm az egy k ü lö n ö sen é rték e s részt a h áló za to k ró l. rész azo n b an b em u tatja a hálózati p ro cesszo ro k at és leírja azok célját, arc h ite k ­
tú rá já t és tervezési kom prom isszum ait. A h arm ad ik rész esettan u lm án y k én t az
R itch ie-T h o m p so n : The U N IX Tim e-Sharing System. A g ere háló zati p ro cesszo rral foglalkozik.
E z az e re d e ti cikk a U N IX -ró l. M ég m o st is érd e m e s olvasgatni. E b b ő l a kis m ag ­
ból n ő tt ki egy nagy o p eráció s rendszer. D ally-Tow les: Principles an d Practices o f Interconnection Networks.
A z ö sszekapcsolódó h áló zato k irán t érd ek lő d ő k n ek ez a m egfelelő olvasm ány.
R ussinovich-S olo m o n : Inside M icrosoft Windows. 4. kiadás Egy kis to pológiai b ev ezető u tán tárgyalja a pillan g ó h áló zato k at, a tóruszhálóza-
A zok szám ára, akik a W indow s belső m ű k ö d é sé re kíváncsiak, ez a legjobb válasz­ to k a t és a nem blokkoló h áló za to k at is. A z ezu tá n következő jó néh án y fejezet az
tás. A tém ak ö rö k k ö zö tt ta lá lh ató k egyebek k ö z ö tt a re n d sz e r arch ite k tú rá ja , a útvonalválasztásról, folyam atvezérlésről, p u fferelésről, h o ltp o n tk ezelésrő l és k a p ­
ren d szer m echan izm u sa, processzusok, fo n alak , m em ó riak ezelés, biztonsági k é r­ csolódó k érd ésk ö rö k rő l szól.
dések, B/K leh ető ség ek , gyorsítók és a fájlren d szer. A nagyon alap o s könyv in fo r­
m atik a szakos h allg ató k és in fo rm atik ai szak em b erek szám ára készült. D o n g a rra és társai: The Sourcebook o f Parallel Computing.
A m u ltiprocesszorok és k laszterek p ro g ram o zása lényegesen e lté r az cgyprocesz-
T an enbaum -W o o d h u ll: Operating Systems: Design a n d Im plem entation. 2. kiad ás szoros re n d szerek p ro g ram o zásátó l. E b b en a könyvben a p árh u zam o s p ro g ra m o ­
A z o perációs re n d sz erek rő l szóló könyvek tö b bségével e lle n té tb e n , am elyek zás h é t v ezető szakértője tárgyalja a p árh u zam o s p ro g ram o zás különféle a sp ek tu ­
csak az elm élette l foglalkoznak, ez a könyv az összes lényeges e lm élet tárg y alá­ sait, b eleértv e a p árh u zam o s a rc h itek tú rák at, szoftvertechnológiákat, párh u zam o s
sa m ellett illusztrálja is azo k at az IB M PC -n és egyéb szám ító g ép ek en fu tta th a tó a lg o ritm u so k at és n éhány alkalm azást is.
M IN IX , egy U N IX -sze rű o p eráció s re n d sz e r tényleges k ódjain keresztü l. A m eg ­
jegyzésekkel bőségesen e llá to tt fo rrá sk ó d m eg ta lá lh a tó a függelékben. H ill: M ultiprocessors Sho id d Support Sim ple M em ojy-C onsistency Models.
A g y en g ített m em ó riaszem an tik a a m u ltiprocesszorok m em ó riaterv ezésén ek n a ­
gyon aktuális és v itato tt tém ája. A gyengébb m o dellek ugyan m egengednek olyan
9.1.7. Assembly nyelv szintje h ard v ero p tim alizációkat, m in t a n em so rren d b en tö rté n ő m em óriahivatkozások,
a p ro g ram o zást azonban n eh ézk eseb b é teszik. E b b en a cikkben a szerző a m em ó ­
L evine: L inkers a n d Loaders. riak o n zisztencia szám os fo n to s k é rd é sé t tárgyalja, m ajd arra a k ö v etk eztetésre ju t,
H a szerkesztőkkel és b etö ltő k k e l foglalkozik, és k ed v ét leli a k ü lönféle tárg y k ó d ­ hogy a gyengített m em óriával több a baj, m in t a haszon.
fo rm átu m o k b an , a d in am ik u s és statik u s szerk esztés közö tti k ü lö n b ség ek b en , va­
lam int a különféle k ö n y v tárfo rm átu m o k b an , ez a könyv Ö n n e k való. H w an g -X u : Scalable Parallel C omputing.
A h a rd v e r és a szoftver együttes tárgyalásával a szerzőknek sikerült a p árh u zam o s
Salom an: A ssem blers a n d Loaders. szám ításról egy m inden részletre k itérő , m égis olvasm ányos összefoglalást készí­
Itt m in d en m eg találh ató , am i é rd e k es leh e t az egy- és k é tm e n e te s assem b ler, to ­ ten iü k . A tém ák k ö zö tt m eg találh ató k az U M A és N U M A m ultiprocesszorok,
v áb b á a szerkesztő k és b e tö ltő k m ű k ö d ésérő l. A könyv tárgyalja to v áb b á a m a k ró ­ M PP-k és CO W -k, az ü zen etto v áb b ítás és az a d a tp á rh u zam o s program ozás.
k at és a feltételes assem bly fo rd ítást.
L aw ton: Will N etw ork Processors Units L ive up to Their Prom ise?
B ár a háló zati processzorok gyorsabb csom agfeldolgozást ígérnek, a sikerük nem
9.1.8. Párhuzamos számítógép-architektúrák g ara n tá lt. E b b en a cikkben a szerző áttek in ti a tech n o ló g iát és néhány olyan té ­
nyezőt, am elyek m eg h atáro zó k le h etn ek an n ak sik eréb en vagy bukásában.
A d v e -G h a ra c h o rlo o : Shared M em ory Consistency M odels: A Tutorial.
N agyon sok m o d e rn szám ítógép - k ü lö n ö sen a m u ltip ro cesszo ro k - csak a szek­ M cK night és társai: Wireless Grids.
venciálisán konziszten sn él gyengébb m em ó ria m o d e llt tám o g atja. E z az összefog­ A lig szü lettek m eg a rácsh áló zato k m áris egy új gen eráció s rácsh áló zat (a vezeték
laló tárgyalja a k ü lö n b ö ző m o d e lle k e t és elm agyarázza a m ű k ö d ésü k et. E zen kívül n élküli rács) van feltű n ő b en . A hagyom ányos rácsh áló zato k h o z h asonlóan ezek
k im ond és cáfol szám os m ítoszt a gyengén k o nzisztens m em ó riák ró l. is a szervezetek közötti erő fo rrás-m eg o sztást célozzák m eg, hogy virtuális szerve­
z e te k e t hozzanak létre, azo n b an ezek v ezeték nélküli tech n o ló g iát alkalm aznak,
682 9. A JÁ N L O T T O L V A SM Á N Y O K ÉS IR O D A L O M JE G Y Z É K 9.1,1. B E V E Z E T Ő ÉS Á LTA LÁ N O S M Ű V E K 683

hogy a ván d o rló felh aszn áló k szám ára is elérh e tő v é tegyék az e rő fo rrá so k at. A két K orén: C om puter A rithm etic Algorithm s.
ezt k övető eikk is v ezeték nélküli rá esh áló zato k ró l szól. A z egész könyv az a ritm etik áró l szól, hangsúlyt fektetve az összeadás, szorzás és
osztás gyors algoritm usaira. M in d en k in ek m elegen ajánljuk, aki úgy gondolja,
Pfister: In Search ofC lusters. 2. kiadás hogy a szám tan ró l m ár h ato d ik osztályos k o ráb an m in d en t m egtanult.
A n n ak ellen ére, hogy a k laszter fo g alm át egészen a 72. oldalig nem definiálja (ez
együttm ű k ö d ő szám ító g ép ek cso p o rtjá t je le n ti), a k laszter k étség telen ü l m ag á­ IE E E : Proc. o fth e n-th Sym posium on C om puter A rithm etic.
b a foglalja az összes szokásos tö b b p ro cesszo ro s és tö b b szám ító g ep es ren d szert. M ás v élem ényekkel e lle n té tb e n az aritm etik a élő k u tatási te rü le t. N agyon sok a
A könyv részletesen tan u lm án y o zza ezek h ard v erét, szoftverét, teljesítm én y ét és tu d o m án y o s cikk, am elyeket aritm etik ai specialisták, illetve nekik írtak. E zen a
elérh ető ség ét. M eg kell jeg y ezn ü n k azo n b an , hogy a szerző elein te szó rak o ztató szim p ó ziu m sorozaton tö b b ek k ö zö tt a nagy sebességű összeadás és szorzás fejlő­
aranyos stílusa az 500. o ld alra fo k o zato san elveszti ú jszerűségét. dési tre n d je it, a V LSI aritm etik ai h ard v ert, a társp ro cesszo ro k at, a h ibakezelést és
a k e re k íté st m u ta ttá k be.
Snir és társai: M P l: The C om plete Reference M am ial.
A cím m in d en t elm ond. H a m eg ak ar tan u ln i M P I-b en pro g ram o zn i, ezt a könyvet K nuth: Sem inum erícal Algorithm s. 3. kiadás
keresse. A könyv egyebek k ö zö tt tárgyalja a p o n t-p o n t k özötti és a kollektív k o m ­ G azd ag anyag a pozicionális szám ren d szerek rő l, leb eg ő p o n to s aritm etik áró l,
m unikációt, k o m m u n ik áto ro k at, k ö rn y ezetm en ed zsm en tet és a profilok készítését. töb b szö rö s p o n to sság ú a ritm etik áró l és a véletlen szám okról. E z az anyag m egkí­
v ánja és m eg érdem li a gondos tanulm ányozást.
S tenstrom és társai: Trends in Shared M em ory Multiprocessing.
B ár a m eg o szto tt m em ó riás m u ltip ro cesszo ro k ró l gyakran azt g ondolják, hogy W ilson: Floating-Point S u n ’ival Kit.
ezek nagym ennyiségű tu d o m án y o s szám ításo k ra szolgáló szu p erszám ító g ép ek , a E z a szép b ev ezetés a leb eg ő p o n to s szám ok té m a k ö ré b e és szabványokba azoknak
v alóságban ez csak egy nagyon vékony ré teg e en n e k a piacnak. E b b e n a cikkben a szól, akik úgy gondolják, hogy a világ 65 535-nél befejeződik. N éh án y n ép szerű és
szerzők b em u tatják , hogy v aló jáb an hol is van e gép ek igazi piaca, és e n n ek milyen m érv ad ó leb eg ő p o n to s ren d szert, m int p éld áu l a L in p a c k o t is b em u tatják .
k ih atása van arch ite k tú ráju k ra .

U n g e re r és tá r s a i: ^ Survey o f Processors with Explicit Multithreading. 9.1.10. Assembly nyelvű programozás


A cikk elm agyarázza a töb b szálú ság m in d en fo n to sab b fajtáján ak — finom an ta ­
golt, d urván tago lt és egyidejű — m ű k ö d ését, és szám os p é ld á t ad az a d o tt te c h n i­ B lum : Professional A ssem bly Language.
k át h asználó tudo m án y o s és k e resk ed elm i szám ító g ép ek közül. Ú tm u ta tó a P entium assem bly nyelvű p ro g ram o zásáh o z profiknak. M ivel a könyv
e lső so rb an szak értő k n ek készült, feltételezi, hogy az olvasó szám ítógépén Linux
Wolf: The Future o f M ultiprocessor Systems-on-Chips. o p eráció s re n d szert fu ttat, és a L inuxos assem b lerre és a G N U -eszk ö zö k re össz­
H á ro m jelenlegi lap k á ra in teg rált re n d sze r terv ein ek b e m u ta tá sa u tá n a szerző p o n to sít, v alam int a L inux ren dszerhívásait tárgyalja.
tovább vizsgálja a jövőbeli re n d sz erek h ard v er- és szoftverkihívásait. A h a rd v e r­
p ro b lém ák k ö zö tt a valós idejűség, a h ő te rm e lés és h ő elv ezetés g ondja, míg a \rw'me\ A ssem bly Language fa r Intel-B ased Computers. 4. kiadás
szoftveroldalon az o p erác ió s re n d sz e r k érd ései és a leh etség es biztonsági p ro b lé ­ A könyv tém ája az In tel kö zp o n ti egységének assem bly nyelven való p ro g ram o zá­
m ák találhatók. sa. Sok egyéb kapcsolódó tém a m ellett lefedi továbbá a B /K p rogram ozás, a m ak ­
rók, a fájlok, a szerkesztés és a m egszakítások k érd ésk ö rét.

9.1.9. Bináris és lebegőpontos számok

Cody: A nalysis o f Proposals fó r the Floating-Point Standard.


E vekkel e zelő tt az IE E E m e g te rv e z e tt egy leb eg ő p o n to s arc h ite k tú rá t, am ely de
facto szabvánnyá vált a m o d e rn p ro cesszo rlap k ák szám ára. C ody a szabványosítás
folyam ata során felm erü lő k ü lö n b ö ző k é rd ése k e t, jav asla to k a t és e lle n tm o n d á so ­
k at tárgyalja.
684 9. A JÁ N L O T T O L V A SM Á N Y O K É S IR O D A L O M JE G Y Z É K
9.2. B IB L IO G R Á F IA 685

9.2. Bibliográfia BAL, H. E., K A A SH O EK , M . E -T A N E N B A U M , A. S.: O rca. A L anguagc


fó r P arallel P rogram m ing o f D istrib u ted System s. IE E E Trans. on Software
ADAMS, M .-D U L C H IN O S , D.: O p en C ab le. IE E E C oninnin. M agaziné, 39. évf., Engineering, 18. évf., pp. 190-205., 1992. m árc.
pp. 98-105., 2001. jú n . ’
BAL, H . E.-T A N E N B A U M , A.S.: D istrib u ted P rogram m ing with S hared D ata.
ADIG A, N .R. és tá rs a i: A n O verview o f th e B lu e G en e /L S u p erco m p u ter. Proc. Proc. 1 9 8 8 I n t i Conf. on C om puter Languages, IE E E , pp. 82-91., 1988.
Siipercom puting 2002, A C M , pp. 1-22., 2002. B A R R O SO , L. A., DEAN, J., H O L Z L E , U.: W eb Scarch fór a Plánét: T he G oogle
ADVE, S.V .-C H A RA C H O RLO O , K ,: S h a re d M em ory C onsistency M odels: A C lu ster A rch itectu re. IE E E M icro M agaziné, 23. cvf., pp. 22-28., 2003. m á rc .-
T utorial. IE E E C om puter A4agazine, 29. évf., pp. 6 6-76., 1996. dec. ápr.
ADVE, S.V .-H ILL, M .: W eak O rd erin g : A N ew D efin itio n . Proc. 17th A n n . I n t i
B E C H IN I, A., C O N T E , T. M .-P R E T E , C. A.: O p p o rtu n itie s and C hallcnges in
Sym p. on C om puter A rch., A C M , pp. 2-14., 1990. E m b e d d e d Systems. IE E E M icro M agaziné. 24. évf., pp. 8-9., 2004. jú l.-au g .
AGERWALA, T .-C O C K E , J.: H igh P erfo rm an ce R e d u ced In stru c tio n Set B E N IN I, L .-D E M IC H E L I, G.: N etw orks on Chips: A New SoC Paradigm . IE E E
Processors. IB M T.J. W atson R esearch C e n te r Technical R e p o rt RC12434. C om puter M agaziné, 35. évf., pp. 70-78., 2002. jan.
1987.
BER]\'L\N, E , FO X , G .-HEY , A .J.G.: G rid Com puting: M aking the G lobal
A LA M E L D E E N , A. R .-W ood, D. A,: A daptive C ach e C o m p ressio n fó r H igh-
Infrastnicture a Reality. H o b o k en , N J: Jo h n W ilcy. 2003.
Perform ance P rocessors. Proc. 31st A n n . I n t ’l Sym p. on C om puter A rch ., A CM ,
B JO R N S O N , R. D.: L inda o n D istrib u ted M em ory M ultiprocessors. Ph.D . T hcsis,
pp. 212-223., 2004.
Yale U niv., 1993.
A LM A SI, G. S. és tá rs a i: System M a n ag em en t in th e B lu cG cn e /L S u p erco m p u ter.
B LU M , R.: Professional A ssem bly Language. N ew York: Wiley, 2005.
Proc. 17th I n t ’I Parallel a n d Distr. Proc. Sym p., IE E E , 2003a.
B L U M R IC H , M ., C H E N , D., C H IU , G., C O T E U S, lí, GARA, A., GIAM PAPA, M.
A LM A SI, G.S. és tá rs a i: A n O verview O f T h e B lu e G e n e/L System Softw are
E ., H A R IN G , R. A., H E ID E L B E R G E R , H, H O E N IC K E , D., KOPCSAY, G. V,
O rganization. Pár. Proc. Letters, 13. évf., pp. 561-574., 2003b. ápr.
O H M A C H T, M ., STEIN M A C H ER -B U R O W , B. D., TA K K EN , T., VRANSAS,
A M ZA, C., COX, A., DWARKADAS, S., K E L E H E R , E, LU, H ., RAJAMONY, R„
E -L IE B S C H , T.: A n O verview o f th e B lu eG cn c/L System . IB M J. Research am i
YU, W„ Z W A EN EPO EL, W : T readM ariís: S h ared M em ory C o m p u tin g on a
D e v e i, 49. évf.. 2005. m árc.-m áj.
NetW ork o f W orkstations. IE E E C om puter M agaziné, 29. cvf., pp. 18-28., 1996.
B O R K A R , S.: G ettin g G igascale C hips. Q ueue, pp. 26-33., 2003. okt.
febr.
B Ő S E , E: C o m p u te r a rc h itectu re research: Shifting p rio rities an d n ew cr ch allcn ­
A N D ER SO N , D.: Universal Serial B ús System A rchitecture. R eading, M A : A ddison-
ges. IE E E M icro M agaziné, 24. cvf., p. 5., 2004. n o v.-dcc.
Wesley, 1997.
B O U K N IG H T , W. J„ D EN E N B E R G , S. A., M( IN TY R E, D. E ., RANDALL, J. M.,
A N D ER SO N , D., B U D R U K , R .-SH A N LEY , T.: P C I Express System Architecture. SA M EH , A. IL -S L O T N IC K , D. L.: T h e Illiac IV System . Proc. IE E E , pp. 369­
R eading, M A: A ddison-W esley, 2004.
388., 1972. ápr.
A N D ER SO N , T. E ., C U L L E R , D. E ,, PA TTERSO N , D. A .-th e N O W team : A Case B R IG H T W E L L , R ., CAMP, W., C O L É , B„ Di B E N E D IC T IS, E „ LELAND, R.,
fór N O W (N etw o rk s o f W o rkstations). IE E E M icro M agaziné, 15. évf., pp. 54­ T O M P K IN S , H -M acC A B E : A rch itectu ral S pecification fó r M assively Parallel
64., 1995. jan.
S u p erco m p u ters: A n E xperience an d M easu rem en t-B ased A p p ro ach . Concur-
A NTON AK O S, J.L .: The Pentium Microprocessor. U p p e r S addle R iver, NJ: rency and C om putation: Practice and E.xperience, 17. évf.. pp. 1-46., 2005.
P rentice H all, 1997.
BRYANT, R. E .-O ’HALLARON , D.: C om puter Systems: A Prograinmer's Perspective.
AUGUST, D. L, C O N N O R S , D. A., M S H L K E , S, A., SIAS, J. W„ C R O Z IE R , K. U p p e r S addle R iver, N J: P rentice H all, 2003.
M ., C H E N G , B ,-C „ EATON, P. R ., OLANIRAN, Q, B .-H W U , W -M .: In te g rate d BUCHANAN, W., W IL SO N , A .:/lc ? ra /7 m /F C /l/r/íí7 « //» í^ R eading, M A: A ddison-
P red icated an d Speculative E x ecu tio n in th e IM PA C T E P IC A rc h ite c tu re . Proc.
W esley, 2001.
25th A n n . I n t i Sym p. on C om puter A rch ., A C M , pp. 227-237., 1998. B U R G E R , D .-G O O D M A N , J. R.: Billion-Transistor A rch itectu res: T h ere and
AYALA, K: The 8051 Microcontrolién 3. kiad., C lifton Park, NY: T h o m so n D elm ar
B ack A gain. IE E E C om puter M agaziné, 37. évi ., pp. 22-28., 2004. m árc.
L earning, 2004.
BURK HA RD T, H., FRAN K, S., K N O B E , B .-R O T H N IE , J.: O verview o f the
BAL, H. E.: P rogram m ing D istiihuted Systems. H em el H e m p ste a d , E ngland: KSR-1 C o m p u te r System , lé c h n ic a l R e p o rt KSR-TR-9202001, K endall S quare
P rentice H all I n t’l, 1991.
R ese a rc h C orp, C am bridge, M A , 1992.
BAL, H .E ., B H O E D JA N G , R., H O FM A N , R, JA C O B S, C., LA N G EN D O EN . K.. CAIN, H .-L IP A S T I, M .: M em ory O rdering: A V aluc-B ased A p p ro ach , Proc. 3 Iih
R U H L , T .-K A A SH O EK , M . E: P erfo rm an ce E v alu atio n o f th e O rca S hared A n n . I n t i Symp. on C om puter Arch. ACW. pp. 90-101., 2004.
O hject S ystem ./IC A / Trans. on C om puter System s, 16. évf., pp. 1-40., 1998. j a n -
febr. ■
686 9. a j á n l o t t o l v a s m á n y o k é s i r o d a l o m j e g y z é k 9.2. B IB L IO G R Á F IA 687

CALCUTT, D., COWAN. F.-PA R C H IZ A D E H , H.: 8051 Microcontrollers: A n D IJK S T R A , E. W.: C o -o p eratin g S eq u en tial Processes. in Progranuning Languages,
A pplications B ascd Introdiiction. O xford: N ew iies, 2004. F. G enuys (szerk.), N ew York: A cadem ic Press, 1968b.
C A R R IEK O , N .-G E L E R N T E K , D.: L inda in C ontext. C om m un. o f the A C M , 32. D O N A LD SO N , G., un d JO N E S , I).: C able "Iclcvision B ro ad b an d N etw ork
évf., pp. 444-458., 19cS9. ápr. A rch itectu res. IE E E C om m un. M agaziné, 39. évf., pp. 122-126., 2001. jún.
C H A R LE SW O R T H , A.: T h e Sun F irep ian e In terco n n ect. IE E E M icro M agaziné, D ON GA RRA , J., F O S T E R , L, FO X , G RO PI^ W , KENNEDY, K ., T O R C Z O N ,
22. évf., pp. 36-45., 2002. ja n .-fe b r. L .-W H IT E , A.: The Soureehook o f Parallel C om puting. San Francisco: M organ
C H A R LE SW O R T H , A.: T h e Sun l ircplanc In terco n n ect. Proc. Conf: on High K aufm an, 2003.
Perf. N etw orking a n d C om puting, A C M , 200L D U B O IS, M ., SC H E U R IC H , C .-B R IG G S , E A.: M em ory A ccess B uffering in
C H A R LE SW O R T H , A., P H E L P S , A., W IL L IA M S, R .-C IL B E R T , C.: G iga M u ltip ro cessors. Proc. IS th A n n . I n t’l Symp. on C om puter A rch., A C M , pp, 434­
plane-X B : E x ten d in g th e U ltra E n te rp rise Family. Proc. H o t Interconnects V, 442., 1986.
IE E E , 1998. D U L O N G , C.: T h e IA-64 A reh itectu re at W ork. IE E E C om puter M agaziné, 31.
C H E N , L., D R O P S H O , S., A L B O N E SI, D.ÍL: D ynam ic D a ta D ep c n d e n c e é v f.,p p . 24-32., 1998. júl.
Tracking and its A p plication to B ranch P red ictio n . Proc. N in th I n t’l Sym p. on DUTTA-ROY, A.: A n O verview o f C able M o d em Technology an d M ark ét
High-Performance C om puter A rch., IE E E , pp. 65-78., 2003. Perspectives. IE E E C om m un. M agaziné, 39. évf., pp. 81-88., 2001. jún.
C H O U , Y., EAHS, B., ABRAHAM, S.: M ic ro arch itectu re O p tim izatio n s fór E SCH M A N N , E . K L A L E R , B., M O O R E , R .-W A LD SC H M ID T , K.: SD A A R C :
E xploiting M em ory-L cvel Parallelism . | *(C Q Proc. 3lst A m i. In t'l Sym p. on A n E x ten d ed C ache-O nly M em ory A reh itectu re. IE E E M icro M agaziné, 22.
C om puter A rch., A C M . pp. 76-77., 2004. évf., pp. 62-70., 2002. m áj.-jú n .
CLAASEN, T. A. C. M .: System on a Chip: C h anging IC D esign Today a n d in th e FAGGIN, E , H OFF, M . E., Jr., M A Z O R , S .-S H IM A , M .: T h e H istory o f th e 4004.
F u tu re. IE E E M icro M agaziné, 23. évf., pp. 20-26., 2003. m áj.-jú n . IE E E M icro M agaziné, 16. évf., pp. 10-20., 1996. nov.
CODY, W. .1.: A nalysis o f P roposals fó r the F lo atin g -P o in t S tan d ard . IE E E FALCON, A., STARK, J., R A M IR E Z , A., LAI, K .-V A LERO , M.: P ro p h et/C ritic
C om puter M agaziné, 14. évf., pp. 63-68., 1981. m árc. H ybrid B ranch Prediction. Proc. S ls tA n n . I n t ’l Symp. on C om puter A rch., A C M ,
C O H E N , D.: O n H oly Wars an d a Plea fó r Peace. IE E E C om puter M agaziné, 14. pp. 250-261., 2004.
évf., pp. 48-54., 1981. okt. F IS H E R , J. A .-F R E U D E N B E R G E R , S. M .: P redicting C o n d itio n al B ranch
C O LW ELL, R: The P entium Chronicles. N ew York; W iley, 2005. D irectio n s from Previous R uns o f a P rogram . Proc. Fifth I n t i C o n f on Arch.
C O M E R , I). E.: NetWork System s Design Using N etw ork Proccssors, Agere Version. Support forP rog. Láng. a nd Operating Syst., A C M , pp. 85-95., 1992.
U p p e r Saddle R iver, NJ: P rentice H all, 2005. FLOYD, T. f..: D igital Fundam entals. 8. kiad., U p p e r Saddle River, N J: Prentice
CORBATO , F. J.: PL /I as a Tool fó r System P rogram m ing, D atam ation, 15. évf., pp. H all, 2002.
68-76., 1969. máj. FLYNN, D.: A M B A : E nabling R eusable O n -C h ip D esigns. IE E E M icro M agaziné,
CORBATO , E J .- W S S O T S K \; V A.; In tro d u c tio n an d O verview o f the M U LTIC S 17. évf., pp. 20-27., 1997. júl. ^
System . Proc. FJCC, pp. 185-196,, 1965. FLYNN, M . J.: Som é C o m p u te r O rg an izatio n s and T h e ir E ffectiveness, IE E E
CROW LEY, R, FR A N K L IN , M .A., H A D IM IO G LU , H .-O N U F R Y K , R Z.: N etwork Trans. on C om puters, C-21. évf., pp. 948-960., 1972. szept.
Processor Design: Issues a n d Practices. Vol. 1. San Francisco: M org an K aufm ann, F O S T E R , I.-K E S S E L M A N , C.: The G rid 2: B lueprint fó r a N ew C om puting
2002 . Infrastnu'ture. San Francisco: M organ K aufm an, 2003.
DALLY, W. J.-T O W L E S , B. E: Prineiples a n d Practices o f Interconnection Networks. F O S T E R , I., K ESSE L M A N , C., N IC K , J. M .-T U E C K E , S.: G rid Services fór
San Francisco: M org an K au fm an n . 2004. D istrib u tc d System s In teg ratio n . C om puter M agaziné, 35. évf., pp. 37-46.,
D A N ESH B EH , A. K .-H A SA N , M. A.: A re a E flicien t H igh S p eed E lliptic Curvc 2002. jún.
C rjp to p ro c e ss o r fó r R an d o m C urves. Proc. h it'l Conf. on I n f Tech.: C udingcind F O S T E R , I.-K E S S E L M A N , C.: G lóbus: A M etaco m p u tin g In frastru ctu re Toolkit.
C om puting, IE E E , pp. 588-593., 2004. I n t’lJ. o fS u p erco m p u terA p p lica tio n s, 11. évf., pp. 115-128., 1998a.
DEAN, A. G.: E fficient R eal-Tim e F in e -G ra in e d C o n cu rren cy on Low -C ost F O S T E R , I.-K E S S E L M A N , C.: T h e Cilobus Project: A S tatu s R eport. IPPSISPD P
M icrocontrollers. IE E E Micro M agaziné, 24. évf., pp. 10-22., 2004. jú l.-a u g . ‘98 Heterogeneous C om puting Workshop, IE E E , pp. 4-18., 1998b.
D EN N IN G , E J.: T h e W orking Sct M odel fó r P ro g ram B ehavior. C om m u n . o f the F O T H E R IN G H A M , J.: D ynam ic Storage A llocation in the A tlas C o m p u ter
A C M , ] 1. évf., pp. 323-333.^ 1968. máj. Including an A utom atic U se o f a B acking Storc. C om m un. o f the A C M , 4. évf.,
D IJK S T R A , E. W.: G O T O S ta te m e n t C o n sid ered H arm fu l. C om m u n . o f the A C M . pp. 435-436., 1961. okt.
11. évf., pp. 147-148., 1968a. m árc.
688 9. A JÁ N L O T T O L V A SM Á N Y O K ÉS IR O D A L O M JE G Y Z É K 9.2. B IB L IO G R Á F IA 689

GEIST, A., BEGUP:LIN, A., DONGARRA, J., JIANG, W , MANCHECK, R .- H O A R E , C. A. R.: M onitors, A n O p eratin g System S tru ctu rin g C oncept. C om m un.
SUNDERRAM , V.; PVM : Parallel Virtual M achine — A User's G uidc a n d Tntorial o fth e A C M , évf. 17, pp. 549-557, 1974. okt.; E rra tu m in C om m un. o fth e A C M ,
fó r N etw orkcd Parallel Compuiíng. C am bridge, M A : M .I.T Press, 1994. 1 8 .é v f.,p .9 5 ., 1975.febr.
GERBER, R .-B IN ST O C K , A.: Prograrnmiug with Hyper-Threading Tcchfiolog}'. H U H , J., B U R G E R , D„ CHA NG , J.-S O H I, G. S.: Speculative In co h e re n t C ache
S anta C lara, CA: In tel Press, 2004. P rotocols. IE E E Micro M agaziné, 24, évf., pp. 104-109., 2004, n ov.-dec.
GHEMAWAT, S., G O B IO FF, H .-L E U N G , S. T.; T h e G oogle I ile System . Proc. m V A NG , K .-X U Z.: Scalable Parallel C om puting. N ew York: M cG raw -H ill, 199S,
19th Symp. on Opcrating System s P rincipks. A C M , pp. 29-43., 2003. HWXT, W.-M.: In tro d u ctio n to P red icated E xecution. IE E E C om puter Magaziné,
G O O D M A N , J. R.: l Ising C ache M em o ry to R ed u ce P rocessor M em o ry Traffic, 3 1. évf., pp. 49-50., 1998. jan.
Proc. lO th A im . I n t ’l Sym p. on C om puter A rch. A C M , pp. 124-131., 1983. IR V IN E, K: A ssem bly Eanguage fó r Intel-B ased Computers. 4. kiad., U p p er Saddle
G O O D M A N , J. R.: C ache C onsístency a n d S eq u en tial C onsistency. 'lech. R ep. 61, R iver, NJ: Prcntice H all, 2002.
IE E E Scalable C o h c rc n t In terface W orking G ro u p , IE E E , 1989. JA C O B , B .-M U D G E , T.: V irtual M em ory: Issues o f Im p lem en tatio n . IE E E
GRIMSHAW , A. S.-W IILF, W : L égion: A View from 50,000 Feet. Proc. Fifth I n t ’l C om puter M agaziné, 31. évf., pp. 33-41., 1998a. jún.
Symp. on H igh-Pcrformance Disíributed C om puting, IE E E , pp. 89-99., 1996. aug. JA C O B , B .-M U D G E , T.: V irtual M em ory in C o n tem p o rary M icroprocessors.
GRIM SHAW , A. S.-W U LF, W.; T h e L ég io n V ision of a W orldw ide V irtual IE E E M icro M agaziné, 18. évf., pp. 60-75., 1998b. jú l.-au g .
C o m p u ter. C om m u n . o fth e A C M , 40. évf., pp. 3 9 ^ 5 .,1 9 9 7 . jan . JERRAYA, A. A .-W O LF, W.: M ultiprocessor System s-on-a-C hip. San Francisco:
G RÓ FI? W , L U SK , E -SK .IK L L U M , A: Using M PI: Fortable Parallel Program m ing M org an K aufm ann, 2005.
with the Message Passing Inteiface. C am bridge, M A : M .I.T Press, 1994. JIM E N E Z , D. A.; Fást P ath -B ased N eu ral B ranch Prediction. Proc. 36th Int'l
G U R U M T U R T H I, S., SIVASUBRAM ANIAM , A., K A N D E M IR , M .-F R A N K E , Sym p. on M icroarchitecture, IE E E , pp. 243-252., 2003.
H .: R educing D isk Pow er C o n su m p tio n in Servers w ith D R P M . IE E E C om puter JO H N S O N , K . L., KA A SH O EK , M . E-W A LL A C H , D. A.: C R L : H igh-P erform ance
M agaziné, 36. évf., pp. 59-66., 2 0 0 Í dec. A ll-S oftw are D istrib u ted S h ared M em ory. Proc. 15th Sym p. on Operating
H .4G ER STEN , E., LANDIN, A., H A R ID I, S.: D D M — A C ache-O nly M em ory A r- System s Priiiciplcs. A C M , pp. 213-228.. 1995.
ch itectu re. IE E E C om puter M agaziné, 25. évf., pp. 44-54,, 1992. szxpt. JO H N S O N , M .: Superscalar M icroproccssor Design. U p p e r S addle R iver, NJ:
H A M A C H ER , V V, V RA NESIC, Z. G.-ZAKT, S. G.: C om puter Organization. 5. ki­ P ren tice H all, 1991.
ad., N ew York: M cCiraw-Hill, 2001. KALLA, R., SIN H A R O Y B .-T E N D L E R , J. M .: IB M Pow er5 C hip: A D u al-C o re
H A M M IN G , R. W : Lirror D etectin g an d E rro r C o rrectin g C odes. Bell Syst. Tech. M u ltith re a d e d Processor. IE E E M icro M agaziné, 24. évf., pp. 40-47., 2004.
/., 29. évf., pp. 147-160., 1950. ápr. m á rc .-á p r.
H A M M O N D , L., W O N G , V, C H E N , M ., H E R T Z B E R G , B, DAVIS, J., KAPASI, U. J., R IX N E R , S., DALLY, W J., K HA ILAN Y B„ AHN, .1. H ., M A X ISO N ,
C A R L STR O M , B„ PRABHU, M ., WIJAYA, H ., K O ZY R A K IS, C .-O L U K O T U N , E -O W E N S , .1. D.: P ro g ram m ab le S tream Processors. IE E E C om puter M agaziné,
K .: T ransactional M em ory C o h e re n c e a n d C onsistency. Proc. 3 Is t A n n . I n t i 36. évf., pp. 54-62., 2003. aug.
Sym p. on C om puter A rch ., A C M , pp. 102-113., 2004. K A PIL, S., M cG H A N , H .-L A W R E N D R A , J.: A C hip M u ltith re a d e d P rocessor fór
HANDY, J.: The Cache M em ory B ook. 2. kiad., O rla n d o , FL : A cadem ic Press, N etw ork-Facing W orkloads. IE E E M icro M agaziné, 24. évf., pp. 20-30., 2004.
1998. m á rc .-á p r.
HART, J. M .: W in32 System Programming. R eading, M A : A ddison-W esley. 1997. KATZ, R . H .-B O R R IE L L O , G.: C ontem porary Logic Design. U p p e r Saddle R iver,
H EA TH , S.; E m b ed d ed System s Design. O xford: N ew nes, 2003. N J: P re n tice H all, 2004.
H E N K E L , J., HU, X. S.-BHATTACHARYYA, S. S.: Taking o n th e E m b e d d e d KAUFMAN, C., PE R L M A N , R .-S P E C IN E R , M .: N etw ork Security. 2. kiad., U p p e r
System C hallenge. IE E E C om puter M agaziné, 36. évf., pp. 35-37., 2003. ápr. S addle R iver, N J: P rentice H all, 2002.
HENNESSY, J. L.: V LSI P rocessor A rch itectu re, IE E E Trans. on Com puters, C- K E R M A R R E C , A.-M ., K UZ, I, VAN ST EEN , M .-TA N EN BA U M , A. S.: A
33. évf., pp. 1221-1246., 1984, dec. F ram ew o rk fór C onsistent R ep licated W eb O bjects. Proc. 78th In t'l C o n f on
HENNESSY, J. L .-P A T T E R S O N , D. A.: C om puter Architecture: A Q uantitative Distr C om puting Syst., IE E E , pp, 276-284,, 1998.
Approach. 3. kiad., San Francisco: M o rg an K aufm an n , 2003. K IM , N. S., AUSTIN, X , BLAAUW, D., M U D G E , X , FL A U TN ER , K., HU, J. S.,
H IL L , M .: M ultip ro cesso rs Should S u p p o rt Sim ple M em ory -C o n sisten cy M odels. IRW IN , M . .1., K A N D E M IR , M.-NARAYANAN, V; L eakage C u rren t: M o o re ’s
IE E E C om puter M agaziné, 31. évf., pp. 28-34., 1998. aug. L aw M eets Static Pow er. IE E E C om puter M agaziné, 36. évf., pp. 68-75., 2003,
H IN T O N , G., SA GER, D., U PTO N , M ., B O G G S , D., CARM EAN, D., KYKER, dec.
A., R O U S S E L , R: T h e M icro arch itectu re o f th e P en tiu m 4. h itel Technology K NU XH , D.FL; A n E m pirical Study o f F O R T R A N Prograins. Software— Practice
Journal, 5. évf., pp. 1-12., 2001. ja n .-m á rc . & Experience, 1. évf., pp. 105-133., 1971.
690 9. A JÁ N L O T T O L V A SM Á N Y O K ÉS IR O D A L O M JE G Y Z É K
9.2. B IB L IO G R Á F IA 691

K N U T H , D. E .; The A r t o f C om puter Programming: F u ndam ental Algorithm s. 3. k i­ LYYTINEN, K .-Y O O , Y: Issues an d C h allen g er in U b iq u ito u s C om puting.
ad., R eading, M A : A ddison-W esley, 1997. C o m m u n . o f the A C M , 45. évf., pp. 63-65., 2002. dec.
K N U TH , D. E.: The A rt o f C om puter Programming: Sem inum erical Algorithms. 3. ki­ M acK E N Z IE , I. S., PH AN , R .: The 8051 Microcontroller. 4. kiad., U p p e r S addle Ri-
ad., R eading, M A : Addison-W esley, 1998. ver, N J: P rentice H all, 2005.
K O G E L , T .-M Y E R , H.: H e te ro g e n e o u s M P-SoC: tiie so lu tio n to energy-efficient M ANÓ, M . M .-K IM E , C. R .: Logic a n d C om puter Design F undam entals. 3. kiad.,
signal Processing. Proc. 41st A n n . Conf. on Design A u to m a tio n , IE E E , pp. 686­ U p p e r S addle R iver, N J: P ren tice H all, 2003.
691., 2004. M A RTIN , A. X, N Y ST R O M , M ., PAPADANTONAKIS, K ., P E N Z E S , E L,
K O N TO T H A N A SSIS, L., HUNT, G., S T ET S, R ., HARDAVELLAS, N., CIERN IA D , ERAKASH, E, W O N G , C. G., CHA NG , J., KO, K .S., L E E , B., OU, E ., PU G H ,
M ., PARTHASARATHY, S., M E IR A , W., DWARKADAS, S .-S C O T T , M .: V M - J, TALVALA, E-Y, T O N G , J. T.-TU R A , A.: T he L u tonium : A S ub-N anojoule
B ased S h ared M em o ry o n Low L aten cy R e m e te M em o ry A ccess N etw orks. A sy n ch ro nous 8051 M icrocontroller. Proc. N inth I n t i Sym p. on A synchronous
Proc. 2 4 th A n n . I n t i Sym p. on C om puter A rch ., A C M , pp. 157-169., 1997. Circuits a n d System s, IE E E , pp. 14-23., 2003.
K O R É N , L; C om puter A rith m etic A lgorithm s. N atick, M A : A .K . P eters, 2002. M A R TIN , R . E, VAHDAT, A. M ., C U L L E R , D. E .-A N D E R S O N , T. E.: E ffects o f
KOUFATY, D .-M A R R , D. T : H y p e rth re a d in g Technology in th e N etb u rst C o m m u n icatio n L atency, O v erh ead , an d B andw idth in a C lu ster A rch itectu re.
M icro arch itectu re. IE E E M icro M agaziné, 23. évf., pp. 5 6-65., 2003. m á rc .-á p r. Proc. 2 4 th A n n . I n t i Sym p. on C om puter A rch., A C M , pp. 85-97., 1997.
KU M A R , R ., J O U P P I, N. E -T U L L S E N , D. M .: C o n jo in ed -C o re C hip M u ltip ro - MAYHEW, D .-K R ISH N A N , V: PC I E xpress an d A dvanced Switching: E v olutionary
cessing. Proc. 37th I n t ’l Sym p. on M icroarchitecture, IE E E , pp. 195-206., 2004. P ath to B uilding N ext G e n e rá lio n In terco n n ects. Proc. l l t h Symp. on High Petf.
LAM PORT, L.: H ow to M ake a M u ltip ro cesso r C o m p u te r T h a t C o rrectly E xecutes Interconnects, IE E E , pp. 21-29., 2003. aug.
M ultiprocess P ro g ram s. IE E E Trans. on C om puters, C-28. évf., pp. 690-691., M A Z ID I, M . A., M cK IN L A Y -M A Z ID I, J. G.; 8051 M icrocontroller a nd E m b ed d ed
1979. szept. Systems. U p p e r S addle R iver, N J: P ren tice H all, 2005.
L aR O W E , R . E -E L L IS , C. S.: E x p erim en tal C o m p ariso n o f M em o ry M a n a g e m e n t M A Z ID I, M . A .-M A Z ID I, J. G.: The 80x86 IB M P C a n d C om patible Computers. 4.
Policies fó r N U M A M u ltip ro cesso rs. A C M Trans. on C om puter System s, 9. évf., kiad., U p p e r S addle R iver, N J: P rentice H all, 2002.
pp. 319-363., 1991. nov. M cK N IG H T , L. W , H O W ISO N , J.-B R A D N E R , S: W ireless G rids. IE E E Internet
LAVAGNO, L.: System s on a C hip: T h e N cxt E lec tro n ic F ro n ticr. IE E E M icro C om puting, 8. évf. pp. 24-31., 2004. jú l.-a u g .
M agaziné, 22. évf., pp. 14-15., 2002. sz e p t.-o k t. M cK U S IC K , M . K ., R O ST IG , K ., K ARELS, M .^Q U A R TER M A N , J. S.: The Desigtz
LAW TON, G.: W ill N etW ork P ro cesso r U n its Live u p to T h e ir P ro m ise? IE E E a n d Im plem entation o f the 4.4 B S D Operating System. R eading, M A: A ddison-
C om puter M agaziné, 37. évf., pp. 13-15., 2004. ápr. Wesley, 1996.
LEK K A S, E C.: NetW ork Processors: Architectures, Protocols, a n d Platforms. N ew M cK U S IC K , M . K ., JOY, W.N., L E F F L E R , S. J.-FABRY, R. S.; A Fást File System
York: M cG raw -H ill, 2003. fó r U N IX . ^ C M Trans. on C om puter System s, 2. évf., pp. 181-197., 1984. aug.
LEV IN E , J. R .: L inkers a n d Loaders. San Francisco: M o rg an K au fm an n , 2000. McNAIRY, C .-S O L T IS , D.: Itan iu m 2 P ro cesso r M icro arch itectu re. IE E E M icro
L I, K .-H U D A K , E: M em o ry C o h e re n ce in S h ared V irtu al M em o ry S y ste m s.^ C M M agaziné, 23. évf., pp. 44-55., 2003. m á rc .-á p r.
Trans. on C om puter System s, 7. évf., pp. 321-359., 1989. nov. M IN , R ., W -Ben, J.-H U , Y: L o catio n C ache: A L ow -Pow er L2 C ache System .
L IM A , E , CARRO, L,, V ELA ZCO , R .-R E IS , R.: In jectin g M u ltip le U p sets in a Proc. 2004 I n t i Sym p. on L o w Power Electronics an d D esign, IE E E , pp. 120-125.,
S E U T olerant 8051 M icro -C o n tro ller. Proc. E ighth IE E E I n t’l O n-L ine Testing 2004. aug.
W orkshop, IE E E , p. 194., 2002. júl. M E S S M E R , H .-E: The Indispensible P C H ardware B ook. 4. kiad., R eading, M A:
L IN E S, A.: A syn ch ro n o u s In te rc o n n e c t fó r S ynchronous SoC D esign. IE E E M icro A ddison-W esley, 2001.
M agaziné, 24. évf., pp. 32-41., 2004. ja n .-fe b r. M O U D G IL L , M .-V A S S IL U D IS , S.: Precise In te rru p ts. IE E E M icro M agaziné,
LU, H ., COX , A. L., DWARKADAS, S., RAJAMONY, R .-Z W A E N E P O E L , W : 16. évf., pp. 58-67.,1996. jan.
Softw are D istrib u te d S h ared M em o ry S u p p o rt fó r Irre g u la r A pp licatio n s. Proc. M U L L E N D E R , S. J.-TA N E N B A U M , A, S.: Im m ed iate Files. Software-Practice
Sixth Conf. on Prin. a n d Practice of.Parallel Progr., pp. 4 8-56., 1997. jú n . a n d Experience, 14. évf., pp. 365-368., 1984.
LU K A SIEW IC Z , J.: A risto tle’s Syllogistic. 2. kiad., O xford: O xford U niversity N ESBIT, K . J.-S M IT H , J. E .: D a ta C ache P refetch in g U sing a G lobal H istory
Press, 1958. B uffer. Proc. lOth I n t i Sym p. on High Perf. C om puter A rc h ., IE E E , pp. 96-106.,
LU T Z , J.-H A SA N , A.: H ig h P e rfo rm an ce F P G A b ase d E lliptic C urve C rypto- 2004.
grap h ic C o-P rocessor. Proc. I n t’l Conf. on I n f Tech.: C oding a n d C om puting, N G, S. W.: A dvances in D isk Technology: P erfo rm an ce Issues. IE E E C om puter
IE E E , pp. 486-492., 2004. M agaziné, 31. évf., pp. 75-81., 1998. m áj.
692 9. A JÁ N L O T T O L V A SM Á N Y O K ÉS IR O D A L O M JE G Y Z É K 9.2. B IB L IO G R Á F IA 693

N IC K O L L S, J., M ADAR, L.J. III, JO H N S O N , S., R U STA G I, V., U N G E R , K .- RAMAN, S. K., PE N T K O V SK I, V -KESHAVA, J.: Im p lem en tin g S tream in g S IM D
CH O LD H U R Y , M .: C alisto: A L ow -Pow er S ingle-C hip M u ltip ro c csso r C o m m u ­ B xtensions on the P entium III P roccssor. IE E E M icro M agaziné, 20. évf., pp.
nications P latform . IE E E Micro M agaziné, 23. évf., pp. 2 9-43., 2003. inárc. 47-57., 2000. jú l.-au g .
N O R T O N , E -G O O D M A N , J.: //iskíc’ the PC. 8. kiad., In d ian ap o lis, IN: Sam s, RAVIKL'MAR, C. P.: M u ltip ro cesso r A rch itectu res fór E m b ed d ed Systcm -on-a-
1999. C hip A p p lications. Proc. 17th I n t’l C o n f on V L S I Design, IE E E , pp. 512-519.,
N U LL, L .-L O B U R , J.: The Essentials o f C om puter Organization a n d Architecture. 2004. jan . ’
S udbury, M A: Jo n e s a n d B artlett, 2003. R IT C H IE , D. M .-T H O M P S O N , K.: T h e U N IX T im e-S haring System . C om m un.
O ’C O N N O R , J. M .-TR EM B LA Y , M.: PicoJava-I: T h e Java V irtual M achine in o f the A C M , 17. évf., pp. 365-375., 1974, júl.
H ardw are. IE E E M icro M agaziné, 17. évf., pp. 4 5-53., 1997. m á rc .-á p r. R O B IN S O N , G. S.: Tow ard th e A ge o f S m a rte r S torage. IE E E C om puter M agaziné,
O R G A N IC K , E.: The M U L T IC S System. C am b rid g e, M A : M .I.T Press, 1972. 35. évf., pp. 35-41., 2002. dec.
O SK IN . M ., C H O N G , F. T .-C H U A N G , L L.: A P ractical A rc h ite ctu re fór R cliable R O S E N B L U M , M .-O U S T E R H O U T , J. K.: T h e D esign an d Im p lem cn tatio n
Q u an tu m C o m p u ters. I E E E C om puter M agaziné, 35. évf., pp. 79-87., 2002. jan . o f a L o g -S tru ctu red File System . Proc. Thirteenth Sym p. on Opcrating System
OUADJAOUT, S .-H O U Z E T , D.; E asy SoC D esign w ith V C I System C A d ap ters. Principles, A C M , pp. 1-15., m i . '' '
Froc. Digital System D esign, IE E E , pp. 316-323., 2004. R O T H , C. H.: F im dam entals o f Logic Design. 5. kiad., F lo ren ce, KY: T ho m so n
PAPAEI STATHIOU, L, N IK O LA O U , N. A., D O S H I, B .-G R O S S E , E.; N etw ork E n g in eering, 2003.
Processors fó r F u tu re H ig h -E n d System s an d A p plications. IE E E M icro R U S S IN O V IC H , M . E .-S O L O M O N , D. A.: M icrosoft W indows Intem als. 4. kiad.,
M agaziné, 24. évf., pp. 7-9., 2004. szc p t.-o k t. R cd m o n d , WA: M icrosoft Press. 2005.
PAPAM ARCOS, M .-P A T E L , J.: A Low O v e rh e ad C o h eren c e S o lu tio n fór RUSU, S., M U L JO N O , H .-C H E R K A U E R , B.: Itan iu m 2 P rocessor 6M . IE E E
M ultiprocesso rs w ith P riváté C achc M em ories. Proc. l l t h A n n . I n t ’l Sym p. on M icro M agaziné, 24. évf., pp. 10-18., 2004. m á rc .-á p r.
C om puter A rch ., A C M , pp. 348-354., 1984. SAH A, D .-M U K H E R JE E , A.: Pervasive C om puting: A P aradigm fór th e 21st
PA RIK H , D., SK AD RO N, K ., Z llA N G , Y.-STAN, M .: Pow er-A w are B ranch C cn tu ry . IE E E C om puter M agaziné, 36. évf., pp. 25-31., 2003. m árc.
P rcdiction: C h a ra cte riza tio n a n d D esign. IE E E Trans. on C om puters, 53. évf., SAKAMURA, K: M aking C o m p u ters Invisible. IE E E M icro M agaziné, 11. évf., pp.
pp. 168-186., 2004. febr. 7 -1 1 ., 2002.
PA TTERSO N , D. A.: R ed u ced In stru ctio n S et C o m p u ters. C om m im . o f the A C M , SALOM AN, A ssem blers an d Loaders. U p p e r S addle R iver, N J: P ren ticc Hall,
28. évf., pp. 8-21.,1985. jan . 1993.
PA TTERSO N , D. A., G IB SO N , G .-K A T Z, R.: A case fó r re d u n d a n t arrays o f inex- SCALES, D. J., G H A R A C H O R L O O , K .-T H E K K A T H , C. A.: Shasta; A 1 ow
pensive disks (R A ID ). Pmc. A C M S íG M O D In t'l Conf. on M anagem ent o f D ata, O v e rh e ad Softw are-O nly A p p ro ach fór S u p p o rtin g F in e-G rain S h ared M em ory.
A C M , pp. 109-166., 1988. Proc. Seventh I n t ’l C o n f on A rch. Support forP rog. Láng. an d Oper Syst.. A CM .
PA TTERSO N , D. A .-H E N N E SSY . J. L.: C om puter O tganization a n d Design. 3. k i­ pp. 174-185., 1996.
ad., San Francisco: M org an K au fm an n , 2005. S C H E IB L E , J. R: A Survey o f Storage O ptions. IE E E C om puter M agaziné, 35.
PA TTERSO N , D. A .-S E Q U IN , C. H.: A V LSI R IS C , IE E E C om puter M agaziné, évf., pp. 42-46., 2002. dec.
évf. 15, pp. 8-2 2 ., 1982. szept. S E L T Z E R , M „ B O S T IC , K ., M cK U S IC K , M . K .-ST A E L IN , C.: A n Im plem en-
PAUL, R. R: S P A R C Architecture, A ssem b ly Language, Programming, a n d C. U p p e r tatio n o f a L o g -S tru ctu re d File System fó r U N IX . Proc. W inter 1993 U S E N IX
Saddle R iver. N J: P ren tice H all, 1994. Technical C o n f, pp. 307-326., 1993.
P F IS T E R , G. E: In Search o f Clusters. 2. kiad., U p p e r S addle R iver, NJ: P ren tice SHANLEY, T .-A N D ER SO N , D.: P C I System Architecture. 4. kiad., R eading, M A:
H all, 1998. A ddison-W esley. 1999.
P O P E SC U , B. C., S T EE N , M . VAN-TANENBAUM , A. S.: A S ecurity A rch ite c tu re S lIR IV E R , B .-S M IT H , B.: The A n a to m y o f a H igh-Perform ance Microproce.ssor: A
fór O bject-B a sed D istrib u ted System s. Proc. 18th A n n u a l C om puter Security System s Perspective. L os A lam itos, CA: IE E E C o m p u te r Society, 1998.
A ppl. C onf., A C M , pp. 161-171., 2002. S IM A , D: S u p erscalar In stru ctio n Issue. IE E E Micro M agaziné, 17. évf., pp. 28­
PO U N TA IN , D.: P en tiu m ; M o re R IS C th an C ISC . Byte, 18. évf., pp. 195-204., 39., 1997. sz e p t.-o k t
1993. szept. SIM A , D., FO UN TA IN , T .-K A C SU K , H: A dva n ced C om puter Architectures: A
P R IC E , D.: A H isto ry o f C alcu latin g M achines. I E E E M icro M agaziné, 4. évf., pp. Design Space Approach. R eading, M A : A ddison-W esley, 1997.
22-52., 1984. jan . SLA TER, R.: Portraits in Silicon, C am bridge, M A : M. I. T. Press, 1987.
RADIN, G.: T h e 801 M in ico m p u ter. C om puter A rch. N ew s, 10. évf., pp. 3 9 ^ 7 ., s o m , G. S .-R O T H , A.; Speculativc M u ltith re a d e d Processors. IE E E C om puter
1982. m árc. M agaziné, 34. évf., pp. 66-73., 2001. ápr.
694 9. a j á n l o t t o l v a s m á n y o k é s i r o d a l o m j e g y z é k 9.2. B IB L IO G R Á F IA 695

SN IR , M ., O TT O , S.W., H U S S -L E D E R M A N , S., W A I.KER, D. W .-D ON GA RRA , U N (ÍE R , S. H.; A C o m p u ter O rie n te d Tow ard S patial Problem s. Proc. ÍR É , 46.
J.: M P l: The C om plcte Reference M aiiual. C am b rid g e, M A ; M.I.T. P ress, 1996. cvf., pp. 1744-1750., 1958.
SO LA R I, E .-C O N G D O N , B.: P C I Express Design & System A rchitecture. R esearch V AIIALL\, U.: U N IX Intem als. U p p e r S addle R iver, N J; P rentice H all, 1996.
le c h . Inc., 2005. VAHID, E ; T he S oftcning o f H ard w are. IE E E C om puter M agaziné, 36. cvf., pp.
SO LA R I, E .-W IL L S E , G.: P C I a n d P C I-X H ardware a n d Software. 6. kiad., San 27-34., 2003. ápr.
D iego, CA: A n n ab o o k s, 2004. VAN STEEN , M ., H O M B U R G , RC.-TA N EN B A U M , A. S.: T he A rch itcetu ral
STA LLIN G S, W.: C om puter Organization a n d Architecture. 6. kiad., U p p e r Saddle D esign of G lobe; A W ide-A rea D istrib u te d System . IE E E C oncw rency, 1. évf.,
R iver, N J: P ren ticc H all. 2003. pp. 70-78., 1999. ja n .-m á rc .
S T E N ST R O M , R, H A G ER ST E N , E ., L IL JA . D.J., M A R T O N O S I, M .-V E N U G O - V E T T E R , R, G O D E R IS , D., V E R P O O T E N , L .-G R A N G E R , A.: System s A spects
PAL, M .: Trends in S h ared M em o ry M ultiprocessing. IE E E C om puter M agaziné, o f A P O N A ^D SL D cploym ent. IE E E C om m un. M agaziné, 38. évf., pp. 66-72.,
30. évf., pp. 44-50., 1997. dec. 2000. m áj.
ST E T S, R ., DWARKADAS. S., HARDAVELLAS. N., HUNT, G., K O N TO TH A - W EAVER, D. L .-G E R M O N D , T ; The S P A R C A rchitecture M anual. Version 9,
N A SSIS, L., PARTHASARATHY, S .-S C O T T , M .: C A S H M E R E -2 L : Softw are U p p e r Saddle R iver, N J: P rentice H all, 1994.
C o h e re n t S h ared M em ory on C lu ste re d R em o te-W rite N etw orks. Proc. 16th W líIS E R , M .: T h e C o m p u te r fó r the 21st C entury, IE E E Petrasive C omputing, 1.
Sym p. on Operating System s Principles, A C M , pp. 170-183., 1997. évf., pp. 19-25., 2002. ja n .-m á rc .; e red etileg in Scientific A m erican, 1991. szept.
SU H , T., L E E , H .-H . S., B L O U G H , D. M.: In te g ra tin g C ach e C o h e re n c e P rotocols W IL K E S , M . X: C o m p u ters T h en an d N o w ./. A C M , 15. évf., pp. 1-7., 1968. jan.
fó r H e te ro g e n e o u s M u ltip ro cesso r System s. P art 1, ÍE E E M icro M agaziné, 24. W IL K E S , M . V: T h e B est Way to D esign an A u to m atic C alculating M achine.
évf., pp. 33-41., 2004. júl. Proc. M anchester Univ. C om puter Inaugural C o n f, 1951.
SU M M E R S , C. K.: A D S L : Standards, Im plem entatiori, a n d Architecture. B oca \M L S O N , J.: C h allen g er an d Trends in P ro cesso r D esign. IE E E C om puter
R ato n , FL ; C R C Press, 1999. M agaziné, 31. évf., pp. 39-48., 1998. jan.
SU N D ER R A M , B.: PV M ; A F ram ew o rk fó r P arallel D istrib u ted C om puting. W IL SO N , E: F lo atin g -P o in t Survival Kit. Byte, 13. évf., pp. 217-226., 1988. m árc.
Concurrency, Practice a n d Experience, 2. évf., pp. 315-339., 1990. dec. WOLE, W.: T h e F u tu re o f M u ltip ro cesso r System s-on-C hips. Proc. 41st A n n . C o n f
SWAN, R. J., F U L L E R , S. H .-S IE W IO R E K , D. E: Cm* - A M o d u lar M u ltip ro - on Design A u to m a tio n , IE E E , pp. 681-685., 2004.
cessor. Proc. N C C , pp. 645-655., 1977.
TAN, W. M .: D eveloping USB PC Peripherah. San D iego, CA: A n n ab o o k s, 1997.
TANENBAUM , A. S.: C om puter N etw orks. U p p e r S ad d le R iver, NJ; P ren tice H all,
2003.
TANENBAUM , A. S.: Im plications o f S tru c tu re d P ro g ram m in g fó r M ach in e A rch i­
tectu re. C om m u n . o f the A C M , 21. évf., pp. 237-246., 1978. m árc.
TANENBAUM , A. S.: Operating Systems: Design an d Im plem entation. U p p e r
Saddle R iver, NJ: P rentice H all, 1987.
TANENBAUM , A. S -W O O D H U L L , A. W.: Operating Systems: Design a n d Im p le­
m entation. 2. kiad., U p p e r S addle R iver, N J: P ren ticc H all, 1997.
T H O M P S O N , K .: U N IX Im p le m e n ta tio n , Bell Syst. Tcch. J., 57. évf., pp. 1931­
1946., 1978. jú l.-a u g .
TRELEAV EN , R: C o n tro l-D riv en , D ata-D riv en , an d D em an d -D riv e n C o m p u te r
A rch itectu re. Parallel C om puting, 2 évf., 1985.
TREMBLAY, M .- O ’C O N N O R , J. M .: U ltraS P A R C I; A F o u r-Issu e P rocessor
S u p p o rtin g M u ltim ed ia. IE E E M icro M agaziné, 16. évf., pp. 42-50., 1996. m árc.
T R IE B E L , W. A.: The 80386, 80486, a n d P entium Proces.sor. U p p e r S addle R iver,
N J; P rentice H all, 1998.
T U C K , N .-T U L L S E N , D. M .: In itial O b serv atio n s o f th e S im u ltan eo u s M ulti-
th read in g P entium 4 P rocessor. Proc. 12th In t'l C o n f on Parallel Arch. and
Com pilation Techniques, IE E E , pp. 26-35., 2003.
A . l , V É G E S P O N T O SSÁ G Ú SZ Á M O K 697

A) Bináris számok 1.
2.
a 999-nel nagyobbakat;
a negatív szám okat;
3. a tö rte k et;
4. az irracit)nális szám okat,;
5. a kom plex szám okat.

Egyik legfontosabb sajátsága az összes egész szám halm azán tö rté n ő szám olásnak
az, hogy ez a halm az z á rt (chtsure) az összeadás, kivonás és a szorzás m űveletére
nézve. M ás szóval, bárm elyik i és j egész szám ra az i + j, i - j és az i x j szintén egész
szám . A z egész szám ok halm aza nem zárt az osztásra nézve, m ert létezik olyan i és j,
am elyek esetéb en az ilj nem fejezhető ki egész szám m al (például 7/2 és 1/0).
V éges p o ntosságú szám ok halm aza nem zárt a négy alap m ű v eletre nézve, néz­
zük p éld áu l a h áro m szám jegyű decim ális szám okat:
A z a szám olási m ód, am elyet a szám ító g ép ek h aszn áln ak , bizonyos te k in te tb e n
különbözik az e m b e re k által használt szám ítási m ód tó l. A legnagyobb különbség 600 + 600 = 1200 (túl nagy)
az, hogy a szám ító g ép ek olyan szám okon végeznek m ű v eletek et, am elyek p o n to s­ 003 - 005 = -2 (negatív)
sága véges és rög zített. A m ásik különbség az, hogy a legtöbb szám ítógép k ettes 050 X 050 = 2500 (tú l nagy)
(bináris) szám ren d szerb eli áb rázo lást használ a tízes (decim ális) helyett. A m el­ 007 / 002 = 3,5 (nem egész)
léklet ezek et a té m á k a t tárgyalja.
A zá rtság o t m eg szü n tető okok két osztályba sorolhatók: azo k ra a m űveletekre,
am elyektiél az ered m én y nagyobb, m int a legnagyobb halm azbeli szám (tülcsordu-
lási hiba, overflow e rro r), vagy kisebb, m int a legkisebb szám a halm azban (alul-
A.1. Véges pontosságú számok csordulási hiba, underflow e rro r), és azokra a m űveletekre, am elyeknél az e re d ­
m ény se nem túl nagy, se nem túl kicsi, de nem elem e a halm aznak. A fen ti négy
Szám oláskor nagyon kevés figyelm et fo rd ítu n k arra, hogy hány decim ális jeg y ­ p éld a közül az első h áro m az első osztályra példa, az utolsó a m ásodikra.
gyei áb rázoljuk a szám ot. A fizikusok 10™ e le k tro n n a l szám o ln ak az u n iv erzu m ­ M ivel a szám ítógépek m em ó riája véges, és em iatt a szám ítást szükségképpen
ban, talán anélkül hogy végiggondolnák, hogy e n n e k a teljes leírása 79 decim ális véges p o n to sságú szám okon kell végrehajtani, az ered m én y bizonyos szám ítások­
jegy k iírását igényeli. A n n ak , aki p a p íro n ceruzával szám ol, és 6 jegyre p o n to sa n nál nem lesz helyes a klasszikus m a tem atik a szabályai szerint. K ü lö n ö sn ek tű n h e t
kell m eg ad n ia az ered m én y t, a k ö zb en ső szám ításo k at 7 vagy 8 vagy m ég tö b b jegy első látásra , hogy létezik olyan szám oló b erentlezés, am ely m ég t(")kélctes m ű k ö ­
pontossággal szám olja. A z a p ro b lé m a so h a n em fo rd u l elő, hogy a p a p ír nem elég dési k ö rü lm ények k ö zö tt is hibás ered m én y t ad, de a h ib a a véges aritm etik a te r­
széles a hétjegyű szám okra. m ész e té n e k logikus következm énye. N éhány szám ítógépnek speciális hard v ere
A szám ítógépekkel a dolog egészen m áshogy áll. A legtöbb szám ító g ép en egy van. am ely észreveszi a túlcsordulási hibákat,
szám tá ro lá sá ra szolgáló m em ó ria fix m ére tű , rö g zítették a szám ítógép terv ezése­ A véges p o ntosságú szám ok algebrája különbözik a norm ál algebrától. P éld ak én t
kor. B izonyos erő feszítések k el a p ro g ra m o z ó tu d ja a szám o k at áb rázo ln i az e re ­ tek in tsü k az asszociativitási törvényt:
d eti fix m é re tn é l kétszer, h áro m szo r, ső t tö b b szö r nagyobb helyen is, de ezzel nem
v álto ztatja m eg a p ro b lé m a te rm é sz e té t. A szám ítógépes e rő fo rrá sn a k ez a véges a + (b - c) = (a + b) - c
term ész ete csak azokkal a szám okkal en g e d foglalkozni, am elyek fix szám ú szám ­
jeggyel áb rázo lh aló k . E zek et a szám o k at véges p o n to ssá g ú szám o k n ak (finite- Szám ítsuk ki m indkét oldalt a = 700. h = 400, c = 300 esetén . A bal oldalon e lő ­
p recisio n n u m b e rs) hívjuk. ször kiszám oljuk (b - c ) - t , am i 100, és hozzáadjuk a-t, így 800-at kapunk. A jo b b
A véges ponto sság ú szám ok tan u lm án y o zásáh o z vizsgáljuk m eg a pozitív szá­ old alo n elő szö r (ű -I- í>)-t szám oljuk, am ely túlcsordulást ered m én y ez a három
m ok egy h alm azát, am ely ek et h áro m jeggyel áb rázo lu n k , tiz ed e sp o n t és előjel n é l­ szám jegyes egészek véges aritm etik ájáb an , és az ered m én y függ a géptől, de nem
kül. E z p o n to san ez e r e le m e t jele n t: a 000, 001, 002, 0 0 3 ,..., 999. Ezzel a m egszo­ leh et 1100. H a ebből levonnánk a 300-at, nem k ap h atju k m eg a 800-at. A z asszo­
rítással leh e te tle n bizonyos szám o k at kifejezni: ciativitási törvény nem m űködik. A m űveletek so rren d je is szám ít.
698 A) B IN Á R IS SZ Á M O K A.2. S Z Á M R E N D S Z E R E K A L A P S Z Á M A I 699

Egy m ásik péld a, a disztributivitási törvény; Ül

ax(b-c) = ax b -axc A z oktális szám ok 8 oktális jegyből ép ü ln ek fel:

É rték e ljü k ki m in d k ét old alt a = 5 , b = 210, c = 195 esetén . A bal oldal 5 x 15, 0 1 2 3 4 5 67
egyenlő 75-tel. A jo b b oldal viszont n em lesz 75, mivel a z a x b túlcsordul.
M egvizsgálva e z ek et a p é ld ák a t a rra a k ö v etk ez tetésre ju th a tu n k , hogy b á r a A hexadecim ális szám oknál 16-féle szám jegy szükséges, így h a t új szim bólum ra
szám ítógépek általán o s célú eszközök, m égis véges term é sz etű ren d sz e re ik alk a l­ van szükség. K ényelm es bevezetni a nagy b etű k et A -tól F-ig, am elyek a 9-et követő
m a tla n n á teszik ő k e t szám ításo k v ég reh ajtására. E z a k ö v etk ez tetés te rm é sz e te ­ h a t szám jegy szám ára szolgálnak. így a hexadecim ális szám ok a következő jegyek­
sen helytelen, de rávilágít a rra, hogy m ilyen fontos, hogy m eg értsü k , hogyan m ű ­ ből ép ü ln e k fel:
k ö d n ek a szám ítógépek, és m ilyen k o rláto k k al ren d elk ezn ek .
01234 5 6 789A B C D EF

A „b ináris szám jegy” kifejezést, am ely egy 1-est vagy egy O-t jelen t, b itn ek hív­
A.2. Számrendszerek alapszámai juk. A z A.2. áb ra a 2001 decim ális szám ot m u tatja be bináris, oktális, decim ális és
h exadecim ális form ában. A 7B9 szám term ész etesen hexadecim ális, m ert a B szim ­
A közönséges szám ok, am ely ek et m in d en k i ism er, decim ális jegyekből álló so ro ­ b ó lu m csak hexadecim ális szám okban fo rd u lh at elő. A l i i azonban elő fo rd u lh at
zatok, m elyek tizedesvesszőt is ta rta lm az h atn ak . A z á ltalán o s fo rm á t és a n n a k h a ­ bárm elyik ren d szerb en a négy közül. A zért hogy egyértelm űvé tegyék az alap szá­
gyom ányos é rte lm e zé sé t m u ta tja be az A .l. áb ra. A hatv án y kifejezésben a 10-est m ot, alsó indexben a 2, 8, 10 vagy 16 szám okat használják jelzésre, am ikor ez nem
v álaszto ttu k alap sz á m n a k (ra d ix ), mivel decim ális, m ás szóval tízes alap ú szám ­ nyilvánvaló a környezetből.
ren d szert használunk. S zám ító g ép ek e seté b e n kény elm eseb b n em tízes alap ú , h a ­
nem m ás ren d sz e re k e t használni. A leg fo n to sab b alap szám o k a 2, a 8 és a 16. E zen Bináris 1 1 1 1
1 X 2'° + 1 X 2^ + 1 X 2^ + 1 X 2^ + 1 X 2^ + 0 X 2^ + 1 X 2'' + 3
X X 0
100-asok 10-esek 1-esek 0,1-esek 0,01-esek 0,001-esek 1024 + 512 + 256 + 128 64 +16
helye helye helye helye helye helye
Oktális 3 7 2 1
3 X 8^ + 7 X 8^ + 2 X 8' + 1 X 8“
1536 +448 + 16 +1
dn do d-, d-k
Decimális 2 0 0 1
2x10^ + 0x10^ + 0 x 1 0 ' + 1 x 1 0 “

Szám= 2^ d/XlO' 2000 +0 +0 +1


i = -k
Hexadecimális 7 D 1
A .l. ábra. Decimális szám általános formája 7x 16^+ 13x 16' + 1 x 16“
1792 + 208 +1
alapszám okra ép ü lő szám ren d sz e re k et so rre n d b e n k ettes (b in á ris), nyolcas (ok-
tális) és tizen h ato s (h ex ad ecim ális) sz á m ren d szern ek nevezzük. A.2. ábra. 2001bináris, ol<tális, decimális és hexadecimális számrendszerben
A k alapszám ű szám ren d szerek k k ü lö n b ö ző szim b ó lu m o t igényelnek, hogy a
szám jegyeket 0-tól {k - l)-ig tu d ju k ábrázolni. A decim ális szám ok lO-fele d eci­ P éld a k én t szolgál a bináris, oktális, hexadecim ális je lö lések re az A .3. ábra,
m álisjegyből ép ü ln ek fel; am ely n em negatív szám ok egy részét m u ta tja a négy kü lö n b ö ző szám ren d szer­
ben. Talán n éhány régész évezred ek m úlva lel m ajd rá e táb lázatra, és a késő X X.
0123456789 és a k o ra X X I. századi szám ren d szerek R o setta kövének fogja tartani.

E zzel szem ben a b in áris szánu)k nem tíz jeg y et használnak. E ze k e t kétféle jeggyel
írh atju k fel;
700 A) B IN Á R IS S Z Á M O K A.3. K O N V E R Z IÓ E G Y IK A L A P R Ó L A M Á SIK A L A P R A 701

Hexa­ k onv erzió k b an az A.3. á b ra m ely a d o tt sorával egyezik m eg. L eh et, hogy szüksé­
D ecim ális B ináris O ktális
decimális ges egy vagy k é t kezdő vagy záró ü-val k itölteni a h áro m b ites soro zato k at. A k o n ­
verzió az o ktális szám rendszerből a bináris szám ren d szerb e is haso n ló an egysze­
rű. M in d en o ktális jegyet egyszerűen cseréljü n k le egy vele ekvivalens h áro m b ites
10 b ináris szám ra. A konverzió hexadecim álisból b in árisb a lényegében hasonló, m int
az o ktálisból binárisba, csak m in d en hexadecim ális jegy m egfelel egy négybites
100 c so p o rtn a k az előzőkben használt h áro m bit helyett. A z A .4. á b ra néh án y p éld át
101 ta rta lm az a konverziókról.
no A decim ális szám ren d szerb eli szám ok konverziója bináris szám rendszerbe két
kü lö n b ö ző m ó d szerrel o ld h ató m eg. A z első m ód szer közvetlen m ó don követi a
1000 10 bin áris szám ok definícióját. A legnagyobb k e tte s kitevővel ren d elk ező szám ot,
1001 am ely n em nagyobb, m in t m aga a szám , le kell vonni az e red eti decim ális szám ból.
10 1010 12 E z u tán a k ü lö n b ség re ism ételjük az eljárást. H a egyszer az a d o tt szám ot szétb o n ­
1011 13 to ttu k k e ttő hatványaira, ezu tá n a bináris szám összeállítható: 1-esek lesznek azo ­
12 1100 14 kon a b itpozíciókon, am elyeket a szétb o n tásb an szereplő k e ttő hatványok kitevői
13 1101 15 h a tá ro z n a k m eg, m áshol pedig 0-k.
14 1110 16 A m ásik m ód szer csak egészek esetén alkalm azható, 2-vel való osztást ta rta l­
15 1111 17 m az. A h án y ad o st az e re d e ti szám alá írjuk, a m ara d é k 0 vagy 1, ezt a hányados
16 10000 20 10 m ellé, a k ö v etkező oszlopba írjuk. E zu tán a hányadossal addig folytatjuk ezt az el­
20 10100 24 14 já rá st, am íg h án y ad o sk én t 0-t nem k apunk. E n n e k az eljárásn ak az ered m én y e két
30 110 36 1E oszlo p o t tartalm az, a h án y ad o so k ét és a m arad ék o k ét. A bináris szám ot m ost m ár
40 101000 50 28 kö zvetlenül a m arad ék oszlopból olvashatjuk le úgy, hogy elin d u lu n k az oszlop al­
50 nooio 62 32 já tó l felfelé a leolvasással. A z A .5. áb ra egy p é ld á t m u ta t decim ális szám ren d szer­
60 nnoo 74 3C ből b in á risb a tö rté n ő konverzióra.
70 1000110 106 46 A b in áris szám okat szintén k ét m ó d szerrel k o n v ertálh atju k decim ális szám ra.
80 1010000 120 50 A z egyik m ódszer, am ik o r összegezzük k e ttő azon hatványait, ahol 1-es volt a ki­
90 1011010 132 5A tevőben. Például:
100 11001000 144 64
1000 1111101000 1750 3E8 10110 egyenlő 2'* -l- 2^ -l- 2* = 16 -I- 4 -I- 2 = 22-vel
2989 101110101101 5655 BAD
1. példa
A.3. ábra. Decimális számok és bináris, oktális és hexadecimális számrendszerbeli megfelelőik
Hexadecimális

Bináris 0001100101001000.101101100

Oktális
A.3. Konverzió egyik alapról a másik alapra
Az egész részt a tö rtré sz tő l elválasztó je le t tized es p o n tn a k nevezzük, m ég ab b an
az esetb en is, ha n em tízes szám ren d szerb en dolgozunk. E zt gyakran b in áris p o n t­ 2. példa
n ak is hívjuk. A h exadecim ális vagy o ktális szám ok kon verzió ja b in áris szám okra Hexadecimális
nagyon könnyű. Egy b in áris szám o k tálisra k o n v ertálásáh o z osszuk h áro m b ites
Bináris 0111101110100011.101111000100
cso p o rto k ra a szám ot. A tized es p o n ttó l közvetlenül b a lra (vagy jo b b ra ) az első
h áro m bit alkot egy cso p o rto t, a tő lü k k ö zvetlenül b a lra (vagy jo b b ra ) eső h áro m Oktális 7 5 6 4 3 7 0 4
bit a következő c so p o rto t és így tovább. M in d en egyes ilyen h á ro m b ite s cso p o rto t
d irek t m ód o n k o n v e rtá lh a tu n k egy oktális szám jegyre, 0-tól 7-ig aszerint, hogy a A.4. ábra. Konverziós példák oktálisból binárisba és hexadecimálisból binárisba
702 A) B IN Á R IS S Z Á M O K A.4. N EG A TÍV BIN Á R IS S Z Á M O K 703

H á n ya d o so k M arad é k o k 1 0 1 1 1 1 1 0 1 1 1

1 + 2 x 1 4 9 9 = 2999 Eredm ény


1492 \
1 + 2 x 7 4 9 = 1499

746 \
1 + 2 X 374 = 749
\
0 + 2 x 1 8 7 = 374

1 86
\
1 + 2 x 9 3 = 187
\
93 1 + 2 x 4 6 = 93

46 0 + 2x23^46
\
1 + 2 X 11 = 23
\
1 1 1 + 2 x 5 = 11
\
5 1+2x2=5
\
2 0+ 2x1= 2

1 1 + 2xo'^1 ------ Itt kezdjük

A.6. ábra. 101110110111 bináris szám konverziója decimális számmá sorozatos duplázással,
a legalsó sortól kezdve. Mindegyik sor az alatta lévő kétszerese plusz a megfelelő sor
bitje. Például 749 kétszerese 374-nek plusz az 1-es bit ebben a sorban
0 1 0 10 1 0 0 = 1492,0

abszolút értéknek (signed m agnitude) a m ódszernél a bal oldali első bit az elő jel­
A.5. ábra. 1492 decimális szám konverziója bináris számmá egymást követő felezéssel, felülről bit, (a 0 a -I-, az 1 pdig a - ) és a m a ra d é k b itek jelzik a szám abszolút érték ét.
lefelé. Például 93-at osztjuk 2-vel, a hányados 46 és a maradék 1, egy sorral lejjebb
A m ásodik ren d szern ek , am elyet egyes kom plem ens (one’s com plem ent) re n d ­
írjuk őket
szern ek hívunk, szintén van egy előjelbitje, 0 je le n ti a pozitív, 1 a negatív szám ot.
Egy szám negatívját úgy k ap ju k m eg, hogy m in d en 1-est 0-ra, és m in d en 0-t 1-cs-
A másik m ódszer szerint, a bináris szám ot függőlegesen írjuk le, soro n k én t egy bitet, re cserélünk. E z term ész etesen az előjelbitre is vonatkozik. A z egyes ko m p lem en s
és a legaljára írjuk a bal szélső bitet. A z alsó sort egyes sornak, az u tán a következőt kép zése elavult ren d szer.
kettes sornak hívjuk és így tovább. A decim ális szám ot felépíthetjük egy ezzel a füg­ A h a rm a d ik ren d szer, am elyet kettes kom plem ensnek (two’s com plem ent) n e ­
gőlegesen írt bináris szám m al p árhuzam os oszlopban. A zzal kezdjük, hogy 1-et írunk v ezünk, szintén ta rtalm az elő jelb itet, am ely 0 a pozitív, 1 p ed ig a negatív szám ok
az 1-es sorba. A z n. sor eredm énye az előző sor (« - 1.) kétszerese plusz az n. sor bitje e setéb en . Egy szám negatívját k étlép éses eljárással k ap ju k m eg. A z első lépésben,
(0 vagy 1). Az ered m én y a legfelső sorban képződik. A z A.6. áb ra ennek a m ódszer­ m in d en 1-est 0-ra cserélünk, és m in d en 0-t 1-esre, ugyanúgy, m in t az egyes k o m p ­
n ek az alkalm azását m u tatja be binárisból deeim álisba tö rté n ő konverzió esetén. lem en s képzésnél. A m ásodik lépésben 1-et h o zzáad u n k az eredm ényhez. A b in á ­
A decim álisból o k tálisb a és hexadecim álisba tö rté n ő k o n v erzió t úgy kell v ég re ­ ris ö sszead ás haso n ló a decim ális összeadáshoz, de átvitel ak k o r képződik, h a az
hajtan u n k , hogy elő szö r b in áris szám ren d szerb e k o n v ertálu n k , és azu tá n a kívánt összeg nagyobb, m int 1, decim ális esetb en akkor, h a nagyobb, m int 9. P éld ak én t
szám rendszerbe, vagy p ed ig 8, illetve 16 h atv án y ain ak kivonogatásával. állítsuk e lő 6 k e tte s k o m p lem en sét k é t lépésben:

0 0 0 0 0 110 ( + 6)
11111001 ( - 6 egyes kom p lem en s kódja)
A.4. Negatív bináris számok 11111010 ( - 6 k e tte s ko m p lem en s kódja)

A negatív szám ok m eg jelen ítésére négy k ü lö n b ö ző m ó d sze rt (k ó d o t) h aszn áltak H a átvitel áll elő a bal szélső bitnél, akkor ezt eldobjuk.
a digitális szám ítógépek tö rté n e té b e n , ú jra és ú jra elővéve ő k et. A z első t előjeles
704 A) B IN Á R IS S Z Á M O K A.5. B IN Á R IS A R IT M E T IK A 705

A negyedik ren d szer, am elyet az/?; bites szám eseté b e n 2"' ' tö b b letesn ek (excess E zek n ek a p ro b lém ák n ak nem n ehéz m egtalálni az okát, egy kódoló re n d szer­
2"" >) hívunk, egy szám helyett a szám nak és 2 '"' '-n ek az összegét tárolja. Például nél k ét sajátosságot kívánunk teljesíteni:
egy 8 bites szám ra m = 8, a re n d sze rt 128 tő b b le te sn ek nevezzük, és egy szám h e ­
lyett a valódi szám plusz 128-at tároljuk. így a - 3 áb rázo lása - 3 + 128 = 125, azaz 1. A n u llát csak egyféleképpen ábrázoljuk.
- 3 nyolcbites szám k én t ábrázolva 125 ( ü l i 11101). A -1 2 8 -tó l + 127-ig elhelyezke­ 2. P on to san annyi pozitív szám ot ábrázoljunk, ahány negatívot.
dő szám okat így m eg tu djuk feleltetn i 0-tól 255-ig te rje d ő szám oknak, am elyeket
8 bites pozitív szám ként fejezh etü n k ki. É rd ek esség k ép p en m egjegyezzük, hogy ez A p ro b lém a az, hogy bárm elyik halm aznak, am ely ugyanannyi pozitív és negatív
a ren d szer azonos a k ettes k o m p lem en ssel fo rd íto tt előjelbittel. Az A.7. áb ra p é l­ szám ot és eg\' Q-t tartalm az, p á ra tla n szám ú elem e van, ellenben m bit páros szá­
dákat ad negatív szám ok áb ráz o lá sá ra m ind a négy ren d szerb en . m ú b itm in tá t enged m eg. E z m indig azt jelen ti, hogy egy bitm intával több vagy k e ­
M ind az előjeles abszoliít é rték n e k , m ind az egyes k o m p lem en sn ek k ét re p r e ­ vesebb lesz, függetlenül attó l, hogy m ilyen rep re z e n tá c ió t választnk. E zt az extra
zen táció ja van 0-ra: a pozitív 0 és a negatív 0. Ez a szituáció nem kívánatos. A k e t­ b itm in tát tu d ju k használni -0 -n a k vagy egy nagy negatív szám nak, vagy bárm i m ás­
tes kom plem ensn él nincs m eg ez a p ro b lém a, mivel a pozitív 0 k ettes k o m p lem en - nak, de függ etlenül attó l, hogy m ire használjuk, m indig k én yelm etlenséget okoz.
se pozitív 0. A k ettes k o m p lem en s azo n b an m ás jellegzetességgel rend elk ezik . Az
a b itm inta, am ely egy 1-csből áll és u tá n a csupa 0, az saját m ag án a k a k o m p lem en -
se. Hz a tény azt je len ti, hogy a pozitív és negatív szám ok aszim m etrikusak, azaz
van olyan negatív szám , am elynek nincs pozitív párja. A.5. Bináris aritmetika
-N A z A.8. á b ra a bináris szám okra vonatk o zó összeadó tá b lá t tartalm azza.
-N -N -N
N N előjeles
1-es 2-es 128
decimális bináris abszolút
kom plem ens kom plem ens többletes Első tag 0 0 1 1
érték
Második tag ±0 +1 ±0 ±l
1 00000001 10000001 11111110 11111111 01111111 Összeg 0 1 1 0
2 00000010 10000010 11111101 11111110 01111110 Átvitel 0 0 0 1
3 00000011 10000011 11111100 11111101 01111101
A.8. ábra. Bináris számok összeadó táblája
4 00000100 10000100 11111011 11111100 01111100
5 00000101 10000101 11111010 11111011 01111011
6
K ét b in áris szám ot úgy tu d u n k összeadni, hogy az első és m ásodik tag jo b b szél­
00000110 10000110 11111001 11111010 01111010
7 00000111 10000111 11111000 11111001
ső bitjével k ezd jü k az összeadást. H a átvitel keletkezik, ak k o r ezt egy pozícióval
01111001
8 00001000 10001000 11110111 11111000 01111000
balra visszük, h aso n ló an , m int a decim ális aritm etik án ál. A z egyes kom plem ens
9 00001001 10001001 11110110 11110111 01110111
szám olási m ó dszernél az összeadásnál a bal oldalon k eletk ezett átv itelb itet a jobb
10 00001010 10001010 11110101 11110110 01110110 szélső b ith ez adjuk hozzá. E z t az eljárást k ö rb ejáráso s (e n d -a ro u n d ) átvitelnek n e ­
20 00010100 10010100 11101011 11101100 01101100 vezzük. A k e tte s ko m p lem en s szám olási m ódszernél az átvitelt a bal szélső bitnél
30 00011110 10011110 11100001 11100010 01100010 csupán eldobjuk. A z A .9. á b ra p é ld á t ta rtalm az a bináris aritm etik ára.
40 00101000 10101000 11010111 11011000 01011000
50 00110010 10110010 11001101 11001110 01001110 Decimális 1-es komplemens 2-es komplemens
60 00111100 10111100 11000011 11000100 01000100
70 01000110 11000110 10111001 10111010 00111010 10 00001010 00001010
80 01010000 11010000 10101111 10110000 00110000 + (-3) 11111100 11111101
90 01011010 11011010 10100101 10100110 00100110
+7 1 00000111
100 01100100 11100100 10011011 10011100 00011100
127 01111111 11111111 10000000 10000001 00000001 I
Nem Nem Nem eldobott
128 10000000 00000000
ábrázolható ábrázolható ábrázolható
00000111
A.7. ábra. 8 bites negatív számok a négy rendszerben A.9. ábra. Összeadás 1-es, illetve 2-es komplemens esetén
706 A) B IN Á R IS S Z Á M O K A.6, FELA D ATO K 707

H a az összead an d ó és a b ő v íten d ő szám k ü lö n b ö ző előjelű, nem fo rd u lh a t elő 0 14725-ből 985274 lesz. A z ilyen szám okat kilences k o m p lem en s k ó d ú szá­
túlcsordulás. H a azo n o s előjelűek, és az ered m én y e ttő l k ü lö n b ö ző előjelű, a k k o r m o k n ak hívjuk a bináris szám oknál használt egyes kom p lem en s analógiájára.
túlcsordulás k ö v etk ez ett be, és az e re d m é n y rossz. M ind az egyes, m in d a k e tte s F ejezzük ki a következő szám o k at három jegyű kilences kom p lem en sű szám ­
ko m p lem en s szám olási m ó d szern él tú lcso rd u lás a k k o r és csak a k k o r fo rd u lh at ként; 6, -2 , 100, -1 4 , -1 , 0.
elő, h a az elő jelb ith ez b ejövő átv itelb it külö n b ö zik az elő jelb itn él k eletk ező to- 11, H atá ro z z u k m eg az összeadás szabályát a kilences ko m p lem en s kód alk alm a­
vább m enő átvitelbittől. A legtöbb szám ító g ép m eg ta rtja az előjelb itn él k e le tk e ­ zásak o r, és hajtsu k végre a k övetkező összeadásokat.
ző átv itelb itet, de az elő jelb itn él b ejövő átv itelbit n e m lá th a tó az ered m én y b ő l. 0001 0001 9997 9241
E m ia tt ezt általáb an egy speciális tú lcso rd u lás b ite n jelzik. -t- 9999 -t- 9998 -t- 9996 -t- 0802

12. A tízes k o m p lem en s haso n ló a k ettes k o m plem enshez. A tízes k o m plem ensnél
a negatív szám ot alak ítju k ki úgy, hogy 1-et h o zzáad u n k a m egfelelő kilences
A.6. Feladatok k o m p lem en s szám hoz, figyelm en kívül hagyva az átvitelt. Mi a szabálya a tízes
k o m p lem en s k ó d ú az összeadásnak?
1. K onvertáljuk a követk ező szám o k at b in áris szám okká: 1984, 4000, 8192. 13. S zerkesszünk szo rzó táb lát h árm as alap ú szám okhoz.
2. M i az 1001101001 (b in áris szám ) decim ális, o ktális és h exadecim ális m eg fele­ 14. Szorozzuk össze a G U I és a 0011 b in áris szám okat.
lője? ^ 15. írju n k p ro g ram o t, am ely A S C II k a ra k te rso ro z a to t előjeles decim ális szám ­
3. M elyek az érvényes h exadecim ális szám ok a k ö v etk ez ő k közül? B E D , C A B , k én t é rtelm ez, és kin y o m tatja k ettes k o m p lem en s k ó d b an bináris, oktális és
D EA D , D E C A D E , A C C E D E D , BAG, DAD. h exadecim ális fo rm ában.
4. Fejezzük ki a decim ális 100-at a k e tte s alap tó l a kilencesig m in d en alap b an . 16. írju n k p ro g ram o t, am ely k ét 32 k a ra k te re s, csak 0-t és 1-et tartalm azó A SC II
5. H ány k ü lö n b ö ző pozitív egész szám fejezh ető ki k szám jegy segítségével r a la p ­ k a ra k te rso ro z a to t k e tte s k o m p lem en sű 32 bites bináris szám ként értelm ez. A
szám esetén ? p ro g ram írja ki az összegüket, 0 és 1 jegyekből álló 32 k ara k te re s A S C II k a ra k ­
6. A legtöbb e m b e r 10-ig tu d elszám olni az ujjain, azo n b an a szám ító gép tu d ó so k te rso ro zatk én t.
ezt jo b b an tu d já k csinálni. H a m indegyik u jju n k at egy b itn e k tek in tjü k , a ki­
ny ú jto tt ujj legyen 1, a b e h a jlíto tt ujj p ed ig 0. M ed d ig tu d u n k elszám olni, ha
m in d k ét k ezü n k et ilyen m ó d o n haszn álju k ? M in d k ét kezü n k k el és m in d k é t lá­
b u n k k al? M o st haszn álju k a k e z ü n k e t és a lá b u n k a t úgy, hogy a b al láb u n k o n
a nagy lábujju n k je le n ti az elő je lb ite t k ettes k o m p lem en s k ó d b an . M i az á b rá ­
zo lh ató szám ok interv allu m a?
7. H ajtsuk végre a következő szám ításokat 8 bites k ettes k o m plem ensű szám okon.
00101101 11111111 00000000 11110111
-h 01101111 -h 11111111 - 11111111 - 11110111

8. Ism ételjü k m eg az előző felad at szám ítását, csak m o st egyes ko m p lem en s k ó d ­


ban.
9. T ekintsük a k e tte s k o m p lem en s k ó d b an levő k ö v etk ez ő 3 jegyű b in áris szám ok
összeadását. M indegyik összegnél állap ítsu k meg:
a) Vajon az e red m én y előjelbitje 1-e?
b) Vajon az alsó h ely érték ű h á ro m b it 0-e?
c) V an-e tú lcso rd u lás?
000 000 111 100 100
-hOOl -hlll -m O 111 -HOO

10. n jegyet ta rta lm a z ó előjeles decim ális szám o k at k ifejezh etü n k n + \ jeggyel
az előjel h aszn ála ta nélkül. A pozitív szám ok e setén 0 legyen a b al szélső jegy.
A negatív szám o k at jeg y en k é n t 9-ből való kivonással ábrázoljuk. így a negatív
B .l. A L E B E G Ő P O N T O S S Z Á M Á B R Á Z O L Á S ELVEI 709

ah o l a z / a törtrész (fraction) vagy m antissza (m antissa), az e p ed ig egy pozitív


B) Lebegőpontos számok vagy negatív szám , am elyet kitevőnek vagy exponensnek (exponent) hívunk. E n ­
n ek a jelö lésn ek a szám ítógépes verzióját lebegőpontos szám nak (íloating point)
hívjuk. N éhány p éld a az így áb rázo lt szám okra:

3,14 = 0 ,3 1 4 xl O> = 3 ,1 4 x 10“


0,000001 = 0,1 X 10-5 = 1 0 X 10-'
1941 = 0,1941 X 10^ = 1,941 x 10^

A n ag y ság ren d et a kitevő jegyeinek szám a, a p o n to sság o t pedig a tö rtré sz jegyei­


n ek szám a h atáro zza m eg. M ivel kü lö n b ö ző m ó d o n fejezh etü n k ki egy a d o tt szá­
m o t, a sok fo rm a közül az egyiket általáb an szabványosnak nevezzük. Tekintsük
a követk ező ábrázolást, hogy m egvizsgáljuk a szám ábrázolás ezen m ó d szeré­
Sok szám ításnál a h aszn ált szám ok in terv allu m a nagyon nagy leh et. P éld á u l egy n e k sajátosságait: R egy előjeles három jegyű törtszám , ah o l 0,1 < | / | < 1 vagy
csillagászati szám ítás tarta lm a z h a tja az e le k tro n tö m eg ét: 9 x 10*^” gram m , és a 0. és az ex ponens kétjegyű. E zen a szám ok nagyságrendje -t-0,100 x 10-‘” -tol
N ap töm egét: 2 x 10^^ gram m , ez az in terv allu m m eg h alad ja a 10“ -t. E z e k et a szá­ -f-0,999 x 10^’’-ig terjed , lefedik a közel 199-es nagyságrendet, és csak ö t szám jegy
m o k at a k övetkező m ó d o n áb rázo lh atju k : és k ét előjel szükséges egy szám tárolásához.
A le b eg ő p o n to s szám okat h aszn álh atju k a rra, hogy m odellezzük a m a te m a ti­
0000000000000000000000000000000000.0000000000000000000000000009 k á b an h aszn ált valós szám okat, b á r van n éhány je le n tő s különbség. A B .l. á b ra a
2000000000000000000000000000000000.0000000000000000000000000000 valós szám egyenes egy durv án elnagyolt sém áját m u ta tja valós szám ok 7 régióra
oszlanak:
és m in d en szám ítást úgy kellen e v égrehajtani, hogy m eg m arad jo n a 34 jegy a tize­
d esp o n ttó l balra és 28 jegy e ttő l jo b b ra. A zért, hogy ezt m eg tu d ju k ten n i, 62 szig­ 1. N agy negatív szám ok, am elyek kisebbek, m in t -0 ,9 9 9 x 10'*’.
nifikáns (értékkel bíró, fo n to s) jegyet k ellene tartalm azn ia az ered m én y ek n ek . Egy 2. N eg atív szám ok -0 ,9 9 9 x 10'*'* és -0 ,1 0 0 x lO-'*'* között.
bináris szám ítógép du p la ponto sság ú szám ítási m ó d szerrel m egfelelő ponto sság o t 3. Kis negatív szám ok, abszolút é rté k ü k kisebb, m in t 0,100 x lO-'*'*.
é rh e tn e el. A N ap tö m eg e azo n b an n em ism ert 5 szignifikáns jegyre, m ég h a 62 jegy 4. N ulla.
állna is rendelkezésü n k re. V alójában bárm ilyen jellegű m é ré st felesleges 62 jegyre 5. Kis pozitív szám ok, nagyságuk kisebb, m int 0,100 x 10-'*'’.
elvégeznünk. B ár leh etség es len n e m eg tartan i m in d a 62 jegyet a közbülső rész­ 6. Pozitív szám ok 0,100 x 10*^^ és 0,999 x 10'*'* között.
eredm ényeknél, u tá n a ped ig eldobni 50-et vagy 60-at, m ielő tt k in y o m tatn án k a vég­ 7. N agy pozitív szám ok, am elyek nagyobbak, m in t 0,999 x 10'*'*.
eredm ényt. H a így ten n én k , ez nagyon sok C P U -id ő t és m em ó riát p azaro ln a.
H ogyan leh et olyan szám áb rázo lási re n d sz e rt készíteni, am elyben az áb rá z o l­ N agyon fo n to s különbség a h á ro m tö rt és k é t exponens kitevő jeggyel m eg­
h a tó szám ok tarto m á n y a fü g g etlen a szignifikáns jegyek szám átó l? E b b en a fü g ­ a d o tt szám készlet és a valós szám ok között, hogy az előzőnél n em le h e t m egadni
g elék b en ilyen re n d sz e rrő l lesz szó. E z azon a tu d o m án y o s jelö lésm ó d o n alapul, egyetlen szám ot sem az 1, 3, 5 vagy 7-es régióban. H a egy szám ítási ered m én y az
am ely széles k ö rb en h aszn ált a fizikában, k ém iá b a n és m érn ö k i tu d o m án y o k b an . 1-es vagy 7-es rég ió b an van - p éld áu l 10“ x 10“ = 10‘“ - túlcsordulási hiba fog
elő fo rd u ln i, és a m egoldás n em lesz helyes. A z ok, a szám ok re p rezen táció ján ak

3 5
B.1. A le b e g ő p o n to s sz á m á b rá z o lá s elvei Negatív Pozitív
alulcsordulás alulcsordulás
2 6 7
A szám nagyságának és a p o n to ssá g á n ak szétv álasztására az egyik m ódszer, hogy Negatív Kifejezhető Kifejezhető Pozitív
a szám okat a jól ism ert tu d o m án y o s jelö léssel ábrázoljuk: túlcsordulás negatív számok pozitív számok túlcsordulás

••h -
n = f x 10^ 10-100
-10’’ -10- 10’’

B .l. ábra. A valós számegyenes 7 régióra osztható


710 B) L E B E G Ő P O N T O S S Z Á M O K B.2. A Z IEEE 754-ES L E B E G Ő P O N T O S SZ A B V A N Y 711

véges term ész etéb ő l fakad, és ez e lk erü lh e te tle n . H a so n ló k ép p en , az e re d m é n y a Törtrész Kitevő Alsó Felső
3-as vagy 5-ös rég ió b an sem feje zh e tő ki. E zt a hely zetet a lu lc so rd u lá si h ib án ak szám jegyei szám jegyei korlát korlát
nevezzük. Az alu lcso rd u lási h ib a kevésbé súlyos, m int a tú lcsordulási hiba, m ert a 3 1 10-'^ 10’
0 nagyon gyakran jó b ecslése a 3-as, 5-ös régióban lévő szám oknak. A 10 d o llár 3 2 1 0 -1 0 2 1099

banki egyenlege alig jo b b , m int 0. 3 3


1Q -1 0 0 2 10999

Egy m ásik je le n tő s külö n b ség a le b eg ő p o n to s és a valós szám ok k ö z ö tt a sű rű ­ 3 4


1 Q -1 0 0 0 2 1Q 9999

ség. B árm ely két valósA' é s y szám k ö z ö tt van m ásik valós szám , függetlenül attól, 4 1 10-'5 10’
hogy m ilyen közel v a n x és ;'. Ez a tu lajd o n ság abból a tényből következik, hogy 4 2 1 0 '® 1099

bárm ely két nem azonos valós x é s y szám k ö zö tt a z = (x -I- y)/2 is valós. A valós 4 3 1 0 -1 0 0 3 10999

szám ok folytonos szám osságot alk o tn ak . 4 4 lo'ooos 109999

A leb eg ő p o n to s szám ok szám ossága ezzel elle n té tb e n n em végtelen. P o n to san 5 1 1 0 '“ 10«
179 100 pozitív szám fejezh ető ki az ö t szám jegyű (3 -f- 2), k ét előjeles re n d sz e r­ 5 2 1 0 ''“ 1099

ben, am elyet fen teb b haszn áltu n k , 179100 negatív szám és 0 (am elyet tö b b fé le ­ 5 3 ,0 - 1 0 0 4 1Q 999

k ép p en kifejezh etü n k ), ez összesen 358 201 szám ot jele n t. A végtelen sok - 1 0 ’^‘™ 5 4 1O-'OOO-Í 1 Q 9999

és + 0,999 X közö tti valós szám közül ezzel a jeJöJésseJ csak 358 201-et tu d u n k 10 3 1 0 -1 0 0 9 10999

felírni. E zt szim bolizálják a p o n to k a B .l. áb rán. K önnyen lehetséges, hogy egy 20 3 1 0 -1 0 1 9 10999

szám ítás ered m én y e egy m ás szám lesz, an n a k elle n é re , hogy a 2-es vagy a 6-os
rég ió b an van. P éld áu l -1-0,100 x 10’ h a rm a d á t n em tu d ju k pon to san kifejezni p o n ­ B.2. ábra. Az ábrázolható (nem normalizált) számok közelítő alsó és felső határa
to san a mi ábrázo lásu n k k al. H a a szám ítás ered m é n y é t nem tu djuk m egadni az lebegőpontos decimális számok esetén
a d o tt ábrázolásb an , a k k o r k ézenfekvő, hogy a legközelebbi á b rá zo lh a tó szám ot
h asználjuk helyette. E zt az eljárást k e rek íté sn ek (ro u n d in g ) nevezzük. A no rm alizált szám ok általáb an előnyben részesíten d ő k a nem norm alizált szá­
A szom szédos á b rá z o lh a tó szám ok k özötti távolság n em álla n d ó a 2-es és a 6-os m okkal szem ben, m e rt csak egyetlen norm alizált fo rm a van, szem ben a sok nem
régióban. Ez a távolság -1-0,998 x 10'” és + 0 ,9 9 9 x 10” k ö zö tt lényegesen nagyobb, n o rm alizált form ával. A B.3. áb ra norm alizált szám okat m u tat be két k ü lönböző
m int + 0,998 x 10” és + 0 ,9 9 9 x 10" k özött. A zo n b an , ha a szep aráció t egy szám és hatványalappal. E zekben a p éld ák b an a tö rtré sz t 16 bit hosszú (am ely az előjelbi­
az őt követő k ö zö tt az a d o tt szám százalékos arányával fejezü n k ki, a k k o r a teljes tet is tartalm azza) és a kitevő 7 bit hosszú, 64 tö b b letes ábrázolásban. A z alapszám
2-es és a 6-os rég ió b an nem lesz lényeges eltérés. M ás szavakkal kifejezve, a k e re ­ p o n t (tizedes p o n t) a tö rtré sz bal szélső b itjén ek bal o ldalán van - azaz a kitevőtől
k ítésnél elk ö v etett relatív hiba (relatíve error) hozzáv ető leg esen u g y an ak k o ra a jo b b ra.
kis szám okra, m int a nagy szám okra.
B ár az előző tárgyalás a h áro m jeg y ű tö rtré sz t és a k é tje g y ű ex p o n en st áb rázo ló
ren d sz e rb e n tö rté n t, a k a p o tt k ö v e tk ez tetések érvényesek m ás ren d sz e re k re is. B.2. Az IEEE 754-es lebegőpontos szabvány
H a lecseréljük a tö rtré sz vagy az exponens jegyeinek szám át, csu p án a 2-es, 6-os
régió h a tá ra it toljuk el, és változik a b en n ü k á b rá z o lh a tó p o n to k (szám ok) szám a. K ö rü lb elü l 1980-ig m in d en szám ítógépgyártónak saját leb eg ő p o n to s fo rm átu m a
N övelve a tö rtré sz szám jegyeinek szám át, a p o n to k sű rű ség e javulni fog, és ezért volt. S zükségtelen em líteni, hogy te rm ész etesen m indegyik m ás és m ás. E nnél is
javulni fog a közelítés p o n to sság a is. H a növeljük az ex p o n ens szám jegyeinek szá­ rosszabb, hogy néhányan hibás a ritm e tik á t csináltak, m ert a lebegőpontos szám í­
m át, ak k o r a 2-es és 6-os régió nagysága fog növek ed n i, és csökken az 1, 3, 5 és tási m ó d szernek van n éhány finom sága, am i egy átlagos h ard v erterv ező szám ára
7-cs régió. A B.2. á b ra m u tatja a k ü lö n b ö ző exponenssel és tö rtrésszel áb rázo lt n em nyilvánvaló.
szám ok becsült h a tára it. A helyzet jav ítására 1970-es évek végén az IE E E felállíto tt egy bizottságot a le­
A fenti ábrázo láso k k ü lö n b ö ző v ariációit használják a szám ító g ép ek b en . A h a ­ b e g ő p o n to s szám ítások szabványosítására. A eél nem csak az vtiU, hogy olyan leb e­
tékonyság kedvéért 2, 4, 8 vagy 16, és nem 10 alapil kitevőt használnak, a tö rtrész g ő p o n to s a d a to k a t tervezzenek, am elyek kicserélh ető k a k ü lönböző szám ítógépek
pedig k ettes, négyes, nyolcas vagy tiz e n h a to s szám ren d szerb eli szám jegyek so ro ­ k ö zö tt, h an em az is, hogy egy helyes, jól m ű k ö d ő m o d ellt biztosítsanak a h a rd v e r­
zatá t jelen ti. H a a bal szélső szám jegy 0, a k k o r az egész szám ot b a lra leh et tolni tervezők szám ára. E z a m unka v ezetett el az IE E E 754-es szabványhoz (IE E E ,
egy jeggyel, a kitevőt p ed ig eggyel csö k k en ten i anélk ü l, hogy a szám érté k e m eg ­ 1985). A legtöbb központi egység n ap jain k b an (beleértve a / Intel-, SPARC- és
változna (eltekin tv e az alu lcso rd u lástó l). H a a bal szélső jegy n em nu lla, a k k o r ezt JV M -p ro cesszo ro k at, am elyeket eb b en a könyvben tanulm ányozunk) olyan le­
az ábrázolást n o rm a liz á ltn a k (n o rm alized ) nevezzük. b e g ő p o n to s u tasításo k at használ, am elyek IE E E leb eg ő p o n to s szabványú a d a ­
tokkal dolgoznak. M ás szabványokkal ellen tétb en , am elyek beérik „nesze sem m i.
712 B) L E B E G Ő P O N T O S S Z Á M O K B.2. A Z IEE E 754-ES L E B E G Ő P O N T O S SZ A B V A N Y 713

1. Példa: 2-es alapú hatvány A szabvány h áro m fo rm át definiál: az egyszeres p ontosságút (32 bit), a dupla p o n ­
-,-10 -,-12 -,-14 -,-16 tosságút (64 b it) és a k iterjesztett pontosságút (80 bit). A k iterjesztett pontosságú
fo rm a a rra szolgál, hogy csökkentse a kerekítési hibákat. E zt főleg a lebegőpontos
aritm etik ai egység b elsejében használják, így nem beszélünk róla a továbbiakban.
Nem normalizált: 0 1 01 01 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 = 2^“ (1 x 2 '^+1 x 2 '"+ 1 x2 A z egyszeres és a dupla pontosságú fo rm a egyaránt k ettes alapot használ a tö rtrész­
^
Előjel 64többletes Törtrész I X 2-’^+I X 2-” ' + lx2-'^) = 432 ben, és tö b b letes ábrázolást a kitevőben. F o rm áját m egtaláljuk a B.4. ábrán.
+ kitevő +1x2 '^+1x2
84-64 = 20
M indkét form a egy előjelbittel kezdődik, ahol 0 a pozitív, 1 pedig a negatív előjel.
Normalizáláshoz a törtrészt el kelt toljuk 11 bittel balra, és ki kell vonjunk 11-et a kitevőből. E zu tán következik a kitevő, 127 többletes a szim pla pontosságú és 1023 többletes
d upla pontosságú ábrázolásban. A m inim ális (0) és a m axim ális (255, illetve 2047)
Normalizált: 0 1 001 001 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 =2’ {1 x2 '+1 x2^-H x 2 ‘
kitevőket n em használjuk norm alizált szám ok esetén, ezek használata speciális, am e­
Előjel 64 többletes Törtrész 1 x 2 ’ -1-1 X 2-2 + 1 X 2“^) = 432
+ kitevő +1 x2"‘^-H x 2 ‘^
lyet a későbbiekben írunk le. V égül a törtrészek következnek 23, illetve 52 biten.
73 - 64 = 9 A n o rm alizált tö rtrész bináris p o n tta l kezdődik, am elyet 1-es bit követ, és ez­
u tá n a tö rtré sz további része következik. A P D P -1 1 -n é l elk ez d ett gyakorlatot k ö ­
2. Példa: 16-os alapú hatvány
16-^ 16-2 16-^
vetve, a szabvány szerzői azt v aló síto tták m eg, hogy a vezető 1-es bit a tö rtrészb en
nincs tárolva, feltételezzük, hogy je le n van. E n n e k k ö v etk ez téb en a szabvány egy
Nem normalizált: 0 1000101 0 0 00 0 0 00 0 0 01 10 11 =16='{1 x l6 - "+ B x l6 ^ ) = 432 kicsit m ás m ó d o n definiálja a tö rtrészt, m in t ahogy szokásos. T artalm az egy nem
Előjel 64többletes Törtrész 1 v 16“’ + B v 16 tá ro lt 1 b ite t (im plicit, felté te le z e tt 1-es), a n em tá ro lt (im plicit) bináris p o n to t,
+ kitevő
69-64-5 a zu tá n p ed ig 23, illetve 52 tetszőleges b itet. H a a 23, illetve 52 b ites tö rtrész végig
Normalizáláshoz a törtrészt el kell tolnunk 2 hexadecimális jeggyel balra, és ki kell vonnunk 2-t a kitevőből. nulla, a tö rt n u m erik u s é rté k e 1,0; h a az összes 1-es, ak k o r a tö rtrész kicsit keve­
sebb, m in t 2,0. H ogy elk erü ljü k a hagyom ányos tö rtrésszel (fractio n ) való össze-
Normalizált: 0 1 00001 1 0001 1 01 1 0000 0000 = 1 6^(1x16'+ B x l6 ^) = 432
tévesztést, az im plicit 1-es, az im plicit b in áris p o n t és a 23, illetve 52 bit eg y ü tte­
Előjel 64többletes Törtrész 1 x 1 6 + 6 x 1 6 ' sét szignifikánsnak (significand, m eg h atáro zó , fo n to s) nevezzük a tö rtrész vagy a
+ kitevő
67 - 64 = 3 m an tissza m egnevezés helyett. A z összes norm alizált szám nak van egy ilyen 5 szig­
nifikánsa, ahol 1 < í < 2.
B.3. ábra. Példák a normalizált lebegőpontos számokra A z IE E E leb eg ő p o n to s szám ok n u m erik u s jellem ző it a B.5. áb rán láthatjuk.
P é ld a k é n t vegyük a 0,5, 1 és 1,5 szám ok norm alizált, egyszeres ponto sság ú alak ­
fogd m eg jó l” kom pro m isszu m o k k al, am elyek sen kin ek se tetszen ek , ez a szab­ ját. E z ek e t so rre n d b e n hexadecim álisan így ábrázoljuk; 3F000000, 3F800000 és
vány n em szám ít rossznak, m ivel a lap v e tő en egy em b e rn e k , W illiam K ah an n ek , 3FC00000.
a B erkeley E gyetem p ro fesszo rá n a k a m un k ája. A to v áb b iak b an ezt a szabványt A le b eg ő p o n to s szám ábrázolás hagyom ányos p ro b lém ája, hogy hogyan k ezel­
m u tatju k be. jü k az alu lcsordulást, tú lcso rd u lást és kezd eti é rté k nélküli (inieializálatlan) szá­
m o k at. A z IE E E szabvány ezekkel kifejezetten foglalkozik, és a C D C 6600-as szá-
Bitek 1 8 23
Törtrész Jellemzők Egyszeres pontosság Dupla pontosság
Bitek száma az előjelben 1 1
X Kitevő
Előjel Bitek száma a kitevőben 8 11
Bitek száma a törtrészben 23 52
(a) Az összes bit 32 64
Kitevő rendszere 127 többletes 1023 többletes
Bitek 1 n 52
Kitevő kiterjedése -126-tól+127-ig -1022-től-Hl023-ig
Kitevő Törtrész Legkisebb normalizált szám 2 -1 2 6 2 1032

Előjel Legnagyobb normalizált szám kb. 2’^» kb. 2''>«


Decimális kiterjedés kb. 10-3»-tól 103“ kb. 1Q-3“ -tól 103“
(b) Legkisebb nem normalizált szám kb.10-« kb. 10-«“

B.4. ábra. IEEE lebegőpontos formátumok: (a) egyszeres pontosságú: (b) dupla pontosságú B.5. ábra. Az IEEE lebegőpontos számokjellemzői
714 B) L E B E G Ő P O N T O S S Z Á M O K B.3. FELA D ATO K 715

m atem atik ai szabályoknál a végtelen. P éld áu l végtelen plusz bárm i, az végtelen, és


Normalizált ± 0 < Kitevő < Max bitminta
bárm elyik véges szám ot elosztjuk végtelennel, az nulla. H aso n ló a n bárm ely véges
szám osztva nullával v ég telen t eredm ényez.
Nem normalizált 0 Tetszőleges nem nulla bitminta
M i van, h a a v ég telen t osztjuk végtelen n el? A z ered m én y m eg h atáro zatlan .
E n n e k az e se tn e k a k ezelésére m ás speciális fo rm a szolgál, am elyet N aN -nak (Nőt
Nulla
a Number, nem szám ) hívnak. E z szintén h aszn álh ató o p e ra n d u sk é n t elő re m eg­
jó so lh a tó eredm énnyel.
Végtelen ±

Nem szám ± 11 Tetszőleges nem nulla bitminta

Előjelbit B.3. Feladatok


B.6. ábra. IEEE numerikus típusok 1. K o n v ertáljuk a következő szám okat IE E E egyszeres p o n to sság ú form ába. A z
e red m é n y ek et nyolc jegyű hexadecim ális szám ként adjuk m eg.
m ítógép p éld áját haszn álja e b b en a részben. A n o rm alizált szám okon tú lm en ő en a) 9
a szabványban négy további n u m erik u s típ u s van, e z ek et írjuk le a k ö v etk ező k b en b) 5/32
és m u tatju k b e a B.6. ábrán. e) -5 /3 2
P ro b lém a adódik, h a a szám ítási ered m én y abszolút é rté k e kisebb a legkisebb d) 6,125
norm alizált leb eg ő p o n to s szám nál, am elyet az a d o tt re n d sz e rb e n áb rázo lh atu n k . 2. K o n v ertálju k a k övetkező egyszeres p ontosságú IE E E leb eg ő p o n to s hexadeci­
K o ráb b an a legtöbb h a rd v e r az alábbi k ét m egoldás v alam elyikét alkalm azta: vagy m ális szám okat decim ális szám okká:
b eá llíto tta az ered m én y t n u llán ak , és így foly tatta, vagy p ed ig leb eg ő p o n to s alul- a) 42E 48000H
esordulási csap d át ok o zo tt. Egyik sem teljesen kielégítő, így az IE E E b ev ezette a b) 3F880000H
norm alizálatlan (nem norm alizált, denorm alized) számokat. E zek n e k a szám o k ­ c) 00800000H
nak az ex po nense 0, ezt k öveti a tö rtré sz 23 vagy 52 biten . A b ináris p o n t bal o ld a ­ d) C 7F00000H
lán levő im plicit 1-es b it m o st 0-ra változik. A n em n o rm alizált szám o k at m eg tu d ­ 3. A z IB M 370-es g ép en az egyszeres leb eg ő p o n to s szám o k n ak 64 tö b b letes
ju k k ü lö n b ö ztetn i a n o rm alizáltak tő l, m ert az u tó b b in ál n em m eg en g e d e tt, hogy re n d sz e rb e n m eg ad o tt 7 b ites kitevője van. A tö rtré sz 24 b ite t és 1 előjelbitet
az exponens 0 legyen. tarta lm az , a bináris p o n t a tö rtrész bal o ld alán van. A z alapszám a kitevőben
A legkisebb egyszeres p o n to sság ú n o rm alizált szám a kitev ő részen 1, a tö r tré ­ 16. A m ezők sorrendje: előjelbit, kitevő, tö rtrész. F ejezzük ki a 7/64-et m int
szen p ed ig 0, így 1,0 x 2^'^'’-t ábrázolja. A legnagyobb n em n o rm alizált szám 0 k ite ­ no rm alizált szám ot eb b en a ren d szerb en hexadecim ális fo rm ában.
vőjű, a tö rtré sz e ped ig csu p a 1-esből áll, így a 0,9999999 x 2“’^^-t re p rez e n tá lja , am i 4. A k ö v etkező bináris leb eg ő p o n to s szám ok egy előjelbitet, 64 tö b b letes kitevőt
közel ugyanaz az érték . E gy d olgot azo n b an jegyezzünk m eg, hogy e n n e k a szám ­ és 16 b ites tö rtré sz t tartalm azn ak , az exponens alapszám a 2. N orm alizáljuk a
n ak csak 23 szignifikáns bitje van, ezzel szem ben a n o rm alizált szám o k n ak 24. követk ező szám okat:
Mivel a szám ítások to v áb b c sö k k en th etik az ered m én y t, a kitev ő 0-ra állítódik, a) 0 1000000 0001010100000001
de az első néhány b ite n a tö rtré sz is 0-vá válik, ezzel csökken m ind az érték e , m ind b) 00111111 0000001111111111
a szignifikáns b ite k szám a a tö rtb en . A legkisebb n u llán ál nagyobb n em n o rm a li­ c) 0 1000011 1000000000000000
zált szám jo b b szélső bitje 1, és az összes tö bbi p ed ig 0. A kitevő -1 2 6 , a tö rtrész 5. K ét leb eg ő p o n to s szám összeadásához (a tö rtré sz eltolásával) az ex p o n en se­
pedig 2"-\ így az é rté k 2 E z a m egoldás egy eleg án s a lu lcso rd u lást biztosít a h e ­ k et azo n ossá kell ten n ü n k . E z u tá n tu d ju k összeadni a tö rtrészek et, és norm a-
lyett, hogy 0-ra u g ran a, h a az ered m én y n e m írh ató fel n o rm alizált szám m al. lizálni az ered m én y t, h a szükséges. A djuk össze az IE E E egyszeres ponto sság ú
A 0 k ét m ó d o n áb rá z o lh ató e b b en a sém áb an , egy pozitív és egy negatív nulla, 3EEOOOOOH és 3D 800000H szám okat, és adjuk m eg hexadecim álisan a n o r­
am elyet az előjelbit h a tá ro z m eg. M ind a k e ttő n e k a kitevője és a tö rtré sz e is n u l­ m alizált eredm ényt.
la. Itt is 0 a bináris p o n t bal o ld alán levő im plicit bit, és n em 1. 6. A T ightw ad („fösvény” ) C o m p u te r C om pany elh atáro zta, hogy előállít egy
A tú lcso rd u lást n em le h et jó l kezelni. N em m a ra d t (szabad ) b itkom bináció. szám ító g ép et 16 bites leb eg ő p o n to s szám okkal. A M odel 0.001 leb egőpontos
E h ely ett, egy speciális áb rázo lását adják a vég telen n ek : a kitevő csupa 1 (am ely form ája: előjelbit, 7 b ites 64 tö b b letes exponens és 8 bites tö rtrész. A M odel
nem m eg en g e d ett a n o rm alizált szám o kn ál), a tö rtrész p ed ig 0. E z a szám hasz­ 0.002-é: előjelbit, 5 bites 16 tö b b letes exponens és 10 bites tö rtrész. M in d k ettő
n á lh a tó m űveletek o p e ra n d u sa k é n t, és ugyanúgy viselkedik, m in t a hagyom ányos 2-es alap szám ot használ. M elyik a legkisebb és a legnagyobb pozitív norm ali-
716 B) L E B E G Ő P O N T O S S Z Á M O K

zált szám a két m o d ellb en ? K örülbelül hány decim ális jegyű a p o n to sság m in d ­
egyiknél? M eg ven n é ezek valam elyikét?
C) Assembly nyelvű programozás
7. E lőfordul, hogy k ét leb eg ő p o n to s szám on v é g reh a jto tt m ű veletnél az e re d ­
m ény szignifikáns b itjein ek szám ában d rasztikus csö k k en és áll be. M ikor?
8. N éhány leb eg ő p o n to s lapka (digitális á ra m k ö r) b e é p íte tt gyökvonást ta rta l­
m az. Egy leh etség es algoritm us egy iteratív (p éld áu l a N e w ío n -R a p h so n -) E v e rt W attéi
algoritm us. Ite ra tív algo ritm uso k egy k ezd ő becslésből in d u ln ak ki, és ezt á l­ V rije U n iversiteit
lan d ó an javítják. H ogyan k a p h a tn á n k gyors b ecslést a leb eg ő p o n to s szám ok A m szterd am , H o llan d ia
négyzetgyökére?
9. írju n k eljárást, am ely összead k ét IE E E egyszeres p o n to sság ú leb eg ő p o n to s
szám ot. M indegyik szám 32 elem ű B o o le-tö m b b en van ábrázolva,
10. írju n k eljárást, am ely összead két egyszeres p o n to sság ú szám ot, am elyek k ite­
vője 16-os alap szám ra v onatkozik, tö rtré sz e 2-es szám ren d szerű , de nincs im p ­
licit 1-cs bit a b in áris p o n t bal oldalán. A n o rm alizált szám tö rtré sz é n e k b a l­ M in d en szám ítógéphez létezik egy ISA (Instruction Set Architecture, U tasítás­
oldali 4 bitje 0001, 0010, ..,, 1111, de n em 0000. A szám ot úgy nornializáljuk, rendszer-architektúra), am ely regiszterek, u tasításo k és egyéb, az alacsony szin­
hogy a tö rtré sz t b a lra to lju k 4 b ittel, és 1-et ad u n k hozzá az exponenshez. ten p ro g ram o zó szem ély szám ára lá th a tó tu lajdonságok együttese. Az ISA-t gyak­
ran gépi nyelvnek is nevezik, b á r ez a kifejezés nem teljesen p o n to s. E zen az ab szt­
rakciós szinten a p ro g ram bináris szám oknak egy hosszú so ro zata, u ta sításo n k én t
egy szám , am ely m egm ondja, hogy m ilyen u tasítást kell végrehajtani, és mik az
o p e ran d u so k . A bináris szám okkal való program ozás nagyon nehézkes, ezért m in­
d en g ép ren delkezik egy assem bly nyelvvel, am ely az u tasításren d sz er-arch itek ­
tú ra szim bolikus rep rezen táció ja, a bináris szám ok helyett olyan szim bolikus n e ­
vekkel, m in t az ADD, SUB és MÚL. E z a függelék egy k o n k rét gép, az Intel 8088 as­
sem bly nyelvű p ro g ram o zását m u tatja be. E zt a pro cesszo rt haszn álták az e red eti
IB M P C -b en is, és ebből fejlő d ö tt ki a m o d ern P entium is. A függelék b em u tatja
n éhány, az assem bly nyelvű p ro g ram o zás ta n u lá sá t segítő, le tö lth e tő eszköz hasz­
n á la tá t is.
E függelék célja nem az, hogy tö k életes assem bly nyelvű p ro g ram o zó k at k ép ez­
zen, h an em , hogy kézzelfogható tap asztalato k k al segítse az olvasót a szám ítógép­
a rch ite k tú rá k tanulm ányozásában. E z é rt v álaszto ttu n k p é ld a k é n t egy egyszerű
pro cesszo rt, az Intel 8088-at. B ár a 8088-assal m ár csak elvétve találkozhatunk,
m in d en P en tium képes a 8088-as pro g ram ja it fu ttatn i, így az itt m eg tan u ltak a m o ­
d e rn g épek esetén is alkalm azhatók. E zen kívül a P entium alap u tasításain ak tö b b ­
sége m egegyezik a 8088-aséval, csak é p p en 32 bites reg iszte rek et használnak 16
b itesek helyett. így ez a függelék te k in th e tő egy gyenge b ev ezetésnek is a Pentium
assem bly nyelvű program o zásáb a.
B árm ely szám ítógép assem bly nyelvű p ro g ram o zásáh o z a p ro g ram o zó n ak rész­
letesen kell ism ernie a gép u ta sításren d sz er-arch itek tú ráját. E n n ek m egfelelően,
a C .l-tő l C .4-ig ta rtó alfejezetek et a 8088-as arch itek tú ráján ak , m e m ó riaszer\e-
zésének. cím zési m ódjainak, valam int u tasításain ak szenteljük. A C.5. alfcjezet
az e b b en a függelékben használt, szabadon h o zzáférh ető (lásd később) assem b­
lert m u ta tja be. A függelék jelö lésren d szere eh h ez az assem b lerh ez igazodik. M ás
assem b lerek m ás jelö lé sre n d sz e rt használnak, ezért a 8088-as assem bly p ro g ra ­
m o zásáb an já rta s olvasóink figyeljenek az e ltérések re. A C.6. alfejezetben egy le­
tö lth e tő é rtelm ező /n y o m k ö v ető /h ib ak ereső (in te rp re te r/tra c e r/d e b u g g e r) eszközt
718 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C l . Á TT EKIN T ÉS 719

m u ta tu n k be, am ely seg íth et a kezdő p ro g ram o zó k n ak p ro g ram h ib á ik fe ld e ríté sé ­ C.1.2. Egy rövid assembly nyelvű program
ben. A C.7. alfejezelb cn az eszközök te le p íté sé t és h aszn álatb a v ételén ek m ótiját
írjuk le. A C.8. alfejezet p ro g ram o k at, p é ld ák a t, g y ak o rlato k at és m eg o ld áso k at A zért, hogy ezek et az elvont fo g alm akat kicsit k o n k rétab b á tegyük, tekintsük a
tartalm az. A C.9. alfejezetb en pedig m egvalósítási k crd csek k cl, h ibákkal és az C.1. áb rán lá th a tó p ro g ra m o t és a hozzá tarto zó nyom követő képet. A C. 1, (a) áb ­
anyagrész korlátaival foglalkozunk. ra egy egyszerű 8088-as assem bly nyelvű p ro g ram o t m u tat. A felkiáltójelek után
talá lh a tó szám ok a fo rrásp ro g ram b eli sorok szám át jelölik, így könnyebb a p ro g ­
ram k ü lö n b ö ző részeire hivatkozni. A pro g ram m eg találh ató a kiegészítő anyag­
ban az cxam ples alkönyvtárban a HHoWrld.s nevű forrásfájlban. A m ellékletben
C.1. Áttekintés ta lá lh a tó többi assem bly nyelvű p ro g ram h o z h aso n ló an ez is .s kiterjesztéssel bír,
am i assem bly nyelvű fo rrásp ro g ram o t jelöl. A nyom követő képernyője a C.1. (b)
A z assem bly nyelvtí p ro g ram o zásb an te tt u tazá su n k elején ejtü n k n éh án y szót az á b rá n láth ató .* H ét ablakot tartalm az, m indegyik m ás jelleg ű inform ációt m utat
assem bly nyelvről, és egy rövid példával illusztráljuk is. az ép p e n fu tta tá s alatt álló bináris pro g ram állapotáró l.

_EXI T = 1 CS: 00 DS =SS =ES: 002 T MOV CX,de hw ! 6


_WRITE =4 AH:00 AL:Oc AX: 12 ' PUSH CX I 7
C.1.1. Az assembly nyelv _STDOUT =1 BH:QO BL:ŰO BX: 0 PUSH HW ! 8
.SECT TEXT CH:00 CL:Oc CX: 12 PUSH _STDOUT 1 9
M in d en assem b ler kön n y en m eg jegyezhető m nem onikokat, azaz rövid szavakat Start: ! 5 DH:00 DL:ŰO DX: 0 PUSH _WRITE 1 10
MOV CX,de-hw !6 S P : 7fd8 SF O D 5 Z C = >0004 SYS ! t1
használ, ilyenek p éld áu l az ADD, SUB és MÚL, re n d re az ö sszeadás, kivonás és szo r­ PUSH ex ! 7 B P : 0000 CC P - - 0001 ADD SP,8 1 12
zás gépi utasításo k ra. E zen kívül az assem b lerek b en szim bolikus neveket hasz­ PUSH hw !8 SI : 0000 IP :0 0 0 c :P C 00 0 0 SUB CX,AX 1 13
PUSH _STDOUT ! 9 D l: 0000 s ta rt +7 000c PUSH CX ! 14
n álh atu n k k o n stan so k ra, és cím kékkel je lö lh etü n k m eg u ta sításo k at és m enió- PUSH ^WRITE I 10 E
riarek cszek et. A legtöbb assem b ler tám o g atja ps^euduutasítások h asz n á la tá t is, SYS !1 1
ADD SP, 8 ! 12
am elyekből nem IS A -utasítás keletkezik, h an ein az assem b lert vezérlik a fordítási SUB CXM I 13 hw
folyam at során. PUSH ex ! 14 > H e llo W orld\n
PUSH ^EXIT ! 15 hw + 0 = 0000: 48 65 6c 6c 6f 20 57 6f H e llo World 25928
A z assem blernek n ev ezett p ro g ram a szám ára á ta d o tt assem bly nyelvű p ro g ra ­ SYS ! 16
m ot tényleges v ég reh ajtásra alkalm as bináris programmá alakítja. A z így előállt .SECT .DATA ! 17

p ro g ram o t leh et a tényleges h ard v eren fu ttatn i. A k ezd ő assem bly nyelven p ro g ra ­ hw: ! 18
.ASCII "Hello World\n" ! 19
m ozók azonban gyakran ejten ek h ib ák at, és ilyenkor a b in áris p ro g ram egyszerűen de: .BYTE 0 ! 20
m egáll, a p ro g ram o zó n ak p ed ig sem m i elk ép zelése sincs a h ibáról. A k ezd ő k é le ­
(a) (b)
té n ek m egkönny ítésére gyakran leh ető ség van arra, hogy a b in áris p ro g ra m o t ne
a k o n k ré t h ard v e re n futtassu k , han em szim u láto ro n , am ely egyszerre egy u ta sítá st C.1. ábra. (a) Egy assembly nyelvű program, (b) A hozzá tartozó nyomkövető képernyő
hajt végre, és részletes tá jé k o zta tá st ad arró l, hogy é p p e n mi is tö rtén ik . Ily m ó d o n
sokkal könnyebb a h ib ak eresés. A p ro g ra m o k te rm é sz e te se n nagyon lassan fu tn ak M o st röviden vizsgáljuk m eg a C.1. (b) áb rán láth ató h é t ablakot. Felül h árom
a szim ulátoron, de am ik o r a cél az assem bly nyelvű p ro g ram o zás m eg tan u lása, ablak találh ató , két nagyobb és közöttük egy kisebb harm ad ik . A bal felső ablak a
nem pedig a term ék fejlesztés, a k k o r ez a sebességveszteség nem lényeges. E z a p ro cesszo r ta rta lm á t m u tatja, azaz a CS, DS. SS és ES szegm ensregiszterek, az AH,
függelék egy olyan eszközre ép ít, am ely ta rta lm a z egy ilyen szim u láto rt is. E zt ér­ AL, AX aritm etik ai reg iszterek és egyéb regiszterek tartalm át.
telm ező (interpreter) vagy nyomkövető (tracer) néven szo k ták em leg etn i, mivel a A felső so r k özépső ab lak áb an láth ató a verem , azaz az á tm en eti é rté k e k tá ro ­
szim ulátor lépésről lép é sre értelm ezi, nyom on követi a b in áris p ro g ram fu tását. A lására h aszn ált m em ória.
szim ulátor, é rtelm e ző és nyom követő eln ev ezések et egym ással fe lcserelh ető k k cn t A jo b b felső ablak az assem bly nyelvű pro g ram egy részletét m u tatja, a nyíl p e ­
fogjuk használni eb b e n a függelékben. Á lta lá b a n a k k o r b eszelü n k é rtelm ező rő l, dig az é p p e n végrehajtás a la tt álló u tasítást jelöli, A p ro g ram fu tása közben, ahogy
am ikor csak a pro g ram fu tta tá sá ró l van szó. A bb an az esetb en , ha h ib ak ereső esz­ változik az aktuális utasítás, a nyíl elm ozdul, hogy m utassa azt. A nyom kövelö
közként használjuk, nyom követő néven beszélü n k ug y an arró l a p ro g ram ró l. erő sség e ab b an rejlik, hogy a r e i u r n (P C -billentyűzeten többnyire l n t h r felirattal

* Az á b r á k n é h o l k issé e lté r n e k a C 'D -m c llc k le tb c n le v ő p r o g r a m o k f u tta tá s á v a l n y e r h e tő


á b r á k tó l. (A lektor)
C.2. A 8088 A S P R O C E SSZ O R 721
720 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S

1. A z u tasítás b etö ltése a m em óriából a kódszcgm ensből a PC alkalm azásával.


je lz e tt) billentyíít leülve v ég reh ajtó d ik egy utasítás, és m in d en ablak ta rta lm a fris­
2. A p ro g ram szám láló növelése.
sül, ezzel lehetővé téve a p ro g ram lassíto tt v ég reh ajtását.
3. A b e tö ltö tt utasítás d ek ódolása.
A bal oldali ablak a latt talá lh a tó a szu b ru tin hívások verm e, am ely esetü n k b en
4. A szükséges ad ato k b etö ltése a m em óriából és/vagy a processzor regisztereiből.
üres. E z alatt a nyom követőnek szóló p aran cso k láth ató k . E zek tő l jo b b ra h elyezke­
5. A z u tasítás végrehajtása.
dik el egy ablak beviteli és kiviteli célokra, v alam int h ib aü ze n etek m egjelenítésére.
6. A z u tasítás ered m én y én ek táro lása a m em ó riáb an vagy regiszterekben.
A z alsó ablak a m em ó ria egy ré sz leté t m u tatja. E zekkel az ablak o k k al később
7. Vissza az 1. lépésre a következő utasítás m egkezdéséhez.
részletesen foglalkozunk, de m á r m ost is nyilvánvaló az a lap ö tlet: a nyom követő
m u tatja a fo rrásp ro g ra m o t, a gép reg isztereit és m ég jó n éh án y in fo rm áció t a fu t­
Egy u tasítás vég reh ajtása kicsit hasonlít egy kis p ro g ram fu ttatása. B izonyos gépek
ta tá s a latt álló pro g ram á llap o táró l. A hogy az egyes u tasításo k v é g reh ajtó d n ak , az
inform áció is frissítésre kerül, így a felh aszn áló elég részletesen láth atja, hogy m it tényleg egy kicsi pro g ram m al, az ún. mikroprogrammal, hajtják végre az u ta s ítá ­
saikat. A m ik ro p ro g ram o k at a 4. fejezet tárgyalja részletesen.
is csinál a program .
A z assem bly p ro g ram o zó szem pontjából a 8088-as 14 regiszterrel rendelkezik.
Ezek a reg iszterek bizonyos é rtelem b en egy jeg y zettö m b ö t alkotnak, ahol az u ta ­
sítások m ű k ödnek, és e z ért folyam atos haszn álatb an vannak, az itt tá ro lt e re d m é ­
C.2. A 8088-as processzor nyek azo n b an nagyon illékonyak. E n n ek a 14 reg isztern ek az áttek in tése lá th a tó a
C .l. áb rán . N yilvánvaló, hogy ez az á b ra és a C .l. áb rán a nyom követő reg iszte r­
M in d en p rocesszor, b eleé rtv e a 8088-ast is, ren d elk ezik egy belső á llap o ttal, ahol ab lak a nagyon hasonló, hiszen ugyanazt az info rm áció t jelen íti m eg.
n éh án y lényeges in fo rm ác ió t táro l. E rre a célra a p ro cesszo r egy regiszterkészlet­
tel rendelkezik, am elyben ez az inform áció táro lh a tó és feldolgozható. V alószínű­
leg a legfontosab b ezek közül a PC (program counter, program.számláló vagy uta­ Általános regiszterek Szegmensregiszterek
sításszám láló), am elyik a k ö v etk ező k én t v ég reh ajtan d ó u tasítás m em ó riah ely ét,
azaz cím ét tartalm azza. E rre a reg iszterre IP (in stru ctio n p o in te r, u ta sítá sm u ta tó ) AX AH AL CS Kódszegmens
néven is szoktak hivatkozni. E z az u tasítás a k ö zp o n ti m em ó ria egy részében, a
kódszegm ensben h elyezkedik el. A 8088-as k ö zp o n ti m em ó riája a k á r 1 M B is le­ BX BH BL DS Adatszegmens
h et, az aktuális kódszegm ens m ére te azo n b a n csak 64 KB. A CS reg iszter m eg m u ­
tatja, hogy hol k ezdődik a 64 K B -os kódszegm ens az 1 M B -o s m em ó riáb an (C .l. ex CH CL SS Veremszegmens
áb ra). A CS regiszte r egyszerű m ódosításával leh e t új kó d szcg m en st kiválasztani.
H aso n ló an , létezik egy 64 K B -os ad atszeg m en s is, am ely m eg m u tatja, hol k e z d ő d ­ DX DH DL ES Extra szegmens
nek az adatok. E n n e k a k e z d e tét a DS reg iszte r adja m eg, am ely szükség szerint
15 8 7 0 15 0
szintén m eg v álto ztath ató , ha az aktuális ad atszeg m en sen kívüli ad ath o z kell h o z­
záférni. A CS és DS reg iszte rek re azért van szükség, m e rt a 808X-as 16 b ites regisz­
terek k el dolgozik, így azok n em tu d ják közvetlenül táro ln i az 1 M B -os m em ó ria Mutató és index Feltételkódok
cím zéséhez szükséges 20 bites cím eket. E z é rt v ezették be a kód- és ad atszegm ens-
n" [ 1 11 1 rjT ' 1
regisztereket. SP Veremmutató SF CC
A tö b b i regiszte r a d a to t vagy m u ta tó t tartalm az, am ely valam ely a d a tn a k a köz­ OD 1 T S Z A P C
p o n ti m em ó riáb an elfoglalt helyére m u tat. A ssem bly nyelvű p ro g ram o k b a n ezek 15 Állapotjelzők (flagek) 0
BP Bázismutató
a reg iszterek közvetlenül elé rh e tő k . E re g iszte rek en kívül a p ro cesszo rb an m eg ­
ta lá lh a tó m ég az u tasításo k v ég reh ajtásáh o z szükséges m in d en egyéb dolog is, de Utasításmutató
Sl FnrrácinH íiv 1
ezek a részek a p ro g ram o zó szám ára csak az u tasításo k o n k eresztü l é rh e tő k el. IP Program- 1 ^Z.UI 1MOl PC
Dl Cíálinríí^Y 1
15 0
15 0
C.2.1. A processzorciklus

A 8088-as (és m inden m ás szám ító g ép ) m ű k ö d ése u tasításo k egym ás u tán i v é g re ­


h ajtásáb ó l áll. Egy u tasítás v ég reh ajtása az alábbi lép ések re b o n th ató :
C.2. ábra. A 8088-as regiszterei
C.2. A 8088-AS P R O C E SSZ O R 723
722 C) A S S E M B L Y N YELVŰ P R O G R A M O Z Á S

A 8088-as regiszterei 16 bit szélesek. N incs k ét fu n k cio n álisan teljesen ekviva­ Á lta lá b an az aritm etik ai utasítások a teljes 16 bites reg iszterek et használják, a k a­
lens regiszter, de van n ak k ö zö ttü k h aso n ló tu lajd o n ság o k kal bírók, ezé rt van n ak a ra k te rk e z e lő utasításo k azonban a 8 b iteseket. F ontos azonban tisztában lenni az­
C.2. áb rán cso p o rto k b a osztva. M ost nézzük m eg a k ü lö n b ö ző c so p o rto k at. zal, hogy az AL és AH csak az AX k ét felén ek elnevezései. A m ik o r az AX-be új érték
tö ltő d ik , az AL és AH is m egváltozik az AX-be tö ltö tt 16 bites szám alső és felső Telé­
re. H ogy lássuk az AX, AH és AL kölcsö n h atását, tekintsük a

C.2.2. Az általános regiszterek MOV AX,258

A / első cso p o rt reg iszterei, az AX, BX, CX, és DX az általá n o s reg iszterek . A cso ­
p o rt első tagját, az AX reg iszte rt akkum ulátorregiszternek is nevezik. Szám ítási utasítást, amely az AX regiszterbe tölti a 258 decim ális értéket. A z utasítás után az AH
ered m én y ek tá ro lá sá ra használjuk, és szám os u tasítás ered m én y e itt képződik. bájtregiszter az 1 értéket, az Al bájtregiszter pedig a 2 érték et tartalm azza. 11a ezt az
Jó lleh et m in d en reg iszte r sokféle m űvelet o p e ra n d u sa leh et, n éh án y utasításn ál,
például a szorzásnál, az AX az im plicit c élo p e ran d u s. ADDB AH,AL
A cso p o rt m ásodik reg isztere a BX, a bázisregiszter. A z AX-hez h aso n ló an a BX
sokféle célra h aszn álh ató , de van egy olyan erőssége, am i az AX-nek nincs. A BX- bájtö sszea d ás u tasítás követi, ak k o r az AH b ájtreg iszter az AL érték év el (2) nő, azaz
b en elhelyezhetü n k egy m em ó riacím et, és u tá n a olyan u ta sítá st h a jth a tu n k végre, a ta rta lm a 3 lesz. E n n e k az a h atása az AX regiszterre, hogy an n ak é rté k e m ost 770,
am elynek az o p e ra n d u sa a BX-ben tá ro lt m em ó riacím rő l jö n . M ás szóval, a BX tá ­ am ely ekvivalens a 00000011 00000010 bináris, vagy a 0x03 0x02 hexadecim ális je­
ro lh a t egy m em ó ria m u tató t, az AX nem . E n n e k szem léltetésére ö sszeh aso n lítu n k lölésű szám m al, A nyolc bájtszélességű reg iszterek m ajd n em felcserélh ető k , azzal
k ét u tasítást. E lő szö r a a kivétellel, hogy a MULB u tasításban az egyik o p e ra n d u st m indig az AL ta rta lm a z ­
za, és az AH-val együtt ez enn ek az u tasításn ak az im plicit célo p e ran d u sa is. A DIVB
MOVAX,BX u tasítás az o sztan d ő ra szintén az AH; AL p á ro s t használja. E lto ló és fo rg ató u tasítá­
sokban a lépések szám a a szám lálóregiszter alsó b ájtjáb an , a CL-ben táro lh ató .
am ely a BX ta rta lm á t az AX-be m ásolja. M áso d szo r a A C.8. fejezet 2. p éld ája a GcnReg.s p ro g ram tárgyalásán k eresztül m u tatja be
az á ltalán o s regiszterek n éh án y tulajdonságát.
MOV AX,(BX)

am ely an n ak a m em ó riaszó n ak a ta rta lm á t m ásolja az AX-be, am elynek cím ét a BX C.2.3. Mutatóregiszterek


tartalm azza. A z első p éld á b a n a BX a fo rrá so p e ra n d u st tartalm azza, m íg a m á so ­
d ik b an a fo rrá so p e ra n d u sra m u tat. A reg iszte rek m ásodik cso p o rtja a mutató- és indexregiszterek. E zek közül a leg­
A következő á ltalán o s reg iszte r a CX, a száitilálóregiszter (couiiter). Szám os fo n to sab b a verem m utató (stack pointer), am elynek jele SP. A verm ek a legtöbb
egyéb fe lad at elvégzése m ellett ezt a reg iszte rt h asználjuk ciklusok szám lálóinak p ro g ram o zási nyelvben fo n to s szerep et tö lte n e k be. A m em ó ria verem szegm ense
táro lásá ra. É rté k e a LOOP u tasítás h a tá sá ra au to m a tik u sa n csökken eggyel, és a a fu tó p ro g ram állap o táró l táro l bizonyos inform ációk at. Á ltaláb an , am ikor egy
ciklusok általáb an a k k o r é rn e k véget, am ik o r a CX eléri a 0-t. e ljárást m eghívnak, a verem egy részét fe n n ta rtjá k az eljárás lokális változóinak,
A z általános reg iszterek c so p o rtján a k negyedik tag ja a DX, az adatregiszter (da- az eljárás b efejezése u tán i visszatérési cím nek és egyéb v ezérlő inform ációknak. A
ta register). E zt haszn álják az AX reg iszte rrel együtt a d u p la szó (32 b ites) hosszú­ v erem n ek egy a d o tt eljárással kapcsolatos részét az eljárás verem keretének (stack
ságú utasítások. E b b en az esetb en a DX tartalm azza a m agas h ely crték ű 16 bitet, frame) hívjuk. H a egy eljárás egy m ásik eljárást hív m eg, egy újabb v e re m k e re t jön
az AX pedig az alacsony hely érték ű 16 b itet. Á ltaláb an a 32 b ites eg észek re a hosz- lé tre , á ltaláb an közvetlenül az aktuális alatt. További hívások újabb v e re m k e re ­
szú (long) elnevezést használjuk. A double (kétszeres, dupla) elnevezést általáb an te k e t h o zn ak lé tre az eddigiek alatt. B ár n em k ö telező érvénnyel, a verem szinte
a 64 bites leb eg ő p o n to s érté k e k re ta rtju k fen t, b á r egyesek a „d o u b le ” elnevezést m indig lefelé nő, azaz a m agas cím ektől az alacsonyabbak felé. E n n e k ellen ére, a
a 32 bites egészekre is h asználják. E b b e n a leírásb an n em lesz félre é rté s, m e rt egy­ v erem b en elfoglalt legalacsonyabb cím et m indig a verem te te jé n e k hívjuk.
általán nem foglalkozunk a le b eg ő p o n to s szám okkal. A lokális v áltozók táro lásá n kívül a v erem ideiglenes ered m én y ek et is táro lh at.
M indegyik általán o s reg iszter te k in th e tő egy 16 bites reg iszte rn ek vagy k ét 8 A 8088-as PUSH u tasítása egy 16 bites szót helyez el a verem tetejére. E z az u tasí­
bites regiszterből álló p árn a k . így a 8088-as p o n to san nyolc k ü lö n b ö ző 8 bites re ­ tás elő szö r 2-vel csökkenti SP-t, m ajd az o p e ra n d u sá t az SP által m u ta to tt (új) cím ­
giszterrel rendelk ezik , am ely ek et b ájt- és k a ra k te ru ta sítá so k b a n h aszn álh atu n k . A re helyezi. H asonlóan, a POP eltávolít egy 16 bites szót a verem tetejérő l úgy, hogy
t()bbi regiszter n em o szth ató 8 bites részek re. N éh án y u tasítás az egész reg iszte rt elő szö r kiolvassa a verem tetején találh ató é rté k e t m ajd 2-vel növeli SP-t. A / SP re ­
használja, péld áu l AX-et, m íg m ások csak a reg iszter felét, p é ld áu l AL-t vagy AH-t.
724 C) A S S E M B L Y N Y ELV Ű P R O G R A M O Z Á S C.3. M E M Ó R IA ÉS C ÍM Z É S 725

giszter a v erem te te jé re m u tat, és a PUSH, a POP, valam int a CALL u tasításo k m ó d o ­ az ad atszeg m ens és a verem szegm ens ugyanazt a m e m ó ria te rü le te t használja, az
sítják: a PUSH csökkenti, a POP növeli, a CALL p edig szintén csökkenti. ad atszeg m en s a te rü le t alján, verem szegm ens a tetején kezdődik. E zek rő l a regisz­
A cso p o rt következő reg iszte re a BP, a bázism utató (base pointer). E z többnyire te re k rő l ré szleteseb b en b eszélünk a C.3.1. fejezetben.
a v erem egy cím ét tartalm azza. SP-vel szem ben, am ely m indig a v erem te te jé re m u ­
tat, BP a verm en belül b árh o v a m u ta th a t. G y ak o rlatb an általáb an BP az aktuális el­
já rá s v ere m k e re té n e k k e zd e tére m u tat, ezáltal az eljárás lokális változói könnyen
elérh ető v é válnak. így BP gyakran m u ta t az aktuális v e re m k e re t aljára (a v erem k e ­ C.3. Memória és címzés
ret legm agasabb é rté k ű helyére), SP ped ig a te te jé re (a v e re m k e re t legalacsonyabb
érték íí helyére). A z ak tu ális v e re m k e re te t te h á t BP és SP é rté k e h atáro lja. A 8088-as kissé esetlen m em ó ria szervezése az 1 M B -os m em ó ria és a 16 bites
E b b en a reg iszte rcso p o rtb an ta lá lh ató m ég k ét indexregiszter: az Sl, a forrásin­ reg iszte rek k everéséb ő l adódik. 1 M B m em ó ria esetén egy m em ó riacím et 20 b it­
dex (source index), és a Dl, a célindex (destination index). E ze k e t gyakran BP-vel tel á b rázo lh atu n k . K övetkezésképpen leh e te tle n egy m e m ó ria m u ta tó t egyetlen
kom binálva verem beli, vagy BX-szel k om binálva m em ó riab eli ad a to k cím zésére 16 b ites reg iszterb en táro ln i. A p ro b lém a m eg k erü lésére a m em ó riát 64 K B -os
használjuk. E zek et a re g iszte rek et a cím zési m ó d o k ró l szóló fejezetb en tárgyaljuk szeg m en sek re tagolják, így a szegm ensen belüli cím ek elférn ek 16 biten. M ost
részletesebben. nézzük m eg részleteseb b en a 8088-as m em ó ria felépítését.
A z egyik legfo n to sab b regiszter, am ely ö n m ag a alk o t egy k ü lö n cso p o rto t, az
utasításm utató (instruction pointer), am ely az In tel elnevezése a p ro g ra m szá m ­
lálóra (p ro g ram co u n te r, PC). E z a reg iszte r egy, a p ro g ra m k ó d szeg m en séb en ta ­ C.3.1. Memóriaszervezés és szegmensek
lálh ató cím et tartalm az, de u tasításo k k al nem leh e t rá közvetlen ü l hivatkozni. A
processzor utasításcik lu sa a PC által m u ta to tt u tasítás b etö ltésév el kezdődik. E zt A 8088-as m em ó riája, m ely egyszerűen csak m eg cím ezhető 8bites bájto k tö m b ­
a regisztert az u tasítás további v ég reh ajtása elő tt növelik, így e zu tá n a p ro g ra m ­ je, u tasításo k és a d a to k tá ro lá sá ra , v alam int a verem szám ára használatos. E zek re
szám láló az ak tu álist k ö v ető első u tasításra m u tat. az e lté rő célokra használt m em ó riarészek a szegm ensek. A 8088-asban egy ilyen
A flag-regiszter vagy feltételkód- (condition code) vagy PSW (Program Status szegm ens 65 536 egym ást k ö v ető b ájtból áll. A négy e lk ü lö n ített szegm ens:
Word, program állapotszó) regiszter v alójában egybites reg iszterek halm aza.
N éhány bitet aritm etik ai u tasításo k állítan ak be, és az ered m én n y el kapcsolatosak: 1. A k ódszegm ens (code segm ent);
2. A z ad atszegm ens (d a ta segm ent);
Z- az ered m én y nulla (zero ); 3. A v erem szegm ens (stack segm ent);
S- az ered m én y negatív (előjel, sign b it); 4. A z ex tra szegm ens (extra segm ent).
V- az ered m én y tú lcso rd u lást o k o z o tt (overflow );
C- az ered m én y átv itelt o k o z o tt (carry); A kó d szeg m ens táro lja a p ro g ram u tasításait. A PC reg iszter ta rta lm á t m indig a
A- kiegészítő átvitel (a 3-as b itrő l) (auxilliary carry); k ó d szeg m en sen belüli m em ó riacím k én t értelm ezzük. H a a PC érté k e 0, az a k ó d ­
P- az ered m én y p a ritá sa (parity). szegm ens legalacsonyabb cím ét jelöli, n em p ed ig a valódi 0 m em óriacím et. A z
ad atszeg m en s a p ro g ram inicializált és inicializálatlan a d a ta it tartalm azza. A m ik o r
A regiszter többi bitje a p ro cesszo r m ű k ö d ésén ek bizonyos asp ek tu sait szabályoz­ a BX egy m u ta tó t tartalm az, a k k o r azt eb b en az adatszeg m en sb en kell értelm ezni.
za. A z I b it a m egszakításokat (in te rru p t) engedélyezi. A T b it a nyom követő (trace) A v erem szegm ens lokális v álto zó k at és a v erem be tá ro lt részered m én y ek et tá ro l­
m ó d o t engedélyezi, am ely h ib ak eresésre használatos. V égül a D b it vezérli a string ja. A z SP és a BP reg iszterek b en tá ro lt cím ek m indig eb b en a verem szegm ensben
m űveletek irányát (d irectio n). A flag-regiszter 16 bitje közül n em m indegyik van h ely ez k ed n ek el. A z ex tra szegm ens egy ta rta lé k szegm ens, am ely szükség szerint
használatban, a h aszn álato n kívüliek m indig nullák. a m e m ó ria bárm ely részén elhelyezkedhet.
A szegm ensregiszter-csoportban négy reg iszte r talá lh a tó . E m lék ezzü n k vissza, M in d en egyes szegm enshez tarto zik egy szegm ensregiszter: a 16 bites CS, DS, SS,
hogy a verem , az a d a t és az u tasítá sk ó d o k m ind a k ö zp o n ti m e m ó riáb an , de a n ­ és ES reg iszterek. A szegm ens kezdőcím e az a 20 bites előjel nélküli egész, am ely
n ak általáb an kü lö n b ö ző részeib en h ely ez k ed n ek el. A szeg m en sreg iszterek irá ­ úgy áll elő, hogy a szegm ensregisztert b alra lép tetjü k 4 bittel, m ajd a jo b b szélső
nyítják a m em ó riá n a k e zek et a k ü lö n b ö ző részeit, a szegm enseket. A reg iszterek négy pozíció ra 0-kat p ó to lu n k . A szegm ensregiszter a szegm ens k e zd etére (b ázi­
neve CS, a kódszegm ens (co d e seg m en t), DS, az ad atszeg m en s (d a ta seg m en t), SS, sára, a lap jára) m u tat. A szegm ensen belüli cím ek úgy k ép ezh ető k , hogy a szeg­
a verem szegm en s (staek seg m en t), és ES, az ex tra szegm ens (ex tra seg m en t) re ­ m en sreg iszter é rté k é t a végén négy 0 bittel m egtoldva valódi 20 b ites cím m é ala­
giszter esetéb en . A z idő nagy részéb en ezek érté k ei nem válto zn ak . G y ak o rlatb an kítjuk, m ajd hozzáadjuk az eltolás é rté k e t (offset). G y akorlatilag az abszolút m e ­
m ó riacím et a szegm ensregiszter 16-szorosának és az elto lás érté k é n e k összege a d ­
726 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C.3. M E M Ó R IA ÉS C lM Z É S 727

ja. P éldául, ha DS = 7, BX = 12, ak k o r a BX által jelö lt cím 7 x 1 6 + 1 2 = 124. M ás MOV AX,BX


szóval, a DS = 7 állal jelö lt 20 bites b in áris cím 00000000000001110000. E h h ez
hozzáadva a 16 bites 0000000000001100 (decim ális 12) elto lást a szegm ens k e zd e ­ vagy
té n e k cím c 00000000000001111100 (decim ális 124).
M inden m em ó riah iv atk o zásn ál a tényleges cím kép zéséhez felh aszn álju k v a ­ ADD ex,20
lam elyik szegm en sreg isztert. H a egy u tasítás d irek t cím et ta rta lm az reg iszte rh i­
vatkozás nélkül, a k k o r a cím au to m a tik u sa n az ad atszeg m en sb en van, és a DS-t E zek b en az u tasításo k b an az első o p e ra n d u s a cél, a m ásodik pedig a forrás. (Ö n ­
h asználjuk a szegm ens k e z d e té n e k m eg h atáro zásáh o z, A fizikai cím et úgy találjuk kényes a választás, hogy m elyik van elöl. A fo rd íto tt so rren d is elfo g ad h ató lett
m eg, hogy ezt az a lap o t h ozzáadjuk az u tasításb an szerep lő cím hez. A következő' voln a.) T erm észetesen ilyenkor a célo p e ran d u sn ak balértéknek (left value) kell
u tasítás m em ó riab eli fizikai cím ét a CS reg iszte rt 4 b in áris hellyel lép tetv e, m ajd a lennie, azaz olyan helynek, ahol valam i tá ro lh a tó . E z azt jelen ti, hogy kon stan s le­
p ro g ram szám láló t h o zzáadva k ap ju k m eg. M ás szóval, elő szö r k iszám ítjuk a 16 b i­ h e t fo rrá so p eran d u s, de c é lo p e ran d u s nem .
tes CS regiszter által kijelölt valódi 20 b ites cím et, m ajd e h h ez h o zzáad ju k a 16-bi- A z e red e ti terv szerint a 8088-asban a k ét o p e ran d u s közül legalább az egyiknek
tes PC érté k é t, hogy így előálljon a 20 b ites abszo lú t m em óriacím . re g isztern ek kel! lennie. E zzel az volt a cél, hogy a szavas utasítások (word instruc-
A verem szegm en s 2 bájtos szavakból áll, te h á t a v erem m u tató , az SP, m indig tions) és a bájtos utasítások (byte instructions) m eg k ü lö n b ö zteth ető k legyenek
p áro s szám ot kell tartalm azzo n . A v erem a m agas cím ek tő l az alacsonyak felé azáltal, hogy a m eg ad o tt regiszter szavas regiszter vagy bájtos regiszter. A p ro ­
telítődik, így te h á t a PUSH u tasítás 2-vel csökkenti a v e re m m u ta tó t, m ajd az ope- cesszor első k iadásában ezt oly m é rték b en m egkövetelték, hogy egyenesen le h e ­
ra n d u s á t az SS és SP reg iszte rek b ő l k é p e z e tt m em ó riacím re táro lja. A POP u tasítás te tle n volt k o n stan st a v erem re helyezni, m e rt abb an az u tasításb an sem a fo rrá s­
visszatölti az érté k e t, m ajd 2-vel növeli az SP-t. A verem szeg m en sb en szab ad n ak o p e ra n d u s sem a célo p e ran d u s nem regiszter. A későbbi v áltozatok kevésbé voltak
tek in te n d ő k azok a cím ek, am elyek az SP által je lö ltn él k isebbek. A v erem ta k a ­ szigorúak, de az ötlet m in d en esetre kihatással volt az egész tervre. N éhány e se t­
rítása így e lin tézh e tő p u sztán az SP növelésével. G y ak o rla tb a n a DS és SS m indig b en az egyik o p eran d u st nem is em lítjük külön. P éldául a MULB u tasításb an csak az
azonosak, te h á t egy 16 bites m u tató v al h iv atk o zh atu n k az o szto tt adat-/v erem - AX reg iszte r képes c é lo p e ran d u sk én t viselkedni.
szegm ensben tá ro lt válto zó ra. H a a DS és az SS k ü lö n b ö zn én e k , egy 17. b itre lenne Jó n éh án y eg yoperandusú m űvelet is létezik, m int p éld áu l a növelések, e lto lá ­
szükség m in d en m u tató h o z, hogy m e g k ü lö n b ö ztessü k az ad atszeg m en sb e m u ta tó ­ sok, n eg álások stb. Ilyen esetek b en a reg iszter n em követelm ény, és a szavas és
k at a verem szegm ensbe m u tató k tó l. V isszagondolva, valószínűleg hiba volt külön b ájto s m ű v eletek közötti k ü lö n b ség et csak a m űveleti kódból (az u tasítás típ u sá ­
verem szegm enst egyáltalán b evezetni is.* b ó l) le h e t kikövetkeztetni.
H a a négy szeg m en sreg iszterb en ta lá lh a tó cím et nagyon távo lin ak választjuk, A 8088-as négy alap ad a ttíp u st tám ogat: az 1 bájto s bájt (byte), a 2 bájto s szó
ak k o r a szegm ensek szétválnak, de ha a ren d e lk e z ésre álló m em ó ria k o rláto s, a k ­ (word), a 4 b ájtos hosszú szó (long) és a binárisan kódolt decim ális (binary coded
k o r nem szükséges szétválasztani. F o rd ítás u tá n ism ert a p ro g ram k ó d m ére te . decim ál, BCD ), am elyben egy szó k ét decim álist szám jegyet táro l. A z u tó b b i típust
Ilyenkor é rd em es az a d a t és v erem szeg m en sek et az u to lsó u tasítá st k ö v ető első az é rte lm e ző nem tám ogatja.
16-tal o szth ató cím re helyezni. Ezzel feltételezzü k , hogy a kód- és ad atszeg m en s A m em ó riacím ek m indig b á jto k ra m u tatn ak , de szavak vagy hosszú szavak im p­
soha nem használja u gyanazt a fizikai cím et. licit m ó d o n m u ta tn a k a m egcím zett b ájt feletti m em ó riah ely ek re is. A 20-as cím en
ta lá lh a tó szó a 20-as és 21-es m em ó riah ely ek et jelen ti. A 24-es cím en lévő hosszú
szó a 24, 25, 26, és 27-es cím eket foglalja el. A 8088-as kis endián (little endian)
C.3.2. Címzés szervezésű, am i azt jelen ti, hogy a szó alacsony h ely érték ű része van az alacso­
nyabb cím en tárolva. A verem szegm ensben a szavakat m indig p á ro s cím ekre kell
M ajdnem m in d en u ta sítá sn ak szüksége van a d a to k ra , vagy a m em ó riáb ó l, vagy helyezni. A pro cesszo r reg isztereib en a hosszú szavakra vonatkozó egyetlen in téz­
a regiszterekből. Az a d a to k m eg ad ásáh o z cím zési m ó d o k viszonylag v áltozatos k ed és az DX : AX összetétel, am ik o r is az AX táro lja az alacsony h ely érték ű szót.
g yűjtem ényét kínálja a 8088-as. Szám os u tasítás k é t o p e ra n d u st tartalm az, a m e ­ A C.3. áb ra táb lázata b em u tatja a 8088-as cím zési m ódjait. T ekintsük át e z e ­
lyeket általáb an céloperandusnak (destination) és forrásoperandusnak (source) k et röviden. A tá b lázat legfelső vízszintes blokkja a reg iszte rek et sorolja fel. E zek
nevezünk. G o n d o lju n k p é ld áu l a m ásoló u tasításra, vagy az ö sszeadásra: szinte m in d en u tasításb an h aszn álh ató k a k ár forrás-, a k á r célo p e ran d u sk én t.
N yolc szavas és nyolc bájtos regiszter van.
A m áso d ik vízszintes blokk az adatszegm ens cím zésének m ó d jait tartalm azza.
A z ilyen típ u sú cím ek m indig tartalm azn ak egy záró jelp árt, am i azt jelöli, hogy a
* A megvalósítás 64 KB adat- és 64 KB veremterület kijelölését teszi lehetővé. A szerző ja­ cím en ta lá lh a tó ta rta lm a t, nem pedig az é rté k é t jelöljük. A legegyszerűbb ilyen
vasolta megoldásban a két terület együtt sem haladhatná meg a 64 KB-ot. (A lektor)
728 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C.3. M E M Ó R IA ÉS C ÍM Z É S 729

M ód Operandus Példák (register displacem ent) cím zés nagyon kényelm es tö m b ö k eseten . H a péld áu l az Sl
Regisztercímzés
ta rta lm a 4, ak k o r a FORMÁT cím kénél találh ató string ötödik k ara k te ré t AL-bc tö lt­
Bájtos regiszter Bájtos regiszter AH,AL,BH,BL,CH,CL,DH,DL h etjü k az alábbi utasítással:
Szavas regiszter Szavas regiszter AX,BX,CX,DX,SP,BP,Si,DI
Adatszegm enscím zés MOVB AL,FORMAT(SI)
Direkt cím A cím a műveleti kódot követi (#)
Regiszter-indirekt A cím regiszterben van (SI),(DI), (BX)
A z egész string végigjárható a regiszter lépésenként] növelésével vagy csö k k en té­
Indexelt A cím regiszter+eltolás #(SI), #(DI), #(BX)
Bázis relatív A cím BX+SI/DI (BX)(SI), (BX)(DI) sével. A m ik o r szavas o p e ra n d u st használunk, a reg isztert m indig kettővel kell vál­
Bázis relatív eltolással A cím BX+SI/DI+eltolás #(BX)(SI), #(BX)(DI) to ztatn i.
Verem szegm enscím zés L e h ető sé g van a rra is, hogy a töm b báziscím ét (azaz a legalacsonyabb n u m e ri­
Bázismutató indirekt A cím regiszterben van (BP) kus cím ét) a BX reg iszterb e tegyük, az Sl vagy Dl regisztert pedig szám lálásra hasz­
Bázismutató eltolás A cím BP+eltolás #(BP) náljuk. E z a bázis relatív (register with index) cím zés. Például:
Stack relatív AcímBP+SI/DI (BP)(SI), (BP)(DI)
Stack relatív eltolással A cím BP+SI/DI+eltolás #(BP)(SI),#(BP)(DI)
PUSH (BX)(DI)
Közvetlen adat
Közvetlen bájt/szó Az adat az utasítás része #
Implicit címzés kiolvassa az ad atszegm ens azon helyének ta rta lm á t, m elynek cím e a BX és Dl re ­
Push/pop utasítás (SP) indirekt cím PUSH, POP PUSHF, POPF g iszterek összege. E z az é rté k u tá n a a verem te te jé re kerül. A z u tóbbi két cím típus
Flagek betöltése/tárolása állapotjelző (flag) regiszter LAHF, STC, CLC, CIVIC k o m b in álh ató , így k apjuk a bázis relatív eltolással (register with index and d is­
XLAT-átalakítás AU BX XLAT placem ent) cím zést, m int p éld áu l az alábbi utasításban;
Ismétlődő string utasítások (Sl), (Dl), (CX) IVIOVS, CMPS, SCAS
In/out utasítások AX,AL IN#, OUT#
Bájt- és szókonverziók AL, AX, DX CBW, CWD
NOT20{BX)(DI)

C.3. ábra. Operandusok címzési módjai. A # szimbólum numerikus értéket vagy címkétjelöl am ely a BX -I- Dl -F 20 és BX -F Dl -F 21 cím eken ta lá lh a tó m enióriaszó k om plem en-
sét képezi.
cím zésm ód a direkt cím zés (direct addressing), am ik o r az o p e ra n d u s cím e van A z ad atszeg m en sb en h aszn álh ató m inden in d irek t cím zési m ód a v erem szeg­
m egadva az u tasításb an . Például: m en sb en is létezik, ilyen esetb en a BP b ázism u tató t használjuk a BX bázisregiszter
helyett. A (BP) az egyetlen reg iszter-in d irek t verem cím zési m ó d , de az ö sszetet­
ADD CX,(20) teb b v álto zato k szintén léteznek, m in t p éld áu l a stack relatív cím zés eltolással:
-l(BP)(SI). E zek nagyon é rték esek lokális változók és függvényparam éterek cím zé­
am elyben a 20-as és 21-es cím ek en ta lá lh a tó m em ó riaszó ta rta lm a ad ó d ik CX-hez. sénél, am ely eket a szu b ru tin o k verem cím eken táro ln ak . Ezzel az elrendezéssel a
A z assem bly nyelvben a m em ó riacím ek et á ltaláb an cím kékkel jelö ljü k a n u m e ri­ C.4.5. részb en részleteseb b en foglalkozunk.
kus é rté k e k helyett, a konv erzió p edig a fo rd ítási id ő b en tö rté n ik . M ég a CALL és M in d en eddig tárgyalt cím zési m ó d n ak m egfelelő cím h aszn álh ató a m ű vele­
a JMP u tasításo k n ál is tá ro lh a tó a folytatás cím e a m e m ó ria egy cím k ézett helyén. te k b e n fo rrás- és célo p e ran d u sk én t is. E zek et együtt effektív cím eknek (effective
A cím két közrefogó záró jelek fo n to sak (az általu n k h aszn ált assem b ler szám ára), address) hívjuk. A k é t további blokk cím zési m ódjai n em h aszn álh ató k c é lo p e ra n ­
m e rt az d u sk én t, és azo k at nem is hívjuk effektív cím zésnek. E zek csak fo rráso p eran d u s-
k é n t h aszn álhatók.
ADDCX,20 A m ik o r az o p e ra n d u s egy az u tasításb an m eg ad o tt k o n stan s b ájt vagy szó, köz­
vetlen cím zésről (im m ediate addressing) beszélünk. így példáu l a:
szintén érvényes u tasítás, csak ez azt jele n ti, hogy a 20 k o n stan st kell CX-hez h o z­
záadni, n em p ed ig a 20-as m en ió riaszó ta rta lm á t. A C.3. á b rá n a # szim bólum je ­ CMP AX,50
löli a n u m erik u s k o n stan st, cím két vagy cím két használó k o n stan s kifejezést.
R egiszter-indirekt cím zés (register indirect addressing) e setén az o p e ra n d u s cí­ ö sszeh aso n lítja A X -et az 50 konstanssal, és a flag-regiszterben az eredm énytől
m e a BX, Sl vagy Dl reg iszterek valam elyikében van tárolva. M in d h áro m esetb en az függően b eállít bizonyos b iteket.
o p e ran d u s az ad atszeg m en sb en találh ató . H a a reg iszter elé egy k o n stan st írunk, V égül, néhány u tasítás im plicit cím zést (im plied addressing) használ. E zeknek
akkor a cím a reg iszte r és a k o n stan s összeadásával alakul ki. E z az ún. indexelt az u tasítá so k n ak az o p e ra n d u sa (i) az utasításból m agából követekezik. P éldául a
730 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S
C.4. A 8088 U T A SÍT Á SR EN D SZ ER E 731

M n e m o n ik A n g o l le írá s Le írá s O p e ra n d u s o k á lla p o t -fla g e li [


PUSH AX
0 s 7 c
M O V (B ) M o ve w ord/byte Szó (bájt) m ozgatása r * - - e ,e < - r ,e < - # - - - -

u tasítás AX ta rta lm á t a v erem te te jé re helyezi úgy, hogy elő szö r csö k k en ti az SP-t, XCHG{B) Exchange w ord Szó (bájt) cseréje r-f-»e - - - -
Effe k ív cím betöltése - -
m ajd AX-et az új SP által m u ta to tt helyre m ásolja. A z SP-t k ü lön n em nevezzük m eg LEA Load effective address r -^ # e -

PU SH Push o n to stack Verem tetejére e ,# - - -


az u tasításb an , h an em m agából a tényből - hogy egy PUSH u tasításró l van szó - k ö ­ PO P Pop from stack Verem tetejéről e - - - -
vetkezik, hogy az SP-t kell használni. H a so n ló k ép p e n , a flag-m anipuláló u tasításo k PU S H F Pu s h flags Flagek verem be - - - - -

külön m egnevezés nélkül, im plicit m ó d o n hivatk o zn ak az állap o tjelző reg iszterre. POPF Pop flags Flagek verem ből - - - -

X IA T Tra n sla te A L A L átalakítása - - -


T ö b b m ás u tasításn ak is van im plicit o p eran d u sa. *
A D D (B ) A dd w ord Összeadás ,. i _ e ,e ^ r ,e — # *
A 8088-asnak speciális u tasításai v an n ak strin g ek m o zg atására (MOVS), ö sszeh a­ A D C (B ) A dd w ord w ith carry Összeadás átvitellel r - ^ e ,e ^ r ,e — #
•* *

sonlítására (CMPS) és b e já rá sá ra (SCAS). E zek n él a strin g u tasításo k n ál az Sl és a Dl SUB(B) S u b trac tw ord Kivonás r i-e , e ^ r , e ^ # * *
* *
SBB(B) S u b tra c tw o rd w ith b o r ro w Kivonás átvitellel r - ~ e ,e - r ,e - #
indexregiszterck a u to m a tik u sa n v áltoznak a m ű v elet u tá n . E zt a viselkedés hívjuk
IM U l(B ) M u ltip ly signed Előjeles szorzás e *
u U
a u to m a tik u s n ö v e lé s ( a u tó in c re m e n t) vagy a u to m a tik u s c s ö k k e n té s ( a u tó d e c re - M U L (B ) M u ltip ly u n s ig n e d Előjel nélküli szorzás e

u U
m e n t) m ódnak. H ogy az Sl és a Dl reg iszterek n ö v ek ed n ek vagy csökkennek, az az IDIV(B) O ivide signed Előjeles osztás e u u u u

állap o tjelző regiszter irá n y -fla g jé tő l ( d ire c tio n flag ) függ. A z irány-flag 0 é rté k e D IV (B) D ivid eu n sign e d Előjel nélküli osztás e u u u u
CBW Sign e xtend b yte -w o rd Előjel kiterjesztese bájtról szóra ~ - - -
növelést, az 1 érté k c sö k k en tést je le n t. B ájtos u tasításo k ese té n a változás 1, míg
CW D S ig n e x te n d w o rd -d o u b le Előjel kiterjesztese szóról hosszú szóra - - - - -
szavas utasításo k ese té n 2, B izonyos szem p o n tb ó l a v e re m m u ta tő is au to m atik u s N E G (B ) N e g ate binary Szó negatívja e * * *

növelés és au to m atik u s csö k k en tés m ö d o n viselkedik: 2-vel csökken a PUSH u tasí­ N 0 I(6 ) Logical c om plem ent Logikai kom plem ens e - - - -
* *
INC(B) In crem ent destination Növelés 1-g ye l e • *
tás elején és 2-vel n ő a POP u tasítás végén. * *
DEC (B) O ecrem ent destm ation Csökkentés 1-g ye l e * *
* *
A N D (B ) logical and Logikai és r< -e , e ^ tl 0 0

O R(B) Logical or Logikai vagy r^ e , e ^ r, 0 0


* *
X OR(B ) Lo g iü jl exciusive or Logikai kizáró vagy r ^ e , e *- r , e *-# 0 0
* * *
C.4. A 8088 utasításrendszere SH R (B )

SA R (B )
logical sbift riglit

A rith m e tic s b ift rigbt


lo gika i leptetés jobbra

Aritm etikai léptetés jobbra e - ^ 1 ,e - ^ C L * * * •*

* * * *
S A L ( B )(= S H L (B )) S b iftle ft lé pte té s balra
* *
M in d en szám ítógép lelke az általa v ég re h a jth ató u tasításo k ren d szere. A hhoz, R O L(B ) Ro ta te left Forgatás balra -
* *
RO R(B) Ro ta te rigtit Forgatás jobbra e’ ^ l . e ^ C L - -
hogy valóban ism erjü n k egy szám ító g ép et, an n a k u ta sításren d sz e ré t kell igazán jól « *
RCL(B) Ro ta te left w ith carry Forgatás balra a carryn keresztül - -
ism ernünk. A követk ező fejezetek b en a 8088-as leg fo n to sab b u ta sítá sait tárg y al­ RCR(B) Ro ta te right w ith carry Forgatás jobbra a carryn keresztül
* - - *

juk. A C.4. á b ra ezek közül 10 cso p o rtb a osztva m u ta t be n éh án y at. TEST{6) Test operands Ellenőrzés logikai és alapján e - - r ,e - - # 0 * * 0

CM P(B) C o m pareoperands O perandusok osszehasonlítása * *

STD Set direction flag ( i ) Irány-flag beállítása ( | ) - - - - -


CLD C le a r d ire c tio n fla g ( t) Irány-flag to r l é s e d ) - - - - -

C.4.1. Adatmozgatás, -másolás és aritmetika STC Set carry flag Carry beállítása - - - - 1

ClC Clear carry flag Carry torlése - - - - 0

CM C C o m plem en t carry Carry kom plem entálasa - - - -


A z utasításo k első cso p o rtja az a d atm áso ló és -m ozgató utasításo k . M essze a leg­ LO O P Ju m p back if decrem ented C X ^ O Ugrás, ha a csökkentett CX?:0 dm ke - - - -
gyakoribb u tasítás a MOV, am ely explicit fo rrás- és c é lo p e ran d u ssal rend elk ezik . LO O P ZLO O P E B a c k i f Z = l and D EC (C X ) j í O U g r á s ,h a Z = l é s D E C ( C X ) í O cím ke - - - -

H a a fo rrá so p e ra n d u s reg iszter, a k k o r a célo p e ra n d u s le h e t effektív cím. A tá b ­ LO O P N ZLO O P N E Back i f Z = O a n d D EC (C X )?:0 Ugrás, ha Z = 0 é s D EC (C X )? :0 cím ke - - - -

R EP R EP ZR EP N Z R epeat string instruction String utasítás ismétlése strinq utasítás - - - -


lázatban a re g isz te ro p era n d u st r, m íg az effektív cím et e jelöli, te h á t ezt az ope- M O V S(B ) M o ve w ord stnng String m ozgatása - - - - -
ran d u sk o m b in ác ió t e -^ r jelöli. E z a MOV u tasításn ál az O perandusok oszlop első LO DS (B) Load w ord string String hetóltése - - - - -

bejegyzése. M ivel az u tasítás szintaxisa szerin t a c é lo p e ra n d u s az első és a fo rrá s­ SIO S (B ) Store w ord string String tárolása - - - - -
SACS(B) Scan w ord string String bejárása - * * * *
o p eran d u s a m ásodik, a b alra m u ta tó nyíllal jelö ljük az o p e ra n d u so k at. A z e -^ r
CM PS(B) Com pare w o rd s tn n q Strinqek osszehasonlítása - * * * *
je len tése te h á t az, hogy a reg isztert m ásoljuk az effektív cím re. JCC Ju m pa cc o rd in gc o n ditio n s Feltételek szerinti ugrás cím ke - - - -

A MOV u tasításn ál a fo rrá so p eran d u s szintén leh e t effektív cím , a c é lo p e ran d u s JM P Ju m p to la b e l Cím kére ugrás e , címke - - - -

C A LL Ju m p t o subroutine Szubrutinra ugrás e , címke - - - -


pedig regiszter, am elyet az u tasítás O perandusok o szlo p án ak m ásodik, /■«—e, b e ­
RÉT Return fro m suhroutine Visszatérés szuhriirm hoi - # - - - -
jegyzése jelöl. A h arm a d ik lehetőség, am ik o r a fo rrá so p e ra n d u s közvetlen ad a t a SYS System call trap Rendszerhívás csapda - - - - -
célo p e ran d u s ped ig effektív cím , azaz e « - # . A közvetlen a d a to t a tá b lá za tb a n a
k ettő s k ereszt ( # ) szim bólum jelzi. M ivel létezik a szót m o zg ató MOV és a b ájto t C.4. ábra. A 8088-as legfontosabb utasításai
732 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C.4, A 8088 U T A SÍTÁ SR EN D SZ ER E 733

m ozg ató MOVB is, az u tasítás m n c m o n ik ján ak vegén a B záró jelek k ö zö tt találh ató , A k övetkező blokk tartalm azza a szorzás és osztás u tasításo k at. E lőjeles egész
így ez az egy so r v alójában hat k ü lö n b ö ző u tasítást jelen t. o p era n d u so k k al az IMUL és IDIV u tasításo k at, míg előjel nélküliekkel a MÚL és
M ivel ad atm o z g a tó u tasítás h a tá sá ra az állap o tk ó d reg iszte r egyetlen flagje sem DIV u tasítá so k at kell használni. E zen u tasításo k bájto s válto zatain ak im plicit cél-
változik, az utolsó négy oszlopban a bejegyzést találjuk. M egjegyezzük, hogy a o p e ra n d u sa az AH : AL regiszter összetétel. A szavas v álto zatb an az im plicit cél az
m ozgató u tasításo k igazából n em m ozgatják az ad ato t. M áso lato t készíten ek , az­ DX: AX reg iszter összetétel. A DX vagy AH regiszterek m ég ak k o r is felü líró d n ak , ha
az a fo rrá so p e ra n d u s n em változik, m in t ahogy az egy valódi m ozgatás e se té n tö r ­ a szorzás ered m én y e csak egy bájt vagy egy szó. A szorzás m indig lehetséges, h i­
tén n e. szen a c é lo p e ran d u s ren d elk ezik eleg e n d ő szám ú bittel. H a a szorzat nem á b rá ­
A táb lázat m áso d ik u tasítá sa az XCHG, am ely egy reg iszte r és egy effektív cím zo lh a tó egy szón vagy b ájto n , akkor b eállító d n ak a túlcsordulás és átvitel bitek. A
ta rta lm á t cseréli fel. A csere jelö lé sé re a táb lá za tb a n a szim bólum ot h aszn ál­ z éró és a negatív flagek szorzás u tán nem definiáltak.
juk. így az XCHG u tasítás O perandusok o szlo p áb an jelö lést találu n k . Itt is lé­ A z osztás szintén a DX: AX vagy az AH: AL reg iszter ö sszetételek valam elyikét
tezik bájtos és szavas változat. A követk ező u tasítás a LEA, am ely a L o ad Effective h asználja célo p e ran d u sk én t. A hányados az AX-be vagy az AL-be kerúi, a m arad ék
A ddress (effektív cím b e tö lté se ) rövidítése. E z kiszám ítja az effektív cím n u m e ri­ p ed ig a DX-be vagy az AH-ba. A z osztás m űvelet u tán a négy flag, az átvitel-, a tú l­
kus érté k é t, és táro lja azt egy reg iszterb en . csordulás-, a zéró és a negatív flag közül egyik sem definiált. H a az osztó 0, vagy
A következő a PUSH, am ely az o p e ra n d u sá t a v erem te te jé re helyezi. A z explicit ha a h án y ad os n em fé r el a regiszterben, a m űvelet v ég reh ajt egy c s a p d á t ( tr a p ) ,
o p e ran d u s leh et k o n stan s ( # az O peransudok o szlo p b an ) vagy egy effektív cím (c am ely leállítja a p ro g ram o t, kivéve, ha m eg van adva egy külön csapdakezelő (tra p
az O perandusok o szlopban). Van azo n b an egy im plicit o p e ra n d u sa is, az SP, a m e ­ h a n d le r) ru tin . E zen felül, érd em es a negatív előjelre figyelni a p ro g ram b an osztás
lyet az u tasítás szintaxisában k ü lö n n em em lítünk. A z u tasítás 2-vel csökkenti SP-t, e lő tt és u tán , m ert a 8088-asban a m a rad ék előjele m indig m egegyezik az o sztan ­
m ajd az o p eran d u st az új SP által m u ta to tt helyre tárolja. d ó előjelével, míg a m atem atik áb an a m ara d é k m indig nem negatív.
A POP következik, am ely a v erem te te jé rő l eltávolít egy o p e ra n d u st, m ajd azt A b in árisan k ó d o lt decim ális szám okra v o natkozó olyan u tasítások, m int p é l­
egy effektív cím re táro lja. A PUSHF és a POPF u tasítás szintén ren d elk ezik im plicit d áu l az ascii k o rrek ció ö sszeadásra (A scii A d ju st fó r A d d itio n , AAA) és a decim ális
o p eran d u so k k al, ez a flag-regisztert teszi a v erem b e, illetve veszi ki o n n a n . E z a k o rrek ció ö sszeadásra (D ecim ai A djust fór A ddition, DAA), az értelm ező b en n in ­
helyzet az XLAT-tal is, am ely az AL b ájto s reg iszte rb e tölti az AL-I-BX cím tarta lm á t. csen ek m egvalósítva, így a C.4. áb rán sincsenek felsorolva.
Ezzel az utasítással 256 b ájto s táb lá z ato k b a n leh e t gyorsan k eresni.
H iv atalo san a 8088-asban d efiniáltak, az értelm e z ő b en azo n b an n in csen ek
m egvalósítva (ez é rt a C.4. áb rá n sincsenek feltü n te tv e ) az IN és OUT utasításo k . C.4.2. Logikai, bit- és léptető műveletek
E zek v alójában m ozg ató u tasításo k B /K eszközök felé és felől. A z im plicit cím
m indig az AX regiszter, a m áso d ik o p e ra n d u s p ed ig a kiválasztott eszközregiszter A k ö v etk ező blokk az előjel-kiterjesztés, negálás, logikai k o m plem ens, növelés
portszám a. és csö k k en tés u tasításo k at tartalm azza. A z előjel-kiterjesztő u tasításo k n ak nincs
A C.4. á b ra m ásodik c so p o rtjáb a az összead ó és kivonó u tasításo k tarto zn ak . explicit o p e ran d u su k , h an em a DX; AX vagy az AH: AL regiszter összetételek k el d o l­
E zek m indegyike ugyanazt a h áro m o p eran d u sk o m b in á ció t h asználja, m in t a goznak. A cso p o rt többi u tasításán ak egyetlen o p e ra n d u sa bárm ely effektív cím en
MOV: effektív cím ről reg iszterb e, reg iszterb ő l effektív cím re és k o n sta n st effektív leh et. A NEG, az INC és a DEC utasításo k az elvárt m ód o n h a tn a k a flagekre, kivéve,
cím re. E zért a táb lázat O perandusok o szlo p án ak ta rta lm a r-^e , e -^ r és e - ^ # . M ind hogy a n övelő és csö k k en tő u tasítás nincs hatással az átvitel-flagre, am i elég v á ra t­
a négy u tasításnál az O túlcsordulás-flag, az S előjel-flag, a Z zéró flag és a C átvi­ lan, és am it néh án y an tervezési h ibának is tartan ak .
tel- (carry) flag az u tasítás e red m én y étő l függően állítódik be. E szerin t p é ld áu l az A k ö v etk ező u tasításb lo k k a két o p eran d u sú logikai csoport, am elyek közül
O ak k o r kerül b eállításra, ha az e red m én y a re n d e lk e z é sre álló szám ú b iten nem m in d en u tasítás az elvárt m ó d o n m iíködik. A z eltoló és fo rg ató cso p o rtb an m in­
áb rázo lh ató helyesen, ha viszont áb rázo lh ató , a k k o r az O törlő d ik . A m ik o r a leg­ d en m űv elet c é lo p e ran d u sa egy effektív cím , a fo rrá so p e ra n d u s azo n b an vagy a CL
nagyobb 16 bites (elő jeles) szám ot, 0x7fff (decim ális 3 2 767), h o zzáad ju k ö n m a g á ­ b á jtreg iszter, vagy az 1 szám . A z elto lások m ind a négy flaget m ódosítják, m íg a
hoz, az ered m én y n em áb rá zo lh a tó 16 bites előjeles szám ként, e z ért a h ib á t az O fo rg atáso k csak az átvitelt és a túlcsordulást. A z átvitel-flagbe m indig az a bit k e ­
beállítása jelzi. E zek n él az u tasításo k n ál a tö b b i állapot-flaggel is h aso n ló dolgok rül, am ely az eltolás vagy fo rg atás irányától függően a legm agasabb vagy a legala­
tö rtén n ek . H a egy u tasítás h atással van egy állapot-flagre, ak k o r azt a m egfelelő csonyabb h ely érték ű b itről kilép vagy k ifo rg atásra kerül. A carryn keresztül tö r té ­
oszlopban egy csillag (*) jelzi. A z ADC és SBB u tasítá so k b a n az u tasítás v é g re h a jtá ­ n ő fo rg atáso k, azaz az RCR, RCL, RCRB és RCLB esetén az átvitelbit az effektív cím en
sa előtti átvitel-flag egy ex tra 1 (vagy 0) é rte k k é n t jelen tk ezik , am it az elő ző m ű ­ ta lá lh a tó o p eran d u ssal együtt egy 17 bites vagy 9 bites k ö rk ö rö s lé p tető regiszter
veletből tö rté n ő átv iteln ek te k in th e tü n k . E z az eszköz k ü lö n ö sen hasznos 32 bites ö sszeté te lt alkot, am i lehetővé teszi a többszavas lép te té se k e t és forgatásokat.
vagy m ég hosszabb egészek tö b b szón tö rté n ő áb rázo lására. A z ö sszead ásn ak és a A z u tasításo k k övetkező cso p o rtja a fe ltételb itek et (jelző, flag) m anipulálja.
kivonásnak is létezn ek b ájto s változatai. E zek n e k az elsődleges célja feltételes ugrások előkészítése. A kétirányú nyíl ( ^ )
734 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C.4. A 8088 u t a s í t á s r e n d s z e r e 735

jelöli az összchasü n iító vagy e llen ő rző u tasításo k k ét o p e ra n d u sá t, m elyek a m ű ­ sítást h asználjuk arra, hogy a CX-be a m egfelelő érté k kerüljön, és u tá n a hajtunk
velet során nem változnak. A TEST m ű v eletb en az o p e ra n d u so k k ö zötti logikai ÉS végre egy REP MOVSB-t. E zt a C.8. fejezetben a string m ásoló péld áb an szem léltet­
k erül kiszám ításra, így állítva be vagy törölve a zero és az előjel-flageket. A ki­ jük. E zen u tasításo k m indegyikénél külön figyelm et kell fo rd ítan i az ES szegm ens­
szám íto tt érték m aga sehol sem táro ló d ik , az o p e ra n d u so k nem v áltoznak. A CMP reg iszterre, hacsak az ES és a DS nem azonosak. A z értelm ező b en a kis (sm all) m e ­
u tasításb an az o p e ra n d u so k különbsége kerül kiszám ításra, és az ö sszehasonlítás m ó ria m o d ellt használjuk, így ES = DS = SS.
ered m én y ek én t m ind a négy flag b eállító d ik vagy tö rlő d ik . A z irány-flag - ami
m egh atáro zza, hogy az Sl és Dl reg iszte rek n ö v ek ed jen ek vagy csök k en jen ek string
u tasításo k h a tá sá ra - az STD utasítással állíth a tó be, és a CLD utasítással tö rö lh ető . C.4.4. Ugró és eljáráshívó utasítások
A 8088-asban van m ég egy p a ritá s -fla g (p a rity flag) és egy k ieg é sz ítő á tv ite l-fla g
(a u x ilia ry c a r r y flag) is. A paritás-flag az ered m én y p a ritá sá t adja m eg (p áratlan A z u tolsó blokk a feltételes és feltétel nélküli ugrásokról, szubrutin hívásokról és
vagy páros). A kiegészítő átvitel-flag azt m ondja m eg, hogy a cél alsó (4 bites) b ájt­ az azokból tö rté n ő visszatérésekről szól. Itt a legegyszerűbb m űvelet a JMP u ta ­
részéről (nibble) tö rté n t-e átvitel. L éteznek m ég továbbá az LAHF és SAHF utasítások, sítás. Ez egy cím két vagy egy bárm ely effektív cím en ta lá lh a tó ta rta lm a t k ap h at
am elyek a flag-regiszter alacsony helyértékű b ájtját az AH-ba, illetve o n n an visszatöl- c élo p e ran d u sk én t. M eg különböztetjük a k ö z eli u g r á s o k a t ( n e a r ju m p ) és a táv o li
tik. A túlcsordulás-flag a feltételkód-regiszter m agas helyértékű bájtjában van, így u g r á s o k a t ( f a r ju m p ) . K özeli ugrásb an a cél az aktuális kódszegm ensben ta lá lh a ­
ezek az utasítások ezt nem m ásolják. E zek az utasításo k és flagek főként a 8080-as tó. am ely nem változik a m űvelet során. A d irek t (cím kés) v álto zatb an a kódszeg-
és 8085-ös processzorokkal való visszafelé kom patibilitás b iztosítására szolgálnak. m en s-rcg iszter új érték e a cím ke u tán i u tasítás cím e. A z effektív cím es válto zatb an
a m em ó riáb ó l tö ltü n k be egy hosszú szőt (long), ebből az alsó szó a célcím kének,
míg a felső az új kódszegm ens-regiszter é rté k é n e k felel m eg.
C.4.3. Cíklusszervezés és ismétlődő string műveletek E z a m eg k ü lö n b ö ztetés te rm ész etesen nem m eglepő, A 20 b ites cím tartom ány
tetsző leg es cím ére ugráshoz 16 bitnél tö b b m eg ad ásáró l is gondoskodni kell.
A következő blok k ta rtalm azza ciklusszervcző u tasításo k a t. A LOOP u tasítás eggyel E n n e k m ó d ja a CS és PC reg iszterek új érték k el való feltöltése.
csökkenti a CX reg iszte rt, m ajd ha az ered m én y n em 0, elu g rik (általáb an visszaug­
rik) a m egjelölt cím kére. A LOOPZ, LOOPE, LOOPNZ és LOOPNE u tasításo k a z éró 11a-
get is ellenőrzik an n ak e ld ö n té sé re , hogy vajon a ciklust a CX reg iszte r 0-vá válása Feltételes ugrások
elő tt m eg kell-e szakítani.
A LOOP utasításo k cé lo p e ra n d u sá n a k az utasításszám láló aktuális pozíciójától A 8088-as 15 feltételes ugrással rendelkezik, ezek közül n éh án y n ak több neve is
szám ított 128 b ájto n belü l kell lennie, m e rt az u tasítás csak egy 8 bites előjeles e l­ van (p éld áu l az „UGRÁS HA NAGYOBB VAGY EGYENLŐ" ugyanaz az utasítás, m int az
tolást tartalm az. Az á tu g o rh a tó utasítások szám a (e lté rő e n a b ájto k tó l) p o n to san „UGRÁS HA NEM KISEBB"). E zek et a C.5. áb rán soroljuk fel. M indegyikük az ad o tt
nem a d h a tó m eg, m ert a k ü lö n b ö ző u tasítá so k hossza k ü lö n b ö ző . Á lta lá b an az e l­ utasítástó l legfeljebb 128 bájto s távolságra képes elugrani. H a a cél ezen a ta r to ­
ső b ájt definiálja az u ta sítá s típ u sát, és v an n ak is olyan u tasításo k , am elyek csak m án y o n kívülre esik, ak k o r egy átugrásos k o n stru k ció t kell alkalm azni. Ilyen e se t­
egyetlen b ájto t foglalnak el a k ó dszegm ensben. G y ak ran azo n b a n a m ásodik bájt b en egy e llen tétes feltételű u g ró u tasítást használu nk a rra, hogy a következő u ta sí­
adja m eg az u tasítás reg iszte reit és reg iszte rm ó d jait, ha p ed ig az u tasítás elto lást tást átu g o rju n k . H a a következő utasítás egy feltétel nélküli ugrás a terv ezett u ta ­
vagy közvetlen a d a to t is tartalm az, az u tasítás hossza a k á r négy vagy h at b ájtra is sításra, ak k o r en n ek a k é t u tasításn ak az együttes h atása egy a terv ezett típusú, de
n ő h et. Az átlagos u tasításh o ssz tipikusan kb. 2,5 b á jt u ta sításo n k é n t, te h á t a LOOP hosszabb távú ugrás. P éldául a:
n em tu d kb. 50 u tasításn ál táv o lab b ra visszaugrani.
String u tasításo k szám ára létezik néh án y speciális ism étlő m echanizm us. E zek jbtavolicimke
a REP, REPZ és a REPNZ. A C.4. á b ra k övetkező b lo k k ján ak ö t string u tasítása m ind
im plicit cím ekkel dolgozik, és m indegyik az a u to m a tik u s növelés vagy csö k k en ­ helyett a
tés m ó d b an használja az indexreg iszterck et. E zen u ta sításo k m indegyikében az Sl
regiszter az a d a ts z e g m e n s re ( d a ta se g m e n t), a Dl reg isz te r viszont az e x tr a sz e g ­ JNB If
m e n s re (e x tra se g m e n t) m u tat, am elynek a bázisa ES. A MOVSB a REP u tasításokkal JMPTAVOLICIMKE
kom binálva teljes strin g ek egyetlen u tasítással tö rté n ő m o zg atására h aszn álh ató .
A string hosszát a CX reg iszterb en kell m egadni. M ivel a MOVSB u tasítás nincs h a ­
tással a flagekre, így a m áso ló m űvelet k özben a REPNZ-vel n em le h e t az A S C II k ó drészletet használjuk. M ás szóval, ha nem lehetséges egy JUMP BELOW (UGRÁS HA
nulla b á jto t ellenőrizni. E z azo n b an k ik ü szö b ö lh ető , h a elő szö r a REPNZ SCASB u ta ­ ALATTA VAN) végrehajtása, akkor elhelyezünk egy JUMP NŐT BELOW (UGRÁS HA NINCS
ALATTA) utasítást egy közeli 7-es cím kére, majti ezt követi egy feltétel nélküli ugrás
C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S
C.4. A 8088 U T A SÍT Á SR EN D SZ ER E 737
736

a TAVOLICIMKE-re. A hatás ugyanaz, csak egy kicsit több helyet és időt igényel. A z as­ C.4.5. Szubrutin hívások
sem bler autom atikusan legenerálja ezeket az átugrásos konstrukciókat, ha a cél vár­
A 8088-as külön utasítást használ, az assem bly nyelvben általáb an szu b ru tin n a k
hatóan túl távoli. A pon to s szám ítás azonban kicsit ravasz. Tegyük fel, hogy a távol­
n ev ezett, eljárások hívására. H aso n ló an az ugró u tasításokhoz, léteznek közeli hí­
ság a h a tá r közelében van, de néhány köztes utasítás szintén feltételes ugrás. A külső
nem oldható fel addig, am íg a belsők m ére te nem ism ert stb. A biztonság kedvéért az vás (near call) és távoli hívás (far call) utasítások. A z értelm ező b en csak a közeli
hívás van m egvalósítva. A célo p e ran d u s vagy egy cím ke, vagy egy effcktív cím en
assem bler inkább az óvatosság oldalán vétkezik. N éh a akkor is átugrásos konstrukci­
találh ató . A szubrutin hívásához szükséges p a ra m é te re k e t fo rd íto tt so rren d b en
ót generál, am ikor az nem lenne feltétlenül szükséges. C sak ak k o r generál közvetlen
feltételes ugrást, ha teljesen biztos abban, hogy a cél m egfelelő távolságon belül van. helyezzük a v erem re, ahogy azt a C.6. áb ra is m u tatja. A z assem bly nyelvben a
A legtöbb feltételes ugrás az állap o t-flag ek tő l függ, és egy összehasonh'tó vagy p a ra m é te re k e t általáb an argum entum oknak hívjuk, de ezek felcserélh ető eln ev e­
ellen ő rző utasítás e lő /i m eg. A CMP u tasítás kivonja a fo rrást a célo p eran d u sb ó l, zések. E z e k et a v erem b e írásokat követi a CALL u tasítás v égrehajtása. A z utasítás
m ajd b eállítja a feltételk ó d o k at, és eld o b ja az ered m én y t. Bgyik o p e ra n d u s sem elő szö r elhelyezi a v erem te te jé re az aktuális u tasításszám lálót, így kerül e lm e n ­
változik. H a az e re d m é n y nulla vagy az elő jelbitje be van állítva (azaz negatív), tésre a visszatérési cím. A visszatérési cím az a cím , am elyen a hívó ru tin n ak foly­
a m egfelelő flag-bitek b eállító d n ak . H a az ered m én y n em áb rá z o lh ató a re n d e l­ ta tó d n ia kell, m iu tán a szubrutin visszatér.
kezésre álló szám ú biten , a tú lcsordulás-flag k erül b eállításra. H a a legm agasabb E z u tán vagy a cím kéből, vagy az effektív cím ről b etö ltő d ik az új u tasításszám lá­
hely érték ű biten átvitel keletkezik, azt az átvitel-flag jelzi. A felté tele s ugrások ló. H a a hívás távoli, a k k o r a CS regiszter m ég a PC elő tt kerül a verem be, a közvet­
ezen bitek m indegyikét ellen ő rizh etik . len ad atb ó l vagy az effektív cím ről az u tasításszám lálóba és a kódszegm ens-regisz-
H a az o p eran d u so k a t előjelesk én t kezeljük, ak k o r a „NAGYOBB MINT" (GREATER terb e is új é rté k töltődik. Ezzel fejeződik be a CALL utasítás.
THAN) és a „KISEBB MINT" (LESS THAN) u tasításo k at kell használnunk. H a előjel n él­ A RÉT v isszatérő u ta sítá s eg yszerűen csak kiveszi a v erem b ő l a visszatérési cí­
küliek, akkor a „FELETTE" (ABOVE) és „ALATTA" (BELOW) v á lto zato k at kell használni. m et, azt e ltá ro lja az u ta sításszám láló b an , és a p ro g ra m a CALL u ta sítá st közvet­
len ü l k ö v e tő u tasítással folytatódik. N é h a a RÉT u tasítás közvetlen a d a tk é n t egy
pozitív szám o t is ta rtalm az. Ezt a szám o t úgy tek in tjü k , m in t a hívás e lő tt a v e­
Utasítás Angol leírás Leírás M ikor ugrik
rem b e tá ro lt a rg u m e n tu m o k b ájtjain ak szám át, és ezt az SP-hez hozzáadva tö r ­
JN A JB E Nőt Above, Below or Equal Nem nagyobb, CF=1 vagy ZF=1
Alatta vagy egyenlő té n ik m eg a v erem ta k a rítá sa . A távoli v álto zatb an , a RETF-ben, a kódszegm ens-
JN B JA E JN C Nőt Below, Above or Equal, Nem alatta. Felette vagy CF=0 reg iszte r, ahogy az elv árh ató , a v erem b ő l az u tasításszám láló u tán kerü l kio lv a­
Nőt Carry egyenlő. Nincs átvitel sásra.
JE, JZ Equal, Zero Egyenlő, Nulla ZF=1 A szu b ru tin belsejéb en e lé rh e tő n e k kell lenni az arg u m en tu m o k n ak . E z é rt a
JN L E JG Nőt Less than or Equal, Nem kisebb vagy egyenlő, SF=OF és ZF=0 szu b ru tin gyakran azzal kezdődik, hogy verm eli a b ázism u tató t, és az SP aktuális
Greater than Nagyobb é rté k é t b em ásolja a BP-be. Ez azt jelen ti, hogy a b ázism u tató a saját előző é rté k é t
JG E JN L Greater than or Equal, Nőt Nagyobb vagy egyenlő, SF=OF ta rta lm az ó cím re m utat. E k k o r a visszatérési érté k a BP-f-2 cím en, az első és m á ­
Less than Nem kisebb sodik arg u m en tu m p ed ig re n d re a BP-t-4 és BP-t-6 cím eken találh ató k . H a az eljá­
JO Overflow Túlcsordulás 0F=1 rásn ak szüksége van lokális változókra, ak k o r a szükséges bájto k szám át levonjuk
JS Sign negative Negatív előjel SF=1 a v e rem m u tató b ó l, és a változók a bázism utatóval és negatív eltolással cím ezhe-
JCXZ ex is Zero A ex nulla cx=o tők. A C.6. áb rá n lá th a tó p éld áb a n h áro m egyszavas lokális változó van, re n d re a
JB JN A E JC Below, Nőt Above or Equal, Alatta, Nem felette vagy CF=1 B P-2, B P -4 és B P-6 cím eken. így az aktuális arg u m en tu m o k és lokális változók
Carry egyenlő. Van átvitel
teljes h alm aza e lé rh e tő a BP regiszteren keresztül.
JN B E JA Nőt Below or Equal, Above Nem alatta vagy egyenlő. CF=0 ésZF=0
A v erem a szokásos m ód o n haszn álh ató részered m én y ek m e n tésére vagy a k ö ­
Felette
v etkező hívás arg u m en tu m ain ak előkészítésére. A szubrutin által használt v erem ­
JN E JN Z NonEqual, NonZero Nem egyenlő. Nem nulla ZF=0
m é re t k ü lö n kiszám ítása nélkül, a visszatérés e lő tt a v erem hely reállíth ató úgy,
JUJNGE Less than. Nőt Greater or Kisebb, Nem nagyobb vagy SF;^OF
hogy a b ázism u tató t a v erem m u tató b a töltjük, m ajd a régi BP é rté k e t visszaállítjuk
Equal egyenlő
JLE JN G SF;^OF vagy
a v erem ből, és végül vég reh ajtju k a RÉT utasítást.
Less than or Equal, Nőt Kisebb vagy egyenlő.
Greater than Nem nagyobb ZF=1 Szubrutinhívás közben a processzor regisztereinek é rték ei általáb an m egváltoz­
JNO NonOverflow Nincs túlcsordulás OF=0 nak. A helyes gyakorlat az, ha ragaszkodunk bizonyos szabályokhoz, m int például
JNS Nonnegative Nem negatív SF=0 ahhoz, hogy a hívó eljárásn ak nem kell tu d n ia a hívott ru tin által használt regisz­
terek rő l. F eltételezzük azt, hogy az AX és a DX a hívott ru tin b an m egváltozhat. H a
C.5. ábra. Feltételes ugrások
738 C) A S S E M B L Y N Y ELV Ű P R O G R A M O Z Á S
C.4. A 8088 u t a s í t á s r e n d s z e r e 739

BP+8 Fizt a tiz en k ét ru tin t a szabványos hívási szekvenciával leh et aktiválni. E lő szö r a
BP+6 2. argumentum szükséges arg u m en tu m o k at kell fo rd íto tt so rren d b en a v erem re helyezni, aztán a
BP+4 1. argumentum hívás so rszám át kell a v erem re ten n i, és végül az o p e ran d u so k nélküli SYS re n d s z e r­
BP+2 Visszatérési cím csap d a (system tra p ) u tasítást kell végrehajtani. A rendszei ru tin az összes szük­
BP régi BP -BP séges in fo rm áció t a v erem b en találja, b eleértv e az igényelt ren dszerszolgáltatás
BP-2 1. lokális változó hívási so rszám át is. A visszatérési érté k vagy az AX regiszterbe vagy - ha az e re d ­
BP-4 2. lokális változó m ény túl hosszú - a DX: AX regiszter-összetételbe kerül.
BP-6 3. lokális változó A tö bbi regiszter g a ra n tá lta n m egőrzi é rté k é t a SYS utasítás alatt. E zen tú lm e­
BP-8 részeredmény -SP n ő en a hívás u tán az arg u m en tu m o k m eg m indig a v erem b en lesznek. A verem -
m u ta tő t a hívás u tán m eg kell igazítani (a hívónak), hacsak egy következő hívás­
C.6. ábra. Pé\da a veremre hoz nincs ráju k szükség.
K ényelm i szem pontból a ren dszerhívások neveit az assem b ler pro g ram elején
ezek közül valam elyik reg iszte r é rté k e s in fo rm ác ió t tartalm az, a k k o r é rd e m e s azt k o n stan so k k én t definiálhatjuk, így azokat szám ok helyett nevekkel hívhatjuk. A
a hívó ru tin b an a v erem b e helyezni m ég az arg u m e n tu m o k verm clese elő tt. H a a p éld ák b a n m ajd szám os rendszerhívást tárgyalunk, úgyhogy e b b en a fejezetb en
szubrutin m ás re g iszte rek et is használ, ak k o r azo k at rö g tö n a szub ru tin elején a csak a legszükségesebb részletek et írjuk le.
v erem re teh etjü k , és a RÉT u tasítás elő tt visszatö lth etjük . M ás szóval, jó szabály az, E zek b en a ren d szerh ív áso k b an a fájlokat vagy az OPEN vagy a CREAT hívással
hogy a hívó m enti az AX és DX reg iszte rek et, ha azok valam i fo n to sa t tartalm azn ak , n y ith atju k m eg. M in d k ét ese tb e n az első arg u m en tu m a fájl nevét tartalm azó
a hívott pedig m en ti az összes tö bbi reg iszte rt, am elyet felülír. slring k e z d e tén ek cím e. A z OPEN hívás m ásodik a rg u m en tu m a 0 (ha a fájlt olva­
sásra kell m egnyitni), 1 (ha írásra kell m egnyitni) vagy 2 (ha m in d k ettő re). H a a
fájlra az írást is engedélyezni kell, és az m eg nem létezik, ak k o r a hívás létrehozza.
C.4.6. Rendszerhívások és rendszerszubrutinok A CREAT hívás egy üres fájlt hoz létre a m ásodik arg u m en tu m n ak m egfelelő jo g o ­
sultságokkal. M ind az OPEN, m ind a CREAT hívás egy kicsi egész érték k el té r vissza
A p ro g ram o k at egy o p eráció s re n d sz e r fe le tt fu tta tju k azért, hogy a fájlok m egnyi­ az AX reg iszterb en , am elyet f á jlle író n a k (file d e s c rip to r ) hívunk, és am ely a fájl ol­
tását, lezárását, olvasását és írá sát elk ü lö n íth essü k az assem bly p ro g ram o zástó l. vasásához, írásához és lezárásáh o z h aszn álh ató . A negatív visszatérési é rté k a hí­
A z é rtelm ező h ét ren d szerh ív ást és ö t függvényt biztosít, hogy tö b b p la tfo rm o n is vás sik ertelen ség ét jelzi. A p ro g ram in d ításak o r h áro m fájl m á r n y ito tt állap o tb an
futhasson. E zek e t so ro lja fel a C.7. ábra. van az alábbi fájlleírókkal: 0 a szabványos b em en e t, 1 a szabványos k im en et és 2 a
szabványos h ibakim enet.
Sor­ Név Argum en­ Visszatérési Leírás A READ és WRITE hívás ugyanazt a h árom arg u m e n tu m o t várja: a fájlleírót, az
szám tum ok érték
a d a to k a t tá ro ló p u ffért, v alam int az átv ien d ő b ájto k szám át. M ivel az a rg u m en ­
5 OPEN *name, 0/1/2 fájlleíró Fájl megnyitása
tum o k fo rd íto tt so rren d b en k erü ln ek a v erem re, először a bájto k szám át, m ajd a
8 _CREAT *name, *mode fájlleíró Fájl létrehozása
3 _READ fd, buf, nbytes bájtok száma nbytes bájt beolvasása a buf pufferbe p u ffe r k e zd e tén ek cím ét, aztá n a fájlleírót, és végül a hívás so rszám át (READ vagy
4 _WRITE fd, buf, nbytes bájtok száma nbytes bájt kiírása a buf pufferböl WRITE) kell a v erem re helyezni. A z arg u m en tu m o k n ak ezt a verm elési so rren d jét a
6 _CLOSE fd 0, ha sikeres Az fd fájlleíróval adott fájl lezárása szabványos C nyelvű hívásokkal m egegyezőre választottuk, m int p éld áu l ahogy a
19 _LSEEK fd, offset(long), pozíció (long) Fájlmutató mozgatása
0/1/2 read(fd, buffer, bytes);
1 _EXIT status Fájlok lezárása és a processzus leállítása
117 ^GETCHAR beolvasott Karakter beolvasása a szabványos
karakter bemenetről m egvalósítása a p a ra m é te re k e t a bytes, buffer és végül az fd so rren d b en verm eli.
122 _PUTCHAR char kiírt bájt Karakter kiírása a szabványos kimenetre A CLOSE hívásnak csak a fájlleíró ra van szüksége, és az AX-ben 0-val té r vissza,
127 _PRINTF *format, arg Formázott kiírás a szabványos kimenetre ha a fájlt sik eresen lezárta. A z EXIT hívás egy kilépési k ó d o t vár a v erem ben, cs
121 _SPRINTF buf, *format, arg Formázott kiírás a buf pufferbe
nem té r vissza.
125 _SSCANF buf, ^formát, arg Argumentumok beolvasása a buf
pufferböl Az LSEEK hívás m ódosítja a nyitott fájlban az o lv a s á s /ír á s m u ta tó t. A z első arg u ­
m en tu m a fájlleíró. M ivel a m ásodik arg u m en tu m egy hosszú egész (long), annak
először a m agas, m ajd az alacsony h elyértékű szavát kell a v erem re tenni, m ég ak ­
C.7. ábra. A z értelmezőben elérhető néhány UNIX-rendszerhívás és -szubrutin
k o r is, ha az eltolás elfér egyetlen szóban. A h arm ad ik arg u m en tu m jelzi, hogy az
új olvasás/írás m u ta tó t a fájl k ezd etéh ez képest (0), az aktuális pozícióhoz képest
740 C) A S S E M B L Y N Y ELV Ű P R O G R A M O Z Á S
C.5. A Z A S S E M B L E R 741

(1), vagy pedig a fájl végéhez k é p est (2) kell kiszám ítani. A visszatérési érté k a ESEG MOV DX,(BX)
m u tató n ak a fájl k ez d e té h e z viszonyított új pozíciója, am ely egy hosszú egészként
a DX: AX regiszte r ö sszetéte lb en találh ató . Utasítás elő ször az extra szegm ens használatával kiszám ítja a BX cím et, m ajd a n ­
E zzel elérk eztü n k azo k h o z a függvényekhez, am elyek nem rendszerhívások. n ak a ta rta lm á t tölti a DX-bc. N em b írá lh a tó felül azo n b an a verem szegm ens az
A GETCHAR függvény beolvas egy k a ra k te rt a szabványos b e m en e trő l, és elh ely e­ SP-t h aszn áló cím ek e setén , v alam int az extra szegm ens a Dl regisztert használó
zi AL-ben, AH-t p edig kinullázza. H ib a e seté n az egész AX szó é rté k e -1 lesz. A string u tasításo k eseten . A MOV u tasításb an ugyan h aszn álh ató k az SS, DS, és ES
PUTCHAR függvény egy b á jto t ír a szabványos k im e n etre . S ikeres írás e seté n a visz- szeg m en sreg iszterek, szegm ensregiszterbe azonban n em leh et közvetlen a d a to t
szatérési érték a kiírt bájt, sik ertelen ség e se té n -1 . tö lten i, és azok az XCHG miTveletben sem használhatók. S zegm ensregiszterek vál­
A PRINTF függvény fo rm á z o tt in fo rm ác ió t nyom tat. A z első a rg u m e n tu m a k im e­ to ztatásáv al, illetve szegm ensregiszter-választással pro g ram o zn i elég bonyolult, és
n et fo rm ázásán ak m ó d ját m eg ad ó fo rm átu m -strin g cím e. A „ % d ” azt jelzi, hogy a m ik o r csak lehet, k erü len d ő . Az értelm ező rö g zített szegm en sregisztereket hasz­
a v erem b en a következő arg u m en tu m egy egész szám , am elyet decim ális je lö lésre nál, ezért itt ezek a p ro b lém ák nem jö n n e k elő.
konvertálva kell k inyom tatni. H a so n ló an a „% x” h ex adecim álisra, a „ % o ” pedig A leg tö b b szám ítógépben rend elk ezésre állnak leb eg ő p o n to s utasításo k is, néha
o ktálisra konvertál. E zen felül a „% s” azt jelzi, hogy a követk ező a rg u m en tu m egy közvetlenül a p ro cesszorban, n éh a egy külön társp ro cesszo rb an , n éh a pedig csak
null-végű string, am elyet a string k ezd ő cím én ek v erem b e helyezésével a d u n k át a szo ftv erb en egy speciális leb eg ő p o n to s csapdán keresztül értelmezv-e. E zek n ek a
hívásnak. A verm en talá lh a tó további arg u m e n tu m o k szám án ak illeszkednie kell a tárgyalása szintén nem része e függeléknek.
fo rm átu m -strin g b en ta lá lh a tó konverziós jelzésekhez. P éld áu l a

printf("x=%d és y=%d\n", x, y);

C.5. Az assembler
hívás a stringet a fo rm átu m -strin g b en a „ % d ” helyére a z x és_y n u m erik u s é rté k e it
helyettesítve nyom tatja ki. Ism ét, a C nyelvvel való k tim patibilitás é rd e k é b e n az A 8088-as architektúra tárgyalásának végére értünk. K övetkező tém ánk a 8088-as as­
a rg u m en tu m o k v erem b e k erü lési so rre n d je „y”, „x” és végül a fo rm átu m -strin g . sem bly nyelvű program ozását lehetővé tevő szoftver, konk rétan az assembly nyelvű
E n n e k az oka az, hogy a p/77!í/változó szám ú p a ra m é te rre l hívható, és azo k at fo r­ program ozás tanulására általunk biztosított eszközök. E lőször az assem blert, m ajd a
d íto tt so rren d b e n a v erem b e helyezve a fo rm átu m -strin g m indig az u to lsó , és így nyom követőt m utatjuk be, m ajd végül használatukhoz néhány gyakorlati tudnivalót.
m indig b eazo n o síth ató . H a a p a ra m é te re k e t b alról jo b b ra v erm eln én k , a fo rm á ­
tum -string valahol m élyen a v erem b en h elyezkedne cl, és a p r//;//e ljá rá s n em tu d ­
ná, hogy hol keresse.
C.5.1. Bevezetés
Az SPRINTF hívásban az első a rg u m en tu m a puffer, am elybe a kim eneti string k e ­
rül a szabványos k im en et helyett. A többi arg u m en tu m a PRINTF-ével m egegj'ező. E gészen m o stanáig az u tasításo k ra m n e m o n ik o k k a l hivatkoztunk, azaz olyan rö ­
A z SSCANF hívás az SPRINTF fo rd íto ttja ab b an az é rtelem b en , hogy az első arg u m e n ­ vid, kön n y en m egjegyezhető szim bolikus nevekkel, m int az ADD és a CMP. A r e ­
tum egy string, am ely egész szám okat tartalm az decim ális, oktális, vagy hexadeci­ g isztere k et is szim bolikus neveken neveztük, m int p éld áu l az AX és a BP. A z olyan
m ális jelöléssel, a k övetkező arg u m en tu m pedig egy form átu m -strin g , am elyben a p ro g ram , am elyben az u tasításo k at és a reg iszte rek et szim bolikus nevekkel írjuk
konverziós jelzők találh ató k . A többi a rg u m en tu m a k o n v ertált info rm áció t fogadó le, a s s e m b ly n y e lv ű p r o g r a m . A z ilyen p ro g ra m fu tta tá sá h o z azt először át kell
m em óriaszavak cím e. E zek a ren d szerszu b ru tin o k nagyon változatosak, és le h e tő ­ alak ítani a C P U által é rte lm e z h e tő b in áris szám okká. A z assem bly nyelvű p ro g ­
ségeiknek részletes tárgyalása m essze tiilm u tat e függelék té m ak ö rén . A C.8. feje­ ra m o t b in áris szám okká alakító p ro g ram az a s s e m b le r . A z assem bler k im e n e té t
zetb e n több p éld áb an láth a tó , hogy külö n b ö ző helyzetekben hogyan h asználhatók. tá r g y m o d u ln a k (o b je c t file) nevezzük. Sok p ro g ram hív olyan szu b ru tin o k at, a m e ­
lyeket k o rá b b an fo rd íto tta k le és tárgym odul k önyvtárakban (library) tároltak.
E zek n ek a p ro g ram o k n ak a fu ttatásáh o z az újo n n an fo rd íto tt tárgym odull és az
C.4.7. Záró megjegyzések az utasításrendszerről általa h aszn ált könyvtári szu b ru tin o k at (am elyek szintén tárgym odulok) egy másik
p ro g ram m a l, a s z e rk e sz tő v e l (lin k e r) egyetlen v é g reh ajth ató b in áris fájllá kell ösz-
A 8088-as hivatalos definíciójában létezik egy s z c g m e n s re g is z te r-v á la s z tó (seg- szeszerkeszteni. A z átalak ítás csak ak k o r van készen, m ik o r a szerkesztő egy vagy
m e n t o v e rrid e ) p re fix , am ely lehetővé teszi, hogy k ü lönféle szegm ensekből k é p ez ­ több tárgym odulból elk észítette a fu tta th a tó bináris fájlt. A z o p eráció s ren d szer
zünk effektív cím eket. A zaz, a választást k övető első m em ó riacím k iszám ítása a ezu tá n m á r beolvashatja a m em óriába, és v ég reh ajth atja a fu tta th a tó bináris fájlt.
m egjelölt szegm en sreg iszterrcl tö rtén ik . P éld áu l az A z assem b ler első fe lad ata egy szim b ó lu m táb la (sjm b o l table) felépítése,
am ely segítségével a szim bolikus kon stan so k és cím kék nevei lek ép ezh ető k az
742 C) A S SE M B L Y N YELV Ű P R O G R A M O Z Á S
C.5. A Z A S S E M B L E R 743

általu k jelö lt bin áris szám okra. A p ro g ra m b a n közvetlenül definiált k o n stan so k


szegm ensbe kerül k im en et, a kód so ro k és a d atso ro k azonban k everten h aszn álh a­
m in d en feldolgozás n élkül elhely ezh ető k a szim b ó lu n itáb láb an . E zzel szem ben a
tók. F utási id ő b en a T E X T szegm ens a kódszegm ensbe, a DATA és a BSS szeg­
cím kék olyan cím ek et re p re z e n tá ln a k , am elyek é rté k e n e m azo n n al nyilvánvaló.
m en sek p ed ig (egym ást kö v ető en ) az ad atszegm ensbe kerülnek.
E zek érté k e in e k kiszám ításához az assem b ler so rró l so rra m egvizsgálja a p ro g ra ­
A z assem bly nyelvű p ro g ram bárm ely u tasítása vagy adatszava k ezd ő d h et cím ­
m ot. E zt hívjuk első m enetnek (first pass). E kíizben n yom on követi az ún. hely­
kével. C'ímke ö n m ag áb an is szerep elh et egy sorb an, ilyenkor ezt úgy tekintjük,
szám láló t (location counter), am ely et á ltaláb an a (p o n t) szim bólum m al je lö ­
m in th a a következő u tasítás vagy adatszó e lő tt állna. P éld áu l a:
lünk és pontnak (dót) ejtü n k . E b b en a m e n e tb e n m inden egyes m eg talált u tasítás
és m em óriafogialás e se té n a helyszám láló a talált elem m em ó riab eli táro lásá h o z CMP AX,ABC
szükséges m érclle l növekszik. így, ha az első k ét u tasítás re n d re 2 és 3 b ájtos, a k ­ JEL
k o r a h arm ad ik u tasításo n elh ely ezett cím ke a n u m erik u s 5 é rté k e t kapja. P éldául, MOV AX,XYZ
ha az alábbi k ód részlet egy p ro g ram k ezd e te , ak k o r az L é rté k e 5 lesz. L:

MOV AX,6
p ro g ram rész let e setén az L cím ke az őt követő u tasításra vagy ad atszó ra h iv at­
MOV BX,500
L:
kozik. K ét cím ketípus m eg en g ed ett. A z első cso p o rtb a ta rto z n a k a globális cím ­
kék, am elyek alfan u m erik u s azonosítók a végükön egy k ettő sp o n tta l (:). E zeknek
egyedinek kell lenni, és nem le h etn ek azonosak sem kulcsszavakkal, sem utasítás-
A m ásodik m enet (second pass) k ezd etén m in d en szim bólum n u m erik u s é rte ­
m nem o n ik k al. M ásrészről, csak a T E X T szegm ensben, h aszn álh atu n k lokális cím ­
ke ism ert. M ivel az u tasítás m n em o n ik o k n u m erik u s érté k ei szintén k o n stan so k ,
k ék et is, m elyek m indegyike egyetlen szám jegyből és az azt k ö v ető k ettő sp o n tb ó l
elk ez d ő d h et a kódgenerálás (code generation). A z u tasításo k egyesével ú jra b e o l­
(:) áll. Egy lokális cím ke tö b b szö r is elő fo rd u lh a t. H a a p ro g ram a:
vasásra kerü ln ek , és a b in áris é rté k ü k a tárg y m o du lb a íródik. A tárgym odul ak k o r
készül el, am ikor az u to lsó u tasítás is lefordult.
JE2f

u tasítá st tartalm azza, ak k o r az azt jelen ti, hogy UGRÁS HA EGYENLŐ elő re (forw ard)
C.5.2. Az ACK-alapú assembler, az as88 a követk ező lokális 2-es cím kére. H aso n ló an , a

E b b en a fejezetb en ré szletesen b e m u ta tju k az as88 assem b ler/szerk esztő p ro g ra ­


JNE4b
m ot, am ely e lé rh e tő a C D -R O M -m e llé k le te n , és am ely együttm íík ö d ik a nyomkci-
vetővel. E z az A m ste rd a m C o m p iler K it (A C K ) assem b ler, am ely M S -D O S - vagy
je le n té se az, hogy UGRÁS HA NEM EGYENLŐ vissza (backw ard) a legközelebbi 4-es
W indow s-assem blerek h ely ett U N IX -assem b lcrck m in tá já ra készült. A m egjegy­
cím kére.
zés szim bólum e b b en az assem b lerb en a felkiáltójel (!). A felk iáltó jelet követő
Az assem b ler m egengedi, hogy a k o n stan so k ra is szim bolikus nevekkel hivat­
dolgok a so r vegéig m egjegyzésnek m inősülnek, és nincsen h atá su k a k eletk ező
ko zzunk az alábbi szintaxis szerint:
tárgym odulra. A z assem b ler m egengedi az üres so ro k a t is, de azo k a t is ugyanúgy
figyelm en kívül hagyja.
azonosító = kifejezés
A z assem b ler a le fo rd íto tt k ód és a d a t tá ro lá sá ra h áro m k ü lö n b ö ző szegm enst
használ. E zek a szegm ensek a gép m em ó riaszeg m en seih ez kap cso ló d n ak . A z első
ahol az azo n osító egy alfanum erikus string, m int például;
a TEXT szegm ens (TEXT section), a p ro c e sszo ru tasításo k szám ára. A követk ező
a DATA szegm ens (DATA section) az ad atszeg m ensbe ta rto z ó m em ó ria azon ré ­
BLOCKSIZE = 1024
szének inicializálására, am ely az eljárás k e z d e té n ism ert. V égül a B SS (Block Star-
ted by Symbol) szegm ens az ad atszeg m en sb en táro lt, de n em inicializált (azaz 0-ra
M ivel eb b en az assem bly nyelvben m in d en azon o sító b an , csak az első nyolc k a ra k ­
inicializált) m em ó ria lefo g lalására szolgál. Ezek m indegyike saját helyszám lálóval
te r lényeges (m eg k ü lö n b ö ztető szerep ű ), ezért a B L O C K S IZ E és a B L O C K S ÍZ Z
(location co u n te r) rend elk ezik . A szegm ensek h aszn á la tán a k célja az, hogy az as­
ugyanaz a szim bólum , k o n k ré ta n a B L O C K S IZ . K onstansokból, nu m erik u s é rté ­
sem b ler felváltva g e n erálh asso n u tasításo k a t, m ajd a d a to k a t, aztán ú jab b u ta sí­
kekből és m űveleti jelek b ő l kifejezéseket k ép ezh etü n k . A cím kéket k o n stan so k ­
táso k at, m ajd m egint a d a to k a t stb., és végül a szerk esztő e ze k e t a d a ra b o k a t úgy
nak tek in tjü k, hiszen érté k ü k az első m en et végén m ár ism ert.
szerkeszthesse össze, hogy az összes u tasítás a kódszegm ensbe, az a d ato k pedig
A nu m erikus érté k leh et o k tális (0-val k ezdődő), d ecim ális vagy hexadecim ális
m ind az ad atszeg m en sb e k erü ljen ek . A z assem bly k ód m in d en sorából csak egy
(OX vagy Ox jelekkel k ezdődő). A hexadecim ális szám ok az a - f vagy A -F b e tű k e t
744 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C .5 .A Z A S S E M B L E R 745

használják a 10-15 érték e k jclö léscre. A z egész m űveleti je le k a *, / és a % , szó m ég egy nulla b á jto t is elhelyez a string végén. A strin g et m in d k ettő idézőjelek
re n d re az összeadásra, k ivonásra, szorzásra, o sztásra és n iarad é k k é p z é src . A logi­ k ö zö tt várja. A string-dcfiníciókban többféle k iterjesztett kód h asználható. E zek et
kai m űveletek a &, re n d re a b iten k é n ti ÉS (A N D ), biten k én t] VAGY (O R ) a C.9. á b ra tartalm azza. E zek en kívül bárm ely speciális k a ra k te r b eilleszth ető egy
és logikai k o m plem en s (N E M , N Ő T ) jelö lésére. K ifejezésekben a [ és ] szögletes fo rd íto tt p e r (backslash) k a ra k terrel oktális áb rázo lásb an , például a \377 (legfel­
záró jelek et h aszn álh atju k cso p o rto sításra. A cím zési m ód o k k al való k ev ered és el­ jeb b h áro m oktális szám jegy, nem szükséges vezető 0).
kerülése végett a k erek zá ró jelek et N E M haszn álh atju k .
A kifejezésekben a cím kéket érte lm e s m ó d o n kell kezelni. U tasításeím k ék et Kiterjesztett kód Leírás
nem leh et ad atcím k ék b ő l kivonni. K ét ö sszeh aso n líth ató cím ke k özötti különbség \n újsor (soremelés)
egy nu m erik u s érték , de sem a cím kék, sem ped ig azok k ü lönbsége nem használ­ \t tabulátor
h a tó k o n stan sk é n t szorzás!, osztási vagy logikai kifejezésekben. A k o n stan s d efiní­ W fordított per (backslash, \)
ciókban alk alm azh ató kifejezések p ro cesszo ru tasításo k b an is h a szn álh ató k k o n s­ \b visszalépés
tan sk én t, B izonyos assem b lerek ren d elk ez n ek a m ak ró zás lehetőségével, am ellyel \f lapemelés
több u tasítás egy cso p o rtb a fogva k ü lön névvel lá th a tó el, az as88 azo n b an ezt nem \r kocsi vissza
tám ogatja. \" idézőjel
M in d en assem bly nyelvben v an n ak bizonyos d irektívák, am elyek nem fo rd u ln ak
bináris k ó d ra, han em m agát az assem bly fo ly am ato t befolyásolják. E zek et p sz e u d o - C.9. ábra. Néhány az as88-ban megengedett kiterjesztett kód
u ta s ítá s o k n a k nevezzük. Az asS8 p szeu d o u tasításait a C.8. áb rá n soroljuk fel. .
A .SPACE p szeu d o u tasításn ak csak a helyszám lálót kell az arg u m en tu m b an m eg ­
Utasítás Leírás a d o tt szám ú b ájttal növelnie. E z a kulcsszó k ü lö n ö sen hasznos egy cím két k ö v e­
.SECT.TEXT A következő sorokat a TEXT szegmensben fordítsa tő en a BSS szegm ensben változók szám ára m em ó ria foglalására. Az .ALIGN kulcs­
.SECT .DATA A következő sorokat a DATA szegmensben fordítsa szó a helyszám lálót lép teti a legközelebbi 2, 4 vagy 8 bájtos h a tá rra eső m e m ó ria ­
■SECT.BSS A következő sorokat a BSS szegmensben fordítsa helyre, hogy a szavak, hosszú szavak stb. m egfelelő helyre k erülhessenek. V égül az
.BYTE Az argumentumokat bájtok sorozataként kezelje ■EXTERN kulcsszó azt jelzi, hogy a m egnevezett ru tin vagy m em óriahely a szerkesztő
.WORD Az argumentumokat szavak sorozataként kezelje szám ára külső h ivatkozásként áll m ajd rendelkezésre^ A definíciónak nem kell az
.LONG Az argumentumokat hosszú szavak (leng) sorozataként kezelje ak tu ális fájlb an szerep eln ie, az valahol m áshol is lehel, csak a szerk esztő n ek kell
.ASCII “str" str-t ascii-ként tárolja egy stringben záró nulla bájt nélkül tu d n ia a hivatkozást lekezelni.
.ASCIZ"str'' str-t ascii-ként tárolja egy stringben záró nulla bájttal B ár m aga az assem bler elég általános, ha a nyom követővel együtt használjuk,
.SPACE n A helyszámlálót léptesse előre n pozícióval bizonyos d o lgokra o d a kell figyelnünk. A z assem b ler a kulcsszavakat a k ár nagybe­
.ALIGN n A helyszámlálót léptesse előre a következő n bájtos határra tűs a k á r k isbetűs írásm óddal elfogadja, a nyom követő viszont m indig nagybetűsen
■EXTERN Az azonosító egy külső név jele n íti m eg. H aso n ló k ép p en , az assem bler m egengedi a „\r” (kocsi vissza) és a „\
n ” (so rem elés) k a ra k te re k e t is az új so r jelzésére, a nyom követő viszont m indig az
C.8. ábra. Az as88 pszeudoutasitásai u tó b b it használja. Továbbá an n ak ellen ére, hogy az assem bler képes kezelni a több
fájlra d a ra b o lt p ro g ra m o k a t is, a nyom követővel tö rté n ő h aszn álath o z az egész
A p szeudoutasításo k első blokkja azt a szegm enst h atá ro zz a m eg, am elyikben a p ro g ram n ak egyetlen, egy kiterjesztéssel ren d elk ező fájlban kell elhelyezked­
következő sorok at az assem b lern ek fel kell dolgoznia. Á ltaláb an az ilyen szegm ens ni. E zen belül fájlok b eillesztését a
követelm ényeket külön sorban adjuk m eg, és azok a k ó dban b árh o l elhelyezhetők.
M eg\'alósítási okokból m indig a T E X T szegm ens az első, ezt követi a DATA, m ajd #include fájlnév
a BSS szegm ens. E kezd eti hivatkozások u tá n a szegm ensek m á r tetszőleges so r­
ren d b en használhatók. E zen tú lm en ő en m in d en szegm ens első so rát el kell látni p aran ccsal leh et kérni. E b b en az e setb en a kívánt fájl szintén a kom b in ált „.$” fájl­
egy globális cím kével. Egyéb m egkötések nincsen ek a szegm ensek so rren d iség ére. ba íródik a k érés helyétől k ezdődően. A z assem bler ellenőrzi, hogy a b eilleszten ­
A m ásodik blok k b an lalálliató k az ad attíp u sjelző k az ad atszeg m en s .számára. d ő fájlt m á r feldolgozta-e, és csak egy p éldányt tölt be. Ez különösen hasznos, ha
Négy típus van: .BYTE, .WORD, .LONG, és string. Egy opcionális cím két és a pszcudo- tö b b fájl ugyanazokat a fejlécfájlokat használja. Ilyenkor a k o m binált forrásfájlba
u tasítás kulcsszavát k ö v ető en az első h á ro m típ u s a so r további részéb en konstans csak egy példány kerül beillesztésre. A fájl beillesztéséhez szükséges, hogy a # in c -
k ifejezéseknek vesszőkkel elválasztott listáját várja. A strin g ek re v o n atk o zó k ét lude a so r első tokenje legyen vezető szóközök nélkül, a fájl ú tv o n alát pedig idéző­
kulcsszó, az .ASCII és az .ASCIZ, csak annyiban k ü lö n b ö zn ek , hogy a m ásodik kulcs­ je le k k ö zö lt kell m egadnunk.
746 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C.6. A N Y O M K Ö V ETŐ 747

H a csak egyetlen fo rrásfájlu n k van, m o n d ju k a pr.s, a k k o r feltételezzü k , hogy va u tá n a d h a tó m eg idézőjelek között. A z ad atdefiníciókra használt cím kéket nem
a p ro jek t neve pr, a k o m b in ált fájl p edig a p r $ lesz. H a egynél tö b b forrásl'ájlunk követi k e ttő sp o n t. N agy m em ó ria d a ra b o k a t a DUP kulcsszóval inicializálhatunk,
van, ak k o r az assem b ler az első fájl n ev én ek tö v ét tek in ti a p ro jek t nev én ek , és am elyet a d arabszám előz m eg, és az iniciális érték követ. P éldául a:
használja a fájl d efiniálásához, am elyet u tá n a a fo rrásfájlo k összem ásolásával
állít elő. E z a viselkedés fclíjlb írálh atő a p a ra n csso ro n az első forrásfájl m e g ad á ­ LABELDB 1000 DUP (0)
sát m egelőzően m eg ad o tt ,,-o p ro jn a m e ” kapcsolóval, am ik o r is a kom binált fájl a
projnam e.S lesz. Utasítás a LABEL c ím k é tő l k e z d ő d ő e n 1000 bájtnyi m e m ó r i á t inicializál n u lla b á j ­
M egjegyezzük azo n b an , hogy a b e illesztett fájlok, és egynél tö b b forrásfájl hasz­ tokkal.
n á la tá n a k v annak h átrán y ai is. A cím kéknek, v álto zó k n ak és k o n sta n so k n a k az E zen felü l, a szu b ru tin o k cím kéit sem k e ttő sp o n t zárja, han em a PROC kulcsszó.
összes fo rrásb an k ü lö n b ö ző n ek kell lenni. E z en kívül, a ténylegesen fo rd ítá sra A szu b ru tin végén pedig a cím két az ENDP kulcsszóval követve m eg kell ism ételni,
k erü lő fájl a projnarne.$, te h á t arra v o n atk o zn ak az assem b ler által a hibák és fi­ így az assem b ler ki tu d ja kö v etk eztetn i a szu b ru tin p o n to s h ató k ö rét. L okális cím ­
gyelm eztetések jelz é sek o r kiírt sorszám ok. N agyon kis p ro je k te k ese tén n é h a az a k é k e t nem tám o g atn ak .
legegyszerűbb, h a az egész p ro g ra m o t egyetlen fájlban helyezzük, és elk erü ljü k a A z u tasításo k kulcsszavai a M A SM , a TASM , és az as88 esetén m egegyeznek. A
# in clu d e használatát. k é to p era n d u sú utasításoknál a fo rráso p eran d u s m indegyiknél a célo p e ran d u s u tán
következik. Szokásos gyakorlat azonban, hogy a függvények arg u m en tu m ait r e ­
g iszterek b en adják át, nem pedig a verm en keresztül. H a a ru tin o k at C vagy C-l- -f-
C.5.3. Eltérések más 8088-as assemblerektől p ro g ra m o k b an használjuk, ak k o r javasolt a verem h asználata, hogy kom patibilisek
legyünk a C szubrutin hívási m echanizm usával. E z azonban nem lényeges eltérés,
A z as88 assem bler a szabványos U N IX assem b ler m in tájá ra készült, így tö b b te ­ hiszen az arg u m en tu m o k á tad á sára az aiSS-ban is haszn álh atu n k regisztereket.
k in tetb en is e lté r a M icrosoft M acro A ssem bler-tői (M A S M ) és a B orlan d 8088-as A M A SM , a TASM . és az as88 közötti legnagyobb k ülönbség a ren d szerh ív á­
assem blerétől (TASM ). E zt a két assem b lert k ifejezetten az M S -D O S op eráció s sokban van. A M A SM és a TASM esetén a re n d szert az INT rendszerm egszakítá.s-
ren d szerre tervezték, és h elyenként az assem b ler és az op eráció s re n d sz er k é r­ sal hívjuk. A leggyakrabban használt az INT 21H, am ely az M S -D O S függvényeinek
dései szorosan összefonódnak. A M A SM és a TASM is tám o g atja a 8088-asnak hívására szolgál. M ivel a hívó sorszám ot az AX regiszterbe tesszük, így ism ét regisz­
az M S-D O S a latt tá m o g a to tt összes m em ő riam o d elljét. L étezik péld áu l tin y m o­ te rb e n ad u n k át arg u m en tu m o t. A k ü lö n b ö ző eszközökhöz k ü lönböző m egsza­
dell, am elyben az összes k ó d n ak és ad a tn a k el kell férn ie 64 K B -on, s m a ll m odell, k ításv ek to ro k és m egszakítás szám ok tarto zn ak , m int péld áu l az INT 16H a B IO S
am elyben a kódszegm ens és az ad atszeg m en s külön -k ü lö n 64 K B -os lehet, és large b illen ty ű zetkczelő függvényeihez, az INT lOH pedig a m egjelenítéshez. E zeknek a
m odell, am ely tö b b kód- és ad atszeg m en st is m egenged. A k ü lö n b ö ző m o dellek függvényeknek a p ro g ram o zásáh o z a p ro g ram o zó n ak jó k o ra ad ag eszközfüggő is­
közötti eltérés a szegm ensregiszterek h asz n á latá b a n van. A large m odell m eg en ­ m e re tte l tisztában kell lennie. Ezzel szem ben az aiSS-ban találh ató U N IX -re n d -
gedi a távoli hívásokat és a DS reg iszter m ó d osítását. A szegm ensregisztcrekkel szerhívásokat sokkal egyszerűbb használni.
kap cso latb an a p ro cesszo r is tám aszt fe ltéte le k et (p éld áu l a CS reg iszte r n em leh et
MOV u tasítás célja). A nyom követés egyszerűbbé té te lé re az ű i5 5 -b an h aszn ált m e-
m ó riam odell a sm all m o d ellre h asonlít, b á r az assem b ler a nyom követő nélkül a
szegm ensregiszteket egyéb m egszorítások nélkül is k ép es kezelni. C.6. A nyomkövető
E zek a m ásik assem b lerek nem ren d elk ez n ek a BSS szegm enssel, és a m e m ó riá t
csak a DATA szegm ensekben inicializálják. A z assem bly fájl á lta láb a n bizonyos fej­ A ny om k ö v ető -h ib ak ereső úgy készült, hogy az egy közönséges (VTIOO), 24 x 80
lécinform ációval k ezdődik, m ajd ezt követi a .data kulcsszóval b ev ez ete tt DATA k a ra k te res, az A N SI szabványos te rm in álp aran cso k at tám o g ató term in álo n fu s­
szegm ens, am elyet a .code kulcsszóval b e v ez e tett p ro gram szöveg követ. A fejléc­ son, U N IX - és L inux-gépeken az X -W indow -rendszer te rm in á le m u lá to ra á lta lá ­
ben a p ro g ram neve a .title kulcsszóval van m egadva, a .model kulcsszó jelöli a m e- ban m egfelel e n n ek a köv etelm énynek. W indow s-gépeken azonban többnyire be
m ó riam odellt, a .stack kulcsszó p edig a v erem szegm ens szám ára foglal helyet. H a a kell tö lten i az ansi.sys m eg h ajtó t a rendszerinicializáló fájlokba az alább részlete­
terv ezett bináris p ro g ram egy x o m fájl, a k k o r a tiny m o d ellt használjuk, az összes ze tt m ó d o n . A nyom követő p éld ák b an m á r láttuk a nyom követő ab lakainak e lre n ­
szegm ensregiszter é rté k e m egegyezik, és e n n ek az ö ssz e te tt szeg m en sn ek az első dezését. A C.IO. áb rá n láth ató , hogy a nyom követő képernyője h é t ab lak ra oszlik.
256 bájto s fejléce az ún. p ro g ram szeg m en s-elő tét (P ro g ram S egm ent Prefix, PSP) A bal felső ab lak a pro cesszo r ablaka, am ely az általános reg iszterek et d eci­
szám ára van fenn tartv a. m ális, a többi regisztert pedig hexadecim ális jelöléssel m utatja. M ivel az u tasítás­
A .WORD, .BYTE, és .ASCIZ direk tív ák h ely ett ezek az a ssem b lerek a DW kulcsszó­ szám láló n u m erikus érté k e n em m on d túl sokat, e z ért egy sorral lejjebb az is sze­
val d efiniálnak szavas, a DB kulcsszóval p ed ig bájto s ad a to t. Egy strin g a DB d ire k tí­ rep el, hogy hány utasítással vagyunk a pro g ram fo rrásk ó d jáb an a m egelőző globá-
748 C) A S S E M B L Y N Y ELV Ű P R O G R A M O Z Á S C.6. A N Y O M K Ö V ETŐ 749

Processzo r Program szöveg Á ltaláb an a nyom követő a p aran csait és a b e m e n e té t is a szabványos b e m e n e t­


és Verem ről olvassa. L eh ető ség van azonban arra, lu)gy előkészítsünk egy-egy fájlt a nyom ­
regiszterek Forrásfájl kö v ető parancsaiból illetve a b em en e ti sorokból, am elyekből azután a nyom köve­
tő a szabványos b e m e n e te t m egelőzően olvas. A nyom követő parancsfájljai a .í, a
Szubrutin
hívási verem Hibakimeneti mező b em en e ti fájlok pedig a z k i t e r j e s z t é s s e l van n ak ellátva. Az assem bly nyelvben a
Bemeneti mező kulcsszavakra, a ren d szerszu b ru tin o k ra és a p szeu d o u tasításo k ra a nagybetűs és
Értelmező Kimeneti mező a k isbetűs írásm ód is h asználható. A z assem bly folyam atban keletkezik egy .$ ki­
parancsok
terjesz tésű fájl, am elybe a kisbetűs írásm ódú kulcsszavak nagybetűsre k o n v ertál­
Globális változók értékei va, a kocsivissza k a ra k te re k pedig egyáltalán nem k erü ln ek át. így egy pro jek th ez,
Adatszegmens m o n d ju k a p r nevűhöz, a k á r h at külö n b ö ző lajl is tarto zh at:

C.10. ábra. /Anyomkövető ablakai 1.pr.s az assem bly forráskódhoz;


2.pr.$ az ö sszeállított forráskódhoz;
lis cím ke után. A z u tasításszám láló m ező felett lá th a tó az ó t feltételk ó d . A tú lcso r­ 3.p>:88 a b e tö ltő fájlhoz;
dulást egy „v”, az irány-fiaget pedig egy „ > ” vagy „ < ” jelöli attól függően, hogy A.pr.i az elő re összeállított szabványos bem en eth ez;
növekvő vagy csö k k en ő irányról van-e szó. A z előjel-flag a negatívok e seten ,.n”, a S .p rJ az elő re összeállított nyom követő parancsokhoz;
nulla és a pozitívok esetén pedig „p". A zéró flaget „z” jelöli, ha be van állítva, az b .p n # az assem bly kó d n ak a b e tö ltő fájhoz kapcsolásához.
átvitel-flaget pedig „c”. A a flag tö rö lt á lla p o tá t jelzi.
A felső k özép ső ab lak b a n a v erem ta rta lm a lá th a tó h ex adecim álisan. A v e re m ­ A z u to lsó fájlt a nyom követő használja a jo b b felső ablak k itö ltésére és az ulasí-
m u ta tó pozícióját a „ = > ” nyíl m u tatja. A szu b ru tin o k visszatérési cím ét a h ex ad e­ tásszám láló m ező m eg jelen ítésére. A nyom követő ellenőrzi továbbá azt is, hogy a
cim ális é rté k elő tti szám jegy jelöli. A jo b b felső ab lak b an a fo rrásfájln ak a követ­ b e tö ltő fájl a fo rrásp ro g ram utolsó m ó d o sítása u tán k eletk ezett-e, és ha nem , ak ­
kező v ég reh ajtan d ó u tasítás k ö rn y ezetéi m u ta tó részlete olvasható. A z u ta sítá s­ k o r figyelm eztet.
szám láló pozícióját szintén egy „ = > ” nyíl m u tatja.
A pro cesszo r alatti ablak jelen íti m eg a legutóbbi szu b ru tin h ív áso k helyeit.
K özvetlenül a latta a n yom követő p aran cso k ab lak a h elyezkedik el, am elyben az C.6.1. Nyomkövető parancsok
előzőleg k iad o tt p a ra n cs van felül, a la tta p ed ig a paran cs ku rzo r. M egjegyezzük,
hogy m in d en p a ra n c so t a r e t u r n (P C -b illen ty űzeten töb b n y ire e n t e r felira ttal A nyom követő p aran csait C .l l . á b ra sorolja fel. A legfontosabb közülük a táb lá­
jelzett) billentyűvel kell lezárni. zat első so ráb an ta lálh ató egyszerű re tu rn parancs, am ely p o n to san egy procesz-
A z alsó ablak a globális m em ó ria h a t elem ét tartalm azza. M in d en elem v ala­ szo ru tasítást h ajt végre, valam int a táb lázat alján találh ató q kilép ő parancs. 1 la
m ely cím kéhez k é p est m e g a d o tt pozícióval kezdődik, ezt követi az a d atszeg m en s­ p a ra n c sk é n t egy szám ot ad u n k m eg, a k k o r annyi u tasítás h ajtó d ik végre. A k szám
b en elfoglalt abszo lú t pozíció. A k e ttő sp o n t u tá n 8 b ájt következik h ex ad ecim áli­ ekvivalens k d arab re tu rn leütésével. U gyanez a h atás é rh e tő el akkor, ha a szám ot
san. A következő 11 p o zíció k arak terek szám ára fe n n ta rto tt, m ajd azt követi egy egy felkiáltójel (!) vagy egy X követi.
decim ális szó. A bájto k , a k a ra k te re k és a szavak m ind u gyanazt a m e m ó ria ta rta l­ A g p aran cso t a forrásfájl a d o tt soráig tö rté n ő fu tásh o z használhatjuk. A p a ­
m at je len ítik m eg, de a k a ra k te re s áb rázo lásh o z van h áro m ex trab ájt, decim álisán ran csn ak h á ro m válto zata létezik. H a egy sorszám előzi m eg, ak k o r a nyomkcive-
p edig csak az első szó (2 b ájt) é rté k e je le n ik m eg. E z a z ért kényelm es, m ert az tő addig h ajtja végre a p ro g ram o t, am íg az a d o tt so rra nem ér. Egy !T cím kével
a d a t elejéből n em m indig d erü l ki eg y értelm ű en , hogy az elő jeles vagy előjel n é l­ - a k ár -f-# eltolással (offset) a k ár anélkül - an n ak a sornak a m eg h atáro zása, m e­
küli egészként, vagy p ed ig strin g k én t h asználatos. lyen a v ég reh ajtást szeretn én k m egállítani. A m inden e lő té t nélküli g p aran cs h a ­
A jo b b középső ablak a b e- és k im e n e t szám ára van fe n n ta rtv a. A nyom követő tá sá ra a nyom követő az aktuális sor újbóli eléréséig hajtja végre az u tasításo k at.
e n n ek első so ráb a írja ki a h ib ák at, a m ásodik so r a b e m e n e té , a többi p ed ig a ki­ A / (label) p aran cs e lté rő e n viselkedik utasításcím kék és adatcím kék eseten.
m en et szám ára áll ren d elk ezésre. A hiba k im e n e te t egy „ E ” b etű , a b e m e n e te t egy A dateím k e h a tására az alsó ablak egy so ra a cím kénél kezd ő d ő adato k k al lesz ki­
„ I” b etű , a szabványos k im e n e te t p ed ig „ > ” vezeti be. A b e m e n e ti so ro n egy töltve illetve felülírva. U tasításeím ke esetén ekvivalens a g paranccsal. A cím két
nyíl jelöli a követk ező beolvasás helyét. H a a p ro g ram read vagy getchar hívást v é ­ k ö v eth eti egy plusz jel és egy szám (am elyet a C .l 1. áb ráb an a # jelez); ez a cím ­
gez, a nyom követő p a ran csso ráb ó l a k ö v etk ező b e m e n e t a b e m en e ti m ező b e k e ­ k étől szám ított elto lást (offset) adja m eg.
rül. Ilyenkor is le kell zárn i a b em e n e ti so rt R E X U R N -n e l. A so rn ak a m ég fel nem L eh e tő sé g van arra, hogy egy utasításo n tö r é s p o n to t ( b r e a k p o in t) h e l y e z z ü n k
d olg o zo tt része a nyíl u tá n láth ató . el. E zt a b paranccsal teh etjü k m eg, am elyet opcionálisan egy utasításeím ke és
750 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C.7. A L A P IS M E R E T E K 751

Cím Parancs Példa Leírás C.7. Aiapísmeretek


Egy utasítás végrehajtása
,!,X 24 # számú utasítás végrehajtása E b b e n a fejezetb en elm agyarázzuk, hogyan is használjuk ezek et az eszközöket.
/start+5g Futtatás a T címkét követő #. sorig M in d e n e k e lő tt m eg kell találn u n k a p la tfo rm u n k n a k m egfelelő szoftvert. E lőre
/T+# g ,!,
/T+# /start+5b Töréspont elhelyezése a T címkét követő #. sorra le fo rd íto tt v álto zato k at találu n k Solaris-, U N IX -, Linux- és W indow s-rendszerek-
/start+5c Töréspont eltávolítása aT címkét követő #. sorról re. A z eszközök m eg találh ató k a C D -R O M -m ellék leten és a www.prenhall.conilta-
/J+tt
108g A program végrehajtás a #. sorig neiibaum w ebeím en is. A z utóbbi helyen k attin tsu n k a bal oldali m e n ü b en en n ek
A program végrehajtása, míg az aktuális sor újra elő nem fordul a könyvnek a C om panion Web Sitc linkjére. A kiválasztott zip fájlt egy assembler
Töréspont elhelyezése az aktuális sorra nevű k ö nyvtárban tö m ö rítsü k ki. Ez a könyvtár és alkönyvtárai tartalm azn ak m in­
Töréspont eltávolítása az aktuális sorról d en szükséges anyagot. A C D -R O M -o n a fő könyvtárak a BigendN x, L tlem lN x,
A program végrehajtása a következő sorig
M S W in d o s, és m indegyikben talá lh a tó egy assembler alkönyvtár, am ely az anya­
Végrehajtás a következő töréspontig vagy a program végéig got tartalm azza. A legfelső szinten ta lá lh a tó h áro m könyvtár ren d re a B ig-E ndian
A program futtatása, amíg azonos szubrutinszinten marad
U N IX - (p éldául S u n -m unkaállom ások), a L ittle-E n d ian U N IX - (például PC -n fu ­
Futtatás az aktuálisnál eggyel alacsonyabb szubrutinszintig
tó L inuxok) és a W indow s-rendszerek szám ára.*
Futtatás az aktuálisnál eggyel magasabb szubrutinszintig
K itö m ö rítés vagy m ásolás u tán az assem b ler könyvtárban az alábbi alk önyvtára­
/D+# /buf+6 Az adatszegmens megjelenítése a D címke+# címtől
kat és fájlo k at kell találnunk: R E A D _ M E , búi, as_sre, trce_sre, exam ples, és cxerei-
/D+# d,l /buf+6d Az adatszegmens megjelenítése a D címke+# címtől
se. A z elő re lefo rd íto tt fo rráso k a bin könyvtárban találh ató k , de kényelm i o k o k ­
R, CTRL L R Ablakok frissítése ból egy m áso latu k az exam ples kön yvtárban is m egvan.
H ogy gyors átte k in té st k apjunk a ren d szer m űkö d ésérő l, váltsunk az examples
Nyomkövetés befejezése, visszatérés a parancsértelmezőbe
könyvtárba, és gépeljük be az alábbi parancsot:
C.11. ábra. A nyomkövető parancsai. Minden parancsot return i<.arai<.terrel (azENTER billentyű)
kell lezárni. Az üres mező aztjelzi, hogy csak a return szükséges. A fent felsorolt. t88 HIloWrId
Cím mező nélküli parancsok nem rendelkeznek címmel. A # szimbólum egy
egészértékű eltolást (offset) reprezentál E z a p aran cs tarto zik a C.8. alfejezet első példájához.
A z assem bler forráskódja az as_src alkönyvtárban található. A forrásfájlok C nyel­
esetleg egy eltolás (offset) elő zh et m eg. A m ik o r a fu tta tá s a tö ré sp o n tta l ellá­ vűek, és a m a ke parancs használatával lehet őket újrafordítani. PO SIX -kom patibilis
to tt sorra ér, a nyom követő m egáll. A tö ré sp o n ttó l kezdve fo ly tath ató a fu tta tá s a p latfo rm o k h oz van a forráskönyvtárban erre egy Makefile. W indow s-rendszerekhez
RETURN billentyűvel vagy a fu tta tó (r) paranccsal. H a a cím két és a szám ot elhagy­ itt egy m ake.bat kötegfájl található. Szükség lehet arra is, hogy a fordítás után a fu t­
juk, akko r a tö ré sp o n t az ak tu ális so rra kerül. A tö ré sp o n to t a c p aranccsal leh et ta th a tó állom ányokat egy program könyvtárba m ásoljuk, vagy pedig a PATH környe­
eltávolítani, am elyet a b p a ran csh o z h aso n ló an m eg elő zh et cím ke és szám . A z r zeti változót m ódosítsuk úgy, hogy az as88 assem bler és a t88 nyom követő (tracer)
fu tta tó p aran cs h a tá sá ra a nyom követő addig h ajtja végre az u tasításo k at, am íg az assem bly forráskódot tartalm azó könyvárakból is in dítható legyen. M áskülönben
egy tö résp o n th o z , egy exit híváshoz, vagy az u tasításo k vég ére n em ér. a t88 egyszerű begépelése helyett a teljes útvonal nevét kell használni.
A nyom követő nyilv án tartja azt a szub ru tin hívási szintet, am elyen é p p e n fut a W indow s 2000- és X P -rendszereken szükség leh et az ansi.sys term in álm eg h ajtó
p rogram . E z a p ro cesszo rab lak alatt, v alam in t a v erem ab lak b an m eg jelen ő jelző te le p íté sé re , am elyet a következő so rn ak a config.nt konfigurációs fájlhoz adásával
szám okból látszik. H á ro m p a ran cs foglalkozik ezekkel a szintekkel. A - paran cs te h e tü n k m eg:
h a tá sá ra a nyom követő addig fut, am íg a szu b ru tinszin t eggyel az aktuális szint alá
csökken. E z a p a ra n c s v alójában addig h ajtja végre az u tasításo k at, am íg az a k tu á ­ device=%systemRoot%\System32\ansi.sys
lis szubrutin be nem fejeződik. E n n e k fo rd íto ttja a + p aran cs, am elynek h a tá sá ra
a nyom követő addig fut, am íg a követk ező szu b ru tin szin tre n em ér. A z = paran cs E zt a fájlt az alábbi helyen találjuk:
addig fut, am íg ugyanazt a szin tet el nem érjük, és ezt egy CALL hívásnál a szu b ru ­
tin v ég reh ajtására h aszn álh atju k . H a az = p a ra n cso t haszn álju k , a szu b ru tin ré sz ­ Window/s 2000: \winnt\system32\config.nt
letei nem je le n n e k m eg a n yom követő ablakban. A h aso n ló n p aran cs, a k ö v etk e­ Window/s XP: \v\/indows\system32\config.nt
ző prog ram so rig fut. E z a p a ra n c s k ü lö n ö sen hasznos, ha egy LOOP p aran cso n a d ­
ju k ki, ilyenkor a v ég reh ajtás p o n to sa n a ciklus végén áll m eg. * A C D - R O M - o n az e m líte tt fő k ö n y vtá ra k a 8088_tra k ö n y vtá rb a n solaris, linux cs Win­
dows n é v e n találh a tó k . (A lektor)
C.8. PÉL D Á K 753
752 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S

W indow s 95-, 98- és M E -ren d sz c re k e n a m eg h ajtó t a config.sys fájlba kell b e je ­ _EXI T = I !1 C5: 00 DS =SS =ES: 002 MCA/ CX,de-hw ! 6
_WRITE =4 !2 AH:00 AL:Oc AX: 12 PUSH CX ! 7
gyezni. U N IX - és L in u x -ren d szerck en a m eg h ajtó általáb an sta n d a rd m ó d o n re n ­ _5TD0UT =1 BH:00 BL:00 BX; 0 PUSH HW
d elkezésre áll. •SECT TEXT CH:00 C L:0c CX: 12 PUSH _STDOUT
S ta rt: !5 DH;00 DL:00 DX: 0 PUSH _WRITE
MOV CX,de-hw !6 SP : 7fd8 SF O D S Z C = >0004 SYS
PUSH ex ! 7 BP : 0000 CC - > p - 0001 ADD SP,8
PU5H hw !8 S l : 0000 IP :0 0 0 c :P C 0000 SUB CX,AX
PUSH _STDOUT ! 9 D1: 0000 start +7 000c PUSH CX
C.8. Példák PUSH _WRITE I10
SYS !1 1
ADD SP, 8 ! 12
A C.2-tó'l a C.4-ig ta rló fejezetek a 8088-as p ro cesszo rró l, an n ak m em ó riájáró l SUB CX,AX !I 3 hw

és u tasításairól szólt. A C.5. fe jezetb en az eb b en az ú tm u ta tó b a n h asznált as8S PUSH ex ! 14 ■ > H e llo WorIdXn
PUSH EXIT ! 15 hw + 0 = 0000: 48 65 6c 6c 6f 20 57 6f H e llo W orld 25928
assem bly nyelvet tan u lm án y o ztu k . A C.6. fejezetb en a nyom követőről e jte ttü n k SYS ! 16
szót, és végül a C.7. fe jezetb en leírtu k az eszközkészlet tele p íté sé n e k m e n eté t. .SECT .DATA I 17
hw: ! 18
Elvileg ennyi info rm áció ele g e n d ő ahhoz, hogy a ren d elk ez é sre álló eszközökkel .ASCII "Hello World\n" ! 19
assem bly p ro g ra m o k at tu d ju n k írni, és azo k b an hib át keresni. E n n ek elle n é re sok de: .BYTE 0 ! 20
olvasó b iztosan h aszn o sn ak találja, h a b e m u ta tu n k n éh án y részleteseb b assem bly (a) (b)
pro g ram p éld át, és hogy a nyom követővel hogyan leh e t b en n ü k a h ib á k a t m eg k e­
resni. Pontosan ez e n n e k a fejezetn ek a célja. A fe jezetb en tárgyalt összes p é ld a ­ C.12. ábra. (a) HIloWrId.s. (b) A hozzá tartozó nyomkövető ablak
pro g ram m eg találh ató az eszköz exam ples alkönyvtárában.* A rra b íztatju k az o l­
vasót, hogy az itt tárg y altak szerint fo rd ítsa le és ellenőrizze a p ro g ram o k at. kivéve, hogy a p ro g ram o zó helyett az assem b lerre bízza a string hosszának m eg ­
határo z á sát. A z itt m eg ad o tt é rté k ann ak a helynek a m é re te , am elyet a 19. sorban
a d o tt strin g szám ára foglaltunk le. A MOV a 6. so rb an a m ásoló utasítás, am ely a
d e -h w é rté k é t m ásolja CX-be.
C.8.1. Helló Világ példa
A 7--] 1. so r azt m u tatja, hogy az eszközben hogyan kell rendszerhívást v ég reh aj­
K ezdjük a C.12. khríi H lloW rld.s példájával. A pro g ram listája a bal oldali ablakban tani. E z az ö t sor a C nyelvű;
láth ató . M ivel az assem b ler m egjegyzés szim bólum a a felkiáltójel (!), ezt h aszn ál­
juk a p ro g ram ab lak b an az u tasításo k és az azokat k övető sorszám ok elválasztásá­ writed, hw, 12);

ra. A z első h áro m so r k o n stan s d efiníciókat tartalm az, am elyek k ét ren d szerh ív ás­
hoz és a kim eneti fájlhoz ta rto z ó belső áb rázo lásh o z re n d eln e k szokásos neveket. függvényhívás assem bly kód ú fordítása, ahol az első p a ra m é te r a szabványos kim e­
A 4. so rb an a .SECT p szeu d o u tasítás azt állítja, hogy a követk ező so ro k at a T E X T n et fájlleíró ja (1), a m ásodik a k in y o m tatan d ó string (/7iv) cím e, a h arm ad ik pedig
szegm ens részek én t kell tek in ten i, azaz ezek p ro cesszo ru tasításo k . H aso n ló an , a a string hossza (12). A 7-9. so r ezeket a p a ra m é te re k e t fo rd íto tt so rren d b en a v e­
17. so r azt m ondja, hogy am i következik, azt a d atn a k kell tek in ten i. A 19. so r ini­ re m re helyezi, am ely a nyom követő által is használt C hívási szekvencia. A 10. sor
cializál egy 12 bájtb ó l álló strin g -ad ato t, am elybe a szókíiz és a végén ta lálh a tó so r­ a write rendszerhívás so rszám át (4) teszi a v erem re, m ajd a l l . sorban tö rtén ik a
em elés (\n) is b e leé rte n d ő . tényleges hívás, B ár ez a hívási szekvencia nagyon hasonlít ahhoz, ahogy egy v aló ­
A z 5., 18. és 20. sor cím kéket tartalm az, am elyeket a k e ttő sp o n t (:) jelöl. E zek a di assem bly nyelvű pro g ram m ű k ö d n e egy U N IX - (vagy L inux-) ren d szerű PC -n,
cím kék a konstan so k h o z haso n ló an n um erikus é rték e k e t rep rezen táln ak . Itt az o n ­ m ás o p e ráció s re n d szeren kicsit m ó dosítani kellene, hogy a n n ak az operációs
b an az assem blern ek kell a nu m erik u s é rté k e t m eghatároznia. M ivel a start a T E X T ren d sze rn e k a hívási szabályait használja. A z as88 assem bler és a t88 nyom követő
szegm ens legelején helyezkedik el, az érté k e 0 lesz, de a T E X T szegm ens további azo n b an a W indow s-rendszeren fu ttatv a is a U N IX hívási szabályokat használja.
cím kéinek érték e (am elyet ez a p éld a nem tartalm az) attó l függne, hogy hány bájt- A l l . so rb an találh ató rendszerhívás végzi el a tényleges nyom tatást. A 12. sor
nyi kód van előttü k . M ost tekintsük a 6. sort. Ez a sor két cím ke különbségével vég­ ta k a rítja a v erm et azáltal, hogy a v e re m m u ta tó t visszaállítja a rra az érték re, am ely-
ződik, am ely num erik u sán egy konstans. így a 6. sor lényegében ugyanaz, m int lyel a négy d a ra b 2 bájtos szó v erem re helyezése elő tt ren d elk ezett. H a a write
hívás sikeres, az AX-ben a k in y o m tato tt bájto k szám át kapjuk vissza. A 13. sor ki­
MOV ex, 12 vonja a l l . sor u tán a rendszerhívás ered m én y ét a CX-ben ta lá lh a tó e red eti string
hosszból, hogy ellenőrizze, valóban m in d en b ájt k inyom tatásra került-e. így a
p ro g ram kilépési állap o ta 0 lesz sikeres futás esetén , és valam i e ttő l különböző, ha
* A C D - R O M - m c llc k le t examples alk ö n y vtá rá b a n a p éld ák és n y ü m k ö v e tő a b la k o k néh o l hiba tö rté n t. A 14. és 15. sor a 16. sorban találh ató exit rendszerhívást készíti elő
kissé e lté rn e k a kö n yvh eii p é ld á k tó l és áb rák tó l. (A lektor)
754 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C,8. PÉL D Á K 755

azzal, hogy a kilépési álla p o to t és a függvény k ó d já t a v erem re teszi az EXIT hívás és létrejö n a h áro m m eg felelő fájl. H a nincs h ib aü ze n et, ak k o r adjuk ki a nyom ­
szám ára. k ö v ető p arancsot:
Felhívjuk a figyelm et arra, hogy a MOV és a SUB u tasítás e se té n az első a rg u m e n ­
tu m a c é lo p e ran d u s és a m áso d ik a fo rrá so p e ra n d u s. A ssem b lerü n k ezt a k o n v en ­ tS8 HIloWrId
ciót követi, m ás assem b lerek ezt a so rre n d e t felcserélh etik . Sem m ilyen k ülönös
o k u nk nem volt az egyik so rre n d v álasztására a m ásikkal szem ben. A nyom követő k ép ern y ő b en a jo b b felső saro k b an m eg jelen ő nyíl a 6. sor
M ost p ró b álju k m eg a HlloW rld.s p ro g ra m o t lefo rd íta n i és fu ttatn i. U ta sítá so k a t
ad u n k m ind a U N IX -, m ind a W indow s-platform hoz. Linux-, Solaris-, M acO S X- MOV CX,de-hw
és egyéb U N lX -v á lto z ato k o n az eljárás lényegében ugyanaz, m int a U N IX -o n .
E lő szö r indítsunk egy p a ra n csérte lm ez ő (héj, shell) ablakot. W indow son a k attin - u ta sítá sá ra m utat. M o st üssük le a r e t u r n (PC -billentyú'zeten entek ) billentyűt.
tási so ro zat általáb an Vegyük észre, hogy m ost a m u ta to tt u tasítás a:

Start > Programok > Kellékek > Parancssor PUSHCX

A ngol nyelvű W indow son: és hogy a CX érteke a bal oldali ablakban most 12. Üssük le újra a RE iuRN-t és ve­
gyük észre, hogy a felső sorban a középső ablak a 000c értéket tartalmazza, amely a
Start > Programs > Accessories > Command prompt 12 hexadecimális alakja. E z az ablak a vermet mutatja, amely most egyetlen szót tar­
talmaz a 12 értékkel. Üssük le a RETURN-t még háromszor, hogy lássuk a 8., 9. és 10.
E zu tán váltsunk az exam plcs alkönyvtárba a cd (change d irectory, m un k ak ö n y v tár sor PUSH utasításainak végrehajtását. E zen a ponton a verem már négy elemet tar­
váltása) paranccsal. E p a ra n cs a rg u m e n tu m á t attó l függően kell m egadni, hogy az talmaz, a bal oldali ablakban az utasításszámlálóban pedig a 000b érteket találjuk.
eszközt hova helyeztük el a fájlren d szerb en . U tá n a ellen ő rizzü k ü N IX -o n az Is, A R ET U R N következő lenyom ására v ég reh ajtó d ik a rendszerhívás, és a „H ello
W indow son a dir p aran ccsal, hog)' a k ö nyvtárban m eg találh ató k -e az assem b ler és W o rld \n ” string m egjelenik a jo b b alsó ablakban. Figyeljük m eg, hogy m ost az SP
a nyom követő b ináris állom ányai. E zek neve re n d re as88 és t88. W indow s-rend- érté k e 0x7ff0. A következő r e p u r n u tá n az SP 8-cal n ő és 0x7ff8-ra változik. N égy
szerek en van m ég egy .exe k iterjesztésü k , de azt nem kell b eg ép eln i a p a ra n cso k ­ további r e t u r n u tán befejező d ik az exit rendszerhívás, és a nyom követő kilép.
ban. H a az assem b ler és a nyom követő n in csen ek ott, a k k o r keressü k m eg, és m á ­ Hogy m eggyőztídjön arró l, valóban m in d en m ű k ö d ését érti, tö ltse be a HIloWrId.
soljuk oda. s fájlt kedvenc szövegszerkesztőjébe (text e d ito r). Jobb, ha nem szövegfeldolgozót
M ost fordítsuk le a teszt p ro g ra m o t az alábbi paranccsal: (w ord p ro cesso r) használ. U N lX -re n d sz e re k e n jó választás az ex, a vi vagy az
em acs. W in d ow s-rendszeren a Jegyzettöm b (notepad) egy egyszerű szerkesztő, és
as88 HlloWrld.s álta lá b a n a;

H a az assem b ler az exam ples kön>'vtárban van, de a p a ra n c s m égis hibát jelez, a k ­ Start > Programok > Kellékek > Jegyzettömb
k o r p ró b álju k m eg U N IX -re n d sz e re n az alábbit;
vagy a:
./as88 HIlowrId.s
Start > Programs > Accessories > Notepad
vagy W indow s-ren d szeren a következőt:
helyen é rh e tő el. N e használja a Wordöt, mivel az ered m én y t helytelenül fo rm áz­
.\as88 HIlowrId.s h atja, és így nem lesz jól olvasható.
M ó d o sítsa a 19. so rb an a strin g et, hogy m ás ü z en et je len jen m eg, m ajd m entse
H a az assem bly folyam at helyesen fejeződik be, a következő ü zen et jelen ik meg; el a fájlt, fo rd ítsa le, és fu ttassa a nyom követőben. E zzel elk ez d ett assem bly nyel­
ven pro g ram ozni.
Project HIloWrId llstfile HlloWrld.$
Project HIloWrId num file HIloWrId.#
Project HIloWrId loadfile HlloWrld.88
756 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C.8. p é l d A k 757

C.8.2. Példa az általános regiszterekre A követk ező szorzásnál p ro b lém a jelentkezik. A szorzás csak az AX-et veszi fi­
gyelem be, a DX-et nem , te h á t a MÚL az AX (14464) é rté k é t szorozza 2-vel, és így
A következő p éld a ré szleteseb b en b e m u ta tja a reg iszte rek m eg jelen ítésén ek 28 9 2 8 -at ad ered m én y k én t. E záltal az AX é rté k e 28 928 lesz, a DX-é pedig 0, am i
m ó d ját és a szorzás m űvelet b u k ta tó it a 8088-ason. A C.13. á b rá n a bal old alo n a n u m erik u sán helytelen.
G enReg.s pro g ram részlete, tő le jo b b ra p ed ig a p ro g ram fu tásá n ak k ét k ü lö n b ö ző
fázisához ta rto z ó nyom követő ablak lá th a tó . A C.13. (b ) á b ra m u ta tja a reg iszte­ _EXIT = 1 11 az_EXIT értékének definiálása
rek á llap o tát a 7. sor v é g reh ajtása u tán , A 4. sor: _PRINTF= 127 ! 2 a _PRINTF értékének definiálása
.SECT ,TEXT ! 3 aTEXT szegmens kezdete
Inpstart: !4 az inpstart címke definiálása
MOV AX,258 MOV BP,SP !5 SP mentése BP-be
PUSH vec2 I 6 vec2 címe a verembe
u tasítása a 258-as é rté k e t tö lti AX-be, m ely n ek h a tá sá ra AH-ba 1, AL-be p ed ig 2 k e ­ PUSH ved ! 7 ved címe a verembe
rül. E z u tá n az 5. so r AL-t AH-hoz adja, így AH 3 lesz. A 6. so rb an CX-be k erü l a ti­ MOV CX,vec2-ved !8 CX = a vektorban található bájtok száma
SHR CX,1 19 CX = a vektorban található szavak száma
m es változó ta rta lm a (10). A 7. so rb an pedig BX-be tö ltő d ik a m a id a t változó cím e,
PUSH CX I 10 a szavak száma a verembe
am ely 2, mivel ez a DATA szegm ens m ásodik szava. E b b en az id ő p illa n a tb an k é ­ CALL vecmul I 11 vecmul hívása
szült a C.13. (b) á b ra k ép e. M egjegyezzük, hogy AH érté k e 3, AL-é 2, és AX így 770, MOV (inprod),AX ! 12 AX áttöltése
ahogy az v árh ató is, hiszen 3 x 256 + 2 = 770, PUSH AX 113 a nyomtatandó eredmény a verembe
PUSH pfmt ! 14 a formátum-string elme a verembe
PUSH _PRINTF 115 a PRINTF függvény kódja a verembe
start: !3 116 a PRINTF függvény hívása
CS: 00 DS=SS=ES: 002 CS: 00 DS=SS=ES 002 SYS
M OV AX.258 !4
AH:03 AL:02 AX: 770 AH:38 AL:80 AX 14464 ADD SP,12 ! 17 a verem takarítása
ADD B AH.AL !5
M OV CX,(times) !6 BH:00 BL02 BX: 2 BH:00 BL:02 BX: 2 PUSH 0 ! 18 állapotkód a verembe
M OV BX.muldat !7 CH:00 CL:Oa CX: 10 CH:00 CL:04 CX: 4 PUSH _EXIT ! 19 az EXIT függvény kódja a verembe
M OV AX,(BX) !8 DH;00 DL:00 DX: 0 DH:00 DL:01 DX: 1 SYS !20 az EXIT függvény hívása
llp: M ÚL 2(BX) !9 SP: 7fe0 SF O D S; z c SP: 7fe0 SF 0 D S Z C
LOOP llp 110 BP: 0000 CC BP: 0000 CC > p - c vecmul: 121 a vecmuKcount, v e d , vec2) kezdete
- > PI - - V
.SECT .DATA 111 PUSH BP 122 BP mentése a verembe
Sl: 0000 IP:0009:PC Sl: 0000 IP:0011:PC
times: ,WORD 10 I 12
m u ld a t W O R D 625,2 ! 13 Dl; 0000 start +4 Dl; 0000 start +7 MOV BP,SP !23 SP a BP-be az argumentumok eléréséhez
MOV CX,4(BP) !24 a darabszám CX-be a ciklus vezérléséhez
(a) (b) (0
MOV SI,6(BP) 125 Sl = ved
MOV DI,8(BP) !26 Dl = vec2
C.13. ábra. (a) Programrészlet, (b) A nyomkövető regiszter ablaka, miután a 7. sor végrehajtásra
PUSH 0 !27 0 a verembe
került, (c) A nyomkövető ablak a ciklus 7. futásában, a szorzás után !28 (Sl) betöltése AX-be
1: LODS
MÚL (Dl) !29 AX szorzása (Dl)-vel
A következő u tasítás ( 8 . so r) a m u ld a t ta rta lm á t tö lti AX-be. E záltal a r e t u r n ADD -2(BP),AX !30 AX hozzáadása a gyűjtő memóriaszóhoz
billentyű lenyom ása u tán AX é rté k e 625 lesz. ADD Dl,2 131 Dl növelése a kővetkező elemre
LOOP 1b 132 ha CX > 0, vissza az 1b címkére
M ost érk eztü n k el a ciklusig, am ely AX és a 2(BX) által m eg cím zett sző (azaz m ul-
POP AX 133 verem tetejéről AX-be
d a t+ 2 ) szorzata, ah o l az u tó b b i é rté k e 2. A MÚL u tasítás im plicit célo p e ra n d u sa a POP BP !34 BP helyreállítása
DX: AX hosszú szavas reg iszte r-ö sszetétel. A z első iteráció s lép ésb en az ered m én y RÉT !35 visszatérése szubrutinból
elfér egyetlen szóban, így AX tartalm a zz a az e red m én y t (1250), DX p edig 0 m arad .
A reg iszte rek n ek 7 szorzás u tán i ta rta lm á t m u ta tja a C.13. (c) ábra. .SECT .DATA !36 DATA szegmens kezdete
pfmt: .ASCIZ "Inner product Is: %d!\n" 137 string definiálása
M ivel az AX k ezd ő é rté k e 625 volt, ezt h étsze r m egszorozva 2-vel az ered m én y
.ALIGN 2 138 páros címre pozicionálás
80 000. E z m á r nem fér el az AX-ben, de az e re d m é n y a DX; AX reg iszterek összefű- ved:.WORD 3,4,7,11,3 139 1.vektor
zésével előálló 32 bites reg iszte rb en táro ló d ik , te h á t a DX az 1, az AX p ed ig a 14464 vec2:.WORD2,6,3,1,0 !40 2. vektor
é rté k e t kapja. N u m erik u sán ez az é rté k 1 x 65536 + 14464, am ely való b an 80000, .SECT.BSS !41 BBS szegmens kezdete
Figyeljük m eg, hogy a CX érté k e e k k o r 4, mivel azt a LOOP u tasítás m in d en egyes inprod: .SPACE 2 142 helyfoglalás az inprod számára
iteráció s lépésben csökkenti eggyel. M ivel a CX 10-ről indult, h é t MÚL u tasítás (de
csak h at LOOP iteráció s lép és) u tá n az é rté k e 4 lesz. C.14. ábra. /Avecprod.s program
758 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C.8. P é l d á k 759

C.8.3. A call utasítás és a mutató regiszterek MOV BP,SP 15 00 DS = SS= ES: 004 PUSH BP I 22
PUSH vec2 !6 00 A L :0 0 A X: 0 MOV B P ,S P ! 23
PUSH ved !7 00 B L :0 0 BX: 0 MOV C X ,4 (B P ) ! 24
A következő péld a, a vecprod.s, egy olyan p ro g ram , am ely k ét v ek to r, a v e d és a MOV CX,vec2-vecl 18 00 C L:05 CX: 5 =>0000 MOV S I,6 (B P ) ! 25
SHR CX, 1 !9 00 D L:00 DX: 0 7 fc 0 MOV D I,8 (B P ) ! 26
vec2, belső szo rzatát szám ítja ki. A listája a C.14. áb rán láth ató . PUSH CX I 10 7 fb 4 SF 0 D S Z c 1 001 1 PUSH 0 I 27
A p ro g ram első része előkészíti a vecm ul hívását az SP BP-be m en tésév el, m ajd CALL vecmul 7fb6 CC - > p z 0005 = > 1 : LODS ! 28
0018 IP :00 31 :PC 0018 MÚL (D l) ! 29
a vec2 és a v e d cím én ek v erem b e helyezésével, hogy azo k a t a vecm ul elérh esse. 0022 vec m u l +7
vecmul : !21 0022 ADD - 2 (B P ),A X ! 30
E zu tán , a 8. sorban, CX-be k erü l a v ek to r b ájto k b an m é rt hossza.* E zt a 9. sorban PUSH BP 122
MOV apsp 123
egy bittel jo b b ra lép tetv e, CX m o st a v ek to rb an tá ro lt szavak szám át tartalm azza, MOV CX,4(BP) 1 <= I n p s t a r t + 7
!24
és ez kerül a v erem b e a 10. sorban. A vecm ul hívása a l l . so rb an tö rté n ik m eg. MOV SI,6(BP) 125
MOV DI,8(BP) 126
É rd em e s újra m eg em líten i, hogy a sz u b ru tin o k a rg u m en tu m ai, m eg állap o d ás v e d +0 =001 8: 3 0 4 0 7 0
PUSH 0 127 b 0 ..................... 3
szerint, fo rd íto tt so rre n d b en k e rü ln e k a v erem re, hogy ö sszhangban legyen a C h í­ 1: LODS 128 vec2 +0 =0022: 2 0 6 0 3 0 1 0 ........................ 2
vási konvencióval. Ily m ó d o n a vecm ul C -ből is h ívható len n e az alábbi m ó d o n : MÚL (Dl) !29 p fm t+ 0 = 0 0 0 0 :5 4 68 65 20 )9 6e 20 70 The ín prod 26708
ADD -2(BP),A ! 30 pfm t + 18 =001 2: 25 64 21 a 0 0 3 0 % d ! ............... 25637
ADD Dl,2 131
vecmuKcount, v e d , vec2) LOOP Ib 132

A CALL u tasítás v ég reh ajtása kö zb en a visszatérési cím a v erem te te jé re kerül. H a C.15. ábra. A vecprod.s végrehajtása, amint először fut rá a 28. sorra
a p ro g ra m o t nyom on követjük, k id erü l, hogy ez a cím a 0x0011.
A szubrutin első utasítása, a BP b ázism u tató v erm elése a 22. so rb an a PUSH-sal. M ost vizsgáljuk m eg a 28. soron k ezd ő d ő ciklust. A LODS u tasítás az ad atszeg ­
A BP-t elm entjük , m e rt a szu b ru tin o n belü l szükségünk van e rre a reg iszte rre az m ensből az Sl reg iszteren k eresztü l in d irek t m ó d o n tö lt be a m em ó riáb ó l AX-be.
arg u m en tu m o k és a lokális válto zó k cím zéséhez. K ö v etk ező n ek a v e re m m u tató t M ivel az irány-flag be van állítva, és a LODS au to m atik u s növelés m ó d b an m ű k ö ­
m ásoljuk a BP reg iszte rb e a 23. so rb an , így a b ázism u ta tó új é rté k e an n a k régi é r­ dik, így az u tasítás u tán 51 a v e d k övetkező k o m p o n en sére m utat.
ték ére m u tat. H ogy a h a tást a kép ern y ő n is lássuk, indítsuk el a nyom követőt az alábbi p a ­
E zzel m in d en készen áll ah h o z, hogy az a rg u m e n tu m o k a t a reg iszte rek b e tö lt­ ranccsal:
sük, és kialakítsuk a lokális válto zó k helyét. A követk ező h áro m so rb an m indegyik
arg u m en tu m o t a v erem b ő l egy-egy reg iszte rb e tesszük. E m lék ezzü n k rá, hogy a t88 vecprod

verem szó-orientált, vagyis a verem cím ek m indig páro sak . A visszatérési cím a ré ­
gi b ázism u tató m ellett találh ató , te h á t a n n a k cím e 2(BP). A követk ező a c o w it a r­ M iu tán m egjelenik a nyom követő ablak, gépeljük be a:
gu m en tu m a 4(BP) cím en. E zt tö ltjü k CX-be a 24. sorban. A 25. és 26. so rb an v e d
Sl-be, vec2 p ed ig Dl-be kerül. V égül a 27. so rb an a v erem b e tesszük a 0 é rté k e t. /vecmul+7b
A p ro cesszo rn a k közv etlen ü l a 28. so rb an tö rté n ő ciklusba lépés e lő tti álla­
p o ta a C.15. áb rán lá th a tó . A felső sor k eskeny k ö zép ső ab lak a (a reg iszte rek tő l p aran c so t egy RExuRN-nel lezárva, hogy a LODS u tasítást ta rtalm azó so rra e lh e ­
jo b b ra ) m u ta tja a v erm et. A v erem alján a vec2 cím e (0x0022), felette a v e d cí­ lyezzünk egy tö ré sp o n to t. E ttő l kezdve m ár n em fogjuk külön hangsúlyozni, hogy
m e (0x0018), m ajd afe le tt a h arm a d ik a rg u m en tu m , a v ek to ro k b a n ta lá lh a tó e le ­ m in d en p aran cso t a return billentyűvel kell lezárni. A 2tán adjuk ki a:
m ek szám a (0x0005) találh ató . E z u tá n jö n a visszatérési cím (0x0011). A cím től
b alra elhelyezked ő 1-es szám azt jelzi, hogy ez a visszatérési cím a fő p ro g ram tó l
egy szintre helyezkedik el. A reg iszte rek a latti ab lak b an ugyanaz az 1-es szám je ­
lenik m eg, ezú ttal a szim bolikus cím et m utatv a. A visszatérési cím fele tt a v e re m ­ p a ra n c so t, am ire a nyom követő egészen a tö résp o n tig v ég reh ajtja az u tasításo k at,
ben a BP régi érték e (0x7fc0), m ajd a 27. so rb an o d ah ely ezett n u lla találh ató . Az így a LODS m űv eletet ta rtalm azó so ro n fog m egállni.
e rre m u ta tó nyíl az SP által je lz e tt helyet m u tatja. A v erem tő l jo b b ra lévő ablak a A 29. so rb an AX érté k e m egszorzódik a fo rráso p eran d u ssal. A MÚL utasításhoz
p rogram szöveg egy részletét m u ta tja , ahol a nyíl a k ö v etk ez ő k én t v ég reh ajtan d ó a m em ó riaszó az adatszegm ensből Dl-n keresztül, reg iszte r-in d irek t m ó d b an kerül
u tasítást jelzi. b etö lté sre . A IVIUL im plicit c é lo p e ran d u sa a DXiAX hosszú szavas regiszter-össze­
tétel, am elyet az u tasításb an nem kell külön m egadnunk.
A 30. sorban az ered m én y t hozzáadjuk a verem -2(BP) cím én találh ató lokális vál­
* A p ro g ra m kihasználja, hog y vec2 k ö z ve tle n ü l v e d után h e ly e z k e d ik el a m e m ó riá b an . tozóhoz. M ivel a MÚL nem növeli au to m atik u san az o p eran d u sát, ezt explicit m ó ­
E z á ltaláb an nem szerencsés. (A ford.) do n kell m eg tenni a 31. sorban. E zu tán Dl a vec2 következő kom p o n en sére m utat.
760 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S
C.8. p é l d á k 761

STDIN=0
E zt a részt a LOOP u tasítás zárja. A CX reg iszter csökken, és ha m ég m indig p o zi­
STD0UT=1
tív, ak k o r a p ro g ram visszaugrik a lokális 1 cím k ére, a 28. so rra. A Ib lokális cím ­
STDERR=2
ke alkalm azása az ak tu ális pozíciótól visszafelé h aladva a legközelebbi /- e s cím ­
k ét jelen ti. A ciklus u tá n a szub ru tin a visszatérési é rté k e t a verem b ő l AX-be teszi
(33. sor), helyreállítja BP-t (34. sor), m ajd visszatér a hívó p ro g ra m h o z (35. sor). valam int a kód- és ad atszegm ensek fejléccím kéit is definiálja. É rd em e s ezt m in ­
A fő p ro g ram a hívás u tá n a 12. so rb an foly tató d ik a MOV utasítással. E z az u ta ­ den assem bly forrásfájl elején beilleszteni, mivel ezek gyakran használt definíci­
sítás az első egy ö t u tasításb ó l álló so ro zatb ó l, am elynek fe la d a ta az ered m én y ki­ ók. H a a fo rrá st tö b b fájlra b o n tju k , az assem bler csak a fejlécfájl első péld án y át
nyom tatása. A printf ren d szerh ív ás a szabványos C p ro g ram k ö n y v tá r p r in tf függ­ illeszti be, hogy elkerülje a k o n stan so k többszöri definiálását.
vénye m in tájára készült. H áro m arg u m e n tu m k erül a v erem b e a 13-15. sorban. A z anayprt p ro g ram a C.16. áb rán láth ató . Itt kihagytuk a m egjegyzéseket, m i­
E zek az arg u m e n tu m o k a k in y o m tatan d ó egész szám , a fo rm átu m -strin g (p fm t) vel az u tasításo k m o sta n ra m ár jól ism ertek. E zért haszn álh atju k a kétoszlopos
cím e és a printf függvény k ó d ja (127). Vegyük észre, hogy a p fm t fo rm átu m -strin g fo rm á tu m o t is. A 4. sor az üres verem cím ét teszi a b ázism u tató regiszterbe, ezzel
egy % d bejegyzéssel jelzi, hogy a printf hívás a rg u m e n tu m á b an egy egész változó leh ető v é teszi, hogy a 10. sorban a v ere m ta k a rítá st egyszerűen a b ázism u tató n ak
találh ató , am ely kiegészíti a k im en etet.
#include "../syscalnr.h" ! 1 .SECT .TEXT !20
A 17. sor ta k a rítja ki a v erm et. M ivel a p ro g ra m az 5. so rb an azzal k e zd ő d ö tt,
vecprint: ! 21
hogy a v e re m m u ta tó t a b ázism u tató b a tö ltö ttü k , a; .SECT .TEXT ! 2 PUSH BP !22
vecpstrt: ! 3 MOV BRSP !23
MOV SP,BP MOV BP,SP !4 MOV CX,4(BP) !24
PUSH ved ! 5 MOV BX,6(BP) !25
MOV CX,frmatstr-vecl !6 MOV Sl,0 !26
u tasítást is h aszn á lh a tn án k a v erem ta k arítá sá ra . A z u tóbbi m eg o ld ásn ak az az elő ­
SHR CX ! 7 PUSH frmatkop !27
nye, hogy a p ro g ram o zó n ak n em kell a m ű v eletso r a latt a v erm et egyensúlyban PUSH CX ! 8 PUSH frmatstr !28
tartan ia. A fő p ro g ram eseté n ez persze n em nagy p ro b lém a, de a szu b ru tin o k n ál CALL vecprint ! 9 PUSH _PRINTF !29
ez az elavult lokális változókhoz h aso n ló szem ét eld o b á sá n a k egy egyszerű m ódja. MOV SP,BP ! 10 SYS ! 30
A vecm ul szu b ru tin t m ás p ro g ra m o k b a n is h aszn álh atju k . H a a vecprod.s fo r­ PUSH 0 ! 11 MOV -4(BP),frmatint !31
PUSH _EXIT ! 12 1: MOV DI,(BX)(SI) !32
rásfájlt m ás assem bly fo rrásfájlo k m ögé írjuk a p aran csso rb a n , a k k o r re n d e lk e ­
SYS ! 13 MOV -2(BP),DI !33
zésünkre áll a két fix hosszúságú v e k to r szo rzására szolgáló szu b ru tin . Javasoljuk, !34
SYS
hogy először távolítsuk el az _EXIT és _PRINTF k o n stan s d efiníciókat, hogy e lk erü l­ .SECT .DATA ! 14 INC Sl !35
jü k azok többszö ri d efiniálását. H a a syscalnr.h fejlécfájlt b eillesztjük valahova, a k ­ ved:.WORD 3,4,7,11,3 ! 15 LOOP 1b !36
k o r m á r m áshol n em szükséges a ren d szerh ív ás k o n sta n so k at definiálni. frmatstr: .ASCIZ "%s'' ! 15 PUSH '\n' !37
PUSH PUTCHAR !38
frmatkop: ! 17 SYS !39
.ASCIZ "The array contains,, ! 18 MOV SP,BP !40
C.8.4. Hibakeresés egy tömbkiíró programban frmatint; .ASCIZ "% d" ! 19 RÉT !41

A z előző p éld ák b an a p ro g ra m o k eg yszerűek voltak, és h ib átlan o k . M ost m eg m u ­ C.16. ábra. Az arrayprt program hibakeresés előtt
tatjuk, hogyan seg íth et a nyom követő a h ib ak eresésb en h ib ás p ro g ra m o k esetén .
A következő p ro g ra m n a k egy egész szám okból álló tö m b ö t k ellen e k in y o m tat­ a v e re m m u ta tó b a töltésével végezzük el, ahogy azt az előző p éld án ál em lítettük.
nia, am elyet a v e d cím ke u tá n a d u n k m eg. A p ro g ra m k ezd eti v álto zata azo n b an S zintén láttu k m ár az előző p éld a 5 -9 . soráb an az a rg u m en tu m o k kiszám ítását és
h áro m h ib át is tartalm az. E zek n ek a h ib ák n ak a kijav ítására az assem b lert és a v e re m re helyezését a hívás elő tt. A 22-25. so r a szubrutin regisztereit tölti fel.
nyom követőt h aszn álju k m ajd, de először nézzük m eg a kódot. A 27-30. sor azt m u tatja, hogyan leh et egy stringet kinyom tatni, a 31-34. sor p e ­
M ivel m in d en p ro g ra m n ak szüksége van ren d szerh ív áso k ra, és ezé rt d efiniálnia dig a printf rendszerhívást m u tatja egy egész érték re. Vegyük észre, hogy a string
kell k o n stan so k at, m elyekkel a hívási so rszám o k at azo n o síth atja, e z ek et a k o n s­ cím e k erü l a v erem be a 27. sorban, a 33. sorban azo n b an m ag át az egész é rték et
tans definíciókat a ..Isyscalnrh nevű k ü lö n fejlécfájlba te ttü k , am elyet a k ó d 1. so ­ tesszük a verem b e. M in d k ét esetb en a PRINTF-nek a fo rm átu m -strin g az első arg u ­
ráb an illesztünk be. E z a fájl az alábbi, a folyam at elején m eg n y itásra k e rü lő fájlle­ m en tu m a. A 37-39. sorok között egyetlen k a ra k te r k in y o m tatása láth ató a putchar
írókhoz is definiál k o n stan so k at: rendszerhívással.
M o st p ró b álju k m eg lefo rd ítan i és fu tta tn i a p ro g ram o t. M iu tán az:
762 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C.8. p é l d A k 763

as88 arrayprt.s A javítás u tá n a szám ok k in y o m tato tt listája helyes.


V á r rá n k azonban m ég egy hiba. A m ik o r a vecprinl b efejeződik és visszatér, a
p aran cso t begépeljük, o p e ra n d u s hib át k ap u n k az arrayprt.$ fájl 28. so ráb an . E zt a nyom követő panaszk o d ik a v e rem m u tató ra. Ilyenkor az a term észetes, hogy m eg­
fájlt az assem bler g en e rá lja a b eillesztett fájlok és a forrásfájl összekom binálásá- n ézzük, hogy a vecprint hívásakor a v erem re k erü lő é rté k m egegyezik-e a verem
val, tiogy egyetlen ö sszetett fájl álljon elő, am i az assem b ler tényleges b e m e n e té t te te jé n levő é rték k el akkor, am ikor a 41. sorban a RET-et végrehajtjuk. N em egye­
képezi. A hhoz, hogy lássuk, a valóságban hol is van a 28. sor, m eg kell vizsgálnunk zik m eg. A m egoldás a 40. so r h elyettesítése az alábbi kettővel:
az arrayprt.s fájl 28. so rát. N em n ézh e tjü k az arrayprt.s fájlban, m e rt a k ét fájl k ü ­
lönbözik, mivel a fejlécfájl so rró l so rra k erü l b eillesztésre az arrayprt.S fájlba. A z ADDSRIO
anvyprt.S fájl 28. so ra az arrayprt.s 7-es szám ú so rá n a k felel m eg, mivel a beillesz­ POP BP
te tt fejlécfájl, asyscalnr.h 21 sorb ó l áll.
A z a rra y p rt.s fájl 28. so rá t könnyű m eg találni U N IX -re n d sz erek e n az alábbi A z első u tasítás eltü n te ti a vecprint a la tt a v erem re k erü lt 5 szót, így felfedve a BP
paranccsal: érté k é t, am elyet a 22. sorban m e n te ttü n k el. E zt a verem ből a BP-be töltve m ár
hely reállítju k a BP hívás előtti érté k é t, és a helyes visszatérési cím m ost m ár a ve­
head -28 arrayprt.$ re m te te jé n van. A p ro g ram így m ár hiba nélkül áll le. A h ib ak eresés assem bly
k ó d b an sokkal inkább m űvészet, m int tudom ány, de nyom követő használatával
am ely a k o m binált fájl első 28 so rát jele n íti m eg. A lista legalsó so ra tarta lm az z a a sokkal könnyebb, m int anélkül.
hibát. Ily m ó d o n (vagy egy szerk esztő t használva ab b an a 28. so rt kiválasztva) lá t­
hatju k , hogy az SHR u tasítást ta rta lm a z ó 7. so rb an van a hiba. E zt a C.4. áb rá n ta ­
lálh ató u tasítástáb lázattal összevetve m á r lá th a tó is a p ro b lém a: a lé p te té s szám át C.8.5. String-kezelés és stríng-utasítások
k ifelejtettük. A kijav íto tt 7. so r így néz ki:
F ü ggelékünk legfőbb célja, hogy m egm utassa, hogyan kezeljük az ism étlődő string-
SHR e x ,1 utasítások at. A C.17. áb rán k ét egyszerű stringkezelő p ro g ram láth ató , a stmgcpy.s
és a reverspr.s, m in d k ettő m egtalálható az examples könyvtárban. A C.17. (a) ábrán
N agyon fo n to s m egjegyeznünk, hogy a h ib át az e red e ti arrayprt.s fo rrásfájlb an kell lá th a tó a string m ásolását végző szubrutin. E z a stringpr szu b ru tin t hívja, am ely egy
kijavítani, n em p edig az am iyprt.$ ko m b in ált forrásfájlb an , hiszen az u tó b b it az as­ külön stringprs fájlban található. E n n ek a listáját nem tartalm azza ez a függelék. A
sem b ler m in d en hívásakor újrag en erálja. külö n forrásfájlokban táro lt szubrutinokat használó p ro g ram o k fordításához csak
A fo rrásk ó d k övetkező fo rd ítási k ísérletén ek sik erü ln ie kell. E z u tán e lin d íth a t­ fel kell sorolni az összes forrásfájlt az as88 parancsban - elsők ént a fő p ro g ram ét - ,
ju k a nyom követőt a: am elyből a fu tta th a tó és a segédfájlok neve képződik. P éldául a C. 17. (a) áb ra p ro g ­
ram jáh o z a következőt kell írnunk:
t88 arrayprt
as88 stmgcpy.s stringpr.s
paranccsal. A nyom követési folyam at a la tt láth atju k , hogy a k im en e t nincs össz­
han g b an az adatszeg m en sb en talá lh a tó v ek to rral. A v ek to r a 3, 4, 7 ,11 és 3 e le m e ­ A C.17. (b ) á b ra p ro g ram ja fo rd íto tt so rren d b en ny o m tatja ki egy string k a ra k te ­
ket tartalm azza, a m e g je le n ített a d a to k viszont a 3, 1024 stb. é rté k e k e t m u tatják . reit. N ézzük szépen sorban.
N yilvánvaló, hogy valam i nincs ren d b en . H ogy m egm utassuk, hogy a sorszám ok valóban csak m egjegyzések, a C.17. (a)
A h ib a m eg k ereséséh ez ú jra kell fu tta tn u n k a n yom követőt, e z ú tta l lép ésrő l lé ­ áb rá n a so ro k at az első cím kétől kezdve szám oztuk csak, és kihagytuk a szám o­
pésre, m egvizsgálva a gép á lla p o tá t a helytelen é rté k k in y o m tatá sá t m egelőzően. zásból az e lő tte lévőket. A fő p ro g ram a 2-8. sorban először m eghívja az strngcpy
A k in y o m tatan d ó é rté k a 32. és 33. so ro k b an tá ro ló d ik a m em ó riáb an . M ivel hely­ ru tin t k ét arg u m en tu m m al, hogy a fo rrás strin g et a célba m ásolja, ahol a forrás
telen é rté k kerü l k in y o m tatásra, é rd em es a h ib a o k át e rre fe lé k eresni. A ciklus string a m e sg l, a cél string pedig a m esg l.
m ásodik m e n eté b e n azt látjuk, hogy SÍ p á ra tla n szám , h o lo tt e n n e k nyilvánvalóan M ost nézzük a 9. soron k ezd ő d ő strngcpy ru tin t. E z azt várja, hogy a célpuffer és
páro sn ak kellene lennie, hiszen szavakat indexel, n em p ed ig b ájto k at. A p ro b lém a a fo rrás-strin g cím ét a hívás e lő tt a v erem re helyezzük. A 10-13. sorban a használt
a 35, sorban van, am ely Sl-t 1-gyel növeli, h o lo tt 2-vel kellen e. A h ib a jav ításáh o z reg isz te rek e t elm en tjü k a verem be, hogy később a 27-30. sorban helyreállíthassuk
ezt a so rt az aláb b ira kell cserélni: azokat. A 14. sorban 5P-t BP-be m ásoljuk a szokásos m ódon. így BP h aszn álh ató az
a rg u m e n tu m o k b e tö ltésére. A 26. sorban, a v erm et ism ét BP-nek SP-be m áso lásá­
ADD 51,2 val tak arítju k.
764 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S C.8. P ÉL D Á K 765

.SECT TEXT #include "../syscalnr.h" !1 to tt é rté k e t AL értékével, m ajd m en et közben növeli Dl-t. E zen tú lm en ő en , ugyan­
stcstart: start: MOV Dl.str I 2 úgy ism ételh ető , m int a MOVSB. T ehát a 15. sorban AX, és így AL is ki van ürítve, a
PUSH mesgl 2 PUSH AX ! 3 16. so rb an Dl-be b etö ltjü k a m u ta tó t a verem ből. CX pedig a -1 k ezd ő érték et kapja
PUSH mesg2 3 MOV BRSP ! 4
a 17. sorb an .
CALL strngcpy 4 PUSH „PUTCHAR ! 5
ADD SP,4 5 MOVB AL,'\n' I6 A 18. so rban van a REPNZSCASB, am ely ciklusban végzi az összehasonlítást, és
PUSH 0 6 MOV CX,-1 !7 egyenlőség e setén b eállítja a zéró flaget. A ciklus m inden lép éséb en CX csökken,
PUSH 1 7 REPNZ SCASB I8 a ciklus p ed ig akkor áll le, am ik o r a zéró flag beállítódik, m ert a REPNZ a zéró fla­
SYS 8 NEG ex 9 g et és CX-et is vizsgálja. A MOVSB ciklus szám ára a lépesek szám át ezu tán 19. és 20.
strngcpy: 9 STD 10
sorban CX aktuális érté k e és a kezdő -1 k özötti különbségből szám ítjuk.
PUSH ex 10 DEC ex
PUSH Sl SUB Dl,2 12 Egy kicsit n ehézkes, hogy k ét ism étlődő u tasításra van szükség, de ez az ára a n ­
PUSH Dl 12 MOV SI,DI 13 nak a tervezési d ö n tésn ek , hogy a m ozgató u tasításo k ne befolyásolják a fe lté te l­
PUSH BP 13 1: LODSB 14 k ó d o k at. A ciklusok közben növelni kell az in dexregisztereket, eh h ez pedig az
MOV BP,SP 14 MOV (BP),AX 15 szükséges, hogy az irány-flag tö rö lt á llap o tú legyen.
MOV AX,0 15 SYS 16
A 23. és 25. sorok ny o m tatják ki az átm áso lt stringet a stringpr szub rutin hívásá­
MOV DI,10(BP) 16 LOOP 1b 17
MOV CX,-1 17 MOVB (BP)/\n' I 18 val, m ely az exam ples könyvtárban találh ató . E z nagyon egyszerű, úgyhogy itt nem
REPNZSCASB 18 SYS ! 19 is tárgyaljuk.
NEG ex 19 PUSH 0 120 A C.17. (b) áb rán láth ató fo rd íto tt so rre n d b e n nyo m tató p ro g ram első sora a
DEC ex 20 PUSH _EXIT !21 szokásos rendszerhívási szám okat illeszti be. A 3. sorban egy helyfoglaló (dum m y)
MOV S1,10(BP) 21 SYS 122
é rte k e t teszünk a verem te te jé re , később a 15. utasítás ide fogja ten n i a k iírandó
MOV DI,12(BP) 22 .SECT .DATA 123
PUSH Dl 23 str: .ASCIZ "reverse\n" !24 k a ra k tert. A 4. sorban a BP b ázism u tató t a verem aktuális te te jé re irányítjuk. A
REP MOVSB 24 p ro g ra m egyesével ny o m tatja m ajd az A S C II k a ra k te re k e t, te h á t a _PUTCHAR n u ­
CALL stringpr 25 m erik u s é rté k é t tesszük a verem re. Figyeljük m eg, hogy a SYS hívás v ég reh ajtása­
MOV SRBP 26 k o r BP a k in y o m tatan d ó k a ra k te rre m u tat.
POP BP 27
A 2., 6., és 7. sorok a Dl, AL és CX reg iszte rek et készítik elő az ism étlődő SCASB
POP Dl 28
POP 51 29 u tasítás szám ára. A szám láló regiszter és a célindex a string-m ásoló ru tin h o z h a ­
POP ex 30 so n ló an k a p n ak é rték et, AL érték e viszont az újsor k arak ter, nem pedig a 0. Így a
RÉT 31 SCASB u tasítás diz str string k a ra k te re in e k é rté k é t a \ n érték k el h asonlítja össze a 0
■SECT .DATA 32 h elyett, a z éró flaget pedig ak k o r állítja be, h a m eg találta azt.
tnesg 1: .ASCIZ "Have a look\n" 33
tnesg2: .ASCIZ "qrst\n"
A REP SCASB növeli a Dl regisztert, te h á t a találat u tán a célindex az újsor k a ra k ­
34
.SECT.BSS te rt követő nu lla k a ra k te rre m utat. A 12. so rb an Dl-t kettővel csökkentjük, hogy az
a strin g u tolsó b e tű jé re m utasson.
(a) (b) H a a strin g et fo rd íto tt so rren d b en b ejárjuk, és k a ra k te re n k é n t kinyom tatjuk,
a k k o r p o n t elérjü k célunkat, úgyhogy a 10. sorban beállítjuk az irány-flaget, hogy
C.17. ábra. (a) Egystring másolása (strngcpy.s). (b) Egystring kiírása visszafelé (reverspr.s) a strin g u tasításo k b an az indexregiszterek csökken tése tö rtén jen . A 14. so rb an a
LODSB egy k a ra k te rt m ásol AL-be, m ajd a 15. sorban ez a k a ra k te r a _PUTCHAR m el­
A szub rutin lelke a 24, so rb an lévő REP MOVSB utasítás. A MOVSB u tasítás az Sl lé k erü l a v erem b en , végül pedig a SYS utasítás kinyom tatja.
által m u ta to tt b á jto t m ásolja a Dl által m u ta to tt m em ó riacím re. Sl és Dl is 1-gyel A 18. és 19. so rb an ta lá lh a tó utasításo k m ég kin y o m tatn ak egy újabb so re m e ­
nő. A REP egy ciklust képez, am elyben ez az u tasítás ism étlődik, CX é rté k é t m in d en lést, m ajd a p ro g ram a szokásos m ó don az _EXIT hívással é r véget.
b á jtra 1-gycl csökkentve. A ciklus a k k o r é r véget, am ik o r CX 0 lesz. A p ro g ra m n ak a jelen verziója hibás. A h ib át m egtalálhatjuk, ha a p ro g ram o t
M ielő tt a /o n b a n fu tta th a tn á n k a REP MOVSB ciklust, a re g iszte rek et elő kell k é ­ lép ésen k én t nyom on követjük.
szíteni; ezt a 15-22. sor teszi m eg. A z 51 fo rrásin d ex a 21. so rb an v erem b e helye­ A /str p a ran cs az str strin g et a nyom követő ad atm ező jéb e teszi. M ivel az adat
zett arg u m e n tu m o t kapja, a Dl cclin d ex et p ed ig a 22. so rb an készítjük elő. CX é rté ­ cím én ek n u m erikus érté k e is ad o tt, k id eríth etjü k , hogyan fu tn ak végig az indexre­
kének m eg h atáro z ása kicsit b onyolultabb. M egjegyezzük, hogy a string végét egy giszterek az a d a to n a string pozíciójához képest.
nulla bájt jelzi. A MOVSB u tasítás nem állítja a z éró flaget, a SCASB (SC A n String A hiba azonban csak a re tu rn sokszori m egnyom ása u tán jelentkezik. A nyom ­
Byte, bájt-string b e já rá sa ) u tasítás viszont igen. E z ö sszeh aso n lítja a Dl által m u ta- k övető p a ra n csain ak h asználatával gyorsabban ráta lá lu n k a p ro b lém ára. Indítsuk
766 C) ASSEMBLY NYELVŰ PROGRAMOZÁS C.8. p E l d A k 767

el a nyom követőt, és ad ju k ki a 13 p aran cso t, hogy a ciklus b elsejéb e jussunk. M ost #include "../syscalnr.h" ! 1 routO: MOV AX,mesO 125
.SECT .TEXT I2 JMP 9f !26
a b paranccsal elh ely ezh etü n k egy tö ré sp o n to t a 15. soron. K ét ú jab b so rem elés
jumpstrt: I 3 routl; MOV AX,mes1 !27
u tán láth atju k , hogy az u to lsó b etű , az e m egjelenik a k im en eti m ező b en . A z r p a ­ PUSH strt I4 JMP 9f !28
ran cs a nyom követőt addig fu tta tja , am íg tö ré sp o n th o z vagy a p ro g ra m végéhez MOV BP,SP ! 5 rout2: MOV AX,mes2 !29
nem ér. Ily m ó d o n az r p ara n cs ism ételt k iadásával á tfu th a tu n k a b e tű k ö n , am íg PUSH _PRINTF I6 JMP 9f !30
közel nem ju tu n k a p ro b lém áh o z. E ttő l a p o n ttő i kezdve m á r fu tta th a tju k lé p é se n ­ SYS I 7 rout3: MOV AX,mes3 131
PUSH _GETCHAR !8 JMP 9f 132
k én t a nyom követőt, am íg m eg n em látjuk, m i tö rté n ik a kritik u s u tasításo k b an .
1: SYS !9 rout4: MOV AX,mes4 133
K o n k rét so rra is h ely ez h etü n k el tö ré sp o n to t, de észben kell ta rta n i, hogy CMP AX,5 ! 10 JMP 9f I 34
a ../syscalnr.h fájlt is b eillesztettü k , am itől a sorszám o k 21-gyel elto ló d n ak . JL Bf 111 routS: MOV AX,mes5 135
K övetkezésképp en a 15. so rra a 36b paran ccsal h ely ez h etü n k el tö ré sp o n to t. E z CMPB AL/O' I 12 JMP 9f 136
nem szép m egoldás, e z é rt sokkal jo b b a 2. so ro n az u tasítás elő tt m e g a d o tt start JL 1b I 13 routő: MOV AX,mes6 137
CMPB AL,'9' I 14 JMP 9f 138
globális cím két h asználni, és a Istart+ 13b p a ra n c so t kiadni, am ely u g y an o d a helye­
JLE 2f 115 rout7; MOV AX,mes7 !39
zi el a tö ré sp o n to t anélk ü l, hogy a b e illesztett fájl m é re té t ism erni kellene. MOVB AL,'9'+1 116 JMP 9f !40
2: MOV BX,AX 117 routS: MOV AX,mes8 !41
AND BX,OXf 118 JMP 9f 142
SÁL BX,1 !19 erout: MOV AX,emes !43
C.8.6. Ugrótáblák
CALL tbl(BX) !20 9: PUSH AX 144
JMP Ib !21 PUSH _PRINTF 145
Szám os program ozási nyelvben létezik case vagy switch utasítás, amellyel valam ilyen 8: PUSH 0 !22 SYS 146
változó num erikus érték e alapján választhatunk több ugrási lehetőség közül. N éh a PUSH EXIT 123 ADD SP,4 147
assembly program o k b an is szükség van ilyen többirányú elágazásra. G ondoljunk p él­ SYS 124 RÉT 148
dául arra, am ikor rendszerhívás szubrutinoknak egy halm azát összekapcsoljuk egyet­
len SYS csapda rutinba. A C.18. ábrán m u ta to tt jum ptbl.s p ro g ram bem u tatja, hogyan
.SECT .DATA !49
lehet ilyen több elágazásos kapcsolókat p rogram ozni a 8088-as assem blerben. tbl: .WORD routO,rout1 ,rout2,rout3,rout4,rout5,rout6,rout7,rout8,rout8,erout !50
A p ro g ram egy string kinyom tatásával k ezdődik, am elynek strt a cím kéje, ezzel tnesO: .ASCIZ "This is a zero.Vn" 151
felkéri a felhaszn áló t, hogy g ép eljen be egy oktális szám jegyet (4 -7 . sor). E z u tá n a mesi: .ASCIZ "How about a one.\n" 152
szabványos b em e n e trő l beolvas egy k a ra k te rt (8 és 9. sor). H a AX érté k e 5-nél k i­ tnes2; .ASCIZ "You asked fór a two.\n" 153
mes3; .ASCIZ "The digit was a three.\n" 154
sebb, a p ro g ram azt fájlvégjelzőnek értelm ezi, és a 8-as cím k ére, a 22-es so rra u g ­
mes4; .ASCIZ "You typed a four.\n" 155
rik, ahol 0 állap o tk ó d d al kilép. mes5: .ASCIZ "You preferred a five.\n" 156
H a n em fájlvéget talá ltu n k , a k k o r az AL-ben lévő b eo lv aso tt k a ra k te rt m egvizs­ mes6: .ASCIZ "A six was encountered.\n" 157
gáljuk. M in d en a 0 szám jegynél kisebb k a ra k te rt szóköznek tek in tü n k , am elyet mes7: .ASCIZ "This is number seven.\n" !58
figyelm en kívül is hagyunk a 13. so rra tö rté n ő ugrással, ah o l m e g tö rté n ik a k ö v et­ mes8: .ASCIZ "This digit is nőt accepted as an octal.\n" !59
emes; .ASCIZ "This is nőt a digit.Try again.Vn" !60
kező k a ra k te r beolvasása. M in d en a 9-es szám jegynél nagyobb k a ra k te rt h ib ás b e ­
strt: .ASCIZ "Type an octal digit with a return. Stop on end of file.\n" 161
m e n e tn e k tek in tü n k . A 16. so rb a n ezt a 9-es szám jegyet k ö v ető k a ra k te rré , A S C II
k e ttő sp o n ttá alak ítju k át.
így a 17. sorban AX-ben egy a 0 szám jegy és a k e ttő sp o n t közé eső é rté k e t ta lá ­ C.18. ábra. Egy többirányú elágazást ugrótábla alkalmazásával bemutató program
lunk. E z t m ásoljuk BX-be. A 18, so rb an az AND u tasítás k im aszkolja az alsó négy
bit kivételével az összes b ite t, am i egy 0 és 10 k ö zö tti szám ot ered m én y ez (ab b ó l a n e t cím ét teszi a v erem b e, és u tá n a egy olyan _PRINTF ren d szerszu b ru tin -h ív ásra
tényből fak ad ó an , hogy az A S C II 0 a 0x30), M ivel szavaknak és n e m b á jto k n a k a ugrik, am ely közös.
táb lázatáb an fogunk indexelni, BX é rté k é t m egszorozzuk k ettő v el a b a lra lép te tő A hh o z, hogy m eg értsü k , mi is tö rtén ik , tisztában kell le n n ü n k azzal, hogy a JIVIP
utasítással a 19. sorban. és CALL u tasításo k a PC-be valam ilyen kódszegm ensbeli cím et tö lten ek . A z ilyen cí­
A 20. sorban következik egy CALL u tasítás. A z effektív cím et úgy kapjuk, hogy BX m ek is csak b in áris szám ok, és az assem bly folyam at közben m in d en cím et a nekik
é rté k é t a tbl cím ke n u m erik u s é rté k é h e z adjuk, m ajd e n n ek az ö ssz e te tt cím nek a m egfelelő b in áris érték k el h elyettesítünk. E zekkel a bináris szám okkal inicializál­
ta rta lm á t tö ltjú k a PC utasításszám láló b a. h a tu n k egy ad atszegm ensbeli tö m b ö t, és p o n to san ez tö rté n ik az 50. sorban. így a
E z a p ro g ra m tíz szu b ru tin b ó l választ egyet a n n ak m eg felelő en , hogy m ilyen k a ­ tbl cím kénél k ezd ő d ő töm b a routO, ro u tl, roul2 stb. k ezdőcím eit tartalm azza, cí­
ra k te rt olvastunk a szabványos b e m e n e trő l. M indegyik szu b ru tin valam ilyen úze- m e n k é n t k ét bájton. A cím ek 2 bájto n helyezkednek el, ez a m agyarázat a rra, hogy
768 C) A S S E M B L Y N Y ELV Ű P R O G R A M O Z Á S C.8. PÉLDAK 769

m iért van szükség az 1 bites e lto lásra a 19. sorb an . A z ilyen típusú tá b lá k a t gyak­ #include "../syscalnr.h" ! 1 PUSH _EX1T ! 43 PUSH buf !!85
ran u g ró tá b lá n a k ( d is p a tc h ta b le ) nevezzük. bufsiz = 512 !2 PUSH EXIT 44 PUSH (fildes) !86
.SECT .TEXT !3 SYS 45 PUSH _READ ! 87
A ru tin o k m ű k ö d ése az eroiű cím kénél lá th ató a 4 3-48. sorig. Ez a rész kezeli
infbufst: !4 3: CALL getnum 46 SYS ! 88
a tarto m án y o n kívüli szám jegy esetét. A z ü zen et cím e elő szö r AX-be, m ajd a ve­ MOV BRSP I5 CMP AX,0 47 ADD SP,8 ! 89
rem b e kerül a 43. so rb an . A zu tán a _PR|NTF ren d szerh ív ás so rszám át tesszük a v e ­ MOV Dljinein !6 JLE 8f 48 MOV CX,AX ! 90
rem re. A ztán következik a rendszerhívás, m ajd a verem tak arítása, és végül a ru tin PUSH _GETCHAR !7 MOV BX,(curlin) 49 ADD BX,CX ! 91
visszatér. A többi kilenc ru tin , a routO, ..., routS, m indegyike b etö lti a saját ü z e n e ­ 1: SYS !8 CMP BX,0 50 MOV Dl,buf !92
CMPB ALAn' !9 JLE 7f 51 RÉT !93
té n ek cím ét AX-be, m ajd az eroul m ásodik so rá ra ugrik, hogy kinyom tassa az ü z e ­
JL 9f 110 CMP BX,(count) 52
n etet, és befejezze a szu b ru tin t. JE 1f !11 JG 7f 53 getnum: 94
A z ugrótáblák jo b b m eg ism erésén ek é rd ek éb en jó , ha a p ro g ra m o t tö b b k ü lö n ­ STOSB ! 12 SHL BX,1 54 MOV Dl, linein 95
böző b em en e ttel is végigkövetjük. G yak o rlásk ép p en a p ro g ra m o t m ód o síth atju k JMP 1b !13 MOV AX,llnh-2(BX) 56 PUSH _GETCHAR 96
tigy, hogy m inden k a ra k te r h a tására valam ilyen értelm es m űvelet tö rtén jen . Például 1: PUSH 0 114 MOV CX,linh(BX) 55 1: SYS 97
PUSH linein 115 PUSH 0 57 CMPB AL,^n' 98
az oktális szám jegyeken kívül m inden m ás k a rak ter adjon egy h ib aü zen etet.
PUSH _OPEN ! 16 PUSH 0 58 JL 9b 99
SYS ! 17 PUSH AX 59 JE If 100
CMP AX,0 !18 PUSH (fildes) 60 STOSB 101
C.8.7. Puffereit és véletlen fájlelérés JL 9f 119 PUSH _LSEEK 61 JMP 1b 102
MOV (fildes),AX !20 SYS 62 1: MOVB(DI),W 103
MOV SI,linh+2 121 SUB CX,AX 63 PUSH curlin 104
A C.19. áb rán láth ató InF ilB uf.s p ro g ram a v életlen fájl B /K m ű v eletek et szem ­
MOV BX,0 122 PUSH CX 64 PUSH numfmt 105
lélteti. A fájlról feltételezzü k , hogy n éh án y sorból áll, és a sorok hosszúsága k ü ­ 1: CALL filibuf !23 PUSH buf 65 PUSH linein 106
lönböző lehet. A p ro g ram elő szö r beolvassa a fájlt, m ajd egy olyan tá b lá z a to t épít CMP CX,0 !24 PUSH (fildes) 66 PUSH _SSCANF 107
fel, am elynek az n. bejegyzése az n. sor k e zd eté n e k fájlbeli pozíciója. E zu tán , ha ILE 3f !25 PUSH _READ 67 SYS 108
k eresü n k egy sort, ak k o r a n n a k p ozícióját k ik e re sh etjü k a táb lázatb ó l, m ajd a sort 2: MOVBAL,'\n' !26 SYS 68 ADD SP,10 109
REPNE SCASB !27 ADD SP,4 69 RÉT 110
az lseek és a read ren d szerh ív áso k k al beolv ash atju k . A fájl neve a szabványos b e ­
JNE 1b !28 PUSH 1 70
m en et első so rak é n t ad o tt. E z a p ro g ram tö b b viszonylag független k ó d ré sz le tet 71 .SECT .DATA 111
INC (count) !29 PUSH _WRITE
tartalm az, m elyek egyéb célo k ra is m ó d o síth ató k . MOV AX,BX !30 SYS 72 errmess: 112
A z első ö t sor egyszerűen a ren d szerh ív áso k so rszám ait és a p u ffe r m é re té t defi­ SUB AX,CX !31 ADD SR I4 73 .ASCIZ "Open %s failed\n" 113
niálja, valam int a szokásos m ó d o n a v erem te te jé re állítja a b ázism u tató t, A 6-13. XCHG SÍ,Dl !32 JMP 3b 74 numfmt: .ASCIZ "%d" 114
STOS !33 8: PUSH scanerr 75 scanerr: 115
so r olvassa be a szabványos b e m e n e trő l a fájl nevét, m ajd ezt egy strin g k én t a //-
XCHG SI,DI !34 PUSH ^PRINTF 76 .ASCIZ "Type a number.\n" 116
nein cím kére táro lja. H a a fájlnév nincs re n d e se n lezárva egy újsor k a ra k te rre l, a k ­ !35 SYS 77 .ALIGN 2 117
CMP CX,0
k o r h ib a ü z e n e t keletk ezik , és a folyam at nullátó l k ü lö n b ö ző á lla p o tta l lép ki. E z a JNE 2b !36 ADD SP,4 78 .SECT.BSS 118
38. és a 45. sor k ö zö tt tö rtén ik . M egjegyezzük, hogy a fájlnév cím e a 39,, míg a h i­ JMP 1b !37 JMP 3b 79 linein: .SPACE 80 119
b a ü zen et cím e a 40. so rb an k erü l a v erem re. H a m egnézzük m ag át a h ib a ü z e n e tet 9: MOV SRBP 138 7: PUSH 0 80 fildes: .SPACE 2 120
PUSH linein !39 PUSH _EXIT 81 linh: .SPACE 8192 121
(a 113. so rb an ), ak k o r látjuk a % s string jelzést a _PRINTF fo rm á tu m á b a n , Kle k erül
PUSH errmess !40 SYS 82 curlin: .SPACE 4 122
beillesztésre nliriein strin g tartalm a. 123
PUSH PRINTF !41 fillbuf; 83 buf: .SPACE bufsiz+2
H a a fájlnév m áso lása p ro b lém a nélkül m e g tö rté n t, a fájl m egnyitása a 14-20. SYS 1.42 PUSH bufsiz !84 count: .SPACE 2 124
sorban tö rtén ik . H a a m egnyitás sik ertelen , a k k o r a visszatérési é rté k negatív, és a
38. so rb an lévő 9-es cím kére ugrunk, hogy a h ib a ü z e n e te t kiírjuk. H a a ren d sz e rh í­ C.19. ábra. Egy program puffereit olvasással és véletlen fájleléréssel
vás sikeres, akko r a visszatérési é rté k a fájlleíró, am elyet a fildes v áltozóban tá ro ­
lunk el. E rre a fájlleíró ra szükség lesz a követk ező read és lseek hívásoknál. ra k te ré n e k fájlcím e lesz, e zért ezt a p u ffer első feltö ltése elő tt 0-ra inicializáljuk
E z u tá n a fájlt 512 b ájto s b lo k k o k b an beolvassuk, m in d en b lo k k o t a b u f nevű (22, sor).
pufferb en táro lu n k . A p u ffé rt k izárólag a zért allokáljuk a szükséges 512 b ájtn ál A pu ffer feltö ltését a fiU b u f ru tin intézi a 83-93, sorban. M iu tán a read szám ára
két b ájttal nagyobbra, hogy b em u tassu k , hogyan leh et egy kifejezésben (a 123. az a rg u m e n tu m o k at a v erem re tettü k , következik a rendszerhívás, am ely a tén y le­
so rb an ) keverni egy szim bolikus k o n stan st és egy egész szám ot. Ugyanígy, a 21. gesen b eo lv aso tt k a ra k te re k szám át AX-be teszi. E zt a szám ot m ásoljuk CX-bc, és
sorban Sl-be b etö ltjü k a linh tö m b m áso d ik ele m é n e k cím ét, ezáltal a tö m b elején e zu tá n CX a m ég a p u fferb en m arad t k a ra k te re k szám át tárolja. A z első be nem o l­
m eg m arad a 0 kezd eti é rté k ű szó. A BX reg iszte rb en a fájl első b e n em olv aso tt ka- vasott k a ra k te r fájlpozícióját BX tárolja, te h á t CX-et BX-hez kell adni a 91. sorban.
770 C) A S S E M B L Y N Y ELV Ű P R O G R A M O Z Á S
C.9. FELA D A T O K 771

A 92. sorban a p u ffer alján ak cím ét Dl-be tesszük, ezzel előkészítve a következő 0 k erü l a v e rem b e az 57. sorban. A következő arg u m en tu m a fájleltolás. D efiníció
újsor k a ra k te r m eg k eresését a p u fferb en . szerin t ez az arg u m en tu m egy hosszú (azaz 32 bites) egész, te h á t először egy 0 szót
M iután a/í//i> u /ru tin b ó l v isszatérünk, a 24. so r ellenőrzi, hogy egyáltalán sike­ m ajd AX é rté k é t tesszük a v erem b e az 58. és 59. sorokban, így alkotva egy 32 bi­
rült-e valam it beolvasni. H a nem , a 25. so rb an kiu g ró n k a p u ffereit olvasási ciklus­ te s egészet. E z u tá n a fájlleíró és az LSEEK kódja m ásolódik a v erem b e, m ajd a 62.
ból a p ro g ram m áso d ik részére. so rban m eg tö rtén ik a hívás. A z LSEEK visszatérési érték e, a fájl aktuális pozíciója,
K észen állunk a p u ffe r b ejárására. A 26. so rb an a \n szim b ó lu m o t AL-be tö lt­ a DX: AX re g iszter-ö sszetételb en találh ató . H a a szám elfér egy gépi szóban (am i
jük, m ajd a 27. so rb an ezt az é rté k e t k eressü k a REP SCASB ciklussal a pufferb eli igaz 65 536 b ájtn ál rövidebb fájlok ese té n ), ak k o r AX tartalm azza a cím et, teh át ezt
szim bólum ok között. K ét m ó d o n lé p h e tü n k ki a ciklusból: vagy am ik o r CX eléri a CX-ből kivonva (63. sor) m egkapjuk a so rn ak a p u fferb e tö ltéséh ez szükséges b e­
nullát, vagy pedig h a a vizsgált szim bólum az újsor k ara k te r. H a a zéró flag be van o lvasandó b ájto k szám át.
állítva, ak k o r a legutóbb vizsgált szim bólum egy \n volt, és az ak tu ális szim bólum A p ro g ra m további része egyszerű. A so rt beolvassuk a fájlból a 64-68. sorban,
fájlpozíciója (eggyel az ú jso r u tá n ) a linh tö m b b en táro la n d ó . A 29-31. so rb an a azu tá n kiírjuk az 7-es fájlleírón keresztül a szabványos k im en etre a 70-72. sorban.
szám lálót növeljük, a fájlpozíciót BX-ből és CX-ből szám ítjuk ki (CX-ben van a még M egjegyezzük, hogy a 69. so rb an tö rté n ő részleges verem ta k arítás u tán , a szám lá­
rend elk ezésre álló k a ra k te re k szám a). A 3 2-34. so r végzi a tényleges táro lá st, de ló és a p u ffe r érték e m ég m indig a v erem b en m arad . V égül, a 73. sorban teljesen
mivel a STOS feltételezi, hogy a c é lo p e ra n d u s a Dl, nem p ed ig az 51, így ezek et a r e ­ h elyreállítju k a v e rem m u tató t, és készen állunk a következő lép ésre, te h á t vissza-
gisztereket a STOS e lő tt és u tá n fel kell cserélni. A 35-37. sor m egvizsgálja, hogy u g ru n k a J-a s cím kére, m ajd kezdjük elölről egy ú]dihh getnum hívással.
van-e m ég a d a t a p u ffe rb en , és CX é rte k é n e k m egfelelő en elugrik.
A m ik o r elérjü k a fájl végét, elkészül a so ro k k ez d e té n e k fájlpozíciójából álló
teljes lista. M ivel a linh tö m b ö t a 0 szóval k ezd tü k, tu d ju k , hogy az első so r a 0 cí­ Köszönetnyilvánítás
m en kezdődik, a k ö vetkező so r a linh + 2 által m e g a d o tt cím en stb. A z n. sor m é ­
re te az « + 1. és az «. so ro k k ezd ő pozícióiból szám íth ató ki. A z eb b en a függelékben használt assem b ler az „A m sterd am C o m p iler K it” ré ­
A p ro g ram további ré szén ek célja a so r szám án ak beolvasása, aztán az ad o tt sze. A teljes eszközkészlet e lé rh e tő a www.cs.vu.nllack cím en. K öszönjük az e re ­
sornak a puffcrb e tö ltése, m ajd an n ak k iírása egy write hívás segítségével. M in d en deti terv'ezésben részt vevő Jo h a n Stevenson, H an s S cham inee és H an s de V ries
szükséges inform áció m e g ta lálh ató dilinh tö m b b en , am elynek n. bejegyzése ta rta l­ m u n k áját. K ü lö n ö sen hálásak vagyunk a pro g ram cso m ag o t k a rb a n ta rtó C eriel
m azza az n. so r k e z d e té t a fájlban. H a a k é rt so r szám a 0, vagy tarto m á n y o n kívül­ Jaco b sn ak , aki többször is seg ített a p ro g ra m o t az o ktatási követelm ényeinknek
re esik, a p ro g ram a 7-es cím k ére ugrik, és kilép. m eg felelő fo rm á ra alakítani, valam int E lth O g sto n n ak a k ézirat átolvasásáért, v a­
A p ro g ra m n a k ez a része a getnum szu b ru tin hívásával kezd ő d ik a 46. sorban. lam in t a p é ld ák és gyak o rlato k teszteléséért.
E z a ru tin beolvas egy so rt a szabványos b e m e n e trő l, és eltáro lja azt a linein p u f­ Szintén köszönjük R obbert van R enesse és Jan -M ark W ams m unkáját, akik a
ferben (95-103. sor). U tá n a előkészítjük a S5CANF hívást. F igyelem be véve az a r­ P D P -1 1 és a M o to ro la 68000 szám ára terveztek nyom követőket. Szám os ö tletü k et
g u m en tu m o k fo rd íto tt so rre n d jé t, elő szö r a curlin cím ét verm eljük, am ely m ajd h aszn áltu k fel en n ek a nyom követőnek a m egtervezésében. K öszönjük továbbá a
egy egész szám o t fog táro ln i, u tá n a jö n a n u m ftn t egész fo rm átu m -strin g cím e, tan árse g éd e k és ren d szerü zem eltető k nagy csapatának, hogy segítették m unkánkat
m ajd végül a linein p u ffer cím e, am ely a szám ot tartalm a zz a decim ális alakban. A a hosszú évek alatt m e g tarto tt szám os assem bly nyelvű p rog ram ozás kurzus idején.
SSCANF ren d szerszu b ru tin , am ennyiben lehetséges, a b ináris é rté k e t a curlin v álto ­
zóba teszi. H ib a esetén AX-ben 0-val té r vissza. E zt a visszatérési é rte k e t e llen ő riz­
zük a 48. sorban, és h ib a e setén a p ro g ra m a S-as cím kénél h ib a ü z e n e te t g enerál.
H a a getnum szub ru tin érvényes egésszel té r vissza curlin-be, ak k o r elő szö r azt C.9. Feladatok
BX-be m ásoljuk. U tá n a összeh aso n lítju k az é rté k e t a tarto m á n n y a l a 4 9-53. so r­
ban, és am ennyib en a szám a tarto m á n y o n kívülre esik, EXIT-et g en erálu n k . 1. A MOV AX,702 utasítás v ég reh ajtása u tá n AH és AL é rté k e m ennyi decim álisán?
E z u tá n m eg kell k eresn i a k iválasztoll so r végét a fájlban, és a b eo lv asan d ó b á j­ 2. A CS reg iszter é rté k e 4. M i a kódszegm ens abszolút m em ó riacím ein ek ta r to ­
to k szám át, e z ért BX-et m egszorozzuk 2-vel egy SHL b a lra lé p te tő utasítással. A k e ­ m ánya?
resett so r fájlpozícióját az 55. so rb an AX-be m ásoljuk. A k ö v etk ez ő so r fájlpozíció­ 3. M elyik a 8088-as által e lé rh e tő legm agasabb m em óriacím ?
já t CX-be tesszük, és később m ajd az ak tu ális so r b ájtjai szám án ak k iszám ítására 4. Tegyük fel, hogy CS = 40, DS = 8000 és IP = 20.
használjuk. a) M i a következő u tasítás abszolút cím e?
A fájlból való v életlen olvasáshoz szükség van egy lseek hívásra, am ellyel a fájl­ b) A MOV AX,(2) u tasítás v ég reh ajtásak o r m elyik m em óriaszó tö ltő d ik AX-be?
pozíciót (offset) a k ö v etk ező n ek olvasni kívánt b á jtra állíthatjuk. A z lseek a fájl 5. E gy szu b rutin h áro m egész arg u m en tu m m al, a szövegben leírt hívási szekven­
k ezd etéh ez viszonyítva tö rtén ik , ezé rt e n n e k je lö lé sé re első arg u m e n tu m k é n t ciával k erül m eghívásra, azaz a hívó fo rd íto tt so rren d b en helyezi a verem be
772 C) A S S E M B L Y N YELV Ű P R O G R A M O Z Á S

az arg u m en tu m o k at, és u tá n a vég reh ajtja a CALL utasítást. A hívott ezu tá n e l­


m enti a régi BP-t és beáUftja az új BP-t, hogy az az e lm e n te tt regire m utasso n . A ngol-m agyar tárgymutató
E zeket a szabályokat figyelem be véve ad ja m eg az első a rg u m e n tu m n a k AX-be
tö ltéséh ez szükséges u tasítást.
6. A C .l. áb rán o p e ra n d u sk é n t h aszn áltu k a d e - h w kifejezést. Ez az é rté k k ét
cím ke különbsége. E lk ép zelh ető -e olyan k örülm ény, am ik o r a de + hw érv é­
nyes o p e ra n d u sk é n t h a szn álh ató ? In d o k o lja válaszát.
7. A dja m eg az assem bly k ó d o t az alábbi kifejezés k iszám ítására;
X=a+b +2

7. Egy C függvényt az alábbi m ó d o n hívunk:


foobar(x, y);

A dja m eg az assem bly k ó d o t e rre a hívásra.


8. írjo n assem bly nyelvű p ro g ram o t, am ely b e m e n e tk é n t elfogad egy egész szám ­
ból, egy m űveleti jelből és egy m ásik egész szám ból álló kifejezést, m ajd kiírja 8051 (see Intel 8051) - 8051 (lásd Intel 8051) immediate - közvetlen, 380
a kifejezés érté k ét. E n g ed je m eg a -I-, * és a / m űveleti jelek et. 8088 (see Intel 8088) - 8088 (lásd Intel 8088) implied - implicit, 729
indexed - indexelt, 382
Intel 8051 - Intel 8051, 392-393
absolute path - abszolút útvonal, 502 Intel 8088 - Intel 8088, 726-730
Accelerated Graphics Port (A G P ) - gyorsított Pentium 4 - Pentium 4, 390-392
grafikus port (A G P ), 125, 226 register - regiszter, 381
Access Control L ist (A C L ) - elérést vezérlő lista register displacement - indexelt, 729
(A C L ), 508 register indirect - regiszter-indirekt, 381-382,
access tokén - hozzáférést vezérlő jel, 508 728
accumulator - akkumulátor, 34, 343, 368 register with index - bázis relatív, 729
accumulator register - akkumulátorregiszter, register with index and displacement - bázis
722 relatív eltolással, 729
A C K (Amsterdam Compiler K it ) - A C K stack - verem, 384-388
(Amsterdam Compiler Kit, Amsterdam U ltra S P A R C I I I - U ltra S P A R C I II , 392
fordítókészlet), 742 addressing mode - címzési mód, 380
acknowiedgement packet - nyugtázó csomag, discussion - összefoglalás, 393
235 A D S L (Asymmetric D S L ) - A D S L
A C L (Access Control L ist) - A C L (elérést (aszimmetrikus D S L ), 135
vezérlő lista), 508 Advanced M icrocontroller Bús Architecture
active mátrix display - aktív mátrixmegjelenító, (A M B A ) - fejlett mikrokontroller
124 sínarchitektúra ( A M B A ) , 583
actual parameter - aktuális paraméter, 536 Advanced Programm able Interrup t Controller
adder - összeadó, 171-173 (A P IC ) - fejlett programozható
carry select - átvitelkiválasztó, 173 megszakításvezérlő ( A P IC ) , 212
fu ll- te lje s, 171-172 aggregate bandwidth - összesített sávszélesség,
h a lf- fé l, 171-172 662
ripple carry - átvitelt tovább terjesztő, 173 A G P (Accelerated Graphics Port) - A G P
additive inverse - additív inverz, 398 (gyorsított grafikus port), 125, 226
address - cím, 84, 720 A G P bús - A G P sín, 125, 226
memory - memória, 84 Aiken, Howard - Aiken, Howard, 31
address decoding - címdekódolás, 242 algorithm - algoritmus, 24
address space - címtartomány, 38, 446 allocation/renaming unit - lefoglaló/átnevező
physical - fizikai, 447 egység, 336
V irtual - virtuális, 447 Alpha - Alpha, 40
addressing - címzés, 371, 380-394 alpha channel mask - áttetszőségi csatorna
based-indexed - bázis-index, 384 maszk, 595
branch instruction - elágazó utasítások, A L U (Arithm etic Logic U n it) - A L U
382-384 (aritmetikai-logikai egység), 21, 67,
direct - direkt, 381,728 173-175
774 TÁRGYM UTATÓ
TÁRGYM UTATÓ 775

A M B A (Advanced M ierocontroller Bús assembly language programming - assembly


binary search - bináris keresés, 546 handshaking - kézfogás, 202
Architecture) - A M B A (fejlett nyelvű programozás, 717
hinding time - hozzárendelési idő, 553 I B M P C - I B M PC , 222
mikrokontroller sínarchitektúra), 583 over\iew - áttekintés, 718
B IO S (Basic Inp ut Output System) - B IO S IS A - IS A , 222
A m dahl’s law - A m d a h l törvénye, 664 assembly process - assembler menetei, 539-547
(alapvető be-kimeneti rendszer), 101 master - mester, 195, 201, 213, 218, 230
American Standard Code fór Information pass one - első menet, 540-544
bipolar transistor - bipoláris tranzisztor, 155 multiplxed - multipixelt, 197
Interchangc (A S C II) - az információcsere pass two - második menet, 544-545
bisection bandwidth - kettévágott sávszélesség, operation - műveletek, 205-207
amerikai szabványos kódrendszere (A S C II), two-pass - kétmenetes, 539
633 P C I - P C I, 223
143 asserted signal - beállított jel, 187
bit - bit, 84, 699 P C I Kxpress - P C I Express, 232
amplitude modiiiation - amplitúdómoduláció, associative memory - asszociatív memória, 461,
B IT Block Tk-ansfer (bitbll) - bitblokk-átvitel Pentium 4 - Pentium 4, 212
133 545
(bitblt), 596 protocol - protokoll, 194
Amsterdam Compiler K it (A C K ) - Amsterdam Asymmetric D S L (A D S L ) - aszimmetrikus D S L
bit map - bittérkép, 370 receiver - vevő, 195
Compiler Kit (Amsterdam fordítókészlet), 742 (A D S L ) , 135
bit slice - bitszelet, 174 skew- aszimmetria, 197
analytical engine - analitikus gép, 30 asynchronous bús - aszinkron sín, 201-202
bitblt ( B I T Block Ttaiisfer) - bitblt (bitblokk- slave - szolga, 195
A P IC (Advanced l’rogrammable Interrupt A T Attachment - A T kiegészítő, 102
átvitel), 596 synchronous - szinkron, 198
Controller) - A P I C (fejlett programozható ATA Packet Interface (A T A P I) - ATA-
block cache - blokkgyorsító, 489 timing - időzítés, 198-202
megszakításvezérlő), 212 csomaginterfész (A T A P I). 102
Block Started by Symbol ( B S S ) - szimbólummal tranceiver - adóvevő, 195
Apple I I - Apple II, 39 A TA-3-A TA -3, 102
kezdődő blokk (B S S ), 742 U S B - univerzális soros sín ( U S B ) , 236
Apple Macintosh - A pple Macintosh, 39 AtanasofT, Jo h n - Atanasoff, John, 31, 33
block transfer, bús - blokkátvitel, sín, 205 width - szélesség, 196-197
application layer - alkalmazási réteg, 669 A T A P I- 4 - A T A P I- 4 , 102
blocking network - blokkoló hálózat, 619 busy waiting - tevékeny várakozás, 403
Application Programming Interface (A P I) - attraction memory - vonzásmeniória, 628
BlueGene - BlueG ene, 635-640 Byron, Lord - Byron, Lord, 30
alkalmazásfejlesztést támogató interfész autó decrement - automatikus csökkentés, 730
BlueGene/L - BlueGenc/L, 635-640 byte - bajt, 86, 727
(A P I), 494 autó increment - automatikus növelés, 730
Blu-Ray - Blu-Ray, 117 byte instruction - bájtos utasítás, 727
Application-Speciíic Integrated C ircu it (A S IC ) auxiliary carry flag - kiegészítő átvitel-flag, 734
Boole, George - Boole, George, 155 byte ordering - bájtsorrend. 86-88
- alkalmazáshoz kifejlesztett egyedi integrált
Boolean algebra - Boole-algebra, 155-157 byte register - bájtos regiszter, 727
áramkör (A S IC ), 587 B _________________________________ ________________
boundle - köteg, 435
arbitration, P C I bús - sínütemezés, P C I sín, 227 Babbage, Charles - Babbage, Charles, 30
branch - elágazás, 414-415 C_______________________________________ __
architecture - architektúra, 23, 71 baby feeding algorithm - gyereketetési
branch history shift register - elágazási cable Internet - kábeles internet, 137
argument - argumentum, 737 algoritmus, 452
előzmények blokkos regisztere, 323 cache coherence protocol - gyorsítótár­
arithmetic circuit - aritmetikai áramkörök, backward compatibilit.y - visszafelé
branch prediction - elágazásjóvendolés, 319-324 koherencia protokoll, 612
170-175 kompatibilis, 353
dynamic - dinamikus, 321-323 M E S l - M E S I, 614
Arithmetic Logic Unit (A L U ) - aritmetikai­ Bardeen, Jo h n - Bardeen, John, 34
static - statikus, 324 cache coberency - gyorsítótár-koherencia. 611
logikai egység (A l.U ), 21, 67, 173-175 base - bázis, 153
branch table - ugrótábla, 339 Cache Coherent N U M A (C C - N U M A ) -
arithmetic, binary - aritmetika, bináris, 705 base pointer - bázismutató, 724
Bran ch Tkrget Buffer (B I'B ) - elágazási gyorsítótár-koherens N U M A (C C - N U M A ),
array processor - tömbprocesszor, 80 base register - bázisregiszter, 722
célpuffer (B T B ) , 335 619-628
A S C II (American Standard Code fór based-indexed addressing - bázis-index címzés,
Brattain, W alter - Brattain, Walter, 34 cache consistency - gyorsítótár-konzisztencia, 611
Information Interchange) - A S C I I (az 384
breakpoint - töréspont, 749 cache hit - gyorsítótár-találat, 316
információcsere amerikai szabványos basic block - alapblokk, 329
broadband - szélessávú, 135 cache line - gj'orsítósor, 94, 315, 612
kódrendszere, 143 Basic Input O utput System (B IO S ) - alapvető
B S S (Block Started by Symbol) - B S S cache memoty - gyorsítótár, 54. 92, 313, 6 11
A S IC (Application-Specific Integrated Circuit) be-kimeneti rendszer (B IO S ) , 101
(szimbülummal kezdődő blokk), 742 direct-mapped - direkt leképezésű, 315
- A S IC (alkalmazáshoz kifejlesztett egyedi batch systeni - kötegelt rendszer, 27
bubblejet - festékbuborckos nyomtató, 129 invalidate strategy - éi^énytelenítő stratégia,
integrált áramkör), 587 baud -baud, 134
bucket - rés, 547 613
assembler - assembler, 23, 525, 539, 718, 741 Bayer filter - Bayer-szűrő, 142
buffer, circular - körkörös puffer, 478 level 2 - 2 . szintű, 314
directive - direktíva, 531 B C D (B in ary Coded Decim ai) - B C D (binárisan
buffered message passing - pufferelt M E S I protocol - M E S I protokoll, 614
Intel 8088 - Intel 8088, 741 kódolt decimális), 84, 406, 727
üzenetátadás, 650 multiple levels - többszintű, 313
pass one - első menet, 540-544 Itechtolsheim, Andy - Bechtolsheim, Andy, 57
Burroughs B5000 - Burroughs B5000, 36 set-associative - halmazkezelésű, 317
pass two - második menet, 544-545 benchmark - tesztágy, 526
bús - sín, 35, 66, 117-120, 194, 207 sniiopiug - szimatoló, 612
Symbol table - szimbólumtábla, 545 Berkeley U N IX - Berkeley U N IX , 486, 487, 489
A G P - A G P . 226 split - szétválasztott, osztott, 94, 313
two-pass - kétmenetes, 539 best fit algorithm - legjobb illesztés algoritmus,
arbiter - ütemező, 119 unified - egyesített, 94
8088-8088, 741 460
arbitration - sínütemezés, 119, 202-205 update strategy - frissítő stratégia, 613
assembly language - assembly nyelv, 524, 717 big endian machine - nagy endian gép. 86
arbitration, P C I - sínütcmczcs, P C I sín, 227 write-allocate - írásallokálás, 319, 613
characteristics - jellemzői, 525 binary arithmetic - bináris aritmetika, 705
asynchronous - aszinkron, 201 write-back-visszaírás, 319
level - szint. 524-562 B in a rj Coded Decimai (B C D ) - Binárisan
block transfer - blokkátvitel, 205 HTite-deferred - késleltetett írás, 319
pseudoinstuction - pszeudoutasítás, 531-534 kódolt decimális (D C D ), 84, 406, 727
ciocking - időzítés, 198 write-tbrough - írásáteresztés, 318
statement - utasítás, 528 binary number - bináris szám, 696
cycie - ciklus, 198 cache miss - gyorsítótárhiány, 316
why use - miért használatos, 526-528 addition of - összeadás, 705
driver - vezérlő, 195 Cache O nly M em ory Access (C O M A ) -
assembly language program - assembly nyelvű negative - negatív, 703
E I S A - E I S A , 223 gyorsítótáras memóriaelérés (C O M A ). 605.
program, 525,717, 741 binary program - bináris program, 718
grant - használati engedély, 202, 227 628, 687-688
776 tárgym utató tárgym utató 777

call jjate - híváskapu, 466 Cluster O f Workstations (C O W ) - munka­ constant pool - konstans mező, 268 DATA section - D A T A szegmens. 742
camera, digital - kamera, digitális. 141 állomások klasztcrc (C O W ). 50-51, 6Ü6, 644 Constant Pool Pointer ( ( 'P P ) - konstans mező data segment - adatszegmens, 734
carrier - vivőhullám, 133 C L U T (C olor Look Up Tablc) - C l . l J l mutatója (C P P ), 253, 262, 269, 280 data type - adattípus, 368-371
carry select adder - átvitelkiválasztó összeadó, (színkereső tábla), 595 consumer - fogyasztó, 478 nonnumcric - nem numerikus, 369
173 C M Y K p rin te r- C M YK-nyomtató, 131 context - kíirnyezct, 407 numeric - numerikus. 368
catamount - catamount, 642 coarse-grained multitbreading - durva Control Data Corporation (C D C ) - Control D D R (Double Data Rate memory) - D D R
Cathode R ay Tiihe (C:RT) - katódsugárcső, 121 szcmcsézettscgű többszálúság, 573 D ata Corporation (C D C ), 36 (kétszeres sebességű memória), 190
C C D (Charge Coupled Device) - C C D C O B O L program - C O B O L program, 51 control signal - vezérlőjel. 257 D E C (Digital Kquipment Corporation) - D E C
(töltéscsatolt eszköz). 142 code generation - kódgenerálás, 742 control store - vezérlőtár, 72, 261 (Digital Equipment Corporation), 35, 38. 71
C C -N U M A (Cache Coherent N U N L\) - code page-kódlap, 145 controller-vezérlő. 118 Alpha - Alpha. 40
C C - N U M A (gyorsítótár-koherens N U M A ), code point - kódpozíció, 146 conversion betwecn radices - konverzió P D P - l- P D P - 1 ,3 5
619-628 code segment - kódszegmens, 720 számrendszerek között, 700 PDP-8 - PD P-8, 35
C D C 6600 - C D C 6600, 36, 79, 325 codesign - együttes tervezés, 41 coprocessor - társprocesszor, 583-592 V A X - V A X . 71.73
C D C Cyber - C D C Cyber, 71 codeword - kódszó, 88 copy on Write - íráskori másolás. 496 decimai nuniber - decimális szám, 743
CD -R (('l)-recordable - C D - R (írható C D ). 112 collective layer - kollektív szolgáltató réteg, 669 core - mag, 579 decoder-dekódoló, 167
CD-recordable (CD -R) - írható C D (C D - R ), 112 colk'ctor - kollektor, 153 core dump - memóriamásolat, 25 decoding unit - dekódoló egység, 310
CD-rewritable (C D -R W ) - újraírható C D color gamut - szín gamut, 131 CoreConnect - CorcC’onncct, 582 degree - fokszám. 631
(C D - R W ), 114 Color Look U p Table (C L U T ) - színkereső tábla corontine - korntin/társrutin, 414. 421, 422 deinterlacing - sorduplá/.ó technika, 596
C D -R O M (Compact Disc Read O nly M em o rf) - (C L U T ), 595 counter register - számlálóregiszter, 722 delay slot - eltolási rés, 320
C D - R O M , 108 color palette - színpaletta, 125 C O W (C luster O f Workstations) - C O W demand paging - kérésre lapozás, 452
rewritable (C D -R W ) - újraírható (C'D -R W ), C O L O S S U S - C O L O S S U S , 32 (munkaállomások klasztere), 50-51, 606, 644 DeM organ’s la w - De Morgan-szabály, 160-161
114 C O M A (Cache O nly M em ory Access) - C O M A CP/M - CP/M , 39 demultiplexer - demultiplexer, 167
sector - szektor, 110 (gyorsítótáras memóriaelérés). 605, 628, C P P (Constant Pool Pointer) - CM’P (konstans design principles, R IS C - tervezési elvek. R IS C .
track - sáv, 113 687-688 mező mutatója), 253, 262, 269, 280 74-75
X A - X A , 113 combinational circuit - kombinációs áramkör, C P U c h ip - C T U lapka, 192 destination index - célindex, 724
C D -R W (CD-rewritable) - C D - R W (újraírható 165-170 Cray, Seymour - Cray, Seymour, 36 destination operand - céloperandus. 726
C D ), 114 comparator - összehasonlító, 168 Cray-I - Cray-1. 36, 71 device driver - eszközmeghajtó, 492
Celeron - Celeron, 55 decoder - dekódoló, 167 C R C (Cyciic Redundancy Chcck/Code) - C R C device levél - eszközszint, 20, 153
cell, memory - rekesz (cella), memória, 84 multiplexer - multiplexer, 165-167 (ciklikus redundanciakód), 235, 239, 586 device regisler bús - eszközregisztersín. 583
Central Processing Unit (C P U ) - központi committed pagc - egyeztetett lap, 497 crltical section - kritikus szakasz, 516 diameter, network - átmérő, hálózat, 632
feldolgozóegység (C’P U ), 34, 66 Commodity OfTThe Sh e lf (C O T S ) - készen crossbar switch - crossbar (kercsztrudas) dlbit modulation - kétbites moduláció, 134
character code - karakterkód, 143 kapható termék, 51 kapcsoló, 617 dlfference engine - differenciagép, 30
Charge Coupled Device (C C D ) - töltéscsatolt communicator - kommunikátor, 651 crosspoint - találkozópont, 617 digital camera - digitális kamera, 141
eszköz (C C D ), 142 Compact Disc Read Only Mem ory (C D - R O M ) - C R T (Cathode Ray T\ibe) - C R T Digital Equipment Corporation (D E C ) - Digital
checkerboarding - lyukacsosodás, 460 Compact Disc Rcad O nly Mem ory (('D - (katódsugárcső), 121 Equipment Corporation (D H C ), 35, 38, 71
child process - gyerek processzus, 510 R O M ), 108 Cryptoprocessor - kriptoprocesszor, 597 digital logic level - digitális logika szintje, 20,
chip - lapka, 163 comparator - összehasonlító, 16H cube - kocka, 634 152-250
C P U - C P U , 192 comparision and branch instructions - cycle stealing - cikluslopás, 119, 405 bús - sín, 194
Circuit - áramkör összehasonlító és elágazó utasítások, 398 Cyciic Redundancy Check (C R C ) - ciklikus circuit - áramkör, 163
arithmetic - aritmetikai, 170-175 comparison of architectures - architektúrák redundanciakód (C:r C ), 235, 239, 586 C P U c h ip - C P U lapka, 192
combinational - kombinációs, 165 összehasonlítása, 346 Cyciic Redundancy (,’ode (C R C )- ciklikus g ate- kapu, 153
circuit equivalence - áramköri ekvivalencia, compiler - fordítópiogiam, 23, 525 redundaneiakód (C R C ), 235, 239, 586 I/O interface - B / K interfész, 240
159-162 Complex Instruction Set Computer (C IS C ) - cylinder - cilinder, 98 memory - memória, 176
C IS C (Complex Instruction Set Computer) - összetett utasitáskészletű számítógép (C IS C ), Digital Subscriber Line (D S L ) - digitális
C IS C (összetett utasitáskészletű számítógép), 73 D_______________________ _________________________ előfizetői vonal (D S L ), 135
73 computer architecture - számítógép­ D latch - D-tároló, 179 Digital Subscriber L ine Access Multiplexer
clo ck- ó ra, 175 architektúra, 23 daisy chalning - láneolás, 203 (D S L A M ) - digitális előfizetői vonal
ciock cycle time - ciklusidő, 175 milestones - mérföldkövek, 28-41 data cache - adatgyorsítótár, 339 hozzáférési multiplexer ( D S L A M ) , 137
clocked D latcb - időzített D-tároló, 179 computer center - számítóközpont, 38 data movcment instruction - adatmozgató Digital Versatlle Disc (D V D ) - sokoldahí
clocked S R latch - időzített SR-tároló, 178 condition code - feltétclkód, 359 utasítás, 394 digitális lemez (D V D ), 115
cione - klón, 39 condition code register - feltételkód-regisztcr, data patb - adatút, 21, 67, 252-258 Digital Videó Disc - digitális videolemez, 115
ciosure - zártság, 697 724 M lc-I - Mic-1, 262 dimensonality - dimenziószám, 633
cluster - klaszter, 50, 606 condition variable - fcltételváltozó, 513 MÍC-2-M1C-2, 301 D IM M (Dual Inline Memory Modulé) - D IM M
google - google, 645-649 conditional execution - feltételes végrehajtás, Mic-3 - Mic-3, 304 (két érintkezősoros memóriamodul), 95
N T K S - N T F S , 508 436 Mic-4 - Mie-4, 309 D IP (D ual Inllne Package) - D IP (kétlábsoros
workstation- munkaállomás, 50-51, 606, 644 consistency model (sec Mem ory semantics) - timing - időzítés, 255 tokozás), 163
cluster computer - klaszterszámítógép, 644 memóriaszemantika data path cycle - adatútciklus, 68 direct addressing - direkt címzés, 381
778 TÁRGYM UTATÓ tárgym utató 779

Direct M em ory Access (D M A ) - közvetlen dye sublimation printer - festékszublimációs entry point - belépési pont, 551 FA T (File Allocation Table) - EA T (fájh)llokációs
memóriaelérés (D M A ), 119, 4(14 nyomtató, 132 environmental subsystem, Windows X P - tábla), 505
dircction flag - irány-flag, 730 Dynamic L in k L ib ra i^ (D L L ) - dinamikus kí'irnyezeti alrendszer, Windows XP, 493 fát tree - kövér fa, 634
direct-mapped cache - direkt leképezésű szerkesztő könyvtár ( D L L ) , 557 E P IC (Explicitly Parallel Instruction fetch-decode-execute cycle - betöltő-dekódoló-
gyorsítótár, 315 Dynamic Linking - dinamikus szerkesztés, 555 Computing) - E P I C (explicit uta.sításszintű végrehajtó ciklus, 69
directory - könwtár, 475-47Ö Dynamic R A M (D R A M ) - dinamikus l íA M párhuzamosság). 433-439 fetch-execute cycie - betöltő-végrehajtó ciklus,
directory based multiprocessor - katalógusalapi'i (D R A M ) , 189 E P R O M (Erasable P R O M ) - E P R O M 252
multiproeesszor, 621 Dynamic Kandóm Access Mem ory (D R A M ) - (törölhető P R O M ) , 190 flb er- fo n ál, 513, 514
disc - lemez, 96 dinamikus véletlen elérésű memória, 31 Erasable Programmable R O M ( E P R O M ) - Field Programmable Gate A rray (F P G A ) -
C D -R O M - C D R O M , 108 dynamic rclocation - dinamikus áthelyezés, 552 törölhető, programozható R O M ( E P R O M ) . helyszínen programozható kapumátrix
controller - vezérlő, 100 60, 190 (F P G A ) . 587
D V D - D V D , 115 Erasable P R O M ( E P R O M ) - törölhető P R O M F I F O (F irst In First Out algorithm) - U F O
Hoppy - hajlékony, 100 E C C (E rro r Correctin)> Code) - E C C ( E P R O M ) , 60, 190 (először be először ki algoritmus), 454
I D E - I D E , 101 (hibajavító kód), 88 E rro r Correcting Code (E C C ) - hibajavító kód fifth generation project, .lapanese - ötödik
magnetlc - mágnes, 97-108 Eckert, J. Presper - Eckert, J. Presper, 32 ( E C C ), 88 generációs számítógepek. Japán. 40
optical - optikai, 108-117 E C L (Emitter-Coupled Logic) - E C L (emitter escape code - kiterjesztő kód, 377 file - fájl. 470-472
R A I D - R A I D , 104-108 csatolású logika), 155 Estridge, P h ilip - Estridge, Philip, 39 File Allocation T^ble (FA T ) - fájlallokációs tábla
S C S I - S C S I, 103-104 edge triggcred flip-flop - élvezérelt flip-flop, 179 Ethernet - Ethernet, 584 (FA T ), fi(>5
W inchester - Winchester, merev, 98 E D O (Extended Data Output) memory - E D O event - esemény, 516 file cache manager, Windows X P - fájlgyorsító-
diskette- hajlékonylemez, 100 (kiterjesztett adatkimenetű memória), 189 evolution of multilevel computers - többszintű kezclő, Windows XP, 493
dispatch table - ugrótábla, 768 ED V A C (Electronic Discrete Variable Automatic számítógépek fejlődése, 23 file descriptor - fájlleíró, 500, 501, 739
distributed memory system - osztott memóriájii Computer E D V A C ) - E D V A C , 32 example programs - példaprogramok file index - fájlindex, 473
rendszer, 600 E E P R O M (Electrically Eresable P R O M ) - Intel 8088 - Intel 8088, 752 file System - fájlrendszer
Distributed Shared Memory ÍD S M ) - elosztott E E P R O M (elektromosan törölhető P R O M ), excess notation - többletes jelölés, 704 U N IX - U N IX , 488, 499-505
közös memória (D S M ), 602, 654 190 executable binary file - végrehajtható bináris Windows X P - Windows XP, 473, 492,
D L L (Dynam ic L in k Lib ra ry) - D L L effective address - effektív cím, 729 fájl, 741 ' 505-510
(dinamikus szerkesztő könyvtár), 557 egress pnicessing - kimenő csomagokon végzett executable binary program - végrehajtható filter - szűrő, 502
D M A (Direct Mem ory Access) - D M A feldolgozás, 589 bináris program, 524, 548 fine-grained multithreading - finom
(közvetlen memóriaelérés). 119,404 E H C I (Enhanced Hőst Controller Intcrface) - exeeutive, Windows X P - végrehajtó, Windows szemcsézettségű többszálúság, 572
dót - pont, 742 E H C l (kibővített kiszolgálóvezérlő interfész), XP, 492 Finite State Machrne (K S M ) - véges állapotú
Dots Per Inch (dpi) - pont per inch (dpi), 129 240 expanding opcode - műveletikód-kiterjesztés. gép (F S M ), 298
double - dupla pontosságú, 722 E I D E (Extended I D E ) - E I D E (kiterjesztett 374-376 branch prediction - elágazásjövendolés, 323
Double D ata R ate memory (D D R ) - kétszeres I D E ) , 101 explicit linking - explicit szerkesztés, 558 instruction fetch unit ( IF U ) - utasításbetöltő
sebességű memória (D D R ). 190 E I S A (Extended IS A ) - E I S A (bővített IS A ), 120 Explicitly Parallel Instruction Computing egység ( I F U ) , 299
doütile indirect block - kétszeresen indirekt Electrically Eresable P R O M ( E E P R O M ) - ( E P I C ) - explicit utasításszintű finite-precision number - véges pontosságú
blokk, 504 elektromosan törölhető ( E E P R O M ) , 190 párhuzamosság ( E P I C ) , 433-439 szám, 696-698
double pointer - dupla szélességű mutató, 345 Electronic Discrete Variable Automatic exponent - exponens, 709 firewall - tűzfal, 585
double precísion - dupla pontosság, 368 Computer (E D V A C ) - E D V A C , 32 Extended D ata Output (E D O ) memory - first fit algorithm - első illesztés algoritmus, 460
double torus - kettős tórusz, 634 Electronic Numerical Integrátor And Computer kiterjesztett adatkimenető memória (E D O ), First In First Out ( F IF O ) algorithm - először
dpi (Dots Per Inch) - dpi (pont per inch), 129 (E N IA C ) - E N IA C , 32 189 be először ki ( F I F O ) algoritmus, 454
D R A M (Dynamic R A M ) - D R A M (dinamikus embedded computer - beágyazott számítógép, Extended I D E ( E I D E ) - kiterjesztett I D E first pass - első menet, 742
R A M ), 189 41 ( H lD E ) , 101 first-generation computers - első generációs
D S L (Digital Subscriber Line) - D S L (digitális emitter - emitter, 153 Extended I S A ( E IS A ) - bővített IS A (E IS A ) . számítógépek, 31
előfizetői vonal), 135 Emitter-C'oupled Logic ( E C L ) - emitter 120 flag register - flag-regiszter, 724
D S L A M (Digital Subscriber Lin e Access csatolású logika ( E C L ) , 155 external fragmentation - külső elaprózódás, 460 flags reg ister-jelzők regisztere, 358
Multiplexer) - D S L A M (digitális előfizetői emulation - emuláció, 37 external reterence - külső hivatkozás, 551 flash memory - flash memória, 191
vonal hozzáférési multiplexer), 137 enable - érvényesítés/engedélyezés, 178 external Symbol - külső szimbólum, 551 fiat panel display - lapos megjelenítő, 122
D S M (Distributed Shared M em ory) - D S M endian - endían, 86-88 extra segment - extra szegmens, 734 flip-flop - billenőkör/fiip-flop, 179
(elosztott közös memória), 602, 654 big - nagy, 86 floating-point number - lebegőpontos szám,
D ual Inline Mem ory Modulé (D IM M ) - két little - kis, 86, 727 708-716
érintkezősoros memóriamodul (D IM M ), 95 Enhanced Hőst Controller Interface ( E H C I) - fabric layer - grid szerkezeti szint, 668 floppy disk - hajlékonylemez, floppy, 100
Dual Inline Package (D IP ) - kétlábsoros kibővített kiszolgálóvezérlő interfész ( E H C I) , false sharing - téves megosztás, 655 flow control - folyamatvezérlés, 235
tokozás (D IP ), 163 240 fannut - terhelhetőségi szám, 631 flow of control - vezérlési folyamat, 414-426
D VD (Digital Versatile D isc) - D V D (sokoldalú E N IA C - E N IA C , 41 far call - távoli hívás, 737 branche - elágazás, 414-415
digitáhs lemez), 115 E N IG M A - E N IG M A , 32 far jum p - távoli ugrás, 735 coroutine - korutin (társrutin), 421-422
dyadic instructions - diadikus műveletek, 395 enormalized number - normalizálatlan számok. Kast l’age Mode (K l’M ) m em ory-gyors interrupt - megszakítás, 423-426
dye based ink-festékalapú tinta, 132 714 lapkezelésű ( F P M ) memória, 189 procedure - eljárás. 415-421
780 tárgym utató TÁRGYM UTATÓ 781

trap - csapda, 422-423 Green Book - G rcen Book (Z ö k I Könyv), 111 hoisting, code - emelés, kód, 330 Mic-3 implementation - Mic-3 megvalósítás.
p’ly iiii’s taxonomy - F lyiin - félc osztályozás, 604 grid - grid, liáló, 667, 668 hőst library - gazdakcmyvtár, 559 303
to r k - f o r k , 660 rács, 634 http (HyperText Ttanster Protocol) - http, 585 Mic-4 implementation - Mic-4 megvalósítás.
formnl paraméter - formális paraméter, 536 G D I (G raphical User Interface) - G U I (grafikus hypercube - hiperkocka, 634 309
Forrester, Ja y - Forrester, Jay, 34 felhasználói felület), 489 HyperText TVansfer Protocol (http) - http, 585 operand stack- operandusveiem, 268
F O R T R A N - F O R T R A N , 25 hyperthreading - hypcrthreading, 576 stack-verem , 266
F O R I ’R A N M onitor System (F M S ) - H ________________________________________________ timing - időzítés, 255
F O R T R A N felügyelő rendszer (F M S ), 26 H register - H regiszter, 253, 262 I__________________________________________ IL C (Instuction Location Counter) - IL C
forvvard reference problem - előre hivatkozási h a lf adder - félösszeadó, 171-172 1/0 (Input/Output) - B/K (Bem enet/Kimenet), (utasítás-helyszámláló), 540
probléma, 539 half-duplex line - fél-duplex vonal, 135 117-147 IL L IA C - I L L IA C . 32
fourth-generation computers - negyedik halftone screen frequency - halftone képernyó- 1/0 instructions - B/K utasítások, 402-405 I L L IA C IV - I L L I A C IV, 80, 604
generációs számítógépek. 38 frek-vencia, 131 1/0 manager, Windows X P - B/K kezelő, immediate addressing - közvetlen címzés, 380
F P M (Fást Page Mode) memorj - F P M halftoning - halftoning, 130 Windows XP. 492 immediate file - közvetlen fájl, 509
(gyors lapkezelésű) memória, 189 Hamming code - Hamming-kód, 89 IA-32 - IA-32, 359 immediate operand - közvetlen opcrandus, 380
fraction - törtrész, 709 Hamming distance - Hamming-távolság, 88 lA-64 - lA-64, 431-439 im plicit linking - implicit szerkesztés, 558
fra}>mentation - elaprózódás Hamming, R iih a rd - Hamming, Richard, 44 bundle - köteg, 435 implied addressing - implicit címzés, 729
external - külső, 460 handle - kezelő, 494 E P I C model - E P IC : modell, 433 import library - import könyvtár, 558
internál - belső, 455 hardware - hardver, 23 instruction scheduling - utasításütemezés, index register - indexregiszter, 723
frame - keret, 110 equivalence with software - ekvivalenciája a 434-436 indexed addressing - indexelt címzés, 383
frame pointer - keretmutató, 362 szoftverrel, 24 predication - prédikáció, 436-438 indexed co lor- indexelt színelőállítás. 125, 595
free list - szabad lista, 474 hardware ahstraction layer - lA S machine - lA S gép, 33 indirect block- indirekl blokk, 504
free page - szabad lap, 497 hardverabsztrakciós réteg, 491 I B M 1401 - I B M 1401, 35 Industry Standard Architecture (IS A ) - ipari
frequency modulation - frekvenciamoduládó, 133 hardware D S M - hardver D S M , 620 IB M 360 - I B M 360. 37, 41, 583 szabványos felépítés (IS A ), 119, 223
frequcney shift keying - írekvenciaeltolásos H arvard architecture - Harvard-architektúra, I B M 701- I B M 701. 34 infix notation - infix jelölés, 385
kódolás, 133 94 IB M 704 - I B M 704, 34 informative Information, in standard -
F S M (see Finite State Maehine) - F S M (lásd hash coding - tördelő kódolás, 547 I B M 7094 - I B M 7094, 35, 41 informatív információ, szabványban, 355
véges állapotú gép) hazard - akadály, 307 I B M 801- I B M 801, 73 informative - informatív, 355
full ad der-teljes összeadó, 171-172 H D T \' (High Definition TeleVision) - H D T V I B M Corporation - IB M Corporation, 34, 35, ingress Processing - bejövő csomagokon végzett
full duplex line - fiill-duplex vonal, 135 (nagy felbontású televízió), 597 37, 223 feldolgozás, 589
full handshake - teljes kézfogás, 202 headend - fejállomás, 137 I B M P C - I B M PC , 39, 43 initiator, P C I bús - kezdeményező, P C I sín, 227
full in terco n n ect - teljes összekötés, 633 header - fejléc, 233 bús - sín, 223 inkjet printer-tintasugaras nyomtató, 128
full reso u rce sharing - teljes erőforrás­ headless workstation - fej nélküli origin - eredet, 39 i-node - i-csomópont (node), 503
megosztás, 577 munkaállomás, 645 I B M PS/2 - I B M PS/2, 223 Input/Output (1/0) - Bemenet/Kimenet (B /K ),
fu n ctio n al u n it - fu nkcio nális egység, 79 hexadecimal number - hexadecimális szám, 698, IC (Integrated C ircu it) - IC (integrált áramkör), 117-147
743 36, 163 input/output device - bemeneti kimeneti eszköz
High Definition TeleVision (H D T V ) - nagy I D E (Integrated Drive Electronics) - I D E C R T m o n ito r - C R T Monitor. 121
game computer - játékgép, 48 felbontású televízió (H D T V ), 597 (beépített eszközelektronika), 101 digital camera - digitális kamera. 141
gam ut-gam ut, 131 high level language - magas szintű nyelv, 23 I K E E floating-point standard - I E E E Hat panel display - lapos inegjelenító. 122
gate-kapu, 20, 153 compared ío assembly language - lebegőpontos szabvány, 711 keyboard-billentyűzet. 121
gate delay - kapukésleltetés, 164 összehasonlítása az assembly nyelvvel, 526 IF U (Instruction Fetch U n it) - I F U magnetic disk - mágneslemez. 97
G D I (G raphics Device Interfacc), Windows X P High Sierra - High Sieira, 111 (utasításbctöltő egység), 296-300 mice - egér, 126
- G D I (grafikus eszköz interfész). Windows history - történeti áttekintés I J V M (Integer Ja v a Virtual Machine) - I JV M modem - modem. 133-141
XP, 493 1642-1945- 1642-1945, ,30 (egész aritmetikájú java virtuális gép), optical disk - optikai lemez. IOX-117
G D T (G lobal Descriptor Table) - G D T (globális 1945-1955- 1945-1955,31 251-260, 266-275 printer - nyomtató, 127-133
k'írótábla), 462 1955-1965- 1955-1965, 34 constant pool - konstans mező, 268 telecommunications equipment -
generál regiszter - áltahmos regiszter, 722 1965-1980-1965-1980,36 data path - adatűt. 252 telekommunikációs berendezés. I3.3-I4I
Global Descriptor Table (G D T ) - globális 1980-present - 1980-napjainkig, 38 instruction set - utasításkészlet, 270 terminál - terminál. 121-125
leírótábla (G D T ), 462 computer systems - számítógéprendszerek java code - java kód, 273 input/output instructions - bemeneti/kimeneti
global label - globális címke, 743 Intel - Intel, 52 local variable frame - lokális változók mezője, utasítások. 402-405
Globe - Globe, 661 Intel 8051 - Intel 8051,59 268 instruction - utasítás, 359-36S, 394-414
Goldstine, Herm án - Goldstine, Hermán, 33 microprogramming - mikroprogramozás, 24, memory model - memóriamodell, 268 8051 -8051,411
google cluster - google-klaszter, 645-649 27 memory operation - memóriaművelet, 257 8088 •8088, 730
Graphical User Interface (G U I) grafikus operating system - operációs rendszer, 25 method area - metódus mező, 269 braiK'li - elágazó, 398. 414
felhasználói felület ( G U I) , 39, 489 Sun Microsystems - Sun Microsystems, 57 Mic-1 implementation - M ic-I megvalósítás. compurison - összehasonlító. 398-399
Graphics Device Interface (G D I), Windows X P hit ratio - találati arány, 93 280 data niovement - adatmozgató, 394-395
- grafikus eszköz interfész (G D I), Windows Hoagland, A1 - Hoagland, Al, 43 Mic-2 implementation - Mic-2 megvalósítás. dyadic - diadikus, 395-396
XP, 493 Hoff, Ted - Hoff, Ted. 52 291 1/0 - B.''K. 402-405
782 tárgym utató tárgym utató 783

loop - ciklus, 400-401 Intel 8051 - Intel 8051, 219-221, 365 I P (Instruction Pointer) - I P (utasításmutató), L A N (l^ c a l Area NetWork) - L A N (helyi
nionadic - monadikus. 396-398 addressing - címzés, 392-393 720 hálózat), 584
Pentium 4 - Pentium 4, 405-408 data types - adaltípusok, 371 I P (Internet Protocol) - IP (internetprotokoll), land - szint, 108
procedure call - eljáráshívó, 400 history - történeti áttekintés, 59 586 lane - sáv. 234
U llra S P A R C - U ltraS PA R C . 408^10 instruction formats - utasításformátuniok, I P C (In te r Process Communication) - IP C language - nyelv, 17
instruction count, relation to R IS C - utasítás­ 379 (processzusok közti kommunikáció), 489 laser printer - lézernyomtató, 129
szám, RlSC-hez viszonyítva, 72 instructions - utasítások. 411 Iron Oxide Valley - Vas-oxid Völgy, 43 latch - tároló, 77, 177-179
instruction execution - utasítás-végrehajtás, 68 microarchitecture - mikroarchitektijra, 343­ IS A (Industry Standard .Architecture) - ISA latency - késleltetés, 77
Instruction Fetcli Unit ( I F I I ) - utasításbetöltő 345 (ipari szabványos felépítés), 119, 223 rotational - forgási, 99
egység ( I F U ) , 296-300 overview of the IS A - ISA-szint áttekintése, IS A (Instruction Set Architecture) IS A latency hiding - késleltetési idő elrejtés, 666
instruction formats - utasít ásformátumok, 365-368 (utasításrendszer-architektúra), 22, 352-443, Latin-I - Latin-1, 145
371-380 Intel 8080 - Intel 8080, 53 717 la ye r- réteg, 19
SOS I -8051,379-380 Intel 8086 - Intel 8086, 53 IS A bús - IS A sín, 222 L B A (Logical Block Addressing) - L B A (logikai
design criteria - tervezési követelmények, Intel 8088 - Intel 8088, 39, 40, 53, 359, 720 I S A level - ISA-szint, 22, 352-443 blokk címzés), 102
372 addressing - címzés, 726-730 addressing - címzés, 380-394 L C D (Liquid Crystal Display) - L C D
Pentium 4 - Pentium 4. 376-379 assembler - assembler, 741 data tj'pes - adattípusok, 368-371 (folyadékkristályos kijelző), 123
U ltra S P A R C - U ltra S P A R C , 378 instruction set - utasításkészlet, 730 flow of control - vezérlési folyamat, 414-426 L D f (Local Descriptor Tkble) - L D T (lokális
instruction group - utasításcsoport, 435 simulator - szimulátor. 747 IA-64-1A-64, 431-439 ' leírótábla), 462
instruction issue unit - utasításkiosztó egység, tracer - nyomkövető. 747 instruction formats - utasításformátumok. Least Recently Used (L R U ) algorithm -
339 Intel 8255A - Intel 8255A, 240 371-380 legrégebben használt ( L R U ) algoritmus, 318,
instruction levél parallelism - utasításszintű Intel Celeron - Intel Celeron, 55 instructions types - utasítástípusok, 394-414 453
párhuzamosság, 75-80, 565-572 Intel Corporation - Intel Corporation, 52 I S P (Internet S e n ice Provider) - IS P L E D (Light Em itting Diode) - L E D
Instruction Location Counter (IL C ) - utasítás- Intel Pentium (see alsó Pentium 4) - Intel (internctszolgáltató), 585 (fénykibocsátó dióda), 127
helyszámláló (IL C ), 540 Pentium (lásd még Pentium -t), 52, 54 I S R (Interrupt Service Routine) - I S R left value - halérték, 727
Instruction Pointer ( IP ) - utasításmutató (IP ). Intel Xeon - Intel Xeon, 55 (megszakításkezelő). 423 legacy - hagyományos, 209
720, 724 In ter Process Communication ( IP C ) - Itanium 2 - Itanium 2. 431-439 Leibniz, Gottfried von - Leibniz, Gottfried von, 30
Instruction Register (I R ) - utasításregiszter processzusok közti kommunikáció (IP C ), 489 l U (Integer U n it) - l U (Integer U n it), 58 level - szint, 19
(Í R ) , 67, 344 interconnection networks - összekötő hálózatok, level 2 cache - 2. szintű gyorsítótár, 314
instruction scheduiing - utasításütemezés, 631-634 level-triggered latch - szintvezérelt tároló, 179
434-436 bisection bandwidth - kettévágott Ja v a - Java, 23 Light Em itting Diode ( L E D ) - fénykiboesátó
Instruction Set Architecture (IS A ) - sávszélesség, 633 Ja v a Virtu al M achine (JV IV I) - java virtuális gép dióda ( L E D ) , 127
utasításrendszer-architektúra (IS A ), 22, topology - topológia, 632 ( J V M ) , 251 Lind a - Linda, 656
352-443, 717 interlaced - váltottsoros, 596 Jobs, Steve - Jobs, Stcve, 39 linear address - lineáris cím, 463
8051-8051,411 interleaved memorj - tagolt memória, 619 J O H N I A C - J O H N IA C , 32 Lines Per Inch dpi) - vonal per inch (Ipi), 131
Pentium 4 - Pentium 4, 405-408 internál fragmentation - belső elaprózódás, 455 Jo in t Photographic Experts Group (.IP E G ) - lin k - link (kötés, kapocs), 502
U ltra S P A R C - U ltra S P A R C . 408-410 Internet over cable - kábeles internet, 137 J P E G , 142 link layer - kapcsolati réteg, 235
Instruction Set Architecture (IS A ) level - Internet Protocol ( IP ) - internetprotokoll (IP ), Jo in t Test Action Group (JT A G ) - J'fA G , 596 linkage editor - szerkesztő-editor, 547
utasításrendszer-architektúra ( I S A ) szintje, 586 Jo y , B ill- J o y , Bili, 57 linkage segment - csatoló szegmens, 555
22. 352-443, 717 Internet Service Provider ( I S P ) - J P E G (Jo in t Photographic Experts Group) - linker - szerkesztő, 547-551, 741
instruction set. Intel 8Ü88 - iitasításkészlct. Intel internetszolgáltató (IS P ), 585 J P E G , 142 linking - szerkesztés, 547-551, 741
8088. 730 interpretation - értelmezés, 18 JT A G (Jo in t Test Action Group) - JT A G , 596 binding time - hozzárendelési idő, 552
instruction sets, comparison - utasításrendszer. interpreter - értelmező, 18, 70, 718 jum p (see branch) - ugrás (lásd elágazás) dynamic - dinamikus, 555
411 interrupt - megszakítás, 119. 423^26 J V M (Ja v a V irtu al M achine) - J V M (java M U L T IC S - M U L T IC S , 555
instruction types - utasítástípusok, 394-414 imprecise - pontatlan, 327 virtuális gép), 251 object modul - tárgymodul, 551
Integer Ja v a V irtu al M achiue ( I J V M ) - egész precise - pontos, 327 J V M (see alsó I J V M ) - JV M (lásd meg I J V M ) task performed - feladatai, 548
aritmetikájú java virtuális gép ( I J V M ) , 251­ transperent - átlátszó, 424 U N IX - U N IX , 559
260,266-275 interrupt handler - megszakításkezelő, 119 K____________________________________ Windows - Windows, 557
Integer U n it (lU ) - Integei Unit ( lU ), 58 Interrupt Service Routine ( IS R ) - kernel - kernel (rendszermag), 491 linking loader - szerkesztő-hctöltő, 547
Integrated C ircuit (IC ) - integrált áramkör megszakításkezelő ( IS R ) , 423, 426 kernel mode - kernel mód. 355 Liquid Crystal Display (L C D ) -
(IC ). 36, 163 interrupt vector - megszakításvektor, 207 key - kulcs. 473 folyadékkristályos kijelző (L C D ), 123
Integrated Drive Electronics (ID E ) - beépített intersector gap - szektorrés, 98 keyboard - billentyűzet, 121 literal - literál, 542
eszközelektronika (I D E ) , 101 invalidate strategy - érvénytelenítő stratégia, Khosla, Vinod - Khosla, Vinod, 57 littlc cndian - kis endián, 86, 727
Intel 4004 - Intel 4004, 52 613 K ild a ll, Gary - Kildall, Gary, 39 load/store architecture - hetoltő/tároló
Intel 8008 - Intel 8008, 52 inversion bubble - inverziős gömb, 154 architektúra, 365
Intel 80286- In te l 80286, 53 inverter - inverter, nem kapu, 154 loader - betöltés, 547
Intel 80386 - Intel 80386, 54 inverting buffer - invertáló puffer. 185 L1 B T B - L l B T B , 335 Local Area N et»ork (L A N ) - helyi hálózat
Intel 80486- In te l 80486, 54 invisible computer - láthatatlan számítógép, 41 label - címke, 718 (L A N ), 584
784 TÁRGYM UTATÓ tárgym utató 785

Local Descriplor Table (L D T ) - lokális McNealy, Scott - M cNealy, Scott, 57 strick consistency - szigorú konzisztencia, MicroProgram Counter (M P C ) - mikroiitasítás-
leírótábla (L D T), 462 MCS-51 family - M CS-51 család, 59 607 számláló (M P C ), 261
local label - lokális címke, 743 M D R (M em ory Data Register) - M D R weak consistency - gyenge konzisztencia, 609 microprogramming - mikroprogramozás, 24
local loop - lokális ciklus/hurok, 135 (memóriaadat-regiszter), 253, 257, 259, 262 mesh - háló, 634 history - történeti áttekintés. 24, 27
Local Variahlc (l.V) pointer - lokális változó média processor - médiaprocesszor, 592-597 .M E S I cache coherence protocol - M E S I Microsoft Corporation - Microsoft Corporation.
(L V ) mutató, 253, 262, 266. 280 memory - memória, 83, 176 gyorsítótár-koherencia protokoll, 614 40, 490, 473
local variable frame - lokális változók mezője. 8088 - 8088, 725-730 message passing - üzenetátadás, 650-652 microstep - mikrolépés. 306
266, 268 address - memóriacím, 84 message passing inulticomputers - milestones in computer architecture -
localitv principle - lokalitási elv, 93, 452 associative - asszociatív, 461 üzenetátadásos multiszámítógép, 629-667 mérföldkövek a számítógépek fejlődésében.
location countcr - helyszámláló, 742 attraction - vonzásmemória, 628 message queue - üzenetsor, 511 28^1
Logícal Block Addressing (L B A ) - logikai blokk cache - gyorsítótár, 92, 313, 611-614 Message-Passing Interface ( M P I) - M IM D (M u ltip le Instruction stream M ultiple
címzés ( L B A ) , 102 chip - lapka, 186 üzenetátadás interfész (M P I) , 651 Data stream) - M IM D (többszörös utasítás­
logical record - logikai rekord, 471 D D R - D D R , 190 M etál Oxido .Semiconductor (M O .S) - fém oxid áram többszörös adatáram), 604-605
leng - hosszú, 722 D R A M - D R A M , 189 félvezető (M O S ), 155 M IP S (acronym, M illions of Instructions Per
leng word - hosszú szó, 727 dynaraic R A M - dinamikus R A M , 189 method - metódus, 400 Second) - M IP S (betiíszó, millió utasítás
loop control - ismétléses vezérlés, 400-401 E D O - E D O , 189 method area - metódus mező, 269 másodpercenként). 75
loosely coupitd - lazán kapcsolt, 564 E E P R O M - E E P R O M , 190 metric units - mértékegységek, 61 M I P S (chip) - M IP S (lapka), 73
Lovelace, Ada Augusta - Lovelace, Ada E P R O M - E P R O M , 190 M F T (M aster File Table) - M F T M I R (M icroinstruction Register) - M I R
Augusta, 30 flash - flash, 191 (mesterfájltábla), 509 (mikroutasítás-regiszter), 261
Ipi (Lines Per Inch) - Ipi (vonal per inch). 131 F P M - F P M , 189 Mic-1 - M ic - l,2 6 l,2 8 ü M IS D (M ultiple Instruction stream Singlc Data
L R U (Least Recently Used) algorithm - L R U hierarchy - hierarchia, 96 data path - adatút, 262 stream) - M IS D (többszörös utasításáram
(legrégebben használt) algoritmus, 453 map - térkép, 447 implementation - megvalósítás, 280 egyszeres adatáram), 604-605
L V (Local Variable) pointer - L V (lokális model - modell, 356-358 Mic-2 - Mic-2, 300 miss ratio - hibaarány, 93
változó) mutató, 253, 262, 266, 280 organization - szervezés, 183 data path - adatút, 301 M M U (Mem ory Management U n it) - M M U
organization, Intel 8088 - szervezés, implementation - megvalósítás, 300 (memóriakezelő egység), 449
M _______________ ______________________________ _ Intel 8088, 725 Mic-3 - Mie-3, 305 mnemonic - mnemonik, 718, 741
machine language - gépi nyelv, 17, 717 packaging - tokozás, 95 data path - adatút, 304 m odem -m odem , 120, 133
Macintosh, Apple - Macintosh, Apple, 39 prim ary - központi, 83 implementation - megvalósítás, 303-309 modulation - moduláció, 133
macro - makró, 534 P R O M - P R O M , 190 pipciine - csővezeték, 303-309 amplitude - amplitúdó, 133
call - hívás, 535 Random Access (R A M ) - véletlen elérésű Mic-4 - Mic-4, 309 frequency - frekvencia, 133
detinition - definíció, 534 (R A M ) , 60, 188 Data Path - Adatút, 309 phase - fázis, 133
expansíon kifejtés, 535 refresh - frissítés, 189 implementation - megvalósítás, 309 nionadic instructions - monadikus műveletek,
formai paraméter - formális paraméter, 536 R O M - R O M . 190 mickey - miekey, 127 396
implementation - megvalósítás, 537 S D R A M - S D R A M , 189 M icro Assembly Language (M A L ) - mikro Moore, Gordon - Moore, Gordon, 42
parameter - paraméter, 536 secondary - háttérmemória. 96 assembly nyelv ( M A L ) , 276 .Moore’s law - Moore-szabály. 42
macroarchitecture - makroarchitektúra, 266 S R A M - S R A M , 189 microarchitecture - mikroarchitektúra, 251 M O S (M etál Oxide Semiconductor) - M O S
magnetic disk - mágneslemez, 97 static R A M - statikus R A M , 189 8051 -8051,343 (fém-oxid félvezető), 155
mailslot - levélbedobó nyílás, 515 Virtual - virtuális, 445-469, 493, 495^98 Pentium 4 - Pentium 4, 332 niotherboard - alaplap, 117
mainframe - nagyszámítógép, 51 M em ory Address Register (M A R ) - U ltra S P A R C - U ltra S P A R C , 338 M o tif- M o tif,4 8 9
M A L (M icro Assembly Language) - M A L memóriacím-regiszter ( M A R ) , 257 microarchitecture level - mikroarchitektúra Motion Picture Expert Group ( M P E t íl -
(mikro assembly nyelv), 276 Mem ory Buffer Register ( M B R ) - szintje, 21, 251 M P E G , 581
M A N U C - M A n 'i A C, 32 memóriapuffer-regiszter ( M B R ) , 253, 259, branch prediction - elágazásjövendölés, Motorola 68000 - M otorola 68000, 72
mantissa - mantissza, 709 262 319-324 niouse - egér, 126
M A R (Mem ory Address Register) - M A R Memory Data Register (M D R ) - memóriaadat- cache memory - gyorsítótár, 313-319 M P C (M icroProgram Counter) - M P C
(memóriacím-rogiszter), 257 regiszter (M D R ) , 257 design tervezés, 291-312 (inikroutasítás-számláló), 261
M a r k i - M a r k 1,31 Memory Management U n it (M M U ) - example - példa, 332-347 M P E G (M otion Picture Expert Group) -
m ask-m aszk, 395 memóriakczcló egység (M M U ) , 449 U V M example - UVM -példa, 251-291 M P E G . 581
M A S M - M A S M , 528 memory mapped I/O - memóriára leképezett m icrocontroller- mikrovezérlő, 46 M P I (Message-Passing Interface) - MIM
Massively Parallel Processors (M P P j - erősen B K, 242 microdrive - mikromeghajtó. 143 (üzenctátadás interfész), 651
párhuzamos processzorok (M P P ), 6U6. 63.5-644 memory semantics - memóriaszemantika, 357, mieroinstruction - mikroutasítás, 72. 258 M P P (Massively Parallel Processor) - M I’P
M aster File Table (M F T ) - mestcrfájltábla 606-610 notation - jelölés, 275 (erősen párhuzamos processzor), 635, 606­
(M F T ), 509 processor consistency - microinstructicm control - mikroutasítás- 644
master, bús - mester, sín. 195 processzorkonzisztcncia, 608 vezérlés, 261 M S - D O S - M S - D O S , 40
mátrix printer - mátrixnyomtató, 127 release consistency - elengedési M icroinstruction Register ( M IR ) - niulticom puter- multiszámítógép. 83. 600. 681
Mauchley, Jo h n - Mauehley, John, 32 konzisztencia, 610 mikroutasítás-regiszter ( M I R ) , 261 BlueGene/L - BlueG cne/L. 618. 627. 635-640
M B R (M em ory Hiiffer Register) - M B R se<ineiitial consistency - soros konzisztencia. micro-operati(m - mikroművelet, 310 google cluster - google-klaszter, 645- 649
(memóriapuffcr-regiszter), 253, 259. 262 607 microprogram - mikroprogram, 21, 24, 721 M P P - M P P 606, 635
786 TÁRGYM UTATÓ
tárgym utató 787

O P C (O ld Program Counter) - O P C (régi page fault - laphiány, 452


Red Storm - Red Storm, 640-643 N ID (NetWork Interface Device) - N ID (hálózati
utasításszámláló), 253, 262, 280 page frame - lapkeret, 448
performance - teljesítménye, 652-653 interfész eszköz), 136
opcode - művkód, 252 page map - laptábla. 447
scheduling - ütemezése, 652-653 No Cashing N U \L4 (N C -N U M A ) - gyorsítótár
open collector - nyílt gyűjtü;'kollektor, 195 page replacement algorithm - lapcserélő
software - szoftver, 650 nélküli N U M A (N C - N U M A ). 620
Open Core Protocol-International Partnership algoritmus, 453, 454
M U L T IC S (M ULTiplexed Information and NO Remote Mem ory Access (N O R M 4 ) - távoli
(O C P - IP) - nyílt magprotokoll nemzetközi F IF O - F IF O , 454
Computing Service C M U LT IC S ) - M U L T IC S . memória elérése nélküli ( N O R M A ) , 606
társaság (O C P - IP), 583 L R U - L R U , 45?
461,466,556 nonblocking message passing - nem blokkoló
Open G rid Services Architecture (O G S A ) - nyílt page replacement policy - lapcserélő eljárás. 453
multilevel inaih in e - többszintű gép, 20 üzenetküldés, 650
grid szolgáltatások architektúrája (O G S A ), page scanner - lapfelügyelő, 620
M u ltiM e d ia eXtension (M M X ) - multimédiás nonblocking network - nem blokkoló hálózat, 617
669 paging - lapozás, 447
kiegészítések ( M M X ), 54 noninverting buffer - nem invertáló puffcr, 185
Open llo st ( ’ontroller Interface (O H C I) - nyílt demand - kérésre, 452
M u ltip lc Instruction stream M ultip le Data N onllniform Mem ory Access (N U M A ) - nem
kiszolgálóvezérlő interfész (O H C I), 240 iniplementation - megvalósítása, 448
stream (M IM D ) - többszörös utasításáram egységes memóriaelérés ( N U M A ) , 605,
operand stack - operandusverem, 267, 268 Iransparent - transzparens, 448
többszí'irös adatáram (M IM D ), 604—605 619-628
operating systeni - operációs rendszer, 25, 444, parallel computer architecture - párhuzamos
M ultip le Instruction stream Single Data stream mmvolatile memory - nem felejtő memória, 190
461 számítógép-architektúra, 563-673
(M IS D ) - többszörös utasításáram egyszeres N O R M A (N O Remote Mem ory Access) -
C P/M - CP/M , 39 coprocessor - társprocesszor (koprocesszor),
adatáram (M IS D ), 604-605 N O R M A (távoli memória elérése nélküli),
history - történeti áttekintés, 25 583-598
multiplexed bús - multiplexeit sín, 1^7 606
M S - D O S - M S - D O S , 40 instruction level parallelism - utasításszintű
M ULTiplexed Information and Computing normative information, in standard - normatív
OS/2 - OS/2, 40 párhuzamosság, 565-572
Service (M U L T IC S ) - M U L T IC S , 461, 466, információ, szabványban. 355
U N IX - U N IX , 486-489, 495-496. 499-505, média processor - médiaprocesszor, 592-597
556 Nőt a Number (N aN ) - nem szám (N aN ), 715
510-513 m ultithreading - többszálúság, 572-578
multiplexer - multiplexer, 165 N O W (NetWork of Workstations) - N O W
Windows - Windows, 40 multicomputer - multiszámítógép, 600-603
multiprocessor - multiprocesszor, 82, 340, 578, (munkaállomások hálózata), 606
Windows X P - Windows X P 489-495, 496­ multiprocessor - multiprocesszor, 598-600
583, 598-629 N T File System (N T F S ) - NT-fájlrendszer
498,505-510,513-516 network processor - hálózati processzor,
bus-based - sínalapú, 610-616 (N T F S ), 505
Operating System Machine (O S M ) - operációs 568-575
crossbar-based - crossbar-alapú, 616-619 N T F S (N T File System) - N T F S (NT-
rendszer gép (O S M ), 444-523 on-chip parallelism - lapkaszintű, 564-583
on chip - egylapkás, 578-583 fájlrendszer), 505
operating system machine (O S M ) level - taxonomy - osztályozás, 603-606
switching network - kapcsolóhálózat, 617-619 N U M A (NonUniform Mem ory Access) - N U M A
operációs rendszer gép ( O S M ) szintje, 22, Parallel Input/Output ( P IO ) - párhuzamos be/
multiprogramming - multiprogramozás, 37 (nem egységes memóriaelérésű), 605, 619-()28
444-523 kimenet (P IO ), 241
multisession C'D-ROM - többszekciós CD- n-way set-associative cache - n-utas
operating system macro - operációs rendszeri Parallel V irtu al M achine (P V M ) - virtuális
R O M , 113 halmazkezelésű gyorsítótár, 317
makro(utasítás), 27 párhuzamos számítógép ( P V M ), 651
multistage switching network - többszintű
operation - művelet, 567, 659 parallelism - párhuzamosság
kapcsoló hálózat, 618 O _________________________________ __
operation code - műveleti kód, 252 instruction-level - utasításszintű, 75
multithreading - többszálúság, 572-578 object file - tárgymodul, 741
optical d isk -o p tik ai lemez, 108 processor-level - processzorszintű, 80
mutex - mutex, 513, 515 object manager Windows X P - objektumkezeló
Orange B o o k - Orange Book (Narancssárga parent process - szülő processzus, 510
mutual exclusion - kölcsönös kizárás, 513 Windows XP, 492
Könyv), 113 parity bit - paritásbit, 88
Myhrvold, Náthán - Myhrvold, Náthán, 43 object modulé - tárgymodul, 551
O rca - Orca, 658 parity tlag - paritás-flag, 734
object program - tárgyprogram, 524
ormalized number - normalizált szám, 710 partial address decoding - részleges
N_________________________________________________ OCT’-IP (Open Core Protocol-International
OS/2 - OS/2, 40 címdekódolás, 244
N aN (Nőt a Number) - N aN (nem szám), 715 Partnership) - O C P-IP (nyílt magprotokoll
Osborne 1 - Osborne 1, 40 partitioned resource sharing - erőforrás­
Nathan’s lírst law of software - Náthán első nemzetközi társaság), 583
O S M (Operating System M achine) - O S M felosztás, 576
szoftvertörvénye, 43 oc'tal number - oktális szám, 698, 743
(operációs rendszer gép), 444 Pascal, RIaise - Pascal, Blaisc, 30
N C -N U M A (No Cashing N U M A ) - N C - N U M A olT-line - kapcsolat nélküli, 475
ounding - kerekítés, 710 pass, assembler - menet, assembler, 539
(gyorsítótár nélküli N U M A ), 620, 603 ( )(; S A (Open G rid Services Architecture) -
out-of-order execution - sorrendtől eltérő passive mátrix display - passzív
near call - közeli hívás, 737 O G S A (nyílt grid szolgáltatások
végrehajtás, 324-329 mátríxmegjelenítő, 124
near jiim p - közeli ugrás, 735 architektúrája), 669
overflow error - túlcsordulási hiba, 709 path - űtvonal(név), 502
negated signal - negált jel, 187 O H C I (Open Hőst Controller Interface) -
overlay - átfedés, 445 path length - úthossz, 292
negative logic - negatív logika, 162 O H C I (nyílt kiszolgálóvezérlő interfész), 240
reducing - csökkentés, 294
N etBurst microarchitecture - N elBurst Old Program Counter (O P C ) - régi
payioad - hasznos adat, 233
mikroarchitektúra, 332 utasításszámláló (O P C ), 253, 262, 280
packet- csomag, 584, 631 P C (Program Counter) - P C (programszámláló.
NetWork Interface Device (N ID ) - hálózati ómega network - ómega hálózat. 618
packet Processing engine - csomagfeldolgozó utasításszámláló). 252-262. 720
interfész eszköz ( N ID ), 136 omnibus, PDP-8 - omnibus, PDP-8
egység, 588 P C I (Peripheral Component Interconnect) -
Xetwork of Workstations (N O W ) - on-chip multithreading - lapkaszintű
packet switching - csomagkapcsolás, 585 P C I (Peripheral Component Interconnect).
munkaállomások hálózata (N O W ), 606 többszálúság, 572-578
page - lap, 447 P C I sín, 120, 223-231
network processor - hálózati processzor, on-chip parallelism - lapkaszintű
committed - egyeztetett, 497 signal - jel, 228
587-582 párhuzamosság, 564—583
reservcd - foglalt, 497 transaction - tranzakció, 230
Nexperia - Ncxperia, 592 onc’s complement - egyes komplemens, 703
page directory - lapkönyvtár, 464 P C I Express bús - P C I Express sín. 232
nibble - falat, 406 on-line - on-line, 475
788 TÁRGYM UTATÓ TÁRGYM UTATÓ 789

PDP-1 - PD P-1, 35 pipelining - csővezeték alkalmazása, 76 p r o c e s s o r b a n d w id th - processzor Random Access Mem ory (R A M ) - véletlen
P D P - ll- P D P - 1 1 ,3 8 p it- üreg, 108 áteresztőképessége, 77 elérésű memória, 60, 188
PDP-8 - PD P-8, 35 pixel - képpont, pixel, 125 p r o c e s s o r b ú s - prücesszorsín, 582 ranging - távolságbehatárolás, 139
Pentium 4 - Pentium 4, 208, 359. 486 P L A (Program m able Logic A rray) - P L A p r o c e s s o r c o n s is te n c y - processzorkonzisztencia, raster scan - raszteres pásztázó, 122
addressing - címzés, 390-392 (programozható logikai tömb), 169 608 R A W dependence - R A W függőség, 307
b ú s- sín , 212 Pia in O ld Telephone Service (P O T S ) - egyszerű processor level parallelism - processzorszintű Read O nly M em ory ( R O M ) - csak olvasható
data types - adattípusok, 370 régi telefonszolgáltatás ( P O T S ), 135 párhuzamosság, 80-83 memória ( R O M ) , 60, 190
history - történeti áttelíintés, 52 Playstation 2 - Playstation 2,48 producer-consumer problem - termelő­ read/write pointer - olvasás/írás mutató, 739
instruction formats - utasításformátumok, pointer - mutató, 381 fogyasztó probléma, 478, 511 reál mode - valós üzemmód, 360
376-378 pointer register - mutatóregiszter, 723 program - program, 17 recursion - rekurzió. 400
instructions - utasítások, 405-408 poison bit - mérgezésbit, 332 Program Counter (P C ) - programszámláló, recursive procedure - rekurzív eljárás, 415
introduction - bevezetés, 37-42 Polish notion - lengyel jelölés, 385-388 utasításszámláló (P C ), 252-262, 720 Red Book - R ed Book (Vörös Könyv). 108
microarchitecture - mikroarchitektúra, 332 Portable Operating System-IX ( P O S IX ) - Program Status W ord (P S W ) - Red Storm - R ed Storm, 640
overview of IS A - ISA-szintjének áttekintése, P O S IX , 487 programállapotszó (P S W ), 344, 358,466 Reduced Instruction Set Computer ( R IS C ) -
359-362 position independent code - helyfüggetlen kód, Program mable Logic A rray (P L A ) - csökkentett utasításkészletű számítógép
photograph - fénykép, 55 555 programozható logikai tömb ( P L A ) , 169 (R IS C ) , 73
pinout - lábkiosztás, 210 positive logic - pozitív logika, 162 Program mable R O M (P R O M ) - programozható R IS C versus C IS C - R IS C és C IS C . 72
problems - problémái, 431-432 P O S I X (Portable Operating System-IX) - R O M ( P R O M ) . 190 Redundant A rray of Inexpensive Disks (R A ID )
performance of parallel computers - P O S IX , 487 programmed I/O - programozott B/K, 402 - olcsó lemezek redundáns tömbje ( R A ID ) ,
párhuzamos számítógépek teljesítménye posxtiix notation - postfix jelölés, 385 P ro g re s siv e scan - progresszív pásztázás, 596 104-108
achieving - elérése, 665-667 P O T S (Piain O ld Telephone Service) - P O T S P R O M (Program m able R O M ) - P R O M Reed-Solomon code - Reed-Solomon-kód, 98
Am dahl’s law - AmdahI törvénye, 664 (egyszerű régi telefonszolgáltatás), 135 (programozható R O M ), 190 register - regiszter, 21, 720
hardware metrics - hardvermértékek, poxtfix notation - postfix jelölés, 385 protected mode - védett üzemmód, 360 accumulator - akkumulátor, 722
661-663 P P E (Protocol/Programmed/Packet Processing protocol - protokoll, 194, 234, 585 addressing - címzés, 381
improving - növelés, 312-332, 661-667 Engine) - P P E (protokollVprogramozott/ Protocol/Programmed/Packet Processing displacement - indexelt, 728-727
software metrics - szoftvermértékek, 663-665 csomag- feldolgozó egység), 588 Engine ( P P E ) - protokoll-/programozott/ indirect addressing - indirekt címzés, 381, 382
Peripheral Component Interconnect ( P C I) - preabmie - fejléc (szektorban), 98 csomag-feldolgozó egység ( P P E ) , 588 mode - mód, 381
P C I sín, Peripheral Component Interconnect precise interrupt - pontos megszakítás, 327 pseudoinstruction - pszeudoutasítás, 531, 718, base - bázis, 722
(P C I), 120, 223-231 predication - predikáció/megalapozás, 436 744 base pointer - bázisniutató, 724
peripherial bús - perifériális sín, 582 prefetch buffer - előolvasási puffer, 76 P S W (Program Status W ord) - P S W condition code - feltételkód, 724
perpendicular recording - merőleges rögzítés, prefetch cache - előrebetöltő gyorsítótár, 339 (programállapotszó), 344, 358, 466 counter - számláló, 722
98 prefetching - előolvasás, 666 pthread - pthread, 512 data - adat, 722
persona] computer (P C ) - személyi számítógép prefix byte - prefix bájt, 287, 377, 406 public key cryptography - nyilvános kulcsú destination index - célindex, 724
(P C ), 49 present/absent bit - jelenlét/hiány bit, 450 titkosítás, 598 flag - fiag. 724
Persona] Digital Assisntant (P D A ) - digitális print engine - nyomtatómű, 130 P V M (Parallel Virtual M achine) - P V M index - index, 723
személyi asszisztens (P D A ), 41 printer - nyomtató, 127-133 (virtuális párhuzamos számítógép), 651 instruction pointer ( I P ) - utasításmutató (IP ),
pervasive computing - mindenütt jelenlévő color - színes, 131 720, 724
számítástechnika, 41 dye sublimation - festékszublimációs, 132 pointer - mutató, 723
phase modulation - fázismoduláció, 133 laser- léz er, 129 queueing unit - sorba állító egység, 310 program counter (P C ) - programszámláló,
physical address space - fizikai címtartomány, monochrom - monokróm, 127 utasításszámláló (P C ), 252-262, 720
447 solid ink - szilárd tintás, 132 R renaming - regiszterátnevezés, 329
physical layer - fizikai réteg, 234 wax - viasz, 132 race condition - versenyhelyzet, 482, 489 source index - forrásindex, 724
pigment based in k - pigmentalapú tinta, 132 procedure - eljárás, 415-421 Radio Frequency IDentifícation ( R E ID ) - window - regiszterablak, 363
pinout - lábkiosztás, 191 procedure call instruction - eljáráshívó utasítás, rádiófrekvenciás azonosító ( R F I D ) , 44 relatíve error - relatív hiba, 710
P IO (Parallel Input/Output) - P IO 400 radix - alapszám (számrendszeré), 698 relatíve path - relatív útvonal, 502
(párhuzamos be/kimenet), 241 procedure epilog - eljárásepilógus, 419 conversion between - konverzió release ronsistency - elengedési konzisztencia.
pipe - cső/csővezeték, 511 procedure prolog - eljárásprológus, 419 számrendszerek között, 698, 700 610
pipeline - csővonal, csővezeték, szállítószalag, process - processzus, 445,477 radix number system - számrendszerek, 698 relocation constant - áthelyezési konstans, 551
76 process and thread manager Windows X P - R A ID (Redundant A rray of Inexpensive Disks) relocation problem - áthelyezési probléma, 549
Mic-3 - Mic-3, 307 processzus- és száikczelő Windows XP, 493 - R A ID (olcsó lemezek redundáns tömbje), relocation, dynamic - áthelyezés, dinamikus,
Mic-4 - M i c ^ , 311 process management - processzuskezelés 104-108 552-555
Pentium 4 - Pentium 4, 334 U N I X - U N I X , 510 R A M (Random Access Mem ory) - R A M ReO rd er Buffer ( R O B ) - átrendező puffer
seven-stage - hétszakaszú, 309 Windows X P - W indows X R 513 (véletlen elérésű memória), 60, 188 ( R O B ) , 336
U ltra S P A R C - U ltra S P A R C , 340 process synchronization - processzus­ dynamic (D R A M ) - dinamikus ( D R A M ) , 189 replicated worker model - többszörözött
pipeline stage - csővezetékfázis, 77 szinkronizálás, 482, 489 static (S R A M ) - statikus (S R A M ) , 189 munkás modell, 658
pipeline stall - csővezeték bedugulás, 320 processor - processzor. 66 synchronous D R A M (S D R A M ) - szinkron reserved page - foglalt lap, 497
pipelined data path - csővonalas adatút, 305 D R A M ( S D R A M ), 189 resource layer - erőforrásréteg, 668
790 tárgym utató TÁRGYM UTATÓ 791

retirement unit - befejező egység, 337 preliv - prefix, 740 SninH Computer System Interface ( S C S I) - kis Static R A M (S R A M ) - statikus R A M (S R A M ),
rcverse Polish nutation - fordított lengyel segment register group - szegmensrcgiszter- számítógéprendszerek interfésze (S C S I), 189
esoport, 724 103-104 Stibbitz, George - Stibbitz, George, 31
jelölés, 385
R T ID chip - R F I D lapka, 44 segmentation - szegmentálás, 456-462 small model, 8088 - small modell, 8088, 746 storage - tároló, 83
right justified data -jobbra igazított adat, 395 best fit algorithm - legjobb illesztés Sm all Outfine D IM M (S O - D IM M ) - kisméretű store (see memory) - tár (lásd memória)
ring - gyűrű, 634 algoritmus, 460 kétsoros érintkczős memóriamodul (SO- store-and-forward packet switching - tárold-és-
ripple carry adder - átvitelt tovább terjesztő, first fit algorithm - első iliesztés algoritmus, D IM M ) , 95 továbbítsd csomagkapcsolás, 585
173 460 S M P (Sym m etric M u ltiP ro c e s s ^ r) - S M P store-to-Ioad - tárolás utáni betöltés, 337
R IS C (Reduced Instruction Set Computer) - implementation - megvalósítása, 459 (szimmetrikus multiprocesszor), 600, 610-619 stream -stream (folyam), 488
R IS C (csökkentett utasításkészictű self-modifying program - önmódosító program, snooping cache - szimatoló gyorsítótár, 609, Streaming S IM D Extensions ( S S E ) - Streaming
számítógép), 72 382 611-614 SIMD-kiegészítések (S S E ), 54
R IS C design principles - RISC-tervezési elvek semaphore - szemafor, 482, 511 snoopy cache - szimatoló gyorsítótár, 609, strict consistency - szigorú konzisztencia, 607
R IS C versus C IS C - R IS C és C IS C , 72 sequcncer - sorba álh'tó, 261 611-614 striping - csíkozás, 105
R O M (Read Only Memory) - R O M (Read Ü nly sequential consistency - soros konzisztencia, S ocket - S ocket (csatlakozási pont). 487, 515 strobe - kapuzójel, 178
Mem ory), 190 607 software - szoftver, 24 structured computer organization - struktúráit
root directory - gyökérkönyvtár, 502 Serial A TA (SA T A ) - soros A T A (S A T A ), 102 equivalence with hardware - ekvivalenciája a számítógép-felépítés, 17
root hub, U S B - központi csomópont, U S B , 237 server - kiszolgáló, szerver, 50 hardverrel, 24 subroutine - szubrutin, 400, 737
rotational lateiicy - forgási késleltetés, 99 server farm - kiszolgáló farm, 51 software layer - szoftverréteg, 236 Sun F ire E2 5 K - Sun Fire E25K, 617, 624-628
rounding - kerekítés, 710 session, C D - R O M - szekció, C D - R O M , 113 Solaris - Solaris, 487,511 Sun Microsystem - Sun Microsystem, 57-59
router - útvonalválasztó, 585 set-associatlve cache - csoportasszociatív s o lid ink printer - szilárd tintás nyomtató, 132 supercomputer-szuperszámítógép, 36, 51
gyorsítótár, halmazkezelésű gyorsítótár, 317 source index - forrásindex, 724 superscalar architecture - szuperskaláris
S ___________ _______________ ____________________ shard - szelet, 646 source language - forrásnyelv, 524 architektúra, 78-80
SATA (Serial ATA) - SA T A (soros A T A ), 102 shared library - megosztott könyvtár, 559 source operand - forrásoperandus, 726 superuser - rendszeradminisztrátor, 503
saturated arithmetic - telített módú aritmetika, shared memory (see multiprocessor) - közös S P (Stack Pointer) - S P (veremmutatÓ), 253, supervisor call - rendszerhívás, 27
569 memóriás (lásd multiprocesszor) 262, 266, 280, 723 switching algebra - kapcsolóalgebra, 155
scalable - skálázható, 601, 665 shared memory application-Ievel - S P A R C (Scalable Processor ARC hitecture) - switching network - kapcsolóhálózat, 6 17-619
Scalable Processor ARChitecture (S P A R C ) - alkalmazásszintű közös memória, 654-661 skálázható processzorarchitektúra (S P A R C ), Symbol table - szimbólumtábla, 545-547, 741
skálázható processzorarchitektúra (S P A R C ), shared memory m ultiprocessor - közös 57-59 symbolic name - szimbolikus név, 718
57-59 memóriás multiprocesszor, 598-629 spatial locality - térbeli lokalitás, 314 symmetric key cryptography - szimmetrikus
Scale, Index, Base (S IB ) - skála, index, bázis shell - héj (parancsértelmező, shell), 489 spcculative execution - feltételezett végrehajtás, kulcsú titkosítás, 598
(S IB ),3 7 7 , 391 shifter - léptető, 171 330 Symmetric M ultiProcesszor ( S M P ) -
scheduler - ütemező, 336 Shockley, W illia m - Shockley, W illiam , 34 spcculative load - spekulatív betöltés, 438 szimmetrikus multiprocesszor (S M P ), 600,
scheduling multicomputers - ütemezés, s í d (Security ID - S ÍD (biztonsági azonosító), split cache - szétválasztott gyorsítótár, 94, 313 610-619
multiszámítógép, 652-653 508 splitter - szétválasztó, 136 synchronous bús - szinkron sín, 198
scoreboard - eredményjelző, 325 sign extension - elójel-kilerjesztés, 258 S R latch - SR-tároló, 177 Synchronous D R A M (S D R A M ) - szinkron
S C S I (Sm all Computer System Interface) - signed magnitude- előjeles abszolút érték, 703 S R A M (Static R A M ) - S R A M (statikus R A M ), D R A M ( S D R A M ), 189
S C S I (kis számítógéprendszerek interfésze), signiticand - meghatározó rész, szignifikáns, 713 189 synchronous message passing - szinknm
103-104 S IM D (Single Instruction-stream M nltip le Data S S E - S S E , 54 üzenetátadás, 650
S D R A M (Synchronous D R A M ) - S D R A M strcam) computer - S IM D számítógép, 81 stack-verem , 266 system bús - rendszersín, 194
(szinkron D R A M ), 189 S IM M (Single Inlin e Mem ory M odulé) - S IM M stack addressing - veremcímzés, 384-388 system call - rendszerhívás, 27, 444, 487, 494
S R A M (Static R A M ) - S R A M (statikus R A M ), (egy érintkezősoros memóriamodul), 95 stack frame - veremkeret, 723 system interface - rendszerinterfész, 494
189 siniple C O M A - egyszerű C O M A , 629 Stack Pointer (S P ) - veremmutatÓ (S P ), 253, system on a chip - egylapkás rendszer, 578 583
Seastar - Seaslar, 641 simplex line - szimplex vonal, 135 262, 266, 280, 723 system programmer - rendszerprogramozó, 22
second pass - második menet, 742 simultaneous multithreading - egyidejű stage, pipeline - fázis, csővezeték. 77 system services, Windows X P -
secondary memory - háttérmemória, 96 többszálúság, 574 stale data - elavult adat, 611 rendszerszolgáltatások. Windows XP493
second-generation computers - második Single-chip muitiprocessor - egylapkás stalled, pipeline - bedugult, csővezeték, 320
generációs számítógépek, 34 multiprocesszorok, 578-583, 610-619 stalling - elakadás, 308
sector, disk - szektor, lemez, 98, 110 Single Inline M em oiy Modulé ( S IM M ) - egy standard error - szabványos hibacsatorna, 502 target language - célnyelv, 524
security descriptor - biztonságleíró, 495, 508 érintkezősoros memóriamodul ( S IM M ) , 95 standard input - szabványos bemeneti csatorna. target library - célkönyvtár, 559
Security ID (S ÍD ) - biztonsági azonosító (S ÍD ), Single Instruction-stream M ultiple Data strcam 501 tai^et, P C I bús - célcszköz, P C I sín, 227
508 ( S IM D ) computer - S IM D számítógép, 81 s ta n d a r d o u tp u t - szabványos kimeneti task hág - feladatzsák, 658
security reference monitor, W indows X P - Single Large Expensive Disk ( S L E D ) - egyetlen csatorna, 502 TAT-12/13-TAT-12/13, 43
biztonságiutalás-kezelő, Windows XP, 493 nagy, drága lemez ( S L E D ) , 104 s t a r - csillag, 633 T C P (Tk-ansmission Control Protocol) - TCP,
seek - keresés, 98 skew, bús - aszimmetria, sín, 197 8051-8051,345 586
segment - szegmens, 725-726 slave, bús - szolga, sín. 195 S tate - állapot T C P header - TCP-fejléc, 586
segment override - szegmensregiszter-válaszló, S L E D (Single Large Expensive D isk) - S L E D finite State machine - véges állapotú gép. telco (telephone company) - telco
740 (egyetlen nagy, drága lemez), 104 298 (telefontársaság), 135
792 TÁRGYM UTATÓ TÁRGYM UTATÓ 793

te le c o m m u n ic a tio n s e q u ip m e n l trap - csapda. 422, 733 underflow error - ahilcsordiilási hiba. 710 \irtual maehine - virtuális gép, 18
telekommunikációs berendezés, 133 trap handler - csapdakezelő. 422 U N IC O D E - U N IC O D E . 145 Virtual memory - virtuális memória, 445-469
telephoné company (telco) - telefontársaság tree - fa, 633 unified cache - egyesített gyorsítótár. 94 compared to caching - és gvorsitótár. 469
TriM edia - TriMedia, 567-572 Uniform Mem ory Access (U M A ) - egységes 432-453 '
(teleo), 135 '
triple indirect block- három.szoro.san indirekt memóriaelcrés ( U M A ) . 605 manager, Windows X P - kezelő. Windows X P
teniplate - minta, 657
tomporai locality - idc5beli lokalitás, 314 blokk, 504 Universal Asynchronous Receiver/TVansmitter 493
T E X ’r section - T E X T szegmens, 742 tri-sfate device - háromáJJapolú e.szköz, 185 (U A R T ) - univerzális aszinkron adó/vevő Pentium 4 - Pemtium 4, 462-466
T F T (T liin Film Transistor) - T F T (vekonylilm- true dependence - vakidi függőség, 307 ( U A R T ), 240 U ltra S P A R C - UltraSPARC,466-469
tranzisztor), 124 truth table - igazságtábla. 156 Universal Hőst Controiler Interface (U H C I) - U N I X - U N I X . 495-496
T F T display - T F T megjelenítő, 124 T S B (TVansIation Storage Buffer) - T S B univerzális kiszolgálóvezérlő interfész Windows X P - W indows X P 496
Thin Film Transistor (T F T ) - vekonylilm- (lapkezelő tárolópulTer), 468 ( U H C I) , 240 Virtual organization - virtuális szervezet. 668
tranzlsztor (T F T ). 124 T T L (Ttansistor-Transistor I>ogic) - T T L Universal Serial Bús ( U S B ) - univerzális soros Virtual register-virtuális regiszter, 265
third-generation computers - harmadik (tranzisztor-tranzisztor logika), 155 sín ( U S B ) , 236-240 Virtual topology - virtuális topológia. 652
generációs számítógépek, 36 tuning, program - hangolás, program, 527 Universal Synchronous .Asynchronous Receiver/ \irtuous circle - bűvös kör. 43
thrashing - vergődés, 454 tuple - adategység, 656 TVansmitter (U S A R T ) - univerzális szinkron, Visual Instruction Set (\1 S) - vizuális
thread - szál, 479, 511 tuple space - adategységtér, 656 aszinkron adó-vevő (U S A R T ), 241 utasításkészlct ( V IS ) , 58
three-bu.s architecture - háromsíncs twin - iker, 656 U N IX - U N IX \ 'L IW (Very Long Instruction W ord) - nagyon
architektúra, 295 IWisted Nematic (T N ) display - elforgatott file 1/0 - fájl B/K. 499-505 hosszú utasításszavú ( V L I W ) , 565-567
threshold sharing - küszöbölt (erőforrás-) molekulájú (T N ) kijelző, 123 introduction - bevezetés, 486 V L S I (Very Large Scale Integration) - V L S I
megoszlás. 577 two’s complement arithnietic - kettes linking - szerkesztés, 559 (nagyon magas fokú integrált.ság), 38, 490
tightiy coupled - szorosan kapcsolt, 564 komplemens aritinetika, 703 process management - proeesszuskezclés, Volume Table O f Contents (V T O C ) - kötet
time sharing system - időosztásos rendszer, 27 two-pass transiator - kétmenetes fordító, 539 489,510 tartalomjegyzék (V T O C ), 113
tiny model, 8088 - tiny modell, 8088, 746 1 X-0 - T X-0 , 34 Virtual memory - virtuális memória, 495 von Neumann maehine - Ncumann-gép. 33
T L B (Ita n slatio n Lookaside Buffer) - T I. B TX-2 - TX-2, 34 U P A (U ltra Port Architecture) - U PA . 217 von Neumann, Jo h n - Neumann János, 33
(lapkezelő segédpuffer), 467 update strategy - frissítő stratégia, 613 V T O C (Volume Table O f Contents) - V T O C
T L B miss - TLB-hiány, 468 U________ _____________ _______ U S A R T ( I niver.sal Synchronous Asynchronous (kötet tartalomjegyzék). 113
TN (IWi.sted Nematic) d is p la y - T N (elforgatott U pipeline - fő csővezeték, szállítószalag, 78 Receiver/Transmittcr) - U S A R T (univerzális
molekulájú) kijelző, 123 ü.\R T (L n ivcrsal Asynchronous Receiver/ szinkron, aszinkron adó-vevő), 241 V ________________________________________________
tokén - tokén, vczérjel, 582 Transm itter) - U A R T (univerzális aszinkron U S B (Universal Serial Bús) - U S B (univerzális wait .State - várakozó állapot, 199
’H)p O f Stack (T O S ) - veremtető (T O S ). 280 adó/vevő), 240 soros sín), 236-240 V\AN (W ide Area Network) - W A N
T O S (Top O f Stack) - T O S (veremtető), 253. ubiquitous computing - mindenütt jelenlévő user mode - felhasználói mód, 355 (nagyterületű hálózat), 584
262. 280 számítástechnika, 41 W'attel, Evert - Wattéi, Evert, 717
towers of Hanoi - Hanoi tornyai, 415-421, U D B n (U ltra S P A R C Data Buffer I I ) - U D B H, V _________________________ wax printer - viasznyomtatő, 132
427-431 217 V pipeline - második csővezeték, szállítószalag, weak consistency - gyenge konzisztencia, 609
Pentium - Pentium, 427-429 U H C I Universal Hőst Controiler Interface) - 78 W E IZ A C - W E IZ A C , 32
U ltra S P A R C - U ltra S P A R C , 429-431 I I H C I (univerzális kiszolgálóvezérlő vámpíré táp - vámpíresatlakozó. 584 W hirlw ind I - W hirlwind I, 34
trace B T B - nyomkövető B T B , 336 interfész), 240 V A X - V A X , 71 W'ide Area Network (W A N ) - nagyterületű
trace cache - nyomkövető gyorsítótár, 334 U ltra Port Architecture (U P A ) - U PA . 217 v e i (Virtual Component Interconnect) - VCT hálózat (W A N ), 584 '
tracer - nyomkövető, 718 U ltra S P A R C Data Buffer H (U D B I I ) - U D B 11. (virtuális komponens összeköttetés). 583 W'ilkes, M aurice - Wilkes, Mauriee, 24, 32. 71
Intel 8088 - Intel 8088, 747 217 vector register - vektorregiszter, 81 Win32 A P I - Win32 A P I, 494
track - sáv, 98 U ltra S P A R C I - U ltra S P A R C I. 58 vectorprocessor - vektorproeesszor. 81 Win32 subsystem - Win32 alrendszer, 494
transaction layer - tranzakciós réteg, 235 U ltra S P A R C I I I - U ltra S P A R C 111, 214-218, \'erj Large Scalc Integration (V L S I) - nagyon W inchester disk - merevlemez. 98
transistor, invention - tranzisztor, feltalálása, 34 378 magas fokú integráltság ( V L S I) , 38 Windows - Windows. 40. 490
Ttansistor-lVansistor Logic (T T L ) - tranzisztor­ addressing - címzés, 392 Very Long Instruction W ord ( V L IW ) - nagyon history - történet, 40
tranzisztor logika (T T L ), 155 data buffer - adatpuffcr, 217 hosszú utasításszavú ( V L I W ) , 565-567 linking - szerkesztés. 557
transition - átmenet, 298 data types - adattípusok, 370-371 Videó RA.M - Videó R A M , videomemória, 125 Windows ‘)5 - Windows 95, 490
transiation - fordítás, 18 history - történeti áttekintés, 57 Virtual 8086 mode - virtuális 8086 mód. 360 Windows 9S - Windows 98, 490
Transiation Lookaside Buffer (T L B ) - lapkezelő instructions - utasítá.sok, 408-410 Virtual address space - virtuális címtartomány, Windows New Technology (N T ) - Windows N I’
segédpuffer (T L B ), 340, 467 instruction fornits - utasításformátumok. 447 490
Transiation Storage Buffer (T S B ) - lapkezelő 378-379 U N I X - U N I X , '199 Windows X P - Windows X P
tárolópuffer (T S B ), 468 microarchitecture - mikroarehitektúra, 338-343 Virtual circuit - virtuális áramkör. 235 file 1/0-fájl B . K .505-510
transiation table - fordítótábla, 468 overt iew of IS A - IS A szintjének áttekintése. Virtu al Component Interconnect (V C I) - introduction - bevezetés, 489-49?
transiator - fordító, 524 362-365 virtuális komponens összeköttetés (V C I) , 583 process management - processzuskezelés
Transmission Control Protocol (T C P ) - TC R 586 towers of Hanoi - Hanoi tornyai, 429-431 Virtual cut through - virtuális vágás. 639 51.3-516
transparency - átlátszó.ság (megszakítás), 424 Virtual memory - virtuális memória, 466-469 Virtual I/O - virtuális B/K, 469 Virtual m em ory-virtuális memória, 496-498
transparent (paging) - transzparen.s/átlátszó l 'M 4 (Uniform Mem ory Access) - U M A implementation - megvalósítás, 505 wired-OR - huzalozott V A G Y , 196
(lapozás! mechanizmus), 448 (egységes memóriaelérés), 605 Windows X P - Windows XP, 505 word - sző. 86, 727
794 TÁRGYM UTATÓ

w o rd instruction - szavas utasítás, 727 write-deferred cache - késleltetett írás, 298


w o rd register - szavas regiszter, 727
working d ire c to r y - munkakönyvtár, 502
write-through cache - írásáteresztő gyorsítótár,
318 M agyar-angol tárgymutató
working set - munkahalmaz, 452
Wozniak, Steve - Wozniak, Steve, 39 X,XZ_________________________
W rite After Read (W A R ) dependence - olvasás X W indow System - X W indow System, 489
utáni írás ( W A R ) függőség, 327 X P file system - XP-fájlrendszer, 505
W rite After W rite (W A W ) dependence - írás Y 2 K búg - 2000, év probléma, 51
utáni írás (W A W ) függőség, 327 Yellow B o o k - Yellow Book (Sárga Köny), 110
write once protocol - egyszer író protokoll, 614 zeroth-generation computers - nulladik
write through - írásáteresztő, 612 generációs számítógépek, 30
write-allocate cache - íráskori feltöltés Zilog Z8000 - Zilog Z8000, 72
módszere, 319, 613 Zuse, Konrad - Zuse, Konrad, 31
write-back protocol - késleltetett írású
protokoll, 319, 614

2. szintű gyorsítótár - level 2 cache, 314 aktuális paraméter - actual paraméter, 536
2000. év probléma - Y 2 K búg, 51 alapblokk - basic block, 329
8051 (lásd Intel 8051) - 8051 (sce Intel 8051) alaplap - motherboard, 117
8088 (lásd Intel 8088) - 8088 (see Intel 8088) alapszám (számrendszeré) - radix, 698
konverzió számrendszerek között -
A , Á _____________________________________________ conversion between, 698, 700
abszolút útvonal - absolute path, 502 alapvető be-kimeneti rendszer ( B IO S ) - Basic
A C K (Amsterdam Compiler K it, Amsterdam Input Output System ( B IO S ), 101
fordítókészlet) - A C K (Am sterdam Compiler algoritmus - algorithm, 24
K it), 742 alkalmazásfejlesztést támogató interfész (A P I)
A C L (elérést vezérlő lista) - A C L (Access - Application Programming Interface ( A P I),
Control List), 508 494
adategység - tuple, 656 alkalmazáshoz kifejlesztett egyedi integrált
adategységtér - tuple space, 656 áram kör (A S IC ) - Application-Specific
adatgyorsítótár - data cache, 339 Integrated Circuit (A S IC ), 587
adatmozgató utasítás - data movement alkalmazási réteg - application layer, 669
instruction, 394 8051 -8051,345
adatszegmens - data segment, 734 alkalmazásszintű közös memória - shared
adattípus - data type, 368 memory application-level, 654-661
nem numerikus - nonnumeric, 369 állapot - State
numerikus - numerie, 368 véges állapotú gép - finitc State m achinc, 298
adatút - data path, 21, 67, 252-258 Alpha - Alpha, 40
időzítés - timing, 255 általános regiszter - generál regiszter, 722
Mic-1 - Mic-1, 262 A L U (aritmetikai-logikai egység) - A L U
M ic-2 - Mic-2, 301 (Arithm etic Logic U n it), 21, 67, 173-175
M ic-3 - Mic-3, 304 alulcsordulási hiba - underflow error, 710
M ic-4 - Mic-4, 309 A M B A (fejlett m ikrokontroller sínarchitektúra)
adatútciklus - data path cycle, 68 - A M B A (Advanced Microcontroller Bús
additív inverz - additive inverse, 398 Architecture), 583
A D S L (aszimmetrikus D S L ) - A D S L Am dahI törvénye - A m dahl’s law, 664
(Asymmetric D S L ), 135 amplitúdómoduláció - amplitude modulation,
A G P (gyorsított grafikus port) - A G P 133
(Acceleratcd Graphics Port), 125, 226 Amsterdam Compiler K it (Amsterdam
A G P sín - A G P bús, 125, 226 fordítókészlet) - Amsterdam Compiler Kit
Aiken, Howard - Aiken, Howard, 31 (A C K ), 742
akadály - hazard, 307 analitikus gép - analytieal engine, 30
akkumulátor - accumulator, 34, 343, 368 A P IC (fejlett programozható
akkumulátorregiszter - accumulator register, 722 megszakításvezérlő) - A P I C (Advanced
aktív mátrixmegjelenítő - active mátrix display, Programmable Interrupt Controller), 212
124 Apple I I - Apple II, 39
796 TÁRGYM UTATÓ
TÁRGYM UTATÓ 797

Apple Macintosh - Apple Macintüsh, 39 áthelvezés, dinamikus - rclocation. d\namic. 552 másíncslemez - magnctic disk, 97 C, C S
áram kör - Circuit áthelyezési konstans - rclocation constant, 551 modem - modem, 133-141 catamniint - catamount, 642
aritm etikai - arithmetic, 170-175 áthelyezési probléma - rclocation problem, 549 nyomtató - printer, 127-133 C C D (töltescsatolt eszköz) - C C D (Charge
kombinációs - combinationai, 165 átlátszóság (megszakítás) transparency, 424 optikai lemez - optical disk, 108-117 CoupIccI Device), 142
áramköri ekvivalencia - circuit cquivalcncc, átmenet - transition, 298 telekommunikációs berendezés - C C -N U M A (gyorsítótár-koherens N IIM A ) -
159-162 átmérő, hálózat - diametcr, network. 632 telccommunications equipmcnt, 133-141 C C - N U M A (Cache Coherent N U M A ),
architektúra - architecture, 23, 71 átrendező puffer (R O IÍ) - R cO rd e r Buffer terminál - terminál, 121-125 619-628
architektúrák összehasonlítása - comparÍ!>on of ( R O B ) , 336 bemeneti/kimeneti utasítások - input/output C D C (töltéscsatolt eszköz) - C D C (Charge
architectures. 346 áttetszőségi csatorna maszk - alpha channel instructions, 402-405 Coupled Device), 142
argumentum - argumenl, 737 mask, 595 Berkeley U N IX - Berkeley U N IX , 486, 487, 489 C D C 6600 - C D C 6600, 36, 79. 325
aritmetika, bináris - arithmetic, hinary, 7Ü5 átvitelkiválasztó összeadó - carry select adder, betöltés - loader, 547 C D C Cyber - C D C Cyber. 71
aritmetikai áramkörök - arithmetic circuit. 173 betöltő/tároló architektúra - load/store CD -R (írható C D ) - (TD-R (CD-recordablc,
17(1-175 átvitelt tovább terjesztő - rippic carry addcr. 173 architecture, 365 112
aritmetikai-lo!;ikai egység (A L U ) - Arithmetic automatikus csökkentés - autó decrement, 730 betöltő-dekódoló-végrehajtó ciklus - feteh- C D - R O M - C D - R O M (Compact Disc Rcad
Logic Unit (A L U ) , 21, 67, 173-175 automatikus növelés - autó incrcment, 730 decode-execute cycie, 69 O nly M em ory), 108
A S C II (az információcsere am erikai szabványos betöltő-végrehajtó ciklus - feteh-cxecute cycie, sáv - track, 113
kódrendszere - A S C I I (Am erican Standard B __________________ ___ ___________________________ 252 szektor -sector, 110
Code fór Information Interchange), 143 B/K (Bemenet/Kimenet) - I/O (Input/Output), billenőkör/flip-flop - flip-flop, 179 újraírható (C D -R W ) - rewritable (C D R W ).
A S IC (alkalmazáshoz kifejlesztett egyedi 117-147 billentyűzet - kcyboard, 121 114
integrált áram kör) - A S IC (Application B/K kezelő, Window's X P - 1/0 manager, bináris aritm etika - binary arithmetic. 705 X A - X A . 113
Specific Integrated Circuit), 587 Windows XP. 492 bináris keresés - binary search, 546 C D -R W (újraírható C D ) - C D - R W (CD-
assembler - assembler, 23, 525, 539, 718, 741 B/K utasítások - 1,'0 instructions, 402-405 bináris program - binary program, 718 rewritable), 114
direktíva - directive, 531 Babbage, Charles - Babbagc, Charles, 30 bináris szám - binary number, 696 Celeron - C eleron, 55
első menet - pass one, 540-544 bájt - byte, 86, 727 negatív - negative, 703 céleszköz, P C I sín - target, P C I bús, 227
Intel 8088 - Intel 8088, 741 bájtos regiszter - byte register, 727 összeadás - addition of, 705 célindex - destination index, 724
kétmenetes - two-pass, 539 bájtos utasítás - byte instruction, 727 Binárisan kódolt decimális (B C D ) - Binary célkönyvtár - target library, 559
második menet - pass two, 544-545 bájtsorrend - byte ordering, 86-88 Coded Decim ai (B C D ), 84, 406, 727 cella, memória - eell, memory, 84
szimbólumtábla - symbol table, 545 balérték-leftvalu e, 727 B IO S (alapvető be-kimeneti rendszer) - B IO S célnyelv- target language, 524
assembler menetei - assembly proeess, 539-547 Bardeen, Jo h n - Baidcen, John, 34 (Basic Input Output System), 101 céloperandus - destination operand, 726
első menet - pass one, 540-544 baud-baud, 134 bipoláris tranzisztor - bipolar transistor, 155 ciklikus redundanciakód (C R C ) - Cyelic
kétmenetes - two-pass, 539 Bayer-szűrő - Bayer filter, 142 bit - bit, 84, 699 Redundancy Check (C R C ), 235, 239, 586
második menet - pass two, 544-545 bázis - base, 153 bitblokk-átvitel (bitbit) - B I T Block Transfcr ciklusidő - cioek cycle time, 175
8088-8088,741 bázis-index címzés - based-indexed addressing, (bitblt), 596 cikluslopás - cycle stealing, 119, 405
assembly nyelv - assembly language, 524. 717 384 bitbit (bitblokk-átvitel) - bitblt (B 1 1’ Block cilinder - cylinder, 98
jellemzői - characteristics, 525 bázismutató - base pointer, 724 Transfer), 596 cím - addrcss, 84, 720
miért használatos - why usc, 526-52S bázisregiszter - base register, 722 bitszelet - bit slice, 174 memória - memory, 84
pszeudoutasítás - pseudoinstuction, 531-534 B C D (binárisan kódolt decimális) - B C D bittérkép - bit map, 370 címdekódolás - addrcss dccoding, 242
szint - lével, 524-562 (Binary Coded Dccim al), 84, 406, 727 biztonsági azonosító (S ÍD ) - Security I D (S ÍD ), címke - labcl, 718
utasítás - stalement, 528 beágyazott számítógép - embedded computer, 41 508 címtartomány - address space, 38, 446
assembly nyeh ű program - assembly language beállított jel - asserted signal, 187 biztonságiutalás-kezelő, Windovi-s X P - security fizikai - physical, 447
program, 525. 717, 741 Bechtolsheim, Andy - Bechtolsheim, Andy, 57 rcferenee monitor, Windows XP, 493 virtuális - Virtual, 447
assembly nyelvű programozás - assembly bedugult, csővezeték - stalled, pipeline, 320 biztonságleíró - security descriptor, 495. 508 címzés - addressing, 371, 380-394
language programming, 717 beépített eszközelektronika (ID E ) - Integrated blokkátvitel, sín - block transfer, bús, 205 bázis relatív - register w ith index, 729
áttekintés - overview, 718 Drive Electronics ( ID E ) . 101 blokkgjorsító - block cache, 489 bázis relatív eltolással - register with index
aszimmetria, sín - skew, bús, 197 befejező egység - retirement unit, 337 blokkoló hálózat - blocking network, 619 and displacem ent, 729
aszimmetrikus D S L (A D S L ) - Asymmetric O S L bejövő csomagokon végzett feldolgozás - ingress Bluedene - BlueG ene, 635-640 bázis-index - based-indexed, 384
(A D S L ), 135 Processing, 589 Blue(;ene/L - BlueGene/L, 635-640 direkt - direct, 381, 728
aszinkron sín - asynchronous bús, 201-202 belépési pont - entry point, 551 Blu-Ray - Blu-Ray, 117 elágazó utasítások - branch instruction.
asszociatív memória - associative memory, 461, belső elaprózódás - internál fragmentation, 455 Boole, George - Boole, George, 155 388-384
545 Bemenet/Kimenet (B/K) - Input/Output (I/O), Boole-algebra - Boolean algebra. 155-157 im plicit - implied, 729
AT kiegészítő - A T Attachment, 102 117-147 bővített IS A ( E IS A ) - Extended IS A (E IS A ) , 120 indexelt - indexed, 382
ATA-3 - ATA-3, 102 bemeneti/kimeneti eszköz - input/output devicc B rattain, W alter - Brattain, Walter. 34 indexelt - register displacement, 729
ATA-csomaginterfész (A T A P I) - A T A Packet billentyűzet - kcyboard, 121 B S S (s/^ímbólummal kezdődő blukk) - B S S Intel 8051 - Intel 8051, 392-393
Interface (A T A P I), 102 C R T M onitor - C R T monitor, 121 (B lo ck Started by Symbol). 742 Intel 8088 - Intel 8088, 726-730
Atanasoff, Jo h n - Atanasoff, John, 31, 33 digitális kamera - digital camera, 141 Burroughs B5000 - Burroughs B50()(), 36 közvetlen - immediate, 380
A T API-4 - ATAPI-4, 102 egér - mice, 126 bűvös kör - virtuous circle, 43 Pentium 4 - Pentium 4, 390-392
átfedés - overlay, 445 lapos megjelenítő - fiat panel display, 122 Byron, Lord - Byron, Lord, 30 regiszter - register, 381
798 TÁRGYM UTATÓ T ÁRGYM UTATÓ 799

regiszter-indirekt - register indirect, 381-382, Mic-3 - Mic-3, 307 D IP (kétlábsoros tokozás) - D IP (D ual Inline egységes memóriaelérés (U M A ) - Uniform
728 M ic ^ - M ic - 4 , 311 Package), 163 M em ory Access ( U M A ) , 605
U ltra S P A R C I I I - U ltra S P A R C III , 392 Pentium 4 - Pentium 4, 334 direkt címzés - direct addressing, 381 egyszer író protokoll - write once protocol, 614
verem - stack, 384-388 U ltra S P A R C - U ltra S P A R C , 340 direkt leképezésű gyorsítótár - direct-mapped egyszerű C O M A - simple C O M A , 629
címzési mód - addressing mode, 380 csővonal, csővezeték, szállítószalag 76 cache, 315 egyszerű régi telefonszolgáltatás (P O T S ) - Piain
összefoglalás - discussion, 393 csővonalas adatút - pipelined data path, 305 D L L (dinam ikus szerkesztő könyvtár) - D L L Old Telephone Service (P O T S ), 135
C IS C (összetett utasításkészletű számítógép) - (D ynam ic L in k Library), 557 együttes tervezés - codesign, 41
C IS C (Complex Instruction Set Computer), 73 D________________________________________________ D M A (közvetlen memóriaelérés) - D M A E H C l (kibővített kiszolgálóvezérlő interfész) -
C L U T (színkereső tábla) - C L U T (C o lo r Lo ok D-tároló - D latch, 179 (D irect M em ory Access), 119, 404 E H C I (Enhanced Hőst Controller Interface),
U p Table), 595 D ATA szegmens - D A T A section, 742 dpi (pont per inch) - dpi (Dots Per Inch), 129 240
CMYK-nyomtató - C M Y K printer, 131 D D R (kétszeres sebességű memória) - D D R D R A M (dinamikus R A M ) - D R A M (Dynam ic E I D E (kiterjesztett I D E ) - E I D E (Extended
C O B O L program - C O B O L program, 51 (Double Data Rate memory), 190 R A M ), 189 I D E ) , 101
C O L O S S IJS - C O L O S S U S , 32 De Morgan-szabály - D eM organ’s law, 160-161 D S L (digitális előfizetői vonal) - D S L (Digital E I S A (bővített IS A ) - E I S A (Extended IS A ), 120
C O M A (gyorsítótáras memóriaelérés) - C O M A D E C (Digital Equipment Corporation) - D E C Subscriber Line), 135 elágazás - branch, 414—415
(Cache Only M em ory Access), 628, 687-688 (Digital Equipment Corporation), 35, 38, 71 D S L A M (digitális előfizetői vonal hozzáférési elágazási célpuffer (B T B ) - Branch Target
Compact Disc Read O nly Mem ory (C D - R O M ) - Alpha - Alpha, 40 multiplexer) - D S L A M (Digital Subscriber Buffer (B T B ) , 335
Compact Disc Read Only M em ory (CD- P D P - l- P D P - 1 ,3 5 Lin e Access Multiplexer), 137 elágazási előzmények blokkos regisztere -
R O M ), 108 PD P-8 - PDP-8, 35 D S M (elosztott közös memória) - D S M branch history shift register, 323
Control D ata Corporation (C D C ) - Control V A X - V A X , 71, 73 (Distributed Shared Mem ory), 602, 654 elágazásjövendölés - branch prediction, 319-324
Data Corporation (C D C ), 36 decimális szám - decimai number, 743 dupla pontosság - double precision, 368 dinamikus - dynamic, 321-323
CoreConncct - CoreConnect, 582 dekódoló - decodcr, 167 dupla pontosságú - double, 722 statikus - static, 324
C O W (munkaállomások klasztere) - C O W dekódoló egység - decoding unit, 310 dupla szélességű mutató - double pointer, 345 elakadás - stalling, 308
(Cluster of Workstations), 50-51, 606, 644 demultiplexer - demultiplexer, 167 durva szemcsézettségű többszálúság - coarse- elaprózódás - fragmentation
CP/M - CF/M , 39 diadikus műveletek - dyadic instructions, 395 grained multithreading, 573 belső - internál, 455
C P P (konstans mező mutatója) - C P P differenciagép - difference engine, 30 D VD (sokoldalú digitális lemez) - D V D (Digital külső - external, 460
(Constant Poci Pointer), 253. 262, 269, 280 Digital Equipment Corporation (D E C ) - Digital Versatile Disc), 115 elavult adat - stale data, 611
C P U la p k a - C P U chip, 192 Equipment Corporation (D E C ), 35, 38, 71 elektromosan törölhető ( E E P R O M ) -
Cray, Seymour - Cray, Seymour, 36 digitális előfizetői vonal (D S L ) - Digital E , É ______________________________________________ Electrically Eresable P R O M ( E E P R O M ) , 190
Cray-1 - Cray-1, 36, 71 Subscriber L ine (D S L ), 135 E C C (hibajavító kód) - E C C (E rro r Correcting elengedési konzisztencia - release consistency,
C R C (ciklikus redundanciakód) - C R C (C^clic digitális előfizetői vonal hozzáférési multiplexer Code), 88 610
Redundancy Check/Cxide), 235, 239,586 (D S L A M ) - Digital Subscriber Line Access Eckert, J. Presper - Eckert, J. Presper, 32 elérést vezérlő lista (A C L ) - Access Control List
crossbar (keresztrudas) kapcsoló - crossbar Multiplexer (D S L A M ), 137 E C L (emitter csatolású logika) - E C L (Emitter- (A C L ), 508
switch, 617 digitális kamera - digital camera, 141 Coupled Logic), 155 elforgatott molekulájú (T N ) kijelző - Twisted
C R T (katódsugárcső) - C R T (Cathode R ay digitális logika szintje - digital logic level, 20, E D O (kiterjesztett adatkimenetű memória) - Nematic (T N ) display, 123
Tűbe), 121 152-250 E D O (Extended D ata O utput) memory, 189 eljárás - procedure, 415-421
csak olvasható memória (R O M ) - Read Only áram kör - circuit, 163 E D V A C - E D V A C (Electronic Discrete Variable eljárásepilógus - procedure epilog, 419
M em ory (R O M ) , 60, 190 B/K interfész - I/O interface, 240 Automatic Computer E D V A C ), 32 eljáráshívó utasítás - procedure call instruction,
csapda - trap, 422, 733 C P U lapka - C P U chip, 192 E E P R O M (elektromosan törölhető P R O M ) - 400
csapdakezelő - trap handler, 422 kapu - gate, 153 E E P R O M (Electrically Eresable P R O M ) , 190 eljárásprológus - procedure prolog, 419
csatoló szegmens - linkage segment, 555 memória - memory, 176 effektív cím - effective address, 729 elosztott közös memória (D S M ) - Distributed
csíkozás - striping, 105 sín - bús, 194 egér - mouse, 126 Shared M em ory (D S M ), 602, 654
csillag - star, 633 digitális személyi asszisztens (P D A ) - Personal egész aritm etikájú java virtuális gép ( U V M ) - előjeles abszolút érték - signed magnitude, 703
csomag - packet, 584, 631 Digital Assisntant (P D A ), 41 Integer Ja va Virtual M achine ( U V M ) , 251­ előjel-kiterjesztés - sign extension, 258
csomagfeldolgozó egység - packet processing digitális videolemez - Digital Videó Disc, 115 260,266-275 előolvasás - prefetching, 666
engine, 588 dimenziószám - dimensonality, 633 egy érintkezősoros memóriamodul ( S IM M ) - előolvasási puffer - prefetch buffer, 76
csomagkapcsolás - packet switching, 585 D IM M (két érintkezősoros memóriamodul) - Single Inline M em ory M odulé ( S IM M ) , 95 előre hivatkozási probléma - forward referencc
csoportasszociatív gyorsítótár - set-associative D IM M (D ual Inline M em ory Modulé), 95 egyes komplemens - one’s complement, 703 problem, 539
cache, 317 dinamikus áthelyezés - dynamic relocation, egyesített gyorsítótár - unified cache, 94 előrebetöltő gyorsítótár - prefetch cache, 339
cső/csővezeték - pipe, 511 552-555 egyetlen nagy, drága lemez ( S L E D ) - Single először be először ki ( F IF O ) algoritmus - First
csökkentett utasításkészletű számítógép (R IS C ) - dinamikus R A M (D R A M ) - Dynamic R A M Large Expensive Disk ( S L E D ) , 104 In First Out ( F I F O ) algorithm, 454
Reduced Instruction Set Computer (R IS C ), 73 (D R A M ), 189 egyeztetett lap - committed page, 497 első generációs számítógépek - first-generatioii
R IS C és C IS C - R IS C versus C IS C , 72 dinamikus szerkesztés - Dynamic Linking, egyidejű többszálúság - simultaneous computers, 31
csővezeték alkalmazása - pipelining, 76 555 multithreading, 574 első illesztés algoritmus - first fit algorithm, 460
csővezeték bedugulás - pipeline stall, 320 dinamikus szerkesztő könyvtár (D L L ) - egylapkás multiprocesszorok - Single-chip első menet - first pass, 742
csővezeték fázis - pipeline stage, 77 Dynamic Link Library ( D L L ) , 557 multiprocessor, 578-583, 610-619 eltolási rés - delay slot, 320
csővonal, csővezeték - pipeline, 305 dinamikus véletlen elérésű memória - Dynamic egylapkás rendszer - system on a chip, élvezérelt flip-tlop - edge triggered flip-flop, 179
hétszakaszú - seven-stage, 309 Random Access M em ory (D R A M ), 31 578-583 emelés, kód - hoisting, code, 330
800 TÁRGYM UTATÓ
tárgym utató 801

e m itte r - em ittcr, 153 fázismoduláció - phase modulation, 133 fork - fork, 660 egyesített - unified, 94
emitter csatolású logika (E C L ) - fej nélküli munkaállomás - headless formáiig param éter - formai paraméter, 536 érvénytelenítő stratégia - invalidate strategy,
Emitter-Coupled Logic ( E C L ) , 155 workstation, 645 forrásindex - source index, 724 613
emuláció - emulation. 37 fejállomás - headend, 137 forrásnyelv - source language, 524 frissítő stratégia - update strategy, 613
cn d ia n - endian, 86-88 fejléc - headcr, 233 forrásoperandus - source operand, 726 halmazkezelésn - set-associative, 317
kis - littic, 86, 727 fejléc (szektorban) - preabmle, 98 Forrester, Ja y - Forrester, Jay, 34 írásallokálás - write-allocate, 319, 613
nagy - big, 86 fejlett mikrokontroller sínarchitektúra (A M B A ) F O R T R A N - F O R T R A N , 25 írásáteresztés - write-through, 318
E N IA C - Electronic Numcrical Integrátor And - Advanced Microcontrollcr Bús Architccture késleltetett írás - write-deferred, 319
F O R T R A N felügyelő rendszer ( F M S ) -
Computer ( E N IA C ), 32, 41 ( A M B A ) , 583 F O R T R A N M onitor System (F M S ), 26 M E S I - M E S I, 614
E N I G M A - E N I G M A . 32 fejlett programozható megszakításvezérlő osztott, szétválasztott - split, 94, 313
fő csővezeték, szállítószalag - U pipeline, 78
E P I C (explicit utasításszintű párhuzamosság) - (A P IC ) - Advanced Programmable Interrupt F P M (gyors lapkezelésű) memória - F P M (Fást szétválasztott, osztott - split, 94, 313
E P I C (Explicitly Parallel Instruction C o n tro lle r(A P IC ),2 1 2 szimatoló - snooping, 612
Page M o d e) memory, 189
Computing). 433-439 feladatzsák - task bag, 658 frekvenciaeltolásos kódolás - frequency shift többszintű - multiple levels, 313
E P R O M (törölhető P R O M ) - E P R O M fél-duplex vonal - half-duplex linc, 135 visszaírás - write-back, 319
keying, 133
(Erasable P R O M ), 190 felhasználói mód - user mode, 355 gyorsítótáras memóriaelérés (C O M A ) - Cache
frekvenciamoduláció - frequency modulation,
eredményjelző - scorelioard, 325 félösszeadó - half adder, 171-172 O nly Mem ory Access (C O M A ), 605, 628,
133
erőforrás-felosztás - partitioncd rcsource feltételes végrehajtás - conditional execution, 687-688
frissítő stratégia - update strategy, 613
sharing, 576 436 gyorsítótárhiány - cache miss, 316
F S M (lásd véges állapotú gép) - F S M (sce
erőforrásréteg - resource layer, 668 feltételezett végrehajtás - speculative execution, gyorsítótár-koherencia - cache coherency, 611
Finite State Machine)
erősen párhuzamos processzorok ( M P P ) - 330 gyorsítótár-koherencia protokoll - cache
full-duplex vonal - full duplex line, 135
Massivcly Parallel Processors (M P P ), 606, 635 feltételkód - condition code, 359 coherence protocol, 612
funkcionális egység - functional unit. 79
értelmezés - interpretation, 18 feltételkód-regiszter - condition code register, M E S I - M E S I , 614
értelmező - interpreter, 18, 70, 718 724 gyorsítótár-koherens N U M A (C C - N U M A ) -
G , G Y _______________________________________
érvényesítés/engedélyezés - enablc, 178 feltételváltozó - condition variable, 513 Cache Coherent N U M A (C C - N U M A ),
gam ut-gam ut, 131
érvénytelenítő stratégia - invalidate strategy, 613 fém-oxid félvezető (M O S ) - M etál Oxide 619-628
gazdakönyvtár - hőst library, 559
esemény - event, 516 Semiconductor (M O S ), 155 gyorsítótár-konzisztencia - cache consistency,
G D I (grafikus eszköz interfész), Windows X P -
Estridge, P h ilip - Estridge, Philip, 39 fénykibocsátó dióda ( L E D ) - Light Em itting
G D I (Graphics Device Interface), Windows 611
eszközmeghajtó - device driver, 492 Diode ( L E D ) , 127 gyorsítótár nélküli N U M A (N C -N U M A ) - No
XR493
eszközregisztersín - device register bús, 583 festékalapú tinta - dye based ink, 132 Cashing N U M A (N C - N U M A ), 620
G D T (globális leírótábla) - G D T (Global
eszközszint - device level, 20, 153 festékbuborékos nyomtató - bubblejet, 129 gyorsítótár-találat - cache hit, 316
Descriptor Table), 462
Ethernet - Ethernet, 584 festékszublimációs nyomtató - dye sublimation
gépi nyelv - machine language, 17, 717 gyorsított grafikus port (A G P ) - Accelerated
Explicit párhuzamos utasítású számítás ( E P IC ) printer, 132 Graphics Port (A G P ), 125, 226
globális címke - global label, 743
- Explicitly Parallel Instruction Computing F I F O (először be először ki algoritmus) - F IF O gyökérkönyvtár - root directory, 502
globális leírótábla (G D T ) - G lobal Descriptor
( E P IC ) , 433-439 (First In First Out algorithm). 454 gyűrű - ring, 634
Table (G D T ), 462
explicit szerkesztés - explicit linking, 558 finom szemcsézettségíí többszálúság - fine-
G lo b e - G lo b e ,6 6 I
explicit utasításszintű párhuzamosság ( E P I C ) - grained multithreading, 572
Goldstine, H erm án - Goldstine, Hermán, 33 H _______________________________________________
Explicitly Parallel Instruction Computing fizikai címtartomány physical address spaee, H regiszter - H register, 253, 262
google-klaszter - google cluster, 645-649
(E P IC ) , 433-439 447 hagyományos - Icgacy, 209
grafikus eszköz interfész (G D I), Windows X P -
exponens - exponent, 709 fizikai réteg - physical layer, 234 Graphics Device Interface ( G D I) , Windows hajlékonylemez - diskette, 100
extra szegmens - extra segment, 734 flag-regiszter - flag register, 724
X P 493 hajlékonylemez, floppy - floppy disk, 100
flash memória - flash memory, 191 halftone képernyő-frekvencia - halftone screen
grafikus felhasználói felület ( G U I) - Graphical
flip-flop/billenőkör - flip-flop, 179 frequency, 131
User Interface ( G U I) , 39, 489
fa - tree, 633 Flynn-féle osztályozás - Flynn’s taxonomy, 604
Green Book (Zöld Könyv) - Green Book, 111 halftoning - halftoning, 130
fájl - file, 470-472 foglalt lap - reserved page, 497
grid szerkezeti szint - fabric layer, 668 halmazkezelésű gyorsítótár - set-associative
fájlallokációs tábla (FA T ) - File Allocation fogyasztó - consumcr, 478 grid, háló - grid, 667, 668 cache, 317
Table (FA T ), 505 fokszám - degree, 631 G U I (grafikus felhasználói felület) - G U I háló - niesh, 634
fájlgyorsító-kezelő, Windows X P - file cache folyadékkristályos kijelző (L C D ) - Liquid hálózati interfész eszköz (N ID ) - NetWork
(Graphical User Interface), 489
manager, Windows X R 493 Crystal Display ( L C D ), 123 Interface Device (N ID ), 136
gyenge konzisztencia - weak consistency, 609
fájlindex - file index, 473 folyamatvezérlés - flow control, 235
gyerek processzus - child process, 510 hálózati processzor - network processor,
fájlleíró - file descriptor, 500, 501, 739 fo n ál- fib er, 513, 514 587-592
gyereketetési algoritmus - baby feeding
fájlrendszer - file system fordítás - translation, 18 algorithm, 452 Hamming, R ichard - Hamming, Richard, 44
U N I X - U N I X . 488, 499-505 fordító - translator, 524 Hamming-kód - Hamming code, 89
gyors lapkezelésű (F P M ) memória - Fást Page
Windows X P - Windows XP, 473, 492, 505-510 fordítóprogram - compilcr, 23, 525 Mode ( F P M ) memory, 189 Hamming-távolság - Hamm ing distance, 88
falat - nibble, 406 fordítótábla - translation table, 468 gyorsítósor - cache line, 94, 315, 612 hangolás, program - tuning, program, 527
FA T (fájlallokációs tábla) - FA T (File fordított lengyel jelölés - reverse Polish Hanoi tornyai - towers of Hanoi, 415-421,
gyorsítótár - cache memory, 54, 92, 313, 6 11
Allocation Table), 505 notation, 385 2. szintű - level 2, 314 427-431
fázis, csővezeték - stage, pipeline, 77 forgási késleltetés - rotational latency, 99 direkt leképezésű - direct-mapped, 315 Pentium - Pentium, 427-429
802 tárgym utató tárgym utató 803

U ltra S P A R C - U ltra S P A R C , 429-431 I B M 1401- I B M 1401,35 indexelt címzés - indexed addressing, 383 irány-flag - direction flag, 730
hardver - hardware, 23 I B M 360 - I B M 360. 37, 41, 583 inilexelt színelőállítás - indexed color, 125, 595 írás utáni írás (W A W ) függőség - W rite A fter
ekvivalenciája a szoftverrel - equivalence with I B M 701 - I B M 701, 34 indexregiszter - index register, 723 W rite ( W A W ) dependence, 327
software, 24 I B M 704 - I B M 704, 34 indirekt blokk - indirect block, 504 írásáteresztő - write through, 612
hardverabsztrakciós réteg - hardware I B M 7094 - I B M 7094, 35, 41 infix jelölés - infix notation, 385 írásáteresztő gyorsítótár - write-through cache,
abstraction layer, 491 I B M 801 - I B M 801, 73 információcsere amerikai szabványos 318
hardver D S M - hardware D S M , 620 IB M Corporation - I B M Corporation, 34, 35, kódrendszere, az (A S C II) - American íráskori feltöltés módszere - write-allocate
harm adik generációs számítógépek - third- 37, 223 Standard Code fór Information Interchange cache, 319, 613
generation computers, 36 I B M P C - I B M PC , 39, 43 (A S C II) , 143 íráskori másolás - copy on write, 496
háromsínes architektúra - three-bus eredet-origin, 39 informatív - informative, 355 írható C D (CD -R) - CD-recordable (C D - R ), 112
architecture, 295 sín - bús, 223 informatív információ, szabványban - IS A (ipari szabványos felépítés) - IS A (Industry
háromállapotú eszköz - tri-state device, 185 IB M PS/2 - I B M PS/2, 223 informatiíve Information, in standard, 355 Standard Architecture), 119, 223
háromszorosan indirekt blokk - triple indirect IC (integrált áramkör) IC (Integrated Integer U n it (lU ) - Integer U n it ( l U ) , 58 IS A (utasításrendszer-architektúra) IS A
block, 504 Circuit), 36, 163 integrált áram kör (IC ) - Integrated Circuit (Instruction Set Architecture), 22,352-443, 717
Harvard-architektúra - Harvard architecture, i-csomópont (node) - i-node, 503 (IC ), 36, 163 I S A sín - IS A bús, 222
94 I D E (beépített eszközelektronika) - I D E Intel 4004 - Intel 4004, 52 ISA-szint - IS A level, 22, 352-443
hasznos adat - payload, 233 (Integrated Drive Electronics), 101 Intel 8008 - Intel 8008,52 adattípusok - data types, 368-371
háttérmemória - secondary memory, 96 időbeli lokalitás - temporal locality, 314 Intel 80286- In te l 80286, 53 címzés - addressing, 380-394
H D T V (nagy felbontású televízió) - H D T V időosztásos rendszer - time sharing system, 27 Intel 80386 - Intel 80386, 54 U - 6 4 - IA-64,431-439
(High Definition TeleVision), 597 időzített D-tároló - ciocked D latch, 179 Intel 80486 - Intel 80486, 54 utasítástípusok - instructions types, 394-414
héj (parancsértelmező, shell) - shell, 489 időzített SR-tároló - ciocked S R latch, 178 Intel 8051 - Intel 8051, 219-221, 365 utasításformátumok - instruction formats,
helyfüggetlen kód - position independent code, I E E E lebegőpontos szabvány - I E E E floating- adattípusok - data types, 371 371-380
555 point standard, 711 címzés - addressing, 392-393 vezérlési folyamat - flow of control, 414-426
helyi hálózat (L A N ) - Local A re a Network I F U (utasításbetöltő egység) - IF U (Instruction ISA-szint áttekintése - overview ot the IS A , ismétléses vezérlés - loop control, 400-401
(L A N ), 584 Fetch Un it), 296-300 365-368 I S P (internetszolgáltató) - IS P (Internet Service
helyszámláló - location counter, 742 igazságtábla - truth table, 156 mikroarchitektúra - microarchitecture, 343-345 Provider), 585
helyszínen programozható kapumátrix (F P G A ) I J V M (egész aritm etikájú java virtuális gép) - történeti áttekintés - history, 59 I S R (megszakításkezelő) - I S R (Interrupt
- Field Programmable Gate A rray (F P G A ), I J V M (Integer Ja va Virtual Machine), utasításformátumok - instruction formats, 379 Service Routine), 423
587 251-260, 266-275 utasítások - instructions, 411 Itanium 2 - Itanium 2, 431-439
hexadecimális szám - hexadecimal number, 698, adatút - data path, 252 Intel 8080 - Intel 8080,53 l U (Integer U n it) - l U (Integer U n it), 58
743 időzítés - timing, 255 Intel 8086 - Intel 8086, 53
hibaarány - miss ratio, 93 java kód - java code, 273 Intel 8088 - Intel 8088, 39, 40,53, 359, 720
hibajavító kód (E C C ) - E rro r Correcting Code konstans mező - constant pool, 268 assembler - assembler, 741 játékgép - game computer, 48
(E C C ), 88 lokális változók mezője - local variable frame, címzés - addressing, 726-730 Ja v a - Java, 23
High S ie rra - High Sierra, 111 268 nyomkövető - tracer, 747 ja va virtuális gép ( JV M ) - Ja va Virtual Machinc
hiperkocka - hypercube, 634 memóriamodell - memory model, 268 szimulátor - simulator, 747 ( J V M ) , 251
híváskapu - call gate, 466 memóriaművelet - memory operation, 257 utasításkészlet - instruction set, 730 jelenlét/hiány bit - present/absent bit, 450
Hoagland, A1 - Hoagland, A l, 43 metódus mező - method area, 269 Intel 8255A - Intel 8255A, 240 jelzők regisztere - flags register, 358
H o ff,T e d - H o ff,T e d , 52 M ic - I megvalósítás - M ic-1 implementation, Intel Celeron - Intel Celeron, 55 Jobbra igazított adat - right justified data, 395
hosszú - leng, 722 280 Intel Corporation - Intel Corporation, 52 Jobs, Steve - Jobs, Steve, 39
hosszú szó - leng word, 727 Mic-2 megvalósítás - Mic-2 implementation, Intel Pentium (lásd még Pentium 4) - Intel JO H N IA C - JO H N IA C . 32
hozzáférést vezérlőjel - access tokén, 508 291 Pentium (see alsó Pentium 4), 52, 54 Joy, B ili - Joy, Bili, 57
hozzárendelési idő - binding time, 553 Mic-3 megvalósítás - Mic-3 implementation, Intel Xeon - Intel Xeon, 55 J P E G - Jo int Photographic Expcrts Group
http - http (HyperText Transfer Protocol), 303 internetprotokoll ( IP ) - Internet Protocol (IP ), ( J P E G ) , J P E G (Jo in t Photographic Expcrts
HyperText Transfer Protocol (http), 585 Mic-4 megvalósítás - Mic-4 implementation, 586 G roup), 142
huzalozott V A G Y - wired-OR, 196 309 internetszolgáltató ( IS P ) - Internet Service JT A G - Jo int Test A ction Group (JT A G ), JT A G
hyperthreading - hyperthreading, 576 operandusverem - operand stack, 268 Provider (IS P ), 585 (Jo in t Test Action G roup), 596
utasításkészlet - instruction set, 270 invertáló puffer - inverting buffer, 185 J V M (java virtuális gép) - J V M (Ja va Virtual
y ____________________________ verem - stack, 266 inverter, nem kapu - inverter, 154 M achine), 251
IA-32 - lA-32, 359 iker - twin, 656 inverziós gömb - inversion bubble, 154 J V M (lásd még U V M ) - J V M (sec alsó I J V M )
U - 6 4 - IA-64, 431-439 IL C (utasítás-helyszámláló) - I L C (Instuction I P (internetprotokoll) - IP (Internet Protocol),
E P I C modell - E P I C model, 433 Location Counter), 540 586 K ________________________________________________
köteg - bundlc, 435 I L L IA C - I L L IA C , 32 I P (utasításmutató) - I P (Instruction Pointer), 720 kábeles internet - cable Internet, Internet ovcr
prédikáció - prcdication, 436-438 I L L IA C r v - I L L I A C I V 80, 604 ipari szabványos felépítés (IS A ) - Industry cable, 137
utasításütemezés - instruction scheduling, implicit címzés - implied addressing, 729 Standard Architecture (IS A ), 119, 223 kamera, digitális - camera, digital, 141
434-436 implicit szerkesztés - implicit linking, 558 I P C (processzusok közti kommunikáció) - IP C kapcsolat nélküli - off-line, 475
lA S gép - lA S machinc, 33 import könyvtár - import library, 558 (In te r Process Communication), 489 kapcsolati réteg - link laycr, 235
804 T ÁRGYM UTATÓ
tárgym utató 805

kapcsolóalgebra - switching algebra, 155 kiszolgáló farm - server farm, 51


közvetlen operandus - immediate operand, 380 lefoglaló/átnevező egység - allocation/renaming
kapcsolnhálózat - switching network. 617-619 kiszolgáló - server, 50
kriptoprocesszor - Cryptoprocessor, 597 unit, 336
kapu - gate, 20, 153 kiterjesztett adatkimenető memória (E D O ) -
kritikus szakasz - critical section, 516 legjobb illesztés algoritmus - best fit algorithm,
kapukésleltetés - gate dclay, 164 Extended Data Output ( E D O ) memory, 189
kulcs - key, 473 460
kapuzójel - strobc, 178 kiterjesztett I D E ( E I D E ) Extended I D E
külső elaprózódás - external fragm entalion, 460 legrégebben használt ( L R U ) algoritmus - Least
karakterkód - charactcr code, 143 ( E I D E ) , 101
külső hivatkozás - external referen ce, 551 Recently Used ( L R U ) algorithm, 318, 453
katalógusalapú multiprocesszor - directory kiterjesztő kód - escape codc, 377
külső szimbólum - external Symbol, 551 Leibniz, Gottfried von - Leibniz, Gottfried von
based multiprocessor, 621 klaszter - cluster, 50, 606
küszöbölt (erőforrás-) megosztás - threshold 30
katódsugárcső - Cathode R a y Tűbe (C R T ), 121 google - google, 645-649
sharing, 577 lemez - disc, 96
képpont, pixel - pixel, 125 munkaállomás - workstation, 50-51, 589, 644
C D - R O M - C D - R O M , 108
kerekítés - rounding, 710 N T F S - N T F S , 508
L , L Y ____________________________________________ D V D - D V D , 115
keresés - seek, 98 klaszterszámítógép - cluster computer, 644
L1 B T B - L1 B T B , 335 hajlékony - floppy, 100
kérésre lapozás - demand paging, 452 klón - clone, 39
lábkiosztás - pinout, 191 I D E - I D E , 101
keret-fram e, 110 kocka - cube, 634
L A N (helyi hálózat) - L A N (Lo cal A rea mágnes - magnctic, 97-108
keretmutató - frame pointer, 362 kódgenerálás - code generálion, 742
NetWork), 584 optikai - optical, 108-117
kernel (rendszermag) - kernel, 491 kódlap - code page, 145
láncolás - daisy chaining, 203 R A I D - R A I D , 104-108
kernelmód - kernel mode, 355 kódpozíció - code point, 146
lap - page, 447 S C S I - S C S I, 103-104
késleltetés - latency, 77 kódszegmens - code segment, 720
egyeztetett - committed, 497 vezérlő - controller, 100
forgási - rotational, 99 kódszó - codeword, 88
foglalt - reserved, 497 Winchester - Winchester, 98
késleltetési idő elrejtés - latency hiding, 666 kollektív szolgáltató réteg - collective layer, 669
lapcserélő algoritmus - page replacement lengyel jelölés - Polish notion, 385-388
késleltetett írás - write-deferred cache, 298 kollektor - collector, 153
algorithm, 453, 454 léptető - shifter, 171
késleltetett írású protokoll - write-back kombinációs áram kör - combinational circuit,
F I F O - F IF O , 454 levélbedobó nyílás - mailslot, 515
protocol, 319, 614 165-170
L R U - L R U , 453 lézernyomtató - laser printer, 129
készen kapható termék - Commodity O ff The dekódoló - decoder, 167
lapcserélő eljárás - page replacement policy, 453 Lind a - Linda, 656
S h e lt(C O T S ),5 1 multiplexer - multiplexer, 165-167
lapfelügyelő - page scanner, 620 lineáris cím - linear address, 463
két érintkezősoros memóriamodul (D IM M ) - összehasonlító - comparator, 168
laphiány - page fault, 452 link (kötés, kapocs) - link, 502
D ual Inline M em ory Modulé (D IM M ), 95 kommunikátor - communicator, 651
lapka - ehip, 163 literál - literal, 542
kétbites moduláció - dibit modulation, 134 konstans mező - constant pool, 268
C P U - C P U , 192 logikai blokk címzés (L B A ) - Logical Block
kétlábsoros tokozás (D IP ) - D ual Inline konstans mező mutatója (C P P ) - Constant Pool
lapkaszintű többszálúság - on-chip Addressing ( L B A ) , 102
Package (D IP ), 163 Pointer (C P P ), 253, 262, 269, 280
multithreading, 572-578 logikai rekord - logical record, 471
kétmenetcs fordító - two-pass translator, 539 konverzió számrendszerek között - conversion
lapkaszintű párhuzamosság - on-chip lokális ciklus/hurok - local loop, 135
kétszeres sebességű memória (D D R ) - Double between radices, 700
parallelism, 564-583 lokális címke - local label, 743
Data R ate memory (D D R ), 190 korutin/társrutin - coroutine, 414, 421, 422
lapkeret - page frame, 448 lokális leírótábla (L D T ) - Local Descriptor
kétszeresen indirekt blokk - double indirect kölcsönös kizárás - mutual exclusion, 513
lapkezelő segédpuffer (T L B ) - Translation Table (L D T ), 462
block, 504 könyvtár - directory, 475-476
Lookaside Buffer ( T L B ) , 340, 467 lokális változó (L V ) mutató - Local Variable
kettes komplemens aritm etika - two’s körkörös puffer - buffer, circular, 478
lapkezelő tárolópuffer (T S B ) - Translation ( L V ) pointer, 253, 262, 266, 280
complement arithmetic, 703 környezet - context, 467
Storagc Buffer (T S B ), 468 lokális változók mezője - local variable frame,
kettévágott sávszélesség - bisection bandwidth, környezeti alrendszer, Windows X P -
lapkönyvtár - page directory, 464 266, 268
633 environmental subsystem, Windows X P 493
lapos megjelenítő - fiat panel display, 122 lokalitási elv - locality principle, 93, 452
kettős tórusz - double torus, 634 köteg - boundle, 435
lapozás - paging, 447 Lovelace, Ada Augusta - Lovelace, A da
kezdeményező, P C I sín - initiator, P C I bús, 227 kötegelt rendszer - batch system, 27
kérésre - demand, 452 Augusta, 30
kezelő - handle, 494 kötet tartalomjegyzék (V T O C ) - Volume Table
megvalósítása - implementation, 448 Ipi (vonal per inch) - Ipi (Lines Per Inch), 131
Khosla, Vinod - Khosla, Vinod, 57 OfC o n ten ts (V T O C ), 113
transzparens - transparent, 448 L R U (legrégebben használt) algoritmus - L R U
kibővített kiszolgálóvezérlő interfész (E H C I) - kövér fa - fát tree, 634
laptábla - page map, 447 (Least Recently Used) algorithm, 453
Enhanced Hőst Controller Interface ( E H C I) , közeli hívás - near call, 737
láthatatlan számítógép - invisible computer, 41 L V (lokális változó) mutató - L V (Local
240 közeli ugrás - near jump, 735
Latin-1 - Latin-1, 145 Variable) pointer, 253, 262, 266, 280
kiegészítő átvitel-flag - auxiliary carry flag, 734 közös memóriás (lásd multiprocesszor) - shared
lazán kapcsolt - loosely coupled, 564 lyukacsosodás - checkerboarding. 460
K ild a ll, G ary - Kildall, Gary, 39 memory (see multiprocessor)
L B A (logikai blokk címzés) - L B A (Logical
kimenő csomagokon végzett feldolgozás - eg re ss közös memóriás multiprocesszor - shared
Block Addressing), 102 M ________________________________________________
P ro c e ssin g , 589 memory multiprocessor, 598-629
L C D (folyadékkristályos kijelző) L C D (Liquid Macintosh, Apple - Macintosh, Apple, 39
kis endián - little endian, 86, 727 központi csomópont, U S B - root hub, U S B , 237 Crystal Display), 123 mag - core, 579
kis számítógéprendszerek interfésze (S C S I) - központi feldolgozóegység (C P U ) - Central L D T (lokális leírótábla) - L D T (Lo cal magas szintű nyelv - high level language, 23
Small Computer System Interface (S C S I), Processing U n it ( C P U ) , 34, 66 Descriptor Table), 462 összehasonlítása az assembly nyelvvel -
103-104 közvetlen címzés - immediate addressing, 380 lebegőpontos szám - floating-point numbcr, compared to assembly language, 526
kisméretű kétsoros érintkezés memóriamodul közvetlen fájl - immediate file, 509 708-716 mágneslemez - magnetic disk, 97-108
(S O - D IM M ) - Small Outline D IM M közvetlen memóriaelérés (D M A ) - Direct L E D (fénykibocsátó dióda) - L E D (Light makró - macro, 534
(S O - D IM M ), 95 M em ory Access (D M A ) , 119, 404 Em itting D iode), 127 definíció - definition, 534
806 TÁRGYM UTATÓ T ÁRGYM UTATÓ 807

formális param éter - formai paraméter, 536 memóriacím - address, 84 M ic-2 - Mic-2, 300 MMU (memóriakezelő egység) - M M U
hívás - call, 535 m o d e ll - model, 356-358 adatút - data path, 301 (M em ory Management U n it), 449
kifejtés - expansion, 535 P R O M - P R O M , 190 megvalósítás - implementation, 300 m n e m o n ik - mnemonic, 718, 741
megvalósítás - implementation, 537 R O M - R O M , 190 M ic-3 - Mic-3, 305 m odem -m odem , 120, 133
param éter - parameter, 536 S D R A M - S D R A M , 189 ad atú t - data path, 304 moduláció - modulation, 133
m akroarchitektúra - macroarchitecture, 266 S R A M - S R A M , 189 csővezeték - pipeline, 303-309 am plitúdó - amplitude, 133
MAL (mikro assembly nyelv) - M A L (M icro statikus R A M - static R A M , 189 megvalósítás - implementation, 303-309 fázis - phase, 133
Assembly Language), 276 szervezés - organization, 183 M i c ^ - Mic-4, 309 frekvencia - frequency, 133
MANIAC - M A N IA C , 32 szervezés, Intel 8088 - organization, Intel Adatút - D ata Path, 309 monadikus műveletek - monadic instructions,
mantissza - mantissa, 709 8088, 725 megvalósítás - implementation, 309 396
MAR (memóriacfm-regiszter) - M A R (M em ory térkép - map, 447 mickey - mickey, 127 Moore, Gordon - Moore, Gordon, 42
Address Register), 257 tokozás - packaging, 95 M icrosoft Corporation - Microsoft Corporation, Moore-szabály - M o o re’s law, 42
M a rk i - M ark I, 31 v é le tle n e lé r é s ű (R A M ) - Random Access 40, 490, 473 MOS (fém-oxid félvezető) - M O S (M etál Oxide
MASM - M A S M , 528 ( R A M ), 60,188 mikro assembly nyelv (M A L ) - M icro Assembly Semiconductor), 155
m ásodik csővezeték, szállítószalag - V pipeline, virtuális - V irtual, 445-469, 493, 495-498 Language ( M A L ) , 276 M otif - Motif, 489
78 vonzásmemória - attraction, 628 m ikroarchitektúra - microarchitecture, 251 M otorola 68000 - M otorola 68000, 72
m ásodik generációs számítógépek - second- memóriapuffer-regiszter ( M B R ) - Mem ory 8051-8051,343 MPC (m ikroutasítás-szám láló) - M P C
generation computers, 34 Buffer Register ( M B R ) , 253, 259, 262 Pentium 4 - Pentium 4, 332 (M icroProgram Counter), 261
m ásodik menet - second pass, 742 memóriaadat-regiszter (M D R ) - M em ory Data U ltra S P A R C - U ltra S P A R C , 338 M PEG - M otion Picture Expert Group
maszk - mask, 395 Register ( M D R ) , 253, 257, 259, 262 m ikroarchitektúra szintje - microarchitecture ( M P E G ) , 581
mátrixnyomtató - mátrix printer, 127 memóriacím-regiszter (M A R ) - Mem ory level, 21, 251 M PI (üzenetátadás interfész) M P I (Message-
Mauchley, Jo h n - Mauchley, John, 32 Address Register ( M A R ) , 257 elágazásjövendölés - branch prediction, Passing Interface), 651
M B R (memóriapuffer-regiszter) - M B R memóríakezelő egység (M M U ) - M em ory 319-324 M PP (erősen párhuzam os processzor) - M P P
(M em ory B uffer Register), 253, 259, 262 Management U n it (M M U ) , 449 gyorsítótár - cache memory, 313-319 (Massively Parallel Processor), 635, 606
McNealy, Scott - M cNealy, Scott, 57 memóriamásolat - core dump, 25 IJV M -p éld a - I J V M example, 251-292 MS-DOS - M S-D O S, 40
M C S - S l család - MCS-51 family, 59 memóriára leképezett B /K - memory mapped példa - example, 332-347 MULTICS - M U L T IC S (M U LTip lexed
M D R (memóríaadat-regiszter) - M D R I/O, 242 tervezés - design, 291-312 Information and Computing Service
(M em ory D ata Register), 253, 257, 259, 262 memóriaszemantika - consistency model (see mikrolépés - microstep, 306 (M U L T IC S ), 461, 466, 556
médiaprocesszor - média proeessor, 592-597 M em ory semantics), memory seniantics, 357, mikromeghajtó - microdrivc, 143 multimédiás kiegészítések (MMX) -
meghatározó rész - significand, 713 606-610 mikroművelet - micro-operation, 310 M ultiM ed ia eXtension ( M M X ) , 54
megosztott könyvtár - shared library, 559 elengedési konzisztencia - release mikroprogram - microprogram, 21, 24, 721 multiplexeit sín - multiplexed bús, 197, 214
megszakítás - interrupt, 119, 423^26 consistency, 610 mikroprogramozás - microprogramming, 24 multiplexer - multiplexer, 165
átlátszó - transperent, 424 gyenge konzisztencia - weak consistency, 609 történeti áttekintés - history, 24, 27 multiprocesszor - multiprocessor, 82, 340, 578,
pontatlan - impreeise, 327 processzorkonzisztencia - processor mikroutasítás - microinstruction, 72, 258 583,598-629
pontos - precise, 327 consistency, 608 jelölés - notation, 275 crossbar-alapú - crossbar-based, 616-619
megszakításkezelő - interrupt handler, 119 soros konzisztencia - sequential consistency, mikroutasítás-regiszter ( M IR ) - egylapkás - on chip, 578-583
megszakításkezelő (I S R ) - Interrupt Service 607 Microinstruction Register ( M I R ) , 261 kapcsolóhálózat - switching network, 617-619
Routine ( IS R ) , 423, 426 szigorú konzisztencia - strick consistency, 607 mikroutasítás-számláló (M P C ) - MicroProgram sínalapú - bus-based, 610-616
megszakításvektor - interrupt vector, 207 menet, assembler - pass, assembler, 539 Counter (M P C ), 261 m ultiprogram ozás - multiprogramming, 37
8088-8088 709 merevlemez - Winchester disk, 98 mikroutasítás-vezérlés - microinstruction m ultiszámítógép - multicomputer, 83, 600, 681
memória - memory, 83,176 mérföldkövek a számítógépek fejlődésében - control, 261 BlueGene/L - BlueG ene/L, 618, 627, 635-640
8088 - 8088, 725-730 milestones in computer architecture, 28-41 mikrovezérlő - microcontroller, 46 google-klaszter - google cluster, 645-649
asszociatív - associative, 461 mérgezésbit - poison bit, 332 M IM D (többszörös utasításáram többszörös M PP - M PP, 606, 635
D D R - D D R , 190 merőleges rögzítés - perpendicular recording, 98 adatáram ) - M I M D (M ultiple Instruction Red Storm - Red Storm, 622-643
dinam ikus RAM - dynamic R A M , 189 mértékegységek - metric units, 61 stream M ultiple D ata stream), 604-605 szoftver - software, 650
DRAM - D R A M , 189 M E S I gyorsítótár-koherencia protokoll - M E S I mindenütt jelenlévő számítástechnika - pervasive teljesítménye - performance, 660-667
EDO - E D O , 189 cache coherence protocol, 614 computing, ubiquitous computing, 41 ütemezése - scheduling, 652-653
EEPROM - E E P R O M , 190 mester, sín - master, bús, 195 minta - template, 657 m unkaállom ások hálózata (NOW) - Network of
E PR O M - E P R O M , 190 mesterfájltábla ( M F T ) - M aster File Table M I P S (betűszó, millió utasítás Workstations (N O W ), 606
flash -flash , 191 (M F T ), 509 másodpercenként) - M I P S (aeronym, munkaállom ások klasztere (COW) - Cluster O f
F P M - F P M , 189 metódus - method, 400 Millions of Instructions Per Second), 75 Workstations (C O W ), 50-51, 606, 644
frissítés - refresh, 189 metódus mező - method area, 269 M I P S (lapka) - M IP S (chip), 73 m unkahalm az - working set, 452
gyorsítótár - cache, 92, 313, 611-614 M F T (mesterfájltábla) - M F T (M aster File M I R (mikroutasítás-regiszter) - M I R munkakönyvtár - working directory, 502
háttérm em ória - secondary, 96 ■able), 509 (M icroinstruction Register), 261 m utató - pointer, 381
hierarchia - hierarchy, 96 M ic-l-M ic-1 ,2 6 1 ,2 8 0 M IS D (többszörös utasításáram egyszeres m utatóregiszter - pointer register, 723
központi - primary, 83 adatút - data path, 262 adatáram ) - M IS D (M ultiple Instruction mutex - mutex, 513, 515
lapka - chip, 186 megvalósítás - implementation, 280 stream Single Data stream), 604-605 művelet - operation, 567, 659
808 TÁRGYM UTATÓ
TÁRGYM UTATÓ 809

műveleti kód - operation eode, 252 nulladik generációs számítógépek - zeroth- CP/M - CP/M , 39 párhuzamos számítógépek teljesítménye -
műveletikód-kiterjesztés - expanding opcode, generation computers, 30 M S - D O S - M S - D O S , 40 performance of parallel computers
374-376 N U M A (nem egységes memóriaelérés) - N U M A OS/2 - OS/2, 40 AmdahI törvénye - Am dahl’s law, 664
művkód - opcode, 252 (N onU niform M em ory Access), 605, 619-628 történeti áttekintés - history, 25 elérése - achieving, 665-667
Myhrvold, Náthán - Myhrvold, Náthán, 43 n-utas halmazkezelésö gyorsítótár - n-way set- U N IX - U N IX , 486-489, 495-496, 499-505, hardvermértékek - hardware mctrics,
associative cache, 317 510-513 661-663
N ,N Y ____________________________________________ nyelv - language, 17 Windows - Windows, 40 növelés - improving, 312-332, 661-667
nagy endian gép - big endian machine, 86 nyílt grid szolgáltatások architektúrája (O G S A ) Windows XP - Windows XP, 489-495, szoftvermértékek - software mctrics, 663-665
nagy felbontású televízió (H D T V ) - High - Open G rid Services Architecture (O G S A ), 496-498, 505-510, 513-516 párhuzamos számítógép-architektúra - parallel
Definition TeleVision (H D T V ), 597 669
operációs rendszer gép (OSM) - Operating computer architecture, 563-673
nagyon hosszú utasításszavú (VLIW) - Very nyílt gyűjtő/kollektor - open coilector, 195 System Machine (O S M ), 444-523 hálózati processzor - network processor,
Long Instruction W ord ( V L I W ) , 565-567 nyílt kiszolgálóvezérlő interfész (O H C I) - Open operációs rendszer gép (OSM) szintje - 568-575
nagyon m agas fokú integráltság (VLSI) - Very Ilo st Controller Interface (O H C I), 240 operating system machine ( O S M ) leve!, 22, lapkaszintű - on-chip parallelism, 564-583
Large Scale Integration ( V L S I) , 38, 490 nyílt magprotokoll nemzetközi társaság (OCP-
444-523 médiaprocesszor - média proccssor, 592-597
nagyon hosszú utasításszavú (VLIW) - V L I W I P ) - Open Core Protocol-International operációs rendszeri m akro(utasítás) - operating multiprocesszor - multiproccssor, 598-600
(Very Long Instruction W ord), 565-567 Partnership (O C P - IP), 583 system macro, 27 multiszámítógép - multicomputer, 600-603
nagyszámítógép - mainframe, 51 nyilvános kulcsú titkosítás - public key operandusverem - operand stack, 267, 268 osztályozás - taxonomy, 603-606
nagyterületű hálózat (WAN) - W id e A rca cryptography, 598 optikai lemez - optical disk, 108-117 társprocesszor (koprocesszor) - coprocessor,
NetWork (WAN), 584 nyomkövető - tracer, 718 óra - clock, 175 583-598
NaN (nem szám) - N aN (N őt a Number), 715 Intel 8088 - Intel 8088,747 Orange Book (N arancssárga Könyv) - Orange többszálúság - multithreading. 572-578
N áthán első szoftvertörvénye - Nathan’s first nyomkövető B T B - trace B T B , 336 Book, 113 utasításszintű párhuzamosság - instruction
law of software, 43 nyomkövető gyorsítótár - trace cache, 334 O rca - Orca, 658 level parallelism, 565-572
NC-NUMA (gyorsítótár nélküli NUMA) - NC- nyomtató - printer, 127-133 OS/2 - O S/2,40 párhuzamosság - parallelism
N U M A (N o Cashing N U M A ), 620, 603 festékszublimációs - dye sublimation, 132 Osborne I - Osborne 1, 40 processzorszintű - processor-lcvcl, 80
negált jel - negated signal, 187 lézer - laser, 129 OSM (operációs rendszer gép) - O S M utasításszintű - instruction-levcl, 75
negatív logika - negative logic, 162 monokróm - monochrom, 127 (Operating System M achine), 444 paritásbit - parity bit, 88
negyedik generációs számítógépek - fourth- szilárd tintás - solid ink, 132 osztott memóriájú rendszer - distributed paritás-flag - parity flag, 734
generation computers, 38 színes - color, 131 memory system, 600 Pascal, Blaise - Pascal, Blaise, 30
nem blokkoló hálózat - nonblocking network, 617 viasz - wax, 132 passzív mátrixniegjelenítő - passive mátrix
nem blokkoló üzenetküldés - nonblocking nyomtatómű - print engine, 130 Ö_________________________________________ display, 124
message passing, 650 nyugtázó csomag - acknowledgement packet, 235 önmódosító program - self-modifying program, PC (programszámláló, utasításszámláló) - P C
nem egységes memóriaelérés (NUMA) - 382 (Program Counter), 252-262, 720
N onUniform M em ory Access (N U M A ), 605, O_____________________________ összeadó - adder, 171-173 PCI (Peripheral Component Interconnect) -
619-628 objektumkezelő Windows X P - object manager átvitelkiválasztó - carry select, 173 P C I (Peripheral Component Interconnect),
nem felejtő memória - nonvolatile memory, 190 Windows XF; 492 átvitelt tovább terjesztő - ripple carry, 173 120, 223-231
nem invertáló puffer - noninverting buffer, 185 O C P - IP (nyílt magprotokoll nemzetközi fél - half, I7 I- I7 2 PCI Express sín - P C I Express bús, 232
nem szám (N aN ) - N őt a Number (N a N ), 715 társaság) - O C P-IP (O pen Core Protocol- PCI sín - P C I (Peripheral Component
te lje s -fu ll, 171-172
N etBurst m ikroarchitektúra - NetBurst International Partnership), 583 Interconnect), 120, 223-231
összehasonlító - comparator, 168
microarchitecture, 332 O G S A (nyílt grid szolgáltatások architektúrája) jel - signal, 228
összehasonlító és elágazó utasítások -
Neumann Jáno s - von Neumann, John, 33 - O G S A (Open G rid Services Architecture), comparision and branch instructions, 398 tranzakció - transaction, 230
Neumann-gép - von Neumann machine, 33 669 összekötő hálózatok - interconnection networks, PDP-1 - PDP-1, 35
Nexperia - Nexperia, 592 O H C I (nyílt kiszolgálóvezérlő interfész) - P D P -ll-P D P -1 1 , 38
631-634
N ID (hálózati interfész eszköz) - N ID (Network O H C I (Open Hőst Controller Interface), 240 kettévágott sávszélesség - bisection PD P-8 - PDP-8, 35
Interface Device), 136 oktális szám - octal number, 698, 743 bandwidth, 633 példaprogramok - example programs
N O R M A (távoli memória elérése nélküli) - olcsó lemezek redundáns tömbje (R A ID ) - topológia - topology, 632 Intel 8088 - Intel 8088, 752
N O R M A (N O Remote M em ory Access), 606 Redundant A rray of Inexpensive Disks összesített sávszélesség - aggregate bandwidth, Pentium 4 - Pentium 4, 208, 359, 486
normalizálatlan számok - enormaHzcd number, ( R A ID ) , 104 662 adattípusok - data types, 370
714 olvasás utáni írás (W A R ) függőség - W rite A fter összetett utasításkészletű számítógép (CISC) - bevezetés - introduction, 37-42
normalizált szám - ormalized number, 710 Read ( W A R ) dependence, 327 Complex Instruction Set Computer (C IS C ), címzés - addressing, 390-392
normatív információ, szabványban - normative olvasás/írás mutató - read/write pointer, 739 73 fénykép - photograph, 55
information, in standard, 355 ómega hálózat - ómega network, 618 ötödik generációs számítógépek, Jap án - fifth ISA-szintjének áttekintése - overview of ISA ,
N O W (munkaállomások hálózata) - N O W omnibus, PD P-8 - omnibus, PDP-8 generation project, Japanese, 40 359-362
(NetWork of Workstations), 606 on-line - on-line, 475 lábkiosztás - pinout, 210
NT-fáJlrendszer (N T F S ) - N T File System O P C (régi utasításszámláló) - O P C (O ld mikroarchitektúra - microarchitecture, 332
(N T F S ), 505 Program Counter), 253, 262, 280 parancsértelmező (shell, héj) - shell, 489 problémái - problems, 431-432
N T F S (NT-fájlrendszer) - N T F S (N T File operációs rendszer - operating system, 25, 444, párhuzamos be/kiraenet (P IO ) - Parallel Input/ sín - bús, 212
System), 505 461 Output (P IO ), 241 történeti áttekintés - history, 52
810 TÁRGYM UTATÓ tárgym utató 811

utasításforniátum ok - instruction formats, progresszív pásztázás - progressive scan, 596 utasításm utató (IP) - instruction pointer (IP ), időzítés - clocking, 198
376-378 PROM (programozható ROM) - P R O M 720, 724 időzítés - timing, 198-202
utasítások - instructions, 405-408 (Programmable R O M ) , 190 utasításszám láló (PC), 66, 720 ISA - ISA, 222
virtuális memória - virtual memory. 462 protokoll - protoeol, 194, 234, 585 rekesz, memória - cell, memory, 84 kézfogás - handshaking, 202
perifériális sín - peripherial bús, 582 protokoll-/programozott/csomag- feldolgozó rekurzió - reeursion, 4ÜÜ mester - master, 195, 201, 213, 218, 230
Peripheral Component Interconnect (PCI) - egj'ség ( P P E ) - Protoeol Programmed/Packet rekurzív eljárás - reeursive procedure, 415 multipixelt - multiplxed, 197
Peripheral Component Interconnect (P C I), 120 Processing Engine ( P P E ) , 588 relatív hiba - relatíve error, 710 műveletek - operation, 205-207
pigmentalapú tinta - pigment based ink, 132 P S W (programállapotszó) - P S W (Program relatív útvonal - relatíve path, 502 P C I - P C I , 223-231
PIO (párhuzam os be/kimenet) P IO (Parallel Status W ord), 358, 466 rendszeradm inisztrátor - superuser, 503 PCI Express - P C I Express, 232
Input/Output), 241 pszeudoutasitás - pseudoinstruction, 531, 718, rendszerhívás - supervisor call, 27 Pentium 4 - Pentium 4, 212
pixel, képpont - pixel, 125 744 rendszerinterfész - system interface, 494 protokoll - protoeol, 194
PLA (program ozható logikai tömb) - P L A pthread - pthread, 512 rendszerprogramozó - system programmer, 22 sínütemezés - arbitration, 119, 202-205
(Programmable Logic A rray), 169 puíferelt üzenetátadás - buttered mcssage rendszersín - system bús, 194 sínütemezés, PCI sín - arbitration, P C I, 227
Playstation 2 - Playstation 2, 48 passing, 650 rendszerszolgáltatások, Windows XP - system szélesség - width, 196-197
pont - dót, 742 PVM (virtuális párhuzam os számítógép) - services, W indows XP493 szinkron - synchronous, 198
pont per inch (dpi) - Dots Per Inch (dpi), 129 P V M (Parallel Virtual M achine), 651 rés - bucket, 547 szolga - slave, 195
pontos megszakítás - precise interrupt, 327 részleges címdekódolás - partial address univerzális soros sín ( U S B ) - U S B , 236-240
POSIX - Portable Operating Systcm-IX R_________________________________________ decoding, 244 ütemező - arbiter, 119
(P O S IX ), 487 rács - grid, 634 réteg - layer, 19 vevő - reeeiver, 195
postlix jelölés - posxtfix notation, 385 rádiófrekvenciás azonosító (RKID) - Radio RFID lapka - R F I D chip, 44 vezérlő - driver, 195
POTS (egyszerű régi telefonszolgáltatás) - Frequency IDentifieation ( R F I D ) , 44 RISC (csökkentett utasításkcszlctű számítógép) sínütemezés, P C I sín - arbitration, P C I bús, 227
P O T S (Plain Old Telephone Service), 135 RAID (olcsó lemezek redundáns tömbje) - - R IS C (Reduced Instruction Set Computer), skála, index, bázis ( S IB ) - Seale, Index, Base
pozitív logika - positive logic, 162 R A ID (Redundant A rray ot Inexpensive 72 ( S IB ) , 377, 391
PPE (protokoll-Zprogramozott/csomag- Disks), 104 RISC és CISC - R IS C versus C IS C , 72 skálázható - scalable, 601, 665
feldolgozó egység) - P P E (Protoeol/ RAM (véletlen elérésű memória) - R A M RlSC-tervezési elvek - R IS C design principles skálázható processzorarchitektúra (S P A R C ) -
Programmed/Packet Processing Engine), 588 (Random Access M em ory), 60,188 ROM (Read Only Memory) - R O M (Read Only Scalable Processor A RChitecture (S P A R C ),
predikáció/megalapozás - predication, 436 dinamikus (D R A M ) - dynamic ( D R A M ) . 189 Mem ory), 190 57-59
prefix bájt - prefix byte, 287, 377, 406 statikus (SR-4M) - static (S R A M ), 189 SLED (egyetlen nagy, drága lemez) - S L E D
processzor - processor, 66 • szinkron D R A M (S D R A M ) - synchronous S, S Z ____________________________________________ (Single Large Expensive Disk), 104
processzor áteresztőképessége - processor D R A M ( S D R A M ), 189 SATA (soros ATA) - S A T A (Serial A T A ), 102 small modell, 8088 - small model, 8088, 746
bandwidth, 77 raszteres pásztázó - raster scan, 122 sáv - track, 98 SM P (szimmetrikus m ultiprocesszor) - S M P
processzorkonzisztencia - processor RAW függőség - R A W dependence, 307 sáv/pálya - lane, 234 (Symmetric MultiProcesszor), 600, 610-619
consistency, 608 Red Book (Vörös Könyv) - Red Book, 108 SCSI (kis szám ítógéprendszerek interfésze) - S o c k e t (csatlakozási pont) - socket, 487, 515

processzorsín - processor bús, 582 Red Storm - Red Storm, 640 S C S I (Sm all Computer System Interface), sokoldaM digitális lemez (DVD) - Digital
processzorszintű párhuzam osság - processor Reed-Solomon-kód - Reed-Solomon code, 98 103-104 Versatile Disc (D V D ), 115
level parallelism, 80-83 régi utasításszám láló (OPC) - O ld Program SDRAM (szinkron DRAM) - S D R A M Solaris - Solaris, 487, 511
processzus - process, 445, 477 Counter (O P C ), 253, 262, 280 (Synchronous D R A M ), 189 sorba állító - sequcnccr, 261
processzus- és szálkezelő - process and thread regiszter - register, 21, 720 SRAM (statikus RAM) - S R A M (Static R A M ), sorba állító egység - queueing unit, 310
manager ablak - register window, 363 189 sorduplázó technika - deinteriacing, 596
Windows XP - W indows XP, 493 adat - data, 722 Seastar - Seastar, 641 soros ATA (SATA) - Serial A T A (S A T A ), 102
processzusszinkronizálás - process átnevezés - register renaming, 329 shell (parancsértelm ező, héj) - shell, 489 soros konzisztencia - sequential consistency, 607
synchronization, 482, 489 akkum ulátor - aceumulator, 722 Shockley, William - Shoekley, W illiam , 34 sorrendtől eltérő végrehajtás - out-of-order
processzuskezelés - process management bázis - base, 722 s í d (biztonsági azonosító) - S ÍD (Security ID , 508 execution, 324-329
U N I X - U N I X , 510 bázism utató - base pointer, 724 SIMD számítógép - S IM D (Single Instruction- SP (veremmutató) - S P (Stack Pointer), 253,
Windows XP - W indows XP, 513 célindex - destinalion index, 724 stream M ultiple D ata stream) computer, 81 262, 266, 280, 723
processzusok közti kommunikáció (IPC) - Inter címzés - addressing, 381 SIMM (egy érintkezősoros memóriamodul) - SPARC, skálázható processzorarchitektúra -
Process Communication (IP C ), 489 feltételkód - condition code, 724 S IM M (Single Inline M em ory Modulé), 95 Scalable Processor A R C hitecture (S P A R C ),
program - program, 17 flag - flag, 724 sín - bús, 35, 66,117-120,194, 207 57-59
program állapotszó (PSW) - Program Status forrásindex - source index, 724 adóvevő - tranceiver, 195 spekulatív betöltés - speculative load, 438
Word (P S W ), 344, 358, 466 index - index, 723 AGP - AG P, 226 S R -táro ló -S R latch, 177
program ozható logikai tömb (PLA) - indexelt - displacement, 728-727 aszim m etria - skew, 197 SRAM (statikus RAM) - S R A M (Static R A M ),
Programmable Logic A rray ( P L A ), 169 indirekt címzés - indirect addressing, 381-382 aszinkron - asynchronous, 201-202 189
program ozható ROM (PROM) - Programmable mód - mode, 381 blokkátvitel - block transfer, 205 SSE - SSE, 54
R O M (P R O M ), 190 m utató - pointer, 723 ciklus - cycle, 198 statikus RAM (SRAM) - Static R A M (S R A M ),
program ozott B/K - programmcd I/O, 402 program számláló (PC) - program counter EISA - E IS A , 223 189
program szám láló (PC) - Program Counter (P C ), 252-262, 720 használati engedély - grant, 202, 227 Stibbitz, George - Stibbitz, George, 31
(P C ), 252-262, 720 számláló - counter, 722 IBM PC - I B M PC, 222 stream (folyam) - stream, 488
812 TÁRGYM UTATÓ TÁRGYM UTATÓ 813

Streaming SIMD-kiegés/.ílésck (S S E ) - szilárd tintás nyomtató - solid ink printer, 132 távolságbehatárolás - ranging, 139 tömbprocesszor - array processor, 80
Streamrng S IM D Extensions (S S E ), 54 szimatoló gyorsítótár - snooping/snoopy cache, T C I’ - T C P (Transmission C'ontrol Protocol), 586 tördelő kódolás - hash eoding, 547
stru k tú ráit számítógép-felépítés - structured 609,611-614 TCP-fejléc - T C P header, 586 töréspont - breakpoint, 749
computer organization, 17 szimbolikus név - symbolic name, 718 lelco (telefontársaság) - tclco (telcphonc törölhető P R O M (E P R O M ) - Erasable P R O M
Sun Fire E 2 5 K - Sun Firc E25K, 617, 624-628 szimbólummal kezdődő blokk ( B S S ) - Block company), 135 ( E P R O M ) , 60, 190
Sun Mícrosystem - Sun Microsystem, 57-59 Staried by Symbol (B S S ), 742 telefontársaság (telco) - telephoné company törölhető, programozható R O M (E P R O M ) -
szabad lap - free pagc, 497 sziinbólumtábla - Symbol table, 545-547, 741 (tclco), 135 Erasable Programmabic R O M ( E P R O M ) , 60,
szabad lista - free list, 474 szimmetrikus kulcsú titkosítás - symmctric key telekommunikációs berendezés - 190
szabványos bemeneti csatorna - standard input, cryptography, 598 telecommunicatiüns equipment, 133 történeti áttekintés - history
501 szimmetrikus multiprocesszor (S M P ) - telített módú aritmetika - saturated arithmctic, 1642-1945- 1642-1945,30
szabványos hibacsatom a - standard error, 502 Symmetric MultiProcesszor (S M P ), 600, 610­ 569 1945-1955- 1945-1955,31
szabványos kimeneti csatorna - standard 619 teljes erőforrás-megosztás - full resourcc 1955-1965 - 1955-1965, 34
output, 502 szimplex vonal - simpicx linc, 135 sharing, 577 1965-1980- 1965-1980. .36
szál - thread, 479, 511 szín gamut - color gamut, 13 1 teljes kézfogás - full handshake, 202 1980-napjainkig - 1980-present, 38
szám ítógép-architektúra - eoniputcr színkereső tábla (C L U T ) - C'olor Lo ok U p teljes összeadó - full adder, 171-172 Intel - Intel, 52
architccture, 23 lable (C L U T ), 595 teljes összekötés - full interconnect, 633 Intel 8051- In te l 8051, 59
mérföldkövek - milestones, 28-41 szinkron D R A M (S D R A M ) - Synchronous térbeli lokalitás - spatial locality, 314 mikroprogramozás - microprogramming, 24,
számítóközpont - computer center, 38 D R A M (S D R A M ), 189 terhelhetőségi szám -fanuut, 631 27
számlálóregiszter - counter register, 722 szinkron sín - synchronous bús, 198 tcrmeló'-fogjasztó probléma - produeer- operációs rendszer - operating system, 25
számrendszerek - radix number system, 698 szinkron üzenetátadás - synchronous messagc consumer problem, 478, 5 11 Sun Microsystems - Sun Microsystems, 57
szavas regiszter - word register, 727 passing, 650 ter\ezési elvek, R IS C - design principles, R IS C , 74 számítógéprendszerek - computer systems
szavas utasítás - word instruction, 727 színpaletta - color palette, 125 tesztágy - benchmark, 526 törtrész - fraetion, 709
szegmens - segment, 725-726 szint - land, 108 tevékeny várakozás - busy waiting, 403 transzparens/átlátszó (lapozási mechanizmus)
szegniensregiszter-csoport - segment register levél, 19 téves megosztás - falsé sharuig, 655 - tran.sparent (paging), 448
group, 724 szintvezérelt tároló - level-triggered lateh, 179 TKXT szegmens - T E X T scetion, 742 tranzakciós réteg - transaction layer, 235
szegmensregiszter-választó - segment override, szó - word, 86, 727 TFT (vékonyfilm-tranzisztor) - T F T (Thin Film tranzisztor, feltalálása - transistor, invention, 34
740 szoftver - software, 24 Iransistor), 124 tranzisztor-tranzisztor logika (T T L ) -
prefix - prefix, 740 ekvivalenciája a hardverrel - equivalence T F T megjelenítő - T F T display, 124 Transistor-Transistor Logic (T T L ), 155
szegmentálás - segmentation, 456 462 with hardware, 24 tintasugaras nyomtató - inkjet printer, 128 TiriMedia - TriMedia, 567-572
legjobb illesztés algoritm us - best fit szoftverréteg - software laycr, 236 tiny modell, 8088 - tiny model, 8088, 746 T S B (lapkezelő tárolópuffer) - T S B (Transiation
algorithm , 460 szolga, sín - slavc, bús, 195 TI.B (lapkezelő segédpulTer) - T L B (Transiation Storage Buffer), 468
első illesztés algoritmus - fü st fit algorithm, 460 szorosan kapcsolt - tightiy coupled, 564 Lookaside Buffer), 467 T T L (tranzisztor-tranzisztor logika) - T T L
megvalósítása - implementation, 459 szubrutin - subroutine, 400, 737 TLB-hiány - T L B miss, 468 (Transistor-Transistor Logic), 155
szekció, C D - R O M - session, ( ’D - R O M , 113 szuperskaláris architektúra - superscalar TN (elforgatott molekulájú) kijelző - T N túlcsordulási hiba - overfiow error, 709
szektor, lemez - sector, disk, 98, 110 architccture, 78-80 (Twisted N em atic) display, 123 tűzfal - firewall, 585
szektorrés - intersector gap, 98 szuperszámítógép - supercomputer, 36, 51 tokén, vezérjel - tokén, 582 T X -O - T X - 0 , 34
szélessávú - broadband, 135 szülő processzus -parent process, 510 T O S (v e re m te tő ) - T O S (Top O f Stack), 253, T X - 2 - T X - 2 .3 4
szelet - shard, 646 szűrő - filter, 502 262, 280
szemafor - semaphore, 482, 511 többletes jelölés - exeess notation, 704 U, Ú__________________________________________
személyi számítógép (P C ) - pcrsonal computer T _________________________ _______________________ többszálúság - multithreading, 572-578 U A R T (univerzális aszinkron adó/vevő) - U A R T
(l’C), 49 tagolt memória - interieavcd memory, 619 többszekciós C D -R O M - multisession CD- (Universal Asynchronous Receiver/
szerkesztés - linlíing, 547-551. 741 találati arány - hit ratio, 93 R O M , 113 Transmitter), 240
dinamikus - dynamic, 555 találkozópont - erosspoint, 6 17 többszintű gép - multilevel machine, 20 U D B I I - U D B 11 (U ltra S P A R C D ata Buffer II),
feladatai - task performed, 548 tár (lásd memória) - store (see memory) többszintű kapcsoló hálózat - multistage 217
hozzárendelési idő - binding time, 552 tárgymodul - object file, objcct modulé, 551, 741 switching network, 618 ugrás (lásd elágazás) - juiiip (see braneh)
M U L T IC S - M U L T IC S , 555 tárgyprogram - object program, 524 többszintű számítógépek fejlődése - evolution of ugrótábla - branch table, 339
tárgymodul -object modul, 551 tárolás utáni betöltés - storc-to-Ioad, 337 multilevel computers, 23 U H C l (univerzális kiszolgálóvezérlő interfész) -
U N I X - U N IX , 559 tárold-és-továbbítsd csomagkapcsolás - store- többszörös utasításáram egyszeres adatáram U H C I Universal Hőst Controller Interfaee),
Windows - Windows, 557 and-forward packet switching, 585 ( M IS D ) - M ultiple Instruction strcam Single 240
szerkesztő - linken 547-551, 741 tároló - latch, storage, 77, 177-179 D ata stream ( M IS D ), 604-605 újraírható C D (C D -RW ) - CD-rewritabIc (CD-
szerkesztő-betöltő - linking loader, 547 társprocesszor - coproccssor, 583-592 többszörös utasításáram többszörös adatáram R W ), 114
szerkesztő-editor - linkage editor, 547 társrutin/korutin - coroutine, 414, 421, 422 (M IM D ) - Multipie Instruction strcam U ltra S P A R C I - U ltra S P A R C I, 58
szerver - server, 50 TAT-12/13 - TAT-12/13, 43 Multiple D ata stream ( M IM D ) , 604-605 U ltra S PA R C I I I - U ltraS PA R C I II, 214-218, 378
szétválasztó - splitter, 136 távoli hívás - far call, 737 többszörözött munkás modell - replicated adatpuffer - data buffer, 217
szétválasztott gyorsítótár-split cache, 94, 313 távoli memória elérése nélküli (N O R M A ) - N O workcr modcl, 658 adattípusok-data types, 370-371
szignifikáns - significand, 713 Remote Memory Access (N O R M A ), 606 toltéscsatolt eszköz (C C O ) - Chargc Coupled címzés - addressing, 392
szigorú konzisztencia - strict consistency, 607 távoli ugrás - far jump, 735 Devicc (C C D ), 142 Hanoi tornyai - towers of Hanoi, 429-431
814 TÁRGYM UTATÓ tárgym utató 81!

ISA-szintjínck áttekintése - overview of IS A , Pentium 4 - Pentium 4, 376-379 Vas-oxid Völgy - Iron Oxide Valley, 43 és gyorsítótár - compareti to caching, 469
362-365 ' tervezésési követelmények - design crileria, 372 V A X - V A X , 71 452-453
mikroarchitektúra - microarchitecture, UltraSPARC - UltraSPARC, 378 v e i (virtuális komponens összeköttetés) - V C I kezelő, Windows X P - manager, Windows XP,
338-343 utasítás-helyszámláló (ILC) - Instruction (Virtu al Component Interconnect), 583 493
történeti áttekintés - history, 57 Location C ounter (ILC), 540 védett üzemmód - protected mode, 360 Pentium 4 - Pemtium 4, 462—466
utasítások - instructions, 408^10 utasításkészlet, Intel 8088 - instruction set, Intel véges állapotú gép (F S M ) - Finite State U ltra S P A R C - U ltraSPA R C ,4 66 ^ 6 9
utasításforniátumok - instruction foi mats, 8088, 730 Machine (F S M ), 298 U N I X - U N IX , 495-496
378-379 utasításkiosz.tó egység - in s tru c tio n issu e u n it, elágazásjöveiidülés - branch prediction, 323 Windows X P - Windows XP, 496
virtuális memória - virlual memory, 466-469 339 utasításbetöltő egy ség (IK U ) - instruction virtuális párhuzamos számítógép (P V M ) -
U M A (egységes memóriaelérés) - D M A utasításm utató (IP) - Instruction Pointer (IP), fetch unit ( I F U ) , 299 Parallel Virtual Machine (P V M ), 651
(Uniform Memory Acccss), 605 720, 724 véges pontosságú szám - finite-precision virtuális regiszter - virtual register, 265
U N IC O D E - U N IC O D E . 145 utasításregiszter (IR) - Instruction Regíster number, 696-698 virtuális szervezet - virtual organization, 668
univerzális aszinkron adó/vevő (U A R T ) - (IR ), 67, 344 végrehajtható bináris fájl - executable binary virtuális topológia virtual topology, 652
Universal Asynchronous ReceiverTransinittcr utasításrendszer - instruction sets, comparison, file,741 virtuális vágás - virtual cut through, 639
(U A R T ), 240 411 végrehajtható bináris program - executable visszafelé kompatibilis - backward
univerzális kiszolgálóvezérlő interfész (U H C I) - utasításrendszer-architektúra (ISA) - binary progi am, 524, 548 compatibility, 353
Universal Hőst Controllcr Interface (U H C I), Instruction Set Architecture (ISA), 22, végrehajtó, Windows X P - cxecutive, visszaírás gyorsítótár - write-back cache, 3 19
240 352^43,717 Windows X I ’ 492 vivőhullám - carrier. 133
univerzális soros sín (U S B ) - Universal Serial Pentium 4 - Pentium 4, 405-408 vékonyfilm-tranzisztor (T F T ) - Thin Film vizuális utasitáskészlet (V IS ) - Visual
Bús (U S B ), 236-240 UltraSPARC - UltraSPARC, 408-410 Transistor (T F T ), 124 Instruction Set ( V IS ) , 58
univerzális szinkron, aszinkron adó-vevő utasításrendszer-architektúra (ISA) szintje - vektorprocesszor - vectorprocessor, 81 V L S I (nagyon magas fokú integráltság) - V L S I
(U S A R T ) - Universal Synchronous Instruction Set Architecture (ISA) level, 22, vektorregiszter - vector register, 81 (Very Large Scale Integration), 38, 490
Asynchronous Receiver.'Transmitter 352^43. 717 véletlen elérésű memória - Random Access vonal per inch (Ipí) - Lines Per Inch (Ipi). L31
(U S A R T ), 241 8051 -8051,411 Mem ory ( R A M ) , 60, 188 vonzásmemória - attraction memorj', 628
U N IX - U N IX utasításszám , RISC-hez viszonyítva - verem - stack, 266 V TOC (kötet tartalomjegyzék) - V T O C
bevezetés - introduction, 486 instruction count, relation to RISC, 72 veremcímzés - stack addressing, 384-388 (Volume Table O f Contents). 113
fájl B/K - lile I/O, 499-505 utasításszám laló (PC) - program counter, PC, veremkeret - stack frame, 723
processzuskezelés - process management, 252-262,72Ü veremmutató (SP) - Stack Pointer (SP), 253, w X V, z___________________ _____________________
489, 510 utasítástípusok - instruction types, 394-414 262, 266, 280, 723 W A N (nagyterületű hálózat) - W A N (W ide
szerkesztés - linking, 5,'’9 utasításütem ezés - instruction scheduling, 434­ veremtető (TOS) - Top Of Stack (TOS), 280 A rea Network), 584
virtuális memória - virtiial memory, 495 436 vergődés - thrashing, 454 Wattéi, Evert - Wattéi, Evert, 717
U P A - U ltra Port Architecture (U P A ), 217 utasítás-végrehajtás - instruction execution, 68 versenyhelyzet - race condition, 482, 489 W E IZ A C - W H IZ A C , 32
U S A R T (univerzális szinkron, aszinkron adó­ utasításszintű párhuzam osság - instruction vezérjel, tokén - tokén, 582 W hirlw ind I - W hirlwind L 34
vevő) - U S A R T (Universal Synchronous level parallelism, 75-80, 565-572 vezérlési folyamat - flow of control, 414-426 W ilkes, M aurice - Wilkes, Mauricc, 24, 32. 71
Asynchronous ReceiverArransmitter), 241 úthossz - path length, 292 csapda - trap, 422-423 Win32 alrendszer - Win32 subsystem, 494
U S B (univerzális soros sin) - U S B (Universal csökkentés - redueing, 294 elágazás - branche, 414-415 Win32 A P I - Win32 A P L 494
Serial Bús), 236-240 útvonal(név) - path, 502 eljárás - procedure, 4 15-421 Windows - Windows. 40, 490
utasítás - instruction, 359-368, 394-414 útvonalválasztó - router, 585 korutin (tárnrutin) - coroutine, 421-422 szerkesztés - linking, 557
8051-8051,411 megszakítás - interrupt, 423-426 történet - history, 40
8088 - 8088, 730 Ü_______________ ______________ vezérlő - controller, 118 Windows 95 - Windows 95, 490
adatmozgató - data movement, 394-395 üreg - pit, 108 vezérlőjel - control signal, 257 Windows 98 - Windows 98, 490
B / K - 1/0,402^05 ütemezés, multiszámítógép - scheduling vezérlőtár - control store, 72, 261 Windows N T - Windows New Tecliiiolngy (N T ).
ciklus - loop, 400-401 multicompnters, 652-653 viasznyomtató - wax printer, 132 490
diadikus - dyadic, 395-396 ütemező - scheduler, 336 Videó R A M , videomemória - Videó R A M , 125 Windows X P - Windows X P
elágazó - branch, 398, 414 üzenetátadás - message passing, 650-652 virtuális 8086 mód - virtual 8086 mode, 360 bevezetés - introduction, 489-495
eljáráshívú - procedure call, 400 üzenetátadás interfész (MI’I) - Message-Passing virtuális áram kör - virtual circuit, 235 fá jlI/ O - file B/K, 505-510
monadikus - monadic, 396-398 Interface (MPl), 651 virtuális B /K - virtual 1'O, 469 proeesszuskezelés - process management.
összehasonlító - comparison, 398-399 üzenetátadásos multiszáun'tógép - message megvalósítás - implementation, 505 513-516
Pentium 4 - Pentium 4, 405^08 passing multicomputers, 629-667 Windows X P - Windows X R 505 virtuális memória - virtual memory, 496-498
U ltraS PA R C - U ltra S P A R C , 408-410 üzenetsor - message queue, 5 11 virtuális címtartomány - virtual address space, Wozniak, Steve - Wozniak, Sleve, 39
utasításbetöltőegység (IK U ) - Instructitm Fetch 447 X W indow System - X W indow System, 489
Un it (IF U ), 296-300 V_________________________________________________ U N IX - U N IX , 499 XP-fájlrendszer- X P file system. 505
utasftáscsoport - instruction group, 435 valódi függőség - tr u e c le p e n d e n c e , 307 virtuális gép - Virtual machine, 18 Vcllow Book (Sárga Köny) - Yellow Book, 110
8051 -8051,379 valós üzemmód - reál mode, 360 virtuális komponens összeköttetés (V C l) - zártság - closurc, 697
utasításformátumok - instruction formats, váltottsoros - in te rla c e d , 596 Virtual Component Interconnect ( V C l) , 583 Zilog Z8000 - Zilog Z8000. 72
371-380 vámpírcsatlakozó - v a m p ire tá p , 584 virtuális memória - virtual memory, 445- 469 Zuse, Konrad - Zuse, Konrad, 31
8051 -8051,379-380 várakozó á llap o t-w a it S tate, 199

You might also like